<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wikibase.echoimages.labs.wikimedia.pt/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ep%C3%ACdosis</id>
	<title>EChO_IMAGES - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wikibase.echoimages.labs.wikimedia.pt/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ep%C3%ACdosis"/>
	<link rel="alternate" type="text/html" href="https://wikibase.echoimages.labs.wikimedia.pt/wiki/Special:Contributions/Ep%C3%ACdosis"/>
	<updated>2026-09-08T10:23:51Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.42.5</generator>
	<entry>
		<id>https://wikibase.echoimages.labs.wikimedia.pt/w/index.php?title=Template:Int_run_it&amp;diff=2771</id>
		<title>Template:Int run it</title>
		<link rel="alternate" type="text/html" href="https://wikibase.echoimages.labs.wikimedia.pt/w/index.php?title=Template:Int_run_it&amp;diff=2771"/>
		<updated>2026-06-08T09:40:34Z</updated>

		<summary type="html">&lt;p&gt;Epìdosis: LangSwitch1&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;{{doc}}&amp;lt;/noinclude&amp;gt;{{LangSwitch1&lt;br /&gt;
|ar=تجربة!&lt;br /&gt;
|ast=¡Pruébalo!&lt;br /&gt;
|be-tarask=Паспрабуйце!&lt;br /&gt;
|bn=এটি চেষ্টা করে দেখুন!&lt;br /&gt;
|bs=Isprobajte!&lt;br /&gt;
|ca=Prova-ho!&lt;br /&gt;
|cs=Zkuste to!&lt;br /&gt;
|cy=Ceisio!&lt;br /&gt;
|da=Prøv det!&lt;br /&gt;
|de=Versuche es!&lt;br /&gt;
|de-at|de-ch=Es kann versucht werden!&lt;br /&gt;
|de-formal=Versuchen Sie es!&lt;br /&gt;
|el=Δοκιμάστε το!&lt;br /&gt;
|en=Try it!&lt;br /&gt;
|en-gb=Try it!&lt;br /&gt;
|eo=Provu ĝin!&lt;br /&gt;
|es=¡Pruébalo!&lt;br /&gt;
|fi=Kokeile!&lt;br /&gt;
|fr=Essayez&amp;amp;nbsp;!&lt;br /&gt;
|hu=Próbáld ki!&lt;br /&gt;
|hy=Փորձի՛ր&lt;br /&gt;
|id=Cobalah!&lt;br /&gt;
|it=Provalo!&lt;br /&gt;
|ja=試す!&lt;br /&gt;
|he=לנסות את זה!&lt;br /&gt;
|ko=실행하기!&lt;br /&gt;
|ku=Biceribîne!&lt;br /&gt;
|lv=Izmēģini!&lt;br /&gt;
|mk=Пробајте!&lt;br /&gt;
|ms=Jalankan!&lt;br /&gt;
|ms-arab=جالنکن!&lt;br /&gt;
|nl=Probeer!&lt;br /&gt;
|nb=Prøv selv!&lt;br /&gt;
|nn=Prøv sjølv&lt;br /&gt;
|pa=ਪ੍ਰਸ਼ਨ ਕਰੋ&lt;br /&gt;
|pnb=پرشن کرو&lt;br /&gt;
|pl=Wypróbuj!&lt;br /&gt;
|pt=Experimenta!&lt;br /&gt;
|pt-br=Experimente!&lt;br /&gt;
|ro=Încercați!&lt;br /&gt;
|ru=Выполнить запрос&lt;br /&gt;
|sq=Provoje&lt;br /&gt;
|sr=Испробајте!&lt;br /&gt;
|sv=Testa!&lt;br /&gt;
|th=ทดลองใช้&lt;br /&gt;
|tr=Deneyin!&lt;br /&gt;
|udm=Оскалтэ!&lt;br /&gt;
|uk=Виконати!&lt;br /&gt;
|zh=试一试！&lt;br /&gt;
|zh-hans=试一试！&lt;br /&gt;
|zh-hant=試一試！&lt;br /&gt;
|zh-tw=試試看！&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Epìdosis</name></author>
	</entry>
	<entry>
		<id>https://wikibase.echoimages.labs.wikimedia.pt/w/index.php?title=Template:SPARQL&amp;diff=2770</id>
		<title>Template:SPARQL</title>
		<link rel="alternate" type="text/html" href="https://wikibase.echoimages.labs.wikimedia.pt/w/index.php?title=Template:SPARQL&amp;diff=2770"/>
		<updated>2026-06-08T09:38:27Z</updated>

		<summary type="html">&lt;p&gt;Epìdosis: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;onlyinclude&amp;gt;&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&amp;lt;templatestyles src=&amp;quot;SPARQL/styles.css&amp;quot; /&amp;gt;&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&amp;lt;div class=&amp;quot;wdt-sparql-container {{#if:{{{state|}}}|wdt-sparql-container-collapsible}}&amp;quot;&amp;gt;&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
    --&amp;gt;&amp;lt;div {{#switch: {{{state|}}} | collapsed = class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; | expanded = class=&amp;quot;mw-collapsible&amp;quot; }} &amp;gt;&amp;lt;!--&lt;br /&gt;
        --&amp;gt;{{#tag:syntaxhighlight|{{SPARQLText|p={{{p|}}}|q={{{q|}}}|v={{{v|}}}|query={{#invoke:ConcatArgs|ConcatArgs|init=query|min=1}}|extraprefix={{{extraprefix|}}} }}|lang=&amp;quot;sparql&amp;quot;|highlight=&amp;quot;{{{highlight|}}}&amp;quot;}}&amp;lt;!--&lt;br /&gt;
    --&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;!--&lt;br /&gt;
 &lt;br /&gt;
    # the link URL&lt;br /&gt;
    --&amp;gt;[{{#switch:{{{project|wb}}}|wb=//query.echoimages.labs.wikimedia.pt/|wd=//query.wikidata.org/|sdc=//commons-query.wikimedia.org/|{{{project}}}}}{{#ifeq: {{{embedded|}}} | yes |embed.html | }}#{{urlencode: {{SPARQLText|p={{{p|}}}|q={{{q|}}}|v={{{v|}}}|query={{#invoke:ConcatArgs|ConcatArgs|init=query|min=1}}|extraprefix={{{extraprefix|}}} }} | PATH }} &amp;lt;!--&lt;br /&gt;
    &lt;br /&gt;
    # the link label&lt;br /&gt;
    --&amp;gt;{{{label|{{#if: {{#invoke:SPARQLMentions|getTitle|{{{query}}}}}|{{#invoke:SPARQLMentions|getTitle|{{{query}}}}}|{{int try it}}}}}}}] &amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
    # add the short url, if any&lt;br /&gt;
    --&amp;gt;{{#if: {{{shortURL|}}} | (&amp;lt;nowiki /&amp;gt;https://w.wiki/{{{shortURL}}}&amp;lt;nowiki /&amp;gt;) }}&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
# close outer div&lt;br /&gt;
--&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{Documentation}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Epìdosis</name></author>
	</entry>
	<entry>
		<id>https://wikibase.echoimages.labs.wikimedia.pt/w/index.php?title=Template:SPARQL&amp;diff=2769</id>
		<title>Template:SPARQL</title>
		<link rel="alternate" type="text/html" href="https://wikibase.echoimages.labs.wikimedia.pt/w/index.php?title=Template:SPARQL&amp;diff=2769"/>
		<updated>2026-06-08T09:37:19Z</updated>

		<summary type="html">&lt;p&gt;Epìdosis: Fix project&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;onlyinclude&amp;gt;&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&amp;lt;templatestyles src=&amp;quot;SPARQL/styles.css&amp;quot; /&amp;gt;&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&amp;lt;div class=&amp;quot;wdt-sparql-container {{#if:{{{state|}}}|wdt-sparql-container-collapsible}}&amp;quot;&amp;gt;&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
    --&amp;gt;&amp;lt;div {{#switch: {{{state|}}} | collapsed = class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; | expanded = class=&amp;quot;mw-collapsible&amp;quot; }} &amp;gt;&amp;lt;!--&lt;br /&gt;
        --&amp;gt;{{#tag:syntaxhighlight|{{SPARQLText|p={{{p|}}}|q={{{q|}}}|v={{{v|}}}|query={{#invoke:ConcatArgs|ConcatArgs|init=query|min=1}}|extraprefix={{{extraprefix|}}} }}|lang=&amp;quot;sparql&amp;quot;|highlight=&amp;quot;{{{highlight|}}}&amp;quot;}}&amp;lt;!--&lt;br /&gt;
    --&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;!--&lt;br /&gt;
 &lt;br /&gt;
    # the link URL&lt;br /&gt;
    --&amp;gt;[{{#switch:{{{project|wb}}}|wb=//https://query.echoimages.labs.wikimedia.pt/|wd=//query.wikidata.org/|sdc=//commons-query.wikimedia.org/|{{{project}}}}}{{#ifeq: {{{embedded|}}} | yes |embed.html | }}#{{urlencode: {{SPARQLText|p={{{p|}}}|q={{{q|}}}|v={{{v|}}}|query={{#invoke:ConcatArgs|ConcatArgs|init=query|min=1}}|extraprefix={{{extraprefix|}}} }} | PATH }} &amp;lt;!--&lt;br /&gt;
    &lt;br /&gt;
    # the link label&lt;br /&gt;
    --&amp;gt;{{{label|{{#if: {{#invoke:SPARQLMentions|getTitle|{{{query}}}}}|{{#invoke:SPARQLMentions|getTitle|{{{query}}}}}|{{int try it}}}}}}}] &amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
    # Optional Orb Open Graph link&lt;br /&gt;
   --&amp;gt;{{#if: {{{orb|}}} | ([//try.orbopengraph.com/#{{urlencode: {{#invoke:ConcatArgs|ConcatArgs|init=query|min=1}} | PATH }} Orb Open Graph])}}&amp;lt;!--&lt;br /&gt;
    &lt;br /&gt;
    # Optional QLever link&lt;br /&gt;
    --&amp;gt;{{#if: {{{qlever|}}} | {{#switch:{{{project|wd}}} |wd|sdc=([{{#switch:{{{project|wd}}}|wd=//qlever.dev/wikidata/|sdc=//https://qlever.dev/wikimedia-commons/}}?query={{urlencode:PREFIX wikibase: &amp;lt;http://wikiba.se/ontology#&amp;gt; PREFIX wdt: &amp;lt;http://www.wikidata.org/prop/direct/&amp;gt; PREFIX wd: &amp;lt;http://www.wikidata.org/entity/&amp;gt; PREFIX rdfs: &amp;lt;http://www.w3.org/2000/01/rdf-schema#&amp;gt; {{SPARQLText|p={{{p|}}}|q={{{q|}}}|v={{{v|}}}|query={{#invoke:ConcatArgs|ConcatArgs|init=query|min=1}}|extraprefix={{{extraprefix|}}} }} | PATH }} QLever]) | (QLever link unavailable for custom project)}}}} &amp;lt;!--&lt;br /&gt;
    &lt;br /&gt;
    # Optional query-scholarly&lt;br /&gt;
    --&amp;gt;{{#if: {{{scholarly|}}} | {{#switch:{{{project|wd}}} |wd|sdc=([{{#switch:{{{project|wd}}}|wd=//query-scholarly.wikidata.org/|sdc=}}#{{urlencode: {{SPARQLText|p={{{p|}}}|q={{{q|}}}|v={{{v|}}}|query={{#invoke:ConcatArgs|ConcatArgs|init=query|min=1}}|extraprefix={{{extraprefix|}}} }} | PATH }} query-scholarly]) | (query-scholarly unavailable for custom project)}}}} &amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
    # add the short url, if any&lt;br /&gt;
    --&amp;gt;{{#if: {{{shortURL|}}} | (&amp;lt;nowiki /&amp;gt;https://w.wiki/{{{shortURL}}}&amp;lt;nowiki /&amp;gt;) }}&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
# close outer div&lt;br /&gt;
--&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{Documentation}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Epìdosis</name></author>
	</entry>
	<entry>
		<id>https://wikibase.echoimages.labs.wikimedia.pt/w/index.php?title=EChO_IMAGES:SPARQL/examples&amp;diff=2768</id>
		<title>EChO IMAGES:SPARQL/examples</title>
		<link rel="alternate" type="text/html" href="https://wikibase.echoimages.labs.wikimedia.pt/w/index.php?title=EChO_IMAGES:SPARQL/examples&amp;diff=2768"/>
		<updated>2026-06-08T09:21:42Z</updated>

		<summary type="html">&lt;p&gt;Epìdosis: wb (first query)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Queries=&lt;br /&gt;
==Inventors==&lt;br /&gt;
{{SPARQL|query=&lt;br /&gt;
PREFIX wbt: &amp;lt;https://wikibase.echoimages.labs.wikimedia.pt/prop/direct/&amp;gt;&lt;br /&gt;
PREFIX wb: &amp;lt;https://wikibase.echoimages.labs.wikimedia.pt/entity/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
SELECT ?item ?itemLabel ?inventor ?inventorLabel WHERE {&lt;br /&gt;
  ?item wbt:P3 wb:Q66 .&lt;br /&gt;
  OPTIONAL { ?item wdt:P79 ?inventor . }&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;[AUTO_LANGUAGE],en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===wikidata===&lt;br /&gt;
&lt;br /&gt;
SELECT ?item ?itemLabel ?inventor ?inventorLabel WHERE {&lt;br /&gt;
  ?item wdt:P31 wd:Q172839 .&lt;br /&gt;
  &lt;br /&gt;
  OPTIONAL { ?item wdt:P61 ?inventor . }&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
==image location==&lt;br /&gt;
&amp;lt;sparql tryit=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
PREFIX wdt: &amp;lt;https://wikibase.echoimages.labs.wikimedia.pt/prop/direct/&amp;gt;&lt;br /&gt;
PREFIX wd: &amp;lt;https://wikibase.echoimages.labs.wikimedia.pt/entity/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SELECT ?image ?item ?itemLabel ?creator ?creatorLabel ?method ?methodLabel ?inception ?location WHERE {&lt;br /&gt;
  ?item wdt:P3 wd:Q56 .&lt;br /&gt;
    ?item wdt:P6 ?image .&lt;br /&gt;
  ?item wdt:P10 ?location . &lt;br /&gt;
  ?item wdt:P13 ?inception .&lt;br /&gt;
    ?item wdt:P28 ?method .&lt;br /&gt;
  OPTIONAL { ?item wdt:P16 ?creator . }&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;[AUTO_LANGUAGE],en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/sparql&amp;gt;&lt;br /&gt;
===wikidata===&lt;br /&gt;
SELECT DISTINCT ?image ?item ?itemLabel ?creator ?creatorLabel ?method ?methodLabel ?inception ?location WHERE {&lt;br /&gt;
  ?item wdt:P31/wdt:P279* wd:Q125191 .&lt;br /&gt;
  ?item wdt:P18 ?image .&lt;br /&gt;
  ?item wdt:P625 ?location . &lt;br /&gt;
  ?item wdt:P571 ?inception .&lt;br /&gt;
    ?item wdt:P2079 ?method .&lt;br /&gt;
  &lt;br /&gt;
OPTIONAL { ?item wdt:P170 ?creator . }&lt;br /&gt;
  &lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Industry==&lt;br /&gt;
&lt;br /&gt;
===Wikidata===&lt;br /&gt;
SELECT ?item ?itemLabel ?inventor ?inventorLabel WHERE {&lt;br /&gt;
  ?item wdt:P452 wd:Q1439700 .&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;en&amp;quot;. }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
==Women in photography==&lt;br /&gt;
&lt;br /&gt;
===wikidata===&lt;br /&gt;
&lt;br /&gt;
SELECT DISTINCT ?image ?item ?itemLabel ?birth ?country ?countryLabel WHERE {&lt;br /&gt;
  ?item wdt:P106 wd:Q33231 .&lt;br /&gt;
  ?item wdt:P27 ?country .&lt;br /&gt;
 &lt;br /&gt;
 ?item wdt:P18 ?image .&lt;br /&gt;
# ?item wdt:P625 ?location . &lt;br /&gt;
#  ?item wdt:P571 ?inception .&lt;br /&gt;
#   ?item wdt:P2079 ?method .&lt;br /&gt;
  &lt;br /&gt;
 ?item wdt:P569 ?birth;&lt;br /&gt;
                wdt:P21 wd:Q6581072;  &lt;br /&gt;
  FILTER (?birth &amp;gt; &amp;quot;1790-01-01&amp;quot;^^xsd:dateTime &amp;amp;&amp;amp; ?birth &amp;lt; &amp;quot;2026-01-01&amp;quot;^^xsd:dateTime)&lt;br /&gt;
  &lt;br /&gt;
# OPTIONAL { ?item wdt:P170 ?creator . }&lt;br /&gt;
  &lt;br /&gt;
  SERVICE wikibase:label { bd:serviceParam wikibase:language &amp;quot;en&amp;quot;. }&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Epìdosis</name></author>
	</entry>
	<entry>
		<id>https://wikibase.echoimages.labs.wikimedia.pt/w/index.php?title=Template:SPARQL/styles.css&amp;diff=2767</id>
		<title>Template:SPARQL/styles.css</title>
		<link rel="alternate" type="text/html" href="https://wikibase.echoimages.labs.wikimedia.pt/w/index.php?title=Template:SPARQL/styles.css&amp;diff=2767"/>
		<updated>2026-06-08T09:18:21Z</updated>

		<summary type="html">&lt;p&gt;Epìdosis: Created page with &amp;quot;/* When the box is collasible, make it visible as a complete element */ .wdt-sparql-container-collapsible { 	border:1px solid #BBBBBB; } .wdt-sparql-container-collapsible  pre { 	margin-top: 2px; }&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* When the box is collasible, make it visible as a complete element */&lt;br /&gt;
.wdt-sparql-container-collapsible {&lt;br /&gt;
	border:1px solid #BBBBBB;&lt;br /&gt;
}&lt;br /&gt;
.wdt-sparql-container-collapsible  pre {&lt;br /&gt;
	margin-top: 2px;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Epìdosis</name></author>
	</entry>
	<entry>
		<id>https://wikibase.echoimages.labs.wikimedia.pt/w/index.php?title=MediaWiki:Sidebar&amp;diff=2766</id>
		<title>MediaWiki:Sidebar</title>
		<link rel="alternate" type="text/html" href="https://wikibase.echoimages.labs.wikimedia.pt/w/index.php?title=MediaWiki:Sidebar&amp;diff=2766"/>
		<updated>2026-06-08T09:05:29Z</updated>

		<summary type="html">&lt;p&gt;Epìdosis: +&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
* navigation&lt;br /&gt;
** mainpage|mainpage-description&lt;br /&gt;
** recentchanges-url|recentchanges&lt;br /&gt;
** randompage-url|randompage&lt;br /&gt;
** helppage|help-mediawiki&lt;br /&gt;
&lt;br /&gt;
* wikibase&lt;br /&gt;
** Special:ListProperties|List of Properties&lt;br /&gt;
** MediaWiki:Wikibase-SortedProperties|Sorted Properties&lt;br /&gt;
** Special:NewItem|Create a new Item&lt;br /&gt;
** Special:NewProperty|Create a new Property&lt;br /&gt;
** https://query.echoimages.labs.wikimedia.pt/|Query Service&lt;br /&gt;
** EChO IMAGES:SPARQL/examples|Query examples&lt;br /&gt;
&lt;br /&gt;
* SEARCH&lt;br /&gt;
* TOOLBOX&lt;br /&gt;
* LANGUAGES&lt;/div&gt;</summary>
		<author><name>Epìdosis</name></author>
	</entry>
	<entry>
		<id>https://wikibase.echoimages.labs.wikimedia.pt/w/index.php?title=MediaWiki:Sidebar&amp;diff=2765</id>
		<title>MediaWiki:Sidebar</title>
		<link rel="alternate" type="text/html" href="https://wikibase.echoimages.labs.wikimedia.pt/w/index.php?title=MediaWiki:Sidebar&amp;diff=2765"/>
		<updated>2026-06-08T08:43:37Z</updated>

		<summary type="html">&lt;p&gt;Epìdosis: + SortedProperties&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
* navigation&lt;br /&gt;
** mainpage|mainpage-description&lt;br /&gt;
** recentchanges-url|recentchanges&lt;br /&gt;
** randompage-url|randompage&lt;br /&gt;
** helppage|help-mediawiki&lt;br /&gt;
&lt;br /&gt;
* wikibase&lt;br /&gt;
** Special:ListProperties|List of Properties&lt;br /&gt;
** MediaWiki:Wikibase-SortedProperties|Sorted Properties&lt;br /&gt;
** Special:NewItem|Create a new Item&lt;br /&gt;
** Special:NewProperty|Create a new Property&lt;br /&gt;
** https://query.echoimages.labs.wikimedia.pt/|Query Service&lt;br /&gt;
&lt;br /&gt;
* SEARCH&lt;br /&gt;
* TOOLBOX&lt;br /&gt;
* LANGUAGES&lt;/div&gt;</summary>
		<author><name>Epìdosis</name></author>
	</entry>
	<entry>
		<id>https://wikibase.echoimages.labs.wikimedia.pt/w/index.php?title=Main_Page&amp;diff=2737</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wikibase.echoimages.labs.wikimedia.pt/w/index.php?title=Main_Page&amp;diff=2737"/>
		<updated>2026-06-05T15:59:01Z</updated>

		<summary type="html">&lt;p&gt;Epìdosis: Not doable due to the absence of https://www.mediawiki.org/wiki/Extension:ParserFunctions - provisorial restore&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--{{LangSwitch1|pt={{:Main Page/pt}}|en={{:Main Page/en}}}}--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{:Main Page/en}}&lt;/div&gt;</summary>
		<author><name>Epìdosis</name></author>
	</entry>
	<entry>
		<id>https://wikibase.echoimages.labs.wikimedia.pt/w/index.php?title=MediaWiki:Lang/pt&amp;diff=2736</id>
		<title>MediaWiki:Lang/pt</title>
		<link rel="alternate" type="text/html" href="https://wikibase.echoimages.labs.wikimedia.pt/w/index.php?title=MediaWiki:Lang/pt&amp;diff=2736"/>
		<updated>2026-06-05T15:07:10Z</updated>

		<summary type="html">&lt;p&gt;Epìdosis: Created page with &amp;quot;pt&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;pt&lt;/div&gt;</summary>
		<author><name>Epìdosis</name></author>
	</entry>
	<entry>
		<id>https://wikibase.echoimages.labs.wikimedia.pt/w/index.php?title=MediaWiki:Lang/en&amp;diff=2735</id>
		<title>MediaWiki:Lang/en</title>
		<link rel="alternate" type="text/html" href="https://wikibase.echoimages.labs.wikimedia.pt/w/index.php?title=MediaWiki:Lang/en&amp;diff=2735"/>
		<updated>2026-06-05T15:07:04Z</updated>

		<summary type="html">&lt;p&gt;Epìdosis: Created page with &amp;quot;en&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;en&lt;/div&gt;</summary>
		<author><name>Epìdosis</name></author>
	</entry>
	<entry>
		<id>https://wikibase.echoimages.labs.wikimedia.pt/w/index.php?title=Module:LangSwitch&amp;diff=2734</id>
		<title>Module:LangSwitch</title>
		<link rel="alternate" type="text/html" href="https://wikibase.echoimages.labs.wikimedia.pt/w/index.php?title=Module:LangSwitch&amp;diff=2734"/>
		<updated>2026-06-05T15:01:03Z</updated>

		<summary type="html">&lt;p&gt;Epìdosis: Try&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;--[[&lt;br /&gt;
  __  __           _       _        _                      ____          _ _       _     &lt;br /&gt;
 |  \/  | ___   __| |_   _| | ___ _| |    __ _ _ __   __ _/ ___|_      _(_) |_ ___| |__  &lt;br /&gt;
 | |\/| |/ _ \ / _` | | | | |/ _ (_) |   / _` | &#039;_ \ / _` \___ \ \ /\ / / | __/ __| &#039;_ \ &lt;br /&gt;
 | |  | | (_) | (_| | |_| | |  __/_| |__| (_| | | | | (_| |___) \ V  V /| | || (__| | | |&lt;br /&gt;
 |_|  |_|\___/ \__,_|\__,_|_|\___(_)_____\__,_|_| |_|\__, |____/ \_/\_/ |_|\__\___|_| |_|&lt;br /&gt;
                                                     |___/                               &lt;br /&gt;
 Authors and maintainers:&lt;br /&gt;
* User:Zolo   - original version in Module:Fallback&lt;br /&gt;
* User:Jarekt &lt;br /&gt;
]]&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
_langSwitch&lt;br /&gt;
 &lt;br /&gt;
This function is the core part of the LangSwitch template. &lt;br /&gt;
 &lt;br /&gt;
Example usage from Lua:&lt;br /&gt;
text = _langSwitch({en=&#039;text in english&#039;, pl=&#039;tekst po polsku&#039;}, lang)&lt;br /&gt;
 &lt;br /&gt;
Parameters:&lt;br /&gt;
  args - table with translations by language&lt;br /&gt;
  lang - desired language (often user&#039;s native language)&lt;br /&gt;
 &lt;br /&gt;
 Error Handling:&lt;br /&gt;
 &lt;br /&gt;
]]&lt;br /&gt;
local function defaultCheck(args)&lt;br /&gt;
	if not args.en and not args.default then&lt;br /&gt;
		local err = &#039;&amp;lt;b class=&amp;quot;error&amp;quot;&amp;gt;LangSwitch Error: no default&amp;lt;/b&amp;gt;&#039;&lt;br /&gt;
		if args.nocat == &#039;1&#039; then&lt;br /&gt;
			return err&lt;br /&gt;
		else&lt;br /&gt;
			return err .. &#039;[[Category:LangSwitch template without default version]]&#039;&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return false&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
local function quickSwitch(args, arg)&lt;br /&gt;
	local err = defaultCheck(args)&lt;br /&gt;
	if err then&lt;br /&gt;
		return err&lt;br /&gt;
	end&lt;br /&gt;
	if arg == &#039;~&#039; then&lt;br /&gt;
		arg = &#039;&#039;&lt;br /&gt;
	end&lt;br /&gt;
	return arg&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
function p._langSwitch(args, lang) -- args: table of translations&lt;br /&gt;
	-- Return error if there is not default and no english version&lt;br /&gt;
	local err = defaultCheck(args)&lt;br /&gt;
	if err then&lt;br /&gt;
		return err&lt;br /&gt;
	end&lt;br /&gt;
	-- get the list of accepetable language (lang + those in lang&#039;s fallback chain) and check their content&lt;br /&gt;
	assert(lang, &#039;LangSwitch Error: no lang&#039;)&lt;br /&gt;
&lt;br /&gt;
	--local langList = {lang}&lt;br /&gt;
	--if not args[lang] then&lt;br /&gt;
	local langList = mw.language.getFallbacksFor(lang)&lt;br /&gt;
	table.insert(langList, 1, lang)&lt;br /&gt;
	table.insert(langList, math.max(#langList, 2), &#039;default&#039;)&lt;br /&gt;
	--end&lt;br /&gt;
&lt;br /&gt;
	for _, language in ipairs(langList) do&lt;br /&gt;
		lang = args[language]&lt;br /&gt;
		if lang == &#039;~&#039; then&lt;br /&gt;
			return &#039;&#039;&lt;br /&gt;
		elseif lang and lang ~= &#039;&#039; then&lt;br /&gt;
			return lang&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
langSwitch&lt;br /&gt;
 &lt;br /&gt;
This function is the core part of the LangSwitch template. &lt;br /&gt;
 &lt;br /&gt;
Example Usage from a template:&lt;br /&gt;
{{#invoke:fallback|langSwitch|en=text in english|pl=tekst po polsku|lang={{int:lang}} }}&lt;br /&gt;
 &lt;br /&gt;
Parameters:&lt;br /&gt;
  frame.args - table with translations by language&lt;br /&gt;
  frame.args.lang - desired language (often user&#039;s native language)&lt;br /&gt;
 &lt;br /&gt;
 Error Handling:&lt;br /&gt;
 &lt;br /&gt;
]]&lt;br /&gt;
function p.langSwitch(frame) -- version to be used from wikitext&lt;br /&gt;
	local args = frame.args&lt;br /&gt;
	-- if no expected args provided than check parent template/module args&lt;br /&gt;
	if args.en == nil and args.default == nil and args.nocat == nil then&lt;br /&gt;
		args = mw.getCurrentFrame():getParent().args&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local lang = args.lang&lt;br /&gt;
	if not lang or not mw.language.isSupportedLanguage(lang) then&lt;br /&gt;
		lang = frame:callParserFunction(&amp;quot;int&amp;quot;, &amp;quot;lang&amp;quot;) -- get user&#039;s chosen language&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Try quick switch&lt;br /&gt;
	local args1 = args[lang]&lt;br /&gt;
	if args1 and args1 ~= &#039;&#039; then&lt;br /&gt;
		return quickSwitch(args, args1)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Allow input in format: {{LangSwitch|de=Grün|es/it/pt=Verde|fr=Vert|en=Green |lang=en}}&lt;br /&gt;
	-- with multiple languages mapping to a single value&lt;br /&gt;
	args1 = {}&lt;br /&gt;
	for name, value in pairs(args) do&lt;br /&gt;
		if value ~= &#039;&#039; and type(name) == &#039;string&#039; then&lt;br /&gt;
			-- split multi keys&lt;br /&gt;
			for str in string.gmatch(name, &amp;quot;([^/]+)&amp;quot;) do&lt;br /&gt;
				args1[str] = value&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return p._langSwitch(args1, lang)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Epìdosis</name></author>
	</entry>
	<entry>
		<id>https://wikibase.echoimages.labs.wikimedia.pt/w/index.php?title=Module:Fallback&amp;diff=2733</id>
		<title>Module:Fallback</title>
		<link rel="alternate" type="text/html" href="https://wikibase.echoimages.labs.wikimedia.pt/w/index.php?title=Module:Fallback&amp;diff=2733"/>
		<updated>2026-06-05T15:00:42Z</updated>

		<summary type="html">&lt;p&gt;Epìdosis: Try&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;local p = {}&lt;br /&gt;
&lt;br /&gt;
-- List the full fallback chain from a language to default (usually English)&lt;br /&gt;
function p.fblist(lang)&lt;br /&gt;
	local fbtable = mw.language.getFallbacksFor(lang)&lt;br /&gt;
	table.insert(fbtable, 1, lang)&lt;br /&gt;
	--[[&lt;br /&gt;
	Take a translation from &amp;quot;Mediawiki:&amp;lt;Message-ID&amp;gt;/&amp;lt;language-code&amp;gt;&amp;quot; namespace&lt;br /&gt;
	or from a loaded i18 resource bundle in MediaWiki for its UI messages (also&lt;br /&gt;
	used by the &amp;quot;{{Int:&amp;lt;Message-ID&amp;gt;}}&amp;quot; parser function), before using the&lt;br /&gt;
	provided default value. Requires args.message = &#039;Message-ID&#039;, instead of&lt;br /&gt;
	args.message = &#039;actual translated message&#039;.&lt;br /&gt;
	--]]&lt;br /&gt;
	table.insert(fbtable, &#039;message&#039;)&lt;br /&gt;
	table.insert(fbtable, &#039;default&#039;)&lt;br /&gt;
	return fbtable&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[==[&lt;br /&gt;
Return an error if there is not default and no English version, otherwise&lt;br /&gt;
return the message in the most appropriate, plus the lang code as a second value.&lt;br /&gt;
--]==]&lt;br /&gt;
function p._langSwitch(args, lang)&lt;br /&gt;
	-- args: table of translations&lt;br /&gt;
	if not args.en and not args.default and not args.message and args.nocat ~= &#039;1&#039; then&lt;br /&gt;
		return error(&amp;quot;langSwitch error: no default&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
	-- Get language (either stated one or user&#039;s default language).&lt;br /&gt;
	if not lang then&lt;br /&gt;
		return &#039;&amp;lt;strong class=&amp;quot;error&amp;quot;&amp;gt;LangSwitch Error: no lang&amp;lt;/strong&amp;gt;&#039; -- must become proper error&lt;br /&gt;
	end&lt;br /&gt;
	-- Get the list of acceptable language (lang + those in lang&#039;s fallback chain) and check their content.&lt;br /&gt;
	for _, code in ipairs(p.fblist(lang)) do&lt;br /&gt;
		local msg = args[code]&lt;br /&gt;
		if msg then&lt;br /&gt;
			-- Trim the assigned message value before testing it.&lt;br /&gt;
			msg = mw.text.trim(msg)&lt;br /&gt;
			if msg ~= &#039;&#039; then&lt;br /&gt;
				if code == &#039;message&#039; then&lt;br /&gt;
					-- If this is an UI message. See [[mw:Manual:Messages API]].&lt;br /&gt;
					msg = mw.message.new(args.message):inLanguage(lang)&lt;br /&gt;
					--[==[ If this message name does not exist, converting it to&lt;br /&gt;
					a string would not return an actual message, but this name&lt;br /&gt;
					within curved angle brackets U+29FC/U+29FD &#039;⧼/⧽&#039;, &lt;br /&gt;
					part of mathematical symbols). The UI message may also be&lt;br /&gt;
					disabled administratively if it causes problems.&lt;br /&gt;
					--]==]&lt;br /&gt;
					if msg:exists() and not msg:isDisabled() then&lt;br /&gt;
						--[==[FIXME: In which language is this message?&lt;br /&gt;
						This may be in some fallback language and not lang.&lt;br /&gt;
						Note that some UI messages may have placeholders like &#039;%s&#039;&lt;br /&gt;
						but there&#039;s no way to replace them here by actual values.&lt;br /&gt;
						--]==]&lt;br /&gt;
						return tostring(msg), lang&lt;br /&gt;
					end&lt;br /&gt;
				elseif msg == &#039;~&#039; then&lt;br /&gt;
					return nil, code&lt;br /&gt;
				else&lt;br /&gt;
					return msg, code&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return nil&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[==[&lt;br /&gt;
Version to be used from wikitext.&lt;br /&gt;
--]==]&lt;br /&gt;
function p.langSwitch(frame)&lt;br /&gt;
	local args = frame.args&lt;br /&gt;
	-- If no expected args provided than check parent template/module args.&lt;br /&gt;
	if not args.en and not args.default and not args.nocat then&lt;br /&gt;
		args = frame:getParent().args&lt;br /&gt;
	end&lt;br /&gt;
	local lang&lt;br /&gt;
	if args.lang and args.lang ~= &#039;&#039; then&lt;br /&gt;
		lang = args.lang&lt;br /&gt;
		args.lang = nil&lt;br /&gt;
	else -- Get user&#039;s chosen language.&lt;br /&gt;
		lang = frame:preprocess(&amp;quot;{{Int:Lang}}&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
--[==[&lt;br /&gt;
	if args.zh ~= &#039;&#039; and args[&#039;zh-hans&#039;] == &#039;&#039; and args[&#039;zh-hant&#039;] == &#039;&#039; then&lt;br /&gt;
	else&lt;br /&gt;
	end&lt;br /&gt;
--]==]&lt;br /&gt;
	local str, language = p._langSwitch(args, lang)&lt;br /&gt;
	return str -- Get the first value of the langSwitch, (the text) not the second (the language).&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.fallbackpage(base, lang, formatting)&lt;br /&gt;
	local languages = p.fblist(lang)&lt;br /&gt;
	for i, lng in ipairs(languages) do&lt;br /&gt;
		if mw.title.new(base .. &#039;/&#039; .. lng).exists then&lt;br /&gt;
			if formatting == &#039;table&#039; then&lt;br /&gt;
				return {base .. &#039;/&#039; .. lng, lng} -- Returns name of the page + name of the language.&lt;br /&gt;
			else&lt;br /&gt;
				return base .. &#039;/&#039; .. lng -- Returns only the page.&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return base&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[==[&lt;br /&gt;
Logic for [[Template:Autotranslate]].&lt;br /&gt;
]==]&lt;br /&gt;
function p.autotranslate(frame)&lt;br /&gt;
	local args = frame.args&lt;br /&gt;
	if not args.lang or args.lang == &#039;&#039; then&lt;br /&gt;
		args.lang = frame:preprocess(&amp;quot;{{Int:Lang}}&amp;quot;) -- Get user&#039;s chosen language.&lt;br /&gt;
	end&lt;br /&gt;
	-- Find base page.&lt;br /&gt;
	local base = args.base&lt;br /&gt;
	if not base or base == &#039;&#039; then&lt;br /&gt;
		return &#039;&amp;lt;strong class=&amp;quot;error&amp;quot;&amp;gt;Base page not provided for autotranslate&amp;lt;/strong&amp;gt;&#039;&lt;br /&gt;
	end&lt;br /&gt;
	if string.sub(base, 2, 9) ~= &#039;emplate:&#039; then&lt;br /&gt;
		base = &#039;Template:&#039; .. base -- Base provided without &#039;Template:&#039; part.&lt;br /&gt;
	end&lt;br /&gt;
	-- Find base template language subpage.&lt;br /&gt;
	local page = p.fallbackpage(base, args.lang) --&lt;br /&gt;
	if (not page and base ~= args.base) then&lt;br /&gt;
		-- Try the original args.base string. This case is only needed if base is not in template namespace.&lt;br /&gt;
		page = p.fallbackpage(args.base, args.lang)&lt;br /&gt;
	end&lt;br /&gt;
	if not page then&lt;br /&gt;
		return string.format(&#039;&amp;lt;strong class=&amp;quot;error&amp;quot;&amp;gt;no fallback page found for autotranslate (base=[[%s]], lang=%s)&amp;lt;/strong&amp;gt;&#039;, args.base, args.lang)&lt;br /&gt;
	end&lt;br /&gt;
	-- Repack args in a standard table.&lt;br /&gt;
	local newargs = {}&lt;br /&gt;
	for field, value in pairs(args) do&lt;br /&gt;
		if field ~= &#039;base&#039; then&lt;br /&gt;
			newargs[field] = value&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	-- Transclude {{page |....}} with template arguments the same as the ones passed to {{autotranslate}} template.&lt;br /&gt;
	return frame:expandTemplate{ title = page, args = newargs }&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[==[&lt;br /&gt;
Translate data stored in a module.&lt;br /&gt;
]==]&lt;br /&gt;
function p.translate(page, key, lang)&lt;br /&gt;
	if type(page) == &#039;string&#039; then -- If the requested translation table is not yet loaded.&lt;br /&gt;
		page = require(&#039;Module:&#039; .. page)&lt;br /&gt;
	end&lt;br /&gt;
	local val&lt;br /&gt;
	if page[key] then&lt;br /&gt;
		val = page[key]&lt;br /&gt;
	elseif page.keys and page.keys[key] then -- Key &#039;keys&amp;quot; is an index of all keys, including redirects, see [[Module:i18n/datatype]].&lt;br /&gt;
		val = page.keys[key]&lt;br /&gt;
	end&lt;br /&gt;
	if not val then&lt;br /&gt;
		return &#039;&amp;lt;&#039; .. key .. &#039;&amp;gt;&#039;&lt;br /&gt;
	end&lt;br /&gt;
	return p._langSwitch(val, lang)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.translatelua(frame)&lt;br /&gt;
	local lang = frame.args.lang&lt;br /&gt;
	local page = require(&#039;Module:&#039; .. mw.text.trim(frame.args[1])) -- Page should only contain a simple of translations.&lt;br /&gt;
	if not lang or mw.text.trim(lang) == &#039;&#039; then&lt;br /&gt;
		lang = frame:preprocess(&amp;quot;{{Int:Lang}}&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
	if frame.args[2] then&lt;br /&gt;
		page = page[mw.text.trim(frame.args[2])]&lt;br /&gt;
	end&lt;br /&gt;
	return p._langSwitch(page, lang)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
 -- This test does not work (&#039;Module:Fallback/tests/fallbacks&#039; is missing)&lt;br /&gt;
function p.runTests()&lt;br /&gt;
	local toFallbackTest = require(&#039;Module:Fallback/tests/fallbacks&#039;)&lt;br /&gt;
	local result = true&lt;br /&gt;
	mw.log(&#039;Testing fallback chains&#039;)&lt;br /&gt;
	for i, t in ipairs(toFallbackTest) do&lt;br /&gt;
		local fbtbl = table.concat(p.fblist(t.initial), &#039;, &#039;)&lt;br /&gt;
		local expected = table.concat(t.expected, &#039;, &#039;)&lt;br /&gt;
		local ret = (fbtbl == expected)&lt;br /&gt;
		mw.log(i, ret and &#039;passed&#039; or &#039;FAILED&#039;, t.initial, (not ret) and (&#039;FAILED\nis &amp;gt;&amp;gt;&#039; .. fbtbl .. &#039;&amp;lt;&amp;lt;\nbut should be &amp;gt;&amp;gt;&#039; .. expected .. &#039;&amp;lt;&amp;lt;\n&#039;) or &#039;&#039;)&lt;br /&gt;
		result = result and ret&lt;br /&gt;
	end&lt;br /&gt;
	return result&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[==[&lt;br /&gt;
List all input arguments of the template that calls &amp;quot;{{#invoke:Fallback|showTemplateArguments}}&amp;quot;&lt;br /&gt;
]==]&lt;br /&gt;
function p.showTemplateArguments(frame)&lt;br /&gt;
	local str = &#039;&#039;&lt;br /&gt;
	for name, value in pairs( frame:getParent().args ) do&lt;br /&gt;
		if str == &#039;&#039; then&lt;br /&gt;
			str = string.format(&#039;%s=%s&#039;, name, value)          -- argument #1&lt;br /&gt;
		else&lt;br /&gt;
			str = string.format(&#039;%s, %s=%s&#039;, str, name, value) -- the rest&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return str&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Epìdosis</name></author>
	</entry>
	<entry>
		<id>https://wikibase.echoimages.labs.wikimedia.pt/w/index.php?title=Template:Uselang&amp;diff=2732</id>
		<title>Template:Uselang</title>
		<link rel="alternate" type="text/html" href="https://wikibase.echoimages.labs.wikimedia.pt/w/index.php?title=Template:Uselang&amp;diff=2732"/>
		<updated>2026-06-05T14:59:44Z</updated>

		<summary type="html">&lt;p&gt;Epìdosis: Try&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#ifeq:{{Int:Lang}}|⧼Lang⧽|en|{{Int:Lang}}}}&lt;/div&gt;</summary>
		<author><name>Epìdosis</name></author>
	</entry>
	<entry>
		<id>https://wikibase.echoimages.labs.wikimedia.pt/w/index.php?title=Main_Page&amp;diff=2731</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wikibase.echoimages.labs.wikimedia.pt/w/index.php?title=Main_Page&amp;diff=2731"/>
		<updated>2026-06-05T14:58:00Z</updated>

		<summary type="html">&lt;p&gt;Epìdosis: Try LangSwitch1&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{LangSwitch1|pt={{:Main Page/pt}}|en={{:Main Page/en}}}}&lt;/div&gt;</summary>
		<author><name>Epìdosis</name></author>
	</entry>
	<entry>
		<id>https://wikibase.echoimages.labs.wikimedia.pt/w/index.php?title=Main_Page/pt&amp;diff=2730</id>
		<title>Main Page/pt</title>
		<link rel="alternate" type="text/html" href="https://wikibase.echoimages.labs.wikimedia.pt/w/index.php?title=Main_Page/pt&amp;diff=2730"/>
		<updated>2026-06-05T14:57:33Z</updated>

		<summary type="html">&lt;p&gt;Epìdosis: Created page with &amp;quot;DRAFT DRAFT DRAFT&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;DRAFT DRAFT DRAFT&lt;/div&gt;</summary>
		<author><name>Epìdosis</name></author>
	</entry>
	<entry>
		<id>https://wikibase.echoimages.labs.wikimedia.pt/w/index.php?title=Main_Page&amp;diff=2729</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wikibase.echoimages.labs.wikimedia.pt/w/index.php?title=Main_Page&amp;diff=2729"/>
		<updated>2026-06-05T14:57:07Z</updated>

		<summary type="html">&lt;p&gt;Epìdosis: Epìdosis moved page Main Page to Main Page/en&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Main Page/en]]&lt;/div&gt;</summary>
		<author><name>Epìdosis</name></author>
	</entry>
	<entry>
		<id>https://wikibase.echoimages.labs.wikimedia.pt/w/index.php?title=Main_Page/en&amp;diff=2728</id>
		<title>Main Page/en</title>
		<link rel="alternate" type="text/html" href="https://wikibase.echoimages.labs.wikimedia.pt/w/index.php?title=Main_Page/en&amp;diff=2728"/>
		<updated>2026-06-05T14:57:06Z</updated>

		<summary type="html">&lt;p&gt;Epìdosis: Epìdosis moved page Main Page to Main Page/en&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;strong&amp;gt;Welcome to the wiki of ecoAr: Archive for Media Ecology&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
EcoAr proposes a critical rethinking of arts education and research, acknowledging that the ecological impacts of media are not only material and energy-related, but also embedded in processes of communication and (mis)information. It asks how sustainable and ecological practices can be articulated today within the complex relationship between communication technologies and the environment.&lt;br /&gt;
&lt;br /&gt;
Drawing on previous work like the seed project, [[EChO of IMAGES]], the main output of the ecoAr is the Archive Platform, constituted by this Mediawiki ecosystem for the data and tools like the [[https://echoimages.labs.wikimedia.pt EI frontend]].&lt;br /&gt;
&lt;br /&gt;
We recommend doing this [https://forms.gle/AXRVwFYgpzkXxopK7 learning form], to learn, understand, and operate with the platform.&lt;br /&gt;
&lt;br /&gt;
Consult the [[mediawikiwiki:Special:MyLanguage/Help:Contents|User&#039;s Guide]] for information on using the wiki software.&lt;br /&gt;
&lt;br /&gt;
== Getting started ==&lt;br /&gt;
* [[Wiki Getting started]]&lt;br /&gt;
* [[EI Frontend page]]&lt;/div&gt;</summary>
		<author><name>Epìdosis</name></author>
	</entry>
	<entry>
		<id>https://wikibase.echoimages.labs.wikimedia.pt/w/index.php?title=Template:LangSwitch1&amp;diff=2727</id>
		<title>Template:LangSwitch1</title>
		<link rel="alternate" type="text/html" href="https://wikibase.echoimages.labs.wikimedia.pt/w/index.php?title=Template:LangSwitch1&amp;diff=2727"/>
		<updated>2026-06-05T14:56:11Z</updated>

		<summary type="html">&lt;p&gt;Epìdosis: Try&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{{ &lt;br /&gt;
  {{#switch: {{{ {{Uselang|lang={{{lang|}}}}} |}}} &lt;br /&gt;
  | ~ = empty&lt;br /&gt;
  |   = {{#switch: {{{ {{GetFallback| {{Uselang|lang={{{lang|}}}}} |default=default}} |}}}&lt;br /&gt;
    | ~ = empty&lt;br /&gt;
    |   = {{#switch: {{{ {{GetFallback2| {{Uselang|lang={{{lang|}}}}} |default=default}} |}}}&lt;br /&gt;
      | ~        = empty&lt;br /&gt;
      |          = {{#if: {{{default|}}} | default | en }}&lt;br /&gt;
      | #default = {{GetFallback2| {{Uselang|lang={{{lang|}}}}} |default=default}}&lt;br /&gt;
      }}&lt;br /&gt;
    | #default = {{GetFallback| {{Uselang|lang={{{lang|}}}}} |default=default}}&lt;br /&gt;
    }}&lt;br /&gt;
  | #default = {{Uselang|lang={{{lang|}}}}}&lt;br /&gt;
  }} &lt;br /&gt;
|}}}&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{Documentation}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Epìdosis</name></author>
	</entry>
	<entry>
		<id>https://wikibase.echoimages.labs.wikimedia.pt/w/index.php?title=Item:Q176&amp;diff=2725</id>
		<title>Item:Q176</title>
		<link rel="alternate" type="text/html" href="https://wikibase.echoimages.labs.wikimedia.pt/w/index.php?title=Item:Q176&amp;diff=2725"/>
		<updated>2026-06-05T13:48:04Z</updated>

		<summary type="html">&lt;p&gt;Epìdosis: /* wbremoveclaims-remove:1| */ Property:P2: Item:Q49&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Epìdosis</name></author>
	</entry>
	<entry>
		<id>https://wikibase.echoimages.labs.wikimedia.pt/w/index.php?title=Item:Q176&amp;diff=2724</id>
		<title>Item:Q176</title>
		<link rel="alternate" type="text/html" href="https://wikibase.echoimages.labs.wikimedia.pt/w/index.php?title=Item:Q176&amp;diff=2724"/>
		<updated>2026-06-05T13:47:47Z</updated>

		<summary type="html">&lt;p&gt;Epìdosis: /* wbsetclaim-create:2||1 */ Property:P2: Item:Q49&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Epìdosis</name></author>
	</entry>
	<entry>
		<id>https://wikibase.echoimages.labs.wikimedia.pt/w/index.php?title=Module:Arguments/doc&amp;diff=2720</id>
		<title>Module:Arguments/doc</title>
		<link rel="alternate" type="text/html" href="https://wikibase.echoimages.labs.wikimedia.pt/w/index.php?title=Module:Arguments/doc&amp;diff=2720"/>
		<updated>2026-06-03T17:15:05Z</updated>

		<summary type="html">&lt;p&gt;Epìdosis: 1 revision imported: Import templates and modules from Wikidata&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;[[Category:Global Templates]]&amp;lt;/includeonly&amp;gt;&lt;/div&gt;</summary>
		<author><name>Epìdosis</name></author>
	</entry>
	<entry>
		<id>https://wikibase.echoimages.labs.wikimedia.pt/w/index.php?title=Template:Module-nav/i18n&amp;diff=2718</id>
		<title>Template:Module-nav/i18n</title>
		<link rel="alternate" type="text/html" href="https://wikibase.echoimages.labs.wikimedia.pt/w/index.php?title=Template:Module-nav/i18n&amp;diff=2718"/>
		<updated>2026-06-03T17:15:05Z</updated>

		<summary type="html">&lt;p&gt;Epìdosis: 1 revision imported: Import templates and modules from Wikidata&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#switch:{{lc:{{{1|}}}}}&lt;br /&gt;
&lt;br /&gt;
|subpages = {{LangSwitch&lt;br /&gt;
  |ar=الصفحات الفرعية&lt;br /&gt;
  |en=Subpages&lt;br /&gt;
  |he=דפי־משנה&lt;br /&gt;
  |ja=下位ページ&lt;br /&gt;
  |ko=하위 문서&lt;br /&gt;
  |pl=Podstrony&lt;br /&gt;
  |ru=Подстраницы&lt;br /&gt;
  |sv=Undersidor&lt;br /&gt;
  |zh-hans=子页面&lt;br /&gt;
  |zh-hant=子頁面&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
|link count= {{LangSwitch&lt;br /&gt;
  |ar=عدد الوصلات&lt;br /&gt;
  |en=Link count&lt;br /&gt;
  |he=ספירת קישורים&lt;br /&gt;
  |ja=リンク数&lt;br /&gt;
  |ko=링크 수&lt;br /&gt;
  |pl=Liczba linków&lt;br /&gt;
  |ru=Число ссылок&lt;br /&gt;
  |sv=Antal länkar&lt;br /&gt;
  |zh-hans=链接计数&lt;br /&gt;
  |zh-hant=連結計數&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
|tests= {{LangSwitch&lt;br /&gt;
  |ar=التجارب&lt;br /&gt;
  |en=Tests&lt;br /&gt;
  |he=בדיקות&lt;br /&gt;
  |ja=テスト&lt;br /&gt;
  |ko=테스트&lt;br /&gt;
  |pl=Testowanie&lt;br /&gt;
  |ru=Тесты &lt;br /&gt;
  |sv=Test&lt;br /&gt;
  |zh-hans=文字&lt;br /&gt;
  |zh-hant=文字&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
|live= {{LangSwitch&lt;br /&gt;
  |ar=الكود الحالي&lt;br /&gt;
  |en=Live code&lt;br /&gt;
  |he=קוד חי&lt;br /&gt;
  |ja=オンラインで実行&lt;br /&gt;
  |pl=Opublikowany kod&lt;br /&gt;
  |ru=Текущий код&lt;br /&gt;
  |sv=Aktuell kod&lt;br /&gt;
  |zh-hans=在线程序代码&lt;br /&gt;
  |zh-hant=線上程式代碼&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
|documentation= {{LangSwitch&lt;br /&gt;
  |ar=توثيق&lt;br /&gt;
  |en=Documentation&lt;br /&gt;
  |he=תיעוד&lt;br /&gt;
  |ja=解説&lt;br /&gt;
  |ko=설명문서&lt;br /&gt;
  |pl=Dokumentacja&lt;br /&gt;
  |ru=Документация&lt;br /&gt;
  |sv=Dokumentation&lt;br /&gt;
  |zh-hans=说明文档&lt;br /&gt;
  |zh-hant=說明文件&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
}}&amp;lt;noinclude&amp;gt;{{Documentation}}&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Epìdosis</name></author>
	</entry>
	<entry>
		<id>https://wikibase.echoimages.labs.wikimedia.pt/w/index.php?title=Template:Module-nav&amp;diff=2716</id>
		<title>Template:Module-nav</title>
		<link rel="alternate" type="text/html" href="https://wikibase.echoimages.labs.wikimedia.pt/w/index.php?title=Template:Module-nav&amp;diff=2716"/>
		<updated>2026-06-03T17:15:05Z</updated>

		<summary type="html">&lt;p&gt;Epìdosis: 1 revision imported: Import templates and modules from Wikidata&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;templatestyles src=&amp;quot;Module-nav/styles.css&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;module-nav&amp;quot;&amp;gt;&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
--&amp;gt; &amp;lt;!-- === Section # 1: Code, Discussion, Edit, history, links, Link count, QuickTest ===&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&amp;lt;span class=&amp;quot;tab1&amp;quot;&amp;gt;[[Module:{{{module|File}}}#com-module-code|{{int:Syntaxhighlight-visualeditor-mwsyntaxhighlightinspector-code}}]]&amp;lt;/span&amp;gt;&amp;lt;!--&lt;br /&gt;
--&amp;gt;&amp;lt;span class=&amp;quot;tab1&amp;quot;&amp;gt;[[:Module talk:{{ROOTPAGENAME:Module:{{{module|File}}}}}|{{int:talk}}]]&amp;lt;/span&amp;gt;&amp;lt;!--&lt;br /&gt;
--&amp;gt;&amp;lt;span class=&amp;quot;tab1&amp;quot;&amp;gt;[{{fullurl:Special:WhatLinksHere/:Module:{{{module|File}}}|limit=999}} {{Ucfirst:{{Int:Wikibase-diffview-link}}}}]&amp;lt;/span&amp;gt;&amp;lt;!--&lt;br /&gt;
--&amp;gt;&amp;lt;span class=&amp;quot;tab1&amp;quot;&amp;gt;[https://templatecount.toolforge.org/index.php?lang=wikidata&amp;amp;namespace=828&amp;amp;name={{ROOTPAGENAMEE:Module:{{{module|File}}}}} {{Module-nav/i18n|Link count}}]&amp;lt;/span&amp;gt;&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
--&amp;gt; &amp;lt;!-- === Section # 2: Subpages, Documentation, tests, results, sandbox ===&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&amp;lt;span class=&amp;quot;tab2&amp;quot;&amp;gt;[[Special:PrefixIndex/Module:{{ROOTPAGENAME:Module:{{{module|File}}}}}|{{Module-nav/i18n|Subpages}}]]&amp;lt;/span&amp;gt;&amp;lt;!--&lt;br /&gt;
--&amp;gt;&amp;lt;span class=&amp;quot;tab2&amp;quot;&amp;gt;[[Special:MyLanguage/Module:{{ROOTPAGENAME:Module:{{{module|File}}}}}/doc|{{Module-nav/i18n|documentation}}]]&amp;lt;/span&amp;gt;&amp;lt;!--&lt;br /&gt;
--&amp;gt;&amp;lt;span class=&amp;quot;tab2&amp;quot;&amp;gt;[[Module:{{{module|File}}}/testcases|{{Module-nav/i18n|tests}}]]&amp;lt;/span&amp;gt;&amp;lt;!--&lt;br /&gt;
--&amp;gt;&amp;lt;span class=&amp;quot;tab2&amp;quot;&amp;gt;[[Module talk:{{{module|File}}}/testcases|{{int:Apisandbox-results}}]]&amp;lt;/span&amp;gt;&amp;lt;!--&lt;br /&gt;
--&amp;gt;&amp;lt;span class=&amp;quot;tab2&amp;quot;&amp;gt;[[Module:{{ROOTPAGENAME:Module:{{{module|File}}}}}/sandbox|{{int:Sandboxlink-portlet-label}}]]&amp;lt;/span&amp;gt;&amp;lt;!--&lt;br /&gt;
--&amp;gt;&amp;lt;span class=&amp;quot;tab2&amp;quot;&amp;gt;[[Module:{{ROOTPAGENAME:Module:{{{module|File}}}}}|{{Module-nav/i18n|live}}]]&amp;lt;/span&amp;gt;&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
--&amp;gt; &amp;lt;!-- === Section # 3: All modules ===&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&amp;lt;span class=&amp;quot;tab3&amp;quot;&amp;gt;[[Special:PrefixIndex/Module:|All modules]]&amp;lt;/span&amp;gt;&amp;lt;!--&lt;br /&gt;
--&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{documentation}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Epìdosis</name></author>
	</entry>
	<entry>
		<id>https://wikibase.echoimages.labs.wikimedia.pt/w/index.php?title=Template:LuaLogo&amp;diff=2714</id>
		<title>Template:LuaLogo</title>
		<link rel="alternate" type="text/html" href="https://wikibase.echoimages.labs.wikimedia.pt/w/index.php?title=Template:LuaLogo&amp;diff=2714"/>
		<updated>2026-06-03T17:15:05Z</updated>

		<summary type="html">&lt;p&gt;Epìdosis: 1 revision imported: Import templates and modules from Wikidata&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;onlyinclude&amp;gt;&amp;lt;div style=&amp;quot;position:relative&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;width:{{#expr:{{{s|150}}}}}px;height:{{#expr:{{{s|150}}}}}px;border-radius:50%;background-color:#19198A&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;position:absolute;top:{{#expr:{{{s|150}}}*0.4}}px;color:#fff;font-family:Helvetica,Arial,sans-serif;font-weight:bold;font-size:{{#expr:{{{s|150}}}*0.525}}px;line-height:{{#expr:{{{s|150}}}*0.525}}px;&amp;quot;&amp;gt;Lua&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;width:{{#expr:{{{s|150}}}*0.267}}px;height:{{#expr:{{{s|150}}}*0.267}}px;border-radius:50%;background-color:#fff;position:absolute;top:{{#expr:{{{s|150}}}*0.034+( &amp;lt;!--radius--&amp;gt;( (&amp;lt;!--total_w--&amp;gt;{{{s|150}}} - &amp;lt;!--self_w--&amp;gt;{{{s|150}}}*0.267)/2 - &amp;lt;!--padding--&amp;gt;{{{s|150}}}*0.034 )*(1-0.707106781186548) )}}px;left:{{#expr:(({{{s|150}}}-({{{s|150}}}*0.267))/2)+( &amp;lt;!--radius--&amp;gt;( (&amp;lt;!--total_w--&amp;gt;{{{s|150}}} - &amp;lt;!--self_w--&amp;gt;{{{s|150}}}*0.267)/2 - &amp;lt;!--padding--&amp;gt;{{{s|150}}}*0.034 )*&amp;lt;!--rotation matrix--&amp;gt;(0.707106781186548) )}}px&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{documentation}}&lt;/div&gt;</summary>
		<author><name>Epìdosis</name></author>
	</entry>
	<entry>
		<id>https://wikibase.echoimages.labs.wikimedia.pt/w/index.php?title=Template:Trim&amp;diff=2712</id>
		<title>Template:Trim</title>
		<link rel="alternate" type="text/html" href="https://wikibase.echoimages.labs.wikimedia.pt/w/index.php?title=Template:Trim&amp;diff=2712"/>
		<updated>2026-06-03T17:15:05Z</updated>

		<summary type="html">&lt;p&gt;Epìdosis: 1 revision imported: Import templates and modules from Wikidata&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;{{ {{{|safesubst:}}}#if:1|{{{1|}}}}}&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Documentation}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Epìdosis</name></author>
	</entry>
	<entry>
		<id>https://wikibase.echoimages.labs.wikimedia.pt/w/index.php?title=Template:TranslateThis&amp;diff=2710</id>
		<title>Template:TranslateThis</title>
		<link rel="alternate" type="text/html" href="https://wikibase.echoimages.labs.wikimedia.pt/w/index.php?title=Template:TranslateThis&amp;diff=2710"/>
		<updated>2026-06-03T17:15:05Z</updated>

		<summary type="html">&lt;p&gt;Epìdosis: 1 revision imported: Import templates and modules from Wikidata&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;{{#invoke:TranslateThis|main}}&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;{{documentation}}&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Epìdosis</name></author>
	</entry>
	<entry>
		<id>https://wikibase.echoimages.labs.wikimedia.pt/w/index.php?title=Template:Str_left&amp;diff=2708</id>
		<title>Template:Str left</title>
		<link rel="alternate" type="text/html" href="https://wikibase.echoimages.labs.wikimedia.pt/w/index.php?title=Template:Str_left&amp;diff=2708"/>
		<updated>2026-06-03T17:15:05Z</updated>

		<summary type="html">&lt;p&gt;Epìdosis: 1 revision imported: Import templates and modules from Wikidata&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;{{safesubst:padleft:|{{{2|1}}}|{{{1}}}}}&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{Documentation}}&lt;br /&gt;
&amp;lt;!-- Categories go on the /doc subpage. --&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Epìdosis</name></author>
	</entry>
	<entry>
		<id>https://wikibase.echoimages.labs.wikimedia.pt/w/index.php?title=Template:Statement&amp;diff=2706</id>
		<title>Template:Statement</title>
		<link rel="alternate" type="text/html" href="https://wikibase.echoimages.labs.wikimedia.pt/w/index.php?title=Template:Statement&amp;diff=2706"/>
		<updated>2026-06-03T17:15:05Z</updated>

		<summary type="html">&lt;p&gt;Epìdosis: 1 revision imported: Import templates and modules from Wikidata&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#invoke: Statement|main}}&amp;lt;templatestyles src=&amp;quot;Statement/styles.css&amp;quot; /&amp;gt;&amp;lt;noinclude&amp;gt;{{Documentation}}&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Epìdosis</name></author>
	</entry>
	<entry>
		<id>https://wikibase.echoimages.labs.wikimedia.pt/w/index.php?title=Template:SPARQL_Inline&amp;diff=2704</id>
		<title>Template:SPARQL Inline</title>
		<link rel="alternate" type="text/html" href="https://wikibase.echoimages.labs.wikimedia.pt/w/index.php?title=Template:SPARQL_Inline&amp;diff=2704"/>
		<updated>2026-06-03T17:15:05Z</updated>

		<summary type="html">&lt;p&gt;Epìdosis: 1 revision imported: Import templates and modules from Wikidata&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;onlyinclude&amp;gt;[//{{{server|{{#if:{{{commons|}}}|commons-query.wikimedia.org|query.wikidata.org}}}}}/embed.html#{{urlencode: {{SPARQLText|p={{{p|}}}|q={{{q|}}}|v={{{v|}}}|query= {{#if:{{{title|}}}|#title:{{{label}}}|}}&lt;br /&gt;
{{#invoke:ConcatArgs|ConcatArgs|init=query|min=1}}|extraprefix={{{extraprefix|}}} }} | PATH }} {{{label|{{#if: {{#invoke:SPARQLMentions|getTitle|{{{query}}}}}|{{#invoke:SPARQLMentions|getTitle|{{{query}}}}}|Sparql output}}}}}] ([//{{{server|{{#if:{{{commons|}}}|commons-query.wikimedia.org|query.wikidata.org}}}}}/#{{urlencode: {{SPARQLText|p={{{p|}}}|q={{{q|}}}|v={{{v|}}}|query={{#if:{{{title|}}}|#title:{{{label}}}|}}&lt;br /&gt;
{{#invoke:ConcatArgs|ConcatArgs|init=query|min=1}}|extraprefix={{{extraprefix|}}} }} | PATH }} {{LangSwitch|en=query|cs=dotaz|fi=kysely|fr=requête|sv=sökfråga}}]) {{#if: {{{qlever|}}} | {{#switch:{{{project|wd}}} |wd|sdc=([{{#switch:{{{project|wd}}}|wd=//qlever.dev/wikidata/|sdc=//https://qlever.dev/wikimedia-commons/}}?query={{urlencode:PREFIX wikibase: &amp;lt;http://wikiba.se/ontology#&amp;gt; PREFIX wdt: &amp;lt;http://www.wikidata.org/prop/direct/&amp;gt; PREFIX wd: &amp;lt;http://www.wikidata.org/entity/&amp;gt; PREFIX rdfs: &amp;lt;http://www.w3.org/2000/01/rdf-schema#&amp;gt;&lt;br /&gt;
{{SPARQLText|p={{{p|}}}|q={{{q|}}}|v={{{v|}}}|query={{#invoke:ConcatArgs|ConcatArgs|init=query|min=1}}|extraprefix={{{extraprefix|}}} }} | PATH }} QLever]) | (QLever link unavailable for custom project)}}}}&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{documentation}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Epìdosis</name></author>
	</entry>
	<entry>
		<id>https://wikibase.echoimages.labs.wikimedia.pt/w/index.php?title=Template:SPARQLText&amp;diff=2702</id>
		<title>Template:SPARQLText</title>
		<link rel="alternate" type="text/html" href="https://wikibase.echoimages.labs.wikimedia.pt/w/index.php?title=Template:SPARQLText&amp;diff=2702"/>
		<updated>2026-06-03T17:15:05Z</updated>

		<summary type="html">&lt;p&gt;Epìdosis: 1 revision imported: Import templates and modules from Wikidata&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#if:{{{p|}}}{{{v|}}}{{{q|}}}{{{extraprefix|}}}|&lt;br /&gt;
{{If||{{{p|}}}|&lt;br /&gt;
PREFIX p: &amp;lt;http://www.wikidata.org/prop/&amp;gt;|}}{{If||{{{q|}}}|&lt;br /&gt;
PREFIX q: &amp;lt;http://www.wikidata.org/prop/qualifier/&amp;gt;|}}{{If||{{{v|}}}|&lt;br /&gt;
PREFIX v: &amp;lt;http://www.wikidata.org/prop/statement/&amp;gt;|}}{{If||{{{extraprefix|}}}|&lt;br /&gt;
{{{extraprefix}}}|}}&lt;br /&gt;
}}{{{query}}}&amp;lt;noinclude&amp;gt;{{doc}}&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Epìdosis</name></author>
	</entry>
	<entry>
		<id>https://wikibase.echoimages.labs.wikimedia.pt/w/index.php?title=Template:SPARQL&amp;diff=2700</id>
		<title>Template:SPARQL</title>
		<link rel="alternate" type="text/html" href="https://wikibase.echoimages.labs.wikimedia.pt/w/index.php?title=Template:SPARQL&amp;diff=2700"/>
		<updated>2026-06-03T17:15:05Z</updated>

		<summary type="html">&lt;p&gt;Epìdosis: 1 revision imported: Import templates and modules from Wikidata&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;onlyinclude&amp;gt;&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&amp;lt;templatestyles src=&amp;quot;SPARQL/styles.css&amp;quot; /&amp;gt;&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&amp;lt;div class=&amp;quot;wdt-sparql-container {{#if:{{{state|}}}|wdt-sparql-container-collapsible}}&amp;quot;&amp;gt;&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
    --&amp;gt;&amp;lt;div {{#switch: {{{state|}}} | collapsed = class=&amp;quot;mw-collapsible mw-collapsed&amp;quot; | expanded = class=&amp;quot;mw-collapsible&amp;quot; }} &amp;gt;&amp;lt;!--&lt;br /&gt;
        --&amp;gt;{{#tag:syntaxhighlight|{{SPARQLText|p={{{p|}}}|q={{{q|}}}|v={{{v|}}}|query={{#invoke:ConcatArgs|ConcatArgs|init=query|min=1}}|extraprefix={{{extraprefix|}}} }}|lang=&amp;quot;sparql&amp;quot;|highlight=&amp;quot;{{{highlight|}}}&amp;quot;}}&amp;lt;!--&lt;br /&gt;
    --&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;!--&lt;br /&gt;
 &lt;br /&gt;
    # the link URL&lt;br /&gt;
    --&amp;gt;[{{#switch:{{{project|wd}}}|wd=//query.wikidata.org/|sdc=//commons-query.wikimedia.org/|{{{project}}}}}{{#ifeq: {{{embedded|}}} | yes |embed.html | }}#{{urlencode: {{SPARQLText|p={{{p|}}}|q={{{q|}}}|v={{{v|}}}|query={{#invoke:ConcatArgs|ConcatArgs|init=query|min=1}}|extraprefix={{{extraprefix|}}} }} | PATH }} &amp;lt;!--&lt;br /&gt;
    &lt;br /&gt;
    # the link label&lt;br /&gt;
    --&amp;gt;{{{label|{{#if: {{#invoke:SPARQLMentions|getTitle|{{{query}}}}}|{{#invoke:SPARQLMentions|getTitle|{{{query}}}}}|{{int try it}}}}}}}] &amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
    # Optional Orb Open Graph link&lt;br /&gt;
   --&amp;gt;{{#if: {{{orb|}}} | ([//try.orbopengraph.com/#{{urlencode: {{#invoke:ConcatArgs|ConcatArgs|init=query|min=1}} | PATH }} Orb Open Graph])}}&amp;lt;!--&lt;br /&gt;
    &lt;br /&gt;
    # Optional QLever link&lt;br /&gt;
    --&amp;gt;{{#if: {{{qlever|}}} | {{#switch:{{{project|wd}}} |wd|sdc=([{{#switch:{{{project|wd}}}|wd=//qlever.dev/wikidata/|sdc=//https://qlever.dev/wikimedia-commons/}}?query={{urlencode:PREFIX wikibase: &amp;lt;http://wikiba.se/ontology#&amp;gt; PREFIX wdt: &amp;lt;http://www.wikidata.org/prop/direct/&amp;gt; PREFIX wd: &amp;lt;http://www.wikidata.org/entity/&amp;gt; PREFIX rdfs: &amp;lt;http://www.w3.org/2000/01/rdf-schema#&amp;gt; {{SPARQLText|p={{{p|}}}|q={{{q|}}}|v={{{v|}}}|query={{#invoke:ConcatArgs|ConcatArgs|init=query|min=1}}|extraprefix={{{extraprefix|}}} }} | PATH }} QLever]) | (QLever link unavailable for custom project)}}}} &amp;lt;!--&lt;br /&gt;
    &lt;br /&gt;
    # Optional query-scholarly&lt;br /&gt;
    --&amp;gt;{{#if: {{{scholarly|}}} | {{#switch:{{{project|wd}}} |wd|sdc=([{{#switch:{{{project|wd}}}|wd=//query-scholarly.wikidata.org/|sdc=}}#{{urlencode: {{SPARQLText|p={{{p|}}}|q={{{q|}}}|v={{{v|}}}|query={{#invoke:ConcatArgs|ConcatArgs|init=query|min=1}}|extraprefix={{{extraprefix|}}} }} | PATH }} query-scholarly]) | (query-scholarly unavailable for custom project)}}}} &amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
    # add the short url, if any&lt;br /&gt;
    --&amp;gt;{{#if: {{{shortURL|}}} | (&amp;lt;nowiki /&amp;gt;https://w.wiki/{{{shortURL}}}&amp;lt;nowiki /&amp;gt;) }}&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
# close outer div&lt;br /&gt;
--&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{Documentation}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Epìdosis</name></author>
	</entry>
	<entry>
		<id>https://wikibase.echoimages.labs.wikimedia.pt/w/index.php?title=Template:Q&amp;diff=2698</id>
		<title>Template:Q</title>
		<link rel="alternate" type="text/html" href="https://wikibase.echoimages.labs.wikimedia.pt/w/index.php?title=Template:Q&amp;diff=2698"/>
		<updated>2026-06-03T17:15:05Z</updated>

		<summary type="html">&lt;p&gt;Epìdosis: 1 revision imported: Import templates and modules from Wikidata&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{label|{{{1|}}}|capitalization={{{capitalization|}}} |show_id=1 |link=wikidata}}&amp;lt;noinclude&amp;gt;{{documentation}}&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Epìdosis</name></author>
	</entry>
	<entry>
		<id>https://wikibase.echoimages.labs.wikimedia.pt/w/index.php?title=Template:Property&amp;diff=2696</id>
		<title>Template:Property</title>
		<link rel="alternate" type="text/html" href="https://wikibase.echoimages.labs.wikimedia.pt/w/index.php?title=Template:Property&amp;diff=2696"/>
		<updated>2026-06-03T17:15:05Z</updated>

		<summary type="html">&lt;p&gt;Epìdosis: 1 revision imported: Import templates and modules from Wikidata&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;{{documentation}}&amp;lt;/noinclude&amp;gt;&amp;lt;includeonly&amp;gt;{{#ifeq: {{str left|{{{1|}}}|1}} | P  &lt;br /&gt;
 | {{#if:{{{anchor|}}}|{{anchor|Property:{{{1|}}}}}}}[[Property:{{{1|}}}|{{label|{{{1|}}}}}{{#ifeq:{{{show_p|}}}|no||&amp;amp;#32;&amp;lt;small dir=&amp;quot;ltr&amp;quot;&amp;gt;{{int:parentheses|{{{1|}}}}}&amp;lt;/small&amp;gt;}}]]&lt;br /&gt;
 | {{#if:{{{anchor|}}}|{{anchor|Property:P{{{1|}}}}}}}[[Property:P{{{1|}}}|{{label|P{{{1|}}}}}{{#ifeq:{{{show_p|}}}|no||&amp;amp;#32;&amp;lt;small dir=&amp;quot;ltr&amp;quot;&amp;gt;{{int:parentheses|P{{{1|}}}}}&amp;lt;/small&amp;gt;}}]]&lt;br /&gt;
}}&amp;lt;/includeonly&amp;gt;&lt;/div&gt;</summary>
		<author><name>Epìdosis</name></author>
	</entry>
	<entry>
		<id>https://wikibase.echoimages.labs.wikimedia.pt/w/index.php?title=Template:P&amp;diff=2694</id>
		<title>Template:P</title>
		<link rel="alternate" type="text/html" href="https://wikibase.echoimages.labs.wikimedia.pt/w/index.php?title=Template:P&amp;diff=2694"/>
		<updated>2026-06-03T17:15:05Z</updated>

		<summary type="html">&lt;p&gt;Epìdosis: 1 revision imported: Import templates and modules from Wikidata&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Template:Property]]&lt;/div&gt;</summary>
		<author><name>Epìdosis</name></author>
	</entry>
	<entry>
		<id>https://wikibase.echoimages.labs.wikimedia.pt/w/index.php?title=Template:LangSwitch&amp;diff=2692</id>
		<title>Template:LangSwitch</title>
		<link rel="alternate" type="text/html" href="https://wikibase.echoimages.labs.wikimedia.pt/w/index.php?title=Template:LangSwitch&amp;diff=2692"/>
		<updated>2026-06-03T17:15:05Z</updated>

		<summary type="html">&lt;p&gt;Epìdosis: 1 revision imported: Import templates and modules from Wikidata&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;{{#invoke: LangSwitch|langSwitch}}&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{Documentation}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Epìdosis</name></author>
	</entry>
	<entry>
		<id>https://wikibase.echoimages.labs.wikimedia.pt/w/index.php?title=Template:Label&amp;diff=2690</id>
		<title>Template:Label</title>
		<link rel="alternate" type="text/html" href="https://wikibase.echoimages.labs.wikimedia.pt/w/index.php?title=Template:Label&amp;diff=2690"/>
		<updated>2026-06-03T17:15:04Z</updated>

		<summary type="html">&lt;p&gt;Epìdosis: 1 revision imported: Import templates and modules from Wikidata&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#if:{{{item|{{{1|}}} }}}|&lt;br /&gt;
  {{#invoke:Wikidata label|getLabel&lt;br /&gt;
    |item={{{item|{{{1|}}} }}}&lt;br /&gt;
    |lang={{{lang|{{{2|}}} }}}&lt;br /&gt;
    |link={{{link|-}}}&lt;br /&gt;
    |capitalization={{{capitalization|none}}}&lt;br /&gt;
    |show_id={{{show_id|}}}&lt;br /&gt;
  }} &lt;br /&gt;
}}&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{documentation}}&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Epìdosis</name></author>
	</entry>
	<entry>
		<id>https://wikibase.echoimages.labs.wikimedia.pt/w/index.php?title=Template:Int_try_it&amp;diff=2688</id>
		<title>Template:Int try it</title>
		<link rel="alternate" type="text/html" href="https://wikibase.echoimages.labs.wikimedia.pt/w/index.php?title=Template:Int_try_it&amp;diff=2688"/>
		<updated>2026-06-03T17:15:04Z</updated>

		<summary type="html">&lt;p&gt;Epìdosis: 1 revision imported: Import templates and modules from Wikidata&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Template:Int run it]]&lt;/div&gt;</summary>
		<author><name>Epìdosis</name></author>
	</entry>
	<entry>
		<id>https://wikibase.echoimages.labs.wikimedia.pt/w/index.php?title=Template:Int_run_it&amp;diff=2686</id>
		<title>Template:Int run it</title>
		<link rel="alternate" type="text/html" href="https://wikibase.echoimages.labs.wikimedia.pt/w/index.php?title=Template:Int_run_it&amp;diff=2686"/>
		<updated>2026-06-03T17:15:04Z</updated>

		<summary type="html">&lt;p&gt;Epìdosis: 1 revision imported: Import templates and modules from Wikidata&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;{{doc}}&amp;lt;/noinclude&amp;gt;{{TranslateThis&lt;br /&gt;
|ar=تجربة!&lt;br /&gt;
|ast=¡Pruébalo!&lt;br /&gt;
|be-tarask=Паспрабуйце!&lt;br /&gt;
|bn=এটি চেষ্টা করে দেখুন!&lt;br /&gt;
|bs=Isprobajte!&lt;br /&gt;
|ca=Prova-ho!&lt;br /&gt;
|cs=Zkuste to!&lt;br /&gt;
|cy=Ceisio!&lt;br /&gt;
|da=Prøv det!&lt;br /&gt;
|de=Versuche es!&lt;br /&gt;
|de-at|de-ch=Es kann versucht werden!&lt;br /&gt;
|de-formal=Versuchen Sie es!&lt;br /&gt;
|el=Δοκιμάστε το!&lt;br /&gt;
|en=Try it!&lt;br /&gt;
|en-gb=Try it!&lt;br /&gt;
|eo=Provu ĝin!&lt;br /&gt;
|es=¡Pruébalo!&lt;br /&gt;
|fi=Kokeile!&lt;br /&gt;
|fr=Essayez&amp;amp;nbsp;!&lt;br /&gt;
|hu=Próbáld ki!&lt;br /&gt;
|hy=Փորձի՛ր&lt;br /&gt;
|id=Cobalah!&lt;br /&gt;
|it=Provalo!&lt;br /&gt;
|ja=試す!&lt;br /&gt;
|he=לנסות את זה!&lt;br /&gt;
|ko=실행하기!&lt;br /&gt;
|ku=Biceribîne!&lt;br /&gt;
|lv=Izmēģini!&lt;br /&gt;
|mk=Пробајте!&lt;br /&gt;
|ms=Jalankan!&lt;br /&gt;
|ms-arab=جالنکن!&lt;br /&gt;
|nl=Probeer!&lt;br /&gt;
|nb=Prøv selv!&lt;br /&gt;
|nn=Prøv sjølv&lt;br /&gt;
|pa=ਪ੍ਰਸ਼ਨ ਕਰੋ&lt;br /&gt;
|pnb=پرشن کرو&lt;br /&gt;
|pl=Wypróbuj!&lt;br /&gt;
|pt=Experimenta!&lt;br /&gt;
|pt-br=Experimente!&lt;br /&gt;
|ro=Încercați!&lt;br /&gt;
|ru=Выполнить запрос&lt;br /&gt;
|sq=Provoje&lt;br /&gt;
|sr=Испробајте!&lt;br /&gt;
|sv=Testa!&lt;br /&gt;
|th=ทดลองใช้&lt;br /&gt;
|tr=Deneyin!&lt;br /&gt;
|udm=Оскалтэ!&lt;br /&gt;
|uk=Виконати!&lt;br /&gt;
|zh=试一试！&lt;br /&gt;
|zh-hans=试一试！&lt;br /&gt;
|zh-hant=試一試！&lt;br /&gt;
|zh-tw=試試看！&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Epìdosis</name></author>
	</entry>
	<entry>
		<id>https://wikibase.echoimages.labs.wikimedia.pt/w/index.php?title=Template:Int&amp;diff=2684</id>
		<title>Template:Int</title>
		<link rel="alternate" type="text/html" href="https://wikibase.echoimages.labs.wikimedia.pt/w/index.php?title=Template:Int&amp;diff=2684"/>
		<updated>2026-06-03T17:15:04Z</updated>

		<summary type="html">&lt;p&gt;Epìdosis: 1 revision imported: Import templates and modules from Wikidata&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;onlyinclude&amp;gt;{{&amp;lt;includeonly&amp;gt;safesubst:&amp;lt;/includeonly&amp;gt;#invoke:Int|renderIntMessage|{{{1}}}|missing={{{missing|}}}|lang={{{lang|}}}}}&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
{{Documentation}}&lt;br /&gt;
&amp;lt;!-- Add categories to the /doc subpage, not here! --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Epìdosis</name></author>
	</entry>
	<entry>
		<id>https://wikibase.echoimages.labs.wikimedia.pt/w/index.php?title=Template:Hidden_end&amp;diff=2682</id>
		<title>Template:Hidden end</title>
		<link rel="alternate" type="text/html" href="https://wikibase.echoimages.labs.wikimedia.pt/w/index.php?title=Template:Hidden_end&amp;diff=2682"/>
		<updated>2026-06-03T17:15:04Z</updated>

		<summary type="html">&lt;p&gt;Epìdosis: 1 revision imported: Import templates and modules from Wikidata&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{EndDiv}}{{EndDiv}}{{EndDiv}}&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{documentation}}&lt;br /&gt;
[[Category:Templates]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Epìdosis</name></author>
	</entry>
	<entry>
		<id>https://wikibase.echoimages.labs.wikimedia.pt/w/index.php?title=Template:Hidden_begin&amp;diff=2680</id>
		<title>Template:Hidden begin</title>
		<link rel="alternate" type="text/html" href="https://wikibase.echoimages.labs.wikimedia.pt/w/index.php?title=Template:Hidden_begin&amp;diff=2680"/>
		<updated>2026-06-03T17:15:04Z</updated>

		<summary type="html">&lt;p&gt;Epìdosis: 1 revision imported: Import templates and modules from Wikidata&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;border: {{{border|1px solid var(--border-color-base, #a2a9b1)}}}; padding: {{{padding|2px}}}; width:{{{width|100%}}};&amp;quot;&amp;gt;&amp;lt;div class=&amp;quot;mw-collapsible {{{{{|safesubst:}}}#if:{{{expand|}}}||mw-collapsed}}&amp;quot; style=&amp;quot;border:none;&amp;quot;&amp;gt;&amp;lt;!--&lt;br /&gt;
--&amp;gt;&amp;lt;div style=&amp;quot;font-size:{{{fontsize1|small}}}; font-weight: {{{fw1|bold}}}; padding-left: 10px; background-color: {{{bg1|var(--background-color-neutral, #eaecf0); color:inherit}}}; text-align: {{{ta1|left}}}; {{{extra1|}}}&amp;quot;&amp;gt;{{{1|{{{title|{{autotranslate|base=Hidden begin/text}}}}}}}}&amp;lt;/div&amp;gt;&amp;lt;!--&lt;br /&gt;
--&amp;gt;&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot; style=&amp;quot;font-size:{{{fontsize2|small}}}; background-color: {{{bg2|transparent; color:inherit}}}; text-align: {{{ta2|left}}}; {{{extra2|}}}&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{Lorem ipsum}}&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
{{documentation}}&amp;lt;!-- EDITORS: WHEN CHANGING THIS TEMPLATE, DON&#039;T FORGET TO UPDATE THE DOCUMENTATION! (if necessary) --&amp;gt;&lt;br /&gt;
[[Category:Templates]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Epìdosis</name></author>
	</entry>
	<entry>
		<id>https://wikibase.echoimages.labs.wikimedia.pt/w/index.php?title=Template:Hidden&amp;diff=2678</id>
		<title>Template:Hidden</title>
		<link rel="alternate" type="text/html" href="https://wikibase.echoimages.labs.wikimedia.pt/w/index.php?title=Template:Hidden&amp;diff=2678"/>
		<updated>2026-06-03T17:15:04Z</updated>

		<summary type="html">&lt;p&gt;Epìdosis: 1 revision imported: Import templates and modules from Wikidata&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{hidden begin|toggle={{{showhide|}}}{{{toggle|}}}|expanded={{{expanded|}}}|class={{{class|}}}|border={{{border|none}}}|style={{{style|{{{css|}}}}}}&lt;br /&gt;
|bg1={{{bg1|transparent; color:inherit}}}|ta1={{{ta1|center}}}|fw1={{{fw1|bold}}}|titlestyle={{#if:{{{multiline|{{{multi-line|}}}}}}|height:auto;}}{{{headercss|{{{headerstyle|{{{titlestyle|}}}}}}}}}&lt;br /&gt;
|title={{#if:{{{multiline|{{{multi-line|}}}}}}|&amp;lt;div style=&amp;quot;margin-right:4em;line-height:125%;height:auto;&amp;quot;&amp;gt;{{{title|{{{header|{{{1}}}}}}}}}&amp;lt;/div&amp;gt;|{{{title|{{{header|{{{1}}}}}}}}}}}&lt;br /&gt;
|bg2={{{bg2|transparent; color:inherit}}}|ta2={{{ta2|left}}}|contentstyle={{#ifeq:{{{fw2|normal}}}|normal||font-weight:{{{fw2|normal}}};}}{{{contentcss|{{{contentstyle|}}}}}} }}&lt;br /&gt;
{{{content|{{{contents|{{{2}}}}}}}}}{{hidden end}}{{#if:{{{bg1|}}}{{{bg2|}}}{{{ta1|}}}{{{ta2|}}}{{{fw1|}}}{{{fw2|}}}|[[Category:Hidden templates using styles|{{NAMESPACE}}{{PAGENAME}}]]}}&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{documentation}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Epìdosis</name></author>
	</entry>
	<entry>
		<id>https://wikibase.echoimages.labs.wikimedia.pt/w/index.php?title=Template:EndDiv&amp;diff=2676</id>
		<title>Template:EndDiv</title>
		<link rel="alternate" type="text/html" href="https://wikibase.echoimages.labs.wikimedia.pt/w/index.php?title=Template:EndDiv&amp;diff=2676"/>
		<updated>2026-06-03T17:15:04Z</updated>

		<summary type="html">&lt;p&gt;Epìdosis: 1 revision imported: Import templates and modules from Wikidata&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;/div&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{documentation}}&lt;br /&gt;
[[Category:Templates]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Epìdosis</name></author>
	</entry>
	<entry>
		<id>https://wikibase.echoimages.labs.wikimedia.pt/w/index.php?title=Template:Dir&amp;diff=2674</id>
		<title>Template:Dir</title>
		<link rel="alternate" type="text/html" href="https://wikibase.echoimages.labs.wikimedia.pt/w/index.php?title=Template:Dir&amp;diff=2674"/>
		<updated>2026-06-03T17:15:04Z</updated>

		<summary type="html">&lt;p&gt;Epìdosis: 1 revision imported: Import templates and modules from Wikidata&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#ifeq:{{#dir:{{{1|}}}}}|rtl|{{{2|rtl}}}|{{{3|ltr}}}}}&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Documentation}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Epìdosis</name></author>
	</entry>
	<entry>
		<id>https://wikibase.echoimages.labs.wikimedia.pt/w/index.php?title=Template:Autotranslate&amp;diff=2672</id>
		<title>Template:Autotranslate</title>
		<link rel="alternate" type="text/html" href="https://wikibase.echoimages.labs.wikimedia.pt/w/index.php?title=Template:Autotranslate&amp;diff=2672"/>
		<updated>2026-06-03T17:15:04Z</updated>

		<summary type="html">&lt;p&gt;Epìdosis: 1 revision imported: Import templates and modules from Wikidata&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;{{#invoke:Autotranslate|autotranslate}}&amp;lt;!--  &lt;br /&gt;
--&amp;gt;{{#ifeq: {{FULLPAGENAME}} |Template:{{{base|}}} |[[Category:Autotranslated templates|{{PAGENAME}}]]}}&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Documentation}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Epìdosis</name></author>
	</entry>
	<entry>
		<id>https://wikibase.echoimages.labs.wikimedia.pt/w/index.php?title=Template:Anchor&amp;diff=2670</id>
		<title>Template:Anchor</title>
		<link rel="alternate" type="text/html" href="https://wikibase.echoimages.labs.wikimedia.pt/w/index.php?title=Template:Anchor&amp;diff=2670"/>
		<updated>2026-06-03T17:15:04Z</updated>

		<summary type="html">&lt;p&gt;Epìdosis: 1 revision imported: Import templates and modules from Wikidata&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;onlyinclude&amp;gt;{{&amp;lt;includeonly&amp;gt;safesubst:&amp;lt;/includeonly&amp;gt;#invoke:anchor|main}}&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{documentation}}&lt;/div&gt;</summary>
		<author><name>Epìdosis</name></author>
	</entry>
	<entry>
		<id>https://wikibase.echoimages.labs.wikimedia.pt/w/index.php?title=Module:Yesno&amp;diff=2668</id>
		<title>Module:Yesno</title>
		<link rel="alternate" type="text/html" href="https://wikibase.echoimages.labs.wikimedia.pt/w/index.php?title=Module:Yesno&amp;diff=2668"/>
		<updated>2026-06-03T17:15:04Z</updated>

		<summary type="html">&lt;p&gt;Epìdosis: 1 revision imported: Import templates and modules from Wikidata&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;-- Function allowing for consistent treatment of boolean-like wikitext input.&lt;br /&gt;
-- It works similarly to the template {{yesno}}.&lt;br /&gt;
&lt;br /&gt;
return function (val, default)&lt;br /&gt;
	-- If your wiki uses non-ascii characters for any of &amp;quot;yes&amp;quot;, &amp;quot;no&amp;quot;, etc., you&lt;br /&gt;
	-- should replace &amp;quot;val:lower()&amp;quot; with &amp;quot;mw.ustring.lower(val)&amp;quot; in the&lt;br /&gt;
	-- following line.&lt;br /&gt;
	val = type(val) == &#039;string&#039; and val:lower() or val&lt;br /&gt;
	if val == nil then&lt;br /&gt;
		return nil&lt;br /&gt;
	elseif val == true &lt;br /&gt;
		or val == &#039;yes&#039;&lt;br /&gt;
		or val == &#039;y&#039;&lt;br /&gt;
		or val == &#039;true&#039;&lt;br /&gt;
		or val == &#039;t&#039;&lt;br /&gt;
		or val == &#039;on&#039;&lt;br /&gt;
		or tonumber(val) == 1&lt;br /&gt;
	then&lt;br /&gt;
		return true&lt;br /&gt;
	elseif val == false&lt;br /&gt;
		or val == &#039;no&#039;&lt;br /&gt;
		or val == &#039;n&#039;&lt;br /&gt;
		or val == &#039;false&#039;&lt;br /&gt;
		or val == &#039;f&#039;&lt;br /&gt;
		or val == &#039;off&#039;&lt;br /&gt;
		or tonumber(val) == 0&lt;br /&gt;
	then&lt;br /&gt;
		return false&lt;br /&gt;
	else&lt;br /&gt;
		return default&lt;br /&gt;
	end&lt;br /&gt;
end&lt;/div&gt;</summary>
		<author><name>Epìdosis</name></author>
	</entry>
	<entry>
		<id>https://wikibase.echoimages.labs.wikimedia.pt/w/index.php?title=Module:Wikidata_label&amp;diff=2666</id>
		<title>Module:Wikidata label</title>
		<link rel="alternate" type="text/html" href="https://wikibase.echoimages.labs.wikimedia.pt/w/index.php?title=Module:Wikidata_label&amp;diff=2666"/>
		<updated>2026-06-03T17:15:04Z</updated>

		<summary type="html">&lt;p&gt;Epìdosis: 1 revision imported: Import templates and modules from Wikidata&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;--[[&lt;br /&gt;
  __  __           _       _      __        ___ _    _     _       _          _       _          _&lt;br /&gt;
 |  \/  | ___   __| |_   _| | ___ \ \      / (_) | _(_) __| | __ _| |_ __ _  | | __ _| |__   ___| |&lt;br /&gt;
 | |\/| |/ _ \ / _` | | | | |/ _ (_) \ /\ / /| | |/ / |/ _` |/ _` | __/ _` | | |/ _` | &#039;_ \ / _ \ |&lt;br /&gt;
 | |  | | (_) | (_| | |_| | |  __/_ \ V  V / | |   &amp;lt;| | (_| | (_| | || (_| | | | (_| | |_) |  __/ |&lt;br /&gt;
 |_|  |_|\___/ \__,_|\__,_|_|\___(_) \_/\_/  |_|_|\_\_|\__,_|\__,_|\__\__,_| |_|\__,_|_.__/ \___|_|&lt;br /&gt;
&lt;br /&gt;
This module is intended to be the engine behind &amp;quot;Template:Label&amp;quot;.&lt;br /&gt;
This module was copied from Commons please ask for changes there.&lt;br /&gt;
&lt;br /&gt;
Please do not modify this code without applying the changes first at &amp;quot;Module:Wikidata label/sandbox&amp;quot; and testing&lt;br /&gt;
at &amp;quot;Module:Wikidata label/testcases&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Authors and maintainers:&lt;br /&gt;
* User:Jarekt - original version&lt;br /&gt;
&lt;br /&gt;
]]&lt;br /&gt;
&lt;br /&gt;
require(&#039;strict&#039;) -- used for debugging purposes as it detects cases of unintended global variables&lt;br /&gt;
&lt;br /&gt;
--=============================================&lt;br /&gt;
--=== Internal functions ======================&lt;br /&gt;
--=============================================&lt;br /&gt;
&lt;br /&gt;
---------------------------------------------------------------------------&lt;br /&gt;
-- Normalize input arguments by converting them all to lower case and&lt;br /&gt;
-- replacing space with &amp;quot;_&amp;quot; in the argument name. Also empty strings are&lt;br /&gt;
-- converted to nils. Arguments are collected from arguments passed to the&lt;br /&gt;
-- module and if missing from the template that calls the module&lt;br /&gt;
local function getArgs(frame)&lt;br /&gt;
	local function normalize_input_args(input_args, output_args)&lt;br /&gt;
		for name, value in pairs( input_args ) do&lt;br /&gt;
			value = mw.text.trim(value) -- trim whitespaces from the beggining and the end of the string&lt;br /&gt;
			if value ~= &#039;&#039; then -- nuke empty strings&lt;br /&gt;
				if type(name)==&#039;string&#039; then&lt;br /&gt;
					name = string.gsub( string.lower(name), &#039; &#039;, &#039;_&#039;)&lt;br /&gt;
				end&lt;br /&gt;
				output_args[name] = value&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		return output_args&lt;br /&gt;
	end&lt;br /&gt;
	local args = {}&lt;br /&gt;
	args = normalize_input_args(frame:getParent().args, args)&lt;br /&gt;
	args = normalize_input_args(frame.args, args)&lt;br /&gt;
	return args&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
---------------------------------------------------------------------------&lt;br /&gt;
-- Function allowing for consistent treatment of boolean-like wikitext input.&lt;br /&gt;
-- It works similarly to Module:Yesno but does not assume val is a string&lt;br /&gt;
local function yesno(val, default)&lt;br /&gt;
	if type(val) == &#039;boolean&#039; then&lt;br /&gt;
		return val&lt;br /&gt;
	elseif type(val) == &#039;number&#039; then&lt;br /&gt;
		if val == 1 then&lt;br /&gt;
			return true&lt;br /&gt;
		elseif val == 0 then&lt;br /&gt;
			return false&lt;br /&gt;
		end&lt;br /&gt;
	elseif type(val) == &#039;string&#039; then&lt;br /&gt;
		val = mw.ustring.lower(val)  -- put in lower case&lt;br /&gt;
		if val == &#039;no&#039;  or val == &#039;n&#039; or val == &#039;false&#039; or val == &#039;0&#039; then&lt;br /&gt;
			return false&lt;br /&gt;
		elseif val == &#039;yes&#039; or val == &#039;y&#039; or val == &#039;true&#039; or val == &#039;1&#039; then&lt;br /&gt;
			return true&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return default&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-------------------------------------------------------------------------&lt;br /&gt;
-- get message in a given language&lt;br /&gt;
-- INPUTS:&lt;br /&gt;
-- * msg  - name of a message. For it to work [[MediaWiki:msg]] page need to be set up&lt;br /&gt;
-- * lang - translate message to language &amp;quot;lang&amp;quot;&lt;br /&gt;
-- * default - string to return in case this module is moved to a project where this message is not set&lt;br /&gt;
-- OUTPUT:&lt;br /&gt;
--  * translated message&lt;br /&gt;
local function getMessage(msg, lang, default)&lt;br /&gt;
	msg = mw.message.new(msg):inLanguage(lang):plain()&lt;br /&gt;
	return (msg == nil and default) or msg&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
---------------------------------------------------------------------------&lt;br /&gt;
-- use different sitelink call depending if you already have an entity or not&lt;br /&gt;
-- INPUTS:&lt;br /&gt;
--  * item and entity - entity id and entity: if full entity already uploded than use that&lt;br /&gt;
--                      otherwise use entity id to look up sitelink&lt;br /&gt;
--  * lang - language of the project&lt;br /&gt;
-- OUTPUT:&lt;br /&gt;
--  * sitelink&lt;br /&gt;
local function getSitelink(item, entity, lang)&lt;br /&gt;
	if entity and entity.getSitelink then -- if we have entity then use it&lt;br /&gt;
		return entity:getSitelink(lang .. &#039;wiki&#039;)&lt;br /&gt;
	else -- if no entity then use different function&lt;br /&gt;
		return mw.wikibase.getSitelink(item, lang .. &#039;wiki&#039;)&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
---------------------------------------------------------------------------&lt;br /&gt;
-- use different sitelink call depending if you already have an entity or not&lt;br /&gt;
-- INPUTS:&lt;br /&gt;
--  * item and entity - entity id and entity: if full entity already uploded than use that&lt;br /&gt;
--                      otherwise use entity id to look up sitelink&lt;br /&gt;
--  * prop - property for which to return the best statment&lt;br /&gt;
-- OUTPUT:&lt;br /&gt;
--  * value of the best statment (only from the first one)&lt;br /&gt;
local function getBestStatementsValue(item, entity, prop)&lt;br /&gt;
	local statments&lt;br /&gt;
	if entity then&lt;br /&gt;
		statments = entity:getBestStatements(prop)&lt;br /&gt;
	else&lt;br /&gt;
		statments = mw.wikibase.getBestStatements(item, prop)&lt;br /&gt;
	end&lt;br /&gt;
	for _, statment in ipairs(statments) do&lt;br /&gt;
		if statment and statment.mainsnak.datavalue.value then&lt;br /&gt;
			return statment.mainsnak.datavalue.value&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
---------------------------------------------------------------------------&lt;br /&gt;
-- change capitalization of the label&lt;br /&gt;
-- INPUTS:&lt;br /&gt;
--  * label - label string&lt;br /&gt;
--  * capitalization - capitalization to be applied: allowed values are &amp;quot;lc&amp;quot;,&lt;br /&gt;
--      &amp;quot;uc&amp;quot;, &amp;quot;lcfirst&amp;quot;, and &amp;quot;ucfirst&amp;quot;. Any other value will return original string&lt;br /&gt;
--  * lang - language of the label&lt;br /&gt;
-- OUTPUT:&lt;br /&gt;
--  * value of the best statment (only from the first one)&lt;br /&gt;
local function apply_capitalization(label, capitalization, lang)&lt;br /&gt;
	capitalization = string.lower(capitalization or &#039;none&#039;)&lt;br /&gt;
	if capitalization == &#039;none&#039; then&lt;br /&gt;
		return label&lt;br /&gt;
	elseif capitalization == &#039;uc&#039; then&lt;br /&gt;
		return mw.ustring.upper(label)&lt;br /&gt;
	elseif capitalization == &#039;ucfirst&#039; then&lt;br /&gt;
		return mw.language.new(lang):ucfirst(label)&lt;br /&gt;
	elseif capitalization == &#039;lc&#039; then&lt;br /&gt;
		return mw.ustring.lower(label)&lt;br /&gt;
	elseif capitalization == &#039;lcfirst&#039; then&lt;br /&gt;
		return mw.language.new(lang):lcfirst(label)&lt;br /&gt;
	end&lt;br /&gt;
	return label&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[-------------------------------------------------------------------------&lt;br /&gt;
get link based on user preference&lt;br /&gt;
INPUTS:&lt;br /&gt;
* link_type - can be :&lt;br /&gt;
   * &amp;quot;wikidata&amp;quot; - link to wikidata&lt;br /&gt;
   * &amp;quot;wikipedia&amp;quot; - link to wikipedia (language dependent)&lt;br /&gt;
   * &amp;quot;wikidata talk&amp;quot; - link to wikidata talk page&lt;br /&gt;
   * &amp;quot;commons&amp;quot; - link to commons (try sitelink then commons category then commons gallery)&lt;br /&gt;
   * &amp;quot;commonscat&amp;quot; - link to commons (try commons category then commons gallery)&lt;br /&gt;
   * &amp;quot;-&amp;quot; - means no link&lt;br /&gt;
* item   - entity ID (always provided)&lt;br /&gt;
* entity - whole entity. It can be nil if whole entity is not loaded&lt;br /&gt;
* langList - language fallback list for preferred language (required)&lt;br /&gt;
OUTPUT:&lt;br /&gt;
* link - link to the wikimedia page&lt;br /&gt;
]]&lt;br /&gt;
local function getLink(link_type, item, entity, langList)&lt;br /&gt;
	local link, eLink&lt;br /&gt;
	link_type = mw.ustring.lower(link_type or &#039;&#039;)&lt;br /&gt;
	local item_type = mw.ustring.sub(item, 1, 1) -- first letter prefix of item entity ID: &#039;Q&#039;, &#039;P&#039; or &#039;M&#039;&lt;br /&gt;
	if item_type == &#039;M&#039; then&lt;br /&gt;
		eLink=&#039;c:Special:EntityPage/&#039;..item&lt;br /&gt;
	elseif item_type == &#039;Q&#039; then&lt;br /&gt;
		eLink=&#039;d:&#039;..item -- wikibase entity page link&lt;br /&gt;
	elseif item_type == &#039;P&#039; then&lt;br /&gt;
		eLink=&#039;d:Property:&#039;..item -- wikibase entity page link&lt;br /&gt;
	else&lt;br /&gt;
		eLink=&#039;d:Special:EntityPage/&#039;..item&lt;br /&gt;
	end&lt;br /&gt;
	if link_type == &#039;-&#039; then -- allow different link formats&lt;br /&gt;
		link = &#039;&#039;            -- no link&lt;br /&gt;
	elseif link_type == &#039;wikidata&#039; or item_type == &#039;M&#039; then&lt;br /&gt;
		link = eLink        -- link to wikibase entity page&lt;br /&gt;
	elseif link_type == &#039;wikidata talk&#039; and item_type == &#039;P&#039; then&lt;br /&gt;
		link = &#039;d:Property talk:&#039;.. item        -- link to wikidata property talk page&lt;br /&gt;
	elseif link_type == &#039;wikidata talk&#039; then&lt;br /&gt;
		link = &#039;d:Talk:&#039;..item   -- link to wikidata talk page&lt;br /&gt;
	elseif link_type == &#039;commons&#039; or link_type == &#039;commonscat&#039; then&lt;br /&gt;
		--[[&lt;br /&gt;
		When link_type == &#039;commons&#039; we try the following links (in specified order):&lt;br /&gt;
		  1) commons sitelink&lt;br /&gt;
		  2) P373 &amp;quot;Commons Category&amp;quot; claims&lt;br /&gt;
		  3) P935 &amp;quot;Commons Gallery&amp;quot;  claims&lt;br /&gt;
		Since most items have a commons sitelink we never have to look for claims&lt;br /&gt;
		When link_type == &#039;commonscat&#039; we try to maximize chances of commons link being a category, so we&lt;br /&gt;
		      try the following links (in specified order):&lt;br /&gt;
		  1) commons sitelink, which is kept if it points to a category&lt;br /&gt;
		  2) P373 &amp;quot;Commons Category&amp;quot; claims&lt;br /&gt;
		  3) commons sitelink (which does not point to a category)&lt;br /&gt;
		  4) P935 &amp;quot;Commons Gallery&amp;quot;  claims&lt;br /&gt;
		Since most pages have a commons sitelink we never have to look for claims&lt;br /&gt;
		]]&lt;br /&gt;
		local sLink = getSitelink(item, entity, &#039;commons&#039;)  -- look for sitelink to commons&lt;br /&gt;
		if sLink then&lt;br /&gt;
			sLink = &#039;c:&#039;..sLink&lt;br /&gt;
			if (link_type == &#039;commons&#039;) or (link_type == &#039;commonscat&#039; and mw.ustring.find(sLink, &#039;Category:&#039;)) then&lt;br /&gt;
				link = sLink&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		if not link then -- try linking to P373 &amp;quot;Commons Category&amp;quot;&lt;br /&gt;
			local cat = getBestStatementsValue(item, entity, &#039;P373&#039;)&lt;br /&gt;
			link = (cat ~= nil and &#039;c:Category:&#039; .. cat) or nil&lt;br /&gt;
		end&lt;br /&gt;
		link = link or sLink&lt;br /&gt;
		if not link then -- try linking to P935 &amp;quot;Commons Gallery&amp;quot;&lt;br /&gt;
			link = getBestStatementsValue(item, entity, &#039;P935&#039;)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	if not link then -- apply default &amp;quot;Wikipedia&amp;quot; link type&lt;br /&gt;
		for _, language in ipairs(langList) do&lt;br /&gt;
			local sitelink = getSitelink(item, entity, language)&lt;br /&gt;
			if sitelink then&lt;br /&gt;
				link = &#039;w:&#039;.. language ..&#039;:&#039;.. sitelink&lt;br /&gt;
				break&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return link or eLink  -- no wiki sitelink, so link to wikidata&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--=============================================&lt;br /&gt;
--=== External functions ======================&lt;br /&gt;
--=============================================&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
--======================================================================&lt;br /&gt;
--=== API functions for use from other Scribunto modules ===============&lt;br /&gt;
--======================================================================&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
_getLabel&lt;br /&gt;
&lt;br /&gt;
This function returns a label translated to desired language, created based on wikidata&lt;br /&gt;
&lt;br /&gt;
Inputs:&lt;br /&gt;
	1: item - wikidata&#039;s item&#039;s q-id or entity class&lt;br /&gt;
	2: lang - desired language of the label&lt;br /&gt;
	3: link_type - link style. Possible values (case-insensitive): &amp;quot;wikipedia&amp;quot;, &amp;quot;wikidata&amp;quot;, &amp;quot;Commons&amp;quot;, or &amp;quot;-&amp;quot; (no link)&lt;br /&gt;
	4: capitalization - can be &amp;quot;uc&amp;quot; (upper case), &amp;quot;lc&amp;quot; (lower case), &amp;quot;ucfirst&amp;quot; (upper case for the first letter),&lt;br /&gt;
			&amp;quot;lcfirst&amp;quot; (lower case for the first letter), or &#039;none&#039; (default)&lt;br /&gt;
&lt;br /&gt;
Error Handling:&lt;br /&gt;
	Bad q-id will result in displayed error&lt;br /&gt;
]]&lt;br /&gt;
function p._getLabel(item, lang, link_type, capitalization, show_id)&lt;br /&gt;
	local entity, link, label&lt;br /&gt;
&lt;br /&gt;
	-- clean up the input parameters&lt;br /&gt;
	if type(item) ~= &#039;string&#039; then -- &amp;quot;item&amp;quot; is not a q-id&lt;br /&gt;
		entity = item            -- &amp;quot;item&amp;quot; must be the entity&lt;br /&gt;
		item   = entity.id       -- look-up q-id&lt;br /&gt;
	elseif tonumber(item) then   -- if it is just the number then add &amp;quot;Q&amp;quot; in front&lt;br /&gt;
		item = &#039;Q&#039;..item&lt;br /&gt;
	end&lt;br /&gt;
	item = mw.ustring.gsub(mw.ustring.upper(item), &#039;PROPERTY:P&#039;, &#039;P&#039;) -- make all the properties the same and capitalize&lt;br /&gt;
&lt;br /&gt;
	if not lang then&lt;br /&gt;
		label, lang = mw.wikibase.getLabelWithLang(item)&lt;br /&gt;
	end&lt;br /&gt;
	if not lang then -- if still no language&lt;br /&gt;
		lang  = mw.getCurrentFrame():callParserFunction(&amp;quot;int&amp;quot;,&amp;quot;lang&amp;quot;)  -- get user&#039;s chosen language&lt;br /&gt;
		label = nil&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- build language fallback list&lt;br /&gt;
	lang = mw.ustring.lower(lang)&lt;br /&gt;
	local langList = mw.language.getFallbacksFor(lang, mw.language.FALLBACK_STRICT)&lt;br /&gt;
	table.insert(langList, 1, lang)&lt;br /&gt;
	table.insert(langList, &#039;mul&#039;) -- add &amp;quot;default for all languages&amp;quot;&lt;br /&gt;
	-- add implicit fallback to en only if there is no explicit fallback to it&lt;br /&gt;
	local insertEn = true&lt;br /&gt;
	for _, language in ipairs(langList) do&lt;br /&gt;
		if language == &#039;en&#039; then&lt;br /&gt;
			insertEn = false&lt;br /&gt;
			break&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	if insertEn then&lt;br /&gt;
		table.insert(langList, &#039;en&#039;)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- get label (visible part of the link)&lt;br /&gt;
	if not label then&lt;br /&gt;
		for _, language in ipairs(langList) do  -- loop over language fallback list looking for label in the specific language&lt;br /&gt;
			if entity then&lt;br /&gt;
				label = entity:getLabel(language)&lt;br /&gt;
			else&lt;br /&gt;
				label = mw.wikibase.getLabelByLang(item, language)&lt;br /&gt;
			end&lt;br /&gt;
			if label then break end                    -- label found and we are done&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	if label then  -- wikitext-escape the label if we have one&lt;br /&gt;
		label = mw.text.nowiki(label)&lt;br /&gt;
	end&lt;br /&gt;
	if not label then                              -- no labels found, so just show the q-id&lt;br /&gt;
		label = item&lt;br /&gt;
	elseif show_id then           -- add id&lt;br /&gt;
		show_id = yesno(show_id,false)&lt;br /&gt;
		if show_id then&lt;br /&gt;
			local wordsep = getMessage(&#039;Word-separator&#039;, lang, &#039; &#039;)&lt;br /&gt;
			local id = mw.message.new(&#039;parentheses&#039;, item):inLanguage(lang):plain()&lt;br /&gt;
			id = (id~=nil and id) or (&#039;(&#039;..item..&#039;)&#039;) -- in case this module is moved to a project where {{int:parenthesis}} is not set&lt;br /&gt;
			label = label .. wordsep .. &amp;quot;&amp;lt;small&amp;gt;&amp;quot; .. id .. &amp;quot;&amp;lt;/small&amp;gt;&amp;quot;&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	label = apply_capitalization(label, capitalization, lang)&lt;br /&gt;
&lt;br /&gt;
	-- return the results&lt;br /&gt;
	if link_type == &#039;-&#039; then&lt;br /&gt;
		return label -- return just the label&lt;br /&gt;
	else&lt;br /&gt;
		link = getLink(link_type, item, entity, langList)&lt;br /&gt;
		return &#039;[[&#039; .. link .. &#039;|&#039; .. label .. &#039;]]&#039; -- return link&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[-------------------------------------------------------------------------------&lt;br /&gt;
_sitelinks&lt;br /&gt;
&lt;br /&gt;
This function returns a table of sitelinks for a single project organized by language&lt;br /&gt;
&lt;br /&gt;
Inputs:&lt;br /&gt;
	1: item - wikidata&#039;s item&#039;s q-id or entity class&lt;br /&gt;
	2: project - (case-insensitive) one of: &amp;quot;wikipedia&amp;quot;, &amp;quot;wikisource&amp;quot;, &amp;quot;wikiquote&amp;quot;, &amp;quot;wikibooks&amp;quot;, &amp;quot;wikinews&amp;quot;,&lt;br /&gt;
			&amp;quot;wikiversity&amp;quot;, &amp;quot;wikivoyage&amp;quot;, &amp;quot;wiktionary&amp;quot;, &amp;quot;commons&amp;quot;, &amp;quot;mediawiki&amp;quot;, &amp;quot;wikispecies&amp;quot;, &amp;quot;wikidata&amp;quot;, etc.&lt;br /&gt;
&lt;br /&gt;
Output:&lt;br /&gt;
	Table of sitelinks with language fields&lt;br /&gt;
&lt;br /&gt;
Output:&lt;br /&gt;
	Table of sitelinks with language fields&lt;br /&gt;
See also&lt;br /&gt;
* [https://foundation.wikimedia.org/wiki/Special:SiteMatrix] for the full list of supported interwikis.&lt;br /&gt;
* [https://dumps.wikimedia.org/backup-index.html] for the full list of sitecodes (used in database dumps).&lt;br /&gt;
]]&lt;br /&gt;
function p._sitelinks(item, project)&lt;br /&gt;
	local entity&lt;br /&gt;
	-- get entity&lt;br /&gt;
	if type(item) == &#039;string&#039; then -- &amp;quot;item&amp;quot; is a q-id&lt;br /&gt;
		entity = mw.wikibase.getEntity(item)&lt;br /&gt;
	else&lt;br /&gt;
		entity = item              -- &amp;quot;item&amp;quot; is the entity&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- convert from english project name  to proproject code&lt;br /&gt;
	local projLUT = {&lt;br /&gt;
		wikipedia   = &#039;wiki&#039;,           commons   = &#039;commonswiki&#039;,&lt;br /&gt;
		foundation  = &#039;foundationwiki&#039;, mediawiki = &#039;mediawikiwiki&#039;,&lt;br /&gt;
		wikispecies = &#039;specieswiki&#039;,    wikidata  = &#039;wikidatawiki&#039;,&lt;br /&gt;
		incubator   = &#039;incubatorwiki&#039;,	oldwikisource = &#039;sourceswiki&#039;,&lt;br /&gt;
	}&lt;br /&gt;
	local langLUT = {&lt;br /&gt;
		-- These are not language codes before the &#039;wiki&#039; or &#039;wikiversity&#039; suffix in a sitecode:&lt;br /&gt;
		foundation = &#039;~&#039;, commons = &#039;~&#039;,	-- they will be skipped&lt;br /&gt;
		incubator  = &#039;~&#039;, meta    = &#039;~&#039;,&lt;br /&gt;
		mediawiki  = &#039;~&#039;, sources = &#039;~&#039;,&lt;br /&gt;
		species    = &#039;~&#039;, beta    = &#039;~&#039;,&lt;br /&gt;
		-- Legacy language codes used in sitecodes, remapped to standard Wikimedia language codes:&lt;br /&gt;
		-- See https://meta.wikimedia.org/wiki/Special_language_codes for details&lt;br /&gt;
		als     = &#039;gsw&#039;, bat_smg      = &#039;sgs&#039;,&lt;br /&gt;
		fiu_vro = &#039;vro&#039;, be_x_old     = &#039;be-tarask&#039;,&lt;br /&gt;
		roa_rup = &#039;rup&#039;, zh_classical = &#039;lzh&#039;,&lt;br /&gt;
		zh_yue  = &#039;yue&#039;, zh_min_nan   = &#039;nan&#039;,&lt;br /&gt;
		zh_wuu  = &#039;wuu&#039;, no           = &#039;nb&#039;,&lt;br /&gt;
	}&lt;br /&gt;
	project = project:lower()&lt;br /&gt;
	project = projLUT[project] or project -- correct the project name&lt;br /&gt;
	local n = project:len()&lt;br /&gt;
	local linkTable = {}&lt;br /&gt;
	if entity and entity.sitelinks then  -- See if entity exists, and that it has sitelinks&lt;br /&gt;
		for _, sitelink in pairs(entity.sitelinks) do -- loop over all sitelinks&lt;br /&gt;
			local site = sitelink.site&lt;br /&gt;
			local m    = site:len() - n&lt;br /&gt;
			local proj = site:sub(m +1)  -- project part of the siteID&lt;br /&gt;
			if proj == project  then -- proj matches desired &amp;quot;project&amp;quot;&lt;br /&gt;
				local lang = site:sub(1, m)  -- language part of the siteID&lt;br /&gt;
				lang = langLUT[lang] or lang:gsub(&#039;_&#039;,&#039;-&#039;)&lt;br /&gt;
				if lang ~= &#039;~&#039; then -- proj matches desired &amp;quot;project&amp;quot;&lt;br /&gt;
					linkTable[lang] = sitelink.title&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return linkTable&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[----------------------------------------------------------------&lt;br /&gt;
_aliases&lt;br /&gt;
&lt;br /&gt;
This function returns a table of aliases for a single language&lt;br /&gt;
&lt;br /&gt;
Inputs:&lt;br /&gt;
	1: item - wikidata&#039;s item&#039;s q-id or entity class&lt;br /&gt;
	2: lang - language code, like &#039;en&#039; or &#039;de&#039;&lt;br /&gt;
&lt;br /&gt;
Output:&lt;br /&gt;
	Table of aliases with language fields&lt;br /&gt;
]]&lt;br /&gt;
function p._aliases(item, lang)&lt;br /&gt;
	local entity&lt;br /&gt;
	if type(item) == &#039;string&#039; then -- &amp;quot;item&amp;quot; is a q-id&lt;br /&gt;
		entity = mw.wikibase.getEntity(item)&lt;br /&gt;
	else&lt;br /&gt;
		entity = item            -- &amp;quot;item&amp;quot; is the entity&lt;br /&gt;
	end&lt;br /&gt;
	local aliasTable = {}&lt;br /&gt;
	if entity and entity.aliases then						-- See if there is an entity and that is has aliases&lt;br /&gt;
		if entity.aliases[lang] then						-- See if it has English Aliases&lt;br /&gt;
			for _, alias in pairs(entity.aliases[lang]) do  -- Make a loop around the English aliases&lt;br /&gt;
				table.insert(aliasTable, alias.value)				-- Create a table of English aliases&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return aliasTable&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--======================================================================&lt;br /&gt;
--=== Invoke functions for use from wikitext, e.g., templates ==========&lt;br /&gt;
---=====================================================================&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
getLabel&lt;br /&gt;
&lt;br /&gt;
This function returns a label translated to desired language, created based on wikidata&lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
{{#invoke:Wikidata label|getLabel|item=Q...|lang=..|link_style=..|capitalization=..}}&lt;br /&gt;
&lt;br /&gt;
Parameters&lt;br /&gt;
	1: wikidata&#039;s item&#039;s q-id (required)&lt;br /&gt;
	2: language (optional; default {{int:lang}})&lt;br /&gt;
	3: link_style: &amp;quot;wikipedia&amp;quot; (default), &amp;quot;Wikidata&amp;quot;, &amp;quot;Commons&amp;quot;, or &amp;quot;-&amp;quot; (no link)&lt;br /&gt;
	4: capitalization - can be &amp;quot;uc&amp;quot;, &amp;quot;lc&amp;quot;, &amp;quot;ucfirst&amp;quot;, &amp;quot;lcfirst&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Error Handling:&lt;br /&gt;
	Bad q-id will result in displayed error&lt;br /&gt;
]]&lt;br /&gt;
function p.getLabel(frame)&lt;br /&gt;
	local args = getArgs(frame)&lt;br /&gt;
	return p._getLabel(args.item, args.lang, args.link, args.capitalization, args.show_id)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[-------------------------------------------------------------------------------&lt;br /&gt;
sitelinks&lt;br /&gt;
&lt;br /&gt;
This function returns a comma separated list of sitelinks for a single project organized by language&lt;br /&gt;
Its main purpose is to help with testing of _sitelinks function.&lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
{{#invoke:Wikidata label|sitelinks|item=Q...|project=..}}&lt;br /&gt;
&lt;br /&gt;
Inputs:&lt;br /&gt;
	1: item - wikidata&#039;s item&#039;s q-id or entity class&lt;br /&gt;
	2: project - &amp;quot;wikipedia&amp;quot; (or &amp;quot;wiki&amp;quot;), &amp;quot;wikisource&amp;quot;, &amp;quot;wikiquote&amp;quot;, &amp;quot;wikibooks&amp;quot;,&lt;br /&gt;
	             &amp;quot;wikinews&amp;quot;, &amp;quot;wikiversity&amp;quot;, &amp;quot;wikivoyage&amp;quot;, &amp;quot;wiktionary&amp;quot;, etc.&lt;br /&gt;
&lt;br /&gt;
Output:&lt;br /&gt;
	comma separated list&lt;br /&gt;
]]&lt;br /&gt;
function p.sitelinks(frame)&lt;br /&gt;
	local args = getArgs(frame)&lt;br /&gt;
	local sitelinks = p._sitelinks(args.item, args.project)&lt;br /&gt;
	local sitelinkList = {}&lt;br /&gt;
	for lang, sitelink in pairs(sitelinks) do&lt;br /&gt;
		table.insert(sitelinkList, (lang==&#039;&#039; and sitelink) or (lang .. &#039;:&#039; .. sitelink))&lt;br /&gt;
	end&lt;br /&gt;
	return table.concat(sitelinkList, &#039;, &#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[----------------------------------------------------------------------------&lt;br /&gt;
aliases&lt;br /&gt;
&lt;br /&gt;
This function returns a comma separated list of aliases for a single language&lt;br /&gt;
Its main purpose is to help with testing of _aliases function.&lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
{{#invoke:Wikidata label|aliases|item=Q...|lang=..}}&lt;br /&gt;
&lt;br /&gt;
Inputs:&lt;br /&gt;
	1: item - wikidata&#039;s item&#039;s q-id or entity class&lt;br /&gt;
	2: lang - language code, like &#039;en&#039; or &#039;de&#039;&lt;br /&gt;
&lt;br /&gt;
Output:&lt;br /&gt;
	Comma separated list of aliases&lt;br /&gt;
]]&lt;br /&gt;
function p.aliases(frame)&lt;br /&gt;
	local args = getArgs(frame)&lt;br /&gt;
	return table.concat(p._aliases(args.item, args.lang), &#039;, &#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Epìdosis</name></author>
	</entry>
	<entry>
		<id>https://wikibase.echoimages.labs.wikimedia.pt/w/index.php?title=Module:TranslateThis&amp;diff=2664</id>
		<title>Module:TranslateThis</title>
		<link rel="alternate" type="text/html" href="https://wikibase.echoimages.labs.wikimedia.pt/w/index.php?title=Module:TranslateThis&amp;diff=2664"/>
		<updated>2026-06-03T17:15:03Z</updated>

		<summary type="html">&lt;p&gt;Epìdosis: 1 revision imported: Import templates and modules from Wikidata&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;local fb = require(&#039;Module:Fallback&#039;)&lt;br /&gt;
local dir = require(&#039;Module:Dir&#039;)&lt;br /&gt;
&lt;br /&gt;
return { main = function( frame )&lt;br /&gt;
	&lt;br /&gt;
	local function shallowcopy(orig)&lt;br /&gt;
		if type(orig) ~= &#039;table&#039; then&lt;br /&gt;
			return orig&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		local result = {}&lt;br /&gt;
		for key, value in pairs(orig) do&lt;br /&gt;
			result[key] = value&lt;br /&gt;
		end&lt;br /&gt;
		return result&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local args = shallowcopy(frame:getParent().args)&lt;br /&gt;
	local lang = args.lang or frame:callParserFunction(&amp;quot;int&amp;quot;, &amp;quot;lang&amp;quot;) -- I don&#039;t know of any other way to get the user&#039;s language...&lt;br /&gt;
	args.lang = nil&lt;br /&gt;
	&lt;br /&gt;
	local anchor = args.anchor&lt;br /&gt;
	args.anchor = nil&lt;br /&gt;
	if (anchor and args[anchor]) then&lt;br /&gt;
		anchor = args[anchor]&lt;br /&gt;
	end&lt;br /&gt;
	anchor = anchor and frame:expandTemplate( { title = &amp;quot;Anchor&amp;quot;, args = { anchor } } ) or &#039;&#039;&lt;br /&gt;
	&lt;br /&gt;
	local result = args[ lang ]&lt;br /&gt;
	if result and result ~= &#039;&#039; then&lt;br /&gt;
		result = &#039;&amp;lt;span dir=&amp;quot;&#039; .. dir.select(lang, &#039;rtl&#039;, &#039;ltr&#039;) .. &#039;&amp;quot; lang=&amp;quot;&#039; .. lang .. &#039;&amp;quot;&amp;gt;&#039; .. result .. &#039;&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
	else&lt;br /&gt;
		local default = {}&lt;br /&gt;
		for i, v in pairs( args ) do&lt;br /&gt;
			if v ~= &amp;quot;&amp;quot; then&lt;br /&gt;
				table.insert(default, &#039;&amp;lt;span dir=&amp;quot;&#039; .. dir.select(i, &#039;rtl&#039;, &#039;ltr&#039;) .. &#039;&amp;quot; lang=&amp;quot;&#039; .. i .. &#039;&amp;quot;&amp;gt;&#039; .. v .. &#039;&amp;lt;/span&amp;gt; &amp;lt;small&amp;gt;(&#039; .. i .. &#039;)&amp;lt;/small&amp;gt;&#039;)&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		default = table.concat(default, &#039; / &#039;)&lt;br /&gt;
		args.default=default&lt;br /&gt;
		local newlang&lt;br /&gt;
		result, newlang = fb._langSwitch(args, lang)&lt;br /&gt;
		if not newlang then&lt;br /&gt;
			result = &#039;&#039;&lt;br /&gt;
		elseif newlang~=&#039;default&#039; then&lt;br /&gt;
			result = &#039;&amp;lt;span dir=&amp;quot;&#039; .. dir.select(newlang, &#039;rtl&#039;, &#039;ltr&#039;) .. &#039;&amp;quot; lang=&amp;quot;&#039; .. newlang .. &#039;&amp;quot;&amp;gt;&#039; .. result .. &#039;&amp;lt;/span&amp;gt; &amp;lt;small&amp;gt;(&#039; .. newlang .. &#039;)&amp;lt;/small&amp;gt;&#039;&lt;br /&gt;
		end&lt;br /&gt;
		local langname = mw.language.fetchLanguageName( lang, lang )&lt;br /&gt;
		if langname ~= &amp;quot;&amp;quot; and newlang then&lt;br /&gt;
			result = result .. &amp;quot; – &amp;quot; .. frame:expandTemplate( { title = &amp;quot;Help translate&amp;quot;, args = { langname, lang = lang } } )&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return anchor .. result&lt;br /&gt;
end}&lt;/div&gt;</summary>
		<author><name>Epìdosis</name></author>
	</entry>
	<entry>
		<id>https://wikibase.echoimages.labs.wikimedia.pt/w/index.php?title=Module:Template_translation&amp;diff=2662</id>
		<title>Module:Template translation</title>
		<link rel="alternate" type="text/html" href="https://wikibase.echoimages.labs.wikimedia.pt/w/index.php?title=Module:Template_translation&amp;diff=2662"/>
		<updated>2026-06-03T17:15:03Z</updated>

		<summary type="html">&lt;p&gt;Epìdosis: 1 revision imported: Import templates and modules from Wikidata&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;local this = {}&lt;br /&gt;
&lt;br /&gt;
function this.checkLanguage(subpage, default)&lt;br /&gt;
    --[[Check first if there&#039;s an any invalid character that would cause the&lt;br /&gt;
        mw.language.isKnownLanguageTag function() to throw an exception:&lt;br /&gt;
        - all ASCII controls in [\000-\031\127],&lt;br /&gt;
        - double quote (&amp;quot;), sharp sign (#), ampersand (&amp;amp;), apostrophe (&#039;),&lt;br /&gt;
        - slash (/), colon (:), semicolon (;), lower than (&amp;lt;), greater than (&amp;gt;),&lt;br /&gt;
        - brackets and braces ([, ], {, }), pipe (|), backslash (\\)&lt;br /&gt;
        All other characters are accepted, including space and all non-ASCII&lt;br /&gt;
        characters (including \192, which is invalid in UTF-8).&lt;br /&gt;
    --]]&lt;br /&gt;
    if mw.language.isValidCode(subpage) and mw.language.isKnownLanguageTag(subpage)&lt;br /&gt;
    --[[However &amp;quot;SupportedLanguages&amp;quot; are too restrictive, as they discard many&lt;br /&gt;
        valid BCP47 script variants (only because MediaWiki still does not&lt;br /&gt;
        define automatic transliterators for them, e.g. &amp;quot;en-dsrt&amp;quot; or&lt;br /&gt;
        &amp;quot;fr-brai&amp;quot; for French transliteration in Braille), and country variants,&lt;br /&gt;
        (useful in localized data, even if they are no longer used for&lt;br /&gt;
        translations, such as zh-cn, also useful for legacy codes).&lt;br /&gt;
        We want to avoid matching subpagenames containing any uppercase letter,&lt;br /&gt;
        (even if they are considered valid in BCP 47, in which they are&lt;br /&gt;
        case-insensitive; they are not &amp;quot;SupportedLanguages&amp;quot; for MediaWiki, so&lt;br /&gt;
        they are not &amp;quot;KnownLanguageTags&amp;quot; for MediaWiki).&lt;br /&gt;
        To be more restrictive, we exclude any character&lt;br /&gt;
        * that is not ASCII and not a lowercase letter, minus-hyphen, or digit,&lt;br /&gt;
          or does not start by a letter or does not finish by a letter or digit;&lt;br /&gt;
        * or that has more than 8 characters between hyphens;&lt;br /&gt;
        * or that has two hyphens;&lt;br /&gt;
        * or with specific uses in template subpages and unusable as languages.&lt;br /&gt;
    --]]&lt;br /&gt;
    or  string.find(subpage, &amp;quot;^[%l][%-%d%l]*[%d%l]$&amp;quot;) ~= nil&lt;br /&gt;
    and string.find(subpage, &amp;quot;[%d%l][%d%l][%d%l][%d%l][%d%l][%d%l][%d%l][%d%l][%d%l]&amp;quot;) == nil&lt;br /&gt;
    and string.find(subpage, &amp;quot;%-%-&amp;quot;) == nil&lt;br /&gt;
    and subpage ~= &amp;quot;doc&amp;quot;&lt;br /&gt;
    and subpage ~= &amp;quot;layout&amp;quot;&lt;br /&gt;
    and subpage ~= &amp;quot;sandbox&amp;quot;&lt;br /&gt;
    and subpage ~= &amp;quot;testcases&amp;quot;&lt;br /&gt;
    then&lt;br /&gt;
        return subpage&lt;br /&gt;
    end&lt;br /&gt;
    -- Otherwise there&#039;s currently no known language subpage&lt;br /&gt;
    return default&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[Get the last subpage of the current page if it is a translation.&lt;br /&gt;
    ]]&lt;br /&gt;
function this.getLanguageSubpage()&lt;br /&gt;
	--[[This code does not work in all namespaces where the Translate tool works.&lt;br /&gt;
	--  It works in the main namespace on Meta because it allows subpages there&lt;br /&gt;
	--  It would not work in the main namespace of English Wikipedia (but the&lt;br /&gt;
	--  articles are monolignual on that wiki).&lt;br /&gt;
	--  On Meta-Wiki the main space uses subpages and its pages are translated.&lt;br /&gt;
	--  The Translate tool allows translatng pages in all namespaces, even if&lt;br /&gt;
	--  the namespace officially does not have subpages.&lt;br /&gt;
	--  On Meta-Wiki the Category namespace still does not have subpages enabled,&lt;br /&gt;
	--  even if they would be very useful for categorizing templates, that DO have&lt;br /&gt;
	--  subpages (for documentatio and tstboxes pages). This is a misconfiguration&lt;br /&gt;
	--  bug of Meta-Wiki. The work-around is to split the full title and then&lt;br /&gt;
	--  get the last titlepart.&lt;br /&gt;
	local subpage = mw.title.getCurrentTitle().subpageText&lt;br /&gt;
	--]]&lt;br /&gt;
    local titleparts = mw.text.split(mw.title.getCurrentTitle().fullText, &#039;/&#039;)&lt;br /&gt;
    local subpage = titleparts[#titleparts]&lt;br /&gt;
    return this.checkLanguage(subpage, &#039;&#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[Get the last subpage of the current frame if it is a translation.&lt;br /&gt;
    Not used locally.&lt;br /&gt;
    ]]&lt;br /&gt;
function this.getFrameLanguageSubpage(frame)&lt;br /&gt;
    local titleparts = mw.text.split(frame:getParent():getTitle(), &#039;/&#039;)&lt;br /&gt;
    local subpage = titleparts[#titleparts]&lt;br /&gt;
    return this.checkLanguage(subpage, &#039;&#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[Get the language of the current page.&lt;br /&gt;
    Not used locally.&lt;br /&gt;
    ]]&lt;br /&gt;
function this.getLanguage()&lt;br /&gt;
    local subpage = mw.title.getCurrentTitle().subpageText&lt;br /&gt;
    return this.checkLanguage(subpage, mw.language.getContentLanguage():getCode())&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[Get the language of the current frame.&lt;br /&gt;
    Not used locally.&lt;br /&gt;
    ]]&lt;br /&gt;
function this.getFrameLanguage(frame)&lt;br /&gt;
    local titleparts = mw.text.split(frame:getParent():getTitle(), &#039;/&#039;)&lt;br /&gt;
    local subpage = titleparts[#titleparts]&lt;br /&gt;
    return this.checkLanguage(subpage, mw.language.getContentLanguage():getCode())&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function this.title(namespace, basepagename, subpage)&lt;br /&gt;
    local message, title&lt;br /&gt;
    local pagename = basepagename&lt;br /&gt;
    if (subpage or &#039;&#039;) ~= &#039;&#039;&lt;br /&gt;
    then&lt;br /&gt;
        pagename = pagename .. &#039;/&#039; .. subpage&lt;br /&gt;
    end&lt;br /&gt;
    local valid, title = xpcall(function()&lt;br /&gt;
            return mw.title.new(pagename, namespace) -- costly&lt;br /&gt;
        end, function(msg) -- catch undocumented exception (!?)&lt;br /&gt;
            -- thrown when namespace does not exist. The doc still&lt;br /&gt;
            -- says it should return a title, even in that case...&lt;br /&gt;
            message = msg&lt;br /&gt;
        end)&lt;br /&gt;
    if valid and title ~= nil and (title.id or 0) ~= 0&lt;br /&gt;
    then&lt;br /&gt;
        return title&lt;br /&gt;
    end&lt;br /&gt;
    return { -- &amp;quot;pseudo&amp;quot; mw.title object with id = nil in case of error&lt;br /&gt;
        prefixedText = pagename, -- the only property we need below&lt;br /&gt;
        message = message -- only for debugging&lt;br /&gt;
    }&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[If on a translation subpage (like Foobar/de), this function returns&lt;br /&gt;
    a given template in the same language, if the translation is available.&lt;br /&gt;
    Otherwise, the template is returned in its default language, without&lt;br /&gt;
    modification.&lt;br /&gt;
    This is aimed at replacing the current implementation of Template:TNTN.&lt;br /&gt;
&lt;br /&gt;
    This version does not expand the returned template name: this solves the&lt;br /&gt;
    problem of self-recursion in TNT when translatable templates need themselves&lt;br /&gt;
    to transclude other translable templates (such as Tnavbar).&lt;br /&gt;
    ]]&lt;br /&gt;
function this.getTranslatedTemplate(frame, withStatus)&lt;br /&gt;
    local args = frame.args&lt;br /&gt;
    local pagename = args[&#039;template&#039;]&lt;br /&gt;
    &lt;br /&gt;
    --[[Check whether the pagename is actually in the Template namespace, or&lt;br /&gt;
        if we&#039;re transcluding a main-namespace page.&lt;br /&gt;
        (added for backward compatibility of Template:TNT)&lt;br /&gt;
        ]]&lt;br /&gt;
    local title&lt;br /&gt;
    local namespace = args[&#039;namespace&#039;] or &#039;&#039;&lt;br /&gt;
    if (namespace ~= &#039;&#039;) -- Checks for namespace parameter for custom ns.&lt;br /&gt;
    then&lt;br /&gt;
        title = this.title(namespace, pagename) -- Costly&lt;br /&gt;
    else -- Supposes that set page is in ns10.&lt;br /&gt;
    	namespace = &#039;Template&#039;&lt;br /&gt;
        title = this.title(namespace, pagename) -- Costly&lt;br /&gt;
        if title.id == nil&lt;br /&gt;
        then -- not found in the Template namespace, assume the main namespace (for backward compatibility)&lt;br /&gt;
    	    namespace = &#039;&#039;&lt;br /&gt;
            title = this.title(namespace, pagename) -- Costly&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    -- Get the last subpage and check if it matches a known language code.&lt;br /&gt;
    local subpage = args[&#039;uselang&#039;] or &#039;&#039;&lt;br /&gt;
    if (subpage == &#039;&#039;)&lt;br /&gt;
    then&lt;br /&gt;
        subpage = this.getLanguageSubpage()&lt;br /&gt;
    end&lt;br /&gt;
    if (subpage == &#039;&#039;)&lt;br /&gt;
    then&lt;br /&gt;
        -- Check if a translation of the pagename exists in English&lt;br /&gt;
        local newtitle = this.title(namespace, pagename, &#039;en&#039;) -- Costly&lt;br /&gt;
        -- Use the translation when it exists&lt;br /&gt;
        if newtitle.id ~= nil&lt;br /&gt;
        then&lt;br /&gt;
            title = newtitle&lt;br /&gt;
        end&lt;br /&gt;
    else&lt;br /&gt;
        -- Check if a translation of the pagename exists in that language&lt;br /&gt;
        local newtitle = this.title(namespace, pagename, subpage) -- Costly&lt;br /&gt;
        if newtitle.id == nil&lt;br /&gt;
        then&lt;br /&gt;
            -- Check if a translation of the pagename exists in English&lt;br /&gt;
            newtitle = this.title(namespace, pagename, &#039;en&#039;) -- Costly&lt;br /&gt;
        end&lt;br /&gt;
        -- Use the translation when it exists&lt;br /&gt;
        if newtitle.id ~= nil&lt;br /&gt;
        then&lt;br /&gt;
            title = newtitle&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    -- At this point the title should exist&lt;br /&gt;
    if withStatus then&lt;br /&gt;
    	-- status returned to Lua function below&lt;br /&gt;
        return title.prefixedText, title.id ~= nil&lt;br /&gt;
    else&lt;br /&gt;
    	-- returned directly to MediaWiki&lt;br /&gt;
        return title.prefixedText&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[If on a translation subpage (like Foobar/de), this function renders&lt;br /&gt;
    a given template in the same language, if the translation is available.&lt;br /&gt;
    Otherwise, the template is rendered in its default language, without&lt;br /&gt;
    modification.&lt;br /&gt;
    This is aimed at replacing the current implementation of Template:TNT.&lt;br /&gt;
    &lt;br /&gt;
    Note that translatable templates cannot transclude themselves other&lt;br /&gt;
    translatable templates, as it will recurse on TNT. Use TNTN instead&lt;br /&gt;
    to return only the effective template name to expand externally, with&lt;br /&gt;
    template parameters also provided externally.&lt;br /&gt;
    ]]&lt;br /&gt;
function this.renderTranslatedTemplate(frame)&lt;br /&gt;
	local title, found = this.getTranslatedTemplate(frame, true)&lt;br /&gt;
    -- At this point the title should exist prior to performing the expansion&lt;br /&gt;
    -- of the template, otherwise render a red link to the missing page&lt;br /&gt;
    -- (resolved in its assumed namespace). If we don&#039;t tet this here, a&lt;br /&gt;
    -- script error would be thrown. Returning a red link is consistant with&lt;br /&gt;
    -- MediaWiki behavior when attempting to transclude inexistant templates.&lt;br /&gt;
	if not found then&lt;br /&gt;
		return &#039;[[&#039; .. title .. &#039;]]&#039;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
    -- Copy args pseudo-table to a proper table so we can feed it to expandTemplate.&lt;br /&gt;
    -- Then render the pagename.&lt;br /&gt;
    local args = frame.args&lt;br /&gt;
    local pargs = (frame:getParent() or {}).args&lt;br /&gt;
    local arguments = {}&lt;br /&gt;
    if (args[&#039;noshift&#039;] or &#039;&#039;) == &#039;&#039;&lt;br /&gt;
    then&lt;br /&gt;
        for k, v in pairs(pargs) do&lt;br /&gt;
            -- numbered args &amp;gt;= 1 need to be shifted&lt;br /&gt;
            local n = tonumber(k) or 0&lt;br /&gt;
            if (n &amp;gt; 0)&lt;br /&gt;
            then&lt;br /&gt;
                if (n &amp;gt;= 2)&lt;br /&gt;
                then&lt;br /&gt;
                    arguments[n - 1] = v&lt;br /&gt;
                end&lt;br /&gt;
            else&lt;br /&gt;
                arguments[k] = v&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
    else -- special case where TNT is used as autotranslate&lt;br /&gt;
    	-- (don&#039;t shift again what is shifted in the invokation)&lt;br /&gt;
        for k, v in pairs(pargs) do&lt;br /&gt;
            arguments[k] = v&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    arguments[&#039;template&#039;] = title -- override the existing parameter of the base template name supplied with the full name of the actual template expanded&lt;br /&gt;
    arguments[&#039;namespace&#039;] = nil -- discard the specified namespace override&lt;br /&gt;
    arguments[&#039;uselang&#039;] = args[&#039;uselang&#039;] -- argument forwarded into parent frame&lt;br /&gt;
    arguments[&#039;noshift&#039;] = args[&#039;noshift&#039;] -- argument forwarded into parent frame&lt;br /&gt;
    &lt;br /&gt;
    return frame:expandTemplate{title = &#039;:&#039; .. title, args = arguments}&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return this&lt;/div&gt;</summary>
		<author><name>Epìdosis</name></author>
	</entry>
</feed>