Wikipedia
kcgwiki
https://kcg.wikipedia.org/wiki/A%CC%B1tsak_Wat_Wu
MediaWiki 1.39.0-wmf.25
first-letter
Media
Wat khwo
A̱lyiat
A̱tyunta̱m
A̱lyiat a̱tyunta̱m
Wukipedia
A̱lyiat Wukipedia
Fail
A̱lyiat fail
MediaWiki
A̱lyiat MediaWiki
Ta̱mpi̱let
A̱lyiat ta̱mpi̱let
Beang
A̱lyiat beang
Sa
A̱lyiat nsa
TimedText
TimedText talk
Module
Module talk
Gadget
Gadget talk
Gadget definition
Gadget definition talk
MediaWiki:Sitesupport-url
8
2
2
2022-05-16T12:08:08Z
Maintenance script
1
Setting sidebar link
wikitext
text/x-wiki
https://donate.wikimedia.org/?utm_source=donate&utm_medium=sidebar&utm_campaign=kcg.wikipedia.org&uselang=kcg
668hu9yyalrsfp6zrq98agjqkpu55lq
Ta̱mpi̱let:A̱kuu nta̱mpi̱let
10
3
13714
13713
2022-06-06T15:40:54Z
Amire80
6
Sa:
wikitext
text/x-wiki
<div style="clear:both;"></div><noinclude>
[[Sa:Nta̱mpi̱let]]
</noinclude>
jpcqow30y5m8fmi9o1nlmjugfl7fv2w
Ta̱mpi̱let:Sí̱tet Naijeriya
10
4
13208
12828
2022-05-31T19:08:52Z
Amire80
6
noinclude
wikitext
text/x-wiki
<br clear=all><div class="center">
{| id="toc" style="margin: 0 2em 0 2em;"
! style="background:#ccccff" align="center" width="100%" colspan="2" | [[:Category:Sí̱tet Naijeriya|Sí̱tet Naijeriya]]
|-
| align="center" style="font-size: 90%;" colspan="2" | [[Si̱tet Abya]] • [[Si̱tet A̱bonyi]] • [[Si̱tet A̱da̱mawa]] • [[Si̱tet A̱do]] • [[Si̱tet A̱kwa Ibom]] • [[Si̱tet A̱na̱mba̱ra]] • [[Si̱tet Bayelsa]] • [[Si̱tet Ba̱rno]] • [[Si̱tet Ba̱uci]] • [[Si̱tet Benuwe]] • [[Si̱tet Da̱li̱ta]] • [[Si̱tet Gwombe]] • [[Si̱tet Inugu]] • [[Si̱tet Ji̱gawa]] • [[Si̱tet Ka̱duna]] • [[Si̱tet Ka̱na̱u]] • [[Si̱tet Ka̱sina]] • [[Si̱tet Kebi]] • [[Si̱tet Ki̱rosi̱riva]] • [[Si̱tet Kogi]] • [[Si̱tet Kwara]] • [[Si̱tet Legwot]] • [[Si̱tet Na̱sa̱rawa]] • [[Si̱tet Nija]] • [[Si̱tet Ogun]] • [[Si̱tet Ondo]] • [[Si̱tet Oshun]] • [[Si̱tet Pi̱lato]] • [[Si̱tet Sokoto]] • [[Si̱tet Ta̱raba]]
|}
</div><noinclude>
[[Category:Nta̱mpi̱let]]
</noinclude>
il4evj8z2x6g00f3ox4u97g98d1xtr3
Ta̱mpi̱let:Bibyin Afrika
10
5
14628
14627
2022-06-29T10:23:03Z
Kambai Akau
15
wikitext
text/x-wiki
<br clear=all><div class="center">
{| id="toc" style="margin: 0 2em 0 2em;"
! style="background:#ccccff" align="center" width="100%" colspan="2" | [[:Category:Bibyin Afrika|Bibyin Afrika]]
|-
| align="center" style="font-size: 90%;" colspan="2" | [[Afrika A̱tak]] • [[A̱li̱jiriya]] • [[Anggola]] • [[Bini (a̱byin)|Bini]] • [[Botswana]] • [[Burkina Faso]] • [[Burundi]] • [[Caad]] • [[Eritrea]] • [[Eswatini]] • [[Gabon]] • [[Gambya]] • [[Gana]] • [[Gini]] • [[Gini-Bisa̱u]] • [[Gini A̱kwa̱toriya]] • [[Ityopya]] • [[Ji̱buti]] • [[Kemerun]] • [[Kenya]] • [[Kep Vet]] • [[Khwong A̱ta̱m Nzwuom]] • [[Komorot]] • [[Laibiriya]] • [[Lesoto]] • [[Li̱biya]] • [[Mada̱ga̱si̱ka]] • [[Malawi]] • [[Mali]] • [[Ma̱sa̱r]] • [[Ma̱urishyot]] • [[Ma̱uri̱teniya]] • [[Moroko]] • [[Mozambik]] • [[Naijeriya]] • [[Namibya]] • [[Ni̱njer (a̱byin)|Ni̱njer]] • [[Ri̱pobi̱lik A̱ka̱wa̱tyia̱ Afrika]] • [[Ri̱pobi̱lik Di̱mokrasi Konggo]] • [[Ri̱pobi̱lik Konggo]] • [[Ruwanda]] • [[São Tomé e Príncipe]] • [[Senegat]] • [[Sen Helena, Ascension ma̱ng Tristan da Cunha]] • [[Seychelles]] • [[Sira Lyon]] • [[Somalya]] • [[Sudan]] • [[Sudan A̱tak]] • [[Ta̱nzaniya]] • [[Togo]] • [[Tunisiya]] • [[Yuganda]] • [[Zambya]] • [[Zi̱mbabwe]]
|}
</div><noinclude>
[[Category:Nta̱mpi̱let]]</noinclude>
8gw78c39oa6bkbu918cvt6now9qfj50
Ta̱mpi̱let:Bibyin Amerika A̱tak
10
6
13205
12831
2022-05-31T19:07:15Z
Amire80
6
noinclude
wikitext
text/x-wiki
<br clear=all><div class="center">
{| id="toc" style="margin: 0 2em 0 2em;"
! style="background:#ccccff" align="center" width="100%" colspan="2" | [[:Category:Bibyin Amerika A̱tak|Bibyin Amerika A̱tak]]
|-
| align="center" style="font-size: 90%;" colspan="2" | [[Ajentina]] • [[Brazil]] • [[Urugwai]]
|}
</div><noinclude>
[[Category:Nta̱mpi̱let]]
</noinclude>
jm92ydr90m8ttb1yeap4coqs5racqwb
Ta̱mpi̱let:Bibyin Amerika A̱za
10
7
14607
14606
2022-06-24T12:05:33Z
Kambai Akau
15
wikitext
text/x-wiki
<br clear=all><div class="center">
{| id="toc" style="margin: 0 2em 0 2em;"
! style="background:#ccccff" align="center" width="100%" colspan="2" | [[:Category:Bibyin Amerika A̱za|Bibyin Amerika A̱za]]
|-
| align="center" style="font-size: 90%;" colspan="2" | [[Gi̱rinlan]] • [[Ka̱na̱da]] • [[Mikziko]] • [[Muná̱pyia̱ Sí̱tet]]
|}
</div><noinclude>
[[Category:Nta̱mpi̱let]]
</noinclude>
5e2jc9skvdyipl2boxagv9h29ceum7d
Ta̱mpi̱let:Bibyin A̱siya
10
8
13207
12832
2022-05-31T19:07:34Z
Amire80
6
noinclude
wikitext
text/x-wiki
<br clear=all><div class="center">
{| id="toc" style="margin: 0 2em 0 2em;"
! style="background:#ccccff" align="center" width="100%" colspan="2" | [[:Category:Bibyin A̱siya|Bibyin A̱siya]]
|-
| align="center" style="font-size: 90%;" colspan="2" | [[A̱fganistan]] • [[Caina]] • [[Filipin]] • [[Hong Kong]] • [[Isi̱rela]] • [[Ja̱pan]] • [[Ka̱ta̱r]] • [[Kuburut]] • [[Kworiya A̱tak]] • [[Kworiya A̱za]] • [[Lebanon]] • [[Ma̱ka̱u]] • [[Monggoliya]] • [[Ndiya]] • [[Ndonisiya]] • [[Pa̱la̱sti̱n (a̱byin)|Pa̱la̱sti̱n]] • [[Sa̱udi A̱rabiya]] • [[Suriya]] • [[Taiwan]] • [[Turkiya]] • [[Urdun]]• [[Viyetnam]] •
|}
</div><noinclude>
[[Category:Nta̱mpi̱let]]
</noinclude>
q5ovud5ovhtby2lukmbn3yxlntymwm8
Ta̱mpi̱let:Bibyin Osheniya
10
9
13210
12839
2022-05-31T19:10:07Z
Amire80
6
noinclude
wikitext
text/x-wiki
<br clear=all><div class="center">
{| id="toc" style="margin: 0 2em 0 2em;"
! style="background:#ccccff" align="center" width="100%" colspan="2" | [[:Category:Bibyin Osheniya|Bibyin Osheniya]]
|-
| align="center" style="font-size: 90%;" colspan="2" | [[A̱strelya]] • [[Maiki̱rona̱siya]] • [[Melana̱siya]] • [[Papwa Gini A̱fai]] • [[Pa̱la̱u]] • [[Tahiti]] • [[Zi̱lan A̱fai]]
|}
</div><noinclude>
[[Category:Nta̱mpi̱let]]
</noinclude>
g4b2koxpmta0cnicrkb8ua3o5mny8nh
Ta̱mpi̱let:Bibyin Yurop
10
10
13209
12833
2022-05-31T19:09:08Z
Amire80
6
noinclude
wikitext
text/x-wiki
<br clear=all><div class="center">
{| id="toc" style="margin: 0 2em 0 2em;"
! style="background:#ccccff" align="center" width="100%" colspan="2" | [[:Category:Bibyin Yurop|Bibyin Yurop]]
|-
| align="center" style="font-size: 90%;" colspan="2" | [[A̱li̱beniya]] • [[A̱sti̱riya]] • [[Belarut]] • [[Beljiyom]] • [[Da̱mmak]] • [[Fi̱ransa (a̱byin)|Fi̱ransa]] • [[Helat]] • [[Holan]] • [[Italiya]] • [[Jami̱ni]] • [[Nggi̱lan]] • [[Polan]] • [[Lukza̱mbok]] • [[Ri̱pobi̱lik Cek]] • [[Roshiya]] • [[Shwit]] • [[Si̱pen]] • [[Turkiya]] • [[Yuki̱ren]]
|}
</div><noinclude>
[[Category:Nta̱mpi̱let]]
</noinclude>
tgupn7578tb1m3t3fqol0d7b61ut6xi
Ta̱mpi̱let:Country
10
11
12837
65
2022-05-25T21:46:39Z
Kambai Akau
15
wikitext
text/x-wiki
{| class="toccolours" style="float:right; width:250px; margin-left: 1em; font-size: 85%;"
! colspan="2" style="background-color: #003399; color: #FFFFFF; font-size:150%;" align="center" |
'''{{{name}}}'''
|-
| style="background:#FFFFFF;" align="center" colspan="2" |
{| style="background:#FFFFFF; text-align: center;" border="0" cellpadding="2" cellspacing="0"
|-
| {{#if:{{{flag|}}}|[[Fail:{{{flag}}}|130px]]}}
| {{#if:{{{coa|}}}|[[Fail:{{{coa}}}|90px]]}}
|}
|-class="hiddenStructure{{{image|}}}"
| style="background:#FFFFFF;" align="center" colspan="2" | [[Fail:{{{image}}}|297px]]
|-class="hiddenStructure{{{capital|}}}"
| valign="top"| A̱keangtung || style="background: #f7f8ff; text-align:center;" | {{{capital}}}
|- class="hiddenStructure{{{area|}}}"
| valign="top"| Shi kyai || style="background: #f7f8ff; text-align:center;"| {{{area}}} km²
|-
| valign="top"| Shi á̱niet || style="background: #f7f8ff; text-align:center;"| {{{population}}} ab.{{#if:{{{year|}}}|<small> ([[{{{year}}}|{{{year}}}]])</small>}}
|}<noinclude>
<pre>
{{Country
|name =
|flag =
|coa =
|image =
|capital =
|area =
|population =
|year =
}}
</pre>
[[Category:Nta̱mpi̱let]]
</noinclude>
8a9s3ve1kebqj9lc2donqocbjyle559
Ta̱mpi̱let:Nkhang a̱yin mbwak a̱ghyang a̱niet
10
12
12822
12820
2022-05-25T21:33:21Z
Kambai Akau
15
wikitext
text/x-wiki
{| class="toccolours" style="float:right; width:250px; margin-left: 1em; font-size: 85%;"
! colspan="2" style="background-color: #BBBBBB; color: #FFFFFF; font-size:150%;" align="center" |
'''{{{name}}}'''
|-
| style="background:#FFFFFF;" align="center" colspan="2" |
{| style="background:#FFFFFF; text-align: center;" border="0" cellpadding="2" cellspacing="0"
|}
|-class="hiddenStructure{{{image|}}}"
| style="background:#FFFFFF;" align="center" colspan="2" | [[Image:{{{image}}}|297px]]
|-class="hiddenStructure{{{caption|}}}"
| style="background:#FFFFFF;" align="center" colspan="2" | {{{caption}}}
|-class="hiddenStructure{{{full_name|}}}"
| valign="top"| A̱jhyem a̱lyoot || style="background: #AAf8ff; text-align:center;" | {{{full_name}}}
|-class="hiddenStructure{{{date_of_birth|}}}"
| valign="top"| A̱tuk mam mbyin || style="background: #AAf8ff; text-align:center;" | {{{date_of_birth}}}
|- class="hiddenStructure{{{place_of_birth|}}}"
| valign="top"| A̱keang mbyin || style="background: #AAf8ff; text-align:center;"| {{{place_of_birth}}}
|- class="hiddenStructure{{height|}}}"
| valign="top"| Shi a̱za || style="background: #AAf8ff; text-align:center;"| m {{{height}}}
|}<noinclude>
<pre>
{{Nkhang a̱yin mbwak a̱ghyang a̱niet
|name =
|image =
|caption =
|full_name =
|date_of_birth =
|place_of_birth =
|height =
}}
</pre>
[[Category:Nta̱mpi̱let]]
</noinclude>
2ssghclz1bp7e64je1u8bgn1hs9all0
Ta̱mpi̱let:Nkhang a̱tyutsot a̱la̱u-a̱ti̱tak mbwak a̱ghyang a̱niet
10
13
12818
12817
2022-05-25T21:27:24Z
Kambai Akau
15
wikitext
text/x-wiki
{| class="toccolours" style="float:right; width:250px; margin-left: 1em; font-size: 85%;"
! colspan="2" style="background-color: #C421FF; color: #FFFFFF; font-size:150%;" align="center" |
'''{{{name}}}'''
|-
| style="background:#FFFFFF;" align="center" colspan="2" |
{| style="background:#FFFFFF; text-align: center;" border="0" cellpadding="2" cellspacing="0"
|}
|-class="hiddenStructure{{{image|}}}"
| style="background:#FFFFFF;" align="center" colspan="2" | [[Image:{{{image}}}|297px]]
|-class="hiddenStructure{{{caption|}}}"
| style="background:#FFFFFF;" align="center" colspan="2" | {{{caption}}}
|-class="hiddenStructure{{{full_name|}}}"
| valign="top"| A̱jhyem a̱lyoot || style="background: #AAf8ff; text-align:center;" | {{{full_name}}}
|-class="hiddenStructure{{{date_of_birth|}}}"
| valign="top"| A̱tuk mam mbyin || style="background: #AAf8ff; text-align:center;" | {{{date_of_birth}}}
|- class="hiddenStructure{{{place_of_birth|}}}"
| valign="top"| A̱keang mbyin || style="background: #AAf8ff; text-align:center;"| {{{place_of_birth}}}
|- class="hiddenStructure{{height|}}}"
| valign="top"| Shi a̱za || style="background: #AAf8ff; text-align:center;"| m {{{height}}}
|}<noinclude>
<pre>
{{Nkhang a̱tyutsot a̱la̱u-a̱ti̱tak mbwak a̱ghyang a̱niet
|name =
|image =
|caption =
|full_name =
|date_of_birth =
|place_of_birth =
|height =
}}
</pre>
[[Category:Nta̱mpi̱let]]
</noinclude>
1n1jyf3f0jj7aeeyfj06eo9tmv8fj3s
2021
0
14
14143
13260
2022-06-13T09:58:50Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
'''2021''' (MMXXI) ku yet a̱lyia̱ kya ka̱ ku nyia̱ swak a̱ka̱nyiung a̱ni, ka̱ ku ntsa ma̱ A̱tuk Juma a̱ni mami ka̱la̱nda Gi̱ringori ji, ma̱ng a̱lyia̱ 2021 Ce Konyan ''Common Era'' (CE) ka ma̱ng A̱lyia̱ A̱tyoli ''Anno Domini'' (AD) ka, ma̱ng a̱lyia̱ 21 miliniyom 3 ji ma̱ng sa̱ncuri 21 ji, a mbeang a̱lyia̱ 2 a̱si̱ ndyia̱ swak nce ndyia̱ 2020 na.
==Ya̱fang==
<references/>
[[Sa:2021]]
[[Sa:Ndyia̱]]
gpxg05heih1yyl78lwmq4zs0mmkunp1
Abayi
0
15
82
81
2022-05-16T12:43:24Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[A̱baai]]
mrn977myqqpx7bk7xnw6dkn4eyy7s4n
Abubakar Tafawa Balewa
0
16
12057
93
2022-05-20T14:28:05Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
[[Fail:balewa.jpg|thumb|Abubakar Tafawa Balewa]]
'''Abubakar Tafawa Balewa''' KBE PC (Zwat Swak ma̱ng Sweang 1912 – 15 Zwat Jhyiung 1966) ku yet a̱gba̱nda̱ng wa ma̱ng kwai-nfwuo-á̱niet di̱n khai ma̱ng [[Naijeriya]]. Di̱n jen nang á̱niet a̱byin Naijeriya nshyia̱ cet ba̱ng a̱pyia̱ mba a̱ni, nggu wa ba̱ng tyok Pi̱ram Minista hu.
==Ya̱fang==
<references/>
gq7gjd1tsit2t9l3z11de53reewg17k
Abuk
0
17
95
94
2022-05-16T12:43:24Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[A̱buk]]
63ll8gbtey0kzcxan0qsyl3eik7z403
Aburga nat chet
0
18
97
96
2022-05-16T12:43:24Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[Gumaat naat a̱cyet]]
4asub8s0r85rwgrm4gjnkkstu9uhffb
Abwuang
0
19
100
99
2022-05-16T12:43:25Z
Jon Harald Søby
8
2 revisions imported
wikitext
text/x-wiki
#REDIRECT [[A̱bwuang]]
a0fgqe7guu8d8jqppz8k66l7ldiigqw
Abyí
0
20
103
102
2022-05-16T12:43:25Z
Jon Harald Søby
8
2 revisions imported
wikitext
text/x-wiki
#REDIRECT [[A̱bi]]
gdkgc47qst7sn892keeo3rzz35njpb3
Acak
0
21
105
104
2022-05-16T12:43:25Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[A̱cak]]
9o57ln1y4g8o4mr61h4rwaz14ghmxbi
Acyi
0
22
107
106
2022-05-16T12:43:25Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[A̱cyi]]
gd12v1kpyc8ufwy26uz9d58yhoxkmv6
Afa
0
23
109
108
2022-05-16T12:43:25Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[A̱fa]]
674mp6csnj1g0vy795x0gx3u6888pmo
Afai Ziland
0
24
14488
111
2022-06-13T10:44:52Z
Vargenau
226
Changed redirect target from [[A̱fai Ziland]] to [[Zi̱lan A̱fai]]
wikitext
text/x-wiki
#REDIRECT [[Zi̱lan A̱fai]]
dpbzuuy2sbwps9re9k6y7zvmyge2kg0
Afrika
0
25
15255
14144
2022-07-21T06:35:24Z
Gwanki
276
wikitext
text/x-wiki
{{databox}}
A̱byin '''Afrika''' kya yet vam-a̱byin swanta ku yet a̱feang mi̱ shi kyai a̱byin a mbeang a̱feang meang mi̱ shi á̱niet, lilyim a̱byin [[A̱siya]] di̱ nfam nfeang na. Ma̱ng kpa̱mkpaan kilomita a̱ma̱ntanaai miliyon 30.3 (met a̱ma̱ntanaai miliyon 11.7) a mbeang bibyin a̱ka̱wa̱tyia̱ a̱sa̱khwot hyia̱k na, a̱byin Afrika ka kup 6% shi a̱wat a̱mgba̱m swanta hu ma̱ng 20% shi kyai a̱byin nhu hu.<ref name=Sayre>Sayre, April Pulley (1999), ''Africa'', Twenty-First Century Books. ISBN 0-7613-1367-2.</ref>
[[Fail:Africa (orthographic projection) blank.svg|thumb|Ta̱si̱la vam-a̱byin Afrika]]
==Ya̱fang==
<references/>
==A̱ka̱fwuop nta==
<references/>
{{Template:Bibyin Afrika}}
[[Sa:Afrika]]
[[Sa:Nvam-a̱byin_swanta]]
sopwr0ft7jcaelgio5sz7cusz290iqm
Afrika A̱tak
0
26
15427
14145
2022-07-29T08:55:08Z
Caro de Segeda
14
wikitext
text/x-wiki
{{Country
|name = Ri̱pobi̱lik Afrika A̱tak<ref>
'''Lyulyoot a̱gwomna̱ti 11'''<br>iRiphabhuliki yaseNingizimu Afrika (Zulu) <br>iRiphabhlikhi yoMzantsi Afrika (Xhosa)<br>Republiek van Suid-Afrika (Afrikaans)<br>iRiphabliki yeSewula Afrika (Ndebele A̱tak) <br>Repabliki ya Afrika-Borwa (Pedi) <br> Republic of South Africa (Shong)<br>Rephaboliki ya Afrika Borwa (Sotho A̱tak)<br>Rephaboliki ya Aforika Borwa (Tswana)<br>Riphabliki ya Afrika Dzonga (Tsonga)<br>iRiphabhulikhi yaseNingizimu-Afrika (Swati) <br>Riphabuḽiki ya Afurika Tshipembe (Venda)</ref>
|flag = Flag of South Africa.svg
|coa = Coat of arms of South Africa.svg
|image = South Africa (orthographic projection).svg
|capital = A̱pitoli (a̱pyia̱ a̱gwomna̱ti), Bloemfontein (Shi̱ri̱ya), Cape Town (Kpa cam a̱byin)
|area = 1,221,037
|population = 60,142,978
|year = 2021
}}
'''A̱bwom a̱byin''': "A̱bwom a̱byin Afrika A̱tak" <div style="padding-top:0.5em;" class="center">[[File:South Africa National Anthem.ogg]]</div>
A̱byin '''Afrika A̱tak''' ([[Shong (a̱lyem)|Shong]]: ''' South Africa '''), á̱ lyen ma̱ng a̱lyoot a̱gwomna̱ti ka nang '''Ri̱pobi̱lik Afrika A̱tak''', '''RAA̱''' wu (Shong: Republic of South Africa, RSA), yet a̱byin kya di̱ fam a̱byin A̱tak Afrika. Kikya yet 23 ma̱ng shi á̱niet, mba ba̱ ku swak miliyon 60 a̱ni, ka̱ si̱ kup shi kyai a̱byin kilomita a̱ma̱ntanaai 1,221,037 (met a̱ma̱ntanaai 471,445). A̱byin Afrika A̱tak byia̱ a̱ka̱keangtung a̱tat nia: a̱pyia̱ a̱gwomna̱ti (A̱pitoli), shi̱ri̱ya (Bloemfontein) ma̱ng kpa cam a̱byin (Cape Town). A̱gba̱ndang a̱keang a̱ swak mi̱ shi wu wa yet Johannesburg. Kpa̱mkpaan ma̱ng 80% á̱niet Afrika A̱tak yet á̱ka̱mbwon A̱dyundyung á̱niet Afrika nia, á̱ si̱ ghai mba ma̱ng nnwap vwuon na̱ lyiat di̱ lilyem vwuon a̱ni. Á̱kum á̱niet ka si̱ byia̱ ma̱ng a̱nka susot á̱niet [[Yurop]] ji̱ swak si̱ kuzang a̱byin mami [[Afrika]] mi̱ shi a̱ni, (Á̱sai Á̱niet Afrika A̱tak), Á̱niet [[A̱siya]] nang A̱ndiya ma̱ng A̱caina Afrika A̱tak ba, ma̱ng á̱niet Afrika A̱tak ba̱ yet á̱ka̱mbwon nnwap ma̱ a̱di̱di̱t ma̱ng lili nvam za̱nzan.<ref name=safacts>[https://web.archive.org/web/20080719213531/http://www.southafrica.info/about/facts.htm South Africa Fast Facts]</ref><ref>[http://data.worldbank.org/country/south-africa South Africa ]</ref><ref name="Waugh2000">[https://books.google.com/books?id=7GH0KZZthGoC Geography: An Integrated Approach]</ref>
==Ya̱fang==
<references/>
{{Bibyin Afrika}}
[[Sa:Bibyin_swanta]]
[[Sa:Bibyin_Afrika]]
[[Sa:Bibyin_A̱tak_Afrika]]
ho4ezhrl2b4v1u0sf4sp8py2h8wo5la
Afrika Jenshyung
0
27
15254
14651
2022-07-21T06:34:51Z
Gwanki
276
wikitext
text/x-wiki
{{databox}}
Fam '''Afrika Jenshyung''' ku '''Jenshyung Afrika''' yet fam-a̱byin hwa ku lan shyia̱ fam jenshyung [[Afrika]] hu a̱ni. Sot [[Muná̱pyia̱ Bibyin Swanta]] ji ku wa̱i fam-a̱byin Afrika Jenshyung hu ku fa bibyin 16 huni: [[Bini (a̱byin)|Bini]], [[Burkina Faso]], Kabo Verde, Gambya ji, [[Gana]], [[Gini]], [[Gini-Bisa̱u]], [[Khwong A̱ta̱m Zwuom]] (Côte d'Ivoire), Laibiriya, [[Mali]], Ma̱uritaniya, [[Ni̱njer (a̱byin)|Ni̱njer]], [[Naijeriya]], [[Senegal]], [[Sira Lyon]] ma̱ng [[Togo]] mbeang [[Bibyin Nta Muna̱pyia̱ A̱byintyok|A̱byin Nta Muna̱pyia̱ A̱byintyok]] [[Sen Helena, Ascension ma̱ng Tristan da Cunha]].<ref name="Paul R. Masson 2001">Paul R. Masson, Catherine Anne Pattillo, "Monetary union in West Africa (ECOWAS): is it desirable and how could it be achieved?" (Introduction). International Monetary Fund, 2001. ISBN 1-58906-014-8.</ref> Á̱ ku tyan shi á̱niet Afrika Jenshyung hu á̱ si̱ sak kpa̱mkpaan á̱niet miliyon 381, a̱wot á̱niet 381,981,000 ma̱ a̱lyia̱ 2017, da̱nang 189,672,000 mba si̱ yet á̱nap bya a̱wot 192,309,000 si̱ yet á̱sam a̱ni.
[[Fail:Africa-countries-WAFU-UFOA.png|thumb|Ta̱si̱la fam Afrika Jenshyung]]
==Ya̱fang==
<references/>
[[Category:Bibyin_swanta]]
[[Category:Bibyin_Afrika]]
rbdjedgm9xj5pgly5n8hoc3wvnskimp
Agbaat
0
28
256
255
2022-05-16T12:43:29Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[A̱gbaat]]
dlafl45lebdihx7t1yiztnhtvz589z2
Agurma
0
29
266
265
2022-05-16T12:43:30Z
Jon Harald Søby
8
9 revisions imported
wikitext
text/x-wiki
#REDIRECT [[A̱gurma]]
m0v3u1vvq73bdb3r7r0hipuqsckx40k
Agwam
0
30
268
267
2022-05-16T12:43:30Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[A̱gwam]]
mykgy04ty8tzl457fyjoeluobm4xdod
Ahmadu Bello University
0
31
272
271
2022-05-16T12:43:30Z
Jon Harald Søby
8
3 revisions imported
wikitext
text/x-wiki
#REDIRECT [[Yunuvasi̱ti Ahmadu Bello]]
bpm077vynz5zyazrgr51dlgglwy4wy3
Ajijak
0
32
274
273
2022-05-16T12:43:30Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[A̱ji̱jak]]
0zllh9flfaydfw5jdeylcv42pn2odr9
Akata
0
33
283
282
2022-05-16T12:43:30Z
Jon Harald Søby
8
8 revisions imported
wikitext
text/x-wiki
#Redirect [[A̱ka̱ta]]
1hmnza6ba2ermneoica08r7js8htsvl
Akure
0
34
12058
292
2022-05-20T14:29:41Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
[[Fail:Akure.jpg|thumb|Kap a̱keang Akure ghyang]]
'''Akure''' yet a̱keang kya mi̱ fam a̱tak-jenshyung [[Naijeriya]], a̱ bu yet a̱gba̱ndang a̱keang ma̱ng a̱keangtung [[Si̱tet Ondo]]. A̱keang ka byia̱ á̱niet 484,798 nang á̱ ku fang neet ma̱ a̱lyia̱ 2006 a̱ni.
==Ya̱fang==
<references/>
==A̱ka̱fwuop nta==
hb7ebdkra9nbfav0wiplhnb4n2yrg18
Akusanbwat
0
35
294
293
2022-05-16T12:43:31Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[A̱kusambwat]]
michi09yb2anegvy286vhx67l74hg8g
Akusuru
0
36
299
298
2022-05-16T12:43:31Z
Jon Harald Søby
8
4 revisions imported
wikitext
text/x-wiki
#REDIRECT [[A̱kusuru]]
gpvn1ts8o8vazi1l6j9i5yva5vdlp79
Akwon
0
37
301
300
2022-05-16T12:43:31Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[A̱kwon]]
6qe4d0imz70so7pa4b6gmdgzyrofkk9
Albrecht Dürer
0
38
14147
13257
2022-06-13T09:59:38Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
[[Fail:Albrecht Dürer, Selbstbildnis mit 26 Jahren (Prado, Madrid).jpg|197px|right]]
'''Albrecht Dürer''' (21 Zwat Tswuon 1471 – 6 Zwat Nyaai 1528) ku yet a̱tyuswup Jama̱ni wa, ma̱ng a̱tyutsot nkwambwat, ma̱ng a̱gwak lyen wa̱i nkyang di̱n jen Shyi̱ri̱p ma̱ng Swuan A̱jaman hu. Á̱ ku byin nggu ma̱ a̱keang Nuremberg, a̱wot Dürer si̱ kpaat kuntyin a̱lyoot nggu hu ma̱ng cet fuut nggu hu ma̱ a̱byin Yurop di̱n jen tsa ce ndyia̱ nswak nfeang nggu ji mat a̱yaakwopi tsot á̱ shap tazwa a̱ka̱tako ba̱ yet a̱tan ba̱t nang gu ku njhyi a̱ni. A̱ ku byia̱ a̱meang ma̱ng a̱ca̱cet á̱nietnyia̱ nghwughwu Italiya jen nggu ji, nang Raphael, Giovanni Bellini, ma̱ng Leonardo da Vinci, a̱wot kyiak neet ma̱ a̱lyia̱ 1512 a̱ ku shyia̱ á̱niet nang A̱gwamshan Maximilian I nang a̱kpa̱ndang za nggu wu.
[[Sa:Á̱nietnyia̱ nghwughwu ma̱ng á̱nietlyen ghwang a̱ka̱sa]]
3altuvskgnaqm2ga3jyskxf4z5bzi04
Ali Nuhu
0
39
14148
13258
2022-06-13T09:59:43Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
[[Fail:Ali Nuhu at AMVCA 2020.jpg|thumb|Ali Nuhu mi̱ AMVCA 2020]]
'''Ali Nuhu Mohammed''' (byin a̱tuk mam 15 Zwat Tsat 1974) yet a̱tyu nkhang Telvishon Naijeriya wa. A̱ yet a̱gwak wa di̱ tyiet á̱niet ba̱ myiam bwoi nkhang a̱hwa a̱ni.
==Ya̱fang==
<references/>
== A̱ka̱fwuop nta ==
[[Sa:Naijeriya]]
[[Sa:Byin 1974]]
opi3eymljj4050v0l73t1ofdfp2ibxz
Aliko Dangote
0
40
14149
13259
2022-06-13T09:59:48Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
{| class="wikitable" align=right border width="200"
| colspan="2" align=center|'''Aliko Dangote'''
|-
| colspan="2" align=center|[[Fail:Aliko_Dangote.jpg|250px|center|Aliko Dangote]]
|-
|}
'''Aliko Dangote''' [[Order of the Niger|GCON]] (á̱ byin nggu a̱tuk mam 10 Zwat Nyaai 1957) yet a̱tyu byia̱ zwa ma̱ng a̱gwak a̱bwuang wa. A̱ yet a̱tyu [[Naijeriya]] wa. A̱mgba̱m Afrika, a̱ghyang a̱niet bu byia̱ tangka̱i kurum ma̱ng zwa gu byia̱ a̱ni bah. Á̱ dam nyia̱ a̱ byia̱ kurum ma̱ng zwa ji̱ bai [[US$]]11.1 biliyon a̱ni mi̱n Zwat Tswuon 2021.<ref>[https://www.forbes.com/profile/aliko-dangote/ Aliko Dangote]</ref><ref name="Nweke">[http://thenationonlineng.net/new/what-you-should-know-about-dangote/ What you should know about Dangote]</ref><ref>[https://books.google.com/books?id=q_4qDgAAQBAJ&q=Alhassan+Dantata+Hausa&pg=PA55 Multinational Interest & Development in Africa: Establishing a People's Economy by Ilan Bijaoui]</ref>
==Ya̱fang==
<references/>
== A̱ka̱fwuop nta ==
[[Sa:Byin 1957]]
34j4auc3y9xicup3kmhkqg44k4s805d
Amanta
0
41
351
350
2022-05-16T12:43:33Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[A̱ma̱nta]]
466tq83hryde3miaoixt17dm10z6dl0
Amasalaci
0
42
355
354
2022-05-16T12:43:34Z
Jon Harald Søby
8
3 revisions imported
wikitext
text/x-wiki
#REDIRECT [[A̱vwuokpaa̱pyia̱]]
el54odk8lkboe73s94dq4fk6fq73sx1
Amerika
0
43
15259
14150
2022-07-21T06:37:06Z
Gwanki
276
wikitext
text/x-wiki
{{databox}}
[[Fail:Americas (orthographic projection).svg|thumb|250px|A̱vwuo ka nang A̱byin Amerika nshyia̱ a̱ni mi̱ swanta]]
[[Fail:N&SAmerica-pol.jpg|right|thumb|upright=1.05|Ta̱si̱la kwai-nfwuo-á̱niet CIA ce ndyia̱ 1990 hu nang sot CIA ji ku ghwak a̱si̱ Amerika mi̱ ''Lambert azimuthal equal-area projection'']]
A̱byin '''Amerika''' ku nvam-a̱byin '''Amerika''' na, nang á̱ ka ngyei nna a̱mgba̱m '''Amerika''' a̱ni,<ref>"[https://www.oxfordlearnersdictionaries.com/definition/american_english/america?q=america America]" (di̱n [[Shong (a̱lyem)|Shong]]). Oxford Dictionary.</ref> yet kyai a̱byin hwa ku byia̱ nkap [[Amerika A̱za]] ma̱ng [[Amerika A̱tak|A̱tak]].<ref>''Webster's New World College Dictionary'' (di̱n Shong), 2010 by Wiley Publishing, Inc., Cleveland, Ohio.</ref><ref>"[http://www.merriam-webster.com/dictionary/america Merriam Webster dictionary]" (di̱n Shong). 2013. Merriam-Webster, Incorporated.</ref><ref>"continent n. 5. a." (1989) ''Oxford English Dictionary'', 2nd edition. Oxford University Press; "continent<sup>1</sup> n." (2006) ''The Concise Oxford English Dictionary'', 11th edition revised. (Ed.) Catherine Soanes and Angus Stevenson. Oxford University Press; "continent<sup>1</sup> n." (2005) ''The New Oxford American Dictionary'', 2nd edition. (Ed.) Erin McKean. Oxford University Press; "continent [2, n] 4 a" (1996) ''Webster's Third New International Dictionary, Unabridged''. ProQuest Information and Learning; "continent" (2007) ''Encyclopædia Britannica''. Retrieved January 14, 2007, from Encyclopædia Britannica Online.</ref> A̱byin Amerika kya kup shi kyai a̱byin ku swak da̱ Á̱kum-a̱la̱u fam Jenshyung Swanta ka a̱wot kikya si̱ yet [[Ta̱cya̱ A̱fai]] ka.
==Ya̱fang==
<references/>
== A̱ka̱fwuop nta ==
[[Sa:Nvam-a̱byin_swanta]]
[[Sa:Bibyin_Amerika]]
k89aez8c70bm48zopup6tg7itqpwdrx
Amerika A̱ka̱wa̱tyia̱
0
44
14152
13262
2022-06-13T10:00:03Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
A̱byin '''Amerika A̱ka̱wa̱tyia̱''' (Si̱pen: América Central, á̱ ngyei /aˈmeɾika senˈtɾal/, Centroamérica á̱ ngyei /sentɾoaˈmeɾika/; Shong: Central America) yet fam-a̱byin [[Amerika]] hwa. Ka̱ byia̱ a̱gi̱gak ma̱ng bibyin [[Mikziko]] di̱ fam a̱za hu, Kolombya di̱ fam a̱tak hu, [[Kyai A̱sa̱khwot Karibi]] hu di̱ fam a̱tyin hu, ma̱ng [[A̱gba̱ndang Kyai A̱sa̱khwot Pasi̱fi̱k]] wu di̱ fam jenshyung hu. A̱byin Amerika A̱ka̱wa̱tyia̱ nshyia̰ ma̰ng bibyin a̱natat huni hwa: Ba̱liz, Kosta Rika, El Sa̱lva̱do, Gwata̰mala, Hondurat, Nikaragwa, ma̱ng Pana̱ma. Á̱ ku tyan shi a̱mgba̱m á̱niet nhu dundung á̱ si̱si̱ nshyia̱ miliyon 44.53 (ma̱ a̱lyia̱ 2016).
[[Fail:Central America (orthographic projection).svg|thumb|Ta̱si̱la fam-a̱byin Amerika A̰ka̱wa̱tyia̰]]
==Ya̱fang==
<references/>
== A̱ka̱fwuop nta ==
[[Sa:Bibyin_swanta]]
[[Sa:Bibyin_Amerika]]
ich7hkzf19avlmlqpybp4ytq68jmhwn
Amerika A̱tak
0
45
14154
13263
2022-06-13T10:00:13Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
[[Fail:South America (orthographic projection).svg|thumb|Ta̱si̱la vam-a̱byin Amerika A̱tak]]
A̱byin '''Amerika A̱tak''' yet vam-a̱byin hwa ku shyia̱ gba̱mgbam di̱ fam Á̱kum-a̱la̱u Jenshyung hu hwa a̱wot ku si̱ lan shyia̱ di̱ fam Á̱kum-a̱la̱u A̱tak hu hwa, ma̱ng a̱bada̱dei nkap di̱ fam Á̱kum-a̱la̱u A̱za hu. Á̱ si̱ maai ngwa̱i a̱byin ka nang a̱bavam-a̱byin a̱tak bibyin [[Amerika]] ka. Si̱sak nang á̱niet yei a̱lyoot Amerika A̱tak ka da̱ a̱kwonu nfam-a̱byin nghyang (nang Amerika Lati̱n ku Kon A̱tak) sii hyaat mi̱ ndyia̱ na̱ si̱ swak a̱ni mat shai shishai naat mbwuot kwai nfwuo á̱niet mi̱ fam-a̱byin hu (kidee ja yet, ta̱ngam a̱byin [[Brazil]]).
==Ya̱fang==
<references/>
==A̱ka̱fwuop nta==
{{Template:Bibyin Amerika A̱tak}}
[[Sa:Nvam-a̱byin_swanta]]
[[Sa:Bibyin_Amerika]]
09ukzc1tc7kpdqo876zsa4gpdve0bwl
Amerika A̱za
0
46
15260
14156
2022-07-21T06:37:27Z
Gwanki
276
wikitext
text/x-wiki
{{databox}}
[[Fail:Location North America.svg|thumb|Ta̱si̱la vam-a̱byin Amerika A̱za]]
A̱byin '''Amerika A̱za''' yet vam-a̱byin hwa di̱ fam Á̱kum-a̱la̱u A̱za swanta hu a̱wot ka̱ si̱ ka nnyia̱ kpa̱mkpaan nshyia̱ di̱ tityak di̱ fam Á̱kum-a̱la̱u Jenshyung hu. Á̱ ka ngwa̱i nka nang a̱bavam-a̱byin a̱za [[Amerika]] ka.<!-- Mi̱ bibyin ku lyiat di̱n Shong, [[Amerika]], yet nvam-a̱byin nfeang nia. --> Ka̱ si̱ byia̱ a̱gi̱gak di̱ fam a̱za hu ma̱ng [[A̱gba̱ndang Kyai A̱sa̱khwot Atik]] wu, di̱ fam a̱tyin hu ma̱ng [[A̱gba̱ndang Kyai A̱sa̱khwot Ati̱lantik]] wu, di̱ fam a̱tak-a̱tyin hu ma̱ng a̱byin Amerika A̱tak ka ma̱ng [[Kyai A̱sa̱khwot Karibi]] hu, a̱wot di̱ fam jenshyung a mbeang a̱tak hu ma̱ng [[A̱gba̱ndang Kyai A̱sa̱khwot Pasi̱fi̱k]] wu. Mat nang a̱byin Grinlan ka swan da̱ A̱ka̱gba Tektonik Amerika A̱za wu wa, huhwa mbyia̱ nang á̱ si̱ ma ntyia̱ nka nang kap Amerika A̱za hu di̱n vak a̱vwuonswat nka ka mi̱ swanta hu.
==Ya̱fang==
<references/>
==A̱ka̱fwuop nta==
{{Template:Bibyin Amerika A̱za}}
[[Sa:Nvam-a̱byin_swanta]]
[[Sa:Bibyin_Amerika]]
tpxowkgjhxlb4gviwudfa3vsw59i4um
Ampwot
0
47
431
430
2022-05-16T12:43:37Z
Jon Harald Søby
8
2 revisions imported
wikitext
text/x-wiki
#REDIRECT [[A̱mpwot]]
oz0x7o54rxs8ujkfhnif7lxc2o6a6df
Andrew Nkom
0
48
14158
13265
2022-06-13T10:00:53Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
A̱gwak myiam '''Andrew A̱nda̱rawut Nkom''' (á̱ byin nggu a̱tuk mam nswak nfeang ma̱ a̱lyia̱ cyikwop jhyiung ma̱ng cyi a̱kubunyiung ma̱ng nswak naai ma̱ng a̱tat) yet a̱gba̱ndang a̱tyumyiam ma̱ng a̱tyukwaka̱son ma̱ng a̱tyulyuut wa.
==Ya̱fang==
<references/>
== A̱ka̱fwuop nta ==
[[Sa:A̱tyap]]
[[Sa:byin_1943]]
[[Sa:Naijeriya]]
[[Sa:Á̱niet_nswuan]]
5k2ktd1cnr6k3zymn7xuq6z7pve9aps
Andrew Yakubu
0
49
14160
13266
2022-06-13T10:01:03Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
'''Andrew Laah Yakubu''' (á̱ byin nggu a̱tuk mam 10 Zwat A̱kubunyiung 1955), nggu wa yet ''Group Managing Director'' si̱ ku swak a̱ni a̱si ''Nigeria National Petroleum Corporation''. A̱kwak a̱son a̱byin Goodluck Ebele Jonathan nggu wa ku nwuak nggu ta̱m a̱hwa ma̱ a̱lyia̱ 2012.
Á̱ ku fi̱n nggu ma̱ng á̱nietnta̱m nggu ba mi̱n Zwat A̱natat 2014. Joseph Dawha, nggu wa si̱ san ta̱m da̱ a̱vwuo nggu ka.
==Ya̱fang==
<references/>
== A̱ka̱fwuop nta ==
[[Sa:A̱tyap]]
[[Sa:Naijeriya]]
kw1swe61a5s9k7tc1tsddxlfmm1bent
Anggola
0
50
14162
13883
2022-06-13T10:01:13Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
{{Country
|name = ''Ri̱pobi̱lik Anggola''<br><small>República de Angola (Potugit)</small>
|flag = Flag of Angola.svg
|caption = Tyiang a̱toot shi a̱byin Anggola
|coa = Coat of arms of Angola.svg
|image = Angola (orthographic projection).svg
|capital = [[Luwanda]]
|area = 1,246,700
|population = 31,127,674
|year = 2020
}}
'''A̱bwom a̱byin''': "Angola Avante" (''Anggola A̱zaghyi'')
A̱byin '''Anggola''' (Potugit: Angola /ɐ̃ˈɡɔlɐ/), á̱ lyen ma̱ng a̱lyoot a̱gwomna̱ti ka nang '''Ri̱pobi̱lik Anggola''' wu (Potugit: República de Angola), yet a̱byin kya di̱ khwong a̱sa̱khwot jenshyung fam-a̱byin A̱tak Afrika hu. Kikya yet a̱byin a̱feang ka̱ swak ma̱ng shi di̱ bibyin ku lyiat a̱lyem Potugit hu di̱n vak shi kyai a̱byin ma̱ng shi á̱niet (a̱ma̱lyim a̱byin [[Brazil]]), a̱wot ka̱ si̱ yet a̱byin a̱natat mami [[Afrika]] ka̱ swak ma̱ng shi a̱ni. Ka̱ si̱ byia̱ a̱gi̱gak ma̱ng bibyin [[Namibya]] di̱ fam a̱tak hu, [[Ri̱pobi̱lik Di̱mokrasi Konggo|RD Konggo]] wu di̱ fam a̱za hu, [[Zambya]] di̱ fam a̱tyin hu, ma̱ng [[A̱gba̱ndang Kyai A̱sa̱khwot Ati̱lantik]] wu di̱ fam jenshyung. A̱byin Anggola byia̱ provin a̱byin tamm a̱ghyang, provin Kabinda wu, ka̱ byia̱ a̱gi̱gak ma̱ng Ri̱pobi̱lik Konggo wu ma̱ng Ri̱pobi̱lik Di̱mokrasi Konggo wu. A̱keangtung nka ma̱ng a̱gba̱ndang a̱keang a̱ swak ma̱ng shi a̱ni wa yet Luwanda.
==Ya̱fang==
<references/>
{{Bibyin Afrika}}
[[Sa:Bibyin swanta]]
[[Sa:Bibyin Afrika]]
[[Sa:Bibyin A̱tyin Afrika]]
9g282yhlb791dmw8497eb0uz6l5083t
Anietmbyin
0
51
466
465
2022-05-16T12:43:38Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[A̱nietmbyin]]
rghyeubhhz6djslk7c6azjbeozq3wra
Aninan
0
52
470
469
2022-05-16T12:43:38Z
Jon Harald Søby
8
3 revisions imported
wikitext
text/x-wiki
#REDIRECT [[A̱nan]]
44ntwv4q5dkc23ern62ibt7895k1jf4
Arnaut Danjuma
0
53
14900
14164
2022-07-15T21:07:08Z
Kambai Akau
15
N tyia̱ Databox.
wikitext
text/x-wiki
{{Databox|item=Q22001795}}
'''Arnaut Danjuma Groeneveld''' (á̱ byin nggu a̱tuk mam 31 Zwat Jhyiung 1997) yet a̱gwak tsot a̱la̱u-a̱ti̱tak wa a̱ tsot di̱ fam a̱feap ma̱ng ki̱lop La Liga nang á̱ ngyei Villarreal a̱ni. Á̱ ku byin nggu ma̱ a̱byin [[Naijeriya]] kya, a̱wot da̱ nggu, a̱ tsot ma̱ng sot a̱la̱u-a̱ti̱tak a̱byin Nedalan ja.
== Lung-lulung a̱kariya ==
{| class="wikitable" style="font-size:90%; width: 70%; text-align: center;"
!rowspan=2 width=5%|A̱cak
!rowspan=2 width=20%|Ki̱lop
!rowspan=2 width=20%|A̱byin
!rowspan=2 width=20%|A̱yangka̱nan
!colspan=2 width=12%|A̱yangka̱nan
!colspan=2 width=12%|A̱kurung
!colspan=2 width=12%|Bibyin nta
!colspan=2 width=12%|Á̱ghyang
!colspan=2 width=12%|A̱kuu
|-
!width=6%|Shyia̱
!width=6%|Swuo
!width=6%|Shyia̱
!width=6%|Swuo
!width=6%|Shyia̱
!width=6%|Swuo
!width=6%|Shyia̱
!width=6%|Swuo
!width=6%|Shyia̱
!width=6%|Swuo
|-
| 2015/16 || Jong PSV || rowspan=3| Nedalan || Eerste divisie || 1 || 0 || 0 || 0 || colspan=2|– || colspan=2|– || '''1''' || '''0'''
|-
| 2016/17 || rowspan=2| N.E.C. || Eredivisie || 12 || 1 || 0 || 0 || colspan=2|– || 4 || 0 || '''16''' || '''1'''
|-
| 2017/18 || Eerste divisie || 28 || 11 || 2 || 2 || colspan=2|– || 0 || 0 || '''30''' || '''13'''
|-
| 2018/19 || rowspan=2| Club Brugge || rowspan=2| Beli̱jiyom || rowspan=2| Eerste klasse || 20 || 5 || 1 || 0 || 2 || 1 || 1 || 0 || '''24''' || '''6'''
|-
| rowspan=2|2019/20 || 1 || 0 || 0 || 0 || 0 || 0 || colspan=2|– || '''1''' || '''0'''
|-
|rowspan=2| AFC Bournemouth || rowspan=2| [[Nggi̱lan]] || rowspan=1|Premier League || 14 || 0 || 1 || 0 || colspan=2|– || colspan=2|– || '''10''' || '''0'''
|-
| 2020/21 || rowspan=1| Championship || 35 || 17 || 2 || 0 || 0 || 0 || 1 || 1 || '''38''' || '''16'''
|-
| 2021/22 || Villarreal CF || [[Si̱pen]] || Primera División || 12 || 5 || 0 || 0 || 6 || 4 || 0 || 0 || '''18''' || '''9'''
|-
!colspan=4 width=40%|A̱kuu a̱kariya||'''115'''||'''36'''||'''6'''||'''2'''||'''2'''||'''1'''||'''6'''||'''1'''||'''138'''||'''45'''
|-
!! colspan="14" align="left" | Á̱ shyim nat ndyo 10 Zwat Swak ma̱ng Sweang 2021
|}
==Ya̱fang==
<references/>
[[Sa:Byin_1997]]
[[Sa:Á̱niettsot a̱la̱u-a̱ti̱tak]]
d6qavkm4zkrl8f7ad4cck89ks0uqcwv
Aswutong
0
54
479
478
2022-05-16T12:43:38Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[A̱swutong]]
hz0u8fweol556y617hfufv6squetca9
Atashwak
0
55
483
482
2022-05-16T12:43:39Z
Jon Harald Søby
8
3 revisions imported
wikitext
text/x-wiki
#REDIRECT [[A̱ta̱swak]]
954qehy2cwvbxp2goxogcljg6h55b67
Atausa ali
0
56
486
485
2022-05-16T12:43:39Z
Jon Harald Søby
8
2 revisions imported
wikitext
text/x-wiki
#REDIRECT [[Kyai a̱li]]
2cgtyrky4o3aq67pr6s9gy56x4cjttk
Atohd
0
57
488
487
2022-05-16T12:43:39Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[A̱toot]]
hpokv9hbxrzr53uli445018v5ggjvjr
Atoot
0
58
498
497
2022-05-16T12:43:39Z
Jon Harald Søby
8
9 revisions imported
wikitext
text/x-wiki
#REDIRECT [[A̱toot]]
hpokv9hbxrzr53uli445018v5ggjvjr
Atoot agbaat
0
59
500
499
2022-05-16T12:43:39Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[A̱toot a̱gbaat]]
hiux61qj86vgh8rjt6v2cnusxv1c8qp
Atung
0
60
502
501
2022-05-16T12:43:40Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[A̱tung]]
4rlzu883np9nsbnbg90znmsku6l6hvd
Atyin tswan
0
61
504
503
2022-05-16T12:43:40Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[Tswan]]
r5xdsixk0ef1cuf8217frdnlrp0abl6
Atyui shai lyet Agwazah
0
62
506
505
2022-05-16T12:43:40Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[A̱tyushei A̱lyiat A̱gwaza]]
m4fly2cjfr97lbn9dgqtoq12ml0i81t
Atyulyenlilyem
0
63
508
507
2022-05-16T12:43:40Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[Lyenlilyem]]
2do7n190gr4vd8ccvcubjpn833bqdel
Avao Kpaakyia
0
64
511
510
2022-05-16T12:43:40Z
Jon Harald Søby
8
2 revisions imported
wikitext
text/x-wiki
#REDIRECT [[A̱vwuokpaa̱pyia̱]]
el54odk8lkboe73s94dq4fk6fq73sx1
Avouh sak kurum
0
65
517
516
2022-05-16T12:43:40Z
Jon Harald Søby
8
5 revisions imported
wikitext
text/x-wiki
#REDIRECT [[A̱lisaaikurum]].
mfjw5vyp822wymyh42kwykyu6bfhbjp
Ayet
0
66
519
518
2022-05-16T12:43:40Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[A̱yet]]
nxnmyjio8plp6nnffv2w3x04pwwjzvx
Ayra Starr
0
67
14166
13268
2022-06-13T10:01:53Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
[[Fail:Ayra Starr (cropped).png|thumb|Ayra Starr ma̱ a̱lyia̱ 2021]]
'''Oyinkansola Sarah Aderibigbe''' (byin 14 Zwat A̱taa 2002), á̱ lyen nggu ma̱ng '''Ayra Starr''', a̱ yet a̱tyu [[Naijeriya]] wa a̱ tsot bubwom a̱ni sa̱ ndyuut.
==Ya̱fang==
<references/>
[[Sa:Byin 2002]]
oqxy339si6r5dopviwjzqodcml1p7hc
A̠lyem Tyap
0
68
530
529
2022-05-16T12:43:41Z
Jon Harald Søby
8
2 revisions imported
wikitext
text/x-wiki
#REDIRECT [[Tyap (a̱lyem)]]
4xmdd8tnmgh95z14ud2k5t6qm3hoaky
A̠tsak peji
0
69
14492
533
2022-06-13T10:47:01Z
Vargenau
226
Changed redirect target from [[A̱tsak wat]] to [[A̱tsak Wat Wu]]
wikitext
text/x-wiki
#REDIRECT [[A̱tsak Wat Wu]]
4kavx6k0zlmlwxuztvyivtx5owfyc90
A̱ yuan
0
70
535
534
2022-05-16T12:43:41Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[Nywan]]
9ek6gwa1os35595s2eleta1i73q2wrt
A̱baai
0
71
12071
547
2022-05-20T14:32:25Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
[[Fail:Damascus Bowie.jpg|thumb|A̱baai a̱mya̱ra̱m tswam ka̱ byia̱ a̱kup ma̱ng bwak nkwon nang A̱shong ba ngyei ''Bowie'' a̱ni]]
[[Fail:Messerbank 2 fcm.jpg|thumb|alt=Refer to caption|A̱baai a̱tyii ka̱ myiai a̱zatyii ka]]
[[Fail:Knife salesman. Kashgar markets. 2011.jpg|thumb|A̱tyulyiai a̱baai. kaswuó Kashgar. 2011]]
'''A̱baai''' (á̱kpa '''a̱ka̱baai''') yet kyangta̱m ku kyangzwang hwa ku byia̱ a̱jojot a̱nu a̱ ya a̱ni, mi̱ di̱n jen ma̱ a̱di̱di̱t á̱ ka mbeang a̱fwuop da̱ nka.
==Ya̱fang==
<references/>
71jhnx3p1e26dvquzc5xzjhpz41kzq5
A̱baan
0
72
14168
13115
2022-06-13T10:02:04Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
'''A̱baan''' maai fa:
* [[A̱baan (kap vam)]]
* [[A̱baan (a̱sa̱khwot)]]
[[Sa:Ngwat nghai swáng a̱lyiat]]
amq88fjf82fa4h0wksbfkfhj4x6oq2m
A̱baan (a̱sa̱khwot)
0
73
12072
560
2022-05-20T14:32:35Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
[[Fail:Glass of Milk (33657535532).jpg|thumb|Gi̱las a̱baan]]
[[Fail:Melkkarussell.jpg|thumb|Nyák da̱ avwuo nyap a̱bi̱baan ka̱ bwan a̱ni]]
'''A̱baan''' na yet a̱jojot kyayak wa a̱ nhyat ma̱ng nkyang nok vam nang kap vam ku saat nna nang á̱ ngyei ''mammary gland'' di̱n Shong a̱ni hwa saat nna mi̱ nyám ji̱ nwaai mman nji.
==Bu nwuan==
* [[A̱baan (kap vam)]]
==Ya̱fang==
<references/>
74758x54h7mgmdfbivwio7oa4g946rd
A̱baan (kap nvam)
0
74
562
561
2022-05-16T12:43:42Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[A̱baan (kap vam)]]
mf2uhm6cyn2fg03zc9wosy15alniv5h
A̱baan (kap vam)
0
75
12073
582
2022-05-20T14:32:45Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
[[Fail:Weibliche brust en.jpg|thumb|Nkap a̱baan a̱nap a̱tyubushyi (''swáng a̱lyiat Nggi̱li̱t/Shong'') na]]
'''A̱baan''' (á̱kpa: '''a̱bi̱baan''') kuzang a̱yin byia̱ a̱bi̱baan a̱feang, ba̱ swan mi̱ [[fi̱ri̱ng]] a̱ni. A̱bi̱baan a̱byiik cong ma̱ng a̱jojot [[A̱baan (a̱sa̱khwot)|a̱baan]] nang mman swuo ani .
==Ya̱fang==
<references/>
5s3g7nm5o11rd0advoxsrbzfkkaxj63
A̱bada̱dei a̱fang
0
76
12074
599
2022-05-20T14:32:55Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
[[Fail:Gravel on a beach in Thirasia, Santorini, Greece.jpg|thumb|A̱bacyuang nfang (gbi̱ngba̱ra̱m ku swak ma̱ng shi a̱ni mi̱ ghwughwu huni shyia̱ kpa̱mkpaan ma̱ng milimita 40 (nc 1.6))]]
'''A̱bada̱dei a̱fang''' ka (á̱kpa: '''a̱bacyuang nfang''' ''na'') yet a̱da̱dei gbi̱ngba̱ra̱m a̱fang wa nang á̱ fwuoi a̱ni .
== Ya̱fang ==
<references/>
dwnfzna1ykaqlb8mbenvol33r260q6u
A̱bi
0
77
15583
12075
2022-08-07T20:22:54Z
Kambai Akau
15
wikitext
text/x-wiki
{{Databox}}
[[Fail:Agwam Musa Didam Graveyard 2.jpg|thumb|A̱bi A̱gwam Musa Di̱dam, A̱gwam Fantswam II mi̱ Cen, Zi̱kpak, [[Fantswam (a̱byin)|Fantswam]]]]
[[Fail:Grabkreuz mit Nägeln.jpg|thumb|A̱bi ma̱ng a̱team a̱khwu ma̱ng a̱yaakpang (nkusa) mi̱ Evros, [[Helat]]]]
'''A̱bi''' ka (á̱kpa: '''bibi''' ''hu'' ku '''a̱ka̱bi''' ''na'') yet a̱vuo kya nang á̱ niat [[kwom]] a̱tyo a̱khwu a̱ni.
== Ya̱fang ==
<references/>
8s2qissfrdsxa2ds0pzryal4f5q9x0v
A̱binkhap
0
78
614
613
2022-05-16T12:43:45Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[A̱byinkhap]]
3vze8f4wgshc6fmq4lz7bs0ysuhrt89
A̱bií
0
79
616
615
2022-05-16T12:43:45Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[A̱bi]]
gdkgc47qst7sn892keeo3rzz35njpb3
A̱bom
0
80
618
617
2022-05-16T12:43:45Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[A̱bwom]]
gya1qofrpk4loi4edrofd6bk4o9ixky
A̱buja
0
81
14716
14170
2022-07-02T10:49:34Z
Kambai Akau
15
Databox
wikitext
text/x-wiki
{{Databox|item=Q3787}}
'''A̱buja'''<ref>[http://dictionary.reference.com/browse/abuja's Define Abuja's at Dictionary.com]". Dictionary.com. Random House, Inc.</ref> ja yet a̱keangtung ma̱ng a̱gba̱ndang a̱keang a̱ yet a̱ni̱nai ma̱ng shi mami a̱ca̱cet a̱ka̱keang na̱ laai byia̱ á̱niet a̱ni ma̱ a̱byin [[Naijeriya]] ka. Ji̱ shyia̱ ma̱ka̱wa̱tyia̱ a̱byin Naijeriya kya di̱ Teritori A̱keangtung Mundundung (TA̱M) hu, ji̱ si̱ yet a̱gba̱ndang a̱keang nang á̱ ku khwom di̱ ghwang a̱ni, á̱ ku tsa nok a̱kean ka mi̱ ce ndyia̱ 1980 hu hwa.<ref name="bbc">"[http://news.bbc.co.uk/2/hi/africa/6355269.stm Life of poverty in Abuja's wealth]". BBC News, Tuesday, 13 February 2007.</ref> Jija shai [[Legwot]], a̱gba̱ndang a̱keang a̱ swak ma̱ng shi á̱niet ma̱ a̱byin Naijeriya ka, a̱ si̱ ka nta̱bat yet a̱keangtung ka ma̱ a̱tuk mam 12 Zwat Swak ma̱ng Sweang 1991.<ref>Roman Adrian Cybriwsky, ''Capital Cities around the World: An Encyclopedia of Geography, History, and Culture'', ABC-CLIO, USA, 2013, p. 2</ref>
[[Fail:Abuja Collage.jpg|thumb|Kyiak neet di̱ fam a̱za hu (A̱zamyian–A̱zayak): A̱ghyi a̱gba̱ndang a̱gaat a̱ghyang mi̱ [[Maitama District, A̱buja|Maitama District]], Abuja National Mosque, [[A̱fan Zuma]], nnang a̱sa̱khwot mi̱ [[Millennium Park (Abuja)|Millennium Park]], [[Central Bank of Nigeria|Central Bank headquarters]], ma̱ng lang kyai tswazwa Central Business District, Abuja, hu a̱tyetuk]]
==Ya̱fang==
<references/>
{{Template:A̱ka̱keang swanta}}
[[Sa:A̱ka̱keangtung Afrika]]
[[Sa:Naijeriya]]
[[Sa:A̱ka̱keang swanta]]
[[Sa:A̱ka̱keang_mami_Naijeriya]]
[[Sa:A̱kakeangtung a̱yaasi̱tet Naijeriya]]
[[Sa:A̱ca̱cet a̱ka̱keang Naijeriya]]
[[Sa:Naijeriya]]
q8dw6h953rmr45j1bzv8h8wqpuc5eg2
A̱buk
0
82
12076
649
2022-05-20T14:33:15Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
'''A̱buk''' yet a̱ji̱njok á̱ shyiat ma̱ a̱ka̱wa a̱ni. Nggu wa á̱ nyia̱ zwuai.
==Ya̱fang==
<references/>
i58zsq3n8zqgcr680cxr034q6cdpw7s
A̱bwa
0
83
15248
15247
2022-07-19T13:45:19Z
Kambai Akau
15
wikitext
text/x-wiki
{{Databox|item=Q10856}}
[[Fail:Treron vernans male - Kent Ridge Park.jpg|thumb|A̱bwa a̱ byia̱ a̱shong fwuo ma̱ng ci̱ncat ku li nang a̱sa̱khwot a̱kwop a̱ni]]
'''A̱bwa''' wu (á̱kpa: '''a̱yaabwa''' ''ba'') neet mi̱ sot a̱ka̱man.
[[Category:A̱yaabwa| ]]
[[Category:Kwaí a̱ka̱man]]
[[Category:A̱yaalama a̱byin Kuburut]]
[[Category:A̱yaalama a̱byin Fiji]]
[[Category:A̱yaalama a̱byin Gini]]
[[Category:A̱yaalama a̱byin Tongga]]
p8dmsurxvn9l1yb0406w52ptmci0ysh
A̱bwan ntak
0
84
12078
676
2022-05-20T14:33:35Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
[[Fail:Braus 1921 277.png|thumb|Ghwughwu kap a̱team a̱bwan ntak hu ku tyai nám ma̱ng kunkup (''swáng a̱lyiat Latin'')]]
'''A̱bwan ntak''' yet kap vam hwa ku doot neet ma̱ a̱fa̱ng si̱ nat a̱khwukhwut. A̱bwan ntak wa byia̱ kunkup ku nswak ma̱ a̱swap ma̱ng nkap vam a̱ni. Á̱ ngyei kunkup hu ku shyia̱ ma̱ a̱bwan ntak hu ''Femur''.
A̱bwan ntak wu wa byia̱ nam a̱ nswak ma̱ng tak hu.
==Ya̱fang==
<references/>
85nt7kauofmd8s57tzr9xvjk5fd6j8j
A̱bwan tak
0
85
678
677
2022-05-16T12:43:47Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[A̱bwan ntak]]
p8lud4taowexobn265eeqo5veyemvjp
A̱bwom
0
86
15251
15250
2022-07-21T05:42:27Z
Kambai Akau
15
wikitext
text/x-wiki
{{Databox|item=Q7366}}
'''A̱bwom''' ka (á̱kpa: '''bubwom''' ''hu'') yet tak ti̱tak swáng a̱lyiat hwa nang á̱ bwom ma̱ng a̱nwuat a̱tyubishyi a̱ni. Á̱ ni̱ nnyia̱ si̱ huni di̱ njen ma̱ a̱di̱di̱t ma̱ng a̱ca̱caat nwunwuat na̱ tyia̱ a̱ni di̱ nyian ta̱m ma̱ng tswang tsutswang a̱nwuat ma̱ng tyei nywang.
[[Category:Bubwom]]
[[Category:Tangka̱i a̱bwom]]
i6e0ofnieeof4i9eqdtsjqcljn4draz
A̱bwomtsot
0
87
12080
703
2022-05-20T14:33:55Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
'''A̱bwomtsot''' (á̱kpa: '''bubwomtsot''') yet mumwang tak ti̱tak nwunwuat hwa ku nat ca̱caat ma̱ng jen tsot ji, ka̱ ka myim ma̱ng nkap a̱bwomtsot na nang nyinyang a̱bwom, congndung, tsot, ma̱ng za̱kwa swat sa̱t a̱nwuat.
<ref>Company, Houghton Mifflin Harcourt Publishing. [https://ahdictionary.com/word/search.html?q=Music|access-date=2021-01-20 The American Heritage Dictionary entry: Music] (di̱n Shong). ahdictionary.com</ref><ref>[https://www.britannica.com/art/music music {{!}} Art Form, Styles, Rhythm, & History] (di̱n Shong). Encyclopedia Britannica.</ref>
==Ya̱fang==
<references/>
2j3g86qzaat5gkk39smu6mob3mn385v
A̱bwu
0
88
12081
718
2022-05-20T14:34:06Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
'''A̰bwu''' ku '''a̱bwu mali''' (''Canis familiaris'' ku ''Canis lupus familiaris'') yet a̱ka̱mbwon a̱bwu a̱yit kya nang á̱ cok a̱mali a̱ni a̱wot ka̱ si̱ byia̱ li̱m ku gworong tazwa a̱ni.
[[Fail:Sarabi-dog-female.jpg|thumb|Sha̱p a̱bwu Sarabi]]
==Ya̱fang==
<references/>
1g7r8e54shyt5r3iv2vru6vrsov5ti0
A̱bwu a̱kat
0
89
12082
732
2022-05-20T14:34:15Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
[[Fail:Dealer the Labrador Retriever and a redhead duck.jpg|thumb|A̱bwu a̱kat a̱ghyang ma̱ng a̱gwagwa ma̱ a̱bwonu nka ka]]
'''A̱bwu a̱kat''' (''á̱kpa'': a̱ka̱bwu a̱kat) yet nyam ja ji̱ beang a̱tyu a̱kat yebaat nyam a̱yit. A̱bwu a̱kat bu yet di̱ cok a̱tyu a̱kat hu ma̱ a̱yit mat á̱ka̱tuk nyám na̱ neet di̱bang a̱ni.
==Ya̱fang==
<references/>
i3f9665xi8800fqtnpxs6b3qr8f664u
A̱bwuang
0
90
12083
742
2022-05-20T14:34:25Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
'''A̱bwuang''' wu (á̱kpa: '''a̱yaabwuang''' ''ba'') yet naat mbwuot kwai mbeang lyiai nkyang hwa mat cat kpangti̱n.
==Ya̱fang==
<references/>
e2c4fdens0ozb7tf4ualvi9t5x97san
A̱byia̱k
0
91
12084
756
2022-05-20T14:34:35Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
[[Fail:Bosporus Bridge from Ortaköy 02.JPG|thumb|A̱byia̱k Bosporut mami [[Itambut]], [[Turkiya]]]]
'''A̱byia̱k''' yet kyang hwa nang á̱ nok a̱ni ma̱t tyong dyem (kidee nang a̱sa̱khwot na̱ cong a̱ni, a̱ngam, vak a̱cyet ma̱to ku vak kyangcung a̱byin a̱ni) di̱ mi̱n fwun tafa ji.
==Ya̱fang==
<references/>
93e62yyhj1zzwdtvovwwo7v6lpnlq48
A̱byia̱k A̱tazwa
0
92
758
757
2022-05-16T12:43:50Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[A̱byia̱k tazwa]]
r8y75fxu9eb0bo7j68vwg7l4s8aj4uy
A̱byia̱k tazwa
0
93
12085
771
2022-05-20T14:34:45Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
[[Fail:020 N700 Series Shinkansen 新幹線 arriving at Kyoto Station, Japan.jpg|thumb|right|A̰byia̱k tazwa a̱ team ndang kyangcung a̱byin ma̱ a̱di̱di̱t ma̱ng nvak ma̱to mami Kyoto, [[Ja̱pan]]]]
'''A̱byia̱k tazwa''' ku '''a̱byia̱k a̱tazwa''' yet vak hwa nang á̱ nok ku swak tazwa vak ghyang a̱ni, á̱ nok nhu ku byia̱k á̱niet ba ba̱ cat ghan swak vak tatak hu a̱ni.
==Ya̱fang==
<references/>
o5h0a593hkw6j0hberj1znq2puusroy
A̱byin A̱khup
0
94
774
773
2022-05-16T12:43:51Z
Jon Harald Søby
8
2 revisions imported
wikitext
text/x-wiki
#REDIRECT [[A̱byin a̱khwup]]
60byg9omdilkp18vhqienvsekqxz0sm
A̱byin Fantswam
0
95
776
775
2022-05-16T12:43:51Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[Fantswam (a̱byin)]]
1jtj397cakje0v53le1wiuj4uxcpeod
A̱byin akhup
0
96
778
777
2022-05-16T12:43:51Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[A̱byin a̱khwup]]
60byg9omdilkp18vhqienvsekqxz0sm
A̱byin a̱khwup
0
97
15436
12127
2022-07-31T18:38:27Z
Kambai Akau
15
wikitext
text/x-wiki
{{Databox}}
[[Fail:Photograph of a Greek Revival Parlor in the Metropolitan.jpg|thumb|A̱byin a̱khwup]]
'''A̱byin a̱khwup''' (á̱kpa: '''bibyin a̱khwup''') yet tutu hwa ma̱ a̱li nang á̱ nsaai a̱nietcen a̱ni, á̱ si̱ ma nswan á̱ ya kyayak á̱ sa mbwoi nkhang á̱ ba̱ nfwung.
==Ya̱fang==
<references/>
3m8twzhsfuq028jkbdjf2sm0v5a1uut
A̱byinkhap
0
98
12624
12620
2022-05-22T08:32:53Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
[[Fail:Share of land area used for agriculture, OWID.svg|thumb|250px|Bibyinkhap swanta, ''OWID'']]
'''A̱byinkhap''' (''á̱kpa'': '''bibyin khap''') yet a̱vwuo kya nang á̱ khap a̱ni. Ka̱ doot á̱ mba̱ng nyám ma̱ a̱byin khap meang.
==Ya̱fang==
<references/>
mbbyijd0beap26ezx2mcqb5m68bk3rb
A̱byoot
0
99
14176
13665
2022-06-13T10:03:04Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
'''A̱byoot''' ba (''Gworok, Fantswam, Sholyia̱, Ta̱kat'': A̰byorok; ''[[Byoot (a̱lyem)|Byoot:]]'' Anghan; ''[[Kpat (a̱lyem)|Kpat:]]'' Kamantan) yet á̱niet bya á̱ maai nshyia̱ [[Susot a̱gwomna̱ti mali Naijeriya|Sot A̱gwomna̱ti Mali]] [[Zangon Katab]] a̱si̱ [[A̱tak Ka̱duna|a̱tak]] [[Si̱tet Ka̱duna]], mi̱ fam-a̱byin Fa̱m A̱ka̱wa̱tyia̱ [[Naijeriya]].<ref name=LGA></ref>
== Yai ==
A̱byoot ba shi á̱kpa swak di̱ fam [[Susot a̱gwomna̱ti mali Naijeriya|Sot A̱gwomna̱ti Mali]] [[Zangon Kataf]] a̱si̱ [[A̱tak Ka̱duna|a̱tak]] [[Si̱tet Ka̱duna]], [[Naijeriya]] hwa.<ref name=LGA>{{Cite web |url=https://localgov.kdsg.gov.ng/?page_id=222 |title=Districts and Village Units of Kaduna State |access-date=August 6, 2020}}</ref> A̱byoot ba mbeang [[A̱sunkurum]] ba yet a̱cyuang nnwap nia mami sot a̱gwomna̱ti mali ji a̱wot kuzang si̱ byia̱ sot-tyok jhyiung ja ma̱nyin a̱mgba̱m ma̱ng shi á̱niet mba hu, [[Matthew Hassan Kukah|Rev. Fr. Matthew Kukah]] wa ku kwop a̱dyii̱ng a̱nia.<ref>Damina, Francis (July 17, 2020). "[https://allafrica.com/stories/202007170657.html Nigeria: 'Mediatrix' - a Tribute to Maman Fr. Kukah]." ''All Africa''. This Day.</ref>
== Khwi ==
A̱di̱di̱t A̱byoot wu yet [[Khwikristi|Krista]] bya (ma̱ng A̱roman Katolik ba ba̱ shi tat 80.0%, A̱protestan ba 10.0% ma̱ng Á̱sa̱t ba 10.0%), ma̱nang á̱kum 25.0% ka á̱ nyia̱ ba̱ cong khwi taada hwa<ref>"[https://joshuaproject.net/people_groups/12459/NI Joshua Project entry on Kamantan (Anghan) people]".</ref> a̱wot ku si̱ yet doot nyia̱ ma̱ a̱da̱dei yet [[Khwikpaa̱pyia̱|A̱kpaa̱pyia̱]] bya.
== A̱lyem ==
{{Main article|A̱lyem Byoot}}
== Cuk tyok ==
Ma̱ a̱di̱di̱t A̱byoot ba shyia̱ di̱ swat ma̱ A̱byin-tyok A̱byoot kikya, a̱wot ba̱ si̱ ngyei á̱gwam mba ba ''Ngbiar''. A̱tyuba̱ngtyok wu mi̱ di̱ yong huni wa yet '''A̱tyushityok (A̱ST) Ngbiar Adamu Alkali, ''Ngbiar Anghan'''''. A̱keangtung a̱byin-tyok ka shyia̱ a̱keang Ka̱ma̱ntong, [[Susot a̱gwomna̱ti mali Naijeriya|Sot A̱gwomna̱ti Mali]] [[Zangon Kataf]], [[Si̱tet Ka̱duna]].<ref name=LGA></ref><ref>"[https://allafrica.com/stories/201502030383.html Nigeria: Attackers of Kamantan Village Will be Brought to Book]". Daily Independent. ''All Africa''. (February 3, 2015).</ref>
== A̱ca̱cet á̱niet ==
* [[Gloria Ballason]], la̱uya, activist
== Ya̱fang ==
<references/>
[[Sa:Ka̱duna]]
[[Sa:Nnwap_swanta]]
[[Sa:Nnwap_Afrika]]
[[Sa:Nnwap mi̱ Naijeriya]]
dhu9ogjp4nwgc2y92x4lgkul9j0fm7v
A̱cak
0
100
12086
856
2022-05-20T14:34:55Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
'''A̱cak''' (á̱kpa: '''a̱ka̱cak''') yet vak ghyang hwa nang á̱ saat a̱lyia̱ ka ca̱caat ma̱ng shyiak li lili wun hu, a̱koloji ma̱ng shi a̱wa sai mam hu di̱ fam a̱byin a̱nyiung. A̱ka̱cak a̱lyia̱ na shyia̱ di̱ a̱naai nia: A̱vwuoshyim, A̱kwa̱i, Seam ma̱ng A̱won.
==Ya̱fang==
<references/>
78t1350p33u0xot26i6484rxaz3oji6
A̱ca̱t a̱tanu
0
101
12087
873
2022-05-20T14:35:05Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
'''A̱ca̱t a̱tanu''' (A̱tak a̱nu) yet ca̱t ku ghuut ku tang a̱tak a̱nu a̱ni. A̱tak a̱nu ki kya shyia̱ kpa̱nkpaan ma̱ng kpang ma̱ng fwuo a̱tyubishyi ku nyam a̱ni.
==Ya̱fang==
<references/>
[[Fail:Jack Passion in 2009.jpg|thumb|Ghwughwu Jack Passion ma̱ng a̱junjung a̱cat a̱nu]]
5v2nlkr9uwz8foccsbbu06spwyb8urw
A̱cyi
0
102
12088
889
2022-05-20T14:35:15Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
'''A̱cyi''' ka (á̱kpa: '''cyi''' ''hu'') yet a̱lyoot susotbishyi á̱ga̱fi̱p njhyang mi̱ sot ''genus Dioscorea'' (kyang Dioscoreaceae) ji ji̱ yet á̱ni̱nan á̱ ya na a̱ni.
[[Fail:YamsatBrixtonMarket.jpg|thumb|A̱sai cyi mi̱ kaswuo lyiai nkyang jhyang ma̱ a̱keang Brixton, [[Nggi̱lan]], 2004]]
==Ya̱fang==
<references/>
feyfndasps2gzpgxfekr0ibilfrmp7x
A̱da
0
103
14485
14484
2022-06-13T10:43:12Z
Vargenau
226
Changed redirect target from [[A̱daa]] to [[A̱daa (á̱niet)]]
wikitext
text/x-wiki
#REDIRECT [[A̱daa (á̱niet)]]
67v6u8fw6ucqlmipt1aqejsisy7bn1h
A̱da (kyangta̱m)
0
104
12089
897
2022-05-20T14:35:25Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
'''A̱da''' yet a̱kum, a̱kpa̱kpai tswat tyam nkyang wa, ma̰ng a̰di̱di̱r a̱nu a̱ gwong ma̱ a̰da̱dei a̱ni nang á̱ shap ma̱ a̱nu ya a̱kya, a̱wot di̱n jen jhyang a̱ ni̱ mbyia̱ a̱toot kwa cam a̱jojot a̱nu wu kalak a̱ faat a̱yin. Ma̱ a̱byin A̱tyap ka, a̱da yet kyangta̱m hwa nang á̱ fak a̱ka̱kwon ma̱ng a̱nggu a̱wot a̱ ka nyia̱ nta̱m jhyang.
==Ya̱fang==
<references/>
oqu0m1dt42xjrs9kn4d023uxsv3cp7b
A̱daa (nwap)
0
105
15209
14151
2022-07-17T19:10:53Z
Kambai Akau
15
Kambai Akau shyei peji [[A̱daa (á̱niet)]] nat [[A̱daa (nwap)]]: Ku lan tyia̱ a̱ni.
wikitext
text/x-wiki
'''A̱daa''' ba (''[[Daa (a̱lyem)|Daa]]'': '''Ham''', ''[[Kpat (a̱lyem)|Kpat]]'': Jaba) yet nwap ja nang á̱ maai nshyia̱ di̱ [[A̱tak Ka̱duna|fam a̱tak]] [[Si̱tet Ka̱duna]], di̱ fam a̱za-jenshyung a̱byin [[Naijeriya]] ka a̱ni,<ref>James, Ibrahim (1986). "The Ham in history : the Ham and their neighbours. Jos University Press. ISBN 978-166-038-4.</ref> ma̱ a̱di̱di̱t si̱ ba̱ng shyia̱ [[Susot a̱gwomna̱ti mali Naijeriya|Susot A̱gwomna̱ti Mali]] [[Jaba, Naijeriya|Jaba]], [[Ka̱ciya]] ma̱ng [[Ka̱ga̱rko]] á̱si̱ a̱tak Si̱tet Ka̱duna, [[Naijeriya]]. [[Da (a̱lyem)|Da]] ja yet a̱lyem mba ka, a̱wot ba̱ yei á̱pyia̱ mba ''Ham'', ba̱ si̱ yei a̱lyem mba ka ''Hyam''. A̱kpat wu yei mba ''Jaba'', a̱wot zop jhyang mbwak [[Lyenlilyem|a̱tyulyen lilyem]] a̱ yet byina̱byin fam a̱byin hu (John 2017) a̱ni ku yong mi̱cet a̱ si̱ kaat nyia̱ a̱lyoot 'Jaba' ka yet swang a̱lyiat tok ja. Mat a̱nia, ku myim á̱ dak nji á̱ weam.<ref>John, P. H. (2017). Narratives of identity and sociocultural worldview in song texts of the Ham of Nigeria: A discourse analysis investigation (Doctoral dissertation, Stellenbosch: Stellenbosch University).</ref><ref>"[https://www.ethnologue.com/language/jab Hyam]". Ethnologue.</ref> Tyan jhyang ku sak shi á̱kpa A̱daa hu kpa̱mkpaan ma̱ng á̱niet 400,000.<ref>[https://www.ethnologue.com/subgroups/hyamic]</ref>
==Nkhang==
Á̱ghyang nwuak a̱cucuk nyia̱ A̱da ba, bibya ku tsa [[Taada Nok]] ji a̱ma̱lyim jen ji á̱ ku ta̱bat ta̱taat pyipyia̱ nghwughwu terakota ba ba̱ tyai nkhang gbangbang a̱ni ma̱ a̱bakeang A̱da ka nang á̱ ngyei [[Nok]] a̱ni.<ref>{{Cite book|title=The History of Western Africa: Britannica guide to Africa|last=McKenna|first=Amy|publisher=The Rosen Publishing Group|year=2011|isbn=1615303162|pages=173}}</ref>
== Taada ==
Á̱ song a̱yet Tuk-Ham (A̱tuk-A̱da kya ka) kuzang a̱lyia̱ mami a̱keang [[Kwain]] (nang A̱kpat wu ku byian si̱ yet ''Kwoi'' a̱ni), mi̱ [[Susot a̱gwomna̱ti mali Naijeriya|Sot A̱gwomna̱ti Mali]] a̱si̱ [[Jaba, Nigeria|Jaba]]. Á̱ song song a̱ja da̱ a̱beam a̱cak Ita kya.<ref>{{Cite book|title=Nigeria, a People United, a Future Assured: Survey of states|last=Matthew-Daniel|first=B. J. St.|last2=Mamman|first2=A. B.|last3=Petters|first3=Sunday W.|last4=Oyebanji|first4=J. Oluwole|last5=Federal Ministry of Information Nigeria|publisher=Federal Ministry of Information Nigeria|year=2000|isbn=9780104321|pages=250}}</ref><ref>{{Cite news|url=http://www.zodml.org/content/tuk-ham#.WJD6bBuLTIU|title=Tuk-Ham|newspaper=ZODML|language=en|access-date=2017-01-31}}</ref>
== Khwi ==
A̱di̱di̱t A̱da wu yet [[Khwikristi|Krista]] bya, á̱ tyan shi á̱kpa mba hu á̱ si̱ sak kpa̱mkpaan ma̱ng 85%. Kpa̱mkpaan ma̱ng 75% a̱mgba̱m á̱niet ba yet, si̱sak ma̱ng nunu ghyáng, "Krista A̱vanjelikat" bya, ma̱ng 10% ba̱ shyia̱ ma̱ng susot Krista jhyáng ja a̱ni.<ref>[https://joshuaproject.net/people_groups/12165/NI Nwuai Joshua project da̱ á̱niet Ham ba]</ref>
==A̱lyem==
A̱daa ba lyiat ma̱ng [[Daa (a̱lyem)|Daa]] ja.
== Kwai-nfwuo-á̱niet==
Á̱ ngyei á̱nietba̱ngtyok (ku á̱gwam) A̱da ba ''Kpop Ham''. ''Kpop Ham'' wu mi̱ di̱ yong huni wa yet A̱tyushityok (A̱ST) Kpop-Ham wu [[Jonathan Gyet Maude|Dr. Jonathan Danladi Gyet Maude (J.P.), OON]].<ref>[https://web.archive.org/web/20210629114934/https://hamculturalheritage.org/ HAM CULTURAL HERITAGE]. HAM CULTURAL HERITAGE.</ref>
==A̱ca̱cet á̱niet==
A̱ca̱cet á̱niet ma̱ng a̱sok A̱da a̱ni bya ba:
* [[Martin Luther Agwai]]
* [[Andrew Jonathan Nok]]
* [[Adamu Maikori]], la̱uya a̱son a̱ neet ghwut ma̱ [[A̱tak Ka̱duna]] a̱ni
* [[Audu Maikori]], a̱tyukpaat ma̱ng Group CEO a̱si̱ lebet rekwot Chocolate City Entertainment
* [[Yahaya Maikori]], a̱tyukpaat ma̱ng Group CEO a̱si̱ lebet rekwot Chocolate City Entertainment
* [[Ishaya Ibrahim|Admiral Ishaya Iko Ibrahim]], Chief of Naval Staff gbangbang ma̱ng Sarkin Yaki Ham
* [[Felix Hyatt|Felix Hassan Hyet]], Minister of Aviation gbangbang
* [[Danlami Sambo|Justice Danlami Sambo]], Justice Sokoto High Court gbangbang
* [[A̱tyokhwu Dr. Chris Abashiya]], A̱tyulyuut, A̱tyukwainfwuo ma̱ng Activist
* [[Usman Mu'azu|A̱tyokhwu AVM Usman Ma'azu]], Military Administrator gbangbang a̱si̱ A̱byin Ka̱duna
* [[Col T.K Zabairu]], Military Administrator gbangbang a̱si̱ A̱byin Imo
* Ambassador Nuhu Bajoga, A̱tyubeang Gwomna A̱byin Ka̱duna, 2011-2015
== Ya̱fang ==
<references/>
[[Sa:Nnwap_swanta]]
[[Sa:Nnwap_Afrika]]
[[Sa:Nnwap mi̱ Naijeriya]]
mfeiybskkf4rz1d25582sf1n46yysoh
A̱danka̱li A̱shong
0
106
948
947
2022-05-16T12:43:57Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[A̱da̱ngka̱li A̱shong]]
m2r81w78fh2cglewtawh6b9opo5ztro
A̱da̱dei ma̱to
0
107
14153
13272
2022-06-13T10:00:08Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
[[Fail:401 Gridlock.jpg|thumb|A̱cyuang a̱yaama̱to ma̱ng a̱ca̱cet a̱yaama̱to luk kai a̱gba̱ndang vak á̱ ka̱u a̱feang a̱ni, Highway 401 ma̱ a̱keang Ontario, [[Ka̱na̱da]]]]
'''A̱da̱dei ma̱to''' (ku '''a̱tomobal''') yet [[kyangcung ma̱to]] a̱ti̱tak a̱naai hwa nang á̱ nyia̱ ta̱m ma̱ng a̱nggu di̱ shyei á̱niet neet da̱ a̱vwuo a̱nyiung naat da̱ a̱vwuo a̱ghyang. Wa̱i ''a̱cyuang a̱yaama̱to'' ma̱ a̱di̱di̱t nnyia̱ ba̱ yet nkyangcung na̱ tyong mi̱ nvak nia, na̱ saai tsi̱tsak a̱tyonyiung ba̱ng si̱ tat á̱niet a̱ni̱nai, byia̱ [[Tak kyangcung|a̱ti̱tak]] a̱naai a̱wot si̱ kyiak á̱nietbishyi swak nkyang.<ref>Fowler, H. W.; ma̱ng Fowler, F. G. (Jhy.) (Ri̱jista 1976). [https://archive.org/details/australianpocket00john book Pocket Oxford Dictionary] (di̱n Shong). Oxford University Press. ISBN 978-0198611134.</ref>
Á̱ tsa nyia̱ nta̱m ma̱ng a̱cyuang ma̱to mi̱ a̱mgba̱m swanta hu mi̱ sa̱ncuri 20 jija.
==Ya̱fang==
<references/>
==A̱ka̱fwuop nta==
[[Sa:A̱cyuang a̱yaama̱to| ]]
[[Sa:Nkyangcung na̱ byia̱ a̱ti̱tak]]
[[Sa:Bwoi mi̱ bwoi Jami̱ni]]
[[Sa:Bwoi mi̱ bwoi sa̱ncuri 19]]
kqb7icxx4jtyw5ujod0r58zkvfadhab
A̱da̱ngka̱li A̱shong
0
108
12092
980
2022-05-20T14:35:55Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
[[Fail:Patates.jpg|thumb|A̱da̱ngka̱li A̱shong]]
'''A̱da̱ngka̱lí a̱shong''' (á̱ghyang á̱niet nyia̱ a̱tsak a̱lyoot wu wa yet '''a̱runguna A̱shong''') a̱ yet zwa a̱tyin a̱ga̱fi̱p (Solanum tuberosum) ja nang á̱ ngya a̱ni̱nan ba, a̱vwuo ka nang kyayak nji nshyia̱ a̱ni. A̱tyin a̱ga̱fi̱p kani neet mi̱ Amerika wa. A̱wot ka̱ si̱ yet a̱tyin a̱ga̱fi̱p ka̱ kyiak a̱lyia̱ a̱nyiung kya ka̱ laai kwop, ka̱ si̱ shyia̱ kwai á̱ga̱fi̱p ''Solanaceae'' ji ja.<ref>[http://www.merriam-webster.com/dictionary/potato Potato – Definition of potato by Merriam-Webster] (di̱n Shong). merriam-webster.com</ref>
==Ya̱fang==
<references/>
f6t7airh73a1fqtgb2ikblc0rdz23gm
A̱dyundyung Kyai A̱sa̱khwot
0
109
14740
14739
2022-07-02T18:58:46Z
Kambai Akau
15
wikitext
text/x-wiki
{{Databox|item=Q166}}
'''A̱dyundyung Kyai A̱sa̱khwot''' wu yet kyai a̱sa̱khwot hwa ku shyia̱ di̱ ngaan fam a̱za-a̱tyin [[A̱gba̱ndang Kyai A̱sa̱khwot Ati̱lantik]] hu a̱ni, ku myiai tsi̱tsak [[Yurop]] ma̱ng [[A̱siya]]; di̱ fam a̱tyin A̱fa̱fap-a̱byin Bali̱kan hu (A̱tak-a̱tyin Yurop), fam a̱tak A̱kpa̱kpai a̱byin fam A̱tyin Yurop di̱ fam-a̱byin A̱tyin Yurop, fam jenshyung Ka̱ukasut hu, ma̱ng fam a̱za A̱natoliya hu di̱ fam Jenshyung A̱siya. A̱sa̱khwot nhu na neet a̱ca̱cet a̱ka̱ghyui á̱ghyang nia, nang a̱ka̱ghyui Danube, Dnieper, ma̱ng Don na. Jhyujhyuai a̱sa̱khwot bibyin ma̱ a̱di̱di̱t koot mami kyai a̱sa̱khwot a̱hwa ku shyia̱ a̱zanson bibyin a̱taa ku byia̱ a̱gi̱gak khwong kyai a̱sa̱khwot ma̱ng a̱nhu a̱ni.
==Ya̱fang==
<references/>
== A̱ka̱fwuop nta ==
[[Sa:Nvam_a̱sa̱khwot_swanta]]
[[Sa:Nkyai_A̱sa̱khwot_swanta]]
cif83rqh8pmr2jvynqemp4zd2zbczlb
A̱fa
0
110
12094
1008
2022-05-20T14:36:15Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
[[Fail:Tractus intestinalis ventriculus.svg|thumb|Ghwang kpa̱m nkyangbyii̱k kyayak hu, ma̱ng a̱fa ka ka̱ li a̱shong]]
'''A̱fa''' ka (á̱kpa: '''a̱fi̱fa''' ''na'') yet kap vam hwa ku shyia̱ ma̱ a̱ka̱wa̱tyia̱ vam a̱ni. A̱fa kikya saai nkyang na̱ nwuai a̱bwonu ka a̱ni.
==Ya̱fang==
<references/>
hziq2lkz4ruhkyr4coyb7qex8s1zlo8
A̱fai Ziland
0
111
1010
1009
2022-05-16T12:43:59Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[Zi̱lan A̱fai]]
dpbzuuy2sbwps9re9k6y7zvmyge2kg0
A̱fan
0
112
12095
1022
2022-05-20T14:36:25Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
[[Fail:Mount_Kilimanjaro.jpg|thumb|A̱fan Kilimanjaro mi̱ [[Ta̱nzaniya]], a̱fan ka̱ swak ma̱ng shi a̱za mami [[Afrika]] a̱ni]]
'''A̱fan''' ka (á̱kpa: '''a̱ka̱fan''' ''na'') yet kap a̱tai swanta hu hwa ku ta̱ngam byia̱ shi a̱za a̱ni, da̱ a̱ka̱nyiung ma̱ng nfam na na̱ kpa̱k na̱ si̱ tyai nfang kuntyin nka na a̱ni.
==Ya̱fang==
<references/>
tlenpbvmbhi5qmxztwxxt2ouf3j8x0x
A̱fganistan
0
113
15267
14759
2022-07-21T09:05:31Z
Gwanki
276
wikitext
text/x-wiki
{{databox}}
{| class="wikitable" align=right border width="200"
| colspan="2" align=center|'''A̱fganistan'''
|-
| colspan="2" align=center|[[Fail:Afghanistan (orthographic projection).svg|thumb|300px|center]]
|-
| colspan="2" align=center|Ta̱si̱la a̱byin A̱fganistan
|-
| [[Fail:Flag of the Taliban.svg|thumb|Tuta a̱byin A̱fganistan]]
|-
| [[Fail:Arms of the Islamic Emirate of Afghanistan.svg|thumb|A̱lama a̱byin Tyokkpaa̱pyia̱ A̱fganistan]]
|-
|}
A̱byin '''A̱fganistan''' (Pashi̱to/Da̱ri: افغانستان, ''Afġānestān'' /avɣɒnesˈtɒn/;<ref>These pronunciations involve assimilation, wherein /f/ becomes its assimilated allophone [v] before a voiced consonant. (di̱n Shong)</ref> yei Shong: Afghanistan /æfˈɡænᵻstæn/ ku /æfˈɡɑːnᵻstɑːn/), yet a̱byin tsutsok kya nang bibyin ghyáng keang di̱ tityak a̱ni da̱ a̱yaaga̱sat nvak A̱ka̱wa̱tyia̱ ma̱ng A̱tak A̱siya. Ka̱ byia̱ a̱gi̱gak ma̱ng bibyin Pakistan di̱ fam a̱tyin ma̱ng a̱tak hu, Iran di̱ fam jenshyung hu, Turkmenistan, Uzbekistan, ma̱ng Tajikistan di̱ fam a̱za hu, ma̱ng [[Caina]] di̱ fam a̱za-a̱tyin hu. A̱byin ka kup shi kyai a̱byin kilomita a̱ma̱ntanaai 652,864 (met a̱ma̱ntanaai 252,072), ka̱ si̱ nhyat ma̱ng tsutsok ma̱ng a̱kpa̱mkpai a̱byin di̱ fam a̱za ma̱ng a̱tak-jenshyung hu. A̱keang Ka̱bul kya yet a̱keangtung ka ma̱ng a̱gba̱ndang a̱keang a̱ swak ma̱ng shi a̱ni, nang á̱ ku tyan shi á̱niet nka sak miliyon 4.6 a̱ni ma̱ng nnwap nang [[A̱pashi̱tun]], A̱tajik, Hazara, ma̱ng Uzbek ba.
==Ya̱fang==
==A̱ka̱fwuop nta==
<references/>
{{Template:Bibyin A̱siya}}
[[Sa:Bibyin_swanta]]
[[Sa:Bibyin_A̱siya]]
49q3s6hqhs0qzpifdo4ev7ylh136qtw
A̱fi̱fap a̱byin
0
114
12097
1076
2022-05-20T14:36:47Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
'''A̱fi̱fap a̱byin''' yet tamm a̱byin nang a̱sa̱khwot nyia̱ kpa̱mkpaan tyat a̱ni, a̱junjung a̱byin khwong a̱sa̱khwot(wu)/á̱kpa: a̱fi̱fap bibyin(wu), ndi̱m a̱byin(na).
== Ya̱fang ==
<references/>
tghjzh594kqax8e0ffyt5a094356s0c
A̱fuong
0
115
1085
1084
2022-05-16T12:44:02Z
Jon Harald Søby
8
8 revisions imported
wikitext
text/x-wiki
#REDIRECT [[A̱fwuong]]
siykj7n52qoyq4udrykydtwhpa56zr4
A̱fwuong
0
116
14159
13275
2022-06-13T10:00:59Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
[[Fail:Cuillère MHNT ETH AC MD 110 Julien Madagascar.jpg|thumb|A̱ka̱fwuong nkwon, A̱betsilewo ba, [[Mada̱ga̱ska]], sa̱ncuri 19]]
[[Fail:History spoon.jpg|thumb|A̱fwuong ma̱ng a̱fwuong ga̱swúong Sa̱saniya (sa̱ncuri 4)]]
'''A̱fwuong''' ka (á̱kpa: '''a̱ka̱fwuong''' ''na'') yet kyang ya kyayak hwa ka̱ byia̱ ma̱ng a̱nka, a̱da̱dei kham ka̱ nwai byia̱ shi tsuung a̱ni (á̱ ka ngyei a̱pyia̱ ka), nang ghwughwu a̱cyi nywan ku sa̱khat a̱ni, di̱ ngaan hu ka̱ si̱ byia̱ bwak nang á̱ ba̱ng a̱ni.
A̱fwuong ka yet a̱bajunjung tswam (gbangbang ka̱ ku yet kwon hwa) kya, a̱ta̱m ka tyak a̱ li kpa̱kpai. A̱fwuong kya beang di̱ bwoi kyayak á̱ ntyia̱ a̱bwonu á̱ ya. A̱ka̱fwuong shi di̱n swap, á̱ghyang shyit nswap, á̱ghyang si̱ yet a̱bakukum.
==Ya̱fang==
<references/>
==A̱ka̱fwuop nta==
*[http://researcharchive.calacademy.org/research/anthropology/utensil/spoons.htm The History of Eating Utensils - Spoons]. Rietz Collection of Food Technology. (di̱n Shong)
*[http://www.925-1000.com/spoon.html The Making of a Spoon, Georgian style]. ''Online Encyclopedia of Silver Marks, Hallmarks & Makers' Marks''. Illustrated article on the hand forging of a spoon. (di̱n Shong)
*Jackson, C. J. (1892). [http://babel.hathitrust.org/cgi/pt?id=uc1.31175012357367;view=1up;seq=135 The Spoon and its history] (di̱n Shong). Archaeologia. Shi 53. P. 107–146. DOI 10.1017/S0261340900011231
*[http://www.eatingutensils.net/history-of-cutlery/spoon-history/ History of Spoon - Eating Utensils] (di̱n Shong)
[[Sa:A̱ka̱fwuong|*]]
[[Sa:Nkyang ya kyayak]]
6bxciwb4jyxrw55y7f6cv1q6ifhvc19
A̱gau
0
117
1096
1095
2022-05-16T12:44:03Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[A̱ga̱u]]
5oz6x5jh7lj9q3h6z1mrqapd7wwcjn3
A̱ga̱faat
0
118
12098
1114
2022-05-20T14:36:57Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
'''A̱ga̱faat''' yet a̱tyin kuzang tangka̱i a̱kwop a̱ kyiak ku zwát tsat ku a̱mgba̱m a̱lyia̱ ka ka̱ tyia̱ sum. Kídee á̱kwop a̱ja ja yet tityin [[a̱ga̱faat nya̱nyiat]] (a̱ra̱ke), [[Swaat|swakpat]], [[Swakpat|swaat]], [[zuk]], cyat, cyicyia̱, ba̱ng si̱ nat.
==Ya̱fang==
<references/>
m4063lv6wv63gevgw1ue5k7nejxfloz
A̱ga̱faat(Aninyaat)
0
119
1116
1115
2022-05-16T12:44:04Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[A̱ga̱faat nya̱nyiat]]
pkmwpme3rdew1249t18x8zalm1o9bqc
A̱ga̱faat nya̱nyiat
0
120
12610
12099
2022-05-22T05:32:37Z
Minorax
31
fix lint
wikitext
text/x-wiki
[[Fail:Sugarcane in Punjab.jpg|thumb|upright|A̱ga̱faat nya̱nyiat laai shi, Punjab]]
'''A̱ga̱faat nya̱nyiat''' ku '''a̱nya̱nyiat a̱ga̱faat''' (á̱ ka ngyei '''a̱ra̱ke''' a̱ni) yet tangka̱i a̱ga̱nga̱ng a̱kwop hwa ku ni̱ kyiak a̱mgba̱m a̱lyia̱ ka di̱ laai shi a̱ni (ka̱ shyia̱ ''genus'' Saccharum, nwap á̱ga̱fi̱p Andropogoneae) nang á̱ ni̱ kyiak nyia̱ shuga a̱ni.
==Ya̱fang==
<references/>
32bhmh1s2exp4lsqrmcpxi61y5okiyv
A̱ga̱fwuo
0
121
12100
1135
2022-05-20T14:37:17Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
Swang a̱lyiat jini maai fa:
# [[A̱ga̱fwuo mbwak]]
# [[A̱ga̱fwuo ntak]]
#
dl3w2i07gvv2q53cso1z1kq35yhhn60
A̱ga̱fwuo bwak
0
122
1137
1136
2022-05-16T12:44:04Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[A̱ga̱fwuo mbwak]]
itglcygxl66zo44meg4gpynsrkcn262
A̱ga̱fwuo mbwak
0
123
1150
1149
2022-05-16T12:44:05Z
Jon Harald Søby
8
12 revisions imported
wikitext
text/x-wiki
'''A̱ga̱fwuo mbwak''' wu (á̱kpa: '''á̱ga̱fwuo mbwak''' ''ba'') wa yet a̱kup a̱zama fam ngaan [[Ga̱swuong mbwak|ga̱swúong mbwak]] ji .
==Bu nwuan==
* [[A̱ga̱fwuo ntak]]
==Ya̱fang==
<references/>
[[en:Fingernail]]
i0agpo8ksd9meznyopgqoee4retgd7y
A̱ga̱fwuo ntak
0
124
1156
1155
2022-05-16T12:44:05Z
Jon Harald Søby
8
5 revisions imported
wikitext
text/x-wiki
'''A̱ga̱fwuo ntak''' wu (á̱kpa: '''á̱ga̱fwuo ntak''' ''ba'') wa yet a̱kup a̱zama fam ngaan [[Ga̱swuong ntak|ga̱swúong ntak]] ji .
==Bu nwuan==
* [[A̱ga̱fwuo mbwak]]
[[en:Toe nail]]
7u8pufe0p456a6v0jrkfjiuhb2y02a9
A̱ga̱fwuo tak
0
125
1158
1157
2022-05-16T12:44:05Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[A̱ga̱fwuo ntak]]
1lhi0g5mmih8a14gq9b98a0xrddqddy
A̱ga̱ra
0
126
14161
13276
2022-06-13T10:01:08Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
'''A̱ga̱ra''' ba yet nwap ja ma̱ a̱byin [[Naijeriya]]. A̱tsak a̱byin mba ka, Tyok A̱ga̱ra gbangbang hu, byia̱ shi ku shyia̱ kpa̱mkpaan ma̱ng kyai a̱byin a̱ma̱ntatat 14,000 km² (5,400 sq mi) di̱ kyung hu nang a̱ka̱ghyui [[A̱ghyui Benuwe|Benuwe]] ma̱ng [[A̱ghyui Nija|Nija]] ku mun a̱ni. Á̱ ku ngyei a̱vwuo ka ''Igala Division'' ku za̱ ma nshyia̱ provin Kaba a̱ni, a̱wot mi̱ di̱ yong huni, ka̱ yet kap [[Si̱tet Kogi]] hwa. A̱keangtung nka, kikya si̱ yet Ida.
[[Fail:Igala.jpeg|thumb|Kyai a̱byin A̱ga̱ra]]
==A̱ca̱cet A̱ga̱ra ba==
*Abubakar Audu<ref>[https://guardian.ng/politics/my-fathers-death-altered-kogi-politics/ 'My father's death altered Kogi politics' {{!}} The Guardian Nigeria News - Nigeria and World News — Politics — The Guardian Nigeria News – Nigeria and World News] (di̱n Shong). Guardian.ng (27 Zwat Swak ma̱ng Jhyiung 2018).</ref>
*Aliyu Obaje<ref>[https://www.premiumtimesng.com/news/93511-attah_igala_aliyu_obaje_dies.html Attah Igala, Aliyu Obaje dies at 102 {{!}} Premium Times Nigeria] (di̱n Shong).</ref>
*Emmanuel Santana Ocheja
*Ogwu James Onoja
*Praiz
*Jeremiah Attaochu
*Lucy Jumeyi Ogbadu
*Joseph Benjamin
==Ya̱fang==
<references/>
==Fang a̱pyia̱==
*Akinkugbe, O. O. (1976). "An Internal Classification of the Yoruboid Group". J.W.A.L. XI. 1–2, pp. 1–17
* (1978). A Comparative Phonology of Yoruba Dialects, Isekiri and Igala. Ph.D. Thesis, University of Ibadan
*Boston, J. (1967). "Igala Political Organisation" African Notes 4.2
* (1968). The Igala Kingdom. Ibadan: OUP
*Gordon, Raymond G., Jr. (ed.), 2005. Ethnologue: Languages of the World, Fifteenth edition. Dallas, Tex.: SIL International.
*Silverstein, R. (1973). Igala Historical Phonology. PhD thesis, university of California, Los Angeles
*Tokula, Lillian (2008). Re-Duplication in Igala: An Autosegmental Approach. Masters thesis, Department of Linguistics, University of Ibadan, Nigeria.
==A̱ka̱fwuop nta==
*[http://www.ethnologue.com/show_language.asp?code=igl Nwuai Ethnologue] (di̱n Shong)
<br>
[[Sa:Naijeriya]]
[[Sa:Nnwap_swanta]]
[[Sa:Nnwap_Afrika]]
[[Sa:Nnwap mi̱ Naijeriya]]
[[Sa:Á̱niet_lilyem_Nija–Konggo]]
[[Sa:Si̱tet_Kogi]]
0fc00h10h6i6rowxi4bfp0sjglm9w0m
A̱ga̱swan
0
127
12102
1188
2022-05-20T14:37:37Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
[[Fail:Fire ants 01.jpg|197px|right]]
'''A̱ga̱swan''' (á̱kpa: '''á̱ga̱swan''' ''ba'') yet a̱da̱dei nyam wa a̱ cong a̱byin a̱ni ma̱ng a̱ti̱tak ma̱ a̱di̱di̱t, a̱ shyia̱ ma̱ng kyangbwak nyám ''Formicadae'' hwa.
==Ya̱fang==
<references/>
o8ptrwynibcc2ubti2dru7ymqsiln1v
A̱ga̱u
0
128
14590
12103
2022-06-22T20:37:24Z
Kambai Akau
15
/* Ya̱fang */
wikitext
text/x-wiki
[[Fail:American Bird Grasshopper.jpg|thumb|A̱ga̱u Amerika (''Schistocerca americana'')]]
'''A̱ga̱u''' wu (á̱kpa: '''á̱ga̱u''' ''ba'' ku '''a̱yaaga̱u''' ''ba'') yet a̱bada̱dai nyam kya ka̱ fi̱ri̱p a̱ni mi̱ nfeap a̱ si̱ mbyia̱ a̱ca̱cet a̱ti̱tak lilyim.
==Ya̱fang==
<references/>
[[Category:A̱ga̱u|A̱ga̱u]]
[[Category:A̱cyuang nyám]]
0t57g4r332chl7r7q7zk9950ky7bkxk
A̱gbaat
0
129
12104
12029
2022-05-20T14:37:57Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
[[File:2008-04-12 Freilichtmuseum Detmold (11).jpg|thumb|325px|A̱swang mi̱ ''Detmold Open-air Museum'' ka̱ byia̱ a̱gbaat a̱ni]]
'''A̱gbaat''' yet kyang myian hwa nang á̱ nyia̱ ma̱ng lyem, a̱ka̱tako ku tswam a̱ni nang á̱ khat nda ku á̱ fwun tazwa nggu a̱ni.
==Ya̱fang==
<references/>
qiajc94agx7r42n6wit06i9sqvj98om
A̱gba̱ndang A̱keang Bini
0
130
14163
13277
2022-06-13T10:01:18Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
[[Fail:Areal view of the ancient city of Benin.jpg|thumb|Nwuan a̱khwukhwop a̱gba̱ndang a̱keang Bini neet tswazwa]]
[[Fail:Benin_City_Coat_of_arms.jpg|thumb|A̱lama a̱keang Bini]]
'''A̱gba̱ndang A̱keang Bini''' ku '''A̱keang Bini''' (A̱do: Ubini; A̱ghwangkpang: ''Ìlé Ìbìnú'' ku Ìlú Benin; [[Shong (a̱lyem)|Shong]]: Benin City) wa yet a̱keangtung ma̱ng a̱gba̱ndang a̱keang a̱ swak ma̱ng shi a̱ni mami [[Si̱tet A̱do]] di̱ fam a̱tak [[Naijeriya]]. Nggu wa yet a̱naai mḭ shi mami a̱ca̱cet a̱ka̱keang Naijeriya na lilyim a̱ka̱keang [[Legwot]], [[Ka̱na̱u]] ma̱ng [[Ibadan]], a̱ si̱ byia̱ shi á̱niet 1,782,000 ma̱ a̱lyia̱ 2021.<ref>[https://www.britannica.com/place/Benin-City Benin City {{!}} History & Facts] (di̱n Shong). Encyclopedia Britannica.</ref> A̱ swan kpa̱mkpaan ma̱ng kilomita 40 (met 25) di̱ fam a̱za [[A̱ghyui Bini]] hu ma̱ng kilomita 320 (met 200) a̱ta̱lyen di̱ fam a̱tyin a̱keang Legwot. A̱gba̱ndang A̱keang Bini wa yet a̱ka̱wa̱tyia̱ nta̱m roba mami Naijeriya, a̱wot tat a̱myia̱kwaan ka ngyet a̱gba̱ndang a̱bwuang a̱keang kani wa.<ref>[http://www.rubberstudy.com/nigeria|website=www.rubberstudy.com International Rubber Study Group - Nigeria] (di̱n Shong).</ref>
==Ya̱fang==
<references/>
== A̱ka̱fwuop nta ==
[[Sa:Si̱tet A̱do]]
[[Sa:A̱ka̱keang_mami_Naijeriya]]
[[Sa:A̱gba̱ndang A̱keang Bini]]
[[Sa:A̱kakeangtung a̱yaasi̱tet Naijeriya]]
[[Sa:A̱ka̱vwuo na̱ byia̱ á̱niet ma̱ ba̱t mami Si̱tet A̱do]]
[[Sa:A̱ca̱cet a̱ka̱keang Naijeriya]]
[[Sa:Naijeriya]]
m33rk5e2rcg14fdzy373a68zp193kwm
A̱gba̱ndang A̱lisaaikurum Naijeriya
0
131
14165
13278
2022-06-13T10:01:48Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
[[Fail:Central bank nigeria.jpg|thumb|300px|Tyantung A̱A̱N ji]]
[[Fail:Central Bank of Nigeria.jpg|thumb|300px|A̱gba̱ndang A̱lisaaikurum Naijeriya]]
'''A̱gba̱ndang A̱lisaaikurum Naijeriya''' ('''A̱A̱N''') wu ([[Shong (a̱lyem)|Shong]]: Central Bank of Nigeria, CBN), nggu wa yet a̱lisaaikurum a̱ka̱wa̱tyia̱ a̱byin [[Naijeriya]] ka ka̱ ba̱ng a̱gba̱mgbam cet kurum a̱byin wu nang á̱ ku kpaat di̱n vak Ta̱m A̱A̱N (ku ''CBN Act'') ji ma̱ a̱lyia̱ 1958, a̱wot a̱ si̱ ta̱bat nnyia̱ ta̱m a̱tuk mam 1 Zwat A̱natat 1959.<ref name="CBN">"[http://www.cenbank.org/AboutCBN History of CBN]" (di̱n Shong). cenbank.org. Central Bank of Nigeria.</ref>
==Ya̱fang==
<references/>
==A̱ka̱fwuop nta==
[[Sa:Naijeriya]]
ofexgvk8sbv2qacpr85hh3nra7tktw4
A̱gba̱ndang A̱lisaainzwa Naijeriya
0
132
1243
1242
2022-05-16T12:44:10Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[A̱gba̱ndang A̱lisaaikurum Naijeriya]]
edeal1unvoay0udfy42kk50rd99u75r
A̱gba̱ndang Bi̱ri̱ti̱n
0
133
15273
14167
2022-07-21T22:24:23Z
ZabesBot
156
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
A̱byin '''A̱gba̱ndang Bi̱ri̱ti̱n''' (Shong: Great Britain) yet a̱byin a̱ka̱wa̱tyia̱ a̱sa̱khwot kya di̱ fam [[Kyai A̱sa̱khwot Ati̱lantik|A̱za Kyai A̱sa̱khwot Ati̱lantik hu]], ka̱ á̱ kai khwong kyai a̱sa̱khwot fam a̱za-jenshyung vam-a̱byin [[Yurop]] hu á̱ si̱ ghwon a̱ni. Ma̱ng shi kyai a̱byin kilomita a̱ma̱ntanaai 209,331 (met a̱ma̱ntanaai 80,823) a̱ni, kikya swak mi̱ shi hu da̱ A̱babibyin A̱ka̱wa̱tyia̱ A̱sa̱khwot Bi̱ri̱ti̱n hu, a̱byin a̱ka̱wa̱tyia̱ a̱sa̱khwot Yurop ka̱ swak mi̱ shi kyai a̱byin a̱ni, ma̱ng a̱kubunyiung mi̱ shi mi̱ bibyin a̱ka̱wa̱tyia̱ a̱sa̱khwot swanta hu.<ref>"[http://islands.unep.ch/Tiarea.htm Islands by land area, United Nations Environment Programme]" (di̱n Shong). Islands.unep.ch.</ref> A̱byin a̱ka̱wa̱tyia̱ a̱sa̱khwot ka nhyat ma̱ng za̱kwa wun fam a̱sa̱khwot ja ma̱ng a̱fa̱fap vwuon mi̱ shi shwai hu tsi̱tsak a̱ka̱cak a̱lyia̱ na. 60% a̱cyuang bibyin a̱ka̱wa̱tyia̱ a̱sa̱khwot Airi̱lan hu shyia̱ di̱ fam jenshyung – a̱wot dundung bibyin a̱ka̱wa̱tyia̱ a̱sa̱khwot huni, a mbeang kyang ku swak a̱bacyuang bibyin a̱ka̱wa̱tyia̱ a̱sa̱khwot 1,000 ma̱ng a̱ka̱fan na̱ laai shi a̱ni nang á̱ghyang nna ku mbwuo lyulyoot a̱ni, ni̱nia á̱ ngyei sot bibyin a̱ka̱wa̱tyia̱ a̱sa̱khwot A̱babibyin A̱ka̱wa̱tyia̱ A̱sa̱khwot Bi̱ri̱ti̱n hu.<ref>"[http://mapzone.ordnancesurvey.co.uk/mapzone/didyouknow/howmany/q_14_27.html says 803 islands which have a distinguishable coastline on an Ordnance Survey map, and several thousand more exist which are too small to be shown as anything but a dot]" (di̱n Shong). Mapzone.ordnancesurvey.co.uk.</ref>
[[Fail:MODIS - Great Britain and Ireland - 2012-06-04 during heat wave.jpg|thumb|Ghwughwu a̱ta̱ngwat tswam, 2012, ma̱ng Airi̱lan di̱ fam jenshyung hu a mbeang [[Fi̱ransa (a̱byin)|Fi̱ransa]] di̱ fam a̱tak-a̱tyin hu]]
[[Fail:Great Britain (orthographic projection).svg|thumb|Ta̱si̱la a̱byin A̱gba̱ndang Bi̱ri̱ti̱n]]
==Ya̱fang==
<references/>
[[Sa:Bibyin_swanta]]
[[Sa:Bibyin_Yurop]]
[[Sa:Bibyin_Jenshyung_Yurop]]
ex5c2cytkdeegn3gfx017jht2sdpfai
A̱gba̱ndang Jok Caad
0
134
15319
15287
2022-07-24T13:20:09Z
Kambai Akau
15
wikitext
text/x-wiki
{{databox}}
'''A̱gba̱ndang Jok Caad''' (Fi̱ransa: Lac Tchad; Shong: Lake Chad) yet mi̱ di̱n jen gbangbang a̱gba̱ndang jok endorheic wa a̱ ku yet a̱mgbii a̱ si̱ nwai byia̱ shi tsuung ma̱ a̱ka̱wa̱tyia̱ Afrika, nang shi nggu hu shai shi̱shai da̱ a̱cak a̱yaasa̱ncuri ka swak a̱ni. Ma̱ng si̱sak nkhang ''Global Resource Information Database'' a̱si̱ ''United Nations Environment Programme'' na, a̱ ku shyuk a̱ nat %95 a̱tsak shi nggu wu kyiak neet da̱ a̱lyia̱ 1963 naat 1998.<ref>"[https://www.grida.no/resources/4832|access-date=2021-06-14 Remnants of Chad Lake, Chad, February 2015 {{!}} GRID-Arendal]" (di̱n Shong). www.grida.no.</ref> Shi kyai a̱byin ku swak yet a̱da̱dei hu hwa yet ma̱ a̱lyia̱ 1986, ma̱ng kilomita a̱ma̱ntaa̱naai 279 (met a̱ma̱ntaa̱naai 108),<ref>Umar, I.A. (2018): ''Modelling of water cycle regime of Lake Chad using GIS and remote sensing for decadal periods.'' (di̱n Shong). Unpublished BSc Project. University of Maiduguri, Borno, Nigeria.</ref> a̱wot "ghwughwu (a̱ta̱ngwat tswam) 2007 hu tyai mban shi mi̱ ndyia̱ mmam nani."<ref>United Nations (2007).</ref> A̱gba̱ndang Jok Caad ku yet a̱tsatsak hwa di̱n fam naat mbwuok kaswuo, a̱ nang si̱ ku swak á̱niet miliyon 30 ba̱ swan kpa̱mkpaan nggu a̱sa̱khwot mi̱ bibyin naai hu ([[Caad]], [[Kemerun]], [[Ni̱njer (a̱byin)|Ni̱njer]], ma̱ng [[Naijeriya]]) ku keang ngguu di̱ fam a̱ka̱wa̱tyia̱ Sahet hu a̱ni. Nggu wa yet a̰gba̱ndang jok a̱ swak ma̱ng shi di̱ kham Caad ji.
[[Fail:Lake Chad from Apollo 7.jpg|thumb|Ghwughwu nang Apollo 7 wu ku kyiak a̱ni, Zwat Swak a̱lyia̱ 1968]]
[[Fail:Lakechad map.png|thumb|A̱gba̱ndang Jok Caad ma̱ng fam-a̱byin hyia̱k hu, ta̱si̱la a̱lyia̱ 2006]]
==Ya̱fang==
<references/>
[[Sa:Nvam_a̱sa̱khwot_swanta]]
[[Sa:A̱ca̱cet_Njok_swanta]]
i15iv9b4ivlehaihbcq44dn2aj9hagh
A̱gba̱ndang Jok Viktoriya
0
135
14171
13281
2022-06-13T10:02:19Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
[[Fail:Victoria lake landsat 7.png|thumb|Ghwughwu A̱gba̱ndang Jok Viktoriya hu nang á̱ ku kyiak neet mi̱ Landsat 7 hu a̱ni]]
'''A̱gba̱ndang Jok Viktoriya''' (Dholuo: Nam Lolwe; Luganda: 'Nnalubaale; Kinyarwanda: Nyanza; ku ''Ukerewe'')<ref name="WDL1">[http://www.wdl.org/en/item/2557 | web The Victoria Nyanza. The Land, the Races and their Customs, with Specimens of Some of the Dialects] (di̱n Shong). World Digital Library (1899).</ref><ref>[https://ntz.info/gen/n01545.html Lake Ukerewe] (di̱n Shong). ''nTZ: An Information Resource for Northern Tanzania''. David Marsh.</ref> yet a̱nyiung wa mami A̱ca̱cet Njok Afrika na. Shimba a̱ byia̱ a̱ka̱ka̱rak lyulyoot ma̱ a̱di̱di̱t, á̱ si̱ nwuak a̱gba̱ndang jok wu a̱lyoot A̱gwam-a̱byii̱k Viktoriya mbwak a̱tyocyet wu nang á̱ ngyei John Hanning Speke a̱ni, a̱ yet A̱tyobi̱ri̱ti̱n a̱son a̱ lyuut tazwa nggu a̱gba̱ndang jok wu ma̱ a̱lyia̱ 1858, ma̱nang gu ku ncyet a̱ naat ma̱ng Richard Francis Burton.<ref>Alberge, Dalya (11 Zwat A̱kubunyiung 2011). [https://www.theguardian.com/books/2011/sep/11/burton-speke-african-exploration-nile How feud wrecked the reputation of explorer who discovered Nile's source] (di̱n Shong). The Guardian.</ref><ref>Moorehead, Alan (1960). [https://archive.org/details/whitenile0000moor The White Nile] (di̱n Shong). Kap Nyiung: A̱gba̱ndang Zwunzwuo 1–7. Harper & Row. ISBN 978-0-06-095639-4.</ref>
==Ya̱fang==
<references/>
[[Sa:Nvam_a̱sa̱khwot_swanta]]
[[Sa:A̱ca̱cet_Njok_swanta]]
d9bxsyis6nek73bl6o4wyt8waeqygw2
A̱gba̱ndang Kyai A̱sa̱khwot Atik
0
136
14772
14173
2022-07-05T06:02:38Z
Kambai Akau
15
wikitext
text/x-wiki
{{Databox|item=Q788}}
'''A̱gba̱ndang Kyai A̱sa̱khwot Atik''' wu wa yet a̱gba̱ndang kyai a̱sa̱khwot swanta a̱ swak ma̱ng yet a̱da̱dei, ka̱ si̱ ka ngyet si̱ nggu swak nwai shi tsuung meang, mami a̱ca̱cet nkyai a̱sa̱khwot a̱fwuon na. A̱ ngaat a̱ si̱ kup shi kyai a̱sa̱khwot kpa̱mkpaan ma̱ng kilomita a̱ma̱ntanaai 14,060,000 (met a̱ma̱ntanaai 5,430,000) a̱wot á̱ si̱ ma ndyen nggu nang a̱gba̱ndang kyai a̱sa̱khwot a̱ swak ma̱ng byia̱ shyishyim a̱ni, mi̱ a̱mgba̱m nna a̱fwuon. Sot ''International Hydrographic Organization (IHO)'' ji ngyei nggu a̱gba̱ndang kyai a̱sa̱khwot a̱wot á̱ghyang á̱niet kuntyin lyen a̱gba̱ndang kyai a̱sa̱khwot ba ngyei nggu A̱gba̱ndang Kyai A̱sa̱khwot Meditaroniya Atik wu. Á̱ ku wa̱i nggu nang kyang ku tai a̱zanunwuai [[A̱gba̱ndang Kyai A̱sa̱khwot Ati̱lantik]] kya meang. Á̱ ka nnwuan nggu nang kap ngaan fam a̱za A̱gba̱ndang Kyai A̱sa̱khwot ku cong kaat A̱mgba̱m Swanta hu a̱ni.
[[Fail:Arctic Ocean - en.png|thumb|upright=1.25|A̱gba̱ndang Kyai A̱sa̱khwot Atik wu, ma̱ng a̱gi̱gak nang sot ''International Hydrographic Organization (IHO)'' ku ghwak a̱ni, bi̱ri̱ng ma̱ng A̱ngam A̱sa̱khwot Hudson wu (kap ghyang shyia̱ di̱ fam a̱tak latityut 57°N hu, ta̱usa ta̱si̱la ji).]]
==Ya̱fang==
<references/>
[[Sa:Nvam_a̱sa̱khwot_swanta]]
[[Sa:A̱ca̱cet_Nkyai_A̱sa̱khwot_swanta]]
63l3lew2lmdv1pwd4etq2qjaj7193w6
A̱gba̱ndang Kyai A̱sa̱khwot Ati̱lantik
0
137
14774
14773
2022-07-05T06:11:16Z
Kambai Akau
15
wikitext
text/x-wiki
{{Databox|item=Q97}}
'''A̱gba̱ndang Kyai A̱sa̱khwot Ati̱lantik''' wu wa yet a̱feang wu ma̱ng shi mami a̱ca̱cet nkyai a̱sa̱khwot swanta na, ma̱ng shi kyai a̱ghwop kilomita a̱ma̱ntaa̱naai 106,460,000 (met a̱ma̱ntaa̱naai 41,100,000) a̱ni.<ref name="Atlantic Ocean – Britannica">"[https://www.britannica.com/place/Atlantic-Ocean Atlantic Ocean]" (di̱n Shong). Encyclopædia Britannica.</ref> A̱ kup nkap a̱yaakpa nswak nfeang mami a̱yaakpa cyi jhyiung kyai swanta hu hwa ca̱caat, si̱ a̱hwa si̱ yet tkpa̱mkpaan ma̱ng nkap a̱yaakpa 29 shi nkyai nvam a̱sa̱khwot nhu. Á̱ nwuan nhu nang gak hwa ku khap "A̱khwukhwop ta̱cya̱" wu ma̱ng "[[Ta̱cya̱ A̱fai|Ta̱cya̱ a̱fai]]" ka ma̱ á̱ghyi á̱niet [[Yurop]] ba ma̱ a̱di̱dam Swanta mba wu.
[[Fail:Atlantic Ocean - en.png|thumb|Shi kyai a̱wat A̱gba̱ndang Kyai A̱sa̱khwot Ati̱lantik hu ma̱ng si̱sak wa̱i fa IHO 2002 hu, di̱ mi̱n nfam a̱sa̱khwot Ati̱k ma̱ng A̱ntati̱k na]]
==Ya̱fang==
[[Sa:Nvam_a̱sa̱khwot_swanta]]
[[Sa:A̱ca̱cet_Nkyai_A̱sa̱khwot_swanta]]
br7slovti7xlpt8y4vwbyjutaqbosri
A̱gba̱ndang Kyai A̱sa̱khwot A̱tak
0
138
15262
14177
2022-07-21T06:38:41Z
Gwanki
276
wikitext
text/x-wiki
{{databox}}
'''A̱gba̱ndang Kyai A̱sa̱khwot A̱tak''' wu, á̱ ka ndyen nang A̱gba̱ndang Kyai A̱sa̱khwot A̱ntati̱ka wu a̱ni, wa yet á̱sa̱khwot A̱gba̱ndang Kyai A̱sa̱khwot Swanta na̱ shyia̱ di̱ ngaan fam a̱tak hu, da̱ a̱ka̱nyiung, á̱ kyiak nang gu shyia̱ fam a̱tak 60° S lati̱tyut hu hwa a̱wot a̱ si̱ kaat vam-a̱byin [[A̱ntati̱ka]] hu. Mat a̱nia, á̱ nwuan nang nggu wa yet a̱gba̱ndang kyai a̱sa̱khwot a̱feang wu gu swak ma̱ng yet a̱da̱dei a̱ni mami a̱fwuon na: a̱ lat shi A̱ca̱cet Nkyai A̱sa̱khwot [[A̱gba̱ndang Kyai A̱sa̱khwot Pasi̱fi̱k|Pasi̱fi̱k]], [[A̱gba̱ndang Kyai A̱sa̱khwot Ati̱lantik|Ati̱lantik]], ma̱ng [[A̱gba̱ndang Kyai A̱sa̱khwot Ndiya|Ndiya]] hu a̱wot a̱ si̱ ba̱ lan shi a̱ swak [[A̱gba̱ndang Kyai A̱sa̱khwot Atik|Atik]] wu. Mi̱ si̱ ku swak ndyia̱ 30 na̱ ku swak a̱ni, A̱gba̱ndang Kyai A̱sa̱khwot A̱tak wu ku li a̱shai lili wun ka̱ hyaat, ka̱ si̱ kwak a̱ka̱shai na̱ yet a̱ni bah, a̱ si̱ bai mi̱ ecosystem nvam a̱sa̱khwot wu.
[[Fail:Location Southern Ocean.svg|thumb|upright=1.35|A̱gba̱ndang Kyai A̱sa̱khwot A̱ntati̱ka wu, ma̱ng si̱sak ku shyia̱ di̱ jhyuk 4 ''A̱gi̱gak A̱ca̱cet Nkyai A̱sa̱khwot ma̱ng Nkyai A̱sa̱khwot'' nang sot International Hydrographic Organization ji ku ghwak sak a̱ni (2002)]]
[[Fail:Antarctica-Region.png|thumb|upright=1.35|Ghwang da̱ a̱ka̱nyiung Tungndung A̱ntati̱ka hu, kuntyin zop sains hu di̱n jen jhyang nyia̱ ta̱m ma̱ng a̱nhu nang gak A̱gba̱ndang Kyai A̱sa̱khwot A̱tak hu]]
==Ya̱fang==
<references/>
[[Sa:Nvam_a̱sa̱khwot_swanta]]
[[Sa:A̱ca̱cet_Nkyai_A̱sa̱khwot_swanta]]
8h6szhbgba1dr8nmjq0zxq1ecz7g0yl
A̱gba̱ndang Kyai A̱sa̱khwot Ndiya
0
139
15263
14178
2022-07-21T06:39:09Z
Gwanki
276
wikitext
text/x-wiki
{{databox}}
'''A̱gba̱ndang Kyai A̱sa̱khwot Ndiya''' wu wa yet a̱tat wu mi̱ shi kyai a̱sa̱khwot mi̱ swanta hu. A̱ kup kilomita a̱ma̱ntanaai 70,560,000 (met a̱ma̱ntanaai 27,240,000) ku 19.8% a̱sa̱khwot na̱ shyia̱ tazwa swanta ka a̱ni. A̱ byia̱ a̱gi̱gak ma̱ng [[A̱siya]] di̱ fam a̱za hu, [[Afrika]] di̱ fam jenshyung hu ma̱ng A̱strelya di̱ fam a̱tyin hu. Di̱ fam a̱tak hu ku byia̱ gak ma̱ng A̱gba̱ndang Kyai A̱sa̱khwot A̱tak ku A̱ntati̱ka wu, ca̱caat ma̱ng wa̱i a̱lyiat hu á̱ fa a̱ni.<ref>"[http://www.merriam-webster.com/dictionary/indian%20ocean 'Indian Ocean' — Merriam-Webster Dictionary Online]" (di̱n Shong). ''ocean E of Africa, S of Asia, W of Australia, & N of Antarctica area ab kilomita a̱ma̱ntanaai 73,427,795 (met a̱ma̱ntanaai 28,350,630)''.</ref> Di̱n vak kwop nggu hu, A̱gba̱ndang Kyai A̱sa̱khwot Ndiya wu si̱ byia̱ a̱ca̱cet nkyai a̱sa̱khwot khwong a̱byin ku nkyai a̱sa̱khwot nfam a̱byin nang Kyai A̱sa̱khwot A̱rabiya hu, Kyai A̱sa̱khwot Lakadivi hu, Kyai A̱sa̱khwot Somali hu, A̱ngam A̱sa̱khwot Ba̱nggal wu, ma̱ng Kyai A̱sa̱khwot Andaman hu.
[[Fail:Indian Ocean-CIA WFB Map.png|thumb|Ta̱si̱la A̱gba̱ndang Kyai A̱sa̱khwot Ndiya ma̱ng si̱sak International Hydrographic Organization hu]]
==Ya̱fang==
<references/>
[[Sa:Nvam_a̱sa̱khwot_swanta]]
[[Sa:A̱ca̱cet_Nkyai_A̱sa̱khwot_swanta]]
1nprkneb9xeptcdnb0eulfoscf09qa2
A̱gba̱ndang Kyai A̱sa̱khwot Pasi̱fi̱k
0
140
14771
14770
2022-07-05T05:56:34Z
Kambai Akau
15
wikitext
text/x-wiki
{{Databox|item=Q98}}
'''A̱gba̱ndang Kyai A̱sa̱khwot Pasi̱fi̱k''' wu wa yet a̱gba̱ndang kyai a̱sa̱khwot swanta a̱ swak ma̱ng shi a̱mgbii ma̱ng shi tsuung a̱ni. A̱ ngaat kyiak neet da̱ [[A̱gba̱ndang Kyai A̱sa̱khwot Atik]] wu di̱ fam a̱za hu naat da̱ [[A̱gba̱ndang Kyai A̱sa̱khwot A̱tak]] wu (ku, ma̱ng si̱sak wa̱i a̱lyiat hu, naat ma̱ [[A̱ntati̱ka]]) di̱ fam a̱tak hu a̱wot a̱ si̱ byia̱ gak ma̱ng nvam-a̱byin [[A̱siya]] ma̱ng A̱strelya di̱ fam jenshyung hu ma̱ng [[Amerika]] di̱ fam a̱tyin hu.
==Ya̱fang==
<references/>
[[Sa:Nvam_a̱sa̱khwot_swanta]]
[[Sa:A̱ca̱cet_Nkyai_A̱sa̱khwot_swanta]]
bvyw2kdrp8eb389xa7mgjeobf3ilpac
A̱ghyui
0
141
14597
14596
2022-06-22T20:50:37Z
Kambai Akau
15
wikitext
text/x-wiki
[[Fail:Amazonrivermap.svg|thumb|[[A̱ghyui A̱mazon]] ka (a̱duduu a̱sa̱khwot bula) ma̱ng a̱ka̱weang nka na (a̱sa̱khwot bula ma̱ka̱wa̱tyia̱).]]
'''A̱ghyui''' ka (á̱kpa: '''a̱ka̱ghyui''' ''na'') yet a̱za̱za̱rak vam a̱sa̱khwot wa, mi̱ di̱n jen ma̱ a̱di̱di̱t a̱ byia̱ a̱shyim a̱sa̱khwot wa, a̱ tyong naat ca̱caat a̱gba̱ndang kyai a̱sa̱khwot, kyai a̱sa̱khwot, a̱gba̱ndang jok ku a̱ka̱ghyui á̱ghyang a̱ni. Mi̱ di̱n jen jhyang a̱ghyui a̱ghyang maai tyong ka̱ nwuo a̱byin ka ka̱ si̱ khwot a̱ja mi̱ di̱ ngaan nka hu di̱ mi̱n ntat vam a̱sa̱khwot ghyang. Á̱ maai yei a̱cyuang a̱ka̱ghyui ma̱ng lyulyoot nang cen ku a̱baghyui.
==Ya̱fang==
<references/>
[[Category:A̱ka̱ghyui]]
[[Category:Nvam a̱sa̱khwot swanta]]
dsuwrz79tx07st5b30w2ynfra52pzpr
A̱ghyui A̱mazon
0
142
14598
14181
2022-06-22T20:53:45Z
Kambai Akau
15
wikitext
text/x-wiki
'''A̱ghyui A̱mazon''' ka (Shong: The Amazon River, yei MA̱: /ˈæməzən/, yei [[Muná̱pyia̱ Sí̱tet|MA̱]]: /ˈæməzɒn/; Si̱pen: Río Amazonas, Potugit: Rio Amazonas) mi̱ vam-a̱byin Amerika A̱tak kya yet a̱ghyui ka̱ swak ma̱ng shi koot a̱sa̱khwot mi̱ swanta hu, a̱wot á̱ghyang á̱niet si̱ tak nyia̱ kikya ma ngyet a̱ghyui ka̱ swak mi̱ shi a̱swap hu mi̱ swanta hu ma̱nang á̱ghyang á̱niet gbi̱t nyia̱ a̱cucuk wa bah.
[[Fail:Rio Amazonas - Parintins.jpg|thumb|A̱ghyui A̱mazon ka]]
[[Fail:Amazonrivermap.svg|thumb|Ta̱si̱la A̱ghyui A̱mazon ma̱ng kham kukwaat nka ji]]
==Ya̱fang==
[[Sa:Nvam_a̱sa̱khwot_swanta]]
[[Sa:A̱ka̱ghyui_Amerika_A̱tak]]
[[Sa:A̱ka̱ghyui Brazil]]
[[Sa:A̱ka̱ghyui_swanta]]
kw0ar9hupkpza1ygsl5g31bj8eu39mr
A̱ghyui Benuwe
0
143
14182
13289
2022-06-13T10:03:54Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
[[Fail:Benue SE Yola.jpg|thumb|upright=1.4|A̱ghyui Benuwe ka ka̱ nwuan fam a̱tak-a̱tyin hu neet ma̱ a̱keang Jimeta.]]
[[Fail:Benuerivermap.png|thumb|right|upright=1.6|Ta̱si̱la ji̱ tyai kham kukwaat A̱ghyui Benuwe ji.]]
'''A̱ghyui Benuwe''' ka (Fi̱ransa: la Bénoué), á̱ ku ngyei A̱ghyui Ca̱da ku Chadda ku Tchadda, yet a̱gba̱ndang sa [[A̱ghyui Nija]] wuwa. A̱ghyui ka byia̱ shi a̱swap kilomita 1,400 (870 met) hwa ca̱caat a̱wot ka̱ si̱ nyia̱ kpa̱mkpaan yet si̱ ka nang á̱ si̱ mi̱n cyet da̱ nka ma̱ng kukwon a̱wak bah da̱ a̱cak a̱kwa̱i. Shi kham nka hu yet kilomita a̱ma̱ntanaai 319,000 (met a̱ma̱ntanaai 123,000). Mat a̱nia wa, ka̱ si̱ yet a̱tsatsak vak a̱cyet wa di̱ nfam-a̱byin nang ka̱ kpa̱k ka̱ sweap a̱ni.
==Ya̱fang==
<references/>
[[Sa:Nvam_a̱sa̱khwot_swanta]]
[[Sa:A̱ka̱ghyui Naijeriya]]
[[Sa:A̱ka̱ghyui_Afrika]]
[[Sa:A̱ka̱ghyui_swanta]]
ben0c24zylynq6m2vmahz857atiiia4
A̱ghyui Bini
0
144
14183
13290
2022-06-13T10:03:59Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
[[Fail:Benin River Basin OSM.png|thumb|Kham A̱ghyui Bini]]
'''Bini''' yet a̱ghyui kya ka̱ kpa̱ra̱p ka̱ cyok di̱ fam a̱tak-jenshyung [[Naijeriya]] a̱ni.<ref>[https://geographic.org/geographic_names/name.php?uni=-2788102&fid=4331&c=nigeria Benin River, Nigeria - Geographical Names, map, geographic coordinates] (di̱n Shong). geographic.org</ref>
==Ya̱fang==
<references/>
[[Sa:Nvam_a̱sa̱khwot_swanta]]
[[Sa:A̱ka̱ghyui Naijeriya]]
[[Sa:A̱ka̱ghyui_Afrika]]
[[Sa:A̱ka̱ghyui_swanta]]
6c2tu5fom2gphkw64o6oerzhamtnakt
A̱ghyui Ka̱duna
0
145
14184
13291
2022-06-13T10:04:04Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
[[Fail:Kaduna.png|thumb|Vak-a̱cyet A̱ghyui Ka̱duna]]
[[Fail:Kaduna River, Kaduna (Nigeria), 2007.JPG|thumb|A̱ghyui Ka̱duna, nwuan neet da̱ Sea Breeze hu, Ka̱duna, 2007]]
'''A̱ghyui Ka̱duna''' ka yet sa [[A̱ghyui Nija]] ja ji̱ ngaat tat shi a̱swap kilomita 550, a̱wot ka̱ si̱ ka kpa̱ra̱p ka̱ sweap a̱byin [[Naijeriya]] ka. Ka̱ shyia̱ a̱lyoot nka neet tsáng ji̱ swuat mami a̱ghyui ji ja ma̱ng da̱ a̱beam nka.<ref name="Hausa">[http://maguzawa.dyndns.ws/|accessdate= 2009-07-09 On-line Bargery Hausa-English Dictionary].</ref> A̱tyin nka ka shyia̱ [[Si̱tet Pi̱lato]] wa, [[Tsok Nja̱t|a̱zantsok Nja̱t]] ka, kilomita 29 a̱tak-jenshyung neet a̱keang Nja̱t ka, ka̱ si̱ kpa̱ra̱p sweap a̱byin a̱yoot nka, [[Si̱tet Ka̱duna]], a̱wot ka̱ si̱ bai swak a̱keangtung a̱byin ka, [[Ka̱duna]], ka̱ si̱ myim ma̱ng A̱ghyui Nija ka ma̱ [[Si̱tet Nija]]. Vak a̱cyet nka ghyang si̱ kai ku sweap a̱gang a̱byinkukwon Sa̱va̱na wu, a̱wot tamm ji ji̱ shyia̱ a̱tatak si̱ byia̱ tityam a̱baniak ma̱ a̱di̱di̱t a̱zanunwuai a̱ca̱cet a̱kpa̱kpai bibyin ri̱giwa Nija ka.<ref>[http://www.britannica.com/place/Kaduna-River Kaduna River, Nigeria], on britannica.com</ref>
==Lyuut==
[[Sa:Nvam_a̱sa̱khwot_swanta]]
[[Sa:A̱ka̱ghyui_Afrika]]
[[Sa:A̱ka̱ghyui_swanta]]
[[Sa:A̱ka̱ghyui Naijeriya]]
[[Sa:Ka̱duna]]
ad9we6mouc1a88ps7zk1k38mj72ic5g
A̱ghyui Konggo
0
146
14185
13292
2022-06-13T10:04:09Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
[[Fail:Aerial view of the Congo River near Kisangani.jpg|thumb|A̱ghyui Konggo ka kpa̱mkpaan Kisangani, [[Ri̱pobi̱lik Di̱mokrasi a̱si̱ Konggo|Konggo]]]]
[[Fail:Congobasinmap.png|thumb|Kham kukwaat A̱ghyui Konggo ji]]
'''A̱ghyui Konggo''' ka (Kongo: ''Nzâdi Kôngo'', Fi̱ransa: Fleuve Congo, Potugit: Rio Congo), nang á̱ ku yorong gbangbang A̱ghyui Zaire a̱ni, kya yet a̱ghyui ka̱ byia̱ shi a̱swap a̱feang mi̱ [[Afrika]], a̱wot a̱ghyui Nayil ka, kikya ma̱nyin si̱ swak nka ma̱ng yet a̱junjung hu. Kikya si̱ ka ngyet a̱ghyui a̱feang mi̱ swanta hu di̱n vak shi sweanp a̱sa̱khwot, lilyim [[A̱ghyui A̱mazon|A̱mazon]] wu wa ma̱nyin.
==Ya̱fang==
<references/>
[[Sa:Nvam_a̱sa̱khwot_swanta]]
[[Sa:A̱ka̱ghyui_Afrika]]
[[Sa:A̱ka̱ghyui_swanta]]
9293vvmu9ep16o2sn09zj38ep4kc387
A̱ghyui Nija
0
147
14186
13293
2022-06-13T10:04:14Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
[[Fail:Niger river map.svg|thumb|Ta̱si̱la A̱ghyui Nija]]
[[Fail:Niger, Boubon (16), scene at the river front.jpg|thumb|330px|Naat mbwuot kaswuo di̱ khwong a̱ghyui hu mi̱ [[Boubon]], a̱byin [[Ni̱njer (a̱byin)|Ni̱njer]]]]
'''A̱ghyui Nija''' ka ([[Shong (a̱lyem)|Shong]]: ˈnaɪdʒər; Fi̱ra̱nsa: (le) fleuve Niger, (lə) flœv niʒɛʁ) kikya yet a̱ghyui ka̱ lan yet a̱gba̱ndang mi̱ fam [[Afrika Jenshyung]] a̱ni, ka̱ ngaat ka̱ si̱ shyia̱ kpa̱mkpaan ma̱ng kilomita 4,180. Kham kukwaat nka yet kilomita a̱ma̱ntanaai 2,117,700 mi̱ shi a̱swap.<ref>Gleick, Peter H. (2000). "[https://archive.org/details/worldswater200020000glei/page/33 33 The World's Water, 2000-2001: The Biennial Report on Freshwater]". Island Press. ISBN 978-1-55963-792-3.</ref> A̱tyin nka ka neet di̱ fam Bibyin tswazwa Gini hu hwa di̱ fam a̱tak a̱tyin [[Gini]] kpa̱mkpaan ma̱ng gak [[Sira Lyon]] hu.<ref>"[https://geography.name/niger-river/ Niger River]". geography.name.</ref> Ka̱ tyong nang mi̱ ghwughwu zwat ji̱ ghwut swai a̱ni, ka̱ sweap [[Mali]], [[Ni̱njer (a̱byin)|Ni̱njer]], gak hu ma̱ng [[Bini (a̱byin)|Bini]] ka̱ si̱si̱ nswak [[Naijeriya]], a̱wot ka̱ si̱ kwa̱i a̱gba̱ndang [[Da̱li̱ta a̱ghyui|da̱li̱ta]], nang á̱ ngyei [[Da̱li̱ta Nija]] a̱ni<ref>[http://www.radionetherlandsarchives.org/the-niger-river/ "Rivers of the World: the Niger River", Radio Netherlands Archives, December 4, 2002]</ref> (ku A̱ka̱ghyui Hya̱u na), mami [[A̱ngam A̱sa̱khwot Gini]] wu mi̱ [[Kyai A̱sa̱khwot Ati̱lantik]] hu. A̱ghyui Nija ka, kikya yet a̱tat mi̱ shi a̱swap ma̱ a̱ka̱ghyui Afrika na, ka̱ si̱ swak [[A̱ghyui Nayil|Nayil]] kya ma̱ng [[A̱ghyui Konggo]] (nang á̱ ma ngyei A̱ghyui Zaïre a̱ni) ma̱nyin. Sa nka ji ji̱ lan byia̱ shi a̱swap ja yet [[A̱ghyui Benuwe]] ka.
==Ya̱fang==
<references/>
[[Sa:Nvam_a̱sa̱khwot_swanta]]
[[Sa:A̱ka̱ghyui Naijeriya]]
[[Sa:A̱ka̱ghyui_Afrika]]
[[Sa:A̱ka̱ghyui_swanta]]
aj4q2uthh1jjniof0x6twhwm68qwfxu
A̱ghyui Ta̱mit
0
148
14187
13294
2022-06-13T10:04:19Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
[[Fail:London Thames Sunset panorama - Feb 2008.jpg|thumb|Fam A̱ka̱wa̱tyia̱ London ma̱ng Tower Bridge]]
[[Fail:Thames map.svg|thumb|Map of the Thames within southern England]]
'''A̱ghyui Ta̱mit''' ka (di̱n [[Shong (a̱lyem)|Shong]]: River Thames /tɛmz/), á̱ ka ndyen di̱ nfam nghyang nang A̱ghyui Isis a̱ni, yet a̱ghyui kya ka̱ kpa̱ra̱p ka̱ swak fam a̱tak [[Nggi̱lan]] a̱ni, a mbeang a̱keang [[London]]. Ma̱ng shi a̱swap met 215 (km 346), kikya si̱ yet a̱ghyui ka̱ swak ma̱ng shi ma̱ a̱mgba̱m a̱byin Nggi̱lan a̱wot ka̱ si̱ yet a̱feang ma̱ng shi mami Tyok Muná̱pyia̱ hu, lilyim A̱ghyui Severi̱n.
==Ya̱fang==
<references/>
[[Sa:Nvam_a̱sa̱khwot_swanta]]
[[Sa:A̱ka̱ghyui Nggi̱lan]]
[[Sa:A̱ka̱ghyui_Yurop]]
[[Sa:A̱ka̱ghyui_swanta]]
7o7zz1yu1saaiywz8n0cbyyaamwzxms
A̱gurma
0
149
15239
15238
2022-07-19T06:15:53Z
Kambai Akau
15
wikitext
text/x-wiki
{{Databox|item=Q23485}}
[[Fail:Mixed onions.jpg|thumb|A̱yaagurma nvwuon]]
'''A̱gurma''' wu (''á̱kpa'': '''a̱yaagurma''' ''ba'') yet a̱kyikyo bya nang á̱ kap ma̱ng nian a̱ni, tswa ji ma̱ng a̱kyikyo ba yet di̱ wan nyiung ma̱ng nkyayak njhyang. A̱gurma mba̱ng nyinyang nkyayak mbeang swam hu.
[[Category:A̱yaagurma]]
awqwrso9itw8tz0d6xmhykap3pvk4vm
A̱gurma a̱nfwuong
0
150
12121
1493
2022-05-20T14:41:10Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
[[Fail:Allium sativum Woodwill 1793.jpg|thumb|''Allium sativum'', á̱ ka ngyei a̱gurma a̱nfwuong a̱ni]]
'''A̱gurma a̱nfwuong''' (''Allium sativum'') yet sotbishyi á̱ga̱fi̱p nkywat a̱ka̱kwon ji̱ li nang a̱la̱u wa a̱ni, mi̱ ''genus'' ''Allium'' ji. Á̱na̱nyiuk nggu ba, bibya yet [[a̱gurma]] wu, shalot, lik, cayi̱p,<ref name="Block2010">Block, Eric (2010). [https://books.google.com/books?id=6AB89RHV9ucC Garlic and Other Alliums: The Lore and the Science] (di̱n Shong). Royal Society of Chemistry. ISBN 978-0-85404-190-9</ref> a̱gurma Welsh ma̱ng a̱gurma Caina wu.<ref name="AN">[https://web.archive.org/web/20100615004222/http://allallergy.net/fapaidfind.cfm?cdeoc=684 Substance Info: Garlic] (di̱n Shong). ''All Allergy''. Zing Solution (Zwat A̱taa 15, 2010</ref>
==Ya̱fang==
<references/>
8yxo93wx2qvegtb0lwd9s1m3q919y7b
A̱gwam
0
151
12122
1503
2022-05-20T14:41:20Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
'''A̱gwam''' yet a̱lyoot kya nang á̱ nwuak a̱tyuba̱ngtyok a̱ yet a̱sam a̱ni. Á̱ ka ngyei a̱nap wu a̱gwam-a̱byii̱k, a̱lyoot a̱nyiung kya á̱ bu ngyei a̱yanga̱li a̱gwam wu.
==Ya̱fang==
<references/>
dpdh9maz5772xg1un11hizac625xhz5
A̱hwu
0
152
1505
1504
2022-05-16T12:44:31Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[A̱khwu]]
jjx11pmaph2jihzrrv12pr0qj6fchri
A̱hwuub
0
153
1507
1506
2022-05-16T12:44:31Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[A̱khwup]]
a072o9337kvqqdsyvqycr3lzw8dv2pl
A̱jenshung
0
154
1509
1508
2022-05-16T12:44:31Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[Jenshyung]]
n90amf36beqxl2f01icl99df5lovaph
A̱jhyuo
0
155
14188
13295
2022-06-13T10:04:24Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
'''A̱jhyuo''' ba (''[[Jhyo (a̱lyem)|Jhyuo:]]'' Ba̱jju) yet nwap ja ji̱ shyia̱ di̱ fam-a̱byin Fam A̱tyia̱ka̱u [[Naijeriya]] a̱ni. Swang a̱lyiat '''Ba̱jju''' ji yet á̱kum "Ba̱nyet Jju" kya, ji̱ fa ma̱ a̱hyohyoot, "Á̱niet Jju", a̱wot ji̱ si̱ ba̱ fa á̱niet ba̱ lyiat da̱ a̱lyem [[Jhyo (a̱lyem)|Jhyuo]], a̱nyanyan bya shyia̱ '''Ka̱jju''', a̱byin á̱niet Jju ka.<ref name=Bature /> Ba̱ shyia di̱ fam [[A̱tak Ka̱duna|a̱tak]] [[Si̱tet Ka̱duna]] hwa, ma̱ a̱di̱di̱t nshyia̱ Sot A̱gwomna̱ti Mali [[Kaciya]], [[Zangon Kataf]], [[Jemaa]] ma̱ng Ka̱duna ma̱ A̱tak. A̱tyokpat wu yei A̱jhyuo ba "Kaje", ji̱ si̱ yet swang a̱lyiat da̱nang á̱ mun ngyei a̱niet Jju ba ma̱ng a̱lyem Jhyuo ji, nang ku mbyia̱ nyia̱ yorong '''Ka̱jju''' hu (ku fa: a̱byin A̱jhyo ka) vwan nggu a̱khwu di̱ yorong shansham a̱ni. A̱di̱di̱t A̱jhyuo wu yet [[Khap|á̱nietkhap]], [[A̱kat|á̱nieta̱kat]], a̱yaafwu ma̱ng [[A̱bwuang|á̱nietkaswuo]] wa.
== Kwai-nfwuo-á̱niet ==
A̱tyu a̱ nyia̱ tyok tazwa A̱jhyo ba, nggu wa yet a̱ka̱ka̱rak a̱tyutyok wu a̱nyan wa a̱gwomna̱ti [[Si̱tet Ka̱duna]] ku khai a̱ni. Da̱ nggu wa nyia̱ tyok tazwa naat mbwot á̱niet hu, a̱wot a̱keangtung mba kikya yet [[Zonkwa]] (ke A̠zunkwa).
Á̱ ngyei a̱tyutyok A̱jhyo ba ''A̱gwam Ba̱jju''. A̱son wu ma̱ng a̱si̱ a̱ shyia̱ di̱ cuktyok ji mi̱ di̱ yong huni wa yet A̱tyushityok (A̱ST), A̱gwam Ba̱jju I, [[Nuhu Ba̱ture|A̱gwam Nuhu Ba̱ture A̱ci (OON)]].<ref name=Bature>Punch (May 18, 2019). [https://punchng.com/women-were-forbidden-from-eating-eggs-in-bajju-for-fear-of-killing-their-foetuses-bature-agwam-bajju-i/ Women were forbidden from eating eggs in Bajju for fear of killing their foetuses - Bature, Agwam Bajju I].</ref>
==A̱ca̱cet á̱niet==
# [[Ka̱tung A̱duwak]]: A̱tyuya-a̱ywan [[Big Brother Nigeria]] (Season 1, 2006).
# Israel Kashim Audu: A̱tyu a̱ ku kpaat ''Kaduna International Film Festival'' (á̱ ku kpaat 2018).
# [[Rachel Bakam]]: A̱tyu gwai á̱niet nfwuo a̱byin Naijeriya.
# Maj. Gen. [[Ishaya Bakut]]: Gwomna a̱khwot a̱kwop Si̱tet Benuwe (1986-1987); a̱tyubwuang a̱nyan wa ku yet a̱tyubeang a̱kpangcuk ''Anjeed Innova Group'' (2013-2015).
# [[Yohanna Madaki|Barr. (Col.) Yohanna A. Madaki]]: Gwomna A̱khwot a̱kwop a̱khwukhwop [[Si̱tet Gonggola]], [[Naijeriya]] (1985-1986); gwomna a̱khwot a̱kwop [[Si̱tet Benuwe]] (August 1986 –September 1986).
# Engr. Stephen Rijo Shekari: a̱tyubeang gwomna [[Si̱tet Ka̱duna]] (1999-2005).
==Ya̱fang==
<references/>
==Fang a̱pyia̱==
* Blench (2008) [https://web.archive.org/web/20140407193342/http://www.rogerblench.info/Language/Niger-Congo/BC/Plateau/General/Prospecting%20proto-Plateau%20Unicode.pdf ''Prospecting proto-Plateau'']. Manuscript.
* Abel Gaiya (2013) http://diaryofanafrican.blogspot.com/2013/05/all-about-my-tribe-origin-superstition_12.html
[[Sa:Nnwap_swanta]]
[[Sa:Nnwap_Afrika]]
[[Sa:Nnwap mi̱ Naijeriya]]
hlbmiz7vasimdqtrnt0p3g2qu36l88w
A̱ji̱jak
0
156
12123
1564
2022-05-20T14:41:30Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
[[Fail:Libya 4608 Idehan Ubari Dunes Luca Galuzzi 2007.jpg|upright=1.35|thumb|Tsutsok a̱ji̱jak mi̱ Idehan Ubari hu, [[Li̱biya]]]]
'''A̱ji̱jak''' yet a̱cuwang nfang nang a̱ shyia̱t a̱bin kya a̱ni. A̱niet nok a̱ka̱sa ni̱ nyia̱ ta̱m ma̱ng a̱ji̱jak di̱n nok.
==Ya̱fang==
<references/>
bkfcsoyok9c6883njcmk43duj3tp8qy
A̱jure
0
157
1568
1567
2022-05-16T12:44:38Z
Jon Harald Søby
8
3 revisions imported
wikitext
text/x-wiki
A̱jure (Kpat: Kajuru) yet A̱dadai A̱vwuo tung A̱gwapnati ka̱ shyia̱ A̱tak Kaduna, Si̱tet Kaduna, Naijeriya a̱ni. A̱keang tung a̱niet ka kya a̱ngyei A̱jure. A̱dam nyia̱ a̱vwuo ka ni kwup kyai a̱bin ku bai kilomita with 2,229 a̱ni.
==Ya̱fang==
<references/>
np9h361vbvmy24asu4wi6rdfdtu8tlc
A̱kambwon a̱nap
0
158
1577
1576
2022-05-16T12:44:39Z
Jon Harald Søby
8
8 revisions imported
wikitext
text/x-wiki
'''A̱ka̱mbwon a̱nap''' yet a̱nap-byin ngwon a̱yin.
Ka̱ a̱yin byia̱ ngwon ka̱ mang byin ngwon a̱nap a̱ni, ngwon a̱nap a̱kya yet a̱kambwon kya ma̱ng a̱tyia(a̱yaatyia̱) mbeang a̱yang(a̱yaayang) a̱nietbyin ngu ba.
==Ya̱fang==
<references/>
itueh1olw3m0rwjthleawcn0jzv2ndj
A̱kamm
0
159
12128
1588
2022-05-20T15:14:49Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
[[Fail:Bakweri cocoyam farmer from Cameroon.jpg|thumb|300px|right|A̱tyukhap a̱ghyang ma̱ a̱byin [[Kemerun]] a̱ go a̱byinkhap a̱kamm nggu ka a̱za A̱fan Fako]]
'''A̱kamm''' yet kyayak hwa, a̱ yet a̱bankup kya a̱ byia̱ kunkwom nang cyi a̱ni. A̱ byia̱ a̱ca̱cet (pipyia̱) a̱ si̱ byia̱ a̱cyuang. A̱kamm shyia̱ ma̱ng sot a̱li nkyayak á̱ ngyei ''Tubers'' a̱ni.
==Ya̱fang==
<references/>
1l88n82li3r8v07xodvua03il14kskg
A̱ka̱bwon a̱sam
0
160
1597
1596
2022-05-16T12:44:42Z
Jon Harald Søby
8
8 revisions imported
wikitext
text/x-wiki
'''A̱kambwon a̱sam''' (''a̱kpa'': á̱kambwon ayaasam) yet a̱fai nbyin ngwon a̱yin. Ka̱ a̱yin byia̱ ngwon ka̱ mang byin a̱fai a̱ni, a̱fai wu yet a̱kambwon kya ma̱ng a̱tyia(a̱yaatyia̱) mbeang a̱yang(a̱yaayang) a̱nietbyin ngu ba.
nroik5yvckzh2n4od1pxr1ma009p2pq
A̱ka̱bwusale
0
161
12129
1625
2022-05-20T15:14:59Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
[[Fail:Doodlebug doodles.jpg|thumb|left|A̱ka̱bwusale lung a̱bubwong yebaat a̱bacyuang nyam á̱ghyang mi̱ Grand Canyon ji]]
'''A̱ka̱bwusale''' yet a̱bada̱dei nyam kya ka̱ tai [[A̱ga̱swan|á̱ga̱swan]] a̱ni a̱ si̱ li nang '''Coleoptera''' ba̱ neet di̱n kwai '''Endopterygota''' a̱ni.
==Ya̱fang==
<references/>
rswpcj3je57iqug35rpicw1ii69lpyv
A̱ka̱laya
0
162
12130
1638
2022-05-20T15:15:09Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
[[Fail:Tamarindus indica pods.JPG|thumb|A̱kwon a̱ka̱laya ma̱ng sum a̱zakwon]]
'''A̱ka̱laya''' yet sum hwa nang á̱ shyiat ma̱ "A̱kwon Ka̱la̱ya" a̱ni. A̱ka̱laya swan za̱nzam/sa̱sat, á̱ ni̱ swom gu ma̱ a̱sa̱khwot á̱ ti̱n a̱sa̱khwot na á̱ mbwan a̱ta̱bwai, ka̱ doot, á̱ nyia̱ kan mameang.
==Ya̱fang==
<references/>
fbtpm4ssunbunaep5v5wbt131bg1o26
A̱ka̱mbut
0
163
12131
1650
2022-05-20T15:15:19Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
[[Fail:Koeh-029.jpg|thumb|A̱tyin a̱ga̱fi̱p ma̱ng sum a̱kwon, neet di̱ ''Medicinal-Plants'' Koehler (1887)]]
[[Fail:Papaya - longitudinal section.jpg|thumb|Kap a̱swap sum a̱kwon ku tyai a̱shyim zwá ma̱ a̱di̱di̱t ma̱ng li a̱sakhwot a̱lemu ma̱ng á̱dyundyung]]
'''A̱ka̱mbut''' yet sum a̱kwon hwa. A̱kwon ka laai jojot ka̱ si̱ mang sum hu cicet. A̱ka̱mbut yet ma̱ng vam nang á̱kum nsum a̱ka̱kwon ka a̱ni.
==Ya̱fang==
<references/>
k4chva2dyjp6k1cpj84mo197j9ib82h
A̱ka̱mbwon a̱nap
0
164
1655
1654
2022-05-16T12:44:49Z
Jon Harald Søby
8
4 revisions imported
wikitext
text/x-wiki
'''A̱ka̱mbwon a̱nap''' yet a̱nap-byin ngwon a̱yin.
Ka̱ a̱yin byia̱ ngwon ka̱ mang byin ngwon a̱nap a̱ni, ngwon a̱nap a̱kya yet a̱kambwon kya ma̱ng a̱tyia (a̱yaatyia̱) mbeang a̱yang (a̱yaayang) a̱nietbyin ngu ba.
==Ya̱fang==
<references/>
4dyc97l677ubi4my4w54r56wxqcec5s
A̱ka̱mbwon a̱sam
0
165
1663
1662
2022-05-16T12:44:50Z
Jon Harald Søby
8
7 revisions imported
wikitext
text/x-wiki
'''A̱kambwon a̱sam''' (''a̱kpa'': á̱kambwon ayaasam) yet a̱fai nbyin ngwon a̱yin.
Ka̱ a̱yin byia̱ ngwon ka̱ mang byin a̱fai a̱ni, a̱fai wu yet a̱kambwon kya ma̱ng a̱tyia (a̱yaatyia̱) mbeang a̱yang (a̱yaayang) a̱nietbyin ngu ba.
==Ya̱fang==
<references/>
99r6suww9kpa42fm8ea84411p1xrr7e
A̱ka̱sasaaikurum Naijeriya
0
166
14189
13296
2022-06-13T10:04:50Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
'''A̱ka̱sasaaikurum Naijeriya''' na (á̱ ka ngyei '''a̱yaaba̱nki Naijeriya''') nang á̱ lyen ti̱nta [[Naijeriya]] a̱ni, bibya á̱ tak tatak ka a̱ni:
#Access Bank Plc
#Fidelity Bank Plc
#First City Monument Bank Limited
#First Bank of Nigeria Limited
#Guaranty Trust Holding Company Plc
#Union Bank of Nigeria Plc
#United Bank for Africa Plc
#Zenith Bank Plc
'''A̱ka̱sasaaikurum Naijeriya''' na nang á̱ lyen mami Naijeriya a̱ni, bibya á̱ tak tatak ka a̱ni:
#Citibank Nigeria Limited
#Ecobank Nigeria
#Heritage Bank Plc
#Keystone Bank Limited
#Polaris Bank Limited. A̱ka̱mbwon Skye Bank Plc wu.[2]
#Stanbic IBTC Bank Plc
#Standard Chartered
#Sterling Bank Plc
#Titan Trust Bank Limited
#Unity Bank Plc
#Wema Bank Plc
'''A̱ka̱sasaaikurum Naijeriya''' na nang á̱ lyen ma̱ng si̱sa Naijeriya a̱ni, bibya á̱ tak tatak ka a̱ni:
#Globus Bank Limited[3]
#Parallex Bank Limited
#Providus Bank Limited
#SunTrust Bank Nigeria Limited
'''A̱ka̱sasaaikurum Naijeriya''' ba̱ turung kpangti̱n Naijeriya a̱ni ba, bibya tatak ka a̱ni:
#Jaiz Bank Plc
#TAJBank Limited
This is a list of Microfinance Banks in Nigeria:
#Mutual Trust Microfinance Bank
#Rephidim Microfinance Bank
#Shepherd Trust Microfinance Bank
#Empire Trust Microfinance Bank
#Finca Microfinance Bank Limited
#Fina Trust Microfinance Bank
#Accion Microfinance Bank
#Peace Microfinance Bank
#Infinity Microfinance Bank
#Pearl Microfinance Bank Lim
This is a list of Online-Only Microfinance Banks in Nigeria:
#Sparkle Bank
#Kuda Bank
#Rubies Bank
#VFD MFB
#Mint Finex MFB
#Mkobo MFB
'''A̱ka̱sasaaikurum á̱nietkaswuo Naijeriya''', bibya á̱ tak tatak ka a̱ni:
#Coronation Merchant Bank
#FBNQuest Merchant Bank
#FSDH Merchant Bank
#Rand Merchant Bank
#Nova Merchant Bank.
==Bu nwuan==
* [[A̱gba̱ndang A̱lisaaikurum Naijeriya]]
* [[A̱za̱za̱rak nzwa Naijeriya|Tung nzwa Naijeriya]]
==Ya̱fang==
<references/>
==A̱ka̱fwuop nta==
* [https://www.cbn.gov.ng/out/2018/fprd/updated%20list%20of%20commercial%20banks%20as%20at%20december%2029%202017.pdf List of deposit money banks and financial holding companies operating in Nigeria as at December 29, 2017] (di̱n Shong)
[[Sa:A̱ka̱sasaaikurum Naijeriya| ]]
[[Sa:Naijeriya]]
cx3kxn0oo3heonndtx5y15oy54zkdyz
A̱ka̱ta
0
167
12133
1707
2022-05-20T15:15:39Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
[[Fail:Agwak akat.jpg|thumb|A̱gwak a̱kat A̱tyap a̱ khwi a̱ka̱ta ma̱ a̱lyia̱ 2019 ma̱ a̱tuk mam A̱yet A̱tyap ka]]
'''A̱ka̱ta''' yet tangka̱i a̱kup a̱pyia̱ hwa nang á̱ khwi á̱ ngyerai mam, jen jhyang á̱ khwi di̱ shisham, jen jhyang mameang á̱ khwi á̱ nnyia̱ song. A̱ka̱ta beang cok a̱pyia̱ nang ma̱ng ta̱m a̱khwot a̱kwop a̱ni mbeang ta̱m a̱kat. Á̱ ka nkhwi nka di̱n jen tyiai fang ma̱ng ját khwi.
<ref>Pauline Thomas (08 Zwat A̱kubunyiung 2007). [http://www.fashion-era.com/hats-hair/hats_hair_1_wearing_hats_fashion_history.htm The Wearing of Hats Fashion History] (di̱n Shong). Fashion-era.com</ref>
==Ya̱fang==
<references/>
llr1moqvj6tsdtm1hgzt12e26kmjmm7
A̱ka̱vwuo na̱ byia̱ á̱niet ma̱ ba̱t mami Si̱tet Legwot
0
168
1709
1708
2022-05-16T12:44:56Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[:Category:A̱ka̱vwuo na̱ byia̱ á̱niet ma̱ ba̱t mami Si̱tet Legwot]]
6f87x2fqk35c67omln95gfq66tsxe56
A̱ka̱za̱nki
0
169
12134
1727
2022-05-20T15:15:49Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
[[Fail:Donkey in Clovelly, North Devon, England.jpg|thumb|A̱ka̱za̱nki mi̱ Clovelly, Devon A̱za, [[Nggi̱lan]]]]
'''A̱ka̱za̱nki''' mali ka (á̱kpa: '''Á̱ka̱za̱nki''' mali ''na'') yet nyam ja ji̱ byia̱ gbaat a̱ti̱tak a̱ni ji̱ shyia̱ kyangbwak nyam ''Equidae'' hu, kyangbwak nyiung ma̱ng [[tsaai]] ji.
==Ya̱fang==
<references/>
ryvqpt8u6ibx9p2qy9udmfh2u0f5jcy
A̱khet
0
170
1729
1728
2022-05-16T12:44:59Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[Hyet]]
ob9aormt0sf5vvid5p4g6k8roeuy39w
A̱khwot Á̱kwop A̱byin Naijeriya
0
171
14190
13026
2022-06-13T10:04:55Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
[[Fail:Emblem of the Nigerian Army.svg|thumb|A̱lama-fi̱ri̱ng A̱khwot Á̱kwop A̱byin Naijeriya wu]]
[[File:Nigerian Army headquarters building.jpg|thumb|Nok Tyantung A̱khwot Á̱kwop A̱byin Naijeriya hu mami [[A̱buja]]]]
'''A̱khwot A̱kwop A̱byin Naijeriya''' ([[Shong (a̱lyem)|Shong:]] Nigerian Army, '''NA''') yet sa jhyiung ja mi̱n [[A̱khwot Á̱kwop Naijeriya]] wu. Ba̱ yet á̱niet kwan zwang a̱byin bya. Si̱ huni hwa ghai mba ma̱ng á̱si̱ ba̱ kwan zwang ji ma̱ a̱sa̱khwot ku mi̱n kyai tswazwa a̱ni. A̱ca̱cet ba bibya á̱ ngyei Nigerian Army Council (NAC).
==Ya̱fang==
<references/>
[[Sa:A̱khwot Á̱kwop Naijeriya]]
0l5ovstd0li7x0m9mfc3hqcorv7ojp1
A̱khwot Á̱kwop A̱sa̱khwot Naijeriya
0
172
14191
13297
2022-06-13T10:05:00Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
[[Fail:Badge of the Nigerian Navy.svg|thumb|A̱lama-fi̱ri̱ng A̱khwot Á̱kwop A̰sa̱khwot Naijeriya]]
[[File:110405-N-HI707-953.jpg|thumb|A̱khwot á̱kwop a̱sa̱khwot Naijeriya á̱ghyang ba̱ tyap mi̱ di̱ yong a̱zaghyi a̱gba̱ndang kukwon a̱wak nzwang]]
'''A̱khwot Á̱kwop A̱sa̱khwot Naijeriya''' ([[Shong (a̱lyem)|Shong]]: Nigerian Navy, '''NN''') yet sa jhyiung ja ma̱ [[A̱khwot Á̱kwop Naijeriya]] wu. A̱ yet a̱nyiung ma̱ng a̱khwot á̱kwop a̱sa̱khwot mi̱ [[Afrika|vam-a̱byin Afrika]] a̱ laai swak ma̱ng shi a̱ni, a̱ byia̱ á̱nietnta̱m ma̱ a̱di̱di̱t, a mbeang mba ba̱ yet A̱yaacok Khwong Kyai A̱sa̱khwot a̱ni.
==Ya̱fang==
<references/>
==A̱ka̱fwuop nta==
* [http://www.navy.mil.ng A̱ma̱ntei a̱gwomna̱ti] (di̱n Shong)
* [http://www.joinnigeriannavy.com A̱ma̱ntei Kwok-i A̱khwot A̱kwop A̱sa̱khwot Naijeriya] (di̱n Shong)
* [https://www.topnigerianjobs.com/nigerian-navy-recruitment Nkyang nang á̱ cat a̱ni mat kwok A̱khwot A̱kwop A̱sa̱khwot Naijeriya] (di̱n Shong)
[[Sa:A̱khwot Á̱kwop Naijeriya]]
[[Sa:A̱khwot Á̱kwop A̱sa̱khwot Naijeriya| ]]
[[Sa:Kpaat mi̱ kpaat 1958 mami Naijeriya]]
1h1cj9xv1s1n87mkf6g7dacj2tfxjyu
A̱khwot Á̱kwop Tswazwa Naijeriya
0
173
14193
13020
2022-06-13T10:05:10Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
[[Fail:Nigerian Air Force emblem.svg|thumb|A̱lama-fi̱ri̱ng A̱khwot A̱kwop Tswazwa Naijeriya]]
'''A̱khwot A̱kwop Tswazwa Naijeriya''' wu ([[Shong (a̱lyem)|Shong:]] Nigerian Air Force, '''NAF''') yet sa jhyiung ja mi̱ [[A̱khwot Á̱kwop Naijeriya]] wu. Nggu wa yet sa ji̱ yet a̱shushyuo wu lan mi̱ sot A̱khwot Á̱kwop Naijeriya ji.
A̱ si̱ yet jhyiung mi̱ a̱si̱ ji̱ swak ma̱ng shi a̱ni mami [[Afrika]] ma̱ng á̱nietnta̱m ba̱ tat kpa̱mkpaan ma̱ng 15,000 a̱ni<ref>IISS Military Balance 2009 (di̱n Shong), p.314</ref> a si̱ byia̱ nkyangcung tswazwa nang ntangka̱i nyia̱ Cengdu F-7 [[Caina]] 8, ntangka̱i nyia̱ A̱lfa Jet Dassault-Dornier 13, JF-17 Thunder Block II 3 ma̱ng a̱ka̱man tswam Super Tucano 12, ntangka̱i nyia̱ FA nce M-346 24 nang á̱ ku nyia̱ oda a̱ni, a̱ca̱cet kukwon a̱sa̱khwot tswam ndong a̱si̱ A̱li̱kopta ma̱ a̱di̱di̱t, a̱yaadi̱ron ta̱gba̱k ba̱ byia̱ nkyangzwang, ma̱ng nkyangcung tswazwa a̱khwot a̱kwop nang á̱ shyei nkyang ma̱ng á̱na a̱ni.
==Ya̱fang==
<references/>
==A̱ka̱fwuop nta==
* [http://awajis.com/nigerian-military-ranks-army-navy-and-airforce/#naf A̱yaarank A̱khwot A̱kwop – A̱khwot A̱kwop A̱byin, A̱khwot A̱kwop A̱sa̱khwot ma̱ng A̱khwot A̱kwop Tswazwa]
* [http://www.airforce.mil.ng A̱ma̱ntei a̱gwomna̱ti]
* [http://www.ecoi.net/local_link/188472/291798_en.html Nigerian Air Force including its size, bases, ranks, and insignia of officers and members; number and names of those with the rank of Wing Commander [NGA34154.E] 30 March 2000] (available at ecoi.net) (accessed 25 October 2013)
* [http://unilaglss.wordpress.com/2013/08/16/1994/ The Nigerian Presidential Air Fleet: The Untold Story] (di̱n Shong)
* [http://www.nigerianairforce.net Nigerian Air Force]
* [https://web.archive.org/web/20090927070457/http://www.afmsjos.com/ Air Force Military School, Jos]
* [https://web.archive.org/web/20111102202027/http://wikileaks.ch/cable/2008/04/08ABUJA585.html Proposed sale of three C-130s to Senegal] (di̱n Shong)
* [https://careersafrik.com A̱ma̱ntei kwok á̱nietnta̱m A̱khwot A̱kwop Tswazwa Naijeriya]
* [https://www.topnigerianjobs.com/nigerian-air-force-recruitment Nkyang na̱ myim a̱yin gu byia̱ di̱ kwok á̱nietnta̱m A̱khwot A̱kwop Tswazwa Naijeriya]
* [https://www.studymaterials.com.ng/nigerian-air-force-past-questions Nigeria airforce recruitment past questions]
[[Sa:A̱khwot Á̱kwop Naijeriya]]
[[Sa:A̱khwot Á̱kwop Tswazwa Naijeriya]]
pyo3qhlo9egntn3pdovpnq6ut4ji5iq
A̱khwot Á̱kwop Naijeriya
0
174
15552
14192
2022-08-07T16:47:56Z
Kambai Akau
15
wikitext
text/x-wiki
{{Databox}}
'''A̱khwot Á̱kwop Naijeriya''' wu, nggu wa yet á̱nietnzwang Ri̱pobi̱lik Mundundung [[Naijeriya]] ba. A̱ shyia̱ ma̱ng mbwak nani: [[A̱khwot A̱kwop A̱byin Naijeriya]] wu, [[A̱khwot A̱kwop Tswazwa Naijeriya]] wu ma̱ng [[A̱khwot A̱kwop A̱sa̱khwot Naijeriya]] wu.
[[Fail:Flag of the Nigerian Armed Forces.svg|thumb|Tyiang a̱toot shi A̱khwot Á̱kwop Naijeriya]]
==Fang a̱zanson==
* Sot Tat-a̱pyia̱ A̱khwot Á̱kwop A̱byin Naijeriya ma̱ng A̱vwuofang (1992). [https://openlibrary.org/books/OL1474957M/History_of_the_Nigerian_Army_1863-1992 "Nkhang A̱khwot Á̱kwop A̱byin Naijeriya 1863–1992]" (di̱n Shong). [[A̱buja]].
==Ya̱fang==
<references/>
== A̱ka̱fwuop nta ==
* [http://defenceinfo.mil.ng/profile-of-the-chief-of-defence-staff/ Shan Cok A̱byin Naijeriya]
* [https://army.mil.ng/ A̱khwot Á̱kwop A̱byin Naijeriya]
* [http://www.navy.mil.ng/ A̱khwot Á̱kwop A̱sa̱khwot Naijeriya]
* [https://airforce.mil.ng/ A̱khwot Á̱kwop Tswazwa Naijeriya]
[[Sa:A̱khwot Á̱kwop Naijeriya]]
91qmr1db002w50c0b5o8h0g4fqvx77h
A̱khwu
0
175
12137
1790
2022-05-20T15:16:19Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
[[Fail:Hendrick Andriezsoon - Vanitas.JPG|alt=|thumb|A̱ghyighyak a̱pyia̱ a̱tyubishyi wu yet a̱lama a̱khwu wa koji mi̱ swanta hu]]
'''A̱khwu''' ka (á̱kpa: '''kukwi''' ''hu'') yet a̱mgba̱m nswuan nkyang nswuan.
==Ya̱fang==
<references/>
7grsmutucy6ma2muck5d6mqew19ipva
A̱khwup
0
176
12138
1798
2022-05-20T15:16:29Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
'''A̱khwup''' yet jen nang nggwoneam ka̱n nwai wam a̱ni.
==Ya̱fang==
<references/>
2asdk32h76iaf9am1rq3qf4x2pqvsdh
A̱khwut
0
177
12139
1811
2022-05-20T15:16:39Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
[[Fail:Blausen 0597 KneeAnatomy Side.png|thumb|A̱khwut a̱zayak wu á̱ maai li neet di̱ fam a̱zayak hu]]
'''A̱khwut''' ka (á̱kpa: '''a̱khwukhwut''' ''ba'') yet kap nvam hwa ma̱ng a̱ka̱wa̱tyia̱ [[shai ntak]] mbeang [[a̱bwan ntak]]. A̱khwut kya beang gwun tak hu ka̱ a̱yin na swan a̱byin.
==Ya̱fang==
<references/>
g5sy0y5a7vwhnbsrfvj4d7xf1sht2fe
A̱kop
0
178
1813
1812
2022-05-16T12:45:10Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[A̱kwop]]
mtv9jqiasas2qjd0kyq5butio52y1b6
A̱kpang
0
179
12140
1824
2022-05-20T15:16:49Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
'''A̱kpang''' wu (á̱ ka ndyen nang '''kikyak''' a̱ni; á̱kpa: '''a̱yaakpang''' ''ba'') yet kyang á̱ mang a̱yin a̱ni, ka̱ a̱ doot a̱ ya mmyia̱, ka̱ a̱ doot a̱ ya nswan a̱ fwung.
==Ya̱fang==
<references/>
e42agc113hb36afj5a6s1919ipq4b6b
A̱kpat
0
180
15208
14194
2022-07-17T19:10:08Z
Kambai Akau
15
wikitext
text/x-wiki
'''A̱kpat''' wu (a̱tyonyiung: '''a̱tyokpat''' wu; a̱lyoot a̱pyia̱: '''Hausawa''', ''Ausa'' meang; a̱lyoot nta: lyuut Lyiatfi̱ransa ''Haoussa'', lyuut Lyiatshong ''Hausa'', Idoma ''Abakpa'') yet nwap [[Lilyem Cadik|Cadik]] ja ji̱ yai ba̱t di̱ fam Sahet hu ma̱ng nfam Savana nang á̱nietbishyi nwai nshyia̱ ma̱ a̱di̱di̱t a̱ni bah, mbeang susot nswat di̱ fam a̱tak [[Ni̱njer (a̱byin)|Ni̱njer]] ma̱ng fam a̱za [[Naijeriya]].
Ma̱ng a̱mgba̱m shi á̱niet miliyon 80 (tyan 2019), A̱kpat wu wa swak di̱ yet [[Nnwap Afrika|nwap Afrika]] jhyiung ji̱ byia̱ á̱niet a̱ swak a̱ni.
Susot á̱niet ji̱ lyiat [[Kpat (a̱lyem)|Kpat]] ma̱nyin a̱ni ngyai koji di̱ fam [[Jenshyung Afrika]] ma̱ng a̱ta̱lyen taada cyet nat Haji di̱ nfam a̱za ma̱ng a̱tyin Sahara na, ma̱ng susot á̱niet á̱ khap sak zan ma̱ a̱di̱di̱t a̱mami ma̱ng da̱ a̱beam a̱keang A̱ga̱da̱t. A̱kpat a̱ghyang ku shyei si̱ nwuai a̱ca̱cet a̱ka̱keang na̱ shi a̱ni ba̱t di̱ fam khwong kyai a̱sa̱khwot hu nang [[Legwot]], [[Pa̱takwot]], A̱kra, Abijan, Ba̱njut ma̱ng Kotonu mbeang nkap fam Afrika A̱za nang a̱byin [[Li̱biya]], mi̱ shi a̱swap ndyia̱ 500. Á̱ ku nwuak ri̱pot nyia̱ A̱kpat wu khwi yet a̱nyiung mami á̱niet bibyin [[Bini (a̱byin)|Bini]], [[Kemerun]], [[Khwong A̱ta̱m Nzwuom]],<ref>"[https://joshuaproject.net/people_groups/12070/IV Hausa in Côte d'Ivoire]". Joshua project.</ref> [[Caad]], [[Sudan]], Ri̱pobi̱lik A̱tyia̱ka̱u Afrika,<ref>"[https://joshuaproject.net/people_groups/12070/CT Hausa in Central African Republic]" (di̱n Shong). Joshua Project.</ref> Ri̱pobi̱lik Konggo ji,<ref>"[https://joshuaproject.net/people_groups/12070/CF Hausa in Congo, Republic of the]". Joshua Project.</ref> [[Togo]], [[Gana]],<ref name="auto4">"[https://joshuaproject.net/people_groups/12070/GH|title=Hausa in Ghana]". Joshua Project.</ref> [[Eritrea]],<ref name="auto3">"[http://www.madote.com/2010/04/nigerian-eritreans-history-of-housa-and.html Nigerian Eritreans - The history of Hausa and Bargo in Eritrea]". Madote.</ref> [[Gini A̱kwa̱toriya]],<ref>"[https://joshuaproject.net/people_groups/12070/EK Hausa in Equatorial Guinea]" (di̱n Shong). Joshua Project.</ref> Ga̱bon, Senegal ma̱ng Ga̱mbiya ji.
A̱kpat wu swan si̱sak ma̱ng taada ma̱ a̱cyuang a̱baka̱keang nia, mbeang a̱ka̱keang na̱ laai yet a̱ca̱cet a̱ni, ma a̱ji wa á̱ cyui á̱ga̱fi̱p, go nkyangzwa ma̱ng nyák, á̱ ka ncong a̱bwuang a̱mali ma̱ng gbang di̱ nfam-a̱byin Afrika. A̱lyem nggu wu yet Kpat ja, a̱lyem Afro-A̱siya ka̱ shyia̱ di̱ sot [[Lilyem Caadik|Cadik]], ji̱ si̱ yet a̱lyem mbyin Afrika nang á̱ lyiat á̱ swak a̱ni. Si̱sak ji á̱ ngyei a̱tyu a̱ yet A̱kpat a̱ni ca̱caat ma̱ng sot-mbyin nggu ji da̱ a̱lyem Kpat ka ja yet: ''Bahaushe'' ("a̱tyokpat-a̱sam"), ''Bahaushiya'' ("a̱tyokpat-a̱nap").
A̱gba̱ndang a̱keang [[Da̱ura]] wa yet a̱ka̱watyia̱ taada A̱kpat ka. Á̱ ku kpaat a̱keang a̱kya gbangbang a̱zaghyi a̱mgba̱m a̱ca̱cet a̱ka̱keang A̱kpat na. Á̱nietba̱ngtyok A̱kpat ba ku nok taada ji̱ byia̱ a̱ni̱nan di̱ [[Ban tsaaí]] neet gbangbang.<ref>Koops, Katrin (1996). "[http://minds.wisconsin.edu/handle/1793/34443 The role of the horse in Hausa culture]" (di̱n Shong). Thesis.</ref> Ba̱ng si̱ tat a̱fwun, a̱ swan a̱lama taada wa ma̱ng ntyok A̱kpat na, a̱wot [[Tsaai|tsaai]] ji si̱ byia̱ ta̱m nang ji̱ nyia̱ a̱ni mi̱ mam song a̱yet [[Nfwung Á̱nietkpaa̱pyia̱|Idi]], nang á̱ lyen nang ''Ranar Sallah'' a̱ni (di̱n Tyap: Mam Kpaa̱pyia̱).<ref>"[https://web.archive.org/web/20160303224410/http://www.esthergarvi.org/2010/03/28/horse-talk-breeding-in-niger/ » Horse Talk: Horse Breeding in Niger Esther Garvi: Niger, West Africa]" (di̱n Shong).</ref>
==Ya̱fang==
<references/>
[[Sa:Nnwap_swanta]]
[[Sa:Nnwap_Afrika]]
[[Sa:Nnwap mi̱ Naijeriya]]
c39mbk4qvdg6xotohaas1zkti7r7bjt
A̱kpeang
0
181
14762
12141
2022-07-04T16:37:54Z
Kambai Akau
15
wikitext
text/x-wiki
{{Databox|item=Q41055}}
'''A̱kpeang''' ka (á̱kpa: '''kpi̱kpeang''' ''hu'') yet a̱zaghyi a̱pyia̱ a̱tyubishyi kya. Kikya ba̱ng a̱ghyi ba ma̱ng a̱tyin zwua̱i ka.
==Ya̱fang==
<references/>
qan9hd893p1g4iylsmogwylfwccc0ig
A̱kunkwa-a̱li
0
182
14195
13112
2022-06-13T10:05:20Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
[[Fail:Gray515.png|thumb|Ghwughwu nkyangkwok a̱sok a̱kunkwa-a̱li]]
'''A̱kunkwa-a̱li''' wu (á̱kpa: Á̱kunkwa-a̱ghyi ''ba'') yet a̱bafa̱fap kwa kya ka̱ kup [[Tswa a̱li|tswa-a̱li]] ji .
==Ya̱fang==
<references/>
[[Sa:Nkyang a̱li nwuan a̱vwuo]]
qxxfnk7ajl53owgulehmrloa9xxukze
A̱kusambwat
0
183
12050
1900
2022-05-20T14:18:11Z
Hugo.arg
154
wikitext
text/x-wiki
[[Fail:Bombina bombina 1 (Marek Szczepanek).jpg|thumb|A̱kusambwat a̱fa-ndong Yurop (''Bombina bombina'')]]
'''A̱kusambwat''' yet nyam ja ji̱ byia̱ a̱khwot kwa a̱ni. Kwa nggu hu byia̱ swurup.
==Ya̱fang==
<references/>
bicaw3tzbhb2ka4q7k7ust4me1i8lmi
A̱kusuru
0
184
12142
1922
2022-05-20T15:17:09Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
'''A̱kusuru''' wu (á̱kpa: '''A̱yaakusuru''' ''ba'') yet kyangzwa (ku nyam a̱mali) hwa, a̱ shi a̱ byii̱t a̱ si̱ byia̱ hya̱u. A̱ lat a̱za, zwa nggu ji la̱u ghwut di̱ yet a̱yaasai. Á̱ cok nggu di̱ nyia̱ nam wa ka̱ a̱ shi mmaai.
[[Fail:Pig farm Vampula 9.jpg|thumb|A̱yaakusuru]]
[[Fail:Pig grunt - Erdie.ogg|thumb|Tywei a̱kusuru]]
==Ya̱fang==
<references/>
87jkpgh7lo4gpkhyqowi4ie3mrklkvq
Á̱nietza̱fan (nwap)
0
185
15412
14704
2022-07-28T14:59:16Z
Kambai Akau
15
wikitext
text/x-wiki
{{Databox}}
'''Á̱nietza̱fan''' ba ([[Á̱nietza̱fan (a̱lyem)|Á̱nietza̱fan:]] '''Nneirigwe'''; ''[[Kpat (a̱lyem)|Kpat:]]'' Miyango<ref name=LOC>[https://id.loc.gov/authorities/subjects/sh2003003175.html Irigwe (African people)]. Library of Congress.</ref>) yet nwap ja ji̱ shyia̱ ma̱ a̱di̱di̱t di̱ fam [[Basa, Si̱tet Pi̱lato|Sot A̱gwomna̱ti Mali Basa]], [[Si̱tet Pi̱lato]], [[Fam A̱ka̱wa̱tyia̱]] [[Naijeriya]] a̱ni. Ba̱ lyiat da̱ a̱lyem á̱ ka ngyei [[Á̱nietza̱fan (a̱lyem)|Á̱nietza̱fan]] a̱ni (ku '''Nkarigwe''' da̱ a̱lyem mba ka), ka̱ yet [[Lilyem a̱ka̱wa̱tyia̱ Pi̱lato|A̱lyem A̱ka̱wa̱tyia̱ Pi̱lato]] a̱ni. Tyantung mba ji ja yet a̱keang [[Myiango]], di̱ fam jenshyung a̱keangtung si̱tet hu, [[Nja̱t]].<ref name=Joshua></ref><ref name=Ethno>[https://www.ethnologue.com/language/iri Rigwe]. Ethnologue: SIL International.</ref>
==Yai==
Á̱ maai nshyia̱ Á̱nietza̱fan ba di̱ nfam [[Basa, si̱tet Pi̱lato|Basa]], [[Nja̱t ma̱ A̱za]] ma̱ng [[Nja̱t ma̱ A̱tak]] [[Susot a̱gwomna̱ti mali Naijeriya|Sot A̱gwomna̱ti Mali]] [[Si̱tet Pi̱lato]] mbeang mi̱ [[Ka̱uru|Sot A̱gwomna̱ti Mali Ka̱uru]], [[A̱tak Ka̱duna|a̱tak]] [[Si̱tet Ka̱duna]], [[Naijeriya]].<ref name=Ethno></ref>
==Taada==
===Song===
Di̱ si̱sak ji nang Á̱nietza̱fan ba song a̱ni, nfi̱ng á̱nietkhap Á̱nietza̱fan na ni̱ nta̱gak mat tyei laai á̱ga̱fi̱p gba̱gbak a̱ni mi̱ susong ji̱ byia̱ a̱meang ma̱ng sweap njen khap a̱ni. Susot a̱bwuang jhyang ma̱ng susot á̱byang a̱yaagwak nang á̱fwu, á̱niet a̱kat, ke a̱nietshap nkwon, mba ma mbyia̱ susong a̱ca̱cet mba ji. Á̱niet a̱kat ma mbye maat cong nyám nang vak nyian tyok taada tazwa nyám a̱yit a mbeang bi̱n ma̱ng fwuong a̱wun mba hu.<ref>[https://www.britannica.com/art/African-dance Irigwe people]. Britannica.</ref>
===Nyeang===
Sangree (1969) dyuut: "Vak nyeang Á̱nietza̱fan ba ma̱ tsotswat ni̱ cat á̱tyok ba̱ nyeang a̱nyiuk a̱wot a̱nyiuk ba̱ ma nyeang á̱tyok ma̱ vwuon di̱ nfam nwap ji ma̱ a̱mgba̱m jen swat-a̱ca̱cet á̱niet mba hu a̱ni, a̱wot ku si̱ lak shim tyat nyeang. Á̱ ma ni̱ nnwuak nhu a̱li ma á̱niet-mbyin a̱tyok ba á̱ ma ni̱ nnwuak yet a̱tyia̱ kuzang nggwon nang a̱byii̱k wu byin a̱ni ma̱ a̱tyok wu nang gu shyia̱ mi̱ swat a̱ni di̱n jen kyiak a̱fa nggwon ka. Bang ma̱ng a̱nia, a̱nyiuk ni̱ nshyak a̱vwuonswat neet a̱tyok naat a̱tyok di̱ njen ma̱ a̱di̱di̱t nang ba̱ shyia̱ mi̱ swuan a̱ni, a̱wot si̱ nang ku yet nyia̱ nggwon nshyia̱ bah ba̱ ni̱ nswuo a̱bung ka̱u a̱ji ma̱ng nci̱ri̱ng neet a̱ghyang neet nggwon a̱nyiung ka̱ ke á̱ghyang mman na̱ ta̱yuk da̱ mba a̱ni. Susot nwuai ntswa mi̱ vam, nang kpa̱mkpaan a̱mgba̱m a̱ca̱cet a̱nyiuk nwap ba nshyia̱ ni, ni̱ nnang a̱ka̱sham gbi̱ngban ma̱ng nvak mun a̱pyia̱ mat nang a̱nyiuk ba zang da̱nian ka̱u ki̱ka̱u ma̱ng tyei tai nang vak nyeang hu mbyin mba ndyo a̱ni mi̱ swúan mba ji."<ref>Sangree, Walter H. (December 1969). "Going Home to Mother: Traditional Marriage among the Irigwe of Benue-Plateau State, Nigeria". AnthroSource. V. 71. No. 6. Pp. 1046–1057. DOI: 10.1525/aa.1969.71.6.02a0003. HDL: 1802/6724. HDL-access=free.</ref>
===Kwok a̱son===
Mami taada, Á̱nietza̱fan ba yet nwap ja ji̱ ka̱u ki̱ka̱u di̱ mi̱n tyok ma̱ka̱wa̱tyia̱ a̱ni, a̱wot cet a̱mali ku lan a̱ swak hu myiai mbwak a̱ca̱cet a̱bwoi si̱sa nwap ma̱ vwuon di̱ mbwak a̱nyanyan bya á̱ nsak "a̱mgba̱m a̱tsatsak" ibada nang á̱ nyia̱ mat gbi̱ngban a̱mgba̱m nwap ji.<ref>Sangree, Walter H. (Spring 1970). "Tribal Ritual, Leadership, and the Mortality Rate in Irigwe, Northern Nigeria". Southeast Journal of Anthropology. V. 26 No. 1. Pp. 32–39. DOI: 10.1086/soutjanth.26.1.3629268. JSTOR: 3629268. HDL:1802/6766. HDL-access: free</ref>
==Khwi==
Á̱ ku nwuak ripwot nyia̱ ma̱ a̱di̱di̱t ma̱ Á̱nietza̱fan ba khwi [[Khwi Taada Afrika|khwi nwap]] hwa a̱wot kpa̱mkpaan ma̱ng %62.0 a̱kuu nwap ka, %28.0 ba̱ yet á̱nietkhwi [[Khwikristi|Krista]] bya a̱ni (sot Á̱sa̱t %55.0, sot a̱yaa[[Protestan]] %25.0 ma̱ng sot [[Katolika Roma]] %20.0), nang á̱nietkhwi [[Khwikpaa̱pyia̱]] ba si̱ kyiak %10.0 á̱kum á̱niet ka.<ref name=Joshua>[https://joshuaproject.net/people_groups/12253/NI Joshua Project entry on Irigwe, Aregwe people]</ref>
==Ya̱fang==
[[Sa:Nnwap_swanta]]
[[Sa:Nnwap_Afrika]]
[[Sa:Nnwap mi̱ Naijeriya]]
mryzlrwgyqzi67pb2x5cryc6248d554
A̱kwak a̱son a̱byin Naijeriya
0
186
15551
15550
2022-08-07T16:44:21Z
Kambai Akau
15
wikitext
text/x-wiki
{{Databox}}
'''A̱kwak a̱son a̱byin Naijeriya''' wa bu yet a̱kwak a̱son a̱gwomna̱ti a̱byin wu. Nggu wa bu yet a̱za̱za̱rak a̱tyubyia̱ kyang-hyia̱ [[A̱khwot Á̱kwop Naijeriya|a̱khwot á̱kwop Naijeriya]] wu. Á̱ ni̱ byia̱ khai a̱kwak a̱son a̱byin hu a̱ka̱nyiung kya mi̱ ndyia̱ a̱naai. A̱ka̱vwuo yong ma̱ng lyulyoot a̱kwak a̱son a̱byin na ku tyia̱ kyang nyiung ma̱ a̱lyia̱ 1979. A̱kwak a̱son a̱byin ma̱nini wu [[Muhammadu Buhari]] ku tsa ta̱m hu a̱tuk 29 Zwat Tswuon 2015. '''Muhammadu Buhari''' wa yet A̱kwak a̱son a̱byin Naijeriya a̱si swak ma̱ng a̱fwuon wu.<ref>{{Cite web|title=President, Muhammadu Buhari {{!}} Consulate of Nigeria, Atlanta|url=http://nigeria-consulate-atl.org/president/president-muhammadu-buhari/|last=admin|language=en|access-date=2020-05-25}}</ref>
==Ya̱fang==
<references/>
[[Category:A̱yaakwak a̱son di̱n vak bibyin|Naijeriya]]
[[Category:Kwai-nfwuo-á̱niet mi̱ Naijeriya]]
[[Category:A̱yaakwak a̱son a̱byin Naijeriya| ]]
[[Category:A̱gwomna̱ti Naijeriya]]
[[Category:Kpaat kpi̱kpaat a̱lyia̱ 1963 mi̱ Naijeriya]]
emg8nf4kayp2fmb2i3kz2bzm1dg4ium
A̱kwang
0
187
1991
1990
2022-05-16T12:46:06Z
Jon Harald Søby
8
9 revisions imported
wikitext
text/x-wiki
'''Akwang''' (''á̱kpa'':A̱yaakwang) yet ayin a a̱neet a̱mandi A̱yiok a̱byiik a̱ni. A̱niet ba ba̱ kwon kyang ma̱ng a̱yaatyia̱ a̱byiik a̱yin a̱ni, mbyiya a̱ ngyei '''Ayaakwang'''.
==Ya̱fang==
<references/>
1qnr5jxgksy69a9p60gbhdcbv41uznm
A̱kwang A̱tyia̱
0
188
2003
2002
2022-05-16T12:46:06Z
Jon Harald Søby
8
11 revisions imported
wikitext
text/x-wiki
'''A̱kwang a̱tyia̱''' wa yet a̱tyia̱ a̱ byin a̱byiik a̱yin a̱ni. A̱kwang a̱tyia̱ bu yet a̱tyia̱ a̱ byin a̱tyiok a̱yin a̱ni.
''Akpa'':''' A̱yaakwang a̱tyia̱'''- mbyibya yet a̱na̱nyiuk a̱tyia atyiok a̱yin mbeang a̱nanyiuk a̱tyia̱ a̱byiik a̱yin.
==Ya̱fang==
<references/>
89hy44tywu4c16qhe5vc3p4b9wvmox5
A̱kwang A̱yang
0
189
14197
13300
2022-06-13T10:05:50Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
'''A̱kwang a̱yang''' yet a̱yang byin a̱byiik a̱yin a. '''Akwang a̱yang''' bu yet a̱yang byin a̱tyiok a̱yin.
==Tafang==
<references/>
[[Sa:A̱kwang]]
ndzfo2ikzuv3ci3fznvsrp96dacb04o
A̱kwi
0
190
12143
2028
2022-05-20T15:17:19Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
[[Fail:Kittyply edit1.jpg|197px|right]]
'''A̱kwi''' ka (á̱kpa: '''a̱ka̱kwi'''; ''Felis catus'') yet tangka̱i a̱da̱dai nyam ku ya nam hwa nang á̱ ba̱ng a̱mali a̱ni.<ref name="Linnaeus1758">Linnaeus, C. (1758). [https://archive.org/details/mobot31753000798865/page/42 Systema naturae per regna tria naturae: secundum classes, ordines, genera, species, cum characteribus, differentiis, synonymis, locis] ''[Felis Catus]'' (di̱ Latin). Holmiae: Laurentii Salvii. W. 42. S. 1 (Jhyuk swak)</ref> Kikya ma̱nyin nka yet sotbishyi mi̱ kyangbwak nyám ''Felidae'' nang á̱ ba̱ng a̱mali a̱ni a̱wot á̱ ka ngyei '''a̱kwi a̱mali''' á̱ ka ghai nka ma̱ng á̱si̱ na̱ shyia̱ ma̱ a̱yit a̱ni mi̱ kyangbwak hu.<ref name="Clutton-Brock1999">Clutton-Brock, J. (1999). [https://books.google.com/books?id=cgL-EbbB8a0C&pg=PA133 A Natural History of Domesticated Mammals] ''[Cats]'' (di̱n Shong). Cambridge: Cambridge University Press. ISBN 978-0-521-63495-3 (Jhyuk feang) OCLC 39786571</ref>
==Ya̱fang==
<references/>
om0z7qpu1bavqfub1gkg0vksw3sgso8
A̱kwi a̱kat
0
191
12648
2039
2022-05-23T15:06:12Z
Kambai Akau
15
/* Ya̱fang */
wikitext
text/x-wiki
'''A̱kwi a̱kat''' yet nyam ja nang á̱ ba̱ng mat á̱ ncong a̱kat. Nyam ji ni̱ beang a̱tyu a̱kat yebaat nyam a̱yit.
==Ya̱fang==
<references/>
[[en:Cat]]
crnn0gtzf6xjzblar87eoxk9v4vkgqe
A̱kwon
0
192
12144
2053
2022-05-20T15:17:29Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
Mung tat-apyia lyen á̱gafip, '''Akwon''' yet atyin á̱ga̱fip ka biye suwan kuzang alyia mung bwak á̱ga̱fip mung akikyo.
==Ya̱fang==
<references/>
8nsoysg004v1nvfus55dzy2m4b3oem3
A̱kwop
0
193
12564
2064
2022-05-21T20:08:55Z
Hugo.arg
154
/* Ya̱fang */
wikitext
text/x-wiki
[[Fail:Meadow Foxtail head.jpg|thumb|A̱kwop nkywat a̱ghyang nang A̱shong ba ngyei ''meadow foxtail'' a̱ni ta a̱pyia̱]]
'''A̱kwop''' wu (á̱kpa: '''á̱kwop''' ''ba'') hwa yet a̱tyin a̱ga̱fi̱p kya ka̱ tang ghwut neet a̱byin a̱ni da̱nang a̱yin cyui bah, a̱wot nyám a̱yit ku si̱ a̱mali - a̱cyuang ku a̱ca̱cet - ya a̱ni ba̱t.
==Ya̱fang==
<references/>
p9gduds43f5hcql2kep5kna3xx988ql
A̱kwui A̱kat
0
194
2066
2065
2022-05-16T12:46:08Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[A̱kwi a̱kat]]
8anocfox56kai8ka62exsqjtalvzel8
A̱kyetuk
0
195
2068
2067
2022-05-16T12:46:08Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[A̱tyetuk]]
g3r4zupenl9gryzp2832zkbegelrbfh
A̱lakumi
0
196
14555
12145
2022-06-20T21:20:59Z
Kambai Akau
15
wikitext
text/x-wiki
[[Fail:Bactrian Camel.jpg|thumb|A̱lakumi a̱ byia̱ a̱gungung a̱ma a̱feang a̱ni]]
'''A̱lakumi''' ''wu'' (á̱kpa: '''a̱yaalakumi''' ''ba'') yet a̱gba̱ndang nyam wa nang á̱nietbishyi ni̱ nyeak a̱ swan gu nat ma̱ng a̱mba da̱ a̱vwuo nang ba̱ naat a̱ni. A̱lakumi wu bu ni̱ kpa̱t kpa̱t. Jen jhyang á̱ ni̱ nok a̱susuut a̱toot ma̱ng cat a̱lakumi hu.<ref>[https://play.google.com/store/apps/details?id=org.wycliffe.kcg.tyap.bible A̱lyiat A̱gwaza na di̱n Tyap: A̱li̱ka̱uli A̱fai] (2015). "A̱cha̱chet Swáng A̰lyiat".</ref>
==Ya̱fang==
<references/>
[[Category:A̱yaalakumi]]
[[Category:Nkyayak Afrika]]
[[Category:Nkyayak A̱la̱ra̱ba]]
[[Category:Nyám]]
itgmfbn833m33omwagktsjxv3cr7q0f
A̱la̱n vab
0
197
2076
2075
2022-05-16T12:46:09Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[A̱la̱n vap]]
ia09454gh752aihyxtkotmh71xz26rk
A̱la̱n vap
0
198
12621
2092
2022-05-22T08:19:59Z
Amire80
6
wikitext
text/x-wiki
'''A̱la̱n vap''' ka (á̱kpa: '''li̱la̱n vap''' ''hu'') a̱ ni̱ shwai [[vap]] hu ma̱ng [[long]] a̱wot á̱ nyia̱ a̱la̱n ka.
==Ya̱fang==
<references/>
[[en:Pottery]]
q5mibfobanfaaznjxcpttgopfql9skz
A̱li
0
199
14198
13104
2022-06-13T10:05:55Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
Swang a̱lyiat '''a̱li''' ji bye fa:
# [[Tswa a̱li]]
# [[A̱li (nok)]]
# [[A̱ma̱nta a̱li]]
# [[A̱kunkwa-a̱li]]
[[Sa:Ngwat nghai swáng a̱lyiat]]
bl91rrkgvbple3pbqd6gwavnugoegh2
A̱li (nok)
0
200
12609
12146
2022-05-22T05:32:30Z
Minorax
31
fix lint
wikitext
text/x-wiki
[[Fail:248 Ashley Ave - 2017.jpg|thumb|A̱li nkwon, Charleston, South Carolina, [[A̱yaasi̱tet Muná̱pyia̱]]]]
[[Fail:Casa Assan 1.jpg|thumb|A̱li ''Casa Assan'']]
'''A̱li''' ''ka'' (á̱kpa: '''a̱ka̱sa''' ''na'') yet nok hwa nang á̱ swan mami a̱ni. Ku bye vwuon kyiak neet a̱di̱dat nok nang suswak a̱ni ba̱ng si̱ nat a̱gba̱ndang nok nang nok a̱ka̱sham nkwon, nfang, ntong nok, ku si̱ hu á̱ kyiak nkyang jhyang nok a̱ni, a̱wot á̱ si̱ ka mbeang nkyang ma̱ a̱di̱di̱t mi̱ nok hu nang nkyang sa̱tyim (long a̱gwomna̱ti), a̱yaapaip a̱sa̱khwot, ma̱ng nkyang shwai/shi̱ri̱m wun meang.<ref name=schoenauer>Schoenauer, Norbert (2000). ''6,000 Years of Housing'' (rev. ed.) (New York: W.W. Norton & Company).</ref>
==Bu nwuan==
* [[A̱li]]
==Ya̱fang==
<references/>
rvf7fchfwsdy98c1o1tj9t4p74vnxiu
A̱lisaaikurum
0
201
15337
15336
2022-07-27T06:40:40Z
Kambai Akau
15
wikitext
text/x-wiki
{{Databox}}
[[Fail:Central Bank of Nigeria.jpg|197px|right|thumb|[[A̱gba̱ndang A̱lisaaikurum Naijeriya]]]]
'''A̱lisaaikurum''' ka (á̱kpa: '''a̱ka̱sasaaikurum''' ''na'') yet tyan nang á̱ nsak kurum, ta̱m ma̱ng kurum á̱ nkhwap kurum.
==Fang a̱zanson==
* Born, Karl Erich. ''International Banking in the 19th and 20th Centuries'' (St Martin's, 1983) [https://archive.org/details/internationalban0000born a̱zalang] (di̱n Shong)
==A̱ka̱fwuop nta==
* [https://www.theguardian.com/news/datablog/2009/mar/25/banking-g20 Guardian Datablog – World's Biggest Banks] (di̱n Shong)
* [https://web.archive.org/web/20120111132200/http://ucblibraries.colorado.edu/govpubs/us/banking.htm Banking, Banks, and Credit Unions] neet di̱ ''UCB Libraries GovPubs'' (di̱n Shong)
* ''[http://www.occ.gov/static/publications/nbguide.pdf A Guide to the National Banking System]'' (PDF). Office of the Comptroller of the Currency (OCC), Washington, D.C. Provides an overview of the national banking system of the US, its regulation, and the OCC. (di̱n Shong)
[[Category:A̱ka̱sasaaikurum| ]]
[[Category:Saaikurum| ]]
[[Category:Nkhang tung nzwa Italiya]]
9q9ch9vuhbzgbccsxhikmd9zqvneksi
A̱li̱beniya
0
202
14199
13301
2022-06-13T10:06:00Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
{{Country
|name = Ri̱pobi̱lik A̱li̱beniya<br>''Republika e Shqipërisë''
|flag = Flag of Albania.svg
|coa = Coat of arms of Albania.svg
|image = Location_Albania_Europe.png
|capital = Tirana
|area = 1 110,03
|population = 557 422
|year = 2011
}}
A̱byin '''A̱li̱beniya''' ku '''Shi̱kyiperiya''' (Shong: Albania /ælˈbeɪniə/, /ɔːl-/; Shi̱kyip: Shqipëri ku Shqipëria), /ʃcipəˈɾi(a)/; Shqipni ku Shqipnia, a mbeang Shqypni ku Shqypnia.<ref>Giacomo Jungg (1 Zwat Jhyiung 1895). "[https://archive.org/details/fialuurivoghels00junggoog Fialuur i voghel scc...p e ltinisct mle...un prei P. Jak Junkut t' Scocniis ...]" (di̱n Shi̱kyip). N'Sckoder t' Scc...pniis.</ref> á̱ lyen di̱ yorong ofisha hu nang '''Ri̱pobi̱lik A̱li̱beniya''' wu a̱ni (Shi̱kyip: Republika e Shqipërisë, /ɾɛpuˈblika ɛ ʃcipəˈɾisə/), yet a̱byin kya di̱ fam a̱byin a̱tak-a̱tyin Yurop. Ka̱ myiai di̱ nkhwong Nkyai A̱sa̱khwot Adriya ma̱ng Yon ni̱nia mami [[Kyai A̱sa̱khwot Meditaroniya]] hu, a̱wot ka̱ si̱ byia̱ a̱gi̱gak a̱byin ma̱ng Montenegro di̱ fam a̱za-jenshyung hu, Kosovo di̱ fam a̱za-a̱tyin hu, A̱za Ma̱kidoniya di̱ fam a̱tyin hu, [[Helat]] di̱ fam a̱tak hu; a mbeang a̱gi̱gak a̱sa̱khwot ma̱ng Helat, Montenegro ma̱ng [[Italiya]] di̱ fam jenshyung hu. Tirana ja si̱ yet a̱keangtung nka ka ma̱ng a̱gba̱ndang a̱keang wu a̱ swak mi̱ shi a̱ni, a̱wot Durrës, Vlorë ma̱ng Shkodër si̱ khwi lilyim.
==Ya̱fang==
<references/>
{{Bibyin Yurop}}
[[Sa:Bibyin_swanta]]
[[Sa:Bibyin_Yurop]]
ix7eothx9gvtsqwuwvnn3wasp7nvi2h
A̱lyem Byoot
0
203
2145
2144
2022-05-16T12:46:11Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[Byoot (a̱lyem)]]
lfhxopo4wgn7hpoo8neqmee8tzzh6yk
A̱lyem Da
0
204
14497
2147
2022-06-13T10:49:13Z
Vargenau
226
Changed redirect target from [[Da (a̱lyem)]] to [[Daa (a̱lyem)]]
wikitext
text/x-wiki
#REDIRECT [[Daa (a̱lyem)]]
oiuyjwcsayxbk771yudh3nxgb897x3c
A̱lyem Jhyo
0
205
14498
2149
2022-06-13T10:49:42Z
Vargenau
226
Changed redirect target from [[Jhyo (a̱lyem)]] to [[Jhyuo (a̱lyem)]]
wikitext
text/x-wiki
#REDIRECT [[Jhyuo (a̱lyem)]]
px0qdd9fbdznnq1om18qfralem0rauf
A̱lyem Kpat
0
206
2151
2150
2022-05-16T12:46:12Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[Kpat (a̱lyem)]]
1a4e4idspto0ae413ud0gfiysaoi7re
A̱lyem Kuut
0
207
2153
2152
2022-05-16T12:46:12Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[Kuut (a̱lyem)]]
ox38fxtx8huozjmeawnicpn8g47ikvg
A̱lyem Sunkurum
0
208
2155
2154
2022-05-16T12:46:12Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[Sunkurum (a̱lyem)]]
t2g8uabpe6q38qbuo5ur2fpdnb0p3c5
A̱lyem Tyap
0
209
2157
2156
2022-05-16T12:46:12Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[Tyap (a̱lyem)]]
4xmdd8tnmgh95z14ud2k5t6qm3hoaky
A̱lyem Tyen
0
210
2159
2158
2022-05-16T12:46:12Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[Tyen (a̱lyem)]]
cjuuma4jf8ky9qyys12v4n0xeoted8o
A̱lyoot
0
211
15274
12684
2022-07-21T22:24:34Z
ZabesBot
156
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
'''A̱lyoot''' ''ka'' (''á̱kpa'': '''lyulyoot''' ''hu'') yet swang a̱lyiat ja nang á̱ yei a̱tyubishyi, nyam, a̱vwuo ku kyang. Á̱ ni̱ nwuak a̱lyoot a̱ nkhap á̱nietbishyi, a̱ka̱vwuo mbeang nkyang ma̱ di̱di̱t. Kídee lyulyoot á̱nietbishyi ja yet: Ma̱rkut, A̱yok, Kuyet, ba̱ng si̱ nat.
==Ya̱fang==
<references/>
g4icejmpul53jfol1k8fpivrmg05ob8
A̱lyoot a̱li
0
212
2184
2183
2022-05-16T12:46:13Z
Jon Harald Søby
8
11 revisions imported
wikitext
text/x-wiki
'''A̱lyoot A̱li''' yet a̱lyoot a̱tyia kya nang a̱niet ba̱ neet a̱mali a̱nyung a̱ni shyim ba̱ ngyei pipyia̱ mba a̱ni. '''A̱lyoot a̱li''' ni̱ biyang di̱ mun a̱pyia a̱li a̱wot ma̱ a̱vwuo ka ba kam a̱ ntyia̱ a̱ni, a̱ lyien mba ma̱ng a̱lyoot a̱nyung.
Ka̱ nman a̱mali na shyiit ba̱ si̱ mang kam, a̱lyoot kikya na̱ mun ba.
162kdpjghk97j8nq7zuxcy2vs6o9oxq
A̱lyoot a̱tyuba̱ng a̱vwuo
0
213
14200
13302
2022-06-13T10:06:05Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
'''Lyulyoot a̱tyuba̱ng a̱vwuo''' yet swáng a̱lyiat ja nang a̱yin maai kyiak gu fa nkyang ku á̱niet nang lyulyoot mba hu nwai nshyia̱ a̱ni, ku á̱ bwung nhu di̱ a̱banjen ka, ku ku nwai yet a̱tsatsak, ku ku yet a̱kang/á̱ nwai lyen nhu mami a̱lyiat na nang á̱ shyia̱ di̱ lyiat a̱ni.
==Ya̱fang==
<references/>
[[Sa:A̱lyoot a̱tyuba̱ng a̱vwuo]]
jvof44gqbeaoznp9a5tdlkb8utfzl1x
A̱manta a̱li
0
214
2193
2192
2022-05-16T12:46:13Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[A̱ma̱nta a̱li]]
apiutk2p5yxlfebt9bwe02xgw05wqvj
A̱ma̱nta
0
215
2202
2201
2022-05-16T12:46:13Z
Jon Harald Søby
8
8 revisions imported
wikitext
text/x-wiki
Swang a̱lyiat '''a̱ma̱nta''' ji bye fa:
# [[A̱ma̱nta a̱li]]
# [[A̱ma̱nta nfwuo]]
# [[A̱ma̱nta (fam)]]
fwk2foskbzd93riywguv0zdkbzhouv7
A̱ma̱nta a̱li
0
216
12150
2214
2022-05-20T15:18:30Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
'''A̱ma̱nta a̱li''' ka (á̱kpa̱: '''a̱ka̱ma̱nta a̱ka̱sa''' ''na'') yet a̱vuo kya ma̱ a̱li ka ka̱ shyia̱ di̱ za̱gaat ka a̱ni. A̱bawat ka nang á̱ bwat a̱ma̱nta nok á̱ nshyung a̱bankyang, kwi nkyang, ku á̱ cyui a̱bakikyo weang kyayak (ku kwon) a̱ni, a̱bawat kikya á̱ ngyei a̱ma̱nta a̱li.
==Ya̱fang==
<references/>
7v0ak4q86nhauadakqf35akby4xwd0e
A̱ma̱sa̱laci
0
217
2223
2222
2022-05-16T12:46:14Z
Jon Harald Søby
8
8 revisions imported
wikitext
text/x-wiki
#REDIRECT [[A̱vwuokpaa̱pyia̱]]
el54odk8lkboe73s94dq4fk6fq73sx1
A̱meap
0
218
12151
2235
2022-05-20T15:18:40Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
[[Fail:Thryonomys swinderianus1.jpeg|thumb|Ghwughwu a̱meap]]
[[Fail:Thryonomys swinderianus range map.png|thumb|A̱ka̱vwuo nang a̱meap nshyia̱ a̱ni]]
'''A̱yaameap''' (a̱nyiung: '''a̱meap''' ''wu'') neet di̱n kwai á̱ ngyei ''Sciuridae'' ja a̱ni. Ba̱ shyia̱ di̱n kwai a̱cyuang nyám ba̱ li nang cyuí a̱ni.
==Ya̱fang==
<references/>
99xvwqwhr9aois7ydvt8lwysau4gdq3
A̱mpwot
0
219
12152
2243
2022-05-20T15:18:50Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
'''A̱mpwot''' yet a̱didai a̱gumaat ha na̱ng a̱ bang di̱n bwak a̱ nsaai a̱cuang kyang a̱ nnat a̱vuo.
==Ya̱fang==
<references/>
mulx2h9h4achj6zd6rscb6h6yz2i1pi
A̱mumu
0
220
12153
2261
2022-05-20T15:19:00Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
'''A̱mumu''' yet a̱cuwang nyám bya ba̱ neet di̱n kwai '''Coleoptera''' ma̱ng '''Endopterygota'''.
==Ya̱fang==
<references/>
1vr3ihidjy1s59bj2ayb2courz4w70e
A̱murum
0
221
12154
2273
2022-05-20T15:19:10Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
[[Fail:Hyaenidae_Diversity.jpg|thumb|Nghwughwu a̱ka̱murum]]
'''A̱murum''' (á̱kpa: a̱ka̱murum) yet nyam a̱yit ja ji̱ yaan nam nyám a̱yit njhyang ma̱ng nkyangzwa a̱ni. A̱murum yet nyam jhyung ja mi̱ nyám ji̱ byia̱ ncat vam ma̱ng a̱bi̱baan nwuai mman a̱fai ma̱nang á̱nietbishyi a̱ni.
==Ya̱fang==
<references/>
jmu7zjgitinkxpumbc5cqcksqwoq4xx
A̱nak
0
222
12155
2281
2022-05-20T15:19:20Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
'''A̱nak''' yet tywei ndang a̱ghyi mat a̱dam a̱ghyang ku fwuong a̱khwu.
==Ya̱fang==
<references/>
g5xuuw24k47orpb1h2db3esbb5mpoka
A̱nan
0
223
12156
2308
2022-05-20T15:19:30Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
[[Fail:Primary and secondary cotton roots.jpg|thumb|A̱ni̱nan a̱son ma̱ng a̱feang ma̱ a̱tyin a̱ga̱fi̱p a̱lulo]]
[[Fail:Profile of an adult Araucaria heterophylla with its roots system, Auckland-New Zealand, hand drawing Axel Aucouturier.jpg|thumb|352x352px|A̱ni̱nan ma̱ng si̱sa a̱gba̱ndang a̱tyin ''Araucaria heterophylla'']]
'''A̱nan''' ka (a̱nyiung: '''a̱ni̱nan''' ''ba'') yet kap a̱tyin kyang hwa (nang a̱tyin a̱ga̱fi̱p a̱ni). A̱nan kya ba̱ng a̱tyin kyang sa njhyet a̱tyin a̱kya nkyayak.
Mi̱ á̱ga̱fi̱p ba̱ byia̱ á̱ci̱ci̱p tsot a̱sok a̱ni, a̱ni̱nan ba, bibya yet kap a̱tyin a̱ga̱fi̱p ku beang nka di̱ nwaai a̱sa̱khwot ma̱ng nkyang nok vam nwuo ma̱ng vam a̱tyin a̱ga̱fi̱p hu, a̱wot si̱ a̱hwa ni̱ beang a̱tyin a̱ga̱fi̱p ka ka̱ laai shi a̱nggang. Si̱ a̱hwa si̱ fa nyia̱ a̱nan kya saai nkyayak ma̱ng a̱sa̱khwot neet a̱byin a̱ jhyet á̱kum a̱tyin yak ku si̱ a̱kwon.
==Ya̱fang==
<references/>
69t48d25ja5emg2wm9vgwmsdu8p5i39
A̱na̱mbwon
0
224
15275
12668
2022-07-21T22:24:44Z
ZabesBot
156
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
[[File:British woman tending to a baby.jpg|thumb|A̱byii̱k Bi̱ri̱ti̱n a̱ghyang a̱ nyia̱ na̱mbwon a̱banggwon]]
[[File:Patient receives chemotherapy.jpg|thumb|A̱na̱mbwon a̱ghyang ma̱ng a̱tyunzwan]]
'''A̱na̱mbwon''' wu (á̱kpa: '''á̱na̱mbwon''' ''ba'') yet a̱tyu a̱ ni̱ beang ma̱ng ba̱ng á̱nietnzwan ku ba̱ng mman na̱ nwaai wa a̱ni.
==Ya̱fang==
<references/>
nd64miiybeg22o9oncxckcygwxr5ola
A̱nfwuong-swup
0
225
13162
13161
2022-05-30T20:42:09Z
Kambai Akau
15
wikitext
text/x-wiki
[[File:RougeoleDP.jpg|thumb|Nggwon ka̱ nyia̱ ma̱ng a̱nfwuong-swup a̱ni]]
'''A̱nfwuong-swup''' ''na'' yet zwan ja ji̱ kwa̱i (mman nyia̱ nswak) á̱niet a̱ni di̱-njen-di̱-njen, ka̱ ji̱ kwa a̱yin ji̱ cong a̱nfwuong mbeang nkyangtang na̱ kai vam hu a̱mgba̱m. A̱nfwuong-swup yet a̱byia̱byia̱ zwan wa, ka̱ a̱ kwa a̱tyonyiung, a̱ doot a̱ kwa a̱keang a̱ kaat. Á̱ cyui a̱yaanyura fi̱n zwan ji a̱ka̱nyiung ma̱ng swuan a̱tyubishyi.
==Ya̱fang==
<references/>
orhu6w1n87ool43kordztk9rrcu6cxb
A̱ngam A̱sa̱khwot Aden
0
226
14201
13303
2022-06-13T10:06:11Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
[[Fail:Gulf_of_Aden_map.png|thumb|Ta̱si̱la A̱ngam A̱sa̱khwot Aden]]
'''A̱ngam A̱sa̱khwot Aden''' wu (La̱ra̱ba: خليج عدن, Somali: Gacanka Cadmeed 𐒅𐒖𐒐𐒕𐒌 𐒋𐒖𐒆𐒗𐒒) á̱ ka ndyen nang A̱ngam A̱sa̱khwot Berbera a̱ni yet a̱ngam a̱sa̱khwot shi tsuung wa tsi̱tsak a̱byin Yemen di̱ fam a̱za hu, Kyai A̱sa̱khwot A̱rabiya di̱ fam a̱tyin hu, Jibuti di̱ fam jenshyung hu, ma̱ng Guardafui Channel hu, Sokotra (Yemen), a mbeang Somalilan di̱ fam a̱tak hu. Di̱ fam a̱za-jenshyung hu, a̱ fwuop [[A̱shong Kyai A̱sa̱khwot]] wu di̱n vak a̱na̱nwuai a̱sa̱khwot Bab-el-Mandeb ka, ma̱ng Kyai A̱sa̱khwot A̱rabiya hu di̱ fam a̱tyin hu. Di̱ fam jenshyung hu, a̱ ngam a̱ si̱ nwuo A̱ngam A̱sa̱khwot Tadjoura wu ma̱ a̱byin Jibuti.
==Ya̱fang==
<references/>
[[Sa:Nvam_a̱sa̱khwot_swanta]]
[[Sa:A̱yaangam_A̱sa̱khwot_swanta]]
h5nhejvffb1127bpmka1dc49qy3gzuw
A̱ngam A̱sa̱khwot A̱ka̱ba
0
227
14202
13304
2022-06-13T10:06:16Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
[[Fail:Gulf of Suez map.jpg|thumb|[[Li̱m-a̱byin Si̱nai]] hu a mbeang A̱ngam A̱sa̱khwot A̱ka̱ba wu di̱ fam a̱tyin hu ma̱ng [[A̱ngam A̱sa̱khwot Swez]] wu di̱ fam jenshyung hu.]]
'''A̱ngam A̱sa̱khwot A̱ka̱ba''' wu (La̱ra̱ba: خَلِيجُ ٱلْعَقَبَةِ, ''Khalīj al-ʿAqabah''; Shong: Gulf of Aqaba) ku A̱ngam A̱sa̱khwot Eilat (A̱biru: מפרץ אילת, ''Mifrátz Eilát'') yet a̱mgbii a̱ngam a̱sa̱khwot wa da̱ a̱nu fam a̱za [[A̱shong Kyai A̱sa̱khwot]] ka, di̱ fam a̱tyin [[Li̱m-a̱byin Si̱nai]] hu ma̱ng fam jenshyung Li̱m-a̱byin A̱rabiya hu. Á̱ ka̱u lang khwong kyai a̱sa̱khwot hu tsi̱tsak bibyin naai hwa: [[Ma̱sa̱r]], [[Isi̱rela]], [[Urdun]], ma̱ng [[Sa̱udi A̱rabiya]].
==Ta̱fang==
<references/>
[[Sa:Nvam_a̱sa̱khwot_swanta]]
[[Sa:A̱yaangam_A̱sa̱khwot_swanta]]
2648roj8a3y9nsp96zwmm8aemgnsydh
A̱ngam A̱sa̱khwot Bini
0
228
14203
13305
2022-06-13T10:06:21Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
'''A̱ngam A̱sa̱khwot Bini''' wu (Shong: ''Bight of Benin'' ku ''Bay of Benin'') yet a̱ngam a̱sa̱khwot hwa di̱ fam [[A̱ngam A̱sa̱khwot Gini]] hu di̱ khwong fam jenshyung Afrika hu. Bibyin hu ku shyia̱ di̱ kham nggu hwa yet bibyin [[Naijeriya]], [[Bini (a̱byin)|Bini]], [[Togo]], ma̱ng [[Gana]].
[[Fail:Gulf of Guinea (English).jpg|thumb|Ta̱si̱la A̱ngam A̱sa̱khwot Gini ji̱ tyai A̱ngam A̱sa̱khwot Bini wu]]
==Ya̱fang==
[[Sa:Nvam_a̱sa̱khwot_swanta]]
[[Sa:A̱yaangam_A̱sa̱khwot_swanta]]
e5nd763vp1az07upmv4q3pbpbwvxnti
A̱ngam A̱sa̱khwot Boni
0
229
2361
2360
2022-05-16T12:46:19Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[A̱ngam A̱sa̱khwot Byafra]]
17f2a9z5uyxuimhliz8chd6a2nm2r6x
A̱ngam A̱sa̱khwot Byafra
0
230
15290
15289
2022-07-24T08:10:33Z
Kambai Akau
15
wikitext
text/x-wiki
{{Databox}}
'''A̱ngam A̱sa̱khwot Byafra''' wu ([[Shong (a̱lyem)|Shong]]: ''Bight of Biafra''), á̱ ngyei '''A̱ngam A̱sa̱khwot Boni''' (Shong: Bight of Bonny) ma̱ a̱byin Naijeriya, yet a̱ngam a̱sa̱khwot wa ka̱nang á̱ ghwon khwong fam-a̱byin [[Afrika Jenshyung]] hu a̱ni, da̱ a̱beam [[A̱ngam A̱sa̱khwot Gini]] a̱ lan shyia̱ di̱ fam a̱tyin hu a̱ swak a̱ni. Bibyin hu ku shyia̱ di̱ kham nggu hwa yet bibyin [[Naijeriya]], [[Kemerun]], Gini A̱kwa̱toriya, ma̱ng Gabon.
[[Fail:Gulf of Guinea (English).jpg|thumb|Ta̱si̱la A̱ngam A̱sa̱khwot Gini ji̱ tyai A̱ngam A̱sa̱khwot Byafra wu]]
==Ya̱fang==
[[Sa:Nvam_a̱sa̱khwot_swanta]]
[[Sa:A̱yaangam_A̱sa̱khwot_swanta]]
9foflzz4u7825htybgsco9em119rxo7
A̱ngam A̱sa̱khwot Eilat
0
231
2371
2370
2022-05-16T12:46:19Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#Redirect [[A̱ngam A̱sa̱khwot A̱ka̱ba]]
2e7pmnqlcez4iwsdxfoj3ywgwbqm60x
A̱ngam A̱sa̱khwot Gini
0
232
14205
13307
2022-06-13T10:06:51Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
'''A̱ngam A̱sa̱khwot Gini''' wu (Shong: Gulf of Guinea) wa yet kap tropik [[Kyai A̱sa̱khwot Ati̱lantik]] hu ku swak di̱ shyia̱ fam a̱za-a̱tyin a̱ni, kyiak neet Cape Lopez ma̱ a̱byin Gabon, naat di̱ fam a̱za ma̱ng jenshyung Cape Palmas ma̱ a̱byin Laiberiya. Tyan saat A̱kwa̱to ji ma̱ng Prime Meridian (zero degrees latityut ma̱ng longityut) shyia̱ da̱ a̱ngam a̱sa̱khwot wu.
[[Fail:Gulf of Guinea (English).jpg|thumb|Ta̱si̱la A̱ngam A̱sa̱khwot Gini ma̱ng tak ti̱tak bibyin a̱ka̱wa̱tyia̱ a̱sa̱khwot nang lang a̱ka̱fan ndong Kemerun hu bwuo a̱ni]]
Ma̱ a̱ka̱ghyui ma̱ a̱di̱di̱t na̱ koot da̱ A̱ngam A̱sa̱khwot Gini wu a̱ni, á̱ mbyia̱ [[A̱ghyui Nija|Nija]] ma̱ng A̱ghyui Volta ka. Lang khwong kyai a̱sa̱khwot da̱ a̱ngam a̱sa̱khwot wu mbyia̱ [[A̱ngam A̱sa̱khwot Bini]] wu ma̱ng [[A̱ngam A̱sa̱khwot Byafra]] wu.
==Ya̱fang==
[[Sa:Nvam_a̱sa̱khwot_swanta]]
[[Sa:A̱yaangam_A̱sa̱khwot_swanta]]
45sicl2at4mo4vf7r4x4uviejb7lbj6
A̱ngam A̱sa̱khwot Parsi
0
233
14206
13308
2022-06-13T10:06:56Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
[[Fail:Persian Gulf at Night.jpg|thumb|A̱ngam A̱sa̱khwot Parsi ma̱ A̱tyetuk neet di̱ ISS, 2020. Á̱ ku tyai a̱ca̱cet a̱ka̱keang na mi̱ ghwughwu hu.]]
'''A̱ngam A̱sa̱khwot Parsi''' wu (La̱ra̱ba: خلیج فارس, ''Xalij-e Fârs''; a̱di̱di̱r bwan [[Shong (a̱lyem)|Shong]]: Gulf of Fars), yet kyai a̱sa̱khwot Meditaroniya hwa di̱ fam a̱byin Jenshyung A̱siya. A̱ yet bwak Kyai A̱sa̱khwot A̱rabiya (A̱ngam A̱sa̱khwot Oman) huhwa, di̱n vak A̱na̱nwuai A̱sa̱khwot Hormuz ka ka̱ myian tsi̱tsak Iran di̱ fam a̱za-a̱tyin hu ma̱ng Li̱m-a̱byin A̱rabiya hu di̱ fam a̱tak-jenshyung hu.<ref name="unstats.un.org">United Nations Group of Experts on Geographical Names (2012-10-03). "[http://unstats.un.org/unsd/geoinfo/ungegn/docs/23-gegn/wp/gegn23wp61.pdf Working Paper No. 61]" (di̱n Shong). ''23rd Session, Vienna, 28 March – 4 April 2006''.</ref> Delta a̱ghyui Shatt al-Arab ji si̱ bwuo lang khwong a̱sa̱khwot fam a̱za-jenshyung hu.
[[Fail:PersianGulf vue satellite du golfe persique.jpg|thumb|A̱ngam A̱sa̱khwot Parsi wu]]
==Ya̱fang==
<references/>
[[Sa:Nvam_a̱sa̱khwot_swanta]]
[[Sa:A̱yaangam_A̱sa̱khwot_swanta]]
r7m3j4mjdorxvgy53ae878vqp8cyt0v
A̱ngam A̱sa̱khwot Swez
0
234
14207
13309
2022-06-13T10:07:01Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
'''A̱ngam A̱sa̱khwot Swez''' wu (La̱ra̱ba: خليج السويس, ''khalīǧ as-suwais''; á̱ ku ngyei بحر القلزم, ''baḥar al-qulzum'', gbangbang, ku fa ma̱ ca̱caat: "Kyai A̱sa̱khwong Myiai Shonshyon"; Shong: Gulf of Suez) yet a̱ngam a̱sa̱khwot wa di̱ ngaan fam a̱za [[A̱shong Kyai A̱sa̱khwot]] hu, di̱ fam jenshyung [[Li̱m-a̱byin Si̱nai]] hu. [[A̱ngam A̱sa̱khwot A̱ka̱ba]] wu ku lan yet a̱da̱fei a̱ni si̱ shyia̱ di̱ fam a̱tyin Li̱m-a̱byin Si̱nai hu hwa.
==Ya̱fang==
<references/>
[[Sa:Nvam_a̱sa̱khwot_swanta]]
[[Sa:A̱yaangam_A̱sa̱khwot_swanta]]
cgxttrbmmfzjj4z3onfzb103czcyav5
A̱ngi̱ri̱m
0
235
12162
2406
2022-05-20T15:20:30Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
Mi̱ tashikum, '''a̱yaangi̱ri̱m''' ba (a̱nyiung: '''a̱ngi̱ri̱m''' ''wu'') yet a̱ka̱mat nia ma̱ng lili á̱nietbishyi, a̱wot di̱n jen jhyang ba̱ ka ndaai ba̱t ma̱ng shi ma̱ng cet ku kalak ba̱ byia̱ lili nvam ku [[vwuon]] ma̱ng si̱ á̱ghyang á̱niet a̱ni.
==Ya̱fang==
<references/>
7tduzeshdrdjkf0nfvgvkfyyc9p7wv3
A̱ngnurung
0
236
2408
2407
2022-05-16T12:46:20Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[A̱nwurung]]
nra31ws1a9dz3as4pu7fd7u6l2vrw31
A̱ngurung
0
237
2415
2414
2022-05-16T12:46:21Z
Jon Harald Søby
8
6 revisions imported
wikitext
text/x-wiki
'''A̱ngnurung''' yet a̱tankei a̱lyiat nyia na̱ shyia̱ a̱taknfwuo. Ka̱ a̱yin gnurung a̱ lyiat ma̱ng tak nfwuo di̱ byian fwuo.
A̱yin na̱ kwan a̱ khyia̱ byian fwuo ngu hu wa dangson a̱cu gu fwuong sum a̱ni, mat a̱nyia wa gu ngnurung.
==Ya̱fang==
<references/>
puhzv1fkhjcgmz3sas16vl4xhnzkoef
A̱ngyang a̱li
0
238
12163
2429
2022-05-20T15:20:40Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
[[Fail:Eyebrow (A̱ngyang a̱li).jpg|thumb|A̱ngyang a̱li ma̱ng tswa a̱li]]
'''A̱ngyang-a̱li''' vwuong [[a̱sa̱khwot]] nwuai [[Tswa a̱li|a̱ghyi]] ba.
==Ya̱fang==
<references/>
mewf95up9cd6csnvc7dvovfpz4l1rxm
A̱niak
0
239
12164
2438
2022-05-20T15:20:50Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
[[Fail:Baemsagol MS3812.JPG|upright|thumb|A̱niak Baemsagol a̱si̱ Jirisan, Kworiya]]
'''A̱niak''' yet a̱byin kya ka̱ cyok tatak a̱ni di̱n jen ma̱ a̱di̱di̱t, tsi̱tsak tsutsok ku a̱ka̱fan, a̱wot ka̱ mun byia̱ [[a̱ghyui]] ku cen ku tyong neet di̱ fam ngaan nyiung naat fam ngaan ghyang hu.
==Ya̱fang==
<references/>
gutuvc9ja2n6kx4pl1c30rdyuntp94y
A̱nietmbyin
0
240
12165
2451
2022-05-20T15:21:00Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
[[Fail:Madagascar woman with child.jpg|thumb|right|230px|A̱yang a̱ghyang ma̱ng nggwon nggu ka.]]
'''A̱nietmbyin''' wu (á̱kpa: '''á̱nietmbyin''' ''ba'') yet a̱tyu wu a ba̱ng [[nggwon]] mi̱ sotbishyi nggu ji a̱ni. Mi̱ sot á̱nietbishyi ji, a̱nietmbyin wa yet a̱tyu a̱ ba̱ng nggwon (a̱ji wu, swang a̱lyiat "nggwon" ji fa a̱tyu nang a̱yin byin ku tyia̱ a̱ni a̱si̱ kuzang a̱lyia̱ a̱wa).
==Ya̱fang==
<references/>
stdo1lixz8w728ui52aa7kd5p8acrls
A̱ni̱nan
0
241
2454
2453
2022-05-16T12:46:22Z
Jon Harald Søby
8
2 revisions imported
wikitext
text/x-wiki
#REDIRECT [[A̱nan]]
44ntwv4q5dkc23ern62ibt7895k1jf4
A̱ntati̱ka
0
242
15264
14208
2022-07-21T06:39:40Z
Gwanki
276
wikitext
text/x-wiki
{{databox}}
A̱byin '''A̱ntati̱ka''' (Shong: Antarctica /ænˈtɑːrtᵻkə/ ku /ænˈtɑːrktᵻkə/) kya yet vam-a̱byin swanta ku swak nshyia̱ fam a̱tak nhu hu a̱ni. Kikya ba̱ng Tsuung A̱tak swanta ji, ka̱ si̱ shyia̱ di̱ fam Á̱kum A̰la̱u A̱tak A̱ntati̱ka hu, Kyai A̱sa̱khwot A̱tak hu si̱ keang kpa̱mkpaan a̱mgba̱m fam a̱tak A̱kat A̱ntati̱ka wu. Ma̱ng shi kyai a̱byin kilomita a̱ma̱ntanaai 14,200,000 (met a̱ma̱ntanaai 5,500,000), kikya yet vam-a̱byin fwuon hu ku swak mi̱ shi a̱ni ka̱ si̱ yet a̱ka̱feang shi vam-a̱byin A̱strelya. Kikya ka yet, ma̱ zan, vam-a̱byin nang á̱niet nwai nshyia̱ ba̱t a̱ni, ma̱ng kpa̱mkpaan á̱niet 5,000 di̱n jen a̱kwa̰i ma̱ng kpa̱mkpaan á̱niet 1,000 di̱n jen a̱won. Kpa̱mkpaan ma̱ng 98% A̱ntati̱ka shyia̱ a̰ta̱fa taan ku shyia̱ tyan a̱ka̱wa̱tyia̱ kilomita 1.9 (met 1.2; a̱ti̱tak 6,200) mi̱ shi tsuung, zang hwa si̱ ngaat ku si̱ teak ma̱ a̱mgba̱m A̱khwot Á̱ni̱niak McMurdo wu ma̱ng fam a̱za Li̱m-a̱byin A̱ntati̱ka hu di̱ tityak.<ref name="Cain">Cain, Fraser (12 Zwat A̱taa 2008). "[https://www.universetoday.com/15031/driest-place-on-earth/ What is the Driest Place on Earth?]" (di̱n Shong). Universe Today.</ref>
[[Fail:Antarctica (orthographic projection).svg |thumb|Ta̱si̱la vam-a̱byin A̱ntati̱ka]]
==Ta̱si̱la==
[[Sa:Nvam-a̱byin_swanta]]
60hx3u69c4ppd0wn9998maf04mrjky1
A̱nwuat
0
243
2468
2467
2022-05-16T12:46:23Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[A̱nwuat a̱tyubishyi]]
1doskcg2ncxcpnouflkpza1n2fqm57e
A̱nwuat (a̱bwomtsot)
0
244
14209
13311
2022-06-13T10:07:11Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
Mi̱ tyorit a̱bwomtsot, '''a̱nwuat''' ka yet sot cong ci̱cong a̱nwuat ja, ka̱ yet kuntyin lyuut a̱bwomtsot gbangbang, a̱bwomtsot maat mi̱ maat A̱shong, ma̱ng a̱bwomtsot pop A̱shong ka.
==Ya̱fang==
<references/>
[[Sa:A̱nwuat]]
1t50sxflj74doybdten4mk3gmmfy6sq
A̱nwuat a̱tyubishyi
0
245
15227
15225
2022-07-19T05:34:57Z
Kambai Akau
15
wikitext
text/x-wiki
{{Databox|item=Q7390}}
[[Fail:Human voice spectrogram.jpg|thumb|300px|Ghwang ku tyai si̱sak nang a̱nwuat a̱tyubishyi ka nfa̱k a̱ni ma̱ng cong ca̱caat zwa nkyangmami nka]]
'''A̱nwuat''' ka (''á̱kpa'': '''Nwunwuat''' ''hu'') yet kun hwa ku ghwut neet a̱bwonu a̱tyubishyi a̱ni di̱n jen ntywei, mai, bwom ku lyiat.
[[Category:A̱nwuat a̱tyubishyi]]
naedpox570k0egdfhityn8f61czewos
A̱nwuat ka
0
246
2492
2491
2022-05-16T12:46:24Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[A̱nwuat (a̱bwomtsot)]]
hasz803v7pzifkx9vis4sqtln8z9x3t
A̱nwurung
0
247
2502
2501
2022-05-16T12:46:24Z
Jon Harald Søby
8
9 revisions imported
wikitext
text/x-wiki
'''A̱ngnurung''' yet a̱tankei a̱lyiat nyia na̱ shyia̱ a̱taknfwuo.Ka̱ a̱yin gnurung a̱ lyiat ma̱ng tak nfwuo di̱ byian fwuo.
A̱yin na̱ kwan a̱ khyia̱ byian fwuo ngu hu wa dangson a̱cu gu fwuong sum a̱ni,mat a̱nyia wa gu ngnurung.
==Ya̱fang==
<references/>
qi6y2f7bde77aqf0jymsy6dw6bnmunr
A̱nya̱nyiat a̱da̱ngka̱li
0
248
12168
2522
2022-05-20T15:21:30Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
[[Fail:Ipomoea batatas 006.JPG|thumb|Sum a̱nya̱nyiat a̱da̱ngka̱li]]
'''A̱nya̱nyiat a̱da̱ngka̱li''' (''Ipomoea batatas'', á̱ghyang á̱niet nyia̱ a̱tsak swang a̱lyiat Tyap wu wa yet '''a̱runguna''') a̱ li nang [[a̱cyi]] a̱ni.
==Ya̱fang==
<references/>
s0t3kaeotttfsdqdu81kg2o3aq417zs
A̱nyeang
0
249
2536
2535
2022-05-16T12:46:25Z
Jon Harald Søby
8
13 revisions imported
wikitext
text/x-wiki
'''Anyiang''' yet abyiik a̱ nyiang a̱fai a̱yin a̱ni.
Ka̱ a̱fai a̱yin bwuo a̱byiik, a̱byiik wu yet a̱nyiang a ma̱ng a̱nietbyin a̱tyiok ngu ba.
''Á̱kpa'': '''A̱yaanyiang''' - Ka̱ a̱nietbyin byia nman (á̱fai) ba̱ byia̱ á̱nyuuk a̱ni, á̱nyuuk ba yet '''A̱yaanyiang''' a̱nietbyin mbyibya.
==Ya̱fang==
<references/>
9xtdcw91blx9ixa6sguk34atpu3nzuu
A̱nyiang
0
250
2538
2537
2022-05-16T12:46:25Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[A̱nyeang]]
ta18t1xf0eec1cbu0cxoxuv7scnzv6v
A̱nyung
0
251
15235
15234
2022-07-19T05:59:22Z
Kambai Akau
15
wikitext
text/x-wiki
{{Databox|item=Q553}}
[[Fail:Close up - chimpanzee teeth.png|thumb|right|200px|A̱gba̱ndang zeam a̱ tyai a̱nyunyung nggu ba]]
'''A̱nyung''' ka (á̱kpa: '''a̱nyunyung''' ''ba'') yet kap vam hwa ku shyia̱ ma̱ a̱nu a̱ni. A̱nyung kya ka̱ á̱ doot á̱ mmap kyang. A̱nyunyung bibya á̱ ngya nkyayak na. A̱nyunyung nyám yet mba di̱ sam nkyayak na̱ shyit a̱ni.
[[Category:Vam nyam]]
[[Category:A̱nyunyung]]
phchy2berk4f1olvyql73f809j1fhzj
A̱paiwan
0
252
14210
13312
2022-06-13T10:07:16Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
[[Fail:09.16 「第四屆國家文化資產保存獎」頒獎典禮,由「排灣原音」表演節目開場 (36417324374).jpg|thumb|A̱tyopaiwan a̱ tsot zunzwu zwua̱i nang á̱ nyia̱ ma̱ng a̱shya̱ a̱ni.]]
'''A̱paiwan''' ba (Caina: 排灣族, Paiwan: Páiwānzú) yet a̱ka̱ka̱rak á̱niet [[Taiwan]] a̱ghyang bya. Ba̱ lyiat ma̱ng a̱lyem nang á̱ ka ngyei [[Paiwan (a̱lyem)|Paiwan]] a̱ni. Ma̱ a̱lyia̱ 2014, shi A̱paiwan hu yet 96,334 hwa. Si̱ huni si̱ shyia̱ kpa̱mkpaan ma̱ng 17.8% a̱mgba̱m shi á̱niet a̱byin Taiwan hu, ba̱ si̱ yet nwap a̱feang ji̱ swak ma̱ng shi á̱niet mami Taiwan.<ref>Hsieh, Chia-chen; Wu, Jeffrey (Zwat Sweang 15, 2015). [http://focustaiwan.tw/news/asoc/201502150011.aspx Amis Remains Taiwan's Biggest Aboriginal Tribe at 37.1% of Total] (di̱n Shong). Focus Taiwan News Channel. ''Central News Agency''.</ref><ref>[https://web.archive.org/web/20070312073402/http://eng.stat.gov.tw/public/Data/511114261371.rtf Table 28: Indigenous Population Distribution in Taiwan-Fukien Area] (di̱n Shong). Preliminary Statistical Analysis Report of 2000 Population and Housing Census. ''National Statistics, Republic of China (Taiwan)'' (RTF).</ref>
==Ya̱fang==
<references/>
[[Sa:A̱paiwan| ]]
[[Sa:A̱kat a̱pyia̱]]
kiojphlltvpnydfyzotyjr501h5qgwy
A̱pashi̱tun
0
253
15268
14211
2022-07-21T09:06:10Z
Gwanki
276
wikitext
text/x-wiki
{{databox}}
'''A̱pashi̱tun''' ba ([[Pashi̱to]]: پښتانه, ''Pəx̌tānə́'';<ref>David, Anne Boyle (2014-01-01). "[https://www.degruyter.com/view/title/125873 Descriptive Grammar of Pashto and its Dialects]". De Gruyter Mouton. p. 76. ISBN 978-1-61451-231-8.</ref> ku '''A̱patan''' (neet Hindi: पठान, ''Paṭhān'')<ref name="Hindi">James William Spain (1963). "[https://books.google.com/books?id=-8YNAAAAIAAJ&q=pathan+hindi+word The Pathan Borderland]".</ref>, á̱ ku lyen neet di̱n jen gbangbang nang A̱fgan ba a̱ni, yet nwap [[Iran]] ja ku neet A̱ka̱wa̱tyia̱ ma̱ng A̱tak [[A̱siya]].
[[Fail:Tribal and religious leaders in southern Afghanistan.jpg|thumb|Á̱tyok A̱pashi̱tun ma̱ A̱tak [[A̱fganistan]]]]
==Ya̱fang==
<references/>
== A̱ka̱fwuop nta ==
[[Sa:Nnwap_A̱siya]]
[[Sa:Nnwap_swanta]]
il0cpwtxdx7e8mi02j8nyb493qldpoc
A̱rmeniya
0
254
14212
13314
2022-06-13T10:07:26Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
{| class="wikitable" align=right border width="200" colspan="2"
|-
|| '''Ri̱pobi̱lik A̱rmeniya'''<br>Հայաստանի Հանրապետություն ''Hayastani Hanrapetut'yun'' (A̱rmeniya)
|-
| colspan="2" align=center|[[Fail:Armenia (orthographic projection).svg|300px|center]] <sub>Ta̱si̱la a̱byin A̱rmeniya</sub>
|-
|align=center| [[Fail:Flag of Armenia.svg|250px|Tyiangshi a̱byin A̱rmeniya]]
|-
|align=center| [[Fail:Coat of arms of Armenia.svg|200px|A̱lama a̱byin A̱rmeniya]]
|}
A̱byin '''A̱rmeniya''' (A̱rmeniya: Հայաստան ''Hayastan'' /hɑjɑsˈtɑn/; [[Shong (a̱lyem)|Shong]]: Armenia /ɑrˈmiːniə/;<ref>"[http://dictionary.reference.com/browse/armenia?s=t Armenia]" (di̱n Shong). Dictionary.com Unabridged. 10 Zwat Swak ma̱ng Sweang 2015.</ref>), á̱ lyen da̱ a̰lyoot a̱gwomna̱ti ka nang '''Ri̱pobi̱lik A̱rmeniya''' wu (A̱rmeniya: Հայաստանի Հանրապետություն, ''Hayastani Hanrapetut'yun'' /hɑjɑstɑˈni hɑnɾɑpɛtutʰˈjun/; Shong: Republic of Armenia), yet a̱byin kya nang bibyin ghyáng keang di̱ tityak a̱ni di̱ Bibyin-a̱za A̱rmeniya hu di̱ fam a̱byin Jenshyung A̱siya hu. [[Muná̱pyia̱ Bibyin Swanta|MBS]] hu<ref name="classification of world regions">" [http://unstats.un.org/unsd/methods/m49/m49regin.htm The UN classification of world regions] (di̱n Shong)". 25 Zwat A̱taa 2002.</ref> ku tyia̱ a̱byin A̱rmeniya di̱ fam a̱byin Jenshyung A̱siya; CIA hu<ref>"[https://www.cia.gov/the-world-factbook/countries/armenia/ Armenia]" (di̱n Shong). The World Factbook. CIA.</ref> ma̱ng ''Oxford Reference Online'' <ref>"[https://archive.org/details/worldencyclopedi00oxfo Oxford Reference]" (di̱n Shong). Oxford Reference Online. ISBN: 9780199546091. 2004.</ref> si̱ ka ntyia̱ a̱byin A̱rmeniya mi̱ [[A̱siya]]. Ka̱ yet kap fam a̱byin Ka̱ukasut hu hwa; a̱wot ka̱ si̱ byia̱ a̱gi̱gak ma̱ng [[Turkiya]] di̱ fam jenshyung hu, Jiyojiya di̱ fam a̱za hu, Lachin corridor hu tafa a̱khwot á̱kwop go swat nyinyang Roshiya wu,<ref>2020 Nagorno-Karabakh ceasefire agreement, article 6 of which provides that the Lachin corridor “shall remain under the control of the peacekeeping contingent of the Russian Federation” (di̱n Shong)</ref> ma̱ng A̱zerbaijan di̱ fam a̱tyin hu, ma̱ng Iran a mbeang Azerbaijani exclave si̱ Nakhchivan di̱ fam a̱tak hu.<ref name="Oxford University Press">"[https://archive.org/details/oxfordencycloped0000unse/page/156 The Oxford Encyclopedia of Economic History]" (di̱n Shong). Oxford University Press. p. 156. 2003. ISBN: 978-0-19-510507-0.</ref> A̱keang Yerevan kya yet a̱keangtung ma̱ng a̱gba̱ndang a̱keang nka wu a̱ swak ma̱ng shi a̱ni.
==Ta̱fang==
<references/> ̄
[[Sa:Bibyin_swanta]] ̄
[[Sa:Bibyin_A̱siya]] ̄
[[Sa:Bibyin_Jenshyung_A̱siya]] ̄
4rtkxhnf07t2gczckub1l6rl083vzfd
A̱sa̱khwot
0
255
12173
2611
2022-05-20T15:22:20Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
[[Fail:Water_drop_001.jpg|thumb|Ta a̱jojot a̱sa̱khwot]]
[[Fail:Ice Block, Canal Park, Duluth (32752478892).jpg|thumb|A̱kpa̱u taan a̱sa̱khwot]]
[[Fail:Monterrey Mexico Clouds.jpg|thumb|Á̱ni̱nian mi̱ kyai tswazwa swanta ba̱ ni̱ bwuak neet di̱ yet lywei si̱ nat a̱jojot a̱sa̱khwot ji̱ va nang za a̱ni]]
'''A̱sa̱khwot''' na (fomula kemikat '''H'''<sub>'''2'''</sub>'''O''') yet a̱ngga kemikat wa a̱ sang swuan, a̱ li ma̱ wowot, á̱ si̱ mi̱n fa̱k di̱ niaat, a̱ nwai swam, a̱ si̱ nyia̱ kpa̱mkpaan sang li, a̱ si̱ yet a̱tsatsak kap nfam a̱sa̱khwot swanta ma̱ng kap a̱jojot nkyang mi̱ nvam a̱mgba̱m nkyang nswuan (mi̱ zang hu hwa a̱ maai byii̱k a̱ kyiai ma̱ng nkyang njhyang a̱ni) a̱ swak ma̱ng shi a̱ni.<ref>[https://www.usgs.gov/special-topic/water-science-school/science/water-qa-why-water-universal-solvent?qt-science_center_objects=0#qt-science_center_objects Water Q&A: Why is water the "universal solvent"?] (di̱n Shong). U.S. Department of the Interior. www.usgs.gov</ref>.
==Ya̱fang==
<references/>
dkst9r8dllb3t2a3qerny8613dihhgk
A̱sham-a̱lyiat
0
256
2613
2612
2022-05-16T12:46:29Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[A̱sham Nkhang]]
535m7cdqp0hxlbmy88scwofnrgutsv3
A̱sham Nkhang
0
257
12174
2622
2022-05-20T15:22:30Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
'''A̱sham Nkhang''' ka (á̱kpa: '''A̱ka̱sham Nkhang''' ''na'') fa:
# Nang san swuan á̱niet neet da̱ khwu nat swuan sang sangba̱p.
# Nang Yesu Kristi na cong ma̱ng a̱sai nfwuo wu a̱ni.
# A̱sham Nkhang a̱naai na̱ tsa A̱fai La̱pa̱nu (A̱li̱ka̱uli) wu a̱ni.
==Ya̱fang==
<references/>
8uwkj481qtc8w9nmj4xs2jmct9o5ejf
A̱shong Kyai A̱sa̱khwot
0
258
14213
13315
2022-06-13T10:07:52Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
'''A̱shong Kyai A̱sa̱khwot''' hu (La̱ra̱ba: البحر الأحمر ''Al Baḥr al aḥmar''; A̱biru: ''Yam Soof'' ים סוף ku ''Hayam Haadom'' הים האדום; Koptik: ⲫⲓⲟⲙ `ⲛϩⲁϩ ''Phiom Enhah'' ku ⲫⲓⲟⲙ ̀ⲛϣⲁⲣⲓ ''Phiom ̀nšari''; Tigrinya: ቀይሕ ባሕሪ ''Qeyih Bahri''; Somali: Badda Cas) yet kyai a̱sa̱khwot ku yet a̱na̱nwuai [[A̱gba̱ndang Kyai A̱sa̱khwot Ndiya]] kikya, a̱ myiai tsi̱tsak [[Afrika]] ma̱ng [[A̱siya]] a̱ni. A̱ myim a̱gba̱ndang kyai a̱sa̱khwot wu di̱ fam a̱tak hu hwa, di̱n vak a̱na̱nwuai a̱sa̱khwot Bab el Mandeb ka ma̱ng [[A̱ngam A̱sa̱khwot Aden]] wu. Di̱ fam a̱za hu si̱ myian [[Li̱m-a̱byin Si̱nai]] hu, [[A̱ngam A̱sa̱khwot A̱ka̱ba]] wu, ma̱ng [[A̱ngam A̱sa̱khwot Swez]] wu (ku cyet naat Ka̱nal Swez ji a̱ni). A̱ shyia̱ a̱tafa Nian A̱shong Kyai A̱sa̱khwot hu ku yet kap A̱gba̱ndang A̱niak A̱ngam wu wa.
[[Fail:Red sea coast, Makadi bay.jpg|thumb|Khwong A̱shong Kyai A̱sa̱khwot hu da̱ a̱beam A̱ngam A̱sa̱khwot Makadi wu]]
[[Fail:Red Sea topographic map-en.jpg|thumb|Ta̱si̱la A̱shong Kyai A̱sa̱khwot]]
==Ya̱fang==
<references/>
[[Sa:Nvam_a̱sa̱khwot_swanta]]
[[Sa:Nkyai_A̱sa̱khwot_swanta]]
93so3jypiri2pn6ok6jtu2n3ucgaiaq
A̱shun
0
259
2646
2645
2022-05-16T12:46:30Z
Jon Harald Søby
8
10 revisions imported
wikitext
text/x-wiki
'''A̱shun''' yet a̱tyiu a̱ bwuo ngwon-a̱nap a̱yin a̱ni. Ka̱ ngwon a̱nap a̱yin nat nyiyang, a̱tyiok wu yet a̱shun a ma̱ng a̱nietbyin ngwon ba.
''Á̱kpa'': A̱yaashun- Ka̱ a̱nietbyin byia̱ á̱nap ba̱ byia̱ á̱tyiok a̱ni, á̱tyiok ba a̱mgbam ba yet a̱yaashun bya.
==Ya̱fang==
<references/>
qpy2ecntzi4gr52t9ixeyu923fhyvvi
A̱siya
0
260
15256
14214
2022-07-21T06:35:53Z
Gwanki
276
wikitext
text/x-wiki
{{databox}}
A̱byin '''A̱siya''' kya yet vam-a̱byin swanta hu ku swak ma̱ng shi kyai a̱byin a mbeang shi á̱niet. Ka̱ shyia̱ Á̱kum-a̱la̱u A̱tyin ma̱ng A̱za kikya ma̱ a̱tsatsak. Ka̱ byia̱ gak vam-a̱byin kyai a̱byin [[Yura̱siya]] nka hu ma̱ng vam-a̱byin [[Yurop]] a̱wot ka̱ si̱ byia̱ á̱si̱ vam-a̱byin kyai a̱byin Afro-Yura̱siya ba ma̱ng Yurop a mbeang [[Afrika]]. A̱byin A̰siya kup shi kyai a̱byin kilomita a̱ma̱ntanaai 44,579,000 (met a̱ma̱ntanaai 17,212,000), kpa̱mkpaan ma̱ng 30% shi kyai a̱byin a̱mgba̱m swanta hu ma̱ng 8.7% a̱mgba̱m shi vam swanta hu. Neet di̱n jen gbangbang, vam-a̱byin A̱siya hu ku yet shi ma̱ng á̱nietbishyi ku si̱ swak kuzang vam-a̱byin swanta, ku si̱ ka ngyet a̱byin tat a̱ghyi a̱son ma̱ a̱di̱di̱t. Á̱niet biliyon 4.5 nka ba (mi̱ di̱ Zwat A̱taa 2019) ku yet kpa̱mkpaan ma̱ng 60% a̱mgba̱m shi á̱niet ta̱cya̱ hu.
[[Fail:Asia (orthographic projection).svg|thumb|Ta̱si̱la vam-a̱byin A̱siya]]
==Ya̱fang==
<references/>
{{Template:Bibyin A̱siya}}
[[Sa:Nvam-a̱byin_swanta]]
jl7vivrcvtusqj3owz2xaw5jyds44ce
A̱si̱tet Benuwe
0
261
2663
2662
2022-05-16T12:46:31Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[Si̱tet Benuwe]]
cpy2gyuoqbvs9dq90qq2e9ymacm05xi
A̱si̱tet Ka̱duna
0
262
2665
2664
2022-05-16T12:46:31Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[Si̱tet Ka̱duna]]
0p5f6xk5c7ejvrptspyoa8tsq3u1u5q
A̱si̱tet Kwara
0
263
2667
2666
2022-05-16T12:46:31Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[Si̱tet Kwara]]
dp91c9na6hqw4h5sp6m9lhchjpuegbw
A̱si̱tet Pi̱lato
0
264
2669
2668
2022-05-16T12:46:31Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[Si̱tet Pi̱lato]]
9sigdscpfzh6tecid2rhok6dqf4d5u8
A̱si̱tet muna̱pyia̱
0
265
2671
2670
2022-05-16T12:46:31Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[Si̱tet muna̱pyia̱]]
q627vqles97lvqxjk67acd2cvvrykwt
A̱si̱tet mundundung
0
266
2673
2672
2022-05-16T12:46:31Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[Si̱tet mundundung]]
bwr6nqqewedsyftesbuo3rlb1n93nh5
A̱si̱tet muná̱pyia̱
0
267
2676
2675
2022-05-16T12:46:32Z
Jon Harald Søby
8
2 revisions imported
wikitext
text/x-wiki
#REDIRECT [[Si̱tet muna̱pyia̱]]
q627vqles97lvqxjk67acd2cvvrykwt
A̱strelya
0
268
14215
13317
2022-06-13T10:08:02Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
{{Country
|name = ''Mundundung A̱strelya''<br><small>Commonwealth of Australia (Shong)</small>
|flag = Flag of Australia (converted).svg
|caption = Tyiang a̱toot shi a̱byin A̱strelya
|coa = Coat of Arms of Australia.svg
|image = Australia with AAT (orthographic projection).svg
|capital = Kambera
|area = 7,692,024
|population = 25,997,700
|year = 2022
}}
'''A̱bwom a̱byin''': "Advance Australia Fair" (''Cat Yaa̱son A̱strelya Ca̱caat'')<div style="display:inline-block;margin-top:0.4em;">[[Fail:U.S. Navy Band, Advance Australia Fair (instrumental).ogg]]</div>
A̱byin '''A̱strelya''' ([[Shong]]: ''Australia''), á̱ lyen ma̱ng a̱lyoot a̱gwomna̱ti ka nang '''Mundundung A̱strelya''' ([[Shong (a̱lyem)|Shong]]: Commonwealth of Australia), yet a̱sa̱t a̱byin wa a̱ byia̱ a̱tsak a̱byin vam-a̱byin [[A̱strelya (vam-a̱byin)|A̱strelya]] hu, a̱byin a̱ka̱wa̱tyia̱ a̱sa̱khwot [[Ta̱smeniya]] ka, ma̱ng a̱cyuang bibyin a̱ka̱wa̱tyia̱ a̱sa̱khwot ma̱ a̱di̱di̱t ghyáng.<ref>"[http://www.comlaw.gov.au/Details/C2005Q00193/0332ed71-e2d9-4451-b6d1-33ec4b570e9f Constitution of Australia]" (di̱n Shong). ComLaw, 9 Zwat A̱natat 1900. ''"It shall be lawful for the Queen, with the advice of the Privy Council, to declare by proclamation that, on and after a day therein appointed, not being later than one year after the passing of this Act, the people of New South Wales, Victoria, South Australia, Queensland, and Tasmania, and also, if Her Majesty is satisfied that the people of Western Australia have agreed thereto, of Western Australia, shall be united in a Federal Commonwealth under the name of the Commonwealth of Australia."''</ref> A̱byin A̱strelya kya yet a̱byin ka ka̱ swak mi̱ shi di̱ fam a̱byin [[Osheniya]] a̱ni a̱wot ka̱ si̱ yet a̱taa mi̱ bibyin swanta ku swak mi̱ shi kyai a̱byin a̱ni. Shi á̱niet a̱byin hu shyia̱ kpa̱mkpaan ma̱ng miliyon 26, a̱wot shi kyai a̱mgba̱m a̱byin hu si̱ yet kilomita a̱ma̱ntanaai 7,617,930 (met a̱ma̱ntanaai 2,941,300),<ref name="Size">"[https://web.archive.org/web/20070324194241/http://www.ga.gov.au/education/facts/dimensions/compare.htm Australia's Size Compared]" (di̱n Shong). Geoscience Australia.</ref> ba̱ swat a̱ca̱cet a̱ka̱keang ma̱ a̱gba̱mgbam ba̱ si̱ nhyat fam kyai a̱sa̱khwot a̱tyin hu ba̱t.<ref>"[http://www.abs.gov.au/ausstats/abs@.nsf/Lookup/by%20Subject/1301.0~2012~Main%20Features~Geographic%20distribution%20of%20the%20population~49 Geographic Distribution of the Population]". 4 Zwat Tswuon 2012.</ref> [[Kambera]] hwa yet a̱keangtung a̱byin ka, a̱wot [[Sidni]] si̱ yet a̱gba̱ndang a̱keang a̱ swak mi̱ shi wu. A̱ca̱cet a̱ka̱keang á̱ghyang nia yet: [[Melbourne]], [[Brisbane]], [[Perth]], [[Adelaide]] ma̱ng [[Newcastle (A̱strelya)|Newcastle]].
==Ya̱fang==
<references/>
{{Template:Bibyin Osheniya}}
[[Sa:Bibyin_swanta]]
[[Sa:Bibyin_Osheniya]]
[[Sa:A̱strelya| ]]
hnj5kd3srt9jrnz6814iiuqqwbhzhi1
A̱strelya (vam-a̱byin)
0
269
14216
13318
2022-06-13T10:08:07Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
[[Fail:Australia-New Guinea (orthographic projection).svg|thumb|Ta̱si̱la vam-a̱byin A̱strelya]]
Di̱n jen jhyang, á̱ ka ngyei vam-a̱byin '''A̱strelya''' hu Sahul (/səˈhuːl/), Australinea, ku Meganesia mat á̱ ghai nhu neet a̱byin [[A̱strelya]] ka ka̱ byia̱ nkyai a̱byin na̱ swan a̱ka̱gba vam-a̱byin A̱strelya wu a̱ni. Á̱ ku bwuo a̱lyoot "Sahul" ka neet a̱si̱ A̱dudu Sahul kikya, ka̱ yet kap a̱dudu vam-a̱byin A̱strelya wu a̱ni. Vam-a̱byin hu byia̱ a̱tsak-a̱byin [[A̱strelya]] wu, Tasmeniya, ma̱ng a̱byin a̱ka̱wa̱tyia̱ a̱sa̱khwot nang á̱ ngyei A̱fai Gini a̱ni. Vam-a̱byin A̱strelya shyia̱ fam-a̱byin Osheniya hwa, a̱wot huhwa si̱ yet si̱ ku swak di̱ yet a̱da̱dei mami nvam-a̱byin taada a̱natat swanta na.
==Ya̱fang==
<references/>
[[Sa:Nvam-a̱byin_swanta]]
r6xblsn89kr7bqw0sw9q5yl1xnq9efy
A̱sunkurum
0
270
14217
13319
2022-06-13T10:08:12Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
'''A̱sunkurum''' ba (á̱ ma ngyei Ikolu, Ikulu, Bekulu) yet á̱niet, a̱nyanyan bya á̱ maai nshyia̱ [[Susot a̱gwomna̱ti mali Naijeriya|Susot A̱gwomna̱ti Mali]] [[Zangon Kataf]], [[Ka̱ciya]] ma̱ng [[Ka̱uru]] á̱si̱ [[A̱si̱tet Ka̱duna|a̱tak]] [[A̱si̱tet Ka̱duna]] a̱si̱ [[Middle Belt]] (A̱ka̱wa̱tyia̱) [[Naijeriya]] ka a̱ni.<ref name=Ba>"[https://www.ethnologue.com/language/ikl Ikulu]". Ethnologue.</ref> Ba̱ lyiat [[Lilyem Pi̱lato|a̱lyem Pi̱lato]] a̱ghyang kya nang á̱ ngyei [[A̱lyem Sunkurum|Sunkurum]] (ke 'Kulu') a̱ni.<ref>"[http://glottolog.org/resource/languoid/id/ikul1238 Glottolog 3.0 -Ikulu]". glottolog.org.</ref> Ba̱ yei a̱byin mba ka ''Akulu'' (a̱byin A̱sunkurum kya ka).
==Khwi==
Á̱kpa á̱niet A̱sunkurum ka á̱ ndyuut á̱ si̱ sak a̱ni nyia̱ ka̱ cong [[Khwi A̱bwoi|khwi taada]] wa si̱ shi tat kpa̱mkpaan ma̱ng 70.0% a̱si̱ a̱mgba̱m á̱niet ba, ma̱nang [[Khwikpaa̱pyia̱|A̱kpaa̱pyia̱]] ba nshi tat 25.0% a̱wot [[Khwikristi|Krista]] ba si̱ nshyia̱ ma̱ng 5.0% a̱si̱ a̱mgba̱m á̱niet ba. Mami Krista ba, Á̱sa̱t ba byia̱ 60.0%, [[Protestant]] ba ma̱ng 25.0% a̱wot [[Roman Catholic]] ba si̱ kyiak 15.0%.<ref>{{Cite web |url=https://joshuaproject.net/people_groups/12204/NI |title=Joshua Project entry on Ikulu in Nigeria}}</ref>
==Kwai-nfwuo-á̱niet==
<ref>{{Cite web |url=https://localgov.kdsg.gov.ng/?page_id=31 |title=Ministry of Local Government Affairs: Composition of the State's Council of Chiefs |access-date=August 8, 2020}}</ref>Á̱ ngyei a̱tyutyok á̱niet A̱sunkurum ba "Agwom" (ku Agom). A̱tyutyok mam a̱fwun hu wa yet [[Yoona Sidi Kuka|A̱tyushityok (A̱ST) Agwom Yoona Sidi Kuka]] (Shong: Yohannah Sidi Kukah), ''Agwom Akulu II''. Agwom Akulu wu wa yet a̱kwak a̱son Komiti Taada Tyok Asunkurum (Akulu, Ikulu) ji, nang a̱keangtung kikya shyia̱ Fadan Ikulu,<ref>{{Cite web |url=http://www.getamap.net/maps/nigeria/kaduna/_fadanikulu/ |title=Fadan Ikulu/Kaduna State |access-date=August 8, 2020}}</ref> mi̱ [[Ka̱murum]].<ref>{{Cite web |url=http://www.maplandia.com/nigeria/kaduna/zangonka/kamaru-ikulu/ |title=Kamaru Ikulu Map - Satellite Images of Kamaru Ikulu |access-date=August 8, 2020}}</ref>
==A̱banka̱u a̱byin==
Á̱ lyen a̱byin á̱niet A̱sunkurum ka nang ''Akulu'' (''[[A̱lyem Tyap|Tyap:]]'' Sunkurum; ''[[A̱lyem Kpat|Kpat:]]'' Ikulu). Ikulu yet a̱nyiung mami a̱banka̱u 11 [[Zangon Kataf|Sot A̱gwomna̱ti Mali Zangon Kataf]] a̱si̱ [[A̱tak Ka̱duna|a̱tak]] [[A̱si̱tet Ka̱duna]] na. Á̱ si̱ bu ka̱u á̱si̱ na a̱nii:<ref>{{Cite web |url=https://www.mindat.org/feature-9412137.html |title=Ikulu, Zangon Kataf, Kaduna, Nigeria |access-date=August 8, 2020}}</ref>
#Gidan Pate
#Gidan Zomo
#Kamaru Ikulu ([[Ka̱murum]])
#Kamaru Hausawa (Ka̱murum)
#Katul
#Ungwan Jada
#Ungwan Jatau
#Ungwan Pa
#Ungwan Sani
#Yadai
Nggwon a̱byin A̱sunkurum ka nang á̱ ndyen ba̱t a̱ni, [[Matyu Hasa̱n Kuka|Rev. Fr. Matthew Kukah]] ku twei mi̱ zop a̱nu a̱ghyang tak ma̱ng ''This Day News'' nyia̱ A̱sunkurum ba a mbeang [[Á̱niet A̱byoot|A̱byoot]] ba bibya yet a̱cyuang swak mi̱ susot a̱tyaat a̱gwomna̱ti ka, mang konyan ma̱ mba si̱ byia̱ ward a̱nyiung wa ma̱nyin a̱mgba̱m ma̱ng shi mba hu.<ref>{{Cite web |url=https://allafrica.com/stories/202007170657.html |last=Damina |first=Francis |title=Nigeria: 'Mediatrix' - a Tribute to Maman Fr. Kukah |date=July 17, 2020 |website=All Africa |publisher=This Day |access-date=August 8, 2020}}</ref>
==A̱tsatsak á̱niet==
* [[Matthew Hassan Kukah|Bishop Matthew Hassan Kukah]], Bishop a̱si̱ [[Roman Catholic Diocese a̱si̱ Sokoto]]
==Ya̱fang==
<references/>
[[Sa:Nnwap_swanta]]
[[Sa:Nnwap_Afrika]]
[[Sa:Nnwap mi̱ Naijeriya]]
styavf9ns9rkapvf9czluzjf01ygnbb
A̱swang
0
271
15893
12179
2022-08-12T11:15:12Z
Kambai Akau
15
wikitext
text/x-wiki
{{Databox}}
[[Fail:Langes Tannen Schlafzimmer 01.jpg|thumb|A̱swang a̱ghyang ma̱ a̱byin [[Jami̱ni]] (1910)]]
[[Fail:Simbavati4.jpg|thumb|A̱swang hotel a̱ghyang ma̱ a̱byin [[Afrika A̱tak]]]]
'''A̱swang''' ka (á̱kpa: '''a̱ka̱swang''' ''na'') yet tutu/nyuo hwa ma̱ a̱li, tutu/nyuo hu yet si̱ khat nda nia. A̱swang yet tutu a̱bala̱lang, a̱ja wa á̱ nshai nkyangkhwi, a̱ja wa á̱ nniat kyang ku yet si̱ niat a̱ni.
==Ya̱fang==
<references/>
14mnicfia66hqnbf9pwog7s0wk6610u
A̱swuang
0
272
2750
2749
2022-05-16T12:46:34Z
Jon Harald Søby
8
2 revisions imported
wikitext
text/x-wiki
#REDIRECT [[A̱swang]]
ftpdyas8swiz72610ysmhzuo5lq9giy
A̱swutong
0
273
12180
2763
2022-05-20T15:23:33Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
'''A̱swutong''' yet a̱ga̱swan swuo a̱nya̱nyiat nkyang wa. Di̱n Shong, á̱ ngyei '''''Tapinoma sessile'''''.
[[Fail:Tapinoma sessile casent0005329 profile 1.jpg|thumb|A̱swutong a̱ yet a̱khwo nta̱m a̱ni]]
==Ya̱fang==
<references/>
3f6yu2redm1o3iy5ihhpx1xyxsb3bnc
A̱ta
0
274
12181
2787
2022-05-20T15:23:43Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
Ka̱ á̱ nyia̱ '''a̱ta''', á̱ fa a̱ta kya ma̱ng hyet. Nkyang zwang nia na̱ yet.
[[Fail:19th century knowledge archery drawing the bow.jpg|thumb|A̱ta]]
==Ya̱fang==
<references/>
5dtm5ys0sh1zezcfgvda040wxrr4jzb
A̱ta A̱shong
0
275
2789
2788
2022-05-16T12:46:36Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[A̱ta ndong]]
lxyhu9qvs1k1sdxwzlzi4ei8d7wxvbi
A̱ta ndong
0
276
12182
2802
2022-05-20T15:23:53Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
[[Fail:SIG Pro by Augustas Didzgalvis.jpg|thumb|Pistut semi-otomatik ''SIG Pro'' wu]]
'''A̱ta ndong''' ka (á̱ ka ngyei '''a̱ta A̱shong''' ku '''a̱ta tsuung''' a̱ni; á̱kpa: '''a̱ka̱ta ndong''' ''na'') yet kyangzwang hwa ku vwuon di̱ nkak a̱ni nang á̱ nyia̱ ka̱ tang nkyang ma̱ng tsuung tang nka ji (tsuung a̱ta ndong).
==Ya̱fang==
<references/>
9lvnff73kg8d2hw9r6oqn3l7w5no4on
A̱tak Afrika
0
277
2804
2803
2022-05-16T12:46:36Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[Afrika A̱tak]]
56bin0qzkc0x1ixyzn0nnjceghk36ry
A̱tak Ka̱duna
0
278
15915
15909
2022-08-14T18:10:08Z
Kambai Akau
15
/* Susot a̱gwomna̱ti mali */
wikitext
text/x-wiki
{{Databox}}
'''A̱tak Ka̱duna''' (á̱ ku ngyei '''A̱tak Zariya''' gbangbang)<ref>Kafewo, S. (2009). "[http://www.jstor.org/stable/27752105 Giving Voice: Instigating Debate on Issues of Citizenship, Participation, and Accountability]". Development in Practice. V. 19. No. 4/5. Pp. 678-687.</ref> yet fam a̱byin hwa da̱nang a̱di̱di̱t á̱niet ba̱ nwai yet A̱kpat a̱ni nshyia̱ di̱ swuat, di̱ fam A̱tak Tyokkpaa̱pyia̱ Zariya hu mami [[Si̱tet Ka̱duna]] ji. Ka̱ shyia̱ di̱ fam a̱byin Fam A̱ka̱wa̱tyia̱ [[Naijeriya]] hwa. Á̱ghyang á̱niet fa nyia̱ fam a̱byin hu yet kyang ku yet a̱ni hwa da̱nian nnwap nhu nia a̱wot mat tangka̱i a̱vwuo ka̱ shyia̱ ma̱nyin hwa a̱ni bah, ma̱ a̱byin Naijeriya ka.<ref>Angerbrandt, Henrik (August 7, 2015). "[https://www.tandfonline.com/doi/full/10.1080/02589001.2015.1066081?scroll=top&needAccess=true Religion, ethnicity and citizenship: demands for territorial self-determination in southern Kaduna]" (di̱n Shong). Journal of Contemporary African Studies. V. 33. No. 2.</ref>
==Susot a̱gwomna̱ti mali==
* [[Cikun]]
* [[Jaba]]
* [[Jemaa]]
* [[Ka̱ciya]]
* [[Kaduna ma̱ A̱za]]
* [[Kaduna ma̱ A̱tak]]
* [[Kagarko]]
* [[A̱jure]]
* [[Watyap]]
* [[Ka̱uru]]
* [[Lere, Ka̱duna|Lere]]
* [[Sangga, Naijeriya|Sangga]]
* [[Zangon Kataf]]
==Nnwap==
A̱tak Ka̱duna byia̱ [[nnwap]] na̱ la̱u bwoi bi̱n ma̱ng á̱ghyang a̱ni ma̱ng a̱bannwap ma̱ a̱di̱di̱t na̱ ya dundung di̱ kham [[taada á̱nietbishyi|taada]] a̱nyin ma̱ng [[nkhang gbangbang á̱nietbishyi|nkhang gbangbang]] a̱ni. James (2000) ku ka̱u á̱niet banii si̱sak ma̱ng bi̱n nwap ma̱ng a̱lyem mba a̱tafa a̱pyia̱ a̱lyiat ka "The [[Middle Belt]] (Composition of the [[Nok culture|Nok Culture Area]])", a̱wot a̱ si̱ tyia̱ mbaa mi̱ susot ma̱ng a̱basusot nang a̱si̱ ji̱ khwi a̱ni:<ref name=James>James, Ibrahim (2000). "The Settler Phenomenon in the Middle Belt and the Problem of National Integration in Nigeria: The Middle Belt (Ethnic Composition of the Nok Culture)".</ref>
===Kpa̱m nwap ma̱ng a̱lyem Proto-Pi̱lato hu===
'''I. ''Fam a̱za ki Sot Á̱niet Tswaywan'''''
* [[á̱niet Á̱niet Tswaywan|Á̱niet Tswaywan]] (Adara)
* [[Adara people|Ada]] (Kuturmi)
* Ajure Adara (Kadara of Idon)
* Anumafa Adara (Kadara Kateri)
* Semi Ajure (Ankuwa, Gora)
* [[Á̱niet A̱sunkurum|A̱sunkurum]] (Bakulu, Ikulu)
'''II. ''Fam jenshyung ki Sot A̱koro'''''
* [[Koro Wachi language|Koro Myamya]]
* [[Koro Wachi language|Koro Achel, Ashe or Wachi]]
* [[Koro Wachi language|Koro Ala or Agweshi]]
* Koro Ham or Adong/Gbaham
'''III. ''A̱da ki Sot A̱za-jenshyung'''''
* [[Á̱niet A̱da|Ham Kpop]] (Jaba Kwoi)
* Ham Ngat Ham (Jaban Katari)
* Ham Shambang (Samban)
* [[Duya language|Ham Duhyah]] (Jaban Lungu)
* [[Gwong people|Ham Gwong]] (Kagoma)
* Ham Kworri (Chori)
* Ham Det (Faik/Kenyi)
* Ham Netkun/Netwho - Gbaham
* [[Nyankpa language|Ham Nyakpah]] (Yeskwa)
* [[Á̱niet A̱byoot|Ham Kong/Rhuini]] (Kamantan)
'''IV. ''Nienzi̱t ki Sot Kataf (Atyap)'''''
* [[Á̱niet A̱tyap|A̱tyap]] (Kataf, Katab)
* [[Á̱niet A̱jhyo|A̱jhyo]] (Kaje)
* Agworok (Aegworok, Oegworok, Kagoro)
* Asholyio (Osholio, Asholio, Moro'a)
* [[A̱byin Fantswam|Fantswam]] (Kafanchan)
* [[Á̱niet A̱sunkurum|A̱sunkurum]] (Bakulu, Ikulu)
* [[Á̱niet A̱byoot|A̱byoot]] (Anghan, Kamantan)
* A̱takad (A̱takat, Attakar)
* A̱tyeca̱rak (Atyacherak, Attachirak, Kachechere)
* A̱ca̱la (Challa, Ca̱ra Terri)
* A̱tyuku (Atuku)
'''V. ''Sot A̱tak-jenshyung (A̱ninka)'''''
* A̱nghwom (Ninzam)
* Mada A̱za
* Gba̱ntu (Gwantu)
* Nindem
* A̱ku (Nikyob, Kaninkon)
* Kanufi
* Nungu
* Buh - Ayu
* Ningeshe
* Nandu
* Numana
Susot tazwa jini nshyia̱ '''Kpa̱m Nwap ma̱ng A̱lyem Proto-Pi̱lato''' huhwa. Da̱ a̱kwonu a̱kya, á̱ si̱ ba̱ jhyi jii ca̱caat ma̱ng lilyem lyiat nji hu gba̱mgbam mbwak Blench (2008) nang a̱nii:<ref name="Blench2018">Blench, Roger M. (2018). "Nominal affixes and number marking in the Plateau languages of Central Nigeria". In John R. Watters (ed.), ''East Benue-Congo: Nouns, pronouns, and verbs'', 107–172. Berlin: Language Science Press. DOI: 10.5281/zenodo.1314325</ref>
'''I. ''A̱za-jenshyung ki Sot Á̱niet Tswaywan'''''
*[[Adara people|Eda, Ada]]
*[[Adara people|Edra, Adara]]
*[[Á̱niet A̱sunkurum|A̱sunkurum]] (Bakulu)
*Ẹjẹgha (Idon)
*Doka
*Ẹhwa (Iku-Gora-Ankwe)
'''II. ''Sot A̱tyap (Nerzit, Nienzi̱t)'''''
*[[Á̱niet A̱jhyo|A̱jhyo]]
*[[Á̱niet A̱tyap|Atyap]]
*[[A̱byin A̱gwoot|Agworok]] (Kagoro)
*Takad (Attakar)
*Atyecarak (Kacicere)
*Asholyio
*[[A̱byin Fantswam|Fantswam]] (Kafancan)
*Atyuku
'''III. ''Sot A̱koro'''''
*Ashe
*Tinɔr (Waci-Myamya)
*Idũ, Gwara
*Nyenkpa-Barde
'''IV. ''Sot A̱da'''''
*Shamang
*Cori
*[[Á̱niet A̱da|A̱da]]
*Zhire
*Shang
'''V. ''Sot Á̱niet Swak'''''
*[[Gwong people|Gwong]] (Kagoma)
*[[Á̱niet A̱byoot|A̱byoot]] (Anghan, Kamanton)
'''VI. ''Sot A̱nghwom'''''
*A̱nghwom (Ninzam, Ninzo)
*Bu-Niŋkada
*Mada
*Numana-Nunku-Gbantu-Numbu
*Ningye-Ninka
*Anib
*A̱ku (Nikyob)
*Nindem
*Nungu
*Ayu
'''VII. ''Sot Ndun'''''
*Ndun (Nandu)
'''VIII. ''Sot A̱lumu'''''
*[[A̱lyem Sambe|Sambe]]
*A̱ si̱ bu nyia̱ nyia̱ [[A̱lyem Nisam|Nisam]], nang á̱ ku kyiak ka̱ yet a̱lyem Pi̱lato kya nang á̱ ku lyiat mi̱ A̱bakeang, A̱si̱tet Ka̱duna, da̱ a̱kwonu a̱kya, á̱ si̱ mi̱n tak a̱vwuo nka ka di̱ sa Pi̱lato ji bah mat lyin deita a̱lyem, nang a̱tyonyiung wa ma̱nyin lyiat nkaa mi̱ 2005.<ref name="Blench2012">Blench, Roger M. 2012. [http://www.rogerblench.info/Language/Niger-Congo/BC/Plateau/Alumic/Akpondu.pdf Akpondu, Nigbo, Bəbər and Nisam: moribund or extinct languages of central Nigeria Babur].</ref>
===Kpa̱m nwap ma̱ng a̱lyem Proto-Kainji===
'''I. ''Sot A̱tyin Kainji I'''''
* [[Á̱niet A̱tsamyio|Atsamyio]] (Chawai)
* Amap (Amo)
* Abisi (Piti)
* Kuzamani (Shuwa-Zamani)
* Ngmgbang (Ribam)
* Dinani (Dingi)
* Ribina
'''II. ''Sot A̱tyin Kainji II'''''
* Agbiri (Gure)
* Aniragu (Kahugu)
* [[Á̱niet A̱kurmi|A̱kurmi]] (Kurama)
* Koonu (Kono)
* Vono (Kiballo)
* Tumi (Kitimi)
* Nuno-Kaivi (Kaibi)
* Mala-Ruma (Rumaya/Ruruma)
* Abin (Binawa)
* Kuvori (Surubu)
* Atumu (Kinuku)
* Shuwa-Zamani (Kuzamani)
* Dungi (Dungu)
===Kpa̱m nwap ma̱ng a̱lyem Proto-Kwa===
''' ''Sot Á̱niet Mangfwuo (Gbagyi)'''''
* [[Á̱niet Mangfwuo]] (Gbagyi-Gbari)<ref name=James></ref>
===Kpa̱m nwap ma̱ng a̱lyem Proto-Jenshyung Cadik===
Bang ma̱ng ka̱u di̱ si̱sa si̱ James (2000) hwa myiai kang ma̱ng Kpa̱m Nwap ma̱ng A̱lyem Proto-Jenshyung Cadik:
* Gwandara (sot afro-asiatic jhyang zang ja bwuo bi̱n ma̱ng [[Á̱niet A̱kpat|A̱kpat]] wu a̱ni<ref>[https://www.ethnologue.com/language/GWN Ethnologue entry on Gwandara].</ref>, nang á̱ nyia̱ ji̱ neet bai mi̱ [[Ka̱no]].)
*[[Wp/jcg/A̱lyem Sha|Sha]] (neet bai mi̱ [[Bokot]], [[A̱si̱tet Pi̱lato]].)
== Lilyem ==
A̱tak Ka̱duna byia̱ a̱cyuang susot nwap ma̱ng lilyem ma̱ a̱di̱di̱t, zang nia lyiat di̱ lilyem ku yet ma susot lilyem [[Naija–Konggo]] ma̱ng [[Jenshyung Cadi]] ja.<ref>"[https://www.fmprc.gov.cn/zflt/eng/zjfz/fzzl/t619829.htm|website=www.fmprc.gov.cn Languages of Africa]".</ref> A̱tatak kya lilyem hu ma̱ng zwályiat ji nang á̱niet A̱tak Ka̱duna ba lyiat a̱ni:
{| class="wikitable sortable mw-collapsible"
! SA̱M !! Lilyem ma̱ng zwályiat
|-
| [[Cikun]] || [[Gbagyi language|Gbagyi]]
|-
| [[Jaba, Naijeriya|Jaba]] || [[Ashe language|Ashe]]; [[Duya language|Duya]]; [[Hyam language|Hyam]]
|-
| [[Jemaa]] || [[Ashe language|Ashe]]; [[Berom language|Berom]]; [[Duya language|Duya]]; [[A̱lyem Tyap|Fantswam]]; Gyong; [[A̱lyem Da|Da]]; [[A̱lyem Jhyo|Jhyo]]; Kanufi; Mada; [[Cori language|Kyoli]]; Ku-Nindem; [[Nghwom]]; Nungu; [[Nyankpa language|Nyankpa]]; Shamang; [[Wp/kch/A̱lyem Tyap|Tyap]]; [[A̱lyem Tyap|Tyuku]] [[Zhire]]; Numana
|-
| [[Kaciya]] || [[Adara language|Adara]]; Doka; [[Gbagyi language|Gbagyi]]; [[A̱lyem Da|Da]]; [[Iku-Gora-Ankwa]]; Sunkurum; [[A̱lyem Jhyo|Jhyo]]; [[A̱lyem Byoot|Byoot]]; [[Koro Wachi]]; [[Adara language|Ada]]; Shamang; [[A̱lyem Tyap|Tyap]]; [[Zhire]]
|-
| [[Kaduna ma̱ A̱za]] || [[Bacama language|Bacama]]; [[Gbagyi language|Gbagyi]]; [[A̱lyem Kpat|Kpat]]; [[Kanuri language|Kanuri]]; [[Yoruba language|Yoruba]]
|-
| [[Kaduna ma̱ A̱tak]] || [[Adara language|Adara]]; [[Gbagyi language|Gbagyi]]; [[A̱lyem Kpat|Kpat]]; [[Idoma language|Idoma]]; [[Igbo language|Igbo]]; [[A̱lyem Tyap|Tyap]]; [[Yoruba language|Yoruba]]
|-
| [[Kagarko]] || [[Ashe language|Ashe]]; [[Duya language|Duya]]; [[Gbagyi language|Gbagyi]]; [[Koro Wachi]]
|-
| [[A̱jure]] || [[Adara language|Adara]]; Ajiya; [[Gbagyi language|Gbagyi]]; [[Shuwa-Zamani language|Kuzamani]]
|-
| [[Watyap]] || [[A̱lyem Tyap|Gworok]]; [[Firan language|Firan]]; [[Iten language|Iten]]; [[A̱lyem Tyap|Takad]]; [[A̱lyem Tyap|Sholyio]]; [[A̱lyem Tyap|Tyap]] ma̱ng [[A̱lyem Tyap|Tyecaat]] (Tyeca̱rak)
|-
| [[Ka̱ura|Ka̱uru]] || [[Piti language|Bisi]]; [[Bina language|Bina]]; Dungu; [[Ikulu language|Ikulu]]; [[Kaivi language|Kaivi]]; [[Kinuku language|Kinuku]]; [[Kono language (Nigeria)|Koonu]]; [[Mala language|Mala]]; [[Ribam language|Mbang]]; [[A̱lyem Kuut|Kuut]]; [[Ruma language|Ruma]]; Sheni; [[Kurama language|T'kurmi]]; [[A̱lyem Tsamyio|Tsamyio]]; [[Tumi language|Tumi]]; [[A̱lyem Tyap|Tyap]]; [[Vono language|Vono]]; [[Vori language|Tuvori]] ma̱ng [[A̱lyem Kpat|Kpat]]
|-
| [[Lere, A̱si̱tet Ka̱duna|Lere]] || [[Kurama language|T'kurmi]], [[Map language|Timap]]; [[Bina language|Bina]]; Lere; [[Gbiri-Niragu|Tugbiri-Niragu]] ma̱ng [[A̱lyem Kpat|Kpat]]
|-
| [[Sangga, Naijeriya|Sangga]] || Ahwai; Ayu; Bu; [[Gwandara]]; [[Hasha language|Hasha]]; [[A̱lyem Nghwom|Nghwom]]; [[Numana language|Numana]]; [[Nungu language|Nungu]]; [[Sambe]]; Sha; Toro
|-
| [[Zangon Kataf]] || [[A̱lyem Sunkurum|Sunkurum]]; [[A̱lyem Jhyo|Jhyo]]; [[A̱lyem Byoot|Byoot]]; ma̱ng [[A̱lyem Tyap|Tyap]]; [[A̱lyem Tyap|Tyecaat]] (Tyeca̱rak)
|}<ref name=e22>[https://www.ethnologue.com/country/NG Nigeria]. Ethnologue. 22 (Ed.).</ref>
==Ndá a̱byin==
A̱khwukhwop minista Á̱kpa̱u Nkyang A̱byin Naijeriya, Leslie Obiora, tung lis á̱kpa̱u nkyang a̱byin ma̱ a̱mgba̱m a̱byin ka, zang hwa ntsa á̱kpa̱u nkyang a̱byin 74; 34 na̱ maai lung tat nkat ndyo kaswuo, A̱tak Ka̱duna si̱ byia̱ á̱kpa̱u nkyang a̱byin na̱ swak 30 ma̱ng si̱ nna na̱ maai lung na̱ swak kpa̱m nswak nfwuon (50%) a̱ni.<ref>Haruna, David Livingstone (February 20, 2020). [https://allafrica.com/stories/202002200873.html Nigeria: Southern Kaduna and Tale of Illegal Artisans, Miners]. All Africa.</ref>
==Khap==
Mi̱ ndyo 1990 na, á̱nietkhap [[shita a̱byin]] ku fa̱k nyinyang kpangti̱n ji̱ neet lyiai nkyang nang ba̱ cak ni mat susot-nta̱m nta̱m shita a̱byin ji̱ ku nshyia̱ a̱ni koji di̱ fam hu, a̱wot a̱zafwun ka, ma̱ a̱di̱di̱t ma̱ng tangka̱i susot-nta̱m jiniaau ku nyim di̱ kwan bwuot ma̱ng a̱nji di̱ swuan da̱ a̱beam a̱gwomma̱ti ba.<ref>Isuwa, Sunday (December 16, 2013). "[https://allafrica.com/stories/201312160467.html The Lost Glory of Ginger in Southern Kaduna]". Abuja: Daily Trust.</ref>
==Tat-a̱pyia̱==
===A̱ca̱cet A̱ka̱vwuomyiam A̱fwun na===
* [[Air Force Institute of Technology (Nigeria)]], [[Ka̱duna]]
* [[Yunivasti Greenfield]], Ka̱duna
* [[Politeknik Ka̱duna]], [[Ka̱duna]]
* [[Yunivasti Si̱tet Ka̱duna]], a̱yaakampus Ka̱duna ma̱ng [[A̱byin Fantswam|Fantswam]]
* [[National Open University of Nigeria]], A̱vwuofang [[A̱byin A̱gwoot|Gwoot]]
* [[Nigerian Defence Academy]] (NDA), [[Ka̱duna]]
* [[Kaduna State College of Education]], Fantswam
* School of Agricultural Technology, [[Nuhu Bamalli Polytechnic]], [[Cenkwon]]
== A̱ca̱cet á̱niet ==
[[Lis á̱niet A̱tak Ka̱duna]]
==Bu nwuan==
* [[Jhyá̱ Zangon Kataf 1992]]
* [[Hyaai A̱byin Ka̱duna 2019]]
* [[Bwuok Afan|Afan National Festival]]
* [[A̱byintyok A̱tyap]]
* [[Kafanchan Peace Declaration]]
* [[Kajuru Castle]]
* [[List of villages in Kaduna State]]
* [[A̱byia̱ tityong]]
* [[Tat-a̱ghyi Nok]]
* [[Railway stations in Nigeria]]
* [[Jhyá̱ A̱tak Ka̱duna]]
==Ya̱fang==
<references/>
==A̱ka̱fwuop nta==
{{Commons category-inline|Southern Kaduna|A̱tak Ka̱duna}}
[[Sa:Si̱tet Ka̱duna]]
ngtkmpiaqamywfzew5jj96tikeom92f
A̱tak Korea
0
279
2853
2852
2022-05-16T12:46:38Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[Kworiya A̱tak]]
szwnqqqdjdt634cns05kwcmh01o87mt
A̱tak Sudan
0
280
2855
2854
2022-05-16T12:46:38Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[Sudan A̱tak]]
c3frr5epk90txkmk4uukv8tj0g5dg05
A̱tang
0
281
2864
2863
2022-05-16T12:46:38Z
Jon Harald Søby
8
8 revisions imported
wikitext
text/x-wiki
'''A̱tang''' yet a̱yin a a̱byia̱ tswa Kpa mbwuak.
Ka̱ a̱yin nyin kyang di ku yet a̱si ngu a̱ni ba, yok a̱nyia̱ a̱ kok nkyang a̱ghyiang a̱yin ko a̱si a̱niet, a̱ nghyei ngu '''A̱tang'''.
==Ya̱fang==
<references/>
di7iykrs6og5nt6nrsop3twi0nsyypt
A̱tangwat
0
282
2866
2865
2022-05-16T12:46:38Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[A̱ta̱ngwat]]
pmhvcrw7kebszmy1aakj218f61xrxrg
A̱ta̱lyen
0
283
12184
2877
2022-05-20T15:24:13Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
'''A̱ta̱lyen''' ''ka'' (á̱kpa: '''a̱ka̱ta̱lyen''' ''na'') yet [[vak]], ku gwak nang á̱niet ncong á̱ nkai a̱ni.
==Ya̱fang==
<references/>
m524afp1dhxpag9am1ga7pc128ljmqr
A̱ta̱mam
0
284
14790
12185
2022-07-11T09:45:24Z
218.146.29.43
wikitext
text/x-wiki
'''A̱ta̱mam''' ka̱ yet jen ja ma̱ng mam ku kyiak neet [[a̱tsotson]] si̱ sak jen ji na̱ mam hu nshyim a̱ni.
A̱ta̱mam kya mam hu nsai ba̱t, nang kyiak tswam 14 JK si̱ nat tswam 6 JK.
==Ya̱fang==
<references/>
q8t7c0eozvk4l9kbodoooxpitavqy1v
A̱ta̱ngwat
0
285
12614
12186
2022-05-22T05:33:17Z
Minorax
31
fix lint
wikitext
text/x-wiki
[[Fail:Starsinthesky.jpg|thumb|Á̱kpa á̱ta̱ngwat ka̱ mwok di̱ fam nyiung]]
[[Fail:The Sun by the Atmospheric Imaging Assembly of NASA's Solar Dynamics Observatory - 20100819.jpg|thumb|Ghwughwu mam hu nang ''Atmospheric Imaging Assembly'' a̱si̱ ''Solar Dynamics Observatory'' NASA ku kyiak a̱ni]]
'''A̱ta̱ngwat''' ka (á̱kpa: '''á̱ta̱ngwat''' ''na'') kyang hwa mi̱ kyai tswazwa ku sai mat a̱ngga a̱ bwan nang a̱ma̱ntei ku li nang a̱jojot tuk a̱ni ku kaat nka nang cet a̱gba̱ndang kwak a̱byin nhu hwa ba̱ng mba ndung.
==Ya̱fang==
<references/>
c9h1j4c6a3p5ekmsiip904iy0husrxk
A̱ta̱shwak
0
286
2904
2903
2022-05-16T12:46:40Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[A̱ta̱swak]]
954qehy2cwvbxp2goxogcljg6h55b67
A̱ta̱swak
0
287
12187
2916
2022-05-20T15:24:43Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
'''A̱ta̱swak''' wu (á̱kpa: '''a̱yaata̱swak''' ''ba'', á̱ ka ngyei '''a̱ta̱shwak''' a̱ni) yet a̱gba̱ndang a̱toot wa na̱ng á̱ yeshang a̱ni. Á̱gwam á̱ghyang yeshang nggu tazwa a̱ca̱cet nkyangtyia̱ mba na.
==Ya̱fang==
<references/>
7djthcj65poe5r2gbvi8tnmbv0on3vu
A̱ta̱usa a̱li
0
288
2918
2917
2022-05-16T12:46:41Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[Kyai a̱li]]
2cgtyrky4o3aq67pr6s9gy56x4cjttk
A̱ti̱tak
0
289
2920
2919
2022-05-16T12:46:41Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[Tak]]
qy5loa39ar806l9qxpe41emkhwoueg9
A̱ti̱tak tsaai tswam
0
290
2922
2921
2022-05-16T12:46:41Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[Tak tsaai tswam]]
jrxx1ozdyjmn4lu0qwnslhh94zpza01
A̱toot
0
291
14736
14735
2022-07-02T18:37:30Z
Kambai Akau
15
wikitext
text/x-wiki
{{Databox|item=Q11460}}
'''A̱toot''' wu (á̱kpa: '''a̱yaatoot''' ''ba'') yet kyangkhwi ku kup ka̱gba̱ng a̱tyubishyi wa a̱ni. Kyang ku kyiak neet ma̱ng fwuo naat ma̱ng ndyang, a̱wot dyang naat ma̱ kpai-ntak hu.
==Ya̱fang==
<references/>
[[Category:A̱toot]]
o38jvnlxujx0lzi6xw5rnwr9dmzitu5
A̱toot a̱gbaat
0
292
12189
2946
2022-05-20T15:25:03Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
'''Atoot a̱gbaat''' yet kyang-khwui agbaat hu da nyiat wowot mang shut.
[[Fail:Bettwaesche.jpg|thumb|A̱yaatoot a̱gbaat a̱malikaswuo a̱ghyang]]
2yur3ds7sthe6kwkpq7c5m2gcuzuwxx
A̱toot vam
0
293
15276
12660
2022-07-21T22:24:54Z
ZabesBot
156
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
[[File:Shirt, men's (AM 2015.44.1-1).jpg|thumb|A̱toot vam á̱tyok]]
'''A̱toot vam''' yet kyang kup vam (kyiak neet di̱ fwuo hu ba̱ng si̱ tat mi̱ dyang ji) hwa nang á̱ yeshang a̱ni. A̱yaatoot ba vwuon da̱ a̱ka̱keang.
==Ya̱fang==
<references/>
4624yq8e21mwly39177ln0pzjn0s5cc
A̱tosa a̱li
0
294
2959
2958
2022-05-16T12:46:42Z
Jon Harald Søby
8
2 revisions imported
wikitext
text/x-wiki
#REDIRECT [[Kyai a̱li]]
2cgtyrky4o3aq67pr6s9gy56x4cjttk
A̱tsak peji
0
295
14494
2961
2022-06-13T10:48:01Z
Vargenau
226
Changed redirect target from [[A̱tsak wat]] to [[A̱tsak Wat Wu]]
wikitext
text/x-wiki
#REDIRECT [[A̱tsak Wat Wu]]
4kavx6k0zlmlwxuztvyivtx5owfyc90
A̱tsak wat hu
0
296
13542
13116
2022-06-01T14:14:11Z
Sun8908
55
clearing page to avoid error
wikitext
text/x-wiki
#REDIRECT [[A̱tsak Wat Wu]]
4kavx6k0zlmlwxuztvyivtx5owfyc90
A̱tsatsak A̱yaati̱kut
0
297
3073
3072
2022-05-16T12:46:46Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[A̱tsatsak a̱yaati̱kut]]
rw42v6caqvjdbtja85eqieb0xjsgbib
A̱tsatsak a̱yaati̱kut
0
298
3094
3093
2022-05-16T12:46:47Z
Jon Harald Søby
8
20 revisions imported
wikitext
text/x-wiki
== Nkhang shyicet ==
=== Á̱nietnyia̱ nghwughwu ma̱ng á̱nietlyen ghwang a̱ka̱sa ===
# [[Le Corbusier]]
# [[Salvador Dalí|Dalí, Salvador]]
# [[Albrecht Dürer|Dürer, Albrecht]]
# '''[[Vincent van Gogh|Gogh, Vincent van]]'''
# [[Francisco de Goya|Goya, Francisco]]
# [[Hokusai]]
# [[Frida Kahlo|Kahlo, Frida]]
# '''[[Leonardo da Vinci]]'''
# [[Henri Matisse|Matisse, Henri]]
# '''[[Michelangelo]]'''
# '''[[Pablo Picasso|Picasso, Pablo]]'''
# [[Raphael]]
# '''[[Rembrandt]]'''
# [[Peter Paul Rubens|Rubens, Peter Paul]]
# [[Diego Velázquez|Velázquez, Diego]]
# [[Andy Warhol|Warhol, Andy]]
# [[Frank Lloyd Wright|Wright, Frank Lloyd]]
=== Á̱nietlyuut, á̱nietlyuut nvwuomaat ma̱ng á̱nietlyuut bubwom a̱nwuat ===
# [[Abu Nuwas]]
# [[Hans Christian Andersen]]
# [[Jane Austen]]
# [[Bashō]]
# [[Jorge Luis Borges]]
# [[George Byron]]
# '''[[Miguel de Cervantes]]'''
# [[Geoffrey Chaucer]]
# [[Anton Chekhov]]
# '''[[Dante Alighieri]]'''
# [[Charles Dickens]]
# [[Fyodor Dostoyevsky]]
# [[d:Q5878|García Márquez, Gabriel]]
# '''[[d:Q5879|Goethe, Johann Wolfgang von]]'''
# [[d:Q6240|Hafez]]
# '''[[d:Q6691|Homer]]'''
# '''[[d:Q535|Hugo, Victor]]'''
# [[d:Q6882|Joyce, James]]
# [[d:Q905|Kafka, Franz]]
# [[d:Q7011|Kālidāsa]]
# [[d:Q7071|Li Bai]]
# [[d:Q7176|Naguib Mahfouz]]
# '''[[d:Q687|Molière]]'''
# [[d:Q7198|Ovid]]
# [[d:Q7199|Proust, Marcel]]
# [[d:Q7200|Pushkin, Alexander]]
# '''[[d:Q692|Shakespeare, William]]'''
# [[d:Q7235|Sophocles]]
# [[d:Q7241|Tagore, Rabindranath]]
# '''[[d:Q7243|Tolstoy, Leo]]'''
# [[d:Q7245|Twain, Mark]]
# [[d:Q1398|Virgil]]
=== Á̱nietlyen lyuut bubwom ma̱ng á̱niettsot bubwom ===
# [[d:Q1779|Armstrong, Louis]]
# '''[[d:Q1339|Bach, Johann Sebastian]]'''
# '''[[d:Q1299|Beatles, The]]'''
# '''[[d:Q255|Beethoven, Ludwig van]]'''
# [[d:Q7294|Brahms, Johannes]]
# [[d:Q1268|Chopin, Frédéric]]
# [[d:Q7298|Dvořák, Antonín]]
# [[d:Q7302|Handel, Georg Frideric]]
# [[d:Q7349|Haydn, Joseph]]
# [[d:Q2831|Jackson, Michael]]
# [[d:Q1110560|Kulthum, Umm]]
# [[d:Q7304|Mahler, Gustav]]
# '''[[d:Q254|Mozart, Wolfgang Amadeus]]'''
# [[d:Q179277|Palestrina, Giovanni Pierluigi da]]
# [[d:Q7311|Puccini, Giacomo]]
# [[d:Q7312|Schubert, Franz]]
# [[d:Q7314|Stravinsky, Igor]]
# [[d:Q7315|Tchaikovsky, Petr]]
# [[d:Q7317|Verdi, Giuseppe]]
# [[d:Q1340|Vivaldi, Antonio]]
# '''[[d:Q1511|Wagner, Richard]]'''
=== Á̱nietcyetzop ma̱ng á̱nietcyet ===
# [[d:Q926|Amundsen, Roald]]
# [[d:Q1615|Armstrong, Neil]]
# [[d:Q7321|Cartier, Jacques]]
# '''[[d:Q7322|Columbus, Christopher]]'''
# [[d:Q7324|Cook, James]]
# [[d:Q7326|Cortés, Hernán]]
# '''[[d:Q7327|Gagarin, Yuri]]'''
# [[d:Q7328|da Gama, Vasco]]
# [[d:Q7331|Ibn Battuta]]
# '''[[d:Q1496|Magellan, Ferdinand]]'''
# [[d:Q6101|Polo, Marco]]
# [[d:Q7333|Zheng He]]
=== A̱yaakwak a̱son fim, á̱nietlyuut nkhang ma̱ng á̱nietmaat nkhang ===
# [[d:Q7546|Bergman, Ingmar]]
# [[d:Q4605|Bernhardt, Sarah]]
# '''[[d:Q882|Chaplin, Charlie]]'''
# [[d:Q4612|Dietrich, Marlene]]
# [[d:Q8704|Disney, Walt]]
# [[d:Q8003|Eisenstein, Sergei]]
# [[d:Q7371|Fellini, Federico]]
# [[d:Q7374|Hitchcock, Alfred]]
# [[d:Q2001|Kubrick, Stanley]]
# [[d:Q8006|Kurosawa, Akira]]
# [[d:Q4616|Monroe, Marilyn]]
# [[d:Q8873|Ray, Satyajit]]
=== Á̱nietmat nkyang nfai, á̱nietlyen sains ma̱ng á̱nietlyen fangnkyang ===
# '''[[d:Q8739|Archimedes]]'''
# [[d:Q8011|Avicenna]]
# [[d:Q80|Berners-Lee, Tim]]
# [[d:Q202943|Brahmagupta]]
# '''[[d:Q619|Copernicus, Nicolaus]]'''
# '''[[d:Q7186|Curie, Marie]]'''
# '''[[d:Q1035|Darwin, Charles]]'''
# '''[[d:Q8743|Edison, Thomas]]'''
# '''[[d:Q937|Einstein, Albert]]'''
# '''[[d:Q8747|Euclid]]'''
# [[d:Q7604|Euler, Leonhard]]
# [[d:Q8750|Faraday, Michael]]
# [[d:Q8753|Fermi, Enrico]]
# '''[[d:Q8768|Ford, Henry]]'''
# [[d:Q8778|Galen]]
# '''[[d:Q307|Galileo Galilei]]'''
# [[d:Q6722|Gauss, Carl Friedrich]]
# '''[[d:Q8958|Gutenberg, Johannes]]'''
# '''[[d:Q41585|Hilbert, David]]'''
# [[d:Q8962|Joule, James Prescott]]
# [[d:Q8963|Kepler, Johannes]]
# [[d:Q9038|al-Khwarizmi, Muhammad ibn Musa]]
# [[d:Q9047|Leibniz, Gottfried Wilhelm]]
# [[d:Q1043|Linnaeus, Carl]]
# [[d:Q9095|Maxwell, James Clerk]]
# [[d:Q9106|Mendeleev, Dmitri]]
# '''[[d:Q935|Newton, Sir Isaac]]'''
# '''[[d:Q529|Pasteur, Louis]]'''
# '''[[d:Q9021|Planck, Max]]'''
# [[d:Q9123|Rutherford, Ernest]]
# '''[[d:Q9130|Schrödinger, Erwin]]'''
# '''[[d:Q9036|Tesla, Nikola]]'''
# '''[[d:Q7251|Turing, Alan]]'''
# '''[[d:Q9041|Watt, James]]'''
=== Á̱nietlyen filosofi ma̱ng á̱nietlyen sains swat ndung ===
# '''[[d:Q868|Aristotle]]'''
# [[d:Q7197|Beauvoir, Simone de]]
# [[d:Q9045|Chanakya]]
# '''[[d:Q4604|Confucius]]'''
# '''[[d:Q9191|Descartes, René]]'''
# '''[[d:Q9215|Freud, Sigmund]]'''
# [[d:Q9235|Hegel, Georg Wilhelm Friedrich]]
# [[d:Q48301|Heidegger, Martin]]
# [[d:Q9294|Ibn Khaldun]]
# '''[[d:Q9312|Kant, Immanuel]]'''
# [[d:Q9317|Keynes, John Maynard]]
# '''[[d:Q9333|Laozi]]'''
# '''[[d:Q9353|Locke, John]]'''
# [[d:Q1399|Machiavelli, Niccolò]]
# '''[[d:Q9061|Marx, Karl]]'''
# '''[[d:Q9358|Nietzsche, Friedrich]]'''
# '''[[d:Q859|Plato]]'''
# [[d:Q6527|Rousseau, Jean-Jacques]]
# [[d:Q9364|Sartre, Jean-Paul]]
# [[d:Q9372|Sima Qian]]
# [[d:Q9381|Smith, Adam]]
# '''[[d:Q913|Socrates]]'''
# '''[[d:Q9068|Voltaire]]'''
# [[d:Q9387|Weber, Max]]
# [[d:Q9391|Wittgenstein, Ludwig]]
# [[d:Q9397|Zhu Xi]]
=== A̱yaakwak a̱son kwai-nfwuo-á̱niet ===
# [[d:Q8597|Akbar]]
# '''[[d:Q8409|Alexander the Great]]'''
# [[d:Q8589|Ashoka]] <!-- Great Indian monarch of antiquity; spread Buddhism -->
# [[d:Q5152|Atatürk, Mustafa Kemal]]
# '''[[d:Q1405|Augustus]]'''
# [[d:Q8442|von Bismarck, Otto]]
# [[d:Q8605|Bolívar, Simón]]
# '''[[d:Q517|Bonaparte, Napoleon]]'''
# [[d:Q1048|Caesar, Julius]]
# [[d:Q3044|Charlemagne]]
# [[d:Q8016|Churchill, Winston]]
# [[d:Q8413|Constantine the Great]]
# '''[[d:Q8423|Cyrus the Great]]'''
# [[d:Q2042|de Gaulle, Charles]]
# [[d:Q7207|Elizabeth I of England]]
# [[d:Q1001|Gandhi, Mohandas Karamchand]]
# '''[[d:Q720|Genghis Khan]]'''
# [[d:Q5809|Guevara, Che]]
# '''[[d:Q352|Hitler, Adolf]]'''
# [[d:Q7226|Joan of Arc]]
# [[d:Q8027|King, Martin Luther, Jr.]]
# '''[[d:Q1394|Lenin, Vladimir]]'''
# [[d:Q91|Lincoln, Abraham]]
# [[d:Q7742|Louis XIV]]
# [[d:Q7231|Luxemburg, Rosa]]
# [[d:Q8023|Mandela, Nelson]]
# [[d:Q5816|Mao Zedong]]
# [[d:Q1047|Nehru, Jawaharlal]]
# [[d:Q8620|Nkrumah, Kwame]]
# [[d:Q8479|Peter the Great]]
# '''[[d:Q7192|Qin Shi Huang]]'''<!-- Created first Chinese state and dynasty -->
# [[d:Q8007|Roosevelt, Franklin D.]]
# [[d:Q8581|Saladin]]
# [[d:Q855|Stalin, Joseph]]
# [[d:Q8474|Suleiman the Magnificent]] <!-- Greatest Ottoman sultan -->
# [[d:Q8573|Sun Yat-sen]]
# [[d:Q8462|Tamerlane]]
# [[d:Q8467|Umar]] <!-- Conquered Persia, Syria, Palestine, and Egypt for Islam -->
# '''[[d:Q23|Washington, George]]'''
=== A̱yaakwak a̱son khwi ma̱ng a̱yaagwak lyen A̱gwaza ===
# [[d:Q9181|Abraham]]
# [[d:Q9438|Aquinas, Thomas]]
# [[d:Q8018|Augustine of Hippo]]
# '''[[d:Q9441|Buddha]]'''
# [[d:Q9546|Al-Ghazali]]
# '''[[d:Q302|Jesus]]'''
# [[d:Q9554|Luther, Martin]]
# '''[[d:Q9077|Moses]]'''
# '''[[d:Q9458|Muhammad]]'''
# [[d:Q171195|Nagarjuna]]
== Lyenfilosofi ==
* [[Ci A̱gwaza]]
* [[Ka̱u á̱di̱dam di̱ ya fwuang]]
* [[Za̱kwá]]
* [[Tat-a̱pyia̱ tyorit lyen]]
* [[A̱sa̱t cat fwuo]]
* [[Lyen]]
* [[Mumwang a̱di̱dam]]
* [[Cat kyang ta̱cya̱]]
* [[Lyenfilosofi]]
* [[A̱cucuk]]
== Khwi ==
* [[A̱tsan kuntyin]]
* [[A̱gwaza]]
** [[Nwuak a̱cucuk da̱ A̱gwaza a̱nyiung]]
** [[Nwuak a̱cucuk da̱ a̱yaagwaza ma̱ a̱di̱di̱t]]
* [[Kpa̱m tashikum]]
* [[Khwi]]
* [[Swuan]]
* Nkhwi nghyang
** [[Khwibuda]]
** [[Khwikristi]]
*** [[Sot Á̱nietkhwi Katolika]]
*** [[Sot Á̱nietkhwi Otodok Fam A̱tyin]]
*** [[Protestan]]
*** [[Sot Á̱nietkhwi Otodok]]
** [[A̱di̱dam Kungfu]]
** [[Khwihindu]]
** [[Khwikpaa̱pyia̱]]
** [[Khwijayin]]
** [[Khwiyahuda]]
** [[Khwisikhi]]
** [[Khwitawo]]
** [[Khwizorosta]]
* Nta̱m tswa
** [[Nwuak a̱cucuk Sufi]]
** [[Yoga]]
** [[Zen]]
== Sains swat ndung ==
=== Lyen za̱kwa a̱tyubishyi ===
=== Kyangbwak ma̱ng a̱ka̱meang ===
=== Kwai-nfwuo-á̱niet ===
=== A̱bwuang ma̱ng tungnzwa ===
=== Cam ===
=== Susotnta̱m bibyin swanta ===
=== Zwang ma̱ng a̱khwot a̱kwop ===
=== A̱fi̱fa swat ndung ===
== A̱lyem ma̱ng kpa̱m lyuut ==
== Mai nkyang ==
== Sains ==
=== Lyen á̱ta̱ngwat ===
=== Bayoloji ===
=== Gbi̱ngban ma̱ng kan ===
=== Kemistri ===
=== Sains swanta ===
=== Fizik ===
* [[Fizik]]
=== Lyenfangnkyang ===
== Kyayak ma̱ng khap ==
=== Khap ===
=== Kyayak ===
=== Nkyangswuo ===
== Lyennkyangta̱m ==
=== A̱myim ===
=== A̱yaaili̱kti̱ronik ===
=== Kpa̱p cet ma̱ng hya̱u ndong ===
=== Nkyang ta̱cya̱ ===
=== Shyei nkyang ===
=== Nkyangzwang ===
== Ghwang mi̱ ghwang ma̱ng naat mbwuot a̱sa̱t njen ==
=== Lyen ghwang a̱ka̱sa ma̱ng bwokntswam a̱sai bung ===
=== Fim, redyo ma̱ng telvishon ===
=== A̱bwom tsot ===
=== Naat mbwuot a̱sa̱t njen ===
== Nkhang gbangbang ==
=== A̱zaghyi nkhang ma̱ng ta̱cya̱ gbangbang ===
=== Nce A̱ka̱wa̱tyia̱ ma̱ng Jen Ntsa Mam A̱fwun ===
=== Mam a̱fwun ===
== Lyennkhang-a̱byin ==
=== Nvam-a̱byin ma̱ng a̱ca̱cet nfam-a̱byin ===
=== Bibyin ===
=== A̱ca̱cet a̱ka̱keang ===
=== Nvam a̱sa̱khwot ===
=== A̱ka̱fan ma̱ng nkyai a̱ji̱jak ===
af628cfv9al18ez7j4dt0p7bd4z9o6u
A̱tsotson
0
299
12190
3107
2022-05-20T15:25:13Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
[[Fail:Morning, just after sunrise, Namibia.jpg|thumb|280px|A̱tsotson, ma̱nang mam sii ghwut a̱ni da̱ a̱vwuokhap a̱ghyang ma̱ a̱byin [[Namibya]]]]
'''A̱tsotson''' ka (á̱ ka ngyei '''a̱tsotswon''' ku '''tsotson''' ku '''tsotswon''' a̱ni) yet jen ja ma̱ng mam ku kyiak neet shong a̱tson si̱ sak jen mam nghwut a̱ sai a̱ni. A̱tsotson ka, ka̱ a ni̱ byiat a tyia̱, "Foo ma̱ng a̱tsotson ka".
==Ya̱fang==
<references/>
hgi74ymu6l8xdtgas873k6j3qhewaip
A̱tsotwon
0
300
3109
3108
2022-05-16T12:46:48Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[A̱tsotson]]
q69qu5mzid0ehmls5zsolp0avnaiv3b
Mam Sa̱t (Naijeriya)
0
301
14353
13567
2022-06-13T10:23:12Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
'''Mam Sa̱t''' yet mam fwung a̱byin hwa mami [[Naijeriya]], á̱ song a̱tuk mam nyiung Zwat Swak kuzang a̱lyia̱. Huhwa ntak jen ji̱ nang a̱byin Naijeriya ku shei cat sa̰t nka hu ma̱ng shyia̱ hu da̱ a̱vwuo [[A̱bi̱ri̱ti̱n]] ba ba̱ ku nyia̱ tyok tazwa mba ma̱ a̱tuk mam 1 Zwat Swak 1960.<ref>[https://fmic.gov.ng/1st-october-nigerias-history/ 1st October in Nigeria's history] (di̱n Shong). 30 Zwat A̱kubunyiung 2016.</ref>
== Bu nwuan ==
*Lyulyoot mman sa̱t bibyin swanta
== A̱ka̱fwuop nta ==
* [https://www.youtube.com/watch?v=C-0042HPq5k 1971 Independence Day Parade]
==Ya̱fang==
<references/>
[[Sa:Mmam sa̱t|Naijeriya]]
[[Sa:Mmam sa̱t|Naijeriya]]
[[Sa:Nyiá̱ Zwat Swak]]
[[Sa:Kpaat mi̱ kpaat 1960 mami Naijeriya]]
j0nfpj2wnzuj03mz9qws982tmd1ro5i
A̱tuk Sa̱t (Naijeriya)
0
302
14496
3126
2022-06-13T10:48:43Z
Vargenau
226
Changed redirect target from [[A̱tuk Mam Sa̱t (Naijeriya)]] to [[Mam Sa̱t (Naijeriya)]]
wikitext
text/x-wiki
#REDIRECT [[Mam Sa̱t (Naijeriya)]]
74ytl3psigsqmcgpb3g5ogzzzrw3x3p
A̱tung
0
303
12192
3142
2022-05-20T15:25:33Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
'''A̱tung''' yet tung ndung ma̱ng swat á̱ghyi hwa.
==Ya̱fang==
<references/>
4wl0d433q9hjph83qmfommdqogersyx
A̱turgbak
0
304
3144
3143
2022-05-16T12:46:49Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[A̱turugbak]]
i1hafxujwf5kgw8zxtjjd24i17eu3e8
A̱turugbak
0
305
3149
3148
2022-05-16T12:46:49Z
Jon Harald Søby
8
4 revisions imported
wikitext
text/x-wiki
Swang a̱lyiat jini maai fa:
# [[A̱turugbak mbwak]], ku
# [[A̱turugbak ntak]]
hkwfptb6cikenxjo1u58jv3swudcnqa
A̱turugbak bwak
0
306
3151
3150
2022-05-16T12:46:49Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[A̱turugbak mbwak]]
rhaocpk4q9oic9g0uzn3tzuti0dbhu5
A̱turugbak mbwak
0
307
12193
3166
2022-05-20T15:25:43Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
[[Fail:Sobo 1909 130.png|thumb|Nkukup a̱turugbak mbwak na, na̱ shyia̱ kpa̱sai gbang fam a̱zamyian hu (''swáng a̱lyiat Shong'')]]
'''A̱turugbak mbwak''' wu (á̱kpa: '''a̱yaaturugbak mbwak''' ''ba'') wa yet ga̱swuong ntsa [[Bwak|mbwak]] ji, kpa̱mkpaan ga̱swuong a̱feang ji.
==Bu nwuan==
* [[A̱turugbak ntak]]
==Ya̱fang==
<references/>
g4948xk7y9wmkl3sya68i48vdnl04wz
A̱turugbak ntak
0
308
12052
3173
2022-05-20T14:19:21Z
Hugo.arg
154
wikitext
text/x-wiki
[[Fail:Gray269.png|thumb|Nkunkup kpai ntak a̱zayak hu.]]
[[Fail:Foot on white background (cropped).jpg|thumb|Ga̱swúong ntak a̱tyubishyi]]
'''A̱turugbak ntak''' wu (á̱kpa: '''a̱yaaturugbak ntak''' ''ba'') wa yet ga̱swuong ntsa [[tak]] ji ji̱ swak ma̱ng shi a̱ni.
eh0xr67w0351i8i9jftwvqnlc4xcr2z
A̱turugbak tak
0
309
3175
3174
2022-05-16T12:46:51Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[A̱turugbak ntak]]
2jia05p9qehri3voarmburqpg4vyvf7
A̱tyap
0
310
15529
15528
2022-08-06T13:05:17Z
Kambai Akau
15
wikitext
text/x-wiki
{{Databox|item=Q4217022}}
'''A̱tyap''' ba (ku ''A̱tyab''; a̱tyonyiung: ''A̱tyotyap''; lyulyoot nta [[Jhyo (a̱lyem)|Jhyo]]: ''Batyap'', [[Niragu (a̱lyem)|Niragu]]: ''Kabaza'', [[Kpat (a̱lyem)|Kpat]]: ''Kataf'', ''Katab''; [[Shong (a̱lyem)|Shong]]: ''Atyap people'') yet nwap ja ji̱ shyia̱ di̱ fam [[Susot a̱gwomna̱ti mali Naijeriya|Sot A̱gwomna̱ti Mali]] [[Zangon Kataf]], [[Watyap]] ma̱ng [[Jemaa]] a̱ni ma̱ [[A̱tak Ka̱duna|a̱tak]] [[Si̱tet Ka̱duna]], [[Naijeriya]]. Ba̱ lyiat ma̱ng [[a̱lyem Tyap]] kya, a̱nyiung di̱ [[Lilyem A̱ka̱wa̱tyia̱ Pi̱lato|lilyem A̱tyia̱ka̱u Pi̱lato]] hu.<ref>[https://web.archive.org/web/20121117065345/http://atyap.net/Default.aspx The Atyap Nationality]</ref>
==A̱ni̱nan==
[[Fail:Atyap girl fully dressed.jpg|thumb|Fi̱ng nggwoneam ghyang mi̱ kyang a̱gwai A̱tyap hu]]
[[Fail:An Atyap man in Traditional Attire.jpg|thumb|A̱fai a̱ghyang mi̱ kyang a̱gwai A̱tyap hu]]
===Sheda nkhang ma̱ng si̱ nkyang===
A̱di̱di̱t A̱tyap wu shyia̱ di̱ swat mi̱ fam [[Taada Nok]] hu hwa, ma̱ a̱niak fam a̱za [[A̱ghyui Ka̱duna]] wu, nang á̱ lyen ma̱ng a̱lyiat nghwughwu [[terakota]] na a̱ni.<ref name=philips>Philips, J. E. (2005). ''Writing African history''. Boydell & Brewer. P. 15ff ISBN: 1-58046-164-6.</ref><ref name=AchiH>Achi, B. (2005). [https://books.google.com/books?id=Pq5wGaae5qkC&pg=PA374 ''Local History in Post-Independent Africa'' in Writing African history.] P. 375</ref>
[[Fail:Head, Nok culture, terracotta, Honolulu Museum of Art, 8349.1.JPG|thumb|A̱pyia̱, Taada Nok, terakota, Honolulu Museum of Arts]]
Á̱ ku ta̱taat tityan [[Byii̱k ntswam|byii̱k a̱dyundyung tswam]] ma̱ a̱byin A̱tyap ka. Á̱ shyia̱ si̱ jini ma̱ a̱di̱di̱t di̱ fam Gan hwa ma̱ng a̱ka̱vwuonswat na̱ shyia̱ da̱ a̱beam. Nkyang na̱ bwat a̱ja a̱ni ni̱nia yet: a̱yaasi̱lag, a̱yaatwiya ma̱ng a̱ka̱sha̱ndong byii̱k ntswam. Di̱ tityang sweang mami A̱yit Mapama da̱ khwong cen Sancinyiriyan ma̱ng si̱ Cen Fwuam ma̱ A̱ta̱bat A̱ta̱nyeang, a̱yaasi̱lag ma̱ng a̱yaatwiya ba̱ bwat ma̱ a̱ja a̱ni ku shyia̱ á̱kpa di̱ mkpa̱m nia. Sa nkhang jini si̱ ki njhyem ma̱ng nkuu na̱ sang a̱tsuung na̱ shyia̱ ma̱ a̱ja ma̱ng wa a̱fan hu mi̱ Bakungkung A̱fang (9°55'N, 8°10'E) ma̱ng Tsok Fwuam (9°51'N, 8°22'E) mi̱ Gan ma̱ng A̱ta̱bat A̱ta̱nyeang, ma̱ ca̱caat. Zop jhyiung ja si̱ mun tyai [[Lung nkyang a̱kpa̱u a̱byin ma̱ a̱gang|a̱bubwong lung á̱kpa̱u nfang]] fwu ntswam ma̱ a̱di̱di̱t (9°58.5'N, 8°17, 85'E).<ref name=Bitiyong>Bitiyong, Y. I. (1988). ''"Preliminary Survey on Some Sites in Zangon Kataf District of Upper Kaduna River Basin": African Study Monograms.'' Pp. 97–107</ref>
Zóp ji̱ khwi a̱ni si̱ tyai nyia̱ á̱ bu nta̱taat a̱bubwong á̱ghyang nang á̱si̱ bania̱u, si̱ ku fa nyia̱ dung a̱bun ntswam ku naat a̱ mbwuot ba̱t di̱ fam a̱hwa.<ref name=Jemkur>Jemkur, J. F.; Bitiyonɡ, Y. I.; Mahdi, H.; Jada, Y. H. Y. (1989). ''"Interim Report on Fieldwork Conducted on the Nerzit Reɡion (Kaduna State) on Traditional Farminɡ in Niɡeria, Ahmadu Bello University, Zaria"''.</ref>
<ref name=Achi>Achi, B.; Bitiyonɡ, Y. A.; Bunɡwon, A. D.; Baba, M. Y.; Jim, L. K. N.; Kazah-Toure, M.; Philips, J. E. (2019). ''"A Short History of the Atyap''". Tamaza Publishinɡ Co. Ltd., Zaria. Pp. 9-245 ISBN: 978-978-54678-5-7</ref>
==A̱bansusot ma̱ng kwaí==
{{Main|A̱bansusot A̱tyap ma̱ng kwaí}}
==Kwai-nfwuo-á̱niet==
{{a̱tsak|A̱byintyok A̱tyap}}
Lilyim nang á̱ mkpaat [[A̱byintyok A̱tyap]] ka ma̱ a̱lyia̱ 1995 a̱ni, A̱tyap ba si̱ shyia̱ á̱gwam a̱tat ba̱ ku nyia̱ tyok tazwa mba, nang á̱ ngyei ''A̱gwatyap'' a̱ni, a̱wot magwam ka si̱ shyia̱ A̱tak Njei mi̱ Sot A̱gwomna̱ti Mali [[Zangon Katab]] ma̱ [[A̱tak Ka̱duna|a̱tak]] [[Si̱tet Ka̱duna]], Naijeriya. A̱gwam a̱fwun wu, [[Dominic Yahaya|A̱tyushi, A̱gwam Dominic Gambo Yahaya (KSM), Agwatyap III]], yet A̱gwam Shi A̱son wa mi̱ si̱tet ji.<ref>{{Cite web |url=https://localgov.kdsg.gov.ng/?page_id=31 |title=Ministry of Local Government Affairs |access-date=10 July 2020 }}</ref>
==A̱ca̱cet á̱niet==
* [[Ba̱la A̱ci]] (a̱tyokhwu): A̱tyulyen nkhang Naijeriya, a̱tyutyiet, ma̱ng a̱tyulyuut.
* [[Isaiah Balat|Sen. Isaiah Balat]] (a̱tyokhwu): Minista Nta̱m ma̱ng A̱ka̱sa Naijeriya (1999–2000); Seneto a̱ yong a̱kwonu Distrik Senet Ka̱duna ma̱ A̱tak (2003–2007); a̱ ku bu yet a̱tyubwuang, a̱nyan wa ku kpaat ''Gora Oil and Gas'' a̱ni.
* [[Musa Bityong|Lt. Col. Musa Bityong (a̱tyokhwu)]], Ofisa [[A̱khwot A̱kwop A̱byin Naijeriya]].
* [[Sunday Marshall Ka̱tung|Sunday Marshall Katung (Barr.)]]: Memba Mali Á̱ghyi Naijeriya di̱n jen gbangbang a̱ ku yong a̱kwonu famkhai mundundung Jaba/Zangon-Kataf, a̱wot a̱ si̱ bu yet a̱kpa̱ndang cung a̱tyucat gwomna [[People's Democratic Party (Nigeria)|People's Democratic Party]] mi̱ khaí a̱lyia̱ 2019 [[Si̱tet Ka̱duna]], Naijeriya.
* [[Toure Kaza̱-Toure|Toure Ka̱za-Toure]] (a̱tyokhwu), A̱tyulyen nkhang Naijeriya, a̱tyubyia̱lyen, a̱tyucat muná̱pyia̱ á̱niet Afrika a̱ni
* [[Marok Ga̱ndu]], a̱tyu nkhang gbangbang di̱ fam Jenshyung Afrika.
* [[Danjuma Laah|Sen. Danjuma Laah]]: Seneto a̱ shyia̱ di̱ yong a̱kwonu Distrik Senet Ka̱duna ma̱ A̱tak (2015-mam a̱fwun); a̱ bu si̱ ngyet a̱tyubwuang wa di̱ fam ba̱ng á̱niet.
* [[Zama̱ni Lyekhwot|Maj. Gen. Zamani Lekwot (Rtd.), MNI]]: Gwomna [[A̱khwot A̱kwop A̱byin Naijeriya|a̱khwot a̱kwop]] a̱si̱ [[Si̱tet Rivas|Rivas]], Naijeriya (1975–1978); A̱gba̱ndang Á̱ghyi/Komishyona Naijeriya mi̱ A̱yaari̱pobi̱lik [[Senegal]], [[Ma̱uri̱taniya]], [[Kabo Verde]] ma̱ng [[Ga̱mbiya]].<ref>[http://www.premiumtimesng.com/national-conference/profile-zamani-lekwot ''PROFILE: Zamani Lekwot''.] Premium Times Nigeria.</ref>
* [[Kyuka Lilymjok]] (Prof.): A̱tyulyuut Naijeriya, a̱tyubwoidi̱dam, ma̱ng professor of Law.
* [[Ishaya Shekari|AVM Ishaya Shekari (Rtd.)]]: Gwomna A̱khwot a̱kwop [[Si̱tet Ka̱na̱u]] (1978–1979), Naijeriya; a̱ bu si̱ ngyet a̱gba̱ndang a̱tyubwuang wa.
* [[Andrew Yakubu|Engr. Andrew Laah Yakubu (Rtd.)]]: Dairekto Tyong Sot ''Nigerian National Petroleum Corporation'', NNPC (2012–2014).
==Bu nwuan==
* [[Jhyá̱ 1992 Zangon Kataf]]
* [[Bwuok A̱fan]]
* [[Song A̱yet A̱tyap]]
* [[A̱tak Ka̱duna]]
==Ya̱fang==
<div style="height: 200px; overflow:auto; border: 1px solid gray; padding-right: 12px; background-color: #EEEEEE; ">
<references />
</div>
==Fang a̱pyia̱==
* Kazah-Toure, Toure (2012). [https://www.citizenshiprightsafrica.org/CDD_Citizenship_and_Indigeneity_Conflicts_in_Nigeria.pdf ''Citizenship and Indigeneity Conflicts in Nigeria'']. [Identity Conflicts: Belonging and Exclusion in Zangon Katab]. Citizenship Rights Africa. Pp. 88-121.
[[Sa:A̱tyap| ]]
[[Sa:Nnwap_swanta]]
[[Sa:Nnwap_Afrika]]
[[Sa:Nnwap mi̱ Naijeriya]]
[[Sa:Naijeriya]]
[[Sa:Á̱niet_lilyem_Nija–Konggo]]
[[Sa:A̱kat a̱pyia̱]]
mmbb4tl4ryh7dy1ikk2cz1ug8la3knq
A̱tya̱m
0
311
3281
3280
2022-05-16T12:47:13Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[A̱tyem]]
he3dkko3cwwr8udixluqt4wka2ob17e
A̱tyem
0
312
12195
3300
2022-05-20T15:26:03Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
'''A̱tyem''' (á̱ ka ngyei '''a̱tya̱m'''; ''á̱kpa'': '''Tityem''' ku '''titya̱m''' a̱ni) yet a̱junjung tswam ja, a̱ta̱m ka si̱ li kpa̱kpai, a̱wot a̱ si̱ byia̱ a̱kwon ka̱ gurung ma̱ fang ka a̱ni á̱ ngyei khwukhwo. A̱tyem yet kyang nta̱m khap hwa.
Tityem hu vwuon da̱ a̱ka̱keang, á̱ghyang tswam ji shyit a̱ka̱za, á̱ghyang mameang tswam ji li a̱bakum.
==Ya̱fang==
<references/>
owgioha590up4hl0e23pbffrxikfy8n
A̱tyetuk
0
313
12196
3315
2022-05-20T15:26:13Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
[[Fail:Mayfair, London, UK - panoramio (8).jpg|thumb|right|A̱gba̱ndang A̱gaat Regent, [[London]], mi̱ tswam 10:00 jk]]
'''A̱tyetuk''' ku '''a̱kyetuk''' yet jen ja nang a̱vwuosai ka tyak, a̱wot lyin si nwuo. Jen ji na kyiak doot nang tswam a̱ni̱nai jenshung a̱ni.
==Ya̱fang==
<references/>
pnx6wbxh4287bpa9fnu5e9i3r20jcnh
A̱tyiak
0
314
12197
3326
2022-05-20T15:26:23Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
[[Fail:Weewee.JPG|thumb|upright=0.5|Kidee a̱tyiak a̱tyubishyi]]
'''A̱tyiak''' yet a̱tai-a̱sa̱khwot nia̱ na̱ ghwut "tatak" a̱tyubishyi ku [[nyam]].
Ka̱ a̱sa̱khwot á̱ swuo na̱ si̱ nwuo ma̱ng vam, vam hu ni̱ jaat nkap na̱ shyia̱ mami a̱fa ka a̱ni, a̱byia̱byia̱ a̱sa̱khwot ni̱nia̱ ghwut di̱ yet a̱tyiak.
==Ya̱fang==
<references/>
82a5k0rucr2xn31s4dnvnkpkbkfgy4d
A̱tyia̱
0
315
12198
3334
2022-05-20T15:26:33Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
'''A̱tyia̱''' wu (á̱kpa: '''a̱yaatyia̱''') yet [[a̱nietmbyin]] [[nggwon]] wa a̱ yet a̱sam a̱ni.
==Ya̱fang==
<references/>
8nkdoj9o73rnqc2jifnv499wws25pv1
A̱tyia̱-a̱khwop
0
316
12199
3346
2022-05-20T15:26:43Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
'''A̱tyia̱-a̱khwop''' yet [[a̱nietmbyin]] a̱ tyia̱ [[a̱tyia̱]] ku [[a̱yang]] a̱yin wa a̱ni.
==Ya̱fang==
<references/>
m7rwbrpilye49o9htud91mi7q485i3e
A̱tyia̱ka̱u a̱tyetuk
0
317
12200
3369
2022-05-20T15:26:53Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
[[Fail:Midnight Mist.jpg|thumb|Á̱ kyiak ghwughwu huni a̱tyia̱ka̱u a̱tyetuk]]
'''A̱tyia̱ka̱u a̱tyetuk''' (ku '''a̱tyia̱ka̱u a̱kyetuk''') yet jen shyiak mam nyiung ma̱ng a̱ghyang a̱tuk kya. Jen a̱ja ja mam zwat ma̱ng tswam jen ni̱ nshai da̱ a̱vwuo a̱ni. A̱tyia̱ka̱u a̱tyetuk ka vwuon ma̱ng a̱tyia̱ka̱u a̱ta̱mam ba̱ng si̱ tat awa 12.
=Ya̱fang=
<references/>
fo8i4kswbzqq9fxm09jihj3tz33rzwr
A̱tyii (kyangtutu)
0
318
14221
13622
2022-06-13T10:08:52Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
[[Fail:Writing table (bureau plat) MET DP105403.jpg|thumb|275px|A̱tyii lyuut ''Rococo''; 1759; ''lacquered oak, gilt-bronze mounts and lined with modern leather; height: 80.6 cm, width: 175.9 cm; [[Metropolitan Museum of Art]] (New York City)'']]
'''A̱tyii''' wu (á̱kpa: '''a̱yaatyii''' ''ba'') yet kyang tutu hwa ku li ma̱ a̱kpa̱kpai di̱ fam a̱za nggu hu, ku si̱ byia̱ tak nyiung ku a̱ti̱tak ma̱ a̱di̱di̱t, nang á̱ nyia̱ ta̱m tazwa nhu, á̱ ya kyayak ku á̱ sak nkyang a̱ni.
==Ya̱fang==
<references/>
[[Sa:Kyangtutu]]
[[Sa:A̱yaatyii (kyangtutu)| ]]
e3amuusdcj1rlyntypd0amud6a0enxw
A̱tyin a̱ga̱fi̱p
0
319
12202
3390
2022-05-20T15:27:13Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
'''A̱tyin a̱ga̱fi̱p''' yet kyang nswuan kwa shyiat nkyayak na bi nuwam ni.
==Ya̱fang==
<references/>
kerrha45dpp3be2rmf629yqpb0o8gwf
A̱tyin pyia̱
0
320
12203
3404
2022-05-20T15:27:23Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
'''A̱tyin pyia̱''' ka (á̱kpa: '''pyia̱''' ''hu'') yet cat hwa ku laai a̱pyia̱ a̱tyubishyi a̱ni. Pyia̱ hu vwuon di̱ tityan. Bibyin ghyáng, pyia̱ mba hu laai a̱junjung; bibyin ghyáng, pyia̱ a̱nyiuk hu li junjung a̱wot si̱ á̱tyok hu si̱ lat a̱swap.
==Ya̱fang==
<references/>
inykpff1oxs2u2mvhk8tdxdfp0ma03i
A̱tyinjwaat
0
321
12204
3415
2022-05-20T15:27:33Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
[[Fail:4_shrews.jpg|thumb|Tityinjwaat naai]]
'''A̱tyinjwaat''' yet a̱da̱dai nyam a̱yit wa, a̱ li nang cyui a̱ni a̱ si̱ mbyia̱ a̱junjung zwua̱i.
==Ya̱fang==
<references/>
l8130ape7jjs9dcvufxd20h5xlzso1f
A̱tyinjwuat
0
322
3417
3416
2022-05-16T12:47:17Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[A̱tyinjwaat]]
4oj8fni4bge0d8pm8ejwzj7vhyck1m0
A̱tyiusan
0
323
3419
3418
2022-05-16T12:47:17Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[A̱tyusan]]
f9qhuf0vmnkful3hh3rqx5xq8t3ha50
A̱tyusan
0
324
12205
3436
2022-05-20T15:27:43Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
'''A̱tyusan''' yet a̱yin wa a̱ nwuak a̱pyia̱ nggu mat san swuan a̱ghyang a̱niet.
==Khwi==
A̱tyusan (Krista): Yet nggwon
A̱gwaza kya á̱ sa ngyei Yesu a̱ni.
==Ya̱fang==
<references/>
1760fzy21oxpp1s5zcdr8ouol83m1z2
A̱tyushei A̱lyiat A̱gwaza
0
325
14783
14782
2022-07-09T16:39:16Z
Kambai Akau
15
wikitext
text/x-wiki
{{Databox|item=Q432386}}
[[Fail:Jesus-SermonOnTheMount (cropped).jpg|thumb|[[Yesu]] ku yet a̱tyushei A̱lyiat A̱gwaza wa a̱ ku cong a̱vwuo ma̱ng a̱vwuo di̱ shei a̱lyiat Tyai Á̱zanson ma̱ a̱byin Yahudiya sa̱ncuri 1 ka]]
'''A̱tyushei A̱lyiat A̱gwaza''' wu (á̱kpa: '''Á̱nietshei A̱lyiat A̱gwaza''' ''ba''), nggu wa yet a̱tyu a̱ lyiat ma̱ng á̱kpa á̱niet tazwa á̱lyiat khwi (ku a̱dini) a̱ni. A̱wot á̱ si̱ byia̱ á̱ghyang á̱niet ba̱ shei a̱lyiat na̱ nwai yet A̱lyiat A̱gwaza a̱ni bah ba̱ cong shei á̱lyiat tazwa á̱di̱dam a̱tyubishyi nia a̱ni.
==Bu nwuan==
* [[Pato]]
==Ya̱fang==
<references/>
[[Category:Nta̱m khwi]]
6i4hzswhkhj85oxbjbit5gp7091toxj
A̱vu
0
326
3446
3445
2022-05-16T12:47:18Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[A̱bwu]]
7h97ywe6et4wlccpmpnkcds068buwy4
A̱vwou sak kurum
0
327
3449
3448
2022-05-16T12:47:18Z
Jon Harald Søby
8
2 revisions imported
wikitext
text/x-wiki
#REDIRECT [[A̱lisaaikurum]]
ok5e60qrlm9he8e6gyeo3f4tmy363nb
A̱vwuoa̱tung Á̱nietkhwikristi A̱byin
0
328
12207
3452
2022-05-20T15:28:03Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
[[Fail:Catedral Nacional em Abuja, Nigéria.jpg|197px|right]]
'''A̱vwuoa̱tung Á̱nietkhwikristi A̱byin''' (á̱ ku lyen nang A̱vwuoa̱tung Susot Á̱nietkhwikristi A̱byin a̱wot di̱n jen jhyang á̱ ka ngyei Cod A̱byin Naijeriya) yet a̱vwuo kyuak ntong a̱zaghyi A̱gwaza kya ma̱ a̱byin Naijeriya mami a̱keangtung a̱byin ka, A̱buja. A̱vwuoa̱tung ka yet nok cod a̱si̱ a̱mgba̱m susot á̱nietkhwikristi hwa.
f868dtqueauw8wfk4ej16w7w3jlm7v0
A̱vwuokpaa̱pyia̱
0
329
12208
3463
2022-05-20T15:28:13Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
[[Fail:Abuja National Mosque.jpg|thumb|Nok A̱vwuokpaa̱pyia̱ A̱byin Naijeriya]]
'''A̱vwuokpaa̱pyia̱''' ka (á̱ ka ngyei '''a̱ma̱sa̱laci''' ku '''a̱likpaa̱pyia̱'''; á̱kpa: '''a̱ka̱vwuokpaa̱pyia̱''' ''na'') yet tyan nang á̱kpaa̱pyia̱ ba ncong á̱ nnaai a̱wot á̱ nkyuak A̱gwaza mba wu ntong a̱ni.
==Ya̱fang==
<references/>
2q3wi28qc6b3z0cq4zgzynnb5h0jyyt
A̱vwuosaaikurum
0
330
3465
3464
2022-05-16T12:47:19Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[A̱lisaaikurum]]
ok5e60qrlm9he8e6gyeo3f4tmy363nb
A̱waktong
0
331
15397
15396
2022-07-27T19:51:33Z
Kambai Akau
15
wikitext
text/x-wiki
{{Databox}}
'''A̱waktong''' yet a̱zazarak tong wa nang [[Shwai|shwaí]] koot a̱ni.
[[Sa:A̱waktong|A̱waktong]]
==Nghwughwu==
<gallery mode="packed" style="font-size:88%; line-height:130%">
File:Western honey bee on a honeycomb.jpg|Shwai A̱shong jhyang tazwa a̱waktong
File:Honeycomb-Process.png|Shwaí ji sii ntsa nok a̱wak ka kyiak neet di̱ fam a̱za kuzang tamm. Ka̱nang ji̱ nhyat swang jhyiung ma̱ng tong, shwaí ji ni̱ nkup nji ma̰ng a̱wak.
File:BDHoneycomb.JPG|A̱za̱za̱rak a̱waktong a̱zanok a̱ghyang
File:Bienenwabe mit Eiern und Brut 5.jpg|A̱waktong ma̱ng cyi mbeang a̱yaalava
File:Apis florea nest closeup2.jpg|Closeup of an abandoned ''[[Apis florea]]'' nest in [[Thailand]]. The hexagonal grid of wax cells on either side of the nest are slightly offset from each other. This increases the strength of the comb and reduces the amount of wax required to produce a robust structure.
File:Honey comb.jpg|Honeycomb
File:Natural Beehive and Honeycombs.jpg|The lower part of the natural comb of ''[[Apis dorsata]]'' has a number of unoccupied cells.
File:Bienenwabe Ausbau der Mittelwand 79a.jpg|"Artificial honeycomb" foundation plate in which bees have already completed some cells
File:TransitionalHoney.jpg|thumb|upright=1.5|Tamm a̱waktong ma̱ng mban kyiak neet di̱ swáng a̱tyuta̱m naat á̱si̱ a̱vap (a̱ca̱cet) – a̱ji wu shwaí ji nyia̱ swáng ji̱ nwai byia̱ shi a̱ma̱nta nyiung a̱ni bah ma̱ng á̱si̱ ji̱ byia̱ á̱ta̱m a̱fwuon a̱ni (á̱ cak ma̱ng a̱shong nta̱p).
File:Western Honey Bees and Honeycomb.JPG|Shwaí A̱shong (fam Jenshyung swanta) ma̱ng a̱waktong
</gallery>
7t41olwn7fqqmv3s76636jryd4pvuiy
A̱wa̱ra̱ma̱nde
0
332
3486
3485
2022-05-16T12:47:20Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[A̱wurumma̱nde]]
732tamxtt4my0dn54vriuo7ukzdegap
A̱wurumma̱nde
0
333
12210
3501
2022-05-20T15:28:33Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
[[Fail:Global famines history.jpg|thumb|A̱yaawurumma̱nde swanta mmam nani kyiak neet da̱ a̱ka̱wa̱tyia̱ sa̱ncuri 19 ka|382x382px]]
'''A̱wurumma̱nde''' (ku '''A̱wurumma̱nde''' ku '''A̱wa̱ra̱mm̱nde''' ku '''A̱wuri̱mma̱nde''') yet a̱gba̱ndang zong kyayak wa.<ref>[https://www.wfp.org/fight-famine Fighting famine] (di̱n Shong). wfp.org. ''World Food Programme''.</ref> Zong ji ni̱ bai da̱nian zwang, nwai yong nkyang khap, shi á̱kpa á̱niet, sang zwa ku nwai la̱p vam a̱gwomna̱ti.
==Ya̱fang==
<references/>
f8kwitvolvqtaku16f7fsmlbi9pfrae
A̱yaa Banki Najeriya
0
334
3504
3503
2022-05-16T12:47:20Z
Jon Harald Søby
8
2 revisions imported
wikitext
text/x-wiki
#REDIRECT [[A̱ka̱sasaaikurum Naijeriya]]
c8oqyq14ktsb3zyhqtpkj8v3d615fhl
A̱yaaba̱nki Naijeriya
0
335
3506
3505
2022-05-16T12:47:20Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[A̱ka̱sasaaikurum Naijeriya]]
c8oqyq14ktsb3zyhqtpkj8v3d615fhl
Muná̱pyia̱ Sí̱tet
0
336
14776
14767
2022-07-07T09:33:07Z
NicoScribe
356
Undo revision 14767 by [[Special:Contributions/115.179.90.147|115.179.90.147]] ([[User talk:115.179.90.147|talk]]) ?
wikitext
text/x-wiki
{{Country
|name = Muná̱pyia̱ Sí̱tet Amerika
|flag = Flag of the United States.svg
|coa = Greater coat of arms of the United States.svg
|image = USA orthographic.svg
|capital = Washington DC
|area = 9 833 520
|population = 331 893 745
|year = 2021
}}
'''A̱bwom a̱byin''': "The Star-Spangled Banner"<ref>[https://uscode.house.gov/statviewer.htm?volume=46&page=1508 An Act to Make the Star-Spangled Banner the national anthem of the United States of America]" (di̱n Shong). H.R. 14, Ta̱m Zwat Tsat 3, 1931. 71st United States Congress.</ref>[[File:Star_Spangled_Banner_instrumental.ogg]]
[[Fail:Great Seal of the United States (obverse).svg|thumb|A̱gba̱ndang A̱timi Muná̱pyia̱ Sí̱tet Amerika wu (a̱zaghyi)]]
[[Fail:Great Seal of the United States (reverse).svg|thumb|A̱gba̱ndang A̱timi Muná̱pyia̱ Sí̱tet Amerika wu (a̱zama)]]
A̱byin '''Muná̱pyia̱ Sí̱tet''' ('''M.S.''' ku '''MS''') ka ku '''Amerika''' (Shong: The United States, U.S. ku US, ku Amerika), á̱ lyen ma̱ng a̱lyoot a̱gwomna̱ti ka nang '''Muná̱pyia̱ Sí̱tet Amerika''' ('''M.S.A.''' ku '''MSA''') (Shong: United States of America, U.S.A. ku USA) a̱ni, yet a̱byin kya ka̱ la̱u shyia̱ di̱ vam-a̱byin [[Amerika A̱za]] hwa. Ka̱ byia̱ sí̱tet 50 ja, distrik mundundung a̱nyiung, a̱ca̱cet a̱yaateritori a̱fwuon na̱ng á̱ ku fwuop ma̱ng a̱tsak a̱byin ka di̱ yet kyang nyiung bah, Indian reservations 326, ma̱ng a̱cyuang nzwa a̱byin á̱ghyang. Ma̱ng shi kyai a̱byin kilomita a̱ma̱ntaa̱naai miliyon 3.8 (met a̱ma̱ntaa̱naai miliyon 9.8), kikya yet a̱tat ku a̱naai ka̱ swak ma̱ a̱mgba̱m shi kyai a̱byin mi̱ swanta hu. Muná̱pyia̱ Sí̱tet hu byia̱ a̱junjung a̱gi̱gak ma̱ng [[Ka̱na̱da]] di̱ fam a̱za hu ma̱ng [[Mikziko]] di̱ fam a̱tak hu, a mbeang a̱cyuang a̱gi̱gak a̱sa̱khwot ma̱ng [[Kuba]], [[Roshiya]], ma̱ng Ba̱hamat hu.<ref>"[https://www.worldatlas.com/articles/countries-with-which-the-us-shares-maritime-borders.html#:~:text=The%20US%20shares%20maritime%20borders%20with%20several%20countries%2C,and%20the%20Russian%20Federation%20by%20only%2090%20kilometers. Countries with Which the US Shares Maritime Borders]".</ref> Ma̱ng shi á̱niet ku swak miliyon 331 a̱ni, kikya si̱ yet a̱tat mi̱ shi á̱niet mi̱ swanta hu. A̱keangtung nka ka, kikya yet Washington, D.C., a̱wot a̱gba̱ndang a̱keang nka wu a̱ swak mi̱ shi a̱ni wa A̱keang New York.
==Ya̱fang==
<references/>
{{Template:Bibyin Amerika A̱za}}
[[Sa:Bibyin_swanta]]
[[Sa:Bibyin_Amerika]]
[[Sa:Bibyin_Amerika_A̱za]]
[[Sa:A̱yaasi̱tet_Muná̱pyia̱]]
2eo1e6ppggjgyx55u8rirfibr5xb69j
A̱yang
0
337
12212
3544
2022-05-20T15:28:53Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
'''A̱yang''' wu (á̱kpa: '''a̱yaayang''' ''ba'') yet a̱nap [[a̱nietmbyin]] [[nggwon]] wa. A̱yaayang bya yet a̱nyiuk ba̱ swan swat tyei mman ba, mman na doot na̱ yet á̱si̱ mba ki á̱si̱ mba nia bah.
==Ya̱fang==
<references/>
ds9gcmwll96jlir214gthxel190m1h7
A̱yang-a̱khwop
0
338
12213
3553
2022-05-20T15:29:04Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
'''A̱yang-a̱khwop''' yet [[a̱nietmbyin]] a̱ byin [[a̱tyia̱]] ku [[a̱yang]] a̱yin a̱ni.
==Ya̱fang==
<references/>
5mx2brzzbiyq48yk65dkimw2yq7x0q6
A̱yeba
0
339
12214
3567
2022-05-20T15:29:13Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
'''A̱yeba''' yet tswun akwan.
==Ya̱fang==
<references/>
6yu7vb80kxnps8freagaj33xilwh0b1
A̱yet
0
340
15277
14738
2022-07-21T22:25:04Z
ZabesBot
156
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
{{Databox|item=Q626066}}
'''A̱yet''' wu (á̱kpa: '''a̱yaayet''' ''ba'') yet ya ma̱ng swuo, ma̱ng bwom bubwom ma̱ng song nang á̱nietbishyi nyia̱ a̱ni mat ba̱ tak a̱gwai mba na kpa̱sai.
==Ya̱fang==
<references/>
9vkvfvu428kfti605guilrivuei62az
A̱za Korea
0
341
3578
3577
2022-05-16T12:47:23Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[Kworiya A̱za]]
3z9pg6z1kydjvtz7ooqagdgi9vc3xoj
A̱zaki
0
342
12215
3593
2022-05-20T15:29:23Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
[[Fail:Lion waiting in Namibia.jpg|thumb|A̱ba a̱zaki mi̱ Okonjima, [[Namibya]]]]
[[Fail:Okonjima Lioness.jpg|thumb|Sha̱p a̱zaki mi̱ Okonjima]]
'''A̱zaki''' ku '''Zaki''' ''wu'' (''akpa'': '''a̱yaazaki''' ''ba'') yet nyam a̱yit wa nang á̱ ka ngyei '''a̱gwam nyám''' a̱ni.
==Ya̱fang==
<references/>
c5om2joizse25yleehidyvf7q7n86qg
A̱za̱za̱rak nzwa Naijeriya
0
343
3595
3594
2022-05-16T12:47:23Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[Tung nzwa Naijeriya]]
qgsr0hmmg4qulzszuqhqvy9ydzepbga
A̱zwuam a̱nap
0
344
3609
3608
2022-05-16T12:47:24Z
Jon Harald Søby
8
13 revisions imported
wikitext
text/x-wiki
'''A̱zwuam a̱nap''' yet a̱na̱nyiuk (a̱nap) a̱byiik a̱yin a da̱ vwuo a̱tyiok ngu ka. A̱zwuam a̱nap bu yet a̱na̱nyiuk (a̱nap) a̱tyiok da̱ vwuo a̱byiik ngu ka.
''A̱kpa'': '''Á̱zwuam''' - Ka̱ a̱byiik byia̱ ána̱nyiuk á̱nap, ba yet '''á̱zwuam''' bya̱ da̱ vwuo a̱tyiok ngu ka. Ma a̱nyia wa ka̱ a̱tyiok byia̱ a̱na̱nyiuk a̱nap, ba yet '''a̱zwuam''' a̱byiik gu bya.
==Ya̱fang==
<references/>
ng3pzvepi3tdgfakvrox360fiqfsg1p
A̱zwuam a̱sam
0
345
3625
3624
2022-05-16T12:47:24Z
Jon Harald Søby
8
15 revisions imported
wikitext
text/x-wiki
'''A̱zuam a̱sam''' yet a̱nanyiuk (a̱sam) a̱byiik a̱yin a da vwuo a̱tyiok ngu. A̱zwuam a̱sam bu yet a̱na̱yiuk (a̱sam) a̱tyiok a̱yin a da vwuo abyiik ngu.
''A̱kpa'': '''Á̱zwuam á̱sam''' - ka̱ a̱byiik byia̱ a̱na̱nyiuk a̱sam, ba̱ yet '''á̱zuam''' a̱tyiok ngu bya. Ma a̱nyia̱ wa ka a̱tyiok byia̱ a̱na̱nyiuk a̱sam ba̱ yet '''á̱zwuam''' a̱byiik ngu bya.
==Ya̱fang==
<references/>
604swpl6g7xyl4b3nivcvr9wxsc7smk
A̱zwuan
0
346
3627
3626
2022-05-16T12:47:24Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[A̱zwuan dyang]]
j8ow4v459guxur4907lo4fx1j9owxcx
A̱zwuan dyang
0
347
12216
3646
2022-05-20T15:29:33Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
[[Fail:Belt-clothing.jpg|197px|right]]
'''A̱zwuan''' yet a̱ywan kya nang á̱ vwuoi ma̱ng dyang a̱ni. A̱zwuan ka beang di̱ ba̱ng a̱ta̱p a̱cyok wu mi̱ ci̱p.
==Ya̱fang==
<references/>
raykbo2lmtuyishp7p91onl380ihjfp
BBC Hausa
0
348
3660
3659
2022-05-16T12:47:26Z
Jon Harald Søby
8
13 revisions imported
wikitext
text/x-wiki
'''BBC Hausa''' yet savit ''BBC World Service'' hwa nang á̱ shei nkhang da̱ a̱lyem [[A̱lyem Kpat|Kpat]] ka nang á̱ ku khwuk di̱ ntsa hu, mat mba ba̱ lyiat Kpat ja a̱ni mi̱ bibyin [[Naijeriya]], [[Gana]], [[Ni̱njer (a̱byin)|Ni̱njer]] ma̱ng á̱kum á̱niet ka ka̱ fwuong Kpat ji di̱ fam a̱byin [[Jenshyung Afrika]] hu. Ku yet kap lilyem nta 33 ''BBC'' hu hwa ku shei nkhang, mi̱ zang hwa fwuon yet lilyem Afrika hwa. Savit a̱lyem hu byia̱ tyanta̱m redyo jhyiung, ofit ofit-nta̱m A̱buja ma̱ng a̱ma̱ntei shyim nkhang kuzang a̱tuk ka̱ yet a̱na̱nwuai nkhang a̱ni a̱wot ka̱ ka ghwut ma̱ng nkhang nang zop mi̱ zop a̱ni di̱ lyuut, odyo ma̱ng vidyo a̱wot ka̱ mun yet vak shei nkyang hwa mi̱ redyo a̱zalang. Á̱ shei savit redyo hu neet ''Broadcasting House'' hu hwa ma̱ a̱keang London a̱wot a̱zaghyi jen a̱ja, á̱ jhyuk nkhang na mi̱ ofit ofit-nta̱m BBC wu ma̱ a̱gba̱ndang a̱keangtung [[A̱buja]] wa.<ref>"[http://www.bbc.com/hausa/game-da-mu-37377088 Game da mu]" (di̱n Kpat). ''BBC''.</ref>
[[Fail:BBC Hausa logo.jpg|thumb|A̱lama a̱bwuang BBC Hausa]]
==Ya̱fang==
<references/>
20tobiakspez0gpygpeiu6ics9c54kp
Bafoi
0
349
3668
3667
2022-05-16T12:47:26Z
Jon Harald Søby
8
7 revisions imported
wikitext
text/x-wiki
Bafoi(abun gyei BafoiKanai, Bafai Gora) yet abakayang kya matyaad Kanai mabyin Zango,atak Sitet Kaduna makawotye abin angyei Naijeriya,mamba avwohu yet 80214.
==Ya̱fang==
<references/>
8hecgywxxkwftmsvn8wp4lbzi0e0j5k
Ban
0
350
12217
3678
2022-05-20T15:29:43Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
[[Fail:Valkyrie (The Roaches).jpg|thumb|200px|Á̱nietban a̱fan tazwa ''Valkyrie'' ma̱ ''The Roaches'' mi̱ Staffordshire, [[Nggi̱lan]].]]
[[Fail:Eisklettern kl engstligenfall.jpg|thumb|200px|right| A̱tyuban taan a̱ ban ma̱ng a̱ka̱khwon taan ma̱ng a̱kwatak sa̱kan.]]
'''Ban''' yet nyeak kyang hwa yong ka̱tsak ma̱ng [[Tak|a̱ti̱tak]] mbeang mbwak.
==Ya̱fang==
<references/>
q6jhp2hbljismf831ckvqxplvnz3zks
Bat
0
351
12218
3688
2022-05-20T15:29:53Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
[[Fail:Hadrian%27s_wall_at_Greenhead_Lough.jpg|thumb|Bat Hadrian kpa̱mkpaan Greenhead Lough]]
'''Bat''' hu (á̱kpa '''mbat''' ''na'') yet a̱kpa̱u a̱tai nok wa gu tak gak; ba̱ng kpa̱t; cok, kup, ku vwuong gwaat; ku, mbeang a̱vwuo ka shisham.
==Ya̱fang==
<references/>
5c916yb39qwqq3431glbikoa6yhw816
Ba̱la A̱de Da̱ukee
0
352
14223
13641
2022-06-13T10:09:02Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
'''Ba̱la A̱de Da̱uke Gora (JP)'''<ref>Ndayako, Samuila. [https://www.worldcat.org/title/christological-dispensation-in-northern-nigeria/oclc/763484499 Christological dispensation in Northern Nigeria]. World Cat.</ref> wa ku yet a̱tyuba̱ngtyok á̱son [[A̱byintyok A̱tyap]] wu, ma̱ [[A̱tak Ka̱duna|a̱tak]] [[Si̱tet Ka̱duna]], Fam A̱ka̱wa̱tyia̱ a̱byin [[Naijeriya]]. Á̱ ka ndyen nggu ma̱ng lyulyoot nang ''Kuyan Banan Zazzau'' ma̱ng ''A̱gwatyap I''.<ref name=Alm>THE A̠TYAP 1946 & 1992 HEROES ALMANAC.</ref>
==Ta̱m kwai-nfwuo-á̱niet ma̱ng ba̱ng tyok==
Ma̱ a̱lyia̱ 1964, Da̱ukee kwan di̱ cat cuk A̱li Ghyighyi (A̱yaawukili) [[Fam A̱za, Naijeriya|Fam A̱za]] mi̱ [[Ka̱duna]], a̱ yet a̱ghyi famkhai [[Zangon Katab]] hu, a̱wot a̱ si̱ nwai mat A̱tyotyap a̱ghyang, A̱tyushi Sheka̱ra̱u Ka̱u Laya.<ref name=Election>Yakubu, Abubakar (Zwat A̱ni̱nai 3, 2020). [https://thelinksnews.com/2020/08/03/brief-history-of-zangon-katab/ Brief History of Zangon Katab] (di̱n Shong). The Links News.</ref><ref>Kazah-Toure, T. (1999). [https://www.jstor.org/stable/24484540 The Political Economy of Ethnic Conflicts and Governance in Southern Kaduna, Nigeria: [De]Constructing a Contested Terrain] (di̱n Shong). Africa Development / Afrique et Développement. (24)(1/2). W. 127. JSTOR 24484540.</ref>
Ma̱ a̱lyia̱ 1967, á̱ khai Ba̱la A̱de Da̱ukee Gora a̱ yet A̱bagwam (A̱kimi) Zangon Katab. Si̱ a̱hwa si̱ tyia̱ gu yet nggwon-a̱byin a̱son a̱ yet Krista a̱ni a̱ma̱lyim nang a̱ca̱cet á̱niet A̱tak Zariya (á̱ ngyei [[A̱tak Ka̱duna]] ma̱nini) ku lak Krista a̱ghyang nang á̱ ngyei John Sa̱rki Ta̱fida, ma̱nang ba̱ fa a̱ yet a̱kace wa a̱ni a̱ shyia̱ di̱ cuk a̱ja da̱nian a̱ ku yet [[A̱fa̱taa]] wa neet [[Zariya]].<ref name=Gora>Yahaya, Aliyu (Spring 2016). [https://www.google.com/search?q=%22Colonialism+in+the+Stateless+Societies+of+Africa%3A+A+Historical+Overview+of+Administrative+Policies+and+Enduring+Consequences+in+Southern+Zaria+Districts%2C+Nigeria%22&oq Colonialism in the Stateless Societies of Africa: A Historical Overview of Administrative Policies and Enduring Consequences in Southern Zaria Districts, Nigeria] (di̱n Shong). (8)(1).</ref> Da̱zi̱ya nang á̱ nwuan khai nggu hu nang zang ja mat nang gu ku nwai di̱ mak cat cuk naat A̱li Ghyighyi (A̱yaawukili) [[Fam A̱za, Naijeriya|Fam A̱za]] ka mi̱ [[Ka̱duna]] a̱ni bah, a̱wot, ma̱ a̱tsak a̱lyiat meang, mat á̱ shyim á̱lyiat cat tyok ndyia̱ ma̱ a̱di̱di̱t á̱si̱ [[A̱tyap]] ba ba̱ ka shyia̱ tyok a̱pyia̱ mba, huhwa mbyia̱. Nggu wa ku ba̱ng tyok hu a̱ si̱ labeang a̱ swak konyan a̱zanson ma̱ng a̱ma̱lyim nggu nang A̱bagwam Zangon Katab ma̱ng ''Kuyambanan Zazzau'' a̱ni ba̱ng si̱ tat ndyia̱ 28 (1967-1995) di̱ jen ji nang á̱ sa ti̱n [[A̱tyap]] ba ma̱ tsotswat neet di̱ [[Tyok Musulumi Za̱uza̱u|Kuriya Tyok Musulumi Za̱uza̱u (Zariya)]] mbwak a̱gwomna̱ti a̱khwot á̱kwop [[Si̱tet Ka̱duna]] a̱si̱ Lawal Jafaru Isa ba̱ ku shyia̱ di̱ ba̱ng tyok hu di̱n jen a̱ja, ba̱ si̱ kpaat [[A̱byintyok A̱tyap]]. Ma a̱nia wa, á̱ si̱ bai kup Da̱ukee tyok hu nang ''A̱gwatyap'' (A̱gwam A̱tyap wu) a̱son a̱ yet a̱niet-a̱byin wa a̱ni.<ref name=Election></ref><ref>[https://sprojectng.com/the-politics-of-sharia-implementation-in-nigeria-a-study-of-kaduna-state-1999-2013/ THE POLITICS OF SHARIA IMPLEMENTATION IN NIGERIA: A STUDY OF KADUNA STATE (1999-2013)] (di̱n Shong). sprojectng.</ref><ref>Kazah-Toure, Toure (2012). [https://www.google.com/search?client=ms-android-transsion&biw=320&bih=490&sxsrf=ALeKk03qL0Am85YlI6iIqp1s4XSQoloNYQ%3A1610621169013&ei=8SAAYN0MsqvV8A-D07mwCQ&q=Citizenship+and+Indigeneity+Conflicts+in+Nigeria%5BIdentity+Conflicts%3A+Belonging+and+Exclusion+in+Zangon+Katab%5D+%28PDF%29&oq Citizenship and Indigeneity Conflicts in Nigeria] [Identity Conflicts: Belonging and Exclusion in Zangon Katab]. Citizenship Rights Africa. W. 104.</ref>
==Fam si̱tet==
A̱zaghyi Jhyá̱ 1992 Zangon Katab ji da̱nang á̱ ku yebaat si̱ hu ku swak mman-a̱byin A̱tyap 21, á̱ si̱ fam mba di̱ mi̱n bat a̱hyiak ku mai ca̱caat ma̱ng Cam 2 si̱ 1984 nang a̱gwomna̱ti a̱khwot a̱kwop Naijeriya ba ku kpaat a̱ni. Á̱ghyang á̱niet nang á̱ ku yebaat á̱ fam ma̱ng a̱nggu bya yet [[Dominic Yahaya|Dominic G. Yahaya]] (''A̱tyatyap'' a̱fwun hu), Maj. James Atomic Kude (rtd.), [[Zama̱ni Lyekhwot|Maj. Gen. Zamani Lyekhwot (rtd.)]], ACP Juri Babang Ayok (rtd.), John Perry Kude, Elias Manza, ma̱ng á̱kpa á̱ghyang á̱niet ba̱ yet A̱tyap.<ref name=Watch>Africa Watch (Zwat A̱taa 1993). [https://www.hrw.org/reports/NIGERIA936.PDF NIGERIA: THREATS TO A NEW DEMOCRACY]. (5)(9). Ng. 13-21.</ref>
==Ya̱fang==
<div style="height: 200px; overflow:auto; border: 1px solid gray; padding-right: 12px; background-color: #EEEEEE; ">
<references />
</div>
==A̱ka̱fwuop nta==
[[Sa:Á̱gwam Naijeriya]]
[[Sa:Á̱gwam A̱byintyok A̱tyap]]
[[Sa:Á̱gwam Afrika]]
[[Sa:Á̱nietkwai-nfwuo-á̱niet sa̱ncuri 20 mi̱ Naijeriya]]
[[Sa:kwi_2005]]
[[Sa:Year of birth missing]]
[[Sa:Á̱niet Si̱tet Ka̱duna]]
[[Sa:A̱tyap]]
75v97k47o0zrrtl34ghuw4yr4g3j9rq
Belarut
0
353
14224
13326
2022-06-13T10:09:07Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
{| class="wikitable" align=right border width="200"
| colspan="2" align=center|'''Ri̱pobi̱lik Belarut'''<br>Рэспубліка Беларусь (Belarut)</br>
Республика Беларусь (Roshiya)
|-
| colspan="2" align=center|[[Fail:Belarus (orthographic projection).svg|thumb|300px|center]] <sub>Ta̱si̱la a̱byin Belarut</sub>
|-
| [[Fail:Flag of Belarus.svg|thumb|Tuta a̱byin Belarut]]
|-
| [[Fail:Coat of arms of Belarus.svg|thumb|A̱lama a̱byin Belarut]]
|-
|}
A̱byin '''Belarut''', (a̱lyem Belarut ma̱ng Roshiya: Беларусь, yei Belarut: /bʲɛlaˈrusʲ/, yei Roshiya: /bʲɪlɐˈrusʲ/; Shong: Belarus /ˌbɛləˈruːs/; á̱ ku ngyei a̱wot á̱ ni̱ ka ngyei '''Byeloroshiya''', neet a̱lyem Roshiya Белоруссия ''Byelorussiya''), á̱ lyen ma̱ng a̱lyoot a̱gwomna̱ti ka nang '''Ri̱pobi̱lik Belarut''' wu (a̱lyem Belarut: Рэспубліка Беларусь, ''Ryespublika Byelarus''; Roshiya: Республика Беларусь, Respublika Byelarus; Shong: Republic of Belarus), yet a̱byin kya nang bibyin ghyáng keang di̱ tityak a̱ni di̱ fam a̱byin A̱tyin Yurop. Ka̱ byia̱ a̱gi̱gak ma̱ng bibyin [[Roshiya]] di̱ fam a̱za-a̱tyin hu, Yukren di̱ fam a̱tak hu, Polan di̱ fam jenshyung hu, ma̱ng Lituweniya a mbeang Latviya di̱ fam a̱za-jenshyung hu. Ka̱ kup shi kyai a̱byin kilomita a̱ma̱ntanaai 207,600 (met a̱ma̱ntanaai 80,200) ma̱ng shi á̱niet miliyon 9.3. A̱byin Belarut kya yet 13 ma̱ng shi kyai a̱byin ma̱ng 20 ma̱ng shi á̱niet mami Yurop. Á̱ ka̱u a̱byin ka di̱ nfam a̱byin a̱natat hwa. A̱keang Minsi̱k kya si̱ yet a̱keangtung nka ka ma̱ng a̱gba̱ndang a̱keang a̱ swak ma̱ng shi ma̱ a̱byin ka.
==Ya̱fang==
<references/>
{{Template:Bibyin Yurop}}
[[Sa:Bibyin_swanta]]
[[Sa:Bibyin_Yurop]]
[[Sa:Bibyin_A̱tyin_Yurop]]
kw8rnhiegvs3wu73j48wvyxn6w9idxd
Bene
0
354
3728
3727
2022-05-16T12:47:28Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[Bini (a̱byin)]]
6klbshem9swm6jihfekn0ylahor14cw
Bi
0
355
12220
3744
2022-05-20T15:30:13Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
[[Fail:Bed bug, Cimex lectularius.jpg|thumb|Bi jhyang ji̱ ku kwop a̱ni (''Cimex lectularius'')]]
'''Bi''' ji (á̱kpa: '''bí''' ''ji'') yet a̱da̱dei nyam wa, a̱ li nang [[a̱ga̱swan]] a̱ni. Mi̱ bí ja yet á̱ga̱swan ba̱ ku sa nnyuai á̱ kwak a̱sok a̱tyubishyi.
==Ya̱fang==
<references/>
bzsp4fd37ovnguhdk805abeecd56qs8
Bibi
0
356
3750
3749
2022-05-16T12:47:29Z
Jon Harald Søby
8
5 revisions imported
wikitext
text/x-wiki
#REDIRECT [[A̱bi]]
==tafang==
<reference>
j4injionm9toxox1xh1re1khl198mal
Big Brother Naija
0
357
12221
3758
2022-05-20T15:30:23Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
'''Big Brother Naija''', á̱ za̱ ku ngyei '''Big Brother Nigeria''' a̱ni, a̱ yet ce a̱ka̱nan TV hwa mi̱ [[Naijeriya]] nang á̱ nyia̱ kuzang a̱lyia̱ ani.
==Ya̱fang==
<references/>
4nxnp2oj4x07dwiu048vgzk698nf6y5
Bini (a̱byin)
0
358
14225
13712
2022-06-13T10:09:12Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
{{Country
|name = Ri̱pobi̱lik Bini<br>République du Bénin (Fi̱ransa)
|flag = Flag of Benin.svg
|coa = Coat of arms of Benin.svg
|image = Benin (orthographic projection with inset).svg
|capital = Porto-Novo
|area = 114,763
|population = 11,733,059
|year = 2019
}}
'''A̱bwom a̱byin''': "L'Aube Nouvelle" (''Tyai Mam Fai'') <br>[[File:L'Aube Nouvelle.ogg]]
A̱byin '''Bini''' ku '''Bene''' (Shong: Benin /bɛˈniːn/; Fi̱ransa: Bénin /benɛ̃/), á̱ lyen ma̱ng a̱lyoot a̱gwomna̱ti nka nang '''Ri̱pobi̱lik Bini''' wu (Fi̱ransa: République du Bénin; Shong: Benin Republic) (á̱ ku ngyei Dahomei gbangbang), yet a̱byin kya di̱ fam a̱byin [[Jenshyung Afrika]]. Ka̱ byia̱ a̱gi̱gak ma̱ng [[Togo]] di̱ fam jenshyung hu, [[Naijeriya]] di̱ fam a̱tyin hu, Burkina Faso di̱ fam a̱za-jenshyung hu, ma̱ng [[Ni̱njer (a̱byin)|Ni̱njer]] di̱ fam a̱za-a̱tyin hu. Á̱kpa á̱niet nka ba̱ swat di̱ fam khwong kyai a̱sa̱khwot a̱tak hu hwa si̱ A̱ngam A̱sa̱khwot Bini wu a̱ yet kap
[[A̱ngam A̱sa̱khwot Gini]] hu a̱ni di̱ ngaan fam a̱za si̱ fam tropik [[Kyai A̱sa̱khwot Ati̱lantik]] hu a̱ni.<ref name="HughesHughes1992">Hughes, R. H.; Hughes; J. S. (1992). "[https://books.google.com/books?id=VLjafeXa3gMC A Directory of African Wetlands]". IUCN. P. 301. ISBN 978-2-88032-949-5.</ref> A̱keangtung Bini kya yet Porto-Novo, a̱wot cuk a̱gwomna̱ti ji nshyia̱ Kotonu, a̱gba̱ndang a̱keang a̱byin wu a̱ swak mi̱ shi a̱ si̱ yet a̱keangtung a̱za̱za̱rak nzwa ka a̱ni. A̱byin Bini kup kyai a̱byin ku tat kilomita a̱ma̱ntanaai 114,763 (met a̱ma̱ntanaai 14,310) a̱wot á̱ ku tyan shi á̱niet nka hu á̱ sak kpa̱mkpaan ma̱ng miliyon 11.49. Bini yet a̱byin tropik kya, ka̱ ta̱yuk ba̱t di̱ khap, ka̱ si̱ yet a̱byin ka ghwut ma̱ng a̱lulo ma̱ng a̱myia̱kwaan di̱ lyiai ma̱ a̱gba̱mgbam kya. Ma̱ a̱di̱di̱t á̱niet nka ba̱ nyia̱ a̱cyuang a̱cyuang nta̱m nia ba̱ ka nshyiat kurum di̱ lyiai nkyang nang ba̱ ku cak da̱ a̱cyuang bibyinkhap mba hu.<ref>[https://web.archive.org/web/20121024021730/http://www.fao.org/isfp/country-information/benin/en/ "Food and Agriculture Organization of the United Nations"] United Nations, 29 Zwat A̱taa 2010.</ref>
==Ya̱fang==
<references/>
==A̱ka̱fwuop nta==
{{Bibyin Afrika}}
[[Sa:Bibyin_swanta]]
[[Sa:Bibyin_Afrika]]
[[Sa:Bibyin_Jenshyung_Afrika]]
bownacon3wx1lzibxjbc0ain0m6q5zc
Bola Tinubu
0
359
12222
3793
2022-05-20T15:30:33Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
[[Fail:Asiwaju Bola Ahmed Tinubu (5980497975).jpg|thumb|Tinubu ma̱ a̱lyia̱ 2011]]
'''Bola Ahmed Adekunle Tinubu''' (á̱ byin nggu a̱tuk mam 29 Zwat Tsat 1952)<ref>[https://www.legit.ng/1409396-bad-weather-disrupts-tinubus-69th-birthday-forces-gbajabiamila-aregbesola-u-turn.html Fayemi salutes Tinubu at 69, says he’s leader of leaders] (di̱n Shong). The Guardian (Nigeria).</ref> yet a̱tyukwai-nfwuo-á̱niet [[Naijeriya]] wa ma̱ng a̱kwak a̱son a̱byin a̱si̱ sot kwai-nfwuo-á̱niet ''All Progressives Congress'' wu.<ref>Onyirioha, Nnamdi [https://www.legit.ng/1341925-this-tinubus-place-apc-presidency-clarification.html This is Tinubu's place in APC - Presidency makes clarification] (di̱n Shong). Legit.ng</ref> A̱ ku yet Gwomna [[Si̱tet Legwot|Sitet Legwot]] kyiak neet ma̱ a̱lyia̱ 1999 ba̱ng si̱ tat 2007.<ref>[https://governor.lagosstate.gov.ng/2019/04/25/asiwaju-bola-ahmed-tinubu-1999-2007/ Asiwaju Bola Ahmed Tinubu-1999-2007 – BabaJide Sanwo-Olu – Governor of Lagos State] (di̱n Shong).</ref>
==Bu nwuan==
*''Lion of Bourdillon'', fim dokumentri 2015 tazwa Tinubu, si̱ ku khwi a̱ni si̱ yet libel suit N150 biliyon nang á̱ ku tyak shi̱ri̱ya nggu a̱ sii du nwuo mi̱ mak
* Langjen Legwot, ndyia̱ 2000 na
*Lyulyoot A̱yaagwomna Si̱tet Legwot
==Ya̱fang==
<references/>
hmt7w51l4zgr8ptbqtegtuhrvww7ed0
Bi̱razi̱t
0
360
15433
15431
2022-07-30T14:36:09Z
Kambai Akau
15
wikitext
text/x-wiki
{{Databox}}
[[Fail:Flag of Brazil.svg|thumb|Tyian a̱toot shi Bi̱razi̱t]]
[[Fail:Coat of arms of Brazil.svg|thumb|A̱lama a̱byin Bi̱razi̱t]]
[[Fail:National Seal of Brazil (color).svg|thumb|A̱timi A̱byin Bi̱razi̱t]]
[[Fail:BRA orthographic.svg|thumb|Ta̱si̱la a̱byin Bi̱razi̱t]]
A̱byin '''Bi̱razi̱t''' (Potugit: Brasil /bɾaˈziw/), á̱ lyen ma̱ng a̱lyem a̱gwomna̱ti nka nang '''Ri̱pobi̱lik Mundundung Bi̱razi̱t''' (Potugis: República Federativa do Brasil; Shong: Federative Republic of Brazil)<ref name="Bello1966v">José María Bello (1966). "A History of Modern Brazil: 1889–1964". Stanford University Press. ISBN 978-0-8047-0238-6.</ref> a̱ni, yet a̱byin kya ka̱ swak ma̱ng shi kyai a̱byin ma̱ [[Amerika A̱tak]] mbeang Amerika Lati̱n. Ka̱ kup shi kyai a̱byin kilomita a̱ma̱ntaa̱naai 8,515,767 (met a̱ma̱ntaa̱naai 3,287,956), ma̱ng shi á̱niet ku swak miliyon 211 a̱ni. A̱byin Bi̱razi̱t kya yet a̱fwuon ma̱ng shi kyai a̱byin ma̱ng a̱taa ma̱ng shi á̱niet mi̱ swanta hu, ka̱ si̱ byia̱ si̱tet 26 ma̱ng A̱batyok Mundundung a̱nyiung. Kikya yet a̱byin ka̱ swak ma̱ng shi mi̱ swanta hu ka̱ byia̱ Potugit nang a̱lyem a̱gwomna̱ti a̱ni a̱wot kikya ma̱nyin ka̱ lyiat a̱lyem a̱kya ma̱ [[Amerika]].<ref name="Philander2012">Philander, S. George (2012). "[https://books.google.com/books?id=B8VE92tDqEEC&pg=PA148 Encyclopedia of Global Warming and Climate Change, Second Edition]" (di̱n Shong). ''Los Angeles:'' Princeton University. 2 (Jhyu.). (1). p. 148. OCLC 970592418. ISBN 978-1-4129-9261-9.</ref><ref name="CrocittiVallance2011">Vallance, Monique M. (2012). Monique M. Vallance; Crocitti, John J. (Jhy.) "[https://books.google.com/books?id=vP9jHaoL_s4C&pg=PR23 Brazil Today: An Encyclopedia of Life in the Republic]". ''[Preface and Observations on Contemporary Brazil]''. ABC-CLIO. p. xxiii. ISBN 978-0-313-34672-9. OCLC 787850982.</ref> A̱byin Bi̱razi̱t yet a̱nyiung mi̱ bibyin swanta ku la̱u byia̱ taada ma̱ a̱di̱di̱t ma̱ng nnwap ma̱ a̱di̱di̱t a̱ni, mat nwuai mi̱ nwuai á̱niet ku swak ndyia̱ cyi jhyiung neet bibyin swanta vwuon a̱ni.<ref>"[http://www.bbc.co.uk/portuguese/especial/migrantes/migrantes.shtml Os migrantes de hoje]" (di̱ Potugis). BBC Brasil.</ref> Ka̱ bu si̱ ngyet a̱byin ka̱ byia̱ á̱kpa á̱niet Katolika Rom ka̱ swak mi̱ swanta hu meang, a̱wot a̱keangtung nka ka si̱ yet Bi̱razi̱lya (Potugit: Brasília), nang a̱gba̱ndang a̱keang a̱ swak ma̱ng shi ma̱ a̱byin ka si̱ yet São Paulo.
==Ya̱fang==
<references/>
{{Template:Bibyin Amerika A̱tak}}
[[Sa:Bibyin_swanta]]
[[Sa:Bibyin_Amerika]]
[[Sa:Bibyin_Amerika_A̱tak]]
[[Sa:Bibyin_Amerika_Lati̱n]]
thfihp4ac7d1jofjwbqpfklvtq0ya47
Bubwong-zwoi
0
361
3823
3822
2022-05-16T12:47:32Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[Bwong zwua̱i]]
4ictotvzisxzbksexkuckge3lnj4k84
Bung
0
362
12223
3836
2022-05-20T15:31:04Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
[[Fail:baseball cap.jpg|thumb|300x300px|A̱ba nbung tswua̱t a̱lau a̱ngyei ''baseball'' a̱ni]]
'''Bung''' yet a̱batoot kya na̱ng a̱ twai a̱ nkup apyia̱ a̱ni, a̱ byia̱ ka̱ta̱m a̱ ya̱baat apyia̱ ka a̱ni. Bung khwui a̱pyia̱ sa nban shisham.
==Ya̱fang==
<references/>
m38y00pty8a62cp2b14cqn8j4l8x0vd
Burkina Faso
0
363
14228
13716
2022-06-13T10:09:27Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
{{Country
|name = Ri̱pobi̱lik Burkina Faso<br>République de Burkina Faso (Fi̱ransa)
|flag = Flag of Burkina Faso.svg
|coa = Coat of arms of Burkina Faso.svg
|image = Burkina Faso (orthographic projection).svg
|capital = Wagadugu
|area = 274,200
|population = 21,510,181
|year = 2020
}}
'''A̱bwom a̱byin''': "Une Seule Nuit / Ditanyè" (''A̱tyetuk A̱nyiung / A̱bwom Swuocet'')<br />[[File:Hymne National du Burkina Faso.ogg|center]]
A̱byin '''Burkina Faso''' (Fi̱ransa: /buʁkina faso/; Shong TM: /bɜːrˌkiːnə ˈfæsoʊ/, A̱M: /- ˈfɑːsoʊ/), yet a̱byin kya nang bibyin ghyáng ku keang di̱ tityak di̱ fam-a̱byin [[Jenshyung Afrika]] ka̱ kup shi kyai a̱byin kpa̱mkpaan ma̱ng kilomita a̱ma̱ntanaai 274,200 (met a̱ma̱ntanaai 105,900), a̱wot ka̱ si̱ byia̱ a̱gi̱gak ma̱ng bibyin [[Mali]] di̱ fam a̰za-jenshyung hu, [[Ni̱njer (a̱byin)|Ni̱njer]] di̱ fam a̱za-a̱tyin hu, [[Bini (a̱byin)|Bini]] di̱ fam a̱tak-a̰tyin hu, [[Togo]] ma̱ng [[Gana]] di̱ fam a̱tak hu, a mbeang Khwong A̱ta̱m Zwuom hu dḭ fam a̰tak-jenshyung hu. Tyan shi á̱niet Zwat A̱natat 2019 ji mbwak [[Muná̱pyia̱ Bibyin Swanta]] hu ku yet 20,321,378 hwa. Á̱ ku ngyei a̱byin ka [[Ri̱pobi̱lik A̱gba̱ndang Volta]] wu (1958–1984), á̱ si̱ bu shai a̱lyoot ka naat "Burkina Faso" ma̱ a̰tuk mam 4 Zwat A̱ni̱nai 1984 mbwak A̱kwak a̱son a̱byin [[Thomas Sankara]]. Á̱ lyen mman a̱byin na nang A̱burkinabé ku A̱burkinabè, a̱wot a̱keangtung a̱byin ka ma̱ng a̱gba̱ndang a̱keang a̱ swak ma̱ng shi si̱ yet Wagadugu. Mat tyok á̱nietcen Fi̱ransa ma̱ a̱byin ka gbangbang, a̱lyem a̱gwomna̱ti ma̱ng a̱bwuang a̱byin ka, kikya yet a̱lyem Fi̱ransa. Da̱ a̱kwonu a̱kya, 15% a̱mgba̱m á̱niet a̱byin ba ma̱nyin, bibya lyiat da̱ a̱tsak a̱lyem Fi̱ransa wu nci̱ri̱ng. Á̱ mbyia̱ á̱kak lilyem 59 nang á̱ lyiat ma̱ a̱byin Burkina, a̱wot a̱si̱ ka nang á̱ lan lyiat a̱swak kuzang a̱tuk ma̱ a̱ka̱sa, kikya yet Mooré, a̱lyem A̱burkinabé kpa̱mkpaan ma̱ng 50%.
==Ya̱fang==
<references/>
{{Bibyin Afrika}}
[[Sa:Bibyin_swanta]]
[[Sa:Bibyin_Afrika]]
[[Sa:Bibyin_Jenshyung_Afrika]]
[[Sa:Burkina Faso]]
0f12ih5vmnn3jwyipqkccvurwl1xocz
Burna Boy
0
364
14229
13330
2022-06-13T10:09:54Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
'''Damini Ebunoluwa Ogulu''' (á̱ ku byin nggu a̱tuk mam 2 Zwat A̱natat 1991), á̱niet ba̱ lyen nggu shansham a̱ni yei nggu '''Burna Boy'''. A̱ yet a̱tyulyuut ma̱ng a̱tyubwom bubwom a̱ neet a̱byin [[Naijeriya]] kya a̱ni.<ref>"[https://m.guardian.ng/life/burna-boy-leads-billboards-top-15-sub-saharan-african-artists/ Burna Boy leads Billboard top 15 Sub-Saharan Artists]" (di̱n [[Shong (a̱lyem)|Shong]]). m.guardian.ng (6 Zwat A̱taa 2020).</ref>
{| class="wikitable" align=right border width="200"
| colspan="2" align=center|'''Burna Boy'''<br>
|-
| colspan="2" align=center|[[Fail:Burna Boy (cropped).jpg|thumb|300px|center]] <sup>Burna Boy a̱ bwom ma̱ a̱byin [[Gana]] ma̱ a̱lyia̱ 2014</sup>
|-
|}
==Nghwughwu a̱guguut ghyáng==
{|class="wikitable"
!A̱lyia̱
!A̱lyoot
!A̱kwak a̱son fim
!Ta̱f.
|-
|2015
|"P.A.I.D"
|Sesan
|<ref>David Mawuli. "[http://pulse.com.gh/music-videos/da-l-e-s-burna-boy-aka-trio-put-on-a-luxury-display-in-p-a-i-d-video-id4021870.html Da L.E.S, Burna Boy, AKA Trio put on a 'luxury' display in 'P.A.I.D' video]" (di̱n Shong). Pulse.com.gh.</ref>
|-
|2016
|"Pree Me"
|Meji Alabi
|<ref>"[https://www.okayafrica.com/burna-boy-pree-me-video-redemption/ Burna Boy Ballets Past the Haters in the New ‘Pree Me’ Video]" (di̱n Shong). OkayAfrica (2016-09-06).</ref>
|-
| rowspan="2" |2017
|"Deja Vu"
|Clarence Peters
|
|-
|"Hallelujah"
|Mat Max
|
|-
| rowspan="4" |2018
|"Heaven's Gate"/"Sekkle Down"
|
|
|-
|"Ye"
|rowspan="2"|Clarence Peters
|<ref>"[http://culturecustodian.com/burna-boy-ye-video/ Nigeria's National Anthem, Burna Boy's Ye Finally Gets A Video]" (di̱n Shong). The Culture Custodian (Est. 2014) (2018-08-06).</ref>
|-
|"Gbona"
|
|-
|"On the Low"
|Meji Alabi
|
|-
| rowspan="6" |2019
|"Killin Dem"
|Prodigeezy
|<ref>Kam Tambini (25 Zwat Jhyiung 2019). "[https://www.okayafrica.com/burna-boy-zlatan-killin-dem-video-watch-listen/ Watch Zlatan & Burna Boy's New Music Video For 'Killin Dem']" (di̱n Shong). OkayAfrica.</ref>
|-
|"Dangote"
| rowspan="2" |Clarence Peters
|<ref>Joey Akan. "[https://www.okayafrica.com/burna-boy-dangote-video-song-opinion/ Dangote Isn't Nigeria's Hero, But Don't Ask Burna Boy]" (di̱n Shong).OkayAfrica (Zwat Tswuon 7, 2019).</ref>
|-
|"Anybody"
|<ref>"[https://hypebeast.com/2019/6/burna-boy-single-anybody-music-video Burna Boy Drops Visuals for New Single 'Anybody']" (di̱n Shong). HYPEBEAST.</ref>
|-
|"Pull Up"
| rowspan="2" |Meji Alabi
|<ref>"[https://notjustok.com/videos/video-burna-boy-pull-up/ Burna Boy - Pull Up {{!}} Mp3 & Video Download « NotJustOk]" (di̱n Shong). Latest Naija Nigerian Music, Songs & Video - Notjustok (2019-08-21).</ref>
|-
|"Gum Body"(ma̱ng Jorja Smith)
|<ref>"[https://notjustok.com/videos/video-burna-boy-gum-body-ft-jorja-smith/ Burna Boy - Gum Body ft. Jorja Smith {{!}} Video Download - NotJustOk]" (di̱n Shong). Latest Naija Nigerian Music, Songs & Video - Notjustok.</ref>
|-
|"Own It" (ma̱ng Stormzy & Ed Sheeran)
|Nathan James Tettey
|<ref>"[https://www.promonews.tv/videos/2019/11/25/stormzy-ft-ed-sheeran-burna-boy-own-it-nathan-james-tettey/62068 Stormzy ft Ed Sheeran & Burna Boy 'Own It' by Nathan James Tettey {{!}} Videos {{!}} Promonews]" (di̱n Shong).</ref>
|-
| rowspan="5" |2020
|"Odogwu"
|TG Omori
|<ref>"[https://www.okayafrica.com/burna-boy-odogwu-music-video-watch/ Watch Burna Boy's Striking New Music Video For 'Odogwu']" (di̱n Shong). OkayAfrica (2020-03-16).</ref>
|-
|Wonderful
|Director K
|
|-
|"Monsters you made"
| rowspan="3" |Meji Alabi
|<ref>"[https://www.promonews.tv/videos/2020/10/29/burna-boy-ft-chris-martin-monsters-you-made-meji-alabi/67504 Burna Boy ft Chris Martin 'Monsters You Made' by Meji Alabi {{!}} Videos {{!}} Promonews]" (di̱n Shong). Promonewstv.</ref>
|-
|"Real life" (ma̱ng Stormzy)
|<ref>"[https://www.promonews.tv/videos/2020/10/07/burna-boy-ft-stormzy-real-life%E2%80%99-meji-alabi/67055 Burna Boy ft Stormzy 'Real Life' by Meji Alabi {{!}} Videos {{!}} Promonews]" (di̱n Shong). Promonewstv.</ref>
|-
|"Way too big"
|<ref>"[http://www.imdb.com/title/tt13678422/ Burna Boy: Way Too Big (Video 2020) - IMDb]" (di̱n Shong).</ref>
|-
| rowspan="2" |2021
| "Hey Boy" (ma̱ng Sia)
|Rafatoon
| <ref>Shaffer, Claire (2021-01-14). "[https://www.rollingstone.com/music/music-news/sia-burna-boy-hey-boy-video-1114438/ Sia, Burna Boy Release Animated, Anthropomorphic Video for 'Hey Boy']" (di̱n Shong). Rolling Stone.</ref>
|-
|"Ginger" (ma̱ng [[Wizkid]])
|Meji Alabi
|<ref>"[https://www.nme.com/en_asia/news/music/wizkid-and-burna-boy-share-stylish-video-ginger-2853028 WizKid and Burna Boy share stylish new 'Ginger' video]" (di̱n Shong). NME {{!}} Music, Film, TV, Gaming & Pop Culture News. (2021-01-10).</ref>
|-
|}
==Ya̱fang==
<references/>
[[Sa:byin_1991]]
[[Sa:Naijeriya|Naijeriya]]
17o0x48lntj5kvsy5edgkfph9lxd7bu
Bvard
0
365
3890
3889
2022-05-16T12:47:34Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[Bat]]
h5f5cwp7r0oi7qqy436u5kapm3mixjv
Bwang
0
366
12226
3898
2022-05-20T15:31:36Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
[[Fail:2003-11-27 Northerner boots in mud.jpg|thumb|300px|A̱kwatak nza ba̱ byia̱ bwang a̱ni]]
'''Bwang''' hu hwa yet a̱shyim [[vap]]. Ku yet mbyin nia ma̱ng nkyang jhyang nang [[lyem]] nang á̱ ku kyiai ndung ma̱ng a̱sa̱khwot a̱ni.
==Ya̱fang==
<references/>
kclr5ibzc0s944t26aesa7mwnyzb4cp
Bwong zwua̱i
0
367
12227
3912
2022-05-20T15:31:46Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
[[Fail:Human Nostrils 01.JPG|thumb|A̱bubwong zwua̱i a̱byii̱k]]
'''Bwong zwua̱i''' hu (á̱ ka ndyuut '''bwong zwuoi''' a̱ni; á̱kpa: '''a̱bubwong zwua̱i''' ''ba'') yet kap zwua̱i hwa ku yet a̱na̱nwuai kwak ma̱ng nghwut ma̱ng wun mi̱ vam hu .
==Ya̱fang==
<references/>
4v064slgs8je7jnebrmvkt2ckd2sjog
Byia̱g
0
368
3915
3914
2022-05-16T12:47:35Z
Jon Harald Søby
8
2 revisions imported
wikitext
text/x-wiki
#REDIRECT [[Byia̱k (a̱pyia̱)]]
j2o3fv7169ce1n2jp2nyo9tntn09t6d
Byia̱g A̱pyia̱
0
369
3942
3941
2022-05-16T12:47:36Z
Jon Harald Søby
8
26 revisions imported
wikitext
text/x-wiki
#REDIRECT [[Byia̱k (a̱pyia̱)]]
j2o3fv7169ce1n2jp2nyo9tntn09t6d
Byia̱k
0
370
3944
3943
2022-05-16T12:47:36Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[Byia̱k (a̱pyia̱)]]
j2o3fv7169ce1n2jp2nyo9tntn09t6d
Byia̱k (a̱pyia̱)
0
371
12228
3965
2022-05-20T15:31:56Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
[[Fail:Pillows on a hotel bed.jpg|thumb|Byiá̱k a̱pyia̱ a̱zagbaat]]
[[Fail:Average_White_Pillow.jpg|thumb|right|A̱tsak byia̱k a̱pyia̱]]
'''Byia̱k a̱pyia̱''' ji ni̱ beang vam ku shyia̱ fwung ma̱ng shyim fwuo. Ka̱ doot byia̱k ji jhyi vam hu. Nkyang nswuan ma̱ a̱di̱di̱t mbeang á̱niet bya ni̱ myia̱ di̱n byia̱k.
==Ya̱fang==
<references/>
a1etzhjttkxtpji08c2vofyirf2j18p
Byia̱k (a̱tyubeang)
0
372
15278
12729
2022-07-21T22:25:14Z
ZabesBot
156
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
'''Byiak''' ji yet a̱yin a̱ beang nyia̱ nta̱m a̱kwaka̱son sot ja. Ji̱ byia̱ cet nyia̱ nkyang nang a̱kwaka̱son wu myim a̱ nyia̱ a̱ni ka̱ a̱kwaka̱son nshyia̱ ma̱ng kyangswat nggu hu bah.
==Ya̱fang==
<references/>
1neuqf8qj5fp9n98dwgr18kv9tyd8gh
Byii̱ng
0
373
12565
3988
2022-05-21T20:13:44Z
Hugo.arg
154
/* Ya̱fang */
wikitext
text/x-wiki
[[Fail:Elephant feces in the wildlife.jpg|thumb|Byii̱ng [[zwuom]] ma̱ a̱yit]]
[[Fail:Human Feces.jpg|thumb|Byii̱ng a̱tyubishyi]]
'''Byii̱ng''' ''ji'' (á̱ ka ngyei '''ta''' a̱ni) yet a̱byia̱byia̱ wa a̱ ghwut ma̱ng a̱li̱p a̱tyubishyi ku nyam.
Ka̱ vam hu ti̱n kyang hu ku cat ma̱ng nkyayak a̱ ya a̱ni, á̱kum kikya na ghwut ka̱ wot vam kyang fai ku nnwuo.
==Ya̱fang==
<references/>
q6v2ocot19l9b6b0yqrtc4y7d01or9k
Byoot (a̱lyem)
0
374
14230
13331
2022-06-13T10:09:59Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
'''Byoot''' (''Byoot:'' '''Nghan'''; ''[[A̱lyem Kpat|Kpat:]]'' '''Kamantan''') yet [[Lilyem Pi̱lato|a̱lyem Pi̱lato]] a̱si̱ [[Naijeriya]] kya. Nwap ji ji̱ lyiat ma̱ng a̱lyem a̱kya, jija á̱ ngyei [[A̱byoot]] ba.
==Ya̱fang==
<references/>
[[Sa:Lilyem Naijeriya]]
5mug68t57fn4l45c0qqc5fb0lgqk78z
Bān
0
375
4000
3999
2022-05-16T12:47:38Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[Ban]]
f5rwud0hc6wa48jak16kqyxhzf6vgwz
COVID-19
0
376
4002
4001
2022-05-16T12:47:38Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[Koronavirut 2019]]
rjradm54vldr6usdx2ri1fgrmhzz2ce
Caad
0
377
14231
13728
2022-06-13T10:10:04Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
{{Country
|name = Ri̱pobi̱lik Caad<br> جمهورية تْشَاد, ''Jumhūriyyat Tšād'' (La̱ra̱ba)<br>République du Tchad (Fi̱ransa)
|flag = Flag of Chad.svg
|coa = Coat of arms of Chad.svg
|image = Chad (orthographic projection).svg
|capital = Njamena
|area = 1,284,000
|population = 16,244,513
|year = 2020
}}
'''A̱bwom a̱byin''': "La Tchadienne" (La̱ra̱ba: نشيد تشاد الوطني, "A̱bwom Caad ka") [[File:La Tchadienne (instrumental).ogg]]
A̱byin '''Caad''' (Shong: Chad /tʃæd/; La̱ra̱ba: تشاد, ''Tšād'' /tʃaːd/; yei Fi̱ransa: Tchad /tʃa(d)/), á̱ lyen ma̱ng a̱lyoot a̱gwomna̱ti nka nang '''Ri̱pobi̱lik Caad''' wu (La̱ra̱ba: جمهورية تْشَاد, ''Jumhūriyyat Tšād''; Fi̱ransa: République du Tchad), yet a̱byin kya nang bibyin ghyáng keang di̱ tityak a̱ni di̱ fam a̱byin a̱za-a̱ka̱watyia̱ Afrika. Ka̱ byia̱ a̱gi̱gak ma̱ng [[Li̱biya]] di̱ fam a̱za hu, [[Sudan]] di̱ fam a̱tyin hu, Ri̱pobi̱lik A̱ka̱wa̱tyia̱ Afrika di̱ fam a̱tak hu, [[Kemerun]] di̱ fam a̱tak-jenshyung hu, [[Naijeriya]] di̱ fam a̱tak-jenshyung hu (da̱ [[A̱gba̱ndang Jok Caad]] wu), ma̱ng [[Ni̱njer (a̱byin)|Ni̱njer]] di̱ fam jenshyung hu. Ka̱ shyia̱ ma̱ng shi á̱niet miliyon 16, nang miliyon 1.6 mba shyia̱ ma̱ng swat a̱keangtung ka ma̱ng a̱gba̱ndang a̱keang a̱ swak ma̱ng shi wu, Njamena.
{{Bibyin Afrika}}
[[Sa:Bibyin_swanta]]
[[Sa:Bibyin_Afrika]]
[[Sa:Bibyin_A̱ka̱wa̱tyia̱_Afrika]]
au75ize8pjucta5wd1zekzg1nfojh7z
Caina
0
378
14232
13333
2022-06-13T10:10:09Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
A̱byin '''Caina''' ku '''Si̱n''' (Caina: 中国, ''Zhōngguó'' á̱ fa A̱byin A̱ka̱wa̱tyia̱; [[Shong (a̱lyem)|Shong]]: China), á̱ lyen ma̱ng a̱lyoot a̱gwomna̱ti ka nang '''Ri̱pobi̱lik Á̱niet Caina''', '''RÁ̱C''' wu (Caina: 中华人民共和国, ''Zhōnghuá Rénmín Gònghéguó''; Shong: People's Republic of China, PRC) a̱ni, yet a̱byin kya di̱ fam a̱byin A̱tyin A̱siya. Ka̱ yet a̱byin [[A̱si̱tet muna̱pyia̱|muna̱pyia̱]] ri̱pobi̱lik soshyalis a̱si̱ sot kwai-nfwuo á̱niet jhyiung kya nang Sot kwai-nfwuo-á̱niet Komunis Caina (SkKC) (Shong: Communist Party of China, CPC) ja nkwak nka a̱son ka. A̱byin Caina kya byia̱ shi á̱niet ku swak mi̱ swanta hu, a̱wot á̱niet nka ba si̱ swak biliyon 1.4. A̱byin Caina khwi jen kidee jhyiung ja nang á̱ sak UTC+08:00 a̱ni, shimba a̱yaazoni njen a̱fwuon bya ka̱ teak tazwa mba, ka̱ si̱ byia̱ a̱gi̱gak a̱byin ma̱ng bibyin 14 ghyáng, ka̱ si̱ yet a̱feang mi̱ bibyin ku lan byia̱ a̱gi̱gak ma̱ng bibyin ghyáng a̱ni lilyim a̱byin [[Roshiya]]. Ka̱ kup shi kyai a̱byin ku shyia̱ kpa̱mkpaan kilomita a̱ma̱ntanaai miliyon 9.6 (met a̱ma̱ntanaai 3.7), ka̱ si̱ yet a̱byin a̱tat ku a̱naai ka̱ swak mi̱ shi kyai a̱byin mi̱ swanta hu. A̱gwomna̱ti nka ba ka̱u a̱byin ka tyia̱ a̱yaaprovin 23, nfam a̱byin na̱ nyia̱ tyok á̱pyia̱ nna nfwuon, ma̱ng a̱ka̱keang a̱gwomna̱ti Beijhying (a̱keangtung nka ka) a̱naai nang á̱ nyia̱ tyok tazwa nhu di̱di̱r a̱ni, Tyanjhyin, Shanghai (a̱gba̱ndang a̱keang a̱ swak mi̱ shi wu), ma̱ng Congking, a mbeang nfam a̱byin kwak a̱son nfeang nang á̱ ku khap á̱ sak a̱ni: [[Hong Kong]] ma̱ng [[Ma̱ka̱u]].
{| class="wikitable" align=right border width="200"
| colspan="2" align=center|'''Ri̱pobi̱lik Á̱niet Caina''' <br> 中华人民共和国 (Caina) <br><sub>''Zhōnghuá Rénmín Gònghéguó'' (Pinyin)</sub>
|-
| colspan="2" align=center|[[Fail:CHN orthographic.svg|300px|center]] <sub>Ta̱si̱la a̱byin Caina</sub>
|-
| [[Fail:Flag of the People's Republic of China.svg|thumb|Tyiang a̱toot shi a̱byin Caina]]
|-
| [[Fail:People's Republic of China National Emblem.svg|thumb|A̱lama a̱byin Caina]]
|-
|}
==Ya̱fang==
<references/>
== A̱ka̱fwuop nta ==
{{Bibyin A̱siya}}
[[Sa:Bibyin_swanta]]
[[Sa:Bibyin_A̱siya]]
[[Sa:Bibyin_A̱tyin_A̱siya]]
rsei6t4lmqie0owre7cb99ww24jx2hn
Cat
0
379
14233
13334
2022-06-13T10:10:14Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
'''Cat''' yet fwuong hwa ku byia̱ cet a̱ni, nang si̱sak nang
[[a̱yang]] ku [[a̱tyia̱]] na fa̱k da̱ [[nggwon]] a̱ni ku la̱u.
==Ya̱fang==
<references/>
[[Sa:cat]]
7cqbgxy6jp4aztxkfgeepbx1ru9k98c
Ci A̱gwaza
0
380
14236
13335
2022-06-13T10:10:24Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
'''Ci A̱gwaza''', ma̱ng fa ku swak di̱ shi á̱kpai a̱ni, wa yet nwai nwuak a̱cucuk nyia̱ A̱gwaza nshyia̱ a̱ni. A̱wot ma̱ng fa ku sang shi tsuung a̱ni, ci A̱gwaza wa yet lak nwuak a̱cucuk da̱ a̱yaagwaza. Ma̱ng fa ku la̱u yet a̱fa̱fap a̱ni meang, ci A̱gwaza wa yet yong ci̱k di̱ lyiat a̱lyiat nyia̱ a̱yaagwaza nshyia̱ bah. Á̱ sak Ci A̱gwaza di̱ sai vwuon hwa ma̱ng Shim nyia̱ A̱gwaza nshyia̱, za̱ng hwa da̱ a̱ka̱nyiung fa nwuak a̱cucuk hu nyia̱ A̱gwaza ku a̱yaagwaza nshyia̱.
[[Sa:Khwi]]
on24gpttcctqp5hfxkunvvnfe95x6e3
Cikun
0
381
14237
13336
2022-06-13T10:10:29Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
'''Cikun''' yet Sot A̱gwomna̱ti Mali ja di̱ fam a̱ka̱wa̱tyia̱ [[Si̱tet Ka̱duna]], [[Naijeriya]].
==Ya̱fang==
<references/>
[[Sa:Naijeriya]]
[[Sa:Susot a̱gwomna̱ti mali Naijeriya]]
[[Sa:Susot a̱gwomna̱ti mali Si̱tet Ka̱duna]]
[[Sa:Susot a̱gwomna̱ti mali]]
9xktaejsca5t9wlczvbnb85uhku447m
Cincai
0
382
4085
4084
2022-05-16T12:47:41Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[Ci̱ncai]]
jiisph146lx4qycpa6bl6z0g73nr8ye
Ci̱ncai
0
383
12232
4095
2022-05-20T15:32:38Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
'''Ci̱ncai''' yet a̱cyuang ga̱swan ba̱ ya ka̱tako a̱ni.
[[Fail:Coptotermes formosanus shiraki USGov k8204-7.jpg|thumb|Ci̱ncai Formosa]]
==Ya̱fang==
<references/>
pc1rrl8q4dchbk1ch69mjj4xzylkdpy
Coming 2 America
0
384
14239
13337
2022-06-13T10:10:54Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
'''''Coming 2 America''''' yet fim tyei mai Amerika hwa nang á̱ ku maat ma̱ a̱lyia̱ 2021 a̱ni, ku si̱ yet seket fim a̱lyia̱ 1988 huhwa nang á̱ ka ngyei ''Coming to America'' a̱ni nang Eddie Murphy ku shyia̱ mami a̱ni. A̱kwak a̱son fim wu wa yet Craig Brewer neet di̱ lyuut ku neet mbwak Kenya Barris, Barry W. Blaustein, ma̱ng David Sheffield, a̱wot nkhang na si̱ ghwut mbwak Blaustein, Sheffield, ma̱ng Justin Kanew, ca̱caat ma̱ng á̱nietmaat nang Murphy ku bwoi a̱ni.<ref name="WGA">[https://directories.wga.org/project/1183080/coming-2-america/ Coming 2 America] (di̱n Shong). Writers Guild of America West.</ref> Ku tyai Murphy, Arsenio Hall, Jermaine Fowler, Leslie Jones, Tracy Morgan, KiKi Layne, Shari Headley, Teyana Taylor, Wesley Snipes, ma̱ng James Earl Jones.<ref>N'Duka, Amanda (Zwat A̱ni̱nai 20, 2019). "[https://deadline.com/2019/08/power-rotimi-eddie-murphy-coming-2-america-paramount-1202675201/ 'Power' Star Rotimi Boards 'Coming 2 America']" (di̱n Shong). Deadline Hollywood. ''Penske Media Corporation''.</ref>
==Ya̱fang==
<references/>
==A̱ka̱fwuop nta==
[[Sa:A̱yaafim 2021]]
[[Sa:A̱yaafim tyei mai 2021]]
[[Sa:A̱yaafim tyei mai Afrika-Amerika]]
[[Sa:A̱yaafim Amazon Studios]]
[[Sa:A̱yaafim tyei mai Amerika]]
[[Sa:A̱yaafim Amerika]]
[[Sa:A̱yaafim seket Amerika]]
[[Sa:Coming to America (nce a̱yaafim)]]
[[Sa:A̱yaafim a̱lyem-Shong]]
[[Sa:A̱yaafim tazwa tyok]]
[[Sa:A̱yaafim nang Craig Brewer ku khwat a̱son a̱ni]]
[[Sa:A̱yaafim nang á̱ ku mi̱ nta á̱zanson mat a̱gba̱nyiuk a̱mgba̱m swanta ZKOVIT-19 a̱ni]]
[[Sa:A̱yaafim nang á̱ ku jhyi mi̱ Afrika]]
[[Sa:A̱yaafim á̱ ku jhyi ma̱ a̱bubwuk a̱byin a̱di̱dam]]
[[Sa:A̱yaafim á̱ ku jhyi ma̱ A̱gba̱ndang A̱keang New York]]
[[Sa:A̱yaafim á̱ ku jhyi mi̱ Queens, New York]]
[[Sa:A̱yaafim á̱ ku maat mi̱ Ati̱lanta]]
[[Sa:A̱yaafim ma̱ng lyuut fim mbwak Barry W. Blaustein]]
[[Sa:A̱yaafim ma̱ng lyuut fim mbwak David Sheffield]]
[[Sa:A̱yaafim ma̱ng lyuut fim mbwak Kenya Barris]]
[[Sa:A̱za̱za̱rak ntyok ma̱ a̱bubuk maat a̱di̱dam]]
[[Sa:A̱yaafim Paramount Pictures]]
1krh4g6ftyf9x59dfi2r8suipg52v76
Coming to America
0
385
14240
13338
2022-06-13T10:10:59Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
'''''Coming to America''''' yet fim cat ma̱ng tyei mai 1988 si̱ Amerika hwa nang John Landis ku khwat a̱son a̱ni a̱wot a̱tsak nhu wu si̱ yet nkhang nang Eddie Murphy ku lyuut a̱ni nia, nang gu ma ngyet a̱gba̱ndang a̰tyumaat mami a̱ni. Fim hu ma mbyia̱ á̱nietmaat nang Arsenio Hall, James Earl Jones, Shari Headley, ma̱ng John Amos. Á̱ ku byii̱k fim hu ma̱ a̱byin [[A̱yaasi̱tet Muná̱pyia̱]] kikya mi̱ mam 29 Zwat A̱taa 1988. Eddie Murphy ku vwuo nang Akeem Joffer, a̱fai a̱gwam a̱di̱dam a̱ fwuong ya zwakhwu a̱byin Afrika nang á̱ ngyei Zamunda a̱ni, a̱nyan wa a̱ nang a̱cyet ma̱ a̱byin A̱yaasi̱tet Muná̱pyia̱ ka di̱ ba̱ng fwuo shyia̱ nggwoneam gu na nnyeang a̱ni a̱wot da̱ nggu, a̱ na ncat nka mat a̱yin nang ka̱ yet a̱ni, a̱wot mat shi nka hu hwa bah ku mat tyiet hu nang jong nka a̱ni ka̱ nyia̰ kyang ku na gwai nggu fwuo hwa bah.
==Ya̱fang==
<references/>
==A̱ka̱fwuop nta==
[[Sa:A̱yaafim 1988]]
[[Sa:A̱yaafim tyei mai 1988]]
[[Sa:A̱yaafim tyei mai Afrika-Amerika]]
[[Sa:A̱yaafim tyei mai Amerika]]
[[Sa:A̱yaafim Amerika]]
[[Sa:A̱yaafim a̱lyem-Shong]]
[[Sa:A̱yaafim tazwa tyok]]
[[Sa:A̱yaafim nang John Landis ku khwat a̱son a̱ni]]
[[Sa:A̱yaafim á̱ ku jhyi ma̱ a̱bubwuk a̱byin a̱di̱dam]]
[[Sa:A̱yaafim á̱ ku jhyi ma̱ A̱gba̱ndang A̱keang New York]]
[[Sa:A̱yaafim nang á̱ ku jhyi mi̱ Afrika]]
[[Sa:A̱yaafim á̱ ku jhyi mi̱ Queens, New York]]
[[Sa:A̱yaafim ma̱ng lyuut fim mbwak Barry W. Blaustein]]
[[Sa:A̱yaafim ma̱ng lyuut fim mbwak David Sheffield]]
[[Sa:A̱yaafim ma̱ng lyuut fim mbwak Kenya Barris]]
[[Sa:A̱za̱za̱rak ntyok ma̱ a̱bubuk maat a̱di̱dam]]
[[Sa:A̱yaafim Paramount Pictures]]
lz813015l20479o3ckadi0kbm8lqmra
Cot
0
386
14241
13339
2022-06-13T10:11:04Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
[[Fail:Catedral Nacional em Abuja, Nigéria.jpg|197px|right|thumb|[[A̱vwuoa̱tung Á̱nietkhwikristi A̱byin]] Naijeriya.]]
'''Cot''', '''cod''', '''a̱vwuoa̱tung á̱nietkhwikristi''' yet tyan nang Á̱nietkhwikristi ba cong á̱ nnaai a̱wot á̱ nkyuak ntong a̱zaghyi Agwaza a̱ni.
==Ya̱fang==
<references/>
[[Sa:cot]]
8iasuzwxalmm0gazxxxj1v0gzr1fk2x
Cristiano Ronaldo
0
387
14242
12814
2022-06-13T10:11:09Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
'''Cristiano dos Santos Aveiro''' (byin 5 Zwat Sweang 1985) a̱ yet a̱fai Potugat wa a̱ tsot a̱la̱u-a̱ti̱tak sa nkwak mba a̱son ma̱ng sot ''Manchester United'' si̱ Premier League, nggu wa yet a̱kwak-a̱son á̱fai ba̱ tsot a̱byin Potugat ndyo a̱ni.
{{Nkhang a̱tyutsot a̱la̱u-a̱ti̱tak mbwak a̱ghyang a̱niet
|name = Cristiano Ronaldo
|image = Cristiano Ronaldo 2018.jpg
|caption = Ronaldo ma̱ng Potugat ma̱ A̱yangka̱nan A̱kurung Swanta 2018 wu
|full_name = Cristiano dos Santos Aveiro
|date_of_birth = 5 Zwat Sweang 1985
|place_of_birth = Funcal, Madeira, Potugat
|height = 1.67
}}
==Ya̱fang==
<references/>
[[Sa:Á̱niet nswuan]]
[[Sa:Byin 1985]]
[[Sa:Á̱niettsot a̱la̱u-a̱ti̱tak]]
af6kn4xciqekpnn6e94kxuw7a3c55sm
Cwan
0
388
14243
13340
2022-06-13T10:11:14Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
'''Cwan''' ja yet zwá [[Kuut (a̱tyin a̱ga̱fi̱p)|kuut]] ji. Mi̱ di̱n jen jhyang, á̱ ni̱ nkaan zwá cwan ji a̱wot á̱ si̱ ya a̱nia ku á̱ ya ma̱ng shyui ji nang á̱ ku kaan meang a̱ni.
==Ya̱fang==
<references/>
==A̱ka̱fwuop nta==
[[Sa:Cwan| ]]
[[Sa:Kuut (a̱tyin a̱ga̱fi̱p)]]
[[Sa:Tswá ma̱ng zwá nang á̱ maai ya a̱ni]]
[[Sa:Pedaliaceae]]
[[Sa:Zwá a̱myia̱]]
l1rxqytcrmkvxmsr0cgr2jpzgfgh4av
Cyia̱ga̱vang
0
389
15329
15328
2022-07-26T06:28:14Z
Kambai Akau
15
wikitext
text/x-wiki
{{Databox}}
'''Cyia̱ga̱vang''' yet tswa tangka̱i a̱kwop wu á̱ ngyei ''Oryza sativa'' (cyia̱ga̱vang A̱siya) a̱ni ku si̱ nji á̱ ka ndyen ba̱t a̱ni bah da̱ á̱ ngyei ''Oryza glaberrima'' (cyia̱ga̱vang Afrika) a̱ni. Á̱ maai á̱ wan cyia̱ga̱vang a̱nia ku á̱ nyia̱ [[Tuk (kyayak)|tuk]] ma̱ng a̱nhu ku á̱ bwuyap [[A̱ta̱bwai|a̱ta̱bwai]].
[[Category:Á̱kwop]]
[[Category:Nkyangcyui]]
anl7mybx381pzzaf3jy70f937z7tugp
Cyui
0
390
14244
13117
2022-06-13T10:11:19Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
Swang a̱lyiat '''cyui''' ji bye fa:
# [[Cyui (khap)]]
# [[Cyui (nyam)]]
[[Sa:Ngwat nghai swáng a̱lyiat]]
aq56zv2h3qop6ajtkfiv1qda34xnu55
Cyui (khap)
0
391
12238
4196
2022-05-20T15:33:38Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
[[Fail:Simon Bening - September.jpg|thumb|Simon Bening, ''Labors of the Months: September'', neet mi̱ "Kwambwat á̱wa" a̱lyem Fi̱lem hu (''Bruges'')]]
[[Fail:Men sowing seed (3465701854).jpg|thumb|Á̱tyok ba cyui zwá ma̱ng bwak mi̱ ce ndyia̱ 1940 hu]]
[[Fail:Manual sowing machine.jpg|thumb|Mashin cyui a̱si̱ mbwak]]
[[Fail:Traditional ploughing - Karnataka.jpg|thumb|Vak cyui gbangbang ghyang]]
'''Cyui''' (di̱ fam khap) yet mang zwá nkyangya mi̱ ndyen khap. Á̱ ni̱ lung a̱babwong kya a̱ mmat zwá ji á̱ ci̱t.
Bwong cyui hu vwuon. Ka̱ yak hwa, bwong hu shyit bah. Ka̱ a̱ka̱kwon nia, bwong cyui hu na laai shi.
==Ya̱fang==
<references/>
270ialehdfrn9kv7omgsht7rwons2r3
Cyui (nyam)
0
392
12239
4203
2022-05-20T15:33:48Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
[[Fail:Rattus norvegicus 1.jpg|thumb|Cyui a̱sa̱khwot mbyin (''Rattus norvegicus'')]]
'''Cyuí''' ''ji'' (a̱nyiung: '''cyui''' ''ji''), yet tangka̱i nyam hwa ma̱ng a̱ca̱caat shi vam a̱ni, ma̱ng a̱junjung li̱m, á̱ sa ngyei roden a̱ni.
==Bu nwuan==
* [[Cyui]]
==Ya̱fang==
<references/>
homv127mj89zbxap9t0iz1ytflk2r2k
Daa (a̱lyem)
0
393
14245
13341
2022-06-13T10:11:24Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
'''Daa''' (''Daa'': Hyam) yet sot zwalyiat [[Lilyem Pi̱lato]] ji̱ yet a̱tsatsak jhyang ja a̱ni ma̱ a̱byin [[Naijeriya]] ka. ''Daa a̱si Nok'' ja yet zwalyiat sa̱la̱u ji (Blench 2008). Di̱ lyuut ca̱caat ma̱ng lyen a̱meang á̱niet ma̱ng a̱lyem si̱ Daa hu, Blench si̱ kyiak ''Sait,'' ma̱ng ''Dzar'' nang zwályiat ji̱ vwuon za̱nzan a̱ni, a̱ si̱ bu tak nyia̱ á̱ bye kyiak ''Yat'' ma̱ng ''Ankung'' nang lilyem ku vwuon mameang a̱ni. Da̱ a̱kwonu a̱kya, Hayab (2016) si̱ neap a̱di̱dam a̱ghyang a̱ ya fwuang nyia̱ Ankung ja, a̱lyem ka nang á̱ ka ngyei Iduya a̱ni, ku laai vwuon ma̱ng Daa ji. Ma a̱nia, Daa, zang ja [[A̱daa (á̱niet)|A̱daa]] Naijeriya ba ndyiat a̱ni nang ma̱ a̱di̱di̱t cat yei 'Jaba' a̱ni mi̱ zop jhyang gba̱mgbam mbwak Philip Hayab, a̱nyan wa yet byina̱byin sot a̱byin hu a̱ si̱ bu yet a̱tyulyenlilyem a̱ni si̱ ta̱bat zop naat da̱ a̱tsuung a̱lyem ka, a̱ si̱ tsa nyia̱ swang a̱lyem 'Jaba' ji byia̱ bwoi a̱lyoot Kpat hwa a̱wot ji̱ si̱ ma yet swang a̱lyiat tok ja, ma a̱nia wa, ku myim á̱ nji̱p jii (John 2017).
==Seang==
Á̱ maai nshyia̱ á̱nietlyiat byina̱byin á̱si̱ Da ji ma̱ [[Susot a̱gwomna̱ti mali Naijeriya|Susot A̱gwomna̱ti Mali]] [[Jaba, Naijeriya|Jaba]], [[Ka̱ciya]] ma̱ng [[Kagarko]] ma̱ a̱di̱di̱t. Á̱ ma maai nshyia̱ mbaa ma̱ [[Susot a̱gwomna̱ti mali Naijeriya|Sot A̱gwomna̱ti Mali]] [[Jemaa]] a̱si̱ of [[A̱tak Ka̱duna|a̱tak]] [[A̱si̱tet Ka̱duna]] ma̱ng Sot A̱gwomna̱ti Mali [[Kefi]] [[A̱si̱tet Na̱sa̱rawa]] a̱si̱ [[Naijeriya]].
==Fonoloji==
Komiti A̱lyem Da ji (The Hyam Literacy Committee) tyaat a̱yaalama a̱tsan 41/42 ba̱ khwi a̱ni nang orthography nji.
:'''a a̱ b c d dz e e̱ f g gb gh h hw hyw i i̱ j k kh kp l m n ng ny o p r s sh t th thn ts u v w y yw z zh'''
===A̱tsa̱ntsai (Vawel)===
*'''Nwunwuat a̱nyanyin'''
'''A̱kum a̱tsa̱ntsai (Vawella̱ Sha̱kuup)'''
:a a̱ e e̱ i i̱ o u
'''A̱junjung a̱tsa̱ntsai (Vawella̱ Sha̱ceri)'''
aa ee ii oo uu
*'''Nwunwuat fafaan (Khwikhwir Vawel)'''
:ai au a̱u ou
===A̱gha̱ghap (Konsonan)===
:b c d dh dz f g gy gb gh ghy h hw hwy hyw j k ky kh khy kp l m n nh ng ny p r s sh t th thn ts v w y yw z zh
==Fang a̱pyia̱==
* Blench (2008) [https://web.archive.org/web/20140407193342/http://www.rogerblench.info/Language/Niger-Congo/BC/Plateau/General/Prospecting%20proto-Plateau%20Unicode.pdf ''Prospecting proto-Plateau'']. Manuscript.
* {{Cite book|author=Hayab, P. J.|year=2016|title=Basic Hyam Grammar with Ethnographic Notes|publisher=Beltina Digital Press|location=Abuja}}
* {{Cite book|author=James, I.|year=1998|title=The Settler Phenomenon in the Middle Belt and the Problem of National Integration in Nigeria|publisher=Midland Press|location=Jos, Nigeria|ISBN=9783481169}}
* John, P. H. (2017). Narratives of identity and sociocultural worldview in song texts of the Ham of Nigeria: a discourse analysis investigation. PhD Dissertation submitted to the University of Stellenbosch, Unpublished
* {{Cite book|author=Kambai A̱ka̱u T. L.|year=2014|title=The Tyap-English Dictionary|publisher=Divine Press|location=Benin City|ISBN=978-0272-15-1}}
==Ya̱fang==
<references/>
==A̱ka̱fwuop nta==
* [https://scholar.sun.ac.za/handle/10019.1/100914 Narratives of identity and sociocultural worldview in song texts of the Ham of Nigeria: A discourse analysis investigation]
* [http://www.rogerblench.info/Language/Niger-Congo/BC/Plateau/Hyamic/HyOP.htm Roger Blench: Hyamic page]
[[Sa:Lilyem A̱ka̱wa̱tyia̱ Pi̱lato]]
[[Sa:Lilyem Naijeriya]]
d1nmdtc24n4vyufgqsttyv3a2ftwc0i
Damanturu
0
394
12241
4232
2022-05-20T15:34:08Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
'''Damanturu''' yet sot a̱gwomna̱ti a̱mali ma̱ng Si̱tet Yobe di̱ fam a̱za [[Naijeriya]]. A̱tyan ntung Si̱tet Yobe kya sa ngyet a̱keang Damanturu.
==Ya̱fang==
<references/>
2nlidstnqltp7z7blcuqa6ulbus62qf
Dangkali Ashung
0
395
4236
4235
2022-05-16T12:47:46Z
Jon Harald Søby
8
3 revisions imported
wikitext
text/x-wiki
#REDIRECT [[A̱da̱ngka̱li A̱shong]]
m2r81w78fh2cglewtawh6b9opo5ztro
Davido
0
396
14246
13342
2022-06-13T10:11:29Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
[[Fail:Davido performing at the Lagos city Marathon gala 2020 10 27 05 793000 (cropped).jpeg|197px|right]]
'''David Adedeji Adeleke''' (á̱ ku byin nggu a̱tuk mam 21 Zwat Swak ma̱ng Jhyiung 1992), á̱ lyen nggu ma̱ng a̱lyoot '''Davido'''. A̱ yet a̱tyulyuut, tsot ma̱ng bwom bubwom wa. Á̱ ku byin nggu Amerika a̱wot a̱ bu yet a̱tyu [[Naijeriya]] wa.
[[Sa:byin_1992]]
1hhy8ysbkr6wcd902wd6fbe950c05bk
Deontay Wilder
0
397
12242
4250
2022-05-20T15:34:18Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
[[Fail:Deontay Wilder 2018 (cropped).jpg|197px|right]]
'''Deontay Leshun Wilder'''; (byin October 22, 1985) a̱yet a̱fai bosin America wa. A̱kang ba̱ng a̱na WBC heavyweight neet 2015 s̱ bai 2020, ka nwuan a si̱ li,a̱ cok a̱na kya bai ka̱ swak (10).
==Ya̱fang==
<references/>
j85fhuukz4iazwf6m8w5yqtec7griod
Desmond Tutu
0
398
14247
13343
2022-06-13T10:11:55Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
[[Fail:Archbishop-Tutu-medium.jpg|thumb|Ghwughwu a̱nietkhwop á̱niet a̱ghyang (A̱gba̱ndang Bishop Desmond Tutu) ma̱ng gi̱las a̱ghyi a̱ shyuak mai]]
'''Desmond Mpilo Tutu''' OMSG CH GCStJ (7 Zwat Swak 1931 – 26 Zwat Swak ma̱ng Sweang 2021) ku yet bishop Angglikan wa ma̱ a̱byin [[Afrika A̱tak]] a̱ si̱ ka yet a̱gwak Tat-a̱pyia̱ Lyen A̱gwaza, nang á̱ lyen mat nta̱m nggu na nang yet a̱fi̱p-apatait ma̱ng a̱tyu a̱ kwan mat a̱ka̱wat á̱nietbishyi a̱ni. A̱ ku yet Bishop Johannesburg kyiak neet ma̱ a̱lyia̱ 1985 ba̱ng si̱ tat 1986 a̱wot a̱ si̱ kin gyet A̱gba̱ndang Bishop Cape Town wu kyiak neet ma̱ a̱lyia̱ 1986 ba̱ng si̱ tat 1996, di̱n jen sweang ji, nggu wa ku yet a̱tyu Afrika a̱dyundyung kwa-vam a̱son a̱ na swan di̱n cuk a̱ja. Di̱ fam a̱lyia̱ Tat-a̱ghyi Lyen A̱gwaza hu, a̱ ku cat a̱ mun tswá a̱di̱dam Tat-a̱ghyi Lyen A̱gwaza a̱dyundyung kwa-vam ji ma̱ng Tat-a̱ghyi Lyen A̱gwaza Afrika a̱mgba̱m ji̱ tyia̱ mi̱ kyang nyiung.
==Lyuut mi̱ lyuut==
Tutu ku yet a̱tyulyuut mkpa̱m shei a̱lyiat a̱natat ma̱ng lyuut nghyang:
* ''Crying in the Wilderness'', Eerdmans, 1982. ISBN 978-0-8028-0270-5
* ''Hope and Suffering: Sermons and Speeches'', Skotaville, 1983. ISBN 978-0-620-06776-8
*''The War Against Children: South Africa’s Youngest Victims'', Human Rights First, 1986. ISBN 9780934143004
* ''The Words of Desmond Tutu'', Newmarket, 1989. ISBN|978-1-55704-719-9
* ''The Rainbow People of God: The Making of a Peaceful Revolution'', Doubleday, 1994. ISBN 978-0-385-47546-4
* ''Worshipping Church in Africa'', Duke University Press, 1995. ASIN B000K5WB02
* ''The Essential Desmond Tutu'', David Phillips Publishers, 1997. ISBN 978-0-86486-346-1
* ''No Future Without Forgiveness'', Doubleday, 1999. ISBN 978-0-385-49689-6
* ''An African Prayerbook'', Doubleday, 2000. ISBN 978-0-385-47730-7
* ''God Has a Dream: A Vision of Hope for Our Time'', Doubleday, 2004. ISBN 978-0-385-47784-0
* ''Desmond and the Very Mean Word'', Candlewick, 2012. ISBN 978-0-763-65229-6
* ''The Book of Forgiving: The Fourfold Path for Healing Ourselves and Our World'', HarperOne, 2015. ISBN 978-0062203571
* ''The Book of Joy: Lasting Happiness in a Changing World'', coauthored by His Holiness the 14th Dalai Lama, 2016, ISBN 978-0-67007-016-9
==Bu nwuan==
* Lyulyoot á̱niet-yaa̱ywan Nobel ba̱ byia̱ a̱dyundyung kwa-vam
* Lyulyoot a̱yaakwak a̱son a̱ka̱wat á̱niet a̱byin
* Lyulyoot á̱niet ba̱ kwan ma̱ng swat nyinyang mat a̱ka̱wat á̱nietbishyi
* Tat-a̱ghyi Lyen A̱gwaza Kwai-nfwuo-á̱niet mi̱ Afrika A̱tak-Sahara
* Tat-a̱ghyi Lyen A̱gwaza Jhyi Á̱niet di̱ nyia̱ Kpa̱ndang
==Ya̱fang==
<references/>
==Fang a̱zanson==
* Battle, Michael. ''Desmond Tutu: A Spiritual Biography of South Africa's Confessor'' (Westminster John Knox Press, 2021). (di̱n Shong)
* Kokobili, Alexander. "An insight on Archbishop Desmond Tutu’s struggle against apartheid in South Africa." ''Kairos: Evangelical Journal of Theology'' 13.1 (2019): 115-126. [https://hrcak.srce.hr/file/319720 a̱zalang] (di̱n Shong)
* Maluleke, Tinyiko. "Forgiveness and Reconciliation in the Life and Work of Desmond Tutu." ''International Review of Mission'' 109.2 (2020): 210-221. [https://www.academia.edu/download/65185521/Forgiveness_and_Reconciliation_in_the_Life_of_Desmond_Tutu_Tinyiko_Maluleke.pdf a̱zalang] (di̱n Shong)
* Maluleke, Tinyiko. "The Liberating Humour of Desmond Tutu." ''International Review of Mission'' 110.2 (2021): 327-340. [https://www.researchgate.net/profile/Tinyiko-Maluleke/publication/356105746_The_Liberating_Humour_of_Desmond_Tutu/links/618be8dd61f09877207a8552/The-Liberating-Humour-of-Desmond-Tutu.pdf a̱zalang] (di̱n Shong)
* Nadar, Sarojini. "Beyond a “Political Priest”: Exploring Desmond Tutu as a 'Freedom-Fighter Mystic'." ''Black Theology'' (2021): 1-8. (di̱n Shong)
* Pali, K. J. "The leadership role of emeritus Archbishop Desmond Tutu in the social development of the South African society." ''Stellenbosch Theological Journal'' 5.1 (2019): 263-297. [http://www.scielo.org.za/scielo.php?pid=S2413-94672019000100014&script=sci_arttext&tlng=en a̱zalang] (di̱n Shong)
==A̱ka̱fwuop nta==
* [http://www.tutu.org.za/ The Desmond & Leah Tutu Legacy Foundation SA] (di̱n Shong)
* [https://web.archive.org/web/20211218005727/http://www.tutufoundationusa.org/ Desmond Tutu Peace Foundation USA] (di̱n Shong)
* [http://www.tutufoundationuk.org/ Tutu Foundation UK] (di̱n Shong)
* [https://achievement.org/achiever/desmond-tutu/#interview Archbishop Desmond Tutu Biography and Interview] ma̱ng American Academy of Achievement (di̱n Shong)
[[Sa:Desmond Tutu| ]]
[[Sa:byin 1931]]
[[Sa:kwi 2021]]
5zx61yyy9sxtmkafwe91685cdjps0cf
Diego Velázquez
0
399
15579
14249
2022-08-07T20:15:52Z
Kambai Akau
15
wikitext
text/x-wiki
{{Databox}}
[[Fail:Autorretrato de Velázquez en las Meninas.jpg|197px|right]]
'''Diego Rodríguez de Silva y Velázquez''' (á̱ ku nyia̱ nggu ba̱ptisman mi̱ Zwat A̱taa 6, 1599 – Zwat A̱ni̱nai 6, 1660) ku yet a̱tyuswup nghwughwu a̱byin Si̱pen wa, a̱tyunyia̱ ghwughwu a̱ ku shyia̱ a̱zanson a̱ni mi̱ tutu shi̱ri̱ya A̱gwam Philip IV a̱si̱ bibyin Si̱pen ma̱ng Potuga, ma̱ng a̱si̱ Ce Zi̱nariya A̱si̱pen hu. A̱ ku yet a̱tyunyia̱ ghwughwu wa a̱ nyia̱ ta̱m ma̱nyin nggu da̱ a̱cak Baroque ka (c. 1600-1750). A̱ ku ntsa swup ghwughwu a̱ca̱caat ma̱ng sa̱la̱u tenebris ji, a̱wot a̱ si̱ kin tsa ta̱bat byii̱k za̱kwa nggu ji di̱ nvak a̱tutuk ta̱m kyangswup nggu hu. A mbeang nneap nyia̱ mi̱ nyia̱ nkhang gbangbang ma̱ng yet a̱tsatsak di̱ fam taada ma̱ a̱di̱di̱t, a̱ si̱ swup nghwughwu ma̱ a̱di̱di̱t á̱si̱ kyangbwak a̱gwam Si̱pen ma̱ng á̱kunak a̱byin na, a̱mgba̱m nkyang nani á̱ tung á̱ si̱ tyia̱ mami kwambwat ta̱m a̱gwak nggu hu ''Las Meninas'' (1656).
[[Sa:Á̱nietnyia̱ nghwughwu ma̱ng á̱nietlyen ghwang a̱ka̱sa]]
[[Sa:Byin_1599]]
[[Sa:Kwi_1660]]
ay3jh8xhg7etudyf7t14raud3togmbu
Di̱mokrasi
0
400
15270
14250
2022-07-21T09:07:12Z
Gwanki
276
wikitext
text/x-wiki
{{databox}}
[[Fail:Election MG 3455.JPG|thumb|upright=1.2|A̱tyukhai a̱ koot a̱tswak ngguu mi̱ ce feang khai a̱kwak a̱son a̱byin a̱lyia̱ 2007 ma̱ a̱byin [[Fi̱ransa (a̱byin)|Fi̱ransa]].]]
'''Di̱mokrasi''' (Helen: δημοκρατία, ''dēmokratiā'', neet dēmos 'á̱niet' ma̱ng kratos 'tyok'; Shong: Democracy) yet tangka̱i a̱gwomna̱ti hwa da̱nang ke á̱niet a̱byin ba bibya byia̱ cet khai á̱nietkpacam a̱gwomna̱ti mba ba, ku ba̱ byia̱ cet khai kyang hu á̱ na mkpa á̱ tyia̱ di̱ cam mba hu a̱ni. A̱tyu wu nang á̱ fa nggu da̱ nggu a̱ yet kap "á̱niet" hu hwa a̱ni, ma̱ng si̱sak nang á̱niet ba ka̱u ku ba̱ nwuat cet nyia̱ tyok tazwa mba a̱ni ku shyak ma̱ng sweap njen ku si̱ ka nvwuon kyiak neet a̱byin a̱nyiung ba̱ng si̱ nat a̱byin a̱ghyang, a̱wot bibyin di̱mokrasi a̱hwa si̱ bai mbeang ba̱ si̱si̱ ntyia̱ á̱kum á̱niet ka ma̱ a̱di̱di̱t a̱di̱t ma̱ a̱shonshyon a̱nshyon da̱ a̱ka̱nyiung mami. Á̱tsak a̱ka̱fang kuntyin nok di̱mokrasi ni̱nia yet: sa̱t a̱tung ma̱ng a̱lyiat, ntyia̱ á̱ghyang ma̱ng nyia̱ á̱ghyang ca̱caat, tyei a̱pyia̱ di̱ yet memba, cat shim a̱ghyang, koot ntswak, a̱wat swuan ma̱ng a̱ka̱wat á̱kum á̱niet na a̱ni.
==Ya̱fang==
<references/>
==A̱ka̱fwuop nta==
* [http://plato.stanford.edu/entries/democracy Democracy] mami Stanford Encyclopedia of Philosophy
* [https://web.archive.org/web/20090123021509/https://etext.lib.virginia.edu/cgi-local/DHI/dhi.cgi?id=dv1-78 Dictionary of the History of Ideas: Democracy]
* [https://web.archive.org/web/20081214053945/http://a330.g.akamai.net/7/330/25828/20081021185552/graphics.eiu.com/PDF/Democracy Index 2008.pdf The Economist Intelligence Unit's index of democracy]
* [http://xroads.virginia.edu/~HYPER/DETOC/home.html Alexis de Tocqueville, Democracy in America] Full hypertext with critical essays on America in 1831–32 from American Studies at the University of Virginia (di̱n Shong)
* [https://v-dem.net/ The Varieties of Democracy project]. Indicators of hundreds of attributes of democracy and non-democracy for most countries from 1900 to 2018, and from as early as 1789 for dozens of countries, with many interactive online graphics tools (di̱n Shong)
* [https://ourworldindata.org/democracy Visualizations of data on democratisation and list of data sources on political regimes] mami Our World in Data, mbwak Max Roser.
* [http://www.bbc.co.uk/programmes/p00547jm "Democracy"], bwoi nkhang tazwa a̱tyin di̱mokrasi mi̱ BBC Radio 4 (''In Our Time'', 18 Zwat Swak 2001)
[[Sa:Di̱mokrasi| ]]
[[Sa:Helat gbangbang]]
[[Sa:Khaí]]
[[Sa:Bwoi mi̱ bwoi A̱helen]]
[[Sa:Taada fam jenshyung swanta]]
q0eynj1myx2zulz7v3gwkx0s0x7vl3r
Dodoma
0
401
12268
12246
2022-05-20T22:30:54Z
Kambai Akau
15
/* Ya̱fang */
wikitext
text/x-wiki
'''Dodoma''' ja yet a̱keangtung á̱niet Ta̱nzaniya a̱mgba̱m, ma̱ng a̱keang fam Dodoma nang á̱niet ba̱ shi á̱kpa a̱ si̱ nat cyikwop cyi nyaai mang swak ma̱ng cyi a̱kubunyiung ma̱ng nswak nfwuon ma̱ng a̱taa.
==Ya̱fang==
<references/>
{{Template:A̱ka̱keang swanta}}
81du473ysaydorgu5i3luupyt0qxijt
Dominic Yahaya
0
402
14251
13642
2022-06-13T10:12:10Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
'''Dominic Ga̱mbo Yahaya''' (byin Zwat jhyiung 10, 1950) wa yet a̱tyuba̱ngtyok [[A̱byintyok A̱tyap]], ma̱ [[A̱tak Ka̱duna|a̱tak]] [[Si̱tet Ka̱duna]], [[Naijeriya]], mi̱ di̱ yong huni. Á̱ ka ndyen nggu ma̱ng a̱lyoot ka, ''A̱gwatyap III'', meang.<ref>[https://web.archive.org/web/20210115175652/https://localgov.kdsg.gov.ng/?page_id=31 Ministry of Local Government Affairs {{!}} Kaduna State Government]</ref><ref>[https://www.blueprint.ng/gen-lekwot-monarch-others-mourn-jackson-zamani/ Kaduna: Lekwot, monarch, others mourn Jackson Zamani] (July 9, 2019)</ref><ref name="DY1">[https://blerf.org/index.php/biography/yahaya-dominic-gambo/ WHO'S WHO IN NIGERIA: YAHAYA, Dominic Gambo]</ref><ref name=DY3>Agbese, Andrew (16 November 2016) [https://www.pressreader.com/nigeria/sunday-trust/20161113/281603830044297 El-Rufai presents staff of office to traditional ruler]</ref><ref name=DY2 />
==Shyicet a̱son ma̱ng tat-a̱pyia̱==
Á̱ ku byin Yahaya [[A̱taligan]] (Magamia), [[Fam A̱za, Naijeriya|Fam A̱za]], [[Naijeriya Bi̱ri̱ti̱n]] mi̱ Zwat Jhyiung 10, 1950.
<ref name=DY1 /><ref name=DY2 />
A̱ si̱ tsa ta̱m tat-a̱pyia̱ nggu hu ma̱ a̱lyia̱ 1958, a̱ cong St. Pius' (LEA ma̱ninika) Primary School, Taligan (Magamia) kyiak neet ma̱ a̱lyia̱ 1958 nat 1964; St. Mary's (a̱si̱ A̱gwomna̱ti ma̱ninika) Secondary School, Fadan Kaje tsi̱tsak a̱lyia̱ 1965–1969; Barewa College, [[Zariya]] tsi̱tsak 1970 ma̱ng 1971; a̱ si̱ ka nnyeak di̱ tat-a̱ghyi á̱zanson a̱ shyia̱ nat [[Yunivasti Ahmadu Bello]], Zariya, tsi̱tsak a̱lyia̱ 1972 ma̱ng 1975, a̱jawa gu si̱ ntyak fang hu ma̱ng B.Sc. (Hon.), ''Second Class Upper Division'' mi̱ J̇ografi a̱wot tsi̱tsak a̱lyia̱ 1977–1979, a̱ si̱ shyia̱ M.Sc. mi̱ ''Urban and Regional Planning'' da̱ a̱gba̱ndang a̱vwuomyiam a̱nyiung.<ref name=DY1 /><ref name=DY2 /> A̱ si̱ kin cong a̱yaakos ma̱ a̱di̱di̱t, a̱yaawokshop ma̱ng a̱ka̱tung mban lyen (a̱yaasa̱mina) á̱ghyang a̱mali mi̱ Naijeriya ma̱ng bibyin nta.<ref name=DY2 />
Yahaya si̱ nyeang A̱nap-a̱li Justina mi̱ Zwat Swak ma̱ng Jhyiung 30, 1979.<ref name=DY1 />
==Ta̱m==
Yahaya ku tsa ta̱m ma̱ng a̱gwomna̱ti [[Si̱tet Ka̱duna]] lilyim khwo-a̱byin a̱lyia̱ a̱nyiung tyei ta nggu hu ma̱ng sot ''National Youth Service Corps'' hu, ma̱ a̱lyia̱ 1976 a̱wot a̱ si̱ yet:
* Ofisa Khwom A̱keang II, mi̱ 1977;
* A̱gwak Ofisa Khwom A̱keang, 1987;
* Direkto Khwom A̱keang ma̱ng A̱byin Si̱tet Ka̱duna, ma̱ a̱lyia̱ 1989;
* Jenera Maneja, Atoriti Khwom ma̱ng Yaa̱son A̱gba̱ndang A̱keang Si̱tet Ka̱duna (Kaduna State Urban Planning and Development Authority - KASUPDA) tsi̱tsak 1990–1993.
A̱ si̱ ka yet:
* A̱kpangcuk Ba̱ng Kham a̱si̱ [[Susot a̱gwomna̱ti mali Naijeriya|Sot A̱gwomna̱ti Mali]] [[Ka̱duna ma̱ A̱tak]] wu tsi̱tsak Zwat Nyaai, 1994 - Zwat Tsat, 1996.
Ma a̱nia wa, a̱ si̱ bwuok a̱ bai di̱ nyia̱ ta̱m ma̱ng:
* Ofit mat Bibyin, Sovee ma̱ng Khwom A̱byin wu a̱si̱ [[Si̱tet Ka̱duna]] nang Direkto, Khwom A̱keang ma̱ng A̱byin, tsi̱tsak 1996–1998.
A̱ si̱ mbeang yet:
* A̱di̱ndi̱ng A̱tyulyuut, Á̱nienta̱m Ndá A̱sa̱khwot, tsi̱tsak Zwat Jhyiung, 1999 - Zwat Jhyiung, 2000;
* A̱di̱ndi̱ng A̱tyulyuut, Á̱nietnta̱m Nta̱m ma̱ng A̱ka̱cyet, Zwat Sweang, 2000 - Zwat Swak ma̱ng Jhyiung, 2001;
* Ofit Khwo Á̱niet, Ofit A̱kwak A̱son Komishyon Khwo a̱si̱ A̱si̱tet Ka̱duna wu tsi̱tsak Zwat Swak ma̱ng Sweang, 2001 - Zwat A̱kubunyiung, 2003;
* Ofit Khwo Á̱niet, Ofit A̱kwak A̱son Khwo, A̱mali A̱gwomna̱ti, Kawo, tsi̱tsak Zwat Swak, 2003 - Zwat Jhyiung 10, 2010, a̱jawa gu si̱ bai fwung ta̱m khwo á̱niet hu.<ref name=DY1 /><ref name=DY2 />
Ma a̱nia wa, á̱ si̱ bai khai Yahaya nang A̱kpangcuk, Komiti Ba̱ng Kham A̱tyia̱ka̱u, [[Susot a̱gwomna̱ti mali Naijeriya|Sot A̱gwomna̱ti Mali]] [[Zangon Kataf]] wu tsi̱tsak Zwat A̱taa 20, 2011 - Zwat Swak ma̱ng Jhyiung, 2012; a̱ghwon
*A̱ si̱ bai khwo nang memba si̱ Bot Tyok si̱ ''National Youth Service Corps'' hu lilyim fwung ta̱m khwo á̱niet hu a̱ni.<ref name=DY2 />
==Swat memba ma̱ng za̱náng==
===Swat memba===
Yahaya ku yet a̱tsak memba:
* Town Planning Registration Council (A̱naijeiya), neet 1989; ma̱ng
* A̱tuba, Nigerian Institute of Town Planners (FNITP)<ref name=DY1 /><ref name=DY2 />
A̱ si̱ ma ngyet A̱tyukhwom A̱keang a̱nyan wa ku nnyia̱ ri̱jista a̱ni.<ref name=DY2 />
===Za̱náng===
Á̱ nnang gu za̱náng:
* National Productivity Merit Award mi̱ 1991; ma̱ng <ref name=DY1 />
* Knight of Saint of Mulumba (KSM).<ref name=DY2 />
==Fam si̱tet==
Lilyim jhyá̱ [[Zangon Kataf]] ji a̱si̱ Zwat Tswuon 1992 nang á̱ si̱ yebaat á̱niet ba̱ swak 21 ba̱ yet mman a̱byin [[A̱tyap]] nia a̱ni, á̱ si̱ fam mbaa di̱ mi̱n bat a̱hyiak ku shi̱ri̱ya a̱tafa Cam 2 si̱ 1984 hu nang á̱ ku ntyia̱ di̱n ta̱m mbwak a̱gwomna̱ti a̱khwot á̱kwop Naijeriya ba, Dominic G. Yahaya (a̱ ku yet a̱khwo á̱niet di̱n jen a̱ja) ku shyia̱ mami mba nang á̱ ba̱ng di̱ mi̱n tsotswat a̱ni a̱mgba̱m ma̱ng [[Ba̱la A̱de Da̱ukee]] (a̱ ku yet A̱bagwam [[Zangon Kataf|Zangon Katab]] di̱n jen a̱ja a̱ si̱ bai yet ''A̱gwatyap I'' di̱n jen á̱zanson a̱ni), ACP Juri Ba̱bang A̱yok (rtd.), Maj. James Atomic Kude (rtd.), John Perry Kude ma̱ng á̱ghyang á̱niet, di̱ mi̱n bwung [[Zama̱ni Lyekhwot|Maj. Gen. Zamani Lekwot (rtd.)]], Elias Ma̱nza, ma̱ng á̱ghyang nang á̱ mmang nyiak a̱khwu a̱ni.<ref name=Watch>Africa Watch (June 1993). [https://www.hrw.org/reports/NIGERIA936.PDF NIGERIA: THREATS TO A NEW DEMOCRACY] Vol. 5, No. 9. Pp.13–21</ref>
==Ba̱ng tyok==
Ma̱nang [[Harrison Bunggwon|A̱tyushityok A̱gwam Dr. Harrison Isuu Bunggwon, ''A̱gwatyap II'']] nsaan a̱ni, huhwa á̱ si̱ khai Yahaya yet ''A̱gwatyap'' cobai [[Tyok A̱tyap]] wu, a̱ ka kwak [[A̱tyap]] ba shyei ma̱ng a̱mba a̱zanson a̱ni. Ma̱ A̱tuk A̱sa̱ba̱t, Zwat Swak ma̱ng Jhyiung 12, 2016, á̱ si̱si̱ nneap nggu shan tyok ji mbwak gwomna [[Si̱tet Ka̱duna]] wu a̱magwam ka mami A̱tak Njei.<ref name=DY2>Simon, Reef (February 3, 2017). [https://forefrontng.com/atyap-chiefdom-passing-on-the-baton-2/ Atyap Chiefdom: Passing On the Baton]</ref><ref>[https://web.archive.org/web/20210115175652/https://localgov.kdsg.gov.ng/?page_id=31 El-Rufai urges new Agwatyap, others to promote peace] Kaduna State Government</ref><ref name=DY3 />
==Ya̱fang==
<references/>
==A̱ka̱fwuop nta==
[[Sa:Á̱gwam Naijeriya]]
[[Sa:Á̱gwam A̱byintyok A̱tyap]]
[[Sa:Á̱gwam Afrika]]
[[Sa:Á̱nietkwai-nfwuo-á̱niet sa̱ncuri 20 mi̱ Naijeriya]]
[[Sa:byin_1950]]
[[Sa:Á̱niet Si̱tet Ka̱duna]]
[[Sa:Á̱niet_nswuan]]
[[Sa:A̱tyap]]
225qgcfj6g6wqe5votofrsrwn1b4g3g
Dudung ma̱ng kpa
0
403
12248
4397
2022-05-20T15:35:30Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
'''Dudung ma̱ng kpa''' yet nkyang feang á̱ ku lyen gbangbang ba̱ng si̱ tat a̱zafwun a̱ni. Á̱niet nyia̱ nta̱m mi̱n tutuweang kyayak ma̱ng a̱si̱ zop a̱ki̱kan ni̱ sang a̱wot ba̱ kwang nkyang mi̱ dudung. Ba̱ ni̱ kpa nkyang na ba̱ ntyei nkyuo.
[[Fail:Guinea Photo 15.jpg|thumb|A̱nyiuk a̱byin [[Gini]] kpa ma̱ng dudung ma̱ng kpa]]
==Ya̱fang==
<references/>
imnw9r5uk6es2iyjbtvywgnye4tuz4a
Du̱dung ma̱ng Kpa
0
404
4399
4398
2022-05-16T12:47:52Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[Dudung ma̱ng kpa]]
74ymt3vc2xaly5mc5mi5pcsfbw0in63
Dyang
0
405
12249
4408
2022-05-20T15:35:40Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
[[Fail:Waist.svg|thumb|Dyang a̱tyubishyi ji]]
'''Dyang''' ji (á̱kpa: '''dyidyang''' ''ji'') ja shyia̱ tsi̱tsak a̱gbi̱gbang ma̱ng a̱ga̱sat a̱ vwuoi a̱ti̱tak ma̱ng á̱kum nvam ka.
==Ya̱fang==
<references/>
549itg27px1e327r3w5t8yp5iakxnis
Dzuk
0
406
4410
4409
2022-05-16T12:47:52Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[Zuk]]
md3v1hlewhitf77o4ejegee0bzohkdq
Eritrea
0
407
14252
13746
2022-06-13T10:12:15Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
{{Country
|name = Si̱tet Eritrea
|flag = Flag of Eritrea.svg
|coa = Emblem of Eritrea (or argent azur).svg
|image = Eritrea (orthographic projection).svg
|capital = [[A̱si̱mara]]
|area = 117 600
|population = 3 600 000 - 6 700 000
|year =
}}
'''A̱bwom a̱byin''': "Ertra, Ertra, Ertra]]"<br />("Eritrea, Eritrea, Eritrea")<br /> [[File:National Anthem of Eritrea by US Navy Band.ogg|center]]</div>
A̱byin '''Eritrea''' (Shong: /ˌɛrɪˈtreɪə, ˌɛrɪˈtriːə/), á̱ lyen ma̱ng a̱lyoot a̱gwomna̱ti ka nang '''Si̱tet Eritrea''' ji (Shong: State of Eritrea) a̱ni, yet a̱byin kya di̱ fam-a̱byin A̱tyin Afrika, a̱wot a̱keangtung nka ka (ma̱ng a̱gba̱ndang a̱keang a̱ swak mi̱ shi nka wu) si̱ yet A̱si̱mara. Ka̱ byia̱ a̱gi̱gak ma̱ng [[Ityopya]] di̱ fam a̱tak hu, [[Sudan]] di̱ fam jenshyung hu, ma̱ng Ji̱buti di̱ fam a̱tak-a̱tyin hu. Nfam a̱byin a̱za-a̱tyin ma̱ng a̱tyin Eritrea byia̱ a̱junjung lang khwong kyai a̱sa̱khwot ku hyia̱k A̱shong Kyai A̱sa̱khwot hu a̱ni. A̱byin ka byia̱ a̱mgba̱m shi kyai a̱byin ku shyia̱ kpa̱mkpaan kilomita a̱ma̱ntaa̱naai 117,600 (met a̱ma̱ntaa̱naai 45,406), si̱ a̱hwa si̱ shyia̱ dundung ma̱ng Sot Bibyin A̱ka̱wa̱tyia̱ A̱sa̱khwot Dahlak ji ma̱ng A̱byin A̱ka̱wa̱tyia̱ A̱sa̱khwot Hanish ma̱ a̱di̱di̱t ka.
==Ya̱fang==
<references/>
{{Bibyin Afrika}}
[[Sa:Bibyin_swanta]]
[[Sa:Bibyin_Afrika]]
[[Sa:Bibyin_A̱tyin_Afrika]]
1j9gwgt0zz22ahym1cxbh86cg34sdn8
Eswatini
0
408
14253
13696
2022-06-13T10:12:20Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
{{Country
|name = A̱byintyok Eswatini<br>Umbuso weSwatini (Swazi)<br>Kingdom of Eswatini (Shong)
|flag = Flag of Eswatini.svg
|coa = Coat of arms of Eswatini.svg
|image = Location Eswatini AU Africa.svg
|capital = Mbabane (a̱pyia̱ a̱gwomna̱ti), Lobamba (kpa cam a̱byin)
|area = 17,364
|population = 1,160,164
|year = 2020
}}
'''A̱bwom a̱byin''': "Nkulunkulu Mnikati wetibusiso temaSwati"<br />(''"Nwan A̱gwaza, A̱tyunangnda A̱swati ba"'')<br>[[Fail:Nkulunkulu Mnikati wetibusiso temaSwati (instrumental).ogg]]
A̱byin '''Eswatini''' (Swati: eSwatini /ɛswáˈtʼiːni/; Shong: /ˌɛswɑːˈtiːni/), á̱ lyen ma̱ng a̱lyoot a̱gwomna̱ti nka nang '''A̱byintyok Eswatini''' ka (Shong: Kingdom of Eswatini) nang gbangbang á̱ ku yei '''Swaziland''' (yei Ntyap: /swádzìlɑ̂ːn/) a̱ni, a̱wot á̱ghyang á̱niet nang A̱shong ba ni̱ ngyei a̱nia ba̱ng si̱ tat a̱fwun bi̱ri̱m ma̱ng shyiak a̱lyoot ka mbwak a̱gwomna̱ti a̱byin ba ma̱ a̱lyia̱ 2018 a̱ni), yet a̱byin kya ka̱ nwai byia̱ gak ma̱ng kyai a̱sa̱khwot ka̱ shyia̱ di̱ fam-a̱byin A̱tak Afrika hu. A̱byin Eswatini byia̱ a̱gi̱gak ma̱ng bibyin Mozambik di̱ fam a̱za-a̱tyin hu ma̱ng [[Afrika A̱tak]] di̱ nfam a̱za, jenshyung, ma̱ng a̱tak na. A̱byin Eswatini yet a̱nyiung mami a̱cyuang bibyin [[Afrika]] hu ku shyia̱ ma̱ng shi kyai a̱byin ku nwai swak kilomita 200 (met 120) a̱ni, kyiak neet di̱ fam a̱za naat a̱tak hu ma̱ng kilomita 130 (met 81) kyiak neet di̱ fam a̱tyin naat jenshyung hu; a̱mgba̱m ma̱ng a̱nia, za̱kwa wun nka ji ma̱ng lili a̱byin hu vwuon ba̱t, kyiak neet di̱ veld-a̱za tsutsok ku shi̱ri̱m a̱ni naat di̱ veld-tsuung ku fi̱ri̱m ku si̱ khwot a̱ni meang.
==Ya̱fang==
<references/>
{{Bibyin Afrika}}
[[Sa:Bibyin_swanta]]
[[Sa:Bibyin_Afrika]]
[[Sa:Bibyin_A̱tak_Afrika]]
b8u6d4a3c1nsukhclutb1h93xpx9ddz
Facebook
0
409
14254
13349
2022-06-13T10:12:25Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
[[Fail:2021 Facebook icon.svg|thumb|Aikon Facebook]]
[[Fail:Facebook Logo (2019).svg|thumb|A̱lama a̱bwuang Facebook]]
'''Facebook''' (ku '''Fesbuk''') yet savit tung a̱niet ndung hwa ma̱ng á̱na̱nwuai seang nkhang a̱zalang Amerika nang sot Meta Platforms ji ja byia̱ a̱ni. Á̱ kpaat sot ji ma̱ a̱lyia̱ 2004 mbwak [[Markut Zuka̱beg|Mark Zuckerberg]] ma̱ng mmanfang a mbeang á̱kpa̱ndang swat tutu nggu ba á̱ghyang mi̱ Harvard College nang Eduardo Saverin, Andrew McCollum, Dustin Moskovitz, ma̱ng Chris Hughes. A̱lyoot sot ka neet nkwambwat a̱myim ''face book'' ni̱nia nang á̱ ni̱ nnwuak mmanfang a̱yaayunivasti [[A̱yaasi̱tet Muná̱pyia̱|Amerika]] na a̱ni. Di̱n jen tsa ji, mmanfang Harvard ni̱nia ma̱nyin nna maai yet memba, a̱wot ma̱nang a̱ngga wu seang a̱ni, a̱ si̱ ka ntat a̱yaayunivasti [[Amerika A̱za|A̱merika A̱za]] á̱ghyang ma̱ a̱shonshyon ma̱ a̱shonshyon, a̱wot kyiak neet ma̱ a̱lyia̱ 2006, konyan wa gu swak ndyia̱ 13 maai nwuo. Ma̱ a̱lyia̱ 2020, Facebook tyan nyia̱ á̱nietnta̱m biliyon 2.8 bya nshyia̱ di̱ nyia̱ ta̱m ma̱ng a̱ngga mba wu kuzang zwat, a̱wot di̱ fam shi nyia̱ ta̱m ma̱ng a̱cyetaneang hu ku si̱ yet a̱natat mi̱ swanta hu a̱mgba̱m.<ref>[https://www.alexa.com/topsites The top 500 sites on the web] (di̱n Shong). Alexa Internet.</ref> Huhwa ku yet ap jet a̱bwoi wu nang á̱ swak cyok ma̱ng a̱nggu mi̱ ce ndyia̱ 2010 hu.<ref>Miller, Chance (Zwat Swak ma̱ng Sweang 17, 2019). [https://9to5mac.com/2019/12/16/apps-and-games-of-the-decade/ These were the most-downloaded apps and games of the decade] (di̱n Shong). 9to5Mac.</ref>
==Ya̱fang==
<references/>
==A̱ka̱fwuop nta==
* [https://www.facebook.com/ A̱ma̱ntei A̱gwomna̱ti Facebook] ([https://m.facebook.com/ Jet a̱bwoi])
[[Sa:Facebook| ]]
[[Sa:Kpaat mi̱ kpaat 2004 mami Massachusetts]]
[[Sa:A̱yaama̱ntei tung á̱niet ndung Amerika]]
[[Sa:Kyanglilyiit Android (si̱stem nta̱m)]]
[[Sa:Kyanglilyiit BlackBerry]]
[[Sa:Blog hosting services]]
[[Sa:Companies' terms of service]]
[[Sa:A̱yaama̱ntei ka̱u ghwughwu]]
[[Sa:Internet properties established in 2004]]
[[Sa:Kyanglilyiit IOS]]
[[Sa:A̱yaapi̱li̱keshyon A̱ka̱dak Meta]]
[[Sa:A̱yaama̱ntei lilyem ma̱ a̱di̱di̱t]]
[[Sa:A̱yaasavit vwuo vidyo a̱zalang]]
[[Sa:A̱yaaprodok nang á̱ ku ghwut ndyo ma̱ a̱lyia̱ 2004]]
[[Sa:Proprietary cross-platform software]]
[[Sa:Social information processing]]
[[Sa:Á̱na̱nwuai seang nkhang]]
[[Sa:Social planning websites]]
[[Sa:Taada mmanfang]]
[[Sa:Kyanglilyiit Symbian]]
[[Sa:Universal Windows Platform apps]]
[[Sa:Video game streaming services]]
[[Sa:Websites which mirror Wikipedia]]
p31rebckr4kam2rzrmc0zhua4g2v61m
Fang
0
410
4471
4470
2022-05-16T12:47:55Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[Fang (nkyang)]]
tej4fbc5xq6hrtp30e9qnxqy279gy4t
Fang (nkyang)
0
411
12253
4486
2022-05-20T15:36:20Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
'''Fang nkyang''' yet vak zop ke mang hwa ce nkyang ghyáng yet a̱ni. Si̱ a̱hwa fa cat shi a̱kpa a̱nyiung nang á̱ ku khap á̱ si̱ sak a̱ni.
==Ya̱fang==
<references/>
1upfz9b1ut74sa1hy79jc8momhzvoxv
Fantswam (a̱byin)
0
412
15320
14998
2022-07-24T16:43:00Z
Kambai Akau
15
#WPWP #WPWPNG
wikitext
text/x-wiki
{{Databox|item=Q6346073}}
A̱byin '''Fantswam''' (''[[A̱lyem Kpat|Kpat]]'': Kafancan; ''Shong'': Kafanchan; ''Ku'': Manggyanɡ) yet a̱keang kya ka̱ shyia̱ di̱ [[A̱tak Ka̱duna|fam a̱tak]] [[Si̱tet Ka̱duna]], Fam A̱ka̱wa̱tyia̱, [[Naijeriya]], ka̱ myim a̱za̱za̱rak ya a̱son mat ya a̱son vak kyangcung-a̱byin nang á̱ ku kpaat a̱ni mi̱ fam a̱byin a̰hwa gbangbang, a̱wot á̱ si̱ ka nsak tesha a̱ga̱sat nvak sot ''Nigerian Railway Corporation'' (NRC) ji a̱ja ma̱ a̱lyia̱ 1927,<ref name="daily sun">Archibong, Maurice (September 26, 2006). Daily Sun. [https://web.archive.org/web/20070929095527/http://www.sunnewsonline.com/webpages/features/travels/2006/oct/26/travels-26-10-2006-001.htm ''Kafanchan: Rising from rot wrought by Railways' woes'' {{!}} newspaper]</ref> a̱wot a̱keang ka si̱ bu swan lang kyangcung-a̱byin ku mun [[Pa̱takwot]], [[Inugu]], Fantswam, [[Kuru, Naijeriya|Kuru]], [[Ba̱uci]], ku si̱ bai gba̱p mami a̱keang [[Nduguli]].<ref name=nigeriafirst>[https://web.archive.org/web/20061216180402/http://www.nigeriafirst.org/article_6340.shtml |NigeriaFirst.org: Revamping the Nigerian Railway ]</ref> Ma̱ a̱cak 2007, á̱ tyan shi á̱niet mami A̱byin Fantswam á̱ si̱ sak 83,092.<ref name="world gazetteer">[https://web.archive.org/web/20071001092004/http://www.world-gazetteer.com/wg.php?men=gpro&des=gamelan&geo=358542828 The World Gazetteer]</ref>
[[File:Kabyiek Tityong Waterfall 6.jpg|thumb|A̱byiek Tityong]]
== Bu nwuan ==
* [[Kafanchan Peace Declaration]]
* [[Railway stations in Nigeria]]
* [[A̱tak Ka̱duna]]
== Ya̱fang ==
<references/>
==A̱ka̱fwuop nta==
{{Commons category-inline}}
[[Sa:Naijeriya]]
[[Sa:A̱ka̱vwuo na̱ byia̱ á̱niet ma̱ ba̱t mami Si̱tet Ka̱duna]]
[[Sa:A̱ka̱keang_mami_Naijeriya]]
[[Sa:Fantswam]]
jffql2pyxl7orjsax286sp1q98bri8u
Filipin
0
413
14755
14259
2022-07-04T08:28:37Z
Kwamikagami
349
wikitext
text/x-wiki
{| class="wikitable" align=right border width="200"
| colspan="2" align=center|'''Ri̱pobi̱lik Filipin''' <br> Republika ng Pilipinas (Filipino)
|-
| colspan="2" align=center|[[Fail:PHL orthographic.svg|300px|center]] <sub>Ta̱si̱la a̱byin Filipin</sub>
|-
| [[Fail:Flag of the Philippines.svg|thumb|Tuta a̱byin Filipin]]
|-
| [[Fail:Coat of arms of the Philippines.svg|thumb|A̱lama a̱byin Filipin]]
|-
| [[Fail:Seal of the Philippines.svg|100px|A̱gba̱ndang A̱timi Filipin wu]] <sub>A̱gba̱ndang A̱timi Filipin wu</sub>
|-
|}
A̱byin '''Filipin''' (Filipino: Pilipinas; Shong: The Philippines /ˈfɪləpiːnz/), á̱ lyen ma̱ng a̱lyoot a̱gwomna̱ti ka nang '''Ri̱pobi̱lik Filipin''' wu (Filipino: Republika ng Pilipinas; Shong: Republic of the Philippines), yet a̰byin ka̱ yet sot bibyin a̱ka̱wa̱tyia̱ a̱sa̱khwot kya a̱ni, di̱ fam a̱byin A̱tak-A̱tyin A̱siya. Ka̱ shyia̱ di̱ fam jenshyung [[A̱gba̱ndang Kyai A̱sa̱khwot Pasi̱fi̱k]] wu wa, ka̱ si̱ byia̱ bibyin a̱ka̱wa̱tyia̱ a̱sa̱khwot kpa̱mkpaan ma̱ng 7,640, nang á̱ ka̱u sak susot tsat ca̱caat ma̱ng lili wun hu kyiak neet a̱za naat a̱tak: Luzon, Visa̱yat, ma̱ng Mi̱nda̱nawo. A̱byin Filipin ka byia̱ a̱gi̱gak ma̱ng [[Kyai A̱sa̱khwot Caina A̱tak]] hu di̱ fam jenshyung hu, Kyai A̱sa̱khwot Filipin hu di̱ fam a̱tyin hu, ma̱ng Kyai A̱sa̱khwot Selebet hu di̱ fam a̱tak-jenshyung hu, a̱wot ka̱ si̱ byia̱ a̱gi̱gak a̱sa̱khwot ma̱ng bibyin [[Taiwan]] di̱ fam a̱za hu, [[Ja̱pan]] di̱ fam a̱za-a̱tyin hu, [[Pa̱la̱u]] di̱ fam a̱tyin hu ma̱ng a̱tak-a̱tyin, [[Ndonisiya]] di̱ fam a̱tak hu, Malesiya ma̱ng Brunei di̱ fam a̱tak-jenshyung hu, [[Viyetnam]] di̱ fam jenshyung hu, ma̱ng [[Caina]] di̱ fam a̱za-jenshyung hu. A̱byin Filipin ka kup shi kyai a̱byin kilomita a̱ma̱ntanaai 300,000 (met a̱ma̱ntanaai 120,000) a̱wot, ma̱ a̱lyia̱ 2020, ka̱ byia̱ shi á̱niet kpa̱mkpaan ma̱ng miliyon 109, ka̱ si̱ yet a̱byin 12 ka̱ lan byia̱ á̱niet mi̱ swanta hu a̱ni. Ka̱ yet a̱byin nnwap ma̱ a̱di̱di̱t kya, ma̱ng nnwap ma̱ng taada nvwuom na̱ kaai a̱mgba̱m bibyin a̱ka̱wa̱tyia̱ a̱sa̱khwot nka hu. A̱keang Manila kya yet a̱keangtung nka ka, a̱wot Quezon City kya si̱ yet a̱gba̱ndang a̱keang a̱ swak ma̱ng shi a̱ni, bi̱ri̱ng ma̱ng a̱nia, a̱ka̱keang a̱feang na myian di̱ fam dandi Metro Manila hwa.
==Ya̱fang==
<references/>
{{Template:Bibyin A̱siya}}
[[Sa:Bibyin_swanta]]
[[Sa:Bibyin_A̱siya]]
[[Sa:Bibyin_A̱tak-A̱tyin_A̱siya]]
nga6ca0c0i1wknlfp18l4j3p5p9eerx
Fizik
0
414
16106
16079
2022-08-19T20:50:08Z
Kambai Akau
15
wikitext
text/x-wiki
{{Databox}}
'''Fizik''' yet a̱za̱za̱rak sains wa a̱ zop nkyang gu lyen nna,{{efn|Di̱n tsa ''[[The Feynman Lectures on Physics]]'', [[Richard Feynman]] offers the [[Atomic theory|atomic hypothesis]] as the single most prolific scientific concept.<ref name="feynmanleightonsands1963-atomic">{{harvnb|Feynman|Leighton|Sands|1963|p=I-2}} "If, in some cataclysm, all [] scientific knowledge were to be destroyed [save] one sentence [...] what statement would contain the most information in the fewest words? I believe it is [...] that ''all things are made up of atoms – little particles that move around in perpetual motion, attracting each other when they are a little distance apart, but repelling upon being squeezed into one another'' ..."</ref> }} kuntyin yet nna hu, a̱guguut nna wu ma̱ng za̱kwa da̱ a̱cak njen ma̱ng a̱wat (a̱ghwop), ma̱ng nkyang a̱meang kpa̱p cet ma̱ng cet yuut.<ref name="maxwell1878-physicalscience">{{harvnb|Maxwell|1878|p=9}} "Physical science is that department of knowledge which relates to the order of nature, or, in other words, to the regular succession of events."</ref> Fizik yet a̱nyiung di̱ nfam sains na̱ lan di̱ yet a̱tsatsak a̱ni, ma̱ng jat nfi̱k za̱kwa swanta mbeang á̱ta̱ngwat kyai tswazwa ji.{{efn|The term "universe" is defined as everything that physically exists: the entirety of space and time, all forms of matter, energy and momentum, and the physical laws and constants that govern them. However, the term "universe" may also be used in slightly different contextual senses, denoting concepts such as the [[cosmos]] or the [[World (philosophy)|philosophical world]].}}<ref name="youngfreedman2014p1">{{harvnb |Young|Freedman|2014|p=1}} "Physics is one of the most fundamental of the sciences. Scientists of all disciplines use the ideas of physics, including chemists who study the structure of molecules, paleontologists who try to reconstruct how dinosaurs walked, and climatologists who study how human activities affect the atmosphere and oceans. Physics is also the foundation of all engineering and technology. No engineer could design a flat-screen TV, an interplanetary spacecraft, or even a better mousetrap without first understanding the basic laws of physics. (...) You will come to see physics as a towering achievement of the human intellect in its quest to understand our world and ourselves."</ref><ref name="youngfreedman2014p2">{{harvnb |Young|Freedman|2014|p=2}} "Physics is an experimental science. Physicists observe the phenomena of nature and try to find patterns that relate these phenomena."</ref><ref name="holzner2003-physics">{{harvnb|Holzner|2006|p=7}} "Physics is the study of your world and the world and universe around you."</ref> Á̱ ngyei a̱tyusains a yet a̱gwak mi̱ fam fizik a̱tyufizik.
==Nkhang==
{{A̱tsak|Nkhang fizik}}
Swang a̱lyiat ji "fizik" neet swang a̱lyiat Helen ji {{lang-grc|φυσική (ἐπιστήμη)|physikḗ (epistḗmē)}} ja, ku fa "lyen yet a̱mat" a̱ni<ref name="etymonline-physics">{{cite web |title=physics |website=[[Online Etymology Dictionary]] |url=http://www.etymonline.com/index.php?term=physics&allowed_in_frame=0|access-date=2016-11-01 |archive-url= https://web.archive.org/web/20161224191507/http://www.etymonline.com/index.php?term=physics&allowed_in_frame=0 |archive-date=24 December 2016 |url-status=live}}</ref><ref name="etymonline-physic">{{cite web |title=physic |website=[[Online Etymology Dictionary]] |url=http://www.etymonline.com/index.php?term=physic&allowed_in_frame=0 |access-date=2016-11-01 |archive-url= https://web.archive.org/web/20161224173651/http://www.etymonline.com/index.php?term=physic&allowed_in_frame=0 |archive-date=24 December 2016 |url-status=live}}</ref><ref name="LSJ">{{LSJ|fu/sis|φύσις}}, {{LSJ|fusiko/s|φυσική}}, {{LSJ|e)pisth/mh|ἐπιστήμη|ref}}</ref> di̱n vak swang a̱lyiat nShong ji, ''physics''.
==Ya̱fang==
<references/>
==A̱ka̱fwuop nta==
[[Sa:Fizik]]
tikpxferqxaz3obqo4zlgtt84pjx4wt
Fi̱ng
0
415
12256
4541
2022-05-20T15:36:52Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
'''Fi̱ng''' hwa yet jen ja nang nggwoseam/nggwonean nshyia̱ ma̱ tsi̱tsak [[nggwon]] ma̱ng kwop a̱ni.
==Ya̱fang==
<references/>
dpm35szm2hxywbnhz0wnafuxb3e5rto
Fi̱ransa
0
416
4543
4542
2022-05-16T12:47:58Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[Fi̱ransa (a̱byin)]]
4ddj4oydkk0uc6igfvf4s8ru4tpkot3
Fi̱ransa (a̱byin)
0
417
14261
13353
2022-06-13T10:13:06Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
{{Country
|name = ''Ri̱pobi̱lik Fi̱ransa''<br><small>République française (Fi̱ransa)</small>
|flag = Flag of France.svg
|caption = Tyiang a̱toot shi a̱byin Fi̱ransa
|coa = Armoiries république française.svg
|image = EU-France (orthographic projection).svg
|capital = [[Parit]]
|area = 643,801
|population = 67,413,000<ref>[https://www.insee.fr/en/statistiques/serie/001641607 Demography – Population at the beginning of the month – France] (di̱n Shong). Insee (2019).</ref>
|year = 2021
}}
'''A̱bwom a̱byin''': "{{lang|fr|La Marseillaise}}"<div style="display:inline-block;margin-top:0.4em;">[[Fail:La Marseillaise.ogg|alt=sound clip of the Marseillaise French national anthem]]</div>
A̱byin '''Fi̱ransa''' (Fī̱ransa: France: /fʁɑ̃s/), á̱ lyen ma̱ng a̱lyoot a̱gwomna̱ti ka nang '''Ri̱pobi̱lik Fi̱ransa''' wu (Fi̱ransa: République française; Shong: French Republic), yet a̱byin kya ka̱ shyia̱ vam-a̱byin ku swak nyiung a̱ni, di̱ fam Jenshyung Yurop ma̱ng Bibyin Nta (nfam a̱byin ma̱ng a̱yaateritori) ma̱ a̱di̱di̱t. Metropolitan area nka hu ngaat kyiak neet a̱ghyui Rhine ka naat [[A̱gba̱ndang Kyai A̱sa̱khwot Ati̱lantik]] wu a̱wot neet [[Kyai A̱sa̱khwot Meditaroniya]] hu naat English Channel hu ma̱ng Kyai A̱sa̱khwot A̱za hu; bibyin nta nka huhwa yet Guyana Fi̱ransa ma̱ A̱tak Amerika ma̱ng bibyin a̱ka̱wa̱tyia̱ a̱sa̱khwot ma̱ a̱di̱di̱t da̱ a̱ca̱cet nkyai a̱sa̱khwot [[A̱gba̱ndang Kyai A̱sa̱khwot Ati̱lantik|Ati̱lantik]], [[A̱gba̱ndang Kyai A̱sa̱khwot Pasi̱fi̱k|Pasi̱fi̱k]] ma̱ng [[A̱gba̱ndang Kyai A̱sa̱khwot Ndiya|Ndiya]] na. A̱byin Fi̱ransa byia̱ a̱gi̱gak ma̱ng bibyin Beljiyom, Lukza̱mbok, ma̱ng [[Jami̱ni]] di̱ fam a̱za-a̱tyin hu, [[Shwit]], Monako ma̱ng [[Italiya]] di̱ fam a̱tyin hu, Andora ma̱ng [[Si̱pen]] di̱ fam a̱tak hu, a mbeang Holan, Surinama, ma̱ng [[Brazil]] ma̱ [[Amerika]]. A̱tsak nfam a̱byin 18 nka na (a̱fwuon shyia̱ bibyin nta) dundung nkup shi kyai a̱byin kilomita a̱ma̱ntanaai 643,801 (met a̱ma̱ntanaai 248,573) ma̱ng shi á̱niet ku swak miliyon 67 (mi̱ di̱ Zwat Tswuon 2021).<ref>"[https://www.cia.gov/library/publications/the-world-factbook/fields/2147.html|publisher=CIA Field Listing :: Area]" (di̱n Shong). The World Factbook.</ref> A̱byin Fi̱ransa yet ri̱pobi̱lik [[A̱si̱tet muna̱pyia̱|Muna̱pyia̱]] wa ku nyia̱ ta̱m ma̱ng sistem Semi-Presidential a̱ni. A̱keangtung nka shyia̱ Parit, a̱gba̱ndang a̱keang a̱ swak mi̱ shi ma̱ a̱byin ka a̱ bu yet a̱ka̱wa̱tyia̱ taada ma̱ng naat mbwuot kaswuo nka ka. A̱ca̱cet a̱ka̱keang á̱ghyang nka ni̱nia yet Lyon, Marseille, Toulouse, Bordeaux, Lille, ma̱ng Nice. A̱mgba̱m ma̱ng bibyin nta nka hu, a̱byin Fi̱ransa byia̱ a̱yaazoni njen swak ma̱ng sweang, si̱ ku shi swak si̱ kuzang a̱byin swanta a̱ni.
[[Fail:Great Seal of France.svg|thumb|A̱gba̱ndang A̱timi a̱byin Fi̱ransa: A̱zaghyi]]
[[Fail:Great Seal of France (reverse).svg|thumb|A̱gba̱ndang A̱timi a̱byin Fi̱ransa: A̱zama]]
[[Fail:France in the World (+Antarctica claims).svg|thumb|Ta̱si̱la bibyin nta Fi̱ransa]]
==Ya̱fang==
<references/>
==A̱ka̱fwuop nta==
{{Template:Bibyin Yurop}}
[[Sa:Bibyin_swanta]]
[[Sa:Bibyin_Yurop]]
[[Sa:Bibyin_Jenshyung_Yurop]]
[[Sa:Fi̱ransa|Fi̱ransa]]
2dfoylt7skhafbmb0onw72e0okt7gy8
Fi̱ra̱ntse
0
418
15450
15449
2022-08-04T01:09:58Z
Kambai Akau
15
wikitext
text/x-wiki
[[Fail:Collage Firenze.jpg|thumb|Kpa̱m nghwughwu Fi̱ra̱ntse ku tyai Galleria degli Uffizi wu (tazwa a̱zamyian), Palazzo Pitti si̱ ntung, nwuan kwamam a̱gba̱ndang a̱keang hu ma̱ng Nang A̱sa̱khwot Na̱ptyun mami Piazza della Signoria ji]]
[[Fail:FlorenceCoA.svg|thumb|A̱lama a̱byin Fi̱ra̱ntse]]
'''Fi̱ra̱ntse''' (Italiya: Firenze /fiˈrɛntse/) yet a̱gba̱ndang a̱keang wa di̱ fam A̱ka̱wa̱tyia̱-A̱za a̱byin [[Italiya]] a̱ si̱ yet a̱keangtung fam-a̱byin Tuska̱ni meang. Nggu wa yet a̱gba̱ndang a̱keang a̱ swak ma̱ng shi á̱niet mami Tuska̱ni, ma̱ng á̱nietswat 383,084 mi̱ di̱ a̱lyia̱ 2013, a̱wot a̱ si̱ swak á̱niet 1,520,000 di̱ fam metropolit nggu hu.<ref>Bilancio demografico anno 2013, dati [https://web.archive.org/web/20110709154623/http://demo.istat.it/ ISTAT]</ref>
<br><gallery class=center caption="Fi̱ra̱ntse - Firenze">
Florenz-08-Ponte Vecchio-1977-gje.jpg
Florenz-Dom-Palazzo Vecchio-12-1983-gje.jpg
Florenz-Piazza della Signoria-10-Neptun-1983-gje.jpg
Florenz-Santa Maria Novella-10-Fassade-1983-gje.jpg
Florenz-Santa Maria Novella-12-Fresken des Ghirlandaio-1983-gje.jpg
Florenz-34-Kaeseladen-1977-gje.jpg
Florenz-40-Mann mit Tauben auf Piazza San Marco-1977-gje.jpg
Florenz-68-Treppe zu Fort Belvedere-1983-gje.jpg
</gallery>
==Ya̱fang==
<references/>
f20gcp83667mau167przugaqlh1khr3
Fi̱ra̱nze
0
419
4586
4585
2022-05-16T12:48:00Z
Jon Harald Søby
8
2 revisions imported
wikitext
text/x-wiki
#REDIRECT [[Fi̱ra̱ntse]]
n5q90g9jnulbvmlwyrvvasa8dczd3wr
Fi̱ri̱ng
0
420
15231
15230
2022-07-19T05:46:00Z
Kambai Akau
15
wikitext
text/x-wiki
{{Databox|item=Q9645}}
'''Fi̱ri̱ng''' hu (á̱kpa: '''nfi̱ri̱ng''' ''na'') yet kap vam a̱tyubishyi hu, ku nyám ji̱ nwaai mman nji na a̱ni, ku ntangka̱i nyám ghyáng. Fi̱ri̱ng hu shyia̱ tsi̱tsak a̱tyin fwuo ka ma̱ng kwop [[a̱fa]] hu.
[[Category:Fi̱ri̱ng (vam a̱tyubishyi)]]
[[Category:Vam nyam]]
qmfg8x64mi00jmwu46vov8ywofu6rqu
Francisco de Goya
0
421
15580
14262
2022-08-07T20:17:16Z
Kambai Akau
15
wikitext
text/x-wiki
{{Databox}}
[[Fail:Vicente López Portaña - el pintor Francisco de Goya.jpg|197px|right]]
'''Francisco José de Goya y Lucientes''' (30 Zwat Tsat 1746 – 16 Zwat Nyaai 1828) ku yet a̱tyuswup nghwughwu cat ma̱ng a̱tyutsot nkwambwat wa a̱ ku neet a̱byin Si̱pen. Á̱ ku fa nggu wa yet a̱tyunyia̱ nghwughwu a̱byin Si̱pen a̱ swak konyan ma̱ng yet a̱tsatsak a̱ni mi̱ di̱ ngaan sa̱ncuri 18 hu ma̱ng di̱ ntsa sa̱ncuri 19 hu. A̱ka̱swup nghwughwu nggu na, nghwang, ma̱ng ya̱zut nggu a̱mgba̱m ntyai ta̱ngam mi̱ ta̱ngam nfwuo mi̱ nkhang di̱n jen a̱ja a̱wot ba̱ si̱ laai a̱tsatsak á̱nietswup nghwughwu sa̱ncuri 19 ma̱ng 20 ba. Ma̱ a̱di̱di̱t ka ngyei Goya a̱ngaan ka ma̱ Á̱khwukhwop A̱yaagwak ba ma̱ng a̱son ka ma̱ á̱si̱ mam a̱fwun ba.
[[Sa:Á̱nietnyia̱ nghwughwu ma̱ng á̱nietlyen ghwang a̱ka̱sa]]
jludti5c8gviqysyg0j36l8u23n9zee
Fɨng
0
422
4600
4599
2022-05-16T12:48:01Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[Fi̱ng]]
ivfvbxpwc5tkhr1ydcxcxjd0iopebpp
Gana
0
423
15321
14715
2022-07-25T05:23:37Z
Kambai Akau
15
wikitext
text/x-wiki
{{Databox}}
A̱byin '''Gana''' (Shong: Ghana), á̱ lyen ma̱ng a̱lyoot a̱gwomna̱ti nka ka nang '''Ri̱pobi̱lik Gana''' wu (Shong: Republic of Ghana) a̱ni, yet a̱byin kya di̱ fam-a̱byin [[Jenshyung Afrika]] hu. Ka̱ myiai da̱ [[A̱ngam A̱sa̱khwot Gini]] wu ma̱ng [[Kyai A̱sa̱khwot Ati̱lantik]] hu di̱ fam a̱tak hu, ka̱ si̱ byia̱ a̱gi̱gak ma̱ng bibyin [[Khwong A̱ta̱m Nzwuom]] di̱ fam jenshyung hu, [[Burkina Faso]] di̱ fam a̱za hu, ma̱ng [[Togo]] di̱ fam a̱tyin hu.<ref name="warriorking">Jackson, John G. (2001) ''Introduction to African Civilizations'', Citadel Press, p. 201, ISBN 0-8065-2189-9.</ref> A̱byin Gana kup shi kyai a̱byin kilomita a̱ma̱ntaa̱naai 238,535 (met a̱ma̱ntaa̱naai 92,099), ka̱ si̱ ka ngaat ka̱ si̱ myiai di̱ nfam a̱byin ma̱ng ikoliji ma̱ a̱di̱di̱t kyiak neet di̱ a̱yaasavana fam khwong kyai a̱sakhwot ba nat di̱ sóp a̱za tropik ji. A̱byin Gana byia̱ shu á̱niet ku swak miliyon 31 a̱ni, si̱ ku tyia̱ ka̱ yet a̱feang mi̱ shi á̱niet di̱ fam a̱byin Jenshyung Afrika hu a̱ni, lilyim [[Naijeriya]]. A̱keangtung nka ka ma̱ng a̱gba̱ndang a̱keang wu a̱ swak mi̱ shi a̱ni wa yet Akra; á̱ghyang a̱ca̱cet a̱ka̱keang nka na, ni̱nia yet Kumasi, Tamale, ma̱ng Sekondi-Takoradi
==A̱bwom a̱byin==
'''A̱bwom a̱byin''': "God Bless Our Homeland Ghana" ("A̱gwaza Gu Nang Nda A̱byin-mbyin Nzi̱t Ka")<br>[[File:National Anthem of Ghana.ogg]]
==Ya̱fang==
<references/>
{{Bibyin Afrika}}
[[Sa:Bibyin_swanta]]
[[Sa:Bibyin_Afrika]]
[[Sa:Bibyin_Jenshyung_Afrika]]
logpo2a2zbniodoy7qr9pkfo81nimeq
Ga̱fub
0
424
4619
4618
2022-05-16T12:48:02Z
Jon Harald Søby
8
2 revisions imported
wikitext
text/x-wiki
#REDIRECT [[Ja̱fi̱k]]
ev1jcqifvrx7210w8kokq91mf6rfwen
Ga̱ra (a̱lyem)
0
425
14264
13356
2022-06-13T10:13:21Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
A̱lyem '''Ga̱ra''' ka (Ga̱ra: Ìgáláà; [[Shong (a̱lyem)|Shong]]: Igala), yet a̱lyem kyangbwak lilyem Ghwangkpang (Shong: Yoruboid) kya. Kikya yet a̱lyem [[A̱ga̱ra]] ka mi̱ [[Naijeriya]]. Ma̱ a̱lyia̱ 1989 á̱ ku tyan nyia̱ á̱niet 800,000 bya lyiat ma̱ng a̱lyem Ga̱ra ka, ma̱ a̱tsatsak mi̱ [[Si̱tet Kogi]]. Zwá a̱lyiat nka ji, jija yet Idah, Imane, Ankpa, Dekina, Ogugu, Ibaji ma̱ng Ife.
==Ya̱fang==
<references/>
==A̱ka̱fwuop nta==
*Blench, Roger; Gross, Paul (2005). [http://www.rogerblench.info/Language/Niger-Congo/VN/Yoruboid/Igala%20Mammal%20names.pdf Igala mammal names] (di̱n Shong)
[[Sa:Lilyem_swanta]]
[[Sa:Lilyem_Afrika]]
[[Sa:Lilyem_Afrika_Jenshyung]]
[[Sa:Lilyem_Naijeriya]]
[[Sa:Lilyem_A̱ka̱wa̱tyia̱_Naijeriya]]
[[Sa:Lilyem Nija–Konggo]]
3vcy60sgrmpog4hbgfldssv6lrlj2fq
Ga̱shyio
0
426
4631
4630
2022-05-16T12:48:02Z
Jon Harald Søby
8
5 revisions imported
wikitext
text/x-wiki
'''Ga̱shyio''' yet sum ha a̱yet di̱ wan nyung a̱ni.Ka̱ a̱doot a̱ya a̱bun, a̱kolo ngu ka yet a̱sa̱khwot kikyio nyia.
Gashyio niat swan khenkhiam ka tyia̱ a̱bwonu ku ma̱ng nyung.
==Ya̱fang==
<references/>
numivl5atxhjkp3n7hupx0y3t0sf4u5
Ga̱sswuong
0
427
4634
4633
2022-05-16T12:48:02Z
Jon Harald Søby
8
2 revisions imported
wikitext
text/x-wiki
#REDIRECT [[Ga̱swuong ntak]]
manvj81oldlhuh541scxdg81bkq4qgm
Ga̱swan
0
428
4636
4635
2022-05-16T12:48:03Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[A̱ga̱swan]]
qko8ze7xcr7qsmbxiuaobblb24h9ix4
Ga̱swuong
0
429
14265
13120
2022-06-13T10:13:26Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
'''Ga̱swuong''' ji (á̱kpa: '''ga̱swúon''' ''ji'') bye fa:
# [[Ga̱swuong mbwak]]
# [[Ga̱swuong ntak]]
# [[Ga̱swuong (kompyuta)]], kyang ku ta̱fang a̱vwuo di̱ kyangnwuan ghwughwu kompyuta hu
[[Sa:Ngwat nghai swáng a̱lyiat]]
lswu1a1m8dg3p1fu2ck08ypt4xeg41c
Ga̱swuong mbwak
0
430
12290
4658
2022-05-21T04:44:04Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
'''Ga̱swuong mbwak''' ji (á̱kpa: '''ga̱swúong mbwak''' ''ji'') yet kap vam hwa ku shyia̱ ma̱ a̱ta̱m bwak a̱ni. Ga̱swúong ji shyia̱ tswuon ma̱ng bwak nyiung. Ka̱ za nji na vwuon, ji̱ beang di̱ nyia̱ nta̱m, kwok nkyang mbeang ya nkyayak.
==Bu nwuan==
* [[Ga̱swuong ntak]]
==Ya̱fang==
<references/>
bdul4def8l8jrcewnyf6f62nqzqk476
Ga̱swuong ntak
0
431
4665
4664
2022-05-16T12:48:04Z
Jon Harald Søby
8
6 revisions imported
wikitext
text/x-wiki
'''Ga̱swuong ntak''' ji (á̱kpa: '''ga̱swúong ntak''' ''ji'') ja yet kap vam hwa ku shyia̱ di̱ ngaan kpai ntak a̱tyubishyi ma̱ng nyam ji̱ byia̱ a̱ti̱tak nang a̱tyubishyi a̱ni. Ga̱swúong ji shyia̱ tswuon ma̱ng tak nyiung.
==Ya̱fang==
<references/>
[[en:Toe]]
dgk1p0gp9xlnunqfpz5yhhv5990f82b
Ga̱swuong tak
0
432
4675
4674
2022-05-16T12:48:05Z
Jon Harald Søby
8
9 revisions imported
wikitext
text/x-wiki
#REDIRECT [[Ga̱swuong ntak]]
manvj81oldlhuh541scxdg81bkq4qgm
Ga̱tsot
0
433
12291
4688
2022-05-21T04:44:14Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
[[Fail:Typing example.ogv|thumb|Tsot tazwa kibwot kompyuta]]
'''Ga̱tsot''' (á̱kpa: '''ga̱tsót''') yet nkyang nia tazwa kibwot kompyuta ji̱ byia̱ zwunzwuo á̱ lyuut tazwa nji nang ka̱ á̱ lywi, lyuut hu na ghwut mi̱ kyangnwuan hu.
==Ya̱fang==
<references/>
kbl47zspdplqr4r1xrmfvbrzwb2wp82
Gbazazai
0
434
4690
4689
2022-05-16T12:48:06Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[Gba̱za̱zai]]
pb2aoa42okn5ps391p3et0y0gde83pq
Gba̱za̱zai
0
435
12671
12654
2022-05-24T16:03:46Z
Kambai Akau
15
wikitext
text/x-wiki
'''Gba̱za̱zai''' yet niaat kyang hwa a̱ ni̱ ntyia̱ a̱yin byian á̱ghyi ku fwuo a̱ni. Kidee gba̱za̱zai ji ja lii a̱ni: kyayak ku a̱lyiat a̱yin.
== Ya̱fang ==
<references/>
[[en:Bitterness]]
9y9z5x3b88ljfq9lnqb0ohamekbjhuv
Ghyek
0
436
12292
4711
2022-05-21T04:44:24Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
[[Fail:Burping 3.ogg|thumb|Ghyek]]
'''Ghyek''' yet wun hwa ku ghwut a̱bwonu a̱tyubishyi ku nyam a̱ni ku neet ma̱ a̱fa ka.
== Ya̱fang ==
<references/>
kfliy7fulodfuuj0c9727lq7fn3l06p
Gini
0
437
14267
13706
2022-06-13T10:13:31Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
{{Country
|name = Ri̱pobi̱lik Gini<br>République de Guinée (Fi̱ransa)<br>𞤈𞤫𞤲𞤣𞤢𞥄𞤲𞤣𞤭 𞤘𞤭𞤲𞤫 (Pulaar)<br>ߖߌ߬ߣߍ߫ (N'ko)
|flag = Flag of Guinea.svg
|coa = Coat of arms of Guinea.svg
|image = Guinea (orthographic projection).svg
|capital = Konaki̱ri
|area = 245,857
|population = 12,414,293
|year = 2018
}}
'''A̱bwom a̱byin''': "Liberté" ("Sa̱t") [[File:National Anthem of Guinea by US Navy Band.ogg]]
A̱byin '''Gini''', á̱ lyen di̱ yorong ofisha hu nang '''Ri̱pobi̱lik Gini''' (Fi̱ransa: ''République de Guinée''; Pular: 𞤈𞤫𞤲𞤣𞤢𞥄𞤲𞤣𞤭 𞤘𞤭𞤲𞤫; N'Ko: ߖߌ߬ߣߍ߫, Shong: ''Republic of Guinea''), yet a̱byin kya ka̱ shyia̱ di̱ khwong kyai a̱sa̱khwot di̱ fam a̱byin [[Jenshyung Afrika]] a̱ni. Á̱ ku ngyei [[Gini Fi̱ransa]] (Fi̱ransa: ''Guinée française''; Shong: ''French Guinea'') gbangbang, mi̱ di̱n jen jhyang á̱ yei a̱byin mam a̱fwun ka '''Gini-Konaki̱ri,''' a̱lyoot [[A̱gba̱ndang a̱keangtung|a̱keangtung]] nka ka ma̱ng a̱gba̱ndang a̱keang a̱ swak di̱ shi a̱ni, [[Konaki̱ri]], á̱ ghai nkaa ma̱ng bibyin ghyáng ku byia̱ "Gini" a̱ni da̱ a̱lyoot nhu ka ma̱ng [[Gini (fam a̱byin)|fam a̱byin a̱lyoot a̱meang]] hu, nang [[Gini-Bisa̱u|Gini Bisa̱u]] ma̱ng [[Gini A̱kwa̱toriya]].<ref name="uiowa1">"[http://www.uiowa.edu/~africart/toc/countries/Guinea-Conakry.html Archived copy]".</ref><ref>"[http://www.musicvideos.the-real-africa.com/guinea Music Videos of Guinea Conakry]". </ref><ref>"[http://netministries.org/see/churches/ch00472 The Anglican Diocese of Ghana]". ''Netministries.org''.</ref><ref>"[https://web.archive.org/web/20110511084226/http://www.cfi.fr/partenaires_en.php3?id_rubrique=24&id_article=473 Archived copy]".</ref> Gini nshyia̱ ma̱ng shi á̱niet miliyon 12.4 ma̱ng shi a̱byin kilomita a̱ma̱ntanaai 245,857 (met a̱ma̱ntanaai 94,926).<ref name="guinea_stats">"[http://www.nationsonline.org/oneworld/guinea.htm Nations Online: Guinea – Republic of Guinea – West Africa]". ''Nations Online''.</ref>
==Ya̱fang==
{{Bibyin Afrika}}
[[Sa:Bibyin_swanta]]
[[Sa:Bibyin_Afrika]]
[[Sa:Bibyin_Jenshyung_Afrika]]
ekrgtleazaumc2h3f1xmry36vumwuq8
Gini-Bisa̱u
0
438
14270
13741
2022-06-13T10:13:56Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
{{Country
|name = Ri̱pobi̱lik Gini-Bisa̱u<br>República da Guiné-Bissau (Potugit)<br>𞤘𞤭𞤲𞤫 𞤄𞤭𞤧𞤢𞥄𞤱𞤮, ''Gine-Bisaawo'' (Fa̱taa)<br> ߖߌߣߍ ߺ ߓߌߛߊߥߏ߫, ''Gine-Bisawo'' (Mandinka)
|flag = Flag of Guinea-Bissau.svg
|coa = Coat of arms of Guinea-Bissau.svg
|image = Location Guinea Bissau AU Africa.svg
|capital = Bisa̱u
|area = 36,125
|population = 1,726,000
|year = 2018
}}
'''A̱bwom a̱byin''': "Esta É a Nossa Pátria Bem Amada" ("A̱byin-mbyin Nzi̱t Kya Ka Nang Zi̱ Cat A̱ni") <br>[[File:Esta é a Nossa Pátria Bem Amada (instrumental).ogg]]
A̱byin '''Gini-Bisa̱u''' (Potugit: Guiné-Bissau, Fa̱taa: 𞤘𞤭𞤲𞤫 𞤄𞤭𞤧𞤢𞥄𞤱𞤮 ''Gine-Bisaawo'', Mandinka: ߖߌߣߍ ߺ ߓߌߛߊߥߏ߫ ''Gine-Bisawo'', Shong: Guinea-Bissau /ˌɡɪni bɪˈsaʊ/), á̱ lyen ma̱ng a̱lyoot a̱gwomna̱ti nka nang '''Ri̱pobi̱lik Gini-Bisa̱u''' wu (Portugit: República da Guiné-Bissau [ʁɛˈpuβlikɐ ðɐ ɣiˈnɛ βiˈsaw], Shong: Republic of Guinea-Bissau), yet a̱byin kya di̱ fam a̱byin [[Afrika Jenshyung]] ka̱ kup shi kyai a̱byin kilomita a̱ma̱ntaa̱naai 36,125 (met a̱ma̱ntaa̱naai 13,948) ma̱ng shi á̱niet nang á̱ ku tyan sak miliyon 1,874,303 a̱ni. Ka̱ byia̱ a̱gi̱gak ma̱ng bibyin Senegal di̱ fam a̱za ma̱ng [[Gini]] di̱ fam a̱tak-a̱tyin hu. A̱byin Gini-Bisa̱u ku yet kap a̱byintyok Kaabu hu, a mbeang A̱byintyok-shan Mali hu. Nkap tyok huni ku ngyong ba̱ng si̱ tat sa̱ncuri 18 ji, a̱wot A̱byintyok-shan Potugat hu si̱ nyia̱ tyok tazwa nkap á̱ghyang neet sa̱ncuri 16 ji. Mi̱ di̱ sa̱ncuri 19 ji, ka̱ bwuak ka̱ si̱ yet a̱byin tyok á̱nietcen nang á̱ ku ngyei Gini Potuga a̱ni. Ma̱nang a̱byin ka ku tak a̱pyia̱ nka a̱sa̱t a̱ni ma̱ a̱lyia̱ 1973 a̱wot á̱ si̱ shim nka a̱nia ma̱ a̱lyia̱ 1974, huhwa á̱ si̱ mbeang a̱lyoot a̱keangtung nka ka, Bisa̱u, mami a̱lyoot nka ka á̱ shot tyei tai ma̱ng [[Gini]] (nang á̱ ku ngyei [[Gini Fi̱ransa]] a̱ni).
==Ya̱fang==
<references/>
{{Bibyin Afrika}}
[[Sa:Bibyin_swanta]]
[[Sa:Bibyin_Afrika]]
[[Sa:Bibyin_Jenshyung_Afrika]]
dnwn8hq0tkopccvh43tez8wm60iphr9
Gini A̱kwa̱toriya
0
439
14271
13747
2022-06-13T10:14:01Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
{{Country
|name = Ri̱pobi̱lik Gini A̱kwa̱toriya<br>República de Guinea Ecuatorial (Si̱pen)<br>République de Guinée équatoriale (Fi̱ransa)<br>República da Guiné Equatorial (Potugit)
|flag = Flag of Equatorial Guinea.svg
|coa = Coat of arms of Equatorial Guinea.svg
|image = GNQ orthographic.svg
|capital = Malabo
|area = 28,050
|population = 1,468,777
|year = 2021
}}
'''A̱bwom a̱byin''': "Caminemos pisando las sendas de nuestra inmensa felicidad" (''Yok Zi̱ Shai Di̱n Vak A̱za̱za̱rak A̱gwai Nzi̱t Hu'')<br />[[File:Equatorial Guinea's national anthem, performed by the United States Navy Band.oga]]</center>
A̱byin '''Gini A̱kwa̱toriya''' (Si̱pen: Guinea Ecuatorial /giˈnea ekwatoˈɾjal/, Fi̱ransa: Guinée équatoriale /Guiné Equatorial/, Potugit: Guiné Equatorial, [[Shong (a̱lyem)|Shong]]: Equatorial Guinea), á̱ lyen ma̱ng a̱lyoot a̱gwomna̱ti nka nang '''Ri̱pobi̱lik Gini A̱kwa̱toriya''' wu (Si̱pen: República de Guinea Ecuatorial, Fi̱ransa: République de Guinée équatoriale, Potugit: República da Guiné Equatorial, Shong: Republic of Equatorial Guinea), yet a̱byin kya di̱ khwong jenshyung fam a̱byin A̱ka̱wa̱tyia̱ Afrika, ma̱ng shi kyai a̱byin ku kilomita a̱ma̱ntanaai 28,000 (met a̱ma̱ntanaai 11,000). Á̱ ku ngyei a̱byin tyok á̱nietcen Gini Si̱pen gbangbang, ma̱nang a̱byin [[Si̱pen]] kya ku nyia̱ tyok tazwa nka a̱ni. Á̱ ku bwuo a̱lyoot a̱zanson shyiat sa̱t nka ka neet swáng a̱lyiat ji A̱kwa̱to ma̱ng [[A̱ngam A̱sa̱khwot Gini]] ja ma̱nang a̱byin ka shyia̱ kpa̱mkpaan mba a̱feang a̱ni. Ma̱ a̱lyia̱ 2015, a̱byin ka ku byia̱ shi á̱niet 1,225,367.
==Ya̱fang==
<references/>
{{Bibyin Afrika}}
[[Sa:Bibyin_swanta]]
[[Sa:Bibyin_Afrika]]
[[Sa:Bibyin_A̱ka̱wa̱tyia̱_Afrika]]
38uqwoh3gmwtz9zks07he5rnud71xkj
Gini Fi̱ransa
0
440
14272
13869
2022-06-13T10:14:06Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
{{Country
|name = Gini Fi̱ransa<br>Guinée française
|flag = Flag of France (1794–1815, 1830–1958).svg
|coa =
|image = LocationGuinea.svg
|caption =
|capital = Konaki̱ri
|area = 245,857
|population =
|year =
}}
A̱byin '''Gini Fi̱ransa''' (Fi̱ransa: Guinée française; Shong: French Guinea) ku yet a̱byin tyok-á̱nietcen Fi̱ransa kya di̱ fam [[Jenshyung Afrika]]. A̱gi̱gak nka ba, shimba ba̱ ku shai di̱ sweap njen, ku yet ma̱ a̱lyia̱ 1958 á̱si̱ a̱sa̱t a̱byin [[Gini]] a̱fwun bya.
==Ya̱fang==
[[Sa:Bibyin_swanta]]
[[Sa:Bibyin_Afrika]]
[[Sa:Bibyin_Jenshyung_Afrika]]
[[Sa:Jenshyung_Afrika_Fi̱ransa]]
rhvi905egs9t70sjvnkhnn1lcojjjtd
Gi̱gi̱k (kan)
0
441
12294
4771
2022-05-21T04:44:44Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
Di̱ fam kan, ka̱nang á̱ wa̱i zwan jhyang nang '''gi̱gi̱k''' a̱ni, si̱ a̱hwa fa ma̱ a̱ca̱caat ji̱ yet si̱ ji ji̱ nwai labeang ja a̱ni a̱wot, nang jang a̱lyiat si̱ a̱hwa, si̱ ji ji̱ ba̱ ntsa mi̱ mmam nani.
==Ya̱fang==
kasi2fly1qqfjntuh9c2g8z8lzug4cy
Google
0
442
12295
4787
2022-05-21T04:44:54Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
'''Google LLC''' yet sot-nta̱m lyennkyangta̱m Amerika jhyang ja ji̱ shyia̱ bibyin ma̱ a̱di̱di̱t a̱ni ji̱ khap a̱pyia̱ nji sak di̱ fam khwo ma̱ng a̱yaaprodok nkyang na̱ byia̱ a̱meang ma̱ng a̱cyetaneang, nang lyennkyangta̱m shei-kaswuo a̱zalang, fwuontswam zop ghyang, fang fi̱fang á̱ni̱nian, kyanglilyiit, ma̱ng kyangkpa̱u. Á̱ fa nji ji̱ yet jhyiung di̱ a̱ca̱cet susot-nta̱m lyennkyangta̱m ji a mbeang Amazon, Facebook, ma̱ng Apple.<ref>Rivas, Teresa "[http://www.barrons.com/articles/ranking-the-big-four-internet-stocks-google-is-no-1-apple-comes-in-last-1503412102 Ranking The Big Four Tech Stocks: Google Is No. 1, Apple Comes In Last]" (di̱n Shong). www.barrons.com.</ref><ref>Ritholtz, Barry (Zwat Swak 31, 2017). "[https://www.bloomberg.com/opinion/articles/2017-10-31/the-big-four-of-technology The Big Four of Technology]". Bloomberg L.P.</ref><ref>"[https://whatis.techtarget.com/definition/GAFA What is GAFA (the big four)? - Definition from WhatIs.com]". (di̱n Shong) WhatIs.com.</ref><ref>[https://www.google.com/intl/en/about/company/ Company – Google ] January 16, 2015</ref><ref>[https://www.informationweek.com/applications/google-founded-by-sergey-brin-larry-page-and-hubert-chang!/d/d-id/1072309 Google Founded By Sergey Brin, Larry Page... And Hubert Chang?!?] InformationWeek ,UBM plc, September 24, 2008 .</ref><ref>[https://www.google.com/about/jobs/locations/ Locations— Google Jobs] September 27, 2013</ref><ref>[https://www.cnbc.com/2019/12/03/larry-page-steps-down-as-ceo-of-alphabet.html Larry Page steps down as CEO of Alphabet, Sundar Pichai to take over] CNBC, 3 December 2019</ref><ref>[https://www.androidpolice.com/2021/01/04/google-employees-are-forming-a-union/ Google employees are forming a union] January 4, 2021</ref>
[[Fail:Google 2015 logo.svg|thumb|A̱lama a̱bwuang Google neet 2015]]
[[Fail:Googleplex HQ (cropped).jpg|thumb|Tyantung Google, Googleplex ji]]
==Ya̱fang==
<references/>
khr8tl4h0a6ougk7zdbklumjuftj0wv
Gumaat
0
443
14273
13361
2022-06-13T10:14:11Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
[[Fail:Bolsas-de-asa-plana-interior-bolsapubli.jpg|thumb|Gumáat pepa ma̱ng mbwak]]
'''Gumaat''' ji (á̱kpa: '''gumaát''' ''ji''; á̱ ka ngyei '''a̱burga''' a̱ni) yet ta̱ngka̱i [[a̱mpwot]] ku yet kyangta̱m a̱ni di̱n kwok nkyang mami. Á̱ mbyia̱ [[gumaat naat a̱cyet]], gumaat kurum, ba̱ng si̱ nat.
==Ya̱fang==
<references/>
[[Sa:Gumaat|Gumaat]]
[[Sa:A̱mpwot]]
ke1xnfa7aaguyiaa839vlvu99jel2z2
Gumaat naat a̱cyet
0
444
14274
13362
2022-06-13T10:14:16Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
'''Gumaat naat a̱cyet''' (á̱ ka ngyei '''a̱burga naat a̱cyet''' a̱ni) yet tangka̱i [[gumaat]] hwa nang á̱ tyei nkyang á̱ nat a̱cyet a̱ni.
==Ya̱fang==
<references/>
[[Sa:Gumaat]]
[[Sa:A̱mpwot]]
[[en:Bag]]
73tgfulpok46mxk3wnft65y0lkhidl8
Gwoot (a̱keang)
0
445
14971
14588
2022-07-16T21:09:32Z
Kambai Akau
15
/* Ya̱fang */
wikitext
text/x-wiki
'''Gwoot''' (Gwoot: '''Gworok''' ku ''Gworog''; [[Kpat (a̱lyem)|Kpat]]: Kagoro) yet a̱keang kya ka̱ byia̱ shi ba̱t di̱ fam [[A̱tak Ka̱duna|a̱tak]] [[Si̱tet Ka̱duna]], di̱ fam-a̱byin Fam A̱ka̱wa̱tyia̱ [[Naijeriya]] hu. Ka̱ shyia̱ di̱ [[Susot a̱gwomna̱ti mali Naijeriya|Sot A̱gwomna̱ti Mali]] [[Watyap]] ja. [[Khwikristi|Á̱nietkhwikristi]] bya nhyat a̱keang Gwoot ka. Ka̱ si̱ ka yet mali á̱nietshei [[A̱sham Nkhang]] Yesu ma̱ a̱di̱di̱t, ba̱ ku bai mat a̱shyim lili wun ma̱ng shi a̱za a̱byin ka.<ref>[https://www.nigeriagalleria.com/Nigeria/States_Nigeria/Kaduna/Kagoro-Hills-Kaduna.html Kagoro Hills of Kaduna State] (di̱n Shong).</ref> Gwoot byia̱ ofit nta̱m wusika a̱nyiung.<ref>[https://web.archive.org/web/20121126042849/http://www.nipost.gov.ng/postcode.aspx Post Offices- with map of LGA] (di̱n Shong). NIPOST.</ref>
==A̱ca̱cet á̱niet==
* Lois Auta, a̱tyufuutnyia̱, a̱tyu a̱ kpaat a̱ si̱ yet A̱gba̱ndang A̱kwak A̱son Cedar Seed Foundation a̱ni
* Gwamna Awan (MBE, OON): A̱nyiung mi̱ á̱gwam Afrika ba ku labeang di̱ nyia̱ tyok a̱ni (ndyia̱ 63 di̱ cuk tyok ji, 1945 - 2008).<ref>[https://allafrica.com/stories/2008/0020334 Nigeria: Gwamna Awan, Chief of Kagoro, Dies At 93]. All Africa (Zwat Swak 2, 2008). Leadership.</ref>
* Chris Delvan Gwamna Ajiyat: A̱tyushei a̱sham nkhang Yesu ma̱ng a̱tyubwom, a̱ swan [[Ka̱duna]], Naijeriya.
* Danjuma Laah: Sa̱neto a̱ yong da̱ a̱kwonu Distrik Sa̱net Ka̱duna A̱tak (2015 - a̱fwun).
* Nenadi Esther Usman, Minista A̱ka̱kurum Naijeriya (2006 - 2007); Sa̱neto a̱ yong da̱ a̱kwonu Di̱strik Sa̱net Ka̱duna A̱tak (2011 - 2015)
==Ya̱fang==
<references/>
==A̱ka̱fwuop nta==
{{Commons category-inline}}
[[Category:Gwoot (a̱keang)|Gwoot]]
[[Category:Naijeriya]]
[[Category:Si̱tet Ka̱duna]]
[[Category:A̱tak Ka̱duna]]
tdbr71yns9fm6pszg025bvubej3fghi
Gyek
0
446
4827
4826
2022-05-16T12:48:19Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[Ghyek]]
1h9ysn1e06u1p82kmoy201ultge6tw3
Harrison Bunggwon
0
447
15407
15404
2022-07-27T20:31:10Z
Kambai Akau
15
wikitext
text/x-wiki
{{Databox}}
'''Harrison Isuu Bunggwon''' ku '''Harrison Yusuf Bungwon''' (25 Zwat Swak ma̱ng Jhyiung 1949 – 6 Zwat Nyaai 2016) ku yet a̱tyuba̱ngtyok [[A̱byintyok A̱tyap]] wa, di̱ fam [[A̱tak Ka̱duna|a̱tak]] [[Si̱tet Ka̱duna]], ma̱ a̱byin [[Naijeriya]]. Á̱ ku lyen nggu ma̱ng a̱lyoot ntyok ka, ''A̱gwatyap II''.<ref name=B1>Atuk, Lucas (1 Zwat Tsat 2008)."A Brief Biography of HRM Dr. Harrison Yusuf Bungwon (Agwatyap II)" (di̱n Shong). Atyap in Diaspora Magazine. (1)(1).</ref><ref>Tauna, Amos (10 Zwat Nyaai 2016). "[https://web.archive.org/web/20210731112855/https://newnigeriannewspaper.com/2016/04/10/agwatyaps-demise-a-great-shock-reps-katung/ Agwatyap's demise a great shock - Reps Katung]".</ref>
==Shyicet a̱son ma̱ng tat-a̱pyia̱==
Á̱ ku byin Bunggwon Ma A̱tyoli Bunggwon Yawa ma̱ng A̱yang-a̱li A̱to Bunggwon kya ma̱ a̱tuk mam 25 Zwat Swak ma̱ng Jhyiung 1949 mi̱ Bafoi, Fam Ka̱nai, A̱tyap ka, [[Fam A̱za, Naijeriya|Fam A̱za]], Naijeriya Bi̱ri̱ti̱n (di̱ fam [[A̱tak Ka̱duna|a̱tak]] [[Si̱tet Ka̱duna]] a̱fwun hu, mi̱ [[Naijeriya]]). A̱tyia̱ nggu wu ku saan ma̱ a̱lyia̱ 1953, nang gu ku yet ndyia̱ a̱naai nia ma̱nyin.<ref name=B1 />
A̱cyet tat-a̱pyia̱ nggu ka ku si̱ ntsa Zwat Jhyiung 1957, nang gu ntat ndyia̱ a̱natat a̱ni, mi̱ ''Native Authority Junior Primary School'', Bafoi-Ka̠nai. Lilyim nang gu nshyiat ngya mak nwuai nggu hu ma̱ a̱lyia̱ 1961, a̱ si̱ nwuo ''Native Authority Senior Primary School'', Ka̱ciya. Ma̱ a̱lyia̱ 1963, Bunggwon shyia̱ nwuai ''Government Technical School'', Soba, [[Zariya]], a̱vwuo ka nang gu hyat ndyia̱ a̱feang ma̱ng á̱kum a̱ si̱ ba̱ shyia̱ nwuai ''Government Technical College'', [[Ka̱na̱u]] nang ma̱ a̱di̱di̱t lyen, ma̱ a̱lyia̱ 1965. Ma a̱nia wa, a̱ si̱ laai byia̱ di̱dang cat fang Bwok-ntswam Ma̱kanik ma̱nang gu ni̱ nshyia̱ Government Technical College, Ka̱na̱u a̱ni, zang ja si̱ fuut ngguu cat ma̱ng shyiat za̱nang a̱wat fang mbwak ''Bureau for External Aid Scholarship'' mi̱ [[Muná̱pyia̱ A̱yaari̱pobi̱lik Soshyalis Sovyet hu|MA̱SS hu]] ma̱ a̱lyia̱ 1969 nang gu tyak fang ban feang a̱lifang ka, tutu fwuon.<ref name=B1 />
Tsi̱tsak 1971 – 1975, a̱ fang [[Bwok-ntswam Ma̱kanik]] a̱ si̱ san ''bachelor's degree'' ([[B.Tech.]]) ma̱ng ''master's degree'' ([[M.Tech.]]) mi̱ [[Yunivasti Lyennkyangta̱m A̱byin Belarusiya|Yunivasti Lyennkyangta̱m Byelorusiya]], [[Mi̱nsi̱k]], a̱vwuo ka nang gu ku tyak fang hu ma̱ng tyei zan. Ma̱ a̱lyia̱ 1977, a̱ si̱ ya a̱son a̱ ma̱ng ''doctorate ([[Ph.D.]]) programme'' nggu da̱ [[A̱vwuomyiam Sains ma̱ng Lyennkyangta̱m Yunivasti Mancesta]], [[Muna̱pyia̱ Tyok]] a̱ si̱ tyak fang hu ma̱ a̱lyia̱ 1980.<ref name=B1 />
==Ta̱m==
Bunggwon ku yet a̱tyentyang a̱tyubyia̱lyen wa, a̱bwok-ntswam nang á̱ nkhapsak a̱ni, a̱myimzang a̱tyutyiet, a̱tyulyen a̱lyiat ma̱ng a̱tuba Nigeria Society of Engineers nang á̱ fa̱k da̱ nggu a̱ni, a̱nyan wa byia̱ si̱ hu ku lan ndyia̱ 16 mi̱ lyenkyang, ma̱ng tyiet ma̱ng a̱nyiung mami a̱yaapoliteknik Afrika ba̱ lan byia̱ shi a̱ni, [[Politeknik Ka̱duna]].
Tsi̱tsak 1986 – 2002, Bunggwon khwo nang:
* Dairekto, Research and Development Centre;
* A̱tyugba di̱ nkyang Sains, [[Defence Industries Corporation of Nigeria]];
* Kimishyona mat Nta̱m ma̱ng A̱ka̱cyet, [[A̱si̱tet Ka̱duna]];
* Maneja di̱ Nta̱m ma̱ng Military Embroidary Factory nang á̱ ku fwung a̱ni, mi̱ [[A̱buja]];
* Memba, Komiti A̱yaagwak A̱gwomna̱ti Mundundung tazwa Nigeria Machine Tools Ltd., [[Oshogbo]], [[A̱si̱tet|A̱si̱tet Oshun]];
* Memba nang á̱ ku Khai a̱ni, Constituent Assembly;
* A̱tyumai Nta mi̱ Bwok-ntswam Ma̱kanik, [[Politeknik A̱byin Pi̱lato|Pi̱lato]], Ka̱tsina, [[Politeknik A̱si̱tet Kogi|Ida (A̱si̱tet Kogi)]], ma̱ng [[Politeknik A̱si̱tet Kwara]].
* Mami sot nggu ji, á̱ si̱ bai khwo nang ''A̱kpangcuk'' a̱son wu, a̱si̱ ''Bot A̱yaagwomna, Zangon Kataf Community Technical and Vocational School''.
Mi̱ Zwat a̱kubunyiung 2002, Dr. H. Y. Bunggwon si̱ byiak a̱ kai khwo bwok-ntswam hu a̱ ghwon, lilyim ndyia̱ ma̱ a̱di̱di̱t á̱si̱ a̱tsatsak khwo a̱byin byin nggu ka a̱zata̱n a̱gwomna̱ti a̱byin nggu ka.<ref name=B1 />
==Za̱náng ma̱ng swat memba==
===Za̱náng===
Mat tyaat á̱kyenkyai nta̱m nggu na, Dr. H. Y. Bunggwon si̱ san ncyin ma̱ng za̱náng ma̱ a̱di̱di̱t nang:
* A̱shong Diploma Khapsak a̱si̱ Roshiya (1975)
* Nigeria Society of Engineers’ Merit Award (2002)
* A̱lyoot Tyok, Ya̱rima A̱tyap (2003).<ref name=B1 />
===Swat memba===
Nang a̱bwok-ntswam a̱ ku san tyiet mi̱ Mancesta a̱ni, Bunggwon ku yet associate memba ''Institute of Industrial Managers'', [[Tyok Muná̱pyia̱]]; memba [[American Institute of Industrial Engineers]] ma̱ng a̱bwok-ntswam a̱nyan wa ku nyia̱ ri̱jista ma̱ng ''Council for the Regulation of Engineering of Nigeria'' (COREN).<ref name=B1 />
==Ba̱ng tyok==
Di̱n jen saan a̱shai nggu ka, [[Ba̱la A̱de Da̱ukee|A̱tyushi A̱gwam B. A̱. Da̱ukee ''(A̱gwatyap I)'']] mi̱ 2005, Bunggwon si̱ ta̱bat tyok nang ''A̱gwatyap II'' a̱ghwon a̱ si̱ bai yet A̱gwam byina̱byin a̱feang [[A̱tyap]] ba. A̱ ku ba̱ng shi hu da̱ a̱beam zwát 11 nggu ma si̱ bai saan ma̱ a̱tsotson a̱tson 6 Zwat nyaai 2016.<ref name=B1 /> A̱ ku yet a̱gwam a̱tutu-á̱son wa a̱nyan wa á̱ si̱ bai kyiak kwí nggu hu nang a̱gba̱ndang nwai<ref>Joseph, Midat (11 Zwat Nyaai 2016). [https://allafrica.com/stories/201604110039.html Nigeria: Demise of Kaduna's First Class Chief, Harrison, Great Loss - Hon Katung] (di̱n Shong). All Africa. Leadership.</ref> ma̱ng kyang tyei a̱wun.<ref>Latest Nigerian News (11 Zwat Nyaai 2016). [https://www.latestnigeriannews.com/news/2825314/in-kaduna-sen-laah-rep-katung-mourn-agwatyap.html In Kaduna: Sen La'ah, Rep Katung Mourn Agwatyap]. Pulse.</ref>
==Zwakhwu==
Di̱n jen khwo nggu ji nang a̱khwo á̱niet a̱ni, Bunggwon ma̱ng fwuo nggu hu nyiung nyia̱ ta̱m di̱ mbeang shyia̱ ya a̱son myiam bwok-ntswam hu mi̱ Naijeriya ma̱ng bibyin nta. Ku a̱zafwun ka, a̱za̱za̱rak zwakhwu nggu wu ni̱ byia̱ a̱gba̱ndang impak di̱ nta̱m bwok-ntswam [[Si̱tet Ka̱duna]] da̱ a̱ka̱nyiung.
Nang a̱tyia̱ wu a̱ lyen a̱vwuo a̱ni, A̱tyushi A̱gwam Dr. H. Y. Bunggwon lyen fa khwo á̱niet. Nang a̱tsak [[Khwikristi|Krista]] a̱ni, a̱ ku sak á̱lyiat A̱tyoli [[Yesu|Yesu Kristi]] na, zang nia nyia̱: "...Da̱ a̱kwonu a̱kya, konyan wa cat a̱ yet a̱gba̱ndang ma̱ nyin a̱ni, ku yet ta hwa gu yet a̱khwo nyin." (ji̱ fa 'a̱khwo'.) – Ma̱rkut 10:43 (TYAPNT jhy.). Si̱ huni tyia̱. A̱ ku myiam khwo á̱niet a̱mgba̱m shyicet nggu hu. A̱tyushi ni̱ ku nshyia̱ a̱sai fwuo di̱n vak kwak á̱ghyang á̱niet swa̱i bai.
A̱ ku nyia̱ a̱ca̱cet nkyang ma̱ a̱di̱di̱t a̱wot si̱ shim cyok bai di̱ yet''A̱gwatyap'', '''A̱tyap Traditional Council''', A̱tak Njei, [[Zangon Katab|Nietcen A̱fakan]].
Nang A̱tyia̱ A̱tyap a̱feang wu a̱ni, A̱gwam Dr. H. Y. Bunggwon ku byia̱ a̱gba̱ndang ta̱m di̱ nyian nkyangcat [[A̱tyap]] ba a̱ni ma̱ng si̱ á̱kpa̱ndang swat mba ba. Mi̱ á̱lyiat nggu na: “N shyia̱ ma̱ng a̱gwai ma̱nang fi̱k nta̱m nung ji a̱ni di̱ fam a̱gwomna̱ti hu, a̱ghwon nang Diin malifang, di̱n jen jhyang a̱ni, n si̱ shyia̱ a̱wat lyiat ndung ma̱ng a̱yaakwak a̱son ma̱ a̱di̱di̱t.” A̱wot a̱ ku nwuan a̱ma̱bwoi. Mami a̱ma̱bwoi nggu na, a̱ mkpaat a̱za̱za̱rak kidee, da̱zi̱ya mat ntyok njhyang bah, a̱wot mat a̱yaakwak a̱son ma̱ a̱byin ka.<ref name=B1 />
Mi̱ kwi Bunggwon hu, a̱tyu kuriya a̱ yong a̱ghyi famkhai mundundung Zangon Kataf/Jaba a̱ni, [[Sunday Marshall Ka̱tung|Barr. Sunday Marshall Ka̱tung]] wa̱i ngguu nang a̱tyutyei swat nyinyang, a̱nyan wa mi̱ á̱lyiat nggu na si̱ mbeang...: "A̱ ku neap shyicet nggu hu mat ya a̱son á̱niet nggu ba di̱ nfam khap, tat-a̱pyia̱, ma̱ng ya a̱son socioeconomic [[A̱tyap]] ba ma̱ng Si̱tet Ka̱duna ji da̱ a̱ka̱nyiung."<ref name=B3>Africa Prime News (9 Zwat Nyaai 2016). [https://www.africaprimenews.com/2016/04/09/news/nigerian-lawmaker-describes-late-agwatyap-peace-maker/ Nigerian Lawmaker Describes Late Agwatyap as Peace Maker] (di̱n Shong).</ref>
==Ya̱fang==
<references/>
==A̱ka̱fwuop nta==
[[Sa:Á̱gwam Naijeriya]]
[[Sa:Á̱gwam A̱byintyok A̱tyap]]
[[Sa:Á̱gwam Afrika]]
[[Sa:Á̱nietkwai-nfwuo-á̱niet sa̱ncuri 20 mi̱ Naijeriya]]
[[Sa:kwi_2016]]
[[Sa:byin_1949]]
[[Sa:Á̱niet Si̱tet Ka̱duna]]
[[Sa:A̱tyap]]
72wl8pcui73hyfb1s1760kpaabqzvbx
Haruma Miura
0
448
14277
13364
2022-06-13T10:14:31Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
{| class="wikitable" align=right border width="200"
| colspan="2" align=center| '''Haruma Miura'''<br>'''三浦 春馬'''
|-
| colspan="2" align=center|[[Fail:20190829_三浦春馬在台灣與粉絲見面.jpg|250px]]
|-
|}
'''Haruma Miura''' (Ja̱pan: 三浦春馬, byin a̱tuk mam 5 Zwat 4 1990<ref name="oricon profile">[https://www.oricon.co.jp/prof/394936/profile/ 三浦春馬のプロフィール ] (da̱ a̱lyem Ja̱pan)</ref>– 18 Zwat 7 2020<ref>[https://web.archive.org/web/20200718162244/https://yomidr.yomiuri.co.jp/article/20200718-OYTEW566104/ 俳優の三浦春馬さん死亡…自宅で自殺か、「本当に残念」] (da̱ a̱lyem Ja̱pan)</ref> ) yet a̱tyu nkhang Telvishon [[Ja̱pan]] wa.
==Ya̱fang==
<references/>
==A̱ka̱fwuop nta==
*[https://www.amuse.co.jp/artist/A0105/ Official Website]
*[https://www.imdb.com/name/nm2067218/ IMDb]
*[https://www.discogs.com/artist/5966006-Haruma-Miura Discogs]
[[Sa:Ja̱pan]]
[[Sa:byin 1990]]
g2uu75s7einy1ctqkq1p03iqxx36xg2
Helat
0
449
15592
15591
2022-08-08T21:22:12Z
Kambai Akau
15
wikitext
text/x-wiki
{{Databox}}
A̱byin '''Helat''' ku '''Grit''' (Helen: Ελλάδα, ''Elláda'' /eˈlaða/; Shong: Greece), á̱ lyen ma̱ng a̱lyoot a̱gwomna̱ti nka nang '''Ri̱pobi̱lik Helen''' wu, (Helen: Ελληνική Δημοκρατία , ''Elliniki Dimokratia'' /eliniˈci ðimokraˈti.a/; Shong: Hellenic Republic), yet a̱byin kya ka̱ shyia̱ di̱ fam-a̱byin A̱tak-a̱tyin Yurop a̱ni. Shi á̱niet nka hu ku shyia̱ kpa̱mkpaan ma̱ng miliyon 10.7 ma̱ a̱lyia̱ 2018; A̱keang Atina kya yet a̱gba̱ndang a̱keang nka ka̱ swak ma̱ng shi ka̱ si̱ ka ngyet a̱keangtung nka ka, Ta̱soloniki si̱ ntung. Ma̱nang ka̱ swan da̱ a̱nu fam a̱tak A̱yaaba̱li̱kan ka a̱ni, a̱byin Helat si̱ shyia̱ a̱pyia̱ nka nang ka̱ swan a̱yaaga̱sat nvak [[Yurop]], [[A̱siya]], ma̱ng [[Afrika]]. Ka̱ byia̱ a̱gi̱gak a̱byin ma̱ng [[A̱li̱beniya]] di̱ fam a̱za-jenshyung hu, Ma̱kidoniya A̱za ma̱ng Buli̱geriya di̱ fam a̱za hu, [[Turkiya]] di̱ fam a̱za-a̱tyin hu. Kyai A̱sa̱khwot A̱gea hu myian di̱ fam a̱tyin a̱tsak a̱byin hu, Kyai A̱sa̱khwot Yon hu di̱ fam jenshyung hu, Kyai A̱sa̱khwot Ka̱rita hu ma̱ng [[Kyai A̱sa̱khwot Meditaroniya]] hu di̱ fam a̱tak hu. A̱byin Helat kya byia̱ lang khwong kyai a̱sa̱khwot ku swak di̱ yet a̱junjung di̱ Kham Meditaroniya ji a̱mgba̱m, ka̱ si̱ yet 11 mi̱ swanta hu ma̱ng shi a̱swap lang khwong kyai a̱sa̱khwot ku yet kilomita 13,676 (met 8,498) a̱ni, ma̱ng bibyin a̱ka̱wa̱tyia̱ a̱sa̱khwot ma̱ a̱di̱di̱t, nang 227 nshyia̱ ma̱ng á̱nietbishyi a̱ni. A̱yaakpa nswak a̱ni̱nai mami a̱yaakpa cyi a̱byin Helat yet a̱ka̱fan bya, a̱wot A̱fan Oli̱mput kya ma̱ng gbang a̱ta̱n ku neap tat mita 2,918 (a̱ti̱tak 9,573) kya si̱ swak ma̱ng shi a̱za hu. A̱byin ka byia̱ nfam a̱byin taada a̱kubunyiung nani: Ma̱kidoniya, A̱ka̱wa̱tyia̱ Helat, Pa̱loponit hu, Ta̱sa̱li, A̱piro, Bibyin A̱ka̱wa̱tyia̱ A̱sa̱khwot A̱gea hu (mbeang Dodekanisa hu ma̱ng Kiki̱ladit), Ta̱ra̱ki, Ka̱rita, ma̱ng Bibyin A̱ka̱wa̱tyia̱ A̱sa̱khwot Yon hu.
[[Fail:Flag of Greece.svg|thumb|Tyiang a̱toot shi a̱byin Helat]]
[[Fail:Coat of arms of Greece.svg|thumb|A̱lama a̱byin Helat]]
[[Fail:EU-Greece (orthographic projection).svg|thumb|Ta̱si̱la a̱byin Helat]]
==Ya̱fang==
<references/>
{{Template:Bibyin Yurop}}
[[Sa:Bibyin_swanta]]
[[Sa:Bibyin_Yurop]]
6fdqxecz8s0c9jvspofpay75zogocem
Hong Kong
0
450
14279
13366
2022-06-13T10:15:02Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
{| class="wikitable" align=right border width="200"
| colspan="2" align=center|'''Hong Kong''' <br>香港
|-
| colspan="2" align=center|[[Fail:Hong Kong in China (zoomed) (+all claims hatched).svg|300px|center]]<sub>A̱vwuo ka nang Hong Kong nshyia̱ a̱ni mami Caina</sub>
|-
| [[Fail:Flag of Hong Kong.svg|thumb|Tuta fam a̱byin Hong Kong]]
|-
| [[Fail:Regional Emblem of Hong Kong.svg|thumb|A̱lama fam a̱byin Hong Kong]]
|-
|}
A̱byin '''Hong Kong''' (Caina: 香港, Kanton: /hœ́ːŋ.kɔ̌ːŋ/, Shong: /ˈhɒŋkɒŋ/), á̱ lyen di̱ yorong ofisha hu nang '''Fam A̱byin Kwak A̱son Hong Kong á̱ ku Khap á̱ Sak si̱ Ri̱pobi̱lik Á̱niet Caina''' ('''FA̱KA̱HKKS''') (a̱di̱dat Caina: 中华人民共和国香港特别行政区; Caina taada: 中華人民共和國香港特別行政區; Shong: Hong Kong Special Administrative Region of the People's Republic of China (HKSAR)), yet a̱gba̱ndang a̱keang wa ma̱ng fam a̱byin kwak a̱son nang á̱ ku khap á̱ sak a̱ni si̱ [[Caina|Ri̱pobi̱lik Á̱niet Caina]] di̱ fam a̰tyin Delta A̱ghyui Wulu hu kpa̱mkpaan [[Kyai A̱sa̱khwot Caina A̱tak]] hu. Ma̱ng á̱niet ba̱ swak miliyon 7.5 ba̱ neet bibyin nvwuon mi̱ swanta hu ma̱ng shi kyai a̱byin kilomita a̱ma̱ntanaai 1,104 (met a̱ma̱ntanaai 426) a̱ni, a̱byin Hong Kong yet a̱nyiung da̱ a̱ka̱vwuo mi̱ swanta na̱ swak ma̱ng byia̱ á̱niet ba̱ la̱u fam fi̱fam da̱ a̱vwuo a̱nyiung a̱ni.
==Ya̱fang==
<references/>
==A̱ka̱fwuop nta==
{{Template:Bibyin A̱siya}}
[[Sa:Bibyin_swanta]]
[[Sa:Bibyin_A̱siya]]
[[Sa:Bibyin_A̱tyin_A̱siya]]
lfcukfcbqkgnvg1feaqcc532ontpb6i
Hyaai a̱niet ma̱ng wum a̱ka̱sa ku naat á̱ mbwuot ma̱ a̱byin A̱tyap a̱ni
0
451
4970
4969
2022-05-16T12:48:58Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[Hyaai á̱niet ma̱ng wum a̱ka̱sa ku naat á̱ mbwuot ma̱ a̱byin A̱tyap a̱ni]]
eufidfvctex3z58ygvy9byub0b8tt7s
Hyaai á̱niet ma̱ng wum a̱ka̱sa ku naat á̱ mbwuot ma̱ a̱byin A̱tyap a̱ni
0
452
14280
13661
2022-06-13T10:15:07Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
'''Hyaai á̱niet ma̱ng wum a̱ka̱sa ku naat á̱ mbwuot ma̱ a̱byin A̱tyap a̱ni'''. Ka̱ nyi bwung bah, á̱ kyiak mmam na̱ bai swak a̱ni a̱fwun di̱ hyaai á̱niet ma̱ng wum a̱ka̱sa ma̱ a̱bakeang ma̱ a̱di̱dit mi̱ fam a̱byin A̱tyap ku shyia̱ Nietcen A̱fakan (Kpat: Zango) a̱ni. Á̱ fa nyia̱ á̱niet cok nyák á̱ ngyei A̱fa̱taa a̱ni bibya nyian a̱byia̱byia̱ nta̱m ya a̱lyia̱ ma̱ng fwuo na a̱ni.
A̱tyoli Gwanzwang a̱nyan wa shyia̱ ma̱ng swat hu Matyei ku tak nang á̱ ku mbai ma̱ng A̱fa̱taa ba mi̱ a̱yaama̱to bya á̱ ba̱ koot ma̱ a̱keang ka. Gwanzwang yet a̱tyu Matyei wa, byin Matyei meang. Mi̱ nkhang gu bwoi nzi̱t ndyo a̱ni, a̱ ku tak nang á̱niet ba ku nkhwi a̱yaatoot A̱khwot A̱kwop Naijeriya bya. Á̱niet Matyei ba ma̱ng A̱buyap dam nang [[A̱khwot Á̱kwop Naijeriya]] mbyia̱ bwak di̱ hyaai á̱niet ma̱ng wum a̱ka̱vwuo na. A̱ka̱keang á̱ wum di̱n mmam swak na̱ swak a̱ni na bai cyi sweang ma̱ng kyang. Á̱niet ba̱ shyia̱ ma̱ng swat ma̱ [[Tyok A̱tyap|a̱byin A̱tyap]] ka di̱ yong huni dam nyia̱ nyiá̱ jini tyia̱ á̱ si̱ hyaai á̱niet ba̱ swak nswak ntat a̱ni.
A̱baka̱keang á̱ nyia̱ nyiá̱ jini a̱ni ni̱nia yet: Warkan, Maka̱ra̱u, Matyei, A̱buyap, A̱takligan (Kpat: Magamiya), Tya̱caat (Kpat: Kacecere) ma̱ng á̱ghyang ba.
Á̱ dam nyia̱ hyat a̱fai Maka̱ra̱u A̱kpat wu ku faat fi̱faat nang Kaswuo Nietcen A̱fakan ji A̱tuk Juma (9 Zwat A̱natat 2021) hyia̱ nang [[A̱kpat|A̱kpat wu]] mbyia̱ bwak mi̱ nkyang na̱ naat á̱ mbwuot a̱ni. Ma̱ninika n dyiat a̱ni, á̱niet a̱ka̱cyet cat kai vak Nietcen A̱fakan hu bah. A̱wun ta̱bat konyan, Á̱niet Khwi Kristi ba ma̱ng Á̱niet Kpa Pyipyia̱ a̱byin meang.
Ka̱ doot a̱yin gu dam nyia̱ á̱niet ba̱ shyia̱ di̱n tyok Naijeriya hu a̱fwun a̱ni cat zi̱ swan swat nyinyang ma̱ng a̱ghyang nzit bah. Ba̱ shei kpa̱sai nang ba̱ nvwuoi A̱fa̱taa cok nyák ba a̱ni ndyang da̱nian a̱lyiat ba̱ lyiat kuzang mam a̱ni.
Ma̱ninika, ma̱ng A̱gwaza Tswazwa wa zi̱ ta a̱zanson gu beang nzi̱t ma̱ a̱byin A̱tyap ka a̱mgba̱m.
==Ya̱fang==
<references/>
A̱tyulyuut: A̱tyoli Zwandien Bobai (13 Zwat A̱natat 2021).
[[Sa:Hyaai á̱niet]]
irh4xwi9udkh91zkta79ce2l2eq3nv1
Hyet
0
453
12301
4987
2022-05-21T04:45:54Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
'''Hyet''' hu (á̱kpa: '''nhyet''' ''na'') yet a̱da̱dai shan wa nang a̱ nkwak [[a̱ta]] a̱ni. Ka̱ á̱ khwat a̱ta di̱n mang, hyet hu hwa na ghwut ku ma kyang hu á̱ mang a̱ni. Hyet byia̱ a̱ta̱m, ku si̱ byia̱ a̱tyin; a̱ta̱m kikya si̱ mang ti̱p kyang hu á̱ mang a̱ni, a̱tyin ni kya yet can ji nang á̱ fam ma̱ng a̱ywan a̱ta ka a̱ni. A̱ta ma̱ng hyet yet nkyang zwang nia, á̱ si̱ ma̱ng mang nyám a̱yit.
==Ya̱fang==
<references/>
e270qy23ufyye0z5l7c1itmir6xfgti
Ibadan
0
454
12302
4995
2022-05-21T04:46:04Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
'''Ibadan''' (Ghwangkpang: Ìbàdàn), nggu wa yet a̱keangtung ma̱ng a̱gba̱ndang a̱keaang a̱ swak ma̱ng shi a̱ni mi̱ [[Si̱tet Oyo]], mi̱ [[Naijeriya]].
Nggu wa yet a̱gba̱ndang a̱keang si̱n a̱tat mi̱ Naijeriya lilyim [[Legwot]] ma̱ng [[Ka̱na̱u]]. A̱ byia̱ á̱niet 3,649,000 bai a̱fwun 2021, ma̱ng á̱niet miliyon 6 mami fam metropolit nggu hu. Di̱ fam shi a̱byin, nggu wa yet a̱gba̱ndang a̱keang a̱ swak mi̱ Naijeriya.
Di̱n jen shyia̱ [[A̱tuk Mam Sa̱t (Naijeriya)|sa̱t a̱si̱ Naijeriya]] ma̱ a̱lyia̱ 1960, nggu wa ku yet a̱gba̱ndang a̱keang a̱ swak ma̱ng shi a̱feang mami a̱mgba̱m [[Afrika]], lilyim a̱keang Kairo ma̱nyin.
==Ya̱fang ==
<references/>
sjfzlv83k8mealp6p4160mt7fljz5l4
Idoma (á̱niet)
0
455
12746
12303
2022-05-25T17:34:31Z
Kambai Akau
15
wikitext
text/x-wiki
[[Fail:Idoma children.jpg|thumb|Mman Idoma mi̱ nkyang a̱gwai nna na]]
'''Idoma''' ba yet nwap ja ji̱ lan shyia̱ di̱ fam a̱tak jenshyung [[Si̱tet Benuwe]], ma̱ a̱byin [[Naijeriya]], a̱wot ji̱ ka mbyia̱ susot bi̱n mi̱ Si̱tet Kirosi̱riva, Si̱tet Inugu, [[Si̱tet Kogi]] a mbeang [[Si̱tet Na̱sa̱rawa]] mi̱ Naijeriya.<ref>[https://www.ipobinusa.org/ourstory Our Story] (di̱n Shong). Indigenous People of Biafra USA.</ref> Á̱ tung á̱ si̱ sak a̱lyem Idoma ka da̱ a̱basot lilyem Akweya kikya ka̱ shyia̱ tafa lilyem Idomoid hu ku shyia̱ tafa sa lilyem Volta–Nija hu ku byia̱ lilyem nang Igede, Alago, Agatu, A̱tulo, Ete ma̱ng Yala a̱ni mi̱ sí̱tet [[Si̱tet Benuwe|Benuwe]], Na̱sa̱rawa, [[Si̱tet Kogi|Kogi]] ma̱ng fam A̱za Ki̱rosi̱riva. A̱basot lilyem Akweya ka si̱ byia̱ a̱meanh ma̱ng a̱basot lilyem Yatye-Akpa ka meang. A̱gba̱ndang kap a̱byin wu shyia̱ mami-mami a̱byin jija, di̱ fam a̱tak A̱ghyui Benuwe hu, kilomita 72 naat di̱ fam a̱tyin neet di̱ tyan ji nang ka̱ ku mun ma̱ng [[A̱ghyui Nija]] ka a̱ni.
==Ya̱fang==
<references/>
q7j003kwnq4hvm8ee50x6qszuztec6u
Ilaix Moriba
0
456
15409
15408
2022-07-27T20:33:19Z
Kambai Akau
15
wikitext
text/x-wiki
{{Databox}}
'''Moriba Kourouma Kourouma''' (byin a̱tuk mam 19 Zwat Jhyiung 2003), á̱ lyen ma̱ng a̱lyoot '''Ilaix Moriba''' (Katalan: [iˈɫaʃ muˈɾiβə]) yet a̱tyutsot a̱la̱utak mi̱ fa̱m a̱byin [[Si̱pen]] á̱ ngyei Barcelona a̱ni wa. A̱ yet a̱gwak wa di̱ tsot a̱la̱u hu ma̱ka̱wa̱tyia̱ a̱zanson á̱niet ba̱ ci a̱tyu a̱ ya̱baat mba a̱la̱u wu a̱ni.
[[Sa:byin_2003]]
[[Sa:Á̱niettsot a̱la̱u-a̱ti̱tak]]
gbif5ph1mcy3b126zamsxlclvpkw85c
Ile Ife
0
457
12567
5026
2022-05-21T20:18:52Z
Hugo.arg
154
/* Ya̱fang */
wikitext
text/x-wiki
'''Ile Ife''' (Ghwangkpang: Ifẹ̀, ku Ilé-Ifẹ̀) yet a̱khwukhwop a̱keang A̱ghwangkpang wa di̱ fam a̱tak-jenshyung [[Naijeriya]]. A̱keang ka shyia̱ [[Si̱tet Oshun]] mam a̱fwun ji ja. Ife shyia̱ kpa̱mkpaan ma̱ng kilomita 218 di̱ fam a̱za-a̱tyin [[Legwot]] ma̱ng shi á̱niet 509,813, si̱ ku swak kuzang hu mi̱ Si̱tet Oshun ca̱caat ma̱ng fang á̱niet a̱lyia̱ 2006.
[[Fail:Short oral history of Ile Ife in Ile-Ife language by a native speaker.webm|thumb|350px|A̱kum a̱son a̱lyiat tazwa Ile Ife mi̱ zwa a̱lyiat Ufẹ̀ ji a̱bwonu nggwon a̱byin a̱ghyang]]
==Ya̱fang==
<references/>
13oy02dehioxjc6bmgrz8v3seqlpkdl
Ilorin
0
458
12305
5031
2022-05-21T04:46:34Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
'''Ilorin''' yet a̱gba̱ndang a̱keang wa mi̱ [[Si̱tet Kwara]], mi̱ fam jenshyung [[Naijeriya]]. Ma̱ a̱lyia̱ cyikwop sweang ma̱ng a̱taa (2006) fang á̱niet hu nyia̱ á̱ ku shyia̱ á̱niet cyikwop cyi a̱natat ma̱ng swak a̱natat ma̱ng cyi a̱taa ma̱ng nswak a̱taa ma̱ng a̱natat (777,667), huhwa tyia̱ Ilorin yet a̱natat ma̱ng si̱tet zi̱ byia̱ á̱niet a̱ nswak a̱ni ma̱ a̱byin Naijariya.
==Ya̱fang==
<references/>
7x18v7kadzu32ler80vr52roy0xyyw2
Interlingue (a̱lyem)
0
459
14282
13368
2022-06-13T10:15:17Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
[[Fail:Unde yelb.svg|thumb|A̱lama Interlingue, a̱dyundyung ti̱li̱da̱ tazwa bat sa̱khat a̱sa̱khwot bagina]]
A̱lyem '''Interlingue''' ([interˈliŋɡwe]; ISO 639 ie, ile), á̱ ku ngyei '''Oktsidental''' gbangbang a̱ni, yet a̱lyem beang swanta kya nang á̱ ku mat ma̱ a̱lyia̱ 1922. A̱tyumat wu, Edgar de Wahl, ku cat a̱ shyia̱ a̱ca̱caat kidee a̱gi̱rama a̱ lan yet a̱ swak a̱ni ma̱ng a̱za̱za̱rak nza̱kwa. Á̱ ku kpaat kuntyin swáng a̱lyiat hu tazwa swáng a̱lyiat lilyem ma̱ a̱di̱di̱t ghyang ja ku ku shyia̱ a̱ni di̱n jen a̱ja, a mbeang vak bwoi mi̱ bwoi swáng a̱lyiat ku nyia̱ ta̱m ma̱ng ya̱mak-a̱zama ma̱ng ya̱mak-a̱zanson nang á̱ wa ka̱n ndyen a̱ni.
== Kpa̱m lyuut ==
A̱tsak lyuut mi̱ lyuut kpa̱m lyuut di̱n Oktsidental wu ku tyai mami ''Cosmoglotta''. Á̱ bu si̱ mbyia̱ nta̱m nghyang, a̱mgba̱m ma̱ a̱tsatsak ma̱ng bwan, á̱ ku shei di̱n Interlingua a̱ni. Lyuut mi̱ lyuut ghyang si̱ tyai mi̱ magazi̱n Helvetia a̱wot si̱ huni ka ngyet si̱ hu nang á̱ nwai lyen ba̱t a̱ni. ''Micri chrestomathie'' yet kidee jhyiung ja mi̱ nta̱m bwan na, ku byia̱ ma̱ng a̱nhu, kpa̱m lyuut mi̱ lyuut mbwak Jaroslav Podobský, H. Pášma ma̱ng Jan Kajš á̱ ku shei ma̱ a̱lyia̱ 1933.<ref>Micri Chrestomathie. OCLC 997463987</ref>
A̱tsatsak lyuut mi̱ lyuut á̱ghyang nang á̱ ku shei nang nkwambwat vwuon a̱ni wa yet:
* ''Krasina, raconta del subterrania del Moravian carst'',<ref>Krasina : Raconta del subterrania del Moravian Carst. OCLC 493973352</ref> á̱ ku shei ma̱ a̱lyia̱ 1938 mbwak Jan Amos Kajš.
* ''Li astres del Verne'',<ref>Li Astres del Verne : Poesie. OCLC 494042722</ref> kpa̱m a̱tsak a̱bwom a̱nwuat mbwak Jaroslav Podobský, á̱ ku shei ma̱ a̱lyia̱ 1935 ma̱ng 1947.
* ''Li sercha in li castelle Dewahl e altri racontas'', lyuut ma̱ng shei mbwak Vicente Costalago ma̱ a̱lyia̱ 2021.<ref>[https://www.lulu.com/en/en/shop/vicente-costalago-v%C3%A1zquez/li-sercha-in-li-castelle-dewahl-e-altri-racontas/paperback/product-4gj9w8.html?page=1&pageSize=4 Li sercha in li castelle Dewahl e altri racontas]</ref>
* ''Fabules, racontas e mites'', lyuut ma̱ng shei mbwak [[Vicente Costalago]] ma̱ a̱lyia̱ 2021<ref name ="fabules">[https://www.lulu.com/en/en/shop/vicente-costalago-v%C3%A1zquez/fabules-contes-e-mites/paperback/product-4g6ezk.html?page=1&pageSize=4 Fabules, racontas e mites]</ref>.
==Lyuut mi̱ lyuut kidee==
''Li material civilisation, li scientie, e mem li arte unifica se plu e plu. Li cultivat europano senti se quasi in hem in omni landes queles have europan civilisation, it es, plu e plu, in li tot munde. Hodie presc omni states guerrea per li sam armes. Sin cessa li medies de intercomunication ameliora se, e in consequentie de to li terra sembla diminuer se. Un Parisano es nu plu proxim a un angleso o a un germano quam il esset ante cent annus a un paisano frances.''
Bwan: "Tat-a̱ghyi kyang ta̱cya̱, sains, ku lyenta̱m meang ni̱ ntung á̱pyia̱ mba tswazwa-tswazwa. A̱tyuyurop a̱ ku tat a̱pyia̱ a̱ni fwuong a ngyei a̱ shyia̱ a̱mali mami a̱mgba̱m bibyin ku byia̱ tat-a̱ghyi Yurop hu a̱ni, si̱ a̱hwa si̱ fa, tswazwa-tswazwa, mami a̱mgba̱m swanta hu. Azafwun ka, kpa̱mkpaan ma̱ng a̱mgba̱m bibyin nyia̱ zwang ma̱ng nkyangzwang a̱nyiung. Di̱ mi̱n ngyong da̱ a̰vwuo a̱nyiung nvak a̱lyiat ma̱ng á̱ghyang si̱ mbeang yet a̱sham, a̱wot zang ji, jija si̱ li a ngyei ta̱cya̱ ka nghyuai mi̱ shi. Ma̱ninika, A̱tyuparit shyia̱ kpa̱mkpaan ma̱ng A̱tyungggilan ku ma̱ng A̱tyujami̱ni ku swak si̱sak ji nang ku za ma ndi ndyia̱ ncyi na̱ ku swak a̱ni a̱zaghyi a̱kunak a̱byin [[Fi̱ransa]]."
{|class="wikitable"
|+Naai A̱tyoli
|-
|'''Interlingue'''
|'''Lati̱n (taada)'''
|'''Tyap'''
|-
|{{lang|ie|<poem>
Patre nor, qui es in li cieles,
mey tui nómine esser sanctificat,
mey tui regnia venir,
mey tui vole esser fat,
qualmen in li cieles talmen anc sur li terre.
Da nos hodie nor pan omnidial,
e pardona nor débites,
qualmen anc noi pardona nor debitores.
E ne inducte nos in tentation,
ma libera nos de lu mal.
Amen.</poem>}}
|
Pater noster, qui es in cælis,<br>
sanctificetur nomen tuum.<br>
Adveniat regnum tuum.<br>
Fiat voluntas tua,<br>
sicut in cælo, et in terra.<br>
Panem nostrum quotidianum da nobis hodie,<br>
et dimitte nobis debita nostra,<br>
sicut et nos dimittimus debitoribus nostris.<br>
Et ne nos inducas in tentationem,<br>
sed libera nos a malo.<br>
Amen.
|
A̱tyia̱ nzi̱t wu a̱ shya̱ tswazwa ka a̱ni,<br>
á̱ ja̱u a̱lyoot ang ka.<br>
Tyok ang hu ku bai.<br>
Á̱ nyia̱ kyang hu a chat a̱ni<br>
mi̱ swanta hu, ma̱nang á̱ nyia̱ nhu tswazwa ka a̱ni.<br>
Nang zi̱t kyayak kwa mam.<br>
Ci a̱ka̱tuk nyia̱ wu nang zi̱ nyia̱ ang ndyo a̱ni,<br>
ma̱nang zi̱ nci a̱bun nang á̱ghyang á̱niet bwoi nzi̱t ndyo a̱ni.<br>
Yok ghwon nzi̱t zi̱ kwa di̱n jen mak bah.<br>
Da̱ a̱kwonu a̱kya, ti̱n nzi̱t ma̱ a̱ka̱tuk wu wa.<br>
Yok ku swan a̱nia.
|-
|}
{| class="wikitable"
|-
|+Byat A̱fai A̱lyia̱ 1942 á̱ ku lyui mi̱ ''Cosmoglotta B'' ([[Shwit]])<ref>[http://anno.onb.ac.at/cgi-content/anno-plus?aid=e0m&datum=1942&page=1&size=45 Cosmoglotta B, 1942 p. 1]. Anno.</ref>
! Interlingue !! English
|-
| {{lang|ie|Si noi vell viver ancor in li felici témpor quel precedet li guerre universal, tande anc li present articul vell reflecter li serenitá per quel noi acustomat salutar li comensa de un nov annu. Ma hodie, li pie desir quel noi ordinarimen expresse per un cordial 'Felici nov annu' ha transformat se in sanguant ironie. Noi plu ne posse pronunciar ti paroles sin sentir lor terribil banalitá e absolut vacuitá de sens. Li future es obscurissim e it promesse nos plu mult sufrenties quam radies de espera. Li pace va sequer li guerre quam li die seque li nocte e quam li calma succede al tempeste. Un nov munde va nascer ex li caos e in ti nov munde anc noi interlinguistes va ti-ci vez luder un rol decisiv.}} || If we were to still be living in the happy time that preceded the world war, then this article would also reflect the serenity by which we used to greet the beginning of a new year. But today, the pious desire that we ordinarily express with a cordial 'Happy new year' has been transformed into bloody irony. We can no longer pronounce these words without feeling their terrible banality and absolute lack of meaning. The future is beyond dark and it promises us more suffering than rays of hope. Peace will follow war, just as the day follows the night and the calm comes after the storm. A new world will be born out of the chaos, and in this new world this time we interlinguists will also play a decisive role.
|}
==Ya̱fang==
<references/>
==A̱ka̱fwuop nta==
* [http://www.ie-munde.com/interlingue-union.html A̱ma̱ntei A̱gwomna̱ti Muna̱pyia̱-Interlingue Wu] (di̱n Interligue)
* [https://occidental-lang.com A̱lyem Oktsidental Ka] (di̱n Shong)
===A̱gi̱rama, a̱yaagban a̱lyem ma̱ng nkyangta̱m===
* [http://interlingue.pbworks.com/w/page/4887780/Grammatica-de-Interlingue-%28English%29 A̱gi̱rama Interlingue di̱n Shong] mbwak Dr. F Haas
* [http://interlingue.pbworks.com/f/Kemp_e_Pope.pdf An English-Interlingue Dictionary] mbwak Kemp ma̱ng Pope, a̱ ka nshyia̱ [http://interlingue.narod.ru/vocabulariums.htm text file].
* [https://occidental-lang.com/resources/OccidentalCourseIn10Lessons-EnglishTranslation.pdf Occidental in 10 lessons mbwak A.Z. Ramstedt (pdf) - Bwan Shong neet ma̱ a̱tsatsak kos Jaman]
* [https://glosbe.com/ie/en Interlingue - A̱gban a̱lyem a̱zalang Shong ma̱ng jhyung mi̱ jhyung bwan]
* [[b:ie:Resume de gramatica de Interlingue (Occidental)|Resume de gramatica de Interlingue (Occidental) in Interlingue]]
* [http://interlingue.narod.ru/ interlingue.narod.ru], nkhang ma̱ng a̱yaalis swang a̱lyiat (''vocabularium'') di̱n Shong ma̱ng Roshiya.
* [http://dicta.bplaced.net/radicarium_directiv.html Radicarium directiv del Lingue International (Occidental) in 8 lingues (1925)] (di̱n Interlingue) mbwak Edgar von Wahl. Ta̱bam: ku nyia̱ ta̱m ma̱ng a̱khwukhwop vak lyuut wu wa.
* [https://occidental-lang.com/interlingue-for-beginners/ Interlingue for Beginners (1966)] (di̱n Shong) mbwak Wilfred E. Reeve
* [https://addons.mozilla.org/en-US/firefox/addon/interlingue-spell-checker/ Kyangnwuan lyuut Interlingue mat Firefox]
=== Lyuut mi̱ lyuut ===
* [http://anno.onb.ac.at/cgi-content/anno-plus?aid=e0g Cosmoglotta A (1922 - 1950)] ma̱ng [http://anno.onb.ac.at/cgi-content/anno-plus?aid=e0m Cosmoglotta B (1935-1948)] mi̱ Tutunkwambwat A̱byin A̱striya
* Helvetia (kwambwat shei mi̱ shei mat ''Swiss Association for Occidental''): [http://anno.onb.ac.at/cgi-content/anno-plus?aid=e6z 1928], [http://anno.onb.ac.at/cgi-content/anno-plus?aid=e1e 1929 - 1933] (Tutunkwambwat A̱byin A̱striya)
* [http://cosmoglotta.pbworks.com/ Ghwut mi̱ ghwut Cosmoglotta ma̱ng a̱ma Helvetia nang á̱ ku tyia̱ di̱jita a̱ni, ma̱ng zunzwuo lyuut mam a̱fwun ji]
* [http://cosmoglotta.narod.ru/ Ghwut mi̱ ghwut Cosmoglotta neet ma̱ a̱lyia̱ 2000 ba̱ng si̱ tat 2004]
* [https://github.com/occidental-lang/occidental-lang.github.io/tree/master/resources Nkwambwat ma̱ a̱di̱di̱t di̱n Oktsidental nang á̱ ku nyia̱ si̱kan a̱ni]
* [https://search.onb.ac.at/primo-explore/search?query=any,contains,Occidental&tab=default_tab&search_scope=ONB_gesamtbestand&vid=ONB&facet=lang,include,ile&mode=basic&offset=0 Books in Occidental / Interlingue mi̱ Tutunkwambwat A̱byin A̱striya]
[[Sa:Interlingue| ]]
[[Sa:Lilyem beang swanta]]
[[Sa:Lilyem nang á̱ ku nok a̱ni]]
[[Sa:Lilyem nang á̱ ku nok á̱ si̱ neap a̱son mi̱ nce ndyia̱ 1920 na]]
[[Sa:Neap a̱son 1922]]
3j1p06msel8o1sreitsfiiwpwarv841
Isi̱rela
0
460
14904
14760
2022-07-15T21:41:22Z
Kambai Akau
15
wikitext
text/x-wiki
{{Country
|name = ''Si̱tet Isi̱rela''<br><small> מְדִינַת יִשְׂרָאֵל (A̱biru) <br> دَوْلَة إِسْرَائِيل (La̱ra̱ba)</small>
|flag = Flag of Israel.svg
|caption = Tyiang a̱toot shi a̱byin Isi̱rela
|coa = Emblem of Israel.svg
|image = Israel (orthographic projection).svg
|capital = [[Urusha̱lima]]
|area = 20,770–22,072
|population = 9,453,980
|year = 2022
}}
A̱byin '''Isi̱rela''' (A̱biru: יִשְׂרָאֵל ''Yisra'el''; La̱ra̱ba: إِسْرَائِيل ''ʾIsrāʾīl''; [[Shong (a̱lyem)|Shong]]: Israel /ˈɪzriəl/, /ˈɪzreɪəl/), á̱ lyen ma̱ng a̱lyoot a̱gwomna̱ti nka nang '''Si̱tet Isi̱rela''' ji a̱ni (A̱biru: מְדִינַת יִשְׂרָאֵל, ''Medīnat Yīsrāʾēl''; La̱ra̱ba: دَوْلَة إِسْرَائِيل, ''Dawlat ʾIsrāʾīl''), yet a̱byin kya di̱ fam-a̱byin A̱siya Jenshyung hu. Ka̱ shyia̱ di̱ khwong kyai a̱sa̱khwot fam-a̱byin a̱tak-a̱tyin [[Kyai A̱sa̱khwot Meditaroniya]] hu hwa mbeang khwong kyai a̱sa̱khwot ku shyia̱ di̱ fam a̱za [[A̱shong Kyai A̱sa̱khwot]] hu, ka̱ si̱ byia̱ a̱gi̱gak ma̱ng bibyin [[Lebanon]] di̱ fam a̱za hu, [[Suriya]] di̱ fam a̱za-a̱tyin hu, [[Urdun]] di̱ fam a̱tyin hu, jén [[Pa̱la̱sti̱n (a̱byin)|Pa̱la̱sti̱n]] á̱si̱ Khwong Jenshyung ma̱ng Tyiang A̱byin Gaza ji di̱ nfam a̱tyin ma̱ng jenshyung na,<ref>"[https://2009-2017.state.gov/p/nea/ci/ptcite Palestinian Territories]". State.gov (22 Zwat Nyaai 2008).</ref> ma̱ a̱ca̱caat, mang a̱byin [[Ma̱sa̱r]] di̱ fam a̱tak-jenshyung hu. A̱keang [[Tel A̱vip]] kya yet a̱ka̱wa̱tyia̱ tung nzwa ma̱ng lyennkyangta̱m a̱byin ka,<ref name="lboro.ac.uk">"[http://www.lboro.ac.uk/gawc/world2008t.html GaWC – The World According to GaWC 2008]". Globalization and World Cities Research Network.</ref> ma̱nang cuk a̱gwomna̱ti ji ma̱ng a̱keangtung shei kpa̱sai nka ka si̱ yet a̱keang [[Urusha̱lima]], shimba bibyin swanta ghyáng nwai shim cet tyok si̱tet hu tazwa a̱gba̱ndang a̱keang a̱kya.<ref>Aldajani, Ra'fat, ma̱ng Drew Christiansen. 22 Zwat A̱taa 2015. "[https://berkleycenter.georgetown.edu/essays/the-controversial-sovereignty-over-the-city-of-jerusalem The Controversial Sovereignty over the City of Jerusalem]." ''The National Catholic Reporter''. mbwak Berkley Center for Religion, Peace & World Affairs: "No U.S. president has ever officially acknowledged Israeli sovereignty over any part of Jerusalem (...) The refusal to recognize Jerusalem as Israeli territory is a near universal policy among Western nations." (di̱n Shong)</ref><ref>Akram, Susan M., Michael Dumper, Michael Lynk, ma̱ng Iain Scobbie, eds. 2010. ''International Law and the Israeli-Palestinian Conflict: A Rights-Based Approach to Middle East Peace''. Routledge. p. 119: "UN General Assembly Resolution 181 recommended the creation of an international zone, or corpus separatum, in Jerusalem to be administered by the UN for a 10-year period, after which there would be a referendum to determine its future. This approach applies equally to West and East Jerusalem and is not affected by the occupation of East Jerusalem in 1967. To a large extent it is this approach that still guides the diplomatic behaviour of states and thus has greater force in international law." (di̱n Shong)</ref><ref>"[https://www.bbc.com/news/world-middle-east-42218042 Jerusalem: Opposition to mooted Trump Israel announcement grows]." ''BBC News''. 4 Zwat Swak ma̱ng Sweang 2017: "Israeli sovereignty over Jerusalem has never been recognised internationally" (di̱n Shong)</ref><ref>Whither Jerusalem (Lapidot) p. 17: "Israeli control in west Jerusalem since 1948 was illegal and most states have not recognized its sovereignty there" (di̱n Shong)</ref>
==A̱bwom a̱byin==
''Hatikvah''<br />("Gbang A̱lyia̱ Hu")[[Fail:Hatikvah instrumental.ogg]]
==Ya̱fang==
<references/>
{{Bibyin A̱siya}}
[[Sa:Bibyin_swanta]]
[[Sa:Bibyin_A̱siya]]
[[Sa:Bibyin_Jenshyung_A̱siya]]
[[Sa:Isi̱rela]]
ez9lcrcu2n37z4upjblnfa7gpd3xnhq
Israel Adesanya
0
461
14284
13370
2022-06-13T10:15:27Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
Israel Mobolaji Temitayo Odunayo Oluwafemi Owolabi Adesanya (bin 22 Tzwat 7, 1989) a̱yet a̱tyiu kwan da̱mbe ha ma̱ byin New Zealand ama bin Najeriya, a̱za̱a ku kwan a̱yaat bosin na̱t-na̱-na̱t,ama a̱kwan a̱yaat bosin.A̱ngyet a̱tyiu a̱yaat dambe a̱ni, ka̱mpa̱ni a̱yaat Ultimate Fighting Championship (UFC) byia bang gu, ngu wa yet a̱gwak UFC Middleweight. Ma̱ng bosin na̱t-na̱-na̱t ngu wa ku yet a̱tyiu cat Glory Middleweight. Si̱ bai October 25, 2021 ngu wa yet lamba 3 a̱tan a̱tyiok UFC pound-for-pound .
==Ya̱fang==
<references/>
[[Sa:Byin_1989]]
2f5ukz4uqeadlyioy78ik4ndm8p9bc2
Italiya
0
462
15749
15746
2022-08-11T23:59:34Z
Kambai Akau
15
wikitext
text/x-wiki
{{Databox}}
A̱byin '''Italiya''' ({{lang-it|Italia}} {{IPA-it|iˈtaːlja||It-Italia.ogg}}), á̱ lyen ma̱ng a̱lyoot a̱gwomna̱ti nka nang '''Ri̱pobi̱lik Italiya''' ({{lang-it|Repubblica Italiana|links=no}} {{IPA-it|reˈpubblika itaˈljaːna|}}),<ref>{{Cite web|title=COSTITUZIONE DELLA REPUBBLICA ITALIANA|url=https://www.gazzettaufficiale.it/eli/id/1947/12/27/047U0001/sg|access-date=28 May 2021|website=www.gazzettaufficiale.it}}</ref><ref>{{Cite web|title=Constitution of the Italian Republic (English)|url=http://www.senato.it/documenti/repository/istituzione/costituzione_inglese.pdf|access-date=28 May 2021|website=[[Senate of the Republic (Italy)]]}}</ref> yet a̱byin kya ka̱ ka̱u di̱ li̱m-a̱byin nyiung nang Ali̱pi wu ku fam a̱ni di̱ fam a̱za hu ma̱ng bibyin a̱ka̱wa̱tyia̱ a̱sa̱khwot ma̱ a̱di̱di̱t ku keang nkaa.<ref>By convention, Northern Italy is also considered part of the Italian peninsula and the Italian peninsula as a whole is considered to be the continental part of Italy. Some authors describe northern Italy as the continental part of Italy and distinguish it from the Italian peninsula (di̱n Shong).</ref> A̱byin Italiya shyia̱ ma̱ka̱wa̱tyia̱ [[Kyai A̱sa̱khwot Meditaroniya]] kikya, di̱ fam a̱byin A̱tak Yurop,<ref>https://www.cia.gov/the-world-factbook/countries/italy/ ''Southern Europe, a peninsula extending into the central Mediterranean Sea, northeast of Tunisia''</ref><ref name="m49">"[https://unstats.un.org/unsd/methodology/m49/ UNSD — Methodology]". unstats.un.org.</ref><ref name="Britannica – Italy">"[https://www.britannica.com/place/Italy Italy – Facts, Geography, & History]". Encyclopedia Britannica.</ref> a̱wot á̱ ni̱ nkyiak nka kap fam a̱byin Jenshyung Yurop hwa.<ref name="DGACM">"[https://www.un.org/Depts/DGACM/RegionalGroups.shtml UNITED NATIONS DGACM]". www.un.org.</ref> Di̱n jen ma̱ a̱di̱di̱t, á̱ ni̱ ntyia̱ A̱byin Italiya di̱ sot Jenshyung Yurop. Nta̱m a̱ca̱cet á̱nietfang ngwa̱i a̱byin Italiya nang a̱byin fam Jenshyung Yurop kya.<ref>Hancock, M. Donald; Conradt, David P.; Peters, B. Guy; Saran, William; Zariski, Raphael (11 Zwat Swak ma̱ng Jhyiung 1998). "[https://archive.org/details/politicsinwester00hanc_0 Politics in Western Europe : an introduction to the politics of the United Kingdom, France, Germany, Italy, Sweden, and the European Union]". 2 (Jhyu.) Chatham House Publishers. ISBN 978-1-56643-039-5. ''list of Western European countries Italy.'' (di̱n Shong)</ref> Ka̱ yet a̱byin [[A̱si̱tet muna̱pyia̱|muna̱pyia̱]] ri̱pobi̱lik a̱lityok-nwuak-cam kya nang a̱keangtung nka ka ma̱ng a̱gba̱ndang a̱keang wu a̱ swak mi̱ shi nka yet Rom a̱ni. A̱byin Italiya ka kup a̱mgba̱m shi kyai a̱byin kilomita a̱ma̱ntanaai 301,340 (met a̱ma̱ntanaai 116,350) ka̱ si̱ byia̱ a̱gi̱gak a̱byin ma̱ng [[Fi̱ransa (a̱byin)|Fi̱ransa]], Shwit, A̱sti̱riya, Si̱loveniya, ma̱ng a̱bacyuang bibyin A̱keang Vatikan ma̱ng San Marino nang ka̱ keang di̱ tityak a̱ni. A̱byin Italiya byia̱ fam a̱byin ghyang nang a̱byin [[Shwit]] keang a̱ni (Kampyone) ma̱ng fam a̱byin ghyang mami a̱sa̱khwot Tunisiya (Lampa̱dusa). A̱byin Italiya ka̱ shyia̱ ma̱ng shi á̱niet kpa̱mkpaan miliyon 60 a̱ni kya yet a̱tat mi̱ bibyin Muná̱pyia̱ Yurop ku swak ma̱ng shi á̱niet a̱ni.
[[Fail:Flag of Italy.svg|thumb|Tyiang a̱toot shi a̱byin Italiya]]
[[Fail:Italy-Emblem.svg|thumb|A̱lama a̱byin Italiya]]
[[Fail:EU-Italy (orthographic projection).svg|thumb|Ta̱si̱la a̱byin Italiya]]
==Ya̱fang==
<div style="height: 200px; overflow:auto; border: 1px solid gray; padding-right: 12px; background-color: #EEEEEE; ">
<references />
</div>
==A̱ka̱fwuop nta==
{{Template:Bibyin Yurop}}
[[Sa:Bibyin_swanta]]
[[Sa:Bibyin_Yurop]]
[[Sa:Bibyin_Jenshyung_Yurop]]
59w67b3lnofvwqway5sjntwp7rm4ezs
Itambut
0
463
15736
15706
2022-08-11T23:25:40Z
Kambai Akau
15
wikitext
text/x-wiki
{{Databox}}
[[Fail:Bosphorus Bridge (235499411).jpeg|thumb|A̱byia̱k Bosi̱forut]]
A̱keang '''Itambut''' (/itambud/, {{lang-tr|İstanbul}} {{IPA-tr|isˈtanbuɫ||Istanbul pronunciation.ogg}}) [[Fail:Istanbul pronunciation.ogg|thumb|yei Turki]], á̱ ku ngyei '''Kwonstanti̱noput''' gbangbang a̱ni, kikya yet a̱gba̱ndang a̱keang a̱ swak ma̱ng shi ma̱ a̱byin [[Turkiya]], a̱ si̱ ka ngyet a̱tyia̱ka̱u naat mbwuot a̱yaabwuang, taada ma̱ng nkhang gbangbang. A̱keang ka swan nfam nfeang a̱na̱nwuai Bosi̱porut na, ka̱ si̱ ka nshyia̱ mi̱ [[Yurop]] mbeang [[A̱siya]] meang, a̱wot ka̱ si̱ byia̱ shi á̱niet ba̱ swan mami nka ku swak miliyon 15 a̱ni. Si̱ a̱hwa si̱ yet %19 a̱mgba̱m á̱niet a̱byin Turkiya ba. A̱keang Itambut kya yet a̱gba̱ndang a̱keang a̱ swak ma̱ng shi á̱niet mi̱ Yurop a̱ni, a̱wot ma̱nang gu yong tazwa nvam-a̱byin nfeang a̱ni, a̱tyia̱ka̱u naat mbwuot a̱bwuang ma̱ng nkhang nggu ka ka̱ yet a̱yaakpa a̱feang mami a̱yaakpa a̱tat shi á̱niet nggu ba a̱ni shyia̱ mami Yurop ma̱nang a̱kum ka si̱ shyia̱ A̱siya. Ma̱nang Itambut yet a̱keang nvam-a̱byin ku ma̱ a̱di̱di̱t wa a̱ni, a̱keang Moskova kya si̱ yet si̱ ka̱ swak ma̱ng shi ka̱ shyia̱ a̱gba̱mgbam mami Yurop a̱ni. Itambut wa yet a̱gba̱ndang a̱keang swanta 15 a̱ swak ma̱ng shi a̱ni.
==Ya̱fang==
<references/>
{{Template:A̱ka̱keang swanta}}
[[Sa:Turkiya]]
nuebizn9mu06xrlrxf716o1piptcnhk
Ityopya
0
464
14287
13969
2022-06-13T10:16:03Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
{{Country
|name = Ri̱pobi̱lik Di̱mokrasi Mundundung Ityopya<br>Lyulyoot di̱ lilyem a̱byin<br>የኢትዮጵያ ፌዴራላዊ ዴሞክራሲያዊ ሪፐብሊክ, ''Ye-Ītyōṗṗyā Fēdēralawī Dēmokirasīyawī Rīpebilīk'' (A̱mhara)<br> Rippabliikii Federaalawaa Dimokraatawaa Itiyoophiyaa (Oromo)<br>Jamhuuriyadda Dimuqraadiga Federaalka Itoobiya (Somali)<br>ፌዴራላዊ ዴሞክራሲያዊ ሪፐብሊክ ኢትዮጵያ,
''Fēdēralawī Dēmokirasīyawī Rīpebilīki Ítiyop'iya'' (Ti̱grinya) <br>Itiyoppiya Federaalak Demokraatik Rippeblikih (Afar)
|flag = Flag of Ethiopia.svg
|coa = Emblem of Ethiopia.svg
|image = Ethiopia (orthographic projection).svg
|capital = Adi̱s-A̱baba
|area = 1,104,300
|population = 117,876,227
|year = 2021
}}
'''A̱bwom a̱byin''': ወደፊት ገስግሺ ፣ ውድ እናት ኢትዮጵያ ("Tat A̱zanson, Ityopya A̱yang Nang Zi̱ Cat A̱ni")<br>[[File:Wedefit Gesgeshi Widd Innat Ittyoppya.ogg]]
A̱byin '''Ityopya''' (A̱mhara: ኢትዮጵያ, ''ʾĪtyōṗṗyā''; Afar: Itiyoophiyaa; Geez: ኢትዮጵያ; Oromo: Itoophiyaa; Somali: Itoobiya; Ti̱grinya: ኢትዮጵያ; Shong: Ethiopia /iːθiˈoʊpiə/), á̱ lyen ma̱ng a̱lyoot a̱gwomna̱ti nka nang '''Ri̱pobi̱lik Di̱mokrasi Mundundung Ityopya''' wu (Shong: Federal Democratic Republic of Ethiopia) a̱ni, yet a̱byin kya nang bibyin ghyáng keang di̱ tityak ka̱ shyia̱ di̱ fam-a̱byin A̱ta̱m Afrika hu a̱ni. Ka̱ byia̱ a̱gi̱gak ma̱ng bibyin [[Eritrea]] di̱ fam a̱za hu, [[Ji̱buti]] ma̱ng Somalilan<ref>"[https://home.treasury.gov/system/files/126/1872.pdf Resolution 1872 (2009)]". Adopted by the Security Council at its 6127th meeting (Ed.). UN. ''...a̱byin a̱ghyang ka̱ tak a̱pyia̱ nka sa̱t a̱ni a̱wot bibyin nta ghyáng nkyiak nka nang kap a̱byin [[Somalya]] hwa a̱ni. Da̱ a̱kwonu a̱kya, a̱gwomna̱ti Somalilan cam a̱lyiat swat a̱sa̱t a̱nia ma̱ng swam.''</ref> di̱ fam a̱za-a̱tyin hu, [[Somalya]] di̱ fam a̱tyin hu, Kenya di̱ fam a̱tak hu, [[Sudan A̱tak]] di̱ fam jenshyung hu ma̱ng [[Sudan]] di̱ fam a̱za-jenshyung hu. Ityopya byia̱ a̱mgba̱m shi kyai a̱byin kilomita a̱ma̱ntaa̱naai 1,100,000 (met a̱ma̱ntaa̱naai 420,000) ma̱ng shi á̱niet ku swak miliyon 117 a̱ni<ref>"[https://web.archive.org/web/20210523140057/https://worldpopulationreview.com/en/countries/ethiopia-population Ethiopia Population 2021 (Demographics, Maps, Graphs)]" (di̱n Shong).</ref> a̱wot ka̱ si̱ yet a̱byin 12 ka̱ lan ma̱ng shi á̱niet mi̱ swanta hu a̱wot ka̱ si̱ yet a̱feang mami Afrika mi̱ shi á̱niet.<ref name=csa>"[https://web.archive.org/web/20200803052731/http://www.csa.gov.et/census-report/population-projections/category/368-population-projection-2007-2037?download=936:population-projection-2007-2037 Population Projections for Ethiopia 2007–2037]". www.csa.gov.et.</ref> A̱keangtung a̱byin ka ma̱ng a̱gba̱ndang a̱keang a̱ swak mi̱ shi wu, A̱dis A̱baba, myian kilomita ma̱ a̱di̱di̱t neet di̱ fam Neang A̱byin A̱tyin Afrika hu ku saat a̱byin ka tyia̱ da̱ a̱ka̱gba tektonik Afrika wu ma̱ng a̱si̱ Somali wu a̱ni.
==Ya̱fang==
<references/>
==A̱ka̱fwuop nta==
{{Bibyin Afrika}}
[[Sa:Bibyin_swanta]]
[[Sa:Bibyin_Afrika]]
[[Sa:Bibyin_A̱tyin_Afrika]]
[[Sa:Bibyin_A̱ta̱m_Afrika]]
koye0mx0m3s40vh1pgfxmrn92r78o1k
Iyuut
0
465
5197
5196
2022-05-16T12:49:06Z
Jon Harald Søby
8
2 revisions imported
wikitext
text/x-wiki
#REDIRECT [[Lyuut]]
5m4m5vzjlgnq4wa6okve458bsgkuagc
Jaba
0
466
15912
15911
2022-08-14T18:05:58Z
Kambai Akau
15
/* A̱ka̱fwuop nta */
wikitext
text/x-wiki
A̱da̱dai A̱vwuo tung A̱gwapnati Jaba ku A̱da (din Tyap) shyia̱ a̱tak Si̱tet Kaduna kya. Avwuo ka ni kwub a̱bin ka̱ bai kilomita 531. Ka̱ shyia̱ kpa̱nkpa̱an min nfam a̱kabin Ja̱t ma̱ng Abuja, A̱kawotyia̱ Naijeriya min A̱firka. A̱gba̱ndang akeang A̱dadai Avwuo tung A̱gwapnati ka ni kya a̱ngyei Kwoi. Numba avwuo hu wha si̱ yed 801.
==Ya̱fang==
<references/>
==A̱ka̱fwuop nta==
{{Commons category-inline|Jaba}}
[[Category:Susot a̱gwomna̱ti mali Naijeriya]]
53k7d90aum1v8z4ok1hs2hwqhlae3an
Jalinggo
0
467
14288
13374
2022-06-13T10:16:08Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
'''Jalinggo''' yet a̱gba̱ndang a̱keang kya mi̱ [[Si̱tet Ta̱raba|Ta̱raba]] di̱ fam aza-a̱tyin a̱byin [[Naijeriya]], a̱ shyia̱ a̱lyoot ka ma̱ng nwap Fa̱taa (a̱lyoot Jalinggo, kikya yet ''a̱gba̱ndang a̱vwuo'') ka̱ si̱ byia̱ a̱vwuo ka̱ byia̱ á̱niet 118,000. A̱fa̱taa bya shyia̱ a̱ja ma̱ng a̱bachyuang nnwap á̱ghyang.
==Ya̱fang==
<references/>
== A̱ka̱fwuop nta ==
[[Sa:Jalinggo]]
[[Sa:A̱kakeangtung a̱yaasi̱tet Naijeriya]]
[[Sa:A̱ka̱vwuo na̱ byia̱ á̱niet ma̱ ba̱t mami Si̱tet Ta̱raba]]
[[Sa:A̱ca̱cet a̱ka̱keang Naijeriya]]
[[Sa:Naijeriya]]
k28owqlapwzlu2htg4p9jgfcqdsdysg
Jami̱ni
0
468
14289
13375
2022-06-13T10:16:13Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
A̱byin '''Jami̱ni''' ku '''Jamut''' (Jaman: Deutschland /ˈdɔʏtʃlant/; Shong: Germany), á̱ lyen di̱ yorong ofisha hu nang '''Ri̱pobi̱lik Mundundung Jami̱ni''' wu (Jaman: Bundesrepublik Deutschland /ˈbʊndəsʁepuˌbliːk ˈdɔʏtʃlant/; Shong: Federal Republic of Germany) a̱ni,<ref>Mangold, Max ''Jhyu.'' (2005). "Duden, Aussprachewörterbuch" (di̱n Jaman). Dudenverlag. (6). p. 271. ISBN: 978-3-411-04066-7.</ref> yet a̱byin kya di̱ fam a̱byin A̱ka̱wa̱tyia̱ Yurop. Kikya yet a̱byin ka ka̱ swak ma̱ng shi á̱niet mami Yurop lilyim a̱byin [[Roshiya]], ma̱ng a̱si̱tet a̱ yet memba Muna̱pyia̱ Yurop wu a̱ byia̱ shi á̱niet a̱ swak a̱ni. A̱byin Jami̱ni shyia̱ tsi̱tsak Nkyai A̱sa̱khwot [[Kyai A̱sa̱khwot Ba̱ltik|Ba̱ltik]] ma̱ng [[Kyai A̱sa̱khwot A̱za|A̱za]] na di̱ fam a̱za hu, ma̱ng Ali̱pi wu di̱ fam a̱tak hu; ka̱ kup shi kyai a̱byin kilomita a̱ma̱ntanaai 357,022 (met a̱ma̱ntanaai 137,847), ma̱ng shi á̱niet ku swak miliyon 83 a̱ni mami a̱yaasi̱tet nka ba. Ka̱ byia̱ a̱gi̱gak a̰byin ma̱ng bibyin Denmak di̱ fam a̱za hu, Polan ma̱ng Ri̱pobi̱lik Cek wu di̱ fam a̱tyin hu, A̱sti̱riya ma̱ng [[Shwit]] di̱ fam a̱tak hu, ma̱ng [[Fi̱ransa (a̱byin)|Fi̱ransa]], Lukza̱mbok, Beljiyom, ma̱ng Holan di̱ fam jenshyung hu. A̱keangtung a̱byin ka ma̱ng a̱gba̱ndang a̱keang a̱ swak ma̱ng shi wu wa yet Berlin, a̱keang Frankfot si̱ yet a̱ka̱wa̱tyia̱ naat mbwuot a̱ka̱kurum nka ka; a̱wot Fam A̱byin Ruhr hu si̱ yet sot a̱keang nka ji ji̱ swak mi̱ shi kyai a̱ni.
[[Fail:Flag of Germany.svg|thumb|Tuta Jami̱ni]]
[[Fail:Coat of arms of Germany.svg|thumb|A̱lama a̱byin Jami̱ni]]
[[Fail:EU-Germany (orthographic projection).svg|thumb|Ta̱si̱la a̱byin Jami̱ni]]
==Ya̱fang==
<references/>
{{Template:Bibyin Yurop}}
[[Sa:Bibyin_swanta]]
[[Sa:Bibyin_Yurop]]
[[Sa:Bibyin_A̱ka̱wa̱tyia̱_Yurop]]
3oitki4pj1ipola88s22caool3pdszy
Cang Yong-sil
0
469
15157
15156
2022-07-17T16:31:59Z
Kambai Akau
15
wikitext
text/x-wiki
{{Databox|item=Q494615}}
'''Cang Yong-sil''' ku '''Jang Yeong-sil''' (Kworiya: 장영실; Hanja: 蔣英實; yei Kworiya: /t͡ɕɐŋ jʌŋɕiɭ/; 1390 – lilyim 1442) ku yet a̱bwokntswam Kworiya, a̱gwak sains, ma̱ng a̱tyumat nkyang nfai wa di̱n jen Lang Á̱gwam Coson ji (1392–1897). Shimba nang á̱ ku byin Cang a̱kunak kya, A̱gwam [[Sezong a̱gba̱ndang wu|Sezong]] si̱ ghwon nggu gu nyia̱ ta̱m a̱magwam ka. Nkyang nang Cang ku mat a̱ni, nang Ceugugi hu (kyangmai va za hu) ma̱ng kyangmai cung a̱sa̱khwot hu, si̱ tyai sai long tazwa ya a̱son lyennkyangta̱m Lang Á̱gwam Coson hu.
==Ga̱ndu==
Ma̱ a̱tuk mam 19 Zwat Tswuon 2018, [[Google]] jhyi a̱yet da̱nian Cang Yong-sil ma̱ng Google Doodle.<ref>[https://www.google.com/doodles/celebrating-jang-yeong-sil Celebrating Jang Yeong-sil] (di̱n Shong). Google (19 Zwat Tswuon 2018).</ref>
==Bu nwuan==
*Hwaca
*Sain ma̱ng Lyennkyangta̱m mami Kworiya
*A̱gogo mam
*A̱gogo a̱sa̱khwot
*Woo Jang-coon
== Ya̱fang ==
<references/>
==A̱ka̱fwuop nta==
*[https://web.archive.org/web/20060323093632/http://www.newtonkorea.co.kr/newton/magazine/newton/2002_03/inmul.htm Newton Graphic Science Magazine, nkhang shyicet mbwak á̱ghyang á̱niet] (di̱n Kworiya)
*[http://kids.hankooki.com/lpage/study/200404/kd2004040516442945690.htm Ati̱kut Korea Times Nfi̱ng] (di̱n Kworiya)
*[http://seer.snu.ac.kr/trip/anc-1.html Wa̱i shi Yunivasti A̱byin Seoul] (di̱n Kworiya)
[[Sa:byin sa̱ncuri 14]]
[[Sa:A̱yaagwak lyen sains sa̱ncuri 15|A̱yaagwak lyen á̱ta̱ngwat]]
[[Sa:Kwai Jang a̱si̱n Asan]]
[[Sa:A̱kworiya sa̱ncuri 15]]
[[Sa:A̱yaagwak lyen sains Kworiya]]
[[Sa:Á̱nietmatnkyang Kworiya]]
[[Sa:A̱yaagwak lyen á̱ta̱ngwat sa̱ncuri 15 Kworiya]]
[[Sa:Á̱ nwai lyen a̱lyia̱ mbyin]]
[[Sa:Á̱ nwai lyen a̱lyia̱ kwi]]
[[Sa:A̱yaagwak lyen sains Nce A̱ka̱wa̱tyia̱ Kworiya]]
prefrsnrplt82i824mitvdmppz6mkce
Jang Yeong-sil (ce fim TV)
0
470
15159
15158
2022-07-17T16:38:51Z
Kambai Akau
15
wikitext
text/x-wiki
{{Databox|item=Q18880782}}
'''''Jang Yeong-sil''''' (Kworiya: 장영실) yet ce fim vwuomaat telvishon [[Kworiya A̱tak]] hwa tazwa nkhang gbangbang a̱ghyang nang á̱ ku tsa ghwut ma̱ng a̱nhu ma̱ a̱lyia̱ 2016, mami á̱ si̱ shyia̱ [[Song Il-guk]], Kim Yong-col, Kim Sang-kyung and Park Sun-yong. Huhwa shai ''The Jingbirok: A Memoir of Imjin War'' a̱wot á̱ si̱ tyai nhu mi̱ KBS1 kyiak neet ma̱ a̱tuk mam 2 Zwat Jhyiung 2016 ba̱ng si̱ tat 26 Zwat Tsat 2016 kuzang A̱tuk A̱sa̱ba̱t ma̱ng A̱tuk Ladi di̱ tswam 21:40 ([[Jen Kidee Kworiya|JKK]]) ngaat tat nkyangzakwa 24.
==Ya̱fang==
<references/>
hm9ad8b1j4on36zwrncoeas8kvsy64j
Jang Yeong-sil (nce fim TV)
0
471
5275
5274
2022-05-16T12:49:08Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[Jang Yeong-sil (ce fim TV)]]
3frpkblfnbitk8lsaiih7hpp8fvj01v
Japan
0
472
5277
5276
2022-05-16T12:49:08Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[Ja̱pan]]
pdwuuhtilfq0mj0o56b8ub84p879xk3
Ja̰fi̱p
0
473
5279
5278
2022-05-16T12:49:08Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[Ja̱fi̱k]]
ev1jcqifvrx7210w8kokq91mf6rfwen
Ja̱fi̱k
0
474
12314
5292
2022-05-21T04:48:05Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
[[Fail:Common chimpanzee (Pan troglodytes schweinfurthii) feeding.jpg|thumb|''P. t. schweinfurthii'' mami Kibale National Park, [[Yuganda]]]]
'''Ja̱fi̱k''' ji (''Pan troglodytes'') yet nyam ja, ji̱ neet mi̱ susop ma̱ng bibyin á̱kwop Afrika hu a̱ni.
==Ya̱fang==
<references/>
96r0wbk3yc44m87g2mu6rzhjv640kdu
Ja̱ma̱ika
0
475
15322
15266
2022-07-26T05:44:39Z
Kambai Akau
15
wikitext
text/x-wiki
{{databox}}
A̱byin '''Ja̱ma̱ika''' (Shong: Jamaica /dʒəˈmeɪkə/), yet a̱byin a̱ka̱wa̱tyia̱ a̱sa̱khwot kya ka̱ shyia̱ di̱ [[Kyai A̱sa̱khwot Karibi]] hu a̱ni. Ka̱ ngaat tat kilomita a̱ma̱ntaa̱naai 10,990 (met a̱ma̱ntaa̱naai 4,240) ma̱ng shi kyai a̱byin, ka̱ si̱ yet a̱byin a̱ka̱wa̱tyia̱ a̱sa̱khwot a̱tat ka ka̱ swak ma̱ng shi da̱ A̱ca̱cet Ayaantili ba ma̱ng Karibi hu (a̱ma̱lyim bibyin [[Kuba]] ma̱ng Hisi̱panyola). A̱byin Ja̱ma̱ika myian kpa̱mkpaan ma̱ng kilomita 145 (met 90) di̱ fam a̱tak Kuba, a̱wot kilomita 191 (met 119) fam jenshyung Hisi̱panyola (a̱byin a̱ka̱wa̱tyia̱ a̱sa̱khwot ka̱ byia̱ da̱ nka bibyin Hayiti ma̱ng Ri̱pobi̱lik Dominikan); Bibyin Nta Bi̱ri̱ti̱n a̱si̱ Bibyin A̱ka̱wa̱tyia̱ A̱sa̱khwot Keiman hu myiai kilomita 215 (met 134) di̱ fam a̱za-jenshyung hu.
[[Fail:Flag of Jamaica.svg|thumb|Tyiang a̱toot shi a̱byin Ja̱ma̱ika]]
[[Fail:Coat of Arms of Jamaica.svg|thumb|A̱lama a̱byin Ja̱ma̱ika]]
[[Fail:Jamaica (orthographic projection).svg|thumb|Ta̱si̱la a̱byin Ja̱ma̱ika]]
==Ya̱fang==
<references/>
[[Sa:Bibyin_swanta]]
[[Sa:Bibyin_Amerika]]
[[Sa:Bibyin_Karibi]]
e2wlu7eijw1s2urmjah52bg2jjle4di
Ja̱pan
0
476
14292
13378
2022-06-13T10:16:28Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
A̱byin '''Ja̱pan''' (Ja̱pan: 日本, ''Nippon'' ku ''Nihon''; Shong: Japan), yet a̱byin a̱byin a̱ka̱wa̱tyia̱ a̱sa̱khwot kya di̱ fam a̱byin A̱tyin A̱siya, ka̱ shyia̱ di̱ fam a̱za-jenshyung [[A̱gba̱ndang Kyai A̱sa̱khwot Pasi̱fi̱k]] hu hwa. Ka̱ byia̱ a̱gi̱gak a̱sa̱khwot di̱ fam jenshyung hu ma̱ng Kyai A̱sa̱khwot Ja̱pan hu, ka̱ si̱ ka ngaat kyiak neet di̱ Kyai A̱sa̱khwot Okhotsk hu di̱ fam a̱za hu naat Kyai A̱sa̱khwot Caina A̱tyin hu ma̱ng a̱byin [[Taiwan]] di̱ fam a̱tak hu. A̱byin Ja̱pan yet kap Nyuak Long hu hwa, ka̱ ngaat swak sot bibyin a̱ka̱wa̱tyia̱ a̱sa̱khwot jhyang ji̱ byia̱ bibyin a̱ka̱wa̱tyia̱ a̱sa̱khwot 6,852 a̱ni ku khwi kilomita a̱ma̱ntanaai 377,975 (met a̱ma̱ntanaai 145,937); bibyin a̱ka̱wa̱tyia̱ a̱sa̱khwot fwuon ku lan mi̱ shi kyai hu hwa yet: Hokkaido, Honshu, Shikoku, Kyushu, ma̱ng Okinawa. A̱keang Tokyo kya yet a̱keangtung ma̱ng a̱gba̱ndang a̱keang Ja̱pan a̱ swak mi̱ shi a̱ni; a̱ca̱cet a̱ka̱keang á̱ghyang ni̱nia yet: Yokohama, Osaka, Nagoya, Sapporo, Fukuoka, Kobe, ma̱ng Kyoto<ref>The Emergence of Japanese Kingship Joan R. 1997 </ref><ref>[https://www.japantimes.co.jp/life/2008/07/27/general/cipangus-landlocked-isles/ Cipangu's landlocked isles - The Japan Times] July 27, 2008</ref><ref>[https://www.mhlw.go.jp/english/policy/health/water_supply/1.html Water Supply in Japan] Ministry of Health, Labour and Welfare September 26, 2018 </ref><ref>An Invitation to Japan's Borderlands: At the Geopolitical Edge of the Eurasian Continent pages279–282, 2011.</ref>.
[[Fail:Flag of Japan.svg|thumb|Tuta Ja̱pan]]
[[Fail:Imperial Seal of Japan.svg|thumb|A̱timi A̱gwamshan Ja̱pan]]
[[Fail:Goshichi no kiri.svg|thumb|A̱timi Ofit Minista A̱son wu ma̱ng A̱gwomna̱ti Ja̱pan]]
[[Fail:Japan (orthographic projection).svg|thumb|Ta̱si̱la a̱byin Ja̱pan]]
==Ya̱fang==
<references/>
{{Bibyin A̱siya}}
[[Sa:Bibyin_swanta]]
[[Sa:Bibyin_A̱siya]]
[[Sa:Bibyin_A̱tyin_A̱siya]]
ojrj96l40v15bz5olsllwp8zwocno4o
Jemaa
0
477
15925
15924
2022-08-14T20:10:12Z
Kambai Akau
15
wikitext
text/x-wiki
{{Databox}}
'''Jemaa''' (á̱ bu ngyei ''Ajemaa'' ku Jema'a), yet [[Susot a̱gwomna̱ti mali Naijeriya|Sot A̱gwomna̱ti Mali]] ja di̱ fam [[A̱tak Ka̱duna|a̱tak]] [[Si̱tet Ka̱duna]], [[Naijeriya]], nang a̱keangtung nji, kikya yet [[A̱byin Fantswam|Fantswam]]. Ji̱ byia̱ shi a̱byin 1,384 km<sup>2</sup> hwa ma̱ng shi á̱niet 278,202 mami sa̱nsut 2006 ji.<ref>"[https://citypopulation.de/php/nigeria-admin.php?adm1id=NGA019 Kaduna State of Nigeria]". City Population.</ref> Zwunzwuo ta̱m tá̱m sot a̱byin ji ja yet 801.<ref>"[https://web.archive.org/web/20091007011423/http://www.nipost.gov.ng/PostCode.aspx Post Offices- with map of LGA]". NIPOST.</ref>
== Tung nzwa ==
Á̱kpa á̱niet a̱gwomna̱ti mali ka yet á̱nietkhap bya ba̱ khap nkyang lyiai nang a̱lulo, shyui ma̱ng shita a̱byin; ma̱ng yak nang swakpat, zuk ma̱ng swaat a̱cyuang a̱cyuang.<ref>"[https://www.britannica.com/place/Jemaa Jemaa, Nigeria]".</ref> A̱khwukhwop a̱kuu a̱byin a̱ghyang da̱ a̱vwuo lung a̱guza shyia̱ ma̱ a̱keang Godogodo.
== A̱ca̱cet á̱niet ==
<!---♦♦♦ Only add a person to this list if they already have their own article on the English Wikipedia ♦♦♦--->
<!---♦♦♦ Please keep the list in alphabetical order by LAST NAME ♦♦♦--->
* [[Joseph Bagobiri]], a̱kwak a̱son khwi
* [[Musa Di̱dam]], a̱tyuba̱ngtyok
* [[Joe El]], a̱tyubwom, a̱tyulyuut-a̱bwom
* [[Josiah Kantiyok]], consultant, a̱tyuba̱ngtyok
* [[Victor Moses]], a̱tyutsot a̱la̱utak
* [[Patrick Yakowa]], a̱khwukhwop gwomna Ka̱duna
* [[Luka Yusuf]], khwo a̱khwot a̱kwop
== Ya̱fang ==
<references/>
== A̱ka̱fwuop nta ==
*[https://nigeriazipcodes.com/5918/list-of-towns-and-villages-in-jemaa-lga/ List of Towns and Villages in Jema'a LGA] on Nigeria ZIP codes
*[https://web.archive.org/web/20191220124706/http://www.postcodes.ng/directory/states/kaduna/lgas/jemaa/ruralAreas Rural Areas in Jema'a L.G.A.] on Postcodes.NG
[[Sa:Susot a̱gwomna̱ti mali Naijeriya]]
[[Sa:Susot a̱gwomna̱ti mali Si̱tet Ka̱duna]]
[[Sa:Susot a̱gwomna̱ti mali]]
8k2nrbbzwyanyl64a6glkdugwq3z4nu
Jen
0
478
12317
5363
2022-05-21T04:48:35Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
'''Jen''' yet ya a̱son di̱ tak ti̱tak nswuan ma̱ng nyiá̱ ji̱ ku nyia̱ di̱ kyai nang á̱ si̱ mi̱n bwuok á̱ bai ma̱ng a̱nji bah, kyiak neet di̱n jen ji̱ ku swak a̱ni, ba̱ng si̱ tat a̱fwun, si̱ tat á̱zanson.<ref>[http://ahdictionary.com/word/search.html?q=time Time] (di̱n Shong). The American Heritage Dictionary of the English Language (jhyuk naai hu), 2011. "A nonspatial continuum in which events occur in apparently irreversible succession from the past through the present to the future."</ref>
==Ya̱fang==
<references/>
fbwmnq47gep7662ovgjqg9czj3oe1ye
Jenshyung
0
479
14294
13118
2022-06-13T10:16:58Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
Swang a̱lyiat '''jenshyung''' ji bye fa:
# [[Jenshyung (jen)]]
# [[Jenshyung (fam)]]
# [[Afrika Jenshyung]]
[[Sa:Ngwat nghai swáng a̱lyiat]]
ma5o64rvu12yrq16npbm8z85pchim71
Jenshyung (jen)
0
480
12318
5375
2022-05-21T04:48:45Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
'''Jenshyung''' yet jen ja ma̱ng mam ku doot neet mam-shyim (nang tswam 4 JK a̱ni) si̱ nat [[A̱tyetuk|a̱kyetuk]].
==Ya̱fang==
<references/>
453yxp1u4ciuz04te149xc5u7hvrls1
Jenshyung Afrika
0
481
5377
5376
2022-05-16T12:49:11Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[Afrika Jenshyung]]
sqx8sn0s7i11xg1cn388vzo18um4osx
Jhyen
0
482
12319
5389
2022-05-21T04:48:55Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
[[Fail:Numida meleagris -Serengeti National Park, Tanzania-8 (1).jpg|thumb|Jhyen a̱ byia̱ a̱dung/a̱kup a̱pyia̱ a̱ni (''Numida meleagris'')]]
'''Jhyen''' ji (á̱kpa: '''Jhyén''' ''ji'') yet a̱man kya mi̱ kyangbwak nyam ''Numididae'' hu mi̱ oda ''Galliformes'' wu.
==Ya̱fang==
<references/>
2uzkw3plv9nm814a4tbthuxpj5repyt
Jhyuo (a̱lyem)
0
483
14815
14814
2022-07-15T10:57:10Z
Kambai Akau
15
wikitext
text/x-wiki
'''Jhyuo''' (''Jhyuo'': Jju, ''[[A̱lyem Kpat|Kpat]]'': "Kaje" ku "Kache") ja yet a̱lyem [[A̱jhyuo]] ba mi̱ [[Si̱tet Ka̱duna]] di̱ fam a̱ka̱wa̱tyia̱ [[Naijeriya]]. Mi̱ di̱ a̱lyia̱ 1988, á̱ shyia̱ nang á̱niet ba̱ lyiat Jhyuo tat kpa̱mkpaan ma̱ng 300,000.<ref name="ethnologue">"[https://www.ethnologue.com/language/kaje Bajju]". Ethnologue.</ref> Si̱sak ma̱ng Blench (2008), Jhyo — zang ja byia̱ á̱niet lyiat a̱ swak a̱ni—ndi á ngyei tangka̱i [[Tyap (a̱lyem)|Tyap]] ghyang hwa a̱ni (shimba á̱niet ba̱ lyiat njii vwuon di̱ nwap).<ref name="Central Plateau languages">"[https://en.m.wikipedia.org/wiki/Central_Plateau_languagescite web Central Plateau languages]".</ref>
Jhyuo ji yet jhyiung ja di̱ lilyem [[A̱tak Ka̱duna]] hu.<ref name="ethnologue"/><ref>"[http://glottolog.org/resource/languoid/id/Bajju1238 Glottolog 3.0 - Bajju]" (di̱n Shong). glottolog.org.</ref>
==Yai==
[[A̱jhyuo]] ba lyiat Jhyuo ji̱ yet a̱lyem a̱son mba ka mi̱ [[Susot a̱gwomna̱ti mali Naijeriya|Susot A̱gwomna̱ti Mali]] [[Zangon Kataf]], [[Jemaa]], [[Kaciya]], [[Watyap]] ma̱ng [[Ka̱duna A̱tak]] á̱si̱ [[Si̱tet Ka̱duna]]. Á̱ bu lyiat jii mi̱ bibyin ku shyia̱ kpa̱mkpaan nang si̱ [[A̱tyap]], Fantswam, A̱gwoot, [[A̱da (á̱niet)|A̱daa]], A̱byin Á̱nietswaywan, ma̱ng a̱ka̱vwuo á̱ghyang na̱ byia̱ a̱meang ma̱ng a̱nka, nang a̱lyem a̱feang ke a̱tat a̱ni.
==La̱mba fang==
# A̱yring
# A̱hwa
# A̱tat
# A̱naai
# A̱pfwon
# A̱kitat
# A̱tiyring
# A̱ninai
# A̱kumbvuyring
# Swak
# Swak bu a̱yring
# Swak bu a̱hwa
# Swak bu a̱tat
# Swak bu a̱naai
# Swak bu a̱pfwon
# Swak bu a̱kitat
# Swak bu a̱tiyring
# Swak bu a̱ninai
# Swak bu a̱kumbvuyring
# Nswak nhwa
* 30. Nswak ntat
* 40. Nswak nnaai
* 50. Nswak npfwon
* 60. Nswak a̱kitat
* 70. Nswak a̱tiyring
* 80. Nswak a̱ninai
* 90. Nswak a̱kumbvuyring
* 100. Cyi jjyung
* 1,000. Cyikwop jjyung
==Bu nwuan==
* [[Fantswam (a̱balyem)|Fantswam]]
* [[Gwoot (a̱balyem)|Gwoot]]
* [[Sholyia̱ (a̱balyem)|Sholyia̱]]
* [[Takat (a̱balyem)|Takat]]
* [[Tyap (a̱lyem)|Tyap]]
* [[Tyia̱caat (a̱balyem)|Tyia̱caat]]
* [[Tyuku (a̱balyem)|Tyuku]]
==Ya̱fang==
<references/>
[[Sa:Lilyem A̱ka̱wa̱tyia̱ Pi̱lato]]
[[Sa:Lilyem Naijeriya]]
nqc4auyblj73asyzdfon9zgt7m0t2ak
Jinjok
0
484
5414
5413
2022-05-16T12:49:13Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[Ji̱njok]]
i79kom409aws7dzxh1froz6jetxu2tn
Jip
0
485
5416
5415
2022-05-16T12:49:13Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[Ji̱p]]
kfq8k4p30dww82dvo7wtj5h4csw80rz
Ji̱njok
0
486
12321
5431
2022-05-21T04:49:15Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
'''Ji̱njok''' yet kyayak hwa nang á̱ kap nang [[Kikyo|a̱kikyuo]] a̱ni, ba̱ shyia̱ ma̱ng sot á̱ga̱fi̱p Fabaceae.
[[Fail:Bean-lubia.jpg|thumb|A̱tyin ji̱njok]]
==Ya̱fang==
<references/>
crq9ocmp2t4yphcj13bmqrbzszf6nvh
Ji̱p
0
487
12322
5445
2022-05-21T04:49:25Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
[[Fail:Brown Quail.jpg|thumb|Ji̱p a̱sa̱khwot mbyin (''Synoicus ypsilophorus'')]]
'''Ji̱p''' yet tsuung a̱lyoot ja da̱ a̱di̱di̱t nce a̱ka̱man nang á̱ tung á̱ mat di̱ tak ti̱tak ''Galliformes'' hu a̱ni.
==Ya̱fang==
<references/>
e88g7633ojy8q55mnvv9joypxyl3001
Jumong (ce fim TV)
0
488
12323
5452
2022-05-21T04:49:35Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
'''''Jumong''''' (Kworiya: 삼한지-주몽 편; Hanja: 三韓志-朱蒙篇; RR: ''Samhanji-Jumong Pyeon''; ca̱caat "Kwambwat A̱han A̱tat hu: A̱gba̱ndang Zunzwuo Jumong") yet ce fim vwuomaat [[Kworiya A̱tak]] hwa tazwa nkhang gbangbang a̱ghyang nang á̱ ku tyai mi̱ MBC kyiak neet ma̱ a̱lyia̱ 2006 ba̱ng si̱ tat 2007 nang fim nang á̱ ku khap á̱ sak a̱ni ma̱nang vak a̱myim hu ncak ndyia̱ 45 neet nang á̱ ku kpaat nhu a̱ni. Di̱ ntsa hu, á̱ ku jhyi nhu di̱ nkyangza̱kwa 60 nia, a̱wot MBC si̱ ka ngaat nhu naat 81 mat si̱sak nang á̱niet cat nhu a̱ni.
==Ya̱fang==
<references/>
9uesxtvvvf6e9su841oboitydtlvguu
Kanai
0
489
14297
13084
2022-06-13T10:17:13Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
'''Kanai''' ([[A̱lyem Kpat|Kpat]]: Gora) yet di̱strik a̱ si̱ ka ngyet a̱lyoot a̱bakeang a̱ghyang mi̱ [[Susot a̱gwomna̱ti mali Naijeriya|Sot A̱gwomna̱ti Mali]] [[Zangon Katab]] a̱si̱ [[A̱tak Ka̱duna|a̱tak]] Si̱tet Ka̱duna, mi̱ Fam A̱ka̱wa̱tyia̱ a̱byin [[Naijeriya]]. Zunzwuo-ta̱m a̱vwuo ka yet 802139.
==Ya̱fang==
<references/>
[[Sa:Sot a̱gwomna̱ti mali Zangon Katab]]
mpphtykh2471t6dh68kai67ljava8j1
Kaswuo
0
490
12324
5475
2022-05-21T04:49:45Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
[[Fail:2008 LekkiMarket Lagos Nigeria 2349218847.jpg|thumb|Kaswuo Lekki, [[Legwot]], [[Naijeriya]]]]
'''Kaswuo''' yet a̱ka̱gbang, nang á̱niet tung á̱pyia̱mba da̱nian kwai ma̱ng lyiai nkyang, ma̱ng nyám ma̱ng nkyang njhyang.
==Ya̱fang==
<references/>
gtmr2tnr3scjfjyfot6g413mdz1evfg
Ka̱busale
0
491
5477
5476
2022-05-16T12:49:15Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[A̱ka̱bwusale]]
6gg4868pvk9ka3g6cx9oh4xdw3vqxop
Ka̱ciya
0
492
15914
15913
2022-08-14T18:08:22Z
Kambai Akau
15
wikitext
text/x-wiki
'''Ka̱ciya''' (Adara: Akhwee) Sot A̱gwomna̱ti Mali ja di̱ fam a̱tak [[Si̱tet Ka̱duna]], [[Naijeriya]].
==Ya̱fang==
<references/>
==A̱ka̱fwuop nta==
{{Commons category-inline|Kachia|Ka̱ciya}}
[[Category:Susot a̱gwomna̱ti mali Naijeriya]]
0ua7tvgoinux62re55fzt1zfw8yb78o
Ka̱duna
0
493
14298
13381
2022-06-13T10:17:19Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
{| class="wikitable" align=right border width="200"
| colspan="2" align=center|'''Ka̱duna'''
|-
| colspan="2" align=center|[[Fail:Lugard Hall, Kaduna. Parliamentary house of assembly Capital of North Region.jpg|thumb|300px|center]] <sup>Lugard Hall, a̱keang Ka̱duna. A̱li kpa cam a̱keangtung Fam A̱byin A̱za</sup>
|-
|}
'''Ka̱duna''' ja yet a̱keangtung [[A̱si̱tet Ka̱duna]] ka di̱ fam a̱za jenshyung a̱byin [[Naijeriya]] hu, [[A̱ghyui Ka̱duna|A̱zaghyui Ka̱duna]] ka. Ji̱ yet a̱ka̱wa̱tyia̱ a̱bwuang wa ma̱ng a̱gba̱ndang kwop a̱ka̱cyet mat a̱beam susot khap na, ma̱ng a̱yaaga̱sat kyangcung a̱byin ma̱ng vak nji ba. Shi á̱niet Ka̱duna hu ku yong kpa̱mkpaan ma̱ng 760,084 mami sa̱nsut Naijeriya a̱si̱ 2006 ji.
Ghan shi a̱gba̱ndang a̱keang hu kyiak neet da̱ a̱lyia̱ 2005 ku khwuk vak laai shi á̱kpa á̱niet hu nang á̱ ku tyan sak kpa̱mkpaan miliyon 1.3 a̱ni.
==Bwoi a̱lyoot==
Á̱ ku nyia̱ nyia̱ bwoi a̱lyoot swang a̱lyiat ''Ka̱duna'' ji ku neet ma kak byan swang a̱lyiat Kpat ji mat “tsáng”, ''Kaddani'', jaa da̱ a̱lyem Kpat ka.<ref>"[https://www.britannica.com/place/Kaduna-Nigeria Kaduna {{!}} Location, History, & Facts]" (di̱n Shong). Encyclopedia Britannica.</ref><ref name=":0">"[https://citiesintransition.net/fct-cities/kaduna/ Kaduna|website=The Forum for Cities in Transition]" (di̱n Shong).</ref> Kwok ghyang a̱lyoot ka si̱ nyia̱ nyia̱ ka̱ bwuo bi̱n ma̱ng swang a̱lyiat/a̱lyoot [[A̱lyem Mangfwuo|Mangfwuo]] ji/ka,'Odna', ku fa 'a̱ghyui' a̱ni.<ref>Shekwo, Joseph Amali (1979). "[https://openlibrary.org/books/OL2795890M/Fundamentals_of_the_Gbagyi_language Fundamentals of the Gbagyi Language]" (di̱n Shong). Centre for Adult Education and Extension Services. Zariya: Ahmadu Bello University. OCLC: 11043184.</ref>
==Nkhang gbangbang==
Á̱ kpaat a̱keang Ka̱duna ka mbwak á̱niet tyok ta̱wap [[Tyok-shan Bi̱ri̱ti̱n|Bi̱ri̱ti̱n]] bibya ma̱ a̱lyia̱ 1900.<ref>Toyin Falola, Ann Genova, Matthew M. Heaton, ''Historical Dictionary of Nigeria'', Rowman & Littlefield, USA, 2018, p. 217</ref> Ka̱ si̱ yet a̱keangtung Fam-a̱byin A̱za hu ma̱ a̱lyia̱ 1917,<ref>Fletcher, Banister; Cruickshank, Dan (1996). Sir Banister Fletcher's a History of Architecture [Africa]." Architectural Press. ISBN: 0-7506-2267-9. P. 1466.</ref> a̱wot ka̱ si̱ kin swan a̱nia ba̱ng si̱ tat a̱lyia̱ 1967. Gwomna a̱son Bi̱ri̱ti̱n a̱si̱ A̱za Naijeriya wu, Sir Frederick Lugard, ku khai tyan a̱fwun ji mat shyia̱ kpa̱mkpaan nji ma̱ng Lang Kyangcung a̱byin Legwot-Ka̱no hu hwa.<ref name=":1">"[https://www.britannica.com/place/Kaduna-Nigeria Kaduna]". Encyclopædia Britannica.</ref>
==Za̱kwa wun==
<div style="width:100%;">
{{Weather box
|location = Kaduna
|metric first = Yes
|single line = Yes
|Jan record high C = 37.8
|Feb record high C = 37.8
|Mar record high C = 38.3
|Apr record high C = 38.3
|May record high C = 37.8
|Jun record high C = 34.4
|Jul record high C = 32.2
|Aug record high C = 31.7
|Sep record high C = 32.2
|Oct record high C = 34.4
|Nov record high C = 35.6
|Dec record high C = 35.6
|year record high C = 38.3
|Jan high C = 31.7
|Feb high C = 33.4
|Mar high C = 35.0
|Apr high C = 34.2
|May high C = 31.7
|Jun high C = 29.5
|Jul high C = 27.5
|Aug high C = 27.0
|Sep high C = 29.0
|Oct high C = 31.1
|Nov high C = 32.7
|Dec high C = 31.8
|year high C = 31.2
|Jan mean C = 23.4
|Feb mean C = 25.0
|Mar mean C = 27.7
|Apr mean C = 27.9
|May mean C = 26.3
|Jun mean C = 24.6
|Jul mean C = 23.4
|Aug mean C = 23.2
|Sep mean C = 24.0
|Oct mean C = 24.9
|Nov mean C = 24.2
|Dec mean C = 23.0
|year mean C = 24.8
|Jan low C = 15.1
|Feb low C = 16.7
|Mar low C = 20.4
|Apr low C = 21.6
|May low C = 20.9
|Jun low C = 19.8
|Jul low C = 19.4
|Aug low C = 19.3
|Sep low C = 19.1
|Oct low C = 18.7
|Nov low C = 15.6
|Dec low C = 14.3
|year low C = 18.4
|Jan record low C = 9.4
|Feb record low C = 8.9
|Mar record low C = 15.0
|Apr record low C = 14.7
|May record low C = 16.7
|Jun record low C = 15.6
|Jul record low C = 16.7
|Aug record low C = 16.7
|Sep record low C = 15.6
|Oct record low C = 13.3
|Nov record low C = 10.0
|Dec record low C = 9.4
|year record low C = 8.9
|precipitation colour = green
|Jan precipitation mm = 0.5
|Feb precipitation mm = 2
|Mar precipitation mm = 13
|Apr precipitation mm = 66
|May precipitation mm = 157
|Jun precipitation mm = 178
|Jul precipitation mm = 206
|Aug precipitation mm = 290
|Sep precipitation mm = 277
|Oct precipitation mm = 86
|Nov precipitation mm = 5
|Dec precipitation mm = 0
|year precipitation mm = 1280
|unit precipitation days = 0.3 mm
|Jan precipitation days = 0
|Feb precipitation days = 0
|Mar precipitation days = 2
|Apr precipitation days = 5
|May precipitation days = 13
|Jun precipitation days = 16
|Jul precipitation days = 18
|Aug precipitation days = 22
|Sep precipitation days = 21
|Oct precipitation days = 8
|Nov precipitation days = 0
|Dec precipitation days = 0
|year precipitation days = 105
|Jan humidity = 26
|Feb humidity = 24
|Mar humidity = 37
|Apr humidity = 57
|May humidity = 73
|Jun humidity = 82
|Jul humidity = 86
|Aug humidity = 88
|Sep humidity = 85
|Oct humidity = 74
|Nov humidity = 48
|Dec humidity = 31
|year humidity = 59
|Jan sun = 279.0
|Feb sun = 262.7
|Mar sun = 266.6
|Apr sun = 243.0
|May sun = 241.8
|Jun sun = 216.0
|Jul sun = 155.0
|Aug sun = 120.9
|Sep sun = 171.0
|Oct sun = 248.0
|Nov sun = 285.0
|Dec sun = 294.5
|year sun = 2783.5
|Jand sun = 9.0
|Febd sun = 9.3
|Mard sun = 8.6
|Aprd sun = 8.1
|Mayd sun = 7.8
|Jund sun = 7.2
|Juld sun = 5.0
|Augd sun = 3.9
|Sepd sun = 5.7
|Octd sun = 8.0
|Novd sun = 9.5
|Decd sun = 9.5
|yeard sun = 7.6
|source 1 = [[Deutscher Wetterdienst]]<ref name = DWD>"[www.dwd.de/DWD/klima/beratung/ak/ak_650190_kt.pdf Klimatafel von Kaduna / Nigeria. Baseline climate means (1961-1990) from stations all over the world]" (di̱n Jamut). Deutscher Wetterdienst.</ref>
}}</div>
== Tat-a̱pyia̱ ==
Ma̱ a̱di̱di̱t fwuong nyinyang yei Ka̱duna "''A̱ka̱wa̱tyia̱ Myiam''", mat shi a̱ka̱vwuomyiam njii ma̱ a̱byin ka.
A̱ca̱cet a̱ka̱vwuomyiam mami A̱gba̱ndang A̱keang Ka̱duna wu nia yet:
*[[Yunivasti A̱si̱tet Ka̱duna]]
*[[Nigerian Defence Academy]] (NDA), Ka̱duna
*[[Yunivasti Greenfield]] Ka̱duna
*[[National Open University of Nigeria]], Tyan Myiam Ka̱duna
* Air Force Institute of Technology, Ka̱duna
*[[National Teachers Institute]] (NTI), Ka̱duna
* School of Midwifery Ka̱duna
*[[Kaduna Polytechnic]] (1968), Ka̱duna
*[[National board for Islamic and Arabic studies]]
*Kaduna Business School
*[[Dialogue Institute kaduna]]
*Institute of Ophthalmology, National Eye Centre, Ka̱duna.
*National board for Arabic and Islamic studies
*National center for nomadic education
==A̱ca̱cet á̱nietnswat==
*[[Umar Farouk Abdulmutallab]], "underwear bomber" wu a̱nyan wa á̱ kyiak gu yet a̱nyiung mami á̱niet shuut á̱ghyang ba̱ ku ta̱wap [[Northwest flight 253]] hu mi̱ Zwat swak 2009, a̱ ku laai shi a si̱ bu bwuok a̱ bai a̱gba̱ndang a̱keang ka di̱n jen fwung.<ref>Nossiter, Adam. "[https://www.nytimes.com/2010/01/17/world/africa/17abdulmutallab.html Lonely Trek to Radicalism for Terror Suspect]." The New York Times.</ref>
* [[Tijani Babangida]], footballer who played [[Winger (association football)|winger]] ma̱ng Ajax
*[[Celestine Babayaro]], a̱tsot a̱la̱utak a̱nyan wa ku labeang ba̱t di̱ tsot mami [[Premier League]] hu
*[[Michael Eneramo]], a̱tsot a̱la̱utak
*[[Fiona Fullerton]], a̱tyumaat a̱byin Bi̱ri̱ti̱n ma̱ng [[Bond girl]] ma̱gbangbang.
*[[Zama̱ni Lyekhwot]], a̱gba̱ndang-a̱yin a̱byin
*[[Ahmed Mohammed Makarfi]], a̱kwaifwuo
*[[Mohammed Namadi Sambo]], a̱kwaifwuo
*[[Shehu Sani]], a̱kwaifwuo
*[[Uba Sani]], a̱kwaifwuo
*[[Leke James]],
*[[Dahiru Sadi]], a̱tsot-a̱la̱utak
*[[Adam A. Zango]], [[Kannywood]] a̱tyumaat, a̱tyubwom ma̱ng a̱tyusong.
*[[Talib Zanna]] (born 1990), a̱tsot a̱la̱u-a̱ceang [[Premier League A̱la̱u-a̱ceang Isi̱rela]]
== Bu nwuan ==
* [[Railway stations in Nigeria]]
== Ya̱fang ==
<references/>
== A̱ka̱fwuop nta ==
[[Sa:Ka̱duna]]
[[Sa:A̱kakeangtung a̱yaasi̱tet Naijeriya]]
[[Sa:A̱ka̱vwuo na̱ byia̱ á̱niet ma̱ ba̱t mami Si̱tet Ka̱duna]]
[[Sa:A̱ca̱cet a̱ka̱keang Naijeriya]]
[[Sa:Naijeriya]]
kl2eqqkyc5z5dp1m0ohzyld12zxlt1x
Ka̱mpala (a̱keang)
0
494
14299
13382
2022-06-13T10:17:23Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
[[Fail:Kampalamontage.png|thumb|Di̱ nyia̱ fi̱p ma̱ng cong a̱gogo neet tazwa ka: Nwuan ''panorama'' a̱ka̱wa̱tyia̱ Ka̱mpara, Mali Nwuat Za̱nang Bahá'i, Yunivasti Makerere, nwuan ''panorama'' [[A̱gba̱ndang Jok Viktoriya]], A̱li Á̱nietnta̱m Ka̱mpara, A̱likpaa̱pyia̱ A̱byin Gaddafi]]
A̱keang '''Ka̱mpala''' kya yet a̱keangtung ma̱ng a̱gba̱ndang a̱keang a̱byin [[Yuganda]] a̱ swak ma̱ng shi a̱ni. A̱tsak a̱keang wu byia̱ shi á̱niet ku shyia̱ kpa̱mkpaan ma̱ng 1,680,000 ma̱ a̱lyia̱ 2019, a̱wot á̱ si̱ ka̱u nka di̱ nkap kwai-nfwuo-á̱niet nfwuon a̱ni: Ka̱u A̱ka̱wa̱tyia̱ Ka̱mpala, Ka̱u Kawempe, Ka̱u Makindye, Ka̱u Nakawa, ma̱ng Ka̱u Rubaga.
==Ya̱fang==
<references/>
== A̱ka̱fwuop nta ==
* [http://www.kcca.go.ug/ A̱ma̱ntei A̱gwomna̱ti]
* Musinguzi, Bamuturaki (2016-01-29). [https://www.theeastafrican.co.ke/magazine/Kampala-now-mapping-its-historical-buildings/434746-3053984-e1i9pz/index.html Kampala now mapping its historical buildings] (di̱n Shong). The East African.
* [https://www.google.com/maps/place/Kampala,+Uganda/@0.3140103,32.5289131,12z/data=!3m1!4b1!4m5!3m4!1s0x177dbc0f9d74b39b:0x4538903dd96b6fec!8m2!3d0.3475964!4d32.5825197 Kampala] Google Maps. cs2.
[[Sa:Ka̱mpala (a̱keang)| ]]
[[Sa:A̱ka̱keangtung Afrika]]
[[Sa:A̱ka̱keang mami A̱gba̱ndang A̱niak A̱ngam wu]]
[[Sa:A̱ka̱vwuo na̱ byia̱ á̱niet ba̱t di̱ Fam-a̱byin A̱ka̱wa̱tyia̱, Yuganda]]
[[Sa:A̱ka̱vwuo na̱ byia̱ á̱niet ba̱t da̱ A̱gba̱ndang Jok Viktoriya]]
25qsy9vm15ppep46xpj3yckw3uupwnr
Ka̱na̱da
0
495
15023
15022
2022-07-17T11:07:01Z
Kambai Akau
15
Databox.
wikitext
text/x-wiki
{{Databox|item=Q16}}
A̱byin '''Ka̱na̱da''' (Shong: Canada), yet a̱byin kya di̱ vam-a̱byin [[Amerika A̱za]]. Ka̱ byia̱ a̱yaaprovin ma̱ng a̱yaateritori ba̱ ngaat neet [[A̱gba̱ndang Kyai A̱sa̱khwot Ati̱lantik]] wu tat [[A̱gba̱ndang Kyai A̱sa̱khwot Pasi̱fi̱k]] wu, a̱wot ka̱ si̱ kin ngaat a̱za tat [[A̱gba̱ndang Kyai A̱sa̱khwot Atik]] wu. Ma̱ a̱gba̱mgbam, a̱byin ka byia̱ shi kyai a̱byin kilomita a̱ma̱ntaa̱naai miliyon 9.98 (met a̱ma̱ntaa̱naai miliyon 3.85) hwa, ka̱ si̱ bai yet a̱byin a̱feang ka̱ swak ma̱ng shi a̱ni mami swanta hu di̱n vak shi kyai a̱byin. Gak fam a̱tak ma̱ng jenshyung nka hu ma̱ng [[Muná̱pyia̱ Sí̱tet]], ku ngaat kilomita 8,891 (met 5,525) a̱ni, huhwa yet gak a̱byin tsi̱tsak bibyin nfeang ku swak ma̱ng shi a̱swap mi̱ swanta hu. A̱keangtung a̱byin Ka̱na̱da ka, kikya yet Ottawa, a̱wot susot metropolitan tsat nka ji, ji̱ja yet Toronto, Montreal, ma̱ng Vancouver.
==Ya̱fang==
<references/>
{{Template:Bibyin Amerika A̱za}}
[[Sa:Bibyin_swanta]]
[[Sa:Bibyin_Amerika]]
[[Sa:Bibyin_Amerika_A̱za]]
go08n34sd1bhc2yxmmh496knona6fas
Ka̱na̱u
0
496
14302
13384
2022-06-13T10:17:33Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
[[Fail:Kanogate.jpg|thumb|Gidan Rumfa/A̱na̱nwuai Magwakpat]]
A̱keang '''Ka̱na̱u''' (Ajami: كانو) yet a̱gba̱ndang a̱keang wa di̱ fam a̱za [[Naijeriya]] ma̱ng a̱keangtung [[Si̱tet Ka̱na̱u]].<ref>[https://www.britannica.com/place/Kano-state-Nigeria Kano {{!}} state, Nigeria] (di̱n Shong). Encyclopedia Britannica.</ref> Kikya yet a̱gba̱ndang a̱keang ma̱ng shi kyai ku swak ma̱ng shi a̱feang hu mami Naijeriya a̱ma̱lyim a̱keang [[Legwot]], ma̱ng si̱ ku swak á̱niet a̱byin miliyon a̱naai ba̱ swat mami kilomita a̱ma̱ntanaai 449 (met a̱ma̱ntanaai 173); ka̱ shyia̱ mi̱ Sahet ji ja, di̱ fam a̱tak Sa̱hara hu, Ka̱na̱u si̱ yet a̱tsatsak nvak a̱bwuang a̱ma̱nyi Sa̱hara wu wa. A̱gba̱ndang a̱keang wu ku yet a̱vwuonswat a̱bwuang kya ma̱ng á̱nietbishyi ndyia̱ cyikwop ma̱ a̱di̱di̱t. Kikya yet a̱byin taada lang á̱gwam Dabo ka zang hwa kyiak neet di̱ sa̱ncuri 19 ji ku ba̱ng tyok nang á̱gwamkpaa̱pyia̱ tazwa a̱keang-si̱tet ka. Komiti Tyokkpaa̱pyia̱ Ka̱na̱u ji ja yet kuntyin taada hu di̱ yong huni mami a̱gi̱gak a̱gba̱ndang a̱keang Ka̱na̱u wu, a̱wot a̱tafa cet A̱gwomna̱ti Si̱tet Ka̱na̱u hu.<ref>[https://www.britannica.com/place/Kano-historical-kingdom-Nigeria Kano {{!}} historical kingdom, Nigeria] (di̱n Shong). Encyclopedia Britannica.</ref>
==Ya̱fang==
<references/>
[[Sa:Ka̱na̱u]]
[[Sa:A̱kakeangtung a̱yaasi̱tet Naijeriya]]
[[Sa:A̱ka̱vwuo na̱ byia̱ á̱niet ma̱ ba̱t mami Si̱tet Ka̱na̱u]]
[[Sa:A̱ca̱cet a̱ka̱keang Naijeriya]]
[[Sa:Naijeriya]]
1tugjiamuvwkioifhpvgygxg53otp60
Ka̱ta̱r
0
497
14303
13385
2022-06-13T10:17:59Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
{| class="wikitable" align=right border width="200"
| colspan="2" align=center|'''Si̱tet Ka̱ta̱r'''<br> : دولة قطر, ''Dawlat Qaṭar'' (La̱ra̱ba)
|-
| colspan="2" align=center|[[Fail:QAT orthographic.svg|thumb|300px|center]] <sub>A̱vwuo ka nang a̱byin Ka̱ta̱r (a̱tityip a̱sa̱khwot kikyo) nshyia̱ a̱ni ma̱ng shi nka hu da̱ A̱fa̱fap-a̱byin A̱rabiya hu</sub>
|-
| [[Fail:Flag of Qatar.svg|thumb|Tyiang a̱toot shi a̱byin Ka̱ta̱r]]
|-
| [[Fail:Emblem of Qatar.svg|thumb|A̱lama a̱byin Ka̱ta̱r]]
|-
|}
A̱byin '''Ka̱ta̱r''' (La̱ra̱ba: قطر, ''Qaṭar'' /ˈqatˤar/; yei a̱mali: /ˈɡɪtˤɑr/; Shong: Qatar /ˈkætɑːr/, /ˈkɑːtɑːr/, /ˈkɑːtər/ ku /kəˈtɑːr/), á̱ lyen ma̱ng a̱lyoot a̱gwomna̱ti ka nang '''Si̱tet Ka̱ta̱r''' ji (La̱ra̱ba: دولة قطر, ''Dawlat Qaṭar''; Shong: State of Qatar) a̱ni, yet a̱byin kya di̱ fam-a̱byin Jenshyung A̱siya, ma̱ a̱da̱dei A̱fa̱fap-a̱byin Ka̱ta̱r hu ku shyia̱ di̱ khwong kyai a̱sa̱khwot fam a̱za-jenshyung A̱fa̱fap-a̱byin A̱rabiya hu. Gak a̱byin ma̱nyin nang ka̱ byia̱ a̱ni yet ma̱ng a̱byin [[Sa̱udi A̱rabiya]] kya nang ba̱ shyia̱ Komiti Tung Mbwak Gof ji dundung di̱ fam a̱tak hu, a̱wot [[A̱ngam A̱sa̱khwot Parsi]] wu wa si̱ kaat á̱kum nkap a̱byin ka. A̱ngam A̱sa̱khwot Bahara̱yin wu, a̱na̱nwuai A̱ngam A̱sa̱khwot Parsi ka, si̱ ghai a̱byin Ka̱ta̱r ma̱ng a̱byin hyia̱k ka nang á̱ ngyei Bahara̱yin a̱ni.
==Ya̱fang==
<references/>
{{Template:Bibyin A̱siya}}
[[Sa:Bibyin_swanta]]
[[Sa:Bibyin_A̱siya]]
[[Sa:Bibyin_Jenshyung_A̱siya]]
lixo2fz9gjlab836izrg7ndxfamwt60
Ka̱uru
0
498
15928
15927
2022-08-14T20:12:25Z
Kambai Akau
15
/* A̱ka̱fwuop nta */
wikitext
text/x-wiki
Ka̱uru yed A̱dadai A̱vwuo tung A̱gwapnati jyung ja A̱tak Si̱tet Kaduna ma̱ bin Naijeriya. A̱vwuo ka ni kwup a̱bin ka̱ bai kilometā 3.186 km2. A̱ngyei a̱gba̱ndang a̱keang tung a̱niet ka Ka̱uru. Numba a̱vwuo si̱ yed 811.
==Ya̱fang==
<references/>
==A̱ka̱fwuop nta==
{{Commons category-inline|Kauru|Ka̱uru}}
[[Category:Susot a̱gwomna̱ti mali Naijeriya]]
s3u8nkx6szx7i3h5m7dbnujsbtex42h
Ka̱za̱nki
0
499
5593
5592
2022-05-16T12:49:19Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[A̱ka̱za̱nki]]
h6fwrmr60nfmov62jpm5y41vh3z9f6z
Kemerun
0
500
14305
13762
2022-06-13T10:18:04Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
{{Country
|name = Ri̱pobi̱lik Kemerun<br>République du Cameroun (Fi̱ransa)<br>Republic of Cameroon (Shong)
|flag = Flag of Cameroon.svg
|coa = Coat of arms of Cameroon.svg
|image = Cameroon (orthographic projection).svg
|capital = Yawunde
|area = 475,442
|population = 26,545,864
|year = 2020
}}
'''A̱bwom a̱byin''': "O Cameroon, Cradle of Our Forefathers", "Ô Cameroun, Berceau de nos Ancêtres" ("Nwan Kemerun, A̱gbaat-mbyin A̱yaatyia̱-a̱khwop Nzi̱t Ba")<br>[[File:United States Navy Band - Chant de Ralliement.ogg|center]]
A̱byin '''Kemerun''' ([[Shong (a̱lyem)|Shong]]: Cameroon /ˌkæməˈruːn/; Fi̱ransa: Cameroun), á̱ lyen ma̱ng a̱lyoot a̱gwomna̱ti nka nang '''Ri̱pobi̱lik Kemerun''' wu (Shong: Republic of Cameroon; Fi̱ransa: République du Cameroun), yet a̱byin kya di̱ fam a̱byin [[Jenshyung Afrika|jenshyung]]-a̱ka̱wa̱tyia̱ Afrika. Ka̱ byia̱ a̱gi̱gak ma̱ng [[Naijeriya]] di̱ fam jenshyung hu ma̱ng a̱za; [[Caad]] di̱ fam a̱za-a̱tyin hu; Ri̱pobi̱lik A̱ka̱wa̱tyia̱ Afrika wu di̱ fam a̱tyin hu; ma̱ng Gini A̱kwa̱toriya, Gabon ma̱ng Ri̱pobi̱lik Konggo wu di̱ fam a̱tak hu. Lang khwong kyai a̱sa̱khwot nka hu myian da̱ A̱ngam A̱sa̱khwot Byafra hu ku yet kap [[A̱ngam A̱sa̱khwot Gini]] hu hwa ma̱ng [[Kyai A̱sa̱khwot Ati̱lantik]] hu. Di̱n jen jhyang, á̱ ni̱ nkhap a̱byin ka sak ma̱ng bibyin fam a̱byin [[Jenshyung Afrika]] hu a̱wot di̱n jen jhyang ma̱ng si̱ fam a̱byin A̱ka̱wa̱tyia̱ Afrika hu, mat a̱ca̱caat nswat nka wu da̱ a̱yaaga̱sat nvak tsi̱tsak Jenshyung ma̱ng A̱ka̱wa̱tyia̱ Afrika a̱ni. A̱byin Kemerun nyia̱ kpa̱mkpaan miliyon 25 ma̱ng shi á̱niet. Á̱ lyiat di̱ lilyem mbyin 250 ma̱ a̱byin ka.<ref>"[https://www.ethnologue.com/country/CM Cameroon]" (di̱n Shong). Ethnologue</ref>
[[File:Cameroon-Yaounde01.jpg|thumb|A̱gba̱ndang a̱keang Yawunde]]
==Ya̱fang==
<references/>
==A̱ka̱fwuop nta==
{{Bibyin Afrika}}
[[Sa:Bibyin_swanta]]
[[Sa:Bibyin_Afrika]]
[[Sa:Bibyin_A̱ka̱wa̱tyia̱_Afrika]]
n3o58ng0erjfg7je94ovliseyfufvr1
Kenya
0
501
14306
13772
2022-06-13T10:18:09Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
{{Country
|name = ''Ri̱pobi̱lik Kenya''<br><small>Jamhuri ya Kenya (Swahili)</small>
|flag = Flag of Kenya.svg
|coa = Coat of arms of Kenya (Official).svg
|image = Kenya (orthographic projection).svg
|capital = [[Nairobi]]
|area = 580,367
|population = 54,985,698
|year = 2021
}}
'''A̱bwom a̱byin''': "Ee Mungu Nguvu Yetu"<br />("Nwan A̱gwaza Kuzang Kyang")<br /><div style="display:inline-block;margin-top:0.4em;">[[Fail:National anthem of Kenya, performed by the United States Navy Band.wav|center]]</div>
A̱byin '''Kenya''', á̱ lyen ma̱ng a̱lyoot a̱gwomna̱ti ka nang '''Ri̱pobi̱lik Kenya''' wu (Swahili: Jamhuri ya Kenya) a̱ni, yet a̱byin kya di̱ fam A̱tyin Afrika. Ma̱ng shi kyai a̱byin kilomita a̱ma̱ntanaai 580,367 (met a̱ma̱ntanaai 224,081), a̱byin Kenya kya yet a̱byin ka̱ shi 48 mi̱ swanta hu di̱ fam shi kyai a̱byin. Ma̱ng shi á̱niet ku swak miliyon 47.6 mi̱ fa̱ng á̱niet (sa̱nsut) 2019 hu,<ref>[https://web.archive.org/web/20210416222406/https://kenya.opendataforafrica.org/msdpnbc/2019-kenya-population-and-housing-census-population-by-county-and-sub-county?county=1001880-limuru 2019 KENYA POPULATION AND HOUSING CENSUS - POPULATION BY COUNTY AND SUB COUNTY - Kenya Data Portal] (di̱n Shong). kenya.opendataforafrica.org.</ref> A̱byin Kenya kya byia̱ shi á̱niet 29 mi̱ swanta hu. A̱keangtung ma̱ng a̱gba̱ndang a̱keang a̱ swak ma̱ng shi wu wa yet [[Nairobi]], ma̱nang a̱gba̱ndang a̱keang a̱ swak ma̱ng yet a̱khwukhwop wu ma̱ng a̱keangtung ntsa ka si̱ yet a̱keang Mombasa ka̱ shyia̱ di̱ khwong kyai a̱sa̱khwot a̱ni.
==Ya̱fang==
<references/>
{{Bibyin Afrika}}
[[Sa:Bibyin swanta]]
[[Sa:Bibyin Afrika]]
[[Sa:Bibyin A̱tyin Afrika]]
pds2u2is3rq3d2gdrd9efcjllzzmtpl
Khaan
0
502
12627
12626
2022-05-22T08:34:00Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
[[Fail:Festival Ringing Cedars 2014 June 22 Димон 05.jpg|thumb|left|Á̱ nwuan khaan da̱ a̱ka̱nyiung ma̱ng a̱khwukhwop á̱niet bya]]
'''Khaan''' yet a̱sai pyia̱ hwa ku laai ndung ma̱ng a̱dyundyung pyia̱ a̱pyia̱ a̱tyubishyi a̱ni.
Khaan ni̱ doot ku laai shonshyon kya ku ci̱t a̱pyia̱ a̱tyubishyi naat ma̱ng kwop nggu hu. Khaan yet meang kwop ja. A̱wot ka fi̱ng a̱yin si̱ byia̱ nhu, á̱ ni̱ nyia̱ da̱ nggu a̱ na yet a̱tyu nzwa wa .
==Ya̱fang==
<references/>
2oe72y0rbfwnhhokt7tlsdoejayszgk
Khap
0
503
12331
5655
2022-05-21T04:50:55Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
[[Fail:Unload wheat by the combine Claas Lexion 584.jpg|thumb|550px|Á̱ cak a̱li̱ka̱ma ma̱ng "ma̱to cak a̱mun" mbeang ti̱rakto ma̱ng a̱junjung ma̱to kpa̱t nkyang]]
'''Khap''' yet naat mbwuot go á̱ga̱fi̱p ma̱ng ba̱ng nkyangzwa (nyám mali).<ref name="Office1999">[https://web.archive.org/web/20110722061757/http://books.google.com/books?id=GtBa6XIW_aQC Safety and health in agriculture] (di̱n Shong). P. 77. ISBN 978-92-2-111517-5. International Labour Organization (1999) "''defined agriculture as 'all forms of activities connected with growing, harvesting and primary processing of all types of crops, with the breeding, raising and caring for animals, and with tending gardens and nurseries'."''</ref>
==Ya̱fang==
<references/>
8wbyi7wfgtpa5zn0k14nb95xm1n278c
Khap-a̱won
0
504
5666
5665
2022-05-16T12:49:22Z
Jon Harald Søby
8
10 revisions imported
wikitext
text/x-wiki
'''Khap-a̱won''' yet khap ha nang a̱ nyia̱ ka̱ za tyiak. A̱ ni tsei a̱bin ka sa̱kwot ma̱ng ca̱n nyia. A̱ ni kwak a sa̱kwot na ma̱ng jenereto kwak a̱sa̱kwot.
A̱tankei khaap a̱ni shyia̱ ma̱ kakeang ba shyiat za nciring a̱ni ba a̱wot ba si̱ byia̱ cica̱n ku kaghyui.
==Ya̱fang==
<references/>
cuuvalrjyfcy3054ha1p7foht3v0wk1
Khwikpaa̱pyia̱
0
505
15197
15196
2022-07-17T18:17:07Z
Kambai Akau
15
wikitext
text/x-wiki
{{Databox|item=Q432}}
'''Khwikpaa̱pyia̱''' ku '''Khwikpaa̱kpeang''' (La̱ra̱ba: الإسلام, di̱ lyuut Rom: al-’Islām, /ɪsˈlaːm/ "neap a̱pyia̱ ma̱ A̱gwaza") yet khwi nwap Ibrahim ghyang hwa nang á̱ nwuak a̱cucuk da̱ A̱gwaza a̱nyiung a̱ni a̱wot á̱ bu tyiet nyia̱ Muwamet (ku Muhammad) yet a̱ta̱m A̱gwaza (''Allah'') wa a̱ni. Huhwa yet a̱dini swanta a̱ yet a̱feang ma̱ng shi á̱nietkhwi ba̱ tat biliyon 1.9, ku %24.9 a̱mgba̱m á̱nietbishyi swanta ba a̱ni, nang á̱ ngyei A̱musulumi ku á̱nietkpaa̱pyia̱ ba a̱ni.
==Ya̱fang==
<references/>
[[Sa:Khwi]]
qpithprmxjtuktu4lvhxkhyap5jqb52
Khwikristi
0
506
15664
15663
2022-08-10T16:45:00Z
Praxidicae
232
Reverted edits by [[Special:Contributions/Valtino44|Valtino44]] ([[User talk:Valtino44|talk]]) to last revision by [[User:Kambai Akau|Kambai Akau]]
wikitext
text/x-wiki
{{Databox|item=Q5043}}
'''Khwikristi''' hu yet khwi ma̱ng nwuak a̱cucuk ma̱ng A̱gwaza a̱nyiung ku ku neet mi̱n kwai Ibrahim ja a̱ni, ku si̱ byia̱ a̱tyin mi̱ shyicet mbeang tyiet [[Yesu]] Naza̱ret.
==Ya̱fang==
<references/>
[[Sa:Khwikristi]]
g0v4thvu8aasqpmjurdzgs57n62vokt
Khwiyahuda
0
507
12334
5697
2022-05-21T04:51:25Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
[[Fail:judaica.jpg|thumb|Judaika (neet di̱ fam a̱za hu nang cong a̱gogo a̱ni): a̱yaaka̱ndi̱r Shabbat, a̱kashyi kwi mbwak, Khumash ma̱ng Tanakh, kyangta̱fang Torah, shofar a mbeang etrog.]]
'''Khwiyahuda''' (Nwap A̱biru: יַהֲדוּת, ''Yahadut''; a̱tyin ka ghwut swang a̱lyiat A̱biru ji יְהוּדָה, Yehudah, "Judah", di̱n vak Helen Ἰουδαϊσμός ''Ioudaismos''; swang a̱lyiat a̱ja a̱pyia̱nji ku neet a̱lyem Anglo-Latin kya c. 1400) shyia̱ a̱tsan di̱ A̱biru. Kwi a̱hwa yet si̱ A̱gwaza Nyiung ha. Mman A̱biru á̱ bu ngyei Mman [[Isi̱rela]] a̱ni, bibya á̱ lyen mba ma̱ng khwi huni. Khwi huni mbeang lyen swanta hu ma̱ng taada Mman Yahuda.
1pkf6k7jbwirmhiwypgj279imycb563
Kikyo
0
508
12335
5707
2022-05-21T04:51:35Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
'''Kikyo''' (ka̱nang ku shi á̱kpa, '''A̱kikyo''') nkwon huhwa beang nwuat a̱tyin nkwon ka ka̱ nok a̱tityin ba.
[[Fail:Lisc lipy.jpg|thumb|Kikyo]]
==Ya̱fang==
<references/>
c6k7h8ujow6whb6nauxquwbatre2cou
Kim Soo-hyun
0
509
15140
15138
2022-07-17T16:02:03Z
Kambai Akau
15
wikitext
text/x-wiki
{{Databox|item=Q496491}}
'''Kim Soo-hyun''' (Kworiya: 김수현/金秀賢, byin a̱tuk mam 16 Zwat Sweang 1988) yet a̱tyunkhang Telvishon [[Kworiya A̱tak]] wa.<ref>[http://news.joins.com/article/19626925 1위 지킨 엑소, 단숨에 정상권 오른 유아인·혜리]</ref><ref>[https://www.forbes.com/sites/carolinehoward/2016/02/24/g-e-m-angelababy-soo-hyun-kim-and-the-actors-and-athletes-of-30-under-30-asia/#669e37f1455b G.E.M., Angelababy, Soo-hyun Kim And The Actors And Athletes Of 30 Under 30 Asia]</ref>
== Ya̱fang ==
<references/>
== A̱ka̱fwuop nta ==
*[https://m.imdb.com/name/nm4633543/ IMDb]
[[Category:Byin 1988]]
[[Category:A̱kworiya]]
gaavrlrs4cb1ohcs9llvmox1s9z10kp
Kinshasa
0
510
12270
5731
2022-05-20T22:32:07Z
Kambai Akau
15
wikitext
text/x-wiki
[[Fail:Vue Kinshasa.jpg|thumb|Nwuan lang kyai tswazwa a̱keang Kinshasa]]
'''Kinshasa''' wa yet a̱keangtung ma̱ng a̱gba̱ndang a̱tyaat wu ma̱ng Ri̱pobi̱lik a̱si Konggo. Ma̱ng a̱kpa á̱niet miliyon swak ma̱ng a̱fwuon (15,000,000), mi̱ fang hu nang á̱ nyia̱ ma̱ a̱lyia̱ cyikwop nswak nfeang ma̱ng nswak nfeang a̱ni (2020). Nggu wa byia̱ á̱kpa á̱niet a̱ nswak mi̱ [[Afrika]].
==Ya̱fang==
<references/>
{{Template:A̱ka̱keang swanta}}
c2z2f6x6moq0tmhg4j952hjyotnhk3z
Ki̱liyopatra
0
511
14310
13390
2022-06-13T10:18:29Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
[[Fail:Kleopatra-VII.-Altes-Museum-Berlin1.jpg|thumb|Ghwughwu a̱khwukhwop mabut Rom si̱ a̱pyia̱ Ki̱liyopatra VII á̱ tyai mami Altes Museum ma̱ a̱keang Berlin]]
'''Ki̱liyopatra VII Filopato''' (Helen: Κλεοπάτρα Φιλοπάτωρ, ''Kleopatra Philopator'';<ref>Hölbl (2001). p. 231. 69 BC - 10 Zwat A̱ni̱nai 30 BC</ref>) ku yet A̱gwam-a̱byii̱k Tyok Ptolemait si̱ Ma̱sa̱r wa, a̱wot a̱ si̱ yet a̱tsak a̱tyuba̱ngtyok ngaan a̱byin wu. A̰ ku yet diplomat wa, a̱kwak a̱son a̱khwot a̱kwop a̱sa̱khwot, a̱tyulyenlilyem, ma̱ng a̱tyulyuut nkwambwat tazwa ki̱kan. A̱ ku yet a̱ka̰mbwon a̱tyia̱ a̱khwop a̱ ku ntsa Lang Á̱gwam Ptolemi wa nang á̱ ngyei Ptolemy I Soter a̱ni, a̱tyohelen Ma̱kidoniya a̱ghyang a̱ ka ngyet jenera a̱ni ma̱ng a̱kpa̱ndang cong A̱liza̱nda A̱gba̱ndang wu.<ref>Southern (2009). P. 43, a̱ ku lyuut tazwa Ptolemy I Soter a̱ni: "The Ptolemaic dynasty, of which Cleopatra was the last representative, was founded at the end of the fourth century BC. The Ptolemies were not of Egyptian extraction, but stemmed from Ptolemy Soter, a Macedonian Greek in the entourage of Alexander the Great." (di̱n Shong)</ref> A̱tsak a̱lyem nggu wu ku yet Helen Koine ja, a̱woẗ nggu wa ku yet a̱tyuba̱ngtyok lang á̱gwam Ptolemi ma̱nyin a̱ myiam lyiat da̱ a̱lyem Ma̱sa̱r ka.
==Ya̱fang==
<references/>
==A̱ka̱fwuop nta==
* [https://www.youtube.com/watch?v=boQOXk9ZEoc Ancient Roman depictions of Cleopatra VII of Egypt], mi̱ YouTube
* [http://www.gutenberg.org/ebooks/10992 ''Cleopatra''] (1852), a Victorian children's book by Jacob Abbott, Project Gutenberg edition
* [https://web.archive.org/web/20060811000057/http://www.discoverychannelasia.com/ontv_egyptweek/death_cleopatra/index.shtml "Mysterious Death of Cleopatra"] at the Discovery Channel
* [https://web.archive.org/web/20030208021301/http://www.bbc.co.uk/history/historic_figures/cleopatra_vii.shtml Cleopatra VII] at [https://www.bbc.co.uk/history/ BBC History]
* [https://www.worldhistory.org/Cleopatra_VII/ Cleopatra VII] mami A̱gban Lyen Nkhang Ta̱cya̱
* Eubanks, W. Ralph. (1 November 2010). "[https://www.npr.org/templates/story/story.php?storyId=130976125 How History and Hollywood Got 'Cleopatra' Wrong]". National Public Radio (NPR) (a book review of ''Cleopatra: A Life'', by Stacy Schiff).
* Jarus, Owen (13 Zwat Tsat 2014). "[https://www.livescience.com/44071-cleopatra-biography.html Cleopatra: Facts & Biography]" (di̱n Shong). ''Live Science''.
* Watkins, Thayer. "[https://web.archive.org/web/20210813025922/https://sjsu.edu/faculty/watkins/cleopatra.htm The Timeline of the Life of Cleopatra] (di̱n Shong)." San Jose State University.
* Draycott, Jane (22 Zwat Tswuon 2018). "[https://www.historytoday.com/jane-draycott/cleopatras-daughter Cleopatra's Daughter: While Antony and Cleopatra have been immortalised in history and in popular culture, their offspring have been all but forgotten. Their daughter, Cleopatra Selene, became an important ruler in her own right]" (di̱n Shong). ''History Today''.
[[Sa:Ki̱liyopatra| ]]
[[Sa:69 BC births]]
[[Sa:30 BC deaths]]
[[Sa:1st-century BC Pharaohs]]
[[Sa:1st-century BC Egyptian people]]
[[Sa:1st-century BC women rulers]]
[[Sa:Kukwi mat mmap zwák]]
[[Sa:Egyptian queens regnant]]
[[Sa:A̱yaafi̱ra̱una á̱nap]]
[[Sa:Female Shakespearean characters]]
[[Sa:Hellenistic-era people]]
[[Sa:Mistresses of Julius Caesar]]
[[Sa:A̱yaafi̱ra̱una lang á̱gwam Ptolemi]]
[[Sa:Ancient people who committed suicide]]
[[Sa:1st-century BC women writers]]
[[Sa:Kuburut A̱helen]]
[[Sa:Á̱kyuo Ma̱rkut Antoniyot]]
mka8mg1kq4c262m4puy6hsh3e6ojz1q
Koronavirut
0
512
14360
14311
2022-06-13T10:24:08Z
Vargenau
226
/* Ya̱fang */
wikitext
text/x-wiki
'''A̱yaakoronavirut''' ba yet sot tswá zwan RNA jhyang ja ji̱ byia̱ a̱meang ma̱ng njhyang a̱ni ji̱ kwak zwán bai mi̱ nvam kak tangka̱i nyám ku nwaai mman nhu na a̱ni a mbeang a̱ka̱man. Mi̱ nvam á̱nietbishyi ma̱ng a̱ka̱man, sot tswá zwan ji kwak a̱ka̱bung kwak swuan na̱ kyiak neet si̱ na̱ yet a̱shonshyon a̱ni ba̱ng si̱ tat si̱ na̱ maai hyat a̱yin a̱ni. A̱shonshyon nhyia̱ mi̱ nvam á̱nietbishyi maai yet: Shyishyim (nang tswá zwan njhyang ja kwak nji bai a̱ni, di̱n jen ma̱ a̱di̱dit rhinoviruses), ma̱nang tswá zwan ji̱ maai hyat a̱yin a̱ni, jija kwak SARS, MERS ma̱ng [[Koronavirut 2019|ZKOVIT-19]] bai. Mi̱ nvam nyák ma̱ng a̱yaakusuru ba̱ tyei a̱khang, a̱wot mi̱ nvam cyui ba̱ tyei hepatitis ma̱ng encephalomyelitis.
{| class="wikitable" align=right border width="200"
| colspan="2" align=center|'''''Orthocoronavirinae'''''
|-
| colspan="2" align=center|[[Fail:Coronaviruses 004 lores.jpg|300px|center]] <sub>''Transmission electron micrograph'' koronavirut jhyang</sub>
|-
| colspan="2" align=center|[[Fail:Coronavirus._SARS-CoV-2.png|300px|center]] <sub>Wa̱i ghwughwu viriyon ''SARS-CoV-2'' ghyang: <span style=background:#005db7>cobalt</span> — envelope; <span style=background:#02e6ff>turquoise</span> — spike glycoprotein; <span style=background:#ff0c78>crimson</span> — envelope proteins; <span style=background:#9bff57>a̱sa̱khwot kyikyo</span> — membrane proteins; <span style=background:#fe8a00>a̱sa̱khwot a̱lemu</span> — glycan.</sub>
|-
|}
== BU NWUAN ==
* [[Zwán Koronavirut]]
* [[Zunosit]]
==Ya̱fang==
<references/>
[[Sa:Zwán ji̱ byia̱ a̱meang ma̱ng Koronavirut]]
[[Sa:A̱bankwai_virut]]
[[Sa:Coronaviridae]]
0fmqkue44g2z6g5wgwe9dnz79hhe7q0
Koronavirut 2019
0
513
14313
13392
2022-06-13T10:19:00Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
'''Zwan Koronavirut 2019''' ('''ZKOVIT-19''') (Shong: Coronavirus disease 2019, COVID-19) yet zwan ja nang á̱ maai ta̱bat ma̱ a̱hyohyoot a̱ni nang A̱lama Nzwan Koronavirut a̱ Hyaat [[Gi̱gi̱k (kan)|Gi̱gi̱k]] Kwak Swuan 2 (A̱NKoV-a̱HyaGKwaS-2 ku ''SARS-CoV-2'') wa kwak nji bai. Á̱ ku tsa nfi̱k zwan jini ma̱ a̱keang [[Wuhan]] kya, ma̱ a̱byin [[Caina]], mi̱ Zwat Swak ma̱ng Sweang 2019.<ref name="WSJ-20210226">Page J, Hinshaw D, McKay B (26 Zwat Sweang 2021). "[https://www.wsj.com/articles/in-hunt-for-covid-19-origin-patient-zero-points-to-second-wuhan-market-11614335404 In Hunt for Covid-19 Origin, Patient Zero Points to Second Wuhan Market – The man with the first confirmed infection of the new coronavirus told the WHO team that his parents had shopped there]" (di̱n Shong). The Wall Street Journal.</ref> Neet di̱n jen a̱ja, zwan ji si̱ ka nta̱bat yai mi̱ swanta hu a̱mgba̱m, ji̱ si̱ khwat a̱gba̱nyiuk a̱ kai a̱mgba̱m swanta hu a̱ shyia̱ di̱ naat a̱ mbwuot a̱ni mi̱ di̱ yong huni.<ref name="NYT-20210226">Zimmer C (26 Zwat Sweang 2021). "[https://www.nytimes.com/2021/02/26/opinion/sunday/coronavirus-alive-dead.html The Secret Life of a Coronavirus – An oily, 100-nanometer-wide bubble of genes has killed more than two million people and reshaped the world. Scientists don't quite know what to make of it.]" (di̱n Shong).</ref>
{| class="wikitable" align=right border width="200"
| colspan="2" align=center|'''ZKOVIT-19'''
|-
| colspan="2" align=center|[[Fail:Fphar-11-00937-g001.jpg|300px|center]]<sub>Vak ta̱bat ma̱ng sa̱khat nswuan A̱NKoV-a̱HyaGKwaS-2 ku kwak ZKOVIT-19 bai a̱ni.</sub>
|-
|}
== Bu nwuan ==
* [[Zwán Koronavirut]], sot a̱yaalama nzwan ji̱ tai njhyang ba̱t a̱ni
* [[Zwan X]], swang a̱lyiat [[Sot-nta̱m Gbi̱ngban Swanta|WHO]]
==Ya̱fang==
<references/>
[[Sa:Zwán_ji̱_byia̱_a̱meang_ma̱ng_Koronavirut]]
[[Sa:ZKOVIT-19]]
[[Sa:Gbi̱ngban_á̱niet]]
qhap33btevbje99y769es3w64toyy5x
Kpaa̱pyia̱ A̱gba̱ndang Idi
0
514
5825
5824
2022-05-16T12:49:27Z
Jon Harald Søby
8
23 revisions imported
wikitext
text/x-wiki
'''Kpaa̱pyia̱ A̱gba̱ndang Idi''', ku '''Idi al-Adha''', (''[[La̱ra̱ba]]'': عيد الأضحى, ʿīd al-ʾaḍḥā) fa '''A̱yet Za̱nang wu''', a̱wot di̱n jen jhyang á̱ ngyei A̱gba̱ndang Sa̱lla,<ref name=Metro2020-07-31-01a>Haigh, Phil (31 July 2020). "[https://metro.co.uk/2018/08/21/why-eid-ul-adha-referred-big-eid-7865194/ What is the story of Eid al-Adha and why is it referred to as Big Eid?]". Metro. ''Simply, Eid al-Adha is considered the holier of the two religious holidays and so it is referred to as ‘Big Eid’ whilst Eid al Fitr can be known as ‘Lesser Eid’.Eid al-Kabir means ‘Greater Eid’ and is used in Yemen, Syria, and North Africa, whilst other translations of ‘Big Eid’ are used in Pashto, Kashmiri, Urdu and Hindi.'' (di̱n Shong)</ref><ref name=TheNation2020-06-30-01a>Niazi, M. A. (9 August 2013). [https://web.archive.org/web/20200703142752/https://nation.com.pk/09-Aug-2013/a-lesser-eid A 'Lesser Eid']". The Nation. The Nation (Pakistan). ''In the subcontinent, this Eid, Eid-ul-Fitr, is known as ‘Choti Eid’, or the ‘Lesser Eid’. This immediately sets up a contrast with ‘Bari Eid’, or the ‘Greater Eid’, which takes place just two months and a bit later. This distinction is also known in the Arab world, but by calling ‘Bari Eid’ bari, this Eid is already disadvantaged. It is the ‘other Eid’.‘Bari Eid’, or Eid-ul-Azha, has the advantage of having two major rituals, as both have the prayer, but it alone has a sacrifice. ‘Bari Eid’ brings all Muslims together in celebrating Hajj, which is itself a reminder of the Abrahamic sacrifice, while ‘Choti Eid’ commemorates solely the end of the fasting of Ramazan.'' (di̱n Shong)</ref> wa yet ngaan hu di̱ fwung ofisha feang nang á̱ cyin di̱ Khwikpaa̱pyia̱ hu (a̱son kikya yet Kpaa̱pyia̱ A̱da̱dei Idi ku Idi al-Fitr). Ku cyin shim Ibrahim (A̱braham) gu neap a̱fai nggu wu Isi̱melu za̱nang da̱ a̱vwuo A̱gwaza mat fwuong a̱lyiat nggu hu di̱ cam A̱gwaza hu. (A̱yaadini Yahuda ma̱ng Krista ba nwuak a̱cucuk nyia̱ ma̱ng si̱sak A̱tsan 22:2, Ibrahim ku kyiak a̱fai nggu wu Ishaku a̱ neap ndyo za̱nang.) A̱zaghyi Ibrahim ba̱ hyat a̱fai nggu wu, da̱ a̱kwonu a̱kya, A̱gwaza si̱ nang nggu fi̱ng a̱nfwuk a̱ neap da̱ a̱kwonu a̱fai nggu wu. Mat á̱ njhyung tyei a̱nu huni, á̱ ni̱ nneap nyám di̱n vak taada. A̱kpa a̱nyiung mami a̱yaakpa a̱tat nam nji naat da̱ a̱vwuo kyangbwak ku neap za̱nang hu, ma̱nang á̱kum ka si̱ naat da̱ a̱vwuo á̱kunak na ma̱ng mba ba̱ sang a̱ni. Á̱ nwuat a̱yaasuwit ma̱ng za̱náng, a̱wot á̱ka̱mbwon na̱ cong da̱ a̱ka̱vwuo á̱ghyang na̱ ka tyia̱ á̱ghyang a̱la̱baa.<ref>"[http://www.oxfordislamicstudies.com/article/opr/t125/e969 Id al-Adha]". Oxford Islamic Studies Online.</ref>
[[Fail:Eid Blessings WDL6855.png|thumb|Tamm kaligrafi ku bwuo mam zwat naat 1729-30 ku tyai a̱li̱ba̱rka Idi al-Adha di̱ La̱ra̱ba]]
==Ya̱fang==
efzojalrvhcgcsw6qkhgaaxmbe4zibc
Kpat (a̱lyem)
0
515
14314
13393
2022-06-13T10:19:05Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
'''Kpat''' (Shong: /ˈhaʊsə/; Kpat: Harshen/Halshen Hausa) yet [[A̱lyem Cadi]] kya nang [[A̱kpat]] wu lyiat a̱ni, ka̱ yet a̱gba̱ndang a̱lyem a̱ka̱ka̱rak ka̱ lan swak wu mi̱ Afrika, ma̱ a̱di̱di̱t mami a̱gi̱gak [[Ni̱njer (a̱byin)|Ni̱njer]] ma̱ng a̱kum kap a̱za [[Naijeriya]] ka, ma̱ng a̱cuncong seang á̱niet mi̱ bibyin [[Gana]], [[Sudan]], ma̱ng [[Kemerun]].<ref name=":0">Wolff, H. Ekkehard. "[https://www.britannica.com/topic/Hausa-language|access-date=2020-10-14 Hausa language]". Encyclopedia Britannica. (di̱n Shong)</ref><ref name=":1">"[https://worldmapper.org/maps/spread-of-the-hausa-language-2005/ Spread of the Hausa Language]". Worldmapper. (di̱n Shong)</ref>
Kpat yet memba [[Afroasiatic languages|kyangbwak a̱lyem Afroasiatic]] huhwa a̱wot ji̱ si̱ yet a̱lyem ka nang á̱ lyiat swak a̱ni di̱ sa [[Lilyem Cadi|Cadi]] kyangbwak a̱hwa. A̱yaaEthnologue ntyan nyia̱ á̱ ku lyiat nkaa nang a̱lyem á̱son a̱nunu kpa̱mkpaan á̱niet shit (milyon) 47 a̱wot nang [[a̱lyem a̱feang]] a̱nunu shit 25 a̱ghyang, ku si̱ khwat la̱mba a̱mgba̱m á̱nietlyiat Kpat ji bai da̱ a̱beam shit 72.<ref>"[https://www.ethnologue.com/language/HAU Hausa language]". Ethnologue]].</ref> Si̱sak ma̱ng ti̱tyan mmam nani njhyang, á̱ na lyiat Kpat ji a̱nunu á̱niet shit 100–150, ka̱ doot si̱ huni na ntyia̱ nkaa ka̱ yet a̱lyem byina̱byin Afrika nang á̱ lan lyiat swak a̱ni.<ref>"[https://www.herald.ng/full-list-hausa/ Full List: Hausa Is World's 11th Most Spoken Language]". The Herald (2018-02-04).</ref>
Mi̱ 2017, A̱kwak A̱son A̱byin Naijeriya wu, [[Muhammadu Buhari]] shei kyang ghyang di̱n Kpat ji, zang hwa nfuut jhya̱ ma̱ a̱byin ka.<ref>BBC News (2017-06-26). "[https://www.bbc.com/news/blogs-news-from-elsewhere-40405976|access-date=2020-10-29 Nigerian president's Eid speech in Hausa criticised]".</ref> Mami Naijeriya, á̱ ngyei á̱nietbwuang fim ba ba̱ lyiat di̱n Kpat ji a̱ni, Kannywood ji.<ref>"[https://www.bbc.com/news/world-africa-37539977Cite news Nigerian actress Rahama Sadau banned after on-screen hug]". BBC News (2016-10-03).</ref>
==Ya̱fang==
<references/>
[[Sa:Lilyem Naijeriya]]
bbt1xckl0motklzonat8s63l3h21yo3
Kpa̱m A̱lyiat A̱gwaza
0
516
14788
14786
2022-07-09T16:48:15Z
Kambai Akau
15
wikitext
text/x-wiki
{{Databox|item=Q1845}}
[[Fail:Gutenberg Bible, Lenox Copy, New York Public Library, 2009. Pic 01.jpg|upright=1.55|thumb|Kpa̱m A̱lyiat A̱gwaza si̱ Gutenberg, Kpa̱m A̱lyiat A̱gwaza nang á̱ ku ntsa lyui hu (ma̱ka̱wa̱tyia̱ sa̱ncuri 15)]]
'''Kpa̱m A̱lyiat A̱gwaza''' hu ku '''Baibut''' (neet a̱lyem Helen Koine τὰ βιβλία, ''tà biblía'', 'nkwambwat na') yet kpa̱m lyuut a̱dini hwa ku yet a̱za̱za̱rak mi̱ [[Khwikristi]], [[Khwiyahuda]], Khwisamariya, [[Khwikpaa̱pyia̱]], Khwirastafari, ma̱ng nkhwi nghyang ma̱ a̱di̱di̱t. Ku byia̱ ghwughwu kwambwat nkhang hwa, nang á̱ mun lyuut ma̱ a̱di̱di̱t ku vwuon ma̱ng nghyang da̱ a̱vwuo a̱nyiung a̱ni, a̱wot a̱mgba̱m lyuut hu si̱ byia̱ a̱meang ma̱ng nghyang di̱n vak nwuak a̱cucuk di̱ tyai á̱zanson A̱gwaza hu. Mami lyuut huni á̱ mbyia̱ si̱ hu ku kpaat a̱ghyi tazwa nkhang gbangbang nang á̱ wa̱i ma̱ng a̱di̱dam tswa A̱gwaza a̱ni, bubwom dyep A̱gwaza, [[Naai A̱gwaza|nnaai]], kídee, wusika tyiet, gba, á̱kum ndyuut, a̱bwom a̱nwuat, ma̱ng shei mi̱ shei a̱kwonu A̱gwaza á̱zanson. Mba ba̱ nwuak a̱cucuk da̱ a̱ka̱nyiung mi̱ nkyiak Kpa̱m A̱lyiat A̱gwaza hu ku yet sum a̱di̱dam Ma A̱gwaza tswazwa hwa meang.
==Ya̱fang==
<references/>
[[Category:Kpa̱m A̱lyiat A̱gwaza]]
cd5hfq2jn6pao3d9gq9sayaeyoa4kjq
Kpa̱m Cam a̱byin Naijeriya
0
517
12341
5866
2022-05-21T04:52:35Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
'''Kpa̱m Cam a̱byin Naijeriya''' hu hwa yet cam a̱byin hu ku swak kuzang hu a̱ni<ref>Inioluwa, Olaposi (21 Zwat Tswuon 2021). [https://lawglobalhub.com/section-1-nigerian-constitution-1999/ Section 1 of the 1999 Constitution (Supremacy of the Constitution)] (di̱n Shong). LawGlobal Hub.</ref> mi̱ [[Naijeriya|Ri̱pobi̱lik Mundundung Naijeriya]] wu.
[[Fail:Coat of arms of Nigeria.svg|thumb|A̱lama a̱byin Naijeriya]]
Naijeriya ku byia̱ mkpa̱m cam a̱byin nfwuon. Á̱ ku kpa kpa̱m cam a̱byin a̱fwun hu á̱ neap ma̱ a̱tuk mam 29 Zwat Tswuon 1999 kya, a̱wot si̱ a̱hwa si̱ ki ntsa Ri̱pobi̱lik A̱naai Naijeriya wu.
==Ya̱fang==
<references/>
t38djzcohd2wl5faxg07hzaj1eqxnry
Kritiyano Ronaldo
0
518
13046
13045
2022-05-29T18:37:39Z
Kambai Akau
15
Wat hu ku nshyia̱.
wikitext
text/x-wiki
#REDIRECT[[Cristiano Ronaldo]]
3fcy9u02p50q9v6su1k28gnjjm32eip
Kuba
0
519
14315
13394
2022-06-13T10:19:10Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
{| class="wikitable" align=right border width="200"
| colspan="2" align=center|'''Ri̱pobi̱lik Kuba'''<br>República de Cuba (Si̱pen)
|-
| colspan="2" align=center|[[Fail:CUB orthographic.svg|300px|center]] <sub>Ta̱si̱la a̱byin Kuba</sub>
|-
| [[Fail:Flag of Cuba.svg|thumb|Tuta a̱byin Kuba]]
|-
| [[Fail:Coat of arms of Cuba.svg|thumb|A̱lama a̱byin Kuba]]
|-
|}
A̱byin '''Kuba''' (Si̱pen: Cuba /ˈkuβa/), á̱ lyen di̱ yorong ofisha hu nang '''Ri̱pobi̱lik Kuba''' wu (Si̱pen: República de Cuba /reˈpuβlika ðe ˈkuβa/, Shong: Republic of Cuba), yet a̱byin kya ka̱ byia̱ a̱byin a̱ka̱wa̱tyia̱ a̱sa̱khwot Kuba ka, a mbeang Isla de la Juventud ma̱ng a̱cyuang susot bibyin a̱ka̱wa̱tyia̱ a̱sa̱khwot ma̱ a̱di̱di̱t ghyang. A̱byin Kuba shyia̱ di̱ tyan ji nang fam a̱za [[Kyai A̱sa̱khwot Karibi]], A̱ngam A̱sa̱khwot Mikziko, ma̱ng [[A̱gba̱ndang Kyai A̱sa̱khwot Ati̱lantik]] myim a̱ni. Ka̱ shyia̱ di̱ fam a̱tyin Li̱m-a̱byin Yucatán ([[Mikziko]]), fam a̱tak a̱mgba̱m a̱si̱tet A̱.M. nang á̱ ngyei Florida a̱ni ma̱ng Bahamat hu, fam jenshyung a̱byin Hisi̱paniyola, a mbeang fam a̱za a̱byin [[Ja̱ma̱ika]] ma̱ng Bibyin A̱ka̱wa̱tyia̱ A̱sa̱khwot Keiman hu. A̱keang Havana kya yet a̱gba̱ndang a̱keang nka wu a̱ swak ma̱ng shi a̱ni a̱ si̱ ka ngyet a̱keangtung nka ka; a̱ca̱cet a̱ka̱keang á̱ghyang nka ni̱nia: Santiago de Cuba ma̱ng Camagüey. Shi kyai a̱byin Ri̱pobi̱lik Kuba wu nang a̱gwomna̱ti ba ku nwuak a̱ni huhwa yet kilomita a̱ma̱ntanaai 109,884 (met a̱ma̱ntanaai 42,426) (kang ma̱ng si̱ a̱sa̱khwot a̱beam nka na). A̱tsak A̱byin A̱ka̱wa̱tyia̱ A̱sa̱khwot Kuba wu wa yet a̱byin a̱ka̱wa̱tyia̱ a̱sa̱khwot ka̱ swak ma̱ng shi mami a̱byin Kuba ka ma̱ng fam a̱byin Karibi hu, ma̱ng shi kyai a̱byin kilomita a̱ma̱ntanaai 104,556 (met a̱ma̱ntanaai 40,369). A̱byin Kuba kya yet a̱feang ma̱ng shi á̱niet di̱ fam a̱byin Karibi hu lilyim a̱byin Haiti, ma̱ng si̱ ku swak á̱niet miliyon 11.
==Ya̱fang==
<references/>
[[Sa:Bibyin_swanta]]
[[Sa:Bibyin_Karibi]]
asjme6eyqt1ueuyz6zg1pkbrj3j2hs5
Kuburut
0
520
14737
14316
2022-07-02T18:46:35Z
Kambai Akau
15
wikitext
text/x-wiki
{{Databox|item=Q229}}
A̱byin '''Kuburut''' (Helen: Κύπρος, ''Kýpros'' /ˈcipros/; Turki: Kıbrıs /ˈkɯbɾɯs/; [[Shong (a̱lyem)|Shong]]: Cyprus /ˈsaɪprəs/), á̱ lyen ma̱ng a̱lyoot a̱gwomna̱ti ka nang '''Ri̱pobi̱lik Kuburut''' wu (Helen: Κυπριακή Δημοκρατία, ''Kypriakí Dimokratía'' /cipriaˈci ðimokraˈti.a/; Turki: Kıbrıs Cumhuriyeti /ˈkɯbɾɯs ˈdʒumhuɾijeti/; Shong: Republic of Cyprus ku Cypriot Republic), yet a̱byin a̱byin a̱ka̱wa̱tyia̱ a̱sa̱khwot kya di̱ fam a̱tyin [[Kyai A̱sa̱khwot Meditaroniya]] hu. Kikya yet a̱byin a̱ka̱wa̱tyia̱ a̱sa̱khwot Meditaroniya a̱tat ka mi̱ shi kyai a̱byin ma̱ng shi á̱niet,<ref>"[https://www.worldatlas.com/articles/biggest-islands-in-the-mediterranean-sea.html Biggest Islands In The Mediterranean Sea By Area]" (di̱n Shong). WorldAtlas.</ref><ref>"[https://www.worldatlas.com/articles/the-most-populated-islands-in-the-mediterranean-sea.html The Most Populated Islands In The Mediterranean Sea]" (di̱n Shong). WorldAtlas.</ref> a̱wot ka̱ si̱ shyia̱ di̱ fam a̱tak a̱byin [[Turkiya]]; fam jenshyung a̱byin [[Suriya]]; fam a̱za-jenshyung bibyin [[Lebanon]], [[Isi̱rela]] ma̱ng Tyiang-a̱byin Gaza ji; fam a̱za a̱byin [[Ma̱sa̱r]]; ma̱nf fam a̱tak-a̱tyin a̱byin [[Helat]]. A̱keang Nikosiya kya yet a̱keangtung ma̱ng a̱gba̱ndang a̱keang a̱ swak ma̱ng shi a̱byin ka.
==Ya̱fang==
<references/>
{{Template:Bibyin A̱siya}}
̄
̄[[Sa:Bibyin_swanta]]
̄[[Sa:Bibyin_A̱siya]]
̄[[Sa:Bibyin_Jenshyung_A̱siya]]
̄
0xgut6atfvxsszbl0tk7j9o98ubrq1e
Kumasi
0
521
5907
5906
2022-05-16T12:49:31Z
Jon Harald Søby
8
3 revisions imported
wikitext
text/x-wiki
Kumasi (a̱ku lyuut neet gbangbang Comassie ku Coomassie) a̱lyuut Kumasi da̱ Lyem Twi a̱ni wa yed a̱gbandang a̱keang mi fam Ashanti ma̱ bin Gana. Ma̱ bin Gana ka a̱nbyia̱ a̱ka̱keang ma̱di̱dit na̱ swak Kumasi ma̱ng shií a̱ni ba. Kumasi shyia̱ kpa̱nkpaan ma̱ng jog a̱sa̱khwaat a̱gyei Bosomtwe a̱ni. Ashanti wa yed a̱gbandang a̱keang a̱bwuang mī fam A̱khukhop a̱bin Ashanti. A̱bin Kumasi bai kilomita 500 A̱za Nbwong Guinea. A̱keang Kumasi ka yed a̱sham za̱m da̱nian a̱ka̱kwon ma̱ng swūm a̱ka̱kwon na̱ shyia̱ a̱ja a̱ni. A̱lyen Kumasi ji ma̱ng a̱lyoot Oseikrom (A̱keang Osei Tutu).
==Ya̱fang==
<references/>
oicz0g233uyseibz57adphm0dy7n308
Kungkup
0
522
15660
15658
2022-08-10T06:27:00Z
Kambai Akau
15
wikitext
text/x-wiki
'''Kungkup''' ''hu'' (á̱kpa: '''nkungkup''' ''na'') yet a̱kpa̱u nka̱p wa ku shyia̱ mi̱ vam a̱tyubishyi mbeang [[Nyam|nyám]] a̱ni.
==A̱ka̱fwuop nta==
{{Commons category|Bones|Nkungkup}}
* [https://web.archive.org/web/20170509104452/http://depts.washington.edu/bonebio/ASBMRed/ASBMRed.html Educational resource materials (including animations) by the American Society for Bone and Mineral Research] (di̱n Shong)
* [http://silver.neep.wisc.edu/~lakes/BoneElectr.html Review (including references) of piezoelectricity and bone remodelling] (di̱n Shong)
* [http://www.scq.ubc.ca/?p=400 A good basic overview of bone biology from the Science Creative Quarterly] (di̱n Shong)
* {{cite book|title=Radionuclide and hybrid bone imaging|publisher=Springer|location=Berlin|isbn=978-3-642-02399-6|pages=29–57|chapter-url=https://www.springer.com/cda/content/document/cda_downloaddocument/9783642023996-c1.pdf?SGWID=0-0-45-1356540-p173959977|author1=Usha Kini|author2=B. N. Nandeesh|editor1=Ignac Fogelman|editor2=Gopinath Gnanasegaran|editor3=Hans van der Wall|chapter=Ch 2: Physiology of Bone Formation, Remodeling, and Metabolism|date=2013-01-03|access-date=28 August 2017|archive-date=6 November 2020|archive-url=https://web.archive.org/web/20201106152855/https://www.springer.com/cda/content/document/cda_downloaddocument/9783642023996-c1.pdf?SGWID=0-0-45-1356540-p173959977|url-status=dead}}
* [http://www.histology-world.com/photoalbum/thumbnails.php?album=8 Bone histology photomicrographs] (di̱n Shong)
[[Category:Nkungkup]]
cn0dkfgi8avqufdo98qb9846bnn5iax
Kurum
0
523
14317
13612
2022-06-13T10:19:20Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
[[File:Euro coins and banknotes.jpg|thumb|Tswá kurum ma̱ng a̱ka̱kurum pepa Yuro]]
[[Fail:ClientCardSample.png|thumb|right|Ghwughwu kidee a̱bubuk kati ATM. Kap kurum swanta hu ku laai shi a̱swak nshyia̱ a̱nyin nang la̱mba li̱la̱nkurum hwa nang á̱ ta̱m ndyo tsi̱tsak a̱yaakompyuta nta̱m kurum. Nkati pi̱lastik ma̱ng nkyangnta̱m jhyáng nnwuat á̱nietnta̱m ba cet shyei tangka̱i kurum a̱hwa di̱n vak ili̱kti̱ronik kyiak neet di̱ a̱la̱nkurum a̱nȳiung naat a̱ghyang, di̱ mi̱n nyia̱ ta̱m ma̱ng a̱tsak kurum bah.]]
[[Fail:National-Debt-Gillray.jpeg|thumb|Mi̱ karikacyo James Gillray ma̱ a̱lyia̱ 1786, á̱ ku ghai di̱ mai, a̱dodo a̱yaaka̱tanko kurum nang á̱ ku neap A̱gwam George III a̱ni ma̱ng a̱tyu a̱shweang wu nang á̱ ni̱ nfak a̱ti̱tak mba ba ma̱ng mbwak na, da̱ a̱ta̱m a̱zamyian ka.|174x174px]]
'''Kurum''' yet kuzang kyang hwa ku a̱tsatsak lyuut nang konyan san da̱ a̱ka̱nyiung nang teang a̱ni, mat nkyang (nang á̱ kwai a̱ni) ma̱ng khwo mbeang teang ta nang a̱ka̱kurum ga̱ndu, mami a̱byin a̱nyiung ku mi̱ naat mbwuot kaswuo a̱ni.<ref>Mishkin, Frederic S. (2007). "''The Economics of Money, Banking, and Financial Markets''". Boston: Addison Wesley. p. 8. Alternate (Jhy.). ISBN 978-0-321-42177-7.</ref><ref>[https://books.google.com/books?id=MDU-NTEJziMC&pg=PA47 ''What Is Money?''] By John N. Smithin. Retrieved July-17-09.</ref><ref>[http://www.dictionaryofeconomics.com/article?id=pde2008_M000217&edition=current&q=money&topicid=&result_number=5 money : The New Palgrave Dictionary of Economics]. The New Palgrave Dictionary of Economics.</ref> Á̱ ku ghai á̱tsak nta̱m kurum a̱ni: vak shai nkyang, swang a̱la̱n-kurum, a̱swang a̱fi̱ng nkyang, a̱wot mi̱ di̱n jen jhyang, kidee a̱ci̱nciring teang kurum.<ref name="mankiw">Mankiw, N. Gregory (2007). [https://archive.org/details/macroeconomics0000mank/page/22 Macroeconomics] (di̱n Shong). 6 (Jhy.). Pp. 22–32. 2. New York: Worth Publishers. ISBN 978-0-7167-6213-3.</ref><ref>Thomas H. Greco, Jr. (2001). ''Money: Understanding and Creating Alternatives to Legal Tender'', White River Junction, Vt: Chelsea Green Publishing. ISBN 1-890132-37-3</ref> Á̱ fa kuzang tangka̱i nkyang ke rekot nang á̱ maai shim yet cucuk nhu hu di̱ nyia̱ nta̱m nani kurum hwa.
==Ya̱fang==
<references/>
[[Sa:Kurum| ]]
[[Sa:Tung nzwa kurum| ]]
[[Sa:Kaswuo]]
0mea1yxi2jbzkk40s42ou7j2wtomldy
Kusat
0
524
12568
5951
2022-05-21T20:24:37Z
Hugo.arg
154
wikitext
text/x-wiki
[[Fail:Ladies' Finger BNC.jpg|197px|right]]
'''Kusat''' (''Abelmoschus esculentus'', á̱ ka ngyei '''ga̱swúong nfi̱ng a̱ka̱neam''' mi̱ bibyin ma̱ a̱di̱di̱t nang á̱ lyiat Nggi̱lit a̱ni), yet a̱tyin a̱ga̱fi̱p ka̱ tang nfuut kya ka̱ shyia̱ kyangbwak á̱ga̱fi̱p ''mallow'' hu.
==Ya̱fang==
<references/>
bqj2ygqnu74vrbwos6q8vdrk0eickuz
Á̱nietza̱fan (a̱lyem)
0
525
14696
14695
2022-06-30T17:02:56Z
Kambai Akau
15
wikitext
text/x-wiki
A̱lyem '''Á̱nietza̱fan''' ka, (Á̱nietza̱fan: '''Nkarigwe''', '''Rigwe'''), yet [[Lilyem Pi̱lato|a̱lyem Pi̱lato]] [[Naijeriya]] kya nang [[Á̱nietza̱fan (nwap)|Á̱nietza̱fan]] ba lyiat ma̱ ba̱t di̱ fam [[Basa, Si̱tet Pi̱lato|Sot A̱gwomna̱ti Mali Basa]], mami [[Si̱tet Pi̱lato]] a̱ni.<ref name=LOC>"[https://id.loc.gov/authorities/subjects/sh2003003175.html Irigwe (African people)]" (di̱n Shong). Library of Congress.</ref><ref name=Ethno>"[https://www.ethnologue.com/language/iri Rigwe]". ''Ethnologue''. SIL International.</ref>
A̱lyem Á̱nietza̱fan ka byia̱ a̱gba̱ndang fonoloji ji̱ fwuop fufwuop a̱ni.<ref name="Blench2018">Blench, Roger M. 2018. Nominal affixes and number marking in the Plateau languages of Central Nigeria. In John R. Watters (ed.), ''East Benue-Congo: Nouns, pronouns, and verbs'', 107–172. Berlin: Language Science Press. DOI 10.5281/zenodo.1314325.</ref>
==Ya̱fang==
<references/>
==A̱ka̱fwuop nta==
*[http://www.rogerblench.info/Language/Niger-Congo/BC/Plateau/Rigwe/RgwOP.htm Roger Blench: Rigwe page]
[[Sa:Lilyem Naijeriya]]
8a4atk345yas5kg9y32ke8z1rt2fy8t
Kuut (a̱tyin a̱ga̱fi̱p)
0
526
14320
13397
2022-06-13T10:19:30Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
[[Fail:Sesamum indicum - Köhler–s Medizinal-Pflanzen-129.jpg|thumb|Nkap a̱tyin kuut]]
[[Fail:Sesamum indicum 2.jpg|thumb|Ghwughwu a̱tyin kuut ma̱ng a̱duduu a̱kikyo a̱sa̱khwot a̱kwop ma̱ng a̱sai kywat]]
'''Kuut''' (Shong: Sesame ˈsɛzəmiː ku ˈsɛsəmiː; Latin: ''Sesamum indicum'') yet a̱tyin a̱ga̱fi̱p kya ka̱ tang fuut a̱ni mi̱ ''genus'' ''Sesamum''. Nkak a̱meang na̱ laai ma̱ a̱yit nshyia̱ ma̱ a̱di̱di̱t a̱di̱t ma̱ a̱byin [[Afrika]] ma̱ng ma̱ a̱da̱dei mi̱ [[Ndiya]]. Zwá kuut ji ja á̱ ngyei [[cwan]].
==Ya̱fang==
<references/>
==A̱ka̱fwuop nta==
[[Sa:Kuut (a̱tyin a̱ga̱fi̱p)| ]]
[[Sa:Crops originating from Africa]]
[[Sa:Kywat Nepal]]
[[Sa:Á̱ga̱fi̱p nkan]]
[[Sa:Pedaliaceae]]
[[Sa:Á̱ga̱fi̱p nang á̱ ku wa̱i ma̱ a̱lyia̱ 1753]]
[[Sa:Spices]]
1km256gqrub2ut127bzlmi0r6zfgacb
Kwa-a̱nu
0
527
5990
5989
2022-05-16T12:49:34Z
Jon Harald Søby
8
13 revisions imported
wikitext
text/x-wiki
'''Kwa-a̱nu''' yet asa̱i kyayak ani.
==Ya̱fang==
<references/>
[[en:Lip(mouth)]]
himmzmmpjpjm9fgs7x9e1insjfxgw9q
Kwaa̱mbwat
0
528
13597
12347
2022-06-05T11:42:51Z
Kambai Akau
15
wikitext
text/x-wiki
[[Fail:Gutenberg Bible, Lenox Copy, New York Public Library, 2009. Pic 01.jpg|alt=|thumb|Kpa̱m A̱lyiat A̱gwaza Gutenberg hu, ku yet nyiung mami nkwambwat ntsa nang á̱ lyui a̱ni ma̱ng nyap lyui hu.|447x447px]]
'''Kwaa̱mbwat''' hu (á̱kpa: '''nkwaa̱mbwat''' ''na'') yet vak kwok a̱tsatsak nkhang hwa di̱n vak lyuut ku nghwughwu, a̱wot ku byia̱ ngwat (ku pejí, nang á̱ nyia̱ ma̱ng papirut a̱ni, ''parchment'', ''vellum'', ku pepa) nang á̱ ba̱ng ndung á̱ si̱ kup ma̱ng a̱kup.<ref>IEILS, p. 41</ref>
==Ya̱fang==
<references/>
klnwqunhmrbk4e9qsnniumtkpv5vap8
Kwambwat
0
529
13596
13595
2022-06-05T11:41:33Z
Kambai Akau
15
Redirected page to [[Kwaa̱mbwat]]
wikitext
text/x-wiki
#REDIRECT [[Kwaa̱mbwat]]
4f9fj12p2qrai30bg8byk0uiffhvcjm
Kwat
0
530
15279
6011
2022-07-21T22:25:24Z
ZabesBot
156
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
'''Kwat''' hwa yet kywat pyia̱ mat á̱ mbeang shisham a̱sam a̱tyubishyi. Á̱ ni̱ kwat pyia̱ hu a̱pyia̱ kya.
==Ya̱fang==
<references/>
4kcg1si4lrhnxeluik4c9mbpnayjp12
Kwatak
0
531
12348
6019
2022-05-21T04:53:45Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
[[Fail:Skor från 1700- till 1960-talet - Nordiska Museet - NMA.0056302.jpg|thumb|Tyai á̱kwatak a̱mali a̱ka̱ka̱ra̱k nkyang]]
'''Kwatak''' yet a̱ngga kup tak wa nang á̱ tyei mat cok ma̱ng fwuong nyinyang a̱tai ntak a̱tyubishyi wu. Á̱kwatak ka ngyet á̱ngga cat shisham wa ma̱ng li lili nce.
==Ya̱fang==
<references/>
cz05ycn8pnmvwhpzo1fyx8y1zzn5pu3
Kwom
0
532
15280
6033
2022-07-21T22:25:34Z
ZabesBot
156
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
'''Kwom''' hu (á̱kpa '''nkwom''' ''na'') yet vam a̱tyokhwu hwa.
==Ya̱fang==
<references/>
e19jxt89nsjmbfevvazcglvkdopic19
Kworiya A̱tak
0
533
14761
14321
2022-07-04T08:37:51Z
Kwamikagami
349
wikitext
text/x-wiki
{{Country
|name = ''Ri̱pobi̱lik Kworiya A̱tak''<br><small>대한민국 (Kworiya)<br>''Daehan Minguk'' (RR)</small>
|flag = Flag of South Korea.svg
|coa = Emblem of South Korea.svg
|image = Republic of Korea (orthographic projection).svg
|capital = [[Sa̱ul]]
|area = 100,363
|population = 51,709,098<ref>[http://kosis.kr/nsportalStats/nsportalStats_0102Body.jsp?menuId=10 ko:Kosis 100대 지표].</ref>
|year = 2019
}}
A̱byin '''Kworiya A̱tak''' (Kworiya: 한국; Hanja: 韓國, RR: ''Hanguk''; ma̱ a̱ca̱caat 남한/南韓, bwan RR: ''Namhan'', ku 남조선/南朝鮮, bwan MR: ''Namchosŏn'' mi̱ Kworiya A̱za; Shong: South Korea), á̱ ma̱ng a̱lyoot a̱gwomna̱ti ka nang '''Ri̱pobi̱lik Kworiya''' wu ('''RK''') (Kworiya: 대한민국; Hanja: 大韓民國, bwan RR: ''Daehan Minguk''; Shong: Republic of Korea, ROK) yet a̱byin kya di̱ fam a̱byin A̱tyin A̱siya hu. Kikya yet á̱kum nkap A̱fi̱fap-a̱byin Kworiya ka ka̱ shyia̱ a̱tatak ka a̱ni, ka̱ si̱ byia̱ gak a̱byin ma̱ng a̱byin [[Kworiya A̱za]]. Kpa̱mkpaan ma̱ng á̱niet miliyon 25, kpa̱mkpaan á̱kum shi a̱mgba̱m á̱niet a̱byin ka ka̱ yet miliyon 51 a̱ni swan di̱ Fam A̱keangtung [[Sa̱ul]] hu hwa.
[[Fail:Seal of South Korea.svg|thumb|A̱timi A̱byin Kworiya A̱tak]]
==A̱bwom a̱byin==
애국가 ''Aegukga'' "A̱bwom Swam A̱byin ka"<div style="position: relative; top:0.2em;">[[Fail:National anthem of South Korea, performed by the United States Navy Band.wav]]</div>
==Ya̱fang==
<references/>
{{Bibyin A̱siya}}
[[Sa:Kworiya A̱tak]]
[[Sa:Bibyin_swanta]]
[[Sa:Bibyin_A̱siya]]
[[Sa:Bibyin_A̱tyin_A̱siya]]
0x6f47zq7tld8h4z55o524zgddhutue
Kworiya A̱za
0
534
14323
13399
2022-06-13T10:20:00Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
A̱byin '''Kworiya A̱za''', (Kworiya: 조선/朝鮮, bwan MR: ''Chosŏn''; ma̱ a̱ca̱caat 북조선/北朝鮮, MR: ''Pukchosŏn'', ku 북한/北韓, bwan RR: ''Bukhan'' mi̱ Kworiya A̱tak; Shong: North Korea) á̱ lyen di̱̇ yorong ofisha hu nang '''Ri̱pobi̱li̱k Di̱mokrasi Á̱niet Kworiya''' wu, '''RDÁ̱K''' ku '''RDÁ̱ Kworiya''' ma̱ng '''Kworiya, RDÁ̱''' (Kworiya: 조선민주주의인민공화국/朝鮮民主主義人民共和國, ''Chosŏn Minjujuŭi Inmin Konghwaguk''; Shong: Democratic People's Republic of Korea, DPRK ku DPR Korea ku Korea, DPR) a̱ni, yet a̱byin kya di̱ fam a̱byin A̱tyin A̱siya. Kikya yet á̱kum nkap Li̱m-a̱byin Korea ka̱ shyia̱ tazwa ka a̱ni. A̱byin Kworiya A̱za byia̱ a̱gi̱gak ma̱ng [[Caina]] a mbeang [[Roshiya]] di̱ fam a̱za hu, ma̱ a̱ka̱ghyui Yalu (Amnok) ma̱ng Tumen na; ka̱ si̱ byia̱ gak ma̱ng [[Kworiya A̱tak]] di̱ fam a̱tak hu di̱ Zoni Kworiya nang á̱ ku Kam A̱khwot Á̱kwop a̱ni. Gak fam jenshyung nka hu si̱ myian di̱ khwong A̱ngam A̱sa̱khwot Kworiya hu hwa ma̱ng Kyai A̱sa̱khwot Bagina hu, ma̱nang gak fam a̱tyin nka hu myian di̱ khwong Kyai A̱sa̱khwot Ja̱pan hu a̱ni. A̱byin Kworiya A̱za, nang a̱byin hyia̱k nka ka, yong ci̱k nyia̱ kikya yet a̱tsak a̱gwomna̱ti a̱mgba̱m li̱m-a̱byin hu ma̱ng bibyin a̱ka̱wa̱tyia̱ a̱sa̱khwot hyia̱k hu. A̱keang Pyongyang kya yet a̱keangtung a̱byin ka ma̱ng a̱gba̱ndang a̱keang a̱ swak mi̱ shi kyai a̱byin a̱ni.
[[Fail:Flag of North Korea.svg|thumb|Tuta a̱byin Kworiya A̱za]]
[[Fail:Coat of Arms of North Korea.svg|thumb|A̱lama a̱byin Kworiya A̱za]]
[[Fail:Democratic People's Republic of Korea (orthographic projection).svg|thumb|Ta̱si̱la a̱byin Kworiya A̱za]]
==Ya̱fang==
<references/>
{{Bibyin A̱siya}}
[[Sa:Bibyin_swanta]]
[[Sa:Bibyin_A̱siya]]
[[Sa:Bibyin_A̱tyin_A̱siya]]
luxo04o0blvomhkgp87mevukqj81y35
Kyai A̱sa̱khwot Ati̱lantik
0
535
6072
6071
2022-05-16T12:49:37Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[A̱gba̱ndang Kyai A̱sa̱khwot Ati̱lantik]]
37tr93upd63o1zsx30595b6ai37zi29
Kyai A̱sa̱khwot A̱za
0
536
14324
13400
2022-06-13T10:20:05Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
'''Kyai A̱sa̱khwot A̱za''' hu (Shong: North Sea), yet kyai a̱sa̱khwot hwa da̱ [[A̱gba̱ndang Kyai A̱sa̱khwot Ati̱lantik]] wu tsi̱tsak bibyin [[A̱gba̱ndang Bi̱ri̱ti̱n]] (ma̱ a̱ca̱caat bibyin [[Nggi̱lan]] ma̱ng Si̱koti̱lan), Jutlan (mi̱ Denmak), Nowee, [[Jami̱ni]], Na̱da̱lans hu, Ba̱ljiyom ma̱ng Hauts-de-France (mi̱ [[Fi̱ransa]]). Ku yet kyai a̱sa̱khwot nang a̱byin keang (ku "a̱vwuo ka̰ byia̱ nfang di̱ khwong kyai a̱sa̱khwot") hwa a̱ni a̱zanu kyai a̱sa̱khwot vam-a̱byin [[Yurop]] ka, ku fwuop a̱gba̱ndang kyai a̱sa̱khwot wu di̱n vak English Channel hu di̱ fam a̱tak hu ma̱ng Kyai A̱sa̱khwot Nowee hu di̱ fam a̱za hu. Ku laai lan kilomita 970 (met 600) mi̱ shi a̱swap ma̱ng kilomita 580 (met 360) mi̱ shi á̱kpai, ku si̱ kup kilomita a̱ma̱ntanaai 570,000 (met a̱ma̱ntanaai 220,000).
[[Fail:NASA NorthSea1 2.jpg|thumb|Ta̱si̱la Kyai A̱sa̱khwot A̱za nang NASA ku kyiak a̱ni]]
==Ya̱fang==
<references/>
[[Sa:Nvam_a̱sa̱khwot_swanta]]
[[Sa:Nkyai_A̱sa̱khwot_swanta]]
qa8fcjyyzl85yysia0clcfa5bl1pj76
Kyai A̱sa̱khwot Ba̱ltik
0
537
14325
13401
2022-06-13T10:20:10Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
[[Fail:Baltic Sea map.png|thumb|Ta̱si̱la fam-a̱byin Kyai A̱sa̱khwot Ba̱ltik hu]]
'''Kyai A̱sa̱khwot Ba̱ltik''' hu yet sa [[A̱gba̱ndang Kyai A̱sa̱khwot Ati̱lantik]] ja nang bibyin Da̱nmak, Estoniya, Finlan, [[Jami̱ni]], Latviya, Lituweniya, Polan, [[Roshiya]], Swidin a mbeang A̱kpa̱kpai-a̱byin Yurop A̱za ma̱ng A̱ka̱wa̱tyia̱ keang a̱ni.
==Ya̱fang==
<references/>
[[Sa:Nvam_a̱sa̱khwot_swanta]]
[[Sa:Nkyai_A̱sa̱khwot_swanta]]
bj1jc8bm2n2697yvu25rquwk5c5e08v
Kyai A̱sa̱khwot Caina A̱tak
0
538
14326
13402
2022-06-13T10:20:15Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
{| class="wikitable" align=right border width="200"
| colspan="2" align=center|'''Kyai A̱sa̱khwot Caina A̱tak'''
|-
| colspan="2" align=center|[[Fail:Mar de China Meridional - BM WMS 2004.jpg|200px]]
|-
|[[Fail:South China Sea.jpg|thumb|Ta̱si̱la Kyai A̱sa̱khwot Caina A̱tak]]
|-
|}
'''Kyai A̱sa̱khwot Caina A̱tak''' hu yet kyai a̱sa̱khwot ku shyia̱ di̱ ngaan fam Jenshyung [[A̱gba̱ndang Kyai A̱sa̱khwot Pasi̱fi̱k]] wu wa. Ka̱ byia̱ a̱gi̱gak di̱ fam a̱za hu ma̱ng khwong kyai a̱sa̱khwot fam a̱byin Caina A̱tak hu (a̱jawa a̱lyoot nhu ka ku ghwut), di̱ fam jenshyung hu ma̱ng Li̱m-a̱byin Ndocaina hu, di̱ fam a̱tyin hu ma̱ng bibyin a̱ka̱wa̱tyia̱ a̱sa̱khwot [[Taiwan]] ma̱ng fam a̱za-jenshyung a̱byin [[Filipin]] hu (nang Luzon, Mi̱ndoro ma̱ng Pa̱la̱wan), a̱wot di̱ fam a̱tak hu ma̱ng Borneyo, fam a̱tyin Sumatra a mbeang Bibyin A̱ka̱wa̱tyia̱ A̱sa̱khwot Bangka Belitung hu, ku si̱ keang shi kyai kpa̱mkpaan kilomita a̱ma̱ntanaai 3,500,000 (met a̱ma̱ntanaai 1,400,000).
==Ya̱fang==
<references/>
[[Sa:Nvam_a̱sa̱khwot_swanta]]
[[Sa:Nkyai_A̱sa̱khwot_swanta]]
19q763r5h9lfqgf6glbimiz82xtv2w5
Kyai A̱sa̱khwot Karibi
0
539
15261
14328
2022-07-21T06:38:06Z
Gwanki
276
wikitext
text/x-wiki
{{databox}}
{| class="wikitable" align=right border width="200"
| colspan="2" align=center|'''Kyai A̱sa̱khwot Karibi'''
|-
| colspan="2" align=center|[[Fail:Amerikanisches Mittelmeer NASA World Wind Globe.jpg|thumb|Ghwughwu a̱ta̱ngwat tswam Kyai A̱sa̱khwot Karibi hu]]
|-
|[[Fail:Caribbean general map.png|thumb|Ta̱si̱la Kyai A̱sa̱khwot Karibi ji]]
|-
|}
'''Kyai A̱sa̱khwot Karibi''' hu (Si̱pen: Mar Caribe; Fi̱ransa: Mer des Caraïbes; Krio Haiti: Lamè Karayib; Patuwa Ja̱ma̱ika: Kiaribiyan Sii; Dot: Caraïbische Zee; Papyamento: Laman Karibe) yet kyai a̱byin ku shyia̱ di̱ ngaan fam jenshyung [[A̱gba̱ndang Kyai A̱sa̱khwot Ati̱lantik]] di̱ fam a̱yaatropik Á̱kum-a̱la̱u Jenshyung hu. Ku byia̱ a̱gi̱gak ma̱ng a̱byin [[Mikziko]] ma̱ng fam-a̱byin [[Amerika A̱ka̱wa̱tyia̱]] di̱ fam jenshyung ma̱ng a̱tak-jenshyung hu, di̱ fam a̱za hu ma̱ng A̱ca̱cet Antili ba̱ tsa ma̱ng [[Kuba]], di̱ fam a̱tyin hu ma̱ng A̱cyuang Antili ba, a̱wot di̱ fam a̱tak ma̱ng khwong kyai a̱sa̱khwot fam a̱za [[Amerika A̱tak]] hu.
==Ya̱fang==
<references/>
[[Sa:Nvam_a̱sa̱khwot_swanta]]
[[Sa:Nkyai_A̱sa̱khwot_swanta]]
rxe9il6doktx2gq2nv2rabzai24xpct
Kyai A̱sa̱khwot Meditaroniya
0
540
14329
13404
2022-06-13T10:20:25Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
[[Fail:Mediterranee 02 EN.jpg|thumb|Ta̱si̱la Kyai A̱sa̱khwot Meditaroniya]]
'''Kyai A̱sa̱khwot Meditaroniya''' hu (Shong: Mediterranean Sea) yet kyai a̱sa̱khwot hwa ku fwuop ma̱ng [[A̱gba̱ndang Kyai A̱sa̱khwot Ati̱lantik]] wu, Kham Meditaroniya ji si̱ keang nhu a̱wot bibyin hyia̱k hu si̱ nyia̱ kpa̱mkpaan ku kup nhu a̱mgba̱m: di̱ fam a̱za hu nfam a̱byin Jenshyung ma̱ng A̱tak Yurop nshyia̱ a mbeang li̱m-a̱byin Anatoliya, a̱wot di̱ fam a̱tak hu A̱za Afrika si̱ myian a̱ja, a̱wot di̱ fam a̱tyin hu Levant hu si̱ shyia̱. Kyai A̱sa̱khwot hu ku yet a̱gba̱mgbam kap nkhang gbangbang tat-á̱ghyi A̱shong wu. Shimba á̱ di̱n jen jhyang, á̱ ni̱ nnwuan Kyai A̱sa̱khwot Meditaroniya hu nang a̱gba̱mgbam nkap A̱gba̱ndang Kyai A̱sa̱khwot Ati̱lantik wu a̱ni, á̱ ka nkhap nhu zan nang vam a̱sa̱khwot ghyang hwa a̱ni. Sheda Lyen-a̱byin ku tyai nyia̱ kpa̱mkpaan ma̱ng ndyia̱ miliyon 5.9 gbangbang, Meditaroniya hu ku tyat neet di̱ Ati̱lantik wu a̱wot ku si̱ khwot di̱n kap ku di̱ tityak da̱ a̱cak ndyia̱ 600,000 di̱n jen jhya̱ nfak Mesiniya ji a̱wot ku bu sii du nhyat mat a̱ri̱giwa Za̱nki̱lea wu kpa̱mkpaan ma̱ng ndyia̱ miliyon 5.3 gbangbang.
[[Sa:Nvam_a̱sa̱khwot_swanta]]
[[Sa:Nkyai_A̱sa̱khwot_swanta]]
1s62hg4tusxxf9fhmsy82kcsci3gffi
Kyai A̱sa̱khwot Ndiya
0
541
6133
6132
2022-05-16T12:51:01Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[A̱gba̱ndang Kyai A̱sa̱khwot Ndiya]]
eh5jed0jb1y6po8se4mi2z4b122maqe
Kyai a̱li
0
542
12356
6149
2022-05-21T04:55:05Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
[[Fail:The National Archives UK - CO 1069-26-22.jpg|thumb|1) A̱mami kyai a̱li, sot a̱suswak - [[Banjut|Bathurst]], [[Gambya]] - Zwat Swak ma̱ng Sweang 1910
<br />2) A̱mami kyai a̱li - A̱li ma̱ng a̱suswak - Bathurst, Gambya - Zwat Swak ma̱ng Sweang 1910 <br />3) A̱ta̱mpwom a̱kusuru - Bathurst, Gambya - Zwat Swak ma̱ng Sweang 1910]]
'''Kyai a̱li''' hu (á̱kpa '''nkyai a̱ka̱sa''' na) hu ka̱nang á̱ kyiak nang a̱vwuonswat á̱nietbishyi kya a̱ni, yet sot ni̱nok ja nang á̱ fam mi̱ kuzang fam a̱ni, a̱wot á̱niet ba ba̱ swat mami nhu bye yet á̱niet kyangbwak nyiung bya, (kidee Kyai a̱li Ma Da̱uke si̱ Kyangbwak Da̱ukee hu mi̱ Kanai Mali). Fam a̱li hu bye yet [[bat]] hwa, á̱ga̱faat, a̱ghwu ku nkyang njhyang, ku á̱ nyia̱ nhu ma̱ng ni̱nok hwa mut, ka̱nang á̱ nok nhu mi̱ kyai hwa á̱ si̱ tung nhu ndung.
==Ya̱fang==
<references/>
qj7taolweyyt7qo8iwlu6hfyrvdequl
Kyang Saai A̱pyia̱
0
543
6152
6151
2022-05-16T12:51:01Z
Jon Harald Søby
8
2 revisions imported
wikitext
text/x-wiki
#REDIRECT [[Byia̱k (a̱pyia̱)]]
j2o3fv7169ce1n2jp2nyo9tntn09t6d
Kyangcung
0
544
14330
13405
2022-06-13T10:20:30Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
[[Fail:Transperth Volgren CR228L bodied Volvo B7RLE.jpg|thumb|upright=1.3|A̱yaabos bya yet vak shyei á̱niet nang ma̱ a̱di̱di̱t khwi a̱ni.]]
'''Kyangcung''' yet tangka̱i mashin hwa ku shyei á̱niet ku kpa̱t neet di̱ tyan jhyiung naat di̱ tyan jhyang. Nkyangcung bye kyiak ghwughwu a̱yaawagon, [[Tsaai tswam|tsaaí tswam]], [[Kyangcung ma̱to|nkyangcung ma̱to]] (tsaaí ndong, [[A̱da̱dei ma̱to|a̱cyuang a̱yaama̱to]], a̱ca̱cet ma̱to, a̱yaabos), nkyangcung a̱junjung ndang tswam (nkyangcung a̱byin, nkyangcung a̱gba̱ndang a̱gaat), nkyangcung a̱sa̱khwot (a̱ca̱cet kukwon a̱wak, kukwon a̱wak), nkyangcung a̱sa̱byin (nkyangcung bwan sukuru, hovakraf), nkyangcung tswazwa (a̱ka̱man tswam, a̱likofta, aerostat) ma̱ng kyangcung kyai tswazwa.<ref name="MacMillian">Halsey, William D. (Editorial Director): ''MacMillan Contemporary Dictionary'', page 1106. MacMillan Publishing, 1979. ISBN 0-02-080780-5</ref>
==Ya̱fang==
<references/>
[[Sa:Nkyangcung| ]]
[[Sa:Shyei nkyang]]
4zgy23c8a8yrgq39f5ie1snk74jqksz
Kyangcung ma̱to
0
545
14331
13406
2022-06-13T10:20:35Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
[[Fail:I-80 Eastshore Fwy.jpg|thumb|right|[[A̱yaasi̱tet Muná̱pyia̱]] ba, bibya ku tsa la̱u byia̱ á̱niet ba ba̱ byia̱ nkyangcung mi̱ swanta hu a̱ swak a̱ni, ma̱ng nkyangcung 832 na̱ nyia̱ ta̱m mbwak kuzang á̱niet 1000 ma̱ a̱lyia̱ 2016.]]
[[Fail:Yangzhou-WenchangLu-electric-bicycles-3278.jpg|thumb|Á̱ nyia̱ paki tsaaí tswam sa̱ti̱m ma̱ a̱tsak a̱gba̱ndang a̱gaat Yangjhyou, Wencang Lu. Jija yet vak a̱cyet nang á̱niet ba la̱u nyia̱ ta̱m ma̱ng a̱nhu mami a̱gba̱ndang a̱keang wuni, da̱ a̱ka̱vwuo á̱ghyang ji̱ nyia̱ kpa̱mkpaan swak tsaaí tswam kuzangmam ji mut mi̱ shi]]
'''Kyangcung ma̱to''', á̱ ka ndyen nang '''kyangcung a̱ti̱tak a̱naai''' a̱ni, yet [[kyangcung]] hwa ku bwan a̱pyia̱ nhu, di̱n jen ma̱ a̱di̱di̱t ku byia̱ [[Tak kyangcung|a̱ti̱tak]] a̱wot ku mi̱ tyong tazwa a̱junjung ndang ntswam bah (nang nkyangcung a̱byin ma̱ng nkyangcung a̱gba̱ndang a̱gaat) a̱wot á̱ ni̱ kyiak nhu á̱ shyei á̱niet ku mkpa̱t neet di̱ tyan jhyiung naat di̱ tyan jhyang.
==Ya̱fang==
<references/>
[[Sa:Nkyangcung ma̱to]]
2ww1v4hrcxx2pkm9qj29k1rm1izhg4b
Kyip
0
546
12359
6189
2022-05-21T04:55:35Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
[[Fail:17-07-02-Maidan Nezalezhnosti RR74377-PANORAMA.jpg|thumb|A̱li ma̱ng A̱yaakimera (Yuki̱ren: Будинок з химерами, Budynok z khymeramy)]]
A̱keang '''Kyip''' (Yuki̱ren: Київ, ''Kyiv'') kya yet a̱keangtung ma̱ng a̱gba̱ndang a̱keang a̱ swak ma̱ng shi á̱niet a̱ni ma̱ a̱byin [[Yuki̱ren]]. Ka̱ shyia̱ di̱ fam a̱za-a̱ka̱wa̱tyia̱ Yuki̱ren hwa da̱ a̱beam A̱ghyui Dnieper ka. Ma̱ a̱tuk mam 1 Zwat Jhyiung 2021, á̱ sak shi á̱niet nka ma̱ 2,962,180,<ref name="Number of present population of Ukraine 1 January 2021">[http://database.ukrcensus.gov.ua/PXWEB2007/ukr/publ_new1/2021/zb_chuselnist%202021.pdf Чисельність населення м.Києва] (di̱ Yuki̱ren) [Number of present population of Ukraine 1 January 2021] (di̱n Shong). UkrStat.gov.ua (1 Zwat jhyiung 2021).</ref> si̱ ku tyia̱ Kyiv ku yet a̱gba̱ndang a̱keang a̱natat mi̱ [[Yurop]] a̱ swak ma̱ng shi á̱niet a̱ni.<ref>[http://www.citymayors.com/features/euro_cities1.html|website=www.citymayors.com=City Mayors: The 500 largest European cities (1 to 100)] (di̱n Shong). Citymayors.</ref>
==Ya̱fang==
<references/>
68p9w21rvjfi68fd4d6eaw03get03to
Kyuat
0
547
6191
6190
2022-05-16T12:51:03Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[Kywat]]
5fe7mv5ymeiz8o56e1pkzm6gul6oqjd
Kyunkyuo
0
548
6193
6192
2022-05-16T12:51:03Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[Kikyo]]
ca330vpiz288aam12g06k53yiysdbwc
Kywat
0
549
12360
6205
2022-05-21T04:55:45Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
[[Fail:Flower poster 2.jpg|thumb|upright=1.5|Nkywat ku susot nkywat nang susotbishyi ''Angiosperm'' swak ma̱ng sweang neet di̱ nkyangbwak nvwuon.]]
[[Fail:Blüten 1.jpg|thumb|upright=1.5|Khai nkywat na̱ byia̱ nok ku vwuon a̱ni mi̱ mban nvwuon ndaai á̱ga̱fi̱p ''vascilar'' nna na]]
'''Kywat''' a̱kwon hu (á̱kpa '''nkywat''' a̱ka̱kwon ''na''), di̱n jen jhyang á̱ ka ngyei '''fuut''' a̱ni, yet kap a̱tyin a̱ga̱fi̱p hwa ku byia̱ a̱meang ma̱ng saat á̱ga̱fi̱p ba̱ ghwut ma̱ng a̱nhu a̱ni (á̱ga̱fi̱p ba̱ shyia̱ da̱ a̱ka̱u ''Angiospermae'').
lal2l0zw0ea3hrvasey8whkjmxag3ii
La̱kwoja
0
550
14332
13407
2022-06-13T10:21:01Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
[[Fail:View of Lokoja city from mountain Patti, Lokoja.jpg|thumb|Nwuan a̱gba̱ndang a̱keang La̱kwoja neet a̱zafan Pa̱ti.]]
'''La̱kwoja''' yet a̱gba̱ndang a̱keang wa mi̱ [[Naijeriya]]. A̱ swan ca̱caat ma̱ng a̱mun [[A̱ghyui Nija|A̱ghyui Neja]] a mbeang [[A̱ghyui Benuwe|Benuwe]], nggu wa saa ngyet a̱keangtung [[Si̱tet Kogi]]. A̱wot nnwap Oworo, Bassa Ngge a mbeang A̱nupe na yet byina̱byin a̱jawa ma̱nang nnwap a̱si̱n Naijeriya á̱ghyang nang Kupa-A̱nupe, [[A̱kpat]], Igbira, [[A̱ga̱ra]], A̱kuma̱cyi, A̱do, ma̱ng Zi̱ya ba mun ta a̱ni̱nan a̱ja. Á̱ ku tyan a̱keang ka ka̱ yet a̱tat mami a̱ka̱keang na na̱ laai a̱nggang a̱ni mi̱ vam-a̱byin [[Afrika]], kyiak neet a̱lyia̱ 2020 ba̱ng si̱ tat 2025, ma̱ng laai 5.93%.<ref>[https://www.visualcapitalist.com/ranked-the-worlds-fastest-growing-cities/ Ranked: The World’s Fastest Growing Cities=virtual capitalist] (di̱n Shong).</ref>
==Ya̱fang==
<references/>
== A̱ka̱fwuop nta ==
[[Sa:La̱kwoja]]
[[Sa:A̱kakeangtung a̱yaasi̱tet Naijeriya]]
[[Sa:A̱ka̱vwuo na̱ byia̱ á̱niet ma̱ ba̱t mami Si̱tet Kogi]]
[[Sa:A̱ca̱cet a̱ka̱keang Naijeriya]]
[[Sa:Naijeriya]]
[[Sa:Si̱tet_Kogi]]
dxnylupswb7kogb45m7nt0sysx0vpeg
La̱u shuga a̱sok
0
551
12362
6233
2022-05-21T04:56:05Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
'''La̱u shuga a̱sok''' yet swat ghyang hwa nang shi gi̱lukot hu mami plasma a̱sok wu na swak si̱ hu á̱ maai tyan a̱ni. Si̱ huni da̱ a̱ka̱nyiung yet shi shuga hwa ku swak 11.1 mmol / l (200 mg / dl), a̱yaalama nzwan maai ci á̱pyia̱mba ba̱ lak tyai si̱ nang a̱ka̱fi̱ng na shi na̱ si̱ tat kpa̱mkpaan ma̱ng 13.9-16.7 mmol / l (~ 250-300 mg / dl). Á̱ nkyiak a̱tyu a̱ byia̱ tsi̱tsak ~ 5.6 ma̱ng ~ 7 mmol / l (100-126 mg / dl) (coknvak Sot Zwan Shuga Amerika) nang nggu a̱ byia̱ la̱u shuga a̱sok ma̱ a̱da̱dei, a̱wot nggu da̱ a̱ byia̱ swak 7 mmol / l (126 mg / dl) da̱ a̱ka̱nyiung á̱ kyiak nggu nang a̱tyu a̱ byia̱ zwan shuga wa a̱ni.
{| class="wikitable" align=right border width="200"
| colspan="2" align=center|'''La̱u shuga a̱sok'''
|-
| colspan="2" align=center|[[Fail:Hyperglycemia.png|300px|center]] <sub>A̱sai a̱ma̱ntataa mi̱ ghwughwu hu yong da̱ a̱kwonu a̱yaamolekut gi̱lukot, ba̱ mbeang shi á̱kpa mi̱ ghwughwu a̱tatak hu.</sub>
|-
|}
==Ya̱fang==
<references/>
qcr7kim2pnd67ty5sx6w0tc8uk6c27d
Le Corbusier
0
552
15584
14333
2022-08-07T20:23:37Z
Kambai Akau
15
wikitext
text/x-wiki
{{Databox}}
[[Fail:Le Corbusier (1964).jpg|197px|right]]
'''Charles-Édouard Jeanneret''' (6 Zwat Swak 1887 – 27 Zwat A̱ni̱nai 1965), á̱ ku lyen nggu nang '''Le Corbusier''' a̱ni, ku yet a̱tyulyen ghwang a̱ka̱sa Shwit-Fi̱ransa wa, a̱tyughwang, a̱tyuswup nghwughwu, a̱tyughwang khwom a̱ca̱cet a̱ka̱keang, a̱tyulyuut, ma̱ng a̱nyiung ma̱ng á̱niet ba ba̱ ku jhyi vak mat kyang hu nang á̱ ngyei lyen ghwang a̱ka̱sa mam a̱fwun hu ma̱nini a̱ni ku ta á̱ni̱nan. Á̱ ku byin nggu ma̱ a̱byin [[Shwit]] kya a̱wot a̱ si̱ bai yet a̱tyobyin [[Fi̱ransa]] ma̱ a̱lyia̱ 1930. A̱kariya nggu wu ku ngaat ndyia̱ nswak nfwuon, a̱wot a̱ si̱ nghwak nghwughwu a̱ka̱nok mi̱ bibyin [[Yurop]], [[Ja̱pan]], [[Ndiya]], ma̱ng [[Amerika A̱za]] ma̱ng [[Amerika A̱tak|A̱tak]].
[[Sa:Á̱nietnyia̱ nghwughwu ma̱ng á̱nietlyen ghwang a̱ka̱sa]]
nt5ofu1iux02ctve06tq3tc3r30iidn
Lebanon
0
553
14757
14334
2022-07-04T08:32:06Z
Kwamikagami
349
wikitext
text/x-wiki
A̱byin '''Lebanon''' (yei Shong: /ˈlɛbənɒn, -nən/; La̱ra̱ba: لُبْنَان, ''lubnān''; yei La̱raba Lebanon: lɪbˈneːn),<ref>"[https://dictionary.cambridge.org/dictionary/english/lebanon Lebanon | meaning in the Cambridge English Dictionary]".</ref> á̱ lyen di̱ yorong ofisha hu nang '''Ri̱pobi̱lik Lebanon wu''', yet a̱byin ka̱ lyiat La̱ra̱ba kya<ref>"[https://www.bbc.com/news/world-middle-east-14647308 news Lebanon country profile]" (di̱n Shong). BBC News (11 Zwat A̱ni̱nai 2020).</ref> ma̱ka̱wa̱tyia̱ fam a̱byin A̱ka̱wa̱tyia̱ A̱tyin hu a̱ni, ka̱ swat di̱ fam a̱byin Jenshyung A̱siya hu. Ka̱ byia̱ a̱gi̱gak ma̱ng [[Suriya]] di̱ fam a̱za hu ma̱ng a̱tyin a mbeang [[Isi̱rela]] di̱ fam a̱tak hu, ma̱nang [[Kuburut]] si̱ myiai gbang bah di̱ fam jenshyung nka a̱ma̱nyi [[Kyai A̱sa̱khwot Meditaroniya]] ka. Myiai Lebanon da̱ a̱yaaga̱sat nvak Kham Meditaroniya ma̱ng bibyin A̱la̱ra̱ba a̱ma̱nta ba ku mbeang a̱dodo nkhang gbangbang a̱byin ka ku si̱ ka njhyi sheda taada nka ku nhyat ma̱ng susot a̱dini ma̱ a̱di̱di̱t a̱ni.<ref>McGowen, Afaf Sabeh; Collelo, Thomas (ed.) (1989). "[http://hdl.loc.gov/loc.gdc/cntrystd.lb Lebanon: A Country Study]" ''[Historical Setting]'' (di̱n Shong). Area Handbook Series (Jhyuk 3). Washington, D.C.: The Division. OCLC 18907889.</ref> A̱byin Lebanon yet mali á̱niet kpa̱mkpaan miliyon a̱taa kya, ka̱ si̱ kup shi a̱byin ku sii laai tat kilomita a̱ma̱ntanaai 10,452 (met a̱ma̱ntanaai 4,036), ka̱ si̱ kin ngyet a̱nyiung mi̱ bibyin swanta ku yet a̱cyuang a̱ni mami A̱siya di̱n vak shi a̱byin a̱ni. Á̱niet ba̱ lyiat La̱ra̱ba ba a̱ni, bibya yet a̱di̱di̱t wu mi̱ shi á̱niet a̱byin hu, ma̱nang La̱ra̱ba ja yet a̱lyem ofisha ka, a̱wot á̱ ka ndyiat La̱ra̱ba Lebanon ji a mbeang La̱ra̱ba Kidee a̱si̱ Ce ji kuzang a̱tuk.
[[Fail:Flag of Lebanon.svg|thumb|Tuta Lebanon]]
[[Fail:Coat of Arms of Lebanon.svg|thumb|A̱lama a̱byin Lebanon]]
[[Fail:Lebanon (orthographic projection).svg|thumb|Ta̱si̱la a̱byin Lebanon]]
==Ya̱fang==
<references/>
{{Template:Bibyin A̱siya}}
[[Sa:Bibyin_swanta]]
[[Sa:Bibyin_A̱siya]]
[[Sa:Bibyin_Jenshyung_A̱siya]]
fhjeoxox423iwcv4m98a5y0ihqrue1j
Lee Min-ho
0
554
6270
6269
2022-05-16T12:51:06Z
Jon Harald Søby
8
13 revisions imported
wikitext
text/x-wiki
{| class="wikitable" align=right border width="200"
| colspan="2" align=center| '''Lee Min-ho'''<br>'''이민호/李敏鎬'''
|-
| colspan="2" align=center|[[File%3ALee Min-ho - KCON 2016 (cropped).jpg|250px]]
|-
|}
Lee Min-ho(Kworiya: 이민호/李敏鎬 , byin a̱tuk mam 22 Zwat 6 1987) yet a̱tyu nkhang Telvishon Ri̱pobi̱lik Á̱niet [[Kworiya A̱tak]] wa. <ref>{{cite web|url=https://www.hancinema.net/korean_Lee_Min-ho.php|title=Lee Min-ho (이민호, Korean actor) @ HanCinema :: The Korean Movie & Drama Database|website=HanCinema|access-date=August 18, 2018|archive-date=August 18, 2018|archive-url=https://web.archive.org/web/20180818115207/https://www.hancinema.net/korean_Lee_Min-ho.php|url-status=live}}</ref> <ref>{{Cite web|url=http://www.munhwa.com/news/view.html?no=20200807MW07423210103|title=스튜디오드래곤 2분기 매출액 1614억원·영업이익 169억원…역대 최고매출|website=www.munhwa.com|access-date=April 30, 2021|archive-date=February 4, 2021|archive-url=https://web.archive.org/web/20210204082046/http://www.munhwa.com/news/view.html?no=20200807MW07423210103|url-status=live}}</ref>
==Ya̱fang==
<references/>
== A̱ka̱fwuop nta ==
*[http://www.leeminho.kr/]
hvgvtbg5mbj0ciuiu9s6n41x7lk22l1
Legwot
0
555
14336
13410
2022-06-13T10:21:16Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
[[Fail:flag of Lagos.svg|thumb|Tyiang a̱toot shi Legwot]]
A̱keang '''Legwot''' ([[Shong (a̱lyem)|Shong]]: Lagos; yei Shong Naijeriya: /ˈleɪɡɒs/; A̱ghwangkpang: Èkó) kya yet [[Lyulyoot a̱ca̱cet a̱ka̱keang Naijeriya di̱n vak shi á̱niet|a̱gba̱ndang a̱keang a̱ swak ma̱ng á̱nietbishyi]] ma̱ a̱byin [[Naijeriya]] ma̱ng [[Lyulyoot a̱ca̱cet a̱ka̱keang Afrika di̱n vak shi á̱niet|a̱gba̱ndang a̱keang a̱feang wu mami Afrika]] a̱ma̱lyim a̱keang [[Kinshasa]], [[Ri̱pobi̱lik Di̱mokrasi a̱si̱ Konggo wu|RDK]], a̱ si̱ byia̱ shi á̱niet miliyon 14.8 mi̱ da̱ a̱lyia̱ 2021 mami a̱gba̱ndang a̱keang wu ci̱k. [[Sot metropolitan]] Legwot ji byia̱ a̱kuu shi á̱niet miliyon 21.3 wa, ji̱ si̱ yet sweang ma̱ng shi kyai di̱ susot metropolitan Afrika ji a̱mgba̱m, a̱ma̱lyim a̱keang Kairo.<ref>"[https://www.nytimes.com/2014/01/08/opinion/what-makes-lagos-a-model-city.html?_r=0 What Makes Lagos a Model City]". New York Times (7 Zwat Swak ma̱ng Jhyiung 2014).</ref><ref name="John Campbell">John Campbell (10 July 2012). "[https://www.theatlantic.com/international/archive/2012/07/this-is-africas-new-biggest-city-lagos-nigeria-population-25-million/259611/ This Is Africa's New Biggest City: Lagos, Nigeria, Population 21 Million]". ''Washington DC'': The Atlantic.</ref> Legwot yet a̱gba̱ndang a̱ka̱wa̱tyia̱ a̱bwuang Afrika wa a̱wot ji̱ si̱ ka ngyet kwop tung nzwa [[Si̱tet Legwot]] ma̱ng a̱mgba̱m [[Naijeriya]]. ''Megacity'' wu byia̱ ''GDP'' ku yet a̱naai ma̱ng shi mami Afrika<ref>"[https://bigthink.com/strange-maps/richest-cities-in-africa These cities are the hubs of Africa's economic boom]". Big Think (2018-10-04).</ref> ma̱ng a̱li jhyiung di̱ [[Akpakpa|tityan ngyong kukwon a̱wak kyai a̱sa̱khwot ji̱ swak mi̱ shi̱ ma̱ng naat mbwuot]] mi̱ vam a̱byin Afrika hu.<ref>"[http://businesstech.co.za/news/general/81995/africas-biggest-shipping-ports/ Africa's biggest shipping ports]". Businesstech (8 March 2015).</ref><ref>Brian Rajewski (1988)."[https://books.google.com/books?id=E-VwMKQlGjIC Africa, Volume 1 of Cities of the World: a compilation of current information on cultural, geographical, and political conditions in the countries and cities of six continents, based on the Department of State's "post reports"]". Gale Research International, Limited. ISBN 978-0-810-3769-22.</ref><ref name=global>Loretta Lees; Hyun Bang Shin; Ernesto López Morales (2015)."[https://books.google.com/books?id=Lzt7BgAAQBAJ&pg=PA315 |page=315 Global Gentrifications: Uneven Development and Displacement]". Policy Press. ISBN 978-1-447-3134-89.</ref> Ji̱ yet jhyiung di̱ a̱ca̱cet a̱ka̱keang na̱ laai shi a̱nggang swak a̱ni ta̱cya̱ ka a̱mgba̱m.<ref>"[https://books.google.com/books?id=tk5TP7bsXnkC&pg=PA202 African Cities Driving the NEPAD Initiative]". UN-HABITAT (2006). P. 202. ISBN 978-9-211318159.</ref><ref>"John Hartley; Jason Potts; Terry Flew; Stuart Cunningham; Michael Keane; John Banks (2012). "[https://books.google.com/books?id=sMnj88kYVmcC&pg=PT60 Key Concepts in Creative Industries]". P. 47. SAGE. ISBN 978-1-446-2028-90</ref>
==Ya̱fang==
<div style="height: 200px; overflow:auto; border: 1px solid gray; padding-right: 12px; background-color: #EEEEEE; ">
<references />
</div>
==A̱ka̱fwuop nta==
{{Template:A̱ka̱keang swanta}}
[[Sa:Naijeriya]]
[[Sa:A̱ka̱keang_mami_Naijeriya]]
[[Sa:A̱kakeangtung a̱yaasi̱tet Naijeriya]]
[[Sa:A̱ka̱vwuo na̱ byia̱ á̱niet ma̱ ba̱t mami Si̱tet Legwot]]
[[Sa:A̱ca̱cet a̱ka̱keang Naijeriya]]
0qycuy1hrs0of60rpypsf9smbz14g08
Leonardo DiCaprio
0
556
14903
14902
2022-07-15T21:28:05Z
Kambai Akau
15
Databox
wikitext
text/x-wiki
{{Databox|item=Q38111}}
'''Leonardo Wilhelm DiCaprio'''<ref>[https://www.britannica.com/biography/Leonardo-DiCaprio "Leonardo DiCaprio". Encyclopædia Britannica.]</ref> (yei Shong: /diˈkæprioʊ/; yei Italiya /diˈkaːprjo/; byin a̱tuk mam 11 Zwat Swak ma̱ng Jhyiung 1974 ) yet a̱tyu nkhang Telvishon [[Muná̱pyia̱ Sí̱tet]] wa.
==Fang a̱pyia̱==
*Cartlidge, Cherese (2011). "Leonardo DiCaprio". Greenhaven Publishing LLC. ISBN 978-1-4205-0427-9
*Catalano, Grace (1997). "[https://archive.org/details/leonardodicaprio00cata Leonardo DiCaprio: Modern-Day Romeo]". Dell Publishing Group. ISBN 978-0-440-22701-4
*Furgang, Kathy; Furgang, Adam (2008). "Leonardo DiCaprio: Environmental Champion". The Rosen Publishing Group, Inc. ISBN 978-1-4042-1764-5
*{{cite book|last=Green|first=Matt|title=Celebrity Biographies - The Amazing Life Of Leonardo Di Caprio and Robert Downey Jr. - Famous Stars|publisher=Matt Green|id=GGKEY:9WD0G16K1KF|year=2015}}
*{{cite book |last=Muir |first=John Kenneth |title=The Unseen Force: The Films of Sam Raimi |year=2004 |publisher=Applause: Theatre & Cinema Books |isbn=978-1-55783-607-6 |url-access=registration |url=https://archive.org/details/unseenforcefi00muir }}
*{{cite book |last=Müller |first=Jürgen |title=Movies of the 90s |year=2001 |publisher=[[Taschen]] |isbn=978-3-8228-5878-3}}
*{{cite book |last=Neibaur |first=James L. |title=The Essential Jack Nicholson |year=2016 |publisher=[[Rowman & Littlefield]] |isbn=978-1-4422-6989-7}}
*{{cite book |last=Ochoa |first=George |title=Deformed and Destructive Beings: The Purpose of Horror Films |year=2011 |publisher=McFarland |isbn=978-0-7864-8654-0}}
*{{cite book |author1=Sandler S |author2=Studlar G |title=Titanic: Anatomy of a Blockbuster |publisher=[[Rutgers University Press]] |isbn=978-0-8135-2669-0 |year=1999 |url-access=registration |url=https://archive.org/details/titanicanatomyof0000unse }}
*{{cite book |last1=Schwartz |first1=David |first2=Steve |last2=Ryan |first3=Fred |last3=Wostbrock |title=The Encyclopedia of TV Game Shows, 3rd Edition |publisher=Checkmark Books |isbn=978-0-8160-3847-3 |year=1999}}
*{{cite book |last=Slavicek |first=Louise Chipley |title=Leonardo DiCaprio |year=2012 |publisher=Infobase Learning |isbn=978-1-4381-4133-6}}
*{{cite book |title=Leonardo DiCaprio – The Biography |date=2012 |publisher=[[John Blake (journalist)#John Blake Publishing|John Blake Publishing Ltd.]] |isbn=978-1-85782-672-2 |last1=Wight |first1=Douglas}}
==Ya̱fang==
<references/>
==A̱ka̱fwuop nta==
* [https://leonardodicaprio.com/ Official Website]
* [http://leonardodicaprio.org/ Leonardo DiCaprio Foundation]
[[Sa:A̱yaasi̱tet Muná̱pyia̱]]
[[Sa:byin 1974]]
rcmplthegp27csupmwf8xkh2yv12cqe
Leonardo da Vinci
0
557
14338
13412
2022-06-13T10:21:27Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
[[Fail:Francesco Melzi - Portrait of Leonardo.png|197px|right]]
'''Leonardo di ser Piero da Vinci''' (15 Zwat Nyaai 1452 – 2 Zwat Tswuon 1519) ku yet a̱tyobyin [[Italiya]] wa a byia̱ lyen nkyang ma̱ a̱di̱di̱t di̱ jen A̱gba̱ndang Shyip ma̱ng Swuan ji, a̱nyan wa ku nyia̱ ta̱m nang a̱tyuswup ghwughwu, a̱tyughwang mi̱ ghwang, a̱bwokntswam, a̱tyulyensains, a̱gwak lyen wa̱i nkyang, a̱tyumat ghwughwu ma̱ng a̱tyulyen ghwang a̱ka̱sa. Ma̱nang á̱ ku ntsa lyen nggu mat nta̱m nggu na nang a̱tyuswup ghwughwu a̱ni, a̱ si̱ ka mbwuo a̱lyoot ma̱ a̱pyia̱ nggu mat nkwambwatlyuut nggu na, da̱nang gu ku nghwak a̱ si̱ ka ndyuut nkyang tazwa pyipyia̱ a̱lyiat ma̱ vwuon, nang mi̱ tat-a̱pyia̱ lyen vam, lyen á̱ta̱ngwat, lyen á̱ga̱fi̱p, lyen ghwang ta̱si̱la, swup ghwughwu, ma̱ng lyen nkhang fosi̱t a̱ka̱mat. yet kokwak Leonardo si̱ tyia̱ kyang hu nang á̱niet guguut hyumanis di̱n jen Shyip ma̱ng Swuan ji fa a̱ni ku yet a̱tsotswat kidee, a̱wot kpa̱m nta̱m nggu hu si̱ beang nta̱m nce á̱nietnyia̱ nghwughwu na̱ bai a̱zanson nggu, a̱wot a̱tyonyiung a̱ ku tai nggu ma̱nyin di̱ nta̱m ma̱ng lyen nkyang wa si̱ yet a̱shyushyo nggu wu mi̱ di̱n jen a̱ja nang á̱ ngyei [[Michelangelo]] a̱ni.
[[Sa:Á̱nietnyia̱ nghwughwu ma̱ng á̱nietlyen ghwang a̱ka̱sa]]
[[Sa:Byin_1452]]
[[Sa:Kwi_1519]]
o4roc2cstqw4zp8n8y2f8o1l84n3uex
Leslie Cheung
0
558
6366
6365
2022-05-16T12:51:09Z
Jon Harald Søby
8
14 revisions imported
wikitext
text/x-wiki
[[Fail:Leslie_Cheung.jpg|250px|thumb|Leslie Cheung]]
'''Leslie Cheung'''(Caina: 張國榮, byin a̱tuk mam 12 Zwat 9 1956 – 1 Zwat 4 2003<ref>Corliss, R. (2003). [https://web.archive.org/web/20110321053100/http://www.time.com/time/arts/article/0,8599,440214,00.html "That old feeling: Days of being Leslie"] ''Time'' magazine Asia Edition. Retrieved 17 December 2005.</ref><ref>Bruce Einhorn, [http://www.businessweek.com/bwdaily/dnflash/apr2003/nf20030414_7155_db010.htm "Hong Kong: A City in Mourning"], ''Bloomberg BusinessWeek'', 14 April 2003</ref><ref>Yu Sen-lun, [http://www.taipeitimes.com/News/feat/archives/2003/04/10/201584 "The Leslie Cheung Legend Lives on"], ''TaiPei Times'', 10 April 2003</ref><ref>[http://news.xinhuanet.com/english/2005-04/02/content_2775786.htm "Activities to Commemorate Leslie Cheung"] , Xinhua, 2 April 2005</ref><ref>[http://news.bbc.co.uk/1/hi/entertainment/film/2906999.stm "Actor Leslie Cheung 'found dead'"], BBC, 1 April 2003</ref>) yet a̱tyu nkhang Telvishon [[Hong Kong]] wa.
==Ya̱fang==
<references/>
== A̱ka̱fwuop nta ==
*[https://www.imdb.com/name/nm0002000/ Leslie Cheung at IMDb]
acc6kwaz5meq0qtuonhotd6rslfot4f
Lilyem A̱ka̱wa̱tyia̱ Pi̱lato
0
559
14339
13413
2022-06-13T10:21:31Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
'''Lilyem A̱ka̱wa̱tyia̱ Pi̱lato''' ku shyia̱ kpa̱mkpaan nswak nfeang hu a̱ni yet sa jhyiung ja di̱ lilyem Pi̱lato hu nang á̱ lyiat di̱ fam a̱ka̱wa̱tyia̱ a̱byin [[Naijeriya]] hu. [[Tyap (a̱lyem)|Tyap]] ji byia̱ á̱nietlyiat ba̱ tat 130,000, a̱wot a̱lyem a̱meang nji ka [[Jhyuo (a̱lyem)|Jhyuo]] (ku Jju) si̱ byia̱ si̱ ku swak á̱nietlyiat 300,000 a̱ni. Ma̱nang [[Da (a̱lyem)|Daa]] (ku Hyam) si̱ byia̱ 100,000. Cori si̱ bwuo a̱pyia̱ nka a̱lyoot ma̱nang ka̱ yet a̱nyiung mami a̱bacyuang lilyem ku byia̱ mban a̱nwuat a̱taa a̱ni, shimba a̱tat nia nang á̱ nyia̱ ta̱m ma̱ng á̱na di̱ lyuut.
==Ya̱fang==
<references/>
==A̱ka̱fwuop nta==
*[http://www.rogerblench.info/Language/Niger-Congo/BC/Plateau/PlOP.htm Lyuut Pi̱lato] mbwak Roger Blench
[[Sa:Lilyem A̱ka̱wa̱tyia̱ Pi̱lato| ]]
[[Sa:Lilyem Pi̱lato]]
i66c1swkbniwbrocuw2lrt391h8ty7l
Lyulyoot sí̱tet Naijeriya di̱ nce
0
560
13132
13131
2022-05-30T09:15:05Z
Kambai Akau
15
wikitext
text/x-wiki
Sí̱tet Naijeriya ja á̱ tak ca̱caat ma̱ng nce (á̱tuk mbwoi) nji na nji tatak ka a̱ni.<ref>[https://oldnaija.wordpress.com/2015/07/26/how-nigeria-got-to-36-statestimeline-of-state-creation-in-nigeria/ How Nigeria got to 36 States. Timeline of State creation in Nigeria.] (di̱n Shong) ''Old Naija''.</ref>
{| class="wikitable sortable plainrowheaders" style="text-align:left;"
|- bgcolor=#e8e8e8
! align="left" scope="col" | Si̱tet
! align="center" scope="col" | A̱tuk mbwoi
! scope="col" | A̱lyoot A̱shai
|-
| align="left" | [[Si̱tet Abya]]
| align="center" | 27 Zwat A̱ni̱nai 1991
| align="left" | [[Si̱tet Imo]]
|-
| align="left" | [[Si̱tet A̱da̱mawa]]
| align="center" | 27 Zwat A̱ni̱nai 1991
| align="left" | [[Si̱tet Gonggola]]
|-
| align="left" | [[Si̱tet A̱kwa Ibom]]
| align="center" | 23 Zwat A̱kubunyiung 1987
| align="left" | [[Si̱tet Ki̱rosi̱riva]]
|-
| align="left" | [[Si̱tet A̱na̱mba̱ra]]
| align="center" | 27 Zwat A̱ni̱nai 1991
| align="left" | (a̱khwukhwop) [[Si̱tet A̱na̱mba̱ra]]
|-
| align="left" | [[Si̱tet Ba̱uci]]
| align="center" | 3 Zwat Sweang 1976
| align="left" | [[Si̱tet A̱za-A̱tyin]]
|-
| align="left" | [[Si̱tet Bayelsa]]
| align="center" | 1 Zwat Swak 1996
| align="left" | [[Si̱tet Rivas]]
|-
| align="left" | [[Si̱tet Benuwe]]
| align="center" | 3 Zwat Sweang 1976
| align="left" | [[Si̱tet Benuwe-Pi̱lato]]
|-
| align="left" | [[Si̱tet Ba̱rno]]
| align="center" | 3 Zwat Sweang 1976
| align="left" | [[Si̱tet A̱za-A̱tyin]]
|-
| align="left" | [[Si̱tet Ki̱rosi̱riva]]
| align="center" | 27 Zwat Tswuon 1967
| align="left" | [[Fam-a̱byin A̱tyin, Naijeriya|Fam-a̱byin A̱tyin]]; á̱ ka ngyei Si̱tet A̱tak-A̱tyin kyiak neet ma̱ a̱lyia̱ 1967 ba̱ng si̱ tat a̱lyia̱ 1976.
|-
| align="left" | [[Si̱tet Da̱li̱ta, Naijeriya|Si̱tet Da̱li̱ta]]
| align="center" | 27 Zwat A̱ni̱nai 1991
| align="left" | [[Si̱tet Bendel]]
|-
| align="left" | [[Si̱tet A̱bonyi]]
| align="center" | 1 Zwat Swak 1996
| align="left" | [[Si̱tet Inugu]] ma̱ng [[Si̱tet Abya]]
|-
| align="left" | [[Si̱tet A̱do]]
| align="center" | 27 Zwat Swak 1991
| align="left" | [[Si̱tet Bendel]]
|-
| align="left" | [[Si̱tet Ikiti]]
| align="center" | 1 Zwat Swak 1996
| align="left" | [[Si̱tet Ondo]]
|-
| align="left" | [[Si̱tet Inugu]]
| align="center" | 27 Zwat A̱ni̱nai 1991
| align="left" | (a̱khwukhwop) [[Si̱tet A̱na̱mba̱ra]]
|-
| align="left" | [[Si̱tet Gwombe]]
| align="center" | 1 Zwat Swak 1996
| align="left" | [[Si̱tet Ba̱uci]]
|-
| align="left" | [[Si̱tet Imo]]
| align="center" | 3 Zwat Sweang 1976
| align="left" | [[Si̱tet A̱tyin A̱ka̱wa̱tyia̱]]
|-
| align="left" | [[Si̱tet Ji̱gawa]]
| align="center" | 27 Si̱tet A̱ni̱nai 1991
| align="left" | [[Si̱tet Ka̱na̱u]]
|-
| align="left" | [[Si̱tet Ka̱duna]]
| align="center" | 27 Zwat Tswuon 1967
| align="left" | [[Fam-a̱byin A̱za, Naijeriya|Fam-a̱byin A̱za]]; á̱ ka ngyei Si̱tet A̱za-A̱ka̱wa̱tyia̱ kyiak neet ma̱ a̱lyia̱ 1967 ba̱ng si̱ tat a̱lyia̱ 1976.
|-
| align="left" | [[Si̱tet Ka̱na̱u]]
| align="center" | 27 Zwat Tswuon 1967
| align="left" | [[Fam-a̱byin A̱za, Naijeriya|Fam-a̱byin A̱za]]
|-
| align="left" | [[Si̱tet Ka̱sina]]
| align="center" | 23 Zwat A̱kubunyiung 1987
| align="left" | [[Si̱tet Ka̱duna]]
|-
| align="left" | [[Si̱tet Kebi]]
| align="center" | 27 Zwat A̱ni̱nai 1991
| align="left" | [[Si̱tet Sokoto]]
|-
| align="left" | [[Si̱tet Kogi]]
| align="center" | 27 Zwat A̱ni̱nai 1991
| align="left" | [[Si̱tet Kwara]]; [[Si̱tet Benuwe]]
|-
| align="left" | [[Si̱tet Kwara]]
| align="center" | 27 Zwat Tswuon 1967
| align="left" | [[Fam-a̱byin A̱za, Naijeriya|Fam-a̱byin A̱za]]; á̱ ku ngyei Si̱tet Jenshyung A̱ka̱wa̱tyia̱ kyiak neet ma̱ a̱lyia̱ 1967 ba̱ng si̱ tat a̱lyia̱ 1976.
|-
| align="left" | [[Si̱tet Legwot]]
| align="center" | 27 Zwat Tswuon 1967
| align="left" | Teritori Mundundung Legwot ma̱ng Provin Koloni ji
|-
| align="left" | [[Si̱tet Na̱sa̱rawa]]
| align="center" | 1 Zwat Swak 1996
| align="left" | [[Si̱tet Pi̱lato]]
|-
| align="left" | [[Si̱tet Nija]]
| align="center" | 3 Zwat Sweang 1976
| align="left" | [[Si̱tet A̱za-Jenshyung]]
|-
| align="left" | [[Si̱tet Ogun]]
| align="center" | 3 Zwat Sweang 1976
| align="left" | [[Si̱tet Jenshyung (Naijeriya)|Si̱tet Jenshyung]]
|-
| align="left" | [[S̄i̱tet Ondo]]
| align="center" | 3 Zwat Sweang 1976
| align="left" | [[Si̱tet Jenshyung (Naijeriya)|Si̱tet Jenshyung]]
|-
| align="left" | [[Si̱tet Oshun]]
| align="center" | 27 Zwat A̱ni̱nai 1991
| align="left" | [[Si̱tet Oyo]]
|-
| align="left" | [[Si̱tet Oyo]]
| align="center" | 3 Zwat Sweang 1976
| align="left" | [[Si̱tet Jenshyung (Naijeriya)|Si̱tet Jenshyung]]
|-
| align="left" | [[Si̱tet Pi̱lato]]
| align="center" | 3 Zwat Sweang 1976
| align="left" | [[Si̱tet Benuwe-Pi̱lato]]
|-
| align="left" | [[Si̱tet Rivas]]
| align="center" | 27 Zwat Tswuon 1967
| align="left" | [[Si̱tet A̱tyin, Naijeriya|Si̱tet A̱tyin]]
|-
| align="left" | [[Si̱tet Sokoto]]
| align="center" | 3 Zwat Sweang 1976
| align="left" | [[Si̱tet A̱za-Jenshyung]]
|-
| align="left" | [[Si̱tet Ta̱raba]]
| align="center" | 27 Zwat A̱ni̱nai 1991
| align="left" | [[Si̱tet Gonggola]]
|-
| align="left" | [[Si̱tet Yobe]]
| align="center" | 27 Zwat A̱ni̱nai 1991
| align="left" | [[Si̱tet Ba̱rno]]
|-
| align="left" | [[Si̱tet Za̱mfa̱ra]]
| align="center" | 1 Zwat Swak 1996
| align="left" | [[Si̱tet Sokoto]]
|-
| align="left" | [[Teritori A̱keangtung Mundundung, Naijeriya|Teritori A̱keangtung Mundundung]]
| align="center" | 3 Zwat Sweang 1976
| align="left" | Sí̱tet [[Si̱tet Benuwe-Pi̱lato|Benuwe-Pi̱lato]], [[Si̱tet A̱za-A̱ka̱wa̱tyia̱|A̱za-A̱ka̱wa̱tyia̱]], ma̱ng [[Si̱tet A̱za-Jenshyung|A̱za-Jenshyung]]
|-
|}
==Ya̱fang==
<references/>
ru1ovj5oa4xig2oze4flse9ap0d0rn2
Lionel Messi
0
561
14341
13165
2022-06-13T10:21:36Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
'''Lionel Andrés Messi''' (byin 24 Zwat A̱taa 1987), á̱ bu ngyei nggu '''Leo Messi''', a̱ yet a̱tyutsot a̱la̱u-a̱ti̱tak Ajentina wa a̱ kwak a̱son di̱ Sot A̱la̱u-a̱ti̱tak si̱ Ligue 1 nang á̱ ngyei Paris Saint-Germain a̱ sa ngyet a̱kwaka̱son Á̱fai-tsot a̱la̱u-a̱ti̱tak Ajentina meang.
{{Nkhang a̱tyutsot a̱la̱u-a̱ti̱tak mbwak a̱ghyang a̱niet
|name = Lionel Messi
|image = Lionel Messi 20180626.jpg
|caption = Messi ma̱ng Sot A̱niettsot A̱la̱u a̱ti̱tak A̱byin Ajentina ji di̱n jen a̱yangka̱nan A̱kurung Swanta 2018 ji
|full_name = Lionel Andrés Messi
|date_of_birth = 24 Zwat A̱taa 1987
|place_of_birth = Ajentina
|height =
}}
==Ya̱fang==
<references/>
[[Sa:Byin_1987]]
[[Sa:Á̱niettsot a̱la̱u-a̱ti̱tak]]
s5zc9g3gvkspc6n9pv6qi2uzldn9ix8
Lyulyoot a̱ka̱keangtung sí̱tet mi̱ Naijeriya
0
562
15281
12738
2022-07-21T22:25:44Z
ZabesBot
156
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
{| class="wikitable sortable"
!Si̱tet
!A̱keangtung
|-
|[[Si̱tet Abya|Abya]]
|[[Umwahya]]
|-
|[[Si̱tet A̱da̱mawa|Ada̱mawa]]
|[[Yola, Ada̱mawa|Yola]]
|-
|[[Si̱tet Akwa Ibom]]
|[[Uyo]]
|-
|[[Si̱tet Ana̱mba̱ra]]
|[[Oka]]
|-
|[[Si̱tet Ba̱uci]]
|[[Ba̱uci]]
|-
|[[Si̱tet Bayelsa|Bayelsa]]
|[[Yenagowa]]
|-
|[[Si̱tet Benuwe|Benuwe]]
|[[Makodi]]
|-
|[[Si̱tet Ba̱rno|Ba̱rno]]
|[[Nduguli]]
|-
|[[Si̱tet Ki̱rosi̱riva|Ki̱rosi̱riva]]
|[[Ka̱laba]]
|-
|[[Si̱tet Da̱li̱ta|Da̱li̱ta]]
|[[A̱keang A̱saba|A̱saba]]
|-
|[[Si̱tet A̱bonyi|A̱bonyi]]
|[[A̱baka̱leke]]
|-
|[[Si̱tet A̱do|A̱do]]
|[[A̱gba̱ndang A̱keang Bini]]
|-
|[[Si̱tet Ikiti|A̱kiti]]
|[[Ado Ikiti]]
|-
|[[Si̱tet Inugu|Inugu]]
|[[Inugu]]
|-
|[[Si̱tet Gwombe|Gwombe]]
|[[Gwombe, A̱si̱tet Gwombe|Gwombe]]
|-
|[[Si̱tet Imo|Imo]]
|[[Owere]]
|-
|[[Si̱tet Ji̱gawa|Ji̱gawa]]
|[[Dutse]]
|-
|[[Si̱tet Ka̱duna|Ka̱duna]]
|[[Ka̱duna]]
|-
|[[Si̱tet Ka̱na̱u|Ka̱na̱u]]
|[[Ka̱na̱u]]
|-
|[[Si̱tet Ka̱sina|Ka̱sina]]
|[[Ka̱sina]]
|-
|[[Si̱tet Kebi|Kebi]]
|[[Bi̱rnin Kebi]]
|-
|[[Si̱tet Kogi|Kogi]]
|[[La̱kwoja]]
|-
|[[Si̱tet Kwara|Kwara]]
|[[Ilorin]]
|-
|[[Si̱tet Legwot|Legwot]]
|[[Ikeja]]
|-
|[[Si̱tet Na̱sa̱rawa|Na̱sa̱rawa]]
|[[Lafiya]]
|-
|[[Si̱tet Nija|Nija]]
|[[Mina]]
|-
|[[Si̱tet Ogun|Ogun]]
|[[A̱beekuta]]
|-
|[[Si̱tet Ondo|Ondo]]
|[[Akure]]
|-
|[[Si̱tet Oshun|Oshun]]
|[[Oshogbo]]
|-
|[[Si̱tet Oyo|Oyo]]
|[[Ibada̱n]]
|-
|[[Si̱tet Pi̱lato|Pi̱lato]]
|[[Nja̱t]]
|-
|[[Si̱tet Rivas|Rivas]]
|[[Pa̱takwot]]
|-
|[[Si̱tet Sokoto|Sokoto]]
|[[Sokoto]]
|-
|[[Si̱tet Ta̱raba|Ta̱raba]]
|[[Jali̱nggo]]
|-
|[[Si̱tet Yobe|Yobe]]
|[[Damaturu]]
|-
|[[Si̱tet Za̱mfa̱ra|Za̱mfa̱ra]]
|[[Gusa̱u]]
|-
|[[Teritori A̱keangtung Mundundung, Naijeriya|TA̱M]]
|[[A̱buja]]
|}
<ref name="Olatunji 2018">Olatunji, Jessica (June 30, 2018). [https://www.legit.ng/1172078-36-states-capitals-nigeria.html Do you know all the states and capitals of Nigeria?] Legit.ng - Nigeria news.</ref><ref name="Nigeria">[https://www.nigeriagalleria.com/Nigeria/Nigerian-States-Capital-Governors.html 36 States of Nigeria, their Capitals and Governors :: Nigeria Information & Guide]. Nigeria.</ref><ref name="National Open University of Nigeria Exam Course - Centres 2019">National Open University of Nigeria Exam Course - Centres (December 25, 2019). [https://web.archive.org/web/20210405142210/https://www.nounportal.org/list-of-the-36-states-of-nigeria-and-their-capitals/ List of the 36 States of Nigeria and their Capitals].</ref><ref name="ABOUT NIGERIANS 2017">[http://aboutnigerians.com/list-of-36-states-in-nigeria-with-their-capitals-current-governors-and-title-slogan/ List of 36 States in Nigeria with their Capitals, Current Governors and Title (slogan)]. ABOUT NIGERIANS (December 12, 2017).</ref>
==Ya̱fang==
<div style="height: 200px; overflow:auto; border: 1px solid gray; padding-right: 12px; background-color: #EEEEEE; ">
<references />
</div>
27hr4yicimggqd6nra4u1mhyj94i1bp
Lis a̱yaagwomna a̱yaasi̱tet Naijeriya
0
563
14500
6402
2022-06-13T10:50:33Z
Vargenau
226
Changed redirect target from [[Lyulyoot a̱yaagwomna a̱yaasi̱tet Naijeriya]] to [[Lyulyoot a̱yaagwomna sí̱tet Naijeriya]]
wikitext
text/x-wiki
#REDIRECT [[Lyulyoot a̱yaagwomna sí̱tet Naijeriya]]
hkv71hnm0jix3voovh8ksaz5293yir3
Lis nnwap A̱naijeriya
0
564
6405
6404
2022-05-16T12:51:11Z
Jon Harald Søby
8
2 revisions imported
wikitext
text/x-wiki
#REDIRECT [[Lyulyoot nnwap mi̱ Naijeriya]]
0k6qvz9i9pmta8a04687og9hg2enlds
Lis nnwap mi̱ Naijeriya
0
565
6407
6406
2022-05-16T12:51:11Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[Lyulyoot nnwap mi̱ Naijeriya]]
0k6qvz9i9pmta8a04687og9hg2enlds
Lis susot kwai-nfwuo-á̱niet mami Naijeriya
0
566
14342
13414
2022-06-13T10:22:02Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
Si̱ huni hwa yet a̱pa̱mpai lis a̱mgba̱m susot kwai-nfwuo-á̱niet a̱gwomna̱ti [[Naijeriya]].
==Ri̱pobi̱lik A̱naai (1999-ma̱nini)==
{| class="wikitable"
! colspan="4" scope="col" class="unsortable" style="width:20px; text-align:center;"| Sot
! A̱lyia̱ kpaat
! Yong
![[Khai a̱byin Naijeriya si̱ 2019|Khai A̱kwak a̱son a̱byin]]
! [[Senet a̱byin Naijeriya|Senet]]
! [[Mali Á̱ghyi (Naijeriya)|Mali Á̱ghyi]]
! [[Lis a̱yaagwomna a̱yaasi̱tet Naijeriya|A̱yaagwomna]]
|-
! style="background-color: {{All Progressives Congress/meta/color}}" |
|
| [[All Progressives Congress]]
|APC
| 2013
| [[Centre-left politics|Centre-Left]]
| '''15,191,847 (55.6%)'''
|{{Composition bar|64|109|{{All Progressives Congress/meta/color}}}}
|{{Composition bar|217|360|{{All Progressives Congress/meta/color}}}}
|{{Composition bar|20|36|{{All Progressives Congress/meta/color}}}}
|-
! style="background-color: {{People's Democratic Party (Nigeria)/meta/color}}" |
|
| [[Peoples Democratic Party (Nigeria)|People's Democratic Party]]
|PDP
| 1998
| [[Centre-Right]]
|11,262,978 (41.2%)
|{{Composition bar|42|109|{{People's Democratic Party (Nigeria)/meta/color}}}}
|{{Composition bar|139|360|{{People's Democratic Party (Nigeria)/meta/color}}}}
|{{Composition bar|16|36|{{People's Democratic Party (Nigeria)/meta/color}}}}
|}
*Aboki Wawa Arewa Movement (AWAM)
*[[African Action Congress]] (AAC)
*[[Abundant Nigeria Renewal Party]] (ANRP)
*[[Advanced Congress of Democrats]] (ACD)
*[[All Blended Party]] (ABP)
* [[Alliance for Democracy (Nigeria)|Alliance for Democracy]] (AD)
*[[Alliance for New Nigeria]] (ANN)<ref>{{cite web|url=http://www.alliancefornewnigeria.org/ |title=A NEW DAWN}}</ref>
*[[Action Democratic Party (Nigeria)]] (ADP)
*[[Advanced Peoples Democratic Alliance]] (APDA)<ref>{{cite web|url=http://www.apdanigeria.org/ |title=Advanced Peoples Democratic Alliance | Stronger Together}}</ref>
*[[All Democratic Peoples Movement]] (ADPM)
*[[All Progressives Congress]] (APC)
*[[African Democratic Congress]] (ADC)
*[[All Progressives Grand Alliance]] (APGA)
*[[All People's Party (Nigeria)|All People's Party]] (APP)
*[[African Renaissance Party]] [ARP]
*[[Because Of Our Tomorrow]] [BOOT Party]<ref>{{cite web|url=https://www.boot.org.ng/ |title=The BOOT Party}}</ref>
*[[Conscience People's Congress]] [CPC]
*[[Communist Party of Nigeria]] (CPN)
*[[Citizens Popular Party]] (CPP)
*[[Democratic Alternative (Nigeria)|Democratic Alternative]] (DA)
*[[Democratic Socialist Movement (Nigeria)|Democratic Socialist Movement]] (DSM)
*[[Grassroot Patriotic Party]] (GPP)
*[[Justice Must Prevail Party]] (JMPP)
*[[KOWA Party]] (KP)<ref>https://web.archive.org/web/20181120093201/https://kowaparty.com.ng/</ref>
*[[Labour Party (Nigeria)|Labour Party]] (LP)
*[[Masses Movement of Nigeria]] (MMN)
*[[Mega People Political Party]]
*[[National Conscience Party]] (NCP)
* [[National Interest Party]] (NIP)
*[[New Democrats (Nigeria)|New Democrats]] (ND)
*[[New Generations Party of Nigeria]] (NGP)
*[[New Nigeria Peoples Party]] (NNPP)
*[[Nigeria For Democracy]] (NFD)
*[[National Democratic Party (Nigeria)|National Democratic Party]] (NDP)
*[[National Rescue Movement]] (NRM)
*[[Nigeria Poor People Party]] (NPPP)
*[[People's Democratic Party (Nigeria)|People's Democratic Party]] (PDP)<ref>{{cite web|url=http://www.peoplesdemocraticparty.net/ |title=Democracy for People | Global Affairs and Other Info |publisher=Peoplesdemocraticparty.net |date=2015-09-11 |access-date=2015-12-24}}</ref>
*[[Progressive Peoples Alliance]] (PPA)
*[[People Progressive Party]] (PPP)
*[[People's Redemption Party]] (PRP)
*[[People's Salvation Party]] (PSP)
* Restoration Party of Nigeria (RP)
*[[Social Democratic Mega Party]] (SDMP)
*[[Socialist Party of Nigeria]] (SPN)
*[[Social Democratic Party (Nigeria)|Social Democratic Party]] (SDP)
*[[United Nigeria People's Party]] (UNPP)
* United Progressive Party (UPP)<ref>Independent National Electoral Commission Nigeria, October 2012</ref>
*Young Democratic Party (YDP)
*[[Young Progressive Party]] (YPP)
*[[Youth Party (Nigeria)|Youth Party]] (YP)
*[[Zenith Labour Party]] (ZLP)
==Susot kwai nfwuo (1996-1998)==
*[[National Democratic Coalition, Nigeria|National Democratic Coalition]] (NADECO)
*[[Committee for National Consensus]] (CNC)
*[[Democratic Party of Nigeria]] (DPN)
*[[Grassroots Democratic Movement]] (GDM)
*[[National Centre Party of Nigeria]] (NCPN)
*[[United Nigeria Congress Party]] (UNCP)
*[[Justice Party (Nigeria)|Justice Party]] (JP)
==Ri̱pobi̱lik A̱tat Nang Á̱ Ta̱gurup==
*[[National Republican Convention]] (NRC)
*[[Social Democratic Party (Nigeria)|Social Democratic Party]] (SDP)
==Ri̱pobi̱lik A̱feang (1979-1983)==
*[[Greater Nigerian People's Party]] (GNPP)
*[[National Party of Nigeria]] (NPN)
*[[Nigeria Advance Party]] (NAP)
*[[Nigerian People's Party]] (NPP)
*[[People's Redemption Party]] (PRP)
*[[Unity Party of Nigeria]] (UPN)
*[[Movement of the People Party]] (MPP)
==Ri̱pobi̱lik A̱son (1960-1966)==
*[[Action Group (Nigeria)|Action Group]] (AG)
*[[Borno Youth Movement]] (BYM)
*[[Convention People's Party of Nigeria and the Cameroons]]
*[[Democratic Party of Nigeria and Cameroon]] (DPNC)
*[[Dynamic Party]] (DP)
*[[Igala Union]] (IU)
*[[Igbira Tribal Union]] (ITU)
*[[Kano People's Party]] (KPP)
*[[Lagos State United Front]] (LSUF)
*[[Mabolaje Grand Alliance]] (MGA)
*[[Midwest Democratic Front]] (MDF)
*[[National Independence Party (Nigeria)|National Independence Party]] (NIP)
*[[National Council of Nigeria and the Cameroons]]/[[National Council of Nigerian Citizens]] (NCNC)
*[[Niger Delta Congress]] (NDC)
*[[Nigerian National Democratic Party]] (NNDP)
*[[Northern Elements Progressive Union]] (NEPU)
*[[Northern People's Congress]] (NPC)
*[[Northern Progressive Front]] (NPF)
*[[Republican Party (Nigeria)|Republican Party]] (RP)
*[[United Middle Belt Congress]] (UMBC)
*[[United National Independence Party (Nigeria)|United National Independence Party]] (UNIP)
*[[Zamfara Commoners Party]] (ZCP)
==Bu nwuan==
* [[Politics of Nigeria]]
* [[List of political parties by country]]
==Ya̱fang==
<references/>
[[Sa:Lists of political parties by country|Nigeria]]
[[Sa:Political parties in Nigeria| ]]
[[Sa:Nigeria politics-related lists|Political parties]]
[[Sa:Lists of organizations based in Nigeria|Political parties]]
[[Sa:Lis susot kwai-nfwuo-á̱niet mami Afrika|Naijeriya]]
jvprtmv0b6nzi2zbpbk65tkbdkdv3ut
Lis susot kwai nfwuo mami Naijeriya
0
567
6431
6430
2022-05-16T12:51:12Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[Lis susot kwai-nfwuo-á̱niet mami Naijeriya]]
oddd7a8c0v1s60nlzhd7qdqo51h928s
Li̱biya
0
568
14343
13794
2022-06-13T10:22:07Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
{{Country
|name = Si̱tet Li̱biya<br>دولة ليبيا, ''Dawlat Lībiyā'' (La̱ra̱ba)
|flag = Flag of Libya.svg
|coa = Seal of the Government of National Unity (Libya).svg
|image = Libya (centered orthographic projection).svg
|capital = Ti̱ripoli
|area = 1 759 541
|population = 6 992 701
|year = 2021
}}
A̱byin '''Li̱biya''' (La̱ra̱ba: ليبيا, ''Lībiyā''; Shong: Libya /ˈlɪbiə/) á̱ lyen ma̱ng a̱lyoot a̱gwomna̱ti ka nang '''Si̱tet Li̱biya''' wu (La̱ra̱ba: دولة ليبيا, ''Dawlat Lībiyā''; [[Shong (a̱lyem)|Shong]]: State of Libya)<ref>"[https://www.un.org/en/member-states/index.html#gotoL Member States]" (di̱n Shong). United Nations. ''"On 22 December 2017, the Permanent Mission of Libya to the United Nations formally notified the United Nations that the government is changing the official name of Libya to ‘State of Libya.’"''</ref>, yet a̱byin kya di̱ fam a̱byin Maghreb hu ma̱ A̱za Afrika. Ka̱ byia̱ a̱gi̱gak ma̱ng [[Kyai A̱sa̱khwot Meditaroniya|Kyai A̱sa̱khwot Meditaroniya hu]], [[Ma̱sa̱r]], [[Sudan]], [[Caad]], [[Ni̱njer (a̱byin)|Ni̱njer]], Aljiriya ma̱ng Tunisiya. Ka̱ byia̱ nfam-a̱byin a̱tat neet di̱n jen gbangbang: Ti̱ripolitaniya, Fezan ma̱ng Si̱rinaika. Ma̱ng shi kyai a̱byin kpa̱mkpaan met a̱ma̱ntaa̱naai 700,000 (kilomita a̱ma̱ntaa̱naai miliyon 1.8) a̱ni, a̱byin Li̱biya kya yet a̱byin a̱naai ka̱ swak ma̱ng shi kyai a̱byin mami [[Afrika]] ma̱ng a̱byin 16 mi̱ swanta hu<ref>
"[http://unstats.un.org/unsd/demographic/products/dyb/DYB2003/Table03.pdf Demographic Yearbook (3) Pop., Rate of Pop. Increase, Surface Area & Density]" (di̱n Shong) [PDF]. United Nations Statistics Division.</ref> A̱byin Li̱biya kya yet 10 ka̱ swak mi̱ shi hya̱u a̱fan nang á̱ ku shim a̱cucuk tazwa nhu a̱ni a̱si̱ kuzang a̱byin mi̱ swanta hu.<ref>"[https://web.archive.org/web/20120711143657/http://www.opec.org/library/Annual%20Statistical%20Bulletin/interactive/2004/FileZ/XL/T33.HTM World proven crude oil reserves by country, 1980–2004]" (di̱n Shong). Opec.org.</ref> A̱keangtung nka ka, Ti̱ripoli, nshyia̱ di̱ fam a̱byin jenshyung a̱byin Li̱biya ka̱ si̱ yet mali á̱niet miliyon a̱tat mami á̱niet miliyon a̱natat a̱mgba̱m a̱byin Li̱biya ka.<ref name="auto">"[http://www.indexmundi.com/libya/demographics_profile.html Libya Demographics Profile 2014]" (di̱n Shong). Indexmundi.com, 30 Zwat A̱taa 2015.</ref>
==Ya̱fang==
<references/>
==A̱ka̱fwuop nta==
{{Bibyin Afrika}}
[[Sa:Bibyin_swanta]]
[[Sa:Bibyin_Afrika]]
[[Sa:Bibyin_A̱za_Afrika]]
s3v7t4hvkmqiohhxy3lxw1ch4t3rq6l
Li̱lak
0
569
12370
6461
2022-05-21T04:57:25Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
[[Fail:Parts of a Bell.svg|thumb|Nkap li̱lak na]]
'''Li̱lak''' yet kyangta̱m hwa nang á̱ tsot á̱ tung á̱niet ku á̱ kam mba. Li̱lak ji yet a̱bala̱n tswam kya ka̱ byia̱ kyang ba̱ng a̱ma̱nta ka a̱ni ma̱ng a̱bala̱u tswam mami nang á̱ fwuop ndung ma̱ng a̱bala̱n tswam ka di̱n vak a̱banyanyang ku a̱ywan.
==Ya̱fang==
<references/>
4b8t0puwyyg7ruldq16nzpe5rg48x6v
Lyulyoot sí̱tet Naijeriya di̱n vak shi á̱niet
0
570
15282
12711
2022-07-21T22:25:54Z
ZabesBot
156
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
[[Image:Bevölkerungsdichte Nigerischer Bundesstaaten english.PNG|thumb|350px|Ta̱si̱la sí̱tet Naijeriya di̱n vak shi á̱kpa á̱niet]]
Lyulyoot sí̱tet swak ntat ma̱ng a̱taa si̱ [[Naijeriya]] a̱hwa á̱ fang tatak kani, á̱ fang nhu á̱ si̱ sak ca̱caat ma̱ng shi á̱nietbishyi ba̱ byia̱ a̱ni neet di̱n tyan shi á̱nietbishyi a̱lyia̱ 2022 ji ja,<ref> [https://web.archive.org/web/20110519235026/http://www.population.gov.ng/files/nationafinal.pdf Shi á̱nietbishyi di̱n vak Si̱tet ma̱ng Sot-mbyin]. population.gov.ng</ref> mbeang tyan shi á̱nietbishyi 2016, nang Ofit Lung Lulung A̱byin wu ku shei a̱ni.<ref>[https://nigerianstat.gov.ng/download/775 Demographic Statistics Bulletin 2017] (di̱n Shong).</ref>
{| class="wikitable sortable" style="margin: 1em 1em 1em 0; background: #f9f9f9; border: 1px #aaa solid; border-collapse: collapse; font-size: 95%;"
|- bgcolor=#e8e8e8
! align="left" scope="col" | Shi (2022)
! align="left" scope="col" | Si̱tet
! scope="col" | Shi á̱niet (2012)
! scope="col" | Shi á̱niet (2022)
|-
| align="left" | 1
| align="left" | [[Si̱tet Legwot]]
| align="center" | 16,000,288
| align="center" | 21,000,000
|-
| align="left" | 2
| align="left" | [[Si̱tet Ka̱na̱u]]
| align="center" | 9,113,605
| align="center" | 12,550,598
|-
| align="left" | 3
| align="left" | [[Si̱tet Ka̱duna]]
| align="center" | 6,113,503
| align="center" | 8,252,366
|-
| align="left" | 4
| align="left" | [[Si̱tet Oyo]]
| align="center" | 5,580,894
| align="center" | 7,840,864
|-
| align="left" | 5
| align="left" | [[Si̱tet Ka̱sina]]
| align="center" | 5,801,584
| align="center" | 7,831,319
|-
| align="left" | 6
| align="left" | [[Si̱tet Rivas]]
| align="center" | 5,198,716
| align="center" | 7,303,924
|-
| align="left" | 7
| align="left" | [[Si̱tet Ba̱uci]]
| align="center" | 4,653,066
| align="center" | 6,537,314
|-
| align="left" | 8
| align="left" | [[Si̱tet Ba̱rno]]
| align="center" | 4,171,104
| align="center" | 5,860,183
|-
| align="left" | 9
| align="left" | [[Si̱tet Ji̱gawa]]
| align="center" | 4,361,002
| align="center" | 5,828,163
|-
| align="left" | 10
| align="left" | [[Si̱tet Benuwe]]
| align="center" | 4,253,641
| align="center" | 5,741,815
|-
| align="left" | 11
| align="left" | [[Si̱tet Da̱li̱ta]]
| align="center" | 4,112,445
| align="center" | 5,663,362
|-
| align="left" | 12
| align="left" | [[Si̱tet Nija]]
| align="center" | 3,954,772
| align="center" | 5,556,247
|-
| align="left" | 13
| align="left" | [[Si̱tet A̱na̱mba̱ra]]
| align="center" | 4,177,828
| align="center" | 5,527,809
|-
| align="left" | 14
| align="left" | [[Si̱tet Akwa Ibom]]
| align="center" | 3,902,051
| align="center" | 5,482,177
|-
| align="left" | 15
| align="left" | [[Si̱tet Imo]]
| align="center" | 3,927,563
| align="center" | 5,408,756
|-
| align="left" | 16
| align="left" | [[Si̱tet Ogun]]
| align="center" | 3,751,140
| align="center" | 5,217,716
|-
| align="left" | 17
| align="left" | [[Si̱tet Sokoto]]
| align="center" | 3,702,676
| align="center" | 4,998,090
|-
| align="left" | 18
| align="left" | [[Si̱tet Oshun]]
| align="center" | 3,416,959
| align="center" | 4,705,589
|-
| align="left" | 19
| align="left" | [[Si̱tet Ondo]]
| align="center" | 3,460,877
| align="center" | 4,671,695
|-
| align="left" | 20
| align="left" | [[Si̱tet Za̱mfa̱ra]]
| align="center" | 3,278,873
| align="center" | 4,515,427
|-
| align="left" | 21
| align="left" | [[Si̱tet Kogi]]
| align="center" | 3,314,043
| align="center" | 4,473,490
|-
| align="left" | 22
| align="left" | [[Si̱tet Kebi]]
| align="center" | 3,256,541
| align="center" | 4,440,050
|-
| align="left" | 23
| align="left" | [[Si̱tet Inugu]]
| align="center" | 3,267,837
| align="center" | 4,411,119
|-
| align="left" | 24
| align="left" | [[Si̱tet A̱do]]
| align="center" | 3,233,366
| align="center" | 4,235,595
|-
| align="left" | 25
| align="left" | [[Si̱tet A̱da̱mawa]]
| align="center" | 3,178,950
| align="center" | 4,248,436
|-
| align="left" | 26
| align="left" | [[Si̱tet Pi̱lato]]
| align="center" | 3,206,531
| align="center" | 4,200,442
|-
| align="left" | 27
| align="left" | [[Si̱tet Ki̱rosi̱riva]]
| align="center" | 2,892,988
| align="center" | 3,866,269
|-
| align="left" | 28
| align="left" | [[Si̱tet Abya]]
| align="center" | 2,845,380
| align="center" | 3,727,347
|-
| align="left" | –
| align="left" | [[Teritori A̱keangtung Mundundung (Naijeriya)|Teritori A̱keangtung Mundundung]]
| align="center" | 1,406,239
| align="center" | 3,564,126
|-
| align="left" | 29
| align="left" | [[Si̱tet Yobe]]
| align="center" | 2,321,339
| align="center" | 3,294,137
|-
| align="left" | 30
| align="left" | [[Si̱tet Ikiti]]
| align="center" | 2,398,957
| align="center" | 3,270,798
|-
| align="left" | 31
| align="left" | [[Si̱tet Gwombe]]
| align="center" | 2,365,040
| align="center" | 3,256,962
|-
| align="left" | 32
| align="left" | [[Si̱tet Kwara]]
| align="center" | 2,365,353
| align="center" | 3,192,893
|-
| align="left" | 33
| align="left" | [[Si̱tet Ta̱raba]]
| align="center" | 2,294,800
| align="center" | 3,066,834
|-
| align="left" | 34
| align="left" | [[Si̱tet A̱bonyi]]
| align="center" | 2,176,947
| align="center" | 2,880,383
|-
| align="left" | 35
| align="left" | [[Si̱tet Na̱sa̱rawa]]
| align="center" | 1,869,377
| align="center" | 2,523,395
|-
| align="left" | 36
| align="left" | [[Si̱tet Bayelsa]]
| align="center" | 1,704,515
| align="center" | 2,277,961
|}
==Ya̱fang==
<references/>
2dwas0rjp69d8911bbxq8etmrtn8mk2
Li̱m-a̱byin Si̱nai
0
571
14344
13416
2022-06-13T10:22:12Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
'''Li̱m-a̱byin Si̱nai''' hu, ku '''Si̱nai''' ma̱ a̱di̱dat (Shong: Sinai /ˈsaɪnaɪ/), yet li̱m-a̱byin hwa ma̱ a̱byin [[Ma̱sa̱r]], a̱wot ku si̱ yet kap a̱byin hu ma̱nyin ku shyia̱ vam-a̱byin [[A̱siya]] a̱ni. Ku shyia̱ tsi̱tsak [[Kyai A̱sa̱khwot Meditaroniya]] hu hwa di̱ fam a̱za hu ma̱ng [[A̱shong Kyai A̱sa̱khwot]] wu di̱ fam a̱tak hu, ku si̱ yet a̱byia̱k a̱byin meang tsi̱tsak nvam-a̱byin [[A̱siya]] ma̱ng [[Afrika]]. A̱byin Si̱nai byia̱ shi kyai a̱byin ku shyia̱ kpa̱mkpaan ma̱ng kilomita a̱ma̱ntanaai 60,000 (met a̱ma̱ntanaai 23,000) (kap a̱yaakpa 6 a̱mgba̱m shi kyai a̱byin Ma̱sa̱r) ma̱ng shi á̱niet kpa̱mkpaan ma̱ng á̱niet 600,000. Mat hyohyoot kwak a̱son, á̱ ka̱u a̱gba̱ndang kap shi kyai a̱byin Li̱m-a̱byin Si̱nai hu di̱ ntyok gwomna nfeang: Tyok-Gwomna Si̱nai A̱tak hu ma̱ng Tyok-Gwomna Si̱nai A̱za. Ntyok-gwomna ntat ghyáng ngaat kyiak neet Ka̱nal Swez hu, ku si̱ byia̱k a̱ma̱nyin a̱byin Ma̱sa̱r Afrika ka: Tyok-Gwomna Swez hu di̱ ngaan fam a̱byin Ka̱nal Swez hu, Tyok-Gwomna Ismailiya di̱ fam a̱ka̱wa̱tyia̱ hu, ma̱ng Tyok-Gwomna Port Said di̱ fam a̱za hu.
{| class="wikitable" align=right border width="200"
| colspan="2" align=center|'''Li̱m-a̱byin Si̱nai'''
|-
| colspan="2" align=center|[[Fail:Sinai Peninsula - en.svg|[[Terrain cartography|Relief map]] of the Sinai Peninsula|250px]]
|-
|}
==Ya̱fang==
<references/>
[[Sa:Afrika]]
[[Sa:Ndi̱m-a̱byin_swanta]]
ny7jy5a9ps648732hme4ptfosftmeaf
London
0
572
12372
12274
2022-05-21T04:57:45Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
[[Fail:London Montage L.jpg|thumb|Nang a̱gogo kyiak neet tswazwa: A̱gba̱ndang A̱keang London a̱ma̱lyim ma̱ng Canary Wharf mi̱ gbang lilyim, A̱tyia̱kwon Trafalgar, Tswa-a̱li London, Tower Bridge a mbeang roundel Vak-tafa-a̱byin London a̱ghyang a̱zaghyi Elizabeth Tower]]
'''London''' wa yet a̱keangtung ma̱ng a̱gba̱ndang a̱keang a̱ swak ma̱ng shi ma̱ a̱byin [[Nggi̱lan]] ma̱ng [[Tyok Muná̱pyia̱]] ka.<ref>[http://www.collinsdictionary.com/dictionary/english/london?showCookiePolicy=true London] (di̱n Shong). Collins Dictionary.</ref><ref>[https://www.cia.gov/the-world-factbook/countries/united-kingdom/ The World Factbook] (di̱n Shong). 1 Zwat Sweang 2014. Central Intelligence Agency.</ref> Ka̱ yong tazwa [[A̱ghyui Ta̱mit]] kikya di̱ fam a̱tak-a̱tyin Nggi̱lan da̱ a̱pyia̱ estuary a̱ yet met 20 (km 80) a̱ tyong nat [[Kyai A̱sa̱khwot A̱za]] hu a̱ni, a̱wot ka̱ si̱ yet a̱tsatsak a̱vwuonswat á̱niet neet ndyia̱ cyikwop sweang (miliniyom sweang) na̱ ku swak a̱ni.<ref name="london_001">[http://www.museumoflondon.org.uk/English/EventsExhibitions/Permanent/RomanLondon.htm Roman London] (di̱n Shong). Museum of London.</ref>
==Ya̱fang==
<references/>
==A̱ka̱fwuop nta==
{{Template:A̱ka̱keang swanta}}
7al2hpsnvb3ywio998iqtbltnv85zwy
Long
0
573
12373
6504
2022-05-21T04:57:55Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
[[Fail:Large bonfire.jpg|thumb|Long ku shyia̱ di̱ ya a̱ta̱usa a̱ni]]
'''Long''' yet a̱va̱vat lywei a̱ shwai ma̱ a̱gba̱gbai a̱ni a̱ ghwut ka̱ á̱ tung nkwon á̱ si̱ tyap.
==Ya̱fang==
<references/>
6a33wsljjdjbc2k3zrdmf72xnvscv7f
Lulyoot A̱niet a̱ lyen a̱nswak mi̱ Kwariya A̱tak a̱ni
0
574
6506
6505
2022-05-16T12:51:14Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[Lyulyoot á̱niet á̱ lyen á̱ nswak mi̱ Kworiya A̱tak a̱ni]]
nskblqchicvrniko95reu3ojab8sbxy
Lulyoot A̱niet ba̱ ku Nyia̱ A̱lyoot ma̱ bin Amerka mi̱ 1960 a̱ni
0
575
6508
6507
2022-05-16T12:51:15Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[Lyulyoot á̱niet á̱ ku jhyet mman á̱ nswak ma̱ a̱byin Muna̱pyia̱ Amerika mi̱ 1960 a̱ni]]
mfrz4jyv38f3e7byr7lmq7rhzw21eip
Lyem
0
576
12374
6528
2022-05-21T04:58:05Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
'''Lyem''' yet a̱lilyiit mbyin wa á̱ yebaat a̱ni ka̱ ku yet a̱shyim. Á̱ shyiat lyem ma̱ng nian hwa, jen jhyang mameang ka̱ á̱ lung a̱vwuo.
[[Fail:Gay head cliffs MV.JPG|thumb|Kpa̱mkpaan a̱mgba̱m ''Gay Head Cliffs'' wu mi̱ Martha's Vineyard yet lyem hwa.]]
==Ya̱fang==
<references/>
padx1ytj1f4djzlborislpagmssprhu
Lyenlilyem
0
577
15399
14345
2022-07-27T19:53:51Z
Kambai Akau
15
wikitext
text/x-wiki
{{Databox}}
[[File:Spraakfamiliar.png|thumb|Kwaí Lilyem]]
'''Lyenlilyem''' yet zop zi̱zop a̱lyem nang a̱tyubishyi lyiat a̱ni ja.<ref>Halliday, Michael A.K.; Jonathan Webster (2006). "On Language and Linguistics" (di̱n Shong). Continuum International Publishing Group. P. vii. ISBN 978-0-8264-8824-4</ref><ref>[https://www.linguisticsociety.org/what-linguistics What is Linguistics? {{!}} Linguistic Society of America] (di̱n Shong). www.linguisticsociety.org</ref> Si̱ a̱hwa si̱ fa ku yet a̱za̱za̱rak, a̱kokwak, a̱tsotswat ma̱ng a̱gba̱mgbam zop a̱lyem wa, di̱ nfam yet ma̱ng nghwughwu lilyem na.<ref>Crystal, David (1981). [https://www.worldcat.org/oclc/610496980 Clinical linguistics] (di̱n Shong). Wien: Springer-Verlag. P. 3. ISBN 978-3-7091-4001-7. OCLC 610496980. ''What are the implications of the term "science" encountered in the definition on p. 1? Four aims of the scientific approach to language, often cited in introductory works on the subject, are comprehensiveness, objectivity, systematicness and precision. The contrast is usually drawn with the essentially non-scientific approach of traditional language studies—by which is meant the whole history of ideas about language from Plato and Aristotle down to the nineteenth century study of language history (comparative philology).''</ref> Lyenlilyem byia̱ a̱ka̱ta ma̱ng kuzang fam a̱lyem, ma̱ng nvak zop ma̱ng tswang lilyem. Á̱ ngyei a̱tyu a̱ byia̱ lyen lilyem '''a̱tyulyenlilyem''' wa.
==Ya̱fang==
<references/>
[[Sa:Lyenlilyem| ]]
[[Sa:A̱lyem]]
fuok7z8yniwzd6bmsgznxbwt3jzebzg
Lyulyoot a̱ca̱cet a̱ka̱keang Jami̱ni di̱n vak shi á̱niet
0
578
14346
13417
2022-06-13T10:22:22Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
[[Fail:Deutschland politisch 2010.png|thumb|Ta̱si̱la a̱mgba̱m Jami̱ni]]
[[Fail:Population density of Germany 2019.svg|thumb|Kpa̱p shi á̱niet ma̱ a̱lyia̱ 2019]]
Ca̱caat ma̱ng wa̱i ''German Federal Institute for Research on Building, Urban Affairs and Spatial Development'', ''Großstadt'' (a̱gba̱ndang a̱keang) yet a̱gba̱ndang a̱keang wa a̱ byia̱ si̱ ku swak á̱niet swuat 100,000.<ref>[https://web.archive.org/web/20171001104056/http://www.bbsr.bund.de/BBSR/DE/Raumbeobachtung/Raumabgrenzungen/StadtGemeindetyp/StadtGemeindetyp_node.html Laufende Stadtbeobachtung – Raumabgrenzungen] (di̱n Jaman). Bundesinstitut für Bau-, Stadt- und Raumforschung.</ref> Mi̱ Zwat Swak ma̱ng Sweang 31, 2015, a̱ca̱cet a̱ka̱keang 79 mami [[Jami̱ni]] nhyat ta̱fwat jini a̱wot á̱ si̱ tyia̱ lyulyoot nna hu a̱ji. Lyulyoot huni yet si̱ a̱yaamunisi̱paliti a̱nyanyin ba̱ shyia̱ mami a̱gi̱gak mba ba bibya ma̱nyin, a̱wot ku si̱ nwai mbeang yet si̱ a̱yaamunisi̱paliti ku a̱ka̱vwuo dandi na̱ shyia̱ mami [[urban agglomeration]]s or [[metropolitan area]]s.
== Lyulyoot ==
A̱tyii wuni ntak lyulyoot a̱ca̱cet a̱ka̱keang 79 na mi̱ [[Jami̱ni]] ma̱ng shi á̱niet ku yet ke ku swak 100,000 ma̱ a̱tuk mam 31 Zwat Swak ma̱ng Sweang 2015, ma̱nang Ofit Lulung Jami̱ni wu ku tyan a̱ni.<ref>[https://www.destatis.de/EN/Homepage.html Homepage]</ref> Á̱ ni̱ ntyai a̱gba̱ndang a̱keang a̱ghyang mi̱ '''a̱tutuk''' ka̱nang gu yet a̱keangtung si̱tet ku mundundung kya, a̱wot mi̱ ''italik'' ka̱nang gu yet a̱gba̱ndang a̱keang a̱ swak ma̱ng shi á̱niet wa a̱ni mi̱ si̱tet ji. A̱tyii a̱tafa wu byia̱ nkhang nani:
# Shi rank a̱gba̱ndang a̱keang hu di̱n vak shi á̱niet mi̱ Zwat Swak ma̱ng Sweang 31, 2015, ca̱caat ma̱ng tyan Ofit Lulung Mundundung Jami̱ni wu<ref name="destatis1">[https://www.destatis.de/DE/ZahlenFakten/LaenderRegionen/Regionales/Gemeindeverzeichnis/Administrativ/Aktuell/05Staedte.xls?__blob=publicationFile Städte in Deutschland nach Fläche und Bevölkerung auf Grundlage des Zensus 2011 und Bevölkerungsdichte: Gebietsstand 31.12.2015] (di̱n Jaman) (XLS). Wiesbaden: Federal Statistical Office of Germany (Zwat Swak ma̱ng Sweang 13, 2016).</ref>
# A̱lyoot a̱gba̱ndang a̱keang ka<ref name="destatis1" />
# A̱lyoot si̱tet ji nang a̱gba̱ndang a̱keang wu nshyia̱ a̱ni<ref name="destatis2">[https://www.destatis.de/DE/Methoden/Zensus_/Downloads/1A_EinwohnerzahlGeschlecht.xls|publisher=Federal Statistical Office of Germany Bevölkerung nach Geschlecht für Kreise und kreisfreie Städte] (di̱n Jaman) (XLS). Wiesbaden. Zwat Nyaai 10, 2014.</ref>
# Shi á̱niet a̱gba̱ndang a̱keang wu mi̱ Zwat Swak ma̱ng Sweang 31, 2015, ca̱caat ma̱ng tyan Ofit Lulung Mundundung Jami̱ni wu<ref name="destatis1" />
# Shi á̱niet a̱keang hu mi̱ Zwat Tswuon 9, 2011, ma̱ng si̱sak nang á̱ ku tak mi̱ fang á̱niet (sa̱nsut) Bibyin Muna̱pyia̱ Yurop hu ma̱ a̱lyia̱ 2011<ref name="destatis2" />
# The city percentage population change from May 9, 2011 to December 31, 2015
# The city land area as of December 31, 2015<ref name="destatis1" />
# The city population density as of December 31, 2015 (residents per unit of land area)<ref name="destatis1" />
# The city latitude and longitude coordinates.
{{-}}
Schwerin wa yet a̱keangtung si̱tet nang á̱ nwai tyia̱ a̱lyoot nggu ka a̱ji.
{| class="wikitable sortable"
|-
! shi rank<br />2015
! A̱gba̱ndang a̱keang
! [[A̱yaasi̱tet Jami̱ni|Si̱tet]]
! tyan<br />2015
! fang á̱niet<br />2011
! A̱shai
!data-sort-type="number"|shi kyai a̱byin<br />2015
!data-sort-type="number"|shi á̱niet<br />2015<br />kpa̱p shi á̱niet
! A̱gbang
|-
| bgcolor="FFD700"|1
| align="left" | '''''{{flag|Berlin}}'''''
| align="left" | {{flag|Berlin}}
| {{change|invert=on|3520031|3292365}}
| {{convert|891.68|km2|sqmi|abbr=on|disp=br}}
| {{convert|3948|PD/sqkm|PD/sqmi|abbr=on|disp=br}}
| {{coord|52|31|N|13|23|E|format=dms|name=1 Berlin}}
|-
| bgcolor="FFD700"|2
| align="left" | '''''{{flag|Hamburg}}'''''
| align="left" | {{flag|Hamburg}}
| {{change|invert=on|1787408|1706696}}
| {{convert|755.3|km2|sqmi|abbr=on|disp=br}}
| {{convert|2366|PD/sqkm|PD/sqmi|abbr=on|disp=br}}
| {{coord|53|33|N|10|0|E|format=dms|name=2 Hamburg}}
|-
| bgcolor="FFD700"|3
| align="left" | '''''{{flag|Munich}}''''' (München)
| align="left" | {{flag|Bavaria}}
| {{change|invert=on|1450381|1348335}}
| {{convert|310.7|km2|sqmi|abbr=on|disp=br}}
| {{convert|4668|PD/sqkm|PD/sqmi|abbr=on|disp=br}}
| {{coord|48|8|N|11|34|E|format=dms|name=3 Munich}}
|-
| bgcolor="FFD700"|4
| align="left" | ''{{flag|Cologne}}'' (Köln)
| align="left" | {{flag|North Rhine-Westphalia}}
| {{change|invert=on|1060582|1005775}}
| {{convert|405.02|km2|sqmi|abbr=on|disp=br}}
| {{convert|2619|PD/sqkm|PD/sqmi|abbr=on|disp=br}}
| {{coord|50|56|N|6|57|E|format=dms|name=4 Cologne}}
|-
| bgcolor="FFD700"|5
| align="left" | ''{{flag|Frankfurt am Main|Frankfurt}}''
| align="left" | {{flag|Hesse}}
| {{change|invert=on|732688|667925}}
| {{convert|248.31|km2|sqmi|abbr=on|disp=br}}
| {{convert|2951|PD/sqkm|PD/sqmi|abbr=on|disp=br}}
| {{coord|50|7|N|8|41|E|format=dms|name=5 Frankfurt}}
|-
| bgcolor="FFD700"|6
| align="left" | '''''{{flag|Stuttgart}}'''''
| align="left" | {{flag|Baden-Württemberg}}
| {{change|invert=on|623738|585890}}
| {{convert|207.35|km2|sqmi|abbr=on|disp=br}}
| {{convert|3008|PD/sqkm|PD/sqmi|abbr=on|disp=br}}
| {{coord|48|47|N|9|11|E|format=dms|name=6 Stuttgart}}
|-
| bgcolor="FFD700"|7
| align="left" | '''{{flag|Düsseldorf}}'''
| align="left" | {{flag|North Rhine-Westphalia}}
| {{change|invert=on|612178|586291}}
| {{convert|217.41|km2|sqmi|abbr=on|disp=br}}
| {{convert|2816|PD/sqkm|PD/sqmi|abbr=on|disp=br}}
| {{coord|51|14|N|6|47|E|format=dms|name=7 Düsseldorf}}
|-
| bgcolor="FFD700"|8
| align="left" | {{flag|Dortmund}}
| align="left" | {{flag|North Rhine-Westphalia}}
| {{change|invert=on|586181|571143}}
| {{convert|280.71|km2|sqmi|abbr=on|disp=br}}
| {{convert|2088|PD/sqkm|PD/sqmi|abbr=on|disp=br}}
| {{coord|51|31|N|7|28|E|format=dms|name=8 Dortmund}}
|-
| bgcolor="FFD700"|9
| align="left" | {{flag|Essen}}
| align="left" | {{flag|North Rhine-Westphalia}}
| {{change|invert=on|582624|566201}}
| {{convert|210.34|km2|sqmi|abbr=on|disp=br}}
| {{convert|2770|PD/sqkm|PD/sqmi|abbr=on|disp=br}}
| {{coord|51|27|N|7|1|E|format=dms|name=9 Essen}}
|-
| bgcolor="FFD700"|10
| align="left" | ''{{flag|Leipzig}}''
| align="left" | {{flag|Saxony}}
| {{change|invert=on|560472|502979}}
| {{convert|297.8|km2|sqmi|abbr=on|disp=br}}
| {{convert|1882|PD/sqkm|PD/sqmi|abbr=on|disp=br}}
| {{coord|51|20|N|12|23|E|format=dms|name=10 Leipzig}}
|-
| bgcolor="FFD700"|11
| align="left" | '''''{{flag|Bremen}}'''''
| align="left" | {{flag|Bremen}}
| {{change|invert=on|557464|542707}}
| {{convert|326.18|km2|sqmi|abbr=on|disp=br}}
| {{convert|1709|PD/sqkm|PD/sqmi|abbr=on|disp=br}}
| {{coord|53|5|N|8|48|E|format=dms|name=11 Bremen}}
|-
| bgcolor="FFD700"|12
| align="left" | '''{{flag|Dresden}}'''
| align="left" | {{flag|Saxony}}
| {{change|invert=on|543825|512354}}
| {{convert|328.48|km2|sqmi|abbr=on|disp=br}}
| {{convert|1656|PD/sqkm|PD/sqmi|abbr=on|disp=br}}
| {{coord|51|2|N|13|44|E|format=dms|name=12 Dresden}}
|-
| bgcolor="FFD700"|13
| align="left" | {{flagicon image|Flagge Hanover.svg}} '''''[[Hanover]]''''' (Hannover)
| align="left" | {{flag|Lower Saxony}}
| {{change|invert=on|532163|506416}}
| {{convert|204.14|km2|sqmi|abbr=on|disp=br}}
| {{convert|2607|PD/sqkm|PD/sqmi|abbr=on|disp=br}}
| {{coord|52|22|N|9|43|E|format=dms|name=13 Hanover}}
|-
| bgcolor="FFD700"|14
| align="left" | {{flag|Nuremberg}} (Nürnberg)
| align="left" | {{flag|Bavaria}}
| {{change|invert=on|509975|486314}}
| {{convert|186.38|km2|sqmi|abbr=on|disp=br}}
| {{convert|2736|PD/sqkm|PD/sqmi|abbr=on|disp=br}}
| {{coord|49|27|N|11|5|E|format=dms|name=14 Nuremberg}}
|-
| bgcolor="FFD700"|15
| align="left" | {{flag|Duisburg}}
| align="left" | {{flag|North Rhine-Westphalia}}
| {{change|invert=on|491231|488468}}
| {{convert|232.8|km2|sqmi|abbr=on|disp=br}}
| {{convert|2110|PD/sqkm|PD/sqmi|abbr=on|disp=br}}
| {{coord|51|26|N|6|46|E|format=dms|name=15 Duisburg}}
|-
| bgcolor="FFD700"|16
| align="left" | {{flag|Bochum}}
| align="left" | {{flag|North Rhine-Westphalia}}
| {{change|invert=on|364742|362286}}
| {{convert|145.66|km2|sqmi|abbr=on|disp=br}}
| {{convert|2504|PD/sqkm|PD/sqmi|abbr=on|disp=br}}
| {{coord|51|29|N|7|13|E|format=dms|name=16 Bochum}}
|-
| bgcolor="FFD700"|17
| align="left" | {{flag|Wuppertal}}
| align="left" | {{flag|North Rhine-Westphalia}}
| {{change|invert=on|350046|342661}}
| {{convert|168.39|km2|sqmi|abbr=on|disp=br}}
| {{convert|2079|PD/sqkm|PD/sqmi|abbr=on|disp=br}}
| {{coord|51|16|N|7|11|E|format=dms|name=17 Wuppertal}}
|-
| bgcolor="FFD700"|18
| align="left" | {{flagicon image|Hissflagge Bielefeld.svg}} [[Bielefeld]]
| align="left" | {{flag|North Rhine-Westphalia}}
| {{change|invert=on|333090|326870}}
| {{convert|258.82|km2|sqmi|abbr=on|disp=br}}
| {{convert|1287|PD/sqkm|PD/sqmi|abbr=on|disp=br}}
| {{coord|52|1|N|8|32|E|format=dms|name=18 Bielefeld}}
|-
| bgcolor="FFD700"|19
| align="left" | {{flag|Bonn}}
| align="left" | {{flag|North Rhine-Westphalia}}
| {{change|invert=on|318809|305765}}
| {{convert|141.06|km2|sqmi|abbr=on|disp=br}}
| {{convert|2260|PD/sqkm|PD/sqmi|abbr=on|disp=br}}
| {{coord|50|44|N|7|6|E|format=dms|name=19 Bonn}}
|-
| bgcolor="FFD700"|20
| align="left" | {{flag|Münster}}
| align="left" | {{flag|North Rhine-Westphalia}}
| {{change|invert=on|310039|289576}}
| {{convert|303.28|km2|sqmi|abbr=on|disp=br}}
| {{convert|1022|PD/sqkm|PD/sqmi|abbr=on|disp=br}}
| {{coord|51|58|N|7|38|E|format=dms|name=20 Münster}}
|-
| bgcolor="FFD700"|21
| align="left" | {{flag|Karlsruhe}}
| align="left" | {{flag|Baden-Württemberg}}
| {{change|invert=on|307755|289173}}
| {{convert|173.46|km2|sqmi|abbr=on|disp=br}}
| {{convert|1774|PD/sqkm|PD/sqmi|abbr=on|disp=br}}
| {{coord|49|0|N|8|24|E|format=dms|name=21 Karlsruhe}}
|-
| bgcolor="FFD700"|22
| align="left" | {{flag|Mannheim}}
| align="left" | {{flag|Baden-Württemberg}}
| {{change|invert=on|305780|290117}}
| {{convert|144.96|km2|sqmi|abbr=on|disp=br}}
| {{convert|2109|PD/sqkm|PD/sqmi|abbr=on|disp=br}}
| {{coord|49|29|N|8|28|E|format=dms|name=22 Mannheim}}
|-
| bgcolor="FFD700"|23
| align="left" | {{flag|Augsburg}}
| align="left" | {{flag|Bavaria}}
| {{change|invert=on|286374|267767}}
| {{convert|146.86|km2|sqmi|abbr=on|disp=br}}
| {{convert|1950|PD/sqkm|PD/sqmi|abbr=on|disp=br}}
| {{coord|48|22|N|10|54|E|format=dms|name=23 Augsburg}}
|-
| bgcolor="FFD700"|24
| align="left" | '''{{flag|Wiesbaden}}'''
| align="left" | {{flag|Hesse}}
| {{change|invert=on|276218|269121}}
| {{convert|203.93|km2|sqmi|abbr=on|disp=br}}
| {{convert|1354|PD/sqkm|PD/sqmi|abbr=on|disp=br}}
| {{coord|50|5|N|8|14|E|format=dms|name=24 Wiesbaden}}
|-
| bgcolor="FFD700"|25
| align="left" | {{flag|Gelsenkirchen}}
| align="left" | {{flag|North Rhine-Westphalia}}
| {{change|invert=on|260368|258766}}
| {{convert|104.94|km2|sqmi|abbr=on|disp=br}}
| {{convert|2481|PD/sqkm|PD/sqmi|abbr=on|disp=br}}
| {{coord|51|31|N|7|6|E|format=dms|name=25 Gelsenkirchen}}
|-
| bgcolor="FFD700"|26
| align="left" | {{flag|Mönchengladbach}}
| align="left" | {{flag|North Rhine-Westphalia}}
| {{change|invert=on|259996|255188}}
| {{convert|170.47|km2|sqmi|abbr=on|disp=br}}
| {{convert|1525|PD/sqkm|PD/sqmi|abbr=on|disp=br}}
| {{coord|51|12|N|6|26|E|format=dms|name=26 Mönchengladbach}}
|-
| bgcolor="FFD700"|27
| align="left" | {{flag|Braunschweig}}
| align="left" | {{flag|Lower Saxony}}
| {{change|invert=on|251364|242537}}
| {{convert|192.18|km2|sqmi|abbr=on|disp=br}}
| {{convert|1308|PD/sqkm|PD/sqmi|abbr=on|disp=br}}
| {{coord|52|16|N|10|31|E|format=dms|name=27 Braunschweig}}
|-
| bgcolor="FFD700"|28
| align="left" | {{flag|Chemnitz}}
| align="left" | {{flag|Saxony}}
| {{change|invert=on|248645|240253}}
| {{convert|221.05|km2|sqmi|abbr=on|disp=br}}
| {{convert|1125|PD/sqkm|PD/sqmi|abbr=on|disp=br}}
| {{coord|50|50|N|12|55|E|format=dms|name=28 Chemnitz}}
|-
| bgcolor="FFD700"|29
| align="left" | '''''{{flag|Kiel}}'''''
| align="left" | {{flag|Schleswig-Holstein}}
| {{change|invert=on|246306|235782}}
| {{convert|118.65|km2|sqmi|abbr=on|disp=br}}
| {{convert|2076|PD/sqkm|PD/sqmi|abbr=on|disp=br}}
| {{coord|54|20|N|10|8|E|format=dms|name=29 Kiel}}
|-
| bgcolor="FFD700"|30
| align="left" | {{flagicon image|Flag de-city of Aachen.svg}} [[Aachen]]
| align="left" | {{flag|North Rhine-Westphalia}}
| {{change|invert=on|245885|236420}}
| {{convert|160.85|km2|sqmi|abbr=on|disp=br}}
| {{convert|1529|PD/sqkm|PD/sqmi|abbr=on|disp=br}}
| {{coord|50|47|N|6|5|E|format=dms|name=30 Aachen}}
|-
| bgcolor="FFD700"|31
| align="left" | {{flagicon image|Flag of Halle (Saale).svg}} ''[[Halle (Saale)]]''
| align="left" | {{flag|Saxony-Anhalt}}
| {{change|invert=on|236991|229153}}
| {{convert|135.02|km2|sqmi|abbr=on|disp=br}}
| {{convert|1755|PD/sqkm|PD/sqmi|abbr=on|disp=br}}
| {{coord|51|29|N|11|58|E|format=dms|name=31 Halle (Saale)}}
|-
| bgcolor="FFD700"|32
| align="left" | {{flagicon image|Flagge Magdeburg.svg}} '''[[Magdeburg]]'''
| align="left" | {{flag|Saxony-Anhalt}}
| {{change|invert=on|235723|228144}}
| {{convert|201|km2|sqmi|abbr=on|disp=br}}
| {{convert|1173|PD/sqkm|PD/sqmi|abbr=on|disp=br}}
| {{coord|52|8|N|11|37|E|format=dms|name=32 Magdeburg}}
|-
| bgcolor="FFD700"|33
| align="left" | {{flagicon image|Flagge Freiburg im Breisgau.svg}} [[Freiburg im Breisgau]]
| align="left" | {{flag|Baden-Württemberg}}
| {{change|invert=on|226393|209628}}
| {{convert|153.06|km2|sqmi|abbr=on|disp=br}}
| {{convert|1479|PD/sqkm|PD/sqmi|abbr=on|disp=br}}
| {{coord|47|59|N|7|51|E|format=dms|name=33 Freiburg im Breisgau}}
|-
| bgcolor="FFD700"|34
| align="left" | {{flagicon image|Flagge Krefeld.svg}} [[Krefeld]]
| align="left" | {{flag|North Rhine-Westphalia}}
| {{change|invert=on|225144|222247}}
| {{convert|137.77|km2|sqmi|abbr=on|disp=br}}
| {{convert|1634|PD/sqkm|PD/sqmi|abbr=on|disp=br}}
| {{coord|51|20|N|6|34|E|format=dms|name=34 Krefeld}}
|-
| bgcolor="FFD700"|35
| align="left" | {{flag|Lübeck}}
| align="left" | {{flag|Schleswig-Holstein}}
| {{change|invert=on|216253|210305}}
| {{convert|214.21|km2|sqmi|abbr=on|disp=br}}
| {{convert|1010|PD/sqkm|PD/sqmi|abbr=on|disp=br}}
| {{coord|53|52|N|10|41|E|format=dms|name=35 Lübeck}}
|-
| bgcolor="FFD700"|36
| align="left" | {{flag|Oberhausen}}
| align="left" | {{flag|North Rhine-Westphalia}}
| {{change|invert=on|210934|210216}}
| {{convert|77.09|km2|sqmi|abbr=on|disp=br}}
| {{convert|2736|PD/sqkm|PD/sqmi|abbr=on|disp=br}}
| {{coord|51|28|N|6|51|E|format=dms|name=36 Oberhausen}}
|-
| bgcolor="FFD700"|37
| align="left" | '''''{{flag|Erfurt}}'''''
| align="left" | {{flag|Thuringia}}
| {{change|invert=on|210118|200868}}
| {{convert|269.91|km2|sqmi|abbr=on|disp=br}}
| {{convert|778|PD/sqkm|PD/sqmi|abbr=on|disp=br}}
| {{coord|50|59|N|11|2|E|format=dms|name=37 Erfurt}}
|-
| bgcolor="FFD700"|38
| align="left" | {{flagicon image|Mainz Flagge quer.svg}} '''''[[Mainz]]'''''
| align="left" | {{flag|Rhineland-Palatinate}}
| {{change|invert=on|209779|200344}}
| {{convert|97.74|km2|sqmi|abbr=on|disp=br}}
| {{convert|2146|PD/sqkm|PD/sqmi|abbr=on|disp=br}}
| {{coord|50|0|N|8|16|E|format=dms|name=38 Mainz}}
|-
| bgcolor="FFD700"|39
| align="left" | ''{{flag|Rostock}}''
| align="left" | {{flag|Mecklenburg-Vorpommern}}
| {{change|invert=on|206011|200265}}
| {{convert|181.26|km2|sqmi|abbr=on|disp=br}}
| {{convert|1137|PD/sqkm|PD/sqmi|abbr=on|disp=br}}
| {{coord|54|5|N|12|8|E|format=dms|name=39 Rostock}}
|-
| bgcolor="FFD700"|40
| align="left" | {{flag|Kassel}}
| align="left" | {{flag|Hesse}}
| {{change|invert=on|197984|190765}}
| {{convert|106.78|km2|sqmi|abbr=on|disp=br}}
| {{convert|1854|PD/sqkm|PD/sqmi|abbr=on|disp=br}}
| {{coord|51|19|N|9|30|E|format=dms|name=40 Kassel}}
|-
| bgcolor="FFD700"|41
| align="left" | {{flag|Hagen}}
| align="left" | {{flag|North Rhine-Westphalia}}
| {{change|invert=on|189044|187944}}
| {{convert|160.45|km2|sqmi|abbr=on|disp=br}}
| {{convert|1178|PD/sqkm|PD/sqmi|abbr=on|disp=br}}
| {{coord|51|22|N|7|29|E|format=dms|name=41 Hagen}}
|-
| bgcolor="FFD700"|42
| align="left" | {{flag|Hamm}}
| align="left" | {{flag|North Rhine-Westphalia}}
| {{change|invert=on|179397|176037}}
| {{convert|226.43|km2|sqmi|abbr=on|disp=br}}
| {{convert|792|PD/sqkm|PD/sqmi|abbr=on|disp=br}}
| {{coord|51|41|N|7|49|E|format=dms|name=42 Hamm}}
|-
| bgcolor="FFD700"|43
| align="left" | {{flagicon image|Flag of Saarbrücken.svg}} '''''[[Saarbrücken]]'''''
| align="left" | {{flag|Saarland}}
| {{change|invert=on|178151|175853}}
| {{convert|167.09|km2|sqmi|abbr=on|disp=br}}
| {{convert|1066|PD/sqkm|PD/sqmi|abbr=on|disp=br}}
| {{coord|49|14|N|7|0|E|format=dms|name=43 Saarbrücken}}
|-
| bgcolor="FFD700"|44
| align="left" | {{flagicon image|Flagge der kreisfreien Stadt Mülheim an der Ruhr.svg}} [[Mülheim an der Ruhr]]
| align="left" | {{flag|North Rhine-Westphalia}}
| {{change|invert=on|169278|166865}}
| {{convert|91.28|km2|sqmi|abbr=on|disp=br}}
| {{convert|1854|PD/sqkm|PD/sqmi|abbr=on|disp=br}}
| {{coord|51|26|N|6|53|E|format=dms|name=44 Mülheim}}
|-
| bgcolor="FFD700"|45
| align="left" | '''''{{flag|Potsdam}}'''''
| align="left" | {{flag|Brandenburg}}
| {{change|invert=on|167745|156021}}
| {{convert|188.26|km2|sqmi|abbr=on|disp=br}}
| {{convert|891|PD/sqkm|PD/sqmi|abbr=on|disp=br}}
| {{coord|52|24|N|13|4|E|format=dms|name=45 Potsdam}}
|-
| bgcolor="FFD700"|46
| align="left" | {{flagicon image|Flagge Stadt Ludwigshafen am Rhein.svg}} [[Ludwigshafen am Rhein]]
| align="left" | {{flag|Rhineland-Palatinate}}
| {{change|invert=on|164718|157584}}
| {{convert|77.55|km2|sqmi|abbr=on|disp=br}}
| {{convert|2124|PD/sqkm|PD/sqmi|abbr=on|disp=br}}
| {{coord|49|29|N|8|26|E|format=dms|name=46 Ludwigshafen}}
|-
| bgcolor="FFD700"|47
| align="left" | {{flagicon image|Flagge der kreisfreien Stadt Oldenburg.svg}} [[Oldenburg (city)|Oldenburg]]
| align="left" | {{flag|Lower Saxony}}
| {{change|invert=on|163830|157267}}
| {{convert|102.99|km2|sqmi|abbr=on|disp=br}}
| {{convert|1591|PD/sqkm|PD/sqmi|abbr=on|disp=br}}
| {{coord|53|8|N|8|13|E|format=dms|name=47 Oldenburg}}
|-
| bgcolor="FFD700"|48
| align="left" | {{flag|Leverkusen}}
| align="left" | {{flag|North Rhine-Westphalia}}
| {{change|invert=on|163487|158984}}
| {{convert|78.87|km2|sqmi|abbr=on|disp=br}}
| {{convert|2073|PD/sqkm|PD/sqmi|abbr=on|disp=br}}
| {{coord|51|2|N|6|59|E|format=dms|name=48 Leverkusen}}
|-
| bgcolor="FFD700"|49
| align="left" | {{flagicon image|Hissflagge der Stadt Osnabrück.svg}} [[Osnabrück]]
| align="left" | {{flag|Lower Saxony}}
| {{change|invert=on|162403|153699}}
| {{convert|119.8|km2|sqmi|abbr=on|disp=br}}
| {{convert|1356|PD/sqkm|PD/sqmi|abbr=on|disp=br}}
| {{coord|52|17|N|8|3|E|format=dms|name=49 Osnabrück}}
|-
| bgcolor="FFD700"|50
| align="left" | {{flag|Solingen}}
| align="left" | {{flag|North Rhine-Westphalia}}
| {{change|invert=on|158726|155265}}
| {{convert|89.54|km2|sqmi|abbr=on|disp=br}}
| {{convert|1773|PD/sqkm|PD/sqmi|abbr=on|disp=br}}
| {{coord|51|10|N|7|5|E|format=dms|name=50 Solingen}}
|-
| bgcolor="FFD700"|51
| align="left" | {{flagicon image|Flag of Heidelberg.svg}} [[Heidelberg]]
| align="left" | {{flag|Baden-Württemberg}}
| {{change|invert=on|156267|146751}}
| {{convert|108.84|km2|sqmi|abbr=on|disp=br}}
| {{convert|1436|PD/sqkm|PD/sqmi|abbr=on|disp=br}}
| {{coord|49|25|N|8|43|E|format=dms|name=51 Heidelberg}}
|-
| bgcolor="FFD700"|52
| align="left" | {{flagicon image|Flagge der Stadt Herne.svg}} [[Herne, North Rhine-Westphalia|Herne]]
| align="left" | {{flag|North Rhine-Westphalia}}
| {{change|invert=on|155851|155160}}
| {{convert|51.42|km2|sqmi|abbr=on|disp=br}}
| {{convert|3031|PD/sqkm|PD/sqmi|abbr=on|disp=br}}
| {{coord|51|33|N|7|13|E|format=dms|name=52 Herne}}
|-
| bgcolor="FFD700"|53
| align="left" | {{flagicon image|Flagge Neuss.svg}} [[Neuss]]
| align="left" | {{flag|North Rhine-Westphalia}}
| {{change|invert=on|155414|150568}}
| {{convert|99.52|km2|sqmi|abbr=on|disp=br}}
| {{convert|1562|PD/sqkm|PD/sqmi|abbr=on|disp=br}}
| {{coord|51|12|N|6|42|E|format=dms|name=53 Neuss}}
|-
| bgcolor="FFD700"|54
| align="left" | {{flagicon image|Hissflagge der Stadt Darmstadt.svg}} [[Darmstadt]]
| align="left" | {{flag|Hesse}}
| {{change|invert=on|155353|143499}}
| {{convert|122.09|km2|sqmi|abbr=on|disp=br}}
| {{convert|1272|PD/sqkm|PD/sqmi|abbr=on|disp=br}}
| {{coord|49|52|N|8|39|E|format=dms|name=54 Darmstadt}}
|-
| bgcolor="FFD700"|55
| align="left" | {{flag|Paderborn}}
| align="left" | {{flag|North Rhine-Westphalia}}
| {{change|invert=on|148126|142365}}
| {{convert|179.59|km2|sqmi|abbr=on|disp=br}}
| {{convert|825|PD/sqkm|PD/sqmi|abbr=on|disp=br}}
| {{coord|51|43|N|8|46|E|format=dms|name=55 Paderborn}}
|-
| bgcolor="FFD700"|56
| align="left" | {{flagicon image|Flag of Regensburg.png}} [[Regensburg]]
| align="left" | {{flag|Bavaria}}
| {{change|invert=on|145465|135403}}
| {{convert|80.7|km2|sqmi|abbr=on|disp=br}}
| {{convert|1803|PD/sqkm|PD/sqmi|abbr=on|disp=br}}
| {{coord|49|1|N|12|5|E|format=dms|name=56 Regensburg}}
|-
| bgcolor="FFD700"|57
| align="left" | {{flag|Ingolstadt}}
| align="left" | {{flag|Bavaria}}
| {{change|invert=on|132438|124927}}
| {{convert|133.37|km2|sqmi|abbr=on|disp=br}}
| {{convert|993|PD/sqkm|PD/sqmi|abbr=on|disp=br}}
| {{coord|48|46|N|11|26|E|format=dms|name=57 Ingolstadt}}
|-
| bgcolor="FFD700"|58
| align="left" | {{flagicon image|Flagge Würzburg.svg}} [[Würzburg]]
| align="left" | {{flag|Bavaria}}
| {{change|invert=on|124873|124297}}
| {{convert|87.63|km2|sqmi|abbr=on|disp=br}}
| {{convert|1425|PD/sqkm|PD/sqmi|abbr=on|disp=br}}
| {{coord|49|47|N|9|56|E|format=dms|name=58 Würzburg}}
|-
| bgcolor="FFD700"|59
| align="left" | {{flagicon image|Flagge Fürth.svg}} [[Fürth]]
| align="left" | {{flag|Bavaria}}
| {{change|invert=on|124171|115613}}
| {{convert|63.35|km2|sqmi|abbr=on|disp=br}}
| {{convert|1960|PD/sqkm|PD/sqmi|abbr=on|disp=br}}
| {{coord|49|28|N|11|0|E|format=dms|name=59 Fürth}}
|-
| bgcolor="FFD700"|60
| align="left" | {{flagicon image|Flagge Wolfsburg.svg}} [[Wolfsburg]]
| align="left" | {{flag|Lower Saxony}}
| {{change|invert=on|124045|119984}}
| {{convert|204.09|km2|sqmi|abbr=on|disp=br}}
| {{convert|608|PD/sqkm|PD/sqmi|abbr=on|disp=br}}
| {{coord|52|25|23|N|10|47|14|E|format=dms|name=60 Wolfsburg}}
|-
| bgcolor="FFD700"|61
| align="left" | {{flagicon image|Offenbach am Main flag.jpg}} [[Offenbach am Main]]
| align="left" | {{flag|Hesse}}
| {{change|invert=on|123734|113443}}
| {{convert|44.89|km2|sqmi|abbr=on|disp=br}}
| {{convert|2756|PD/sqkm|PD/sqmi|abbr=on|disp=br}}
| {{coord|50|6|N|8|48|E|format=dms|name=61 Offenbach am Main}}
|-
| bgcolor="FFD700"|62
| align="left" | {{flagicon image|Flag of Ulm.svg}} [[Ulm]]
| align="left" | {{flag|Baden-Württemberg}}
| {{change|invert=on|122636|116761}}
| {{convert|118.69|km2|sqmi|abbr=on|disp=br}}
| {{convert|1033|PD/sqkm|PD/sqmi|abbr=on|disp=br}}
| {{coord|48|24|N|9|59|E|format=dms|name=62 Ulm}}
|-
| bgcolor="FFD700"|63
| align="left" | {{flagicon image|Flagge Heilbronn.svg}} [[Heilbronn]]
| align="left" | {{flag|Baden-Württemberg}}
| {{change|invert=on|122567|116059}}
| {{convert|99.88|km2|sqmi|abbr=on|disp=br}}
| {{convert|1227|PD/sqkm|PD/sqmi|abbr=on|disp=br}}
| {{coord|49|9|N|9|13|E|format=dms|name=63 Heilbronn}}
|-
| bgcolor="FFD700"|64
| align="left" | {{flagicon image|Flag of Pforzheim.svg}} [[Pforzheim]]
| align="left" | {{flag|Baden-Württemberg}}
| {{change|invert=on|122247|114411}}
| {{convert|98|km2|sqmi|abbr=on|disp=br}}
| {{convert|1247|PD/sqkm|PD/sqmi|abbr=on|disp=br}}
| {{coord|48|54|N|8|43|E|format=dms|name=64 Pforzheim}}
|-
| bgcolor="FFD700"|65
| align="left" | {{flagicon image|Flagge Goettingen.svg}} [[Göttingen]]
| align="left" | {{flag|Lower Saxony}}
| {{change|invert=on|118914|115843}}
| {{convert|116.89|km2|sqmi|abbr=on|disp=br}}
| {{convert|1017|PD/sqkm|PD/sqmi|abbr=on|disp=br}}
| {{coord|51|32|N|9|56|E|format=dms|name=65 Göttingen}}
|-
| bgcolor="FFD700"|66
| align="left" | {{flag|Bottrop}}
| align="left" | {{flag|North Rhine-Westphalia}}
| {{change|invert=on|117143|117311}}
| {{convert|100.61|km2|sqmi|abbr=on|disp=br}}
| {{convert|1164|PD/sqkm|PD/sqmi|abbr=on|disp=br}}
| {{coord|51|31|29|N|6|55|22|E|format=dms|name=66 Bottrop}}
|-
| bgcolor="FFD700"|67
| align="left" | {{flagicon image|Flagge Trier.svg}} [[Trier]]
| align="left" | {{flag|Rhineland-Palatinate}}
| {{change|invert=on|114914|105671}}
| {{convert|117.13|km2|sqmi|abbr=on|disp=br}}
| {{convert|981|PD/sqkm|PD/sqmi|abbr=on|disp=br}}
| {{coord|49|45|N|6|38|E|format=dms|name=67 Trier}}
|-
| bgcolor="FFD700"|68
| align="left" | {{flagicon image|Flagge Recklinghausen.svg}} [[Recklinghausen]]
| align="left" | {{flag|North Rhine-Westphalia}}
| {{change|invert=on|114330|115958}}
| {{convert|66.5|km2|sqmi|abbr=on|disp=br}}
| {{convert|1719|PD/sqkm|PD/sqmi|abbr=on|disp=br}}
| {{coord|51|35|6|N|7|9|43|E|format=dms|name=68 Recklinghausen}}
|-
| bgcolor="FFD700"|69
| align="left" | {{flagicon image|Flagge Reutlingen.svg}} [[Reutlingen]]
| align="left" | {{flag|Baden-Württemberg}}
| {{change|invert=on|114310|109799}}
| {{convert|87.06|km2|sqmi|abbr=on|disp=br}}
| {{convert|1313|PD/sqkm|PD/sqmi|abbr=on|disp=br}}
| {{coord|48|29|N|9|13|E|format=dms|name=69 Reutlingen}}
|-
| bgcolor="FFD700"|70
| align="left" | {{flagicon image|Bremerhaven flag.svg}} [[Bremerhaven]]
| align="left" | {{flag|Bremen}}
| {{change|invert=on|114025|108156}}
| {{convert|93.66|km2|sqmi|abbr=on|disp=br}}
| {{convert|1217|PD/sqkm|PD/sqmi|abbr=on|disp=br}}
| {{coord|53|33|N|8|35|E|format=dms|name=70 Bremerhaven}}
|-
| bgcolor="FFD700"|71
| align="left" | {{flag|Koblenz}}
| align="left" | {{flag|Rhineland-Palatinate}}
| {{change|invert=on|112586|107825}}
| {{convert|105.16|km2|sqmi|abbr=on|disp=br}}
| {{convert|1071|PD/sqkm|PD/sqmi|abbr=on|disp=br}}
| {{coord|50|21|35|N|7|35|52|E|format=dms|name=71 Koblenz}}
|-
| bgcolor="FFD700"|72
| align="left" | {{flagicon image|Flagge Bergisch Gladbach.svg}} [[Bergisch Gladbach]]
| align="left" | {{flag|North Rhine-Westphalia}}
| {{change|invert=on|111366|108878}}
| {{convert|83.09|km2|sqmi|abbr=on|disp=br}}
| {{convert|1340|PD/sqkm|PD/sqmi|abbr=on|disp=br}}
| {{coord|51|6|N|7|7|E|format=dms|name=72 Bergisch Gladbach}}
|-
| bgcolor="FFD700"|73
| align="left" | {{flagicon image|Flag of Jena.svg}} [[Jena]]
| align="left" | {{flag|Thuringia}}
| {{change|invert=on|109527|105739}}
| {{convert|114.76|km2|sqmi|abbr=on|disp=br}}
| {{convert|954|PD/sqkm|PD/sqmi|abbr=on|disp=br}}
| {{coord|50|55|38|N|11|35|10|E|format=dms|name=73 Jena}}
|-
| bgcolor="FFD700"|74
| align="left" | {{flagicon image|Flagge Remscheid.svg}} [[Remscheid]]
| align="left" | {{flag|North Rhine-Westphalia}}
| {{change|invert=on|109499|110708}}
| {{convert|74.52|km2|sqmi|abbr=on|disp=br}}
| {{convert|1469|PD/sqkm|PD/sqmi|abbr=on|disp=br}}
| {{coord|51|11|N|7|12|E|format=dms|name=74 Remscheid}}
|-
| bgcolor="FFD700"|75
| align="left" | {{flagicon image|Flagge Erlangen.svg}} [[Erlangen]]
| align="left" | {{flag|Bavaria}}
| {{change|invert=on|108336|103719}}
| {{convert|76.95|km2|sqmi|abbr=on|disp=br}}
| {{convert|1408|PD/sqkm|PD/sqmi|abbr=on|disp=br}}
| {{coord|49|35|N|11|1|E|format=dms|name=75 Erlangen}}
|-
| bgcolor="FFD700"|76
| align="left" | {{flagicon image|Flagge Moers.svg}} [[Moers]]
| align="left" | {{flag|North Rhine-Westphalia}}
| {{change|invert=on|104529|104009}}
| {{convert|67.68|km2|sqmi|abbr=on|disp=br}}
| {{convert|1544|PD/sqkm|PD/sqmi|abbr=on|disp=br}}
| {{coord|51|27|33|N|6|37|11|E|format=dms|name=76 Moers}}
|-
| bgcolor="FFD700"|77
| align="left" | {{flagicon image|Flagge Siegen.svg}} [[Siegen]]
| align="left" | {{flag|North Rhine-Westphalia}}
| {{change|invert=on|102355|99187}}
| {{convert|114.69|km2|sqmi|abbr=on|disp=br}}
| {{convert|892|PD/sqkm|PD/sqmi|abbr=on|disp=br}}
| {{coord|50|53|N|8|1|E|format=dms|name=77 Siegen}}
|-
| bgcolor="FFD700"|78
| align="left" | {{flagicon image|Flagge Hildesheim.svg}} [[Hildesheim]]
| align="left" | {{flag|Lower Saxony}}
| {{change|invert=on|101667|99554}}
| {{convert|92.18|km2|sqmi|abbr=on|disp=br}}
| {{convert|1103|PD/sqkm|PD/sqmi|abbr=on|disp=br}}
| {{coord|52|9|N|9|57|E|format=dms|name=78 Hildesheim}}
|-
| bgcolor="FFD700"|79
| align="left" | {{flagicon image|Flagge Salzgitter.svg}} [[Salzgitter]]
| align="left" | {{flag|Lower Saxony}}
| {{change|invert=on|101079|98895}}
| {{convert|223.92|km2|sqmi|abbr=on|disp=br}}
| {{convert|451|PD/sqkm|PD/sqmi|abbr=on|disp=br}}
| {{coord|52|9|N|10|20|E|format=dms|name=79 Salzgitter}}
|-
| bgcolor="FFD700"|80
| align="left" | {{flagicon image|Flag of Kaiserslautern.svg}} [[Kaiserslautern]]
| align="left" | {{flag|Rhineland-Palatinate}}
| {{change|invert=on|99845|96432}}
| {{convert|139.7|km2|sqmi|abbr=on|disp=br}}
| {{convert|720|PD/sqkm|PD/sqmi|abbr=on|disp=br}}
| {{coord|49|44|N|7|7|E|format=dms|name=80 Kaiserslautern}}
|-
|}
== Nghwughwu ==
[[Fail:Über den Dächern von Berlin.jpg|thumb|1. Berlin]]
[[Fail:Hamburg Rathaus.jpg|thumb|2. Hamburg]]
[[Fail:Frauenkirche and Neues Rathaus Munich March 2013.JPG|thumb|3. Munich]]
[[Fail:Nightview of Cologne Cathedrale across the River Rhine.jpg|thumb|4. Cologne]]
[[Fail:Hauptwache Frankfurt am Main.jpg|thumb|5. Frankfurt]]
[[Fail:Stuttgart Leonhardsviertel.JPG|thumb|6. Stuttgart]]
[[Fail:Medienhafen-März-09-13 spiegelung zusammengezogen.jpg|thumb|7. Düsseldorf]]
[[Fail:Dortmund Panorama.jpg|thumb|8. Dortmund]]
[[Fail:Essen-Südviertel Luft.jpg|thumb|9. Essen]]
[[Fail:Leipzig Fockeberg Zentrum.jpg|thumb|10. Leipzig]]
[[Fail:Weserhb2.jpg|thumb|11. Bremen]]
[[Fail:Dresden from Albertbrücke.jpg|thumb|12. Dresden]]
[[Fail:Hannover Blick Neues Rathaus 01.jpg|thumb|13. Hanover]]
[[Fail:Nuremberg panorama morning 3.jpg|thumb|14. Nuremberg]]
[[Fail:Duisburger Innenhafen Five Boats Abend 2014.jpg|thumb|15. Duisburg]]
== Bu nwuan ==
* [[List of towns and cities in Germany by historical population]]
* [[List of municipalities in Germany]]
* [[Metropolitan regions in Germany]]
==Ya̱fang==
<references/>
[[Sa:Lyulyoot a̱ca̱cet a̱ka̱keang mi̱ Jami̱ni|*]]
[[Sa:Lyulyoot a̱ca̱cet a̱ka̱keang di̱n vak shi á̱niet|Jami̱ni]]
atlog645a2qorijbprag22axv1m4m26
Lyulyoot a̱ca̱cet a̱ka̱keang ma̱ng a̱ka̱keang mi̱ Jami̱ni
0
579
14347
13418
2022-06-13T10:22:27Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
[[Fail:Deutschland politisch 2010.png|thumb|300px|right|Ta̱si̱la a̱mgba̱m a̱byin [[Jami̱ni]]]]
Si̱ huni hwa yet a̱jhyem lyulyoot a̱ca̱cet a̱ka̱keang ma̱ng a̱ka̱keang 2,054 na mi̱ [[Jami̱ni]] (mi̱ di̱ a̰tuk mam 1 Zwat Jhyiung 2021). Nang di̱n Tyap a̱ni, á̱ ngyei a̱mgba̱m a̱ka̱keang ma̱ng a̱ca̱cet a̱ka̱keang ''Stadt'' wa ku yet a̱sa̱t municipality a̱ni ma̱ a̱byin Jami̱ni (nwuan [[Municipalities of Germany]]) nang á̱ ku jong a̱wat nyian ta̱m ma̱ng a̱lyoot a̱kya. Da̱ a̱kwonu a̱kya, a̱yaamunisi̱paliti Jami̱ni ba̱ lan yet a̱cyuang da̱ a̱ka̱nyiung ba̱ nwai nyia̱ ta̱m ma̱ng a̱lyoot kani a̰ni, mat a̱nia wa á̱ si̱ nwai tyia̱ mba a̱ji, á̱ ni̱ ngyei mba ''Gemeinden''. Historically, the title ''Stadt'' was associated with [[town privileges]], but today it is a mere honorific title. The title can be bestowed to a municipality by its respective [[States of Germany|state government]] and is generally given to such municipalities that have either had historic town rights or have attained considerable size and importance more recently. Towns with over 100,000 inhabitants are called ''Großstadt'', a statistical notion sometimes translated as "city", but having no effect on their administrative status. In this list, only the cities' and towns' names are given. For more restricted lists with more details, see:
* [[Lyulyoot a̱ca̱cet a̱ka̱keang Jami̱ni di̱n vak shi á̱niet]] (only ''Großstädte'', i.e. cities over 100,000 population)
* [[Metropolitan Regions in Germany]]
Numbers of cities and towns in the German states:
* [[Bavaria]]: 317 cities and towns
* [[Baden-Württemberg]]: 314 cities and towns
* [[North Rhine-Westphalia]]: 272 cities and towns
* [[Hesse]]: 191 cities and towns
* [[Saxony]]: 169 cities and towns
* [[Lower Saxony]]: 159 cities and towns
* [[Rhineland-Palatinate]]: 130 cities and towns
* [[Thuringia]]: 117 cities and towns
* [[Brandenburg]]: 113 cities and towns
* [[Saxony-Anhalt]]: 104 cities and towns
* [[Mecklenburg-Western Pomerania]]: 84 cities and towns, [[List of cities in Mecklenburg-Vorpommern|see list]]
* [[Schleswig-Holstein]]: 63 cities and towns
* [[Saarland]]: 17 cities and towns
* [[Bremen (state)|Bremen]]: 2 cities
* [[Berlin]]: 1 city
* [[Hamburg]]: 1 city
==A==
{|
| colspan="3" |
|-----
| width="400" valign="top" |
* [[Aach, Baden-Württemberg|Aach]] ([[Baden-Württemberg]])
* [[Aachen]] ([[North Rhine-Westphalia]])
* [[Aalen]] (Baden-Württemberg)
* [[Abenberg]] ([[Bavaria]])
* [[Abensberg]] (Bavaria)
* [[Achern]] (Baden-Württemberg)
* [[Achim (Weser)|Achim]] ([[Lower Saxony]])
* [[Adelsheim]] (Baden-Württemberg)
* [[Adenau]] ([[Rhineland-Palatinate]])
* [[Adorf (Vogtland)|Adorf]] ([[Saxony]])
* [[Ahaus]] (North Rhine-Westphalia)
* [[Ahlen]] (North Rhine-Westphalia)
* [[Ahrensburg]] ([[Schleswig-Holstein]])
* [[Aichach]] (Bavaria)
* [[Aichtal]] (Baden-Württemberg)
* [[Aken (Elbe)]] ([[Saxony-Anhalt]])
* [[Albstadt]] (Baden-Württemberg)
* [[Alfeld]] (Lower Saxony)
* [[Allendorf (Lumda)]] ([[Hesse]])
* [[Allstedt]] (Saxony-Anhalt)
* [[Alpirsbach]] (Baden-Württemberg)
* [[Alsdorf]] (North Rhine-Westphalia)
* [[Alsfeld]] (Hesse)
* [[Alsleben (Saale)]] (Saxony-Anhalt)
| width="400" valign="top" |
* [[Altdorf bei Nürnberg]] (Bavaria)
* [[Altena]] (North Rhine-Westphalia)
* [[Altenberg (Saxony)|Altenberg]] (Saxony)
* [[Altenburg]] ([[Thuringia]])
* [[Altenkirchen]] (Rhineland-Palatinate)
* [[Altensteig]] (Baden-Württemberg)
* [[Altentreptow]] ([[Mecklenburg-Western Pomerania]])
* [[Altlandsberg]] ([[Brandenburg]])
* [[Altötting]] (Bavaria)
* [[Alzenau in Unterfranken|Alzenau]] (Bavaria)
* [[Alzey]] (Rhineland-Palatinate)
* [[Amberg]] (Bavaria)
* [[Amöneburg]] (Hesse)
* [[Amorbach]] (Bavaria)
* [[Amt Creuzburg]] (Thuringia)
* [[An der Schmücke]] (Thuringia)
* [[Andernach]] (Rhineland-Palatinate)
* [[Angermünde]] (Brandenburg)
* [[Anklam]] (Mecklenburg-Western Pomerania)
* [[Annaberg-Buchholz]] (Saxony)
* [[Annaburg]] (Saxony-Anhalt)
* [[Annweiler am Trifels]] (Rhineland-Palatinate)
* [[Ansbach]] (Bavaria)
* [[Apolda]] (Thuringia)
| width="400" valign="top" |
* [[Arendsee]] (Saxony-Anhalt)
* [[Arneburg]] (Saxony-Anhalt)
* [[Arnis (town)|Arnis]] (Schleswig-Holstein)
* [[Arnsberg]] (North Rhine-Westphalia)
* [[Arnstadt]] (Thuringia)
* [[Arnstein]] (Bavaria)
* [[Arnstein, Saxony-Anhalt|Arnstein]] (Saxony-Anhalt)
* [[Artern]] (Thuringia)
* [[Arzberg (Oberfranken)|Arzberg]] (Bavaria)
* [[Aschaffenburg]] (Bavaria)
* [[Aschersleben]] (Saxony-Anhalt)
* [[Asperg]] (Baden-Württemberg)
* [[Aßlar]] (Hesse)
* [[Attendorn]] (North Rhine-Westphalia)
* [[Aub]] (Bavaria)
* [[Aue-Bad Schlema]] (Saxony)
* [[Auerbach in der Oberpfalz]] (Bavaria)
* [[Auerbach (Vogtland)]] (Saxony)
* [[Augsburg]] (Bavaria)
* [[Augustusburg]] (Saxony)
* [[Aulendorf]] (Baden-Württemberg)
* [[Auma-Weidatal]] (Thuringia)
* [[Aurich]] (Lower Saxony)
|}
==Z==
{|
| colspan="3" |
|-----
| width="400" valign="top" |
* [[Zahna-Elster]] (Saxony-Anhalt)
* [[Zarrentin am Schaalsee]] (Mecklenburg-Western Pomerania)
* [[Zehdenick]] (Brandenburg)
* [[Zeil am Main]] (Bavaria)
* [[Zeitz]] (Saxony-Anhalt)
* [[Zell am Harmersbach]] (Baden-Württemberg)
* [[Zell im Wiesental]] (Baden-Württemberg)
* [[Zell (Mosel)]] (Rhineland-Palatinate)
* [[Zella-Mehlis]] (Thuringia)
| width="400" valign="top" |
* [[Zerbst]] (Saxony-Anhalt)
* [[Zeulenroda-Triebes]] (Thuringia)
* [[Zeven]] (Lower Saxony)
* [[Ziegenrück]] (Thuringia)
* [[Zierenberg]] (Hesse)
* [[Ziesar]] (Brandenburg)
* [[Zirndorf]] (Bavaria)
* [[Zittau]] (Saxony)
* [[Zörbig]] (Saxony-Anhalt)
| width="400" valign="top" |
* [[Zossen]] (Brandenburg)
* [[Zschopau]] (Saxony)
* [[Zülpich]] (North Rhine-Westphalia)
* [[Zweibrücken]] (Rhineland-Palatinate)
* [[Zwenkau]] (Saxony)
* [[Zwickau]] (Saxony)
* [[Zwiesel]] (Bavaria)
* [[Zwingenberg, Hesse|Zwingenberg]] (Hesse)
* [[Zwönitz]] (Saxony)
|}
[[Sa:Lists of cities by country|Germany, List of cities in]]
[[Sa:Lists of cities in Germany| ]]
sgoy5xe95rihupdbkbesp4ihxef2c2q
Lyulyoot a̱yaagwomna sí̱tet Naijeriya
0
580
14348
13419
2022-06-13T10:22:32Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
A̱tyii a̱ khwi a̱tatak ka a̱ni byia̱ lyulyoot a̱yaagwomna [[Sí̱tet Naijeriya|sí̱tet]] [[Naijeriya]] hu. Á̱ ni̱ khai a̱yaagwomna á̱fai ka̱nang ba̱ tyak a̱cak-nta̱m ndyia̱ a̱naai (ku ba̱ swak a̱ka̱cak-nta̱m a̱feang bah). Minista ghyang nang [[A̱kwak a̱son a̱byin Naijeriya|a̱kwak a̱son a̱byin]] wu nkhai a̱ni, nggu wa nwuan naat mbwuot [[Teritori A̱keangtung Mundundung, Naijeriya|Teritori A̱keangtung Mundundung]] hu.
==Maai==
A̱yin na maai ofit Gwomna wu ka̱nang gu yet nggwon a̱byin [[Naijeriya]] kya di̱n vak byin, a̱ tat ndyia̱ 35, a̱ yet memba [[Wp/Lis susot kwai nfwuo mami Naijeriya|sot]] kwai nfwuo wa a̱wot a̱ shyiat li̱n a̱ma da̱ a̱vwuo sot kwai nfwuo a̱ji. [[Kpa̱m cam a̱byin Naijeriya|Kpa̱m cam a̱byin]] hu nkhap a̱ka̱cak-nta̱m ndyia̱ a̱naai nia ma̱nyin nwuak a̱yaagwomna a̱yaasi̱tet ba ba̱ swan mi̱ ofit.
==Shyishyi nwuai ofit==
[[Kpa̱m cam a̱byin Naijeriya]] hu nkhap shyishyi nwuai ofit sak A̱yaagwomna a̱yaasi̱tet Naijeriya:
{{Quote frame|'''Oath of Office of Governor of a State''' <br> I do solemnly swear/affirm that I will be faithful and bear true allegiance to the Federal Republic of Nigeria; that as the Governor of ....... State, I will discharge my duty to the best of my ability, faithfully and in accordance with the Constitution of the Federal Republic of Nigeria and the law, and always in the interest of the sovereignty, integrity, solidarity, well-being and prosperity of the Federal Republic of Nigeria; that I will strive to preserve the Fundamental Objectives and Directive Principles of State Policy contained in the Constitution of the Federal Republic of Nigeria; that I will exercise the authority vested in me as Governor so as not to impede or prejudice the authority lawfully vested in the President of the Federal Republic of Nigeria and so as not to endanger the continuance of Federal Government in Nigeria; that I will not allow my personal interest to influence my official conduct or my official decisions; that I will to the best of my ability preserve, protect and defend the Constitution of the Federal Republic of Nigeria; that I will abide by the Code of Conduct contained in the Fifty Schedule to the Constitution of the Federal Republic of Nigeria; that in all circumstances, I will do right to all manner of people, according to law, without fear or favor, affection or ill-will; that I will not directly or indirectly communicate or reveal to any person any matter which shall be brought under my consideration or shall become known to me as Governor of ......... State, except as may be required for the due discharge of my duties as Governor; and that I will devote myself to the service and well-being of the people of Nigeria. So help me God.|author=[[Constitution of Nigeria]], Seventh Schedule}}
==Lyulyoot a̱yaagwomna sí̱tet mi̱ di̱ yong huni==
[[Fail:Nigerian Governors map June-2020.png|thumb|A̱yaagwomna Sí̱tet Naijeriya ma̱ng Khai nfwuo Susot Kwai-nfwuo-á̱niet a̱ma̱lyim Khaí A̱byin a̱lyia̱ 2019 ma̱ng A̱yaashi̱ri̱ya Kotu A̱gba̱ndang a̱ Swak ma̱ A̱byin ba ma̱ a̱lyia̱ 2020<br/>
{| style="font-size:110%; margin:0 auto;"
| {{Legend|#34AAE0|APC}} || {{Legend|#17AA5C|PDP}} || {{Legend|#EED202|APGA}}
|-
|}
]]Khai nfwuo sot a̱yaagwomna a̱yaasi̱tet 36 ba mi̱ di̱ yong huni hwa yet:
*16 [[People's Democratic Party (Nigeria)|People's Democratic Party]] (PDP)
*19 [[All Progressive Congress]] (APC)
*1 [[All Progressives Grand Alliance]] (APGA)
NB: Khai nfwuo sot ni̱ nshyiak nci̱ri̱ng da̱nian nang yet nwuai-ghwut nwuai-ghwut mi̱ sistem sot kwai-nfwuo-á̱niet Naijeriya wu ndi a̱ni.
{| class="wikitable sortable" style="text-align:center;"
|- bgcolor=#e8e8e8
! Si̱tet
! colspan="2" | Gwomna
! colspan="2" | A̰byia̱k Gwomna
! colspan="2" |Sot
! Nwuai Ofit
!Tyiai A̱cak-nta̱m
! A̱yaakwak A̱son A̱shai
|-
| align="left" |[[Si̱tet Abya]]
| [[Fail:Okezie Ikpeazu portrait.png|center|150x150px]]
|[[Okezie Ikpeazu]]
| [[Fail:Ude Oko Chukwu.jpg|center|150x150px]]
|[[Ude Oko Chukwu]]
|
|{{party name with colour|People's Democratic Party (Nigeria)}}
| 2019
|2023
| [[Lyulyoot A̱yaagwomna Si̱tet Abya|Lyulyoot]]
|-
| align="left" | [[Si̱tet Ada̱mawa]]
|
|[[Ahmadu Umaru Fintiri]]
|
|[[Crowther Seth]]
|
|{{party name with colour|People's Democratic Party (Nigeria)}}
| 2019
|2023
| [[Lyulyoot A̱yaagwomna Si̱tet Ada̱mawa|Lyulyoot]]
|-
| align="left" | [[Fail:Flag of Akwa Ibom State.svg|center|100x100px]][[A̱si̱tet A̱kwa Ibom]]
|
|[[Udom Gabriel Emmanuel]]
|
|[[Moses Ekpo]]
|
|{{party name with colour|People's Democratic Party (Nigeria)}}
| 2019
|2023
| [[Lis A̱yaagwomna A̱si̱tet A̱kwa Ibom|Lis]]
|-
| align="left" | [[Fail:Flag of Anambra State.png|center|100x100px]][[A̱si̱tet Ana̱mba̱ra]]
|
|[[Willie Obiano]]
|
|[[Dr. Nkem Okeke]]
|
|{{party name with colour|All Progressives Grand Alliance|color=#EED202|colour=#EED202}}
| rowspan="1" style="text-align: left;" scope="row" |2018
| 2022
|[[Lis A̱yaagwomna A̱si̱tet Ana̱mba̱ra|Lis]]
|-
| align="left" |[[A̱si̱tet Ba̱uci]]
|
|[[Bala Muhammed]]
|
|[[Baba Tela]]
|
|{{party name with colour|People's Democratic Party (Nigeria)}}
| 2019
|2023
| [[Lis A̱yaagwomna A̱si̱tet Ba̱uci|Lis]]
|-
| align="left" | [[Fail:Flag of Bayelsa State.svg|border|center|100x100px]][[A̱si̱tet Bayelsa]]
|
|[[Duoye Diri]]
|
|[[Lawrence Ewhrudjakpo]]
|
|{{party name with colour|People's Democratic Party (Nigeria)}}<ref>Pulse Nigeria (February 14, 2020. [https://www.pulse.ng/news/politics/douye-diri-sworn-in-as-bayelsa-governor/5z2y3c4 Douye Diri sworn in as Bayelsa Governor]. (di̱n Shong).</ref>
| 2020
|2024
| [[Lis A̱yaagwomna A̱si̱tet Bayelsa|Lis]]
|-
| align="left" |[[A̱si̱tet Benuwe]]
|
|[[Samuel Ortom]]
|
|[[Benson Abounu]]
|
|{{party name with colour|People's Democratic Party (Nigeria)}}<ref>[https://www.premiumtimesng.com/news/headlines/277737-breaking-benue-governor-ortom-defects-to-pdp.html UPDATED: Benue governor, Ortom, defects to PDP]. July 25, 2018.</ref>
| 2019
|2023
| [[Lis A̱yaagwomna A̱si̱tet Benuwe|Lis]]
|-
| align="left" | [[A̱si̱tet Ba̱rno]]
|
|[[Babagana Umara Zulum|BabaGana Umara]]
|
|[[Umar Usman Kadafur]]
|
|{{party name with colour|All Progressives Congress}}
| 2019
|2023
| [[Lis A̱yaagwomna A̱si̱tet Ba̱rno|Lis]]
|-
| align="left" | [[A̱si̱tet Kros Riva]]
|
|[[Benedict Ayade]]
|
|[[Ivara Esu]]
|
|{{party name with colour|People's Democratic Party (Nigeria)}}
| 2019
|2023
| [[Lis A̱yaagwomna A̱si̱tet Kros Riva|Lis]]
|-
| align="left" | [[A̱si̱tet Da̱li̱ta]]
|
|[[Ifeanyi Okowa]]
|
|[[Kingsley Otuaro]]
|
|{{party name with colour|People's Democratic Party (Nigeria)}}
| 2019
|2023
| [[Lis A̱yaagwomna A̱si̱tet Da̱li̱ta|Lis]]
|-
| align="left" |[[A̱si̱tet A̱bonyi]]
|[[Fail:Dave Umahi.jpg|thumb|center|100px]]
|[[Dave Umahi]]
|
|[[Eric Kelechi Igwe]]
|
|{{party name with colour|All Progressives Congress}}
| 2019
|2023
| [[Lis A̱yaagwomna A̱si̱tet A̱bonyi|Lis]]
|-
| align="left" | [[A̱si̱tet A̱do]]
|
|[[Godwin Obaseki]]
|
|[[Philip Shaibu]]
|
|{{party name with colour|People's Democratic Party (Nigeria)}}<ref>[https://www.premiumtimesng.com/news/headlines/398491-breaking-edo-2020-obaseki-joins-pdp.html Edo 2020: Obaseki joins PDP]. Premium Times.</ref>
| 2020
|2024
| [[Lis A̱yaagwomna A̱si̱tet A̱do|Lis]]
|-
| align="left" |[[A̱si̱tet A̱kiti]]
|
|[[Kayode Fayemi]]
|
|[[Bisi Egbeyemi]]
|
|{{party name with colour|All Progressives Congress}}
| 2018
|2022
| [[Lis A̱yaagwomna A̱si̱tet A̱kiti|Lis]]
|-
| align="left" |[[A̱si̱tet Inugu]]
|
|[[Ifeanyi Ugwuanyi]]
|
|[[Cecilia Ezeilo]]
|
|{{party name with colour|People's Democratic Party (Nigeria)}}
| 2019
|2023
| [[Lis A̱yaagwomna A̱si̱tet Inugu|Lis]]
|-
| align="left" | [[Fail:Flag of Gombe State.svg|center|100x100px]][[A̱si̱tet Gwombe]]
|
|[[Muhammad Inuwa Yahaya]]
|
|[[Manasseh Daniel Jatau]]
|
|{{party name with colour|All Progressives Congress}}
| 2019
|2023
| [[Lis A̱yaagwomna A̱si̱tet Gwombe|Lis]]
|-
| align="left" | [[Fail:Imo State Government.jpg|center|76x76px]][[A̱si̱tet Imo]]
|
[[Fail:Hope Uzodinma.jpg|center|100x100px]]
|[[Hope Uzodinma]]
|
|[[Placid Njoku]]
|
|{{party name with colour|All Progressives Congress}}
| 2020
|2024
| [[Lis A̱yaagwomna A̱si̱tet Imo|Lis]]
|-
| align="left" | [[A̱si̱tet Jigawa]]
|
|[[Badaru Abubakar]]
|
|[[Umar Alhaji Namadi]]
|
|{{party name with colour|All Progressives Congress}}
| 2019
|2023
| [[Lis A̱yaagwomna A̱si̱tet Jigawa|Lis]]
|-
| align="left" | [[A̱si̱tet Ka̱duna]]
|
|[[Nasir Ahmad el-Rufai]]
|
|[[Hadiza Sabuwa Balarabe]]
|
|{{party name with colour|All Progressives Congress}}
| 2019
|2023
| [[Lis A̱yaagwomna A̱si̱tet Ka̱duna|Lis]]
|-
| align="left" | [[A̱si̱tet Ka̱no]]
|
|[[Abdullahi Umar Ganduje]]
|
|[[Nasir Yusuf Gawuna]]
|
|{{party name with colour|All Progressives Congress}}
| 2019
|2023
| [[Lis A̱yaagwomna A̱si̱tet Ka̱no|Lis]]
|-
| align="left" | [[A̱si̱tet Ka̱sina]]
|[[Fail:Aminu B Masari.jpg|center|100x100px]]
|[[Aminu Bello Masari]]
|
|[[Mannir Yakubu]]
|
|{{party name with colour|All Progressives Congress}}
| 2019
|2023
| [[Lis A̱yaagwomna A̱si̱tet Ka̱sina|Lis]]
|-
| align="left" | [[A̱si̱tet Kebi]]
|
|[[Abubakar Atiku Bagudu]]
|
|[[Samaila Yombe Dabai]]
|
|{{party name with colour|All Progressives Congress}}
| 2019
|2023
| [[Lis A̱yaagwomna A̱si̱tet Kebi|Lis]]
|-
| align="left" | [[A̱si̱tet Kogi]]
|[[Fail:YahayaBello.jpg|center|100x100px]]
|[[Yahaya Bello]]
|
|[[Edward Onoja]]
|
|{{party name with colour|All Progressives Congress}}
| 2020
|2024
| [[Lis A̱yaagwomna A̱si̱tet Kogi|Lis]]
|-
| align="left" | [[A̱si̱tet Kwara]]
|
|[[AbdulRahman AbdulRasaq]]
|
|[[Kayode Alibi]]
|
|{{party name with colour|All Progressives Congress}}
| 2019
|2023
| [[Lis A̱yaagwomna A̱si̱tet Kwara|Lis]]
|-
| align="left" | [[A̱si̱tet Legwot]]
|[[Fail:Babajide Sanwaolu 2019 00 26 20 984000.jpeg|center|134x134px]]
|[[Babajide Sanwo-Olu]]
|
|[[Femi Hamzat]]
|
|{{party name with colour|All Progressives Congress}}
| 2019
|2023
| [[Lis A̱yaagwomna A̱si̱tet Legwot|Lis]]
|-
| align="left" | [[A̱si̱tet Na̱sa̱rawa]]
|[[Fail:Engineer AA Sule.jpg|center|100x100px]]
|[[Abdullahi Sule]]
|
|[[Emmanuel Agbadu Akabe]]
|
|{{party name with colour|All Progressives Congress}}
| 2019
|2023
| [[Lis A̱yaagwomna A̱si̱tet Na̱sa̱rawa|Lis]]
|-
| align="left" | [[A̱si̱tet Nija]]
|
|[[Abubakar Sani Bello]]
|
|[[Ahmed Muhammad Ketso]]
|
|{{party name with colour|All Progressives Congress}}
| 2019
|2023
| [[Lis A̱yaagwomna A̱si̱tet Nija|Lis]]
|-
| align="left" | [[A̱si̱tet Ogun]]
|[[Fail:Dapo Abiodun.jpg|center|116x116px]]
|[[Dapo Abiodun]]
|
|[[Noimot Salako-Oyedele]]
|
|{{party name with colour|All Progressives Congress}}
| 2019
|2023
| [[Lis A̱yaagwomna A̱si̱tet Ogun|Lis]]
|-
| align="left" | [[A̱si̱tet Ondo]]
|
|[[Oluwarotimi Odunayo Akeredolu]]
|
|[[Lucky Aiyedatiwa]]<ref>Online (24 February 2021). [https://www.thisdaylive.com/index.php/2017/02/24/new-ondo-gov-akeredolu-deputy-sworn-in-promises-to-rebuild-state/ New Ondo Gov, Akeredolu, Deputy Sworn in, Promises to Rebuild State].</ref>
|
|{{party name with colour|All Progressives Congress}}<ref>[https://web.archive.org/web/20140903105300/http://www.currentinall.com/2014/09/Nigerian-Governors-Political-Party-Year-of-Election.html#sthash.3QZB5MYi.dpufhttp://www.currentinall.com/2014/09/Nigerian-Governors-Political-Party-Year-of-Election.html List of Nigerian State Governors, their Political Party and Year of Election].</ref>
| 2021
|2025
| [[Lis A̱yaagwomna A̱si̱tet Ondo|Lis]]
|-
| align="left" | [[Fail:Flag of Osun State, Nigeria.svg|center|100x100px]][[A̱si̱tet Oshun]]
|
|[[Adegboyega Oyetola]]
|
|[[Gboyega Alabi]]
|
|{{party name with colour|All Progressives Congress}}
| 2018
|2022
| [[Lis A̱yaagwomna A̱si̱tet Oshun|Lis]]
|-
| align="left" | [[A̱si̱tet Oyo]]
|
|[[Oluwaseyi Makinde]]
|
|[[Engr. Rauf Aderemi Olaniyan]]
|
|{{party name with colour|People's Democratic Party (Nigeria)}}
| 2019
|2023
| [[Lis A̱yaagwomna A̱si̱tet Oyo|Lis]]
|-
| align="left" | [[A̱si̱tet Pi̱lato]]
|
|[[Simon Bako Lalong|Simon Lalong]]
|
|[[Sonni Gwanle Tyoden]]
|
|{{party name with colour|All Progressives Congress}}
| 2019
|2023
| [[Lis A̱yaagwomna A̱si̱tet Pi̱lato|Lis]]
|-
| align="left" | [[A̱si̱tet Rivas]]
|
|[[Ezenwo Nyesom Wike]]
|
|[[Ipalibo Banigo]]
|
|{{party name with colour|People's Democratic Party (Nigeria)}}
| 2019
|2023
| [[Lis A̱yaagwomna A̱si̱tet Rivas|Lis]]
|-
| align="left" | [[A̱si̱tet Sokoto]]
|
|[[Aminu Waziri Tambuwal]]
|
|[[Alhaji Mannir Dan’Iya]]<ref>https://web.archive.org/web/20191110064534/https://www.dailytrust.com.ng/daniya-emerges-sokotos-deputy-governor.html</ref>
|
|{{party name with colour|People's Democratic Party (Nigeria)}}
| 2019
|2023
| [[Lis A̱yaagwomna A̱si̱tet Sokoto|Lis]]
|-
| align="left" | [[A̱si̱tet Taraba]]
|
|[[Darius Ishaku|Arch. Darius Ishaku]]
|
|[[Haruna Manu]]
|
|{{party name with colour|People's Democratic Party (Nigeria)}}
| 2019
|2023
| [[Lis A̱yaagwomna A̱si̱tet Taraba|Lis]]
|-
| align="left" | [[A̱si̱tet Yobe]]
|
|[[Mai Mala Buni]]
|
|[[Idi Barade Gubana]]
|
|{{party name with colour|All Progressives Congress}}
| 2019
|2023
| [[Lis A̱yaagwomna A̱si̱tet Yobe|Lis]]
|-
| align="left" | [[A̱si̱tet Za̱mfa̱ra]]
|
|[[Bello Matawalle]]
|
|[[Mahdi Aliyu Gusau]]
|
|{{party name with colour|People's Democratic Party (Nigeria)}}
| 2019
|2023
| [[Lis A̱yaagwomna A̱si̱tet Za̱mfa̱ra|Lis]]
|- bgcolor=#e8e8e8
! [[Teritori A̱keangtung Mundundung|TA̱M]]
! Minista Mi̱ Di̱ Yong Huni
!
!
!
! colspan="2" |Sot
! Nwuai Ofit
! Tyiai A̱cak-nta̱m
! A̱yaakwak A̱son A̱shai
|-
|[[A̱buja]]
|
|[[Mohammed Musa Bello|Bello Mohammed]]
|
|[[Ramatu Tijjani Aliyu|Ramatu Tijani]]
|
|{{party name with colour|All Progressives Congress}}
|2019
|2023
|[[Lis A̱yaaminista Teritori A̱keangtung Mundundung (Naijeriya)|Lis]]
|-
|}
<ref>[https://web.archive.org/web/20210506041040/http://www.nigeriaembassyusa.org/index.php?page=state-governors Embassy of the Federal Republic of Nigeria - List of State Governors].</ref>
<ref>[https://www.naijadazz.com/nigerian-governors List of newly elected governors in Nigeria 2019 with election statistics].</ref>
<ref>https://punchng.com/inec-issues-certificate-of-return-to-zamfara-gov-elect-bello-matawalle/amp/</ref><ref>[https://www.channelstv.com/2020/01/15/breaking-hope-uzodinma-sworn-in-as-imo-state-governor/ Hope Uzodinma Sworn In As Imo State Governor]. Channels Television.</ref>
==Bu nwuan==
*[[Lyulyoot sí̱tet Naijeriya|Sí̱tet Naijeriya]]
*[[Lyulyoot a̱yaagwomna sí̱tet gbangbang si̱ Naijeriya]]
*[[Progressive Governors Forum|Progressive Governors Forum (PGF)]]
==Ya̱fang==
<div style="height: 200px; overflow:auto; border: 1px solid gray; padding-right: 12px; background-color: #EEEEEE; ">
<references />
</div>
==A̱ka̱fwuop nta==
[[Sa:Lyulyoot a̱yaagwomna sí̱tet mi̱ Naijeriya| ]]
[[Sa:Lyulyoot á̱nietba̱ng cuktyok mi̱ Naijeriya|A̱yaagwomna sí̱tet]]
[[Sa:Lists of current office-holders of country subdivisions|Nigeria]]
d9qyakpk6iwz4cqk5ov2qu1hjd74o8b
Lyulyoot nnwap mi̱ Naijeriya
0
581
14349
13420
2022-06-13T10:22:37Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
A̱byin [[Naijeriya]] yet a̱si̱ ka̱ nhyat ma̱ng nnwap ma̱ a̱di̱di̱t kya ba̱t na̱ si̱ swak 300 a̱ni ma̱ng lilyem 500.<ref>"[https://www.cia.gov/the-world-factbook/countries/nigeria/ Africa: Nigeria]". The World Factbook. Central Intelligence Agency.</ref>
== Lyulyoot nnwap ==
Si̱ huni hwa yet '''lyulyoot nnwap mi̱ Naijeriya''', si̱ hu ku si̱ mi̱n tyak a̱ni bah.
{| class="wikitable sortable"
|-
!A̱lyoot Nwap
!A̱si̱tet
|-
|[[Abayon]]
|[[Cross River State]]
|-
|[[Abua]] (Odual)
|[[Rivers State]]
|-
|[[Acipa]] (Achipawa)
|[[Kebbi State]]
|-
|[[A̱da̱ra]] (Á̱nietTswaywan)
|[[Si̱tet Ka̱duna]], [[Niger State]]
|-
|[[Affade]]
|[[Yobe State]]
|-
|[[Afizere]]
|[[Si̱tet Pi̱lato]]
|-
|Afo (Eloyi)
|[[Nasarawa State]]
|-
|Agbo
|[[Cross River State]]
|-
|Akaju-Ndem (Akajuk)
|[[Cross River State]]
|-
|Akweya-Yachi
|[[Benue State]]
|-
|Alago (Arago)
|[[Nasarawa State]]
|-
|Amo
|[[Si̱tet Ka̱duna]], [[Si̱tet Pi̱lato]],
|-
|Anaguta
|[[Si̱tet Pi̱lato]]
|-
|Anaang
|[[Akwa Ibom State]]
|-
|Andoni
|[[Akwa Ibom State]], [[Rivers State]]
|-
|Anioma
|[[Delta State]], [[Edo State]], [[Anambra State]], [[Rivers State]]
|-
|Ankwei
|[[Si̱tet Pi̱lato]]
|-
|Anyima
|[[Cross River State]]
|-
|[[A̱tyap]] (Kataf/Katab, A̱takat, A̱gwoot, A̱fantswam, A̱sholyio)
|[[Si̱tet Ka̱duna]]
|-
|Auyo (Á̱kum-A̱kpat)
|[[Jigawa State]]
|-
|Awori
|[[Lagos State]], [[Ogun State]]
|-
|Ayu
|[[Si̱tet Ka̱duna]]
|-
|Bura-Pabir
|[[Adamawa State]], [[Borno State]], [[Yobe State]]
|-
|Bacama
|[[Adamawa State]]
|-
|Baceve
|[[Cross River State]]
|-
|Bada
|[[Si̱tet Pi̱lato]]
|-
|Bade
|[[Yobe State]]
|-
|[[Baggara|Baggara Arabs]]
|[[Borno State]]
|-
|[[Bahumono]]
|[[Cross River State]]
|-
|Bakulung
|[[Taraba State]]
|-
|Bali
|[[Taraba State]]
|-
|Bambora (Bambarawa)
|[[Bauchi State]]
|-
|Bambuko
|[[Taraba State]]
|-
|[[A̱jhyo]] (Ba̱jju)
|[[Si̱tet Ka̱duna]]
|-
|Banda (Bandawa)
|[[Taraba State]]
|-
|Banka (Bankalawa)
|[[Bauchi State]]
|-
|Banso (Panso)
|[[Adamawa State]]
|-
|Bara (Barawa)
|[[Bauchi State]]
|-
|Barke
|[[Bauchi State]]
|-
|Baruba (Batonu)
|[[Kwara State]], [[Niger State]]
|-
|Bashiri (Bashirawa)
|[[Plateau State]]
|-
|Bassa
|[[Kaduna State]], [[Kogi State]], [[Niger State]], [[Plateau State]]
|-
|Batta
|[[Adamawa State]]
|-
|Baushi
|[[Niger State]]
|-
|Baya
|[[Adamawa State]]
|-
|Bekwarra
|[[Cross River State|Cross River]]
|-
|Bele (Buli, Belewa)
|[[Bauchi State]]
|-
|[[A̱ba̱rom|A̱ba̱lom]] (A̱berom)
|[[Si̱tet Pi̱lato]]
|-
|Betso (Bete)
|[[Taraba State]]
|-
|Bette
|[[Cross River State]]
|-
|Bilei
|[[Adamawa State]]
|-
|Bille
|[[Rivers State]]
|-
|Bina (Binawa)
|[[Kaduna State]]
|-
|Bini (Edo)
|[[Edo State]]
|-
|Bobua
|[[Taraba State]]
|-
|Bokyi (Nkyi)
|[[Cross River State]]
|-
|Bokkos
|[[Plateau State]]
|-
|Boko (Bussawa, Bargawa)
|[[Niger State]]
|-
|Bole (Bolewa)
|[[Bauchi State]], [[Gombe State]], [[Yobe State]]
|-
|Botlere
|[[Adamawa State]]
|-
|Boma (Bomawa, Burmano)
|[[Bauchi State]]
|-
|Bomboro
|[[Bauchi State]]
|-
|Buduma
|[[Borno State]],
|-
|Buji
|[[Plateau State]]
|-
|Buli
|[[Bauchi State]]
|-
|Bunu
|[[Kogi State]]
|-
|[[Bura-Pabir]]
|[[Adamawa State]], [[Borno State]], [[Yobe State]]
|-
|Burak
|[[Bauchi State]]
|-
|Burma (Burmawa)
|[[Plateau State]]
|-
|Buru
|[[Yobe State]]
|-
|Buta (Butawa)
|[[Bauchi State]]
|-
|Bwall
|[[Plateau State]]
|-
|Bwatye
|[[Adamawa State]]
|-
|Bwazza
|[[Adamawa State]]
|-
|Calla
|[[Plateau State]]
|-
|Cama (Camawa Fitilai)
|[[Bauchi State]]
|-
|Camba
|[[Taraba State]]
|-
|Camo
|[[Bauchi State]]
|-
|Cibok (Kibaku)
|[[Borno State]], [[Yobe State]]
|-
|Cinine
|[[Borno State]]
|-
|Cip
|[[Plateau State]]
|-
|Cokobo
|[[Plateau State]]
|-
|Cukkol
|[[Taraba State]]
|-
|Daba
|[[Adamawa State]]
|-
|Dadiya
|[[Bauchi State]]
|-
|Daka
|[[Adamawa State]]
|-
|Dakarkari
|[[Kebbi State]], [[Niger State]]
|-
|Danda (Dandawa)
|[[Kebbi State]]
|-
|Dangsa
|[[Taraba State]]
|-
|Daza (Dere, Derewa)
|[[Bauchi State]]
|-
|Deno (Denawa)
|[[Bauchi State]]
|-
|Dghwede
|[[Borno State]]
|-
|Diba
|[[Taraba State]]
|-
|Doemak (Dumuk)
|[[Plateau State]]
|-
|Duguri
|[[Bauchi State]]
|-
|Duka (Dukawa)
|[[Kebbi State]]
|-
|Duma (Dumawa)
|[[Bauchi State]]
|-
|Ebana (Ebani)
|[[Rivers State]]
|-
|Ebira
|[[Edo State]], [[Kogi State]], [[Ondo State]]
|-
|Ebu
|[[Edo State]], [[Kogi State]]
|-
|Ebu
|[[Edo State]], [[Kogi State]]
|-
|Efik
|[[Cross River State]]
|-
|Egbema
|[[Rivers State]]
|-
|Egede (Igedde)
|[[Benue State]]
|-
|Eggon
|[[Nasarawa State]]
|-
|Egun (Gu)
|[[Lagos State]], [[Ogun State]]
|-
|Ejagham
|[[Cross River State]]
|-
|Ekajuk
|[[Cross River State]]
|-
|Eket
|[[Akwa Ibom]]
|-
|Ekoi
|[[Cross River State]]
|-
|Ekpeye
|[[Rivers State]]
|-
|Engenni (Ngene)
|[[Rivers State]]
|-
|Epie
|[[Bayelsa State]]
|-
|Esan (Ishan)
|[[Edo State]]
|-
|Esit Ekid
|[[Akwa Ibom State]]
|-
|[[Etche]]
|[[Rivers State]]
|-
|Etolu (Etilo)
|[[Benue State]]
|-
|Etsako
|[[Edo State]]
|-
|Etung
|[[Cross River State]]
|-
|Etuno
|[[Edo State]]
|-
|Palli
|[[Adamawa State]]
|-
|[[Fulani]] ([[Fulbe]])
|[[Adamawa State]], [[Bauchi State]], [[Borno State]], [[Gombe State]], [[Jigawa State]], [[Kaduna State]], [[Kano State]], [[Katsina State]], [[Kebbi State]], [[Kwara State]], [[Niger State]], [[Plateau State]], [[Sokoto State]], [[Taraba State]], [[Yobe State]], [[Zamfara State]]
|-
|Fyam (Fyem)
|[[Plateau State]]
|-
|Fyer(Fer)
|[[Plateau State]]
|-
|Ga'anda
|[[Adamawa State]]
|-
|Gade
|[[Niger State]] [[Nasarawa State]]
|-
|Galambi
|[[Bauchi State]]
|-
|Gamergu-Mulgwa
|[[Borno State]]
|-
|Ganawuri
|[[Plateau State]]
|-
|Gavako
|[[Borno State]]
|-
|Gbedde
|[[Kogi State]]
|-
|Gengle
|[[Taraba State]]
|-
|Geji
|[[Bauchi State]]
|-
|Gera (Gere, Gerawa)
|[[Bauchi State]]
|-
|Geruma (Gerumawa)
|[[Plateau State]]
|-
|Geruma (Gerumawa)
|[[Bauchi State]]
|-
|Gingwak
|[[Bauchi State]]
|-
|Gira
|[[Adamawa State]]
|-
|Gizigz
|[[Adamawa State]]
|-
|Goemai
|[[Plateau State]]
|-
|Gokana (Kana)
|[[Rivers State]]
|-
|Gombi
|[[Adamawa State]]
|-
|Gornun (Gmun)
|[[Taraba State]]
|-
|Gonia
|[[Taraba State]]
|-
|Gubi (Gubawa)
|[[Bauchi State]]
|-
|Gude
|[[Adamawa State]]
|-
|Gudu
|[[Adamawa State]]
|-
|Gure
|[[Kaduna State]]
|-
|Gurmana
|[[Niger State]]
|-
|Gururntum
|[[Bauchi State]]
|-
|Gusu
|[[Plateau State]]
|-
|Gwa (Gurawa)
|[[Adamawa State]]
|-
|Gwamba
|[[Adamawa State]]
|-
|Gwandara
|[[Kaduna State]], [[Niger State]], [[Federal Capital Territory (Nigeria)|Federal Capital Territory]], [[Nasarawa State]]
|-
|Gwari (Gbagi)
|[[Kaduna State]], [[Federal Capital Territory (Nigeria)|Federal Capital Territory]], [[Nasarawa State]], [[Niger State]],
[[Kogi State]]
|-
|Gwong (Kagoma)
|[[Kaduna State]]
|-
|Gwom
|[[Taraba State]]
|-
|Gwoza (Waha)
|[[Borno State]]
|-
|Gyem
|[[Bauchi State]]
|-
|[[Ham people|Ham]] (Hyam, Jaba, Jabba)
|[[Kaduna State]]
|-
|[[Hausa people|Hausa]]
|[[Bauchi State]], [[Borno State]], [[Jigawa State]], [[Kaduna State]], [[Kano State]], [[Katsina State]], [[Kebbi State]], [[Niger State]], [[Sokoto State]], [[Taraba State]]
|-
|Holma
|[[Adamawa State]]
|-
|Hona
|[[Adamawa State]]
|-
|Ibani
|[[Rivers State]]
|-
|Ibeno
|[[Akwa Ibom State]]
|-
|[[Ibibio people|Ibibio]]
|[[Akwa Ibom State]]
|-
|Ichen
|[[Adamawa State]]
|-
|Idoma
|[[Benue State]], [[Cross River State]], [[Kogi State]], [[Nassarawa State]]
|-
|Igala
|[[Kogi State]]
|-
|Igbo
|[[Abia State]], [[Anambra State]], [[Benue state]], [[Cross River (Nigeria)|Cross River]], [[Delta State]], [[Ebonyi State]], [[Edo state]], [[Enugu State]], [[Imo State]], [[Kogi state]], [[Rivers State]]
|-
|Ijumu
|[[Kogi State]]
|-
|Ika
|[[Delta State]]
|-
|Ikom
|[[Cross River State]]
|-
|Ikwerre
|[[Rivers State]]
|-
|[[Irigwe people|Irigwe]]
|[[Plateau State]]
|-
|Iman
|[[Akwa Ibom State]]
|-
|Isoko
|[[Delta State]], [[Bayelsa State]]
|-
|Isekiri (Itsekiri)
|[[Delta State]]
|-
|Itu
|[[Akwa Ibom State]]
|-
|Itu Mbio Uso
|[[Akwa Ibom State]]
|-
|Iyala (Iyalla)
|[[Cross River State]]
|-
|Izon (Ijaw)
|[[Bayelsa State]], [[Delta State]], [[Edo State]], [[Ondo State]], [[Rivers State]]
|-
|Jahuna (Jahunawa)
|[[Taraba State]]
|-
|Jaku
|[[Bauchi State]]
|-
|Jara (Jaar Jarawa Jarawa-Dutse)
|[[Bauchi State]]
|-
|Jere (Jare, Jera, Jera, Jerawa)
|[[Bauchi State]], [[Plateau State]]
|-
|Jero
|[[Taraba State]]
|-
|
Jibu
|[[Adamawa State]]
|-
|
Jidda-Abu
|[[Plateau State]]
|-
|
Jimbin (Jimbinawa)
|[[Bauchi State]]
|-
|Jirai
|[[Adamawa State]]
|-
|Joinkrama
|[[Rivers State]]
|-
|Jonjo (Jenjo)
|[[Taraba State]]
|-
|Jukun
|[[Bauchi State]], [[Benue State]], [[Plateau State]], [[Taraba State]]
|-
|
Kaba(Kabawa)
|[[Taraba State]]
|-
|Kalabari
|[[Rivers State]]
|-
|Kajuru (Kajurawa)
|[[Kaduna State]]
|-
|Kaka
|[[Adamawa State]]
|-
|Kamaku (Karnukawa)
|[[Kaduna State]], [[Kebbi State]], [[Niger State]]
|-
|Kambari
|[[Kebbi State]], [[Niger State]]
|-
|Kambu
|[[Adamawa State]]
|-
|Kamwe
|[[Adamawa State]] and [[Borno State]] ([[Republic of Cameroon]])
|-
|Kanakuru (Dera)
|[[Adamawa State]], [[Borno State]]
|-
|Kanembu
|[[Borno State]]
|-
|Kanikon
|[[Kaduna State]]
|-
|Kantana
|[[Plateau State]]
|-
|Kanuri
|[[Adamawa State]], [[Borno State]], [[Taraba State]], [[Yobe State]]
|-
|Karekare (Karaikarai)
|[[Bauchi State]], [[Yobe State]]
|-
|Karimjo
|[[Taraba State]]
|-
|Kariya
|[[Bauchi State]]
|-
|Ke
|[[Rivers State]]
|-
|Kenern (Koenoem)
|[[Plateau State]]
|-
|Kenton
|[[Taraba State]]
|-
|Kiballo (Kiwollo)
|[[Kaduna State]]
|-
|Kilba
|[[Adamawa State]]
|-
|Kirfi (Kirfawa)
|[[Bauchi State]]
|-
|Kodei
|[[Taraba State]]
|-
|Kona
|[[Taraba State]]
|-
|Koro (Kwaro)
|[[Kaduna State]], [[Niger State]]
|-
|Kubi (Kubawa)
|[[Bauchi State]]
|-
|Kudachano (Kudawa)
|[[Bauchi State]]
|-
|Kugama
|[[Taraba State]]
|-
|Kugbo
|[[Rivers State]]
|-
|Kulere (Kaler)
|[[Plateau State]]
|-
|Kunini
|[[Taraba State]]
|-
|Kurama(Akurmi)
|[[Kaduna State]], [[Jigawa State]]
|-
|Kurdul
|[[Adamawa State]]
|-
|Kushi
|[[Bauchi State]]
|-
|Kuteb
|[[Taraba State]]
|-
|Kutin
|[[Taraba State]]
|-
|Kwalla
|[[Plateau State]]
|-
|Kwami (Kwom)
|[[Bauchi State]]
|-
|Kwanchi
|[[Taraba State]]
|-
|Kadung
|[[Bauchi State]], [[Plateau State]]
|-
|Kwaro
|[[Plateau State]]
|-
|Kwato
|[[Plateau State]]
|-
|Kyenga (Kengawa)
|[[Kebbi State]]
|-
|Laaru (Larawa)
|[[Niger State]]
|-
|Lakka
|[[Adamawa State]]
|-
|Lala
|[[Adamawa State]]
|-
|Lama
|[[Taraba State]]
|-
|Lamja
|[[Taraba State]]
|-
|Lau
|[[Taraba State]]
|-
|Limono
|[[Bauchi State]], [[Plateau State]]
|-
|Lopa (Lupa, Lopawa)
|[[Niger State]]
|-
|Longuda (Lunguda)
|[[Adamawa State]], [[Bauchi State]]
|-
|Mabo
|[[Plateau State]]
|-
|Mada
|[[Kaduna State]], [[Plateau State]]
|-
|Mama
|[[Plateau State]]
|-
|Mambilla
|[[Adamawa State]]
|-
|Mandara (Wandala)
|[[Borno State]]
|-
|Manga (Mangawa)
|[[Yobe State]]
|-
|Margi (Marghi)
|[[Adamawa State]], [[Borno State]]
|-
|Mafa (Mofa)
|[[Adamawa State]], [[Borno State]]
|-
|Mbembe
|[[Cross River State]], [[Enugu State]]
|-
|Mbol
|[[Adamawa State]]
|-
|Mbube
|[[Cross River State]]
|-
|Mbula
|[[Adamawa State]]
|-
|Mbum
|[[Taraba State]]
|-
|Memyang (Meryan)
|[[Plateau State]]
|-
|Milighili (Mighili)
|[[Plateau State]]
|-
|Miya (Miyawa)
|[[Bauchi State]]
|-
|Mobber
|[[Borno State]]
|-
|Montol
|[[Plateau State]]
|-
|Moruwa (Moro'a, Morwa)
|[[Kaduna State]]
|-
|Muchaila
|[[Adamawa State]]
|-
|Mumuye
|
[[Taraba State]]
|-
|Mundang
|[[Adamawa State]]
|-
|Munga (Lelau)
|[[Taraba State]]
|-
|Munga (Mupang)
|[[Plateau State]]
|-
|Mupun
|[[Plateau State]]
|-
|[[Mushere]]
|[[Plateau State]]
|-
|Mwahavul (Mwaghavul)
|[[Plateau State]]
|-
|Ndoro
|[[Taraba State]]
|-
|[[Angas people|Ngas]] (Angas)
|[[Plateau State]], [[Bauchi State]]
|-
|Ngizim
|[[Yobe State]]
|-
|Ngweshe (Ndhang.Ngoshe-Ndhang)
|[[Adamawa State]], [[Borno State]]
|-
|Nyiffon
|[[Benue State]]
|-
|Ningi (Ningawa)
|[[Bauchi State]]
|-
|Ninzam (Ninzo)
|[[Kaduna State]], [[Plateau State]]
|-
|Njayi
|[[Adamawa State]]
|-
|Nkim
|[[Cross River State]]
|-
|Nkum
|[[Cross River State]]
|-
|Nokere (Nakere)
|[[Plateau State]]
|-
|Nunku
|[[Kaduna State]], [[Plateau State]]
|-
|Nupe
|[[Kogi State]], [[Kwara State]], [[Niger State]]
|-
|Nyam
|[[Taraba State]]
|-
|Nyandang
|[[Taraba State]]
|-
|Obolo
|[[Rivers State]], [[Akwa Ibom]]
|-
|Ododop
|[[Cross River State|Cross River]]
|-
|Ogori
|[[Kogi State]]
|-
|Ogoni
|[[Akwa Ibom State]], [[Rivers State]]
|-
|Ogba
|[[Rivers State]]
|-
|[[Okobo people|Okobo]] (Okkobor)
|[[Akwa Ibom State]]
|-
|Okirika
|[[Rivers State]]
|-
|Okpamheri
|[[Edo State]]
|-
|Okpe
|[[Edo State]]
|-
|Okpe
|[[Delta State]]
|-
|Olukumi
|[[Delta State]]
|-
|Oron
|[[Akwa Ibom State]]
|-
|Ososo
|[[Edo State]]
|-
|Owan
|[[Edo State]]
|-
|Owe
|[[Kogi State]]
|-
|Oworo
|[[Kogi State]]
|-
|Pa'a (Pa'awa Afawa)
|[[Bauchi State]]
|-
|Pai
|[[Plateau State]]
|-
|Panyam
|[[Taraba State]]
|-
|Pero
|[[Bauchi State]]
|-
|Pire
|[[Adamawa State]]
|-
|Pkanzom
|[[Taraba State]]
|-
|Poll
|[[Taraba State]]
|-
|Polchi Habe
|[[Bauchi State]]
|-
|Pongo (Pongu)
|[[Niger State]]
|-
|Potopo
|[[Taraba State]]
|-
|Pyapun (Piapung)
|[[Plateau State]]
|-
|Qua
|[[Cross River State]]
|-
|Rebina (Rebinawa)
|[[Bauchi State]]
|-
|Reshe
|[[Kebbi State]], [[Niger State]]
|-
|Rindire (Rendre)
|[[Plateau State]]
|-
|Rishuwa
|[[Kaduna State]]
|-
|Ron
|[[Plateau State]]
|-
|Rubu
|[[Niger State]]
|-
|Rukuba
|[[Plateau State]]
|-
|Rumada
|[[Kaduna State]]
|-
|Rumaya
|[[Kaduna State]]
|-
|Sakbe
|[[Taraba State]]
|-
|Sanga
|[[Bauchi State]]
|-
|Sate
|[[Taraba State]]
|-
|Saya (Sayawa Za'ar)
|[[Bauchi State]], [[Kaduna State]], [[Plateau State]]
|-
|Segidi (Sigidawa)
|[[Bauchi State]]
|-
|Shanga (Shangawa)
|[[Kebbi State]]
|-
|Shangawa (ShanKadunagau)
|[[Plateau State]]
|-
|Shan-Shan
|[[Plateau State]]
|-
|Shira (Shira )
|[[Bauchi State]]
|-
|Shomo
|[[Taraba State]]
|-
|Shuwa
|[[Adamawa State]], [[Borno State]], [[Kaduna State]], [[Yobe State]]
|-
|Sikdi
|[[Plateau State]]
|-
|Siri (Sirawa)
|[[Bauchi State]]
|-
|Srubu (Surubu)
|[[Kaduna State]]
|-
|Sukur
|[[Adamawa State]]
|-
|Sura
|[[Plateau State]]
|-
|Tangale
|[[Gombe State]]
|-
|[[Tarok people|Tarok]] (Yergam)
|[[Plateau State]], [[Taraba State]], [[Nasarawa State]]
|-
|Teme
|[[Adamawa State]]
|-
|Tera (Terawa)
|[[Bauchi State]], [[Borno State]]
|-
|Teshena (Teshenawa)
|[[Kano State]]
|-
|Tigon
|[[Taraba State]]
|-
|Tikar
|[[Taraba State]]
|-
|Tiv
|[[Benue State]], [[Federal Capital Territory (Nigeria)|FCT]], [[Nasarawa State]], [[Niger State]], [[Plateau State]], [[Taraba State]]
|-
|Tula
|[[Gombe State]]
|-
|Tur
|[[Adamawa State]]
|-
|Ubbo
|[[Adamawa State]]
|-
|Udekeama
|[[Rivers State]]
|-
|Ufia
|[[Benue State]]
|-
|Ukelle
|[[Cross River State]]
|-
|Ukwani (Kwale)
|[[Delta State]]
|-
|Uncinda
|[[Kaduna State]], [[Kebbi State]], [[Niger State]],
|-
|Uneme (Ineme)
|[[Edo State]]
|-
|Ura (Ula)
|[[Niger State]]
|-
|[[Urhobo people|Urhobo]]
|[[Delta State]], [[Bayelsa State]].
|-
|Utonkong
|[[Benue State]]
|-
|[[Uwanno]] (Weppa-Wanno)
|[[Edo State]]
|-
|Uyanga
|[[Cross River State]]
|-
|Vemgo
|[[Adamawa State]]
|-
|Verre
|[[Adamawa State]]
|-
|Vommi
|[[Taraba State]]
|-
|Wagga
|[[Adamawa State]]
|-
|Waja
|[[Bauchi State]]
|-
|Waka
|[[Taraba State]]
|-
|Warja (Warja)
|[[Bauchi State]]
|-
|Warji
|[[Bauchi State]]
|-
|Wurbo
|[[Adamawa State]]
|-
|Wurkun
|[[Taraba State]]
|-
|Yache
|[[Cross River State]]
|-
|Yagba
|[[Kogi State]]
|-
|Yakurr (Yako)
|[[Cross River State]]
|-
|Yalla
|[[Benue State]]
|-
|Yandang
|[[Adamawa State]], [[Taraba State]]
|-
|[[Yoruba people|Yoruba]]
|[[Ekiti State]], [[Kogi State]], [[Kwara State]], [[Lagos State]], [[Ogun State]], [[Ondo State]], [[Osun State]], [[Oyo State]]
|-
|Yott
|[[Taraba State]]
|-
|Yumu
|[[Niger State]]
|-
|Yungur
|[[Adamawa State]]
|-
|Yuom
|[[Plateau State]]
|-
|Zabara
|[[Niger State]]
|-
|Zaranda
|[[Bauchi State]]
|-
|Zarma (Zarmawa)
|[[Kebbi State]]
|-
|Zayam (Zeam)
|[[Bauchi State]]
|-
|Zul (Zulawa)
|[[Bauchi State]]
|-
|}
== Ya̱fang ==
<references/>
[[Sa:Nnwap mi̱ Naijeriya]]
[[Sa:Nnwap_swanta]]
[[Sa:Nnwap_Afrika]]
oh7bobum5erxbjx6gr0tu974d97611r
Lyulyoot á̱niet á̱ ku jhyet mman á̱ nswak ma̱ a̱byin Muna̱pyia̱ Amerika mi̱ 1960 a̱ni
0
582
6656
6655
2022-05-16T12:51:53Z
Jon Harald Søby
8
4 revisions imported
wikitext
text/x-wiki
'''A̱tyōk'''
Dawuda
Maichet
Yo̱ona
Ja̱me
Robert
Markut
Williya̱m
Richard
Thomat
Sitibin.
'''A̱nyuuk'''
Maryamu
Suzana
Mariya
Karen
Lisa
Linda
Donna
Patricia
Debra
Deborah.
==Ya̱fang==
qy07ekho5e68j93zzndgijomff962y8
Lyulyoot á̱niet á̱ lyen á̱ nswak mi̱ Kworiya A̱tak a̱ni
0
583
6662
6661
2022-05-16T12:51:54Z
Jon Harald Søby
8
5 revisions imported
wikitext
text/x-wiki
'''A̱ka̱seam'''
1. Seo-jun
2. Ha-joon
3. Do-yun
4. Eun-woo
5. Si-woo
6. Ji-ho
7. Ye-jun
8. Yu-jun
9. Ju-won
10. Min-jun.
'''A̱ka̱neam'''
1. Ji-an
2. Ha-yoon
3. Seo-ah
4. Ha-eun
5. Seo-yun
6. Ha-rin
7. Ji-yoo
8. Ji-woo
9. Soo-ah
10. Ji-a.
==Ya̱fang==
qiyvvcss17vsqd6zi64avky3o5apz2o
Lyuut
0
584
12379
6678
2022-05-21T04:59:07Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
[[Fail:Rosetta Stone.JPG|thumb|A̱fang Rosetta ka, ma̱ng lyuut di̱ lyuut mi̱ lyuut nvwuon ntat, kikya ku yet vak fi̱k A̱khwukhwop a̱lyem Ma̱sa̱r wu.]]
'''Lyuut''' yet vak ta̱m ma̱ng nta̱m hwa, á̱ ghwang zunzwuo ja mami kyai a̱wat nang a̱tyufang wu na li a̱ nkyiak kyang hu á̱ ku ghwak a̱ni.
==Ya̱fang==
<references/>
nwbupklbzwtdbv4zsfannn1iydypimo
Lìla̱k
0
585
6680
6679
2022-05-16T12:51:54Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[Li̱lak]]
os2g3ko7j0v47ao0pa57c4by00kn83g
Macau
0
586
6682
6681
2022-05-16T12:51:54Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[Ma̱ka̱u]]
fwft7ys88q92i8h9if2yn8syjf4s4n3
Mada̱ga̱si̱ka
0
587
14754
14351
2022-07-04T08:27:14Z
Kwamikagami
349
wikitext
text/x-wiki
{{Country
|name = ''Ri̱pobi̱lik Mada̱ga̱si̱ka''<br><small>Repoblikan'i Madagasikara (Malagasi)</small><br><small>République de Madagascar (Fi̱ransa)</small>
|flag = Flag of Madagascar.svg
|caption = Tyiang a̱toot shi a̱byin Mada̱ga̱si̱ka
|coa = Seal of Madagascar.svg
|image = Madagascar (centered orthographic projection).svg
|capital = A̱ntananarivo
|area = 592,800
|population = 28,427,328
|year = 2021
}}
A̱byin '''Mada̱ga̱si̱ka''', á̱ lyen ma̱ng a̱lyoot a̱gwomna̱ti nka nang '''Ri̱pobi̱lik Mada̱ga̱si̱ka''' (Malagasi: Repoblikan'i Madagasikara /republiˈkʲan madaɡasˈkʲarə̥/, Fi̱ransa: République de Madagascar), a̱wot á̱ ku si̱ ngyei di̱n jen ji̱ swak a̱ni nang Ri̱pobi̱lik Mala̱gasi wu a̱ni, yet a̱byin kya ka̱ shyia̱ a̱ka̱wa̱tyia̱ a̱sa̱khwot mi̱ [[A̱gba̱ndang Kyai A̱sa̱khwot Ndiya]] wu, shyia̱ kpa̱mkpaan ma̱ng kilomita 400 (met 250) neet mi̱ khwong kyai a̱sa̱khwot fam-a̱byin A̱tyin Afrika hu, a̱ma̱nyi A̱na̱nwuai A̱sa̱khwot Mozambik ka. Ma̱ng shi kyai a̱byin ku yet kilomita a̱ma̱ntaa̱naai 592,800 (met a̱ma̱ntaa̱naai 228,900) a̱byin Mada̱ga̱si̱ka kya yet a̱byin a̱ka̱wa̱tyia̱ a̱sa̱khwot a̱feang ka̱ swak ma̱ng shi a̱ni mi̱ swanta hu, a̱ma̱lyim [[Ndonisiya]]. A̱kuu a̱byin ka byia̱ a̱byin a̱ka̱wa̱tyia̱ a̱sa̱khwot nang á̱ ka ngyei Mada̱ga̱si̱ka (a̱byin a̱ka̱wa̱tyia̱ ka̱ yet a̱feang ma̱ng shi kyai mi̱ swanta hu) a̱ni, ma̱ng a̱cyuang bibyin a̱ka̱wa̱tyia̱ a̱sa̱khwot ma̱ a̱di̱di̱t ghyáng.
==A̱bwom a̱byin==
"Nwan, A̱byin A̱yaatyia̱-a̱khwop Nzi̱t ka nang Zi̱ Cat a̱ni!" ("Ry Tanindrazanay malala ô!") [[Fail:Ry Tanindrazanay malala ô! (instrumental).ogg]]
==Ya̱fang==
<references/>
{{Bibyin Afrika}}
[[Sa:Bibyin swanta]]
[[Sa:Bibyin Afrika]]
[[Sa:Bibyin A̱tak Afrika]]
nzd9d6e0idk7pemtf6p27u03e4u9goe
Mada̱ga̱ska
0
588
6701
6700
2022-05-16T12:51:55Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[Mada̱ga̱si̱ka]]
exe5putmyw3g5r4mvrfwc044rxbous9
Main Page
0
589
14493
6705
2022-06-13T10:47:27Z
Vargenau
226
Changed redirect target from [[A̱tsak wat]] to [[A̱tsak Wat Wu]]
wikitext
text/x-wiki
#REDIRECT [[A̱tsak Wat Wu]]
4kavx6k0zlmlwxuztvyivtx5owfyc90
Mali
0
590
15200
15199
2022-07-17T18:27:38Z
Kambai Akau
15
wikitext
text/x-wiki
{{Country
|name = ''Ri̱pobi̱lik Mali''<br><small>République du Mali (Fi̱ransa)</small><br><small>ߡߊߟߌ ߞߊ ߝߊߛߏߖߊߡߊߣߊ ''Mali ka Fasojamana'' (Ba̱mba̱ra)</small><br><small>𞤈𞤫𞤲𞥆𞤣𞤢𞥄𞤲𞤣𞤭 𞤃𞤢𞥄𞤤𞤭 ''Renndaandi Maali'' (Fula)</small><br/><small>جمهورية مالي ''Jumhuriat Mali'' (La̱ra̱ba)</small>
|flag = Flag of Mali.svg
|coa = Coat of arms of Mali.svg
|image = Mali (orthographic projection).svg
|capital = Bamako
|area = 1 240 192
|population = 20 250 833
|year = 2020
}}
'''A̱bwom a̱byin''': "Le Mali" ("Mali")<br>[[File:Malian national anthem, performed by the United States Navy Band.oga]]
A̱byin '''Mali''' (yei Fi̱ransa: /mali/; yei Shong /ˈmɑːli/), á̱ lyen ma̱ng a̱lyoot a̱gwomna̱ti ka nang '''Ri̱pobi̱lik Mali''' wu (Fi̱ransa: République du Mali; [[Ba̱mba̱ra (a̱lyem)|Ba̱mba̱ra]]: ߡߊߟߌ ߞߊ ߝߊߛߏߖߊߡߊߣߊ, ''Mali ka Fasojamana'', Fa̱taa: 𞤈𞤫𞤲𞥆𞤣𞤢𞥄𞤲𞤣𞤭 𞤃𞤢𞥄𞤤𞤭, ''Renndaandi Maali''; La̱ra̱ba: جمهورية مالي, ''Jumhuriat Mali''; [[Shong (a̱lyem)|Shong]]: Republic of Mali), yet a̱byin kya di̱ fam a̱byin [[Jenshyung Afrika]] nang bibyin ghyáng keang di̱ tityak a̱ni. A̱byin Mali kya byia̱ shi kyai a̱byin a̱ni̱nai mi̱ [[Afrika]], ma̱ng shi kyai a̱byin ku swak kilomita a̱ma̱ntaa̱naai 1,240,000 ma̱ a̱da̱dei (met a̱ma̱ntaa̱naai 480,000). Shi á̱niet a̱byin Mali yet miliyon 19.1 hwa. A̱wot á̱ ku tyan %67 á̱niet nka ba̱ ka̱n ntat ndyia̱ 25 bah mi̱ da̱ a̱lyia̱ 2017. A̱keangtung nka ma̱ng a̱gba̱ndang a̱keang a̱ swak ma̱ng shi wa yet Bamako. A̱byin Mali ka̱ shyia̱ ma̱sa̱t a̱ni byia̱ nfam-a̱byin a̱ni̱nai a̱wot a̱gi̱gak nggu ba di̱ fam a̱za hu si̱ tat a̱ka̱wa̱tyia̱ Kyai A̱ji̱jak Sahara ka. Kap fam a̱tak a̱byin hu shyia̱ mi̱ Sa̱va̱na Sudan ji, a̱vwuo ka nang ma̱ a̱di̱di̱t á̱niet a̱byin ba shyia̱ ma̱ng swat hu, a̱wot a̱ka̱ghyui [[A̱ghyui Nija|Nija]] ma̱ng Senegal na si̱ kai mami nka. Tung nzwa a̱byin hu ngyong di̱n khap hwa ma̱ng lung a̱tsatsak nfang a̱byin. A̱nyiung mami a̱tsatsak nfang á̱na nang a̱byin ka byia̱ a̱ni wa yet zi̱nariya, a̱wot a̱byin kikya si̱ yet a̱tat mi̱ bibyin Afrika ku ghwut ma̱ng zi̱nariya ma̱ a̱byin ma̱ng shi a̱ni. Ka̱ bu ghwut lyiai [[Nfak|nfak]] mi̱ bibyin nta.
==Ya̱fang==
<references/>
{{Bibyin Afrika}}
[[Sa:Bibyin_swanta]]
[[Sa:Bibyin_Afrika]]
[[Sa:Bibyin_Jenshyung_Afrika]]
[[Sa:Mali]]
22krgqfrzu0fkhfo9wy4zri3c2x3i9r
Mam
0
591
12382
6749
2022-05-21T04:59:38Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
[[Fail:The Sun in white light.jpg|thumb|Ghwughwu a̱tsak li hu á̱ ku kyiak ma̱ a̱lyia̱ 2019 mami a̱mgba̱m a̱ta sai kyai tswazwa ka di̱n vak ta̱m ma̱ng kyangcyam mam ghyang]]
'''Mam''' yet [[a̱ta̱ngwat]] ka̱ sai ma̱ a̱ka̱wa̱tyia̱ kpa̱m nvam na̱ kaat mam hu a̱ni mi̱ kyai tswazwa hu.
==Ya̱fang==
<references/>
f6yx00a0271l5n8seesjajo2h42azsa
Mam Á̱niettyiet Swanta
0
592
13136
13135
2022-05-30T09:50:56Z
Kambai Akau
15
Ghwughwu
wikitext
text/x-wiki
[[File:2014 Erywań, Matenadaran (16).jpg|thumb|Mesrop Mashtots a̱ tyiet Koryun zwunzwuo a̱lyem [[A̱rmeniya]] ji, ghwughwu ghyang ma̱ a̱keang Yerevan.]]
'''Mam Á̱niettyiet Swanta''' hu, á̱ bu ngyei '''Mam Á̱niettyiet A̱byin ma̱ng A̱byin''' ka a̱ni yet a̱tuk 5 Zwat Swak kuzang a̱lyia̱ kya. Á̱ ku tsa a̱gwai mam huni ma̱ a̱lyia̱ 1994 mi̱ di̱ shim mbeang li̱n a̱ma UNESCO/ILO ma̱ a̱lyia̱ 1996. Ba̱ ku nwuak shim hu da̱nian ba̱ ca̱t ba̱ li ya a̱son ma̱ng fa̱k nyinyang a̱niettyiet Swanta bibya. A̱tuk mam kani, á̱ ni̱ ca̱t gba á̱niettyiet ba ba̱t a̱ghwon á̱ lyen nang ba̱ ndyen nkyang ba̱ tyiet a̱ni.
==Ya̱fang==
<references/>
m5lfyzrjqq3q3bjqya5nk5rmqntwr3y
Mam A̱nyiuk Bibyin Swanta
0
593
13150
13149
2022-05-30T11:19:13Z
Kambai Akau
15
wikitext
text/x-wiki
[[File:Frauentag 1914 Heraus mit dem Frauenwahlrecht.jpg|thumb|Posta a̱lyem Jaman jhyang mat Mam A̱nyiuk, Zwat Tsat 8, 1914. Á̱ ku lyuut (di̱n Tyap) : "Nwuak Nzi̱t A̱wat Koot Tswak A̱nyiuk, Mam A̱nyiuk, Zwat Tsat 8, 1914. Ba̱ng si̱ tat a̱fwun,..."<ref>[http://germanhistorydocs.ghi-dc.org/sub_image.cfm?image_id=1651 Nwuak Nzi̱t A̱wat Koot Tswak A̱nyiuk (Zwat Tsat 1914)]. Nkhang Jami̱ni mi̱ A̱yaadokyumen ma̱ng Nghwughwu.</ref> Á̱ ku nvwuong á̱niet mbeet posta jini ma̱ A̱byintyok Jamani ka a̱mgba̱m.<ref>Cintia Frencia; Daniel Gaido (Zwat Tsat 8, 2017). [https://www.jacobinmag.com/2017/03/international-womens-day-clara-zetkin-working-class-socialist/ The Socialist Origins of International Women's Day] (di̱n Shong). Jacobin.</ref>]]
'''Mam A̱nyiuk Bibyin Swanta''', '''MA̱BS''' ([[Shong]]: '''International Women's Day,''' IWD), yet mam a̱gwai hwa da̱nian ya̱ ason a̱nyiuk mi̱ swanta hu a̱ni. A̱tuk 8 Zwat Tsat ja yet mam hu. Mam a̱hwa hwa yet mam nang á̱niet ma̱ a̱di̱di̱t nja̱u san-a̱pyia̱ a̱nyiuk ma̱ng tat-a̱ghyi mba a̱ni. Bi̱ri̱ng ma̱ng a̱nia, a̱tuk mam a̱kya kya á̱ ni̱ lyiat a̱lyiat a̱wot á̱ li sanggak á̱tyok na ngyok tswot a̱nyiuk a̱wot á̱ yok mba ba̱ tyei mman ba̱ shim tyei a̱ni.
==Ya̱fang==
<references/>
cfi5gv24zil7xr2aa7565tq6a51aqn3
Mam A̱ka̱neam Bibyin Swanta
0
594
13141
13140
2022-05-30T10:17:45Z
Kambai Akau
15
wikitext
text/x-wiki
'''Mam A̱ka̱neam Bibyin Swanta''' ku '''Mam Nggwoneam Bibyin Swanta hu''', yet mam hwa nang [[Muná̱pyia̱ Bibyin Swanta]] hu hwa bai ndyo a̱ni. Á̱ bu ngyei mam huni '''Mam A̱ka̱neam''' ku '''Mam Nggwoneam''' hu. A̱tuk mam '''11 Zwat Swak 2012''' kya á̱ ku ntsa a̱gwai mam nani. A̱tuk mam kani kya á̱ nshei á̱niet ba a̱mgba̱m nang a̱ka̱neam mmyim ba̱ shyiat a̱ka̱wat nyian nta̱m ma̱ng shyiat shi mi̱ swanta hu. Ni̱neam myim yet kyang a̱gwai hwa, na̱ndyung hwa bah.
==Ya̱fang==
<references/>
32ho14asl6mmz2jh4gu8p30neudx0qe
Markut Zuka̱beg
0
595
6779
6778
2022-05-16T12:51:58Z
Jon Harald Søby
8
5 revisions imported
wikitext
text/x-wiki
'''Markut Elliot Zuka̱beg''' (bin Mam 14,Zwat 5, 1984) yet A̱tyubyia̱ A̱merka wa. A̱tyu kau nzwa gu yet a̱ si bu yet a̱gwak a̱cyetaneang wu. Ngu ma̱ng á̱ghyiang a̱niet bya ku tsa Fesbuk mbeang Meta. N gu wa yet a̱gba̱ndang nkompani ngu na.
==Ya̱fang==
<references/>
r1vxqlx1eupgnjd5i4xu5cfamug701z
Marok Ga̱ndu
0
596
14354
13659
2022-06-13T10:23:18Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
'''Marok Ga̱ndu''', ku '''Marock Ga̱ndu''' ma̱ng '''Marok Ga̱ndu Magata''' (18?? - 1902) ku yet a̱tyuvwuong á̱niet a̱tsaai á̱khwo a̱ neet [[Jenshyung Afrika]] a̱ si̱ ma ngyet a̱kwak a̱son nzwang [[Á̱niet A̱tyap|A̱tyap]], a̱nyan wa ku khwu di̱ cam a̱byin nggu ka a̱ni.
Si̱sak ma̱ng a̱lyiat [[Toure Ka̱za-Toure|Ka̱za-Toure]] na mami Achi et al. (2019) a̱ni, Ga̱ndu ku yet {{Quote| "...a̱kwak a̱son nwalyak wuwa ma̱ng a̱kwak a̱son nzwang sot vwuong á̱niet a̱tsaai á̱khwo A̱tyap a̱ lan mi̱ fi̱ng a̱ni..." }} Sot nzwang [[Á̱niet A̱kpat|A̱kpat]] ji zang ja a̱sa̱t a̱gwam ngaan [[Za̱uza̱u]] (Zariya) wu, [[Muwammat Kwasa̱u]], ku khwat a̱son a̱ni, jija si̱ bai ta̱bat guu di̱ fwuong jen ji di̱ nwuai a̱byin A̱tyap 1902 nggu hu, zang ja ku tsa da̱ a̱beam 1897. Ca̱caat ma̱ng shei a̱nu á̱niet Bi̱ri̱ti̱n ba, nwuai mi̱ nwuai huni khwat a̱khwu 1,000 swak ma̱ a̱da̱dei wa ma̱nyin.<ref>Spurway, Michael V. (1932). "Zango Katab Notes". National Archives Kaduna (NAK): ZAR Prof No. 607</ref> Á̱ si̱ bai tsa yei nwuai mi̱ nwuai huni "Tyong Kwasa̱u" di̱n [[A̱lyem Tyap|Tyap]] ji (di̱n Shong á̱ nyia̱ "Running away from Kwassau"). Ga̱ndu neet bai Magata, a̱tsatsak a̱bakeang a̱bakwai [[A̱batyok Jei|Jei]] si̱ kwai A̱gbaat ji, kwai A̱tyap ji̱ yet a̱gwak nzwang a̱ni.<ref>Achi et al. 2019, p. 123</ref> Á̱ shyia̱ ma̱ng a̱di̱dam wu nyia̱ á̱ ku lak njhyung nyiá̱ sang a̱sokfa nggu ba nang a̱kwak a̱son a̱ la̱u ma̱ng zwakhwu tazwa zwáng á̱niet nta a̱ni mami nkhang gbangbang yong ka̱ngka̱ng á̱niet nggu ba.{{notetag|Á̱ ku byia̱ (ku bye yet) kwan ma̱kpaat mat á̱ yok sak ghwughwu ma̱ng á̱di̱dam a̱tyunwai sok a̱fa wu, Marock, mi̱ nfwuo Á̱niet A̱tyap ba. Kap jat hu hwa yet gba̱mgbam ma̱ng a̱di̱dam ku nat a̱ mbwuot swak a̱ni ma̱ng nkyang njhyang a̱mgba̱m ma̱ng zwá Kati̱lik ma̱ng Protestan ji tung ma̱ng a̱mgba̱m nang á̱nietcen tyok Bi̱ri̱ti̱n ba ku nyia̱ ba nshai nkhang gbangbang Atyap na (dundung ma̱ng á̱nietyok mali A̱kpat ba) nang a̱vwuo ka ntat a̱ni ku kyang nyiung á̱ si̱ bai tyiet ma̱ nce na̱ khwi bai a̱ni bah tazwa nkhang a̱zama mba na a̱ni bah ma̱ng á̱nyiak nang Marok Ga̱ndu; ma̱ng nyiá̱ Marock ba ku myim ba̱ swan a̱za̱za̱rak mi̱ nfwuo Á̱niet A̱tyap ba. Marok tan a̱fi̱ng ka̱ lan swak ka tazwa cam a̱byin nggu ka ma̱ng á̱niet nka ba. : Achi et al. 2019, p. 136}}
==Yebaat ma̱ng hyaai==
Á̱ ta̱bat Ga̱ndu mi̱ 1902 gba̱mgbam mbwak [[tyok ya̱shuk]] A̱kpat ba di̱ [[ta̱gbi̱ng]] nang Atyap vwuot a̱yaat a̱wot si̱ fwan di̱ san a̱kwak a̱son mbaa. Á̱ si̱si̱ nnyiak gu á̱ si̱ hyat gu di̱n vak [[swat shan]] ma̱ a̱yit Santswan ka, A̱byin A̱tyap. {{Notetag|A̱dodo ta̱gba̱k nzwang mbwak Za̱uza̱u ma̱ng byan nkyang hu ku khwi a̱ni du tyia̱ á̱niet A̱tyap ba ba̱ fwung di̱ yong ka̱tsak bah shimba ba̱ si̱ mi̱n vwuong a̱tsaai ka tyak bah. Tsi̱tsak da̱ a̱beam 1900 ma̱ng 1902 á̱niet nwuai ba neet Za̱uza̱u si̱ ta̱bat nwalyak a̱nyan wa a̱ kwak a̱son a̱ si̱ yet a̱kwak a̱son á̱niet nzwang wu, Marok Ga̱ndu. Si̱ huni tat a̱ta̱n ma̱ng yebaat ma̱ng hyaai nggu wu, di̱n vak swat shan. Kyang hu ku ghwut a̱ni á̱zanson hwa yet tyei bobwot yong ka̱tsak ma̱ng ka̱ngka̱ng ma̱ a̱tyetuk nwai á̱niet Bi̱ri̱ti̱n hu (Kazah-Toure 1995). : Kazah-Toure 2012, p. 92}} Á̱ si̱ ta nggu zwang mi̱ a̱man a̱lyia̱ neet di̱ fi̱ri̱ng nggu hu. Mat vwuot lihyat, á̱ bu si̱ ma nkup gu a̱gba̱ndang a̱toot A̱kpat mi̱ vam á̱ si̱si̱ ndap gu [[gat a̱pyia̱]] á̱ kat a̱pyia̱ nggu ka. Á̱ si̱ khwat á̱ghyang á̱niet nzwang A̱tyap nang á̱niet nzwang Kwasa̱u ba ku yebaat a̱ni bai di̱ tyan hyaai ji á̱ si̱ tak ma̱ng a̱mba nyia̱ ba̱ li a̱gwam mba wu.<ref>Achi et al. 2019, pp. 123-4</ref> Á̱ tak nyia̱ Kwasa̱u kyiak yong swat á̱niet nang gu ta̱bat a̱ni di̱n shán, fwui á̱ghyang ma̱ng swuan a̱ghwon a̱ si̱si̱ niat á̱ghyang ma̱ng swuan, mat tyei á̱ghyang á̱niet ba da̱ a̱hyem ta wa.{{notetag|Di̱ fam Magata, Mayayit, Maka̱ra̱u ma̱ng A̱shong A̱sh[y]ui, Kwasa̱u ta̱taat á̱niet ba ba̱ yong ka̱tsak ma̱ng ka̱ngka̱ng ba̱t. A̱ si̱ kyiak yong swat á̱niet ba nang gu ta̱bat a̱ni di̱n shán, a̱ si̱ fwui á̱ghyang ma̱ng swuan. Mami mba nang á̱ nyia̱ gu swat di̱n shan a̱ni bya yet Marok si̱ Magata. Á̱ ma nyia̱ nyia̱ á̱ niat Zi̱nyip Kutunku ma̱ng Kuntai Mado a̱si̱ Mashan ma̱ng swuan. Nyia̱ wuni yet doot mat mwang á̱niet ba da̱ a̱hyem wa. Da̱ a̱kwonu a̱kya, kak tangka̱i lak a̱di̱dam, ma̱ng a̱ka̱tuk nyia̱ si ̄̇ bai tsa lak li ku labeang a̱ni tazwa a̱mgba̱m nkyang nang tyok a̱kpat wu ngyong a̱kwonu a̱ni tat si̱sak ji nang ce a̱fwun hu ma ni̱ nnyia̱ na̱mbwon tangka̱i lak li gbangbang hu a̱ni meang. : Achi et al. 2019, p. 92}}<ref>Kazah-Toure 2012, p. 92</ref>
Sheda a̱ghyang a̱bwonu Ninyio (2008) neet kwok a̱bwonu si̱ tyaat yebaat Ga̱ndu hu a̱nii: {{Tyan|"Á̱ghyang á̱niet A̱tyab bya fwop a̱nu ma̱ng á̱niet a̱tsaai á̱khwo Za̱uza̱u ba. Á̱zanson njen hyaai nggu ji, á̱ kup ngguu tyentyang ma̱ng a̱jhyem a̱yaatoot ''Sarauta'' (tyok) A̱kpat ba, si̱ a̱bya bya yet a̱gba̱ndang a̱toot á̱ si̱ kup nggu a̱pyia̱ ma̱ng ''Jan dara'' (a̱shong bung) á̱ si̱ gat gu a̱pyia̱ ka. Á̱ yong a̱nia bah. Á̱ ma tyia̱ nggu taba ma̱ a̱nu a̱ fi̱ng ma̱ng gworo a̱ nyuai nang a̱gwam A̱kpat a̱ni á̱ si̱ tsa jhyuai nggu á̱ nyia̱ "''raika shidade Sarkin Katab.''" Si̱ huni fa ma̱ ca̱caat a̱cat nyia̱ 'shyicet ang ku labeang a̱gwam Katab (A̱tyap)'."}} Á̱ tak nyia̱ á̱ si̱si̱ nswat guu di̱n shan a̱zaghyi jhyuai maat hu. Hyaai huni si̱ khwat tyei bobwot di̱ yong ka̱tsak ma̱ng ka̱ngka̱ng A̱tyap ba ma̱ a̱tyetuk nwuai á̱niet Bi̱ri̱ti̱n ba.<ref name=Ninyio >Ninyio, Y. S. (2008). ''Pre-colonial History of Atyab (Kataf)''. Ya-Byangs Publishers, Jos. Ng. 82-2. ISBN 978-978-54678-5-7</ref>
Yohanna (n.m.z.) a mbeang Akau (2014) ma lyiat tazwa hyaai nggu hu, a̱wot ma̱ mam zwat ku vwuon ma̱ng si̱ á̱ghyang hu.<ref>{{Tyan kwambwat |a̱ngaan=Yohanna |a̱son=S. |mam zwat=n.m.z. |a̱lyoot=The National Questions: Ethnic Minorities and Conflicts in Northern Nigeria |a̱tyushei=Macrom Prints |a̱vwuo=[[Gwoot|Kagoro]] |peji=147}}</ref><ref>{{Tyan kwambwat |a̱ngaan=A̱ka̱u |a̱son=K. T. L. |mam zwat=2014 |a̱lyoot=The kcg-en Dictionary |a̱vwuo=[[A̱keang Binin|Benin City]] |isbn=978-978-0272-15-9 |pejí=xiii-xiv}}</ref>
==Zwakhwu==
Si̱sak ma̱ng a̱lyiat Kazah-Toure mami Achi et al. (2019), á̱ zama bwom a̱bwom nwuat shi a̱ghyang mat á̱ nsak gu mi̱ fwuo tat da̱ a̱beam 1940, koji ma̱ A̱byin A̱tyap ka di̱n jen gya̱ra̱p ma̱ng song, á̱ njhyung za̱kwa a̱ngi̱ri̱m nggu ji, kwa̱i, ma̱ng a̱ka̱tuk hyaai ma̱ng jen doot fwuo ce nggu hu a̱ni, a̱wot kyang a̱ga̱de, á̱ si̱ bwoi a̱bwom ka di̱n [[A̱lyem Tyap|Tyap]] jija bah, a̱wot da̱ [[a̱lyem Kpat]] ja. <ref>Achi et al. (2019), pp. 124-5</ref>
==Ya̱fang==
<references/>
<h4>Nkwaa̱mbwat</h4>
* Achi, B.; Bitiyonɡ, Y. A.; Bunɡwon, A. D.; Baba, M. Y.; Jim, L. K. N.; Kazah-Toure, M.; Philips, J. E. (2019). ''A Short History of the Atyap''. Tamaza Publishinɡ Co. Ltd., Zariya. Ng. 9-245. ISBN 978-978-54678-5-7
* Kazah-Toure, Toure (2012). [https://www.citizenshiprightsafrica.org/CDD_Citizenship_and_Indigeneity_Conflicts_in_Nigeria.pdf Citizenship and Indigeneity Conflicts in Nigeria] [Identity Conflicts: Belonging and Exclusion in Zangon Katab]. Citizenship Rights Africa. Ng. 88-121.
[[Sa:kwi_1902]]
[[Sa:A̱tyap]]
22btxlluxuttoy8qw52jtwb66frca5k
Ma̱ka̱u
0
597
14355
13424
2022-06-13T10:23:23Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
{| class="wikitable" align=right border width="200"
| colspan="2" align=center|'''Ma̱ka̱u''' <br>澳門
|-
| colspan="2" align=center|[[Fail:Macau locator map.svg|300px|center|A̱vwuo ka nang Ma̱ka̱u nshyia̱ a̱ni mami Caina]]
|-
| colspan="2" align=left|<sub>A̱vwuo ka nang Ma̱ka̱u nshyia̱ a̱ni mami Caina</sub>
|-
| [[Fail:Flag of Macau.svg|thumb|Tuta a̱byin Ma̱ka̱u]]
|-
|}
A̱byin '''Ma̱ka̱u''' ku '''Ma̱ka̱wo''' (Kanton: 澳門, ''ōu.mǔːn''; Potugit: Macao /mɐˈkaw/; [[Shong (a̱lyem)|Shong]]: Macau /məˈkaʊ/), á̱ lyen ma̱ng a̱lyoot a̱gwomna̱ti ka nang '''Fam A̱byin Kwak A̱son Ma̱ka̱u á̱ ku Khap á̱ Sak si̱ Ri̱pobi̱lik Á̱niet Caina''' ('''FA̱KA̱MKS''') (Kanton: 中華人民共和國澳門特別行政區; Potugit: Região Administrativa Especial de Macau da República Popular da China (RAEM); Shong: Macao Special Administrative Region of the People's Republic of China (MSAR)), yet a̱gba̱ndang a̱keang wa ma̱ng fam a̱byin kwak a̱son nang á̱ ku khap á̱ sak a̱ni si̱ [[Caina|Ri̱pobi̱lik Á̱niet Caina]] di̱ fam jenshyung Delta A̱ghyui Wulu hu kpa̱mkpaan [[Kyai A̱sa̱khwot Caina A̱tak]] hu. Ma̱ng shi á̱niet kpa̱mkpaan 680,000<ref>"[https://www.worldometers.info/world-population/china-macao-sar-population/ Macao Population (2020) - Worldometer]" (di̱n Shong). www.worldometers.info</ref> ma̱ng shi kyai a̱byin kilomita a̱ma̱ntanaai 32.9 (met a̱ma̱ntanaai 23.7) a̱ni, kikya si̱ yet fam a̱byin ku swak byia̱ á̱niet ba̱ fam fi̱fam da̱ a̱vwuo a̱nyiung a̱ni mi̱ swanta hu.
==Ya̱fang==
<references/>
{{Template:Bibyin A̱siya}}
[[Sa:Bibyin_swanta]]
[[Sa:Bibyin_A̱siya]]
[[Sa:Bibyin_A̱tyin_A̱siya]]
5oyzxpxj4jag38amvifmkolksxdckws
Ma̱sa̱r
0
598
14356
13670
2022-06-13T10:23:27Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
{{Country
|name = Ri̱pobi̱lik A̱la̱ra̱ba Ma̱sa̱r<br>جمهورية مصر العربية
''Jumhūrīyat Miṣr al-ʻArabīyah'' (La̱ra̱ba)<br>Gomhoreyyet Maṣr el-ʿArabeyya (A̱lyem Ma̱sa̱r)
|flag = Flag of Egypt.svg
|coa = Coat of arms of Egypt (Official).svg
|image = Egypt (orthographic projection).svg
|capital = Kairo
|area = 1,010,408
|population = 102,674,145
|year = 2021
}}
'''A̱bwom a̱byin''': "Bilady, Bilady, Bilady"<br />("بلادي، بلادي، بلادي")<br />("A̱byin nung ka, A̱byin nung ka, A̱byin nung ka")<br />[[File:Bilady, Bilady, Bilady.ogg]]</div>
A̱byin '''Ma̱sa̱r''' ku '''Misi̱ri''' ku '''Iji̱p''' (La̱ra̱ba: مِصر, Miṣr; Shong: Egypt /ˈiːdʒɪpt/), á̱ lyen ma̱ng a̱lyoot a̱gwomna̱ti ka nang '''Ri̱pobi̱lik A̱la̱ra̱ba Ma̱sa̱r''' wu (Shong: Arab Republic of Egypt), yet a̱byin ka̱ shyia̱ vam-a̱byin ku swak nyiung kya a̱ni, kyiak neet da̱ a̱ta̱m fam a̱za-a̱tyin [[Afrika]] ka ma̱ng a̱ta̱m fam a̱tak-jenshyung A̱siya ka di̱n vak a̱byia̱k a̱byin a̱ ku bwuo [[Li̱m-a̱byin Si̱nai]] hu a̱ni. Ma̱sa̱r yet a̱byin [[Kyai A̱sa̱khwot Meditaroniya|Meditaroniya]] kya ka̱ byia̱ a̱gi̱gak ma̱ng Tyiang A̱byin Gaza ji ([[Pa̱la̱sti̱n (a̱byin)|Pa̱la̱sti̱n]]) ma̱ng [[Isi̱rela]] di̱ fam a̱za-a̱tyin hu, [[A̱ngam A̱sa̱khwot A̱ka̱ba]] wu ma̱ng [[A̱shong Kyai A̱sa̱khwot]] wu di̱ fam a̱tyin hu, [[Sudan]] di̱ fam a̱tak hu, ma̱ng [[Li̱biya]] di̱ fam jenshyung hu. A̱ma̱nyi A̱ngam A̱sa̱khwot A̱kaba si̱ myiai [[Urdun]], a̱ma̱nyi [[A̱shong Kyai A̱sa̱khwot]] ka si̱ myian Sa̱udi A̱rabiya, a̱wot a̱ma̱nyi Meditaroniya ka si̱ myiai [[Helat]], [[Turkiya]] ma̱ng [[Kuburut]] shimba á̱ mbyia̱ a̱nyiung ma̱ng bibyin hu ka̱ byia̱ gak a̱byin ma̱ng Ma̱sa̱r a̱ni bah.
==Ya̱fang==
<references/>
{{Bibyin Afrika}}
[[Sa:Bibyin_swanta]]
[[Sa:Bibyin_Afrika]]
[[Sa:Bibyin_A̱za_Afrika]]
9sdxk6h2e8by07lrg4kk1y834tli2i4
Mbuk
0
599
6949
6948
2022-05-16T12:52:02Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[Mbwuk]]
jnxus1fxu1cio3rlrenjiq9eqzxhsxw
Mbwuk
0
600
12385
6966
2022-05-21T05:02:55Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
[[Fail:Hausstaub auf einem Finger.jpg |thumb|Mbwuk a̱mali tazwa ga̱swuong a̱ghyang a̱niet]]
'''Mbwuk''' yet a̱lilyit nkyuo a̱kpa̱u kyang wa.
==Ya̱fang==
<references/>
jd3obdwpcj7a38acjs8uu8pdhkwsp2q
Michelangelo
0
601
14765
14764
2022-07-04T16:40:37Z
Kambai Akau
15
wikitext
text/x-wiki
{{Databox|item=Q5592}}
'''Michelangelo di Lodovico Buonarroti Simoni''' (6 Zwat Tsat 1475 – 18 Zwat Sweang 1564), á̱ ku lyen nggu nang '''Micelangelo''' ma̱ nyom a̱ni, ku yet a̱tyumat nghwughwu a̱byin [[Italiya]] wa a̱ ka ngyet a̱tyuswup nghwughwu, a̱tyulyen ghwang a̱ka̱sa ma̱ng a̱tyulyuut a̱bwom a̱nwuat jen A̱gba̱ndang Shyip ma̱ng Swuan nang á̱ ku byin mami [[Ri̱pobi̱lik Fi̱ra̱nze|Ri̱pobi̱lik Fi̱ra̱ntse]] wu a̱ni, a̱nyan wa ta̱m nggu hu ku byia̱ cet fuut nkyang ma̱ a̱di̱di̱t ba̱t mi̱ ya a̱son nyian nghwughwu Fam Jenshyung hu, ma̱ a̱khapsak di̱ fam a̱meang á̱di̱dam tat-a̱pyia̱ lyen a̱tyubishyi ma̱ng swanta di̱n jen Shyip ma̱ng Swuan ji.
[[Sa:Á̱nietnyia̱ nghwughwu ma̱ng á̱nietlyen ghwang a̱ka̱sa]]
[[Sa:Byin_1475]]
[[Sa:Kwi_1564]]
my7bvouphvd152ow6r9keb38c8xxtbc
Miguel de Cervantes
0
602
15582
15581
2022-08-07T20:18:51Z
Kambai Akau
15
wikitext
text/x-wiki
{{Databox}}
'''Miguel de Cervantes Saavedra''' (29 Zwat A̱kubunyiung 1547 – 23 Zwat Nyaai 1616) ku yet a̱tyulyuut a̱byin Si̱pen a̱ghyang wa. Kwambwat nggu hu nang á̱ swak lyen a̱ni wa yet ''[[Don Quijote de la Mancha]]''. Á̱ kyiak nhu ku yet a̱son ka di̱ ce a̱yaanovel mam a̱fwun hu, a̱wot mat a̱nia wa Cervantes si̱ yet a̱tyulyuut novel a̱son wu<ref>[http://books.guardian.co.uk/review/story/0,12084,1105510,00.html Harold Bloom on Don Quixote, the first modern novel]</ref>. Á̱ ku shei kwambwat hu byia̱ mi̱ bibyin 65 hwa. Á̱ bu si̱ nkyiak ta̱m hu nang si̱ ku swak da̱ a̱mgba̱m mkpa̱m lyuut ku swak ma̱ng yet a̱tsatsak a̱ni. Di̱n jen jhyang, á̱ ngyei nggu "A̱fai-a̱gwam Sa̱taya".
==Ya̱fang==
<references/>
[[Sa:Á̱nietlyuut, á̱nietlyuut nvwuomaat ma̱ng á̱nietlyuut bubwom a̱nwuat]]
03gor6c31hggme815o0uqw6op3nw8pt
Mikziko
0
603
14613
14612
2022-06-26T18:07:58Z
Kambai Akau
15
wikitext
text/x-wiki
{{Country
|name = Muná̱pyia̱ Sí̱tet Mikziko'''<br>Estados Unidos Mexicanos (Si̱pen)
|flag = Flag of Mexico.svg
|coa = Coat of arms of Mexico.svg
|image = MEX orthographic.svg
|capital = A̱gba̱ndang A̱keang Mikziko
|area = 1,972,550
|population = 126,014,024
|year = 2020
}}
'''A̱bwom a̱byin''': "Himno Nacional Mexicano" ("A̱bwom A̱byin Mikziko")<br>[[File:Himno Nacional Mexicano instrumental.ogg]]
A̱byin '''Mikziko''' (Si̱pen: México /ˈmexiko/; lilyem Nahwa: Mēxihco; Shong: Mexico), á̱ lyen ma̱ng a̱lyoot a̱gwomna̱ti nka ka nang '''Muná̱pyia̱ Sí̱tet Mikziko''', '''M.S.M.''' ku '''MSM''' hu (Si̱pen: Estados Unidos Mexicanos /esˈtaðos uˈniðoz mexiˈkanos/, EUM; Shong: United Mexican States) a̱ni, yet a̱byin kya ma̱ a̱tak fam-a̱byin [[Amerika A̱za]] ka. Ka̱ byia̱ a̱gi̱gak di̱ fam a̱za hu ma̱ng [[Muná̱pyia̱ Sí̱tet Amerika]]; di̱ fam a̱tak ma̱ng jenshyung hu ma̱ng [[A̱gba̱ndang Kyai A̱sa̱khwot Pasi̱fi̱k]] wu; di̱ fam a̱tak-a̱tyin hu ma̱ng Gwatemala, Beliz, mbeang [[Kyai A̱sa̱khwot Karibi]] hu; a̱wot di̱ fam a̱tyin hu ma̱ng A̱ngam A̱sa̱khwot Mikziko wu. A̱byin Mikziko ngaat ka̱ si̱ kup shi kyai a̱byin kilomita a̱ma̱ntaa̱naai 1,972,550 (met a̱ma̱ntaa̱naai 761,610), si̱ ku tyia̱ ka̱ si̱ yet a̱byin 13 ka̱ swak ma̱ng shi kyai a̱byin a̱ni mi̱ swanta hu; ma̱ng shi á̱niet ku shyia̱ kpa̱mkpaan ma̱ng 126,014,024, ka̱ si̱ yet a̱byin 10 ka̱ swak ma̱ng shi á̱niet a̱wot ka̱ si̱ swak kuzangka mi̱ swanta hu ma̱ng á̱niet ba̱ lyiat a̱lyem Si̱pen a̱ni. A̱byin Mikziko yet a̱si̱ [[Si̱tet mundundung|mundundung]] kya ka̱ byia̱ sí̱tet 31 ma̱ng A̱gba̱ndang A̱keang Mikziko, a̱keangtung nka ka ma̱ng metropolit ku swak ma̱ng shi a̱ni. A̱ca̱cet nfam dandi ghyáng ni̱nia yet: Guadalajara, Monterrey, Puebla, Toluca, Tijuana, Ciudad Juárez, ma̱ng León.
==Ya̱fang==
<references/>
{{Bibyin Amerika A̱za}}
[[Category:Bibyin_swanta]]
[[Category:Bibyin_Amerika]]
[[Category:Bibyin_Amerika_A̱za]]
scq0iuhm5ismgca18543byi2ese4v3k
Mina
0
604
14361
13429
2022-06-13T10:24:08Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
[[Fail:Minna, Niger state City gate.jpg|thumb|A̱na̱nwuai a̱keang Mina]]
[[Fail:Locator Map Minna-Nigeria.png|thumb|A̱vwuo ka nang a̱gba̱ndang a̱keang Mina nshyia̱ a̱ni mami Naijeriya]]
A̱keang '''Mina''' yet a̱gba̱ndang a̱keang wa (á̱ ku tyan shi á̱niet nggu hu á̱ sak 304,113 ma̱ a̱lyia̱ 2007) di̱ fam-a̱byin [[Fam A̱ka̱wa̱tyia̱]] [[Naijeriya]] hu. Kikya yet a̱keangtung [[Si̱tet Nija]] ka, a̱nyiung mami a̱yaasi̱tet mundundung 36 ba. Ka̱ byia̱ nnwap a̱feang nia: [[A̱nupe]] ba ma̱ng [[Á̱nietmangfwuo]] ba.
[[Fail:Niger state house of assembly complex new built.jpg|thumb|Mina, nok A̱mali A̱tung Si̱tet Nija hu]]
==Ya̱fang==
<references/>
[[Sa:Naijeriya]]
[[Sa:A̱ka̱keang_mami_Naijeriya]]
[[Sa:A̱kakeangtung a̱yaasi̱tet Naijeriya]]
[[Sa:A̱ka̱vwuo na̱ byia̱ á̱niet ma̱ ba̱t mami Si̱tet Nija]]
[[Sa:Si̱tet Nija]]
[[Sa:A̱ca̱cet a̱ka̱keang Naijeriya]]
biuf1hf2ks74sxzgcwhdamvwdxu3ari
Miura Haruma
0
605
7002
7001
2022-05-16T12:52:05Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[Haruma Miura]]
dpfemi8mw2de85iclnrtv2wdmv9q1qc
Mman
0
606
7004
7003
2022-05-16T12:52:05Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[Nggwon]]
3vhq06qr7dui0i2ryh38os9o11yk4rr
Mmanshan Naijeriya
0
607
14362
13004
2022-06-13T10:24:13Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
[[File:Flag of the Nigerian Police Force.png|thumb|Tyiang a̱toot shi Mmanshan Naijeriya]]
[[File:2016 01 06 Nigerian Police Contingent-6 (23583575264).jpg|thumb|Mmanshan Naijeriya á̱ghyang ma̱ a̱lyia̱ 2016]]
'''Mmanshan Naijeriya''' na, ni̱nia yet a̱yaakwak a̱son di̱ tyei khwi ncam ma̱ng cok a̱byin ka a̱mgba̱m.
==Ya̱fang==
<references/>
[[Sa:A̱khwot Á̱kwop Naijeriya]]
d9ysazcvklu9iilu3hsf8fezuhdx087
Monggoliya
0
608
14756
14363
2022-07-04T08:30:39Z
Kwamikagami
349
wikitext
text/x-wiki
{| class="wikitable" align=right border width="200"
| colspan="2" align=center|'''Monggoliya'''<br>[[Fail:Monggol_ulus.svg|50px|Alt=Monggol ulus, a̱ka̱k a̱lyoot Monggoliya, di̱ lyuut Mongol]]<br />Монгол Улс (Mongol)
|-
| colspan="2" align=center|[[Fail:Mongolia (orthographic projection).svg|300px|center]] <sub>Ta̱si̱la a̱byin Monggoliya</sub>
|-
| [[Fail:Flag of Mongolia.svg|thumb|Tuta a̱byin Monggoliya]]
|-
| [[Fail:State emblem of Mongolia.svg|thumb|A̱lama a̱byin Monggoliya]]
|-
|}
A̱byin '''Monggoliya''' (Shong: /mɒŋˈɡoʊliə/; Monggol: Монгол Улс ''Mongol Uls'', Monggol Taada: [[Fail:Monggol_ulus.svg|50px|Alt=Monggol ulus, a̱ka̱k a̱lyoot Monggoliya, di̱ lyuut Monggol]] ''Moŋğol ulus''; a̱ca̱caat fa "A̱byin Monggol" ku "Si̱tet Monggoliya"), yet a̱byin kya nang bibyin ghyáng keang di̱ tityak a̱ni di̱ fam-a̱byin A̱tyin A̱siya. Ka̱ shyia̱ tsi̱tsak bibyin [[Roshiya]] di̱ fam a̱za hu ma̱ng [[Caina]] di̱ fam a̱tak hu, a̱jini ka̱ yet a̱byin hyia̱k ma̱ng Fam-a̱byin Monggoliya Mami Ku Nyia̱ Tyok A̱pyia̱ a̱ni. Ka̱ kup shi kyai a̱byin kilomita a̱ma̱ntanaai 1,564,116 (met a̱ma̱ntanaai 603,909), ka̱ si̱ byia̱ shi á̱niet miliyon 3.3 hwa ci̱k, si̱ ku tyia̱ nang ka̱ yet a̱sa̱t a̱byin swanta a̱ swak di̱ byia̱ á̱niet ba̱ swan gbang ma̱ng á̱ghyang a̱ni. A̱byin Monggoliya kya yet a̱byin swanta nang bibyin ghyáng keang di̱ kuzang fam ka̱ swak ma̱ng shi kyai a̱byin a̱ni ka̱ nwai shyia̱ kpa̱nkpaan ma̱ng kyai a̱sa̱khwot ka̱ shyia̱ a̱ka̱wa̱tyia̱ a̱byin a̱ni. A̱byin ka nhyat pa̱mpai ma̱ng steppe a̱kwop, ma̱ng tsutsok di̱ fam a̱za ma̱ng jenshyung nka hu ma̱ng Kyai A̱ji̱jak Gobi di̱ fam a̱tak hu. Ulaanbaatar, a̱keangtung ma̱ng a̱gba̱ndang a̱keang a̱ swak ma̱ng shi nka wu, ba̱ng kpa̱mkpaan ma̱ng kap á̱kum a̱mgba̱m á̱niet a̱byin hu.
==Ya̱fang==
<references/>
{{Template:Bibyin A̱siya}}
[[Sa:Bibyin_swanta]]
[[Sa:Bibyin_A̱siya]]
[[Sa:Bibyin_A̱tyin_A̱siya]]
ftz69oka37wkzjn5ibggiquav8sna27
Moroko
0
609
14364
13808
2022-06-13T10:24:23Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
{{Country
|name = A̱byintyok Moroko<br> المملكة المغربية, ''al-mamlaka al-maḡribiyya''<br> ⵜⴰⴳⵍⴷⵉⵜ ⵏ ⵍⵎⵖⵔⵉⴱ, ''tageldit n lmeɣrib'' (Ta̱mazi̱k Kidee Moroko)<br> Royaume du Maroc (Fi̱ransa)
|flag = Flag of Morocco.svg
|coa = Coat of arms of Morocco.svg
|image = Morocco_(orthographic_projection,_WS_claimed).svg
|capital = Ra̱bat
|area = 446,300
|population = 37,112,080
|year = 2020
}}
'''A̱bwom a̱byin''': النشيد الوطني المغربي <br> ⵉⵣⵍⵉ ⴰⵏⴰⵎⵓⵔ ⵏ ⵍⵎⵖⵔⵉⴱ <br> ("A̱bwom A̱byin Moroko")<br />[[File:National Anthem of Morocco.ogg]]
A̱byin '''Moroko''', (La̱ra̱ba: المغرب, ''al-maḡrib'' a̱ fa ''a̱vwuo ka nang mam kwa̱i a̱ni'' ku ''jenshyung hu''; [[Ta̱mazi̱k Kidee Moroko]]: ⵍⵎⵖⵔⵉⴱ, ''lmeɣrib''; Fi̱ransa: Maroc; Shong: Morocco /məˈrɒkoʊ/), á̱ lyen ma̱ng a̱lyoot a̱gwomna̱ti nka nang '''A̱byintyok Moroko''' ka (La̱ra̱ba: المملكة المغربية, ''al-mamlaka al-maḡribiyya'' a̱ fa ''A̱byintyok Jenshyung Ka'' a̱ni; Ta̱mazi̱k Kidee Moroko: ⵜⴰⴳⵍⴷⵉⵜ ⵏ ⵍⵎⵖⵔⵉⴱ, ''tageldit n lmeɣrib''; Fi̱ransa: Royaume du Maroc; [[Shong (a̱lyem)|Shong]]: Kingdom of Morocco), kya yet a̱byin ka̱ swak di̱ shyia̱ fam a̱za-jenshyung fam Maghreb hu ma̱ Afrika A̱za. A̱byin Moroko ka swan nwuan [[Kyai A̱sa̱khwot Meditaroniya]] hu di̱ fam a̱za hu ma̱ng [[Kyai A̱sa̱khwot Ati̱lantik]] hu di̱ fam jenshyung hu, a̱wot ka̱ si̱ byia̱ a̱gi̱gak a̱byin ma̱ng A̱li̱jiriya di̱ fam a̱tyin hu, ma̱ng teritori Sahara Jenshyung wu nang á̱ kwan tazwa nhu a̱ni di̱ fam a̱tak nka hu. Ka̱ ka nsak a̱tyem da̱ a̱ka̱keang ti̱tamm Si̱pen nang á̱ ngyei Ceuta, Melilla ma̱ng Peñón de Vélez de la Gomera, ma̱ng a̱cyuang bibyin a̱ka̱wa̱tyia̱ a̱sa̱khwot ma̱ a̱di̱di̱t nang a̱byin [[Si̱pen]] kya nyia̱ tyok tazwa nhu a̱ni kpa̱mkpaan ma̱ng khwong kyai a̱sa̱khwot nka hu mi̱ di̱ nyia̱, nyia̱ kikya byia̱ á̱na.<ref>BBC (2008). "[https://www.bbc.com/news/world-africa-14114627 Ceuta, Melilla profile]" (di̱n Shong).</ref> A̱byin Moroko ngaat ka̱ si̱ tat shi kyai a̱byin kilomita a̱ma̱ntaa̱naai 446,550 (met a̱ma̱ntaa̱naai 172,410) ku kilomita a̱ma̱ntaa̱naai 710,850 (met a̱ma̱ntaa̱naai 274,460), ma̱ng shi á̱niet ku shyia̱ kpa̱mkpaan miliyon 37. A̱dini a̱gwomna̱ti wu ma̱ng a̱si̱ a̱ swak byia̱ á̱nietkhwi wu a̱ni wa yet [[Khwikpaa̱pyia̱]], a̱wot lilyem a̱gwomna̱ti hu hwa yet La̱ra̱ba ma̱ng Ta̱mazi̱k; á̱ si̱ ka ndyiat di̱ zwalyiat La̱ra̱ba Moroko ji ma̱ng a̱lyem Fi̱ransa ka koji. Sheda hu ma̱ng Taada Moroko ji yet kyiai taada A̱mazi̱k, A̱la̱ra̱ba, ma̱ng A̱shong bya. A̱keangtung nka, kikya yet Ra̱bat, ma̱nang a̱gba̱ndang a̱keang a̱ swak ma̱ng shi wu wa yet Ka̱sabi̱lanka.<ref name="Abun-Nasr1987">Jamil M. Abun-Nasr (20 Zwat A̱ni̱nai 1987). "[https://books.google.com/books?id=jdlKbZ46YYkC A History of the Maghrib in the Islamic Period]" (di̱n Shong). Cambridge University Press. ISBN 978-0-521-33767-0.</ref>
==Ya̱fang==
<references/>
{{Bibyin Afrika}}
[[Sa:Bibyin_swanta]]
[[Sa:Bibyin_Afrika]]
[[Sa:Bibyin_A̱za_Afrika]]
298i6vai9ezjxmgor0rlxoztaei60he
Muhammadu Buhari
0
610
14365
13432
2022-06-13T10:24:28Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
[[Fail:Muhammadu Buhari, President of the Federal Republic of Nigeria (cropped3).jpg|197px|right]]
'''Muhammadu Buhari''' [[Order of the Federal Republic|GCFR]] (byin a̱tuk mam 17 Zwat Swak ma̱ng Sweang 1942) yet a̱tyu kwai nfwuo Naijeriya wa. Nggu wa yet A̱kwak A̱son A̱byin Naijeriya neet a̱lyia̱ 2015. Buhari fwung ta̱m [[A̱khwot A̱kwop A̱byin Naijeriya|A̱khwot A̱kwop A̱byin]] nang gu yet Mejo-Jena̱ra wa. A̱ ku yet A̱kwak A̱son A̱byin mi̱ njen nyia̱ tyok A̱khwot A̱kwop kyiak neet 1983 ba̱ng si̱ nat 1985. A̱ ku shyia̱ yet A̱kwak A̱son A̱byin wu danian la̱pa̱nu ca̱t hyaai á̱niet nggu ma̱ng susot A̱khwot A̱kwop á̱ghyang.
==Ya̱fang==
<references/>
[[Sa:Naijeriya]]
3wipulm2q5t5d1xvddxl87fo3r7oz2c
Muná̱pyia̱ Bibyin Swanta
0
611
14913
14789
2022-07-15T22:08:37Z
Kwamikagami
349
wikitext
text/x-wiki
'''Muná̱pyia̱ Bibyin Swanta''', '''MBS''' (Shong: United Nations, UN) hu yet sot a̱gwomna̱ti ma̱ a̱di̱di̱t ja ku fa go swat nyinyang ma̱ng swat cam tsi̱tsak bibyin swanta, ji̱ mbeang ya a̱son a̱ka̱ngka̱ra̱ng a̱meang tsi̱tsak bibyin, ji̱ mbeang ya a̱son nyia̱ nta̱m dundung tsi̱tsak bibyin, a̱wot ji̱ ka yet a̱gba̱ndang a̱la̱n kyiai nta̱m bibyin na ndung. Jija yet sot bibyin ma̱ a̱di̱di̱t ji̱ swak ma̱ng shi ma̱ng si̱ ji nang á̱ lyen á̱ swak mami swanta hu. MBS hu byia̱ tyantung nhu da̱ a̱vwuo ka̱ yet a̱si̱ bibyin ma̱ a̱di̱di̱t kya mi̱ New York City a̱wot ku si̱ byia̱ a̱ca̱cet a̱yaaofit á̱ghyang mi̱ a̱ka̱keang Jeneva, Nairobi, Viyena, ma̱ng Haag hu.
[[Fail:Flag of the United Nations.svg|thumb|Tyiang a̱toot shi Muná̱pyia̱ Bibyin Swanta]]
[[Fail:Emblem of the United Nations.svg|thumb|A̱lama Muná̱pyia̱ Bibyin Swanta]]
[[Fail:United Nations (Member States and Territories).svg|thumb|{{legend|#009edb|193 Ta̱si̱la A̱yaamemba Muná̱pyia̱ Bibyin Swanta}}]]
==Ya̱fang==
<references/>
r1l5vp5ouklslbucs46w1757ms4ixr9
Musa Bityong
0
612
12570
7076
2022-05-21T20:28:19Z
Hugo.arg
154
/* Ya̱fang */
wikitext
text/x-wiki
'''Musa Bityong''' (/musɑː bitjɔːŋ/), á̱ ka ndyuut '''Musa Bitiyong''' ku yet la̱fta̱nan konel wa ma̱ng [[A̱khwot A̱kwop A̱byin Naijeriya]] wu, a̱ ku khwu mbwak a̱gwomna̱ti Ibrahim Babangida di̱n vak mang a̱ta-ndong ma̱ a̱lyia̱ 1986 a mbeang Mejo Jenera Mamman Vatsa ma̱ng a̱ni̱nai a̱ghyang nang á̱ ku bat mba a̱hyiak nyia̱ ba̱ la̱p a̱shwuk ba̱ ta̱wap a̱gwomna̱ti ba.<ref name=Vatsa1>[https://dawodu.com/vatsa1.htm The Vatsa Coup of 1985] (di̱n Shong).last=Omoiɡui |first=Nowa |title=website=Dawodu.com |access-date=July 4, 2020}}</ref><ref>{{cite web |url=http://www.jayfm.ng/2018/03/05/on-this-day-in-1986-maj-gen-mamman-vatsa-and-nine-other-military-officers-were-executed-by-firing-squad-in-lagos/ |last= |first= |title=On this day in 1986, Minister of the Federal Capital Territory, Abuja, Maj. Gen. Maman Vatsa and nine other military Officers were executed by firing squad in Lagos |website=JAY FM |date=March 5, 2018 |access-date=July 5, 2020}}</ref>
==Ya̱fang==
<references/>
ft03s0gm3u8aww0q41tgzyc6m6lkv1q
Naai A̱gwaza
0
613
14781
14777
2022-07-09T16:31:03Z
Kambai Akau
15
wikitext
text/x-wiki
{{Databox|item=Q40953}}
'''Naai A̱gwaza''' yet a̱lyiat nia nang a̱tyubishyi lyiat ma̱ng [[A̱gwaza]] a̱ni. A̱lyiat na na̱ li a̱ni:
ja̱u, kyuak ntong, ma̱ng naai cat kyang.
==Ya̱fang==
<references/>
[[Category:Naai| ]]
[[Category:Naat mbwuot nkhwi]]
[[Category:A̱za̱za̱rak nswat]]
aoredgszv2729lxz5ad2yeqo07dal2i
Naijeriya
0
614
14901
14367
2022-07-15T21:21:17Z
Kambai Akau
15
wikitext
text/x-wiki
{{Country
|name = Ri̱pobi̱lik Mundundung Naijeriya<br><small>Orílẹ̀-èdè Olómìniira Àpapọ̀ Nàìjíríà (A̱ghwangkpang)</small><br><small>Jamhuriyar Taraiyar ta Najeriya (Kpat)</small><br><small>Ọ̀hàńjíkọ̀ Ọ̀hànézè Naìjíríyà (A̱kum-a̱cyi)</small><br><small>Federal Republic of Nigeria (Shong)</small>
|flag = Flag of Nigeria.svg
|coa = Coat of arms of Nigeria.svg
|image = Nigeria (orthographic projection).svg
|capital = [[A̱buja]]
|area = 923,769
|population = 211,400,708
|year = 2021
}}
'''A̱bwom a̱byin''': "Arise, O Compatriots" ("[[Á̱na̱nyiuk, Nyi Ta̱ngam]]") [[File:National anthem of Nigeria.oga]]
A̱byin '''Naijeriya''' (Shong: Nigeria), á̱ lyen ma̱ng a̱lyoot a̱gwomna̱ti nka nang '''Ri̱pobi̱lik Mundundung Naijeriya''' ([[Shong (a̱lyem)|Shong]]: Federal Republic of Nigeria, A̱ghwangkpang: Orílẹ̀-èdè Olómìniira Àpapọ̀ Nàìjíríà, [[Kpat (a̱lyem)|Kpat]]: Jamhuriyar Taraiyar ta Najeriya; A̱kum-a̱cyi: Ọ̀hàńjíkọ̀ Ọ̀hànézè Naìjíríyà), yet a̱byin ka̱ shyia̱ ma̱sa̱t kya di̱ fam [[Jenshyung Afrika]] ka̱ byia̱ a̱gi̱gak ma̱ng bibyin [[Ni̱njer (a̱byin)|Ni̱njer]] di̱ fam [[Gak Ni̱njer−Naijeriya|a̱za hu]], [[Caad]] di̱ fam [[Gak Cadi–Naijeriya|a̱za-a̱tyin hu]], [[Kemerun]] di̱ fam [[Gak Kemerun–Naijeriya|a̱tyin hu]], ma̱ng [[Bini (a̱byin)|Bini]] di̱ fam [[Gak Bini–Naijeriya|jenshyung]] hu. Khwong kyai a̱sa̱khwot a̱tak hu myiai da̱ [[A̱ngam A̱sa̱khwot Gini]] di̱ [[Kyai A̱sa̱khwot Ati̱lantik]] hu. A̱ yet ri̱pobi̱lik [[Si̱tet mundundung|mundundung]] wa nang á̱ ka̱u di̱ [[Sí̱tet Naijeriya|sí̱tet 36]] a̱wot [[A̱gba̱ndang A̱keangtung Mundundung, Naijeriya|A̱gba̱ndang A̱keang Mundundung]] nggu wu, a̱vwuo ka nang a̱keangtung ka nshyia̱ a̱ni wa yet [[A̱buja]]. [[Legwot]] ja si̱ yet a̱gba̱ndang a̱keang ka̱ swak ma̱ng shi á̱niet ma̱ a̱byin ka ma̱ng [[Afrika|vam-a̱byin Afrika hu]] meang, a̱wot ji̱ si̱ ka ngyet a̱nyiung da̰ a̱ca̱cet a̱ka̱keang swanta na.
A̱byin Naijeriya ku yet mali [[Á̱ka̱k á̱gwam Naijeriya|a̱tsatsak bibyin a̱ka̱k kya a̱zanson tyok á̱nietcen]] ka ma̱ng [[Ntyok Sahet|ntyok]] na̱ neet Mileniyom feang hu A̱zaghyi bai Kristi a̱ni, a̱wot [[Taada Nok|Tat-a̱ghyi Nok]] hu hwa si̱ yet a̱byin a̱son ka̱ ku byia̱ muná̱pyia̱ da̱ a̱beam sa̱ncuri 15 gbangbang A̱zanson bai Kristi. A̱byin mam a̱fwun ka ku ntsa ma̱ng [[Naijeriya a̱si̱ Tyok Á̱nietcen|Tyok á̱nietcen Bi̱ri̱ti̱n]] hu hwa ma̱ a̱cak sa̱ncuri 19 hu, ka̱ si̱ shyia̱ gak a̱fwun nka hu di̱ jen fwuop [[A̱byincok A̱tak Naijeriya]] ma̱ng [[A̱byincok A̱za Naijeriya]] ma̱ a̱lyia̱ 1914 mbwak [[Frederick Lugard|A̱tyoli Frederick Lugard]]. A̱bi̱ri̱ti̱n ba si̱ kpaat nvak tyok ma̱ng nyian shi̱ri̱ya di̱n vak ta̱gurup tyok mbwak á̱ka̱k ntyok. A̱gwomna̱ti a̱byin Naijeriya si̱ shyia̱ sa̱t tyok a̱pyia̱, a̱byin ka si̱si̱ nta̱bat yet [[Si̱tet mundundung|a̱byin mundundung]] ma̱ a̱tuk mam 1 Zwat Swak 1960. Ka̱ si̱ li [[Zwang Byina̱byin Naijeriya|zwang byina̱byin]] kyiak neet 1967 ba̱ng si̱ nat 1970, a̱wot si̱ ji ji̱ khwi a̱ni ja yet shai shi̱shai a̱gwomna̱ti a̱sai a̱toot nang á̱ ku khai di̱n vak [[di̱mokrasi]] a̱ni ma̱ng [[Tyok a̱khwot á̱kwop Naijeriya si̱ 1966–79 ma̱ng 1983–98|ntyok yebaat-a̱la a̱khwot á̱kwop]], ba̱ng si̱ tat shyiat [[Ri̱pobi̱lik A̱naai Naijeriya|a̱di̱ndi̱ng di̱mokrasi]] mi̱ [[Khai a̱kwak a̱son a̱byin Naijeriya 1999|1999]]; [[Khai a̱mgba̱m a̱byin Naijeriya 2015|khai a̱kwak a̱son a̱byin 2015]] huhwa yet jen a̱son ji nang a̱swan [[A̱yaakwak A̱son A̱byin Naijeriya|a̱kwak a̱son a̱byin]] na fwan di̱ ya khai a̱ka̱feang a̱ni.<ref>"[https://www.reuters.com/article/us-nigeria-election-idUSKBN0MR0VN20150331 Nigeria's Buhari wins historic election landslide]".</ref>
Naijeriya yet a̱byin nnwap ma̱ a̱di̱di̱t kya nang [[Nnwap mi̱ Naijeriya|nnwap 250]] na̱ lyiat di̱ [[Lilyem Naijeriya|lilyem ku vwuon vi̱vwuon tat 500]], a̱mgba̱m nna ma̱ng taada ma̱ a̱di̱di̱t a̱di̱t mun nshyia̱ a̱ni.<ref>[https://www.pbs.org/newshour/updates/africa-jan-june07-ethnic_04-05/ Ethnicity in Nigeria]</ref><ref>[https://www.ethnologue.com/country/NG Nigeria]</ref><ref>[https://www.languagesoftheworld.info/geolinguistics/linguistic-diversity-in-africa-and-europe.html |Linguistic diversity in Africa and Europe – Languages Of The World]</ref> Nnwap a̱tat na̱ lan byia̱ shi á̱niet ni̱nia yet sot nwap A̱kpat ji̱ kyiai ma̱ng A̱fa̱taa a̱ni di̱ fam [[A̱za Naijeriya|a̱za hu]], [[A̱yoruba]] di̱ fam [[A̱byin A̱yoruba|jenshyung hu]], ma̱ng [[A̱kum-a̱cyi]] di̱ fam [[A̱byin A̱kum-a̱cyi|a̱tyin hu]], a̱mgba̱m nna mun a̱ swak %60 a̱mgba̱m á̱niet a̱byin Naijeriya ba.<ref>"[https://web.archive.org/web/20200923163518/https://www.cia.gov/library/publications/the-world-factbook/attachments/summaries/NI-summary.pdf NIGERIA – CIA WORLD FACTBOOK 2019]".</ref> A̱lyem a̱gwomna̱ti nka, kikya yet [[Shong Naijeriya|Shong]], nang á̱ ku nkhai mat mban muná̱pyia̱ lilyem a̱byin hu a̱mgba̱m.<ref>Mann, Charles C. (1990). "[https://files.eric.ed.gov/fulltext/ED397681.pdf Choosing an Indigenous Official Language for Nigeria]".</ref> A̱byin Naijeriya ku ka̱u kpa̱mkpaan ma̱ng nkap nfeang tsi̱tsak [[Khwi Kpa A̱pyia̱|A̱musulumi (Á̱niet kpa a̱pyia̱)]] ba̱ shyia̱ ma̱ a̱di̱di̱t di̱ fam a̱za hu, ma̱ng [[Khwikristi|Krista (Á̱nietkhwi Kristi)]] ba̱ la̱u shyia̱ di̱ fam a̱tak hu. A̱byin ka si̱ yet [[Khwi Kpa A̱pyia̱ di̱n vak a̱byin|a̱fwuon mi̱ bibyin A̱musulumi]] swanta hu ma̱ng [[Khwikristi di̱n vak a̱byin|a̱taa mi̱ bibyin Krista]],<ref>"[https://www.pewresearch.org/fact-tank/2019/04/01/the-countries-with-the-10-largest-christian-populations-and-the-10-largest-muslim-populations/ The countries with the 10 largest Christian populations and the 10 largest Muslim populations]"</ref> a̱wot á̱kum á̱niet ka si̱ yet nka ka̱ khwi [[Khwí A̱ka̱ka̱rak Afrika|Khwí a̱ka̱ka̱rak]], nang á̱si̱ ba̱ yet a̱ka̱ka̱rak á̱si̱ nnwap [[Odinani|Igbo]] ma̱ng [[Khwi A̱yoruba|A̱yoruba]] a̱ni.<ref>"[https://web.archive.org/web/20201018101915/https://photos.state.gov/libraries/nigeria/487468/pdfs/Nigeria%20overview%20Fact%20Sheet.pdf Nigeria Fact Sheet]"</ref> Cam Tyok Naijeriya hu shim ma̱ng sa̱t khwi.<ref>"[http://www.nigeria-law.org/ConstitutionOfTheFederalRepublicOfNigeria.htm#Powers_of_Federal_Republic_of_Nigeria Nigerian Constitution]"</ref>
A̱byin Naijeriya kya yet [[Lyulyoot bibyin Afrika di̱n vak shi á̱niet|a̱byin ka̱ swak mi̱ shi á̱niet mami Afrika]], ka̱ si̱ yet [[Lyulyoot bibyin di̱n vak shi á̱niet|a̱byin a̱natat ka̱ swak mi̱ shi á̱niet swanta hu]], ma̱ng tyan á̱niet miliyon 206 ca̱caat ma̱ a̱ka̱wa̱tyia̱ a̱lyia̱ 2019.<ref>"[https://www.bloomberg.com/news/articles/2019-09-20/nigeria-to-give-all-of-its-200-million-people-identity-numbers Nigeria to Give All of Its 200 Million People Identity Numbers]".</ref><ref>"[https://www.worldometers.info/world-population/nigeria-population Nigeria | Population]".</ref><ref>"[https://www.worldbank.org/en/country/nigeria/overview Nigeria Overview]".</ref> Kikya yet a̱byin a̱tat ka̱ swak ma̱ng á̱niet á̱fi̱ng swanta hu, lilyim [[Ndiya]] ma̱ng [[Caina]], kpa̱mkpaan á̱kum á̱niet ka shyia̱ a̱tafa ndyia̱ swak ma̱ng a̱ni̱nai.<ref>The CIA World Fact Book 2014 (2013). Skyhorse Publishing, Inc. ISBN: 978-1-62636-073-0</ref><ref name="Profile">Library of Congress – Federal Research Division (July 2008). [http://lcweb2.loc.gov/frd/cs/profiles/Nigeria.pdf Country profile: Nigeria]. P. 9.</ref> [[A̱za̱za̱rak nzwa Naijeriya|A̱za̱za̱rak nzwa Naijeriya wu]] wa yet [[Lyulyoot bibyin Afrika di̱n vak GDP (nominal)|si̱ nggu a̱ lan swak ma̱ng shi a̱ni mi̱ Afrika]] a̱wot a̱ si̱ yet [[Lyulyoot bibyin di̱n vak GDP (PPP)|a̱si̱ 24 a̱ lan swak ma̱ng shi a̱ni]] ma̱mi̱ swanta hu, ka̱ ka mbyia̱ kpa̱mkpaan ma̱ng biliyon $450 a̱wot triliyon trio$1 di̱n vak nominal GDP ma̱ng tyei ca̱caat cet kwai nkyang, ma̱ ca̱caat a̱cat.<ref>[http://www.aljazeera.com/news/africa/2014/04/nigeria-becomes-africa-largest-economy-20144618190520102.html Nigeria becomes Africa's largest economy]</ref><ref>[https://www.bloomberg.com/news/2014-04-06/nigerian-economy-overtakes-south-africa-s-on-rebased-gdp.html Nigerian Economy Overtakes South Africa's on Rebased GDP]</ref><ref>Si̱sak nang data 2020 [[International Monetary Fund|IMF]] ji ntak.</ref> Á̱ ni̱ ngyei a̱byin Naijeriya "A̱ngi̱ri̱m Afrika", mat [[Demographics of Nigeria|a̱gba̱ndang shi á̱nietbishyi]] nka wu ma̱ng [[Tung nzwa Naijeriya|tung nzwa]],<ref>[[The Round Table (journal)|The Round Table]] (1959). Nigeria: The African giant. Vol. 50. No. 197. Pp. 55–63. DOI: 10.1080/00358535908452221</ref> a̱wot á̱ si̱ ma nkyiak nka nang [[Kaswuó ji̱ laai shi|kaswuo ji̱ laai shi]] a̱ni gba̱mgbam mbwak A̱lisaaikurum Swanta ka;<ref>[http://data.worldbank.org/country/nigeria Nigeria]. World Bank.</ref> á̱ ka ndyen nkaa ka̱ yet cet fam a̱byin a̱ni mi̱ kyai a̱byin Afrika hu,<ref name="NigeriaTradesmark">[https://web.archive.org/web/20180303110039/https://www.trademarksa.org/news/nigeria-poised-become-africa-s-most-powerful-nation Nigeria is poised to become Africa's most powerful nation]</ref><ref>[http://www.westafricagateway.org/west-africa/country-profiles/nigeria Nigeria]</ref><ref>[http://library.fes.de/pdf-files/bueros/nigeria/09372.pdf Nigeria]</ref> [[cet a̱tyia̱ka̱u]] mi̱ nkyang bibyin swanta,<ref>Andrew F. Cooper, Agata Antkiewicz and Timothy M. Shaw, 'Lessons from/for BRICSAM about South-North Relations at the Start of the 21st Century: Economic Size Trumps All Else?', ''International Studies Review'', Vol. 9, No. 4 (Winter, 2007), pp. 675, 687.</ref><ref>Meltem Myftyler and Myberra Yyksel, 'Turkey: A Middle Power in the New Order', in ''Niche Diplomacy: Middle Powers After the Cold War'', edited by Andrew F. Cooper (London: Macmillan, 1997).</ref><ref>Mace G, Belanger L (1999) [https://books.google.com/books?id=kZlDRD2vL6IC The Americas in Transition: The Contours of Regionalism] (p. 153)</ref><ref name="Solomon">Solomon S (1997) [https://web.archive.org/web/20150426220103/http://www.issafrica.org/Pubs/Monographs/No13/Solomon.html South African Foreign Policy and Middle Power Leadership], ''ISS''</ref> a̱wot á̱ si̱ ka ndyen nkaa nang [[ncet na̱ laai shi|cet swanta ku laai shi]] a̱ni meang.<ref>[https://web.archive.org/web/20190513060523/https://www.bet.com/news/global/2011/07/20/nigeria-an-emerging-african-power.html Nigeria, an Emerging African Power]</ref><ref>[https://web.archive.org/web/20190513060455/http://thestreetjournal.org/2014/01/mint-countries-nigeria-now-listed-among-emerging-world-economic-powers/ MINT Countries: Nigeria Now Listed Among Emerging World Economic Powers.]</ref><ref>BBC (6 January 2014). [https://www.bbc.com/news/magazine-25548060 The Mint countries: Next economic giants?]</ref> Da̱ a̱kwonu a̱kya, [[Ga̱fang Yaa̱son Á̱nietbishyi]] nka ji shyia̱ kpa̱mkpaan [[Lyulyoot bibyin di̱n vak Ga̱fang Yaa̱son Á̱nietbishyi|158]] ma̱ ta̱cya̱ ka, a̱ghwon a̱byin ka si̱ shyia̱ a̱tutu a̱za̱za̱rak nzwa kurum-nwuai a̱tak-a̱ka̱wa̱tyia̱, ma̱ng [[a̱gba̱ndang kurum-nwuai a̱byin]] kuzang a̱tyubishyi tsi̱tsak $1,026 ma̱ng $3,986.<ref>[https://datahelpdesk.worldbank.org/knowledgebase/articles/906519-world-bank-country-and-lending-groups|access-date=2020-06-04 World Bank Country and Lending Groups – World Bank Data Help Desk]</ref>
A̱byin Naijeriya yet a̱nyiung mami a̱yaamemba ba̱ ku kpaat Muna̱pyia̱ Bibyin Afrika hu a̱ni, ka̱ si̱si̱ ngyet memba susot bibyin swanta jhyáng nang [[Muná̱pyia̱ Bibyin Swanta]] hu, Commonwealth of Nations hu, ECOWAS hu, ma̱ng OPEC ji. A̱byin Naijeriya ma ngyet memba sot bibyin [[MINT (economics)|MINT]] ji ji̱ nwai byia̱ a̱wat a̱ni, zang ja á̱ ndi nang ntung nzwa ba̱ laai shi ba̱ na ngyet á̱cobai swanta ba a̱ni zang ja ma̱ a̱di̱di̱t nnwuan nang ntung nzwa swanta ba̱ laai shi cobai ba a̱ni, a mbeang ntung nzwá "[[Jim O'Neill, Baron O'Neill a̱si̱ Gatley#Swak Ma̱ng A̱nyiung Cobai|Swak Ma̱ng A̱nyiung Cobai]]" ba nang á̱ ku tyan ba̱ na nshyia̱ a̱ca̱cet lan swak ma̱ ta̱cya̱ ka.
==Khwi==
Mami Naijeriya, Á̱kpaa̱pyia̱ ba ma̱ng Krista ba nyia̱ kpa̱mkpaan di̱ shyia̱ ca̱caat ma̱ng shi. Krista ba ma a̱di̱di̱t shyia̱ di̱ fam a̱tak hu hwa, a̱wot a̱di̱di̱t Á̱kpaa̱pyia̱ wu si̱ di̱ fam a̱za hu hwa. Mi̱ di̱ nyia̱ fi̱p ma̱ng nwuak a̱cucuk ghyáng, da̱ziya nang zwang á̱niet a̱byin Naijeriya ji ku nyia̱ mat nwai nyap fwuo ma̱ng a̱dini á̱ghyang wa ma̱nyin. Zwang ji ji̱ ku nyia̱ kyiak neet ma̱ a̱tuk mam 6 Zwat A̱natat 1967 – 15 Zwat Jhyiung 1970, ku yet jhya̱ kwai-nfwuo-á̱niet ja nang kyang ku khwat nji bai a̱ni hwa yet cat sa̱t a̱yaaprovin fam a̱tak-a̱tyin Naijeriya ba ba̱ yong a̱pyia̱ mba nang Ri̱pobi̱lik Byafra wu ma̱ng si̱sak nang ba̱ ku yei a̱pyia̱ mba a̱ni. Jhya̱ ji ja ku yet zang mwuat ndyen tung nzwa, nwap, taada ma̱ng khwi tsi̱tsak á̱niet vwuon a̱byin Naijeriya ba.
==Ya̱fang==
<div style="height: 200px; overflow:auto; border: 1px solid gray; padding-right: 12px; background-color: #EEEEEE; ">
<references />
</div>
==A̱ka̱fwuop nta==
{{Template:Bibyin Afrika}}
[[Sa:Bibyin_swanta]]
[[Sa:Bibyin_Afrika]]
[[Sa:Bibyin_Jenshyung_Afrika]]
[[Sa:Naijeriya]]
79ee875jrwlupx3bzuy93c3432my4eg
Nam
0
615
12395
7229
2022-05-21T05:04:36Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
'''Nam''' yet vam [[nyam]] nang á̱ ya nang kyayak hwa a̱ni.
[[Fail:FoodMeat.jpg|thumb|A̱bun nam nyak ma̱ng nywan nang á̱ kap á̱ sak zan a̱ni]]
==Ya̱fang==
<references/>
8riprjkk3e8o0uhkfatwdy562ijsymh
Namibya
0
616
14368
13822
2022-06-13T10:25:04Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
{{Country
|name = Ri̱pobi̱lik Namibya<br>Lyulyoot di̱ lilyem a̱byin<br>Republic of Namibia (Shong)<br>Republiek van Namibië (Afrikaans)<br>Republik Namibia (Jaman)<br>Namibiab Republiki dib (Khoekhoegowab)<br>Orepublika yaNamibia (Otjiherero)<br>Orepublika yaNamibia (Oshiwambo)<br>Republika zaNamibia (RuKwangali)<br>Rephaboliki ya Namibia (Setswana)<br>Namibia ye Lukuluhile (siLozi)
|flag = Flag of Namibia.svg
|coa = Coat of arms of Namibia.svg
|image = Namibia (orthographic projection).svg
|capital = Vi̱ndhuk
|area = 825,615
|population = 2,550,226
|year = 2020
}}
'''A̱bwom a̱byin''': "Namibia, Land of the Brave" ("Namibya, A̱byin Á̱niet Sang A̱wun")<br>[[File:Namibian national anthem, performed by the United States Navy Band.oga]]
A̱byin '''Namibya''' (Shong: Namibia /nəˈmɪbiə/, /næˈ-/),<ref>Wells, John C. (2008). "Longman Pronunciation Dictionary".3 (Jhyu.). Longman. ISBN 978-1405881180.</ref><ref>Roach, Peter (2011). "Cambridge English Pronouncing Dictionary". 18 (Jhyu.). Cambridge: Cambridge University Press. ISBN 978-0521152532.</ref> á̱ lyen ma̱ng a̱lyoot a̱gwomna̱ti nka nang '''Ri̱pobi̱lik Namibya''' wu (Shong: Republic of Namibia) a̱ni, yet a̱byin kya di̱ fam a̱byin A̱tak Afrika. Gak fam jenshyung hu hwa yet [[Kyai A̱sa̱khwot Ati̱lantik]] hu; ka̱ si̱ byia̱ a̱gi̱gak a̱byin ma̱ng bibyin Zambya ma̱ng [[Anggola]] di̱ fam a̱za hu, Botswana di̱ fam a̱tyin hu ma̱ng a̱byin [[Afrika A̱tak]] di̱ fam a̱tak ma̱ng a̱tyin hu. Shimba ka̱ nwai byia̱ gak ma̱ng Zimbabwe, si̱ ku lat mita 200 (a̱ti̱tak 660) a̱zayak khwong A̱ghyui Zambezi di̱ fam a̱byin Botswana hu hwa ka̱u bibyin nfeang hu. A̱byin Namibya ku shyia̱ sa̱t mbwak A̱tak Afrika ma̱ a̱tuk mam 21 Zwat Tsat 1990, a̱wot a̱ma̱lyim Zwang cat shyia̱ Sa̱t Namibya ji ja. A̱keangtung ka ma̱ng a̱gba̱ndang a̱keang a̱ swak mi̱ shi wu wa yet Windhoek. Namibya yet a̱byin ka̱ yet memba [[Muná̱pyia̱ Bibyin Swanta]] (MBS), Sot Ya-a̱son A̱tak Afrika (SYA̱A) ji, Muná̱pyia̱ Bibyin Afrika (MBA) hu ma̱ng Mundundung Bibyin.
==Ya̱fang==
<references/>
{{Bibyin Afrika}}
[[Sa:Bibyin_swanta]]
[[Sa:Bibyin_Afrika]]
[[Sa:Bibyin_A̱tak_Afrika]]
4nmssut2rs9dnhtdrhnq9nd2hss6yio
Ncam Swak na
0
617
15283
12995
2022-07-21T22:26:04Z
ZabesBot
156
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
[[Fail:Decalogue parchment by Jekuthiel Sofer 1768.jpg|right|thumb|alt=Ghwughwu Ncam Swak si̱ 1675 hu ma̱ Amsterdam Esnoga synagogue wu tazwa parchment mi̱ 1768 mbwak [[Jekuthiel Sofer]], a prolific Jewish eighteenth-century scribe in Amsterdam. The Hebrew words are in two columns separated between, and surrounded by, ornate flowery patterns.|[[Kwa]] 1768 huni (612×502 mm) mbwak [[Jekuthiel Sofer]] yet maat Ncam Swak 1675 hu hwa mi̱ [[sinagog]] [[Amsterdam Esnoga]] wu]]
'''Ncam Swak''' na (A̱biru: עֲשֶׂרֶת הַדִּבְּרוֹת, ''Aseret ha'Dibrot''), á̱ ma ndyen nang '''Decalogue''' a̱ni, yet kpa̱m nka̱nda̱n Kpa̱m A̱lyiat A̱gwaza nia na̱ byia̱ a̱meang ma̱ng taada a mbeang kwok ntong, á̱ yet a̱tsatsak nkap mi̱ a̱yaadini Yahuda ma̱ng Krista ba. Lyuut Ncam Swak hu ku tyai a̱ka̱feang di̱ Kpa̱m A̱lyiat A̱gwaza si̱ Yahuda hu: mi̱ [[Kwambwat Ghwut|Ghwut]] 20:2-17 ma̱ng [[Kwambwat Kwok Cam|Kwok Cam]] 5:6-21.
Á̱nietbyia̱lyen ba lak shim nyia̱ á̱ ku lyuut Ncam Swak na a̱wot mbwak a̱nyan wa, a̱wot á̱ghyang á̱nietbyia̱lyen ce si̱ nwuak shim nyia̱ Ncam Swak na ku yet maat ncam ma̱ng nda̱p a̱nu A̱hitti ma̱ng A̱mesopotamiya ni̱nia. Ma̱ng si̱sak kwambwat Ghwut hu mi̱ Torah wu, á̱ ku tyai Ncam Swak na a̱zaghyi Musa da̱ [[A̱fan Si̱nai (Kpa̱m A̱lyiat A̱gwaza)|A̱fan Si̱nai]] kikya.<ref>"[https://www.britannica.com/topic/Ten-Commandments|access-date=2021-02-03 Ten Commandments {{!}} Description, History, Text, & Facts]". Encyclopedia Britannica. (di̱n Shong)</ref>
==Bwoi swang a̱lyiat==
[[Fail:4Q41 2.png|right|thumb|320px|alt=The second of two parchment sheets making up 4Q41, it contains Deuteronomy 5:1–6:1|Kap [[Kwok Cam All Souls]] hu, ku byia̱ maat Decalogue hu ku lan yet a̱khwukhwop swak ku ni̱ nshyia̱ a̱cet a̱ni. Ku ku nshyia̱ neet da̱ a̱cak [[Herodian dynasty|Herodiya]] kikya, tsi̱tsak 30 ma̱ng 1 BC]]
Mi̱ [[Kpam A̱lyiat A̱gwaza A̱biru]] hu, á̱ ku yei a̱lyoot Ncam Swak na עשרת הדיברות ([[Lyuut Rom|á̱ shyak lyuut hu ntyia̱]] ''aseret ha-dibrot''), mi̱ [[Kwambwat Ghwut|Ghwut]] 34:28,<ref name="ex34-28" /> [[Kwambwat Kwok Cam|Kwok Cam]] 4:13<ref>"[https://studybible.info/compare/Deuteronomy%204:13 Deuteronomy 4:13 – multiple versions and languages]". Studybible.info</ref> ma̱ng [[Kwambwat Kwok Cam|Kwok Cam]] 10:4.<ref>"[https://studybible.info/compare/Deuteronomy%2010:4 Deuteronomy 10:4 – multiple versions and languages]". Studybible.info.</ref> Mi̱ a̱mgba̱m a̱ka̱vwuoneet nkhang na, á̱ maai á̱ bwuak swáng a̱lyiat ji nang "swáng a̱lyiat swak ji", "á̱lyiat mumwang swak na", ku "á̱di̱dam swak na".<ref>Rooker, Mark (2010). "[https://books.google.com/books?id=1WUzUAdWRVUC&pg=PA3 The Ten Commandments: Ethics for the Twenty-First Century]". B&H Publishing Group: Nashville, Tennessee. P. 3. ISBN 978-0-8054-4716-3. The Ten Commandments are literally the 'Ten Words' (''ăśeret hadděbārîm'') in Hebrew. In [[Mishnaic Hebrew language|Mishnaic Hebrew]], they are called ''עשרת הדברות'' (transliterated ''aseret ha-dibrot''). The use of the term ''dābār'', 'word,' in this phrase distinguishes these laws from the rest of the commandments (''mişwâ''), statutes (''hōq''), and regulations (''mišpāţ'') in the Old Testament. (di̱n Shong)</ref>
Mi̱ [[Septuagint]] wu (ku LXX), á̱ ku bwuak "swáng a̱lyiat swak" ji nang "Decalogue", zang ja á̱ bwuo neet di̱ [[A̱khwukhwop Helen|Helen]] wu ''δεκάλογος'', ''dekalogos'', fa ngaan hu a̱wot ku si̱ ta̱fang<ref name="LSJ_Dekalogos">δεκάλογος</ref> bwan [[A̱khwukhwop Helen|Helen]] hu hwa (mi̱ [[Accusative case|accusative]] wu) ''δέκα λόγους'', ''deka logous''. Jen jhyang, á̱ ma nyia̱ ta̱m ma̱ng swang a̱lyiat jini di̱n Shong, a mbeang Ncam Swak. Bwan Kpa̱m A̱lyiat A̱gwaza [[Kpȧ̱m A̱lyiat A̱gwaza Tyndale|Tyndale]] ma̱ng [[Kpa̱m A̱lyiat A̱gwaza Coverdale |Coverdale]] di̱n Shong ku nyia̱ ta̱m ma̱ng "a̱cyuang zwunzwuo swak" wa. [[Kpa̱m A̱lyiat A̱gwaza Geneva]] hu si̱ nyia̱ ta̱m ma̱ng "ncam swak", si̱ ku khwi a̱ni hwa si̱ yet [[Kpa̱m A̱lyiat A̱gwaza Bishops]] hu ma̱ng [[Authorized King James Version|Authorized Version]] (bwan "King James" hu) nang "ncam swak". A̱ca̱cet bwan Shong ma̱ a̱di̱di̱t ku nyia̱ ta̱m ma̱ng swang a̱lyiat ji "ncam" ja.<ref name="ex34-28">"[http://studybible.info/compare/Exodus%2034:28 Exodus 34:28 – multiple versions and languages]". Studybible.info.</ref>
Á̱ ku ngyei a̱yaatabi̱let nfang na, mi̱ di̱ nyia̱ fi̱p ma̱ng ncam swak na nang á̱ ku ta̱zut da̱ mba a̱ni, ''לוחות הברית'', ''Lukhot HaBrit'', ku fa "a̱yaatabi̱let [[La̱p A̱nu (si̱ kpa̱m a̱lyiat A̱gwaza)|la̱p a̱nu]] ba".
==Ya̱fang==
<references/>
pewg9t831nlucbz0f4c1xg8uo3pht9c
Ndiya
0
618
15285
15271
2022-07-22T05:56:14Z
Kambai Akau
15
wikitext
text/x-wiki
{{databox}}
A̱byin '''Ndiya''' (Hindi: Bhārat; [[Shong (a̱lyem)|Shong]]: India), á̱ lyen ma̱ng a̱lyoot a̱gwomna̱ti nka nang '''Ri̱pobi̱lik Ndiya''' wu (Hindi: Bhārat Gaṇarājya<ref>"[https://books.google.com/books?id=yjcOAQAAMAAJ&pg=PA76|year=2002 The Essential Desk Reference]" (di̱n Shong). Oxford University Press. p. 76. ISBN 978-0-19-512873-4. ''"Official name: Republic of India."''</ref>; Shong: Republic of India), yet a̱byin kya di̱ fam-a̱byin A̱tak A̱siya. A̱byin Ndiya ka, kikya yet a̱feang ma̱ng shi á̱niet swanta hu, ka̱ si̱ yet a̱natat ma̱ng shi kyai a̱byin mi̱ bibyin swanta hu, a̱wot ka̱ si̱ yet a̱byin a̱gwomna̱ti [[di̱mokrasi]] ka̱ byia̱ á̱niet ka̱ swak mi̱ swanta hu. A̱byin Ndiya byia̱ a̱gi̱gak a̱sa̱khwot ma̱ng [[Kyai A̱sa̱khwot Ndiya]] hu di̱ fam a̱tak hu, Kyai A̱sa̱khwot A̱rabiya di̱ fam a̱tak-jenshyung hu, ma̱ng A̱ngam A̱sa̱khwot Ba̱nggat wu di̱ fam a̱tak-a̱tyin hu, ka̱ si̱ byia̱ a̱gi̱gak a̱byin ma̱ng Pakistan di̱ fam jenshyung hu; [[Caina]], Nepat, ma̱ng Bhutan di̱ fam a̱za hu; a mbeang Bangi̱ladesh ma̱ng and Myanma di̱ fam a̱tyin hu. A̱gwomna̱ti Ndiya ba ka nkyiak a̱byin [[A̱fganistan]] nang a̱byin gak kya, ma̱nang ba̱ fa a̱mgba̱m a̱byin Kashi̱mir kap Ndiya hwa a̱ni shimba a̱gwomna̱ti Pakistan bya nyia̱ tyok tazwa fam a̱byin kani ka̱ byia̱ gak ma̱ng A̱fganistan nang á̱ kwan tazwa a̱ni.<ref>"[https://web.archive.org/web/20150317182910/http://mha.nic.in/sites/upload_files/mha/files/BMIntro-1011.pdf Ministry of Home Affairs (Department of Border Management)]" (di̱n Shong).</ref> Di̱ Kyai A̱sa̱khwot Ndiya hu, a̱byin Ndiya shyia̱ kpa̱mkpaan ma̱ng Si̱ri Langka ma̱ng Ma̱ldivi; a̱wot Bibyin A̱ka̱wa̱tyia̱ A̱sa̱khwot Andaman ma̱ng Nikoba nka hu si̱ byia̱ a̱gi̱gak a̱sa̱khwot ma̱ng Tailand, Myanma ma̱ng [[Ndonisiya]].
[[Fail:Flag of India.svg|thumb|Tyiang a̱toot shi a̱byin Ndiya]]
[[Fail:Emblem of India.svg|thumb|A̱lama a̱byin Ndiya]]
[[Fail:India (orthographic projection).svg|thumb|Ta̱si̱la a̱byin Ndiya]]
==Ya̱fang==
<references/>
{{Bibyin A̱siya}}
[[Sa:Bibyin_swanta]]
[[Sa:Bibyin_A̱siya]]
[[Sa:Bibyin_A̱tak_A̱siya]]
gmi4ityhpng9ymugc7mxdy2l54u06ny
Ndonisiya
0
619
14753
14370
2022-07-04T08:25:16Z
Kwamikagami
349
wikitext
text/x-wiki
A̱byin '''Ndonisiya''' ([[Shong (a̱lyem)|Shong]]: Indonesia /ˌɪndəˈniːʒə/), á̱ lyen ma̱ng a̱lyoot a̱gwomna̱ti ka nang '''Ri̱pobi̱lik Ndonisiya''' wu (Ndonisiya: Republik Indonesia /reˈpublik indoˈnesia/; Shong: Republic of Indonesia), di̱n jen jhyang á̱ ngyei '''A̱si̱tet Muna̱pyia̱ Ri̱pobi̱lik Ndonisiya''', '''A̱MRN''' (Ndonesiya: Negara Kesatuan Republik Indonesia, NKRI; Shong: Unitary State of Republic of Indonesia), yet a̱byin kya di̱ fam A̱tak-a̱tyin A̱siya ma̱ng [[Osheniya]] tsi̱tsak a̱ca̱cet nkyai a̱sa̱khwot [[A̱gba̱ndang Kyai A̱sa̱khwot Ndiya|Ndiya]] ma̱ng [[A̱gba̱ndang Kyai A̱sa̱khwot Pasi̱fi̱k|Pasi̱fi̱k]] na. Ka̱ byia̱ si̱ ku swak bibyin a̱ka̱wa̱tyia̱ a̱sa̱khwot cyikwop swak ma̱ng a̱natat, nang Sumati̱ra, Java, Sulawesi, ma̱ng nkap fam Borneyo (Kalimantan) ma̱ng A̱fai Gini (Papwa). A̱byin Ndonesiya kya swak mi̱ shi kyai a̱byin mi̱ bibyin bibyin a̱ka̱wa̱tyia̱ a̱sa̱khwot swanta hu a̱wot ka̱ yet swak ma̱ng a̱naai mi̱ shi kyai a̱byin ma̱ a̱mgba̱m bibyin swanta hu. Ka̱ byia̱ shi kyai a̱byin kilomita a̱ma̱ntanaai 1,904,569 (met a̱ma̱ntanaai 735,358). Ma̱ng si̱ ku swak á̱niet miliyon 270, a̱byin Ndonisiya kya si̱ yet a̱naai mi̱ shi á̱niet mi̱ bibyin swanta hu ma̱ng si̱ ka̱ swak ma̱ng shi á̱niet mi̱ bibyin ku lan byia̱ Á̱nietkpaa̱pyia̱ a̱ni. Si̱ ku swak á̱kum a̱mgba̱m á̱niet a̱byin ka swan Java, a̱byin a̱ka̱wa̱tyia̱ a̱sa̱khwot ka ka̱ swak mi̱ shi á̱niet mi̱ swanta hu.
[[Fail:Flag of Indonesia.svg|thumb|Tuta Ndonesiya]]
[[Fail:National emblem of Indonesia Garuda Pancasila.svg|thumb|A̱lama a̱byin Ndonesiya]]
[[Fail:Indonesia (orthographic projection).svg|thumb|Ta̱si̱la a̱byin Ndonesiya]]
==Ya̱fang==
<references/>
{{Template:Bibyin A̱siya}}
[[Sa:Bibyin_swanta]]
[[Sa:Bibyin_A̱siya]]
eavz6rxgj0uhf8by04y577w0k9gbour
Nduguli
0
620
15286
14371
2022-07-22T09:12:39Z
Gwanki
276
wikitext
text/x-wiki
{{databox}}
A̱keang '''Nduguli''' kya yet a̱keangtung a mbeang a̱gba̱ndang a̱keang a̱si̱ Si̱tet Ba̱rno mi̱ fam a̱za-a̱tyin [[Naijeriya]] hu. A̱keang ka swan di̱ fam a̱ghyui ka̱ kpa̱ra̱p da̱ a̱cak a̱kwa̱i kya a̱nyin nang á̱ ngyei Ngga̱da a̱ni, ka̱ si̱ nkoot di̱ nian ''Firki'' hu da̱ a̱beam [[A̱gba̱ndang Jok Cadi]] ka.<ref name=britannica>[http://www.britannica.com/EBchecked/topic/358466/Maiduguri Encyclopædia Britannica] (di̱n Shong).</ref> A̱khwot á̱kwop [[A̱gba̱ndang Bi̱ri̱ti̱n|Bi̱ri̱ti̱n]] ba, bibya ku kpaat a̱keang Nduguli ka ma̱ a̱lyia̱ 1907 nang tyan cam a̱vwuo nta mba ji a̱ni a̱wot ka̱ si̱ ba̱ laai ka̱ si̱ shi a̱nggang ka̱ si̱ ba̱ng á̱niet ba̱ shi swak miliyon jhyiung a̱ni a̱zafwun ka.
==Ya̱fang==
<references/>
[[Sa:A̱kakeangtung a̱yaasi̱tet Naijeriya]]
[[Sa:A̱ka̱vwuo na̱ byia̱ á̱niet ma̱ ba̱t mami Si̱tet Ba̱rno]]
[[Sa:A̱ca̱cet a̱ka̱keang Naijeriya]]
[[Sa:Naijeriya]]
c6kso3173prb30l4szuxo8ag1410nrh
Nera Naijeriya
0
621
14372
13438
2022-06-13T10:25:24Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
'''Nera''' wu (a̱lama: '''₦'''; zunzwuo: '''NGN''') wa yet kurum a̱byin [[Naijeriya]] hu. Á̱ ka̱u Nera a̱nyiung di̱ ''a̱yaakwobo'' 100 bya.
==Ya̱fang==
<references/>
[[Sa:Naijeriya]]
15stftcla7ij6cywvdrwqmh0kxwgmfn
Nfak
0
622
12401
7350
2022-05-21T05:05:37Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
'''Nfak''' yet minerat a̱ byia̱ ''sodium chloride (NaCl)'' lan mami a̱ni, a̱ yet a̱tung kemikat a shyia̱ mami sot a̱yaanfak; nfak na bai nang a̱ji̱jak a̱ni wa á̱ ni̱ ngyei nfak a̱fang, nang á̱niet-sains yei ''halite'' a̱ni.
[[Fail:DeadSeaIsrael5.jpg|thumb|right|Tyan nfak da̱ a̱beam Kyai A̱sa̱khwot Sangswuan hu]]
[[Fail:Halit (NaCl) - Kopalnia soli Wieliczka, Polska.jpg|thumb|right|''Halite'' (nfak a̱fan) neet mi̱ da̱ a̱vwuo lung nfak nfang Wieliczka ka, Małopolskie, Polan]]
[[Fail:Bolivian rose salt.jpg|thumb|Nfak rosa Boliviya na neet Andet]]
[[Fail:Loading sea salt at evaporation pond, Walvis Bay (2014).jpg|thumb|Á̱ kpa̱t nfak kyai a̱sa̱khwot mi̱ ta̱dyong fi̱k nfak mi̱ Walvis Bay, [[Namibiya]]; nkyang nswuan ''halophile'' na, ni̱nia nwuat nna li a̱shong hu]]
==Ya̱fang==
<references/>
p8wvdvz9140jxu2uzhtzd4sl83dwq23
Nfwongsuup
0
623
14491
7352
2022-06-13T10:46:29Z
Vargenau
226
Changed redirect target from [[A̱nfwongswup]] to [[A̱nfwuong-swup]]
wikitext
text/x-wiki
#REDIRECT [[A̱nfwuong-swup]]
ikld5qgv2eapn3dibnbrh7s1zzevaec
Nggi̱lan
0
624
14373
13439
2022-06-13T10:25:29Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
A̱byin '''Nggi̱lan''' (Shong: England), yet a̱byin kya ka̱ yet kap Tyok Muna̱pyia̱ hu.<ref>Office for National Statistics (United Kingdom). "[http://webarchive.nationalarchives.gov.uk/20020329130655/http://www.statistics.gov.uk/geography/uk_countries.asp web The Countries of the UK]" (di̱n Shong). Statistics.gov.uk.</ref> Ka̱ byia̱ a̱gi̱gak a̱byin ma̱ng Wales di̱ fam jenshyung hu ma̱ng Si̱koti̱lan di̱ fam a̱za hu. Kyai A̱sa̱khwot Airi hu myian di̱ fam a̱za-jenshyung a̱byin Nggi̱lan ma̱ng Kyai A̱sa̱khwot Keltik hu di̱ fam a̱tak-jenshyung hu. Kyai A̱sa̱khwot A̱za hu hwa ka̱u A̱byin Nggi̱lan neet vam-a̱byin [[Yurop]] hu di̱ fam a̱tyin hu a̱wot English Channel hu si̱ ka̱u mba di̱ fam a̱tak hu. A̱byin ka kup nkap a̱yaakpa a̱fwuon mami nkap a̱yaakpa a̱ni̱nai a̱byin a̱ka̱wa̱tyia̱ a̱sa̱khwot [[A̱gba̱ndang Bi̱ri̱ti̱n]] ka ka̱ myian di̱ fam [[Kyai A̱sa̱khwot Ati̱lantik|A̱za Kyai A̱sa̱khwot Ati̱lantik]] hu, ka̱ si̱ byia̱ si̱ ku swak a̱cyuang bibyin a̱ka̱wa̱tyia̱ a̱sa̱khwot 100, nang A̱babyin A̱ka̱wa̱tyia̱ A̱sa̱khwot Scilly ka ma̱ng A̱babyin A̱ka̱wa̱tyia̱ A̱sa̱khwot Wight ka a̱ni.
[[Fail:Flag of England.svg|thumb|Tuta Nggi̱lan]]
[[Fail:Royal Arms of England.svg|thumb|A̱lama a̱byin Nggi̱lan]]
[[Fail:England in the UK and Europe.svg|thumb|Ta̱si̱la a̱byin Nggi̱lan]]
==Ya̱fang==
<references/>
{{Template:Bibyin Yurop}}
[[Sa:Bibyin_swanta]]
[[Sa:Bibyin_Yurop]]
[[Sa:Bibyin_Jenshyung_Yurop]]
iy0xvurv00q0ggk2j8f2llo4sdb65ei
Nggwon
0
625
12402
7377
2022-05-21T05:05:47Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
'''Nggwon''' ka (á̱kpa '''mman''' ''na'') yet a̱tyubishyi wa kyiak mi̱ di̱n jen byin ba̱ng si̱ tat jen nwuai fi̱ng a̱ni,<ref name="Child">[http://www.thefreedictionary.com/Child Child] (di̱n Shong) TheFreeDictionary.com</ref><ref name="Mosby">O'Toole MT (2013). "Mosby's Dictionary of Medicine, Nursing & Health Professions" (di̱n Shong). P. 345. Elsevier Health Sciences. ISBN 978-0-323-07403-2</ref> ku tsi̱tsak jen hyaat laai vam a̱banggwon ma̱ng nwuai fi̱ng.<ref name="Rathus">Rathus SA (2013). [https://books.google.com/books?id=OfIWAAAAQBAJ&pg=PT48 Childhood and Adolescence: Voyages in Development] (di̱n Shong). P. 48. Cengage Learning. ISBN 978-1-285-67759-0</ref>
==Ya̱fang==
<references/>
1qtgqie8kb6axrud8kz827jsx0fl73x
Ngozi Okonjo-Iweala
0
626
14374
13440
2022-06-13T10:25:34Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
[[Fail:Okonjo-Iweala, Ngozi (2008 portrait).jpg|thumb|Okonjo-Iweala, Ngozi (a̱junjung ghwughwu 2008)]]
'''Ngozi Okonjo-Iweala''' (á̱ ku byin nggu a̱tuk mam 13 Zwat A̱taa 1954) yet a̱gwak lyen a̱za̱za̱rak nzwa a̱byin a̱ yet a̱tyu [[Naijeriya]] ma̱ng [[A̱yaasi̱tet Muná̱pyia̱|Amerika]] wa a̱ni, a̱kwak a̱son kaswuo ji̱ myim a̱ni, a̱tyunwuat tyiet tazwa la̱p nkyang na̱ na beang swuan mi̱ swanta, a̱tyukwan shyia̱ a̱tan nkyang mat á̱nietbishyi ba̱ ka nshyia̱ a̱ni, a̱gwak lyen nkyang na̱ byia̱ a̱meang ma̱ng kurum, a̱gwak lyen nkyang ya a̱son swanta hu.<ref>[https://www.cgdev.org/expert/ngozi-okonjo-iweala Ngozi Okonjo-Iweala] (di̱n Shong). Center For Global Development.</ref><ref>[https://www.wto.org/english/news_e/news21_e/dgno_05mar21_e.htm DG Okonjo-Iweala Hits the Ground Running] (di̱n Shong). WTO: World Trade Organization.</ref><ref>[https://www.rockefellerfoundation.org/profile/ngozi-okonjo-iweala/ Ngozi Okonjo-Iweala - The Rockefeller Foundation] (di̱n Shong). The Rockefeller Foundation.</ref> Neet Zwat Tsat 2021, Okonjo-Iweala ku nyia̱ ta̱m nang A̱gba̱ndang A̱kwak A̱son Sot-nta̱m Kaswuo Swanta (WTO) wu. Kyang tyia̱ a̱ga̱de! Nggu wa si̱ yet a̱byii̱k a̱son ma̱ng a̱tyu a̱ neet mi̱ [[Afrika]] a̱son a̱ni a̱ na nkwak a̱son Sot-nta̱m Kaswuo Swanta ji nang A̱gba̱ndang A̱kwak A̱son.<ref>[https://www.un.org/africarenewal/magazine/march-2021/history-made-dr-ngozi-okonjo-iweala-picked-head-wto History Made as Dr. Ngozi Okonjo-Iweala Picked to Head the WTO] (di̱n Shong). Africa Renewal: United Nations Magazine (26 Zwat Sweang 2021).</ref><ref>[https://www.bbc.com/news/world-africa-54903788 Ngozi Okonjo-Iweala Makes History at the WTO] (di̱n Shong). BBC News.</ref><ref>[https://www.pri.org/stories/2021-04-22/wto-head-ngozi-okonjo-iweala-vaccines-we-have-solve-health-crisis-if-we-want WTO Director-General Ngozi Okonjo-Iweala Discusses Vaccines] (di̱n Shong). The World: Pulic Radio.</ref>
==Ya̱fang==
<references/>
[[Sa:Naijeriya]]
[[Sa:byin_1954]]
25n9af8gtno4uoegqu5zgidgrd3svso
Nia̱ ga̱swuong bwak
0
627
7391
7390
2022-05-16T12:52:42Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[Nia̱ ga̱swuong mbwak]]
je8ncoglj44y2ziy85wfzgz82l4h6wh
Nia̱ ga̱swuong mbwak
0
628
12404
7404
2022-05-21T05:06:07Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
[[Fail:Fingerprint detail on male finger in Třebíč, Třebíč District.jpg|right|thumb|Ndyen gbi̱ngba̱ra̱ng na mi̱ ga̱swuong mbwak jhyiung]]
'''Nia̱ ga̱swuong mbwak''' hu (á̱kpa: '''nnia̱ ga̱swuong mbwak''' ''na'') yet nghwang na̱ shyia̱ ma̱ng [[ga̱swuong mbwak]] a̱ni.
==Ya̱fang==
<references/>
nk5m15hmn51yr94oeq9qbuhbojnrlaj
Nigerian Army
0
629
14490
7406
2022-06-13T10:45:49Z
Vargenau
226
Changed redirect target from [[A̱khwot A̱kwop A̱byin Naijeriya]] to [[A̱khwot Á̱kwop A̱byin Naijeriya]]
wikitext
text/x-wiki
#REDIRECT [[A̱khwot Á̱kwop A̱byin Naijeriya]]
3wayoxlgfz5n0x5jzwwho17d1uy51tv
Ni̱njer (a̱byin)
0
630
14376
13829
2022-06-13T10:25:39Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
{{Country
|name = Ri̱pobi̱lik Ni̱njer<br>République du Niger (Fi̱ransa)
|flag = Flag of Niger.svg
|coa = Coat of Arms of Niger.svg
|image = Niger (orthographic projection).svg
|capital = Niyamei
|area = 1 267 000
|population = 24 112 753
|year = 2021
}}
'''A̱bwom a̱byin''':
"La Nigérienne" ("A̱tyuni̱njer wu")
A̱byin '''Ni̱njer''' ku '''Ni̱njer ka''' (Shong: Niger ku the Niger /niːˈʒɛər/ ku /ˈnaɪdʒər/;<ref>[http://www.slate.com/articles/news_and_politics/explainer/2003/07/how_do_you_pronounce_niger.html How Do You Pronounce "Niger"?]. Slate.com (14 Zwat Tsat 2012).</ref><ref>"Niger." ''The American Heritage® Dictionary of the English Language, Fourth Edition''. 2003. Houghton Mifflin Company 22 February 2013 [http://www.thefreedictionary.com/Niger thefreedictionary.com/Niger]". www.thefreedictionary.com (12 Zwat Tswuon 2013).</ref> Fi̱ransa: Niger /niʒɛʁ/), á̱ lyen ma̱ng a̱lyoot a̱gwomna̱ti nka nang '''Ri̱pobi̱lik Ni̱njer wu''' (Fi̱ransa: République du Niger)<ref name="nameISO">"[https://www.iso.org/obp/ui/#iso:code:3166:NE ISO 3166]". ISO Online Browsing Platform.</ref><ref name="nameUNGEGN">"[https://unstats.un.org/unsd/geoinfo/geonames/ UNGEGN World Geographical Names]" |publisher=United Nations Statisticsc Division (1 Zwat Tsat 2017).</ref> a̱ni, yet a̱byin kya nang bibyin ghyáng keang di̱ tityak a̱ni di̱ fam a̱byin [[Afrika Jenshyung]] nang á̱ ku nang a̱lyoot [[A̱ghyui Nija]] kikya. Ni̱njer byia̱ a̱gi̱gak ma̱ng [[Li̱biya]] di̱ fam a̱za-a̱tyin hu, [[Caad]] di̱ fam a̱tyin hu, [[Naijeriya]] di̱ fam a̱tak hu, [[Bini (a̱byin)|Bini]] ma̱ng [[Burkina Faso]] di̱ fam a̱tak-jenshyung hu, [[Mali]] di̱ fam jenshyung hu, ma̱ng Ali̱jeriya di̱ fam a̱za-jenshyung hu. A̱byin Ni̱njer byia̱ shi kyai ku tat kpa̱mkpaan ma̱ng kilomita a̱ma̱ntaa̱naai 1,270,000 (met a̱ma̱ntaa̱naai 490,000), si̱ a̱hwa si̱ tyia̱ ka̱ si̱ yet a̱byin ka ka̱ swak ma̱ng shi a̱byin a̱ni di̱ fam-a̱byin Jenshyung Afrika. Si̱ ku swan 80% a̱byin nka ka myian Kyai A̱ji̱jak Sahara hu hwa. Á̱kpa á̱niet ma̱ a̱byin ka yet A̱kpaa̱pyia̱ bya a̱wot shi á̱niet a̱byin hu si̱ tat miliyon 22 ba̱ swat di̱ susot ti̱taa di̱ fam a̱tak ma̱ng jenshyung a̱byin ka. A̱keangtung ka ma̱ng a̱gba̱ndang a̱keang wu a̱ swak mi̱ shi hu wa yet Niyamei, da̱ a̱ta̱m fam a̱tak-jenshyung a̱byin Ni̱njer ka.
==Ya̱fang==
<references/>
{{Bibyin Afrika}}
[[Sa:Bibyin_swanta]]
[[Sa:Bibyin_Afrika]]
[[Sa:Bibyin_Jenshyung_Afrika]]
sx6094b4q52mpu7bxq04fzcddmqfrhl
Nja̱t
0
631
14378
13577
2022-06-13T10:26:04Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
{| class="wikitable" align=right border width="200"
| colspan="2" align=center|'''Nja̱t'''
|-
| colspan="2" align=center|[[Fail:Hill in the north-east part of Jos, Nigeria (15).jpg|thumb|300px|center]] <sup>Tsok di̱ fam a̱za jenshyung Nja̱t, Naijeriya</sup>
|-
|}
A̱keang '''Nja̱t''' (Shong: Jos /'dʒoːs/) yet a̱gba̱ndang a̱keang wa di̱ fam a̱byin [[Fam A̱ka̱wa̱tyia̱]] [[Naijeriya]]. A̱gba̱ndang a̱keang wu byia̱ á̱niet ba̱ shi nyia̱ kpa̱mkpaan ma̱ng 900,000 ma̱ng si̱sak sa̱nsut 2006 ji.<ref name="nigerianstat.gov.ng">[http://www.nigerianstat.gov.ng/nbsapps/Connections/Pop2006.pdf FEDERAL REPUBLIC OF NIGERIA : 2006 Population Census].</ref> Á̱niet ma̱ a̱di̱di̱t yei a̱keang ka "'''J-Town'''", a̱wot kikya si̱ yet a̱keangtung kwak a̱son ma̱ng a̱gba̱ndang a̱keang a̱ swak mi̱ shi mami [[Si̱tet Pi̱lato]].
== Ya̱fang ==
<references/>
== A̱ka̱fwuop nta ==
[[Sa:Naijeriya]]
[[Sa:A̱ka̱keang_mami_Naijeriya]]
[[Sa:Nja̱t]]
[[Sa:A̱kakeangtung a̱yaasi̱tet Naijeriya]]
[[Sa:A̱ka̱vwuo na̱ byia̱ á̱niet ma̱ ba̱t mami Si̱tet Pi̱lato]]
[[Sa:A̱ca̱cet a̱ka̱keang Naijeriya]]
i0apu46mcj51dgdyxbpz0udficmofa0
Nkhang a̱byin Naijeriya
0
632
14379
12993
2022-06-13T10:26:09Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
[[File:WestAfrica1625.png|thumb|[[Afrika Jenshyung]] ma̱ a̱lyia̱ 1625]]
Á̱ na maai nfi̱k '''nkhang a̱byin [[Naijeriya]] na''' neet ma á̱nietswat ba̱ bwuang kai A̱tyia̱ka̱u A̱tyin ka ma̱ng [[Afrika]] neet mi̱ da̱ a̱lyia̱ 1100 BC. Ntat-a̱ghyi Afrika ma̱ a̱di̱di̱t ku swat di̱n fam hu nang á̱ si̱ lyen nang Naijeriya a̱fwun, nang [[A̱byin-tyok Nri]], [[A̱byintyokshan Bini]] ka, mbeang [[A̱byintyokshan Oyo]] ka. [[Khwikpaa̱pyia̱ mi̱ Naijeriya|Khwikpaa̱pyia̱ ntat Naijeriya]] mbwak [[A̱byintyokshan Ba̱rno]] kya da̱ a̱cak a̱lyia̱ (1068 AD) ma̱ng [[Sí̱tet A̱kpat]] ji kpa̱mkpaan a̱cak a̱lyia̱ (1385 AD) mi̱ sa̱ncuri 11 ji,<ref>"[http://countrystudies.us/nigeria/3.htm Table content, Nigeria]". Country Studies.</ref><ref>"[https://web.archive.org/web/20211003223531/http://historyworld.net/wrldhis/PlainTextHistoriesResponsive.asp?historyid=ad41 Historic regions from 5th century BC to 20th century]". History World.</ref><ref>"[https://www.studycountry.com/guide/NG-history.htm A short Nigerian history]". Country Studies.</ref><ref>Nigeria Government Federal Website (1 October 2006). "[https://web.archive.org/web/20190530151151/http://www.nigeria.gov.ng/index.php/2016-04-06-08-38-30/history-of-nigeria/32-about-nigeria About the Country Nigeria The History]".</ref> nang [[Khwikristi mami Naijeriya|Khwikristi nnwuo Naijeriya]] mi̱ sa̱ncuri 15 ji mbwak a̱yaamonk A̱gosti̱n ma̱ng Kapucin ba neet a̱byin [[Potugal]]. [[A̱songhai]] ba meang si̱ yai ntat kap fam a̱byin hu.<ref>[https://courses.lumenlearning.com/suny-hccc-worldcivilization/chapter/songhai/ Songhai {{!}} World Civilization]". Courses.</ref> Nkhang gbangbang a̱byin Naijeriya na si̱ la̱u byia̱ a̱ka̱ta ma̱ng [[a̱bwuang a̱khwo a̱ma̱nyi a̱ti̱lantik]] wu,<ref>https://web.archive.org/web/20200417081153/https://rlp.hds.harvard.edu/for-educators/country-profiles/nigeria/historical-legacies</ref> zang wa ntsa mi̱ Naijeriya di̱ ngaan sa̱ncuri 15 ji. Tyan a̱bwuang a̱khwo a̱tyin ji nang á̱niet Bi̱ri̱ti̱n ma̱ng Portugal ba ku nyia nta̱m ma̱ng a̱nji ja yet Badagri, tyan yong kukwon a̱wak jhyang ji shyia̱ di̱ khwong kyai a̱sa̱khwot a̱ni.<ref>[https://web.archive.org/web/20200610083429/https://rlp.hds.harvard.edu/faq/transatlantic-slave-trade-nigeria The Transatlantic Slave Trade]". Harvard. (di̱n Shong).</ref> A̱yaadila mali ba si̱ bwoi mba á̱khwo, a̱dodo njhyá̱ tsi̱tsak nnwap di̱ fam a̱byin ka si̱ dam a̱khwukhwop nvak a̱bwuang [[a̱ta̱lyen Ma̱nyi Sahara]] ka.<ref>https://web.archive.org/web/20200610083429/https://rlp.hds.harvard.edu/faq/transatlantic-slave-trade-nigeria</ref>
A̱khwot Á̱kwop [[A̱byintyokshan Bi̱ri̱ti̱n|Bi̱ri̱ti̱n]] wu si̱ nwuo [[Legwot]] ma̱ a̱lyia̱ 1851, á̱ si̱ ta̱mak nji ma̱ng a̱gwomna̱ti mba ba ma̱ a̱lyia̱ 1865.<ref>Chioma, Unini (February 2, 2020). "[https://thenigerialawyer.com/when-i-remember-nigeria-i-remember-democracy-by-hameed-ajibola-jimoh-esq/ When I Remember Nigeria, I Remember Democracy! By Hameed Ajibola Jimoh Esq]". TheNigeriaLawyer.</ref> Naijeriya si̱ bwuak tyia̱ a̱byincok Bi̱ri̱ti̱n mi̱ 1901. A̱cak tyok á̱nietcen ka si̱ neap tat 1960, jen ji nang cong cat sa̱t hu si̱ shyia̱ ya a̱ywan a̱ni.<ref>[https://theworldnews.net/ng-news/nigerian-diaspora-and-remittances-transparency-and-market-development Nigerian Diaspora and Remittances: Transparency and market development]."</ref> Naijeriya shyia̱ yet [[Ri̱pobi̱lik A̱son Naijeriya|ri̱pobi̱lik]] ma̱ a̱lyia̱ 1963, a̱wot a̱byin ka si̱ ba̱ kwa mbwak [[Tyok a̱khwot á̱kwop si̱ 1966–79 ma̱ng 1983–98|tyok a̱khwot á̱kwop]] ndyia̱ a̱tat na̱ khwi a̱ni, a̱ma̱lyim [[Bwan tyok Naijeriya si̱ 1966|bwan tyok koot a̱sok]] ghyang. Cong cat ka̱u a̱byin ghyang si̱ kpaat [[Ri̱pobi̱lik Byafra]] wu ma̱ a̱lyia̱ 1967, si̱ a̱hwa hwa si̱ khwat [[Zwang Byina̱byin Naijeriya]] ndyia̱ a̱tat ji a̱zanson.<ref>Obasanjo, Olusegun (1980). "''My Command: an account of the Nigeria Civil War 1967-1970''". Ibadan: Heinemann Educational Books Ltd. ISBN: 0435902490. Pp. 12–13.</ref> Naijeriya si̱ bu bwuak ntyia̱ [[Ri̱pobi̱lik A̱feang Naijeriya|ri̱pobi̱lik]] ma̱lyim lyuut kpa̱m cam a̱byin fai mi̱ 1979. Da̱ a̱kwonu a̱kya, ri̱pobi̱lik wu si̱ labeang bah, nang á̱nietnzwang ba [[Bwan tyok 1983 Naijeriya|si̱ bu ta̱wap cet]] ba̱ si̱ bai tyok tat ndyia̱ swak. Á̱ si̱ khwom á̱ na mkpaat [[Ri̱pobi̱lik A̱tat Naijeriya|ri̱pobi̱lik a̱fai]] mi̱ 1993, a̱wot Jenera [[Sani Abaca]] si̱ bai weam ngguu. Abaca saan 1998 a̱wot á̱ si̱ bai kpaat [[Ri̱pobi̱lik A̱naai Naijeriya|ri̱pobi̱lik a̱naai]] wu a̱lyia̱ ka̱ khwi a̱ni a̱zanson, zang wa tyak ndyia̱ nswak ntat a̱si̱ tyok á̱nietnzwang hu jen a̱zanjen.<ref>"[https://asq.africa.ufl.edu/yagboyaju_summer11/ Nigeria's Fourth Republic and the Challenge of a Faltering Democratization]". Asq Africa. (dI̱n Shong).</ref><ref>"[https://www.researchgate.net/publication/298659111 Nigeria's fourth republic and the challenge of a faltering democratization]". ResearchGate. (di̱n Shong).</ref>
[[Fail:Nigeria states.png|alt=Photo Showing States in Nigeria by Geography|thumb|Ghwughwu ku tyai Sí̱tet Naijeriya ji di̱n vak Nkhang A̱byin]]
==Ya̱fang==
<div style="height: 200px; overflow:auto; border: 1px solid gray; padding-right: 12px; background-color: #EEEEEE; ">
<references />
</div>
[[Sa:Nkhang a̱byin Naijeriya]]
5z7tasrr32jgqpll9jpa00f80qq5ay7
Nkom
0
633
7470
7469
2022-05-16T12:52:45Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[Kwom]]
s50chq0hqde39l7gowkyl5zrxxttzxk
Nkwon
0
634
12406
7477
2022-05-21T05:06:27Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
[[Fail:Brennreisig.JPG|thumb|Á̱kpa nkwon á̱ mwok a̱ni kpa̱mkpaam nok ghyang]]
[[Fail:Špalek na štípání.jpg|thumb|Kpa̱m nkwon nang á̱ ku sak á̱ tyam a̱ni]]
'''Nkwon''' (á̱ ka ndyuut '''nkon''') yet kuzang tangka̱i kyang hwa ku khat long. Nkwon ni̱ neet a̱ka̱kwon nia.
==Ya̱fang==
<references/>
i87mk7e8xeh8vg09q4sm1jfs55qkj19
Nnamdi Azikewe
0
635
7480
7479
2022-05-16T12:52:46Z
Jon Harald Søby
8
2 revisions imported
wikitext
text/x-wiki
Nnamdi Benjamin Azikiwe, PC (16 November 1904 – 11 May 1996), a̱ saa bu ngyei gu "Zik", a̱ku yet Kyang Khye ha ma̱ng Najeriya saa ngyet a̱kwaka̱son ma̱ng sot kwak nfwo a̱niet, Nguwa yet A̱gwam fari Najeriya,a̱bang Akaeang ka neet 1963 si̱ bai 1966.
==Ya̱fang==
<references/>
[[en.Nnamdi Azikewe]]
3obnoynttn04uibpg5jdw5ryfpaj0xi
Nnyia̱-ga̱swuong
0
636
7483
7482
2022-05-16T12:52:46Z
Jon Harald Søby
8
2 revisions imported
wikitext
text/x-wiki
#REDIRECT [[Nia̱ ga̱swuong mbwak]]
je8ncoglj44y2ziy85wfzgz82l4h6wh
Nok
0
637
14380
13443
2022-06-13T10:26:14Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
A̱keang '''Nok''' yet a̱bakeang kya mi̱ [[Jaba, Nigeria|Sot A̱gwomna̱ti Mali Jaba]] a̱si̱ [[A̱si̱tet Ka̱duna]], [[Naijeriya]].<ref name=MacDonald2000> Fiona, MacDonald; Marshall, Cavendish Corporation; Elizabeth, Paren; Kevin, Shillington; Gillian, Stacey; Philip, Steele (2000). "[https://books.google.com/books?id=joh5yHfcF-8C&pg=PA383 Peoples of Africa, Volume 10]". Pg. 383. Marshall Cavendish. ISBN: 0-7614-7158-8.</ref>
==Lyen a̱khwukhwop nkhang gbangbang==
Ta̱taat sangak terakota ma̱ a̱vwuo kani kikya ntyia̱ nang á̱ ta̱bat nyian ta̱m ma̱ng a̱lyoot nka ka mat [[Taada Nok]] ji, mi̱ zang ja sangak jinii ku yaa̱son mi̱ Naijeriya ma̱ a̱cak 1500 BC - 500 AD a̱ni.<ref name=MacDonald2000/><ref name="PB 2014">Breunig, Peter. 2014. Nok: African Sculpture in Archaeological Context: p. 21.</ref> Á̱ ta̱taat nkyang gbangbang na ma̱ a̱lyia̱ 1943 kya di̱ jen nta̱m lung a̱byin mat a̱tsatsak nfang.<ref>"[https://web.archive.org/web/20190429084838/https://www.hamillgallery.com/NOK/NokTerracottas/Nok.html NOK TERRACOTTA HEADS, Nigeria]". HAMILL GALLERY of TRIBAL ART.</ref>
A̱tyulyen a̱khwukhwop nkhang gbangbang wu [[Bernard Fagg]] ku zop tyan ji, a̱wot a̱ si̱ ki mbai shyia̱, ma̱ng beang á̱niet byina̱byin ba, nkyang gbangbang ma̱ a̱di̱di̱t njhyang.<ref>Aedeen, Cremin (2007). [https://books.google.com/books?id=A0llBlzF6UgC&pg=PA108 Archaeologica: The World's Most Significant Sites and Cultural Treasures [Nok, Nigeria]". Pg. 108. Frances lincoln ltd. ISBN=0-7112-2822-1</ref>
Á̱ ku ma ta̱taat a̱ka̱sha̱ndong byii̱k a̱dyundyung tswam meang mami Nok.<ref name=MacDonald2000/>
Á̱niet ku shyia̱ di̱ swuat ma̱ a̱vwuo ka gbangbang a̱zaghyi njen byii̱k a̱dyundyung tswam a̱son ka. Á̱ ku tyan mmam a̱bakidee a̱kwon ka̱ ka̱n tyia̱ a̱tsak a̱can a̱ni nang a̱ myim mi̱ "a̱tsak a̱ta̱mpwom ntsaai" wu ma̱ a̱bakeang Nok ka ma̱ a̱lyia̱ 1951 á̱ si̱ li nyia̱ ka̱ ku shyia̱ neet da̱ a̱beam 3660 BC, shimba lilyi̱ri̱m nshyia̱ tazwa yet a̱tsotswat tyiai a̱lyiat hu.<ref>McBurney, Charles Brian Montagu; Bailey, G. N.; Callow, Paul (1986). "[https://books.google.com/books?id=tTs9AAAAIAAJ&pg=PA159 Stone-Age prehistory: studies in memory of Charles McBurney]". Pg. 159. Cambridge University Press. ISBN: 0-521-25773-5.</ref>
==Ya̱fang==
<references/>
[[Sa:Naijeriya]]
[[Sa:A̱ka̱keang_mami_Naijeriya]]
bklrsg7wt9qaaay023i959y5rq7e00e
Nta̱m vab
0
638
7510
7509
2022-05-16T12:52:47Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[Nta̱m vap]]
aen107kk6kencizay0y07uy6xzzwgzn
Nta̱m vap
0
639
12408
7528
2022-05-21T05:06:47Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
[[Fail:Niger, Boubon (1), pottery market.jpg|197px|right]]
'''Nta̱m vab''' naat mbwuot na̱ng ãn nyia̱ a̱la̱n vab mbiyang a̱dọng a̱ni, ani shwai vab hu muņg löng domǐn ku labiyang mung chet.
==Ya̱fang==
<references/>
c8svf2pnzz921lppli2fsenl5mjp8f7
Ntong
0
640
14723
12409
2022-07-02T11:57:49Z
Kambai Akau
15
wikitext
text/x-wiki
{{Databox|item=Q152079}}
[[Fail:Wood ash.jpg|thumb|Ntong nkwon]]
'''Ntong''' yet nkyuo nia nang [[nkwon]] ya [[long]] na̱ si̱ ghwon a̱ni.
==Ya̱fang==
<references/>
9c1yofmekxzkq99ju4ddslzspxw356o
Ntongjan
0
641
14381
13094
2022-06-13T10:26:19Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
[[File:A lipid micelle.png|thumb|''Lipid micelle'' (di̱n Shong)]]
'''Ntongjan''' yet nkyuo nia na̱ beang di̱ kwi nkyangkwi ku jan nkyang ya yak. Ntongjan shyiak di̱ tangka̱i nta̱m nang á̱ nnyia̱ ma̱ng á̱na a̱ni. Si̱ swuo vwuon ma̱ng si̱ kwi nkyang. Ntongjan kwi nkyang nia yet: ''Detergent'' (da̱ a̱lyem nShong) ma̱ng si̱ swuo mbeang kwi nkyangkwi nang á̱ ngyei sabulu ji a̱ni.
==Ya̱fang==
<references/>
[[Sa:Ntongjan]]
omff1n1y24fyvm4blbvvpjnvqe42quf
Nuhu Ba̱ture
0
642
15405
15402
2022-07-27T20:16:13Z
Kambai Akau
15
/* Ya̱fang */
wikitext
text/x-wiki
{{Databox}}
A̱gwam '''Nuhu Ba̱ture A̱ci''' (19?? - Zwat Swak ma̱ng Sweang 18, 2021) wa ku yet a̱gwam a̱son a̱si̱ Tyok A̱jhyo hu, a̱ka̱ka̱rak a̱byin [[Naijeriya]] a̱ghyang ma̱ [[A̱tak Ka̱duna|a̱tak]] [[Si̱tet Ka̱duna]], Naijeriya. Á̱ ku lyen nggu ma̱ng a̱lyoot ka, "''A̱gwam Ba̱jju 1''".<ref>[https://web.archive.org/web/20190928195333/http://leadership.ng/2019/09/23/piper-foundation-empowers-women-in-bajju-community/ NEWSPIPER Foundation Empowers Women In Bajju Community] (di̱n Shong). Leadership (Zwat A̱kubunyiung 3, 2019).</ref><ref>Isuwa, Sunday (Zwat Tsat 3, 2014). [https://allafrica.com/stories/201403031485.html Nigeria: Kaduna Chief Mourns Palace Priest] (di̱n Shong). ''All Africa''. Daily Trust (Abuja).</ref><ref>[https://web.archive.org/web/20210115175652/https://localgov.kdsg.gov.ng/?page_id=31 Composition of the State's Council of Chiefs, Kaduna State Council of Chiefs Composition] (di̱n Shong). Ministry of Local Government Affairs, Kaduna State Government.</ref><ref>[https://invictafmng.com/2021/07/24/agwam-bajju-dr-nuhu-bature-describes-esu-chikun-dr-danjuma-barde-death-great-loss/ AGWAM BAJJU, DR NUHU BATURE, DESCRIBES ESU CHIKUN, DR DANJUMA BARDE DEATH GREAT LOSS.] (di̱n Shong). InvictaFMNg (Zwat A̱natat 24, 2021.</ref><ref>Binniyat, Luka; Marama, Ndahi (Zwat Swak ma̱ng Jhyiung 16, 2012). [https://www.vanguardngr.com/2012/11/gunmen-kill-family-of-six-in-zangon-kataf/amp/ Gunmen kill family of six in Zangon Kataf] (di̱n Shong). [[Ka̱duna]]: Vanguard Nigeria.</ref>
Á̱ ku kup a̱gwam Ba̱ture tyok nang a̱gwam a̱son Tyok A̱jhyo wu a̱zaghyi mbwoi nhu hu ma̱ a̱lyia̱ 1995, a̱zaghyi njen ji nang á̱ ku kwan á̱ si̱ tyak zwang [[Zangon Kataf|Nietcen A̱fakan]] ji a̱ni ma̱ a̱lyia̱ 1992 ma̱nang a̱gwomna̱ti ba ku kyiak yong á̱ si̱si̱ mbwuo a̱sa̱t ntyok [[Tyok A̱tyap|A̱tyap]] ma̱ng A̱jhyo wu nang á̱niet ba ku cat a̱ni neet mi̱ gbangbang, nang A̱bi̱ri̱ti̱n ba ku tyia̱ mi̱ cet a̱tafa Tyokkpaa̱pyia̱ Za̱uza̱u hu di̱n jen ji nang ba̱ ku tsa bai hu a̱ni. Ma̱ a̱lyia̱ 2012, A̱tyushityok A̱gwam Ba̱ture si̱ lyiat ma̱ng a̱dyundyung a̱lyia̱ nyia̱ ndyia̱ 17 nia ku swak neet nang á̱ ku kpaat tyok hu nang ''Ka̱jju'' (a̱byin [[A̱jhyo]] ka) ka̱n byia̱ a̱cucuk a̱li a̱gwam a̱ni bah.<ref>Isuwa, Sunday (Zwat A̱ni̱nai 13, 2012). [https://allafrica.com/stories/201208130247.html Nigeria: 17 Years After, Southern Kaduna Chiefdom Yet to Have a Palace] (di̱n Shong). ''All Africa''. Daily Trust (Abuja).</ref>
==Ya̱fang==
<references/>
[[Category:Kwi 2021]]
[[Category:Á̱niet Si̱tet Ka̱duna]]
[[Category:Á̱gwam Naijeriya]]
[[Category:Á̱gwam Afrika]]
[[Category:Á̱gwam A̱byintyok A̱jhyuo]]
0v1tkvbhnzcwt0oxb5kun2yk6p1v8gt
Nyak
0
643
12411
7587
2022-05-21T05:07:17Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
'''Nyak''' (á̱kpa: '''Nyák''') yet tangka̱i nyam ja nang á̱ ba̱ng a̱mali mat shyiat nam ya a̱ni, a̱baan, ma̱ng cap, nang á̱ kyiak nyia̱ nta̱m kwa a̱ni.
[[Fail:Cow (Fleckvieh breed) Oeschinensee Slaunger 2009-07-07.jpg|thumb|Nyak [[Shwit]] jhyang nang á̱ ngyei ''Fleckvieh'' a̱ni, a̱ khwi li̱laknyak mi̱ fwuo]]
==Ya̱fang==
<references/>
onrbhwtqrwv7doj0xyxrb2w59wow0co
Nyam
0
644
12412
7598
2022-05-21T05:07:27Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
'''Nyam''' (á̱kpa: '''nyám'''; á̱ bu ngyei ''Metazoa'') yet nkyang nswuan yukariyot na̱ byia̱ a̱yaasel ma̱ a̱di̱di̱t ja, mi̱ di̱ '''tyok''' nyam hu mi̱ bayoloji.
==Ya̱fang==
<references/>
empqfefuoudkgrz57ymlrd4qkebbgpi
Nyiung
0
645
12413
7606
2022-05-21T05:07:37Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
'''Nyiung''' yet kyayak ku li jojot a̱ni ma̱ng kwon, nam, á̱ ya ma̱ng tuk ku á̱ ya a̱nia. Nkyang tyei ma̱ng nyiung vwuon di̱ bibyin.
==Ya̱fang==
<references/>
3y72bzkkdpnvfphghfo8g1aubmq7frz
Nyuak
0
646
12414
7617
2022-05-21T05:07:47Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
[[Fail:Ring Ruby.jpg|upright=1.35|thumb|Nyuak a̱tsatsak nfang jhyang]]
[[Fail:Anneau episcopal cluny.JPG|thumb|Á̱za̱za̱rak nyuák mat a̱yaabishop ma̱ng a̱ca̱cet bishop ba. (Musée national du Moyen Âge, hôtel de Cluny, [[Parit]])]]
'''Nyuak''' ji (á̱kpa: '''nyuák''' ''ji'') yet kyang hwa ku li nang a̱kat a̱ni nang di̱n jen ma̱ a̱di̱di̱t á̱ nyia̱ nji ma̱ng tswam ja, a̱wot á̱ ni̱ tyia̱ a̱ga̱swuong ja nang kyang shisham a̱ni. Á̱niet ba ba̱ ka̱n nyeang a̱ni byia̱ nyuak-a̱ga̱swuong.
==Ya̱fang==
<references/>
lxiuz36v0ff6zyq1g2ypzdptp11s1e9
Nywan
0
647
12415
7634
2022-05-21T05:07:57Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
'''Nywan''' ji (''Gallus gallus domesticus'') yet a̱basotbishyi a̱shong a̱man a̱yit kya nang á̱ cok a̱mali a̱ni, a̱wot á̱ ku tsa shyia̱ nji di̱ fam-a̱byin A̱tak-a̱tyin [[A̱siya]] hwa.
[[Fail:Male and female chicken sitting together.jpg|thumb|A̱gbak ma̱ng sha̱p nywán ji̱ swan ndung.]]
==Ya̱fang==
<references/>
svz4cax11oo3ginp8jghjuvxa0h0ez3
Obafemi Martins
0
648
14382
13444
2022-06-13T10:26:24Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
[[Fail:Martins Llevant.jpg|thumb|Obafemi Martin a̱ tsot ma̱ng Levante ma̱ a̱lyia̱ 2012]]
'''Obafemi Akinwunmi Martins''' (byin a̱tuk mam 28 Zwat Swak 1984) yet a̱gwak a̱tyutsot a̱la̱utak Naijeriya a̱ tsot di̱ fam [[Chinese Super League]] hu nang á̱ ngyei [[Wuhan Zall F.C.|Wuhan Zall]] a̱ni nang [[Forward (association football)|a̱zanson]]. Á̱ si̱ ma ndyen nggu mat hyaai cung nggu hu tazwa a̱la̱u wu. Lilyim jen nang gu wot Naijeriya a̱ si̱ nat [[Italiya]] nang gu byia̱ a̱lyia̱ 16 a̱ni, neet di̱ jen a̱ja ja gu ta̱bat tsot ma̱ a̱yaaki̱lop ba̱ shyia̱ tswazwa-tswazwa ma̱ a̱byin [[Yurop]]. A̱ ku ntsa a̱kariya á̱nietkhwop nggu wu ma̱ a̱lyia̱ 2002 kya ma̱ng ki̱lop [[Serie A]] hu, [[Inter Milan]], a̱ si̱ shyei nat ki̱lop [[Premier League]] hu [[Newcastle United F.C.|Newcastle United]] a̱zaghyi ma̱ a̱lyia̱ 2006, a̱wot a̱ si̱ bu nat ki̱lop Bundesliga hu, [[VfL Wolfsburg]], ma̱ a̱lyia̱ 2009. Ma̱nang gu nnwuo di̱ fam [[Russian Premier League]] hu, Rubin Kazan, mi̱ Zwat A̱natat 2010 a̱ni, huhwa ba̱ si̱ [[khwap (sports)|khwap]] gu nwuak [[Birmingham City F.C.|Birmingham City]] mi̱ Zwat Jhyiung 2011.
==Ya̱fang==
<references/>
[[Sa:Naijeriya]]
[[Sa:byin_1984]]
iqsay8i4dpeb1r4tendnqyvf7w6lrvu
Okene
0
649
12417
7655
2022-05-21T05:08:17Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
'''Okene''' yet a̱keang kya mi̱n [[Si̱tet Kogi]] ma̱ a̱byin [[Naijeriya]]. A̱keang ka swan mi̱ [[Susot a̱gwomna̱ti mali Naijeriya|Sot A̱gwomna̱ti Mali]], ba̱ng á̱ ngyei Okene a̱ni. Okene seang a̱ khwi a̱gba̱ndang vak nang á̱ ngyei A2 a̱ni, á̱niet ba̱ swan a̱nka a̱ni yet 320,260, mi̱n fang hu ba̱ng á̱ ku fang ma̱ a̱lyia̱ 2006.
==Ya̱fang==
<references/>
2iyc2fjwu1svwv6rcoog1szrps0cm39
Olu Jacobs
0
650
14383
13445
2022-06-13T10:26:29Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
'''Oludotun Baiyewu Jacobs''', (byin 11 July 1942), a̱lyien ngu ma̱ng Olu Jacobs, a̱yet a̱tyiu nye fim [[Najeriya]] ha sa ngyet a̱tyiu tswot a̱yaa fim. A̱ ka̱ng nye a̱yaa fim ma̱ng British Televsion mbeang a̱gyaang ma̱ng duniye. A̱ jau Olu Jacobs sa njong gu shi di̱ yet a̱gwak ma̱ng niet tsot a̱yaa fim Najeriya ma̱ng ncei ngu na. Ngu ma̱ng Pete Edochie, a̱yaa midiya, ma̱ng a̱niet ya a̱nu a̱yaa fim a̱ni , mbiyang a̱niet nye a̱yaa fim a̱gyang nwuan ba yet a̱yaa kwaka̱son tswot fim ma̱ng Afrika, A̱saa nwuan ba a̱niet ba̱ng gargajiya Najeriya. A̱ nwuan gu di̱ yet a̱fwuop a̱khukhop a̱niet tswot fim ma̱ng a̱fai ba.
==Tafang==
<references/>
[[Sa:Wp/]]
[[en.Olu Jacob]]
lvq2pumdaoe31w1xvqvat1pdp2kmniz
Olusegun Obasanjo
0
651
14728
14384
2022-07-02T18:12:41Z
Kambai Akau
15
wikitext
text/x-wiki
{{Databox|item=Q202006}}
'''Olusegun Matthew Okikiola Aremu Obasanjo''', da̱ a̱lyem A̱ghwangkpang lyuut hu yet ''Olúṣẹ́gun Ọbásanjọ́'' (byin a̱tuk mam 5 Zwat Tsat 1937) yet a̱tyu kwainfwuo á̱niet [[Naijeriya]] wa. A̱ ku yet a̱tyu vwuoi a̱nu ma̱ng á̱kum [[A̱khwot A̱kwop A̱byin Naijeriya]] ba̱ ku bai ma̱ng Tyok A̱khwot Á̱kwop mi̱n 1966–79. Nggu wa ku yet A̱kwak A̱pyia̱ A̱khwot Á̱kwop Naijeriya kyiak neet 1983 ba̱ng si̱ nat 89. Mi̱n 1999, a̱ ku shyia̱ yet A̱kwak A̱son A̱byin Naijeriya wu ba̱ng si̱ nat 2007. A̱gwam Obasanjo shim swat dundung Á̱niet Naijeriya hu a̱ si̱ bu yet a̱tyu kwan a̱yaat yaa̱swon A̱byin wu wa. A̱ ku yet a̱tyonyiung mi̱n sot Kwai Nfwuo á̱niet Naijeriya á̱ ngyei ''Peoples Democratic Party'' (PDP) a̱ni neet 1999 bai 2015 ma̱ng kyiak neet 2018 ba̱ng si̱ tat a̱fwun.
==Ya̱fang==
<references/>
[[Sa:byin_1937]]
[[Sa:Naijeriya]]
i7pe4676wea0sqmxjzof3ub6mkc9h1n
Osheniya
0
652
12419
7687
2022-05-21T05:08:37Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
'''Osheniya''' ([[Shong (a̱lyem)|Shong]]: TM: /ˌoʊsiˈɑːniə, ˌoʊʃi-, -ˈeɪn-/, A̱M: /ˌoʊʃiˈæniə/), yet fam a̱byin swanta hwa ku byia̱ [[A̱stralasiya]], [[Melana̱siya]], [[Maikrona̱siya]] ma̱ng [[Polina̱siya]] a̱ni. Ku ngaat ku si̱ ba̱ tat Á̱kum-a̱la̱u A̱tyin ma̱ng Jenshyung ka, ku si̱ byia̱ shi kyai a̱byin kilomita a̱ma̱ntanaai 8,525,989 (met a̱ma̱ntanaai 3,291,903) ma̱ng shi á̱niet ku swak miliyon 41 a̱ni. Ka̱ á̱ si̱ mak ma̱ng nvam-a̱byin na, fam a̱byin Osheniya hu hwa swak ma̱ng yet a̱da̱dei di̱ kyai a̱byin a̱wot ku si̱si̱ ngyet a̱feang ku swak di̱ yet a̱da̱dei a̱ni mi̱ shi á̱niet lilyim [[A̱ntati̱ka]]. <ref>[https://unstats.un.org/unsd/methodology/m49/ Countries or areas / geographical regions ]</ref>
[[Fail:Oceania (orthographic projection).svg|thumb|Ta̱si̱la fam a̱byin Osheniya]]
==Ya̱fang==
<references/>
3k4ingatcat7z1hirs735x7kbz17pyi
Pablo Picasso
0
653
14766
14385
2022-07-04T16:53:19Z
Kambai Akau
15
wikitext
text/x-wiki
{{Databox|item=Q5593}}
'''Pablo Ruiz Picasso''' (25 Zwat Swak 1881 – 8 Zwat Nyaai 1973) ku yet a̱tyuswup nghwughwu, a̱tyumat nghwughwu, a̱tyutsot nkwambwat, a̱tyunyia̱ si̱ramik ma̱ng a̱tyujhyi a̱vwuo vwuomaat wa a̱byin Si̱pen wa, a̱nyan wa kpa̱mkpaan a̱mgba̱m swuan nggu ji nang a̱tat-a̱ghyi a̱ni a̱ ku swan a̱byin [[Fi̱ransa]] kya. Á̱ ka fa nggu, da̱ nggu a̱ yet a̱nyiung mami á̱nietnyia̱ nghwughwu ba̱ swak ma̱ng byia̱ cet laai á̱niet a̱ni mami sa̱ncuri 20 ji, a̱wot á̱ si̱ ka ndyen nggu mat yet a̱nyiung ma̱ng á̱niet ba ba̱ ku bwuo Cong Kubis hu, nghwut ma̱ng a̱di̱dam a̱fai nok ghwughwu, yet a̱nyiung ma̱ng á̱niet ba ba̱ ku tsa nghwut ma̱ng a̱di̱dam kpa̱m nghwughwu, ma̱ng a̱yaasa̱la̱u ma̱ a̱di̱di̱t a̱di̱t ba̱ ku beang ya a̱son ma̱ng a̱cyetzop a̱ni. Mami nta̱m nggu na na̱ laai lan di̱ byia̱ a̱lyoot a̱ni bibya yet kwambwat Les Demoiselles d'Avignon (1907) ku li̱n Kubis ba a̱ma a̱ni, ma̱ng Guernica (1937), maat ghyang ku tyai tang bom ma̱ a̱keang Guernica mbwak a̱khwot á̱kwop Jami̱ni ma̱ng á̱si̱ [[Italiya]] wu di̱n jen Zwang Á̱niet-a̱byin [[Si̱pen]] ji.
[[Sa:Á̱nietnyia̱ nghwughwu ma̱ng á̱nietlyen ghwang a̱ka̱sa]]
921ffxa5lezusndo7fjorzx2ufdnduc
Paiwan (a̱lyem)
0
654
14389
13448
2022-06-13T10:27:05Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
'''Paiwan''' (Paiwan: Vinuculjan, Pinayuanan) yet a̱lyem a̱byin [[Taiwan]] a̱ghyang kya nang [[A̱paiwan]] ba̱ yet a̱ka̱ka̱rak á̱niet Taiwan a̱ghyang ndyiat a̱ni. Paiwan yet a̱lyem Formosa kya mi̱ kyangbwak a̱lyem A̱stronesiya hu. A̱ ka ngyet a̱nyiung di̱ lilyem nang a̱gwomna̱ti Taiwan ba ku tak kpa̱sai nyia̱ ku yet lilyem a̱byin hwa a̱ni a̱wot a̱ si̱ yet a̱lyem a̱gwomna̱ti kya.
==Ya̱fang==
<references/>
==A̱ka̱fwuop nta==
* [https://e-dictionary.ilrdf.org.tw/pwn/search.htm Yuánzhùmínzú yǔyán xiànshàng cídiǎn 原住民族語言線上詞典] (da̱ a̱lyem Caina) – Paiwan search page at the "Aboriginal language online dictionary" website of the Indigenous Languages Research and Development Foundation
* [https://web.archive.org/web/20211120145223/https://alilin.apc.gov.tw/tw/ebooks?tag=610 Paiwan teaching and leaning materials published by the Council of Indigenous Peoples of Taiwan] (da̱ a̱lyem Caina)
* [https://indigenous-justice.president.gov.tw/doc/apology_text/Paiwan.pdf Paiwan translation of President Tsai Ing-wen's 2016 apology to indigenous people] – published on the website of the presidential office
[[Sa:Lilyem Taiwan]]
[[Sa:Lilyem Formosa]]
[[Sa:Lilyem A̱siya]]
[[Sa:Lilyem swanta]]
bwnwocf4t1y89d5nipgr7x892ga97dk
Papwa A̱fai Gini
0
655
7704
7703
2022-05-16T12:52:54Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[Papwa Gini A̱fai]]
thh6qrtk70105j3wzyq148m0p8r4cfh
Papwa Gini A̱fai
0
656
14390
13449
2022-06-13T10:27:10Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
A̱byin '''Papwa Gini A̱fai''' ('''PGA̱'''; Tok Pisin: Papua Niugini; Hiri Motu: Papua Niu Gini; Krio A̱na̱nwuai A̱sa̱khwot Torres: Dhaudhai Niu Gini; Meriam Mir: Op Deudai; Shong: Papua New Guinea /ˈpæp(j)uə ... ˈɡɪni, ˈpɑː-/, ku A̱M: /ˈpɑːpwə-, ˈpɑːpjə-, ˈpɑːpə-/), á̱ lyen ma̱ng a̱lyoot a̱gwomna̱ti ka nang '''A̱byin Sa̱t Papwa Gini A̱fai''' (Tok Pisin: Independen Stet bilong Papua Niugini; Hiri Motu: Independen Stet bilong Papua Niu Gini; Shong: Independent State of Papua New Guinea), yet a̱byin kya di̱ fam a̱byin [[Osheniya]] ka̱ yet kap fam a̱tyin a̱byin a̱ka̱wa̱tyia̱ a̱sa̱khwot Gini A̱fai ka̱ si̱ ka byia̱ bibyin a̱ka̱wa̱tyia̱ a̱sa̱khwot nta di̱ kyai a̱sa̱khwot hu mi̱ Melana̱siya (fam a̱byin ghyang di̱ fam a̱tak-jenshyung [[A̱gba̱ndang Kyai A̱sa̱khwot Pasi̱fi̱k]] wu di̱ fam a̱za a̱byin [[A̱strelya]]). A̱keangtung nka ka̱ shyia̱ di̱ khwong kyai a̱sa̱khwot fam a̱tak-a̱tyin hu, kikya á̱ ngyei Port Moresby. Kikya yet a̱byin a̱tat ka̱ swak ma̱ng shi ka̱ yet a̱byin a̱ka̱wa̱tyia̱ a̱sa̱khwot a̱ni, ma̱ng shi kyai a̱byin kilomita a̱ma̱ntanaai 462,840 (met a̱ma̱ntanaai 178,700).
[[Fail:Flag of Papua New Guinea.svg|thumb|Tyiang a̱toot shi a̱byin Papwa Gini A̱fai]]
[[Fail:National emblem of Papua New Guinea.svg|thumb|A̱lama a̱byin Papwa Gini A̱fai]]
[[Fail:Papua New Guinea (orthographic projection).svg|thumb|Ta̱si̱la a̱byin Papwa Gini A̱fai]]
==Ya̱fang==
<references/>
{{Template:Bibyin Osheniya}}
[[Sa:Bibyin_swanta]]
[[Sa:Bibyin_Osheniya]]
4av83oxr6r6or6tpdpi8zqmd836m02g
Parit
0
657
14392
13450
2022-06-13T10:27:15Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
[[Fail:Panorama Paris December 2007-2.jpg|thumb|''Eiffel Tower'' a̱zama ma̱ng á̱ga̱nga̱ng nnok distrik a̱bwuang ''La Défense'' (lilyim).]]
[[Fail:Flag of Paris with coat of arms.svg|thumb|Tyiang a̱toot shi a̱keang Parit]]
[[Fail:Grandes Armes de Paris.svg|thumb|A̱lama a̱keang Parit]]
A̱keang '''Parit''' (yei Fi̱ransa: Paris /paʁi/) kya yet a̱keangtung ma̱ng a̱gba̱ndang a̱keang a̱ swak ma̱ng shi á̱niet ma̱ a̱byin [[Fi̱ransa (a̱byin)|Fi̱ransa]], ma̱ng shi á̱niet nang á̱ ku tyan nyia̱ a̱ byia̱ á̱niet swat 2,165,423 ma̱ a̱lyia̱ 2019 a̱wot a̱byin ka si̱ byia̱ shi kyai ku swak kilomita a̱ma̱ntanaai 105 (met a̱ma̱ntanaai 41) a̱ni.<ref name="pop2019">[https://www.insee.fr/fr/statistiques/6005800?geo=COM-75056 Populations légales 2019: Commune de Paris (75056)] (di̱n Shong). INSEE (29 Zwat Swak ma̱ng Sweang)</ref>
==Ya̱fang==
<references/>
{{A̱ka̱keang swanta}}
[[Sa:Fi̱ransa]]
8oedw3ahh1yrhq3om9nxkcudp3ln4gb
Park Seo-joon
0
658
7747
7746
2022-05-16T12:52:56Z
Jon Harald Søby
8
15 revisions imported
wikitext
text/x-wiki
{| class="wikitable" align=right border width="200"
| colspan="2" align=center| '''Park Seo-joon'''<br />'''박서준/朴敘俊'''
|-
| colspan="2" align=center|[[File%3APark_Seo-joon_in_June_2019.png|250px]]
|-
|}
'''Park Seo-joon'''(Kworiya: 박서준/朴敘俊) yet a̱tyu nkhang Telvishon [[Kworiya A̱tak]] wa. <ref>[https://news.sbs.co.kr/news/endPage.do?news_id=N1004839241 Park Seo Jun Joins a New Agency Established by His Long-time Work Partner]</ref> <ref>[http://www.awesomeent.co.kr/portfolio-items/박서준/ Park Seo Jun 박서준]</ref>
==Ya̱fang==
<references/>
== A̱ka̱fwuop nta ==
*[https://m.imdb.com/name/nm6124994/ IMDb]
ted1arhr7gor72sbcyfhq5qk1ie7o2m
Pato
0
659
12424
7761
2022-05-21T05:09:30Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
[[Fail:Martin Luther King Jr NYWTS.jpg|thumb|Pato Ba̱ptis Martin Luther King Jr.]]
'''Pato''' wu (á̱kpa: '''A̱yaapato''' ''ba'') nggu wa yet a̱kwak a̱son sot á̱nietkhwi Yesu wu a̱ gba a̱ bu nkam á̱niet ba̱ neet mi̱ sot á̱nietkhwi Yesu ji a̱ni.
==Bu nwuan==
* [[A̱tyushei A̱lyiat A̱gwaza]]
==Ya̱fang==
<references/>
agiw0653rscxjmy4xarkz08r1yjzvd6
Pa̱la̱sti̱n (a̱byin)
0
660
14394
13451
2022-06-13T10:27:20Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
{{Country
|name = '''Si̱tet Pa̱la̱sti̱n'''<br>فلسطين, ''Dawlat Filasṭīn'' (La̱ra̱ba)
|flag = Flag of Palestine.svg
|coa = Coat of arms of Palestine.svg
|image = State of Palestine (orthographic projection).svg
|capital =
|area = 6 020
|population = 5 159 076
|year = 2020
}}
A̱byin '''Pa̱la̱sti̱n''' (La̱ra̱ba: فلسطين, ''Filasṭīn''; Shong: Palestine), á̱ lyen ma̱ng a̱lyoot a̱gwomna̱ti ka nang '''A̱si̱tet Pa̱la̱sti̱n''' (La̱ra̱ba: دولة فلسطين, ''Dawlat Filasṭīn''; [[Shong (a̱lyem)|Shong]]: State of Palestine) ma̱ a̱nu [[Muná̱pyia̱ Bibyin Swanta]] hu ma̱ng susot njhyáng, yet a̱sa̱t a̱byin kya nang á̱ ku la̱p a̱nu á̱ na nwuak a̱ni<ref>Al Zoughbi, Basheer (Zwat Swak ma̱ng Jhyiung 2011). "[https://web.archive.org/web/20160829174105/http://www.arij.org/files/admin/specialreports/The%20de%20jure%20State%20of%20Palestine%20under%20Belligerent%20Occupation%20Application%20for%20Admission%20to%20the%20United%20Nations.pdf The de jure State of Palestine under Belligerent Occupation: Application for Admission to the United Nations]" (di̱n Shong) ''(PDF)''.</ref><ref>"[https://www.reuters.com/article/us-palestinians-statehood-idUSBRE8AR0EG20121129 Palestinians win implicit U.N. recognition of sovereign state]" (di̱n Shong). Reuters (29 Zwat Swak ma̱ng Jhyiung 2012).</ref> di̱ fam a̱byin Jenshyung A̱siya hu nang Sot-nta̱m Tyei Pa̱la̱sti̱n Sa̱t (STPS) (ku ''Palestine Liberation Organization (PLO)'') ji js nyia̱ tyok tazwa nkaa, a̱wot ji̱ bu yong nyia̱ nfam a̱byin Khwong Jenshyung ma̱ng Tyiang-a̱byin Gaza na yet si̱ nji nia<ref name=only1967>"[https://www.un.org/apps/news/story.asp?NewsID=39722#.VfMZaZeM-ao Ban sends Palestinian application for UN membership to Security Council]" (di̱n Shong). United Nations News Centre (23 Zwat A̱kubunyiung 2011.</ref> a̱wot a̱keang [[Urusha̱lima]] si̱ ka ngyet a̱keangtung á̱zanson nji ka; da̱ a̱kwonu a̱kya, ma̱ a̱tsak a̱lyiat, di̱n kap di̱n kap hwa ji̱ nyia̱ tyok tazwa "bibyin a̱ka̱wa̱tyia̱ a̱sa̱khwot" 167 hu ku shyia̱ di̱ fam Khwong Jenshyung hu, ma̱nang Gaza shyia̱ tazwa tyok a̱fi̱p nji wa nang á̱ ngyei Hamat a̱ni. Neet ma̱ a̱lyia̱ 1948, bibyin ghyáng hwa nyia̱ tyok tazwa a̱mgba̱m kyai a̱byin nang A̱si̱tet Pa̱la̱sti̱n wu yong nyia̱ nggu wa byia̱ nhu, di̱ ntsa hu, a̱byin [[Ma̱sa̱r]] (Tyiang-a̱byin Gaza) ma̱ng a̱byin [[Urdun]] (Khwong Jenshyung) ma̱ng a̱byin [[Isi̱rela]] lilyim Zwang Mmam A̱taa ji ma̱ a̱lyia̱ 1967.<ref>Tahhan, Zena. "[https://www.aljazeera.com/indepth/features/2017/06/50-years-israeli-occupation-longest-modern-history-170604111317533 The Naksa: How Israel occupied the whole of Palestine in 1967]" (di̱n Shong). www.aljazeera.com</ref> A̱byin Pa̱la̱sti̱n byia̱ shi á̱niet 5,051,953 hwa mi̱ di̱ Zwat Sweang 2020, 121 mi̱ swanta hu.<ref>"[https://www.worldometers.info/world-population/state-of-palestine-population/ State of Palestine Population (2020) – Worldometer]" (di̱n Shong). www.worldometers.info</ref>
==Ya̱fang==
<references/>
{{Template:Bibyin A̱siya}}
[[Sa:Bibyin_swanta]]
[[Sa:Bibyin_A̱siya]]
[[Sa:Bibyin_Jenshyung_A̱siya]]
g7apg82cj2voiq6awlu1utwph0fpy66
Pa̱la̱u
0
661
14395
13452
2022-06-13T10:27:25Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
{| class="wikitable" align=right border width="200"
| colspan="2" align=center|'''Ri̱pobi̱lik Pa̱la̱u''' <br> Beluu er a Belau (Pa̱la̱u)
|-
| colspan="2" align=center|[[Fail:Palau on the globe (Southeast Asia centered) (small islands magnified).svg|300px|center]] <sub>Ta̱si̱la a̱byin Pa̱la̱u</sub>
|-
| colspan="2" align=center | [[Fail:Palau - Location Map (2013) - PLW - UNOCHA.svg|300px|center]] <sub>A̱vwuo ka nang a̱byin Pa̱la̱u nshyia̱ a̱ni</sub>
|-
| [[Fail:Flag of Palau.svg|thumb|Tuta a̱byin Pa̱la̱u]]
|-
| [[Fail:Seal_of_Palau.svg|thumb|A̱timi a̱byin Pa̱la̱u]]
|-
|}
A̱byin '''Pa̱la̱u''' (Pa̱la̱u: Belau, Shong: Palau /pəˈlaʊ/), á̱ lyen ma̱ng a̱lyoot a̱gwomna̱ti ka nang '''Ri̱pobi̱lik Pa̱la̱u''' wu (Pa̱la̱u: Beluu er a Belau, Shong: Republic of Palau), a̱wot mi̱ nkhang gbangbang á̱ ku ngyei Bela̱u, Pa̱la̱wot ku Pelewu, yet a̱byin a̱ka̱wa̱tyia̱ a̱sa̱khwot kya di̱ fam jenshyung [[A̱gba̱ndang Kyai A̱sa̱khwot Pasi̱fi̱k|Pasi̱fi̱k]] hu. A̱byin ka byia̱ kpa̱mkpaan ma̱ng bibyin a̱ka̱wa̱tyia̱ a̱sa̱khwot 340 a̱wot ka̱ si̱ ka nfwuop a̱nyanyang fam jenshyung Bibyin A̱ka̱wa̱tyia̱ A̱sa̱khwot Karolin wu ma̱ng nkap A̱yaasi̱tet Mundundung Maikronisiya ba. Ka̱ byia̱ shi kyai a̱byin kilomita a̱ma̱ntanaai 466 (met a̱ma̱ntanaai 180) hwa. A̱byin a̱ka̱wa̱tyia̱ a̱sa̱khwot nka ka̱ swak ma̱ng shi á̱niet kya yet Koror, a̱vwuo ka nang a̱gba̱ndang a̱keang a̱ swak ma̱ng shi á̱niet wu nshyia̱ a̱ni. A̱keangtung nka ka, kikya yet a̱keang Nggerulmud ka̱ shyia̱ ma̱ a̱byin a̱ka̱wa̱tyia̱ a̱sa̱khwot hyia̱k ka nang á̱ ngyei Babeldawob a̱ni, mami A̱si̱tet Melekewok. A̱byin Pa̱la̱u byia̱ a̱gi̱gak a̱sa̱khwot ma̱ng á̱sa̱khwot bibyin ma̱ a̱di̱di̱t di̱ fam a̱za hu, bibyin Maikronisiya di̱ fam a̱tyin hu, [[Ndonisiya]] di̱ fam a̱tak hu, a mbeang [[Filipin]] di̱ fam a̱za-jenshyung hu.
==Ya̱fang==
<references/>
{{Template:Bibyin Osheniya}}
[[Sa:Bibyin_swanta]]
[[Sa:Bibyin_Osheniya]]
0d0lga5apuhbd1wzn3ptiivxwc1480r
Pa̱takwot
0
662
15029
15028
2022-07-17T11:25:12Z
Kambai Akau
15
wikitext
text/x-wiki
{{Databox|item=Q217432}}
[[File:Port_Harcourt_City_Coat_of_Arms.jpg|thumb|A̱lama A̱gba̱ndang A̱keang Pa̱takwot]]
'''Pa̱takwot''' (Shong Kaswuo: Po-ta-kot, [[Shong (a̱lyem)|Shong]]: Port Harcourt) wa yet a̱gba̱ndang a̱keang a̱ nswak mi̱ Si̱tet Rivas, [[Naijeriya]]. Nggu wa yet a̱gba̱ndang a̱keang á̱ nsak a̱fwuon nkhwi [[Legwot]], [[Ka̱na̱u]], [[Ibadan]] ma̱ng [[A̱gba̱ndang A̱keang Bini]] mami Naijeriya. A̱ shyia̱ ma̱ng vak A̱ghyui Boni mami Da̱li̱ta a̱ghyui Nija. Ma̱ a̱lyia̱ 2016, Pa̱takwot ku byia̱ á̱niet 1,865,000, si̱ ku 1,382,592 ma̱ a̱lyia̱ 2006.
[[Category:Si̱tet Rivas]]
[[Category:A̱ka̱keangtung Naijeriya]]
[[Category:Naijeriya]]
nnuoda2j4mzqwtsi7y1ir70d84m40ct
Pepe
0
663
12427
7810
2022-05-21T05:10:00Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
'''Pepe''' yet a̱ba ma̱myiat kaset ja. Pepe ha a̱ ntsot a̱bubwom mbeang a̱yaa fim ntyei. Ka doot a sak midya a̱ yet si a̱nwat ku ghwughwuk a̱ labeang si tat jen ji a̱ ncat bu fak a̱ni.
==Ya̱fang==
<references/>
idp97s65kvyf8f83lhw2q7q20ur3jkr
Phyia̱
0
664
7813
7812
2022-05-16T12:52:58Z
Jon Harald Søby
8
2 revisions imported
wikitext
text/x-wiki
#REDIRECT [[A̱tyin pyia̱]]
mq28n08fclirxebdanlvrcnfpb7u2jr
Wukipedia:Articles for creation
4
665
13196
13190
2022-05-31T18:54:38Z
Amire80
6
fix namespaces
wikitext
text/x-wiki
''Please click any uncreated article in red in the '''Tyap''' column to create a new article (i.e. to translate from the English Wikipedia to Tyap OR to create a new non-existing article in the English Wikipedia.''
NB:
* If the article had been <span style=background:#87BEEB>created</span>, it would be displayed in <span style=background:#87BEEB>BLUE</span>. If it is <span style=background:#FF0000>yet to be created</span>, it would be displayed in <span style=background:#FF0000>RED</span>.
* On the '''English Wikipedia''' column, a yet-to-be created article might be displayed in blue instead of red, but you may create it by clicking on the pen tool '''🖊️'''.
* Please study [https://en.m.wikipedia.org/wiki/Help:Your_first_article this (please click here)] before writing your first article on the English Wikipedia.
{| class="wikitable"
|-
! English Wikipedia !! Tyap Incubator!! Sign
|-
| [[:w:en:Kanai, Nigeria|Kanai]] || [[Kanai]] || [[A̱tyunta̱m:NdipChristopherMissy|NdipChristopherMissy]] ([[A̱lyiat a̱tyunta̱áím:NdipChristopherMissy|talk]]) 14:43, 16 October 2021 (UTC)
|-
| [[:w:en:Bafoi|Bafoi]] || [[Bafoi]] ||[[A̱tyunta̱m:Elpator|Elpator]] ([[A̱lyiat a̱tyunta̱áím:Elpator|talk]]) 14:44, 16 October 2021 (UTC)
|-
| [[:w:en:Jalingo|Jalingo]] || [[Jalinggo]] ||[[A̱tyunta̱m:Obed Ephraim|Obed Ephraim]] ([[A̱lyiat a̱tyunta̱áím:Obed Ephraim|talk]]) 14:58, 16 October 2021 (UTC)
|-
| [[:w:en:Lokoja|Lokoja]] || [[La̱kwoja]] || [[A̱tyunta̱m:ThankGod Shekari|ThankGod Shekari]] ([[A̱lyiat a̱tyunta̱áím:ThankGod Shekari|talk]]) 15:43, 16 October 2021 (UTC)
|-
| [[:w:en:Maiduguri|Maiduguri]] || [[Nduguli]] ||[[A̱tyunta̱m:Jennifer Timothy|Jennifer Timothy]] ([[A̱lyiat a̱tyunta̱áím:Jennifer Timothy|talk]]) 15:00, 16 October 2021 (UTC)
|-
| [[:w:en:Kano (city)|Kano]] || [[Ka̱na̱u]] ||[[A̱tyunta̱m:Chacha2020|Chacha2020]] ([[A̱lyiat a̱tyunta̱áím:Chacha2020|talk]]) 16:18, 16 October 2021 (UTC)
|-
| [[:w:en:Damaturu|Damaturu]] || [[Damanturu]] || [[A̱tyunta̱m:Joseph shichet phinehas|Joseph shichet phinehas]] ([[A̱lyiat a̱tyunta̱áím:Joseph shichet phinehas|talk]]) 15:00, 16 October 2021 (UTC)
|-
| [[:w:en:Okene|Okene]] || [[Okene]] || [[A̱tyunta̱m:Elpator|Elpator]] ([[A̱lyiat a̱tyunta̱áím:Elpator|talk]]) 15:27, 16 October 2021 (UTC)
|-
| [[:w:en:Yola, Adamawa|Yola]] || [[Yola]] ||[[A̱tyunta̱m:Stephen Bitrus kwasau|Stephen Bitrus kwasau]] ([[A̱lyiat a̱tyunta̱áím:Stephen Bitrus kwasau|talk]]) 14:59, 16 October 2021 (UTC)
|-
| [[:w:en:Minna|Minna]] || [[Mina]] || [[A̱tyunta̱m:Caleb Zachariah|Caleb Zachariah]] ([[A̱lyiat a̱tyunta̱áím:Caleb Zachariah|talk]]) 16:31, 16 October 2021 (UTC)
|-
| [[:w:en:Wukari|Wukari]] || [[Wukari]] || [[A̱tyunta̱m:Emmanuel BT|Emmanuel BT]] ([[A̱lyiat a̱tyunta̱áím:Emmanuel BT|talk]]) 12:01, 17 October 2021 (UTC)
|-
| [[:w:en:Uganda|Uganda]] || [[Yuganda]] || [[A̱tyunta̱m:Sunday yashim|Sunday yashim]] ([[A̱lyiat a̱tyunta̱áím:Sunday yashim|talk]]) 13:19, 17 October 2021 (UTC)
|-
| [[:w:en:Andrew Yakubu|Andrew Yakubu]] || [[Andrew Yakubu]] ||[[A̱tyunta̱m:Stivo209|Stivo209]] ([[A̱lyiat a̱tyunta̱áím:Stivo209|talk]]) 13:00, 17 October 2021 (UTC)
|-
| [[:w:en:Zamani Lekwot|Zamani Lekwot]] || [[Zama̱ni Lyekhwot]] || [[A̱tyunta̱m:Stephen Bitrus kwasau|Stephen Bitrus kwasau]] ([[A̱lyiat a̱tyunta̱áím:Stephen Bitrus kwasau|talk]]) 13:55, 17 October 2021 (UTC)
|-
| [[:w:en:Musa Bityong|Musa Bityong]] || [[Musa Bityong]] ||
[[A̱tyunta̱m:Caleb Zachariah|Caleb Zachariah]] ([[A̱lyiat a̱tyunta̱áím:Caleb Zachariah|talk]]) 13:28, 17 October 2021 (UTC)
|-
| [[:w:en:Port Harcourt|Port Harcourt]] || [[Pa̱takwot]] || [[A̱tyunta̱m:Obed Ephraim|Obed Ephraim]] ([[A̱lyiat a̱tyunta̱áím:Obed Ephraim|talk]]) 13:43, 17 October 2021 (UTC)[[Pa̱takwot]] ||
|-
| [[:w:en:Christianity|Christianity]] || [[Khwikristi]] || [[A̱tyunta̱m:Jennifer Timothy|Jennifer Timothy]] ([[A̱lyiat a̱tyunta̱áím:Jennifer Timothy|talk]]) 13:47, 17 October 2021 (UTC)
|-
| [[:w:en:Judaism|Judaism]] || [[Khwiyahuda]] || [[A̱tyunta̱m:Zbobai|Zbobai]] ([[A̱lyiat a̱tyunta̱áím:Zbobai|talk]]) 14:05, 17 October 2021 (UTC)
|-
| [[:w:en:Islam|Islam]] || [[Khwikpaa̱pyia̱]] || [[A̱tyunta̱m:Simondikko|Simondikko]] ([[A̱lyiat a̱tyunta̱áím:Simondikko|talk]]) 17:14, 19 October 2021 (UTC)
|-
| [[:w:en:Ilorin|Ilorin]] || [[Ilorin]] || [[A̱tyunta̱m:Elpator|Elpator]] ([[A̱lyiat a̱tyunta̱áím:Elpator|talk]]) 13:12, 17 October 2021 (UTC)
|-
| [[:w:en:Ibadan|Ibadan]] || [[Ibadan]] ||
[[Wat khwo:Contributions/105.112.185.193|105.112.185.193]] (Emmanuel BT) 13:13, 17 October 2021 (UTC)
|-
| [[:w:en:Akure|Akure]] || [[Akure]] || [[A̱tyunta̱m:Joseph shichet phinehas|Joseph shichet phinehas]] ([[A̱lyiat a̱tyunta̱áím:Joseph shichet phinehas|talk]]) 13:21, 17 October 2021 (UTC)
|-
| [[:w:en:Ile Ife|Ile Ife]] || [[Ile Ife]] || [[A̱tyunta̱m:Chacha2020|Chacha2020]] ([[A̱lyiat a̱tyunta̱áím:Chacha2020|talk]]) 15:18, 17 October 2021 (UTC)
|-
| [[:w:en:Kinshasa|Kinshasa]] || [[Kinshasa]] || [[A̱tyunta̱m:Elpator|Elpator]] ([[A̱lyiat a̱tyunta̱áím:Elpator|talk]]) 13:43, 17 October 2021 (UTC)
|-
| [[:w:en:Leonardo DiCaprio|Leonardo DiCaprio]] || [[Leonardo DiCaprio]] || [[A̱tyunta̱m:Rrkesoji|Rrkesoji]] ([[A̱tyunta̱m:Rrkesoji|talk]]) 06:21, 17 October 2021
|-
| [[:w:en:Gusau|Gusau]] || [[Gusa̱u]] || [[A̱tyunta̱m:Gregory Aba Kajit|Gregory Aba Kajit]] ([[A̱lyiat a̱tyunta̱áím:Gregory Aba Kajit|talk]]) 15:10, 23 October 2021 (UTC)
|-
| [[:w:en:Uyo|Uyo]] || [[Uyo]] || [[Wat khwo:Contributions/105.112.185.193|105.112.185.193]] (Emmanuel BT) 14:36, 17 October 2021 (UTC)
|-
| [[:w:en:Dodoma|Dodoma]] || [[Dodoma]] || [[A̱tyunta̱m:Jiboman|Jiboman]] ([[A̱lyiat a̱tyunta̱áím:Jiboman|talk]]) 15:17, 23 October 2021 (UTC)
|-
| [[:w:en:Andrew Nkom|Andrew Nkom]] || [[Andrew Nkom]] || [[A̱tyunta̱m:Stephen Akut|Stephen Akut]] ([[A̱lyiat a̱tyunta̱áím:Stephen Akut|talk]]) 15:24, 23 October 2021 (UTC)
|-
| [[:w:en:Sokoto|Sokoto]] || [[Sokoto]] || [[A̱tyunta̱m:Meshackjolly009|Meshackjolly009]] ([[A̱lyiat a̱tyunta̱áím:Meshackjolly009|talk]]) 15:17, 23 October 2021 (UTC)
|-
| [[:w:en:Kumasi|Kumasi]] || [[Kumasi]] || [[A̱tyunta̱m:Zbobai|Zbobai]] ([[A̱lyiat a̱tyunta̱áím:Zbobai|talk]]) 14:00, 24 October 2021 (UTC)
|-
| [[:w:en:London|London]] || [[London]] || [[A̱tyunta̱m:Natdisciple|Natdisciple]] ([[A̱lyiat a̱tyunta̱áím:Natdisciple|talk]]) 15:27, 23 October 2021 (UTC)
|-
| [[:w:en:Chikun|Chikun]] || [[Cikun]] || [[A̱tyunta̱m:Steven Akau|Steven Akau]] ([[A̱lyiat a̱tyunta̱áím:Steven Akau|talk]]) 14:43, 24 October 2021 (UTC)
|-
| [[:w:en:Kajuru|Kajuru]] || [[A̱jure]] || [[A̱tyunta̱m:Zbobai|Zbobai]] ([[A̱lyiat a̱tyunta̱áím:Zbobai|talk]]) 14:18, 26 October 2021 (UTC)
|-
| [[:w:en:Kauru|Kauru]] || [[Ka̱uru]] || [[A̱tyunta̱m:Zbobai|Zbobai]] ([[A̱lyiat a̱tyunta̱áím:Zbobai|talk]]) 08:21, 25 October 2021 (UTC)
|-
| [[:w:en:Sanga, Kaduna State|Sanga]] || [[Sangga]] || [[A̱tyunta̱m:Jiboman|Jiboman]] ([[A̱lyiat a̱tyunta̱áím:Jiboman|talk]]) 14:04, 24 October 2021 (UTC)
|-
| [[:w:en:Kachia|Kachia]] || [[Ka̱ciya]] || [[A̱tyunta̱m:Bathsheba123|Bathsheba123]] ([[A̱lyiat a̱tyunta̱áím:Bathsheba123|talk]]) 15:31, 23 October 2021 (UTC)
|-
| [[:w:en:Jaba, Kaduna State|Jaba]] || [[Jaba]] || [[A̱tyunta̱m:Zbobai|Zbobai]] ([[A̱lyiat a̱tyunta̱áím:Zbobai|talk]]) 13:29, 24 October 2021 (UTC)
|-
| [[:w:en:Osun State|Osun State]] || [[Si̱tet Osun]] || [[A̱tyunta̱m:Zbobai|Zbobai]] ([[A̱lyiat a̱tyunta̱áím:Zbobai|talk]]) 14:42, 24 October 2021 (UTC)
|-
| [[:w:en:Taraba State|Taraba State]] || [[Si̱tet Ta̱raba]] || [[A̱tyunta̱m:Bathsheba123|Bathsheba123]] ([[A̱lyiat a̱tyunta̱áím:Bathsheba123|talk]]) 13:51, 24 October 2021 (UTC)
|-
| [[:w:en:Kogi State|Kogi State]] || [[Si̱tet Kogi]] ||
[[A̱tyunta̱m:Micah Bobai David|Micah Bobai David]] ([[A̱lyiat a̱tyunta̱áím:Micah Bobai David|talk]]) 14:55, 24 October 2021 (UTC)
|-
| [[:w:en:Niger State|Niger State]] || [[Si̱tet Nija]] || [[A̱tyunta̱m:Micah Bobai David|Micah Bobai David]] ([[A̱lyiat a̱tyunta̱áím:Micah Bobai David|talk]]) 15:17, 23 October 2021 (UTC)
|-
| [[:w:en:Kwara State|Kwara State]] || [[Si̱tet Kwara]] || [[A̱tyunta̱m:Zbobai|Zbobai]] ([[A̱lyiat a̱tyunta̱áím:Zbobai|talk]]) 13:21, 24 October 2021 (UTC)
|-
| [[:w:en:Nasarawa State|Nasarawa State]] || [[Si̱tet Na̱sa̱rawa]] || [[A̱tyunta̱m:Meshackjolly009|Meshackjolly009]] ([[A̱lyiat a̱tyunta̱áím:Meshackjolly009|talk]]) 13:56, 24 October 24 2021 (UTC)
|-
| [[:w:en:Adamawa State|Adamawa State]] || [[Si̱tet A̱da̱mawa]] || [[A̱tyunta̱m:Jiboman|Jiboman]] ([[A̱lyiat a̱tyunta̱áím:Jiboman|talk]]) 14:39, 24 October 2021 (UTC)
|-
| [[:w:en:Gombe State|Gombe State]] || [[Si̱tet Gwombe]] || [[A̱tyunta̱m:Zbobai|Zbobai]] ([[A̱lyiat a̱tyunta̱áím:Zbobai|talk]]) 21:50, 26 October 2021 (UTC)
|-
| [[:w:en:Ogun State|Ogun State]] || [[Si̱tet Ogun]] || [[A̱tyunta̱m:Kambai Akau|Kambai Akau]] ([[A̱lyiat a̱tyunta̱áím:Kambai Akau|talk]]) 22:49, 26 October 2021 (UTC)
|-
| [[:w:en:Edo State|Edo State]] || [[Si̱tet A̱do]] || [[A̱tyunta̱m:Kambai Akau|Kambai Akau]] ([[A̱lyiat a̱tyunta̱áím:Kambai Akau|talk]]) 12:50, 27 October 2021 (UTC)
|-
| [[:w:en:Imo State|Imo State]] || [[Si̱tet Imo]] ||
|-
| [[:w:en:Katsina State|Katsina State]] || [[Si̱tet Ka̱sina]] || [[A̱tyunta̱m:Zbobai|Zbobai]] ([[A̱lyiat a̱tyunta̱áím:Zbobai|talk]]) 22:17, 26 October 2021 (UTC)
|-
| [[:w:en:Kebbi State|Kebbi State]] || [[Si̱tet Kebi]] || [[A̱tyunta̱m:Zbobai|Zbobai]] ([[A̱lyiat a̱tyunta̱áím:Zbobai|talk]]) 14:57, 28 October 2021 (UTC)
|-
| [[:w:en:Bayelsa State|Bayelsa State]] || [[Si̱tet Bayelsa]] ||
|-
| [[:w:en:Ondo State|Ondo State]] || [[Si̱tet Ondo]] || [[A̱tyunta̱m:Kambai Akau|Kambai Akau]] ([[A̱lyiat a̱tyunta̱áím:Kambai Akau|talk]]) 08:25, 28 December 2021 (UTC)
|-
| [[:w:en:Ekiti State|Ekiti State]] || [[Si̱tet Ikiti]] ||
|-
| [[:w:en:Oyo State|Oyo State]] || [[Si̱tet Oyo]] ||
|-
| [[:w:en:Zamfara State|Zamfara State]] || [[Si̱tet Za̱mfa̱ra]] ||
|-
| [[:w:en:Abia State|Abia State]] || [[Si̱tet Abya]] ||
|-
| [[:w:en:Anambra State|Anambra State]] || [[Si̱tet A̱na̱mba̱ra]] ||
|-
| [[:w:en:Bauchi State|Bauchi State]] || [[Si̱tet Ba̱uci]] || [[A̱tyunta̱m:Zbobai|Zbobai]] ([[A̱lyiat a̱tyunta̱áím:Zbobai|talk]]) 14:56, 30 October 2021 (UTC)
|-
| [[:w:en:Rivers State|Rivers State]] || [[Si̱tet Rivas]] ||
|-
| [[:w:en:Cross River State|Cross River State]] || [[Si̱tet Ki̱rosi̱riva]] ||
|-
| [[:w:en:Delta State|Delta State]] || [[Si̱tet Da̱li̱ta]] ||
|-
| [[:w:en:Sokoto State|Sokoto State]] || [[Si̱tet Sokoto]] || [[A̱tyunta̱m:Zbobai|Zbobai]] ([[A̱lyiat a̱tyunta̱áím:Zbobai|talk]]) 22:01, 27 October 2021 (UTC)
|-
| [[:w:en:Ebonyi State|Ebonyi State]] || [[Si̱tet A̱bonyi]] || [[A̱tyunta̱m:Zbobai|Zbobai]] ([[A̱lyiat a̱tyunta̱áím:Zbobai|talk]]) 21:47, 27 October 2021 (UTC)
|-
| [[:w:en:Borno State|Borno State]] || [[Si̱tet Ba̱rno]] ||
|-
| [[:w:en:Jigawa State|Jigawa State]] || [[Si̱tet Ji̱gawa]] || [[A̱tyunta̱m:Zbobai|Zbobai]] ([[A̱lyiat a̱tyunta̱áím:Zbobai|talk]]) 21:33, 27 October 2021 (UTC)
|-
| [[:w:en:Federal Capital Territory, Nigeria|Federal Capital Territory]] || [[Teritori A̱keangtung Mundundung]] ||
|-
|}
The articles below are yet to be created, both in the English Wikipedia and the Tyap Incubator spaces
{| class="wikitable"
|-
! English Wikipedia !! Tyap Incubator!! Sign
|-
| [[:w:en:Hauwa Shekarau|Hauwa Shekarau]] || [[Hauwa Sheka̱ra̱u]] ||
|-
| [[:w:en:Dawa Kaah|Dawa Kaah]] || [[Dawa Kaah]] ||
|-
| [[:w:en:Juri Ayok|Juri Ayok]] || [[Juri A̱yok]] ||
|-
| [[:w:en:Ibrahim James|Ibrahim James]] || [[Ibrahim James]] ||
|-
| [[:w:en:John Laah|John Laah]] || [[John Laah]] ||
|-
| [[:w:en:Bonat Zuwaqhu|Bonat Zuwaqhu]] || [[Bonat Zuwaqhu]] ||
|-
| [[:w:en:Boman Kachim|Boman Kachim]] || [[Boman Ka̱chim]] ||
|-
| [[:w:en:Ishaya Dare Akau|Ishaya Dare Akau]] || [[Ishaya Dare Akau]] ||
|-
| [[:w:en:Shekarau Kau Layyah|Shekarau Kau Layyah]] || [[Shekarau Kau Layyah]] ||
|-
| [[:w:en:Nwayya Bagayya|Nwayya Bagayya]] || [[Nwayya Bagayya]] ||
|-
| [[:w:en:Stephen Shekari|Stephen Shekari]] || [[Stephen Shekari]] ||
|-
| [[:w:en:Tonak Dabo|Tonak Dabo]] || [[Tonak Dabo]] ||
|-
| [[:w:en:Kazah Yashim|Kazah Yashim]] || [[Kazah Yashim]] ||
|-
| [[:w:en:Nerzit Movement|Nerzit Movement]] || [[Cong Á̱nienzi̱t]] ||
|-
| [[:w:en:Southern Kaduna People's Union|Southern Kaduna People's Union]] || [[Muna̱pyia̱ Á̱niet A̱tak Ka̱duna]] ||
|-
| [[:w:en:Maude Gyani|Maude Gyani]] || [[Ma̱ude Gyani]] ||
|-
| [[:w:en:Ado Ibrahim|Ado Ibrahim]] || [[Ado Ibrahim]] ||
|-
| [[:w:en:Usman Sakwak|Usman Sakwak]] || [[Usman Sa̱kwak]] ||
|-
| [[:w:en:Bello Ijumu|Bello Ijumu]] || [[Bello Ijumu]] ||
|-
| [[:w:en:Biya Kaka|Biya Kaka]] || [[Biya Kaka]] ||
|-
| [[:w:en:Bryan Sharwood-Smith|Bryan Sharwood-Smith]] || [[Bryan Sharwood-Smith]] ||
|-
| [[:w:en:James Bawa Magaji|James Bawa Magaji]] || [[James Bawa Ma̱gaji]] ||
|-
| [[:w:en:Kaka Bishut|Kaka Bishut]] || [[Kaka Bishut]] ||
|-
| [[:w:en:Middle Belt People's Party|Middle Belt People's Party]] || [[Middle Belt People's Party]] ||
|-
| [[:w:en:Middle Zone League|Middle Zone League]] || [[Middle Zone League]] ||
|-
| [[:w:en:Moses Nyam Rwang|Moses Nyam Rwang]] || [[Moses Nyam Rwang]] ||
|-
| [[:w:en:Mugunta Atin|Mugunta Atin]] || [[Mugunta A̱tyin]] ||
|-
| [[:w:en:Northern Nigeria non-Muslim League|Northern Nigeria non-Muslim League]] || [[Northern Nigeria non-Muslim League]] ||
|-
| [[:w:en:Patrick Dokotri|Patrick Dokotri]] || [[Patrick Dokotri]] ||
|-
| [[:w:en:Tatumare|Tatumare]] || [[Tatumare]] ||
|-
| [[:w:en:Tilde Expedition|Tilde Expedition]] || [[Tilde Expedition]] ||
|-
|}
rmg75155pzakjkjww3wrfiec9hkqpxk
Wukipedia:Kaduna Special Edition articles for creation
4
666
13194
13192
2022-05-31T18:54:18Z
Amire80
6
fix namespaces
wikitext
text/x-wiki
<!-- Please don't translate/create anything here on this page yet until the events begin. Thank you. -->
''Please click any uncreated article in red in the '''Tyap''' column to create a new article (i.e. to translate from the English Wikipedia to Tyap OR to create a new non-existing article in the English Wikipedia.''
NB:
* If the article had been <span style=background:#87BEEB>created</span>, it would be displayed in <span style=background:#87BEEB>BLUE</span>. If it is <span style=background:#FF0000>yet to be created</span>, it would be displayed in <span style=background:#FF0000>RED</span>.
* On the '''English Wikipedia''' column, the articles have been created already, and are displayed in blue instead of red. To create an article in the Tyap column, click on it and then on the pen tool '''🖊️'''.
* Please study [https://en.m.wikipedia.org/wiki/Help:Your_first_article this (please click here)] before writing your first article on the English Wikipedia.
* Please replace "'''TITLE'''" with the name of the article you wish to create and replace the "'''not assigned'''" with four tildes <code>'''<nowiki>~~~~</nowiki>'''</code>.
{| class="wikitable"
|-
! English Wikipedia !! Tyap Incubator!! Sign
|-
| [[:w:en:Belt (clothing)|Belt]] || [[A̱zwuan dyang]] || ''[[A̱tyunta̱m:Friday musa|Friday musa]] ([[A̱lyiat a̱tyunta̱áím:Friday musa|talk]]) 12:45, 23 January 2022 (UTC)''
|-
| [[:w:en:Mortar and pestle|Mortar and pestle]] || [[Dudung ma̱ng kpa]] || ''[[A̱tyunta̱m:Zbobai|Zbobai]] ([[A̱lyiat a̱tyunta̱áím:Zbobai|talk]]) 15:12, 22 January 2022 (UTC)''
|-
| [[:w:en:Leaf|Leaf]] || [[Kikyo]] || ''[[A̱tyunta̱m:Aluwong|Aluwong]] ([[A̱lyiat a̱tyunta̱áím:Aluwong|talk]]) 12:49, 22 January 2022 (UTC)''
|-
| [[:w:en:Pottery|Pottery]] || [[Nta̱m vap]] || ''[[A̱tyunta̱m:Friday musa|Friday musa]] ([[A̱lyiat a̱tyunta̱áím:Friday musa|talk]]) 15:05, 23 January 2022 (UTC)''
|-
| [[:w:en:Shovel|Shovel]] || [[Shovet]] ||[[A̱tyunta̱m:Steve Kally|Steve Kally]] ([[A̱lyiat a̱tyunta̱áím:Steve Kally|talk]]) 12:11, 26 January 2022 (UTC)
|-
| [[:w:en:Tree|Tree]] || [[A̱kwon]] || ''[[A̱tyunta̱m:Friday musa|Friday musa]] ([[A̱lyiat a̱tyunta̱áím:Friday musa|talk]]) 12:50, 22 January 2022 (UTC)''
|-
| [[:w:en:Sand|Sand]] || [[A̱ji̱jak]] || ''[[A̱tyunta̱m:Basham Barnabas|Basham Barnabas]] ([[A̱lyiat a̱tyunta̱áím:Basham Barnabas|talk]]) 12:56, 22 January 2022 (UTC)''
|-
| [[:w:en:Desert|Desert]] || [[Tswa a̱ji̱jak]] || ''[[A̱tyunta̱m:Kambai Akau|Kambai Akau]] ([[A̱lyiat a̱tyunta̱áím:Kambai Akau|talk]]) 13:48, 22 January 2022 (UTC)''
|-
| [[:w:en:Wind|Wind]] || [[Wun]] || ''[[A̱tyunta̱m:Farilla|Farilla]] ([[A̱lyiat a̱tyunta̱áím:Farilla|talk]]) 14:00, 22 January 2022 (UTC)''
|-
| [[:w:en:Bean|Bean]] || [[Ji̱njok]] ||[[A̱tyunta̱m:Steve Kally|Steve Kally]] ([[A̱lyiat a̱tyunta̱áím:Steve Kally|talk]]) 15:01, 22 January 2022 (UTC)
|-
| [[:w:en:Locust bean|Locust bean]] || [[A̱buk]] || ''[[A̱tyunta̱m:Aluwong|Aluwong]] ([[A̱lyiat a̱tyunta̱áím:Aluwong|talk]]) 15:42, 22 January 2022 (UTC)''
|-
| [[:w:en:Yam (vegetable)|Yam]] || [[A̱cyi]] ||[[A̱tyunta̱m:Kuyet04|Kuyet04]] ([[A̱lyiat a̱tyunta̱áím:Kuyet04|talk]]) 12:59, 22 January 2022 (UTC)
|-
| [[:w:en:Maize|Maize]] || [[Swakpat]] || ''[[A̱tyunta̱m:Kuyet04|Kuyet04]] ([[A̱lyiat a̱tyunta̱áím:Kuyet04|talk]]) 15:02, 22 January 2022 (UTC)''
|-
| [[:w:en:Millet|Millet]] || [[Zuk]] || ''[[A̱tyunta̱m:Didam Bamai|Didam Bamai]] ([[A̱lyiat a̱tyunta̱áím:Didam Bamai|talk]]) 13:08, 22 January 2022 (UTC)''
|-
| [[:w:en:Sorghum|Sorghum]] || [[Swaat]] || ''[[A̱tyunta̱m:Zbobai|Zbobai]] ([[A̱lyiat a̱tyunta̱áím:Zbobai|talk]]) 18:01, 22 January 2022 (UTC)''
|-
| [[:w:en:Sweet potato|Sweet potato]] || [[A̱nya̱nyiat a̱da̱ngka̱li]] || ''[[A̱tyunta̱m:Friday musa|Friday musa]] ([[A̱lyiat a̱tyunta̱áím:Friday musa|talk]]) 13:30, 23 January 2022 (UTC)''
|-
| [[:w:en:Irish potato|Irish potato]] || [[A̱da̱ngka̱li A̱shong]] || ''[[A̱tyunta̱m:Friday musa|Friday musa]] ([[A̱lyiat a̱tyunta̱áím:Friday musa|talk]]) 16:05, 23 January 2022 (UTC)''
|-
| [[:w:en:Beetle|Beetle]] || [[A̱mumu]] || ''[[A̱tyunta̱m:Zbobai|Zbobai]] ([[A̱lyiat a̱tyunta̱áím:Zbobai|talk]]) 18:34, 22 January 2022 (UTC)''
|-
| [[:w:en:Ant|Ant]] || [[A̱ga̱swan]] ||[[A̱tyunta̱m:Steve Kally|Steve Kally]] ([[A̱lyiat a̱tyunta̱áím:Steve Kally|talk]]) 15:22, 22 January 2022 (UTC)
|-
| [[:w:en:Termite|Termite]] || [[Ci̱ncai]] || ''[[A̱tyunta̱m:Aluwong|Aluwong]] ([[A̱lyiat a̱tyunta̱áím:Aluwong|talk]]) 12:40, 23 January 2022 (UTC)''
|-
| [[:w:en:Weevil|Weevil]] || [[Zu]] || ''[[A̱tyunta̱m:Basham Barnabas|Basham Barnabas]] ([[A̱lyiat a̱tyunta̱áím:Basham Barnabas|talk]]) 14:54, 22 January 2022 (UTC)''
|-
| [[:w:en:Rice|Rice]] || [[Cyia̱ga̱vang]] || ''[[A̱tyunta̱m:Farilla|Farilla]] ([[A̱lyiat a̱tyunta̱áím:Farilla|talk]]) 14:40, 23 January 2022 (UTC)''
|-
| [[:w:en:Onion|Onion]] || [[A̱gurma]] || ''[[A̱tyunta̱m:Kuyet04|Kuyet04]] ([[A̱lyiat a̱tyunta̱áím:Kuyet04|talk]]) 14:10, 22 January 2022 (UTC)''
|-
| [[:w:en:Piperaceae|Pepper]] || [[Shita]] || ''[[A̱tyunta̱m:Zbobai|Zbobai]] ([[A̱lyiat a̱tyunta̱áím:Zbobai|talk]]) 18:58, 22 January 2022 (UTC)''
|-
| [[:w:en:Cap|Cap]] || [[Bung]] || ''[[A̱tyunta̱m:Dorothy Habila|Dorothy Habila]] ([[A̱lyiat a̱tyunta̱áím:Dorothy Habila|talk]]) 14:37, 22 January 2022 (UTC)''
|-
| [[:w:en:Garlic|Garlic]] || [[A̱gurma a̱nfwuong]] || ''[[A̱tyunta̱m:Kambai Akau|Kambai Akau]] ([[A̱lyiat a̱tyunta̱áím:Kambai Akau|talk]]) 20:25, 5 February 2022 (UTC)''
|-
| [[:w:en:Salt|Salt]] || [[Nfak]] || ''[[A̱tyunta̱m:Didam Bamai|Didam Bamai]] ([[A̱lyiat a̱tyunta̱áím:Didam Bamai|talk]]) 13:08, 22 January 2022 (UTC)''
|-
| [[:w:en:Hat|Hat]] || [[A̱ka̱ta]] || ''[[A̱tyunta̱m:Farilla|Farilla]] ([[A̱lyiat a̱tyunta̱áím:Farilla|talk]]) 13:26, 22 January 2022 (UTC)''
|-
| [[:w:en:Goat|Goat]] || [[Zon]] ||[[A̱tyunta̱m:Dorcasndi|Dorcasndi]] ([[A̱lyiat a̱tyunta̱áím:Dorcasndi|talk]]) 13:21, 22 January 2022 (UTC)
|-
| [[:w:en:Sheep|Sheep]] || [[Zonseap]] || ''[[A̱tyunta̱m:Zbobai|Zbobai]] ([[A̱lyiat a̱tyunta̱áím:Zbobai|talk]]) 20:03, 22 January 2022 (UTC)''
|-
| [[:w:en:Cattle|Cattle]] || [[Nyak]] || ''[[A̱tyunta̱m:Valtino44|Valtino44]] ([[A̱lyiat a̱tyunta̱áím:Valtino44|talk]]) 15:35, 22 January 2022 (UTC)''
|-
| [[:w:en:Pig|Pig]] || [[A̱kusuru]] || ''[[A̱tyunta̱m:Bello Lydia|Bello Lydia]] ([[A̱lyiat a̱tyunta̱áím:Bello Lydia|talk]]) 13:04, 22 January 2022 (UTC)''
|-
| [[:w:en:Meat|Meat]] || [[Nam]] || ''[[A̱tyunta̱m:Farilla|Farilla]] ([[A̱lyiat a̱tyunta̱áím:Farilla|talk]]) 12:55, 22 January 2022 (UTC)''
|-
| [[:w:en:Animal|Animal]] || [[Nyam]] || ''[[A̱tyunta̱m:Farilla|Farilla]] ([[A̱lyiat a̱tyunta̱áím:Farilla|talk]]) 15:09, 22 January 2022 (UTC)''
|-
| [[:w:en:Plant|Plant]] || [[A̱tyin a̱ga̱fi̱p]] || ''[[A̱tyunta̱m:Aluwong|Aluwong]] ([[A̱lyiat a̱tyunta̱áím:Aluwong|talk]]) 14:22, 22 January 2022 (UTC)''
|-
| [[:w:en:Root|Root]] || [[A̱nan]] || ''[[A̱tyunta̱m:Basham Barnabas|Basham Barnabas]] ([[A̱lyiat a̱tyunta̱áím:Basham Barnabas|talk]]) 12:48, 23 January 2022 (UTC)''
|-
| [[:w:en:Fruit|Fruit]] || [[Sum a̱kwon]] || ''[[A̱tyunta̱m:Bello Lydia|Bello Lydia]] ([[A̱lyiat a̱tyunta̱áím:Bello Lydia|talk]]) 15:22, 22 January 2022 (UTC)''
|-
| [[:w:en:Flower|Flower]] || [[Kywat]] || ''[[A̱tyunta̱m:Kambai Akau|Kambai Akau]] ([[A̱lyiat a̱tyunta̱áím:Kambai Akau|talk]]) 06:04, 1 February 2022 (UTC)''
|-
| [[:w:en:Shirt|Shirt]] || [[A̱toot vam]] || ''[[A̱tyunta̱m:Basham Barnabas|Basham Barnabas]] ([[A̱lyiat a̱tyunta̱áím:Basham Barnabas|talk]]) 13:53, 22 January 2022 (UTC)''
|-
| [[:w:en:Bed|Bed]] || [[A̱gbaat]] ||''[[A̱tyunta̱m:Dorcasndi|Dorcasndi]] ([[A̱lyiat a̱tyunta̱áím:Dorcasndi|talk]]) 13:58, 22 January 2022 (UTC)''
|-
| [[:w:en:Pillow|Pillow]] || [[Byia̱k (a̱pyia̱)]] || ''[[A̱tyunta̱m:Zbobai|Zbobai]] ([[A̱lyiat a̱tyunta̱áím:Zbobai|talk]]) 19:29, 22 January 2022 (UTC)''
|-
| [[:w:en:Bedding|Bedding]] || [[A̱toot a̱gbaat]] || ''[[A̱tyunta̱m:Dorcasndi|Dorcasndi]] ([[A̱lyiat a̱tyunta̱áím:Dorcasndi|talk]]) 15:12, 22 January 2022 (UTC)''
|-
| [[:w:en:Clay|Clay]] || [[Lyem]] || ''[[A̱tyunta̱m:Steve Kally|Steve Kally]] ([[A̱lyiat a̱tyunta̱áím:Steve Kally|talk]]) 12:57, 26 January 2022 (UTC)''
|-
| [[:w:en:Adobe|Adobe]] || [[Vap]] || ''[[A̱tyunta̱m:Kambai Akau|Kambai Akau]] ([[A̱lyiat a̱tyunta̱áím:Kambai Akau|talk]]) 18:13, 1 February 2022 (UTC)''
|-
| [[:w:en:Dog|Dog]] || [[A̱bwu]] || ''[[A̱tyunta̱m:Aluwong|Aluwong]] ([[A̱lyiat a̱tyunta̱áím:Aluwong|talk]]) 13:04, 23 January 2022 (UTC)''
|-
| [[:w:en:Fowl|Fowl]] || [[Nywan]] || ''[[A̱tyunta̱m:Aluwong|Aluwong]] ([[A̱lyiat a̱tyunta̱áím:Aluwong|talk]]) 12:33, 24 January 2022 (UTC)''
|-
| [[:w:en:Cat|Cat]] || [[A̱kwi]] ||[[A̱tyunta̱m:Valtino44|Valtino44]] ([[A̱lyiat a̱tyunta̱áím:Valtino44|talk]]) 13:22, 26 January 2022 (UTC)
|-
| [[:w:en:Bank|Bank]] || [[A̱lisaaikurum]] ||[[A̱tyunta̱m:Basham Barnabas|Basham Barnabas]] ([[A̱lyiat a̱tyunta̱áím:Basham Barnabas|talk]]) 13:39, 23 January 2022 (UTC)
|-
| [[:w:en:Linguistics|Linguistics]] || [[Lyenlilyem]] || ''[[A̱tyunta̱m:Valtino44|Valtino44]] ([[A̱lyiat a̱tyunta̱áím:Valtino44|talk]]) 14:26, 23 January 2022 (UTC)''
|-
| [[:w:en:King|King]] || [[A̱gwam]] || ''[[A̱tyunta̱m:Farilla|Farilla]] ([[A̱lyiat a̱tyunta̱áím:Farilla|talk]]) 12:50, 23 January 2022 (UTC)''
|-
| [[:w:en:Flyover|Flyover (overpass)]] || [[A̱byia̱k tazwa]] ||[[A̱tyunta̱m:Steve Kally|Steve Kally]] ([[A̱lyiat a̱tyunta̱áím:Steve Kally|talk]]) 08:32, 25 January 2022 (UTC)
|-
| [[:w:en:Bridge|Bridge]] || [[A̱byia̱k]] || ''[[A̱tyunta̱m:Genesis shan|Genesis shan]] ([[A̱lyiat a̱tyunta̱áím:Genesis shan|talk]]) 14:25, 23 January 2022 (UTC)''
|-
| [[:w:en:Chimpanzee|Chimpanzee]] || [[Ja̱fi̱k]] || ''[[A̱tyunta̱m:Friday musa|Friday musa]] ([[A̱lyiat a̱tyunta̱áím:Friday musa|talk]]) 18:17, 26 January 2022 (UTC)''
|-
| [[:w:en:Church|Church]] || [[Cot]] || ''[[A̱tyunta̱m:Valtino44|Valtino44]] ([[A̱lyiat a̱tyunta̱áím:Valtino44|talk]]) 13:02, 23 January 2022 (UTC)''
|-
| [[:w:en:Mosque|Mosque]] || [[A̱vwuokpaa̱pyia̱]] || ''[[A̱tyunta̱m:Valtino44|Valtino44]] ([[A̱lyiat a̱tyunta̱áím:Valtino44|talk]]) 13:44, 23 January 2022 (UTC)''
|-
| [[:w:en:Haircut|Haircut]] || [[Kwat]] ||[[A̱tyunta̱m:Steve Kally|Steve Kally]] ([[A̱lyiat a̱tyunta̱áím:Steve Kally|talk]]) 06:33, 23 January 2022 (UTC)
|-
| [[:w:en:Quail|Quail]] || [[Ji̱p]] || ''[[A̱tyunta̱m:Genesis shan|Genesis shan]] ([[A̱lyiat a̱tyunta̱áím:Genesis shan|talk]]) 15:00, 23 January 2022 (UTC)''
|-
| [[:w:en:Guinea fowl|Guinea fowl]] || [[Jhyen]] || ''[[A̱tyunta̱m:Nrance|Nrance]] ([[A̱lyiat a̱tyunta̱áím:Nrance|talk]]) 12:47, 30 January 2022 (UTC)''
|-
| [[:w:en:Horse|Horse]] || [[Tsaai]] || ''[[A̱tyunta̱m:Aluwong|Aluwong]] ([[A̱lyiat a̱tyunta̱áím:Aluwong|talk]]) 15:18, 23 January 2022 (UTC)''
|-
| [[:w:en:Donkey|Donkey]] || [[A̱ka̱za̱nki]] || ''[[A̱tyunta̱m:Aluwong|Aluwong]] ([[A̱lyiat a̱tyunta̱áím:Aluwong|talk]]) 13:23, 23 January 2022 (UTC)''
|-
| [[:w:en:Mat|Mat]] || [[A̱kpang]] ||[[A̱tyunta̱m:Steve Kally|Steve Kally]] ([[A̱lyiat a̱tyunta̱áím:Steve Kally|talk]]) 06:55, 23 January 2022 (UTC)
|-
| [[:w:en:Counting|Counting]] || [[Fang (nkyang)]] || ''[[A̱tyunta̱m:Dorothy Habila|Dorothy Habila]] ([[A̱lyiat a̱tyunta̱áím:Dorothy Habila|talk]]) 14:50, 23 January 2022 (UTC)''
|-
| [[:w:en:Writing|Writing]] || [[ Lyuut]] ||[[A̱tyunta̱m:Farilla|Farilla]] ([[A̱lyiat a̱tyunta̱áím:Valtino44|talk]]) 13:38, 23 January 2022 (UTC)
|-
| [[:w:en:Mountain|Mountain]] || [[A̱fan]] || ''[[A̱tyunta̱m:Don Amos|Don Amos]] ([[A̱lyiat a̱tyunta̱áím:Don Amos|talk]]) 13:09, 29 January 2022 (UTC)''
|-
| [[:w:en:Child|Child]] || [[Nggwon]] || ''[[A̱tyunta̱m:Kuyet04|Kuyet04]] ([[A̱lyiat a̱tyunta̱áím:Kuyet04|talk]]) 12:57, 23 January 2022 (UTC)''
|-
| [[:w:en:Wall|Wall]] || [[Bat]]|| ''[[A̱tyunta̱m:Aluwong|Aluwong]] ([[A̱lyiat a̱tyunta̱áím:Aluwong|talk]]) 12:43, 24 January 2022 (UTC)''
|-
| [[:w:en:Bee|Bee]] || [[Shwai]] || ''[[A̱tyunta̱m:Aluwong|Aluwong]] ([[A̱lyiat a̱tyunta̱áím:Aluwong|talk]]) 14:51, 23 January 2022 (UTC)''
|-
| [[:w:en:Honey|Honey]] || [[Tong]] || ''[[A̱tyunta̱m:Aluwong|Aluwong]] ([[A̱lyiat a̱tyunta̱áím:Aluwong|talk]]) 14:26, 23 January 2022 (UTC)''
|-
| [[:w:en:Compound|Compound]] || [[Kyai a̱li]] || [[A̱tyunta̱m:Basham Barnabas|Basham Barnabas]] ([[A̱lyiat a̱tyunta̱áím:Basham Barnabas|talk]]) 10:12, 24 January 2022 (UTC)
|-
| [[:w:en:Corpse|Corpse]] || [[Kwom]] || ''[[A̱tyunta̱m:Farilla|Farilla]] ([[A̱lyiat a̱tyunta̱áím:Farilla|talk]]) 14:05, 23 January 2022 (UTC)''
|-
| [[:w:en:River|River]] || [[A̱ghyui]] ||[[A̱tyunta̱m:Steve Kally|Steve Kally]] ([[A̱lyiat a̱tyunta̱áím:Steve Kally|talk]]) 22:58, 23 January 2022 (UTC)
|-
| [[:w:en:Bag|Bag]] || [[Gumaat]] || ''[[A̱tyunta̱m:Kuyet04|Kuyet04]] ([[A̱lyiat a̱tyunta̱áím:Kuyet04|talk]]) 13:28, 23 January 2022 (UTC)''
|-
| [[:w:en:Bag|Travelling bag]] || [[Gumaat naat a̱cyet]] ||
[[A̱tyunta̱m:Basham Barnabas|Basham Barnabas]] ([[A̱lyiat a̱tyunta̱áím:Basham Barnabas|talk]]) 10:24, 24 January 2022 (UTC)
|-
| [[:w:en:Season|Season]] || [[A̱cak]] || ''[[A̱tyunta̱m:Bello Lydia|Bello Lydia]] ([[A̱lyiat a̱tyunta̱áím:Bello Lydia|talk]]) 14:39, 23 January 2022 (UTC)''
|-
| [[:w:en:Time|Time]] || [[Jen]] || ''[[A̱tyunta̱m:Valtino44|Valtino44]] ([[A̱lyiat a̱tyunta̱áím:Valtino44|talk]]) 15:56, 23 January 2022 (UTC)''
|-
| [[:w:en:Cloak|Cloak]] || [[A̱ta̱swak]] || ''[[A̱tyunta̱m:Bello Lydia|Bello Lydia]] ([[A̱lyiat a̱tyunta̱áím:Bello Lydia|talk]]) 15:06, 23 January 2022 (UTC)''
|-
| [[:w:en:Okro|Okro]] || [[Kusat]] || ''[[A̱tyunta̱m:Aluwong|Aluwong]] ([[A̱lyiat a̱tyunta̱áím:Aluwong|talk]]) 15:38, 23 January 2022 (UTC)''
|-
| [[:w:en:Fire|Fire]] || [[Long]] || ''[[A̱tyunta̱m:Grace kuvon|Grace kuvon]] ([[A̱lyiat a̱tyunta̱áím:Grace kuvon|talk]]) 15:00, 29 January 2022 (UTC)''
|-
| [[:w:en:Handbag|Handbag]] || [[A̱mpwot]] || ''[[A̱tyunta̱m:Dorcasndi|Dorcasndi]] ([[A̱lyiat a̱tyunta̱áím:Dorcasndi|talk]]) 14:22, 23 January 2022 (UTC)''
|-
| [[:w:en:Way|Way]] || [[A̱ta̱lyen]] ||[[A̱tyunta̱m:Valtino44|Valtino44]] ([[A̱lyiat a̱tyunta̱áím:Valtino44|talk]]) 13:39, 26 January 2022 (UTC)
|-
| [[:w:en:Road|Road]] || [[Vak]] || ''[[A̱tyunta̱m:Basham Barnabas|Basham Barnabas]] ([[A̱lyiat a̱tyunta̱áím:Basham Barnabas|talk]]) 14:09, 23 January 2022 (UTC)''
|-
| [[:w:en:Dust|Dust]] || [[Mbwuk]] || ''[[A̱tyunta̱m:Bello Lydia|Bello Lydia]] ([[A̱lyiat a̱tyunta̱áím:Bello Lydia|talk]]) 16:02, 23 January 2022 (UTC)''
|-
| [[:w:en:Knife|Knife]] || [[A̱baai]] || ''[[A̱tyunta̱m:Kuyet04|Kuyet04]] ([[A̱lyiat a̱tyunta̱áím:Kuyet04|talk]]) 14:05, 23 January 2022 (UTC)''
|-
| [[:w:en:Bow and arrow|Bow]] || [[A̱ta]] || ''[[A̱tyunta̱m:Zbobai|Zbobai]] ([[A̱lyiat a̱tyunta̱áím:Zbobai|talk]]) 13:16, 23 January 2022 (UTC)''
|-
| [[:w:en:Arrow|Arrow]] || [[Hyet]] ||[[A̱tyunta̱m:Steve Kally|Steve Kally]] ([[A̱lyiat a̱tyunta̱áím:Steve Kally|talk]]) 11:59, 25 January 2022 (UTC)
|-
| [[:w:en:Bedroom|Bedroom]] || [[A̱swang]] ||[[A̱tyunta̱m:Steve Kally|Steve Kally]] ([[A̱lyiat a̱tyunta̱áím:Steve Kally|talk]]) 13:05, 23 January 2022 (UTC)
|-
| [[:w:en:Sitting Room|Sitting Room]] || [[A̱byin a̱khwup]] ||[[A̱tyunta̱m:Basham Barnabas|Basham Barnabas]] ([[A̱lyiat a̱tyunta̱áím:Basham Barnabas|talk]]) 13:48, 23 January 2022 (UTC)
|-
| [[:w:en:Tamarind|Tamarind]] || [[A̱ka̱laya]] ||[[A̱tyunta̱m:Steve Kally|Steve Kally]] ([[A̱lyiat a̱tyunta̱áím:Steve Kally|talk]]) 14:50, 25 January 2022 (UTC)
|-
| [[:w:en:Elephant|Elephant]] || [[Zwuom]] || ''[[A̱tyunta̱m:Kambai Akau|Kambai Akau]] ([[A̱lyiat a̱tyunta̱áím:Kambai Akau|talk]]) 12:53, 29 January 2022 (UTC)''
|-
| [[:w:en:Song|Song]] || [[A̱bwom]] || ''[[A̱tyunta̱m:Samuel Kaboshiah|Samuel Kaboshiah]] ([[A̱lyiat a̱tyunta̱áím:Samuel Kaboshiah|talk]]) 14:45, 30 January 2022 (UTC)''
|-
| [[:w:en:Music|Music]] || [[A̱bwomtsot]] || ''[[A̱tyunta̱m:Don Amos|Don Amos]] ([[A̱lyiat a̱tyunta̱áím:Don Amos|talk]]) 13:29, 30 January 2022 (UTC)''
|-
| [[:w:en:Hill|Hill]] || [[Tsok]] || ''[[A̱tyunta̱m:Grace kuvon|Grace kuvon]] ([[A̱lyiat a̱tyunta̱áím:Grace kuvon|talk]]) 13:17, 30 January 2022 (UTC)''
|-
|[[:w:en:Honeycomb|Honeycomb]] || [[A̱waktong]] || ''[[A̱tyunta̱m:Josh p sidi|Josh p sidi]] ([[A̱lyiat a̱tyunta̱áím:Josh p sidi|talk]]) 14:01, 29 January 2022 (UTC)''
|-
| [[:w:en:Zebra|Zebra]] || [[Tsaai a̱yit]] || ''[[A̱tyunta̱m:Josh p sidi|Josh p sidi]] ([[A̱lyiat a̱tyunta̱áím:Josh p sidi|talk]]) 07:58, 5 February 2022 (UTC)''
|-
| [[:w:en:Love|Love]] || [[Cat]] || ''[[A̱tyunta̱m:PacemDee|PacemDee]] ([[A̱lyiat a̱tyunta̱áím:PacemDee|talk]]) 13:30, 29 January 2022 (UTC)''
|-
| [[:w:en:Key (lock)|Key (lock)]] || [[Tswa yaya]] || ''[[A̱tyunta̱m:Don Amos|Don Amos]] ([[A̱lyiat a̱tyunta̱áím:Don Amos|talk]]) 14:11, 29 January 2022 (UTC)''
|-
| [[:w:en:Computer keyboard|Key (button)]] || [[Ga̱tsot]] || ''[[A̱tyunta̱m:Don Amos|Don Amos]] ([[A̱lyiat a̱tyunta̱áím:Don Amos|talk]]) 14:47, 29 January 2022 (UTC)''
|-
| [[:w:en:Key (music)|Key (music)]] || [[A̱nwuat (a̱bwomtsot)]] || ''[[A̱tyunta̱m:Don Amos|Don Amos]] ([[A̱lyiat a̱tyunta̱áím:Don Amos|talk]]) 14:49, 29 January 2022 (UTC)''
|-
| [[:w:en:Valley|Valley]] || [[A̱niak]] || ''[[A̱tyunta̱m:Don Amos|Don Amos]] ([[A̱lyiat a̱tyunta̱áím:Don Amos|talk]]) 13:19, 30 January 2022 (UTC)''
|-
| [[:w:en:Mountain|Mountain]] || [[A̱fan]] || ''[[A̱tyunta̱m:Don Amos|Don Amos]] ([[A̱lyiat a̱tyunta̱áím:Don Amos|talk]]) 12:52, 29 January 2022 (UTC)''
|-
| [[:w:en:Gospel|Gospel]] || [[A̱sham Nkhang]] || ''[[A̱tyunta̱m:Nrance|Nrance]] ([[A̱lyiat a̱tyunta̱áím:Nrance|talk]]) 13:35, 29 January 2022 (UTC)''
|-
| [[:w:en:Rain|Rain]] || [[Za]] || ''[[A̱tyunta̱m:Samuel Kaboshiah|Samuel Kaboshiah]] ([[A̱lyiat a̱tyunta̱áím:Samuel Kaboshiah|talk]]) 14:56, 29 January 2022 (UTC)''
|-
| [[:w:en:Sun|Sun]] || [[Mam]] || ''[[A̱tyunta̱m:Josh p sidi|Josh p sidi]] ([[A̱lyiat a̱tyunta̱áím:Josh p sidi|talk]]) 13:09, 29 January 2022 (UTC)''
|-
| [[:w:en:Moon|Moon]] || [[Zwat]] || [[A̱tyunta̱m:Steve Kally|Steve Kally]] ([[A̱lyiat a̱tyunta̱áím:Steve Kally|talk]]) 06:23, 14 February 2022 (UTC)
|-
| [[:w:en:Star|Star]] || [[A̱ta̱ngwat]] || [[A̱tyunta̱m:Kutyia John|Kutyia John]] ([[A̱lyiat a̱tyunta̱áím:Kutyia John|talk]]) 14:57, 29 January 2022 (UTC)
|-
| [[:w:en:Faeces|Faeces]] || [[Byii̱ng]] ||[[A̱tyunta̱m:Steve Kally|Steve Kally]] ([[A̱lyiat a̱tyunta̱áím:Steve Kally|talk]]) 09:10, 2 February 2022 (UTC)
|-
| [[:w:en:Urine|Urine]] || [[A̱tyiak]] ||[[A̱tyunta̱m:Steve Kally|Steve Kally]] ([[A̱lyiat a̱tyunta̱áím:Steve Kally|talk]]) 09:08, 2 February 2022 (UTC)
|-
| [[:w:en:Business|Business]] || [[A̱bwuang]] || ''[[A̱tyunta̱m:Josh p sidi|Josh p sidi]] ([[A̱lyiat a̱tyunta̱áím:Josh p sidi|talk]]) 19:31, 29 January 2022 (UTC)''
|-
| [[:w:en:Marketplace|Market]] || [[Kaswuo]] || ''[[A̱tyunta̱m:Samuel Kaboshiah|Samuel Kaboshiah]] ([[A̱lyiat a̱tyunta̱áím:Samuel Kaboshiah|talk]]) 13:54, 29 January 2022 (UTC)''
|-
| [[:w:en:Firewood|Firewood]] || [[Nkwon]] || ''[[A̱tyunta̱m:Dorcasndi|Dorcasndi]] ([[A̱lyiat a̱tyunta̱áím:Dorcasndi|talk]]) 14:05, 29 January 2022 (UTC)''
|-
| [[:w:en:Ash|Ash]] || [[Ntong]] || ''[[A̱tyunta̱m:Josh p sidi|Josh p sidi]] ([[A̱lyiat a̱tyunta̱áím:Josh p sidi|talk]]) 15:06, 29 January 2022 (UTC)''
|-
| [[:w:en:Smile|Smile]] || [[Shyuak-mai]] ||[[A̱tyunta̱m:Steve Kally|Steve Kally]] ([[A̱lyiat a̱tyunta̱áím:Steve Kally|talk]]) 23:37, 3 February 2022 (UTC)
|-
| [[:w:en:Crying|Crying]] || [[A̱nak]] || ''[[A̱tyunta̱m:Nrance|Nrance]] ([[A̱lyiat a̱tyunta̱áím:Nrance|talk]]) 11:33, 3 February 2022 (UTC)''
|-
| [[:w:en:Leg|Leg]] || [[Tak]] || ''[[A̱tyunta̱m:Steve Kally|Steve Kally]] ([[A̱lyiat a̱tyunta̱áím:Steve Kally|talk]]) 00:01, 2 February 2022 (UTC)''
|-
| [[:w:en:Thigh|Thigh]] || [[A̱bwan ntak]] ||[[A̱tyunta̱m:Steve Kally|Steve Kally]] ([[A̱lyiat a̱tyunta̱áím:Steve Kally|talk]]) 12:25, 2 February 2022 (UTC)
|-
| [[:w:en:Thumb|Thumb]] || [[A̱turugbak mbwak]] || ''[[A̱tyunta̱m:Nrance|Nrance]] ([[A̱lyiat a̱tyunta̱áím:Nrance|talk]]) 19:44, 29 January 2022 (UTC)''
|-
|[[:w:en:Fingernail|Fingernail]] || [[A̱ga̱fwuo mbwak]] || ''[[A̱tyunta̱m:Don Amos|Don Amos]] ([[A̱lyiat a̱tyunta̱áím:Don Amos|talk]]) 13:34, 29 January 2022 (UTC)''
|-
|[[:w:en:Fingerprint|Fingerprint]] || [[Nia̱ ga̱swuong mbwak]] || ''[[A̱tyunta̱m:Nrance|Nrance]] ([[A̱lyiat a̱tyunta̱áím:Nrance|talk]]) 19:29, 29 January 2022 (UTC)''
|-
| [[:w:en:Shin|Shin]] || [[Shai ntak]] ||[[A̱tyunta̱m:Steve Kally|Steve Kally]] ([[A̱lyiat a̱tyunta̱áím:Steve Kally|talk]]) 07:27, 3 February 2022 (UTC)
|-
| [[:w:en:Chest|Chest]] || [[Fi̱ri̱ng]] || ''[[A̱tyunta̱m:Grace kuvon|Grace kuvon]] ([[A̱lyiat a̱tyunta̱áím:Grace kuvon|talk]]) 12:49, 29 January 2022 (UTC)''
|-
| [[:w:en:Stomach|Stomach]] || [[A̱fa]] || ''[[A̱tyunta̱m:JDauke|JDauke]] ([[A̱lyiat a̱tyunta̱áím:JDauke|talk]]) 12:53, 29 January 2022 (UTC)''
|-
| [[:w:en:Finger|Finger]] || [[Ga̱swuong mbwak]] || ''[[A̱tyunta̱m:Steve Kally|Steve Kally]] ([[A̱lyiat a̱tyunta̱áím:Steve Kally|talk]]) 12:07, 1 February 2022 (UTC)''
|-
| [[:w:en:Forehead|Forehead]] || [[A̱kpeang]] || ''[[A̱tyunta̱m:Nrance|Nrance]] ([[A̱lyiat a̱tyunta̱áím:Nrance|talk]]) 14:33, 29 January 2022 (UTC)''
|-
| [[:w:en:Tooth|Tooth]] || [[A̱nyung]] || ''[[A̱tyunta̱m:Steve Kally|Steve Kally]] ([[A̱lyiat a̱tyunta̱áím:Steve Kally|talk]]) 18:55, 1 February 2022 (UTC)''
|-
| [[:w:en:Breast|Breast]] || [[A̱baan (kap vam)]] || ''[[A̱tyunta̱m:Nrance|Nrance]] ([[A̱lyiat a̱tyunta̱áím:Nrance|talk]]) 10:23, 3 February 2022 (UTC)''
|-
| [[:w:en:Knee|Knee]] || [[A̱khwut]] ||[[A̱tyunta̱m:Steve Kally|Steve Kally]] ([[A̱lyiat a̱tyunta̱áím:Steve Kally|talk]]) 13:13, 29 January 2022 (UTC)
|-
| [[:w:en:Book|Book]] || [[Kwambwat]] || ''[[A̱tyunta̱m:Don Amos|Don Amos]] ([[A̱lyiat a̱tyunta̱áím:Don Amos|talk]]) 13:35, 30 January 2022 (UTC)''
|-
| [[:w:en:Table (furniture)|Table (furniture)]] || [[A̱tyii]] || ''[[A̱tyunta̱m:Don Amos|Don Amos]] ([[A̱lyiat a̱tyunta̱áím:Don Amos|talk]]) 13:45, 30 January 2022 (UTC)''
|-
| [[:w:en:Father|Father]] || [[A̱tyia̱]] || ''[[A̱tyunta̱m:Samuel Kaboshiah|Samuel Kaboshiah]] ([[A̱lyiat a̱tyunta̱áím:Samuel Kaboshiah|talk]]) 12:50, 29 January 2022 (UTC)''
|-
| [[:w:en:Mother|Mother]] || [[A̱yang]] || ''[[A̱tyunta̱m:Nrance|Nrance]] ([[A̱lyiat a̱tyunta̱áím:Nrance|talk]]) 12:22, 29 January 2022 (UTC)''
|-
| [[:w:en:Parent|Parent]] || [[A̱nietmbyin]] || ''[[A̱tyunta̱m:Dorcasndi|Dorcasndi]] ([[A̱lyiat a̱tyunta̱áím:Dorcasndi|talk]]) 12:35, 29 January 2022 (UTC)''
|-
| [[:w:en:Tablet (pharmacy)|Tablet (pharmacy)]] || [[Tswa kan]] || ''[[A̱tyunta̱m:Awan Ben|Awan Ben]] ([[A̱lyiat a̱tyunta̱áím:Awan Ben|talk]]) 14:37, 29 January 2022 (UTC)''
|-
| [[:w:en:Snake|Snake]] || [[Zwak]] ||[[A̱tyunta̱m:Steve Kally|Steve Kally]] ([[A̱lyiat a̱tyunta̱áím:Steve Kally|talk]]) 23:10, 1 February 2022 (UTC)
|-
| [[:w:en:Sowing|Sowing]] || [[Cyui (khap)]] || ''[[A̱tyunta̱m:Samuel Kaboshiah|Samuel Kaboshiah]] ([[A̱lyiat a̱tyunta̱áím:Samuel Kaboshiah|talk]]) 14:25, 30 January 2022 (UTC)''
|-
| [[:w:en:Agriculture|Agriculture]] || [[Khap]] || ''[[A̱tyunta̱m:Grace kuvon|Grace kuvon]] ([[A̱lyiat a̱tyunta̱áím:Grace kuvon|talk]]) 15:28, 29 January 2022 (UTC)''
|-
| [[:w:en:Backyard|Backyard]] || [[A̱ma̱nta a̱li]] || ''[[A̱tyunta̱m:Dorcasndi|Dorcasndi]] ([[A̱lyiat a̱tyunta̱áím:Dorcasndi|talk]]) 15:45, 29 January 2022 (UTC)''
|-
| [[:w:en:Hunger|Hunger]] || [[Zong]] || '' [[A̱tyunta̱m:Josh p sidi|Josh p sidi]] ([[A̱lyiat a̱tyunta̱áím:Josh p sidi|talk]]) 22:02, 29 January 2022 (UTC)''
|-
| [[:w:en:Soup|Soup]] || [[Nyiung]] || ''[[A̱tyunta̱m:Grace kuvon|Grace kuvon]] ([[A̱lyiat a̱tyunta̱áím:Grace kuvon|talk]]) 14:12, 30 January 2022 (UTC)''
|-
| [[:w:en:Nostril|Nostril]] || [[Bwong zwua̱i]] || ''[[A̱tyunta̱m:Josh p sidi|Josh p sidi]] ([[A̱lyiat a̱tyunta̱áím:Josh p sidi|talk]]) 22:34, 4 February 2022 (UTC)''
|-
| [[:w:en:Quiver|Quiver]] || [[Tsuung (a̱mpwot)]] || ''[[A̱tyunta̱m:Nrance|Nrance]] ([[A̱lyiat a̱tyunta̱áím:Nrance|talk]]) 15:41, 29 January 2022 (UTC)''
|-
| [[:w:en:Grass|Grass]] || [[A̱kwop]] || ''[[A̱tyunta̱m:Josh p sidi|Josh p sidi]] ([[A̱lyiat a̱tyunta̱áím:Josh p sidi|talk]]) 22:07, 4 February 2022 (UTC)''
|-
| [[:w:en:Gravel|Gravel]] || [[A̱bada̱dei a̱fang]] || ''[[A̱tyunta̱m:Josh p sidi|Josh p sidi]] ([[A̱lyiat a̱tyunta̱áím:Josh p sidi|talk]]) 21:07, 29 January 2022 (UTC)''
|-
| [[:w:en:Bell|Bell]] || [[Li̱lak]] || ''[[A̱tyunta̱m:Josh p sidi|Josh p sidi]] ([[A̱lyiat a̱tyunta̱áím:Josh p sidi|talk]]) 21:33, 29 January 2022 (UTC)''
|-
| [[:w:en:Grave|Grave]] || [[A̱bi]] || ''[[A̱tyunta̱m:Josh p sidi|Josh p sidi]] ([[A̱lyiat a̱tyunta̱áím:Josh p sidi|talk]]) 20:30, 29 January 2022 (UTC)''
|-
| [[:w:en:Grey hair|Grey hair]] || [[Khaan]] ||[[A̱tyunta̱m:Steve Kally|Steve Kally]] ([[A̱lyiat a̱tyunta̱áím:Steve Kally|talk]]) 22:51, 1 February 2022 (UTC)
|-
| [[:w:en:Moustache|Moustache]] || [[Zwuma̱nu]] || ''[[A̱tyunta̱m:Nrance|Nrance]] ([[A̱lyiat a̱tyunta̱áím:Nrance|talk]]) 10:47, 5 February 2022 (UTC)''
|-
| [[:w:en:Eyeball|Eyeball]] || [[Tswa a̱li]] || ''[[A̱tyunta̱m:Samuel Kaboshiah|Samuel Kaboshiah]] ([[A̱lyiat a̱tyunta̱áím:Samuel Kaboshiah|talk]]) 14:14, 30 January 2022 (UTC)''
|-
| [[:w:en:Morning|Morning]] || [[A̱tsotson]] ||[[A̱tyunta̱m:Steve Kally|Steve Kally]] ([[A̱lyiat a̱tyunta̱áím:Steve Kally|talk]]) 09:04, 2 February 2022 (UTC)
|-
| [[:w:en:Early morning|Early morning]] || [[Shong a̱tson]] ||[[A̱tyunta̱m:Steve Kally|Steve Kally]] ([[A̱lyiat a̱tyunta̱áím:Steve Kally|talk]]) 09:01, 2 February 2022 (UTC)
|-
| [[:w:en:Afternoon|Afternoon]] || [[A̱ta̱mam]] ||[[A̱tyunta̱m:Steve Kally|Steve Kally]] ([[A̱lyiat a̱tyunta̱áím:Steve Kally|talk]]) 09:15, 2 February 2022 (UTC)
|-
| [[:w:en:Evening|Evening]] || [[Jenshyung (jen)]] ||[[A̱tyunta̱m:Steve Kally|Steve Kally]] ([[A̱lyiat a̱tyunta̱áím:Steve Kally|talk]]) 13:58, 2 February 2022 (UTC)
|-
| [[:w:en:Waist|Waist]] || [[Dyang]] || ''[[A̱tyunta̱m:Nrance|Nrance]] ([[A̱lyiat a̱tyunta̱áím:Nrance|talk]]) 09:25, 3 February 2022 (UTC)''
|-
| [[:w:en:Belch|Belch]] || [[Ghyek]] || ''[[A̱tyunta̱m:Josh p sidi|Josh p sidi]] ([[A̱lyiat a̱tyunta̱áím:Josh p sidi|talk]]) 23:28, 31 January 2022 (UTC)''
|-
| [[:w:en:Human voice|Human voice]] || [[A̱nwuat a̱tyubishyi]] || ''[[A̱tyunta̱m:Josh p sidi|Josh p sidi]] ([[A̱lyiat a̱tyunta̱áím:Josh p sidi|talk]]) 23:14, 5 February 2022 (UTC)''
|-
| [[:w:en:Grasshopper|Grasshopper]] || [[A̱ga̱u]] || ''[[A̱tyunta̱m:Josh p sidi|Josh p sidi]] ([[A̱lyiat a̱tyunta̱áím:Josh p sidi|talk]]) 00:01, 1 February 2022 (UTC)''
|-
| [[:w:en:Bed bug|Bed bug]] || [[Bi]] ||[[A̱tyunta̱m:Steve Kally|Steve Kally]] ([[A̱lyiat a̱tyunta̱áím:Steve Kally|talk]]) 22:07, 3 February 2022 (UTC)
|-
| [[:w:en:War|War]] || [[Zwang]] || ''[[A̱tyunta̱m:Nrance|Nrance]] ([[A̱lyiat a̱tyunta̱áím:Nrance|talk]]) 18:08, 30 January 2022 (UTC)''
|-
| [[:w:en:Hair|Hair]] || [[A̱tyin pyia̱]] ||[[A̱tyunta̱m:Steve Kally|Steve Kally]] ([[A̱lyiat a̱tyunta̱áím:Steve Kally|talk]]) 13:40, 30 January 2022 (UTC)
|-
| [[:w:en:Dove|Dove]] || [[A̱bwa]] || ''[[A̱tyunta̱m:Josh p sidi|Josh p sidi]] ([[A̱lyiat a̱tyunta̱áím:Josh p sidi|talk]]) 13:21, 30 January 2022 (UTC)''
|-
| [[:w:en:Wealth|Wealth]] || [[Zwa]] || ''[[A̱tyunta̱m:Josh p sidi|Josh p sidi]] ([[A̱lyiat a̱tyunta̱áím:Josh p sidi|talk]]) 01:34, 1 February 2022 (UTC)''
|-
| [[:w:en:Pawpaw|Pawpaw]] || [[A̱ka̱mbut]] ||[[A̱tyunta̱m:Steve Kally|Steve Kally]] ([[A̱lyiat a̱tyunta̱áím:Steve Kally|talk]]) 23:41, 1 February 2022 (UTC)
|-
| [[:w:en:Gun|Gun]] || [[A̱ta ndong]] || ''[[A̱tyunta̱m:Samuel Kaboshiah|Samuel Kaboshiah]] ([[A̱lyiat a̱tyunta̱áím:Samuel Kaboshiah|talk]]) 13:56, 30 January 2022 (UTC)''
|-
| [[:w:en:Death|Death]] || [[A̱khwu]] || ''[[A̱tyunta̱m:Nrance|Nrance]] ([[A̱lyiat a̱tyunta̱áím:Nrance|talk]]) 11:26, 3 February 2022 (UTC)''
|-
| [[:w:en:Climbing|Climbing]] || [[Ban]] || ''[[A̱tyunta̱m:Josh p sidi|Josh p sidi]] ([[A̱lyiat a̱tyunta̱áím:Josh p sidi|talk]]) 17:42, 6 February 2022 (UTC)''
|-
| [[:w:en:Bitter|Bitter]] || [[Gba̱za̱zai]] || ''[[A̱tyunta̱m:Josh p sidi|Josh p sidi]] ([[A̱lyiat a̱tyunta̱áím:Josh p sidi|talk]]) 00:44, 1 February 2022 (UTC)''
|-
| [[:w:en:Shrew|Shrew]] || [[A̱tyinjwaat]] || ''[[A̱tyunta̱m:Josh p sidi|Josh p sidi]] ([[A̱lyiat a̱tyunta̱áím:Josh p sidi|talk]]) 12:47, 5 February 2022 (UTC)''
|-
| [[:w:en:Grandfather|Grandfather]] || [[A̱tyia̱-a̱khwop]] ||[[A̱tyunta̱m:Steve Kally|Steve Kally]] ([[A̱lyiat a̱tyunta̱áím:Steve Kally|talk]]) 00:02, 4 February 2022 (UTC)
|-
| [[:w:en:Grandmother|Grandmother]] || [[A̱yang-a̱khwop]] ||[[A̱tyunta̱m:Steve Kally|Steve Kally]] ([[A̱lyiat a̱tyunta̱áím:Steve Kally|talk]]) 00:04, 4 February 2022 (UTC)
|-
| [[:w:en:Youth|Youth]] || [[Fi̱ng]] || ''[[A̱tyunta̱m:Nrance|Nrance]] ([[A̱lyiat a̱tyunta̱áím:Nrance|talk]]) 14:03, 30 January 2022 (UTC)''
|-
| [[:w:en:Difference|Difference]] || [[Vwuon]] || ''[[A̱tyunta̱m:Nrance|Nrance]] ([[A̱lyiat a̱tyunta̱áím:Nrance|talk]]) 14:20, 30 January 2022 (UTC)''
|-
| [[:w:en:Virginity|Virginity]] || [[A̱khwup]] || ''[[A̱tyunta̱m:Nrance|Nrance]] ([[A̱lyiat a̱tyunta̱áím:Nrance|talk]]) 15:00, 30 January 2022 (UTC)''
|-
| [[:w:en:Prayer|Prayer]] || [[Naai A̱gwaza]] ||[[A̱tyunta̱m:Valtino44|Valtino44]] ([[A̱lyiat a̱tyunta̱áím:Valtino44|talk]]) 10:25, 2 February 2022 (UTC)
|-
| [[:w:en:Clothing|Clothing]] || [[A̱toot]] ||[[A̱tyunta̱m:Basham Barnabas|Basham Barnabas]] ([[A̱lyiat a̱tyunta̱áím:Basham Barnabas|talk]]) 13:32, 22 January 2022 (UTC)
|-
| [[w:en:Clay pot|Clay pot]] || [[A̱la̱n vap]] || [[A̱tyunta̱m:Friday musa|Friday musa]] ([[A̱lyiat a̱tyunta̱áím:Friday musa|talk]]) 15:39, 23 January 2022 (UTC)
|-
| [[:w:en:Feast|Feast]] || [[A̱yet]] || ''[[A̱tyunta̱m:Grace kuvon|Grace kuvon]] ([[A̱lyiat a̱tyunta̱áím:Grace kuvon|talk]]) 13:58, 30 January 2022 (UTC)''
|-
| [[:w:en:Throwing|Throwing]] || [[Tang]] || ''[[A̱tyunta̱m:Aluwong|Aluwong]] ([[A̱lyiat a̱tyunta̱áím:Aluwong|talk]]) 14:42, 23 January 2022 (UTC)''
|-
| [[:w:en:Difficulty|Difficulty (problem solving)]] || [[Vwan a̱khwu]] || ''[[A̱tyunta̱m:Grace kuvon|Grace kuvon]] ([[A̱lyiat a̱tyunta̱áím:Grace kuvon|talk]]) 15:16, 30 January 2022 (UTC)''
|-
|}
===OTHERS===
After-event article creations. ''Please search if article already exists before creating one to avoid duplication.''
{| class="wikitable"
|-
! English Wikipedia !! Tyap Incubator!! Sign
|-
| [[:w:en:Toe|Toe]] || [[Ga̱swuong ntak]] || ''[[A̱tyunta̱m:Zbobai|Zbobai]] ([[A̱lyiat a̱tyunta̱áím:Zbobai|talk]]) 12:07, 22 February 2022 (UTC)''
|-
| [[:w:en:Trousers|Trousers]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:Fonio|Fonio]] || [[Tson]] ||[[A̱tyunta̱m:Steve Kally|Steve Kally]] ([[A̱lyiat a̱tyunta̱áím:Steve Kally|talk]]) 13:19, 7 April 2022 (UTC)
|-
| [[:w:en:Kaolin|Kaolin]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:Monitor lizard|Monitor lizard]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:Lizard|Lizard]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:Tablet computing|Tablet (computing)]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:Tablet (clay)|Tablet (clay)]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:Leopard|Leopard]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:Giraffe|Giraffe]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:Crocodile|Crocodile]] || [[Tsang(Nyam)]] || ''[[A̱tyunta̱m:Bello Lydia|Bello Lydia]] ([[A̱lyiat a̱tyunta̱áím:Bello Lydia|talk]]) 14:14, 17 March 2022 (UTC)''
|-
| [[:w:en:Night|Night]] || [[A̱kyetuk]] ||[[A̱tyunta̱m:Steve Kally|Steve Kally]] ([[A̱lyiat a̱tyunta̱áím:Steve Kally|talk]]) 16:51, 6 March 2022 (UTC)
|-
| [[:w:en:Day|Day]] || [[Mam]] || ''[[A̱tyunta̱m:Bello Lydia|Bello Lydia]] ([[A̱lyiat a̱tyunta̱áím:Bello Lydia|talk]]) 12:02, 17 March 2022 (UTC)''
|-
| [[:w:en:Midnight|Midnight]] || [[Tyekau A̱kyetuk]] || ''[[A̱tyunta̱m:Zbobai|Zbobai]] ([[A̱lyiat a̱tyunta̱áím:Zbobai|talk]]) 22:17, 3 March 2022 (UTC)''
|-
| [[:w:en:Beard|Beard]] || [[A̱ca̱t a̱tanu]] || ''[[A̱tyunta̱m:Zbobai|Zbobai]] ([[A̱lyiat a̱tyunta̱áím:Zbobai|talk]]) 16:49, 25 March 2022 (UTC)''
|-
| [[:w:en:Sideboard|Sideboard]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:Eyebrow|Eyebrow]] || [[A̱ngyang a̱li]] || ''[[A̱tyunta̱m:Bello Lydia|Bello Lydia]] ([[A̱lyiat a̱tyunta̱áím:Bello Lydia|talk]]) 11:37, 2 March 2022 (UTC)''
|-
| [[:w:en:Eyelid|Eyelid]] || [[A̱kunkwa-a̱li]] || ''[[A̱tyunta̱m:Bello Lydia|Bello Lydia]] ([[A̱lyiat a̱tyunta̱áím:Bello Lydia|talk]]) 09:04, 24 March 2022 (UTC)''
|-
| [[:w:en:Container|Container]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:Nurse|Nurse]] || [[A̱na̱mbwon]] || ''[[A̱tyunta̱m:Bello Lydia|Bello Lydia]] ([[A̱lyiat a̱tyunta̱áím:Bello Lydia|talk]]) 09:08, 24 March 2022 (UTC)''
|-
| [[:w:en:Disc|Disc]] || [[Pepe]] ||[[A̱tyunta̱m:Steve Kally|Steve Kally]] ([[A̱lyiat a̱tyunta̱áím:Steve Kally|talk]]) 18:55, 6 March 2022 (UTC)
|-
| [[:w:en:Antlion|Antlion]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:Hyena|Hyena]] || [[A̱murum]] || ''[[A̱tyunta̱m:Zbobai|Zbobai]] ([[A̱lyiat a̱tyunta̱áím:Zbobai|talk]]) 15:52, 3 May 2022 (UTC)''
|-
| [[:w:en:Lion|Lion]] || [[A̱zaki]] || ''[[A̱tyunta̱m:Bello Lydia|Bello Lydia]] ([[A̱lyiat a̱tyunta̱áím:Bello Lydia|talk]]) 10:10, 25 February 2022 (UTC)''
|-
| [[:w:en:Delta|Delta]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:Water|Water]] || [[A̱sa̱khwot]] || ''[[A̱tyunta̱m:Bello Lydia|Bello Lydia]] ([[A̱lyiat a̱tyunta̱áím:Bello Lydia|talk]]) 09:15, 24 February 2022 (UTC)''
|-
| [[:w:en:Ring|Ring]] || [[Nyuak]] || ''[[A̱tyunta̱m:Bello Lydia|Bello Lydia]] ([[A̱lyiat a̱tyunta̱áím:Bello Lydia|talk]]) 12:11, 23 February 2022 (UTC) .''
|-
| [[:w:en:Farm|Farm]] || [[A̱byinkhap]] || ''[[A̱tyunta̱m:Bello Lydia|Bello Lydia]] ([[A̱lyiat a̱tyunta̱áím:Bello Lydia|talk]]) 09:38, 25 February 2022 (UTC)''
|-
| [[:w:en:Famine|Famine]] || [[A̱wa̱ra̱ma̱nde]] || ''[[A̱tyunta̱m:Zbobai|Zbobai]] ([[A̱lyiat a̱tyunta̱áím:Zbobai|talk]]) 16:12, 25 March 2022 (UTC)''
|-
| [[:w:en:Finger millet|Finger millet]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:South|South]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:West|West]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:East|East]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:Sound|Sound]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:Straw|Straw]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:Sugarcane|Sugarcane]] || [[A̱ga̱faat(Aninyaat)]] || ''[[A̱tyunta̱m:Bello Lydia|Bello Lydia]] ([[A̱lyiat a̱tyunta̱áím:Bello Lydia|talk]]) 14:21, 17 March 2022 (UTC)''
|-
| [[:w:en:Catfish|Catfish]] || [[Tzoot]] ||[[A̱tyunta̱m:Steve Kally|Steve Kally]] ([[A̱lyiat a̱tyunta̱áím:Steve Kally|talk]]) 12:30, 7 April 2022 (UTC)
|-
| [[:w:en:Frog|Frog]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:Toad|Toad]] || [[A̱kusa̱nbwa̱t]] || ''[[A̱tyunta̱m:Friday musa|Friday musa]] ([[A̱lyiat a̱tyunta̱áím:Friday musa|talk]]) 14:33, 7 April 2022 (UTC)''
|-
| [[:w:en:Antelope|Antelope]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:Squirrel|Squirrel]] || [[A̱meap]] || ''[[A̱tyunta̱m:Zbobai|Zbobai]] ([[A̱lyiat a̱tyunta̱áím:Zbobai|talk]]) 18:02, 5 April 2022 (UTC)''
|-
| [[:w:en:Vulture|Vulture]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:Witch|Witch]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:Wizard|Wizard]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:Palm tree|Palm tree]] || [[Atyin tswan]] || ''[[A̱tyunta̱m:Bello Lydia|Bello Lydia]] ([[A̱lyiat a̱tyunta̱áím:Bello Lydia|talk]]) 13:37, 7 April 2022 (UTC)''
|-
| [[:w:en:Health|Health]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:Lip|Lip]] || [[Kwa-a̱nu]] || ''[[A̱tyunta̱m:Bello Lydia|Bello Lydia]] ([[A̱lyiat a̱tyunta̱áím:Bello Lydia|talk]]) 11:43, 2 March 2022 (UTC)''
|-
| [[:w:en:Banana|Banana]] || [[A̱yeba]] || ''[[A̱tyunta̱m:Bello Lydia|Bello Lydia]] ([[A̱lyiat a̱tyunta̱áím:Bello Lydia|talk]]) 16:11, 7 April 2022 (UTC)''
|-
| [[:w:en:Groundnut|Groundnut]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:Coconut|Coconut]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:Roundabout|Roundabout]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:Roaming|Roaming]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:Waste bin|Waste bin]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:Botton|Botton]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:Grumbling|Grumbling]] || [[A̱ngurung]] || [[A̱tyunta̱m:Steve Kally|Steve Kally]] ([[A̱lyiat a̱tyunta̱áím:Steve Kally|talk]]) 14:05, 14 March 2022 (UTC)
|-
| [[:w:en:Butterfly|Butterfly]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:Peninsula|Peninsula]] || [[A̱fi̱fap a̱byin]] || [[A̱tyunta̱m:Bello Lydia|Bello Lydia]] ([[A̱lyiat a̱tyunta̱áím:Bello Lydia|talk]]) 14:43, 3 May 2022 (UTC)
|-
| [[:w:en:Spear|Spear]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:Grandson|Grandson]] || [[A̱ka̱mbwon a̱sam]] || [[A̱tyunta̱m:Steve Kally|Steve Kally]] ([[A̱lyiat a̱tyunta̱áím:Steve Kally|talk]]) 09:27, 15 March 2022 (UTC)
|-
| [[:w:en:Granddaughter|Granddaughter]] || [[A̱ka̱mbwon a̱nap]] ||[[A̱tyunta̱m:Steve Kally|Steve Kally]] ([[A̱lyiat a̱tyunta̱áím:Steve Kally|talk]]) 10:02, 15 March 2022 (UTC)
|-
| [[:w:en:In-law|In-law]] || [[A̱kwang]] || [[A̱tyunta̱m:Steve Kally|Steve Kally]] ([[A̱lyiat a̱tyunta̱áím:Steve Kally|talk]]) 07:22, 14 March 2022 (UTC)
|-
| [[:w:en:Mother in-law|Mother in-law]] || [[A̱kwang A̱yang]] || [[A̱tyunta̱m:Steve Kally|Steve Kally]] ([[A̱lyiat a̱tyunta̱áím:Steve Kally|talk]]) 09:07, 15 March 2022 (UTC)
|-
| [[:w:en:Father in-law|Father in-law]] || [[A̱kwang A̱tyia̱]] ||[[A̱tyunta̱m:Steve Kally|Steve Kally]] ([[A̱lyiat a̱tyunta̱áím:Steve Kally|talk]]) 10:14, 15 March 2022 (UTC)
|-
| [[:w:en:Son in-law|Son in-law]] || [[A̱shun]] ||[[A̱tyunta̱m:Steve Kally|Steve Kally]] ([[A̱lyiat a̱tyunta̱áím:Steve Kally|talk]]) 10:37, 15 March 2022 (UTC)
|-
| [[:w:en:Daughter in-law|Daughter in-law]] || [[A̱nyiang]] ||[[A̱tyunta̱m:Steve Kally|Steve Kally]] ([[A̱lyiat a̱tyunta̱áím:Steve Kally|talk]]) 10:50, 15 March 2022 (UTC)
|-
| [[:w:en:Brother in-law|Brother in-law]] || [[A̱zwuam a̱sam]] || [[A̱tyunta̱m:Steve Kally|Steve Kally]] ([[A̱lyiat a̱tyunta̱áím:Steve Kally|talk]]) 11:42, 15 March 2022 (UTC)
|-
| [[:w:en:Sister in-law|Sister in-law]] || [[A̱zwuam a̱nap]] || [[A̱tyunta̱m:Steve Kally|Steve Kally]] ([[A̱lyiat a̱tyunta̱áím:Steve Kally|talk]]) 17:19, 15 March 2022 (UTC)
|-
| [[:w:en:Great grandfather|Great grandfather]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:Great grandmother|Great grandmother]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:Spinster|Spinster]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:Bachelor|Bachelor]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:Crawling|Crawling]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:Preaching|Preaching]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:Silence|Silence]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:Toad|Toad]] || [[A̱la̱mang]] || ''[[A̱tyunta̱m:Aluwong|Aluwong]] ([[A̱lyiat a̱tyunta̱áím:Aluwong|talk]]) 06:25, 30 January 2022 (UTC)''
|-
| [[:w:en:Noise|Noise]] || [[A̱gugwong]] || ''[[A̱tyunta̱m:Aluwong|Aluwong]] ([[A̱lyiat a̱tyunta̱áím:Aluwong|talk]]) 06:20, 30 January 2022 (UTC)''
|-
| [[:w:en:Cocoyam|Cocoyam]] || [[A̱kamm]] || ''[[A̱tyunta̱m:Don Amos|Don Amos]] ([[A̱lyiat a̱tyunta̱áím:Don Amos|talk]]) 14:30, 30 January 2022 (UTC)''
|-
| [[:w:en:Boss|Boss]] || [[A̱mwai]] || ''[[A̱tyunta̱m:Nrance|Nrance]] ([[A̱lyiat a̱tyunta̱áím:Nrance|talk]]) 20:36, 30 January 2022 (UTC)''
|-
| [[:w:en:Assistant|Assistant]] || [[Byia̱k (a̱tyubeang)]] ||[[A̱tyunta̱m:Steve Kally|Steve Kally]] ([[A̱lyiat a̱tyunta̱áím:Steve Kally|talk]]) 21:04, 3 February 2022 (UTC)
|-
| [[:w:en:Soap|Soap]] || [[Ntongjan]] || ''[[A̱tyunta̱m:Nrance|Nrance]] ([[A̱lyiat a̱tyunta̱áím:Nrance|talk]]) 11:29, 3 February 2022 (UTC)''
|-
| [[:w:en:Gate|Gate]] || [[A̱na̱nwuai]] || ''[[A̱tyunta̱m:Don Amos|Don Amos]] ([[A̱lyiat a̱tyunta̱áím:Don Amos|talk]]) 13:30, 30 January 2022 (UTC)''
|-
| [[:w:en:Hoe|Hoe]] || [[A̱tya̱m]] || ''[[A̱tyunta̱m:Nrance|Nrance]] ([[A̱lyiat a̱tyunta̱áím:Nrance|talk]]) 10:28, 5 February 2022 (UTC)''
|-
| [[:w:en:North|North]] || [[A̱za (fam)]] || ''[[A̱tyunta̱m:Don Amos|Don Amos]] ([[A̱lyiat a̱tyunta̱áím:Don Amos|talk]]) 14:33, 30 January 2022 (UTC)''
|-
| [[:w:en:Rat|Rat]] || [[Cyui (nyam)]] || ''[[A̱tyunta̱m:Nrance|Nrance]] ([[A̱lyiat a̱tyunta̱áím:Nrance|talk]]) 11:50, 3 February 2022 (UTC)''
|-
| [[:w:en:Measles|Measles]] || [[Nfwongsuup]] ||[[A̱tyunta̱m:Steve Kally|Steve Kally]] ([[A̱lyiat a̱tyunta̱áím:Steve Kally|talk]]) 23:59, 11 March 2022 (UTC)
|-
| [[:w:en:Blackmail|Blackmail]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:Mushroom|Mushroom]] || [[Tsong]] || ''[[A̱tyunta̱m:Bello Lydia|Bello Lydia]] ([[A̱lyiat a̱tyunta̱áím:Bello Lydia|talk]]) 23:40, 5 April 2022 (UTC)''
|-
| [[:w:en:Hyperactive|Hyperactive]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:Irrigation|Irrigation]] || [[Khap-a̱won]] || [[A̱tyunta̱m:Steve Kally|Steve Kally]] ([[A̱lyiat a̱tyunta̱áím:Steve Kally|talk]]) 07:58, 12 March 2022 (UTC)
|-
| [[:w:en:Theft|Theft]] || [[Tsang]] ||[[A̱tyunta̱m:Steve Kally|Steve Kally]] ([[A̱lyiat a̱tyunta̱áím:Steve Kally|talk]]) 08:49, 12 March 2022 (UTC)
|-
| [[:w:en:Thief|Thief]] || [[A̱tang]] || [[A̱tyunta̱m:Steve Kally|Steve Kally]] ([[A̱lyiat a̱tyunta̱áím:Steve Kally|talk]]) 09:09, 12 March 2022 (UTC)
|-
| [[:w:en:Garden Egg|Garden Egg]] || [[Ga̱shyio]] || [[A̱tyunta̱m:Steve Kally|Steve Kally]] ([[A̱lyiat a̱tyunta̱áím:Steve Kally|talk]]) 09:22, 12 March 2022 (UTC)
|-
| [[:w:en:Mortuary|Mortuary]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:Cemetery|Cemetery]] || [[Bibi]] || ''[[A̱tyunta̱m:Friday musa|Friday musa]] ([[A̱lyiat a̱tyunta̱áím:Friday musa|talk]]) 13:35, 7 April 2022 (UTC)''
|-
| [[:w:en:Saviour|Saviour]] || [[A̱tyiusan]] || ''[[A̱tyunta̱m:Bello Lydia|Bello Lydia]] ([[A̱lyiat a̱tyunta̱áím:Bello Lydia|talk]]) 14:03, 7 April 2022 (UTC)''
|-
| [[:w:en:Sinner|Sinner]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:Pastor|Pastor]] || [[Atyui shai lyet Agwazah]] || ''[[A̱tyunta̱m:Bello Lydia|Bello Lydia]] ([[A̱lyiat a̱tyunta̱áím:Bello Lydia|talk]]) 11:46, 17 March 2022 (UTC)''
|-
| [[:w:en:Imam|Imam]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:Priest|Priest]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:Drag|Drag]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:Pull|Pull]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:Full|Full]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:Incomplete|Incomplete]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:Complete|Complete]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:Speed|Speed]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:Congregation|Congregation]] || [[Á̱kum á̱niet]] || ''[[A̱tyunta̱m:Bello Lydia|Bello Lydia]] ([[A̱lyiat a̱tyunta̱áím:Bello Lydia|talk]]) 15:17, 8 March 2022 (UTC)''
|-
| [[:w:en:Congress|Congress]] || [[Atung]] || ''[[A̱tyunta̱m:Bello Lydia|Bello Lydia]] ([[A̱lyiat a̱tyunta̱áím:Bello Lydia|talk]]) 08:56, 24 March 2022 (UTC)''
|-
| [[:w:en:Agreement|Agreement]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:Contract|Contract]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:Signature|Signature]] || [[Tibwak]] || ''[[A̱tyunta̱m:Bello Lydia|Bello Lydia]] ([[A̱lyiat a̱tyunta̱áím:Bello Lydia|talk]]) 19:38, 12 April 2022 (UTC)''
|-
| [[:w:en:Signatory|Signatory]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:Middle Name|Middle Name]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:Surname|Surname]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:Maiden Name|Maiden Name]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:Name|Name]] || [[A̱lyoot]] ||[[A̱tyunta̱m:Friday musa|Friday musa]] ([[A̱lyiat a̱tyunta̱áím:Friday musa|talk]]) 11:28, 12 March 2022 (UTC)
|-
| [[:w:en:Family Name|Family Name]] || [[A̱lyoot a̱li]] || [[A̱tyunta̱m:Steve Kally|Steve Kally]] ([[A̱lyiat a̱tyunta̱áím:Steve Kally|talk]]) 16:04, 16 March 2022 (UTC)
|-
| [[:w:en:Hunting Dog|Hunting Dog]] || [[A̱bwu a̱kat]] || ''[[A̱tyunta̱m:Friday musa|Friday musa]] ([[A̱lyiat a̱tyunta̱áím:Friday musa|talk]]) 11:48, 12 March 2022 (UTC)''
|-
| [[:w:en:Hunting Cat|Hunting Cat]] || [[A̱kwui A̱kat]] ||[[A̱tyunta̱m:Steve Kally|Steve Kally]] ([[A̱lyiat a̱tyunta̱áím:Steve Kally|talk]]) 11:48, 12 March 2022 (UTC)
|-
| [[:w:en:Tuber|Tuber]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:Bone|Bone]] || [[Kungkup]] || ''[[A̱tyunta̱m:Friday musa|Friday musa]] ([[A̱lyiat a̱tyunta̱áím:Friday musa|talk]]) 13:02, 22 April 2022 (UTC)''
|-
|[[:w:en:Curtain|Curtain]] || [[TITLE]] || ''not assigned''
|-
|}
1e8mta8lusq6uejvs6paiu2yae4r46x
Wukipedia:Suggested translations
4
667
13195
13191
2022-05-31T18:54:30Z
Amire80
6
fix namespaces
wikitext
text/x-wiki
These are the most viewed English-language Wikipedia articles in Kaduna State in the first months of 2021. It may be useful to translate them to the Tyap language. You don't ''have'' to translate any of them; this is only a suggestion, and you can work on anything else that you find appropriate.
You don't have to translate the whole article. Translate as little or as much as you want, and adapt the article to the people who will read in the Tyap language in any way that seems appropriate.
As a first step, it's recommended to change the "TITLE" in the Tyap column to the real title as it will be written in the Tyap language. After that, the red links can be used to start articles. If you decided to write an article, you may replace the words "not assigned" in the table row of that article, so that other people would know that somebody is already working on it.
{| class="wikitable"
|-
! English !! Tyap !! Assigned to
|-
| [[:w:en:Sadiq Daba|Sadiq Daba]] || [[Sadiq Daba]] || ''[[A̱tyunta̱m:Zbobai|Zbobai]] ([[A̱lyiat a̱tyunta̱áím:Zbobai|talk]]) 18:30, 15 April 2021 (UTC)''
|-
| [[:w:en:Coming 2 America|Coming 2 America]] || [[Coming 2 America]] || ''[[A̱tyunta̱m:Kambai Akau|Kambai Akau]] ([[A̱lyiat a̱tyunta̱áím:Kambai Akau|talk]]) 20:30, 27 October 2021 (UTC)''
|-
| [[:w:en:Nigeria|Nigeria]] || [[Naijeriya]] || ''[[A̱tyunta̱m:Kambai Akau|Kambai Akau]] ([[A̱lyiat a̱tyunta̱áím:Kambai Akau|talk]]) 13:30, 3 April 2021 (UTC)''
|-
| [[:w:en:List of capitals of states of Nigeria|List of capitals of states of Nigeria]] || [[Lis a̱ka̱keangtung a̱yaasi̱tet Naijeriya]] || ''[[A̱tyunta̱m:Kambai Akau|Kambai Akau]] ([[A̱lyiat a̱tyunta̱áím:Kambai Akau|talk]]) 14:52, 3 April 2021 (UTC)''
|-
| [[:w:en:Ngozi Okonjo-Iweala|Ngozi Okonjo-Iweala]] || [[Ngozi Okonjo-Iweala]] || ''[[A̱tyunta̱m:Kambai Akau|Kambai Akau]] ([[A̱lyiat a̱tyunta̱áím:Kambai Akau|talk]]) 20:07, 29 October 2021 (UTC)''
|-
| [[:w:en:History of Nigeria|History of Nigeria]] || [[Nkhang gbangbang a̱byin Naijeriya]] || ''[[A̱tyunta̱m:Kambai Akau|Kambai Akau]] ([[A̱lyiat a̱tyunta̱áím:Kambai Akau|talk]]) 14:30, 19 April 2021 (UTC)''
|-
| [[:w:en:BBC Hausa|BBC Hausa]] || [[BBC Hausa]] || ''[[A̱tyunta̱m:Kambai Akau|Kambai Akau]] ([[A̱lyiat a̱tyunta̱áím:Kambai Akau|talk]]) 15:56, 1 August 2021 (UTC)''
|-
| [[:w:en:Constitution of Nigeria|Constitution of Nigeria]] || [[Kpa̱m Cam a̱byin Naijeriya]] || ''[[A̱tyunta̱m:Kambai Akau|Kambai Akau]] ([[A̱lyiat a̱tyunta̱áím:Kambai Akau|talk]]) 19:16, 19 December 2021 (UTC)''
|-
| [[:w:en:Federal government of Nigeria|Federal government of Nigeria]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:Nigeria Police Force|Nigeria Police Force]] || [[Mman Shan Naijeriya]] || ''[[A̱tyunta̱m:Zbobai|Zbobai]] ([[A̱lyiat a̱tyunta̱áím:Zbobai|talk]]) 10:58, 30 December 2021 (UTC)''
|-
| [[:w:en:Nigerian Air Force|Nigerian Air Force]] || [[A̱khwot A̱kwop Tswazwa Naijeriya]] || ''[[A̱tyunta̱m:Kambai Akau|Kambai Akau]] ([[A̱lyiat a̱tyunta̱áím:Kambai Akau|talk]]) 15:15, 18 November 2021 (UTC)''
|-
| [[:w:en:List of heads of state of Nigeria|List of heads of state of Nigeria]] || [[Lyulyoot A̱ya̱akwak A̱son A̱byin Naijeriya ba]] ||''[[A̱tyunta̱m:Zbobai|Zbobai]] ([[A̱lyiat a̱tyunta̱áím:Zbobai|talk]]) 19:11, 22 November 2021 (UTC)''
|-
| [[:w:en:Obafemi Martins|Obafemi Martins]] || [[Obafemi Martins]] || ''[[A̱tyunta̱m:Kambai Akau|Kambai Akau]] ([[A̱lyiat a̱tyunta̱áím:Kambai Akau|talk]]) 18:41, 6 July 2021 (UTC)''
|-
| [[:w:en:List of state governors of Nigeria|List of state governors of Nigeria]] || [[Lis a̱yaagwomna a̱yaasi̱tet Naijeriya]] || ''[[A̱tyunta̱m:Kambai Akau|Kambai Akau]] ([[A̱lyiat a̱tyunta̱áím:Kambai Akau|talk]]) 11:11, 5 April 2021 (UTC)''
|-
| [[:w:en:List of political parties in Nigeria|List of political parties in Nigeria]] || [[Lis susot kwai nfwuo mami Naijeriya]] || ''[[A̱tyunta̱m:Kambai Akau|Kambai Akau]] ([[A̱lyiat a̱tyunta̱áím:Kambai Akau|talk]]) 14:50, 5 April 2021 (UTC)''
|-
| [[:w:en:Bola Tinubu|Bola Tinubu]] || [[Bola Tinubu]] || ''[[A̱tyunta̱m:Kambai Akau|Kambai Akau]] ([[A̱lyiat a̱tyunta̱áím:Kambai Akau|talk]]) 11:00, 18 December 2021 (UTC)''
|-
| [[:w:en:Local government areas of Nigeria|Local government areas of Nigeria]] || [[Susot a̱gwomna̱ti mali Naijeriya]] || ''[[A̱tyunta̱m:Kambai Akau|Kambai Akau]] ([[A̱lyiat a̱tyunta̱áím:Kambai Akau|talk]]) 10:20, 16 April 2021 (UTC)''
|-
| [[:w:en:Muhammadu Buhari|Muhammadu Buhari]] || [[Muhammadu Buhari]] || ''[[A̱tyunta̱m:Zbobai|Zbobai]] ([[A̱lyiat a̱tyunta̱áím:Zbobai|talk]]) 10:58, 10 July 2021 (UTC)''
|-
| [[:w:en:List of states and territories of the United States|List of states and territories of the United States]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:Kaduna State|Kaduna State]] || [[Si̱tet Ka̱duna]] || ''[[A̱tyunta̱m:Kambai Akau|Kambai Akau]] ([[A̱lyiat a̱tyunta̱áím:Kambai Akau|talk]]) 13:50, 3 April 2021 (UTC)''
|-
| [[:w:en:States of Nigeria|States of Nigeria]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:List of the most popular given names in South Korea|List of the most popular given names in South Korea]] || [[Lyulyoot á̱niet á̱ lyen á̱ nswak mi̱ Kworiya A̱tak a̱ni]] || ''[[A̱tyunta̱m:Zbobai|Zbobai]] ([[A̱lyiat a̱tyunta̱áím:Zbobai|talk]]) 15:25, 13 August 2021 (UTC)''
|-
| [[:w:en:WWW|WWW]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:Colonial Nigeria|Colonial Nigeria]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:List of Nigerian states by population|List of Nigerian states by population]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:Cristiano Ronaldo|Cristiano Ronaldo]] || [[Kritiyano Ronaldo ]] || ''[[A̱tyunta̱m:Zbobai|Zbobai]] ([[A̱lyiat a̱tyunta̱áím:Zbobai|talk]]) 19:19, 16 January 2022 (UTC)''
|-
| [[:w:en:Coat of arms of Nigeria|Coat of arms of Nigeria]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:Lionel Messi|Lionel Messi]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:Cabinet of Nigeria|Cabinet of Nigeria]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:Nigerian Civil War|Nigerian Civil War]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:Abuja|Abuja]] || [[A̱buja]] || ''[[A̱tyunta̱m:Kambai Akau|Kambai Akau]] ([[A̱lyiat a̱tyunta̱áím:Kambai Akau|talk]]) 11:28, 8 July 2021 (UTC)''
|-
| [[:w:en:Davido|Davido]] || [[Davido]] || ''[[A̱tyunta̱m:Zbobai|Zbobai]] ([[A̱lyiat a̱tyunta̱áím:Zbobai|talk]]) 20:00, 8 July 2021 (UTC)''
|-
| [[:w:en:Abdulrasheed Bawa|Abdulrasheed Bawa]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:List of villages in the Federal Capital Territory, Nigeria|List of villages in the Federal Capital Territory, Nigeria]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:Arise, O Compatriots|Arise, O Compatriots]] || [[Á̱na̱nyiuk, Nyi Ta̱ngam]] || ''[[A̱tyunta̱m:Kambai Akau|Kambai Akau]] ([[A̱lyiat a̱tyunta̱áím:Kambai Akau|talk]]) 18:09, 18 November 2021 (UTC)''
|-
| [[:w:en:Real Madrid CF|Real Madrid CF]] || [[Sot Tswot A̱laua̱titak Real Madrid]] || ''[[A̱tyunta̱m:Zbobai|Zbobai]] ([[A̱lyiat a̱tyunta̱áím:Zbobai|talk]]) 11:14, 30 December 2021 (UTC)''
|-
| [[:w:en:Burna Boy|Burna Boy]] || [[Burna Boy]] || ''[[A̱tyunta̱m:Zbobai|Zbobai]] ([[A̱lyiat a̱tyunta̱áím:Zbobai|talk]]) 21:03, 8 July 2021 (UTC)''
|-
| [[:w:en:Geopolitical zones of Nigeria|Geopolitical zones of Nigeria]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:List of cities and towns in Germany|List of cities and towns in Germany]] || [[Lyulyoot a̱ca̱cet a̱ka̱keang ma̱ng a̱ka̱keang mi̱ Jami̱ni]] || ''[[A̱tyunta̱m:Kambai Akau|Kambai Akau]] ([[A̱lyiat a̱tyunta̱áím:Kambai Akau|talk]]) 10:23, 22 November 2021 (UTC)''
|-
| [[:w:en:List of Nigerian Grammy Award winners and nominees|List of Nigerian Grammy Award winners and nominees]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:List of Nigerian states by area|List of Nigerian states by area]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:Meghan, Duchess of Sussex|Meghan, Duchess of Sussex]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:Eddie Murphy|Eddie Murphy]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:Elon Musk|Elon Musk]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:Israel Adesanya|Israel Adesanya]] || [[Israel Adesanya]] || ''not assigned'' [[A̱tyunta̱m:Steve Kally|Steve Kally]] ([[A̱lyiat a̱tyunta̱áím:Steve Kally|talk]]) 23:00, 5 January 2022 (UTC)
|-
| [[:w:en:Kano State|Kano State]] || [[Si̱tet Ka̱na̱u]] || ''[[A̱tyunta̱m:Kambai Akau|Kambai Akau]] ([[A̱lyiat a̱tyunta̱áím:Kambai Akau|talk]]) 22:07, 27 October 2021 (UTC)''
|-
| [[:w:en:Wizkid|Wizkid]] || [[Wizkid]] ||''[[A̱tyunta̱m:Steve Kally|Steve Kally]] ([[A̱lyiat a̱tyunta̱áím:Steve Kally|talk]]) 16:36, 8 July 2021 (UTC)''
|-
| [[:w:en:Coming to America|Coming to America]] || [[Coming to America]] || ''[[A̱tyunta̱m:Kambai Akau|Kambai Akau]] ([[A̱lyiat a̱tyunta̱áím:Kambai Akau|talk]]) 22:10, 28 October 2021 (UTC)''
|-
| [[:w:en:Kano|Kano]] || [[Ka̱na̱u]] || ''[[A̱tyunta̱m:Chacha2020|Chacha2020]] ([[A̱lyiat a̱tyunta̱áím:Chacha2020|talk]]) 16:18, 16 October 2021 (UTC)''
|-
| [[:w:en:Geography of Nigeria|Geography of Nigeria]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:End SARS|End SARS]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:List of government agencies of Nigeria|List of government agencies of Nigeria]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:Benue State|Benue State]] || [[Si̱tet Benuwe]] || ''[[A̱tyunta̱m:Kambai Akau|Kambai Akau]] ([[A̱lyiat a̱tyunta̱áím:Kambai Akau|talk]]) 18:54, 8 September 2021 (UTC)''
|-
| [[:w:en:Aliko Dangote|Aliko Dangote]] || [[Aliko Dangote]] || ''[[A̱tyunta̱m:Zbobai|Zbobai]] ([[A̱lyiat a̱tyunta̱áím:Zbobai|talk]]) 06:49, 9 July 2021 (UTC)''
|-
| [[:w:en:Diana, Princess of Wales|Diana, Princess of Wales]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:Education in Nigeria|Education in Nigeria]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:Elizabeth II|Elizabeth II]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:Zack Snyder's Justice League|Zack Snyder's Justice League]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:Chief of Army Staff (Nigeria)|Chief of Army Staff (Nigeria)]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:International Women's Day|International Women's Day]] || [[Mam A̱nyiuk Kuzanga̱byin]] || ''[[A̱tyunta̱m:Zbobai|Zbobai]] ([[A̱lyiat a̱tyunta̱áím:Zbobai|talk]]) 11:31, 30 December 2021 (UTC)''
|-
| [[:w:en:House of Representatives (Nigeria)|House of Representatives (Nigeria)]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:Olusegun Obasanjo|Olusegun Obasanjo]] || [[Olusegun Obasanjo]] || ''[[A̱tyunta̱m:Zbobai|Zbobai]] ([[A̱lyiat a̱tyunta̱áím:Zbobai|talk]]) 12:30, 23 August 2021 (UTC)''
|-
| [[:w:en:Nigerian Army|Nigerian Army]] || [[A̱khwot A̱kwop A̱byin Naijeriya]] || ''[[A̱tyunta̱m:Zbobai|Zbobai]] ([[A̱lyiat a̱tyunta̱áím:Zbobai|talk]]) 07:23, 9 July 2021 (UTC)''
|-
| [[:w:en:Kogi State|Kogi State]] || [[Si̱tet Kogi]] || ''[[A̱tyunta̱m:Micah Bobai David|Micah Bobai David]] ([[A̱lyiat a̱tyunta̱áím:Micah Bobai David|talk]]) 14:55, 24 October 2021 (UTC)''
|-
| [[:w:en:List of cities in China|List of cities in China]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:Adamawa State|Adamawa State]] || [[Si̱tet A̱da̱mawa]] || ''[[A̱tyunta̱m:Jiboman|Jiboman]] ([[A̱lyiat a̱tyunta̱áím:Jiboman|talk]]) 14:39, 24 October 2021 (UTC)''
|-
| [[:w:en:African philosophy|African philosophy]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:Borno State|Borno State]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:List of airlines of Nigeria|List of airlines of Nigeria]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:Ahmadu Bello University|Ahmadu Bello University]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:Citizenship|Citizenship]] || [[Yet A̱tyobyin]] || ''[[A̱tyunta̱m:Zbobai|Zbobai]] ([[A̱lyiat a̱tyunta̱áím:Zbobai|talk]]) 14:07, 13 August 2021 (UTC)''
|-
| [[:w:en:List of the most popular names in the 1960s in the United States|List of the most popular names in the 1960s in the United States]] || [[Lyulyoot á̱niet á̱ ku jhyet mman á̱ nswak ma̱ a̱byin Muna̱pyia̱ Amerika mi̱ 1960 a̱ni]] || ''[[A̱tyunta̱m:Zbobai|Zbobai]] ([[A̱lyiat a̱tyunta̱áím:Zbobai|talk]]) 14:34, 13 August 2021 (UTC)''
|-
| [[:w:en:Ilaix Moriba|Ilaix Moriba]] || [[Ilaix Moriba]] || ''[[A̱tyunta̱m:Zbobai|Zbobai]] ([[A̱lyiat a̱tyunta̱áím:Zbobai|talk]]) 21:32, 9 July 2021 (UTC)''
|-
| [[:w:en:Taraba State|Taraba State]] || [[Si̱tet Ta̱raba]] || ''[[A̱tyunta̱m:Bathsheba123|Bathsheba12]] ([[A̱lyiat a̱tyunta̱áím:Bathsheba123|talk]]) 14:04, 24 October 2021 (UTC)''
|-
| [[:w:en:Military ranks of Nigeria|Military ranks of Nigeria]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:Zaria|Zaria]] || [[Zariya]] || ''[[A̱tyunta̱m:Kambai Akau|Kambai Akau]] ([[A̱lyiat a̱tyunta̱áím:Kambai Akau|talk]]) 21:58, 10 July 2021 (UTC)''
|-
| [[:w:en:List of banks in Nigeria|List of banks in Nigeria]] || [[A̱yaa Banki Najeriya]]
||[[A̱tyunta̱m:Steve Kally|Steve Kally]] ([[A̱lyiat a̱tyunta̱áím:Steve Kally|talk]]) 14:12, 18 January 2022 (UTC)
| [[:w:en:List of Nigerian billionaires by net worth|List of Nigerian billionaires by net worth]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:List of cities in Germany by population|List of cities in Germany by population]] || [[Lyulyoot a̱ca̱cet a̱ka̱keang Jami̱ni di̱n vak shi á̱niet]] || ''[[A̱tyunta̱m:Kambai Akau|Kambai Akau]] ([[A̱lyiat a̱tyunta̱áím:Kambai Akau|talk]]) 12:29, 22 November 2021 (UTC)''
|-
| [[:w:en:Economy of Nigeria|Economy of Nigeria]] || [[A̱za̱za̱rak nzwa Naijeriya]] || ''[[A̱tyunta̱m:Kambai Akau|Kambai Akau]] ([[A̱lyiat a̱tyunta̱áím:Kambai Akau|talk]]) 20:36, 2 January 2022 (UTC)''
|-
| [[:w:en:Senate of Nigeria|Senate of Nigeria]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:Ali Nuhu|Ali Nuhu]] || [[Ali Nuhu]] || ''[[A̱tyunta̱m:Zbobai|Zbobai]] ([[A̱lyiat a̱tyunta̱áím:Zbobai|talk]]) 21:59, 9 July 2021 (UTC)''
|-
| [[:w:en:Democracy|Democracy]] || [[Di̱mokrasi]] || ''[[A̱tyunta̱m:Kambai Akau|Kambai Akau]] ([[A̱lyiat a̱tyunta̱áím:Kambai Akau|talk]]) 08:23, 3 August 2021 (UTC)''
|-
| [[:w:en:Hausa people|Hausa people]] || [[A̱kpat]] || ''[[A̱tyunta̱m:Kambai Akau|Kambai Akau]] ([[A̱lyiat a̱tyunta̱áím:Kambai Akau|talk]]) 13:50, 3 April 2021 (UTC)''
|-
| [[:w:en:Gombe State|Gombe State]] || [[Si̱tet Gwombe]] || ''[[A̱tyunta̱m:Zbobai|Zbobai]] ([[A̱lyiat a̱tyunta̱áím:Zbobai|talk]]) 21:50, 26 October 2021 (UTC)''
|-
| [[:w:en:Usman dan Fodio|Usman dan Fodio]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:Nigerian Defence Academy|Nigerian Defence Academy]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:Lagos|Lagos]] || [[Legwot]] || ''[[A̱tyunta̱m:Kambai Akau|Kambai Akau]] ([[A̱lyiat a̱tyunta̱áím:Kambai Akau|talk]]) 20:43, 18 July 2021 (UTC)''
|-
| [[:w:en:Diabetes|Diabetes]] || [[Zwan shuga]] || ''[[A̱tyunta̱m:Kambai Akau|Kambai Akau]] ([[A̱lyiat a̱tyunta̱áím:Kambai Akau|talk]]) 06:48, 10 July 2021 (UTC)''
|-
| [[:w:en:Curriculum|Curriculum]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:Cleopatra|Cleopatra]] || [[Ki̱liyopatra]] || ''[[A̱tyunta̱m:Kambai Akau|Kambai Akau]] ([[A̱lyiat a̱tyunta̱áím:Kambai Akau|talk]]) 13:05, 19 November 2021 (UTC)''
|-
| [[:w:en:Plateau State|Plateau State]] || [[Si̱tet Pi̱lato]] || ''[[A̱tyunta̱m:Kambai Akau|Kambai Akau]] ([[A̱lyiat a̱tyunta̱áím:Kambai Akau|talk]]) 17:58, 15 July 2021 (UTC)''
|-
| [[:w:en:Google|Google]] || [[Google]] || ''[[A̱tyunta̱m:Kambai Akau|Kambai Akau]] ([[A̱lyiat a̱tyunta̱áím:Kambai Akau|talk]]) 06:41, 22 July 2021 (UTC)''
|-
| [[:w:en:Chelsea F.C.|Chelsea F.C.]] || [[Sot Tswa̱t A̱laua̱̱ti̱tak Chelsea]] || ''[[A̱tyunta̱m:Zbobai|Zbobai]] ([[A̱lyiat a̱tyunta̱áím:Zbobai|talk]]) 20:52, 23 November 2021 (UTC)''
|-
| [[:w:en:Nigerian Armed Forces|Nigerian Armed Forces]] || [[A̱khwot Á̱kwop Naijeriya]] || ''[[A̱tyunta̱m:Kambai Akau|Kambai Akau]] ([[A̱lyiat a̱tyunta̱áím:Kambai Akau|talk]]) 22:17, 9 July 2021 (UTC)''
|-
| [[:w:en:Ten Commandments|Ten Commandments]] || [[Ncam Swak na]] || ''[[A̱tyunta̱m:Kambai Akau|Kambai Akau]] ([[A̱lyiat a̱tyunta̱áím:Kambai Akau|talk]]) 20:17, 24 June 2021 (UTC)''
|-
| [[:w:en:List of ethnic groups in Nigeria|List of ethnic groups in Nigeria]] || [[Lis nnwap mi̱ Naijeriya]] || ''[[A̱tyunta̱m:Kambai Akau|Kambai Akau]] ([[A̱lyiat a̱tyunta̱áím:Kambai Akau|talk]]) 13:43, 26 June 2021 (UTC)''
|-
| [[:w:en:President of Nigeria|President of Nigeria]] || [[A̱kwak A̱son A̱byin Naijeriya]] || ''[[A̱tyunta̱m:Zbobai|Zbobai]] ([[A̱lyiat a̱tyunta̱áím:Zbobai|talk]]) 21:18, 12 July 2021 (UTC)''
|-
| [[:w:en:Katsina State|Katsina State]] || [[Si̱tet Ka̱sina]] || ''[[A̱tyunta̱m:Zbobai|Zbobai]] ([[A̱lyiat a̱tyunta̱áím:Zbobai|talk]]) 22:17, 26 October 2021 (UTC)''
|}
==Most viewed early November 2021==
These are the 80 most viewed articles in Kaduna State as of early November 2021 on the English language Wikipedia.
As a first step, it's recommended to change the "TITLE" in the Tyap column to the real title as it will be written in the Tyap language. After that, the red links can be used to start articles. If you decided to write an article, you may replace the words "not assigned" in the table row of that article with four tildes (i.e. ~ ~ ~ ~), so that other people would know that somebody is already working on it.
{| class="wikitable"
|-
! English !! Tyap !! Assigned to
|-
| [[:w:en:Bible|Bible]] || [[Kpa̱m A̱lyiat A̱gwaza]] || ''[[A̱tyunta̱m:Kambai Akau|Kambai Akau]] ([[A̱lyiat a̱tyunta̱áím:Kambai Akau|talk]]) 13:52, 11 November 2021 (UTC)''
|-
| [[:w:en:Squid Game|Squid Game]] || [[Squid Game]] || ''[[A̱tyunta̱m:Kambai Akau|Kambai Akau]] ([[A̱lyiat a̱tyunta̱áím:Kambai Akau|talk]]) 16:13, 11 November 2021 (UTC)''
|-
| [[:w:en:Game|Game]] || [[Vwuo]] || ''[[A̱tyunta̱m:Kambai Akau|Kambai Akau]] ([[A̱lyiat a̱tyunta̱áím:Kambai Akau|talk]]) 12:33, 12 November 2021 (UTC)''
|-
| [[:w:en:Nigeria|Nigeria]] || [[Naijeriya]] || ''already translated''
|-
| [[:w:en:History of Nigeria|History of Nigeria]] || [[Nkhang gbangbang a̱byin Naijeriya]] || ''already translated''
|-
| [[:w:en:Independence Day (Nigeria)|Independence Day (Nigeria)]] || [[A̱tuk Mam Sa̱t (Naijeriya)]] || ''[[A̱tyunta̱m:Kambai Akau|Kambai Akau]] ([[A̱lyiat a̱tyunta̱áím:Kambai Akau|talk]]) 05:51, 16 November 2021 (UTC)''
|-
| [[:w:en:List of state governors of Nigeria|List of state governors of Nigeria]] || [[Lis a̱yaagwomna a̱yaasi̱tet Naijeriya]] || ''already being translated''
|-
| [[:w:en:Cleopatra|Cleopatra]] || [[Ki̱liyopatra]] || ''already translated''
|-
| [[:w:en:Nigerian Civil War|Nigerian Civil War]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:List of political parties in Nigeria|List of political parties in Nigeria]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:Olu Jacobs|Olu Jacobs]] || [[Olu Jacobs]] ||[[A̱tyunta̱m:Steve Kally|Steve Kally]] ([[A̱lyiat a̱tyunta̱áím:Steve Kally|talk]]) 15:23, 18 January 2022 (UTC)
|-
| [[:w:en:Enoch Adeboye|Enoch Adeboye]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:WhatsApp|WhatsApp]] || [[Wasap]] || ''[[A̱tyunta̱m:Steve Kally|Steve Kally]] ([[A̱lyiat a̱tyunta̱áím:Steve Kally|talk]]) 07:35, 4 February 2022 (UTC)''
|-
| [[:w:en:Mark Zuckerberg|Mark Zuckerberg]] || [[Markut Zuka̱beg]] || ''[[A̱tyunta̱m:Zbobai|Zbobai]] ([[A̱lyiat a̱tyunta̱áím:Zbobai|talk]]) 20:41, 14 January 2022 (UTC)''
|-
| [[:w:en:Geopolitical zones of Nigeria|Geopolitical zones of Nigeria]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:Lionel Messi|Lionel Messi]] || [[Lionel Messi]] ||[[A̱tyunta̱m:Steve Kally|Steve Kally]] ([[A̱lyiat a̱tyunta̱áím:Steve Kally|talk]]) 21:40, 18 January 2022 (UTC)
|-
| [[:w:en:No Time to Die|No Time to Die]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:Failure of electronic components|Failure of electronic components]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:Muhammadu Buhari|Muhammadu Buhari]] || [[Muhammadu Buhari]] || ''already translated''
|-
| [[:w:en:List of librarians|List of librarians]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:Colonial Nigeria|Colonial Nigeria]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:Coat of arms of Nigeria|Coat of arms of Nigeria]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:List of people named in the Pandora Papers|List of people named in the Pandora Papers]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:Nigeria Police Force|Nigeria Police Force]] || [[Mman Shan Naijeriya]] || ''already translated''
|-
| [[:w:en:Arise, O Compatriots|Arise, O Compatriots]] || [[Á̱na̱nyiuk, Nyi Ta̱ngam]] || ''already translated''
|-
| [[:w:en:Tyson Fury|Tyson Fury]] || [[Tyson Fury]] ||[[A̱tyunta̱m:Steve Kally|Steve Kally]] ([[A̱lyiat a̱tyunta̱áím:Steve Kally|talk]]) 16:44, 18 January 2022 (UTC)
|-
| [[:w:en:Cristiano Ronaldo|Cristiano Ronaldo]] || [[Cristiano Ronaldo]] ||[[A̱tyunta̱m:Steve Kally|Steve Kally]] ([[A̱lyiat a̱tyunta̱áím:Steve Kally|talk]]) 22:21, 18 January 2022 (UTC)
|-
| [[:w:en:List of animal sounds|List of animal sounds]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:Facebook|Facebook]] || [[Facebook]] || ''[[A̱tyunta̱m:Kambai Akau|Kambai Akau]] ([[A̱lyiat a̱tyunta̱áím:Kambai Akau|talk]]) 19:41, 19 December 2021 (UTC)''
|-
| [[:w:en:List of heads of state of Nigeria|List of heads of state of Nigeria]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:Big Brother Naija|Big Brother Naija]] || [[Big Brother Naija]] ||[[A̱tyunta̱m:Steve Kally|Steve Kally]] ([[A̱lyiat a̱tyunta̱áím:Steve Kally|talk]]) 22:41, 18 January 2022 (UTC)
|-
| [[:w:en:Ayra Starr|Ayra Starr]] || [[Ayra Starr]] ||[[A̱tyunta̱m:Steve Kally|Steve Kally]] ([[A̱lyiat a̱tyunta̱áím:Steve Kally|talk]]) 20:40, 18 January 2022 (UTC)
|-
| [[:w:en:Venom: Let There Be Carnage|Venom: Let There Be Carnage]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:List of Nigerian states by population|List of Nigerian states by population]] || [[Li̱lyoot Si̱tet Najeriya di̱n shi bana]] ||[[A̱tyunta̱m:Steve Kally|Steve Kally]] ([[A̱lyiat a̱tyunta̱áím:Steve Kally|talk]]) 16:54, 19 January 2022 (UTC)
|-
| [[:w:en:Islamic State|Islamic State]] || [[Sitet Kpaa̱pyia̱]] || ''[[A̱tyunta̱m:Zbobai|Zbobai]] ([[A̱lyiat a̱tyunta̱áím:Zbobai|talk]]) 09:53, 16 January 2022 (UTC)''
|-
| [[:w:en:Arnaut Danjuma|Arnaut Danjuma]] || [[Arnaut Danjuma]] || ''[[A̱tyunta̱m:Kambai Akau|Kambai Akau]] ([[A̱lyiat a̱tyunta̱áím:Kambai Akau|talk]]) 19:26, 30 December 2021 (UTC)''
|-
| [[:w:en:Trans-Saharan trade|Trans-Saharan trade]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:Computer|Computer]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:Constitution of Nigeria|Constitution of Nigeria]] || [[Kpa̱m Cam a̱byin Naijeriya]] || ''already translated''
|-
| [[:w:en:Education|Education]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:Education in Africa|Education in Africa]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:List of Nigerian billionaires by net worth|List of Nigerian billionaires by net worth]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:Local government areas of Nigeria|Local government areas of Nigeria]] || [[Susot a̱gwomna̱ti mali Naijeriya]] || ''already translated''
|-
| [[:w:en:Abdulrazak Gurnah|Abdulrazak Gurnah]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:Abuja|Abuja]] || [[A̱buja]] || ''already translation''
|-
| [[:w:en:Deontay Wilder|Deontay Wilder]] || [[Deontay Wilder]] ||[[A̱tyunta̱m:Steve Kally|Steve Kally]] ([[A̱lyiat a̱tyunta̱áím:Steve Kally|talk]]) 09:08, 19 January 2022 (UTC)
|-
| [[:w:en:Ahmadu Bello University|Ahmadu Bello University]] || [[Yunuvasiti Ahmadu Bello]] ||[[A̱tyunta̱m:Steve Kally|Steve Kally]] ([[A̱lyiat a̱tyunta̱áím:Steve Kally|talk]]) 10:04, 25 January 2022 (UTC)
|-
| [[:w:en:Forbes' list of the most valuable football clubs|Forbes' list of the most valuable football clubs]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:Shang-Chi and the Legend of the Ten Rings|Shang-Chi and the Legend of the Ten Rings]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:Bola Tinubu|Bola Tinubu]] || [[Bola Tinubu]] || ''already translated''
|-
| [[:w:en:List of ethnic groups in Nigeria|List of ethnic groups in Nigeria]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:Sanusi Lamido Sanusi|Sanusi Lamido Sanusi]] || [[Sa̱nusi Lamido Sa̱nusi]] || ''[[A̱tyunta̱m:Zbobai|Zbobai]] ([[A̱lyiat a̱tyunta̱áím:Zbobai|talk]]) 11:49, 16 January 2022 (UTC)''
|-
| [[:w:en:Lagos|Lagos]] || [[Legwot]] || ''already translated''
|-
| [[:w:en:Federal government of Nigeria|Federal government of Nigeria]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:UEFA Nations League|UEFA Nations League]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:Democracy|Democracy]] || [[Di̱mokrasi]] || ''already translated''
|-
| [[:w:en:Cabinet of Nigeria|Cabinet of Nigeria]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:List of Nigerian states by date of statehood|List of Nigerian states by date of statehood]] || [[Lilyoot Sitet Najeriya di̱ ncei]] ||[[A̱tyunta̱m:Steve Kally|Steve Kally]] ([[A̱lyiat a̱tyunta̱áím:Steve Kally|talk]]) 10:28, 20 January 2022 (UTC)
|-
| [[:w:en:International Day of the Girl Child|International Day of the Girl Child]] || [[Mam Ni̱neam A̱bin ma̱ng A̱bin]] || ''[[A̱tyunta̱m:Zbobai|Zbobai]] ([[A̱lyiat a̱tyunta̱áím:Zbobai|talk]]) 18:46, 16 January 2022 (UTC)''
|-
| [[:w:en:World Teachers' Day|World Teachers' Day]] || [[Mam A̱niettyia̱t Swatnta ba]] || ''[[A̱tyunta̱m:Zbobai|Zbobai]] ([[A̱lyiat a̱tyunta̱áím:Zbobai|talk]]) 12:56, 16 January 2022 (UTC)''
|-
| [[:w:en:Elon Musk|Elon Musk]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:First Nigerian Republic|First Nigerian Republic]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:Military ranks of Nigeria|Military ranks of Nigeria]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:Panama Papers|Panama Papers]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:Operating system|Operating system]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:Air Force Institute of Technology (Nigeria)|Air Force Institute of Technology (Nigeria)]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:Kaduna State|Kaduna State]] || [[Si̱tet Ka̱duna]] || ''already translated''
|-
| [[:w:en:Nigeria, We Hail Thee|Nigeria, We Hail Thee]] || [[Zi̱dyep ang, Naijeriya]] || ''[[A̱tyunta̱m:Zbobai|Zbobai]] ([[A̱lyiat a̱tyunta̱áím:Zbobai|talk]]) 12:28, 16 January 2022 (UTC)''
|-
| [[:w:en:Nnamdi Azikiwe|Nnamdi Azikiwe]] || [[Nnamdi Azikewe]] ||[[A̱tyunta̱m:Steve Kally|Steve Kally]] ([[A̱lyiat a̱tyunta̱áím:Steve Kally|talk]]) 22:41, 19 January 2022 (UTC)
|-
| [[:w:en:Pandora Papers|Pandora Papers]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:Wole Soyinka|Wole Soyinka]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:Abubakar Tafawa Balewa|Abubakar Tafawa Balewa]] || [[Abubakar Tafawa Balewa]] ||[[A̱tyunta̱m:Steve Kally|Steve Kally]] ([[A̱lyiat a̱tyunta̱áím:Steve Kally|talk]]) 23:04, 19 January 2022 (UTC)
|-
| [[:w:en:Sani Abacha|Sani Abacha]] || [[Sani Abacha]] ||[[A̱tyunta̱m:Steve Kally|Steve Kally]] ([[A̱lyiat a̱tyunta̱áím:Steve Kally|talk]]) 23:16, 19 January 2022 (UTC)
|-
| [[:w:en:Tiwa Savage|Tiwa Savage]] || [[Tiwa Savage]] ||[[A̱tyunta̱m:Steve Kally|Steve Kally]] ([[A̱lyiat a̱tyunta̱áím:Steve Kally|talk]]) 23:31, 19 January 2022 (UTC)
|-
| [[:w:en:System|System]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:United States|United States]] || [[A̱yaasi̱tet Muná̱pyia̱]] || ''already translated''
|-
| [[:w:en:Tems (singer)|Tems (singer)]] || [[Tems(A̱tyiu bubwom)]] ||[[A̱tyunta̱m:Steve Kally|Steve Kally]] ([[A̱lyiat a̱tyunta̱áím:Steve Kally|talk]]) 23:52, 19 January 2022 (UTC)
|-
| [[:w:en:Koine Greek|Koine Greek]] || [[TITLE]] || ''not assigned''
|-
| [[:w:en:List of capitals of states of Nigeria|List of capitals of states of Nigeria]] || [[TITLE]] || ''not assigned''
|}
q6aildo8h36n02pxg6yq4vzuu2vuntr
Pyia̱
0
668
8816
8815
2022-05-16T12:54:24Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[A̱tyin pyia̱]]
mq28n08fclirxebdanlvrcnfpb7u2jr
Rembrandt
0
669
14396
13453
2022-06-13T10:27:30Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
[[Fail:Rembrandt van Rijn - Self-Portrait - Google Art Project.jpg|197px|right]]
'''Rembrandt Harmenszoon van Rijn''' (15 Zwat A̱natat 1606 – 4 Zwat Swak 1669), di̱n jen ma̱ a̱di̱di̱t á̱ sii ngyei '''Rembrandt''' ma̱ a̱hyohyoot a̱ni, ku yet a̱tyuswup nghwughwu, a̱tyutsot nkwambwat ma̱ng a̱tyughwang mi̱ ghwang Ce Zi̱nariya a̱byin Holan wa. A̱ ku yet a̱tyubyia̱ a̱shyim á̱di̱dam ma̱ng a̱gwak a̱saat di̱ nyinyiit seang nkhang a̱tat, da̱ a̱ka̱nyiung, á̱ fa nggu nang a̱tyonyiung mami a̱ca̱cet á̱nietnyia̱ nghwughwu nwuan ba̱ swak ma̱ng shi a̱ni mi̱ a̱mgba̱m nkhang nyian nghwughwu, a mbeang a̱tyu a̱ swak ma̱ng yet a̱tsatsak di̱ nkhang nyian nghwughwu A̱doci na.
[[Sa:Á̱nietnyia̱ nghwughwu ma̱ng á̱nietlyen ghwang a̱ka̱sa]]
g36kg36r958jhctkrf4m04s0ov1ijms
Ri̱pobi̱lik A̱gba̱ndang Volta
0
670
14398
13454
2022-06-13T10:27:35Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
{| class="wikitable" align=right border width="200"
| colspan="2" align=center|'''Ri̱pobi̱lik A̱gba̱ndang Volta'''<br>République de Haute-Volta (Fi̱ransa)
|-
| colspan="2" align=center|[[Fail:LocationBurkinaFaso.svg|thumb|300px|center]] <sub>A̱vwuo ka nang A̱gba̱ndang Volta nshyia̱ a̱ni</sub>
|-
| [[Fail:Flag of Upper Volta.svg|thumb|Tuta a̱byin A̱gba̱ndang Volta]]
|-
| [[Fail:Coat of arms of Upper Volta.svg|thumb|A̱lama a̱byin A̱gba̱ndang Volta]]
|-
|}
'''Ri̱pobi̱lik A̱gba̱ndang Volta''' wu (Fi̱ransa: République de Haute-Volta, Shong: Republic of Upper Volta; a̰wot [[Burkina Faso]] ma̱ninika) ku yet a̱byin [[Jenshyung Afrika]] kya nang bibyin ghyáng ku keang di̱ tityak a̱ni á̱ ku kpaat a̱tuk mam 11 Zwat Swak ma̱ng Sweang 1958 nang a̱byin nang á̱nietcen nyia̱ tyok tazwa nka ka̱ byia̱ a̱gwomna̱ti a̱pyia̱ nka mami Sot-á̱niet Fi̱ransa ji. A̱zaghyi njen ji nang ka̱ si̱ maai nyia̱ tyok a̱pyia̱ nka ka a̱ni, ka̱ ku yet A̱gba̱ndang Volta Fi̱ransa ma̱ng kap Muna̱pyia̱ Fi̱ransa hu hwa. Ka̱ shyia̱ swat sa̱t ma̱ a̱tuk mam 5 Zwat A̱ni̱nai 1960 mbwak a̱byin [[Fi̱ransa (a̱byin)|Fi̱ransa]]. Ka̱ si̱si̱ shai a̱lyoot nka ka ma̱ a̱tuk mam 4 Zwat A̱ni̱nai 1984, nat Burkina Faso.
==Ya̱fang==
<references/>
[[Sa:Bibyin_swanta]]
[[Sa:Bibyin_Afrika]]
[[Sa:Bibyin_Jenshyung_Afrika]]
kmnbzopguzjlltx85szp6y8g7l00zzc
Ri̱pobi̱lik Fi̱ra̱ntse
0
671
12591
12430
2022-05-22T05:30:06Z
Minorax
31
fix lint
wikitext
text/x-wiki
{{Country
|name = Ri̱pobi̱lik Fi̱ra̱ntse<br><small>Repubblica di Firenze (Italiya)</small>
|flag = State Flag of the Republic of Florence.svg
|caption =
|coa = Stemma di Firenze fino al 1251.svg
|image = DuchyofFlorence1548.png
|capital = [[Fi̱ra̱nze|Fi̱ra̱ntse]]
|area =
|population =
|year =
}}
'''Ri̱pobi̱lik Fi̱ra̱ntse''' wu, (Italiya: Repubblica Fiorentina /reˈpubblika fjorenˈtiːna/, ku Repubblica di Firenze), ku yet si̱tet Nce A̱ka̱wa̱tyia̱ ja ma̱ng a̱si̱ ntsa mam a̱fwun hu a̱ni ji̱ ku shyia̱ a̱ka̱wa̱tyia̱ a̱gba̱ndang a̱keang a̱byin [[Italiya]] nang á̱ ngyei [[Fi̱ra̱nze|Fi̱ra̱ntse]] a̱ni di̱ fam-a̱byin Tuska̱ni.<ref name="Brucker">Brucker, Gene A. (1998). Florence: The Golden Age 1138-1737. ISBN 0-520-21522-2</ref>
==Ya̱fang==
<references/>
gwcy2el03jfymdn62iywp2wcbsszf09
Ri̱pobi̱lik Fi̱ra̱nze
0
672
8842
8841
2022-05-16T12:54:25Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[Ri̱pobi̱lik Fi̱ra̱ntse]]
bvnmkqbooixu3ukvyd4wegtpzrky65i
Roshiya
0
673
14400
13455
2022-06-13T10:28:06Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
{| class="wikitable" align=right border width="200"
| colspan="2" align=center|'''Mundundung Roshiya'''<br>Российская Федерация </br>''Rossiyskaya Federatsiya''
|-
| colspan="2" align=center|[[Fail:Russian Federation (orthographic projection) - only Crimea disputed.svg|thumb|300px|center]] <sub>Ta̱si̱la a̱byin Roshiya</sub>
|-
| [[Fail:Flag of Russia.svg|thumb|Tuta a̱byin Roshiya]]
|-
| [[Fail:Coat of Arms of the Russian Federation.svg|thumb|A̱lama a̱byin Roshiya]]
|-
|}
A̱byin '''Roshiya''' (Roshiya: Россия, ''Rossiya'' /rɐˈsʲijə/; Shong: Russia), ku '''Mundundung Roshiya''' hu (Roshiya: Российская Федерация, ''Rossiyskaya Federatsiya'' /rɐˈsʲijskəjə fʲɪdʲɪˈratsɨjə/; Shong: Russian Federation), yet a̱byin kya ka̱ ngaat kyiak neet di̱ fam a̱byin A̱tyin Yurop nat A̱za A̱si̱ya. A̱byin Roshiya kya yet a̱gba̱ndang swak wu mi̱ swanta hu ka̱ kup kyai a̱byin ka̱ swak kilomita a̱ma̱ntanaai miliyon 17 (met a̱ma̱ntanaai 6.6 x 10⁶) a̱ni, ka̱ si̱ keang si̱ ku swak kap a̱kpa a̱nyiung mami nkap a̱yaakpa a̱ni̱nai nang á̱niet swat mi̱ swanta hu. A̱byin ka ngaat ka̱ byia̱k a̱ma̱nyi a̱yaazoni njen swak ma̱ng a̱nyiung, ka̱ si̱ lan byia̱ a̱gi̱gak ma̱ng bibyin ghyáng mi̱ swanta hu, ma̱ng á̱sa̱t bibyin swak ma̱ng a̱taa. Ka̱ shyia̱ ma̱ng shi á̱niet miliyon 146.2; a̱wot ka̱ si̱ yet a̱byin ka ka̱ swak mi̱ shi á̱niet mami Yurop, ma̱ng a̱kubunyiung mi̱ shi á̱niet mi̱ swanta hu. A̱keangtung nka ka, Moskova, kikya yet a̱gba̱ndang a̱keang wu a̱ swak mi̱ shi mami Yurop, ma̱nang Saint Petersburg si̱ yet a̱gba̱ndang a̱keang a̱ swak mi̱ shi a̱feang wu ma̱ng a̱ka̱wa̱tyia̱ taada nka ka. A̱roshiya ba, bibya yet nwap A̱si̱lavi ma̱ng sot á̱niet ji̱ swak mi̱ shi mami Yurop a̱ni; ba̱ lyiat da̱ a̱lyem Roshiya kya, a̱lyem Si̱lavi nang á̱ lyiat swak a̱ni ma̱ng a̱ka̱k a̱lyem á̱ lyiat swak ma̱ a̱byin [[Yurop]] a̱ni.
==Ya̱fang==
<references/>
{{Template:Bibyin Yurop}}
[[Sa:Bibyin_swanta]]
[[Sa:Bibyin_Yurop]]
[[Sa:Bibyin_A̱siya]]
[[Sa:Bibyin_A̱tyin_Yurop]]
[[Sa:Bibyin_A̱za_A̱siya]]
4z45wh7m0qywl60ziori9h80gxniflr
Ruwanda
0
674
14401
13456
2022-06-13T10:28:11Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
{{Country
|name = ''Ri̱pobi̱lik Ruwanda''<br><small>Repubulika y'u Rwanda (Kinyarwanda)<br>République du Rwanda (Fi̱ransa)<br>Jamhuri ya Rwanda (Swahili)</small>
|flag = Flag of Rwanda.svg
|caption = Tyiang a̱toot shi a̱byin Rwanda
|coa = Coat of arms of Rwanda.svg
|image = Location Rwanda AU Africa.svg
|capital = [[Kigali]]
|area = 26,338
|population = 12,374,397
|year = 2019
}}
'''A̱bwom a̱byin''': "Rwanda nziza" (''A̱sham Ruwanda'') [[Fail:Hymne National du Rwanda.ogg]]
A̱byin '''Ruwanda''' (Kinyarwanda: u Rwanda /u.ɾɡwaː.nda/) á̱ lyen ma̱ng a̱lyoot a̱gwomna̱ti ka nang '''Ri̱pobi̱lik Ruwanda''' wu<ref>[https://www.gov.rw/ Government of Rwanda: Welcome to Rwanda] (di̱n Shong).</ref> a̱ni yet a̱byin kya nang bibyn ghyáng ku keang di̱ tityak a̱ni mi̱ A̱gba̱ndang A̱niak A̱ngaam wu, a̱vwuo ka nang fam-a̱byin A̱ca̱cet Njok na̱ swak ma̱ng shi Afrika na ma̱ng A̱tyin Afrika mun ndung a̱ni. Ka̱ lat ma̱ng a̱yaadi̱gi̱ri ma̱ a̱da̱dei di̱ fam a̱tak A̱kwa̱to wu, a̱wot ka̱ si̱ byia̱ a̱gi̱gak ma̱ng bibyin [[Yuganda]], [[Ta̱nzaniya]], [[Burundi]], mbeang [[Ri̱pobi̱lik Di̱mokrasi Konggo]] wu.
==Ya̱fang==
<references/>
{{Bibyin Afrika}}
[[Sa:Bibyin swanta]]
[[Sa:Bibyin Afrika]]
[[Sa:Bibyin A̱tyin Afrika]]
bo86yeerqnxzqvxsh7yivjdu6y4avcr
Sadiq Daba
0
675
15437
14402
2022-07-31T18:57:32Z
Kambai Akau
15
wikitext
text/x-wiki
{{Databox}}
'''Sadiq Abubakar Daba''', a̱tyu á̱ ku ngyei '''Sadiq Daba''' (a̱ ku nsaan a̱tuk mam 3 Zwat Tsat 2021) a̱ ku yet a̱tyumaat Telvishon Naijeriya wa.<ref>[http://pulse.ng/movies/sadiq-daba-5-things-you-should-know-about-amaa-2015-best-actor-in-a-leading-role-winner-id4207805.html "5 things you should know about AMAA 2015 'Best Actor in A Leading Role' winner"]. Pulse.ng</ref> Ma̱ a̱lyia̱ 2015, a̱ ku yet a̱gwak maat a̱ si̱ shyia̱ za̱nang [[Africa Movie Academy Award for Best Actor]] mat kap hu nang gu kyiak da̱ á̱ ku ngyei nggu "Inspekto Waziri" a̱ni mi̱ ''[[October 1 (film)|October 1]]''.<ref>[https://web.archive.org/web/20160616231236/http://leadership.ng/news/470980/i-got-emotional-receiving-amaa-award-sadiq-daba "I Got Emotional Receiving AMAA Award – Sadiq Daba"]. Leadership.ng.</ref><ref>[https://punchng.com/veteran-actor-sadiq-daba-is-dead "Veteran actor Sadiq Daba is dead"]. The Punch.</ref>.
==Ya̱fang==
<references/>
[[Sa:Naijeriya]]
[[Sa:kwi_2021]]
pc0p5r2d9muyl4cu5bthcc1s7qbdpge
Salvador Dalí
0
676
14403
13458
2022-06-13T10:28:21Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
[[Fail:Salvador Dalí 1939.jpg|197px|right]]
'''Salvador Domingo Felipe Jacinto Dalí i Domènech''', Marquess a̱son a̱si̱ Dalí a̱si̱ Púbol (11 Zwat Tswuon 1904 – 23 Zwat Jhyiung 1989) ku yet a̱tyunyia̱ nghwughwu surreal a̱byin [[Si̱pen]] wa nang á̱ ku lyen mat kwop nggu hu di̱ lyenta̱m, a̱ca̱caat ghwang mi̱ ghwang, ma̱ng á̱kang nghwughwu na̱ tyei a̱ga̱de a̱ni di̱ ta̱m nggu hu.
[[Sa:Á̱nietnyia̱ nghwughwu ma̱ng á̱nietlyen ghwang a̱ka̱sa]]
jwqi31k4s2xomwtkyv9c0evzzgczj5f
Sanga
0
677
8902
8901
2022-05-16T12:54:27Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[Sangga]]
apa4ethl1thvrtkzkmy89ri6i9qrztd
Sangga
0
678
15922
15921
2022-08-14T19:02:35Z
Kambai Akau
15
/* A̱ka̱fwuop nta */
wikitext
text/x-wiki
'''Sangga''' yet Sot A̱gwomna̱ti Malí, ji̱ shyia̰ a̱tak Sitet Ka̱duna, Naijeriya. A̱pyia̱ Sot ji ka̱ shyia mi̱ a̱keang á̱ ngyei Gwantu. Shi kyai ̰abyin hu tãt Cīkwop Jhyung, mãng Cyi A̱kubunyiung ma̱ng nswak nfeang mi̱ nyuung. Awot akpa ̰aniet ka mĩ Sot ji sĩ yet Cĩkwob ncĩ mĩng nswaknfwon mĩ nyuung, mĩng Cĩ nyaaĩ mĩng nswak̃ ̱aninaĩ mãfwon mĩ jen n ̱ang ãkun fang á̱niet ba ma̱
̱a̱lyia̱ Cyikwob Sweang ma̱ng cyi a̱taa mat á̱ ka lyen á̱niet a̱mang bya shyia̱ mi̱ Sot A̱gwomna̱ti Mali si̱ Sangga ji a̱ni.
==Ya̱fang==
<references/>
==A̱ka̱fwuop nta==
{{Commons category-inline|Sanga|Sangga}}
[[Category:Susot a̱gwomna̱ti mali Naijeriya]]
7iirpczslzitlh38uth5vprt59grqjx
Sani Abacha
0
679
8911
8910
2022-05-16T12:54:28Z
Jon Harald Søby
8
3 revisions imported
wikitext
text/x-wiki
Sani Abacha GCFR (20 September 1943 – 8 June 1998) ku yet a̱gwak a̱khwot a̱kop Najeriya wa, a̱ si̱ nba̱ng tyok Najeriya neet 1993 si̱ bai a̱khwu ngu ka ma̱ a̱liye 1998.
==Ya̱fang==
<references/>
[[en.Sani Abacha]]
qxyvbno5tsm34yf6mrqbgy5qn31vtng
Sa̱nusi Lamido Sa̱nusi
0
680
8919
8918
2022-05-16T12:54:28Z
Jon Harald Søby
8
7 revisions imported
wikitext
text/x-wiki
'''Muhammadu Sa̱nusi II''' (Muhamma̱du Sa̱nusi a̱nefeang; byin a̱tuk 31 Zwat 7 1961), a̱tyu a̱bungyei di̱n khwii Khalifa Sa̱nusi II wa yet A̱gwak nkhwii Tijanniyah Sufi ma̱ bin Naijeriya ka. A̱ shyia̱ ma̱ niet ba̱ nyia̱ tyok mi̱n Sot Dabo ji shyia̱ ma̱ khukhwop a̱keang ma̱ng Si̱tet Ka̱no ji a̱ni.
A̱ yet byin Ka̱no wha ma̱mi a̱lyia̱ 1961, a̱ka̱nbwon a̱tyutyok a̱ku ngyei Muhamma̱du Sa̱nusi I. A̱ku shyia̱ yet A̱gwam da̱nian a̱khwú a̱na̱nyiuk a̱tyia̱ gu ka a̱ku ngyei Ado Bayero a̱ni a̱tuk 8 Zwat 6 2014.
A̱ngba̱m jen tyok ngu ji ba̱ng si̱ nat mam a̱n ti̱n gu a̱ni, A̱gwam Sa̱nusi ku ca̱t A̱za Naijeriya ka ka̱ shyia̱ a̱shai di̱ nswat ku mim a̱ni. A̱tuk 9 Zwat 3 2020 kya Si̱tet Ka̱no ji ku nti̱n gu di̱n tyok hu.
==Ya̱fang==
<references/>
7wn50zeh1h8m4z1pqvto4rl0hpx6vjo
Sa̱udi A̱rabiya
0
681
14758
14404
2022-07-04T08:32:30Z
Kwamikagami
349
wikitext
text/x-wiki
{| class="wikitable" align=right border width="200"
| colspan="2" align=center|'''Tyok Sa̱udi A̱rabiya'''<br> ٱلْمَمْلَكَة ٱلْعَرَبِيَّة ٱلسَّعُوْدِيَّة, ''al-Mamlakah al-ʿArabīyah as-Saʿūdīyah'' (La̱ra̱ba)
|-
| colspan="2" align=center|[[Fail:Saudi Arabia (orthographic projection).svg|thumb|300px|center]] <sub>Ta̱si̱la a̱byin Sa̱udi A̱rabiya</sub>
|-
| [[Fail:Flag of Saudi Arabia.svg|thumb|Tuta a̱byin Sa̱udi A̱rabiya]]
|-
| [[Fail:Emblem of Saudi Arabia.svg|thumb|A̱lama a̱byin Sa̱udi A̱rabiya]]
|-
|}
A̱byin '''Sa̱udi A̱rabiya''', (La̱ra̱ba: ٱلسَّعُوْدِيَّة, ''As-Saʿūdīyah''; Shong: Saudi Arabia /ˌsɔːdi əˈreɪbiə/, ku /ˌsaʊ-/) á̱ lyen ma̱ng a̱lyoot a̱gwomna̱ti ka nang '''Tyok Sa̱udi A̱rabiya''', '''TSA̱''', a̱ni (La̱ra̱ba: ٱلْمَمْلَكَة ٱلْعَرَبِيَّة ٱلسَّعُوْدِيَّة, ''al-Mamlakah al-ʿArabīyah as-Saʿūdīyah''; Shong: Kingdom of Saudi Arabia, KSA), yet a̱byin kya di̱ fam a̱byin Jenshyung A̱siya hu. Kikya kup a̱gba̱ndang kap Li̱m-a̱byin A̱rabiya wu, ma̱ng shi kyai a̱byin ku tat kpa̱mkpaan ma̱ng kilomita a̱ma̱ntanaai 2,150,000 (met a̱ma̱ntanaai 830,000). A̱byin Sa̱udi A̱rabiya kya swak ma̱ng shi di̱ fam-a̱byin A̱ka̱wa̱tyia̱ A̱tyin hu, ma̱ng a̱feang mi̱ Ta̱cya̱ A̱la̱ra̱ba ka. Ka̱ byia̱ a̱gi̱gak ma̱ng bibyin [[Urdun]] a mbeang Irak di̱ fam a̱za hu, Kuweit di̱ fam a̱za-a̱tyin hu, [[Ka̱ta̱r]], Bahara̱yin, ma̱ng Muná̱pyia̱ Tyokkpaa̱pyia̱ A̱la̱ra̱ba hu di̱ fam a̱tyin hu, Oman di̱ fam a̱tak-a̱tyin hu ma̱ng Yemen di̱ fam a̱tak hu; a̱wot [[A̱ngam A̱sa̱khwot A̱ka̱ba]] wu wa si̱ ghai nka ma̱ng bibyin [[Ma̱sa̱r]] a mbeang [[Isi̱rela]] di̱ fam a̱za-jenshyung hu. A̱byin Sa̱udi A̱rabiya kya ma̱nyin nka yet a̱byin ka̱ byia̱ lang khwong kyai a̱sa̱khwot nyiung ma̱ng [[A̱shong Kyai A̱sa̱khwot]] wu ma̱ng [[A̱ngam A̱sa̱khwot Parsi]] wu da̱ a̱ka̱nyiung, a̱wot a̱gba̱ndang kap a̱byin wu yet a̱khwot kyai a̱byin wa, a̱byin ka̱ shyia̱ a̱tatak, steppe ma̱ng a̱ka̱fan. A̱keangtung nka ka nang á̱ ngyei Riyadh a̱ni kikya si̱ ka ngyet a̱gba̱ndang a̱keang nka wu a̱ swak ma̱ng shi kyai a̱ni, a̱wot a̱ka̱keang Ma̱ka ma̱ng Ma̱dina si̱ yet a̱tsatsak á̱ka̱wa̱tyia̱ naat mbwuot nkyang taada ma̱ng a̱dini nka wu.
==Ya̱fang==
<references/>
{{Template:Bibyin A̱siya}}
[[Sa:Bibyin_swanta]]
[[Sa:Bibyin_A̱siya]]
[[Sa:Bibyin_Jenshyung_A̱siya]]
pjciyjav93qzf6uo882c25s4yi7vecn
Sa̱ul
0
682
14405
13460
2022-06-13T10:28:31Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
[[Fail:Seoul at night (cropped).jpg|thumb|A̱byia̱k Seongsan ka ka̱ sai a̱tyetuk]]
'''Sa̱ul''' (Kworiya: 서울 /sʰʌ̹uɭ/; bwan a̱ca̱caat 'A̱keangtung'), á̱ lyen ma̱ng a̱lyoot a̱gwomna̱ti ka nang A̱gba̱ndang A̱keang Sa̱ul wu Nang Á̱ Khap Á̱ Sak a̱ni, wa yet a̱keangtung ma̱ng metropolis laai lan ma̱ng shi a̱ swak kuzang hu ma̱ a̱byin [[Kworiya A̱tak]]. Sa̱ul byia̱ shi á̱niet miliyon 9.7 hwa, a̱ si̱ ba̱ yet a̱tyia̱ka̱u Shi Kyai A̱keangtung Sa̱ul ka ma̱ng a̱beam a̱hyia̱k metropolit Incon ka ma̱ng provin Gyeonggi hu.
==Ya̱fang==
<references/>
==A̱ka̱fwuop nta==
{{Template:A̱ka̱keang swanta}}
[[Sa:Kworiya A̱tak]]
7dlfso28a580noozo9r8o6koin7pzbl
Xiao Zhan
0
683
14468
13461
2022-06-13T10:36:31Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
{| class="wikitable" align=right border width="200"
| colspan="2" align=center| '''Xiao Zhan'''<br>'''肖战'''
|-
| colspan="2" align=center|[[Fail:Xiao_Zhan_at_the_Weibo_Night_Ceremony_January_11_2020.jpg|250px]]
|-
|}
'''Xiao Zhan''', á̱ ka ngyei '''Sean Xiao''' a̱ni (Caina: 肖战, byin a̱tuk mam 5 Zwat 10, 1991), yet a̱tyu nkhang Telvishon [[Caina|Ri̱pobi̱lik Á̱niet Caina]] wa.<ref>[https://www.thepaper.cn/newsDetail_forward_1427397 肖战:还没准备好做一名偶像]</ref><ref>[https://ent.qq.com/a/20160128/056276.htm 肖战:我是暖男与小黑暗结合体 喜欢温婉居家型]</ref>
== Ya̱fang ==
<references/>
== A̱ka̱fwuop nta ==
*[https://weibo.com/u/1792951112 Sean Xiao on Sina Weibo]
[[Sa:Á̱niet Caina]]
[[en:Xiao Zhan]]
hkczb0hlc1nz3ujas4yxumf76vmq1yk
Sejong a̱gba̱ndang wu
0
684
8956
8955
2022-05-16T12:54:30Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[Sezong a̱gba̱ndang wu]]
gwsqmp6osawzhmtu6a4zjea24mea8wt
Sen Helena, Ascension ma̱ng Tristan da Cunha
0
685
14648
14634
2022-06-29T12:53:15Z
Kambai Akau
15
wikitext
text/x-wiki
{{Country
|name = ''Sen Helena, Ascension ma̱ng Tristan da Cunha''<br>Saint Helena, Ascension and Tristan da Cunha (Shong)
|flag = Flag of the United Kingdom.svg
|coa =
|image = Saint Helena, Ascension and Tristan da Cunha in United Kingdom.svg
|capital = Jamestown
|area = 394
|population = 5,633
|year = 2016
}}
'''A̱bwom a̱byin''': "God Save the Queen" ("A̱gwaza Kup A̱yang-a̱byintyok wu")<br>[[Fail:United States Navy Band - God Save the Queen.ogg]]
Bibyin A̱ka̱wa̱tyia̱ A̱sa̱khwot '''Sen Helena, Ascension ma̱ng Tristan da Cunha''', yet [[Bibyin Nta Bi̱ri̱ti̱n|A̱byin Nta Bi̱ri̱ti̱n]] kya di̱ fam A̱tak [[A̱gba̱ndang Kyai A̱sa̱khwot Ati̱lantik|Ati̱lantik]] hu ka̱ byia̱ A̱byin A̱ka̱wa̱tyia̱ A̱sa̱khwot Sen Helena, A̱byin A̱ka̱wa̱tyia̱ A̱sa̱khwot Ascension ma̱ng sot bibyin a̱ka̱wa̱tyia̱ a̱sa̱khwot Tristan da Cunha a mbeang A̱byin A̱ka̱wa̱tyia̱ A̱sa̱khwot Gough. Á̱ ku ngyei a̱lyoot ka Sen Helena ma̱ng Bibyin Ta̱yuk kya ba̱ng si̱ tat Zwat A̱kubunyiung a̱lyia̱ 2009, mi̱ di̱ jen nang á̱ kpa nka kpa̱m cam a̱byin fai ku nwuak bibyin a̱ka̱wa̱tyia̱ a̱sa̱khwot ghyáng hu a̱ca̱caat shi a̱ni, á̱ si̱ ntyia̱ nhu a̱mgba̱m di̱ sot jhyiung a̱ta̱fa Bungtyok ka.
==Ya̱fang==
<references/>
{{Bibyin Afrika}}
[[Sa:Bibyin_swanta]]
[[Sa:Bibyin_Afrika]]
[[Sa:Bibyin_Jenshyung_Afrika]]
sdvlhr7u8aqmnxms8f4porqskr2lmod
Senegat
0
686
15135
15134
2022-07-17T15:30:23Z
Kambai Akau
15
wikitext
text/x-wiki
{{Country
|name = Ri̱pobi̱lik Senegat<br>République du Sénégal (Fi̱ransa)<br>Réewum Senegaal (Wolof)<br>𞤈𞤫𞤲𞤣𞤢𞥄𞤲𞤣𞤭 𞤅𞤫𞤲𞤫𞤺𞤢𞥄𞤤𞤭, ''Renndaandi Senegaali'' (Fa̱taa)<br/>جمهورية السنغال, ''Jumhuriat As-Sinighal'' (La̱ra̱ba)
|flag = Flag of Senegal.svg
|coa = Coat of arms of Senegal.svg
|image = Senegal (orthographic projection).svg
|capital = Dakar
|area = 196,712
|population = 15,854,323
|year = 2018
}}
A̱byin '''Senegat''' (Fi̱ransa: Sénégal; Wolof: Senegaal; Fa̱taa: 𞤅𞤫𞤲𞤫𞤺𞤢𞥄𞤤𞤭, ''Senegaali''; La̱ra̱ba: السنغال, ''As-Sinighal''), á̱ lyen ma̱ng a̱lyoot a̱gwomna̱ti nka nang '''Ri̱pibi̱lik Senegat''' (Fi̱ransa: République du Sénégal; Wolof: Réewum Senegaal; Fa̱taa: 𞤈𞤫𞤲𞤣𞤢𞥄𞤲𞤣𞤭 𞤅𞤫𞤲𞤫𞤺𞤢𞥄𞤤𞤭, ''Renndaandi Senegaali''; La̱ra̱ba: جمهورية السنغال ''Jumhuriat As-Sinighal''), yet a̱byin di̱ fam-a̱byin [[Jenshyung Afrika]]. A̱byin Senegat byia̱ a̱gi̱gak ma̱ng bibyin Ma̱uri̱teniya di̱ fam a̱za hu, [[Mali]] di̱ fam a̱tyin hu, [[Gini]] di̱ fam a̱tak-a̱tyin, ma̱ng [[Gini-Bisa̱u]] di̱ fam a̱tak-jenshyung. A̱byin Senegat nyia̱ kpa̱mkpaan keang a̱byin Gambya ka̱ myian a̱fafap tyiang a̱byin di̱ khwong A̱ghyui Gambya ka di̱ tityak, ka̱ bu ghai fam-a̱byin a̱tak Senegat nang á̱ ngyei Kasamance a̱ni neet nkap ghyáng a̱byin na. A̱byin Senegat bu byia̱ gak a̱sa̱khwot ma̱ng a̱byin Kabo Verde. A̱keang Dakar kya yet a̱keangtung kwai nfwuo á̱niet ma̱ng naat mbwuot kaswuo a̱byin ka.
==A̱bwom a̱byin==
'''A̱bwom a̱byin''': "Pincez Tous vos Koras, Frappez les Balafons" ("Nyi Tsot A̱yaakora Nyin ba, Tsot Ba̱lafon Nyin ji")<br>[[File:National Anthem of Senegal.ogg]]
{{Bibyin Afrika}}
[[Sa:Bibyin_swanta]]
[[Sa:Bibyin_Afrika]]
[[Sa:Bibyin_Jenshyung_Afrika]]
[[Sa:Senegat]]
kd2kneti2ea653zqq8emxqlgnlxmqoj
Sezong a̱gba̱ndang wu
0
687
15137
15136
2022-07-17T15:45:01Z
Kambai Akau
15
wikitext
text/x-wiki
{{Databox|item=Q37682}}
'''Sezong''' (ku Sejong) '''A̱gba̱ndang wu''' (세종대왕, yei Kworiya: /se̞(ː)dzo̞ŋ/; 15 Zwat Tswuon 1397 – 8 Zwat Nyaai 1450) wa ku yet a̱gwam a̱naai lang á̱gwam Coson wu ma̱ a̱byin Kworiya. Nggu wa ku yet nggwon-a̱sam a̱tat A̱gwam Taezong da̱ a̱vwuo A̱yang-a̱byin Wongyeong, a̱wot a̱ si̱ ka nwuak nggu shi yet A̱fai A̱gwam a̱ Fwuong Bungtyok lilyim a̱nietkhwop nggu wu, A̱gba̱ndang A̱fai A̱gwam Yangnyeong, nang á̱ ku ta̱kpa̱i a̱lyoot ka a̱ san da̱ a̱vwuo nggu. A̱ si̱ nyeak cuktyok ji ma̱ a̱lyia̱ 1418, a̱wot mi̱ ndyia̱ a̱naai a̱son nang gu nta̱bat nyia̱ tyok a̱ni, Taezong si̱ ka nnyia̱ tyok nang a̱tyuba̱ngtyok da̱ a̱kwonu a̱gwam, a̱ si̱ ba̱ hyat a̱kwang Sezong wu nang á̱ ngyei Sim On ma̱ng á̱kpa̱ndang ta̱m kpa̱mkpaan nggu ba.
==Fang a̱zanson==
*Kim, Yung Sik. (1998). "Problems and Possibilities in the Study of the History of Korean Science," ''Osiris'' (2nd series, Volume 13, 1998): 48–79.
*''King Sejong the Great: the Light of Fifteenth Century Korea'', Young-Key Kim-Renaud, International Circle of Korean Linguistics, 1992, softcover, 119 pages, ISBN 1-882177-00-2
*Kim-Renaud, Young-Key. 2000. Sejong's theory of literacy and writing. ''Studies in the Linguistic Sciences'' 30.1:13–46.
*Gale, James Scarth. ''History of the Korean People'' Annotated and introduction by Richard Rutt. Seoul: Royal Asiatic Society, 1972..
==A̱ka̱fwuop nta==
*[https://web.archive.org/web/20021214094418/http://cinema.sangji.ac.kr/WINDOW/window/win00045.htm King Sejong's Confucian Humanism in the Early Choson Period] (di̱n Shong)
*[https://web.archive.org/web/20070614134516/http://dicimg.paran.com/100_img/jpg/180/p18050200003.jpg Location of the four forts and the six posts]
*[http://www-personal.umich.edu/~jbourj/money5.htm Ghwughwu A̱gwam Sezong (ku Sejong) tazwa kurum pepa Won Kworiya 10000.]
*[https://web.archive.org/web/20160304130017/http://www.kscpp.net/LinkClick.aspx?fileticket=LMi4%2FubO8ds%3D&tabid=115&mid=528 King Sejong the Great: The Everlasting Light of Korea.] (pdf)
[[Sa:Sezong a̱gba̱ndang wu| ]]
[[Sa:Byin 1397]]
[[Sa:Kwi 1450]]
[[Sa:Á̱gwam Kworiya sa̱ncuri 15 ba]]
[[Sa:Á̱niet ba̱ tsa nvak lyuut]]
[[Sa:Kukwi mbwak zwan shuga]]
[[Sa:Á̱tat-a̱ghyi lyen lilyem neet Kworiya]]
[[Sa:Á̱nietkhwibuda Kworiya]]
[[Sa:Á̱nietkhwikunfu Kworiya]]
plp65o1566ri70fdmajrpam7r44uis5
Shai ntak
0
688
12439
9031
2022-05-21T05:12:01Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
[[Fail:Gray1240.png|thumb|Nkap tak a̱zayak na (''swáng a̱lyiat Latin'')]]
'''Shai ntak''' yet kap vam hwa ku doot neet ma̱ a̱khwut si̱ sak ma̱ a̱ghyi-ntak. Shai ntak ji byia̱ a̱kpa̱u a̱junjung kunkup á̱ ngyei ''Tibia'' di̱n Shong a̱ni.
==Ya̱fang==
<references/>
rnc2yjpcpeeom17p4etdnmg3qnpoq2b
Shantak
0
690
9035
9034
2022-05-16T12:54:32Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[Shai ntak]]
ms6ucwty2g7lsepwfiw1dxttgrq6tsm
Shikava
0
691
9037
9036
2022-05-16T12:54:33Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[Cyia̱ga̱vang]]
ih00eqstt0ayjo7s7t6b78y3siq3xcl
Shita
0
692
12440
9062
2022-05-21T05:12:11Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
[[Fail:Piper_nigrum_-_Köhler–s_Medizinal-Pflanzen-107.jpg|thumb|''Piper nigrum'' (A̱dyundyung shita), neet di̱ Koehler (1887)]]
'''Shita''' ji neet da̱ a̱gba̱ndang kwai ma̱ng susot a̱ka̱kwon koot nsum nia.
==Ya̱fang==
<references/>
gysa85na47tpf09p2ln939m0p6c55lr
Shong
0
693
9064
9063
2022-05-16T12:54:33Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[Shong (a̱lyem)]]
pikxoguwhv5b2vaypkoxbqy3ls1wbni
Shong-a̱tswon
0
694
9066
9065
2022-05-16T12:54:33Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[Shong a̱tson]]
a44ybshsat8vy4c0ibctcz9555hbtz3
Shong (a̱lyem)
0
695
14515
14514
2022-06-13T23:25:52Z
Kambai Akau
15
wikitext
text/x-wiki
[[File:English language distribution.svg|thumb|A̱ka̱vwuo nang á̱ ndyiat Shong mi̱ swanta hu (a̱ka̱vwuo nang Shong ja yet a̱lyem mbyin ka̱ swak ma̱ng shi á̱niet ma̱ a̱sa̱khwot bula ma̱ng a̱ka̱vwuo nang Shong ja yet a̱lyem a̱gwomna̱ti ku á̱ lyiat nji ba̱t a̱wot jija yet a̱lyem mbyin ka bah ma̱ a̱sa̱khwot kyai tswazwa)]]
A̱lyem '''Shong''' ku '''Nggi̱li̱t''' yet a̱lyem a̱nyiung kya di̱ lilyem Jaman Jenshyung ku yet kap sa lilyem Ndo-Yurop hu a̱ni, nang á̱tsak á̱niet ba̱ ku tsa lyiat ma̱ng a̱nka, bibya ku yet á̱niet jen tsa Nce A̱ka̱wa̱tyia̱ a̱byin [[Nggi̱lan]] ba. Á̱ ku si̱ mbwuo a̱lyoot '''Nggi̱li̱t''' ka neet Anggi̱let bibya, ba̱ yet a̱banwap a̱nyiung di̱ nwap A̱jaman gbangbang ji ka̱ ku neet bai a̱byin a̱k̃ya nang á̱ ngyei [[A̱gba̱ndang Bi̱ri̱ti̱n]] a̱ni, a̱wot á̱ si̱ ka nang fam a̱byin mba hu a̱lyoot mba ka, [[Nggi̱lan]] á̱zanson. A̱mgba̱m lyulyoot nfeang hu neet Anggi̱liya, a̱fi̱fap-a̱byin a̱ghyang di̱ [[Kyai A̱sa̱khwot Ba̱ltik]] hu ku vwuon ma̱ng fam-a̱byin Anggi̱liya A̱tyin, fam A̱tyin a̱byin Nggi̱lan ku byia̱ ma̱ng a̱nhu a̱yaakawunti nang Norfolk, Suffolk ma̱ng Essex a̱ni. Lilyem ku lan a̱ swak byia̱ a̱meang ma̱ng Shong ji hwa yet Frisiya ma̱ng Sakson A̱tak, a̱wot swáng a̱lyiat nji ji ku kyiai ma̱ng lilyem Jaman ghyáng nang A̱khwukhwop Norse (a̱lyem Jaman A̱za a̱ghyang), ma̱ng Lati̱n mbeang Fi̱ransa.<ref name="Wolff">Finkenstaedt, Thomas; Wolff, Dieter (1973). ''"Ordered profusion; studies in dictionaries and the English lexicon"''. C. Winter. ISBN 978-3-533-02253-4.</ref>
==Ya̱fang==
<references/>
[[Sa:Lilyem_swanta]]
[[Sa:Lilyem_Yurop]]
[[Sa:Lilyem_Yurop_Jenshyung]]
[[Sa:Lilyem_A̱gba̱ndang_Bi̱ri̱ti̱n]]
[[Sa:Lilyem Ndo–Yurop]]
i9osnrinwcsyk9rvdsqb1da8c8x80h1
Shong a̱tson
0
696
12441
9094
2022-05-21T05:12:21Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
'''Shong a̱tson''' hu (á̱ ka ndyuut '''shong a̱tswon''') yet jen ja ma̱ng mam ku doot neet di̱ tyak a̱kyetuk (nang tswam nyai a̱ni) si̱ sak jen nang a̱vwuo ka nkak a̱ni, [[A̱tsotson|tsotson]] ka ka̱ ma ntat.
==Ya̱fang==
<references/>
mq6mt3l232vxbitrkgi6tn9gkkuvz16
Shovet
0
697
12442
9110
2022-05-21T05:12:31Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
'''Shovet''' yet kyangtam ha, a̱ byia̱ a̱ba jojoot tswam/kwon, a̱si byia̱ ba pepeet tswam ma̱ a̱tam ka. Shovet yet kyangtam kyuak nkyang nya namg a̱jijak, mbin, mbeang a̱cuwang nfang. Ka̱ashim a̱ nlung avwo mang ngu.
[[Fail:Unloading flood relief supplies at Gilgit Air Base 2010-09-18 1.jpg|thumb|A̱ghyang a̱niet a̱ kyiak a̱yaashovet a̱zanghwuan]]
==Ya̱fang==
<references/>
hlgt4bqsi4ej4ee9vyz7p9wwute8ox2
Shwai
0
698
12443
9126
2022-05-21T05:12:41Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
[[Fail:Tetragonula carbonaria (14521993792).jpg|thumb|Shwai jhyang]]
'''Shwai''' (á̱kpa: '''shwaí''') yet a̱bacyuang nyám ja ji̱ byia̱ nfeap a̱ni a̱wot ji̱ si̱ ka mbyia̱ a̱meang ma̱ng sunsong ma̱ng [[ga̱swan]], á̱ mun lyen mba ma̱ng ta̱m mba hu di̱ shyei nzwa [[kywat]] ma̱ng koot tong (nang mi̱ kak tangka̱i shwai ku lan yet a̱ni).
==Ya̱fang==
<references/>
j3re8mha9cxobel1aqlvr46mijbri8h
Shwit
0
699
14410
13466
2022-06-13T10:29:16Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
{| class="wikitable" align=right border width="200"
| colspan="2" align=center|'''Munswat Shwit'''<br>Schweizerische Eidgenossenschaft (Jami̱ni)<br>Confédération suisse (Fi̱ransa)<br>Confederazione Svizzera (Italiya)<br>Confederaziun svizra (Romansh)</br>Confoederatio Helvetica (Latin)
|-
| colspan="2" align=center|[[Fail:Switzerland (orthographic projection).svg|thumb|300px|center]] <sub>Ta̱si̱la a̱byin Shwit</sub>
|-
| [[Fail:Flag of Switzerland.svg|thumb|Tuta a̱byin Shwit]]
|-
| [[Fail:Coat of arms of Switzerland.svg|thumb|A̱lama a̱byin Shwit]]
|-
|}
A̱byin '''Shwit''', á̱ lyen ma̱ng a̱lyoot a̱gwomna̱ti ka nang '''Munswat Shwit''' hu, yet a̱byin kya nang bibyin ghyáng keang di̱ tityak a̱ni ka̱ swan da̱ a̱vwuo ka nang nfam a̱byin Jenshyung, A̱ka̱wa̱tyia̱ ma̱ng A̱tak Yurop na myim a̱ni. Ka̱ yet ri̱pobi̱lik mundundung kya a̱ shyia̱ ma̱ng a̱yaakanton 26, a̱wot a̱keangtung ka si̱ shyia̱ a̱keang Bern. A̱byin Shwit byia̱ a̱gi̱gak ma̱ng bibyin [[Italiya]] di̱ fam a̱tak hu, [[Fi̱ransa]] di̱ fam jenshyung hu, [[Jami̱ni]] di̱ fam a̱za hu ma̱ng A̱sti̱riya a mbeang Li̱kta̱nstain di̱ fam a̱tyin hu. Ka̱ ka̱u di̱ si̱sak nang lili a̱byin ka yet a̱ni, di̱n nkap Pi̱lato Shwit hu, A̱li̱pi wu ma̱ng Jura hu, ka̱ si̱ ka ngaat kup shi a̱swap kilomita a̱ma̱ntanaai 41,285 (met a̱ma̱ntanaai 15,940) ka̱ si̱ byia̱ shi kyai a̱byin kilomita a̱ma̱ntanaai 39,997 (met a̱ma̱ntanaai 15,443). Shimba nang A̱li̱pi wu wa kup a̱gba̱ndang kap a̱byin wu a̰ lan, shi á̱niet Shwit hu ku shyia̱ kpa̱mkpaan ma̱ng miliyon 8.5 la̱u ku si̱ swak di̱ fam pi̱lato hu hwa, a̱vwuo ka nang a̱ca̱cet a̱ka̱keang na̱ swak ma̱ng shi ma̱ng á̱ka̱wa̱tyia̱ kaswuo na nshyia̱, nang a̱ka̱keang Zürich, Geneva ma̱ng Basel.
==Ya̱fang==
<references/>
==A̱ka̱fwuop nta==
{{Template:Bibyin Yurop}}
[[Sa:Bibyin_swanta]]
[[Sa:Bibyin_Yurop]]
[[Sa:Bibyin_A̱ka̱wa̱tyia̱_Yurop]]
[[Sa:Shwit]]
kcg3odd9660c6vr4s3lqr1whi8j3fnl
Shwuak-mai
0
700
9144
9143
2022-05-16T12:54:36Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[Shyuak-mai]]
fsgjufos0x73raz2kdw863etylwg2r6
Shyuang-mai
0
701
15223
15221
2022-07-18T05:59:36Z
Kambai Akau
15
wikitext
text/x-wiki
{{Databox|item=Q487}}
'''Shyuang-mai''' (''a̱ka̱nyiung'': shyuak-mai) yet a̱bamai kya ka̱ shei nyia̱ fwuo a̱tyubishyi sai.
Shyuang-mai tyei nang a̱ci̱ci̱p á̱ghyi ba fwung. Á̱niet lyen nkyang nyia̱ ka̱ a̱yin shyuang mai a̱nciri̱ng a̱ kwop a̱nggang bah.
== A̱ka̱fwuop nta ==
{{Commons category|Smiling}}
* [http://news.bbc.co.uk/1/hi/health/3105580.stm BBC News: Scanner shows unborn babies smile] (di̱n Shong)
[[Category:Mai]]
[[Category:A̱nu]]
[[Category:A̱gwai]]
bo4o3sa15nek3h3ywi44kdal6v7uvfe
Sidni
0
702
9156
9155
2022-05-16T12:54:37Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[Si̱dni]]
87kduflafbw37wqf7ew2zg665xncccz
Sira Lyon
0
703
14411
13855
2022-06-13T10:29:21Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
{{Country
|name = Ri̱pobi̱lik Sira Lyon<br>Republic of Sierra Leone (Shong)
|flag = Flag of Sierra Leone.svg
|coa = Coat of arms of Sierra Leone.svg
|image = Sierra Leone (orthographic projection).svg
|capital = Freetown
|area = 71,740
|population = 8,059,155
|year = 2015
}}
'''A̱bwom a̱byin''': national_anthem = "High We Exalt Thee, Realm of the Free" ("Tswazwa-tswazwa Zi̱ Ja̱u Ang, Tyok Mba Ba̱ Yet A̱sa̱t Hu")
A̱byin '''Sira Lyon''' (Shong: Sierra Leone /siˌɛrə liˈoʊn(i)/, ku TM: /siˌɛərə -/, [[Muná̱pyia̱ Sí̱tet|MS]]: /ˌsɪərə -/), á̱ lyen ma̱ng a̱lyoot a̱gwomna̱ti nka nang '''Ri̱pobi̱lik Sira Lyon''' wu (Shong: Republic of Sierra Leone) a̱ni, ku '''Salon''' nang á̱kum á̱niet a̱byin ka ngyei a̱ni, yet a̱byin kya di̱ fam a̱tak-jenshyung khwong kyai a̱sa̱khwot [[Jenshyung Afrika]]. Ka̱ byia̱ a̱gi̱gak ma̱ng bibyin Laibiriya di̱ fam a̱tak-a̱tyin hu ma̱ng [[Gini]] di̱ fam a̱za-a̱tyin hu. A̱byin Sira Lyon byia̱ wun ku li lili tropik hwa ma̱ng lili a̱beam ku vwuon vi̱vwuon a̱ni kyiak neet di̱ sa̱va̱na naat sóp ku la̱u byia̱ va za a̱ni, ka̱ si̱ byia̱ shi kyai a̱byin ku tat kilomita a̱ma̱ntaa̱naai 71,740 (met a̱ma̱ntaa̱naai 27,699) ma̱ng shi á̱niet ku tat 7,092,113 mi̱ di̱ sa̱nsut a̱lyia̱ 2015 ji. A̱keangtung nka ka ma̱ng a̱gba̱ndang a̱keang a̱ swak ma̱ng shi wu wa yet Freetown. Á̱ ka̱u a̱byin ka di̱ nfam tyok a̱byin
nfwuon nang á̱ bu si̱ nka̱u di̱ a̱bantyok (ku a̱yaadistrik) swak ma̱ng a̱taa a̱ni. A̱byin Sira Lyon yet ri̱pobi̱lik kya di̱ kpa̱m cam a̱byin ka̱ byia̱ unicameral parliament ma̱ng a̱kwak a̱son a̱byin nang á̱niet a̱byin kya khai nggu di̱di̱r a̱ni.
==Ya̱fang==
<references/>
{{Bibyin Afrika}}
[[Sa:Bibyin_swanta]]
[[Sa:Bibyin_Afrika]]
[[Sa:Bibyin_Jenshyung_Afrika]]
75cvpo9tfsji2j82rzt6f81paj1qws3
Sitet Kpaa̱pyia̱
0
704
9169
9168
2022-05-16T12:54:37Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[Si̱tet Kpaa̱pyia̱]]
iea72p0flvbk6d957q2qpddhrcky0qp
Si̱dni
0
705
14412
13962
2022-06-13T10:29:26Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
[[Fail:Sydney Opera House and Harbour Bridge Dusk (3) 2019-06-21.jpg|250px|right|thumb|Si̱dni.]]
A̱keang '''Si̱dni''' ([[Shong]]: ''Sydney'' /ˈsɪdni/; Dharug: ''Gadi''; A̱gba̱ndang Si̱dni, Shong: ''Greater Sydney'', Dharug: ''Eora'') kya yet a̱keangtung si̱tet New South Wales, ma̱ng a̱si̱ ka̱ swak ma̱ng shi á̱niet a̱ni ma̱ a̱byin [[A̱strelya]] ma̱ng [[Osheniya]].
==A̱ka̱fwuop nta==
{{Template:A̱ka̱keang swanta}}
[[Sa:A̱strelya]]
[[Sa:A̱ka̱keang swanta]]
pm34elfdacn7lk4dnio84uwolxvyzb6
Si̱pen
0
706
14413
13469
2022-06-13T10:29:31Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
A̱byin '''Si̱pen''' (Si̱pen: España /esˈpaɲa/; [[Shong (a̱lyem)|Shong]]: Spain), ma̱ng a̱lyoot a̱gwomna̱ti ka yet '''Tyok Si̱pen''' (Si̱pen: Reino de España; Shong: Kingdom of Spain<ref name="auto">"[https://www.britannica.com/place/Spain Spain | Facts, Culture, History, & Points of Interest]" (di̱n Shong). Encyclopedia Britannica.</ref>), yet a̱byin kya di̱ fam a̱byin A̱tak-jenshyung Yurop, ka̱ si̱ byia̱ a̱yaateritori á̱ghyang ba̱ shyia̱ a̱ma̱nyi A̱na̱nwuai Gibra̱lta ka ma̱ng nta khwong kyai a̱sa̱khwot nka ji da̱ [[A̱gba̱ndang Kyai A̱sa̱khwot Ati̱lantik]] wu.<ref name="auto"/> Teritori vam-a̱byin nka mi̱ Yurop shyia̱ di̱ Li̱m-a̱byin Iberiya hwa a̱wot a̱yaateritori ba si̱ byia̱ susot bibyin a̱ka̱wa̱tyia̱ a̱sa̱khwot sweang: A̱byin A̱ka̱wa̱tyia̱ A̱sa̱khwot nang á̱ ngyei Ka̱na̱ri a̱ni ka̱nang á̱ ghwon khwong kyai a̱sa̱khwot A̱za Afrika hu, ma̱ng A̱byin A̱ka̱wa̱tyia̱ A̱sa̱khwot nang á̱ ngyei Baleari a̱ni di̱ Kyai A̱sa̱khwot Meditaroniya hu. A̱ka̱keang ti̱tamm Afrika á̱si̱ Ceuta, Melilla, ma̱ng Peñón de Vélez de la Gomera<ref>Morocco World News (29 Zwat A̱ni̱nai 2012). "[https://www.moroccoworldnews.com/2012/08/53630/spanish-military-arrest-four-moroccans-after-they-tried-to-hoist-moroccan-flag-in-badis-island/ Spanish Military Arrest Four Moroccans after they Tried to Hoist Moroccan Flag in Badis Island]" (di̱n Shong). Morocco World News.</ref> si̱ tyia̱ a̱byin Si̱pen ka̱ yet a̱byin Yurop ma̱nyin ka̱ byia̱ a̱yaateritori mi̱ [[Afrika|vam-a̱byin Afrika]] a̱ni. A̱cyuang bibyin a̱ka̱wa̱tyia̱ a̱sa̱khwot ma̱ a̱di̱di̱t di̱ Kyai A̱sa̱khwot Ali̱bora hu ka ngyet kap teritori Si̱pen hu. A̱tsak a̱byin wu byia̱ a̱gi̱gak ma̱ng [[Kyai A̱sa̱khwot Meditaroniya]] hu di̱ fam a̱tak ma̱ng a̱tyin; [[Fi̱ransa (a̱byin)|Fi̱ransa]], A̱ndora, ma̱ng A̱ngam A̱sa̱khwot Biskaya hu di̱ fam a̱za ma̱ng a̱za-a̱tyin; a̱wot di̱ fam jenshyung ma̱ng a̱za-jenshyung hwa Potugal ma̱ng A̱gba̱ndang Kyai A̱sa̱khwot Ati̱lantik wu nshyia̱ ma̱ a̱ca̱caat.
[[Fail:Bandera de España.svg|thumb|Tuta Si̱pen]]
[[Fail:Escudo de España (mazonado).svg|thumb|A̱lama a̱byin Si̱pen]]
[[Fail:EU-Spain (orthographic projection).svg|thumb|Ta̱si̱la a̱byin Si̱pen]]
==Ya̱fang==
<references/>
{{Template:Bibyin Yurop}}
[[Sa:Bibyin_swanta]]
[[Sa:Bibyin_Yurop]]
[[Sa:Bibyin_Jenshyung_Yurop]]
7e3697g27154i7gx31pmub6gd9hmup3
Si̱tet A̱bonyi
0
707
15418
15037
2022-07-28T16:28:17Z
Kambai Akau
15
wikitext
text/x-wiki
{{Databox}}
[[Fail:Unwana Beach, Ebonyi State.jpg|thumb|Khwong Unwana]]
[[Fail:Nigeria - Ebonyi.svg|thumb|Ta̱si̱la a̱byin Si̱tet A̱bonyi]]
'''Si̱tet A̱bonyi''' (A̱kum-a̱cyi: Ȯra Ebonyi) yet si̱tet ja di̱ fam a̱byin A̱tak-A̱tyin [[Naijeriya]], ji̱ byia̱ a̱gi̱gak ma̱ng [[Si̱tet Benuwe]], [[Si̱tet Inugu]] di̱ fam jenshyung hu, [[Si̱tet Ki̱ros Riva]] di̱ fam a̱tyin hu ma̱ng a̱tak-a̱tyin hu, a mbeang [[Si̱tet Abya]] di̱ fam a̱tak-jenshyung hu. Á̱ ku nwuak nji a̱lyoot A̱ghyui A̱bonyi kikya—a̱gba̱ndang kap nka wu shyia̱ di̱ fam a̱tak si̱tet hu hwa—Nkap a̱yaasi̱tet Abya ma̱ng Inugu nia nang á̱ shyuap á̱ si̱ ka mbwuo si̱tet ji ma̱ a̱lyia̱ 1996 a̱wot a̱keangtung ka si̱ shyia̱ a̱keang Abakaliki.
Nwap A̱kuma̱chyi wha yet a̱lyiak a̱ja. '''Abakaliki''' wa yet a̱gbandang a̱keang wu a̱ja wa si̱ bu yet a̱keang tung a̱niet ka. A̱ka̱keang a̱ghyang á̱ lyen mi̱ Si̱tet A̱bonyi a̱ni ni̱ nia yet: Afikpo, Onueke, Nkalegu, Ntezi Edda, Effium, Unwana, Isu, Onicha ma̱ng Ishiagu.
==Ya̱fang==
<references/>
{{Sí̱tet Naijeriya}}
[[Sa:Sí̱tet Naijeriya]]
[[Sa:Sí̱tet_Fam_A̱tak-A̱tyin_Naijeriya]]
[[Sa:Naijeriya]]
m2h3f1ztgwwlov6us57exfa3o0hvk82
Si̱tet A̱da̱mawa
0
708
15417
15416
2022-07-28T16:25:29Z
Kambai Akau
15
wikitext
text/x-wiki
{{Databox}}
[[Fail:AUN Campus.jpg|thumb|Kamput AUN ma̱ a̱keang Yola]]
'''Si̱tet A̱da̱mawa''' shyia̱ di̱ fam a̱za-a̱tyin Naijeriya hwa, nang a̱keangtung nji ka̱ ka yet a̱gba̱ndang a̱keang nji a̱ swak ma̱ng shi a̱ni wa yet a̱keang Yola. Ma̱ a̱lyia̱ 1991, di̱ jen ji á̱ si̱ faat [[Si̱tet Ta̱raba]] neet mi̱ Si̱tet Gonggola a̱ni, di̱n jen a̱ja ja á̱ si̱ shai a̱lyoot a̱vwuo ka nang á̱ ku ngyei Gonggola a̱ni á̱ si̱ ngyei Si̱tet A̱da̱mawa ji̱ byia̱ nkap kwak a̱son nfwuon a̱ni: A̱da̱mawa, Micika, Ga̱nye, Mubi ma̱ng Numan a̱ni.<ref>[https://www.familysearch.org/wiki/en/Adamawa_State,_Nigeria_Genealogy Adamawa State, Nigeria Genealogy] (di̱n Shong).</ref> Ji̱ yet jhyiung ja mami a̱yaasi̱tet 36 ba̱ tung ngyet kyang nang á̱ ngyei [[Naijeriya|Ri̱pobi̱lik Mundundung Naijeriya]] wu a̱ni.
==Ya̱fang==
<references/>
{{Sí̱tet Naijeriya}}
[[Sa:Sí̱tet Naijeriya]]
[[Sa:Sí̱tet_Fam_A̱ka̱wa̱tyia̱_Naijeriya]]
[[Sa:Naijeriya]]
5rje7eg09sjmwfimq5s9r4y2mg3h0nt
Si̱tet A̱do
0
709
15422
15032
2022-07-28T16:44:10Z
Kambai Akau
15
wikitext
text/x-wiki
{{Databox}}
[[File:Edo_State_Flag.png|thumb|Tyiang a̱toot shi Si̱tet A̱do]]
[[File:Nigeria - Edo.svg|thumb|A̱vwuo ka nang Si̱tet A̱do nshyia̱ a̱ni mami Naijeriya]]
[[Fail:Auchi central mosque.jpg|thumb|A̱likpaa̱pyia̱ A̱ka̱wa̱tyia̱ Awuci]]
'''Si̱tet A̱do''' yet jhyiung ja mi̱ a̱yaasi̱tet 36 [[Naijeriya]] ba, ji̱ shyia̱ di̱ fam a̱tak a̱byin ka a̱ni.<ref>[https://www.britannica.com/place/Edo-state-Nigeria Edo {{!}} state, Nigeria] (di̱n Shong). Encyclopedia Britannica.</ref> Di̱ fang á̱niet a̱byin hu ma̱ a̱lyia̱ 2006, á̱ ku tyan si̱tet ji á̱ si̱ shyia̱ nang ji̱ yet si̱tet 24 mi̱ shi á̱niet (3,233,366) ma̱ a̱byin Naijeriya.<ref>[https://nigeria.opendataforafrica.org/xspplpb/nigeria-census Nigeria Census - Nigeria Data Portal] (di̱n Shong). Nigeria.opendataforafrica.org.</ref> A̱keangtung si̱tet ka ma̱ng a̱gba̱ndang a̱keang a̱ swak ma̱ng shi, nggu wa yet [[A̱gba̱ndang A̱keang Bini]], nang á̱ ku sak mi̱ shi naai mami a̱ca̱cet a̱ka̱keang na mi̱ Naijeriya, a̱wot a̱ si̱ ka ngyet a̱ka̱wa̱tyia̱ a̱mali nta̱m roba ma̱ a̱byin ka.<ref>[https://www.britannica.com/place/Benin-City Benin City {{!}} History & Facts] (di̱n Shong). Encyclopedia Britannica.</ref><ref>Admin (2018-06-08). [https://www.thisdaylive.com/index.php/2018/06/08/obaseki-revives-n5-1bn-urhonigbe-rubber-plantation/ Obaseki Revives N5.1bn Urhonigbe Rubber Plantation] (di̱n Shong). THISDAYLIVE.</ref> Á̱ ku bwuo ma̱ a̱lyia̱ 1991 neet di̱ Si̱tet Bendel gbangbang jija. Awot ji̱ si̱ byia̱ a̱gi̱ak ma̱ng [[Si̱tet Kogi]] di̱ fam a̱za-a̱tyin hu, Si̱tet A̱na̱mba̱ra di̱ fam a̱tyin hu, Si̱tet Da̱li̱ta di̱ fam a̱tak-a̱tyin a mbeang Si̱tet Ondo di̱ fam jenshyung hu.<ref>[https://ng.opera.news/ng/en/entertainment/25be527452d94ae1faee6c30bbae93f7 3 Nigerian Music Legends From Edo State. - Opera News] (di̱n Shong). ng.opera.news</ref>
==Ya̱fang==
<references/>
{{Sí̱tet Naijeriya}}
[[Sa:Si̱tet A̱do]]
[[Sa:Sí̱tet Naijeriya]]
[[Sa:Sí̱tet_Fam_A̱tak-A̱tak_Naijeriya]]
[[Sa:Naijeriya]]
rbslb95fcmxywjm1v3pdf9wb4ihis8g
Si̱tet Ba̱uci
0
710
15423
12715
2022-07-28T17:49:45Z
Kambai Akau
15
wikitext
text/x-wiki
{{Databox}}
'''Si̱tet Ba̱uci''' ([[Kpat (a̱lyem)|Kpa̱t]]: Jihar Bauci, [[Shong (a̱lyem)|Shong]]: Bauchi State) shyia̱ a̱lyoot ka neet a̱khwukhwop a̱keang á̱ ngyei Ba̱uci a̱ni. A̱keang Ba̱uci kikya yet A̱gba̱ndang a̱keangtung si̱tet wu a̱ shyia̱ di̱ fam A̱za-A̱tyin Naijeriya hwa. Si̱tet ji ku shyia̱ a̱tsan ma̱ a̱lyia̱ 1976 di̱n jen nang á̱ ku nka̱u A̱za-A̱tyin Naijeriya ka a̱ni. Si̱tet Ba̱uci ji ku yet Si̱tet jhyiung ja ma̱ng [[Si̱tet Gwombe|Gwombe]] ji̱ ba̱ng si̱ nat ma̱ a̱lyia̱ 1996.
==Ya̱fang==
<references/>
5380kjl4vyvdaqgf0ofhgamt7dtrs9z
Si̱tet Benuwe
0
711
15421
15420
2022-07-28T16:33:30Z
Kambai Akau
15
/* Ya̱fang */
wikitext
text/x-wiki
{{Databox}}
'''Si̱tet Benuwe''' yet jhyiung ja mami sí̱tet fam-a̱byin Fam A̱ka̱wa̱tyia̱ [[Naijeriya]] ba ji̱ shyia̱ ma̱ng shi á̱niet kpa̱mkpaan ma̱ng 4,253,641 mi̱ sa̱nsut a̱lyia̱ 2006 ji. Á̱ ku bwuo a̱lyoot si̱tet ka neet a̱lyoot [[A̱ghyui Benuwe]] kikya ka̱ yet a̱feang ma̱ng shi a̱ni mami Naijeriya. Si̱tet ji byia̱ a̱gi̱gak ma̱ng a̱yaasi̱tet [[Si̱tet Na̱sa̱rawa|Na̱sa̱rawa]] di̱ fam a̱za hu, [[Si̱tet Ta̱raba|Ta̱raba]] di̱ fam a̱tyin hu, [[Si̱tet Kogi|Kogi]] di̱ fam jenshyung hu, Inugu di̱ fam a̱tak-jenshyung hu, [[Si̱tet A̱bonyi|A̱bonyi]] ma̱ng Ki̱rosi̱riva di̱ fam a̱tak hu, a̱wot a̱ si̱ byia̱ gak ma̱ng a̱byin [[Kemerun]] di̱ fam a̱tak-a̱tyin hu. A̱keangtung nggu kya yet Makodi. Nnwap na̱ swak ma̱ng shi á̱niet nia yet Zi̱ya, [[Idoma (á̱niet)|Idoma]], Igede ma̱ng A̱tulo.
[[File:Nigeria - Benue.svg|thumb|A̱vwuo ka nang Si̱tet Benuwe nshyia̱ a̱ni mami Naijeriya]]
[[File:River Benue (in Makurdi showing OLD Bridge).jpg|thumb|Ghwughwu a̱keang Makodi ku tyai a̱byia̱k A̱ghyui Benuwe ka a̱ni]]
[[Fail:Sunset at River Benue.jpg|thumb|Kwamam ma̱ A̱ghyui Benuwe]]
==Ya̱fang==
{{Sí̱tet Naijeriya}}
[[Sa:Sí̱tet_Naijeriya]]
[[Sa:Sí̱tet_Fam_A̱ka̱wa̱tyia̱_Naijeriya]]
[[Sa:Naijeriya]]
0x5ckklt3npmqhj5e9sinbr37rk09iq
Si̱tet Gwombe
0
712
14729
14079
2022-07-02T18:24:05Z
Kambai Akau
15
wikitext
text/x-wiki
{{Databox|item=Q376241}}
'''Si̱tet Gwombe''' shyia̱ mi̱ fam A̱za-A̱tyin [[Naijeriya]] ji̱ si̱ yet si̱tet jhyiung di̱ 36 á̱ byia̱ ma̱ a̱byin kani a̱ni. Á̱ ku bwuo si̱tet ji neet [[Si̱tet Ba̱uci]] ja ma̱ a̱tuk mam 1 Zwat Swak da̱ a̱lyia̱ 1996. Di̱n jen a̱ja Jenera Sani Abaca wa ku yet A̱kwak a̱son a̱byin Naijeriya wu. Si̱tet Gwombe shyia̱ kpa̱mkpaan ma̱ng sí̱tet jhyang. Á̱ maai shyia̱ sí̱tet nang [[Si̱tet Yobe|Yobe]] di̱ fam a̱za hu, sí̱tet nang [[Si̱tet Ba̱rno|Ba̱rno]] ma̱ng [[Si̱tet A̱da̱mawa|A̱da̱mawa]] si̱ hyia̱k Gwombe di̱ fam a̱tyin. Si̱tet Ba̱uci ji si̱ shyia̱ jenshyung ma̱ng [[Si̱tet Ta̱raba]] ji di̱ fam a̱tak. Nnwap nshyia̱ a̱ja a̱wot A̱fa̱ta bya si̱ lan kuzang nwap ma̱ng shi. Si̱tet Gwombe jija á̱ bu ngyei '''Kyangkurum A̱yit''' (Shong: "Jewel in the Savannah").
==Ya̱fang==
<references/>
{{Sí̱tet Naijeriya}}
[[Sa:Sí̱tet Naijeriya]]
[[Sa:Naijeriya]]
lqe9p4hj09wcgcs8qsr788fcwltnmb5
Si̱tet Ji̱gawa
0
713
15033
14418
2022-07-17T11:29:24Z
Kambai Akau
15
/* Ya̱fang */
wikitext
text/x-wiki
[[Fail:Sunset in Dutse.jpg|thumb|Kwamam ma̱ a̱keang Duse]]
[[Fail:Jigawa_State_Flag.png|thumb|Tyiang a̱toot shi Si̱tet Ji̱gawa]]
[[Fail:Nigeria Jigawa State map.png|thumb|Ta̱si̱la Si̱tet Ji̱gawa]]
'''Si̱tet Ji̱gawa''' ([[Kpat (a̱lyem)|Kpat]]: ''Jihar Jigawa'') yet jhyiung ja ma̱ a̱yaasi̱tet 36 [[Naijeriya]] ba, ji̱ shyia̱ di̱ fam-a̱byin A̱za-Jenshyung a̱byin hu a̱ni. Á̱ ku mbwuo nji ma̱ a̱lyia̱ 1991 kya neet mi̱ [[Si̱tet Ka̱na̱u]] ji̱ shyia̱ di̱ fam ngaan fam a̱byin a̱za-jenshyung hu a̱ swak a̱ni. Si̱tet Ji̱gawa byia̱ gak ma̱ng [[Ni̱njer (a̱byin)|Ri̱pobi̱lik Ni̱njer]] di̱ fam a̱za nji hu. A̱keangtung ma̱ng a̱gba̱ndang a̱keang nji a̱ swak ma̱ng shi a̱ni wa yet a̱keang Duse. Si̱tet Ji̱gawa byia̱ susot a̱gwomna̱ti mali 27.
==Ya̱fang==
<references/>
{{Sí̱tet Naijeriya}}
[[Sa:Sí̱tet Naijeriya]]
[[Sa:Sí̱tet_Fam_A̱za-Jenshyung_Naijeriya]]
[[Sa:Naijeriya]]
4xc9ub1qegz0jehxkq6hw34p5hvpkt5
Si̱tet Ka̱duna
0
714
14577
14576
2022-06-22T20:01:42Z
Kambai Akau
15
wikitext
text/x-wiki
{{Si̱tet
|name = Si̱tet Ka̱duna
|flag = Kaduna State Flag.png
|seal =
|map = Nigeria - Kaduna.svg
|map_caption = A̱vwuo ka nang Si̱tet Ka̱duna nshyia̱ a̱ni mami Naijeriya
|image = Kaduna State Collage.jpg
|image_caption = Kpa̱m nghwughwu a̱ka̱sham a̱ka̱vwuo mi̱ Si̱tet Ka̱duna
|country = [[Naijeriya]]
|state = Kaduna
|capital = [[Ka̱duna]]
|area = 46,053
|population = 6,113,503
|year = 2006
|leader_title = A̱gwomna
|leader_name = Nasir El-rufai
}}
'''Si̱tet Ka̱duna''' yet si̱tet ja mi̱ [[Naijeriya|Ri̱pobi̱lik Mundundung Naijeriya]], a̱ shyia̱ fam kwai-nfwuo-á̱niet ma̱ng fam-a̱byin a̱za-jenshyung a̱byin hu. Á̱ ku bwuo a̱lyoot nji ka neet a̱lyoot a̱keangtung nji kya, [[Ka̱duna]], mat a̱nia wa á̱ si̱ ngyei nji '''Si̱tet Ka̱duna''' (Shong: Kaduna State) á̱ ka ghai lyulyoot nfeang hu. Ji̱ shyia̱ ma̱ng shi la̱mba a̱naai hwa di̱n vak shi kyai a̱byin, a̱wot ji̱ si̱ yet a̱tat ma̱ng shi á̱niet mami a̱byin Naijeriya ka. A̱keangtung si̱tet ka, kikya yet a̱gba̱ndang a̱keangtung a̱byincok Bi̱ri̱ti̱n gbangbang a̱si̱ fam-a̱byin [[A̱za Naijeriya]] hu (1923–1966) a̱ma̱lyim [[Zungeru]] (1903–1923) ma̱ng [[La̱kwoja]] (1897–1903). A̱ca̱cet a̱ka̱keang na̱ laai teak mami nji a̱ni, ni̱nia yet: [[Zariya]], [[Gwoot (a̱byin)|Gwoot]], [[Fantswam (a̱byin)|Fantswam]], [[Ka̱ciya]], [[Nok]], Makarfi, Birnin Gwari ma̱ng [[Zonkwa]].<ref name=":3">[https://explorenigeria.com.ng/states/kaduna-state/ Kaduna State – Explore Nigeria].</ref>
==Ya̱fang==
<references/>
{{Sí̱tet Naijeriya}}
[[Sa:Sí̱tet Naijeriya]]
[[Sa:Sí̱tet_Fam_A̱ka̱wa̱tyia̱_Naijeriya]]
[[Sa:Naijeriya]]
o2uruolvo29wiqnucu56ps9jhbn0me6
Si̱tet Ka̱na̱u
0
715
15034
14420
2022-07-17T11:30:00Z
Kambai Akau
15
/* Ya̱fang */
wikitext
text/x-wiki
{{Si̱tet
|name = Kano
|flag = Kano flag.svg
|coa = Seal of Kano.png
|image = Nigeria - Kano.svg
|country = [[Naijeriya]]
|capital = [[Wp/kvg/Ka̱na̱u|Ka̱na̱u]]
|area = 20,131
|population = 15,076,892
|year = 2016
}}
'''Si̱tet Ka̱na̱u''' ([[A̱lyem Kpat|Kpat]]: ''Jihar Kano'') yet jhyiung ja ma̱ a̱yaasi̱tet 36 [[Naijeriya]] ba, ji̱ shyia̱ di̱ fam a̱za a̱byin hu hwa.<ref name=":0">[https://kanostate.gov.ng/?q=about About Kano] (di̱n Shong). Kano State.</ref> Mi̱ fang á̱niet a̱byin nang á̱ ku sii nyia̱ a̱ni (ma a̱lyia̱ 2006), Si̱tet Ka̱na̱u ja ku yet si̱ ji ji̱ byia̱ á̱niet swak mi̱ Naijeriya.
==Ya̱fang==
<references/>
{{Sí̱tet Naijeriya}}
[[Sa:Sí̱tet Naijeriya]]
[[Sa:Sí̱tet_Fam_A̱za-Jenshyung_Naijeriya]]
[[Sa:Naijeriya]]
bnwkg9fzfrk1u0ta19jo0gvnbdtcc13
Si̱tet Ka̱sina
0
716
14068
12456
2022-06-13T09:24:04Z
Vargenau
226
wikitext
text/x-wiki
'''Si̱tet Ka̱sina''' shyia̱ A̱za-Jenshyung Naijeria. Si̱tet ji ku shyia̱ swata̱pia̱nji mi̱n 1987 neet Si̱tet Kaduna. S̱itet swan a̱hyiak A̱ya̱asi̱tet Kaduna, Zamfara, Kano, ma̱ng Jigawa. A̱ lyen Si̱tet Ka̱sina ji ma̱ng a̱lyoot '''Saāi A̱niet''' (Shong: "Home of Hospitality"). A̱ lyen A̱gba̱ndang A̱keang Si̱tet wu nbeang Da̱ura mi̱ Kpaa̱pia̱ neet gba̱ngbang mi̱ Naijeriya.
==Ya̱fang==
<references/>
{{Sí̱tet Naijeriya}}
4tfu3fscyckq2hk7g1vrplv1rjzgn5i
Si̱tet Kebi
0
717
14067
12457
2022-06-13T09:23:49Z
Vargenau
226
Sí̱tet Naijeriya
wikitext
text/x-wiki
'''Si̱tet Kebbi''' shyia̱ mi̱ fam A̱za-Jenshuung Naijeriya kya. A̱gba̱ndang a̱keang wu wa a̱ngyei '''Birnin Kebbi'''. Si̱tet ji ku shyia̱ swat a̱pia̱nji neet di̱ Si̱tet Sokoto mami̱ a̱lyia̱ 1991. A̱ya̱asi̱tet Sokoto, Nija, Zamfara ma̱ng Dosso, a̱fam Bi̱nin Nijar ma̱ng Benin tyong Si̱tet ji a̱ka̱yang. Si̱tet Kebi kwup kyai a̱bin ku bai kilomita 36,800.
==Ya̱fang==
<references/>
{{Sí̱tet Naijeriya}}
5t5pb8si750jr7lh7phg4k3x24a6ll3
Si̱tet Kogi
0
718
15415
14421
2022-07-28T16:22:30Z
Kambai Akau
15
wikitext
text/x-wiki
{{Databox}}
[[Fail:Kogi_State_Flag.png|thumb|Tuta Si̱tet Kogi]]
[[Fail:Nigeria - Kogi.svg|thumb|A̱vwuo ka nang Si̱tet Kogi nshyia̱ a̱ni mami Naijeriya]]
'''Si̱tet Kogi''' yet si̱tet jhyiung ja mami a̱yaasi̱tet 36 [[Naijeriya]] ba. Si̱tet ji shyia̱ di̱ Fam A̱ka̱wa̱tyia̱ a̱byin Naijeriya kya. Á̱ ku bwuo nji ma̱ a̱lyia̱ 1991 kya neet di̱ nkap [[Si̱tet Kwara]] ma̱ng [[Si̱tet Benuwe]], a̱wot á̱ si̱ ka ndyen Kogi nang si̱tet jhyiung ji̱ swak njhyáng di̱ byia̱ a̱gi̱gak ma̱ng a̱yaasi̱tet á̱ghyang ba̱ shi ba̱ si̱ tat 10 a̱ni. Si̱tet Kogi ji byia̱ a̱lyoot a̱nwang ka, "Si̱tet A̱mun" ji, da̱nian a̱mun a̱ka̱ghyui [[A̱ghyui Nija|Nija]] wu ma̱ng [[A̱ghyui Benuwe|Benuwe]] nyia̱ mami a̱keangtung nji kya nang á̱ ngyei [[La̱kwoja]] a̱ni.<ref>[https://www.britannica.com/place/Lokoja Lokoja {{!}} Location, Facts, & Population] (di̱n Shong). Encyclopedia Britannica.</ref>
==Ya̱fang==
<references/>
{{Sí̱tet Naijeriya}}
[[Sa:Sí̱tet Naijeriya]]
[[Sa:A̱yaasi̱tet_Fam_A̱ka̱wa̱tyia̱_Naijeriya]]
[[Sa:Naijeriya]]
20vuycrngzfh2kffttmhacp7wwl15yr
Si̱tet Kpaa̱pyia̱
0
719
12459
9359
2022-05-21T05:15:24Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
'''Si̱tet Kpaa̱pyia̱''' (á̱ lyen ka ma̱ng a̱lyoot ka neet Zwat 6 2014; á̱ ni̱ lyuut ma̱ng IS), jenjhyang á̱ ngyei ma̱ng '''Si̱tet Kpaa̱pyia̱ Irak ma̱ng Levant (ISIL)''', ku '''Si̱tet Kpaa̱pyia̱ ma̱ng Irak ma̱ng Suriya (ISIS)''' ku da̱ a̱lyem La̱ra̱ba, ''Daesh'' yet sa jhyiung ja ma̱ neet ba̱ kwan zwang da̱nian tyiet ma̱ng khwi nvak Sa̱lafi a̱nyan wa yet Suni a̱ni.
A̱bu Musab al-Zarkawi wa ku kpaat Si̱tet Kpaa̱pyia̱ ji. Ma̱ a̱lyia̱ 2014 kya gu ku nnyia̱ a̱lyoot a̱si̱ shyia̱ a̱ wu yong da̱nian gu ku nfi̱nn mman zwang na̱ ku shyia̱ mi̱ fam a̱byin Jenshyung Irak a̱ni. Jen a̰ja ja gu ku nswak cet Mosul ma̱ng hyaai á̱niet Si̱njar hu.
==Ya̱fang==
<references/>
pbsa52b3saiuj5u9d56roi1r3t7j7wg
Si̱tet Kwara
0
720
14422
14074
2022-06-13T10:30:37Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
'''Si̱tet Kwara''' (Ghwangkpang: Ìpínlẹ̀ Kwárà) yet si̱tet ja mi̱n fam jenshyung [[Naijeriya]]. A̱keangtung á̱niet ka, kikya yet Ilorin. Si̱tet Kwara ji shyia̱ mi̱n fam A̱za-A̱ka̱wa̱tyia̱ Naijeriya hwa. Nnwap na̱ shyia̱ a̱ja a̱ni bibya yet A̱ghwangkpang, A̱fa̱taa, A̱nupe a mbeang a̱da̱dei nwap A̱ba̱riba. A̱cywang A̱kavwuontung A̱gwomna̱ti mi̱n Si̱tet Kwara ji bai 16.
{{Sí̱tet Naijeriya}}
[[Sa:Sí̱tet Naijeriya]]
[[Sa:A̱yaasi̱tet_Fam_A̱ka̱wa̱tyia̱_Naijeriya]]
[[Sa:Naijeriya]]
7114n5sm9a7vpbo8x12r6hkryj7xzn3
Si̱tet Legwot
0
721
15040
14073
2022-07-17T11:33:01Z
Kambai Akau
15
/* Ya̱fang */
wikitext
text/x-wiki
[[Fail:Lagos_State_Flag.gif|thumb|Tyiang a̱toot shi Si̱tet Legwot]]
[[Fail:Lagos_Seal.png|thumb|A̱timi Si̱tet Legwot]]
[[Fail:Nigeria - Lagos.svg|thumb|A̱vwuo ka nang Si̱tet Legwot nshyia̱ a̱ni mami Naijeriya]]
'''Si̱tet Legwot''' (Ghwangkpang: Ìpínlẹ̀ Èkó; nang ma̱ a̱di̱di̱t sii ngyei '''Legwot''' a̱ni) yet si̱tet ja ji̱ shyia̱ di̱ fam a̱tak-jenshyung a̱byin [[Naijeriya]] hu a̱ni. Mami a̱yaasi̱tet 36 ma̱ a̱byin ka, jija si̱ yet a̱gba̱ndang a̱ swak wu di̱ fam shi á̱niet ma̱ng á̱niet ba̱ swak miliyon 15 a̱ni, a̱wot ji̱ si̱ ka ngyet a̱da̱dei a̱ swak ka di̱ fam shi kyai a̱byin.<ref name="Lagos State, Nigeria">[http://www.ngex.com/nigeria/places/states/lagos.htm Lagos State, Nigeria].</ref>
==Ya̱fang==
<references/>
{{Sí̱tet Naijeriya}}
[[Sa:Sí̱tet Naijeriya]]
[[Sa:Sí̱tet_Fam_A̱tak-Jenshyung_Naijeriya]]
[[Sa:Naijeriya]]
rksd4iuocbvlsjgc0ncb5ay256orq6c
Si̱tet Na̱sa̱rawa
0
722
14066
12462
2022-06-13T09:23:38Z
Vargenau
226
Sí̱tet Naijeriya
wikitext
text/x-wiki
Sitet Nasarawa yet sitet ja mang fam aza akawatyia lyen kwai nfwuo . Lafia hwa yet akeangtung(ka)
==Ya̱fang==
<references/>
{{Sí̱tet Naijeriya}}
aqe5zb3j14nxa8heidsc26q4fgedzju
Si̱tet Nija
0
723
14065
14044
2022-06-13T09:23:29Z
Vargenau
226
wikitext
text/x-wiki
[[Fail:Gurarafalls.jpg|thumb|Pwaa Gurara, pwaa ghyang kpa̱mkpaan ma̱ng [[A̱ghyui Gurara]] mi̱ Si̱tet Nija]]
[[Fail:Nigeria - Niger.svg|thumb|A̱vwuo ka nang Si̱tet Nija nshyia̱ a̱ni mami Naijeriya]]
'''Sitet Nija''' shyia̱ [[Fam A̱ka̱wa̱tyia̱|ma̱ka̱wa̱tyia̱]] [[Naijeriya]] kya. Si̱tet jini ja yet a̱gba̱ndang si̱tet a̱mgba̱m ma̱ a̱byin ka. A̱keang [[Mina]] kya yet a̱keangtung ka. Bida, Kontagora ma̱ng Suleja si̱ yet a̱ca̱cet a̱ka̱keang á̱ghyang mi̱ si̱tet ji. Á̱ kpaat si̱tet ji ma̱ a̱lyia̱ 1976 mi̱ jen ji nang á̱ ka̱u Si̱tet A̱za-Jenshyung ji a̱ka̱feang zan di̱ a̱yaasi̱tet [[Si̱tet Sokoto|Sokoto]] ma̱ng Nija a̱ni. Jija si̱ yet mali a̱ca̱cet a̱khwukhwop a̱yaakwak a̱son a̱khwot á̱kwop a̱byin Naijeriya a̱feang banii, Ibrahim Babangida ma̱ng Abdulsalam Abubakar, meang. A̱nupe ba, Á̱nietmangfwuo, Ka̱muku, Ka̱mbari, Gungawa, Hun-Saare ba, [[A̱kpat]] wu mang A̱koro ba, á̱ yet a̱ca̱cet a̱ka̱ka̱rak nnwap mi̱ sitet ji.
==Ya̱fang==
<references/>
{{Sí̱tet Naijeriya}}
[[Sa:Si̱tet Nija]]
[[Sa:Sí̱tet Naijeriya]]
2fgrvxmh3zwiscr06lk30zizb2sqhks
Si̱tet Ogun
0
724
15041
14072
2022-07-17T11:33:41Z
Kambai Akau
15
wikitext
text/x-wiki
'''Si̱tet Ogun''' yet si̱tet ja di̱ fam a̱tak-jenshyung Naijeriya. Á̱ ku faat nji mi̱ Zwat Sweang a̱lyia̱ 1976 ja neet di̱ Fam-a̱byin Jenshyung gbangbang hu. Ji̱ byia̱ a̱gi̱gak ma̱ng [[Si̱tet Legwot]] di̱ fam a̱tak hu, a̱yaasi̱tet Oyo ma̱ng [[Si̱tet Osun|Osun]] di̱ fam a̱za hu, ma̱ng Si̱tet Ondo ma̱ng [[Bini (a̱byin)|Ri̱pobi̱lik Bini]] di̱ fam jenshyung hu.
[[Fail:A view of Gbagura mosque in Abeokuta, Ogun State-Nigeria.jpg|thumb|A̱ghyi fam a̱likpaa̱pyia̱ Gbadura mami a̱keang Abewokuta]]
[[Fail:Ogun_State_Flag.jpg|thumb|Tuta Si̱tet Ogun]]
[[Fail:Nigeria - Ogun.svg|thumb|A̱vwuo ka nang si̱tet Ogun nshyia̱ a̱ni mami Naijeriya]]
{{Sí̱tet Naijeriya}}
[[Sa:Sí̱tet Naijeriya]]
[[Sa:Sí̱tet_Fam_A̱tak-Jenshyung_Naijeriya]]
[[Sa:Naijeriya]]
h9wrdpcef3jwlbw9gh7oh0n7f3ss4ys
Si̱tet Ondo
0
725
15042
14071
2022-07-17T11:34:18Z
Kambai Akau
15
wikitext
text/x-wiki
[[Fail:Akure City, Ondo State Nigeria Nigeria.jpg|thumb|A̱gba̱ndang A̱keang Akure]]
[[Fail:Ondo_State_Flag.jpg|thumb|Tyiang a̱toot shi Si̱tet Ondo]]
[[Fail:Nigeria - Ondo.svg|thumb|A̱vwuo ka nang Si̱tet Ondo nshyia̱ a̱ni mami Naijeriya]]
'''Si̱tet Ondo''' yet jhyiung ja mi̱ a̱yaasi̱tet fam a̱tak-jenshyung [[Naijeriya]] hu. Á̱ ku kpaat nji mi̱ Zwat Sweang 1976 neet di̱ a̱khwukhwop Si̱tet Jenshyung wu. Si̱tet Ondo ji byia̱ a̱gi̱gak a̱byin ma̱ng [[Si̱tet Ikiti]] (ji̱ ku yet kap si̱tet hu gbangbang) di̱ fam a̱za hu, [[Si̱tet Kogi]] di̱ fam a̱za-a̱tyin hu, [[Si̱tet A̱do]] di̱ fam a̱tyin hu, [[Si̱tet Da̱li̱ta]] di̱ fam a̱tak-a̱tyin hu, [[Si̱tet Ogun]] di̱ fam a̱tak-jenshyung hu, [[Si̱tet Oshun]] di̱ fam a̱za-jenshyung hu, ma̱ng [[A̱gba̱ndang Kyai A̱sa̱khwot Ati̱lantik]] wu di̱ fam a̱tak hu.<ref>[https://www.britannica.com/place/Ondo-state-Nigeria Ondo | state, Nigeria] (di̱n Shong). Encyclopedia Britannica.</ref> A̱keangtung si̱tet ka, kikya yet [[Akure]], a̱khwukhwop a̱keangtung Tyok Akure gbangbang wu.<ref>[https://www.britannica.com/place/Ondo-state-Nigeria Ondo {{!}} state, Nigeria] (di̱n Shong). Encyclopedia Britannica.</ref> A̱byin Si̱tet Ondo ka mbyia̱ sop ''mangrove-swamp'' kpa̱mkpaan ma̱ng [[A̱ngam A̱sa̱khwot Bini]] wu.<ref>[https://www.britannica.com/place/Ondo-state-Nigeria Ondo {{!}} state, Nigeria] (di̱n Shong). Encyclopedia Britannica.</ref>
==Ya̱fang==
<references/>
{{Sí̱tet Naijeriya}}
[[Sa:Sí̱tet Naijeriya]]
[[Sa:Sí̱tet_Fam_A̱tak-Jenshyung_Naijeriya]]
[[Sa:Naijeriya]]
rwktd67xuig2j4y0qfbd0kru1t4xkg8
Si̱tet Oshun
0
726
15043
14706
2022-07-17T11:34:46Z
Kambai Akau
15
wikitext
text/x-wiki
'''Oshun''' (a̱nwuat "/òʃún/") yet si̱tet sang a̱sa̱khwot ja jḭ shyia̱ mi̱ fam A̱tak-Jenshyung [[Naijeriya]] a̱ni. A̱gba̱ndang A̱keangtung á̱niet wu wa á̱ ngyei [[Oshogbo]]. A̱za si̱tet Oshun shyia̱ kpa̱mkpaan ma̱ng [[Si̱tet Kwara]]. A̱tyin si̱tet ka si̱ shyia̱ kpa̱mkpaan ma̱ng sí̱tet nang [[Si̱tet Ikiti|Ikiti]] ma̱ng [[Si̱tet Ondo|Ondo]]. Fam a̱tak si̱tet hu shyia̱ kpa̱mkpaan ma̱ng [[Si̱tet Ogun]], di̱ fam jenshyung si̱tet hu di̱di̱r ma̱ng [[Si̱tet Oyo]]. Gwomna Sitet Oshun wu wa á̱ ngyei Adegboyega Oyetola, a̱tyu a̱ ku shim á̱niet á̱ si̱ nkhai gu mi̱ Zwat A̱kubunyiung ma̱ a̱lyia̱ 2018.
==Ya̱fang==
<references/>
{{Sí̱tet Naijeriya}}
[[Sa:Sí̱tet Naijeriya]]
[[Sa:Sí̱tet_Fam_A̱tak-Jenshyung_Naijeriya]]
[[Sa:Naijeriya]]
l4fk5jlbhhzgnxy3no3wnz4el7x0d91
Si̱tet Osun
0
727
9443
9442
2022-05-16T12:54:48Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[Si̱tet Oshun]]
qysjt3d7zkoplb2yivapgd7eminwsq2
Si̱tet Pi̱lato
0
728
15414
15413
2022-07-28T15:12:02Z
Kambai Akau
15
wikitext
text/x-wiki
{{Databox}}
[[Fail:Terminus market traffic.jpg|thumb|300px|Kaswuo Taminut, Nja̱t, Si̱tet Pi̱lato]]
[[Fail:Nigeria - Plateau.svg|thumb|A̱vwuo ka nang Si̱tet Pi̱lato nshyia̱ a̱ni mami a̱byin Naijeriya]]
'''Si̱tet Pi̱lato''' ja byia̱ shi kyai a̱byin 12 di̱ [[Sí̱tet Naijeriya|sí̱tet]] [[Naijeriya]] ji. Ji̱ shyia̱ ma̱ka̱wa̱tyia̱ a̱byin Naijeriya kya ca̱caat, ji̱ si̱ byia̱ a̱gba̱mgbam li nang jija ma̱nyin nji byia̱ a̱ni ma̱ a̱byin Naijeriya mat a̱gi̱gak tsutsok nji ba̱ mban tswazwa ba a̱ni, ba̱ si̱ keang [[Nja̱t|Pi̱lato Nja̱t]] hu<ref>"[https://www.britannica.com/place/NigeriaCite Nigeria {{!}} Culture, History, & People]". Encyclopedia Britannica.</ref> a̱keangtung nji ka, ma̱ng a̱mgba̱m pi̱lato ji ma̱ng a̱pyia̱ nji.
Á̱ cyin Si̱tet Pi̱lato ji nang "Mali Swat Nyinyang ma̱ng Cong Fwuong Nyinyang" (Shong: "The Home of Peace and Tourism"). Ma̱ng tak ti̱tak á̱mat a̱ka̱fan, tsutsok ma̱ng mpwaa, á̱ ku mbwuo a̱lyoot nji ka neet di̱ Pi̱lato Nja̱t jija ji̱ si̱ shyia̱ ma̱ng shi á̱niet ku tat kpa̱mkpaan ma̱ng miliyon 3.5 a̱ni.
==Ya̱fang==
<references/>
{{Sí̱tet Naijeriya}}
[[Sa:Sí̱tet_Naijeriya]]
[[Sa:Sí̱tet_Fam_A̱ka̱wa̱tyia̱_Naijeriya]]
[[Sa:Naijeriya]]
k8rsfseau3jtl5pobadrimlvytlfjwb
Si̱tet Sokoto
0
729
14064
12468
2022-06-13T09:23:18Z
Vargenau
226
wikitext
text/x-wiki
'''Si̱tet Sokoto''' shyia̱ mi̱ Si̱tet 36 a̱ byia̱ mi̱ Naijeriya a̱ni. Ji̱ shyia̱ kpa̱nkpa̱an ma̱ng A̱bin Nijar A̱za-Jenshyung Naijeriya. A̱gba̱ndang A̱keang ma̱ng a̱vwuo tung ka kya yet Sokoto. A̱ka̱gyui Sokoto ma̱ng Rima mun a̱ja. A̱ ku dam nyia̱ a̱byia̱ a̱niet ba̱ bai miliya̱n 4. 2 a̱ja ma̱ lyia̱ 2005.
==Ya̱fang==
<references/>
{{Sí̱tet Naijeriya}}
04shjrmocbld9lplmm9vmj141yxa1yc
Si̱tet Ta̱raba
0
730
14425
13486
2022-06-13T10:31:13Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
[[Fail:Mambila Plateau of Taraba State.jpg|thumb|Pi̱lato Ma̱mbila a̱si̱ Si̱tet Ta̱raba]]
[[Fail:Taraba_State_Coat_of_Arms.png|thumb|A̱lama a̱byin Ta̱raba]]
[[Fail:Nigeria - Taraba.svg|thumb|A̱vwuo ka nang Si̱tet Ta̱raba nshyia̱ a̱ni mami Naijeriya]]
'''Si̱tet Ta̱raba''' yet si̱tet ja di̱ fam a̱za-a̱tyin Naijeriya hu, a̱wot a̱lyoot nji ka si̱ neet da̱ A̱ghyui Ta̱raba ka̱ sweap di̱ fam a̱tak si̱tet huhwa. A̱keangtung a̱si̱ Ta̱raba yet [[Jalinggo]].
==Ya̱fang==
<references/>
==A̱ka̱fwuop nta==
*[http://www.tarabastate.gov.ng/ Taraba State government]
*[https://web.archive.org/web/20091007011423/http://www.nipost.gov.ng/PostCode.aspx Nigerian Post Office- with map of LGAs of the state]
{{Sí̱tet Naijeriya}}
[[Sa:Sí̱tet_Naijeriya]]
[[Sa:Sí̱tet_Fam_A̱ka̱wa̱tyia̱_Naijeriya]]
[[Sa:Naijeriya]]
mh7ota5h4le03sbhgkgpbra6w4fynvl
Si̱tet muna̱pyia̱
0
731
14426
13487
2022-06-13T10:31:18Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
'''Si̱tet muna̱pyia̱''' (ku '''A̱byin muna̱pyia̱''') wa yet si̱tet a̱wa wa nang á̱ nyia̱ tyok tazwa nggu á ngyei vam nyiung hwa a̱ni da̱nang a̱gwomna̱ti a̱ka̱wa̱tyia̱ ba, bibya byia̱ cet hu ku swak si̱ kuzang a̱ni. A̱yaasi̱tet muna̱pyia̱ nvwuon ma̱ng á̱si̱ mundundung, nang á̱ ma ngyei ''[[Si̱tet mundundung|a̱yaasi̱tet mundundung]]'' a̱ni.
[[Fail:Map of unitary and federal states.svg|thumb|Ta̱si̱la Bibyin Muna̱pyia̱ (A̱sa̱khwot bula) ma̱ng Bibyin Mundundung (A̱sa̱khwot a̱shyim a̱kwop)]]
[[Fail:The pathway of regional integration or separation.png|thumb|Vak tung ndung ku ka̱u nfam-a̱byin]]
==Ya̱fang==
[[Sa:Nghwughwu_A̱gwomna̱ti]]
momna4n5uoomjgr1rc4mk15omc2tzyb
Si̱tet mundundung
0
732
15265
14427
2022-07-21T06:40:11Z
Gwanki
276
wikitext
text/x-wiki
{{databox}}
'''Si̱tet mundundung''' yet a̱byin kwai-nfwuo wa a̱ byia̱ za̱kwa tung ndung a̱yaaprovin, a̱yaasi̱tet, ku nfam-a̱byin ghyáng na nyian tyok á̱pyia̱ nna di̱n kap a̱ni tazwa a̱gwomna̱ti mundundung a̱ka̱wa̱tyia̱ a̱nyiung (swat mundundung). Mami a̱byin mundundung, shi yong nyian tyok a̱pyia̱ kuzang a̱si̱tet a mbeang ka̱u ncet tsi̱tsak mba ma̱ng a̱gwomna̱ti a̱ka̱wa̱tyia̱ ba, á̱ ni̱ mkpa di̱ cam a̱byin nang á̱ si̱ mi̱n shai a̱ni bah di̱n vak nyia̱ shi̱ri̱ya di̱ fam ghyang, a̱yaasi̱tet ba ku sot kwai-nfwuo á̱niet na mundundung. Mat a̱nia, a̱byin mundundung yet ghwughwu a̱gwomna̱ti ghyang hwa nang á̱ ni̱ nka̱u a̱gba̱mgbam cet tsi̱tsak á̱niet ba̱ ba̱ng tyok ma̱ka̱wa̱tyia̱ ba ma̱ng nfam-a̱byin nvwuon na̱ yet nkap a̱ni si̱sak nang kuzang fam-a̱byin na ba̱ng cet nyia̱ tyok ghyang tazwa nkyang a̱mali nhu na.
[[Fail:Map of unitary and federal states.svg|thumb|Ta̱si̱la Bibyin Muna̱pyia̱ (A̱sa̱khwot bula) ma̱ng Bibyin Mundundung (A̱sa̱khwot a̱shyim a̱kwop)]]
[[Fail:The pathway of regional integration or separation.png|thumb|Vak tung ndung ku ka̱u nfam a̱byin]]
==Ya̱fang==
[[Sa:Nghwughwu_A̱gwomna̱ti]]
p4xp6cg3u5mdwoe9gq90e45b4uk6pcs
Sokoto
0
733
9507
9506
2022-05-16T12:54:50Z
Jon Harald Søby
8
2 revisions imported
wikitext
text/x-wiki
Sokoto yet abandang akayang mang fam aza genjung Naijeriya kpamkpaan amun akaghyui rima mang Sokoto.
==Tafang==
<references/>
kmnfx7csu8sc12w7wxotgjrsefeid4z
Somalya
0
734
14428
13860
2022-06-13T10:31:28Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
{{Country
|name = Ri̱pobi̱lik Mundundung Somalya<br>Jamhuuriyadda Federaalka Soomaaliya (Somali) </br>
جمهورية الصومال الفيدرالية, ''Jumhūriyah as-Sūmāl al-Fīdirāliyah'' (La̱ra̱ba)
|flag = Flag of Somalia.svg
|coa = Coat of arms of Somalia.svg
|image = Somalia (orthographic projection).svg
|capital = Mogadishu
|area = 637,657
|population = 15,893,219
|year = 2020
}}
'''A̱bwom a̱byin''': "Qolobaa Calankeed"<br />"علم أي امة"<br />"Kuzang a̱byin ma̱ng tyiang a̱toot shi nka ji"<br />[[File:Somalian national anthem, performed by the United States Navy Band.oga]]
A̱byin '''Somalya''' (Somali: Soomaaliya, lyuut Osmaniya: 𐒈𐒝𐒑𐒛𐒐𐒘𐒕𐒖; La̱ra̱ba: الصومال, aṣ-Ṣūmāl; Shong: Somalia /səˈmɑːliə/), á̱ lyen ma̱ng a̱lyoot a̱gwomna̱ti nka nang '''Ri̱pobi̱lik Mundundung Somalya''' wu (Somali: Jamhuuriyadda Federaalka Soomaaliya; La̱ra̱ba:
جمهورية الصومال الفيدرالية, ''Jumhūriyah as-Sūmāl al-Fīdirāliyah''; [[Shong (a̱lyem)|Shong]]: Federal Republic of Somalia) a̱ni, yet a̱byin kya di̱ fam A̱ta̱m Afrika hu. Ka̱ byia̱ a̱gi̱gak ma̱ng bibyin [[Ityopya]] di̱ fam jenshyung hu, [[Ji̱buti]] di̱ fam a̱za-jenshyung hu, [[A̱ngam A̱sa̱khwot Aden]] di̱ fam a̱za hu, [[A̱gba̱ndang Kyai A̱sa̱khwot Ndiya]] di̱ fam a̱tyin hu, ma̱ng [[Kenya]] di̱ fam a̱tak-jenshyung hu. A̱byin Somalya kya byia̱ lang khwong kyai a̱sa̱khwot ku swak ma̱ng shi a̱swap mi̱ vam-a̱byin [[Afrika]] wu gba̱mgbam. Lili a̱byin hu yet si̱ pi̱lato hwa, a̱kpa̱kpai a̱byin ma̱ng bibyin shi a̱za. A̱vwuo ka li gba̱gbai a̱mgba̱m a̱lyia̱ ka, ma̱ng wun monsun di̱n jen jhyang mbeang za ji̱ nwai va nci̱ri̱ng a̱ni. A̱byin Somalya byia̱ á̱niet ba̱ shi tat kpa̱mkpaan ma̱ng miliyon 15, nang si̱ ku swak á̱niet miliyon a̱feang swan a̱keangtung nka ka̱ ka ngyet a̱gba̱ndang a̱keang a̱ swak ma̱ng shi nang á̱ ngyei Mogadishu a̱ni, a̱wot á̱ si̱ wa̱i a̱byin ka nang a̱byin Afrika ka̱ swak di̱ byia̱ nwap ma̱ng taada jhyiung mami a̱byin a̱nyiung a̱ni. Kpa̱mkpaan ma̱ng %85 á̱niet ba̱ swan a̱byin ka yet nwap Somali ja, á̱niet nang di̱n jen gbangbang ba̱ ku swan fam a̱za a̱byin hu hwa. Á̱kum a̱cyuang nnwap na si̱ fam á̱pyia̱ nna di̱ fam a̱tak a̱byin hu. Lilyem a̱gwomna̱ti a̱byin Somalya hwa yet Somali ma̱ng La̱ra̱ba. Á̱niet ma̱ a̱di̱di̱t ma̱ a̱byin ka yet [[Khwikpaa̱pyia̱|Á̱kpaa̱pyia̱]] bya, ma̱ a̱di̱di̱t mba Suni bya.
==Ya̱fang==
<references/>
{{Bibyin Afrika}}
[[Sa:Bibyin_swanta]]
[[Sa:Bibyin_Afrika]]
[[Sa:Bibyin_A̱tyin_Afrika]]
[[Sa:Bibyin_A̱ta̱m_Afrika]]
si86hxhhtkmsi7nfnwcfxk6raf23wgh
Song Il-guk
0
735
15147
15146
2022-07-17T16:12:56Z
Kambai Akau
15
wikitext
text/x-wiki
{{Databox|item=Q484840}}
'''Song Il-guk''' (Kworiya: 송일국; Hanja: 宋一國; á̱ byin nggu a̱tuk mam 1 Zwat Swak 1971) yet a̱tyumaat [[Kworiya A̱tak]] wa. Á̱ ka ndyen nggu á̱ swak mat song ji nang gu ku tat mami nce fim vwuomaat si̱ vwuomaat a̱si 2006, ''[[Jumong (ce fim TV)|Jumong]]'' nang a̱tsatsak a̱tyumaat a̱ni.
== A̱ka̱fwuop nta ==
*[https://m.imdb.com/name/nm1866022/ Song Il-gook] mi̱ IMDb
[[Sa:Á̱nietmaat fim á̱sam A̱kworiya A̱tak]]
[[Sa:Á̱nietmaat á̱sam A̱kworiya A̱tak]]
[[Sa:Á̱niet nswuan]]
[[Sa:Byin 1971]]
[[Sa:Á̱nietmaat á̱sam neet Seoul]]
[[Sa:Kworiya A̱tak]]
crbjc7rh1ycsmnik5hx4t3ltan6x16z
Sot-nta̱m Gbi̱ngban Swanta
0
736
14430
13491
2022-06-13T10:31:38Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
[[Fail:Emblem of the United Nations.svg|thumb|A̱lama Sot-nta̱m Gbi̱ngban Swanta]]
[[Fail:World Health Organization Logo.svg|thumb|A̱lama a̱bwuang Sot-nta̱m Gbi̱ngban Swanta]]
'''Sot-nta̱m Gbi̱ngban Swanta''' (di̱n [[Shong (a̱lyem)|Shong]]: World Health Organization '''WHO''') yet ofit-nta̱m [[Muná̱pyia̱ Bibyin Swanta]] wu wa nang á̱ ku khap á̱ si̱ sak a̱ni mat gbi̱ngban (cetvam) á̱niet swanta hu.<ref name="Jan 24">"[https://www.kff.org/global-health-policy/fact-sheet/the-u-s-government-and-the-world-health-organization/ The U.S. Government and the World Health Organization]" (di̱n Shong). The Henry J. Kaiser Family Foundation (Zwat Jhyiung 24, 2019). </ref> Cam WHO hu nang á̱ ku kpa a̱ni tak a̱tsak jat sot jini nang "shyiat a̱mgba̱m á̱niet si̱ ku swak shi hu lan a̱ni, vak cok a̱tan gbi̱ngban".<ref>"[http://apps.who.int/gb/bd/pdf_files/BD_49th-en.pdf#page=7 WHO Constitution, BASIC DOCUMENTS, Forty-ninth edition]" (di̱n Shong).</ref> Tyantung nji shyia̱ a̱keang Geneva kya ma̱ a̱byin [[Shwit]], ji̱ si̱ byia̱ a̱yaaofit nfam a̱byin a̱taa ma̱ng a̱yaaofit kyai nta̱m 150 da̱ a̱ka̱vwuo ma̱ a̱di̱di̱t mami a̱mgba̱m swanta hu.
==Ya̱fang==
<references/>
[[Sa:Sot-nta̱m_Gbi̱ngban_Swanta]]
b15y9u6kabu05nsxczp0oohj4ecjp6g
Sot Tswot A̱laua̱titak Real Madrid
0
737
12474
9571
2022-05-21T05:17:54Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
'''Sot Tswot A̱laua̱titak Real Madrid''' á̱ ngyei ma̱ng '''Real Madrid''' a̱ni yet Sot a̱yaagwak ja ji̱ shyia̱ ma̱ a̱byin [[Si̱pen]] a̱ni. Sot ji shyia̱ ma̱ng swat hu mami a̱gba̱ndang a̱keang á̱ ngyei Madrid a̱ni.
==Ya̱fang==
<references/>
kf6hb5d70rp798oq1knx2zyxrvtjwv2
Sot Á̱nietkhwi Katolika
0
738
14431
13492
2022-06-13T10:31:43Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
[[Fail:Saint Peter's Basilica facade, Rome, Italy.jpg|197px|right|thumb|A̱bandang Cot katolika ma̱ng Ta̱cyia̱/Swanta.]]
'''Sot Á̱nietkhwi Katolika''' ji, á̱ ka ngyei Sot Á̱nietkhwi Katolika Rom a̱ni, ja yet cod ku sot á̱nietkhwi Krista ji swak ma̱ng shi a̱ni, ma̱ng A̱katolika ba á̱ ku nyia̱ mba ba̱ptisman a̱ni ba̱ ba̱ng tat biliyon 1.3 mi̱ swanta hu a̱mgba̱m mi̱ di̱ a̱lyia̱ 2019. Nang kuntyin bibyin swanta ku swak kuzang di̱ khwop ma̱ng shi ku si̱ shyia̱ di̱ nnyia̱ ta̱m neet di̱n jen gbangbang a̱ni, ji̱ si̱ ka ntat song di̱ nkhang ma̱ng ya a̱son tat-a̱ghyi Fam Jenshyung hu. Sot á̱nietkhwi ji byia̱ susot á̱nietkhwi 24 á̱ ku khap á̱ sak a̱ni ma̱ng a̱yaadiyosi̱t 3,500 ma̱ng a̱yaapaci mi̱ swanta hu a̱mgba̱m. Paparoma wu, a̱nyan wa yet bishop Rom wu a̱ni, wa yet a̱kwak a̱son a̱yaapasto sot á̱nietkhwi ji. Cuk bishop Rom ji, nang á̱ ndyen nang A̱za̱za̱rak Nwuan wu, wa yet cet a̱ka̱wa̱tyia̱ ku nyia̱ tyok tazwa sot á̱nietkhwi ji. Vam hu ku kwak A̱za̱za̱rak Nwuan wu a̱son ka a̱ni, Kuriya Rom ji, byia̱ a̱ca̱cet a̱yaaofit nji mami A̱gba̱ndang A̱keang Vatikan wu, a̱da̱dei tamm a̱byin a̱ghyang mami Rom, mi̱ zang wa Paparoma wa yet A̱kwak A̱son A̱byin wu.
[[Sa:Khwikristi]]
hoyt7au9vt0p07p66zqk1rlg10sc4s6
Squid Game
0
739
14611
14432
2022-06-24T23:34:48Z
Kambai Akau
15
wikitext
text/x-wiki
[[Fail:Squid Game logo.png|thumb|A̱lama-a̱bwuang bibyin swanta a̱si̱ tak ti̱tak telvishon hu]]
'''''Squid Game''''' (Kworiya: 오징어 게임; RR: Ojing-eo Geim; ku fa '''''Vwuo a̱fa̱n kyai a̱sa̱khwot ka̱ byia̱ a̱ti̱tak a̱ni̱nai''''') yet tak ti̱tak telvishon za̱kwa a̱ka̱bung ta̱cya̱ [[Kworiya A̱tak]] ghyang hwa nang á̱ tyai mi̱ Netflix nang Hwang Dong-hyuk wa ku mat a̱ni, a̱nyan wa ku lyuut a̱ si̱ ka ngyet a̱kwak a̱son a̱mgba̱m a̱yaapisot a̱kubunyiung ba. Á̱ghyang á̱niet ba ba̱ shyia̱ mami a̱ni bya yet Lee Jung-jae, Park Hae-soo, Wi Ha-joon, Jung Ho-yeon, O Yeong-su, Heo Sung-tae, Anupam Tripathi, ma̱ng Kim Joo-ryoung.
==Ya̱fang==
<references/>
==A̱ka̱fwuop nta==
*[https://www.rottentomatoes.com/tv/squid_game/s01 Squid game mi̱ rottentomatoes]
* [https://search.daum.net/search?w=tv&q=%EC%98%A4%EC%A7%95%EC%96%B4%20%EA%B2%8C%EC%9E%84&irk=86695&irt=tv-program&DA=TVP ''Squid Game''] mi̱ Daum (da̱ a̱lyem Kworiya)
[[Sa:Squid Game| ]]
[[Sa:Kworiya A̱tak]]
b9qusvjjea1pn79jcj7bo80qqxt1lf5
Sudan
0
740
14433
13873
2022-06-13T10:32:13Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
{{Country
|name = Ri̱pobi̱lik Sudan wu<br>جمهورية السودان, ''Jumhūriyyat as-Sūdān'' (La̱ra̱ba)<br>Republic of the Sudan (Shong)
|flag = Flag of Sudan.svg
|coa = Emblem of Sudan.svg
|image = Sudan (orthographic projection).svg
|capital = Khartum
|area = 1,886,068
|population = 45,709,353
|year = 2022
}}
'''A̱bwom a̱byin''': "نحن جند الله، جند الوطن"<br />''Naḥnu jund Allah, jund al-waṭan''<br />("Á̱nietnzwang A̱gwaza Bya Zi̱ Yet, Á̱nietnzwang Á̱niet Ba")<br />[[File:Sudanese national anthem, performed by the U.S. Navy Band (instrumental).oga]]
A̱byin '''Sudan''' (Shong: /suːˈdɑːn/; La̱ra̱ba: السودان, ''as-Sūdān''), á̱ lyen ma̱ng a̱lyoot a̱gwomna̱ti nka nang '''Ri̱pobi̱lik Sudan wu''' (La̱ra̱ba: جمهورية السودان, ''Jumhūriyyat as-Sūdān'', Shong: Republic of the Sudan) a̱ni, yet a̱byin kya di̱ fam a̱byin A̱za-a̱tyin [[Afrika]]. Ka̱ byia̱ a̱gi̱gak ma̱ng bibyin [[Ma̱sa̱r]] di̱ fam a̱za hu, [[Li̱biya]] di̱ fam a̱za-jenshyung hu, [[Caad]] di̱ fam jenshyung hu, Ri̱pobi̱lik A̱ka̱wa̱tyia̱ Afrika wu di̱ fam a̱tak-jenshyung hu, [[Sudan A̱tak]] di̱ fam a̱tak hu, [[Ityopya]] di̱ fam a̱tak-a̱tyin hu, [[Eritrea]] di̱ fam a̱tyin hu, ma̱ng [[A̱shong Kyai A̱sa̱khwot]] wu di̱ fam a̱za-a̱tyin. A̱byin Sudan byia̱ shi á̱niet miliyon 44.91 ma̱ a̱lyia̱ 2021<ref>"[https://worldpopulationreview.com/countries/sudan-population/ Sudan population]". World Population Review.</ref> ka̱ si̱ kup shi kyai a̱byin kilomita a̱ma̱ntaa̱naai 1,886,068 (met a̱ma̱ntaa̱naai 728,215), si̱ huni si̱ tyia̱ ka̱ yet a̱tat mi̱ bibyin Afrika di̱n vak shi a̱byin a mbeang a̱tat meang mi̱ shi a̱byin mi̱ Liig A̱la̱ra̱ba hu. Kikya ku yet a̱byin ka̱ swak di̱ shi a̱byin mi̱ Afrika ma̱ng Liig A̱la̱ra̱ba hu ba̱ng si̱ tat but a̱byin Sudan A̱tak hu ma̱ a̱lyia̱ 2011 a̱ni,<ref>"[https://web.archive.org/web/20181226211750/https://www.cia.gov/library/publications/resources/the-world-factbook/rankorder/2147rank.html#su Area]". The World Factbook. U.S. Central Intelligence Agency.</ref> kyiak neet di̱n jen a̱ja Aljeriya wa si̱ kyiak lyulyoot nfeang hu. A̱keangtung nka, kikya yet Khartum, ma̱nang a̱gba̱ndang a̱keang a̱ swak mi̱ shi wu si̱ yet Omdurman.
==Ya̱fang==
<references/>
{{Bibyin Afrika}}
[[Sa:Bibyin_swanta]]
[[Sa:Bibyin_Afrika]]
[[Sa:Bibyin_A̱za_Afrika]]
3mie3ejbebizynoe3zd30y5tlrby1rc
Sudan A̱tak
0
741
14434
13897
2022-06-13T10:32:18Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
{{Country
|name = Ri̱pobi̱lik Sudan A̱tak<br>Republic of South Sudan (Shong)
|flag = Flag of South Sudan.svg
|coa = Coat of Arms of South Sudan.svg
|image = South Sudan (orthographic projection).svg
|capital = Juba
|area = 644,329
|population = 12,778,250
|year = 2019
}}
'''A̱bwom a̱byin''': "South Sudan Oyee!" ("Sudan A̱tak Oyee!")<br>[[File:South Sudan Oyee! (instrumental).ogg]]
A̱byin '''Sudan A̱tak''' (Shong: South Sudan /suːˈdɑːn/, /-ˈdæn/),<ref>Wells, John C. (2008). "Longman Pronunciation Dictionary". 3 (Jhyu.). ''Longman''. ISBN 978-1-4058-8118-0.</ref><ref>Roach, Peter (2011). "Cambridge English Pronouncing Dictionary". 18 (Jhyu.). Cambridge: Cambridge University Press. ISBN 978-0-521-15253-2.</ref> á̱ lyen ma̱ng a̱lyoot a̱gwomna̱ti nka nang '''Ri̱pobi̱lik Sudan A̱tak''' wu<ref name="factbook">"[https://www.cia.gov/the-world-factbook/countries/south-sudan/ South Sudan]". ''The World Factbook'' (11 Zwat A̱natat 2011). CIA.</ref> a̱ni, yet a̱byin kya nang bibyin ghyáng keang di̱ tityak a̱ni di̱ fam a̱byin a̱tyin/a̱ka̱wa̱tyia̱ [[Afrika]].<ref>"[https://www.cia.gov/the-world-factbook/countries/south-sudan/ The World Factbook – Central Intelligence Agency]". www.cia.gov.</ref><ref name="UN classification of world regions">"[http://unstats.un.org/unsd/methods/m49/m49regin.htm UN classification of world regions Eastern Africa: South Sudan]". UN.</ref> Ka̱ byia̱ a̰gi̱gak ma̱ng [[Ityopya]] di̱ fam a̱tyin hu, [[Sudan]] di̱ fam a̱za hu, Ri̱pobi̱lik A̱ka̱wa̱tyia̱ Afrika di̱ fam jenshyung hu, [[Ri̱pobi̱lik Di̱mokrasi Konggo]] di̱ fam a̱tak-jenshyung hu, [[Yuganda]] di̱ fam a̱tak hu, ma̱ng [[Kenya]] di̱ fam a̱tak-a̱tyin hu. Ka̱ shyia̱ ma̱ng shi á̱niet miliyon 11.06, nang 525,953 mba swat a̱keangtung ka ma̱ng a̱gba̱ndang a̱keang wu a̱ swak mi̱ shi a̱ni, Juba.
==Ya̱fang==
<references/>
{{Bibyin Afrika}}
[[Sa:Bibyin_swanta]]
[[Sa:Bibyin_Afrika]]
[[Sa:Bibyin_A̱tyin_Afrika]]
n6h92ik8b8f34njkn0gs62fiiyttt0h
Sum A̱kwa̱n
0
742
9644
9643
2022-05-16T12:54:57Z
Jon Harald Søby
8
2 revisions imported
wikitext
text/x-wiki
#Redirect [[Sum a̱kwon]]
qfyumhhwowo4dh3qp99zid5oah0afvb
Sum akwan
0
743
9646
9645
2022-05-16T12:54:57Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[Sum a̱kwon]]
bml0f3cqsls5y2q8inak26whfexvwu4
Sum a̱kwon
0
744
12477
9669
2022-05-21T05:18:24Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
'''Sum a̱kwon''' yet zwa ja na a shyiat nang akwon ani, ka doot a ya a̱bin Nye a̱kikan.
==Ya̱fang==
<references/>
j87f8yxg1chc7btl1n0cs4lep5rn05v
Sunkurum (a̱lyem)
0
745
14435
13496
2022-06-13T10:32:23Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
A̱lyem '''Sunkurum''' ka, '''''Ikulu''''', nang á̱ ma ndyen nang Ankulu ku Ikolu meang,<ref name=":0">{{Cite news|url=https://www.ethnologue.com/language/ikl|title=Ikulu|work=Ethnologue|access-date=2017-04-30}}</ref> yet [[Lilyem Pi̱lato|a̱lyem Pi̱lato]] a̱si̱ [[Naijeriya]] kya.<ref>{{Cite web|url=http://glottolog.org/resource/languoid/id/ikul1238|title=Glottolog 3.0 -Ikulu|website=glottolog.org|language=en|access-date=2017-04-30}}</ref> Kikya yet a̱lyem [[Á̱niet A̱sunkurum|A̱sunkurum]] ba, a̱nyanyan bya nshyia̱ [[Susot a̱gwomna̱ti mali Naijeriya|Susot A̱gwomna̱ti Mali]] [[Zangon Kataf]], [[Kaciya]] ma̱ng [[Ka̱uru]] á̱si̱ [[A̱si̱tet Ka̱duna|A̱si̱tet Kaduna]].<ref name=":0" />
==Ya̱fang==
<references/>
== A̱ka̱fwuop nta ==
*[http://www.rogerblench.info/Language/Niger-Congo/BC/Plateau/Northwest/Kulu%20wordlist.pdf Kulu wordlist]
[[Sa:Lilyem A̱ka̱wa̱tyia̱ Pi̱lato]]
[[Sa:Lilyem Naijeriya]]
3d4crqiqreee7gnsy1p4y0wqvq3x541
Suriya
0
746
14436
13497
2022-06-13T10:32:28Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
{{Country
|name = Suriya<br>سُورِيَا (Sūriyā)
|flag = Flag of Syria.svg
|coa = Coat of arms of Syria.svg
|image = Syria (orthographic projection).svg
|capital =
|area = 185 180
|population = 17 500 657
|year = 2020
}}
A̱byin '''Suriya''' (La̱ra̱ba: سُورِيَا, ''Sūriyā''; Shong: Syria), á̱ lyen di̱ yorong ofisha hu nang '''Ri̱pobi̱lik A̱la̱ra̱ba Suriya''' (La̱ra̱ba: ٱلْجُمْهُورِيَّةُ ٱلْعَرَبِيَّةُ ٱلسُّورِيَّةُ, ''al-Jumhūrīyah al-ʻArabīyah as-Sūrīyah''; Shong: Syrian Arab Republic), yet a̱byin kya di̱ fam a̱byin Jenshyung A̱siya, ka̱ byia̱ gak ma̱ng [[Lebanon]] di̱ fam a̱tak-jenshyung hu, [[Kyai A̱sa̱khwot Meditaroniya]] hu di̱ fam jenshyung hu, [[Turkiya]] di̱ fam a̱za hu, Irak di̱ fam a̱tyin hu, [[Urdun]] di̱ fam a̱tak hu, ma̱ng [[Isi̱rela]] di̱ fam a̱tak-jenshyung hu. A̱keangtung nka ka ma̱ng a̱gba̱ndang a̱keang wu a̱ swak mi̱ shi hu wa yet Da̱maskut. Ka̱ yet a̱byin a̱kpa̱mkpai a̱byin a̱bwum kya, a̱ga̱nga̱ng tsutsok, ma̱ng kyai a̱ji̱jak (tswa a̱yit), ma̱ng nnwap a mbeang susot a̱dini ma̱ a̱di̱di̱t nang nwap ji ji̱ lan yet a̱di̱di̱t wu A̱la̱ra̱ba Suriya ba, Kurdi, Turkmen, Assuriya, Armeniya, Si̱̇rkasiya,<ref>Moshe, Gammer (2004). "[https://books.google.com/books?id=5CVBWjMAtLEC The Caspian Region: The Caucasus]". Vol. 2. Routledge. P. 64. ISBN 978-0-203-00512-5.</ref> Mandiya,<ref>Who cares for the Mandaeans? ''Australian Islamist Monitor.''</ref> ma̱ng A̱helen ba. Susot a̱dini ji, ji̱ja yet Suni ba, Krista, A̱lawit, Druz, Ismaili, Mandiya, Shiya, Salafi, ma̱ng Yazidi ba. A̱la̱ra̱ba ba, bibya yet nwap ji̱ swak mi̱ shi ji, a̱wot Suni ba bibya yet sot a̱dini ji̱ swak ma̱ng shi hu.
==Ya̱fang==
<references/>
{{Template:Bibyin A̱siya}}
[[Sa:Bibyin_swanta]]
[[Sa:Bibyin_A̱siya]]
[[Sa:Bibyin_Jenshyung_A̱siya]]
69o5dh1x1wohoy6mw63fz57cvjjcklm
Susot a̱gwomna̱ti mali Naijeriya
0
747
14437
13498
2022-06-13T10:32:33Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
[[Fail:Nigeria Local Government Areas.png|thumb|right|250px|Susot a̱gwomna̱ti mali Naijeriya.]]
[[Naijeriya]] byia̱ '''Susot A̱gwomna̱ti Mali''' (SsA̱M) 774 ja a̱wot kuzang Sot A̱gwomna̱ti Mali (SA̱M) si̱ shyia̱ a̱tafa Komiti A̱gwomna̱ti Mali<ref>[http://www.clgf.org.uk/nigeria Country Profile 2019]. [The Local Government System in Nigeria]. PDF. Pg. 161.</ref> ji̱ shyia̱ ma̱ng A̱kpangcuk, a̱nyan wa yet A̱gba̱ndang A̱kwak A̱son SA̱M ji, a mbeang a̱yaamemba nang á̱ ku khai a̱ni nang á̱ ngyei A̱yaakansa̱lo a̱ni. Á̱ si̱ ka̱u kuzang SA̱M nwuak Susot a̱da̱dei swak 10 a̱ghwon a̱gba̱ndang swak 15. Kuzang Sot si̱ shyia̱ a̱tafa Kansa̱lo a̱nyan wa kwok A̱kpangcuk wu nkyang na na̱ naat mbwuot a̱ni ma̱ di̱di̱ri̱k. A̱yaakansa̱lo ba shyia̱ a̱tafa sa a̱gwomna̱ti mali ji̱ Kpa Cam a̱byin jija.
==Ya̱fang==
<references/>
[[Sa:Susot a̱gwomna̱ti mali Naijeriya]]
qf22ik8nt9iqw1y41tklnvol7bd2llo
Swaat
0
748
12481
9734
2022-05-21T05:19:04Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
[[Fail:Sorghum.jpg|thumb|Swaat ji̱ byia̱ a̱sa̱khwot a̱feang (''Sorghum bicolor'')]]
'''Swaat''' shyia̱ ma̱ng ntangka̱i sum yak 25 na̱ li nang zwá [[a̱kwop]], a̱wot ji̱ si̱ yet ''genus'' ja mi̱ sa a̱kwop nang á̱ ngyei ''Poaceae'' a̱ni. Á̱nietbishyi ni̱ cyui ntangka̱i swaat ghyáng nani ba̱ shyiat kyayak ba̱ na ntsuung á̱pyia̱ mba ma̱ng nyám mba ji.
==Ya̱fang==
<references/>
nfx89u96i3wjynuw7buu033droyatko
Swakpat
0
749
12482
9746
2022-05-21T05:19:14Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
[[Fail:Koeh-283.jpg|197px|right]]
'''Swakpat''' (á̱kpa: Swákpat) yet kak tangka̱i a̱sai yak hwa nang á̱ ka ngyei '''Sakpat''' ku '''Swaat A̱kpat''' a̱ni, nang á̱ ku bai ndyo di̱n tsa hu neet a̱tak a̱byin [[Mikziko]] nang a̱tsak á̱niet a̱byin a̱wa ku khap a̱ni gbangbang neet mi̱ ndyia̱ 10,000 na̱ ku swak a̱ni.
==Ya̱fang==
<references/>
4ejti9nbnjm3nmqza7ss00crhfjkhel
Swa̱á̱t
0
750
9748
9747
2022-05-16T12:55:00Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[Swaat]]
8kimcz4ommmopb6ryejtnozpkl1kf3c
Ta
0
752
9754
9753
2022-05-16T12:55:00Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[Byii̱ng]]
0x1i9wwf8bygzrr8cfw9dxj0o8a4loz
Tag
0
753
9756
9755
2022-05-16T12:55:01Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[Tak]]
qy5loa39ar806l9qxpe41emkhwoueg9
Tahiti
0
754
14438
13499
2022-06-13T10:32:38Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
A̱byin '''Tahiti''' (Tahiti: /taˈhiti/<ref>[https://forvo.com/search/Tahiti/ty/ Pronunciation of "Tahiti" in Tahitian]" (di̱n Shong).</ref>; Shong: /təˈhiːti/); Fi̱ransa /ta.iti/; á̱ ku ngyei '''Otaheite''' gbangbang), kya yet a̱byin a̱ka̱wa̱tyia̱ a̱sa̱khwot ka̱ byia̱ shi kyai a̱byin ka̱ swak di̱ sot Bibyin A̱ka̱wa̱tyia̱ A̱sa̱khwot Wun si̱ Bibyin A̱ka̱wa̱tyia̱ A̱sa̱khwot Susaiti hu ma̱ a̱byin Polinesiya Fi̱ransa, di̱ kap fam a̱ka̱wa̱tyia̱ [[A̱gba̱ndang Kyai A̱sa̱khwot Pasi̱fi̱k]] hu. Á̱ ka̱u a̱byin ka di̱ nkap nfeang hwa, ''Tahiti Nui'' (kap fam a̱za-jenshyung ku lan mi̱ shi hu) ma̱ng ''Tahiti Iti'' (kap fam a̱tak-a̱tyin hu ku lat mi̱ shi hu), a̱byin a̱ka̱wa̱tyia̱ a̱sa̱khwot ka ku ntsa neet nta̱m a̱ka̱fan ndong nia da̱ nka; ka̱ si̱ byia̱ shi a̱za ma̱ng tsutsok a mbeang a̱yaamurujani a̱zanu kyai a̱sa̱khwot ba̱ keang nka a̱ni. Shi á̱niet nka hu yet 189,517 hwa (sa̱nsut 2017), kikya si̱ yet a̱byin a̱ka̱wa̱tyia̱ a̱sa̱khwot [[Fi̱ransa (a̱byin)|Fi̱ransa]] a̱kya ka̱ byia̱ á̱niet ka̱ swak ma̱ a̰byin Polinesiya Fi̱ransa hu ma̱ng 68.7% a̱mgba̱m á̱niet nka ba.
[[Fail:Flag of Tahiti.svg|thumb|Tuta Tahiti]]
[[Fail:Societyislands.jpg|thumb|Ta̱si̱la a̱byin Tahiti, a̱byin a̱ka̱wa̱tyia̱ a̱sa̱khwot ka̱ swak mi̱ shi mi̱ Bibyin A̱ka̱wa̱tyia̱ A̱sa̱khwot Susaiti ka]]
==Ya̱fang==
<references/>
{{Template:Bibyin Osheniya}}
[[Sa:Bibyin_swanta]]
[[Sa:Bibyin_Osheniya]]
glg7cduugfy31gfhmlo7zyy38gcf8mc
Taiwan
0
755
14439
13500
2022-06-13T10:32:43Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
A̱byin '''Taiwan''', (lyuut Taada Caina: 臺灣 ku 台灣; Pinyin Mandarin: Táiwān; Hokkyen: Tâi-uân; Hakka Sishyan: Tǒi-vǎn; Amit: Taywan; [[Paiwan (a̱lyem)|Paiwan]]: Taiwan; [[Shong (a̱lyem)|Shong]]: Taiwan), á̱ lyen di̱ yorong ofisha hu nang '''Ri̱pobi̱lik Caina''' ('''RC''') wu (lyuut Taada Caina: 中華民國; Pinyin Mandarin: Zhōnghuá Mínguó; Hokkyen: Tiong-hûa Bîn-kok; Hakka Sishyan: Chûng-fà Mìn-koet; Shong: Republic of China, ROC), yet a̱byin kya di̱ fam A̱tyin A̱siya.<ref name="fell">Fell, Dafydd (2018). "[https://books.google.com/books?id=i8hHDwAAQBAJ Government and Politics in Taiwan]" (di̱n Shong). London: Routledge. p. 305. ISBN: 978-1317285069. ''Moreover, its status as a vibrant democratic state has earned it huge international sympathy and a generally positive image.''</ref><ref>Campbell, Matthew (7 Zwat Jhyiung 2020). "[https://www.bloomberg.com/news/features/2020-01-07/china-s-next-crisis-brews-in-taiwan-s-upcoming-election China's Next Crisis Brews in Taiwan's Upcoming Election]" (di̱n Shong). Bloomberg Businessweek. (4642). pp. 34–39. ISSN: 0007-7135. ''Much has changed in Taiwan since Chiang’s day, but this liminal quality has never really gone away. By almost any functional standard, it's a sovereign country''</ref> Ka̱ byia̱ a̱gi̱gak a̱sa̱khwot mȧ̱ng bibyin [[Caina|Ri̱pobi̱lik Á̱niet Caina]] (RÁ̱C) wu di̱ fam a̱za-jenshyung hu, [[Ja̱pan]] di̱ fam a̱za-a̱tyin hu, ma̱ng Filipin hu di̱ fam a̱tak hu. A̱tsak a̱byin a̱ka̱wa̱tyia̱ a̱sa̱khwot Taiwan wu byia̱ shi kyai a̱byin kilomita a̱ma̱ntanaai 35,808 (met a̱ma̱ntanaai 13,826), ma̱ng tsutsok ma̱ a̱di̱di̱t di̱ fam a̱tyin hu ku yet a̱kpa a̱feang mami a̱yaakpa a̱tat a̱mgba̱m a̱byin ka ma̱ng a̱kpa̱mkpai a̱byin di̱ fam jenshyung hu ku yet a̱kpa a̱nyiung mami a̱yaakpa a̱tat a̱mgba̱m a̱byin ka nang a̱jawa á̱niet da̱ndi ba ka nswat ma̱ a̱gba̱mgbam a̱ni. A̱keangtung ka, kikya yet a̱keang Taipei, nang nka a mbeang A̱fai Taipei ma̱ng Keelung, nia si̱ yet sot metropolitan a̱byin Taiwan ji̱ byia̱ shi kyai ji̱ swak a̱ni. A̱ca̱cet a̱ka̱keang á̱ghyang si̱ yet: Kawohsiyung, Taicung, Tainan ma̱ng Tawoywan. Ma̱ng kpa̱mkpaan á̱niet miliyon 23.57, a̱byin Taiwan si̱ yet a̱nyiung mami bibyin swanta ku lan byia̱ á̱niet ba̱ fam fi̱fam da̱ a̱vwuo a̱nyiung a̱ni.
{| class="wikitable" align=right border width="200"
| colspan="2" align=center|'''Taiwan'''
|-
| colspan="2" align=center|[[Fail:Taiwan NASA Terra MODIS 23791.jpg|300px|center]]
|-
|}
[[Fail:Flag of the Republic of China.svg|thumb|Tuta Ri̱pobi̱lik Caina (Taiwan)]]
[[Fail:National Emblem of the Republic of China.svg|thumb|A̱lama Ri̱pobi̱lik Caina (Taiwan)]]
[[Fail:中華民國之璽.svg|thumb|A̱timi A̱byin]]
[[Fail:Meihua ROC.svg|thumb|Kywat A̱byin]]
[[Fail:Island of Taiwan (orthographic projection).svg|thumb|Ta̱si̱la a̱byin Taiwan]]
==Ya̱fang==
<references/>
{{Bibyin A̱siya}}
==A̱ka̱fwuop nta==
{{Bibyin A̱siya}}
[[Sa:Bibyin_swanta]]
[[Sa:Bibyin_A̱siya]]
[[Sa:Bibyin_A̱tyin_A̱siya]]
0ej7j6aqvr7cmou01y0uesgbak3ns6x
Tak
0
756
12484
9806
2022-05-21T05:19:35Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
[[Fail:InsectLeg.svg|thumb|Ghwughwu tak a̱bada̱dei nyam a̱ghyang|alt=Ghwughwu tak a̱bada̱dei nyam a̱ghyang]]
'''Tak''' hu (á̱kpa: '''a̱ti̱tak''' ''ba'') yet kap vam hwa ku doot neet ma̱ng fang ba sak ma̱ng shai ntak.
A̱ti̱tak bya ba̱ng vam a̱ka̱tsak. Ba̱ beang da a̱vwuo a̱cyet, cung mbeang fi̱ri̱p (nang nyám ji̱ fi̱ri̱p fi̱fi̱ri̱p a̱ni).
==Ya̱fang==
<references/>
ax1y018e3p4f6ocn0nzxzxtbf2ry4nh
Tak kyangcung
0
757
14440
13501
2022-06-13T10:33:09Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
[[Fail:Ljubljana Marshes Wheel with axle (oldest wooden wheel yet discovered).jpg|thumb|Tak Kyangcung Ljubljana Marshes huni hwa ma̱ng aksut kpa̱mkpaan wu, huhwa yet tak kyangcung a̱kwon ku yet a̱khwukhwop a̱ swak mi̱ swanta hu nang á̱ ku mi̱ tataat a̱ni a̱wot á̱ ku jhyi nhu neet mi̱ Ce A̱kpeap huhwa (kpa̱mkpaan 3,130 BC)]]
[[Fail:TricycleAntique.jpg|thumb|Tak kyangcung ku byia̱ á̱banshan a̱tat a̱ni tazwa a̱khwukhwop kyangcung a̱ti̱tak a̱tat gbangbang ghyang]]
[[Fail:Roue primitive.png|thumb|Tak kyangcung ntsa ghyang nang á̱ ku shap neet da̱ a̱tutuk a̱kwon a̱ghyang]]
'''Tak kyangcung''' yet kyang hwa ku li nang sa̱khat ja a̱ni nang á̱ nyia̱ á̱ si̱ tyia̱ ku bwuak tazwa borit a̱si̱ aksut mashin a̱ni. Tak kyangcung hu yet nyiung hwa ma̱ a̱tsatsak nkap kéké wu ma̱ng aksut a̱ yet a̱nyiung mami a̱di̱dat a̱yaamashin a̱taa wu. A̱ti̱tak nkyangcung ba a mbeang a̱yaaksut ba ka nnwuat nkyang na na̱ swan kpa̱p a̱ni a̱wat ka nang na̱ na ncyet ma̱ a̱hyohyoot ma̱ng mkpa̱t, ku na̱ nyia̱ ta̱m mami a̱yaamashin. Á̱ ka nnyia̱ ta̱m ma̱ng a̱ti̱tak nkyangcung mat ját ma̱ a̱di̱di̱t nang mami kéké a̱gba̱ndang kukwon a̱wak, a̱bankwon luk kyangcung, kyangbwanlyem a̱tyunok li̱la̱n ma̱ng tak ta̱ngam.
==Ya̱fang==
[[Sa:A̱ti̱tak nkyangcung| ]]
[[Sa:Bwoi mi̱ bwoi Irak]]
[[Sa:Bwoi mi̱ bwoi Mesopotamiya]]
rjfnj4asoulc6ucjgezo5wnqvr6ee4s
Tak tsaai tswam
0
758
14441
13502
2022-06-13T10:33:14Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
[[Fail:Bicycle wheel.jpg|thumb|upright|Tak tsaai tswam a̱zanson neet tsaai tswam tyong cung jhyang]]
[[Fail:Bicycle wheel with wooden rim.jpg|thumb|upright|Tak tsaai tswam ma̱ng rim a̱kukwon]]
[[Fail:Bicycle spoke nipples.jpg|thumb|upright|Nunu a̱baan]]
[[Fail:Spokes.jpg|thumb|upright|Á̱banshan tswam]]
[[Fail:Felge-querschnitt.jpg|thumb|upright|Tamm-a̱team rim jhyang]]
[[Fail:Nabe 01 KMJ.jpg|upright|thumb|Kwop Shimano Dura-Ace freehub-style ghyang]]
'''Tak tsaai tswam''' yet tak kyangcung hwa, nang di̱ jen ma̱ a̱di̱di̱t, ku fa tak á̱banshan tswam hwa nang á̱ jhyi mat [[tsaai tswam]] a̱ni. Á̱ ngyei a̱jhyem a̱ti̱tak a̱feang '''ce a̱ti̱tak''', ma̱ a̱tsak a̱lyiat, ma̱ a̱ti̱tak ba nang "á̱ ku jhyi sak a̱ni" ba̱ kin nnyia̱ nta̱m ma̱ a̱di̱di̱t na̱ myim a̱ni.
Á̱ nok a̱ti̱tak tsaaí tswam ba ba̱ tyia̱ ca̱caat ma̱ng fi̱rem ma̱ng a̱fwuong ka̱ byia̱ a̱ga̱swuong kikya di̱n vak nkap nghyuai na, a̱wot ba̱ ki mba̱ng a̱yaataya tsaai tswam ba meang.
==Ya̱fang==
<references/>
[[Sa:Tsaaí tswam]]
ojdty0katbfaya28erz2aiqiw42c2ul
Tang
0
759
12487
9848
2022-05-21T05:20:04Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
[[Fail:Throwing rocks (3843366278).jpg|thumb|Tang nfang da̱ a̱ghyui ka]]
'''Tang''' yet naat mbwuot ghyang hwa da̱nang á̱ nta̱m kyang ma̱ng cet ku khwi wun hu ku si̱ kwa da̱ a̱vuo a̱ghyang nang á̱ cat ku nat a̱ni.
==Ya̱fang==
<references/>
ez7x7jtjpixg0c0ea4uhy22l08m0qoz
Tasuwa afang
0
760
9853
9852
2022-05-16T12:55:04Z
Jon Harald Søby
8
4 revisions imported
wikitext
text/x-wiki
#REDIRECT [[A̱fan]]
==Tafang==
<references/>
2e6exl7l3i57b2h8j3y26l197t90kyw
Ta̱cya̱ A̱fai
0
761
15258
14443
2022-07-21T06:36:47Z
Gwanki
276
wikitext
text/x-wiki
{{databox}}
[[Fail:Map of America by Sebastian Munster.JPG|thumb|upright=1.35|Ta̱si̱la Ta̱cya̱ A̱fai Sebastian Münster ji nang á̱ ku ntsa shei ma̱ a̱lyia̱ 1540 a̱ni]]
"'''Ta̱cya̱ A̱fai'''" ka yet swáng a̱lyiat ja ji̱ fa a̱gba̱ndang kap Á̱kum-a̱la̱u fam Jenshyung Swanta wu, ma̱ a̱ca̱caat, a̱byin [[Amerika]].<ref name="oxfordc">"America." ''The Oxford Companion to the English Language'' (ISBN 0-19-214183-X). McArthur, Tom, ed., 1992. New York: Oxford University Press, p. 33: "[16c: from the feminine of ''Americus'', the Latinized first name of the explorer Amerigo Vespucci (1454–1512). The name ''America'' first appeared on a map in 1507 by the German cartographer Martin Waldseemüller, referring to the area now called Brazil]. Since the 16c, a name of the western hemisphere, often in the plural ''Americas'' and more or less synonymous with ''the New World''. Since the 18c, a name of the United States of America. The second sense is now primary in English: ... However, the term is open to uncertainties: ..." (di̱n Shong).</ref> Á̱niet ma̱ a̱di̱di̱t si̱ ta̱bat nyia̱ ta̱m ma̱ng swáng a̱lyiat ji ma̱ a̱gba̱mgbam di̱ ntsa sa̱ncuri 16 hu, di̱n jen Ce Tataat Nkyang Nfai a̱byin [[Yurop]], di̱n jen ji nang a̱tyocyet a̱byin [[Italiya]] wu nang á̱ ngyei Amerigo Vespucci a̱ni ku tyak kyiak nyia̱ a̱byin [[Amerika]] yong da̱ a̱kwonu vam-a̱byin fai hwa a̱ni, a̱wot di̱n jen ji̱ cobai a̱ni, a̱ si̱ ka nshei nkyang na nang gu zop nshyia̱ a̱ni mami a̱da̱dei kwambwat nang gu ku nang a̱lyoot ''Mundus Novus'' a̱ni.<ref>[https://archive.org/details/mundusnovuslette00vesp Mundus Novus: Letter to Lorenzo Pietro Di Medici], by Amerigo Vespucci; translation by George Tyler Northrup, Princeton University Press; 1916.</ref> Zop jini ja si̱ ngaat fi̱k swanta a̱khwukhwop á̱nietlyenjografi Yurop ba, ba̱ ku fa ta̱cya̱ ka ku byia̱ nvam-a̱byin [[Afrika]], [[Yurop]] ma̱ng [[A̱siya]] nia gbangbang nang á̱ ngyei A̱khwukhwop Ta̱cya̱ wu, ku Afro-Yura̱siya ma̱nini. Á̱ ka ngyei [[Amerika]] '''kap naai ta̱cya̱ hu'''.<ref name="M.H.Davidson 1997 p.417">M. H. Davidson (1997) ''Columbus Then and Now, a life re-examined. Norman: University of Oklahoma Press'', p. 417)</ref>
==Ya̱fang==
<references/>
[[Sa:Bibyin_swanta]]
70k02fbs5savn85g2jx2okc517nk1hb
Ta̱mazi̱k Kidee Moroko
0
762
14444
13504
2022-06-13T10:33:29Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
'''Ta̱mazi̱k Kidee Moroko''', ku '''Amazi̱k''' Kidee Moroko (Ta̱mazi̱k: ⵜⴰⵎⴰⵣⵉⵖⵜ ⵜⴰⵏⴰⵡⴰⵢⵜ ''tamaziɣt tanawayt''), yet ta̱m hwa ku shyia̱ di̱ naat a̱ mbwuot a̱ni mat bwoi kak a̱lyem Ta̱mazi̱k a̱byin Moroko ku ngyet a̱lyem kidee a̱ni ma̱ a̱byin ka. Á̱ kpaat nji ca̱caat ma̱ng Ati̱kut 5 jhyuk 2011 si̱ Kpa̱m Cam A̱byin Moroko hu hwa.<ref name="BO_5964-Bis_Fr">[https://web.archive.org/web/20131102041635/http://www.sgg.gov.ma/BO/bulletin/FR/2011/BO_5964-Bis_Fr.pdf La Constitution - Promulgation]. (di̱n Fi̱ransa).
Bulletin Officiel (30 Zwat A̱natat 2011). ISSN 851-1217. OCLC 693771745. P. 1901–1928. ''Il est créé un Conseil national des langues de la culture marocaine, chargé notamment de la protection et du dévelopment des langues arabe et amazighe et des diverses expressions culturelles marocaines, qui constituent un patrimoine authentique et une source d'inspiration contemporaine.[... ] A National Council of languages of Moroccan culture is created, responsible primarily for the protection and development of Arabic and Amazigh languages and diverse Moroccan cultural expressions, which are an authentic heritage and a source of contemporary inspiration.''</ref>
==Ya̱fang==
<references/>
[[Sa:Lilyem swanta]]
[[Sa:Lilyem Afrika]]
[[Sa:Lilyem Moroko]]
i2m3uyfvtnol5bain44zfyomqotodyt
Ta̱ng
0
763
9877
9876
2022-05-16T12:55:05Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[Tang]]
cumr3obotw9hzwc58k97tjwt01uij0j
Ta̱nzaniya
0
764
14445
13898
2022-06-13T10:33:34Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
{{Country
|name = ''Muna̱pyia̱ Ri̱pobi̱lik Ta̱nzaniya''<br><small>Jamhuri ya Muungano wa Tanzania (Swahili)</small>
|flag = Flag of Tanzania.svg
|caption = Tyiang a̱toot shi a̱byin Ta̱nzaniya
|coa = Coat of arms of Tanzania.svg
|image = Tanzania (orthographic projection).svg
|capital = [[Dodoma]]
|area = 947,303
|population = 61,193,226
|year = 2021
}}
'''A̱bwom a̱byin''': "A̱gwaza Nang Afrika Nda" (''Mungu ibariki Afrika'') [[Fail:National Anthem of Tanzania by US Navy Band.ogg]]
'''Ta̱nzaniya''' á̱ ka ndyen nang '''Muna̱pyia̱ Ri̱pobi̱lik Ta̱nzaniya''' hu (Swahili: Jamhuri ya Muungano wa Tanzania), yet a̱byin kya di̱ fam-a̱byin A̱tyin Afrika mi̱ fam-a̱byin A̱ca̱cet Njok na̱ byia̱ Shi Afrika hu. Ka̱ byia̱ a̱gi̱gak ma̱ng bibyin [[Yuganda|Yugada]] di̱ fam a̱za hu; [[Kenya]] di̱ fam a̱za-a̱tyin hu; Bibyin A̱ka̱wa̱tyia̱ A̱sa̱khwot Komorot ma̱ng [[A̱gba̱ndang Kyai A̱sa̱khwot Ndiya]] wu di̱ fam a̱tyin hu; [[Mozambik]] ma̱ng [[Malawi]] di̱ fam a̱tak hu; [[Zambya]] di̱ fam a̱tak-jenshyung hu; ma̱ng [[Ruwanda]] [[Burundi]] ma̱ng [[Ri̱pobi̱lik Di̱mokrasi Konggo]] di̱ fam jenshyung hu. A̱fan Kilimanjaro, a̱fan Afrika ka̱ swak ma̱ng shi a̱za a̱ni, shyia̱ di̱ fam a̱za-a̱tyin Ta̱nzaniya hwa.
{{Bibyin Afrika}}
[[Sa:Bibyin swanta]]
[[Sa:Bibyin Afrika]]
[[Sa:Bibyin A̱tyin Afrika]]
0fb77nyenotzmbq2ermestauz8phqcc
Tel A̱vip
0
765
14446
13506
2022-06-13T10:33:39Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
A̱keang '''Tel A̱vip-Yafo''' (A̱biru: תֵּל־אָבִיב-יָפוֹ, ''Tel Aviv-Yafo'' /tel aˈviv ˈjafo/; La̱ra̱ba: تَلّ أَبِيب - يَافَا, ''Tall ʾAbīb-Yāfā''), di̱n jen ma̱ a̱di̱di̱t á̱ sii ngyei '''Tel A̱vip''', kya yet a̱gba̱ndang a̱keang sot metropolitan Gush Dan ma̱ a̱byin [[Isi̱rela]] a̱ swak ma̱ng shi á̱niet a̱ni. A̱gba̱ndang a̱keang wu shyia̱ di̱ lang khwong [[Kyai A̱sa̱khwot Meditaroniya]] hu hwa, a̱ si̱ byia̱ shi á̱niet 460,613. Nggu wa yet a̱ka̱wa̱tyia̱ naat mbwuot kaswuo ma̱ng lyennkyangta̱m a̱byin ka. A̱wot ka̱ á̱ si̱ kyiak fam A̱tyin Urusha̱lima hu nang kap a̱byin Isi̱rela hwa a̱ni, a̱keang Tel A̱vip kya yet a̱gba̱ndang a̱keang a̱ swak ma̱ng shi á̱niet ma̱ a̱byin ka lilyim [[Urusha̱lima]]; kalak, a̱keang Tel A̱vip kya swak ma̱ng shi á̱niet a̱zaghyi fam a̱keang Jenshyung Urusha̱lima.
{| class="wikitable" align=right border width="200"
| colspan="2" align=center|'''Tel A̱vip-Yafo'''<br>• תל־אביב-יפו (A̱biru)<br>• تل أبيب - يافا (La̱ra̱ba)
|-
| colspan="7" align=center|[[Fail:Hashalom interchange.jpg|thumb|300px|center]] <sub>A̱vwuonshaivak Hashalom</sub>
|-
| [[Fail:Tel Aviv flag.svg|thumb|Tuta a̱keang Tel A̱vip]]
|-
| [[Fail:TelAvivEmblem.svg|thumb|A̱lama a̱keang Tel A̱vip]]
|-
|}
==Ya̱fang==
[[Sa:Isi̱rela]]
8uya2v0hke7dd5y35kaviib857wspv3
Tems(A̱tyiu bubwom)
0
766
9903
9902
2022-05-16T12:55:06Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[Tems (a̱tyububwom)]]
ju3txft4o3yv2if12l02xxju970iw1b
Tems (a̱tyububwom)
0
767
12492
9909
2022-05-21T05:20:54Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
[[Fail:Tems on NdaniTV Sessions -cropped.png|thumb|Tems]]
'''Temilade Openiyi''' (byin 11 Zwat A̱taa 1995), á̱ lyen nswak ma̱ng a̱lyoot '''Tems''' ma̱ng bubwom, a̱ yet a̱tyutsot bubwom [[Naijeriya]] wa.
==Ya̱fang==
<references/>
n8fipfoilm9qjwopxl14pn3pcbm5v39
Thomas Sankara
0
768
14447
13600
2022-06-13T10:33:44Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
[[File:Thomas-sankara-dessin.jpg|alt=|thumb|Thomas Sankara]]
'''Thomas Isidore Noël Sankara''' (yei Fi̱ransa: /tɔma <!--izidɔʁ nɔɛl -->sɑ̃kaʁa/; 21 Zwat Swak ma̱ng Sweang 1949 – 15 Zwat Swak 1987) ku yet ofisa a̱khwot a̱kwop a̱ si̱ ka yet a̱tyoburkinabé ma̱ng a̱tyutyeizat soshyalis wa a̱ ku yet Presiden a̱son a̱byin [[Burkina Faso]] kyiak neet ta̱gurup ntyok a̱khwot á̱kwop ma̱ a̱lyia̱ 1983 ba̱ng si̱ tat kwi nggu hu ma̱ a̱lyia̱ 1987. A̱ ku yet a̱tyukhwi a̱di̱dam Marx–Lenin wa ma̱ng a̱tyucat muna̱pyia̱ Afrika, a̱wot á̱niet li̱n a̱ma nggu ba ku nwuan nggu nang a̱tyulyen kwak á̱niet kpa̱mkpaan ma̱ng a̱pyia̱ nggu ma̱ng a̱tyonyiung a̱ yet a̱tsatsak ba̱t a̱ni di̱ tyeizat hu, a̱wot di̱n jen ma̱ a̱di̱di̱t, á̱ ka ngyei nggu "Ce Guevara Afrika" wu.<ref name="ReutersChe">[https://www.reuters.com/assets/print?aid=USL17577712 Burkina Faso Salutes "Africa's Che" Thomas Sankara] (di̱n Shong) mbwak Mathieu Bonkoungou, ''Reuters'', 17 Zwat Swak 2007.</ref><ref name="Thomas Sankara Speaks 2007, pg 11">''Thomas Sankara Speaks: the Burkina Faso Revolution: 1983–87'' (di̱n Shong), mbwak Thomas Sankara, jhyuk mbwak Michel Prairie; Pathfinder, 2007, p. 11</ref><ref>[https://archive.today/20120702213957/http://static.rnw.nl/migratie/www.radionetherlands.nl/currentaffairs/071015-Burkina-Faso-Sankara-redirected "Thomas Sankara, Africa's Che Guevara"] mbwak ''Radio Netherlands Worldwide'' (di̱n Shong), 15 Zwat Swak 2007.</ref><ref>[http://sarahgoyens.blogspot.com/2009/01/africas-che-guevara.html "Africa's Che Guevara"] mbwak ''Sarah in Burkina Faso'' (di̱n Shong).</ref>
== Lyulyoot nta̱m ==
* ''Thomas Sankara Speaks: The Burkina Faso Revolution, 1983–87'', Pathfinder Press: 1988. ISBN 0-87348-527-0.
* ''We Are the Heirs of the World's Revolutions: Speeches from the Burkina Faso Revolution 1983–87'', Pathfinder Press: 2007. ISBN 0-87348-989-6.
* ''Women's Liberation and the African Freedom Struggle'', Pathfinder Press: 1990. ISBN 0-87348-585-8.
== DVD ==
* [https://web.archive.org/web/20110203030632/http://theleoafricanus.com/2008/10/15/film-review-thomas-sankara-the-upright-man/ ''Thomas Sankara: The Upright Man''], 2006, kwak a̱son mbwak Robin Shuffield, (miti 52), CreateSpace, ASIN: B002OEBRKC.<ref>Nwuan a̱ka̱feang DVD si̱ [http://theleoafricanus.com/2008/10/15/film-review-thomas-sankara-the-upright-man/ ''Thomas Sankara: The Upright Man'']. 11-02-03. kwak a̱son mbwak Robin Shuffield.</ref>
==Ya̱fang==
<references/>
[[Sa:byin_1949]]
[[Sa:kwi_1987]]
[[Sa:Burkina Faso]]
==A̱ka̱fwuop nta==
* [https://www.marxists.org/archive/sankara/index.htm Thomas Sankara Archive] mi̱ marxists.org
flm356ggvupgotxx55z04ytwwuphcqk
Tibwak
0
769
12494
9945
2022-05-21T05:21:14Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
'''Tibwak''' yet nyan ja a̱ ghwuang ma̱ng bwak a̱ni, ji shyei shyim a̱ni.
==Ya̱fang==
<references/>
49rq9uhy6g74jdk8qu32ieloy7nwiux
Tiwa Savage
0
770
12495
9950
2022-05-21T05:21:24Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
[[Fail:Tiwa Savage's studio portrait.jpg|thumb|A̱junjung ghwughwu studyo Savage ma̱ a̱lyia̱ 2013]]
'''Tiwa Savage''' (a̱lyoot byin '''Tiwatope Savage'''; byin 5 Zwat Sweang 1980) yet a̱tyububwom [[Naijeriya]] wa, a̱ lyuut a̱ sa nyia̱ a̱yaafim. Á̱ byin nggu Isale Eko, a̱wot a̱ si̱ nat ma̱ng swat hu [[London]] a̱ mbeang fang hu nang gu kyuak a̱lyia̱ 11.
==Ya̱fang==
<references/>
pdsyxd3p7voi69t84jq7ij9i6p7fnd7
Togo
0
771
14448
13882
2022-06-13T10:34:10Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
{{Country
|name = Ri̱pobi̱lik A̱togo wu<br><small>République togolaise (Fi̱ransa)</small>
|flag = Flag of Togo.svg
|coa = Armoiries du Togo.svg
|image = Togo on the globe (Africa centered).svg
|capital = Lome
|area = 56,785
|population = 8,608,444
|year = 2020
}}
'''A̱bwom a̱byin''': "Terre de nos aïeux" ("A̱byin a̱yaatyia̱-a̱khwop nzi̱t ka")
A̱byin '''Togo''', á̱ lyen ma̱ng a̱lyoot a̱gwomna̱ti ka nang '''Ri̱pobi̱lik A̱togo''' wu (Fi̱ransa: République togolaise; Shong: Togolese Republic) a̱ni, yet a̱byin kya di̱ fam-a̱byin [[Jenshyung Afrika]] hu. Ka̱ byia̱ a̱gi̱gak ma̱ng [[Gana]] di̱ fam jenshyung hu, [[Bini (a̱byin)|Bini]] di̱ fam a̱tyin hu ma̱ng [[Burkina Faso]] di̱ fam a̱za hu.<ref name="Republic of Togo">"[https://www.isdb.org/togo Republic of Togo]" (di̱n Shong). www.isdb.org.</ref> A̱byin ka ngaat di̱ fam a̱tak tat [[A̱ngam A̱sa̱khwot Gini]] wu, fam a̱byin hu nang a̱keangtung ka ma̱ng a̱gba̱ndang a̱keang wu a̱ swak mi̱ shi hu, Lomé, nshyia̱ a̱ni.<ref>"[https://www.isdb.org/togo web Republic of Togo]" (di̱n Shong). www.isdb.org.</ref> A̱byin Togo kup kilomita a̱ma̱ntaa̱naai 57,000 (met a̱ma̱ntaa̱naai 22,008), si̱ ku tyia̱ ka̱ si̱ yet a̱nyiung mami a̱cyuang bibyin [[Afrika]] hu, ma̱ng shi á̱niet kpa̱mkpaan ma̱ng miliyon 8,<ref>"[https://www.bbc.com/news/world-africa-14106781 Togo country profile]" (di̱n Shong). BBC News (24 Zwat Sweang 2020).</ref> a mbeang a̱nyiung mi̱ bibyin swanta ku la̱u yet a̱fa̱fap a̱ni ma̱ng shi á̱kpai ku lat kilomita 115 (met 71) a̱ni tsi̱tsak Gana ma̱ng a̱byin hyia̱k nka ka ka̱ laai swak nka ma̱ a̱da̱dei di̱ fam a̱tyin hu, [[Bini (a̱byin)|Bini]].
==Ya̱fang==
<references/>
{{Bibyin Afrika}}
[[Sa:Bibyin_swanta]]
[[Sa:Bibyin_Afrika]]
[[Sa:Bibyin_Jenshyung_Afrika]]
4fob1l3e7ahaespnhtsucfcudhv4css
Tong
0
772
12497
9981
2022-05-21T05:21:44Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
[[Fail:Runny hunny.jpg|thumb|A̱bakurung tong ma̱ng shantok tong ma̱ng bisi̱kit Amerika jhyang]]
'''Tong''' yet a̱nya̱nyiat a̱myia̱ wa nang á̱ shyiat ma̱ng shwai a̱ni. Shwai koot tong sa ntung ji ma̱ a̱kwon kya. Á̱nietbishyi swuo tong sa nnyia̱ a̱ki̱kan.
==Ya̱fang==
<references/>
0jrumew3rmudpkiv1sypx4b730s1spb
Tsaai
0
773
12498
9993
2022-05-21T05:21:55Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
[[Fail:Nokota Horses cropped.jpg|thumb|Tsaaí Nokota]]
'''Tsaai''' ji (á̱kpa: '''Tsaaí'''; ''Equus ferus caballus''<ref>International Commission on Zoological Nomenclature (2003). [http://www.nhm.ac.uk/hosted_sites/iczn/BZNMar2003opinions.htm Usage of 17 specific names based on wild species which are pre-dated by or contemporary with those based on domestic animals (Lepidoptera, Osteichthyes, Mammalia): conserved. Opinion 2027 (Case 3010)] (di̱n Shong). Bull. Zool. Nomenclature. 60:1. P. 81–84.</ref>) yet nyam mali ja ji̱ byia̱ gbaat ma̱ a̱ti̱tak.
==Ya̱fang==
<references/>
ci04ck0yuz5k41xf06u8nxfwnes8kej
Tsaai-ayit
0
774
9998
9997
2022-05-16T12:55:11Z
Jon Harald Søby
8
4 revisions imported
wikitext
text/x-wiki
#REDIRECT [[Tsaai a̱yit]]
mtja0jb848513mn0c77f99if5zg8xrw
Tsaai a̱yit
0
775
14449
13509
2022-06-13T10:34:15Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
[[Fail:Plains Zebra Equus quagga.jpg|thumb|A̱sorong tsaaí a̱yit a̱kpa̱kpai a̱byin ("Equus quagga")]]
'''Tsaai a̱yit''' (á̱kpa: '''tsaaí a̱yit''') yet nyam a̱yit ja ji̱ byia̱ a̱yaamaat a̱sai mi̱ a̱dyundyung si̱ kai vam nji hu a̱mgba̱m.
==Ya̱fang==
<references/>
[[Sa:Tsaai a̱yit]]
6oo6eioqbbh4e30zj4u4encw25ef4ec
Tsaai tswam
0
776
14731
14730
2022-07-02T18:29:26Z
Kambai Akau
15
wikitext
text/x-wiki
{{Databox|item=Q11442}}
[[Fail:Left side of Flying Pigeon.jpg|thumb|upright=1.35|Tangka̱i maat tsaai tswam nang á̱niet cat a̱ swak ba̱t a̱ni—ma̱ng kyangcung nyiung mami a̱mgba̱m nkyangcung mi̱ swanta nang á̱nietbishyi cat a̱ swak a̱ni—huhwa yet Flying Pigeon nang á̱ jhyi ma̱ a̱byin Caina, a̱wot á̱ ku nok kpa̱mkpaan ma̱ng miliyon 500 neet di̱n jen tsa ji.]]
[[Fail:Campana clásica de bicicleta (sonido) 02.wav|thumb|A̱khwukhwop maat li̱lak tsaai tswam]]
'''Tsaai tswam''' ji, á̱ ka ngyei kéké a̱ni, yet kyangcung ku tyong vak nyiung hwa nang á̱ luk ma̱ng pedal a̱wot cet luk nhu hu bye neet da̱ á̱nietbishyi ke di̱ fwuontswam (ma̱to), ji̱ si̱ ka byia̱ [[Tak tsaai tswam|a̱ti̱tak]] a̱feang nang á̱ ta̱meet di̱ fi̱rem hu, a̱nyiung a̱ma̱lyim a̱ghyang. Á̱ ngyei a̱tyu a̱ luk tsaai tswam di̱n Shong saiki̱lis ku baisi̱ki̱lis.
==Ya̱fang==
<references/>
==Fang a̱zanson==
* Glaskin, Max (2013). ''[http://www.press.uchicago.edu/ucp/books/book/chicago/C/bo14350452.html Cycling Science: How Rider and Machine Work Together]'' (di̱n Shong). Chicago: University of Chicago Press. ISBN 978-0-226-92187-7
* Huttier, Raymond; André Leducq (á̱son a̱lyiat) (1951). ''Le roman de la bicyclette: du célérifère au vélo moderne'' (di̱ Fi̱ransa). Paris: Editions Susse. OCLC 493733039 Illustrated; P. 139. Bicycle history.
[[Sa:Tsaaí tswam]]
72e6on9bvaddoelz3npf3xywvvwjrha
Tsang
0
777
14451
12985
2022-06-13T10:34:25Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
[[File:Act_of_theft.jpg|thumb|Nyia̱ tsang]]
'''Tsang''' yet a̱byia̱byia̱ nyia̱ wa a̱ yet si̱ nyiin kyang ku yet si̱ a̱ghyang a̱niet a̱ni. Tsang yet kwok kyang ku yet si̱ a̱yin ku si̱ á̱niet, di̱ mi̱n shim nggu/mba hu. A̱tyu a̱ nyiin kyang a̱ghyang a̱niet wa á̱ ngyei [[a̱tang]].
==Bu nwuan==
* [[Tsang (nyam)]]
==Ya̱fang==
<references/>
[[Sa:Tsang]]
mrmb3x563jx08lukjlu65yokow0vf63
Tsang(Nyam)
0
778
10035
10034
2022-05-16T12:55:12Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[Tsang (nyam)]]
m61az1vwyv9gjes56o87d87885liivt
Tsang (nyam)
0
779
12987
12501
2022-05-29T16:47:35Z
Kambai Akau
15
wikitext
text/x-wiki
[[Fail:Nile crocodile head.jpg|thumb|Tsang a̱ghyui Nail (''Crocodylus niloticus'')]]
[[Fail:Pangil Crocodile Park Davao City.jpg|thumb|Tsang a̱sa̱khwot nfak (''Crocodylus porosus'')]]
'''Tsang''' ''ji'' (á̱kpa: '''tsáng''' ''ji'') (sa ''Crocodylidae'') yet a̱gba̱ndang nyam wa gu swan a̱sa̱khwot ma̱ng a̱byin a̱ni, á̱ maai shyia̱ nggu mi̱ koji mami bibyin tropik hu mi̱ [[Afrika]], [[A̱siya]], [[Amerika|A̱yaamerika ba]] ma̱ng [[A̱strelya]].
==Ya̱fang==
<references/>
mqf0vrim6zn4wxu3tlr4la7dxr2tn9j
Tsok
0
780
12502
10070
2022-05-21T05:22:34Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
[[Fail:Judea 2 by David Shankbone.jpg|thumb|Tsutsok Tswa A̱ji̱jak Yahudiya]]
'''Tsok''' (á̱kpa: '''tsutsok''', á̱ ka ndyuut '''tswok''' jen jhyang) yet a̱gut ku a̱byin-a̱za nang á̱ ban a̱ni. A̱gut a̱ la̱n a̱ka̱sa a̱byin na a̱ni.
==Ya̱fang==
<references/>
m081ggigd0m9jyu5vopn966k9zfzbo2
Tson
0
781
12503
10081
2022-05-21T05:22:44Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
'''Tson''' yet yak ha na̱ li na̱ng tsintyiang a̱ni. A̱ cyui tsón ma̱ng a̱wot a̱ sa ncyim ji. Ka̱ ji maai ya, a̱ ni̱ fak kwoot a̱won a̱tsot yak hu a̱tin.
==Ya̱fang==
<references/>
6qcnlp3huy9u6yr07zcy7b4qldartyc
Tsong
0
782
12504
10097
2022-05-21T05:22:54Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
'''Tsong''' yet nyam a̱.
== Ya̱fang ==
<references/>
d9pf3u4swf8nirgedxk4988dmmf2fyw
Tsung
0
783
10099
10098
2022-05-16T12:55:15Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[Tsuung]]
ps7iovqr5tsyoqvps65wjinq2c6riqj
Tsuung
0
784
14452
13119
2022-06-13T10:34:30Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
Swang a̱lyiat '''tsuung''' ji bye fa:
# [[Tsuung (a̱mpwot)]]
# [[Tsuung (nok)]]
# [[Tsuung (ywan ndong)]]
[[Sa:Ngwat nghai swáng a̱lyiat]]
o66abifua7qkse1ikycey91dzx35jpu
Tsuung (a̱mpwot)
0
785
15691
15690
2022-08-11T22:08:42Z
Kambai Akau
15
wikitext
text/x-wiki
[[Fail:Wenceslas Hollar - Quivers and hunting horns.jpg|thumb|Tsutsuung tsat]]
'''Tsuung''' ji (á̱kpa: '''tsutsuung''' ''ji'') yet a̱junjung a̱mpwot nang a̱tyu a̱kat ku a̱gwak nzwang nsaai nhyet nggu na a̱ni.
==Nghwughwu==
<gallery widths="200px" heights="200px">
Image:OttomanHorseArcher.jpg|A̱tyoturk Ottoman ma̱ng ''rear-canted belt quiver'' nang á̱ jhyi mat mang nhyet da̱ a̱ka̱fan
File:Bågkoger med förgyllt silver, peridoter, små turkoser, rubiner och silverpärlor - Livrustkammaren - 91418.tif|Quiver from Turkey, 1620s.
Image:Antique Japanese (samurai) yumi and yebira.jpg|Japanese archery equipment including a variety of quivers
Image:Yoshitoshi Fujiwara no Hidesato.jpg|Fujiwara no Hidesato shooting the giant centipede ([[Tsukioka Yoshitoshi]], 1890)
File:Detail. Royal guard carrying a quiver, member of the so-called Immortals (the 1000 special royal guards). Glazed brick. From the East Gate of the Palace at Susa, Iran. Achaemenid period, Reign of Darius I, 521-500 BCE. British Museum.jpg|thumb|Detail. Royal guard carrying a quiver, member of the so-called Immortals (the 1000 special royal guards). From Susa, Iran. 521-500 BCE. British Museum
</gallery>
==Ya̱fang==
<references/>
*{{cite book |title=Archery |publisher=Boy Scouts of America |location=Irving, Texas |year=1986 |isbn=0-8395-3381-0 }}
*{{cite EB1911|wstitle=Quiver|volume=22}}
*{{cite book |author1=Glover, Daniel S. |author2=Grayson, Charles Jackson |author3=French, Mary |author4=O'Brien, Michael J. |title=Traditional archery from six continents: the Charles E. Grayson Collection |publisher=University of Missouri Press |location=Columbia |year=2007 |isbn=0-8262-1751-6 }}
[[Category:Mang nhyet]]
[[Category:Nkyang a̱kat]]
sxn378nlc47hbu65h983ymgdf4rawtu
Tswa A̱lii
0
786
10116
10115
2022-05-16T12:55:16Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[Tswa a̱li]]
o3wzksnkghkb146mxb6ignw7mcchaik
Tswa a̱ji̱jak
0
787
12506
10127
2022-05-21T05:23:14Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
'''Tswa a̱jijak''' yet a̱na̱khwu a̱vwuo wa nang a̱sa̱khwot nsaan ani. A̱wot mat a̱nia, nkyang nswuan nang á̱ga̱fi̱p ma̱ng nyám ni̱ nswuo a̱bung ba̱ swan a̱ja.
==Ya̱fang==
<references/>
6w82h026gva8wf3bvyyjfzc7gqotvcw
Tswa a̱li
0
788
14453
13153
2022-06-13T10:34:35Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
[[Fail:Eye iris.jpg|thumb|Tswa a̱li a̱tyubishyi]]
[[Fail:Bison bonasus right eye close-up.jpg|thumb|upright|left|Tswa a̱li zat Yurop jhyang]]
'''A̱ghyi''' ba (a̱nyiung: '''tswa a̱li''' ''ji'' ku '''a̱li''' ''ka'') yet nkyang nwuan a̱vwuo vam nyam ku a̱tyubishyi nia. Bibya nwuat nkyang nswuan a̱wat nwuan a̱vwuo.
==Bu nwuan==
* [[A̱li]]
==Ya̱fang==
<references/>
[[Sa:Nkyang a̱li nwuan a̱vwuo]]
a5cx3djgk2aiysgz75q5wb5ab6lour9
Tswa kan
0
789
14742
12507
2022-07-02T20:21:32Z
Kambai Akau
15
wikitext
text/x-wiki
{{Databox|item=Q206077}}
[[Fail:FlattenedRoundPills.jpg|thumb|Tswá kan á̱ lyen á̱ swak a̱ni ji̱ byia̱ tai bibyia̱ a̱ni]]
'''Tswa kan''' ji (á̱kpa: '''tswá kan''' ''ji'') yet kan nwuan hwa (a̱kpa̱u kan nwuan, ku A̱KN ku ''OSD'' di̱n Shong).
==Ya̱fang==
<references/>
ay3l8tvzfzc73b26lriw4d7xzewiykf
Tswa yaya
0
790
14454
13511
2022-06-13T10:34:40Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
[[Fail:Solex 99 30 padlock with keys (DSCF2659).jpg|thumb|upright=1.35|Tangka̱i kidee tswam nyii nyinyiit mam a̱fwun hu ma̱ng yaya nji hu]]
'''Tswa yaya''' (á̱kpa: '''yaya''') yet kyang khwuk ku nyip nyinyiit hwa.
==Ya̱fang==
<references/>
[[Sa:Tswa yaya]]
rypxlu73deh0p8b8i3p7uu1y54m7h6d
Tswan
0
791
12509
10209
2022-05-21T05:23:45Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
[[Fail:Elaeis guineensis - Köhler–s Medizinal-Pflanzen-056.jpg|thumb|Tswan Afrika (''Elaeis guineensis'')]]
'''Tswan''' yet a̱kwon kya ka̱ kyiak jen ji̱ swak a̱lyia̱ a̱nyiung ka̱ ta̱bat mat sum a̱ni. A̱ka̱kwon tswan shyia̱ ma̱ a̱ka̱kwon nang á̱ lyen a̱ swak a̱wot á̱ si̱ cyui a̱ swak mi̱ si̱sa a̱ka̱kwon a̱ni.
==Ya̱fang==
<references/>
af4muvakr63p4fzt29b4f51y9ppo1nm
Tsāai-a̱yit
0
792
10211
10210
2022-05-16T12:55:20Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[Tsaai a̱yit]]
mtja0jb848513mn0c77f99if5zg8xrw
Tung nzwa Naijeriya
0
793
14084
13512
2022-06-13T09:32:07Z
Vargenau
226
wikitext
text/x-wiki
[[Fail:2014 Victoria Island Lagos Nigeria 15006436297.jpg|thumb|[[Legwot]], a̱ka̱wa̱tyia̱ fam kurum a̱byin [[Naijeriya]]]]
'''Tung nzwa a̱byin [[Naijeriya]]''' hu byia̱ shi a̱ka̱wa̱tyia̱ hwa di̱n vak a̱ka̱kurum na̱ nwuai a̱byin ka, ku si̱ yet tung nzwa ku shyia̱ di̱ kyiai ma̱ng kaswuo ji̱ laai ta̱ngam ja a̱ni; ma̱ng nta̱m nok nkyang na̱ shyia̱ di̱ ngaat a̱ni, a̱mgba̱m ma̱ng nfam kurum, savit, a̱ka̱myim, lyennkyangta̱m ma̱ng gwainfwuoá̱niet na meang.<ref>[http://www.nigeria-consulate-frankfurt.de/English/Business/Economy/economy.html Nigeria Economy] (di̱n Shong). nigeria-consulate-frankfurt.de</ref><ref>[https://www.usaid.gov/nigeria/economic-growth Economic Growth and Trade {{!}} Nigeria {{!}} U.S. Agency for International Development] (di̱n Shong). www.usaid.gov</ref>
==Ya̱fang==
<references/>
[[Sa:Tung nzwa Naijeriya|*]]
jfke29asrpa1bjhtf3yycb5jwwsknrq
Turkiya
0
794
15593
14455
2022-08-08T21:26:04Z
Kambai Akau
15
wikitext
text/x-wiki
{{Country
|name = Turkiya
|flag = Flag of Turkey.svg
|coa = Emblem of Turkey.svg
|image = Turkey (orthographic projection).svg
|capital = Ankara
|area = 783 356
|population = 83 614 362
|year = 2020
}}
A̱byin '''Turkiya''' (Turki: Türkiye /ˈtyɾcije/; Shong: Turkey), á̱ lyen ma̱ng a̱lyoot a̱gwomna̱ti nka nang '''Ri̱pobi̱lik Turkiya''' wu (Turki: Türkiye Cumhuriyeti /ˈtyɾcije dʒumˈhuːɾijeti/; Shong: Republic of Turkey) a̱ni, yet a̱byin kya ka̱ shyia̱ di̱n kap
di̱ fam Jenshyung [[A̱siya]] di̱n kap di̱ fam A̱tak a̱tyin [[Yurop]] a̱ni. Ka̱ byia̱ a̱gi̱gak ma̱ng [[Helat]] ma̱ng Buli̱geriya di̱ fam a̱za-jenshyung hu; [[A̱dyundyung Kyai A̱sa̱khwot]] wu di̱ fam a̱za hu; Jiyojiya di̱ fam a̱za-a̱tyin hu; [[A̱rmeniya]], Azerbaijan, ma̱ng Iran di̱ fam a̱tyin hu; Irak di̱ fam a̱tak-a̱tyin hu; [[Suriya]] ma̱ng [[Kyai A̱sa̱khwot Meditaroniya]] hu di̱ fam a̱tak hu; ma̱ng Kyai A̱sa̱khwot A̱gea hu di̱ fam jenshyung hu. A̱turki ba, bibya byia̱ a̱di̱di̱t shi wu ma̱ng shi á̱niet a̱byin hu a̱wot A̱kurdi ba si̱ byia̱ a̱da̱dei shi wu a̱ swak ma̱ng shi mami a̱cyuang nnwap na a̱ni. A̱keangtung nka ka, kikya yet A̱nkara ma̱nang a̱gba̱ndang a̱keang nka wu a̱ swak ma̱ng shi hu a̱ si̱ ka yet a̱ka̱wa̱tyia̱ naat mbwuot a̱ka̱kurum ka si̱ yet [[Itambut]].
{{Bibyin A̱siya}}
[[Sa:Bibyin_swanta]]
[[Sa:Bibyin_A̱siya]]
[[Sa:Bibyin_Yurop]]
[[Sa:Bibyin_Jenshyung_A̱siya]]
[[Sa:Turkiya]]
7pa7fealiwxx5w9imckjnbjkb792c9i
Tyap (a̱lyem)
0
795
15207
15206
2022-07-17T18:40:51Z
Kambai Akau
15
wikitext
text/x-wiki
{{Databox|item=Q3912765}}
A̱lyem '''Tyap''' ka yet sot a̱balilyem [[Lilyem Pi̱lato|lilyem Pi̱lato]] ja ma̱ng a̱tsatsak shi di̱ fam-a̱byin Fam A̱ka̱wa̱tyia̱ [[Naijeriya]]. A̱lyoot nTyap ka, kikya yet a̱lyoot sa̱la̱u sot a̱balilyem a̱ja. Tyap ja yet a̱lyem á̱niet nang á̱ ngyei [[A̱tyap]] ba a̱ni. Á̱ ka ngyei nji ''Katab'' ku ''Kataf'' (nang [[A̱kpat|A̱kpat wu]] yei a̱ni). Á̱ ka si̱ lyen nji ma̱ng lyulyoot a̱balilyem a̱natat nji nang: [[Fantswam (a̱balyem)|Fantswam]], [[Gwoot (a̱balyem)|Gwoot]], [[Sholyia̱ (a̱balyem)|Sholyia̱]], [[Takat (a̱balyem)|Takat]], [[Tyap Maba̱ta̱do (a̱balyem)|Tyap Maba̱ta̱do]], [[Tyia̱caat (a̱balyem)|Tyia̱ca̱rak]] ma̱ng [[Tyuku (a̱balyem)|Tyuku]] a̱ni. Ma̱ng si̱sak Blench (2008), [[Jhyuo (a̱lyem)|Jhyuo]] ji — ji̱ byia̱ á̱niet lyiat ba̱ shi a̱ swak a̱ni — li á ngyei tangka̱i Tyap ghyang hwa (shimba á̱niet lyiat nji ba vwuon di̱ sa nwap).<ref name=p>"[https://en.m.wikipedia.org/wiki/Central_Plateau_languages Central Plateau languages]" (di̱n Shong).</ref>
==Mak mi̱ mak tai a̱balilyem Tyap ==
Lyilyim mak mi̱ mak mkpa̱t nfi̱k mat á̱ fi̱k si̱sak nang tai hu tsi̱tsak Kaje (Jhyuo), Katab (Tyap) ma̱ng Kagoro (Gwoot) shi si̱ tat a̱ni mi̱ [[Lyulyoot Swadesh|Lyulyoot swáng a̱lyiat Swadesh]] ku shyia̱ ma̱ng á̱ngga 118 á̱si̱ ''a̱tsatsak a̱gban a̱lyiat'' a̱ni, Wurm (1971), ma̱ a̱lyiat nggu na si̱ tak nyia̱, mkpa̱t nfi̱k na tyai nyia̱ nnwap a̱tat na lyiat a̱balilyem a̱lyem a̱nyiung hwa.<ref>Wurm, S. A. (1971). "Papuan Linguistic Situation. Current Trends in Linguistics". Sebeok, T. (Ed.). Vol. 8. Pp. 541–65. The Hague.</ref>
{| class="wikitable"
| Kaje
|-
! 84%
| Katab
|-
! 83%
! 91%
| Kagoro
|}<sub>Mkpa̱t nfi̱k mi̱ lis swang a̱lyiat Swadesh hu: Wurm (1971).</sub><br>
Ma̱nang á̱ ngya a̱son ma̱ng mai tai hu a̱ni, á̱ si̱ ba̱ mai swáng a̱lyiat ji̱ byia̱ a̱meang mba ji nang McKinney (1983:291), ma̱nang gu mmak nwuai mi̱ nwuai 174 tsi̱tsak a̱balilyem hu shyia̱ tazwa jiniaau si̱ ta̱taat nyia̱ a̱ni̱nai ja ma̱nyin yet swáng a̱lyiat ji̱ vwuon tsi̱tsak njii.<ref>McKinney, C. (1983). "[https://www.jstor.org/stable/3773677 A Linguistic Shift in Kaje, Kagoro, and Katab Kinship Terminology]". Ethnology. (22)(4). Pp. 281–293. DOI 10.2307/3773677. JSTOR 3773677.</ref>
{| class="wikitable"
| Kaje
|-
! 83%
| Katab
|-
! 83%
! 90%
| Kagoro
|}<sub>Mkpa̱t swáng a̱lyiat nfi̱k bi̱n: McKinney (1983:291).</sub><br>
A̱tatak kya myiai mai tai nang A̱ka̱u (2020) ku nyia̱ a̱ni tsi̱tsak a̱balilyem a̱ka̱wa̱tyia̱ Tyap hu ma̱ng Jhyuo.
{| class="wikitable"
!
!Shong (Nggi̱lit)
!"Maba̱ta̱do"
!Jhyuo (Jju)
!Gwoot (Gworok)
!Sholyia̱ (Sholyio, Sholio)
!Tyecaat (Tyeca̱rak)
!Fantswam
!Takat (Takad)
!Tyuku
|-
|1
|Come and eat.
|Bai a ya kyayak.
|Ba a ya kyangya.
|Bai u ya kyayak.
|Bai a gye kyayak
|Bai a gye kyayak.
|Bai a ya kyangya.
|Bai u gyi kyangyi.
|Bai u gyi kyangyi.
|-
|2
|Let us rise with strength.
|Yok zi̱ doot yong ma̱ng cet.
|Ryok zi drok ryong bu cet.
|Yok zi̱t durok yong bi̱ cet.
|Yok zi̱ durok yong ma̱ng tset.
|Yok zi̱ durok yong ma̱ng cet.
|Yok zi̱ durok yong bi̱ cet.
|Yok zi̱ durok yong bi̱ tset.
|Yok zi̱ durok yong bi̱ tset.
|-
|3
|I am not going to the wedding.
|N na nat la̱p nyeang (nyi̱yang) hu bah.
|N ni nat rop nyreng a ba.
|N na nat la̱p nyi̱rang ku dak.
|N na nat la̱p nyi̱rang hu bah.
|N na nat la̱p nyi̱rang hu bah.
|N na nat la̱p nyi̱rang ku dak.
|N li nat la̱p nyi̱rang hu dak.
|N li nat la̱p nyi̱rang hu dak.
|-
|4
|The people are hungry.
|Á̱niet ba fwuong zong.
|Ba̱nyet ba pfong zong.
|Á̱niet ba tswuong jong.
|Á̱niet be fwuong jong.
|Á̱niet be fwuong zong.
|Á̱nyet ba tfwuong zong.
|Á̱niet bi fwuong zong.
|Á̱niet bi fwuong zong.
|-
|5
|The child was walking, and fell down.
|Nggwon ka ncong, ka̱ si̱ kwa a̱byin.
|Ka̱won ka ncong, ka̱ yin kpa ka̱byen.
|Nggwon ka ncong, ka̱ si̱ kwa a̱byin.
|Nggwon ke ncong, ka̱ si̱ kwa a̱byin.
|Nggwon ke ncong, ka̱ si̱ kwa a̱byin.
|Nggwon ka ncong, ka̱ si̱ kwa a̱byin.
|Nggwon ki ncong, ka̱ si̱ kwa a̱byin.
|Nggwon ki ncong, ka̱ si̱ kwa a̱byin.
|-
|6
|The pot is here.
|A̱la̱n ka shyia̱ a̱ji.
|Ka̱ra̱n ti shyi aki.
|Ula̱n ka shyio a̱ji.
|A̱la̱n ke shyia̱ a̱zi.
|A̱la̱n ke shyia̱ a̱ji.
|Ka̱la̱n ti shyia a̱ji.
|Ula̱n ki syia̱ a̱zi.
|Ula̱n ki syia̱ a̱zi.
|-
|7
|They are too mouthy. God will help them.
|Ba̱ la̱u byia̱ a̱nu. A̱gwaza/A̱za na beang mba.
|Ba̱ ra̱u byi ka̱nu. Ka̱za ni mba brang.
|Ba̱ la̱u byia̱ a̱nu. A̱gwaza/Uza na beang mba.
|Ba̱ la̱u byia̱ a̱nu. A̱gwaze/A̱ze na beang mbe.
|Ba̱ la̱u byia̱ a̱nu. A̱gwaze/A̱ze na beang mbe.
|Ba̱ la̱u byia ka̱nu. Gwaza/Ka̱za na beang mba.
|Ba̱ la̱u byia̱ a̱nu. A̱gwazi/Uzi li beang mbi.
|Ba̱ la̱u byia̱ a̱nu. A̱gwazi/Uzi li beang mbi
|-
|8
|Kuyet went to the forest with me to get water.
|Kuyet nwuo a̱yit ka ma̱ng a̱nung a̱ bwuo a̱sa̱khwot.
|Kuyet nwa ka̱yit ka ba̱ nzuk a̱ bvwa ba̱shekwot.
|Kuyet nwuo uyit ka bi̱ nung a̱ bvwuo a̱sa̱khwot.
|Kuyet nwuo ka̱yit ke ma̱ng a̱nung a̱ bwuo a̱sa̱khwot.
|Kuyet nwuo a̱yit ke ma̱ng a̱nung a̱ bwuo a̱sa̱khwot.
|Kuyet nwua ka̱yit ka bi̱ nung a̱ bwua a̱sa̱khwot.
|Kuyet nwuo uyit ki ba̱ a̱nung a̱ bvwuo a̱sa̱khwot.
|Kuyet nwua uyit ki ba̱ a̱nung a̱ bvwua a̱sa̱khwot.
|-
|9
|Who is home?
|A̱nyan wa a̱ nshyia̱ a̱mali ka?
|A̱nyan a̱mi a̱ nshyi ka̱ryi ka?
|A̱nyan a̱ a̱ nshyia̱ buli ka?
|A̱nyan a a̱ nshyia̱ a̱mali ke?
|A̱nyan a a̱ nshyia̱ a̱mali ke?
|A̱nyan a a̱ nshyia ka̱li ka?
|A̱nyan a a̱ nsyia̱ buli ki?
|A̱nyan a a̱ nsyia̱ buli ki?
|-
|10
|It is above.
|A̱ shyia̱ tazwa ka.
|A̱ shyi tazwa ka.
|A̱ shyio tuza ka.
|A̱ shyia̱ tanzwe ke.
|A̱ shyia̱ tanzwe ke.
|A̱ shyia tazwa ka.
|A̱ syia̱ tuzi ki.
|A̱ syia̱ tuzi ki.
|-
|11
|Will you drink?
|A na swuo a?
|A ni fwa a?
|A na swuo a?
|A na swuo a?
|A na swuo a?
|A na fwua a?
|U li swuo a?
|U li swuo a?
|-
|12
|They said some children came here today.
|Ba̱ nyia̱ mman á̱ghyang bai a̱ji a̱fwun ka.
|Ba̱ yya na̱won ka̱yaan ba aki ka̱pfwun ka.
|Ba̱ nyio nuwan á̱ghyang bai a̱ji utswun ka.
|Ba̱ nyia̱ mman á̱ghyang bai a̱zi a̱fwun ke.
|Ba̱ nyia̱ mman á̱ghyang bai a̱ji a̱fwun ke.
|Ba̱ nyia mnuwan á̱yaan bai a̱ji ka̱tfwun ka.
|Ba̱ hyia̱ mman á̱ghyang bai a̱zi ufwun ki.
|Ba̱ shyia̱ mman á̱zang bai a̱zi utswun ki.
|-
|13
|Let us unite.
|Zi̱ tung ndung.
|Zi tung ndung.
|Zi̱t tung ndung.
|Zi̱ tung ndung.
|Zi̱ tung ndung.
|Zi̱ tung ndung.
|Zi̱ tung ndung.
|Zi̱ tung ndung.
|}
==Tyap ma̱ng lilyem ku byia̱ a̱meang==
Lis zop zuzop ghyang nang á̱ ngyei "Swadesh 100-word List" hu a̱ni nang Shimizu (1975:414) ku nneap a̱ni tsa nyia̱ Tyap ('''''Katab''''') ji byia̱ mkpa̱t nfi̱k nanii ma̱ng [[Lilyem Pi̱lato]] ghyáng ku tai njii a̱ni ma̱ng [[A̱lyem Wapan|Ji̱kum]], corop neet si̱ nka ka̱ lan swak mi̱ tai hu ba̱ng si̱ nat si̱ nka ka̱ shyia̱ a̱tak lan swak a̱ni: 72% ma̱ng [[A̱lyem Za̱le|Za̱le]] (Izere), 66% ma̱ng [[Á̱nietza̱fan (a̱lyem)|Á̱nietza̱fan]] (Rigwe), 50% ma̱ng [[A̱lyem Ca̱la|Ca̱la]], 49% ma̱ng [[Kuut (a̱lyem)|Kuut]], 42% ma̱ng [[A̱lyem Tarok|Tarok]], 41% ma̱ng [[A̱lyem Pyem|Pyem]], 41% ma̱ng [[A̱lyem Nghwom|Nghwom]] (Ni̱nza̱m), 39% ma̱ng [[A̱lyem Ce|Ce]] (Kuce), 39% ma̱ng [[Igwong (a̱lyem)|Igwong]] (Eggon), 38% ma̱ng [[A̱lyem Bunu|Bunu]] (Ibunu), 37% with [[A̱lyem Lindi̱le|Li̱ndi̱le]] (Rindre) a mbeang 34% ma̱ng [[A̱lyem Wapang|Ji̱kum]] (Jukun).<ref name=Shim>Shimizu, Kiyoshi (1975). "[http://www.jstor.org/stable/30027577 A Lexicostatistical Study of Plateau Languages and Jukun]". Anthropological Linguistics. (17)(8). Pp. 413–418. JSTOR 30027577.</ref>
==Ya̱fang==
<references/>
==A̱ka̱fwuop nta==
*[http://comparalex.org/resources/index.php?page=query&w1=262 Sholio (Tyap) ComparaLex]
* [https://door43.org/u/Joseph/kcg-x-takad_luk_text_ulb/master/ The Book of Luke in Takad]
* [https://asjp.clld.org/languages/TYAP Wordlist Tyap (Gworok)]
[[Sa:A̱lyem Tyap|A̱lyem Tyap]]
[[Sa:Lilyem_swanta]]
[[Sa:Lilyem_Afrika]]
[[Sa:Lilyem_Afrika_Jenshyung]]
[[Sa:Lilyem_Naijeriya]]
[[Sa:Lilyem Nija–Konggo]]
[[Sa:Lilyem Binuwe–Konggo]]
[[Sa:Lilyem_A̱ka̱wa̱tyia̱_Pi̱lato]]
[[Sa:Lilyem_a̱bwonu_a̱khwu]]
mi73lzlhwkfx9hsyt85gh161r63go4g
Tyekau A̱kyetuk
0
796
10331
10330
2022-05-16T12:55:31Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[A̱tyia̱ka̱u a̱tyetuk]]
dgxc0wcdassrzxk55opxny81ftjxpva
Tyen (a̱lyem)
0
797
14457
13514
2022-06-13T10:35:16Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
'''Tyen''' ji, (Tyen: Eten, Iten) yet [[a̱lyem Pi̱lato]] [[Naijeriya]] kya. Á̱ maai nshyia̱ á̱niet ba̱ lyiat da̱ a̱lyem kani, [[A̱tyen]] (Tyen: Niten) ba, ma̱ a̱keang Ga̱nawuri mami [[Si̱tet Pi̱lato]].
==Ya̱fang==
<references/>
==A̱ka̱fwuop nta==
*[http://www.rogerblench.info/Language/Niger-Congo/BC/Plateau/Beromic/Iten/ItOP.htm Roger Blench: Iten (Ganawuri) page]
[[Sa:Lilyem Naijeriya]]
9x90x0r32i3jlbx5g1xodk8rcs50jue
A̱byintyok A̱tyap
0
798
15531
15246
2022-08-06T13:44:50Z
Kambai Akau
15
wikitext
text/x-wiki
{{Databox}}
'''A̱byintyok A̱tyap''' yet a̱ka̱ka̱rak a̱byin Naijeriya wa a̱si̱ [[A̱tyap]] ba ba̱ swan a̱niak fam a̱za [[A̱ghyui Ka̱duna]] wu di̱ tsok a̱ka̱wa̱tyia̱ [[Naijeriya]] ji di̱ fam a̱byin Fam A̱tyia̱ka̱u Naijeriya hu. Tyantung ji shyia̱ A̱tak Njei, [[Zangon Kataf|Nietcen A̱fakan]], [[A̱tak Ka̱duna|a̱tak]] [[Si̱tet Ka̱duna]], Naijeriya.<ref>"[http://www.sharpedgenews.com/index.php?option=com_k2&view=item&id=956:gas-development-will-be-employed-to-power-nigeria-s-economic-transformation-nnpc-boss&Itemid=692 Gas Development will be Employed to Power Nigeria's Economic Transformation - NNPC Boss]".</ref><ref>Awuhe, Terfa (Zwat A̱natat 16, 2020). "[https://web.archive.org/web/20210122145648/https://www.radionigeria.gov.ng/2020/07/16/idps-decries-non-compliance-with-covid-19-protocols/ IDPs decries non-compliance with COVID-19 protocols]".</ref>
==Nkhang==
Á̱ ku kpaat A̱byintyok A̱tyap ka ma̰ a̱lyia̱ 1995 kya. Ma̱ a̱lyia̱ 2007, á̱ nang nhu shi nwuai Tutu A̱son.<ref>"[https://kwekudee-tripdownmemorylane.blogspot.com/2013/09/atyap-kataf-people-aboriginal-people-of.html?m=1 ATYAP (KATAF) PEOPLE THE ABORIGINAL PEOPLE OF KADUNA]" (di̱n Shong). Trip Down Memory Lane, Zwat A̱kubunyiung 10, 2013.</ref>
==A̱gwomna̱ti==
'''Komiti Taada A̱tyap''' (Shong: Atyap Traditional Council) ja tyong nkyang Tyok A̱tyap na,<ref>"[http://www.thedreamdaily.com/atyap-traditional-council-takes-proactive-measures-crises/ Atyap Traditional Council Takes Proactive Measures Over Crises]". The Dream Daily, 9 Zwat Swak ma̱ng Sweang 2016.</ref> ma̱ng A̱gwatyap wu a̱ yong a̱pyia̱ nhu a̱ni.
==Nka̱u ntyok==
===A̱bantyok===
Á̱nietnta̱m Á̱lyiat [[Susot a̱gwomna̱ti mali Naijeriya|A̱gwomna̱ti Mali]] [[Si̱tet Ka̱duna]] ba ku nwuak la̱mba ''A̱bantyok Na̱ Nshyia̱'' nang 16, ''A̱bantyok Nang Á̱ Shim Ma̱ng Á̱na'' a̱ni nang a̱fwuon a mbeang ''Mkpa̱m A̱baka̱keang Nang Á̱ Shim Ma̱ng Á̱na'' a̱ni nang 61.<ref>"[https://web.archive.org/web/20210121004813/https://localgov.kdsg.gov.ng/?page_id=222 Ministry of Local Government Affairs]".</ref>
===A̱bantyok Tyok A̱tyap===
<ref name=Kam>Akau T. L., Kambai (2014). "The Tyap-English Dictionary". ''Benin City''.</ref>Á̱si̱ nani nia yet a̱bantyok na kyiak neet a̱lyia̱ 1995 ba̱ng si̱ nat 2017:
{|class=wikitable style="text-align:right;"
|-
!style="width:2em;"|La̱mba Lang !!style="width:10em;"| A̱ka̱ka̱rak a̱lyoot Tyap !! A̱lyoot nta Kpat
|-
| 1 || '''A̠buyap''' ||style="text-align:left;padding-left:1em;"| Ungwar Rohogo
|-
| 2 || '''Nietcen-A̱fakan''' ||style="text-align:left;padding-left:1em;"| Zangon Urban
|-
| 3 || '''A̠shong A̠shyui''' ||style="text-align:left;padding-left:1em;"| Jankasa
|-
| 4 || '''Bafoi Ka̠nai''' ||style="text-align:left;padding-left:1em;"| Gora Bafai
|-
| 5 || Cen A̠koo; ''Zama A̠won'' mameang ||style="text-align:left;padding-left:1em;"|
|-
| 6 || '''Gan Ka̠nai''' ||style="text-align:left;padding-left:1em;"| Gora Gan
|-
| 7 || '''Jei''' (A̱batyok A̱tung Tyok) ||style="text-align:left;padding-left:1em;"| Ungwar Gaiya
|-
| 8 || '''Ka̠nai Mali'''; ''A̠tsuung A̠byek'' mameang ||style="text-align:left;padding-left:1em;"| Gora Gida
|-
| 9 || '''Maka̱murum''' ||style="text-align:left;padding-left:1em;"| Kibori
|-
| 10 || '''Mancong''' ||style="text-align:left;padding-left:1em;"| Magadan Wuka
|-
| 11 || '''Mazaki''' ||style="text-align:left;padding-left:1em;"| Gidan Zaki
|-
| 12 || '''Ma̠nyi A̠ghyui''' ||style="text-align:left;padding-left:1em;"| Kigudu
|-
| 13 || '''Sop A̠koo''' ||style="text-align:left;padding-left:1em;"| Mabushi Kataf
|-
| 14 || '''Shilyam''', ''Kwakhwu'' mameang ||style="text-align:left;padding-left:1em;"|
|-
| 15 || ''' A̠takligan''' (Taligan), ''A̠ga̠mi'' mameang||style="text-align:left;padding-left:1em;"| Magamiya
|-
| 16 || '''Zonzon''' ||style="text-align:left;padding-left:1em;"| Zonzon Gora
|}
Da̱ a̱kwonu a̱kya, á̱si̱ nani nia si̱ yet A̱bantyok Nang A̱gwomna̱ti Ba Shim Ma̱ng Á̱na a̱ni mi̱ di̱ yong huni kyiak neet da̱ a̱lyia̱ 2017 ba̱ng si̱ nat, nang á̱ bu si̱ ntyap-a̱byin mbwak gwomna [[Si̱tet Ka̱duna]] wu di̱ yong huni, Nasir Elrufai a̱ni, a̱nyan wa á̱ ku nyia̱ a̱bwonu [https://www.premiumtimesng.com/regional/nwest/233728-in-major-restructuring-el-rufai-slashes-kaduna-districts-to-pre-2001-numbers.html ''Premium Times, Nigeria''] nyia̱ komiti ji nang á̱ kpaat mat a̱lyiat nyia̱ tyok a̱bantyok si̱tet ji ka̱n tyak a̱lyiat na ji̱ si̱ kin tak nyia̱ a̱tai hyaat la̱mba a̱bantyok nang á̱ ku nyia̱ gbangbang a̱ni neet di̱n jen a̱zaghyi a̱lyia̱ 2001 ji ku mban kpa̱p kurum hu a̱zanghwang A̱yaakomiti A̱gwomna̱ti Mali ji ku si̱ ba̱ khat mba kyiak. Mat a̱nia wa, á̱ si̱si̱ nghyuai nna á̱ sak ma̱ng si̱sak nang na̱ za̱ ma ndi a̱ni di̱n jen lilyim a̱lyia̱ 2001 ji. Di ni̱nia na:
{|class=wikitable style="text-align:right;"
|-
!style="width:2em;"|La̱mba Lang !!style="width:10em;"| A̱lyoot a̱ka̱ka̱rak Tyap !! A̱lyoot nta Kpat
|-
| 1 || '''Nietcen-A̱fakan''' ||style="text-align:left;padding-left:1em;"| Zangon Urban
|-
| 2 || '''Jei''' (A̱batyok A̱tung Tyok)||style="text-align:left;padding-left:1em;"| Ungwar Gaiya
|-
| 3 || '''Ka̠nai''' ||style="text-align:left;padding-left:1em;"| Gora
|-
| 4 || '''Zonzon''' ||style="text-align:left;padding-left:1em;"| Zonzon Gora
|}
===Tyantung===
Tyantung Tyok A̱tyap ji, jija yet A̱tak Njei, a̱jawa Magwatyap ka nshyia̱.<ref name=AC></ref>
Mi̱ mmam nanii, khwom nshyia̱ fwuo a̱gwomna̱ti [[Si̱tet Ka̱duna]] ba nang Nasir el-Rufai nkwak a̱son a̱ni ba̱ lyip yihwa mbyia̱ nang ma a̱gwam wu swan da̱ a̱vwuo ka nang ka̱ shyia̱ di̱ swat a̱ni di̱ fam a̱hwa di̱ nta a̱keang [[Zangon Kataf]] ka ([[A̱lyem Tyap|Tyap]]: Nietcen-A̱fakan) nang A̱kpat-A̱fa̱taa-Á̱niet A̱tyin ba nhyat tyentyiang a̱ni, khwom hwa nang ''Atyap Community Development Association - ACDA'' wu (Sot Yaa̱son A̱tyap - SYA̱ ji) si̱ yong di̱ nyia̱ fi̱p mi̱ cet.<ref name=AC>Bodam, Sule Tinat (Zwat A̱natat 21, 2021). "[https://intervention.ng/21047/ Why Atyap Community is Protesting Another Kaduna State Government White Paper on Cudjoe, AVM Usman Muazu Reports on the 1992 Zangon Kataf Conflict (2)]". Intervention.</ref>
==Tyok==
===A̱ka̱sa tyok===
Tyok A̱tyap byia̱ a̱ka̱sa tyok a̱naai nang á̱ ka̱u ca̱caat ma̱ng kwaí nyaai [[A̱tyap]] ji. Di ni̱nia na:
{|class=wikitable style="text-align:right;"
|-
!style="width:2em;"|La̱mba Lang !!style="width:6em;"| Kwai !! A̱bakwai
|-
| 1 || A̱gbaat ||style="text-align:left;padding-left:1em;"| • A̱kpaisa<br/>• Jei<br/>• A̱kwak
|-
| 2 || A̱minyam ||style="text-align:left;padding-left:1em;"| • A̱fakan<br/>• A̱son
|-
| 3 || A̱ku || |
|-
| 4 || A̱shokwa ||
|}
===Á̱nietba̱ngtyok===
Á̱ ngyei á̱niet ba̱ nyia̱ tyok ba di̱ Tyok A̱tyap hu ''A̱gwatyap''.<ref name=KSM>"[https://web.archive.org/web/20201129053013/https://kdsg.gov.ng/el-rufai-urges-new-agwatyap-others-to-promote-peace/ El-Rufai urges new Agwatyap, others to promote peace]".</ref>
===Bwoi a̱lyoot á̱nietba̱ngtyok A̱tyap hu===
Swang a̱lyiat ji neet swáng a̱lyiat [[A̱lyem Tyap|Tyap]] sweang jini ja: ''a̱gwam'' ma̱ng ''A̱tyap'' ([[A̱tyap]] bya ba) a̱wot ji̱ si̱ fa "a̱tyutyok A̱tyap ba".<ref name=Kam></ref>
===Lyulyoot á̱nietba̱ngtyok ===
Lyulyoot á̱nietba̱ngtyok hu kyiak neet a̱lyia̱ 1995 ba̱ng si̱ tat a̱fwun huhwa yet:
{|class=wikitable style="text-align:right;"
|-
!style="width:2em;"|Tsa !!style="width:2em;"| Ngaan !! A̱tyuba̱ngtyok
|-
| 1995 || 2005 ||style="text-align:left;padding-left:1em;"| [[Ba̱la A̱de Da̱ukee|A̱tyushityok A̠gwam Ba̠la A̠de Da̠ukee (JP)]], ''A̱gwatyap I''
|-
| 2005 || Zwat nyaai 6, 2016 ||style="text-align:left;padding-left:1em;"| [[Harrison Bunggwon|A̱tyushityok A̱gwam Dr. Harrison Isuu Bunggwon '''(FNSE)''']], ''A̠gwatyap II''
|-
| Zwat swak ma̱ng jhyiung 12, 2016 || Mam a̱fwun ||style="text-align:left;padding-left:1em;"| [[Dominic Yahaya|A̱tyushityok A̱gwam Dominic Ga̱mbo Yahaya (KSM)]], ''A̱gwatyap III''<ref name=Kefas>Ayuba Kefas (2016). "Atyap People, Culture and Language". Unpublished. p. 12.</ref><ref name=KSM></ref>
|}
==Bu nwuan==
* Khwi A̱bwoi
* Song A̱yet A̱tyap
* [[A̱tak Ka̱duna]]
* Jhyá̱ Zangon Kataf 1992
==Ya̱fang==
<references/>
==A̱ka̱fwuop nta==
{{Commons category-inline|Atyap land|A̱byintyok A̱tyap}}
[[Sa:Naijeriya]]
[[Sa:A̱ka̱vwuo na̱ byia̱ á̱niet ma̱ ba̱t mami Si̱tet Ka̱duna]]
e7ql28v4fkonc1u4mym0vu113czzjk1
Tyson Fury
0
799
12514
10464
2022-05-21T05:24:37Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
Tyson Luke Fury (byin 12 August 1988) a̱yet a̱tyiu kwan a̱yaat bosin s̱i Britain a . A̱ ka̱ng gyet a̱gwak nman bosin ka̱ feang, a̱zaa ka̱ng ba̱ng WBC mbeang bung "The Ring magazine" neet gu ntsot Deontay Wilder ma̱ng 2020; bwak jhuung, a̱zaȧ ku ba̱ng unified WBA (Super), IBF, WBO, IBO, mbeang Ring titles na̱ng gu ntsot Wladimir Klitschko ma̱ng 2015. A̱ ntsot Wilder a̱ni, Fury wa ngyet a̱tat da̱ ba̱ng heavyweight, nkhyek Floyd Patterson ma̱ng Muhammad Ali, a̱ba̱ng a̱na "The Ring magazine" kafeang a̱ni, and is widely considered by media outlets to be the lineal heavyweight champion. As of November 2021, Fury is ranked as the world's best active heavyweight by ESPN,[7] the Transnational Boxing Rankings Board (TBRB),[8] and BoxRec,[9] as well as the third-best active boxer, pound for pound, by BoxRec,[10] fourth by ESPN,[11] and seventh by the TBRB[12] and the Boxing Writers Association of America.[13]
==Ya̱fang==
<references/>
dt3kij6il0xaj92otfz781yf57oneli
Tzoot
0
800
12515
10477
2022-05-21T05:24:47Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
'''Tzoot''' yet a̱fan kya(nyam a̱sa̱khwot) ka shyi a̱ni a̱wot nkukup ngu na shyia̱ ya̱yaat ma̱ng vam hu ba. A̱ byia̱ nam ba̱t, a̱wot vam hu si̱ li sha̱shet.
Tzoot byia̱ zum a̱nu na̱ng a̱kwui a̱ni, ba̱ laai ma̱ng sa̱kwot má̱ ghyui nya, á̱ghyiang á̱niet báng ba a̱mali.
==Ta̱fang==
<references/>
gnhn26xedfvja4ypm2rybncg7e2y0u4
Ukwi
0
801
10489
10488
2022-05-16T12:57:12Z
Jon Harald Søby
8
11 revisions imported
wikitext
text/x-wiki
#REDIRECT [[A̱kwi]]
==Tafang==
<references>
[[en.A̱kwi]]
hhi2hvh2a2ehdeyk55wulr9dc7e4ttd
Urdun
0
802
14458
13516
2022-06-13T10:35:21Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
A̱byin '''Urdun''' (La̱ra̱ba: الأردن, ''Al-ʾUrdunn''; Shong: Jordan), á̱ lyen di̱ yorong ofisha hu nang '''Tyok Hasimi Urdun''' hu (La̱ra̱ba: المملكة الأردنية الهاشمية, ''Al-Mamlakah al-’Urdunniyyah Al-Hāshimiyyah''; Shong: Hashemite Kingdom of Jordan), yet a̱byin kya di̱ fam a̱byin Jenshyung A̱siya. Ka̱ shyia̱ a̱yaaga̱sat nvak [[A̱siya]], [[Afrika]] ma̱ng [[Yurop]] bya, di̱ fam a̱byin Levant hu, da̱ a̱beam Khwong A̱tyin A̱ghyui Urdun ka. A̱byin Urdun byia̱ a̱gi̱gak ma̱ng bibyin Sa̱udi Arabiya, Irak, [[Suriya]], [[Isi̱rela]] ma̱ng Khwong Jenshyung a̱byin Pa̱la̱stin hu. Kyai A̱sa̱khwot Ku Sang Swuan hu shyia̱ da̱ a̱gi̱gak fam jenshyung bibya, a̱wot a̱byin ka si̱ byia̱ shi a̱swap lang khwong kyai a̱sa̱khwot kilomita 26 (met 26) da̱ A̱shong Kyai A̱sa̱khwot wu di̱ fam a̱tak-jenshyung nka a̱mgba̱m.<ref name="Jogeo">McColl, R. W. (14 Zwat Tswuon 2014). "[https://books.google.com/books?id=DJgnebGbAB8C&pg=PA498 Encyclopedia of World Geography]". p. 498. ISBN 9780816072293.</ref> A̱keang Amman kya yet a̱keangtung a̱byin ka ma̱ng a̱gba̱ndang a̱keang a̱ swak mi̱ shi a̱ni, a mbeang a̱ka̱wa̱tyia̱ nka ka di̱ nfam naat mbwuot kaswuo, kwai nfwuo ma̱nh taada.<ref name="csbe">Al-Asad, Mohammad (22 Zwat Nyaai 2004). "[https://web.archive.org/web/20160802171231/http://www.csbe.org/publications-and-resources/urban-crossroads/the-domination-of-amman/ The Domination of Amman Urban Crossroads]". CSBE.</ref>
[[Fail:Flag of Jordan.svg|thumb|Tuta a̱byin Urdun]]
[[Fail:Coat_of_arms_of_Jordan.svg|thumb|A̱lama a̱byin Urdun]]
[[Fail:Jordan (orthographic projection).svg|thumb|Ta̱si̱la a̱byin Urdun]]
==Ya̱fang==
<references/>
{{Bibyin A̱siya}}
[[Sa:Bibyin_swanta]]
[[Sa:Bibyin_A̱siya]]
[[Sa:Bibyin_Jenshyung_A̱siya]]
58orgl9o774foq42jha4yjp8ft62ugi
Urugwai
0
803
14459
13517
2022-06-13T10:35:26Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
{| class="wikitable" align=right border width="200"
| colspan="2" align=center|'''Ri̱pobi̱lik A̱tyin a̱si̱ Urugwai'''<br>''República Oriental del Uruguay'' (Si̱pen)
|-
| colspan="2" align=center|[[Fail:Uruguay (orthographic projection).svg|thumb|300px|center]] <sub>Ta̱si̱la a̱byin Urugwai</sub>
|-
| [[Fail:Flag of Uruguay.svg|thumb|Tuta a̱byin Urugwai]]
|-
|[[Fail:Coat of arms of Uruguay.svg|thumb|A̱lama a̱byin Urugwai]]
|-
|}
A̱byin '''Urugwai''' ([[Shong (a̱lyem)|Shong]]: Uruguay /ˈjʊərəɡwaɪ/; yei Si̱pen: /uɾuˈɣwaj/; Potugit: Uruguai), á̱ lyen ma̱ng a̱lyoot a̱gwomna̱ti ka nang '''Ri̱pobi̱lik A̱tyin a̱si̱ Urugwai''' wu a̱ni (Si̱pen: República Oriental del Uruguay), yet a̱byin kya mi̱ [[Amerika A̱tak]]. Ka̱ byia̱ a̱gi̱gak ma̱ng bibyin A̱jentina di̱ fam jenshyung hu ma̱ng a̱tak-jenshyung a mbeang [[Brazil]] di̱ fam a̱za hu ma̱ng a̱za-a̱tyin; a̱wot ka̱ si̱ byia̱ gak di̱ fam a̱tak hu ma̱ng Río de la Plata ma̱ng [[A̱gba̱ndang Kyai A̱sa̱khwot Ati̱lantik]] wu di̱ fam a̱tak-a̱tyin hu. A̱byin Urugwai kup shi kyai a̱byin ku shyia̱ ca̱caat ma̱ng kilomita a̱ma̱ntanaai 176,000 (met a̱ma̱ntanaai 68,000) a̱wot á̱ si̱ tyan shi á̱niet nka hu á̱ sak di̱ miliyon 3.51, mami mba á̱niet miliyon 2 swan sot metropolitan a̱keangtung ma̱ng a̱gba̱ndang a̱keang a̱ swak ma̱ng shi nka wu, Montevideo.
==Ya̱fang==
<references/>
{{Template:Bibyin Amerika A̱tak}}
[[Sa:Bibyin_swanta]]
[[Sa:Bibyin_Amerika_A̱tak]]
k53mc4p2951m6vw25k3l8w9048kqbdn
Urusha̱lima
0
804
14460
13518
2022-06-13T10:35:31Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
A̱keang '''Urusha̱lima''' (A̱biru: יְרוּשָׁלַיִם, ''Yerushaláyim''; La̱ra̱ba: القُدس, ''Quds'' ku ''Bayt al-Maqdis'', á̱ ka ndyuut ''Baitul Muqaddas''; Shong: Jerusalem /dʒəˈruːsələm/), yet a̱gba̱ndang a̱keang wa di̱ fam a̱byin Jenshyung A̱siya, tazwa pi̱lato jhyang di̱ Tsutsok Yahuda ji tsi̱tsak [[Kyai A̱sa̱khwot Meditaroniya|Meditaroniya]] hu ma̱ng Kyai A̱sa̱khwot ku Sang Swuan hu. Ka̱ yet a̱nyiung ma̱ng a̱ca̱cet a̱ka̱keang mi̱ swanta na na̱ swak di̱ yet a̱khwukhwop a̱ni, a̱wot á̱ si̱ kyiak nka a̱za̱za̱rak da̱ a̱vwuo a̱ca̱cet a̱yaadini Ibrahim a̱tat ba—[[Khwiyahuda]], [[Khwikristi]], ma̱ng [[Khwikpaa̱pyia̱]]. A̱mgba̱m á̱niet Isi̱rela ba ma̱ng á̱niet Pa̱la̱stiya ba ta̱meet ma̱ng a̱keang Urusha̱lima nang a̱keangtung mba ka, ma̱nang a̱byin [[Isi̱rela]] ba̱ng a̱tsatsak a̱ca̱cet a̱ka̱vwuonta̱m a̱gwomna̱ti nka na a̱ja a̱wot A̱si̱tet Pa̱la̱stiya si̱ ba̱ng nka nang cuk cet nka ji ma̱ a̱gba̱mgbam. A̱mgba̱m ma̱ng a̱nia, á̱ si̱ mbyia̱ nyiung mami ba̱ng bi̱ba̱ng nfeang hu nang a̱mgba̱m bibyin swanta hu shim ma̱ng nhu bah.
{| class="wikitable" align=right border width="200"
| colspan="2" align=center|'''Urusha̱lima'''<br>• ירושלים (A̱biru)<br>• القُدس (La̱ra̱ba)
|-
| colspan="7" align=center|[[Fail:HaArbaa IMG 0541 (cropped).JPG|thumb|300px|center]] <sub>Fam a̱za lang kyai tswazwa a̱keang Urusha̱lima neet Mar Elias Monastery</sub>
|-
| [[Fail:Flag of Jerusalem.svg|thumb|Tyiang a̱toot shi a̱keang Urusha̱lima]]
|-
| [[Fail:Emblem of Jerusalem.svg|thumb|A̱lama a̱keang Urusha̱lima]]
|-
|}
==Ya̱fang==
<references/>
==A̱ka̱fwuop nta==
{{Template:A̱ka̱keang swanta}}
[[Sa:Isi̱rela]]
8xpcni12653orbup4hj5hhyfu69lnkd
Uyo
0
805
10534
10533
2022-05-16T12:57:14Z
Jon Harald Søby
8
4 revisions imported
wikitext
text/x-wiki
'''Uyo''', nggu wa yet a̱gba̱ndang a̱keangtung mi̱ Si̱tet Akwa Ibom, di̱ fam a̱tak a̱byin Naijeriya. Nwap Ibibio ji, jija yet nwap Uyo ji. A̱ yet a̱gbandang a̱keangtung a̱tuk Zwat A̱kubunyiung 23,1987, jen ji á̱ ku ti̱n Akwa Ibom mi̱ Si̱tet Cross River a̱ni. Fang á̱niet 2006 mi̱ Naijeriya, á̱niet mi̱ Uyo mbyiak si̱ ku yet 427,873.
==Ya̱fang==
<references/>
f9fekt29pwbttbr9j4dvtg31gzx4b3d
U̱kwi
0
806
10537
10536
2022-05-16T12:57:14Z
Jon Harald Søby
8
2 revisions imported
wikitext
text/x-wiki
#REDIRECT [[A̱kwi]]
scm056v9ibs0rd2xfczp8n3oignav3k
Vab
0
807
10539
10538
2022-05-16T12:57:14Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[Vap]]
17zy6mnwyqysraofoz8nq48j82iqi1m
Vahk
0
808
10541
10540
2022-05-16T12:57:14Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[Vak]]
5sge952h2xlvqq43a7wghjjrin6e49g
Vak
0
809
12518
10567
2022-05-21T05:25:20Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
[[Fail:Gravel road, Namibia.jpg|thumb|Vak a̱cyuang nfang mi̱ [[Namibya]]]]
'''Vak''' ''hu'' (á̱kpa: '''nvak''' ''na'') yet a̱vwuo á̱niet nkhaat á̱ ncong a̱ni.
==Ya̱fang==
<references/>
osx5knvr9be3kw8ix9tlk2r80q442qz
Vap
0
810
12519
10582
2022-05-21T05:25:30Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
[[Fail:Adobe wall (detail) 1.jpg|thumb|Bat vap mami a̱keang Bahillo, Palencia, [[Si̱pen]]]]
[[Fail:AdobeSurfaceCoatingRenewalOnWall.jpg|thumb|Á̱ shyim a̱tai mbat vap a̱ghyang mami a̱keang Chamisal, New Mexico]]
[[Fail:Qasroddasht.JPG|thumb|Shiraz, [[Iran]]. Á̱ khap ti̱tam dandi hu ma̱ng mbat vap.]]
'''Vap''' hu (á̱kpa: '''nvap''' ''na'') yet kyang nok a̱li hwa ku neet mbyin ma̱ng nkyang njhyang na̱ maai bwui a̱ni. Á̱ ngyei ntangka̱i a̱ka̱sa na nang á̱ nok ma̱ng vap '''a̱ka̱sa vap''', a̱wot a̱ka̱sa vap na ni̱ kyiak nghwughwu vwuon kyiak neet fam swanta nyiung naat mi̱ fam ghyang. Vap yet nyiung mami nkyang nok na̱ wa ka̱n shyia̱ neet gbangbang a̱ni, a̱wot a̱mgba̱m á̱niet mi̱ swanta hu nyian ta̱m ma̱ng a̱nhu.
==Ya̱fang==
<references/>
jr103qvtqtnk10yltmgjg9f6pjs1yyq
Vicente Costalago
0
811
15272
14461
2022-07-21T14:38:10Z
Praxidicae
232
delete
wikitext
text/x-wiki
{{delete|Cross-wiki spam}}
'''Vicente Costalago''' yet a̱gwak lyen nkhang lilyem ma̱ng a̱tyulyuut wa. Nggu wa yet a̱tyulyuut a̱ swak ma̱ng yet a̱tsatsak da̱ a̱lyem [[Interlingue (a̱lyem)|Oktsidental]] ka a̱ni. Á̱ ku byin nggu ma̱ a̱byin Si̱pen kya, a̱jawa gu ku fang tazwa Lilyem Mam A̱fwun hu. Shei ntsa nggu hu hwa ku yet ''La xerca per Pahoa'', nang á̱ ku lyuut da̱ a̱lyem Lingua Franca Nova a̱ni. A̱wot a̱ si̱ shei ''Li sercha in li castelle Dewahl e altri racontas'' da̱ a̱lyem Oktsidental, a̱wot Antologie hispan ma̱ng ''Fabules, racontas e mites'' si̱ khwi, meang da̱ a̱lyem a̱kya.
== Nta̱m ==
=== Lingua franca nova ===
** [[La xerca per Pahoa]]<ref>[http://elefen.org/pdf/la-xerca-per-pahoa.pdf La xerca per Pahoa]</ref>, publicat quam libre en [https://www.lulu.com/en/en/shop/vicente-costalago-v%C3%A1zquez/la-xerca-per-pahoa/paperback/product-gpdq4k.html?page=1&pageSize=4 Lulu.com]
** [https://web.archive.org/web/20200327163452/http://elefen.org/disionario/leteratur-romanica-e-elefen.pdf Leteratur romanica e lingua franca nova].
** [http://elefen.org/disionario/istoria-de-europa-a4.pdf Istoria de Europa].
** [http://elefen.org/disionario/cultur-clasica-a4.pdf Cultur clasica].
=== Interlingua ===
* (2014/2020) [https://www.interlingua.com/e-libros/heracles/ Le dece-duo travalios de Heracles]
* (2020) [https://www.interlingua.com/e-libros/litteraturaromanic/ Litteratura romanic e interlingua]
* (2020) [https://www.interlingua.com/archivos/Historia%20de%20Europa.pdf Historia de Europa]
* (2020) [https://www.interlingua.com/e-libros/concisedescriptiondellinguavalencian/ Concise description del lingua valencian]
=== Interlingue ===
* Libres
** (2021) ''Li sercha in li castelle Dewahl e altri racontas''<ref>[https://www.lulu.com/en/en/shop/vicente-costalago-v%C3%A1zquez/li-sercha-in-li-castelle-dewahl-e-altri-racontas/paperback/product-j2775p.html?page=1&pageSize=4 Li sercha in li castelle Dewahl e altri racontas]</ref>
** (2021) ''Antologie hispan''<ref>[https://www.lulu.com/en/en/shop/vicente-costalago-v%C3%A1zquez/antologie-hispan/paperback/product-pmknpz.html?page=1&pageSize=4 Antologie hispan]</ref>.
** (2021) ''Fabules, racontas e mites'', publicat li 20.12.2021<ref>[https://www.lulu.com/en/en/shop/vicente-costalago-v%C3%A1zquez/fabules-contes-e-mites/paperback/product-4g6ezk.html?page=1&pageSize=4 Fabules, racontas e mites]</ref>.
* Libres de textu
** (2020) [https://occidental-lang.com/resources/Historie.pdf Historie]
** (2020) [https://occidental-lang.com/resources/Cultura_classic.pdf Cultura classic]
** (2020) [https://occidental-lang.com/resources/Geografie.pdf Geografie]
** (2020) [https://occidental-lang.com/resources/Mathematica.pdf Mathematica]
* Traductiones
** Li poem "Si", par Rudyard Kipling (25 novembre 2020).
** [https://prexins.wordpress.com/2021/09/14/epistul-a-filemon/ Li Epistola a Filemon] (13 septembre 2021).
* Articules in Cosmoglotta
** (2021) ''Li casu del hebreic quam exemple por Occidental'' in Cosmoglotta 326.
** (2021) ''Mi unesim visita in li biblioteca de La-Chaux-de-Fonds'' in Cosmoglotta 326.
==Ya̱fang==
<references/>
[[Sa:Interlingue]]
5jwhwbsospkswm06qybmdyv0v8wbzre
Vincent van Gogh
0
812
14462
13520
2022-06-13T10:35:41Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
[[Fail:Vincent van Gogh - Self-Portrait - Google Art Project (454045).jpg|197px|right]]
'''Vincent Willem van Gogh''' (30 Zwat Tsat 1853 – 29 Zwat A̱natat 1890) ku yet a̱tyuswup ghwughwu Lilyim A̱guguut Fwuongfwuo a̱byin Holan wa, a̱nyan wa a̱ma̱lyim kwi nggu hu a̱ si̱ yet a̱tyonyiung mami á̱niet ba ba̱ swak ma̱ng shi a̱lyoot a̱ni ma̱ng cet fuut á̱niet a̱ swak di̱ nkhang nyian ghwughwu di̱ Fam Jenshyung swanta hu. Mi̱ ndyia̱ swak, a̱ ku nnyia̱ kpa̱mkpaan ma̱ng nta̱m nghwughwu 2,100, bi̱ri̱ng ma̱ng nswup a̱myia̱ na̱ tat kpa̱mkpaan ma̱ng 860 a̱ni, ma̱ a̱di̱di̱t ku neet ndyia̱ ngaan a̱feang swuan nggu ni̱nia. A̱mami, a̱ si̱ byia̱ nta̱m myiai á̱kpai, nghwughwu nkyang nswuan na̱ yong da̱ a̱vwuo a̱nyiung a̱ni, nghwughwu na̱ yong ka̱tsak a̱ni ma̱ng nghwughwu-a̱pyia̱, a̱mgba̱m byia̱ za̱kwa á̱tutuk a̱sa̱khwot ma̱ng ta̱m bi̱rosh, byia̱ lili tyei a̱ga̱de, cet fuut ma̱ng tak a̱di̱dam na̱ ku mbeang di̱ kpaat kuntyin nyian ghwughwu mam a̱fwun hu a̱ni. Ma̱nang gu ku mi̱ ngyet a̱tyuyaa̱ywan di̱ fam kaswuo a̱ni bah, a̱ si̱ ka nkwan ma̱ng byian fwuo ku hyaat a̱ni ma̱ng a̱dodo kunak, a̱wot nang jen ji ki nnaat a̱ni, a̱ si̱ ka nhyat a̱pyia̱ nggu nang gu ku nshyia̱ ndyia̱ nswak ntat ma̱ng a̱natat a̱ni.
[[Sa:Á̱nietnyia̱ nghwughwu ma̱ng á̱nietlyen ghwang a̱ka̱sa]]
f1zisyqsjpgi7xhjatzhe6t6q1511e0
Viyetnam
0
813
14463
13521
2022-06-13T10:35:46Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
{{Country
|name = ''Ri̱pobi̱lik Soshyalis Viyetnam''<br><small>Cộng hòa Xã hội chủ nghĩa Việt Nam (Viyet)</small>
|flag = Flag of Vietnam.svg
|caption = Tyiang a̱toot shi a̱byin Viyetnam
|coa = Emblem of Vietnam.svg
|image = Vietnam (orthographic projection).svg
|capital = [[Hanoi]]
|area = 331,699
|population = 96,208,984
|year = 2019
}}
'''A̱bwom a̱byin''': Tiến Quân Ca<br />"Shai A̱khwot A̱kwop A̱byin"<div class="center" style="margin-top:0.4em;"> </div>
A̱byin '''Viyetnam''' (Viyet: Việt Nam /vîət nāːm/, Shong: Vietnam), á̱ lyen ma̱ng a̱lyoot a̱gwomna̱ti ka nang '''Ri̱pobi̱lik Soshyalis Viyetnam''' wu (Viyet: Cộng hòa Xã hội chủ nghĩa Việt Nam, Shong: Socialist Republic of Vietnam) a̱ni, yet a̱byin kya di̱ fam a̱byin A̱tak-A̱tyin A̱siya. Ka̱ shyia̱ da̱ a̱ta̱m fam a̱tyin A̱fi̱fap-a̱byin Ndocaina kikya, a̱wot á̱ si̱ ka̱u nkaa da̱ a̱yaaprovin 58 ma̱ng municipalities fwuon. A̱mgba̱m a̱byin ka byia̱ shi kyai a̱byin kilomita a̱ma̱ntanaai 331,699, ma̱ng shi á̱niet ku swak miliyon 96 a̱ni, ka̱ si̱ yet a̱byin swak ma̱ng a̱fwuon ka̱ lan byia̱ á̱niet mami swanta hu. A̱byin Viyetnam byia̱ a̱gi̱gak a̱byin ma̱ng bibyin [[Caina]] di̱ fam a̱za hu, Lawot ma̱ng Kambodya di̱ fam jenshyung hu; ma̱nang ka̱ si̱ go a̱gi̱gak a̱sa̱khwot nka ba ma̱ng bibyin Tailan di̱n vak A̱ngam A̱sa̱khwot Tailan wu, ma̱ng [[Filipin]], [[Ndonisiya]] a mbeang Malesiya di̱n vak [[Kyai A̱sa̱khwot Caina A̱tak]] hu.<ref>Á̱ ngyei Kyai A̱sa̱khwot Caina A̱tak hu Kyai A̱sa̱khwot A̱tyin ma̱ a̱byin Viyetnam (Viyet: Biển Đông).</ref> A̱keangtung nka ka, kikya yet Hanoi, ma̱nang a̱keang Ho Chi Minh City (Saigon) kya si̱ yet a̱gba̱ndang a̱keang nka wu gu swak ma̱ng shi a̱ni.
==Ya̱fang==
<references/>
{{Template:Bibyin A̱siya}}
[[Sa:Bibyin_swanta]]
[[Sa:Bibyin_A̱siya]]
[[Sa:Bibyin_A̱tak-A̱tyin_A̱siya]]
c3amwbd7wsdsky2u4aztgtkzjixdbn4
Vladimir Putin
0
814
14744
14743
2022-07-02T22:19:38Z
Kambai Akau
15
Undo revision 14743 by [[Special:Contributions/79.163.241.210|79.163.241.210]] ([[User talk:79.163.241.210|talk]]) Vandalism
wikitext
text/x-wiki
{| class="wikitable" align=right border width="200"
| colspan="2" align=center|'''Vladimir Putin'''<br>Владимир Путин
|-
| colspan="2" align=center|[[Fail:Vladimir Putin (2018-03-01) 03 (cropped).jpg|thumb|250px|center]] <sup>Putin ma̱ a̱lyia̱ 2018</sup>
|-
|}
'''Vladimir Vladimirovic Putin''' (a̱lyem Roshiya: Владимир Владимирович Путин /vlɐˈdʲimʲɪr vlɐˈdʲimʲɪrəvʲɪtɕ ˈputʲɪn/; byin a̱tuk mam 7 Zwat Swak 1952) yet a̱tyukwai nfwuo á̱niet a̱byin [[Roshiya]] wa ma̱ng a̱tyunta̱m ofit a̱yaabang a̰byin gbangbang a̱ nyia̱ khwo mi̱ di̱ yong huni nang a̱kwak a̱son a̱byin Roshiya neet ma̱ a̱lyia̱ 2012, a̱wot a̰ ku ba̱ng cuk ji di̱n jen ji̱ ku swak a̱ni kyiak neet ma̱ a̱lyia̱ 1999 ba̱ng si̱ nat ma̱ a̱lyia̱ 2008.<ref name="biocom">"[http://www.biography.com/people/vladimir-putin-9448807# Vladimir Putin]" (di̱n Shong). Biography.com</ref> A̱ ku bu yet Minista A̱son Roshiya kyiak neet ma̱ a̱lyia̱ 1999 nat a̱lyia̱ 2000 a̱wot a̱ si̱ ka mbwuok a̱ bai ma̱ a̱lyia̱ 2008 a̱ si̱ ba̱ ba̱ng cuk ji tat ma̱ a̱lyia̱ 2012. Ma̱ a̱lyia̱ 2021, Putin wa yet a̱kwak a̱son a̱byin Yurop a̱feang a̱ ku swan cuk ji a̱ si̱ labeang ba̱t, a̱ khwi lilyim Alexander Lukashenko a̱si̱ a̱byin [[Belarut]].
==Ya̱fang==
<references/>
[[Sa:Vladimir_Putin]]
[[Sa:byin_1952]]
[[Sa:A̱yaakwak_A̱son_A̱byin_Roshiya]]
94vj6pq254wanptrtxbz2bdye1dbwrm
Volodymyr Zelenskyy
0
815
12524
10636
2022-05-21T05:26:20Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
[[Fail:Volodymyr Zelensky Official portrait.jpg|thumb|A̱junjung ghwughwu a̱gwomna̱ti, 2019]]
'''Volodymyr Oleksandrovych Zelenskyy''' (Yuki̱ren: Володимир Олександрович Зеленський; byin 25 Zwat Jhyiung 1978), á̱ ni̱ bwuak lyuut hu nang Zelensky, yet a̱tyukwai-nfwuo-á̱niet a̱byin [[Yuki̱ren]] wa, ma̱ng a̱tyumaat ma̱ng a̱tyutyei-á̱niet-mai di̱n jen ji̱ swak a̱ni, a̱nyan wa si̱ ngyet presiden a̱taa Yuki̱ren wu a̱ shyia̱ di̱ ba̱ng cuk ji mi̱ di̱ yong huni.
==Ya̱fang==
<references/>
jul8tuun6zo2palw3uueljc64dkrple
Vwan a̱khwu
0
816
12525
10645
2022-05-21T05:26:30Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
'''Vwan a̱khwu''' yet kyang ku cat swak cet a̱ni, ku ku cat lan cet a̱ni.
==Ya̱fang==
<references/>
j4uvzv0ew5zyta1t2l4xkox1229l6hb
Vwuo
0
817
12526
10650
2022-05-21T05:26:40Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
'''Vwuo''' yet tangka̱i naat á̱ mbwuot hwa nang á̱ nyia̱ á̱ ka gwai fwuo hu, a̱wot di̱n jen jhyang ku yet kyang tyiet hwa. Vwuo vwuon ma̱ng ta̱m, ku lan yet kyang a̱za̱za̱rak a̱di̱dam fwuo hwa a̱ni
==Ya̱fang==
<references/>
0rl2hz3khal9elvrldsoxjyff0sipfi
Vwuokhu
0
818
10652
10651
2022-05-16T12:57:18Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[Vwan a̱khwu]]
g3p0dek7ukmtu5bmr13t99aam5lx35z
Vwuon
0
819
12527
10660
2022-05-21T05:26:50Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
'''Vwuon''' yet si̱sak nkyang nfeang nwai ngyet kyang nyiung a̱ni .
==Ya̱fang==
<references/>
j7twgi19jimwjvpd7ckqsat48melih1
WhatsApp
0
820
13157
13156
2022-05-30T20:16:10Z
Kambai Akau
15
wikitext
text/x-wiki
[[File:WhatsApp.svg|thumb|A̱lama-a̱bwuang WhatsApp]]
'''WhatsApp''' yet vak fwuoi ma̱ng saai ta̱m ja ma̱ a̱cyetaneang ka. WhatsApp beang di̱ fwuoi nta̱m zunzwuo, ghwughwu, ghwughwu a̱guguut, mbeang a̱nwuat.
==Ya̱fang==
<references/>
==A̱ka̱fwuop nta==
* [https://www.whatsapp.com/ Wat sot-nta̱m WhatsApp]
hblcycstf6j3i0o1s17m8q68ehjic9r
Watyap
0
821
15918
15917
2022-08-14T18:19:47Z
Kambai Akau
15
wikitext
text/x-wiki
{{Databox}}
'''Watyap''' ([[Kpat (a̱lyem)|Kpat]]: Kaura) yet a̱keang kya ma̱ng [[Susot a̱gwomna̱ti mali Naijeriya|Sot A̱gwomna̱ti Mali]] di̱ fam [[A̱tak Ka̱duna|a̱tak]] [[Si̱tet Ka̱duna]], [[Naijeriya]]. Á̱ bu ngyei tyantung nji Watyap ja meang, a̱keang ka shyia̱ ma̱ A̱byintyok A̱sholyia̱ kya. A̱ka̱keang á̱ghyang nia yet: Tsok ma̱ng [[Gwoot]]. Sot ji byia̱ shi kyai a̱byin kilomita a̱ma̱ntanaai 461 hwa ma̱ng shi á̱niet 174,626 mi̱ sa̱nsut 2006 ji.<ref>[https://citypopulation.de/php/nigeria-admin.php?adm1id=NGA019 Kaduna State of Nigeria] (di̱n Shong). City Population.</ref> La̱mba-ta̱m ta̱m a̱vwuo ka hwa yet 801.<ref>[https://web.archive.org/web/20091007011423/http://www.nipost.gov.ng/PostCode.aspx Post Offices- with map of LGA] (di̱n Shong). NIPOST.</ref>
==Ya̱fang==
<references/>
==A̱ka̱fwuop nta==
{{Commons category-inline|Kaura|Watyap}}
[[Category:Susot a̱gwomna̱ti mali Naijeriya]]
psemsd7iq9xkjn077dw481p5u98eg8i
Wikipidya
0
822
10677
10676
2022-05-16T12:57:19Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[Wukipedia]]
j4unp5shmpnutytgh1rzh22efvttj6d
Wizkid
0
823
14466
13523
2022-06-13T10:36:21Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
'''Ayodeji Ibrahim Balogun''' (á̱ byin nɡgu a̱tuk mam 16 Zwat A̱natat 1990), á̱ lyen nggu a̱tsak lyen ma̱ng '''Wizkid''' (jen jhyang á̱ ngyei '''Wizzy''', '''Biɡ Wiz''' ku '''Starboy'''), a̱ yet a̱fai [[Naijeriya]] wa a̱ tsot bubwom sa ndyuut a̠ni. A̱ nshyia̱ ma̱ng a̱ca̱cet á̱niet tsot bubwom ma̱ng a̱byin [[Afrika]] sa bu ngyet a̱tyu a̱ ɡwaat nswak a̠ni (nggu wa ma̱nɡ Afrika a̱ ɡwaat a̱ nswak a̠ni ka̱p ma̱ng ta̱cya̱ da̱ bubwom). Ma̱ng jen ji zi̱ nshyia̱ a̱ni, a̱ yet a̱nyiung ma̱ á̱niet ba ba̱ shai si̱sak bubwom nzi̱t hu nswan a̱ni.
==Ya̱fanɡ==
<references/>
[[Sa:Naijeriya]]
[[Sa:byin_1990]]
a3ale63k5f6aalspc54fr7y13skjvrb
Wuhan
0
824
14467
13524
2022-06-13T10:36:26Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
{| class="wikitable" align=right border width="200"
| colspan="2" align=center|'''Wuhan''' <br> 武汉<br><sub>''Wǔhàn''</sub>
|-
| colspan="2" align=center|[[Fail:Wuhan Yangtze River Bridge in 2020.jpg|thumb|300px|center]] <sup>A̱byia̱k A̱ghyui Yangtze mi̱ Wuhan</sup>
|-
| [[Fail:Location of Wuhan Prefecture within Hubei (China).png|thumb|A̱vwuo ka nang Wuhan nshyia̱ a̱ni mi̱ Hubei]]
|-
|}
A̱keang '''Wuhan''' (a̱di̱dat lyuut Caina: 武汉; lyuut taada Caina: 武漢; pinyin: Wǔhàn; /ù.xân/) kya yet a̱keangtung Provin Hubei ma̱ a̱byin [[Caina|Ri̱pobi̱lik Á̱niet Caina]] ka. Kikya yet a̱gba̱ndang a̱keang a̱ swak ma̱ng shi kyai a̱byin mi̱ Hubei ma̱ng a̱si̱ gu swak ma̱ng shi á̱niet di̱ fam a̱byin A̱ka̱wa̱tyia̱ Caina hu, ma̱ng á̱niet ba̱ swak miliyon 11, ka̱ si̱ yet a̱gba̱ndang a̱keang a̱byin Caina a̱ yet a̱kubunyiung ma̱ng shi á̱niet a̱ si̱ ka ngyet a̱nyiung mami A̱ca̰cet A̱ka̱keang A̱ka̱wa̱tyia̱ a̱kubunyiung A̱byin Caina.
==Ya̱fang==
[[Sa:Wuhan]]
9ykvw4tplp4w6dv6soha0hm0h17v3pb
Wukari
0
825
10706
10705
2022-05-16T12:57:20Z
Jon Harald Søby
8
7 revisions imported
wikitext
text/x-wiki
Akayang '''Wukari''' yet sot Gwamneti Mali ma. Taraba state, Nigeria. Atyan tung nka shyia mu akayan Wukari mu A4 gbandan vat.
Aghyui Donga ka kpak nwo Aghui Benue Nat Nasarawa state SWAK Nat northwest.
Abye akayan 4,308 km 2 mu akpa 241,546 mu fan anyet 2006.
4ziuyq0tqs1ibi840fow44sucqhrlxi
Wukipedia
0
826
14750
14749
2022-07-02T22:30:44Z
Kambai Akau
15
wikitext
text/x-wiki
{{Databox|item=Q52}}
'''Wukipedia''' yet a̱gban lyen a̱zalang wa nang nkyang na na̱ shyia̱ mami nhu a̱ni yet á̱sa̱t nkyang nia, a̱wot á̱ si̱ bwuak ndyo tyia̱ lilyem ma̱ a̱di̱di̱t nang sot á̱nietnta̱m nang á̱ nwai teang a̱ni jija ndyuut ji̱ bu nggo nhu meang, di̱n vak tung mbwak ndung ma̱ng fwuo nyiung, mbeang di̱ nyian ta̱m ma̱ng vak jhyuk ku byia̱ kuntyin mi̱ wiki a̱ni. Á̱ maai ngyei á̱niet ba̱ nwuak mi̱ nwuak ba nang á̱ ka ngyei á̱nietjhyuk a̱ni, '''A̱wukipedia''' ba (a̱tyonyiung: '''A̱tyuwukipedia''' ''wu''). Nggu wa yet ta̱m ta̱fang nang á̱ fang á̱ swak a̱ni a̱ swak kuzang ma̱ng shi mi̱ nkhang á̱nietbishyi,<ref>[https://www.economist.com/international/2021/01/09/wikipedia-is-20-and-its-reputation-has-never-been-higher Wikipedia is 20, and its reputation has never been higher] (di̱n Shong). The Economist (Zwat Jhyiung 9, 2021)</ref> a̱wot ku si̱ yet mi̱ di̱ kuzang jen, a̱nyiung mami a̱ka̱ma̱ntei 15 nang á̱niet cat á̱ swak a̱ni nang á̱ ku nwuak shi mbwak Alexa a̱ni; (ma̱ a̱lyia̱ 2021) á̱ si̱ nwuak Wikipidya shi a̱ma̱ntei 13 nang á̱niet cat á̱ swak a̱ni. Sotbeang Wukimedia ji ji̱ yet sotnta̱m nwai-cat-kpangti̱n [[A̱yaasi̱tet Muná̱pyia̱|Amerika]] jhyang, jija byia̱ nhu, a̱wot di̱n vak za̱nang hwa nang ku shyiat kurum nhu hu.<ref>McGregor, Jena (Zwat Tsat 17, 2020). [https://www.washingtonpost.com/business/2020/03/17/wikimedias-approach-coronavirus-staffers-can-work-20-hours-week-get-paid-full-time/ Wikimedia's approach to coronavirus: Staffers can work 20 hours a week, get paid for full time] (di̱n Shong). The Washington Post.</ref>
==Ya̱fang==
<references/>
0kk2mv54jxg1oy4ioe8ztpr2okmr5fi
Wun
0
827
12532
10741
2022-05-21T05:27:40Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
'''Wun''' yet a̱za̱za̱rak a̱guguut wa a̱ cong kai a̱tai nswanta wu a̱ni.
[[Fail:Wun.ogg|Wun]]
[[Fail:Cherry tree moving in the wind 1.gif|thumb|A̱kwon a̱bwan tyia̱ a̱guguut ma̱ng wun hu ku hyap ma̱ng cet kpa̱mkpaan 22 m/sec (kpa̱mkpaan ma̱ng 79 km/h ku 49 mph)]]
==Ya̱fang==
<references/>
lacitqky4hesnuva52vzyq7rs7z5ylb
Ya̱d A̱tyobin
0
828
10743
10742
2022-05-16T12:57:21Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[Yet A̱tyobyin]]
q0oeg949jaljhz4v6np04ndukabyeqf
Yesu
0
829
14469
13525
2022-06-13T10:36:36Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
'''Yesu''' (c. 4 BC – AD 30 / 33), á̱ ka ngyei '''Yesu Na̱za̱ra̱t''' ku '''Yesu Kristi''' a̱ni, wa yet a̱tyu a̱ shyia̱ ma̱ka̱wa̱tyia̱ [[Khwikristi]] ka, khwi ku byia̱ shi swak kuzang hu mi̱ swanta hu a̱mgba̱m a̱ni. A̱ ku yet a̱tyushei a̱lyiat A̱gwaza sa̱ncuri a̱son a̱ ka ngyet A̱tyuyahuda wa, a̱ si̱ ka ngyet a̱kwak a̱son khwi wa. Krista ma̱ a̱di̱di̱t nwuak a̱cucuk nyia̱ da̱ nggu, a̱ yet A̱gwaza Nggwon wu wa mi̱ vam ma̱ng ma̱siya (Kristi wu) nang á̱ ku neet swat nfwuong bai nggu hu, nang á̱ ku shei á̱zanson a̱kwonu A̱gwaza mi̱ Kpa̱m A̱lyiat A̱gwaza A̱biru hu a̱ni.
Kpa̱mkpaan a̱mgba̱m á̱nietbyia̱lyen tazwa ce gbangban, a̱fwun, ba̱ shim nyia̱ da̱ a̱tsak a̱lyiat wa Yesu ku shyia̱ mi̱ swanta hu gbangbang.[g] Cat Yesu nkhang wu ku ntyia̱ nwai shim a̱cucuk ma̱ a̱da̱dei tazwa yet a̱tsatsak nkhang [[A̱sham Nkhang|A̱ka̱sham Nkhang]] wu ma̱ng si̱sak nang Yesu nang á̱ ku tyai mi̱ La̵̱p A̱nu Fai hu ma̱ng Yesu a̱ shyia̱ di̱ nkhang na a̱ni, nang a̱yaarekwot tazwa shyicet Yesu ma̱nyin bya shyia̱ A̱ka̱sham Nkhang na.[19][h][i] Yesu ku yet A̱tyoyahuda Galili wa,[11] a̱nyan wa Yoona a̱tyunyia̱ ba̱ptisman wu ku nyia̱ nggu ba̱ptisman a̱ni, a̱ si̱ kin ta̱bat ta̱m mbeang á̱nietkhwi nggu hu. Di̱ ntsa hu, di̱ nwuak sheda a̱kwonu hwa nang á̱ ku sak nkhang nggu na[22] a̱wot nggu ma̱ng a̱pyia̱ nggu, á̱ ku ngyei nggu "rabi" (a̱tyutyiet) wa.[23] Yesu ku ngya fwuang ma̱ng A̱yahuda ba tazwa si̱sak nang á̱ na nkhwi A̱gwaza ku na lan tyia̱ a̱ca̱caat a̱ni, a̱ si̱ coot á̱niet, a̱ si̱ ka ntyiet di̱ kídee a̱ si̱ ka ntung á̱nietkhwi.[24][25] A̱ si̱ ta̱bat gu a̱ si̱ faat nggu shi̱ri̱ya mbwak á̱nietba̱ngcet A̱yahuda ba,[26] á̱ si̱ tyia̱ nggu mbwak a̱gwomna̱ti A̱rom ba, á̱ si̱ kpaat nggu da̱ a̱team a̱khwu ca̱caat ma̱ng oda gwomna Bilatut Babunte, a̱kwak a̱son a̱si̱ Rom ma̱ a̱keang [[Urusha̱lima]].[24] A̱ma̱lyim nang gu nkhwu a̱ni, á̱nietkhwi nggu ba si̱ nwuak a̱cucuk nyia̱ gu ta̱ngam ma̱ng swuan ma̱ á̱niet ba̱ ka̱n kwi a̱ni, a̱wot sot á̱niet ba̱ ku tung a̱ni si̱ bwuak yet Sot á̱nietkhwi ntsa ji.[27]
Di̱ tyiet Krista, á̱ mbyia̱ nwuak a̱cucuk hu nyia̱ A̱za̱za̱rak Ntswa wu wa ku tyia̱ Yesu di̱n vak nggwoneam ka ka̱ nwai lyen a̱tyok a̱ni nang á̱ ngyei Ma̱ryamu a̱ni - a̱nyan wa si̱ byin nggu, nyia̱ nkyang a̱ri̱bi̱di, kpaat kuntyin Sot Á̱nietkhwi Krista hu, a̱ si̱ khwu di̱n vak kpaat da̱ a̱team a̱khwu nang za̱nang shyiat ci a̱ka̱tuk nyia̱, ta̱ngam ma̱ng swuan ma̱ á̱niet ba̱ ka̱n kwi a̱ni, a̱wot a̱ si̱ nyeak a̱ nat Ma A̱gwaza tswazwa ka, neet a̱ja wa gu bu na bwuok a̱ bai a̱ka̱feang.[28] Ma̱ a̱di̱di̱t, Á̱nietkhwikristi ba nwuak a̱cucuk nyia̱ Yesu ni̱ ntyia̱ á̱niet ba̱ jhyi swat mba hu ma̱ng A̱gwaza. Tak Kpa̱sai Nice hu ntak nyia̱ Yesu na faat shi̱ri̱ya tazwa á̱niet nswuan ba ma̱ng mba ba̱ ka̱n kwi a̱ni[29] a̱zaghyi ku a̱ma̱lyim nang ba̱ nta̱ngam mi̱ vam neet mi̱ á̱niet ba̱ ka̱n kwi a̱ni,[30][31][32] nyia̱ jhyiung nang á̱ dap á̱ sak ma̱ng Bwuok A̱ Bai A̱ka̱feang Yesu hu mi̱ Tat-a̱pyia̱ lyen jen ngaan Krista.[33] A̱di̱di̱t a̱di̱t Á̱nietkhwikristi ni̱ kyuak Yesu ntong nang A̱gwaza Nggwon wu mi̱ vam a̱tyubishyi, a̱tyofeang wu mi̱ A̱gwaza A̱tat mi̱ A̱tyonyiung wu. A̱wot susot Á̱nietkhwikristi a̱da̱dei ji̱ laai shi a̱ni si̱ lak a̱di̱dam A̱gwaza A̱tat mi̱ A̱tyonyiung wu, ku a̱jhyem ku di̱n kap, nang kyang ku naat ca̱caat ma̱ng A̱lyiat A̱gwaza na a̱ni bah. Á̱ ni̱ song a̱gwai a̱tuk mam byin Yesu na kuzang a̱lyia̱ ma̱ a̱tuk mam 25 mi̱ Zwat Swak ma̱ng Sweang.[j] Á̱ ni̱ cyin kpaat nggu hu da̱ a̱team a̱khwu ka ma̱ a̱tuk mam A̱sham A̱tuk Juma kikya a̱wot ta̱ngam nggu ka ma̱ng swuan ma̱ á̱niet ba̱ ka̱n kwi a̱ni ma̱ a̱tuk mam A̱tuk Ladi Ita ka. Ka̱la̱nda ji nang á̱ swak nnyia̱ ma̱ng a̱nji—da̱nang a̱lyia̱ a̱fwun ka yet 2022 AD/CE a̱ni—byia̱ a̱tyin nji di̱ mam byin Yesu hu hwa nang á̱ ku tyan a̱ni gbangbang.[34][k]
Á̱ bu cyin Yesu mi̱ nkhwi nghyang. Mami [[Khwikpaa̱pyia̱]], á̱ kyiak Yesu (nang á̱ ku ngyei ma̱ng a̱lyoot Kuran nggu ka ʿĪsā) nang a̱ta̱m a̱kwonu A̱gwaza a̱ ku bai a̱zanson a̱ngaan ka ma̱ng a̱tyusan wu.[l] Á̱kpaa̱pyia̱ ba nwuak a̱cucuk nyia̱ fi̱ng nggwoneam ka̱ ka̱n nwai lyen a̱tyok a̱ni hwa ku byin Yesu, a̱wot da̱ nggu, a̱ nwai yet A̱gwaza ku nggwon A̱gwaza.[41][42] Kuran ji ntak nyia̱ Yesu du tak nyia̱ nggu a̱ neet Ma A̱gwaza tswazwa kya a̱ni bah.[43] Á̱kpaa̱pyia̱ ma̱ a̱di̱di̱t nwai nwuak a̱cucuk nyia̱ á̱ ku hyat Yesu ku á̱ kpaat nggu da̱ a̱team a̱khwu, a̱wot A̱gwaza si̱ ta̱ngam nggu ma̱ng swuan ma̱ á̱niet ba̱ ka̱n kwi a̱ni a̱ si̱ kin nat ma̱ng a̱nggu Tswazwa ma̱nang gu ni̱ nswuan a̱ni bah.[44] Da̱ a̱kwonu a̱kya, [[Khwiyahuda]] lak nwuak a̱cucuk hu nyia̱ Yesu wa ku yet a̱tyusan (ku ma̱siya) wu nang á̱ ku nfwuong bai nggu hu a̱ni, a̱wot ba̱ ya fwuang nyia̱ da̱ nggu, a̱ du nhyat shei mi̱ shei á̱zanson a̱tyusan hu bah, ba̱ si̱ kin mbeang nyia̱ da̱ nggu, a̱ ku neet Ma A̱gwaza tswazwa kya bah a̱wot da̱ nggu, a̱ ku ta̱ngam ma̱ng swuan ma̱ á̱niet ba̱ ka̱n kwi a̱ni bah.[45]
[[Sa:Yesu]]
dxwjpt997d8dl4s2wcvxcuhnphd5j2a
Yet A̱tyobyin
0
830
14470
13526
2022-06-13T10:36:41Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
'''Yet A̱tyobyin''' fa swat ma̱ng shyia̱ dundung a̱tyubishyi ma̱ng a̱byin gu nshyia̱ ani. Ku yet ta hwa a̱tyo a̱wa a̱ shim a̱byin ka a̱wot a̱byin ka ka̱ cok nggu meang.
==Ya̱fang==
<references/>
==A̱ka̱fwuop nta==
* [http://www.bbc.co.uk/schools/pshe_and_citizenship/ BBC PSHE & Citizenship]
* [https://ssrn.com/abstract=2280329 The Life in the UK Citizenship Test Report by Thom Brooks]
* [https://web.archive.org/web/20060404042127/http://www.opm.gov/extra/investigate/IS-01.pdf Citizenship Laws of the World]
[[Sa:Yet_A̱tyobyin]]
[[Sa:A̱gwomna̱ti]]
s2r4ir7e4aptx3cd62chnfdn42mhk5b
Yola
0
831
12575
10769
2022-05-21T20:40:06Z
Hugo.arg
154
/* Ya̱fang */
wikitext
text/x-wiki
A̱keang '''Yola''' (Fa̱taa: Ƴoola), fa 'A̱gba̱ndang A̱byin' ku 'kyai a̱byin', ka̱ yet a̱gba̱ndang a̱keang, a̱keangtung a̱gba̱ndang a̱keang meang tyok ma̱ka̱wa̱tyia̱ [[Si̱tet A̱da̱mawa]], [[Naijeriya]]. A
Ka̱ shyia̱ a̱gbang a̱tak [[A̱ghyui Benuwe]], ka̱ si̱ byia̱ shi á̱niet 336,648 (2010). Á̱ ka̱u Yola di̱ nkap nfeang nia.
==Ya̱fang==
<references/>
8oatkmrp3j65fdrs9ax1pvyvyilui4h
Yuganda
0
832
14471
13527
2022-06-13T10:36:46Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
{{Country
|name = ''Ri̱pobi̱lik Yuganda''<br><small>Jamhuri ya Uganda (Swahili)</small>
|flag = Flag of Uganda.svg
|caption = Tyiang a̱toot shi a̱byin Yuganda
|coa = Coat of arms of Uganda.svg
|image = Uganda (orthographic projection).svg
|capital = [[Ka̱mpala (a̱keang)|Ka̱mpala]]
|area = 241,038
|population = 42,729,036
|year = 2018
}}
'''A̱bwom a̱byin''': "Nwan Yuganda, A̱byin Shisham" (''Oh Uganda, Land of Beauty'') [[Fail:Ugandan national anthem, performed by the U.S. Navy Band.ogg]]
A̱byin '''Yuganda''' (Lilyem Yuganda: Yuganda), á̱ lyen ma̱ng a̱lyoot a̱gwomna̱ti ka nang '''Ri̱pobi̱lik Yuganda''' (Swahili: Jamhuri ya Uganda<ref>[https://books.google.com/books?id=LccRAwAAQBAJ&dq=Jamhuri+ya+Uganda+swahili&pg=PA745 Britannica Book of the Year 2014] (di̱n Shong). Encyclopedia Britannica, Inc. (1 Zwat Tsat 2014). P. 745. ISBN 978-1-62513-171-3</ref>) a̱ni, yet a̱byin kya nang bibyin ghyang keang di̱ tityak a̱ni mi̱ fam a̱byin A̱tyin Afrika. Ka̱ byia̱ a̱gi̱gak di̱ fam a̱tyin hu ma̱ng a̱byin [[Kenya]], di̱ fam a̱za hu ma̱ng [[Sudan A̱tak]], di̱ fam jenshyung hu ma̱ng [[Ri̱pobi̱lik Di̱mokrasi Konggo]], di̱ fam a̱tak-jenshyung ma̱ng [[Ruwanda]], a̱wot di̱ fam a̱tak hu ma̱ng [[Ta̱nzaniya]]. Fam a̱tak a̱byin ka si̱ byia̱ a̱gba̱ndang kap [[A̱gba̱ndang Jok Viktoriya]] wu, nang ka̱ ka̱u ma̱ng bibyin Kenya ma̱ng Ta̱nzaniya a̱ni. Yuganda shyia̱ di̱ fam a̱byin A̱ca̱cet Njok Afrika hu hwa. A̱byin Yuganda ka ka mmyiai di̱ Kham A̱ghyui Nayil ji ja a̱wot ka̱ si̱ byia̱ za̱kwa wun ji̱ vwuon neet a̱vwuo naat a̱vwuo a̱wot da̱ a̱ka̱nyiung, ji̱ yet tangka̱i za̱kwa wun a̱kwa̱toriya ghyang hwa. Ka̱ byia̱ shi á̱niet ku swak miliyon 42, nang miliyon 8.5 swan a̱keangtung ka ma̱ng a̱gba̱ndang a̱keang a̱ swak ma̱ng shi kyai a̱ni nang á̱ ngyei [[Ka̱mpala (a̱keang)|Ka̱mpala]] a̱ni.
==Ya̱fang==
<references/>
{{Bibyin Afrika}}
[[Sa:Bibyin swanta]]
[[Sa:Bibyin Afrika]]
[[Sa:Bibyin A̱tyin Afrika]]
41kho5h4vs50heaej8uyus92sn20fdh
Yuki̱ren
0
833
13540
12598
2022-06-01T10:42:26Z
178.159.230.108
wikitext
text/x-wiki
{{Country
|name = ''Yuki̱ren''<br><small>Україна (Yuki̱ren)</small>
|flag = Flag of Ukraine.svg
|caption = Tyiang a̱toot shi a̱byin Yuki̱ren
|coa = Lesser Coat of Arms of Ukraine.svg
|image = Europe-Ukraine (и не контролируемые).png
|capital = [[Kyip]]
|area = 603,628
|population = 48,457,102
|year = 2001
}}
'''A̱bwom a̱byin''': "{{lang|uk|Державний Гімн України}}"<br/>''Derzhavnyi Himn Ukrainy''<br/>"A̱bwom a̱byin Yuki̱ren"<div style="display:inline-block;margin-top:0.4em;">[[Fail:National anthem of Ukraine, instrumental.oga]]</div>
A̱byin '''Yuki̱ren''' (Yuki̱ren: ''Українa'' "Ukraïna") yet a̱byin kya di̱ fam-a̱byin A̱tyin Yurop. Kikya yet a̱byin a̱feang ka̱ swak ma̱ng shi kyai a̱byin mi̱ [[Yurop]] lilyim [[Roshiya]], ma̱ng a̱nyan wa ka̱ byia̱ a̱gi̱gak di̱ nfam a̱tyin ma̱ng a̱za-a̱tyin na. Yuki̱ren ka mbyia̱ a̱gi̱gak ma̱ng bibyin [[Belarut|Byelarut]] di̱ fam a̱za; [[Polan]], [[Sulovakya]], ma̱ng [[Hongga̱ri]] di̱ fam jenshyung hu; [[Romaniya]] mbeang [[Moli̱dova]]di̱ fam a̱tak; a̱wot ku si̱ byia̱ lang khwong a̱sa̱khwot ma̱ng Kyai A̱sa̱khwot Azov hu ma̱ng [[A̱dyundyung Kyai A̱sa̱khwot]] wu. A̱byin Yuki̱ren ngaat ka̱ si̱ kup shi kyai a̱byin kilomita a̱ma̱ntanaai 603,628 (met a̱ma̱nta 233,062), a̱wot ka̱ si̱ a̱byin a̱ni̱nai ka̱ swak ma̱ng shi á̱niet a̱ni mami Yurop lilyim [[Si̱pen]]. A̱keangtung a̱byin ka ma̱ng a̱gba̱ndang a̱keang a̱ swak ma̱ng shi a̱ni, nggu wa yet Kyip.
==Ya̱fang==
<references/>
{{Bibyin Yurop}}
4wq89xkts5ebh1wb80yi57zyl5costh
Yunuvasiti Ahmadu Bello
0
834
10803
10802
2022-05-16T12:57:23Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[Yunuvasi̱ti Ahmadu Bello]]
bpm077vynz5zyazrgr51dlgglwy4wy3
Yunuvasi̱ti Ahmadu Bello
0
835
12537
10813
2022-05-21T05:28:31Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
[[Fail:Gate of Ahmadu Bello University Zaria 01.jpg|197px|right]]
'''Yunuvasiti Ahmadu Bello''' ('''ABU''' /Ee bi yu/) '''Zariya''' yet a̱gba̱ndang a̱vwuotyiet a̱si̱ a̱gwomna̱ti a̱byin [[Naijeriya]] wa a̱ shyia̱ [[Zariya]] a̱ni. Á̱ khwuk ''ABU'' a̱tuk mam 4 Zwat Swak 1962, a̱ si̱ ngyei "University of Northern Nigeria".
Á̱nietmyiam ba á̱ tyiet mba di̱n vak á̱ngi̱ri̱m fang.
6yrhau6qkkeztsjvqoq0zprzlec2bim
Yurop
0
836
15257
14472
2022-07-21T06:36:19Z
Gwanki
276
wikitext
text/x-wiki
{{databox}}
[[Fail:Europe orthographic Caucasus Urals boundary (with borders).svg|thumb|Ta̱si̱la vam-a̱byin Yurop]]
A̱byin '''Yurop''' yet vam-a̱byin hwa ku shyia̱ di̱ swat A̱kum-a̱la̱u A̱za ka di̱ tityak ma̱ng A̱kum-a̱la̱u A̱tyin ka ma̱ a̱dodo. Ka̱ byia̱ ndi̱m-a̰byin na̱ shyia̱ fam jenshyung vam-a̱byin kyai a̱byin Yura̱siya hu swak a̰ni, a̱wot ka̱ si̱ byia̱ a̱gi̱gak ma̱ng A̱gba̱ndang Kyai A̱sa̱khwot Atik wu di̱ fam a̱za hu, [[A̱gba̱ndang Kyai A̱sa̱khwot Ati̱lantik]] wu di̱ fam jenshyung hu, [[Kyai A̱sa̱khwot Meditaroniya]] hu di̱ fam a̱tak hu, ma̱ng a̱byin [[A̱siya]] di̱ fam a̱tyin hu. Á̱ ni̱ nkyiak a̱byin Yurop ka̱ yet zan ma̱ng a̱byin A̱siya di̱n vak Tsutsok Ural ji, A̱ghyui Ural ka, Kyai A̱sa̱khwot Kaspiya hu, A̱gba̱ndang Ka̱ukasut wu, [[A̱dyundyung Kyai A̱sa̱khwot]] wu, ma̱ng nvak a̱sa̱khwot Á̱na̱nwuai A̱sa̱khwot Turkiya na. Shimba ma̱ a̱di̱di̱t a̱gi̱gak bani yet á̱si̱ a̱byin bya, a̱byin Yurop byia̱ a̱tyentyang yong vam-a̱byin mat a̱gba̱ndang shi kyai nka wu nang á̱ghyi maai ndi a̱ni ma̱ng shi a̱kpa̱p nkhang nka na ma̱ng taada.
{{Bibyin Yurop}}
[[Sa:Nvam-a̱byin_swanta]]
9d9yiqti9ov29ypg5ia54x2fq940sb5
Za
0
837
12538
10834
2022-05-21T05:28:41Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
[[Fail:Rain falling on road - gnangarra.webm|thumb|Za va di̱n vak]]
'''Za''' yet a̱jojot a̱sa̱khwot wa a̱ tai tang ti̱tang a̱sa̱khwot ku neet lywei ku shyia̱ mi̱ wun a̱ni, a̱wot ku si̱ tung cet ku si̱ maai va di̱n vak cet a̱gba̱ndang kwak a̱byin hu a̱ni.
==Ya̱fang==
<references/>
gcc5dkz26awv4dkp3jzplff2praamxv
Zama̱ni Lyekhwot
0
838
14722
14721
2022-07-02T11:51:47Z
Kambai Akau
15
wikitext
text/x-wiki
{{Databox|item=Q8065623}}
'''Zama̱ni Lyekhwot''' (á̱ byin nggu Zwat A̱natat 19, 1940) yet a̱khwukhwop mejo-jenera wa mi̱ sot [[A̱khwot Á̱kwop A̱byin Naijeriya]] a̱ ku nyia̱ ta̱m gbangbang nang gwomna a̱khwot a̱kwop [[Si̱tet Rivas]] a̱ni kyiak neet mi̱ Zwat A̱natat 1975 ba̱ng si̱ tat Zwat A̱natat 1978 di̱n jen ntyok A̱yaajenera Murtala Muhammed ma̱ng [[Olusegun Obasanjo]]. Lyekhwot yet a̱tyotyap wa.
==Ya̱fang==
<references/>
4qfxvjtzeu279q3apouefvr0df4l0io
Zangon Katab
0
839
15923
15920
2022-08-14T19:04:31Z
Kambai Akau
15
wikitext
text/x-wiki
{{Databox}}
'''Zangon Katab''' (ku Zango A̱tyap, Nietcen A̱fakan) yet [[Susot a̱gwomna̱ti mali Naijeriya|Sot A̱gwomna̱ti Mali]] ja ma̱ [[A̱tak Ka̱duna|a̱tak]] [[Si̱tet Ka̱duna]] ka, [[Naijeriya]]. Tyantung nji, jija yet a̱keang [[Zonkwa]]. Ji̱ ka yet a̱lyoot a̱keang a̱ghyang kya ma̱ [[A̱byintyok A̱tyap]] ka. A̱ka̱keang á̱ghyang nji, nia yet: Ba̱ta̱don, [[Cenkwon]], Kamantan ma̱ng Ka̱murum. Ji̱ byia̱ shi kyai a̱byin 2,579 km² hwa ma̱ng shi á̱niet 318,991 ma̱ng si̱sak fang á̱niet a̱byin a̱lyia̱ 2006 hu.<ref>[https://citypopulation.de/php/nigeria-admin.php?adm1id=NGA019 Kaduna State of Nigeria]. City Population.</ref> Zwunzwuo-ta̱m tá̱m fam a̱byin ji, jija yet 802.<ref>[https://web.archive.org/web/20091007011423/http://www.nipost.gov.ng/PostCode.aspx Post Offices- with map of LGA]. NIPOST.</ref>
== A̱ca̱cet á̱niet ==
* [[Ba̱la A̱ci]], a̱tyulyen nkhang gbangbang, a̱tyulyuut
* [[Ka̱tung A̱duwak]], a̱tyunyianfim
* [[Rachel Bakam|Rachel Ba̱kam]], a̱tyugwainfwuo-á̱niet, a̱ghyi TV
* [[Ishaya Bakut]], a̱khwot a̱kwop
* [[Isaiah Balat]], a̱tyubwuang, a̱tyukwainfwuo-á̱niet
* [[DJ Bally]], DJ, a̱tyukpa a̱bwom-tsot, a̱tyulyiat tazwa a̱lyiat, a mbeang a̱ghyi TV
* [[Nuhu Ba̱ture]], a̱tyuba̱ngtyok
* [[Musa Bityong]], khwo a̱khwot a̱kwop
* [[Harrison Bunggwon]], a̱bwok-ntswam, a̱tyutyok
* [[Ba̱la A̱de Da̱ukee]], a̱tyukwainfwuo-á̱niet, a̱tyuba̱ngtyok
* [[Marok Ga̱ndu]], a̱gba̱ndang a̱tyunkhang gbangbang
* [[Sondee Marshall Ka̱tung]], la̱uya, a̱tyukwainfwuo-á̱niet
* [[Ture Ka̱za-Ture]], a̱tyulyen nkhang gbangbang, a̱tyufuut-á̱niet, a̱tyucat muna̱pyia̱ Afrika
* [[Matyu Hasa̱n Kuka]], a̱khwo A̱gwaza
* [[Yoona Sidi Kuka]], a̱tyuba̱ngtyok
* [[Zama̱ni Lyekhwot]], a̱khwot a̱kwop
* [[Blessing Li̱man]], a̱khwot a̱kwop
* [[Kyuka Lilymjok]], la̱uya, a̱tyulyuut, a̱tyucok nkhang a̱keang
* [[Yoona Madaki]], a̱khwot a̱kwop
* [[Ishaya Shekari]], a̱khwot a̱kwop
* [[Dominic Yahaya]], a̱tyuba̱ngtyok
* [[Andrew Yakubu]], a̱bwok ntswam
* [[Paul Samuel Zama̱ni]], a̱khwo A̱gwaza
== Bu nwuan ==
* [[Lyulyoot a̱baka̱keang mami Si̱tet Ka̱duna]]
* [[Jhyá̱ 1992 Zangon Kataf]]
==Ya̱fang==
<references/>
[[Sa:Naijeriya]]
[[Sa:A̱ka̱keang_mami_Naijeriya]]
[[Sa:A̱ka̱vwuo na̱ byia̱ á̱niet ma̱ ba̱t mami Si̱tet Ka̱duna]]
[[Sa:Susot a̱gwomna̱ti mali Naijeriya]]
[[Sa:Susot a̱gwomna̱ti mali Si̱tet Ka̱duna]]
[[Sa:Susot a̱gwomna̱ti mali]]
[[Sa:Sot a̱gwomna̱ti mali Zangon Katab]]
==A̱ka̱fwuop nta==
{{Commons category-inline|Zangon Kataf|Zangon Katab}}
r4j2xyqvqia6hbahzn1c83hlxo15iwc
Zariya
0
840
14474
13530
2022-06-13T10:37:22Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
A̱keang '''Zariya''' yet a̱gba̱ndang a̱keang wa a̱ byia̱ shi ba̱t mami [[A̱si̱tet Ka̱duna]] di̱ fam a̱za [[Naijeriya]] hu, a̱ bu yet [[Susot a̱gwomna̱ti mali Naijeriya|Sot A̱gwomna̱ti Mali]] meang. Á̱ ku ngyei nka Za̱uza̱u gbangbang, ka̱ si̱ yet a̱nyiung ma̱ a̱tsak a̱ca̱cet a̱ka̱keang A̱kpat na na̱ shyia̱ a̱natat a̱ni. A̱fwun ka, kikya yet mali yunivasti Naijeriya ku yet a̱gba̱ndang ku swak a̱ni, Yunivasti Ahmadu Bello, ma̱ng mali a̱ca̱cet á̱ghyang á̱niet Naijeriya ba̱ byia̱ a̱lyoot a̱ni.
Kyiak neet sa̱nsut 2006 ji, á̱ ku tyan nang a̱keang Zariya byia̱ á̱niet 408,198. Kikya ma ngyet mali Tyokkpaa̱pyia̱ Za̱uza̱u hu.
==Ya̱fang==
<references/>
[[Sa:Naijeriya]]
[[Sa:A̱ka̱keang_mami_Naijeriya]]
[[Sa:A̱ka̱vwuo na̱ byia̱ á̱niet ma̱ ba̱t mami Si̱tet Ka̱duna]]
664r6z8i6bf7ynm00f0lc55ixyh5yhl
Zhwuma̱nu
0
841
10884
10883
2022-05-16T12:57:26Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[Zwuma̱nu]]
bdri7jk2r4hro4swcg23rmicg4dh23l
Zidyep ang, Naijeriya
0
842
10890
10889
2022-05-16T12:57:26Z
Jon Harald Søby
8
5 revisions imported
wikitext
text/x-wiki
#REDIRECT [[Zi̱ Dyep Ang, Naijeriya]]
o3j0yp4cdigmnxmilnmbyoxaquwl9p5
Zidyep ang ,Naijeriya
0
843
10893
10892
2022-05-16T12:57:26Z
Jon Harald Søby
8
2 revisions imported
wikitext
text/x-wiki
#REDIRECT [[Zi̱ Dyep Ang, Naijeriya]]
e7r5zxyy1n2dhdhkszhfe3k9hxgrbzn
Zi̱ Dyep Ang, Naijeriya
0
844
15241
14475
2022-07-19T10:51:00Z
Kambai Akau
15
wikitext
text/x-wiki
{{Databox|item=Q14405797}}
'''Zi̱ Dyep Ang, Naijeriya''' yet a̱khwukhwop a̱bwom Naijeriya wu á̱ ku byia̱ neet mi̱n jen shyia̱ tyok mi̱n 1960 ba̱ng si̱ nat 1978. A̱bwom a̱byin Naijeriya a̱fwun ka, "[[Á̱na̱nyiuk, Nyi Ta̱ngam]]," ku shyia̱ san hu ma̱ a̱lyia̱ 1978, si̱ a̱kya si̱ shai "Zi̱ dyep ang, Naijeriya."
==Ya̱fang==
<references/>
[[Sa:Bubwom bibyin Afrika]]
[[Sa:Bubwom Naijeriya]]
[[Sa:A̱yaalama a̱byin Naijeriya]]
o1adev658q2lrwtte4ieynwuzkejcpy
Zi̱dyep ang, Naijeriya
0
845
10904
10903
2022-05-16T12:57:27Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[Zi̱ Dyep Ang, Naijeriya]]
e7r5zxyy1n2dhdhkszhfe3k9hxgrbzn
Zi̱lan A̱fai
0
846
14476
13531
2022-06-13T10:37:32Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
{{Country
|name = ''Zi̱lan A̱fai''<br>New Zealand (Shong)<br>Aotearoa (Mawori)
|flag = Flag of New Zealand.svg
|caption = Tyiang a̱toot shi a̱byin Zi̱lan A̱fai
|coa = Coat of arms of New Zealand.svg
|image = NZL_orthographic NaturalEarth.svg
|caption = A̱vwuo ka nang a̱byin Zi̱lan A̱fai nshyia̱ a̱ni, ma̱ng bibyin a̱ka̱wa̱tyia̱ a̱sa̱khwot nka hu mi̱ A̱ntatika, ma̱ng Tokela̱u
|capital = Wellington
|area = 268,021
|population = 5,138,440
|year = 2022
}}
'''A̱bwom a̱byin''': "God Defend New Zealand" (''A̱gwaza Cok Zi̱lan A̱fai'')<div style="display:inline-block;margin-top:0.4em;">[[Fail:New Zealand national anthem, performed by the United States Navy Band.wav]]</div>
A̱byin '''Zi̱lan A̱fai''' (Shong: New Zealand, Mawori: Aotearoa /aɔˈtɛaɾɔa/) yet a̱byin a̱ka̱wa̱tyia̱ a̱sa̱khwot kya di̱ fam a̱tak-jenshyung [[A̱gba̱ndang Kyai A̱sa̱khwot Pasi̱fi̱k]] hu. Ka̱ byia̱ nkyai bibyin nfeang —A̱byin A̱ka̱wa̱tyia̱ A̱sa̱khwot A̱za ka (Shong: North Island, Mawori: Te Ika-a-Māui) ma̱ng A̱byin A̱ka̱wa̱tyia̱ A̱sa̱khwot A̱tak ka (Shong: South Island, Mawori: Te Waipounamu)—ma̱ng si̱ ku swak a̱cyuang bibyin a̱ka̱wa̱tyia̱ a̱sa̱khwot 700. Kikya yet a̱byin a̱ka̱wa̱tyia̱ a̱sa̱khwot ka̱ nyia̱ tyok a̱pyia̱ nka ka̱ byia̱ shi a̱taa mi̱ swanta hu a̱mgba̱m, ka̱ si̱ kup kyai a̱byin kilomita a̱ma̱ntanaai 268,021 (met a̱ma̱ntanaai 103,500). A̱byin Zi̱lan A̱fai swan kpa̱mkpaan kilomita 2,000 (met 1,200) ma̱ng fam a̱tyin [[A̱strelya]] a̱ma̱nyi Kyai A̱sa̱khwot Tasmeniya hu ma̱ng kilomita 1,000 (met 600) di̱ fam a̱tak bibyin a̱ka̱wa̱tyia̱ a̱sa̱khwot Kali̱doniya A̱fai, Fiji, ma̱ng Tongga. A̱byin ka vwuon vi̱vwuon mi̱ di̱ li lili a̱byin hu ma̱ng a̱jojwaat a̱ka̱fan nka wu, mbeang A̱yaa-ali̱p A̱tak. A̱keangtung nka, kikya yet Wellington, a̱wot a̱keang nka ka̱ swak ma̱ng shi á̱niet a̱ni, kikya yet Auckland.
==Ya̱fang==
<references/>
{{Template:Bibyin Osheniya}}
[[Sa:Bibyin swanta]]
[[Sa:Bibyin Osheniya]]
[[Sa:Zi̱lan A̱fai]]
jtxipnforijqnqlk8tvzx5ublb1vsic
Zok a̱shai
0
847
12543
10929
2022-05-21T05:29:31Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
'''Zok a̱shai''' yet zok ja ji̱ shai si̱sak nang vam hu nyia̱ nta̱m jhyi ma̱ng ka̱u nkyang kyayak na̱ nok vam a̱ni nang a̱yaaproti̱n, hya̱u, ma̱ng kabohaidi̱ret, di̱n vak hu ku myim a̱ni bah.
{| class="wikitable" align=right border width="200"
| colspan="2" align=center|'''Zok a̱shai'''
|-
| colspan="2" align=center|[[Fail:Ragged red fibres - gtc - very high mag.jpg|300px|center]] <sub>Kidee zwan mitokondriya</sub>
|-
|}
==Ya̱fang==
pdka28w7xgv55k9x4jrmec9p2sd4cr0
Zon
0
848
12544
10944
2022-05-21T05:29:41Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
[[Fail:Hausziege 04.jpg|thumb|A̱bakum zon a̱zagut a̱kwon a̱ghyang]]
'''Zon''' ji (á̱kpa: '''zón''', ''Capra hircus'') yet tangka̱i zon-a̱lywei hwa nang á̱ cok a̱mali a̱ni. Á̱ ku ta̱bat ba̱ng nji a̱mali neet mi̱ zon a̱yit (''C. aegagrus'') fam A̱tak-jenshyung A̱siya ma̱ng A̱tyin Yurop ji ja. Zon ji si̱ shyia̱ ma̱ng kyangbwak nyám ''Bovidae'' si̱ nwap nyám ''Caprinae'' ji, si̱ ku fa nyia̱ ji̱ byia̱ a̱meang ma̱ng [[zonseap]] ji.
==Ya̱fang==
<references/>
dh791f2qefischvg5gkbfxtmonx716o
Zon Swèap
0
849
10946
10945
2022-05-16T12:57:28Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[Zonseap]]
4u3isjxbjuldk32zj1w80fz1u71e3c8
Zong
0
850
12545
10956
2022-05-21T05:29:51Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
'''Zong''' (á̱ ka ndyuut '''zwong''' a̱ni) yet jen nang a̱yin nswan a̱fa a̱khwot di̱ mi̱n ya kyang ku da̱nian yak ya hu nshyia̱ bah.
==Ya̱fang==
<references/>
a1gu9rg3akf1ey4mq9zpjonqo2sny8z
Zonkwa
0
851
14478
13532
2022-06-13T10:37:42Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
A̱keang '''Zonkwa''' kya yet a̱keangtung [[Susot a̱gwomna̱ti mali Naijeriya|Sot A̱gwomna̱ti Mali]] [[Zangon Kataf]] ka a mbeang a̱si̱ Tyok [[A̱jhyo]] hu, ma̱ [[A̱tak Ka̱duna|a̱tak]] [[A̱si̱tet Ka̱duna]] di̱ fam a̱byin [[Fam A̱ka̱wa̱tyia̱]] [[Naijeriya]] hu.<ref name=MD>[https://www.mindat.org/feature-2317630.html Zonkwa, Zonkwa, Zangon Kataf, Kaduna State, Nigeria]. Mindat.org.</ref>
==Nkhang a̱byin==
===Myiai á̱kpai===
Zonkwa shyia̱ ma̱ng ban mita 798.<ref>[http://www.fallingrain.com/world/NI/00/Zonkwa.html Zonkwa]. Falling Grain.</ref>
===Lili wun===
Lili shwai a̱lyia̱ ma̱ng a̱lyia̱ a̱keang Zonkwa hu ma̱ka̱wa̱tyia̱ shyia̱ kpa̱mkpaan 24.8°C, ban shwai a̱lyia̱ ma̱ng a̱lyia̱ hu maai tat kpa̱mkpaan 28.6°C a̱wot ku maai cyok a̱tatak tat kpa̱mkpaan 18.8°C. Va za ji la gum di̱ kap a̱mgba̱m a mbeang kap a̱tsan a̱lyia̱ ka ma̱nang va za a̱lyia̱ ma̱ng a̱lyia̱ ma̱ka̱wa̱tyia̱ ka shyia̱ kpa̱mkpaan milimita 28.1, ma̱ng shwai ma̱ka̱wa̱tyia̱ si̱ 53.7%, lili a̱vwuo hu si̱ ka tai si̱ a̱ka̱keang hyia̱k na nang [[Gwoot]], [[Tsok]], ma̱ng [[A̱byin Fantswam|Fantswam]] a̱ni.
==Shi á̱niet==
===Á̱niet===
====A̱ka̱ka̱rak====
Á̱niet a̱ka̱ka̱rak (byina̱byin) ma̱ng a̱sorong á̱niet a̱ lan di̱ shi a̱ni mami a̱keang ka bya yet [[A̱jhyo]] ba. A̱keang kani kya ka yet a̱keangtung mba ka.
====Á̱ghyang====
A̱ka̱sorong á̱ghyang nang á̱ maai shyia̱ nna ma̱ a̱di̱di̱t a̱dei bya yet [[Á̱niet A̱tyap|A̱tyap]] ba, [[Á̱niet Igbo|Igbo]] ba, [[Á̱niet A̱sunkurum|A̱sunkurum]] ba, [[Á̱niet A̱kpat|A̱kpat]] wu, [[Á̱niet A̱ghwangkpang|A̱ghwangkpang]] ba, [[Á̱niet A̱byoot|A̱byoot]] ba, ma̱ng á̱niet Naijeriya á̱ghyang.
==A̱ca̱cet á̱niet==
* [[Ka̱tung A̱duwak]], a̱tyusi̱ni̱ma
* [[Nuhu Ba̱ture]], a̱tyuba̱ngtyok
==Bu nwuan==
* [[List of villages in Kaduna State]]
==Ya̱fang==
<references/>
[[Sa:Naijeriya]]
[[Sa:A̱ka̱keang_mami_Naijeriya]]
[[Sa:A̱ka̱vwuo na̱ byia̱ á̱niet ma̱ ba̱t mami Si̱tet Ka̱duna]]
oegcdxqso8ubzwl94aiotluvqii1zdo
Zonseap
0
852
12547
11027
2022-05-21T05:30:11Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
[[Fail:Flock of sheep.jpg|thumb|A̱sorong zónseap]]
'''Zonseap''' (á̱kpa: '''Zónseap'''; ''Ovis aries'') yet nyam a̱mali ja, ji̱ yet jhyiung mi̱ nyám ji̱ nwaai mman nji ji̱ byia̱ a̱fi̱fa a̱naai nang á̱ cok a̱mali a̱ni. Á̱ bu ngyei '''Zonseap a̱mali''' ma̱nang a̱lyoot zonseap ka maai fa kuzang tangka̱i sotbishyi ghyang hwa mi̱ ''genus'' Ovid ji. si̱ cong ma̱ng a̱titak a̱naai bya.
==Ya̱fang==
<references/>
jmpgiu1dr1xb75ew72fahqlz1o9y7c5
Zu
0
853
12548
11037
2022-05-21T05:30:21Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
'''Zu''' yet a̱bachuang nyam na na̱ng a̱ba ga̱swan a̱ni, ba̱ ya yak ha ka̱ a̱wot ba, can ji na̱ng a̱ nsak yak a̱ni hu hwa ba̱ khwui ba̱ nshiye nkiyak. A̱ ntsei ka̱kan ma̱ng yak jen jyiang a̱ khwoot yak hu ma̱ng a̱kurung Zu ba̱ di ya a̱byian.
==Ya̱fang==
<references/>
dghb5oxxbmpkssww5h4o9t79tnsd4kk
Zuk
0
854
12549
11049
2022-05-21T05:30:31Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
'''Zuk''' (á̱kpa: '''zúk''') yet sot á̱kwop jhyang ja ji̱ saat zwá ma̱ a̱gba̱mgbam a̱ni, nang á̱ khap ba̱t mi̱ swanta hu nang a̱sai kyayak ku yak a̱ni mat shyiat kyayak tsuung nyám ma̱ng á̱nietbishyi.
[[Fail:Grain millet, early grain fill, Tifton, 7-3-02.jpg|thumb|Zuk a̱sa̱khwot a̱tsatsak nfang bagina mi̱ kyai ghyang]]
==Ya̱fang==
<references/>
qarayth1z24fka2gott4zklfovgra79
Zunosit
0
855
14479
13533
2022-06-13T10:37:47Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
{| class="wikitable" align=right border width="200"
| colspan="2" align=center|'''Zunosit'''
|-
| colspan="2" align=center|[[Fail:Rabid dog.jpg|thumb|A̱bwu ka̱ nyia̱ ma̱ng zwan tyong jhyiip a̱ni.]]
|-
|}
'''Zunosit''' (neet Helen: ζῶον ''zōon'' "nyam" ma̱ng νόσος ''nósos'' "zwan") yet zwan ja nang á̱ maai ta̱bat ma̱ tai nang patojin (kyang tyei ta̱bat zwan ma̱ tai, nang bakteriyom, tswa zwan (virut), kyang nwaai a̱sok kyang nswuan ghyang, ku priyon) ku ka̱n fi̱p neet di̱ yet nyam (di̱n jen ma̱ a̱di̱di̱t nyam ji̱ byia̱ kunkup a̱ma) naat di̱ yet a̱tyubishyi a̱ni.<ref>WHO. "[https://www.who.int/topics/zoonoses/en/ Zoonoses]" (di̱n Shong).</ref><ref name="sgc">"[http://www.science.gc.ca/eic/site/063.nsf/eng/97704.html A glimpse into Canada's highest containment laboratory for animal health: The National Centre for Foreign Animal Diseases]" (di̱n Shong). science.gc.ca. Government of Canada (22 Zwat Swak 2018). ''Zoonoses are infectious diseases which jump from an animal host or reservoir into humans.''</ref> Ma̱ a̱gba̱mgbam, a̱tyubishyi ntsa a̱ ku nta̰bat zwan ji ni̱ nshyei kyang ku kwak zwan hu bai a̱ni nwuak a̱ghyang a̱tyubishyi (ku á̱ghyang á̱nietbishyi), a̱nyan wa ni̱ mbwuak nwuak á̱ghyang á̱niet meang.
==Ya̱fang==
<references/>
[[Sa:Zunosit]]
[[Sa:Zwan_nyám]]
b6eemr3hd41vxgc2z0hhe2uac9in7e3
Zwa
0
856
12551
11078
2022-05-21T05:30:51Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
[[Fail:Total wealth per capita, 1, OWID.svg|thumb|upright=1.9|A̱mgba̱m nzwa kyiak neet a̱pyia̱ naat ma̱ a̱pyia̱, ma̱ a̱lyia̱ 2014<ref>[https://ourworldindata.org/grapher/total-wealth-per-capita-map2 Total wealth per capita] (di̱n Shong). Our World in Data.</ref>]]
'''Zwa''' ji (á̱kpa: '''zwá''' ''ji'') yet á̱kpa nkyang nang a̱yin tung a̱pyia̱ nggu nda̱u a̱ni, ku kurum ku nkyang na̱ yet si̱ nna nang gu byia̱ di̱ lyap a̱ni.
== Ya̱fang ==
<references/>
ip9a1s5g0loc09rsm8b270gc0pedxnr
Zwaak
0
857
11080
11079
2022-05-16T12:57:33Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[Zwak]]
mt0ci5bairn7lkyxjx7g68iwg33j921
Zwak
0
858
15899
14480
2022-08-12T12:38:39Z
Victor Trevor
416
wikitext
text/x-wiki
[[Fail:Snakes Diversity.jpg|thumb|Nta̱ngka̱i zwák nvwuon]]
'''Zwak''' ji (á̱kpa: '''zwák''' ''ji'') yet nyam ja ji̱ kwang a̱byin a̱ni. Ji̱ li junjung ji̱ si̱ kwang ma̱ a̱fa, a̱nia wa a̱cyet nggu ka.
Zwak yet tangka̱i a̱ka̱tuk nyam hwa, ku byia̱ [[a̱nyung]] ka̱ nnyuai a̱ni á̱ ngyei ta̱kpa a̱ni. Zwak byia̱ a̱myia̱ gu koot ka̱ ji̱ map a̱yin a̱ni, ka̱ wot na̱ hyat a̱tyubishyi.
Zwák vwuon neet da̱ a̱vwuo a̱nyiung naat da̱ a̱vwuo a̱ghyang, ji̱ si̱ ka nvwuon di̱ yet a̱ka̱tuk. Kidee zwak ja yet tswup kyai.
==Ya̱fang==
<references/>
[[Sa:Zwák]]
9yxh1nhaq9s0qm4svm4ko7v5dw2porg
Zwan X
0
859
14481
13534
2022-06-13T10:38:18Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
[[Fail:SARS-CoV-2 (yellow).jpg|thumb|Scanning electron microscopy (SEM) a̱si̱ A̱NKoV-a̱HyaGKwaS-2 ku ''SARS-CoV-2'' (di̱n Shong), nang á̱ ku fa ma̱ a̱lyia̱ 2020 nggu wa ku yet a̱tsak tswa zwan (virut) swanta a̱son gu na nkhwat Zwan X bai a̱ni]]
'''Zwan X''' yet [[a̱lyoot a̱tyuba̱ng a̱vwuo]] kya nang [[Sot-nta̱m Gbi̱ngban Swanta]] (WHO) ku bwuo tyia̱ mi̱ Zwat Sweang 2018 mami a̱kum-lis nang ji̱ ngyei '''blueprint priority diseases''' a̱ni, mat á̱kang nzwan nang á̱ ka̱n zop tyak a̱ni bah da̱ a̱vwuo ka nang a̱tsak nzwan a̱ khwat a̱gba̱nyiuk bai á̱zanson nshyia̱ a̱ni.
==Ya̱fang==
<references/>
[[Sa:Sot-nta̱m_Gbi̱ngban_Swanta]]
[[Sa:A̱lyoot a̱tyuba̱ng a̱vwuo]]
19feg8s6rq00gbluy17pyvwu5stqmp5
Zwan shuga
0
860
12554
11127
2022-05-21T05:31:21Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
'''Diabetit Militut''' ('''DM'''), nang konyan sii ngyei '''zwan shuga''' a̱ni, yet sot [[zok a̱shai]] jhyang ja ji̱ byia̱ za̱kwa [[La̱u shuga a̱sok|shuga ban]] a̱ni da̱ a̱junjung jen.<ref>"[https://web.archive.org/web/20160428134809/http://www.who.int/diabetes/action_online/basics/en/ About diabetes]". World Health Organization.</ref> A̱yaalama nji bya yet [[koot a̱tyak nci̱ri̱ng]], [[Polydipsia|mban fwuong mashyi]] ma̱ng [[Polyphagia|mban fwuong di̱dang kyayak]]. Ka̱ á̱ kai á̱ ghwon di̱ mi̱n cat kan, zwan shuga maai khwat [[A̱ka̱bung Diabetit Militut|a̱ka̱bung gbi̱ngban ma̱ a̱di̱di̱t]]. A̱ka̱bung [[Gi̱gi̱k (kan)|gi̱gi̱k]] na maai yet ketowasi̱dosit zwan shuga, swat la̱u shuga a̱sok ma̱ng la̱u osmol, ku a̱khwu.<ref name="Kit2009">Kitabchi AE, Umpierrez GE, Miles JM, Fisher JN (July 2009). "Hyperglycemic crises in adult patients with diabetes." Diabetes Care. (32)(7). Pp.1335–43. 10.2337/dc09-9032.</ref>
{| class="wikitable" align=right border width="200"
| colspan="2" align=center|'''Zwan Shuga'''
|-
| colspan="2" align=center|[[Fail:Blue circle for diabetes.svg|300px|center]] <sub>A̱lama zwan shuga sa̱khat a̱sa̱khwot bula nang konyan mi̱ swanta hu lyen a̱ni</sub>
|-
|}
==Ya̱fang==
<references/>
==Fang a̱zanson==
jxb0rk86mwrfuvok18ky4vl6jzn923j
Zwang
0
861
12555
11134
2022-05-21T05:31:31Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
'''Zwang''' ji (á̱kpa: '''zwáng''' ''ji'') fa kwan a̱yaat ma̱ng nkyang nzwang tsi̱tsak a̱ka̱keang, á̱ka̱tuk á̱niet, nnwap ma̱ng susot.
==Ya̱fang==
<references/>
1g17grzzy3gktndms9mcyp6splhquj7
Zwat
0
862
14752
12556
2022-07-04T08:16:46Z
Kwamikagami
349
wikitext
text/x-wiki
[[Fail:FullMoon2010.jpg|thumb|Kap kpa̱mkpaan fam a̱za zwat hu shyia̱ tazwa]]
'''Zwat''' ji (á̱kpa: '''zwát''' ''ji''; symbol: [[file:Moon decrescent symbol (fixed width).svg|16px|☾]]) ja yet a̱za̱za̱rak vam a̱ keang Swanta hu ma̱nyin nji. Nguwa gnwat sai a̱tyetuk ka mam sai a̱ba̱ tyak jenshung. Zwat ja yet a̱tangwat ka ka̱ shyia̱ pa̱mpaan ma̱ng swanta hu a̱nswak a̱ni.
Zwat ni̱ cong kaat swanta hu ma̱ng mam 31 ku 30, jen jhyang nang Zwat Sweang a̱ni, á̱ kwok mmam 28 ku 29 (ka̱ kaat a̱lyia̱ a̱tat, a̱lyia̱ a̱naai ka̱ zwat ji na cong kaat ma̱ng mmam 29).
==Ya̱fang==
<references/>
izks733nw4egs2kw0srv29392kgntar
Zwaák
0
863
12977
11159
2022-05-29T16:05:16Z
Kambai Akau
15
A̱ti̱kut wu ku nshyia̱.
wikitext
text/x-wiki
#REDIRECT[[Zwak]]
svpxmckqyq2wxfszcn3m9zuobq1z33z
Zwa̱
0
864
11161
11160
2022-05-16T12:57:35Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[Zwa]]
ooacudr2z5itjd6m7p4m9qxy28id0x0
Zwuma̱nu
0
865
12557
11172
2022-05-21T05:31:51Z
Amire80
6
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
[[Fail:Hitov.jpeg|thumb|Kanayov Hitov, a̱tyutyeizat Bulga̱riya a̱ghyang]]
'''Zwuma̱nu''' yet cat ku tang mi̱ fi̱pa̱nu ji a̱ni.
==Ya̱fang==
<references/>
f2pu7i67vsrkdx6ny63dumr3vnagc4q
Zwuom
0
866
15934
15933
2022-08-17T06:39:51Z
Kambai Akau
15
wikitext
text/x-wiki
{{Databox}}
'''Zwuóm''' (jhyiung: '''zwuom''' ''ji'') yet sot nyám ja ji̱ swak kuzang ji ma̱ng shi ji̱ shyia̱ ma̱ng swuan mi̱ swanta hu. Á̱ ku ta̱taat a̱basusot tsat ja ji̱ ni̱ nshyia̱ ma̱ng swuan mi̱ di̱ yong huni: zwuom a̱yit Afrika ji, zwuom sop Afrika ji, ma̱ng zwuom A̱siya ji.
[[Fail:African Bush Elephant.jpg|thumb|Zwuom a̱yit [[Afrika]]]]
==Ya̱fang==
<references/>
== Fang a̱zanson ==
* {{cite book |last=Carrington |first=Richard |title=Elephants: A Short Account of their Natural History, Evolution and Influence on Mankind| publisher=Chatto & Windus|year=1958|oclc=911782153}}
* Nance, Susan (2013). ''Entertaining Elephants: Animal Agency and the Business of the American Circus''. Baltimore, MD: Johns Hopkins University Press, 2013.
* [[John Godfrey Saxe|Saxe, John Godfrey]] (1872). [[s:The Blindmen and the Elephant|"The Blindmen and the Elephant"]] at [[Wikisource]]. ''The Poems of John Godfrey Saxe''.
* {{cite book | last=Williams | first=Heathcote |author-link=Heathcote Williams | title=Sacred Elephant | location=New York | publisher=Harmony Books | year=1989 | isbn=978-0-517-57320-4}}
== A̱ka̱fwuop nta ==
{{Sister project links |wikt=elephant |commons=Category:Elephants |n=Category:Elephants |q=Elephants |voy=Elephants }}
* [https://elephantconservation.org International Elephant Foundation]
{{Elephants}}
{{Proboscidea}}
{{Proboscidea Genera}}
{{Featured article}}
[[Category:Zwuóm| ]]
[[Category:Herbivorous mammals]]
[[Category:Tool-using mammals]]
[[Category:Articles containing video clips]]
[[Category:Mammal common names]]
[[Category:Pliocene first appearances]]
06rgka7lac8wnx4s9jddlocg80mniu7
Zwuong
0
867
11187
11186
2022-05-16T12:57:37Z
Jon Harald Søby
8
2 revisions imported
wikitext
text/x-wiki
#REDIRECT [[Zong]]
05iw7jkuifvpg1rl9qrbda3ykc39j23
Zwán Koronavirut
0
868
14482
13535
2022-06-13T10:38:23Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
Kyang ku khwat '''Zwán Koronavirut''' bai a̱ni hwa yet tswá zwan (ku a̱yaavirut) a̱bankyangbwak [[koronavirut]] ka, sot tswá zwan RNA jhyang ja ji̱ byia̱ a̱meang ma̱ng njhyang a̱ni ji̱ kwak zwán bai mi̱ nvam tangka̱i nyám ku nwaai mman nhu na a̱ni a mbeang a̱ka̱man. Mi̱ nvam á̱nietbishyi ma̱ng a̱ka̱man, sot tswá zwan ji tyei a̱ka̱bung kwak swuan na̱ kyiak neet si̱ na̱ yet a̱shonshyon a̱ni ba̱ng si̱ tat si̱ na̱ maai hyat a̱yin a̱ni. A̱shonshyon nhyia̱ mi̱ nvam á̱nietbishyi maai yet: Shyishyim (nang tswá zwan njhyang ja kwak nji bai a̱ni, di̱n jen ma̱ a̱di̱dit rhinoviruses), a̱wot tswá zwan ji̱ maai hyat a̱yin a̱ni, jija kwak SARS, MERS ma̱ng [[Koronavirut 2019|ZKOVIT-19]] bai. Ma̱ a̱lyia̱ 2021, á̱ nyia̱ ri̱jista susotbishyi 45 nang ntangka̱i a̱yaakoronavirut, a̱wot á̱ si̱ ba̱ ta̱taat zwán 11 nang á̱ lyuut a̱tatak a̱ni.
==Ya̱fang==
<references/>
[[Sa:Zwán_ji̱_byia̱_a̱meang_ma̱ng_Koronavirut]]
[[Sa:ZKOVIT-19]]
navts2ckat2d0kvmpv3ylc0mzc4zdut
Á̱kum á̱niet
0
869
15284
12670
2022-07-21T22:26:14Z
ZabesBot
156
Bot: Cleaning up old interwiki links
wikitext
text/x-wiki
'''Á̱kum á̱niet''' ka yet a̱tung á̱niet kya.
'''Á̱kum á̱niet''' meang si̱ bye fa:
* Á̱niet ba ba̱ bwat a̱ni.
* Kap á̱niet ku yet a̱kpa a̱nyiung mi̱ a̱yaakpa a̱feang a̱ni.
==Ya̱fang==
<references/>
682lhgctwiz1burye7hut18xe8n5h0j
Á̱na̱nyiuk, Nyi Ta̱ngam
0
870
15676
14483
2022-08-11T21:37:04Z
Kambai Akau
15
wikitext
text/x-wiki
[[Fail:Nigeria_anthem_sheet_music.gif|thumb|Pepa a̱bwom]]
"'''Á̱na̱nyiuk, Nyi Ta̱ngam'''" ([[Shong (a̱lyem)|Shong]]: Arise, O Compatriots) wa yet a̱bwom a̱byin [[Naijeriya]] ka. Á̱ san a̱bwom ka mbwak nfeang á̱ si̱ sak di̱ ngaan nce ndyia̱ 1970 na a̱wot kikya yet a̱bwom a̱feang a̱byin ka.
==Nkhang==
Á̱ san a̱bwom ka mbwak nfeang ba̱ng ma̱ a̱lyia̱ 1978 á̱ si̱si̱ weam a̱khwukhwop a̱bwom a̱byin a̱ghyang wu, "[[Zi̱dyep ang, Naijeriya|Zi̱ Dyep Ang, Naijeriya]]" (Shong: "''Nigeria, We Hail Thee''").<ref name=gn>[https://web.archive.org/web/20170927112428/http://www.thegazellenews.com/2013/06/12/nigerias-national-anthem-composer-pa-ben-odiase-dies/ news Nigeria's National Anthem Composer, Pa Ben Odiase, Dies] (di̱n Shong). Gazelle News, 2013-06-12.</ref>
Swáng a̱lyiat ji yet mun mi̱ mun swáng a̱lyiat ma̱ng khám a̱lyiat á̰ ku kyiak neet di̱ bubwom a̱fwuon ku laai lan nang á̱niet neap ma̱ a̱ka̱nan lyuut a̱fai a̱bwom a̱byin nang á̱ ku nyia̱ a̱ni di̱n jen a̱ja ja. Á̱nietband Mmanshan Naijeriya ba tafa kwak a̱son Benedict E. Odiase (1934 - 2013), bibya tung swáng a̱lyiat ji si̱ tsot a̱bwom ma̱ng a̱nji. Shimba nang ka̱ byia̱ a̱cyuang zwunzwuo ja, a̱bwom a̱son kikya nang á̱ ni̱ mbwom ma̱nyin di̱n jen ma̱ a̱di̱di̱t. Di̱n jen jhyang, á̱ ni̱ fang a̱da̱dei zwunzwuo a̱feang wu nang "Naai A̱byin" hu. Á̱niet a̱fwuon bya ku lyuut swáng a̱lyiat A̱bwom A̱byin Naijeriya ji. Á̱niet a̱bya, bibya yet: P. O. Aderibigbe, John A. Ilechukwu, Dr. Sota Omoigui, Eme tim Akpan ma̱ng B. A. Ogunnaike.
==Swáng a̱lyiat==
{|style="text-align:center;" class="wikitable"
|-
!A̱tsak swáng a̱lyiat wu di̱n Shong
!Bwan Tyap
!Bwan A̱ghwangkpang
!Bwan A̱kum-a̱cyi
!Bwan Kpat
!Bwan Fa̱taa
|-
|<poem>Arise, O Compatriots
Nigeria's call obey
To serve our fatherland
With love and strength and faith
The labour of our heroes past,
shall never be in vain
To serve with heart and might,
One nation bound in freedom, peace and unity
Oh God of creation, direct our noble cause
Guide our leaders right
Help our youth the truth to know
In love and honesty to grow
And living just and true
Great lofty heights attain
To build a nation where peace and justice shall reign.</poem>
|<poem>Á̱na̱nyiuk, nyi ta̱ngam,
Fa̱k yei Naijeriya hu.
Zi̱ nyia̱ a̱byin ka nta̱m
Ma̱ng a̱lyia̱ nzi̱t a̱nyiung.
Nta̱m a̱yaagwak nzi̱t na gbangbang,
Zi̱ na kai nna ghwon bah.
Zi̱ na ba̱ng nna mi̱cet,
Zi̱ swan ma̠ a̠byin ka ma̱ sa̱t,
Zi̱ mun a̱pyia̱ nzi̱t.
A̱gwaza Tswazwa wu,
Da̱ kwak nzi̱t a̱son ka.
Tyiet a̱ca̱cet nzi̱t ba,
Ba̱ cat a̱ghyang ba̱t kuzang jen,
Ba̱ swan swat nyinyang hu.
A̱wot, ba̱ nyia̱ kyang tswa,
Á̱ nok a̱byin nang konyan
Nswan ma̱ng sa̱t a̱ni.</poem>
|<poem>Dide, eyin Omo ilu
Ipe Nigeria gboran
Lati sin ile baba wa
Pẹlu ifẹ ati agbara ati igbagbọ
Iṣẹ awọn akọni wa ti kọja,
kì yóò jẹ́ lásán
Lati sin pẹlu ọkan ati agbara,
Orilẹ -ede kan ti a dè ni ominira, alaafia ati iṣọkan
Oluwa Ọlọrun ẹda, ṣe itọsọna idi ọlọla wa
Ṣe itọsọna awọn oludari wa ni ẹtọ
Ran awọn ọdọ wa lọwọ otitọ lati mọ
Ni ifẹ ati otitọ lati dagba
Ati gbigbe laaye ati otitọ
Awọn ibi giga giga giga de ọdọ
Lati kọ orilẹ -ede kan nibiti alaafia ati ododo yoo jọba.</poem>
|<poem>Bilie, ndị obodo
Oku Nigeria rube isi
Ijere ala nna anyị ozi
Site n'ịhụnanya na ume na okwukwe
Ọrụ ndị dike anyị gara aga,
agaghị abụ n'efu
Iji obi na ike jee ozi,
Otu mba ejikọtara na nnwere onwe, udo na ịdị n'otu
Chineke nke okike, duzie ebumnuche anyị dị mma
Na -eduzi ndị ndu anyị nke ọma
Nyere ndị ntorobịa anyị aka ịmata eziokwu
N'ịhụnanya na ịkwụwa aka ọtọ ka o too
Na ibi ndụ ziri ezi na eziokwu
Enweta oke oke oke
Iji wuo obodo ebe udo na ikpe ziri ezi ga -achị.</poem>
|<poem>Tashi, Ya Yan Uwa
Kiran Najeriya yayi biyayya
Don yi wa ƙasar mahaifinmu hidima
Da soyayya da karfi da imani
Aikin jaruman mu na baya,
ba zai taba zama banza ba
Don yin hidima da zuciya da ƙarfi,
Al'umma ɗaya daure cikin 'yanci, zaman lafiya da haɗin kai
Ya Allah na halitta, ka shiryar da lamirinmu mai daraja
Ka shiryar da shugabannin mu daidai
Taimaka wa matasan mu gaskiya su sani
Cikin soyayya da gaskiya su girma
Kuma rayuwa mai adalci da gaskiya
Babban matsayi mai girma ya kai
Don gina ƙasa inda zaman lafiya da adalci za su yi sarauta.</poem>
|<poem>Heey, ummee onon leydiyanke'en,
nootee noddaandu Naajeeriya.
Ngam jagganooɗen leydi baaba,
nder yiɗde, tiɗɗinaare e nuɗɗinaare.
Njaggu ngenndiyanke men ɓeɗiiɓe
to ngu laato ngu meere.
Njaggenen leydi nder ɓernde wootere,
leydi ngootiri ndarindiiri ndimaaku, jam e dental. </poem>
|}
==La̱p a̱nu a̱byin==
Á̱ ni̱ fang La̱p A̱nu A̱byin Naijeriya hu lilyim A̱bwom a̱byin Naijeriya ka. Felicia Adebola Adeyoyin wa lyuut nhu ma̱ a̱lyia̱ 1976.<ref>Mbamalu, Socrates (3 Zwat Tswuon 2021). [https://fij.ng/article/prof-felicia-adeyoyin-author-of-nigerias-national-pledge-dies-at-83/ Prof. Felicia Adeyoyin, Author of Nigeria's National Pledge, Dies at 83] (di̱n Shong). Foundation For Investigative Journalism.</ref>
:N da̱p a̱nu ma̱ng Naijeriya, a̱byin nung ka.
:N nyia̱ a̱cucuk, n nwuak a̱pyia̱ nung, n nyia̱ tsotswat.
:N nyia̱ Naijeriya ta̱m ma̱ng a̱lyia̱ a̱nyiung.
:N cok mun a̱pyia̱ nji hu.
:A̱wot, n di̱n a̱ma shi nji hu ma̱ng yet nji hu,
:Mat a̱nia, A̱gwaza beang nung.
==Ya̱fang==
<references/>
== A̱ka̱fwuop nta ==
* [https://kongashare.com/the-nigerian-national-anthem-sheet-music-pdf/ Pepa A̱bwom-tsot A̱byin Naijeriya wu]
[[Sa:Bubwom bibyin Afrika]]
[[Sa:Bubwom Naijeriya]]
[[Sa:A̱yaalama a̱byin Naijeriya]]
[[Sa:Bubwom a̱byin nang á̱ tsot ma̱ng F mejo]]
gxvdtbhiszptuxl87qhywgtzkjdba1y
Á̱niet A̱byoot
0
871
11252
11251
2022-05-16T12:57:39Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[A̱byoot]]
gtavoz24r32vjxbhropr1kq5qdfgt8y
Á̱niet A̱da
0
872
14486
11255
2022-06-13T10:43:28Z
Vargenau
226
Changed redirect target from [[A̱da (á̱niet)]] to [[A̱daa (á̱niet)]]
wikitext
text/x-wiki
#REDIRECT [[A̱daa (á̱niet)]]
67v6u8fw6ucqlmipt1aqejsisy7bn1h
Á̱niet A̱jhyo
0
873
14489
11257
2022-06-13T10:45:21Z
Vargenau
226
Changed redirect target from [[A̱jhyo]] to [[A̱jhyuo]]
wikitext
text/x-wiki
#REDIRECT [[A̱jhyuo]]
07hya0ceut4oteqap83wejeest8u13w
Á̱niet A̱kpat
0
874
11259
11258
2022-05-16T12:57:39Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[A̱kpat]]
9toopj0n6t5j4s10ikfsg0z50rvu1h8
Á̱niet A̱kuut
0
875
11261
11260
2022-05-16T12:57:40Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[A̱kuut]]
phck2rpdbtlg2gkxomyfx9udcjwxb96
Á̱niet A̱sunkurum
0
876
11263
11262
2022-05-16T12:57:40Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[A̱sunkurum]]
dapnlt9s72wwnih20nizmna5kvcp7qu
Á̱niet A̱tyap
0
877
11265
11264
2022-05-16T12:57:40Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[A̱tyap]]
3kgsibs9s3bamka7i42tqyak0x4h95g
Á̱nyung
0
878
11267
11266
2022-05-16T12:57:40Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[A̱nyung]]
q8qkjirrkmdedcsjtgdrmbo4dv5hknu
Ābachyuang-nfa̱ng
0
879
11269
11268
2022-05-16T12:57:40Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[A̱bada̱dei a̱fang]]
aahtugfs0vkfatn1ny12q7gn7c06svc
̱Aninan
0
880
11272
11271
2022-05-16T12:57:40Z
Jon Harald Søby
8
2 revisions imported
wikitext
text/x-wiki
#REDIRECT [[A̱nan]]
44ntwv4q5dkc23ern62ibt7895k1jf4
Ḇwang
0
881
11274
11273
2022-05-16T12:57:40Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[Bwang]]
qtqqyf943kj5all4tbmb13vgwdow7ae
Ḵazanki
0
882
11277
11276
2022-05-16T12:57:40Z
Jon Harald Søby
8
2 revisions imported
wikitext
text/x-wiki
#REDIRECT [[A̱ka̱za̱nki]]
h6fwrmr60nfmov62jpm5y41vh3z9f6z
Ḵaza̱nki
0
883
11280
11279
2022-05-16T12:57:40Z
Jon Harald Søby
8
2 revisions imported
wikitext
text/x-wiki
#REDIRECT [[A̱ka̱za̱nki]]
h6fwrmr60nfmov62jpm5y41vh3z9f6z
Ḵusat
0
884
11282
11281
2022-05-16T12:57:41Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[Kusat]]
5ihvysoza0djc6j3gs2kfygzdm9av29
Ḻuwab
0
885
11288
11287
2022-05-16T12:57:41Z
Jon Harald Søby
8
5 revisions imported
wikitext
text/x-wiki
#REDIRECT [[Vap]]
17zy6mnwyqysraofoz8nq48j82iqi1m
Ṯsaai
0
886
11291
11290
2022-05-16T12:57:41Z
Jon Harald Søby
8
2 revisions imported
wikitext
text/x-wiki
#REDIRECT [[Tsaai]]
edhc9kyg1hqueazan1qzggm99o4ppt6
Ṯsai
0
887
11294
11293
2022-05-16T12:57:41Z
Jon Harald Søby
8
2 revisions imported
wikitext
text/x-wiki
#REDIRECT [[Tsaai]]
edhc9kyg1hqueazan1qzggm99o4ppt6
Ạbyinkhap
0
888
11297
11296
2022-05-16T12:57:41Z
Jon Harald Søby
8
2 revisions imported
wikitext
text/x-wiki
#REDIRECT [[A̱byinkhap]]
3vze8f4wgshc6fmq4lz7bs0ysuhrt89
Ạsạkhwot
0
889
11299
11298
2022-05-16T12:57:41Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[A̱sa̱khwot]]
f64bbwswi7mtq50fnw7ym2afowxxpmm
Ạzaki
0
890
12048
12047
2022-05-20T14:16:37Z
Amire80
6
Redirected page to [[A̱zaki]]
wikitext
text/x-wiki
#REDIRECT [[A̱zaki]]
oac0jq1t7uwzsftrtygvfn5j96mdp9b
Sa:2006
14
891
15049
14858
2022-07-17T12:04:54Z
Kambai Akau
15
No more empty.
wikitext
text/x-wiki
[[Sa:Ndyia̱]]
020kgkfhzmjbt57qnfdcl0p1h9a52k2
Sa:2021
14
892
13924
11324
2022-06-09T17:26:49Z
Vargenau
226
wikitext
text/x-wiki
[[Sa:Ndyia̱]]
020kgkfhzmjbt57qnfdcl0p1h9a52k2
Sa:Afrika
14
893
11326
11325
2022-05-16T12:57:42Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:A̱bankwai virut
14
895
11331
11330
2022-05-16T12:57:42Z
Jon Harald Søby
8
2 revisions imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:A̱ca̱cet Njok swanta
14
898
13915
11339
2022-06-09T15:47:39Z
Vargenau
226
wikitext
text/x-wiki
[[Sa:Nvam_a̱sa̱khwot_swanta]]
1bfrgs6j72lu2lcv2tw5xd2nha41hjm
Sa:A̱ca̱cet Nkyai A̱sa̱khwot swanta
14
899
13927
11342
2022-06-09T17:27:47Z
Vargenau
226
wikitext
text/x-wiki
[[Sa:Nvam_a̱sa̱khwot_swanta]]
1bfrgs6j72lu2lcv2tw5xd2nha41hjm
Sa:A̱ca̱cet a̱ka̱keang Naijeriya
14
900
11344
11343
2022-05-16T12:57:43Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:A̱cyuang a̱yaama̱to
14
901
11346
11345
2022-05-16T12:57:43Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:A̱gba̱ndang A̱keang Bini
14
902
13926
11348
2022-06-09T17:27:31Z
Vargenau
226
wikitext
text/x-wiki
[[Sa:A̱ka̱keang_mami_Naijeriya]]
[[Sa:Si̱tet A̱do]]
[[Sa:Naijeriya]]
6fk9spyqqun35fktv5505i9n2s2isys
Sa:A̱gwomna̱ti
14
904
11352
11351
2022-05-16T12:57:44Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:A̱kakeangtung a̱yaasi̱tet Naijeriya
14
905
11354
11353
2022-05-16T12:57:44Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:A̱kat a̱pyia̱
14
906
11356
11355
2022-05-16T12:57:44Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:A̱ka̱fwuong
14
907
11358
11357
2022-05-16T12:57:44Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:A̱ka̱ghyui
14
908
13929
11360
2022-06-09T17:29:02Z
Vargenau
226
wikitext
text/x-wiki
[[Sa:Nvam_a̱sa̱khwot_swanta]]
1bfrgs6j72lu2lcv2tw5xd2nha41hjm
Sa:A̱ka̱ghyui Afrika
14
909
13928
11362
2022-06-09T17:28:18Z
Vargenau
226
wikitext
text/x-wiki
[[Sa:A̱ka̱ghyui_swanta]]
[[Sa:Nvam_a̱sa̱khwot_swanta]]
j3o15olmq1xyy3ylmqxhxysorlke3z5
Sa:A̱ka̱ghyui Amerika A̱tak
14
910
13936
11365
2022-06-09T17:31:32Z
Vargenau
226
wikitext
text/x-wiki
[[Sa:Nvam_a̱sa̱khwot_swanta]]
[[Sa:A̱ka̱ghyui_swanta]]
6ggilzb4t3a5wp2efw81jxyofo50sjs
Sa:A̱ka̱ghyui Brazil
14
911
13935
11367
2022-06-09T17:31:15Z
Vargenau
226
wikitext
text/x-wiki
[[Sa:Nvam_a̱sa̱khwot_swanta]]
[[Sa:A̱ka̱ghyui_Amerika_A̱tak]]
[[Sa:A̱ka̱ghyui_swanta]]
lzovn8oyw0rx5mdhlqbk8jwhfzugj7r
Sa:A̱ka̱ghyui Naijeriya
14
912
13934
11371
2022-06-09T17:31:02Z
Vargenau
226
wikitext
text/x-wiki
[[Sa:A̱ka̱ghyui_swanta]]
[[Sa:A̱ka̱ghyui_Afrika]]
[[Sa:Nvam_a̱sa̱khwot_swanta]]
lwvvzimwxg46zrb9xr7911gmamgyu70
Sa:A̱ka̱ghyui Nggi̱lan
14
913
13933
11375
2022-06-09T17:30:24Z
Vargenau
226
wikitext
text/x-wiki
[[Sa:A̱ka̱ghyui_swanta]]
[[Sa:Nvam_a̱sa̱khwot_swanta]]
j3o15olmq1xyy3ylmqxhxysorlke3z5
Sa:A̱ka̱ghyui Yurop
14
914
13932
11377
2022-06-09T17:30:14Z
Vargenau
226
wikitext
text/x-wiki
[[Sa:Nvam_a̱sa̱khwot_swanta]]
[[Sa:A̱ka̱ghyui_swanta]]
6ggilzb4t3a5wp2efw81jxyofo50sjs
Sa:A̱ka̱ghyui swanta
14
915
13931
11379
2022-06-09T17:29:58Z
Vargenau
226
wikitext
text/x-wiki
[[Sa:Nvam_a̱sa̱khwot_swanta]]
1bfrgs6j72lu2lcv2tw5xd2nha41hjm
Sa:A̱ka̱keang mami A̱gba̱ndang A̱niak A̱ngam wu
14
916
11381
11380
2022-05-16T12:57:45Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:A̱ka̱keang mami Naijeriya
14
917
13930
11384
2022-06-09T17:29:47Z
Vargenau
226
wikitext
text/x-wiki
[[Sa:Naijeriya]]
idc0lwg8nm2vap5j7uetonfs7d1oto3
Sa:A̱ka̱keangtung Afrika
14
918
13967
11386
2022-06-09T19:12:27Z
Kambai Akau
15
wikitext
text/x-wiki
[[Category:A̱ka̱keang swanta]]
n0j7wbc4t5v1dluywlcp20h6ypr4aip
Sa:A̱ka̱sasaaikurum Naijeriya
14
919
11389
11388
2022-05-16T12:57:46Z
Jon Harald Søby
8
2 revisions imported
wikitext
text/x-wiki
[[en:Category:List of banks in Nigeria]]
il5ze90gkui9ut58hc3pefx4bthjsjv
Sa:A̱ka̱vwuo na̱ byia̱ á̱niet ba̱t da̱ A̱gba̱ndang Jok Viktoriya
14
920
11391
11390
2022-05-16T12:57:46Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:A̱ka̱vwuo na̱ byia̱ á̱niet ba̱t di̱ Fam-a̱byin A̱ka̱wa̱tyia̱, Yuganda
14
921
11393
11392
2022-05-16T12:57:46Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:A̱ka̱vwuo na̱ byia̱ á̱niet ma̱ ba̱t mami A̱si̱tet Ka̱duna
14
922
11395
11394
2022-05-16T12:57:46Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[:Category:A̱ka̱vwuo na̱ byia̱ á̱niet ma̱ ba̱t mami Si̱tet Ka̱duna]]
3yczu189jq94le10bbv6qivia668bzv
Sa:A̱ka̱vwuo na̱ byia̱ á̱niet ma̱ ba̱t mami Si̱tet A̱do
14
925
13942
11402
2022-06-09T17:34:05Z
Vargenau
226
wikitext
text/x-wiki
[[Sa:A̱ka̱keang_mami_Naijeriya]]
[[Sa:Si̱tet A̱do]]
[[Sa:Naijeriya]]
6fk9spyqqun35fktv5505i9n2s2isys
Sa:A̱ka̱vwuo na̱ byia̱ á̱niet ma̱ ba̱t mami Si̱tet Ba̱rno
14
926
13941
11404
2022-06-09T17:33:48Z
Vargenau
226
wikitext
text/x-wiki
[[Sa:A̱kakeangtung a̱yaasi̱tet Naijeriya]]
[[Sa:A̱ca̱cet a̱ka̱keang Naijeriya]]
[[Sa:Naijeriya]]
8btz4w3e29m4jdur7yfmdpg45orsfjl
Sa:A̱ka̱vwuo na̱ byia̱ á̱niet ma̱ ba̱t mami Si̱tet Ka̱duna
14
927
11407
11406
2022-05-16T12:57:47Z
Jon Harald Søby
8
2 revisions imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:A̱ka̱vwuo na̱ byia̱ á̱niet ma̱ ba̱t mami Si̱tet Ka̱na̱u
14
928
13940
11409
2022-06-09T17:33:24Z
Vargenau
226
wikitext
text/x-wiki
[[Sa:Si̱tet Ka̱na̱u]]
[[Sa:Naijeriya]]
t0m4pehfyctdz34yi70zwdtbxcezlsj
Sa:A̱ka̱vwuo na̱ byia̱ á̱niet ma̱ ba̱t mami Si̱tet Kogi
14
929
13939
11411
2022-06-09T17:33:13Z
Vargenau
226
wikitext
text/x-wiki
[[Sa:Si̱tet_Kogi]]
[[Sa:Naijeriya]]
ejnows8athg68dax1f3nusgdv21ofye
Sa:A̱ka̱vwuo na̱ byia̱ á̱niet ma̱ ba̱t mami Si̱tet Legwot
14
930
13938
11415
2022-06-09T17:32:50Z
Vargenau
226
wikitext
text/x-wiki
[[Sa:A̱ca̱cet a̱ka̱keang Naijeriya]]
[[Sa:Naijeriya]]
km754j7wljz6ft1dsgfhyw01k9geaqc
Sa:A̱ka̱vwuo na̱ byia̱ á̱niet ma̱ ba̱t mami Si̱tet Nija
14
931
13937
11417
2022-06-09T17:32:41Z
Vargenau
226
wikitext
text/x-wiki
[[Sa:Si̱tet Nija]]
[[Sa:A̱ca̱cet a̱ka̱keang Naijeriya]]
pyys9f6xhglrn5avrcf4psodsg7bmaj
Sa:A̱ka̱vwuo na̱ byia̱ á̱niet ma̱ ba̱t mami Si̱tet Pi̱lato
14
932
13943
11420
2022-06-09T17:34:24Z
Vargenau
226
wikitext
text/x-wiki
== A̱ka̱fwuop nta ==
[[Sa:Naijeriya]]
o47s2v4govy2926krfukcvfewv6dhcc
Sa:A̱ka̱vwuo na̱ byia̱ á̱niet ma̱ ba̱t mami Si̱tet Ta̱raba
14
933
14024
11422
2022-06-13T09:00:10Z
Vargenau
226
wikitext
text/x-wiki
[[Sa:A̱ca̱cet a̱ka̱keang Naijeriya]]
[[Sa:Naijeriya]]
km754j7wljz6ft1dsgfhyw01k9geaqc
Sa:A̱khwot Á̱kwop A̱sa̱khwot Naijeriya
14
934
13013
13011
2022-05-29T17:48:10Z
Kambai Akau
15
wikitext
text/x-wiki
[[Category:A̱khwot Á̱kwop Naijeriya]]
5o68skmfprybmpz8soipk7s3t9z7jmb
Sa:A̱khwot A̱kwop Tswazwa
14
935
11426
11425
2022-05-16T12:57:48Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:A̱kworiya sa̱ncuri 15
14
936
11428
11427
2022-05-16T12:57:48Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:A̱lyoot a̱tyuba̱ng a̱vwuo
14
937
11430
11429
2022-05-16T12:57:48Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:A̱mpwot
14
938
11432
11431
2022-05-16T12:57:48Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:A̱paiwan
14
939
14510
11434
2022-06-13T12:12:43Z
Vargenau
226
wikitext
text/x-wiki
[[Sa:Taiwan]]
[[Sa:A̱kat a̱pyia̱]]
noh004extbke29oplugz9w20ple4th0
Sa:A̱siya
14
940
11436
11435
2022-05-16T12:57:49Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:A̱strelya
14
942
13972
11441
2022-06-09T19:50:28Z
Vargenau
226
wikitext
text/x-wiki
[[Sa:Bibyin_swanta]]
[[Sa:Bibyin_Osheniya]]
id1xux2jfahi62m8hruwc8c1cywg9mz
Sa:A̱ti̱tak nkyangcung
14
943
11443
11442
2022-05-16T12:57:49Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:A̱tyap
14
944
11445
11444
2022-05-16T12:57:49Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:A̱yaafim
14
945
11447
11446
2022-05-16T12:57:49Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:A̱yaafim 1988
14
946
11449
11448
2022-05-16T12:57:49Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:A̱yaafim 2021
14
947
13983
11451
2022-06-10T13:40:56Z
Vargenau
226
wikitext
text/x-wiki
[[Sa:A̱yaafim]]
bi90n92r879r03agiz2v93ek8tjf1r6
Sa:A̱yaafim Amazon Studios
14
948
13982
11453
2022-06-10T13:40:47Z
Vargenau
226
wikitext
text/x-wiki
[[Sa:A̱yaafim]]
bi90n92r879r03agiz2v93ek8tjf1r6
Sa:A̱yaafim Amerika
14
949
13981
11455
2022-06-10T13:40:30Z
Vargenau
226
wikitext
text/x-wiki
[[Sa:A̱yaafim]]
bi90n92r879r03agiz2v93ek8tjf1r6
Sa:A̱yaafim Paramount Pictures
14
950
13980
11457
2022-06-10T13:40:18Z
Vargenau
226
wikitext
text/x-wiki
[[Sa:A̱yaafim]]
bi90n92r879r03agiz2v93ek8tjf1r6
Sa:A̱yaafim a̱lyem-Shong
14
951
13979
11459
2022-06-10T13:40:05Z
Vargenau
226
wikitext
text/x-wiki
[[Sa:A̱yaafim]]
bi90n92r879r03agiz2v93ek8tjf1r6
Sa:A̱yaafim ma̱ng lyuut fim mbwak Barry W. Blaustein
14
952
13978
11461
2022-06-10T13:38:16Z
Vargenau
226
wikitext
text/x-wiki
[[Sa:A̱yaafim]]
bi90n92r879r03agiz2v93ek8tjf1r6
Sa:A̱yaafim ma̱ng lyuut fim mbwak David Sheffield
14
953
13977
11463
2022-06-10T13:37:53Z
Vargenau
226
wikitext
text/x-wiki
[[Sa:A̱yaafim]]
bi90n92r879r03agiz2v93ek8tjf1r6
Sa:A̱yaafim ma̱ng lyuut fim mbwak Kenya Barris
14
954
13976
11465
2022-06-10T13:32:43Z
Vargenau
226
wikitext
text/x-wiki
[[Sa:A̱yaafim]]
bi90n92r879r03agiz2v93ek8tjf1r6
Sa:A̱yaafim nang Craig Brewer ku khwat a̱son a̱ni
14
955
13975
11467
2022-06-10T13:32:27Z
Vargenau
226
wikitext
text/x-wiki
[[Sa:A̱yaafim]]
bi90n92r879r03agiz2v93ek8tjf1r6
Sa:A̱yaafim nang John Landis ku khwat a̱son a̱ni
14
956
11469
11468
2022-05-16T12:57:51Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:A̱yaafim nang á̱ ku jhyi mi̱ Afrika
14
957
13974
11471
2022-06-10T13:32:13Z
Vargenau
226
wikitext
text/x-wiki
[[Sa:A̱yaafim]]
bi90n92r879r03agiz2v93ek8tjf1r6
Sa:A̱yaafim nang á̱ ku mi̱ nta á̱zanson mat a̱gba̱nyiuk a̱mgba̱m swanta ZKOVIT-19 a̱ni
14
958
13973
11473
2022-06-10T13:32:02Z
Vargenau
226
wikitext
text/x-wiki
[[Sa:A̱yaafim]]
bi90n92r879r03agiz2v93ek8tjf1r6
Sa:A̱yaafim seket Amerika
14
959
14033
11475
2022-06-13T09:02:14Z
Vargenau
226
wikitext
text/x-wiki
[[Sa:A̱yaafim]]
bi90n92r879r03agiz2v93ek8tjf1r6
Sa:A̱yaafim tazwa tyok
14
960
14032
11477
2022-06-13T09:02:05Z
Vargenau
226
wikitext
text/x-wiki
[[Sa:A̱yaafim]]
bi90n92r879r03agiz2v93ek8tjf1r6
Sa:A̱yaafim tyei mai 1988
14
961
11479
11478
2022-05-16T12:57:51Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:A̱yaafim tyei mai 2021
14
962
14031
11481
2022-06-13T09:01:54Z
Vargenau
226
wikitext
text/x-wiki
[[Sa:A̱yaafim]]
bi90n92r879r03agiz2v93ek8tjf1r6
Sa:A̱yaafim tyei mai Afrika-Amerika
14
963
14030
11483
2022-06-13T09:01:47Z
Vargenau
226
wikitext
text/x-wiki
[[Sa:A̱yaafim]]
bi90n92r879r03agiz2v93ek8tjf1r6
Sa:A̱yaafim tyei mai Amerika
14
964
14029
11485
2022-06-13T09:01:23Z
Vargenau
226
wikitext
text/x-wiki
[[Sa:A̱yaafim]]
[[Sa:A̱yaafim Amerika]]
7rto6dxep1wyaao5zi4poc9irm0ygft
Sa:A̱yaafim á̱ ku jhyi ma̱ A̱gba̱ndang A̱keang New York
14
965
14028
11487
2022-06-13T09:01:14Z
Vargenau
226
wikitext
text/x-wiki
[[Sa:A̱yaafim]]
bi90n92r879r03agiz2v93ek8tjf1r6
Sa:A̱yaafim á̱ ku jhyi ma̱ a̱bubwuk a̱byin a̱di̱dam
14
966
14027
11489
2022-06-13T09:01:07Z
Vargenau
226
wikitext
text/x-wiki
[[Sa:A̱yaafim]]
bi90n92r879r03agiz2v93ek8tjf1r6
Sa:A̱yaafim á̱ ku jhyi mi̱ Queens, New York
14
967
14026
11491
2022-06-13T09:00:57Z
Vargenau
226
wikitext
text/x-wiki
[[Sa:A̱yaafim]]
bi90n92r879r03agiz2v93ek8tjf1r6
Sa:A̱yaafim á̱ ku maat mi̱ Ati̱lanta
14
968
14025
11493
2022-06-13T09:00:50Z
Vargenau
226
wikitext
text/x-wiki
[[Sa:A̱yaafim]]
bi90n92r879r03agiz2v93ek8tjf1r6
Sa:A̱yaafi̱ra̱una á̱nap
14
969
11495
11494
2022-05-16T12:57:52Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:A̱yaagwak lyen sains Kworiya
14
970
11498
11497
2022-05-16T12:57:53Z
Jon Harald Søby
8
2 revisions imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:A̱yaagwak lyen sains Nce A̱ka̱wa̱tyia̱ Kworiya
14
971
11501
11500
2022-05-16T12:57:53Z
Jon Harald Søby
8
2 revisions imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:A̱yaagwak lyen sains sa̱ncuri 15
14
972
11503
11502
2022-05-16T12:57:53Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:A̱yaagwak lyen á̱ta̱ngwat sa̱ncuri 15 Kworiya
14
973
11505
11504
2022-05-16T12:57:53Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:A̱yaakwak A̱son A̱byin Roshiya
14
974
11507
11506
2022-05-16T12:57:53Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:A̱yaalama a̱byin Naijeriya
14
975
11509
11508
2022-05-16T12:57:53Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:A̱yaama̱ntei ka̱u ghwughwu
14
976
11511
11510
2022-05-16T12:57:53Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:A̱yaama̱ntei lilyem ma̱ a̱di̱di̱t
14
977
11513
11512
2022-05-16T12:57:53Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:A̱yaama̱ntei tung á̱niet ndung Amerika
14
978
11515
11514
2022-05-16T12:57:54Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:A̱yaangam A̱sa̱khwot swanta
14
979
14063
11518
2022-06-13T09:21:30Z
Vargenau
226
wikitext
text/x-wiki
[[Sa:Nvam_a̱sa̱khwot_swanta]]
1bfrgs6j72lu2lcv2tw5xd2nha41hjm
Sa:A̱yaapi̱li̱keshyon A̱ka̱dak Meta
14
980
11520
11519
2022-05-16T12:57:54Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:A̱yaaprodok nang á̱ ku ghwut ndyo ma̱ a̱lyia̱ 2004
14
981
11522
11521
2022-05-16T12:57:54Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:A̱yaasavit vwuo vidyo a̱zalang
14
982
11524
11523
2022-05-16T12:57:54Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Sí̱tet Fam A̱ka̱wa̱tyia̱ Naijeriya
14
984
14046
12851
2022-06-13T09:16:06Z
Vargenau
226
wikitext
text/x-wiki
[[Sa:Sí̱tet_Naijeriya]]
[[Sa:Naijeriya]]
115z2bmlu4o2q6la26hfthanicq2nxg
Sa:Sí̱tet Fam A̱tak-A̱tak Naijeriya
14
985
15030
14041
2022-07-17T11:25:54Z
Kambai Akau
15
Kambai Akau shyei peji [[Sa:A̱yaasi̱tet Fam A̱tak-A̱tak Naijeriya]] nat [[Sa:Sí̱tet Fam A̱tak-A̱tak Naijeriya]]: Ku lan tyia̱ a̱ni.
wikitext
text/x-wiki
[[Sa:Sí̱tet Naijeriya]]
[[Sa:Naijeriya]]
d02plror4z5m7vtmu1vssdowkion0bh
Sa:Sí̱tet Fam A̱tak-A̱tyin Naijeriya
14
986
15038
14040
2022-07-17T11:32:11Z
Kambai Akau
15
Kambai Akau shyei peji [[Sa:A̱yaasi̱tet Fam A̱tak-A̱tyin Naijeriya]] nat [[Sa:Sí̱tet Fam A̱tak-A̱tyin Naijeriya]]: Ku lan tyia̱ a̱ni.
wikitext
text/x-wiki
[[Sa:Sí̱tet Naijeriya]]
[[Sa:Naijeriya]]
d02plror4z5m7vtmu1vssdowkion0bh
Sa:Sí̱tet Fam A̱tak-Jenshyung Naijeriya
14
987
15044
14039
2022-07-17T11:35:15Z
Kambai Akau
15
Kambai Akau shyei peji [[Sa:A̱yaasi̱tet Fam A̱tak-Jenshyung Naijeriya]] nat [[Sa:Sí̱tet Fam A̱tak-Jenshyung Naijeriya]]: Ku lan tyia̱ a̱ni.
wikitext
text/x-wiki
[[Sa:Sí̱tet Naijeriya]]
[[Sa:Naijeriya]]
d02plror4z5m7vtmu1vssdowkion0bh
Sa:Sí̱tet Fam A̱za-Jenshyung Naijeriya
14
988
15035
14038
2022-07-17T11:30:40Z
Kambai Akau
15
Kambai Akau shyei peji [[Sa:A̱yaasi̱tet Fam A̱za-Jenshyung Naijeriya]] nat [[Sa:Sí̱tet Fam A̱za-Jenshyung Naijeriya]]: Ku lan tyia̱ a̱ni.
wikitext
text/x-wiki
[[Sa:Sí̱tet Naijeriya]]
[[Sa:Naijeriya]]
d02plror4z5m7vtmu1vssdowkion0bh
Sa:A̱yaasi̱tet Muná̱pyia̱
14
989
11539
11538
2022-05-16T12:57:55Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Sí̱tet Naijeriya
14
990
14036
12824
2022-06-13T09:03:25Z
Vargenau
226
wikitext
text/x-wiki
[[Sa:Naijeriya]]
idc0lwg8nm2vap5j7uetonfs7d1oto3
Sa:A̱za̱za̱rak ntyok ma̱ a̱bubuk maat a̱di̱dam
14
991
14083
11543
2022-06-13T09:30:47Z
Vargenau
226
wikitext
text/x-wiki
[[Sa:A̱yaafim]]
bi90n92r879r03agiz2v93ek8tjf1r6
Sa:Bibyin Afrika
14
993
13727
11551
2022-06-06T16:10:41Z
Kambai Akau
15
wikitext
text/x-wiki
[[Category:Afrika]]
[[Category:Bibyin_swanta]]
0f3ufu9l652psb65hgnqe4x15m167xv
Sa:Bibyin Amerika
14
994
14094
11554
2022-06-13T09:35:12Z
Vargenau
226
wikitext
text/x-wiki
[[Sa:Bibyin_swanta]]
g7z05d1vu2ahz5yegecnd2vnwwc8in2
Sa:Bibyin Amerika A̱tak
14
996
14092
11562
2022-06-13T09:34:29Z
Vargenau
226
wikitext
text/x-wiki
[[Sa:Bibyin_swanta]]
[[Sa:Bibyin_Amerika]]
na0tlj4653bkloi085jk9ert3dctoo5
Sa:Bibyin Amerika A̱za
14
997
14091
11565
2022-06-13T09:34:18Z
Vargenau
226
wikitext
text/x-wiki
[[Sa:Bibyin_swanta]]
[[Sa:Bibyin_Amerika]]
na0tlj4653bkloi085jk9ert3dctoo5
Sa:Bibyin Amerika Lati̱n
14
998
14090
11568
2022-06-13T09:34:09Z
Vargenau
226
wikitext
text/x-wiki
[[Sa:Bibyin_swanta]]
[[Sa:Bibyin_Amerika]]
na0tlj4653bkloi085jk9ert3dctoo5
Sa:Bibyin A̱ka̱wa̱tyia̱ Afrika
14
999
14089
11571
2022-06-13T09:34:00Z
Vargenau
226
wikitext
text/x-wiki
[[Sa:Bibyin_Afrika]]
[[Sa:Bibyin_swanta]]
9yxklsnnoxwi3blkit5olgftnhefsz6
Sa:Bibyin A̱ka̱wa̱tyia̱ Yurop
14
1000
14088
11573
2022-06-13T09:33:51Z
Vargenau
226
wikitext
text/x-wiki
[[Sa:Bibyin_swanta]]
[[Sa:Bibyin_Yurop]]
pwesc0ysj4gksgatfgo5bxtjqr9olon
Sa:Bibyin A̱siya
14
1001
14087
11576
2022-06-13T09:33:28Z
Vargenau
226
wikitext
text/x-wiki
[[Sa:Bibyin_swanta]]
g7z05d1vu2ahz5yegecnd2vnwwc8in2
Sa:Bibyin A̱tak-A̱tyin A̱siya
14
1002
14086
11578
2022-06-13T09:33:18Z
Vargenau
226
wikitext
text/x-wiki
[[Sa:Bibyin_swanta]]
[[Sa:Bibyin_A̱siya]]
ct6nuwntkt7ay4indwtivgsfxv2cdi5
Sa:Bibyin A̱tak Afrika
14
1003
14104
11580
2022-06-13T09:39:12Z
Vargenau
226
wikitext
text/x-wiki
[[Sa:Bibyin_swanta]]
[[Sa:Bibyin_Afrika]]
fxvppdh5ok60070yx7kep9rq62z4wyp
Sa:Bibyin A̱tak A̱siya
14
1005
14101
11584
2022-06-13T09:36:48Z
Vargenau
226
wikitext
text/x-wiki
[[Sa:Bibyin_swanta]]
[[Sa:Bibyin_A̱siya]]
ct6nuwntkt7ay4indwtivgsfxv2cdi5
Sa:Bibyin A̱tyin Afrika
14
1006
14100
11588
2022-06-13T09:36:38Z
Vargenau
226
wikitext
text/x-wiki
[[Sa:Bibyin_Afrika]]
[[Sa:Bibyin_swanta]]
9yxklsnnoxwi3blkit5olgftnhefsz6
Sa:Bibyin A̱tyin A̱siya
14
1007
14099
11591
2022-06-13T09:36:30Z
Vargenau
226
wikitext
text/x-wiki
[[Sa:Bibyin_A̱siya]]
[[Sa:Bibyin_swanta]]
8zn8ysro8swvwv730kix9w8q0ml0ok1
Sa:Bibyin A̱tyin Yurop
14
1008
14098
11594
2022-06-13T09:36:22Z
Vargenau
226
wikitext
text/x-wiki
[[Sa:Bibyin_Yurop]]
[[Sa:Bibyin_swanta]]
8wkcxmpdt7mna4u2qbicxrumv8gwrqh
Sa:Bibyin A̱za Afrika
14
1009
14097
11597
2022-06-13T09:36:14Z
Vargenau
226
wikitext
text/x-wiki
[[Sa:Bibyin_Afrika]]
[[Sa:Bibyin_swanta]]
9yxklsnnoxwi3blkit5olgftnhefsz6
Sa:Bibyin A̱za A̱siya
14
1011
14095
11607
2022-06-13T09:35:47Z
Vargenau
226
wikitext
text/x-wiki
[[Sa:Bibyin_A̱siya]]
30ksrcoxl9qfz4g1z2d48dh10ywizbm
Sa:Bibyin Jenshyung Afrika
14
1012
14110
11610
2022-06-13T09:41:40Z
Vargenau
226
wikitext
text/x-wiki
[[Sa:Bibyin_swanta]]
[[Sa:Bibyin_Afrika]]
fxvppdh5ok60070yx7kep9rq62z4wyp
Sa:Bibyin Jenshyung A̱siya
14
1013
14109
11612
2022-06-13T09:41:32Z
Vargenau
226
wikitext
text/x-wiki
[[Sa:Bibyin_swanta]]
[[Sa:Bibyin_A̱siya]]
ct6nuwntkt7ay4indwtivgsfxv2cdi5
Sa:Bibyin Jenshyung Yurop
14
1014
14108
11615
2022-06-13T09:41:23Z
Vargenau
226
wikitext
text/x-wiki
[[Sa:Bibyin_Yurop]]
[[Sa:Bibyin_swanta]]
8wkcxmpdt7mna4u2qbicxrumv8gwrqh
Sa:Bibyin Karibi
14
1015
14107
11617
2022-06-13T09:41:12Z
Vargenau
226
wikitext
text/x-wiki
[[Sa:Bibyin_swanta]]
g7z05d1vu2ahz5yegecnd2vnwwc8in2
Sa:Bibyin Osheniya
14
1016
14106
11619
2022-06-13T09:41:04Z
Vargenau
226
wikitext
text/x-wiki
[[Sa:Bibyin_swanta]]
g7z05d1vu2ahz5yegecnd2vnwwc8in2
Sa:Bibyin Yurop
14
1017
14105
11622
2022-06-13T09:40:55Z
Vargenau
226
wikitext
text/x-wiki
[[Sa:Bibyin_swanta]]
g7z05d1vu2ahz5yegecnd2vnwwc8in2
Sa:Bibyin swanta
14
1018
11624
11623
2022-05-16T12:58:00Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Bubwom Naijeriya
14
1019
14111
11627
2022-06-13T09:42:16Z
Vargenau
226
wikitext
text/x-wiki
[[Sa:Bubwom bibyin Afrika]]
lhtqm7zyafas2bgl2qh2152avdt1pow
Sa:Bubwom a̱byin nang á̱ tsot ma̱ng F mejo
14
1020
11629
11628
2022-05-16T12:58:00Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Bubwom bibyin Afrika
14
1021
11631
11630
2022-05-16T12:58:00Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Burkina Faso
14
1022
14102
11633
2022-06-13T09:38:20Z
Vargenau
226
wikitext
text/x-wiki
[[Sa:Bibyin_swanta]]
[[Sa:Bibyin_Afrika]]
[[Sa:Bibyin_Jenshyung_Afrika]]
p033844s19cmb851npwau2h2r95ktxh
Sa:Bwoi mi̱ bwoi A̱helen
14
1023
11635
11634
2022-05-16T12:58:00Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Bwoi mi̱ bwoi Irak
14
1024
11637
11636
2022-05-16T12:58:00Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Bwoi mi̱ bwoi Jami̱ni
14
1025
11639
11638
2022-05-16T12:58:00Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Bwoi mi̱ bwoi Mesopotamiya
14
1026
11641
11640
2022-05-16T12:58:01Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Bwoi mi̱ bwoi sa̱ncuri 19
14
1027
11643
11642
2022-05-16T12:58:01Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Byin 1397
14
1028
11925
11646
2022-05-16T12:58:29Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Byin 1452
14
1029
11648
11647
2022-05-16T12:58:01Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Byin 1475
14
1030
11650
11649
2022-05-16T12:58:01Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Byin 1599
14
1031
11652
11651
2022-05-16T12:58:01Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Byin 1971
14
1032
11654
11653
2022-05-16T12:58:01Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Byin 1989
14
1033
11656
11655
2022-05-16T12:58:01Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Byin 2002
14
1034
11658
11657
2022-05-16T12:58:02Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Coming to America (nce a̱yaafim)
14
1035
14112
11660
2022-06-13T09:42:49Z
Vargenau
226
wikitext
text/x-wiki
[[Sa:A̱yaafim]]
bi90n92r879r03agiz2v93ek8tjf1r6
Sa:Coronaviridae
14
1036
11662
11661
2022-05-16T12:58:02Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Cwan
14
1037
11664
11663
2022-05-16T12:58:02Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Desmond Tutu
14
1038
11666
11665
2022-05-16T12:58:02Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Di̱mokrasi
14
1039
11668
11667
2022-05-16T12:58:02Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Facebook
14
1040
11670
11669
2022-05-16T12:58:02Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Fizik
14
1041
14115
11672
2022-06-13T09:43:47Z
Vargenau
226
wikitext
text/x-wiki
[[Sa:Sains]]
oht6fm1397x3gdb0fwq1vx8bamjiuev
Sa:Fi̱ransa
14
1042
11674
11673
2022-05-16T12:58:02Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Gbi̱ngban á̱niet
14
1043
11676
11675
2022-05-16T12:58:03Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Gumaat
14
1044
14114
11679
2022-06-13T09:43:28Z
Vargenau
226
wikitext
text/x-wiki
[[Sa:A̱mpwot]]
t4d101ob7z6c6t8vcso1am90dnyqkj3
Sa:Helat gbangbang
14
1045
11681
11680
2022-05-16T12:58:03Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Interlingue
14
1046
11683
11682
2022-05-16T12:58:03Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Isi̱rela
14
1047
14123
11685
2022-06-13T09:49:12Z
Vargenau
226
Blanked the page
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Jalinggo
14
1048
14122
11688
2022-06-13T09:48:50Z
Vargenau
226
wikitext
text/x-wiki
[[Sa:A̱kakeangtung a̱yaasi̱tet Naijeriya]]
[[Sa:A̱ka̱vwuo na̱ byia̱ á̱niet ma̱ ba̱t mami Si̱tet Ta̱raba]]
[[Sa:A̱ca̱cet a̱ka̱keang Naijeriya]]
[[Sa:Naijeriya]]
lbykqub2v9pcwt56imw2w5t1o9bl8g9
Sa:Jami̱ni
14
1049
11691
11690
2022-05-16T12:58:17Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Ja̱pan
14
1050
11693
11692
2022-05-16T12:58:17Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Jenshyung Afrika Fi̱ransa
14
1051
14121
11695
2022-06-13T09:47:04Z
Vargenau
226
wikitext
text/x-wiki
[[Sa:Bibyin_swanta]]
[[Sa:Bibyin_Afrika]]
[[Sa:Bibyin_Jenshyung_Afrika]]
p033844s19cmb851npwau2h2r95ktxh
Sa:Ka̱duna
14
1052
14119
14117
2022-06-13T09:45:32Z
Vargenau
226
wikitext
text/x-wiki
[[Sa:A̱kakeangtung a̱yaasi̱tet Naijeriya]]
[[Sa:A̱ka̱vwuo na̱ byia̱ á̱niet ma̱ ba̱t mami Si̱tet Pi̱lato]]
[[Sa:A̱ca̱cet a̱ka̱keang Naijeriya]]
[[Sa:Naijeriya]]
lau6i9mzrkp0wyci5l87b7ahc9zfrvn
Sa:Ka̱mpala (a̱keang)
14
1053
11701
11700
2022-05-16T12:58:18Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Ka̱na̱u
14
1054
14116
11703
2022-06-13T09:44:17Z
Vargenau
226
wikitext
text/x-wiki
[[Sa:Si̱tet Ka̱na̱u]]
[[Sa:Naijeriya]]
t0m4pehfyctdz34yi70zwdtbxcezlsj
Sa:Khaí
14
1055
11705
11704
2022-05-16T12:58:18Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Khwi
14
1056
11707
11706
2022-05-16T12:58:18Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Khwikristi
14
1057
14125
11709
2022-06-13T09:50:37Z
Vargenau
226
wikitext
text/x-wiki
[[Sa:Khwi]]
c2j5d8bjfjenm3kx8lsdkixvvtmtm5l
Sa:Ki̱liyopatra
14
1058
11711
11710
2022-05-16T12:58:18Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Kpaat mi̱ kpaat 1958 mami Naijeriya
14
1059
11713
11712
2022-05-16T12:58:18Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Kpaat mi̱ kpaat 1960 mami Naijeriya
14
1060
11715
11714
2022-05-16T12:58:18Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Kpaat mi̱ kpaat 2004 mami Massachusetts
14
1061
11717
11716
2022-05-16T12:58:19Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Kuburut A̱helen
14
1062
11719
11718
2022-05-16T12:58:19Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Kukwi mbwak zwan shuga
14
1063
11721
11720
2022-05-16T12:58:19Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Kuut (a̱tyin a̱ga̱fi̱p)
14
1064
11723
11722
2022-05-16T12:58:19Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Kwai Jang a̱si̱n Asan
14
1065
11725
11724
2022-05-16T12:58:19Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Kwi 1450
14
1066
11958
11728
2022-05-16T12:58:30Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Kwi 1519
14
1067
11730
11729
2022-05-16T12:58:19Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Kwi 1564
14
1068
11732
11731
2022-05-16T12:58:19Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Kwi 1660
14
1069
11734
11733
2022-05-16T12:58:19Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Kworiya A̱tak
14
1070
11736
11735
2022-05-16T12:58:19Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Kyanglilyiit Android (si̱stem nta̱m)
14
1071
11738
11737
2022-05-16T12:58:20Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Kyanglilyiit BlackBerry
14
1072
11740
11739
2022-05-16T12:58:20Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Kyanglilyiit IOS
14
1073
11742
11741
2022-05-16T12:58:20Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Kyanglilyiit Symbian
14
1074
11744
11743
2022-05-16T12:58:20Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:La̱kwoja
14
1075
14128
11746
2022-06-13T09:52:14Z
Vargenau
226
wikitext
text/x-wiki
[[Sa:Si̱tet_Kogi]]
[[Sa:Naijeriya]]
ejnows8athg68dax1f3nusgdv21ofye
Sa:Lilyem Afrika
14
1076
14127
11748
2022-06-13T09:52:05Z
Vargenau
226
wikitext
text/x-wiki
[[Sa:Lilyem_swanta]]
mfpcofr135ri5oi5bvdhnvx86cjc5ty
Sa:Lilyem Afrika Jenshyung
14
1077
14126
11750
2022-06-13T09:51:31Z
Vargenau
226
wikitext
text/x-wiki
[[Sa:Lilyem_swanta]]
[[Sa:Lilyem_Afrika]]
ptnt5gflr4b4h15bspun9edqz3sihbe
Sa:Lilyem A̱gba̱ndang Bi̱ri̱ti̱n
14
1078
14132
11752
2022-06-13T09:54:01Z
Vargenau
226
wikitext
text/x-wiki
[[Sa:Lilyem_swanta]]
[[Sa:Lilyem_Yurop]]
[[Sa:Lilyem_Yurop_Jenshyung]]
[[Sa:Lilyem Ndo–Yurop]]
56wzhql748y0mu69keeus70dw9m54v3
Sa:Lilyem A̱ka̱wa̱tyia̱ Naijeriya
14
1079
14131
11754
2022-06-13T09:53:48Z
Vargenau
226
wikitext
text/x-wiki
[[Sa:Lilyem_swanta]]
[[Sa:Lilyem_Afrika]]
[[Sa:Lilyem_Afrika_Jenshyung]]
[[Sa:Lilyem_Naijeriya]]
djo7kcuejfk8guij9tnjxml9pbu2va8
Sa:Lilyem A̱ka̱wa̱tyia̱ Pi̱lato
14
1080
14130
11759
2022-06-13T09:52:58Z
Vargenau
226
wikitext
text/x-wiki
[[Sa:Lilyem_swanta]]
[[Sa:Lilyem_Afrika]]
[[Sa:Lilyem_Afrika_Jenshyung]]
[[Sa:Lilyem_Naijeriya]]
[[Sa:Lilyem_A̱ka̱wa̱tyia̱_Naijeriya]]
[[Sa:Lilyem_Nija–Konggo]]
p21hcz0z4qrd6j9s1i8u509hxcvyy0s
Sa:Lilyem A̱siya
14
1081
14129
11761
2022-06-13T09:52:40Z
Vargenau
226
wikitext
text/x-wiki
[[Sa:Lilyem swanta]]
jqr8nmsefh4eqyau4fkl5tf7aegjm8k
Sa:Lilyem Binuwe–Konggo
14
1082
14137
11764
2022-06-13T09:55:44Z
Vargenau
226
wikitext
text/x-wiki
[[Sa:Lilyem_swanta]]
[[Sa:Lilyem_Afrika]]
[[Sa:Lilyem_Nija–Konggo]]
q6qhtlb3sz0hec56frhbnrvvsqo6qqh
Sa:Lilyem Formosa
14
1083
14136
11766
2022-06-13T09:55:23Z
Vargenau
226
wikitext
text/x-wiki
[[Sa:Lilyem Taiwan]]
[[Sa:Lilyem A̱siya]]
[[Sa:Lilyem swanta]]
rpn43uscxf3f7q0v27omyvhsa6u4u3b
Sa:Lilyem Moroko
14
1084
11768
11767
2022-05-16T12:58:21Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Lilyem Naijeriya
14
1085
14134
11771
2022-06-13T09:54:51Z
Vargenau
226
wikitext
text/x-wiki
[[Sa:Naijeriya]]
idc0lwg8nm2vap5j7uetonfs7d1oto3
Sa:Lilyem Ndo–Yurop
14
1086
14133
11773
2022-06-13T09:54:39Z
Vargenau
226
wikitext
text/x-wiki
[[Sa:Lilyem_swanta]]
mfpcofr135ri5oi5bvdhnvx86cjc5ty
Sa:Lilyem Nija–Konggo
14
1088
14135
11778
2022-06-13T09:55:09Z
Vargenau
226
wikitext
text/x-wiki
[[Sa:Lilyem_swanta]]
[[Sa:Lilyem_Afrika]]
[[Sa:Lilyem_Afrika_Jenshyung]]
[[Sa:Lilyem_Naijeriya]]
[[Sa:Lilyem_A̱ka̱wa̱tyia̱_Naijeriya]]
c7x6o4sfqlq0htjw17q1e259njk4ygo
Sa:Lilyem Pi̱lato
14
1089
11780
11779
2022-05-16T12:58:22Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Lilyem Taiwan
14
1090
14142
11782
2022-06-13T09:57:43Z
Vargenau
226
wikitext
text/x-wiki
[[Sa:Lilyem A̱siya]]
[[Sa:Lilyem swanta]]
rnot25w8zu1p08xhcs824kxoadfnjqe
Sa:Lilyem Yurop
14
1091
14141
11784
2022-06-13T09:57:26Z
Vargenau
226
wikitext
text/x-wiki
[[Sa:Lilyem_swanta]]
mfpcofr135ri5oi5bvdhnvx86cjc5ty
Sa:Lilyem Yurop Jenshyung
14
1092
14140
11786
2022-06-13T09:57:18Z
Vargenau
226
wikitext
text/x-wiki
[[Sa:Lilyem_swanta]]
[[Sa:Lilyem_Yurop]]
7nikep3js6h0ru17z3lpubtaur6pt9a
Sa:Lilyem a̱bwonu a̱khwu
14
1093
14139
11788
2022-06-13T09:57:08Z
Vargenau
226
wikitext
text/x-wiki
[[Sa:Lilyem_swanta]]
mfpcofr135ri5oi5bvdhnvx86cjc5ty
Sa:Lilyem beang swanta
14
1094
11790
11789
2022-05-16T12:58:22Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Lilyem nang á̱ ku nok a̱ni
14
1095
11792
11791
2022-05-16T12:58:22Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Lilyem nang á̱ ku nok á̱ si̱ neap a̱son mi̱ nce ndyia̱ 1920 na
14
1096
11794
11793
2022-05-16T12:58:22Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Lilyem swanta
14
1097
11796
11795
2022-05-16T12:58:22Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Lis susot kwai-nfwuo-á̱niet mami Afrika
14
1098
11798
11797
2022-05-16T12:58:23Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Lyulyoot a̱ca̱cet a̱ka̱keang di̱n vak shi á̱niet
14
1099
11800
11799
2022-05-16T12:58:23Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Lyulyoot a̱ca̱cet a̱ka̱keang mi̱ Jami̱ni
14
1100
14238
11802
2022-06-13T10:10:51Z
Vargenau
226
wikitext
text/x-wiki
[[Sa:Jami̱ni]]
cr55odj4gdx95ty57q66drclats86hq
Sa:Mali
14
1101
14002
11804
2022-06-10T17:18:18Z
Kambai Akau
15
wikitext
text/x-wiki
[[Category:Bibyin_swanta]]
[[Category:Bibyin_Afrika]]
[[Category:Bibyin_Jenshyung_Afrika]]
evtmrunvetkbuzw7q5a5xorq5cmnibr
Sa:Naijeriya
14
1102
13790
13789
2022-06-07T12:09:45Z
Kambai Akau
15
wikitext
text/x-wiki
[[Category:Bibyin Jenshyung Afrika]]
[[Category:Bibyin_Afrika]]
[[Category:Bibyin_swanta]]
6kfoslyzvgxlgi1ofpuhr1q2e6a29go
Sa:Ndi̱m-a̱byin swanta
14
1103
11808
11807
2022-05-16T12:58:23Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Ndyia̱
14
1104
11810
11809
2022-05-16T12:58:23Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Neap a̱son 1922
14
1105
11812
11811
2022-05-16T12:58:23Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Nghwughwu A̱gwomna̱ti
14
1106
11814
11813
2022-05-16T12:58:23Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Nja̱t
14
1107
14118
11817
2022-06-13T09:45:17Z
Vargenau
226
wikitext
text/x-wiki
[[Sa:A̱kakeangtung a̱yaasi̱tet Naijeriya]]
[[Sa:A̱ka̱vwuo na̱ byia̱ á̱niet ma̱ ba̱t mami Si̱tet Pi̱lato]]
[[Sa:A̱ca̱cet a̱ka̱keang Naijeriya]]
[[Sa:Naijeriya]]
lau6i9mzrkp0wyci5l87b7ahc9zfrvn
Sa:Nkhang shyicet
14
1108
11819
11818
2022-05-16T12:58:24Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Nkyai A̱sa̱khwot swanta
14
1109
14235
11822
2022-06-13T10:10:19Z
Vargenau
226
wikitext
text/x-wiki
[[Sa:Nvam_a̱sa̱khwot_swanta]]
1bfrgs6j72lu2lcv2tw5xd2nha41hjm
Sa:Nkyang ya kyayak
14
1110
11824
11823
2022-05-16T12:58:24Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Nkyangcung
14
1111
11826
11825
2022-05-16T12:58:24Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Nkyangcung ma̱to
14
1112
11828
11827
2022-05-16T12:58:24Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Nkyangcung na̱ byia̱ a̱ti̱tak
14
1113
11830
11829
2022-05-16T12:58:24Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Nnwap Afrika
14
1114
14258
11833
2022-06-13T10:12:44Z
Vargenau
226
wikitext
text/x-wiki
[[Sa:Nnwap_swanta]]
[[Sa:Nnwap mi̱ Naijeriya]]
88ec020jctybcbs8zwuf828im3fcfsb
Sa:Nnwap A̱siya
14
1115
14257
11835
2022-06-13T10:12:36Z
Vargenau
226
wikitext
text/x-wiki
[[Sa:Nnwap_swanta]]
r0ge1s286hl2pfqqdyxmjyxg9nih2p2
Sa:Nnwap mi̱ Naijeriya
14
1116
14255
11838
2022-06-13T10:12:28Z
Vargenau
226
wikitext
text/x-wiki
[[Sa:Nnwap_swanta]]
[[Sa:Nnwap_Afrika]]
7i343rf0p35w5xuwhi5gkixsnjkj2x0
Sa:Nnwap swanta
14
1117
11840
11839
2022-05-16T12:58:25Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Nvam-a̱byin swanta
14
1118
11842
11841
2022-05-16T12:58:25Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Nvam a̱sa̱khwot swanta
14
1119
11844
11843
2022-05-16T12:58:25Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Pedaliaceae
14
1120
11846
11845
2022-05-16T12:58:25Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Senegat
14
1121
13836
13835
2022-06-07T18:26:20Z
Kambai Akau
15
Kambai Akau shyei peji [[Sa:Senegal]] nat [[Sa:Senegat]]
wikitext
text/x-wiki
[[Category:Bibyin_swanta]]
[[Category:Bibyin_Afrika]]
[[Category:Bibyin_Jenshyung_Afrika]]
evtmrunvetkbuzw7q5a5xorq5cmnibr
Sa:Sezong a̱gba̱ndang wu
14
1122
11850
11849
2022-05-16T12:58:25Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Shwit
14
1123
14269
11853
2022-06-13T10:13:54Z
Vargenau
226
wikitext
text/x-wiki
[[Sa:Bibyin_swanta]]
[[Sa:Bibyin_Yurop]]
[[Sa:Bibyin_A̱ka̱wa̱tyia̱_Yurop]]
i9g5iflcycs4irqbemjubejwi9vmlet
Sa:Shyei nkyang
14
1124
11855
11854
2022-05-16T12:58:25Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Si̱tet A̱do
14
1125
11857
11856
2022-05-16T12:58:25Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Si̱tet Ka̱duna
14
1126
11860
11859
2022-05-16T12:58:26Z
Jon Harald Søby
8
2 revisions imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Si̱tet Ka̱na̱u
14
1127
14268
11863
2022-06-13T10:13:35Z
Vargenau
226
wikitext
text/x-wiki
[[Sa:Naijeriya]]
idc0lwg8nm2vap5j7uetonfs7d1oto3
Sa:Si̱tet Kogi
14
1128
14266
11865
2022-06-13T10:13:27Z
Vargenau
226
wikitext
text/x-wiki
[[Sa:Naijeriya]]
idc0lwg8nm2vap5j7uetonfs7d1oto3
Sa:Si̱tet Nija
14
1129
14047
14045
2022-06-13T09:16:19Z
Vargenau
226
wikitext
text/x-wiki
[[Sa:Sí̱tet Naijeriya]]
[[Sa:Sí̱tet Fam A̱ka̱wa̱tyia̱ Naijeriya]]
[[Sa:Naijeriya]]
cabipw8prfkdgbs7bcf6i76kb1t1cu8
Sa:Sot-nta̱m Gbi̱ngban Swanta
14
1131
11875
11874
2022-05-16T12:58:26Z
Jon Harald Søby
8
2 revisions imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Squid Game
14
1132
11877
11876
2022-05-16T12:58:26Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Susot a̱gwomna̱ti mali Naijeriya
14
1133
11879
11878
2022-05-16T12:58:27Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Susot a̱gwomna̱ti mali Si̱tet Ka̱duna
14
1134
13068
13065
2022-05-29T19:00:09Z
Kambai Akau
15
Kambai Akau shyei peji [[Sot:Susot a̱gwomna̱ti mali mami A̱si̱tet Ka̱duna]] nat [[Sot:Susot a̱gwomna̱ti mali Si̱tet Ka̱duna]]: Ku lan tyia̱ a̱ni.
wikitext
text/x-wiki
[[Category:Susot a̱gwomna̱ti mali]]
[[Category:Susot a̱gwomna̱ti mali Naijeriya]]
q16n0r5fe9y0cv6iw6y6veji0slw0ak
Sa:Taada fam jenshyung swanta
14
1135
11883
11882
2022-05-16T12:58:27Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Taada mmanfang
14
1136
11885
11884
2022-05-16T12:58:27Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Taiwan
14
1137
14327
11887
2022-06-13T10:20:19Z
Vargenau
226
wikitext
text/x-wiki
[[Sa:A̱siya]]
qwe8karyifx01ttb0hi2qjk4l0k6qsl
Sa:Tsaaí tswam
14
1138
11889
11888
2022-05-16T12:58:27Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Tswá ma̱ng zwá nang á̱ maai ya a̱ni
14
1139
11891
11890
2022-05-16T12:58:27Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Tung nzwa Naijeriya
14
1140
11894
11893
2022-05-16T12:58:27Z
Jon Harald Søby
8
2 revisions imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Turkiya
14
1141
11896
11895
2022-05-16T12:58:27Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Vladimir Putin
14
1142
11899
11898
2022-05-16T12:58:28Z
Jon Harald Søby
8
2 revisions imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Wuhan
14
1143
11901
11900
2022-05-16T12:58:28Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Yesu
14
1144
14340
11903
2022-06-13T10:21:33Z
Vargenau
226
wikitext
text/x-wiki
[[Sa:Khwikristi]]
fnzv48jkne34l0dv9lehevus9jzfsvr
Sa:Yet A̱tyobyin
14
1145
11905
11904
2022-05-16T12:58:28Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:ZKOVIT-19
14
1146
14335
11910
2022-06-13T10:21:13Z
Vargenau
226
wikitext
text/x-wiki
[[Sa:Zwán ji̱ byia̱ a̱meang ma̱ng Koronavirut]]
jpx3hm0k5u8kzzkc1yh1tpla5rxfuvq
Sa:Zi̱lan A̱fai
14
1147
11912
11911
2022-05-16T12:58:28Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Zunosit
14
1148
11914
11913
2022-05-16T12:58:28Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Zwan nyám
14
1149
11916
11915
2022-05-16T12:58:28Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Zwá a̱myia̱
14
1150
11918
11917
2022-05-16T12:58:28Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Zwán ji̱ byia̱ a̱meang Koronavirut
14
1151
11920
11919
2022-05-16T12:58:28Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
#REDIRECT [[:Category:Zwán ji̱ byia̱ a̱meang ma̱ng Koronavirut]]
te6e59fa1twyeavbg1qwy0p1wwlj4x2
Sa:Zwán ji̱ byia̱ a̱meang ma̱ng Koronavirut
14
1152
14350
11923
2022-06-13T10:22:42Z
Vargenau
226
wikitext
text/x-wiki
[[Sa:ZKOVIT-19]]
po6acms0rzyiqd1astxo53y6q0m35iw
Sa:Byin 1931
14
1153
11927
11926
2022-05-16T12:58:29Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Byin 1937
14
1154
11929
11928
2022-05-16T12:58:29Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Byin 1943
14
1155
11931
11930
2022-05-16T12:58:29Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Byin 1949
14
1156
11933
11932
2022-05-16T12:58:29Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Byin 1950
14
1157
11935
11934
2022-05-16T12:58:29Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Byin 1952
14
1158
11938
11937
2022-05-16T12:58:29Z
Jon Harald Søby
8
2 revisions imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Byin 1954
14
1159
11940
11939
2022-05-16T12:58:29Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Byin 1957
14
1160
11942
11941
2022-05-16T12:58:29Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Byin 1974
14
1161
11944
11943
2022-05-16T12:58:30Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Byin 1984
14
1162
11946
11945
2022-05-16T12:58:30Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Byin 1990
14
1163
11948
11947
2022-05-16T12:58:30Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Byin 1991
14
1164
11950
11949
2022-05-16T12:58:30Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Byin 1992
14
1165
11952
11951
2022-05-16T12:58:30Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Byin 2003
14
1166
11954
11953
2022-05-16T12:58:30Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Byin sa̱ncuri 14
14
1167
11956
11955
2022-05-16T12:58:30Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Kwi 1902
14
1168
11960
11959
2022-05-16T12:58:30Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Kwi 1987
14
1169
11962
11961
2022-05-16T12:58:30Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Kwi 2005
14
1170
11964
11963
2022-05-16T12:58:31Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Kwi 2016
14
1171
11966
11965
2022-05-16T12:58:31Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Kwi 2021
14
1172
11968
11967
2022-05-16T12:58:31Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Á̱ nwai lyen a̱lyia̱ kwi
14
1173
11970
11969
2022-05-16T12:58:31Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Á̱ nwai lyen a̱lyia̱ mbyin
14
1174
11972
11971
2022-05-16T12:58:31Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Á̱gwam Kworiya sa̱ncuri 15 ba
14
1175
11974
11973
2022-05-16T12:58:31Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Á̱na̱nwuai seang nkhang
14
1176
11976
11975
2022-05-16T12:58:31Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Á̱niet Si̱tet Ka̱duna
14
1177
11979
11978
2022-05-16T12:58:31Z
Jon Harald Søby
8
2 revisions imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Á̱niet ba̱ tsa nvak lyuut
14
1179
11983
11982
2022-05-16T12:58:32Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Á̱niet lilyem Nija–Konggo
14
1180
14397
11985
2022-06-13T10:27:31Z
Vargenau
226
wikitext
text/x-wiki
[[Sa:Lilyem_Afrika]]
kzfunos9bz4dnu8ewjmo69gpozgm7di
Sa:Á̱niet nswuan
14
1181
11987
11986
2022-05-16T12:58:32Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Á̱nietkhwibuda Kworiya
14
1182
11989
11988
2022-05-16T12:58:32Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Á̱nietkhwikunfu Kworiya
14
1183
11991
11990
2022-05-16T12:58:32Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Á̱nietmaat fim á̱sam A̱kworiya A̱tak
14
1184
14393
11994
2022-06-13T10:27:20Z
Vargenau
226
wikitext
text/x-wiki
[[Sa:Kworiya A̱tak]]
ak0z094efjybjxm5nliwvwph7oc5d0w
Sa:Á̱nietmaat á̱sam A̱kworiya A̱tak
14
1185
14391
11996
2022-06-13T10:27:12Z
Vargenau
226
wikitext
text/x-wiki
[[Sa:Kworiya A̱tak]]
ak0z094efjybjxm5nliwvwph7oc5d0w
Sa:Á̱nietmaat á̱sam neet Seoul
14
1186
14388
11998
2022-06-13T10:27:04Z
Vargenau
226
wikitext
text/x-wiki
[[Sa:Kworiya A̱tak]]
ak0z094efjybjxm5nliwvwph7oc5d0w
Sa:Á̱nietmatnkyang Kworiya
14
1187
12000
11999
2022-05-16T12:58:32Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Á̱nietnyia̱ nghwughwu ma̱ng á̱nietlyen ghwang a̱ka̱sa
14
1188
14387
12002
2022-06-13T10:26:56Z
Vargenau
226
wikitext
text/x-wiki
[[Sa:Nkhang shyicet]]
8xquyl69yhfi0p4yl38iipy3f1o9lp4
Sa:Á̱tat-a̱ghyi lyen lilyem neet Kworiya
14
1189
12004
12003
2022-05-16T12:58:33Z
Jon Harald Søby
8
1 revision imported
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Mmam sa̱t
14
1190
13565
12006
2022-06-01T17:48:23Z
Kambai Akau
15
Kambai Akau shyei peji [[Sa:Á̱tuk mmam sa̱t]] nat [[Sa:Mmam sa̱t]]: Ku lan tyia̱ a̱ni.
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
A̱tsak wat
0
1191
14495
12008
2022-06-13T10:48:12Z
Vargenau
226
Changed redirect target from [[A̱tsak wat hu]] to [[A̱tsak Wat Wu]]
wikitext
text/x-wiki
#REDIRECT [[A̱tsak Wat Wu]]
4kavx6k0zlmlwxuztvyivtx5owfyc90
Wukipedia:A̱na̱nwuai sot-á̱niet
4
1199
16067
15907
2022-08-18T20:42:36Z
Kambai Akau
15
The second "-a" in "Wukipedia" makes it a question. The "-a" is attached to the last word in some cases, like this for e.g., but could still be correct as "...Wukipedia a?", rather than "...Wukipediaa?"
wikitext
text/x-wiki
__NOTOC__
__NEWSECTIONLINK__
{{Ka̱la̱nda}}
[[Fail:Wiki puzzle gold.png|64px|Wiki puzzle|right]]
'''Ma̱aba̱n/tyebaa ang ma̱ng bai A̱na̱nwuai sot-á̱niet ka!''' Wat huni tyai nta̱m nang zi̱ nyia̱ a̱ni ma̱ng nkhang tazwa Wukipedia nTyap hu. A yet a̱niet a̱fai wa mi̱ Wukipediaa? Da̱ nwuan ''[[w:en:Wikipedia:Contributing to Wikipedia|vak mbeang nkyang di̱ wat Wukipedia]]'' (di̱n Shong) mat kuzang kyang ku myim a lyen a̱ni a ka ntsa jhyuk hu.
Mi̱ di̱ yong huni, '''[[Wat_khwo:Statistics|a̱yaati̱kut {{NUMBEROFARTICLES}}]]''' bya shyia̱ wuki huni.
<br clear="all"></br>
----
* '''kcg:''' Ka̱nang a cat a shyia̱ tyiang a̱toot shi [[m:bot|tswambishyi]] ji a lyip di̱ wat huni. Wuki huni nyian ta̱m ma̱ng [[m:bot policy|standard bot policy]] huhwa, a̱wot ku tyei [[m:bot policy#Global_bots|tswámbishyi swanta]] dyem bah, da̱ a̱kwonu a̱kya, ku ni̱ nnwuak [[m:bot policy#Automatic_approval|ntangka̱i tswámbishyi ghyáng a̱ka̱wat nyian nta̱m ma̱sa̱t kiki]]. Tswámbishyi jhyang ji̱ tak kyangcat mba hu a̱tatak, a̱wot ji̱ [[m:Steward requests/Bot status|cat shyia̱ a̱wat]] mbwak a̱khwo-wuki ka̱ a̱ghyang a̱niet byia̱ a̱fa a̱feang tazwa nhu bah.
* '''en:''' Requests for the [[m:bot|bot]] flag should be made on this page. This wiki uses the [[m:bot policy|standard bot policy]], and allows [[m:bot policy#Global_bots|global bots]] and [[m:bot policy#Automatic_approval|automatic approval of certain types of bots]]. Other bots should apply below, and then [[m:Steward requests/Bot status|request access]] from a steward if there is no objection.
==Cat cuk a̱kwak a̱son/Administratorship request==
Voting is over. Kambai Akau has been elected administrator. You can request admin permissions in Meta. --[[A̱tyunta̱m:LisafBia6531|LisafBia6531]] ([[A̱lyiat a̱tyunta̱m:LisafBia6531|a̱lyiat]]) 10:39, 13 Zwat A̱natat 2022 (WAT)
----
===[[User:Kambai Akau|Kambai Akau]]===
: '''kcg: Cat Cuk A̱kwak A̱son''': N byiat nzi̱t a̱mgba̱m a̱mali kani. Á̱ ngyei nung Kambai A̱ka̱u. N ku tsa nta̱m njhyuk nkyang mi̱ Wukipedia nShong ma̱ a̱lyia̱ 2016. A̱wot di̱n jen a̱ja, Wukipedia nTyap hu ka̱n shyia̱ bah. N si̱ ba̱ tak kyang cat nung hu a̱zaghyi Sot A̱lyem Wukimedia ji ma̱ a̱tuk mam 3 Zwat Swak ma̱ng Sweang 2020 mat ji̱ ghwon Tyap ji ji̱ shyia̱ Wukipedia a̱pyia̱ nji hu, a̱wot dundung ma̱ng á̱kpa̱ndang ta̱m nung ba - [[User:Zbobai|Zwandien Bobai]] ma̱ng [[User:Steve Kally|Stephen Kalad Jonathan]], a̱tyubeang sot nzi̱t wu - [[User:Amire80|Amir Aharoni]], ma̱ng á̱nietjhyuk ba̱ ntung bai a̱ma̱lyim a̱ni nang n si̱ mi̱n ngyei lyulyoot mba hu a̱nyanyin a̱ni, zi̱ si̱ nyia̱ ta̱m ba̱t ku si̱ tat nzi̱t shyia̱ Wukipedia nzi̱t hu - Wukipedia nTyap hu. Mi̱ di̱ shim nyin hu, n cat n shyia̱ a̱wat yet a̱kwak a̱son mi̱ Wukipedia nTyap hu. Ka̱ a shim ku a shim bah ku a cat yong tsi̱tsak, tak cat ang hu ma̱ng jat ang ji a̱tafa lyuut cat shim huni ma̱sa̱kut. N gwai ba̱t.
: '''en: Administratorship Request''': Greetings to us all in this house. My name is Kambai Akau. I began editing on the English Wikipedia in 2016. But as of then, there was no Tyap Wikipedia. I then forwarded my request to the Wikimedia Language Committee to allow Tyap get its own Wikipedia on 3 December 2020, which together with my colleagues - [[User:Zbobai|Zwandien Bobai]] and [[User:Steve Kally|Stephen Kalad Jonathan]], our community helper - [[User:Amire80|Amir Aharoni]], and editors who came afterwards whom I cannot name one by one, all worked to attain the status of gaining our own Wikipedia - the Tyap Wikipedia. With your agreement, I want to be an administrator in the Tyap Wikipedia. If you consent or don't consent or wish to remain neutral, please indicate your decision with your reason below this request. Thank you indeed. [[A̱tyunta̱m:Kambai Akau|Kambai Akau]] ([[A̱lyiat a̱tyunta̱m:Kambai Akau|a̱lyiat]]) 23:17, 4 Zwat A̱taa 2022 (WAT)
==== (+) Li̱n a̱ma/Support ====
I support Levi Kambai's aspiration for the adminship. He has done enough in the Tyap Wikipedia team and community. His love for the development of Tyap Language is laudable. Therefore, I endorse his candidacy. [[A̱tyunta̱m:Zbobai|Zbobai]] ([[A̱lyiat a̱tyunta̱m:Zbobai|a̱lyiat]]) 22:18, 5 Zwat A̱taa 2022 (WAT)
*Support --[[A̱tyunta̱m:Adehertogh|Adehertogh]] ([[A̱lyiat a̱tyunta̱m:Adehertogh|a̱lyiat]]) 09:53, 11 Zwat A̱taa 2022 (WAT)
*:N gwai! (Thanks!) [[A̱tyunta̱m:Kambai Akau|Kambai Akau]] ([[A̱lyiat a̱tyunta̱m:Kambai Akau|a̱lyiat]]) 23:19, 16 Zwat A̱natat 2022 (WAT)
*Support [[A̱tyunta̱m:LisafBia6531|LisafBia6531]] ([[A̱lyiat a̱tyunta̱m:LisafBia6531|a̱lyiat]]) 22:36, 13 Zwat A̱taa 2022 (WAT)
*:N gwai! (Thanks!) [[A̱tyunta̱m:Kambai Akau|Kambai Akau]] ([[A̱lyiat a̱tyunta̱m:Kambai Akau|a̱lyiat]]) 23:19, 16 Zwat A̱natat 2022 (WAT)
* I strongly support Levi to be the the admin of this community. [[A̱tyunta̱m:Steve Kally|Steve Kally]] ([[A̱lyiat a̱tyunta̱m:Steve Kally|a̱lyiat]]) 18:48, 29 Zwat A̱taa 2022 (WAT)
*:N gwai! (Thanks!) [[A̱tyunta̱m:Kambai Akau|Kambai Akau]] ([[A̱lyiat a̱tyunta̱m:Kambai Akau|a̱lyiat]]) 23:19, 16 Zwat A̱natat 2022 (WAT)
==== (-) Nyia̱ fi̱p/Oppose ====
==== (0) Yong tsi̱tsak/Neutral ====
== Bot policy proposal ==
{{int:hello}}
To facilitate [[m:Special:MyLanguage/Stewards|steward]] granting of bot access, I suggest implementing the [[m:Special:MyLanguage/Bot policy|standard bot policy]] on this wiki. In particular, this policy allows stewards to automatically flag known interlanguage linking bots (if this page says that is acceptable). The policy also enables [[m:Bot policy#Global_bots|global bots]] on this wiki (if this page says that is acceptable), which are trusted bots that will be given bot access on every wiki that allows global bots.
This policy makes bot access requesting much easier for local users, operators, and stewards. To implement it we only need to create a redirect to this page (or to the dedicated page the community uses to handle bot approvals) from [[Project:Bot policy]], and add a line at the top noting that it is used here. Please read the text at [[m:Bot policy]] before commenting. If you object, please say so; I hope to implement it soon if there is no objection, since it is particularly written to streamline bot requests on wikis with little or no community interested in bot access requests.
{{int:thank-you}}
--[[A̱tyunta̱m:MarcoAurelio|MarcoAurelio]] ([[A̱lyiat a̱tyunta̱m:MarcoAurelio|a̱lyiat]]) 11:23, 14 Zwat A̱taa 2022 (WAT)
:Greetings [[A̱tyunta̱m:MarcoAurelio|MarcoAurelio]]. On my part, and I believe, the rest of the translators in the Tyap wiki, there is no objection. Please go ahead, and thanks! [[A̱tyunta̱m:Kambai Akau|Kambai Akau]] ([[A̱lyiat a̱tyunta̱m:Kambai Akau|a̱lyiat]]) 12:29, 17 Zwat A̱taa 2022 (WAT)
::Hello @[[A̱tyunta̱m:Kambai Akau|Kambai Akau]]. I went ahead and implemented it by [[Special:Diff/14621|redirecting]] [[Project:Bot policy]] to this page. I'll add a note on top of this page as well indicating that this project uses the Meta global bot policy. If in the future you want to discuss bot requests in a different page, feel free to update [[Project:Bot policy]] pointing it to the relevant bot request page. Best regards, --[[A̱tyunta̱m:MarcoAurelio|MarcoAurelio]] ([[A̱lyiat a̱tyunta̱m:MarcoAurelio|a̱lyiat]]) 11:05, 29 Zwat A̱taa 2022 (WAT)
:::[[A̱tyunta̱m:MarcoAurelio|MarcoAurelio]] -- Okay, no problems. Regards, [[A̱tyunta̱m:Kambai Akau|Kambai Akau]] ([[A̱lyiat a̱tyunta̱m:Kambai Akau|a̱lyiat]]) 14:18, 29 Zwat A̱taa 2022 (WAT)
== Adminship Request (LisafBia6531) ==
Hello, I'm LisafBia6531, requesting a temporary admin to further assist with the operation of this wiki. I hope you will accept my request. Thanks. [[A̱tyunta̱m:LisafBia6531|LisafBia6531]] ([[A̱lyiat a̱tyunta̱m:LisafBia6531|a̱lyiat]]) 11:04, 12 Zwat A̱ni̱nai 2022 (WAT)
==== (+) Li̱n a̱ma/Support ====
'''Support''' -- I support [[A̱tyunta̱m:LisafBia6531|LisafBia6531]]'s adminship bid. He is doing a lot for this wiki already. [[A̱tyunta̱m:Kambai Akau|Kambai Akau]] ([[A̱lyiat a̱tyunta̱m:Kambai Akau|a̱lyiat]]) 11:37, 12 Zwat A̱ni̱nai 2022 (WAT)
==== (-) Nyia̱ fi̱p/Oppose ====
'''Oppose''' Apparently, you do not know the local language, which would make the stuff to be complicated. Also, the local language seems incompatible with your native language, Turkish. --[[A̱tyunta̱m:Victor Trevor|Victor Trevor]] ([[A̱lyiat a̱tyunta̱m:Victor Trevor|a̱lyiat]]) 13:51, 12 Zwat A̱ni̱nai 2022 (WAT)
: [[User:Victor Trevor|Victor Trevor]], I guess no one knows the language but [[User:Kambai Akau|Kambai Akau.]] [[A̱tyunta̱m:LisafBia6531|LisafBia6531]] ([[A̱lyiat a̱tyunta̱m:LisafBia6531|a̱lyiat]]) 13:53, 12 Zwat A̱ni̱nai 2022 (WAT)
::I appreciate Kambai Akau for taking responsibility. It is great for a new project that there is an administrator who knows the local language. But, the answer [about your adminship] is still no. Thanks for your contributions. --[[A̱tyunta̱m:Victor Trevor|Victor Trevor]] ([[A̱lyiat a̱tyunta̱m:Victor Trevor|a̱lyiat]]) 14:02, 12 Zwat A̱ni̱nai 2022 (WAT)
==== (0) Yong tsi̱tsak/Neutral ====
k9dp3d0z7qtcrc1fob6ph7mnxyqejzu
Ta̱mpi̱let:A̱ka̱keang swanta
10
1201
13966
13204
2022-06-09T19:11:26Z
Kambai Akau
15
wikitext
text/x-wiki
<br clear=all><div class="center">
{| id="toc" style="margin: 0 2em 0 2em;"
! style="background:#ccccff" align="center" width="100%" colspan="2" | [[:Category:A̱ka̱keang swanta|A̱ka̱keang swanta]]
|-
| align="center" style="font-size: 90%;" colspan="2" | [[A̱buja]] • [[Dodoma]] • [[Harare]] • [[Itambut]] • [[Kinshasa]] • [[Legwot]] • [[London]] • [[Parit]] • [[Sa̱ul]] • [[Si̱dni]] • [[Urusha̱lima]]
|}
</div><noinclude>
[[Category:Nta̱mpi̱let]]
</noinclude>
4narrmv921u1s2ulbfmse4okmeoq35b
Ta̱mpi̱let:Nta̱m njhyang
10
1202
12952
12838
2022-05-28T00:10:18Z
Kambai Akau
15
wikitext
text/x-wiki
{|class="layout" width="100%" align="center" cellpadding="4" style="text-align:left; background-color: transparent;"
| align="center" | <imagemap>Image:Commons-logo-31px.png|31px
default [[commons:|Commons]]
desc none</imagemap>
| '''<span class="plainlinks">[http://commons.wikimedia.org/ Commons]</span>'''<br />Free media repository
| align="center" | <imagemap>Image:Wiktionary-logo-51px.gif|51px
default [[wikt:|Wiktionary]]
desc none</imagemap>
| '''<span class="plainlinks">[http://en.wiktionary.org/ Wiktionary]</span>'''<br />Dictionary and thesaurus
| align="center" | <imagemap>Image:Wikidata-logo.svg|51px
default [[d:|Wikidata]]
desc none</imagemap>
| '''<span class="plainlinks">[http://en.wikidata.org/ Wikidata]</span>'''<br />Free knowledge base
|-
| align="center" | <imagemap>Image:Wikiquote-logo-51px.png|51px
default [[q:|Wikiquote]]
desc none</imagemap>
| '''<span class="plainlinks">[http://en.wikiquote.org/ Wikiquote]</span>'''<br />Collection of quotations
| align="center" | <imagemap>Image:Wikibooks-logo-35px.png|35px
default [[b:|Wikibooks]]
desc none</imagemap>
| '''<span class="plainlinks">[http://en.wikibooks.org/ Wikibooks]</span>'''<br />Free textbooks and manuals
| align="center" | <imagemap>Image:Wikisource-logo.png|35px
default [[s:|Wikisource]]
desc none</imagemap>
| '''<span class="plainlinks">[http://en.wikisource.org/ Wikisource]</span>'''<br />Free-content library
|-
| align="center" | <imagemap>Image:Wikispecies-logo-35px.png|35px
default [[wikispecies:|Wikispecies]]
desc none</imagemap>
| '''<span class="plainlinks">[http://species.wikimedia.org/ Wikispecies]</span>'''<br />Directory of species
| align="center" | <imagemap>Image:Wikiversity-logo-41px.png|41px
default [[v:|Wikiversity]]
desc none</imagemap>
| '''<span class="plainlinks">[http://en.wikiversity.org/ Wikiversity]</span>'''<br />Free learning materials and activities
| align="center" | <imagemap>Image:Wikimedia Community Logo.svg|35px
default [[m:|Meta-Wiki]]
desc none</imagemap>
| '''<span class="plainlinks">[http://meta.wikimedia.org/ Meta-Wiki]</span>'''<br />Wikimedia project coordination
|}
<noinclude>
[[Category:Nta̱mpi̱let]]
7m2igi4h5xyjc5mlgy7syp25rt5l86j
Ta̱mpi̱let:A̱tsak wat wu
10
1203
13198
12901
2022-05-31T19:00:08Z
Amire80
6
noinclude
wikitext
text/x-wiki
{| style="margin-top:10px; background:none; text-align: center; width: 100%;"
|-
| style="font-size:182%; border:none; margin:0; padding:.1em; color:#000;" | Ma̱aba̱n/Tyebaa ang ma̱ng bai [[Wukipedia]] nTyap hu!
|-
|[[File:Wikipedia-logo-v2-kcg.svg|center|150px]]
|-
| style="top:+0.2em; font-size:130%;"| A̱gban lyen wu ma̱sa̱t nang konyan maai jhyuk a̱ni.
|-
| <div id="articlecount" style="font-size:120%;">A̱yaati̱kut '''[[Special:Statistics|{{NUMBEROFARTICLES}}]]''' bya shyia̱ a̱ji mi̱ di̱ yong huni.</div>
|-
| <inputbox>
type=search2
width=20
buttonlabel=Cat ati̱kut
break=no
placeholder=kidee A̱tyap
</inputbox>
|-
|}<noinclude>
[[Category:Nta̱mpi̱let]]
</noinclude>
h10esgctjgj7v2x4s5iml12f521x7mu
Ta̱mpi̱let:Nowrap
10
1204
12842
12286
2022-05-25T21:51:21Z
Kambai Akau
15
wikitext
text/x-wiki
<span class="nowrap">{{{1}}}</span><noinclude>
<!-- Categories go on the /doc page; interwikis go to Wikidata. -->
[[Category:Nta̱mpi̱let]]
</noinclude>
efdidj1a533fb293he5lys1qq7m2iow
Sean Xiao
0
1205
12631
2022-05-22T18:40:22Z
Kambai Akau
15
Kambai Akau shyei peji [[Sean Xiao]] nat [[Xiao Zhan]]: Ku lan tyia̱ a̱ni.
wikitext
text/x-wiki
#REDIRECT [[Xiao Zhan]]
audlhtkxnooyowbze91inx38y29wojl
Sa:Á̱niet Caina
14
1206
14377
12635
2022-06-13T10:25:46Z
Vargenau
226
wikitext
text/x-wiki
[[Sa:Caina]]
n5dhqoahi38pv0ndkwm7z0edhofgwoo
Sa:Caina
14
1207
14113
12636
2022-06-13T09:42:57Z
Vargenau
226
wikitext
text/x-wiki
[[Sa:Bibyin swanta]]
epksequ2qnspflzkp62efxiy5qq2fnb
A̱jhyo
0
1208
12638
2022-05-22T18:58:38Z
Kambai Akau
15
Kambai Akau shyei peji [[A̱jhyo]] nat [[A̱jhyuo]]: Ku lan tyia̱ a̱ni.
wikitext
text/x-wiki
#REDIRECT [[A̱jhyuo]]
07hya0ceut4oteqap83wejeest8u13w
Jhyo (a̱lyem)
0
1209
12642
2022-05-22T19:07:01Z
Kambai Akau
15
Kambai Akau shyei peji [[Jhyo (a̱lyem)]] nat [[Jhyuo (a̱lyem)]]: Ku lan tyia̱ a̱ni.
wikitext
text/x-wiki
#REDIRECT [[Jhyuo (a̱lyem)]]
px0qdd9fbdznnq1om18qfralem0rauf
Khwong A̱ta̱m Nzwuom
0
1211
14309
13785
2022-06-13T10:18:24Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
{{Country
|name = Ri̱pobi̱lik Khwong A̱ta̱m Nzwuom<br>République de Côte d'Ivoire (Fi̱ransa)
|flag = Flag of Ivory Coast.svg
|coa = Coat of arms of Ivory Coast.svg
|image = Côte_d'Ivoire_(orthographic_projection).svg
|capital = Yamusukuro
|area = 322,462
|population = 28,088,455
|year = 2020
}}
'''A̱bwom a̱byin''': "L'Abidjanaise" ("A̱bwom Abijan")<br/>[[File:Hymne National de Côte d'Ivoire.ogg]]
A̱byin '''Khwong A̱ta̱m Nzwuom''' ku '''Kodivwa''' (Fi̱ransa: Côte d'Ivoire, Shong: Ivory Coast), á̱ lyen ma̱ng a̱lyoot a̱gwomna̱ti nka nang '''Ri̱pobi̱lik Khwong A̱ta̱m Nzwuom''' (Fi̱ransa: République de Côte d'Ivoire) a̱ni, yet a̱byin kya di̱ khwong a̱tak fam-a̱byin [[Jenshyung Afrika]]. Á̱ ngyei a̱keangtung nka ka Yamusukuro, a̱gba̱ndang a̱keang a̱ghyang a̱ shyia̱ a̱ka̱wa̱tyia̱ a̱byin ka; a̱wot a̱gba̱ndang a̱keang a̱ swak ma̱ng shi a̱ ka ngyet a̱ka̱wa̱tyia̱ tung nzwa nka, nggu wa yet Abijan. A̱byin ka byia̱ a̱gi̱gak ma̱ng bibyin [[Gini]] di̱ fam a̱za-jenshyung hu, Laiberiya di̱ fam jenshyung hu, [[Mali]] di̱ fam a̱za-jenshyung, [[Burkina Faso]] di̱ fam a̱za-a̱tyin, [[Gana]] di̱ fam a̱tyin, ma̱ng [[A̱ngam A̱sa̱khwot Gini]] (A̱gba̱ndang Kyai A̱sa̱khwot Ati̱lantik) di̱ fam a̱tak hu. A̱lyem a̱gwomna̱ti nka, kikya yet Fi̱ransa, a̱wot á̱ ka ndyiat lilyem a̱byin hu ba̱t, nang Bété, Bawulé, Dyula, Dan, Anyin, ma̱ng Cebaara Senufo. A̱kuu lilyem 78 vwuon wa á̱ lyiat di̱ Khwong A̱ta̱m Nzwuom. A̱byin ka si̱ byia̱ á̱niet khwi a̱yaadini vwuon, nang [[Khwikristi]], [[Khwikpaa̱pyia̱]] ma̱ng khwí a̱mali ma̱ a̱di̱di̱t.
{{Bibyin Afrika}}
[[Sa:Bibyin_swanta]]
[[Sa:Bibyin_Afrika]]
[[Sa:Bibyin_Jenshyung_Afrika]]
[[Sa:Khwong A̱ta̱m Nzwuom]]
4ptl8ze5zsv4egmjnz1e9wagdd9z50z
Ji̱buti
0
1212
14296
13971
2022-06-13T10:17:08Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
{{Country
|name = ''Ri̱pobi̱lik Ji̱buti''<br>République de Djibouti (Fi̱ransa)<br> جمهورية جيبوتي, ''Jumhūrīyah Jībūtī'' (La̱ra̱ba)<br>Jamhuuriyadda Jabuuti (Somali)<br>Gabuutih Ummuuno (Afar)
|flag = Flag of Djibouti.svg
|coa = Coat of arms of Djibouti.svg
|image = Djibouti_(orthographic_projection).svg
|capital = Ji̱buti
|area = 23,200
|population = 921,804
|year = 2020
}}
'''A̱bwom a̱byin''': "Djibouti" ("Ji̱buti")<br />[[File:The Djiboutian anthem.ogg]]
A̱byin '''Ji̱buti''' yet a̱byin kya nang á̱ lyen ma̱ng a̱lyoot a̱gwomna̱ti nka nang '''Ri̱pobi̱lik Ji̱buti''' wu (Fi̱ransa: République de Djibouti; République de Djibouti; La̱ra̱ba: جمهورية جيبوتي, ''Jumhūrīyah Jībūtī''; Somali: Jamhuuriyadda Jabuuti; Afar: Gabuutih Ummuuno), yet a̱byin kya ka̱ shyia̱ da̱ A̱ta̱m Afrika ka a̱ni di̱ fam-a̱byin A̱tyin Afrika. Ka̱ byia̱ a̱gi̱gak ma̱ng bibyin [[Somalya]] di̱ fam a̱tak hu, [[Ityopya]] di̱ fam a̱tak-jenshyung hu, [[Eritrea]] di̱ fam a̱za hu, mbeang [[A̱shong Kyai A̱sa̱khwot]] wu ma̱ng [[A̱ngam A̱sa̱khwot Aden]] wu di̱ fam a̱tyin hu. A̱byin Yamin si̱ shyia̱ a̱ma̱nyi A̱ngam A̱sa̱khwot Aden ka. A̱byin ka byia̱ a̱kuu shi kyai a̱byin a̱ tat kilomita a̱ma̱ntaa̱naai 23,200 (met a̱ma̱ntaa̱naai 8,958).
{{Bibyin Afrika}}
[[Sa:Bibyin_swanta]]
[[Sa:Bibyin_Afrika]]
[[Sa:Bibyin_A̱tyin_Afrika]]
[[Sa:Bibyin_A̱ta̱m_Afrika]]
[[Sa:Ji̱buti]]
6b67pszf4peoqcihg8kc32buj3t9qsb
Li̱lyoot Si̱tet Najeriya di̱n shi bana
0
1213
14499
12700
2022-06-13T10:50:12Z
Vargenau
226
Changed redirect target from [[Lyulyoot Sí̱tet Naijeriya di̱n vak Shi]] to [[Lyulyoot sí̱tet Naijeriya di̱n vak shi á̱niet]]
wikitext
text/x-wiki
#REDIRECT [[Lyulyoot sí̱tet Naijeriya di̱n vak shi á̱niet]]
in086854f9nmsuxynulzoc8rmw0nq2u
Lyulyoot Sí̱tet Naijeriya di̱n vak Shi
0
1214
12706
2022-05-24T18:54:22Z
Kambai Akau
15
Kambai Akau shyei peji [[Lyulyoot Sí̱tet Naijeriya di̱n vak Shi]] nat [[Lyulyoot sí̱tet Naijeriya di̱n vak shi á̱niet]]: Ku lan tyia̱ a̱ni.
wikitext
text/x-wiki
#REDIRECT [[Lyulyoot sí̱tet Naijeriya di̱n vak shi á̱niet]]
in086854f9nmsuxynulzoc8rmw0nq2u
Nkhang gbangbang a̱byin Naijeriya
0
1215
12717
2022-05-24T19:35:10Z
Kambai Akau
15
Kambai Akau shyei peji [[Nkhang gbangbang a̱byin Naijeriya]] nat [[Nkhang a̱byin Naijeriya]]: Ku lan tyia̱ a̱ni.
wikitext
text/x-wiki
#REDIRECT [[Nkhang a̱byin Naijeriya]]
g4250e0ho691l1ia56prbr12ar1vcpv
Lyulyoot a̱yaagwomna a̱yaasi̱tet Naijeriya
0
1216
12721
2022-05-24T19:46:23Z
Kambai Akau
15
Kambai Akau shyei peji [[Lyulyoot a̱yaagwomna a̱yaasi̱tet Naijeriya]] nat [[Lyulyoot a̱yaagwomna sí̱tet Naijeriya]]: Ku lan tyia̱ a̱ni.
wikitext
text/x-wiki
#REDIRECT [[Lyulyoot a̱yaagwomna sí̱tet Naijeriya]]
hkv71hnm0jix3voovh8ksaz5293yir3
Lis a̱ka̱keangtung a̱yaasi̱tet Naijeriya
0
1217
12733
2022-05-24T20:11:13Z
Kambai Akau
15
Kambai Akau shyei peji [[Lis a̱ka̱keangtung a̱yaasi̱tet Naijeriya]] nat [[Lyulyoot a̱ka̱keangtung sí̱tet mi̱ Naijeriya]]: Ku lan tyia̱ a̱ni.
wikitext
text/x-wiki
#REDIRECT [[Lyulyoot a̱ka̱keangtung sí̱tet mi̱ Naijeriya]]
2ouiqn2hrkk9cixlyh1sf7wzzk2ic2t
Ta̱mpi̱let:Si̱tet
10
1220
12791
12790
2022-05-25T20:16:22Z
Kambai Akau
15
wikitext
text/x-wiki
{| class="toccolours" style="float:right; width:250px; margin-left: 1em; font-size: 85%;"
! colspan="2" style="background-color: #87CEFA; color: #FFFFFF; font-size:150%;" align="center" |
'''{{{name}}}'''
|-
| style="background:#FFFFFF;" align="center" colspan="2" |
{| style="background:#FFFFFF; text-align: center;" border="0" cellpadding="2" cellspacing="0"
|-
| {{#if:{{{flag|}}}|[[Image:{{{flag}}}|130px]]}}
| {{#if:{{{seal|}}}|[[Image:{{{seal}}}|90px]]}}
|}
|-class="hiddenStructure{{{map|}}"
| style="background:#FFFFFF;" align="center" colspan="2" | [[Image:{{{map}}}|297px]]
|-class="hiddenStructure{{{map_caption|}}"
| style="background:#FFFFFF;" align="center" colspan="2" | {{{map_caption}}}
|-class="hiddenStructure{{{image|}}"
| style="background:#FFFFFF;" align="center" colspan="2" | [[Image:{{{image}}}|297px]]
|-class="hiddenStructure{{{image_caption|}}"
| style="background:#FFFFFF;" align="center" colspan="2" | {{{image_caption}}}
|-class="hiddenStructure{{{country|}}}"
| valign="top"| A̱byin || style="background: #f7f8ff; text-align:center;" | {{{country}}}
|-class="hiddenStructure{{{state|}}}"
| valign="top"| Si̱tet || style="background: #f7f8ff; text-align:center;" | {{{state}}}
|-class="hiddenStructure{{{capital|}}}"
| valign="top"| A̱keangtung || style="background: #f7f8ff; text-align:center;" | {{{capital}}}
|- class="hiddenStructure{{{area|}}}"
| valign="top"| Shi kyai || style="background: #f7f8ff; text-align:center;"| {{{area}}} km²
|-
| valign="top"| Shi á̱niet || style="background: #f7f8ff; text-align:center;"| {{{population}}} ab.{{#if:{{{year|}}}|<small> ([[{{{year}}}]])</small>}}
|-class="hiddenStructure{{{leader_title|}}}"
| valign="top"| A̱lyoot ntyok a̱kwak a̱son || style="background: #f7f8ff; text-align:center;" | {{{leader_title}}}
|-class="hiddenStructure{{{leader_name|}}}"
| valign="top"| A̱lyoot a̱kwak a̱son || style="background: #f7f8ff; text-align:center;" | {{{leader_name}}}
|}<noinclude>
<pre>
{{Si̱tet
|name =
|flag =
|seal =
|map =
|map_caption =
|image =
|image_caption =
|country =
|state =
|capital =
|area =
|population =
|year =
|leader_title =
|leader_name =
}}
</pre>
[[Category:Nta̱mpi̱let]]
</noinclude>
qzi99f8ip52vwju4qzq5fp2axjzb1cw
Sa:Nta̱mpi̱let
14
1221
12755
2022-05-25T18:37:16Z
Kambai Akau
15
N khwuk sa jini.
wikitext
text/x-wiki
Nta̱mpi̱let na̱ shyia̱ Wukipedia nTyap ni̱nia á̱na.
myekuvegfl5i2mfi4i61pp1tmrrg4gt
Ta̱mpi̱let:Infobox nkhang mbwakfeang a̱la̱utak
10
1222
12798
2022-05-25T20:48:12Z
Kambai Akau
15
Kambai Akau shyei peji [[Ta̱áímpi̱áílet:Infobox nkhang mbwakfeang a̱la̱utak]] nat [[Ta̱áímpi̱áílet:Nkhang a̱tyutsot a̱la̱u-a̱ti̱tak mbwak a̱ghyang a̱niet]]: Ku lan tyia̱ a̱ni.
wikitext
text/x-wiki
#REDIRECT [[Ta̱áímpi̱áílet:Nkhang a̱tyutsot a̱la̱u-a̱ti̱tak mbwak a̱ghyang a̱niet]]
p9y15twj0fh5yhg9p1n0kd8k1cmdc7w
Sa:Byin 1985
14
1223
12813
2022-05-25T21:18:00Z
Kambai Akau
15
Created blank page
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Á̱niettsot a̱la̱u-a̱ti̱tak
14
1224
12815
2022-05-25T21:18:53Z
Kambai Akau
15
Created blank page
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Ta̱mpi̱let:Infobox nkhang
10
1225
12821
2022-05-25T21:32:24Z
Kambai Akau
15
Kambai Akau shyei peji [[Ta̱áímpi̱áílet:Infobox nkhang]] nat [[Ta̱áímpi̱áílet:Nkhang a̱yin mbwak a̱ghyang a̱niet]]: Ku lan tyia̱ a̱ni.
wikitext
text/x-wiki
#REDIRECT [[Ta̱áímpi̱áílet:Nkhang a̱yin mbwak a̱ghyang a̱niet]]
ir3po07j3og1d67ci4mwwq4vazrwwgw
Ta̱mpi̱let:Nkhang tyok
10
1226
12890
12887
2022-05-27T08:50:44Z
Kambai Akau
15
wikitext
text/x-wiki
{| class="toccolours" style="float:right; width:250px; margin-left: 1em; font-size: 85%;"
! colspan="2" style="background-color: #AA2EFA; color: #FFFFFF; font-size:150%;" align="center" |
'''{{{name}}}'''
|-
| style="background:#FFFFFF;" align="center" colspan="2" |
{| style="background:#FFFFFF; text-align: center;" border="0" cellpadding="2" cellspacing="0"
|}
|-class="hiddenStructure{{{image|}}}"
| style="background:#FFFFFF;" align="center" colspan="2" | [[Image:{{{image}}}|297px]]
|-class="hiddenStructure{{{caption|}}}"
| style="background:#FFFFFF;" align="center" colspan="2" | {{{caption}}}
|-class="hiddenStructure{{{full_name|}}}"
| valign="top"| A̱jhyem a̱lyoot || style="background: #AAf8ff; text-align:center;" | {{{full_name}}}
|-class="hiddenStructure{{{date_of_birth|}}}"
| valign="top"| A̱tuk mam mbyin || style="background: #AAf8ff; text-align:center;" | {{{date_of_birth}}}
|-class="hiddenStructure{{{date_of_death|}}}"
| valign="top"| A̱tuk mam kwi || style="background: #AAf8ff; text-align:center;" | {{{date_of_death}}}
|- class="hiddenStructure{{{spouse|}}}"
| valign="top"| A̱kyuo || style="background: #AAf8ff; text-align:center;"| {{{spouse}}}
|- class="hiddenStructure{{{religion|}}}"
| valign="top"| Khwi || style="background: #AAf8ff; text-align:center;"| {{{religion}}}
|- class="hiddenStructure{{{house|}}}"
| valign="top"| A̱li ntyok || style="background: #AAf8ff; text-align:center;"| {{{house}}}
|- class="hiddenStructure{{{title|}}}"
| valign="top"| A̱lyoot ntyok || style="background: #AAf8ff; text-align:center;"| {{{title}}}
|- class="hiddenStructure{{{predecessor|}}}"
| valign="top"| A̱shai || style="background: #AAf8ff; text-align:center;"| {{{predecessor}}}
|- class="hiddenStructure{{{successor|}}}"
| valign="top"| A̱ci̱t || style="background: #AAf8ff; text-align:center;"| {{{successor}}}
|}<noinclude>
<pre>
{{Nkhang tyok
|name =
|image =
|caption =
|full_name =
|date_of_birth =
|date_of_death =
|spouse =
|religion =
|house =
|title =
|coronation date =
|predecessor =
|successor =
}}
</pre>
[[Category:Nta̱mpi̱let]]
</noinclude>
4oq4xc1m5n6lups8bgav160ej5q6r4p
Ta̱mpi̱let:A̱yaasi̱tet Naijeriya
10
1228
12829
2022-05-25T21:40:04Z
Kambai Akau
15
Kambai Akau shyei peji [[Ta̱áímpi̱áílet:A̱yaasi̱tet Naijeriya]] nat [[Ta̱áímpi̱áílet:Sí̱tet Naijeriya]]: Ku lan tyia̱ a̱ni.
wikitext
text/x-wiki
#REDIRECT [[Ta̱áímpi̱áílet:Sí̱tet Naijeriya]]
h6cbpg0zzsdpaz125aj55r3to3i1nfo
Ta̱mpi̱let:-
10
1229
12846
2022-05-25T21:59:46Z
Kambai Akau
15
Kambai Akau shyei peji [[Ta̱áímpi̱áílet:-]] nat [[Ta̱áímpi̱áílet:A̱kuu nta̱mpi̱let]]: Ku lan tyia̱ a̱ni.
wikitext
text/x-wiki
#REDIRECT [[Ta̱áímpi̱áílet:A̱kuu nta̱mpi̱let]]
7sppyvc5f2l3l0z6yrybuik6ba1dwlr
Sa:A̱yaasi̱tet Fam A̱ka̱wa̱tyia̱ Naijeriya
14
1230
12852
2022-05-25T22:04:48Z
Kambai Akau
15
Kambai Akau shyei peji [[Sot:A̱yaasi̱tet Fam A̱ka̱wa̱tyia̱ Naijeriya]] nat [[Sot:Sí̱tet Fam A̱ka̱wa̱tyia̱ Naijeriya]]: Ku lan tyia̱ a̱ni.
wikitext
text/x-wiki
#REDIRECT [[:Sot:Sí̱tet Fam A̱ka̱wa̱tyia̱ Naijeriya]]
8mduxa8hicnbwwbfz3hn1jpw1o2uciv
Sa:Byin 1997
14
1231
12861
2022-05-27T07:12:16Z
Kambai Akau
15
Created blank page
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Byin 1987
14
1232
12865
2022-05-27T07:20:30Z
Kambai Akau
15
Created blank page
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
A̱tsak Wat Wu
0
1233
15535
13554
2022-08-07T15:52:24Z
Kambai Akau
15
Protected "[[A̱tsak Wat Wu]]": Requested ([Jhyuk=Allow only administrators] (indefinite) [Shyei=Allow only administrators] (indefinite))
wikitext
text/x-wiki
{{A̱tsak wat wu}}
{{Khwuk ati̱kut a̱fai mi̱ Wukipedia}}
{{A̱yaatikut Kidee A̱mgba̱m}}
{{Lilyem Wukipedia}}
b8b0d2yezjspe9jtgwvefyei4igrrnf
Zangon Kataf
0
1234
12874
2022-05-27T07:59:24Z
Kambai Akau
15
Kambai Akau shyei peji [[Zangon Kataf]] nat [[Zangon Katab]]: Ku lan tyia̱ a̱ni.
wikitext
text/x-wiki
#REDIRECT [[Zangon Katab]]
a49d64a86wjep80k54w8p9n20uci055
Tyok A̱tyap
0
1235
12876
2022-05-27T08:01:04Z
Kambai Akau
15
Kambai Akau shyei peji [[Tyok A̱tyap]] nat [[A̱byintyok A̱tyap]]: Ku lan tyia̱ a̱ni.
wikitext
text/x-wiki
#REDIRECT [[A̱byintyok A̱tyap]]
5zb7dan6xkaho1jzo9lo0bzutbvj42u
Cenkwon
0
1236
14741
14234
2022-07-02T20:17:52Z
Kambai Akau
15
wikitext
text/x-wiki
{{Databox|item=Q104854022}}
'''Cenkwon''' ([[Kpat (a̱lyem)|Kpat]]: Samaru Kataf) yet a̱keang kya mi̱ Distrik Njei mi̱ [[Zangon Katab|Sot A̱gwomna̱ti Mali Zangon Katab]] ma̱ [[A̱tak Ka̱duna|a̱tak]] [[Si̱tet Ka̱duna]] di̱ fam-a̱byin Fam A̱ka̱wa̱tyia̱ a̱byin [[Naijeriya]].<ref name=Min>[https://www.mindat.org/feature-2323851.html Samaru, Zonkwa, Kaduna State, Nigeria] (di̱n Shong). mindat.org</ref> Zwunzwuo-ta̱m tá̱m a̱vwuo ka, jija yet 802.<ref>[http://www.nipost.gov.ng/PostCode.aspx Post Offices- with map of LGA] (di̱n Shong). NIPOST</ref>
==Ya̱fang==
<references/>
[[Sa:Sot a̱gwomna̱ti mali Zangon Katab]]
5ep93fws6s9vrnuyy36im7850chrtyj
Ta̱mpi̱let:A̱yaatikut Kidee A̱mgba̱m
10
1237
12967
12959
2022-05-28T00:53:08Z
Kambai Akau
15
wikitext
text/x-wiki
{{Ati̱kut Kidee/tamm
|image=HSUtvald.svg
|header=Ati̱kut kidee
|content={{Ati̱kut Kidee/Ati̱kut 2}}
|down= [[Wikipedia:Featured Articles|A̱yaati̱kut Kidee]]
}}
{{Ati̱kut Kidee/tamm
|image=HSbra2.svg
|header=A̱tan ati̱kut
|content={{A̱tan Ati̱kut/Ati̱kut 1}}
|down=[[Wikipedia:Good Articles|A̱tan A̱yaati̱kut]]
}}
{{Ati̱kut Kidee/tamm
|image=Book red; question marks.svg
|header=A lyen a...?
|content={{A Lyen A/lyulyoot kídee 1}}
|down=[[Wikipedia:Did You Know|A Lyen A]]
}}
{{Ati̱kut Kidee/tamm
|image=PL Wiki InM ikona.svg
|header=Ghwughwu Kidee
|content=<div id="mf-image" title=File:Kafanchan train station 1.jpg>{{Featured Image/Image 1}}</div>
|down=[[Wikipedia:Featured Image|Nghwughwu Kidee]]
|font-size=95
}}
{{Ati̱kut Kidee/tamm
|image=RU Wiki FLP icon.svg
|header=Nta̱m Wukimedia jhyang
|content={{Nta̱m njhyang}}
|down=
|font-size=90
}}
77431xkz8klg8t5mal1dyfvthls0uai
Ta̱mpi̱let:Ati̱kut Kidee/Ati̱kut 2
10
1238
12910
12909
2022-05-27T21:33:13Z
Kambai Akau
15
wikitext
text/x-wiki
[[File:Arnaut danjuma groeneveld-1589618839.jpg|thumb]]
'''Arnaut Danjuma Groeneveld''' (á̱ byin nggu a̱tuk mam 31 Zwat Jhyiung 1997) yet a̱gwak tsot a̱la̱u-a̱ti̱tak wa a̱ tsot di̱ fam a̱feap ma̱ng ki̱lop La Liga nang á̱ ngyei Villarreal a̱ni. Á̱ ku byin nggu ma̱ a̱byin Naijeriya kya, a̱wot...
[[Arnaut Danjuma|Nyap a fang a tyak...]]
mtghai5zexrz4dbigjvm9b60x0cucbh
Ta̱mpi̱let:A̱tan Ati̱kut/Ati̱kut 1
10
1239
14553
12919
2022-06-19T13:56:02Z
Kambai Akau
15
wikitext
text/x-wiki
[[File:Nigeria (orthographic projection).svg|thumb]]
A̱byin '''Naijeriya''' (Shong: Nigeria), á̱ lyen ma̱ng a̱lyoot a̱gwomna̱ti nka nang '''Ri̱pobi̱lik Mundundung Naijeriya''' (Shong: Federal Republic of Nigeria), yet a̱byin ka̱ shyia̱ ma̱sa̱t kya di̱ fam [[Jenshyung Afrika]]...
[[Naijeriya|Nyap a fang a tyak...]]
dc580kcc2n9ey3wlrje4n8ne0df369t
Ta̱mpi̱let:A Lyen A/lyulyoot kídee 1
10
1240
13201
12921
2022-05-31T19:04:26Z
Amire80
6
noinclude
wikitext
text/x-wiki
[[File:Flag of the Nigerian Armed Forces.svg|thumb|150px|<small>A̱khwot Á̱kwop Naijeriya</small>]]
* A̱khwot Á̱kwop Naijeriya ba shyia̱ a̱tat bya. A̱si̱ a̱byin, tswazwa ma̱ng a̱sa̱khwot a?
* A̱kwak a̱son wu a̱fwun wa á̱ ngyei Mejo-Jenera Leo Irabor a?
<noinclude>
[[Category:Nta̱mpi̱let]]
</noinclude>
l29zpbj50jz5x9mk10lq0pcofsbaa49
Ta̱mpi̱let:Ati̱kut Kidee/tamm
10
1241
12922
2022-05-27T22:27:04Z
Kambai Akau
15
Created page with "<div style="text-align:left; position:relative; left:4px; top:2px; margin:0; font-family:'Verdana, Arial, Helvetica, sans-serif'"> [[File:Bluebg rounded.png|link=|alt=]] <div style="position:absolute; left:5px; top:-6px;">[[File:{{{image|HSCirkel.svg}}}|38px|link=|alt=]]</div> <div style="position:absolute; left:40px; top:-5px;"><div style="font-weight:bold; border-bottom:none; font-size:130%; padding:.15em .4em;">{{{header}}}</div></div></div> <div style="padding-left:1..."
wikitext
text/x-wiki
<div style="text-align:left; position:relative; left:4px; top:2px; margin:0; font-family:'Verdana, Arial, Helvetica, sans-serif'">
[[File:Bluebg rounded.png|link=|alt=]]
<div style="position:absolute; left:5px; top:-6px;">[[File:{{{image|HSCirkel.svg}}}|38px|link=|alt=]]</div>
<div style="position:absolute; left:40px; top:-5px;"><div style="font-weight:bold; border-bottom:none; font-size:130%; padding:.15em .4em;">{{{header}}}</div></div></div>
<div style="padding-left:10px; padding-bottom:5px; padding-top:2px; font-size:{{{font-size|100}}}%">
{{{content}}}<div align="right" style="font-size:95%;">{{{down}}}</div></div>
0uaz4vx6dxxhhn2u2nlo5veevm3hcki
Ta̱mpi̱let:Audio templates
10
1242
12927
2022-05-27T22:50:01Z
Kambai Akau
15
Created page with "{{navbar|Audio templates|plain=1|style=float:right}} * {{tl|Listen}} – sets an audio clip off from the main text ** {{tl|Listen image}} – sets an audio clip and an associated image off from the main text * {{tl|Audio}} – for inline sounds like pronunciations (with a help link) ** {{tl|Audio-IPA}} – a variant of this template to be used with [[International Phonetic Alphabet|IPA]] notation ** {{tl|Pronunciation}} – a shortcut for <code><nowiki>{{small|{{Audio|so..."
wikitext
text/x-wiki
{{navbar|Audio templates|plain=1|style=float:right}}
* {{tl|Listen}} – sets an audio clip off from the main text
** {{tl|Listen image}} – sets an audio clip and an associated image off from the main text
* {{tl|Audio}} – for inline sounds like pronunciations (with a help link)
** {{tl|Audio-IPA}} – a variant of this template to be used with [[International Phonetic Alphabet|IPA]] notation
** {{tl|Pronunciation}} – a shortcut for <code><nowiki>{{small|{{Audio|soundfile.ogg|pronunciation}}}}</nowiki></code>
** {{tl|Audio-nohelp}} – without a help link
* {{tl|Spoken Wikipedia}} – for linking [[Wikipedia:WikiProject Spoken Wikipedia|spoken Wikipedia]] article versions
* {{tl|Multi-listen start}}, {{tl|Multi-listen item}}, and {{tl|Multi-listen end}} – used to list multiple audio files in the same box
* {{tl|Audio icon}} – adds only the small icon with no links
* {{tl|Inline audio}} – adds a notice with link to [[Wikipedia:Media help]]<noinclude>
<!-- add new list items _before_ the noinclude tag -->{{Documentation}}
</noinclude>
63f58k88xyuhigq1f3vfwcajgdniprs
Ta̱mpi̱let:Fa̱k
10
1243
15713
15707
2022-08-11T22:55:05Z
Kambai Akau
15
Kambai Akau shyei peji [[Ta̱mpi̱let:Listen]] nat [[Ta̱mpi̱let:Fa̱k]]: Di̱n Tyap
wikitext
text/x-wiki
<includeonly>{{#invoke:Fa̱k|main}}</includeonly><noinclude>
{{documentation}}
<!-- Categories go on the /doc subpage, and interwikis go on Wikidata. -->
</noinclude>
6wlbz8k49e0nw3s49qzlvf9nb8sv2hw
Ta̱mpi̱let:Fa̱k/doc
10
1244
15717
12929
2022-08-11T22:55:05Z
Kambai Akau
15
Kambai Akau shyei peji [[Ta̱mpi̱let:Listen/doc]] nat [[Ta̱mpi̱let:Fa̱k/doc]]: Di̱n Tyap
wikitext
text/x-wiki
{{Documentation subpage}}
{{for|the inline audio template|Template:Audio}}
{{Lua|Module:Listen}}
{{tl|{{BASEPAGENAME}}}} allows audio and video files to be embedded in articles. It should be used for audio files that are set off from the text, such as music clips or sound recordings.
==Simple usage==
<pre style="overflow: auto">
{{Listen
| filename =
| title =
| description =
| pos =
}}
</pre>
* '''filename''' ''(Required)'': the pagename of the media file, {{em|without}} the <code>File:</code> (formerly <code>Image:</code>) prefix
* '''title''' ''(Required)'': the title of the audio file, to be displayed. Do not use wikilinks in the title – they will not work.
* '''description''': a description of the sounds being heard
* '''pos''': right (default), left, or center
===Multiple files===
Additional files can be embedded in an article with one template by appending a number to each parameter.
<pre style="overflow: auto">
{{Listen
| filename =
| title =
| alt =
| description =
| filename2 =
| title2 =
| alt2 =
| description2 =
| filename3 =
| title3 =
| alt3 =
| description3 =
}}
</pre>
* '''filename''' ''(Required)'': the pagename of the media file, ''without'' the File: (formerly Image:) prefix
* '''title''' ''(Required)'': the title of the audio file, to be displayed.
* '''alt''': alt text for the image displayed for the file, for visually impaired readers; see ''[[Wikipedia:Alternative text for images]]''. This is needed for file formats such as [[Ogg]]'s <code>.ogv</code> format that include video as well as sound. The alt text should describe just the initial static image, not the entire video or its sound.
* '''description''': a description of the sounds being heard
==Style parameters==
The template also takes a number of style parameters to control its appearance:
* '''type''': can be used to alter the image displayed at the left depending on the type of audio content being embedded. Acceptable values are '''music''', '''speech''' and '''sound''' (default)
* '''header''': can be used to add a header to the box.
* '''help''': if set to {{para|help|no}}, suppresses the help text that normally appears at the bottom of the box. Only do this if there are other audio files on the page which ''do'' have the help link; it ''must'' be provided on ''at least'' the first file on the article.
* '''pos''': by default the box floats to the right side of the screen. Setting this to '''left''' or '''center''' will float the box on the left-hand side, or center it, respectively.
* '''image''': define a different image. E.g. {{nowrap|{{para|image|<nowiki>[[File:Example.jpg|50px]]</nowiki>}}}}. You can set {{para|image|none}} to disable the image entirely.
* '''style''': can be used to pass specific style instructions to the box. Setting this to '''float:none''' will anchor the box when this is convenient. Setting this to '''float:none; clear:none''' will enable the anchored box to co-exist gracefully beside another floating box.
* '''play''(n)''''': some media files cannot be displayed inline; if this is the case set {{para|play|no}} to prevent the broken inline link from displaying.
* '''plain''': if set {{para|plain|yes}}, removes most of the ornamentation (table border, image, and help links) to give a minimalist version. This also removes the left/right float and positioning, to allow the box to be manually positioned as desired using the {{para|style}} (e.g., {{Para|style|float:right}}) parameter and surrounding markup.
* '''embed''': use {{para|embed|yes}} to remove border and padding when using as a module embedded in another infobox (see examples below).
* '''start''(n)''''': Timestamp at which the file should start playing
* '''length''(n)''''': setting {{para|length''(n)''|hide}} hides the duration (h:m:s).
==Examples==
'''Basic'''
{{Listen
| filename = Accordion chords-01.ogg
| title = Accordion chords
| description = Chords being played on an accordion
}}
<pre style="overflow:auto;">
{{Listen
| filename = Accordion chords-01.ogg
| title = Accordion chords
| description = Chords being played on an accordion
}}
</pre>
{{-}}
'''With video'''
{{Listen
| image = [[File:Crystal Project video camera.png|50px]]
| help = no
| filename = Barack Obama inaugural address.ogv
| alt = A black man in a black coat gestures and talks at a lecturn surrounded by teleprompters. Behind him, in the background, are about a dozen warmly-dressed onlookers.
| title = Inaugural address of Barack Obama
| description = Barack Obama's [[First inauguration of Barack Obama|first inaugural address]], January 20, 2009<br />(Duration: 21 minutes, 21 seconds)
}}
<pre style="overflow:auto;">
{{Listen
| image = [[File:Crystal Project video camera.png|50px]]
| help = no
| filename = Barack Obama inaugural address.ogv
| alt = A black man in a black coat gestures and talks at a lecturn surrounded by teleprompters. Behind him, in the background, are about a dozen warmly-dressed onlookers.
| title = Inaugural address of Barack Obama
| description = Barack Obama's [[First inauguration of Barack Obama|first inaugural address]], January 20, 2009<br />(Duration: 21 minutes, 21 seconds)
}}
</pre>
{{-}}
'''With header'''
{{Listen
| header = Recordings of this phrase:
| type = speech
| filename = Frase de Neil Armstrong.ogg
| title = "One small step for a man..."
| description = First words spoken on the [[Moon]]
}}
<pre style="overflow:auto;">
{{Listen
| header = Recordings of this phrase:
| type = speech
| filename = Frase de Neil Armstrong.ogg
| title = "One small step for a man..."
| description = First words spoken on the [[Moon]].
}}
</pre>
{{-}}
'''Embedding'''
{{Infobox person
| name = Dr. Accordion
| occupation = Accordion player
| module =
{{Listen
| filename = Accordion chords-01.ogg
| title = Accordion chords
| embed = yes
}}
}}
<pre style="overflow:auto;">
{{Infobox person
| name = Dr. Accordion
| occupation = Accordion player
| module =
{{Listen
| filename = Accordion chords-01.ogg
| title = Accordion chords
| embed = yes
}}
}}
</pre>
{{-}}
'''Plain'''
{|
|<pre style="overflow:auto;">
{{Listen
| filename = Accordion chords-01.ogg
| title = Accordion chords
| plain = yes
| style = float:left
}}
</pre>
|{{Listen
| filename = Accordion chords-01.ogg
| title = Accordion chords
| plain = yes
| style = float:left
}}
|}
{{-}}
'''Multiple files'''
{{Listen
| type = music
| filename = Accordion chords-01.ogg
| title = Accordion chords
| description = Chords being played on an accordion
| filename2 = Moonlight.ogg
| title2 = ''Moonlight Sonata''
| description2 = [[Ludwig van Beethoven|Beethoven]]'s [[Piano Sonata No. 14 (Beethoven)|Sonata in C-sharp minor]]
| filename3 = Brahms-waltz15.ogg
| title3 = Waltz No. 15
| description3 = From [[Sixteen Waltzes, Op. 39 (Brahms)|Sixteen Waltzes, Op. 39]] by [[Johannes Brahms|Brahms]]
}}
<syntaxhighlight lang="moin" style="overflow:auto;">
{{Listen
| type = music
| filename = Accordion chords-01.ogg
| title = Accordion chords
| description = Chords being played on an accordion
| filename2 = Moonlight.ogg
| title2 = ''Moonlight Sonata''
| description2 = [[Ludwig van Beethoven|Beethoven]]'s [[Piano Sonata No. 14 (Beethoven)|Sonata in C-sharp minor]]
| filename3 = Brahms-waltz15.ogg
| title3 = Waltz No. 15
| description3 = From [[Sixteen Waltzes, Op. 39 (Brahms)|Sixteen Waltzes, Op. 39]] by [[Johannes Brahms|Brahms]]
}}
</syntaxhighlight>
{{-}}
==Microformat==
{{UF-audio}}
== TemplateData ==
{{TemplateData header}}
<templatedata>
{
"description": "Allows audio and video files to be embedded in articles.",
"format": "{{_\n| ____________ = _\n}}\n",
"params": {
"header": {
"label": "Header",
"description": "Text or other content to go above all the files in the template (but within the template boundary). Allows markup.",
"type": "content"
},
"type": {
"label": "Music or speech icon",
"description": "Enter \"music\" or \"speech\" here to change the template icon to a speaker with music notes or a microphone.",
"type": "line",
"example": "music",
"default": "sound"
},
"image": {
"label": "Custom icon",
"description": "Custom image to replace the speaker icon in the template. Alternatively, enter \"none\" here to hide the icon entirely.",
"type": "wiki-file-name",
"example": "[[File:Example.jpg|50px]], none"
},
"filename": {
"label": "Filename",
"description": "The filename of the file. Filename2, filename3, etc. can be used for subsequent files.",
"type": "wiki-file-name",
"required": true
},
"title": {
"label": "Title",
"description": "The title to display for the file. Title2, title3, etc. can be used for subsequent files.",
"type": "string",
"required": true
},
"description": {
"label": "Description",
"description": "A description of the file. Description2, description3, etc. can be used for subsequent files.",
"type": "string",
"suggested": true
},
"start": {
"label": "Start time",
"description": "Timestamp at which the first file should start playing (start2, start3, etc. can be used for subsequent files)",
"type": "line",
"example": "0:20"
},
"length": {
"label": "Hide duration?",
"description": "Enter \"hide\" here to hide the duration of the first file (length2, length3, etc. can be used for subsequent files).",
"type": "line",
"example": "hide",
"autovalue": "hide"
},
"play": {
"label": "Hide player?",
"description": "Enter \"no\" here to hide the file player for the first file (play2, play3, etc. can be used for subsequent files). To be used for some media files that cannot be displayed inline, to prevent a broken inline link from showing.",
"type": "line",
"example": "no",
"autovalue": "no"
},
"help": {
"label": "Hide help text?",
"description": "Enter \"no\" here to hide the \"Problems playing this file? See media help.\" text at the bottom of the template. Must not be done on the first instance of the template; optional on subsequent instances of the template.",
"type": "line",
"example": "no",
"autovalue": "no"
},
"pos": {
"label": "Position",
"description": "Enter \"left\" or \"center\" here to change the default position of the template from on the right.",
"type": "line",
"example": "left",
"default": "right"
},
"plain": {
"label": "Plain style?",
"description": "Enter \"yes\" here to remove most of the ornamentation (border, background, icon and help text) and the float/positioning of the template to give a minimalist version, allowing the user to use the custom CSS (\"style\") parameter to style and position the template.",
"type": "line",
"example": "yes",
"autovalue": "yes"
},
"embed": {
"label": "Optimise for embedding?",
"description": "Enter any text here to remove the left, right and bottom border, the background, the icon, the help text and the padding of the template for use in an infobox.",
"type": "line",
"example": "y",
"autovalue": "y"
},
"style": {
"label": "Custom CSS",
"description": "Custom CSS for the template",
"type": "content",
"example": "float:none; clear:none"
}
},
"paramOrder": [
"header",
"type",
"image",
"filename",
"title",
"description",
"start",
"length",
"play",
"help",
"pos",
"plain",
"embed",
"style"
]
}
</templatedata>
==See also==
{{Audio templates}}
{{Film- and television-related infobox templates}}
<includeonly>{{Sandbox other||
[[Category:Audio templates]]
[[Category:Embeddable templates]]
[[Category:Exclude in print]]
[[Category:Templates that add a tracking category]]
}}</includeonly>
r6ntnu55h6kqn27zngrbnr9ugp3js85
Ta̱mpi̱let:Documentation
10
1245
12930
2022-05-27T22:58:38Z
Kambai Akau
15
Created page with "{{#invoke:documentation|main|_content={{ {{#invoke:documentation|contentTitle}}}}}}<noinclude> <!-- Add categories to the /doc subpage --> </noinclude>"
wikitext
text/x-wiki
{{#invoke:documentation|main|_content={{ {{#invoke:documentation|contentTitle}}}}}}<noinclude>
<!-- Add categories to the /doc subpage -->
</noinclude>
ii1kftoonz87mztj4siz1yhyqeg6agm
Ta̱mpi̱let:Documentation/docspace
10
1246
12931
2022-05-27T23:01:05Z
Kambai Akau
15
Created page with "{{#switch: {{SUBJECTSPACE}} | {{ns:0}} | {{ns:File}} | {{ns:MediaWiki}} | {{ns:Category}} = {{TALKSPACE}} | #default = {{SUBJECTSPACE}} }}<noinclude> {{documentation|content= This subtemplate of {{tl|documentation}} is used to determine the namespace of the documentation page. }}</noinclude>"
wikitext
text/x-wiki
{{#switch: {{SUBJECTSPACE}}
| {{ns:0}}
| {{ns:File}}
| {{ns:MediaWiki}}
| {{ns:Category}} = {{TALKSPACE}}
| #default = {{SUBJECTSPACE}}
}}<noinclude>
{{documentation|content=
This subtemplate of {{tl|documentation}} is used to determine the namespace of the documentation page.
}}</noinclude>
7f8iymss9sr4v7f4t5pza1arwjogrv3
Ta̱mpi̱let:Documentation/end box
10
1247
12932
2022-05-27T23:03:37Z
Kambai Akau
15
Created page with "<noinclude><div></noinclude><div style="clear: both;"></div><!--So right or left floating items don't stick out of the doc box.--> </div><!--End of green doc box--><!-- Link box below for the doc meta-data: -->{{#if: <!--Check if we should show the link box--> {{#ifeq: {{{link box|}}} | off | | {{{doc exist|yes}}}{{ #switch: {{SUBJECTSPACE}} | {{ns:User}} | {{ns:Template}} = yes }} }} | {{fmbox | id = documentation-meta-data | image = no..."
wikitext
text/x-wiki
<noinclude><div></noinclude><div style="clear: both;"></div><!--So right or left floating items don't stick out of the doc box.-->
</div><!--End of green doc box--><!--
Link box below for the doc meta-data:
-->{{#if:
<!--Check if we should show the link box-->
{{#ifeq: {{{link box|}}} | off
|
| {{{doc exist|yes}}}{{
#switch: {{SUBJECTSPACE}}
| {{ns:User}}
| {{ns:Template}} = yes
}}
}}
| {{fmbox
| id = documentation-meta-data
| image = none
| style = background-color: #ecfcf4;
| textstyle = font-style: italic;
| text =
{{#if: {{{link box|}}}
| {{{link box}}} <!--Use custom link box content-->
| {{#if: {{{doc exist|yes}}}
| <!--/doc exists, link to it-->
The above [[Wikipedia:Template documentation|documentation]] is [[Wikipedia:Transclusion|transcluded]] from [[{{{docpage|{{FULLPAGENAME}}/doc}}}]]. <small style="font-style: normal">([{{fullurl:{{{docpage|{{FULLPAGENAME}}/doc}}}|action=edit}} edit] | [{{fullurl:{{{docpage|{{FULLPAGENAME}}/doc}}}|action=history}} history])</small> <br />
}}<!--
Add links to /sandbox and /testcases when appropriate:
-->{{#switch: {{SUBJECTSPACE}}
| {{ns:User}}
| {{ns:Template}} =
Editors can experiment in this template's {{
#ifexist: {{{sandbox| {{FULLPAGENAME}}/sandbox }}}
| [[{{{sandbox| {{FULLPAGENAME}}/sandbox }}}|sandbox]] <small style="font-style: normal">([{{fullurl: {{{sandbox| {{FULLPAGENAME}}/sandbox }}} | action=edit }} edit] <nowiki>|</nowiki> [{{fullurl:Special:ComparePages | page1={{urlencode:{{{template page|{{FULLPAGENAME}}}}}}}&page2={{urlencode:{{{sandbox|{{FULLPAGENAME}}/sandbox}}}}}}} diff])</small>
| sandbox <small style="font-style: normal">([{{fullurl: {{{sandbox| {{FULLPAGENAME}}/sandbox }}} | action=edit&preload=Template:Documentation/preload-sandbox }} create] <nowiki>|</nowiki> [{{fullurl: {{{sandbox| {{FULLPAGENAME}}/sandbox }}} | action=edit&preload={{urlencode:{{{template page|{{FULLPAGENAME}}}}}}}&summary={{urlencode:Create sandbox version of [[{{{template page|{{FULLPAGENAME}}}}}]]}} }} mirror])</small>
}} and {{
#ifexist: {{{testcases| {{FULLPAGENAME}}/testcases }}}
| [[{{{testcases| {{FULLPAGENAME}}/testcases }}}|testcases]] <small style="font-style: normal">([{{fullurl: {{{testcases| {{FULLPAGENAME}}/testcases }}} | action=edit }} edit])</small>
| testcases <small style="font-style: normal">([{{fullurl: {{{testcases| {{FULLPAGENAME}}/testcases }}} | action=edit&preload=Template:Documentation/preload-testcases }} create])</small>
}} pages. <br />
}}<!--
Show the cats text, but not
if "content" fed or "docname fed" since then it is
unclear where to add the cats.
-->{{#if: {{{content|}}} {{{docname fed|}}}
|
| Please add categories to the [[{{{docpage|{{FULLPAGENAME}}/doc}}}|/doc]] subpage.
}}<!--
Show the "Subpages" link:
-->{{#switch: {{SUBJECTSPACE}}
| {{ns:File}} = <!--Don't show it-->
| {{ns:Template}} =  [[Special:PrefixIndex/{{{template page|{{FULLPAGENAME}}}}}/|Subpages of this template]].
| #default =  [[Special:PrefixIndex/{{{template page|{{FULLPAGENAME}}}}}/|Subpages of this page]].
}}
}}{{#ifexist:{{FULLPAGENAME}}/Print
|<br />A [[Help:Books/for experts#Improving the book layout|print version]] of this template exists at [[/Print]]. If you make a change to this template, please update the print version as well.[[Category:Templates with print versions]]
}}
}}
}}<!--End link box--><!--
Detect and report strange usage:
-->{{#if:
<!--Check if {{documentation}} is transcluded
on a /doc or /testcases page-->
{{#switch: {{SUBPAGENAME}}
| doc
| testcases = strange
}}
<!--More checks can be added here, just return anything
to make the surrounding if-case trigger-->
| <includeonly>[[Category:Wikipedia pages with strange ((documentation)) usage|{{main other|Main:}}{{FULLPAGENAME}}]]<!-- Sort on namespace --></includeonly>
}}<noinclude>
{{pp-template|small=yes}}
</noinclude>
0ureyobwxmpfh5nk2onuwq4n0yv4iqq
Ta̱mpi̱let:Documentation/end box2
10
1248
12933
2022-05-27T23:04:41Z
Kambai Akau
15
Created page with "{{documentation/start box | preload = {{{preload|}}} <!--Allow custom preloads--> | heading = {{{heading|¬}}} <!--Empty but defined means no header--> | heading-style = {{{heading-style|}}} | content = {{{content|}}} | docpage = {{#if: {{{1|}}} | {{{1|}}} | {{{docspace|{{NAMESPACE}}}}}:{{{template page|{{PAGENAME}}}}}/doc }} | doc exist = {{#ifexist: {{#if: {{{1|}}} | {{{1|}}} <!--Other docname fed--> | {{{docspace|{{NAMESPACE}}}}}:{{{te..."
wikitext
text/x-wiki
{{documentation/start box
| preload = {{{preload|}}} <!--Allow custom preloads-->
| heading = {{{heading|¬}}} <!--Empty but defined means no header-->
| heading-style = {{{heading-style|}}}
| content = {{{content|}}}
| docpage =
{{#if: {{{1|}}}
| {{{1|}}}
| {{{docspace|{{NAMESPACE}}}}}:{{{template page|{{PAGENAME}}}}}/doc
}}
| doc exist =
{{#ifexist:
{{#if: {{{1|}}}
| {{{1|}}} <!--Other docname fed-->
| {{{docspace|{{NAMESPACE}}}}}:{{{template page|{{PAGENAME}}}}}/doc
}}
| yes
}}
}}<noinclude>
{{pp-template}}
<!-- Add categories and interwikis to the /doc subpage, not here! -->
</noinclude>
evvfdz38x89xmzvm8q6m4pimyhoko4m
Ta̱mpi̱let:Documentation/start box
10
1249
12934
2022-05-27T23:05:58Z
Kambai Akau
15
Created page with "<!-- Start of green doc box --><div class="template-documentation" style="background-color:#ecfcf4; border:1px solid #aaa; padding:12px;"><!-- Add the heading at the top of the doc box: -->{{#ifeq: {{{heading|¬}}} | <!--Defined but empty--> | <!--"heading=", do nothing--> | <div style="padding-bottom: 3px; border-bottom: 1px solid #aaa; margin-bottom: 1ex;">{{ #if: {{{content|}}} | | <!--Add the [view][edit][history][purge] or [create] links--> <span clas..."
wikitext
text/x-wiki
<!--
Start of green doc box
--><div class="template-documentation" style="background-color:#ecfcf4; border:1px solid #aaa; padding:12px;"><!--
Add the heading at the top of the doc box:
-->{{#ifeq: {{{heading|¬}}} | <!--Defined but empty-->
| <!--"heading=", do nothing-->
| <div style="padding-bottom: 3px; border-bottom: 1px solid #aaa; margin-bottom: 1ex;">{{
#if: {{{content|}}}
|
| <!--Add the [view][edit][history][purge] or [create] links-->
<span class="editsection plainlinks" id="doc_editlinks">{{
#if: {{{doc exist|yes}}}
| [[[{{{docpage|{{FULLPAGENAME}}/doc}}}|view]]] [[{{fullurl:{{{docpage|{{FULLPAGENAME}}/doc}}}|action=edit}} edit]] [[{{fullurl:{{{docpage|{{FULLPAGENAME}}/doc}}}|action=history}} history]] [{{purge|purge}}]
| <!--/doc doesn't exist-->
[[{{fullurl:{{{docpage|{{FULLPAGENAME}}/doc}}}| action=edit&preload={{
#if: {{{preload|}}}
| {{urlencode:{{{preload}}}}}
| {{#ifeq: {{SUBJECTSPACE}} | {{ns:File}}
| Template:Documentation/preload-filespace
| Template:Documentation/preload
}} }} }} create]]
}}</span>
}} <span style="{{#if: {{{heading-style|}}}
| {{{heading-style|}}}
| {{#ifeq: {{SUBJECTSPACE}} | {{ns:Template}}
| font-weight: bold; font-size: 125%
| font-size: 150%
}}
}}">{{#switch: {{{heading|¬}}}
| ¬ =
<!--"heading" not defined in this or previous level-->
{{#switch: {{SUBJECTSPACE}}
| {{ns:Template}} = [[File:Template-info.png|50px|link=|alt=Documentation icon]] Template documentation
| {{ns:File}} = Summary
| #default = Documentation
}}
| #default =
<!--"heading" has data or is empty but defined-->
{{{heading|}}}
}}</span></div>
}}<noinclude><!-- close the div --></div>
<!-- Add categories and interwikis to the /doc subpage, not here! -->
</noinclude>
b2sw6r8o94y60zkdpfpg6g9pkglbk3o
Ta̱mpi̱let:Documentation/start box2
10
1250
12936
12935
2022-05-27T23:08:34Z
Kambai Akau
15
Kambai Akau shyei peji [[Ta̱áímpi̱áílet:Listen/Documentation/start box2]] nat [[Ta̱áímpi̱áílet:Documentation/start box2]]
wikitext
text/x-wiki
{{documentation/start box
| preload = {{{preload|}}} <!--Allow custom preloads-->
| heading = {{{heading|¬}}} <!--Empty but defined means no header-->
| heading-style = {{{heading-style|}}}
| content = {{{content|}}}
| docpage =
{{#if: {{{1|}}}
| {{{1|}}}
| {{{docspace|{{NAMESPACE}}}}}:{{{template page|{{PAGENAME}}}}}/doc
}}
| doc exist =
{{#ifexist:
{{#if: {{{1|}}}
| {{{1|}}} <!--Other docname fed-->
| {{{docspace|{{NAMESPACE}}}}}:{{{template page|{{PAGENAME}}}}}/doc
}}
| yes
}}
}}<noinclude>
{{pp-template}}
<!-- Add categories and interwikis to the /doc subpage, not here! -->
</noinclude>
evvfdz38x89xmzvm8q6m4pimyhoko4m
Ta̱mpi̱let:Fa̱k/Documentation/start box2
10
1251
15715
12937
2022-08-11T22:55:05Z
Kambai Akau
15
Kambai Akau shyei peji [[Ta̱mpi̱let:Listen/Documentation/start box2]] nat [[Ta̱mpi̱let:Fa̱k/Documentation/start box2]]: Di̱n Tyap
wikitext
text/x-wiki
#REDIRECT [[Ta̱áímpi̱áílet:Documentation/start box2]]
mfd2ph7i8xaawt7udjr59ljsv791dfk
Ta̱mpi̱let:Documentation/template page
10
1252
12938
2022-05-27T23:09:30Z
Kambai Akau
15
Created page with "{{#switch: {{SUBPAGENAME}} | sandbox | testcases = {{BASEPAGENAME}} | #default = {{PAGENAME}} }}<noinclude>{{documentation|content= This subtemplate of {{tl|documentation}} is used to determine the template page name. }}</noinclude>"
wikitext
text/x-wiki
{{#switch: {{SUBPAGENAME}}
| sandbox
| testcases = {{BASEPAGENAME}}
| #default = {{PAGENAME}}
}}<noinclude>{{documentation|content=
This subtemplate of {{tl|documentation}} is used to determine the template page name.
}}</noinclude>
fenc3r6oe2sito28b1d8xgyo9gpq5uf
Ta̱mpi̱let:Audio
10
1253
13215
12939
2022-05-31T19:21:32Z
Kambai Akau
15
wikitext
text/x-wiki
<includeonly>{{#if:{{{1|}}}|{{#ifexist:Media:{{{1}}}|<span class="unicode haudio"><span class="fn"><span style="white-space:nowrap;margin-right:.25em;">[[File:Loudspeaker.svg|11px|link=File:{{{1}}}|About this sound|alt=]]</span>[[:Media:{{{1|}}}|{{{2|{{{1|}}}}}}]]</span>{{#ifeq:{{{help|}}}|no|| <small class="metadata audiolinkinfo" style="cursor:help;">([[Wikipedia:Media help|<span style="cursor:help;">help</span>]]·[[:File:{{{1|}}}|<span style="cursor:help;">info</span>]])</small>}}{{main other|[[Category:Articles with hAudio microformats]]}}</span>|{{error{{main other||-small}}|Audio file "{{{1}}}" not found}}<!-- tracking category begin -->{{Category handler|[[Category:Pages linking to missing files]]}}<!-- tracking category end -->}}}}</includeonly><noinclude>
{{documentation}}<!-- Add categories and interwikis to the /doc subpage, not here! -->
</noinclude>
qcorin8f88efg7r5oufpzcztskyv5gt
Ta̱mpi̱let:Fa̱k/doc (section)
10
1254
15719
12940
2022-08-11T22:55:06Z
Kambai Akau
15
Kambai Akau shyei peji [[Ta̱mpi̱let:Listen/doc (section)]] nat [[Ta̱mpi̱let:Fa̱k/doc (section)]]: Di̱n Tyap
wikitext
text/x-wiki
==Simple usage==
<pre style="overflow: auto">
{{Listen
| filename =
| title =
| description =
| pos =
}}
</pre>
* '''filename''' ''(Required)'': the pagename of the media file, {{em|without}} the <code>File:</code> (formerly <code>Image:</code>) prefix
* '''title''' ''(Required)'': the title of the audio file, to be displayed. Do not use wikilinks in the title – they will not work.
* '''description''': a description of the sounds being heard
* '''pos''': right (default), left, or center
===Multiple files===
Additional files can be embedded in an article with one template by appending a number to each parameter.
<pre style="overflow: auto">
{{Listen
| filename =
| title =
| alt =
| description =
| filename2 =
| title2 =
| alt2 =
| description2 =
| filename3 =
| title3 =
| alt3 =
| description3 =
}}
</pre>
* '''filename''' ''(Required)'': the pagename of the media file, ''without'' the File: (formerly Image:) prefix
* '''title''' ''(Required)'': the title of the audio file, to be displayed.
* '''alt''': alt text for the image displayed for the file, for visually impaired readers; see ''[[Wikipedia:Alternative text for images]]''. This is needed for file formats such as [[Ogg]]'s <code>.ogv</code> format that include video as well as sound. The alt text should describe just the initial static image, not the entire video or its sound.
* '''description''': a description of the sounds being heard
1btio2svdqx5qv1zqsopak0s3xqjwni
Module:Fa̱k
828
1255
15710
12941
2022-08-11T22:52:06Z
Kambai Akau
15
Kambai Akau shyei peji [[Module:Listen]] nat [[Module:Fa̱k]] di̱ mi̱n wot a̱shaivak: Di̱n Tyap
Scribunto
text/plain
-- This module implements {{listen}}.
local mFileLink = require('Module:File link')
local mTableTools = require('Module:TableTools')
local mSideBox = require('Module:Side box')
local lang = mw.language.new('en')
local p = {}
function p.main(frame)
local origArgs = frame:getParent().args
local args = {}
for k, v in pairs(origArgs) do
if v ~= '' then
args[k] = v
end
end
return p._main(args)
end
function p._main(args)
-- Find whether we are outputting a plain or an embedded box.
local isPlain = args.plain == 'yes'
local isEmbedded = args.embed and true
local hasMissing, previewWarning
-- Organise the arguments by number.
local numArgs, missingFiles = {}, {}
do
local origNumArgs = mTableTools.numData(args)
origNumArgs[1] = origNumArgs.other -- Overwrite args.filename1 etc. with args.filename etc.
origNumArgs = mTableTools.compressSparseArray(origNumArgs)
for i, t in ipairs(origNumArgs) do
-- Check if the files exist.
local obj = t.filename and mw.title.new('Media:' .. t.filename)
if obj and obj.exists then
t.length = t.length ~= 'hide' and obj.file.length
numArgs[#numArgs + 1] = t
else
missingFiles[#missingFiles + 1] = t.filename or i
end
end
end
-- Render warning
hasMissing = #missingFiles ~= 0
if hasMissing then
for i, v in ipairs(missingFiles) do
missingFiles[i] = type(v) == 'string'
and string.format('missing file "%s"', v)
or string.format('empty filename #%s', v)
end
previewWarning = string.format(
'Page using [[Template:Listen]] with %s',
mw.text.listToText(missingFiles)
)
previewWarning = require('Module:If preview')._warning({previewWarning})
else
previewWarning = ''
end
-- Exit early if none exist.
if #numArgs == 0 then
return previewWarning .. p.renderTrackingCategories(isPlain, hasMissing, true)
end
-- Build the arguments for {{side box}}
local sbArgs = {}
sbArgs.class = 'noprint'
sbArgs.metadata = 'no'
sbArgs.position = args.pos
-- Style arguments
do
local style = {}
if isPlain then
style[#style + 1] = 'border:none'
style[#style + 1] = 'background:transparent'
style[#style + 1] = 'float:none'
end
if isEmbedded then
style[#style + 1] = 'border-collapse:collapse'
style[#style + 1] = 'border-width:1px 0 0 0'
style[#style + 1] = 'background:transparent'
style[#style + 1] = 'float:none'
style[#style + 1] = 'margin:0 -5px'
end
if args.pos == 'left' then
style[#style + 1] = 'float:left'
style[#style + 1] = 'overflow:visible'
elseif args.pos == 'center' then
style[#style + 1] = 'float:none'
style[#style + 1] = 'margin-left:auto'
style[#style + 1] = 'margin-right:auto'
end
style[#style + 1] = args.style
sbArgs.style = table.concat(style, '; ')
end
sbArgs.textstyle = 'line-height:1.1em'
-- Image
if not isPlain and not isEmbedded then
if args.image then
sbArgs.image = args.image
else
local images = {
speech = 'Audio-input-microphone.svg',
music = 'Gnome-mime-audio-openclipart.svg'
}
local image = args.type
and images[args.type]
or 'Gnome-mime-sound-openclipart.svg'
sbArgs.image = mFileLink._main{
file = image,
size = '65x50px',
location = 'center',
link = '',
alt = ''
}
end
end
-- Text
do
local header
if args.header then
header = mw.html.create('div')
header:css{
background = 'transparent',
['text-align'] = 'left',
padding = args.embed and '2px 0' or '2px'
}
:wikitext(args.header)
header = tostring(header)
header = header .. '\n'
else
header = ''
end
local text = {}
for i, t in ipairs(numArgs) do
text[#text + 1] = p.renderRow(
t.filename, t.title, t.play, t.alt, t.description, t.start, t.length
)
if numArgs[i + 1] then
text[#text + 1] = '<hr/>'
end
end
sbArgs.text = header .. table.concat(text)
end
-- Below
if not isPlain and not isEmbedded and args.help ~= 'no' then
sbArgs.below = string.format(
'<hr/><i class="selfreference">Problems playing %s? See [[Help:Media|media help]].</i>',
#numArgs == 1 and 'this file' or 'these files'
)
end
-- Render the side box.
local sideBox = mSideBox._main(sbArgs)
-- Render the tracking categories.
local trackingCategories = p.renderTrackingCategories(isPlain, hasMissing)
return previewWarning .. sideBox .. trackingCategories
end
function p.renderRow(filename, title, play, alt, description, start, length)
-- Renders the HTML for one file description row.
if not filename then
return nil
end
length = p.formatLength(length)
length = length and string.format(' (%s)', length) or ''
local root = mw.html.create('')
root:tag('div')
:addClass('haudio')
:newline()
:tag('div')
:css('padding', '4px 0')
:wikitext(string.format('[[:File:%s|%s]]%s', filename, title or '', length))
:done()
:newline()
:tag('div')
:wikitext(
play ~= 'no'
and mFileLink._main{
file = filename,
size = '233px',
alt = alt,
start = start
}
or nil
)
:done()
:newline()
:tag('div')
:css('padding', '2px 0 0 0')
:addClass('description')
:wikitext(description)
:done()
:done()
return tostring(root)
end
function p.formatLength(length)
-- Formats a duration in seconds in "(h:)mm:ss" (minutes are zero-padded
-- only if there are hours).
if not length or length == 0 then
return nil
end
-- Add 0.5 to offset the rounding down
local t = lang:getDurationIntervals(length + 0.5, { 'hours', 'minutes', 'seconds' })
local s = t.seconds and string.format('%02d', t.seconds) or '00'
local m = t.minutes or 0
local span = mw.html.create('span'):addClass('duration')
if t.hours then
span
:tag('span')
:addClass('h')
:wikitext(t.hours)
:done()
:wikitext(':')
m = string.format('%02d', m)
end
span
:tag('span')
:addClass('min')
:wikitext(m)
:done()
:wikitext(':')
:tag('span')
:addClass('s')
:wikitext(s)
:done()
return tostring(span)
end
function p.renderTrackingCategories(isPlain, hasMissing, isEmpty, titleObj)
-- Renders all tracking categories produced by the template.
-- isPlain, hasMissing and isEmpty are passed through from p._main,
-- and the titleObj is only used for testing purposes.
local cats = {}
local currentTitle = titleObj or mw.title.getCurrentTitle()
if currentTitle.namespace == 0 then
-- We are in mainspace.
if not isEmpty then
cats[#cats + 1] = 'Articles with hAudio microformats'
end
if hasMissing then
cats[#cats + 1] = 'Articles with empty listen template'
end
end
if isPlain then
cats[#cats + 1] = 'Listen template using plain parameter'
end
for i, cat in ipairs(cats) do
cats[i] = string.format('[[Category:%s]]', cat)
end
return table.concat(cats)
end
return p
m0xb3a2afng0usk12p3snsjulkgwn02
Ta̱mpi̱let:Ml
10
1256
12943
12942
2022-05-27T23:29:19Z
Kambai Akau
15
Kambai Akau shyei peji [[Ta̱áímpi̱áílet:MI]] nat [[Ta̱áímpi̱áílet:Ml]]
wikitext
text/x-wiki
{{{{{{{|safesubst:}}}#invoke:Separated entries|main|[[Module:{{{1}}}{{{section|}}}|#invoke:{{{1}}}]]|{{{2|''function''}}}|separator=|}}}}<noinclude>
{{documentation}}
<!-- Categories go on the /doc subpage and interwikis go on Wikidata. -->
</noinclude>
92wyuj6sw2ipoflnv2ynqqdv223b4b9
Ta̱mpi̱let:MI
10
1257
12944
2022-05-27T23:29:20Z
Kambai Akau
15
Kambai Akau shyei peji [[Ta̱áímpi̱áílet:MI]] nat [[Ta̱áímpi̱áílet:Ml]]
wikitext
text/x-wiki
#REDIRECT [[Ta̱áímpi̱áílet:Ml]]
7ec7crh0r7vm4zoji5hregj9bfok994
Ta̱mpi̱let:Hatnote inline/invoke
10
1258
12945
2022-05-27T23:30:28Z
Kambai Akau
15
Created page with "<includeonly>{{#invoke:Hatnote inline|hatnote}}</includeonly><noinclude> {{Documentation|content=This is an includeonly part of [[Template:Hatnote inline]].}}</noinclude>"
wikitext
text/x-wiki
<includeonly>{{#invoke:Hatnote inline|hatnote}}</includeonly><noinclude>
{{Documentation|content=This is an includeonly part of [[Template:Hatnote inline]].}}</noinclude>
m1z1xbnw86i1o2sdaq1aetcb7vbbg8j
Ta̱mpi̱let:Hatnote inline
10
1259
12946
2022-05-27T23:31:48Z
Kambai Akau
15
Created page with "{{Hatnote inline/invoke |1={{{1|{{{text|{{{content}}}}}}}}} |extraclasses={{{class|{{{extraclasses|}}}}}} |selfref={{#if:{{{printworthy|{{{selfref|}}}}}}||yes}} |category={{{category|}}} |inline={{{inline|true}}} }}<noinclude> {{documentation}} <!-- Categories go on the /doc subpage, and interwikis go on Wikidata. --> </noinclude>"
wikitext
text/x-wiki
{{Hatnote inline/invoke
|1={{{1|{{{text|{{{content}}}}}}}}}
|extraclasses={{{class|{{{extraclasses|}}}}}}
|selfref={{#if:{{{printworthy|{{{selfref|}}}}}}||yes}}
|category={{{category|}}}
|inline={{{inline|true}}}
}}<noinclude>
{{documentation}}
<!-- Categories go on the /doc subpage, and interwikis go on Wikidata. -->
</noinclude>
4doji1f0rr521l3b49esofuuiwas7cl
Ta̱mpi̱let:Featured Image/Image 1
10
1260
12947
2022-05-27T23:49:07Z
Kambai Akau
15
Created page with "<gallery class="center"> Kafanchan train station 1.jpg| Matsirga Falls, Kafanchan.jpg| </gallery>"
wikitext
text/x-wiki
<gallery class="center">
Kafanchan train station 1.jpg|
Matsirga Falls, Kafanchan.jpg|
</gallery>
mmj0kp6d7n2v8azgmpzlxitkx49iftn
Ta̱mpi̱let:Khwuk ati̱kut a̱fai mi̱ Wukipedia
10
1261
14899
14898
2022-07-15T20:59:40Z
Kambai Akau
15
wikitext
text/x-wiki
{| style="background-color:#AEEEEA; width: 100%; border: 3px solid #CCCCCC; padding: 5px"
|<div style="text-align: center; margin-top: 2em;">Ka̱ a cat a khwuk ati̱kut Wukipedia di̱n Tyap, tyia̱ a̱lyoot nggu ka mami a̱sai a̱kwati wu a̱ shyia̱ a̱tatak ka a̱ni, a si̱ nyap "Khwuk ati̱kut a̱fai" ma̱ a̱kwati a̱ na bwuak neet a̱sa̱khwot ntong nat a̱sa̱khwot bula wu a̱ni a̱tafa.
'''Zi̱ gwai mat jhyet ang ji mi̱ Wukipedia nTyap ka gba̱mgbam!'''
<inputbox>
type=create
width=50
bgcolor=
preload=Template:Standard content for new page
editintro=Template:Instructions
default=
buttonlabel=Khwuk ati̱kut a̱fai
</inputbox>
<div style="text-align: center; margin-top: 2em;">
'''[[Wat_khwo:Statistics|a̱mgba̱m ngwat na]]'''<br>
[[A̱tsatsak A̱yaati̱kut|A̱tsatsak a̱yaati̱kut]]
</div>
|}
ipr50kso8curvgokcox5kvxkkxzlh1m
Khwuk ati̱kut a̱fai mi̱ Wukipedia
0
1262
12963
2022-05-28T00:41:30Z
Kambai Akau
15
Kambai Akau shyei peji [[Khwuk ati̱kut a̱fai mi̱ Wukipedia]] nat [[Ta̱áímpi̱áílet:Khwuk ati̱kut a̱fai mi̱ Wukipedia]]
wikitext
text/x-wiki
#REDIRECT [[Ta̱áímpi̱áílet:Khwuk ati̱kut a̱fai mi̱ Wukipedia]]
bzrel4vbcfo5wcoq5b5z6gxyqcjhijz
Wukipedia:Á̱nienta̱m nang á̱ nwuak shim da̱ mba
4
1263
12976
2022-05-29T01:12:55Z
LisafBia6531
225
Redirected page to [[en:Wikipedia:User groups#autoconfirmed]]
wikitext
text/x-wiki
#REDIRECT [[en:Wikipedia:User groups#autoconfirmed]]
12ash1r1utmbmbls5hwwjfj48xk5i41
Sa:Zwák
14
1264
12979
2022-05-29T16:13:26Z
Kambai Akau
15
Created blank page
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Tsang
14
1265
12986
2022-05-29T16:45:38Z
Kambai Akau
15
Created blank page
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Nkhang a̱byin Naijeriya
14
1266
12990
2022-05-29T16:56:13Z
Kambai Akau
15
Created blank page
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Mman Shan Naijeriya
0
1267
12997
2022-05-29T17:20:02Z
Kambai Akau
15
Kambai Akau shyei peji [[Mman Shan Naijeriya]] nat [[Mmanshan Naijeriya]]: Ku lan tyia̱ a̱ni.
wikitext
text/x-wiki
#REDIRECT [[Mmanshan Naijeriya]]
g4bmbe41gfhdyoiogkbj2oto1mk2137
Sa:A̱khwot Á̱kwop Naijeriya
14
1268
13005
2022-05-29T17:42:59Z
Kambai Akau
15
Created blank page
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:A̱khwot Á̱kwop Tswazwa Naijeriya
14
1269
13009
2022-05-29T17:46:08Z
Kambai Akau
15
Created page with "[[Category:A̱khwot Á̱kwop Naijeriya]]"
wikitext
text/x-wiki
[[Category:A̱khwot Á̱kwop Naijeriya]]
5o68skmfprybmpz8soipk7s3t9z7jmb
A̱khwot A̱kwop A̱sa̱khwot Naijeriya
0
1271
13017
2022-05-29T17:56:55Z
Kambai Akau
15
Kambai Akau shyei peji [[A̱khwot A̱kwop A̱sa̱khwot Naijeriya]] nat [[A̱khwot Á̱kwop A̱sa̱khwot Naijeriya]]
wikitext
text/x-wiki
#REDIRECT [[A̱khwot Á̱kwop A̱sa̱khwot Naijeriya]]
q92l51l14j187cc2dca0v8sr3u2zvp2
A̱khwot A̱kwop Tswazwa Naijeriya
0
1272
13021
2022-05-29T18:04:12Z
Kambai Akau
15
Kambai Akau shyei peji [[A̱khwot A̱kwop Tswazwa Naijeriya]] nat [[A̱khwot Á̱kwop Tswazwa Naijeriya]]: Ku lan tyia̱ a̱ni.
wikitext
text/x-wiki
#REDIRECT [[A̱khwot Á̱kwop Tswazwa Naijeriya]]
1eq5x2hj9vsr0sg7vjpxqob8uy8rjol
A̱khwot A̱kwop A̱byin Naijeriya
0
1273
13023
2022-05-29T18:09:03Z
Kambai Akau
15
Kambai Akau shyei peji [[A̱khwot A̱kwop A̱byin Naijeriya]] nat [[A̱khwot Á̱kwop A̱byin Naijeriya]]: Ku lan tyia̱ a̱ni.
wikitext
text/x-wiki
#REDIRECT [[A̱khwot Á̱kwop A̱byin Naijeriya]]
3wayoxlgfz5n0x5jzwwho17d1uy51tv
Da (a̱lyem)
0
1274
13034
2022-05-29T18:27:59Z
Kambai Akau
15
Kambai Akau shyei peji [[Da (a̱lyem)]] nat [[Daa (a̱lyem)]]
wikitext
text/x-wiki
#REDIRECT [[Daa (a̱lyem)]]
oiuyjwcsayxbk771yudh3nxgb897x3c
A̱daa
0
1275
13038
13037
2022-05-29T18:30:18Z
Kambai Akau
15
Kambai Akau shyei peji [[A̱da (á̱niet)]] nat [[A̱daa]]
wikitext
text/x-wiki
#REDIRECT [[A̱daa (á̱niet)]]
67v6u8fw6ucqlmipt1aqejsisy7bn1h
A̱da (á̱niet)
0
1276
14487
13039
2022-06-13T10:43:42Z
Vargenau
226
Changed redirect target from [[A̱daa]] to [[A̱daa (á̱niet)]]
wikitext
text/x-wiki
#REDIRECT [[A̱daa (á̱niet)]]
67v6u8fw6ucqlmipt1aqejsisy7bn1h
Zango Katab
0
1277
13052
2022-05-29T18:50:51Z
Kambai Akau
15
Redirected page to [[Zangon Katab]]
wikitext
text/x-wiki
#REDIRECT [[Zangon Katab]]
a49d64a86wjep80k54w8p9n20uci055
Zango A̱tyap
0
1278
13054
2022-05-29T18:51:36Z
Kambai Akau
15
Redirected page to [[Zangon Katab]]
wikitext
text/x-wiki
#REDIRECT [[Zangon Katab]]
a49d64a86wjep80k54w8p9n20uci055
Sa:Susot A̱gwomna̱ti Mali mi̱ Si̱tet Ka̱duna
14
1281
13061
2022-05-29T18:55:05Z
Kambai Akau
15
Created blank page
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Susot a̱gwomna̱ti mali
14
1283
13066
2022-05-29T18:58:31Z
Kambai Akau
15
Created blank page
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Sot a̱gwomna̱ti mali Zangon Katab
14
1285
13085
2022-05-29T19:15:01Z
Kambai Akau
15
Created blank page
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Ntongjan
14
1286
13092
2022-05-29T19:55:17Z
Kambai Akau
15
Created blank page
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Ngwat nghai swáng a̱lyiat
14
1287
13102
2022-05-29T20:58:29Z
Kambai Akau
15
Created blank page
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Nkyang a̱li nwuan a̱vwuo
14
1288
13110
2022-05-29T21:44:28Z
Kambai Akau
15
Created blank page
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Lilyoot Sitet Najeriya di̱ ncei
0
1289
13125
2022-05-30T08:22:39Z
Kambai Akau
15
Kambai Akau shyei peji [[Lilyoot Sitet Najeriya di̱ ncei]] nat [[Lyulyoot sí̱tet Naijeriya di̱ nce]]: Ku lan tyia̱ a̱ni.
wikitext
text/x-wiki
#REDIRECT [[Lyulyoot sí̱tet Naijeriya di̱ nce]]
o95gbgo8bou3k59kd3qhrpudpqyt5v8
Mam A̱niettyia̱t Swatnta ba
0
1290
13134
2022-05-30T09:38:07Z
Kambai Akau
15
Kambai Akau shyei peji [[Mam A̱niettyia̱t Swatnta ba]] nat [[Mam Á̱niettyiet Swanta]]: Ku lan tyia̱ a̱ni.
wikitext
text/x-wiki
#REDIRECT [[Mam Á̱niettyiet Swanta]]
tawkfb3nm8oq5e7gjgl75iilxqobh2l
Mam Ni̱neam A̱bin ma̱ng A̱bin
0
1291
13138
2022-05-30T10:11:15Z
Kambai Akau
15
Kambai Akau shyei peji [[Mam Ni̱neam A̱bin ma̱ng A̱bin]] nat [[Mam A̱ka̱neam Bibyin Swanta]]: Ku lan tyia̱ a̱ni.
wikitext
text/x-wiki
#REDIRECT [[Mam A̱ka̱neam Bibyin Swanta]]
i1cnoavsgfgh8x5z3zfjpr17f5h1836
Mam A̱nyiuk Kuzanga̱byin
0
1292
13143
2022-05-30T10:33:18Z
Kambai Akau
15
Kambai Akau shyei peji [[Mam A̱nyiuk Kuzanga̱byin]] nat [[Mam A̱nyiuk Bibyin Swanta]]: Ku lan tyia̱ a̱ni.
wikitext
text/x-wiki
#REDIRECT [[Mam A̱nyiuk Bibyin Swanta]]
0o513nusmgubenligg4pyq1jzyhqqqd
Wasap
0
1293
13152
2022-05-30T11:23:37Z
Kambai Akau
15
Kambai Akau shyei peji [[Wasap]] nat [[WhatsApp]]: Ku lan tyia̱ a̱ni.
wikitext
text/x-wiki
#REDIRECT [[WhatsApp]]
czpz3oabkhrnm7egy88vub8gl35xq53
A̱nfwongswup
0
1294
13160
2022-05-30T20:28:36Z
Kambai Akau
15
Kambai Akau shyei peji [[A̱nfwongswup]] nat [[A̱nfwuong-swup]]: Ku lan tyia̱ a̱ni.
wikitext
text/x-wiki
#REDIRECT [[A̱nfwuong-swup]]
ikld5qgv2eapn3dibnbrh7s1zzevaec
Ta̱mpi̱let:Lilyem Wukipedia
10
1295
13575
13559
2022-06-02T06:21:25Z
Kambai Akau
15
wikitext
text/x-wiki
{{Ati̱kut Kidee/tamm
|image=Language icon.png
|header=Lilyem Wukipedia
|content=
<!-- Note: Á̱ na ni̱ nkpa tamm jini á̱ sak shi nji ca̱caat ma̱ng si̱ Template:Nta̱m Wukimedia jhyang hu. --><templatestyles src="Lilyem Wukipedia/styles.css"/>
<div class="wikipedia-languages nourlexpansion">
Di̱n tsa hu, á̱ ku lyuut Wukipedia di̱n [[Shong (a̱lyem)|Shong]] ja ma̱nyin, a̱wot ma̱nini, Tyap si̱ byia̱ si̱ nji hu. A̱fwun ka, á̱ lyuut Wukipedia di̱ [[meta:List of Wikipedias|lilyem ma̱ a̱di̱di̱t ghyáng mbeang]]; lilyem ku swak ma̱ng shi a̱yaati̱kut huhwa shyia̱ a̱tatak a̱ji.
<ul class="plainlinks">
<li>
<div class="wikipedia-languages-count-container">
<div class="wikipedia-languages-prettybars"></div>
<div role="heading" aria-level="3" class="wikipedia-languages-count">A̱yaati̱kut 1,000,000+</div>
<div class="wikipedia-languages-prettybars"></div>
</div>
<ul class="wikipedia-languages-langs hlist hlist-separated inline">
<li>{{Lilyem Wukipedia/a̱cyian|ar}}</li>
<li>{{Lilyem Wukipedia/a̱cyian|de}}</li>
<li>{{Lilyem Wukipedia/a̱cyian|en}}</li>
<li>{{Lilyem Wukipedia/a̱cyian|es}}</li>
<li>{{Lilyem Wukipedia/a̱cyian|fr}}</li>
<li>{{Lilyem Wukipedia/a̱cyian|it}}</li>
<li>{{Lilyem Wukipedia/a̱cyian|nl}}</li>
<li>{{Lilyem Wukipedia/a̱cyian|ja}}</li>
<li>{{Lilyem Wukipedia/a̱cyian|pl}}</li>
<li>{{Lilyem Wukipedia/a̱cyian|pt}}</li>
<li>{{Lilyem Wukipedia/a̱cyian|ru}}</li>
<li>{{Lilyem Wukipedia/a̱cyian|sv}}</li>
<li>{{Lilyem Wukipedia/a̱cyian|uk}}</li>
<li>{{Lilyem Wukipedia/a̱cyian|vi}}</li>
<li>{{Lilyem Wukipedia/a̱cyian|zh}}</li>
</ul>
</li>
<li>
<div class="wikipedia-languages-count-container">
<div class="wikipedia-languages-prettybars"></div>
<div role="heading" aria-level="3" class="wikipedia-languages-count">A̱yaati̱kut 250,000+</div>
<div class="wikipedia-languages-prettybars"></div>
</div>
<ul class="wikipedia-languages-langs hlist hlist-separated inline">
<li>{{Lilyem Wukipedia/a̱cyian|id}}</li>
<li>{{Lilyem Wukipedia/a̱cyian|ms}}</li>
<li>{{Lilyem Wukipedia/a̱cyian|nan}}</li>
<li>{{Lilyem Wukipedia/a̱cyian|bg}}</li>
<li>{{Lilyem Wukipedia/a̱cyian|ca}}</li>
<li>{{Lilyem Wukipedia/a̱cyian|cs}}</li>
<li>{{Lilyem Wukipedia/a̱cyian|da}}</li>
<li>{{Lilyem Wukipedia/a̱cyian|eo}}</li>
<li>{{Lilyem Wukipedia/a̱cyian|eu}}</li>
<li>{{Lilyem Wukipedia/a̱cyian|fa}}‎<!--a̱zamyian-naat-a̱zayak cak si̱ hu a cat a̱ni tsi̱tsak lilyem a̱zayak-naat-a̱zamyian ku khwi ghyáng a̱ni--></li>
<li>{{Lilyem Wukipedia/a̱cyian|he}}</li>
<li>{{Lilyem Wukipedia/a̱cyian|ko}}</li>
<li>{{Lilyem Wukipedia/a̱cyian|hu}}</li>
<li>{{Lilyem Wukipedia/a̱cyian|no}}</li>
<li>{{Lilyem Wukipedia/a̱cyian|ro}}</li>
<li>{{Lilyem Wukipedia/a̱cyian|sr}}</li>
<li>{{Lilyem Wukipedia/a̱cyian|sh}}</li>
<li>{{Lilyem Wukipedia/a̱cyian|fi}}</li>
<li>{{Lilyem Wukipedia/a̱cyian|tr}}</li>
</ul>
</li>
<li>
<div class="wikipedia-languages-count-container">
<div class="wikipedia-languages-prettybars"></div>
<div role="heading" aria-level="3" class="wikipedia-languages-count">A̱yaati̱kut 50,000+</div>
<div class="wikipedia-languages-prettybars"></div>
</div>
<ul class="wikipedia-languages-langs hlist hlist-separated inline">
<li>{{Lilyem Wukipedia/a̱cyian|ast}}</li>
<li>{{Lilyem Wukipedia/a̱cyian|bn}}</li>
<li>{{Lilyem Wukipedia/a̱cyian|bs}}</li>
<li>{{Lilyem Wukipedia/a̱cyian|et}}</li>
<li>{{Lilyem Wukipedia/a̱cyian|el}}</li>
<li>{{Lilyem Wukipedia/a̱cyian|simple}}</li>
<li>{{Lilyem Wukipedia/a̱cyian|gl}}</li>
<li>{{Lilyem Wukipedia/a̱cyian|hr}}</li>
<li>{{Lilyem Wukipedia/a̱cyian|lv}}</li>
<li>{{Lilyem Wukipedia/a̱cyian|lt}}</li>
<li>{{Lilyem Wukipedia/a̱cyian|ml}}</li>
<li>{{Lilyem Wukipedia/a̱cyian|mk}}</li>
<li>{{Lilyem Wukipedia/a̱cyian|nn}}</li>
<li>{{Lilyem Wukipedia/a̱cyian|sq}}</li>
<li>{{Lilyem Wukipedia/a̱cyian|sk}}</li>
<li>{{Lilyem Wukipedia/a̱cyian|sl}}</li>
<li>{{Lilyem Wukipedia/a̱cyian|th}}</li>
</ul>
</li>
</ul>
</div><noinclude>
{{documentation}}
<!-- Mbeang si̱sa ma̱ng a̱yaawuki vwuon mi̱ a̱bawat /doc ka, yok tyia̱ a̱ji bah! -->
</noinclude>
|down=
|font-size=90
}}
ppo1u27h1aipcv653vpd8wmgsg5mytw
Ta̱mpi̱let:Lilyem Wukipedia/a̱cyian
10
1296
13167
2022-05-31T14:50:23Z
Kambai Akau
15
Created page with "<includeonly>[{{fullurl:{{{1}}}:}} <span class="autonym" title="{{#language:{{{1}}}|en}} ({{{1}}}:)" lang="{{{1}}}">{{#switch:{{{1}}}|no=Norsk Bokmål|sh=Srpskohrvatski|simple=Simple English|sr=Srpski|{{ucfirst:{{#language:{{{1}}}}}}}}}</span>]</includeonly><noinclude> {{Documentation}} </noinclude>"
wikitext
text/x-wiki
<includeonly>[{{fullurl:{{{1}}}:}} <span class="autonym" title="{{#language:{{{1}}}|en}} ({{{1}}}:)" lang="{{{1}}}">{{#switch:{{{1}}}|no=Norsk Bokmål|sh=Srpskohrvatski|simple=Simple English|sr=Srpski|{{ucfirst:{{#language:{{{1}}}}}}}}}</span>]</includeonly><noinclude>
{{Documentation}}
</noinclude>
5gksnz8buxgtav7wz463mvz72i60wzz
Module:Documentation
828
1297
13188
13179
2022-05-31T18:49:37Z
Kambai Akau
15
Scribunto
text/plain
-- This module implements {{documentation}}.
-- Get required modules.
local getArgs = require('Module:Arguments').getArgs
-- Get the config table.
local cfg = mw.loadData('Module:Documentation/config')
local p = {}
-- Often-used functions.
local ugsub = mw.ustring.gsub
----------------------------------------------------------------------------
-- Helper functions
--
-- These are defined as local functions, but are made available in the p
-- table for testing purposes.
----------------------------------------------------------------------------
local function message(cfgKey, valArray, expectType)
--[[
-- Gets a message from the cfg table and formats it if appropriate.
-- The function raises an error if the value from the cfg table is not
-- of the type expectType. The default type for expectType is 'string'.
-- If the table valArray is present, strings such as $1, $2 etc. in the
-- message are substituted with values from the table keys [1], [2] etc.
-- For example, if the message "foo-message" had the value 'Foo $2 bar $1.',
-- message('foo-message', {'baz', 'qux'}) would return "Foo qux bar baz."
--]]
local msg = cfg[cfgKey]
expectType = expectType or 'string'
if type(msg) ~= expectType then
error('message: type error in message cfg.' .. cfgKey .. ' (' .. expectType .. ' expected, got ' .. type(msg) .. ')', 2)
end
if not valArray then
return msg
end
local function getMessageVal(match)
match = tonumber(match)
return valArray[match] or error('message: no value found for key $' .. match .. ' in message cfg.' .. cfgKey, 4)
end
return ugsub(msg, '$([1-9][0-9]*)', getMessageVal)
end
p.message = message
local function makeWikilink(page, display)
if display then
return mw.ustring.format('[[%s|%s]]', page, display)
else
return mw.ustring.format('[[%s]]', page)
end
end
p.makeWikilink = makeWikilink
local function makeCategoryLink(cat, sort)
local catns = mw.site.namespaces[14].name
return makeWikilink(catns .. ':' .. cat, sort)
end
p.makeCategoryLink = makeCategoryLink
local function makeUrlLink(url, display)
return mw.ustring.format('[%s %s]', url, display)
end
p.makeUrlLink = makeUrlLink
local function makeToolbar(...)
local ret = {}
local lim = select('#', ...)
if lim < 1 then
return nil
end
for i = 1, lim do
ret[#ret + 1] = select(i, ...)
end
-- 'documentation-toolbar'
return '<span class="' .. message('toolbar-class') .. '">('
.. table.concat(ret, ' | ') .. ')</span>'
end
p.makeToolbar = makeToolbar
----------------------------------------------------------------------------
-- Argument processing
----------------------------------------------------------------------------
local function makeInvokeFunc(funcName)
return function (frame)
local args = getArgs(frame, {
valueFunc = function (key, value)
if type(value) == 'string' then
value = value:match('^%s*(.-)%s*$') -- Remove whitespace.
if key == 'heading' or value ~= '' then
return value
else
return nil
end
else
return value
end
end
})
return p[funcName](args)
end
end
----------------------------------------------------------------------------
-- Entry points
----------------------------------------------------------------------------
function p.nonexistent(frame)
if mw.title.getCurrentTitle().subpageText == 'testcases' then
return frame:expandTemplate{title = 'module test cases notice'}
else
return p.main(frame)
end
end
p.main = makeInvokeFunc('_main')
function p._main(args)
--[[
-- This function defines logic flow for the module.
-- @args - table of arguments passed by the user
--]]
local env = p.getEnvironment(args)
local root = mw.html.create()
root
:wikitext(p._getModuleWikitext(args, env))
:wikitext(p.protectionTemplate(env))
:wikitext(p.sandboxNotice(args, env))
:tag('div')
-- 'documentation-container'
:addClass(message('container'))
:attr('role', 'complementary')
:attr('aria-labelledby', args.heading ~= '' and 'documentation-heading' or nil)
:attr('aria-label', args.heading == '' and 'Documentation' or nil)
:newline()
:tag('div')
-- 'documentation'
:addClass(message('main-div-classes'))
:newline()
:wikitext(p._startBox(args, env))
:wikitext(p._content(args, env))
:tag('div')
-- 'documentation-clear'
:addClass(message('clear'))
:done()
:newline()
:done()
:wikitext(p._endBox(args, env))
:done()
:wikitext(p.addTrackingCategories(env))
-- 'Module:Documentation/styles.css'
return mw.getCurrentFrame():extensionTag (
'templatestyles', '', {src=cfg['templatestyles']
}) .. tostring(root)
end
----------------------------------------------------------------------------
-- Environment settings
----------------------------------------------------------------------------
function p.getEnvironment(args)
--[[
-- Returns a table with information about the environment, including title
-- objects and other namespace- or path-related data.
-- @args - table of arguments passed by the user
--
-- Title objects include:
-- env.title - the page we are making documentation for (usually the current title)
-- env.templateTitle - the template (or module, file, etc.)
-- env.docTitle - the /doc subpage.
-- env.sandboxTitle - the /sandbox subpage.
-- env.testcasesTitle - the /testcases subpage.
--
-- Data includes:
-- env.protectionLevels - the protection levels table of the title object.
-- env.subjectSpace - the number of the title's subject namespace.
-- env.docSpace - the number of the namespace the title puts its documentation in.
-- env.docpageBase - the text of the base page of the /doc, /sandbox and /testcases pages, with namespace.
-- env.compareUrl - URL of the Special:ComparePages page comparing the sandbox with the template.
--
-- All table lookups are passed through pcall so that errors are caught. If an error occurs, the value
-- returned will be nil.
--]]
local env, envFuncs = {}, {}
-- Set up the metatable. If triggered we call the corresponding function in the envFuncs table. The value
-- returned by that function is memoized in the env table so that we don't call any of the functions
-- more than once. (Nils won't be memoized.)
setmetatable(env, {
__index = function (t, key)
local envFunc = envFuncs[key]
if envFunc then
local success, val = pcall(envFunc)
if success then
env[key] = val -- Memoise the value.
return val
end
end
return nil
end
})
function envFuncs.title()
-- The title object for the current page, or a test page passed with args.page.
local title
local titleArg = args.page
if titleArg then
title = mw.title.new(titleArg)
else
title = mw.title.getCurrentTitle()
end
return title
end
function envFuncs.templateTitle()
--[[
-- The template (or module, etc.) title object.
-- Messages:
-- 'sandbox-subpage' --> 'sandbox'
-- 'testcases-subpage' --> 'testcases'
--]]
local subjectSpace = env.subjectSpace
local title = env.title
local subpage = title.subpageText
if subpage == message('sandbox-subpage') or subpage == message('testcases-subpage') then
return mw.title.makeTitle(subjectSpace, title.baseText)
else
return mw.title.makeTitle(subjectSpace, title.text)
end
end
function envFuncs.docTitle()
--[[
-- Title object of the /doc subpage.
-- Messages:
-- 'doc-subpage' --> 'doc'
--]]
local title = env.title
local docname = args[1] -- User-specified doc page.
local docpage
if docname then
docpage = docname
else
docpage = env.docpageBase .. '/' .. message('doc-subpage')
end
return mw.title.new(docpage)
end
function envFuncs.sandboxTitle()
--[[
-- Title object for the /sandbox subpage.
-- Messages:
-- 'sandbox-subpage' --> 'sandbox'
--]]
return mw.title.new(env.docpageBase .. '/' .. message('sandbox-subpage'))
end
function envFuncs.testcasesTitle()
--[[
-- Title object for the /testcases subpage.
-- Messages:
-- 'testcases-subpage' --> 'testcases'
--]]
return mw.title.new(env.docpageBase .. '/' .. message('testcases-subpage'))
end
function envFuncs.protectionLevels()
-- The protection levels table of the title object.
return env.title.protectionLevels
end
function envFuncs.subjectSpace()
-- The subject namespace number.
return mw.site.namespaces[env.title.namespace].subject.id
end
function envFuncs.docSpace()
-- The documentation namespace number. For most namespaces this is the
-- same as the subject namespace. However, pages in the Article, File,
-- MediaWiki or Category namespaces must have their /doc, /sandbox and
-- /testcases pages in talk space.
local subjectSpace = env.subjectSpace
if subjectSpace == 0 or subjectSpace == 6 or subjectSpace == 8 or subjectSpace == 14 then
return subjectSpace + 1
else
return subjectSpace
end
end
function envFuncs.docpageBase()
-- The base page of the /doc, /sandbox, and /testcases subpages.
-- For some namespaces this is the talk page, rather than the template page.
local templateTitle = env.templateTitle
local docSpace = env.docSpace
local docSpaceText = mw.site.namespaces[docSpace].name
-- Assemble the link. docSpace is never the main namespace, so we can hardcode the colon.
return docSpaceText .. ':' .. templateTitle.text
end
function envFuncs.compareUrl()
-- Diff link between the sandbox and the main template using [[Special:ComparePages]].
local templateTitle = env.templateTitle
local sandboxTitle = env.sandboxTitle
if templateTitle.exists and sandboxTitle.exists then
local compareUrl = mw.uri.fullUrl(
'Special:ComparePages',
{ page1 = templateTitle.prefixedText, page2 = sandboxTitle.prefixedText}
)
return tostring(compareUrl)
else
return nil
end
end
return env
end
----------------------------------------------------------------------------
-- Auxiliary templates
----------------------------------------------------------------------------
p.getModuleWikitext = makeInvokeFunc('_getModuleWikitext')
function p._getModuleWikitext(args, env)
local currentTitle = mw.title.getCurrentTitle()
if currentTitle.contentModel ~= 'Scribunto' then return end
pcall(require, currentTitle.prefixedText) -- if it fails, we don't care
local moduleWikitext = package.loaded["Module:Module wikitext"]
if moduleWikitext then
return moduleWikitext.main()
end
end
function p.sandboxNotice(args, env)
--[=[
-- Generates a sandbox notice for display above sandbox pages.
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
--
-- Messages:
-- 'sandbox-notice-image' --> '[[Image:Sandbox.svg|50px|alt=|link=]]'
-- 'sandbox-notice-blurb' --> 'This is the $1 for $2.'
-- 'sandbox-notice-diff-blurb' --> 'This is the $1 for $2 ($3).'
-- 'sandbox-notice-pagetype-template' --> '[[Wikipedia:Template test cases|template sandbox]] page'
-- 'sandbox-notice-pagetype-module' --> '[[Wikipedia:Template test cases|module sandbox]] page'
-- 'sandbox-notice-pagetype-other' --> 'sandbox page'
-- 'sandbox-notice-compare-link-display' --> 'diff'
-- 'sandbox-notice-testcases-blurb' --> 'See also the companion subpage for $1.'
-- 'sandbox-notice-testcases-link-display' --> 'test cases'
-- 'sandbox-category' --> 'Template sandboxes'
--]=]
local title = env.title
local sandboxTitle = env.sandboxTitle
local templateTitle = env.templateTitle
local subjectSpace = env.subjectSpace
if not (subjectSpace and title and sandboxTitle and templateTitle
and mw.title.equals(title, sandboxTitle)) then
return nil
end
-- Build the table of arguments to pass to {{ombox}}. We need just two fields, "image" and "text".
local omargs = {}
omargs.image = message('sandbox-notice-image')
-- Get the text. We start with the opening blurb, which is something like
-- "This is the template sandbox for [[Template:Foo]] (diff)."
local text = ''
local pagetype
if subjectSpace == 10 then
pagetype = message('sandbox-notice-pagetype-template')
elseif subjectSpace == 828 then
pagetype = message('sandbox-notice-pagetype-module')
else
pagetype = message('sandbox-notice-pagetype-other')
end
local templateLink = makeWikilink(templateTitle.prefixedText)
local compareUrl = env.compareUrl
if compareUrl then
local compareDisplay = message('sandbox-notice-compare-link-display')
local compareLink = makeUrlLink(compareUrl, compareDisplay)
text = text .. message('sandbox-notice-diff-blurb', {pagetype, templateLink, compareLink})
else
text = text .. message('sandbox-notice-blurb', {pagetype, templateLink})
end
-- Get the test cases page blurb if the page exists. This is something like
-- "See also the companion subpage for [[Template:Foo/testcases|test cases]]."
local testcasesTitle = env.testcasesTitle
if testcasesTitle and testcasesTitle.exists then
if testcasesTitle.contentModel == "Scribunto" then
local testcasesLinkDisplay = message('sandbox-notice-testcases-link-display')
local testcasesRunLinkDisplay = message('sandbox-notice-testcases-run-link-display')
local testcasesLink = makeWikilink(testcasesTitle.prefixedText, testcasesLinkDisplay)
local testcasesRunLink = makeWikilink(testcasesTitle.talkPageTitle.prefixedText, testcasesRunLinkDisplay)
text = text .. '<br />' .. message('sandbox-notice-testcases-run-blurb', {testcasesLink, testcasesRunLink})
else
local testcasesLinkDisplay = message('sandbox-notice-testcases-link-display')
local testcasesLink = makeWikilink(testcasesTitle.prefixedText, testcasesLinkDisplay)
text = text .. '<br />' .. message('sandbox-notice-testcases-blurb', {testcasesLink})
end
end
-- Add the sandbox to the sandbox category.
omargs.text = text .. makeCategoryLink(message('sandbox-category'))
-- 'documentation-clear'
return '<div class="' .. message('clear') .. '"></div>'
.. require('Module:Message box').main('ombox', omargs)
end
function p.protectionTemplate(env)
-- Generates the padlock icon in the top right.
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
-- Messages:
-- 'protection-template' --> 'pp-template'
-- 'protection-template-args' --> {docusage = 'yes'}
local protectionLevels = env.protectionLevels
if not protectionLevels then
return nil
end
local editProt = protectionLevels.edit and protectionLevels.edit[1]
local moveProt = protectionLevels.move and protectionLevels.move[1]
if editProt then
-- The page is edit-protected.
return require('Module:Protection banner')._main{
message('protection-reason-edit'), small = true
}
elseif moveProt and moveProt ~= 'autoconfirmed' then
-- The page is move-protected but not edit-protected. Exclude move
-- protection with the level "autoconfirmed", as this is equivalent to
-- no move protection at all.
return require('Module:Protection banner')._main{
action = 'move', small = true
}
else
return nil
end
end
----------------------------------------------------------------------------
-- Start box
----------------------------------------------------------------------------
p.startBox = makeInvokeFunc('_startBox')
function p._startBox(args, env)
--[[
-- This function generates the start box.
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
--
-- The actual work is done by p.makeStartBoxLinksData and p.renderStartBoxLinks which make
-- the [view] [edit] [history] [purge] links, and by p.makeStartBoxData and p.renderStartBox
-- which generate the box HTML.
--]]
env = env or p.getEnvironment(args)
local links
local content = args.content
if not content or args[1] then
-- No need to include the links if the documentation is on the template page itself.
local linksData = p.makeStartBoxLinksData(args, env)
if linksData then
links = p.renderStartBoxLinks(linksData)
end
end
-- Generate the start box html.
local data = p.makeStartBoxData(args, env, links)
if data then
return p.renderStartBox(data)
else
-- User specified no heading.
return nil
end
end
function p.makeStartBoxLinksData(args, env)
--[[
-- Does initial processing of data to make the [view] [edit] [history] [purge] links.
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
--
-- Messages:
-- 'view-link-display' --> 'view'
-- 'edit-link-display' --> 'edit'
-- 'history-link-display' --> 'history'
-- 'purge-link-display' --> 'purge'
-- 'module-preload' --> 'Template:Documentation/preload-module-doc'
-- 'docpage-preload' --> 'Template:Documentation/preload'
-- 'create-link-display' --> 'create'
--]]
local subjectSpace = env.subjectSpace
local title = env.title
local docTitle = env.docTitle
if not title or not docTitle then
return nil
end
if docTitle.isRedirect then
docTitle = docTitle.redirectTarget
end
local data = {}
data.title = title
data.docTitle = docTitle
-- View, display, edit, and purge links if /doc exists.
data.viewLinkDisplay = message('view-link-display')
data.editLinkDisplay = message('edit-link-display')
data.historyLinkDisplay = message('history-link-display')
data.purgeLinkDisplay = message('purge-link-display')
-- Create link if /doc doesn't exist.
local preload = args.preload
if not preload then
if subjectSpace == 828 then -- Module namespace
preload = message('module-preload')
else
preload = message('docpage-preload')
end
end
data.preload = preload
data.createLinkDisplay = message('create-link-display')
return data
end
function p.renderStartBoxLinks(data)
--[[
-- Generates the [view][edit][history][purge] or [create][purge] links from the data table.
-- @data - a table of data generated by p.makeStartBoxLinksData
--]]
local function escapeBrackets(s)
-- Escapes square brackets with HTML entities.
s = s:gsub('%[', '[') -- Replace square brackets with HTML entities.
s = s:gsub('%]', ']')
return s
end
local ret
local docTitle = data.docTitle
local title = data.title
local purgeLink = makeUrlLink(title:fullUrl{action = 'purge'}, data.purgeLinkDisplay)
if docTitle.exists then
local viewLink = makeWikilink(docTitle.prefixedText, data.viewLinkDisplay)
local editLink = makeUrlLink(docTitle:fullUrl{action = 'edit'}, data.editLinkDisplay)
local historyLink = makeUrlLink(docTitle:fullUrl{action = 'history'}, data.historyLinkDisplay)
ret = '[%s] [%s] [%s] [%s]'
ret = escapeBrackets(ret)
ret = mw.ustring.format(ret, viewLink, editLink, historyLink, purgeLink)
else
local createLink = makeUrlLink(docTitle:fullUrl{action = 'edit', preload = data.preload}, data.createLinkDisplay)
ret = '[%s] [%s]'
ret = escapeBrackets(ret)
ret = mw.ustring.format(ret, createLink, purgeLink)
end
return ret
end
function p.makeStartBoxData(args, env, links)
--[=[
-- Does initial processing of data to pass to the start-box render function, p.renderStartBox.
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
-- @links - a string containing the [view][edit][history][purge] links - could be nil if there's an error.
--
-- Messages:
-- 'documentation-icon-wikitext' --> '[[File:Test Template Info-Icon - Version (2).svg|50px|link=|alt=]]'
-- 'template-namespace-heading' --> 'Template documentation'
-- 'module-namespace-heading' --> 'Module documentation'
-- 'file-namespace-heading' --> 'Summary'
-- 'other-namespaces-heading' --> 'Documentation'
-- 'testcases-create-link-display' --> 'create'
--]=]
local subjectSpace = env.subjectSpace
if not subjectSpace then
-- Default to an "other namespaces" namespace, so that we get at least some output
-- if an error occurs.
subjectSpace = 2
end
local data = {}
-- Heading
local heading = args.heading -- Blank values are not removed.
if heading == '' then
-- Don't display the start box if the heading arg is defined but blank.
return nil
end
if heading then
data.heading = heading
elseif subjectSpace == 10 then -- Template namespace
data.heading = message('documentation-icon-wikitext') .. ' ' .. message('template-namespace-heading')
elseif subjectSpace == 828 then -- Module namespace
data.heading = message('documentation-icon-wikitext') .. ' ' .. message('module-namespace-heading')
elseif subjectSpace == 6 then -- File namespace
data.heading = message('file-namespace-heading')
else
data.heading = message('other-namespaces-heading')
end
-- Heading CSS
local headingStyle = args['heading-style']
if headingStyle then
data.headingStyleText = headingStyle
else
-- 'documentation-heading'
data.headingClass = message('main-div-heading-class')
end
-- Data for the [view][edit][history][purge] or [create] links.
if links then
-- 'mw-editsection-like plainlinks'
data.linksClass = message('start-box-link-classes')
data.links = links
end
return data
end
function p.renderStartBox(data)
-- Renders the start box html.
-- @data - a table of data generated by p.makeStartBoxData.
local sbox = mw.html.create('div')
sbox
-- 'documentation-startbox'
:addClass(message('start-box-class'))
:newline()
:tag('span')
:addClass(data.headingClass)
:attr('id', 'documentation-heading')
:cssText(data.headingStyleText)
:wikitext(data.heading)
local links = data.links
if links then
sbox:tag('span')
:addClass(data.linksClass)
:attr('id', data.linksId)
:wikitext(links)
end
return tostring(sbox)
end
----------------------------------------------------------------------------
-- Documentation content
----------------------------------------------------------------------------
p.content = makeInvokeFunc('_content')
function p._content(args, env)
-- Displays the documentation contents
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
env = env or p.getEnvironment(args)
local docTitle = env.docTitle
local content = args.content
if not content and docTitle and docTitle.exists then
content = args._content or mw.getCurrentFrame():expandTemplate{title = docTitle.prefixedText}
end
-- The line breaks below are necessary so that "=== Headings ===" at the start and end
-- of docs are interpreted correctly.
return '\n' .. (content or '') .. '\n'
end
p.contentTitle = makeInvokeFunc('_contentTitle')
function p._contentTitle(args, env)
env = env or p.getEnvironment(args)
local docTitle = env.docTitle
if not args.content and docTitle and docTitle.exists then
return docTitle.prefixedText
else
return ''
end
end
----------------------------------------------------------------------------
-- End box
----------------------------------------------------------------------------
p.endBox = makeInvokeFunc('_endBox')
function p._endBox(args, env)
--[=[
-- This function generates the end box (also known as the link box).
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
--
--]=]
-- Get environment data.
env = env or p.getEnvironment(args)
local subjectSpace = env.subjectSpace
local docTitle = env.docTitle
if not subjectSpace or not docTitle then
return nil
end
-- Check whether we should output the end box at all. Add the end
-- box by default if the documentation exists or if we are in the
-- user, module or template namespaces.
local linkBox = args['link box']
if linkBox == 'off'
or not (
docTitle.exists
or subjectSpace == 2
or subjectSpace == 828
or subjectSpace == 10
)
then
return nil
end
-- Assemble the link box.
local text = ''
if linkBox then
text = text .. linkBox
else
text = text .. (p.makeDocPageBlurb(args, env) or '') -- "This documentation is transcluded from [[Foo]]."
if subjectSpace == 2 or subjectSpace == 10 or subjectSpace == 828 then
-- We are in the user, template or module namespaces.
-- Add sandbox and testcases links.
-- "Editors can experiment in this template's sandbox and testcases pages."
text = text .. (p.makeExperimentBlurb(args, env) or '') .. '<br />'
if not args.content and not args[1] then
-- "Please add categories to the /doc subpage."
-- Don't show this message with inline docs or with an explicitly specified doc page,
-- as then it is unclear where to add the categories.
text = text .. (p.makeCategoriesBlurb(args, env) or '')
end
text = text .. ' ' .. (p.makeSubpagesBlurb(args, env) or '') --"Subpages of this template"
end
end
local box = mw.html.create('div')
-- 'documentation-metadata'
box:attr('role', 'note')
:addClass(message('end-box-class'))
-- 'plainlinks'
:addClass(message('end-box-plainlinks'))
:wikitext(text)
:done()
return '\n' .. tostring(box)
end
function p.makeDocPageBlurb(args, env)
--[=[
-- Makes the blurb "This documentation is transcluded from [[Template:Foo]] (edit, history)".
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
--
-- Messages:
-- 'edit-link-display' --> 'edit'
-- 'history-link-display' --> 'history'
-- 'transcluded-from-blurb' -->
-- 'The above [[Wikipedia:Template documentation|documentation]]
-- is [[Help:Transclusion|transcluded]] from $1.'
-- 'module-preload' --> 'Template:Documentation/preload-module-doc'
-- 'create-link-display' --> 'create'
-- 'create-module-doc-blurb' -->
-- 'You might want to $1 a documentation page for this [[Wikipedia:Lua|Scribunto module]].'
--]=]
local docTitle = env.docTitle
if not docTitle then
return nil
end
local ret
if docTitle.exists then
-- /doc exists; link to it.
local docLink = makeWikilink(docTitle.prefixedText)
local editUrl = docTitle:fullUrl{action = 'edit'}
local editDisplay = message('edit-link-display')
local editLink = makeUrlLink(editUrl, editDisplay)
local historyUrl = docTitle:fullUrl{action = 'history'}
local historyDisplay = message('history-link-display')
local historyLink = makeUrlLink(historyUrl, historyDisplay)
ret = message('transcluded-from-blurb', {docLink})
.. ' '
.. makeToolbar(editLink, historyLink)
.. '<br />'
elseif env.subjectSpace == 828 then
-- /doc does not exist; ask to create it.
local createUrl = docTitle:fullUrl{action = 'edit', preload = message('module-preload')}
local createDisplay = message('create-link-display')
local createLink = makeUrlLink(createUrl, createDisplay)
ret = message('create-module-doc-blurb', {createLink})
.. '<br />'
end
return ret
end
function p.makeExperimentBlurb(args, env)
--[[
-- Renders the text "Editors can experiment in this template's sandbox (edit | diff) and testcases (edit) pages."
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
--
-- Messages:
-- 'sandbox-link-display' --> 'sandbox'
-- 'sandbox-edit-link-display' --> 'edit'
-- 'compare-link-display' --> 'diff'
-- 'module-sandbox-preload' --> 'Template:Documentation/preload-module-sandbox'
-- 'template-sandbox-preload' --> 'Template:Documentation/preload-sandbox'
-- 'sandbox-create-link-display' --> 'create'
-- 'mirror-edit-summary' --> 'Create sandbox version of $1'
-- 'mirror-link-display' --> 'mirror'
-- 'mirror-link-preload' --> 'Template:Documentation/mirror'
-- 'sandbox-link-display' --> 'sandbox'
-- 'testcases-link-display' --> 'testcases'
-- 'testcases-edit-link-display'--> 'edit'
-- 'template-sandbox-preload' --> 'Template:Documentation/preload-sandbox'
-- 'testcases-create-link-display' --> 'create'
-- 'testcases-link-display' --> 'testcases'
-- 'testcases-edit-link-display' --> 'edit'
-- 'module-testcases-preload' --> 'Template:Documentation/preload-module-testcases'
-- 'template-testcases-preload' --> 'Template:Documentation/preload-testcases'
-- 'experiment-blurb-module' --> 'Editors can experiment in this module's $1 and $2 pages.'
-- 'experiment-blurb-template' --> 'Editors can experiment in this template's $1 and $2 pages.'
--]]
local subjectSpace = env.subjectSpace
local templateTitle = env.templateTitle
local sandboxTitle = env.sandboxTitle
local testcasesTitle = env.testcasesTitle
local templatePage = templateTitle.prefixedText
if not subjectSpace or not templateTitle or not sandboxTitle or not testcasesTitle then
return nil
end
-- Make links.
local sandboxLinks, testcasesLinks
if sandboxTitle.exists then
local sandboxPage = sandboxTitle.prefixedText
local sandboxDisplay = message('sandbox-link-display')
local sandboxLink = makeWikilink(sandboxPage, sandboxDisplay)
local sandboxEditUrl = sandboxTitle:fullUrl{action = 'edit'}
local sandboxEditDisplay = message('sandbox-edit-link-display')
local sandboxEditLink = makeUrlLink(sandboxEditUrl, sandboxEditDisplay)
local compareUrl = env.compareUrl
local compareLink
if compareUrl then
local compareDisplay = message('compare-link-display')
compareLink = makeUrlLink(compareUrl, compareDisplay)
end
sandboxLinks = sandboxLink .. ' ' .. makeToolbar(sandboxEditLink, compareLink)
else
local sandboxPreload
if subjectSpace == 828 then
sandboxPreload = message('module-sandbox-preload')
else
sandboxPreload = message('template-sandbox-preload')
end
local sandboxCreateUrl = sandboxTitle:fullUrl{action = 'edit', preload = sandboxPreload}
local sandboxCreateDisplay = message('sandbox-create-link-display')
local sandboxCreateLink = makeUrlLink(sandboxCreateUrl, sandboxCreateDisplay)
local mirrorSummary = message('mirror-edit-summary', {makeWikilink(templatePage)})
local mirrorPreload = message('mirror-link-preload')
local mirrorUrl = sandboxTitle:fullUrl{action = 'edit', preload = mirrorPreload, summary = mirrorSummary}
if subjectSpace == 828 then
mirrorUrl = sandboxTitle:fullUrl{action = 'edit', preload = templateTitle.prefixedText, summary = mirrorSummary}
end
local mirrorDisplay = message('mirror-link-display')
local mirrorLink = makeUrlLink(mirrorUrl, mirrorDisplay)
sandboxLinks = message('sandbox-link-display') .. ' ' .. makeToolbar(sandboxCreateLink, mirrorLink)
end
if testcasesTitle.exists then
local testcasesPage = testcasesTitle.prefixedText
local testcasesDisplay = message('testcases-link-display')
local testcasesLink = makeWikilink(testcasesPage, testcasesDisplay)
local testcasesEditUrl = testcasesTitle:fullUrl{action = 'edit'}
local testcasesEditDisplay = message('testcases-edit-link-display')
local testcasesEditLink = makeUrlLink(testcasesEditUrl, testcasesEditDisplay)
-- for Modules, add testcases run link if exists
if testcasesTitle.contentModel == "Scribunto" and testcasesTitle.talkPageTitle and testcasesTitle.talkPageTitle.exists then
local testcasesRunLinkDisplay = message('testcases-run-link-display')
local testcasesRunLink = makeWikilink(testcasesTitle.talkPageTitle.prefixedText, testcasesRunLinkDisplay)
testcasesLinks = testcasesLink .. ' ' .. makeToolbar(testcasesEditLink, testcasesRunLink)
else
testcasesLinks = testcasesLink .. ' ' .. makeToolbar(testcasesEditLink)
end
else
local testcasesPreload
if subjectSpace == 828 then
testcasesPreload = message('module-testcases-preload')
else
testcasesPreload = message('template-testcases-preload')
end
local testcasesCreateUrl = testcasesTitle:fullUrl{action = 'edit', preload = testcasesPreload}
local testcasesCreateDisplay = message('testcases-create-link-display')
local testcasesCreateLink = makeUrlLink(testcasesCreateUrl, testcasesCreateDisplay)
testcasesLinks = message('testcases-link-display') .. ' ' .. makeToolbar(testcasesCreateLink)
end
local messageName
if subjectSpace == 828 then
messageName = 'experiment-blurb-module'
else
messageName = 'experiment-blurb-template'
end
return message(messageName, {sandboxLinks, testcasesLinks})
end
function p.makeCategoriesBlurb(args, env)
--[[
-- Generates the text "Please add categories to the /doc subpage."
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
-- Messages:
-- 'doc-link-display' --> '/doc'
-- 'add-categories-blurb' --> 'Please add categories to the $1 subpage.'
--]]
local docTitle = env.docTitle
if not docTitle then
return nil
end
local docPathLink = makeWikilink(docTitle.prefixedText, message('doc-link-display'))
return message('add-categories-blurb', {docPathLink})
end
function p.makeSubpagesBlurb(args, env)
--[[
-- Generates the "Subpages of this template" link.
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
-- Messages:
-- 'template-pagetype' --> 'template'
-- 'module-pagetype' --> 'module'
-- 'default-pagetype' --> 'page'
-- 'subpages-link-display' --> 'Subpages of this $1'
--]]
local subjectSpace = env.subjectSpace
local templateTitle = env.templateTitle
if not subjectSpace or not templateTitle then
return nil
end
local pagetype
if subjectSpace == 10 then
pagetype = message('template-pagetype')
elseif subjectSpace == 828 then
pagetype = message('module-pagetype')
else
pagetype = message('default-pagetype')
end
local subpagesLink = makeWikilink(
'Special:PrefixIndex/' .. templateTitle.prefixedText .. '/',
message('subpages-link-display', {pagetype})
)
return message('subpages-blurb', {subpagesLink})
end
----------------------------------------------------------------------------
-- Tracking categories
----------------------------------------------------------------------------
function p.addTrackingCategories(env)
--[[
-- Check if {{documentation}} is transcluded on a /doc or /testcases page.
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
-- Messages:
-- 'display-strange-usage-category' --> true
-- 'doc-subpage' --> 'doc'
-- 'testcases-subpage' --> 'testcases'
-- 'strange-usage-category' --> 'Wikipedia pages with strange ((documentation)) usage'
--
-- /testcases pages in the module namespace are not categorised, as they may have
-- {{documentation}} transcluded automatically.
--]]
local title = env.title
local subjectSpace = env.subjectSpace
if not title or not subjectSpace then
return nil
end
local subpage = title.subpageText
local ret = ''
if message('display-strange-usage-category', nil, 'boolean')
and (
subpage == message('doc-subpage')
or subjectSpace ~= 828 and subpage == message('testcases-subpage')
)
then
ret = ret .. makeCategoryLink(message('strange-usage-category'))
end
return ret
end
return p
hhe6rl9gdvqywjk6r1tbi4ymwotbf24
Module:Documentation/doc
828
1298
13193
2022-05-31T18:52:28Z
Kambai Akau
15
Created page with "{{used in system}} {{Module rating|protected}} {{Lua|Module:Documentation/config|Module:Arguments|Module:Message box|Module:Module wikitext|Module:Protection banner}} {{Uses TemplateStyles|Module:Documentation/styles.css}} This module displays a blue box containing documentation for [[Help:Template|templates]], [[Wikipedia:Lua|Lua modules]], or other pages. The {{tl|documentation}} template invokes it. == Normal usage == For most uses, you should use the {{tl|documenta..."
wikitext
text/x-wiki
{{used in system}}
{{Module rating|protected}}
{{Lua|Module:Documentation/config|Module:Arguments|Module:Message box|Module:Module wikitext|Module:Protection banner}}
{{Uses TemplateStyles|Module:Documentation/styles.css}}
This module displays a blue box containing documentation for [[Help:Template|templates]], [[Wikipedia:Lua|Lua modules]], or other pages. The {{tl|documentation}} template invokes it.
== Normal usage ==
For most uses, you should use the {{tl|documentation}} template; please see that template's page for its usage instructions and parameters.
== Use in other modules ==
To use this module from another Lua module, first load it with <code>require</code>:
<syntaxhighlight lang="lua">
local documentation = require('Module:Documentation').main
</syntaxhighlight>
Then you can simply call it using a table of arguments.
<syntaxhighlight lang="lua">
documentation{content = 'Some documentation', ['link box'] = 'My custom link box'}
</syntaxhighlight>
Please refer to the [[Template:Documentation/doc|template documentation]] for usage instructions and a list of parameters.
== Porting to other wikis ==
The module has a configuration file at [[Module:Documentation/config]] which is intended to allow easy translation and porting to other wikis. Please see the code comments in the config page for instructions. If you have any questions, or you need a feature which is not currently implemented, please leave a message at <span class="plainlinks">[https://en.wikipedia.org/wiki/Template_talk:Documentation Template talk:Documentation]</span><!-- this link uses external link syntax because it is intended to direct users from third-party wikis to the Wikipedia template talk page; in this situation, an internal link would unhelpfully just point to their local template talk page, and the existence of any given interwiki prefix cannot be assumed --> to get the attention of a developer.
The messages that need to be customized to display a documentation template/module at the top of module pages are [[MediaWiki:Scribunto-doc-page-show]] and [[MediaWiki:Scribunto-doc-page-does-not-exist]].
bznis37wou3eqdfcafog8csr5xupqao
Module:Arguments
828
1299
13199
2022-05-31T19:02:09Z
Kambai Akau
15
Created page with "-- This module provides easy processing of arguments passed to Scribunto from -- #invoke. It is intended for use by other Lua modules, and should not be -- called from #invoke directly. local libraryUtil = require('libraryUtil') local checkType = libraryUtil.checkType local arguments = {} -- Generate four different tidyVal functions, so that we don't have to check the -- options every time we call it. local function tidyValDefault(key, val) if type(val) == 'string'..."
Scribunto
text/plain
-- This module provides easy processing of arguments passed to Scribunto from
-- #invoke. It is intended for use by other Lua modules, and should not be
-- called from #invoke directly.
local libraryUtil = require('libraryUtil')
local checkType = libraryUtil.checkType
local arguments = {}
-- Generate four different tidyVal functions, so that we don't have to check the
-- options every time we call it.
local function tidyValDefault(key, val)
if type(val) == 'string' then
val = val:match('^%s*(.-)%s*$')
if val == '' then
return nil
else
return val
end
else
return val
end
end
local function tidyValTrimOnly(key, val)
if type(val) == 'string' then
return val:match('^%s*(.-)%s*$')
else
return val
end
end
local function tidyValRemoveBlanksOnly(key, val)
if type(val) == 'string' then
if val:find('%S') then
return val
else
return nil
end
else
return val
end
end
local function tidyValNoChange(key, val)
return val
end
local function matchesTitle(given, title)
local tp = type( given )
return (tp == 'string' or tp == 'number') and mw.title.new( given ).prefixedText == title
end
local translate_mt = { __index = function(t, k) return k end }
function arguments.getArgs(frame, options)
checkType('getArgs', 1, frame, 'table', true)
checkType('getArgs', 2, options, 'table', true)
frame = frame or {}
options = options or {}
--[[
-- Set up argument translation.
--]]
options.translate = options.translate or {}
if getmetatable(options.translate) == nil then
setmetatable(options.translate, translate_mt)
end
if options.backtranslate == nil then
options.backtranslate = {}
for k,v in pairs(options.translate) do
options.backtranslate[v] = k
end
end
if options.backtranslate and getmetatable(options.backtranslate) == nil then
setmetatable(options.backtranslate, {
__index = function(t, k)
if options.translate[k] ~= k then
return nil
else
return k
end
end
})
end
--[[
-- Get the argument tables. If we were passed a valid frame object, get the
-- frame arguments (fargs) and the parent frame arguments (pargs), depending
-- on the options set and on the parent frame's availability. If we weren't
-- passed a valid frame object, we are being called from another Lua module
-- or from the debug console, so assume that we were passed a table of args
-- directly, and assign it to a new variable (luaArgs).
--]]
local fargs, pargs, luaArgs
if type(frame.args) == 'table' and type(frame.getParent) == 'function' then
if options.wrappers then
--[[
-- The wrappers option makes Module:Arguments look up arguments in
-- either the frame argument table or the parent argument table, but
-- not both. This means that users can use either the #invoke syntax
-- or a wrapper template without the loss of performance associated
-- with looking arguments up in both the frame and the parent frame.
-- Module:Arguments will look up arguments in the parent frame
-- if it finds the parent frame's title in options.wrapper;
-- otherwise it will look up arguments in the frame object passed
-- to getArgs.
--]]
local parent = frame:getParent()
if not parent then
fargs = frame.args
else
local title = parent:getTitle():gsub('/sandbox$', '')
local found = false
if matchesTitle(options.wrappers, title) then
found = true
elseif type(options.wrappers) == 'table' then
for _,v in pairs(options.wrappers) do
if matchesTitle(v, title) then
found = true
break
end
end
end
-- We test for false specifically here so that nil (the default) acts like true.
if found or options.frameOnly == false then
pargs = parent.args
end
if not found or options.parentOnly == false then
fargs = frame.args
end
end
else
-- options.wrapper isn't set, so check the other options.
if not options.parentOnly then
fargs = frame.args
end
if not options.frameOnly then
local parent = frame:getParent()
pargs = parent and parent.args or nil
end
end
if options.parentFirst then
fargs, pargs = pargs, fargs
end
else
luaArgs = frame
end
-- Set the order of precedence of the argument tables. If the variables are
-- nil, nothing will be added to the table, which is how we avoid clashes
-- between the frame/parent args and the Lua args.
local argTables = {fargs}
argTables[#argTables + 1] = pargs
argTables[#argTables + 1] = luaArgs
--[[
-- Generate the tidyVal function. If it has been specified by the user, we
-- use that; if not, we choose one of four functions depending on the
-- options chosen. This is so that we don't have to call the options table
-- every time the function is called.
--]]
local tidyVal = options.valueFunc
if tidyVal then
if type(tidyVal) ~= 'function' then
error(
"bad value assigned to option 'valueFunc'"
.. '(function expected, got '
.. type(tidyVal)
.. ')',
2
)
end
elseif options.trim ~= false then
if options.removeBlanks ~= false then
tidyVal = tidyValDefault
else
tidyVal = tidyValTrimOnly
end
else
if options.removeBlanks ~= false then
tidyVal = tidyValRemoveBlanksOnly
else
tidyVal = tidyValNoChange
end
end
--[[
-- Set up the args, metaArgs and nilArgs tables. args will be the one
-- accessed from functions, and metaArgs will hold the actual arguments. Nil
-- arguments are memoized in nilArgs, and the metatable connects all of them
-- together.
--]]
local args, metaArgs, nilArgs, metatable = {}, {}, {}, {}
setmetatable(args, metatable)
local function mergeArgs(tables)
--[[
-- Accepts multiple tables as input and merges their keys and values
-- into one table. If a value is already present it is not overwritten;
-- tables listed earlier have precedence. We are also memoizing nil
-- values, which can be overwritten if they are 's' (soft).
--]]
for _, t in ipairs(tables) do
for key, val in pairs(t) do
if metaArgs[key] == nil and nilArgs[key] ~= 'h' then
local tidiedVal = tidyVal(key, val)
if tidiedVal == nil then
nilArgs[key] = 's'
else
metaArgs[key] = tidiedVal
end
end
end
end
end
--[[
-- Define metatable behaviour. Arguments are memoized in the metaArgs table,
-- and are only fetched from the argument tables once. Fetching arguments
-- from the argument tables is the most resource-intensive step in this
-- module, so we try and avoid it where possible. For this reason, nil
-- arguments are also memoized, in the nilArgs table. Also, we keep a record
-- in the metatable of when pairs and ipairs have been called, so we do not
-- run pairs and ipairs on the argument tables more than once. We also do
-- not run ipairs on fargs and pargs if pairs has already been run, as all
-- the arguments will already have been copied over.
--]]
metatable.__index = function (t, key)
--[[
-- Fetches an argument when the args table is indexed. First we check
-- to see if the value is memoized, and if not we try and fetch it from
-- the argument tables. When we check memoization, we need to check
-- metaArgs before nilArgs, as both can be non-nil at the same time.
-- If the argument is not present in metaArgs, we also check whether
-- pairs has been run yet. If pairs has already been run, we return nil.
-- This is because all the arguments will have already been copied into
-- metaArgs by the mergeArgs function, meaning that any other arguments
-- must be nil.
--]]
if type(key) == 'string' then
key = options.translate[key]
end
local val = metaArgs[key]
if val ~= nil then
return val
elseif metatable.donePairs or nilArgs[key] then
return nil
end
for _, argTable in ipairs(argTables) do
local argTableVal = tidyVal(key, argTable[key])
if argTableVal ~= nil then
metaArgs[key] = argTableVal
return argTableVal
end
end
nilArgs[key] = 'h'
return nil
end
metatable.__newindex = function (t, key, val)
-- This function is called when a module tries to add a new value to the
-- args table, or tries to change an existing value.
if type(key) == 'string' then
key = options.translate[key]
end
if options.readOnly then
error(
'could not write to argument table key "'
.. tostring(key)
.. '"; the table is read-only',
2
)
elseif options.noOverwrite and args[key] ~= nil then
error(
'could not write to argument table key "'
.. tostring(key)
.. '"; overwriting existing arguments is not permitted',
2
)
elseif val == nil then
--[[
-- If the argument is to be overwritten with nil, we need to erase
-- the value in metaArgs, so that __index, __pairs and __ipairs do
-- not use a previous existing value, if present; and we also need
-- to memoize the nil in nilArgs, so that the value isn't looked
-- up in the argument tables if it is accessed again.
--]]
metaArgs[key] = nil
nilArgs[key] = 'h'
else
metaArgs[key] = val
end
end
local function translatenext(invariant)
local k, v = next(invariant.t, invariant.k)
invariant.k = k
if k == nil then
return nil
elseif type(k) ~= 'string' or not options.backtranslate then
return k, v
else
local backtranslate = options.backtranslate[k]
if backtranslate == nil then
-- Skip this one. This is a tail call, so this won't cause stack overflow
return translatenext(invariant)
else
return backtranslate, v
end
end
end
metatable.__pairs = function ()
-- Called when pairs is run on the args table.
if not metatable.donePairs then
mergeArgs(argTables)
metatable.donePairs = true
end
return translatenext, { t = metaArgs }
end
local function inext(t, i)
-- This uses our __index metamethod
local v = t[i + 1]
if v ~= nil then
return i + 1, v
end
end
metatable.__ipairs = function (t)
-- Called when ipairs is run on the args table.
return inext, t, 0
end
return args
end
return arguments
5qx9tzlul9ser30uxj9nbasjt92cevn
Module:Arguments/doc
828
1300
13200
2022-05-31T19:03:26Z
Kambai Akau
15
Created page with "{{Used in system}} {{Module rating|p}} This module provides easy processing of arguments passed from #invoke. It is a meta-module, meant for use by other modules, and should not be called from #invoke directly. Its features include: * Easy trimming of arguments and removal of blank arguments. * Arguments can be passed by both the current frame and by the parent frame at the same time. (More details below.) * Arguments can be passed in directly from another Lua module or..."
wikitext
text/x-wiki
{{Used in system}}
{{Module rating|p}}
This module provides easy processing of arguments passed from #invoke. It is a meta-module, meant for use by other modules, and should not be called from #invoke directly. Its features include:
* Easy trimming of arguments and removal of blank arguments.
* Arguments can be passed by both the current frame and by the parent frame at the same time. (More details below.)
* Arguments can be passed in directly from another Lua module or from the debug console.
* Most features can be customized.
== Basic use ==
First, you need to load the module. It contains one function, named <code>getArgs</code>.
<syntaxhighlight lang="lua">
local getArgs = require('Module:Arguments').getArgs
</syntaxhighlight>
In the most basic scenario, you can use getArgs inside your main function. The variable <code>args</code> is a table containing the arguments from #invoke. (See below for details.)
<syntaxhighlight lang="lua">
local getArgs = require('Module:Arguments').getArgs
local p = {}
function p.main(frame)
local args = getArgs(frame)
-- Main module code goes here.
end
return p
</syntaxhighlight>
=== Recommended practice ===
However, the recommended practice is to use a function just for processing arguments from #invoke. This means that if someone calls your module from another Lua module you don't have to have a frame object available, which improves performance.
<syntaxhighlight lang="lua">
local getArgs = require('Module:Arguments').getArgs
local p = {}
function p.main(frame)
local args = getArgs(frame)
return p._main(args)
end
function p._main(args)
-- Main module code goes here.
end
return p
</syntaxhighlight>
The way this is called from a template is <code><nowiki>{{#invoke:Example|main}}</nowiki></code> (optionally with some parameters like <code><nowiki>{{#invoke:Example|main|arg1=value1|arg2=value2}}</nowiki></code>), and the way this is called from a module is <syntaxhighlight lang=lua inline>require('Module:Example')._main({arg1 = 'value1', arg2 = value2, 'spaced arg3' = 'value3'})</syntaxhighlight>. What this second one does is construct a table with the arguments in it, then gives that table to the p._main(args) function, which uses it natively.
=== Multiple functions ===
If you want multiple functions to use the arguments, and you also want them to be accessible from #invoke, you can use a wrapper function.
<syntaxhighlight lang="lua">
local getArgs = require('Module:Arguments').getArgs
local p = {}
local function makeInvokeFunc(funcName)
return function (frame)
local args = getArgs(frame)
return p[funcName](args)
end
end
p.func1 = makeInvokeFunc('_func1')
function p._func1(args)
-- Code for the first function goes here.
end
p.func2 = makeInvokeFunc('_func2')
function p._func2(args)
-- Code for the second function goes here.
end
return p
</syntaxhighlight>
=== Options ===
The following options are available. They are explained in the sections below.
<syntaxhighlight lang="lua">
local args = getArgs(frame, {
trim = false,
removeBlanks = false,
valueFunc = function (key, value)
-- Code for processing one argument
end,
frameOnly = true,
parentOnly = true,
parentFirst = true,
wrappers = {
'Template:A wrapper template',
'Template:Another wrapper template'
},
readOnly = true,
noOverwrite = true
})
</syntaxhighlight>
=== Trimming and removing blanks ===
Blank arguments often trip up coders new to converting MediaWiki templates to Lua. In template syntax, blank strings and strings consisting only of whitespace are considered false. However, in Lua, blank strings and strings consisting of whitespace are considered true. This means that if you don't pay attention to such arguments when you write your Lua modules, you might treat something as true that should actually be treated as false. To avoid this, by default this module removes all blank arguments.
Similarly, whitespace can cause problems when dealing with positional arguments. Although whitespace is trimmed for named arguments coming from #invoke, it is preserved for positional arguments. Most of the time this additional whitespace is not desired, so this module trims it off by default.
However, sometimes you want to use blank arguments as input, and sometimes you want to keep additional whitespace. This can be necessary to convert some templates exactly as they were written. If you want to do this, you can set the <code>trim</code> and <code>removeBlanks</code> arguments to <code>false</code>.
<syntaxhighlight lang="lua">
local args = getArgs(frame, {
trim = false,
removeBlanks = false
})
</syntaxhighlight>
=== Custom formatting of arguments ===
Sometimes you want to remove some blank arguments but not others, or perhaps you might want to put all of the positional arguments in lower case. To do things like this you can use the <code>valueFunc</code> option. The input to this option must be a function that takes two parameters, <code>key</code> and <code>value</code>, and returns a single value. This value is what you will get when you access the field <code>key</code> in the <code>args</code> table.
Example 1: this function preserves whitespace for the first positional argument, but trims all other arguments and removes all other blank arguments.
<syntaxhighlight lang="lua">
local args = getArgs(frame, {
valueFunc = function (key, value)
if key == 1 then
return value
elseif value then
value = mw.text.trim(value)
if value ~= '' then
return value
end
end
return nil
end
})
</syntaxhighlight>
Example 2: this function removes blank arguments and converts all arguments to lower case, but doesn't trim whitespace from positional parameters.
<syntaxhighlight lang="lua">
local args = getArgs(frame, {
valueFunc = function (key, value)
if not value then
return nil
end
value = mw.ustring.lower(value)
if mw.ustring.find(value, '%S') then
return value
end
return nil
end
})
</syntaxhighlight>
Note: the above functions will fail if passed input that is not of type <code>string</code> or <code>nil</code>. This might be the case if you use the <code>getArgs</code> function in the main function of your module, and that function is called by another Lua module. In this case, you will need to check the type of your input. This is not a problem if you are using a function specially for arguments from #invoke (i.e. you have <code>p.main</code> and <code>p._main</code> functions, or something similar).
{{cot|Examples 1 and 2 with type checking}}
Example 1:
<syntaxhighlight lang="lua">
local args = getArgs(frame, {
valueFunc = function (key, value)
if key == 1 then
return value
elseif type(value) == 'string' then
value = mw.text.trim(value)
if value ~= '' then
return value
else
return nil
end
else
return value
end
end
})
</syntaxhighlight>
Example 2:
<syntaxhighlight lang="lua">
local args = getArgs(frame, {
valueFunc = function (key, value)
if type(value) == 'string' then
value = mw.ustring.lower(value)
if mw.ustring.find(value, '%S') then
return value
else
return nil
end
else
return value
end
end
})
</syntaxhighlight>
{{cob}}
Also, please note that the <code>valueFunc</code> function is called more or less every time an argument is requested from the <code>args</code> table, so if you care about performance you should make sure you aren't doing anything inefficient with your code.
=== Frames and parent frames ===
Arguments in the <code>args</code> table can be passed from the current frame or from its parent frame at the same time. To understand what this means, it is easiest to give an example. Let's say that we have a module called <code>Module:ExampleArgs</code>. This module prints the first two positional arguments that it is passed.
{{cot|Module:ExampleArgs code}}
<syntaxhighlight lang="lua">
local getArgs = require('Module:Arguments').getArgs
local p = {}
function p.main(frame)
local args = getArgs(frame)
return p._main(args)
end
function p._main(args)
local first = args[1] or ''
local second = args[2] or ''
return first .. ' ' .. second
end
return p
</syntaxhighlight>
{{cob}}
<code>Module:ExampleArgs</code> is then called by <code>Template:ExampleArgs</code>, which contains the code <code><nowiki>{{#invoke:ExampleArgs|main|firstInvokeArg}}</nowiki></code>. This produces the result "firstInvokeArg".
Now if we were to call <code>Template:ExampleArgs</code>, the following would happen:
{| class="wikitable" style="width: 50em; max-width: 100%;"
|-
! style="width: 60%;" | Code
! style="width: 40%;" | Result
|-
| <code><nowiki>{{ExampleArgs}}</nowiki></code>
| firstInvokeArg
|-
| <code><nowiki>{{ExampleArgs|firstTemplateArg}}</nowiki></code>
| firstInvokeArg
|-
| <code><nowiki>{{ExampleArgs|firstTemplateArg|secondTemplateArg}}</nowiki></code>
| firstInvokeArg secondTemplateArg
|}
There are three options you can set to change this behaviour: <code>frameOnly</code>, <code>parentOnly</code> and <code>parentFirst</code>. If you set <code>frameOnly</code> then only arguments passed from the current frame will be accepted; if you set <code>parentOnly</code> then only arguments passed from the parent frame will be accepted; and if you set <code>parentFirst</code> then arguments will be passed from both the current and parent frames, but the parent frame will have priority over the current frame. Here are the results in terms of <code>Template:ExampleArgs</code>:
; frameOnly
{| class="wikitable" style="width: 50em; max-width: 100%;"
|-
! style="width: 60%;" | Code
! style="width: 40%;" | Result
|-
| <code><nowiki>{{ExampleArgs}}</nowiki></code>
| firstInvokeArg
|-
| <code><nowiki>{{ExampleArgs|firstTemplateArg}}</nowiki></code>
| firstInvokeArg
|-
| <code><nowiki>{{ExampleArgs|firstTemplateArg|secondTemplateArg}}</nowiki></code>
| firstInvokeArg
|}
; parentOnly
{| class="wikitable" style="width: 50em; max-width: 100%;"
|-
! style="width: 60%;" | Code
! style="width: 40%;" | Result
|-
| <code><nowiki>{{ExampleArgs}}</nowiki></code>
|
|-
| <code><nowiki>{{ExampleArgs|firstTemplateArg}}</nowiki></code>
| firstTemplateArg
|-
| <code><nowiki>{{ExampleArgs|firstTemplateArg|secondTemplateArg}}</nowiki></code>
| firstTemplateArg secondTemplateArg
|}
; parentFirst
{| class="wikitable" style="width: 50em; max-width: 100%;"
|-
! style="width: 60%;" | Code
! style="width: 40%;" | Result
|-
| <code><nowiki>{{ExampleArgs}}</nowiki></code>
| firstInvokeArg
|-
| <code><nowiki>{{ExampleArgs|firstTemplateArg}}</nowiki></code>
| firstTemplateArg
|-
| <code><nowiki>{{ExampleArgs|firstTemplateArg|secondTemplateArg}}</nowiki></code>
| firstTemplateArg secondTemplateArg
|}
Notes:
# If you set both the <code>frameOnly</code> and <code>parentOnly</code> options, the module won't fetch any arguments at all from #invoke. This is probably not what you want.
# In some situations a parent frame may not be available, e.g. if getArgs is passed the parent frame rather than the current frame. In this case, only the frame arguments will be used (unless parentOnly is set, in which case no arguments will be used) and the <code>parentFirst</code> and <code>frameOnly</code> options will have no effect.
=== Wrappers ===
The ''wrappers'' option is used to specify a limited number of templates as ''wrapper templates'', that is, templates whose only purpose is to call a module. If the module detects that it is being called from a wrapper template, it will only check for arguments in the parent frame; otherwise it will only check for arguments in the frame passed to getArgs. This allows modules to be called by either #invoke or through a wrapper template without the loss of performance associated with having to check both the frame and the parent frame for each argument lookup.
For example, the only content of [[Template:Side box]] (excluding content in {{tag|noinclude}} tags) is <code><nowiki>{{#invoke:Side box|main}}</nowiki></code>. There is no point in checking the arguments passed directly to the #invoke statement for this template, as no arguments will ever be specified there. We can avoid checking arguments passed to #invoke by using the ''parentOnly'' option, but if we do this then #invoke will not work from other pages either. If this were the case, the {{para|text|Some text}} in the code <code><nowiki>{{#invoke:Side box|main|text=Some text}}</nowiki></code> would be ignored completely, no matter what page it was used from. By using the <code>wrappers</code> option to specify 'Template:Side box' as a wrapper, we can make <code><nowiki>{{#invoke:Side box|main|text=Some text}}</nowiki></code> work from most pages, while still not requiring that the module check for arguments on the [[Template:Side box]] page itself.
Wrappers can be specified either as a string, or as an array of strings.
<syntaxhighlight lang="lua">
local args = getArgs(frame, {
wrappers = 'Template:Wrapper template'
})
</syntaxhighlight>
<syntaxhighlight lang="lua">
local args = getArgs(frame, {
wrappers = {
'Template:Wrapper 1',
'Template:Wrapper 2',
-- Any number of wrapper templates can be added here.
}
})
</syntaxhighlight>
Notes:
# The module will automatically detect if it is being called from a wrapper template's /sandbox subpage, so there is no need to specify sandbox pages explicitly.
# The ''wrappers'' option effectively changes the default of the ''frameOnly'' and ''parentOnly'' options. If, for example, ''parentOnly'' were explicitly set to 0 with ''wrappers'' set, calls via wrapper templates would result in both frame and parent arguments being loaded, though calls not via wrapper templates would result in only frame arguments being loaded.
# If the ''wrappers'' option is set and no parent frame is available, the module will always get the arguments from the frame passed to <code>getArgs</code>.
=== Writing to the args table ===
Sometimes it can be useful to write new values to the args table. This is possible with the default settings of this module. (However, bear in mind that it is usually better coding style to create a new table with your new values and copy arguments from the args table as needed.)
<syntaxhighlight lang="lua">
args.foo = 'some value'
</syntaxhighlight>
It is possible to alter this behaviour with the <code>readOnly</code> and <code>noOverwrite</code> options. If <code>readOnly</code> is set then it is not possible to write any values to the args table at all. If <code>noOverwrite</code> is set, then it is possible to add new values to the table, but it is not possible to add a value if it would overwrite any arguments that are passed from #invoke.
=== Ref tags ===
This module uses [[mw:Extension:Scribunto/Lua reference manual#Metatables|metatables]] to fetch arguments from #invoke. This allows access to both the frame arguments and the parent frame arguments without using the <code>pairs()</code> function. This can help if your module might be passed {{tag|ref}} tags as input.
As soon as {{tag|ref}} tags are accessed from Lua, they are processed by the MediaWiki software and the reference will appear in the reference list at the bottom of the article. If your module proceeds to omit the reference tag from the output, you will end up with a phantom reference – a reference that appears in the reference list but without any number linking to it. This has been a problem with modules that use <code>pairs()</code> to detect whether to use the arguments from the frame or the parent frame, as those modules automatically process every available argument.
This module solves this problem by allowing access to both frame and parent frame arguments, while still only fetching those arguments when it is necessary. The problem will still occur if you use <code>pairs(args)</code> elsewhere in your module, however.
=== Known limitations ===
The use of metatables also has its downsides. Most of the normal Lua table tools won't work properly on the args table, including the <code>#</code> operator, the <code>next()</code> function, and the functions in the table library. If using these is important for your module, you should use your own argument processing function instead of this module.<includeonly>{{#ifeq:{{SUBPAGENAME}}|sandbox||
[[Category:Lua metamodules]]
}}</includeonly>
k4uzxsw0iijn6fknzztdakyiac9km86
Module:Documentation/config
828
1301
13203
2022-05-31T19:06:26Z
Kambai Akau
15
Created page with "---------------------------------------------------------------------------------------------------- -- -- Configuration for Module:Documentation -- -- Here you can set the values of the parameters and messages used in Module:Documentation to -- localise it to your wiki and your language. Unless specified otherwise, values given here -- should be string values. ---------------------------------------------------------------------------------..."
Scribunto
text/plain
----------------------------------------------------------------------------------------------------
--
-- Configuration for Module:Documentation
--
-- Here you can set the values of the parameters and messages used in Module:Documentation to
-- localise it to your wiki and your language. Unless specified otherwise, values given here
-- should be string values.
----------------------------------------------------------------------------------------------------
local cfg = {} -- Do not edit this line.
----------------------------------------------------------------------------------------------------
-- Protection template configuration
----------------------------------------------------------------------------------------------------
-- cfg['protection-reason-edit']
-- The protection reason for edit-protected templates to pass to
-- [[Module:Protection banner]].
cfg['protection-reason-edit'] = 'template'
--[[
----------------------------------------------------------------------------------------------------
-- Sandbox notice configuration
--
-- On sandbox pages the module can display a template notifying users that the current page is a
-- sandbox, and the location of test cases pages, etc. The module decides whether the page is a
-- sandbox or not based on the value of cfg['sandbox-subpage']. The following settings configure the
-- messages that the notices contains.
----------------------------------------------------------------------------------------------------
--]]
-- cfg['sandbox-notice-image']
-- The image displayed in the sandbox notice.
cfg['sandbox-notice-image'] = '[[File:Sandbox.svg|50px|alt=|link=]]'
--[[
-- cfg['sandbox-notice-pagetype-template']
-- cfg['sandbox-notice-pagetype-module']
-- cfg['sandbox-notice-pagetype-other']
-- The page type of the sandbox page. The message that is displayed depends on the current subject
-- namespace. This message is used in either cfg['sandbox-notice-blurb'] or
-- cfg['sandbox-notice-diff-blurb'].
--]]
cfg['sandbox-notice-pagetype-template'] = '[[Wikipedia:Template test cases|template sandbox]] page'
cfg['sandbox-notice-pagetype-module'] = '[[Wikipedia:Template test cases|module sandbox]] page'
cfg['sandbox-notice-pagetype-other'] = 'sandbox page'
--[[
-- cfg['sandbox-notice-blurb']
-- cfg['sandbox-notice-diff-blurb']
-- cfg['sandbox-notice-diff-display']
-- Either cfg['sandbox-notice-blurb'] or cfg['sandbox-notice-diff-blurb'] is the opening sentence
-- of the sandbox notice. The latter has a diff link, but the former does not. $1 is the page
-- type, which is either cfg['sandbox-notice-pagetype-template'],
-- cfg['sandbox-notice-pagetype-module'] or cfg['sandbox-notice-pagetype-other'] depending what
-- namespace we are in. $2 is a link to the main template page, and $3 is a diff link between
-- the sandbox and the main template. The display value of the diff link is set by
-- cfg['sandbox-notice-compare-link-display'].
--]]
cfg['sandbox-notice-blurb'] = 'This is the $1 for $2.'
cfg['sandbox-notice-diff-blurb'] = 'This is the $1 for $2 ($3).'
cfg['sandbox-notice-compare-link-display'] = 'diff'
--[[
-- cfg['sandbox-notice-testcases-blurb']
-- cfg['sandbox-notice-testcases-link-display']
-- cfg['sandbox-notice-testcases-run-blurb']
-- cfg['sandbox-notice-testcases-run-link-display']
-- cfg['sandbox-notice-testcases-blurb'] is a sentence notifying the user that there is a test cases page
-- corresponding to this sandbox that they can edit. $1 is a link to the test cases page.
-- cfg['sandbox-notice-testcases-link-display'] is the display value for that link.
-- cfg['sandbox-notice-testcases-run-blurb'] is a sentence notifying the user that there is a test cases page
-- corresponding to this sandbox that they can edit, along with a link to run it. $1 is a link to the test
-- cases page, and $2 is a link to the page to run it.
-- cfg['sandbox-notice-testcases-run-link-display'] is the display value for the link to run the test
-- cases.
--]]
cfg['sandbox-notice-testcases-blurb'] = 'See also the companion subpage for $1.'
cfg['sandbox-notice-testcases-link-display'] = 'test cases'
cfg['sandbox-notice-testcases-run-blurb'] = 'See also the companion subpage for $1 ($2).'
cfg['sandbox-notice-testcases-run-link-display'] = 'run'
-- cfg['sandbox-category']
-- A category to add to all template sandboxes.
cfg['sandbox-category'] = 'Template sandboxes'
----------------------------------------------------------------------------------------------------
-- Start box configuration
----------------------------------------------------------------------------------------------------
-- cfg['documentation-icon-wikitext']
-- The wikitext for the icon shown at the top of the template.
cfg['documentation-icon-wikitext'] = '[[File:Test Template Info-Icon - Version (2).svg|50px|link=|alt=]]'
-- cfg['template-namespace-heading']
-- The heading shown in the template namespace.
cfg['template-namespace-heading'] = 'Template documentation'
-- cfg['module-namespace-heading']
-- The heading shown in the module namespace.
cfg['module-namespace-heading'] = 'Module documentation'
-- cfg['file-namespace-heading']
-- The heading shown in the file namespace.
cfg['file-namespace-heading'] = 'Summary'
-- cfg['other-namespaces-heading']
-- The heading shown in other namespaces.
cfg['other-namespaces-heading'] = 'Documentation'
-- cfg['view-link-display']
-- The text to display for "view" links.
cfg['view-link-display'] = 'view'
-- cfg['edit-link-display']
-- The text to display for "edit" links.
cfg['edit-link-display'] = 'edit'
-- cfg['history-link-display']
-- The text to display for "history" links.
cfg['history-link-display'] = 'history'
-- cfg['purge-link-display']
-- The text to display for "purge" links.
cfg['purge-link-display'] = 'purge'
-- cfg['create-link-display']
-- The text to display for "create" links.
cfg['create-link-display'] = 'create'
----------------------------------------------------------------------------------------------------
-- Link box (end box) configuration
----------------------------------------------------------------------------------------------------
-- cfg['transcluded-from-blurb']
-- Notice displayed when the docs are transcluded from another page. $1 is a wikilink to that page.
cfg['transcluded-from-blurb'] = 'The above [[Wikipedia:Template documentation|documentation]] is [[Help:Transclusion|transcluded]] from $1.'
--[[
-- cfg['create-module-doc-blurb']
-- Notice displayed in the module namespace when the documentation subpage does not exist.
-- $1 is a link to create the documentation page with the preload cfg['module-preload'] and the
-- display cfg['create-link-display'].
--]]
cfg['create-module-doc-blurb'] = 'You might want to $1 a documentation page for this [[Wikipedia:Lua|Scribunto module]].'
----------------------------------------------------------------------------------------------------
-- Experiment blurb configuration
----------------------------------------------------------------------------------------------------
--[[
-- cfg['experiment-blurb-template']
-- cfg['experiment-blurb-module']
-- The experiment blurb is the text inviting editors to experiment in sandbox and test cases pages.
-- It is only shown in the template and module namespaces. With the default English settings, it
-- might look like this:
--
-- Editors can experiment in this template's sandbox (edit | diff) and testcases (edit) pages.
--
-- In this example, "sandbox", "edit", "diff", "testcases", and "edit" would all be links.
--
-- There are two versions, cfg['experiment-blurb-template'] and cfg['experiment-blurb-module'], depending
-- on what namespace we are in.
--
-- Parameters:
--
-- $1 is a link to the sandbox page. If the sandbox exists, it is in the following format:
--
-- cfg['sandbox-link-display'] (cfg['sandbox-edit-link-display'] | cfg['compare-link-display'])
--
-- If the sandbox doesn't exist, it is in the format:
--
-- cfg['sandbox-link-display'] (cfg['sandbox-create-link-display'] | cfg['mirror-link-display'])
--
-- The link for cfg['sandbox-create-link-display'] link preloads the page with cfg['template-sandbox-preload']
-- or cfg['module-sandbox-preload'], depending on the current namespace. The link for cfg['mirror-link-display']
-- loads a default edit summary of cfg['mirror-edit-summary'].
--
-- $2 is a link to the test cases page. If the test cases page exists, it is in the following format:
--
-- cfg['testcases-link-display'] (cfg['testcases-edit-link-display'] | cfg['testcases-run-link-display'])
--
-- If the test cases page doesn't exist, it is in the format:
--
-- cfg['testcases-link-display'] (cfg['testcases-create-link-display'])
--
-- If the test cases page doesn't exist, the link for cfg['testcases-create-link-display'] preloads the
-- page with cfg['template-testcases-preload'] or cfg['module-testcases-preload'], depending on the current
-- namespace.
--]]
cfg['experiment-blurb-template'] = "Editors can experiment in this template's $1 and $2 pages."
cfg['experiment-blurb-module'] = "Editors can experiment in this module's $1 and $2 pages."
----------------------------------------------------------------------------------------------------
-- Sandbox link configuration
----------------------------------------------------------------------------------------------------
-- cfg['sandbox-subpage']
-- The name of the template subpage typically used for sandboxes.
cfg['sandbox-subpage'] = 'sandbox'
-- cfg['template-sandbox-preload']
-- Preload file for template sandbox pages.
cfg['template-sandbox-preload'] = 'Template:Documentation/preload-sandbox'
-- cfg['module-sandbox-preload']
-- Preload file for Lua module sandbox pages.
cfg['module-sandbox-preload'] = 'Template:Documentation/preload-module-sandbox'
-- cfg['sandbox-link-display']
-- The text to display for "sandbox" links.
cfg['sandbox-link-display'] = 'sandbox'
-- cfg['sandbox-edit-link-display']
-- The text to display for sandbox "edit" links.
cfg['sandbox-edit-link-display'] = 'edit'
-- cfg['sandbox-create-link-display']
-- The text to display for sandbox "create" links.
cfg['sandbox-create-link-display'] = 'create'
-- cfg['compare-link-display']
-- The text to display for "compare" links.
cfg['compare-link-display'] = 'diff'
-- cfg['mirror-edit-summary']
-- The default edit summary to use when a user clicks the "mirror" link. $1 is a wikilink to the
-- template page.
cfg['mirror-edit-summary'] = 'Create sandbox version of $1'
-- cfg['mirror-link-display']
-- The text to display for "mirror" links.
cfg['mirror-link-display'] = 'mirror'
-- cfg['mirror-link-preload']
-- The page to preload when a user clicks the "mirror" link.
cfg['mirror-link-preload'] = 'Template:Documentation/mirror'
----------------------------------------------------------------------------------------------------
-- Test cases link configuration
----------------------------------------------------------------------------------------------------
-- cfg['testcases-subpage']
-- The name of the template subpage typically used for test cases.
cfg['testcases-subpage'] = 'testcases'
-- cfg['template-testcases-preload']
-- Preload file for template test cases pages.
cfg['template-testcases-preload'] = 'Template:Documentation/preload-testcases'
-- cfg['module-testcases-preload']
-- Preload file for Lua module test cases pages.
cfg['module-testcases-preload'] = 'Template:Documentation/preload-module-testcases'
-- cfg['testcases-link-display']
-- The text to display for "testcases" links.
cfg['testcases-link-display'] = 'testcases'
-- cfg['testcases-edit-link-display']
-- The text to display for test cases "edit" links.
cfg['testcases-edit-link-display'] = 'edit'
-- cfg['testcases-run-link-display']
-- The text to display for test cases "run" links.
cfg['testcases-run-link-display'] = 'run'
-- cfg['testcases-create-link-display']
-- The text to display for test cases "create" links.
cfg['testcases-create-link-display'] = 'create'
----------------------------------------------------------------------------------------------------
-- Add categories blurb configuration
----------------------------------------------------------------------------------------------------
--[[
-- cfg['add-categories-blurb']
-- Text to direct users to add categories to the /doc subpage. Not used if the "content" or
-- "docname fed" arguments are set, as then it is not clear where to add the categories. $1 is a
-- link to the /doc subpage with a display value of cfg['doc-link-display'].
--]]
cfg['add-categories-blurb'] = 'Add categories to the $1 subpage.'
-- cfg['doc-link-display']
-- The text to display when linking to the /doc subpage.
cfg['doc-link-display'] = '/doc'
----------------------------------------------------------------------------------------------------
-- Subpages link configuration
----------------------------------------------------------------------------------------------------
--[[
-- cfg['subpages-blurb']
-- The "Subpages of this template" blurb. $1 is a link to the main template's subpages with a
-- display value of cfg['subpages-link-display']. In the English version this blurb is simply
-- the link followed by a period, and the link display provides the actual text.
--]]
cfg['subpages-blurb'] = '$1.'
--[[
-- cfg['subpages-link-display']
-- The text to display for the "subpages of this page" link. $1 is cfg['template-pagetype'],
-- cfg['module-pagetype'] or cfg['default-pagetype'], depending on whether the current page is in
-- the template namespace, the module namespace, or another namespace.
--]]
cfg['subpages-link-display'] = 'Subpages of this $1'
-- cfg['template-pagetype']
-- The pagetype to display for template pages.
cfg['template-pagetype'] = 'template'
-- cfg['module-pagetype']
-- The pagetype to display for Lua module pages.
cfg['module-pagetype'] = 'module'
-- cfg['default-pagetype']
-- The pagetype to display for pages other than templates or Lua modules.
cfg['default-pagetype'] = 'page'
----------------------------------------------------------------------------------------------------
-- Doc link configuration
----------------------------------------------------------------------------------------------------
-- cfg['doc-subpage']
-- The name of the subpage typically used for documentation pages.
cfg['doc-subpage'] = 'doc'
-- cfg['docpage-preload']
-- Preload file for template documentation pages in all namespaces.
cfg['docpage-preload'] = 'Template:Documentation/preload'
-- cfg['module-preload']
-- Preload file for Lua module documentation pages.
cfg['module-preload'] = 'Template:Documentation/preload-module-doc'
----------------------------------------------------------------------------------------------------
-- HTML and CSS configuration
----------------------------------------------------------------------------------------------------
-- cfg['templatestyles']
-- The name of the TemplateStyles page where CSS is kept.
-- Sandbox CSS will be at Module:Documentation/sandbox/styles.css when needed.
cfg['templatestyles'] = 'Module:Documentation/styles.css'
-- cfg['container']
-- Class which can be used to set flex or grid CSS on the
-- two child divs documentation and documentation-metadata
cfg['container'] = 'documentation-container'
-- cfg['main-div-classes']
-- Classes added to the main HTML "div" tag.
cfg['main-div-classes'] = 'documentation'
-- cfg['main-div-heading-class']
-- Class for the main heading for templates and modules and assoc. talk spaces
cfg['main-div-heading-class'] = 'documentation-heading'
-- cfg['start-box-class']
-- Class for the start box
cfg['start-box-class'] = 'documentation-startbox'
-- cfg['start-box-link-classes']
-- Classes used for the [view][edit][history] or [create] links in the start box.
-- mw-editsection-like is per [[Wikipedia:Village pump (technical)/Archive 117]]
cfg['start-box-link-classes'] = 'mw-editsection-like plainlinks'
-- cfg['end-box-class']
-- Class for the end box.
cfg['end-box-class'] = 'documentation-metadata'
-- cfg['end-box-plainlinks']
-- Plainlinks
cfg['end-box-plainlinks'] = 'plainlinks'
-- cfg['toolbar-class']
-- Class added for toolbar links.
cfg['toolbar-class'] = 'documentation-toolbar'
-- cfg['clear']
-- Just used to clear things.
cfg['clear'] = 'documentation-clear'
----------------------------------------------------------------------------------------------------
-- Tracking category configuration
----------------------------------------------------------------------------------------------------
-- cfg['display-strange-usage-category']
-- Set to true to enable output of cfg['strange-usage-category'] if the module is used on a /doc subpage
-- or a /testcases subpage. This should be a boolean value (either true or false).
cfg['display-strange-usage-category'] = true
-- cfg['strange-usage-category']
-- Category to output if cfg['display-strange-usage-category'] is set to true and the module is used on a
-- /doc subpage or a /testcases subpage.
cfg['strange-usage-category'] = 'Wikipedia pages with strange ((documentation)) usage'
--[[
----------------------------------------------------------------------------------------------------
-- End configuration
--
-- Don't edit anything below this line.
----------------------------------------------------------------------------------------------------
--]]
return cfg
da6pt1lzpy4z0skaztwblaqnfhizyf7
Module:Documentation/styles.css
828
1302
13211
2022-05-31T19:12:15Z
Kambai Akau
15
Created page with "/* {{pp|small=yes}} */ .documentation, .documentation-metadata { border: 1px solid #a2a9b1; background-color: #ecfcf4; clear: both; } .documentation { margin: 1em 0 0 0; padding: 1em; } .documentation-metadata { margin: 0.2em 0; /* same margin left-right as .documentation */ font-style: italic; padding: 0.4em 1em; /* same padding left-right as .documentation */ } .documentation-startbox { padding-bottom: 3px; border-bottom: 1px solid #aaa; margin-bott..."
sanitized-css
text/css
/* {{pp|small=yes}} */
.documentation,
.documentation-metadata {
border: 1px solid #a2a9b1;
background-color: #ecfcf4;
clear: both;
}
.documentation {
margin: 1em 0 0 0;
padding: 1em;
}
.documentation-metadata {
margin: 0.2em 0; /* same margin left-right as .documentation */
font-style: italic;
padding: 0.4em 1em; /* same padding left-right as .documentation */
}
.documentation-startbox {
padding-bottom: 3px;
border-bottom: 1px solid #aaa;
margin-bottom: 1ex;
}
.documentation-heading {
font-weight: bold;
font-size: 125%;
}
.documentation-clear { /* Don't want things to stick out where they shouldn't. */
clear: both;
}
.documentation-toolbar {
font-style: normal;
font-size: 85%;
}
o2ia525en7wbq32mq4fpdevtl5d6pcb
Ta̱mpi̱let:Tl
10
1303
13212
2022-05-31T19:17:37Z
Kambai Akau
15
Created page with "{{[[Template:{{{1}}}|{{{1}}}]]}}<noinclude>{{documentation}} <!-- Categories go on the /doc subpage and interwikis go on Wikidata. --> </noinclude>"
wikitext
text/x-wiki
{{[[Template:{{{1}}}|{{{1}}}]]}}<noinclude>{{documentation}}
<!-- Categories go on the /doc subpage and interwikis go on Wikidata. -->
</noinclude>
rf3qx5cilaxlnjqq9fivevkah92ncil
Ta̱mpi̱let:Em
10
1304
13222
2022-05-31T19:24:26Z
Kambai Akau
15
Created page with "<em {{#if:{{{role|}}}|role="{{{role}}}"}} {{#if:{{{class|}}}|class="{{{class}}}"}} {{#if:{{{id|}}}|id="{{{id}}}"}} {{#if:{{{style|}}}|style="{{{style}}}"}} {{#if:{{{title|}}}|title="{{{title}}}"}}>{{{1}}}</em><noinclude> {{documentation}} <!-- Add categories to the /doc subpage, interwikis to Wikidata, not here --> </noinclude>"
wikitext
text/x-wiki
<em {{#if:{{{role|}}}|role="{{{role}}}"}} {{#if:{{{class|}}}|class="{{{class}}}"}} {{#if:{{{id|}}}|id="{{{id}}}"}} {{#if:{{{style|}}}|style="{{{style}}}"}} {{#if:{{{title|}}}|title="{{{title}}}"}}>{{{1}}}</em><noinclude>
{{documentation}}
<!-- Add categories to the /doc subpage, interwikis to Wikidata, not here -->
</noinclude>
qihth5vbfna026aqh87kteifb1nb5ot
Module:File link
828
1305
13224
2022-05-31T19:34:20Z
Kambai Akau
15
Created page with "-- This module provides a library for formatting file wikilinks. local yesno = require('Module:Yesno') local checkType = require('libraryUtil').checkType local p = {} function p._main(args) checkType('_main', 1, args, 'table') -- This is basically libraryUtil.checkTypeForNamedArg, but we are rolling our -- own function to get the right error level. local function checkArg(key, val, level) if type(val) ~= 'string' then error(string.format( "type error in..."
Scribunto
text/plain
-- This module provides a library for formatting file wikilinks.
local yesno = require('Module:Yesno')
local checkType = require('libraryUtil').checkType
local p = {}
function p._main(args)
checkType('_main', 1, args, 'table')
-- This is basically libraryUtil.checkTypeForNamedArg, but we are rolling our
-- own function to get the right error level.
local function checkArg(key, val, level)
if type(val) ~= 'string' then
error(string.format(
"type error in '%s' parameter of '_main' (expected string, got %s)",
key, type(val)
), level)
end
end
local ret = {}
-- Adds a positional parameter to the buffer.
local function addPositional(key)
local val = args[key]
if not val then
return nil
end
checkArg(key, val, 4)
ret[#ret + 1] = val
end
-- Adds a named parameter to the buffer. We assume that the parameter name
-- is the same as the argument key.
local function addNamed(key)
local val = args[key]
if not val then
return nil
end
checkArg(key, val, 4)
ret[#ret + 1] = key .. '=' .. val
end
-- Filename
checkArg('file', args.file, 3)
ret[#ret + 1] = 'File:' .. args.file
-- Format
if args.format then
checkArg('format', args.format)
if args.formatfile then
checkArg('formatfile', args.formatfile)
ret[#ret + 1] = args.format .. '=' .. args.formatfile
else
ret[#ret + 1] = args.format
end
end
-- Border
if yesno(args.border) then
ret[#ret + 1] = 'border'
end
addPositional('location')
addPositional('alignment')
addPositional('size')
addNamed('upright')
addNamed('link')
addNamed('alt')
addNamed('page')
addNamed('class')
addNamed('lang')
addNamed('start')
addNamed('end')
addNamed('thumbtime')
addPositional('caption')
return string.format('[[%s]]', table.concat(ret, '|'))
end
function p.main(frame)
local origArgs = require('Module:Arguments').getArgs(frame, {
wrappers = 'Template:File link'
})
if not origArgs.file then
error("'file' parameter missing from [[Template:File link]]", 0)
end
-- Copy the arguments that were passed to a new table to avoid looking up
-- every possible parameter in the frame object.
local args = {}
for k, v in pairs(origArgs) do
-- Make _BLANK a special argument to add a blank parameter. For use in
-- conditional templates etc. it is useful for blank arguments to be
-- ignored, but we still need a way to specify them so that we can do
-- things like [[File:Example.png|link=]].
if v == '_BLANK' then
v = ''
end
args[k] = v
end
return p._main(args)
end
return p
bzc22v133v9z5yc4aisazripn6l94p8
Module:File link/doc
828
1306
13225
2022-05-31T19:35:19Z
Kambai Akau
15
Created page with "{{Module rating|protected}} {{Lua|Module:Yesno|Module:Arguments}} This module is used to construct wikitext links to files. It is primarily useful for templates and modules that use complicated logic to make file links. Simple file links should be made with wikitext markup directly, as it uses less resources than calling this module. For help with wikitext file markup please refer to the [[mw:Help:Images|documentation at mediawiki.org]]. == Usage from wikitext == From..."
wikitext
text/x-wiki
{{Module rating|protected}}
{{Lua|Module:Yesno|Module:Arguments}}
This module is used to construct wikitext links to files. It is primarily useful for templates and modules that use complicated logic to make file links. Simple file links should be made with wikitext markup directly, as it uses less resources than calling this module. For help with wikitext file markup please refer to the [[mw:Help:Images|documentation at mediawiki.org]].
== Usage from wikitext ==
From wikitext, this module should be called from a template, usually {{tl|file link}}. Please see the template page for documentation. However, it can also be called using the syntax <code><nowiki>{{#invoke:File link|main|</nowiki>''arguments''<nowiki>}}</nowiki></code>.
== Usage from Lua ==
First, you need to import the module.
<syntaxhighlight lang="lua">
local mFileLink = require('Module:File link')
</syntaxhighlight>
Then you can make file links using the <code>_main</code> function.
<syntaxhighlight lang="lua">
mFileLink._main(args)
</syntaxhighlight>
<var>args</var> is a table of arguments that can have the following keys:
* <code>file</code> - the filename. (required)
* <code>format</code> - the file format, e.g. 'thumb', 'thumbnail', 'frame', 'framed', or 'frameless'.
* <code>formatfile</code> - a filename to specify with the 'thumbnail' format option. The filename specified will be used instead of the automatically generated thumbnail.
* <code>border</code> - set this to true or "yes" (or any other value recognized as true by [[Module:Yesno]]) to set a border for the image.
* <code>location</code> - the horizontal alignment of the file, e.g. 'right', 'left', 'center', or 'none'.
* <code>alignment</code> - the vertical alignment of the file, e.g. 'baseline', 'middle', 'sub', 'super', 'text-top', 'text-bottom', 'top', or 'bottom'.
* <code>size</code> - the size of the image, e.g. '100px', 'x100px' or '100x100px'.
* <code>upright</code> - the 'upright' parameter, used for setting the size of tall and thin images.
* <code>link</code> - the page that the file should link to. Use the blank string <nowiki>''</nowiki> to suppress the default link to the file description page.
* <code>alt</code> - the alt text. Use the blank string <nowiki>''</nowiki> to suppress the default alt text.
* <code>caption</code> - a caption for the file.
* <code>page</code> - sets a page number for multi-paged files such as PDFs.
* <code>class</code> - adds a <code>class</code> parameter to image links. The MediaWiki software adds this parameter to the <code>class="..."</code> attribute of the image's <code><nowiki><img /></nowiki></code> element when the page is rendered into HTML.
* <code>lang</code> - adds a language attribute to specify what language to render the file in.
* <code>start</code> - specifies a start time for audio and video files.
* <code>end</code> - specifies an end time for audio and video files.
* <code>thumbtime</code> - specifies the time to use to generate the thumbnail image for video files.
To see the effect of each of these parameters, see the [[mw:Help:Images#Format|images help page on mediawiki.org]].
=== Examples ===
With the file only:
<syntaxhighlight lang="lua">
mFileLink.main{file = 'Example.png'}
-- Renders as [[File:Example.png]]
</syntaxhighlight>
With format, size, link and caption options:
<syntaxhighlight lang="lua">
mFileLink.main{
file = 'Example.png',
format = 'thumb',
size = '220px',
link = 'Wikipedia:Sandbox',
caption = 'An example.'
}
-- Renders as [[File:Example.png|thumb|220px|link=Wikipedia:Sandbox|An example.]]
</syntaxhighlight>
With format, size, and border:
<syntaxhighlight lang="lua">
mFileLink.main{
file = 'Example.png',
format = 'frameless',
size = '220px',
border = true
}
-- Renders as [[File:Example.png|frameless|border|220px]]
</syntaxhighlight>
<includeonly>{{#ifeq:{{SUBPAGENAME}}|sandbox||
<!-- Categories go here and interwikis go in Wikidata. -->
}}</includeonly>
3k7axz0rlrszfqs9owmgz9efxq17gfa
Ta̱mpi̱let:Lua
10
1307
13226
2022-05-31T19:36:12Z
Kambai Akau
15
Created page with "<includeonly>{{#invoke:Lua banner|main}}</includeonly><noinclude> {{Lua|Module:Lua banner}} {{documentation}} <!-- Categories go on the /doc subpage and interwikis go on Wikidata. --> </noinclude>"
wikitext
text/x-wiki
<includeonly>{{#invoke:Lua banner|main}}</includeonly><noinclude>
{{Lua|Module:Lua banner}}
{{documentation}}
<!-- Categories go on the /doc subpage and interwikis go on Wikidata. -->
</noinclude>
pnmjp3f3fl321yf2jpg5syebi412n7b
Module:Lua banner
828
1308
13227
2022-05-31T19:38:07Z
Kambai Akau
15
Created page with "-- This module implements the {{lua}} template. local yesno = require('Module:Yesno') local mList = require('Module:List') local mTableTools = require('Module:TableTools') local mMessageBox = require('Module:Message box') local p = {} function p.main(frame) local origArgs = frame:getParent().args local args = {} for k, v in pairs(origArgs) do v = v:match('^%s*(.-)%s*$') if v ~= '' then args[k] = v end end return p._main(args) end function p._main(args)..."
Scribunto
text/plain
-- This module implements the {{lua}} template.
local yesno = require('Module:Yesno')
local mList = require('Module:List')
local mTableTools = require('Module:TableTools')
local mMessageBox = require('Module:Message box')
local p = {}
function p.main(frame)
local origArgs = frame:getParent().args
local args = {}
for k, v in pairs(origArgs) do
v = v:match('^%s*(.-)%s*$')
if v ~= '' then
args[k] = v
end
end
return p._main(args)
end
function p._main(args)
local modules = mTableTools.compressSparseArray(args)
local box = p.renderBox(modules)
local trackingCategories = p.renderTrackingCategories(args, modules)
return box .. trackingCategories
end
function p.renderBox(modules)
local boxArgs = {}
if #modules < 1 then
boxArgs.text = '<strong class="error">Error: no modules specified</strong>'
else
local moduleLinks = {}
for i, module in ipairs(modules) do
moduleLinks[i] = string.format('[[:%s]]', module)
local maybeSandbox = mw.title.new(module .. '/sandbox')
if maybeSandbox.exists then
moduleLinks[i] = moduleLinks[i] .. string.format(' ([[:%s|sandbox]])', maybeSandbox.fullText)
end
end
local moduleList = mList.makeList('bulleted', moduleLinks)
local title = mw.title.getCurrentTitle()
if title.subpageText == "doc" then
title = title.basePageTitle
end
if title.contentModel == "Scribunto" then
boxArgs.text = 'This module depends on the following other modules:' .. moduleList
else
boxArgs.text = 'This template uses [[Wikipedia:Lua|Lua]]:\n' .. moduleList
end
end
boxArgs.type = 'notice'
boxArgs.small = true
boxArgs.image = '[[File:Lua-Logo.svg|30px|alt=|link=]]'
return mMessageBox.main('mbox', boxArgs)
end
function p.renderTrackingCategories(args, modules, titleObj)
if yesno(args.nocat) then
return ''
end
local cats = {}
-- Error category
if #modules < 1 then
cats[#cats + 1] = 'Lua templates with errors'
end
-- Lua templates category
titleObj = titleObj or mw.title.getCurrentTitle()
local subpageBlacklist = {
doc = true,
sandbox = true,
sandbox2 = true,
testcases = true
}
if not subpageBlacklist[titleObj.subpageText] then
local protCatName
if titleObj.namespace == 10 then
local category = args.category
if not category then
local categories = {
['Module:String'] = 'Templates based on the String Lua module',
['Module:Math'] = 'Templates based on the Math Lua module',
['Module:BaseConvert'] = 'Templates based on the BaseConvert Lua module',
['Module:Citation'] = 'Templates based on the Citation/CS1 Lua module'
}
categories['Module:Citation/CS1'] = categories['Module:Citation']
category = modules[1] and categories[modules[1]]
category = category or 'Lua-based templates'
end
cats[#cats + 1] = category
protCatName = "Templates using under-protected Lua modules"
elseif titleObj.namespace == 828 then
protCatName = "Modules depending on under-protected modules"
end
if not args.noprotcat and protCatName then
local protLevels = {
autoconfirmed = 1,
extendedconfirmed = 2,
templateeditor = 3,
sysop = 4
}
local currentProt
if titleObj.id ~= 0 then
-- id is 0 (page does not exist) if am previewing before creating a template.
currentProt = titleObj.protectionLevels["edit"][1]
end
if currentProt == nil then currentProt = 0 else currentProt = protLevels[currentProt] end
for i, module in ipairs(modules) do
if module ~= "WP:libraryUtil" then
local moduleProt = mw.title.new(module).protectionLevels["edit"][1]
if moduleProt == nil then moduleProt = 0 else moduleProt = protLevels[moduleProt] end
if moduleProt < currentProt then
cats[#cats + 1] = protCatName
break
end
end
end
end
end
for i, cat in ipairs(cats) do
cats[i] = string.format('[[Category:%s]]', cat)
end
return table.concat(cats)
end
return p
cvk1cpv9jtriqu1hfkfklnnsm49md8l
Module:Lua banner/doc
828
1309
13228
2022-05-31T19:38:56Z
Kambai Akau
15
Created page with "{{high use}} {{Lua|Module:Yesno|Module:List|Module:TableTools|Module:Message box}} This module implements the {{tl|lua}} template. == Usage from wikitext == This module cannot be used directly from wikitext. It can only be used through the {{tl|lua}} template. Please see the template page for documentation. == Usage from Lua modules == To use this module from other Lua modules, first load the module. <syntaxhighlight lang="lua"> local mLuaBanner = require('Module:Lu..."
wikitext
text/x-wiki
{{high use}}
{{Lua|Module:Yesno|Module:List|Module:TableTools|Module:Message box}}
This module implements the {{tl|lua}} template.
== Usage from wikitext ==
This module cannot be used directly from wikitext. It can only be used through the {{tl|lua}} template. Please see the template page for documentation.
== Usage from Lua modules ==
To use this module from other Lua modules, first load the module.
<syntaxhighlight lang="lua">
local mLuaBanner = require('Module:Lua banner')
</syntaxhighlight>
You can then generate a side box using the _main function.
<syntaxhighlight lang="lua">
mLuaBanner._main(args)
</syntaxhighlight>
The <var>args</var> variable should be a table containing the arguments to pass to the module. To see the different arguments that can be specified and how they affect the module output, please refer to the {{tl|lua}} template documentation.
== Tracking category ==
* {{clc|Lua templates with errors}}
<includeonly>{{#ifeq:{{SUBPAGENAME}}|sandbox||
<!-- Categories go here and interwikis go in Wikidata. -->
[[Category:Modules that add a tracking category]]
}}</includeonly>
fos047t7cgpw3gglhv5yhmde5dwfeiv
Ta̱mpi̱let:Category link with count
10
1310
13230
13229
2022-05-31T19:42:18Z
Kambai Akau
15
Kambai Akau shyei peji [[Ta̱mpi̱let:Clc]] nat [[Ta̱mpi̱let:Category link with count]]
wikitext
text/x-wiki
[[:Category:{{#invoke:string|replace|1={{{1}}}|2=^:?[Cc]ategory:|3=|plain=false}}|<!--
-->{{#if:{{{name|}}}|{{{name}}}|Category:{{#invoke:string|replace|1={{{1}}}|2=^:?[Cc]ategory:|3=|plain=false}}}}<!--
-->]] ({{PAGESINCATEGORY:{{#invoke:string|replace|1={{{1}}}|2=^:?[Cc]ategory:|3=|plain=false}}|{{{2|all}}}}})<noinclude>
{{Documentation}}
</noinclude>
t44qc0k3i1yz2ecwxpiksck04hyz7rx
Ta̱mpi̱let:Clc
10
1311
13231
2022-05-31T19:42:18Z
Kambai Akau
15
Kambai Akau shyei peji [[Ta̱mpi̱let:Clc]] nat [[Ta̱mpi̱let:Category link with count]]
wikitext
text/x-wiki
#REDIRECT [[Ta̱mpi̱let:Category link with count]]
iwl7qm5nuz16tspi6owvodumh3s8pze
Module:String
828
1312
13232
2022-05-31T19:44:13Z
Kambai Akau
15
Created page with "--[[ This module is intended to provide access to basic string functions. Most of the functions provided here can be invoked with named parameters, unnamed parameters, or a mixture. If named parameters are used, Mediawiki will automatically remove any leading or trailing whitespace from the parameter. Depending on the intended use, it may be advantageous to either preserve or remove such whitespace. Global options ignore_errors: If set to 'true' or 1, any error c..."
Scribunto
text/plain
--[[
This module is intended to provide access to basic string functions.
Most of the functions provided here can be invoked with named parameters,
unnamed parameters, or a mixture. If named parameters are used, Mediawiki will
automatically remove any leading or trailing whitespace from the parameter.
Depending on the intended use, it may be advantageous to either preserve or
remove such whitespace.
Global options
ignore_errors: If set to 'true' or 1, any error condition will result in
an empty string being returned rather than an error message.
error_category: If an error occurs, specifies the name of a category to
include with the error message. The default category is
[Category:Errors reported by Module String].
no_category: If set to 'true' or 1, no category will be added if an error
is generated.
Unit tests for this module are available at Module:String/tests.
]]
local str = {}
--[[
len
This function returns the length of the target string.
Usage:
{{#invoke:String|len|target_string|}}
OR
{{#invoke:String|len|s=target_string}}
Parameters
s: The string whose length to report
If invoked using named parameters, Mediawiki will automatically remove any leading or
trailing whitespace from the target string.
]]
function str.len( frame )
local new_args = str._getParameters( frame.args, {'s'} )
local s = new_args['s'] or ''
return mw.ustring.len( s )
end
--[[
sub
This function returns a substring of the target string at specified indices.
Usage:
{{#invoke:String|sub|target_string|start_index|end_index}}
OR
{{#invoke:String|sub|s=target_string|i=start_index|j=end_index}}
Parameters
s: The string to return a subset of
i: The fist index of the substring to return, defaults to 1.
j: The last index of the string to return, defaults to the last character.
The first character of the string is assigned an index of 1. If either i or j
is a negative value, it is interpreted the same as selecting a character by
counting from the end of the string. Hence, a value of -1 is the same as
selecting the last character of the string.
If the requested indices are out of range for the given string, an error is
reported.
]]
function str.sub( frame )
local new_args = str._getParameters( frame.args, { 's', 'i', 'j' } )
local s = new_args['s'] or ''
local i = tonumber( new_args['i'] ) or 1
local j = tonumber( new_args['j'] ) or -1
local len = mw.ustring.len( s )
-- Convert negatives for range checking
if i < 0 then
i = len + i + 1
end
if j < 0 then
j = len + j + 1
end
if i > len or j > len or i < 1 or j < 1 then
return str._error( 'String subset index out of range' )
end
if j < i then
return str._error( 'String subset indices out of order' )
end
return mw.ustring.sub( s, i, j )
end
--[[
This function implements that features of {{str sub old}} and is kept in order
to maintain these older templates.
]]
function str.sublength( frame )
local i = tonumber( frame.args.i ) or 0
local len = tonumber( frame.args.len )
return mw.ustring.sub( frame.args.s, i + 1, len and ( i + len ) )
end
--[[
_match
This function returns a substring from the source string that matches a
specified pattern. It is exported for use in other modules
Usage:
strmatch = require("Module:String")._match
sresult = strmatch( s, pattern, start, match, plain, nomatch )
Parameters
s: The string to search
pattern: The pattern or string to find within the string
start: The index within the source string to start the search. The first
character of the string has index 1. Defaults to 1.
match: In some cases it may be possible to make multiple matches on a single
string. This specifies which match to return, where the first match is
match= 1. If a negative number is specified then a match is returned
counting from the last match. Hence match = -1 is the same as requesting
the last match. Defaults to 1.
plain: A flag indicating that the pattern should be understood as plain
text. Defaults to false.
nomatch: If no match is found, output the "nomatch" value rather than an error.
For information on constructing Lua patterns, a form of [regular expression], see:
* http://www.lua.org/manual/5.1/manual.html#5.4.1
* http://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual#Patterns
* http://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual#Ustring_patterns
]]
-- This sub-routine is exported for use in other modules
function str._match( s, pattern, start, match_index, plain_flag, nomatch )
if s == '' then
return str._error( 'Target string is empty' )
end
if pattern == '' then
return str._error( 'Pattern string is empty' )
end
start = tonumber(start) or 1
if math.abs(start) < 1 or math.abs(start) > mw.ustring.len( s ) then
return str._error( 'Requested start is out of range' )
end
if match_index == 0 then
return str._error( 'Match index is out of range' )
end
if plain_flag then
pattern = str._escapePattern( pattern )
end
local result
if match_index == 1 then
-- Find first match is simple case
result = mw.ustring.match( s, pattern, start )
else
if start > 1 then
s = mw.ustring.sub( s, start )
end
local iterator = mw.ustring.gmatch(s, pattern)
if match_index > 0 then
-- Forward search
for w in iterator do
match_index = match_index - 1
if match_index == 0 then
result = w
break
end
end
else
-- Reverse search
local result_table = {}
local count = 1
for w in iterator do
result_table[count] = w
count = count + 1
end
result = result_table[ count + match_index ]
end
end
if result == nil then
if nomatch == nil then
return str._error( 'Match not found' )
else
return nomatch
end
else
return result
end
end
--[[
match
This function returns a substring from the source string that matches a
specified pattern.
Usage:
{{#invoke:String|match|source_string|pattern_string|start_index|match_number|plain_flag|nomatch_output}}
OR
{{#invoke:String|match|s=source_string|pattern=pattern_string|start=start_index
|match=match_number|plain=plain_flag|nomatch=nomatch_output}}
Parameters
s: The string to search
pattern: The pattern or string to find within the string
start: The index within the source string to start the search. The first
character of the string has index 1. Defaults to 1.
match: In some cases it may be possible to make multiple matches on a single
string. This specifies which match to return, where the first match is
match= 1. If a negative number is specified then a match is returned
counting from the last match. Hence match = -1 is the same as requesting
the last match. Defaults to 1.
plain: A flag indicating that the pattern should be understood as plain
text. Defaults to false.
nomatch: If no match is found, output the "nomatch" value rather than an error.
If invoked using named parameters, Mediawiki will automatically remove any leading or
trailing whitespace from each string. In some circumstances this is desirable, in
other cases one may want to preserve the whitespace.
If the match_number or start_index are out of range for the string being queried, then
this function generates an error. An error is also generated if no match is found.
If one adds the parameter ignore_errors=true, then the error will be suppressed and
an empty string will be returned on any failure.
For information on constructing Lua patterns, a form of [regular expression], see:
* http://www.lua.org/manual/5.1/manual.html#5.4.1
* http://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual#Patterns
* http://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual#Ustring_patterns
]]
-- This is the entry point for #invoke:String|match
function str.match( frame )
local new_args = str._getParameters( frame.args, {'s', 'pattern', 'start', 'match', 'plain', 'nomatch'} )
local s = new_args['s'] or ''
local start = tonumber( new_args['start'] ) or 1
local plain_flag = str._getBoolean( new_args['plain'] or false )
local pattern = new_args['pattern'] or ''
local match_index = math.floor( tonumber(new_args['match']) or 1 )
local nomatch = new_args['nomatch']
return str._match( s, pattern, start, match_index, plain_flag, nomatch )
end
--[[
pos
This function returns a single character from the target string at position pos.
Usage:
{{#invoke:String|pos|target_string|index_value}}
OR
{{#invoke:String|pos|target=target_string|pos=index_value}}
Parameters
target: The string to search
pos: The index for the character to return
If invoked using named parameters, Mediawiki will automatically remove any leading or
trailing whitespace from the target string. In some circumstances this is desirable, in
other cases one may want to preserve the whitespace.
The first character has an index value of 1.
If one requests a negative value, this function will select a character by counting backwards
from the end of the string. In other words pos = -1 is the same as asking for the last character.
A requested value of zero, or a value greater than the length of the string returns an error.
]]
function str.pos( frame )
local new_args = str._getParameters( frame.args, {'target', 'pos'} )
local target_str = new_args['target'] or ''
local pos = tonumber( new_args['pos'] ) or 0
if pos == 0 or math.abs(pos) > mw.ustring.len( target_str ) then
return str._error( 'String index out of range' )
end
return mw.ustring.sub( target_str, pos, pos )
end
--[[
str_find
This function duplicates the behavior of {{str_find}}, including all of its quirks.
This is provided in order to support existing templates, but is NOT RECOMMENDED for
new code and templates. New code is recommended to use the "find" function instead.
Returns the first index in "source" that is a match to "target". Indexing is 1-based,
and the function returns -1 if the "target" string is not present in "source".
Important Note: If the "target" string is empty / missing, this function returns a
value of "1", which is generally unexpected behavior, and must be accounted for
separatetly.
]]
function str.str_find( frame )
local new_args = str._getParameters( frame.args, {'source', 'target'} )
local source_str = new_args['source'] or ''
local target_str = new_args['target'] or ''
if target_str == '' then
return 1
end
local start = mw.ustring.find( source_str, target_str, 1, true )
if start == nil then
start = -1
end
return start
end
--[[
find
This function allows one to search for a target string or pattern within another
string.
Usage:
{{#invoke:String|find|source_str|target_string|start_index|plain_flag}}
OR
{{#invoke:String|find|source=source_str|target=target_str|start=start_index|plain=plain_flag}}
Parameters
source: The string to search
target: The string or pattern to find within source
start: The index within the source string to start the search, defaults to 1
plain: Boolean flag indicating that target should be understood as plain
text and not as a Lua style regular expression, defaults to true
If invoked using named parameters, Mediawiki will automatically remove any leading or
trailing whitespace from the parameter. In some circumstances this is desirable, in
other cases one may want to preserve the whitespace.
This function returns the first index >= "start" where "target" can be found
within "source". Indices are 1-based. If "target" is not found, then this
function returns 0. If either "source" or "target" are missing / empty, this
function also returns 0.
This function should be safe for UTF-8 strings.
]]
function str.find( frame )
local new_args = str._getParameters( frame.args, {'source', 'target', 'start', 'plain' } )
local source_str = new_args['source'] or ''
local pattern = new_args['target'] or ''
local start_pos = tonumber(new_args['start']) or 1
local plain = new_args['plain'] or true
if source_str == '' or pattern == '' then
return 0
end
plain = str._getBoolean( plain )
local start = mw.ustring.find( source_str, pattern, start_pos, plain )
if start == nil then
start = 0
end
return start
end
--[[
replace
This function allows one to replace a target string or pattern within another
string.
Usage:
{{#invoke:String|replace|source_str|pattern_string|replace_string|replacement_count|plain_flag}}
OR
{{#invoke:String|replace|source=source_string|pattern=pattern_string|replace=replace_string|
count=replacement_count|plain=plain_flag}}
Parameters
source: The string to search
pattern: The string or pattern to find within source
replace: The replacement text
count: The number of occurences to replace, defaults to all.
plain: Boolean flag indicating that pattern should be understood as plain
text and not as a Lua style regular expression, defaults to true
]]
function str.replace( frame )
local new_args = str._getParameters( frame.args, {'source', 'pattern', 'replace', 'count', 'plain' } )
local source_str = new_args['source'] or ''
local pattern = new_args['pattern'] or ''
local replace = new_args['replace'] or ''
local count = tonumber( new_args['count'] )
local plain = new_args['plain'] or true
if source_str == '' or pattern == '' then
return source_str
end
plain = str._getBoolean( plain )
if plain then
pattern = str._escapePattern( pattern )
replace = mw.ustring.gsub( replace, "%%", "%%%%" ) --Only need to escape replacement sequences.
end
local result
if count ~= nil then
result = mw.ustring.gsub( source_str, pattern, replace, count )
else
result = mw.ustring.gsub( source_str, pattern, replace )
end
return result
end
--[[
simple function to pipe string.rep to templates.
]]
function str.rep( frame )
local repetitions = tonumber( frame.args[2] )
if not repetitions then
return str._error( 'function rep expects a number as second parameter, received "' .. ( frame.args[2] or '' ) .. '"' )
end
return string.rep( frame.args[1] or '', repetitions )
end
--[[
escapePattern
This function escapes special characters from a Lua string pattern. See [1]
for details on how patterns work.
[1] https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual#Patterns
Usage:
{{#invoke:String|escapePattern|pattern_string}}
Parameters
pattern_string: The pattern string to escape.
]]
function str.escapePattern( frame )
local pattern_str = frame.args[1]
if not pattern_str then
return str._error( 'No pattern string specified' )
end
local result = str._escapePattern( pattern_str )
return result
end
--[[
count
This function counts the number of occurrences of one string in another.
]]
function str.count(frame)
local args = str._getParameters(frame.args, {'source', 'pattern', 'plain'})
local source = args.source or ''
local pattern = args.pattern or ''
local plain = str._getBoolean(args.plain or true)
if plain then
pattern = str._escapePattern(pattern)
end
local _, count = mw.ustring.gsub(source, pattern, '')
return count
end
--[[
endswith
This function determines whether a string ends with another string.
]]
function str.endswith(frame)
local args = str._getParameters(frame.args, {'source', 'pattern'})
local source = args.source or ''
local pattern = args.pattern or ''
if pattern == '' then
-- All strings end with the empty string.
return "yes"
end
if mw.ustring.sub(source, -mw.ustring.len(pattern), -1) == pattern then
return "yes"
else
return ""
end
end
--[[
join
Join all non empty arguments together; the first argument is the separator.
Usage:
{{#invoke:String|join|sep|one|two|three}}
]]
function str.join(frame)
local args = {}
local sep
for _, v in ipairs( frame.args ) do
if sep then
if v ~= '' then
table.insert(args, v)
end
else
sep = v
end
end
return table.concat( args, sep or '' )
end
--[[
Helper function that populates the argument list given that user may need to use a mix of
named and unnamed parameters. This is relevant because named parameters are not
identical to unnamed parameters due to string trimming, and when dealing with strings
we sometimes want to either preserve or remove that whitespace depending on the application.
]]
function str._getParameters( frame_args, arg_list )
local new_args = {}
local index = 1
local value
for _, arg in ipairs( arg_list ) do
value = frame_args[arg]
if value == nil then
value = frame_args[index]
index = index + 1
end
new_args[arg] = value
end
return new_args
end
--[[
Helper function to handle error messages.
]]
function str._error( error_str )
local frame = mw.getCurrentFrame()
local error_category = frame.args.error_category or 'Errors reported by Module String'
local ignore_errors = frame.args.ignore_errors or false
local no_category = frame.args.no_category or false
if str._getBoolean(ignore_errors) then
return ''
end
local error_str = '<strong class="error">String Module Error: ' .. error_str .. '</strong>'
if error_category ~= '' and not str._getBoolean( no_category ) then
error_str = '[[Category:' .. error_category .. ']]' .. error_str
end
return error_str
end
--[[
Helper Function to interpret boolean strings
]]
function str._getBoolean( boolean_str )
local boolean_value
if type( boolean_str ) == 'string' then
boolean_str = boolean_str:lower()
if boolean_str == 'false' or boolean_str == 'no' or boolean_str == '0'
or boolean_str == '' then
boolean_value = false
else
boolean_value = true
end
elseif type( boolean_str ) == 'boolean' then
boolean_value = boolean_str
else
error( 'No boolean value found' )
end
return boolean_value
end
--[[
Helper function that escapes all pattern characters so that they will be treated
as plain text.
]]
function str._escapePattern( pattern_str )
return mw.ustring.gsub( pattern_str, "([%(%)%.%%%+%-%*%?%[%^%$%]])", "%%%1" )
end
return str
cufmbepw7ml3gut4lchtqrhtj5r63cp
Module:String/doc
828
1313
13233
2022-05-31T19:45:07Z
Kambai Akau
15
Created page with "{{Used in system}} {{Module rating|protected}} {{Lmd|String}} This module is intended to provide access to basic string functions. Most of the functions provided here can be invoked with named parameters, unnamed parameters, or a mixture. If named parameters are used, Mediawiki will automatically remove any leading or trailing whitespace from the parameter. Depending on the intended use, it may be advantageous to either preserve or remove such whitespace. == Global..."
wikitext
text/x-wiki
{{Used in system}}
{{Module rating|protected}}
{{Lmd|String}}
This module is intended to provide access to basic string functions.
Most of the functions provided here can be invoked with named parameters, unnamed parameters, or a mixture. If named parameters are used, Mediawiki will automatically remove any leading or trailing whitespace from the parameter. Depending on the intended use, it may be advantageous to either preserve or remove such whitespace.
== Global options ==
; ignore_errors
: If set to 'true' or 1, any error condition will result in an empty string being returned rather than an error message.
; error_category
: If an error occurs, specifies the name of a category to include with the error message. The default category is {{clc|Errors reported by Module String}}.
; no_category
: If set to 'true' or 1, no category will be added if an error is generated.
Unit tests for this module are available at [[Module:String/testcases]].
== len ==
This function returns the length of the target string.
Usage:
: <code><nowiki>{{#invoke:</nowiki>String|len|''target_string''}}</code>
OR
: <code><nowiki>{{#invoke:</nowiki>String|len|s= ''target_string'' }}</code>
Parameters:
; s
: The string whose length to report
Examples:
* <code><nowiki>{{#invoke:String|len| abcdefghi }}</nowiki></code> → {{#invoke:String|len| abcdefghi }}
* <code><nowiki>{{#invoke:String|len|s= abcdefghi }}</nowiki></code> → {{#invoke:String|len|s= abcdefghi }}
== sub ==
This function returns a substring of the target string at specified inclusive, one-indexed indices.
Usage:
: <code><nowiki>{{#invoke:</nowiki>String|sub|''target_string''|''start_index''|''end_index''}}</code>
OR
: <code><nowiki>{{#invoke:</nowiki>String|sub|s= ''target_string'' |i= ''start_index'' |j= ''end_index'' }}</code>
Parameters:
; s
: The string to return a subset of
; i
: The first index of the substring to return, defaults to 1.
; j
: The last index of the string to return, defaults to the last character.
The first character of the string is assigned an index of 1. If either i or j is a negative value, it is interpreted the same as selecting a character by counting from the end of the string. Hence, a value of -1 is the same as selecting the last character of the string.
If the requested indices are out of range for the given string, an error is reported. To avoid error messages, use {{ml|ustring|sub}} instead.
Examples:
* <code><nowiki>"{{#invoke:String|sub| abcdefghi }}"</nowiki></code> → "{{#invoke:String|sub| abcdefghi }}"
* <code><nowiki>"{{#invoke:String|sub|s= abcdefghi }}"</nowiki></code> → "{{#invoke:String|sub|s= abcdefghi }}"
* <code><nowiki>"{{#invoke:String|sub| abcdefghi | 3 }}"</nowiki></code> → "{{#invoke:String|sub| abcdefghi | 3 }}"
* <code><nowiki>"{{#invoke:String|sub|s= abcdefghi |i= 3 }}"</nowiki></code> → "{{#invoke:String|sub|s= abcdefghi |i= 3 }}"
* <code><nowiki>"{{#invoke:String|sub| abcdefghi | 3 | 4 }}"</nowiki></code> → "{{#invoke:String|sub| abcdefghi | 3 | 4 }}"
* <code><nowiki>"{{#invoke:String|sub|s= abcdefghi |i= 3 |j= 4 }}"</nowiki></code> → "{{#invoke:String|sub|s= abcdefghi |i= 3 |j= 4 }}"
== sublength ==
This function implements the features of {{tl|str sub old}} and is kept in order to maintain these older templates. It returns a substring of the target string starting at a specified index and of a specified length.
Usage:
: <code><nowiki>{{#invoke:</nowiki>String|sublength|s= ''target_string'' |i= ''start_index'' |len= ''length'' }}</code>
Parameters:
; s
: The string
; i
: The starting index of the substring to return. The first character of the string is assigned an index of 0.
; len
: The length of the string to return, defaults to the last character.
Examples:
* <code><nowiki>{{#invoke:String|sublength|s= abcdefghi }}</nowiki></code> → {{#invoke:String|sublength|s= abcdefghi }}
* <code><nowiki>{{#invoke:String|sublength|s= abcdefghi |i= 3 }}</nowiki></code> → {{#invoke:String|sublength|s= abcdefghi |i= 3 }}
* <code><nowiki>{{#invoke:String|sublength|s= abcdefghi |i= 3 |len= 4 }}</nowiki></code> → {{#invoke:String|sublength|s= abcdefghi |i= 3 |len= 4 }}
== match ==
This function returns a substring from the source string that matches a specified pattern.
Usage:
: <code><nowiki>{{#invoke:</nowiki>String|match|''source_string''|''pattern_string''|''start_index''|''match_number''|''plain_flag''|''nomatch_output''}}</code>
OR
: <code><nowiki>{{#invoke:</nowiki>String|match|s= ''source_string'' |pattern= ''pattern_string'' |start= ''start_index'' |match= ''match_number'' |plain= ''plain_flag'' |nomatch= ''nomatch_output'' }}</code>
Parameters:
; s
: The string to search
; pattern
: The pattern or string to find within the string
; start
: The index within the source string to start the search. The first character of the string has index 1. Defaults to 1.
; match
: In some cases it may be possible to make multiple matches on a single string. This specifies which match to return, where the first match is match= 1. If a negative number is specified then a match is returned counting from the last match. Hence match = -1 is the same as requesting the last match. Defaults to 1.
; plain
: Boolean flag indicating that pattern should be understood as plain text and not as a [[mw:Extension:Scribunto/Lua reference manual#Ustring patterns|Scribunto ustring pattern]] (a unicode-friendly [[w:en:Lua (programming language)|Lua]]-style [[w:en:regular expression|regular expression]]). Defaults to false (to change: <code>plain=true</code>)
; nomatch
: If no match is found, output the "nomatch" value rather than an error.
; ignore_errors
: If no match is found and ignore_errors=true, output an empty string rather than an error.
If the match_number or start_index are out of range for the string being queried, then this function generates an error. An error is also generated if no match is found.
If one adds the parameter ignore_errors=true, then the error will be suppressed and an empty string will be returned on any failure.
For information on constructing [[w:en:Lua (programming language)|Lua]] patterns, a form of [[w:en:regular expression|regular expression]], see:
* [[mw:Extension:Scribunto/Lua_reference_manual#Patterns|Scribunto patterns]]
* [[mw:Extension:Scribunto/Lua_reference_manual#Ustring_patterns|Scribunto Unicode string patterns]]
Examples:
* <code><nowiki>{{#invoke:String|match| abc123def456 |%d+}}</nowiki></code> → {{#invoke:String|match| abc123def456 |%d+}}
* <code><nowiki>{{#invoke:String|match|s= abc123def456 |pattern= %d+ }}</nowiki></code> → {{#invoke:String|match|s= abc123def456 |pattern= %d+ }}
* <code><nowiki>{{#invoke:String|match| abc123def456 |%d+|6}}</nowiki></code> → {{#invoke:String|match| abc123def456 |%d+|6}}
* <code><nowiki>{{#invoke:String|match|s= abc123def456 |pattern= %d+ |start= 6 }}</nowiki></code> → {{#invoke:String|match|s= abc123def456 |pattern= %d+ |start= 6 }}
* <code><nowiki>{{#invoke:String|match|s= abc123def456 |pattern= %d+ |start= 6 |match= 2 }}</nowiki></code> → {{#invoke:String|match|s= abc123def456 |pattern= %d+ |start= 6 |match= 2 }}
* <code><nowiki>{{#invoke:String|match|s= abc123%d+ |pattern= %d+ }}</nowiki></code> → {{#invoke:String|match|s= abc123%d+ |pattern= %d+ }}
* <code><nowiki>{{#invoke:String|match|s= abc123%d+ |pattern= %d+ |plain= true }}</nowiki></code> → {{#invoke:String|match|s= abc123%d+ |pattern= %d+ |plain= true }}
* <code><nowiki>{{#invoke:String|match|s= abc |pattern= %d }}</nowiki></code> → {{#invoke:String|match|s= abc |pattern= %d |no_category=true}}
* <code><nowiki>{{#invoke:String|match|s= abc |pattern= %d |nomatch= No numeric characters in string }}</nowiki></code> → {{#invoke:String|match|s= abc |pattern= %d |nomatch= No numeric characters in string }}
* <code><nowiki>{{#invoke:String|match|s= abc |pattern= %d |ignore_errors= true }}</nowiki></code> → {{#invoke:String|match|s= abc |pattern= %d |ignore_errors= true }}
* <code><nowiki>{{#invoke:String|match|s= 0012001200 |pattern= 0*(%d*) }}</nowiki></code> → {{#invoke:String|match|s= 0012001200 |pattern= 0*(%d*) }}
== pos ==
This function returns a single character from the target string at position pos.
Usage:
: <code><nowiki>{{#invoke:</nowiki>String|pos|''target_string''|''index_value''}}</code>
OR
: <code><nowiki>{{#invoke:</nowiki>String|pos|target= ''target_string'' |pos= ''index_value'' }}</code>
Parameters:
; target
: The string to search
; pos
: The index for the character to return
The first character has an index value of 1.
If one requests a negative value, this function will select a character by counting backwards
from the end of the string. In other words pos = -1 is the same as asking for the last character.
A requested value of zero, or a value greater than the length of the string returns an error.
Examples:
* <code><nowiki>{{#invoke:String|pos| abcdefghi | 4 }}</nowiki></code> → {{#invoke:String|pos| abcdefghi | 4 }}
* <code><nowiki>{{#invoke:String|pos|target= abcdefghi |pos= 4 }}</nowiki></code> → {{#invoke:String|pos|target= abcdefghi |pos= 4 }}
== str_find ==
This function duplicates the behavior of {{tl|str_find}}, including all of its quirks. This is provided in order to support existing templates, but is NOT RECOMMENDED for new code and templates. New code is recommended to use the "find" function instead.
Returns the first index in "source" that is a match to "target". Indexing is 1-based, and the function returns -1 if the "target" string is not present in "source".
Important Note: If the "target" string is empty / missing, this function returns a value of "1", which is generally unexpected behavior, and must be accounted for separately.
Usage:
: <code><nowiki>{{#invoke:</nowiki>String|str_find|''source_string''|''target_string''}}</code>
OR
: <code><nowiki>{{#invoke:</nowiki>String|str_find|source= ''source_string'' |target= ''target_string'' }}</code>
Parameters:
; source
: The string to search
; target
: The string to find within source
Examples:
* <code><nowiki>{{#invoke:String|str_find| abc123def }}</nowiki></code> → {{#invoke:String|str_find| abc123def }}
* <code><nowiki>{{#invoke:String|str_find|source= abc123def }}</nowiki></code> → {{#invoke:String|str_find|source= abc123def }}
* <code><nowiki>{{#invoke:String|str_find| abc123def |123}}</nowiki></code> → {{#invoke:String|str_find| abc123def |123}}
* <code><nowiki>{{#invoke:String|str_find|source= abc123def |target= 123 }}</nowiki></code> → {{#invoke:String|str_find|source= abc123def |target= 123 }}
* <code><nowiki>{{#invoke:String|str_find| abc123def |not}}</nowiki></code> → {{#invoke:String|str_find| abc123def |not}}
== find ==
This function allows one to search for a target string or pattern within another string.
Usage:
: <code><nowiki>{{#invoke:</nowiki>String|find|''source_string''|''target_string''|''start_index''|''plain_flag''}}</code>
OR
: <code><nowiki>{{#invoke:</nowiki>String|find|source= ''source_string'' |target= ''target_string'' |start= ''start_index'' |plain= ''plain_flag'' }}</code>
Parameters:
; source
: The string to search
; target
: The string or pattern to find within source
; start
: The index within the source string to start the search, defaults to 1
; plain
: Boolean flag indicating that target should be understood as plain text and not as a [[mw:Extension:Scribunto/Lua reference manual#Ustring patterns|Scribunto ustring pattern]] (a unicode-friendly [[w:en:Lua (programming language)|Lua]]-style [[w:en:regular expression|regular expression]]); defaults to true
This function returns the first index >= "start" where "target" can be found within "source". Indices are 1-based. If "target" is not found, then this function returns 0. If either "source" or "target" are missing / empty, this function also returns 0.
This function should be safe for UTF-8 strings.
Examples:
* <code><nowiki>{{#invoke:String|find|abc123def|12}}</nowiki></code> → {{#invoke:String|find|abc123def|12}}
* <code><nowiki>{{#invoke:String|find|source=abc123def|target=12}}</nowiki></code> → {{#invoke:String|find|source=abc123def|target=12}}
* <code><nowiki>{{#invoke:String|find|source=abc123def|target=pqr}}</nowiki></code> → {{#invoke:String|find|source=abc123def|target=pqr}}
* <code><nowiki>{{#invoke:String|find| abc123def |123}}</nowiki></code> → {{#invoke:String|find| abc123def |123}}
* <code><nowiki>{{#invoke:String|find|source= abc123def |target= 123 }}</nowiki></code> → {{#invoke:String|find|source= abc123def |target= 123 }}
* <code><nowiki>{{#invoke:String|find|source=abc123def|target=%d |start=3 |plain=false }}</nowiki></code> → {{#invoke:String|find|source=abc123def|target=%d |start=3 |plain=false }}
When using unnamed parameters, preceding and trailing spaces are kept and counted:
* <code><nowiki>{{#invoke:String|find| abc123def |c|false}}</nowiki></code> → {{#invoke:String|find| abc123def |c|false}}
* <code><nowiki>{{#invoke:String|find|source= abc123def |target=c|plain=false}}</nowiki></code> → {{#invoke:String|find|source= abc123def |target=c|plain=false}}
* <code><nowiki>{{#invoke:string|find|abc 123 def|%s|plain=false}}</nowiki></code> → {{#invoke:string|find|abc 123 def|%s|plain=false}}
Testing for the presence of a string:
* <code>{{pf|ifexpr|<nowiki>{{#invoke:string|find|haystack|needle}}</nowiki>|Found needle|Didn't find needle}}</code> → {{#ifexpr:{{#invoke:string|find|haystack|needle}}|Found needle|Didn't find needle}}
{{anchor|replace}}
== replace (gsub) ==
This function allows one to replace a target string or pattern within another string. To Lua programmers: this function works internally by calling {{code|string.gsub}}.
Usage:
: <code><nowiki>{{#invoke:</nowiki>String|replace|''source_str''|''pattern_string''|''replace_string''|''replacement_count''|''plain_flag''}}</code>
OR
: <code><nowiki>{{#invoke:</nowiki>String|replace|source= ''source_string'' |pattern= ''pattern_string'' |replace= ''replace_string'' |count= ''replacement_count'' |plain= ''plain_flag'' }}</code>
Parameters:
; source
: The string to search
; pattern
: The string or pattern to find within source
; replace
: The replacement text
; count
: The number of occurrences to replace; defaults to all
; plain
: Boolean flag indicating that pattern should be understood as plain text and not as a [[mw:Extension:Scribunto/Lua reference manual#Ustring patterns|Scribunto ustring pattern]] (a unicode-friendly [[w:en:Lua (programming language)|Lua]]-style [[w:en:regular expression|regular expression]]); defaults to true
Examples:
* <code><nowiki>"{{#invoke:String|replace| abc123def456 |123|XYZ}}"</nowiki></code> → "{{#invoke:String|replace| abc123def456 |123|XYZ}}"
* <code><nowiki>"{{#invoke:String|replace|source= abc123def456 |pattern= 123 |replace= XYZ }}"</nowiki></code> → "{{#invoke:String|replace|source= abc123def456 |pattern= 123 |replace= XYZ }}"
* <code><nowiki>"{{#invoke:String|replace| abc123def456 |%d+|XYZ|1|false}}"</nowiki></code> → "{{#invoke:String|replace| abc123def456 |%d+|XYZ|1|false}}"
* <code><nowiki>"{{#invoke:String|replace|source= abc123def456 |pattern= %d+ |replace= XYZ |count=1 |plain= false }}"</nowiki></code> → "{{#invoke:String|replace|source= abc123def456 |pattern= %d+ |replace= XYZ |count=1 |plain= false }}"
* <code><nowiki>"{{#invoke:String|replace|source= abc123def456 |pattern= %d+ |replace= XYZ |plain= false }}"</nowiki></code> → "{{#invoke:String|replace|source= abc123def456 |pattern= %d+ |replace= XYZ |plain= false }}"
* <code><nowiki>{{#invoke:String|replace|source= 0012001200 |pattern= ^0* |plain= false }}</nowiki></code> → {{#invoke:String|replace|source= 0012001200 |pattern= ^0* |plain= false }}
== rep ==
Repeats a string ''n'' times. A simple function to pipe string.rep to templates.
Usage:
: <code><nowiki>{{#invoke:</nowiki>String|rep|''source''|''count''}}</code>
Parameters:
; source
: The string to repeat
; count
: The number of repetitions.
Examples:
* <code><nowiki>"{{#invoke:String|rep|hello|3}}"</nowiki></code> → "{{#invoke:String|rep|hello|3}}"
* <code><nowiki>"{{#invoke:String|rep| hello | 3 }}"</nowiki></code> → "{{#invoke:String|rep| hello | 3 }}"
== escapePattern ==
In a [[:mw:LUAREF#Patterns|Lua pattern]], changes a ''class character'' into a ''literal character''. For example: in a pattern, character <code>.</code> catches "any character"; escapePattern will convert it to <code>%.</code>, catching just the literal character ".".
Usage:
* <code><nowiki>{{#invoke:String|escapePattern|</nowiki>''pattern_string''<nowiki>}}</nowiki></code>
Parameters:
; pattern_string
: The pattern string to escape
Examples:
* <code><nowiki>"{{#invoke:String|escapePattern|A.D.}}"</nowiki></code> → "{{#invoke:String|escapePattern|A.D.}}"
* <code><nowiki>"{{#invoke:String|escapePattern|10%}}"</nowiki></code> → "{{#invoke:String|escapePattern|10%}}"
== count ==
Counts the number of times a given pattern appears in the arguments that get passed on to this module. Counts disjoint matches only.
Usage:
: <code><nowiki>{{#invoke:</nowiki>String|count|''source_str''|''pattern_string''|''plain_flag''}}</code>
OR
: <code><nowiki>{{#invoke:</nowiki>String|count|source= ''source_string'' |pattern= ''pattern_string''|plain= ''plain_flag'' }}</code>
Parameters:
; source_string
: The string to count occurrences in
; pattern
: The string or pattern to count occurrences of within source
; plain
: Boolean flag indicating that pattern should be understood as plain text and not as a [[mw:Extension:Scribunto/Lua reference manual#Ustring patterns|Scribunto ustring pattern]] (a unicode-friendly [[w:en:Lua (programming language)|Lua]]-style [[w:en:regular expression|regular expression]]); defaults to true
Examples:
* Count of 'a': <code><nowiki>"{{#invoke:String|count|aabbcc|a}}"</nowiki></code> → "{{#invoke:String|count|aabbcc|a}}"
* Count occurrences of 'aba': <code><nowiki>"{{#invoke:String|count|ababababab|aba}}"</nowiki></code> → "{{#invoke:String|count|ababababab|aba}}"
* Count of "either 'a' or 'c' ":<code><nowiki>"{{#invoke:String|count|aabbcc|[ac]|plain=false}}"</nowiki></code> → "{{#invoke:String|count|aabbcc|[ac]|plain=false}}"
* Count of "not 'a' ": <code><nowiki>"{{#invoke:String|count|aaabaaac|[^a]|plain=false}}"</nowiki></code> → "{{#invoke:String|count|aaabaaac|[^a]|plain=false}}"
* Count of "starts with 'a' ": <code><nowiki>"{{#invoke:String|count|aaabaaac|^a|plain=false}}"</nowiki></code> → "{{#invoke:String|count|aaabaaac|^a|plain=false}}"
== join ==
Joins all strings passed as arguments into one string, treating the first argument as a separator
Usage:
: <code><nowiki>{{#invoke:</nowiki>String|join|''separator''|''string1''|''string2''|...}}</code>
Parameters:
; separator
: String that separates each string being joined together
: Note that leading and trailing spaces are ''not'' stripped from the separator.
; string1/string2/...
: Strings being joined together
Examples:
* <code><nowiki>"{{#invoke:String|join|x|foo|bar|baz}}"</nowiki></code> → "{{#invoke:String|join|x|foo|bar|baz}}"
* <code><nowiki>"{{#invoke:String|join||a|b|c|d|e|f|g}}"</nowiki></code> → "{{#invoke:String|join||a|b|c|d|e|f|g}}"
* <code><nowiki>"{{#invoke:String|join|,|a|b|c|d|e|f|g}}"</nowiki></code> → "{{#invoke:String|join|,|a|b|c|d|e|f|g}}"
* <code><nowiki>"{{#invoke:String|join|, |a|b|c|d|e|f|g}}"</nowiki></code> → "{{#invoke:String|join|, |a|b|c|d|e|f|g}}"
* <code><nowiki>"{{#invoke:String|join| – |a|b|c|d|e|f|g}}"</nowiki></code> → "{{#invoke:String|join| – |a|b|c|d|e|f|g}}"
The preceding example uses the html entity &ndash; but the unicode character also works.
== endswith ==
{{for|the startswith function|Module:String2#startswith}}
Usage:
: <code><nowiki>{{#invoke:</nowiki>String|endswith|''source_str''|''search_string''}}</code>
OR
: <code><nowiki>{{#invoke:</nowiki>String|endswith|source= ''source_string'' |pattern= ''search_string''}}</code>
Returns "yes" if the source string ends with the search string. Use named parameters to have the strings trimmed before use. Despite the parameter name, ''search_string'' is not a Lua pattern, it is interpreted literally.
* <code><nowiki>"{{#invoke:String|endswith|xxxyyy|y}}"</nowiki></code> → "{{#invoke:String|endswith|xxxyyy|y}}"
* <code><nowiki>"{{#invoke:String|endswith|xxxyyy|z}}"</nowiki></code> → "{{#invoke:String|endswith|xxxyyy|z}}"
== See also==
{{String handling templates}}
<includeonly>{{Sandbox other||
[[Category:Modules that add a tracking category]]
[[Category:Modules that manipulate strings|*]]
}}</includeonly>
ktyqbllinnsc5x8kpcmag3kij2wbufn
Ta̱mpi̱let:Module rating
10
1314
13234
2022-05-31T19:46:42Z
Kambai Akau
15
Created page with "<includeonly>{{#ifeq:{{SUBPAGENAME}}|doc|<!--do not show protection level of the module on the doc page, use the second and optionally third parameter if the doc page is also protected -->{{#if:{{{2|}}}|{{Pp|{{{2}}}|action={{{3|}}}}}}}|{{Module other|{{ombox | type = notice | image = {{#switch: {{{1|}}} | pre-alpha | prealpha | pa = [[File:Ambox warning blue construction.svg|40x40px|link=|alt=Pre-alpha]] | alpha | a = File:Alpha lowerca..."
wikitext
text/x-wiki
<includeonly>{{#ifeq:{{SUBPAGENAME}}|doc|<!--do not show protection level of the module on the doc page, use the second and optionally third parameter if the doc page is also protected -->{{#if:{{{2|}}}|{{Pp|{{{2}}}|action={{{3|}}}}}}}|{{Module other|{{ombox
| type = notice
| image = {{#switch: {{{1|}}}
| pre-alpha | prealpha | pa = [[File:Ambox warning blue construction.svg|40x40px|link=|alt=Pre-alpha]]
| alpha | a = [[File:Alpha lowercase.svg|26x26px|link=|alt=Alpha]]
| beta | b = [[File:Greek lc beta.svg|40x40px|link=|alt=Beta]]
| release | r | general | g = [[File:Green check.svg|40x40px|link=|alt=Ready for use]]
| protected | protect | p = [[File:{{#switch:{{#invoke:Effective protection level|edit|{{#switch:{{SUBPAGENAME}}|doc|sandbox={{FULLBASEPAGENAME}}|{{FULLPAGENAME}}}}}}|autoconfirmed=Semi|extendedconfirmed=Extended|accountcreator|templateeditor=Template|#default=Full}}-protection-shackle.svg|40x40px|link=|alt=Protected]]
| semiprotected | semiprotect | semi =[[File:Semi-protection-shackle.svg|40x40px|link=|alt=Semi-protected]]
}}
| style =
| textstyle =
| text = {{#switch: {{{1|}}}
| pre-alpha | prealpha | pa = This module is rated as [[:Category:Modules in pre-alpha development|pre-alpha]]. It is unfinished, and may or may not be in active development. It should not be used from article namespace pages as it is unsafe for use. Modules remain pre-alpha until the original editor (or someone who takes one over if it is abandoned for some time) is satisfied with the basic structure.<!--
-->{{#switch: {{SUBPAGENAME}}|doc|sandbox=<!-- No category for /doc or /sandbox subpages -->
| {{#ifeq: {{{nocat|}}} | true | <!-- No category if user sets nocat=true --> | [[Category:Modules in pre-alpha development|{{PAGENAME}}]] }}
}}
| alpha | a = This module is rated as [[:Category:Modules in alpha|alpha]]. It is ready for third-party input, and may be used on a few pages as testing to see if problems arise, but should be watched closely. Suggestions for new features or changes in their input and output mechanisms are welcome.<!--
-->{{#switch: {{SUBPAGENAME}}|doc|sandbox=<!-- No category for /doc or /sandbox subpages -->
| {{#ifeq: {{{nocat|}}} | true | <!-- No category if user sets nocat=true --> | [[Category:Modules in alpha|{{PAGENAME}}]] }}
}}
| beta | b = This module is rated as [[:Category:Modules in beta|beta]], and is ready for widespread use. It is still new and should be used with some caution to ensure the results are as expected, as bugs may still occur.<!--
-->{{#switch: {{SUBPAGENAME}}|doc|sandbox=<!-- No category for /doc or /sandbox subpages -->
| {{#ifeq: {{{nocat|}}} | true | <!-- No category if user sets nocat=true --> | [[Category:Modules in beta|{{PAGENAME}}]] }}
}}
| release | r | general | g = This module is rated as [[:Category:Modules for general use|ready for general use]]. It has reached a mature form and is thought to have only few to no bugs and is ready for use wherever appropriate. It is ready to mention on help pages and other essential Wikipedia resources as an option for new users to learn. To reduce server load and bad output as well as confusion, it should be improved by [[Wikipedia:Template sandbox and test cases|sandbox testing]] rather than repeated trial-and-error editing.<!--
-->{{#switch: {{SUBPAGENAME}}|doc|sandbox=<!-- No category for /doc or /sandbox subpages -->
| {{#ifeq: {{{nocat|}}} | true | <!-- No category if user sets nocat=true --> | [[Category:Modules for general use|{{PAGENAME}}]] }}
}}
| protected | protect | p = This module is [[:Category:Modules subject to page protection|subject to page protection]]. It is a [[Wikipedia:High-risk templates|highly visible module]] in use by a very large number of pages, and/or is [[Wikipedia:Substitution|substituted]] very frequently. Because vandalism or mistakes would affect many pages, and even trivial editing might cause substantial load on the servers, it is [[Wikipedia:Protection policy|protected]] from editing.<!--
-->{{#switch: {{SUBPAGENAME}}|doc|sandbox=<!-- No category for /doc or /sandbox subpages -->
| {{#ifeq: {{{nocat|}}} | true | <!-- No category if user sets nocat=true --> | [[Category:Modules subject to page protection|{{PAGENAME}}]] }}
}}
| semiprotected | semiprotect | semi = This module is [[:Category:Modules subject to page protection|subject to semi-page protection]]. It is a [[Wikipedia:High-risk templates|highly visible module]] in use by a large number of pages, and/or is [[Wikipedia:Substitution|substituted]] frequently. Because vandalism or mistakes would affect many pages, and editing might cause substantial load on the servers, it is [[WP:SEMI|semi-protected]] from editing.<!--
-->{{#switch: {{SUBPAGENAME}}|doc|sandbox=<!-- No category for /doc or /sandbox subpages -->
| {{#ifeq: {{{nocat|}}} | true | <!-- No category if user sets nocat=true --> | [[Category:Modules subject to page protection|{{PAGENAME}}]] }}
}}
| #default = {{error|Module rating is invalid or not specified.}}
}}
}}|{{error|Error: {{tl|Module rating}} must be placed in the Module namespace.}} [[Category:Pages with templates in the wrong namespace]]|demospace={{{demospace|<noinclude>module</noinclude>}}}}}}}</includeonly><noinclude>
{{module rating|release|nocat=true|demospace=module}}
{{documentation}}
<!-- Categories go on the /doc subpage, and interwikis go in Wikidata. -->
</noinclude>
0hjddjvz6m9fd9otqth4prn8rqv2jvb
Ta̱mpi̱let:Module other
10
1315
13235
2022-05-31T19:47:42Z
Kambai Akau
15
Created page with "{{#switch: <!--If no or empty "demospace" parameter then detect namespace--> {{#if:{{{demospace|}}} | {{lc: {{{demospace}}} }} <!--Use lower case "demospace"--> | {{#ifeq:{{NAMESPACE}}|{{ns:Module}} | module | other }} }} | module = {{{1|}}} | other | #default = {{{2|}}} }}<!--End switch--><noinclude> {{documentation}} <!-- Add categories to the /doc subpage, not here! --> </noinclude>"
wikitext
text/x-wiki
{{#switch:
<!--If no or empty "demospace" parameter then detect namespace-->
{{#if:{{{demospace|}}}
| {{lc: {{{demospace}}} }} <!--Use lower case "demospace"-->
| {{#ifeq:{{NAMESPACE}}|{{ns:Module}}
| module
| other
}}
}}
| module = {{{1|}}}
| other
| #default = {{{2|}}}
}}<!--End switch--><noinclude>
{{documentation}}
<!-- Add categories to the /doc subpage, not here! -->
</noinclude>
9db98vx09purrfch7wguurzjgqz7u93
Ta̱mpi̱let:Ombox
10
1316
13236
2022-05-31T19:48:55Z
Kambai Akau
15
Created page with "{{#invoke:Message box|ombox}}<noinclude> {{documentation}} <!-- Categories go on the /doc subpage, and interwikis go on Wikidata. --> </noinclude>"
wikitext
text/x-wiki
{{#invoke:Message box|ombox}}<noinclude>
{{documentation}}
<!-- Categories go on the /doc subpage, and interwikis go on Wikidata. -->
</noinclude>
1o93yrjvq6v2ylug2k0uaaltljurje2
Module:Message box
828
1317
13237
2022-05-31T20:20:43Z
Kambai Akau
15
Created page with "-- This is a meta-module for producing message box templates, including -- {{mbox}}, {{ambox}}, {{imbox}}, {{tmbox}}, {{ombox}}, {{cmbox}} and {{fmbox}}. -- Load necessary modules. require('Module:No globals') local getArgs local yesno = require('Module:Yesno') -- Get a language object for formatDate and ucfirst. local lang = mw.language.getContentLanguage() -- Define constants local CONFIG_MODULE = 'Module:Message box/configuration' local DEMOSPACES = {talk = 'tmbox'..."
Scribunto
text/plain
-- This is a meta-module for producing message box templates, including
-- {{mbox}}, {{ambox}}, {{imbox}}, {{tmbox}}, {{ombox}}, {{cmbox}} and {{fmbox}}.
-- Load necessary modules.
require('Module:No globals')
local getArgs
local yesno = require('Module:Yesno')
-- Get a language object for formatDate and ucfirst.
local lang = mw.language.getContentLanguage()
-- Define constants
local CONFIG_MODULE = 'Module:Message box/configuration'
local DEMOSPACES = {talk = 'tmbox', image = 'imbox', file = 'imbox', category = 'cmbox', article = 'ambox', main = 'ambox'}
--------------------------------------------------------------------------------
-- Helper functions
--------------------------------------------------------------------------------
local function getTitleObject(...)
-- Get the title object, passing the function through pcall
-- in case we are over the expensive function count limit.
local success, title = pcall(mw.title.new, ...)
if success then
return title
end
end
local function union(t1, t2)
-- Returns the union of two arrays.
local vals = {}
for i, v in ipairs(t1) do
vals[v] = true
end
for i, v in ipairs(t2) do
vals[v] = true
end
local ret = {}
for k in pairs(vals) do
table.insert(ret, k)
end
table.sort(ret)
return ret
end
local function getArgNums(args, prefix)
local nums = {}
for k, v in pairs(args) do
local num = mw.ustring.match(tostring(k), '^' .. prefix .. '([1-9]%d*)$')
if num then
table.insert(nums, tonumber(num))
end
end
table.sort(nums)
return nums
end
--------------------------------------------------------------------------------
-- Box class definition
--------------------------------------------------------------------------------
local MessageBox = {}
MessageBox.__index = MessageBox
function MessageBox.new(boxType, args, cfg)
args = args or {}
local obj = {}
-- Set the title object and the namespace.
obj.title = getTitleObject(args.page) or mw.title.getCurrentTitle()
-- Set the config for our box type.
obj.cfg = cfg[boxType]
if not obj.cfg then
local ns = obj.title.namespace
-- boxType is "mbox" or invalid input
if args.demospace and args.demospace ~= '' then
-- implement demospace parameter of mbox
local demospace = string.lower(args.demospace)
if DEMOSPACES[demospace] then
-- use template from DEMOSPACES
obj.cfg = cfg[DEMOSPACES[demospace]]
elseif string.find( demospace, 'talk' ) then
-- demo as a talk page
obj.cfg = cfg.tmbox
else
-- default to ombox
obj.cfg = cfg.ombox
end
elseif ns == 0 then
obj.cfg = cfg.ambox -- main namespace
elseif ns == 6 then
obj.cfg = cfg.imbox -- file namespace
elseif ns == 14 then
obj.cfg = cfg.cmbox -- category namespace
else
local nsTable = mw.site.namespaces[ns]
if nsTable and nsTable.isTalk then
obj.cfg = cfg.tmbox -- any talk namespace
else
obj.cfg = cfg.ombox -- other namespaces or invalid input
end
end
end
-- Set the arguments, and remove all blank arguments except for the ones
-- listed in cfg.allowBlankParams.
do
local newArgs = {}
for k, v in pairs(args) do
if v ~= '' then
newArgs[k] = v
end
end
for i, param in ipairs(obj.cfg.allowBlankParams or {}) do
newArgs[param] = args[param]
end
obj.args = newArgs
end
-- Define internal data structure.
obj.categories = {}
obj.classes = {}
-- For lazy loading of [[Module:Category handler]].
obj.hasCategories = false
return setmetatable(obj, MessageBox)
end
function MessageBox:addCat(ns, cat, sort)
if not cat then
return nil
end
if sort then
cat = string.format('[[Category:%s|%s]]', cat, sort)
else
cat = string.format('[[Category:%s]]', cat)
end
self.hasCategories = true
self.categories[ns] = self.categories[ns] or {}
table.insert(self.categories[ns], cat)
end
function MessageBox:addClass(class)
if not class then
return nil
end
table.insert(self.classes, class)
end
function MessageBox:setParameters()
local args = self.args
local cfg = self.cfg
-- Get type data.
self.type = args.type
local typeData = cfg.types[self.type]
self.invalidTypeError = cfg.showInvalidTypeError
and self.type
and not typeData
typeData = typeData or cfg.types[cfg.default]
self.typeClass = typeData.class
self.typeImage = typeData.image
-- Find if the box has been wrongly substituted.
self.isSubstituted = cfg.substCheck and args.subst == 'SUBST'
-- Find whether we are using a small message box.
self.isSmall = cfg.allowSmall and (
cfg.smallParam and args.small == cfg.smallParam
or not cfg.smallParam and yesno(args.small)
)
-- Add attributes, classes and styles.
self.id = args.id
self.name = args.name
if self.name then
self:addClass('box-' .. string.gsub(self.name,' ','_'))
end
if yesno(args.plainlinks) ~= false then
self:addClass('plainlinks')
end
for _, class in ipairs(cfg.classes or {}) do
self:addClass(class)
end
if self.isSmall then
self:addClass(cfg.smallClass or 'mbox-small')
end
self:addClass(self.typeClass)
self:addClass(args.class)
self.style = args.style
self.attrs = args.attrs
-- Set text style.
self.textstyle = args.textstyle
-- Find if we are on the template page or not. This functionality is only
-- used if useCollapsibleTextFields is set, or if both cfg.templateCategory
-- and cfg.templateCategoryRequireName are set.
self.useCollapsibleTextFields = cfg.useCollapsibleTextFields
if self.useCollapsibleTextFields
or cfg.templateCategory
and cfg.templateCategoryRequireName
then
if self.name then
local templateName = mw.ustring.match(
self.name,
'^[tT][eE][mM][pP][lL][aA][tT][eE][%s_]*:[%s_]*(.*)$'
) or self.name
templateName = 'Template:' .. templateName
self.templateTitle = getTitleObject(templateName)
end
self.isTemplatePage = self.templateTitle
and mw.title.equals(self.title, self.templateTitle)
end
-- Process data for collapsible text fields. At the moment these are only
-- used in {{ambox}}.
if self.useCollapsibleTextFields then
-- Get the self.issue value.
if self.isSmall and args.smalltext then
self.issue = args.smalltext
else
local sect
if args.sect == '' then
sect = 'This ' .. (cfg.sectionDefault or 'page')
elseif type(args.sect) == 'string' then
sect = 'This ' .. args.sect
end
local issue = args.issue
issue = type(issue) == 'string' and issue ~= '' and issue or nil
local text = args.text
text = type(text) == 'string' and text or nil
local issues = {}
table.insert(issues, sect)
table.insert(issues, issue)
table.insert(issues, text)
self.issue = table.concat(issues, ' ')
end
-- Get the self.talk value.
local talk = args.talk
-- Show talk links on the template page or template subpages if the talk
-- parameter is blank.
if talk == ''
and self.templateTitle
and (
mw.title.equals(self.templateTitle, self.title)
or self.title:isSubpageOf(self.templateTitle)
)
then
talk = '#'
elseif talk == '' then
talk = nil
end
if talk then
-- If the talk value is a talk page, make a link to that page. Else
-- assume that it's a section heading, and make a link to the talk
-- page of the current page with that section heading.
local talkTitle = getTitleObject(talk)
local talkArgIsTalkPage = true
if not talkTitle or not talkTitle.isTalkPage then
talkArgIsTalkPage = false
talkTitle = getTitleObject(
self.title.text,
mw.site.namespaces[self.title.namespace].talk.id
)
end
if talkTitle and talkTitle.exists then
local talkText
if self.isSmall then
local talkLink = talkArgIsTalkPage and talk or (talkTitle.prefixedText .. '#' .. talk)
talkText = string.format('([[%s|talk]])', talkLink)
else
talkText = 'Relevant discussion may be found on'
if talkArgIsTalkPage then
talkText = string.format(
'%s [[%s|%s]].',
talkText,
talk,
talkTitle.prefixedText
)
else
talkText = string.format(
'%s the [[%s#%s|talk page]].',
talkText,
talkTitle.prefixedText,
talk
)
end
end
self.talk = talkText
end
end
-- Get other values.
self.fix = args.fix ~= '' and args.fix or nil
local date
if args.date and args.date ~= '' then
date = args.date
elseif args.date == '' and self.isTemplatePage then
date = lang:formatDate('F Y')
end
if date then
self.date = string.format(" <span class='date-container'>''(<span class='date'>%s</span>)''</span>", date)
end
self.info = args.info
if yesno(args.removalnotice) then
self.removalNotice = cfg.removalNotice
end
end
-- Set the non-collapsible text field. At the moment this is used by all box
-- types other than ambox, and also by ambox when small=yes.
if self.isSmall then
self.text = args.smalltext or args.text
else
self.text = args.text
end
-- Set the below row.
self.below = cfg.below and args.below
-- General image settings.
self.imageCellDiv = not self.isSmall and cfg.imageCellDiv
self.imageEmptyCell = cfg.imageEmptyCell
if cfg.imageEmptyCellStyle then
self.imageEmptyCellStyle = 'border:none;padding:0;width:1px'
end
-- Left image settings.
local imageLeft = self.isSmall and args.smallimage or args.image
if cfg.imageCheckBlank and imageLeft ~= 'blank' and imageLeft ~= 'none'
or not cfg.imageCheckBlank and imageLeft ~= 'none'
then
self.imageLeft = imageLeft
if not imageLeft then
local imageSize = self.isSmall
and (cfg.imageSmallSize or '30x30px')
or '40x40px'
self.imageLeft = string.format('[[File:%s|%s|link=|alt=]]', self.typeImage
or 'Imbox notice.png', imageSize)
end
end
-- Right image settings.
local imageRight = self.isSmall and args.smallimageright or args.imageright
if not (cfg.imageRightNone and imageRight == 'none') then
self.imageRight = imageRight
end
-- set templatestyles
self.templatestyles = args.templatestyles
end
function MessageBox:setMainspaceCategories()
local args = self.args
local cfg = self.cfg
if not cfg.allowMainspaceCategories then
return nil
end
local nums = {}
for _, prefix in ipairs{'cat', 'category', 'all'} do
args[prefix .. '1'] = args[prefix]
nums = union(nums, getArgNums(args, prefix))
end
-- The following is roughly equivalent to the old {{Ambox/category}}.
local date = args.date
date = type(date) == 'string' and date
local preposition = 'from'
for _, num in ipairs(nums) do
local mainCat = args['cat' .. tostring(num)]
or args['category' .. tostring(num)]
local allCat = args['all' .. tostring(num)]
mainCat = type(mainCat) == 'string' and mainCat
allCat = type(allCat) == 'string' and allCat
if mainCat and date and date ~= '' then
local catTitle = string.format('%s %s %s', mainCat, preposition, date)
self:addCat(0, catTitle)
catTitle = getTitleObject('Category:' .. catTitle)
if not catTitle or not catTitle.exists then
self:addCat(0, 'Articles with invalid date parameter in template')
end
elseif mainCat and (not date or date == '') then
self:addCat(0, mainCat)
end
if allCat then
self:addCat(0, allCat)
end
end
end
function MessageBox:setTemplateCategories()
local args = self.args
local cfg = self.cfg
-- Add template categories.
if cfg.templateCategory then
if cfg.templateCategoryRequireName then
if self.isTemplatePage then
self:addCat(10, cfg.templateCategory)
end
elseif not self.title.isSubpage then
self:addCat(10, cfg.templateCategory)
end
end
-- Add template error categories.
if cfg.templateErrorCategory then
local templateErrorCategory = cfg.templateErrorCategory
local templateCat, templateSort
if not self.name and not self.title.isSubpage then
templateCat = templateErrorCategory
elseif self.isTemplatePage then
local paramsToCheck = cfg.templateErrorParamsToCheck or {}
local count = 0
for i, param in ipairs(paramsToCheck) do
if not args[param] then
count = count + 1
end
end
if count > 0 then
templateCat = templateErrorCategory
templateSort = tostring(count)
end
if self.categoryNums and #self.categoryNums > 0 then
templateCat = templateErrorCategory
templateSort = 'C'
end
end
self:addCat(10, templateCat, templateSort)
end
end
function MessageBox:setAllNamespaceCategories()
-- Set categories for all namespaces.
if self.invalidTypeError then
local allSort = (self.title.namespace == 0 and 'Main:' or '') .. self.title.prefixedText
self:addCat('all', 'Wikipedia message box parameter needs fixing', allSort)
end
if self.isSubstituted then
self:addCat('all', 'Pages with incorrectly substituted templates')
end
end
function MessageBox:setCategories()
if self.title.namespace == 0 then
self:setMainspaceCategories()
elseif self.title.namespace == 10 then
self:setTemplateCategories()
end
self:setAllNamespaceCategories()
end
function MessageBox:renderCategories()
if not self.hasCategories then
-- No categories added, no need to pass them to Category handler so,
-- if it was invoked, it would return the empty string.
-- So we shortcut and return the empty string.
return ""
end
-- Convert category tables to strings and pass them through
-- [[Module:Category handler]].
return require('Module:Category handler')._main{
main = table.concat(self.categories[0] or {}),
template = table.concat(self.categories[10] or {}),
all = table.concat(self.categories.all or {}),
nocat = self.args.nocat,
page = self.args.page
}
end
function MessageBox:export()
local root = mw.html.create()
-- Add the subst check error.
if self.isSubstituted and self.name then
root:tag('b')
:addClass('error')
:wikitext(string.format(
'Template <code>%s[[Template:%s|%s]]%s</code> has been incorrectly substituted.',
mw.text.nowiki('{{'), self.name, self.name, mw.text.nowiki('}}')
))
end
-- Add support for a single custom templatestyles sheet. Undocumented as
-- need should be limited and many templates using mbox are substed; we
-- don't want to spread templatestyles sheets around to arbitrary places
-- TODO: Add each template's stylesheet, waiting on [[MediaWiki talk:Common.css/to do]]
local frame = mw.getCurrentFrame() -- we'll need this unconditionally for the TODO
if self.templatestyles then
root:wikitext(frame:extensionTag{
name = 'templatestyles',
args = { src = self.templatestyles },
})
end
-- Create the box table.
local boxTable = root:tag('table')
boxTable:attr('id', self.id or nil)
for i, class in ipairs(self.classes or {}) do
boxTable:addClass(class or nil)
end
boxTable
:cssText(self.style or nil)
:attr('role', 'presentation')
if self.attrs then
boxTable:attr(self.attrs)
end
-- Add the left-hand image.
local row = boxTable:tag('tr')
if self.imageLeft then
local imageLeftCell = row:tag('td'):addClass('mbox-image')
if self.imageCellDiv then
-- If we are using a div, redefine imageLeftCell so that the image
-- is inside it. Divs use style="width: 52px;", which limits the
-- image width to 52px. If any images in a div are wider than that,
-- they may overlap with the text or cause other display problems.
imageLeftCell = imageLeftCell:tag('div'):css('width', '52px')
end
imageLeftCell:wikitext(self.imageLeft or nil)
elseif self.imageEmptyCell then
-- Some message boxes define an empty cell if no image is specified, and
-- some don't. The old template code in templates where empty cells are
-- specified gives the following hint: "No image. Cell with some width
-- or padding necessary for text cell to have 100% width."
row:tag('td')
:addClass('mbox-empty-cell')
:cssText(self.imageEmptyCellStyle or nil)
end
-- Add the text.
local textCell = row:tag('td'):addClass('mbox-text')
if self.useCollapsibleTextFields then
-- The message box uses advanced text parameters that allow things to be
-- collapsible. At the moment, only ambox uses this.
textCell:cssText(self.textstyle or nil)
local textCellDiv = textCell:tag('div')
textCellDiv
:addClass('mbox-text-span')
:wikitext(self.issue or nil)
if (self.talk or self.fix) then
textCellDiv:tag('span')
:addClass('hide-when-compact')
:wikitext(self.talk and (' ' .. self.talk) or nil)
:wikitext(self.fix and (' ' .. self.fix) or nil)
end
textCellDiv:wikitext(self.date and (' ' .. self.date) or nil)
if self.info and not self.isSmall then
textCellDiv
:tag('span')
:addClass('hide-when-compact')
:wikitext(self.info and (' ' .. self.info) or nil)
end
if self.removalNotice then
textCellDiv:tag('span')
:addClass('hide-when-compact')
:tag('i')
:wikitext(string.format(" (%s)", self.removalNotice))
end
else
-- Default text formatting - anything goes.
textCell
:cssText(self.textstyle or nil)
:wikitext(self.text or nil)
end
-- Add the right-hand image.
if self.imageRight then
local imageRightCell = row:tag('td'):addClass('mbox-imageright')
if self.imageCellDiv then
-- If we are using a div, redefine imageRightCell so that the image
-- is inside it.
imageRightCell = imageRightCell:tag('div'):css('width', '52px')
end
imageRightCell
:wikitext(self.imageRight or nil)
end
-- Add the below row.
if self.below then
boxTable:tag('tr')
:tag('td')
:attr('colspan', self.imageRight and '3' or '2')
:addClass('mbox-text')
:cssText(self.textstyle or nil)
:wikitext(self.below or nil)
end
-- Add error message for invalid type parameters.
if self.invalidTypeError then
root:tag('div')
:css('text-align', 'center')
:wikitext(string.format(
'This message box is using an invalid "type=%s" parameter and needs fixing.',
self.type or ''
))
end
-- Add categories.
root:wikitext(self:renderCategories() or nil)
return tostring(root)
end
--------------------------------------------------------------------------------
-- Exports
--------------------------------------------------------------------------------
local p, mt = {}, {}
function p._exportClasses()
-- For testing.
return {
MessageBox = MessageBox
}
end
function p.main(boxType, args, cfgTables)
local box = MessageBox.new(boxType, args, cfgTables or mw.loadData(CONFIG_MODULE))
box:setParameters()
box:setCategories()
return box:export()
end
function mt.__index(t, k)
return function (frame)
if not getArgs then
getArgs = require('Module:Arguments').getArgs
end
return t.main(k, getArgs(frame, {trim = false, removeBlanks = false}))
end
end
return setmetatable(p, mt)
laj4q6l797jyprqgh4seuf4yqsjzl8s
Module:Message box/doc
828
1318
13238
2022-05-31T20:22:08Z
Kambai Akau
15
Created page with "{{Used in system}} {{module rating|p}} {{Lua|Module:Message box/configuration|Module:No globals|Module:Yesno|Module:Arguments|Module:Category handler}} This is a meta-module that implements the message box templates {{tl|mbox}}, {{tl|ambox}}, {{tl|cmbox}}, {{tl|fmbox}}, {{tl|imbox}}, {{tl|ombox}}, and {{tl|tmbox}}. It is intended to be used from Lua modules, and should not be used directly from wiki pages. If you want to use this module's functionality from a wiki page,..."
wikitext
text/x-wiki
{{Used in system}}
{{module rating|p}}
{{Lua|Module:Message box/configuration|Module:No globals|Module:Yesno|Module:Arguments|Module:Category handler}}
This is a meta-module that implements the message box templates {{tl|mbox}}, {{tl|ambox}}, {{tl|cmbox}}, {{tl|fmbox}}, {{tl|imbox}}, {{tl|ombox}}, and {{tl|tmbox}}. It is intended to be used from Lua modules, and should not be used directly from wiki pages. If you want to use this module's functionality from a wiki page, please use the individual message box templates instead.
== Usage ==
To use this module from another Lua module, first you need to load it.
<syntaxhighlight lang="lua">
local messageBox = require('Module:Message box')
</syntaxhighlight>
To create a message box, use the <code>main</code> function. It takes two parameters: the first is the box type (as a string), and the second is a table containing the message box parameters.
<syntaxhighlight lang="lua">
local box = messageBox.main( boxType, {
param1 = param1,
param2 = param2,
-- More parameters...
})
</syntaxhighlight>
There are seven available box types:
{| class="wikitable"
! Box type !! Template !! Purpose
|-
| <code>mbox</code> || {{tl|mbox}} || For message boxes to be used in multiple namespaces
|-
| <code>ambox</code> || {{tl|ambox}} || For article message boxes
|-
| <code>cmbox</code> || {{tl|cmbox}} || For category message boxes
|-
| <code>fmbox</code> || {{tl|fmbox}} || For interface message boxes
|-
| <code>imbox</code> || {{tl|imbox}} || For file namespace message boxes
|-
| <code>tmbox</code> || {{tl|tmbox}} || For talk page message boxes
|-
| <code>ombox</code> || {{tl|ombox}} || For message boxes in other namespaces
|}
See the template page of each box type for the available parameters.
== Usage from #invoke ==
As well as the <code>main</code> function, this module has separate functions for each box type. They are accessed using the code <code><nowiki>{{#invoke:Message box|mbox|...}}</nowiki></code>, <code><nowiki>{{#invoke:Message box|ambox|...}}</nowiki></code>, etc. These will work when called from other modules, but they access code used to process arguments passed from #invoke, and so calling them will be less efficient than calling <code>main</code>.
== Technical details ==
The module uses the same basic code for each of the templates listed above; the differences between each of them are configured using the data at [[Module:Message box/configuration]]. Here are the various configuration options and what they mean:
* <code>types</code> – a table containing data used by the type parameter of the message box. The table keys are the values that can be passed to the type parameter, and the table values are tables containing the class and the image used by that type.
* <code>default</code> – the type to use if no value was passed to the type parameter, or if an invalid value was specified.
* <code>showInvalidTypeError</code> – whether to show an error if the value passed to the type parameter was invalid.
* <code>allowBlankParams</code> – usually blank values are stripped from parameters passed to the module. However, whitespace is preserved for the parameters included in the allowBlankParams table.
* <code>allowSmall</code> – whether a small version of the message box can be produced with "small=yes".
* <code>smallParam</code> – a custom name for the small parameter. For example, if set to "left" you can produce a small message box using "small=left".
* <code>smallClass</code> – the class to use for small message boxes.
* <code>substCheck</code> – whether to perform a subst check or not.
* <code>classes</code> – an array of classes to use with the message box.
* <code>imageEmptyCell</code> – whether to use an empty {{tag|td}} cell if there is no image set. This is used to preserve spacing for message boxes with a width of less than 100% of the screen.
* <code>imageEmptyCellStyle</code> – whether empty image cells should be styled.
* <code>imageCheckBlank</code> – whether "image=blank" results in no image being displayed.
* <code>imageSmallSize</code> – usually, images used in small message boxes are set to 30x30px. This sets a custom size.
* <code>imageCellDiv</code> – whether to enclose the image in a div enforcing a maximum image size.
* <code>useCollapsibleTextFields</code> – whether to use text fields that can be collapsed, i.e. "issue", "fix", "talk", etc. Currently only used in ambox.
* <code>imageRightNone</code> – whether imageright=none results in no image being displayed on the right-hand side of the message box.
* <code>sectionDefault</code> – the default name for the "section" parameter. Depends on <code>useCollapsibleTextFields</code>.
* <code>allowMainspaceCategories</code> – allow categorisation in the main namespace.
* <code>templateCategory</code> – the name of a category to be placed on the template page.
* <code>templateCategoryRequireName</code> – whether the <code>name</code> parameter is required to display the template category.
* <code>templateErrorCategory</code> – the name of the error category to be used on the template page.
* <code>templateErrorParamsToCheck</code> – an array of parameter names to check. If any are absent, the <code>templateErrorCategory</code> is applied to the template page.
gylas5sr0c7uo5g3nrxklnd0k774pvd
Module:No globals
828
1319
13239
2022-05-31T20:23:43Z
Kambai Akau
15
Created page with "local mt = getmetatable(_G) or {} function mt.__index (t, k) if k ~= 'arg' then error('Tried to read nil global ' .. tostring(k), 2) end return nil end function mt.__newindex(t, k, v) if k ~= 'arg' then error('Tried to write global ' .. tostring(k), 2) end rawset(t, k, v) end setmetatable(_G, mt)"
Scribunto
text/plain
local mt = getmetatable(_G) or {}
function mt.__index (t, k)
if k ~= 'arg' then
error('Tried to read nil global ' .. tostring(k), 2)
end
return nil
end
function mt.__newindex(t, k, v)
if k ~= 'arg' then
error('Tried to write global ' .. tostring(k), 2)
end
rawset(t, k, v)
end
setmetatable(_G, mt)
gggsv54pq7f94l3up48hr91qtxnskdm
Module:No globals/doc
828
1320
13240
2022-05-31T20:24:28Z
Kambai Akau
15
Created page with "{{used in system}} {{module rating|protected}} <!-- Template categories go at the bottom of this page. --> This module causes an error if any nil [[global variable|global]] is read or if any global is written to, with the exception of <var>arg</var>. To use, add <syntaxhighlight lang="lua" inline>require('Module:No globals')</syntaxhighlight> to the top of the module using it. The <var>arg</var> variable is excluded because it is necessary for Scribunto's mw:Extension..."
wikitext
text/x-wiki
{{used in system}}
{{module rating|protected}}
<!-- Template categories go at the bottom of this page. -->
This module causes an error if any nil [[global variable|global]] is read or if any global is written to, with the exception of <var>arg</var>. To use, add <syntaxhighlight lang="lua" inline>require('Module:No globals')</syntaxhighlight> to the top of the module using it. The <var>arg</var> variable is excluded because it is necessary for Scribunto's [[mw:Extension:Scribunto/Lua reference manual#require|require]] function to work properly. (See the Scribunto source code [[phab:diffusion/ELUA/browse/master/includes/engines/LuaCommon/lualib/package.lua;1fad4da13706f4dbdd0477a834675b9d09757bf6|here]].)
== See also ==
* [[Module:Log globals]] – adds all nil global reads/writes to the Lua log
<includeonly>{{Sandbox other||
<!-- Template categories go here. -->
[[Category:Lua metamodules]]
}}</includeonly>
4h7oec1hp3umv1zzbntaenb888t73cg
Module:Log globals
828
1321
13241
2022-05-31T20:25:31Z
Kambai Akau
15
Created page with "local mt = getmetatable(_G) or {} local function print(val) if type(val) == "table" then local printout = {} local i = 1 for k, v in pairs(val) do table.insert(printout, ("[%s] = %s"):format(tostring(k), tostring(v)) ) i = i + 1 if i > 5 then table.insert(printout, "...") break end end printout = { table.concat(printout, ", ") } table.insert(printout, 1, "{") table.insert(printout, "}") return table.concat(printout) elseif type(val)..."
Scribunto
text/plain
local mt = getmetatable(_G) or {}
local function print(val)
if type(val) == "table" then
local printout = {}
local i = 1
for k, v in pairs(val) do
table.insert(printout, ("[%s] = %s"):format(tostring(k), tostring(v)) )
i = i + 1
if i > 5 then
table.insert(printout, "...")
break
end
end
printout = { table.concat(printout, ", ") }
table.insert(printout, 1, "{")
table.insert(printout, "}")
return table.concat(printout)
elseif type(val) == "string" then
return '"' .. val .. '"'
else
return tostring(val)
end
end
mt.__newindex = function (self, key, value)
if key ~= "arg" then
mw.log("Global variable " .. print(key) .. " was set to "
.. print(value) .. " somewhere:",
debug.traceback("", 2))
end
return rawset(self, key, value)
end
mt.__index = function (self, key)
if key ~= "arg" then
mw.log("Nil global variable " .. print(key) .. " was read somewhere:",
debug.traceback("", 2))
end
return rawget(self, key)
end
setmetatable(_G, mt)
4sxe2qjptvdg7m3y0zlm2j7wohsf3yk
Module:Log globals/doc
828
1322
13242
2022-05-31T20:26:15Z
Kambai Akau
15
Created page with "{{module rating|b}} <!-- Categories go at the bottom of this page and interwikis go in Wikidata. --> This module finds nil globals and adds the to the lua log along with where they were read/written. This module is different from [[Module:No globals]] as you can see all nil global variables that are being read/written to rather then only getting an error for the first problematic global variable. The <var>arg</var> variable is excluded. == See also == * Module:No glo..."
wikitext
text/x-wiki
{{module rating|b}}
<!-- Categories go at the bottom of this page and interwikis go in Wikidata. -->
This module finds nil globals and adds the to the lua log along with where they were read/written. This module is different from [[Module:No globals]] as you can see all nil global variables that are being read/written to rather then only getting an error for the first problematic global variable. The <var>arg</var> variable is excluded.
== See also ==
* [[Module:No globals]] - Creates error message for first encountered nil global read/write
<includeonly>{{Sandbox other||
<!-- Categories go here and interwikis go in Wikidata. -->
[[Category:Lua metamodules]]
}}</includeonly>
b9e41zwdhhk6u3oydk7s5b6qcsno9it
Ta̱mpi̱let:Sandbox other
10
1323
13243
2022-05-31T20:27:36Z
Kambai Akau
15
Created page with "{{#if:{{#ifeq:{{#invoke:String|sublength|s={{SUBPAGENAME}}|i=0|len=7}}|sandbox|1}}{{#ifeq:{{SUBPAGENAME}}|doc|1}}{{#invoke:String|match|{{PAGENAME}}|/sandbox/styles.css$|plain=false|nomatch=}}|{{{1|}}}|{{{2|}}}}}<!-- --><noinclude>{{documentation}}</noinclude>"
wikitext
text/x-wiki
{{#if:{{#ifeq:{{#invoke:String|sublength|s={{SUBPAGENAME}}|i=0|len=7}}|sandbox|1}}{{#ifeq:{{SUBPAGENAME}}|doc|1}}{{#invoke:String|match|{{PAGENAME}}|/sandbox/styles.css$|plain=false|nomatch=}}|{{{1|}}}|{{{2|}}}}}<!--
--><noinclude>{{documentation}}</noinclude>
h1idujwaw20aducxsd1gc4ovgnjikqa
Module:Yesno
828
1324
13244
2022-05-31T20:29:09Z
Kambai Akau
15
Created page with "-- Function allowing for consistent treatment of boolean-like wikitext input. -- It works similarly to the template {{yesno}}. return function (val, default) -- If your wiki uses non-ascii characters for any of "yes", "no", etc., you -- should replace "val:lower()" with "mw.ustring.lower(val)" in the -- following line. val = type(val) == 'string' and val:lower() or val if val == nil then return nil elseif val == true or val == 'yes' or val == 'y' or val =..."
Scribunto
text/plain
-- Function allowing for consistent treatment of boolean-like wikitext input.
-- It works similarly to the template {{yesno}}.
return function (val, default)
-- If your wiki uses non-ascii characters for any of "yes", "no", etc., you
-- should replace "val:lower()" with "mw.ustring.lower(val)" in the
-- following line.
val = type(val) == 'string' and val:lower() or val
if val == nil then
return nil
elseif val == true
or val == 'yes'
or val == 'y'
or val == 'true'
or val == 't'
or val == 'on'
or tonumber(val) == 1
then
return true
elseif val == false
or val == 'no'
or val == 'n'
or val == 'false'
or val == 'f'
or val == 'off'
or tonumber(val) == 0
then
return false
else
return default
end
end
swdskn7svew8i9wuydn9uj5l3r2ghcs
Module:Yesno/doc
828
1325
13245
2022-05-31T20:30:01Z
Kambai Akau
15
Created page with "{{used in system}} {{Module rating|protected}} This module provides a consistent interface for processing boolean or boolean-style string input. While Lua allows the <code>true</code> and <code>false</code> boolean values, wikicode templates can only express boolean values through strings such as "yes", "no", etc. This module processes these kinds of strings and turns them into boolean input for Lua to process. It also returns <code>nil</code> values as <code>nil</code>,..."
wikitext
text/x-wiki
{{used in system}}
{{Module rating|protected}}
This module provides a consistent interface for processing boolean or boolean-style string input. While Lua allows the <code>true</code> and <code>false</code> boolean values, wikicode templates can only express boolean values through strings such as "yes", "no", etc. This module processes these kinds of strings and turns them into boolean input for Lua to process. It also returns <code>nil</code> values as <code>nil</code>, to allow for distinctions between <code>nil</code> and <code>false</code>. The module also accepts other Lua structures as input, i.e. booleans, numbers, tables, and functions. If it is passed input that it does not recognise as boolean or <code>nil</code>, it is possible to specify a default value to return.
== Syntax ==
<syntaxhighlight lang="lua">yesno(value, default)</syntaxhighlight>
<code>value</code> is the value to be tested. Boolean input or boolean-style input (see below) always evaluates to either <code>true</code> or <code>false</code>, and <code>nil</code> always evaluates to <code>nil</code>. Other values evaluate to <code>default</code>.
== Usage ==
First, load the module. Note that it can only be loaded from other Lua modules, not from normal wiki pages. For normal wiki pages you can use {{tl|yesno}} instead.
<syntaxhighlight lang="lua">
local yesno = require('Module:Yesno')
</syntaxhighlight>
Some input values always return <code>true</code>, and some always return <code>false</code>. <code>nil</code> values always return <code>nil</code>.
<syntaxhighlight lang="lua">
-- These always return true:
yesno('yes')
yesno('y')
yesno('true')
yesno('t')
yesno('1')
yesno(1)
yesno(true)
-- These always return false:
yesno('no')
yesno('n')
yesno('false')
yesno('f')
yesno('0')
yesno(0)
yesno(false)
-- A nil value always returns nil:
yesno(nil)
</syntaxhighlight>
String values are converted to lower case before they are matched:
<syntaxhighlight lang="lua">
-- These always return true:
yesno('Yes')
yesno('YES')
yesno('yEs')
yesno('Y')
yesno('tRuE')
-- These always return false:
yesno('No')
yesno('NO')
yesno('nO')
yesno('N')
yesno('fALsE')
</syntaxhighlight>
===Undefined input ('foo')===
You can specify a default value if yesno receives input other than that listed above. If you don't supply a default, the module will return <code>nil</code> for these inputs.
<syntaxhighlight lang="lua">
-- These return nil:
yesno('foo')
yesno({})
yesno(5)
yesno(function() return 'This is a function.' end)
yesno(nil, true)
yesno(nil, 'bar')
-- These return true:
yesno('foo', true)
yesno({}, true)
yesno(5, true)
yesno(function() return 'This is a function.' end, true)
-- These return "bar":
yesno('foo', 'bar')
yesno({}, 'bar')
yesno(5, 'bar')
yesno(function() return 'This is a function.' end, 'bar')
</syntaxhighlight>
Note that the empty string also functions this way:
<syntaxhighlight lang="lua">
yesno('') -- Returns nil.
yesno('', true) -- Returns true.
yesno('', 'bar') -- Returns "bar".
</syntaxhighlight>
Although the empty string usually evaluates to false in wikitext, it evaluates to true in Lua. This module prefers the Lua behaviour over the wikitext behaviour. If treating the empty string as false is important for your module, you will need to convert empty strings to a value that evaluates to false before passing them to this module. In the case of arguments received from wikitext, this can be done by using [[Module:Arguments]].
===Handling nil results===
By definition
:<syntaxhighlight lang="lua">
yesno(nil) -- Returns nil.
yesno('foo') -- Returns nil.
yesno(nil, true) -- Returns nil.
yesno(nil, false) -- Returns nil.
yesno('foo', true) -- Returns true.
</syntaxhighlight>
To get the binary <syntaxhighlight lang="lua" inline>true/false</syntaxhighlight>-only values, use code like:
<syntaxhighlight lang="lua">
myvariable = yesno(value) or false -- When value is nil, result is false.
myvariable = yesno(value) or true -- When value is nil, result is true.
myvariable = yesno('foo') or false -- Unknown string returns nil, result is false.
myvariable = yesno('foo', true) or false -- Default value (here: true) applies, result is true.
</syntaxhighlight><!--
--><includeonly>{{sandbox other||
[[Category:Lua metamodules]]
}}</includeonly>
nrpba7al4tg6jf69dmn4yqegiu1jctj
Ta̱mpi̱let:Used in system
10
1326
13246
2022-05-31T20:31:39Z
Kambai Akau
15
Created page with "{{#invoke:High-use|main|1=|2={{{2|}}}|system={{#if:{{{1|}}}|{{{1}}}|in system messages}}<noinclude>|nocat=true</noinclude>}}<noinclude> {{documentation}}<!-- Add categories and interwikis to the /doc subpage, not here! --> </noinclude>"
wikitext
text/x-wiki
{{#invoke:High-use|main|1=|2={{{2|}}}|system={{#if:{{{1|}}}|{{{1}}}|in system messages}}<noinclude>|nocat=true</noinclude>}}<noinclude>
{{documentation}}<!-- Add categories and interwikis to the /doc subpage, not here! -->
</noinclude>
196bkrax8m9r9spo90sxgyczdyxm0j6
Module:High-use
828
1327
13247
2022-05-31T20:32:51Z
Kambai Akau
15
Created page with "local p = {} -- _fetch looks at the "demo" argument. local _fetch = require('Module:Transclusion_count').fetch local yesno = require('Module:Yesno') function p.num(frame, count) if count == nil then if yesno(frame.args['fetch']) == false then if (frame.args[1] or '') ~= '' then count = tonumber(frame.args[1]) end else count = _fetch(frame) end end -- Build output string local return_value = "" if count == nil then if frame.args[1] == "risk" then..."
Scribunto
text/plain
local p = {}
-- _fetch looks at the "demo" argument.
local _fetch = require('Module:Transclusion_count').fetch
local yesno = require('Module:Yesno')
function p.num(frame, count)
if count == nil then
if yesno(frame.args['fetch']) == false then
if (frame.args[1] or '') ~= '' then count = tonumber(frame.args[1]) end
else
count = _fetch(frame)
end
end
-- Build output string
local return_value = ""
if count == nil then
if frame.args[1] == "risk" then
return_value = "a very large number of"
else
return_value = "many"
end
else
-- Use 2 significant figures for smaller numbers and 3 for larger ones
local sigfig = 2
if count >= 100000 then
sigfig = 3
end
-- Prepare to round to appropriate number of sigfigs
local f = math.floor(math.log10(count)) - sigfig + 1
-- Round and insert "approximately" or "+" when appropriate
if (frame.args[2] == "yes") or (mw.ustring.sub(frame.args[1],-1) == "+") then
-- Round down
return_value = string.format("%s+", mw.getContentLanguage():formatNum(math.floor( (count / 10^(f)) ) * (10^(f))) )
else
-- Round to nearest
return_value = string.format("approximately %s", mw.getContentLanguage():formatNum(math.floor( (count / 10^(f)) + 0.5) * (10^(f))) )
end
-- Insert percentage of pages if that is likely to be >= 1% and when |no-percent= not set to yes
if count and count > 250000 and not yesno (frame:getParent().args['no-percent']) then
local percent = math.floor( ( (count/frame:callParserFunction('NUMBEROFPAGES', 'R') ) * 100) + 0.5)
if percent >= 1 then
return_value = string.format("%s pages, or roughly %s%% of all", return_value, percent)
end
end
end
return return_value
end
-- Actions if there is a large (greater than or equal to 100,000) transclusion count
function p.risk(frame)
local return_value = ""
if frame.args[1] == "risk" then
return_value = "risk"
else
local count = _fetch(frame)
if count and count >= 100000 then return_value = "risk" end
end
return return_value
end
function p.text(frame, count)
-- Only show the information about how this template gets updated if someone
-- is actually editing the page and maybe trying to update the count.
local bot_text = (frame:preprocess("{{REVISIONID}}") == "") and "\n\n----\n'''Preview message''': Transclusion count updated automatically ([[Template:High-use/doc#Technical details|see documentation]])." or ''
if count == nil then
if yesno(frame.args['fetch']) == false then
if (frame.args[1] or '') ~= '' then count = tonumber(frame.args[1]) end
else
count = _fetch(frame)
end
end
local title = mw.title.getCurrentTitle()
if title.subpageText == "doc" or title.subpageText == "sandbox" then
title = title.basePageTitle
end
local systemMessages = frame.args['system']
if frame.args['system'] == '' then
systemMessages = nil
end
-- This retrieves the project URL automatically to simplify localiation.
local templateCount = ('on [https://linkcount.toolforge.org/index.php?project=%s&page=%s %s pages]'):format(
mw.title.getCurrentTitle():fullUrl():gsub('//(.-)/.*', '%1'),
mw.uri.encode(title.fullText), p.num(frame, count))
local used_on_text = "'''This " .. (mw.title.getCurrentTitle().namespace == 828 and "Lua module" or "template") .. ' is used ';
if systemMessages then
used_on_text = used_on_text .. systemMessages ..
((count and count > 2000) and (",''' and " .. templateCount) or ("'''"))
else
used_on_text = used_on_text .. templateCount .. "'''"
end
local sandbox_text = ("%s's [[%s/sandbox|/sandbox]] or [[%s/testcases|/testcases]] subpages, or in your own [[%s]]. "):format(
(mw.title.getCurrentTitle().namespace == 828 and "module" or "template"),
title.fullText, title.fullText,
mw.title.getCurrentTitle().namespace == 828 and "Module:Sandbox|module sandbox" or "Wikipedia:User pages#SUB|user subpage"
)
local infoArg = frame.args["info"] ~= "" and frame.args["info"]
if (systemMessages or frame.args[1] == "risk" or (count and count >= 100000) ) then
local info = systemMessages and '.<br/>Changes to it can cause immediate changes to the Wikipedia user interface.' or '.'
if infoArg then
info = info .. "<br />" .. infoArg
end
sandbox_text = info .. '<br /> To avoid major disruption' ..
(count and count >= 100000 and ' and server load' or '') ..
', any changes should be tested in the ' .. sandbox_text ..
'The tested changes can be added to this page in a single edit. '
else
sandbox_text = (infoArg and ('.<br />' .. infoArg .. ' C') or ' and c') ..
'hanges may be widely noticed. Test changes in the ' .. sandbox_text
end
local discussion_text = systemMessages and 'Please discuss changes ' or 'Consider discussing changes '
if frame.args["2"] and frame.args["2"] ~= "" and frame.args["2"] ~= "yes" then
discussion_text = string.format("%sat [[%s]]", discussion_text, frame.args["2"])
else
discussion_text = string.format("%son the [[%s|talk page]]", discussion_text, title.talkPageTitle.fullText )
end
return used_on_text .. sandbox_text .. discussion_text .. " before implementing them." .. bot_text
end
function p.main(frame)
local count = nil
if yesno(frame.args['fetch']) == false then
if (frame.args[1] or '') ~= '' then count = tonumber(frame.args[1]) end
else
count = _fetch(frame)
end
local image = "[[File:Ambox warning yellow.svg|40px|alt=Warning|link=]]"
local type_param = "style"
local epilogue = ''
if frame.args['system'] and frame.args['system'] ~= '' then
image = "[[File:Ambox important.svg|40px|alt=Warning|link=]]"
type_param = "content"
local nocat = frame:getParent().args['nocat'] or frame.args['nocat']
local categorise = (nocat == '' or not yesno(nocat))
if categorise then
epilogue = frame:preprocess('{{Sandbox other||{{#switch:{{#invoke:Effective protection level|{{#switch:{{NAMESPACE}}|File=upload|#default=edit}}|{{FULLPAGENAME}}}}|sysop|templateeditor|interfaceadmin=|#default=[[Category:Pages used in system messages needing protection]]}}}}')
end
elseif (frame.args[1] == "risk" or (count and count >= 100000)) then
image = "[[File:Ambox warning orange.svg|40px|alt=Warning|link=]]"
type_param = "content"
end
if frame.args["form"] == "editnotice" then
return frame:expandTemplate{
title = 'editnotice',
args = {
["image"] = image,
["text"] = p.text(frame, count),
["expiry"] = (frame.args["expiry"] or "")
}
} .. epilogue
else
return require('Module:Message box').main('ombox', {
type = type_param,
image = image,
text = p.text(frame, count),
expiry = (frame.args["expiry"] or "")
}) .. epilogue
end
end
return p
sy3y3omwgho4wnukvqxwejjpb2mjh3c
Module:High-use/doc
828
1328
13248
2022-05-31T20:33:53Z
Kambai Akau
15
Created page with "{{Module rating|release}} {{High-use}} {{Lua|Module:Transclusion count}} Implements {{tl|High-use}}. Uses bot-updated values from [[Special:PrefixIndex/Module:Transclusion_count/data/|subpages of Module:Transclusion_count/data/]] when available. == Usage == {{Mlx|High-use|main|1{{=}}''number of transclusions''|2{{=}}''discussion page, or use + notation''|all-pages{{=}}|info{{=}}|demo{{=}}|form{{=}}|expiry{{=}}}} * ''<code>number of transclusions</code>'': The first p..."
wikitext
text/x-wiki
{{Module rating|release}}
{{High-use}}
{{Lua|Module:Transclusion count}}
Implements {{tl|High-use}}. Uses bot-updated values from [[Special:PrefixIndex/Module:Transclusion_count/data/|subpages of Module:Transclusion_count/data/]] when available.
== Usage ==
{{Mlx|High-use|main|1{{=}}''number of transclusions''|2{{=}}''discussion page, or use + notation''|all-pages{{=}}|info{{=}}|demo{{=}}|form{{=}}|expiry{{=}}}}
* ''<code>number of transclusions</code>'': The first parameter is either a static number of times the template has been transcluded, or the word "risk" (without quotes) to display "a very large number of" instead of the actual value. This value will be ignored if transclusion data is available for the current page.
* ''<code>discussion page, or use + notation</code>'': The second parameter is overloaded. It will cause the number of transclusions to display as "#,###+" instead of "approximately #,###" when set equal to "yes" (without quotes). When used in this manner, values will be rounded down, instead of rounded to the nearest number with the appropriate number of significant figures. When set to any other non-blank value, it will replace the link to the template's talk page to the value of the parameter (for example, <code>2=WP:VPT</code> will insert a link to [[WP:VPT]]),
* {{para|all-pages|yes}}: Will also output what percentage of all pages use the template. This should only be used for very highly transcluded templates, and the percentage will only display if its greater than 1%.
* {{para|info|''extra information''}}: When set to non-blank, will insert ''extra information'' into the template text if the template has more than 10,000 transclusions or parameter 1 is set to "risk".
* {{para|demo|''Template_name''}}: Will use the transclusion count for the template at [[Template:Template_name]] instead of detecting what template it is being used on. Capitalization must exactly match the value used in [[Special:PrefixIndex/Module:Transclusion_count/data/]].
* {{para|form}}: When set to "editnotice", will display the message using {{tl|editnotice}} instead of {{tl|ombox}}.
* {{para|expiry}}: Sets the {{para|expiry}} parameter for {{tl|editnotice}}.
* {{para|system|''in system messages''}}: if set, this module looks like {{tl|Used in system}}. Use that template directly as it performs some checks.
* {{para|fetch}}: if set to false, the module will not attempt to fetch transclusion counts using [[:Module:Transclusion count]]
The following are drop-in replacements for {{tl|High-use/num}}, {{tl|High-use/text}}, and {{tl|High-use/risk}}, and take the same parameters:
* {{Mlx|High-use|num}}
* {{Mlx|High-use|text}}
* {{Mlx|High-use|risk}}
<includeonly>{{#ifeq:{{SUBPAGENAME}}|sandbox | |
<!-- Categories below this line, please; interwikis at Wikidata -->
}}</includeonly>
2jong4teasgy122a0hb8bub1xa01fo9
Module:List
828
1329
13249
2022-05-31T20:35:26Z
Kambai Akau
15
Created page with "-- This module outputs different kinds of lists. At the moment, bulleted, -- unbulleted, horizontal, ordered, and horizontal ordered lists are supported. local libUtil = require('libraryUtil') local checkType = libUtil.checkType local mTableTools = require('Module:TableTools') local p = {} local listTypes = { ['bulleted'] = true, ['unbulleted'] = true, ['horizontal'] = true, ['ordered'] = true, ['horizontal_ordered'] = true } function p.makeListData(listType, ar..."
Scribunto
text/plain
-- This module outputs different kinds of lists. At the moment, bulleted,
-- unbulleted, horizontal, ordered, and horizontal ordered lists are supported.
local libUtil = require('libraryUtil')
local checkType = libUtil.checkType
local mTableTools = require('Module:TableTools')
local p = {}
local listTypes = {
['bulleted'] = true,
['unbulleted'] = true,
['horizontal'] = true,
['ordered'] = true,
['horizontal_ordered'] = true
}
function p.makeListData(listType, args)
-- Constructs a data table to be passed to p.renderList.
local data = {}
-- Classes
data.classes = {}
if listType == 'horizontal' or listType == 'horizontal_ordered' then
table.insert(data.classes, 'hlist hlist-separated')
elseif listType == 'unbulleted' then
table.insert(data.classes, 'plainlist')
end
table.insert(data.classes, args.class)
-- Main div style
data.style = args.style
-- Indent for horizontal lists
if listType == 'horizontal' or listType == 'horizontal_ordered' then
local indent = tonumber(args.indent)
indent = indent and indent * 1.6 or 0
if indent > 0 then
data.marginLeft = indent .. 'em'
end
end
-- List style types for ordered lists
-- This could be "1, 2, 3", "a, b, c", or a number of others. The list style
-- type is either set by the "type" attribute or the "list-style-type" CSS
-- property.
if listType == 'ordered' or listType == 'horizontal_ordered' then
data.listStyleType = args.list_style_type or args['list-style-type']
data.type = args['type']
-- Detect invalid type attributes and attempt to convert them to
-- list-style-type CSS properties.
if data.type
and not data.listStyleType
and not tostring(data.type):find('^%s*[1AaIi]%s*$')
then
data.listStyleType = data.type
data.type = nil
end
end
-- List tag type
if listType == 'ordered' or listType == 'horizontal_ordered' then
data.listTag = 'ol'
else
data.listTag = 'ul'
end
-- Start number for ordered lists
data.start = args.start
if listType == 'horizontal_ordered' then
-- Apply fix to get start numbers working with horizontal ordered lists.
local startNum = tonumber(data.start)
if startNum then
data.counterReset = 'listitem ' .. tostring(startNum - 1)
end
end
-- List style
-- ul_style and ol_style are included for backwards compatibility. No
-- distinction is made for ordered or unordered lists.
data.listStyle = args.list_style
-- List items
-- li_style is included for backwards compatibility. item_style was included
-- to be easier to understand for non-coders.
data.itemStyle = args.item_style or args.li_style
data.items = {}
for i, num in ipairs(mTableTools.numKeys(args)) do
local item = {}
item.content = args[num]
item.style = args['item' .. tostring(num) .. '_style']
or args['item_style' .. tostring(num)]
item.value = args['item' .. tostring(num) .. '_value']
or args['item_value' .. tostring(num)]
table.insert(data.items, item)
end
return data
end
function p.renderList(data)
-- Renders the list HTML.
-- Return the blank string if there are no list items.
if type(data.items) ~= 'table' or #data.items < 1 then
return ''
end
-- Render the main div tag.
local root = mw.html.create('div')
for i, class in ipairs(data.classes or {}) do
root:addClass(class)
end
root:css{['margin-left'] = data.marginLeft}
if data.style then
root:cssText(data.style)
end
-- Render the list tag.
local list = root:tag(data.listTag or 'ul')
list
:attr{start = data.start, type = data.type}
:css{
['counter-reset'] = data.counterReset,
['list-style-type'] = data.listStyleType
}
if data.listStyle then
list:cssText(data.listStyle)
end
-- Render the list items
for i, t in ipairs(data.items or {}) do
local item = list:tag('li')
if data.itemStyle then
item:cssText(data.itemStyle)
end
if t.style then
item:cssText(t.style)
end
item
:attr{value = t.value}
:wikitext(t.content)
end
return tostring(root)
end
function p.renderTrackingCategories(args)
local isDeprecated = false -- Tracks deprecated parameters.
for k, v in pairs(args) do
k = tostring(k)
if k:find('^item_style%d+$') or k:find('^item_value%d+$') then
isDeprecated = true
break
end
end
local ret = ''
if isDeprecated then
ret = ret .. '[[Category:List templates with deprecated parameters]]'
end
return ret
end
function p.makeList(listType, args)
if not listType or not listTypes[listType] then
error(string.format(
"bad argument #1 to 'makeList' ('%s' is not a valid list type)",
tostring(listType)
), 2)
end
checkType('makeList', 2, args, 'table')
local data = p.makeListData(listType, args)
local list = p.renderList(data)
local trackingCategories = p.renderTrackingCategories(args)
return list .. trackingCategories
end
for listType in pairs(listTypes) do
p[listType] = function (frame)
local mArguments = require('Module:Arguments')
local origArgs = mArguments.getArgs(frame, {
valueFunc = function (key, value)
if not value or not mw.ustring.find(value, '%S') then return nil end
if mw.ustring.find(value, '^%s*[%*#;:]') then
return value
else
return value:match('^%s*(.-)%s*$')
end
return nil
end
})
-- Copy all the arguments to a new table, for faster indexing.
local args = {}
for k, v in pairs(origArgs) do
args[k] = v
end
return p.makeList(listType, args)
end
end
return p
1kfxv6e8upfdko23gc41ky0lax25kzs
Module:List/doc
828
1330
13250
2022-05-31T20:36:09Z
Kambai Akau
15
Created page with "{{used in system|in [[MediaWiki:Citethispage-content]]}} {{module rating|protected}} {{Lua|Module:TableTools|Module:Arguments}} This module outputs various kinds of lists. At present, it supports bulleted lists, unbulleted lists, horizontal lists, ordered lists (numbered or alphabetical), and horizontal ordered lists. It allows for easy css styling of the list or of the individual list items. == Usage == === Quick usage === {{pre|<nowiki>{{</nowiki>#invoke:list<nowiki..."
wikitext
text/x-wiki
{{used in system|in [[MediaWiki:Citethispage-content]]}}
{{module rating|protected}}
{{Lua|Module:TableTools|Module:Arguments}}
This module outputs various kinds of lists. At present, it supports bulleted lists, unbulleted lists, horizontal lists, ordered lists (numbered or alphabetical), and horizontal ordered lists. It allows for easy css styling of the list or of the individual list items.
== Usage ==
=== Quick usage ===
{{pre|<nowiki>{{</nowiki>#invoke:list<nowiki>|</nowiki>''function''<nowiki>|</nowiki>''first item''<nowiki>|</nowiki>''second item''<nowiki>|</nowiki>''third item''<nowiki>|</nowiki>...<nowiki>}}</nowiki>}}
=== All parameters ===
{{pre|
<nowiki>{{</nowiki>#invoke:list<nowiki>|</nowiki>''function''
<nowiki>|</nowiki>''first item''<nowiki>|</nowiki>''second item''<nowiki>|</nowiki>''third item''<nowiki>|</nowiki>...
<nowiki>|start = </nowiki>''start number for ordered lists''
<nowiki>|type = </nowiki>''type of numbering for ordered lists''
<nowiki>|list_style_type = </nowiki>''type of marker for ordered lists (uses CSS)''
<nowiki>|class = </nowiki>''class''
<nowiki>|style = </nowiki>''style''
<nowiki>|list_style = </nowiki>''style for the list''
<nowiki>|item_style = </nowiki>''style for all list items''
<nowiki>|item1_style = </nowiki>''style for the first list item''<nowiki> |item2_style = </nowiki>''style for the second list item''<nowiki> |</nowiki>...
<nowiki>|item1_value = </nowiki>''value for the first list item''<nowiki> |item2_value = </nowiki>''value for the second list item''<nowiki> |</nowiki>...
<nowiki>|indent = </nowiki>''indent for horizontal lists''
<nowiki>}}</nowiki>
}}
=== Arguments passed from parent template ===
{{pre|<nowiki>{{</nowiki>#invoke:list<nowiki>|</nowiki>''function''<nowiki>}}</nowiki>}}
=== Functions ===
{| class="wikitable"
|-
! Function name
! Produces
! Example output
! Template using the function
|-
| <code>bulleted</code>
| Bulleted lists
| {{#invoke:list|bulleted|First item|Second item|Third item}}
| {{tlx|bulleted list}}
|-
| <code>unbulleted</code>
| Unbulleted lists
| {{#invoke:list|unbulleted|First item|Second item|Third item}}
| {{tlx|unbulleted list}}
|-
| <code>horizontal</code>
| Horizontal bulleted lists
| {{#invoke:list|horizontal|First item|Second item|Third item}}
| {{tlx|hlist}}
|-
| <code>ordered</code>
| Ordered lists (numbered lists and alphabetical lists)
| {{#invoke:list|ordered|First item|Second item|Third item}}
| {{tlx|ordered list}}
|-
| <code>horizontal_ordered</code>
| Horizontal ordered lists
| {{#invoke:list|horizontal_ordered|First item|Second item|Third item}}
| {{tlx|horizontal ordered list}}
|}
== Parameters ==
* Positional parameters (<code>1</code>, <code>2</code>, <code>3</code>...) - these are the list items. If no list items are present, the module will output nothing.
* <code>start</code> - sets the start item for ordered lists. This can be a start number for numbered lists, or a start letter for alphabetical lists. Horizontal ordered lists only support numbers.
* <code>type</code> - the type of marker used in ordered lists. Possible values are "1" for numbers (the default), "A" for uppercase letters, "a" for lowercase letters, "I" for uppercase [[Roman numerals]], and "i" for lowercase Roman numerals. Not supported in horizontal ordered lists. See also the <code>list_style_type</code> parameter.
* <code>list_style_type</code> - the type of marker used in ordered lists. This uses CSS styling, and has more types available than the <code>type</code> parameter, which uses an [[html attribute]]. Possible values are listed at [https://developer.mozilla.org/en-US/docs/Web/CSS/list-style-type MDN's list-style-type page]. Support may vary by browser. <code>list-style-type</code> is an alias for this parameter.
* <code>class</code> - a custom class for the {{tag|div}} tags surrounding the list, e.g. <code>plainlinks</code>.
* <code>style</code> - a custom css style for the {{tag|div}} tags surrounding the list, e.g. <code>font-size: 90%;</code>.
* <code>list_style</code> - a custom css style for the list itself. The format is the same as for the {{para|style}} parameter.
* <code>item_style</code> - a custom css style for all of the list items (the {{tag|li}} tags). The format is the same as for the {{para|style}} parameter.
* <code>item1_style</code>, <code>item2_style</code>, <code>item3_style</code>... - custom css styles for each of the list items. The format is the same as for the {{para|style}} parameter.
* <code>item1_value</code>, <code>item2_value</code>, <code>item3_value</code>... - custom value for the given list item. List items following the one given will increment from the specified value. The value should be a positive integer. (Note that this option only has an effect on ordered lists.)
* <code>indent</code> - this parameter indents the list, for horizontal and horizontal ordered lists only. The value must be a number, e.g. <code>2</code>. The indent is calculated in [[Em (typography)|em]], and is 1.6 times the value specified. If no indent is specified, the default is zero.
== Examples ==
=== Bulleted lists ===
{| class="wikitable"
! Code !! Result
|-
| <code><nowiki>{{#invoke:list|bulleted|First item|Second item|Third item}}</nowiki></code>
| {{#invoke:list|bulleted|First item|Second item|Third item}}
|-
| <code><nowiki>{{#invoke:list|bulleted|First item|Second item|Third item|item_style=color:blue;}}</nowiki></code>
| {{#invoke:list|bulleted|First item|Second item|Third item|item_style=color:blue;}}
|-
| <code><nowiki>{{#invoke:list|bulleted|First item|Second item|Third item|item1_style=background-color:yellow;|item2_style=background-color:silver;}}</nowiki></code>
| {{#invoke:list|bulleted|First item|Second item|Third item|item1_style=background-color:yellow;|item2_style=background-color:silver;}}
|}
=== Unbulleted lists ===
{| class="wikitable"
! Code !! Result
|-
| <code><nowiki>{{#invoke:list|unbulleted|First item|Second item|Third item}}</nowiki></code>
| {{#invoke:list|unbulleted|First item|Second item|Third item}}
|-
| <code><nowiki>{{#invoke:list|unbulleted|First item|Second item|Third item|item_style=color:blue;}}</nowiki></code>
| {{#invoke:list|unbulleted|First item|Second item|Third item|item_style=color:blue;}}
|-
| <code><nowiki>{{#invoke:list|unbulleted|First item|Second item|Third item|item1_style=background-color:yellow;|item2_style=background-color:silver;}}</nowiki></code>
| {{#invoke:list|unbulleted|First item|Second item|Third item|item1_style=background-color:yellow;|item2_style=background-color:silver;}}
|}
=== Horizontal lists ===
{| class="wikitable"
! Code !! Result
|-
| <code><nowiki>{{#invoke:list|horizontal|First item|Second item|Third item}}</nowiki></code>
| {{#invoke:list|horizontal|First item|Second item|Third item}}
|-
| <code><nowiki>{{#invoke:list|horizontal|First item|Second item|Third item|indent=2}}</nowiki></code>
| {{#invoke:list|horizontal|First item|Second item|Third item|indent=2}}
|}
=== Ordered lists ===
{| class="wikitable"
! Code !! Result
|-
| <code><nowiki>{{#invoke:list|ordered|First item|Second item|Third item}}</nowiki></code>
| {{#invoke:list|ordered|First item|Second item|Third item}}
|-
| <code><nowiki>{{#invoke:list|ordered|First item|Second item|Third item|start=3}}</nowiki></code>
| {{#invoke:list|ordered|First item|Second item|Third item|start=3}}
|-
| <code><nowiki>{{#invoke:list|ordered|First item|Second item|Third item|type=i}</nowiki></code>
| {{#invoke:list|ordered|First item|Second item|Third item|type=i}}
|-
| <code><nowiki>{{#invoke:list|ordered|First item|Second item|Third item|list_style_type=lower-greek}}</nowiki></code>
| {{#invoke:list|ordered|First item|Second item|Third item|list_style_type=lower-greek}}
|}
=== Horizontal ordered lists ===
{| class="wikitable"
! Code !! Result
|-
| <code><nowiki>{{#invoke:list|horizontal_ordered|First item|Second item|Third item}}</nowiki></code>
| {{#invoke:list|horizontal_ordered|First item|Second item|Third item}}
|-
| <code><nowiki>{{#invoke:list|horizontal_ordered|First item|Second item|Third item|start=3}}</nowiki></code>
| {{#invoke:list|horizontal_ordered|First item|Second item|Third item|start=3}}
|-
| <code><nowiki>{{#invoke:list|horizontal_ordered|First item|Second item|Third item|indent=2}}</nowiki></code>
| {{#invoke:list|horizontal_ordered|First item|Second item|Third item|indent=2}}
|}
== Tracking/maintenance category ==
* {{clc|List templates with deprecated parameters}}
== See also ==
* [[Module:Separated entries]]
<includeonly>{{#ifeq:{{SUBPAGENAME}}|sandbox | |
<!-- Categories below this line, please; interwikis at Wikidata -->
[[Category:Modules that add a tracking category]]
}}</includeonly>
rxfuzo14nrns5zildgxnv2se89yrllg
Module:TableTools
828
1331
13251
2022-05-31T20:39:19Z
Kambai Akau
15
Created page with "------------------------------------------------------------------------------------ -- TableTools -- -- -- -- This module includes a number of functions for dealing with Lua tables. -- -- It is a meta-module, meant to be called from other Lua modules, and should not -- -- be called directly from #invoke...."
Scribunto
text/plain
------------------------------------------------------------------------------------
-- TableTools --
-- --
-- This module includes a number of functions for dealing with Lua tables. --
-- It is a meta-module, meant to be called from other Lua modules, and should not --
-- be called directly from #invoke. --
------------------------------------------------------------------------------------
local libraryUtil = require('libraryUtil')
local p = {}
-- Define often-used variables and functions.
local floor = math.floor
local infinity = math.huge
local checkType = libraryUtil.checkType
local checkTypeMulti = libraryUtil.checkTypeMulti
------------------------------------------------------------------------------------
-- isPositiveInteger
--
-- This function returns true if the given value is a positive integer, and false
-- if not. Although it doesn't operate on tables, it is included here as it is
-- useful for determining whether a given table key is in the array part or the
-- hash part of a table.
------------------------------------------------------------------------------------
function p.isPositiveInteger(v)
return type(v) == 'number' and v >= 1 and floor(v) == v and v < infinity
end
------------------------------------------------------------------------------------
-- isNan
--
-- This function returns true if the given number is a NaN value, and false if
-- not. Although it doesn't operate on tables, it is included here as it is useful
-- for determining whether a value can be a valid table key. Lua will generate an
-- error if a NaN is used as a table key.
------------------------------------------------------------------------------------
function p.isNan(v)
return type(v) == 'number' and v ~= v
end
------------------------------------------------------------------------------------
-- shallowClone
--
-- This returns a clone of a table. The value returned is a new table, but all
-- subtables and functions are shared. Metamethods are respected, but the returned
-- table will have no metatable of its own.
------------------------------------------------------------------------------------
function p.shallowClone(t)
checkType('shallowClone', 1, t, 'table')
local ret = {}
for k, v in pairs(t) do
ret[k] = v
end
return ret
end
------------------------------------------------------------------------------------
-- removeDuplicates
--
-- This removes duplicate values from an array. Non-positive-integer keys are
-- ignored. The earliest value is kept, and all subsequent duplicate values are
-- removed, but otherwise the array order is unchanged.
------------------------------------------------------------------------------------
function p.removeDuplicates(arr)
checkType('removeDuplicates', 1, arr, 'table')
local isNan = p.isNan
local ret, exists = {}, {}
for _, v in ipairs(arr) do
if isNan(v) then
-- NaNs can't be table keys, and they are also unique, so we don't need to check existence.
ret[#ret + 1] = v
else
if not exists[v] then
ret[#ret + 1] = v
exists[v] = true
end
end
end
return ret
end
------------------------------------------------------------------------------------
-- numKeys
--
-- This takes a table and returns an array containing the numbers of any numerical
-- keys that have non-nil values, sorted in numerical order.
------------------------------------------------------------------------------------
function p.numKeys(t)
checkType('numKeys', 1, t, 'table')
local isPositiveInteger = p.isPositiveInteger
local nums = {}
for k in pairs(t) do
if isPositiveInteger(k) then
nums[#nums + 1] = k
end
end
table.sort(nums)
return nums
end
------------------------------------------------------------------------------------
-- affixNums
--
-- This takes a table and returns an array containing the numbers of keys with the
-- specified prefix and suffix. For example, for the table
-- {a1 = 'foo', a3 = 'bar', a6 = 'baz'} and the prefix "a", affixNums will return
-- {1, 3, 6}.
------------------------------------------------------------------------------------
function p.affixNums(t, prefix, suffix)
checkType('affixNums', 1, t, 'table')
checkType('affixNums', 2, prefix, 'string', true)
checkType('affixNums', 3, suffix, 'string', true)
local function cleanPattern(s)
-- Cleans a pattern so that the magic characters ()%.[]*+-?^$ are interpreted literally.
return s:gsub('([%(%)%%%.%[%]%*%+%-%?%^%$])', '%%%1')
end
prefix = prefix or ''
suffix = suffix or ''
prefix = cleanPattern(prefix)
suffix = cleanPattern(suffix)
local pattern = '^' .. prefix .. '([1-9]%d*)' .. suffix .. '$'
local nums = {}
for k in pairs(t) do
if type(k) == 'string' then
local num = mw.ustring.match(k, pattern)
if num then
nums[#nums + 1] = tonumber(num)
end
end
end
table.sort(nums)
return nums
end
------------------------------------------------------------------------------------
-- numData
--
-- Given a table with keys like {"foo1", "bar1", "foo2", "baz2"}, returns a table
-- of subtables in the format
-- {[1] = {foo = 'text', bar = 'text'}, [2] = {foo = 'text', baz = 'text'}}.
-- Keys that don't end with an integer are stored in a subtable named "other". The
-- compress option compresses the table so that it can be iterated over with
-- ipairs.
------------------------------------------------------------------------------------
function p.numData(t, compress)
checkType('numData', 1, t, 'table')
checkType('numData', 2, compress, 'boolean', true)
local ret = {}
for k, v in pairs(t) do
local prefix, num = mw.ustring.match(tostring(k), '^([^0-9]*)([1-9][0-9]*)$')
if num then
num = tonumber(num)
local subtable = ret[num] or {}
if prefix == '' then
-- Positional parameters match the blank string; put them at the start of the subtable instead.
prefix = 1
end
subtable[prefix] = v
ret[num] = subtable
else
local subtable = ret.other or {}
subtable[k] = v
ret.other = subtable
end
end
if compress then
local other = ret.other
ret = p.compressSparseArray(ret)
ret.other = other
end
return ret
end
------------------------------------------------------------------------------------
-- compressSparseArray
--
-- This takes an array with one or more nil values, and removes the nil values
-- while preserving the order, so that the array can be safely traversed with
-- ipairs.
------------------------------------------------------------------------------------
function p.compressSparseArray(t)
checkType('compressSparseArray', 1, t, 'table')
local ret = {}
local nums = p.numKeys(t)
for _, num in ipairs(nums) do
ret[#ret + 1] = t[num]
end
return ret
end
------------------------------------------------------------------------------------
-- sparseIpairs
--
-- This is an iterator for sparse arrays. It can be used like ipairs, but can
-- handle nil values.
------------------------------------------------------------------------------------
function p.sparseIpairs(t)
checkType('sparseIpairs', 1, t, 'table')
local nums = p.numKeys(t)
local i = 0
local lim = #nums
return function ()
i = i + 1
if i <= lim then
local key = nums[i]
return key, t[key]
else
return nil, nil
end
end
end
------------------------------------------------------------------------------------
-- size
--
-- This returns the size of a key/value pair table. It will also work on arrays,
-- but for arrays it is more efficient to use the # operator.
------------------------------------------------------------------------------------
function p.size(t)
checkType('size', 1, t, 'table')
local i = 0
for _ in pairs(t) do
i = i + 1
end
return i
end
local function defaultKeySort(item1, item2)
-- "number" < "string", so numbers will be sorted before strings.
local type1, type2 = type(item1), type(item2)
if type1 ~= type2 then
return type1 < type2
elseif type1 == 'table' or type1 == 'boolean' or type1 == 'function' then
return tostring(item1) < tostring(item2)
else
return item1 < item2
end
end
------------------------------------------------------------------------------------
-- keysToList
--
-- Returns an array of the keys in a table, sorted using either a default
-- comparison function or a custom keySort function.
------------------------------------------------------------------------------------
function p.keysToList(t, keySort, checked)
if not checked then
checkType('keysToList', 1, t, 'table')
checkTypeMulti('keysToList', 2, keySort, {'function', 'boolean', 'nil'})
end
local arr = {}
local index = 1
for k in pairs(t) do
arr[index] = k
index = index + 1
end
if keySort ~= false then
keySort = type(keySort) == 'function' and keySort or defaultKeySort
table.sort(arr, keySort)
end
return arr
end
------------------------------------------------------------------------------------
-- sortedPairs
--
-- Iterates through a table, with the keys sorted using the keysToList function.
-- If there are only numerical keys, sparseIpairs is probably more efficient.
------------------------------------------------------------------------------------
function p.sortedPairs(t, keySort)
checkType('sortedPairs', 1, t, 'table')
checkType('sortedPairs', 2, keySort, 'function', true)
local arr = p.keysToList(t, keySort, true)
local i = 0
return function ()
i = i + 1
local key = arr[i]
if key ~= nil then
return key, t[key]
else
return nil, nil
end
end
end
------------------------------------------------------------------------------------
-- isArray
--
-- Returns true if the given value is a table and all keys are consecutive
-- integers starting at 1.
------------------------------------------------------------------------------------
function p.isArray(v)
if type(v) ~= 'table' then
return false
end
local i = 0
for _ in pairs(v) do
i = i + 1
if v[i] == nil then
return false
end
end
return true
end
------------------------------------------------------------------------------------
-- isArrayLike
--
-- Returns true if the given value is iterable and all keys are consecutive
-- integers starting at 1.
------------------------------------------------------------------------------------
function p.isArrayLike(v)
if not pcall(pairs, v) then
return false
end
local i = 0
for _ in pairs(v) do
i = i + 1
if v[i] == nil then
return false
end
end
return true
end
------------------------------------------------------------------------------------
-- invert
--
-- Transposes the keys and values in an array. For example, {"a", "b", "c"} ->
-- {a = 1, b = 2, c = 3}. Duplicates are not supported (result values refer to
-- the index of the last duplicate) and NaN values are ignored.
------------------------------------------------------------------------------------
function p.invert(arr)
checkType("invert", 1, arr, "table")
local isNan = p.isNan
local map = {}
for i, v in ipairs(arr) do
if not isNan(v) then
map[v] = i
end
end
return map
end
------------------------------------------------------------------------------------
-- listToSet
--
-- Creates a set from the array part of the table. Indexing the set by any of the
-- values of the array returns true. For example, {"a", "b", "c"} ->
-- {a = true, b = true, c = true}. NaN values are ignored as Lua considers them
-- never equal to any value (including other NaNs or even themselves).
------------------------------------------------------------------------------------
function p.listToSet(arr)
checkType("listToSet", 1, arr, "table")
local isNan = p.isNan
local set = {}
for _, v in ipairs(arr) do
if not isNan(v) then
set[v] = true
end
end
return set
end
------------------------------------------------------------------------------------
-- deepCopy
--
-- Recursive deep copy function. Preserves identities of subtables.
------------------------------------------------------------------------------------
local function _deepCopy(orig, includeMetatable, already_seen)
-- Stores copies of tables indexed by the original table.
already_seen = already_seen or {}
local copy = already_seen[orig]
if copy ~= nil then
return copy
end
if type(orig) == 'table' then
copy = {}
for orig_key, orig_value in pairs(orig) do
copy[_deepCopy(orig_key, includeMetatable, already_seen)] = _deepCopy(orig_value, includeMetatable, already_seen)
end
already_seen[orig] = copy
if includeMetatable then
local mt = getmetatable(orig)
if mt ~= nil then
local mt_copy = _deepCopy(mt, includeMetatable, already_seen)
setmetatable(copy, mt_copy)
already_seen[mt] = mt_copy
end
end
else -- number, string, boolean, etc
copy = orig
end
return copy
end
function p.deepCopy(orig, noMetatable, already_seen)
checkType("deepCopy", 3, already_seen, "table", true)
return _deepCopy(orig, not noMetatable, already_seen)
end
------------------------------------------------------------------------------------
-- sparseConcat
--
-- Concatenates all values in the table that are indexed by a number, in order.
-- sparseConcat{a, nil, c, d} => "acd"
-- sparseConcat{nil, b, c, d} => "bcd"
------------------------------------------------------------------------------------
function p.sparseConcat(t, sep, i, j)
local arr = {}
local arr_i = 0
for _, v in p.sparseIpairs(t) do
arr_i = arr_i + 1
arr[arr_i] = v
end
return table.concat(arr, sep, i, j)
end
------------------------------------------------------------------------------------
-- length
--
-- Finds the length of an array, or of a quasi-array with keys such as "data1",
-- "data2", etc., using an exponential search algorithm. It is similar to the
-- operator #, but may return a different value when there are gaps in the array
-- portion of the table. Intended to be used on data loaded with mw.loadData. For
-- other tables, use #.
-- Note: #frame.args in frame object always be set to 0, regardless of the number
-- of unnamed template parameters, so use this function for frame.args.
------------------------------------------------------------------------------------
function p.length(t, prefix)
-- requiring module inline so that [[Module:Exponential search]] which is
-- only needed by this one function doesn't get millions of transclusions
local expSearch = require("Module:Exponential search")
checkType('length', 1, t, 'table')
checkType('length', 2, prefix, 'string', true)
return expSearch(function (i)
local key
if prefix then
key = prefix .. tostring(i)
else
key = i
end
return t[key] ~= nil
end) or 0
end
------------------------------------------------------------------------------------
-- inArray
--
-- Returns true if valueToFind is a member of the array, and false otherwise.
------------------------------------------------------------------------------------
function p.inArray(arr, valueToFind)
checkType("inArray", 1, arr, "table")
-- if valueToFind is nil, error?
for _, v in ipairs(arr) do
if v == valueToFind then
return true
end
end
return false
end
return p
0z6y1iz1ggzcjp1rhkrrhgprosuh475
Module:TableTools/doc
828
1332
13252
2022-05-31T20:41:59Z
Kambai Akau
15
Created page with "{{used in system}} {{module rating|protected}} {{lua|Module:Exponential search|noprotcat=yes}} This module includes a number of functions for dealing with Lua tables. It is a meta-module, meant to be called from other Lua modules, and should not be called directly from #invoke. == Loading the module == To use any of the functions, first you must load the module. <syntaxhighlight lang="lua"> local TableTools = require('Module:TableTools') </syntaxhighlight> == isPosit..."
wikitext
text/x-wiki
{{used in system}}
{{module rating|protected}}
{{lua|Module:Exponential search|noprotcat=yes}}
This module includes a number of functions for dealing with Lua tables. It is a meta-module, meant to be called from other Lua modules, and should not be called directly from #invoke.
== Loading the module ==
To use any of the functions, first you must load the module.
<syntaxhighlight lang="lua">
local TableTools = require('Module:TableTools')
</syntaxhighlight>
== isPositiveInteger ==
<syntaxhighlight lang="lua">
TableTools.isPositiveInteger(value)
</syntaxhighlight>
Returns <code>true</code> if <code>''value''</code> is a positive integer, and <code>false</code> if not. Although it doesn't operate on tables, it is included here as it is useful for determining whether a given table key is in the array part or the hash part of a table.
== isNan ==
<syntaxhighlight lang="lua">
TableTools.isNan(value)
</syntaxhighlight>
Returns <code>true</code> if <code>''value''</code> is a [[NaN]] value, and <code>false</code> if not. Although it doesn't operate on tables, it is included here as it is useful for determining whether a value can be a valid table key. (Lua will generate an error if a NaN value is used as a table key.)
== shallowClone ==
<syntaxhighlight lang="lua">
TableTools.shallowClone(t)
</syntaxhighlight>
Returns a clone of a table. The value returned is a new table, but all subtables and functions are shared. Metamethods are respected, but the returned table will have no metatable of its own. If you want to make a new table with no shared subtables and with metatables transferred, you can use <code>[[mw:Extension:Scribunto/Lua reference manual#mw.clone|mw.clone]]</code> instead. If you want to make a new table with no shared subtables and without metatables transferred, use <code>[[#deepCopy|deepCopy]]</code> with the <code>noMetatable</code> option.
== removeDuplicates ==
<syntaxhighlight lang="lua">
TableTools.removeDuplicates(t)
</syntaxhighlight>
Removes duplicate values from an array. This function is only designed to work with standard arrays: keys that are not positive integers are ignored, as are all values after the first <code>nil</code> value. (For arrays containing <code>nil</code> values, you can use <code>[[#compressSparseArray|compressSparseArray]]</code> first.) The function tries to preserve the order of the array: the earliest non-unique value is kept, and all subsequent duplicate values are removed. For example, for the table {{code|code={5, 4, 4, 3, 4, 2, 2, 1}|lang=lua}} <code>removeDuplicates</code> will return {{code|code={5, 4, 3, 2, 1}|lang=lua}}.
== numKeys ==
<syntaxhighlight lang="lua">
TableTools.numKeys(t)
</syntaxhighlight>
Takes a table <code>''t''</code> and returns an array containing the numbers of any positive integer keys that have non-nil values, sorted in numerical order. For example, for the table {{code|code={'foo', nil, 'bar', 'baz', a = 'b'}|lang=lua}}, <code>numKeys</code> will return {{code|code={1, 3, 4}|lang=lua}}.
== affixNums ==
<syntaxhighlight lang="lua">
TableTools.affixNums(t, prefix, suffix)
</syntaxhighlight>
Takes a table <code>''t''</code> and returns an array containing the numbers of keys with the optional prefix <code>''prefix''</code> and the optional suffix <code>''suffix''</code>. For example, for the table {{code|code={a1 = 'foo', a3 = 'bar', a6 = 'baz'}|lang=lua}} and the prefix <code>'a'</code>, <code>affixNums</code> will return {{code|code={1, 3, 6}|lang=lua}}. All characters in <code>''prefix''</code> and <code>''suffix''</code> are interpreted literally.
== numData ==
<syntaxhighlight lang="lua">
TableTools.numData(t, compress)
</syntaxhighlight>
Given a table with keys like <code>"foo1"</code>, <code>"bar1"</code>, <code>"foo2"</code>, and <code>"baz2"</code>, returns a table of subtables in the format {{code|code={ [1] = {foo = 'text', bar = 'text'}, [2] = {foo = 'text', baz = 'text'} }|lang=lua}}. Keys that don't end with an integer are stored in a subtable named <code>"other"</code>. The compress option compresses the table so that it can be iterated over with <code>ipairs</code>.
== compressSparseArray ==
<syntaxhighlight lang="lua">
TableTools.compressSparseArray(t)
</syntaxhighlight>
Takes an array <code>''t''</code> with one or more nil values, and removes the nil values while preserving the order, so that the array can be safely traversed with <code>ipairs</code>. Any keys that are not positive integers are removed. For example, for the table {{code|code={1, nil, foo = 'bar', 3, 2}|lang=lua}}, <code>compressSparseArray</code> will return {{code|code={1, 3, 2}|lang=lua}}.
== sparseIpairs ==
<syntaxhighlight lang="lua">
TableTools.sparseIpairs(t)
</syntaxhighlight>
This is an iterator function for traversing a sparse array <code>''t''</code>. It is similar to <code>[[mw:Extension:Scribunto/Lua reference manual#ipairs|ipairs]]</code>, but will continue to iterate until the highest numerical key, whereas <code>ipairs</code> may stop after the first <code>nil</code> value. Any keys that are not positive integers are ignored.
Usually <code>sparseIpairs</code> is used in a generic <code>for</code> loop.
<syntaxhighlight lang="lua">
for i, v in TableTools.sparseIpairs(t) do
-- code block
end
</syntaxhighlight>
Note that <code>sparseIpairs</code> uses the <code>[[mw:Extension:Scribunto/Lua reference manual#pairs|pairs]]</code> function in its implementation. Although some table keys appear to be ignored, all table keys are accessed when it is run.
== size ==
<syntaxhighlight lang="lua">
TableTools.size(t)
</syntaxhighlight>
Finds the size of a key/value pair table. For example, for the table {{code|code={foo = 'foo', bar = 'bar'}|lang=lua}}, <code>size</code> will return <code>2</code>. The function will also work on arrays, but for arrays it is more efficient to use the <code>#</code> operator. Note that to find the table size, this function uses the <code>[[mw:Extension:Scribunto/Lua reference manual#pairs|pairs]]</code> function to iterate through all of the table keys.
== keysToList ==
<syntaxhighlight lang="lua">
TableTools.keysToList(t, keySort, checked)
</syntaxhighlight>
Returns a list of the keys in a table, sorted using either a default comparison function or a custom <code>''keySort''</code> function, which follows the same rules as the <code>comp</code> function supplied to <code>[[mw:Extension:Scribunto/Lua reference manual#table.sort|table.sort]]</code>. If <code>''keySort''</code> is <code>false</code>, no sorting is done. Set <code>''checked''</code> to <code>true</code> to skip the internal type checking.
== sortedPairs ==
<syntaxhighlight lang="lua">
TableTools.sortedPairs(t, keySort)
</syntaxhighlight>
Iterates through a table, with the keys sorted using the <code>keysToList</code> function. If there are only numerical keys, <code>sparseIpairs</code> is probably more efficient.
== isArray ==
<syntaxhighlight lang="lua">
TableTools.isArray(value)
</syntaxhighlight>
Returns <code>true</code> if <code>''value''</code> is a table and all keys are consecutive integers starting at 1.
== isArrayLike ==
<syntaxhighlight lang="lua">
TableTools.isArrayLike(value)
</syntaxhighlight>
Returns <code>true</code> if <code>''value''</code> is iterable and all keys are consecutive integers starting at 1.
== invert ==
<syntaxhighlight lang="lua">
TableTools.invert(arr)
</syntaxhighlight>
Transposes the keys and values in an array. For example, {{code|invert{ "a", "b", "c" }|lua}} yields {{code|code={ a=1, b=2, c=3 }|lang=lua}}.
== listToSet ==
<syntaxhighlight lang="lua">
TableTools.listToSet(arr)
</syntaxhighlight>
Creates a set from the array part of the table <code>''arr''</code>. Indexing the set by any of the values of the array returns <code>true</code>. For example, {{code|listToSet{ "a", "b", "c" }|lua}} yields {{code|code={ a=true, b=true, c=true }|lang=lua}}. See also [[Module:Lua set]] for more advanced ways to create a set.
== deepCopy ==
<syntaxhighlight lang="lua">
TableTools.deepCopy(orig, noMetatable, alreadySeen)
</syntaxhighlight>
Creates a copy of the table <code>''orig''</code>. As with <code>mw.clone</code>, all values that are not functions are duplicated and the identity of tables is preserved. If <code>''noMetatable''</code> is <code>true</code>, then the metatable (if any) is not copied. Can copy tables loaded with <code>mw.loadData</code>.
Similar to <code>mw.clone</code>, but <code>mw.clone</code> cannot copy tables loaded with <code>mw.loadData</code> and does not allow metatables <em>not</em> to be copied.
== sparseConcat ==
<syntaxhighlight lang="lua">
TableTools.sparseConcat(t, sep, i, j)
</syntaxhighlight>
Concatenates all values in the table that are indexed by a positive integer, in order. For example, {{code|sparseConcat{ "a", nil, "c", "d" }|lua}} yields {{code|"acd"|lua}} and {{code|sparseConcat{ nil, "b", "c", "d" }|lua}} yields {{code|"bcd"|lua}}.
== length ==
<syntaxhighlight lang="lua">
TableTools.length(t, prefix)
</syntaxhighlight>
Finds the length of an array or of a quasi-array with keys with an optional <code>''prefix''</code> such as "data1", "data2", etc. It uses an [[exponential search]] algorithm to find the length, so as to use as few table lookups as possible.
This algorithm is useful for arrays that use metatables (e.g. [[mw:Extension:Scribunto/Lua reference manual#frame.args|frame.args]]) and for quasi-arrays. For normal arrays, just use the [[mw:Extension:Scribunto/Lua reference manual#Length operator|# operator]], as it is implemented in [[C (programming language)|C]] and will be quicker.
== inArray ==
<syntaxhighlight lang="lua">
TableTools.inArray(arr, valueToFind)
</syntaxhighlight>
Returns <code>true</code> if <code>''valueToFind''</code> is a member of the array <code>''arr''</code>, and <code>false</code> otherwise.
<includeonly>{{Sandbox other||
[[Category:Lua metamodules|TableTools]]
}}</includeonly>
d24gw3mm5hz44tkbjy366kfmz1f1ir5
Ta̱mpi̱let:Code
10
1333
13253
2022-05-31T20:44:32Z
Kambai Akau
15
Created page with "{{#tag:syntaxhighlight|{{{code|{{{1}}}}}}|lang={{{lang|{{{2|text}}}}}}|class={{{class|}}}|id={{{id|}}}|style={{{style|}}}|inline=1}}<noinclude> {{documentation}} <!-- Add categories to the /doc subpage, interwikis to Wikidata, not here --> </noinclude>"
wikitext
text/x-wiki
{{#tag:syntaxhighlight|{{{code|{{{1}}}}}}|lang={{{lang|{{{2|text}}}}}}|class={{{class|}}}|id={{{id|}}}|style={{{style|}}}|inline=1}}<noinclude>
{{documentation}}
<!-- Add categories to the /doc subpage, interwikis to Wikidata, not here -->
</noinclude>
axmqgx8vb802btxgbw39a95fmariuis
Ri̱pobi̱lik Cek
0
1334
14775
13541
2022-07-06T16:26:35Z
TheHistoryOFEUROPE
268
wikitext
text/x-wiki
{{Country|area=34|capital=Praga|flag=Flag of the Czech Republic.svg|coa=Coat of arms of the Czech Republic.svg|image=EU-Czech Republic.svg|name=Ri̱pobi̱lik Cek|population=10 436 560|year=2011}}
A̱byin '''Ri̱pobi̱lik Cek''' ku '''Cekia''' yet a̱byin kya di̱ fam a̱byin A̱ka̱wa̱tyia̱ Yurop. [[Praga]] ja si̱ yet a̱keangtung nka ka ma̱ng a̱gba̱ndang a̱keang wu a̱ swak mi̱ shi a̱ni, a̱wot [[Brno]], Karlovy Vary ma̱ng Ostrava si̱ khwi lilyim.
g2oi783gom9gm6llcyoby6dhyvdwnb9
Ta̱mpi̱let:Fmbox
10
1335
13543
2022-06-01T15:40:12Z
Kambai Akau
15
Created page with "{{#invoke:Message box|fmbox}}<noinclude> {{documentation}} <!-- Add categories and interwikis to the /doc subpage, not here! --> </noinclude>"
wikitext
text/x-wiki
{{#invoke:Message box|fmbox}}<noinclude>
{{documentation}}
<!-- Add categories and interwikis to the /doc subpage, not here! -->
</noinclude>
q4qfnrd9je1n71bknyj9gdhs02g2rws
Module:Message box/configuration
828
1336
13544
2022-06-01T15:42:40Z
Kambai Akau
15
Created page with "-------------------------------------------------------------------------------- -- Message box configuration -- -- -- -- This module contains configuration data for [[Module:Message box]]. -- -------------------------------------------------------------------------------- return { ambox = { types = { speedy = { class = 'ambox-spee..."
Scribunto
text/plain
--------------------------------------------------------------------------------
-- Message box configuration --
-- --
-- This module contains configuration data for [[Module:Message box]]. --
--------------------------------------------------------------------------------
return {
ambox = {
types = {
speedy = {
class = 'ambox-speedy',
image = 'Ambox warning pn.svg'
},
delete = {
class = 'ambox-delete',
image = 'Ambox warning pn.svg'
},
content = {
class = 'ambox-content',
image = 'Ambox important.svg'
},
style = {
class = 'ambox-style',
image = 'Edit-clear.svg'
},
move = {
class = 'ambox-move',
image = 'Merge-split-transwiki default.svg'
},
protection = {
class = 'ambox-protection',
image = 'Semi-protection-shackle-keyhole.svg'
},
notice = {
class = 'ambox-notice',
image = 'Information icon4.svg'
}
},
default = 'notice',
allowBlankParams = {'talk', 'sect', 'date', 'issue', 'fix', 'subst', 'hidden'},
allowSmall = true,
smallParam = 'left',
smallClass = 'mbox-small-left',
substCheck = true,
classes = {'metadata', 'ambox'},
imageEmptyCell = true,
imageCheckBlank = true,
imageSmallSize = '20x20px',
imageCellDiv = true,
useCollapsibleTextFields = true,
imageRightNone = true,
sectionDefault = 'article',
allowMainspaceCategories = true,
templateCategory = 'Article message templates',
templateCategoryRequireName = true,
templateErrorCategory = 'Article message templates with missing parameters',
templateErrorParamsToCheck = {'issue', 'fix', 'subst'},
removalNotice = '<small>[[Help:Maintenance template removal|Learn how and when to remove this template message]]</small>'
},
cmbox = {
types = {
speedy = {
class = 'cmbox-speedy',
image = 'Ambox warning pn.svg'
},
delete = {
class = 'cmbox-delete',
image = 'Ambox warning pn.svg'
},
content = {
class = 'cmbox-content',
image = 'Ambox important.svg'
},
style = {
class = 'cmbox-style',
image = 'Edit-clear.svg'
},
move = {
class = 'cmbox-move',
image = 'Merge-split-transwiki default.svg'
},
protection = {
class = 'cmbox-protection',
image = 'Semi-protection-shackle-keyhole.svg'
},
notice = {
class = 'cmbox-notice',
image = 'Information icon4.svg'
}
},
default = 'notice',
showInvalidTypeError = true,
classes = {'cmbox'},
imageEmptyCell = true
},
fmbox = {
types = {
warning = {
class = 'fmbox-warning',
image = 'Ambox warning pn.svg'
},
editnotice = {
class = 'fmbox-editnotice',
image = 'Information icon4.svg'
},
system = {
class = 'fmbox-system',
image = 'Information icon4.svg'
}
},
default = 'system',
showInvalidTypeError = true,
classes = {'fmbox'},
imageEmptyCell = false,
imageRightNone = false
},
imbox = {
types = {
speedy = {
class = 'imbox-speedy',
image = 'Ambox warning pn.svg'
},
delete = {
class = 'imbox-delete',
image = 'Ambox warning pn.svg'
},
content = {
class = 'imbox-content',
image = 'Ambox important.svg'
},
style = {
class = 'imbox-style',
image = 'Edit-clear.svg'
},
move = {
class = 'imbox-move',
image = 'Merge-split-transwiki default.svg'
},
protection = {
class = 'imbox-protection',
image = 'Semi-protection-shackle-keyhole.svg'
},
license = {
class = 'imbox-license licensetpl',
image = 'Imbox license.png' -- @todo We need an SVG version of this
},
featured = {
class = 'imbox-featured',
image = 'Cscr-featured.svg'
},
notice = {
class = 'imbox-notice',
image = 'Information icon4.svg'
}
},
default = 'notice',
showInvalidTypeError = true,
classes = {'imbox'},
imageEmptyCell = true,
below = true,
templateCategory = 'File message boxes'
},
ombox = {
types = {
speedy = {
class = 'ombox-speedy',
image = 'Ambox warning pn.svg'
},
delete = {
class = 'ombox-delete',
image = 'Ambox warning pn.svg'
},
content = {
class = 'ombox-content',
image = 'Ambox important.svg'
},
style = {
class = 'ombox-style',
image = 'Edit-clear.svg'
},
move = {
class = 'ombox-move',
image = 'Merge-split-transwiki default.svg'
},
protection = {
class = 'ombox-protection',
image = 'Semi-protection-shackle-keyhole.svg'
},
notice = {
class = 'ombox-notice',
image = 'Information icon4.svg'
}
},
default = 'notice',
showInvalidTypeError = true,
classes = {'ombox'},
allowSmall = true,
imageEmptyCell = true,
imageRightNone = true
},
tmbox = {
types = {
speedy = {
class = 'tmbox-speedy',
image = 'Ambox warning pn.svg'
},
delete = {
class = 'tmbox-delete',
image = 'Ambox warning pn.svg'
},
content = {
class = 'tmbox-content',
image = 'Ambox important.svg'
},
style = {
class = 'tmbox-style',
image = 'Edit-clear.svg'
},
move = {
class = 'tmbox-move',
image = 'Merge-split-transwiki default.svg'
},
protection = {
class = 'tmbox-protection',
image = 'Semi-protection-shackle-keyhole.svg'
},
notice = {
class = 'tmbox-notice',
image = 'Information icon4.svg'
}
},
default = 'notice',
showInvalidTypeError = true,
classes = {'tmbox'},
allowSmall = true,
imageRightNone = true,
imageEmptyCell = true,
imageEmptyCellStyle = true,
templateCategory = 'Talk message boxes'
}
}
qxbcfnckq0wxqjnore5cevop919esz9
Module:Message box/configuration/doc
828
1337
13545
2022-06-01T15:43:40Z
Kambai Akau
15
Created page with "{{Used in system}} {{Module rating|protected}} {{#ifeq:{{PAGENAME}}|Message box/configuration/sandbox| {{Mbox|small=yes|type=notice|text=See related module: * [[Module:Message box]] ([[Module:Message box/sandbox|sandbox]]) }} }}"
wikitext
text/x-wiki
{{Used in system}}
{{Module rating|protected}}
{{#ifeq:{{PAGENAME}}|Message box/configuration/sandbox|
{{Mbox|small=yes|type=notice|text=See related module:
* [[Module:Message box]] ([[Module:Message box/sandbox|sandbox]])
}}
}}
fj3zeas2cqac302rr9ff1x8xdr4obio
Module:Transclusion count
828
1338
13546
2022-06-01T15:45:26Z
Kambai Akau
15
Created page with "local p = {} function p.fetch(frame) local template = nil local return_value = nil -- Use demo parameter if it exists, otherswise use current template name local namespace = mw.title.getCurrentTitle().namespace if frame.args["demo"] and frame.args["demo"] ~= "" then template = frame.args["demo"] elseif namespace == 10 then -- Template namespace template = mw.title.getCurrentTitle().text elseif namespace == 828 then -- Module namespace template = (mw.site.n..."
Scribunto
text/plain
local p = {}
function p.fetch(frame)
local template = nil
local return_value = nil
-- Use demo parameter if it exists, otherswise use current template name
local namespace = mw.title.getCurrentTitle().namespace
if frame.args["demo"] and frame.args["demo"] ~= "" then
template = frame.args["demo"]
elseif namespace == 10 then -- Template namespace
template = mw.title.getCurrentTitle().text
elseif namespace == 828 then -- Module namespace
template = (mw.site.namespaces[828].name .. ":" .. mw.title.getCurrentTitle().text)
end
-- If in template or module namespace, look up count in /data
if template ~= nil then
namespace = mw.title.new(template, "Template").namespace
if namespace == 10 or namespace == 828 then
template = mw.ustring.gsub(template, "/doc$", "") -- strip /doc from end
local index = mw.ustring.sub(mw.title.new(template).text,1,1)
local status, data = pcall(function ()
return(mw.loadData('Module:Transclusion_count/data/' .. (mw.ustring.find(index, "%a") and index or "other")))
end)
if status then
return_value = tonumber(data[mw.ustring.gsub(template, " ", "_")])
end
end
end
-- If database value doesn't exist, use value passed to template
if return_value == nil and frame.args[1] ~= nil then
local arg1=mw.ustring.match(frame.args[1], '[%d,]+')
if arg1 and arg1 ~= '' then
return_value = tonumber(frame:callParserFunction('formatnum', arg1, 'R'))
end
end
return return_value
end
-- Tabulate this data for [[Wikipedia:Database reports/Templates transcluded on the most pages]]
function p.tabulate(frame)
local list = {}
for i = 65, 91 do
local data = mw.loadData('Module:Transclusion count/data/' .. ((i == 91) and 'other' or string.char(i)))
for name, count in pairs(data) do
table.insert(list, {mw.title.new(name, "Template").fullText, count})
end
end
table.sort(list, function(a, b)
return (a[2] == b[2]) and (a[1] < b[1]) or (a[2] > b[2])
end)
local lang = mw.getContentLanguage();
for i = 1, #list do
list[i] = ('|-\n| %d || [[%s]] || %s\n'):format(i, list[i][1]:gsub('_', ' '), lang:formatNum(list[i][2]))
end
return table.concat(list)
end
return p
i4hf4ogs2jqprtn91iinnikcxeyynd9
Module:Transclusion count/doc
828
1339
13547
2022-06-01T15:46:23Z
Kambai Akau
15
Created page with "{{Module rating |beta}} Fetches usage data for highly-transcluded templates. Uses bot-updated values from [[Special:PrefixIndex/Module:Transclusion_count/data/|subpages of Module:Transclusion_count/data/]] when available. == Usage == <code><nowiki>{{</nowiki>#invoke:{{BASEPAGENAME}}|fetch|''number of transclusions''|''use + notation''|all-pages=|demo=}}</code> * ''<code>number of transclusions</code>'': is a static number of times the template has been transcluded, t..."
wikitext
text/x-wiki
{{Module rating |beta}}
Fetches usage data for highly-transcluded templates. Uses bot-updated values from [[Special:PrefixIndex/Module:Transclusion_count/data/|subpages of Module:Transclusion_count/data/]] when available.
== Usage ==
<code><nowiki>{{</nowiki>#invoke:{{BASEPAGENAME}}|fetch|''number of transclusions''|''use + notation''|all-pages=|demo=}}</code>
* ''<code>number of transclusions</code>'': is a static number of times the template has been transcluded, to use when values cannot be read from the database. This value will be ignored if transclusion data is available for the current page.
* <code>demo=''Template_name''</code>: will use the transclusion count for the template at [[Template:Template_name]] instead of detecting what template it is being used on. Capitalization must exactly match the value used in [[Special:PrefixIndex/Module:Transclusion_count/data/]].
<code><nowiki>{{</nowiki>#invoke:{{BASEPAGENAME}}|tabulate}}</code>
* Used to generate [[Wikipedia:Database reports/Templates transcluded on the most pages]].
<includeonly>{{#ifeq:{{SUBPAGENAME}}|sandbox | |
<!-- Categories below this line, please; interwikis at Wikidata -->
}}</includeonly>
qgcz4igb664oq6j54b5u4nwr763cfzb
Ta̱mpi̱let:Infobox name
10
1340
13548
2022-06-01T15:49:30Z
Kambai Akau
15
Created page with "<noinclude>{{Redirect|Template:Family name|the hatnote template which explains ethnic surnames|Template:Family name hatnote}}</noinclude><includeonly>{{Infobox | headerstyle = background:#ADD8E6 | title = {{{name|{{PAGENAMEBASE}}}}} | image = {{#invoke:InfoboxImage|InfoboxImage|image={{{image|}}}|size={{{image_size|}}}}} | caption = {{{caption|}}} | label1 = Romani{{#if:{{{romanization|}}}|z|s}}ation | data1 = {{{romanization|{{{romanisation|}}}}}}..."
wikitext
text/x-wiki
<noinclude>{{Redirect|Template:Family name|the hatnote template which explains ethnic surnames|Template:Family name hatnote}}</noinclude><includeonly>{{Infobox
| headerstyle = background:#ADD8E6
| title = {{{name|{{PAGENAMEBASE}}}}}
| image = {{#invoke:InfoboxImage|InfoboxImage|image={{{image|}}}|size={{{image_size|}}}}}
| caption = {{{caption|}}}
| label1 = Romani{{#if:{{{romanization|}}}|z|s}}ation
| data1 = {{{romanization|{{{romanisation|}}}}}}
| label2 = Pronunciation
| data2 = {{{pronunciation|}}}
| label3 = Gender
| data3 = {{{gender|}}}
| label4 = Language(s)
| data4 = {{comma separated entries<!--
-->|{{#if:{{{language|}}}|{{#ifexist:{{{language}}} language|[[{{{language}}} language|{{{language}}}]]|{{{language}}} }} }}<!--
-->|{{#if:{{{language2|}}}|{{#ifexist:{{{language2}}} language|[[{{{language2}}} language|{{{language2}}}]]|{{{language2}}} }} }}<!--
-->|{{#if:{{{language3|}}}|{{#ifexist:{{{language3}}} language|[[{{{language3}}} language|{{{language3}}}]]|{{{language3}}} }} }}<!--
-->}}
| label5 = [[Name day]]
| data5 = {{{name day|{{{nameday|}}}}}}
| header6 = {{#if:{{{masculine|}}}{{{feminine|}}}|Other gender}}
| label7 = Masculine
| data7 = {{{masculine|}}}
| label8 = Feminine
| data8 = {{{feminine|}}}
| header9 = {{#if:{{{languageorigin|}}}{{{origin|}}}{{{derivation|}}}{{{meaning|}}}{{{region|}}}{{{motto|}}}|Origin}}
| label10 = Language(s)
| data10 = {{{languageorigin|}}}
| label11 = Word/name
| data11 = {{{origin|}}}
| label12 = Derivation
| data12 = {{{derivation|}}}
| label13 = Meaning
| data13 = {{{meaning|}}}
| label14 = Region of origin
| data14 = {{{region|}}}
| label15 = Motto
| data15 = {{{motto|}}}
| header16 = {{#if:{{{alternative spelling|}}}{{{variant forms|{{{variant|}}}}}}{{{short forms|{{{shortform|}}}}}}{{{nickname|}}}{{{petname|}}}{{{cognate|}}}{{{anglicisation|}}}{{{derivative|}}}{{{derived|}}}{{{usage|}}}{{{related names|}}}{{{see also|{{{seealso|}}}}}}|Other names}}
| label17 = Alternative spelling
| data17 = {{{alternative spelling|}}}
| label18 = Variant form(s)
| data18 = {{{variant forms|{{{variant|}}}}}}
| label19 = Short form(s)
| data19 = {{{short forms|{{{shortform|}}}}}}
| label20 = Nickname(s)
| data20 = {{{nickname|}}}
| label21 = [[Pet name|Pet form]](s)
| data21 = {{{petname|}}}
| label22 = [[Cognate]](s)
| data22 = {{{cognate|}}}
| label23 = [[Anglicisation of names|Anglici{{#if:{{{anglicization|}}}|z|s}}ation]](s)
| data23 = {{{anglicization|{{{anglicisation|}}}}}}
| label24 = Derivative(s)
| data24 = {{{derivative|}}}
| label25 = Derived
| data25 = {{{derived|}}}
| label26 = Usage
| data26 = {{{usage|}}}
| label27 = Related names
| data27 = {{{related names|}}}
| label28 = See also
| data28 = {{{see also|{{{seealso|}}}}}}
| label29 = Popularity
| data29 = {{#if:{{{popularity|}}}|see [[List of most popular given names|popular names]]}}
| belowstyle = border-top: #a2a9b1 1px solid;
| below = {{{footnotes|}}}
}}</includeonly>{{#invoke:Check for unknown parameters|check|unknown={{main other|[[Category:Pages using infobox name with unknown parameters|_VALUE_{{PAGENAME}}]]}}|preview=Page using [[Template:Infobox name]] with unknown parameter "_VALUE_"|ignoreblank=y| alternative spelling | anglicisation | caption | cognate | derivation | derivative | derived | feminine | footnotes | gender | image | image_size | language | language2 | language3 | languageorigin | meaning | name | name day | nameday | nickname | origin | petname | popularity | pronunciation | region | related names | see also | seealso | short forms | shortform | usage | variant | variant forms }}<noinclude>
{{Documentation}}
</noinclude>
ne47znbb25xn3voeezn6rspsworshwe
Module:Check for unknown parameters
828
1341
13549
2022-06-01T16:33:10Z
Kambai Akau
15
Created page with "-- This module may be used to compare the arguments passed to the parent -- with a list of arguments, returning a specified result if an argument is -- not on the list local p = {} local function trim(s) return s:match('^%s*(.-)%s*$') end local function isnotempty(s) return s and s:match('%S') end local function clean(text) -- Return text cleaned for display and truncated if too long. -- Strip markers are replaced with dummy text representing the original wikitext..."
Scribunto
text/plain
-- This module may be used to compare the arguments passed to the parent
-- with a list of arguments, returning a specified result if an argument is
-- not on the list
local p = {}
local function trim(s)
return s:match('^%s*(.-)%s*$')
end
local function isnotempty(s)
return s and s:match('%S')
end
local function clean(text)
-- Return text cleaned for display and truncated if too long.
-- Strip markers are replaced with dummy text representing the original wikitext.
local pos, truncated
local function truncate(text)
if truncated then
return ''
end
if mw.ustring.len(text) > 25 then
truncated = true
text = mw.ustring.sub(text, 1, 25) .. '...'
end
return mw.text.nowiki(text)
end
local parts = {}
for before, tag, remainder in text:gmatch('([^\127]*)\127[^\127]*%-(%l+)%-[^\127]*\127()') do
pos = remainder
table.insert(parts, truncate(before) .. '<' .. tag .. '>...</' .. tag .. '>')
end
table.insert(parts, truncate(text:sub(pos or 1)))
return table.concat(parts)
end
function p._check(args, pargs)
if type(args) ~= "table" or type(pargs) ~= "table" then
-- TODO: error handling
return
end
-- create the list of known args, regular expressions, and the return string
local knownargs = {}
local regexps = {}
for k, v in pairs(args) do
if type(k) == 'number' then
v = trim(v)
knownargs[v] = 1
elseif k:find('^regexp[1-9][0-9]*$') then
table.insert(regexps, '^' .. v .. '$')
end
end
-- loop over the parent args, and make sure they are on the list
local ignoreblank = isnotempty(args['ignoreblank'])
local showblankpos = isnotempty(args['showblankpositional'])
local values = {}
for k, v in pairs(pargs) do
if type(k) == 'string' and knownargs[k] == nil then
local knownflag = false
for _, regexp in ipairs(regexps) do
if mw.ustring.match(k, regexp) then
knownflag = true
break
end
end
if not knownflag and ( not ignoreblank or isnotempty(v) ) then
table.insert(values, clean(k))
end
elseif type(k) == 'number' and knownargs[tostring(k)] == nil then
local knownflag = false
for _, regexp in ipairs(regexps) do
if mw.ustring.match(tostring(k), regexp) then
knownflag = true
break
end
end
if not knownflag and ( showblankpos or isnotempty(v) ) then
table.insert(values, k .. ' = ' .. clean(v))
end
end
end
-- add results to the output tables
local res = {}
if #values > 0 then
local unknown_text = args['unknown'] or 'Found _VALUE_, '
if mw.getCurrentFrame():preprocess( "{{REVISIONID}}" ) == "" then
local preview_text = args['preview']
if isnotempty(preview_text) then
preview_text = require('Module:If preview')._warning({preview_text})
elseif preview == nil then
preview_text = unknown_text
end
unknown_text = preview_text
end
for _, v in pairs(values) do
-- Fix odd bug for | = which gets stripped to the empty string and
-- breaks category links
if v == '' then v = ' ' end
-- avoid error with v = 'example%2' ("invalid capture index")
local r = unknown_text:gsub('_VALUE_', {_VALUE_ = v})
table.insert(res, r)
end
end
return table.concat(res)
end
function p.check(frame)
local args = frame.args
local pargs = frame:getParent().args
return p._check(args, pargs)
end
return p
h9rooqvu67gk81cpbiswol48lpmwmym
Module:Check for unknown parameters/doc
828
1342
13550
2022-06-01T16:35:39Z
Kambai Akau
15
Created page with "{{used in system|in [[MediaWiki:Abusefilter-warning-DS]]}} {{module rating|p}} {{Lua|Module:If preview|noprotcat=yes}} This module may be appended to a template to check for uses of unknown parameters. == Usage == === Basic usage === <pre> {{#invoke:check for unknown parameters|check |unknown=[[Category:Some tracking category]] |arg1|arg2|arg3|argN}} </pre> or to sort the entries in the tracking category by parameter with a preview error message <pre> {{#invoke:check f..."
wikitext
text/x-wiki
{{used in system|in [[MediaWiki:Abusefilter-warning-DS]]}}
{{module rating|p}}
{{Lua|Module:If preview|noprotcat=yes}}
This module may be appended to a template to check for uses of unknown parameters.
== Usage ==
=== Basic usage ===
<pre>
{{#invoke:check for unknown parameters|check
|unknown=[[Category:Some tracking category]]
|arg1|arg2|arg3|argN}}
</pre>
or to sort the entries in the tracking category by parameter with a preview error message
<pre>
{{#invoke:check for unknown parameters|check
|unknown=[[Category:Some tracking category|_VALUE_]]
|preview=unknown parameter "_VALUE_"
|arg1|arg2|...|argN}}
</pre>
or for an explicit red error message
<pre>
{{#invoke:check for unknown parameters|check
|unknown=<span class="error">Sorry, I don't recognize _VALUE_</span>
|arg1|arg2|...|argN}}
</pre>
Here, <code>arg1</code>, <code>arg2</code>, ..., <code>argN</code>, are the known parameters. Unnamed (positional) parameters can be added too: <code><nowiki>|1|2|argname1|argname2|...</nowiki></code>. Any parameter which is used, but not on this list, will cause the module to return whatever is passed with the <code>unknown</code> parameter. The <code>_VALUE_</code> keyword, if used, will be changed to the name of the parameter. This is useful for either sorting the entries in a tracking category, or for provide more explicit information.
By default, the module makes no distinction between a defined-but-blank parameter and a non-blank parameter. That is, both unlisted {{para|foo|x}} and {{para|foo}} are reported. To only track non-blank parameters use {{para|ignoreblank|1}}.
By default, the module ignores blank positional parameters. That is, an unlisted {{para|2}} is ignored. To ''include'' blank positional parameters in the tracking use {{para|showblankpositional|1}}.
=== Lua patterns ===
This module supports [[:mw:Extension:Scribunto/Lua reference manual#Patterns|Lua patterns]] (similar to [[regular expression]]s), which are useful when there are many known parameters which use a systematic pattern. For example, [[template:infobox3cols]] uses
<pre>
| regexp1 = header[%d][%d]*
| regexp2 = label[%d][%d]*
| regexp3 = data[%d][%d]*[abc]?
| regexp4 = class[%d][%d]*[abc]?
| regexp5 = rowclass[%d][%d]*
| regexp6 = rowstyle[%d][%d]*
| regexp7 = rowcellstyle[%d][%d]*
</pre>
to match all parameters of the form <code>headerNUM</code>, <code>labelNUM</code>, <code>dataNUM</code>, <code>dataNUMa</code>, <code>dataNUMb</code>, <code>dataNUMc</code>, ..., <code>rowcellstyleNUM</code>, where NUM is a string of digits.
== Example ==
<pre>
{{Infobox
| above = {{{name|}}}
| label1 = Height
| data1 = {{{height|}}}
| label2 = Weight
| data2 = {{{weight|}}}
| label3 = Website
| data3 = {{{website|}}}
}}<!--
end infobox, start tracking
-->{{#invoke:Check for unknown parameters|check
| unknown = {{main other|[[Category:Some tracking category|_VALUE_]]}}
| preview = unknown parameter "_VALUE_"
| name
| height | weight
| website
}}
</pre>
==See also==
* {{clc|Unknown parameters}} (category page can have header {{tl|Unknown parameters category}})
* [[Module:Check for deprecated parameters]] – similar module that checks for deprecated parameters
* [[Module:Check for clobbered parameters]] – module that checks for conflicting parameters
* [[Module:TemplatePar]] – similar function (originally from dewiki)
* [[Template:Parameters]] and [[Module:Parameters]] – generates a list of parameter names for a given template
* [[Project:TemplateData]] based template parameter validation
* [[Module:Parameter validation]] checks a lot more
* [[User:Bamyers99/TemplateParametersTool]] - A tool for checking usage of template parameters
<includeonly>{{sandbox other||
<!-- Categories go here and interwikis go in Wikidata. -->
[[Category:Modules that add a tracking category]]
}}</includeonly>
5tnfdioibhgrighempan93jkgs03ru8
Ta̱mpi̱let:Para
10
1343
13551
2022-06-01T16:51:35Z
Kambai Akau
15
Created page with "<code class="nowrap" style="{{SAFESUBST:<noinclude />#if:{{{plain|}}}|border: none; background-color: inherit;}} {{SAFESUBST:<noinclude />#if:{{{plain|}}}{{{mxt|}}}{{{green|}}}{{{!mxt|}}}{{{red|}}}|color: {{SAFESUBST:<noinclude />#if:{{{mxt|}}}{{{green|}}}|#006400|{{SAFESUBST:<noinclude />#if:{{{!mxt|}}}{{{red|}}}|#8B0000|inherit}}}};}} {{SAFESUBST:<noinclude />#if:{{{style|}}}|{{{style}}}}}">|{{SAFESUBST:<noinclude />#if:{{{1|}}}|{{{1}}}=}}{{{2|}}}</code><noinc..."
wikitext
text/x-wiki
<code class="nowrap" style="{{SAFESUBST:<noinclude />#if:{{{plain|}}}|border: none; background-color: inherit;}} {{SAFESUBST:<noinclude />#if:{{{plain|}}}{{{mxt|}}}{{{green|}}}{{{!mxt|}}}{{{red|}}}|color: {{SAFESUBST:<noinclude />#if:{{{mxt|}}}{{{green|}}}|#006400|{{SAFESUBST:<noinclude />#if:{{{!mxt|}}}{{{red|}}}|#8B0000|inherit}}}};}} {{SAFESUBST:<noinclude />#if:{{{style|}}}|{{{style}}}}}">|{{SAFESUBST:<noinclude />#if:{{{1|}}}|{{{1}}}=}}{{{2|}}}</code><noinclude>
{{Documentation}}
<!--Categories and interwikis go near the bottom of the /doc subpage.-->
</noinclude>
hmpn0o2dcw0l4w04g6qz1zzyrrqvv3i
Ta̱mpi̱let:Lilyem Wukipedia/styles.css
10
1344
13553
2022-06-01T17:00:33Z
Kambai Akau
15
Created page with "/* {{pp|small=yes}} */ .wikipedia-languages-complete { font-weight: bold; } .wikipedia-languages ul { margin-left: 0; } .wikipedia-languages ul a { white-space: nowrap; } .wikipedia-languages > ul { list-style: none; text-align: center; clear: both; } .wikipedia-languages-count-container { width: 90%; display: flex; justify-content: center; padding-top: 1em; margin: 0 auto; } .wikipedia-languages-prettybars { width: 100%; height: 1px; margin: 0.5em 0;..."
sanitized-css
text/css
/* {{pp|small=yes}} */
.wikipedia-languages-complete {
font-weight: bold;
}
.wikipedia-languages ul {
margin-left: 0;
}
.wikipedia-languages ul a {
white-space: nowrap;
}
.wikipedia-languages > ul {
list-style: none;
text-align: center;
clear: both;
}
.wikipedia-languages-count-container {
width: 90%;
display: flex;
justify-content: center;
padding-top: 1em;
margin: 0 auto;
}
.wikipedia-languages-prettybars {
width: 100%;
height: 1px;
margin: 0.5em 0;
background-color: #c8ccd1;
flex-shrink: 1;
align-self: center;
}
.wikipedia-languages-count {
padding: 0 1em;
white-space: nowrap;
}
qm3o11a2sjcofwpydwjk43jyii5o5qk
A̱tuk Mam Sa̱t (Naijeriya)
0
1345
13561
2022-06-01T17:42:46Z
Kambai Akau
15
Kambai Akau shyei peji [[A̱tuk Mam Sa̱t (Naijeriya)]] nat [[Mam Sa̱t (Naijeriya)]]: Ku lan tyia̱ a̱ni.
wikitext
text/x-wiki
#REDIRECT [[Mam Sa̱t (Naijeriya)]]
74ytl3psigsqmcgpb3g5ogzzzrw3x3p
Sa:Nyiá̱ Zwat Swak
14
1347
13568
2022-06-01T17:49:20Z
Kambai Akau
15
Created blank page
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Ta̱mpi̱let:Lang
10
1348
13569
2022-06-01T17:56:09Z
Kambai Akau
15
Created page with "<includeonly>{{#invoke:Lang|{{{fn|lang}}}}}</includeonly><noinclude> {{Documentation}} </noinclude>"
wikitext
text/x-wiki
<includeonly>{{#invoke:Lang|{{{fn|lang}}}}}</includeonly><noinclude>
{{Documentation}}
</noinclude>
rpiilobim1eh22a50sfaaeqssz4iwxu
Module:Lang
828
1349
13570
2022-06-01T17:58:30Z
Kambai Akau
15
Created page with "--[=[ Lua support for the {{lang}}, {{lang-xx}}, and {{transl}} templates and replacement of various supporting templates. ]=] require('Module:No globals'); local getArgs = require ('Module:Arguments').getArgs; local unicode = require ("Module:Unicode data"); -- for is_latin() and is_rtl() local yesno = require ('Module:Yesno'); local lang_data = mw.loadData ('Module:Lang/data'); -- language name override and transliteration tool-tip tables local lang..."
Scribunto
text/plain
--[=[
Lua support for the {{lang}}, {{lang-xx}}, and {{transl}} templates and replacement of various supporting templates.
]=]
require('Module:No globals');
local getArgs = require ('Module:Arguments').getArgs;
local unicode = require ("Module:Unicode data"); -- for is_latin() and is_rtl()
local yesno = require ('Module:Yesno');
local lang_data = mw.loadData ('Module:Lang/data'); -- language name override and transliteration tool-tip tables
local lang_name_table = lang_data.lang_name_table; -- language codes, names, regions, scripts, suppressed scripts
local lang_table = lang_data.lang_name_table.lang;
local lang_dep_table = lang_data.lang_name_table.lang_dep;
local script_table = lang_data.lang_name_table.script;
local region_table = lang_data.lang_name_table.region;
local variant_table = lang_data.lang_name_table.variant;
local suppressed_table = lang_data.lang_name_table.suppressed;
local override_table = lang_data.override;
local synonym_table = mw.loadData ('Module:Lang/ISO 639 synonyms'); -- ISO 639-2/639-2T code translation to 639-1 code
local namespace = mw.title.getCurrentTitle().namespace; -- used for categorization
local content_lang = mw.language.getContentLanguage();
local this_wiki_lang_tag = content_lang.code; -- get this wiki's language tag
local this_wiki_lang_dir = content_lang:getDir(); -- get this wiki's language direction
local initial_style_state; -- set by lang_xx_normal() and lang_xx_italic()
local maint_cats = {}; -- maintenance categories go here
local maint_msgs = {}; -- and their messages go here
--[[--------------------------< I S _ S E T >------------------------------------------------------------------
Returns true if argument is set; false otherwise. Argument is 'set' when it exists (not nil) or when it is not an empty string.
]]
local function is_set( var )
return not (var == nil or var == '');
end
--[[--------------------------< I N V E R T _ I T A L I C S >-------------------------------------------------
This function attempts to invert the italic markup a args.text by adding/removing leading/trailing italic markup
in args.text. Like |italic=unset, |italic=invert disables automatic italic markup. Individual leading/trailing
apostrophes are converted to their html numeric entity equivalent so that the new italic markup doesn't become
bold markup inadvertently.
Leading and trailing wiki markup is extracted from args.text into separate table elements. Addition, removal,
replacement of wiki markup is handled by a string.gsub() replacement table operating only on these separate elements.
In the string.gsub() matching pattern, '.*' matches empty string as well as the three expected wiki markup patterns.
This function expects that markup in args.text is complete and correct; if it is not, oddness may result.
]]
local function invert_italics (source)
local invert_pattern_table = { -- leading/trailing markup add/remove/replace patterns
[""]="\'\'", -- empty string becomes italic markup
["\'\'"]="", -- italic markup becomes empty string
["\'\'\'"]="\'\'\'\'\'", -- bold becomes bold italic
["\'\'\'\'\'"]="\'\'\'", -- bold italic become bold
};
local seg = {};
source = source:gsub ("%f[\']\'%f[^\']", '''); -- protect single quote marks from being interpreted as bold markup
seg[1] = source:match ('^(\'\'+%f[^\']).+') or ''; -- get leading markup, if any; ignore single quote
seg[3] = source:match ('.+(%f[\']\'\'+)$') or ''; -- get trailing markup, if any; ignore single quote
if '' ~= seg[1] and '' ~= seg[3] then -- extract the 'text'
seg[2] = source:match ('^\'\'+%f[^\'](.+)%f[\']\'\'+$') -- from between leading and trailing markup
elseif '' ~= seg[1] then
seg[2] = source:match ('^\'\'+%f[^\'](.+)') -- following leading markup
elseif '' ~= seg[3] then
seg[2] = source:match ('(.+)%f[\']\'\'+$') -- preceding trailing markup
else
seg[2] = source -- when there is no markup
end
seg[1] = invert_pattern_table[seg[1]] or seg[1]; -- replace leading markup according to pattern table
seg[3] = invert_pattern_table[seg[3]] or seg[3]; -- replace leading markup according to pattern table
return table.concat (seg); -- put it all back together and done
end
--[[--------------------------< V A L I D A T E _ I T A L I C >------------------------------------------------
validates |italic= or |italics= assigned values.
When |italic= is set and has an acceptible assigned value, return the matching css font-style property value or,
for the special case 'default', return nil.
When |italic= is not set, or has an unacceptible assigned value, return nil and a nil error message.
When both |italic= and |italics= are set, returns nil and a 'conflicting' error message.
The return value nil causes the calling lang, lang_xx, or transl function to set args.italic according to the template's
defined default ('inherit' for {{lang}}, 'inherit' or 'italic' for {{lang-xx}} depending on
the individual template's requirements, 'italic' for {{transl}}) or to the value appropriate to |script=, if set ({{lang}}
and {{lang-xx}} only).
Accepted values and the values that this function returns are are:
nil - when |italic= absent or not set; returns nil
default - for completeness, should rarely if ever be used; returns nil
yes - force args.text to be rendered in italic font; returns 'italic'
no - force args.text to be rendered in normal font; returns 'normal'
unset - disables font control so that font-style applied to text is dictated by markup inside or outside the template; returns 'inherit'
invert - disables font control so that font-style applied to text is dictated by markup outside or inverted inside the template; returns 'invert'
]]
local function validate_italic (args)
local properties = {['yes'] = 'italic', ['no'] = 'normal', ['unset'] = 'inherit', ['invert'] = 'invert', ['default'] = nil};
local count = 0
for _, arg in pairs {'italic', 'italics', 'i'} do
if args[arg] then
count = count + 1
end
end
if count > 1 then -- return nil and an error message if more than one is set
return nil, 'only one of |italic=, |italics=, or |i= can be specified';
end
return properties[args.italic or args.italics or args.i], nil; -- return an appropriate value and a nil error message
end
--[=[--------------------------< V A L I D A T E _ C A T _ A R G S >----------------------------------------------------------
Default behavior of the {{lang}} and {{lang-xx}} templates is to add categorization when the templates are used in mainspace.
This default functionality may be suppressed by setting |nocat=yes or |cat=no. This function selects one of these two parameters
to control categorization.
Because having two parameters with 'opposite' names and 'opposite' values is confusing, this function accepts only affirmative
values for |nocat= and only negative values for |cat=; in both cases the 'other' sense (and non-sense) is not accepted and the
parameter is treated as if it were not set in the template.
Sets args.nocat to true if categorization is to be turned off; to nil if the default behavior should apply.
Accepted values for |nocat= are the text strings:
'yes', 'y', 'true', 't', on, '1' -- [[Module:Yesno]] returns logical true for all of these; false or nil else
for |cat=
'no', 'n', 'false', 'f', 'off', '0' -- [[Module:Yesno]] returns logical false for all of these; true or nil else
]=]
local function validate_cat_args (args)
if not (args.nocat or args.cat) then -- both are nil, so categorize
return;
end
if false == yesno (args.cat) or true == yesno (args.nocat) then
args.nocat = true; -- set to true when args.nocat is affirmative; nil else (as if the parameter were not set in the template)
else -- args.nocat is the parameter actually used.
args.nocat = nil;
end
end
--[[--------------------------< I N _ A R R A Y >--------------------------------------------------------------
Whether needle is in haystack
]]
local function in_array ( needle, haystack )
if needle == nil then
return false;
end
for n,v in ipairs( haystack ) do
if v == needle then
return n;
end
end
return false;
end
--[[--------------------------< F O R M A T _ I E T F _ T A G >------------------------------------------------
prettify ietf tags to use recommended subtag formats:
code: lower case
script: sentence case
region: upper case
variant: lower case
private: lower case prefixed with -x-
]]
local function format_ietf_tag (code, script, region, variant, private)
local out = {};
if is_set (private) then
return table.concat ({code:lower(), 'x', private:lower()}, '-'); -- if private, all other tags ignored
end
table.insert (out, code:lower());
if is_set (script) then
script = script:lower():gsub ('^%a', string.upper);
table.insert (out, script);
end
if is_set (region) then
table.insert (out, region:upper());
end
if is_set (variant) then
table.insert (out, variant:lower());
end
return table.concat (out, '-');
end
--[[--------------------------< G E T _ I E T F _ P A R T S >--------------------------------------------------
extracts and returns IETF language tag parts:
primary language subtag (required) - 2 or 3 character IANA language code
script subtag - four character IANA script code
region subtag - two-letter or three digit IANA region code
variant subtag - four digit or 5-8 alnum variant code; only one variant subtag supported
private subtag - x- followed by 1-8 alnum private code; only supported with the primary language tag
in any one of these forms
lang lang-variant
lang-script lang-script-variant
lang-region lang-region-variant
lang-script-region lang-script-region-variant
lang-x-private
each of lang, script, region, variant, and private, when used, must be valid
Languages with both two- and three-character code synonyms are promoted to the two-character synonym because
the IANA registry file omits the synonymous three-character code; we cannot depend on browsers understanding
the synonymous three-character codes in the lang= attribute.
For {{lang-xx}} templates, the parameters |script=, |region=, and |variant= are supported (not supported in {{lang}}
because those parameters are superfluous to the IETF subtags in |code=)
returns six values; all lower case. Valid parts are returned as themselves; omitted parts are returned as empty strings, invalid
parts are returned as nil; the sixth returned item is an error message (if an error detected) or nil.
see http://www.rfc-editor.org/rfc/bcp/bcp47.txt section 2.1
]]
local function get_ietf_parts (source, args_script, args_region, args_variant)
local code, script, region, variant, private; -- ietf tag parts
if not is_set (source) then
return nil, nil, nil, nil, nil, 'missing language tag';
end
local pattern = { -- table of tables holding acceptibe ietf tag patterns and short names of the ietf part captured by the pattern
{'^(%a%a%a?)%-(%a%a%a%a)%-(%a%a)%-(%d%d%d%d)$', 's', 'r', 'v'}, -- 1 - ll-Ssss-RR-variant (where variant is 4 digits)
{'^(%a%a%a?)%-(%a%a%a%a)%-(%d%d%d)%-(%d%d%d%d)$', 's', 'r', 'v'}, -- 2 - ll-Ssss-DDD-variant (where region is 3 digits; variant is 4 digits)
{'^(%a%a%a?)%-(%a%a%a%a)%-(%a%a)%-(%w%w%w%w%w%w?%w?%w?)$', 's', 'r', 'v'}, -- 3 - ll-Ssss-RR-variant (where variant is 5-8 alnum characters)
{'^(%a%a%a?)%-(%a%a%a%a)%-(%d%d%d)%-(%w%w%w%w%w%w?%w?%w?)$', 's', 'r', 'v'}, -- 4 - ll-Ssss-DDD-variant (where region is 3 digits; variant is 5-8 alnum characters)
{'^(%a%a%a?)%-(%a%a%a%a)%-(%d%d%d%d)$', 's', 'v'}, -- 5 - ll-Ssss-variant (where variant is 4 digits)
{'^(%a%a%a?)%-(%a%a%a%a)%-(%w%w%w%w%w%w?%w?%w?)$', 's', 'v'}, -- 6 - ll-Ssss-variant (where variant is 5-8 alnum characters)
{'^(%a%a%a?)%-(%a%a)%-(%d%d%d%d)$', 'r', 'v'}, -- 7 - ll-RR-variant (where variant is 4 digits)
{'^(%a%a%a?)%-(%d%d%d)%-(%d%d%d%d)$', 'r', 'v'}, -- 8 - ll-DDD-variant (where region is 3 digits; variant is 4 digits)
{'^(%a%a%a?)%-(%a%a)%-(%w%w%w%w%w%w?%w?%w?)$', 'r', 'v'}, -- 9 - ll-RR-variant (where variant is 5-8 alnum characters)
{'^(%a%a%a?)%-(%d%d%d)%-(%w%w%w%w%w%w?%w?%w?)$', 'r', 'v'}, -- 10 - ll-DDD-variant (where region is 3 digits; variant is 5-8 alnum characters)
{'^(%a%a%a?)%-(%d%d%d%d)$', 'v'}, -- 11 - ll-variant (where variant is 4 digits)
{'^(%a%a%a?)%-(%w%w%w%w%w%w?%w?%w?)$', 'v'}, -- 12 - ll-variant (where variant is 5-8 alnum characters)
{'^(%a%a%a?)%-(%a%a%a%a)%-(%a%a)$', 's', 'r'}, -- 13 - ll-Ssss-RR
{'^(%a%a%a?)%-(%a%a%a%a)%-(%d%d%d)$', 's', 'r'}, -- 14 - ll-Ssss-DDD (region is 3 digits)
{'^(%a%a%a?)%-(%a%a%a%a)$', 's'}, -- 15 - ll-Ssss
{'^(%a%a%a?)%-(%a%a)$', 'r'}, -- 16 - ll-RR
{'^(%a%a%a?)%-(%d%d%d)$', 'r'}, -- 17 - ll-DDD (region is 3 digits)
{'^(%a%a%a?)$'}, -- 18 - ll
{'^(%a%a%a?)%-x%-(%w%w?%w?%w?%w?%w?%w?%w?)$', 'p'}, -- 19 - ll-x-pppppppp (private is 1-8 alnum characters)
}
local t = {}; -- table of captures; serves as a translator between captured ietf tag parts and named variables
for i, v in ipairs (pattern) do -- spin through the pattern table looking for a match
local c1, c2, c3, c4; -- captures in the 'pattern' from the pattern table go here
c1, c2, c3, c4 = source:match (pattern[i][1]); -- one or more captures set if source matches pattern[i])
if c1 then -- c1 always set on match
code = c1; -- first capture is always code
t = {
[pattern[i][2] or 'x'] = c2, -- fill the table of captures with the rest of the captures
[pattern[i][3] or 'x'] = c3, -- take index names from pattern table and assign sequential captures
[pattern[i][4] or 'x'] = c4, -- index name may be nil in pattern[i] table so "or 'x'" spoofs a name for this index in this table
};
script = t.s or ''; -- translate table contents to named variables;
region = t.r or ''; -- absent table entries are nil so set named ietf parts to empty string for concatenation
variant= t.v or '';
private = t.p or '';
break; -- and done
end
end
if not code then
return nil, nil, nil, nil, nil, table.concat ({'unrecognized language tag: ', source}); -- don't know what we got but it is malformed
end
code = code:lower(); -- ensure that we use and return lower case version of this
if not (override_table[code] or lang_table[code] or synonym_table[code] or lang_dep_table[code]) then
return nil, nil, nil, nil, nil, table.concat ({'unrecognized language code: ', code}); -- invalid language code, don't know about the others (don't care?)
end
if synonym_table[code] then -- if 639-2/639-2T code has a 639-1 synonym
table.insert (maint_cats, table.concat ({'Lang and lang-xx code promoted to ISO 639-1|', code}));
table.insert (maint_msgs, table.concat ({'code: ', code, ' promoted to code: ', synonym_table[code]}));
code = synonym_table[code]; -- use the synonym
end
if is_set (script) then
if is_set (args_script) then
return code, nil, nil, nil, nil, 'redundant script tag'; -- both code with script and |script= not allowed
end
else
script = args_script or ''; -- use args.script if provided
end
if is_set (script) then
script = script:lower(); -- ensure that we use and return lower case version of this
if not script_table[script] then
return code, nil, nil, nil, nil, table.concat ({'unrecognized script: ', script, ' for code: ', code}); -- language code ok, invalid script, don't know about the others (don't care?)
end
end
if suppressed_table[script] then -- ensure that code-script does not use a suppressed script
if in_array (code, suppressed_table[script]) then
return code, nil, nil, nil, nil, table.concat ({'script: ', script, ' not supported for code: ', code}); -- language code ok, script is suppressed for this code
end
end
if is_set (region) then
if is_set (args_region) then
return code, nil, nil, nil, nil, 'redundant region tag'; -- both code with region and |region= not allowed
end
else
region = args_region or ''; -- use args.region if provided
end
if is_set (region) then
region = region:lower(); -- ensure that we use and return lower case version of this
if not region_table[region] then
return code, script, nil, nil, nil, table.concat ({'unrecognized region: ', region, ' for code: ', code});
end
end
if is_set (variant) then
if is_set (args_variant) then
return code, nil, nil, nil, nil, 'redundant variant tag'; -- both code with variant and |variant= not allowed
end
else
variant = args_variant or ''; -- use args.variant if provided
end
if is_set (variant) then
variant = variant:lower(); -- ensure that we use and return lower case version of this
if not variant_table[variant] then -- make sure variant is valid
return code, script, region, nil, nil, table.concat ({'unrecognized variant: ', variant});
end -- does this duplicate/replace tests in lang() and lang_xx()?
if is_set (script) then -- if script set it must be part of the 'prefix'
if not in_array (table.concat ({code, '-', script}), variant_table[variant]['prefixes']) then
return code, script, region, nil, nil, table.concat ({'unrecognized variant: ', variant, ' for code-script pair: ', code, '-', script});
end
elseif is_set (region) then -- if region set, there are some prefixes that require lang code and region (en-CA-newfound)
if not in_array (code, variant_table[variant]['prefixes']) then -- first see if lang code is all that's required (en-oxendict though en-GB-oxendict is preferred)
if not in_array (table.concat ({code, '-', region}), variant_table[variant]['prefixes']) then -- now try for lang code and region (en-CA-newfound)
return code, script, region, nil, nil, table.concat ({'unrecognized variant: ', variant, ' for code-region pair: ', code, '-', region});
end
end
else -- cheap way to determine if there are prefixes; fonipa and others don't have prefixes; # operator always returns 0
if variant_table[variant]['prefixes'][1] and not in_array (code, variant_table[variant]['prefixes']) then
return code, script, region, nil, nil, table.concat ({'unrecognized variant: ', variant, ' for code: ', code});
end
end
end
if is_set (private) then
private = private:lower(); -- ensure that we use and return lower case version of this
if not override_table[table.concat ({code, '-x-', private})] then -- make sure private tag is valid; note that index
return code, script, region, nil, nil, table.concat ({'unrecognized private tag: ', private});
end
end
return code, script, region, variant, private, nil; -- return the good bits; make sure that msg is nil
end
--[[--------------------------< M A K E _ E R R O R _ M S G >--------------------------------------------------
assembles an error message from template name, message text, help link, and error category.
]]
local function make_error_msg (msg, args, template)
local out = {};
local category;
if 'Transl' == template then
category = 'Transl';
else
category = 'Lang and lang-xx'
end
table.insert (out, table.concat ({'[', args.text or 'undefined', '] '})); -- for error messages output args.text if available
table.insert (out, table.concat ({'<span style=\"color:#d33\">Error: {{', template, '}}: '}));
table.insert (out, msg);
table.insert (out, table.concat ({' ([[:Category:', category, ' template errors|help]])'}));
table.insert (out, '</span>');
if (0 == namespace or 10 == namespace) and not args.nocat then -- categorize in article space (and template space to take care of broken usages)
table.insert (out, table.concat ({'[[Category:', category, ' template errors]]'}));
end
return table.concat (out);
end
--[=[-------------------------< M A K E _ W I K I L I N K >----------------------------------------------------
Makes a wikilink; when both link and display text is provided, returns a wikilink in the form [[L|D]]; if only
link is provided, returns a wikilink in the form [[L]]; if neither are provided or link is omitted, returns an
empty string.
]=]
local function make_wikilink (link, display)
if is_set (link) then
if is_set (display) then
return table.concat ({'[[', link, '|', display, ']]'});
else
return table.concat ({'[[', link, ']]'});
end
else
return '';
end
end
--[[--------------------------< D I V _ M A R K U P _ A D D >--------------------------------------------------
adds <i> and </i> tags to list-item text or to implied <p>..</p> text. mixed not supported
]]
local function div_markup_add (text, style)
local implied_p = {};
if text:find ('^\n[%*:;#]') then -- look for list markup; list markup must begin at start of text
if 'italic' == style then
return text:gsub ('(\n[%*:;#]+)([^\n]+)', '%1<i>%2</i>'); -- insert italic markup at each list item
else
return text;
end
end
if text:find ('\n+') then -- look for any number of \n characters in text
text = text:gsub ('([^\n])\n([^\n])', '%1 %2'); -- replace single newline characters with a space character which mimics mediawiki
if 'italic' == style then
text = text:gsub('[^\n]+', '<p><i>%1</i></p>'); -- insert p and italic markup tags at each impled p (two or more consecutive '\n\n' sequences)
else
text = text:gsub ('[^\n]+', '<p>%1</p>'); -- insert p markup at each impled p
text = text:gsub ('\n', ''); -- strip newline characters
end
end
return text;
end
--[[--------------------------< T I T L E _ W R A P P E R _ M A K E >------------------------------------------
makes a <span title="<title text>"><content_text></span> or <div title="<title text>"><content_text></div> where
<title text> is in the tool-tip in the wiki's local language and <content_text> is non-local-language text in
html markup. This because the lang= attibute applies to the content of its enclosing tag.
<tag> holds a string 'div' or 'span' used to choose the correct wrapping tag
]]
local function title_wrapper_make (title_text, content_text, tag)
local wrapper_t = {};
table.insert (wrapper_t, table.concat ({'<', tag})); -- open opening wrapper tag
table.insert (wrapper_t, ' title=\"'); -- begin title attribute
table.insert (wrapper_t, title_text); -- add <title_text>
table.insert (wrapper_t, '\">'); -- end title attribute and close opening wrapper tag
table.insert (wrapper_t, content_text); -- add <content_text>
table.insert (wrapper_t, table.concat ({'</', tag, '>'})); -- add closing wrapper tag
return table.concat (wrapper_t); -- make a big string and done
end
--[[--------------------------< M A K E _ T E X T _ H T M L >--------------------------------------------------
Add the html markup to text according to the type of content that it is: <span> or <i> tags for inline content or
<div> tags for block content
The lang= attribute also applies to the content of the tag where it is placed so this is wrong because 'Spanish
language text' is English:
<i lang="es" title="Spanish language text">casa</i>
should be:
<span title="Spanish language text"><i lang="es">casa</i></span>
or for <div>...</div>:
<div title="Spanish language text"><div lang="es"><spanish-language-text></div></div>
]]
local function make_text_html (code, text, tag, rtl, style, size, language)
local html_t = {};
local style_added = '';
local wrapper_tag = tag; -- <tag> gets modified so save a copy for use when/if we create a wrapper span or div
if text:match ('^%*') then
table.insert (html_t, '*'); -- move proto language text prefix outside of italic markup if any; use numeric entity because plain splat confuses MediaWiki
text = text:gsub ('^%*', ''); -- remove the splat from the text
end
if 'span' == tag then -- default html tag for inline content
if 'italic' == style then -- but if italic
tag = 'i'; -- change to <i> tags
end
else -- must be div so go
text = div_markup_add (text, style); -- handle implied <p>, implied <p> with <i>, and list markup (*;:#) with <i>
end
table.insert (html_t, table.concat ({'<', tag})); -- open the <i>, <span>, or <div> html tag
code = code:gsub ('%-x%-.*', ''); -- strip private use subtag from code tag because meaningless outside of wikipedia
table.insert (html_t, table.concat ({' lang="', code, '\"'})); -- add language attribute
if (rtl or unicode.is_rtl(text)) and ('ltr' == this_wiki_lang_dir) then -- text is right-to-left on a left-to-right wiki
table.insert (html_t, ' dir="rtl"'); -- add direction attribute for right-to-left languages
elseif not (rtl or unicode.is_rtl(text)) and ('rtl' == this_wiki_lang_dir) then -- text is left-to-right on a right-to-left wiki
table.insert (html_t, ' dir="ltr"'); -- add direction attribute for left-to-right languages
end
if 'normal' == style then -- when |italic=no
table.insert (html_t, ' style=\"font-style: normal;'); -- override external markup, if any
style_added = '\"'; -- remember that style attribute added and is not yet closed
end
if is_set (size) then -- when |size=<something>
if is_set (style_added) then
table.insert (html_t, table.concat ({' font-size: ', size, ';'})); -- add when style attribute already inserted
else
table.insert (html_t, table.concat ({' style=\"font-size: ', size, ';'})); -- create style attribute
style_added = '\"'; -- remember that style attribute added and is not yet closed
end
end
table.insert (html_t, table.concat ({style_added, '>'})); -- close the opening html tag
table.insert (html_t, text); -- insert the text
table.insert (html_t, table.concat ({'</', tag, '>'})); -- close the 'text' <i>, <span>, or <div> html tag
if is_set (language) then -- create a <title_text> string for the title= attribute in a wrapper span or div
local title_text;
if 'zxx' == code then -- special case for this tag 'no linguistic content'
title_text = table.concat ({language, ' text'}); -- not a language so don't use 'language' in title text
elseif mw.ustring.find (language, 'languages', 1, true) then
title_text = table.concat ({language, ' collective text'}); -- for collective languages
else
title_text = table.concat ({language, '-language text'}); -- for individual languages
end
return title_wrapper_make (title_text, table.concat (html_t), wrapper_tag);
else
return table.concat (html_t);
end
end
--[=[-------------------------< M A K E _ C A T E G O R Y >----------------------------------------------------
For individual language, <language>, returns:
[[Category:Articles containing <language>-language text]]
for English:
[[Category:Articles containing explicitly cited English-language text]]
for ISO 639-2 collective languages (and for 639-1 bh):
[[Category:Articles with text in <language> languages]]
]=]
local function make_category (code, language_name, nocat, name_get)
local cat = {};
local retval;
if ((0 ~= namespace) or nocat) and not name_get then -- only categorize in article space
return ''; -- return empty string for concatenation
end
if mw.ustring.find (language_name, 'languages', 1, true) then
return table.concat ({'[[Category:Articles with text in ', language_name, ']]'});
end
table.insert (cat, '[[Category:Articles containing ');
if this_wiki_lang_tag == code then
table.insert (cat, 'explicitly cited ' .. language_name); -- unique category name for the local language
else
table.insert (cat, language_name);
end
table.insert (cat, '-language text]]');
return table.concat (cat);
end
--[[--------------------------< M A K E _ T R A N S L I T >----------------------------------------------------
return translit <i lang=xx-Latn>...</i> where xx is the language code; else return empty string
The value |script= is not used in {{transl}} for this purpose; instead it uses |code. Because language scripts
are listed in the {{transl}} switches they are included in the data tables. The script parameter is introduced
at {{Language with name and transliteration}}. If |script= is set, this function uses it in preference to code.
To avoid confusion, in this module and the templates that use it, the transliteration script parameter is renamed
to be |translit-script= (in this function, tscript)
This function is used by both lang_xx() and transl()
lang_xx() always provides code, language_name, and translit; may provide tscript; never provides style
transl() always provides language_name, translit, and one of code or tscript, never both; always provides style
For {{transl}}, style only applies when a language code is provided
]]
local function make_translit (code, language_name, translit, std, tscript, style)
local title;
local out_t = {};
local title_t = lang_data.translit_title_table; -- table of transliteration standards and the language codes and scripts that apply to those standards
local title_text = ''; -- tool tip text for title= attribute
std = std and std:lower(); -- lower case for table indexing
if not is_set (std) and not is_set (tscript) then -- when neither standard nor script specified
title_text = language_name; -- write a generic tool tip
if not mw.ustring.find (language_name, 'languages', 1, true) then -- collective language names (plural 'languages' is part of the name)
title_text = title_text .. '-language'; -- skip this text (individual and macro languages only)
end
title_text = title_text .. ' romanization'; -- finish the tool tip; use romanization when neither script nor standard supplied
elseif is_set (std) and is_set (tscript) then -- when both are specified
if title_t[std] then -- and if standard is legitimate
if title_t[std][tscript] then -- and if script for that standard is legitimate
if script_table[tscript] then
title_text = title_text .. table.concat ({title_t[std][tscript:lower()], ' (', script_table[tscript], ' script) transliteration'}); -- add the appropriate text to the tool tip
else
title_text = title_text .. title_t[std]['default']; -- use the default if script not in std table; TODO: maint cat? error message because script not found for this standard?
end
else
title_text = title_text .. title_t[std]['default']; -- use the default if script not in std table; TODO: maint cat? error message because script not found for this standard?
end
else
return ''; -- invalid standard, setup for error message
end
elseif is_set (std) then -- translit-script not set, use language code
if not title_t[std] then return ''; end -- invalid standard, setup for error message
if title_t[std][code] then -- if language code is in the table (transl may not provide a language code)
title_text = title_text .. table.concat ({title_t[std][code:lower()], ' (', language_name, ' language) transliteration'}); -- add the appropriate text to the tool tip
else -- code doesn't match
title_text = title_text .. title_t[std]['default']; -- so use the standard's default
end
else -- here if translit-script set but translit-std not set
if title_t['no_std'][tscript] then
title_text = title_text .. title_t['no_std'][tscript]; -- use translit-script if set
elseif title_t['no_std'][code] then
title_text = title_text .. title_t['no_std'][code]; -- use language code
else
if is_set (tscript) then
title_text = title_text .. table.concat ({language_name, '-script transliteration'}); -- write a script tool tip
elseif is_set (code) then
if not mw.ustring.find (language_name, 'languages', 1, true) then -- collective language names (plural 'languages' is part of the name)
title_text = title_text .. '-language'; -- skip this text (individual and macro languages only)
end
title_text = title_text .. ' transliteration'; -- finish the tool tip
else
title_text = title_text .. ' transliteration'; -- generic tool tip (can we ever get here?)
end
end
end
local close_tag;
if is_set (code) then -- when a language code is provided (always with {{lang-xx}} templates, not always with {{transl}})
if not style then -- nil for the default italic style
table.insert (out_t, "<i lang=\""); -- so use <i> tag
close_tag = '</i>'; -- tag to be used when closing
else
table.insert (out_t, table.concat ({'<span style=\"font-style: ', style, '\" lang=\"'})); -- non-standard style, construct a span tag for it
close_tag = '</span>'; -- tag to be used when closing
end
table.insert (out_t, code);
table.insert (out_t, "-Latn\">"); -- transliterations are always Latin script
else
table.insert (out_t, "<span>"); -- when no language code: no lang= attribute, not italic ({{transl}} only)
close_tag = '</span>';
end
table.insert (out_t, translit); -- add the translit text
table.insert (out_t, close_tag); -- and add the appropriate </i> or </span>
if '' == title_text then -- when there is no need for a tool-tip
return table.concat (out_t); -- make a string and done
else
return title_wrapper_make (title_text, table.concat (out_t), 'span'); -- wrap with a tool-tip span and don
end
end
--[[--------------------------< V A L I D A T E _ T E X T >----------------------------------------------------
This function checks the content of args.text and returns empty string if nothing is amiss else it returns an
error message. The tests are for empty or missing text and for improper or disallowed use of apostrophe markup.
Italic rendering is controlled by the |italic= template parameter so italic markup should never appear in args.text
either as ''itself'' or as '''''bold italic''''' unless |italic=unset or |italic=invert.
]]
local function validate_text (template, args)
if not is_set (args.text) then
return make_error_msg ('no text', args, template);
end
if args.text:find ("%f[\']\'\'\'\'%f[^\']") or args.text:find ("\'\'\'\'\'[\']+") then -- because we're looking, look for 4 appostrophes or 6+ appostrophes
return make_error_msg ('text has malformed markup', args, template);
end
local style = args.italic;
if ('unset' ~= style) and ('invert' ~=style) then
if args.text:find ("%f[\']\'\'%f[^\']") or args.text:find ("%f[\']\'\'\'\'\'%f[^\']") then -- italic but not bold, or bold italic
return make_error_msg ('text has italic markup', args, template);
end
end
end
--[[--------------------------< R E N D E R _ M A I N T >------------------------------------------------------
render mainenance messages and categories
]]
local function render_maint(nocat)
local maint = {};
if 0 < #maint_msgs then -- when there are maintenance messages
table.insert (maint, table.concat ({'<span class="lang-comment" style="font-style: normal; display: none; color: #33aa33; margin-left: 0.3em;">'})); -- opening <span> tag
for _, msg in ipairs (maint_msgs) do
table.insert (maint, table.concat ({msg, ' '})); -- add message strings
end
table.insert (maint, '</span>'); -- close the span
end
if (0 < #maint_cats) and (0 == namespace) and not nocat then -- when there are maintenance categories; article namespace only
for _, cat in ipairs (maint_cats) do
table.insert (maint, table.concat ({'[[Category:', cat, ']]'})); -- format and add the categories
end
end
return table.concat (maint);
end
--[[--------------------------< P R O T O _ P R E F I X >------------------------------------------------------
for proto languages, text is prefixed with a splat. We do that here as a flag for make_text_html() so that a splat
will be rendered outside of italic markup (if used). If the first character in text here is already a splat, we
do nothing
proto_param is boolean or nil; true adds splat prefix regardless of language name; false removes and / or inhibits
regardless of language name; nil does nothing; presumes that the value in text is correct but removes extra splac
]]
local function proto_prefix (text, language_name, proto_param)
if false == proto_param then -- when forced by |proto=no
return text:gsub ('^%**', ''); -- return text without splat prefix regardless of language name or existing splat prefix in text
elseif (language_name:find ('^Proto%-') or (true == proto_param)) then -- language is a proto or forced by |proto=yes
return text:gsub ('^%**', '*'); -- prefix proto-language text with a splat; also removes duplicate prefixing splats
end
return text:gsub ('^%*+', '*'); -- return text unmolested except multiple splats reduced to one splat
end
--[[--------------------------< H A S _ P O E M _ T A G >------------------------------------------------------
looks for a poem strip marker in text; returns true when found; false else
auto-italic detection disabled when text has poem stripmarker because it is not possible for this code to know
the content that will replace the stripmarker.
]]
local function has_poem_tag (text)
return text:find ('\127[^\127]*UNIQ%-%-poem%-[%a%d]+%-QINU[^\127]*\127') and true or false;
end
--[[--------------------------< H T M L _ T A G _ S E L E C T >------------------------------------------------
Inspects content of and selectively trims text. Returns text and the name of an appropriate html tag for text.
If text contains:
\n\n text has implied <p>..</p> tags - trim leading and trailing whitespace and return
If text begins with list markup:
\n* unordered
\n; definition
\n: definition
\n# ordered
trim all leading whitespace except \n and trim all trailing whitespace
If text contains <poem>...</poem> stripmarker, return text unmodified and choose <div>..</div> tags because
the stripmarker is replaced with text wrapped in <div>..</div> tags.
]]
local function html_tag_select (text)
local tag;
if has_poem_tag (text) then -- contains poem stripmarker (we can't know the content of that)
tag = 'div'; -- poem replacement is in div tags so lang must use div tags
elseif mw.text.trim (text):find ('\n\n+') then -- contains implied p tags
text = mw.text.trim (text); -- trim leading and trailing whitespace characters
tag = 'div'; -- must be div because span may not contain p tags (added later by MediaWiki); poem replacement is in div tags
elseif text:find ('\n[%*:;%#]') then -- if text has list markup
text = text:gsub ('^[\t\r\f ]*', ''):gsub ('%s*$', ''); -- trim all whitespace except leading newline character '\n'
tag = 'div'; -- must be div because span may not contain ul, dd, dl, ol tags (added later by MediaWiki)
else
text = mw.text.trim (text); -- plain text
tag = 'span'; -- so span is fine
end
return text, tag;
end
--[[--------------------------< V A L I D A T E _ P R O T O >--------------------------------------------------
validates value assigned to |proto=; permitted values are yes and no; yes returns as true, no returns as false,
empty string (or parameter omitted) returns as nil; any other value returns as nil with a second return value of
true indicating that some other value has been assigned to |proto=
]]
local function validate_proto (proto_param)
if 'yes' == proto_param then
return true;
elseif 'no' == proto_param then
return false;
elseif is_set (proto_param) then
return nil, true; -- |proto= something other than 'yes' or 'no'
else
return nil; -- missing or empty
end
end
--[[--------------------------< L A N G U A G E _ N A M E _ G E T >--------------------------------------------
common function to return language name from the data set according to IETF tag
returns language name if found in data tables; nil else
]]
local function language_name_get (ietf, code, cat)
ietf = ietf:lower(); -- ietf:lower() because format_ietf_tag() returns mixed case
local name; -- remains nil if not found
if override_table[ietf] then -- look for whole IETF tag in override table
name = override_table[ietf];
elseif override_table[code] then -- not there so try basic language tag
name = override_table[code];
elseif lang_table[code] then -- shift to iana active tag/name table
name = lang_table[code];
elseif lang_dep_table[code] then -- try the iana deprecated tag/name table
name = lang_dep_table[code];
end
if lang_dep_table[code] and cat then -- because deprecated code may have been overridden to en.wiki preferred name
table.insert (maint_cats, table.concat ({'Lang and lang-xx using deprecated ISO 639 codes|', code}));
table.insert (maint_msgs, table.concat ({'code: ', code, ' is deprecated'}));
end
return name; -- name from data tables or nil
end
--[[--------------------------< _ L A N G >--------------------------------------------------------------------
entry point for {{lang}}
there should be no reason to set parameters in the {{lang}} {{#invoke:}}
<includeonly>{{#invoke:lang|lang}}</includeonly>
parameters are received from the template's frame (parent frame)
]]
local function _lang (args)
local out = {};
local language_name; -- used to make category names
local category_name; -- same as language_name except that it retains any parenthetical disambiguators (if any) from the data set
local subtags = {}; -- IETF subtags script, region, variant, and private
local code; -- the language code
local msg; -- for error messages
local tag = 'span'; -- initial value for make_text_html()
local template = args.template or 'Lang';
validate_cat_args (args); -- determine if categorization should be suppressed
if args[1] and args.code then
return make_error_msg ('conflicting: {{{1}}} and |code=', args, template);
else
args.code = args[1] or args.code; -- prefer args.code
end
if args[2] and args.text then
return make_error_msg ('conflicting: {{{2}}} and |text=', args, template);
else
args.text = args[2] or args.text; -- prefer args.text
end
msg = validate_text (template, args); -- ensure that |text= is set
if is_set (msg) then -- msg is an already-formatted error message
return msg;
end
args.text, tag = html_tag_select (args.text); -- inspects text; returns appropriate html tag with text trimmed accordingly
args.rtl = args.rtl == 'yes'; -- convert to boolean: 'yes' -> true, other values -> false
args.proto, msg = validate_proto (args.proto); -- return boolean, or nil, or nil and error message flag
if msg then
return make_error_msg (table.concat ({'invalid |proto=: ', args.proto}), args, template);
end
code, subtags.script, subtags.region, subtags.variant, subtags.private, msg = get_ietf_parts (args.code); -- |script=, |region=, |variant= not supported because they should be part of args.code ({{{1}}} in {{lang}})
if msg then
return make_error_msg ( msg, args, template);
end
args.italic, msg = validate_italic (args);
if msg then
return make_error_msg (msg, args, template);
end
if nil == args.italic then -- nil when |italic= absent or not set or |italic=default; args.italic controls
if ('latn' == subtags.script) or -- script is latn
(this_wiki_lang_tag ~= code and not is_set (subtags.script) and not has_poem_tag (args.text) and unicode.is_Latin (args.text)) then -- text not this wiki's language, no script specified and not in poem markup but is wholly latn script (auto-italics)
args.italic = 'italic'; -- DEFAULT for {{lang}} templates is upright; but if latn script set for font-style:italic
else
args.italic = 'inherit'; -- italic not set; script not latn; inherit current style
end
end
if is_set (subtags.script) then -- if script set, override rtl setting
if in_array (subtags.script, lang_data.rtl_scripts) then
args.rtl = true; -- script is an rtl script
else
args.rtl = false; -- script is not an rtl script
end
end
args.code = format_ietf_tag (code, subtags.script, subtags.region, subtags.variant, subtags.private); -- format to recommended subtag styles
language_name = language_name_get (args.code, code, true); -- get language name; try ietf tag first, then code w/o variant then code w/ variant
if 'invert' == args.italic and 'span' == tag then -- invert only supported for in-line content
args.text = invert_italics (args.text)
end
args.text = proto_prefix (args.text, language_name, args.proto); -- prefix proto-language text with a splat
table.insert (out, make_text_html (args.code, args.text, tag, args.rtl, args.italic, args.size, language_name));
table.insert (out, make_category (code, language_name, args.nocat));
table.insert (out, render_maint(args.nocat)); -- maintenance messages and categories
return table.concat (out); -- put it all together and done
end
--[[--------------------------< L A N G >----------------------------------------------------------------------
entry point for {{lang}}
there should be no reason to set parameters in the {{lang}} {{#invoke:}}
<includeonly>{{#invoke:lang|lang}}</includeonly>
parameters are received from the template's frame (parent frame)
]]
local function lang (frame)
local args = getArgs (frame, { -- this code so that we can detect and handle wiki list markup in text
valueFunc = function (key, value)
if 2 == key or 'text' == key then -- the 'text' parameter; do not trim wite space
return value; -- return untrimmed 'text'
elseif value then -- all other values: if the value is not nil
value = mw.text.trim (value); -- trim whitespace
if '' ~= value then -- empty string when value was only whitespace
return value;
end
end
return nil; -- value was empty or contained only whitespace
end -- end of valueFunc
});
return _lang (args);
end
--[[--------------------------< L A N G _ X X >----------------------------------------------------------------
For the {{lang-xx}} templates, the only parameter required to be set in the template is the language code. All
other parameters can, usually should, be written in the template call. For {{lang-xx}} templates for languages
that can have multiple writing systems, it may be appropriate to set |script= as well.
For each {{lang-xx}} template choose the appropriate entry-point function so that this function knows the default
styling that should be applied to text.
For normal, upright style:
<includeonly>{{#invoke:lang|lang_xx_inherit|code=xx}}</includeonly>
For italic style:
<includeonly>{{#invoke:lang|lang_xx_italic|code=xx}}</includeonly>
All other parameters should be received from the template's frame (parent frame)
Supported parameters are:
|code = (required) the IANA language code
|script = IANA script code; especially for use with languages that use multiple writing systems
|region = IANA region code
|variant = IANA variant code
|text = (required) the displayed text in language specified by code
|link = boolean false ('no') does not link code-spcified language name to associated language article
|rtl = boolean true ('yes') identifies the language specified by code as a right-to-left language
|nocat = boolean true ('yes') inhibits normal categorization; error categories are not affected
|cat = boolian false ('no') opposite form of |nocat=
|italic = boolean true ('yes') renders displayed text in italic font; boolean false ('no') renders displayed text in normal font; not set renders according to initial_style_state
|lit = text that is a literal translation of text
|label = 'none' to suppress all labeling (language name, 'translit.', 'lit.')
any other text replaces language-name label - automatic wikilinking disabled
for those {{lang-xx}} templates that support transliteration (those templates where |text= is not entirely latn script):
|translit = text that is a transliteration of text
|translit-std = the standard that applies to the transliteration
|translit-script = ISO 15924 script name; falls back to code
For {{lang-xx}}, the positional parameters are:
{{{1}}} text
{{{2}}} transliterated text
{{{3}}} literal translation text
no other positional parameters are allowed
]]
local function _lang_xx (args)
local out = {};
local language_name; -- used to make display text, article links
local category_name; -- same as language_name except that it retains any parenthetical disambiguators (if any) from the data set
local subtags = {}; -- IETF subtags script, region, and variant
local code; -- the language code
local translit_script_name; -- name associated with IANA (ISO 15924) script code
local translit;
local translit_title;
local msg; -- for error messages
local tag = 'span'; -- initial value for make_text_html()
local template = args.template or 'Lang-xx';
if args[1] and args.text then
return make_error_msg ('conflicting: {{{1}}} and |text=', args, template);
else
args.text = args[1] or args.text; -- prefer args.text
end
msg = validate_text (template, args); -- ensure that |text= is set, does not contain italic markup and is protected from improper bolding
if is_set (msg) then
return msg;
end
args.text, tag = html_tag_select (args.text); -- inspects text; returns appropriate html tag with text trimmed accordingly
if args[2] and args.translit then
return make_error_msg ('conflicting: {{{2}}} and |translit=', args, template);
else
args.translit = args[2] or args.translit -- prefer args.translit
end
if args[3] and (args.translation or args.lit) then
return make_error_msg ('conflicting: {{{3}}} and |lit= or |translation=', args, template);
elseif args.translation and args.lit then
return make_error_msg ('conflicting: |lit= and |translation=', args, template);
else
args.translation = args[3] or args.translation or args.lit; -- prefer args.translation
end
if args.links and args.link then
return make_error_msg ('conflicting: |links= and |link=', args, template);
else
args.link = args.link or args.links; -- prefer args.link
end
validate_cat_args (args); -- determine if categorization should be suppressed
args.rtl = args.rtl == 'yes'; -- convert to boolean: 'yes' -> true, other values -> false
code, subtags.script, subtags.region, subtags.variant, subtags.private, msg = get_ietf_parts (args.code, args.script, args.region, args.variant); -- private omitted because private
if msg then -- if an error detected then there is an error message
return make_error_msg (msg, args, template);
end
args.italic, msg = validate_italic (args);
if msg then
return make_error_msg (msg, args, template);
end
if nil == args.italic then -- args.italic controls
if is_set (subtags.script) then
if 'latn' == subtags.script then
args.italic = 'italic'; -- |script=Latn; set for font-style:italic
else
args.italic = initial_style_state; -- italic not set; script is not latn; set for font-style:<initial_style_state>
end
else
args.italic = initial_style_state; -- here when |italic= and |script= not set; set for font-style:<initial_style_state>
end
end
if is_set (subtags.script) then -- if script set override rtl setting
if in_array (subtags.script, lang_data.rtl_scripts) then
args.rtl = true; -- script is an rtl script
else
args.rtl = false; -- script is not an rtl script
end
end
args.proto, msg = validate_proto (args.proto); -- return boolean, or nil, or nil and error message flag
if msg then
return make_error_msg (table.concat ({'invalid |proto=: ', args.proto}), args, template);
end
args.code = format_ietf_tag (code, subtags.script, subtags.region, subtags.variant, subtags.private); -- format to recommended subtag styles
language_name = language_name_get (args.code, code, true); -- get language name; try ietf tag first, then code w/o variant then code w/ variant
category_name = language_name; -- category names retain IANA parenthetical diambiguators (if any)
language_name = language_name:gsub ('%s+%b()', ''); -- remove IANA parenthetical disambiguators or qualifiers from names that have them
if args.label then
if 'none' ~= args.label then
table.insert (out, table.concat ({args.label, ': '})); -- custom label
end
else
if 'no' == args.link then
table.insert (out, language_name); -- language name without wikilink
else
if mw.ustring.find (language_name, 'languages', 1, true) then
table.insert (out, make_wikilink (language_name)); -- collective language name uses simple wikilink
elseif lang_data.article_name[code] then
table.insert (out, make_wikilink (lang_data.article_name[code], language_name)); -- language name with wikilink from override data
else
table.insert (out, make_wikilink (language_name .. ' language', language_name)); -- language name with wikilink
end
end
table.insert (out, ': '); -- separator
end
if 'invert' == args.italic then
args.text = invert_italics (args.text)
end
args.text = proto_prefix (args.text, language_name, args.proto); -- prefix proto-language text with a splat
table.insert (out, make_text_html (args.code, args.text, tag, args.rtl, args.italic, args.size, ('none' == args.label) and language_name or nil))
if is_set (args.translit) and not unicode.is_Latin (args.text) then -- transliteration (not supported in {{lang}}); not supported when args.text is wholly latn text (this is an imperfect test)
table.insert (out, ', '); -- comma to separate text from translit
if 'none' ~= args.label then
table.insert (out, '<small>');
if script_table[args['translit-script']] then -- when |translit-script= is set, try to use the script's name
translit_script_name = script_table[args['translit-script']];
else
translit_script_name = language_name; -- fall back on language name
end
translit_title = mw.title.makeTitle (0, table.concat ({'Romanization of ', translit_script_name})); -- make a title object
if translit_title.exists and ('no' ~= args.link) then
table.insert (out, make_wikilink ('Romanization of ' .. translit_script_name or language_name, 'romanized') .. ':'); -- make a wikilink if there is an article to link to
else
table.insert (out, 'romanized:'); -- else plain text
end
table.insert (out, ' </small>'); -- close the small tag
end
translit = make_translit (args.code, language_name, args.translit, args['translit-std'], args['translit-script'])
if is_set (translit) then
table.insert (out, translit);
else
return make_error_msg (table.concat ({'invalid translit-std: \'', args['translit-std'] or '[missing]'}), args, template);
end
end
if is_set (args.translation) then -- translation (not supported in {{lang}})
table.insert (out, ', ');
if 'none' ~= args.label then
table.insert (out, '<small>');
if 'no' == args.link then
table.insert (out, '<abbr title="literal translation">lit.</abbr>');
else
table.insert (out, make_wikilink ('Literal translation', 'lit.'));
end
table.insert (out, " </small>");
end
table.insert (out, table.concat ({''', args.translation, '''})); -- use html entities to avoid wiki markup confusion
end
table.insert (out, make_category (code, category_name, args.nocat));
table.insert (out, render_maint(args.nocat)); -- maintenance messages and categories
return table.concat (out); -- put it all together and done
end
--[[--------------------------< L A N G _ X X _ A R G S _ G E T >----------------------------------------------
common function to get args table from {{lang-??}} templates
returns table of args
]]
local function lang_xx_args_get (frame)
local args = getArgs(frame,
{
parentFirst= true, -- parameters in the template override parameters set in the {{#invoke:}}
valueFunc = function (key, value)
if 1 == key then -- the 'text' parameter; do not trim wite space
return value; -- return untrimmed 'text'
elseif value then -- all other values: if the value is not nil
value = mw.text.trim (value); -- trim whitespace
if '' ~= value then -- empty string when value was only whitespace
return value;
end
end
return nil; -- value was empty or contained only whitespace
end -- end of valueFunc
});
return args;
end
--[[--------------------------< L A N G _ X X _ I T A L I C >--------------------------------------------------
Entry point for those {{lang-xx}} templates that call lang_xx_italic(). Sets the initial style state to italic.
]]
local function lang_xx_italic (frame)
local args = lang_xx_args_get (frame);
initial_style_state = 'italic';
return _lang_xx (args);
end
--[[--------------------------< _ L A N G _ X X _ I T A L I C >------------------------------------------------
Entry point ffrom another module. Sets the initial style state to italic.
]]
local function _lang_xx_italic (args)
initial_style_state = 'italic';
return _lang_xx (args);
end
--[[--------------------------< L A N G _ X X _ I N H E R I T >------------------------------------------------
Entry point for those {{lang-xx}} templates that call lang_xx_inherit(). Sets the initial style state to inherit.
]]
local function lang_xx_inherit (frame)
local args = lang_xx_args_get (frame);
initial_style_state = 'inherit';
return _lang_xx (args);
end
--[[--------------------------< _ L A N G _ X X _ I N H E R I T >----------------------------------------------
Entry point from another module. Sets the initial style state to inherit.
]]
local function _lang_xx_inherit (args)
initial_style_state = 'inherit';
return _lang_xx (args);
end
--[[--------------------------< _ I S _ I E T F _ T A G >------------------------------------------------------
Returns true when a language name associated with IETF language tag exists; nil else. IETF language tag must be valid.
All code combinations supported by {{lang}} and the {{lang-xx}} templates are supported by this function.
Module entry point from another module
]]
local function _is_ietf_tag (tag) -- entry point when this module is require()d into another
local c, s, r, v, p, err; -- code, script, region, variant, private, error message
c, s, r, v, p, err = get_ietf_parts (tag); -- disassemble tag into constituent part and validate
return ((c and not err) and true) or nil; -- return true when code portion has a value without error message; nil else
end
--[[--------------------------< I S _ I E T F _ T A G >--------------------------------------------------------
Module entry point from an {{#invoke:}}
]]
local function is_ietf_tag (frame)
return _is_ietf_tag (getArgs (frame)[1]); -- args[1] is the ietf language tag to be tested; also get parent frame
end
--[[--------------------------< I S _ I E T F _ T A G _ F R A M E >--------------------------------------------
Module entry point from an {{#invoke:}}; same as is_ietf_tag() except does not get parameters from the parent
(template) frame. This function not useful when called by {{lang|fn=is_ietf_tag_frame|<tag>}} because <tag>
is in the parent frame.
]]
local function is_ietf_tag_frame (frame)
return _is_ietf_tag (getArgs (frame, {frameOnly = true,})[1]); -- args[1] is the ietf language tag to be tested; do not get parent frame
end
--[[--------------------------< _ N A M E _ F R O M _ T A G >--------------------------------------------------
Returns language name associated with IETF language tag if valid; error message else.
All code combinations supported by {{lang}} and the {{lang-xx}} templates are supported by this function.
Set invoke's |link= parameter to yes to get wikilinked version of the language name.
Module entry point from another module
]]
local function _name_from_tag (args)
local subtags = {}; -- IETF subtags script, region, variant, and private
local raw_code = args[1]; -- save a copy of the input IETF subtag
local link = 'yes' == args['link']; -- make a boolean
local label = args.label;
local code; -- the language code
local msg; -- gets an error message if IETF language tag is malformed or invalid
local language_name = '';
code, subtags.script, subtags.region, subtags.variant, subtags.private, msg = get_ietf_parts (raw_code);
if msg then
local template = (args['template'] and table.concat ({'{{', args['template'], '}}: '})) or ''; -- make template name (if provided by the template)
return table.concat ({'<span style=\"color:#d33\">Error: ', template, msg, '</span>'});
end
raw_code = format_ietf_tag (code, subtags.script, subtags.region, subtags.variant, subtags.private); -- format to recommended subtag styles; private omitted because private
language_name = language_name_get (raw_code, code); -- get language name; try ietf tag first, then code w/o variant then code w/ variant
language_name = language_name:gsub ('%s+%b()', ''); -- remove IANA parenthetical disambiguators or qualifiers from names that have them
if link then -- when |link=yes, wikilink the language name
if mw.ustring.find (language_name, 'languages', 1, true) then
language_name = make_wikilink (language_name, label); -- collective language name uses simple wikilink
elseif lang_data.article_name[code] then
language_name = make_wikilink (lang_data.article_name[code], label or language_name); -- language name with wikilink from override data
else
language_name = make_wikilink (language_name .. ' language', label or language_name); -- language name with wikilink
end
end
return language_name;
end
--[[--------------------------< N A M E _ F R O M _ T A G >----------------------------------------------------
Module entry point from an {{#invoke:}}
]]
local function name_from_tag (frame) -- entry point from an {{#invoke:Lang|name_from_tag|<ietf tag>|link=<yes>|template=<template name>}}
return _name_from_tag (getArgs(frame)) -- pass-on the args table, nothing else; getArgs() so we also get parent frame
end
--[[--------------------------< _ T A G _ F R O M _ N A M E >--------------------------------------------------
Returns the ietf language tag associated with the language name. Spelling of language name must be correct
according to the spelling in the source tables. When a standard language name has a parenthetical disambiguator,
that disambiguator must be omitted (they are not present in the data name-to-tag tables).
Module entry point from another module
]]
local function _tag_from_name (args) -- entry point from another module
local msg;
if args[1] and '' ~= args[1] then
local data = mw.loadData ('Module:Lang/tag from name'); -- get the reversed data tables TODO: change when going live
local lang = args[1]:lower(); -- allow any-case for the language name (speeling must till be correct)
local tag = data.rev_override_table[lang] or data.rev_lang_table[lang] or data.rev_lang_dep_table[lang]; -- get the code; look first in the override then in the standard
if tag then
return tag, true; -- language name found so return tag and done; second return used by is_lang_name()
else
msg = 'language: ' .. args[1] .. ' not found' -- language name not found, error message
end
else
msg = 'missing language name' -- language name not provided, error message
end
local template = '';
if args.template and '' ~= args.template then
template = table.concat ({'{{', args['template'], '}}: '}); -- make template name (if provided by the template)
end
return table.concat ({'<span style=\"color:#d33\">Error: ', template, msg, '</span>'});
end
--[[--------------------------< T A G _ F R O M _ N A M E >----------------------------------------------------
Module entry point from an {{#invoke:}}
]]
local function tag_from_name (frame) -- entry point from an {{#invoke:Lang|tag_from_name|<language name>|link=<yes>|template=<template name>}}
local result, _ = _tag_from_name (getArgs(frame)) -- pass-on the args table, nothing else; getArgs() so we also get parent frame; supress second return used by is_lang_name()
return result;
end
--[[--------------------------< I S _ L A N G _ N A M E >------------------------------------------------------
Module entry point from an {{#invoke:}}
]]
local function is_lang_name (frame)
local _, result = _tag_from_name (getArgs(frame)) -- pass-on the args table, nothing else; getArgs() so we also get parent frame; supress second return used by tag_from_name()
return result and true or nil;
end
--[[--------------------------< _ T R A N S L >----------------------------------------------------------------
Module entry point from another module
]]
local function _transl (args)
local title_table = lang_data.translit_title_table; -- table of transliteration standards and the language codes and scripts that apply to those standards
local language_name; -- language name that matches language code; used for tool tip
local translit; -- transliterated text to display
local script; -- IANA script
local msg; -- for when called functions return an error message
if is_set (args[3]) then -- [3] set when {{transl|code|standard|text}}
args.text = args[3]; -- get the transliterated text
args.translit_std = args[2] and args[2]:lower(); -- get the standard; lower case for table indexing
if not title_table[args.translit_std] then
return make_error_msg (table.concat ({'unrecognized transliteration standard: ', args.translit_std}), args, 'Transl');
end
else
if is_set (args[2]) then -- [2] set when {{transl|code|text}}
args.text = args[2]; -- get the transliterated text
else
if args[1] and args[1]:match ('^%a%a%a?%a?$') then -- args[2] missing; is args[1] a code or is it the transliterated text?
return make_error_msg ('no text', args, 'Transl'); -- args[1] is a code so we're missing text
else
args.text = args[1]; -- args[1] is not a code so we're missing that; assign args.text for error message
return make_error_msg ('missing language / script code', args, 'Transl');
end
end
end
if is_set (args[1]) then -- IANA language code used for html lang= attribute; or ISO 15924 script code
if args[1]:match ('^%a%a%a?%a?$') then -- args[1] has correct form?
args.code = args[1]:lower(); -- use the language/script code; only (2, 3, or 4 alpha characters); lower case because table indexes are lower case
else
return make_error_msg (table.concat ({'unrecognized language / script code: ', args[1]}), args, 'Transl'); -- invalid language / script code
end
else
return make_error_msg ('missing language / script code', args, 'Transl'); -- missing language / script code so quit
end
args.italic, msg = validate_italic (args);
if msg then
return make_error_msg (msg, args, 'Transl');
end
if 'italic' == args.italic then -- 'italic' when |italic=yes; because that is same as absent or not set and |italic=default
args.italic = nil; -- set to nil;
end
if override_table[args.code] then -- is code a language code defined in the override table?
language_name = override_table[args.code];
elseif lang_table[args.code] then -- is code a language code defined in the standard language code tables?
language_name = lang_table[args.code];
elseif lang_dep_table[args.code] then -- is code a language code defined in the deprecated language code tables?
language_name = lang_dep_table[args.code];
elseif script_table[args.code] then -- if here, code is not a language code; is it a script code?
language_name = script_table[args.code];
script = args.code; -- code was an ISO 15924 script so use that instead
args.code = ''; -- unset because not a language code
else
return make_error_msg (table.concat ({'unrecognized language / script code: ', args.code}), args, 'Transl'); -- invalid language / script code
end
-- here only when all parameters passed to make_translit() are valid
return make_translit (args.code, language_name, args.text, args.translit_std, script, args.italic);
end
--[[--------------------------< T R A N S L >------------------------------------------------------------------
Module entry point from an {{#invoke:}}
]]
local function transl (frame)
return _transl (getArgs(frame));
end
--[[--------------------------< C A T E G O R Y _ F R O M _ T A G >--------------------------------------------
Returns category name associated with IETF language tag if valid; error message else
All code combinations supported by {{lang}} and the {{lang-xx}} templates are supported by this function.
Module entry point from another module
]]
local function _category_from_tag (args_t)
local subtags = {}; -- IETF subtags script, region, variant, and private
local raw_code = args_t[1]; -- save a copy of the input IETF subtag
local link = 'yes' == args_t.link; -- make a boolean
local label = args_t.label;
local code; -- the language code
local msg; -- gets an error message if IETF language tag is malformed or invalid
local category_name = '';
code, subtags.script, subtags.region, subtags.variant, subtags.private, msg = get_ietf_parts (raw_code);
if msg then
local template = (args_t.template and table.concat ({'{{', args_t.template, '}}: '})) or ''; -- make template name (if provided by the template)
return table.concat ({'<span style=\"color:#d33\">Error: ', template, msg, '</span>'});
end
raw_code = format_ietf_tag (code, subtags.script, subtags.region, subtags.variant, subtags.private); -- format to recommended subtag styles; private omitted because private
category_name = language_name_get (raw_code, code); -- get language name; try ietf tag first, then code w/o variant then code w/ variant
category_name = make_category (code, category_name, nil, true):gsub ('[%[%]]', '');
if link then
return table.concat ({'[[:', category_name, ']]'});
else
return category_name;
end
end
--[[--------------------------< C A T E G O R Y _ F R O M _ T A G >--------------------------------------------
Module entry point from an {{#invoke:}}
]]
local function category_from_tag (frame) -- entry point from an {{#invoke:Lang|category_from_tag|<ietf tag>|template=<template name>}}
return _category_from_tag (getArgs (frame)); -- pass-on the args table, nothing else; getArgs() so we also get parent frame
end
--[[--------------------------< E X P O R T E D F U N C T I O N S >------------------------------------------
]]
return {
category_from_tag = category_from_tag,
lang = lang, -- entry point for {{lang}}
lang_xx_inherit = lang_xx_inherit, -- entry points for {{lang-??}}
lang_xx_italic = lang_xx_italic,
is_ietf_tag = is_ietf_tag,
is_ietf_tag_frame = is_ietf_tag_frame,
is_lang_name = is_lang_name,
tag_from_name = tag_from_name, -- returns ietf tag associated with language name
name_from_tag = name_from_tag, -- used for template documentation; possible use in ISO 639 name from code templates
transl = transl, -- entry point for {{transl}}
_category_from_tag = _category_from_tag, -- entry points when this module is require()d into other modules
_lang = _lang,
_lang_xx_inherit = _lang_xx_inherit,
_lang_xx_italic = _lang_xx_italic,
_is_ietf_tag = _is_ietf_tag,
get_ietf_parts = get_ietf_parts,
_tag_from_name = _tag_from_name,
_name_from_tag = _name_from_tag,
_transl = _transl,
};
mgev3ftqak0bv4awxcdz8bst4qxm16t
Module:Lang/doc
828
1350
13571
2022-06-01T18:00:21Z
Kambai Akau
15
Created page with "{{Language templates}} {{High-use}} {{Lua|Module:Arguments|Module:No globals|Module:Lang/data|Module:Lang/ISO 639 synonyms|Module:Lang/tag from name|Module:Unicode data|Module:Yesno}} This module exists primarily to provide correct html markup for non–English language text where that text is used in the English Wikipedia. It has a secondary purpose of providing correct visual rendering for this non-English text. The module was developed to consolidate processing for {..."
wikitext
text/x-wiki
{{Language templates}}
{{High-use}}
{{Lua|Module:Arguments|Module:No globals|Module:Lang/data|Module:Lang/ISO 639 synonyms|Module:Lang/tag from name|Module:Unicode data|Module:Yesno}}
This module exists primarily to provide correct html markup for non–English language text where that text is used in the English Wikipedia. It has a secondary purpose of providing correct visual rendering for this non-English text. The module was developed to consolidate processing for {{tlx|Lang}}, the {{cl|Lang-x templates|{{tld|lang-??}}}} (most), and {{tlx|Transl}} templates into a single source and to use a clearly defined data set extracted from international standards. It provides error checking and reporting to ensure that the html rendered is correct for browsers and screen readers.
Other templates that get language name support from this module are:
* {{tlx|Native name}}
==Data set==
The data set is specified in [[Module:Lang/data]] and its included data modules:
* language tag-and-name data
** [[Module:Language/data/iana languages]] – from IANA [https://www.iana.org/assignments/language-subtag-registry/language-subtag-registry language-subtag-registry file]
* language script data
** [[Module:Language/data/iana scripts]] – from IANA language-subtag-registry file
* language region data
** [[Module:Language/data/iana regions]] – from IANA language-subtag-registry file
* language variant data
** [[Module:Language/data/iana variants]] – from IANA language-subtag-registry file
* suppressed-script data
** [[Module:Language/data/iana suppressed scripts]] – from IANA language-subtag-registry file
The data set also includes supplementary data modules:
* override and other non-standard data
** [[Module:Lang/ISO 639 synonyms]] – maps three character ISO 639-2, -2T, -3 codes to two character ISO 639-1 codes – from [https://www.loc.gov/standards/iso639-2/php/English_list.php Codes for the Representation of Names of Languages]
** [[Module:Lang/tag from name]] – reversed language tag-and-name data so that the language name is the key and the language tag is the value
== Testcases ==
* [[Module:Lang/testcases]] ([[Module talk:Lang/testcases|run]])
* category_from_tag()
** [[Module:Lang/testcases/ISO 639-1 category from tag]] ([[Module talk:Lang/testcases/ISO 639-1 category from tag|run]])
** [[Module:Lang/testcases/ISO 639-3-1 category from tag]] (A–H) ([[Module talk:Lang/testcases/ISO 639-3-1 category from tag|run]])
** [[Module:Lang/testcases/ISO 639-3-2 category from tag]] (I–N) ([[Module talk:Lang/testcases/ISO 639-3-2 category from tag|run]])
** [[Module:Lang/testcases/ISO 639-3-3 category from tag]] (O–Z) ([[Module talk:Lang/testcases/ISO 639-3-3 category from tag|run]])
** [[Module:Lang/testcases/ISO 639 deprecated and override category from tag]] ([[Module talk:Lang/testcases/ISO 639 deprecated and override category from tag|run]])
* name_from_tag()
** [[Module:Lang/testcases/ISO 639-1 name from tag]] ([[Module talk:Lang/testcases/ISO 639-1 name from tag|run]])
** [[Module:Lang/testcases/ISO 639-3-1 name from tag]] (A–H) ([[Module talk:Lang/testcases/ISO 639-3-1 name from tag|run]])
** [[Module:Lang/testcases/ISO 639-3-2 name from tag]] (I–N) ([[Module talk:Lang/testcases/ISO 639-3-2 name from tag|run]])
** [[Module:Lang/testcases/ISO 639-3-3 name from tag]] (O–Z) ([[Module talk:Lang/testcases/ISO 639-3-3 name from tag|run]])
** [[Module:Lang/testcases/ISO 639 deprecated and override name from tag]] ([[Module talk:Lang/testcases/ISO 639 deprecated and override name from tag|run]])
* tag_from_name()
** [[Module:Lang/testcases/ISO 639-1 tag from name]] ([[Module talk:Lang/testcases/ISO 639-1 tag from name|run]])
** [[Module:Lang/testcases/ISO 639-3-1 tag from name]] (A–H) ([[Module talk:Lang/testcases/ISO 639-3-1 tag from name|run]])
** [[Module:Lang/testcases/ISO 639-3-2 tag from name]] (I–N) ([[Module talk:Lang/testcases/ISO 639-3-2 tag from name|run]])
** [[Module:Lang/testcases/ISO 639-3-3 tag from name]] (O–Z) ([[Module talk:Lang/testcases/ISO 639-3-3 tag from name|run]])
** [[Module:Lang/testcases/ISO 639 deprecated and override tag from name]] ([[Module talk:Lang/testcases/ISO 639 deprecated and override tag from name|run]])
==Tracking categories==
* {{Category link with count|Lang and lang-xx template errors}}
* {{Category link with count|Transl template errors}}
* {{Category link with count|Lang and lang-xx code promoted to ISO 639-1}}
* {{Category link with count|Lang and lang-xx using deprecated ISO 639 codes}}
==See also==
MoS on foreign words:
* {{Section link|Wikipedia:Manual of Style/Text formatting#Foreign terms}}
<includeonly>{{#ifeq:{{SUBPAGENAME}}|sandbox | |
<!-- Categories below this line, please; interwikis at Wikidata -->
[[Category:Language-related modules]]
[[Category:Modules that check for strip markers]]
}}</includeonly>
r4nqe7qj8fhnfeenj7kv7kkmkunivju
Sa:Khwong A̱ta̱m Nzwuom
14
1351
13776
13574
2022-06-07T11:52:34Z
Kambai Akau
15
Kambai Akau shyei peji [[Sa:Khwong A̱ta̱m Zwuom]] nat [[Sa:Khwong A̱ta̱m Nzwuom]]: Ku lan tyia̱ a̱ni.
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Lyenlilyem
14
1353
13604
2022-06-05T16:03:30Z
Kambai Akau
15
Created blank page
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:A̱lyem
14
1354
13605
2022-06-05T16:03:46Z
Kambai Akau
15
Created blank page
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Kurum
14
1356
13613
2022-06-05T16:18:53Z
Kambai Akau
15
Created blank page
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Tung nzwa kurum
14
1357
13614
2022-06-05T16:19:07Z
Kambai Akau
15
Created blank page
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Kaswuo
14
1358
13615
2022-06-05T16:19:24Z
Kambai Akau
15
Created blank page
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
A̱tyii
0
1359
14582
14220
2022-06-22T20:11:12Z
Kambai Akau
15
wikitext
text/x-wiki
'''A̱tyii''' bye fa:
* [[A̱tyii (kyangtutu)]]
* A̱tyii (ghwang)
[[Category:Ngwat nghai swáng a̱lyiat]]
11o5a4bljvqe754p4242afa25iuw0xf
Sa:Kyangtutu
14
1360
13623
2022-06-05T16:50:14Z
Kambai Akau
15
Created blank page
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:A̱yaatyii (kyangtutu)
14
1361
13624
2022-06-05T16:50:29Z
Kambai Akau
15
Created blank page
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Á̱gwam Naijeriysa
14
1362
13631
2022-06-05T17:32:34Z
Kambai Akau
15
Created blank page
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Á̱gwam A̱byintyok A̱tyap
14
1363
13632
2022-06-05T17:32:50Z
Kambai Akau
15
Created blank page
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Á̱gwam Afrika
14
1364
13633
2022-06-05T17:33:05Z
Kambai Akau
15
Created blank page
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Á̱nietkwai-nfwuo-á̱niet sa̱ncuri 20 mi̱ Naijeriya
14
1365
13634
2022-06-05T17:33:18Z
Kambai Akau
15
Created blank page
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Á̱gwam Naijeriya
14
1367
13639
2022-06-05T17:42:00Z
Kambai Akau
15
Created blank page
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Hyaai á̱niet
14
1371
13662
2022-06-05T18:31:17Z
Kambai Akau
15
Created blank page
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Taka̱u
0
1373
14442
13688
2022-06-13T10:33:19Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
'''Taka̱u'''<ref>[http://geolocated.org/NG/KD/64jk581i/ Takau]. Geolocate.</ref> yet distrik ja ma̱ A̱byintyok [[Fantswam (a̱byin)|Fantswam]], Sot A̱gwomna̱ti Mali [[Jemaa]] ma̱ [[A̱tak Ka̱duna|a̱tak]] [[Si̱tet Ka̱duna]] mi̱ fam-a̱byin Fam A̱ka̱wa̱tyia̱ [[Naijeriya]].<ref name=Min>[https://www.mindat.org/feature-11003245.html Takau, Takau, Jema'A, Kaduna State, Nigeria]. mindat.org</ref> Ka̱ yet kap a̱keang Fantswam hwa ku shyia̱ a̱ma̱nta a̱ni. Zwunzwuo-ta̱m ta̱m a̱vwuo ka, ji̱ja yet 801139.<ref name=Tak>[https://www.nigeriapostcode.com/search/?keyword=Takau&state=Kaduna Nigeria Postcode].</ref>
==Ya̱fang==
<references/>
[[Sa:Naijeriya]]
[[Sa:Si̱tet Ka̱duna]]
[[Sa:Fantswam]]
2b3drthxw61fztzid7wph1i34zpeyca
Sa:Fantswam
14
1374
13687
2022-06-06T05:49:26Z
Kambai Akau
15
Created blank page
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Cadi
0
1377
13719
2022-06-06T15:59:10Z
Kambai Akau
15
Kambai Akau shyei peji [[Cadi]] nat [[Caad]]
wikitext
text/x-wiki
#REDIRECT [[Caad]]
duzq7a2duig54sd6i4xdcm464v30c3t
A̱gba̱ndang Jok Cadi
0
1378
13722
2022-06-06T16:00:59Z
Kambai Akau
15
Kambai Akau shyei peji [[A̱gba̱ndang Jok Cadi]] nat [[A̱gba̱ndang Jok Caad]]: Ku lan tyia̱ a̱ni.
wikitext
text/x-wiki
#REDIRECT [[A̱gba̱ndang Jok Caad]]
mqjwus77u4ytjt89ljjahws7fm15h92
Sa:Bibyin A̱ta̱m Afrika
14
1379
13771
13767
2022-06-07T11:33:28Z
Kambai Akau
15
wikitext
text/x-wiki
[[Category:Bibyin_A̱tyin_Afrika]]
equ745jo65xq4cntkfhfdm6c1197omd
Sa:Ji̱buti
14
1380
13768
2022-06-07T11:31:25Z
Kambai Akau
15
Created blank page
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Khwong A̱ta̱m Zwuom
0
1381
13774
2022-06-07T11:50:16Z
Kambai Akau
15
Kambai Akau shyei peji [[Khwong A̱ta̱m Zwuom]] nat [[Khwong A̱ta̱m Nzwuom]]: Ku lan tyia̱ a̱ni.
wikitext
text/x-wiki
#REDIRECT [[Khwong A̱ta̱m Nzwuom]]
62blydqraii0sajfgg7t623yvzaffgs
A̱yaasi̱tet Muná̱pyia̱
0
1383
13798
2022-06-07T13:20:33Z
Kambai Akau
15
Kambai Akau shyei peji [[A̱yaasi̱tet Muná̱pyia̱]] nat [[Muná̱pyia̱ Sí̱tet]]: Ku lan tyia̱ a̱ni.
wikitext
text/x-wiki
#REDIRECT [[Muná̱pyia̱ Sí̱tet]]
my6ugw60i0iuoatdu7kjsjychykt3a2
Senegal
0
1385
13839
2022-06-07T18:26:52Z
Kambai Akau
15
Kambai Akau shyei peji [[Senegal]] nat [[Senegat]]: Ku lan tyia̱ a̱ni.
wikitext
text/x-wiki
#REDIRECT [[Senegat]]
qrwxa7929epogcb5vcwvcfw808p6jyv
Ri̱pobi̱lik Di̱mokrasi Konggo
0
1386
14399
13896
2022-06-13T10:27:40Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
{{Country
|name = Ri̱pobi̱lik Di̱mokrasi Konggo<br>République démocratique du Congo (Fi̱ransa)<br>Repubilika ya Kôngo ya Dimokalasi (Kituba/Konggo ya leta)<br>Republíki ya Kongó Demokratíki (Linggala)<br>Jamhuri ya Kidemokrasia ya Kongo (Swahili)<br>Ditunga dia Kongu wa Mungalaata (Luba-Lulua)
|flag = Flag of the Democratic Republic of the Congo.svg
|coa = Coat of arms of the Democratic Republic of the Congo.svg
|image = Democratic Republic of the Congo (orthographic projection).svg
|capital = [[Kinshasa]]
|area = 2,345,409
|population = 108,407,721
|year = 2022
}}
'''A̱bwom a̱byin''': "Debout Congolais" ("Nyi Ta̱ngam, A̱konggo Ba")
A̱byin '''Ri̱pobi̱lik Di̱mokrasi Konggo''', '''RD Konggo''' (Fi̱ransa: République démocratique du Congo (RDC) /kɔ̃ɡo]/) ka nang á̱niet ma̱ a̱di̱di̱t ka ngyei '''Konggo-Kinshasa''', ku '''A̱gba̱ndang Konggo'''), a̱wot á̱ ku ngyei '''Zayir''' meang gbangbang a̱ni, yet a̱byin kya di̱ fam-a̱byin A̱ka̱wa̱tyia̱ Afrika. Di̱ fam shi kyai a̱byin, kikya yet a̱feang mami Afrika ka̱ swak ma̱ng shi (a̱ma̱lyim A̱li̱jeriya), ma̱ng 11 mi̱ swanta hu. Ma̱ng shi á̱niet ku shyia̱ kpa̱mkpaan ma̱ng miliyon 108, Ri̱pobi̱lik Konggo wu yet a̱nyiung di̱ bibyin ku lyiat a̱lyem Fi̱ransa ka ku swak á̱ghyang ma̱ng shi á̱niet a̱ni. A̱ yet kap [[Muná̱pyia̱ Bibyin Swanta]] hu, Non-Aligned Movement, [[Muná̱pyia̱ Bibyin Afrika]], COMESA, South African Development Community, ma̱ng [[Sot-á̱niet A̱tyin Afrika]] ji. A̱keangtung ma̱ng a̱gba̱ndang a̱keang nggu a̱ swak ma̱ng shi a̱ni kya yet a̱keang [[Kinshasa]], ka̱ ka ngyet a̱keang ka̱ swak ma̱ng shi da̱ a̱ka̱keang na̱ lyiat a̱lyem Fi̱ransa na ma̱ng a̱keang ka̱ swak ma̱ng shi á̱niet mami Afrika meang. Kikya yet a̱tat di̱ shi kyai fam metropolitan mami Afrika a̱ma̱lyim [[Legwot]] ma̱ng Kairo.
{{Bibyin Afrika}}
[[Sa:Bibyin swanta]]
[[Sa:Bibyin Afrika]]
[[Sa:Bibyin A̱ka̱wa̱tyia̱ Afrika]]
mufbt0pf1iibcednqu6n419e6g8j9ue
Zi̱mbabwe
0
1387
14477
13968
2022-06-13T10:37:37Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
{{Country
|name = ''Ri̱pobi̱lik Zi̱mbabwe''<br><small>'''A̱lyoot di̱ lilyem a̱gwomna̱ti 14'''<br>Nyika yeZimbabwe (Shona)<br>Ilizwe leZimbabwe (Ndebele)<br>Dziko la Zimbabwe (Cewa)<br>Dziko la Zimbabwe (Cibarwe)<br>Hango yeZimbabwe (Kalanga)<br>Zimbabwe Nù (Khoisan)<br>Inyika yeZimbabwe (Nambya)<br>Nyika yeZimbabwe (Ndawu)<br>Tiko ra Zimbabwe (Shangani)<br>Republic of Zimbabwe (Shong)<br>Naha ya Zimbabwe (Sesotho)<br>Cisi ca Zimbabwe (Tonga)<br>Shango ḽa Zimbabwe (Venda)<br>Ilizwe lase-Zimbabwe (Xhosa)</small>
|flag = Flag of Zimbabwe.svg
|coa = Coat of arms of Zimbabwe.svg
|image = Zimbabwe (orthographic projection).svg
|capital = [[Harare]]
|area = 390,757
|population = 15,092,171
|year = 2019
}}
'''A̱bwom a̱byin''': "Blessed be the land of Zimbabwe"<ref name="CIA-WF">[https://www.cia.gov/the-world-factbook/countries/zimbabwe/ The World Factbook – Zimbabwe]. Central Intelligence Agency (2 Zwat Swak ma̱ng Sweang).</ref> ("A̱byin nda kya Zi̱mbabwe")<br>[[File:Zimbabwe National Anthem.ogg]]
A̱byin '''Zi̱mbabwe''', á̱ lyen ma̱ng a̱lyoot a̱gwomna̱ti nka nang '''Ri̱pobi̱lik Zimbabwe''' wu, yet a̱byin kya nang bibyin ghyáng keang di̱ tityak a̱ni ka̱ shyia̱ di̱ fam-a̱byin A̱tak Afrika, tsi̱tsak a̱ka̱ghyui Zambezi ma̱ng Limpopo na, ka̱ si̱ byia̱ a̱gi̱gak ma̱ng bibyin [[Afrika A̱tak]] di̱ fam a̱tak hu, [[Botswana]] di̱ fam a̱tak-jenshyung hu, [[Zambya]] di̱ fam a̱za hu, mbeang [[Mozambik]] di̱ fam a̱tyin hu. A̱keangtung nka ka̱ ka ngyet a̱gba̱ndang a̱keang nka a̱ swak ma̱ng shi a̱ni kya yet Harare. A̱gba̱ndang a̱keang a̱feang wu wa yet Bulawayo. A̱byin ka si̱ byia̱ á̱niet ba̱ na ntat miliyon 15 a̱ni, Zimbabwe byia̱ lilyem a̱gwomna̱ti 16, ma̱ng [[Shong (a̱lyem)|Shong]], Shona, mbeang Ndebele nang lilyem á̱niet ma̱ a̱di̱di̱t hu. Á̱ ku yorong "A̱sham Nfang Afrika" (Shong: "Jewel of Afrika") mat a̱dodo ya a̱son nka wu di̱n jen a̱ja.<ref>Boris, Johnson (15 Zwat Swak ma̱ng Jhyiung 2017). [https://www.telegraph.co.uk/news/2017/11/15/robert-mugabe-tarnished-jewel-zimbabwe-now-chance-shine/ Robert Mugabe tarnished the jewel that is Zimbabwe. Now is its chance to shine again] (di̱n Shong). The Telegraph. di̱n vak www.telegraph.co.uk </ref><ref>Doris Lessing (Zwat Nyaai 2003). [http://www.nybooks.com/articles/2003/04/10/the-jewel-of-africa/ The Jewel of Africa] (di̱n Shong). www.nybooks.com</ref><ref>Irwin Chifera. [https://www.voazimbabwe.com/a/zimbabwe-economy-battered-over-the-years/2724325.html What Happened to Zimbabwe, Once Known as The Jewel of Africa?] (di̱n Shong).</ref>
==Ya̱fang==
<references/>
{{Bibyin Afrika}}
[[Sa:Zi̱mbabwe|Zi̱mbabwe]]
[[Sa:Bibyin swanta]]
[[Sa:Bibyin Afrika]]
[[Sa:Bibyin A̱tak Afrika]]
0iu0208zzttcexshxdnstyqxfgppo2i
Botswana
0
1388
14226
13946
2022-06-13T10:09:17Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
{{Country
|name = ''Ri̱pobi̱lik Botswana''<br>Lefatshe la Botswana (Tswana)<br>Republic of Botswana (Shong)
|flag = Flag of Botswana.svg
|coa = Coat of arms of Botswana.svg
|image = Botswana (orthographic projection).svg
|capital = Gaborone
|area = 581,730
|population = 2,254,068
|year = 2018
}}
'''A̱bwom a̱byin''': "Fatshe leno la rona" ("Nda Na̱ Yet Ma̱ng A̱tsatsak A̱byin Wuni")<br>[[File:United States Navy Band - Fatshe leno la rona.ogg]]
A̱byin '''Botswana''', á̱ lyen ma̱ng a̱lyoot a̱gwomna̱ti nka nang '''Ri̱pobi̱lik Botswana''' wu (Tswana: Lefatshe la Botswana /lɪˈfatsʰɪ la bʊˈtswana/, Shong: Republic of Botswana) a̱ni, yet a̱byin kya nang bibyin ghyáng keang di̱ tityak a̱ni di̱ fam-a̱byin A̱tak Afrika. A̱byin Botswana da̱ a̱ka̱nyiung yet a̱kpa̱kpai wa, ma̱ng si̱ ku tat a̱yaakpa 70 tazwa a̱yaakpa 100 a̱byin ka ka̱ yet Kyai A̱ji̱jak Kalahari hu hwa a̱ni. Ka̱ byia̱ a̱gi̱gak ma̱ng bibyin [[Afrika A̱tak]] di̱ nfam a̱tak ma̱ng a̱tak-a̱tyin na, [[Namibya]] di̱ nfam jenshyung ma̱ng a̱za na, mbeang [[Zi̱mbabwe]] di̱ fam a̱za-a̱tyin hu. Ka̱ si̱ fwuop ma̱ng a̱byin [[Zambya]] a̱ma̱nyi a̱kum gak A̱ghyui Zambezi hu di̱n vak A̱byia̱k Kazungula ka.<ref>P. Opoku (2011). [http://www.afdb.org/fileadmin/uploads/afdb/Documents/Project-and-Operations/Multinational%20(Zambia-Bostwana)%20-%20AR%20-%20Kazungula%20Bridge%20Project.pdf Kazungula Bridge Project|last= Darwa] (di̱n Shong). African Development Fund. Appendix IV.</ref>
==Ya̱fang==
<references/>
{{Bibyin Afrika}}
[[Sa:Bibyin swanta]]
[[Sa:Bibyin Afrika]]
[[Sa:Bibyin A̱tak Afrika]]
t5uuvfs6qsglyh05qbld16ceqg8yyw3
Harare
0
1389
14275
13963
2022-06-13T10:14:21Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
A̱keang '''Harare''' (á̱ ku ngyei '''Salisba̱ri''' gbangbang) kya yet a̱keangtung ma̱ng a̱gba̱ndang a̱keang a̱ swak ma̱ng shi ma̱ a̱byin [[Zi̱mbabwe]]. A̱tsak a̱keang wu byia̱ shi kyai kilomita a̱ma̱ntaa̱naai 960.6 (met a̱ma̱ntaa̱naai 371) ma̱ng shi á̱niet 2,123,132 mi̱ di̱ fang a̱lyia̱ 2012 hu a̱wot á̱ si̱ tyan nyia̱ á̱niet 3,120,917 bya si̱ shyia̱ kap metropolitan hu ma̱ a̱lyia̱ 2019. A̱keang ka shyia̱ di̱ fam a̱za-a̱tyin Zi̱mbabwe hwa di̱ fam-a̱byin Mashonalan (A̱byin-Mashona ku A̱byin-A̱shona) hu, a̱wot ka̱ si̱ yet provin metropolit hwa, ka̱ mun shyia̱ a̱yaamunisi̱pat Citungwiza mbeang Epworth ba. A̱keang ka swan a̱zantsok kya ma̱ shi a̱za ku tat mita 1,483 (a̱ti̱tak 4,865) tazwa shi kyai a̱sa̱khwot a̱ni a̱wot lili wun hu si̱ kwa di̱ sa a̱byin ka̱ doot a̱za a̱si̱ á̱kum-tropik ji a̱ni.
[[File:Harare montage.png|thumb|A̱ka̱vwuo mami a̱keang Harare]]
[[File:Flag of Harare.svg|thumb|Tyiang a̱toot shi a̱keang Harare]]
[[File:Coat of arms of Harare.svg|thumb|A̱lama a̱keang Harare]]
[[File:Zimbabwe - Harare.svg|thumb|Ta̱si̱la a̱keang Harare]]
== Nghwughwu ==
<gallery mode="packed" heights="135px">
File:Harare secondst.jpg|A̱gba̱ndang a̱gaat Sam Nujoma, nwuan fam a̱tak
File:Harare anglicanchurch.JPG|Katidi̱ra Anggi̱likan a̱si̱ ''St Mary and All Saints''
File:First Street, Harare, Zimbabwe.jpg|A̱gba̱ndang a̱gaat A̱son
File:Harare Downtown1.jpg|Da̱ a̱beam a̱ka̱nok mali-kpa-cam-a̱byin ka
File:Harare Central Station.jpg|Tesha A̱ka̱wa̱tyia̱ Harare
File:Eastgate Centre, Harare, Zimbabwe.jpg|A̱ka̱wa̱tyia̱ Eastgate (A̱na̱nwuai-a̱tyin)
File:Heroes Acre, Harare, Zimbabwe (2).jpg|Ghwughwu-ri̱lip si̱ A̱yaagwak-nzwang A̱byin (''National Heroes Acre'') hu
File:Heroes Acre, Harare, Zimbabwe (1).jpg|''National Heroes Acre''
</gallery>
{{Template:A̱ka̱keang swanta}}
[[Sa:Harare|Harare]]
[[Sa:Zi̱mbabwe]]
[[Sa:A̱ka̱keangtung Afrika]]
[[Sa:A̱ka̱keang swanta]]
klstscjyy38uzzwz0bi7druqmbcdyr4
Sa:Zi̱mbabwe
14
1390
13952
2022-06-09T18:10:13Z
Kambai Akau
15
Created blank page
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:A̱ka̱keang swanta
14
1391
13960
2022-06-09T18:58:50Z
Kambai Akau
15
Created blank page
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Harare
14
1392
13965
13964
2022-06-09T19:10:15Z
Kambai Akau
15
wikitext
text/x-wiki
[[Category:Zi̱mbabwe]]
4xsa3op861g3xiukroomgqg9hdb0y9t
Wasulu
0
1393
14465
14004
2022-06-13T10:36:16Z
Escarbot
284
Bot: Automated text replacement (-[[Category: +[[Sa:)
wikitext
text/x-wiki
[[Image:Wassoulou map.png|thumb|right|200px|Fam-a̱byin Wasulu mi̱ fam [[Jenshyung Afrika]]]]
'''Wasulu''' (Fi̱ransa: Wassoulou, á̱ ka ndyuut '''Wassulu''', '''Wassalou''', ma̱ng '''Ouassalou''' a̱ni) yet fam taada hwa ma̱ng a̱vwuo nkhang da̱ A̱nian A̱ghyui Wasulu wu mi̱ [[Jenshyung Afrika]]. Ku yet mali á̱niet ba̱ nyia̱ kpamkpaan ma̱ng 160,000 kya, a̱wot ku si̱ yet a̱byin-mbyin [[A̱bwomtsot Wasulu|tangka̱i a̱bwomtsot Wasulu]] ka.
Wasulu hwa keang tyan ji nang a̱gi̱gak bibyin mam-a̱fwun tat huni myim ma̱ng ghyáng: [[Mali]], [[Khwong A̱ta̱m Nzwuom]], ma̱ng [[Gini]]. Mameang, nkap nfam a̱tak-jenshyung Mali, a̱za-jenshyung Khwong A̱ta̱m Nzwuom, mbeang a̱tyin Gini mun shyia̱ mami. Wasulu bu byia̱ a̱gi̱gak ma̱ng [[A̱ghyui Nija]] di̱ fam a̱za-jenshyung hu, ma̱ng A̱ghyui Sankarani di̱ fam a̱tyin hu.
==Ya̱fang==
<references/>
[[Sa:Taada Mali|Fam-a̱byin ma̱ng taada Wasulu]]
[[Sa:Taada Gini|Fam-a̱byin ma̱ng taada Wasulu]]
[[Sa:Distrik Denguélé]]
[[Sa:Taada Khwong A̱ta̱m Nzwuom|Fam-a̱byin ma̱ng taada Wasulu]]
[[Sa:Jenshyung Afrika Fi̱ransa]]
[[Sa:Mali]]
[[Sa:Gini]]
[[Sa:Khwong A̱ta̱m Nzwuom]]
i6d0sdxebn925t3dj8cfb4z4g23toq4
Sa:Taada Mali
14
1394
13992
2022-06-10T17:02:48Z
Kambai Akau
15
Created blank page
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Taada Gini
14
1395
13993
2022-06-10T17:03:01Z
Kambai Akau
15
Created blank page
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Taada Khwong A̱ta̱m Nzwuom
14
1396
13994
2022-06-10T17:03:19Z
Kambai Akau
15
Created blank page
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Distrik Denguélé
14
1397
13995
2022-06-10T17:03:34Z
Kambai Akau
15
Created blank page
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
A̱bwomtsot Wasulu
0
1398
15201
14543
2022-07-17T18:29:38Z
Kambai Akau
15
wikitext
text/x-wiki
[[Image:Wassoulou map.png|thumb|right|200px|Fam-a̱byin Wasulu mi̱ [[Jenshyung Afrika]]]]
'''Wasulu''' ([[Ba̱mba̱ra (a̱lyem)|Ba̱mba̱ra]]: Wasolo, Fi̱ransa: Wassoulou) yet tangka̱i a̱bwomtsot hwa nang á̱niet ma̱ a̱di̱di̱t cat a̱ni di̱ fam-a̱byin [[Jenshyung Afrika]]; á̱ ku bwuo a̱lyoot nka neet di̱ fam-a̱byin taada [[Wasulu]] hu hwa.<ref name=Lusk2009>Jon Lusk (5 Zwat A̱taa 2009). [https://www.independent.co.uk/news/obituaries/coumba-sidibe-malian-singer-who-helped-to-popularise-west-african-wassoulou-music-1697261.html Coumba Sidibe: Malian singer who helped to popularise West African Wassoulou music] (di̱n Shong). The Independent.</ref>
Di̱n jen ma̱ a̱di̱di̱t, a̱nyiuk bya ni̱ bwom a̱bwomtsot Wasulu ka. Pyipyia̱ a̱lyiat nang á̱ ni̱ mbwom tazwa a̱ni huhwa yet tyei mman, a̱saat, ma̱ng nyeang a̱nyiuk ma̱ a̱di̱di̱t. Nkyangtsot bubwom na, ni̱nia yet soku (tangka̱i zunzom ghyang nang ku ni̱ kyiak a̱ghwop nkyangtsot bubwom mam-a̱fwun ghyáng na̱ neet di̱ bibyin nta a̱ni), byin jembe, kamalen nggoni (zunzom ywan a̱taa jhyang), karinyan (metal tube percussion) mbeang bolon (zunzom ywan naai jhyang). Á̱ ni̱ tyei a̱nwuat ka ma̱ng ta̱bam mi̱ di̱ wa̱i a̱pyia̱ a̱lyiat a̱bwom ka a̱wot a̱ghyang á̱niet nshyia̱ ba̱ kaat a̱tyubwom wu ka̱nang gu bwom sak a̱ni.
Á̱nietbwom Wasulu a̱ghyang ba̱ ku nyia̱ á̱pyia̱ mba a̱lyoot bya yet: Nahawa Doumbia,<ref name=vinyl>[https://thevinylfactory.com/news/awesome-tapes-from-africa-nahawa-doumbia-debut-album/ Awesome Tapes From Africa to reissue Nahawa Doumbia’s debut album] (di̱n Shong). Anton Spice (5 Zwat A̱ni̱nai 2019). The Vinyl Factory.</ref> [[Umu Sangare]], Coumba Sidibe, Dienaba Diakite, Kagbe Sidibe, Sali Sidibe, Jah Youssouf, ma̱ng Fatoumata Diawara.<ref name=Lusk2009/>
==Ya̱fang==
<references/>
[[Category:Mali]]
[[Category:Bubwomtsot Mali]]
amww35fdgm23hn8rijsnbl9cxv9ol0m
Sa:Gini
14
1399
14005
2022-06-10T17:20:53Z
Kambai Akau
15
Created blank page
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Ta̱mpi̱let:Ta̱mpi̱let ti̱n
10
1400
14013
2022-06-10T23:18:50Z
Kambai Akau
15
Created page with "{{ #ifexpr:{{#time:U|{{REVISIONTIMESTAMP}}}}>{{#time:U|{{{3|now}}}}} |{{ #ifeq:{{NAMESPACE:Template:{{{2|{{PAGENAME}}}}}}}:{{{2|{{PAGENAME}}}}}|{{FULLPAGENAME}} |{{{4|}}} |{{ #if:{{ #ifeq:{{NAMESPACE}}|Template |{{ #switch:{{lc:{{#titleparts:{{FULLPAGENAME}}||-1}}}} |sandbox |testcases = |#default = x }} |x }}..."
wikitext
text/x-wiki
{{
#ifexpr:{{#time:U|{{REVISIONTIMESTAMP}}}}>{{#time:U|{{{3|now}}}}}
|{{
#ifeq:{{NAMESPACE:Template:{{{2|{{PAGENAME}}}}}}}:{{{2|{{PAGENAME}}}}}|{{FULLPAGENAME}}
|{{{4|}}}
|{{
#if:{{
#ifeq:{{NAMESPACE}}|Template
|{{
#switch:{{lc:{{#titleparts:{{FULLPAGENAME}}||-1}}}}
|sandbox
|testcases =
|#default = x
}}
|x
}}
|<includeonly>[[Category:Pages containing deleted templates]]</includeonly>
}}
}}<includeonly><span style="color:red;">''The template {{tl|{{{2|{{PAGENAME}}}}}}} has been deprecated since {{{3|{{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}}}}}, and is retained only for old [[:Help:Page history|revisions]]. If this page is a current revision, please remove the template{{{extra|.}}}''</span></includeonly>
|{{{4|}}}
}}<noinclude>{{documentation}}</noinclude>
8hxzqkyzuttjhrv0o8dj6ffxp7kkvuj
Ta̱mpi̱let:Ta̱mpi̱let ti̱n/doc
10
1401
14014
2022-06-10T23:19:51Z
Kambai Akau
15
Created page with "{{Documentation subpage}} <!-- Categories and interwikis go at the bottom of this page. --> <code><nowiki>{{Deleted template}}</nowiki></code> provides a way to delete templates but still retain them for the purpose of correctly displaying old revisions of pages. When using this method to delete a template, all existing transclusions should be removed in the usual way, and <code><nowiki>{{Deleted template}}</nowiki></code> added into the template being deleted. This sho..."
wikitext
text/x-wiki
{{Documentation subpage}}
<!-- Categories and interwikis go at the bottom of this page. -->
<code><nowiki>{{Deleted template}}</nowiki></code> provides a way to delete templates but still retain them for the purpose of correctly displaying old revisions of pages. When using this method to delete a template, all existing transclusions should be removed in the usual way, and <code><nowiki>{{Deleted template}}</nowiki></code> added into the template being deleted. This should ensure correct display in old revisions, and a warning when used in a revision postdating the deletion.
Current revisions containing templates deleted in this way (as well as the deleted templates themselves) are automatically categorised in [[:Category:Pages containing deleted templates]].
n1050pg6ik6zla6e0tm9tw1hmip6k5c
Ta̱mpi̱let:Documentation subpage
10
1402
14015
2022-06-10T23:22:04Z
Kambai Akau
15
Created page with "<includeonly><!-- -->{{#ifeq:{{lc:{{SUBPAGENAME}}}} |{{{override|doc}}} | <!--(this template has been transcluded on a /doc or /{{{override}}} page)--> </includeonly><!-- -->{{#ifeq:{{{doc-notice|show}}} |show | {{Mbox | type = notice | style = margin-bottom:1.0em; | image = [[File:Edit-copy green.svg|40px|alt=|link=]] | text = {{strong|This is a [[Wikipedia:Template documentation|documentation]]..."
wikitext
text/x-wiki
<includeonly><!--
-->{{#ifeq:{{lc:{{SUBPAGENAME}}}} |{{{override|doc}}}
| <!--(this template has been transcluded on a /doc or /{{{override}}} page)-->
</includeonly><!--
-->{{#ifeq:{{{doc-notice|show}}} |show
| {{Mbox
| type = notice
| style = margin-bottom:1.0em;
| image = [[File:Edit-copy green.svg|40px|alt=|link=]]
| text =
{{strong|This is a [[Wikipedia:Template documentation|documentation]] [[Wikipedia:Subpages|subpage]]}} for {{terminate sentence|{{{1|[[:{{SUBJECTSPACE}}:{{BASEPAGENAME}}]]}}}}}<br />It contains usage information, [[Wikipedia:Categorization|categories]] and other content that is not part of the original {{#if:{{{text2|}}} |{{{text2}}} |{{#if:{{{text1|}}} |{{{text1}}} |{{#ifeq:{{SUBJECTSPACE}} |{{ns:User}} |{{lc:{{SUBJECTSPACE}}}} template page |{{#if:{{SUBJECTSPACE}} |{{lc:{{SUBJECTSPACE}}}} page|article}}}}}}}}.
}}
}}<!--
-->{{DEFAULTSORT:{{{defaultsort|{{PAGENAME}}}}}}}<!--
-->{{#if:{{{inhibit|}}} |<!--(don't categorize)-->
| <includeonly><!--
-->{{#ifexist:{{NAMESPACE}}:{{BASEPAGENAME}}
| [[Category:{{#switch:{{SUBJECTSPACE}} |Template=Template |Module=Module |User=User |#default=Wikipedia}} documentation pages]]
| [[Category:Documentation subpages without corresponding pages]]
}}<!--
--></includeonly>
}}<!--
(completing initial #ifeq: at start of template:)
--><includeonly>
| <!--(this template has not been transcluded on a /doc or /{{{override}}} page)-->
}}<!--
--></includeonly><noinclude>{{Documentation}}</noinclude>
h6u80hb0qdb0uq3sqtbb8bzpeyae84v
Ta̱mpi̱let:Mbox
10
1403
14016
2022-06-10T23:23:25Z
Kambai Akau
15
Created page with "{{#invoke:Message box|mbox}}<noinclude> {{documentation}} <!-- Categories go on the /doc subpage, and interwikis go on Wikidata. --> </noinclude>"
wikitext
text/x-wiki
{{#invoke:Message box|mbox}}<noinclude>
{{documentation}}
<!-- Categories go on the /doc subpage, and interwikis go on Wikidata. -->
</noinclude>
mpflpb6s8l8gaoxaeypyuqyu2w7vc7i
Ta̱mpi̱let:Mbox/doc
10
1404
14017
2022-06-10T23:24:12Z
Kambai Akau
15
Created page with "{{Documentation subpage}} <!-- Please add categories at the bottom of this page, and interwikis at Wikidata (see Wikipedia:Wikidata) --> {{Used in system}} {{Lua|Module:Message box}} {{Mbox templates (small)}} {{tl|Mbox}} stands for '''M'''ulti-namespace message'''box''' which is a [[Help:Metatemplating|metatemplate]] with which [[Wikipedia:Namespace|namespace]]-sensitive {{cl|Mbox and messagebox templates|messagebox templates}} can be implemented. The most common are..."
wikitext
text/x-wiki
{{Documentation subpage}}
<!-- Please add categories at the bottom of this page, and interwikis at Wikidata (see Wikipedia:Wikidata) -->
{{Used in system}}
{{Lua|Module:Message box}}
{{Mbox templates (small)}}
{{tl|Mbox}} stands for '''M'''ulti-namespace message'''box''' which is a [[Help:Metatemplating|metatemplate]] with which [[Wikipedia:Namespace|namespace]]-sensitive {{cl|Mbox and messagebox templates|messagebox templates}} can be implemented.
The most common are {{tl|Ambox}} for articles, {{tl|Tmbox}} for talk pages, {{tl|Imbox}} for file (formerly image) pages, {{tl|Cmbox}} for category pages and {{tl|Ombox}} for other types of page.
== Usage ==
This template should only be used for message boxes that really need to adapt their style. Most message boxes do not need this and should use one of the varieties just listed. Using those templates directly means that your template will look the same on its template page and at any other place you show it, which makes it clear on what kind of pages it is supposed to be used. It also gives you access to any extra features those templates offer, and it saves some server load.
This template takes the same parameters as {{tl|Ambox}}, {{tl|Imbox}}, etc. Some of the boxes this template calls only handles images of max 52px width, thus that limitation also applies to this template or you will get ugly padding problems.
=== Parameters ===
List of all parameters:
<syntaxhighlight lang="moin">
{{Mbox
| name = name of the template
| demospace = {{{demospace|}}} / main / talk / file / category / other
| type = speedy / delete / content / style / notice / move / protection
| image = none / [[File:Some image.svg|40px]]
| imageright = [[File:Some image.svg|40px]]
| style=CSS values
| textstyle=CSS values
| text = The message body text.
| small = {{{small|left}}} / left / no
| smallimage = none / [[File:Some image.svg|30px]]
| smallimageright = none / [[File:Some image.svg|30px]]
| smalltext = A shorter message body text.
| plainlinks = no
}}
</syntaxhighlight>
Note: The small parameters only have effect when the template appears on an article, talk or "other" page type. For their associated documentation, see {{tl|Ambox}}, {{tl|Tmbox}} and/or {{tl|Ombox}}. Using the small parameters when they are not valid has no effect, but also does no harm.
== About demospace ==
This template optionally takes the "demospace" parameter as described at {{tl|Namespace detect}}. That parameter is only for testing and demonstration purposes. If you want to lock your message box to one style then instead use one of the other mboxes directly.
Namespace "Image:" was renamed to "File:" on 11 December 2008. This template was updated to understand both names well before that, thus it still works fine. For backwards compatibility it still understands "demospace = image" which means the same thing as "demospace = file". But using "demospace = image" is now deprecated.
== Mbox family ==
{{Mbox templates see also}}
== See also ==
* [[:Category:Mbox and messagebox templates]]
<includeonly>{{Sandbox other||
<!-- Add categories below this line, and interwikis at Wikidata -->
[[Category:Mbox and messagebox templates]]
[[Category:Exclude in print]]
}}</includeonly>
2kadtxy5xsub9p5zszzesvvafi89gtr
Ta̱mpi̱let:Delete
10
1405
14022
14021
2022-06-11T08:50:27Z
Adehertogh
148
wikitext
text/x-wiki
<div >
{|style="background-color: lightyellow; border: solid 3px red; padding: 1em;" cellpadding="5"
|[[Image:Icono aviso borrar.png|80px|left]]
|'''This page is a candidate for speedy deletion.'''
If you disagree with its speedy deletion, please explain why on its [[discussion {{NAMESPACE}}:{{PAGENAME}}|talk page]] or at [[Wikipedia:Speedy deletions]]. If this page obviously does not meet the criteria for speedy deletion, or you intend to fix it, please remove this notice, but do not remove this notice from articles that you have created yourself.
|-
|
| {{#if:{{{1|}}}|'''Reason:''' {{{1|}}}| }}
|}
</div>
<includeonly>
[[Category:Candidates for speedy deletion| ]]
</includeonly><noinclude>
[[eo:Ŝablono:Forigu]]
</noinclude>
qvmxd51g1dk2m31ech8ni34l9yt9d1u
Sa:Candidates for speedy deletion
14
1406
14502
2022-06-13T10:54:12Z
Vargenau
226
Created page with "All pages tagged with [[Template:delete]] will show up in this category. They should probably be deleted, but remember to check the page history first, just to make sure."
wikitext
text/x-wiki
All pages tagged with [[Template:delete]] will show up in this category. They should probably be deleted, but remember to check the page history first, just to make sure.
874qrb1a6pd8zgfmzfu0tmnurww9xdi
Ta̱mpi̱let:Ka̱la̱nda
10
1408
14519
2022-06-17T11:39:33Z
Kambai Akau
15
Created page with "<div style="border:1px solid #ccc; background: #fff; border-right:3px solid #ccc; border-bottom:3px solid #ccc; text-align: center; padding:3px; float:left; font-size: smaller; line-height: 1.3; margin-right: 4px; width:10%"> <div style="width:100%">{{CURRENTDAYNAME}}</div> <div style="font-size: x-large; width: 100%;">{{CURRENTDAY}}</div> <div style="width: 100%;"> {{CURRENTMONTHNAME}}</div> <div style="background: #aaa; color: #000;">'''{{CURRENTYEAR}}'''</div> </div>"
wikitext
text/x-wiki
<div style="border:1px solid #ccc; background: #fff; border-right:3px solid #ccc; border-bottom:3px solid #ccc; text-align: center; padding:3px; float:left; font-size: smaller; line-height: 1.3; margin-right: 4px; width:10%">
<div style="width:100%">{{CURRENTDAYNAME}}</div>
<div style="font-size: x-large; width: 100%;">{{CURRENTDAY}}</div>
<div style="width: 100%;"> {{CURRENTMONTHNAME}}</div>
<div style="background: #aaa; color: #000;">'''{{CURRENTYEAR}}'''</div>
</div>
4h8ujub73p8og1nn5fk3gioktaskc45
Mozambik
0
1409
14542
14541
2022-06-17T16:17:24Z
Kambai Akau
15
wikitext
text/x-wiki
{{Country
|name = ''Ri̱pobi̱lik Mozambik''<br>República de Moçambique (Potugit)
|flag = Flag of Mozambique.svg
|coa = Coat of arms of Mozambique.svg
|image = Mozambique (orthographic projection).svg
|capital = Maputo
|area = 801,590
|population = 30,066,648
|year = 2020
}}
'''A̱bwom a̱byin''': "Pátria Amada"<br />"A̱byin-mbyin Nang Zi̱ Cat a̱ni"<br>[[File:Mozambican national anthem, performed by the United States Navy Band.wav]]</div>
A̱byin '''Mozambik''' (Potugit: Moçambique, Cicewa: Mozambiki, Swahili: Msumbiji, Tsonga: Muzambhiki), á̱ lyen ma̱ng a̱lyoot a̱gwomna̱ti nka nang '''Ri̱pobi̱lik Mozambik''' wu (Potugit: Moçambique ''ku'' República de Moçambique /ʁɛˈpuβlikɐ ðɨ musɐ̃ˈbikɨ/, Cicewa: Mozambiki, Swahili: Msumbiji, Tsonga: Muzambhiki), yet a̱byin kya di̱ fam A̱tak-a̱tyin Afrika ka̱ byia̱ a̱gi̱gak ma̱ng [[A̱gba̱ndang Kyai A̱sa̱khwot Ndiya]] wu di̱ fam a̱tyin, [[Ta̱nzaniya]] di̱ fam a̱za, [[Malawi]] mbeang [[Zambya]] di̱ fam a̱za-jenshyung hu, [[Zi̱mbabwe]] di̱ fam jenshyung hu, ma̱ng [[Eswatini]] (Swazi̱lan) mbeang [[Afrika A̱tak]] di̱ fam a̱tak-jenshyung hu. A̱na̱nwuai a̱sa̱khwot Mozambik ka si̱ ghai a̱sa̱t a̱byin kani ma̱ng [[Komorot]], [[Mayote]] mbeang [[Mada̱ga̱si̱ka]] di̱ fam a̱tyin hu. A̱keangtung nka ma̱ng a̱gba̱ndang a̱keang a̱ swak ma̱ng shi kya yet Maputo (á̱ ku ngyei Lourenço Marques kyiak neet da̱ a̱lyia̱ 1876 ba̱ng si̱ tat a̱lyia̱ 1976).
==Ya̱fang==
<references/>
{{Bibyin Afrika}}
[[Category:Bibyin swanta]]
[[Category:Bibyin Afrika]]
[[Category:Bibyin_Jenshyung_Afrika]]
6bt1yqt6yiuw4e0som4gerjanoqdg6j
Sa:Bubwomtsot Mali
14
1410
14544
2022-06-17T16:54:21Z
Kambai Akau
15
Created blank page
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Wukipedia:Bot policy
4
1411
14621
14552
2022-06-29T10:01:37Z
MarcoAurelio
298
redirected to [[Wukipedia:A̱na̱nwuai á̱niet|bot request page]] for [[m:bot policy|standard bot policy]]
wikitext
text/x-wiki
#REDIRECT [[Wukipedia:A̱na̱nwuai á̱niet]]
5n955poqm6unl79plkbyu1cukjpv5g6
Ka̱gwom
0
1412
14793
14792
2022-07-12T18:47:25Z
Kambai Akau
15
wikitext
text/x-wiki
'''Ka̱gwom''' (á̱ ka ndyuut: Kogum, Ka̱gom, Kogom ku Ka̱gum a̱ni) yet a̱bakeang kya kpa̱mkpaan ma̱ng a̱keang Jagindi mi̱ Sot A̱gwomna̱ti Mali [[Jemaa]], di̱ fam [[A̱tak Ka̱duna|a̱tak]] [[Si̱tet Ka̱duna]], [[Naijeriya]].
[[File:Cheerful rural woman, Kogum River.jpg|thumb|A̱byii̱k a̱ghyang ma̱ng fwuosai a̱ lyen lyiat di̱ lilyem Tyap ma̱ng Jhyuo a̱ni, Ka̱gwom, Naijeriya]]
Ma̱ a̱lyia̱ 2014, a̱tyunta̱m sot shei nkhang ''Vanguard Nigeria'' ku shei tazwa kyangbwak ghyang ku ku ta̱lyi̱ri̱p ma̱ a̱ghyui Ka̱gwom ka mi̱ kukwon a̱wak mba hu.<ref>Luka Binniyat (Zwat A̱ni̱nai 23, 2014). [https://www.vanguardngr.com/2014/08/family-7-drowns-boat-capsises-kaduna-village/amp/ Family of 7 drowns as boat capsises in Kaduna village] (di̱n Tyap). Vanguard Nigeria.</ref>
[[File:Kogum River 1.jpg|thumb|A̱ghyui Ka̱gwom, Ka̱gwom, Naijeriya]]
==Ya̱fang==
<references/>
[[Category:Naijeriya]]
9xkmp22sg5su5qhv3lv7pn6fp75n58n
Sa:A̱yaalakumi
14
1413
14560
14556
2022-06-20T21:22:32Z
Kambai Akau
15
wikitext
text/x-wiki
[[Category:Nyám]]
fj5rrgsuj8y83kco7mq8z0l3sq4n8v0
Sa:Nkyayak Afrika
14
1414
14557
2022-06-20T21:21:31Z
Kambai Akau
15
Created blank page
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Nkyayak A̱la̱ra̱ba
14
1415
14558
2022-06-20T21:21:43Z
Kambai Akau
15
Created blank page
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Nyám
14
1416
14559
2022-06-20T21:21:57Z
Kambai Akau
15
Created blank page
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Umu Sangare
0
1417
15163
15162
2022-07-17T16:48:38Z
Kambai Akau
15
wikitext
text/x-wiki
{{Databox|item=Q467094}}
[[File:De la poesía a la música de raíz, sonidos de la segunda noche de San Isidro 07.jpg|thumb|Sangare mi̱ Madrid, a̱byin [[Si̱pen]], ma̱ a̱lyia̱ 2018]]
'''Umu Sangare''' (Fi̱ransa: Oumou Sangaré, [[Ba̱mba̱ra (a̱lyem)|Ba̱mba̱ra]]: Umu Sangare; á̱ byin nggu a̱tuk mam 2 Zwat Sweang 1968 ma̱ a̱keang Bamako) yet a̱tyubwom [[A̱bwomtsot Wasulu|Wasulu]] a̱ neet a̱byin [[Mali]] a̱ ku san Za̱nang Grammy ji, nang á̱ ka ngyei "A̱man-a̱bwom Wasulu ka" a̱ni di̱n jen jhyang. [[Wasulu]] yet fam-a̱byin nkhang hwa di̱ fam a̱tak [[A̱ghyui Nija]] hu, a̱vwuo ka nang a̱bwomtsot ka ku ta ghwut a̱ni neet a̱bwom taada gbangbang, nang di̱n jen ma̱ a̱di̱di̱t á̱ ka ntsot ma̱ng kham a̱ni.
== A̱ka̱fwuop nta ==
* [https://web.archive.org/web/20100814113419/http://www.worldcircuit.co.uk/#Oumou_Sangare::Oumou Watch official Oumou Sangaré documentary film] (di̱n Shong)
* [https://web.archive.org/web/20090614015115/http://www.flyglobalmusic.com/fly/archives/africamiddle_east_city_guidesevents/podcasts.html Oumou Sangaré podcast and interview on flyglobalmusic.com] (di̱n Shong)
* [http://www.fao.org/getinvolved/ambassadors/ambassadors/ambassadors-oumousangare/en/ FAO Goodwill Ambassador website] (di̱n Shong)
[[Category:Byin_1968]]
[[Category:Á̱niet nswuan]]
[[Category:Á̱nietbwom a̱lyem Ba̱mba̱ra]]
[[Category:Á̱nietbwom World Circuit (lebet rekwot)]]
[[Category:Á̱niet Bamako]]
8fkz86tw5ot55nsiwal5tjgkcb87k0r
Sa:Byin 1968
14
1418
14563
2022-06-22T13:47:13Z
Kambai Akau
15
Created blank page
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Á̱nietbwom a̱lyem Ba̱mba̱ra
14
1419
14564
2022-06-22T13:47:27Z
Kambai Akau
15
Created blank page
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Á̱nietbwom World Circuit (lebet rekwot)
14
1420
14565
2022-06-22T13:47:43Z
Kambai Akau
15
Created blank page
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Á̱niet Bamako
14
1421
14566
2022-06-22T13:47:56Z
Kambai Akau
15
Created blank page
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Gwoot
0
1422
14584
14583
2022-06-22T20:24:25Z
Kambai Akau
15
wikitext
text/x-wiki
Swang a̱lyiat '''Gwoot''' (ku '''Gworok''') ji bye fa:
# [[Gwoot (a̱keang)]]
# [[Gwoot (a̱lyem)]]
[[Category:Ngwat nghai swáng a̱lyiat]]
cqdfsgjn8cjvhmidfqfl5rl7wllj7n2
Sa:A̱tak Ka̱duna
14
1423
14587
2022-06-22T20:29:18Z
Kambai Akau
15
Created page with "[[Category:A̱tak Ka̱duna|]] [[Category:Naijeriya]] [[Category:Si̱tet Ka̱duna]]"
wikitext
text/x-wiki
[[Category:A̱tak Ka̱duna|A̱tak Ka̱duna]]
[[Category:Naijeriya]]
[[Category:Si̱tet Ka̱duna]]
o5mz40ntpsgxozufhftd38vk2b8lqnt
Sa:Gwoot (a̱keang)
14
1424
14589
2022-06-22T20:31:25Z
Kambai Akau
15
Created page with "[[Category:Gwoot (a̱keang)]] [[Category:A̱tak Ka̱duna]] [[Category:Si̱tet Ka̱duna]] [[Category:Naijeriya]]"
wikitext
text/x-wiki
[[Category:Gwoot (a̱keang)]]
[[Category:A̱tak Ka̱duna]]
[[Category:Si̱tet Ka̱duna]]
[[Category:Naijeriya]]
tk4wzalw4xabocuugve1kd0td9kman7
Sa:A̱ga̱u
14
1425
14591
2022-06-22T20:38:00Z
Kambai Akau
15
Created page with "[[Category:A̱cyuang nyám]]"
wikitext
text/x-wiki
[[Category:A̱cyuang nyám]]
3jk2wznfhr19b1r3jna5a6kfuprg3qe
Sa:A̱cyuang nyám
14
1426
14592
2022-06-22T20:38:27Z
Kambai Akau
15
Created page with "[[Category:Nkyang nswuan]]"
wikitext
text/x-wiki
[[Category:Nkyang nswuan]]
h0npkub0gg97ridnlach0vdchnbrvyy
Sa:Nkyang nswuan
14
1427
14593
2022-06-22T20:38:38Z
Kambai Akau
15
Created blank page
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Turkiye
0
1428
14614
2022-06-26T22:22:24Z
LisafBia6531
225
Redirected page to [[Turkiya]]
wikitext
text/x-wiki
#REDIRECT [[Turkiya]]
90x846ao4ea0axn3ltonxdby98a5gzx
Bibyin Nta Bi̱ri̱ti̱n
0
1429
14647
14646
2022-06-29T12:51:12Z
Kambai Akau
15
wikitext
text/x-wiki
{{Country
|name = Bibyin Nta Bi̱ri̱ti̱n<br>British Overseas Territories (Shong)
|flag = Flag of the United Kingdom.svg
|coa =
|image = United Kingdom (+overseas territories) in the World (+Antarctica claims).svg
|capital = Kuzang a̱byin ma̱ng si̱ nka ka
|area = 18,015
|population = 272,256
|year = 2019
}}
'''A̱bwom a̱byin''': "God Save the Queen" ("A̱gwaza Kup A̱yang-a̱byintyok wu")<br>[[File:God-Save-The-Queen.ogg]]
'''Bibyin Nta Bi̱ri̱ti̱n''', '''BNB''' hu (Shong: British Overseas Territories, '''BOTs'''), á̱ ka ngyei '''Bibyin Nta Muna̱pyia̱ A̱byintyok''' hu (Shong: United Kingdom Overseas Territories, UKOTs) a̱ni, shyia̱ bibyin-ta̱yuk swak ma̱ng a̱naai hwa ku fwuop ma̱ng [[Muna̱pyia̱ A̱byintyok A̱gba̱ndang Bi̱ri̱ti̱n ma̱ng A̱za Airi̱lan|Muna̱pyia̱ A̱byintyok]] hu di̱n vak cam a̱byin ma̱ng nkhang.<ref name=fco>[https://www.gov.uk/government/policies/protecting-and-developing-the-overseas-territories Supporting the Overseas Territories]. (di̱n Shong). UK Government (6 Zwat Swak 2014). "There are 14 Overseas Territories which retain a constitutional link with the UK. .... Most of the Territories are largely self-governing, each with its own constitution and its own government, which enacts local laws. Although the relationship is rooted in four centuries of shared history, the UK government's relationship with its Territories today is a modern one, based on mutual benefits and responsibilities. The foundations of this relationship are partnership, shared values and the right of the people of each territory to choose to freely choose whether to remain a British Overseas Territory or to seek an alternative future."</ref><ref>[https://www.bloomsburyprofessional.com/uk/british-overseas-territories-law-9781509918713/ British Overseas Territories Law] (di̱n Shong). Hart Publishing (21 Zwat A̱taa 2020). "''Most, if not all, of these territories are likely to remain British for the foreseeable future, and many have agreed modern constitutional arrangements with the British Government.''"</ref> Huhwa si̱ yet nkap A̱byintyokshan Bi̱ri̱ti̱n ngaan na na̱ bwat a̱ni a̱wot si̱ nwai yet kap Muna̱pyia̱ A̱byintyok hu ma̱ng a̱pyia̱ nhu.
==Ya̱fang==
<references/>
== A̱ka̱fwuop nta ==
* [https://www.gov.uk/international/government-topics-foreign-affairs-uk-overseas-territories Foreign and Commonwealth Office – UK Overseas Territories] (di̱n Shong)
* [http://www.ukota.org/ United Kingdom Overseas Territories Association] (di̱n Shong)
* [http://www.legislation.gov.uk/ukpga/2002/8/contents British Overseas Territories Act 2002 – Text of the Act] (di̱n Shong)
[[Category:Bibyin Nta Bi̱ri̱ti̱n| ]]
[[Category:Bibyin ku shyia̱ di̱ ta̱yuk da̱ bibyin Yurop]]
20fsuh6zx3mom0mplmbhwl9uk8fewk6
Sa:Bibyin Nta Bi̱ri̱ti̱n
14
1431
14640
2022-06-29T12:30:52Z
Kambai Akau
15
Created blank page
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Bibyin ku shyia̱ di̱ ta̱yuk da̱ bibyin Yurop
14
1432
14642
2022-06-29T12:31:41Z
Kambai Akau
15
Created blank page
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Bibyin Nta Muna̱pyia̱ A̱byintyok
0
1433
14645
2022-06-29T12:39:05Z
Kambai Akau
15
Kambai Akau shyei peji [[Bibyin Nta Muna̱pyia̱ A̱byintyok]] nat [[Bibyin Nta Bi̱ri̱ti̱n]]: Ku lan tyia̱ a̱ni.
wikitext
text/x-wiki
#REDIRECT [[Bibyin Nta Bi̱ri̱ti̱n]]
ls79zk243m2ojovf9e37tf9nyk80343
Kuut (a̱lyem)
0
1434
14694
14679
2022-06-30T16:49:55Z
Kambai Akau
15
wikitext
text/x-wiki
'''Kuut''' (Kuut: '''Cèn Bèrom''' ''ku'' '''Berom''') ja yet a̱lyem á̱ lyiat a̱ swak mi̱ [[Si̱tet Pi̱lato]] ma̱ a̱byin [[Naijeriya]]. A̱mgba̱m [[A̱kuut]] ba, kyiak neet mman na ba̱ng si̱ nat á̱tat a̱ghyi ba nyian ta̱m ma̱ng a̱lyem kani kuzangmam mami a̱baka̱keang na. Da̱ a̱kwonu a̱kya, A̱kuut ba shyia̱ di̱ shyei naat a̱ka̱keang [[Kpat (a̱lyem)|nKpat]].<ref name=":0">[http://www.ethnologue.com/18/language/bom/ Berom]. Ethnologue.</ref> A̱cyuang a̱balilyem Cen ma̱ng Nincut hu bye yet lilyem vwuon. Kpa̱mkpaan ma̱ng á̱niet miliyon 1 (2010) bya lyiat da̱ a̱lyem kani.<ref name=":0" />
Á̱ lyiat ma̱ng Kuut da̱ a̱gba̱ndang fam wa di̱ fam a̱tak a̱keang [[Nja̱t]] mi̱ [[Si̱tet Pi̱lato]], Naijeriya.<ref name="Blench2021"/>
== Nkhang ==
A̱kuut ba ku byia̱ a̱meang ma̱ng Taada Nok ji, tat-a̱ghyi ku ku nshyia̰ kyiak neet da̱ a̱lyia̱ 200BC ba̱ng si̱ nat 1000AD.<ref>Mbamalu, Socrates (16 Zwat Sweang 2017). [https://thisisafrica.me/lifestyle/berom-people-nigeria/ The Berom people of Nigeria] (di̱n Shong). This is africa.</ref> Da̱ a̱ka̱nyiung, á̱ fa a̱vwuonswat á̱niet ba̱ lyiat Kuut ka ka̱ yet a̱cyian Pi̱lato Nja̱t kikya ma̱ng fam hu ku shyia̱ ma̱ a̱tak a̱kpa̱kpai a̱byin [[Si̱tet Ka̱duna]] a̱ sang shi a̱za wu a̱ni.<ref>Bouquiaux, L. 1970. La langue Birom (Nigéria septentrional) –phonologie, morphologie, syntaxe. Paris: Société d’édition Les Belles Lettres. </ref>
== A̱balilyem ==
Susot a̱balilyem Kuut ja ji:<ref name="Blench2021">Blench, Roger. 2021. ''[https://www.academia.edu/48907901/Reading_and_writing_Berom Introduction to Berom: Reading and Writing Guide]'' (di̱n Shong).</ref>
*Gyel–Kuru–Vwang
*Du–Foron
*Fan–Ropp–Rim–Riyom–Heikpang
*Bachit
*Gashish
*Rahoss-Tahoss
== A̱tografi ==
A̱tografi nKuut:<ref name="Blench2021"/>
a, b, c, d, e, ɛ, f, g, gb, h, i, j, k, kp, l, m, n, ng, o, ɔ, p, r, s, sh, t, ts, u, v, w, y, z
==Ya̱fang==
<references/>
==A̱ka̱fwuop nta==
*[http://www.rogerblench.info/Language/Niger-Congo/BC/Plateau/Beromic/Berom/Berom%20page.htm Roger Blench: Wat ''Berom'']
[[Category:Lilyem-tai Kuut]]
[[Category:Lilyem Naijeriya]]
[[Category:A̱kuut]]
2mm8udrcdedl27tbhzb0ykco4bxol05
Sa:Lilyem-tai Kuut
14
1435
14666
2022-06-30T13:59:07Z
Kambai Akau
15
Created blank page
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:A̱kuut
14
1436
14667
2022-06-30T14:02:44Z
Kambai Akau
15
Created blank page
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
A̱nietza̱fan (a̱lyem)
0
1437
14683
2022-06-30T15:29:40Z
Kambai Akau
15
Kambai Akau shyei peji [[A̱nietza̱fan (a̱lyem)]] nat [[Á̱nietza̱fan (a̱lyem)]]: Ku lan tyia̱ a̱ni.
wikitext
text/x-wiki
#REDIRECT [[Á̱nietza̱fan (a̱lyem)]]
qetr75xbjgpz3bdoj5d20b66kdaokny
A̱kuut
0
1438
14693
14692
2022-06-30T16:40:33Z
Kambai Akau
15
wikitext
text/x-wiki
'''A̱kuut''' ba ([[Kuut (a̱lyem)|Kuut]]: '''Berom'''), bibya yet nwap ji̱ byia̱ shi a̱ swak a̱ni mi̱ [[Si̱tet Pi̱lato]], di̱ fam a̱ka̱wa̱tyia̱ [[Naijeriya]].<ref> Idrees, Aliyu Alhaji; Ochefu, Yakubu A. (2002). [https://books.google.com/books?id=mMQuAQAAIAAJ&q=%22notorious+for+its+extreme+diversity+of+cultural+and+linguistic+groups%22 Studies in the History of Central Nigeria Area] (di̱n Shong). CSS Limited. Ng. 663. ISBN 9789782951588</ref> Ba̱ shyia̱ [[Susot a̱gwomna̱ti mali Naijeriya|susot a̱gwomna̱ti mali]], nang Nja̱t A̱za, Nja̱t A̱tak, Barkin Ladi (Gwol) ma̱ng Riyom, ba̱ si̱ mun shyia̱ susot a̱gwomna̱ti mali [[A̱tak Ka̱duna|a̱tak]] [[Si̱tet Ka̱duna]] jhyang.
A̱kuut ba lyiat ma̱ng a̱lyem [[Kuut (a̱lyem)|Kuut]] kya ka̱ shyia̱ di̱ sa [[Lilyem Pi̱lato|Pi̱lato]] a̱si̱ [[Benuwe–Konggo]] ji ja ji̱ yet a̱bankwai a̱gba̱ndang [[Kwai a̱lyem Nija–Konggo]] a̱ni. Kuut ji nwai byia̱ a̱meang ma̱ng [[Kpat (a̱lyem)|Kpat]] ji (ji̱ shyia̱ kwai Afro-Asiya ji a̱ni) ku lilyem Afro-Asiya ghyáng mi̱ Si̱tet Pi̱lato, ku yet [[Lilyem Caad]] a̱ni.
== A̱ka̱fwuop nta ==
* Roger Blench, [http://www.rogerblench.info/Ethnomusicology/Video%20&%20images/Africa/Nigeria/Berom/Images Berom Images]
[[Category:A̱kuut| ]]
[[Category:Nnwap mi̱ Naijeriya]]
[[Category:Si̱tet Pi̱lato]]
rrw0xawm94zokogffvzeu9mh2u51skn
Sa:Si̱tet Pi̱lato
14
1439
14688
2022-06-30T15:40:56Z
Kambai Akau
15
Created blank page
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Module:Databox
828
1440
14710
2022-07-02T09:29:23Z
Dnshitobu
339
Added databox
Scribunto
text/plain
local property_blacklist = {
'P360', --is a list of
'P4224', --category contains
'P935', -- Commons gallery
'P1472', -- Commons Creator page
'P1612', -- Commons Institution page
'P373', -- Commons category
'P3722', -- Commons maps category
'P1151', -- topic's main Wikimedia portal
'P1424', -- topic's main template
'P910', -- topic's main category
'P1200', -- bodies of water basin category
'P1792', -- category of associated people
'P1464', -- category for people born here
'P1465', -- category for people who died here
'P1791', -- category of people buried here
'P1740', -- category for films shot at this location
'P2033', -- Category for pictures taken with camera
'P2517', -- category for recipients of this award
'P4195', -- category for employees of the organization
'P1754', -- category related to list
'P301', -- category's main topic
'P971', -- category combines topics
'P3876', -- category for alumni of educational institution
'P1753', -- list related to category
'P3921', -- Wikidata SPARQL query equivalent
'P1204', -- Wikimedia portal's main topic
'P1423', -- template's main topic
'P1709', -- equivalent class
'P3950', -- narrower external class
'P2888', -- exact match
'P1382', -- coincident with
'P527', -- has part
'P2670', -- has parts of the class
'P3113', -- does not have part
'P2737', -- union of
'P2738', -- disjoint union of
'P2445', -- metasubclass of
'P1963', -- properties for this type
'P3176', -- uses property
'P1889', -- different from
'P460', -- said to be the same as
'P2959', -- permanent duplicated item
'P2860', -- cites
'P5125', -- wikimedia outline
'P5008', -- on focus list of Wikimedia project
'P2559', -- Wikidata usage instructions
'P1343', -- described by source
'P972', -- catalogu
'P1282', -- OSM tag or key
'P4839', -- Wolfram Language entity code
'P6104', -- Maintained by Wikiproject
'P5996' -- Category for films in this language
}
function valuesToKeys(array)
local result = {}
for _, v in pairs(array) do
result[v] = true
end
return result
end
local p = {}
function p.databox(frame)
local args = frame:getParent().args
local itemId = nil
if args.item then
itemId = args.item
end
local lang = mw.language.getContentLanguage()
local item = mw.wikibase.getEntity(itemId)
if item == nil then
mw.addWarning("Wikidata item not found")
return ""
end
local databoxRoot = mw.html.create('div')
:addClass('infobox')
:css({
float = 'right',
border = '1px solid #aaa',
['max-width'] = '300px',
padding = '0 0.4em',
margin = '0 0 0.4em 0.4em',
})
--Title
databoxRoot:tag('div')
:css({
['text-align'] = 'center',
['background-color'] = '#f5f5f5',
padding = '0.5em 0',
margin = '0.5em 0',
['font-size'] = '120%',
['font-weight'] = 'bold',
})
:wikitext(item:getLabel() or mw.title.getCurrentTitle().text)
--Image
local images = item:getBestStatements('P18')
if #images >= 1 then
databoxRoot
:tag('div')
:wikitext('[[File:' .. images[1].mainsnak.datavalue.value .. '|frameless|300px]]')
end
--Table
local dataTable = databoxRoot
:tag('table')
:css({
['text-align'] = 'left',
['font-size'] = '90%',
['word-break'] = 'break-word',
['width'] = '100%',
['table-layout'] = 'fixed',
})
dataTable:tag('caption')
:css({
['background-color'] = '#f5f5f5',
['font-weight'] = 'bold',
['margin-top'] = '0.2em',
})
:wikitext(item:formatStatements('P31').value)
local properties = mw.wikibase.orderProperties(item:getProperties())
local property_blacklist_hash = valuesToKeys(property_blacklist)
property_blacklist_hash['P31'] = true --Special property
local edit_message = mw.message.new('vector-view-edit'):plain()
for _, property in pairs(properties) do
local datatype = item.claims[property][1].mainsnak.datatype
if datatype ~= 'commonsMedia' and datatype ~= 'external-id' and datatype ~= 'quantity' and datatype ~= 'wikibase-property' and datatype ~= 'geo-shape' and datatype ~= 'tabular-data' and not property_blacklist_hash[property] and #item:getBestStatements(property) <= 5 then
local propertyValue = item:formatStatements(property)
dataTable:tag('tr')
:tag('th')
:attr('scope', 'row')
:wikitext(lang:ucfirst(propertyValue.label)):done()
:tag('td')
:wikitext(frame:preprocess(propertyValue.value))
:wikitext(' [[File:OOjs UI icon edit-ltr.svg|' .. edit_message .. '|12px|baseline|class=noviewer|link=https://www.wikidata.org/wiki/' .. item.id .. '#' .. property .. ']]')
end
end
--Map
local coordinates_statements = item:getBestStatements('P625')
if #coordinates_statements == 1 and coordinates_statements[1].mainsnak.datavalue and coordinates_statements[1].mainsnak.datavalue.value.globe == 'http://www.wikidata.org/entity/Q2' then
--We build the call to mapframe
local latitude = coordinates_statements[1].mainsnak.datavalue.value.latitude
local longitude = coordinates_statements[1].mainsnak.datavalue.value.longitude
local geojson = {
type = 'Feature',
geometry = {
type = 'Point',
coordinates = { longitude, latitude }
},
properties = {
title = item:getLabel() or mw.title.getCurrentTitle().text,
['marker-symbol'] = 'marker',
['marker-color'] = '#224422',
}
}
databoxRoot:wikitext(frame:extensionTag('mapframe', mw.text.jsonEncode(geojson), {
height = 300,
width = 300,
frameless = 'frameless',
align = 'center',
latitude = latitude,
longitude = longitude,
zoom = zoom
}))
end
return tostring(databoxRoot)
end
return p
bq0kjqfpa85hw3qrx4zdw6yn3hzyb7y
Ta̱mpi̱let:Databox
10
1441
14711
2022-07-02T09:32:07Z
Dnshitobu
339
created a template
wikitext
text/x-wiki
{{#invoke:Databox|databox}}
rltanani0spzqhywo9z8lvv3sf81nqd
Ta̱mpi̱let:Databox generic
10
1442
14713
14712
2022-07-02T09:35:31Z
Dnshitobu
339
updated content
wikitext
text/x-wiki
<includeonly>{{#invoke:Databox|databox}}</includeonly>
<noinclude><pre><nowiki>{{Databox generic}}</nowiki></pre></noinclude>
icfb4gzxra0jn4xxe30f023a8yd7tai
Sa:A̱toot
14
1443
14733
2022-07-02T18:32:53Z
Kambai Akau
15
Created blank page
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Naai
14
1445
14778
2022-07-09T16:28:48Z
Kambai Akau
15
Created blank page
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:A̱za̱za̱rak nswat
14
1446
14779
2022-07-09T16:29:09Z
Kambai Akau
15
Created blank page
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Naat mbwuot nkhwi
14
1447
14780
2022-07-09T16:29:26Z
Kambai Akau
15
Created blank page
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Nta̱m khwi
14
1448
14784
2022-07-09T16:39:28Z
Kambai Akau
15
Created blank page
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Kpa̱m A̱lyiat A̱gwaza
14
1449
14787
2022-07-09T16:43:56Z
Kambai Akau
15
Created blank page
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Fantswam (a̱balyem)
0
1450
14842
14841
2022-07-15T12:33:33Z
Kambai Akau
15
wikitext
text/x-wiki
A̱lyem '''Fantswam''' yet a̱nyiung di̱ sot [[Tyap (a̱lyem)|a̱balilyem nTyap]] á̱ lyiat di̱ fam a̱tak-a̱tyin [[Si̱tet Ka̱duna]] a̱ni, ma̱ a̱byin [[Naijeriya]]. Fantswam ji, jija yet a̱lyem ka nang [[A̱fantswam]] ba ba̱ swan a̱byin ka á̱ ngyei [[Fantswam (a̱byin)|Fantswam]] ka lyiat a̱ni. Fantswam ji tai [[Gwoot (a̱balyem)|Gwoot]] ji̱ si̱ ka ntai [[Jhyuo (a̱lyem)|Jhyuo]] a̱ swak kuzang a̱balyem di̱ sot a̱balilyem nTyap ji.
==Bu nwuan==
* [[Gwoot (a̱balyem)|Gwoot]]
* [[Sholyia̱ (a̱balyem)|Sholyia̱]]
* [[Takat (a̱balyem)|Takat]]
* [[Tyia̱caat (a̱balyem)|Tyia̱caat]]
* [[Tyuku (a̱balyem)|Tyuku]]
* [[Jhyuo (a̱lyem)|Jhyuo]]
[[Category:A̱lyem Tyap]]
q59w7fprb5flxh4zi5cddw8iqo63b74
Sa:A̱lyem Tyap
14
1451
15185
14805
2022-07-17T17:46:31Z
Kambai Akau
15
wikitext
text/x-wiki
[[Sa:Lilyem Nija–Konggo]]
[[Category:Lilyem Naijeriya]]
[[Category:Lilyem Pi̱lato]]
[[Category:Lilyem A̱ka̱wa̱tyia̱ Pi̱lato]]
mxd7jll72ydx45kpn3w68wkbdjq0dha
Gwoot (a̱balyem)
0
1452
14825
14824
2022-07-15T11:49:38Z
Kambai Akau
15
wikitext
text/x-wiki
A̱lyem '''Gwoot''' (yei /gʷo:d/; Gwoot: '''Gworog''' ku Gworok) yet a̱nyiung di̱ sot [[Tyap (a̱lyem)|a̱balilyem nTyap]] á̱ lyiat di̱ fam a̱tak-a̱tyin [[Si̱tet Ka̱duna]] a̱ni, ma̱ a̱byin [[Naijeriya]]. Gwoot ji, jija yet a̱lyem ka nang [[A̱gwoot]] ba ba̱ swan a̱byin ka á̱ ngyei [[Gwoot (a̱byin)|Gwoot]] ka lyiat a̱ni.
==Bu nwuan==
* [[Fantswam (a̱balyem)|Fantswam]]
* [[Sholyia̱ (a̱balyem)|Sholyia̱]]
* [[Takat (a̱balyem)|Takat]]
* [[Tyia̱caat (a̱balyem)|Tyia̱caat]]
* [[Tyuku (a̱balyem)|Tyuku]]
* [[Jhyuo (a̱lyem)|Jhyuo]]
[[Category:A̱lyem Tyap]]
o2kunasn756pa1085tdepwclm6s088i
Sholyia̱ (a̱balyem)
0
1453
14861
14835
2022-07-15T12:52:00Z
Kambai Akau
15
wikitext
text/x-wiki
A̱lyem '''Sholyia̱''' yet a̱nyiung di̱ sot [[Tyap (a̱lyem)|a̱balilyem nTyap]] ja nang á̱ lyiat di̱ fam a̱tak-a̱tyin [[Si̱tet Ka̱duna]] a̱ni, ma̱ a̱byin [[Naijeriya]]. Sholyia̱ ji, jija yet a̱lyem ka nang [[A̱sholyia̱]] ba ba̱ swan a̱byin ka á̱ ngyei [[Sholyia̱ (a̱byin)|Sholyia̱]] ka lyiat a̱ni. Sholyia̱ ji tai [[Tyia̱caat (a̱balyem)|Tyia̱caat]] a̱ swak kuzang a̱balyem di̱ sot a̱balilyem nTyap ji.
==Bu nwuan==
* [[Fantswam (a̱balyem)|Fantswam]]
* [[Gwoot (a̱balyem)|Gwoot]]
* [[Ta̱kat (a̱balyem)|Ta̱kat]]
* [[Tyia̱caat (a̱balyem)|Tyia̱caat]]
* [[Tyuku (a̱balyem)|Tyuku]]
* [[Jhyuo (a̱lyem)|Jhyuo]]
[[Category:A̱lyem Tyap]]
l4zf14szcikuae78vbt3o1furm87b1a
Ta̱kat (a̱balyem)
0
1454
14831
14829
2022-07-15T12:07:28Z
Kambai Akau
15
Kambai Akau shyei peji [[Takad (a̱balyem)]] nat [[Ta̱kat (a̱balyem)]]: A̱tsak vak lyuut
wikitext
text/x-wiki
A̱lyem '''Ta̱kat''' ku '''Ta̱kad''' (yei /təkad/) yet a̱nyiung di̱ sot [[Tyap (a̱lyem)|a̱balilyem nTyap]] á̱ lyiat di̱ fam a̱tak-a̱tyin [[Si̱tet Ka̱duna]] a̱ni, ma̱ a̱byin [[Naijeriya]]. Takat ji, jija yet a̱lyem ka nang [[A̱takat]] ba ba̱ swan a̱byin ka á̱ ngyei [[Takat (a̱byin)|Takat]] ka lyiat a̱ni. Takat ji tai [[Tyuku (a̱balyem)|Tyuku]] a̱ swak kuzang a̱balyem di̱ sot a̱balilyem nTyap ji.
==Bu nwuan==
* [[Fantswam (a̱balyem)|Fantswam]]
* [[Gwoot (a̱balyem)|Gwoot]]
* [[Sholyia̱ (a̱balyem)|Sholyia̱]]
* [[Tyia̱caat (a̱balyem)|Tyia̱caat]]
* [[Tyuku (a̱balyem)|Tyuku]]
* [[Jhyuo (a̱lyem)|Jhyuo]]
[[Category:A̱lyem Tyap]]
msda96ita1pp7usu3qpiwhy9q4lldmj
Tyuku (a̱balyem)
0
1455
14827
14826
2022-07-15T11:55:02Z
Kambai Akau
15
wikitext
text/x-wiki
A̱lyem '''Tyuku''' ku '''Tuku''' (yei /tʲuku/) yet a̱nyiung di̱ sot [[Tyap (a̱lyem)|a̱balilyem nTyap]] á̱ lyiat di̱ fam a̱tak-a̱tyin [[Si̱tet Ka̱duna]] a̱ni, ma̱ a̱byin [[Naijeriya]]. Tyuku ji, jija yet a̱lyem ka nang [[A̱tyuku]] ba ba̱ swan a̱byin ka á̱ ngyei [[Tyuku (a̱byin)|Tyuku]] ka lyiat a̱ni. Tyuku ji tai [[Takat (a̱balyem)|Takat]] a̱ swak kuzang a̱balyem di̱ sot a̱balilyem nTyap ji.
==Bu nwuan==
* [[Fantswam (a̱balyem)|Fantswam]]
* [[Gwoot (a̱balyem)|Gwoot]]
* [[Sholyia̱ (a̱balyem)|Sholyia̱]]
* [[Takat (a̱balyem)|Takat]]
* [[Tyia̱caat (a̱balyem)|Tyia̱caat]]
* [[Jhyuo (a̱lyem)|Jhyuo]]
[[Category:A̱lyem Tyap]]
62bq45ft0qz5t1yxzmk38i2cxxhkxyx
Tyia̱caat (a̱balyem)
0
1456
14834
14833
2022-07-15T12:12:38Z
Kambai Akau
15
wikitext
text/x-wiki
A̱lyem '''Tyia̱caat''' (ku '''Ca̱caat''' ku '''Tyecaat'''; Tyia̱caat: Tyia̱ca̱rak, Tyeca̱rak ku Ca̱ca̱rak) yet a̱nyiung di̱ sot [[Tyap (a̱lyem)|a̱balilyem nTyap]] á̱ lyiat di̱ fam a̱tak-a̱tyin [[Si̱tet Ka̱duna]] a̱ni, ma̱ a̱byin [[Naijeriya]]. Tyia̱caat ji, jija yet a̱lyem ka nang [[A̱tyia̱caat]] (ku A̱ca̱caat) ba ba̱ swan a̱byin ka á̱ ngyei [[Tyia̱ca̱rak (a̱byin)|Tyia̱caat]] ka lyiat a̱ni. Tyia̱ca̱rak ji tai [[Sholyia̱ (a̱balyem)|Sholyia̱]] a̱ swak kuzang a̱balyem di̱ sot a̱balilyem nTyap ji.
==Bu nwuan==
* [[Fantswam (a̱balyem)|Fantswam]]
* [[Gwoot (a̱balyem)|Gwoot]]
* [[Sholyia̱ (a̱balyem)|Sholyia̱]]
* [[Takat (a̱balyem)|Takat]]
* [[Tyuku (a̱balyem)|Tyuku]]
* [[Jhyuo (a̱lyem)|Jhyuo]]
[[Category:A̱lyem Tyap]]
cfo6j8omn4m7a4pp0ltiiipyrwv361w
Takat (a̱balyem)
0
1457
14830
2022-07-15T11:59:30Z
Kambai Akau
15
Kambai Akau shyei peji [[Takat (a̱balyem)]] nat [[Takad (a̱balyem)]]: Vak lyuut ghyang
wikitext
text/x-wiki
#REDIRECT [[Takad (a̱balyem)]]
lpxjznste2dng8c9t07bangmzlvwgtt
Takad (a̱balyem)
0
1458
14832
2022-07-15T12:07:28Z
Kambai Akau
15
Kambai Akau shyei peji [[Takad (a̱balyem)]] nat [[Ta̱kat (a̱balyem)]]: A̱tsak vak lyuut
wikitext
text/x-wiki
#REDIRECT [[Ta̱kat (a̱balyem)]]
buf0zcsvr94d8asmwqj3y5ercz6chza
Tyap Maba̱ta̱do (a̱balyem)
0
1459
14840
14839
2022-07-15T12:28:58Z
Kambai Akau
15
wikitext
text/x-wiki
A̱lyem '''Tyap Maba̱ta̱do''' ka kikya yet tangka̱i zwaa̱lyiat nTyap hu á̱ lyiat ma̱ [[A̱byintyok A̱tyap]] ka a̱ni. Ka̱ yet a̱nyiung di̱ sot [[Tyap (a̱lyem)|a̱balilyem nTyap]] ja nang á̱ lyiat di̱ fam a̱tak-a̱tyin [[Si̱tet Ka̱duna]] a̱ni, ma̱ a̱byin [[Naijeriya]]. Tyap Maba̱ta̱do ji, jija yet a̱lyem ka nang [[A̱tyap]] ba ba̱ swan a̱byin ka á̱ ngyei [[A̱byintyok A̱tyap|A̱tyap]] ka lyiat a̱ni. Tyap Maba̱ta̱do ji tai [[Tyia̱caat (a̱balyem)|Tyia̱caat]] a̱ swak kuzang a̱balyem di̱ sot a̱balilyem nTyap ji.
==Bu nwuan==
* [[Fantswam (a̱balyem)|Fantswam]]
* [[Gwoot (a̱balyem)|Gwoot]]
* [[Sholyia̱ (a̱balyem)|Sholyia̱]]
* [[Takat (a̱balyem)|Takat]]
* [[Tyia̱caat (a̱balyem)|Tyia̱caat]]
* [[Tyuku (a̱balyem)|Tyuku]]
* [[Jhyuo (a̱lyem)|Jhyuo]]
[[Category:A̱lyem Tyap]]
sbwiadasv35ghln544zfhuas1og7xzv
Gwood (a̱balyem)
0
1460
14843
2022-07-15T12:35:23Z
Kambai Akau
15
Redirected page to [[Gwoot (a̱balyem)]]
wikitext
text/x-wiki
#REDIRECT [[Gwoot (a̱balyem)]]
3n723mg8718bhsp6ucqy010xndr46ny
Gworog (a̱balyem)
0
1461
14844
2022-07-15T12:36:16Z
Kambai Akau
15
Redirected page to [[Gwoot (a̱balyem)]]
wikitext
text/x-wiki
#REDIRECT [[Gwoot (a̱balyem)]]
3n723mg8718bhsp6ucqy010xndr46ny
Gworok (a̱balyem)
0
1462
14845
2022-07-15T12:36:56Z
Kambai Akau
15
Redirected page to [[Gwoot (a̱balyem)]]
wikitext
text/x-wiki
#REDIRECT [[Gwoot (a̱balyem)]]
3n723mg8718bhsp6ucqy010xndr46ny
Gworok (a̱lyem)
0
1463
14846
2022-07-15T12:37:41Z
Kambai Akau
15
Redirected page to [[Gwoot (a̱balyem)]]
wikitext
text/x-wiki
#REDIRECT [[Gwoot (a̱balyem)]]
3n723mg8718bhsp6ucqy010xndr46ny
Gworog (a̱lyem)
0
1464
14847
2022-07-15T12:38:28Z
Kambai Akau
15
Redirected page to [[Gwoot (a̱balyem)]]
wikitext
text/x-wiki
#REDIRECT [[Gwoot (a̱balyem)]]
3n723mg8718bhsp6ucqy010xndr46ny
Gwoot (a̱lyem)
0
1465
14848
2022-07-15T12:38:55Z
Kambai Akau
15
Redirected page to [[Gwoot (a̱balyem)]]
wikitext
text/x-wiki
#REDIRECT [[Gwoot (a̱balyem)]]
3n723mg8718bhsp6ucqy010xndr46ny
Gwood (a̱lyem)
0
1466
14849
2022-07-15T12:45:13Z
Kambai Akau
15
Redirected page to [[Gwoot (a̱balyem)]]
wikitext
text/x-wiki
#REDIRECT [[Gwoot (a̱balyem)]]
3n723mg8718bhsp6ucqy010xndr46ny
Goot (a̱lyem)
0
1467
14850
2022-07-15T12:46:02Z
Kambai Akau
15
Redirected page to [[Gwoot (a̱balyem)]]
wikitext
text/x-wiki
#REDIRECT [[Gwoot (a̱balyem)]]
3n723mg8718bhsp6ucqy010xndr46ny
Golok (a̱lyem)
0
1468
14851
2022-07-15T12:46:35Z
Kambai Akau
15
Redirected page to [[Gwoot (a̱balyem)]]
wikitext
text/x-wiki
#REDIRECT [[Gwoot (a̱balyem)]]
3n723mg8718bhsp6ucqy010xndr46ny
Gwolok (a̱lyem)
0
1469
14852
2022-07-15T12:46:59Z
Kambai Akau
15
Redirected page to [[Gwoot (a̱balyem)]]
wikitext
text/x-wiki
#REDIRECT [[Gwoot (a̱balyem)]]
3n723mg8718bhsp6ucqy010xndr46ny
Gwolok (a̱balyem)
0
1470
14853
2022-07-15T12:47:22Z
Kambai Akau
15
Redirected page to [[Gwoot (a̱balyem)]]
wikitext
text/x-wiki
#REDIRECT [[Gwoot (a̱balyem)]]
3n723mg8718bhsp6ucqy010xndr46ny
Golok (a̱balyem)
0
1471
14854
2022-07-15T12:47:46Z
Kambai Akau
15
Redirected page to [[Gwoot (a̱balyem)]]
wikitext
text/x-wiki
#REDIRECT [[Gwoot (a̱balyem)]]
3n723mg8718bhsp6ucqy010xndr46ny
Sholyia̱ (a̱lyem)
0
1472
14855
2022-07-15T12:49:15Z
Kambai Akau
15
Redirected page to [[Sholyia̱ (a̱balyem)]]
wikitext
text/x-wiki
#REDIRECT [[Sholyia̱ (a̱balyem)]]
cuowxj92sl40lfoyfhz9qjngmomqd57
Sholyio (a̱lyem)
0
1473
14856
2022-07-15T12:49:44Z
Kambai Akau
15
Redirected page to [[Sholyia̱ (a̱balyem)]]
wikitext
text/x-wiki
#REDIRECT [[Sholyia̱ (a̱balyem)]]
cuowxj92sl40lfoyfhz9qjngmomqd57
Sholyio (a̱balyem)
0
1474
14857
2022-07-15T12:50:13Z
Kambai Akau
15
Redirected page to [[Sholyia̱ (a̱balyem)]]
wikitext
text/x-wiki
#REDIRECT [[Sholyia̱ (a̱balyem)]]
cuowxj92sl40lfoyfhz9qjngmomqd57
Sholyuo (a̱balyem)
0
1475
14859
2022-07-15T12:50:40Z
Kambai Akau
15
Redirected page to [[Sholyia̱ (a̱balyem)]]
wikitext
text/x-wiki
#REDIRECT [[Sholyia̱ (a̱balyem)]]
cuowxj92sl40lfoyfhz9qjngmomqd57
Sholyuo (a̱lyem)
0
1476
14860
2022-07-15T12:51:05Z
Kambai Akau
15
Redirected page to [[Sholyia̱ (a̱balyem)]]
wikitext
text/x-wiki
#REDIRECT [[Sholyia̱ (a̱balyem)]]
cuowxj92sl40lfoyfhz9qjngmomqd57
Ta̱kat (a̱lyem)
0
1477
14862
2022-07-15T12:53:02Z
Kambai Akau
15
Redirected page to [[Ta̱kat (a̱balyem)]]
wikitext
text/x-wiki
#REDIRECT [[Ta̱kat (a̱balyem)]]
buf0zcsvr94d8asmwqj3y5ercz6chza
Takat (a̱lyem)
0
1478
14863
2022-07-15T12:53:26Z
Kambai Akau
15
Redirected page to [[Ta̱kat (a̱balyem)]]
wikitext
text/x-wiki
#REDIRECT [[Ta̱kat (a̱balyem)]]
buf0zcsvr94d8asmwqj3y5ercz6chza
Ta̱kad (a̱balyem)
0
1479
14865
2022-07-15T12:54:36Z
Kambai Akau
15
Redirected page to [[Ta̱kat (a̱balyem)]]
wikitext
text/x-wiki
#REDIRECT [[Ta̱kat (a̱balyem)]]
buf0zcsvr94d8asmwqj3y5ercz6chza
Ta̱kad (a̱lyem)
0
1480
14866
2022-07-15T12:55:55Z
Kambai Akau
15
Redirected page to [[Ta̱kat (a̱balyem)]]
wikitext
text/x-wiki
#REDIRECT [[Ta̱kat (a̱balyem)]]
buf0zcsvr94d8asmwqj3y5ercz6chza
Tyia̱caat (a̱lyem)
0
1481
14867
2022-07-15T12:57:02Z
Kambai Akau
15
Redirected page to [[Tyia̱caat (a̱balyem)]]
wikitext
text/x-wiki
#REDIRECT [[Tyia̱caat (a̱balyem)]]
6x3zs93vjbrgdsxzzdntw4oe3euucvg
Tyecaat (a̱lyem)
0
1482
14868
2022-07-15T12:57:43Z
Kambai Akau
15
Redirected page to [[Tyia̱caat (a̱balyem)]]
wikitext
text/x-wiki
#REDIRECT [[Tyia̱caat (a̱balyem)]]
6x3zs93vjbrgdsxzzdntw4oe3euucvg
Tyecaat (a̱balyem)
0
1483
14869
2022-07-15T12:58:14Z
Kambai Akau
15
Redirected page to [[Tyia̱caat (a̱balyem)]]
wikitext
text/x-wiki
#REDIRECT [[Tyia̱caat (a̱balyem)]]
6x3zs93vjbrgdsxzzdntw4oe3euucvg
Tyecaad (a̱balyem)
0
1484
14871
2022-07-15T12:58:52Z
Kambai Akau
15
Redirected page to [[Tyia̱caat (a̱balyem)]]
wikitext
text/x-wiki
#REDIRECT [[Tyia̱caat (a̱balyem)]]
6x3zs93vjbrgdsxzzdntw4oe3euucvg
Tyecaad (a̱lyem)
0
1485
14872
2022-07-15T12:59:17Z
Kambai Akau
15
Redirected page to [[Tyia̱caat (a̱balyem)]]
wikitext
text/x-wiki
#REDIRECT [[Tyia̱caat (a̱balyem)]]
6x3zs93vjbrgdsxzzdntw4oe3euucvg
Tyia̱caad (a̱lyem)
0
1486
14873
2022-07-15T13:00:07Z
Kambai Akau
15
Redirected page to [[Tyia̱caat (a̱balyem)]]
wikitext
text/x-wiki
#REDIRECT [[Tyia̱caat (a̱balyem)]]
6x3zs93vjbrgdsxzzdntw4oe3euucvg
Tyia̱caad (a̱balyem)
0
1487
14874
2022-07-15T13:00:38Z
Kambai Akau
15
Redirected page to [[Tyia̱caat (a̱balyem)]]
wikitext
text/x-wiki
#REDIRECT [[Tyia̱caat (a̱balyem)]]
6x3zs93vjbrgdsxzzdntw4oe3euucvg
Ca̱caad (a̱balyem)
0
1488
14875
2022-07-15T13:01:04Z
Kambai Akau
15
Redirected page to [[Tyia̱caat (a̱balyem)]]
wikitext
text/x-wiki
#REDIRECT [[Tyia̱caat (a̱balyem)]]
6x3zs93vjbrgdsxzzdntw4oe3euucvg
Ca̱caad (a̱lyem)
0
1489
14876
2022-07-15T13:01:25Z
Kambai Akau
15
Redirected page to [[Tyia̱caat (a̱balyem)]]
wikitext
text/x-wiki
#REDIRECT [[Tyia̱caat (a̱balyem)]]
6x3zs93vjbrgdsxzzdntw4oe3euucvg
Ca̱caat (a̱lyem)
0
1490
14877
2022-07-15T13:01:48Z
Kambai Akau
15
Redirected page to [[Tyia̱caat (a̱balyem)]]
wikitext
text/x-wiki
#REDIRECT [[Tyia̱caat (a̱balyem)]]
6x3zs93vjbrgdsxzzdntw4oe3euucvg
Ca̱caat (a̱balyem)
0
1491
14878
2022-07-15T13:02:16Z
Kambai Akau
15
Redirected page to [[Tyia̱caat (a̱balyem)]]
wikitext
text/x-wiki
#REDIRECT [[Tyia̱caat (a̱balyem)]]
6x3zs93vjbrgdsxzzdntw4oe3euucvg
Ca̱ca̱rak (a̱balyem)
0
1492
14879
2022-07-15T13:02:52Z
Kambai Akau
15
Redirected page to [[Tyia̱caat (a̱balyem)]]
wikitext
text/x-wiki
#REDIRECT [[Tyia̱caat (a̱balyem)]]
6x3zs93vjbrgdsxzzdntw4oe3euucvg
Ca̱ca̱rag (a̱balyem)
0
1493
14880
2022-07-15T13:03:18Z
Kambai Akau
15
Redirected page to [[Tyia̱caat (a̱balyem)]]
wikitext
text/x-wiki
#REDIRECT [[Tyia̱caat (a̱balyem)]]
6x3zs93vjbrgdsxzzdntw4oe3euucvg
Ca̱ca̱rag (a̱lyem)
0
1494
14881
2022-07-15T13:04:20Z
Kambai Akau
15
Redirected page to [[Tyia̱caat (a̱balyem)]]
wikitext
text/x-wiki
#REDIRECT [[Tyia̱caat (a̱balyem)]]
6x3zs93vjbrgdsxzzdntw4oe3euucvg
Ca̱ca̱rak (a̱lyem)
0
1495
14882
2022-07-15T13:04:54Z
Kambai Akau
15
Redirected page to [[Tyia̱caat (a̱balyem)]]
wikitext
text/x-wiki
#REDIRECT [[Tyia̱caat (a̱balyem)]]
6x3zs93vjbrgdsxzzdntw4oe3euucvg
Tyeca̱rak (a̱lyem)
0
1496
14883
2022-07-15T13:05:37Z
Kambai Akau
15
Redirected page to [[Tyia̱caat (a̱balyem)]]
wikitext
text/x-wiki
#REDIRECT [[Tyia̱caat (a̱balyem)]]
6x3zs93vjbrgdsxzzdntw4oe3euucvg
Tya̱ca̱rak (a̱lyem)
0
1497
14884
2022-07-15T13:06:09Z
Kambai Akau
15
Redirected page to [[Tyia̱caat (a̱balyem)]]
wikitext
text/x-wiki
#REDIRECT [[Tyia̱caat (a̱balyem)]]
6x3zs93vjbrgdsxzzdntw4oe3euucvg
Tyia̱ca̱rak (a̱lyem)
0
1498
14885
2022-07-15T13:06:38Z
Kambai Akau
15
Redirected page to [[Tyia̱caat (a̱balyem)]]
wikitext
text/x-wiki
#REDIRECT [[Tyia̱caat (a̱balyem)]]
6x3zs93vjbrgdsxzzdntw4oe3euucvg
Tyia̱ca̱rag (a̱lyem)
0
1499
14886
2022-07-15T13:07:05Z
Kambai Akau
15
Redirected page to [[Tyia̱caat (a̱balyem)]]
wikitext
text/x-wiki
#REDIRECT [[Tyia̱caat (a̱balyem)]]
6x3zs93vjbrgdsxzzdntw4oe3euucvg
Tyia̱ca̱rag (a̱balyem)
0
1500
14887
2022-07-15T13:07:30Z
Kambai Akau
15
Redirected page to [[Tyia̱caat (a̱balyem)]]
wikitext
text/x-wiki
#REDIRECT [[Tyia̱caat (a̱balyem)]]
6x3zs93vjbrgdsxzzdntw4oe3euucvg
Tyia̱ca̱rak (a̱balyem)
0
1501
14888
2022-07-15T13:07:56Z
Kambai Akau
15
Redirected page to [[Tyia̱caat (a̱balyem)]]
wikitext
text/x-wiki
#REDIRECT [[Tyia̱caat (a̱balyem)]]
6x3zs93vjbrgdsxzzdntw4oe3euucvg
Tyeca̱rak (a̱balyem)
0
1502
14889
2022-07-15T13:08:30Z
Kambai Akau
15
Redirected page to [[Tyia̱caat (a̱balyem)]]
wikitext
text/x-wiki
#REDIRECT [[Tyia̱caat (a̱balyem)]]
6x3zs93vjbrgdsxzzdntw4oe3euucvg
Tyeca̱rag (a̱balyem)
0
1503
14890
2022-07-15T13:09:09Z
Kambai Akau
15
Redirected page to [[Tyia̱caat (a̱balyem)]]
wikitext
text/x-wiki
#REDIRECT [[Tyia̱caat (a̱balyem)]]
6x3zs93vjbrgdsxzzdntw4oe3euucvg
Wukipedia:A̱yaakwak a̱son
4
1504
15518
15476
2022-08-06T08:31:27Z
LisafBia6531
225
wikitext
text/x-wiki
{{Databox|item=Q4039395}}
[[File:Wikipedia Administrator.svg|thumb|Á̱ ni̱ fa nkyangta̱m Wukipedia na̱ yet nang kyangshyok a̱byin a̱tyulyang a̱vwuo hwa a̱ni, si̱ ku tyia̱ á̱ ni̱ ngwa̱i cuk a̱kwak a̱son ji mi̱ di̱n jen jhyang nang "á̱ jong ang kyangshyok a̱byin hu" a̱ni. Ma̱nang a̱tsak a̱tyulyang a̱vwuo bye byia̱ yaya a̱yaaofit nang á̱ghyang á̱nietnta̱m si̱ mi̱n ba̱ng a̱ni, ma a̱nia wa nang a̱yaakwak a̱son ba byia̱ ncet nyia̱ nkyang njhyang nang konyan wa maai nyia̱ a̱ni bah, a̱wot – nang a̱tsak a̱tyulyang a̱vwuo meang – ba̱ si̱ mi̱n ngyet a̱tsatsak ba̱ swak kuzang a̱tyujhyuk a̱ni.]]
'''A̱yaakwak a̱son''' ba, á̱ ka ngyei '''a̱yaadmin''' ku '''a̱yaasi̱sop''' (a̱nietnta̱m si̱stem, ku "sysops" di̱n Shong), yet á̱nietjhyuk Wukipedia bya nang á̱ ku nwuak cet nyian nkyang na̱ na vwuo á̱ghyang á̱nietjhyuk a̱khwu nyia̱ a̱ni di̱ Wukipedia nTyap hu. Si̱ nani, ni̱nia yet: cet [[WP:BLOCK|fam]] ma̱ng ti̱n fam hu neet di̱ li̱la̱n á̱nietjhyuk, a̱ka̱vwuonswat IP, ma̱ng shi a̱swap IP neet di̱ jhyuk, jhyuk ngwat nang á̱ ku [[Wikipedia:Protection policy#full|cok gba̱mgbam]] a̱ni, ngwat nang á̱ [[WP:PROTECT|cam]] ma̱ng si̱ na nang á̱ nwai cam a̱ni neet di̱ jhyuk, [[WP:DELETE|ti̱n]] ngwat ba̱ ka [[WP:UNDELETE|bwuok ma̱ng]] ngwat nang á̱ ku ti̱n a̱ni, [[WP:MOVE|shai lyulyoot]] ngwat di̱ mi̱n dyem, a̱wot ba̱ ka nyia̱ ta̱m ma̱ng [[/Tools|nkyangta̱m]] njhyang nang á̱ khap á̱ si̱ sak zan a̱ni.
A̱yaakwak a̱son ba ni̱ pyia̱t mkpa̱t nani nang á̱nietbeang ta̱m á̱ nwai teang ba kurum bya a̱ni lilyim nang ba̱ ku byia̱k cen [[WP:RfA|nwuan sot-á̱nietjhyuk]] hu. Ba̱ nwai yet á̱nietnta̱m [[Wukipedia:Sotbeang Wukimedia Foundation|Sotbeang Wukimedia]] á̱ teang mba kurum a̱ni. Á̱ mbyia̱ jen ji nang á̱ na ntyia̱ mba ba̱ nyia̱ ta̱m ma̱ng nkyangta̱m mba na di̱ ta bah, a̱wot ta hwa ba̱ tyong nyian ta̱m ma̱ng á̱na di̱n jen fwuon zok ba̱ byia̱ a̱ka̱ta a̱ni da̱nian shyiat a̱fi̱ng a̱pyia̱ mba. Yok kwok a̱yaakwak a̱son ba̱ yet kyang nyiung hwa ma̱ng [[m:System administrators|a̱yaakwak a̱son si̱stem Wukimedia]] ("sysadmins") ba bah.
Wukipedia nTyap hu byia̱ a̱kwak a̱son {{NUMBEROFADMINS}} wa mi̱ di̱ yong huni (li {{Plainlink|url=//kcg.wikipedia.org/w/index.php?title=Special:ListUsers/sysop&limit=2000|name=a̱jhyem lyulyoot li̱la̱n ma̱ng a̱ka̱wat a̱kwak a̱son}} ku [[Wukipedia:Lyulyoot a̱yaakwak a̱son|lyulyoot a̱yaakwak a̱son di̱n vak shi nta̱m]]).
== Yet a̱kwak a̱son ==
{{Main|Wukipedia:Guide to requests for adminship}}
{{Notice|Each individual [[m:Wikimedia projects|Wikimedia project]] (including [[m:List of Wikipedias|other Wikipedias]]) may have its own policy for granting adminship.}}
{{Shortcut|WP:CANDIDATE}}
The [[English Wikipedia]] has no official requirements to become an administrator. Any registered user can [[WP:RFA|request adminship]] ("RFA") from the community, regardless of their Wikipedia experience. However, administrators are expected to have the trust and confidence of the community, so requests from users who do not have considerable experience are not usually approved. Any editor can comment on a request, and each editor will assess each candidate in their own way. However, only registered editors can "vote" in such requests.
Before requesting or accepting a nomination, candidates should generally be active, regular, and long-term Wikipedia editors, be familiar with the procedures and practices of Wikipedia, respect and understand its policies, and have gained the general trust of the community. Candidates are also required to disclose whether they have ever edited Wikipedia for pay. Questions regarding this are permitted to be asked of every candidate, by any editor in the community, throughout the RFA process.
A discussion takes place for seven days about whether the candidate should become an administrator. Per community consensus, RfAs are advertised on [[MediaWiki:Watchlist-messages|editors' watchlists]] and [[Template:Centralized discussion]]. The community has instituted a question limit: no editor may ask more than two questions of a candidate. Also disallowed are multi-part questions that are framed as one question, but which in effect ask multiple questions and exceed the limit. [[WP:CRAT|Bureaucrats]] may "clerk" RfAs, dealing with comments and/or votes which they deem to be inappropriate.
The RfA process allows other editors to get to know the candidate, and explore the candidate's involvement and background as an editor, conduct in discussions, and understanding of the role they are requesting, and to state if they support or oppose the request, along with their reasons and impressions of the candidate. An [[WP:UNINVOLVED|uninvolved]] bureaucrat then determines if there is [[Wikipedia:Consensus|consensus]] to approve the request. This determination is not based exclusively on the percentage of support, but in practice most RfAs above 75% pass. The community has determined that ''in general'', RfAs between 65 and 75% support should be subject to the discretion of bureaucrats. (Therefore, it logically follows that almost all RfAs below 65% support will fail.)
While RFA is an intensive process, the quality of feedback and review on the candidate's readiness and demeanor by experienced editors is often very high. Applicants who are unsuccessful but take steps to address points raised will often succeed on a subsequent request some months later. If you are interested in requesting adminship, you should first read the [[Wikipedia:Guide to requests for adminship|guide to requests for adminship]] and the [[Wikipedia:Requests for adminship/Nominate|nomination instructions]]. When you are ready to apply, you may add your nomination to the [[Wikipedia:Requests for adminship]] ("RFA") page, according to the instructions on that page.
'''Only one account of a given person may have administrative tools'''. The only exception is administrators may own [[WP:Bots|bots]] with administrative access. See [[WP:ADMINSOCK]].
Adminship is granted indefinitely, and is removed only upon request, under circumstances involving high-level intervention (see [[#Grievances by users ("administrator abuse")|administrator abuse]] below), or temporarily for inactive admins.
=== Places where administrators in particular can assist ===
Administrator rights can be particularly helpful in certain areas of Wikipedia:
* [[:Category:Administrative backlog|Administrative backlogs]]
* [[Wikipedia:Administrator intervention against vandalism|Anti-vandalism]]
* [[Wikipedia:Copyright problems|Copyright problems]] ([[Wikipedia:Copyright problems/Advice for admins|advice for admins]])
* [[Wikipedia:Administrators' noticeboard/Incidents|Incidents for admin attention]]
* [[Main Page]] sections, such as [[Template:In the news|In the news]] or [[Template:Did you know|Did you know]]
* [[Wikipedia:Recent changes patrol|Recent changes patrol]]
* [[:Category:Candidates for speedy deletion|Speedy deletion requests]]
* [[Wikipedia:Administrators' noticeboard/3RR|Three-revert rule and edit warring violations]]
See also [[Wikipedia:Admins willing to make difficult blocks]] and [[Wikipedia:IRC##wikipedia-en-admins|the administrators channel on IRC]] for IRC users.
"Uninvolved administrators" can also help in the management of [[WP:ARBCOM|Arbitration Committee]] remedies and the [[WP:DR|dispute resolution]] concerning disruptive areas and situations. Administrators acting in this role are ''neutral''; they do not have any direct involvement in the issues they are helping people with. Lists of sanctions that are to be enforced by neutral administrators can be found at [[Wikipedia:General sanctions]] and [[Wikipedia:Arbitration/Active sanctions]] (see also requests for enforcement at [[Wikipedia:Arbitration/Requests/Enforcement]]).
{{anchor|anyuser}}
== A̱ka̱fwuop nta ==
* [[Meta:Administrators of Wikimedia projects/Wikipedias|Administrators in all Wikipedias]], [[Wikipedia:Meta|Meta-Wiki]]
{{Administrator's guide}}
{{RfA Navigation|tstyle=background: #ccccff;|gbstyle=background: #ddddff;|state=collapsed}}
{{Li̱la̱n Wukipedia|á̱ ta̱luk}}
[[Category:Ba̱ng cuk a̱kwak a̱son Wukipedia|{{PAGENAME}}]]
[[Category:Wikipedia policies]]
ta8x3yn64bky9ivlk6n6na9yfmg2fmb
Ta̱mpi̱let:Legend
10
1505
14907
2022-07-15T22:05:03Z
Kwamikagami
349
Created page with "<includeonly><!-- --><templatestyles src="Legend/styles.css" /><!-- --><div class="legend"><!-- --><span class="legend-color" style="<!-- -->{{#if:{{{border|}}}|border: {{{border}}};|{{#if:{{{outline|}}}|border: 1px solid {{{outline}}};}}}}<!-- -->{{#if:{{{1|}}}|{{greater color contrast ratio|{{{1}}}|white|black|css=y}}}}<!-- -->{{#if:{{{textcolor|}}}|color:{{{textcolor}}};}}<!-- -->{{#if:{{{size|}}}|font-size:{{{size}}};}}"><!-- -->{{#if:{{{text|}}}{{{alt|}}}..."
wikitext
text/x-wiki
<includeonly><!--
--><templatestyles src="Legend/styles.css" /><!--
--><div class="legend"><!--
--><span class="legend-color" style="<!--
-->{{#if:{{{border|}}}|border: {{{border}}};|{{#if:{{{outline|}}}|border: 1px solid {{{outline}}};}}}}<!--
-->{{#if:{{{1|}}}|{{greater color contrast ratio|{{{1}}}|white|black|css=y}}}}<!--
-->{{#if:{{{textcolor|}}}|color:{{{textcolor}}};}}<!--
-->{{#if:{{{size|}}}|font-size:{{{size}}};}}"><!--
-->{{#if:{{{text|}}}{{{alt|}}}
| <span class="legend-text" style="{{#if:{{{alt|}}}|color:{{{1|}}};}}font-family: monospace, monospace;">{{If empty|{{{alt|}}}|{{{text|}}}| }}</span>| }}<!--
--></span><!--
--> {{{2|}}}<!--
--></div><!--
--></includeonly><noinclude>
{{Documentation}}
</noinclude>
hyj7afobaop0ywtkrhvhvssig18rsb7
Ta̱mpi̱let:Legend/styles.css
10
1506
14909
2022-07-15T22:05:41Z
Kwamikagami
349
Created page with "/* {{pp-template}} */ .legend { page-break-inside: avoid; break-inside: avoid-column; } .legend-color { display: inline-block; min-width: 1.25em; height: 1.25em; line-height: 1.25; margin: 1px 0; text-align: center; border: 1px solid black; background-color: transparent; color: black; } .legend-text {/*empty for now, but part of the design!*/}"
sanitized-css
text/css
/* {{pp-template}} */
.legend {
page-break-inside: avoid;
break-inside: avoid-column;
}
.legend-color {
display: inline-block;
min-width: 1.25em;
height: 1.25em;
line-height: 1.25;
margin: 1px 0;
text-align: center;
border: 1px solid black;
background-color: transparent;
color: black;
}
.legend-text {/*empty for now, but part of the design!*/}
snsolhs3l12896xqc89e8b5hu9itnmf
Ta̱mpi̱let:Greater color contrast ratio
10
1507
14910
2022-07-15T22:07:06Z
Kwamikagami
349
Created page with "<includeonly>{{safesubst:#invoke:Color contrast|greatercontrast}}</includeonly><noinclude> {{documentation}} </noinclude>"
wikitext
text/x-wiki
<includeonly>{{safesubst:#invoke:Color contrast|greatercontrast}}</includeonly><noinclude>
{{documentation}}
</noinclude>
rf2pxg07x3v7fq91j9zzu6nj4e8wbrh
Module:Color contrast
828
1508
14911
2022-07-15T22:07:36Z
Kwamikagami
349
Created page with "-- -- This module implements -- {{Color contrast ratio}} -- {{Greater color contrast ratio}} -- {{ColorToLum}} -- {{RGBColorToLum}} -- local p = {} local HTMLcolor = mw.loadData( 'Module:Color contrast/colors' ) local function sRGB (v) if (v <= 0.03928) then v = v / 12.92 else v = math.pow((v+0.055)/1.055, 2.4) end return v end local function rgbdec2lum(R, G, B) if ( 0 <= R and R < 256 and 0 <= G and G < 256 and 0 <= B and B < 256 ) then return 0.2126 *..."
Scribunto
text/plain
--
-- This module implements
-- {{Color contrast ratio}}
-- {{Greater color contrast ratio}}
-- {{ColorToLum}}
-- {{RGBColorToLum}}
--
local p = {}
local HTMLcolor = mw.loadData( 'Module:Color contrast/colors' )
local function sRGB (v)
if (v <= 0.03928) then
v = v / 12.92
else
v = math.pow((v+0.055)/1.055, 2.4)
end
return v
end
local function rgbdec2lum(R, G, B)
if ( 0 <= R and R < 256 and 0 <= G and G < 256 and 0 <= B and B < 256 ) then
return 0.2126 * sRGB(R/255) + 0.7152 * sRGB(G/255) + 0.0722 * sRGB(B/255)
else
return ''
end
end
local function hsl2lum(h, s, l)
if ( 0 <= h and h < 360 and 0 <= s and s <= 1 and 0 <= l and l <= 1 ) then
local c = (1 - math.abs(2*l - 1))*s
local x = c*(1 - math.abs( math.fmod(h/60, 2) - 1) )
local m = l - c/2
local r, g, b = m, m, m
if( 0 <= h and h < 60 ) then
r = r + c
g = g + x
elseif( 60 <= h and h < 120 ) then
r = r + x
g = g + c
elseif( 120 <= h and h < 180 ) then
g = g + c
b = b + x
elseif( 180 <= h and h < 240 ) then
g = g + x
b = b + c
elseif( 240 <= h and h < 300 ) then
r = r + x
b = b + c
elseif( 300 <= h and h < 360 ) then
r = r + c
b = b + x
end
return rgbdec2lum(255*r, 255*g, 255*b)
else
return ''
end
end
local function color2lum(c)
if (c == nil) then
return ''
end
-- html '#' entity
c = c:gsub("#", "#")
-- whitespace
c = c:match( '^%s*(.-)[%s;]*$' )
-- unstrip nowiki strip markers
c = mw.text.unstripNoWiki(c)
-- lowercase
c = c:lower()
-- first try to look it up
local L = HTMLcolor[c]
if (L ~= nil) then
return L
end
-- convert from hsl
if mw.ustring.match(c,'^hsl%([%s]*[0-9][0-9%.]*[%s]*,[%s]*[0-9][0-9%.]*%%[%s]*,[%s]*[0-9][0-9%.]*%%[%s]*%)$') then
local h, s, l = mw.ustring.match(c,'^hsl%([%s]*([0-9][0-9%.]*)[%s]*,[%s]*([0-9][0-9%.]*)%%[%s]*,[%s]*([0-9][0-9%.]*)%%[%s]*%)$')
return hsl2lum(tonumber(h), tonumber(s)/100, tonumber(l)/100)
end
-- convert from rgb
if mw.ustring.match(c,'^rgb%([%s]*[0-9][0-9]*[%s]*,[%s]*[0-9][0-9]*[%s]*,[%s]*[0-9][0-9]*[%s]*%)$') then
local R, G, B = mw.ustring.match(c,'^rgb%([%s]*([0-9][0-9]*)[%s]*,[%s]*([0-9][0-9]*)[%s]*,[%s]*([0-9][0-9]*)[%s]*%)$')
return rgbdec2lum(tonumber(R), tonumber(G), tonumber(B))
end
-- convert from rgb percent
if mw.ustring.match(c,'^rgb%([%s]*[0-9][0-9%.]*%%[%s]*,[%s]*[0-9][0-9%.]*%%[%s]*,[%s]*[0-9][0-9%.]*%%[%s]*%)$') then
local R, G, B = mw.ustring.match(c,'^rgb%([%s]*([0-9][0-9%.]*)%%[%s]*,[%s]*([0-9][0-9%.]*)%%[%s]*,[%s]*([0-9][0-9%.]*)%%[%s]*%)$')
return rgbdec2lum(255*tonumber(R)/100, 255*tonumber(G)/100, 255*tonumber(B)/100)
end
-- remove leading # (if there is one) and whitespace
c = mw.ustring.match(c, '^[%s#]*([a-f0-9]*)[%s]*$')
-- split into rgb
local cs = mw.text.split(c or '', '')
if( #cs == 6 ) then
local R = 16*tonumber('0x' .. cs[1]) + tonumber('0x' .. cs[2])
local G = 16*tonumber('0x' .. cs[3]) + tonumber('0x' .. cs[4])
local B = 16*tonumber('0x' .. cs[5]) + tonumber('0x' .. cs[6])
return rgbdec2lum(R, G, B)
elseif ( #cs == 3 ) then
local R = 16*tonumber('0x' .. cs[1]) + tonumber('0x' .. cs[1])
local G = 16*tonumber('0x' .. cs[2]) + tonumber('0x' .. cs[2])
local B = 16*tonumber('0x' .. cs[3]) + tonumber('0x' .. cs[3])
return rgbdec2lum(R, G, B)
end
-- failure, return blank
return ''
end
-- This exports the function for use in other modules.
-- The colour is passed as a string.
function p._lum(color)
return color2lum(color)
end
function p._greatercontrast(args)
local bias = tonumber(args['bias'] or '0') or 0
local css = (args['css'] and args['css'] ~= '') and true or false
local v1 = color2lum(args[1] or '')
local c2 = args[2] or '#FFFFFF'
local v2 = color2lum(c2)
local c3 = args[3] or '#000000'
local v3 = color2lum(c3)
local ratio1 = -1;
local ratio2 = -1;
if (type(v1) == 'number' and type(v2) == 'number') then
ratio1 = (v2 + 0.05)/(v1 + 0.05)
ratio1 = (ratio1 < 1) and 1/ratio1 or ratio1
end
if (type(v1) == 'number' and type(v3) == 'number') then
ratio2 = (v3 + 0.05)/(v1 + 0.05)
ratio2 = (ratio2 < 1) and 1/ratio2 or ratio2
end
if css then
local c1 = args[1] or ''
if mw.ustring.match(c1, '^[A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9]$') or
mw.ustring.match(c1, '^[A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9]$') then
c1 = '#' .. c1
end
if mw.ustring.match(c2, '^[A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9]$') or
mw.ustring.match(c2, '^[A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9]$') then
c2 = '#' .. c2
end
if mw.ustring.match(v3, '^[A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9]$') or
mw.ustring.match(v3, '^[A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9]$') then
c3 = '#' .. c3
end
return 'background-color:' .. c1 .. '; color:' .. ((ratio1 > 0) and (ratio2 > 0) and ((ratio1 + bias > ratio2) and c2 or c3) or '') .. ';'
end
return (ratio1 > 0) and (ratio2 > 0) and ((ratio1 + bias > ratio2) and c2 or c3) or ''
end
function p._ratio(args)
local v1 = color2lum(args[1])
local v2 = color2lum(args[2])
if (type(v1) == 'number' and type(v2) == 'number') then
-- v1 should be the brighter of the two.
if v2 > v1 then
v1, v2 = v2, v1
end
return (v1 + 0.05)/(v2 + 0.05)
else
return args['error'] or '?'
end
end
function p._styleratio(args)
local style = (args[1] or ''):lower()
local bg, fg = 'white', 'black'
local lum_bg, lum_fg = 1, 0
if args[2] then
local lum = color2lum(args[2])
if lum ~= '' then bg, lum_bg = args[2], lum end
end
if args[3] then
local lum = color2lum(args[3])
if lum ~= '' then fg, lum_fg = args[3], lum end
end
local slist = mw.text.split(mw.ustring.gsub(mw.ustring.gsub(style or '', '&#[Xx]23;', '#'), '#', '#'), ';')
for k = 1,#slist do
local s = slist[k]
local k,v = s:match( '^[%s]*([^:]-):([^:]-)[%s;]*$' )
k = k or ''
v = v or ''
if (k:match('^[%s]*(background)[%s]*$') or k:match('^[%s]*(background%-color)[%s]*$')) then
local lum = color2lum(v)
if( lum ~= '' ) then bg, lum_bg = v, lum end
elseif (k:match('^[%s]*(color)[%s]*$')) then
local lum = color2lum(v)
if( lum ~= '' ) then bg, lum_fg = v, lum end
end
end
if lum_bg > lum_fg then
return (lum_bg + 0.05)/(lum_fg + 0.05)
else
return (lum_fg + 0.05)/(lum_bg + 0.05)
end
end
--[[
Use {{#invoke:Color contrast|somecolor}} directly or
{{#invoke:Color contrast}} from a wrapper template.
Parameters:
-- |1= — required; A color to check.
--]]
function p.lum(frame)
local color = frame.args[1] or frame:getParent().args[1]
return p._lum(color)
end
function p.ratio(frame)
local args = frame.args[1] and frame.args or frame:getParent().args
return p._ratio(args)
end
function p.styleratio(frame)
local args = frame.args[1] and frame.args or frame:getParent().args
return p._styleratio(args)
end
function p.greatercontrast(frame)
local args = frame.args[1] and frame.args or frame:getParent().args
return p._greatercontrast(args)
end
return p
3j3oaih63ygo9p806h5yxpscaqh3xu9
Module:Color contrast/colors
828
1509
14912
2022-07-15T22:08:24Z
Kwamikagami
349
Created page with "return { aliceblue = 0.92880068253475, antiquewhite = 0.84646951707754, aqua = 0.7874, aquamarine = 0.8078549208338, azure = 0.97265264954166, beige = 0.8988459998705, bisque = 0.80732327372979, black = 0, blanchedalmond = 0.85084439608156, blue = 0.0722, blueviolet = 0.12622014321946, brown = 0.098224287876511..."
Scribunto
text/plain
return {
aliceblue = 0.92880068253475,
antiquewhite = 0.84646951707754,
aqua = 0.7874,
aquamarine = 0.8078549208338,
azure = 0.97265264954166,
beige = 0.8988459998705,
bisque = 0.80732327372979,
black = 0,
blanchedalmond = 0.85084439608156,
blue = 0.0722,
blueviolet = 0.12622014321946,
brown = 0.098224287876511,
burlywood = 0.51559844533893,
cadetblue = 0.29424681085422,
chartreuse = 0.76032025902623,
chocolate = 0.23898526114557,
coral = 0.37017930872924,
cornflowerblue = 0.30318641994179,
cornsilk = 0.93562110372965,
crimson = 0.16042199953026,
cyan = 0.7874,
darkblue = 0.018640801980939,
darkcyan = 0.20329317839046,
darkgoldenrod = 0.27264703559993,
darkgray = 0.39675523072563,
darkgreen = 0.091143429047575,
darkgrey = 0.39675523072563,
darkkhaki = 0.45747326349994,
darkmagenta = 0.07353047651207,
darkolivegreen = 0.12651920884889,
darkorange = 0.40016167026524,
darkorchid = 0.13413142174857,
darkred = 0.054889674531132,
darksalmon = 0.40541471563381,
darkseagreen = 0.43789249325969,
darkslateblue = 0.065792846227988,
darkslategray = 0.067608151928044,
darkslategrey = 0.067608151928044,
darkturquoise = 0.4874606277449,
darkviolet = 0.10999048339343,
deeppink = 0.23866895828276,
deepskyblue = 0.44481603395575,
dimgray = 0.14126329114027,
dimgrey = 0.14126329114027,
dodgerblue = 0.27442536991456,
firebrick = 0.10724525535015,
floralwhite = 0.95922484825004,
forestgreen = 0.18920812076002,
fuchsia = 0.2848,
gainsboro = 0.71569350050648,
ghostwhite = 0.94311261886323,
gold = 0.69860877428159,
goldenrod = 0.41919977809569,
gray = 0.2158605001139,
green = 0.15438342968146,
greenyellow = 0.80609472611453,
grey = 0.2158605001139,
honeydew = 0.96336535554782,
hotpink = 0.34658438169715,
indianred = 0.21406134963884,
indigo = 0.03107561486337,
ivory = 0.99071270600615,
khaki = 0.77012343394121,
lavender = 0.80318750514521,
lavenderblush = 0.90172748631046,
lawngreen = 0.73905893124963,
lemonchiffon = 0.94038992245622,
lightblue = 0.63709141280807,
lightcoral = 0.35522120733135,
lightcyan = 0.94587293494829,
lightgoldenrodyellow = 0.93348351018297,
lightgray = 0.65140563741982,
lightgreen = 0.69091979956865,
lightgrey = 0.65140563741982,
lightpink = 0.58566152734898,
lightsalmon = 0.4780675225206,
lightseagreen = 0.35050145117042,
lightskyblue = 0.56195637618331,
lightslategray = 0.23830165007287,
lightslategrey = 0.23830165007287,
lightsteelblue = 0.53983888284666,
lightyellow = 0.98161818392882,
lime = 0.7152,
limegreen = 0.44571042246098,
linen = 0.88357340984379,
magenta = 0.2848,
maroon = 0.045891942324215,
mediumaquamarine = 0.49389703310801,
mediumblue = 0.044077780212328,
mediumorchid = 0.21639251153773,
mediumpurple = 0.22905858091648,
mediumseagreen = 0.34393112338131,
mediumslateblue = 0.20284629471622,
mediumspringgreen = 0.70704308194184,
mediumturquoise = 0.5133827926448,
mediumvioletred = 0.14371899849357,
midnightblue = 0.02071786635086,
mintcream = 0.97834604947588,
mistyrose = 0.82183047859185,
moccasin = 0.80083000991567,
navajowhite = 0.76519682342785,
navy = 0.015585128108224,
oldlace = 0.91900633405549,
olive = 0.20027537200568,
olivedrab = 0.22593150951929,
orange = 0.4817026703631,
orangered = 0.25516243753416,
orchid = 0.31348806761439,
palegoldenrod = 0.78792647887614,
palegreen = 0.77936759006353,
paleturquoise = 0.76436077921714,
palevioletred = 0.28754994117889,
papayawhip = 0.87797100199835,
peachpuff = 0.74905589878251,
peru = 0.30113074877936,
pink = 0.63271070702466,
plum = 0.45734221587969,
powderblue = 0.68254586500605,
purple = 0.061477070432439,
rebeccapurple = 0.07492341159447,
red = 0.2126,
rosybrown = 0.32319457649407,
royalblue = 0.16663210743188,
saddlebrown = 0.097922285020521,
salmon = 0.36977241527596,
sandybrown = 0.46628543696283,
seagreen = 0.19734199706275,
seashell = 0.92737862206922,
sienna = 0.13697631337098,
silver = 0.52711512570581,
skyblue = 0.55291668518184,
slateblue = 0.14784278062136,
slategray = 0.20896704076536,
slategrey = 0.20896704076536,
snow = 0.96533341834849,
springgreen = 0.73052306068529,
steelblue = 0.20562642207625,
tan = 0.48237604163921,
teal = 0.16996855778968,
thistle = 0.56818401093733,
tomato = 0.30638612719415,
turquoise = 0.5895536427578,
violet = 0.40315452986676,
wheat = 0.74909702820482,
white = 1,
whitesmoke = 0.91309865179342,
yellow = 0.9278,
yellowgreen = 0.50762957208707,
}
chi69ar1btd4wp6xbk3uez6sfu0vipn
Ta̱mpi̱let:NUMBEROFFAMILY
10
1510
14919
2022-07-15T22:47:49Z
Kambai Akau
15
Created page with "{{#ifeq:{{{3|}}}|N |{{formatnum:{{NUMBEROFFAMILY/data|{{{2}}}|{{{1}}}}}}} |{{NUMBEROFFAMILY/data|{{{2}}}|{{{1}}}}} }}<noinclude>{{documentation}}</noinclude>"
wikitext
text/x-wiki
{{#ifeq:{{{3|}}}|N
|{{formatnum:{{NUMBEROFFAMILY/data|{{{2}}}|{{{1}}}}}}}
|{{NUMBEROFFAMILY/data|{{{2}}}|{{{1}}}}}
}}<noinclude>{{documentation}}</noinclude>
1mtljo3k6o8qajrfz9f8c1oc9rjz9o6
Ta̱mpi̱let:NUMBEROFFAMILY/doc
10
1511
14920
2022-07-15T22:49:56Z
Kambai Akau
15
Created page with "{{Documentation subpage}} __NOTOC__ Template used to show the variables NUMBEROFARTICLES, NUMBEROFPAGES, NUMBEROFEDITS, NUMBEROFUSERS, NUMBEROFACTIVEUSERS, NUMBEROFADMINS and NUMBEROFFILES for '''language families''' of Wikipedias. === Family codes === The language families' names are based on the [[:w:en:List of ISO 639-5 codes|ISO 639-5]] standard unless a code is not defined, in which case the English name of the family is used instead. === How it works === This tem..."
wikitext
text/x-wiki
{{Documentation subpage}}
__NOTOC__
Template used to show the variables NUMBEROFARTICLES, NUMBEROFPAGES, NUMBEROFEDITS, NUMBEROFUSERS, NUMBEROFACTIVEUSERS, NUMBEROFADMINS and NUMBEROFFILES for '''language families''' of Wikipedias.
=== Family codes ===
The language families' names are based on the [[:w:en:List of ISO 639-5 codes|ISO 639-5]] standard unless a code is not defined, in which case the English name of the family is used instead.
=== How it works ===
This template depends on its subpage <small>([[Template:NUMBEROFFAMILY/data]])</small>, which serves as a wrapper around data from [[Template:NUMBEROFGROUP/data]] and [[Template:NUMBEROF/data]], which in turn is automatically updated by [[User:Acebot|Acebot]] daily, shortly after midnight (GMT).
=== Usage ===
It is used by 3 parameters, the third one is optional .
* '''First parameter (variable):''' ARTICLES, PAGES, EDITS, USERS, ACTIVEUSERS, ADMINS or FILES.
* '''Second parameter (language family):''' ine, map, tut, sit, nic, ccn...
* Third parameter (format): using N, it prints the number grouped in three numbers, without it it is shown in ''raw format'', it permits to make mathematical operations with parserFunctions.
Example, to show the sum of the number of articles of Wikipedias in Indo-European languages in ''raw'' format:
<code><nowiki>{{NUMBEROFFAMILY|ARTICLES|ine}}</nowiki></code> → {{NUMBEROFFAMILY|ARTICLES|ine}}
The template is updated by a pywikipedia bot using this [[w:es:Usuario:Bigsus-bot/Variables.py|script]].
=== See also ===
*{{tl|NUMBEROF}} same as above, but with individual Wikipedias rather than language families.
*{{tl|NUMBEROFGROUP}} same as above, but with groups of related languages within a language family (Germanic, Slavic, Bornean, Semetic, Turkic, etc.)
<includeonly>
</includeonly>
5sn48ihc4iodwwpuct7zi1hy1ze9v6i
Ta̱mpi̱let:NUMBEROFFAMILY/data
10
1512
14921
2022-07-15T22:55:43Z
Kambai Akau
15
Created page with "<!-- If you want to add a new language family, ask for it in the talk page, not here directly. Uses ISO 639-5 codes wherever available --><onlyinclude>{{#switch:{{{1}}} | ine = {{#switch:{{{2}}} | NUMBEROFARTICLES | ARTICLES = {{#expr: {{NUMBEROFGROUP|ARTICLES|gem}}+{{NUMBEROFGROUP|ARTICLES|itc}}+{{NUMBEROFGROUP|ARTICLES|sla}}+{{NUMBEROFGROUP|ARTICLES|inc}}+{{NUMBEROFGROUP|ARTICLES|iir}}+{{NUMBEROFGROUP|ARTICLES|bat}}+{{NUMBEROFGROUP|ARTICLES|cel}}+{{NUMBEROFGROUP|ARTIC..."
wikitext
text/x-wiki
<!-- If you want to add a new language family, ask for it in the talk page, not here directly. Uses ISO 639-5 codes wherever available --><onlyinclude>{{#switch:{{{1}}}
| ine = {{#switch:{{{2}}}
| NUMBEROFARTICLES | ARTICLES = {{#expr: {{NUMBEROFGROUP|ARTICLES|gem}}+{{NUMBEROFGROUP|ARTICLES|itc}}+{{NUMBEROFGROUP|ARTICLES|sla}}+{{NUMBEROFGROUP|ARTICLES|inc}}+{{NUMBEROFGROUP|ARTICLES|iir}}+{{NUMBEROFGROUP|ARTICLES|bat}}+{{NUMBEROFGROUP|ARTICLES|cel}}+{{NUMBEROFGROUP|ARTICLES|grk}}+{{NUMBEROFGROUP|ARTICLES|sqj}}+{{NUMBEROFGROUP|ARTICLES|hyx}} }}
| NUMBEROFFILES | FILES = {{#expr: {{NUMBEROFGROUP|FILES|gem}}+{{NUMBEROFGROUP|FILES|itc}}+{{NUMBEROFGROUP|FILES|sla}}+{{NUMBEROFGROUP|FILES|inc}}+{{NUMBEROFGROUP|FILES|iir}}+{{NUMBEROFGROUP|FILES|bat}}+{{NUMBEROFGROUP|FILES|cel}}+{{NUMBEROFGROUP|FILES|grk}}+{{NUMBEROFGROUP|FILES|sqj}}+{{NUMBEROFGROUP|FILES|hyx}} }}
| NUMBEROFPAGES | PAGES = {{#expr: {{NUMBEROFGROUP|PAGES|gem}}+{{NUMBEROFGROUP|PAGES|itc}}+{{NUMBEROFGROUP|PAGES|sla}}+{{NUMBEROFGROUP|PAGES|inc}}+{{NUMBEROFGROUP|PAGES|iir}}+{{NUMBEROFGROUP|PAGES|bat}}+{{NUMBEROFGROUP|PAGES|cel}}+{{NUMBEROFGROUP|PAGES|grk}}+{{NUMBEROFGROUP|PAGES|sqj}}+{{NUMBEROFGROUP|PAGES|hyx}} }}
| NUMBEROFUSERS | USERS = {{#expr: {{NUMBEROFGROUP|USERS|gem}}+{{NUMBEROFGROUP|USERS|itc}}+{{NUMBEROFGROUP|USERS|sla}}+{{NUMBEROFGROUP|USERS|inc}}+{{NUMBEROFGROUP|USERS|iir}}+{{NUMBEROFGROUP|USERS|bat}}+{{NUMBEROFGROUP|USERS|cel}}+{{NUMBEROFGROUP|USERS|grk}}+{{NUMBEROFGROUP|USERS|sqj}}+{{NUMBEROFGROUP|USERS|hyx}} }}
| NUMBEROFACTIVEUSERS | ACTIVEUSERS = {{#expr: {{NUMBEROFGROUP|ACTIVEUSERS|gem}}+{{NUMBEROFGROUP|ACTIVEUSERS|itc}}+{{NUMBEROFGROUP|ACTIVEUSERS|sla}}+{{NUMBEROFGROUP|ACTIVEUSERS|inc}}+{{NUMBEROFGROUP|ACTIVEUSERS|iir}}+{{NUMBEROFGROUP|ACTIVEUSERS|bat}}+{{NUMBEROFGROUP|ACTIVEUSERS|cel}}+{{NUMBEROFGROUP|ACTIVEUSERS|grk}}+{{NUMBEROFGROUP|ACTIVEUSERS|sqj}}+{{NUMBEROFGROUP|USERS|hyx}} }}
| NUMBEROFADMINS | ADMINS = {{#expr: {{NUMBEROFGROUP|ADMINS|gem}}+{{NUMBEROFGROUP|ADMINS|itc}}+{{NUMBEROFGROUP|ADMINS|sla}}+{{NUMBEROFGROUP|ADMINS|inc}}+{{NUMBEROFGROUP|ADMINS|iir}}+{{NUMBEROFGROUP|ADMINS|bat}}+{{NUMBEROFGROUP|ADMINS|cel}}+{{NUMBEROFGROUP|ADMINS|grk}}+{{NUMBEROFGROUP|ADMINS|sqj}}+{{NUMBEROFGROUP|ADMINS|hyx}} }}
| NUMBEROFEDITS | EDITS = {{#expr: {{NUMBEROFGROUP|EDITS|gem}}+{{NUMBEROFGROUP|EDITS|itc}}+{{NUMBEROFGROUP|EDITS|sla}}+{{NUMBEROFGROUP|EDITS|inc}}+{{NUMBEROFGROUP|EDITS|iir}}+{{NUMBEROFGROUP|EDITS|bat}}+{{NUMBEROFGROUP|EDITS|cel}}+{{NUMBEROFGROUP|EDITS|grk}}+{{NUMBEROFGROUP|EDITS|sqj}}+{{NUMBEROFGROUP|EDITS|hyx}} }}
| 0 }}
| tut = {{#switch:{{{2}}}
| NUMBEROFARTICLES | ARTICLES = {{#expr: {{NUMBEROFGROUP|ARTICLES|jpx}}+{{NUMBEROFGROUP|ARTICLES|trk}}+{{NUMBEROFGROUP|ARTICLES|Korean}}+{{NUMBEROFGROUP|ARTICLES|xgn}} }}
| NUMBEROFFILES | FILES = {{#expr: {{NUMBEROFGROUP|FILES|jpx}}+{{NUMBEROFGROUP|FILES|trk}}+{{NUMBEROFGROUP|FILES|Korean}}+{{NUMBEROFGROUP|FILES|xgn}} }}
| NUMBEROFPAGES | PAGES = {{#expr: {{NUMBEROFGROUP|PAGES|jpx}}+{{NUMBEROFGROUP|PAGES|trk}}+{{NUMBEROFGROUP|PAGES|Korean}}+{{NUMBEROFGROUP|PAGES|xgn}} }}
| NUMBEROFUSERS | USERS = {{#expr: {{NUMBEROFGROUP|USERS|jpx}}+{{NUMBEROFGROUP|USERS|trk}}+{{NUMBEROFGROUP|USERS|Korean}}+{{NUMBEROFGROUP|USERS|xgn}} }}
| NUMBEROFACTIVEUSERS | ACTIVEUSERS = {{#expr: {{NUMBEROFGROUP|ACTIVEUSERS|jpx}}+{{NUMBEROFGROUP|ACTIVEUSERS|trk}}+{{NUMBEROFGROUP|ACTIVEUSERS|Korean}}+{{NUMBEROFGROUP|ACTIVEUSERS|xgn}} }}
| NUMBEROFADMINS | ADMINS = {{#expr: {{NUMBEROFGROUP|ADMINS|jpx}}+{{NUMBEROFGROUP|ADMINS|trk}}+{{NUMBEROFGROUP|ADMINS|Korean}}+{{NUMBEROFGROUP|ADMINS|xgn}} }}
| NUMBEROFEDITS | EDITS = {{#expr: {{NUMBEROFGROUP|EDITS|jpx}}+{{NUMBEROFGROUP|EDITS|trk}}+{{NUMBEROFGROUP|EDITS|Korean}}+{{NUMBEROFGROUP|EDITS|xgn}} }}
| 0 }}
| map = {{#switch:{{{2}}}
| NUMBEROFARTICLES | ARTICLES = {{#expr: {{NUMBEROFGROUP|ARTICLES|Sunda-Sulawesi}}+{{NUMBEROFGROUP|ARTICLES|phi}}+{{NUMBEROFGROUP|ARTICLES|Bornean}}+{{NUMBEROFGROUP|ARTICLES|Polynesian}}+{{NUMBEROFGROUP|ARTICLES|Timor-Babar}}+{{NUMBEROFGROUP|ARTICLES|East Fijian}}+{{NUMBEROFGROUP|ARTICLES|Micronesian}}+{{NUMBEROFGROUP|ARTICLES|Papuan Tip}} }}
| NUMBEROFFILES | FILES = {{#expr: {{NUMBEROFGROUP|FILES|Sunda-Sulawesi}}+{{NUMBEROFGROUP|FILES|phi}}+{{NUMBEROFGROUP|FILES|Bornean}}+{{NUMBEROFGROUP|FILES|Polynesian}}+{{NUMBEROFGROUP|FILES|Timor-Babar}}+{{NUMBEROFGROUP|FILES|East Fijian}}+{{NUMBEROFGROUP|FILES|Micronesian}}+{{NUMBEROFGROUP|FILES|Papuan Tip}} }}
| NUMBEROFPAGES | PAGES = {{#expr: {{NUMBEROFGROUP|PAGES|Sunda-Sulawesi}}+{{NUMBEROFGROUP|PAGES|phi}}+{{NUMBEROFGROUP|PAGES|Bornean}}+{{NUMBEROFGROUP|PAGES|Polynesian}}+{{NUMBEROFGROUP|PAGES|Timor-Babar}}+{{NUMBEROFGROUP|PAGES|East Fijian}}+{{NUMBEROFGROUP|PAGES|Micronesian}}+{{NUMBEROFGROUP|PAGES|Papuan Tip}} }}
| NUMBEROFUSERS | USERS = {{#expr: {{NUMBEROFGROUP|USERS|Sunda-Sulawesi}}+{{NUMBEROFGROUP|USERS|phi}}+{{NUMBEROFGROUP|USERS|Bornean}}+{{NUMBEROFGROUP|USERS|Polynesian}}+{{NUMBEROFGROUP|USERS|Timor-Babar}}+{{NUMBEROFGROUP|USERS|East Fijian}}+{{NUMBEROFGROUP|USERS|Micronesian}}+{{NUMBEROFGROUP|USERS|Papuan Tip}} }}
| NUMBEROFACTIVEUSERS | ACTIVEUSERS = {{#expr: {{NUMBEROFGROUP|ACTIVEUSERS|Sunda-Sulawesi}}+{{NUMBEROFGROUP|ACTIVEUSERS|phi}}+{{NUMBEROFGROUP|ACTIVEUSERS|Bornean}}+{{NUMBEROFGROUP|ACTIVEUSERS|Polynesian}}+{{NUMBEROFGROUP|ACTIVEUSERS|Timor-Babar}}+{{NUMBEROFGROUP|ACTIVEUSERS|East Fijian}}+{{NUMBEROFGROUP|ACTIVEUSERS|Micronesian}}+{{NUMBEROFGROUP|ACTIVEUSERS|Papuan Tip}} }}
| NUMBEROFADMINS | ADMINS = {{#expr: {{NUMBEROFGROUP|ADMINS|Sunda-Sulawesi}}+{{NUMBEROFGROUP|ADMINS|phi}}+{{NUMBEROFGROUP|ADMINS|Bornean}}+{{NUMBEROFGROUP|ADMINS|Polynesian}}+{{NUMBEROFGROUP|ADMINS|Timor-Babar}}+{{NUMBEROFGROUP|ADMINS|East Fijian}}{{NUMBEROFGROUP|ADMINS|Micronesian}}+{{NUMBEROFGROUP|ADMINS|Papuan Tip}} }}
| NUMBEROFEDITS | EDITS = {{#expr: {{NUMBEROFGROUP|EDITS|Sunda-Sulawesi}}+{{NUMBEROFGROUP|EDITS|phi}}+{{NUMBEROFGROUP|EDITS|Bornean}}+{{NUMBEROFGROUP|EDITS|Polynesian}}+{{NUMBEROFGROUP|EDITS|Timor-Babar}}+{{NUMBEROFGROUP|EDITS|East Fijian}}{{NUMBEROFGROUP|EDITS|Micronesian}}+{{NUMBEROFGROUP|EDITS|Papuan Tip}} }}
| 0 }}
| urj = {{#switch:{{{2}}}
| NUMBEROFARTICLES | ARTICLES = {{#expr: {{NUMBEROFGROUP|ARTICLES|Finno-Permic}}+{{NUMBEROFGROUP|ARTICLES|Ugric}} }}
| NUMBEROFFILES | FILES = {{#expr: {{NUMBEROFGROUP|FILES|Finno-Permic}}+{{NUMBEROFGROUP|FILES|Ugric}} }}
| NUMBEROFPAGES | PAGES = {{#expr: {{NUMBEROFGROUP|PAGES|Finno-Permic}}+{{NUMBEROFGROUP|PAGES|Ugric}} }}
| NUMBEROFUSERS | USERS = {{#expr: {{NUMBEROFGROUP|USERS|Finno-Permic}}+{{NUMBEROFGROUP|USERS|Ugric}} }}
| NUMBEROFACTIVEUSERS | ACTIVEUSERS = {{#expr: {{NUMBEROFGROUP|ACTIVEUSERS|Finno-Permic}}+{{NUMBEROFGROUP|ACTIVEUSERS|Ugric}} }}
| NUMBEROFADMINS | ADMINS = {{#expr: {{NUMBEROFGROUP|ADMINS|Finno-Permic}}+{{NUMBEROFGROUP|ADMINS|Ugric}} }}
| NUMBEROFEDITS | EDITS = {{#expr: {{NUMBEROFGROUP|EDITS|Finno-Permic}}+{{NUMBEROFGROUP|EDITS|Ugric}} }}
| 0 }}
| sit = {{#switch:{{{2}}}
| NUMBEROFARTICLES | ARTICLES = {{#expr: {{NUMBEROFGROUP|ARTICLES|zhx}}+{{NUMBEROFGROUP|ARTICLES|tbq}} }}
| NUMBEROFFILES | FILES = {{#expr: {{NUMBEROFGROUP|FILES|zhx}}+{{NUMBEROFGROUP|FILES|tbq}} }}
| NUMBEROFPAGES | PAGES = {{#expr: {{NUMBEROFGROUP|PAGES|zhx}}+{{NUMBEROFGROUP|PAGES|tbq}} }}
| NUMBEROFUSERS | USERS = {{#expr: {{NUMBEROFGROUP|USERS|zhx}}+{{NUMBEROFGROUP|USERS|tbq}} }}
| NUMBEROFACTIVEUSERS | ACTIVEUSERS = {{#expr: {{NUMBEROFGROUP|ACTIVEUSERS|zhx}}+{{NUMBEROFGROUP|ACTIVEUSERS|tbq}} }}
| NUMBEROFADMINS | ADMINS = {{#expr: {{NUMBEROFGROUP|ADMINS|zhx}}+{{NUMBEROFGROUP|ADMINS|tbq}} }}
| NUMBEROFEDITS | EDITS = {{#expr: {{NUMBEROFGROUP|EDITS|zhx}}+{{NUMBEROFGROUP|EDITS|tbq}} }}
| 0 }}
| art = {{#switch:{{{2}}}
| NUMBEROFARTICLES | ARTICLES = {{#expr: {{NUMBEROFGROUP|ARTICLES|art-ine}}+{{NUMBEROFGROUP|ARTICLES|art}} }}
| NUMBEROFFILES | FILES = {{#expr: {{NUMBEROFGROUP|FILES|art-ine}}+{{NUMBEROFGROUP|FILES|art}} }}
| NUMBEROFPAGES | PAGES = {{#expr: {{NUMBEROFGROUP|PAGES|art-ine}}+{{NUMBEROFGROUP|PAGES|art}} }}
| NUMBEROFUSERS | USERS = {{#expr: {{NUMBEROFGROUP|USERS|art-ine}}+{{NUMBEROFGROUP|USERS|art}} }}
| NUMBEROFACTIVEUSERS | ACTIVEUSERS = {{#expr: {{NUMBEROFGROUP|ACTIVEUSERS|art-ine}}+{{NUMBEROFGROUP|ACTIVEUSERS|art}} }}
| NUMBEROFADMINS | ADMINS = {{#expr: {{NUMBEROFGROUP|ADMINS|art-ine}}+{{NUMBEROFGROUP|ADMINS|art}} }}
| NUMBEROFEDITS | EDITS = {{#expr: {{NUMBEROFGROUP|EDITS|art-ine}}+{{NUMBEROFGROUP|EDITS|art}} }}
| 0 }}
| afa = {{#switch:{{{2}}}
| NUMBEROFARTICLES | ARTICLES = {{#expr: {{NUMBEROFGROUP|ARTICLES|sem}}+{{NUMBEROFGROUP|ARTICLES|cus}}+{{NUMBEROFGROUP|ARTICLES|ber}}+{{NUMBEROFGROUP|ARTICLES|cdc}} }}
| NUMBEROFFILES | FILES = {{#expr: {{NUMBEROFGROUP|FILES|sem}}+{{NUMBEROFGROUP|FILES|cus}}+{{NUMBEROFGROUP|FILES|ber}}+{{NUMBEROFGROUP|FILES|cdc}} }}
| NUMBEROFPAGES | PAGES = {{#expr: {{NUMBEROFGROUP|PAGES|sem}}+{{NUMBEROFGROUP|PAGES|cus}}+{{NUMBEROFGROUP|PAGES|ber}}+{{NUMBEROFGROUP|PAGES|cdc}} }}
| NUMBEROFUSERS | USERS = {{#expr: {{NUMBEROFGROUP|USERS|sem}}+{{NUMBEROFGROUP|USERS|cus}}+{{NUMBEROFGROUP|USERS|ber}}+{{NUMBEROFGROUP|USERS|cdc}} }}
| NUMBEROFACTIVEUSERS | ACTIVEUSERS = {{#expr: {{NUMBEROFGROUP|ACTIVEUSERS|sem}}+{{NUMBEROFGROUP|ACTIVEUSERS|cus}}+{{NUMBEROFGROUP|ACTIVEUSERS|ber}}+{{NUMBEROFGROUP|ACTIVEUSERS|cdc}} }}
| NUMBEROFADMINS | ADMINS = {{#expr: {{NUMBEROFGROUP|ADMINS|sem}}+{{NUMBEROFGROUP|ADMINS|cus}}+{{NUMBEROFGROUP|ADMINS|ber}}+{{NUMBEROFGROUP|ADMINS|cdc}} }}
| NUMBEROFEDITS | EDITS = {{#expr: {{NUMBEROFGROUP|EDITS|sem}}+{{NUMBEROFGROUP|EDITS|cus}}+{{NUMBEROFGROUP|EDITS|ber}}+{{NUMBEROFGROUP|EDITS|cdc}} }}
| 0 }}
| nic = {{#switch:{{{2}}}
| NUMBEROFARTICLES | ARTICLES = {{#expr: {{NUMBEROFGROUP|ARTICLES|bnt}}+{{NUMBEROFGROUP|ARTICLES|Yoruboid}}+{{NUMBEROFGROUP|ARTICLES|dmn}}+{{NUMBEROFGROUP|ARTICLES|Kwa}}+{{NUMBEROFGROUP|ARTICLES|Igboid}}+{{NUMBEROFGROUP|ARTICLES|alv}}+{{NUMBEROFGROUP|ARTICLES|Ubangian}} }}
| NUMBEROFFILES | FILES = {{#expr: {{NUMBEROFGROUP|FILES|bnt}}+{{NUMBEROFGROUP|FILES|Yoruboid}}+{{NUMBEROFGROUP|FILES|dmn}}+{{NUMBEROFGROUP|FILES|Kwa}}+{{NUMBEROFGROUP|FILES|Igboid}}+{{NUMBEROFGROUP|FILES|alv}}+{{NUMBEROFGROUP|FILES|Ubangian}} }}
| NUMBEROFPAGES | PAGES = {{#expr: {{NUMBEROFGROUP|PAGES|bnt}}+{{NUMBEROFGROUP|PAGES|Yoruboid}}+{{NUMBEROFGROUP|PAGES|dmn}}+{{NUMBEROFGROUP|PAGES|Kwa}}+{{NUMBEROFGROUP|PAGES|Igboid}}+{{NUMBEROFGROUP|PAGES|alv}}+{{NUMBEROFGROUP|PAGES|Ubangian}} }}
| NUMBEROFUSERS | USERS = {{#expr: {{NUMBEROFGROUP|USERS|bnt}}+{{NUMBEROFGROUP|USERS|Yoruboid}}+{{NUMBEROFGROUP|USERS|dmn}}+{{NUMBEROFGROUP|USERS|Kwa}}+{{NUMBEROFGROUP|USERS|Igboid}}+{{NUMBEROFGROUP|USERS|alv}}+{{NUMBEROFGROUP|USERS|Ubangian}} }}
| NUMBEROFACTIVEUSERS | ACTIVEUSERS = {{#expr: {{NUMBEROFGROUP|ACTIVEUSERS|bnt}}+{{NUMBEROFGROUP|ACTIVEUSERS|Yoruboid}}+{{NUMBEROFGROUP|ACTIVEUSERS|dmn}}+{{NUMBEROFGROUP|ACTIVEUSERS|Kwa}}+{{NUMBEROFGROUP|ACTIVEUSERS|Igboid}}+{{NUMBEROFGROUP|ACTIVEUSERS|alv}}+{{NUMBEROFGROUP|ACTIVEUSERS|Ubangian}} }}
| NUMBEROFADMINS | ADMINS = {{#expr: {{NUMBEROFGROUP|ADMINS|bnt}}+{{NUMBEROFGROUP|ADMINS|Yoruboid}}+{{NUMBEROFGROUP|ADMINS|dmn}}+{{NUMBEROFGROUP|ADMINS|Kwa}}+{{NUMBEROFGROUP|ADMINS|Igboid}}+{{NUMBEROFGROUP|ADMINS|alv}}+{{NUMBEROFGROUP|ADMINS|Ubangian}} }}
| NUMBEROFEDITS | EDITS = {{#expr: {{NUMBEROFGROUP|EDITS|bnt}}+{{NUMBEROFGROUP|EDITS|Yoruboid}}+{{NUMBEROFGROUP|EDITS|dmn}}+{{NUMBEROFGROUP|EDITS|Kwa}}+{{NUMBEROFGROUP|EDITS|Igboid}}+{{NUMBEROFGROUP|EDITS|alv}}+{{NUMBEROFGROUP|EDITS|Ubangian}} }}
| 0 }}
| ccn = {{#switch:{{{2}}}
| NUMBEROFARTICLES | ARTICLES = {{#expr: {{NUMBEROFGROUP|ARTICLES|ccn-e}}+{{NUMBEROFGROUP|ARTICLES|ccn-w}} }}
| NUMBEROFFILES | FILES = {{#expr: {{NUMBEROFGROUP|FILES|ccn-e}}+{{NUMBEROFGROUP|FILES|ccn-w}} }}
| NUMBEROFPAGES | PAGES = {{#expr: {{NUMBEROFGROUP|PAGES|ccn-e}}+{{NUMBEROFGROUP|PAGES|ccn-w}} }}
| NUMBEROFUSERS | USERS = {{#expr: {{NUMBEROFGROUP|USERS|ccn-e}}+{{NUMBEROFGROUP|USERS|ccn-w}} }}
| NUMBEROFACTIVEUSERS | ACTIVEUSERS = {{#expr: {{NUMBEROFGROUP|ACTIVEUSERS|ccn-eccn-eccn-eccn-eccn-e}}+{{NUMBEROFGROUP|ACTIVEUSERS|ccn-w}} }}
| NUMBEROFADMINS | ADMINS = {{#expr: {{NUMBEROFGROUP|ADMINS|ccn-e}}+{{NUMBEROFGROUP|ADMINS|ccn-w }} }}
| NUMBEROFEDITS | EDITS = {{#expr: {{NUMBEROFGROUP|EDITS|ccn-e}}+{{NUMBEROFGROUP|EDITS|ccn-w}} }}
| 0 }}
| crp = {{#switch:{{{2}}}
| NUMBEROFARTICLES | ARTICLES = {{#expr: {{NUMBEROFGROUP|ARTICLES|cpf}}+{{NUMBEROFGROUP|ARTICLES|cpe}} }}
| NUMBEROFFILES | FILES = {{#expr: {{NUMBEROFGROUP|FILES|cpf}}+{{NUMBEROFGROUP|FILES|cpe}} }}
| NUMBEROFPAGES | PAGES = {{#expr: {{NUMBEROFGROUP|PAGES|cpf}}+{{NUMBEROFGROUP|PAGES|cpe}} }}
| NUMBEROFUSERS | USERS = {{#expr: {{NUMBEROFGROUP|USERS|cpf}}+{{NUMBEROFGROUP|USERS|cpe}} }}
| NUMBEROFACTIVEUSERS | ACTIVEUSERS = {{#expr: {{NUMBEROFGROUP|ACTIVEUSERS|cpf}}+{{NUMBEROFGROUP|ACTIVEUSERS|cpe}} }}
| NUMBEROFADMINS | ADMINS = {{#expr: {{NUMBEROFGROUP|ADMINS|crp}}+{{NUMBEROFGROUP|ADMINS|cpe}} }}
| NUMBEROFEDITS | EDITS = {{#expr: {{NUMBEROFGROUP|EDITS|cpf}}+{{NUMBEROFGROUP|EDITS|cpe}} }}
| 0 }}
| 0 }}</onlyinclude>
t52qzf7hnlzznwvkh9srz885gg1e1t0
Ta̱mpi̱let:NUMBEROFGROUP/data
10
1513
14922
2022-07-15T22:56:50Z
Kambai Akau
15
Created page with "<!-- If you want to add a new language family, ask for it in the talk page, not here directly. Uses ISO 639-5 codes wherever available. --><onlyinclude>{{#switch:{{{1}}} | gem = {{#switch:{{{2}}} | NUMBEROFARTICLES | ARTICLES = {{#expr: {{NUMBEROF|ARTICLES|en}}+{{NUMBEROF|ARTICLES|de}}+{{NUMBEROF|ARTICLES|nl}}+{{NUMBEROF|ARTICLES|sv}}+{{NUMBEROF|ARTICLES|no}}+{{NUMBEROF|ARTICLES|da}}+{{NUMBEROF|ARTICLES|nn}}+{{NUMBEROF|ARTICLES|simple}}+{{NUMBEROF|ARTICLES|lb}}+{{NUMBER..."
wikitext
text/x-wiki
<!-- If you want to add a new language family, ask for it in the talk page, not here directly. Uses ISO 639-5 codes wherever available. --><onlyinclude>{{#switch:{{{1}}}
| gem = {{#switch:{{{2}}}
| NUMBEROFARTICLES | ARTICLES = {{#expr: {{NUMBEROF|ARTICLES|en}}+{{NUMBEROF|ARTICLES|de}}+{{NUMBEROF|ARTICLES|nl}}+{{NUMBEROF|ARTICLES|sv}}+{{NUMBEROF|ARTICLES|no}}+{{NUMBEROF|ARTICLES|da}}+{{NUMBEROF|ARTICLES|nn}}+{{NUMBEROF|ARTICLES|simple}}+{{NUMBEROF|ARTICLES|lb}}+{{NUMBEROF|ARTICLES|is}}+{{NUMBEROF|ARTICLES|fy}}+{{NUMBEROF|ARTICLES|af}}+{{NUMBEROF|ARTICLES|nds}}+{{NUMBEROF|ARTICLES|als}}+{{NUMBEROF|ARTICLES|yi}}+{{NUMBEROF|ARTICLES|li}}+{{NUMBEROF|ARTICLES|sco}}+{{NUMBEROF|ARTICLES|fo}}+{{NUMBEROF|ARTICLES|nds-nl}}+{{NUMBEROF|ARTICLES|vls}}+{{NUMBEROF|ARTICLES|bar}}+{{NUMBEROF|ARTICLES|ang}}+{{NUMBEROF|ARTICLES|ksh}}+{{NUMBEROF|ARTICLES|stq}}+{{NUMBEROF|ARTICLES|pdc}}+{{NUMBEROF|ARTICLES|frr}}+{{NUMBEROF|ARTICLES|pfl}}+{{NUMBEROF|ARTICLES|zea}}+{{NUMBEROF|ARTICLES|got}} }}
| NUMBEROFFILES | FILES = {{#expr: {{NUMBEROF|FILES|en}}+{{NUMBEROF|FILES|de}}+{{NUMBEROF|FILES|nl}}+{{NUMBEROF|FILES|sv}}+{{NUMBEROF|FILES|no}}+{{NUMBEROF|FILES|da}}+{{NUMBEROF|FILES|nn}}+{{NUMBEROF|FILES|simple}}+{{NUMBEROF|FILES|lb}}+{{NUMBEROF|FILES|is}}+{{NUMBEROF|FILES|fy}}+{{NUMBEROF|FILES|af}}+{{NUMBEROF|FILES|nds}}+{{NUMBEROF|FILES|als}}+{{NUMBEROF|FILES|yi}}+{{NUMBEROF|FILES|li}}+{{NUMBEROF|FILES|sco}}+{{NUMBEROF|FILES|fo}}+{{NUMBEROF|FILES|nds-nl}}+{{NUMBEROF|FILES|vls}}+{{NUMBEROF|FILES|bar}}+{{NUMBEROF|FILES|ang}}+{{NUMBEROF|FILES|ksh}}+{{NUMBEROF|FILES|stq}}+{{NUMBEROF|FILES|pdc}}+{{NUMBEROF|FILES|frr}}+{{NUMBEROF|FILES|pfl}}+{{NUMBEROF|FILES|zea}}+{{NUMBEROF|FILES|got}} }}
| NUMBEROFPAGES | PAGES = {{#expr: {{NUMBEROF|PAGES|en}}+{{NUMBEROF|PAGES|de}}+{{NUMBEROF|PAGES|nl}}+{{NUMBEROF|PAGES|sv}}+{{NUMBEROF|PAGES|no}}+{{NUMBEROF|PAGES|da}}+{{NUMBEROF|PAGES|nn}}+{{NUMBEROF|PAGES|simple}}+{{NUMBEROF|PAGES|lb}}+{{NUMBEROF|PAGES|is}}+{{NUMBEROF|PAGES|fy}}+{{NUMBEROF|PAGES|af}}+{{NUMBEROF|PAGES|nds}}+{{NUMBEROF|PAGES|als}}+{{NUMBEROF|PAGES|yi}}+{{NUMBEROF|PAGES|li}}+{{NUMBEROF|PAGES|sco}}+{{NUMBEROF|PAGES|fo}}+{{NUMBEROF|PAGES|nds-nl}}+{{NUMBEROF|PAGES|vls}}+{{NUMBEROF|PAGES|bar}}+{{NUMBEROF|PAGES|ang}}+{{NUMBEROF|PAGES|ksh}}+{{NUMBEROF|PAGES|stq}}+{{NUMBEROF|PAGES|pdc}}+{{NUMBEROF|PAGES|frr}}+{{NUMBEROF|PAGES|pfl}}+{{NUMBEROF|PAGES|zea}}+{{NUMBEROF|PAGES|got}} }}
| NUMBEROFUSERS | USERS = {{#expr: {{NUMBEROF|USERS|en}}+{{NUMBEROF|USERS|de}}+{{NUMBEROF|USERS|nl}}+{{NUMBEROF|USERS|sv}}+{{NUMBEROF|USERS|no}}+{{NUMBEROF|USERS|da}}+{{NUMBEROF|USERS|nn}}+{{NUMBEROF|USERS|simple}}+{{NUMBEROF|USERS|lb}}+{{NUMBEROF|USERS|is}}+{{NUMBEROF|USERS|fy}}+{{NUMBEROF|USERS|af}}+{{NUMBEROF|USERS|nds}}+{{NUMBEROF|USERS|als}}+{{NUMBEROF|USERS|yi}}+{{NUMBEROF|USERS|li}}+{{NUMBEROF|USERS|sco}}+{{NUMBEROF|USERS|fo}}+{{NUMBEROF|USERS|nds-nl}}+{{NUMBEROF|USERS|vls}}+{{NUMBEROF|USERS|bar}}+{{NUMBEROF|USERS|ang}}+{{NUMBEROF|USERS|ksh}}+{{NUMBEROF|USERS|stq}}+{{NUMBEROF|USERS|pdc}}+{{NUMBEROF|USERS|frr}}+{{NUMBEROF|USERS|pfl}}+{{NUMBEROF|USERS|zea}}+{{NUMBEROF|USERS|got}} }}
| NUMBEROFACTIVEUSERS | ACTIVEUSERS = {{#expr: {{NUMBEROF|ACTIVEUSERS|en}}+{{NUMBEROF|ACTIVEUSERS|de}}+{{NUMBEROF|ACTIVEUSERS|nl}}+{{NUMBEROF|ACTIVEUSERS|sv}}+{{NUMBEROF|ACTIVEUSERS|no}}+{{NUMBEROF|ACTIVEUSERS|da}}+{{NUMBEROF|ACTIVEUSERS|nn}}+{{NUMBEROF|ACTIVEUSERS|simple}}+{{NUMBEROF|ACTIVEUSERS|lb}}+{{NUMBEROF|ACTIVEUSERS|is}}+{{NUMBEROF|ACTIVEUSERS|fy}}+{{NUMBEROF|ACTIVEUSERS|af}}+{{NUMBEROF|ACTIVEUSERS|nds}}+{{NUMBEROF|ACTIVEUSERS|als}}+{{NUMBEROF|ACTIVEUSERS|yi}}+{{NUMBEROF|ACTIVEUSERS|li}}+{{NUMBEROF|ACTIVEUSERS|sco}}+{{NUMBEROF|ACTIVEUSERS|fo}}+{{NUMBEROF|ACTIVEUSERS|nds-nl}}+{{NUMBEROF|ACTIVEUSERS|vls}}+{{NUMBEROF|ACTIVEUSERS|bar}}+{{NUMBEROF|ACTIVEUSERS|ang}}+{{NUMBEROF|ACTIVEUSERS|ksh}}+{{NUMBEROF|ACTIVEUSERS|stq}}+{{NUMBEROF|ACTIVEUSERS|pdc}}+{{NUMBEROF|ACTIVEUSERS|frr}}+{{NUMBEROF|ACTIVEUSERS|pfl}}+{{NUMBEROF|ACTIVEUSERS|zea}}+{{NUMBEROF|ACTIVEUSERS|got}} }}
| NUMBEROFADMINS | ADMINS = {{#expr: {{NUMBEROF|ADMINS|en}}+{{NUMBEROF|ADMINS|de}}+{{NUMBEROF|ADMINS|nl}}+{{NUMBEROF|ADMINS|sv}}+{{NUMBEROF|ADMINS|no}}+{{NUMBEROF|ADMINS|da}}+{{NUMBEROF|ADMINS|nn}}+{{NUMBEROF|ADMINS|simple}}+{{NUMBEROF|ADMINS|lb}}+{{NUMBEROF|ADMINS|is}}+{{NUMBEROF|ADMINS|fy}}+{{NUMBEROF|ADMINS|af}}+{{NUMBEROF|ADMINS|nds}}+{{NUMBEROF|ADMINS|als}}+{{NUMBEROF|ADMINS|yi}}+{{NUMBEROF|ADMINS|li}}+{{NUMBEROF|ADMINS|sco}}+{{NUMBEROF|ADMINS|fo}}+{{NUMBEROF|ADMINS|nds-nl}}+{{NUMBEROF|ADMINS|vls}}+{{NUMBEROF|ADMINS|bar}}+{{NUMBEROF|ADMINS|ang}}+{{NUMBEROF|ADMINS|ksh}}+{{NUMBEROF|ADMINS|stq}}+{{NUMBEROF|ADMINS|pdc}}+{{NUMBEROF|ADMINS|frr}}+{{NUMBEROF|ADMINS|pfl}}+{{NUMBEROF|ADMINS|zea}}+{{NUMBEROF|ADMINS|got}} }}
| NUMBEROFEDITS | EDITS = {{#expr: {{NUMBEROF|EDITS|en}}+{{NUMBEROF|EDITS|de}}+{{NUMBEROF|EDITS|nl}}+{{NUMBEROF|EDITS|sv}}+{{NUMBEROF|EDITS|no}}+{{NUMBEROF|EDITS|da}}+{{NUMBEROF|EDITS|nn}}+{{NUMBEROF|EDITS|simple}}+{{NUMBEROF|EDITS|lb}}+{{NUMBEROF|EDITS|is}}+{{NUMBEROF|EDITS|fy}}+{{NUMBEROF|EDITS|af}}+{{NUMBEROF|EDITS|nds}}+{{NUMBEROF|EDITS|als}}+{{NUMBEROF|EDITS|yi}}+{{NUMBEROF|EDITS|li}}+{{NUMBEROF|EDITS|sco}}+{{NUMBEROF|EDITS|fo}}+{{NUMBEROF|EDITS|nds-nl}}+{{NUMBEROF|EDITS|vls}}+{{NUMBEROF|EDITS|bar}}+{{NUMBEROF|EDITS|ang}}+{{NUMBEROF|EDITS|ksh}}+{{NUMBEROF|EDITS|stq}}+{{NUMBEROF|EDITS|pdc}}+{{NUMBEROF|EDITS|frr}}+{{NUMBEROF|EDITS|pfl}}+{{NUMBEROF|EDITS|zea}}+{{NUMBEROF|EDITS|got}} }}
| 0 }}
| itc = {{#switch:{{{2}}}
| NUMBEROFARTICLES | ARTICLES = {{#expr: {{NUMBEROF|ARTICLES|fr}}+{{NUMBEROF|ARTICLES|it}}+{{NUMBEROF|ARTICLES|es}}+{{NUMBEROF|ARTICLES|pt}}+{{NUMBEROF|ARTICLES|ca}}+{{NUMBEROF|ARTICLES|ro}}+{{NUMBEROF|ARTICLES|gl}}+{{NUMBEROF|ARTICLES|roa-rup}}+{{NUMBEROF|ARTICLES|la}}+{{NUMBEROF|ARTICLES|nap}}+{{NUMBEROF|ARTICLES|pms}}+{{NUMBEROF|ARTICLES|oc}}+{{NUMBEROF|ARTICLES|an}}+{{NUMBEROF|ARTICLES|lmo}}+{{NUMBEROF|ARTICLES|scn}}+{{NUMBEROF|ARTICLES|ast}}+{{NUMBEROF|ARTICLES|wa}}+{{NUMBEROF|ARTICLES|vec}}+{{NUMBEROF|ARTICLES|roa-tara}}+{{NUMBEROF|ARTICLES|co}}+{{NUMBEROF|ARTICLES|nrm}}+{{NUMBEROF|ARTICLES|rm}}+{{NUMBEROF|ARTICLES|fur}}+{{NUMBEROF|ARTICLES|lij}}+{{NUMBEROF|ARTICLES|lad}}+{{NUMBEROF|ARTICLES|sc}}+{{NUMBEROF|ARTICLES|frp}}+{{NUMBEROF|ARTICLES|ext}}+{{NUMBEROF|ARTICLES|pcd}}+{{NUMBEROF|ARTICLES|eml}}+{{NUMBEROF|ARTICLES|mwl}}+{{NUMBEROF|ARTICLES|mo}} }}
| NUMBEROFFILES | FILES = {{#expr: {{NUMBEROF|FILES|fr}}+{{NUMBEROF|FILES|it}}+{{NUMBEROF|FILES|es}}+{{NUMBEROF|FILES|pt}}+{{NUMBEROF|FILES|ca}}+{{NUMBEROF|FILES|ro}}+{{NUMBEROF|FILES|gl}}+{{NUMBEROF|FILES|roa-rup}}+{{NUMBEROF|FILES|la}}+{{NUMBEROF|FILES|nap}}+{{NUMBEROF|FILES|pms}}+{{NUMBEROF|FILES|oc}}+{{NUMBEROF|FILES|an}}+{{NUMBEROF|FILES|lmo}}+{{NUMBEROF|FILES|scn}}+{{NUMBEROF|FILES|ast}}+{{NUMBEROF|FILES|wa}}+{{NUMBEROF|FILES|vec}}+{{NUMBEROF|FILES|roa-tara}}+{{NUMBEROF|FILES|co}}+{{NUMBEROF|FILES|nrm}}+{{NUMBEROF|FILES|rm}}+{{NUMBEROF|FILES|fur}}+{{NUMBEROF|FILES|lij}}+{{NUMBEROF|FILES|lad}}+{{NUMBEROF|FILES|sc}}+{{NUMBEROF|FILES|frp}}+{{NUMBEROF|FILES|ext}}+{{NUMBEROF|FILES|pcd}}+{{NUMBEROF|FILES|eml}}+{{NUMBEROF|FILES|mwl}}+{{NUMBEROF|FILES|mo}} }}
| NUMBEROFPAGES | PAGES = {{#expr: {{NUMBEROF|PAGES|fr}}+{{NUMBEROF|PAGES|it}}+{{NUMBEROF|PAGES|es}}+{{NUMBEROF|PAGES|pt}}+{{NUMBEROF|PAGES|ca}}+{{NUMBEROF|PAGES|ro}}+{{NUMBEROF|PAGES|gl}}+{{NUMBEROF|PAGES|roa-rup}}+{{NUMBEROF|PAGES|la}}+{{NUMBEROF|PAGES|nap}}+{{NUMBEROF|PAGES|pms}}+{{NUMBEROF|PAGES|oc}}+{{NUMBEROF|PAGES|an}}+{{NUMBEROF|PAGES|lmo}}+{{NUMBEROF|PAGES|scn}}+{{NUMBEROF|PAGES|ast}}+{{NUMBEROF|PAGES|wa}}+{{NUMBEROF|PAGES|vec}}+{{NUMBEROF|PAGES|roa-tara}}+{{NUMBEROF|PAGES|co}}+{{NUMBEROF|PAGES|nrm}}+{{NUMBEROF|PAGES|rm}}+{{NUMBEROF|PAGES|fur}}+{{NUMBEROF|PAGES|lij}}+{{NUMBEROF|PAGES|lad}}+{{NUMBEROF|PAGES|sc}}+{{NUMBEROF|PAGES|frp}}+{{NUMBEROF|PAGES|ext}}+{{NUMBEROF|PAGES|pcd}}+{{NUMBEROF|PAGES|eml}}+{{NUMBEROF|PAGES|mwl}}+{{NUMBEROF|PAGES|mo}} }}
| NUMBEROFUSERS | USERS = {{#expr: {{NUMBEROF|USERS|fr}}+{{NUMBEROF|USERS|it}}+{{NUMBEROF|USERS|es}}+{{NUMBEROF|USERS|pt}}+{{NUMBEROF|USERS|ca}}+{{NUMBEROF|USERS|ro}}+{{NUMBEROF|USERS|gl}}+{{NUMBEROF|USERS|roa-rup}}+{{NUMBEROF|USERS|la}}+{{NUMBEROF|USERS|nap}}+{{NUMBEROF|USERS|pms}}+{{NUMBEROF|USERS|oc}}+{{NUMBEROF|USERS|an}}+{{NUMBEROF|USERS|lmo}}+{{NUMBEROF|USERS|scn}}+{{NUMBEROF|USERS|ast}}+{{NUMBEROF|USERS|wa}}+{{NUMBEROF|USERS|vec}}+{{NUMBEROF|USERS|roa-tara}}+{{NUMBEROF|USERS|co}}+{{NUMBEROF|USERS|nrm}}+{{NUMBEROF|USERS|rm}}+{{NUMBEROF|USERS|fur}}+{{NUMBEROF|USERS|lij}}+{{NUMBEROF|USERS|lad}}+{{NUMBEROF|USERS|sc}}+{{NUMBEROF|USERS|frp}}+{{NUMBEROF|USERS|ext}}+{{NUMBEROF|USERS|pcd}}+{{NUMBEROF|USERS|eml}}+{{NUMBEROF|USERS|mwl}}+{{NUMBEROF|USERS|mo}} }}
| NUMBEROFACTIVEUSERS | ACTIVEUSERS = {{#expr: {{NUMBEROF|ACTIVEUSERS|fr}}+{{NUMBEROF|ACTIVEUSERS|it}}+{{NUMBEROF|ACTIVEUSERS|es}}+{{NUMBEROF|ACTIVEUSERS|pt}}+{{NUMBEROF|ACTIVEUSERS|ca}}+{{NUMBEROF|ACTIVEUSERS|ro}}+{{NUMBEROF|ACTIVEUSERS|gl}}+{{NUMBEROF|ACTIVEUSERS|roa-rup}}+{{NUMBEROF|ACTIVEUSERS|la}}+{{NUMBEROF|ACTIVEUSERS|nap}}+{{NUMBEROF|ACTIVEUSERS|pms}}+{{NUMBEROF|ACTIVEUSERS|oc}}+{{NUMBEROF|ACTIVEUSERS|an}}+{{NUMBEROF|ACTIVEUSERS|lmo}}+{{NUMBEROF|ACTIVEUSERS|scn}}+{{NUMBEROF|ACTIVEUSERS|ast}}+{{NUMBEROF|ACTIVEUSERS|wa}}+{{NUMBEROF|ACTIVEUSERS|vec}}+{{NUMBEROF|ACTIVEUSERS|roa-tara}}+{{NUMBEROF|ACTIVEUSERS|co}}+{{NUMBEROF|ACTIVEUSERS|nrm}}+{{NUMBEROF|ACTIVEUSERS|rm}}+{{NUMBEROF|ACTIVEUSERS|fur}}+{{NUMBEROF|ACTIVEUSERS|lij}}+{{NUMBEROF|ACTIVEUSERS|lad}}+{{NUMBEROF|ACTIVEUSERS|sc}}+{{NUMBEROF|ACTIVEUSERS|frp}}+{{NUMBEROF|ACTIVEUSERS|ext}}+{{NUMBEROF|ACTIVEUSERS|pcd}}+{{NUMBEROF|ACTIVEUSERS|eml}}+{{NUMBEROF|ACTIVEUSERS|mwl}}+{{NUMBEROF|ACTIVEUSERS|mo}} }}
| NUMBEROFADMINS | ADMINS = {{#expr: {{NUMBEROF|ADMINS|fr}}+{{NUMBEROF|ADMINS|it}}+{{NUMBEROF|ADMINS|es}}+{{NUMBEROF|ADMINS|pt}}+{{NUMBEROF|ADMINS|ca}}+{{NUMBEROF|ADMINS|ro}}+{{NUMBEROF|ADMINS|gl}}+{{NUMBEROF|ADMINS|roa-rup}}+{{NUMBEROF|ADMINS|la}}+{{NUMBEROF|ADMINS|nap}}+{{NUMBEROF|ADMINS|pms}}+{{NUMBEROF|ADMINS|oc}}+{{NUMBEROF|ADMINS|an}}+{{NUMBEROF|ADMINS|lmo}}+{{NUMBEROF|ADMINS|scn}}+{{NUMBEROF|ADMINS|ast}}+{{NUMBEROF|ADMINS|wa}}+{{NUMBEROF|ADMINS|vec}}+{{NUMBEROF|ADMINS|roa-tara}}+{{NUMBEROF|ADMINS|co}}+{{NUMBEROF|ADMINS|nrm}}+{{NUMBEROF|ADMINS|rm}}+{{NUMBEROF|ADMINS|fur}}+{{NUMBEROF|ADMINS|lij}}+{{NUMBEROF|ADMINS|lad}}+{{NUMBEROF|ADMINS|sc}}+{{NUMBEROF|ADMINS|frp}}+{{NUMBEROF|ADMINS|ext}}+{{NUMBEROF|ADMINS|pcd}}+{{NUMBEROF|ADMINS|eml}}+{{NUMBEROF|ADMINS|mwl}}+{{NUMBEROF|ADMINS|mo}} }}
| NUMBEROFEDITS | EDITS = {{#expr: {{NUMBEROF|EDITS|fr}}+{{NUMBEROF|EDITS|it}}+{{NUMBEROF|EDITS|es}}+{{NUMBEROF|EDITS|pt}}+{{NUMBEROF|EDITS|ca}}+{{NUMBEROF|EDITS|ro}}+{{NUMBEROF|EDITS|gl}}+{{NUMBEROF|EDITS|roa-rup}}+{{NUMBEROF|EDITS|la}}+{{NUMBEROF|EDITS|nap}}+{{NUMBEROF|EDITS|pms}}+{{NUMBEROF|EDITS|oc}}+{{NUMBEROF|EDITS|an}}+{{NUMBEROF|EDITS|lmo}}+{{NUMBEROF|EDITS|scn}}+{{NUMBEROF|EDITS|ast}}+{{NUMBEROF|EDITS|wa}}+{{NUMBEROF|EDITS|vec}}+{{NUMBEROF|EDITS|roa-tara}}+{{NUMBEROF|EDITS|co}}+{{NUMBEROF|EDITS|nrm}}+{{NUMBEROF|EDITS|rm}}+{{NUMBEROF|EDITS|fur}}+{{NUMBEROF|EDITS|lij}}+{{NUMBEROF|EDITS|lad}}+{{NUMBEROF|EDITS|sc}}+{{NUMBEROF|EDITS|frp}}+{{NUMBEROF|EDITS|ext}}+{{NUMBEROF|EDITS|pcd}}+{{NUMBEROF|EDITS|eml}}+{{NUMBEROF|EDITS|mwl}}+{{NUMBEROF|EDITS|mo}} }}
| 0 }}
| sla = {{#switch:{{{2}}}
| NUMBEROFARTICLES | ARTICLES = {{#expr: {{NUMBEROF|ARTICLES|pl}}+{{NUMBEROF|ARTICLES|ru}}+{{NUMBEROF|ARTICLES|uk}}+{{NUMBEROF|ARTICLES|cs}}+{{NUMBEROF|ARTICLES|sr}}+{{NUMBEROF|ARTICLES|sk}}+{{NUMBEROF|ARTICLES|bg}}+{{NUMBEROF|ARTICLES|sl}}+{{NUMBEROF|ARTICLES|hr}}+{{NUMBEROF|ARTICLES|mk}}+{{NUMBEROF|ARTICLES|sh}}+{{NUMBEROF|ARTICLES|be-x-old}}+{{NUMBEROF|ARTICLES|bs}}+{{NUMBEROF|ARTICLES|be}}+{{NUMBEROF|ARTICLES|hsb}}+{{NUMBEROF|ARTICLES|csb}}+{{NUMBEROF|ARTICLES|rue}}+{{NUMBEROF|ARTICLES|szl}}+{{NUMBEROF|ARTICLES|dsb}}+{{NUMBEROF|ARTICLES|cu}} }}
| NUMBEROFFILES | FILES = {{#expr: {{NUMBEROF|FILES|pl}}+{{NUMBEROF|FILES|ru}}+{{NUMBEROF|FILES|uk}}+{{NUMBEROF|FILES|cs}}+{{NUMBEROF|FILES|sr}}+{{NUMBEROF|FILES|sk}}+{{NUMBEROF|FILES|bg}}+{{NUMBEROF|FILES|sl}}+{{NUMBEROF|FILES|hr}}+{{NUMBEROF|FILES|mk}}+{{NUMBEROF|FILES|sh}}+{{NUMBEROF|FILES|be-x-old}}+{{NUMBEROF|FILES|bs}}+{{NUMBEROF|FILES|be}}+{{NUMBEROF|FILES|hsb}}+{{NUMBEROF|FILES|csb}}+{{NUMBEROF|FILES|rue}}+{{NUMBEROF|FILES|szl}}+{{NUMBEROF|FILES|dsb}}+{{NUMBEROF|FILES|cu}} }}
| NUMBEROFPAGES | PAGES = {{#expr: {{NUMBEROF|PAGES|pl}}+{{NUMBEROF|PAGES|ru}}+{{NUMBEROF|PAGES|uk}}+{{NUMBEROF|PAGES|cs}}+{{NUMBEROF|PAGES|sr}}+{{NUMBEROF|PAGES|sk}}+{{NUMBEROF|PAGES|bg}}+{{NUMBEROF|PAGES|sl}}+{{NUMBEROF|PAGES|hr}}+{{NUMBEROF|PAGES|mk}}+{{NUMBEROF|PAGES|sh}}+{{NUMBEROF|PAGES|be-x-old}}+{{NUMBEROF|PAGES|bs}}+{{NUMBEROF|PAGES|be}}+{{NUMBEROF|PAGES|hsb}}+{{NUMBEROF|PAGES|csb}}+{{NUMBEROF|PAGES|rue}}+{{NUMBEROF|PAGES|szl}}+{{NUMBEROF|PAGES|dsb}}+{{NUMBEROF|PAGES|cu}} }}
| NUMBEROFUSERS | USERS = {{#expr: {{NUMBEROF|USERS|pl}}+{{NUMBEROF|USERS|ru}}+{{NUMBEROF|USERS|uk}}+{{NUMBEROF|USERS|cs}}+{{NUMBEROF|USERS|sr}}+{{NUMBEROF|USERS|sk}}+{{NUMBEROF|USERS|bg}}+{{NUMBEROF|USERS|sl}}+{{NUMBEROF|USERS|hr}}+{{NUMBEROF|USERS|mk}}+{{NUMBEROF|USERS|sh}}+{{NUMBEROF|USERS|be-x-old}}+{{NUMBEROF|USERS|bs}}+{{NUMBEROF|USERS|be}}+{{NUMBEROF|USERS|hsb}}+{{NUMBEROF|USERS|csb}}+{{NUMBEROF|USERS|rue}}+{{NUMBEROF|USERS|szl}}+{{NUMBEROF|USERS|dsb}}+{{NUMBEROF|USERS|cu}} }}
| NUMBEROFACTIVEUSERS | ACTIVEUSERS = {{#expr: {{NUMBEROF|ACTIVEUSERS|pl}}+{{NUMBEROF|ACTIVEUSERS|ru}}+{{NUMBEROF|ACTIVEUSERS|uk}}+{{NUMBEROF|ACTIVEUSERS|cs}}+{{NUMBEROF|ACTIVEUSERS|sr}}+{{NUMBEROF|ACTIVEUSERS|sk}}+{{NUMBEROF|ACTIVEUSERS|bg}}+{{NUMBEROF|ACTIVEUSERS|sl}}+{{NUMBEROF|ACTIVEUSERS|hr}}+{{NUMBEROF|ACTIVEUSERS|mk}}+{{NUMBEROF|ACTIVEUSERS|sh}}+{{NUMBEROF|ACTIVEUSERS|be-x-old}}+{{NUMBEROF|ACTIVEUSERS|bs}}+{{NUMBEROF|ACTIVEUSERS|be}}+{{NUMBEROF|ACTIVEUSERS|hsb}}+{{NUMBEROF|ACTIVEUSERS|csb}}+{{NUMBEROF|ACTIVEUSERS|rue}}+{{NUMBEROF|ACTIVEUSERS|szl}}+{{NUMBEROF|ACTIVEUSERS|dsb}}+{{NUMBEROF|ACTIVEUSERS|cu}} }}
| NUMBEROFADMINS | ADMINS = {{#expr: {{NUMBEROF|ADMINS|pl}}+{{NUMBEROF|ADMINS|ru}}+{{NUMBEROF|ADMINS|uk}}+{{NUMBEROF|ADMINS|cs}}+{{NUMBEROF|ADMINS|sr}}+{{NUMBEROF|ADMINS|sk}}+{{NUMBEROF|ADMINS|bg}}+{{NUMBEROF|ADMINS|sl}}+{{NUMBEROF|ADMINS|hr}}+{{NUMBEROF|ADMINS|mk}}+{{NUMBEROF|ADMINS|sh}}+{{NUMBEROF|ADMINS|be-x-old}}+{{NUMBEROF|ADMINS|bs}}+{{NUMBEROF|ADMINS|be}}+{{NUMBEROF|ADMINS|hsb}}+{{NUMBEROF|ADMINS|csb}}+{{NUMBEROF|ADMINS|rue}}+{{NUMBEROF|ADMINS|szl}}+{{NUMBEROF|ADMINS|dsb}}+{{NUMBEROF|ADMINS|cu}} }}
| NUMBEROFEDITS | EDITS = {{#expr: {{NUMBEROF|EDITS|pl}}+{{NUMBEROF|EDITS|ru}}+{{NUMBEROF|EDITS|uk}}+{{NUMBEROF|EDITS|cs}}+{{NUMBEROF|EDITS|sr}}+{{NUMBEROF|EDITS|sk}}+{{NUMBEROF|EDITS|bg}}+{{NUMBEROF|EDITS|sl}}+{{NUMBEROF|EDITS|hr}}+{{NUMBEROF|EDITS|mk}}+{{NUMBEROF|EDITS|sh}}+{{NUMBEROF|EDITS|be-x-old}}+{{NUMBEROF|EDITS|bs}}+{{NUMBEROF|EDITS|be}}+{{NUMBEROF|EDITS|hsb}}+{{NUMBEROF|EDITS|csb}}+{{NUMBEROF|EDITS|rue}}+{{NUMBEROF|EDITS|szl}}+{{NUMBEROF|EDITS|dsb}}+{{NUMBEROF|EDITS|cu}} }}
| 0 }}
| jpx = {{#switch:{{{2}}}
| NUMBEROFARTICLES | ARTICLES = {{NUMBEROF|ARTICLES|ja}}
| NUMBEROFFILES | FILES = {{NUMBEROF|FILES|ja}}
| NUMBEROFPAGES | PAGES = {{NUMBEROF|PAGES|ja}}
| NUMBEROFUSERS | USERS = {{NUMBEROF|USERS|ja}}
| NUMBEROFACTIVEUSERS | ACTIVEUSERS = {{NUMBEROF|ACTIVEUSERS|ja}}
| NUMBEROFADMINS | ADMINS = {{NUMBEROF|ADMINS|ja}}
| NUMBEROFEDITS | EDITS = {{NUMBEROF|EDITS|ja}}
| 0 }}
| zhx = {{#switch:{{{2}}}
| NUMBEROFARTICLES | ARTICLES = {{#expr: {{NUMBEROF|ARTICLES|zh}}+{{NUMBEROF|ARTICLES|zh-yue}}+{{NUMBEROF|ARTICLES|zh-min-nan}}+{{NUMBEROF|ARTICLES|gan}}+{{NUMBEROF|ARTICLES|wuu}}+{{NUMBEROF|ARTICLES|zh-classical}}+{{NUMBEROF|ARTICLES|hak}}+{{NUMBEROF|ARTICLES|cdo}} }}
| NUMBEROFFILES | FILES = {{#expr: {{NUMBEROF|FILES|zh}}+{{NUMBEROF|FILES|zh-yue}}+{{NUMBEROF|FILES|zh-min-nan}}+{{NUMBEROF|FILES|gan}}+{{NUMBEROF|FILES|wuu}}+{{NUMBEROF|FILES|zh-classical}}+{{NUMBEROF|FILES|hak}}+{{NUMBEROF|FILES|cdo}} }}
| NUMBEROFPAGES | PAGES = {{#expr: {{NUMBEROF|PAGES|zh}}+{{NUMBEROF|PAGES|zh-yue}}+{{NUMBEROF|PAGES|zh-min-nan}}+{{NUMBEROF|PAGES|gan}}+{{NUMBEROF|PAGES|wuu}}+{{NUMBEROF|PAGES|zh-classical}}+{{NUMBEROF|PAGES|hak}}+{{NUMBEROF|PAGES|cdo}} }}
| NUMBEROFUSERS | USERS = {{#expr: {{NUMBEROF|USERS|zh}}+{{NUMBEROF|USERS|zh-yue}}+{{NUMBEROF|USERS|zh-min-nan}}+{{NUMBEROF|USERS|gan}}+{{NUMBEROF|USERS|wuu}}+{{NUMBEROF|USERS|zh-classical}}+{{NUMBEROF|USERS|hak}}+{{NUMBEROF|USERS|cdo}} }}
| NUMBEROFACTIVEUSERS | ACTIVEUSERS = {{#expr: {{NUMBEROF|ACTIVEUSERS|zh}}+{{NUMBEROF|ACTIVEUSERS|zh-yue}}+{{NUMBEROF|ACTIVEUSERS|zh-min-nan}}+{{NUMBEROF|ACTIVEUSERS|gan}}+{{NUMBEROF|ACTIVEUSERS|wuu}}+{{NUMBEROF|ACTIVEUSERS|zh-classical}}+{{NUMBEROF|ACTIVEUSERS|hak}}+{{NUMBEROF|ACTIVEUSERS|cdo}} }}
| NUMBEROFADMINS | ADMINS = {{#expr: {{NUMBEROF|ADMINS|zh}}+{{NUMBEROF|ADMINS|zh-yue}}+{{NUMBEROF|ADMINS|zh-min-nan}}+{{NUMBEROF|ADMINS|gan}}+{{NUMBEROF|ADMINS|wuu}}+{{NUMBEROF|ADMINS|zh-classical}}+{{NUMBEROF|ADMINS|hak}}+{{NUMBEROF|ADMINS|cdo}} }}
| NUMBEROFEDITS | EDITS = {{#expr: {{NUMBEROF|EDITS|zh}}+{{NUMBEROF|EDITS|zh-yue}}+{{NUMBEROF|EDITS|zh-min-nan}}+{{NUMBEROF|EDITS|gan}}+{{NUMBEROF|EDITS|wuu}}+{{NUMBEROF|EDITS|zh-classical}}+{{NUMBEROF|EDITS|hak}}+{{NUMBEROF|EDITS|cdo}} }}
| 0 }}
| Finno-Permic = {{#switch:{{{2}}}
| NUMBEROFARTICLES | ARTICLES = {{#expr: {{NUMBEROF|ARTICLES|fi}}+{{NUMBEROF|ARTICLES|et}}+{{NUMBEROF|ARTICLES|mrj}}+{{NUMBEROF|ARTICLES|se}}+{{NUMBEROF|ARTICLES|fiu-vro}}+{{NUMBEROF|ARTICLES|koi}}+{{NUMBEROF|ARTICLES|kv}}+{{NUMBEROF|ARTICLES|udm}}+{{NUMBEROF|ARTICLES|mhr}}+{{NUMBEROF|ARTICLES|vep}}+{{NUMBEROF|ARTICLES|mvy}}+{{NUMBEROF|ARTICLES|mdf}} }}
| NUMBEROFFILES | FILES = {{#expr: {{NUMBEROF|FILES|fi}}+{{NUMBEROF|FILES|et}}+{{NUMBEROF|FILES|mrj}}+{{NUMBEROF|FILES|se}}+{{NUMBEROF|FILES|fiu-vro}}+{{NUMBEROF|FILES|koi}}+{{NUMBEROF|FILES|kv}}+{{NUMBEROF|FILES|udm}}+{{NUMBEROF|FILES|mhr}}+{{NUMBEROF|FILES|vep}}+{{NUMBEROF|FILES|mvy}}+{{NUMBEROF|FILES|mdf}} }}
| NUMBEROFPAGES | PAGES = {{#expr: {{NUMBEROF|PAGES|fi}}+{{NUMBEROF|PAGES|et}}+{{NUMBEROF|PAGES|mrj}}+{{NUMBEROF|PAGES|se}}+{{NUMBEROF|PAGES|fiu-vro}}+{{NUMBEROF|PAGES|koi}}+{{NUMBEROF|PAGES|kv}}+{{NUMBEROF|PAGES|udm}}+{{NUMBEROF|PAGES|mhr}}+{{NUMBEROF|PAGES|vep}}+{{NUMBEROF|PAGES|mvy}}+{{NUMBEROF|PAGES|mdf}} }}
| NUMBEROFUSERS | USERS = {{#expr: {{NUMBEROF|USERS|fi}}+{{NUMBEROF|USERS|et}}+{{NUMBEROF|USERS|mrj}}+{{NUMBEROF|USERS|se}}+{{NUMBEROF|USERS|fiu-vro}}+{{NUMBEROF|USERS|koi}}+{{NUMBEROF|USERS|kv}}+{{NUMBEROF|USERS|udm}}+{{NUMBEROF|USERS|mhr}}+{{NUMBEROF|USERS|vep}}+{{NUMBEROF|USERS|mvy}}+{{NUMBEROF|USERS|mdf}} }}
| NUMBEROFACTIVEUSERS | ACTIVEUSERS = {{#expr: {{NUMBEROF|ACTIVEUSERS|fi}}+{{NUMBEROF|ACTIVEUSERS|et}}+{{NUMBEROF|ACTIVEUSERS|mrj}}+{{NUMBEROF|ACTIVEUSERS|se}}+{{NUMBEROF|ACTIVEUSERS|fiu-vro}}+{{NUMBEROF|ACTIVEUSERS|koi}}+{{NUMBEROF|ACTIVEUSERS|kv}}+{{NUMBEROF|ACTIVEUSERS|udm}}+{{NUMBEROF|ACTIVEUSERS|mhr}}+{{NUMBEROF|ACTIVEUSERS|vep}}+{{NUMBEROF|ACTIVEUSERS|mvy}}+{{NUMBEROF|ACTIVEUSERS|mdf}} }}
| NUMBEROFADMINS | ADMINS = {{#expr: {{NUMBEROF|ADMINS|fi}}+{{NUMBEROF|ADMINS|et}}+{{NUMBEROF|ADMINS|mrj}}+{{NUMBEROF|ADMINS|se}}+{{NUMBEROF|ADMINS|fiu-vro}}+{{NUMBEROF|ADMINS|koi}}+{{NUMBEROF|ADMINS|kv}}+{{NUMBEROF|ADMINS|udm}}+{{NUMBEROF|ADMINS|mhr}}+{{NUMBEROF|ADMINS|vep}}+{{NUMBEROF|ADMINS|mvy}}+{{NUMBEROF|ADMINS|mdf}} }}
| NUMBEROFEDITS | EDITS = {{#expr: {{NUMBEROF|EDITS|fi}}+{{NUMBEROF|EDITS|et}}+{{NUMBEROF|EDITS|mrj}}+{{NUMBEROF|EDITS|se}}+{{NUMBEROF|EDITS|fiu-vro}}+{{NUMBEROF|EDITS|koi}}+{{NUMBEROF|EDITS|kv}}+{{NUMBEROF|EDITS|udm}}+{{NUMBEROF|EDITS|mhr}}+{{NUMBEROF|EDITS|vep}}+{{NUMBEROF|EDITS|mvy}}+{{NUMBEROF|EDITS|mdf}} }}
| 0 }}
| art = {{#switch:{{{2}}}
| NUMBEROFARTICLES | ARTICLES = {{#expr: {{NUMBEROF|ARTICLES|eo}}+{{NUMBEROF|ARTICLES|vo}}+{{NUMBEROF|ARTICLES|io}}+{{NUMBEROF|ARTICLES|ia}}+{{NUMBEROF|ARTICLES|nov}}+{{NUMBEROF|ARTICLES|ie}}+{{NUMBEROF|ARTICLES|jbo}} }}
| NUMBEROFFILES | FILES = {{#expr: {{NUMBEROF|FILES|eo}}+{{NUMBEROF|FILES|vo}}+{{NUMBEROF|FILES|io}}+{{NUMBEROF|FILES|ia}}+{{NUMBEROF|FILES|nov}}+{{NUMBEROF|FILES|ie}}+{{NUMBEROF|FILES|jbo}} }}
| NUMBEROFPAGES | PAGES = {{#expr: {{NUMBEROF|PAGES|eo}}+{{NUMBEROF|PAGES|vo}}+{{NUMBEROF|PAGES|io}}+{{NUMBEROF|PAGES|ia}}+{{NUMBEROF|PAGES|nov}}+{{NUMBEROF|PAGES|ie}}+{{NUMBEROF|PAGES|jbo}} }}
| NUMBEROFUSERS | USERS = {{#expr: {{NUMBEROF|USERS|eo}}+{{NUMBEROF|USERS|vo}}+{{NUMBEROF|USERS|io}}+{{NUMBEROF|USERS|ia}}+{{NUMBEROF|USERS|nov}}+{{NUMBEROF|USERS|ie}}+{{NUMBEROF|USERS|jbo}} }}
| NUMBEROFACTIVEUSERS | ACTIVEUSERS = {{#expr: {{NUMBEROF|ACTIVEUSERS|eo}}+{{NUMBEROF|ACTIVEUSERS|vo}}+{{NUMBEROF|ACTIVEUSERS|io}}+{{NUMBEROF|ACTIVEUSERS|ia}}+{{NUMBEROF|ACTIVEUSERS|nov}}+{{NUMBEROF|ACTIVEUSERS|ie}}+{{NUMBEROF|ACTIVEUSERS|jbo}} }}
| NUMBEROFADMINS | ADMINS = {{#expr: {{NUMBEROF|ADMINS|eo}}+{{NUMBEROF|ADMINS|vo}}+{{NUMBEROF|ADMINS|io}}+{{NUMBEROF|ADMINS|ia}}+{{NUMBEROF|ADMINS|nov}}+{{NUMBEROF|ADMINS|ie}}+{{NUMBEROF|ADMINS|jbo}} }}
| NUMBEROFEDITS | EDITS = {{#expr: {{NUMBEROF|EDITS|eo}}+{{NUMBEROF|EDITS|vo}}+{{NUMBEROF|EDITS|io}}+{{NUMBEROF|EDITS|ia}}+{{NUMBEROF|EDITS|nov}}+{{NUMBEROF|EDITS|ie}}+{{NUMBEROF|EDITS|jbo}} }}
| 0 }}
| Sunda-Sulawesi = {{#switch:{{{2}}}
| NUMBEROFARTICLES | ARTICLES = {{#expr: {{NUMBEROF|ARTICLES|id}}+{{NUMBEROF|ARTICLES|ms}}+{{NUMBEROF|ARTICLES|jv}}+{{NUMBEROF|ARTICLES|su}}+{{NUMBEROF|ARTICLES|bug}}+{{NUMBEROF|ARTICLES|min}}+{{NUMBEROF|ARTICLES|map-bms}}+{{NUMBEROF|ARTICLES|ace}}+{{NUMBEROF|ARTICLES|bjn}}+{{NUMBEROF|ARTICLES|ch}} }}
| NUMBEROFFILES | FILES = {{#expr: {{NUMBEROF|FILES|id}}+{{NUMBEROF|FILES|ms}}+{{NUMBEROF|FILES|jv}}+{{NUMBEROF|FILES|su}}+{{NUMBEROF|FILES|bug}}+{{NUMBEROF|FILES|min}}+{{NUMBEROF|FILES|map-bms}}+{{NUMBEROF|FILES|ace}}+{{NUMBEROF|FILES|bjn}}+{{NUMBEROF|FILES|ch}} }}
| NUMBEROFPAGES | PAGES = {{#expr: {{NUMBEROF|PAGES |id}}+{{NUMBEROF|PAGES|min}}+{{NUMBEROF|PAGES |ms}}+{{NUMBEROF|PAGES |jv}}+{{NUMBEROF|PAGES |su}}+{{NUMBEROF|PAGES |bug}}+{{NUMBEROF|PAGES |map-bms}}+{{NUMBEROF|PAGES |ace}}+{{NUMBEROF|PAGES |bjn}}+{{NUMBEROF|PAGES |ch}} }}
| NUMBEROFUSERS | USERS = {{#expr: {{NUMBEROF|USERS|id}}+{{NUMBEROF|USERS|min}}+{{NUMBEROF|USERS|ms}}+{{NUMBEROF|USERS|jv}}+{{NUMBEROF|USERS|su}}+{{NUMBEROF|USERS|bug}}+{{NUMBEROF|USERS|map-bms}}+{{NUMBEROF|USERS|ace}}+{{NUMBEROF|USERS|bjn}}+{{NUMBEROF|USERS|ch}} }}
| NUMBEROFACTIVEUSERS | ACTIVEUSERS = {{#expr: {{NUMBEROF|ACTIVEUSERS|id}}+{{NUMBEROF|ACTIVEUSERS|ms}}+{{NUMBEROF|ACTIVEUSERS|jv}}+{{NUMBEROF|ACTIVEUSERS|su}}+{{NUMBEROF|ACTIVEUSERS|bug}}+{{NUMBEROF|ACTIVEUSERS|min}}+{{NUMBEROF|ACTIVEUSERS|map-bms}}+{{NUMBEROF|ACTIVEUSERS|ace}}+{{NUMBEROF|ACTIVEUSERS|bjn}}+{{NUMBEROF|ACTIVEUSERS|ch}} }}
| NUMBEROFADMINS | ADMINS = {{#expr: {{NUMBEROF|ADMINS|id}}+{{NUMBEROF|ADMINS|ms}}+{{NUMBEROF|ADMINS|jv}}+{{NUMBEROF|ADMINS|su}}+{{NUMBEROF|ADMINS|bug}}+{{NUMBEROF|ADMINS|min}}+{{NUMBEROF|ADMINS|map-bms}}+{{NUMBEROF|ADMINS|ace}}+{{NUMBEROF|ADMINS|bjn}}+{{NUMBEROF|ADMINS|ch}} }}
| NUMBEROFEDITS | EDITS = {{#expr: {{NUMBEROF|EDITS|id}}+{{NUMBEROF|EDITS|ms}}+{{NUMBEROF|EDITS|jv}}+{{NUMBEROF|EDITS|su}}+{{NUMBEROF|EDITS|bug}}+{{NUMBEROF|EDITS|min}}+{{NUMBEROF|EDITS|map-bms}}+{{NUMBEROF|EDITS|ace}}+{{NUMBEROF|EDITS|bjn}}+{{NUMBEROF|EDITS|ch}} }}
| 0 }}
| trk = {{#switch:{{{2}}}
| NUMBEROFARTICLES | ARTICLES = {{#expr: {{NUMBEROF|ARTICLES|tr}}+{{NUMBEROF|ARTICLES|az}}+{{NUMBEROF|ARTICLES|kk}}+{{NUMBEROF|ARTICLES|cv}}+{{NUMBEROF|ARTICLES|tt}}+{{NUMBEROF|ARTICLES|uz}}+{{NUMBEROF|ARTICLES|sah}}+{{NUMBEROF|ARTICLES|tk}}+{{NUMBEROF|ARTICLES|ug}}+{{NUMBEROF|ARTICLES|krc}}+{{NUMBEROF|ARTICLES|crh}}+{{NUMBEROF|ARTICLES|ky}}+{{NUMBEROF|ARTICLES|ba}}+{{NUMBEROF|ARTICLES|gag}}+{{NUMBEROF|ARTICLES|kaa}}+{{NUMBEROF|ARTICLES|azb}} }}
| NUMBEROFFILES | FILES = {{#expr: {{NUMBEROF|FILES|tr}}+{{NUMBEROF|FILES|az}}+{{NUMBEROF|FILES|kk}}+{{NUMBEROF|FILES|cv}}+{{NUMBEROF|FILES|tt}}+{{NUMBEROF|FILES|uz}}+{{NUMBEROF|FILES|sah}}+{{NUMBEROF|FILES|tk}}+{{NUMBEROF|FILES|ug}}+{{NUMBEROF|FILES|krc}}+{{NUMBEROF|FILES|crh}}+{{NUMBEROF|FILES|ky}}+{{NUMBEROF|FILES|ba}}+{{NUMBEROF|FILES|gag}}+{{NUMBEROF|FILES|kaa}}+{{NUMBEROF|FILES|azb}} }}
| NUMBEROFPAGES | PAGES = {{#expr: {{NUMBEROF|PAGES|tr}}+{{NUMBEROF|PAGES|az}}+{{NUMBEROF|PAGES|kk}}+{{NUMBEROF|PAGES|cv}}+{{NUMBEROF|PAGES|tt}}+{{NUMBEROF|PAGES|uz}}+{{NUMBEROF|PAGES|sah}}+{{NUMBEROF|PAGES|tk}}+{{NUMBEROF|PAGES|ug}}+{{NUMBEROF|PAGES|krc}}+{{NUMBEROF|PAGES|crh}}+{{NUMBEROF|PAGES|ky}}+{{NUMBEROF|PAGES|ba}}+{{NUMBEROF|PAGES|gag}}+{{NUMBEROF|PAGES|kaa}}+{{NUMBEROF|PAGES|azb}} }}
| NUMBEROFUSERS | USERS = {{#expr: {{NUMBEROF|USERS|tr}}+{{NUMBEROF|USERS|az}}+{{NUMBEROF|USERS|kk}}+{{NUMBEROF|USERS|cv}}+{{NUMBEROF|USERS|tt}}+{{NUMBEROF|USERS|uz}}+{{NUMBEROF|USERS|sah}}+{{NUMBEROF|USERS|tk}}+{{NUMBEROF|USERS|ug}}+{{NUMBEROF|USERS|krc}}+{{NUMBEROF|USERS|crh}}+{{NUMBEROF|USERS|ky}}+{{NUMBEROF|USERS|ba}}+{{NUMBEROF|USERS|gag}}+{{NUMBEROF|USERS|kaa}}+{{NUMBEROF|USERS|azb}} }}
| NUMBEROFACTIVEUSERS | ACTIVEUSERS = {{#expr: {{NUMBEROF|ACTIVEUSERS|tr}}+{{NUMBEROF|ACTIVEUSERS|az}}+{{NUMBEROF|ACTIVEUSERS|kk}}+{{NUMBEROF|ACTIVEUSERS|cv}}+{{NUMBEROF|ACTIVEUSERS|tt}}+{{NUMBEROF|ACTIVEUSERS|uz}}+{{NUMBEROF|ACTIVEUSERS|sah}}+{{NUMBEROF|ACTIVEUSERS|tk}}+{{NUMBEROF|ACTIVEUSERS|ug}}+{{NUMBEROF|ACTIVEUSERS|krc}}+{{NUMBEROF|ACTIVEUSERS|crh}}+{{NUMBEROF|ACTIVEUSERS|ky}}+{{NUMBEROF|ACTIVEUSERS|ba}}+{{NUMBEROF|ACTIVEUSERS|gag}}+{{NUMBEROF|ACTIVEUSERS|kaa}}+{{NUMBEROF|ACTIVEUSERS|azb}} }}
| NUMBEROFADMINS | ADMINS = {{#expr: {{NUMBEROF|ADMINS|tr}}+{{NUMBEROF|ADMINS|az}}+{{NUMBEROF|ADMINS|kk}}+{{NUMBEROF|ADMINS|cv}}+{{NUMBEROF|ADMINS|tt}}+{{NUMBEROF|ADMINS|uz}}+{{NUMBEROF|ADMINS|sah}}+{{NUMBEROF|ADMINS|tk}}+{{NUMBEROF|ADMINS|ug}}+{{NUMBEROF|ADMINS|krc}}+{{NUMBEROF|ADMINS|crh}}+{{NUMBEROF|ADMINS|ky}}+{{NUMBEROF|ADMINS|ba}}+{{NUMBEROF|ADMINS|gag}}+{{NUMBEROF|ADMINS|kaa}}+{{NUMBEROF|ADMINS|azb}} }}
| NUMBEROFEDITS | EDITS = {{#expr: {{NUMBEROF|EDITS|tr}}+{{NUMBEROF|EDITS|az}}+{{NUMBEROF|EDITS|kk}}+{{NUMBEROF|EDITS|cv}}+{{NUMBEROF|EDITS|tt}}+{{NUMBEROF|EDITS|uz}}+{{NUMBEROF|EDITS|sah}}+{{NUMBEROF|EDITS|tk}}+{{NUMBEROF|EDITS|ug}}+{{NUMBEROF|EDITS|krc}}+{{NUMBEROF|EDITS|crh}}+{{NUMBEROF|EDITS|ky}}+{{NUMBEROF|EDITS|ba}}+{{NUMBEROF|EDITS|gag}}+{{NUMBEROF|EDITS|kaa}}+{{NUMBEROF|EDITS|azb}} }}
| 0 }}
| sem = {{#switch:{{{2}}}
| NUMBEROFARTICLES | ARTICLES = {{#expr: {{NUMBEROF|ARTICLES|ar}}+{{NUMBEROF|ARTICLES|he}}+{{NUMBEROF|ARTICLES|am}}+{{NUMBEROF|ARTICLES|arz}}+{{NUMBEROF|ARTICLES|mt}}+{{NUMBEROF|ARTICLES|arc}}+{{NUMBEROF|ARTICLES|ti}} }}
| NUMBEROFFILES | FILES = {{#expr: {{NUMBEROF|FILES|ar}}+{{NUMBEROF|FILES|he}}+{{NUMBEROF|FILES|am}}+{{NUMBEROF|FILES|arz}}+{{NUMBEROF|FILES|mt}}+{{NUMBEROF|FILES|arc}}+{{NUMBEROF|FILES|ti}} }}
| NUMBEROFPAGES | PAGES = {{#expr: {{NUMBEROF|PAGES|ar}}+{{NUMBEROF|PAGES|he}}+{{NUMBEROF|PAGES|am}}+{{NUMBEROF|PAGES|arz}}+{{NUMBEROF|PAGES|mt}}+{{NUMBEROF|PAGES|arc}}+{{NUMBEROF|PAGES|ti}} }}
| NUMBEROFUSERS | USERS = {{#expr: {{NUMBEROF|USERS|ar}}+{{NUMBEROF|USERS|he}}+{{NUMBEROF|USERS|am}}+{{NUMBEROF|USERS|arz}}+{{NUMBEROF|USERS|mt}}+{{NUMBEROF|USERS|arc}}+{{NUMBEROF|USERS|ti}} }}
| NUMBEROFACTIVEUSERS | ACTIVEUSERS = {{#expr: {{NUMBEROF|ACTIVEUSERS|ar}}+{{NUMBEROF|ACTIVEUSERS|he}}+{{NUMBEROF|ACTIVEUSERS|am}}+{{NUMBEROF|ACTIVEUSERS|arz}}+{{NUMBEROF|ACTIVEUSERS|mt}}+{{NUMBEROF|ACTIVEUSERS|arc}}+{{NUMBEROF|ACTIVEUSERS|ti}} }}
| NUMBEROFADMINS | ADMINS = {{#expr: {{NUMBEROF|ADMINS|ar}}+{{NUMBEROF|ADMINS|he}}+{{NUMBEROF|ADMINS|am}}+{{NUMBEROF|ADMINS|arz}}+{{NUMBEROF|ADMINS|mt}}+{{NUMBEROF|ADMINS|arc}}+{{NUMBEROF|ADMINS|ti}} }}
| NUMBEROFEDITS | EDITS = {{#expr: {{NUMBEROF|EDITS|ar}}+{{NUMBEROF|EDITS|he}}+{{NUMBEROF|EDITS|am}}+{{NUMBEROF|EDITS|arz}}+{{NUMBEROF|EDITS|mt}}+{{NUMBEROF|EDITS|arc}}+{{NUMBEROF|EDITS|ti}} }}
| 0 }}
| inc = {{#switch:{{{2}}}
| NUMBEROFARTICLES | ARTICLES = {{#expr: {{NUMBEROF|ARTICLES|hi}}+{{NUMBEROF|ARTICLES|mr}}+{{NUMBEROF|ARTICLES|bpy}}+{{NUMBEROF|ARTICLES|bn}}+{{NUMBEROF|ARTICLES|gu}}+{{NUMBEROF|ARTICLES|ur}}+{{NUMBEROF|ARTICLES|ne}}+{{NUMBEROF|ARTICLES|pnb}}+{{NUMBEROF|ARTICLES|sa}}+{{NUMBEROF|ARTICLES|si}}+{{NUMBEROF|ARTICLES|dv}}+{{NUMBEROF|ARTICLES|hif}}+{{NUMBEROF|ARTICLES|bh}}+{{NUMBEROF|ARTICLES|pi}}+{{NUMBEROF|ARTICLES|pa}}+{{NUMBEROF|ARTICLES|or}}+{{NUMBEROF|ARTICLES|rmy}}+{{NUMBEROF|ARTICLES|as}}+{{NUMBEROF|ARTICLES|sd}}+{{NUMBEROF|ARTICLES|ks}}+{{NUMBEROF|ARTICLES|mai}}+{{NUMBEROF|ARTICLES|gom}} }}
| NUMBEROFFILES | FILES = {{#expr: {{NUMBEROF|FILES|hi}}+{{NUMBEROF|FILES|mr}}+{{NUMBEROF|FILES|bpy}}+{{NUMBEROF|FILES|bn}}+{{NUMBEROF|FILES|gu}}+{{NUMBEROF|FILES|ur}}+{{NUMBEROF|FILES|ne}}+{{NUMBEROF|FILES|pnb}}+{{NUMBEROF|FILES|sa}}+{{NUMBEROF|FILES|si}}+{{NUMBEROF|FILES|dv}}+{{NUMBEROF|FILES|hif}}+{{NUMBEROF|FILES|bh}}+{{NUMBEROF|FILES|pi}}+{{NUMBEROF|FILES|pa}}+{{NUMBEROF|FILES|or}}+{{NUMBEROF|FILES|rmy}}+{{NUMBEROF|FILES|as}}+{{NUMBEROF|FILES|sd}}+{{NUMBEROF|FILES|ks}}+{{NUMBEROF|FILES|mai}}+{{NUMBEROF|FILES|gom}} }}
| NUMBEROFPAGES | PAGES = {{#expr: {{NUMBEROF|PAGES|hi}}+{{NUMBEROF|PAGES|mr}}+{{NUMBEROF|PAGES|bpy}}+{{NUMBEROF|PAGES|bn}}+{{NUMBEROF|PAGES|gu}}+{{NUMBEROF|PAGES|ur}}+{{NUMBEROF|PAGES|ne}}+{{NUMBEROF|PAGES|pnb}}+{{NUMBEROF|PAGES|sa}}+{{NUMBEROF|PAGES|si}}+{{NUMBEROF|PAGES|dv}}+{{NUMBEROF|PAGES|hif}}+{{NUMBEROF|PAGES|bh}}+{{NUMBEROF|PAGES|pi}}+{{NUMBEROF|PAGES|pa}}+{{NUMBEROF|PAGES|or}}+{{NUMBEROF|PAGES|rmy}}+{{NUMBEROF|PAGES|as}}+{{NUMBEROF|PAGES|sd}}+{{NUMBEROF|PAGES|ks}}+{{NUMBEROF|PAGES|mai}}+{{NUMBEROF|PAGES|gom}} }}
| NUMBEROFUSERS | USERS = {{#expr: {{NUMBEROF|USERS|hi}}+{{NUMBEROF|USERS|mr}}+{{NUMBEROF|USERS|bpy}}+{{NUMBEROF|USERS|bn}}+{{NUMBEROF|USERS|gu}}+{{NUMBEROF|USERS|ur}}+{{NUMBEROF|USERS|ne}}+{{NUMBEROF|USERS|pnb}}+{{NUMBEROF|USERS|sa}}+{{NUMBEROF|USERS|si}}+{{NUMBEROF|USERS|dv}}+{{NUMBEROF|USERS|hif}}+{{NUMBEROF|USERS|bh}}+{{NUMBEROF|USERS|pi}}+{{NUMBEROF|USERS|pa}}+{{NUMBEROF|USERS|or}}+{{NUMBEROF|USERS|rmy}}+{{NUMBEROF|USERS|as}}+{{NUMBEROF|USERS|sd}}+{{NUMBEROF|USERS|ks}}+{{NUMBEROF|USERS|mai}}+{{NUMBEROF|USERS|gom}} }}
| NUMBEROFACTIVEUSERS | ACTIVEUSERS = {{#expr: {{NUMBEROF|ACTIVEUSERS|hi}}+{{NUMBEROF|ACTIVEUSERS|mr}}+{{NUMBEROF|ACTIVEUSERS|bpy}}+{{NUMBEROF|ACTIVEUSERS|bn}}+{{NUMBEROF|ACTIVEUSERS|gu}}+{{NUMBEROF|ACTIVEUSERS|ur}}+{{NUMBEROF|ACTIVEUSERS|ne}}+{{NUMBEROF|ACTIVEUSERS|pnb}}+{{NUMBEROF|ACTIVEUSERS|sa}}+{{NUMBEROF|ACTIVEUSERS|si}}+{{NUMBEROF|ACTIVEUSERS|dv}}+{{NUMBEROF|ACTIVEUSERS|hif}}+{{NUMBEROF|ACTIVEUSERS|bh}}+{{NUMBEROF|ACTIVEUSERS|pi}}+{{NUMBEROF|ACTIVEUSERS|pa}}+{{NUMBEROF|ACTIVEUSERS|or}}+{{NUMBEROF|ACTIVEUSERS|rmy}}+{{NUMBEROF|ACTIVEUSERS|as}}+{{NUMBEROF|ACTIVEUSERS|sd}}+{{NUMBEROF|ACTIVEUSERS|ks}}+{{NUMBEROF|ACTIVEUSERS|mai}}+{{NUMBEROF|ACTIVEUSERS|gom}} }}
| NUMBEROFADMINS | ADMINS = {{#expr: {{NUMBEROF|ADMINS|hi}}+{{NUMBEROF|ADMINS|mr}}+{{NUMBEROF|ADMINS|bpy}}+{{NUMBEROF|ADMINS|bn}}+{{NUMBEROF|ADMINS|gu}}+{{NUMBEROF|ADMINS|ur}}+{{NUMBEROF|ADMINS|ne}}+{{NUMBEROF|ADMINS|pnb}}+{{NUMBEROF|ADMINS|sa}}+{{NUMBEROF|ADMINS|si}}+{{NUMBEROF|ADMINS|dv}}+{{NUMBEROF|ADMINS|hif}}+{{NUMBEROF|ADMINS|bh}}+{{NUMBEROF|ADMINS|pi}}+{{NUMBEROF|ADMINS|pa}}+{{NUMBEROF|ADMINS|or}}+{{NUMBEROF|ADMINS|rmy}}+{{NUMBEROF|ADMINS|as}}+{{NUMBEROF|ADMINS|sd}}+{{NUMBEROF|ADMINS|ks}}+{{NUMBEROF|ADMINS|mai}}+{{NUMBEROF|ADMINS|gom}} }}
| NUMBEROFEDITS | EDITS = {{#expr: {{NUMBEROF|EDITS|hi}}+{{NUMBEROF|EDITS|mr}}+{{NUMBEROF|EDITS|bpy}}+{{NUMBEROF|EDITS|bn}}+{{NUMBEROF|EDITS|gu}}+{{NUMBEROF|EDITS|ur}}+{{NUMBEROF|EDITS|ne}}+{{NUMBEROF|EDITS|pnb}}+{{NUMBEROF|EDITS|sa}}+{{NUMBEROF|EDITS|si}}+{{NUMBEROF|EDITS|dv}}+{{NUMBEROF|EDITS|hif}}+{{NUMBEROF|EDITS|bh}}+{{NUMBEROF|EDITS|pi}}+{{NUMBEROF|EDITS|pa}}+{{NUMBEROF|EDITS|or}}+{{NUMBEROF|EDITS|rmy}}+{{NUMBEROF|EDITS|as}}+{{NUMBEROF|EDITS|sd}}+{{NUMBEROF|EDITS|ks}}+{{NUMBEROF|EDITS|mai}}+{{NUMBEROF|EDITS|gom}} }}
| 0 }}
| phi = {{#switch:{{{2}}}
| NUMBEROFARTICLES | ARTICLES = {{#expr: {{NUMBEROF|ARTICLES|war}}+{{NUMBEROF|ARTICLES|tl}}+{{NUMBEROF|ARTICLES|ceb}}+{{NUMBEROF|ARTICLES|pam}}+{{NUMBEROF|ARTICLES|bcl}}+{{NUMBEROF|ARTICLES|ilo}}+{{NUMBEROF|ARTICLES|pag}} }}
| NUMBEROFFILES | FILES = {{#expr: {{NUMBEROF|FILES|war}}+{{NUMBEROF|FILES|tl}}+{{NUMBEROF|FILES|ceb}}+{{NUMBEROF|FILES|pam}}+{{NUMBEROF|FILES|bcl}}+{{NUMBEROF|FILES|ilo}}+{{NUMBEROF|FILES|pag}} }}
| NUMBEROFPAGES | PAGES = {{#expr: {{NUMBEROF|PAGES|war}}+{{NUMBEROF|PAGES|tl}}+{{NUMBEROF|PAGES|ceb}}+{{NUMBEROF|PAGES|pam}}+{{NUMBEROF|PAGES|bcl}}+{{NUMBEROF|PAGES|ilo}}+{{NUMBEROF|PAGES|pag}} }}
| NUMBEROFUSERS | USERS = {{#expr: {{NUMBEROF|USERS|war}}+{{NUMBEROF|USERS|tl}}+{{NUMBEROF|USERS|ceb}}+{{NUMBEROF|USERS|pam}}+{{NUMBEROF|USERS|bcl}}+{{NUMBEROF|USERS|ilo}}+{{NUMBEROF|USERS|pag}} }}
| NUMBEROFACTIVEUSERS | ACTIVEUSERS = {{#expr: {{NUMBEROF|ACTIVEUSERS|war}}+{{NUMBEROF|ACTIVEUSERS|tl}}+{{NUMBEROF|ACTIVEUSERS|ceb}}+{{NUMBEROF|ACTIVEUSERS|pam}}+{{NUMBEROF|ACTIVEUSERS|bcl}}+{{NUMBEROF|ACTIVEUSERS|ilo}}+{{NUMBEROF|ACTIVEUSERS|pag}} }}
| NUMBEROFADMINS | ADMINS = {{#expr: {{NUMBEROF|ADMINS|war}}+{{NUMBEROF|ADMINS|tl}}+{{NUMBEROF|ADMINS|ceb}}+{{NUMBEROF|ADMINS|pam}}+{{NUMBEROF|ADMINS|bcl}}+{{NUMBEROF|ADMINS|ilo}}+{{NUMBEROF|ADMINS|pag}} }}
| NUMBEROFEDITS | EDITS = {{#expr: {{NUMBEROF|EDITS|war}}+{{NUMBEROF|EDITS|tl}}+{{NUMBEROF|EDITS|ceb}}+{{NUMBEROF|EDITS|pam}}+{{NUMBEROF|EDITS|bcl}}+{{NUMBEROF|EDITS|ilo}}+{{NUMBEROF|EDITS|pag}} }}
| 0 }}
| aav = {{#switch:{{{2}}}
| NUMBEROFARTICLES | ARTICLES = {{#expr: {{NUMBEROF|ARTICLES|vi}}+{{NUMBEROF|ARTICLES|km}} }}
| NUMBEROFFILES | FILES = {{#expr: {{NUMBEROF|FILES|vi}}+{{NUMBEROF|FILES|km}} }}
| NUMBEROFPAGES | PAGES = {{#expr: {{NUMBEROF|PAGES|vi}}+{{NUMBEROF|PAGES|km}} }}
| NUMBEROFUSERS | USERS = {{#expr: {{NUMBEROF|USERS|vi}}+{{NUMBEROF|USERS|km}} }}
| NUMBEROFACTIVEUSERS | ACTIVEUSERS = {{#expr: {{NUMBEROF|ACTIVEUSERS|vi}}+{{NUMBEROF|ACTIVEUSERS|km}} }}
| NUMBEROFADMINS | ADMINS = {{#expr: {{NUMBEROF|ADMINS|vi}}+{{NUMBEROF|ADMINS|km}} }}
| NUMBEROFEDITS | EDITS = {{#expr: {{NUMBEROF|EDITS|vi}}+{{NUMBEROF|EDITS|km}} }}
| 0 }}
| iir = {{#switch:{{{2}}}
| NUMBEROFARTICLES | ARTICLES = {{#expr: {{NUMBEROF|ARTICLES|fa}}+{{NUMBEROF|ARTICLES|ku}}+{{NUMBEROF|ARTICLES|tg}}+{{NUMBEROF|ARTICLES|os}}+{{NUMBEROF|ARTICLES|glk}}+{{NUMBEROF|ARTICLES|diq}}+{{NUMBEROF|ARTICLES|ckb}}+{{NUMBEROF|ARTICLES|mzn}}+{{NUMBEROF|ARTICLES|ps}}+{{NUMBEROF|ARTICLES|lrc}} }}
| NUMBEROFFILES | FILES = {{#expr: {{NUMBEROF|FILES|fa}}+{{NUMBEROF|FILES|ku}}+{{NUMBEROF|FILES|tg}}+{{NUMBEROF|FILES|os}}+{{NUMBEROF|FILES|glk}}+{{NUMBEROF|FILES|diq}}+{{NUMBEROF|FILES|ckb}}+{{NUMBEROF|FILES|mzn}}+{{NUMBEROF|FILES|ps}}+{{NUMBEROF|FILES|lrc}} }}
| NUMBEROFPAGES | PAGES = {{#expr: {{NUMBEROF|PAGES|fa}}+{{NUMBEROF|PAGES|ku}}+{{NUMBEROF|PAGES|tg}}+{{NUMBEROF|PAGES|os}}+{{NUMBEROF|PAGES|glk}}+{{NUMBEROF|PAGES|diq}}+{{NUMBEROF|PAGES|ckb}}+{{NUMBEROF|PAGES|mzn}}+{{NUMBEROF|PAGES|ps}}+{{NUMBEROF|PAGES|lrc}} }}
| NUMBEROFUSERS | USERS = {{#expr: {{NUMBEROF|USERS|fa}}+{{NUMBEROF|USERS|ku}}+{{NUMBEROF|USERS|tg}}+{{NUMBEROF|USERS|os}}+{{NUMBEROF|USERS|glk}}+{{NUMBEROF|USERS|diq}}+{{NUMBEROF|USERS|ckb}}+{{NUMBEROF|USERS|mzn}}+{{NUMBEROF|USERS|ps}}+{{NUMBEROF|USERS|lrc}} }}
| NUMBEROFACTIVEUSERS | ACTIVEUSERS = {{#expr: {{NUMBEROF|ACTIVEUSERS|fa}}+{{NUMBEROF|ACTIVEUSERS|ku}}+{{NUMBEROF|ACTIVEUSERS|tg}}+{{NUMBEROF|ACTIVEUSERS|os}}+{{NUMBEROF|ACTIVEUSERS|glk}}+{{NUMBEROF|ACTIVEUSERS|diq}}+{{NUMBEROF|ACTIVEUSERS|ckb}}+{{NUMBEROF|ACTIVEUSERS|mzn}}+{{NUMBEROF|ACTIVEUSERS|ps}}+{{NUMBEROF|ACTIVEUSERSS|lrc}} }}
| NUMBEROFADMINS | ADMINS = {{#expr: {{NUMBEROF|ADMINS|fa}}+{{NUMBEROF|ADMINS|ku}}+{{NUMBEROF|ADMINS|tg}}+{{NUMBEROF|ADMINS|os}}+{{NUMBEROF|ADMINS|glk}}+{{NUMBEROF|ADMINS|diq}}+{{NUMBEROF|ADMINS|ckb}}+{{NUMBEROF|ADMINS|mzn}}+{{NUMBEROF|ADMINS|ps}}+{{NUMBEROF|ADMINS|lrc}} }}
| NUMBEROFEDITS | EDITS = {{#expr: {{NUMBEROF|EDITS|fa}}+{{NUMBEROF|EDITS|ku}}+{{NUMBEROF|EDITS|tg}}+{{NUMBEROF|EDITS|os}}+{{NUMBEROF|EDITS|glk}}+{{NUMBEROF|EDITS|diq}}+{{NUMBEROF|EDITS|ckb}}+{{NUMBEROF|EDITS|mzn}}+{{NUMBEROF|EDITS|ps}}+{{NUMBEROF|EDITS|lrc}} }}
| 0 }}
| Ugric = {{#switch:{{{2}}}
| NUMBEROFARTICLES | ARTICLES = {{NUMBEROF|ARTICLES|hu}}
| NUMBEROFFILES | FILES = {{NUMBEROF|FILES|hu}}
| NUMBEROFPAGES | PAGES = {{NUMBEROF|PAGES|hu}}
| NUMBEROFUSERS | USERS = {{NUMBEROF|USERS|hu}}
| NUMBEROFACTIVEUSERS | ACTIVEUSERS = {{NUMBEROF|ACTIVEUSERS|hu}}
| NUMBEROFADMINS | ADMINS = {{NUMBEROF|ADMINS|hu}}
| NUMBEROFEDITS | EDITS = {{NUMBEROF|EDITS|hu}}
| 0 }}
| bat = {{#switch:{{{2}}}
| NUMBEROFARTICLES | ARTICLES = {{#expr: {{NUMBEROF|ARTICLES|lt}}+{{NUMBEROF|ARTICLES|lv}}+{{NUMBEROF|ARTICLES|bat-smg}}+{{NUMBEROF|ARTICLES|ltg}} }}
| NUMBEROFFILES | FILES = {{#expr: {{NUMBEROF|FILES|lt}}+{{NUMBEROF|FILES|lv}}+{{NUMBEROF|FILES|bat-smg}}+{{NUMBEROF|FILES|ltg}} }}
| NUMBEROFPAGES | PAGES = {{#expr: {{NUMBEROF|PAGES|lt}}+{{NUMBEROF|PAGES|lv}}+{{NUMBEROF|PAGES|bat-smg}}+{{NUMBEROF|PAGES|ltg}} }}
| NUMBEROFUSERS | USERS = {{#expr: {{NUMBEROF|USERS|lt}}+{{NUMBEROF|USERS|lv}}+{{NUMBEROF|USERS|bat-smg}}+{{NUMBEROF|USERS|ltg}} }}
| NUMBEROFACTIVEUSERS | ACTIVEUSERS = {{#expr: {{NUMBEROF|ACTIVEUSERS|lt}}+{{NUMBEROF|ACTIVEUSERS|lv}}+{{NUMBEROF|ACTIVEUSERS|bat-smg}}+{{NUMBEROF|ACTIVEUSERS|ltg}} }}
| NUMBEROFADMINS | ADMINS = {{#expr: {{NUMBEROF|ADMINS|lt}}+{{NUMBEROF|ADMINS|lv}}+{{NUMBEROF|ADMINS|bat-smg}}+{{NUMBEROF|ADMINS|ltg}} }}
| NUMBEROFEDITS | EDITS = {{#expr: {{NUMBEROF|EDITS|lt}}+{{NUMBEROF|EDITS|lv}}+{{NUMBEROF|EDITS|bat-smg}}+{{NUMBEROF|EDITS|ltg}} }}
| 0 }}
| Korean = {{#switch:{{{2}}}
| NUMBEROFARTICLES | ARTICLES = {{NUMBEROF|ARTICLES|ko}}
| NUMBEROFFILES | FILES = {{NUMBEROF|FILES|ko}}
| NUMBEROFPAGES | PAGES = {{NUMBEROF|PAGES|ko}}
| NUMBEROFUSERS | USERS = {{NUMBEROF|USERS|ko}}
| NUMBEROFACTIVEUSERS | ACTIVEUSERS = {{NUMBEROF|ACTIVEUSERS|ko}}
| NUMBEROFADMINS | ADMINS = {{NUMBEROF|ADMINS|ko}}
| NUMBEROFEDITS | EDITS = {{NUMBEROF|EDITS|ko}}
| 0 }}
| dra = {{#switch:{{{2}}}
| NUMBEROFARTICLES | ARTICLES = {{#expr: {{NUMBEROF|ARTICLES|te}}+{{NUMBEROF|ARTICLES|ta}}+{{NUMBEROF|ARTICLES|ml}}+{{NUMBEROF|ARTICLES|kn}}+{{NUMBEROF|ARTICLES|tcy}} }}
| NUMBEROFFILES | FILES = {{#expr: {{NUMBEROF|FILES|te}}+{{NUMBEROF|FILES|ta}}+{{NUMBEROF|FILES|ml}}+{{NUMBEROF|FILES|kn}}+{{NUMBEROF|FILES|tcy}} }}
| NUMBEROFPAGES | PAGES = {{#expr: {{NUMBEROF|PAGES|te}}+{{NUMBEROF|PAGES|ta}}+{{NUMBEROF|PAGES|ml}}+{{NUMBEROF|PAGES|kn}}+{{NUMBEROF|PAGES|tcy}} }}
| NUMBEROFUSERS | USERS = {{#expr: {{NUMBEROF|USERS|te}}+{{NUMBEROF|USERS|ta}}+{{NUMBEROF|USERS|ml}}+{{NUMBEROF|USERS|kn}}+{{NUMBEROF|USERS|tcy}} }}
| NUMBEROFACTIVEUSERS | ACTIVEUSERS = {{#expr: {{NUMBEROF|ACTIVEUSERS|te}}+{{NUMBEROF|ACTIVEUSERS|ta}}+{{NUMBEROF|ACTIVEUSERS|ml}}+{{NUMBEROF|ACTIVEUSERS|kn}}+{{NUMBEROF|ACTIVEUSERS|tcy}} }}
| NUMBEROFADMINS | ADMINS = {{#expr: {{NUMBEROF|ADMINS|te}}+{{NUMBEROF|ADMINS|ta}}+{{NUMBEROF|ADMINS|ml}}+{{NUMBEROF|ADMINS|kn}}+{{NUMBEROF|ADMINS|tcy}} }}
| NUMBEROFEDITS | EDITS = {{#expr: {{NUMBEROF|EDITS|te}}+{{NUMBEROF|EDITS|ta}}+{{NUMBEROF|EDITS|ml}}+{{NUMBEROF|EDITS|kn}}+{{NUMBEROF|EDITS|tcy}} }}
| 0 }}
| euq = {{#switch:{{{2}}}
| NUMBEROFARTICLES | ARTICLES = {{NUMBEROF|ARTICLES|eu}}
| NUMBEROFFILES | FILES = {{NUMBEROF|FILES|eu}}
| NUMBEROFPAGES | PAGES = {{NUMBEROF|PAGES|eu}}
| NUMBEROFUSERS | USERS = {{NUMBEROF|USERS|eu}}
| NUMBEROFACTIVEUSERS | ACTIVEUSERS = {{NUMBEROF|ACTIVEUSERS|eu}}
| NUMBEROFADMINS | ADMINS = {{NUMBEROF|ADMINS|eu}}
| NUMBEROFEDITS | EDITS = {{NUMBEROF|EDITS|eu}}
| 0 }}
| cel = {{#switch:{{{2}}}
| NUMBEROFARTICLES | ARTICLES = {{#expr: {{NUMBEROF|ARTICLES|br}}+{{NUMBEROF|ARTICLES|cy}}+{{NUMBEROF|ARTICLES|ga}}+{{NUMBEROF|ARTICLES|gd}}+{{NUMBEROF|ARTICLES|gv}}+{{NUMBEROF|ARTICLES|kw}} }}
| NUMBEROFFILES | FILES = {{#expr: {{NUMBEROF|FILES|br}}+{{NUMBEROF|FILES|cy}}+{{NUMBEROF|FILES|ga}}+{{NUMBEROF|FILES|gd}}+{{NUMBEROF|FILES|gv}}+{{NUMBEROF|FILES|kw}} }}
| NUMBEROFPAGES | PAGES = {{#expr: {{NUMBEROF|PAGES|br}}+{{NUMBEROF|PAGES|cy}}+{{NUMBEROF|PAGES|ga}}+{{NUMBEROF|PAGES|gd}}+{{NUMBEROF|PAGES|gv}}+{{NUMBEROF|PAGES|kw}} }}
| NUMBEROFUSERS | USERS = {{#expr: {{NUMBEROF|USERS|br}}+{{NUMBEROF|USERS|cy}}+{{NUMBEROF|USERS|ga}}+{{NUMBEROF|USERS|gd}}+{{NUMBEROF|USERS|gv}}+{{NUMBEROF|USERS|kw}} }}
| NUMBEROFACTIVEUSERS | ACTIVEUSERS = {{#expr: {{NUMBEROF|ACTIVEUSERS|br}}+{{NUMBEROF|ACTIVEUSERS|cy}}+{{NUMBEROF|ACTIVEUSERS|ga}}+{{NUMBEROF|ACTIVEUSERS|gd}}+{{NUMBEROF|ACTIVEUSERS|gv}}+{{NUMBEROF|ACTIVEUSERS|kw}} }}
| NUMBEROFADMINS | ADMINS = {{#expr: {{NUMBEROF|ADMINS|br}}+{{NUMBEROF|ADMINS|cy}}+{{NUMBEROF|ADMINS|ga}}+{{NUMBEROF|ADMINS|gd}}+{{NUMBEROF|ADMINS|gv}}+{{NUMBEROF|ADMINS|kw}} }}
| NUMBEROFEDITS | EDITS = {{#expr: {{NUMBEROF|EDITS|br}}+{{NUMBEROF|EDITS|cy}}+{{NUMBEROF|EDITS|ga}}+{{NUMBEROF|EDITS|gd}}+{{NUMBEROF|EDITS|gv}}+{{NUMBEROF|EDITS|kw}} }}
| 0 }}
| tbq = {{#switch:{{{2}}}
| NUMBEROFARTICLES | ARTICLES = {{#expr: {{NUMBEROF|ARTICLES|new}}+{{NUMBEROF|ARTICLES|my}}+{{NUMBEROF|ARTICLES|bo}}+{{NUMBEROF|ARTICLES|dz}}+{{NUMBEROF|ARTICLES|ii}} }}
| NUMBEROFFILES | FILES = {{#expr: {{NUMBEROF|FILES|new}}+{{NUMBEROF|FILES|my}}+{{NUMBEROF|FILES|bo}}+{{NUMBEROF|FILES|dz}}+{{NUMBEROF|FILES|ii}} }}
| NUMBEROFPAGES | PAGES = {{#expr: {{NUMBEROF|PAGES|new}}+{{NUMBEROF|PAGES|my}}+{{NUMBEROF|PAGES|bo}}+{{NUMBEROF|PAGES|dz}}+{{NUMBEROF|PAGES|ii}} }}
| NUMBEROFUSERS | USERS = {{#expr: {{NUMBEROF|USERS|new}}+{{NUMBEROF|USERS|my}}+{{NUMBEROF|USERS|bo}}+{{NUMBEROF|USERS|dz}}+{{NUMBEROF|USERS|ii}} }}
| NUMBEROFACTIVEUSERS | ACTIVEUSERS = {{#expr: {{NUMBEROF|ACTIVEUSERS|new}}+{{NUMBEROF|ACTIVEUSERS|my}}+{{NUMBEROF|ACTIVEUSERS|bo}}+{{NUMBEROF|ACTIVEUSERS|dz}}+{{NUMBEROF|ACTIVEUSERS|ii}} }}
| NUMBEROFADMINS | ADMINS = {{#expr: {{NUMBEROF|ADMINS|new}}+{{NUMBEROF|ADMINS|my}}+{{NUMBEROF|ADMINS|bo}}+{{NUMBEROF|ADMINS|dz}}+{{NUMBEROF|ADMINS|ii}} }}
| NUMBEROFEDITS | EDITS = {{#expr: {{NUMBEROF|EDITS|new}}+{{NUMBEROF|EDITS|my}}+{{NUMBEROF|EDITS|bo}}+{{NUMBEROF|EDITS|dz}}+{{NUMBEROF|EDITS|ii}} }}
| 0 }}
| tai = {{#switch:{{{2}}}
| NUMBEROFARTICLES | ARTICLES = {{#expr: {{NUMBEROF|ARTICLES|th}}+{{NUMBEROF|ARTICLES|lo}}+{{NUMBEROF|ARTICLES|za}} }}
| NUMBEROFFILES | FILES = {{#expr: {{NUMBEROF|FILES|th}}+{{NUMBEROF|FILES|lo}}+{{NUMBEROF|FILES|za}} }}
| NUMBEROFPAGES | PAGES = {{#expr: {{NUMBEROF|PAGES|th}}+{{NUMBEROF|PAGES|lo}}+{{NUMBEROF|PAGES|za}} }}
| NUMBEROFUSERS | USERS = {{#expr: {{NUMBEROF|USERS|th}}+{{NUMBEROF|USERS|lo}}+{{NUMBEROF|USERS|za}} }}
| NUMBEROFACTIVEUSERS | ACTIVEUSERS = {{#expr: {{NUMBEROF|ACTIVEUSERS|th}}+{{NUMBEROF|ACTIVEUSERS|lo}}+{{NUMBEROF|ACTIVEUSERS|za}} }}
| NUMBEROFADMINS | ADMINS = {{#expr: {{NUMBEROF|ADMINS|th}}+{{NUMBEROF|ADMINS|lo}}+{{NUMBEROF|ADMINS|za}} }}
| NUMBEROFEDITS | EDITS = {{#expr: {{NUMBEROF|EDITS|th}}+{{NUMBEROF|EDITS|lo}}+{{NUMBEROF|EDITS|za}} }}
| 0 }}
| grk = {{#switch:{{{2}}}
| NUMBEROFARTICLES | ARTICLES = {{#expr: {{NUMBEROF|ARTICLES|el}}+{{NUMBEROF|ARTICLES|pnt}} }}
| NUMBEROFFILES | FILES = {{#expr: {{NUMBEROF|FILES|el}}+{{NUMBEROF|FILES|pnt}} }}
| NUMBEROFPAGES | PAGES = {{#expr: {{NUMBEROF|PAGES|el}}+{{NUMBEROF|PAGES|pnt}} }}
| NUMBEROFUSERS | USERS = {{#expr: {{NUMBEROF|USERS|el}}+{{NUMBEROF|USERS|pnt}} }}
| NUMBEROFACTIVEUSERS | ACTIVEUSERS = {{#expr: {{NUMBEROF|ACTIVEUSERS|el}}+{{NUMBEROF|ACTIVEUSERS|pnt}} }}
| NUMBEROFADMINS | ADMINS = {{#expr: {{NUMBEROF|ADMINS|el}}+{{NUMBEROF|ADMINS|pnt}} }}
| NUMBEROFEDITS | EDITS = {{#expr: {{NUMBEROF|EDITS|el}}+{{NUMBEROF|EDITS|pnt}} }}
| 0 }}
| cpf = {{#switch:{{{2}}}
| NUMBEROFARTICLES | ARTICLES = {{#expr: {{NUMBEROF|ARTICLES|ht}}+{{NUMBEROF|ARTICLES|cbk-zam}}+{{NUMBEROF|ARTICLES|pap}} }}
| NUMBEROFFILES | FILES = {{#expr: {{NUMBEROF|FILES|ht}}+{{NUMBEROF|FILES|cbk-zam}}+{{NUMBEROF|FILES|pap}} }}
| NUMBEROFPAGES | PAGES = {{#expr: {{NUMBEROF|PAGES|ht}}+{{NUMBEROF|PAGES|cbk-zam}}+{{NUMBEROF|PAGES|pap}} }}
| NUMBEROFUSERS | USERS = {{#expr: {{NUMBEROF|USERS|ht}}+{{NUMBEROF|USERS|cbk-zam}}+{{NUMBEROF|USERS|pap}} }}
| NUMBEROFACTIVEUSERS | ACTIVEUSERS = {{#expr: {{NUMBEROF|ACTIVEUSERS|ht}}+{{NUMBEROF|ACTIVEUSERS|cbk-zam}}+{{NUMBEROF|ACTIVEUSERS|pap}} }}
| NUMBEROFADMINS | ADMINS = {{#expr: {{NUMBEROF|ADMINS|ht}}+{{NUMBEROF|ADMINS|cbk-zam}}+{{NUMBEROF|ADMINS|pap}} }}
| NUMBEROFEDITS | EDITS = {{#expr: {{NUMBEROF|EDITS|ht}}+{{NUMBEROF|EDITS|cbk-zam}}+{{NUMBEROF|EDITS|pap}} }}
| 0 }}
| ccs = {{#switch:{{{2}}}
| NUMBEROFARTICLES | ARTICLES = {{#expr: {{NUMBEROF|ARTICLES|ka}}+{{NUMBEROF|ARTICLES|xmf}} }}
| NUMBEROFFILES | FILES = {{#expr: {{NUMBEROF|FILES|ka}}+{{NUMBEROF|FILES|xmf}} }}
| NUMBEROFPAGES | PAGES = {{#expr: {{NUMBEROF|PAGES|ka}}+{{NUMBEROF|PAGES|xmf}} }}
| NUMBEROFUSERS | USERS = {{#expr: {{NUMBEROF|USERS|ka}}+{{NUMBEROF|USERS|xmf}} }}
| NUMBEROFACTIVEUSERS | ACTIVEUSERS = {{#expr: {{NUMBEROF|ACTIVEUSERS|ka}}+{{NUMBEROF|ACTIVEUSERS|xmf}} }}
| NUMBEROFADMINS | ADMINS = {{#expr: {{NUMBEROF|ADMINS|ka}}+{{NUMBEROF|ADMINS|xmf}} }}
| NUMBEROFEDITS | EDITS = {{#expr: {{NUMBEROF|EDITS|ka}}+{{NUMBEROF|EDITS|xmf}} }}
| 0 }}
| sqj = {{#switch:{{{2}}}
| NUMBEROFARTICLES | ARTICLES = {{NUMBEROF|ARTICLES|sq}}
| NUMBEROFFILES | FILES = {{NUMBEROF|FILES|sq}}
| NUMBEROFPAGES | PAGES = {{NUMBEROF|PAGES|sq}}
| NUMBEROFUSERS | USERS = {{NUMBEROF|USERS|sq}}
| NUMBEROFACTIVEUSERS | ACTIVEUSERS = {{NUMBEROF|ACTIVEUSERS|sq}}
| NUMBEROFADMINS | ADMINS = {{NUMBEROF|ADMINS|sq}}
| NUMBEROFEDITS | EDITS = {{NUMBEROF|EDITS|sq}}
| 0 }}
| bnt = {{#switch:{{{2}}}
| NUMBEROFARTICLES | ARTICLES = {{#expr: {{NUMBEROF|ARTICLES|sw}}+{{NUMBEROF|ARTICLES|rw}}+{{NUMBEROF|ARTICLES|ln}}+{{NUMBEROF|ARTICLES|kg}}+{{NUMBEROF|ARTICLES|ss}}+{{NUMBEROF|ARTICLES|zu}}+{{NUMBEROF|ARTICLES|ve}}+{{NUMBEROF|ARTICLES|ts}}+{{NUMBEROF|ARTICLES|rn}}+{{NUMBEROF|ARTICLES|tum}}+{{NUMBEROF|ARTICLES|lg}}+{{NUMBEROF|ARTICLES|ny}}+{{NUMBEROF|ARTICLES|st}}+{{NUMBEROF|ARTICLES|xh}}+{{NUMBEROF|ARTICLES|tn}}+{{NUMBEROF|ARTICLES|ki}}+{{NUMBEROF|ARTICLES|sn}}+{{NUMBEROF|ARTICLES|ng}}+{{NUMBEROF|ARTICLES|kj}}+{{NUMBEROF|ARTICLES|hz}}+{{NUMBEROF|ARTICLES|nso}} }}
| NUMBEROFFILES | FILES = {{#expr: {{NUMBEROF|FILES|sw}}+{{NUMBEROF|FILES|rw}}+{{NUMBEROF|FILES|ln}}+{{NUMBEROF|FILES|kg}}+{{NUMBEROF|FILES|ss}}+{{NUMBEROF|FILES|zu}}+{{NUMBEROF|FILES|ve}}+{{NUMBEROF|FILES|ts}}+{{NUMBEROF|FILES|rn}}+{{NUMBEROF|FILES|tum}}+{{NUMBEROF|FILES|lg}}+{{NUMBEROF|FILES|ny}}+{{NUMBEROF|FILES|st}}+{{NUMBEROF|FILES|xh}}+{{NUMBEROF|FILES|tn}}+{{NUMBEROF|FILES|ki}}+{{NUMBEROF|FILES|sn}}+{{NUMBEROF|FILES|ng}}+{{NUMBEROF|FILES|kj}}+{{NUMBEROF|FILES|hz}}+{{NUMBEROF|FILES|nso}} }}
| NUMBEROFPAGES | PAGES = {{#expr: {{NUMBEROF|PAGES|sw}}+{{NUMBEROF|PAGES|rw}}+{{NUMBEROF|PAGES|ln}}+{{NUMBEROF|PAGES|kg}}+{{NUMBEROF|PAGES|ss}}+{{NUMBEROF|PAGES|zu}}+{{NUMBEROF|PAGES|ve}}+{{NUMBEROF|PAGES|ts}}+{{NUMBEROF|PAGES|rn}}+{{NUMBEROF|PAGES|tum}}+{{NUMBEROF|PAGES|lg}}+{{NUMBEROF|PAGES|ny}}+{{NUMBEROF|PAGES|st}}+{{NUMBEROF|PAGES|xh}}+{{NUMBEROF|PAGES|tn}}+{{NUMBEROF|PAGES|ki}}+{{NUMBEROF|PAGES|sn}}+{{NUMBEROF|PAGES|ng}}+{{NUMBEROF|PAGES|kj}}+{{NUMBEROF|PAGES|hz}}+{{NUMBEROF|PAGES|nso}} }}
| NUMBEROFUSERS | USERS = {{#expr: {{NUMBEROF|USERS|sw}}+{{NUMBEROF|USERS|rw}}+{{NUMBEROF|USERS|ln}}+{{NUMBEROF|USERS|kg}}+{{NUMBEROF|USERS|ss}}+{{NUMBEROF|USERS|zu}}+{{NUMBEROF|USERS|ve}}+{{NUMBEROF|USERS|ts}}+{{NUMBEROF|USERS|rn}}+{{NUMBEROF|USERS|tum}}+{{NUMBEROF|USERS|lg}}+{{NUMBEROF|USERS|ny}}+{{NUMBEROF|USERS|st}}+{{NUMBEROF|USERS|xh}}+{{NUMBEROF|USERS|tn}}+{{NUMBEROF|USERS|ki}}+{{NUMBEROF|USERS|sn}}+{{NUMBEROF|USERS|ng}}+{{NUMBEROF|USERS|kj}}+{{NUMBEROF|USERS|hz}}+{{NUMBEROF|USERS|nso}} }}
| NUMBEROFACTIVEUSERS | ACTIVEUSERS = {{#expr: {{NUMBEROF|ACTIVEUSERS|sw}}+{{NUMBEROF|ACTIVEUSERS|rw}}+{{NUMBEROF|ACTIVEUSERS|ln}}+{{NUMBEROF|ACTIVEUSERS|kg}}+{{NUMBEROF|ACTIVEUSERS|ss}}+{{NUMBEROF|ACTIVEUSERS|zu}}+{{NUMBEROF|ACTIVEUSERS|ve}}+{{NUMBEROF|ACTIVEUSERS|ts}}+{{NUMBEROF|ACTIVEUSERS|rn}}+{{NUMBEROF|ACTIVEUSERS|tum}}+{{NUMBEROF|ACTIVEUSERS|lg}}+{{NUMBEROF|ACTIVEUSERS|ny}}+{{NUMBEROF|ACTIVEUSERS|st}}+{{NUMBEROF|ACTIVEUSERS|xh}}+{{NUMBEROF|ACTIVEUSERS|tn}}+{{NUMBEROF|ACTIVEUSERS|ki}}+{{NUMBEROF|ACTIVEUSERS|sn}}+{{NUMBEROF|ACTIVEUSERS|ng}}+{{NUMBEROF|ACTIVEUSERS|kj}}+{{NUMBEROF|ACTIVEUSERS|hz}}+{{NUMBEROF|ACTIVEUSERS|nso}} }}
| NUMBEROFADMINS | ADMINS = {{#expr: {{NUMBEROF|ADMINS|sw}}+{{NUMBEROF|ADMINS|rw}}+{{NUMBEROF|ADMINS|ln}}+{{NUMBEROF|ADMINS|kg}}+{{NUMBEROF|ADMINS|ss}}+{{NUMBEROF|ADMINS|zu}}+{{NUMBEROF|ADMINS|ve}}+{{NUMBEROF|ADMINS|ts}}+{{NUMBEROF|ADMINS|rn}}+{{NUMBEROF|ADMINS|tum}}+{{NUMBEROF|ADMINS|lg}}+{{NUMBEROF|ADMINS|ny}}+{{NUMBEROF|ADMINS|st}}+{{NUMBEROF|ADMINS|xh}}+{{NUMBEROF|ADMINS|tn}}+{{NUMBEROF|ADMINS|ki}}+{{NUMBEROF|ADMINS|sn}}+{{NUMBEROF|ADMINS|ng}}+{{NUMBEROF|ADMINS|kj}}+{{NUMBEROF|ADMINS|hz}}+{{NUMBEROF|ADMINS|nso}} }}
| NUMBEROFEDITS | EDITS = {{#expr: {{NUMBEROF|EDITS|sw}}+{{NUMBEROF|EDITS|rw}}+{{NUMBEROF|EDITS|ln}}+{{NUMBEROF|EDITS|kg}}+{{NUMBEROF|EDITS|ss}}+{{NUMBEROF|EDITS|zu}}+{{NUMBEROF|EDITS|ve}}+{{NUMBEROF|EDITS|ts}}+{{NUMBEROF|EDITS|rn}}+{{NUMBEROF|EDITS|tum}}+{{NUMBEROF|EDITS|lg}}+{{NUMBEROF|EDITS|ny}}+{{NUMBEROF|EDITS|st}}+{{NUMBEROF|EDITS|xh}}+{{NUMBEROF|EDITS|tn}}+{{NUMBEROF|EDITS|ki}}+{{NUMBEROF|EDITS|sn}}+{{NUMBEROF|EDITS|ng}}+{{NUMBEROF|EDITS|kj}}+{{NUMBEROF|EDITS|hz}}+{{NUMBEROF|EDITS|nso}} }}
| 0 }}
| Bornean = {{#switch:{{{2}}}
| NUMBEROFARTICLES | ARTICLES = {{NUMBEROF|ARTICLES|mg}}
| NUMBEROFFILES | FILES = {{NUMBEROF|FILES|mg}}
| NUMBEROFPAGES | PAGES = {{NUMBEROF|PAGES|mg}}
| NUMBEROFUSERS | USERS = {{NUMBEROF|USERS|mg}}
| NUMBEROFACTIVEUSERS | ACTIVEUSERS = {{NUMBEROF|ACTIVEUSERS|mg}}
| NUMBEROFADMINS | ADMINS = {{NUMBEROF|ADMINS|mg}}
| NUMBEROFEDITS | EDITS = {{NUMBEROF|EDITS|mg}}
| 0 }}
| qwe = {{#switch:{{{2}}}
| NUMBEROFARTICLES | ARTICLES = {{NUMBEROF|ARTICLES|qu}}
| NUMBEROFFILES | FILES = {{NUMBEROF|FILES|qu}}
| NUMBEROFPAGES | PAGES = {{NUMBEROF|PAGES|qu}}
| NUMBEROFUSERS | USERS = {{NUMBEROF|USERS|qu}}
| NUMBEROFACTIVEUSERS | ACTIVEUSERS = {{NUMBEROF|ACTIVEUSERS|qu}}
| NUMBEROFADMINS | ADMINS = {{NUMBEROF|ADMINS|qu}}
| NUMBEROFEDITS | EDITS = {{NUMBEROF|EDITS|qu}}
| 0 }}
| hyx = {{#switch:{{{2}}}
| NUMBEROFARTICLES | ARTICLES = {{NUMBEROF|ARTICLES|hy}}
| NUMBEROFFILES | FILES = {{NUMBEROF|FILES|hy}}
| NUMBEROFPAGES | PAGES = {{NUMBEROF|PAGES|hy}}
| NUMBEROFUSERS | USERS = {{NUMBEROF|USERS|hy}}
| NUMBEROFACTIVEUSERS | ACTIVEUSERS = {{NUMBEROF|ACTIVEUSERS|hy}}
| NUMBEROFADMINS | ADMINS = {{NUMBEROF|ADMINS|hy}}
| NUMBEROFEDITS | EDITS = {{NUMBEROF|EDITS|hy}}
| 0 }}
| Yoruboid = {{#switch:{{{2}}}
| NUMBEROFARTICLES | ARTICLES = {{NUMBEROF|ARTICLES|yo}}
| NUMBEROFFILES | FILES = {{NUMBEROF|FILES|yo}}
| NUMBEROFPAGES | PAGES = {{NUMBEROF|PAGES|yo}}
| NUMBEROFUSERS | USERS = {{NUMBEROF|USERS|yo}}
| NUMBEROFACTIVEUSERS | ACTIVEUSERS = {{NUMBEROF|ACTIVEUSERS|yo}}
| NUMBEROFADMINS | ADMINS = {{NUMBEROF|ADMINS|yo}}
| NUMBEROFEDITS | EDITS = {{NUMBEROF|EDITS|yo}}
| 0 }}
| Polynesian = {{#switch:{{{2}}}
| NUMBEROFARTICLES | ARTICLES = {{#expr: {{NUMBEROF|ARTICLES|mi}}+{{NUMBEROF|ARTICLES|haw}}+{{NUMBEROF|ARTICLES|to}}+{{NUMBEROF|ARTICLES|ty}}+{{NUMBEROF|ARTICLES|sm}} }}
| NUMBEROFFILES | FILES = {{#expr: {{NUMBEROF|FILES|mi}}+{{NUMBEROF|FILES|haw}}+{{NUMBEROF|FILES|to}}+{{NUMBEROF|FILES|ty}}+{{NUMBEROF|FILES|sm}} }}
| NUMBEROFPAGES | PAGES = {{#expr: {{NUMBEROF|PAGES|mi}}+{{NUMBEROF|PAGES|haw}}+{{NUMBEROF|PAGES|to}}+{{NUMBEROF|PAGES|ty}}+{{NUMBEROF|PAGES|sm}} }}
| NUMBEROFUSERS | USERS = {{#expr: {{NUMBEROF|USERS|mi}}+{{NUMBEROF|USERS|haw}}+{{NUMBEROF|USERS|to}}+{{NUMBEROF|USERS|ty}}+{{NUMBEROF|USERS|sm}} }}
| NUMBEROFACTIVEUSERS | ACTIVEUSERS = {{#expr: {{NUMBEROF|ACTIVEUSERS|mi}}+{{NUMBEROF|ACTIVEUSERS|haw}}+{{NUMBEROF|ACTIVEUSERS|to}}+{{NUMBEROF|ACTIVEUSERS|ty}}+{{NUMBEROF|ACTIVEUSERS|sm}} }}
| NUMBEROFADMINS | ADMINS = {{#expr: {{NUMBEROF|ADMINS|mi}}+{{NUMBEROF|ADMINS|haw}}+{{NUMBEROF|ADMINS|to}}+{{NUMBEROF|ADMINS|ty}}+{{NUMBEROF|ADMINS|sm}} }}
| NUMBEROFEDITS | EDITS = {{#expr: {{NUMBEROF|EDITS|mi}}+{{NUMBEROF|EDITS|haw}}+{{NUMBEROF|EDITS|to}}+{{NUMBEROF|EDITS|ty}}+{{NUMBEROF|EDITS|sm}} }}
| 0 }}
| xgn = {{#switch:{{{2}}}
| NUMBEROFARTICLES | ARTICLES = {{#expr: {{NUMBEROF|ARTICLES|mn}}+{{NUMBEROF|ARTICLES|xal}}+{{NUMBEROF|ARTICLES|bxr}} }}
| NUMBEROFFILES | FILES = {{#expr: {{NUMBEROF|FILES|mn}}+{{NUMBEROF|FILES|xal}}+{{NUMBEROF|FILES|bxr}} }}
| NUMBEROFPAGES | PAGES = {{#expr: {{NUMBEROF|PAGES|mn}}+{{NUMBEROF|PAGES|xal}}+{{NUMBEROF|PAGES|bxr}} }}
| NUMBEROFUSERS | USERS = {{#expr: {{NUMBEROF|USERS|mn}}+{{NUMBEROF|USERS|xal}}+{{NUMBEROF|USERS|bxr}} }}
| NUMBEROFACTIVEUSERS | ACTIVEUSERS = {{#expr: {{NUMBEROF|ACTIVEUSERS|mn}}+{{NUMBEROF|ACTIVEUSERS|xal}}+{{NUMBEROF|ACTIVEUSERS|bxr}} }}
| NUMBEROFADMINS | ADMINS = {{#expr: {{NUMBEROF|ADMINS|mn}}+{{NUMBEROF|ADMINS|xal}}+{{NUMBEROF|ADMINS|bxr}} }}
| NUMBEROFEDITS | EDITS = {{#expr: {{NUMBEROF|EDITS|mn}}+{{NUMBEROF|EDITS|xal}}+{{NUMBEROF|EDITS|bxr}} }}
| 0 }}
| azc = {{#switch:{{{2}}}
| NUMBEROFARTICLES | ARTICLES = {{NUMBEROF|ARTICLES|nah}}
| NUMBEROFFILES | FILES = {{NUMBEROF|FILES|nah}}
| NUMBEROFPAGES | PAGES = {{NUMBEROF|PAGES|nah}}
| NUMBEROFUSERS | USERS = {{NUMBEROF|USERS|nah}}
| NUMBEROFACTIVEUSERS | ACTIVEUSERS = {{NUMBEROF|ACTIVEUSERS|nah}}
| NUMBEROFADMINS | ADMINS = {{NUMBEROF|ADMINS|nah}}
| NUMBEROFEDITS | EDITS = {{NUMBEROF|EDITS|nah}}
| 0 }}
| cpe = {{#switch:{{{2}}}
| NUMBEROFARTICLES | ARTICLES = {{#expr: {{NUMBEROF|ARTICLES|tpi}}+{{NUMBEROF|ARTICLES|srn}}+{{NUMBEROF|ARTICLES|bi}}+{{NUMBEROF|ARTICLES|pih}}+{{NUMBEROF|ARTICLES|jam}} }}
| NUMBEROFFILES | FILES = {{#expr: {{NUMBEROF|FILES|tpi}}+{{NUMBEROF|FILES|srn}}+{{NUMBEROF|FILES|bi}}+{{NUMBEROF|FILES|pih}}+{{NUMBEROF|FILES|jam}} }}
| NUMBEROFPAGES | PAGES = {{#expr: {{NUMBEROF|PAGES|tpi}}+{{NUMBEROF|PAGES|srn}}+{{NUMBEROF|PAGES|bi}}+{{NUMBEROF|PAGES|pih}}+{{NUMBEROF|PAGES|jam}} }}
| NUMBEROFUSERS | USERS = {{#expr: {{NUMBEROF|USERS|tpi}}+{{NUMBEROF|USERS|srn}}+{{NUMBEROF|USERS|bi}}+{{NUMBEROF|USERS|pih}}+{{NUMBEROF|USERS|jam}} }}
| NUMBEROFACTIVEUSERS | ACTIVEUSERS = {{#expr: {{NUMBEROF|ACTIVEUSERS|tpi}}+{{NUMBEROF|ACTIVEUSERS|srn}}+{{NUMBEROF|ACTIVEUSERS|bi}}+{{NUMBEROF|ACTIVEUSERS|pih}}+{{NUMBEROF|ACTIVEUSERS|jam}} }}
| NUMBEROFADMINS | ADMINS = {{#expr: {{NUMBEROF|ADMINS|tpi}}+{{NUMBEROF|ADMINS|srn}}+{{NUMBEROF|ADMINS|bi}}+{{NUMBEROF|ADMINS|pih}}+{{NUMBEROF|ADMINS|jam}} }}
| NUMBEROFEDITS | EDITS = {{#expr: {{NUMBEROF|EDITS|tpi}}+{{NUMBEROF|EDITS|srn}}+{{NUMBEROF|EDITS|bi}}+{{NUMBEROF|EDITS|pih}}+{{NUMBEROF|EDITS|jam}} }}
| 0 }}
| ccn-e = {{#switch:{{{2}}}
| NUMBEROFARTICLES | ARTICLES = {{#expr: {{NUMBEROF|ARTICLES|ce}}+{{NUMBEROF|ARTICLES|lbe}}+{{NUMBEROF|ARTICLES|av}}+{{NUMBEROF|ARTICLES|lez}} }}
| NUMBEROFFILES | FILES = {{#expr: {{NUMBEROF|FILES|ce}}+{{NUMBEROF|FILES|lbe}}+{{NUMBEROF|FILES|av}}+{{NUMBEROF|FILES|lez}} }}
| NUMBEROFPAGES | PAGES = {{#expr: {{NUMBEROF|PAGES|ce}}+{{NUMBEROF|PAGES|lbe}}+{{NUMBEROF|PAGES|av}}+{{NUMBEROF|PAGES|lez}} }}
| NUMBEROFUSERS | USERS = {{#expr: {{NUMBEROF|USERS|ce}}+{{NUMBEROF|USERS|lbe}}+{{NUMBEROF|USERS|av}}+{{NUMBEROF|USERS|lez}} }}
| NUMBEROFACTIVEUSERS | ACTIVEUSERS = {{#expr: {{NUMBEROF|ACTIVEUSERS|ce}}+{{NUMBEROF|ACTIVEUSERS|lbe}}+{{NUMBEROF|ACTIVEUSERS|av}}+{{NUMBEROF|ACTIVEUSERS|lez}} }}
| NUMBEROFADMINS | ADMINS = {{#expr: {{NUMBEROF|ADMINS |ce}}+{{NUMBEROF|ADMINS |lbe}}+{{NUMBEROF|ADMINS |av}}+{{NUMBEROF|ADMINS |lez}} }}
| NUMBEROFEDITS | EDITS = {{#expr: {{NUMBEROF|EDITS|ce}}+{{NUMBEROF|EDITS|lbe}}+{{NUMBEROF|EDITS|av}}+{{NUMBEROF|EDITS|lez}} }}
| 0 }}
| cus = {{#switch:{{{2}}}
| NUMBEROFARTICLES | ARTICLES = {{#expr: {{NUMBEROF|ARTICLES|so}}+{{NUMBEROF|ARTICLES|om}}+{{NUMBEROF|ARTICLES|aa}} }}
| NUMBEROFFILES | FILES = {{#expr: {{NUMBEROF|FILES|so}}+{{NUMBEROF|FILES|om}}+{{NUMBEROF|FILES|aa}} }}
| NUMBEROFPAGES | PAGES = {{#expr: {{NUMBEROF|PAGES|so}}+{{NUMBEROF|PAGES|om}}+{{NUMBEROF|PAGES|aa}} }}
| NUMBEROFUSERS | USERS = {{#expr: {{NUMBEROF|USERS|so}}+{{NUMBEROF|USERS|om}}+{{NUMBEROF|USERS|aa}} }}
| NUMBEROFACTIVEUSERS | ACTIVEUSERS = {{#expr: {{NUMBEROF|ACTIVEUSERS|so}}+{{NUMBEROF|ACTIVEUSERS|om}}+{{NUMBEROF|ACTIVEUSERS|aa}} }}
| NUMBEROFADMINS | ADMINS = {{#expr: {{NUMBEROF|ADMINS|so}}+{{NUMBEROF|ADMINS|om}}+{{NUMBEROF|ADMINS|aa}} }}
| NUMBEROFEDITS | EDITS = {{#expr: {{NUMBEROF|EDITS|so}}+{{NUMBEROF|EDITS|om}}+{{NUMBEROF|EDITS|aa}} }}
| 0 }}
| ath = {{#switch:{{{2}}}
| NUMBEROFARTICLES | ARTICLES = {{NUMBEROF|ARTICLES|nv}}
| NUMBEROFFILES | FILES = {{NUMBEROF|FILES|nv}}
| NUMBEROFPAGES | PAGES = {{NUMBEROF|PAGES|nv}}
| NUMBEROFUSERS | USERS = {{NUMBEROF|USERS|nv}}
| NUMBEROFACTIVEUSERS | ACTIVEUSERS = {{NUMBEROF|ACTIVEUSERS|nv}}
| NUMBEROFADMINS | ADMINS = {{NUMBEROF|ADMINS|nv}}
| NUMBEROFEDITS | EDITS = {{NUMBEROF|EDITS|nv}}
| 0 }}
| esx = {{#switch:{{{2}}}
| NUMBEROFARTICLES | ARTICLES = {{#expr: {{NUMBEROF|ARTICLES|kl}}+{{NUMBEROF|ARTICLES|ik}}+{{NUMBEROF|ARTICLES|iu}} }}
| NUMBEROFFILES | FILES = {{#expr: {{NUMBEROF|FILES|kl}}+{{NUMBEROF|FILES|ik}}+{{NUMBEROF|FILES|iu}} }}
| NUMBEROFPAGES | PAGES = {{#expr: {{NUMBEROF|PAGES|kl}}+{{NUMBEROF|PAGES|ik}}+{{NUMBEROF|PAGES|iu}} }}
| NUMBEROFUSERS | USERS = {{#expr: {{NUMBEROF|USERS|kl}}+{{NUMBEROF|USERS|ik}}+{{NUMBEROF|USERS|iu}} }}
| NUMBEROFACTIVEUSERS | ACTIVEUSERS = {{#expr: {{NUMBEROF|ACTIVEUSERS|kl}}+{{NUMBEROF|ACTIVEUSERS|ik}}+{{NUMBEROF|ACTIVEUSERS|iu}} }}
| NUMBEROFADMINS | ADMINS = {{#expr: {{NUMBEROF|ADMINS|kl}}+{{NUMBEROF|ADMINS|ik}}+{{NUMBEROF|ADMINS|iu}} }}
| NUMBEROFEDITS | EDITS = {{#expr: {{NUMBEROF|EDITS|kl}}+{{NUMBEROF|EDITS|ik}}+{{NUMBEROF|EDITS|iu}} }}
| 0 }}
| tup = {{#switch:{{{2}}}
| NUMBEROFARTICLES | ARTICLES = {{NUMBEROF|ARTICLES|gn}}
| NUMBEROFFILES | FILES = {{NUMBEROF|FILES|gn}}
| NUMBEROFPAGES | PAGES = {{NUMBEROF|PAGES|gn}}
| NUMBEROFUSERS | USERS = {{NUMBEROF|USERS|gn}}
| NUMBEROFACTIVEUSERS | ACTIVEUSERS = {{NUMBEROF|ACTIVEUSERS|gn}}
| NUMBEROFADMINS | ADMINS = {{NUMBEROF|ADMINS|gn}}
| NUMBEROFEDITS | EDITS = {{NUMBEROF|EDITS|gn}}
| 0 }}
| alv = {{#switch:{{{2}}}
| NUMBEROFARTICLES | ARTICLES = {{#expr: {{NUMBEROF|ARTICLES|wo}}+{{NUMBEROF|ARTICLES|ff}} }}
| NUMBEROFFILES | FILES = {{#expr: {{NUMBEROF|FILES|wo}}+{{NUMBEROF|FILES|ff}} }}
| NUMBEROFPAGES | PAGES = {{#expr: {{NUMBEROF|PAGES|wo}}+{{NUMBEROF|PAGES|ff}} }}
| NUMBEROFUSERS | USERS = {{#expr: {{NUMBEROF|USERS|wo}}+{{NUMBEROF|USERS|ff}} }}
| NUMBEROFACTIVEUSERS | ACTIVEUSERS = {{#expr: {{NUMBEROF|ACTIVEUSERS|wo}}+{{NUMBEROF|ACTIVEUSERS|ff}} }}
| NUMBEROFADMINS | ADMINS = {{#expr: {{NUMBEROF|ADMINS|wo}}+{{NUMBEROF|ADMINS|ff}} }}
| NUMBEROFEDITS | EDITS = {{#expr: {{NUMBEROF|EDITS|wo}}+{{NUMBEROF|EDITS|ff}} }}
| 0 }}
| Aymaran = {{#switch:{{{2}}}
| NUMBEROFARTICLES | ARTICLES = {{NUMBEROF|ARTICLES|ay}}
| NUMBEROFFILES | FILES = {{NUMBEROF|FILES|ay}}
| NUMBEROFPAGES | PAGES = {{NUMBEROF|PAGES|ay}}
| NUMBEROFUSERS | USERS = {{NUMBEROF|USERS|ay}}
| NUMBEROFACTIVEUSERS | ACTIVEUSERS = {{NUMBEROF|ACTIVEUSERS|ay}}
| NUMBEROFADMINS | ADMINS = {{NUMBEROF|ADMINS|ay}}
| NUMBEROFEDITS | EDITS = {{NUMBEROF|EDITS|ay}}
| 0 }}
| ccn-w = {{#switch:{{{2}}}
| NUMBEROFARTICLES | ARTICLES = {{#expr: {{NUMBEROF|ARTICLES|ab}}+{{NUMBEROF|ARTICLES|kbd}}+{{NUMBEROF|ARTICLES|ady}} }}
| NUMBEROFFILES | FILES = {{#expr: {{NUMBEROF|FILES|ab}}+{{NUMBEROF|FILES|kbd}}+{{NUMBEROF|FILES|ady}} }}
| NUMBEROFPAGES | PAGES = {{#expr: {{NUMBEROF|PAGES|ab}}+{{NUMBEROF|PAGES|kbd}}+{{NUMBEROF|PAGES|ady}} }}
| NUMBEROFUSERS | USERS = {{#expr: {{NUMBEROF|USERS|ab}}+{{NUMBEROF|USERS|kbd}}+{{NUMBEROF|USERS|ady}} }}
| NUMBEROFACTIVEUSERS | ACTIVEUSERS = {{#expr: {{NUMBEROF|ACTIVEUSERS|ab}}+{{NUMBEROF|ACTIVEUSERS|kbd}}+{{NUMBEROF|ACTIVEUSERS|ady}} }}
| NUMBEROFADMINS | ADMINS = {{#expr: {{NUMBEROF|ADMINS|ab}}+{{NUMBEROF|ADMINS|kbd}}+{{NUMBEROF|ADMINS|ady}} }}
| NUMBEROFEDITS | EDITS = {{#expr: {{NUMBEROF|EDITS|ab}}+{{NUMBEROF|EDITS|kbd}}+{{NUMBEROF|EDITS|ady}} }}
| 0 }}
| ber = {{#switch:{{{2}}}
| NUMBEROFARTICLES | ARTICLES = {{NUMBEROF|ARTICLES|kab}}
| NUMBEROFFILES | FILES = {{NUMBEROF|FILES|kab}}
| NUMBEROFPAGES | PAGES = {{NUMBEROF|PAGES|kab}}
| NUMBEROFUSERS | USERS = {{NUMBEROF|USERS|kab}}
| NUMBEROFACTIVEUSERS | ACTIVEUSERS = {{NUMBEROF|ACTIVEUSERS|kab}}
| NUMBEROFADMINS | ADMINS = {{NUMBEROF|ADMINS|kab}}
| NUMBEROFEDITS | EDITS = {{NUMBEROF|EDITS|kab}}
| 0 }}
| Igboid = {{#switch:{{{2}}}
| NUMBEROFARTICLES | ARTICLES = {{NUMBEROF|ARTICLES|ig}}
| NUMBEROFFILES | FILES = {{NUMBEROF|FILES|ig}}
| NUMBEROFPAGES | PAGES = {{NUMBEROF|PAGES|ig}}
| NUMBEROFUSERS | USERS = {{NUMBEROF|USERS|ig}}
| NUMBEROFACTIVEUSERS | ACTIVEUSERS = {{NUMBEROF|ACTIVEUSERS|ig}}
| NUMBEROFADMINS | ADMINS = {{NUMBEROF|ADMINS|ig}}
| NUMBEROFEDITS | EDITS = {{NUMBEROF|EDITS|ig}}
| 0 }}
| Timor-Babar = {{#switch:{{{2}}}
| NUMBEROFARTICLES | ARTICLES = {{NUMBEROF|ARTICLES|tet}}
| NUMBEROFFILES | FILES = {{NUMBEROF|FILES|tet}}
| NUMBEROFPAGES | PAGES = {{NUMBEROF|PAGES|tet}}
| NUMBEROFUSERS | USERS = {{NUMBEROF|USERS|tet}}
| NUMBEROFACTIVEUSERS | ACTIVEUSERS = {{NUMBEROF|ACTIVEUSERS|tet}}
| NUMBEROFADMINS | ADMINS = {{NUMBEROF|ADMINS|tet}}
| NUMBEROFEDITS | EDITS = {{NUMBEROF|EDITS|tet}}
| 0 }}
| Micronesian = {{#switch:{{{2}}}
| NUMBEROFARTICLES | ARTICLES = {{#expr: {{NUMBEROF|ARTICLES|na}}+{{NUMBEROF|ARTICLES|mh}} }}
| NUMBEROFFILES | FILES = {{#expr: {{NUMBEROF|FILES|na}}+{{NUMBEROF|FILES|mh}} }}
| NUMBEROFPAGES | PAGES = {{#expr: {{NUMBEROF|PAGES|na}}+{{NUMBEROF|PAGES|mh}} }}
| NUMBEROFUSERS | USERS = {{#expr: {{NUMBEROF|USERS|na}}+{{NUMBEROF|USERS|mh}} }}
| NUMBEROFACTIVEUSERS | ACTIVEUSERS = {{#expr: {{NUMBEROF|ACTIVEUSERS|na}}+{{NUMBEROF|ACTIVEUSERS|mh}} }}
| NUMBEROFADMINS | ADMINS = {{#expr: {{NUMBEROF|ADMINS|na}}+{{NUMBEROF|ADMINS|mh}} }}
| NUMBEROFEDITS | EDITS = {{#expr: {{NUMBEROF|EDITS|na}}+{{NUMBEROF|EDITS|mh}} }}
| 0 }}
| Kwa = {{#switch:{{{2}}}
| NUMBEROFARTICLES | ARTICLES = {{#expr: {{NUMBEROF|ARTICLES|ee}}+{{NUMBEROF|ARTICLES|ak}}+{{NUMBEROF|ARTICLES|tw}} }}
| NUMBEROFFILES | FILES = {{#expr: {{NUMBEROF|FILES|ee}}+{{NUMBEROF|FILES|ak}}+{{NUMBEROF|FILES|tw}} }}
| NUMBEROFPAGES | PAGES = {{#expr: {{NUMBEROF|PAGES|ee}}+{{NUMBEROF|PAGES|ak}}+{{NUMBEROF|PAGES|tw}} }}
| NUMBEROFUSERS | USERS = {{#expr: {{NUMBEROF|USERS|ee}}+{{NUMBEROF|USERS|ak}}+{{NUMBEROF|USERS|tw}} }}
| NUMBEROFACTIVEUSERS | ACTIVEUSERS = {{#expr: {{NUMBEROF|ACTIVEUSERS|ee}}+{{NUMBEROF|ACTIVEUSERS|ak}}+{{NUMBEROF|ACTIVEUSERS|tw}} }}
| NUMBEROFADMINS | ADMINS = {{#expr: {{NUMBEROF|ADMINS|ee}}+{{NUMBEROF|ADMINS|ak}}+{{NUMBEROF|ADMINS|tw}} }}
| NUMBEROFEDITS | EDITS = {{#expr: {{NUMBEROF|EDITS|ee}}+{{NUMBEROF|EDITS|ak}}+{{NUMBEROF|EDITS|tw}} }}
| 0 }}
| dmn = {{#switch:{{{2}}}
| NUMBEROFARTICLES | ARTICLES = {{NUMBEROF|ARTICLES|bm}}
| NUMBEROFFILES | FILES = {{NUMBEROF|FILES|bm}}
| NUMBEROFPAGES | PAGES = {{NUMBEROF|PAGES|bm}}
| NUMBEROFUSERS | USERS = {{NUMBEROF|USERS|bm}}
| NUMBEROFACTIVEUSERS | ACTIVEUSERS = {{NUMBEROF|ACTIVEUSERS|bm}}
| NUMBEROFADMINS | ADMINS = {{NUMBEROF|ADMINS|bm}}
| NUMBEROFEDITS | EDITS = {{NUMBEROF|EDITS|bm}}
| 0 }}
| iro = {{#switch:{{{2}}}
| NUMBEROFARTICLES | ARTICLES = {{NUMBEROF|ARTICLES|chr}}
| NUMBEROFFILES | FILES = {{NUMBEROF|FILES|chr}}
| NUMBEROFPAGES | PAGES = {{NUMBEROF|PAGES|chr}}
| NUMBEROFUSERS | USERS = {{NUMBEROF|USERS|chr}}
| NUMBEROFACTIVEUSERS | ACTIVEUSERS = {{NUMBEROF|ACTIVEUSERS|chr}}
| NUMBEROFADMINS | ADMINS = {{NUMBEROF|ADMINS|chr}}
| NUMBEROFEDITS | EDITS = {{NUMBEROF|EDITS|chr}}
| 0 }}
| cdc = {{#switch:{{{2}}}
| NUMBEROFARTICLES | ARTICLES = {{NUMBEROF|ARTICLES|ha}}
| NUMBEROFFILES | FILES = {{NUMBEROF|FILES|ha}}
| NUMBEROFPAGES | PAGES = {{NUMBEROF|PAGES|ha}}
| NUMBEROFUSERS | USERS = {{NUMBEROF|USERS|ha}}
| NUMBEROFACTIVEUSERS | ACTIVEUSERS = {{NUMBEROF|ACTIVEUSERS|ha}}
| NUMBEROFADMINS | ADMINS = {{NUMBEROF|ADMINS|ha}}
| NUMBEROFEDITS | EDITS = {{NUMBEROF|EDITS|ha}}
| 0 }}
| alg = {{#switch:{{{2}}}
| NUMBEROFARTICLES | ARTICLES = {{#expr: {{NUMBEROF|ARTICLES|cr}}+{{NUMBEROF|ARTICLES|chy}}+{{NUMBEROF|ARTICLES|atj}} }}
| NUMBEROFFILES | FILES = {{#expr: {{NUMBEROF|FILES|cr}}+{{NUMBEROF|FILES|chy}}+{{NUMBEROF|FILES|chy}} }}
| NUMBEROFPAGES | PAGES = {{#expr: {{NUMBEROF|PAGES|cr}}+{{NUMBEROF|PAGES|chy}}+{{NUMBEROF|PAGES|chy}} }}
| NUMBEROFUSERS | USERS = {{#expr: {{NUMBEROF|USERS|cr}}+{{NUMBEROF|USERS|chy}}+{{NUMBEROF|USERS|chy}} }}
| NUMBEROFACTIVEUSERS | ACTIVEUSERS = {{#expr: {{NUMBEROF|ACTIVEUSERS|cr}}+{{NUMBEROF|ACTIVEUSERS|chy}}+{{NUMBEROF|ACTIVEUSERS|chy}} }}
| NUMBEROFADMINS | ADMINS = {{#expr: {{NUMBEROF|ADMINS|cr}}+{{NUMBEROF|ADMINS|chy}}+{{NUMBEROF|ADMINS|chy}} }}
| NUMBEROFEDITS | EDITS = {{#expr: {{NUMBEROF|EDITS|cr}}+{{NUMBEROF|EDITS|chy}}+{{NUMBEROF|EDITS|chy}} }}
| 0 }}
| Ubangian = {{#switch:{{{2}}}
| NUMBEROFARTICLES | ARTICLES = {{NUMBEROF|ARTICLES|sg}}
| NUMBEROFFILES | FILES = {{NUMBEROF|FILES|sg}}
| NUMBEROFPAGES | PAGES = {{NUMBEROF|PAGES|sg}}
| NUMBEROFUSERS | USERS = {{NUMBEROF|USERS|sg}}
| NUMBEROFACTIVEUSERS | ACTIVEUSERS = {{NUMBEROF|ACTIVEUSERS|sg}}
| NUMBEROFADMINS | ADMINS = {{NUMBEROF|ADMINS|sg}}
| NUMBEROFEDITS | EDITS = {{NUMBEROF|EDITS|sg}}
| 0 }}
| East Fijian = {{#switch:{{{2}}}
| NUMBEROFARTICLES | ARTICLES = {{NUMBEROF|ARTICLES|fj}}
| NUMBEROFFILES | FILES = {{NUMBEROF|FILES|fj}}
| NUMBEROFPAGES | PAGES = {{NUMBEROF|PAGES|fj}}
| NUMBEROFUSERS | USERS = {{NUMBEROF|USERS|fj}}
| NUMBEROFACTIVEUSERS | ACTIVEUSERS = {{NUMBEROF|ACTIVEUSERS|fj}}
| NUMBEROFADMINS | ADMINS = {{NUMBEROF|ADMINS|fj}}
| NUMBEROFEDITS | EDITS = {{NUMBEROF|EDITS|fj}}
| 0 }}
| Muskogean = {{#switch:{{{2}}}
| NUMBEROFARTICLES | ARTICLES = {{#expr: {{NUMBEROF|ARTICLES|cho}}+{{NUMBEROF|ARTICLES|mus}} }}
| NUMBEROFFILES | FILES = {{#expr: {{NUMBEROF|FILES|cho}}+{{NUMBEROF|FILES|mus}} }}
| NUMBEROFPAGES | PAGES = {{#expr: {{NUMBEROF|PAGES|cho}}+{{NUMBEROF|PAGES|mus}} }}
| NUMBEROFUSERS | USERS = {{#expr: {{NUMBEROF|USERS|cho}}+{{NUMBEROF|USERS|mus}} }}
| NUMBEROFACTIVEUSERS | ACTIVEUSERS = {{#expr: {{NUMBEROF|ACTIVEUSERS|cho}}+{{NUMBEROF|ACTIVEUSERS|mus}} }}
| NUMBEROFADMINS | ADMINS = {{#expr: {{NUMBEROF|ADMINS|cho}}+{{NUMBEROF|ADMINS|mus}} }}
| NUMBEROFEDITS | EDITS = {{#expr: {{NUMBEROF|EDITS|cho}}+{{NUMBEROF|EDITS|mus}} }}
| 0 }}
| Papuan Tip = {{#switch:{{{2}}}
| NUMBEROFARTICLES | ARTICLES = {{NUMBEROF|ARTICLES|ho}}
| NUMBEROFFILES | FILES = {{NUMBEROF|FILES|ho}}
| NUMBEROFPAGES | PAGES = {{NUMBEROF|PAGES|ho}}
| NUMBEROFUSERS | USERS = {{NUMBEROF|USERS|ho}}
| NUMBEROFACTIVEUSERS | ACTIVEUSERS = {{NUMBEROF|ACTIVEUSERS|ho}}
| NUMBEROFADMINS | ADMINS = {{NUMBEROF|ADMINS|ho}}
| NUMBEROFEDITS | EDITS = {{NUMBEROF|EDITS|ho}}
| 0 }}
| ssa = {{#switch:{{{2}}}
| NUMBEROFARTICLES | ARTICLES = {{NUMBEROF|ARTICLES|kr}}
| NUMBEROFFILES | FILES = {{NUMBEROF|FILES|kr}}
| NUMBEROFPAGES | PAGES = {{NUMBEROF|PAGES|kr}}
| NUMBEROFUSERS | USERS = {{NUMBEROF|USERS|kr}}
| NUMBEROFACTIVEUSERS | ACTIVEUSERS = {{NUMBEROF|ACTIVEUSERS|kr}}
| NUMBEROFADMINS | ADMINS = {{NUMBEROF|ADMINS|kr}}
| NUMBEROFEDITS | EDITS = {{NUMBEROF|EDITS|kr}}
| 0 }}
| 0 }}</onlyinclude>
5rghvp25xiblg9u5u5bporihsru5oll
Ta̱mpi̱let:NUMBEROF/data
10
1514
14923
2022-07-15T22:57:37Z
Kambai Akau
15
Created page with "{{softredirect|c:Data:Wikipedia statistics/data.tab}}"
wikitext
text/x-wiki
{{softredirect|c:Data:Wikipedia statistics/data.tab}}
rheptuf7xqjybjjwfhhby1u1n7xhlll
Ta̱mpi̱let:Softredirect
10
1515
14924
2022-07-15T22:59:51Z
Kambai Akau
15
Created page with "{{Short description|Editing guideline for soft redirects}} {{pp-semi-indef|small=yes}} {{for|the template on Wikipedia|Template:Soft redirect}} {{subcat guideline|editing guideline|Soft redirect|WP:SRD|WP:SOFTREDIR}} A '''[[Help:Redirect#Soft redirects|soft redirect]]''' is a replacement of [[Wikipedia:redirect|usual or "hard" redirect]] and is used where the destination is a [[Wikipedia:Wikimedia sister projects|Wikimedia sister project]] (see {{section link|Wikipedia:..."
wikitext
text/x-wiki
{{Short description|Editing guideline for soft redirects}}
{{pp-semi-indef|small=yes}}
{{for|the template on Wikipedia|Template:Soft redirect}}
{{subcat guideline|editing guideline|Soft redirect|WP:SRD|WP:SOFTREDIR}}
A '''[[Help:Redirect#Soft redirects|soft redirect]]''' is a replacement of [[Wikipedia:redirect|usual or "hard" redirect]] and is used where the destination is a [[Wikipedia:Wikimedia sister projects|Wikimedia sister project]] (see {{section link|Wikipedia:Wikimedia sister projects|Soft redirects from Wikipedia to a sister project}}), [[Help:Interlanguage links|another language Wikimedia site]], or in rare cases another website (e.g. [[meatball:]] targets). They may also be used for local targets in some cases (e.g. [[WP:AN/K]]). Soft redirects differ in that they leave the reader on the redirect page, requiring them to click through to the redirected link as opposed to automatically taking them there.
Unlike normal redirects, a soft redirect does not use special code or functionality of the wiki software. All they consist of is a notification to users, showing the destination to another site to obtain the information they were seeking.
The technique is particularly likely to be used when redirecting users across [[Wikipedia:Wikimedia sister projects|Wikimedia sister projects]]—for example [[Wikipedia:Gather]] is a soft redirect to [[mw:Gather]]. Normal [[Help:redirect|redirect]]s would be undesirable in these circumstances, and hard [[Wikipedia:Interwiki|interwiki]] redirects are disabled per these reasons that they could not be easily edited without hand-crafting the correct URL, since clicking on a link to the redirect page would take you straight to the redirect's target and there would be no "Redirected from [[foo]]" message to click, so it would be difficult to return to the redirect page itself; there would also be infinite-loop security considerations.
Another situation where soft redirects are used is when the intended target is a special page, and the system automatically "softens" attempted hard redirects to special pages. For example, [[Wikipedia:List of tags]] redirects to [[Special:Tags]].
Soft redirects to non-English language editions of Wikipedia should be avoided because they are generally unhelpful to English-language readers. Instead, editors should link to the alternate language Wikipedia directly with one of various forms of [[H:FOREIGNLINK|interlanguage links]].
Soft redirects are intended mostly for external use, where hard redirects will not function. For internal use in general, hard redirects should be used instead.
8nrudgpiaqc4460ihxhv0an5bvn42pu
Ta̱mpi̱let:NUMBEROF
10
1516
14925
2022-07-15T23:03:32Z
Kambai Akau
15
Created page with "<includeonly>{{#invoke:NUMBEROF|main}}</includeonly><noinclude> {{documentation}} </noinclude>"
wikitext
text/x-wiki
<includeonly>{{#invoke:NUMBEROF|main}}</includeonly><noinclude>
{{documentation}}
</noinclude>
dtpts96tbrhwtvmca60vr3vs42hfcv2
Ta̱mpi̱let:NUMBEROF/doc
10
1517
14926
2022-07-15T23:05:15Z
Kambai Akau
15
Created page with "{{Documentation subpage}} {{used in system|in [[MediaWiki:Statistics-files-desc]] --> [[Special:Statistics]]}} {{lua|Module:NUMBEROF}} <!-- PLEASE ADD CATEGORIES WHERE INDICATED AT THE BOTTOM OF THIS PAGE --> '''NUMBEROF''' shows statistics for a language.project (eg. en.wikipedia, cs.wikiquote, commons, etc.). Statistics update every 6 hours, except for your local wiki (enwiki) which are real-time. {{Col begin}} {{Col break}} Projects tracked include: * *.wikipedia *..."
wikitext
text/x-wiki
{{Documentation subpage}}
{{used in system|in [[MediaWiki:Statistics-files-desc]] --> [[Special:Statistics]]}}
{{lua|Module:NUMBEROF}}
<!-- PLEASE ADD CATEGORIES WHERE INDICATED AT THE BOTTOM OF THIS PAGE -->
'''NUMBEROF''' shows statistics for a language.project (eg. en.wikipedia, cs.wikiquote, commons, etc.). Statistics update every 6 hours, except for your local wiki (enwiki) which are real-time.
{{Col begin}}
{{Col break}}
Projects tracked include:
* *.wikipedia
* *.wikisource
* *.wikibooks
* *.wikiquote
* *.wikivoyage
* *.wikinews
* *.wikiversity
* *.wiktionary
* wikidata
* meta
* commons
* foundation
* wikimania
* wikitech
{{Col break}}
Statistics are available for:
* Total Articles (main-space pages)
* Total Pages (articles + redirects + talk etc)
* Total Users (ever registered)
* Total Active Users (recently active)
* Total Edits
* Total Files (images)
* Total Admins
* Total for any of the above across all Wikipedia languages
{{Col end}}
na52rt0ueir7r9fif7vvnxg58eyz4x6
Ta̱mpi̱let:NUMBEROFGROUP
10
1518
14927
2022-07-15T23:06:54Z
Kambai Akau
15
Created page with "{{#ifeq:{{{3|}}}|N |{{formatnum:{{NUMBEROFGROUP/data|{{{2}}}|{{{1}}}}}}} |{{NUMBEROFGROUP/data|{{{2}}}|{{{1}}}}} }}<noinclude>{{documentation}}</noinclude>"
wikitext
text/x-wiki
{{#ifeq:{{{3|}}}|N
|{{formatnum:{{NUMBEROFGROUP/data|{{{2}}}|{{{1}}}}}}}
|{{NUMBEROFGROUP/data|{{{2}}}|{{{1}}}}}
}}<noinclude>{{documentation}}</noinclude>
psplyzhgdeeu8xadtp8ya6wirqcc0pn
Ta̱mpi̱let:NUMBEROFGROUP/doc
10
1519
14928
2022-07-15T23:07:31Z
Kambai Akau
15
Created page with "{{Documentation subpage}} Template used to show the variables NUMBEROFARTICLES, NUMBEROFPAGES, NUMBEROFEDITS, NUMBEROFUSERS, NUMBEROFACTIVEUSERS, NUMBEROFADMINS and NUMBEROFFILES in Wikipedias."
wikitext
text/x-wiki
{{Documentation subpage}}
Template used to show the variables NUMBEROFARTICLES, NUMBEROFPAGES, NUMBEROFEDITS, NUMBEROFUSERS, NUMBEROFACTIVEUSERS, NUMBEROFADMINS and NUMBEROFFILES in Wikipedias.
mm3jare6j9hwlxyn0jdiplnmws27bov
Ta̱mpi̱let:Plainlink
10
1520
14929
2022-07-15T23:14:33Z
Kambai Akau
15
Created page with "<span class="plainlinks">{{SAFESUBST:<noinclude />#if:{{{2|{{{NAME|{{{name|}}}}}}}}} |[{{{1|{{{URL|{{{url}}}}}}}}} {{{2|{{{NAME|{{{name|}}}}}}}}}] |[{{{1|{{{URL|{{{url}}}}}}}}}] }}</span><noinclude> {{documentation}} </noinclude>"
wikitext
text/x-wiki
<span class="plainlinks">{{SAFESUBST:<noinclude />#if:{{{2|{{{NAME|{{{name|}}}}}}}}}
|[{{{1|{{{URL|{{{url}}}}}}}}} {{{2|{{{NAME|{{{name|}}}}}}}}}]
|[{{{1|{{{URL|{{{url}}}}}}}}}]
}}</span><noinclude>
{{documentation}}
</noinclude>
4ksm928qcz1wzong5bwawgcsgfzt0v4
Sa:Ba̱ng cuk a̱kwak a̱son Wukipedia
14
1521
14935
2022-07-15T23:32:42Z
Kambai Akau
15
Created blank page
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Ta̱mpi̱let:RfA Navigation
10
1522
14937
14936
2022-07-15T23:35:54Z
Kambai Akau
15
wikitext
text/x-wiki
{{Navbox
|name = RfA Navigation
|title = Advice, requests for adminship (RfA), bureaucratship (RfB), and past request archives {{Small|([[Template:RfX searchbox|search]])}}
|bodyclass = plainlinks
|listclass = hlist
|titlestyle = {{{tstyle|background:#cce;}}}
|groupstyle = {{{gbstyle|background:#cce;}}}
|belowstyle = {{{gbstyle|background:#cce;}}}
|image = {{#if:{{{1|}}}|{{shortcut|{{{1}}}|{{{2|}}}|{{{3|}}}}}}}
|state= {{{state|uncollapsed}}}
| group1 = [[Wikipedia:Administrators|Administrators]]
| list1 =
* [[Wikipedia:Requests for adminship|Requests for adminship]]
** [{{fullurl:Wikipedia:Requests for adminship|action=edit}} edit]
** [{{fullurl:Wikipedia:Requests for adminship|action=watch}} watch]
* [[Wikipedia talk:Requests for adminship|RfA talk]]
** [{{fullurl:Wikipedia talk:Requests for adminship|action=edit§ion=new}} new post]
** [[Wikipedia talk:Requests for adminship/Archives|Archives]]
* [[Wikipedia:Requests for adminship/Nominate|RfA nominations]]
** [[Wikipedia:Request an RfA nomination|Request a nom]]
* [[Wikipedia:Requests for adminship/Optional RfA candidate poll|Optional RfA candidate poll]]
* [[Wikipedia:Advice for RfA candidates|Advice for RfA candidates]]
** [[Wikipedia:Guide to requests for adminship|Guide]]
** [[Wikipedia:Miniguide to requests for adminship|Miniguide]]
* [[Wikipedia:Should you ask a question at RfA?|Advice for asking questions at RfA]]
* [[Wikipedia:Advice for RfA voters|Advice for voters]]
** [[Wikipedia:Arguments to avoid in adminship discussions|Arguments to avoid]]
| group2 = RfA analysis
| list2 =
* [[Wikipedia:Requests for adminship by year|Requests for adminship by year]]
* Successful RfAs
** [[Wikipedia:RFA by month|By month]]
** [[:Category:Successful requests for adminship|Alphabetical]]
** [[Wikipedia:Successful requests for adminship|Chronological]]
* Unsuccessful RfAs
** [[Wikipedia:Unsuccessful adminship candidacies|Alphabetical]]
** [[Wikipedia:Unsuccessful adminship candidacies (Chronological)|Chronological]]
| group3 = [[Wikipedia:Bureaucrats|Bureaucrats]]
| list3 =
* [[Wikipedia:Bureaucrats' noticeboard|Noticeboard]]
* Successful RfBs
** [[:Category:Successful requests for bureaucratship|Alphabetical]]
** [[Wikipedia:Successful bureaucratship candidacies|Chronological]]
* Unsuccessful RfBs
** [[Wikipedia:Unsuccessful bureaucratship candidacies|Alphabetical]]
** [[Wikipedia:Unsuccessful bureaucratship candidacies/Chronological|Chronological]]
* [[Wikipedia:Bureaucrat discussion|Bureaucrat discussion]]
* [[Wikipedia:Bureaucrat activity/report|Bureaucrat activity]]
| group4 = Useful pages
| list4 =
* [[Wikipedia:RFA reform|RFA reform]]
* [[User:Cyberpower678/RfX Report|RfX Report]]
* [[Wikipedia:Inactive administrators|Inactive administrators]]
* [[Wikipedia:Former administrators|Former administrators]]
* [[Wikipedia:Desysoppings by month|Desysoppings by month]]
* Logs
** [[Special:Log/rights|User rights log]]
** [[Wikipedia:Bureaucrat log|Old log]]
** [[meta:Special:Log/rights|Meta log]]
** [[meta:Meta:Bureaucrat log|Meta old log]]
|belowclass = hlist
|below =
* Current admin count: <b>{{NUMBEROFADMINS}}</b> ([[Special:Listusers/sysop|list all]])
* Current bureaucrat count: <b>{{NUMBERINGROUP:bureaucrat}}</b> ([[Special:Listusers/bureaucrat|list all]])
}}<noinclude>
[[Category:Nta̱mpi̱let a̱ka̱ghwop-a̱lyoot Wukipedia]]
[[Category:Nta̱mpi̱let kwak a̱son Wukipedia]]
</noinclude>
kw6bhgge0fvsbm0ardmbmh2a9ppkzg8
Sa:Nta̱mpi̱let a̱ka̱ghwop-a̱lyoot Wukipedia
14
1523
14938
2022-07-15T23:36:03Z
Kambai Akau
15
Created blank page
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Nta̱mpi̱let kwak a̱son Wukipedia
14
1524
14939
2022-07-15T23:36:22Z
Kambai Akau
15
Created blank page
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Ta̱mpi̱let:Navbox
10
1525
14941
14940
2022-07-15T23:38:09Z
Kambai Akau
15
wikitext
text/x-wiki
<includeonly>{{#invoke:Navbox|navbox}}</includeonly><noinclude>
{{Documentation}}
</noinclude>
tqodcaa2vvhehqaod229udlla0wimek
Ta̱mpi̱let:Navbox/doc
10
1526
14942
2022-07-15T23:38:38Z
Kambai Akau
15
Created page with "{{for|vertically-aligned navigation|Template:Sidebar}} {{documentation subpage}} {{high-use|all-pages=y}} {{Template display|nomobile}} {{Lua|Module:Navbox}} {{Navbox suite}} {{Lua sidebar}} This template allows a [[Wikipedia:Navigation template|navigational template]] to be set up relatively quickly by supplying it with one or more lists of links. It comes equipped with default styles that should work for most navigational templates. Changing the default styles is pos..."
wikitext
text/x-wiki
{{for|vertically-aligned navigation|Template:Sidebar}}
{{documentation subpage}}
{{high-use|all-pages=y}}
{{Template display|nomobile}}
{{Lua|Module:Navbox}}
{{Navbox suite}}
{{Lua sidebar}}
This template allows a [[Wikipedia:Navigation template|navigational template]] to be set up relatively quickly by supplying it with one or more lists of links. It comes equipped with default styles that should work for most navigational templates. Changing the default styles is possible, but not recommended. Using this template, or one of its "Navbox suite" sister templates, is highly recommended for standardization of navigational templates, and for ease of use.
{{Navbox visibility}}
kg8zfzou6uvcvlhlptkf7ighc3vzk3t
Module:Navbox
828
1527
14943
2022-07-15T23:41:33Z
Kambai Akau
15
Created page with "local p = {} local navbar = require('Module:Navbar')._navbar local cfg = mw.loadData('Module:Navbox/configuration') local getArgs -- lazily initialized local args local format = string.format local function striped(wikitext, border) -- Return wikitext with markers replaced for odd/even striping. -- Child (subgroup) navboxes are flagged with a category that is removed -- by parent navboxes. The result is that the category shows all pages -- where a child navbox is no..."
Scribunto
text/plain
local p = {}
local navbar = require('Module:Navbar')._navbar
local cfg = mw.loadData('Module:Navbox/configuration')
local getArgs -- lazily initialized
local args
local format = string.format
local function striped(wikitext, border)
-- Return wikitext with markers replaced for odd/even striping.
-- Child (subgroup) navboxes are flagged with a category that is removed
-- by parent navboxes. The result is that the category shows all pages
-- where a child navbox is not contained in a parent navbox.
local orphanCat = cfg.category.orphan
if border == cfg.keyword.border_subgroup and args[cfg.arg.orphan] ~= cfg.keyword.orphan_yes then
-- No change; striping occurs in outermost navbox.
return wikitext .. orphanCat
end
local first, second = cfg.class.navbox_odd_part, cfg.class.navbox_even_part
if args[cfg.arg.evenodd] then
if args[cfg.arg.evenodd] == cfg.keyword.evenodd_swap then
first, second = second, first
else
first = args[cfg.arg.evenodd]
second = first
end
end
local changer
if first == second then
changer = first
else
local index = 0
changer = function (code)
if code == '0' then
-- Current occurrence is for a group before a nested table.
-- Set it to first as a valid although pointless class.
-- The next occurrence will be the first row after a title
-- in a subgroup and will also be first.
index = 0
return first
end
index = index + 1
return index % 2 == 1 and first or second
end
end
local regex = orphanCat:gsub('([%[%]])', '%%%1')
return (wikitext:gsub(regex, ''):gsub(cfg.marker.regex, changer)) -- () omits gsub count
end
local function processItem(item, nowrapitems)
if item:sub(1, 2) == '{|' then
-- Applying nowrap to lines in a table does not make sense.
-- Add newlines to compensate for trim of x in |parm=x in a template.
return '\n' .. item ..'\n'
end
if nowrapitems == cfg.keyword.nowrapitems_yes then
local lines = {}
for line in (item .. '\n'):gmatch('([^\n]*)\n') do
local prefix, content = line:match('^([*:;#]+)%s*(.*)')
if prefix and not content:match(cfg.pattern.nowrap) then
line = format(cfg.nowrap_item, prefix, content)
end
table.insert(lines, line)
end
item = table.concat(lines, '\n')
end
if item:match('^[*:;#]') then
return '\n' .. item ..'\n'
end
return item
end
-- we will want this later when we want to add tstyles for hlist/plainlist
local function has_navbar()
return args[cfg.arg.navbar] ~= cfg.keyword.navbar_off
and args[cfg.arg.navbar] ~= cfg.keyword.navbar_plain
and (
args[cfg.arg.name]
or mw.getCurrentFrame():getParent():getTitle():gsub(cfg.pattern.sandbox, '')
~= cfg.pattern.navbox
)
end
local function renderNavBar(titleCell)
if has_navbar() then
titleCell:wikitext(navbar{
[cfg.navbar.name] = args[cfg.arg.name],
[cfg.navbar.mini] = 1,
[cfg.navbar.fontstyle] = (args[cfg.arg.basestyle] or '') .. ';' ..
(args[cfg.arg.titlestyle] or '') ..
';background:none transparent;border:none;box-shadow:none;padding:0;'
})
end
end
local function renderTitleRow(tbl)
if not args[cfg.arg.title] then return end
local titleRow = tbl:tag('tr')
local titleCell = titleRow:tag('th'):attr('scope', 'col')
local titleColspan = 2
if args[cfg.arg.imageleft] then titleColspan = titleColspan + 1 end
if args[cfg.arg.image] then titleColspan = titleColspan + 1 end
titleCell
:cssText(args[cfg.arg.basestyle])
:cssText(args[cfg.arg.titlestyle])
:addClass(cfg.class.navbox_title)
:attr('colspan', titleColspan)
renderNavBar(titleCell)
titleCell
:tag('div')
-- id for aria-labelledby attribute
:attr('id', mw.uri.anchorEncode(args[cfg.arg.title]))
:addClass(args[cfg.arg.titleclass])
:css('font-size', '114%')
:css('margin', '0 4em')
:wikitext(processItem(args[cfg.arg.title]))
end
local function getAboveBelowColspan()
local ret = 2
if args[cfg.arg.imageleft] then ret = ret + 1 end
if args[cfg.arg.image] then ret = ret + 1 end
return ret
end
local function renderAboveRow(tbl)
if not args[cfg.arg.above] then return end
tbl:tag('tr')
:tag('td')
:addClass(cfg.class.navbox_abovebelow)
:addClass(args[cfg.arg.aboveclass])
:cssText(args[cfg.arg.basestyle])
:cssText(args[cfg.arg.abovestyle])
:attr('colspan', getAboveBelowColspan())
:tag('div')
-- id for aria-labelledby attribute, if no title
:attr('id', args[cfg.arg.title] and nil or mw.uri.anchorEncode(args[cfg.arg.above]))
:wikitext(processItem(args[cfg.arg.above], args[cfg.arg.nowrapitems]))
end
local function renderBelowRow(tbl)
if not args[cfg.arg.below] then return end
tbl:tag('tr')
:tag('td')
:addClass(cfg.class.navbox_abovebelow)
:addClass(args[cfg.arg.belowclass])
:cssText(args[cfg.arg.basestyle])
:cssText(args[cfg.arg.belowstyle])
:attr('colspan', getAboveBelowColspan())
:tag('div')
:wikitext(processItem(args[cfg.arg.below], args[cfg.arg.nowrapitems]))
end
local function renderListRow(tbl, index, listnum, listnums_size)
local row = tbl:tag('tr')
if index == 1 and args[cfg.arg.imageleft] then
row
:tag('td')
:addClass(cfg.class.noviewer)
:addClass(cfg.class.navbox_image)
:addClass(args[cfg.arg.imageclass])
:css('width', '1px') -- Minimize width
:css('padding', '0 2px 0 0')
:cssText(args[cfg.arg.imageleftstyle])
:attr('rowspan', listnums_size)
:tag('div')
:wikitext(processItem(args[cfg.arg.imageleft]))
end
local group_and_num = format(cfg.arg.group_and_num, listnum)
local groupstyle_and_num = format(cfg.arg.groupstyle_and_num, listnum)
if args[group_and_num] then
local groupCell = row:tag('th')
-- id for aria-labelledby attribute, if lone group with no title or above
if listnum == 1 and not (args[cfg.arg.title] or args[cfg.arg.above] or args[cfg.arg.group2]) then
groupCell
:attr('id', mw.uri.anchorEncode(args[cfg.arg.group1]))
end
groupCell
:attr('scope', 'row')
:addClass(cfg.class.navbox_group)
:addClass(args[cfg.arg.groupclass])
:cssText(args[cfg.arg.basestyle])
-- If groupwidth not specified, minimize width
:css('width', args[cfg.arg.groupwidth] or '1%')
groupCell
:cssText(args[cfg.arg.groupstyle])
:cssText(args[groupstyle_and_num])
:wikitext(args[group_and_num])
end
local listCell = row:tag('td')
if args[group_and_num] then
listCell
:addClass(cfg.class.navbox_list_with_group)
else
listCell:attr('colspan', 2)
end
if not args[cfg.arg.groupwidth] then
listCell:css('width', '100%')
end
local rowstyle -- usually nil so cssText(rowstyle) usually adds nothing
if index % 2 == 1 then
rowstyle = args[cfg.arg.oddstyle]
else
rowstyle = args[cfg.arg.evenstyle]
end
local list_and_num = format(cfg.arg.list_and_num, listnum)
local listText = args[list_and_num]
local oddEven = cfg.marker.oddeven
if listText:sub(1, 12) == '</div><table' then
-- Assume list text is for a subgroup navbox so no automatic striping for this row.
oddEven = listText:find(cfg.pattern.navbox_title) and cfg.marker.restart or cfg.class.navbox_odd_part
end
local liststyle_and_num = format(cfg.arg.liststyle_and_num, listnum)
local listclass_and_num = format(cfg.arg.listclass_and_num, listnum)
listCell
:css('padding', '0')
:cssText(args[cfg.arg.liststyle])
:cssText(rowstyle)
:cssText(args[liststyle_and_num])
:addClass(cfg.class.navbox_list)
:addClass(cfg.class.navbox_part .. oddEven)
:addClass(args[cfg.arg.listclass])
:addClass(args[listclass_and_num])
:tag('div')
:css('padding',
(index == 1 and args[cfg.arg.list1padding]) or args[cfg.arg.listpadding] or '0 0.25em'
)
:wikitext(processItem(listText, args[cfg.arg.nowrapitems]))
if index == 1 and args[cfg.arg.image] then
row
:tag('td')
:addClass(cfg.class.noviewer)
:addClass(cfg.class.navbox_image)
:addClass(args[cfg.arg.imageclass])
:css('width', '1px') -- Minimize width
:css('padding', '0 0 0 2px')
:cssText(args[cfg.arg.imagestyle])
:attr('rowspan', listnums_size)
:tag('div')
:wikitext(processItem(args[cfg.arg.image]))
end
end
-- uses this now to make the needHlistCategory correct
-- to use later for when we add list styles via navbox
local function has_list_class(htmlclass)
local class_args = { -- rough order of probability of use
cfg.arg.bodyclass, cfg.arg.listclass, cfg.arg.aboveclass,
cfg.arg.belowclass, cfg.arg.titleclass, cfg.arg.navboxclass,
cfg.arg.groupclass, cfg.arg.imageclass
}
local patterns = {
'^' .. htmlclass .. '$',
'%s' .. htmlclass .. '$',
'^' .. htmlclass .. '%s',
'%s' .. htmlclass .. '%s'
}
for _, arg in ipairs(class_args) do
for _, pattern in ipairs(patterns) do
if mw.ustring.find(args[arg] or '', pattern) then
return true
end
end
end
return false
end
local function needsHorizontalLists(border)
if border == cfg.keyword.border_subgroup or args[cfg.arg.tracking] == cfg.keyword.tracking_no then
return false
end
return not has_list_class(cfg.pattern.hlist) and not has_list_class(cfg.pattern.plainlist)
end
local function hasBackgroundColors()
for _, key in ipairs({cfg.arg.titlestyle, cfg.arg.groupstyle,
cfg.arg.basestyle, cfg.arg.abovestyle, cfg.arg.belowstyle}) do
if tostring(args[key]):find('background', 1, true) then
return true
end
end
return false
end
local function hasBorders()
for _, key in ipairs({cfg.arg.groupstyle, cfg.arg.basestyle,
cfg.arg.abovestyle, cfg.arg.belowstyle}) do
if tostring(args[key]):find('border', 1, true) then
return true
end
end
return false
end
local function isIllegible()
local styleratio = require('Module:Color contrast')._styleratio
for key, style in pairs(args) do
if tostring(key):match(cfg.pattern.style) then
if styleratio{mw.text.unstripNoWiki(style)} < 4.5 then
return true
end
end
end
return false
end
local function getTrackingCategories(border)
local cats = {}
if needsHorizontalLists(border) then table.insert(cats, cfg.category.horizontal_lists) end
if hasBackgroundColors() then table.insert(cats, cfg.category.background_colors) end
if isIllegible() then table.insert(cats, cfg.category.illegible) end
if hasBorders() then table.insert(cats, cfg.category.borders) end
return cats
end
local function renderTrackingCategories(builder, border)
local title = mw.title.getCurrentTitle()
if title.namespace ~= 10 then return end -- not in template space
local subpage = title.subpageText
if subpage == cfg.keyword.subpage_doc or subpage == cfg.keyword.subpage_sandbox
or subpage == cfg.keyword.subpage_testcases then return end
for _, cat in ipairs(getTrackingCategories(border)) do
builder:wikitext('[[Category:' .. cat .. ']]')
end
end
local function renderMainTable(border, listnums)
local tbl = mw.html.create('table')
:addClass(cfg.class.nowraplinks)
:addClass(args[cfg.arg.bodyclass])
local state = args[cfg.arg.state]
if args[cfg.arg.title] and state ~= cfg.keyword.state_plain and state ~= cfg.keyword.state_off then
if state == cfg.keyword.state_collapsed then
state = cfg.class.collapsed
end
tbl
:addClass(cfg.class.collapsible)
:addClass(state or cfg.class.autocollapse)
end
tbl:css('border-spacing', 0)
if border == cfg.keyword.border_subgroup or border == cfg.keyword.border_none then
tbl
:addClass(cfg.class.navbox_subgroup)
:cssText(args[cfg.arg.bodystyle])
:cssText(args[cfg.arg.style])
else -- regular navbox - bodystyle and style will be applied to the wrapper table
tbl
:addClass(cfg.class.navbox_inner)
:css('background', 'transparent')
:css('color', 'inherit')
end
tbl:cssText(args[cfg.arg.innerstyle])
renderTitleRow(tbl)
renderAboveRow(tbl)
local listnums_size = #listnums
for i, listnum in ipairs(listnums) do
renderListRow(tbl, i, listnum, listnums_size)
end
renderBelowRow(tbl)
return tbl
end
local function add_navbox_styles()
local frame = mw.getCurrentFrame()
-- This is a lambda so that it doesn't need the frame as a parameter
local function add_user_styles(templatestyles)
if templatestyles and templatestyles ~= '' then
return frame:extensionTag{
name = 'templatestyles', args = { src = templatestyles }
}
end
return ''
end
-- get templatestyles. load base from config so that Lua only needs to do
-- the work once of parser tag expansion
local base_templatestyles = cfg.templatestyles
local templatestyles = add_user_styles(args[cfg.arg.templatestyles])
local child_templatestyles = add_user_styles(args[cfg.arg.child_templatestyles])
-- The 'navbox-styles' div exists for two reasons:
-- 1. To wrap the styles to work around T200206 more elegantly. Instead
-- of combinatorial rules, this ends up being linear number of CSS rules.
-- 2. To allow MobileFrontend to rip the styles out with 'nomobile' such that
-- they are not dumped into the mobile view.
return mw.html.create('div')
:addClass(cfg.class.navbox_styles)
:addClass(cfg.class.nomobile)
:wikitext(base_templatestyles .. templatestyles .. child_templatestyles)
:done()
end
function p._navbox(navboxArgs)
args = navboxArgs
local listnums = {}
for k, _ in pairs(args) do
if type(k) == 'string' then
local listnum = k:match(cfg.pattern.listnum)
if listnum then table.insert(listnums, tonumber(listnum)) end
end
end
table.sort(listnums)
local border = mw.text.trim(args[cfg.arg.border] or args[1] or '')
if border == cfg.keyword.border_child then
border = cfg.keyword.border_subgroup
end
-- render the main body of the navbox
local tbl = renderMainTable(border, listnums)
local res = mw.html.create()
-- render the appropriate wrapper for the navbox, based on the border param
if border == cfg.keyword.border_none then
res:node(add_navbox_styles())
local nav = res:tag('div')
:attr('role', 'navigation')
:node(tbl)
-- aria-labelledby title, otherwise above, otherwise lone group
if args[cfg.arg.title] or args[cfg.arg.above] or (args[cfg.arg.group1]
and not args[cfg.arg.group2]) then
nav:attr(
'aria-labelledby',
mw.uri.anchorEncode(
args[cfg.arg.title] or args[cfg.arg.above] or args[cfg.arg.group1]
)
)
else
nav:attr('aria-label', cfg.aria_label)
end
elseif border == cfg.keyword.border_subgroup then
-- We assume that this navbox is being rendered in a list cell of a
-- parent navbox, and is therefore inside a div with padding:0em 0.25em.
-- We start with a </div> to avoid the padding being applied, and at the
-- end add a <div> to balance out the parent's </div>
res
:wikitext('</div>')
:node(tbl)
:wikitext('<div>')
else
res:node(add_navbox_styles())
local nav = res:tag('div')
:attr('role', 'navigation')
:addClass(cfg.class.navbox)
:addClass(args[cfg.arg.navboxclass])
:cssText(args[cfg.arg.bodystyle])
:cssText(args[cfg.arg.style])
:css('padding', '3px')
:node(tbl)
-- aria-labelledby title, otherwise above, otherwise lone group
if args[cfg.arg.title] or args[cfg.arg.above]
or (args[cfg.arg.group1] and not args[cfg.arg.group2]) then
nav:attr(
'aria-labelledby',
mw.uri.anchorEncode(args[cfg.arg.title] or args[cfg.arg.above] or args[cfg.arg.group1])
)
else
nav:attr('aria-label', cfg.aria_label)
end
end
if (args[cfg.arg.nocat] or cfg.keyword.nocat_false):lower() == cfg.keyword.nocat_false then
renderTrackingCategories(res, border)
end
return striped(tostring(res), border)
end
function p.navbox(frame)
if not getArgs then
getArgs = require('Module:Arguments').getArgs
end
args = getArgs(frame, {wrappers = {cfg.pattern.navbox}})
-- Read the arguments in the order they'll be output in, to make references
-- number in the right order.
local _
_ = args[cfg.arg.title]
_ = args[cfg.arg.above]
-- Limit this to 20 as covering 'most' cases (that's a SWAG) and because
-- iterator approach won't work here
for i = 1, 20 do
_ = args[format(cfg.arg.group_and_num, i)]
_ = args[format(cfg.arg.list_and_num, i)]
end
_ = args[cfg.arg.below]
return p._navbox(args)
end
return p
aps8opqyleqagctjqmi5zb3x6sq8mux
Module:Navbox/doc
828
1528
14944
2022-07-15T23:42:26Z
Kambai Akau
15
Created page with "{{#ifeq:{{FULLPAGENAME}}|Module:Navbox|{{High-use|3691969}}}} {{module rating|protected}} {{Lua|Module:Navbox/configuration|Module:Navbar|Module:Color contrast|Module:Arguments}} {{Uses TemplateStyles|Module:Navbox/styles.css}} {{Lua sidebar}} This module implements the {{tl|Navbox}} template. Please see the [[Template:Navbox|template page]] for usage instructions. == Tracking/maintenance categories == * {{clc|Navbox orphans}} * {{clc|Navigational boxes without horizon..."
wikitext
text/x-wiki
{{#ifeq:{{FULLPAGENAME}}|Module:Navbox|{{High-use|3691969}}}}
{{module rating|protected}}
{{Lua|Module:Navbox/configuration|Module:Navbar|Module:Color contrast|Module:Arguments}}
{{Uses TemplateStyles|Module:Navbox/styles.css}}
{{Lua sidebar}}
This module implements the {{tl|Navbox}} template. Please see the [[Template:Navbox|template page]] for usage instructions.
== Tracking/maintenance categories ==
* {{clc|Navbox orphans}}
* {{clc|Navigational boxes without horizontal lists}}
* {{clc|Navboxes using background colours}}
* {{clc|Potentially illegible navboxes}}
* {{clc|Navboxes using borders}}
<includeonly>{{sandbox other||
[[Category:Modules that add a tracking category]]
}}</includeonly>
16gon91dnybzmtc84orn6xemjxwy5af
Module:Navbox/configuration
828
1529
14945
2022-07-15T23:43:47Z
Kambai Akau
15
Created page with "return { aria_label = 'Navbox', nowrap_item = '%s<span class="nowrap">%s</span>', templatestyles = mw.getCurrentFrame():extensionTag{ name = 'templatestyles', args = { src = 'Module:Navbox/styles.css' } }, -- do not localize marker table marker = { oddeven = '\127_ODDEVEN_\127', restart = '\127_ODDEVEN0_\127', regex = '\127_ODDEVEN(%d?)_\127' }, category = { orphan = '[[Category:Navbox orphans]]', horizontal_lists = 'Navigational boxes without horizon..."
Scribunto
text/plain
return {
aria_label = 'Navbox',
nowrap_item = '%s<span class="nowrap">%s</span>',
templatestyles = mw.getCurrentFrame():extensionTag{
name = 'templatestyles', args = { src = 'Module:Navbox/styles.css' }
},
-- do not localize marker table
marker = {
oddeven = '\127_ODDEVEN_\127',
restart = '\127_ODDEVEN0_\127',
regex = '\127_ODDEVEN(%d?)_\127'
},
category = {
orphan = '[[Category:Navbox orphans]]',
horizontal_lists = 'Navigational boxes without horizontal lists',
background_colors = 'Navboxes using background colours',
illegible = 'Potentially illegible navboxes',
borders = 'Navboxes using borders',
},
keyword = {
border_subgroup = 'subgroup',
border_child = 'child',
border_none = 'none',
evenodd_swap = 'swap',
navbar_off = 'off',
navbar_plain = 'plain',
nocat_false = 'false',
nowrapitems_yes = 'yes',
orphan_yes = 'yes',
state_collapsed = 'collapsed',
state_off = 'off',
state_plain = 'plain',
subpage_doc = 'doc',
subpage_sandbox = 'sandbox',
subpage_testcases = 'testcases',
tracking_no = 'no'
},
class = {
autocollapse = 'autocollapse',
collapsible = 'mw-collapsible',
collapsed = 'mw-collapsed',
-- Warning
navbox = 'navbox', -- WMF currently hides 'navbox' from mobile,
-- so you probably shouldn't change the navbox class.
navbox_abovebelow = 'navbox-abovebelow',
navbox_group = 'navbox-group',
navbox_image = 'navbox-image',
navbox_inner = 'navbox-inner',
navbox_list = 'navbox-list',
navbox_list_with_group = 'navbox-list-with-group',
navbox_part = 'navbox-', -- do not l10n
navbox_styles = 'navbox-styles',
navbox_subgroup = 'navbox-subgroup',
navbox_title = 'navbox-title', -- l10n only if you change pattern.navbox_title below
navbox_odd_part = 'odd', -- do not l10n
navbox_even_part = 'even', -- do not l10n
nomobile = 'nomobile',
nowraplinks = 'nowraplinks',
noviewer = 'noviewer' -- used to remove images from MediaViewer
},
pattern = {
listnum = '^list(%d+)$',
sandbox = '/sandbox$',
navbox = 'Template:Navbox',
nowrap = '^<span class="nowrap">',
style = 'style$',
navbox_title = '<th[^>]*"navbox%-title"',
hlist = 'hlist',
plainlist = 'plainlist'
},
arg = {
above = 'above',
aboveclass = 'aboveclass',
abovestyle = 'abovestyle',
basestyle = 'basestyle',
bodyclass = 'bodyclass',
bodystyle = 'bodystyle',
border = 'border',
below = 'below',
belowclass = 'belowclass',
belowstyle = 'belowstyle',
evenodd = 'evenodd',
evenstyle = 'evenstyle',
group1 = 'group1',
group2 = 'group2',
group_and_num = 'group%d',
groupstyle_and_num = 'group%dstyle',
groupclass = 'groupclass',
groupstyle = 'groupstyle',
groupwidth = 'groupwidth',
innerstyle = 'innerstyle',
image = 'image',
imageclass = 'imageclass',
imageleft = 'imageleft',
imageleftstyle = 'imageleftstyle',
imagesetyle = 'imagestyle',
list_and_num = 'list%d',
listclass_and_num = 'list%dclass',
liststyle_and_num = 'list%dstyle',
list1padding = 'list1padding',
listclass = 'listclass',
listpadding = 'listpadding',
liststyle = 'liststyle',
name = 'name',
navbar = 'navbar',
navboxclass = 'navboxclass',
nocat = 'nocat',
nowrapitems = 'nowrapitems',
oddstyle = 'oddstyle',
orphan = 'orphan',
state = 'state',
style = 'style',
templatestyles = 'templatestyles',
child_templatestyles = 'child templatestyles',
title = 'title',
titleclass = 'titleclass',
titlestyle = 'titlestyle',
tracking = 'tracking'
},
-- names of navbar arguments
navbar = {
name = 1,
fontstyle = 'fontstyle',
mini = 'mini'
}
}
8npf15277sgmgep5j2bnmes7i7ktuvo
Module:Navbar
828
1530
14946
2022-07-15T23:45:36Z
Kambai Akau
15
Created page with "local p = {} local cfg = mw.loadData('Module:Navbar/configuration') local function get_title_arg(is_collapsible, template) local title_arg = 1 if is_collapsible then title_arg = 2 end if template then title_arg = 'template' end return title_arg end local function choose_links(template, args) -- The show table indicates the default displayed items. -- view, talk, edit, hist, move, watch -- TODO: Move to configuration. local show = {true, true, true, false, false..."
Scribunto
text/plain
local p = {}
local cfg = mw.loadData('Module:Navbar/configuration')
local function get_title_arg(is_collapsible, template)
local title_arg = 1
if is_collapsible then title_arg = 2 end
if template then title_arg = 'template' end
return title_arg
end
local function choose_links(template, args)
-- The show table indicates the default displayed items.
-- view, talk, edit, hist, move, watch
-- TODO: Move to configuration.
local show = {true, true, true, false, false, false}
if template then
show[2] = false
show[3] = false
local index = {t = 2, d = 2, e = 3, h = 4, m = 5, w = 6,
talk = 2, edit = 3, hist = 4, move = 5, watch = 6}
-- TODO: Consider removing TableTools dependency.
for _, v in ipairs(require ('Module:TableTools').compressSparseArray(args)) do
local num = index[v]
if num then show[num] = true end
end
end
local remove_edit_link = args.noedit
if remove_edit_link then show[3] = false end
return show
end
local function add_link(link_description, ul, is_mini, font_style)
local l
if link_description.url then
l = {'[', '', ']'}
else
l = {'[[', '|', ']]'}
end
ul:tag('li')
:addClass('nv-' .. link_description.full)
:wikitext(l[1] .. link_description.link .. l[2])
:tag(is_mini and 'abbr' or 'span')
:attr('title', link_description.html_title)
:cssText(font_style)
:wikitext(is_mini and link_description.mini or link_description.full)
:done()
:wikitext(l[3])
:done()
end
local function make_list(title_text, has_brackets, displayed_links, is_mini, font_style)
local title = mw.title.new(mw.text.trim(title_text), cfg.title_namespace)
if not title then
error(cfg.invalid_title .. title_text)
end
local talkpage = title.talkPageTitle and title.talkPageTitle.fullText or ''
-- TODO: Get link_descriptions and show into the configuration module.
-- link_descriptions should be easier...
local link_descriptions = {
{ ['mini'] = 'v', ['full'] = 'view', ['html_title'] = 'View this template',
['link'] = title.fullText, ['url'] = false },
{ ['mini'] = 't', ['full'] = 'talk', ['html_title'] = 'Discuss this template',
['link'] = talkpage, ['url'] = false },
{ ['mini'] = 'e', ['full'] = 'edit', ['html_title'] = 'Edit this template',
['link'] = title:fullUrl('action=edit'), ['url'] = true },
{ ['mini'] = 'h', ['full'] = 'hist', ['html_title'] = 'History of this template',
['link'] = title:fullUrl('action=history'), ['url'] = true },
{ ['mini'] = 'm', ['full'] = 'move', ['html_title'] = 'Move this template',
['link'] = mw.title.new('Special:Movepage'):fullUrl('target='..title.fullText), ['url'] = true },
{ ['mini'] = 'w', ['full'] = 'watch', ['html_title'] = 'Watch this template',
['link'] = title:fullUrl('action=watch'), ['url'] = true }
}
local ul = mw.html.create('ul')
if has_brackets then
ul:addClass(cfg.classes.brackets)
:cssText(font_style)
end
for i, _ in ipairs(displayed_links) do
if displayed_links[i] then add_link(link_descriptions[i], ul, is_mini, font_style) end
end
return ul:done()
end
function p._navbar(args)
-- TODO: We probably don't need both fontstyle and fontcolor...
local font_style = args.fontstyle
local font_color = args.fontcolor
local is_collapsible = args.collapsible
local is_mini = args.mini
local is_plain = args.plain
local collapsible_class = nil
if is_collapsible then
collapsible_class = cfg.classes.collapsible
if not is_plain then is_mini = 1 end
if font_color then
font_style = (font_style or '') .. '; color: ' .. font_color .. ';'
end
end
local navbar_style = args.style
local div = mw.html.create():tag('div')
div
:addClass(cfg.classes.navbar)
:addClass(cfg.classes.plainlinks)
:addClass(cfg.classes.horizontal_list)
:addClass(collapsible_class) -- we made the determination earlier
:cssText(navbar_style)
if is_mini then div:addClass(cfg.classes.mini) end
local box_text = (args.text or cfg.box_text) .. ' '
-- the concatenated space guarantees the box text is separated
if not (is_mini or is_plain) then
div
:tag('span')
:addClass(cfg.classes.box_text)
:cssText(font_style)
:wikitext(box_text)
end
local template = args.template
local displayed_links = choose_links(template, args)
local has_brackets = args.brackets
local title_arg = get_title_arg(is_collapsible, template)
local title_text = args[title_arg] or (':' .. mw.getCurrentFrame():getParent():getTitle())
local list = make_list(title_text, has_brackets, displayed_links, is_mini, font_style)
div:node(list)
if is_collapsible then
local title_text_class
if is_mini then
title_text_class = cfg.classes.collapsible_title_mini
else
title_text_class = cfg.classes.collapsible_title_full
end
div:done()
:tag('div')
:addClass(title_text_class)
:cssText(font_style)
:wikitext(args[1])
end
return mw.getCurrentFrame():extensionTag{
name = 'templatestyles', args = { src = cfg.templatestyles }
} .. tostring(div:done())
end
function p.navbar(frame)
return p._navbar(require('Module:Arguments').getArgs(frame))
end
return p
jd5no8v1zi4m1e6lvbwo0a9t0kogdvi
Module:Navbar/configuration
828
1531
14954
14947
2022-07-16T00:10:36Z
Kambai Akau
15
Kambai Akau shyei peji [[Module:Navbar configuration]] nat [[Module:Navbar/configuration]] di̱ mi̱n wot a̱shaivak: Ku lan tyia̱ a̱ni.
Scribunto
text/plain
return {
['templatestyles'] = 'Module:Navbar/styles.css',
['box_text'] = 'This box: ', -- default text box when not plain or mini
['title_namespace'] = 'Template', -- namespace to default to for title
['invalid_title'] = 'Invalid title ',
['classes'] = { -- set a line to nil if you don't want it
['navbar'] = 'navbar',
['plainlinks'] = 'plainlinks', -- plainlinks
['horizontal_list'] = 'hlist', -- horizontal list class
['mini'] = 'navbar-mini', -- class indicating small links in the navbar
['this_box'] = 'navbar-boxtext',
['brackets'] = 'navbar-brackets',
-- 'collapsible' is the key for a class to indicate the navbar is
-- setting up the collapsible element in addition to the normal
-- navbar.
['collapsible'] = 'navbar-collapse',
['collapsible_title_mini'] = 'navbar-ct-mini',
['collapsible_title_full'] = 'navbar-ct-full'
}
}
lydm72m86hfvyzj0u2lqfps9lz9gquk
Module:Navbar/configuration/doc
828
1532
14955
14948
2022-07-16T00:10:36Z
Kambai Akau
15
Kambai Akau shyei peji [[Module:Navbar configuration/doc]] nat [[Module:Navbar/configuration/doc]] di̱ mi̱n wot a̱shaivak: Ku lan tyia̱ a̱ni.
wikitext
text/x-wiki
{{module rating|protected}}
{{used in system}}
Configuration used by [[Module:Navbar]].
fv41n4ui8yvj8on4okozgpveunvfmbc
Ta̱mpi̱let:Administrator's guide
10
1533
14950
2022-07-15T23:58:58Z
Kambai Akau
15
Created page with "{{Navbox |name = Administrators' guide |state = {{{state<includeonly>|expanded</includeonly>}}} |title = [[Wikipedia:Administrators' guide|Administrators' guide]] |bodyclass = hlist |image = |group1 = Articles |list1 = *[[Wikipedia:Advice for new administrators|Advice for new administrators]] *[[Wikipedia:Administrators' guide/Blocking|Blocking]] *[[Wikipedia:Administrators' guide/Cleaning backlogs|Cleaning backlogs]] *Wikipedia:Administrators' guide/Dealing with..."
wikitext
text/x-wiki
{{Navbox
|name = Administrators' guide
|state = {{{state<includeonly>|expanded</includeonly>}}}
|title = [[Wikipedia:Administrators' guide|Administrators' guide]]
|bodyclass = hlist
|image =
|group1 = Articles
|list1 =
*[[Wikipedia:Advice for new administrators|Advice for new administrators]]
*[[Wikipedia:Administrators' guide/Blocking|Blocking]]
*[[Wikipedia:Administrators' guide/Cleaning backlogs|Cleaning backlogs]]
*[[Wikipedia:Administrators' guide/Dealing with disputes|Dealing with disputes]]
*[[Wikipedia:Administrators' guide/Dealing with spam|Dealing with spam]]
*[[Wikipedia:Administrators' guide/Deleting|Deleting]]
*[[Wikipedia:Administrators' guide/Edit filters|Edit filters]]
*[[Wikipedia:Administrators' guide/Fixing cut-and-paste moves|Fixing cut-and-paste moves]]
*[[Wikipedia:Administrators' guide/Granting and revoking user rights|Granting and revoking user rights]]
*[[Wikipedia:Administrators' guide/Protecting|Protecting]]
*[[Wikipedia:Administrators' reading list|Reading list]]
*[[Wikipedia:Administrators' guide/Rollback|Rollback]]
*[[Wikipedia:Administrators' guide/Tools|Tools, scripts and gadgets]]
*[[Wikipedia:Administrators' guide/Viewing deleted pages|Viewing deleted pages and contributions]]
|group2 = Policies
|list2 =
*[[Wikipedia:Administrators|Administrator policy]] (WP:ADMIN)
*[[Wikipedia:Banning policy|Banning policy]] (WP:BAN)
*[[Wikipedia:Blocking policy|Blocking policy]] (WP:BLOCK)
*[[Wikipedia:Deletion policy|Deletion policy]] (WP:DEL)
*[[Wikipedia:Protection policy|Protection policy]] (WP:PROTECT)
*[[Wikipedia:Revision deletion|Revision deletion policy]] (WP:REVDEL)
}}
{{#ifeq: {{NAMESPACE}} | User |<!-- nothing--> |[[Category:Wikipedia Administrators' guide]]}}<noinclude>{{Documentation}}</noinclude>
j7dbhmckajueqlxgxvmtqu6ynkr7bey
Ta̱mpi̱let:Li̱la̱n Wukipedia
10
1534
14951
2022-07-16T00:04:05Z
Kambai Akau
15
Created page with "{{navbox | name = Wikipedia accounts | title = Wikipedia [[Wikipedia:User access levels|accounts]] and [[Wikipedia:Administration#Human and legal administration|governance]] | bodyclass = hlist | state = {{{state<includeonly>|{{{1|autocollapse}}}</includeonly>}}} | group1 = [[Wikipedia:User access levels#Unregistered users|Unregistered (IP) users]] | list1 = * [[Wikipedia:Why create an account?|Why create an account?]] * [[Special:CreateAccount|Create an account]] * ..."
wikitext
text/x-wiki
{{navbox
| name = Wikipedia accounts
| title = Wikipedia [[Wikipedia:User access levels|accounts]] and [[Wikipedia:Administration#Human and legal administration|governance]]
| bodyclass = hlist
| state = {{{state<includeonly>|{{{1|autocollapse}}}</includeonly>}}}
| group1 = [[Wikipedia:User access levels#Unregistered users|Unregistered (IP) users]]
| list1 =
* [[Wikipedia:Why create an account?|Why create an account?]]
* [[Special:CreateAccount|Create an account]]
* [[Wikipedia:Request an account|Request an account]]
* [[Wikipedia:IP editors are human too|IPs are human too]]
* [[Wikipedia:IP addresses are not people|IP addresses are not people]]
* [[Wikipedia:IP hopper|IP hopper]]
| group2 = Registered users
| list2 =
* [[Wikipedia:New account|New account]]
* [[Help:Logging in|Logging in]]
** [[Help:Reset password|Reset passwords]]
* [[Wikipedia:Username policy|Username policy]]
** [[Wikipedia:Changing username|Changing username]]
** [[Wikipedia:Usernames for administrator attention|Usernames for administrator attention]]
* [[Wikipedia:Unified login|Unified login or SUL]]
* [[Wikipedia:Sockpuppetry#Legit|Alternate account]]
| group3 = Account security
| list3 =
* [[Wikipedia:Password strength requirements|Password strength requirements]]
* [[Wikipedia:User account security|User account security]]
* [[Wikipedia:Personal security practices|Personal security practices]]
* [[Help:Two-factor authentication|Two-factor authentication]]
** [[Wikipedia:Using AWB with 2FA|2FA for AWB]]
* [[Template:Committed identity|Committed identity]]
* [[Wikipedia:On privacy, confidentiality and discretion|On privacy, confidentiality and discretion]]
* [[Wikipedia:Compromised accounts|Compromised accounts]]
* [[Wikipedia:How to not get outed on Wikipedia|How to not get outed]]
| group4 = Blocks, bans, sanctions,<br />global actions
| list4 =
* [[Wikipedia:Blocking policy|Blocking policy]]
** [[Wikipedia:FAQ/Blocks|FAQ]]
** [[Wikipedia:Administrators' guide/Blocking|Admin's guide]]
** [[Wikipedia:Administrators' guide/Blocking/Tools|Tools]]
** [[Wikipedia:Autoblock|Autoblock]]
* [[Wikipedia:Appealing a block|Appealing a block]]
** [[Wikipedia:Guide to appealing blocks|Guide to appealing blocks]]
** [[Wikipedia:Unblock Ticket Request System|UTRS Unblock Ticket Request System]]
* [[Wikipedia:Blocking IP addresses|Blocking IP addresses]]
** [[mw:Help:Range blocks|Range blocks]]
** [[mw:Help:Range blocks/IPv6|IPv6]]
** [[Wikipedia:Open proxies|Open proxies]]
* [[Wikipedia:Banning policy|Banning policy]]
** [[Wikipedia:Arbitration Committee/Ban appeals|ArbCom appeals]]
* [[Wikipedia:Sanctions|Sanctions]]
** [[Wikipedia:Editing restrictions|Personal sanctions]]
** [[Wikipedia:General sanctions|General sanctions]]
** [[Wikipedia:Arbitration Committee/Discretionary sanctions|Discretionary sanctions]] and [[Wikipedia:Arbitration enforcement log|Log]]
** [[Wikipedia:Sanctions (essay)|Essay]]
* [[Wikipedia:Long-term abuse|Long-term abuse]]
* [[Wikipedia:Standard offer|Standard offer]]
* [[Wikipedia:Global actions|Global actions]]
| group5 = Related to accounts
| list5 =
* [[Wikipedia:Sockpuppetry|Sockpuppetry]]
* [[Wikipedia:Single-purpose account|Single-purpose account]]
* [[Wikipedia:Sleeper account|Sleeper account]]
* [[Wikipedia:Vandalism-only account|Vandalism-only account]]
* [[Wikipedia:Wikibreak|Wikibreak]]
** [[Wikipedia:WikiProject User scripts/Scripts/WikiBreak Enforcer|Enforcer]]
* [[Wikipedia:Retiring|Retiring]]
** [[Wikipedia:Courtesy vanishing|Courtesy vanishing]]
* [[Wikipedia:Clean start|Clean start]]
** [[User:Worm That Turned/Quiet return|Quiet return]]
| group6 = [[Wikipedia:User access levels|User groups]]<br /> and [[m:User groups#Global user groups|global user groups]]
| list6 =
* [[Wikipedia:Requests for permissions|Requests for permissions]]
** [[Wikipedia:Requests for permissions/Administrator instructions|Admin instructions]]
** [[Wikipedia:Administrators' guide/Granting and revoking user rights|Admin guide]]
* [[Wikipedia:Account creator|Account creator]]
** [[Wikipedia:Requests for permissions/Account creator|PERM]]
* [[Wikipedia:User access levels#Confirmed users|(Auto) confirmed]]
** [[Wikipedia:Requests for permissions/Confirmed|PERM]]
* [[Wikipedia:Autopatrolled|Autopatrolled]]
** [[Wikipedia:Requests for permissions/Autopatrolled|PERM]]
* [[Wikipedia:AutoWikiBrowser|AutoWikiBrowser]]
** [[Wikipedia:Requests for permissions/AutoWikiBrowser|PERM]]
* [[Wikipedia:Bot policy|Bot]]
** [[Wikipedia:Bots/Requests for approval|Request]]
* [[Wikipedia:Edit filter helper|Edit filter helper]]
** [[Wikipedia:Edit filter noticeboard|Request]]
* [[Wikipedia:Event coordinator|Event coordinator]]
** [[Wikipedia:Requests for permissions/Event coordinator|PERM]]
* [[Wikipedia:User access levels#Extendedconfirmed|Extended confirmed]]
** [[Wikipedia:Requests for permissions/Extended confirmed|PERM]]
* [[Wikipedia:File mover|File mover]]
** [[Wikipedia:Requests for permissions/File mover|PERM]]
* [[Wikipedia:IP block exemption|IP block exempt]]
** [[Wikipedia:Unblock Ticket Request System|Request]]
* [[Wikipedia:Mass message senders|Mass message sender]]
** [[Wikipedia:Requests for permissions/Mass message sender|PERM]]
* [[Wikipedia:New pages patrol/Reviewers|New page reviewer]]
** [[Wikipedia:Requests for permissions/New page reviewer|PERM]]
* [[Wikipedia:Page mover|Page mover]]
** [[Wikipedia:Requests for permissions/Page mover|PERM]]
* [[Wikipedia:Reviewing pending changes|Pending changes reviewer]]
** [[Wikipedia:Requests for permissions/Pending changes reviewer|PERM]]
* [[Wikipedia:Rollback|Rollback]]
** [[Wikipedia:Requests for permissions/Rollback|PERM]]
* [[Wikipedia:Template editor|Template editor]]
** [[Wikipedia:Requests for permissions/Template editor|PERM]]
* [[Wikipedia:Global rights policy|Global rights policy]]
** [[Wikipedia:Volunteer Response Team|OTRS Volunteer Response Team]]
| group7 = Advanced user groups
| list7 =
* [[Wikipedia:Administrators|Administrator]]
** [[Wikipedia:Requests for adminship|RfA]]
* [[Wikipedia:Bureaucrats|Bureaucrat]]
** [[Wikipedia:Requests for adminship#Current nominations for bureaucratship|RfB]]
* [[Wikipedia:CheckUser|CheckUser]] and [[Wikipedia:Oversight|Oversight]]
** [[Wikipedia:Arbitration Committee/CheckUser and Oversight#Appointments|Request]]
* [[Wikipedia:Edit filter|Edit filter manager]]
** [[Wikipedia:Edit filter noticeboard|Request]]
* [[Wikipedia:Interface administrators|Interface administrator]]
** [[Wikipedia:Bureaucrats' noticeboard|Request]]
* [[Wikipedia:Role of Jimmy Wales#Founder flag|Founder]]
* [[Wikipedia:User access levels#Importers and transwiki importers|Importer]]
* [[Wikipedia:User access levels#Researcher|Researcher]]
| group8 = [[Wikipedia:Committees|Committees]] and related
| list8 =
* [[Wikipedia:Arbitration Committee|Arbitration Committee]]
* [[Wikipedia:Bot Approvals Group|Bot approvals group]]
* [[Wikipedia:Functionaries|Functionaries]]
* Clerks
** [[Wikipedia:Sockpuppet investigations/SPI/Clerks|SPI clerks]]
** [[Wikipedia:Arbitration Committee/Clerks|ArbCom clerks]]
| group9 = [[Wikipedia:Administration|Governance]]
| list9 =
* [[Wikipedia:Administration|Administration]]
** [[Wikipedia:FAQ/Administrators|FAQ]]
* [[Wikipedia:Formal organization|Formal organization]]
* [[Wikipedia:Editorial oversight and control|Editorial oversight and control]]
* [[Wikipedia:Quality control|Quality control]]
* [[Wikipedia:Wikimedia Foundation|Wikimedia Foundation]]
** [[Wikipedia:Wikimedia Foundation#Board of Trustees|Board]]
** [[Wikipedia:Role of Jimmy Wales#Founder's seat on the Foundation Board|Founder's seat]]
** [[Wikipedia:Meta|Meta-Wiki]]
**[[Wikipedia:Wikimedia proposals|Proposals]]
* [[Wikipedia:WikiProject|WikiProjects]]
* [[Wikipedia:Elections|Elections]]
* [[Wikipedia:Policies and guidelines|Policies and guidelines]]
* [[Wikipedia:List of petitions|Petitions]]
* [[Wikipedia:Noticeboards|Noticeboards]]
* [[Wikipedia:Consensus|Consensus]]
* [[Wikipedia:Dispute resolution|Dispute resolution]]
* [[Wikipedia:Reforms|Reforms]]
}}<noinclude>
{{documentation}}
</noinclude>
ig04dgxy5ledlcttre5hs8fse5tbbr9
Ta̱mpi̱let:Li̱la̱n Wukipedia/doc
10
1535
14952
2022-07-16T00:04:59Z
Kambai Akau
15
Created page with "{{Documentation subpage}} <!-- Add categories where indicated at the bottom of this page and interwikis at Wikidata (see [[Wikipedia:Wikidata]]) --> ==Usage== For topics related to English Wikipedia local accounts and global Wikimedia accounts via the [[Wikipedia:Unified login|SUL]]. Includes account security and blocking, and account user access levels. Also included are some links to English Wikipedia committees and governance, as these are closely related to user ac..."
wikitext
text/x-wiki
{{Documentation subpage}}
<!-- Add categories where indicated at the bottom of this page and interwikis at Wikidata (see [[Wikipedia:Wikidata]]) -->
==Usage==
For topics related to English Wikipedia local accounts and global Wikimedia accounts via the [[Wikipedia:Unified login|SUL]]. Includes account security and blocking, and account user access levels.
Also included are some links to English Wikipedia committees and governance, as these are closely related to user access levels.
==Collapsible option==
{{collapsible option}}
==See also==
{{Wikipedia editor navigation templates|state=expanded}}
<includeonly>{{sandbox other||
<!-- Categories below this line; interwikis at Wikidata -->
[[Category:Wikipedia-internal navigational templates]]
}}</includeonly>
1n3r2smrzur4ec53forfm0wg32fokvw
Ta̱mpi̱let:Collapsible option
10
1536
14953
2022-07-16T00:06:33Z
Kambai Akau
15
Created page with "'''{{big|Initial visibility:}}''' currently defaults to '''{{big|{{#switch:{{{default|}}}|collapsed=collapsed|expanded=expanded|autocollapse|#default=autocollapse}}}}''' To set this template's initial visibility, the {{para|{{{parameter_name|state}}}}} [[Help:Template#Parameters|parameter]] may be used: <ul> <li>{{para|{{{parameter_name|state}}}|collapsed}}: <code><nowiki>{{</nowiki><includeonly>{{</includeonly>{{#if:{{{nobase|}}}| |BASE}}PAGENAME<includeonly>}}</includ..."
wikitext
text/x-wiki
'''{{big|Initial visibility:}}''' currently defaults to '''{{big|{{#switch:{{{default|}}}|collapsed=collapsed|expanded=expanded|autocollapse|#default=autocollapse}}}}'''
To set this template's initial visibility, the {{para|{{{parameter_name|state}}}}} [[Help:Template#Parameters|parameter]] may be used:
<ul>
<li>{{para|{{{parameter_name|state}}}|collapsed}}: <code><nowiki>{{</nowiki><includeonly>{{</includeonly>{{#if:{{{nobase|}}}| |BASE}}PAGENAME<includeonly>}}</includeonly><nowiki>|</nowiki>{{{parameter_name|state}}}<nowiki>=collapsed}}</nowiki></code> to show the template collapsed, i.e., hidden apart from its title bar</li>
<li>{{para|{{{parameter_name|state}}}|expanded}}: <code><nowiki>{{</nowiki><includeonly>{{</includeonly>{{#if:{{{nobase|}}} | |BASE}}PAGENAME<includeonly>}}</includeonly><nowiki>|</nowiki>{{{parameter_name|state}}}<nowiki>=expanded}}</nowiki></code> to show the template expanded, i.e., fully visible</li>
<li>{{para|{{{parameter_name|state}}}|autocollapse}}: <code><nowiki>{{</nowiki><includeonly>{{</includeonly>{{#if:{{{nobase|}}} | |BASE}}PAGENAME<includeonly>}}</includeonly><nowiki>|</nowiki>{{{parameter_name|state}}}<nowiki>=autocollapse}}</nowiki></code>
<ul>
<li>shows the template collapsed to the title bar if there is a {{tlx|navbar}}, a {{tlx|sidebar}}, or some other table on the page with the collapsible attribute</li>
<li>shows the template in its expanded state if there are no other collapsible items on the page</li>
</ul></li></ul>
If the {{para|{{{parameter_name|state}}}}} parameter in the template on this page is not set, the template's initial visibility is taken from the {{para|default}} parameter in the ''Collapsible option'' template. For the template on this page, that currently evaluates to {{big|'''<code>{{#switch:{{{default|}}}|collapsed=collapsed|expanded=expanded|autocollapse|#default=autocollapse}}</code>'''}}.<!--
-->{{#if:{{{align|}}}|
:{{para|align|{{var|value}}}} is also available; where {{var|value}} can be either <code>right</code> or <code>left</code>. The default is {{kbd|center}}.
}}{{#if:{{{title-background|}}}|:{{para|title-background|{{var|value}}}} is also available; where {{var|value}} can be either {{kbd|navbox}} or a {{kbd|color}}. The default is {{kbd|none}}, and {{{kbd|navbox}} defaults to the default navbox color.
}}{{#if:{{{width|}}}|
:{{para|width|{{var|value}}}} is also available; where {{var|value}} can be either {{kbd|{{var|N}} [em/%/px]}} or {{kbd|auto}}. The default is {{kbd|100%}}.
}}<!--
Add {{pp-template}} if template page where this template is transcluded is protected:
-->{{template other
| {{#if:{{PROTECTIONLEVEL:edit}} |{{pp-template|docusage=yes}}
| {{#if:{{PROTECTIONLEVEL:move}} |{{pp-move|docusage=yes|small=yes}} }}
}} }}<noinclude>
{{Documentation}}
<!-- Add categories to the /doc subpage, interwikis to Wikidata, not here -->
</noinclude>
m4ddpzem9kneby62lbpnjhqhvbine1e
Module:Sandbox
828
1537
14956
2022-07-16T00:13:48Z
Kambai Akau
15
Created page with "-- Placeholder only! Do NOT add code."
Scribunto
text/plain
-- Placeholder only! Do NOT add code.
3acwgic3wcl5or2i98jepkut19gw9ot
Module:Sandbox/doc
828
1538
16034
16033
2022-08-18T19:09:14Z
Kambai Akau
15
/* A̱vwuo mak Scribunto */
wikitext
text/x-wiki
{{module other|{{ombox|type=notice|image=[[File:Template-protection-shackle.svg|40x40px|link=|alt=Protected]]|text=Á̱ nvwuong njhyuk mi̱ wat huni mbwak á̱niet ba̱ nwai yet [[Wikipedia:template editor|á̱nietjhyuk ta̱mpi̱let]] a̱ni da̱nian mi̱ di̱ jen ma̱ a̱di̱di̱t á̱ ni̱ jhyuk nhu ma̱ng ghyuap. Ka̱nang a cat a mak ''module'' a̱ghyang, nwuan nka̱nda̱n na a̱tatak; yok jhyuk wat huni bah.}}}}
{{not a sandbox}}
== A̱vwuo mak ''Scribunto'' ==
Si̱ huni yet a̱tsak ''module'' [[WP:Lua|Lua]] wa bah. It exists to provide a convenient pseudo-namespace for code testing, hopefully preventing the main Module: namespace from becoming littered with experiments, as Lua modules cannot exist as subpages in the User: namespace.
Please name your experimental modules in the following format to help keep things tidy:
Module:Sandbox/<var>A̱lyoot A̱tyunta̱m Ang Ka</var>
<inputbox>
type=create
preload=Module:Sandbox/new
editintro=Template:New module editintro
prefix=Module:Sandbox/
placeholder=Tyia̱ a̱lyoot-a̱tyunta̱m ang ka a̱ji
button label=Create new sandbox module
</inputbox>
If you need more Module sandboxes, create subpages of the sandbox thus created.
You can use [//en.wikipedia.org/w/index.php?title=Special%3APrefixIndex&prefix=Sandbox%2F&namespace=828&stripprefix=1 Special:PrefixIndex/Module:Sandbox] to list modules in this area.
<!-- DO NOT EDIT THIS PAGE AS A TEST! IT IS DOCUMENTATION. Thanks. -->
4oo2pj8kasx3xq6sac52a8jzvhreptl
Ta̱mpi̱let:Not a sandbox
10
1539
14958
2022-07-16T00:16:16Z
Kambai Akau
15
Created page with "{{Mbox | type = content | image = [[File:Sandbox Not.svg|50px|alt=|link=]] | text = '''This page is ''not'' a [[Wikipedia:About the sandbox|sandbox]].'''<br><div style="font-size:100%">It should not be used for test editing. To experiment, please use the [[Wikipedia:Sandbox|Wikipedia sandbox]], your [[Special:MyPage/sandbox|user sandbox]], or the [[Wikipedia:About the sandbox#List of sandboxes|other sandboxes]]. {{{note|}}}</div> }}<noinclude> {{Documentation}} </noincl..."
wikitext
text/x-wiki
{{Mbox
| type = content
| image = [[File:Sandbox Not.svg|50px|alt=|link=]]
| text = '''This page is ''not'' a [[Wikipedia:About the sandbox|sandbox]].'''<br><div style="font-size:100%">It should not be used for test editing. To experiment, please use the [[Wikipedia:Sandbox|Wikipedia sandbox]], your [[Special:MyPage/sandbox|user sandbox]], or the [[Wikipedia:About the sandbox#List of sandboxes|other sandboxes]]. {{{note|}}}</div>
}}<noinclude>
{{Documentation}}
</noinclude>
tqbb0xsk2bk4r1um1bkyjttlfo2ls2q
Ta̱mpi̱let:Not a sandbox/doc
10
1540
14959
2022-07-16T00:16:58Z
Kambai Akau
15
Created page with "{{Documentation subpage}} <!----PLEASE ADD CATEGORIES AT THE BOTTOM OF THIS PAGE----> {{not a sandbox}} {{nosubst}} ===Usage=== This template is used for pages that are very closely related to the real [[WP:SB|sandbox]] page, and can be easily misinterpreted as sandboxes. ===TemplateData=== {{Format TemplateData|JSON= { "params": { "note": { "label": "Note", "description": "Appears after the other text", "type": "content" } }, "description": "Add this tem..."
wikitext
text/x-wiki
{{Documentation subpage}}
<!----PLEASE ADD CATEGORIES AT THE BOTTOM OF THIS PAGE---->
{{not a sandbox}}
{{nosubst}}
===Usage===
This template is used for pages that are very closely related to the real [[WP:SB|sandbox]] page, and can be easily misinterpreted as sandboxes.
===TemplateData===
{{Format TemplateData|JSON=
{
"params": {
"note": {
"label": "Note",
"description": "Appears after the other text",
"type": "content"
}
},
"description": "Add this template to pages that may be confused for sandboxes."
} }}
===See also===
* [[Wikipedia:About the Sandbox]]
{{Sandbox-related templates}}
<includeonly>{{Sandbox other||
<!----CATEGORIES BELOW THIS LINE, PLEASE:---->
[[Category:Sandbox templates|Sandbox, Not a]]
}}</includeonly>
2c133qmj5jmlrxcc4vtx40qzjvu705c
Ta̱mpi̱let:Audio/doc
10
1541
14960
2022-07-16T00:21:34Z
Kambai Akau
15
Created page with "{{Documentation subpage}} <!--PLEASE ADD CATEGORIES WHERE INDICATED AT THE BOTTOM OF THIS PAGE--> {{for|instructions on inserting audio files|Wikipedia:Creation and usage of media files#Audio}} {{for|audio files set off from text|Template:Listen}} == Purpose == This template links to an audio file for quick listening. It is meant to be used inline with text, for pronunciations and the like. Please note that this just creates a link to the file and does not actually embe..."
wikitext
text/x-wiki
{{Documentation subpage}}
<!--PLEASE ADD CATEGORIES WHERE INDICATED AT THE BOTTOM OF THIS PAGE-->
{{for|instructions on inserting audio files|Wikipedia:Creation and usage of media files#Audio}}
{{for|audio files set off from text|Template:Listen}}
== Purpose ==
This template links to an audio file for quick listening. It is meant to be used inline with text, for pronunciations and the like. Please note that this just creates a link to the file and does not actually embed the file. If the file is Non-Free and only referenced via this template it is not in compliance with [[WP:NFCC#7|Wikipedia:Non-free content criteria § Policy #7]].
== Usage ==
; Basic:
<code><nowiki>{{Audio|name of sound file|text to use as link to soundfile|help=}}</nowiki></code>
; Simple
: <code><nowiki>'''Alabama''' ({{Audio|en-us-Alabama.ogg|pronunciation}}) is a state located in...</nowiki></code>
: → '''Alabama''' ({{Audio|en-us-Alabama.ogg|pronunciation}}) is a state located in...
; Help links
Setting {{para|help|no}} disables the "help/info" links. If this is done the template {{tlx|inline audio}} ''must'' be shown on the page.
: <code><nowiki>'''Alabama''' ({{Audio|en-us-Alabama.ogg|pronunciation of "Alabama"|help=no}})</nowiki></code>
: → '''Alabama''' ({{Audio|en-us-Alabama.ogg|pronunciation of "Alabama"|help=no}})
: Todo: add {{tlx|inline audio}} to this page.
== Microformat ==
{{UF-audio}}
== TemplateData ==
{{TemplateData header}}
<templatedata>
{
"description": "Use this template to add an inline link to an audio file, preceded by a speaker icon.",
"format": "inline",
"params": {
"1": {
"label": "Audio file",
"description": "Audio file to link to",
"type": "wiki-file-name",
"example": "En-uk-London.ogg",
"required": true
},
"2": {
"label": "Label",
"description": "Text to replace the filename in the link",
"type": "string",
"example": "English pronunciation"
},
"help": {
"label": "Show \"(help·info)\" links?",
"description": "Enter \"no\" here to remove the \"(help·info)\" links.",
"type": "line",
"autovalue": "no",
"example": "no"
}
},
"paramOrder": [
"1",
"2",
"help"
]
}
</templatedata>
== See also ==
{{Audio templates}}
<includeonly>{{Sandbox other|
| <!-- PLEASE ADD CATEGORIES BELOW THIS LINE: -->
[[Category:Audio templates]]
[[Category:Templates that add a tracking category]]
}}</includeonly>
44wrsy7bz0es5gh2buw2i1l2n6t2pxp
Ta̱mpi̱let:Audio icon
10
1542
14961
2022-07-16T00:22:51Z
Kambai Akau
15
Created page with "[[File:sound-icon.svg|16px|Audio content icon|link=]]<noinclude> {{documentation}} </noinclude>"
wikitext
text/x-wiki
[[File:sound-icon.svg|16px|Audio content icon|link=]]<noinclude>
{{documentation}}
</noinclude>
sqxwnxq52w4xa6jn6xka01ybqe2wc71
Ta̱mpi̱let:Audio icon/doc
10
1543
14962
2022-07-16T00:23:29Z
Kambai Akau
15
Created page with "{{Documentation subpage}} <!-- Please place categories where indicated at the bottom of this page and interwikis at Wikidata (see [[Wikipedia:Wikidata]]) --> This template adds a loudspeaker icon to indicate audio. Clicking the icon ''does not'' download the audio file. == Usage == : <code><nowiki>{{Audio icon}}</nowiki></code> gives: : {{Audio icon}} == See also == {{Audio templates}} <includeonly>{{sandbox other|| <!-- Categories below this line, please; interwikis..."
wikitext
text/x-wiki
{{Documentation subpage}}
<!-- Please place categories where indicated at the bottom of this page and interwikis at Wikidata (see [[Wikipedia:Wikidata]]) -->
This template adds a loudspeaker icon to indicate audio. Clicking the icon ''does not'' download the audio file.
== Usage ==
: <code><nowiki>{{Audio icon}}</nowiki></code>
gives:
: {{Audio icon}}
== See also ==
{{Audio templates}}
<includeonly>{{sandbox other||
<!-- Categories below this line, please; interwikis at Wikidata -->
[[Category:Audio templates]]
}}</includeonly>
mqkllf00e21fghqo5fr4km72pxtf6tg
Ta̱mpi̱let:Ghwughwu fa̱k
10
1544
15731
14963
2022-08-11T23:14:05Z
Kambai Akau
15
Kambai Akau shyei peji [[Ta̱mpi̱let:Listen image]] nat [[Ta̱mpi̱let:Ghwughwu fa̱k]]: Di̱n Tyap
wikitext
text/x-wiki
{{Infobox
| above = {{{main_title|}}}
| image = {{#invoke:InfoboxImage | InfoboxImage | image={{{main_image|}}} | size={{{main_image_size|}}} | alt={{{main_image_alt|}}} | title={{{main_title|}}} | upright={{#if: {{{main_image_upright|}}}|{{{main_image_upright|}}}|1.3}} | border=no | center=yes}}
| caption1 = {{{main_image_caption|}}}
| data1 = <hr> {{Listen
| filename = {{{filename|}}}
| title = {{{title|}}}
| alt = {{{alt|}}}
| description = {{{description|}}}
| filename2 = {{{filename2|}}}
| title2 = {{{title2|}}}
| alt2 = {{{alt2|}}}
| description2 = {{{description2|}}}
| filename3 = {{{filename3|}}}
| title3 = {{{title3|}}}
| alt3 = {{{alt3|}}}
| description3 = {{{description3|}}}
| filename4 = {{{filename4|}}}
| title4 = {{{title4|}}}
| alt4 = {{{alt4|}}}
| description4 = {{{description4|}}}
| filename5 = {{{filename5|}}}
| title5 = {{{title5|}}}
| alt5 = {{{alt5|}}}
| description5 = {{{description5|}}}
| filename6 = {{{filename6|}}}
| title6 = {{{title6|}}}
| alt6 = {{{alt6|}}}
| description6 = {{{description6|}}}
| filename7 = {{{filename7|}}}
| title7 = {{{title7|}}}
| alt7 = {{{|}}}
| description7 = {{{description7|}}}
| filename8 = {{{filename8|}}}
| title8 = {{{title8|}}}
| alt8 = {{{alt8|}}}
| description8 = {{{description8|}}}
| filename9 = {{{filename9|}}}
| title9 = {{{title9|}}}
| alt9 = {{{alt9|}}}
| description9 = {{{description9|}}}
| filename10 = {{{filename10|}}}
| title10 = {{{title10|}}}
| alt10 = {{{alt10|}}}
| description10 = {{{description10|}}}
| type = {{{type|}}}
| header = {{{header|}}}
| help = {{{help|}}}
| pos = center
| image = {{{image|}}}
| style = border:none;background:none;{{{style|}}}
| play = {{{play|}}}
| plain = {{{plain|}}}
| embed = {{{embed|}}}
| start = {{{start|}}}
}}
| decat = no
| bodystyle = background:#f9f9f9;
}}<noinclude>
{{documentation}}
</noinclude>
dcidjcc3nis5tu6fa803zdyrhbsc9y7
Ta̱mpi̱let:Ghwughwu fa̱k/doc
10
1545
15733
15730
2022-08-11T23:14:05Z
Kambai Akau
15
Kambai Akau shyei peji [[Ta̱mpi̱let:Listen image/doc]] nat [[Ta̱mpi̱let:Ghwughwu fa̱k/doc]]: Di̱n Tyap
wikitext
text/x-wiki
{{Documentation subpage}}
== Usage ==
{{tl|{{BASEPAGENAME}}}} allows audio files to be embedded in articles with an associated image. It should be used for audio files and their accompanying visual representations that are set off from the text. It is just like {{tl|Fa̱k}}, except that it displays an image above the media player (but in the same box). This gives a much more pleasing visual result than placing a {{tl|Fa̱k}} below an image.
For [[Wikipedia:Non-free content|non-free, fair-use]] media samples, a description of the media is required to provide contextual significance, and thus satisfy item {{abbr|No.|number}} 8 of the [[Wikipedia:Non-free content criteria#Policy|Policy]] section of [[Wikipedia:Non-free content criteria]]. Do not position non-free audio or video files in the infobox.
===Basic usage===
The audio part of this template is almost exactly the same as {{t|Fa̱k}}. This way, you can convert a {{t|Fa̱k}} to a {{t|Ghwughwu fa̱k}} by—at the bare minimum—adding the word "image" to the template name and adding the '''main_image''' parameter.
<pre style="overflow: auto">
{{Listen image
| main_image =
| main_image_caption =
| main_image_alt =
| filename =
| title =
| description =
}}
</pre>
* '''main_image''' ''(Required)'': the pagename of the image to display with the audio file, {{em|without}} the <code>File:</code> (formerly <code>Image:</code>) prefix
* '''main_image_caption''': the caption for the main image
* '''main_image_alt ''': the alt text for the main image.for visually impaired readers; see ''[[Wikipedia:Alternative text for images]]''. This is needed for file formats such as [[Ogg]]'s <code>.ogv</code> format that include video as well as sound. The alt text should describe just the initial static image, not the entire video or its sound.
* '''filename''' ''(Required)'': the pagename of the media file, {{em|without}} the <code>File:</code> (formerly <code>Image:</code>) prefix
* '''title''' ''(Required)'': the title of the audio file, to be displayed. Do not use wikilinks in the title – they will not work.
* '''description''': a description of the audio file. For [[Wikipedia:Non-free content|non-free, fair-use]] audio, this must include a textual description of what is heard in the sample.
===Extended usage===
Additional audio files can be embedded in an article with one template by appending a number to each parameter. The maximum number of audio files embedded in this way is ten.
<pre style="overflow: auto">
{{Listen
| main_title =
| main_image =
| main_image_upright =
| main_image_size =
| main_image_caption =
| main_image_alt =
| filename =
| title =
| alt =
| description =
| filename2 =
| title2 =
| alt2 =
| description2 =
| filename3 =
| title3 =
| alt3 =
| description3 =
}}
</pre>
* '''main_title''': the title to display, emphasized, at the top of the template. This title applies to the template as a whole.
* '''main_image''' ''(Required)'': the pagename of the image to display with the audio file, {{em|without}} the <code>File:</code> (formerly <code>Image:</code>) prefix
* '''main_image_upright''': the upright factor, used to scale the main image from its default size. <code>1</code> is the default thumbnail size, <code>2</code> is twice the default thumbnail size, etc. In general, using this parameter should not be necessary, as the image should be appropriately sized for the media player already. See [[Wikipedia:Manual of Style/Images#Size]] for more details. (default value: <code>1.3</code>)
* '''main_image_size''': the image size. In general, using this parameter should not be necessary, as the image should be appropriately sized for the media player already. '''main_image_upright''' is generally preferred to this parameter.
* '''main_image_caption''': the caption for the main image
* '''filename''' ''(Required)'': the pagename of the media file, ''without'' the File: (formerly Image:) prefix
* '''title''' ''(Required)'': the title of the audio file, to be displayed.
* '''alt''': alt text for the image displayed for the media file, if applicable, for visually impaired readers.
* '''description''': a description of the audio file
===Style parameters===
The template also takes a number of style parameters to control its appearance:
{{Warning|These style templates all apply to the lower half of this template, containing the audio content, its title, descriptions, etc. They do ''not'' affect the behavior of the upper, image section of the template or the template as a whole. The use cases of some of these parameters are different from the equivalent parameters in {{tl|Listen}}.}}
* '''type''': can be used to alter the image displayed at the left of the audio section depending on the type of audio content being embedded. Acceptable values are '''music''', '''speech''' and '''sound''' (default)
* '''header''': can be used to add a header to the audio content section.
* '''help''': if set to {{para|help|no}}, suppresses the help text that normally appears at the bottom of the audio content section. Only do this if there are other audio files on the page which ''do'' have the help link; it ''must'' be provided on ''at least'' the first file on the article.
* '''image''': define a different image to show to the left of the media player. E.g. {{nowrap|{{para|image|<nowiki>[[File:Example.jps|50px]]</nowiki>}}}}. You can set {{para|image|none}} to disable the image entirely.
* '''start''': Timestamp at which the file should start playing.
* '''style''': can be used to pass specific style instructions to the audio content section.
* '''embed''': use {{para|embed|yes}} to remove the loudspeaker icon image and padding around the audio content section.
* '''play''': some media files cannot be displayed inline; if this is the case set {{para|play|no}} to prevent the broken inline link from displaying.
* '''plain''': if set {{para|plain|yes}}, removes most of the ornamentation (image and help links) from the audio content section to give a minimalist version. This also removes the left/right float and positioning, to allow the box to be manually positioned as desired using the {{para|style}} (e.g., {{Para|style|float:right}}) parameter and surrounding markup.
Note: Due to technical limitations, the '''pos''' attribute, which allows you to set the horizontal float of the template in {{t|Listen}}, is not implemented here. This template always floats right.
===Examples===
'''Basic'''
{{Listen image
| main_image = Supreme Accordian.jpg
| main_image_caption = An accordion
| main_image_alt = A black and white accordion
| filename = Accordion chords-01.ogg
| title = Accordion chords
| description = Chords being played on an accordion
}}
<pre style="overflow:auto;">
{{Listen image
| main_image = Supreme Accordian.jpg
| main_image_caption = An accordion
| main_image_alt = A black and white accordion
| filename = Accordion chords-01.ogg
| title = Accordion chords
| description = Chords being played on an accordion
}}
</pre>
{{-}}
'''Extended'''
{{User:Mysterymanblue/Template:Listen image 2
| main_title = First piloted lunar mission
| main_image = Neil Armstrong On The Moon - GPN-2000-001209.jpg
| main_image_upright =
| main_image_size = 250px
| main_image_caption = Neil Armstrong on the Moon
| main_image_alt = A man in a white spacesuit stands faces a spacecraft on a rocky, desolate surface; to his left stands the American flag.
| header = Recording of this phrase:
| type = speech
| filename = Frase de Neil Armstrong.ogg
| title = "One small step for a man..."
| description = First words spoken on the [[Moon]]
}}
<pre style="overflow:auto;">
{{User:Mysterymanblue/Template:Listen image 2
| main_title = First piloted lunar mission
| main_image = Neil Armstrong On The Moon - GPN-2000-001209.jpg
| main_image_upright =
| main_image_size = 250px
| main_image_caption = Neil Armstrong on the Moon
| main_image_alt = A man in a white spacesuit stands faces a spacecraft on a rocky, desolate surface; to his left stands the American flag.
| header = Recording of this phrase:
| type = speech
| filename = Frase de Neil Armstrong.ogg
| title = "One small step for a man..."
| description = First words spoken on the [[Moon]]
}}
</pre>
{{-}}
'''Multiple files'''
{{Listen image
| main_title = Second Suite in F
| main_image = Gustav-Holst-1921.jpg
| main_image_upright = 0.7
| main_image_size =
| main_image_caption = Composer [[Gustav Holst]]
| main_image_alt = A sepia-toned white man in glasses and a suit looks at the viewer.
| type = music
| header = Second Suite in F for Military Band performed by the United States Air Force Heritage of America Band
| filename = Gustav Holst - Second Suite in F - I. March. Allegro.ogg
| title = I. March
| alt =
| description =
| filename2 = Gustav Holst - Second Suite in F - II. Song Without Words "I'll Love My Love".ogg
| title2 = II. Song Without Words "I'll Love My Love"
| alt2 =
| description2 =
| filename3 = Gustav Holst - Second Suite in F - III. Song of the Blacksmith.ogg
| title3 = III. Song of the Blacksmith
| alt3 =
| description3 =
| filename4 = Gustav Holst - Second Suite in F - IV. Fantasia on the "Dargason".ogg
| title4 = IV. Fantasia on the "Dargason"
}}
<pre style="overflow:auto;">
{{Listen image
| main_title = Second Suite in F
| main_image = Gustav-Holst-1921.jpg
| main_image_upright = 0.7
| main_image_size =
| main_image_caption = Composer [[Gustav Holst]]
| main_image_alt = A sepia-toned white man in glasses and a suit looks at the viewer.
| type = music
| header = Second Suite in F for Military Band performed by the United States Air Force Heritage of America Band
| filename = Gustav Holst - Second Suite in F - I. March. Allegro.ogg
| title = I. March
| alt =
| description =
| filename2 = Gustav Holst - Second Suite in F - II. Song Without Words "I'll Love My Love".ogg
| title2 = II. Song Without Words "I'll Love My Love"
| alt2 =
| description2 =
| filename3 = Gustav Holst - Second Suite in F - III. Song of the Blacksmith.ogg
| title3 = III. Song of the Blacksmith
| alt3 =
| description3 =
| filename4 = Gustav Holst - Second Suite in F - IV. Fantasia on the "Dargason".ogg
| title4 = IV. Fantasia on the "Dargason"
}}
</pre>
{{-}}
'''No listen icon'''
{{Listen image
| main_title = "Music Masters, Hail to Thee"
| main_image = Tri-M Loyalty Song Sheet Music.jpg
| main_image_caption = Sheet music
| main_image_alt = Two sheets of sheet music entitled "Music Masters, Hail to Thee" lie side by side.
| filename = Tri-M Loyalty Song.mid
| title = "Music Masters, Hail to Thee"
| description =
| plain = yes
}}
<pre style="overflow:auto;">
{{Listen image
| main_title = "Music Masters, Hail to Thee"
| main_image = Tri-M Loyalty Song Sheet Music.jpg
| main_image_caption = Sheet music
| main_image_alt = Two sheets of sheet music entitled "Music Masters, Hail to Thee" lie side by side.
| filename = Tri-M Loyalty Song.mid
| title = "Music Masters, Hail to Thee"
| description =
| plain = yes
}}
</pre>
===Microformat===
{{UF-audio}}
===See also===
{{Audio templates}}
{{Film- and television-related infobox templates}}
<includeonly>{{Sandbox other||
[[Category:Audio templates]]
[[Category:Embeddable templates]]
[[Category:Exclude in print]]
[[Category:Templates that add a tracking category]]
}}</includeonly>
crqfdipzgfkrwf7bm8917njs9np0tmz
Ta̱mpi̱let:Infobox
10
1546
14965
2022-07-16T00:28:19Z
Kambai Akau
15
Created page with "{{#invoke:Infobox|infobox}}<includeonly>{{template other|{{#ifeq:{{PAGENAME}}|Infobox||{{#ifeq:{{str left|{{SUBPAGENAME}}|7}}|Infobox|[[Category:Infobox templates|{{remove first word|{{SUBPAGENAME}}}}]]}}}}|}}</includeonly><noinclude> {{documentation}} <!-- Categories go in the /doc subpage, and interwikis go in Wikidata. --> </noinclude>"
wikitext
text/x-wiki
{{#invoke:Infobox|infobox}}<includeonly>{{template other|{{#ifeq:{{PAGENAME}}|Infobox||{{#ifeq:{{str left|{{SUBPAGENAME}}|7}}|Infobox|[[Category:Infobox templates|{{remove first word|{{SUBPAGENAME}}}}]]}}}}|}}</includeonly><noinclude>
{{documentation}}
<!-- Categories go in the /doc subpage, and interwikis go in Wikidata. -->
</noinclude>
f4hgwrnr11ahhwyo266vcd10dpi92pe
Ta̱mpi̱let:Infobox/doc
10
1547
14966
2022-07-16T00:30:08Z
Kambai Akau
15
Created page with "{{Documentation subpage}} <!-- Please place categories where indicated at the bottom of this page and interwikis at Wikidata (see [[Wikipedia:Wikidata]]) --> {{distinguish|Template:Userbox}} {{High-use|3408796|all-pages=yes}} {{Lua|Module:Infobox}} {{Parameter names example |name={{PAGENAME}} <!--|child |subbox |decat--> |title |above |subheader |subheader1 |subheader2={{{subheader2}}}<br/>...... |image|caption |image1|caption1 |image2|caption2={{{caption2}}}<br/>........"
wikitext
text/x-wiki
{{Documentation subpage}}
<!-- Please place categories where indicated at the bottom of this page and interwikis at Wikidata (see [[Wikipedia:Wikidata]]) -->
{{distinguish|Template:Userbox}}
{{High-use|3408796|all-pages=yes}}
{{Lua|Module:Infobox}}
{{Parameter names example
|name={{PAGENAME}} <!--|child |subbox |decat--> |title |above |subheader |subheader1 |subheader2={{{subheader2}}}<br/>......
|image|caption |image1|caption1 |image2|caption2={{{caption2}}}<br/>......
|header1=<div style="border-top:1px dashed #ccc;">{{{header1}}}<br/>{{nobold|( ''or'' )}}</div>
|label2={{{label1}}} |data2={{{data1}}}
|data3=( ''or'' ) |data4=<div style="padding-bottom:0.25em;border-bottom:1px dashed #ccc;">{{{data1}}}</div>
|header5={{{header2}}}<br/><div style="padding:0.75em 0 0.5em;">{{nobold|( ''or'' )}}</div>
|label6={{{label2}}} |data6={{{data2}}}
|data7=( ''or'' ) |data8=<div style="padding-bottom:0.25em;border-bottom:1px dashed #ccc;">{{{data2}}}</div>
|data9=<div style="padding:0.75em 0 0.5em;">( ''etc'' )</div>
|below
}}
This template is intended as a meta template: a template used for constructing other templates. '''Note''': In general, it is not meant for use directly in an article, but can be used on a one-off basis if required. [[Help:Infobox]] contains an introduction about the recommended content and design of infoboxes; [[Wikipedia:Manual of Style/Infoboxes]] contains additional style guidelines. See [[WP:List of infoboxes]] and [[:Category:Infobox templates]] for lists of prepared topic-specific infoboxes.
== Usage ==
{{tlf|Infobox}} is a meta-template: used to organise an actual <nowiki>{{Infobox sometopic}}</nowiki> template (like {{tl|Infobox building}}).
For <code><nowiki>[[Template:Infobox sometopic]]</nowiki></code>, template code then looks like this, simplified:
<pre>
{{Infobox
| name = {{{name|{{PAGENAME}}}}}
| image = {{{image|}}}
| caption1 = {{{caption|}}}
| label1 = Former names
| data1 = {{{former_names|}}}
| header2 = General information
| label3 = Status
| data3 = {{{status|}}}
... <!-- etc. -->
}}
</pre>
== Optional control parameters ==
; name : If this parameter is present, "view/talk/edit" links will be added to the bottom of the infobox pointing to the named page, prefixed by <code>Template:</code> if no namespace is specified. You may use the value <nowiki>{{subst:PAGENAME}}</nowiki>; however, this is rarely what you want because it will send users clicking these links in an infobox to the template code rather than the data in the infobox they probably want to change.
; child : See the [[#Embedding|Embedding]] section for details. If this is set to "yes", this child infobox should be titled but have no name parameter. This parameter is empty by default, set it to "yes" to activate it.
; subbox : See the [[#Subboxes|Subboxes]] section for details. If this is set to "yes", this subbox should be titled but have no name parameter. This parameter is empty by default, set to "yes" to activate it. It has no effect if the '''child''' parameter is also set to "yes".
; decat : If this is set to "yes", the current page will not be autocategorized in a maintenance category when the generated infobox has some problems or no visible data section. Leave empty by default or set to "yes" to activate it.
; autoheaders: If this is set to any non-blank value, headers which are not followed by data fields are suppressed. See the "[[#Hiding headers when all its data fields are empty|hiding headers when all its data fields are empty]]" section for more details.
== Content parameters ==
=== Title ===
There are two different ways to put a title on an infobox. One contains the title inside the infobox's border in the uppermost cell of the table, the other puts it as a caption on top of the table. You can use them both together, or just one or the other, or neither (though this is not recommended):
; title : Text to put in the caption over the top of the table (or as section header before the whole content of this table, if this is a child infobox). For [[Wikipedia:Manual of Style/Accessibility#Tables|accessibility reasons]], this is the most recommended alternative.
; above : Text to put within the uppermost cell of the table.
; subheader(n) : additional title fields which fit below {{{title}}} and {{{above}}}, but before images.
Examples:
{{Infobox
| name = Infobox/doc
| title = Text in caption over infobox
| subheader = Subheader of the infobox
| header = (the rest of the infobox goes here)
}}
<pre style="overflow:auto">
{{Infobox
| name = {{subst:PAGENAME}}
| title = Text in caption over infobox
| subheader = Subheader of the infobox
| header = (the rest of the infobox goes here)
}}
</pre>{{clear}}
{{Infobox
| name = Infobox/doc
| above = Text in uppermost cell of infobox
| subheader = Subheader of the infobox
| subheader2 = Second subheader of the infobox
| header = (the rest of the infobox goes here)
}}
<pre style="overflow:auto">
{{Infobox
| name = {{subst:PAGENAME}}
| above = Text in uppermost cell of infobox
| subheader = Subheader of the infobox
| subheader2 = Second subheader of the infobox
| header = (the rest of the infobox goes here)
}}
</pre>{{clear}}
=== Illustration images ===
; image(n) : images to display at the top of the template. Use full image syntax, for example <nowiki>[[File:example.png|200px|alt=Example alt text]]</nowiki>. Image is centered by default. See [[WP:ALT]] for more on alt text.
; caption(n) : Text to put underneath the images.
=== Main data ===
; header(n) : Text to use as a header in row n.
; label(n) : Text to use as a label in row n.
; data(n) : Text to display as data in row n.
Note: for any given value for (n), not all combinations of parameters are permitted. The presence of a {{para|header''(n)''}} will cause the corresponding {{para|data''(n)''}} (and {{para|rowclass''(n)''}} {{para|label''(n)''}}, see below) to be ignored; the absence of a {{para|data''(n)''}} will cause the corresponding {{para|label''(n)''}} to be ignored. Valid combinations for any single row are:
* {{para|class''(n)''}} {{para|header''(n)''}}
* {{para|rowclass''(n)''}} {{para|class''(n)''}} {{para|data''(n)''}}
* {{para|rowclass''(n)''}} {{para|label''(n)''}} {{para|class''(n)''}} {{para|data''(n)''}}
See the rendering of header4, label4, and data4 in the [[#Examples|Examples]] section below.
==== Number ranges ====
To allow flexibility when the layout of an infobox is changed, it may be helpful when developing an infobox to use non-contiguous numbers for header and label/data rows. Parameters for new rows can then be inserted in future without having to renumber existing parameters. For example:
<pre style="overflow:auto">
| header3 = Section 1
| label5 = Label A
| data5 = Data A
| label7 = Label C
| data7 = Data C
| header10 = Section 2
| label12 = Label D
| data12 = Data D
</pre>{{clear}}
It is also possible to automatically renumber parameter names by using [[User:Frietjes/infoboxgap.js]] or [[Module:IncrementParams]].
==== Making data fields optional ====
A row with a label but no data is not displayed. This allows for the easy creation of optional infobox content rows. To make a row optional use a parameter that defaults to an empty string, like so:
<pre style="overflow:auto">
| label5 = Population
| data5 = {{{population|}}}
</pre>{{clear}}
This way if an article doesn't define the population parameter in its infobox the row won't be displayed.
For more complex fields with pre-formatted contents that would still be present even if the parameter wasn't set, you can wrap it all in an "#if" statement to make the whole thing vanish when the parameter is not used. For instance, the "#if" statement in the following example reads "#if:the parameter ''mass'' has been supplied |then display it, followed by 'kg'":
<pre style="overflow:auto">
| label6 = Mass
| data6 = {{ #if: {{{mass|}}} | {{{mass}}} kg }}
</pre>{{clear}}
For more on #if, see [[meta:ParserFunctions##if:|here]].
==== Hiding headers when all its data fields are empty ====
You can also make headers automatically hide when their section is empty (has no data-row showing).
Consider this situation:
{{Infobox
| title = Example: header with & without data
| headerstyle = background:lightgrey
| header1 = Header1 with empty section
| label2 = label2 text | data2 =
| label3 = label3 text | data3 =
| label4 = label4 text | data4 =
| header5 = Header5 with data below
| label6 = label6 text | data6 = Some value
}}
<pre style="overflow:auto">
{{Infobox
| title = Example: header with & without data
| headerstyle = background:lightgrey
| header1 = Header1 with empty section
| label2 = label2 text | data2 =
| label3 = label3 text | data3 =
| label4 = label4 text | data4 =
| header5 = Header5 with data below
| label6 = label6 text | data6 = Some value
}}
</pre>{{clear}}
If you want hide the header when no {{para|data''N''}} values are present, use '''{{para|autoheaders|y}}''':
{{Infobox
| title = Example: header with & without data
| autoheaders = y
| headerstyle = background:lightgrey
| header1 = Header1 with empty section
| label2 = label2 text | data2 =
| label3 = label3 text | data3 =
| label4 = label4 text | data4 =
| header5 = Header5 with data below
| label6 = label6 text | data6 = Some value
}}
<syntaxhighlight lang="moin" style="overflow:auto">
{{Infobox
| title = Example: header with & without data
| autoheaders = y
| headerstyle = background:lightgrey
| header1 = Header1 with empty section
| label2 = label2 text | data2 =
| label3 = label3 text | data3 =
| label4 = label4 text | data4 =
| header5 = Header5 with data below
| label6 = label6 text | data6 = Some value
}}
</syntaxhighlight>{{clear}}
So, header1 will be shown if any of item1, item2, or item3 is defined. If none of the three parameters are defined the header won't be shown and no empty row appears before the next visible content.
Note: if the data has empty css elements, like {{para|data|2=<span style="background:yellow;"></span>}}, this will be treated as non-empty (having data).
If {{para|autoheaders|y}} but there are items that you ''do not'' want to trigger a header, place {{para|headerX|_BLANK_}}. This will serve as an empty header and separate it from the subsequent items.
{{Infobox
| title = Example: blank header with & without data
| autoheaders = y
| headerstyle = background:lightgrey
| header1 = Header1 with empty section
| label2 = label2 text | data2 =
| label3 = label3 text | data3 =
| label4 = label4 text | data4 =
| header5 = _BLANK_
| label6 = label6 text | data6 = Some value, but does not trigger header1 or show header5
}}
<syntaxhighlight lang="moin" style="overflow:auto">
{{Infobox
| title = Example: header with & without data
| autoheaders = y
| headerstyle = background:lightgrey
| header1 = Header1 with empty section
| label2 = label2 text | data2 =
| label3 = label3 text | data3 =
| label4 = label4 text | data4 =
| header5 = _BLANK_
| label6 = label6 text | data6 = Some value, but does not trigger header1 or show header5
}}
</syntaxhighlight>{{clear}}
=== Footer ===
; below : Text to put in the bottom cell. The bottom cell is intended for footnotes, see-also, and other such information.
== Presentation parameters ==
=== Italic titles ===
Titles of articles with infoboxes may be made italic, in line with [[WP:ITALICTITLE]], by passing the <code>italic title</code> parameter.
* Turn on italic titles by passing {{para|italic title|<nowiki>{{{italic title|}}}</nowiki>}} from the infobox.
* Turn off by default (notably because only Latin script may be safely rendered in this style and italic may be needed to distinguish foreign language from local English language only in that script, but would be difficult to read for other scripts) but allow some instances to be made italic by passing {{para|italic title|<nowiki>{{{italic title|no}}}</nowiki>}}
* Do not make any titles italic by not passing the parameter at all.
=== CSS styling ===
{{div col}}
; bodystyle : Applies to the infobox table as a whole
; titlestyle : Applies only to the title caption. Adding a background color is usually inadvisable since the text is rendered "outside" the infobox.
; abovestyle : Applies only to the "above" cell at the top. The default style has font-size:125%; since this cell is usually used for a title, if you want to use the above cell for regular-sized text include "font-size:100%;" in the abovestyle.
; imagestyle : Applies to the cell the image is in. This includes the text of the image caption, but you should set text properties with captionstyle instead of imagestyle in case the caption is moved out of this cell in the future.
; captionstyle : Applies to the text of the image caption.
; rowstyle(n) : This parameter is inserted into the <code>style</code> attribute for the specified row.
; headerstyle : Applies to all header cells
; subheaderstyle : Applies to all subheader cells
; labelstyle : Applies to all label cells
; datastyle : Applies to all data cells
; belowstyle : Applies only to the below cell
{{div col end}}
=== HTML classes and microformats ===
{{div col}}
; bodyclass : This parameter is inserted into the <code>class</code> attribute for the infobox as a whole.
; titleclass : This parameter is inserted into the <code>class</code> attribute for the infobox's '''title''' caption.
<!-- currently not implemented in Lua module
; aboverowclass : This parameter is inserted into the <code>class</code> attribute for the complete table row the '''above''' cell is on.
-->
; aboveclass : This parameter is inserted into the <code>class</code> attribute for the infobox's '''above''' cell.
; subheaderrowclass(n) : This parameter is inserted into the <code>class</code> attribute for the complete table row the '''subheader''' is on.
; subheaderclass(n) : This parameter is inserted into the <code>class</code> attribute for the infobox's '''subheader'''.
; imagerowclass(n) : These parameters are inserted into the <code>class</code> attribute for the complete table row their respective '''image''' is on.
; imageclass : This parameter is inserted into the <code>class</code> attribute for the '''image'''.
; rowclass(n) : This parameter is inserted into the <code>class</code> attribute for the specified row including the '''label''' and '''data''' cells.
; class(n) : This parameter is inserted into the <code>class</code> attribute for the '''data''' cell of the specified row. If there's no '''data''' cell it has no effect.
<!-- currently not implemented in Lua module
; belowrowclass : This parameter is inserted into the <code>class</code> attribute for the complete table row the '''below''' cell is on.
-->
; belowclass : This parameter is inserted into the <code>class</code> attribute for the infobox's '''below''' cell.
{{div col end}}
This template supports the addition of microformat information. This is done by adding "class" attributes to various data cells, indicating what kind of information is contained within. Multiple class names may be specified, separated by spaces, some of them being used as selectors for custom styling according to a project policy or to the skin selected in user preferences, others being used for microformats.
To flag an infobox as containing [[hCard]] information, for example, add the following parameter:
<pre style="overflow:auto">
| bodyclass = vcard
</pre>{{clear}}
And for each row containing a data cell that's part of the vcard, add a corresponding class parameter:
<pre style="overflow:auto">
| class1 = fn
| class2 = org
| class3 = tel
</pre>{{clear}}
...and so forth. "above" and "title" can also be given classes, since these are usually used to display the name of the subject of the infobox.
See [[Wikipedia:WikiProject Microformats]] for more information on adding microformat information to Wikipedia, and [[microformat]] for more information on microformats in general.
== Examples ==
Notice how the row doesn't appear in the displayed infobox when a '''label''' is defined without an accompanying '''data''' cell, and how all of them are displayed when a '''header''' is defined on the same row as a '''data''' cell. Also notice that '''subheaders''' are not bold by default like the '''headers''' used to split the main data section, because this role is meant to be for the '''above''' cell :
{{Infobox
|name = Infobox/doc
|bodystyle =
|titlestyle =
|abovestyle = background:#cfc;
|subheaderstyle =
|title = Test Infobox
|above = Above text
|subheader = Subheader above image
|subheader2 = Second subheader
|imagestyle =
|captionstyle =
|image = [[File:Example-serious.jpg|200px|alt=Example alt text]]
|caption = Caption displayed below File:Example-serious.jpg
|headerstyle = background:#ccf;
|labelstyle = background:#ddf;
|datastyle =
|header1 = Header defined alone
| label1 =
| data1 =
|header2 =
| label2 = Label defined alone does not display (needs data, or is suppressed)
| data2 =
|header3 =
| label3 =
| data3 = Data defined alone
|header4 = All three defined (header, label, data, all with same number)
| label4 = does not display (same number as a header)
| data4 = does not display (same number as a header)
|header5 =
| label5 = Label and data defined (label)
| data5 = Label and data defined (data)
|belowstyle = background:#ddf;
|below = Below text
}}
<syntaxhighlight lang="Sass" style="overflow:auto" highlight="15">
{{Infobox
|name = {{subst:PAGENAME}}
|bodystyle =
|titlestyle =
|abovestyle = background:#cfc;
|subheaderstyle =
|title = Test Infobox
|above = Above text
|subheader = Subheader above image
|subheader2 = Second subheader
|imagestyle =
|captionstyle =
| image = [[File:Example-serious.jpg|200px|alt=Example alt text]]
|caption = Caption displayed below Example-serious.jpg
|headerstyle = background:#ccf;
|labelstyle = background:#ddf;
|datastyle =
|header1 = Header defined alone
| label1 =
| data1 =
|header2 =
| label2 = Label defined alone does not display (needs data, or is suppressed)
| data2 =
|header3 =
| label3 =
| data3 = Data defined alone
|header4 = All three defined (header, label, data, all with same number)
| label4 = does not display (same number as a header)
| data4 = does not display (same number as a header)
|header5 =
| label5 = Label and data defined (label)
| data5 = Label and data defined (data)
|belowstyle = background:#ddf;
|below = Below text
}}
</syntaxhighlight>{{clear}}
For this example, the {{para|bodystyle}} and {{para|labelstyle}} parameters are used to adjust the infobox width and define a default width for the column of labels:
{{Infobox
|name = Infobox/doc
|bodystyle = width:20em
|titlestyle =
|title = Test Infobox
|headerstyle =
|labelstyle = width:33%
|datastyle =
|header1 =
| label1 = Label 1
| data1 = Data 1
|header2 =
| label2 = Label 2
| data2 = Data 2
|header3 =
| label3 = Label 3
| data3 = Data 3
|header4 = Header 4
| label4 =
| data4 =
|header5 =
| label5 = Label 5
| data5 = Data 5: Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
|belowstyle =
|below = Below text
}}
<syntaxhighlight lang="sass" highlight="3,9" style="overflow: auto">
{{Infobox
|name = {{subst:PAGENAME}}
|bodystyle = width:20em
|titlestyle =
|title = Test Infobox
|headerstyle =
|labelstyle = width:33%
|datastyle =
|header1 =
| label1 = Label 1
| data1 = Data 1
|header2 =
| label2 = Label 2
| data2 = Data 2
|header3 =
| label3 = Label 3
| data3 = Data 3
|header4 = Header 4
| label4 =
| data4 =
|header5 =
| label5 = Label 5
| data5 = Data 5: Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
|belowstyle =
|below = Below text
}}
</syntaxhighlight>{{clear}}
== Embedding ==
<!--Linked from [[Template:Subinfobox bodystyle/doc]]-->
One infobox template can be embedded into another using the {{para|child}} parameter. This feature can be used to create a modular infobox, or to create better-defined logical sections. Long ago, it was necessary to use embedding in order to create infoboxes with more than 99 rows; but nowadays there's no limit to the number of rows that can be defined in a single instance of <code><nowiki>{{infobox}}</nowiki></code>.
{{Infobox
| title = Top level title
| data1 = {{Infobox | decat = yes | child = yes
| title = First subsection
| label1= Label 1.1
| data1 = Data 1.1
}}
| data2 = {{Infobox | decat = yes | child = yes
|title = Second subsection
| label1= Label 2.1
| data1 = Data 2.1
}}
| belowstyle =
| below = Below text
}}
<pre style="overflow:auto">
{{Infobox
| title = Top level title
| data1 = {{Infobox | decat = yes | child = yes
| title = First subsection
| label1= Label 1.1
| data1 = Data 1.1
}}
| data2 = {{Infobox | decat = yes | child = yes
|title = Second subsection
| label1= Label 2.1
| data1 = Data 2.1
}}
| belowstyle =
| below = Below text
}}
</pre>{{clear}}
Note, in the examples above, the child infobox is placed in a <code>data</code> field, not a <code>header</code> field. Notice that the section subheadings are not in bold font if bolding is not explicitly specified. To obtain bold section headings, place the child infobox in a '''header''' field (but not in a '''label''' field because it would not be displayed!), either using
{{Infobox
| title = Top level title
| header1 = {{Infobox | decat = yes | child = yes
| title = First subsection
| label1= Label 1.1
| data1 = Data 1.1
}}
| header2 = {{Infobox | decat = yes | child = yes
| title = Second subsection
| label1= Label 2.1
| data1 = Data 2.1
}}
| belowstyle =
| below = Below text
}}
<pre style="overflow:auto">
{{Infobox
| title = Top level title
| header1 = {{Infobox | decat = yes | child = yes
| title = First subsection
| label1= Label 1.1
| data1 = Data 1.1
}}
| header2 = {{Infobox | decat = yes | child = yes
| title = Second subsection
| label1= Label 2.1
| data1 = Data 2.1
}}
| belowstyle =
| below = Below text
}}
</pre>{{clear}}
or,
{{Infobox
| title = Top level title
| header1 = First subsection
{{Infobox | decat = yes | child = yes
| label1 = Label 1.1
| data1 = Data 1.1
}}
| header2 = Second subsection
{{Infobox | decat = yes | child = yes
| label1 = Label 2.1
| data1 = Data 2.1
}}
| belowstyle =
| below = Below text
}}
<pre style="overflow:auto">
{{Infobox
| title = Top level title
| header1 = First subsection
{{Infobox | decat = yes | child = yes
| label1 = Label 1.1
| data1 = Data 1.1
}}
| header2 = Second subsection
{{Infobox | decat = yes | child = yes
| label1 = Label 2.1
| data1 = Data 2.1
}}
| belowstyle =
| below = Below text
}}
</pre>{{clear}}
Note that omitting the {{para|title}} parameter, and not including any text preceding the embedded infobox, may result in spurious blank table rows, creating gaps in the visual presentation. The garbage output can be suppressed using {{para|rowstyleN|display: none}}, replacing N with the data/header number.
[[Wikipedia:WikiProject Infoboxes/embed]] includes some links to Wikipedia articles which include infoboxes embedded within other infoboxes.
== Subboxes ==
An alternative method for embedding is to use {{para|subbox|yes}}, which removes the outer border from the infobox, but preserves the interior structure. One feature of this approach is that the parent and child boxes need not have the same structure, and the label and data fields are not aligned between the parent and child boxes because they are not in the same parent table.
{{Infobox
| headerstyle = background-color:#eee;
| labelstyle = background-color:#eee;
| header1 = Main 1
| header2 = Main 2
| data3 = {{Infobox | subbox = yes
| headerstyle = background-color:#ccc;
| labelstyle = background-color:#ddd;
| header1 = Sub 3-1
| header2 = Sub 3-2
| label3 = Label 3-3 | data3 = Data 3-3
}}
| data4 = {{Infobox | subbox = yes
| labelstyle = background-color:#ccc;
| label1 = Label 4-1 | data1 = Data 4-1
}}
| label5 = Label 5 | data5 = Data 5
| header6 = Main 6
}}
<syntaxhighlight lang="sass" style="overflow:auto">
{{Infobox
| headerstyle = background-color:#eee;
| labelstyle = background-color:#eee;
| header1 = Main 1
| header2 = Main 2
| data3 = {{Infobox | subbox = yes
| headerstyle = background-color:#ccc;
| labelstyle = background-color:#ddd;
| header1 = Sub 3-1
| header2 = Sub 3-2
| label3 = Label 3-3 | data3 = Data 3-3
}}
| data4 = {{Infobox | subbox = yes
| labelstyle = background-color:#ccc;
| label1 = Label 4-1 | data1 = Data 4-1
}}
| label5 = Label 5 | data5 = Data 5
| header6 = Main 6
}}
</syntaxhighlight>{{clear}}
Similar embedding techniques may be used within content parameters of some other templates generating tables (such as [[:Template:Sidebar|Sidebar]]) :
{{Sidebar
| navbar = off
| headingstyle = background-color:#eee;
| heading1 = Heading 1
| heading2 = Heading 2
| content3 = {{Infobox | subbox = yes
| headerstyle = background-color:#ccc;
| labelstyle = background-color:#ddd;
| header1 = Sub 3-1
| header2 = Sub 3-2
| label3 = Label 3-3 | data3 = Data 3-3
}}
| content4 = {{Infobox | subbox = yes
| labelstyle = background-color:#ccc;
| label1 = Label 4-1 | data1 = Data 4-1
}}
| heading5 = Heading 5
}}
<syntaxhighlight lang="sass" style="overflow:auto">
{{Sidebar
| navbar = off
| headingstyle = background-color:#eee;
| heading1 = Heading 1
| heading2 = Heading 2
| content3 = {{Infobox | subbox = yes
| headerstyle = background-color:#ccc;
| labelstyle = background-color:#ddd;
| header1 = Sub 3-1
| header2 = Sub 3-2
| label3 = Label 3-3 | data3 = Data 3-3
}}
| content4 = {{Infobox | subbox = yes
| labelstyle = background-color:#ccc;
| label1 = Label 4-1 | data1 = Data 4-1
}}
| heading5 = Heading 5
}}
</syntaxhighlight>{{clear}}
Note that the default padding of the parent data cell containing each subbox is still visible, so the subboxes are slightly narrower than the parent box and there's a higher vertical spacing between standard cells of the parent box than between cells of distinct subboxes.
== Controlling line-breaking in embedded bulletless lists ==
Template {{tlx|nbsp}} may be used with {{tlx|wbr}} and {{tlx|nowrap}} to control line-breaking in bulletless lists embedded in infoboxes (e.g. cast list in {{tlx|Infobox film}}), to prevent wrapped long entries from being confused with multiple entries. See [[Template:Wbr/doc#Controlling line-breaking in infoboxes]] for details.
== Full blank syntax ==
(Note: there is no limit to the number of possible rows; only 20 are given below since infoboxes larger than that will be relatively rare. Just extend the numbering as needed. The microformat "class" parameters are also omitted as they are not commonly used.)
<pre style="overflow:auto">
{{Infobox
| name = {{subst:PAGENAME}}
| child = {{{child|}}}
| subbox = {{{subbox|}}}
| italic title = {{{italic title|no}}}
| templatestyles =
| child templatestyles =
| grandchild templatestyles =
| bodystyle =
| titlestyle =
| abovestyle =
| subheaderstyle =
| title =
| above =
| subheader =
| imagestyle =
| captionstyle =
| image =
| caption =
| image2 =
| caption2 =
| headerstyle =
| labelstyle =
| datastyle =
| header1 =
| label1 =
| data1 =
| header2 =
| label2 =
| data2 =
| header3 =
| label3 =
| data3 =
| header4 =
| label4 =
| data4 =
| header5 =
| label5 =
| data5 =
| header6 =
| label6 =
| data6 =
| header7 =
| label7 =
| data7 =
| header8 =
| label8 =
| data8 =
| header9 =
| label9 =
| data9 =
| header10 =
| label10 =
| data10 =
| header11 =
| label11 =
| data11 =
| header12 =
| label12 =
| data12 =
| header13 =
| label13 =
| data13 =
| header14 =
| label14 =
| data14 =
| header15 =
| label15 =
| data15 =
| header16 =
| label16 =
| data16 =
| header17 =
| label17 =
| data17 =
| header18 =
| label18 =
| data18 =
| header19 =
| label19 =
| data19 =
| header20 =
| label20 =
| data20 =
| belowstyle =
| below =
}}
</pre>{{clear}}
{{Help:Infobox/user style}}
== Porting to other MediaWikis ==
The infobox template requires the [[:mw:Extension:Scribunto|Scribunto]] extension. [[Wikipedia:WikiProject Transwiki|WikiProject Transwiki]] has a version of this template that has been modified to work on other MediaWikis.
== TemplateData ==
{{TemplateData header}}
<templatedata>
{
"description": "This template is intended as a meta template, a template used for constructing other templates. In general, it is not meant for use directly in an article but can be used on a one-off basis if required.",
"format": "{{_\n| ________________ = _\n}}\n",
"params": {
"title": {
"label": "Title",
"description": "Title displayed above the infobox",
"type": "string",
"suggested": true
},
"image": {
"label": "Image",
"description": "Image illustrating the topic. Use full image syntax.",
"type": "content",
"suggested": true,
"example": "[[File:example.png|200px|alt=Example alt text]]"
},
"caption": {
"label": "Caption",
"description": "caption for the image",
"type": "content",
"suggested": true
}
},
"paramOrder": [
"title",
"image",
"caption"
]
}
</templatedata>
==Tracking categories==
* {{Category link with count|Articles with missing Wikidata information}}
* {{Category link with count|Articles using infobox templates with no data rows}}
* {{Category link with count|Pages using embedded infobox templates with the title parameter}}
==See also==
* [[Module:Infobox]], the [[WP:LUA|Lua]] module on which this template is based
* [[Module:Check for unknown parameters]]
* {{tl|Infobox3cols}}
* {{tl|Navbox}} and {{tl|Sidebar}}
* [[Wikipedia:List of infoboxes|List of infoboxes]]
* [[:Module:InfoboxImage]]
<includeonly>{{Sandbox other||
[[Category:Infobox templates| ]]
[[Category:Wikipedia metatemplates|Infobox]]
[[Category:Templates generating microformats]]
[[Category:Templates that add a tracking category]]
[[Category:Templates based on the Infobox Lua module]]
}}</includeonly>
926c7o5nmdcbslbywrayti7ol9ivvxh
Module:Infobox
828
1548
14967
2022-07-16T00:31:40Z
Kambai Akau
15
Created page with "local p = {} local args = {} local origArgs = {} local root local empty_row_categories = {} local category_in_empty_row_pattern = '%[%[%s*[Cc][Aa][Tt][Ee][Gg][Oo][Rr][Yy]%s*:[^]]*]]' local has_rows = false local function fixChildBoxes(sval, tt) local function notempty( s ) return s and s:match( '%S' ) end if notempty(sval) then local marker = '<span class=special_infobox_marker>' local s = sval -- start moving templatestyles and categories inside of table rows..."
Scribunto
text/plain
local p = {}
local args = {}
local origArgs = {}
local root
local empty_row_categories = {}
local category_in_empty_row_pattern = '%[%[%s*[Cc][Aa][Tt][Ee][Gg][Oo][Rr][Yy]%s*:[^]]*]]'
local has_rows = false
local function fixChildBoxes(sval, tt)
local function notempty( s ) return s and s:match( '%S' ) end
if notempty(sval) then
local marker = '<span class=special_infobox_marker>'
local s = sval
-- start moving templatestyles and categories inside of table rows
local slast = ''
while slast ~= s do
slast = s
s = mw.ustring.gsub(s, '(</[Tt][Rr]%s*>%s*)(%[%[%s*[Cc][Aa][Tt][Ee][Gg][Oo][Rr][Yy]%s*:[^]]*%]%])', '%2%1')
s = mw.ustring.gsub(s, '(</[Tt][Rr]%s*>%s*)(\127[^\127]*UNIQ%-%-templatestyles%-%x+%-QINU[^\127]*\127)', '%2%1')
end
-- end moving templatestyles and categories inside of table rows
s = mw.ustring.gsub(s, '(<%s*[Tt][Rr])', marker .. '%1')
s = mw.ustring.gsub(s, '(</[Tt][Rr]%s*>)', '%1' .. marker)
if s:match(marker) then
s = mw.ustring.gsub(s, marker .. '%s*' .. marker, '')
s = mw.ustring.gsub(s, '([\r\n]|-[^\r\n]*[\r\n])%s*' .. marker, '%1')
s = mw.ustring.gsub(s, marker .. '%s*([\r\n]|-)', '%1')
s = mw.ustring.gsub(s, '(</[Cc][Aa][Pp][Tt][Ii][Oo][Nn]%s*>%s*)' .. marker, '%1')
s = mw.ustring.gsub(s, '(<%s*[Tt][Aa][Bb][Ll][Ee][^<>]*>%s*)' .. marker, '%1')
s = mw.ustring.gsub(s, '^(%{|[^\r\n]*[\r\n]%s*)' .. marker, '%1')
s = mw.ustring.gsub(s, '([\r\n]%{|[^\r\n]*[\r\n]%s*)' .. marker, '%1')
s = mw.ustring.gsub(s, marker .. '(%s*</[Tt][Aa][Bb][Ll][Ee]%s*>)', '%1')
s = mw.ustring.gsub(s, marker .. '(%s*\n|%})', '%1')
end
if s:match(marker) then
local subcells = mw.text.split(s, marker)
s = ''
for k = 1, #subcells do
if k == 1 then
s = s .. subcells[k] .. '</' .. tt .. '></tr>'
elseif k == #subcells then
local rowstyle = ' style="display:none"'
if notempty(subcells[k]) then rowstyle = '' end
s = s .. '<tr' .. rowstyle ..'><' .. tt .. ' colspan=2>\n' ..
subcells[k]
elseif notempty(subcells[k]) then
if (k % 2) == 0 then
s = s .. subcells[k]
else
s = s .. '<tr><' .. tt .. ' colspan=2>\n' ..
subcells[k] .. '</' .. tt .. '></tr>'
end
end
end
end
-- the next two lines add a newline at the end of lists for the PHP parser
-- [[Special:Diff/849054481]]
-- remove when [[:phab:T191516]] is fixed or OBE
s = mw.ustring.gsub(s, '([\r\n][%*#;:][^\r\n]*)$', '%1\n')
s = mw.ustring.gsub(s, '^([%*#;:][^\r\n]*)$', '%1\n')
s = mw.ustring.gsub(s, '^([%*#;:])', '\n%1')
s = mw.ustring.gsub(s, '^(%{%|)', '\n%1')
return s
else
return sval
end
end
-- Cleans empty tables
local function cleanInfobox()
root = tostring(root)
if has_rows == false then
root = mw.ustring.gsub(root, '<table[^<>]*>%s*</table>', '')
end
end
-- Returns the union of the values of two tables, as a sequence.
local function union(t1, t2)
local vals = {}
for k, v in pairs(t1) do
vals[v] = true
end
for k, v in pairs(t2) do
vals[v] = true
end
local ret = {}
for k, v in pairs(vals) do
table.insert(ret, k)
end
return ret
end
-- Returns a table containing the numbers of the arguments that exist
-- for the specified prefix. For example, if the prefix was 'data', and
-- 'data1', 'data2', and 'data5' exist, it would return {1, 2, 5}.
local function getArgNums(prefix)
local nums = {}
for k, v in pairs(args) do
local num = tostring(k):match('^' .. prefix .. '([1-9]%d*)$')
if num then table.insert(nums, tonumber(num)) end
end
table.sort(nums)
return nums
end
-- Adds a row to the infobox, with either a header cell
-- or a label/data cell combination.
local function addRow(rowArgs)
if rowArgs.header and rowArgs.header ~= '_BLANK_' then
has_rows = true
root
:tag('tr')
:addClass(rowArgs.rowclass)
:cssText(rowArgs.rowstyle)
:tag('th')
:attr('colspan', '2')
:addClass('infobox-header')
:addClass(rowArgs.class)
:addClass(args.headerclass)
-- @deprecated next; target .infobox-<name> .infobox-header
:cssText(args.headerstyle)
:cssText(rowArgs.rowcellstyle)
:wikitext(fixChildBoxes(rowArgs.header, 'th'))
if rowArgs.data then
root:wikitext(
'[[Category:Pages using infobox templates with ignored data cells]]'
)
end
elseif rowArgs.data and rowArgs.data:gsub(
category_in_empty_row_pattern, ''
):match('^%S') then
has_rows = true
local row = root:tag('tr')
row:addClass(rowArgs.rowclass)
row:cssText(rowArgs.rowstyle)
if rowArgs.label then
row
:tag('th')
:attr('scope', 'row')
:addClass('infobox-label')
-- @deprecated next; target .infobox-<name> .infobox-label
:cssText(args.labelstyle)
:cssText(rowArgs.rowcellstyle)
:wikitext(rowArgs.label)
:done()
end
local dataCell = row:tag('td')
dataCell
:attr('colspan', not rowArgs.label and '2' or nil)
:addClass(not rowArgs.label and 'infobox-full-data' or 'infobox-data')
:addClass(rowArgs.class)
-- @deprecated next; target .infobox-<name> .infobox(-full)-data
:cssText(rowArgs.datastyle)
:cssText(rowArgs.rowcellstyle)
:wikitext(fixChildBoxes(rowArgs.data, 'td'))
else
table.insert(empty_row_categories, rowArgs.data or '')
end
end
local function renderTitle()
if not args.title then return end
has_rows = true
root
:tag('caption')
:addClass('infobox-title')
:addClass(args.titleclass)
-- @deprecated next; target .infobox-<name> .infobox-title
:cssText(args.titlestyle)
:wikitext(args.title)
end
local function renderAboveRow()
if not args.above then return end
has_rows = true
root
:tag('tr')
:tag('th')
:attr('colspan', '2')
:addClass('infobox-above')
:addClass(args.aboveclass)
-- @deprecated next; target .infobox-<name> .infobox-above
:cssText(args.abovestyle)
:wikitext(fixChildBoxes(args.above,'th'))
end
local function renderBelowRow()
if not args.below then return end
has_rows = true
root
:tag('tr')
:tag('td')
:attr('colspan', '2')
:addClass('infobox-below')
:addClass(args.belowclass)
-- @deprecated next; target .infobox-<name> .infobox-below
:cssText(args.belowstyle)
:wikitext(fixChildBoxes(args.below,'td'))
end
local function addSubheaderRow(subheaderArgs)
if subheaderArgs.data and
subheaderArgs.data:gsub(category_in_empty_row_pattern, ''):match('^%S') then
has_rows = true
local row = root:tag('tr')
row:addClass(subheaderArgs.rowclass)
local dataCell = row:tag('td')
dataCell
:attr('colspan', '2')
:addClass('infobox-subheader')
:addClass(subheaderArgs.class)
:cssText(subheaderArgs.datastyle)
:cssText(subheaderArgs.rowcellstyle)
:wikitext(fixChildBoxes(subheaderArgs.data, 'td'))
else
table.insert(empty_row_categories, subheaderArgs.data or '')
end
end
local function renderSubheaders()
if args.subheader then
args.subheader1 = args.subheader
end
if args.subheaderrowclass then
args.subheaderrowclass1 = args.subheaderrowclass
end
local subheadernums = getArgNums('subheader')
for k, num in ipairs(subheadernums) do
addSubheaderRow({
data = args['subheader' .. tostring(num)],
-- @deprecated next; target .infobox-<name> .infobox-subheader
datastyle = args.subheaderstyle,
rowcellstyle = args['subheaderstyle' .. tostring(num)],
class = args.subheaderclass,
rowclass = args['subheaderrowclass' .. tostring(num)]
})
end
end
local function addImageRow(imageArgs)
if imageArgs.data and
imageArgs.data:gsub(category_in_empty_row_pattern, ''):match('^%S') then
has_rows = true
local row = root:tag('tr')
row:addClass(imageArgs.rowclass)
local dataCell = row:tag('td')
dataCell
:attr('colspan', '2')
:addClass('infobox-image')
:addClass(imageArgs.class)
:cssText(imageArgs.datastyle)
:wikitext(fixChildBoxes(imageArgs.data, 'td'))
else
table.insert(empty_row_categories, imageArgs.data or '')
end
end
local function renderImages()
if args.image then
args.image1 = args.image
end
if args.caption then
args.caption1 = args.caption
end
local imagenums = getArgNums('image')
for k, num in ipairs(imagenums) do
local caption = args['caption' .. tostring(num)]
local data = mw.html.create():wikitext(args['image' .. tostring(num)])
if caption then
data
:tag('div')
:addClass('infobox-caption')
-- @deprecated next; target .infobox-<name> .infobox-caption
:cssText(args.captionstyle)
:wikitext(caption)
end
addImageRow({
data = tostring(data),
-- @deprecated next; target .infobox-<name> .infobox-image
datastyle = args.imagestyle,
class = args.imageclass,
rowclass = args['imagerowclass' .. tostring(num)]
})
end
end
-- When autoheaders are turned on, preprocesses the rows
local function preprocessRows()
if not args.autoheaders then return end
local rownums = union(getArgNums('header'), getArgNums('data'))
table.sort(rownums)
local lastheader
for k, num in ipairs(rownums) do
if args['header' .. tostring(num)] then
if lastheader then
args['header' .. tostring(lastheader)] = nil
end
lastheader = num
elseif args['data' .. tostring(num)] and
args['data' .. tostring(num)]:gsub(
category_in_empty_row_pattern, ''
):match('^%S') then
local data = args['data' .. tostring(num)]
if data:gsub(category_in_empty_row_pattern, ''):match('%S') then
lastheader = nil
end
end
end
if lastheader then
args['header' .. tostring(lastheader)] = nil
end
end
-- Gets the union of the header and data argument numbers,
-- and renders them all in order
local function renderRows()
local rownums = union(getArgNums('header'), getArgNums('data'))
table.sort(rownums)
for k, num in ipairs(rownums) do
addRow({
header = args['header' .. tostring(num)],
label = args['label' .. tostring(num)],
data = args['data' .. tostring(num)],
datastyle = args.datastyle,
class = args['class' .. tostring(num)],
rowclass = args['rowclass' .. tostring(num)],
-- @deprecated next; target .infobox-<name> rowclass
rowstyle = args['rowstyle' .. tostring(num)],
rowcellstyle = args['rowcellstyle' .. tostring(num)]
})
end
end
local function renderNavBar()
if not args.name then return end
has_rows = true
root
:tag('tr')
:tag('td')
:attr('colspan', '2')
:addClass('infobox-navbar')
:wikitext(require('Module:Navbar')._navbar{
args.name,
mini = 1,
})
end
local function renderItalicTitle()
local italicTitle = args['italic title'] and mw.ustring.lower(args['italic title'])
if italicTitle == '' or italicTitle == 'force' or italicTitle == 'yes' then
root:wikitext(mw.getCurrentFrame():expandTemplate({title = 'italic title'}))
end
end
-- Categories in otherwise empty rows are collected in empty_row_categories.
-- This function adds them to the module output. It is not affected by
-- args.decat because this module should not prevent module-external categories
-- from rendering.
local function renderEmptyRowCategories()
for _, s in ipairs(empty_row_categories) do
root:wikitext(s)
end
end
-- Render tracking categories. args.decat == turns off tracking categories.
local function renderTrackingCategories()
if args.decat == 'yes' then return end
if args.child == 'yes' then
if args.title then
root:wikitext(
'[[Category:Pages using embedded infobox templates with the title parameter]]'
)
end
elseif #(getArgNums('data')) == 0 and mw.title.getCurrentTitle().namespace == 0 then
root:wikitext('[[Category:Articles using infobox templates with no data rows]]')
end
end
--[=[
Loads the templatestyles for the infobox.
TODO: FINISH loading base templatestyles here rather than in
MediaWiki:Common.css. There are 4-5000 pages with 'raw' infobox tables.
See [[Mediawiki_talk:Common.css/to_do#Infobox]] and/or come help :).
When we do this we should clean up the inline CSS below too.
Will have to do some bizarre conversion category like with sidebar.
]=]
local function loadTemplateStyles()
local frame = mw.getCurrentFrame()
-- See function description
local base_templatestyles = frame:extensionTag{
name = 'templatestyles', args = { src = 'Module:Infobox/styles.css' }
}
local templatestyles = ''
if args['templatestyles'] then templatestyles = frame:extensionTag{
name = 'templatestyles', args = { src = args['templatestyles'] }
}
end
local child_templatestyles = ''
if args['child templatestyles'] then child_templatestyles = frame:extensionTag{
name = 'templatestyles', args = { src = args['child templatestyles'] }
}
end
local grandchild_templatestyles = ''
if args['grandchild templatestyles'] then grandchild_templatestyles = frame:extensionTag{
name = 'templatestyles', args = { src = args['grandchild templatestyles'] }
}
end
return table.concat({
base_templatestyles, -- see function description
templatestyles,
child_templatestyles,
grandchild_templatestyles
})
end
-- common functions between the child and non child cases
local function structure_infobox_common()
renderSubheaders()
renderImages()
preprocessRows()
renderRows()
renderBelowRow()
renderNavBar()
renderItalicTitle()
renderEmptyRowCategories()
renderTrackingCategories()
cleanInfobox()
end
-- Specify the overall layout of the infobox, with special settings if the
-- infobox is used as a 'child' inside another infobox.
local function _infobox()
if args.child ~= 'yes' then
root = mw.html.create('table')
root
:addClass(args.subbox == 'yes' and 'infobox-subbox' or 'infobox')
:addClass(args.bodyclass)
-- @deprecated next; target .infobox-<name>
:cssText(args.bodystyle)
renderTitle()
renderAboveRow()
else
root = mw.html.create()
root
:wikitext(args.title)
end
structure_infobox_common()
return loadTemplateStyles() .. root
end
-- If the argument exists and isn't blank, add it to the argument table.
-- Blank arguments are treated as nil to match the behaviour of ParserFunctions.
local function preprocessSingleArg(argName)
if origArgs[argName] and origArgs[argName] ~= '' then
args[argName] = origArgs[argName]
end
end
-- Assign the parameters with the given prefixes to the args table, in order, in
-- batches of the step size specified. This is to prevent references etc. from
-- appearing in the wrong order. The prefixTable should be an array containing
-- tables, each of which has two possible fields, a "prefix" string and a
-- "depend" table. The function always parses parameters containing the "prefix"
-- string, but only parses parameters in the "depend" table if the prefix
-- parameter is present and non-blank.
local function preprocessArgs(prefixTable, step)
if type(prefixTable) ~= 'table' then
error("Non-table value detected for the prefix table", 2)
end
if type(step) ~= 'number' then
error("Invalid step value detected", 2)
end
-- Get arguments without a number suffix, and check for bad input.
for i,v in ipairs(prefixTable) do
if type(v) ~= 'table' or type(v.prefix) ~= "string" or
(v.depend and type(v.depend) ~= 'table') then
error('Invalid input detected to preprocessArgs prefix table', 2)
end
preprocessSingleArg(v.prefix)
-- Only parse the depend parameter if the prefix parameter is present
-- and not blank.
if args[v.prefix] and v.depend then
for j, dependValue in ipairs(v.depend) do
if type(dependValue) ~= 'string' then
error('Invalid "depend" parameter value detected in preprocessArgs')
end
preprocessSingleArg(dependValue)
end
end
end
-- Get arguments with number suffixes.
local a = 1 -- Counter variable.
local moreArgumentsExist = true
while moreArgumentsExist == true do
moreArgumentsExist = false
for i = a, a + step - 1 do
for j,v in ipairs(prefixTable) do
local prefixArgName = v.prefix .. tostring(i)
if origArgs[prefixArgName] then
-- Do another loop if any arguments are found, even blank ones.
moreArgumentsExist = true
preprocessSingleArg(prefixArgName)
end
-- Process the depend table if the prefix argument is present
-- and not blank, or we are processing "prefix1" and "prefix" is
-- present and not blank, and if the depend table is present.
if v.depend and (args[prefixArgName] or (i == 1 and args[v.prefix])) then
for j,dependValue in ipairs(v.depend) do
local dependArgName = dependValue .. tostring(i)
preprocessSingleArg(dependArgName)
end
end
end
end
a = a + step
end
end
-- Parse the data parameters in the same order that the old {{infobox}} did, so
-- that references etc. will display in the expected places. Parameters that
-- depend on another parameter are only processed if that parameter is present,
-- to avoid phantom references appearing in article reference lists.
local function parseDataParameters()
preprocessSingleArg('autoheaders')
preprocessSingleArg('child')
preprocessSingleArg('bodyclass')
preprocessSingleArg('subbox')
preprocessSingleArg('bodystyle')
preprocessSingleArg('title')
preprocessSingleArg('titleclass')
preprocessSingleArg('titlestyle')
preprocessSingleArg('above')
preprocessSingleArg('aboveclass')
preprocessSingleArg('abovestyle')
preprocessArgs({
{prefix = 'subheader', depend = {'subheaderstyle', 'subheaderrowclass'}}
}, 10)
preprocessSingleArg('subheaderstyle')
preprocessSingleArg('subheaderclass')
preprocessArgs({
{prefix = 'image', depend = {'caption', 'imagerowclass'}}
}, 10)
preprocessSingleArg('captionstyle')
preprocessSingleArg('imagestyle')
preprocessSingleArg('imageclass')
preprocessArgs({
{prefix = 'header'},
{prefix = 'data', depend = {'label'}},
{prefix = 'rowclass'},
{prefix = 'rowstyle'},
{prefix = 'rowcellstyle'},
{prefix = 'class'}
}, 50)
preprocessSingleArg('headerclass')
preprocessSingleArg('headerstyle')
preprocessSingleArg('labelstyle')
preprocessSingleArg('datastyle')
preprocessSingleArg('below')
preprocessSingleArg('belowclass')
preprocessSingleArg('belowstyle')
preprocessSingleArg('name')
-- different behaviour for italics if blank or absent
args['italic title'] = origArgs['italic title']
preprocessSingleArg('decat')
preprocessSingleArg('templatestyles')
preprocessSingleArg('child templatestyles')
preprocessSingleArg('grandchild templatestyles')
end
-- If called via #invoke, use the args passed into the invoking template.
-- Otherwise, for testing purposes, assume args are being passed directly in.
function p.infobox(frame)
if frame == mw.getCurrentFrame() then
origArgs = frame:getParent().args
else
origArgs = frame
end
parseDataParameters()
return _infobox()
end
-- For calling via #invoke within a template
function p.infoboxTemplate(frame)
origArgs = {}
for k,v in pairs(frame.args) do origArgs[k] = mw.text.trim(v) end
parseDataParameters()
return _infobox()
end
return p
0nrwbmsjupox6pg5hh6nvlk9r7dcw81
Module:Infobox/doc
828
1549
14968
2022-07-16T00:32:42Z
Kambai Akau
15
Created page with "{{High-use|3308957|all-pages = yes}} {{module rating|protected}} {{Lua|Module:Navbar}} {{Uses TemplateStyles|Module:Infobox/styles.css}} '''Module:Infobox''' is a [[WP:Module|module]] that implements the {{tl|Infobox}} template. Please see the template page for usage instructions. == Tracking categories == * {{clc|Pages using infobox templates with ignored data cells}} * {{clc|Articles using infobox templates with no data rows}} * {{clc|Pages using embedded infobox tem..."
wikitext
text/x-wiki
{{High-use|3308957|all-pages = yes}}
{{module rating|protected}}
{{Lua|Module:Navbar}}
{{Uses TemplateStyles|Module:Infobox/styles.css}}
'''Module:Infobox''' is a [[WP:Module|module]] that implements the {{tl|Infobox}} template. Please see the template page for usage instructions.
== Tracking categories ==
* {{clc|Pages using infobox templates with ignored data cells}}
* {{clc|Articles using infobox templates with no data rows}}
* {{clc|Pages using embedded infobox templates with the title parameter}}
<includeonly>{{#ifeq:{{SUBPAGENAME}}|sandbox||
[[Category:Modules that add a tracking category|{{PAGENAME}}]]
[[Category:Wikipedia infoboxes]]
[[Category:Infobox modules]]
[[Category:Modules that check for strip markers]]
}}</includeonly>
tqantf1astznocyi1k9f0lo348co88z
Module:Infobox/styles.css
828
1550
14969
2022-07-16T00:34:31Z
Kambai Akau
15
Created page with "/* {{pp|small=y}} */ /* * This TemplateStyles sheet deliberately does NOT include the full set of * infobox styles. We are still working to migrate all of the manual * infoboxes. See [[MediaWiki talk:Common.css/to do#Infobox]] * DO NOT ADD THEM HERE */ /* * not strictly certain these styles are necessary since the modules now * exclusively output infobox-subbox or infobox, not both * just replicating the module faithfully */ .infobox-subbox { padding: 0; borde..."
sanitized-css
text/css
/* {{pp|small=y}} */
/*
* This TemplateStyles sheet deliberately does NOT include the full set of
* infobox styles. We are still working to migrate all of the manual
* infoboxes. See [[MediaWiki talk:Common.css/to do#Infobox]]
* DO NOT ADD THEM HERE
*/
/*
* not strictly certain these styles are necessary since the modules now
* exclusively output infobox-subbox or infobox, not both
* just replicating the module faithfully
*/
.infobox-subbox {
padding: 0;
border: none;
margin: -3px;
width: auto;
min-width: 100%;
font-size: 100%;
clear: none;
float: none;
background-color: transparent;
}
.infobox-3cols-child {
margin: auto;
}
.infobox .navbar {
font-size: 100%;
}
/* T281642 */
body.skin-minerva .infobox-header,
body.skin-minerva .infobox-subheader,
body.skin-minerva .infobox-above,
body.skin-minerva .infobox-title,
body.skin-minerva .infobox-image,
body.skin-minerva .infobox-full-data,
body.skin-minerva .infobox-below {
text-align: center;
}
r79dlpm7l4hm8tdp6d2jr4blcsyis2v
Tyap
0
1551
14970
2022-07-16T13:10:11Z
Kambai Akau
15
Redirected page to [[Tyap (a̱lyem)]]
wikitext
text/x-wiki
#REDIRECT [[Tyap (a̱lyem)]]
4xmdd8tnmgh95z14ud2k5t6qm3hoaky
Ta̱mpi̱let:Commons category-inline
10
1552
14972
2022-07-16T21:10:46Z
Kambai Akau
15
Created page with "{{sister-inline |short={{{short|}}} |project=commonscat |list={{{list|}}} |extratext={{{extratext|}}} |links={{#invoke:Commons link|getCategory|{{{1|}}}|linktext={{{2|}}}|<!-- -->lcfirst={{if empty|{{{lcfirst|}}}|{{{lcf|}}}}}|nowrap={{{nowrap|}}}|italic={{{italic|}}}|<!-- -->tracking=1|qid={{{qid|}}}}}<!-- -->}}<noinclude>{{documentation}}</noinclude>"
wikitext
text/x-wiki
{{sister-inline
|short={{{short|}}}
|project=commonscat
|list={{{list|}}}
|extratext={{{extratext|}}}
|links={{#invoke:Commons link|getCategory|{{{1|}}}|linktext={{{2|}}}|<!--
-->lcfirst={{if empty|{{{lcfirst|}}}|{{{lcf|}}}}}|nowrap={{{nowrap|}}}|italic={{{italic|}}}|<!--
-->tracking=1|qid={{{qid|}}}}}<!--
-->}}<noinclude>{{documentation}}</noinclude>
05sayzbw6n1qmebq1bhui4u01d11v6q
Ta̱mpi̱let:Sister-inline
10
1553
16024
14973
2022-08-18T15:06:08Z
Kambai Akau
15
wikitext
text/x-wiki
[[File:{{#switch:{{lc:{{{project|}}}}}
| commons|commonscat = Commons-logo.svg
| meta|metawiki|m = Wikimedia Community Logo.svg
| wikibooks|wbk|wb|b = Wikibooks-logo-en-noslogan.svg
| wikidata|data = Wikidata-logo.svg
| cookbook = Wikibooks-logo-en-noslogan.svg
| wikijunior = Wikibooks-logo-en-noslogan.svg
| wikiquote|quote|wqt|q = Wikiquote-logo.svg
| wikipedia|wp|w = Wikipedia-logo-v2.svg
| wikisource|wikisource2|source|source2|ws|ws2|s|s2 = Wikisource-logo.svg
| wiktionary|wkt|wdy|d = Wiktionary-logo-en-v2.svg
| wikinews|news|wnw|n = Wikinews-logo.svg
| wikispecies|species = Wikispecies-logo.svg
| wikiversity|wvy|v = Wikiversity logo 2017.svg
| wikivoyage|voyage|voy = Wikivoyage-Logo-v3-icon.svg
| mediawiki|mw = Mediawiki.png
| outreachwiki|outreach = Wikimedia Outreach.png
| incubator = Incubator-notext.svg
| #default = Wikimedia-logo.svg
}}|16x16px|class=noviewer|alt=]] {{#if:{{{short|}}}|{{{links|}}}|{{#if:{{{list|}}}|{{#switch:{{lc:{{{project|}}}}}
| commons = Nyinyiit shei nkhang a̱meang shyia̱ Wikimedia Commons
| commonscat = Si̱sa a̱meang shyia̱ Wikimedia Commons
| meta|metawiki|m =
| wikibooks|wbk|wb|b = Lyuut shyia̱ Wikibooks
| wikidata|data =
| cookbook = Cookbooks at Wikibooks
| wikijunior = Wikijunior at Wikibooks
| wikiquote|quote|wqt|q = Quotations on Wikiquote
| wikipedia|wp|w =
| wikisource|wikisource2|source|source2|ws|ws2|s|s2 = Texts on Wikisource
| wiktionary|wkt|wdy|d = Definitions and translations at Wiktionary
| wikinews|news|wnw|n =
| wikispecies|species = Data related to Wikispecies
| wikiversity|wvy|v = Learning materials from Wikiversity
| wikivoyage|voyage|voy = Travel information on Wikivoyage
| mediawiki|mw =
| outreachwiki|outreach =
| incubator =
| #default = }}:
{{{list}}}|{{#switch:{{lc:{{{project|}}}}}
| commons = Media related to {{{links|}}} at Wikimedia Commons
| commonscat = Media related to {{{links|}}} at Wikimedia Commons
| meta|metawiki|m =
| wikibooks|wbk|wb|b = {{{links|}}} at Wikibooks{{{extratext|}}}
| wikidata|data =
| cookbook = {{{links|}}} at the Wikibooks Cookbook subproject{{{extratext|}}}
| wikijunior = {{{links|}}} at the Wikibooks Wikijunior subproject{{{extratext|}}}
| wikiquote|quote|wqt|q = Quotations related to {{{links|}}} at Wikiquote
| wikipedia|wp|w =
| wikisource|source|ws|s = Works related to {{{links|}}} at Wikisource
| wikisource2|source2|ws2|s2 = The full text of {{{links|}}} at Wikisource
| wiktionary|wkt|wdy|d = The dictionary definition of {{{links|}}} at Wiktionary
| wikinews|news|wnw|n =
| wikispecies|species = Data related to {{{links|}}} at Wikispecies
| wikiversity|wvy|v = Learning materials related to {{{links|}}} at Wikiversity
| wikivoyage|voyage|voy = {{{links|}}} travel guide from Wikivoyage
| mediawiki|mw =
| outreachwiki|outreach =
| incubator =
| #default = }}{{{extratext|}}}}}
}}<noinclude>
{{documentation}}
</noinclude>
k8rzrsti7rlpcsoy2rcyqabkchoc5gq
Ta̱mpi̱let:Sister-inline/doc
10
1554
16027
16026
2022-08-18T15:09:29Z
Kambai Akau
15
wikitext
text/x-wiki
{{Documentation subpage}}
<!-- Please place categories where indicated at the bottom of this page and interwikis at Wikidata (see [[Wikipedia:Wikidata]]) -->
{{High-use}}
This is a meta-template used for creating interwiki links to other [[WP:sister projects|sister projects]] of Wikipedia. Note that links to other ''language'' Wikipedias should ''not'' use links in this form, instead use [[WP:Wikidata|Wikidata]] to add them to the sidebar.
This is a companion template to {{tl|ta̱m a̱meang}} to be used where a floating side box causes layout problems on short articles.
== Usage ==
This template should normally be placed at the top of the ''External links'' section at the end of an article, if the article has a section for [[WP:EL|external links]]. If no such section exists, then please place it at the top of the last section in <nowiki>the article</nowiki>.
On [[WP:DAB|disambiguation pages]], this template should be listed above other text, but below any cleanup templates, images, infoboxes or navboxes.<!-- Per WP:ACCESS, cleanup templates, images, infoboxes, and navboxes are always<nowiki> first</nowiki>. -->
*'''{{para|project}}''' The sister project to link to. Used to select the displayed logo and the text.
*'''{{para|links}}''' A single interwiki link to the article at the sister project. Displays with text such as "Media related to <code><nowiki>{{{links}}}</nowiki></code> at Wikimedia Commons"
*'''{{para|list}}''' Alternatively, a list of multiple links to articles at sister projects. Displays with text such as "Related media at Wikimedia Commons: <code><nowiki>{{{list}}}</nowiki></code>"
'''Example:'''
<pre>
{{sister-inline
|project=commons
|links=[[commons:Dog|Dogs]]
}}
</pre>
{{sister-inline
|project=commons
|links=[[commons:Dog|Dogs]]
}}
Adding <code>|short=yes</code> will omit the following explanatory text; this can be useful for adding short links to [[WP:NAVBOX|navigational boxes]], for instance. This permits the link's text to differ from the link's address in namespace.
'''Example:'''
<pre>
{{sister-inline
|project=v
|links=[[v:Category:Wikiversity quizzes placed on Wikipedia|Quizzes on Wikipedia articles can be found at Wikiversity]]
|short=yes
}}
</pre>
{{sister-inline
|project=v
|links=[[v:Category:Wikiversity quizzes placed on Wikipedia|Quizzes on Wikipedia articles can be found at Wikiversity]]
|short=yes
}}
== TemplateData ==
{{TemplateDataHeader}}
<templatedata>
{
"description": "This is a meta-template used for creating interwiki links to other sister projects of Wikipedia. Note that links to other ''language'' Wikipedias should ''not'' use links in this form, instead use Wikidata to add them to the sidebar.\n\nThis is a companion template to {{tl|sister project}} to be used where a floating side box causes layout problems on short articles.",
"paramOrder": [
"project",
"list",
"links",
"short",
"extratext"
],
"params": {
"links": {
"label": "Link(s)",
"description": "Code that renders one or more sister project link. You need command of Wikimarkup. Multiple links can be separated with comma plus space. This parameter is ignored if \"List of links\" parameter is included.",
"type": "unbalanced-wikitext"
},
"list": {
"label": "List of links",
"description": "Code that renders a list of links. You need command of Wikimarkup. Overrides \"Link(s)\" parameter.",
"type": "unbalanced-wikitext"
},
"project": {
"label": "Project name",
"description": "The sister project to link to. This parameter is used to customize text and logo and has otherwise no other impact. Acceptable values are: commons, commonscat, meta, (metawiki, m), wikibooks, (wbk, wb, b), wikidata, (data), cookbook, wikiquote, (quote, wqt, q), wikipedia, (wp, w), wikisource, (wikisource2, source, source2, ws, ws2, s, s2), wiktionary, (wkt, wdy, d), wikinews, (news, wnw, n), wikispecies, (species), wikiversity, (wvy, v), wikivoyage, (voyage, voy), mediawiki, (mw), outreachwiki, (outreach), incubator",
"type": "string"
},
"short": {
"label": "Short?",
"description": "Setting this parameter to \"yes\" omits rendering text labels and causes the content of \"List of links\" parameter to be inserted.",
"type": "boolean",
"autovalue": "yes",
"suggested": true
},
"extratext": {
"label": "Extra text",
"description": "Trailing text appended to the end of everything rendered.",
"type": "string"
}
}
}
</templatedata>
== See also ==
* {{tl|Ta̱m a̱meang}}
* {{tl|Interlanguage link}}
* [[Help:Interlanguage links]]
* [[Help:Interwikimedia links]]
* [[Wikipedia:Wikimedia sister projects]]
* [[Wikipedia:Babel]] – Userpage language proficiency banners
* [[Wikipedia:Translation]]
<includeonly>{{Sandbox other||
<!-- Categories below this line, please; interwikis at Wikidata -->
[[Category:Interwiki link templates| ]]
[[Category:Exclude in print|{{PAGENAME}}]]
}}</includeonly>
cu3px20958qz012f6ks04k7n77nxirc
Ta̱mpi̱let:High-use
10
1555
14975
2022-07-16T21:13:58Z
Kambai Akau
15
Created page with "{{#invoke:High-use|main|1={{{1|}}}|2={{{2|}}}|all-pages={{{all-pages|}}}|info={{{info|}}}|demo={{{demo|}}}|form={{{form|}}}|expiry={{{expiry|}}}|system={{{system|}}}}}<noinclude> {{Documentation}} <!-- Add categories to the /doc subpage; interwiki links go to Wikidata, thank you! --> </noinclude>"
wikitext
text/x-wiki
{{#invoke:High-use|main|1={{{1|}}}|2={{{2|}}}|all-pages={{{all-pages|}}}|info={{{info|}}}|demo={{{demo|}}}|form={{{form|}}}|expiry={{{expiry|}}}|system={{{system|}}}}}<noinclude>
{{Documentation}}
<!-- Add categories to the /doc subpage; interwiki links go to Wikidata, thank you! -->
</noinclude>
pqp5tan0gkp2stociv4f3zgylzoarl5
Ta̱mpi̱let:High-use/doc
10
1556
14976
2022-07-16T21:14:51Z
Kambai Akau
15
Created page with "{{Documentation subpage}} <!-- Add categories where indicated at the bottom of this page and interwikis at Wikidata --> {{#ifeq:{{SUBPAGENAME}}|sandbox||{{High-use}}}} {{lua|Module:High-use}} This is the {{tlx|high-use}} message box. It is meant to be put at the top of the documentation subpage for templates transcluded onto more than 2,000 pages. For templates transcluded onto more than 100,000 pages, or if the first parameter is set to <code>risk</code>, then a strong..."
wikitext
text/x-wiki
{{Documentation subpage}}
<!-- Add categories where indicated at the bottom of this page and interwikis at Wikidata -->
{{#ifeq:{{SUBPAGENAME}}|sandbox||{{High-use}}}}
{{lua|Module:High-use}}
This is the {{tlx|high-use}} message box.
It is meant to be put at the top of the documentation subpage for templates transcluded onto more than 2,000 pages. For templates transcluded onto more than 100,000 pages, or if the first parameter is set to <code>risk</code>, then a stronger wording is given.
'''Note''': It is normal that some of the links in the message box are red.
== Usage ==
{{tlx |High-use}}
{{tlx |High-use |2=2=''discussion page, or use + notation'' |3=info=''additional text'' }}
'''all parameters'''
<pre style="overflow:auto;">
{{High-use |1= |2= |info= |demo= |form= |expiry= }}
</pre>
The template can be used as is, and will automatically use bot-updated transclusion counts from [[Special:PrefixIndex/Module:Transclusion_count/data/|subpages of Module:Transclusion_count/data/]], when available. It can also take some parameters:
* <code>1=''number of transclusions''</code>: ''(deprecated)'' The first parameter is either a static number of times the template has been transcluded, or the word "risk" (without quotes) to display "a very large number of" instead of the actual value. This value will be ignored, if transclusion data is available for the current page (generally, for templates with more than 2,000 transclusions).
* <code>2=''discussion page, or use + notation''</code>: The second parameter is overloaded. It will cause the number of transclusions to display as "#,###+" instead of "approximately #,###" when set equal to "yes" (without quotes). When used in this manner, values will be rounded down, instead of rounded to the nearest number with the appropriate number of significant figures. When set to any other non-blank value, it will replace the link to the template's talk page to the value of the parameter (for example, <code>2=WP:VPT</code> will insert a link to [[WP:VPT]]),
* {{para|info|<{{var|extra information}}>}}: When set to non-blank, will insert <{{var|extra information}}> into the template text.
* {{para|demo|<{{var|Template_name}}>}}: Will use the transclusion count for the template at <code><nowiki>[[Template:</nowiki><{{var|Template_name}}>]]</code> instead of detecting what template it is being used on. Capitalization must exactly match the value used in [[Special:PrefixIndex/Module:Transclusion_count/data/]].
* {{para|form}}: When set to "<code>editnotice</code>", will display the message using {{tl|editnotice}} instead of {{tl|ombox}}.
* {{para|expiry}}: Sets the {{para|expiry}} parameter for {{tl|editnotice}}.
* {{para|no-percent|yes}}: suppresses automatic 'percent of all pages' annotation; 'percent of all pages' annotation is automatically added when template is used in more than 1% of all pages (currently <code><nowiki>{{NUMBEROFPAGES}}</nowiki></code> is {{NUMBEROFPAGES}} pages so 1% is {{formatnum:{{#expr:trunc ({{formatnum:{{NUMBEROFPAGES}}|R}}/100)}}}} pages)
== Examples ==
The full code for a /doc page top usually looks like this:
<pre>
{{documentation subpage}}
<!-- Add categories where indicated at the bottom of this page and interwikis at Wikidata -->
{{high-use}}
</pre>
=== Standard form ===
{{nowiki template demo|code=<nowiki>{{high-use}}</nowiki>}}
{{nowiki template demo|code=<nowiki>{{high-use | |Wikipedia talk:High-risk templates }}</nowiki>}}
=== Rounding and + notation ===
{{nowiki template demo|code=<nowiki>{{high-use |49,500 |demo=A template that does not exist }}</nowiki>}}
{{nowiki template demo|code=<nowiki>{{high-use |49,500+ |demo=A template that does not exist }}</nowiki>}}
=== Editnotice form ===
{{nowiki template demo|code=<nowiki>{{high-use |form=editnotice }}</nowiki>}}
=== High risk ===
{{nowiki template demo|code=<nowiki>{{high-use |demo=Yesno }}</nowiki>}}
{{nowiki template demo|code=<nowiki>{{high-use |demo=Yesno |no-percent=yes}}</nowiki>}}
{{nowiki template demo|code=<nowiki>{{high-use |risk |demo=High-use }}</nowiki>}}
{{nowiki template demo|code=<nowiki>{{high-use |risk |Wikipedia talk:High-risk templates |info=This is a very large number! |demo=Yesno}}</nowiki>}}
== Technical details ==
The [[Template:High-use/sandbox|/sandbox]] and [[Template:High-use/testcases|/testcases]] links are the standard names for such subpages. If those pages are created, then the green /doc box for the template will detect them and link to them in its heading. For instance, see the top of this documentation.
[[User:Ahechtbot|Ahechtbot]] compiles usage statistics for all templates with 2,000 or more transclusions, using [[User:Ahechtbot/transclusioncount.py]], and writes them to subpages of [[Module:Transclusion count/data]] (see [[Wikipedia:Bots/Requests for approval/Ahechtbot 6]]). These pages are usually updated every Sunday, but since running the query is resource intensive, it may be delayed or skipped if Wikipedia server usage is high. '''Important''': If a transclusion count is available in [[Module:Transclusion count/data]], any manually input values will be ignored by this template.
== Supporting templates and modules ==
* {{tl|ombox}} which uses {{m2|Message box|ombox}}
* {{tl|editnotice}} which uses {{m2|Message box|fmbox}}
* {{m2|high-use|main}}
* {{m2|transclusion count|fetch}}
==Redirects==
{{columns-list|colwidth=15em|
*{{tl|heavilytranscluded}}
*{{tl|high risk}}
*{{tl|high-risk}}
*{{tl|high use}}
*{{tl|risky template}}
}}
== See also ==
* {{tl|Intricate template}} – for templates that are complex, using less obvious techniques
* {{tl|pp-template}} – protection template that usually is put on high-risk templates
* {{tl|Used in system}} – for templates used in the Wikipedia user interface
* [[Wikipedia:High-risk templates]]
* [[Wikipedia:Template sandbox and test cases]]
== Template counters ==
* [[toollabs:templatecount/]] – easy to use, returns current (real time) transclusion count for a template
* <span class="plainlinks">[{{fullurl:Special:MostLinkedTemplates|limit=500}} Special:MostLinkedTemplates]</span> – special page search for most transcluded templates
* [[Special:PrefixIndex/Module:Transclusion_count/data/]] – template count data used by this template that is broken down by first letter of template and rounded to two or three significant figures, and updated weekly
* [[Wikipedia:Database reports/Templates transcluded on the most pages]] – lists the 1000 most transcluded templates, not updated since November 2018
<!-- * [[tools:~dispenser/cgi-bin/embeddedincount.py]] – Seems to lack human interface, probably meant for programs to call. (not working anymore) -->
<includeonly>{{sandbox other||
<!-- Categories go below this line, please; interwikis go to Wikidata, thank you! -->
[[Category:Documentation header templates]]
}}</includeonly>
0356yrwbvlaevacqsuprqug4qg4a81t
Ta̱mpi̱let:Ta̱m a̱meang
10
1557
15995
14977
2022-08-18T13:30:01Z
Kambai Akau
15
Kambai Akau shyei peji [[Ta̱mpi̱let:Sister project]] nat [[Ta̱mpi̱let:Ta̱m a̱meang]]: Di̱n Tyap
wikitext
text/x-wiki
{{Side box
| metadata=no
| position = {{{position|}}}
| image =
{{#switch: {{{image|}}}
| none = <!-- "image=none", do nothing -->
| = <!-- No image fed, select an image -->
[[File:{{#switch: {{lc: {{{project|}}} }}
| commons = Commons-logo.svg
| meta|metawiki|m = Wikimedia Community Logo.svg
| wikibooks|wbk|wb|b = Wikibooks-logo-en-noslogan.svg
| wikidata|data = Wikidata-logo.svg
| wikiquote|quote|wqt|q = Wikiquote-logo.svg
| wikipedia|wp|w = Wikipedia-logo-v2.svg
| wikisource|source|ws|s = Wikisource-logo.svg
| wiktionary|wkt|wdy|d = Wiktionary-logo-en-v2.svg
| wikinews|news|wnw|n = Wikinews-logo.svg
| wikispecies|species = Wikispecies-logo.svg
| wikiversity|wvy|v = Wikiversity logo 2017.svg
| wikivoyage|voyage|voy = Wikivoyage-Logo-v3-icon.svg
| mediawiki|mw = MediaWiki-2020-icon.svg
| outreachwiki|outreach = Wikimedia Outreach.png
| incubator = Incubator-notext.svg
| #default = Wikimedia-logo.svg
}}|40x40px|class=noviewer|alt=|link=
]]
| #default = {{{image|}}}
}}
| textclass = {{{textclass|plainlist}}}
| textstyle = {{{textstyle|}}}
| text = {{{text}}}
| below = {{{below|}}}
| imageright = {{{imageright|}}}
| class = plainlinks sistersitebox
}}<noinclude>{{Documentation}}<!-- Add categories and interwikis to the /doc subpage, not here! --></noinclude>
8xj4znh9zge3vfvmy1745bkgpe5h4v4
Ta̱mpi̱let:Side box
10
1558
14978
2022-07-16T21:18:47Z
Kambai Akau
15
Created page with "{{#invoke:Side box|main}}<noinclude> {{documentation}} <!-- Categories go on the /doc subpage, and interwikis go on Wikidata. --> </noinclude>"
wikitext
text/x-wiki
{{#invoke:Side box|main}}<noinclude>
{{documentation}}
<!-- Categories go on the /doc subpage, and interwikis go on Wikidata. -->
</noinclude>
s1zpy5c500y28mjgve7gykq14088u4e
Ta̱mpi̱let:Side box/doc
10
1559
16008
14979
2022-08-18T13:52:14Z
Kambai Akau
15
wikitext
text/x-wiki
{{Documentation subpage}}
<!-- PLEASE ADD CATEGORIES WHERE INDICATED AT THE BOTTOM OF THIS PAGE -->
{{High-use|946171}}
{{Lua|Module:Side box}}
{{Template shortcut |Sidebox}}
<div style="clear:right;margin-top:1.0em;">
{{Side box |metadata=No
| above = '''''above''''' content appears here, in a separate row above the main text area
| image = {{smaller|('''''image''''')}}
| text = '''''text''''' content, the box's main content, appears here
| imageright = {{longitem|style=font-size:90%|1=('''''image<br/>right'''''{{hair space}})}}
| below = '''''below''''' content appears here, in a separate row below the main text area
}}
{{Parameter names example|_template=Side box
|above
|image
|text
|imageright
|below
}}
This template is a meta-template that can be used to create nicely-styled floating content boxes (see example directly opposite).
</div>
===Parameters===
{| class="wikitable"
! Parameter !! Description
|-
| metadata || Set as {{para|metadata|no}} to suppress the [[Meta element|HTML "metadata" class]].
|-
| position || Set as {{para|position|left}} to position the box on the left-hand rather than right-hand side of the page and remove the float.
|-
| class || [[CSS]] [[HTML attribute|class]]es to apply to the box.
|-
| style || [[CSS styles]] to apply to the box.
|-
| abovestyle || CSS styles to apply to the "above" cell (see next parameter) only.
|-
| above || Content to appear in a separate row above the main cell (and spanning the entire width of the box).
|-
| image || A full image tag (or other content); if this is not present or set as {{code|none}}, no image is displayed.
|-
| textclass || CSS classes to apply to the text cells only. (default: 'plainlist')
|-
| textstyle || CSS styles to apply to the text cells only.
|-
| text || Text to display in the box.
|-
| imageright || A full image tag (or other content) to display in a separate table cell on the box's righthand side.
|-
| below || Content to appear in a separate row underneath the main cell (and spanning the entire width of the box).
|}
===Bu nwuan===
* {{tl|sidebar}}
* {{tl|Mbox}}
* {{tl|Box-r}}
<includeonly>{{Sandbox other|
| <!--CATEGORIES BELOW THIS LINE, PLEASE:-->
[[Category:Box templates]]
[[Category:Wikipedia metatemplates]]
}}</includeonly>
igmlhu78aza9oua3wgj2sx5bc5bwzzd
Module:Side box
828
1560
14980
2022-07-16T21:20:40Z
Kambai Akau
15
Created page with "local yesno = require('Module:Yesno') local p = {} local function makeData(args) local data = {} -- Main table classes data.classes = {} if yesno(args.metadata) ~= false then table.insert(data.classes, 'metadata') end if args.position and args.position:lower() == 'left' then table.insert(data.classes, 'side-box-left') else table.insert(data.classes, 'side-box-right') end if args.collapsible then table.insert(data.classes, 'mw-collapsible') if args...."
Scribunto
text/plain
local yesno = require('Module:Yesno')
local p = {}
local function makeData(args)
local data = {}
-- Main table classes
data.classes = {}
if yesno(args.metadata) ~= false then
table.insert(data.classes, 'metadata')
end
if args.position and args.position:lower() == 'left' then
table.insert(data.classes, 'side-box-left')
else
table.insert(data.classes, 'side-box-right')
end
if args.collapsible then
table.insert(data.classes, 'mw-collapsible')
if args.collapsible == "collapsed" then
table.insert(data.classes, 'mw-collapsed')
end
data.collapsible = true
end
table.insert(data.classes, args.class)
-- Image
if args.image and args.image ~= 'none' then
data.image = args.image
end
-- Copy over data that does not need adjusting
local argsToCopy = {
-- aria qualities
'role',
'labelledby',
-- Classes
'textclass',
-- Styles
'style',
'textstyle',
'templatestyles',
-- Above row
'above',
'abovestyle',
-- Body row
'text',
'imageright',
-- Below row
'below',
}
for i, key in ipairs(argsToCopy) do
data[key] = args[key]
end
return data
end
local function renderSidebox(data)
-- Renders the sidebox HTML.
-- Table root
local root = mw.html.create('div')
root:attr('role', data.role)
:attr('aria-labelledby', data.labelledby)
:addClass('side-box')
for i, class in ipairs(data.classes or {}) do
root:addClass(class)
end
if data.style then
root:cssText(data.style)
end
-- The "above" row
if data.above then
local above = root:newline():tag('div')
above:addClass('side-box-abovebelow')
:newline()
:wikitext(data.above)
if data.textstyle then
above:cssText(data.textstyle)
end
if data.abovestyle then
above:cssText(data.abovestyle)
end
end
-- The body row
local body = root:newline():tag('div')
body:addClass('side-box-flex')
:addClass(data.collapsible and 'mw-collapsible-content')
:newline()
if data.image then
body:tag('div')
:addClass('side-box-image')
:wikitext(data.image)
end
local text = body:newline():tag('div')
text:addClass('side-box-text')
:addClass(data.textclass or 'plainlist')
if data.textstyle then
text:cssText(data.textstyle)
end
text:wikitext(data.text)
if data.imageright then
body:newline():tag('div')
:addClass('side-box-imageright')
:wikitext(data.imageright)
end
-- The below row
if data.below then
local below = root:newline():tag('div')
below
:addClass('side-box-abovebelow')
:wikitext(data.below)
if data.textstyle then
below:cssText(data.textstyle)
end
end
root:newline()
local frame = mw.getCurrentFrame()
local templatestyles = ''
if data.templatestyles then
templatestyles = frame:extensionTag{
name = 'templatestyles', args = { src = data.templatestyles }
}
end
return frame:extensionTag{
name = 'templatestyles', args = { src = 'Module:Side box/styles.css' }
} .. templatestyles .. tostring(root)
end
function p._main(args)
local data = makeData(args)
return renderSidebox(data)
end
function p.main(frame)
local origArgs = frame:getParent().args
local args = {}
for k, v in pairs(origArgs) do
v = v:match('%s*(.-)%s*$')
if v ~= '' then
args[k] = v
end
end
return p._main(args)
end
return p
egcspx2irukqbdg26nexp0sq0xy7sp0
Module:Side box/doc
828
1561
14981
2022-07-16T21:21:32Z
Kambai Akau
15
Created page with "{{Module rating|protected}} {{Lua|Module:Yesno}} {{Uses TemplateStyles|Module:Side box/styles.css}} This module implements the {{tl|side box}} template. == Usage from wikitext == This module cannot be used directly from wikitext. It can only be used through the {{tl|side box}} template. Please see the template page for documentation. == Usage from Lua modules == To use this module from other Lua modules, first load the module. <syntaxhighlight lang="lua"> local mSid..."
wikitext
text/x-wiki
{{Module rating|protected}}
{{Lua|Module:Yesno}}
{{Uses TemplateStyles|Module:Side box/styles.css}}
This module implements the {{tl|side box}} template.
== Usage from wikitext ==
This module cannot be used directly from wikitext. It can only be used through the {{tl|side box}} template. Please see the template page for documentation.
== Usage from Lua modules ==
To use this module from other Lua modules, first load the module.
<syntaxhighlight lang="lua">
local mSideBox = require('Module:Side box')
</syntaxhighlight>
You can then generate a side box using the _main function.
<syntaxhighlight lang="lua">
mSideBox._main(args)
</syntaxhighlight>
The <var>args</var> variable should be a table containing the arguments to pass to the module. To see the different arguments that can be specified and how they affect the module output, please refer to the {{tl|side box}} template documentation.
<includeonly>{{#ifeq:{{SUBPAGENAME}}|sandbox||
<!-- Categories go here and interwikis go in Wikidata. -->
}}</includeonly>
spzz19j4nxpirioy2j7oigittvse0yc
Module:Uses TemplateStyles/config
828
1562
14982
2022-07-16T21:23:17Z
Kambai Akau
15
Created page with "local cfg = {} -- Don’t touch this line. -- Subpage blacklist: these subpages will not be categorized (except for the -- error category, which is always added if there is an error). -- For example “Template:Foo/doc” matches the `doc = true` rule, so it will have -- no categories. “Template:Foo” and “Template:Foo/documentation” match no rules, -- so they *will* have categories. All rules should be in the -- ['<subpage name>'] = true, -- format. cfg['subpa..."
Scribunto
text/plain
local cfg = {} -- Don’t touch this line.
-- Subpage blacklist: these subpages will not be categorized (except for the
-- error category, which is always added if there is an error).
-- For example “Template:Foo/doc” matches the `doc = true` rule, so it will have
-- no categories. “Template:Foo” and “Template:Foo/documentation” match no rules,
-- so they *will* have categories. All rules should be in the
-- ['<subpage name>'] = true,
-- format.
cfg['subpage_blacklist'] = {
['doc'] = true,
['sandbox'] = true,
['sandbox2'] = true,
['testcases'] = true,
}
-- Sandbox title: if the stylesheet’s title is <template>/<stylesheet>.css, the
-- stylesheet’s sandbox is expected to be at <template>/<sandbox_title>/<stylesheet>.css
-- Set to nil to disable sandbox links.
cfg['sandbox_title'] = 'sandbox'
-- Error category: this category is added if the module call contains errors
-- (e.g. no stylesheet listed). A category name without namespace, or nil
-- to disable categorization (not recommended).
cfg['error_category'] = 'Uses TemplateStyles templates with errors'
-- Default category: this category is added if no custom category is specified
-- in module/template call. A category name without namespace, or nil
-- to disable categorization.
cfg['default_category'] = 'Templates using TemplateStyles'
-- Protection conflict category: this category is added if the protection level
-- of any stylesheet is lower than the protection level of the template. A category name
-- without namespace, or nil to disable categorization (not recommended).
cfg['protection_conflict_category'] = 'Templates using TemplateStyles with a different protection level'
-- Hierarchy of protection levels, used to determine whether one protection level is lower
-- than another and thus should populate protection_conflict_category. No protection is treated as zero
cfg['protection_hierarchy'] = {
autoconfirmed = 1,
extendedconfirmed = 2,
templateeditor = 3,
sysop = 4
}
-- Padlock pattern: Lua pattern to search on protected stylesheets for, or nil
-- to disable padlock check.
cfg['padlock_pattern'] = '{{pp-'
-- Missing padlock category: this category is added if a protected stylesheet
-- doesn’t contain any padlock template (specified by the above Lua pattern).
-- A category name without namespace (no nil allowed) if the pattern is not nil,
-- unused (and thus may be nil) otherwise.
cfg['missing_padlock_category'] = 'Templates using TemplateStyles without padlocks'
return cfg -- Don’t touch this line.
adv258brx4dxb1cf3mprf0q8mky2k5v
Ta̱mpi̱let:Uses TemplateStyles
10
1563
14983
2022-07-16T21:24:37Z
Kambai Akau
15
Created page with "<includeonly>{{#invoke:Uses TemplateStyles|main}}</includeonly><noinclude> {{Uses TemplateStyles|Template:Uses TemplateStyles/example.css|nocat=true}} {{documentation}} <!-- Categories go on the /doc subpage and interwikis go on Wikidata. --> </noinclude>"
wikitext
text/x-wiki
<includeonly>{{#invoke:Uses TemplateStyles|main}}</includeonly><noinclude>
{{Uses TemplateStyles|Template:Uses TemplateStyles/example.css|nocat=true}}
{{documentation}}
<!-- Categories go on the /doc subpage and interwikis go on Wikidata. -->
</noinclude>
eqhrm3aklele9wufyv66k58upan0j1w
Ta̱mpi̱let:Uses TemplateStyles/doc
10
1564
14984
2022-07-16T21:25:28Z
Kambai Akau
15
Created page with "{{Documentation subpage}} {{Template shortcut|TemplateStyles}} {{Lua{{\sandbox}}|Module:Uses TemplateStyles}} <!-- Categories go at the bottom of this page, and interwikis go on Wikidata. --> This template is used to show that templates have been converted to use [[WP:TemplateStyles|TemplateStyles]]. It is placed at the top of the template's /doc page. It automatically adds the template to [[:Category:{{#invoke:Data|Module:Uses TemplateStyles/config|default_category}}]]..."
wikitext
text/x-wiki
{{Documentation subpage}}
{{Template shortcut|TemplateStyles}}
{{Lua{{\sandbox}}|Module:Uses TemplateStyles}}
<!-- Categories go at the bottom of this page, and interwikis go on Wikidata. -->
This template is used to show that templates have been converted to use [[WP:TemplateStyles|TemplateStyles]]. It is placed at the top of the template's /doc page. It automatically adds the template to [[:Category:{{#invoke:Data|Module:Uses TemplateStyles/config|default_category}}]], or to one of its subcategories.
== Usage ==
; Basic : {{tlx|Uses TemplateStyles|''TemplateStyles page name''}}
; All parameters : {{tlx|Uses TemplateStyles|''TemplateStyles page 1''|''TemplateStyles page 2''|''TemplateStyles page 3''|...|category{{=}}''custom category''|nocat{{=}}''true''}}
The first TemplateStyles page name is required.
===TemplateStyles sandboxes===
Note that if a sandbox version of the TemplateStyle exists, it will also be linked. This is only for sandbox versions. The subpage name of the sandbox version should be the same, but as a subpage of the templates sandbox. For example, if the TemplateStyles page name is <code>Template:Foo/styles.css</code>, then the sandbox version should be <code>Template:Foo/sandbox/styles.css</code>
== Examples ==
===One style page===
{{tlx|Uses TemplateStyles|Template:Arrowlist/styles.css}}
{{Uses TemplateStyles{{\sandbox}}|Template:Arrowlist/styles.css|nocat=true}}
{{clear}}
===Multiple style pages===
{{tlx|Uses TemplateStyles|Template:Arrowlist/styles.css|Template:Routemap/styles.css}}
{{Uses TemplateStyles{{\sandbox}}|Template:Arrowlist/styles.css|Template:Routemap/styles.css|nocat=true}}
{{clear}}
===Sandbox version of style page exists===
{{tlx|Uses TemplateStyles|Template:Uses TemplateStyles/example.css}}
{{Uses TemplateStyles{{\sandbox}}|Template:Uses TemplateStyles/example.css|nocat=true}}
{{clear}}
===No style pages specified===
{{tlx|Uses TemplateStyles}}
{{Uses TemplateStyles{{\sandbox}}|nocat=true}}
{{clear}}
== Categories ==
===Template category===
This template adds pages to [[:Category:{{#invoke:Data|Module:Uses TemplateStyles/config|default_category}}]] if the page is in the template namespace, and it is not on any of the subpages /doc, /sandbox, /sandbox2 or /testcases. You can specify a different category with the {{para|category}} parameter, e.g. {{para|category|Uses list TemplateStyles}}.
===Error category===
If no modules are specified, the transcluded page will be added to [[:Category:{{#invoke:Data|Module:Uses TemplateStyles/config|error_category}}]].
===Protection level category===
TemplateStyles should have the same protection level as the template they are used on. If a difference is detected, the transcluded page will be added to [[:Category:{{#invoke:Data|Module:Uses TemplateStyles/config|protection_conflict_category}}]].
=== Category suppression ===
To suppress all categories, use {{para|nocat|true}}. (As well as "true", the values "yes", "y", and "1" will also work.)
== TemplateData ==
{{Format TemplateData|TNT=Uses TemplateStyles}}
== See also ==
* {{tl|Lua}}
* {{tl|Uses Wikidata}}
<includeonly>{{Sandbox other|| <!-- Categories go here, and interwikis go on Wikidata. -->
[[Category:Template namespace templates]]
}}</includeonly>
l2ya2a6bieij830hfbnmgfb4fvhqyjk
Module:Uses TemplateStyles
828
1565
14985
2022-07-16T21:26:55Z
Kambai Akau
15
Created page with "local yesno = require('Module:Yesno') local mList = require('Module:List') local mTableTools = require('Module:TableTools') local mMessageBox = require('Module:Message box') local TNT = require('Module:TNT') local p = {} local function format(msg, ...) return TNT.format('I18n/Uses TemplateStyles', msg, ...) end local function getConfig() return mw.loadData('Module:Uses TemplateStyles/config') end local function renderBox(tStyles) local boxArgs = { type = 'notice..."
Scribunto
text/plain
local yesno = require('Module:Yesno')
local mList = require('Module:List')
local mTableTools = require('Module:TableTools')
local mMessageBox = require('Module:Message box')
local TNT = require('Module:TNT')
local p = {}
local function format(msg, ...)
return TNT.format('I18n/Uses TemplateStyles', msg, ...)
end
local function getConfig()
return mw.loadData('Module:Uses TemplateStyles/config')
end
local function renderBox(tStyles)
local boxArgs = {
type = 'notice',
small = true,
image = string.format('[[File:Farm-Fresh css add.svg|32px|alt=%s]]', format('logo-alt'))
}
if #tStyles < 1 then
boxArgs.text = string.format('<strong class="error">%s</strong>', format('error-emptylist'))
else
local cfg = getConfig()
local tStylesLinks = {}
for i, ts in ipairs(tStyles) do
local link = string.format('[[:%s]]', ts)
local sandboxLink = nil
local tsTitle = mw.title.new(ts)
if tsTitle and cfg['sandbox_title'] then
local tsSandboxTitle = mw.title.new(string.format(
'%s:%s/%s/%s', tsTitle.nsText, tsTitle.baseText, cfg['sandbox_title'], tsTitle.subpageText))
if tsSandboxTitle and tsSandboxTitle.exists then
sandboxLink = format('sandboxlink', link, ':' .. tsSandboxTitle.prefixedText)
end
end
tStylesLinks[i] = sandboxLink or link
end
local tStylesList = mList.makeList('bulleted', tStylesLinks)
boxArgs.text = format(
mw.title.getCurrentTitle():inNamespaces(828,829) and 'header-module' or 'header-template') ..
'\n' .. tStylesList
end
return mMessageBox.main('mbox', boxArgs)
end
local function renderTrackingCategories(args, tStyles, titleObj)
if yesno(args.nocat) then
return ''
end
local cfg = getConfig()
local cats = {}
-- Error category
if #tStyles < 1 and cfg['error_category'] then
cats[#cats + 1] = cfg['error_category']
end
-- TemplateStyles category
titleObj = titleObj or mw.title.getCurrentTitle()
if (titleObj.namespace == 10 or titleObj.namespace == 828)
and not cfg['subpage_blacklist'][titleObj.subpageText]
then
local category = args.category or cfg['default_category']
if category then
cats[#cats + 1] = category
end
if not yesno(args.noprotcat) and (cfg['protection_conflict_category'] or cfg['padlock_pattern']) then
local currentProt = titleObj.protectionLevels["edit"] and titleObj.protectionLevels["edit"][1] or nil
local addedLevelCat = false
local addedPadlockCat = false
for i, ts in ipairs(tStyles) do
local tsTitleObj = mw.title.new(ts)
local tsProt = tsTitleObj.protectionLevels["edit"] and tsTitleObj.protectionLevels["edit"][1] or nil
if cfg['padlock_pattern'] and tsProt and not addedPadlockCat then
local content = tsTitleObj:getContent()
if not content:find(cfg['padlock_pattern']) then
cats[#cats + 1] = cfg['missing_padlock_category']
addedPadlockCat = true
end
end
if cfg['protection_conflict_category'] and currentProt and tsProt ~= currentProt and not addedLevelCat then
currentProt = cfg['protection_hierarchy'][currentProt] or 0
tsProt = cfg['protection_hierarchy'][tsProt] or 0
if tsProt < currentProt then
addedLevelCat = true
cats[#cats + 1] = cfg['protection_conflict_category']
end
end
end
end
end
for i, cat in ipairs(cats) do
cats[i] = string.format('[[Category:%s]]', cat)
end
return table.concat(cats)
end
function p._main(args, cfg)
local tStyles = mTableTools.compressSparseArray(args)
local box = renderBox(tStyles)
local trackingCategories = renderTrackingCategories(args, tStyles)
return box .. trackingCategories
end
function p.main(frame)
local origArgs = frame:getParent().args
local args = {}
for k, v in pairs(origArgs) do
v = v:match('^%s*(.-)%s*$')
if v ~= '' then
args[k] = v
end
end
return p._main(args)
end
return p
daif0490r1ry4uy21dl7p3ae7h4onf2
Module:Uses TemplateStyles/doc
828
1566
14986
2022-07-16T21:27:49Z
Kambai Akau
15
Created page with "{{Lua|Module:Uses TemplateStyles/config|Module:Yesno|Module:List|Module:TableTools|Module:Message box|Module:TNT}} <!-- uses data [[c:Data:I18n/Uses_TemplateStyles.tab]] --> Implements {{tl|Uses TemplateStyles}}"
wikitext
text/x-wiki
{{Lua|Module:Uses TemplateStyles/config|Module:Yesno|Module:List|Module:TableTools|Module:Message box|Module:TNT}}
<!-- uses data [[c:Data:I18n/Uses_TemplateStyles.tab]] -->
Implements {{tl|Uses TemplateStyles}}
h82x5eki97qykg2m1dsj30gcyzjn0b0
Module:TNT
828
1567
14987
2022-07-16T21:28:30Z
Kambai Akau
15
Created page with "-- -- INTRO: (!!! DO NOT RENAME THIS PAGE !!!) -- This module allows any template or module to be copy/pasted between -- wikis without any translation changes. All translation text is stored -- in the global Data:*.tab pages on Commons, and used everywhere. -- -- SEE: https://www.mediawiki.org/wiki/Multilingual_Templates_and_Modules -- -- ATTENTION: -- Please do NOT rename this module - it has to be identical on all wikis. -- This code is maintained..."
Scribunto
text/plain
--
-- INTRO: (!!! DO NOT RENAME THIS PAGE !!!)
-- This module allows any template or module to be copy/pasted between
-- wikis without any translation changes. All translation text is stored
-- in the global Data:*.tab pages on Commons, and used everywhere.
--
-- SEE: https://www.mediawiki.org/wiki/Multilingual_Templates_and_Modules
--
-- ATTENTION:
-- Please do NOT rename this module - it has to be identical on all wikis.
-- This code is maintained at https://www.mediawiki.org/wiki/Module:TNT
-- Please do not modify it anywhere else, as it may get copied and override your changes.
-- Suggestions can be made at https://www.mediawiki.org/wiki/Module_talk:TNT
--
-- DESCRIPTION:
-- The "msg" function uses a Commons dataset to translate a message
-- with a given key (e.g. source-table), plus optional arguments
-- to the wiki markup in the current content language.
-- Use lang=xx to set language. Example:
--
-- {{#invoke:TNT | msg
-- | I18n/Template:Graphs.tab <!-- https://commons.wikimedia.org/wiki/Data:I18n/Template:Graphs.tab -->
-- | source-table <!-- uses a translation message with id = "source-table" -->
-- | param1 }} <!-- optional parameter -->
--
--
-- The "doc" function will generate the <templatedata> parameter documentation for templates.
-- This way all template parameters can be stored and localized in a single Commons dataset.
-- NOTE: "doc" assumes that all documentation is located in Data:Templatedata/* on Commons.
--
-- {{#invoke:TNT | doc | Graph:Lines }}
-- uses https://commons.wikimedia.org/wiki/Data:Templatedata/Graph:Lines.tab
-- if the current page is Template:Graph:Lines/doc
--
local p = {}
local i18nDataset = 'I18n/Module:TNT.tab'
-- Forward declaration of the local functions
local sanitizeDataset, loadData, link, formatMessage
function p.msg(frame)
local dataset, id
local params = {}
local lang = nil
for k, v in pairs(frame.args) do
if k == 1 then
dataset = mw.text.trim(v)
elseif k == 2 then
id = mw.text.trim(v)
elseif type(k) == 'number' then
table.insert(params, mw.text.trim(v))
elseif k == 'lang' and v ~= '_' then
lang = mw.text.trim(v)
end
end
return formatMessage(dataset, id, params, lang)
end
-- Identical to p.msg() above, but used from other lua modules
-- Parameters: name of dataset, message key, optional arguments
-- Example with 2 params: format('I18n/Module:TNT', 'error_bad_msgkey', 'my-key', 'my-dataset')
function p.format(dataset, key, ...)
local checkType = require('libraryUtil').checkType
checkType('format', 1, dataset, 'string')
checkType('format', 2, key, 'string')
return formatMessage(dataset, key, {...})
end
-- Identical to p.msg() above, but used from other lua modules with the language param
-- Parameters: language code, name of dataset, message key, optional arguments
-- Example with 2 params: formatInLanguage('es', I18n/Module:TNT', 'error_bad_msgkey', 'my-key', 'my-dataset')
function p.formatInLanguage(lang, dataset, key, ...)
local checkType = require('libraryUtil').checkType
checkType('formatInLanguage', 1, lang, 'string')
checkType('formatInLanguage', 2, dataset, 'string')
checkType('formatInLanguage', 3, key, 'string')
return formatMessage(dataset, key, {...}, lang)
end
-- Obsolete function that adds a 'c:' prefix to the first param.
-- "Sandbox/Sample.tab" -> 'c:Data:Sandbox/Sample.tab'
function p.link(frame)
return link(frame.args[1])
end
function p.doc(frame)
local dataset = 'Templatedata/' .. sanitizeDataset(frame.args[1])
return frame:extensionTag('templatedata', p.getTemplateData(dataset)) ..
formatMessage(i18nDataset, 'edit_doc', {link(dataset)})
end
function p.getTemplateData(dataset)
-- TODO: add '_' parameter once lua starts reindexing properly for "all" languages
local data = loadData(dataset)
local names = {}
for _, field in pairs(data.schema.fields) do
table.insert(names, field.name)
end
local params = {}
local paramOrder = {}
for _, row in pairs(data.data) do
local newVal = {}
local name = nil
for pos, val in pairs(row) do
local columnName = names[pos]
if columnName == 'name' then
name = val
else
newVal[columnName] = val
end
end
if name then
params[name] = newVal
table.insert(paramOrder, name)
end
end
-- Work around json encoding treating {"1":{...}} as an [{...}]
params['zzz123']=''
local json = mw.text.jsonEncode({
params=params,
paramOrder=paramOrder,
description=data.description
})
json = string.gsub(json,'"zzz123":"",?', "")
return json
end
-- Local functions
sanitizeDataset = function(dataset)
if not dataset then
return nil
end
dataset = mw.text.trim(dataset)
if dataset == '' then
return nil
elseif string.sub(dataset,-4) ~= '.tab' then
return dataset .. '.tab'
else
return dataset
end
end
loadData = function(dataset, lang)
dataset = sanitizeDataset(dataset)
if not dataset then
error(formatMessage(i18nDataset, 'error_no_dataset', {}))
end
-- Give helpful error to thirdparties who try and copy this module.
if not mw.ext or not mw.ext.data or not mw.ext.data.get then
error('Missing JsonConfig extension; Cannot load https://commons.wikimedia.org/wiki/Data:' .. dataset)
end
local data = mw.ext.data.get(dataset, lang)
if data == false then
if dataset == i18nDataset then
-- Prevent cyclical calls
error('Missing Commons dataset ' .. i18nDataset)
else
error(formatMessage(i18nDataset, 'error_bad_dataset', {link(dataset)}))
end
end
return data
end
-- Given a dataset name, convert it to a title with the 'commons:data:' prefix
link = function(dataset)
return 'c:Data:' .. mw.text.trim(dataset or '')
end
formatMessage = function(dataset, key, params, lang)
for _, row in pairs(loadData(dataset, lang).data) do
local id, msg = unpack(row)
if id == key then
local result = mw.message.newRawMessage(msg, unpack(params or {}))
return result:plain()
end
end
if dataset == i18nDataset then
-- Prevent cyclical calls
error('Invalid message key "' .. key .. '"')
else
error(formatMessage(i18nDataset, 'error_bad_msgkey', {key, link(dataset)}))
end
end
return p
icfixo3zxiew6gqg3s5h19xr03x3wkh
Module:TNT/doc
828
1568
14988
2022-07-16T21:29:48Z
Kambai Akau
15
Created page with "This module allows templates and modules to be easily translated as part of the [[mw:Multilingual Templates and Modules|multilingual templates and modules project]]. Instead of storing English text in a module or a template, TNT module allows modules to be designed language-neutral, and store multilingual text in the [[mw:Help:Tabular_Data|tabular data pages]] on Commons. This way your module or template will use those translated strings (messages), or if the message has..."
wikitext
text/x-wiki
This module allows templates and modules to be easily translated as part of the [[mw:Multilingual Templates and Modules|multilingual templates and modules project]]. Instead of storing English text in a module or a template, TNT module allows modules to be designed language-neutral, and store multilingual text in the [[mw:Help:Tabular_Data|tabular data pages]] on Commons. This way your module or template will use those translated strings (messages), or if the message has not yet been translated, will fallback to English. When someone updates the translation table, your page will automatically update (might take some time, or you can purge it), but no change in the template or module is needed on any of the wikis. This process is very similar to MediaWiki's [[mw:localisation|localisation]], and supports all standard localization conventions such as <nowiki>{{PLURAL|...}}</nowiki> and [[mw:Localisation#Message_parameters|other parameters]].
This module can be used from templates using #invoke, and from other modules. For a simple example, see [[commons:Data:I18n/Template:Graphs.tab|Data:I18n/Template:Graphs.tab]] - a table with two messages, each message having a single parameter. By convention, all translation tables should have <nowiki>'''</nowiki>Data:I18n/...<nowiki>'''</nowiki> prefix to separate them from other types of data.
=== Using from Templates ===
{| class="wikitable" style="width: 85%;"
|+
! style="width: 60%" | Description
! style="width: 40%" | Wiki Markup
|-
|In a template, this command translates '''source_table''' message using Commons' [[commons:Data:I18n/Template:Graphs.tab|Data:I18n/Template:Graphs.tab]] translation table.
|<pre>
{{#invoke:TNT | msg
| I18n/Template:Graphs.tab
| source_table
}}
</pre>
|-
|If your message contains parameters, you can specify them after the message ID.
|<pre>
{{#invoke:TNT | msg
| I18n/Template:My Template.tab
| message-with-two-params
| param1
| param2
}}
</pre>
|}
=== Translating Template Parameters ===
Template parameters are usually stored as a [[mw:wikipedia:JSON|JSON]] '''templatedata''' block inside the template's /doc subpage. This makes it convenient to translate, but when a new parameter is added to a global template, all /doc pages need to be updated in every language. TNT helps with this by automatically generating the templatedata block from a table stored on Commons. Placing this line into every /doc sub-page will use [[Commons:Data:Templatedata/Graph:Lines.tab|Data:Templatedata/Graph:Lines.tab]] table to generate all the needed templatedata information in every language. Even if the local community has not translated the full template documentation, they will be able to see all template parameters, centrally updated.<pre>
{{#invoke:TNT | doc | Graph:Lines }}
</pre>
=== Using from Modules ===
Just like templates, modules should also use this module for localization:
<syntaxhighlight lang="lua">
local TNT = require('Module:TNT')
-- format <messageId> string with two parameters using a translation table.
local text = TNT.format('I18n/My_module_messages', 'messageId', 'param1', 'param2', ...)
-- Same, but translate to a specific language.
local text = TNT.formatInLanguage('fr', 'I18n/My_module_messages', 'messageId', 'param1', 'param2', ...)
</syntaxhighlight>
=== Using TNTTools ===
[[Module:TNTTools]] has:
* Question functions: with boolean or numerical indexed return. To be called from other modules or from templates. With:
** Case sensitive option.
** Possibility of more than one translated text value (where each value is separated by "|").
* To put aside write, adding "I18n/" as a prefix and ".tab" extension as a suffix for the table names.
* Several examples.
<includeonly>
[[Category:Modules using tabular data]]
</includeonly>
jgqmlt2e634kwz1w4verwje2jdsicxn
Module:Side box/styles.css
828
1569
14989
2022-07-16T21:33:58Z
Kambai Akau
15
Created page with "/* {{pp|small=y}} */ .side-box { margin: 4px 0; box-sizing: border-box; border: 1px solid #aaa; font-size: 88%; line-height: 1.25em; background-color: #f9f9f9; } .side-box-abovebelow, .side-box-text { padding: 0.25em 0.9em; } .side-box-image { /* @noflip */ padding: 2px 0 2px 0.9em; text-align: center; } .side-box-imageright { /* @noflip */ padding: 2px 0.9em 2px 0; text-align: center; } /* roughly the skin's sidebar + size of side box */ @media (min-wid..."
sanitized-css
text/css
/* {{pp|small=y}} */
.side-box {
margin: 4px 0;
box-sizing: border-box;
border: 1px solid #aaa;
font-size: 88%;
line-height: 1.25em;
background-color: #f9f9f9;
}
.side-box-abovebelow,
.side-box-text {
padding: 0.25em 0.9em;
}
.side-box-image {
/* @noflip */
padding: 2px 0 2px 0.9em;
text-align: center;
}
.side-box-imageright {
/* @noflip */
padding: 2px 0.9em 2px 0;
text-align: center;
}
/* roughly the skin's sidebar + size of side box */
@media (min-width: 500px) {
.side-box-flex {
display: flex;
align-items: center;
}
.side-box-text {
flex: 1;
}
}
@media (min-width: 720px) {
.side-box {
width: 238px;
}
.side-box-right {
/* @noflip */
clear: right;
/* @noflip */
float: right;
/* @noflip */
margin-left: 1em;
}
/* derives from mbox classes, which do not float left in mbox-small-left
* so far as I can tell, that was a deliberate decision, since only .ambox
* supports mbox-left
*/
.side-box-left {
/* @noflip */
margin-right: 1em;
}
}
tgo3vjuu8j9tahz1x7359yicixmhme8
Module:Module:A̱ka̱fwuop nta̱m a̱meang jhyang/styles.css
828
1570
16065
16064
2022-08-18T20:26:22Z
Kambai Akau
15
Kambai Akau shyei wat hu [[Module:Sister project links/styles.css]] nat [[Module:Module:A̱ka̱fwuop nta̱m a̱meang jhyang/styles.css]] di̱ mi̱n ghwon a̱shainvak: Di̱n Tyap
sanitized-css
text/css
/* {{pp-template}} */
.sister-box .side-box-abovebelow {
padding: 0.75em 0;
text-align: center;
}
.sister-box .side-box-abovebelow > b {
display: block;
}
.sister-box .side-box-text > ul {
border-top: 1px solid #aaa;
padding: 0.75em 0;
width: 217px;
margin: 0 auto;
}
.sister-box .side-box-text > ul > li {
min-height: 31px;
}
.sister-logo {
display: inline-block;
width: 31px;
line-height: 31px;
vertical-align: middle;
text-align: center;
}
.sister-link {
display: inline-block;
margin-left: 4px;
width: 182px;
vertical-align: middle;
}
3kna8siudt7ouh1ijx49ic5mrves5p5
Module:Commons link
828
1571
14991
2022-07-16T21:41:02Z
Kambai Akau
15
Created page with "require('Module:No globals') -- Module to find commons galleries and categories based on wikidata entries local getArgs = require('Module:Arguments').getArgs local yesNo = require('Module:Yesno') local generateWarning = require('Module:If preview')._warning local p = {} -- Check if string is a valid QID -- Argument: QID to check -- Returns: valid (bool) local function _validQID(qid) return qid and mw.ustring.find(qid,"^[Qq]%d+$") end -- Check if string is a valid wik..."
Scribunto
text/plain
require('Module:No globals')
-- Module to find commons galleries and categories based on wikidata entries
local getArgs = require('Module:Arguments').getArgs
local yesNo = require('Module:Yesno')
local generateWarning = require('Module:If preview')._warning
local p = {}
-- Check if string is a valid QID
-- Argument: QID to check
-- Returns: valid (bool)
local function _validQID(qid)
return qid and mw.ustring.find(qid,"^[Qq]%d+$")
end
-- Check if string is a valid wikidata property string
-- Argument: property string to check
-- Returns: valid (bool)
local function _validProp(prop)
return prop and mw.ustring.find(prop,"^[Pp]%d+$")
end
local function _lcfirst(s)
return mw.ustring.lower(mw.ustring.sub(s,1,1))..mw.ustring.sub(s,2)
end
-- Format displayed linktext
-- Arguments:
-- s = string to display
-- formatting = formatting table:
-- formatting.linktext = if defined, override s
-- formatting.lcfirst = lower case the first letter in display
-- formatting.bold = whether to bold the display
-- formatting.italic = whether to italicize the display
-- formatting.nowrap = set nowrapping
-- Returns:
-- formatted string
local function _formatResult(s, formatting)
local resultVal = formatting.linktext or s
if formatting.lcfirst then
resultVal = _lcfirst(resultVal)
end
local style = ""
if formatting.italic then style = "font-style:italic; " end
if formatting.bold then style = style.."font-weight:bold; " end
if formatting.nowrap then style = style.."white-space:nowrap; " end
if style ~= "" then
resultVal = '<span style="'..mw.text.trim(style)..'">'..resultVal..'</span>'
end
return resultVal
end
-- Get title, namespace, and QID for current page
-- Arguments:
-- qid = testing only: get title of alternative page with QID=qid
-- nsQid = whether to return the ns of the qid page or current
-- Returns:
-- title, namespace (string), qid of current page (or test page)
local function _getTitleQID(qid,nsQid)
local titleObject = mw.title.getCurrentTitle()
-- look up qid for current page (if not testing)
local nsText = mw.ustring.gsub(titleObject.nsText,"_"," ")
if not _validQID(qid) then
qid = mw.wikibase.getEntityIdForCurrentPage()
return titleObject.text, nsText, qid
end
-- testing-only path: given a qid, determine title
-- always use namespace from current page (to suppress tracking cat)
qid = qid:upper()
local title = mw.wikibase.getSitelink(qid) or ""
-- strip any namespace from sitelink
local firstColon = mw.ustring.find(title,':',1,true)
local qidNsText = ""
if firstColon then
qidNsText = mw.ustring.sub(title,1,firstColon-1)
title = mw.ustring.sub(title,firstColon+1)
end
if nsQid then
return title, qidNsText, qid
end
return title, nsText, qid
end
-- Lookup Commons gallery in Wikidata
-- Arguments:
-- qid = QID of current article
-- fetch = whether to lookup Commons sitelink (bool)
-- commonsSitelink = default value for Commons sitelink
-- Returns:
-- categoryLink = name of Commons category, nil if nothing is found
-- consistent = multiple wikidata fields are examined: are they consistent?
-- commonsSitelink = commons sitelink for current article
local function _lookupGallery(qid,fetch,commonsSitelink)
if not _validQID(qid) then
return nil, true, nil
end
qid = qid:upper()
local galleryLink = nil
local consistent = true
-- look up commons sitelink for article, use if not category
if fetch then
commonsSitelink = mw.wikibase.getSitelink(qid,"commonswiki") or commonsSitelink
end
if commonsSitelink and mw.ustring.sub(commonsSitelink,1,9) ~= "Category:" then
galleryLink = commonsSitelink
end
-- P935 is the "commons gallery" property for this article
local P935 = mw.wikibase.getBestStatements(qid, "P935")[1]
if P935 and P935.mainsnak.datavalue then
local gallery = P935.mainsnak.datavalue.value
if galleryLink and galleryLink ~= gallery then
consistent = false
else
galleryLink = gallery
end
end
return galleryLink, consistent, commonsSitelink
end
-- Find fallback category by looking up Commons sitelink of different page
-- Arguments:
-- qid = QID for current article
-- property = property that refers to other article whose sitelink to return
-- Returns: either category-stripped name of article, or nil
local function _lookupFallback(qid,property)
if not _validQID(qid) or not _validProp(property) then
return nil
end
qid = qid:upper()
property = property:upper()
-- If property exists on current article, get value (other article qid)
local value = mw.wikibase.getBestStatements(qid, property)[1]
if value and value.mainsnak.datavalue and value.mainsnak.datavalue.value.id then
-- Look up Commons sitelink of other article
local sitelink = mw.wikibase.getSitelink(value.mainsnak.datavalue.value.id,"commonswiki")
-- Check to see if it starts with "Category:". If so, strip it and return
if sitelink and mw.ustring.sub(sitelink,1,9) == "Category:" then
return mw.ustring.sub(sitelink,10)
end
end
return nil
end
-- Find Commons category by looking in wikidata
-- Arguments:
-- qid = QID of current article
-- fetch = whether to lookup Commons sitelink (bool)
-- commonsSitelink = default value for Commons sitelink
-- Returns:
-- categoryLink = name of Commons category, nil if nothing is found
-- consistent = multiple wikidata fields are examined: are they consistent?
-- commonsSitelink = commons sitelink for current article
local function _lookupCategory(qid, fetch, commonsSitelink)
if not _validQID(qid) then
return nil, true, nil
end
qid = qid:upper()
local categoryLink = nil
local consistent = true
-- look up commons sitelink for article, use if starts with "Category:"
if fetch then
commonsSitelink = mw.wikibase.getSitelink(qid,"commonswiki") or commonsSitelink
end
if commonsSitelink and mw.ustring.sub(commonsSitelink,1,9) == "Category:" then
categoryLink = mw.ustring.sub(commonsSitelink,10)
end
-- P910 is the "topic's main category". Look for commons sitelink there
local fallback = _lookupFallback(qid,"P910")
if fallback then
if categoryLink and categoryLink ~= fallback then
consistent = false
qid = nil
else
categoryLink = fallback
end
end
-- P1754 is the "list's main category". Look for commons sitelink there
fallback = _lookupFallback(qid,"P1754")
if fallback then
if categoryLink and categoryLink ~= fallback then
consistent = false
qid = nil
else
categoryLink = fallback
end
end
-- P373 is the "commons category" property for this article. This is
-- a low-quality field, so should only be used as a last resort.
if categoryLink == nil and _validQID(qid) then
local P373 = mw.wikibase.getBestStatements(qid, "P373")[1]
if P373 and P373.mainsnak.datavalue then
categoryLink = P373.mainsnak.datavalue.value
consistent = true -- P373 is never used if anything else is available
end
end
return categoryLink, consistent, commonsSitelink
end
-- Does the article have a Commons gallery, and is it consistent?
-- Arguments:
-- qid = QID to lookup in wikidata (for testing only)
-- Returns:
-- filename at Commons, bool: is wikidata consistent for this article?
function p._hasGalleryConsistent(qid)
local wp_title, wp_ns
wp_title, wp_ns, qid = _getTitleQID(qid)
return _lookupGallery(qid,true)
end
-- Does the article have a corresponding Commons gallery?
-- Arguments:
-- qid = QID to lookup in wikidata (for testing only)
-- Returns:
-- filename at Commons if so, false if not
function p._hasGallery(qid)
local galleryLink, consistent = p._hasGalleryConsistent(qid)
return consistent and galleryLink
end
-- Does the article have a Commons category? Is wikidata consistent for that?
-- Arguments:
-- qid = QID to lookup in wikidata (for testing only)
-- prefix = whether to add "Category:" to return string (default true)
-- Returns:
-- filename at Commons, bool: consistent
function p._hasCategoryConsistent(qid,prefix)
if prefix == nil then
prefix = true
end
local wp_title, wp_ns
wp_title, wp_ns, qid = _getTitleQID(qid)
local categoryLink, consistent = _lookupCategory(qid,true)
if categoryLink and prefix then
categoryLink = "Category:"..categoryLink
end
return categoryLink, consistent
end
-- Does the article have a corresponding Commons category?
-- Arguments:
-- qid = QID to lookup in wikidata (for testing only)
-- prefix = whether to add "Category:" to return string (default true)
-- Returns:
-- filename at Commons if so, blank if not
function p._hasCategory(qid,prefix)
local categoryLink, consistent = p._hasCategoryConsistent(qid,prefix)
return consistent and categoryLink
end
-- Create Commons link corresponding to current article
-- Arguments:
-- namespace = namespace in Commons ("" for galleries)
-- default = use as Commons link, don't access wikidata
-- search = string to search for
-- fallback = string to search for if wikidata fails
-- formatting = formatting parameters
-- qid = QID to lookup in wikidata (for testing only)
-- Returns:
-- formatted wikilink to Commons in specified namespace
function p._getCommons(namespace,default,search,fallback,formatting,qid)
local nsColon
if not namespace or namespace == "" then
nsColon = ""
else
nsColon = namespace..":"
end
if default then
return "[[Commons:"..nsColon..default.."|".._formatResult(default,formatting).."]]"
end
if search then
return "[[Commons:Special:Search/"..nsColon..search.."|".._formatResult(search,formatting).."]]"
end
local wp_title, wp_ns
wp_title, wp_ns, qid = _getTitleQID(qid)
local commonsLink = nil
local consistent = true
if nsColon == "" then
commonsLink, consistent = _lookupGallery(qid,true)
elseif namespace:lower() == "category" then
commonsLink, consistent = _lookupCategory(qid,true)
end
-- use wikidata if consistent
if commonsLink and consistent then
return "[[Commons:"..nsColon..commonsLink.."|".._formatResult(commonsLink,formatting).."]]"
end
-- if not consistent, fall back to search and add to tracking cat
-- construct default result (which searches for title)
local searchResult = "[[Commons:Special:Search/"..nsColon..(fallback or wp_title)
.."|".._formatResult(fallback or wp_title,formatting).."]]"
if not consistent and wp_ns == "" then
local friendlyNS
if nsColon == "" then
friendlyNS = "gallery"
else
friendlyNS = namespace:lower()
end
searchResult = searchResult.."[[Category:Inconsistent wikidata for Commons "..friendlyNS.."]]"
end
return searchResult
end
-- Returns "best" Commons link: first look for gallery, then try category
-- Arguments:
-- default = use as Commons link, don't access wikidata
-- search = string to search for
-- fallback = string to search for if wikidata lookup fails
-- formatting = formatting parameters
-- qid = QID to lookup in wikidata (for testing only)
-- Returns:
-- formatted wikilink to Commons "best" landing page
function p._getGalleryOrCategory(default, search, fallback, formatting, qid)
if default then
return "[[Commons:"..default.."|".._formatResult(default,formatting).."]]"
end
if search then
return "[[Commons:Special:Search/"..search.."|".._formatResult(search,formatting).."]]"
end
local wp_title, wp_ns
wp_title, wp_ns, qid = _getTitleQID(qid)
local trackingCats = ""
local galleryLink, consistent, commonsSitelink = _lookupGallery(qid,true)
-- use wikidata if either sitelink or P935 exist, and they both agree
if galleryLink and consistent then
return "[[Commons:"..galleryLink.."|".._formatResult(galleryLink,formatting).."]]"
end
if not consistent and wp_ns == "" then
trackingCats = "[[Category:Inconsistent wikidata for Commons gallery]]"
end
-- if gallery is not good, fall back looking for category
local categoryLink
categoryLink, consistent = _lookupCategory(qid,false,commonsSitelink)
if categoryLink and consistent then
return "[[Commons:Category:"..categoryLink.."|".._formatResult(categoryLink,formatting).."]]"..trackingCats
end
if not consistent and wp_ns == "" then
trackingCats = trackingCats.."[[Category:Inconsistent wikidata for Commons category]]"
end
-- return search result looking for title as last attempt
return "[[Commons:Special:Search/" .. (fallback or wp_title) ..
"|" .. _formatResult(fallback or wp_title,formatting) .. "]]" .. trackingCats
end
-- Return link(s) Commons gallery, or category, or both from wikidata
-- Arguments:
-- defaultGallery = default gallery link to use, instead of wikidata
-- defaultCategory = default category link to use, instead of wikidata
-- categoryText = if both gallery and category, text to use in category link ("category" by default)
-- oneSearch = only emit one search result
-- formatting = formatting parameters
-- qid = qid of page to lookup in wikidata (testing only)
function p._getGalleryAndCategory(defaultGallery, defaultCategory,
categoryText, oneSearch, formatting, qid
)
local wp_title, wp_ns
wp_title, wp_ns, qid = _getTitleQID(qid)
categoryText = categoryText or "category"
local trackingCats = ""
local galleryLink, galleryConsistent
local commonsSitelink = nil
if defaultGallery then
galleryLink = defaultGallery
galleryConsistent = true
else
galleryLink, galleryConsistent, commonsSitelink = _lookupGallery(qid,true)
end
local galleryGood = galleryLink and galleryConsistent
if not galleryConsistent and wp_ns == "" then
trackingCats = "[[Category:Inconsistent wikidata for Commons gallery]]"
end
local categoryLink, categoryConsistent
if defaultCategory then
categoryLink = defaultCategory
categoryConsistent = true
else
categoryLink, categoryConsistent = _lookupCategory(qid,defaultGallery,commonsSitelink)
end
local categoryGood = categoryLink and categoryConsistent
if not categoryConsistent and wp_ns == "" then
trackingCats = trackingCats.."[[Category:Inconsistent wikidata for Commons category]]"
end
local firstLink
-- construct default result (which searches for title)
local searchResult = "[[Commons:Special:Search/"..wp_title.."|".._formatResult(wp_title,formatting).."]]"
if not oneSearch then
searchResult = searchResult.." ([[Commons:Special:Search/Category:"..wp_title.."|"..categoryText.."]])"
end
local linkText = nil
if galleryGood then
firstLink = galleryLink
linkText = galleryLink
elseif categoryGood then
firstLink = "Category:"..categoryLink
linkText = categoryLink
else
return searchResult..trackingCats
end
local resultVal = "[[Commons:"..firstLink.."|".._formatResult(linkText,formatting).."]]"
if galleryGood and categoryGood then
resultVal = resultVal.." ([[Commons:Category:"..categoryLink.."|"..categoryText.."]])"
end
return resultVal..trackingCats
end
-- Compare two titles with their namespaces stripped
local function titleMatch(s1,s2)
s1 = s1 or ""
s2 = s2 or ""
s1 = mw.ustring.gsub(s1,"^[^:]+:","")
s2 = mw.ustring.gsub(s2,"^[^:]+:","")
return s1 == s2
end
local galleryTrackingCats = {
commons_link_on_wikidata = '[[Category:Commons link is on Wikidata]]',
commons_link_defined_as_pagename = '[[Category:Commons link is defined as the pagename]]',
commons_link_locally_defined = '[[Category:Commons link is locally defined]]',
commons_link_from_wikidata = '[[Category:Commons link from Wikidata]]',
commons_link_is_pagename = '[[Category:Commons link is the pagename]]',
inconsistent = '[[Category:Inconsistent wikidata for Commons gallery]]'
}
local categoryTrackingCats = {
commons_link_on_wikidata = '[[Category:Commons category link is on Wikidata]]',
commons_link_defined_as_pagename = '[[Category:Commons category link is defined as the pagename]]',
commons_link_locally_defined = '[[Category:Commons category link is locally defined]]',
commons_link_from_wikidata = '[[Category:Commons category link from Wikidata]]',
commons_link_is_pagename = '[[Category:Commons category link is the pagename]]',
inconsistent = '[[Category:Inconsistent wikidata for Commons category]]'
}
local function selectTrackingCat(trackingCats,wikidata,consistent,default,title)
if not consistent then
return trackingCats.inconsistent
end
if default then
-- construct warning message
if default == wikidata then
return trackingCats.commons_link_on_wikidata
end
local warning = ""
if wikidata then
warning = generateWarning({
"Commons link does not match Wikidata – [[Template:Commons_category#Resolving_discrepancies|please check]]"
})
end
if titleMatch(default,title) then
return trackingCats.commons_link_defined_as_pagename .. warning
end
return trackingCats.commons_link_locally_defined .. warning
end
if wikidata then
return trackingCats.commons_link_from_wikidata
end
return trackingCats.commons_link_is_pagename
end
-- Figure out tracking categories and editor warnings
-- Arguments:
-- default = Commons link argument passed to template
-- fetchGallery = whether to fetch a gallery from Wikidata
-- fetchCategory = whether to fetch a category from Wikidata
-- qid = force a qid for testing
-- Returns:
-- tracking category and possible user warning
--
-- Note: the logic for the tracking is quite different than the logic
-- for generating Commons links (above). Thus, it is separated into another
-- function for code clarity and maintainability. This should not seriously
-- affect performance: server time is dominated by fetching wikidata entities,
-- and those entities should be cached and shared between the Commons generating
-- code and this tracking code.
function p._tracking(default, fetchGallery, fetchCategory, qid)
local title, wp_ns, wp_qid = _getTitleQID(qid,true)
if wp_ns ~= "" then
title = wp_ns..":"..title
end
-- only track if test or namespace=article or namespace=category
if not (qid or wp_ns == "" or wp_ns == "Category") then
return ""
end
-- determine title and namespace of wikidata and wp article
local wikidata = nil
local consistent = nil
-- Tracking code works for all 4 cases of states of fetchGallery/Category
-- fetchGallery takes precedence
if fetchGallery then
wikidata, consistent = p._hasGalleryConsistent(qid)
if default or not fetchCategory or (consistent and wikidata) then
return selectTrackingCat(galleryTrackingCats,wikidata,consistent,
default,title)
end
end
if fetchCategory then
local cat_wikidata, cat_consistent = p._hasCategoryConsistent(qid,true)
if not fetchGallery or (cat_consistent and cat_wikidata) then
return selectTrackingCat(categoryTrackingCats,cat_wikidata,
cat_consistent,default,title)
end
return selectTrackingCat(galleryTrackingCats,wikidata,consistent,
default,title)
end
return "" -- nothing fetched, nothing tracked
end
local function _createFormatting(args)
local formatting = {}
formatting.linktext = args.linktext
formatting.lcfirst = yesNo(args.lcfirst)
formatting.bold = yesNo(args.bold)
formatting.italic = yesNo(args.italic)
formatting.nowrap = yesNo(args.nowrap)
return formatting
end
-- Testing-only entry point for _getTitleQID
function p.getTitleQID(frame)
local args = getArgs(frame,{frameOnly=true,parentOnly=false,parentFirst=false})
local text, ns, qid = _getTitleQID(args[1],args[2])
return text..","..ns..","..(qid or "nil")
end
-- Testing-only entry point for _lookupFallback
function p.lookupFallback(frame)
local args = getArgs(frame,{frameOnly=true,parentOnly=false,parentFirst=false})
local fallback = _lookupFallback(args[1],args[2])
return fallback or "nil"
end
-- Find the Commons gallery page associated with article
function p.getGallery(frame)
local args = getArgs(frame,{frameOnly=true,parentOnly=false,parentFirst=false})
return p._getCommons("",args[1],args.search,args.fallback,_createFormatting(args),args.qid)
end
-- Find the Commons category page associated with article
function p.getCategory(frame)
local args = getArgs(frame,{frameOnly=true,parentOnly=false,parentFirst=false})
local retval = p._getCommons("Category", args[1],
args.search, args.fallback, _createFormatting(args), args.qid
)
if args.tracking then
local default = nil
if args[1] then
default = "Category:"..args[1]
end
retval = retval..p._tracking(default, false, true, args.qid)
end
return retval
end
function p.getGalleryOrCategory(frame)
local args = getArgs(frame,{frameOnly=true,parentOnly=false,parentFirst=false})
local retval = p._getGalleryOrCategory(
args[1], args.search, args.fallback, _createFormatting(args), args.qid
)
if args.tracking then
retval = retval..p._tracking(args[1],true,true,args.qid)
end
return retval
end
function p.hasGallery(frame)
local args = getArgs(frame,{frameOnly=true,parentOnly=false,parentFirst=false})
return p._hasGallery(args.qid) or ""
end
function p.hasCategory(frame)
local args = getArgs(frame,{frameOnly=true,parentOnly=false,parentFirst=false})
return p._hasCategory(args.qid) or ""
end
function p.hasGalleryOrCategory(frame)
local args = getArgs(frame,{frameOnly=true,parentOnly=false,parentFirst=false})
return p._hasGallery(args.qid) or p._hasCategory(args.qid) or ""
end
function p.getGalleryAndCategory(frame)
local args = getArgs(frame,{frameOnly=true,parentOnly=false,parentFirst=false})
return p._getGalleryAndCategory(args[1], args[2],
args.categoryText, args.oneSearch, _createFormatting(args), args.qid)
end
function p.tracking(frame)
local args = getArgs(frame,{frameOnly=true,parentOnly=false,parentFirst=false})
return p._tracking(args[1], args.fetchGallery, args.fetchCategory, args.qid)
end
return p
tiwwt5d4q8wb5gx6nh70z4fiqb3bkp6
Module:Commons link/doc
828
1572
14992
2022-07-16T21:41:37Z
Kambai Akau
15
Created page with "{{Module rating|release}} {{High use}} {{Lua|Module:If preview|Module:Arguments}} For testing the sandbox, see [[Module:Commons link/sandbox/testcases]]. == Usage == <code><nowiki>{{</nowiki>#invoke:{{BASEPAGENAME}}|getGallery}}</code> :Use wikidata to find Commons gallery corresponding to this article. If unable to find gallery in wikidata, default to searching for PAGENAME in Commons. <code><nowiki>{{</nowiki>#invoke:{{BASEPAGENAME}}|getGallery|title|linktext=text}..."
wikitext
text/x-wiki
{{Module rating|release}}
{{High use}}
{{Lua|Module:If preview|Module:Arguments}}
For testing the sandbox, see [[Module:Commons link/sandbox/testcases]].
== Usage ==
<code><nowiki>{{</nowiki>#invoke:{{BASEPAGENAME}}|getGallery}}</code>
:Use wikidata to find Commons gallery corresponding to this article. If unable to find gallery in wikidata, default to searching for PAGENAME in Commons.
<code><nowiki>{{</nowiki>#invoke:{{BASEPAGENAME}}|getGallery|title|linktext=text}}</code>
:Link to Commons gallery at <code>title</code>. Optionally, use <code>text</code> as displayed link text.
<code><nowiki>{{</nowiki>#invoke:{{BASEPAGENAME}}|getGallery|search=string|linktext=text}}</code>
:Link to Commons search for <code>string</code>. Optionally, use <code>text</code> as displayed link text.
<code><nowiki>{{</nowiki>#invoke:{{BASEPAGENAME}}|getCategory|fallback=string|linktext=text}}</code>
:Use wikidata first, then if failure, use Commons search for <code>string</code>. Optionally, use <code>text</code> as displayed link text.
<code><nowiki>{{</nowiki>#invoke:{{BASEPAGENAME}}|getCategory}}</code>
:Use wikidata to find Commons category corresponding to this article. If unable to find category in wikidata, default to searching for Category:PAGENAME in Commons.
<code><nowiki>{{</nowiki>#invoke:{{BASEPAGENAME}}|getCategory|title|linktext=text}}</code>
:Link to Commons category at <code>Category:title</code>. Optionally, use <code>text</code> as displayed link text.
<code><nowiki>{{</nowiki>#invoke:{{BASEPAGENAME}}|getCategory|search=string|linktext=text}}</code>
:Link to Commons search for <code>Category:string</code>. Optionally, use <code>text</code> as displayed link text.
<code><nowiki>{{</nowiki>#invoke:{{BASEPAGENAME}}|getCategory|fallback=string|linktext=text}}</code>
:Use wikidata first, then if failure, use Commons search for <code>Category:string</code>. Optionally, use <code>text</code> as displayed link text.
<code><nowiki>{{</nowiki>#invoke:{{BASEPAGENAME}}|getGalleryOrCategory}}</code>
:Use wikidata to find "best" single Commons link: try gallery first, fall back to category. Other arguments as above.
<code><nowiki>{{</nowiki>#invoke:{{BASEPAGENAME}}|getGalleryAndCategory}}</code>
:Lua to implement {{tl|commons and category}}: return Commons gallery, Commons category, or both (if both found)
<code><nowiki>{{</nowiki>#invoke:{{BASEPAGENAME}}|getGalleryAndCategory|GalleryName|CategoryName}}</code>
:Either GalleryName or CategoryName or both can be supplied, will override wikidata search
<code><nowiki>{{</nowiki>#invoke:{{BASEPAGENAME}}|bold=1|italic=1|nowrap=1|lcfirst=1}}</code>
:Format of first link can be specified (any combination of bold, italic, nowrap, and lower-case first character)
<code><nowiki>{{</nowiki>#invoke:{{BASEPAGENAME}}|linktext=link|categoryText=category}}</code>
:Text in the first link, and the second (category) link can be overridden, also.
<code><nowiki>{{</nowiki>#invoke:{{BASEPAGENAME}}|tracking=1}}</code>
:Module can generate tracking categories for mismatch between supplied arguments and Wikidata.
<includeonly>{{#ifeq:{{SUBPAGENAME}}|sandbox | |
[[Category:Wikidata modules]]
}}</includeonly>
m69556lir2sak6b1x5l2cy1b5zp3f7p
Module:If preview
828
1573
14993
2022-07-16T21:43:17Z
Kambai Akau
15
Created page with "local p = {} local cfg = mw.loadData('Module:If preview/configuration') --[[ main This function returns either the first argument or second argument passed to this module, depending on whether the page is being previewed. ]] function p.main(frame) if cfg.preview then return frame.args[1] or '' else return frame.args[2] or '' end end --[[ pmain This function returns either the first argument or second argument passed to this module's parent (i.e. template usi..."
Scribunto
text/plain
local p = {}
local cfg = mw.loadData('Module:If preview/configuration')
--[[
main
This function returns either the first argument or second argument passed to
this module, depending on whether the page is being previewed.
]]
function p.main(frame)
if cfg.preview then
return frame.args[1] or ''
else
return frame.args[2] or ''
end
end
--[[
pmain
This function returns either the first argument or second argument passed to
this module's parent (i.e. template using this module), depending on whether it
is being previewed.
]]
function p.pmain(frame)
return p.main(frame:getParent())
end
local function warning_text(warning)
return mw.ustring.format(
cfg.warning_infrastructure,
cfg.templatestyles,
warning
)
end
function p._warning(args)
local warning = args[1] and args[1]:match('^%s*(.-)%s*$') or ''
if warning == '' then
return warning_text(cfg.missing_warning)
end
if not cfg.preview then return '' end
return warning_text(warning)
end
--[[
warning
This function returns a "preview warning", which is the first argument marked
up with HTML and some supporting text, depending on whether the page is being previewed.
disabled since we'll implement the template version in general
]]
--function p.warning(frame)
-- return p._warning(frame.args)
--end
--[[
warning, but for pass-through templates like {{preview warning}}
]]
function p.pwarning(frame)
return p._warning(frame:getParent().args)
end
return p
i2018hg2i8x3uajzdhhh7yzkknltvcf
Module:If preview/doc
828
1574
14994
2022-07-16T21:44:04Z
Kambai Akau
15
Created page with "{{Module rating|protected}} {{High-use}} {{Lua|Module:If preview/configuration}} {{Uses TemplateStyles|Module:If preview/styles.css}} This module implements {{tl|if preview}} and {{tl|preview warning}}. It helps templates/modules determine if they are being previewed. Prefer implementing the template versions in other templates. In a module to use the <code>main()</code>, you need to pass a frame table with an args table. For the preview warning, use <code>_warning()..."
wikitext
text/x-wiki
{{Module rating|protected}}
{{High-use}}
{{Lua|Module:If preview/configuration}}
{{Uses TemplateStyles|Module:If preview/styles.css}}
This module implements {{tl|if preview}} and {{tl|preview warning}}. It helps templates/modules determine if they are being previewed.
Prefer implementing the template versions in other templates.
In a module to use the <code>main()</code>, you need to pass a frame table with an args table.
For the preview warning, use <code>_warning()</code>.
<includeonly>{{#ifeq:{{SUBPAGENAME}}|sandbox | |
<!-- Categories below this line, please; interwikis at Wikidata -->
}}</includeonly>
l0qie02zm6xma3ecafsa97c1u9cystd
Module:If preview/styles.css
828
1575
14995
2022-07-16T21:44:48Z
Kambai Akau
15
Created page with "/* {{pp|small=yes}} */ .preview-warning { font-style: italic; /* @noflip */ padding-left: 1.6em; margin-bottom: 0.5em; color: red; } /* The templatestyles element inserts a link element before hatnotes. * TODO: Remove link if/when WMF resolves T200206 */ .preview-warning + link + .preview-warning { margin-top: -0.5em; }"
sanitized-css
text/css
/* {{pp|small=yes}} */
.preview-warning {
font-style: italic;
/* @noflip */
padding-left: 1.6em;
margin-bottom: 0.5em;
color: red;
}
/* The templatestyles element inserts a link element before hatnotes.
* TODO: Remove link if/when WMF resolves T200206 */
.preview-warning + link + .preview-warning {
margin-top: -0.5em;
}
gaiz1uhqgmf5elgq82yqqfll7kgcbwe
Module:If preview/configuration
828
1576
14996
2022-07-16T21:45:41Z
Kambai Akau
15
Created page with "--[[ We perform the actual check for whether this is a preview here since preprocessing is relatively expensive. ]] local frame = mw.getCurrentFrame() local function is_preview() local revision_id = frame:preprocess('{{REVISIONID}}') -- {{REVISIONID}} is usually the empty string when previewed. -- I don't know why we're checking for nil but hey, maybe someday things -- would have broken return revision_id == nil or revision_id == '' end local function templatestyl..."
Scribunto
text/plain
--[[
We perform the actual check for whether this is a preview here since
preprocessing is relatively expensive.
]]
local frame = mw.getCurrentFrame()
local function is_preview()
local revision_id = frame:preprocess('{{REVISIONID}}')
-- {{REVISIONID}} is usually the empty string when previewed.
-- I don't know why we're checking for nil but hey, maybe someday things
-- would have broken
return revision_id == nil or revision_id == ''
end
local function templatestyles()
return frame:extensionTag{
name = 'templatestyles', args = { src = 'Module:If preview/styles.css' }
}
end
return {
preview = is_preview(),
templatestyles = templatestyles(),
warning_infrastructure = '%s<div class="preview-warning"><strong>Preview warning:</strong> %s</div>',
missing_warning = 'The template has no warning text. Please add a warning.'
}
7ccf9c7e3yxw9p4ke6iw4ndcfniweno
Ta̱mpi̱let:Commons category-inline/doc
10
1577
15534
14997
2022-08-07T15:46:38Z
Kambai Akau
15
/* Purpose */
wikitext
text/x-wiki
{{Documentation subpage}}
{{high use}}
<!-- PLEASE ADD CATEGORIES AND INTERWIKIS AT THE BOTTOM OF THIS PAGE -->
{{template shortcut|Commonscat-inline}}
==Purpose==
This template can be used to generate a link to a [[commons:Commons:Si̱sa|Sa Commons]]. It is intended for use in the "[[WP:LAYOUTEL|A̱ka̱fwuop nta]]" section of an article.
==Usage==
<kbd><nowiki>* {{Commons category-inline|Ursus maritimus}}</nowiki></kbd>
yields:
* {{Commons category-inline|Ursus maritimus}}
----
<kbd><nowiki>* {{Commons category-inline|Ursus maritimus|Polar bears}}</nowiki></kbd>
yields:
* {{Commons category-inline|Ursus maritimus|Polar bears}}
----
<kbd><nowiki>* {{Commons category-inline|Ursus maritimus|''Ursus maritimus''}}</nowiki></kbd>
yields:
* {{Commons category-inline|Ursus maritimus|''Ursus maritimus''}}
==TemplateData==
{{TemplateDataHeader}}
<TemplateData>
{
"description": "This template creates a link to a category on Commons.",
"params": {
"1": {
"label": "Category name",
"description": "The name of the Commons category this template will link to. If no value is provided the Wikidata sitelinks are used by default.",
"type": "string",
"required": false
},
"2": {
"label": "Displayed text",
"description": "The text that the link will display to the user. If no value is provided it will default to category name or page name, in that order.",
"type": "string",
"required": false
},
"nowrap": {
"label": "nowrap",
"description": "Stops the text of the commons category from wrapping",
"type": "string",
"required": false
},
"lcfirst": {
"label": "lcfirst",
"description": "Displays the first letter as lower-case",
"type": "string",
"required": false
}
}
}
</TemplateData>
==Tracking categories==
=== Normal categories ===
* {{clc|Commons category link from Wikidata}}
* {{clc|Commons category link is on Wikidata}}
=== Maintenance categories ===
* {{clc|Commons category link is defined as the pagename}}
* {{clc|Commons category link is locally defined}}
* {{clc|Commons category link is the pagename}}
* {{clc|Inconsistent wikidata for Commons category}}
==See also==
{{Commons templates see also}}
<includeonly>{{Sandbox other||
<!-- CATEGORIES AND INTERWIKIS HERE, THANKS -->
[[Category:Exclude in print]]
[[Category:Interwiki category linking templates]]
[[Category:Interwiki link templates]]
[[Category:Wikimedia Commons templates]]
[[de:Vorlage:Commonscat]]<!-- in German Wikipedia commonscat-template itself is formated inline -->
}}</includeonly>
e1kqetqidh5fplwh3w6hkeujel9kh9n
Module:Navbox/styles.css
828
1578
15000
2022-07-16T22:13:03Z
Kambai Akau
15
Created page with "/* {{pp|small=y}} */ .navbox { box-sizing: border-box; border: 1px solid #a2a9b1; width: 100%; clear: both; font-size: 88%; text-align: center; padding: 1px; margin: 1em auto 0; /* Prevent preceding content from clinging to navboxes */ } .navbox .navbox { margin-top: 0; /* No top margin for nested navboxes */ } .navbox + .navbox, /* TODO: remove first line after transclusions have updated */ .navbox + .navbox-styles + .navbox { margin-top: -1px; /* Single pix..."
sanitized-css
text/css
/* {{pp|small=y}} */
.navbox {
box-sizing: border-box;
border: 1px solid #a2a9b1;
width: 100%;
clear: both;
font-size: 88%;
text-align: center;
padding: 1px;
margin: 1em auto 0; /* Prevent preceding content from clinging to navboxes */
}
.navbox .navbox {
margin-top: 0; /* No top margin for nested navboxes */
}
.navbox + .navbox, /* TODO: remove first line after transclusions have updated */
.navbox + .navbox-styles + .navbox {
margin-top: -1px; /* Single pixel border between adjacent navboxes */
}
.navbox-inner,
.navbox-subgroup {
width: 100%;
}
.navbox-group,
.navbox-title,
.navbox-abovebelow {
padding: 0.25em 1em;
line-height: 1.5em;
text-align: center;
}
.navbox-group {
white-space: nowrap;
/* @noflip */
text-align: right;
}
.navbox,
.navbox-subgroup {
background-color: #fdfdfd;
}
.navbox-list {
line-height: 1.5em;
border-color: #fdfdfd; /* Must match background color */
}
.navbox-list-with-group {
text-align: left;
border-left-width: 2px;
border-left-style: solid;
}
/* cell spacing for navbox cells */
/* Borders above 2nd, 3rd, etc. rows */
/* TODO: figure out how to replace tr as structure;
* with div structure it should be just a matter of first-child */
tr + tr > .navbox-abovebelow,
tr + tr > .navbox-group,
tr + tr > .navbox-image,
tr + tr > .navbox-list {
border-top: 2px solid #fdfdfd; /* Must match background color */
}
.navbox-title {
background-color: #ccf; /* Level 1 color */
}
.navbox-abovebelow,
.navbox-group,
.navbox-subgroup .navbox-title {
background-color: #ddf; /* Level 2 color */
}
.navbox-subgroup .navbox-group,
.navbox-subgroup .navbox-abovebelow {
background-color: #e6e6ff; /* Level 3 color */
}
.navbox-even {
background-color: #f7f7f7;
}
.navbox-odd {
background-color: transparent;
}
/* TODO: figure out how to remove reliance on td as structure */
.navbox .hlist td dl,
.navbox .hlist td ol,
.navbox .hlist td ul,
.navbox td.hlist dl,
.navbox td.hlist ol,
.navbox td.hlist ul {
padding: 0.125em 0;
}
.navbox .navbar {
display: block;
font-size: 100%;
}
.navbox-title .navbar {
/* @noflip */
float: left;
/* @noflip */
text-align: left;
/* @noflip */
margin-right: 0.5em;
}
r3sdo030s2y37osfqh0rur7i26x9epy
Module:Navbar/styles.css
828
1579
15001
2022-07-16T22:14:09Z
Kambai Akau
15
Created page with "/* {{pp|small=yes}} */ .navbar { display: inline; font-size: 88%; font-weight: normal; } .navbar-collapse { float: left; text-align: left; } .navbar-boxtext { word-spacing: 0; } .navbar ul { display: inline-block; white-space: nowrap; line-height: inherit; } .navbar-brackets::before { margin-right: -0.125em; content: '[ '; } .navbar-brackets::after { margin-left: -0.125em; content: ' ]'; } .navbar li { word-spacing: -0.125em; } .navbar a > span, .nav..."
sanitized-css
text/css
/* {{pp|small=yes}} */
.navbar {
display: inline;
font-size: 88%;
font-weight: normal;
}
.navbar-collapse {
float: left;
text-align: left;
}
.navbar-boxtext {
word-spacing: 0;
}
.navbar ul {
display: inline-block;
white-space: nowrap;
line-height: inherit;
}
.navbar-brackets::before {
margin-right: -0.125em;
content: '[ ';
}
.navbar-brackets::after {
margin-left: -0.125em;
content: ' ]';
}
.navbar li {
word-spacing: -0.125em;
}
.navbar a > span,
.navbar a > abbr {
text-decoration: inherit;
}
.navbar-mini abbr {
font-variant: small-caps;
border-bottom: none;
text-decoration: none;
cursor: inherit;
}
.navbar-ct-full {
font-size: 114%;
margin: 0 7em;
}
.navbar-ct-mini {
font-size: 114%;
margin: 0 4em;
}
id9uhrgq1wqygbzuyhnoc90pmdlwwhd
Ta̱mpi̱let:Small
10
1580
15002
2022-07-16T22:14:57Z
Kambai Akau
15
Created page with "<span style="font-size:85%;">{{{1}}}</span><includeonly>{{SAFESUBST:#if:{{{1|}}}||[[Category:Pages using small with an empty input parameter]]}}</includeonly><noinclude> {{Documentation}}<!--Categories and interwikis go in the /doc sub-page.--> </noinclude>"
wikitext
text/x-wiki
<span style="font-size:85%;">{{{1}}}</span><includeonly>{{SAFESUBST:#if:{{{1|}}}||[[Category:Pages using small with an empty input parameter]]}}</includeonly><noinclude>
{{Documentation}}<!--Categories and interwikis go in the /doc sub-page.-->
</noinclude>
dvonxxvea06kvln677gbl2xk9rrnlog
Ta̱mpi̱let:Small/doc
10
1581
15003
2022-07-16T22:15:33Z
Kambai Akau
15
Created page with "{{Documentation subpage}} {{High-risk| 901592 }} {{COinS safe|n}} {{Notice|As of [[Special:Diff/724648585|June 10, 2016]], a rule has been added to MediaWiki:Common.css, so now {{tag|small|o}} consistently renders at size that is 85% of the surrounding text. This template remains as a convenience wrapper.}} == Usage == This template is a replacement for {{tag|small}}. Remember "Avoid using smaller font sizes in elements that already use a smaller font size, such as inf..."
wikitext
text/x-wiki
{{Documentation subpage}}
{{High-risk| 901592 }}
{{COinS safe|n}}
{{Notice|As of [[Special:Diff/724648585|June 10, 2016]], a rule has been added to MediaWiki:Common.css, so now {{tag|small|o}} consistently renders at size that is 85% of the surrounding text. This template remains as a convenience wrapper.}}
== Usage ==
This template is a replacement for {{tag|small}}.
Remember "Avoid using smaller font sizes in elements that already use a smaller font size, such as infoboxes, navboxes and references sections", per [[MOS:ACCESS#Font size]] and [[MOS:SMALLFONT]]. Using this template within an infobox would produce a font size 75% of the page default, well below the 85% minimum specified in the linked guidelines. <!-- Per [[Wikipedia:Village pump (technical)/Archive 159#Infobox font size]], common text within an infobox is 88% of page default. Therefore use of this template in an infobox yields 74.8% of page default (0.88 * 0.85). -->
The only parameter is the content and may contain templates, images, etc. if a block needs to be wrapped in this template and contains such elements. Note that if the <code>=</code> character appears in the content, the parameter must be explicitly specified as {{para|1}}.
Do not use this template to wrap multiple lines; doing so will cause [[Special:LintErrors|Linter]] errors. If you need to wrap multiple list items or multiple paragraphs, use {{tl|smalldiv}} around the entire block, or wrap each list item or paragraph separately.
Thus {{done|Good practice}}:
{| class="wikitable"
|-
!input
!shows
|-
| <code><nowiki>What a wonderful world</nowiki></code>
| What a wonderful world
|-
| <code><nowiki>{{small|What a wonderful world}}</nowiki></code>
| {{small|What a wonderful world}}
|-
| <code><nowiki>{{small|1=3 + 2 = 5}}</nowiki></code>
| {{small|1=3 + 2 = 5}}
|-
|<pre>{{small|1=103}}
{{small|1=+ 2}}
——
{{small|1=105}}</pre>
|{{small|1=103}}
{{small|1=+ 2}}
——
{{small|1=105}}
|}
{{not done|Don't do this}}:
<pre><nowiki>{{small|
*One
*Two
*Three}}</nowiki></pre>
{{done|Do this instead}}:
<pre><nowiki>{{smalldiv|
*One
*Two
*Three}}</nowiki></pre>
== Template data ==
{{TemplateDataHeader}}
<templatedata>
{
"description": "A template shortcut for the \"small\" HTML tag that makes the font smaller ",
"params": {
"1": {
"label": "Text",
"description": "The text that you'd like to be made smaller",
"type": "string",
"required": true
}
}
}
</templatedata>
== Tracking category ==
* {{clc|Pages using small with an empty input parameter}}
== See also ==
{{font size templates}}
<includeonly>{{sandbox other||
<!-- TEMPLATE CATEGORIES HERE, THANKS -->
[[Category:Resizing templates|{{PAGENAME}}]]
[[Category:Wikipedia XHTML tag-replacing templates]]
[[Category:Templates that add a tracking category]]
}}</includeonly>
131truh94auttbf1aocccu0h92rv6i0
Ki̱ri (a̱lyem)
0
1582
15020
15019
2022-07-17T10:57:16Z
Kambai Akau
15
wikitext
text/x-wiki
{{Databox|item=Q33390}}
'''Ki̱ri''' (Ki̱ri: ᐃᔨᔨᐤ ᐊᔨᒧᐎᓐ', [[Shong]]: Cree /ˈkriː/<ref>Laurie Bauer (2007). ''The Linguistics Student's Handbook''. Edinburgh.</ref> ku Cree–Montagnais–Naskapi) yet sot a̱balilyem A̱li̱gwonkin ja nang kpa̱mkpaan ma̱ng á̱niet 117,000 lyiat a̱ni ma̱ a̱byin [[Ka̱na̱da]], kyiak neet di̱ fam-a̱byin [[Northwest Territories]] hu ba̱ng si̱ nat [[Alberta]] mbeang [[Labrador]].<ref name=":1">[https://www.ece.gov.nt.ca/en/services/secretariat-des-langues-autochtones/official-languages-overview Education, Culture, and Employment]. Government of the Northwest Territories.</ref> Ka̱ á̱ si̱ kyiak nji ji̱ yet a̱lyem a̱nyiung kya a̱ni, jija ji̱ na yet a̱lyem a̱ka̱k a̱byin ka̱ na swak ma̱ng shi á̱nietlyiat mi̱ Ka̱na̱da.<ref name="census">[http://www12.statcan.ca/english/census06/data/topics/RetrieveProductTable.cfm?ALEVEL=3&APATH=3&CATNO=&DETAIL=0&DIM=&DS=99&FL=0&FREE=0&GAL=0&GC=99&GK=NA&GRP=1&IPS=&METH=0&ORDER=1&PID=89189&PTYPE=88971&RL=0&S=1&ShowAll=No&StartRow=1&SUB=705&Temporal=2006&Theme=70&VID=0&VNAMEE=&VNAMEF2006 Census] (di̱n Shong). Statistics Canada.</ref> Fam-a̱byin nyiung hwa ma̱nyin nang Ki̱ri byia̱ shi yet a̱lyem a̱gwomna̱ti, [[Northwest Territories]], mbeang á̱ka̱k lilyem a̱ni̱nai á̱ghyang. A̱ja̱u, a̱tsak a̱ka̱vwuo á̱ lyiat Ki̱ri wa si̱ yet Fort Smith ma̱ng Hay River.<ref name=":2">[https://www.ece.gov.nt.ca/sites/www.ece.gov.nt.ca/files/resources/english_version.2016-2017_ol_ar.pdf 2016–2017 annual report on official languages] (di̱n Shong). Government of the Northwest Territories.</ref>
==Ya̱fang==
<references/>
[[Category:Lilyem swanta]]
[[Category:Lilyem Amerika]]
flizs7azttv1kiqm5os3gf05imtrf2x
Sa:Lilyem Amerika
14
1583
15012
2022-07-17T10:22:27Z
Kambai Akau
15
Created page with "[[Category:Lilyem swanta]]"
wikitext
text/x-wiki
[[Category:Lilyem swanta]]
siqk1j2f5781tc8bogiddjzy9avp1t0
A̱kurung A̱la̱u-a̱ti̱tak Swanta FIFA 2006
0
1588
15128
15127
2022-07-17T14:57:55Z
Kambai Akau
15
wikitext
text/x-wiki
{{Databox|item=Q37285}}
'''A̱kurung A̱la̱u-a̱ti̱tak Swanta FIFA 2006''' ku yet a̱yangka̱nan A̱kurung A̱la̱u-a̱ti̱tak FIFA swak ma̱ng a̱ni̱nai nang sot a̱la̱u-a̱ti̱tak bibyin swanta ji nyia̱ a̱ka̱nyiung lilyim kuzang ndyia̱ a̱naai a̱ni mat cat a̱nga̱ri̱m a̱fai mi̱ vwuo hu. Á̱ ku nyia̱ a̱yangka̱nan wuni kyiak neet mi̱ mam 9 mi̱ Zwat A̱taa ba̱ng si̱ tat mam 9 2006 mi̱ [[Jami̱ni]], a̱byin ka̱ ku san a̱wat nyia̱ nyia̱ jini mi̱ Zwat A̱natat 2000.
==A̱ka̱fwuop nta==
{{Commons category|2006 FIFA World Cup|A̱kurung A̱la̱u-a̱ti̱tak Swanta FIFA 2006}}
*[https://www.fifa.com/tournaments/mens/worldcup/2006germany 2006 FIFA World Cup Germany], FIFA.com
*[https://web.archive.org/web/20111220061505/http://www.fifa.com/mm/document/afdeveloping/technicaldevp/50/08/34/fwc%5f2006%5fgermany%5f1%5f1%5f263.pdf FIFA Technical Report (Part 1)] and [https://web.archive.org/web/20111220070751/http://www.fifa.com/mm/document/afdeveloping/technicaldevp/50/08/32/fwc%5f2006%5fgermany%5f1%5f2%5f262.pdf (Part 2)]
*[https://web.archive.org/web/20070817005955/http://www.rsssf.com/tables/2006f.html RSSSF Archive of finals]
*[http://fifaworldcup.yahoo.com/ Official FIFA World Cup site] {{Webarchive|url=https://web.archive.org/web/20060615125930/http://fifaworldcup.yahoo.com/ |date=15 June 2006 }}
*[https://web.archive.org/web/20061220141203/http://wm2006.deutschland.de/EN/Navigation/Home/home.html Germany 2006 – Home]
*{{Cite web |url=http://fifaworldcup.yahoo.com/06/en/ |title=FIFAworldcup.com – The Official Site of FIFA World Cup |access-date=23 February 2006 |archive-url=https://web.archive.org/web/20070313221204/http://fifaworldcup.yahoo.com/06/en/ |archive-date=13 March 2007 |url-status=bot: unknown}}
[[Category:A̱kurung A̱la̱u-a̱ti̱tak Swanta FIFA 2006| ]]
[[Category:2006 ma̱ a̱la̱u-a̱ti̱tak nsot|A̱kurung Swanta A̱la̱u-a̱ti̱tak]]
[[Category:2005–06 ma̱ a̱la̱u-a̱ti̱tak Jami̱ni|Swanta]]
[[Category:a̱yaayangka̱nan A̱kurung Swanta FIFA]]
[[Category:2006]]
rrjcoauluodyb10hrv12bf5vk2yt3dj
Ta̱mpi̱let:Commons category
10
1589
15051
2022-07-17T12:09:19Z
Kambai Akau
15
Created page with "{{Sister project | position = {{{position|}}} | project = commons | text = Wikimedia Commons has {{{alt-term|media related to}}} <span style="font-weight: bold; {{#ifeq:{{{nowrap|no}}}|yes|white-space:nowrap;}} {{#ifeq:{{{italic|yes}}}|yes|font-style: italic;}}">commons:{{#if:{{{1|}}}|Category:{{{1|}}}|{{if then show|{{#invoke:WikidataIB |getCommonsLink|qid={{{qid|}}}|onlycat=True|fallback=False}}|Category:{{PAGENAME}}}}}}|{{#ifeq:{{{lcf|{{{lcfirst|no}}}}}}|yes|{{..."
wikitext
text/x-wiki
{{Sister project
| position = {{{position|}}}
| project = commons
| text = Wikimedia Commons has {{{alt-term|media related to}}} <span style="font-weight: bold; {{#ifeq:{{{nowrap|no}}}|yes|white-space:nowrap;}} {{#ifeq:{{{italic|yes}}}|yes|font-style: italic;}}">[[commons:{{#if:{{{1|}}}|Category:{{{1|}}}|{{if then show|{{#invoke:WikidataIB |getCommonsLink|qid={{{qid|}}}|onlycat=True|fallback=False}}|Category:{{PAGENAME}}}}}}|{{#ifeq:{{{lcf|{{{lcfirst|no}}}}}}|yes|{{lcfirst:{{{2|{{#if:{{{1|}}} | {{{1|}}} <!--
-->|{{if then show|{{#invoke:String|replace|{{#invoke:WikidataIB |getCommonsLink|qid={{{qid|}}}|onlycat=True|fallback=False}}|Category:|}}<!--
--> |{{PAGENAME}} }} }} }}} }}<!--
-->|{{{2|{{#if:{{{1|}}} | {{{1|}}} <!--
-->|{{if then show|{{#invoke:String|replace|{{#invoke:WikidataIB |getCommonsLink|qid={{{qid|}}}|onlycat=True|fallback=False}}|Category:|}}|{{PAGENAME}} }}<!--
-->}}}}}}}]]</span>.<!--
End of the template code, now add relevant tracking categories
--><includeonly>{{#switch:{{NAMESPACE}}||{{ns:14}}=<!--
Only add tracking categories to articles and categories.
-->{{#if:{{{1|}}}|{{#ifeq:Category:{{replace|{{{1|}}}|_| }}|{{#invoke:WikidataIB |getCommonsLink|qid={{{qid|}}}|onlycat=True|fallback=False}}|<!--
-->[[Category:Commons category link is on Wikidata]]<!--
-->|{{#ifeq:{{replace|{{{1|}}}|_| }}|{{PAGENAME}}|<!--
... the local parameter is the same as the local pagename
-->[[Category:Commons category link is defined as the pagename]]{{preview warning|Commons category does not match the Commons sitelink on Wikidata – [[Template:Commons_category#Resolving_discrepancies|please check]]}}<!--
... the local parameter is not the pagename
-->|[[Category:Commons category link is locally defined]]{{preview warning|Commons category does not match the Commons sitelink on Wikidata – [[Template:Commons_category#Resolving_discrepancies|please check]]}}}} }}<!--
We don't have a locally-defined link
-->|{{#if:{{#invoke:WikidataIB |getCommonsLink|qid={{{qid|}}}|onlycat=True|fallback=False}}|<!--
... so we're using Wikidata
-->[[Category:Commons category link from Wikidata]]<!--
<!-- ... or we're using the pagename
-->|[[Category:Commons category link is the pagename]]{{preview warning|Commons category does not match the Commons sitelink on Wikidata – [[Template:Commons_category#Resolving_discrepancies|please check]]}}
}}
}}
}}</includeonly>
}}<noinclude>
{{Documentation}}
<!-- Add categories to the /doc subpage, not here! -->
</noinclude>
54b5xkajivpvxuqxbkb6gy1xjmtl4h0
Ta̱mpi̱let:If then show
10
1590
15052
2022-07-17T12:10:37Z
Kambai Akau
15
Created page with "{{SAFESUBST:<noinclude />#if:{{{1|}}}|{{{3|}}}{{{1|}}}{{{4|}}}|{{{2|}}}}}<noinclude> {{Documentation}} </noinclude>"
wikitext
text/x-wiki
{{SAFESUBST:<noinclude />#if:{{{1|}}}|{{{3|}}}{{{1|}}}{{{4|}}}|{{{2|}}}}}<noinclude>
{{Documentation}}
</noinclude>
7d83cpur6ml0umb4qqvcpyge8uuck90
Ta̱mpi̱let:If then show/doc
10
1591
15053
2022-07-17T12:13:12Z
Kambai Akau
15
Created page with "{{Documentation subpage}} <!-- Please place categories where indicated at the bottom of this page and interwikis at Wikidata (see [[Wikipedia:Wikidata]]) --> This template tests whether the first unnamed parameter is not an empty string and returns it if it is not empty. Otherwise it returns the second unnamed parameter. This is useful when the first parameter is a <nowiki>{{#invoke: }}</nowiki> of a Lua module that may return a value or nothing. Because it uses the <no..."
wikitext
text/x-wiki
{{Documentation subpage}}
<!-- Please place categories where indicated at the bottom of this page and interwikis at Wikidata (see [[Wikipedia:Wikidata]]) -->
This template tests whether the first unnamed parameter is not an empty string and returns it if it is not empty. Otherwise it returns the second unnamed parameter.
This is useful when the first parameter is a <nowiki>{{#invoke: }}</nowiki> of a Lua module that may return a value or nothing. Because it uses the <nowiki>{{#invoke: }}</nowiki> just once, it simplifies the coding of infoboxes, for example.
The optional third and fourth unnamed parameters provide a prefix and a suffix for the first parameter when returned. This enables the designer to construct more complex templates that still only use one invoke of a Lua module.
== Usage ==
; {{q|P26}} for {{q|Q151973}}
: <code><nowiki>{{If then show|{{#invoke:WikidataIB|getValue|P26|qid=Q151973|fwd=ALL|osd=no}}|unmarried}}</nowiki></code> → {{If then show|{{#invoke:WikidataIB|getValue|P26|qid=Q151973|fwd=ALL|osd=no}}|unmarried}}
; {{q|P26}} for {{q|Q905}}
: <code><nowiki>{{If then show|{{#invoke:WikidataIB|getValue|P26|qid=Q905|fwd=ALL|osd=no}}|unmarried}}</nowiki></code> → {{If then show|{{#invoke:WikidataIB|getValue|P26|qid=Q905|fwd=ALL|osd=no}}|unmarried}}
=== Prefix and suffix ===
==== Infobox field with microformat ====
A value in an infobox can be designed to be wrapped in a microformat if the wikidata call is not empty:
: <code><nowiki>{{if then show | {{#invoke:WikidataIB | getValue | rank=best |P19 |name=birth_place |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|}}} |noicon={{{noicon|}}} | {{{birth_place|}}} }} || <span class="birthplace"> | </span>}}</nowiki></code>
: If there is a local parameter supplied in the article (e.g. {{para|birth_place|London}}), the code will return <code><nowiki><span class="birthplace">London</span></nowiki></code>.
: If there is no local parameter it will attempt to fetch a value for {{q|P19}} from Wikidata.
: If that has a value, such as "New York", the code will return <code><nowiki><span class="birthplace">New York</span></nowiki></code>.
: If there is no value returned from Wikidata, the code returns nothing.
==== Table ====
A table can be designed to display a row only when a particular property of the article exists on Wikidata.
; {{q|P26}} for {{q|Q151973}}
: <syntaxhighlight lang="html">
{| class="wikitable"
|-
! scope="col" style="width:15em;" | Label
! scope="col" style="width:36em;" | Value
{{If then show|{{#invoke:WikidataIB|getValue|P26|qid=Q151973|fwd=ALL|osd=no}}||<tr><th>{{#invoke:WikidataIB|getLabel|P26|qid=Q151973}}</th><td>|</td></tr>}}
|}
</syntaxhighlight>
: →
{| class="wikitable"
|-
! scope="col" style="width:15em;" | Label
! scope="col" style="width:36em;" | Value
{{If then show|{{#invoke:WikidataIB|getValue|P26|qid=Q151973|fwd=ALL|osd=no}}||<tr><th>{{#invoke:WikidataIB|getLabel|P26|qid=Q151973}}</th><td>|</td></tr>}}
|}
; {{q|P26}} for {{q|Q905}}
: <syntaxhighlight lang="html">
{| class="wikitable"
|-
! scope="col" style="width:15em;" | Label
! scope="col" style="width:36em;" | Value
{{If then show|{{#invoke:WikidataIB|getValue|P26|qid=Q905|fwd=ALL|osd=no}}||<tr><th>{{#invoke:WikidataIB|getLabel|P26|qid=Q905}}</th><td>|</td></tr>}}
|}
</syntaxhighlight>
: →
{| class="wikitable"
|-
! scope="col" style="width:15em;" | Label
! scope="col" style="width:36em;" | Value
{{If then show|{{#invoke:WikidataIB|getValue|P26|qid=Q905|fwd=ALL|osd=no}}||<tr><th>{{#invoke:WikidataIB|getLabel|P26|qid=Q905}}</th><td>|</td></tr>}}
|}
== See also ==
; {{mlx|Wikidata Infobox|ifThenShow}} : Lua-based alternative that does basically the same thing
; [[Template:Ifnoteq then show]] : tests whether the first unnamed parameter is equal to the second unnamed parameter and returns the third unnamed parameter if it does. Otherwise it returns the first unnamed parameter. This is useful when the first parameter is a <code><nowiki>{{#invoke:</nowiki></code> of a Lua module that returns a value for which a specific exception is required.
; [[Template:If then wikilink]] : tests whether the first unnamed parameter is not an empty string and if it isn't, it returns the parameter formatted as piped wiki-link using an optional namespace prefix.
; [[Template:Formatter link]] : takes an external identifier code as {{para|code}} and uses a formatter url as {{para|url}} to construct a link to the external resource, which uses the code as display.
; [[Template:Emptyor]] : tests a piece of text to ascertain whether it's effectively empty or contains some text. If the unnamed parameter consists only of html tags, punctuation (e.g. Wiki-markup) and whitespace, then Emptyor returns nothing; otherwise it returns the parameter unchanged. Wrapper for p.emptyor function.
<includeonly>{{sandbox other||
<!-- Categories below this line, please; interwikis at Wikidata -->
[[Category:If-then-else templates]]
}}</includeonly>
gy2fnqkc4cish5iiao717tw7uhm6mh9
Module:WikidataIB
828
1592
15054
2022-07-17T12:15:48Z
Kambai Akau
15
Created page with "-- Version: 2021-02-06 -- Module to implement use of a blacklist and whitelist for infobox fields -- Can take a named parameter |qid which is the Wikidata ID for the article -- if not supplied, it will use the Wikidata ID associated with the current page. -- Fields in blacklist are never to be displayed, i.e. module must return nil in all circumstances -- Fields in whitelist return local value if it exists or the Wikidata value otherwise -- The name of the field that thi..."
Scribunto
text/plain
-- Version: 2021-02-06
-- Module to implement use of a blacklist and whitelist for infobox fields
-- Can take a named parameter |qid which is the Wikidata ID for the article
-- if not supplied, it will use the Wikidata ID associated with the current page.
-- Fields in blacklist are never to be displayed, i.e. module must return nil in all circumstances
-- Fields in whitelist return local value if it exists or the Wikidata value otherwise
-- The name of the field that this function is called from is passed in named parameter |name
-- The name is compulsory when blacklist or whitelist is used,
-- so the module returns nil if it is not supplied.
-- blacklist is passed in named parameter |suppressfields (or |spf)
-- whitelist is passed in named parameter |fetchwikidata (or |fwd)
local p = {}
local cdate -- initialise as nil and only load _complex_date function if needed
-- Module:Complex date is loaded lazily and has the following dependencies:
-- Module:Calendar
-- Module:ISOdate
-- Module:DateI18n
-- Module:No globals
-- Module:I18n/complex date
-- Module:Ordinal
-- Module:I18n/ordinal
-- Module:Yesno
-- Module:Formatnum
-- Module:Linguistic
--
-- The following, taken from https://www.mediawiki.org/wiki/Wikibase/DataModel#Dates_and_times,
-- is needed to use Module:Complex date which seemingly requires date precision as a string.
-- It would work better if only the authors of the mediawiki page could spell 'millennium'.
local dp = {
[6] = "millennium",
[7] = "century",
[8] = "decade",
[9] = "year",
[10] = "month",
[11] = "day",
}
local i18n =
{
["errors"] =
{
["property-not-found"] = "Property not found.",
["No property supplied"] = "No property supplied",
["entity-not-found"] = "Wikidata entity not found.",
["unknown-claim-type"] = "Unknown claim type.",
["unknown-entity-type"] = "Unknown entity type.",
["qualifier-not-found"] = "Qualifier not found.",
["site-not-found"] = "Wikimedia project not found.",
["labels-not-found"] = "No labels found.",
["descriptions-not-found"] = "No descriptions found.",
["aliases-not-found"] = "No aliases found.",
["unknown-datetime-format"] = "Unknown datetime format.",
["local-article-not-found"] = "Article is available on Wikidata, but not on Wikipedia",
["dab-page"] = " (dab)",
},
["months"] =
{
"January", "February", "March", "April", "May", "June",
"July", "August", "September", "October", "November", "December"
},
["century"] = "century",
["BC"] = "BC",
["BCE"] = "BCE",
["ordinal"] =
{
[1] = "st",
[2] = "nd",
[3] = "rd",
["default"] = "th"
},
["filespace"] = "File",
["Unknown"] = "Unknown",
["NaN"] = "Not a number",
-- set the following to the name of a tracking category,
-- e.g. "[[Category:Articles with missing Wikidata information]]", or "" to disable:
["missinginfocat"] = "[[Category:Articles with missing Wikidata information]]",
["editonwikidata"] = "Edit this on Wikidata",
["latestdatequalifier"] = function (date) return "before " .. date end,
-- some languages, e.g. Bosnian use a period as a suffix after each number in a date
["datenumbersuffix"] = "",
["list separator"] = ", ",
["multipliers"] = {
[0] = "",
[3] = " thousand",
[6] = " million",
[9] = " billion",
[12] = " trillion",
}
}
-- This allows an internationisation module to override the above table
if 'en' ~= mw.getContentLanguage():getCode() then
require("Module:i18n").loadI18n("Module:WikidataIB/i18n", i18n)
end
-- This piece of html implements a collapsible container. Check the classes exist on your wiki.
local collapsediv = '<div class="mw-collapsible mw-collapsed" style="width:100%; overflow:auto;" data-expandtext="{{int:show}}" data-collapsetext="{{int:hide}}">'
-- Some items should not be linked.
-- Each wiki can create a list of those in Module:WikidataIB/nolinks
-- It should return a table called itemsindex, containing true for each item not to be linked
local donotlink = {}
local nolinks_exists, nolinks = pcall(mw.loadData, "Module:WikidataIB/nolinks")
if nolinks_exists then
donotlink = nolinks.itemsindex
end
-- To satisfy Wikipedia:Manual of Style/Titles, certain types of items are italicised, and others are quoted.
-- The submodule [[Module:WikidataIB/titleformats]] lists the entity-ids used in 'instance of' (P31),
-- which allows this module to identify the values that should be formatted.
-- WikidataIB/titleformats exports a table p.formats, which is indexed by entity-id, and contains the value " or ''
local formats = {}
local titleformats_exists, titleformats = pcall(mw.loadData, "Module:WikidataIB/titleformats")
if titleformats_exists then
formats = titleformats.formats
end
-------------------------------------------------------------------------------
-- Private functions
-------------------------------------------------------------------------------
--
-------------------------------------------------------------------------------
-- makeOrdinal needs to be internationalised along with the above:
-- takes cardinal number as a numeric and returns the ordinal as a string
-- we need three exceptions in English for 1st, 2nd, 3rd, 21st, .. 31st, etc.
-------------------------------------------------------------------------------
-- Dependencies: none
-------------------------------------------------------------------------------
local makeOrdinal = function(cardinal)
local ordsuffix = i18n.ordinal.default
if cardinal % 10 == 1 then
ordsuffix = i18n.ordinal[1]
elseif cardinal % 10 == 2 then
ordsuffix = i18n.ordinal[2]
elseif cardinal % 10 == 3 then
ordsuffix = i18n.ordinal[3]
end
-- In English, 1, 21, 31, etc. use 'st', but 11, 111, etc. use 'th'
-- similarly for 12 and 13, etc.
if (cardinal % 100 == 11) or (cardinal % 100 == 12) or (cardinal % 100 == 13) then
ordsuffix = i18n.ordinal.default
end
return tostring(cardinal) .. ordsuffix
end
-------------------------------------------------------------------------------
-- findLang takes a "langcode" parameter if supplied and valid
-- otherwise it tries to create it from the user's set language ({{int:lang}})
-- failing that it uses the wiki's content language.
-- It returns a language object
-------------------------------------------------------------------------------
-- Dependencies: none
-------------------------------------------------------------------------------
local findLang = function(langcode)
local langobj
langcode = mw.text.trim(langcode or "")
if mw.language.isKnownLanguageTag(langcode) then
langobj = mw.language.new( langcode )
else
langcode = mw.getCurrentFrame():preprocess( '{{int:lang}}' )
if mw.language.isKnownLanguageTag(langcode) then
langobj = mw.language.new( langcode )
else
langobj = mw.language.getContentLanguage()
end
end
return langobj
end
-------------------------------------------------------------------------------
-- _getItemLangCode takes a qid parameter (using the current page's qid if blank)
-- If the item for that qid has property country (P17) it looks at the first preferred value
-- If the country has an official language (P37), it looks at the first preferred value
-- If that official language has a language code (P424), it returns the first preferred value
-- Otherwise it returns nothing.
-------------------------------------------------------------------------------
-- Dependencies: none
-------------------------------------------------------------------------------
local _getItemLangCode = function(qid)
qid = mw.text.trim(qid or ""):upper()
if qid == "" then qid = mw.wikibase.getEntityIdForCurrentPage() end
if not qid then return end
local prop17 = mw.wikibase.getBestStatements(qid, "P17")[1]
if not prop17 or prop17.mainsnak.snaktype ~= "value" then return end
local qid17 = prop17.mainsnak.datavalue.value.id
local prop37 = mw.wikibase.getBestStatements(qid17, "P37")[1]
if not prop37 or prop37.mainsnak.snaktype ~= "value" then return end
local qid37 = prop37.mainsnak.datavalue.value.id
local prop424 = mw.wikibase.getBestStatements(qid37, "P424")[1]
if not prop424 or prop424.mainsnak.snaktype ~= "value" then return end
return prop424.mainsnak.datavalue.value
end
-------------------------------------------------------------------------------
-- roundto takes a number (x)
-- and returns it rounded to (sf) significant figures
-------------------------------------------------------------------------------
-- Dependencies: none
-------------------------------------------------------------------------------
local roundto = function(x, sf)
if x == 0 then return 0 end
local s = 1
if x < 0 then
x = -x
s = -1
end
if sf < 1 then sf = 1 end
local p = 10 ^ (math.floor(math.log10(x)) - sf + 1)
x = math.floor(x / p + 0.5) * p * s
-- if it's integral, cast to an integer:
if x == math.floor(x) then x = math.floor(x) end
return x
end
-------------------------------------------------------------------------------
-- decimalToDMS takes a decimal degrees (x) with precision (p)
-- and returns degrees/minutes/seconds according to the precision
-------------------------------------------------------------------------------
-- Dependencies: none
-------------------------------------------------------------------------------
local decimalToDMS = function(x, p)
-- if p is not supplied, use a precision around 0.1 seconds
if not tonumber(p) then p = 1e-4 end
local d = math.floor(x)
local ms = (x - d) * 60
if p > 0.5 then -- precision is > 1/2 a degree
if ms > 30 then d = d + 1 end
ms = 0
end
local m = math.floor(ms)
local s = (ms - m) * 60
if p > 0.008 then -- precision is > 1/2 a minute
if s > 30 then m = m +1 end
s = 0
elseif p > 0.00014 then -- precision is > 1/2 a second
s = math.floor(s + 0.5)
elseif p > 0.000014 then -- precision is > 1/20 second
s = math.floor(10 * s + 0.5) / 10
elseif p > 0.0000014 then -- precision is > 1/200 second
s = math.floor(100 * s + 0.5) / 100
else -- cap it at 3 dec places for now
s = math.floor(1000 * s + 0.5) / 1000
end
return d, m, s
end
-------------------------------------------------------------------------------
-- decimalPrecision takes a decimal (x) with precision (p)
-- and returns x rounded approximately to the given precision
-- precision should be between 1 and 1e-6, preferably a power of 10.
-------------------------------------------------------------------------------
-- Dependencies: none
-------------------------------------------------------------------------------
local decimalPrecision = function(x, p)
local s = 1
if x < 0 then
x = -x
s = -1
end
-- if p is not supplied, pick an arbitrary precision
if not tonumber(p) then p = 1e-4
elseif p > 1 then p = 1
elseif p < 1e-6 then p = 1e-6
else p = 10 ^ math.floor(math.log10(p))
end
x = math.floor(x / p + 0.5) * p * s
-- if it's integral, cast to an integer:
if x == math.floor(x) then x = math.floor(x) end
-- if it's less than 1e-4, it will be in exponent form, so return a string with 6dp
-- 9e-5 becomes 0.000090
if math.abs(x) < 1e-4 then x = string.format("%f", x) end
return x
end
-------------------------------------------------------------------------------
-- formatDate takes a datetime of the usual format from mw.wikibase.entity:formatPropertyValues
-- like "1 August 30 BCE" as parameter 1
-- and formats it according to the df (date format) and bc parameters
-- df = ["dmy" / "mdy" / "y"] default will be "dmy"
-- bc = ["BC" / "BCE"] default will be "BCE"
-------------------------------------------------------------------------------
-- Dependencies: none
-------------------------------------------------------------------------------
local format_Date = function(datetime, dateformat, bc)
local datetime = datetime or "1 August 30 BCE" -- in case of nil value
-- chop off multiple vales and/or any hours, mins, etc.
-- keep anything before punctuation - we just want a single date:
local dateval = string.match( datetime, "[%w ]+")
local dateformat = string.lower(dateformat or "dmy") -- default to dmy
local bc = string.upper(bc or "") -- can't use nil for bc
-- we only want to accept two possibilities: BC or default to BCE
if bc == "BC" then
bc = " " .. i18n["BC"] -- prepend a non-breaking space.
else
bc = " " .. i18n["BCE"]
end
local postchrist = true -- start by assuming no BCE
local dateparts = {}
for word in string.gmatch(dateval, "%w+") do
if word == "BCE" or word == "BC" then -- *** internationalise later ***
postchrist = false
else
-- we'll keep the parts that are not 'BCE' in a table
dateparts[#dateparts + 1] = word
end
end
if postchrist then bc = "" end -- set AD dates to no suffix *** internationalise later ***
local sep = " " -- separator is nbsp
local fdate = table.concat(dateparts, sep) -- set formatted date to same order as input
-- if we have day month year, check dateformat
if #dateparts == 3 then
if dateformat == "y" then
fdate = dateparts[3]
elseif dateformat == "mdy" then
fdate = dateparts[2] .. sep .. dateparts[1] .. "," .. sep .. dateparts[3]
end
elseif #dateparts == 2 and dateformat == "y" then
fdate = dateparts[2]
end
return fdate .. bc
end
-------------------------------------------------------------------------------
-- dateFormat is the handler for properties that are of type "time"
-- It takes timestamp, precision (6 to 11 per mediawiki), dateformat (y/dmy/mdy), BC format (BC/BCE),
-- a plaindate switch (yes/no/adj) to en/disable "sourcing circumstances"/use adjectival form,
-- any qualifiers for the property, the language, and any adjective to use like 'before'.
-- It passes the date through the "complex date" function
-- and returns a string with the internatonalised date formatted according to preferences.
-------------------------------------------------------------------------------
-- Dependencies: findLang(); cdate(); dp[]
-------------------------------------------------------------------------------
local dateFormat = function(timestamp, dprec, df, bcf, pd, qualifiers, lang, adj, model)
-- output formatting according to preferences (y/dmy/mdy/ymd)
df = (df or ""):lower()
-- if ymd is required, return the part of the timestamp in YYYY-MM-DD form
-- but apply Year zero#Astronomers fix: 1 BC = 0000; 2 BC = -0001; etc.
if df == "ymd" then
if timestamp:sub(1,1) == "+" then
return timestamp:sub(2,11)
else
local yr = tonumber(timestamp:sub(2,5)) - 1
yr = ("000" .. yr):sub(-4)
if yr ~= "0000" then yr = "-" .. yr end
return yr .. timestamp:sub(6,11)
end
end
-- A year can be stored like this: "+1872-00-00T00:00:00Z",
-- which is processed here as if it were the day before "+1872-01-01T00:00:00Z",
-- and that's the last day of 1871, so the year is wrong.
-- So fix the month 0, day 0 timestamp to become 1 January instead:
timestamp = timestamp:gsub("%-00%-00T", "-01-01T")
-- just in case date precision is missing
dprec = dprec or 11
-- override more precise dates if required dateformat is year alone:
if df == "y" and dprec > 9 then dprec = 9 end
-- complex date only deals with precisions from 6 to 11, so clip range
dprec = dprec>11 and 11 or dprec
dprec = dprec<6 and 6 or dprec
-- BC format is "BC" or "BCE"
bcf = (bcf or ""):upper()
-- plaindate only needs the first letter (y/n/a)
pd = (pd or ""):sub(1,1):lower()
if pd == "" or pd == "n" or pd == "f" or pd == "0" then pd = false end
-- in case language isn't passed
lang = lang or findLang().code
-- set adj as empty if nil
adj = adj or ""
-- extract the day, month, year from the timestamp
local bc = timestamp:sub(1, 1)=="-" and "BC" or ""
local year, month, day = timestamp:match("[+-](%d*)-(%d*)-(%d*)T")
local iso = tonumber(year) -- if year is missing, let it throw an error
-- this will adjust the date format to be compatible with cdate
-- possible formats are Y, YY, YYY0, YYYY, YYYY-MM, YYYY-MM-DD
if dprec == 6 then iso = math.floor( (iso - 1) / 1000 ) + 1 end
if dprec == 7 then iso = math.floor( (iso - 1) / 100 ) + 1 end
if dprec == 8 then iso = math.floor( iso / 10 ) .. "0" end
if dprec == 10 then iso = year .. "-" .. month end
if dprec == 11 then iso = year .. "-" .. month .. "-" .. day end
-- add "circa" (Q5727902) from "sourcing circumstances" (P1480)
local sc = not pd and qualifiers and qualifiers.P1480
if sc then
for k1, v1 in pairs(sc) do
if v1.datavalue and v1.datavalue.value.id == "Q5727902" then
adj = "circa"
break
end
end
end
-- deal with Julian dates:
-- no point in saying that dates before 1582 are Julian - they are by default
-- doesn't make sense for dates less precise than year
-- we can suppress it by setting |plaindate, e.g. for use in constructing categories.
local calendarmodel = ""
if tonumber(year) > 1582
and dprec > 8
and not pd
and model == "http://www.wikidata.org/entity/Q1985786" then
calendarmodel = "julian"
end
if not cdate then
cdate = require("Module:Complex date")._complex_date
end
local fdate = cdate(calendarmodel, adj, tostring(iso), dp[dprec], bc, "", "", "", "", lang, 1)
-- this may have QuickStatements info appended to it in a div, so remove that
fdate = fdate:gsub(' <div style="display: none;">[^<]*</div>', '')
-- it may also be returned wrapped in a microformat, so remove that
fdate = fdate:gsub("<[^>]*>", "")
-- there may be leading zeros that we should remove
fdate = fdate:gsub("^0*", "")
-- if a plain date is required, then remove any links (like BC linked)
if pd then
fdate = fdate:gsub("%[%[.*|", ""):gsub("]]", "")
end
-- if 'circa', use the abbreviated form *** internationalise later ***
fdate = fdate:gsub('circa ', '<abbr title="circa">c.</abbr> ')
-- deal with BC/BCE
if bcf == "BCE" then
fdate = fdate:gsub('BC', 'BCE')
end
-- deal with mdy format
if df == "mdy" then
fdate = fdate:gsub("(%d+) (%w+) (%d+)", "%2 %1, %3")
end
-- deal with adjectival form *** internationalise later ***
if pd == "a" then
fdate = fdate:gsub(' century', '-century')
end
return fdate
end
-------------------------------------------------------------------------------
-- parseParam takes a (string) parameter, e.g. from the list of frame arguments,
-- and makes "false", "no", and "0" into the (boolean) false
-- it makes the empty string and nil into the (boolean) value passed as default
-- allowing the parameter to be true or false by default.
-- It returns a boolean.
-------------------------------------------------------------------------------
-- Dependencies: none
-------------------------------------------------------------------------------
local parseParam = function(param, default)
if type(param) == "boolean" then param = tostring(param) end
if param and param ~= "" then
param = param:lower()
if (param == "false") or (param:sub(1,1) == "n") or (param == "0") then
return false
else
return true
end
else
return default
end
end
-------------------------------------------------------------------------------
-- _getSitelink takes the qid of a Wikidata entity passed as |qid=
-- It takes an optional parameter |wiki= to determine which wiki is to be checked for a sitelink
-- If the parameter is blank, then it uses the local wiki.
-- If there is a sitelink to an article available, it returns the plain text link to the article
-- If there is no sitelink, it returns nil.
-------------------------------------------------------------------------------
-- Dependencies: none
-------------------------------------------------------------------------------
local _getSitelink = function(qid, wiki)
qid = (qid or ""):upper()
if qid == "" then qid = mw.wikibase.getEntityIdForCurrentPage() end
if not qid then return nil end
wiki = wiki or ""
local sitelink
if wiki == "" then
sitelink = mw.wikibase.getSitelink(qid)
else
sitelink = mw.wikibase.getSitelink(qid, wiki)
end
return sitelink
end
-------------------------------------------------------------------------------
-- _getCommonslink takes an optional qid of a Wikidata entity passed as |qid=
-- It returns one of the following in order of preference:
-- the Commons sitelink of the Wikidata entity - but not if onlycat=true and it's not a category;
-- the Commons sitelink of the topic's main category of the Wikidata entity;
-- the Commons category of the Wikidata entity - unless fallback=false.
-------------------------------------------------------------------------------
-- Dependencies: _getSitelink(); parseParam()
-------------------------------------------------------------------------------
local _getCommonslink = function(qid, onlycat, fallback)
qid = (qid or ""):upper()
if qid == "" then qid = mw.wikibase.getEntityIdForCurrentPage() end
if not qid then return nil end
onlycat = parseParam(onlycat, false)
if fallback == "" then fallback = nil end
local sitelink = _getSitelink(qid, "commonswiki")
if onlycat and sitelink and sitelink:sub(1,9) ~= "Category:" then sitelink = nil end
if not sitelink then
-- check for topic's main category
local prop910 = mw.wikibase.getBestStatements(qid, "P910")[1]
if prop910 then
local tmcid = prop910.mainsnak.datavalue and prop910.mainsnak.datavalue.value.id
sitelink = _getSitelink(tmcid, "commonswiki")
end
if not sitelink then
-- check for list's main category
local prop1754 = mw.wikibase.getBestStatements(qid, "P1754")[1]
if prop1754 then
local tmcid = prop1754.mainsnak.datavalue and prop1754.mainsnak.datavalue.value.id
sitelink = _getSitelink(tmcid, "commonswiki")
end
end
end
if not sitelink and fallback then
-- check for Commons category (string value)
local prop373 = mw.wikibase.getBestStatements(qid, "P373")[1]
if prop373 then
sitelink = prop373.mainsnak.datavalue and prop373.mainsnak.datavalue.value
if sitelink then sitelink = "Category:" .. sitelink end
end
end
return sitelink
end
-------------------------------------------------------------------------------
-- The label in a Wikidata item is subject to vulnerabilities
-- that an attacker might try to exploit.
-- It needs to be 'sanitised' by removing any wikitext before use.
-- If it doesn't exist, return the id for the item
-- a second (boolean) value is also returned, value is true when the label exists
-------------------------------------------------------------------------------
-- Dependencies: none
-------------------------------------------------------------------------------
local labelOrId = function(id, lang)
if lang == "default" then lang = findLang().code end
local label
if lang then
label = mw.wikibase.getLabelByLang(id, lang)
else
label = mw.wikibase.getLabel(id)
end
if label then
return mw.text.nowiki(label), true
else
return id, false
end
end
-------------------------------------------------------------------------------
-- linkedItem takes an entity-id and returns a string, linked if possible.
-- This is the handler for "wikibase-item". Preferences:
-- 1. Display linked disambiguated sitelink if it exists
-- 2. Display linked label if it is a redirect
-- 3. TBA: Display an inter-language link for the label if it exists other than in default language
-- 4. Display unlinked label if it exists
-- 5. Display entity-id for now to indicate a label could be provided
-- dtxt is text to be used instead of label, or nil.
-- shortname is boolean switch to use P1813 (short name) instead of label if true.
-- lang is the current language code.
-- uselbl is boolean switch to force display of the label instead of the sitelink (default: false)
-- linkredir is boolean switch to allow linking to a redirect (default: false)
-- formatvalue is boolean switch to allow formatting as italics or quoted (default: false)
-------------------------------------------------------------------------------
-- Dependencies: labelOrId(); donotlink[]
-------------------------------------------------------------------------------
local linkedItem = function(id, args)
local lprefix = (args.lp or args.lprefix or args.linkprefix or ""):gsub('"', '') -- toughen against nil values passed
local lpostfix = (args.lpostfix or ""):gsub('"', '')
local prefix = (args.prefix or ""):gsub('"', '')
local postfix = (args.postfix or ""):gsub('"', '')
local dtxt = args.dtxt
local shortname = args.shortname
local lang = args.lang or "en" -- fallback to default if missing
local uselbl = args.uselabel or args.uselbl
uselbl = parseParam(uselbl, false)
local linkredir = args.linkredir
linkredir = parseParam(linkredir, false)
local formatvalue = args.formatvalue or args.fv
formatvalue = parseParam(formatvalue, false)
-- see if item might need italics or quotes
local fmt = ""
if next(formats) and formatvalue then
for k, v in ipairs( mw.wikibase.getBestStatements(id, "P31") ) do
if v.mainsnak.datavalue and formats[v.mainsnak.datavalue.value.id] then
fmt = formats[v.mainsnak.datavalue.value.id]
break -- pick the first match
end
end
end
local disp
local sitelink = mw.wikibase.getSitelink(id)
local label, islabel
if dtxt then
label, islabel = dtxt, true
elseif shortname then
-- see if there is a shortname in our language, and set label to it
for k, v in ipairs( mw.wikibase.getBestStatements(id, "P1813") ) do
if v.mainsnak.datavalue.value.language == lang then
label, islabel = v.mainsnak.datavalue.value.text, true
break
end -- test for language match
end -- loop through values of short name
-- if we have no label set, then there was no shortname available
if not islabel then
label, islabel = labelOrId(id)
shortname = false
end
else
label, islabel = labelOrId(id)
end
if mw.site.siteName ~= "Wikimedia Commons" then
if sitelink then
if not (dtxt or shortname) then
-- if sitelink and label are the same except for case, no need to process further
if sitelink:lower() ~= label:lower() then
-- strip any namespace or dab from the sitelink
local pos = sitelink:find(":") or 0
local slink = sitelink
if pos > 0 then
local pfx = sitelink:sub(1,pos-1)
if mw.site.namespaces[pfx] then -- that prefix is a valid namespace, so remove it
slink = sitelink:sub(pos+1)
end
end
-- remove stuff after commas or inside parentheses - ie. dabs
slink = slink:gsub("%s%(.+%)$", ""):gsub(",.+$", "")
-- if uselbl is false, use sitelink instead of label
if not uselbl then
-- use slink as display, preserving label case - find("^%u") is true for 1st char uppercase
if label:find("^%u") then
label = slink:gsub("^(%l)", string.upper)
else
label = slink:gsub("^(%u)", string.lower)
end
end
end
end
if donotlink[label] then
disp = prefix .. fmt .. label .. fmt .. postfix
else
disp = "[[" .. lprefix .. sitelink .. lpostfix .. "|" .. prefix .. fmt .. label .. fmt .. postfix .. "]]"
end
elseif islabel then
-- no sitelink, label exists, so check if a redirect with that title exists, if linkredir is true
-- display plain label by default
disp = prefix .. fmt .. label .. fmt .. postfix
if linkredir then
local artitle = mw.title.new(label, 0) -- only nil if label has invalid chars
if not donotlink[label] and artitle and artitle.redirectTarget then
-- there's a redirect with the same title as the label, so let's link to that
disp = "[[".. lprefix .. label .. lpostfix .. "|" .. prefix .. fmt .. label .. fmt .. postfix .. "]]"
end
end -- test if article title exists as redirect on current Wiki
else
-- no sitelink and no label, so return whatever was returned from labelOrId for now
-- add tracking category [[Category:Articles with missing Wikidata information]]
-- for enwiki, just return the tracking category
if mw.wikibase.getGlobalSiteId() == "enwiki" then
disp = i18n.missinginfocat
else
disp = prefix .. label .. postfix .. i18n.missinginfocat
end
end
else
local ccat = mw.wikibase.getBestStatements(id, "P373")[1]
if ccat and ccat.mainsnak.datavalue then
ccat = ccat.mainsnak.datavalue.value
disp = "[[" .. lprefix .. "Category:" .. ccat .. lpostfix .. "|" .. prefix .. label .. postfix .. "]]"
elseif sitelink then
-- this asumes that if a sitelink exists, then a label also exists
disp = "[[" .. lprefix .. sitelink .. lpostfix .. "|" .. prefix .. label .. postfix .. "]]"
else
-- no sitelink and no Commons cat, so return label from labelOrId for now
disp = prefix .. label .. postfix
end
end
return disp
end
-------------------------------------------------------------------------------
-- sourced takes a table representing a statement that may or may not have references
-- it looks for a reference sourced to something not containing the word "wikipedia"
-- it returns a boolean = true if it finds a sourced reference.
-------------------------------------------------------------------------------
-- Dependencies: none
-------------------------------------------------------------------------------
local sourced = function(claim)
if claim.references then
for kr, vr in pairs(claim.references) do
local ref = mw.wikibase.renderSnaks(vr.snaks)
if not ref:find("Wiki") then
return true
end
end
end
end
-------------------------------------------------------------------------------
-- setRanks takes a flag (parameter passed) that requests the values to return
-- "b[est]" returns preferred if available, otherwise normal
-- "p[referred]" returns preferred
-- "n[ormal]" returns normal
-- "d[eprecated]" returns deprecated
-- multiple values are allowed, e.g. "preferred normal" (which is the default)
-- "best" will override the other flags, and set p and n
-------------------------------------------------------------------------------
-- Dependencies: none
-------------------------------------------------------------------------------
local setRanks = function(rank)
rank = (rank or ""):lower()
-- if nothing passed, return preferred and normal
-- if rank == "" then rank = "p n" end
local ranks = {}
for w in string.gmatch(rank, "%a+") do
w = w:sub(1,1)
if w == "b" or w == "p" or w == "n" or w == "d" then
ranks[w] = true
end
end
-- check if "best" is requested or no ranks requested; and if so, set preferred and normal
if ranks.b or not next(ranks) then
ranks.p = true
ranks.n = true
end
return ranks
end
-------------------------------------------------------------------------------
-- parseInput processes the Q-id , the blacklist and the whitelist
-- if an input parameter is supplied, it returns that and ends the call.
-- it returns (1) either the qid or nil indicating whether or not the call should continue
-- and (2) a table containing all of the statements for the propertyID and relevant Qid
-- if "best" ranks are requested, it returns those instead of all non-deprecated ranks
-------------------------------------------------------------------------------
-- Dependencies: none
-------------------------------------------------------------------------------
local parseInput = function(frame, input_parm, property_id)
-- There may be a local parameter supplied, if it's blank, set it to nil
input_parm = mw.text.trim(input_parm or "")
if input_parm == "" then input_parm = nil end
-- return nil if Wikidata is not available
if not mw.wikibase then return false, input_parm end
local args = frame.args
-- can take a named parameter |qid which is the Wikidata ID for the article.
-- if it's not supplied, use the id for the current page
local qid = args.qid or ""
if qid == "" then qid = mw.wikibase.getEntityIdForCurrentPage() end
-- if there's no Wikidata item for the current page return nil
if not qid then return false, input_parm end
-- The blacklist is passed in named parameter |suppressfields
local blacklist = args.suppressfields or args.spf or ""
-- The whitelist is passed in named parameter |fetchwikidata
local whitelist = args.fetchwikidata or args.fwd or ""
if whitelist == "" then whitelist = "NONE" end
-- The name of the field that this function is called from is passed in named parameter |name
local fieldname = args.name or ""
if blacklist ~= "" then
-- The name is compulsory when blacklist is used, so return nil if it is not supplied
if fieldname == "" then return false, nil end
-- If this field is on the blacklist, then return nil
if blacklist:find(fieldname) then return false, nil end
end
-- If we got this far then we're not on the blacklist
-- The blacklist overrides any locally supplied parameter as well
-- If a non-blank input parameter was supplied return it
if input_parm then return false, input_parm end
-- We can filter out non-valid properties
if property_id:sub(1,1):upper() ~="P" or property_id == "P0" then return false, nil end
-- Otherwise see if this field is on the whitelist:
-- needs a bit more logic because find will return its second value = 0 if fieldname is ""
-- but nil if fieldname not found on whitelist
local _, found = whitelist:find(fieldname)
found = ((found or 0) > 0)
if whitelist ~= 'ALL' and (whitelist:upper() == "NONE" or not found) then
return false, nil
end
-- See what's on Wikidata (the call always returns a table, but it may be empty):
local props = {}
if args.reqranks.b then
props = mw.wikibase.getBestStatements(qid, property_id)
else
props = mw.wikibase.getAllStatements(qid, property_id)
end
if props[1] then
return qid, props
end
-- no property on Wikidata
return false, nil
end
-------------------------------------------------------------------------------
-- createicon assembles the "Edit at Wikidata" pen icon.
-- It returns a wikitext string inside a span class="penicon"
-- if entityID is nil or empty, the ID associated with current page is used
-- langcode and propertyID may be nil or empty
-------------------------------------------------------------------------------
-- Dependencies: i18n[];
-------------------------------------------------------------------------------
local createicon = function(langcode, entityID, propertyID)
langcode = langcode or ""
if not entityID or entityID == "" then entityID= mw.wikibase.getEntityIdForCurrentPage() end
propertyID = propertyID or ""
local icon = " <span class='penicon autoconfirmed-show'>[["
-- " <span data-bridge-edit-flow='overwrite' class='penicon'>[[" -> enable Wikidata Bridge
.. i18n["filespace"]
.. ":OOjs UI icon edit-ltr-progressive.svg |frameless |text-top |10px |alt="
.. i18n["editonwikidata"]
.. "|link=https://www.wikidata.org/wiki/" .. entityID
if langcode ~= "" then icon = icon .. "?uselang=" .. langcode end
if propertyID ~= "" then icon = icon .. "#" .. propertyID end
icon = icon .. "|" .. i18n["editonwikidata"] .. "]]</span>"
return icon
end
-------------------------------------------------------------------------------
-- assembleoutput takes the sequence table containing the property values
-- and formats it according to switches given. It returns a string or nil.
-- It uses the entityID (and optionally propertyID) to create a link in the pen icon.
-------------------------------------------------------------------------------
-- Dependencies: parseParam();
-------------------------------------------------------------------------------
local assembleoutput = function(out, args, entityID, propertyID)
-- sorted is a boolean passed to enable sorting of the values returned
-- if nothing or an empty string is passed set it false
-- if "false" or "no" or "0" is passed set it false
local sorted = parseParam(args.sorted, false)
-- noicon is a boolean passed to suppress the trailing "edit at Wikidata" icon
-- for use when the value is processed further by the infobox
-- if nothing or an empty string is passed set it false
-- if "false" or "no" or "0" is passed set it false
local noic = parseParam(args.noicon, false)
-- list is the name of a template that a list of multiple values is passed through
-- examples include "hlist" and "ubl"
-- setting it to "prose" produces something like "1, 2, 3, and 4"
local list = args.list or ""
-- sep is a string that is used to separate multiple returned values
-- if nothing or an empty string is passed set it to the default
-- any double-quotes " are stripped out, so that spaces may be passed
-- e.g. |sep=" - "
local sepdefault = i18n["list separator"]
local separator = args.sep or ""
separator = string.gsub(separator, '"', '')
if separator == "" then
separator = sepdefault
end
-- collapse is a number that determines the maximum number of returned values
-- before the output is collapsed.
-- Zero or not a number result in no collapsing (default becomes 0).
local collapse = tonumber(args.collapse) or 0
-- replacetext (rt) is a string that is returned instead of any non-empty Wikidata value
-- this is useful for tracking and debugging
local replacetext = mw.text.trim(args.rt or args.replacetext or "")
-- if there's anything to return, then return a list
-- comma-separated by default, but may be specified by the sep parameter
-- optionally specify a hlist or ubl or a prose list, etc.
local strout
if #out > 0 then
if sorted then table.sort(out) end
-- if there's something to display and a pen icon is wanted, add it the end of the last value
local hasdisplay = false
for i, v in ipairs(out) do
if v ~= i18n.missinginfocat then
hasdisplay = true
break
end
end
if not noic and hasdisplay then
out[#out] = out[#out] .. createicon(args.langobj.code, entityID, propertyID)
end
if list == "" then
strout = table.concat(out, separator)
elseif list:lower() == "prose" then
strout = mw.text.listToText( out )
else
strout = mw.getCurrentFrame():expandTemplate{title = list, args = out}
end
if collapse >0 and #out > collapse then
strout = collapsediv .. strout .. "</div>"
end
else
strout = nil -- no items had valid reference
end
if replacetext ~= "" and strout then strout = replacetext end
return strout
end
-------------------------------------------------------------------------------
-- rendersnak takes a table (propval) containing the information stored on one property value
-- and returns the value as a string and its language if monolingual text.
-- It handles data of type:
-- wikibase-item
-- time
-- string, url, commonsMedia, external-id
-- quantity
-- globe-coordinate
-- monolingualtext
-- It also requires linked, the link/pre/postfixes, uabbr, and the arguments passed from frame.
-- The optional filter parameter allows quantities to be be filtered by unit Qid.
-------------------------------------------------------------------------------
-- Dependencies: parseParam(); labelOrId(); i18n[]; dateFormat();
-- roundto(); decimalPrecision(); decimalToDMS(); linkedItem();
-------------------------------------------------------------------------------
local rendersnak = function(propval, args, linked, lpre, lpost, pre, post, uabbr, filter)
lpre = lpre or ""
lpost = lpost or ""
pre = pre or ""
post = post or ""
args.lang = args.lang or findLang().code
-- allow values to display a fixed text instead of label
local dtxt = args.displaytext or args.dt
if dtxt == "" then dtxt = nil end
-- switch to use display of short name (P1813) instead of label
local shortname = args.shortname or args.sn
shortname = parseParam(shortname, false)
local snak = propval.mainsnak or propval
local dtype = snak.datatype
local dv = snak.datavalue
dv = dv and dv.value
-- value and monolingual text language code returned
local val, mlt
if propval.rank and not args.reqranks[propval.rank:sub(1, 1)] then
-- val is nil: value has a rank that isn't requested
------------------------------------
elseif snak.snaktype == "somevalue" then -- value is unknown
val = i18n["Unknown"]
------------------------------------
elseif snak.snaktype == "novalue" then -- value is none
-- val = "No value" -- don't return anything
------------------------------------
elseif dtype == "wikibase-item" then -- data type is a wikibase item:
-- it's wiki-linked value, so output as link if enabled and possible
local qnumber = dv.id
if linked then
val = linkedItem(qnumber, args)
else -- no link wanted so check for display-text, otherwise test for lang code
local label, islabel
if dtxt then
label = dtxt
else
label, islabel = labelOrId(qnumber)
local langlabel = mw.wikibase.getLabelByLang(qnumber, args.lang)
if langlabel then
label = mw.text.nowiki( langlabel )
end
end
val = pre .. label .. post
end -- test for link required
------------------------------------
elseif dtype == "time" then -- data type is time:
-- time is in timestamp format
-- date precision is integer per mediawiki
-- output formatting according to preferences (y/dmy/mdy)
-- BC format as BC or BCE
-- plaindate is passed to disable looking for "sourcing cirumstances"
-- or to set the adjectival form
-- qualifiers (if any) is a nested table or nil
-- lang is given, or user language, or site language
--
-- Here we can check whether args.df has a value
-- If not, use code from Module:Sandbox/RexxS/Getdateformat to set it from templates like {{Use mdy dates}}
val = dateFormat(dv.time, dv.precision, args.df, args.bc, args.pd, propval.qualifiers, args.lang, "", dv.calendarmodel)
------------------------------------
-- data types which are strings:
elseif dtype == "commonsMedia" or dtype == "external-id" or dtype == "string" or dtype == "url" then
-- commonsMedia or external-id or string or url
-- all have mainsnak.datavalue.value as string
if (lpre == "" or lpre == ":") and lpost == "" then
-- don't link if no linkpre/postfix or linkprefix is just ":"
val = pre .. dv .. post
elseif dtype == "external-id" then
val = "[" .. lpre .. dv .. lpost .. " " .. pre .. dv .. post .. "]"
else
val = "[[" .. lpre .. dv .. lpost .. "|" .. pre .. dv .. post .. "]]"
end -- check for link requested (i.e. either linkprefix or linkpostfix exists)
------------------------------------
-- data types which are quantities:
elseif dtype == "quantity" then
-- quantities have mainsnak.datavalue.value.amount and mainsnak.datavalue.value.unit
-- the unit is of the form http://www.wikidata.org/entity/Q829073
--
-- implement a switch to turn on/off numerical formatting later
local fnum = true
--
-- a switch to turn on/off conversions - only for en-wiki
local conv = parseParam(args.conv or args.convert, false)
-- if we have conversions, we won't have formatted numbers or scales
if conv then
uabbr = true
fnum = false
args.scale = "0"
end
--
-- a switch to turn on/off showing units, default is true
local showunits = parseParam(args.su or args.showunits, true)
--
-- convert amount to a number
local amount = tonumber(dv.amount) or i18n["NaN"]
--
-- scale factor for millions, billions, etc.
local sc = tostring(args.scale or ""):sub(1,1):lower()
local scale
if sc == "a" then
-- automatic scaling
if amount > 1e15 then
scale = 12
elseif amount > 1e12 then
scale = 9
elseif amount > 1e9 then
scale = 6
elseif amount > 1e6 then
scale = 3
else
scale = 0
end
else
scale = tonumber(args.scale) or 0
if scale < 0 or scale > 12 then scale = 0 end
scale = math.floor(scale/3) * 3
end
local factor = 10^scale
amount = amount / factor
-- ranges:
local range = ""
-- check if upper and/or lower bounds are given and significant
local upb = tonumber(dv.upperBound)
local lowb = tonumber(dv.lowerBound)
if upb and lowb then
-- differences rounded to 2 sig fig:
local posdif = roundto(upb - amount, 2) / factor
local negdif = roundto(amount - lowb, 2) / factor
upb, lowb = amount + posdif, amount - negdif
-- round scaled numbers to integers or 4 sig fig
if (scale > 0 or sc == "a") then
if amount < 1e4 then
amount = roundto(amount, 4)
else
amount = math.floor(amount + 0.5)
end
end
if fnum then amount = args.langobj:formatNum( amount ) end
if posdif ~= negdif then
-- non-symmetrical
range = " +" .. posdif .. " -" .. negdif
elseif posdif ~= 0 then
-- symmetrical and non-zero
range = " ±" .. posdif
else
-- otherwise range is zero, so leave it as ""
end
else
-- round scaled numbers to integers or 4 sig fig
if (scale > 0 or sc == "a") then
if amount < 1e4 then
amount = roundto(amount, 4)
else
amount = math.floor(amount + 0.5)
end
end
if fnum then amount = args.langobj:formatNum( amount ) end
end
-- unit names and symbols:
-- extract the qid in the form 'Qnnn' from the value.unit url
-- and then fetch the label from that - or symbol if unitabbr is true
local unit = ""
local usep = ""
local usym = ""
local unitqid = string.match( dv.unit, "(Q%d+)" )
if filter and unitqid ~= filter then return nil end
if unitqid and showunits then
local uname = mw.wikibase.getLabelByLang(unitqid, args.lang) or ""
if uname ~= "" then usep, unit = " ", uname end
if uabbr then
-- see if there's a unit symbol (P5061)
local unitsymbols = mw.wikibase.getBestStatements(unitqid, "P5061")
-- construct fallback table, add local lang and multiple languages
local fbtbl = mw.language.getFallbacksFor( args.lang )
table.insert( fbtbl, 1, args.lang )
table.insert( fbtbl, 1, "mul" )
local found = false
for idx1, us in ipairs(unitsymbols) do
for idx2, fblang in ipairs(fbtbl) do
if us.mainsnak.datavalue.value.language == fblang then
usym = us.mainsnak.datavalue.value.text
found = true
break
end
if found then break end
end -- loop through fallback table
end -- loop through values of P5061
if found then usep, unit = " ", usym end
end
end
-- format display:
if conv then
if range == "" then
val = mw.getCurrentFrame():expandTemplate{title = "cvt", args = {amount, unit}}
else
val = mw.getCurrentFrame():expandTemplate{title = "cvt", args = {lowb, "to", upb, unit}}
end
elseif unit == "$" or unit == "£" then
val = unit .. amount .. range .. i18n.multipliers[scale]
else
val = amount .. range .. i18n.multipliers[scale] .. usep .. unit
end
------------------------------------
-- datatypes which are global coordinates:
elseif dtype == "globe-coordinate" then
-- 'display' parameter defaults to "inline, title" *** unused for now ***
-- local disp = args.display or ""
-- if disp == "" then disp = "inline, title" end
--
-- format parameter switches from deg/min/sec to decimal degrees
-- default is deg/min/sec -- decimal degrees needs |format = dec
local form = (args.format or ""):lower():sub(1,3)
if form ~= "dec" then form = "dms" end -- not needed for now
--
-- show parameter allows just the latitude, or just the longitude, or both
-- to be returned as a signed decimal, ignoring the format parameter.
local show = (args.show or ""):lower()
if show ~= "longlat" then show = show:sub(1,3) end
--
local lat, long, prec = dv.latitude, dv.longitude, dv.precision
if show == "lat" then
val = decimalPrecision(lat, prec)
elseif show == "lon" then
val = decimalPrecision(long, prec)
elseif show == "longlat" then
val = decimalPrecision(long, prec) .. ", " .. decimalPrecision(lat, prec)
else
local ns = "N"
local ew = "E"
if lat < 0 then
ns = "S"
lat = - lat
end
if long < 0 then
ew = "W"
long = - long
end
if form == "dec" then
lat = decimalPrecision(lat, prec)
long = decimalPrecision(long, prec)
val = lat .. "°" .. ns .. " " .. long .. "°" .. ew
else
local latdeg, latmin, latsec = decimalToDMS(lat, prec)
local longdeg, longmin, longsec = decimalToDMS(long, prec)
if latsec == 0 and longsec == 0 then
if latmin == 0 and longmin == 0 then
val = latdeg .. "°" .. ns .. " " .. longdeg .. "°" .. ew
else
val = latdeg .. "°" .. latmin .. "′" .. ns .. " "
val = val .. longdeg .. "°".. longmin .. "′" .. ew
end
else
val = latdeg .. "°" .. latmin .. "′" .. latsec .. "″" .. ns .. " "
val = val .. longdeg .. "°" .. longmin .. "′" .. longsec .. "″" .. ew
end
end
end
------------------------------------
elseif dtype == "monolingualtext" then -- data type is Monolingual text:
-- has mainsnak.datavalue.value as a table containing language/text pairs
-- collect all the values in 'out' and languages in 'mlt' and process them later
val = pre .. dv.text .. post
mlt = dv.language
------------------------------------
else
-- some other data type so write a specific handler
val = "unknown data type: " .. dtype
end -- of datatype/unknown value/sourced check
return val, mlt
end
-------------------------------------------------------------------------------
-- propertyvalueandquals takes a property object, the arguments passed from frame,
-- and a qualifier propertyID.
-- It returns a sequence (table) of values representing the values of that property
-- and qualifiers that match the qualifierID if supplied.
-------------------------------------------------------------------------------
-- Dependencies: parseParam(); sourced(); labelOrId(); i18n.latestdatequalifier(); format_Date();
-- makeOrdinal(); roundto(); decimalPrecision(); decimalToDMS(); assembleoutput();
-------------------------------------------------------------------------------
local function propertyvalueandquals(objproperty, args, qualID)
-- needs this style of declaration because it's re-entrant
-- onlysourced is a boolean passed to return only values sourced to other than Wikipedia
-- if nothing or an empty string is passed set it true
local onlysrc = parseParam(args.onlysourced or args.osd, true)
-- linked is a a boolean that enables the link to a local page via sitelink
-- if nothing or an empty string is passed set it true
local linked = parseParam(args.linked, true)
-- prefix is a string that may be nil, empty (""), or a string of characters
-- this is prefixed to each value
-- useful when when multiple values are returned
-- any double-quotes " are stripped out, so that spaces may be passed
local prefix = (args.prefix or ""):gsub('"', '')
-- postfix is a string that may be nil, empty (""), or a string of characters
-- this is postfixed to each value
-- useful when when multiple values are returned
-- any double-quotes " are stripped out, so that spaces may be passed
local postfix = (args.postfix or ""):gsub('"', '')
-- linkprefix is a string that may be nil, empty (""), or a string of characters
-- this creates a link and is then prefixed to each value
-- useful when when multiple values are returned and indirect links are needed
-- any double-quotes " are stripped out, so that spaces may be passed
local lprefix = (args.linkprefix or args.lp or ""):gsub('"', '')
-- linkpostfix is a string that may be nil, empty (""), or a string of characters
-- this is postfixed to each value when linking is enabled with lprefix
-- useful when when multiple values are returned
-- any double-quotes " are stripped out, so that spaces may be passed
local lpostfix = (args.linkpostfix or ""):gsub('"', '')
-- wdlinks is a boolean passed to enable links to Wikidata when no article exists
-- if nothing or an empty string is passed set it false
local wdl = parseParam(args.wdlinks or args.wdl, false)
-- unitabbr is a boolean passed to enable unit abbreviations for common units
-- if nothing or an empty string is passed set it false
local uabbr = parseParam(args.unitabbr or args.uabbr, false)
-- qualsonly is a boolean passed to return just the qualifiers
-- if nothing or an empty string is passed set it false
local qualsonly = parseParam(args.qualsonly or args.qo, false)
-- maxvals is a string that may be nil, empty (""), or a number
-- this determines how many items may be returned when multiple values are available
-- setting it = 1 is useful where the returned string is used within another call, e.g. image
local maxvals = tonumber(args.maxvals) or 0
-- pd (plain date) is a string: yes/true/1 | no/false/0 | adj
-- to disable/enable "sourcing cirumstances" or use adjectival form for the plain date
local pd = args.plaindate or args.pd or "no"
args.pd = pd
-- allow qualifiers to have a different date format; default to year unless qualsonly is set
args.qdf = args.qdf or args.qualifierdateformat or args.df or (not qualsonly and "y")
local lang = args.lang or findLang().code
-- qualID is a string list of wanted qualifiers or "ALL"
qualID = qualID or ""
-- capitalise list of wanted qualifiers and substitute "DATES"
qualID = qualID:upper():gsub("DATES", "P580, P582")
local allflag = (qualID == "ALL")
-- create table of wanted qualifiers as key
local qwanted = {}
-- create sequence of wanted qualifiers
local qorder = {}
for q in mw.text.gsplit(qualID, "%p") do -- split at punctuation and iterate
local qtrim = mw.text.trim(q)
if qtrim ~= "" then
qwanted[mw.text.trim(q)] = true
qorder[#qorder+1] = qtrim
end
end
-- qsep is the output separator for rendering qualifier list
local qsep = (args.qsep or ""):gsub('"', '')
-- qargs are the arguments to supply to assembleoutput()
local qargs = {
["osd"] = "false",
["linked"] = tostring(linked),
["prefix"] = args.qprefix,
["postfix"] = args.qpostfix,
["linkprefix"] = args.qlinkprefix or args.qlp,
["linkpostfix"] = args.qlinkpostfix,
["wdl"] = "false",
["unitabbr"] = tostring(uabbr),
["maxvals"] = 0,
["sorted"] = tostring(args.qsorted),
["noicon"] = "true",
["list"] = args.qlist,
["sep"] = qsep,
["langobj"] = args.langobj,
["lang"] = args.langobj.code,
["df"] = args.qdf,
["sn"] = parseParam(args.qsn or args.qshortname, false),
}
-- all proper values of a Wikidata property will be the same type as the first
-- qualifiers don't have a mainsnak, properties do
local datatype = objproperty[1].datatype or objproperty[1].mainsnak.datatype
-- out[] holds the a list of returned values for this property
-- mlt[] holds the language code if the datatype is monolingual text
local out = {}
local mlt = {}
for k, v in ipairs(objproperty) do
local hasvalue = true
if (onlysrc and not sourced(v)) then
-- no value: it isn't sourced when onlysourced=true
hasvalue = false
else
local val, lcode = rendersnak(v, args, linked, lprefix, lpostfix, prefix, postfix, uabbr)
if not val then
hasvalue = false -- rank doesn't match
elseif qualsonly and qualID then
-- suppress value returned: only qualifiers are requested
else
out[#out+1], mlt[#out+1] = val, lcode
end
end
-- See if qualifiers are to be returned:
local snak = v.mainsnak or v
if hasvalue and v.qualifiers and qualID ~= "" and snak.snaktype~="novalue" then
-- collect all wanted qualifier values returned in qlist, indexed by propertyID
local qlist = {}
local timestart, timeend = "", ""
-- loop through qualifiers
for k1, v1 in pairs(v.qualifiers) do
if allflag or qwanted[k1] then
if k1 == "P1326" then
local ts = v1[1].datavalue.value.time
local dp = v1[1].datavalue.value.precision
qlist[k1] = dateFormat(ts, dp, args.qdf, args.bc, pd, "", lang, "before")
elseif k1 == "P1319" then
local ts = v1[1].datavalue.value.time
local dp = v1[1].datavalue.value.precision
qlist[k1] = dateFormat(ts, dp, args.qdf, args.bc, pd, "", lang, "after")
elseif k1 == "P580" then
timestart = propertyvalueandquals(v1, qargs)[1] or "" -- treat only one start time as valid
elseif k1 == "P582" then
timeend = propertyvalueandquals(v1, qargs)[1] or "" -- treat only one end time as valid
else
local q = assembleoutput(propertyvalueandquals(v1, qargs), qargs)
-- we already deal with circa via 'sourcing circumstances' if the datatype was time
-- circa may be either linked or unlinked *** internationalise later ***
if datatype ~= "time" or q ~= "circa" and not (type(q) == "string" and q:find("circa]]")) then
qlist[k1] = q
end
end
end -- of test for wanted
end -- of loop through qualifiers
-- set date separator
local t = timestart .. timeend
-- *** internationalise date separators later ***
local dsep = "–"
if t:find("%s") or t:find(" ") then dsep = " – " end
-- set the order for the list of qualifiers returned; start time and end time go last
if next(qlist) then
local qlistout = {}
if allflag then
for k2, v2 in pairs(qlist) do
qlistout[#qlistout+1] = v2
end
else
for i2, v2 in ipairs(qorder) do
qlistout[#qlistout+1] = qlist[v2]
end
end
if t ~= "" then
qlistout[#qlistout+1] = timestart .. dsep .. timeend
end
local qstr = assembleoutput(qlistout, qargs)
if qualsonly then
out[#out+1] = qstr
else
out[#out] = out[#out] .. " (" .. qstr .. ")"
end
elseif t ~= "" then
if qualsonly then
if timestart == "" then
out[#out+1] = timeend
elseif timeend == "" then
out[#out+1] = timestart
else
out[#out+1] = timestart .. dsep .. timeend
end
else
out[#out] = out[#out] .. " (" .. timestart .. dsep .. timeend .. ")"
end
end
end -- of test for qualifiers wanted
if maxvals > 0 and #out >= maxvals then break end
end -- of for each value loop
-- we need to pick one value to return if the datatype was "monolingualtext"
-- if there's only one value, use that
-- otherwise look through the fallback languages for a match
if datatype == "monolingualtext" and #out >1 then
lang = mw.text.split( lang, '-', true )[1]
local fbtbl = mw.language.getFallbacksFor( lang )
table.insert( fbtbl, 1, lang )
local bestval = ""
local found = false
for idx1, lang1 in ipairs(fbtbl) do
for idx2, lang2 in ipairs(mlt) do
if (lang1 == lang2) and not found then
bestval = out[idx2]
found = true
break
end
end -- loop through values of property
end -- loop through fallback languages
if found then
-- replace output table with a table containing the best value
out = { bestval }
else
-- more than one value and none of them on the list of fallback languages
-- sod it, just give them the first one
out = { out[1] }
end
end
return out
end
-------------------------------------------------------------------------------
-- Common code for p.getValueByQual and p.getValueByLang
-------------------------------------------------------------------------------
-- Dependencies: parseParam; setRanks; parseInput; sourced; assembleoutput;
-------------------------------------------------------------------------------
local _getvaluebyqual = function(frame, qualID, checkvalue)
-- The property ID that will have a qualifier is the first unnamed parameter
local propertyID = mw.text.trim(frame.args[1] or "")
if propertyID == "" then return "no property supplied" end
if qualID == "" then return "no qualifier supplied" end
-- onlysourced is a boolean passed to return property values
-- only when property values are sourced to something other than Wikipedia
-- if nothing or an empty string is passed set it true
-- if "false" or "no" or 0 is passed set it false
local onlysrc = parseParam(frame.args.onlysourced or frame.args.osd, true)
-- set the requested ranks flags
frame.args.reqranks = setRanks(frame.args.rank)
-- set a language object and code in the frame.args table
frame.args.langobj = findLang(frame.args.lang)
frame.args.lang = frame.args.langobj.code
local args = frame.args
-- check for locally supplied parameter in second unnamed parameter
-- success means no local parameter and the property exists
local qid, props = parseInput(frame, args[2], propertyID)
local linked = parseParam(args.linked, true)
local lpre = (args.linkprefix or args.lp or ""):gsub('"', '')
local lpost = (args.linkpostfix or ""):gsub('"', '')
local pre = (args.prefix or ""):gsub('"', '')
local post = (args.postfix or ""):gsub('"', '')
local uabbr = parseParam(args.unitabbr or args.uabbr, false)
local filter = (args.unit or ""):upper()
local maxvals = tonumber(args.maxvals) or 0
if filter == "" then filter = nil end
if qid then
local out = {}
-- Scan through the values of the property
-- we want something like property is "pronunciation audio (P443)" in propertyID
-- with a qualifier like "language of work or name (P407)" in qualID
-- whose value has the required ID, like "British English (Q7979)", in qval
for k1, v1 in ipairs(props) do
if v1.mainsnak.snaktype == "value" then
-- check if it has the right qualifier
local v1q = v1.qualifiers
if v1q and v1q[qualID] then
if onlysrc == false or sourced(v1) then
-- if we've got this far, we have a (sourced) claim with qualifiers
-- so see if matches the required value
-- We'll only deal with wikibase-items and strings for now
if v1q[qualID][1].datatype == "wikibase-item" then
if checkvalue(v1q[qualID][1].datavalue.value.id) then
out[#out + 1] = rendersnak(v1, args, linked, lpre, lpost, pre, post, uabbr, filter)
end
elseif v1q[qualID][1].datatype == "string" then
if checkvalue(v1q[qualID][1].datavalue.value) then
out[#out + 1] = rendersnak(v1, args, linked, lpre, lpost, pre, post, uabbr, filter)
end
end
end -- of check for sourced
end -- of check for matching required value and has qualifiers
else
return nil
end -- of check for string
if maxvals > 0 and #out >= maxvals then break end
end -- of loop through values of propertyID
return assembleoutput(out, frame.args, qid, propertyID)
else
return props -- either local parameter or nothing
end -- of test for success
return nil
end
-------------------------------------------------------------------------------
-- _location takes Q-id and follows P276 (location)
-- or P131 (located in the administrative territorial entity) or P706 (located on terrain feature)
-- from the initial item to higher level territories/locations until it reaches the highest.
-- An optional boolean, 'first', determines whether the first item is returned (default: false).
-- An optional boolean 'skip' toggles the display to skip to the last item (default: false).
-- It returns a table containing the locations - linked where possible, except for the highest.
-------------------------------------------------------------------------------
-- Dependencies: findLang(); labelOrId(); linkedItem
-------------------------------------------------------------------------------
local _location = function(qid, first, skip)
first = parseParam(first, false)
skip = parseParam(skip, false)
local locs = {"P276", "P131", "P706"}
local out = {}
local langcode = findLang():getCode()
local finished = false
local count = 0
local prevqid = "Q0"
repeat
local prop
for i1, v1 in ipairs(locs) do
local proptbl = mw.wikibase.getBestStatements(qid, v1)
if #proptbl > 1 then
-- there is more than one higher location
local prevP131, prevP131id
if prevqid ~= "Q0" then
prevP131 = mw.wikibase.getBestStatements(prevqid, "P131")[1]
prevP131id = prevP131
and prevP131.mainsnak.datavalue
and prevP131.mainsnak.datavalue.value.id
end
for i2, v2 in ipairs(proptbl) do
local parttbl = v2.qualifiers and v2.qualifiers.P518
if parttbl then
-- this higher location has qualifier 'applies to part' (P518)
for i3, v3 in ipairs(parttbl) do
if v3.snaktype == "value" and v3.datavalue.value.id == prevqid then
-- it has a value equal to the previous location
prop = proptbl[i2]
break
end -- of test for matching last location
end -- of loop through values of 'applies to part'
else
-- there's no qualifier 'applies to part' (P518)
-- so check if the previous location had a P131 that matches this alternate
if qid == prevP131id then
prop = proptbl[i2]
break
end -- of test for matching previous P131
end
end -- of loop through parent locations
-- fallback to second value if match not found
prop = prop or proptbl[2]
elseif #proptbl > 0 then
prop = proptbl[1]
end
if prop then break end
end
-- check if it's an instance of (P31) a country (Q6256) or sovereign state (Q3624078)
-- and terminate the chain if it is
local inst = mw.wikibase.getAllStatements(qid, "P31")
if #inst > 0 then
for k, v in ipairs(inst) do
local instid = v.mainsnak.datavalue and v.mainsnak.datavalue.value.id
-- stop if it's a country (or a country within the United Kingdom if skip is true)
if instid == "Q6256" or instid == "Q3624078" or (skip and instid == "Q3336843") then
prop = nil -- this will ensure this is treated as top-level location
break
end
end
end
-- get the name of this location and update qid to point to the parent location
if prop and prop.mainsnak.datavalue then
if not skip or count == 0 then
local args = { lprefix = ":" }
out[#out+1] = linkedItem(qid, args) -- get a linked value if we can
end
qid, prevqid = prop.mainsnak.datavalue.value.id, qid
else
-- This is top-level location, so get short name except when this is the first item
-- Use full label if there's no short name or this is the first item
local prop1813 = mw.wikibase.getAllStatements(qid, "P1813")
-- if there's a short name and this isn't the only item
if prop1813[1] and (#out > 0)then
local shortname
-- short name is monolingual text, so look for match to the local language
-- choose the shortest 'short name' in that language
for k, v in pairs(prop1813) do
if v.mainsnak.datavalue.value.language == langcode then
local name = v.mainsnak.datavalue.value.text
if (not shortname) or (#name < #shortname) then
shortname = name
end
end
end
-- add the shortname if one is found, fallback to the label
-- but skip it if it's "USA"
if shortname ~= "USA" then
out[#out+1] = shortname or labelOrId(qid)
else
if skip then out[#out+1] = "US" end
end
else
-- no shortname, so just add the label
local loc = labelOrId(qid)
-- exceptions go here:
if loc == "United States of America" then
out[#out+1] = "United States"
else
out[#out+1] = loc
end
end
finished = true
end
count = count + 1
until finished or count >= 10 -- limit to 10 levels to avoid infinite loops
-- remove the first location if not required
if not first then table.remove(out, 1) end
-- we might have duplicate text for consecutive locations, so remove them
if #out > 2 then
local plain = {}
for i, v in ipairs(out) do
-- strip any links
plain[i] = v:gsub("^%[%[[^|]*|", ""):gsub("]]$", "")
end
local idx = 2
repeat
if plain[idx] == plain[idx-1] then
-- duplicate found
local removeidx = 0
if (plain[idx] ~= out[idx]) and (plain[idx-1] == out[idx-1]) then
-- only second one is linked, so drop the first
removeidx = idx - 1
elseif (plain[idx] == out[idx]) and (plain[idx-1] ~= out[idx-1]) then
-- only first one is linked, so drop the second
removeidx = idx
else
-- pick one
removeidx = idx - (os.time()%2)
end
table.remove(out, removeidx)
table.remove(plain, removeidx)
else
idx = idx +1
end
until idx >= #out
end
return out
end
-------------------------------------------------------------------------------
-- _getsumofparts scans the property 'has part' (P527) for values matching a list.
-- The list (args.vlist) consists of a string of Qids separated by spaces or any usual punctuation.
-- If the matched values have a qualifer 'quantity' (P1114), those quantites are summed.
-- The sum is returned as a number (i.e. 0 if none)
-- a table of arguments is supplied implementing the usual parameters.
-------------------------------------------------------------------------------
-- Dependencies: setRanks; parseParam; parseInput; sourced; assembleoutput;
-------------------------------------------------------------------------------
local _getsumofparts = function(args)
local vallist = (args.vlist or ""):upper()
if vallist == "" then return end
args.reqranks = setRanks(args.rank)
local f = {}
f.args = args
local qid, props = parseInput(f, "", "P527")
if not qid then return 0 end
local onlysrc = parseParam(args.onlysourced or args.osd, true)
local sum = 0
for k1, v1 in ipairs(props) do
if (onlysrc == false or sourced(v1))
and v1.mainsnak.snaktype == "value"
and v1.mainsnak.datavalue.type == "wikibase-entityid"
and vallist:match( v1.mainsnak.datavalue.value.id )
and v1.qualifiers
then
local quals = v1.qualifiers["P1114"]
if quals then
for k2, v2 in ipairs(quals) do
sum = sum + v2.datavalue.value.amount
end
end
end
end
return sum
end
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
-- Public functions
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
-- _getValue makes the functionality of getValue available to other modules
-------------------------------------------------------------------------------
-- Dependencies: setRanks; parseInput; propertyvalueandquals; assembleoutput; parseParam; sourced;
-- labelOrId; i18n.latestdatequalifier; format_Date; makeOrdinal; roundto; decimalPrecision; decimalToDMS;
-------------------------------------------------------------------------------
p._getValue = function(args)
-- parameter sets for commonly used groups of parameters
local paraset = tonumber(args.ps or args.parameterset or 0)
if paraset == 1 then
-- a common setting
args.rank = "best"
args.fetchwikidata = "ALL"
args.onlysourced = "no"
args.noicon = "true"
elseif paraset == 2 then
-- equivalent to raw
args.rank = "best"
args.fetchwikidata = "ALL"
args.onlysourced = "no"
args.noicon = "true"
args.linked = "no"
args.pd = "true"
elseif paraset == 3 then
-- third set goes here
end
-- implement eid parameter
local eid = args.eid
if eid == "" then
return nil
elseif eid then
args.qid = eid
end
local propertyID = mw.text.trim(args[1] or "")
args.reqranks = setRanks(args.rank)
-- replacetext (rt) is a string that is returned instead of any non-empty Wikidata value
-- this is useful for tracking and debugging, so we set fetchwikidata=ALL to fill the whitelist
local replacetext = mw.text.trim(args.rt or args.replacetext or "")
if replacetext ~= "" then
args.fetchwikidata = "ALL"
end
local f = {}
f.args = args
local entityid, props = parseInput(f, f.args[2], propertyID)
if not entityid then
return props -- either the input parameter or nothing
end
-- qual is a string containing the property ID of the qualifier(s) to be returned
-- if qual == "ALL" then all qualifiers returned
-- if qual == "DATES" then qualifiers P580 (start time) and P582 (end time) returned
-- if nothing or an empty string is passed set it nil -> no qualifiers returned
local qualID = mw.text.trim(args.qual or ""):upper()
if qualID == "" then qualID = nil end
-- set a language object and code in the args table
args.langobj = findLang(args.lang)
args.lang = args.langobj.code
-- table 'out' stores the return value(s):
local out = propertyvalueandquals(props, args, qualID)
-- format the table of values and return it as a string:
return assembleoutput(out, args, entityid, propertyID)
end
-------------------------------------------------------------------------------
-- getValue is used to get the value(s) of a property
-- The property ID is passed as the first unnamed parameter and is required.
-- A locally supplied parameter may optionaly be supplied as the second unnamed parameter.
-- The function will now also return qualifiers if parameter qual is supplied
-------------------------------------------------------------------------------
-- Dependencies: _getValue; setRanks; parseInput; propertyvalueandquals; assembleoutput; parseParam; sourced;
-- labelOrId; i18n.latestdatequalifier; format_Date; makeOrdinal; roundto; decimalPrecision; decimalToDMS;
-------------------------------------------------------------------------------
p.getValue = function(frame)
local args= frame.args
if not args[1] then
args = frame:getParent().args
if not args[1] then return i18n.errors["No property supplied"] end
end
return p._getValue(args)
end
-------------------------------------------------------------------------------
-- getPreferredValue is used to get a value,
-- (or a comma separated list of them if multiple values exist).
-- If preferred ranks are set, it will return those values, otherwise values with normal ranks
-- now redundant to getValue with |rank=best
-------------------------------------------------------------------------------
-- Dependencies: p.getValue; setRanks; parseInput; propertyvalueandquals; assembleoutput;
-- parseParam; sourced; labelOrId; i18n.latestdatequalifier; format_Date;
-- makeOrdinal; roundto; decimalPrecision; decimalToDMS;
-------------------------------------------------------------------------------
p.getPreferredValue = function(frame)
frame.args.rank = "best"
return p.getValue(frame)
end
-------------------------------------------------------------------------------
-- getCoords is used to get coordinates for display in an infobox
-- whitelist and blacklist are implemented
-- optional 'display' parameter is allowed, defaults to nil - was "inline, title"
-------------------------------------------------------------------------------
-- Dependencies: setRanks(); parseInput(); decimalPrecision();
-------------------------------------------------------------------------------
p.getCoords = function(frame)
local propertyID = "P625"
-- if there is a 'display' parameter supplied, use it
-- otherwise default to nothing
local disp = frame.args.display or ""
if disp == "" then
disp = nil -- default to not supplying display parameter, was "inline, title"
end
-- there may be a format parameter to switch from deg/min/sec to decimal degrees
-- default is deg/min/sec
-- decimal degrees needs |format = dec
local form = (frame.args.format or ""):lower():sub(1,3)
if form ~= "dec" then
form = "dms"
end
-- just deal with best values
frame.args.reqranks = setRanks("best")
local qid, props = parseInput(frame, frame.args[1], propertyID)
if not qid then
return props -- either local parameter or nothing
else
local dv = props[1].mainsnak.datavalue.value
local lat, long, prec = dv.latitude, dv.longitude, dv.precision
lat = decimalPrecision(lat, prec)
long = decimalPrecision(long, prec)
local lat_long = { lat, long }
lat_long["display"] = disp
lat_long["format"] = form
-- invoke template Coord with the values stored in the table
return frame:expandTemplate{title = 'coord', args = lat_long}
end
end
-------------------------------------------------------------------------------
-- getQualifierValue is used to get a formatted value of a qualifier
--
-- The call needs: a property (the unnamed parameter or 1=)
-- a target value for that property (pval=)
-- a qualifier for that target value (qual=)
-- The usual whitelisting and blacklisting of the property is implemented
-- The boolean onlysourced= parameter can be set to return nothing
-- when the property is unsourced (or only sourced to Wikipedia)
-------------------------------------------------------------------------------
-- Dependencies: parseParam(); setRanks(); parseInput(); sourced();
-- propertyvalueandquals(); assembleoutput();
-- labelOrId(); i18n.latestdatequalifier(); format_Date();
-- findLang(); makeOrdinal(); roundto(); decimalPrecision(); decimalToDMS();
-------------------------------------------------------------------------------
p.getQualifierValue = function(frame)
-- The property ID that will have a qualifier is the first unnamed parameter
local propertyID = mw.text.trim(frame.args[1] or "")
-- The value of the property we want to match whose qualifier value is to be returned
-- is passed in named parameter |pval=
local propvalue = frame.args.pval
-- The property ID of the qualifier
-- whose value is to be returned is passed in named parameter |qual=
local qualifierID = frame.args.qual
-- A filter can be set like this: filter=P642==Q22674854
local filter, fprop, fval
local ftable = mw.text.split(frame.args.filter or "", "==")
if ftable[2] then
fprop = mw.text.trim(ftable[1])
fval = mw.text.trim(ftable[2])
filter = true
end
-- onlysourced is a boolean passed to return qualifiers
-- only when property values are sourced to something other than Wikipedia
-- if nothing or an empty string is passed set it true
-- if "false" or "no" or 0 is passed set it false
local onlysrc = parseParam(frame.args.onlysourced or frame.args.osd, true)
-- set a language object and language code in the frame.args table
frame.args.langobj = findLang(frame.args.lang)
frame.args.lang = frame.args.langobj.code
-- set the requested ranks flags
frame.args.reqranks = setRanks(frame.args.rank)
-- check for locally supplied parameter in second unnamed parameter
-- success means no local parameter and the property exists
local qid, props = parseInput(frame, frame.args[2], propertyID)
if qid then
local out = {}
-- Scan through the values of the property
-- we want something like property is P793, significant event (in propertyID)
-- whose value is something like Q385378, construction (in propvalue)
-- then we can return the value(s) of a qualifier such as P580, start time (in qualifierID)
for k1, v1 in pairs(props) do
if v1.mainsnak.snaktype == "value" and v1.mainsnak.datavalue.type == "wikibase-entityid" then
-- It's a wiki-linked value, so check if it's the target (in propvalue) and if it has qualifiers
if v1.mainsnak.datavalue.value.id == propvalue and v1.qualifiers then
if onlysrc == false or sourced(v1) then
-- if we've got this far, we have a (sourced) claim with qualifiers
-- which matches the target, so apply the filter and find the value(s) of the qualifier we want
if not filter or (v1.qualifiers[fprop] and v1.qualifiers[fprop][1].datavalue.value.id == fval) then
local quals = v1.qualifiers[qualifierID]
if quals then
-- can't reference qualifer, so set onlysourced = "no" (args are strings, not boolean)
local qargs = frame.args
qargs.onlysourced = "no"
local vals = propertyvalueandquals(quals, qargs, qid)
for k, v in ipairs(vals) do
out[#out + 1] = v
end
end
end
end -- of check for sourced
end -- of check for matching required value and has qualifiers
end -- of check for wikibase entity
end -- of loop through values of propertyID
return assembleoutput(out, frame.args, qid, propertyID)
else
return props -- either local parameter or nothing
end -- of test for success
return nil
end
-------------------------------------------------------------------------------
-- getSumOfParts scans the property 'has part' (P527) for values matching a list.
-- The list is passed in parameter vlist.
-- It consists of a string of Qids separated by spaces or any usual punctuation.
-- If the matched values have a qualifier 'quantity' (P1114), those quantities are summed.
-- The sum is returned as a number or nothing if zero.
-------------------------------------------------------------------------------
-- Dependencies: _getsumofparts;
-------------------------------------------------------------------------------
p.getSumOfParts = function(frame)
local sum = _getsumofparts(frame.args)
if sum == 0 then return end
return sum
end
-------------------------------------------------------------------------------
-- getValueByQual gets the value of a property which has a qualifier with a given entity value
-- The call needs:
-- a property ID (the unnamed parameter or 1=Pxxx)
-- the ID of a qualifier for that property (qualID=Pyyy)
-- either the Wikibase-entity ID of a value for that qualifier (qvalue=Qzzz)
-- or a string value for that qualifier (qvalue=abc123)
-- The usual whitelisting, blacklisting, onlysourced, etc. are implemented
-------------------------------------------------------------------------------
-- Dependencies: _getvaluebyqual; parseParam; setRanks; parseInput; sourced;
-- assembleoutput;
-------------------------------------------------------------------------------
p.getValueByQual = function(frame)
local qualID = frame.args.qualID
-- The Q-id of the value for the qualifier we want to match is in named parameter |qvalue=
local qval = frame.args.qvalue or ""
if qval == "" then return "no qualifier value supplied" end
local function checkQID(id)
return id == qval
end
return _getvaluebyqual(frame, qualID, checkQID)
end
-------------------------------------------------------------------------------
-- getValueByLang gets the value of a property which has a qualifier P407
-- ("language of work or name") whose value has the given language code
-- The call needs:
-- a property ID (the unnamed parameter or 1=Pxxx)
-- the MediaWiki language code to match the language (lang=xx[-yy])
-- (if no code is supplied, it uses the default language)
-- The usual whitelisting, blacklisting, onlysourced, etc. are implemented
-------------------------------------------------------------------------------
-- Dependencies: _getvaluebyqual; parseParam; setRanks; parseInput; sourced; assembleoutput;
-------------------------------------------------------------------------------
p.getValueByLang = function(frame)
-- The language code for the qualifier we want to match is in named parameter |lang=
local langcode = findLang(frame.args.lang).code
local function checkLanguage(id)
-- id should represent a language like "British English (Q7979)"
-- it should have string property "Wikimedia language code (P424)"
-- qlcode will be a table:
local qlcode = mw.wikibase.getBestStatements(id, "P424")
if (#qlcode > 0) and (qlcode[1].mainsnak.datavalue.value == langcode) then
return true
end
end
return _getvaluebyqual(frame, "P407", checkLanguage)
end
-------------------------------------------------------------------------------
-- getValueByRefSource gets the value of a property which has a reference "stated in" (P248)
-- whose value has the given entity-ID.
-- The call needs:
-- a property ID (the unnamed parameter or 1=Pxxx)
-- the entity ID of a value to match where the reference is stated in (match=Qzzz)
-- The usual whitelisting, blacklisting, onlysourced, etc. are implemented
-------------------------------------------------------------------------------
-- Dependencies: parseParam; setRanks; parseInput; sourced; propertyvalueandquals assembleoutput;
-------------------------------------------------------------------------------
p.getValueByRefSource = function(frame)
-- The property ID that we want to check is the first unnamed parameter
local propertyID = mw.text.trim(frame.args[1] or ""):upper()
if propertyID == "" then return "no property supplied" end
-- The Q-id of the value we want to match is in named parameter |qvalue=
local qval = (frame.args.match or ""):upper()
if qval == "" then qval = "Q21540096" end
local unit = (frame.args.unit or ""):upper()
if unit == "" then unit = "Q4917" end
local onlysrc = parseParam(frame.args.onlysourced or frame.args.osd, true)
-- set the requested ranks flags
frame.args.reqranks = setRanks(frame.args.rank)
-- set a language object and code in the frame.args table
frame.args.langobj = findLang(frame.args.lang)
frame.args.lang = frame.args.langobj.code
local linked = parseParam(frame.args.linked, true)
local uabbr = parseParam(frame.args.uabbr or frame.args.unitabbr, false)
-- qid not nil means no local parameter and the property exists
local qid, props = parseInput(frame, frame.args[2], propertyID)
if qid then
local out = {}
local mlt= {}
for k1, v1 in ipairs(props) do
if onlysrc == false or sourced(v1) then
if v1.references then
for k2, v2 in ipairs(v1.references) do
if v2.snaks.P248 then
for k3, v3 in ipairs(v2.snaks.P248) do
if v3.datavalue.value.id == qval then
out[#out+1], mlt[#out+1] = rendersnak(v1, frame.args, linked, "", "", "", "", uabbr, unit)
if not mlt[#out] then
-- we only need one match per property value
-- unless datatype was monolingual text
break
end
end -- of test for match
end -- of loop through values "stated in"
end -- of test that "stated in" exists
end -- of loop through references
end -- of test that references exist
end -- of test for sourced
end -- of loop through values of propertyID
if #mlt > 0 then
local langcode = frame.args.lang
langcode = mw.text.split( langcode, '-', true )[1]
local fbtbl = mw.language.getFallbacksFor( langcode )
table.insert( fbtbl, 1, langcode )
local bestval = ""
local found = false
for idx1, lang1 in ipairs(fbtbl) do
for idx2, lang2 in ipairs(mlt) do
if (lang1 == lang2) and not found then
bestval = out[idx2]
found = true
break
end
end -- loop through values of property
end -- loop through fallback languages
if found then
-- replace output table with a table containing the best value
out = { bestval }
else
-- more than one value and none of them on the list of fallback languages
-- sod it, just give them the first one
out = { out[1] }
end
end
return assembleoutput(out, frame.args, qid, propertyID)
else
return props -- no property or local parameter supplied
end -- of test for success
end
-------------------------------------------------------------------------------
-- getPropertyIDs takes most of the usual parameters.
-- The usual whitelisting, blacklisting, onlysourced, etc. are implemented.
-- It returns the Entity-IDs (Qids) of the values of a property if it is a Wikibase-Entity.
-- Otherwise it returns nothing.
-------------------------------------------------------------------------------
-- Dependencies: parseParam; setRanks; parseInput; sourced; propertyvalueandquals assembleoutput;
-------------------------------------------------------------------------------
p._getPropertyIDs = function(args)
args.reqranks = setRanks(args.rank)
args.langobj = findLang(args.lang)
args.lang = args.langobj.code
-- change default for noicon to true
args.noicon = tostring(parseParam(args.noicon or "", true))
local f = {}
f.args = args
local pid = mw.text.trim(args[1] or ""):upper()
-- get the qid and table of claims for the property, or nothing and the local value passed
local qid, props = parseInput(f, args[2], pid)
if not qid then return props end
if not props[1] then return nil end
local onlysrc = parseParam(args.onlysourced or args.osd, true)
local maxvals = tonumber(args.maxvals) or 0
local out = {}
for i, v in ipairs(props) do
local snak = v.mainsnak
if ( snak.datatype == "wikibase-item" )
and ( v.rank and args.reqranks[v.rank:sub(1, 1)] )
and ( snak.snaktype == "value" )
and ( sourced(v) or not onlysrc )
then
out[#out+1] = snak.datavalue.value.id
end
if maxvals > 0 and #out >= maxvals then break end
end
return assembleoutput(out, args, qid, pid)
end
p.getPropertyIDs = function(frame)
local args = frame.args
return p._getPropertyIDs(args)
end
-------------------------------------------------------------------------------
-- getQualifierIDs takes most of the usual parameters.
-- The usual whitelisting, blacklisting, onlysourced, etc. are implemented.
-- It takes a property-id as the first unnamed parameter, and an optional parameter qlist
-- which is a list of qualifier property-ids to search for (default is "ALL")
-- It returns the Entity-IDs (Qids) of the values of a property if it is a Wikibase-Entity.
-- Otherwise it returns nothing.
-------------------------------------------------------------------------------
-- Dependencies: parseParam; setRanks; parseInput; sourced; propertyvalueandquals assembleoutput;
-------------------------------------------------------------------------------
p.getQualifierIDs = function(frame)
local args = frame.args
args.reqranks = setRanks(args.rank)
args.langobj = findLang(args.lang)
args.lang = args.langobj.code
-- change default for noicon to true
args.noicon = tostring(parseParam(args.noicon or "", true))
local f = {}
f.args = args
local pid = mw.text.trim(args[1] or ""):upper()
-- get the qid and table of claims for the property, or nothing and the local value passed
local qid, props = parseInput(f, args[2], pid)
if not qid then return props end
if not props[1] then return nil end
-- get the other parameters
local onlysrc = parseParam(args.onlysourced or args.osd, true)
local maxvals = tonumber(args.maxvals) or 0
local qlist = args.qlist or ""
if qlist == "" then qlist = "ALL" end
qlist = qlist:gsub("[%p%s]+", " ") .. " "
local out = {}
for i, v in ipairs(props) do
local snak = v.mainsnak
if ( v.rank and args.reqranks[v.rank:sub(1, 1)] )
and ( snak.snaktype == "value" )
and ( sourced(v) or not onlysrc )
then
if v.qualifiers then
for k1, v1 in pairs(v.qualifiers) do
if qlist == "ALL " or qlist:match(k1 .. " ") then
for i2, v2 in ipairs(v1) do
if v2.datatype == "wikibase-item" and v2.snaktype == "value" then
out[#out+1] = v2.datavalue.value.id
end -- of test that id exists
end -- of loop through qualifier values
end -- of test for kq in qlist
end -- of loop through qualifiers
end -- of test for qualifiers
end -- of test for rank value, sourced, and value exists
if maxvals > 0 and #out >= maxvals then break end
end -- of loop through property values
return assembleoutput(out, args, qid, pid)
end
-------------------------------------------------------------------------------
-- getPropOfProp takes two propertyIDs: prop1 and prop2 (as well as the usual parameters)
-- If the value(s) of prop1 are of type "wikibase-item" then it returns the value(s) of prop2
-- of each of those wikibase-items.
-- The usual whitelisting, blacklisting, onlysourced, etc. are implemented
-------------------------------------------------------------------------------
-- Dependencies: parseParam; setRanks; parseInput; sourced; propertyvalueandquals assembleoutput;
-------------------------------------------------------------------------------
p._getPropOfProp = function(args)
-- parameter sets for commonly used groups of parameters
local paraset = tonumber(args.ps or args.parameterset or 0)
if paraset == 1 then
-- a common setting
args.rank = "best"
args.fetchwikidata = "ALL"
args.onlysourced = "no"
args.noicon = "true"
elseif paraset == 2 then
-- equivalent to raw
args.rank = "best"
args.fetchwikidata = "ALL"
args.onlysourced = "no"
args.noicon = "true"
args.linked = "no"
args.pd = "true"
elseif paraset == 3 then
-- third set goes here
end
args.reqranks = setRanks(args.rank)
args.langobj = findLang(args.lang)
args.lang = args.langobj.code
local pid1 = args.prop1 or args.pid1 or ""
local pid2 = args.prop2 or args.pid2 or ""
if pid1 == "" or pid2 == "" then return nil end
local f = {}
f.args = args
local qid1, statements1 = parseInput(f, args[1], pid1)
-- parseInput nulls empty args[1] and returns args[1] if nothing on Wikidata
if not qid1 then return statements1 end
-- otherwise it returns the qid and a table for the statement
local onlysrc = parseParam(args.onlysourced or args.osd, true)
local maxvals = tonumber(args.maxvals) or 0
local qualID = mw.text.trim(args.qual or ""):upper()
if qualID == "" then qualID = nil end
local out = {}
for k, v in ipairs(statements1) do
if not onlysrc or sourced(v) then
local snak = v.mainsnak
if snak.datatype == "wikibase-item" and snak.snaktype == "value" then
local qid2 = snak.datavalue.value.id
local statements2 = {}
if args.reqranks.b then
statements2 = mw.wikibase.getBestStatements(qid2, pid2)
else
statements2 = mw.wikibase.getAllStatements(qid2, pid2)
end
if statements2[1] then
local out2 = propertyvalueandquals(statements2, args, qualID)
out[#out+1] = assembleoutput(out2, args, qid2, pid2)
end
end -- of test for valid property1 value
end -- of test for sourced
if maxvals > 0 and #out >= maxvals then break end
end -- of loop through values of property1
return assembleoutput(out, args, qid1, pid1)
end
p.getPropOfProp = function(frame)
local args= frame.args
if not args.prop1 and not args.pid1 then
args = frame:getParent().args
if not args.prop1 and not args.pid1 then return i18n.errors["No property supplied"] end
end
return p._getPropOfProp(args)
end
-------------------------------------------------------------------------------
-- getAwardCat takes most of the usual parameters. If the item has values of P166 (award received),
-- then it examines each of those awards for P2517 (category for recipients of this award).
-- If it exists, it returns the corresponding category,
-- with the item's P734 (family name) as sort key, or no sort key if there is no family name.
-- The sort key may be overridden by the parameter |sortkey (alias |sk).
-- The usual whitelisting, blacklisting, onlysourced, etc. are implemented
-------------------------------------------------------------------------------
-- Dependencies: parseParam; setRanks; parseInput; sourced; propertyvalueandquals assembleoutput;
-------------------------------------------------------------------------------
p.getAwardCat = function(frame)
frame.args.reqranks = setRanks(frame.args.rank)
frame.args.langobj = findLang(frame.args.lang)
frame.args.lang = frame.args.langobj.code
local args = frame.args
args.sep = " "
local pid1 = args.prop1 or "P166"
local pid2 = args.prop2 or "P2517"
if pid1 == "" or pid2 == "" then return nil end
-- locally supplied value:
local localval = mw.text.trim(args[1] or "")
local qid1, statements1 = parseInput(frame, localval, pid1)
if not qid1 then return localval end
-- linkprefix (strip quotes)
local lp = (args.linkprefix or args.lp or ""):gsub('"', '')
-- sort key (strip quotes, hyphens and periods):
local sk = (args.sortkey or args.sk or ""):gsub('["-.]', '')
-- family name:
local famname = ""
if sk == "" then
local p734 = mw.wikibase.getBestStatements(qid1, "P734")[1]
local p734id = p734 and p734.mainsnak.snaktype == "value" and p734.mainsnak.datavalue.value.id or ""
famname = mw.wikibase.getSitelink(p734id) or ""
-- strip namespace and disambigation
local pos = famname:find(":") or 0
famname = famname:sub(pos+1):gsub("%s%(.+%)$", "")
if famname == "" then
local lbl = mw.wikibase.getLabel(p734id)
famname = lbl and mw.text.nowiki(lbl) or ""
end
end
local onlysrc = parseParam(args.onlysourced or args.osd, true)
local maxvals = tonumber(args.maxvals) or 0
local qualID = mw.text.trim(args.qual or ""):upper()
if qualID == "" then qualID = nil end
local out = {}
for k, v in ipairs(statements1) do
if not onlysrc or sourced(v) then
local snak = v.mainsnak
if snak.datatype == "wikibase-item" and snak.snaktype == "value" then
local qid2 = snak.datavalue.value.id
local statements2 = {}
if args.reqranks.b then
statements2 = mw.wikibase.getBestStatements(qid2, pid2)
else
statements2 = mw.wikibase.getAllStatements(qid2, pid2)
end
if statements2[1] and statements2[1].mainsnak.snaktype == "value" then
local qid3 = statements2[1].mainsnak.datavalue.value.id
local sitelink = mw.wikibase.getSitelink(qid3)
-- if there's no local sitelink, create the sitelink from English label
if not sitelink then
local lbl = mw.wikibase.getLabelByLang(qid3, "en")
if lbl then
if lbl:sub(1,9) == "Category:" then
sitelink = mw.text.nowiki(lbl)
else
sitelink = "Category:" .. mw.text.nowiki(lbl)
end
end
end
if sitelink then
if sk ~= "" then
out[#out+1] = "[[" .. lp .. sitelink .. "|" .. sk .. "]]"
elseif famname ~= "" then
out[#out+1] = "[[" .. lp .. sitelink .. "|" .. famname .. "]]"
else
out[#out+1] = "[[" .. lp .. sitelink .. "]]"
end -- of check for sort keys
end -- of test for sitelink
end -- of test for category
end -- of test for wikibase item has a value
end -- of test for sourced
if maxvals > 0 and #out >= maxvals then break end
end -- of loop through values of property1
return assembleoutput(out, args, qid1, pid1)
end
-------------------------------------------------------------------------------
-- getIntersectCat takes most of the usual parameters.
-- The usual whitelisting, blacklisting, onlysourced, etc. are implemented
-- It takes two properties, |prop1 and |prop2 (e.g. occupation and country of citizenship)
-- Each property's value is a wiki-base entity
-- For each value of the first parameter (ranks implemented) it fetches the value's main category
-- and then each value of the second parameter (possibly substituting a simpler description)
-- then it returns all of the categories representing the intersection of those properties,
-- (e.g. Category:Actors from Canada). A joining term may be supplied (e.g. |join=from).
-- The item's P734 (family name) is the sort key, or no sort key if there is no family name.
-- The sort key may be overridden by the parameter |sortkey (alias |sk).
-------------------------------------------------------------------------------
-- Dependencies: parseParam; setRanks; parseInput; sourced; propertyvalueandquals assembleoutput;
-------------------------------------------------------------------------------
p.getIntersectCat = function(frame)
frame.args.reqranks = setRanks(frame.args.rank)
frame.args.langobj = findLang(frame.args.lang)
frame.args.lang = frame.args.langobj.code
local args = frame.args
args.sep = " "
args.linked = "no"
local pid1 = args.prop1 or "P106"
local pid2 = args.prop2 or "P27"
if pid1 == "" or pid2 == "" then return nil end
local qid, statements1 = parseInput(frame, "", pid1)
if not qid then return nil end
local qid, statements2 = parseInput(frame, "", pid2)
if not qid then return nil end
-- topics like countries may have different names in categories from their label in Wikidata
local subs_exists, subs = pcall(mw.loadData, "Module:WikidataIB/subs")
local join = args.join or ""
local onlysrc = parseParam(args.onlysourced or args.osd, true)
local maxvals = tonumber(args.maxvals) or 0
-- linkprefix (strip quotes)
local lp = (args.linkprefix or args.lp or ""):gsub('"', '')
-- sort key (strip quotes, hyphens and periods):
local sk = (args.sortkey or args.sk or ""):gsub('["-.]', '')
-- family name:
local famname = ""
if sk == "" then
local p734 = mw.wikibase.getBestStatements(qid, "P734")[1]
local p734id = p734 and p734.mainsnak.snaktype == "value" and p734.mainsnak.datavalue.value.id or ""
famname = mw.wikibase.getSitelink(p734id) or ""
-- strip namespace and disambigation
local pos = famname:find(":") or 0
famname = famname:sub(pos+1):gsub("%s%(.+%)$", "")
if famname == "" then
local lbl = mw.wikibase.getLabel(p734id)
famname = lbl and mw.text.nowiki(lbl) or ""
end
end
local cat1 = {}
for k, v in ipairs(statements1) do
if not onlysrc or sourced(v) then
-- get the ID representing the value of the property
local pvalID = (v.mainsnak.snaktype == "value") and v.mainsnak.datavalue.value.id
if pvalID then
-- get the topic's main category (P910) for that entity
local p910 = mw.wikibase.getBestStatements(pvalID, "P910")[1]
if p910 and p910.mainsnak.snaktype == "value" then
local tmcID = p910.mainsnak.datavalue.value.id
-- use sitelink or the English label for the cat
local cat = mw.wikibase.getSitelink(tmcID)
if not cat then
local lbl = mw.wikibase.getLabelByLang(tmcID, "en")
if lbl then
if lbl:sub(1,9) == "Category:" then
cat = mw.text.nowiki(lbl)
else
cat = "Category:" .. mw.text.nowiki(lbl)
end
end
end
cat1[#cat1+1] = cat
end -- of test for topic's main category exists
end -- of test for property has vaild value
end -- of test for sourced
if maxvals > 0 and #cat1 >= maxvals then break end
end
local cat2 = {}
for k, v in ipairs(statements2) do
if not onlysrc or sourced(v) then
local cat = rendersnak(v, args)
if subs[cat] then cat = subs[cat] end
cat2[#cat2+1] = cat
end
if maxvals > 0 and #cat2 >= maxvals then break end
end
local out = {}
for k1, v1 in ipairs(cat1) do
for k2, v2 in ipairs(cat2) do
if sk ~= "" then
out[#out+1] = "[[" .. lp .. v1 .. " " .. join .. " " .. v2 .. "|" .. sk .. "]]"
elseif famname ~= "" then
out[#out+1] = "[[" .. lp .. v1 .. " " .. join .. " " .. v2 .. "|" .. famname .. "]]"
else
out[#out+1] = "[[" .. lp .. v1 .. " " .. join .. " " .. v2 .. "]]"
end -- of check for sort keys
end
end
args.noicon = "true"
return assembleoutput(out, args, qid, pid1)
end
-------------------------------------------------------------------------------
-- qualsToTable takes most of the usual parameters.
-- The usual whitelisting, blacklisting, onlysourced, etc. are implemented.
-- A qid may be given, and the first unnamed parameter is the property ID, which is of type wikibase item.
-- It takes a list of qualifier property IDs as |quals=
-- For a given qid and property, it creates the rows of an html table,
-- each row being a value of the property (optionally only if the property matches the value in |pval= )
-- each cell being the first value of the qualifier corresponding to the list in |quals
-------------------------------------------------------------------------------
-- Dependencies: parseParam; setRanks; parseInput; sourced;
-------------------------------------------------------------------------------
p.qualsToTable = function(frame)
local args = frame.args
local quals = args.quals or ""
if quals == "" then return "" end
args.reqranks = setRanks(args.rank)
local propertyID = mw.text.trim(args[1] or "")
local f = {}
f.args = args
local entityid, props = parseInput(f, "", propertyID)
if not entityid then return "" end
args.langobj = findLang(args.lang)
args.lang = args.langobj.code
local pval = args.pval or ""
local qplist = mw.text.split(quals, "%p") -- split at punctuation and make a sequential table
for i, v in ipairs(qplist) do
qplist[i] = mw.text.trim(v):upper() -- remove whitespace and capitalise
end
local col1 = args.firstcol or ""
if col1 ~= "" then
col1 = col1 .. "</td><td>"
end
local emptycell = args.emptycell or " "
-- construct a 2-D array of qualifier values in qvals
local qvals = {}
for i, v in ipairs(props) do
local skip = false
if pval ~= "" then
local pid = v.mainsnak.datavalue and v.mainsnak.datavalue.value.id
if pid ~= pval then skip = true end
end
if not skip then
local qval = {}
local vqualifiers = v.qualifiers or {}
-- go through list of wanted qualifier properties
for i1, v1 in ipairs(qplist) do
-- check for that property ID in the statement's qualifiers
local qv, qtype
if vqualifiers[v1] then
qtype = vqualifiers[v1][1].datatype
if qtype == "time" then
if vqualifiers[v1][1].snaktype == "value" then
qv = mw.wikibase.renderSnak(vqualifiers[v1][1])
qv = frame:expandTemplate{title="dts", args={qv}}
else
qv = "?"
end
elseif qtype == "url" then
if vqualifiers[v1][1].snaktype == "value" then
qv = mw.wikibase.renderSnak(vqualifiers[v1][1])
local display = mw.ustring.match( mw.uri.decode(qv, "WIKI"), "([%w ]+)$" )
if display then
qv = "[" .. qv .. " " .. display .. "]"
end
end
else
qv = mw.wikibase.formatValue(vqualifiers[v1][1])
end
end
-- record either the value or a placeholder
qval[i1] = qv or emptycell
end -- of loop through list of qualifiers
-- add the list of qualifier values as a "row" in the main list
qvals[#qvals+1] = qval
end
end -- of for each value loop
local out = {}
for i, v in ipairs(qvals) do
out[i] = "<tr><td>" .. col1 .. table.concat(qvals[i], "</td><td>") .. "</td></tr>"
end
return table.concat(out, "\n")
end
-------------------------------------------------------------------------------
-- getGlobe takes an optional qid of a Wikidata entity passed as |qid=
-- otherwise it uses the linked item for the current page.
-- If returns the Qid of the globe used in P625 (coordinate location),
-- or nil if there isn't one.
-------------------------------------------------------------------------------
-- Dependencies: none
-------------------------------------------------------------------------------
p.getGlobe = function(frame)
local qid = frame.args.qid or frame.args[1] or ""
if qid == "" then qid = mw.wikibase.getEntityIdForCurrentPage() end
local coords = mw.wikibase.getBestStatements(qid, "P625")[1]
local globeid
if coords and coords.mainsnak.snaktype == "value" then
globeid = coords.mainsnak.datavalue.value.globe:match("(Q%d+)")
end
return globeid
end
-------------------------------------------------------------------------------
-- getCommonsLink takes an optional qid of a Wikidata entity passed as |qid=
-- It returns one of the following in order of preference:
-- the Commons sitelink of the linked Wikidata item;
-- the Commons sitelink of the topic's main category of the linked Wikidata item;
-------------------------------------------------------------------------------
-- Dependencies: _getCommonslink(); _getSitelink(); parseParam()
-------------------------------------------------------------------------------
p.getCommonsLink = function(frame)
local oc = frame.args.onlycat or frame.args.onlycategories
local fb = parseParam(frame.args.fallback or frame.args.fb, true)
return _getCommonslink(frame.args.qid, oc, fb)
end
-------------------------------------------------------------------------------
-- getSitelink takes the qid of a Wikidata entity passed as |qid=
-- It takes an optional parameter |wiki= to determine which wiki is to be checked for a sitelink
-- If the parameter is blank, then it uses the local wiki.
-- If there is a sitelink to an article available, it returns the plain text link to the article
-- If there is no sitelink, it returns nil.
-------------------------------------------------------------------------------
-- Dependencies: none
-------------------------------------------------------------------------------
p.getSiteLink = function(frame)
return _getSitelink(frame.args.qid, frame.args.wiki or mw.text.trim(frame.args[1] or ""))
end
-------------------------------------------------------------------------------
-- getLink has the qid of a Wikidata entity passed as the first unnamed parameter or as |qid=
-- If there is a sitelink to an article on the local Wiki, it returns a link to the article
-- with the Wikidata label as the displayed text.
-- If there is no sitelink, it returns the label as plain text.
-- If there is no label in the local language, it displays the qid instead.
-------------------------------------------------------------------------------
-- Dependencies: none
-------------------------------------------------------------------------------
p.getLink = function(frame)
local itemID = mw.text.trim(frame.args[1] or frame.args.qid or "")
if itemID == "" then return end
local sitelink = mw.wikibase.getSitelink(itemID)
local label = labelOrId(itemID)
if sitelink then
return "[[:" .. sitelink .. "|" .. label .. "]]"
else
return label
end
end
-------------------------------------------------------------------------------
-- getLabel has the qid of a Wikidata entity passed as the first unnamed parameter or as |qid=
-- It returns the Wikidata label for the local language as plain text.
-- If there is no label in the local language, it displays the qid instead.
-------------------------------------------------------------------------------
-- Dependencies: none
-------------------------------------------------------------------------------
p.getLabel = function(frame)
local itemID = mw.text.trim(frame.args[1] or frame.args.qid or "")
if itemID == "" then return end
local lang = frame.args.lang or ""
if lang == "" then lang = nil end
local label = labelOrId(itemID, lang)
return label
end
-------------------------------------------------------------------------------
-- label has the qid of a Wikidata entity passed as the first unnamed parameter or as |qid=
-- if no qid is supplied, it uses the qid associated with the current page.
-- It returns the Wikidata label for the local language as plain text.
-- If there is no label in the local language, it returns nil.
-------------------------------------------------------------------------------
-- Dependencies: none
-------------------------------------------------------------------------------
p.label = function(frame)
local qid = mw.text.trim(frame.args[1] or frame.args.qid or "")
if qid == "" then qid = mw.wikibase.getEntityIdForCurrentPage() end
if not qid then return end
local lang = frame.args.lang or ""
if lang == "" then lang = nil end
local label, success = labelOrId(qid, lang)
if success then return label end
end
-------------------------------------------------------------------------------
-- getAT (Article Title)
-- has the qid of a Wikidata entity passed as the first unnamed parameter or as |qid=
-- If there is a sitelink to an article on the local Wiki, it returns the sitelink as plain text.
-- If there is no sitelink or qid supplied, it returns nothing.
-------------------------------------------------------------------------------
-- Dependencies: none
-------------------------------------------------------------------------------
p.getAT = function(frame)
local itemID = mw.text.trim(frame.args[1] or frame.args.qid or "")
if itemID == "" then return end
return mw.wikibase.getSitelink(itemID)
end
-------------------------------------------------------------------------------
-- getDescription has the qid of a Wikidata entity passed as |qid=
-- (it defaults to the associated qid of the current article if omitted)
-- and a local parameter passed as the first unnamed parameter.
-- Any local parameter passed (other than "Wikidata" or "none") becomes the return value.
-- It returns the article description for the Wikidata entity if the local parameter is "Wikidata".
-- Nothing is returned if the description doesn't exist or "none" is passed as the local parameter.
-------------------------------------------------------------------------------
-- Dependencies: none
-------------------------------------------------------------------------------
p.getDescription = function(frame)
local desc = mw.text.trim(frame.args[1] or "")
local itemID = mw.text.trim(frame.args.qid or "")
if itemID == "" then itemID = nil end
if desc:lower() == 'wikidata' then
return mw.wikibase.getDescription(itemID)
elseif desc:lower() == 'none' then
return nil
else
return desc
end
end
-------------------------------------------------------------------------------
-- getAliases has the qid of a Wikidata entity passed as |qid=
-- (it defaults to the associated qid of the current article if omitted)
-- and a local parameter passed as the first unnamed parameter.
-- It implements blacklisting and whitelisting with a field name of "alias" by default.
-- Any local parameter passed becomes the return value.
-- Otherwise it returns the aliases for the Wikidata entity with the usual list options.
-- Nothing is returned if the aliases do not exist.
-------------------------------------------------------------------------------
-- Dependencies: findLang(); assembleoutput()
-------------------------------------------------------------------------------
p.getAliases = function(frame)
local args = frame.args
local fieldname = args.name or ""
if fieldname == "" then fieldname = "alias" end
local blacklist = args.suppressfields or args.spf or ""
if blacklist:find(fieldname) then return nil end
local localval = mw.text.trim(args[1] or "")
if localval ~= "" then return localval end
local whitelist = args.fetchwikidata or args.fwd or ""
if whitelist == "" then whitelist = "NONE" end
if not (whitelist == 'ALL' or whitelist:find(fieldname)) then return nil end
local qid = args.qid or ""
if qid == "" then qid = mw.wikibase.getEntityIdForCurrentPage() end
if not qid or not mw.wikibase.entityExists(qid) then return nil end
local aliases = mw.wikibase.getEntity(qid).aliases
if not aliases then return nil end
args.langobj = findLang(args.lang)
local langcode = args.langobj.code
args.lang = langcode
local out = {}
for k1, v1 in pairs(aliases) do
if v1[1].language == langcode then
for k1, v2 in ipairs(v1) do
out[#out+1] = v2.value
end
break
end
end
return assembleoutput(out, args, qid)
end
-------------------------------------------------------------------------------
-- pageId returns the page id (entity ID, Qnnn) of the current page
-- returns nothing if the page is not connected to Wikidata
-------------------------------------------------------------------------------
-- Dependencies: none
-------------------------------------------------------------------------------
p.pageId = function(frame)
return mw.wikibase.getEntityIdForCurrentPage()
end
-------------------------------------------------------------------------------
-- formatDate is a wrapper to export the private function format_Date
-------------------------------------------------------------------------------
-- Dependencies: format_Date();
-------------------------------------------------------------------------------
p.formatDate = function(frame)
return format_Date(frame.args[1], frame.args.df, frame.args.bc)
end
-------------------------------------------------------------------------------
-- location is a wrapper to export the private function _location
-- it takes the entity-id as qid or the first unnamed parameter
-- optional boolean parameter first toggles the display of the first item
-- optional boolean parameter skip toggles the display to skip to the last item
-- parameter debug=<y/n> (default 'n') adds error msg if not a location
-------------------------------------------------------------------------------
-- Dependencies: _location();
-------------------------------------------------------------------------------
p.location = function(frame)
local debug = (frame.args.debug or ""):sub(1, 1):lower()
if debug == "" then debug = "n" end
local qid = mw.text.trim(frame.args.qid or frame.args[1] or ""):upper()
if qid == "" then qid=mw.wikibase.getEntityIdForCurrentPage() end
if not qid then
if debug ~= "n" then
return i18n.errors["entity-not-found"]
else
return nil
end
end
local first = mw.text.trim(frame.args.first or "")
local skip = mw.text.trim(frame.args.skip or "")
return table.concat( _location(qid, first, skip), ", " )
end
-------------------------------------------------------------------------------
-- checkBlacklist implements a test to check whether a named field is allowed
-- returns true if the field is not blacklisted (i.e. allowed)
-- returns false if the field is blacklisted (i.e. disallowed)
-- {{#if:{{#invoke:WikidataIB |checkBlacklist |name=Joe |suppressfields=Dave; Joe; Fred}} | not blacklisted | blacklisted}}
-- displays "blacklisted"
-- {{#if:{{#invoke:WikidataIB |checkBlacklist |name=Jim |suppressfields=Dave; Joe; Fred}} | not blacklisted | blacklisted}}
-- displays "not blacklisted"
-------------------------------------------------------------------------------
-- Dependencies: none
-------------------------------------------------------------------------------
p.checkBlacklist = function(frame)
local blacklist = frame.args.suppressfields or frame.args.spf or ""
local fieldname = frame.args.name or ""
if blacklist ~= "" and fieldname ~= "" then
if blacklist:find(fieldname) then
return false
else
return true
end
else
-- one of the fields is missing: let's call that "not on the list"
return true
end
end
-------------------------------------------------------------------------------
-- emptyor returns nil if its first unnamed argument is just punctuation, whitespace or html tags
-- otherwise it returns the argument unchanged (including leading/trailing space).
-- If the argument may contain "=", then it must be called explicitly:
-- |1=arg
-- (In that case, leading and trailing spaces are trimmed)
-- It finds use in infoboxes where it can replace tests like:
-- {{#if: {{#invoke:WikidatIB |getvalue |P99 |fwd=ALL}} | <span class="xxx">{{#invoke:WikidatIB |getvalue |P99 |fwd=ALL}}</span> | }}
-- with a form that uses just a single call to Wikidata:
-- {{#invoke |WikidataIB |emptyor |1= <span class="xxx">{{#invoke:WikidataIB |getvalue |P99 |fwd=ALL}}</span> }}
-------------------------------------------------------------------------------
-- Dependencies: none
-------------------------------------------------------------------------------
p.emptyor = function(frame)
local s = frame.args[1] or ""
if s == "" then return nil end
local sx = s:gsub("%s", ""):gsub("<[^>]*>", ""):gsub("%p", "")
if sx == "" then
return nil
else
return s
end
end
-------------------------------------------------------------------------------
-- labelorid is a public function to expose the output of labelOrId()
-- Pass the Q-number as |qid= or as an unnamed parameter.
-- It returns the Wikidata label for that entity or the qid if no label exists.
-------------------------------------------------------------------------------
-- Dependencies: labelOrId
-------------------------------------------------------------------------------
p.labelorid = function(frame)
return (labelOrId(frame.args.qid or frame.args[1]))
end
-------------------------------------------------------------------------------
-- getLang returns the MediaWiki language code of the current content.
-- If optional parameter |style=full, it returns the language name.
-------------------------------------------------------------------------------
-- Dependencies: none
-------------------------------------------------------------------------------
p.getLang = function(frame)
local style = (frame.args.style or ""):lower()
local langcode = mw.language.getContentLanguage().code
if style == "full" then
return mw.language.fetchLanguageName( langcode )
end
return langcode
end
-------------------------------------------------------------------------------
-- getItemLangCode takes a qid parameter (using the current page's qid if blank)
-- If the item for that qid has property country (P17) it looks at the first preferred value
-- If the country has an official language (P37), it looks at the first preferred value
-- If that official language has a language code (P424), it returns the first preferred value
-- Otherwise it returns nothing.
-------------------------------------------------------------------------------
-- Dependencies: _getItemLangCode()
-------------------------------------------------------------------------------
p.getItemLangCode = function(frame)
return _getItemLangCode(frame.args.qid or frame.args[1])
end
-------------------------------------------------------------------------------
-- findLanguage exports the local findLang() function
-- It takes an optional language code and returns, in order of preference:
-- the code if a known language;
-- the user's language, if set;
-- the server's content language.
-------------------------------------------------------------------------------
-- Dependencies: findLang
-------------------------------------------------------------------------------
p.findLanguage = function(frame)
return findLang(frame.args.lang or frame.args[1]).code
end
-------------------------------------------------------------------------------
-- getQid returns the qid, if supplied
-- failing that, the Wikidata entity ID of the "category's main topic (P301)", if it exists
-- failing that, the Wikidata entity ID associated with the current page, if it exists
-- otherwise, nothing
-------------------------------------------------------------------------------
-- Dependencies: none
-------------------------------------------------------------------------------
p.getQid = function(frame)
local qid = (frame.args.qid or ""):upper()
-- check if a qid was passed; if so, return it:
if qid ~= "" then return qid end
-- check if there's a "category's main topic (P301)":
qid = mw.wikibase.getEntityIdForCurrentPage()
if qid then
local prop301 = mw.wikibase.getBestStatements(qid, "P301")
if prop301[1] then
local mctid = prop301[1].mainsnak.datavalue.value.id
if mctid then return mctid end
end
end
-- otherwise return the page qid (if any)
return qid
end
-------------------------------------------------------------------------------
-- followQid takes four optional parameters: qid, props, list and all.
-- If qid is not given, it uses the qid for the connected page
-- or returns nil if there isn't one.
-- props is a list of properties, separated by punctuation.
-- If props is given, the Wikidata item for the qid is examined for each property in turn.
-- If that property contains a value that is another Wikibase-item, that item's qid is returned,
-- and the search terminates, unless |all=y when all of the qids are returned, separated by spaces.
-- If |list= is set to a template, the qids are passed as arguments to the template.
-- If props is not given, the qid is returned.
-------------------------------------------------------------------------------
-- Dependencies: parseParam()
-------------------------------------------------------------------------------
p._followQid = function(args)
local qid = (args.qid or ""):upper()
local all = parseParam(args.all, false)
local list = args.list or ""
if list == "" then list = nil end
if qid == "" then
qid = mw.wikibase.getEntityIdForCurrentPage()
end
if not qid then return nil end
local out = {}
local props = (args.props or ""):upper()
if props ~= "" then
for p in mw.text.gsplit(props, "%p") do -- split at punctuation and iterate
p = mw.text.trim(p)
for i, v in ipairs( mw.wikibase.getBestStatements(qid, p) ) do
local linkedid = v.mainsnak.datavalue and v.mainsnak.datavalue.value.id
if linkedid then
if all then
out[#out+1] = linkedid
else
return linkedid
end -- test for all or just the first one found
end -- test for value exists for that property
end -- loop through values of property to follow
end -- loop through list of properties to follow
end
if #out > 0 then
local ret = ""
if list then
ret = mw.getCurrentFrame():expandTemplate{title = list, args = out}
else
ret = table.concat(out, " ")
end
return ret
else
return qid
end
end
p.followQid = function(frame)
return p._followQid(frame.args)
end
-------------------------------------------------------------------------------
-- globalSiteID returns the globalSiteID for the current wiki
-- e.g. returns "enwiki" for the English Wikipedia, "enwikisource" for English Wikisource, etc.
-------------------------------------------------------------------------------
-- Dependencies: none
-------------------------------------------------------------------------------
p.globalSiteID = function(frame)
return mw.wikibase.getGlobalSiteId()
end
-------------------------------------------------------------------------------
-- siteID returns the root of the globalSiteID
-- e.g. "en" for "enwiki", "enwikisource", etc.
-- treats "en-gb" as "en", etc.
-------------------------------------------------------------------------------
-- Dependencies: none
-------------------------------------------------------------------------------
p.siteID = function(frame)
local txtlang = frame:preprocess( "{{int:lang}}" ) or ""
-- This deals with specific exceptions: be-tarask -> be-x-old
if txtlang == "be-tarask" then
return "be_x_old"
end
local pos = txtlang:find("-")
local ret = ""
if pos then
ret = txtlang:sub(1, pos-1)
else
ret = txtlang
end
return ret
end
-------------------------------------------------------------------------------
-- projID returns the code used to link to the reader's language's project
-- e.g "en" for [[:en:WikidataIB]]
-- treats "en-gb" as "en", etc.
-------------------------------------------------------------------------------
-- Dependencies: none
-------------------------------------------------------------------------------
p.projID = function(frame)
local txtlang = frame:preprocess( "{{int:lang}}" ) or ""
-- This deals with specific exceptions: be-tarask -> be-x-old
if txtlang == "be-tarask" then
return "be-x-old"
end
local pos = txtlang:find("-")
local ret = ""
if pos then
ret = txtlang:sub(1, pos-1)
else
ret = txtlang
end
return ret
end
-------------------------------------------------------------------------------
-- formatNumber formats a number according to the the supplied language code ("|lang=")
-- or the default language if not supplied.
-- The number is the first unnamed parameter or "|num="
-------------------------------------------------------------------------------
-- Dependencies: findLang()
-------------------------------------------------------------------------------
p.formatNumber = function(frame)
local lang
local num = tonumber(frame.args[1] or frame.args.num) or 0
lang = findLang(frame.args.lang)
return lang:formatNum( num )
end
-------------------------------------------------------------------------------
-- examine dumps the property (the unnamed parameter or pid)
-- from the item given by the parameter 'qid' (or the other unnamed parameter)
-- or from the item corresponding to the current page if qid is not supplied.
-- e.g. {{#invoke:WikidataIB |examine |pid=P26 |qid=Q42}}
-- or {{#invoke:WikidataIB |examine |P26 |Q42}} or any combination of these
-- or {{#invoke:WikidataIB |examine |P26}} for the current page.
-------------------------------------------------------------------------------
-- Dependencies: none
-------------------------------------------------------------------------------
p.examine = function( frame )
local args
if frame.args[1] or frame.args.pid or frame.args.qid then
args = frame.args
else
args = frame:getParent().args
end
local par = {}
local pid = (args.pid or ""):upper()
local qid = (args.qid or ""):upper()
par[1] = mw.text.trim( args[1] or "" ):upper()
par[2] = mw.text.trim( args[2] or "" ):upper()
table.sort(par)
if par[2]:sub(1,1) == "P" then par[1], par[2] = par[2], par[1] end
if pid == "" then pid = par[1] end
if qid == "" then qid = par[2] end
local q1 = qid:sub(1,1)
if pid:sub(1,1) ~= "P" then return "No property supplied" end
if q1 ~= "Q" and q1 ~= "M" then qid = mw.wikibase.getEntityIdForCurrentPage() end
if not qid then return "No item for this page" end
return "<pre>" .. mw.dumpObject( mw.wikibase.getAllStatements( qid, pid ) ) .. "</pre>"
end
-------------------------------------------------------------------------------
-- checkvalue looks for 'val' as a wikibase-item value of a property (the unnamed parameter or pid)
-- from the item given by the parameter 'qid'
-- or from the Wikidata item associated with the current page if qid is not supplied.
-- It only checks ranks that are requested (preferred and normal by default)
-- If property is not supplied, then P31 (instance of) is assumed.
-- It returns val if found or nothing if not found.
-- e.g. {{#invoke:WikidataIB |checkvalue |val=Q5 |pid=P31 |qid=Q42}}
-- or {{#invoke:WikidataIB |checkvalue |val=Q5 |P31 |qid=Q42}}
-- or {{#invoke:WikidataIB |checkvalue |val=Q5 |qid=Q42}}
-- or {{#invoke:WikidataIB |checkvalue |val=Q5 |P31}} for the current page.
-------------------------------------------------------------------------------
-- Dependencies: none
-------------------------------------------------------------------------------
p.checkvalue = function( frame )
local args
if frame.args.val then
args = frame.args
else
args = frame:getParent().args
end
local val = args.val
if not val then return nil end
local pid = mw.text.trim(args.pid or args[1] or "P31"):upper()
local qid = (args.qid or ""):upper()
if pid:sub(1,1) ~= "P" then return nil end
if qid:sub(1,1) ~= "Q" then qid = mw.wikibase.getEntityIdForCurrentPage() end
if not qid then return nil end
local ranks = setRanks(args.rank)
local stats = {}
if ranks.b then
stats = mw.wikibase.getBestStatements(qid, pid)
else
stats = mw.wikibase.getAllStatements( qid, pid )
end
if not stats[1] then return nil end
if stats[1].mainsnak.datatype == "wikibase-item" then
for k, v in pairs( stats ) do
local ms = v.mainsnak
if ranks[v.rank:sub(1,1)] and ms.snaktype == "value" and ms.datavalue.value.id == val then
return val
end
end
end
return nil
end
-------------------------------------------------------------------------------
-- url2 takes a parameter url= that is a proper url and formats it for use in an infobox.
-- If no parameter is supplied, it returns nothing.
-- This is the equivalent of Template:URL
-- but it keeps the "edit at Wikidata" pen icon out of the microformat.
-- Usually it will take its url parameter directly from a Wikidata call:
-- e.g. {{#invoke:WikidataIB |url2 |url={{wdib |P856 |qid=Q23317 |fwd=ALL |osd=no}} }}
-------------------------------------------------------------------------------
-- Dependencies: none
-------------------------------------------------------------------------------
p.url2 = function(frame)
local txt = frame.args.url or ""
if txt == "" then return nil end
-- extract any icon
local url, icon = txt:match("(.+) (.+)")
-- make sure there's at least a space at the end
url = (url or txt) .. " "
icon = icon or ""
-- extract any protocol like https://
local prot = url:match("(https*://).+[ \"\']")
-- extract address
local addr = ""
if prot then
addr = url:match("https*://(.+)[ \"\']") or " "
else
prot = "//"
addr = url:match("[^%p%s]+%.(.+)[ \"\']") or " "
end
-- strip trailing / from end of domain-only url and add <wbr/> before . and /
local disp, n = addr:gsub( "^([^/]+)/$", "%1" ):gsub("%/", "<wbr/>/"):gsub("%.", "<wbr/>.")
return '<span class="url">[' .. prot .. addr .. " " .. disp .. "]</span> " .. icon
end
-------------------------------------------------------------------------------
-- getWebsite fetches the Official website (P856) and formats it for use in an infobox.
-- This is similar to Template:Official website but with a url displayed,
-- and it adds the "edit at Wikidata" pen icon beyond the microformat if enabled.
-- A local value will override the Wikidata value. "NONE" returns nothing.
-- e.g. {{#invoke:WikidataIB |getWebsite |qid= |noicon= |lang= |url= }}
-------------------------------------------------------------------------------
-- Dependencies: findLang(); parseParam();
-------------------------------------------------------------------------------
p.getWebsite = function(frame)
local url = frame.args.url or ""
if url:upper() == "NONE" then return nil end
local qid = frame.args.qid or ""
if qid == "" then qid = mw.wikibase.getEntityIdForCurrentPage() end
if not qid then return nil end
local urls = {}
local quals = {}
if url == "" then
local prop856 = mw.wikibase.getBestStatements(qid, "P856")
for k, v in pairs(prop856) do
if v.mainsnak.snaktype == "value" then
urls[#urls+1] = v.mainsnak.datavalue.value
if v.qualifiers and v.qualifiers["P1065"] then
-- just take the first archive url (P1065)
local au = v.qualifiers["P1065"][1]
if au.snaktype == "value" then
quals[#urls] = au.datavalue.value
end -- test for archive url having a value
end -- test for qualifers
end -- test for website having a value
end -- loop through website(s)
else
urls[1] = url
end
if #urls == 0 then return nil end
local out = {}
for i, u in ipairs(urls) do
local link = quals[i] or u
local prot, addr = u:match("(http[s]*://)(.+)")
addr = addr or u
local disp, n = addr:gsub("%.", "<wbr/>%.")
out[#out+1] = '<span class="url">[' .. link .. " " .. disp .. "]</span>"
end
local langcode = findLang(frame.args.lang).code
local noicon = parseParam(frame.args.noicon, false)
if url == "" and not noicon then
out[#out] = out[#out] .. createicon(langcode, qid, "P856")
end
local ret = ""
if #out > 1 then
ret = mw.getCurrentFrame():expandTemplate{title = "ubl", args = out}
else
ret = out[1]
end
return ret
end
-------------------------------------------------------------------------------
-- getAllLabels fetches the set of labels and formats it for display as wikitext.
-- It takes a parameter 'qid' for arbitrary access, otherwise it uses the current page.
-------------------------------------------------------------------------------
-- Dependencies: none
-------------------------------------------------------------------------------
p.getAllLabels = function(frame)
local args = frame.args or frame:getParent().args or {}
local qid = args.qid or ""
if qid == "" then qid = mw.wikibase.getEntityIdForCurrentPage() end
if not qid or not mw.wikibase.entityExists(qid) then return i18n["entity-not-found"] end
local labels = mw.wikibase.getEntity(qid).labels
if not labels then return i18n["labels-not-found"] end
local out = {}
for k, v in pairs(labels) do
out[#out+1] = v.value .. " (" .. v.language .. ")"
end
return table.concat(out, "; ")
end
-------------------------------------------------------------------------------
-- getAllDescriptions fetches the set of descriptions and formats it for display as wikitext.
-- It takes a parameter 'qid' for arbitrary access, otherwise it uses the current page.
-------------------------------------------------------------------------------
-- Dependencies: none
-------------------------------------------------------------------------------
p.getAllDescriptions = function(frame)
local args = frame.args or frame:getParent().args or {}
local qid = args.qid or ""
if qid == "" then qid = mw.wikibase.getEntityIdForCurrentPage() end
if not qid or not mw.wikibase.entityExists(qid) then return i18n["entity-not-found"] end
local descriptions = mw.wikibase.getEntity(qid).descriptions
if not descriptions then return i18n["descriptions-not-found"] end
local out = {}
for k, v in pairs(descriptions) do
out[#out+1] = v.value .. " (" .. v.language .. ")"
end
return table.concat(out, "; ")
end
-------------------------------------------------------------------------------
-- getAllAliases fetches the set of aliases and formats it for display as wikitext.
-- It takes a parameter 'qid' for arbitrary access, otherwise it uses the current page.
-------------------------------------------------------------------------------
-- Dependencies: none
-------------------------------------------------------------------------------
p.getAllAliases = function(frame)
local args = frame.args or frame:getParent().args or {}
local qid = args.qid or ""
if qid == "" then qid = mw.wikibase.getEntityIdForCurrentPage() end
if not qid or not mw.wikibase.entityExists(qid) then return i18n["entity-not-found"] end
local aliases = mw.wikibase.getEntity(qid).aliases
if not aliases then return i18n["aliases-not-found"] end
local out = {}
for k1, v1 in pairs(aliases) do
local lang = v1[1].language
local val = {}
for k1, v2 in ipairs(v1) do
val[#val+1] = v2.value
end
out[#out+1] = table.concat(val, ", ") .. " (" .. lang .. ")"
end
return table.concat(out, "; ")
end
-------------------------------------------------------------------------------
-- showNoLinks displays the article titles that should not be linked.
-------------------------------------------------------------------------------
-- Dependencies: none
-------------------------------------------------------------------------------
p.showNoLinks = function(frame)
local out = {}
for k, v in pairs(donotlink) do
out[#out+1] = k
end
table.sort( out )
return table.concat(out, "; ")
end
-------------------------------------------------------------------------------
-- checkValidity checks whether the first unnamed parameter represents a valid entity-id,
-- that is, something like Q1235 or P123.
-- It returns the strings "true" or "false".
-- Change false to nil to return "true" or "" (easier to test with #if:).
-------------------------------------------------------------------------------
-- Dependencies: none
-------------------------------------------------------------------------------
function p.checkValidity(frame)
local id = mw.text.trim(frame.args[1] or "")
if mw.wikibase.isValidEntityId(id) then
return true
else
return false
end
end
-------------------------------------------------------------------------------
-- getEntityFromTitle returns the Entity-ID (Q-number) for a given title.
-- Modification of Module:ResolveEntityId
-- The title is the first unnamed parameter.
-- The site parameter determines the site/language for the title. Defaults to current wiki.
-- The showdab parameter determines whether dab pages should return the Q-number or nil. Defaults to true.
-- Returns the Q-number or nil if it does not exist.
-------------------------------------------------------------------------------
-- Dependencies: parseParam
-------------------------------------------------------------------------------
function p.getEntityFromTitle(frame)
local args=frame.args
if not args[1] then args=frame:getParent().args end
if not args[1] then return nil end
local title = mw.text.trim(args[1])
local site = args.site or ""
local showdab = parseParam(args.showdab, true)
local qid = mw.wikibase.getEntityIdForTitle(title, site)
if qid then
local prop31 = mw.wikibase.getBestStatements(qid, "P31")[1]
if not showdab and prop31 and prop31.mainsnak.datavalue.value.id == "Q4167410" then
return nil
else
return qid
end
end
end
-------------------------------------------------------------------------------
-- getDatePrecision returns the number representing the precision of the first best date value
-- for the given property.
-- It takes the qid and property ID
-- The meanings are given at https://www.mediawiki.org/wiki/Wikibase/DataModel#Dates_and_times
-- 0 = 1 billion years .. 6 = millennium, 7 = century, 8 = decade, 9 = year, 10 = month, 11 = day
-- Returns 0 (or the second unnamed parameter) if the Wikidata does not exist.
-------------------------------------------------------------------------------
-- Dependencies: parseParam; sourced;
-------------------------------------------------------------------------------
function p.getDatePrecision(frame)
local args=frame.args
if not args[1] then args=frame:getParent().args end
local default = tonumber(args[2] or args.default) or 0
local prop = mw.text.trim(args[1] or "")
if prop == "" then return default end
local qid = args.qid or ""
if qid == "" then qid = mw.wikibase.getEntityIdForCurrentPage() end
if not qid then return default end
local onlysrc = parseParam(args.onlysourced or args.osd, true)
local stat = mw.wikibase.getBestStatements(qid, prop)
for i, v in ipairs(stat) do
local prec = (onlysrc == false or sourced(v))
and v.mainsnak.datavalue
and v.mainsnak.datavalue.value
and v.mainsnak.datavalue.value.precision
if prec then return prec end
end
return default
end
return p
-------------------------------------------------------------------------------
-- List of exported functions
-------------------------------------------------------------------------------
--[[
_getValue
getValue
getPreferredValue
getCoords
getQualifierValue
getSumOfParts
getValueByQual
getValueByLang
getValueByRefSource
getPropertyIDs
getQualifierIDs
getPropOfProp
getAwardCat
getIntersectCat
getGlobe
getCommonsLink
getSiteLink
getLink
getLabel
label
getAT
getDescription
getAliases
pageId
formatDate
location
checkBlacklist
emptyor
labelorid
getLang
getItemLangCode
findLanguage
getQID
followQid
globalSiteID
siteID
projID
formatNumber
examine
checkvalue
url2
getWebsite
getAllLabels
getAllDescriptions
getAllAliases
showNoLinks
checkValidity
getEntityFromTitle
getDatePrecision
--]]
-------------------------------------------------------------------------------
1tf16iuqygh0n4np9zsd8j2smqcumrr
Module:WikidataIB/doc
828
1593
15055
2022-07-17T12:17:21Z
Kambai Akau
15
Created page with "{{Module rating |protected}} {{High-use|all-pages=yes}} {{ombox|text=For a more user-friendly wrapper of this module see {{t|wdib}}.}} This module is intended to be used inside {{t|infobox}} (letters Wikidata'''IB''' stand for ''Info Box'', hence the name) or other templates and designed specifically to allow editors of an article (as opposed to editors of the infobox the article uses) to control whether Wikidata values are displayed. One of the two sandboxes should b..."
wikitext
text/x-wiki
{{Module rating |protected}}
{{High-use|all-pages=yes}}
{{ombox|text=For a more user-friendly wrapper of this module see {{t|wdib}}.}}
This module is intended to be used inside {{t|infobox}} (letters Wikidata'''IB''' stand for ''Info Box'', hence the name) or other templates and designed specifically to allow editors of an article (as opposed to editors of the infobox the article uses) to control whether Wikidata values are displayed.
One of the two sandboxes should be used for testing anything other than trivial amendments.
Test examples for the main module and the two sandboxes are available.
{| class="wikitable plainrowheaders
|+ Modules and test cases
|-
!
! scope="col" | Module
! scope="col" | Test cases
|-
! scope="row" | Main
| [[Module:WikidataIB]]
| [[Module talk:WikidataIB/testing]]
|-
! scope="row" | sandbox
| [[Module:WikidataIB/sandbox]] ({{Compare pages|Module:WikidataIB|Module:WikidataIB/sandbox|diff}})
| [[Module talk:WikidataIB/sandbox/testing]] ({{Compare pages|Module talk:WikidataIB/testing|Module talk:WikidataIB/sandbox/testing|diff}})
|-
! scope="row" | sandbox1
| [[Module:WikidataIB/sandbox1]] ({{Compare pages|Module:WikidataIB|Module:WikidataIB/sandbox1|diff}})
| [[Module talk:WikidataIB/sandbox1/testing]] ({{Compare pages|Module talk:WikidataIB/testing|Module talk:WikidataIB/sandbox1/testing|diff}})
|}
== Overview ==
The module provides these calls specifically for use in infoboxes at present:
# <code>getValue</code> - main call, used to get the value(s) of a given property
# <code>getQualifierValue</code> - given: (1) a property; (2) its value; (3) a qualifier's propertyID, returns values which match
# <code>getValueByQual</code> gets the value of a property which has a qualifier with a given entity value
# <code>getValueByLang</code> gets the value of a property which has a qualifier P407("language of work or name") whose value has the given language code
# <code>getValueByRefSource</code> gets the value of a property which has a reference "stated in" (P248) whose value has the given entity-ID
# <code>getPropOfProp</code> if the value(s) of prop1 are of type "wikibase-item" then it returns the value(s) of prop2 of each of those wikibase-items
# <code>getAwardCat</code> if the item has values of P166 (award received), then it examines each of those awards for P2517 (category for recipients of this award) and it returns the corresponding category, with the item's P734 (family name) as sort key, or no sort key if there is no family name
# <code>getIntersectCat</code> for each value of the prop1 it fetches the value's main category and then each value of prop2, then it returns all of the categories representing the intersection of those properties
# <code>getSumOfParts</code> scans the property 'has part' (P527) for values matching a list, If the matched values have a qualifier 'quantity' (P1114), those quantities are summed and returned (but zero returns nil)
# <code>getCoords</code> - gets coordinates and passes them through {{t|Coord}}
# <code>getPreferredValue</code> - {{color|red|'''Deprecated'''}} but retained for backward compatibility. Use the <code>|getValue|rank=best</code> parameters instead.
The obsolete call getSourcedValue has now been removed as it is redundant to getValue which can do the same job using the {{para|onlysourced|true}} parameter (which is set by default).
===Utilities functions===
# <code>getLink</code> if there is a sitelink to an article on the local Wiki, it returns a link to the article with the Wikidata label as the displayed text. If there is no sitelink, it returns the label as plain text. If there is no label in the local language, it returns the entity-ID
# <code>getAT</code> (Article Title) If there is a sitelink to an article on the local Wiki, it returns the sitelink as plain text, otherwise nothing
# <code>getSiteLink</code> gets the plain text link to an article on a given wiki
# <code>getLabel</code> returns the Wikidata label for the local language as plain text. If there is no label in the local language, it returns the entity-ID
# <code>getAllLabels</code> fetches the set of labels and formats it for display as wikitext
# <code>labelorid</code> returns the label with all wikitext removed, or the entity-ID if no label
# <code>getDescription</code> returns the article description for the Wikidata entity if the local parameter is "Wikidata".
# <code>getAllDescriptions</code> fetches the set of descriptions and formats it for display as wikitext
# <code>getAliases</code> returns the aliases for the entity in the current or given language
# <code>getAllAliases</code> fetches the set of aliases and formats it for display as wikitext
# <code>pageId</code> returns the connected Wikidata page id (entity-ID, Q-number) of the current page
# <code>formatDate</code> takes a datetime of the usual format from mw.wikibase.entity:formatPropertyValues and formats it according to the df (date format) and bc parameters
# <code>formatNumber</code> formats a number according to the supplied language code
# <code>checkBlacklist</code> returns true if the field is ''not'' blacklisted (i.e. allowed)
# <code>emptyor</code> returns nil if the parameter is just punctuation, whitespace or html tags, otherwise returns the argument unchanged
# <code>getLang</code> returns the MediaWiki language code or the full language name of the current content
# <code>getItemLangCode</code> looks for country (P17), then for that country's official language (P37), and returns its language code (P424)
# <code>findLanguage</code> returns (1) supplied language if valid; or (2) the user's set language; or (3) the language of the current wiki
# <code>getQid</code> returns (1) the entity-ID, if supplied; or (2) the entity ID of the "category's main topic (P301)"; or (3) the entity ID associated with the current page; or (4) nothing
# <code>followQid</code> given a list of properties, looks for each property in turn and returns the entity-ID of the first value that matches (optionally, returns all entity-IDs that match)
# <code>getGlobe</code> returns the entity-ID of the globe used in P625 (coordinate location), or nil if there isn't one
# <code>getCommonsLink</code> returns one of the following in order of preference: the Commons sitelink of the linked Wikidata item; the Commons sitelink of the topic's main category of the linked Wikidata item;
# <code>siteID</code> returns the root of the globalSiteID, e.g. "en" for "enwiki", "enwikisource", "en-gb", etc.
# <code>projID</code> same as siteID
# <code>location</code> scans from the current location upwards along the chain of higher-level locations, returning each one until it reaches a country
# <code>examine</code> returns a formatted dump of the given property
# <code>url2</code> takes a parameter that is a proper url and formats it for use in an infobox; it accepts its own output as input
# <code>getWebsite</code> fetches the Official website (P856) and formats it for use in an infobox
# <code>checkvalue</code> looks through a property for a given entity-ID as its value and returns that entity-ID if found; otherwise nil
# <code>checkValidity</code> returns whether the first unnamed parameter represents a valid entity-id
# <code>showNoLinks</code> displays the article titles that should not be linked
===Examples of calls===
<nowiki>{{#invoke:WikidataIB |getValue |<PropertyID> |name=<fieldname> |suppressfields=<list of fields which will never display> |fetchwikidata=<list of fields to fetch values from Wikidata> |onlysourced=<yes/no> |noicon=<yes/no> |df=<dmy/mdy/y> |bc=<BC/BCE> |qual=<ALL/DATES/P999> |list=<ubl/hlist/prose> |linked=<yes/no> |<local parameter>}}</nowiki>
<nowiki>{{#invoke:WikidataIB |getCoords |name=<fieldname> |suppressfields=<list of fields which will never display> |fetchwikidata=<list of fields to fetch values from Wikidata> |<local parameter>}}</nowiki>
<nowiki>{{#invoke:WikidataIB |getQualifierValue |<PropertyID> |pval=<ID of target value for the property> |qual=<qualifier ID for that target value> |name=<fieldname> |suppressfields=<list of fields which will never display> |fetchwikidata=<list of fields to fetch values from Wikidata> |onlysourced=<yes/no>}}</nowiki>
<nowiki>{{#invoke:WikidataIB |getValueByQual |<PropertyID> |qualID=<qualifier property ID to match> |qvalue=<QID of target value for the qualifier property> |name=<fieldname> |suppressfields=<list of fields which will never display> |fetchwikidata=<list of fields to fetch values from Wikidata> |onlysourced=<yes/no>}}</nowiki>
<nowiki>{{#invoke:WikidataIB |getValueByLang |<PropertyID> |lang=<language code to match> |name=<fieldname> |suppressfields=<list of fields which will never display> |fetchwikidata=<list of fields to fetch values from Wikidata> |onlysourced=<yes/no>}}</nowiki>
== Function getValue ==
=== Parameters to getValue ===
{| class ="wikitable sortable"
|-
! scope="col" | Name
! scope="col" | Alias
! scope="col" | Function
! scope="col" | Default
|-
| (first unnamed)
| 1
| The property-ID whose values are returned. Required.
|
|-
|-
| (second unnamed)
| 2
| A locally supplied value that, if it is not empty, will be returned in preference to the value on Wikidata.
| empty
|-
| qid
|
| The Q-number (entity-ID) of the entity that the property belongs to. If not supplied or empty, defaults to the associated Wikidata entry of the current page – uses [[:mw:Extension:Wikibase Client/Lua #mw.wikibase.getEntityIdForCurrentPage|mw.wikibase.getEntityIdForCurrentPage()]].
| Item id for current page
|-
| eid
|
| An alternative to qid. Except for <code>eid</code>, all parameters to getValue treat nil and the empty string the same. So, setting {{para|x}} gives the same result as omitting the parameter. However, to provide some compatibility with other modules, using {{para|eid}} always returns an empty string, while omitting <code>eid</code> allows <code>qid</code> to work as normal.
| Item id for current page
|-
| rank
|
| [Case insensitive] When set to <code>best</code>, returns preferred values if present, otherwise returns normal values. When set to <code>preferred</code> returns preferred values. When set to <code>normal</code>, returns normal values. When set to <code>deprecated</code> returns deprecated values. Any parameter value beginning with "b" is "best"; beginning with "p" is "preferred"; beginning with "n" is "normal"; beginning with "d" is deprecated. Multiple values are allowed: "p n d" would return all ranks. "Best" overrides the other flags. Other values are ignored and if no ranks are requested, preferred and normal are returned.
| preferred and normal
|-
| qual
|
| A punctuation-separated list of property-IDs of qualifiers that are to be returned in parentheses after the property. Setting <code>qual=ALL</code> returns all qualifiers. Setting <code>qual=DATES</code> returns {{q|P580}} and {{q|P582}} with a date separator.
| none
|-
| qualsonly
| qo
| A boolean which enables the display of just the qualifier(s), without the property value or parentheses. Values <code>no</code>, <code>false</code> and <code>0</code> are all false; anything else is true.
| false
|-
| fetchwikidata
| fwd
| List of fields to fetch values from. <code>ALL</code> fetches all fields. A value of <code>NONE</code> or blank or omitting the parameter fetches no fields.
| none
|-
| suppressfields
| spf
| List of fields which will never display. This will even force a local value in the field not to display.
| none
|-
| name
|
| Name of the field. When encoding an infobox, this is the name that fetchwikidata and suppressfields will recognise. Required if fetchwikidata or suppressfields is specified (except when <code>fetchwikidata=ALL</code>).
| nil
|-
| onlysourced
| osd
| A boolean which will filter out Wikidata values that are unsourced or only sourced to Wikipedia. [[Wikipedia:Wikidata/2018_Infobox_RfC#Discussion|This 2018 RFC]] requires that Wikidata values displayed in article infoboxes must be sourced. Values <code>no</code>, <code>false</code> and <code>0</code> are all false; anything else is true.
| true
|-
| df
|
| Date format: may be <code>dmy</code> (day before month) or <code>mdy</code> (month before day) or <code>y</code> (year alone).
| dmy
|-
| qdf
|
| Date format of qualifiers. If omitted, defaults to parameter <code>df</code>, or "y" if <code>df</code> is also omitted.
| value of df or "y"
|-
| bc
|
| Format of the BC/BCE suffix for dates.
| BCE
|-
| plaindate
| pd
| String to modify formatting of dates. Setting "true"/"yes"/"1" disables adding "sourcing cirumstances" (P1480) and any links. Setting "adj" does the same but uses the adjectival form of the date.
| false
|-
| linked
|
| A boolean that enables the link to a local page via its sitelink on Wikidata. Values <code>no</code>, <code>false</code> and <code>0</code> are all false; anything else is true.
| true
|-
| displaytext
| dt
| A string that overrides the displayed text of a linked item if it is non-empty.
| empty
|-
| shortname
| sn
| A boolean that enables the use of shortname (P1813) instead of label for a linked item. Values <code>no</code>, <code>false</code> and <code>0</code> are all false; anything else is true.
| false
|-
| uselabel
| uselbl
| A boolean that forces the display of the label instead of the disambiguated sitelink for a linked item. Labels are much more prone to vandalism that sitelinks. Values <code>no</code>, <code>false</code> and <code>0</code> are all false; anything else is true.
| false
|-
| wdlinks
| wdl
| A boolean that enables the display of links to Wikidata when no local article exists. Values <code>no</code>, <code>false</code> and <code>0</code> are all false; anything else is true.
| false
|-
| unitabbr
| uabbr
| A boolean that enables unit abbreviations for common units. Values <code>no</code>, <code>false</code> and <code>0</code> are all false; anything else is true.
| false
|-
| convert
| conv
| A boolean that enables passing of quantities to Template:Cvt. Values <code>no</code>, <code>false</code> and <code>0</code> are all false; anything else is true.
| false
|-
| showunits
| su
| A boolean that enables showing units for quantities. Values <code>no</code>, <code>false</code> and <code>0</code> are all false; anything else is true.
| true
|-
| scale
|
| A string that sets scaling for format of quantities. Values are: "a"=automatic; "0"=no scaling; "3"=thousand; "6"=million; "9"=billion; "12"=trillion.
| 0
|-
| maxvals
|
| Sets the maximum number of values to be returned when multiple values are available. Setting it to 1 is useful where the returned string is used within another call, e.g. image. Values <code>0</code> and empty return all values.
| 0 (all)
|-
| collapse
|
| Sets the maximum number of values to be returned before the content is auto-collapsed. Values <code>0</code> and empty allow all content to be displayed uncollapsed.
| 0 (all)
|-
| linkprefix
| lp
| A link prefix that is prepended to the linked value when linked. Applies only to items that have articles and to strings (e.g. url). It triggers linking of strings. Any double-quotes " are stripped out, so that spaces may be passed.
| empty
|-
| linkpostfix
|
| A link postfix that is appended to the linked value when linked. Applies only to items that have articles and to strings (e.g. url). It triggers linking of strings. Any double-quotes " are stripped out, so that spaces may be passed.
| empty
|-
| prefix
|
| A prefix that is prepended to the displayed value of strings (e.g. url). Any double-quotes " are stripped out, so that spaces may be passed.
| empty
|-
| postfix
|
| A postfix that is appended to the displayed value of strings (e.g. url). Any double-quotes " are stripped out, so that spaces may be passed.
| empty
|-
| qlinkprefix
| qlp
| Qualifier link prefix (see linkprefix).
| empty
|-
| qlinkpostfix
|
| Qualifier link postfix (see linkpostfix).
| empty
|-
| qprefix
|
| Qualifier prefix (see prefix).
| empty
|-
| qpostfix
|
| Qualifier postfix (see postfix).
| empty
|-
| sorted
|
| A boolean which enables sorting of the values returned. Values <code>no</code>, <code>false</code> and <code>0</code> are all false; anything else is true.
| false
|-
| qsorted
|
| A boolean which enables sorting of the qualifier values within each item returned. Values <code>no</code>, <code>false</code> and <code>0</code> are all false; anything else is true.
| false
|-
| noicon
|
| A boolean which will suppress the trailing "edit at Wikidata" pen-icon. Useful for when the returned value is to be further processed. Values <code>no</code>, <code>false</code> and <code>0</code> are all false (i.e. shows the icon); anything else is true (i.e. suppresses the icon).
| false
|-
| list
|
| The name of a template that the list of multiple values is then passed through. Examples include "cslist", "hlist", "ubl", "blist", "olist", "p-1". A special value, <code>prose</code>, produces "1, 2, 3 and 4".
| none
|-
| sep
|
| Customises the string that is used to separate multiple returned values. Any double-quotes " are stripped out, so that spaces may be passed. If nothing or an empty string is passed it is set to the default list separator (", " in English).
| ", "
|-
| qsep
|
| Customises the string that is used to separate multiple returned qualifier values. Any double-quotes " are stripped out, so that spaces may be passed. If nothing or an empty string is passed it is set to the default list separator (", " in English).
| ", "
|-
| format
|
| Determines whether global coordinates should be rendered as degree/minute/second or as decimal degrees. Any value beginning "dec" (case insensitive) will render as decimal. Anything else will render as DMS.
| dms
|-
| show
|
| Determines how global coordinates should be returned. The value "longlat" will return <code>longitude, latitude</code>. Any other value beginning "lon" (case insensitive) will return just longitude. Any value beginning "lat" (case insensitive) will return just latitude. When used with {{para|noicon|true}}, all of these will be pure numbers in decimal degrees (signed: N and E as positive), which are intended for use in mapping templates, etc. Anything other value (or nothing) will render the usual coordinate values as DMS or decimal with "NSEW" qualifiers, etc.
| empty
|-
| lang
|
| Allows an unlinked value to be returned in the chosen language. Takes a standard ISO language code recognised by MediaWiki. If not supplied or blank, the local language (or set language for multi-lingual wikis) is used as normal.
| local language
|-
| parameterset
| ps
| Convenience parameter to allow commonly used sets of parameters to be specified with a single parameter: ps=1 gets a simple linked value wherever possible; ps=2 represents a plain text value. See [[#Parameter sets|Parameter sets]]
|
|-
| linkredir
|
| Boolean to switch on or off the check for a redirect with the same name as the label when there is no sitelink on Wikidata for the value. Values <code>no</code>, <code>false</code> and <code>0</code> are all false; anything else is true.
| false
|}
=== Base parameters ===
* getValue can also take a named parameter {{para|qid}} which is the Wikidata ID for an article. This will not normally be used as omitting it defaults to the current article.
* The property whose value is to be returned is passed in the first unnamed property and is required.
* The second unnamed parameter, if supplied, will become the returned value and no call to Wikidata will be made.
=== Whitelist and blacklist ===
* The name of the field that this function is called from is passed in the named parameter {{para|name}}, which is first checked against a blacklist of fields that are never to be displayed, (i.e. the call must return nil in all circumstances). If the field is not on the blacklist, it is then checked against a whitelist. If the name of the field matches, the call will return any locally supplied value if it is supplied as the second unnamed parameter, or the Wikidata value otherwise.
* Specifying {{para|fetchwikidata|ALL}} is a shortcut to return all fields that are not blacklisted.
* The name is compulsory when the blacklist or whitelist is used, so the module returns nil if it is not supplied, other than when {{para|fetchwikidata|ALL}}.
* The blacklist is passed in the named parameter {{para|suppressfields}}
* The whitelist is passed in the named parameter {{para|fetchwikidata}}
=== Sourcing ===
The getValue function will accept a boolean parameter <code>onlysourced</code> which will suppress return of Wikidata values that are unsourced or only sourced to a Wikimedia project. The absence of the parameter, an empty parameter ({{para|onlysourced}}) and the empty string (<code>""</code>) all default to true (i.e. only referenced values are returned). The values <code>no</code>, <code>false</code> and <code>0</code> are treated as false (i.e. all values are returned); any other value is true (although {{para|onlysourced|yes/no}} is recommended for readability).
=== Link to Wikidata ===
The getValue function will accept a boolean parameter <code>noicon</code> which will suppress the trailing "edit at Wikidata" icon and link for cases when the returned value is to be further processed by the infobox (e.g. a url). The absence of the parameter or an empty parameter ({{para|noicon}}) default to false (i.e. the icon is added). The empty string (<code>""</code>) and the values <code>no</code>, <code>false</code> and <code>0</code> are treated as false; any other value is true (although {{para|noicon|true}} is recommended for readability).
Following a discussion at [[Module talk:WikidataIB #Visibility of pen icon]], the pen icon is hidden from users who are not autoconfirmed. This means that most readers don't see the pen icon, and represents a balance between aesthetics and vandalism at Wikidata on the one hand, and the desire to encourage editing Wikidata on the other.
=== Dates ===
In order to handle the requirement for dates in mdy, dmy or just year formats, getValue accepts a named parameter {{para|df}} that may take the values "dmy", "mdy", or "y" - default is "dmy".
As an article may require either of suffixes BC and BCE, getValue accepts a named parameter {{para|bc}} that may take the values "BC", or "BCE" - default is "BCE". Some test cases are shown at [[Module talk:WikidataIB/testing #Calls to getValue for dates]].
=== Ranks ===
The {{para|rank}} parameter, when set to preferred, returns only preferred values; when set to normal, returns only normal values; when set to deprecated, returns only deprecated values. If the parameter is set to best, it returns preferred values if present, otherwise normal values. Any parameter value beginning with "p" is "preferred"; any parameter value beginning with "n" is "normal"; any parameter value beginning with "d" is "deprecated"; any parameter value beginning with "b" is "best". Combinations of values are allowed, e.g. {{para|rank|p n}} returns all the preferred and normal values (which is the default), although "best" overrides any other parameters.
==== Specific value-type handlers ====
The module has specific handlers for the following data types:
# Items that correspond to an article in some Wikipedia, called "wikibase-items". These will be linked to the corresponding (and disambiguated) article on English Wikipedia where possible.
# Items that represent dates. These may be centuries, years, years and months, or years, months and days.
# Items that represent Commons media, urls, external ids, or other sorts of plain text.
# Items that represent quantities. All of these may have an associated unit, or be dimensionless, and may have a range.
# Items that represent global coordinates. These will be in degrees of latitude and longitude and will have an associated precision.
Items that represent other types of data are not handled at present.
The third class of data types may be used with the parameters:
* {{para|prefix}}, {{para|postfix}}, {{para|linkprefix}}, {{para|linkpostfix}}
If you don't supply at least one of {{para|linkprefix}} or {{para|linkpostfix}}, then just {{para|prefix}} and {{para|postfix}} are used. For example, when getting the {{Q|P717}} in {{Q|Q532127|}}:
* <code><nowiki>{{#invoke:WikidataIB/sandbox|getValue|P717|fetchwikidata=ALL|onlysourced=no |prefix="before " |postfix=" after" |qid=Q532127}}</nowiki></code> → {{#invoke:WikidataIB/sandbox |getValue |P717 |fetchwikidata=ALL|onlysourced=no |prefix="before " |postfix=" after" |qid=Q532127}}
Use double-quotes to enclose the parameter value if it has leading or trailing spaces (otherwise they are stripped out). If you supply {{para|linkprefix}} or {{para|linkpostfix}}, then all four parameters are used and a link is made for each value like this:
* <code><nowiki>[[ linkprefix WikidataValue1 linkpostfix | prefix WikidataValue1 postfix]], [[ linkprefix WikidataValue2 linkpostfix | prefix WikidataValue2 postfix]], etc.</nowiki></code>
That allows multiple links to be made to different sections of a list article, such as [[List of observatory codes]]. For example, when getting the {{Q|P717}} in {{Q|Q532127|}} we can make the links:
*<code><nowiki>{{#invoke:WikidataIB/sandbox|getValue|P717|fetchwikidata=ALL|onlysourced=no |prefix= |postfix= |linkprefix="List of observatory codes#" |linkpostfix= |qid=Q532127}}</nowiki></code> → {{#invoke:WikidataIB/sandbox|getValue|P717|fetchwikidata=ALL|onlysourced=no |prefix= |postfix= |linkprefix="List of observatory codes#" |linkpostfix= |qid=Q532127}}
The parameters {{para|prefix}}, {{para|postfix}}, {{para|linkprefix}}, {{para|linkpostfix}} are also applied to wikibase-items if they are linked.
==== Formatting multiple returned values ====
* {{para|sorted|<yes{{!}}no>}} is a boolean passed to enable sorting of the values returned. No parameter, or an empty string, or "false", or "no", or "0" disables sorting. It's only a very dumb alphabetical sort and sorts linked values as "[[ ..."
* {{para|sep|<separator characters>}} allows the separator between multiple returned values to be defined. The default is <code>", "</code> (comma plus normal space). If the separator has leading or trailing spaces, enclose it in double quotes (e.g. {{para|sep|" - "}}). Any double quotes are stripped from the separator. The pipe character (<code>|</code>) must be escaped as <code><nowiki>{{!}}</nowiki></code>. For reasons of accessibility (see [[MOS:PLIST]]), do not use {{para|sep|<br>}} for vertical unbulleted lists; use {{para|list|ubl}} instead.
* {{para|list|<prose{{!}}cslist{{!}}hlist{{!}}ubl{{!}}blist{{!}}olist>}} allows multiple returned values to be displayed as a sentence with last two values separated by "and" ({{para|list|prose}}), a horizontal comma-separated list ({{para|list|cslist}}, not to be used in prose), a horizontal list ({{para|list|hlist}}), a vertical unbulleted list ({{para|list|ubl}}), a vertical bulleted list ({{para|list|blist}}), or a vertical ordered list ({{para|list|olist}}). These override the separator and do not display the 'pen icon' linked to "Edit at Wikidata".
* {{para|list|p-1}} displays the last value. Combine with {{para|maxvals|''n''}} to display the ''n''th value.
=== Limiting the returned values ===
Sometimes a property is expected to have a single value, such as {{q|P18}}, but may have multiple values on Wikidata. Setting {{para|maxvals|1}} will limit the number of values returned to 1. Any other value is possible and functions as expected, but zero is treated as "no limit".
=== Unlinking ===
A returned value that represents an article on the local wiki will be linked by default. This includes redirects, but not dab pages. Sometimes there is a need not to link that returned values and this may be accomplished by setting {{para|linked|no}}.
=== Unit abbreviations ===
When the returned value is a quantity, the name of the units in which it is expressed is appended. Infoboxes may wish to use abbreviations instead for common units. This can be done by setting {{para|unitabbr|true}}.
=== Qualifiers ===
A parameter {{para|qual}} may be supplied, which will return qualifiers of the required property, if they exist. If the value is set to a punctuation-separated list of property-IDs (e.g. P123, P456), then only the values of qualifiers with that property will be returned. If the value is set to {{para|qual|ALL}}, then all of the qualifier values are returned. If the value is set to {{para|qual|DATES}} then the {{q|P580}} and the {{q|P582}} of the property are returned with a date separator. In each case, any qualifier values returned follow the property value, and are enclosed in parentheses. If multiple qualifier values are returned, they will be separated by commas by default, although the separator can be changed by specifying {{para|qsep}} (which may be enclosed in double-quotes, which are stripped out, so that spaces can be included). Setting the parameter {{para|qsorted|yes}} will sort the returned qualifier values alphanumerically.
=== Short form of parameters ===
Some of the longer parameters may be abbreviated to make infobox designs more compact:
* <code>fwd → fetchwikidata</code>
* <code>osd → onlysourced</code>
* <code>spf → suppressfields</code>
* <code>wdl → wdlinks</code>
=== Parameter sets ===
Generally, <code>getValue</code> has a set of defaults for its parameters that represent consensus decisions by editors. For example, {{para|onlysourced}} defaults to <code>true</code> so only Wikidata values that are sourced to something better than "Wikipedia" will be returned, and {{para|fetchwikidata}} defaults to <code>none</code> so nothing is returned until it is enabled by setting some field names or "ALL". This represents the fail-safe condition and allows infoboxes to be made Wikidata-capable without changing any article until enabled ''for that article''.
To simplify the use of <code>getValue</code> in other circumstances, common combinations of parameters can be specified with {{para|parameterset}} or its alias {{para|ps}} for convenience. Two combinations are implemented at present and these are:
;ps=1 : a common set of overrides to get a simple value, linked where possible:
<pre>
|rank ="best"
|fetchwikidata="ALL"
|onlysourced ="no"
|noicon ="true"
</pre>
;ps=2 : a sort of raw value in plain text:
<pre>
|rank = "best"
|fetchwikidata = "ALL"
|onlysourced = "no"
|noicon = "true"
|linked = "no"
|plaindate = "true"
</pre>
Other sets could be created if there is a demand.
=== Wrapper template ===
The template {{tl|wdib}} can be used as a convenient wrapper for <code><nowiki>{{#invoke:WikidataIB |getValue}}</nowiki></code>.
== Other main functions ==
=== Function getPreferredValue ===
The getPreferredValue function works exactly like getValue, taking the same parameters, but if any values for a property have the preferred rank set, it will only return those values. This is now deprecated in favour of <code>getValue|rank=best</code>.
=== Function getCoords ===
* getCoords can also take a named parameter {{para|qid}} which is the Wikidata ID for an article. This will not normally be used as omitting it defaults to the current article.
* The first unnamed parameter, if supplied, will become the returned value and no call to Wikidata will be made.
* The coordinates from Wikidata are parsed and passed to [[Template:Coord]] which returns the display as if it were called manually.
* The blacklist of fields that are never to be displayed, and the whitelist are implemented in the same way as for getValue using {{para|suppressfields}} and {{para|fetchwikidata}}
* The <code>format</code> parameter sets the display format to decimal or dms. Any value beginning with "dec" sets decimal; anything else sets dms.
* The <code>display</code> parameter sets the display position to "inline", "title" or "inline, title". Default is nothing (so uses default for {{tl|Coord}}, currently "inline").
=== Function getQualifierValue ===
The getQualifierValue function is for use when we want to fetch the value of a qualifier. We need to know the property and the value of the property that the qualifier relates to. The parameters are:
* The property ID passed in the unnamed parameter (or {{para|1}})
* The target value for that property in {{para|pval}}
* The qualifier ID for that target value in {{para|qual}}
* The same parameters to implement whitelisting and blacklisting of the property as in getValue
* Optional boolean to specify whether only sourced values of the property are returned (defaults to "no") in {{para|onlysourced}}
* Optional item ID for arbitrary access in {{para|qid}}
* The same parameters to format output as in getValue
==== Example of getQualifierValue ====
In {{Q|Q1513315}} there is a property {{Q|P793}}, which has a value {{Q|Q385378}}. That has two qualifiers, {{Q|P580}} and {{Q|P582}}. To get the start date:
* <code><nowiki>{{#invoke:WikidataIB |getQualifierValue |qid=Q1513315 |P793 |pval=Q385378 |qual=P580 |name=xyz |fetchwikidata=ALL }}</nowiki></code>
In [[South Pole Telescope]] it returns:
* {{#invoke:WikidataIB |getQualifierValue |P793 |pval=Q385378 |qual=P580 |name=xyz |fetchwikidata=ALL |qid=Q1513315}}
=== Function getValueByQual ===
The getValueByQual function returns the value of a property which has a qualifier with a given entity value. The parameters are:
* The property ID passed in the unnamed parameter (or {{para|1}})
* The property ID for a qualifier (or "ALL" or "DATES") in {{para|qualID}}
* The Wikibase-entity ID of a value for that qualifier in {{para|qvalue}}
* The same parameters to implement whitelisting and blacklisting of the property as in getValue
* Optional boolean to specify whether only sourced values of the property are returned (defaults to "no") in {{para|onlysourced}}
* Optional item ID for arbitrary access in {{para|qid}}
* The same parameters to format output as in getValue
==== Example of getValueByQual ====
In {{Q|Q10990}} there is a property {{Q|P443}} that has multiple values, each of which has a qualifier {{Q|P407}}. We can return the property value whose qualifier has the value {{Q|Q7979}}
* <code><nowiki>{{#invoke:WikidataIB |getValueByQual |qid=Q10990 |P443 |qualID=P407 |qvalue=Q7979 |fwd=ALL |osd=no |noicon=true}}</nowiki></code> → {{#invoke:WikidataIB/sandbox |getValueByQual |qid=Q10990 |P443 |qualID=P407 |qvalue=Q7979 |fwd=ALL |osd=no |noicon=true}}
=== Function getValueByLang ===
The getValueByLang function returns the value of a property which has a qualifier {{Q|P407}} whose value has the given language code. The parameters are:
* The property ID passed in the unnamed parameter (or {{para|1}})
* The {{Q|P424}} to match the language whose code is given by {{para|lang|xx[-yy]}}. If no code is supplied, it uses the default language.
* The same parameters to implement whitelisting and blacklisting of the property as in getValue
* Optional boolean to specify whether only sourced values of the property are returned (defaults to "no") in {{para|onlysourced}}
* Optional item ID for arbitrary access in {{para|qid}}
* The same parameters to format output as in getValue
==== Example of getValueByLang ====
In {{Q|Q7565108}} there is a property {{Q|P856}} that has multiple values, each of which has a qualifier {{Q|P407}}. We can return the property value whose {{Q|P407}} qualifier value (a WD item) itself has the {{Q|P424}} property that is "ja", i.e, {{Q|Q5287}}
* <code><nowiki>{{#invoke:WikidataIB |getValueByLang |qid=Q7565108 |P856 |lang=ja |fwd=ALL |osd=no |noicon=true}}</nowiki></code> → {{#invoke:WikidataIB |getValueByLang |qid=Q7565108 |P856 |lang=ja |fwd=ALL |osd=no |noicon=true}}
If {{para|lang}} is unspecified, we can obtain the same value with the default language (here that is the {{Q|Q1860}} and its {{Q|P424}} is "en")
* <code><nowiki>{{#invoke:WikidataIB |getValueByLang |qid=Q7565108 |P856 |fwd=ALL |osd=no |noicon=true}}</nowiki></code> → {{#invoke:WikidataIB |getValueByLang |qid=Q7565108 |P856 |fwd=ALL |osd=no |noicon=true}}
== Utility functions ==
=== Function getLink ===
getLink has the qid of a Wikidata entity passed as the first unnamed parameter or as |qid=
If there is a sitelink to an article on the local Wiki, it returns a link to the article with the Wikidata label as the displayed text.
If there is no sitelink, it returns the label as plain text.
If there is no label in the local language, it displays the qid instead.
: Wikidata: {{q|Q29016906}} and {{q|Q3621491}}
* <code><nowiki>{{#invoke:WikidataIB |getLink |Q29016906}}</nowiki></code> → {{#invoke:WikidataIB |getLink |Q29016906}}
* <code><nowiki>{{#invoke:WikidataIB |getLink |Q3621491}}</nowiki></code> → {{#invoke:WikidataIB |getLink |Q3621491}}
=== Function getLabel ===
getLabel has the qid of a Wikidata entity passed as the first unnamed parameter or as {{para|qid}}
It returns the Wikidata label in the local language for an item by the given qid.
If there is no label in the local language, it returns the qid instead.
Note that this is the label given to the Wikidata entry in the same language as the current Wiki, if the label exists.
: Wikidata: {{q|Q29016906}} and {{q|Q3621491}}
* <code><nowiki>{{#invoke:WikidataIB |getLabel |Q29016906}}</nowiki></code> → {{#invoke:WikidataIB |getLabel |Q29016906}}
* <code><nowiki>{{#invoke:WikidataIB |getLabel |Q3621491}}</nowiki></code> → {{#invoke:WikidataIB |getLabel |Q3621491}}
* <code><nowiki>{{#invoke:WikidataIB |getLabel |Q19805408}}</nowiki></code> → {{#invoke:WikidataIB |getLabel |Q19805408}}
=== Function label ===
label has the qid of a Wikidata entity passed as the first unnamed parameter or as {{para|qid}}
It returns the Wikidata label in the local language for an item by the given qid or linked to the current page.
If there is no label in the local language, it returns an empty string.
Note that this is the label given to the Wikidata entry in the same language as the current Wiki, if the label exists.
: Wikidata: {{q|Q29016906}} and {{q|Q3621491}}
* <code><nowiki>{{#invoke:WikidataIB |label |Q29016906}}</nowiki></code> → {{#invoke:WikidataIB |label |Q29016906}}
* <code><nowiki>{{#invoke:WikidataIB |label |Q3621491}}</nowiki></code> → {{#invoke:WikidataIB |label |Q3621491}}
* <code><nowiki>{{#invoke:WikidataIB |label |Q19805408}}</nowiki></code> → {{#invoke:WikidataIB |label |Q19805408}}
=== Function getAT ===
getAT has the qid of a Wikidata entity passed as the first unnamed parameter or as |qid=
If there is a sitelink to an article on the local Wiki, it returns the sitelink as plain text, i.e. the article title.
If there is no sitelink, it returns nothing.
Note that this is the title of the article in the current Wikipedia, if the interlanguage link exists in the Wikidata entry.
: Wikidata: {{q|Q29016906}} and {{q|Q3621491}}
* <code><nowiki>{{#invoke:WikidataIB |getAT |Q29016906}}</nowiki></code> → {{#invoke:WikidataIB |getAT |Q29016906}}
* <code><nowiki>{{#invoke:WikidataIB |getAT |Q3621491}}</nowiki></code> → {{#invoke:WikidataIB |getAT |Q3621491}}
=== Function getDescription ===
getDescription has the qid of a Wikidata entity passed as |qid= (it defaults to the associated qid of the current article if omitted).
It has a local parameter passed as the first unnamed parameter.
Any local parameter passed (other than "Wikidata" or "none") becomes the return value.
It returns the article description for the Wikidata entity in plain text if the local parameter is "Wikidata".
Nothing is returned if the description doesn't exist or "none" is passed as the local parameter.
: Wikidata: {{q|Q29016906}} and {{q|Q3621491}}
* <code><nowiki>{{#invoke:WikidataIB |getDescription |qid=Q29016906 |wikidata}}</nowiki></code> → {{#invoke:WikidataIB |getDescription |qid=Q29016906 |wikidata}}
* <code><nowiki>{{#invoke:WikidataIB |getDescription |qid=Q29016906 |A painting}}</nowiki></code> → {{#invoke:WikidataIB |getDescription |qid=Q29016906 |A painting}}
* <code><nowiki>{{#invoke:WikidataIB |getDescription |qid=Q29016906 |none}}</nowiki></code> → {{#invoke:WikidataIB |getDescription |qid=Q29016906 |none}}
* <code><nowiki>{{#invoke:WikidataIB |getDescription |qid=Q3621491 |wikidata}}</nowiki></code> → {{#invoke:WikidataIB |getDescription |qid=Q3621491 |wikidata}}
* <code><nowiki>{{#invoke:WikidataIB |getDescription |qid=Q3621491 |A profession}}</nowiki></code> → {{#invoke:WikidataIB |getDescription |qid=Q3621491 |A profession}}
* <code><nowiki>{{#invoke:WikidataIB |getDescription |qid=Q3621491 |none}}</nowiki></code> → {{#invoke:WikidataIB |getDescription |qid=Q3621491 |none}}
=== Function formatDate ===
formatDate accepts a datetime of the usual format from mw.wikibase.entity:formatPropertyValues, like "1 August 30 BCE" as parameter 1 and formats it according to the df (date format) and bc parameters.
* <code><nowiki>{{#invoke:WikidataIB |formatDate | 1 August 30 BCE |bc=BCE |df=dmy}}</nowiki></code> → {{#invoke:WikidataIB |formatDate | 1 August 30 BCE |bc=BCE |df=dmy}}
* <code><nowiki>{{#invoke:WikidataIB |formatDate | 1 August 30 BCE |bc=BC |df=mdy}}</nowiki></code> → {{#invoke:WikidataIB |formatDate | 1 August 30 BCE |bc=BC |df=mdy}}
* df = "dmy" / "mdy" / "y" - default is "dmy"
* bc = "BC" / "BCE" - default is "BCE"
=== Function checkBlacklist ===
checkBlacklist allows a test to check whether a named field is allowed.
It returns true if the field is not blacklisted (i.e. allowed)
It returns false if the field is blacklisted (i.e. disallowed)
Example:
* <code><nowiki>{{#if:{{#invoke:WikidataIB |checkBlacklist |name=nationality |suppressfields=residence; nationality; citizenship}} | not blacklisted | blacklisted}}</nowiki></code> → {{#if:{{#invoke:WikidataIB |checkBlacklist |name=nationality |suppressfields=residence; nationality; citizenship}} | not blacklisted | blacklisted}}
* <code><nowiki>{{#if:{{#invoke:WikidataIB |checkBlacklist |name=birth_place |suppressfields=residence; nationality; citizenship}} | not blacklisted | blacklisted}}</nowiki></code> → {{#if:{{#invoke:WikidataIB |checkBlacklist |name=birth_place |suppressfields=residence; nationality; citizenship}} | not blacklisted | blacklisted}}
=== Function emptyor ===
emptyor returns nil if its first unnamed argument is just punctuation, whitespace or html tags otherwise it returns the argument unchanged (including leading/trailing space).
If the argument could contain "=", then it must be called explicitly:
* <code><nowiki>| 1 = whatever-the-argument-is</nowiki></code>
In that case, leading and trailing spaces are trimmed.
It finds use in infoboxes where it can replace tests like:
* <code><nowiki>{{#if: {{#invoke:WikidataIB |getvalue |P99 |fwd=ALL}} | <span class="xxx">{{#invoke:WikidataIB |getvalue |P99 |fwd=ALL}}</span> | }}</nowiki></code>
with a form that uses just a single call to Wikidata:
* <code><nowiki>{{#invoke |WikidataIB |emptyor |1= <span class="xxx">{{#invoke:WikidataIB |getvalue |P99 |fwd=ALL}}</span> }}</nowiki></code>
=== Function labelorid ===
labelorid is a public function to expose the output of labelOrId().
The Q-number (entity ID) is passed as |qid= or as an unnamed parameter.
It returns the Wikidata label for that entity or the qid if no label exists.
=== Function getQid ===
* getQid works with the current page and its associated Wikidata entry.
* It returns qid, if supplied as the first unnamed parameter or as {{para|qid}};
* failing that, the Wikidata entity ID of the "category's main topic (P301)", if it exists;
* failing that, the Wikidata entity ID associated with the current page, if it exists;
* otherwise, nothing
=== Function examine ===
examine provides a dump of the entire property given in the first unnamed parameter (or in {{para|pid}} as a named alias) from the item given by the parameter 'qid', or from the item corresponding to the current page if qid is not supplied. Both parameters may be unnamed and given in any order.
It works in a similar manner to the [[Module:Wikidata|Dump]] function, but only loads a single claim, rather than the whole Wikidata entry.
* Example: <code><nowiki>{{#invoke:WikidataIB |examine |qid=Q1396889 |P50}}</nowiki></code>
There is a [[Template:Examine]] which acts as a wrapper for the call.
* Example: <code><nowiki>{{examine |Q4048254 |P31}}</nowiki></code> →
{{examine |Q4048254 |P31}}
=== Function url2 ===
url2 takes a parameter url= that is a proper url and formats it for use in an infobox.
Examples:
{{nowiki template demo|prefix=#|format=inline|output=nowiki+|code=<nowiki>{{#invoke:WikidataIB |url2 |url= http://www.example.com/ }}</nowiki>
}}{{nowiki template demo|prefix=#|format=inline|output=nowiki+|code=<nowiki>{{#invoke:WikidataIB |url2 |url= http://www.example.com/path/ }}</nowiki>
}}{{nowiki template demo|prefix=#|format=inline|output=nowiki+|code=<nowiki>{{#invoke:WikidataIB |url2 |url= {{wdib |P856 |qid=Q23317 |fwd=ALL |osd=no}} }}</nowiki>
}}{{nowiki template demo|prefix=#:|format=inline|output=nowiki+|code=<nowiki>{{wdib |P856 |qid=Q23317 |fwd=ALL |osd=no}}</nowiki>
}}{{nowiki template demo|prefix=#|format=inline|output=nowiki+|code=<nowiki>{{#invoke:WikidataIB |url2 |url= {{url|http://www.example.com/}} }}</nowiki>
}}
Comparison with output of {{tl|URL}}:
{{nowiki template demo|prefix=#|format=inline|output=nowiki+|code=<nowiki>{{URL | http://www.example.com/ }}</nowiki>
}}{{nowiki template demo|prefix=#|format=inline|output=nowiki+|code=<nowiki>{{URL | http://www.example.com/path/ }}</nowiki>
}}{{nowiki template demo|prefix=#|format=inline|output=nowiki+|code=<nowiki>{{URL | {{wikidata|property|Q23317|P856}} }}</nowiki>
}}{{nowiki template demo|prefix=#:|format=inline|output=nowiki+|code=<nowiki>{{wikidata|property|Q23317|P856}}</nowiki>}}
==== See also ====
* {{ml|URL|url}} & {{ml|URL|url2}}
== Coding into an infobox ==
Typically, the getValue call will be invoked in an infobox definition, using appropriate template parameters. One simple implementation is given as an example in [[:Template:Infobox book/Wikidata/Sandbox]]. As an illustration, the 'author' field in the infobox is coded like this:
<pre style="line-height:1.2em;">
| label2 = Author{{#if:{{{authors|}}}|s}}
| data2 = {{#invoke:WikidataIB |getValue |P50 |name=author |fetchwikidata={{{fetchwikidata|}}} |suppressfields={{{suppressfields|}}} |{{{authors|{{{author|}}}}}} }}
</pre>
The property to be fetched is the first unnamed parameter. In this case it is {{Q|P50}}.
The name of the field is passed in {{para|name}} and that name is checked against the blacklist and the whitelist. To always suppress the author field in a particular article, an editor will set {{para|suppressfields|author}} in the infobox. The author field will then never be displayed.
If the field is not blacklisted, then the infobox can be set to display a locally supplied value for author simply by setting {{para|author|[[George Orwell]]}}, for example, in the infobox. It also accepts {{para|authors}}. If the name of the field is on the whitelist, e.g. {{para|fetchwikidata|author; genre; pub_date; pages; dewey; congress}}, ''and'' the local value is not supplied, then the infobox will display the value retrieved from Wikidata. Any separators can be used, except | and {}.
As a shorthand, {{para|fetchwikidata|ALL}} will fetch all of the fields that are not blacklisted, as long as no local value is already provided in the article for a given field.
Since Wikidata labels are normally lower case, the ucfirst function from [[Module:String2]] can be used to capitalise the first letter of the returned text, e.g.
* <code><nowiki>{{#invoke:String2 | ucfirst | {{#invoke:WikidataIB |getValue |P136 |name=genre |fetchwikidata=ALL |onlysourced=false}} }}</nowiki></code> in {{Q|Q1396889}} produces:
* {{#invoke:String2 | ucfirst | {{#invoke:WikidataIB |getValue |P136 |name=genre |fetchwikidata=ALL |onlysourced=false |qid=Q1396889}} }}
=== Example of calls in an infobox ===
Basic use of getValue:
*<code><nowiki>{{#invoke:WikidataIB |getValue |P000 |name=fieldname |qid={{{qid|}}} |fetchwikidata={{{fetchwikidata|}}} |onlysourced={{{onlysourced|}}} |{{{localparameter|}}} }}</nowiki></code>
Full collection of parameters:
*<code><nowiki>{{#invoke:WikidataIB |getValue |P000 |name=fieldname |qid={{{qid|}}} |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|}}} |onlysourced={{{onlysourced|}}} |noicon={{{noicon|}}} |wdl={{{wikidatalink|}}} |df={{dateformat|}} |bc={{{bc|}}} |prefix= |postfix= |linkprefix= |linkpostfix= |sorted={{{sorted|}}} |sep={{{separator|}}} |list={{listtype|}}} |{{{localparameter|}}} }}</nowiki></code>
Any of the parameters can, of course, be fixed for a given field in an infobox, rather than taking the parameter supplied to the infobox, which will affect all fields. For example, one field may set {{para|list|hlist}} where a series of short words is expected; whereas another field could use {{para|list|ubl}} where an unbulleted vertical list of several words on each line is required.
=== Coordinates ===
The getCoords call will display the output of [[Template:Coord]] when supplied with the coordinates returned from Wikidata. It can be coded like this:
<pre style="line-height:1.2em;">
|label20 = Coordinates
| data20 = {{#invoke:WikidataIB |getCoords |name=coordinates |suppressfields={{{suppressfields|}}} |fetchwikidata={{{fetchwikidata|}}} |{{{coordinates|}}} }}
</pre>
An example is [[Template:Infobox biosphere reserve]]
<pre style="line-height:1.2em;">
{{Infobox biosphere reserve
| fetchwikidata = ALL
}}
</pre>
Displays coordinates in the usual positions when used in an article where Wikidata has coordinates.
=== Upgrading existing infoboxes ===
Since the parameter {{para|fetchwikidata}} is needed for any Wikidata functionality, an existing infobox may be replaced by an infobox incorporating these calls without any change whatsoever to any article. Each article using the new infobox can later be enabled by supplying {{para|fetchwikidata|ALL}}, or a list of required fields for that article. At that point, the onus is on the editor enabling the functionality to check that no unwanted fields are now being displayed. If so, they can be added to a blacklist for the article by setting {{para|suppressfields}} to the list of unwanted fields.
=== Verifiability ===
Where it will always be essential for a particular field to only contain values that are referenced, use <code>getValue</code>, making sure that {{para|onlysourced}} is ''not'' set to 'false', '0' or 'no'. By default it will exclude values that are unsourced or only sourced to a Wikipedia, thus making the job of checking easier at the article level. If unsourced data is acceptable (!), set {{para|onlysourced|no}}. As it is beyond my wit to produce an automated mechanism that knows whether an existing source is reliable or not in a given context, that job must still be performed at the article level by an editor familiar with the subject. It should always be done when first enabling Wikidata for that article.
=== Helper templates ===
; [[Template:If then show]] : tests whether the first unnamed parameter is not an empty string and returns it if it isn't. Otherwise it returns the second unnamed parameter. Optional third and fourth unnamed parameters provide a prefix and a suffix for the first parameter when returned. Useful when the first parameter is a call to Wikidata.
; [[Template:Ifnoteq then show]] : tests whether the first unnamed parameter is equal to the second unnamed parameter and returns the third unnamed parameter if it does. Otherwise it returns the first unnamed parameter. This is useful when the first parameter is a <code><nowiki>{{#invoke:</nowiki></code> of a Lua module that returns a value for which a specific exception is required.
; [[Template:If then wikilink]] : tests whether the first unnamed parameter is not an empty string and if it isn't, it returns the parameter formatted as piped wiki-link using an optional namespace prefix.
; [[Template:Formatter link]] : takes an external identifier code as {{para|code}} and uses a formatter url as {{para|url}} to construct a link to the external resource, which uses the code as display.
; [[Template:Emptyor]] : tests a piece of text to ascertain whether it's effectively empty or contains some text. If the unnamed parameter consists only of html tags, punctuation (e.g. wiki markup) and whitespace, then Emptyor returns nothing; otherwise it returns the parameter unchanged. Wrapper for p.emptyor function.
== Example of use: Infobox book ==
This section is taken from [[Template:Infobox book/Wikidata/Sandbox/doc]].
=== No Wikidata ===
<pre style="line-height:1.2em;">
{{Infobox book/Wikidata/Sandbox
| suppressfields =
| fetchwikidata =
| name = Animal Farm
| title_orig = Animal Farm: A Fairy Story
| image = Animal Farm - 1st edition.jpg
| image_size = 200px
| caption = First edition cover
| author = [[George Orwell]]
| country = United Kingdom
| language = English
| genre = Political satire
}}
</pre>
Works as a non-aware infobox: only locally supplied parameters are displayed.
<pre style="line-height:1.2em;">
{{Infobox book/Wikidata/Sandbox
| name = Animal Farm
| title_orig = Animal Farm: A Fairy Story
| image = Animal Farm - 1st edition.jpg
| image_size = 200px
| caption = First edition cover
| author = [[George Orwell]]
| country = United Kingdom
| language = English
| genre = Political satire
}}
</pre>
The blacklist and whitelist can be omitted if unused
=== All Wikidata ===
<pre style="line-height:1.2em;">
{{Infobox book/Wikidata/Sandbox
| fetchwikidata = author; genre; pub_date; pages; dewey; congress
}}
</pre>
Fetches the author, publication date, number of pages, Dewey index, and Library of Congress catalogue number values from Wikidata.
<pre style="line-height:1.2em;">
{{Infobox book/Wikidata/Sandbox
| fetchwikidata = ALL
}}
</pre>
As shorthand, the {{para|fetchwikidata}} parameter can be set to ALL to fetch all available fields.
Any field can be suppressed by naming it in {{para|suppressfields}}, or overridden by supplying a local value.
=== Never display genre ===
<pre style="line-height:1.2em;">
{{Infobox book/Wikidata/Sandbox
| suppressfields = genre
| fetchwikidata = author; genre; pub_date; pages; dewey; congress
}}
</pre>
The genre field will always be suppressed, even if a local value is supplied.
<pre style="line-height:1.2em;">
{{Infobox book/Wikidata/Sandbox
| suppressfields = genre
| fetchwikidata = author; genre; pub_date; pages; dewey; congress
| genre = Political satire
}}
</pre>
=== Local override ===
<pre style="line-height:1.2em;">
{{Infobox book/Wikidata/Sandbox
| fetchwikidata = author; genre; pub_date; pages; dewey; congress
| genre = Political satire
}}
</pre>
The genre field is set to display "Political satire", no matter what is stored in Wikidata.
<pre style="line-height:1.2em;">
{{Infobox book/Wikidata/Sandbox
| fetchwikidata = ALL
| genre = Novel
}}
</pre>
The genre field is set to display "Novel", no matter what is stored in Wikidata.
=== Don't fetch genre ===
<pre style="line-height:1.2em;">
{{Infobox book/Wikidata/Sandbox
| suppressfields =
| fetchwikidata = author; pub_date; pages; dewey; congress
}}
</pre>
The genre field will not be fetched from Wikidata. Only the author, publication date, number of pages, Dewey index, and Library of Congress catalogue number are imported. A local value for genre will display.
== Exporting the module ==
WikidataIB has been developed to run on any language wiki (or Wikimedia project) with a minimum of modification. An optional sub-module [[Module:WikidataIB/i18n]] may be created to replace the values for error messages, ordinal suffixes etc. as shown in the local i18n definitions in the module. Although the same result can be arrived at by directly editing those values in WikidataIB, using the sub-module will allow an updated version of WikidataIB to directly replace the older module without having to re-edit the i18n definitions.
=== Linked items ===
If the target Wiki has a convention that certain items are not normally linked (see [[:en:Wikipedia:Manual of Style/Linking #What generally should not be linked]] for an example), then a sub-module [[Module:WikidataIB/nolinks]] can be created to list items that should not be linked, using the English Wikipedia sub-module as an exemplar.
=== Italic titles ===
If the target Wiki has a convention that certain works should be italicised or quoted (see [[:en:Wikipedia:Manual of Style/Text formatting #Names and titles]] for an example), then a sub-module [[Module:WikidataIB/titleformats]] can be created to list items that should be italicised or quoted, using the English Wikipedia sub-module as an exemplar.
=== Complex date ===
Most of the output from the module will use the local language (or any user-specified one on multi-lingual wikis) where the sitelink or label exists on Wikidata. However, dates are more complicated and not handled perfectly in all languages. To solve this, WikidataIB uses [[Module:Complex date]] – developed on Commons by {{u|Jarekt}} – which allows expansion to support a wider variety of languages. As a result, it is necessary to install Complex date and its dependencies alongside WikidataIB when installing on another Wikimedia project.
==== Complex date dependencies ====
[[Module:Complex_date]] relies on the following modules:
* [[Module:Calendar]] (lazy loading with no dependencies)
* [[Module:ISOdate]]
** [[Module:DateI18n]] (no dependencies)
*** [[Module:No globals]] (from en.wikipedia)
* [[Module:i18n/complex date]]
** [[Module:Ordinal]] (lazy loading)
*** [[Module:I18n/ordinal]] (no dependencies)
*** [[Module:Yesno]] (from en.wikipedia) (no dependencies)
*** [[Module:Formatnum]] (no dependencies)
** [[Module:Roman]] (lazy loading with no dependencies)
** [[Module:Linguistic]] (lazy loading with no dependencies)
*** [[Module:No globals]] (from en.wikipedia)
Unless otherwise noted, the authoritative version of each module can be found on [https://commons.wikimedia.org/ Commons] although the versions on English Wikipedia are usually kept in sync.
==See also==
* [[Module:Wikidata]], handling Wikidata more basically
* [[Template:WikidataOI]], a template that uses [[Module:Wd]] but also has and "opt-in" options {{para|fetch}} and {{para|ifeq}} similar to this module's {{para|fetchwikidata}} or {{para|fwd}}
==Tracking categories==
* {{clc|Articles with missing Wikidata information}}
{{Wikidata infoboxes}}
<includeonly>{{#ifeq:{{SUBPAGENAME}}|sandbox | |
<!-- Categories below this line, please; interwikis at Wikidata -->
[[Category:Wikidata modules]]
}}</includeonly>
i249yf5x7rmoc4fli4cf2vfheybm5rx
Module:I18n
828
1594
15056
2022-07-17T12:20:35Z
Kambai Akau
15
Created page with "local p = {} -- Credit to http://stackoverflow.com/a/1283608/2644759 -- cc-by-sa 3.0 local function tableMerge(t1, t2, overwrite) for k,v in pairs(t2) do if type(v) == "table" and type(t1[k]) == "table" then -- since type(t1[k]) == type(v) == "table", so t1[k] and v is true tableMerge(t1[k], v, overwrite) -- t2[k] == v else if overwrite or t1[k] == nil then t1[k] = v end end end return t1 end function p.loadI18n(name, i18n_arg) local exist, res = pca..."
Scribunto
text/plain
local p = {}
-- Credit to http://stackoverflow.com/a/1283608/2644759
-- cc-by-sa 3.0
local function tableMerge(t1, t2, overwrite)
for k,v in pairs(t2) do
if type(v) == "table" and type(t1[k]) == "table" then
-- since type(t1[k]) == type(v) == "table", so t1[k] and v is true
tableMerge(t1[k], v, overwrite) -- t2[k] == v
else
if overwrite or t1[k] == nil then t1[k] = v end
end
end
return t1
end
function p.loadI18n(name, i18n_arg)
local exist, res = pcall(require, name)
if exist and next(res) ~= nil then
if i18n_arg then
tableMerge(i18n_arg, res.i18n, true)
elseif type(i18n) == "table" then
-- merge to global i18n
tableMerge(i18n, res.i18n, true)
end
end
end
function p.loadI18nFrame(frame, i18n_arg)
p.loadI18n(frame:getTitle().."/i18n", i18n_arg)
end
return p
pggbb6d78fzqixjoboirtmh9ljkxsuq
Module:I18n/doc
828
1595
15057
2022-07-17T12:22:02Z
Kambai Akau
15
Created page with "{{Module rating |alpha}} <!-- Please place categories where indicated at the bottom of this page and interwikis at Wikidata (see [[Wikipedia:Wikidata]]) --> == Usage == <code><nowiki>{{</nowiki>#invoke:{{BASEPAGENAME}}|''function_name''}}</code> <includeonly>{{#ifeq:{{SUBPAGENAME}}|sandbox | | <!-- Categories below this line, please; interwikis at Wikidata --> }}</includeonly>"
wikitext
text/x-wiki
{{Module rating |alpha}}
<!-- Please place categories where indicated at the bottom of this page and interwikis at Wikidata (see [[Wikipedia:Wikidata]]) -->
== Usage ==
<code><nowiki>{{</nowiki>#invoke:{{BASEPAGENAME}}|''function_name''}}</code>
<includeonly>{{#ifeq:{{SUBPAGENAME}}|sandbox | |
<!-- Categories below this line, please; interwikis at Wikidata -->
}}</includeonly>
qsf8zy8s1egrjzjzpctf6dqf55x3rt2
Ta̱mpi̱let:Preview warning
10
1596
15059
2022-07-17T12:27:15Z
Kambai Akau
15
Created page with "<includeonly>{{#invoke:If preview|pwarning}}</includeonly><noinclude> {{documentation}} </noinclude>"
wikitext
text/x-wiki
<includeonly>{{#invoke:If preview|pwarning}}</includeonly><noinclude>
{{documentation}}
</noinclude>
nxkq4zpg9stmeov4qpup2a2gztlv1on
Ta̱mpi̱let:Preview warning/doc
10
1597
15060
2022-07-17T12:28:57Z
Kambai Akau
15
Created page with "{{Documentation subpage}} {{Lua|Module:If preview}} '''Template:Preview warning''' emits a warning in preview. Modules should instead use the module interface <code>_warning()</code> in [[Module:If preview]]. == Usage == <code><nowiki>{{preview warning|Warning text in preview}}</nowiki></code> The warning will appear at the top of the page in preview, no matter where it is placed. It will be prefaced by "Preview warning:" in bold. The template will emit an always-visi..."
wikitext
text/x-wiki
{{Documentation subpage}}
{{Lua|Module:If preview}}
'''Template:Preview warning''' emits a warning in preview. Modules should instead use the module interface <code>_warning()</code> in [[Module:If preview]].
== Usage ==
<code><nowiki>{{preview warning|Warning text in preview}}</nowiki></code>
The warning will appear at the top of the page in preview, no matter where it is placed. It will be prefaced by "Preview warning:" in bold. The template will emit an always-visible warning if no warning text is supplied.
=== Parameters ===
; {{para|1}}
: The warning text you want to provide.
==See also==
* {{tl|If preview}}
<includeonly>{{sandbox other||
<!-- Categories below this line; interwikis at Wikidata -->
[[Category:If-then-else templates]]
}}</includeonly>
j757ym09b6zxqfwzfqag0eagf5hbgqw
Ta̱mpi̱let:Cite web
10
1598
15061
2022-07-17T12:31:49Z
Kambai Akau
15
Created page with "<includeonly>{{#invoke:citation/CS1|citation |CitationClass=web }}</includeonly><noinclude> {{documentation}} </noinclude>"
wikitext
text/x-wiki
<includeonly>{{#invoke:citation/CS1|citation
|CitationClass=web
}}</includeonly><noinclude>
{{documentation}}
</noinclude>
rcgmbcxu7hvs583g1f3rzz4c4dkizda
Ta̱mpi̱let:Cite web/doc
10
1599
15062
2022-07-17T12:33:04Z
Kambai Akau
15
Created page with "<noinclude>{{pp-template}}</noinclude> {{Documentation subpage}} {{High-use|all-pages=yes}} {{AWB standard installation}} {{csdoc|lua}} {{csdoc|cs1}} {{csdoc|lead|web sources that are not characterized by another CS1 template. Do not use this template in the "[[WP:ELCITE|External links]]" section of articles}} ==Usage== {{csdoc|usage}} {{csdoc|usage common}} For references with author credit :<code><nowiki>{{cite web |url= |title= |last= |first= |date= |website= |publis..."
wikitext
text/x-wiki
<noinclude>{{pp-template}}</noinclude>
{{Documentation subpage}}
{{High-use|all-pages=yes}}
{{AWB standard installation}}
{{csdoc|lua}}
{{csdoc|cs1}}
{{csdoc|lead|web sources that are not characterized by another CS1 template. Do not use this template in the "[[WP:ELCITE|External links]]" section of articles}}
==Usage==
{{csdoc|usage}}
{{csdoc|usage common}}
For references with author credit
:<code><nowiki>{{cite web |url= |title= |last= |first= |date= |website= |publisher= |access-date= |quote=}}</nowiki></code>
For references without author credit
:<code><nowiki>{{cite web |url= |title= |author=<!--Not stated--> |date= |website= |publisher= |access-date= |quote=}}</nowiki></code>
{{end}}
{{csdoc|usage vertical common}}
<!-- Please synchronize this list with the corresponding one at the overview page [[Wikipedia:Citation templates#Examples]] -->
<pre style="margin:0px; border:none; white-space:pre;">
{{cite web
|url=
|title=
|last=
|first=
|date=
|website=
|publisher=
|access-date=
|quote=}}
</pre>
{{end}}
{{csdoc|usage full}}
:<code><nowiki>{{cite web |url= |url-access= |title= |last= |first= |author= |author-link= |last2= |first2= |author2= |author-link2= |date= |year= |orig-date= |editor-last= |editor-first= |editor= |editor-link= |editor-last2= |editor-first2= |editor-link2= |editors= |department= |website= |series= |publisher= |agency= |location= |page= |pages= |at= |language= |script-title= |trans-title= |type= |format= |arxiv= |asin= |bibcode= |doi= |doi-broken-date= |isbn= |issn= |jfm= |jstor= |lccn= |mr= |oclc= |ol= |osti= |pmc= |pmid= |rfc= |ssrn= |zbl= |id= |access-date= |url-status= |archive-url= |archive-date= |via= |quote= |ref= |postscript=}}</nowiki></code>
{{end}}
{{csdoc|usage vertical}}
<pre style="margin:0px; border:none; white-space:pre;">
{{cite web
|url=
|url-access=
|title=
|last=
|first=
|author-link=
|last2=
|first2=
|author-link2=
|date=
|year=
|orig-date=
|editor-last=
|editor-first=
|editor-link=
|editor2-last=
|editor2-first=
|editor2-link=
|department=
|website=
|series=
|publisher=
|agency=
|location=
|page=
|pages=
|at=
|language=
|script-title=
|trans-title=
|type=
|format=
|arxiv=
|asin=
|bibcode=
|doi=
|doi-broken-date=
|isbn=
|issn=
|jfm=
|jstor=
|lccn=
|mr=
|oclc=
|ol=
|osti=
|pmc=
|pmid=
|rfc=
|ssrn=
|zbl=
|id=
|access-date=
|url-status=
|archive-url=
|archive-date=
|via=
|quote=
|ref=
|postscript=}}
</pre>
{{csdoc|usage vertical mid}}
<pre style="margin:0px; border:none; white-space:pre;">
last
last
last2
editor-last
editor-last
editor2-last
url
url
url, archive-date
archive-url
</pre>
{{csdoc|usage vertical mid}}
<pre style="margin:0px; border:none; white-space:pre;">
required
required
</pre>
{{csdoc|usage vertical end}}
===Choosing between [[Template:cite web]] and [[Template:cite news]]===
{{anchor|Consistency}}
Before 2014, editors had to decide whether to use {{tl|cite web}} or {{tl|cite news}} based on their features. In 2014, {{em|most of}} the differences between the two templates were eliminated.
As of {{diff|Module:Citation/CS1|732205428|723907342|29 July 2016}}, {{tlf|cite web}} and {{tlf|cite news}} have the following differences:
* {{tlf|cite news}} can be used for [[WP:OFFLINE|offline]] (paper) sources whereas {{tlf|cite web}} generates a missing URL error when no URL is provided
* {{tlf|cite news}} accepts {{para|issue}} and {{para|volume}} parameters while {{tlf|cite web}} does not (See {{slink|Help:Citation Style 1#Pages}}; see also {{tl|cite magazine}}).
But given the same set of valid parameters, their output is exactly the same:
<!-- ATTENTION!
The following example only serves to demonstrate parameter rending results.
Whether you must include all these parameters in actual articles is not a concern here.
-->
{|
| '''cite web''': || {{cite web |url=https://blog.chron.com/techblog/2011/07/microsoft-envisions-a-universal-os-but-it-might-not-be-called-windows/ |title=Microsoft envisions a universal OS, but it might not be called Windows |last=Silverman |first=Dwight |date=July 15, 2011 |work=Houston Chronicle |publisher=Hearst Corporation |access-date=May 26, 2015}}
|-
| '''cite news''': || {{cite news |url=https://blog.chron.com/techblog/2011/07/microsoft-envisions-a-universal-os-but-it-might-not-be-called-windows/ |title=Microsoft envisions a universal OS, but it might not be called Windows |last=Silverman |first=Dwight |date=July 15, 2011 |work=Houston Chronicle |publisher=Hearst Corporation |access-date=May 26, 2015}}
|}
==Examples==
{{markup2|
|m=<nowiki>{{cite web
|url=https://www.example.org/
|title=My Favorite Things, Part II
|last=Doe
|first=John
|publisher=Open Publishing
|date=April 30, 2005
|website=Encyclopedia of Things
|access-date=</nowiki>{{date|{{date}}|mdy}}<nowiki>}}</nowiki>
|r={{cite web
|url=https://www.example.org/
|title=My Favorite Things, Part II
|last=Doe
|first=John
|publisher=Open Publishing
|date=April 30, 2005
|website=Encyclopedia of Things
|access-date={{date|{{date}}|mdy}}}}
}}
{{markup2|
|m=<nowiki>{{cite web
|url=https://www.example.org/
|title=My Favorite Things, Part II
|last=Doe
|first=John
|date=30 April 2005
|website=Encyclopedia of Things
|access-date=</nowiki>{{date}}<nowiki>}}</nowiki>
|r={{cite web
|url=https://www.example.org/
|title=My Favorite Things, Part II
|last=Doe
|first=John
|date=30 April 2005
|website=Encyclopedia of Things
|access-date={{date}}}}
}}
{{markup2|
|m=<nowiki>{{cite web
|url=https://www.example.org/
|title=My Favorite Things, Part II
|last=Doe
|first=John
|date=2005-04-30
|access-date=</nowiki>{{date|{{date}}|iso}}<nowiki>}}</nowiki>
|r={{cite web
|url=https://www.example.org/
|title=My Favorite Things, Part II
|last=Doe
|first=John
|date=2005-04-30
|access-date={{date|{{date}}|iso}}}}
}}
{{markup2|
|m=<nowiki>{{cite web
|url=https://www.example.org/
|title=My Favorite Things, Part II
|last=Doe
|first=John
|access-date=</nowiki>{{date}}<nowiki>}}</nowiki>
|r={{cite web
|url=https://www.example.org/
|title=My Favorite Things, Part II
|last=Doe
|first=John
|access-date={{date}}}}
}}
{{markup2|
|m=<nowiki>{{cite web
|url=https://www.example.org/
|title=My Favorite Things, Part II
|access-date=</nowiki>{{date|{{date}}|iso}}<nowiki>}}</nowiki>
|r={{cite web
|url=https://www.example.org/
|title=My Favorite Things, Part II
|access-date={{date|{{date}}|iso}}}}
}}
{{markup2|
|m=<nowiki>{{cite web
|url=https://operations.nfl.com/the-rules/nfl-rules-digest/
|title=NFL Rules Digest
|website=NFL Football Operations
|publisher=[[National Football League]]
|access-date=</nowiki>{{date|{{date}}|mdy}}<nowiki>}}</nowiki>
|r={{cite web
|url=https://operations.nfl.com/the-rules/nfl-rules-digest/
|title=NFL Rules Digest
|website=NFL Football Operations
|publisher=[[National Football League]]
|access-date={{date|{{date}}|mdy}}}}
}}
===Using "format="===
When this template detects a link whose URL includes an [[filename extension|extension]] of ".pdf" or ".PDF", typical of [[PDF]] files, it automatically displays a PDF icon after the link (regardless of whether the link goes to a PDF file or to an HTML landing page, typical of paysites). It also internally acts as if {{para|format|PDF}} had been specified, which displays " (PDF)" after the icon. (In this case, an explicit {{para|format|PDF}} parameter would be redundant, so it ''is not'' recommended to add it. Users may remove it. Citation bot, when invoked, will remove it. ([[User talk:Citation bot/Archive 13#Remove format=pdf and variants when URLs end in .pdf|ref]]))
<div style="width:auto; overflow:scroll">
{{markup2|
|m=<nowiki>{{cite web
|url=https://www.indiapost.gov.in/Pdf/Customs/List_of_Psychotropic_Substances.pdf
|title=List of psychotropic substances under international control
|publisher=International Narcotics Control Board
|access-date=</nowiki>{{date}}<nowiki>}}</nowiki>
|r={{cite web
|url=https://www.indiapost.gov.in/Pdf/Customs/List_of_Psychotropic_Substances.pdf
|title=List of psychotropic substances under international control
|publisher=International Narcotics Control Board
|access-date={{date}}}}
}}
</div>
If the link is to a PDF file that ''is not'' automatically recognizable by its extension, this template does not display the PDF icon. You may add the parameter {{para|format|PDF}}, which displays " (PDF)" after the link.
<div style="width:auto; overflow:scroll">
{{markup2|
|m=<nowiki>{{cite web
|url=https://www.sample.com/somePDFdocument.000
|title=Some PDF Document
|publisher=Sample Int'l
|format=PDF
|access-date=</nowiki>{{date}}<nowiki>}}</nowiki>
|r={{cite web
|url=https://www.sample.com/somePDFdocument.000
|title=Some PDF Document
|publisher=Sample Int'l
|format=PDF
|access-date={{date}}}}
}}
</div>
For links to files in other formats, no icon is displayed. For example, for an [[.odt]] file, you may add the parameter {{para|format|ODT}}, which displays " (ODT)" after the link.
<div style="width:auto; overflow:scroll">
{{markup2|
|m=<nowiki>{{cite web
|url=https://www.sample.com/someODTdocument.odt
|title=Some ODT Document
|publisher=Sample Int'l
|format=ODT
|access-date=</nowiki>{{date}}<nowiki>}}</nowiki>
|r={{cite web
|url=https://www.sample.com/someODTdocument.odt
|title=Some ODT Document
|publisher=Sample Int'l
|format=ODT
|access-date={{date}}}}
}}
</div>
===Foreign language and translated title===
{{markup2|
|m=<nowiki>{{cite web
|url=https://www.example.org/
|title=Honi soit qui mal y pense
|last=Joliet
|first=François
|date=30 April 2005
|access-date=</nowiki>{{date}}<nowiki>
|language=fr
|trans-title=Shame on those who think evil of it}}</nowiki>
|r={{cite web
|url=https://www.example.org/
|title=Honi soit qui mal y pense
|last=Joliet
|first=François
|date=30 April 2005
|access-date={{date}}
|language=fr
|trans-title=Shame on those who think evil of it}}
}}
===Using author-link===
{{markup2|
|m=<nowiki>{{cite web
|url=https://www.example.org/
|title=My Favorite Things, Part II
|last=Doe
|first=John
|author-link=John Doe
|publisher=Open Publishing
|date=April 30, 2005
|website=Encyclopedia of Things
|access-date=</nowiki>{{date|{{date}}|mdy}}<nowiki>}}</nowiki>
|r={{cite web
|url=https://www.example.org/
|title=My Favorite Things, Part II
|last=Doe
|first=John
|author-link=John Doe
|publisher=Open Publishing
|date=April 30, 2005
|website=Encyclopedia of Things
|access-date={{date|{{date}}|mdy}}}}
}}
===Multiple authors===
{{markup2|
|m=<nowiki>{{cite web
|url=https://www.example.org/
|title=Our Favourite Things
|last1=Doe
|first1=John
|last2=Smith
|first2=Peter
|last3=Smythe
|first3=Jim
|publisher=Open Publishing
|date=30 April 2005
|website=Encyclopaedia of Things
|access-date=</nowiki>{{date}}<nowiki>}}</nowiki>
|r={{cite web
|url=https://www.example.org/
|title=Our Favourite Things
|last1=Doe
|first1=John
|last2=Smith
|first2=Peter
|last3=Smythe
|first3=Jim
|publisher=Open Publishing
|date=30 April 2005
|website=Encyclopaedia of Things
|access-date={{date}}}}
}}
===No author===
{{markup2|
|m=<nowiki>{{cite web
|url=https://www.example.org/
|title=Index of Sharp Things
|publisher=Open Publishing
|date=2005-04-30
|website=Encyclopedia of Things
|access-date=</nowiki>{{date|{{date}}|iso}}<nowiki>}}</nowiki>
|r={{cite web
|url=https://www.example.org/
|title=Index of Sharp Things
|publisher=Open Publishing
|date=2005-04-30
|website=Encyclopedia of Things
|access-date={{date|{{date}}|iso}}}}
}}
===No author, no publisher===
{{markup2|
|m=<nowiki>{{cite web
|url=https://www.example.org/
|title=Index of Sharp Things
|date=30 April 2005
|website=Encyclopedia of Things
|access-date=</nowiki>{{date}}<nowiki>}}</nowiki>
|r={{cite web
|url=https://www.example.org/
|title=Index of Sharp Things
|date=30 April 2005
|website=Encyclopedia of Things
|access-date={{date}}}}
}}
{{markup2|
|m=<nowiki>{{cite web
|url=https://www.example.org/
|title=Index of Sharp Things
|date=April 30, 2005
|access-date=</nowiki>{{date|{{date}}|mdy}}<nowiki>}}</nowiki>
|r={{cite web
|url=https://www.example.org/
|title=Index of Sharp Things
|date=April 30, 2005
|access-date={{date|{{date}}|mdy}}}}
}}
{{markup2|
|m=<nowiki>{{cite web
|url=https://www.incb.org/pdf/e/list/green.pdf
|title=List of psychotropic substances under international control
|date=2005-04-30
|access-date=</nowiki>{{date|{{date}}|iso}}<nowiki>
|language=el}}</nowiki>
|r={{cite web
|url=https://www.incb.org/pdf/e/list/green.pdf
|title=List of psychotropic substances under international control
|date=2005-04-30
|access-date={{date|{{date}}|iso}}
|language=el}}
}}
===Using "archive-url" and "archive-date" (and optionally "url-status") for webpages that have been archived {{anchor|archive-url}}===
<div style="width:auto; overflow:scroll">By default, if "archive-url" is used, the parameter {{para|url-status|dead}} is assumed and the resulting main link is to the archived version:
{{markup2|
|m=<nowiki>{{cite web
|url=http://www.incb.org/pdf/e/list/green.pdf
|title=List of psychotropic substances under international control
|date=2005-04-30
|publisher=International Narcotics Control Board
|access-date=</nowiki>{{date|{{date}}|iso}}<nowiki>
|archive-url=https://web.archive.org/web/20050907150136/http://www.incb.org/pdf/e/list/green.pdf
|archive-date=2005-09-07}}</nowiki>
|r={{cite web
|url=http://www.incb.org/pdf/e/list/green.pdf
|title=List of psychotropic substances under international control
|date=2005-04-30
|publisher=International Narcotics Control Board
|access-date={{date|{{date}}|iso}}
|archive-url=https://web.archive.org/web/20050907150136/http://www.incb.org/pdf/e/list/green.pdf
|archive-date=2005-09-07}}
}}
</div>
<div style="width:auto; overflow:scroll">When {{para|url-status|live}} is specified, the resulting main link is to the original page:
{{markup2|
|m=<nowiki>{{cite web
|url=https://www.hollywoodreporter.com/heat-vision/dc-entertainment-give-classic-batman-824572
|title=DC Entertainment To Give Classic Batman Writer Credit in 'Gotham' and 'Batman v Superman' (Exclusive)
|website=The Hollywood Reporter
|date=September 18, 2015
|access-date=September 21, 2015
|url-status=live
|archive-url=https://web.archive.org/web/20151022181821/http://www.hollywoodreporter.com/heat-vision/dc-entertainment-give-classic-batman-824572
|archive-date=October 22, 2015}}</nowiki>
|r={{cite web
|url=https://www.hollywoodreporter.com/heat-vision/dc-entertainment-give-classic-batman-824572
|title=DC Entertainment To Give Classic Batman Writer Credit in 'Gotham' and 'Batman v Superman' (Exclusive)
|website=The Hollywood Reporter
|date=September 18, 2015
|access-date=September 21, 2015
|url-status=live
|archive-url=https://web.archive.org/web/20151022181821/http://www.hollywoodreporter.com/heat-vision/dc-entertainment-give-classic-batman-824572
|archive-date=October 22, 2015}}
}}
</div>
<div style="width:auto; overflow:scroll">With {{para|url-status|unfit}} or {{code|usurped}}, the original is not linked at all:
{{markup2|
|m=<nowiki>{{cite web
|url=http://www.wunderground.com/global/stations/03772.html
|title=London, United Kingdom Forecast: Weather Underground (weather and elevation at Heathrow Airport)
|publisher=The Weather Underground
|access-date=</nowiki>{{date}}<nowiki>
|url-status=unfit |archive-url=https://www.webcitation.org/5yo0HaAk7 |archive-date=19 May 2011}}</nowiki>
|r={{cite web
|url=http://www.wunderground.com/global/stations/03772.html
|title=London, United Kingdom Forecast: Weather Underground (weather and elevation at Heathrow Airport)
|publisher=The Weather Underground
|access-date={{date}}
|url-status=unfit |archive-url=https://www.webcitation.org/5yo0HaAk7 |archive-date=19 May 2011}}
}}
</div>
===Using quote===
<div style="width:auto; overflow:scroll">
{{markup2|
|m=<nowiki>{{cite web
|url=https://www.webexhibits.org/daylightsaving/c.html
|title=Daylight saving time: rationale and original idea
|website=WebExhibits
|date=2008
|access-date=</nowiki>{{date}}<nowiki>
|quote=...&nbsp;Lord Balfour came forward with a unique concern: 'Supposing some unfortunate lady was confined with twins&nbsp;...'}}</nowiki>
|r={{cite web
|url=https://www.webexhibits.org/daylightsaving/c.html
|title=Daylight saving time: rationale and original idea
|website=WebExhibits
|date=2008
|access-date={{date}}
|quote=... Lord Balfour came forward with a unique concern: 'Supposing some unfortunate lady was confined with twins ...'}}
}}
</div>
==Parameters==
===Syntax===
{{csdoc|syntax}}
{{csdoc|sep_period}}
===COinS===
{{csdoc|coins}}
===What's new===
{{csdoc|whats new}}
===Deprecated===
{{csdoc|deprecated}}
===Description===
====Authors====
{{csdoc|author|others=yes}}
====Title====
{{csdoc|web}}
{{csdoc|type}}
{{csdoc|language}}
====Date====
{{csdoc|date}}
====Website====
{{csdoc|journal|issue=no}}
====Publisher====
{{csdoc|publisher|work=no|web=yes}}
{{csdoc|agency}}
====Series====
{{csdoc|series}}
====In-source locations====
{{csdoc|pages}}
===={{Anchor|url}}URL====
{{csdoc|url}}
====Anchor====
{{csdoc|ref}}
====Identifiers====
{{csdoc|id1}}
{{csdoc|id2}}
====Quote====
{{csdoc|quote}}
====Editors====
{{csdoc|editor}}
{{Anchor|Laysummary}}
====Lay summary====
{{csdoc|lay}}
====Display options====
{{csdoc|display}}
====Subscription or registration required====
{{csdoc|registration}}
==TemplateData==
{{Warning |image=Stop hand nuvola.svg |This section contains configuration data used by editing tools and automated bots. Changes to this data can result in widespread and unintended effects. For more information see [[Help:Citation Style 1#TemplateData]]}}
{{TemplateData header}}
{{#invoke:cs1 documentation support|template_data_validate|{{ROOTPAGENAME}}}}
<templatedata>
{
"description": "Formats a citation to a website using the provided information such as URL and title. Used only for sources that are not correctly described by the specific citation templates for books, journals, news sources, etc.",
"params": {
"url": {
"label": "URL",
"description": "The URL of the online location where the text of the publication can be found. Requires schemes of the type \"https://...\" or maybe even the protocol relative scheme \"//...\"",
"type": "url",
"aliases": [
"URL"
],
"required": true,
"example": "https://www.metacritic.com//..."
},
"title": {
"label": "Title",
"description": "The title of the source page on the website; will display with quotation marks added. Usually found at the top of your web browser. Not the name of the website.",
"type": "string",
"required": true
},
"date": {
"label": "Source date",
"description": "Full date when the source was published; if unknown, use access-date instead; do not wikilink",
"type": "date",
"suggested": true
},
"access-date": {
"label": "URL access date",
"description": "The full date when the original URL was accessed; do not wikilink",
"type": "date",
"suggested": true
},
"website": {
"label": "Name of the website",
"description": "Title (name) of the website (or its short URL if no plain-language title is discernible); may be wikilinked; will display in italics. Having both 'publisher' and 'website' is redundant in many cases.",
"type": "string",
"aliases": [
"work"
],
"suggested": true,
"example": "[[Rotten Tomatoes]]"
},
"publisher": {
"label": "Publisher",
"description": "Name of the publisher; may be wikilinked. Having both 'publisher' and 'website' (a.k.a. 'work') is redundant in many cases.",
"type": "string",
"example": "[[CBS Interactive]] (which owns \"Metacritic.com\")"
},
"last": {
"label": "Last name",
"description": "The surname of the author; don't wikilink, use 'author-link'; can suffix with a numeral to add additional authors",
"aliases": [
"last1",
"author",
"author1",
"author1-last",
"author-last",
"surname1",
"author-last1",
"subject1",
"surname",
"author-last",
"subject"
],
"type": "line",
"suggested": true
},
"first": {
"label": "First name",
"description": "Given or first name, middle names, or initials of the author; don't wikilink, use 'author-link'; can suffix with a numeral to add additional authors",
"aliases": [
"given",
"author-first",
"first1",
"given1",
"author-first1",
"author1-first"
],
"type": "line",
"suggested": true
},
"author-link": {
"label": "Author link",
"description": "Title of existing Wikipedia article about the author; can suffix with a numeral to add additional authors",
"type": "wiki-page-name",
"aliases": [
"author-link1",
"author1-link",
"subject-link",
"subject-link1",
"subject1-link"
]
},
"last2": {
"label": "Last name 2",
"description": "The surname of the second author; don't wikilink, use 'author-link2'.",
"type": "line",
"aliases": [
"author2"
]
},
"first2": {
"label": "First name 2",
"type": "line",
"description": "Given or first name, middle names, or initials of the second author; don't wikilink."
},
"author-link2": {
"label": "Author link 2",
"description": "Title of existing Wikipedia article about the second author.",
"type": "wiki-page-name",
"aliases": [
"author2-link"
]
},
"others": {
"label": "Others",
"description": "Used to record other (non-author) contributions to the work, such as 'Illustrated by John Smith' or 'Translated by John Smith'. Only one ''others'' parameter is allowed: e.g., 'Illustrated by Jane Doe; Translated by John Smith'",
"type": "string"
},
"year": {
"label": "Year of publication",
"description": "Year of the source being referenced; deprecated in favor of 'date', except for the special case of ISO dates with disambiguating letter",
"type": "string"
},
"orig-date": {
"label": "Original date",
"description": "Original date of publication; provide specifics",
"type": "string"
},
"editor-last": {
"label": "Editor last name",
"description": "The surname of the editor; don't wikilink, use 'editor-link'; can suffix with a numeral to add additional editors.",
"type": "line",
"aliases": [
"editor1-last",
"editor"
]
},
"editor-first": {
"label": "Editor first name",
"description": "Given or first name, middle names, or initials of the editor; don't wikilink, use 'editor-link'; can suffix with a numeral to add additional editors; alias of 'editor1-first'",
"type": "line",
"aliases": [
"editor1-first"
]
},
"editor-link": {
"label": "Editor link",
"description": "Title of existing Wikipedia article about the editor; can suffix with a numeral to add additional editors",
"aliases": [
"editor1-link"
],
"type": "wiki-page-name"
},
"series": {
"label": "Series identifier",
"description": "Series identifier when the source is part of a series, such as a book series or a journal",
"type": "string"
},
"location": {
"label": "Location of publication",
"description": "Geographical place of publication; usually not wikilinked; omit when the publication name includes place; alias of 'place'",
"type": "string"
},
"publication-place": {
"label": "Place of publication",
"description": "Publication place shows after title; if 'place' or 'location' are also given, they are displayed before the title prefixed with 'written at'",
"type": "string"
},
"publication-date": {
"label": "Publication date",
"description": "Date of publication when different from the date the work was written; do not wikilink",
"type": "date"
},
"page": {
"label": "Page",
"description": "Page in the source that supports the content; displays after 'p.'",
"type": "string"
},
"pages": {
"label": "Pages",
"description": "Pages in the source that support the content (not an indication of the number of pages in the source); displays after 'pp.'",
"type": "string"
},
"no-pp": {
"label": "No pp",
"description": "Set to 'y' to suppress the 'p.' or 'pp.' display with 'page' or 'pages' when inappropriate (such as 'Front cover')",
"type": "boolean",
"autovalue": "y"
},
"at": {
"label": "At",
"description": "May be used instead of 'page' or 'pages' where a page number is inappropriate or insufficient",
"type": "string"
},
"language": {
"label": "Language",
"description": "The language in which the source is written, if not English; use the full language name or one of the standard MediaWiki language codes; do not use icons or templates; separate multiple languages with commas (with no 'and' before the last one)",
"type": "string",
"aliases": [
"lang"
],
"example": "de, fr, es"
},
"script-title": {
"label": "Script title",
"description": "For titles in languages that do not use a Latin-based alphabet (Arabic, Chinese, Cyrillic, Greek, Hebrew, Japanese, Korean, Vietnamese, etc). Prefix with two-character ISO639-1 language code followed by a colon. For Japanese use: |script-title=ja:...",
"type": "string"
},
"trans-title": {
"label": "Translated title",
"description": "An English language title, if the source cited is in a foreign language; 'language' is recommended",
"type": "string"
},
"type": {
"label": "Type",
"description": "Additional information about the media type of the source; format in sentence case",
"type": "string"
},
"format": {
"label": "Format",
"description": "Format of the work referred to by 'url'; examples: PDF, DOC, XLS; do not specify HTML",
"type": "string"
},
"arxiv": {
"label": "arXiv identifier",
"description": "An identifier for arXive electronic preprints of scientific papers",
"type": "string"
},
"asin": {
"label": "ASIN",
"description": "Amazon Standard Identification Number; 10 characters",
"type": "string"
},
"asin-tld": {
"label": "ASIN TLD",
"description": "ASIN top-level domain for Amazon sites other than the US",
"type": "string"
},
"bibcode": {
"label": "Bibcode",
"description": "Bibliographic Reference Code (REFCODE); 19 characters",
"type": "string"
},
"biorxiv": {
"label": "biorXiv",
"description": "biorXiv identifier; 6 digits",
"type": "line"
},
"citeseerx": {
"label": "CiteSeerX",
"description": "CiteSeerX identifier; found after the 'doi=' query parameter",
"type": "line"
},
"doi": {
"label": "DOI",
"description": "Digital Object Identifier; begins with '10.'",
"type": "string"
},
"doi-broken-date": {
"label": "DOI broken date",
"description": "The date that the DOI was determined to be broken",
"type": "date",
"autovalue": ""
},
"isbn": {
"label": "ISBN",
"description": "International Standard Book Number; use the 13-digit ISBN where possible",
"type": "string"
},
"issn": {
"label": "ISSN",
"description": "International Standard Serial Number; 8 characters; may be split into two groups of four using a hyphen",
"type": "string"
},
"jfm": {
"label": "jfm code",
"description": "Jahrbuch über die Fortschritte der Mathematik classification code",
"type": "string"
},
"jstor": {
"label": "JSTOR",
"description": "JSTOR identifier",
"type": "string"
},
"lccn": {
"label": "LCCN",
"description": "Library of Congress Control Number",
"type": "string"
},
"mr": {
"label": "MR",
"description": "Mathematical Reviews identifier",
"type": "string"
},
"oclc": {
"label": "OCLC",
"description": "Online Computer Library Center number",
"type": "string"
},
"ol": {
"label": "OL",
"description": "Open Library identifier",
"type": "string"
},
"osti": {
"label": "OSTI",
"description": "Office of Scientific and Technical Information identifier",
"type": "string"
},
"pmc": {
"label": "PMC",
"description": "PubMed Center article number",
"type": "string"
},
"pmid": {
"label": "PMID",
"description": "PubMed Unique Identifier",
"type": "string"
},
"rfc": {
"label": "RFC",
"description": "Request for Comments number",
"type": "string"
},
"ssrn": {
"label": "SSRN",
"description": "Social Science Research Network",
"type": "string"
},
"zbl": {
"label": "Zbl",
"description": "Zentralblatt MATH journal identifier",
"type": "string"
},
"id": {
"label": "id",
"description": "A unique identifier used where none of the specialized ones are applicable",
"type": "string"
},
"archive-url": {
"label": "Archive URL",
"description": "The URL of an archived copy of a web page, if or in case the URL becomes unavailable; requires 'archive-date'",
"type": "url",
"suggested": true,
"autovalue": ""
},
"archive-date": {
"label": "Archive date",
"description": "Date when the original URL was archived; do not wikilink",
"type": "date",
"suggested": true
},
"archive-format": {
"label": "Archive format",
"description": "Format of the archived copy; examples: PDF, DOC, XLS; do not specify HTML",
"type": "string"
},
"quote": {
"label": "Quote",
"description": "Relevant text quoted from the source; displays last, enclosed in quotes; must include terminating punctuation",
"type": "string"
},
"ref": {
"label": "Ref",
"description": "An anchor identifier; can be made the target of wikilinks to full references",
"type": "string"
},
"postscript": {
"label": "Postscript",
"description": "The closing punctuation for the citation; ignored if 'quote' is defined",
"type": "string",
"default": "."
},
"author-mask": {
"label": "Author mask",
"description": "Replaces the name of the first author with em dashes or text; set to a numeric value 'n' to set the dash 'n' em spaces wide; set to a text value to display the text without a trailing author separator; for example, 'with' instead",
"type": "string"
},
"last3": {
"label": "Last name 3",
"description": "The surname of the third author; don't wikilink, use 'author-link3'.",
"type": "line",
"aliases": [
"author3"
]
},
"first3": {
"label": "First name 3",
"type": "line",
"description": "Given or first name, middle names, or initials of the third author; don't wikilink."
},
"author-link3": {
"label": "Author link 3",
"description": "Title of existing Wikipedia article about the third author.",
"type": "wiki-page-name",
"aliases": [
"author3-link"
]
},
"last4": {
"label": "Last name 4",
"description": "The surname of the fourth author; don't wikilink, use 'author-link4'.",
"type": "line",
"aliases": [
"author4"
]
},
"first4": {
"label": "First name 4",
"type": "line",
"description": "Given or first name, middle names, or initials of the fourth author; don't wikilink."
},
"author-link4": {
"label": "Author link 4",
"description": "Title of existing Wikipedia article about the fourth author.",
"type": "wiki-page-name",
"aliases": [
"author4-link"
]
},
"last5": {
"label": "Last name 5",
"description": "The surname of the fifth author; don't wikilink, use 'author-link5'.",
"type": "line",
"aliases": [
"author5"
]
},
"first5": {
"label": "First name 5",
"type": "line",
"description": "Given or first name, middle names, or initials of the fifth author; don't wikilink."
},
"author-link5": {
"label": "Author link 5",
"description": "Title of existing Wikipedia article about the fifth author.",
"type": "wiki-page-name",
"aliases": [
"author5-link"
]
},
"last6": {
"label": "Last name 6",
"description": "The surname of the sixth author; don't wikilink, use 'author-link6'.",
"type": "line",
"aliases": [
"author6"
]
},
"first6": {
"label": "First name 6",
"description": "Given or first name, middle names, or initials of the sixth author; don't wikilink.",
"type": "line"
},
"author-link6": {
"label": "Author link 6",
"description": "Title of existing Wikipedia article about the sixth author.",
"type": "wiki-page-name",
"aliases": [
"author6-link"
]
},
"last7": {
"label": "Last name 7",
"description": "The surname of the seventh author; don't wikilink, use 'author-link7'.",
"type": "line",
"aliases": [
"author7"
]
},
"first7": {
"label": "First name 7",
"type": "line",
"description": "Given or first name, middle names, or initials of the seventh author; don't wikilink."
},
"author-link7": {
"label": "Author link 7",
"description": "Title of existing Wikipedia article about the seventh author.",
"type": "wiki-page-name",
"aliases": [
"author7-link"
]
},
"last8": {
"label": "Last name 8",
"description": "The surname of the eighth author; don't wikilink, use 'author-link8'.",
"type": "line",
"aliases": [
"author8"
]
},
"first8": {
"label": "First name 8",
"type": "line",
"description": "Given or first name, middle names, or initials of the eighth author; don't wikilink."
},
"author-link8": {
"label": "Author link 8",
"description": "Title of existing Wikipedia article about the eighth author.",
"type": "wiki-page-name",
"aliases": [
"author8-link"
]
},
"last9": {
"label": "Last name 9",
"description": "The surname of the ninth author; don't wikilink, use 'author-link9'. If nine authors are defined, then only eight will show and 'et al.' will show in place of the last author.",
"type": "line",
"aliases": [
"author9"
]
},
"first9": {
"label": "First name 9",
"type": "line",
"description": "Given or first name, middle names, or initials of the ninth author; don't wikilink."
},
"author-link9": {
"label": "Author link 9",
"description": "Title of existing Wikipedia article about the ninth author.",
"type": "wiki-page-name",
"aliases": [
"author9-link"
]
},
"display-authors": {
"label": "Display authors",
"description": "Number of authors to display before 'et al.' is used. By default, all authors are displayed. Examples: |display-authors=2 will display only the first two authors in a citation followed by et al. |display-authors=etal displays all authors in the list followed by et al.",
"type": "string"
},
"name-list-style": {
"label": "Name list style",
"description": "Set to 'amp' or 'and' to change the separator between the last two names of the name list to ' & ' or ' and ', respectively. Set to 'vanc' to display name lists in Vancouver style.",
"type": "string",
"suggestedvalues": [
"amp",
"and",
"vanc"
]
},
"editor2-last": {
"label": "Editor last name 2",
"description": "The surname of the second editor; don't wikilink, use 'editor2-link'.",
"aliases": [
"editor2"
],
"type": "line"
},
"editor2-first": {
"label": "Editor first name 2",
"description": "Given or first name, middle names, or initials of the second editor; don't wikilink.",
"type": "line"
},
"editor3-last": {
"label": "Editor last name 3",
"description": "The surname of the third editor; don't wikilink, use 'editor3-link'.",
"aliases": [
"editor3"
],
"type": "line"
},
"editor3-first": {
"label": "Editor first name 3",
"description": "Given or first name, middle names, or initials of the third editor; don't wikilink.",
"type": "line"
},
"editor4-last": {
"label": "Editor last name 4",
"description": "The surname of the fourth editor; don't wikilink, use 'editor4-link'.",
"aliases": [
"editor4"
],
"type": "line"
},
"editor4-first": {
"label": "Editor first name 4",
"description": "Given or first name, middle names, or initials of the fourth editor; don't wikilink.",
"type": "line"
},
"editor5-last": {
"label": "Editor last name 5",
"description": "The surname of the fifth editor; don't wikilink, use 'editor5-link'.",
"aliases": [
"editor5"
],
"type": "line"
},
"editor5-first": {
"label": "Editor first name 5",
"description": "Given or first name, middle names, or initials of the fifth editor; don't wikilink.",
"type": "line"
},
"editor6-last": {
"label": "Editor last name 6",
"description": "The surname of the sixth editor; don't wikilink, use 'editor6-link'.",
"aliases": [
"editor6"
],
"type": "line"
},
"editor6-first": {
"label": "Editor first name 6",
"description": "Given or first name, middle names, or initials of the sixth editor; don't wikilink.",
"type": "line"
},
"editor7-last": {
"label": "Editor last name 7",
"description": "The surname of the seventh editor; don't wikilink, use 'editor7-link'.",
"aliases": [
"editor7"
],
"type": "line"
},
"editor7-first": {
"label": "Editor first name 7",
"description": "Given or first name, middle names, or initials of the seventh editor; don't wikilink.",
"type": "line"
},
"editor8-last": {
"label": "Editor last name 8",
"description": "The surname of the eighth editor; don't wikilink, use 'editor8-link'.",
"aliases": [
"editor8"
],
"type": "line"
},
"editor8-first": {
"label": "Editor first name 8",
"description": "Given or first name, middle names, or initials of the eighth editor; don't wikilink.",
"type": "line"
},
"editor9-last": {
"label": "Editor last name 9",
"description": "The surname of the ninth editor; don't wikilink, use 'editor9-link'.",
"aliases": [
"editor9"
],
"type": "line"
},
"editor9-first": {
"label": "Editor first name 9",
"description": "Given or first name, middle names, or initials of the ninth editor; don't wikilink.",
"type": "line"
},
"editor2-link": {
"label": "Editor link 2",
"description": "Title of existing Wikipedia article about the second editor.",
"type": "wiki-page-name"
},
"editor3-link": {
"label": "Editor link 3",
"description": "Title of existing Wikipedia article about the third editor.",
"type": "wiki-page-name"
},
"editor4-link": {
"label": "Editor link 4",
"description": "Title of existing Wikipedia article about the fourth editor.",
"type": "wiki-page-name"
},
"editor5-link": {
"label": "Editor link 5",
"description": "Title of existing Wikipedia article about the fifth editor.",
"type": "wiki-page-name"
},
"editor6-link": {
"label": "Editor link 6",
"description": "Title of existing Wikipedia article about the sixth editor.",
"type": "wiki-page-name"
},
"editor7-link": {
"label": "Editor link 7",
"description": "Title of existing Wikipedia article about the seventh editor.",
"type": "wiki-page-name"
},
"editor8-link": {
"label": "Editor link 8",
"description": "Title of existing Wikipedia article about the eighth editor.",
"type": "wiki-page-name"
},
"editor9-link": {
"label": "Editor link 9",
"description": "Title of existing Wikipedia article about the ninth editor.",
"type": "wiki-page-name"
},
"edition": {
"label": "Edition",
"type": "line",
"description": "Specify the edition or revision of the source, when applicable. For example: '2nd' or '5.1'. What you supply here is suffixed by ' ed.'",
"example": "2nd"
},
"url-access": {
"label": "URL access level",
"description": "Classification of the access restrictions on the URL ('registration', 'subscription' or 'limited')",
"type": "string",
"suggestedvalues": [
"registration",
"subscription",
"limited"
]
},
"bibcode-access": {
"label": "Bibcode access level",
"description": "If the full text is available from ADS via this Bibcode, type 'free'.",
"type": "string",
"autovalue": "free"
},
"doi-access": {
"label": "DOI access level",
"description": "If the full text is free to read via the DOI, type 'free'.",
"type": "string",
"autovalue": "free"
},
"hdl-access": {
"label": "HDL access level",
"description": "If the full text is free to read via the HDL, type 'free'.",
"type": "string",
"autovalue": "free"
},
"jstor-access": {
"label": "Jstor access level",
"description": "If the full text is free to read on Jstor, type 'free'.",
"type": "string",
"autovalue": "free"
},
"ol-access": {
"label": "OpenLibrary access level",
"description": "If the full text is free to read on OpenLibrary, type 'free'.",
"type": "string",
"autovalue": "free"
},
"osti-access": {
"label": "OSTI access level",
"description": "If the full text is free to read on OSTI, type 'free'.",
"type": "string",
"autovalue": "free"
},
"authors": {
"label": "Authors list",
"description": "List of authors as a free form list. Use of this parameter is discouraged, \"lastn\" to \"firstn\" are preferable. Warning: do not use if last or any of its aliases are used.",
"type": "string",
"aliases": [
"people",
"host"
]
},
"via": {
"label": "Published via",
"description": "Name of the entity hosting the original copy of the work, if different from the publisher. This entity is committed not to alter the work.",
"example": "[[GitHub]], [[SourceForge]], [[CodePlex]], [[YouTube]], [[Vimeo]], [[Dailymotion]], [[Netflix]], [[Archive.org]], [[Wikimedia Commons]], [[grc.com]]",
"type": "string"
},
"url-status": {
"label": "URL status",
"description": "If set to 'live', the title display is adjusted; useful for when the URL is archived preemptively but still live. Set to \"dead\" or 'usurped' for broken links. Entering 'unfit' or 'usurped' makes the original link not appear at all.",
"example": "'dead' or 'live'",
"type": "string",
"default": "'dead' if an Archive URL is entered",
"suggested": true,
"suggestedvalues": [
"dead",
"live",
"usurped",
"unfit"
]
},
"agency": {
"label": "Agency",
"description": "The news agency (wire service) that provided the content; examples: Associated Press, Reuters, Agence France-Presse",
"type": "string"
}
},
"maps": {
"citoid": {
"title": "title",
"url": "url",
"subject": "title",
"publicationTitle": "website",
"blogTitle": "website",
"forumTitle": "website",
"seriesTitle": "website",
"websiteTitle": "website",
"publisher": "publisher",
"date": "date",
"PMCID": "pmc",
"PMID": "pmid",
"oclc": "oclc",
"pages": "pages",
"series": "series",
"accessDate": "access-date",
"DOI": "doi",
"language": "language",
"contributor": "others",
"author": [
[
"first",
"last"
],
[
"first2",
"last2"
],
[
"first3",
"last3"
],
[
"first4",
"last4"
],
[
"first5",
"last5"
],
[
"first6",
"last6"
],
[
"first7",
"last7"
],
[
"first8",
"last8"
],
[
"first9",
"last9"
]
],
"editor": [
[
"editor-first",
"editor-last"
],
[
"editor2-first",
"editor2-last"
],
[
"editor3-first",
"editor3-last"
],
[
"editor4-first",
"editor4-last"
],
[
"editor5-first",
"editor5-last"
],
[
"editor6-first",
"editor6-last"
],
[
"editor7-first",
"editor7-last"
],
[
"editor8-first",
"editor8-last"
],
[
"editor9-first",
"editor9-last"
]
]
}
},
"paramOrder": [
"last",
"first",
"author-link",
"last2",
"first2",
"author-link2",
"last3",
"first3",
"author-link3",
"last4",
"first4",
"author-link4",
"last5",
"first5",
"author-link5",
"last6",
"first6",
"author-link6",
"last7",
"first7",
"author-link7",
"last8",
"first8",
"author-link8",
"last9",
"first9",
"author-link9",
"authors",
"author-mask",
"display-authors",
"name-list-style",
"date",
"year",
"orig-date",
"editor-last",
"editor-first",
"editor-link",
"editor2-last",
"editor2-first",
"editor2-link",
"editor3-last",
"editor3-first",
"editor3-link",
"editor4-last",
"editor4-first",
"editor4-link",
"editor5-last",
"editor5-first",
"editor5-link",
"editor6-last",
"editor6-first",
"editor6-link",
"editor7-last",
"editor7-first",
"editor7-link",
"editor8-last",
"editor8-first",
"editor8-link",
"editor9-last",
"editor9-first",
"editor9-link",
"others",
"title",
"script-title",
"trans-title",
"url",
"url-access",
"url-status",
"archive-url",
"archive-date",
"archive-format",
"access-date",
"website",
"series",
"publisher",
"location",
"page",
"pages",
"at",
"language",
"type",
"format",
"publication-place",
"publication-date",
"via",
"no-pp",
"arxiv",
"asin",
"asin-tld",
"bibcode",
"biorxiv",
"citeseerx",
"doi",
"doi-broken-date",
"isbn",
"issn",
"jfm",
"jstor",
"lccn",
"mr",
"oclc",
"ol",
"osti",
"pmc",
"pmid",
"rfc",
"ssrn",
"zbl",
"id",
"quote",
"ref",
"postscript",
"edition",
"bibcode-access",
"doi-access",
"hdl-access",
"jstor-access",
"ol-access",
"osti-access",
"agency"
],
"format": "{{_ |_=_}}"
}
</templatedata>
==Notes==
{{Reflist}}
{{Citation Style 1}}
{{Wikipedia referencing}}
{{UF-COinS}}
<includeonly>{{Sandbox other||
[[Category:Citation Style 1 templates|W]]
}}</includeonly>
iglbvbcpn4f78v1g3h6m010rlmib8iz
Ta̱mpi̱let:Csdoc
10
1600
15063
2022-07-17T12:35:34Z
Kambai Akau
15
Created page with "<includeonly>{{#invoke:Template wrapper|wrap|_template=Citation Style documentation/{{{1|}}}|_include-positional=yes}}</includeonly><noinclude> {{documentation}} </noinclude>"
wikitext
text/x-wiki
<includeonly>{{#invoke:Template wrapper|wrap|_template=Citation Style documentation/{{{1|}}}|_include-positional=yes}}</includeonly><noinclude>
{{documentation}}
</noinclude>
0mwkn46ojtl7cqp14gr4m3fyfcqfpom
Ta̱mpi̱let:Csdoc/doc
10
1601
15064
2022-07-17T12:37:20Z
Kambai Akau
15
Created page with "{{Documentation subpage}} {{template shortcut|csdoc}} {{notice|When updating this template keep in mind that it is used on a number of template documentation pages. If the parameters in question are unique to a template, then either add it manually to the template documentation or create a new section here for transclusion.}} ==Usage== This template is used to build consistent documentation pages for {{cs1}} templates. : For example: {{tlx|Citation Style documentation|..."
wikitext
text/x-wiki
{{Documentation subpage}}
{{template shortcut|csdoc}}
{{notice|When updating this template keep in mind that it is used on a number of template documentation pages. If the parameters in question are unique to a template, then either add it manually to the template documentation or create a new section here for transclusion.}}
==Usage==
This template is used to build consistent documentation pages for {{cs1}} templates.
: For example: {{tlx|Citation Style documentation|author}} will show the author documentation.
Where a particular section of documentation is not appropriate for a certain template, simply add the text manually or create a new subtemplate.
Each module of text is a subtemplate that can be edited using the link.
==Section usage==
When creating template documentation, use the following order of sections and content:
* Lead: a brief overview of the template intent
* Usage: samples of blank parameters that can be copied and pasted
* Examples: examples of various usage
* Parameters: detailed descriptions of each parameter
** Syntax: overview of the template syntax
** Deprecated: list of deprecated parameters
** Description: parameter descriptions separated by function in this general order:
*** Authors
*** Title
*** Date
*** Publisher
*** Edition, series, volume
*** In-source locations
*** URL
*** Anchor
*** Identifiers
*** Quote
*** Editors
*** Lay summary
*** Display options
==Lead section==
Use {{tlx|csdoc|lead|content}} to create consistent content for the lead:
{{Citation Style documentation/edit|lead}}
{{Citation Style documentation/opt|1=
One unnamed parameter is used to create the trailing text.}}
{{markup
|<nowiki>{{csdoc|lead|books}}</nowiki>
|{{csdoc|lead|books}}
}}
===Lua notice===
{{#invoke:Suppress categories|main|{{Citation Style documentation/edit|lua}}}}
{{clear}}
==Usage section==
Start the usage section with {{tlx|csdoc|usage}}:
: {{csdoc|usage}}
Parameters to copy are enclosed in tables created by sub-templates.
===Full horizontal style===
* Start with {{tlx|csdoc|usage full}}
* Precede the sample markup with <code>:</code> to create an indent
* Enclose the sample in {{tag|code|content={{tag|nowiki}}}}
* Close the table with {{tlx|end}}
{{pre|<nowiki>
{{csdoc|usage full}}
:<code><nowiki>{{cite xxxxx |last1= |first1= |author-link1= |last2= |first2= |author-link2= |last3= |first3= |author-link3= |last4= |first4= |author-link4= |last5= |first5= |author-link5= |name-list-style= |vauthors= |translator-last1= |translator-first1= |translator-link1= |translator-last2= |translator-first2= |translator-link2= |collaboration= |contributor-last1= |contributor-first1= |contributor-link1= |contributor-last2= |contributor-first2= |contributor-link2= |others= |editor-last1= |editor-first1= |editor-link1= |editor-last2= |editor-first2= |editor-link2= |editor-last3= |editor-first3= |editor-link3= |veditors= |title= |script-title= |trans-title= |work= |script-work= |trans-work= |issue= |department= |chapter= |script-chapter= |trans-chapter= |contribution= |type= |edition= |series= |series-link= |episode= |event= |agency= |volume= |date= |year= |orig-date= |df= |publisher= |location= |publication-place= |via= |language= |page= |pages= |no-pp= |at= |minutes= |time= |time-caption= |id= |arxiv= |asin= |asin-tld= |bibcode= |biorxiv= |citeseerx= |doi= |doi-broken-date= |eissn= |hdl= |sbn= |isbn= |ismn= |issn= |jfm= |jstor= |lccn= |mr= |oclc= |ol= |osti= |pmc= |embargo= |pmid= |rfc= |ssrn= |zbl= |url= |format= |archive-url= |archive-format= |url-status= |archive-date= |chapter-url= |chapter-format= |access-date= |no-tracking= |quote= |ref= |mode= |author-mask1= |author-mask2= |author-mask3= |author-mask4= |author-mask5= |display-authors= |translator-mask1= |translator-mask2= |display-translators= |contributor-mask1= |contributor-mask2= |display-contributors= |editor-mask1= |editor-mask2= |editor-mask3= |display-editors= |postscript= |url-access= |chapter-url-access= |bibcode-access= |doi-access= |hdl-access= |jstor-access= |ol-access= |osti-access= |map= |script-map= |trans-map= |map-url= |map-format= |map-url-access= |scale= |cartography= |inset= |sections= |interviewer-last1= |interviewer-first1= |interviewer-link1= |interviewer-last2= |interviewer-first2= |interviewer-link2= |interviewer-mask1= |interviewer-mask2= |display-interviewers= |season= |series-number= |series-separator= |network= |station= |transcript= |transcript-url= |transcript-format= |conference= |conference-url= |conference-format=}}</nowiki></code>
{{end}}</nowiki>
}}
{{csdoc|usage full}}
:<code><nowiki>{{cite xxxxx |last1= |first1= |author-link1= |last2= |first2= |author-link2= |last3= |first3= |author-link3= |last4= |first4= |author-link4= |last5= |first5= |author-link5= |name-list-style= |vauthors= |translator-last1= |translator-first1= |translator-link1= |translator-last2= |translator-first2= |translator-link2= |collaboration= |contributor-last1= |contributor-first1= |contributor-link1= |contributor-last2= |contributor-first2= |contributor-link2= |others= |editor-last1= |editor-first1= |editor-link1= |editor-last2= |editor-first2= |editor-link2= |editor-last3= |editor-first3= |editor-link3= |veditors= |title= |script-title= |trans-title= |work= |script-work= |trans-work= |issue= |department= |chapter= |script-chapter= |trans-chapter= |contribution= |type= |edition= |series= |series-link= |episode= |event= |agency= |volume= |date= |year= |orig-date= |df= |publisher= |location= |publication-place= |via= |language= |page= |pages= |no-pp= |at= |minutes= |time= |time-caption= |id= |arxiv= |asin= |asin-tld= |bibcode= |biorxiv= |citeseerx= |doi= |doi-broken-date= |eissn= |hdl= |sbn= |isbn= |ismn= |issn= |jfm= |jstor= |lccn= |mr= |oclc= |ol= |osti= |pmc= |embargo= |pmid= |rfc= |ssrn= |zbl= |url= |format= |archive-url= |archive-format= |url-status= |archive-date= |chapter-url= |chapter-format= |access-date= |no-tracking= |quote= |ref= |mode= |author-mask1= |author-mask2= |author-mask3= |author-mask4= |author-mask5= |display-authors= |translator-mask1= |translator-mask2= |display-translators= |contributor-mask1= |contributor-mask2= |display-contributors= |editor-mask1= |editor-mask2= |editor-mask3= |display-editors= |postscript= |url-access= |chapter-url-access= |bibcode-access= |doi-access= |hdl-access= |jstor-access= |ol-access= |osti-access= |map= |script-map= |trans-map= |map-url= |map-format= |map-url-access= |scale= |cartography= |inset= |sections= |interviewer-last1= |interviewer-first1= |interviewer-link1= |interviewer-last2= |interviewer-first2= |interviewer-link2= |interviewer-mask1= |interviewer-mask2= |display-interviewers= |season= |series-number= |series-separator= |network= |station= |transcript= |transcript-url= |transcript-format= |conference= |conference-url= |conference-format=}}</nowiki></code>
{{end}}
The above set is organised contextually rather than alphabetically. The following parameters, which are usually available for at least a few cite templates, are not included in the full parameter set above: {{para|authors}}; {{para|book-title}}; {{para|class}}; {{para|degree}}; {{para|docket}}; {{para|encyclopedia}}; {{para|mailing-list}}; {{para|message-id}}; {{para|number}}; {{para|publication-date}}; {{para|section}}; {{para|sheet}}; {{para|sheets}}; {{para|title-link}}; {{para|s2cid}}.
===Most commonly used horizontal style===
* Start with {{tlx|csdoc|usage common}}
* Precede the sample markup with <code>:</code> to create an indent
* Enclose the sample in {{tag|code|content={{tag|nowiki}}}}
* Close the table with {{tlx|end}}
{{pre|<nowiki>
{{csdoc|usage common}}
:<code><nowiki>{{cite book |last= |first= |author-link= |title= |url= |access-date= |date= |publisher= |location= |isbn= |page= |pages=}}</nowiki></code>
{{end}}</nowiki>
}}
{{csdoc|usage common}}
:<code><nowiki>{{cite book |last= |first= |author-link= |title= |url= |access-date= |date= |publisher= |location= |isbn= |page= |pages=}}</nowiki></code>
{{end}}
===Full vertical style===
The full vertical style can be implemented in a three-columns format (only practical when the number of parameters is not too extended) or in a four-columns format.
====Three-columns format====
The full vertical style in three columns consists of a "Vertical list", "Prerequisites" and "Brief instructions / notes".
<syntaxhighlight lang="html">
<!--
* Start with:
-->
{{csdoc|usage vertical}}
<pre style="margin:0px;">
<!--
* Create the vertical list column
* Separate the next column with:
-->
</pre>
{{csdoc|usage vertical mid}}
<pre style="margin:0px;">
<!--
* Create the prerequisites column; blank lines must include a <code> </code>
* Separate the next column with:
-->
</pre>
{{csdoc|usage vertical mid}}
<pre style="margin:0px;">
<!--
* Create the instructions column; blank lines must include a <code> </code>
* End with:
-->
</pre>
{{csdoc|usage vertical end}}
</syntaxhighlight>
Example:
<syntaxhighlight lang="html">
{{csdoc|usage vertical}}
<pre style="margin:0px;">
{{cite book
| last =
| first =
| author-link =
}}
</pre>
{{csdoc|usage vertical mid}}
<pre style="margin:0px;">
last
</pre>
{{csdoc|usage vertical mid}}
<pre style="margin:0px;">
same as last1
same as first1
</pre>
{{csdoc|usage vertical end}}
{{csdoc|usage vertical}}
<pre style="margin:0px;">
{{cite book
| last =
| first =
| author-link =
}}
</pre>
{{csdoc|usage vertical mid}}
<pre style="margin:0px;">
last
</pre>
{{csdoc|usage vertical mid}}
<pre style="margin:0px;">
same as last1
same as first1
{{csdoc|usage vertical end}}
</syntaxhighlight>
====Four-columns format====
<syntaxhighlight lang="html">
{| class="wikitable"
|+ Full parameter set in vertical format
! Parameters !! Prerequisites !! Brief instructions / notes !! Vertical list
|-
| {{Hover title|or any of its aliases, including: last; author1; author; author-last1; author-last; (etc.)|last1}}
|
| Author's last name or single name author. Don't link.
| rowspan="3" style="vertical-align:top;" | <pre style="margin:0px; border:none;">
{{cite xxxxx
|last1 =
|first1 =
|author-link1 =
}}
</pre>
|-
| {{Hover title|or any of its aliases, including: first; given1; given; author-first1; author-first; (etc.)|first1}}
| {{Hover title|or any of its aliases, including: last; author1; author; author-last1; author-last; (etc.)|last1}}
| Author's first name. Don't link.
|-
| {{Hover title|or any of its aliases, including: author-link; subject-link1; subject-link; (etc.)|author-link1}}
| {{Hover title|or any of its aliases, including: last; author1; author; author-last1; author-last; (etc.)|last1}}
| Title of Wikipedia article about the first author. Don't link.
|}
</syntaxhighlight>
{| class="wikitable"
|+ Full parameter set in vertical format
! Parameters !! Prerequisites !! Brief instructions / notes !! Vertical list
|-
| {{Hover title|or any of its aliases, including: last; author1; author; author-last1; author-last; (etc.)|last1}}
|
| Author's last name or single name author. Don't link.
| rowspan="179" style="vertical-align:top;" | <pre style="margin:0px; border:none;">
{{cite xxxxx
|last1 =
|first1 =
|author-link1 =
|last2 =
|first2 =
|author-link2 =
|last3 =
|first3 =
|author-link3 =
|last4 =
|first4 =
|author-link4 =
|last5 =
|first5 =
|author-link5 =
|name-list-style =
|vauthors =
|translator-last1 =
|translator-first1 =
|translator-link1 =
|translator-last2 =
|translator-first2 =
|translator-link2 =
|collaboration =
|contributor-last1 =
|contributor-first1 =
|contributor-link1 =
|contributor-last2 =
|contributor-first2 =
|contributor-link2 =
|others =
|editor-last1 =
|editor-first1 =
|editor-link1 =
|editor-last2 =
|editor-first2 =
|editor-link2 =
|editor-last3 =
|editor-first3 =
|editor-link3 =
|veditors =
|title =
|script-title =
|trans-title =
|work =
|script-work =
|trans-work =
|issue =
|department =
|chapter =
|script-chapter =
|trans-chapter =
|contribution =
|type =
|edition =
|series =
|series-link =
|episode =
|event =
|agency =
|volume =
|date =
|year =
|orig-date =
|df =
|publisher =
|location =
|publication-place =
|via =
|language =
|page =
|pages =
|no-pp =
|at =
|minutes =
|time =
|time-caption =
|id =
|arxiv =
|asin =
|asin-tld =
|bibcode =
|biorxiv =
|citeseerx =
|doi =
|doi-broken-date =
|eissn =
|hdl =
|sbn =
|isbn =
|ismn =
|issn =
|jfm =
|jstor =
|lccn =
|mr =
|oclc =
|ol =
|osti =
|pmc =
|embargo =
|pmid =
|rfc =
|ssrn =
|zbl =
|url =
|format =
|archive-url =
|archive-format =
|url-status =
|archive-date =
|chapter-url =
|chapter-format =
|access-date =
|no-tracking =
|quote =
|ref =
|mode =
|author-mask1 =
|author-mask2 =
|author-mask3 =
|author-mask4 =
|author-mask5 =
|display-authors =
|translator-mask1 =
|translator-mask2 =
|display-translators =
|contributor-mask1 =
|contributor-mask2 =
|display-contributors =
|editor-mask1 =
|editor-mask2 =
|editor-mask3 =
|display-editors =
|postscript =
|url-access =
|chapter-url-access =
|bibcode-access =
|doi-access =
|hdl-access =
|jstor-access =
|ol-access =
|osti-access =
|map =
|script-map =
|trans-map =
|map-url =
|map-format =
|map-url-access =
|scale =
|cartography =
|inset =
|sections =
|interviewer-last1 =
|interviewer-first1 =
|interviewer-link1 =
|interviewer-last2 =
|interviewer-first2 =
|interviewer-link2 =
|interviewer-mask1 =
|interviewer-mask2 =
|display-interviewers =
|season =
|series-number =
|series-separator =
|network =
|station =
|transcript =
|transcript-url =
|transcript-format =
|conference =
|conference-url =
|conference-format =
}}
</pre>
|-
| {{Hover title|or any of its aliases, including: first; given1; given; author-first1; author-first; (etc.)|first1}}
| {{Hover title|or any of its aliases, including: last; author1; author; author-last1; author-last; (etc.)|last1}}
| Author's first name. Don't link.
|-
| {{Hover title|or any of its aliases, including: author-link; author1-link; subject-link1; subject-link; (etc.)|author-link1}}
| {{Hover title|or any of its aliases, including: last; author1; author; author-last1; author-last; (etc.)|last1}}
| Title of Wikipedia article about the first author. Don't link.
|-
| {{Hover title|or any of its aliases, including: author2; author-last2; (etc.)|last2}}
| {{Hover title|or any of its aliases, including: last; author1; author; author-last1; author-last; (etc.)|last1}}
| Like <code>last1</code>, but for 2nd author.
|-
| {{Hover title|or any of its aliases, including: given2; author-first2; (etc.)|first2}}
| {{Hover title|or any of its aliases, including: author2; author-last2; (etc.)|last2}}
| Like <code>first1</code>, but for 2nd author.
|-
| {{Hover title|or any of its aliases, including: author2-link; subject-link2; (etc.)|author-link2}}
| {{Hover title|or any of its aliases, including: author2; author-last2; (etc.)|last2}}
| Like <code>author-link1</code>, but for 2nd author.
|-
| {{Hover title|or any of its aliases, including: author3; author-last3; (etc.)|last3}}
| {{Hover title|or any of its aliases, including: author2; author-last2; (etc.)|last2}}
| Like <code>last1</code>, but for 3rd author.
|-
| {{Hover title|or any of its aliases, including: given3; author-first3; (etc.)|first3}}
| {{Hover title|or any of its aliases, including: author3; author-last3; (etc.)|last3}}
| Like <code>first1</code>, but for 3rd author.
|-
| {{Hover title|or any of its aliases, including: author3-link; subject-link3; (etc.)|author-link3}}
| {{Hover title|or any of its aliases, including: author3; author-last3; (etc.)|last3}}
| Like <code>author-link1</code>, but for 3rd author.
|-
| {{Hover title|or any of its aliases, including: author4; author-last4; (etc.)|last4}}
| {{Hover title|or any of its aliases, including: author3; author-last3; (etc.)|last3}}
| Like <code>last1</code>, but for 4th author.
|-
| {{Hover title|or any of its aliases, including: given4; author-first4; (etc.)|first4}}
| {{Hover title|or any of its aliases, including: author4; author-last4; (etc.)|last4}}
| Like <code>first1</code>, but for 4th author.
|-
| {{Hover title|or any of its aliases, including: author4-link; subject-link4; (etc.)|author-link4}}
| {{Hover title|or any of its aliases, including: author4; author-last4; (etc.)|last4}}
| Like <code>author-link1</code>, but for 4th author.
|-
| {{Hover title|or any of its aliases, including: author5; author-last5; (etc.)|last5}}
| {{Hover title|or any of its aliases, including: author4; author-last4; (etc.)|last4}}
| Like <code>last1</code>, but for 5th author. Similar: last6, etc.
|-
| {{Hover title|or any of its aliases, including: given5; author-first5; (etc.)|first5}}
| {{Hover title|or any of its aliases, including: author5; author-last5; (etc.)|last5}}
| Like <code>first1</code>, but for 5th author. Similar: first6, etc.
|-
| {{Hover title|or any of its aliases, including: author5-link; subject-link5; (etc.)|author-link5}}
| {{Hover title|or any of its aliases, including: author5; author-last5; (etc.)|last5}}
| Like <code>author-link1</code>, but for 5th author. Similar: author-link6, etc.
|-
|| name-list-style || || <code>vanc</code> to emulate [[Vancouver style]]
|-
|| vauthors || ||
|-
|| translator-last1 || ||
|-
|| translator-first1 || translator-last1 ||
|-
|| translator-link1 || translator-last1 ||
|-
|| translator-last2 || translator-last1 || Additional translators: translator-last3, etc.
|-
|| translator-first2 || translator-last2 ||
|-
|| translator-link2 || translator-last2 ||
|-
|| collaboration || ||
|-
|| contributor-last1 || ||
|-
|| contributor-first1 || ||
|-
|| contributor-link1 || ||
|-
|| contributor-last2 || ||
|-
|| contributor-first2 || ||
|-
|| contributor-link2 || ||
|-
|| others || ||
|-
|| editor-last1 || ||
|-
|| editor-first1 || editor-last1 ||
|-
|| editor-link1 || editor-last1 ||
|-
|| editor-last2 || editor-last1 ||
|-
|| editor-first2 || editor-last2 ||
|-
|| editor-link2 || editor-last2 ||
|-
|| editor-last3 || editor-last2 ||
|-
|| editor-first3 || editor-last3 ||
|-
|| editor-link3 || editor-last3 ||
|-
|| veditors || ||
|-
|| title || ||
|-
|| script-title || ||
|-
|| trans-title || title or script-title ||
|-
|| work || ||
|-
|| script-work || ||
|-
|| trans-work || work or script-work ||
|-
|| issue || ||
|-
|| department || ||
|-
|| chapter || || Chapter title can be wikilinked unless when a <code>chapter-url</code> is given
|-
|| script-chapter || ||
|-
|| trans-chapter || chapter or script-chapter ||
|-
|| contribution || ||
|-
|| type || ||
|-
|| edition || || Ordinal number
|-
|| series || ||
|-
|| series-link || ||
|-
|| episode || ||
|-
|| event || ||
|-
|| agency || ||
|-
|| volume || ||
|-
|| date || ||
|-
|| year || ||
|-
|| orig-date || date or year ||
|-
|| df || ||
|-
|| publisher || ||
|-
|| location || publisher ||
|-
|| publication-place || ||
|-
|| via || ||
|-
|| language || ||
|-
|| page || || choose one: "page", "pages", or "at"
|-
|| pages || || choose one: "page", "pages", or "at". Use when content on multiple pages supports the article text.
|-
|| no-pp || page or pages || set no-pp to "yes" to suppress the "p." or "pp." before page numbers
|-
|| at || || choose one: "page", "pages", or "at"
|-
|| minutes || ||
|-
|| time || ||
|-
|| time-caption || ||
|-
|| id || ||
|-
|| arxiv || ||
|-
|| asin || ||
|-
|| asin-tld || ||
|-
|| bibcode || ||
|-
|| biorxiv || ||
|-
|| citeseerx || ||
|-
|| doi || ||
|-
|| doi-broken-date || doi ||
|-
|| eissn || ||
|-
|| hdl || ||
|-
|| sbn || ||
|-
|| isbn || || '''always include ISBN''', if one has been assigned
|-
|| ismn || ||
|-
|| issn || ||
|-
|| jfm || ||
|-
|| jstor || ||
|-
|| lccn || ||
|-
|| mr || ||
|-
|| oclc || ||
|-
|| ol || ||
|-
|| osti || ||
|-
|| pmc || ||
|-
|| embargo || ||
|-
|| pmid || ||
|-
|| rfc || ||
|-
|| ssrn || ||
|-
|| zbl || ||
|-
|| url || title or script-title ||
|-
|| format || url ||
|-
|| archive-url || archive-date, url ||
|-
|| archive-format || ||
|-
|| url-status || archive-url ||
|-
|| archive-date || archive-url ||
|-
|| chapter-url || chapter or script-chapter ||
|-
|| chapter-format || chapter-url ||
|-
|| access-date || url ||
|-
|| no-tracking || ||
|-
|| quote || ||
|-
|| ref || ||
|-
|| mode || || <code>cs1</code> or <code>cs2</code>
|-
|| author-mask1 || last1 ||
|-
|| author-mask2 || last2 ||
|-
|| author-mask3 || last3 ||
|-
|| author-mask4 || last4 ||
|-
|| author-mask5 || last5 ||
|-
| {{Hover title|or alias displayauthors|display-authors}}
| {{Hover title|or any of its aliases, including: last; author1; author; author-last1; author-last; (etc.)|last1}}
| number (number of authors displayed) or <code>etal</code> (more authors)
|-
|| translator-mask1 || translator-last1 ||
|-
|| translator-mask2 || translator-last2 ||
|-
|| display-translators || ||
|-
|| contributor-mask1 || ||
|-
|| contributor-mask2 || ||
|-
|| display-contributors || ||
|-
|| editor-mask1 || editor-last1 ||
|-
|| editor-mask2 || editor-last2 ||
|-
|| editor-mask3 || editor-last3 ||
|-
|| display-editors || ||
|-
|| postscript || ||
|-
|| url-access || ||
|-
|| chapter-url-access || ||
|-
|| bibcode-access || ||
|-
|| doi-access || ||
|-
|| hdl-access || ||
|-
|| jstor-access || ||
|-
|| ol-access || ||
|-
|| osti-access || ||
|-
|| map || ||
|-
|| script-map || ||
|-
|| trans-map || ||
|-
|| map-url || ||
|-
|| map-format || ||
|-
|| map-url-access || ||
|-
|| scale || ||
|-
|| cartography || ||
|-
|| inset || ||
|-
|| sections || ||
|-
|| interviewer-last1 || ||
|-
|| interviewer-first1 || ||
|-
|| interviewer-link1 || ||
|-
|| interviewer-last2 || ||
|-
|| interviewer-first2 || ||
|-
|| interviewer-link2 || ||
|-
|| interviewer-mask1 || ||
|-
|| interviewer-mask2 || ||
|-
|| {{nowrap|display-interviewers}} || ||
|-
|| season || ||
|-
|| series-number || ||
|-
|| series-separator || ||
|-
|| network || ||
|-
|| station || ||
|-
|| transcript || ||
|-
|| transcript-url || ||
|-
|| transcript-format || ||
|-
|| conference || ||
|-
|| conference-url || ||
|-
|| conference-format || ||
|-
| colspan="4" style="text-align: center " | If a field name is listed in the '''Prerequisites''' column it is a prerequisite for the field to the left.
|-
! colspan="4" | Additional parameters (available for at least some cite templates)
|-
|| || || || {{para|authors}}
|-
|| || || || {{para|book-title}}
|-
|| || || || {{para|class}}
|-
|| || || || {{para|degree}}
|-
|| || || || {{para|docket}}
|-
|| || || || {{para|encyclopedia}}
|-
|| || || || {{para|mailing-list}}
|-
|| || || || {{para|message-id}}
|-
|| || || || {{para|number}}
|-
|| || || || {{para|publication-date}}
|-
|| || || || {{para|section}}
|-
|| || || || {{para|sheet}}
|-
|| || || || {{para|sheets}}
|-
|| || || || {{para|title-link}}
|-
|| || || (available from late April 2020) || {{para|s2cid}}
|}
===Sub-templates===
====Usage====
{{Citation Style documentation/edit|usage}}
{{end}}
====Usage full====
{{Citation Style documentation/edit|usage full}}
{{end}}
====Usage common====
{{Citation Style documentation/edit|usage common}}
{{end}}
====Usage vertical====
{{Citation Style documentation/edit|usage vertical}}
{{end}}
====Usage vertical mid====
{{Citation Style documentation/edit|usage vertical mid}}
{{end}}
====Usage vertical end====
{{Citation Style documentation/edit|usage vertical end}}
==Examples section==
Use {{tl|markup2}} to format the examples {{crossref|(see that template's documentation for use)}}.
<pre>{{markup2 |t=Basic usage with url and edition
|m=<nowiki>{{cite book |title=Mysterious book |url=https://www.example.com |edition=2nd}}</nowiki>
|r={{cite book |title=Mysterious book |url=https://www.example.com |edition=2nd}}
}}
</pre>
{{markup2 |t=Basic usage with url and edition
|m=<nowiki>{{cite book |title=Mysterious book |url=https://www.example.com |edition=2nd}}</nowiki>
|r={{cite book |title=Mysterious book |url=https://www.example.com |edition=2nd}}
}}
==Parameters section==
===syntax===
{{Citation Style documentation/edit|syntax}}
===COinS===
{{Citation Style documentation/edit|coins}}
===sep_period===
{{Citation Style documentation/edit|sep_period}}
===sep_comma===
{{Citation Style documentation/edit|sep_comma}}
===required===
{{Citation Style documentation/edit|required}}
===whats new===
{{Citation Style documentation/edit|whats new}}
===deprecated===
{{Citation Style documentation/edit|deprecated}}
<!-- {{Citation Style documentation/opt|1=
*{{para|date2|yes}} adds:
** date2
** month2
** year2}} -->
===author===
{{Citation Style documentation/edit|author}}
{{Citation Style documentation/opt|1=
*{{para|contributor|yes}} adds contributors (use with cite book and citation only)
*{{para|others|yes}} adds "'''others''': To record other contributors to the work, such as "Illustrated by Smith" or "Trans. Smith"."
*{{para|aliases}} add aliases for '''last'''.
}}
===editor===
{{Citation Style documentation/edit|editor}}
===title===
{{Citation Style documentation/edit|title}}
{{Citation Style documentation/opt|1=
'''title_title''' sets the display title:
* '''encyclopedia''' = encyclopedia
* default = title}}
===web===
{{Citation Style documentation/edit|web}}
===chapter===
{{Citation Style documentation/edit|chapter}}
{{Citation Style documentation/opt|1=
'''title_format''' sets the display format:
*'''italics''' = Displays in italics.
* '''work''' = If '''work''' is defined, then '''title''' is displayed in quotes, else displays in italics.
* default = Displays in quotes.
'''title_title''' sets the display title:
* '''booktitle''' = booktitle
* default = chapter}}
===type===
{{Citation Style documentation/edit|type}}
{{Citation Style documentation/opt|
* '''type_default''': Adds "Defaults to '''type_default'''"}}
===journal===
{{Citation Style documentation/edit|journal}}
{{Citation Style documentation/opt|1=
* '''department''' adds:
:* '''department''': Regular department or section within the periodical or journal. Examples include "Communication", "Editorial", "Letter to the Editor", and "Review". Displays after '''title''' and is in plain text.
}}
===edition===
{{Citation Style documentation/edit|edition}}
===series===
{{Citation Style documentation/edit|series}}
===series_episode===
{{Citation Style documentation/edit|series_episode}}
===event===
{{Citation Style documentation/edit|event}}
===agency===
{{Citation Style documentation/edit|agency}}
===volume===
{{Citation Style documentation/edit|volume}}
===date===
{{Citation Style documentation/edit|date}}
{{Citation Style documentation/opt|1=
* '''limited_param_list''' hides '''orig-date''' because not allowed in limited-parameter templates
}}
===publisher===
{{Citation Style documentation/edit|publisher}}
{{Citation Style documentation/opt|1=
*{{para|work|no}} suppresses "; if '''work''' is defined, then '''publisher''' and '''location''' are enclosed in parentheses"
*{{para|map|yes}} changes:
** '''publisher''': Name of publisher. The [[publisher]] is the company that publishes the work being cited. Do not use the '''publisher''' parameter for the name of a work (e.g., a book, encyclopedia, newspaper, magazine, journal, website). Displays before title. Do not wikilink—use publisher-link instead.
** '''publisher-link''': Title of existing Wikipedia article about the publisher—not the publisher's website; do not wikilink.
}}
<!--draft of "organization" parameter document, commented for now since it is not currently supported
===organization===
{{Citation Style documentation/edit|organization}}
{{Citation Style documentation/opt|1=
<!--*{{para|work|no}} suppresses "; if '''work''' is defined, then '''organization''' and '''location''' are enclosed in parentheses"
*{{para|map|yes}} changes:
** '''organization''': Name of organization. The organization is a company, institution or other such entity that provides the information being cited. Do not use the '''organization''' parameter for the name of a work (e.g., a book, encyclopedia, newspaper, magazine, journal, website). Displays before title.
}}
-->
===newsgroup===
{{Citation Style documentation/edit|newsgroup}}
===language===
{{Citation Style documentation/edit|language}}
===pages===
{{Citation Style documentation/edit|pages}}
{{Citation Style documentation/opt|1=
* '''work''' adds "or '''work''' (or an alias) is defined"}}
===time===
{{Citation Style documentation/edit|time}}
===id1===
{{Citation Style documentation/edit|id1}}
===id2===
{{Citation Style documentation/edit|id2}}
===url===
{{Citation Style documentation/edit|url}}
{{Citation Style documentation/opt|1=
* '''media''' uses 'media' in place of 'text of the publication'
}}
===chapterurl===
{{Citation Style documentation/edit|chapterurl}}
===lay===
{{Citation Style documentation/edit|lay}}
===quote===
{{Citation Style documentation/edit|quote}}
{{Citation Style documentation/opt|1=
* {{para|cs2|yes}} suppresses "When supplied, the citation terminator (a period by default) is suppressed, so the quote needs to include terminating punctuation."}}
===ref===
{{Citation Style documentation/edit|ref}}
===display===
{{Citation Style documentation/edit|display}}
{{Citation Style documentation/opt|
* '''cs2''': When set, changes:
**'''postscript''' to "defaults to none"
** '''separator''' to "Defaults to a comma (,)"}}
===Subscription or registration required===
{{Citation Style documentation/edit|registration}}
===map_series===
{{Citation Style documentation/edit|map_series}}
===map_pages===
{{Citation Style documentation/edit|map_pages}}
===interview_author===
{{Citation Style documentation/edit|interview_author}}
===interview_interviewer===
{{Citation Style documentation/edit|interview_interviewer}}
===season===
{{Citation Style documentation/edit|season}}
===network===
{{Citation Style documentation/edit|network}}
===transcript===
{{Citation Style documentation/edit|transcript}}
===conference===
{{Citation Style documentation/edit|conference}}
==Notes==
<references/>
{{Citation Style 1}}
<includeonly>{{Sandbox other||
<!-- Categories and interwikis go here: -->
[[Category:Documentation assistance templates]]
}}</includeonly>
bb7ehi7t9pmbyum4g1rauy72n12390j
Module:Template wrapper
828
1602
15065
2022-07-17T12:39:38Z
Kambai Akau
15
Created page with "require('Module:No globals'); local error_msg = '<span style=\"font-size:100%\" class=\"error\"><code style=\"color:inherit; border:inherit; padding:inherit;\">|_template=</code> missing or empty</span>'; --[[--------------------------< I S _ I N _ T A B L E >-------------------------------------------------------- scan through tbl looking for value; return true if found, false else ]] local function is_in_table (tbl, value) for k, v in pairs (tbl) do..."
Scribunto
text/plain
require('Module:No globals');
local error_msg = '<span style=\"font-size:100%\" class=\"error\"><code style=\"color:inherit; border:inherit; padding:inherit;\">|_template=</code> missing or empty</span>';
--[[--------------------------< I S _ I N _ T A B L E >--------------------------------------------------------
scan through tbl looking for value; return true if found, false else
]]
local function is_in_table (tbl, value)
for k, v in pairs (tbl) do
if v == value then return true end
end
return false;
end
--[[--------------------------< A D D _ P A R A M E T E R >----------------------------------------------------
adds parameter name and its value to args table according to the state of boolean list argument; kv pair for
template execution; k=v string for template listing.
]]
local function add_parameter (k, v, args, list)
if list then
table.insert( args, table.concat ({k, '=', v})); -- write parameter names and values to args table as string
else
args[k] = v; -- copy parameters to args table
end
end
--[[--------------------------< A L I A S _ M A P _ G E T >----------------------------------------------------
returns a table of local template (parent frame) parameter names and the target template names that match where
in [key]=<value> pairs where:
[key] is local template parameter name (an alias)
<value> is target template parameter name (the canonical parameter name used in the working template)
The parameter |_alias-map= has the form:
|_alias-map=<list>
where <list> is a comma-separated list of alias / canonical parameter name pairs in the form
<from> : <to>
where:
<from> is the local template's parameter name (alias)
<to> is the target template's parameter name (canonical)
for enumerated parameters place an octothorp (#) where the enumerator digits are placed in the parameter names:
<from#> : <to#>
]]
local function alias_map_get (_alias_map)
local T = mw.text.split (_alias_map, '%s*,%s*'); -- convert the comma-separated list into a table of alias pairs
local mapped_aliases = {}; -- mapped aliases will go here
local l_name, t_name; -- parameter names
for _, alias_pair in ipairs (T) do -- loop through the table of alias pairs
l_name, t_name = alias_pair:match ('(.-)%s*:%s*(.+)'); -- from each pair, get local and target parameter names
if l_name and t_name then -- if both are set
if tonumber (l_name) then
l_name = tonumber (l_name); -- convert number-as-text to a number
end
mapped_aliases[l_name] = t_name; -- add them to the map table
end
end
return mapped_aliases;
end
--[[--------------------------< F R A M E _ A R G S _ G E T >--------------------------------------------------
Fetch the wrapper template's 'default' and control parameters; adds default parameters to args
returns content of |_template= parameter (name of the working template); nil else
]]
local function frame_args_get (frame_args, args, list)
local template;
for k, v in pairs (frame_args) do -- here we get the wrapper template's 'default' parameters
if 'string' == type (k) and (v and ('' ~= v)) then -- do not pass along positional or empty parameters
if '_template' == k then
template = v; -- save the name of template that we are wrapping
elseif '_exclude' ~= k and '_reuse' ~= k and '_include-positional' ~= k and '_alias-map' ~= k then -- these already handled so ignore here;
add_parameter (k, v, args, list); -- add all other parameters to args in the style dictated by list
end
end
end
return template; -- return contents of |_template= parameter
end
--[=[--------------------------< P F R A M E _ A R G S _ G E T >------------------------------------------------
Fetches the wrapper template's 'live' parameters; adds live parameters that aren't members of the exclude table to
args table; positional parameters may not be excluded
no return value
]=]
local function pframe_args_get (pframe_args, args, exclude, _include_positional, list)
for k, v in pairs (pframe_args) do
if 'string' == type (k) and not is_in_table (exclude, k) then -- do not pass along excluded parameters
if v and ('' ~= v) then -- pass along only those parameters that have assigned values
if 'unset' == v:lower() then -- special keyword to unset 'default' parameters set in the wrapper template
v = ''; -- unset the value in the args table
end
add_parameter (k, v, args, list) -- add all other parameters to args in the style dictated by list; alias map only supported for local-template parameters
end
end
end
if _include_positional then
for i, v in ipairs (pframe_args) do -- pass along positional parameters
if 'unset' == v:lower() then -- special keyword to unset 'default' parameters set in the wrapper template
v = ''; -- unset the value in the args table
end
add_parameter (i, v, args, list);
end
end
end
--[[--------------------------< _ M A I N >--------------------------------------------------------------------
Collect the various default and live parameters into args styled according to boolean list.
returns name of the working or listed template or nil for an error message
]]
local function _main (frame, args, list)
local template;
local exclude = {}; -- table of parameter names for parameters that are not passed to the working template
local reuse_list = {}; -- table of pframe parameter names whose values are modified before they are passed to the working template as the same name
local alias_map = {}; -- table that maps parameter aliases to working template canonical parameter names
local _include_positional;
if frame.args._exclude and ('' ~= frame.args._exclude) then -- if there is |_exclude= and it's not empty
exclude = mw.text.split (frame.args._exclude, "%s*,%s*"); -- make a table from its contents
end
-- TODO: |_reuse= needs a better name (|_reuse=)
if frame.args._reuse and ('' ~= frame.args._reuse) then -- if there is |_reuse= and it's not empty
reuse_list = mw.text.split (frame.args._reuse, "%s*,%s*"); -- make a table from its contents
end
if frame.args['_alias-map'] and ('' ~= frame.args['_alias-map']) then -- if there is |_alias-map= and it's not empty
alias_map = alias_map_get (frame.args['_alias-map']); -- make a table from its contents
end
template = frame_args_get (frame.args, args, list); -- get parameters provided in the {{#invoke:template wrapper|...|...}}
if nil == template or '' == template then -- this is the one parameter that is required by this module
return nil; -- not present, tell calling function to emit an error message
end
_include_positional = 'yes' == frame.args['_include-positional']; -- when true pass all positional parameters along with non-excluded named parameters to ...
-- ... the working template; positional parameters are not excludable
local _pframe_args = frame:getParent().args; -- here we get the wrapper template's 'live' parameters from pframe.args
local pframe_args = {}; -- a local table that we can modify
for k, v in pairs (_pframe_args) do -- make a copy that we can modify
pframe_args[k] = v;
end
-- here we look for pframe parameters that are aliases of canonical parameter names; when found
-- we replace the alias with the canonical. We do this here because the reuse_list works on
-- canonical parameter names so first we convert alias parameter names to canonical names and then
-- we remove those canonical names from the pframe table that are reused (provided to the working
-- template through the frame args table)
for k, v in pairs (alias_map) do -- k is alias name, v is canonical name
if pframe_args[k] then -- if pframe_args has parameter with alias name
pframe_args[v] = _pframe_args[k]; -- create new canonical name with alias' value
pframe_args[k] = nil; -- unset the alias
end
end
for k, v in pairs (pframe_args) do -- do enumerated parameter alias -> canonical translation
if 'string' == type (k) then -- only named parameters can be enumerated
if alias_map[k..'#'] then -- non-enumerated alias matches enumerated parameter pattern? enumerator at end only
pframe_args[alias_map[k..'#']:gsub('#', '')] = v; -- remove '#' and copy parameter to pframe_args table
pframe_args[k] = nil; -- unset the alias
elseif k:match ('%d+') then -- if this parameter name contains digits
local temp = k:gsub ('%d+', '#'); -- make a copy; digits replaced with single '#'
local enum = k:match ('%d+'); -- get the enumerator
if alias_map[temp] then -- if this parameter is a recognized enumerated alias
pframe_args[alias_map[temp]:gsub('#', enum)] = v; -- use canonical name and replace '#' with enumerator and add to pframe_args
pframe_args[k] = nil; -- unset the alias
end
end
end
end
-- pframe parameters that are _reused are 'reused' have the form something like this:
-- |chapter=[[wikisource:{{{chapter}}}|{{{chapter}}}]]
-- where a parameter in the wrapping template is modified and then passed to the working template
-- using the same parameter name (in this example |chapter=)
-- remove parameters that will be reused
for k, v in ipairs (reuse_list) do -- k is numerical index, v is canonical parameter name to ignore
if pframe_args[v] then -- if pframe_args has parameter that should be ignored
pframe_args[v] = nil; -- unset the ignored parameter
end
end
pframe_args_get (pframe_args, args, exclude, _include_positional, list); -- add parameters and values to args that are not listed in the exclude table
return template; -- args now has all default and live parameters, return working template name
end
--[[--------------------------< W R A P >----------------------------------------------------------------------
Template entry point. Call this function to 'execute' the working template
]]
local function wrap (frame)
local args = {}; -- table of default and live parameters and their values to be passed to the wrapped template
local template; -- the name of the working template
template = _main (frame, args, false); -- get default and live parameters and the name of the working template
if not template then -- template name is required
return error_msg; -- emit error message and abandon if template name not present
end
return frame:expandTemplate {title=template, args=args}; -- render the working template
end
--[[--------------------------< L I S T >----------------------------------------------------------------------
Template entry point. Call this function to 'display' the source for the working template. This function added
as a result of a TfD here: Wikipedia:Templates_for_discussion/Log/2018_April_28#Module:PassArguments
This function replaces a similarly named function which was used in {{cite compare}} and {{cite compare2}}
Values in the args table are numerically indexed strings in the form 'name=value'
]]
local function list(frame, do_link)
local args = {}; -- table of default and live parameters and their values to be passed to the listed template
local template; -- the name of the listed template
template = _main (frame, args, true); -- get default and live parameters and the name of the listed template
if not template then -- template name is required
return error_msg; -- emit error message and abandon if template name not present
end
if do_link then
template = ('[[%s|%s]]'):format(frame:expandTemplate{ title='Transclude', args = {template} }, template)
end
table.sort(args)
for i = 1, #args do
local stripped = args[i]:match('^' .. i .. '=([^=]*)$')
if stripped then args[i] = stripped else break end
end
return frame:preprocess(table.concat({
'<code style="color:inherit; background:inherit; border:none;">{{',
template,
('<wbr><nowiki>|%s</nowiki>'):rep(#args):format(unpack(args)), '}}</code>'})); -- render the template
end
local function link (frame)
return list(frame, true)
end
--[[--------------------------< E X P O R T E D F U N C T I O N S >------------------------------------------
]]
return {
link = link,
list = list,
wrap = wrap,
};
jvc00zukcfohbwbsh73108j0lhv6c2v
Module:Template wrapper/doc
828
1603
15066
2022-07-17T12:40:33Z
Kambai Akau
15
Created page with "<!-- Please place categories where indicated at the bottom of this page and interwikis at Wikidata (see [[Wikipedia:Wikidata]]) --> {{high-use}} This module is to be used in [[Wikipedia:Wrapper templates|wrapper templates]] to allow those templates to provide default parameter values and allow editors to pass additional parameters to the underlying working template. When writing a wrapper template, give this module all of the normally required default parameters neces..."
wikitext
text/x-wiki
<!-- Please place categories where indicated at the bottom of this page and interwikis at Wikidata (see [[Wikipedia:Wikidata]]) -->
{{high-use}}
This module is to be used in [[Wikipedia:Wrapper templates|wrapper templates]] to allow those templates to provide default parameter values and allow editors to pass additional parameters to the underlying working template.
When writing a wrapper template, give this module all of the normally required default parameters necessary to use the wrapper template in its base form. Editors then use the wrapper template as-is or may supply additional wrapper and canonical parameters. Any of the canonical parameters supported by the working template may be added to the wrapper template or supplied by editors in article space. When an editor supplies a parameter that has a default value in the wrapper template, the editor-supplied value overrides the default. When it is necessary to remove a default parameter, editors may set the parameter value to the special keyword <code>unset</code> which will cause this wrapper module to erase the wrapper template's default value for that parameter. This module discards empty named parameters.
Positional parameters are not normally passed on to the working template. Setting {{para|_include-positional|yes}} will pass all positional parameters to the working template. Positional parameters cannot be excluded; positional parameters may be <code>unset</code>.
Parameters that are used only by the wrapper should be either positional ({{param|{{var|n}}}}) or listed in {{para|_exclude}} (a comma-separated list of named parameters). This module will not pass <code>_excluded</code> parameters to the working template.
== Usage ==
<code><nowiki>{{#invoke:</nowiki>{{BASEPAGENAME}}|wrap|_template={{var|working template}}|_exclude={{var|named parameter}}, {{var|named parameter}}, ...|_reuse={{var|named parameter}}, {{var|named parameter}}, ...|_alias-map={{var|alias parameter}}:{{var|canonical parameter}}|_include-positional=yes|<{{var|default parameter}}>|<{{var|default parameter}}>|...}}</code>
;Control parameters
:{{para|_template}} – (required) the name, without namespace, of the working template (the template that is wrapped); see §[[#template|_template]] below
:{{para|_exclude}} – comma-separated list of parameter names used by the wrapper template that are not to be passed to the working template; see §[[#exclude|_exclude]] below
:{{para|_reuse}} – comma-separated list of canonical names that have meaning to both the wrapper template and to the working template; see §[[#reuse|_reuse]] below
:{{para|_alias-map}} – comma-separated list of wrapper-template parameter names that are to be treated as aliases of specified working template canonical parameters; see §[[#alias-map|_alias-map]] below
:{{para|_include-positional}} – pass all positional parameters to the working template; see §[[#include-positional|_include-positional]] below
;Definitions
:canonical parameter – a parameter supported and used by the working template
:wrapper parameter – a parameter used by the wrapper template; may provide data for canonical parameters or control other aspects of the wrapper template
:alias parameter – a wrapper parameter that is contextually meaningful to the wrapper template but must be renamed to a canonical parameter for use by the working template
:reused parameter – a parameter that is shared by both wrapper and working templates and has been modified by wrapper template
:default parameter – a canonical parameter given a default value in the wrapper template
{| class="nowrap"
|+parameter processing
!style="border:1px solid black"|wrapper<br />template !! !!style="border:1px solid black" colspan="11"|Module:Template wrapper !! !! style="border:1px solid black"|working<br />template
|-
| style="border: 1px solid black;"|{{para|plain=yes|{{var|canonical parameters}}}}|| → ||style="text-align: center;"|–––––––→|| → ||style="text-align: center;"|–––––––→|| → ||style="text-align: center;"|–––––––→|| → ||style="text-align: center;"|–––––––→|| → ||style="text-align: center;"|–––––––→|| → ||style="border: 2px solid black;" rowspan="5"|filter<br />exclued<br />parameters|| ||style="border: 2px solid black;" rowspan="10"|working<br />template
|-
| style="border: 1px solid black;"|{{para|plain=yes|{{var|wrapper parameters}}}}|| → ||style="text-align: center;"|–––––––→|| → ||style="text-align: center;"|–––––––→|| → ||style="text-align: center;"|–––––––→|| → ||style="text-align: center;"|–––––––→|| → ||style="text-align: center;"|–––––––→|| →
|-
| || || style="border: 1px solid black;"|{{para|plain=yes|[[#_exclude|_exclude]]}}|| → ||style="text-align: center;"|–––––––→|| → ||style="text-align: center;"|–––––––→|| → ||style="text-align: center;"|–––––––→|| → ||style="text-align: center;"|–––––––→|| → || →
|-
| || || style="border: 1px solid black;"|{{para|plain=yes|[[#_include-positional|_include-positional]]}}|| → ||style="text-align: center;"|–––––––→|| → ||style="text-align: center;"|–––––––→|| → ||style="text-align: center;"|–––––––→|| → ||style="text-align: center;"|–––––––→|| →
|-
| || || style="border: 1px solid black;"|{{para|plain=yes|[[#_alias-map|_alias-map]]}}|| → ||style="border: 2px solid black;" rowspan="3"|convert alias<br />parameters to<br />canonical<br />parameters|| → ||style="border: 1px solid black;" rowspan="2"|{{para|plain=yes|{{var|canonical parameters}}}}|| → ||style="text-align: center;"|–––––––→|| → ||style="text-align: center;"|–––––––→|| → || || →
|-
| || || || || → || → ||style="border: 2px solid black;" rowspan="4"|modify<br />reused<br />canonical<br />parameters
|-
| style="border: 1px solid black;"|{{para|plain=yes|{{var|alias parameters}}}}|| → ||style="text-align: center;"|–––––––→|| → || || || || → ||style="border: 1px solid black;"|{{para|plain=yes|{{var|reused parameters}}}}|| → ||style="text-align: center;"|–––→|| →
|-
| || || style="border: 1px solid black;"|{{para|plain=yes|[[#_reuse|_reuse]]}}|| → ||style="text-align: center;"|–––––––→|| → ||style="text-align: center;"|–––––––→|| →
|-
| style="border: 1px solid black;"|{{para|plain=yes|{{var|canonical parameters}}}}|| → ||style="text-align: center;"|–––––––→|| → ||style="text-align: center;"|–––––––→|| → ||style="text-align: center;"|–––––––→|| →
|-
| || || style="border: 1px solid black;"|{{para|plain=yes|{{var|default parameters}}}}|| → ||style="text-align: center;"|–––––––→|| → ||style="text-align: center;"|–––––––→|| → ||style="text-align: center;"|–––––––→|| → ||style="text-align: center;"|–––––––→|| → ||style="text-align: center;"|–––→|| →
|}
==Parameter details==
===_template===
The only required parameter, {{para|_template}} supplies the name, without namespace, of the working template (the template that is wrapped). If this parameter is omitted, Module:Template wrapper will emit the error message:
:<span style="font-size:100%" class="error"><code style="color:inherit; border:inherit; padding:inherit;">|_template=</code> missing or empty</span>
===_alias-map===
{{para|_alias-map}} takes a comma-separated list of wrapper-template parameters that are to be treated as aliases of specified working template canonical parameters. Each mapping element of the list has the form:
:<code><{{var|from}}>:<{{var|to}}></code> – where: <code><{{var|from}}></code> is a wrapper parameter name and <code><{{var|to}}></code> is a canonical parameter name
In this example, it may be preferable for a wrapper template to use {{para|assessor}} which may be unknown to the working template but the working template may have an equivalent {{para|author}} so in the <code><nowiki>{{#invoke:}}</nowiki></code> we would write:
:{{para|_alias-map|assessor:author}}
Positional parameters may also be mapped to canonical parameters:
:{{para|_alias-map|1:author, 2:title, 3:language}}
Enumerated wrapper parameters may be mapped to enumerated canonical parameters using the <code>#</code> enumerator specifier:
:{{para|_alias-map|assessor#:author#}}
Given the above example, {{para|assessor2}} will map to {{para|author2}}; also, {{para|assessor}} and {{para|assessor1}} will map to {{para|author1}}
Multiple wrapper parameters can map to a single canonical parameter:
:{{para|_alias-map|1:author, assessor:author}}
Wrapper parameters listed in {{para|alias-map}} are not passed to the working template. Mapping positional parameters when {{para|_include-positional|yes}} may give undesirable results. {{para|_alias-map|1:author}} and {{para|_include-positional|yes}} will cause all other positional parameters to be passed to the working template as is: wrapper template <code><nowiki>{{{2}}}</nowiki></code> becomes working template <code><nowiki>{{{2}}}</nowiki></code>, etc; working template will not get <code><nowiki>{{{1}}}</nowiki></code> though it will get {{para|author}}.
===_reuse===
{{para|_reuse}} takes a comma-separated list of canonical parameters that have meaning to both the wrapper template and to the working template
In the simplest cases, a canonical parameter passed into the wrapper template overrides a default parameter provided in the wrapper template. Sometimes a wrapper parameter is the same as a canonical parameter and the wrapper template needs to modify the parameter value before it is passed to the working template. In this example, {{para|title}} is both a wrapper parameter and a canonical parameter that the wrapper template needs to modify before passing to the working template. To do this we first write:
:{{para|_reuse|title}}
then, in the wrapper template's <code><nowiki>{{#invoke:Template wrapper|wrap|_template=...|...}}</nowiki></code> we write:
:{{para|title|Modified <nowiki>{{{title}}}</nowiki>}}
_reused parameters cannot be overridden.
===_exclude===
{{para|_exclude}} takes a comma-separated list of parameters used by the wrapper template that are not to be passed to the working template. This list applies to all wrapper and canonical parameters (including those canonical parameters that are renamed alias parameters) received from the wrapper template.
As an example, a wrapper template might use {{para|id}} to supply a portion of the value assigned to default parameter {{para|url}} so we would write:
:{{para|_exclude|id}}
then, in the wrapper template's <code><nowiki>{{#invoke:Template wrapper|wrap|_template=...|...}}</nowiki></code> we write:
:{{para|url|<nowiki>https://example.com/{{{id}}}</nowiki>}}
The modified {{para|url}} value is passed on to working template but {{para|id}} and its value is not.
_reused and default parameters cannot be excluded.
===_include-positional===
{{para|_include-positional}} is a boolean parameter that takes only one value: <code>yes</code>; the default (empty, missing) is <code>no</code> (positional parameters normally excluded). When set to <code>yes</code>, Module:Template wrapper will pass all positional parameters to the working template.
See also §[[#_alias-map|_alias-map]].
===Overriding default parameters===
Editors may override default parameters by simply setting the default parameter to the desired value in the wrapper template. This module ignores empty parameters (those parameters that are named but which do not have an assigned value). When it is desirable to override a default parameter to no value, use the special keyword <code>unset</code>. Default parameters with this value are passed to the working template as empty (no assigned value) parameters.
_reused parameters cannot be <code>unset</code> or overridden.
==Debugging/documentation mode==
This module has two entry points. A wrapper template might use a module <code><nowiki>{{#invoke:}}</nowiki></code> written like this:
:<code><nowiki>{{#invoke:</nowiki>{{BASEPAGENAME}}|<nowiki>{{#if:{{{_debug|}}}|list|wrap}}</nowiki>|_template=<{{var|working template}}>|_exclude=_debug, ...|...}}</code>
where the {{para|_debug}} wrapper parameter, set to any value, will cause the module to render the call to the working template without actually calling the working template.
As an example, {{tlx|cite wikisource}} is a wrapper template that uses {{tlx|citation}} as its working template. {{tld|cite wikisource}} accepts positional parameters but {{tld|citation}} does not so the wrapper template must convert the positional parameters to named parameters which it does using the {{para|_alias-map}} parameter:
:<syntaxhighlight lang="moin">{{#invoke:template wrapper|{{#if:{{{_debug|}}}|list|wrap}}|_template=citation
|_exclude=..., _debug <!-- unnecessary detail omitted -->
|_alias-map=1:title, 2:author, 3:language</syntaxhighlight>
This example uses positional parameters and sets {{para|_debug|yes}} to show that the {{tld|citation}} template is correctly formed:
:<code><nowiki>{{cite wikisource|Sentido y sensibilidad|Jane Austen|es|_debug=yes}}</nowiki></code>
::{{cite wikisource|Sentido y sensibilidad|Jane Austen|es|_debug=yes}}
and, with {{para|_debug}} unset:
:<code><nowiki>{{cite wikisource|Sentido y sensibilidad|Jane Austen|es|_debug=}}</nowiki></code>
::{{cite wikisource|Sentido y sensibilidad|Jane Austen|es|_debug=}}
The {{para|_debug}} name is chosen here for convenience but may be anything so long as it matches the <code><nowiki>{{#if:}}</nowiki></code> in the <code><nowiki>{{#invoke:}}</nowiki></code>.
You may also call the <code>link</code> function to get something like the left-hand side of [[Template:yy]]. This is essentially the <code>list</code> function with the template name turned into a link.
{{yytop|headers=no}}
{{yy|User in New Zealand|4}}
{{yybottom}}
<includeonly>{{sandbox other||
<!-- Categories below this line, please; interwikis at Wikidata -->
}}</includeonly>
1uqfudlxh1d84cwczcuz4baphfnnf0k
Ta̱mpi̱let:Citation Style documentation/lua
10
1604
15067
2022-07-17T12:43:26Z
Kambai Akau
15
Created page with "{{lua|Module:Citation/CS1<noinclude>|nocat=true</noinclude>}}"
wikitext
text/x-wiki
{{lua|Module:Citation/CS1<noinclude>|nocat=true</noinclude>}}
e2uks1yk196ovcrlzjmlrr3sl7xejwx
Module:Citation/CS1
828
1605
15068
2022-07-17T12:47:03Z
Kambai Akau
15
Created page with "require ('Module:No globals'); --[[--------------------------< F O R W A R D D E C L A R A T I O N S >-------------------------------------- each of these counts against the Lua upvalue limit ]] local validation; -- functions in Module:Citation/CS1/Date_validation local utilities; -- functions in Module:Citation/CS1/Utilities local z ={}; -- table of tables in Module:Citation/CS1/Utilities local identifiers;..."
Scribunto
text/plain
require ('Module:No globals');
--[[--------------------------< F O R W A R D D E C L A R A T I O N S >--------------------------------------
each of these counts against the Lua upvalue limit
]]
local validation; -- functions in Module:Citation/CS1/Date_validation
local utilities; -- functions in Module:Citation/CS1/Utilities
local z ={}; -- table of tables in Module:Citation/CS1/Utilities
local identifiers; -- functions and tables in Module:Citation/CS1/Identifiers
local metadata; -- functions in Module:Citation/CS1/COinS
local cfg = {}; -- table of configuration tables that are defined in Module:Citation/CS1/Configuration
local whitelist = {}; -- table of tables listing valid template parameter names; defined in Module:Citation/CS1/Whitelist
--[[------------------< P A G E S C O P E V A R I A B L E S >---------------
declare variables here that have page-wide scope that are not brought in from
other modules; that are created here and used here
]]
local added_deprecated_cat; -- Boolean flag so that the category is added only once
local added_vanc_errs; -- Boolean flag so we only emit one Vancouver error / category
local added_generic_name_errs; -- Boolean flag so we only emit one generic name error / category and stop testing names once an error is encountered
local Frame; -- holds the module's frame table
local is_preview_mode; -- true when article is in preview mode; false when using 'Preview page with this template' (previewing the module)
local is_sandbox; -- true when using sandbox modules to render citation
--[[--------------------------< F I R S T _ S E T >------------------------------------------------------------
Locates and returns the first set value in a table of values where the order established in the table,
left-to-right (or top-to-bottom), is the order in which the values are evaluated. Returns nil if none are set.
This version replaces the original 'for _, val in pairs do' and a similar version that used ipairs. With the pairs
version the order of evaluation could not be guaranteed. With the ipairs version, a nil value would terminate
the for-loop before it reached the actual end of the list.
]]
local function first_set (list, count)
local i = 1;
while i <= count do -- loop through all items in list
if utilities.is_set( list[i] ) then
return list[i]; -- return the first set list member
end
i = i + 1; -- point to next
end
end
--[[--------------------------< A D D _ V A N C _ E R R O R >----------------------------------------------------
Adds a single Vancouver system error message to the template's output regardless of how many error actually exist.
To prevent duplication, added_vanc_errs is nil until an error message is emitted.
added_vanc_errs is a Boolean declared in page scope variables above
]]
local function add_vanc_error (source, position)
if added_vanc_errs then return end
added_vanc_errs = true; -- note that we've added this category
utilities.set_message ('err_vancouver', {source, position});
end
--[[--------------------------< I S _ S C H E M E >------------------------------------------------------------
does this thing that purports to be a URI scheme seem to be a valid scheme? The scheme is checked to see if it
is in agreement with http://tools.ietf.org/html/std66#section-3.1 which says:
Scheme names consist of a sequence of characters beginning with a
letter and followed by any combination of letters, digits, plus
("+"), period ("."), or hyphen ("-").
returns true if it does, else false
]]
local function is_scheme (scheme)
return scheme and scheme:match ('^%a[%a%d%+%.%-]*:'); -- true if scheme is set and matches the pattern
end
--[=[-------------------------< I S _ D O M A I N _ N A M E >--------------------------------------------------
Does this thing that purports to be a domain name seem to be a valid domain name?
Syntax defined here: http://tools.ietf.org/html/rfc1034#section-3.5
BNF defined here: https://tools.ietf.org/html/rfc4234
Single character names are generally reserved; see https://tools.ietf.org/html/draft-ietf-dnsind-iana-dns-01#page-15;
see also [[Single-letter second-level domain]]
list of TLDs: https://www.iana.org/domains/root/db
RFC 952 (modified by RFC 1123) requires the first and last character of a hostname to be a letter or a digit. Between
the first and last characters the name may use letters, digits, and the hyphen.
Also allowed are IPv4 addresses. IPv6 not supported
domain is expected to be stripped of any path so that the last character in the last character of the TLD. tld
is two or more alpha characters. Any preceding '//' (from splitting a URL with a scheme) will be stripped
here. Perhaps not necessary but retained in case it is necessary for IPv4 dot decimal.
There are several tests:
the first character of the whole domain name including subdomains must be a letter or a digit
internationalized domain name (ASCII characters with .xn-- ASCII Compatible Encoding (ACE) prefix xn-- in the TLD) see https://tools.ietf.org/html/rfc3490
single-letter/digit second-level domains in the .org, .cash, and .today TLDs
q, x, and z SL domains in the .com TLD
i and q SL domains in the .net TLD
single-letter SL domains in the ccTLDs (where the ccTLD is two letters)
two-character SL domains in gTLDs (where the gTLD is two or more letters)
three-plus-character SL domains in gTLDs (where the gTLD is two or more letters)
IPv4 dot-decimal address format; TLD not allowed
returns true if domain appears to be a proper name and TLD or IPv4 address, else false
]=]
local function is_domain_name (domain)
if not domain then
return false; -- if not set, abandon
end
domain = domain:gsub ('^//', ''); -- strip '//' from domain name if present; done here so we only have to do it once
if not domain:match ('^[%w]') then -- first character must be letter or digit
return false;
end
if domain:match ('^%a+:') then -- hack to detect things that look like s:Page:Title where Page: is namespace at Wikisource
return false;
end
local patterns = { -- patterns that look like URLs
'%f[%w][%w][%w%-]+[%w]%.%a%a+$', -- three or more character hostname.hostname or hostname.tld
'%f[%w][%w][%w%-]+[%w]%.xn%-%-[%w]+$', -- internationalized domain name with ACE prefix
'%f[%a][qxz]%.com$', -- assigned one character .com hostname (x.com times out 2015-12-10)
'%f[%a][iq]%.net$', -- assigned one character .net hostname (q.net registered but not active 2015-12-10)
'%f[%w][%w]%.%a%a$', -- one character hostname and ccTLD (2 chars)
'%f[%w][%w][%w]%.%a%a+$', -- two character hostname and TLD
'^%d%d?%d?%.%d%d?%d?%.%d%d?%d?%.%d%d?%d?', -- IPv4 address
}
for _, pattern in ipairs (patterns) do -- loop through the patterns list
if domain:match (pattern) then
return true; -- if a match then we think that this thing that purports to be a URL is a URL
end
end
for _, d in ipairs ({'cash', 'company', 'today', 'org'}) do -- look for single letter second level domain names for these top level domains
if domain:match ('%f[%w][%w]%.' .. d) then
return true
end
end
return false; -- no matches, we don't know what this thing is
end
--[[--------------------------< I S _ U R L >------------------------------------------------------------------
returns true if the scheme and domain parts of a URL appear to be a valid URL; else false.
This function is the last step in the validation process. This function is separate because there are cases that
are not covered by split_url(), for example is_parameter_ext_wikilink() which is looking for bracketted external
wikilinks.
]]
local function is_url (scheme, domain)
if utilities.is_set (scheme) then -- if scheme is set check it and domain
return is_scheme (scheme) and is_domain_name (domain);
else
return is_domain_name (domain); -- scheme not set when URL is protocol-relative
end
end
--[[--------------------------< S P L I T _ U R L >------------------------------------------------------------
Split a URL into a scheme, authority indicator, and domain.
First remove Fully Qualified Domain Name terminator (a dot following TLD) (if any) and any path(/), query(?) or fragment(#).
If protocol-relative URL, return nil scheme and domain else return nil for both scheme and domain.
When not protocol-relative, get scheme, authority indicator, and domain. If there is an authority indicator (one
or more '/' characters immediately following the scheme's colon), make sure that there are only 2.
Any URL that does not have news: scheme must have authority indicator (//). TODO: are there other common schemes
like news: that don't use authority indicator?
Strip off any port and path;
]]
local function split_url (url_str)
local scheme, authority, domain;
url_str = url_str:gsub ('([%a%d])%.?[/%?#].*$', '%1'); -- strip FQDN terminator and path(/), query(?), fragment (#) (the capture prevents false replacement of '//')
if url_str:match ('^//%S*') then -- if there is what appears to be a protocol-relative URL
domain = url_str:match ('^//(%S*)')
elseif url_str:match ('%S-:/*%S+') then -- if there is what appears to be a scheme, optional authority indicator, and domain name
scheme, authority, domain = url_str:match ('(%S-:)(/*)(%S+)'); -- extract the scheme, authority indicator, and domain portions
if utilities.is_set (authority) then
authority = authority:gsub ('//', '', 1); -- replace place 1 pair of '/' with nothing;
if utilities.is_set(authority) then -- if anything left (1 or 3+ '/' where authority should be) then
return scheme; -- return scheme only making domain nil which will cause an error message
end
else
if not scheme:match ('^news:') then -- except for news:..., MediaWiki won't link URLs that do not have authority indicator; TODO: a better way to do this test?
return scheme; -- return scheme only making domain nil which will cause an error message
end
end
domain = domain:gsub ('(%a):%d+', '%1'); -- strip port number if present
end
return scheme, domain;
end
--[[--------------------------< L I N K _ P A R A M _ O K >---------------------------------------------------
checks the content of |title-link=, |series-link=, |author-link=, etc. for properly formatted content: no wikilinks, no URLs
Link parameters are to hold the title of a Wikipedia article, so none of the WP:TITLESPECIALCHARACTERS are allowed:
# < > [ ] | { } _
except the underscore which is used as a space in wiki URLs and # which is used for section links
returns false when the value contains any of these characters.
When there are no illegal characters, this function returns TRUE if value DOES NOT appear to be a valid URL (the
|<param>-link= parameter is ok); else false when value appears to be a valid URL (the |<param>-link= parameter is NOT ok).
]]
local function link_param_ok (value)
local scheme, domain;
if value:find ('[<>%[%]|{}]') then -- if any prohibited characters
return false;
end
scheme, domain = split_url (value); -- get scheme or nil and domain or nil from URL;
return not is_url (scheme, domain); -- return true if value DOES NOT appear to be a valid URL
end
--[[--------------------------< L I N K _ T I T L E _ O K >---------------------------------------------------
Use link_param_ok() to validate |<param>-link= value and its matching |<title>= value.
|<title>= may be wiki-linked but not when |<param>-link= has a value. This function emits an error message when
that condition exists
check <link> for inter-language interwiki-link prefix. prefix must be a MediaWiki-recognized language
code and must begin with a colon.
]]
local function link_title_ok (link, lorig, title, torig)
local orig;
if utilities.is_set (link) then -- don't bother if <param>-link doesn't have a value
if not link_param_ok (link) then -- check |<param>-link= markup
orig = lorig; -- identify the failing link parameter
elseif title:find ('%[%[') then -- check |title= for wikilink markup
orig = torig; -- identify the failing |title= parameter
elseif link:match ('^%a+:') then -- if the link is what looks like an interwiki
local prefix = link:match ('^(%a+):'):lower(); -- get the interwiki prefix
if cfg.inter_wiki_map[prefix] then -- if prefix is in the map, must have preceding colon
orig = lorig; -- flag as error
end
end
end
if utilities.is_set (orig) then
link = ''; -- unset
utilities.set_message ('err_bad_paramlink', orig); -- URL or wikilink in |title= with |title-link=;
end
return link; -- link if ok, empty string else
end
--[[--------------------------< C H E C K _ U R L >------------------------------------------------------------
Determines whether a URL string appears to be valid.
First we test for space characters. If any are found, return false. Then split the URL into scheme and domain
portions, or for protocol-relative (//example.com) URLs, just the domain. Use is_url() to validate the two
portions of the URL. If both are valid, or for protocol-relative if domain is valid, return true, else false.
Because it is different from a standard URL, and because this module used external_link() to make external links
that work for standard and news: links, we validate newsgroup names here. The specification for a newsgroup name
is at https://tools.ietf.org/html/rfc5536#section-3.1.4
]]
local function check_url( url_str )
if nil == url_str:match ("^%S+$") then -- if there are any spaces in |url=value it can't be a proper URL
return false;
end
local scheme, domain;
scheme, domain = split_url (url_str); -- get scheme or nil and domain or nil from URL;
if 'news:' == scheme then -- special case for newsgroups
return domain:match('^[%a%d%+%-_]+%.[%a%d%+%-_%.]*[%a%d%+%-_]$');
end
return is_url (scheme, domain); -- return true if value appears to be a valid URL
end
--[=[-------------------------< I S _ P A R A M E T E R _ E X T _ W I K I L I N K >----------------------------
Return true if a parameter value has a string that begins and ends with square brackets [ and ] and the first
non-space characters following the opening bracket appear to be a URL. The test will also find external wikilinks
that use protocol-relative URLs. Also finds bare URLs.
The frontier pattern prevents a match on interwiki-links which are similar to scheme:path URLs. The tests that
find bracketed URLs are required because the parameters that call this test (currently |title=, |chapter=, |work=,
and |publisher=) may have wikilinks and there are articles or redirects like '//Hus' so, while uncommon, |title=[[//Hus]]
is possible as might be [[en://Hus]].
]=]
local function is_parameter_ext_wikilink (value)
local scheme, domain;
if value:match ('%f[%[]%[%a%S*:%S+.*%]') then -- if ext. wikilink with scheme and domain: [xxxx://yyyyy.zzz]
scheme, domain = split_url (value:match ('%f[%[]%[(%a%S*:%S+).*%]'));
elseif value:match ('%f[%[]%[//%S+.*%]') then -- if protocol-relative ext. wikilink: [//yyyyy.zzz]
scheme, domain = split_url (value:match ('%f[%[]%[(//%S+).*%]'));
elseif value:match ('%a%S*:%S+') then -- if bare URL with scheme; may have leading or trailing plain text
scheme, domain = split_url (value:match ('(%a%S*:%S+)'));
elseif value:match ('//%S+') then -- if protocol-relative bare URL: //yyyyy.zzz; may have leading or trailing plain text
scheme, domain = split_url (value:match ('(//%S+)')); -- what is left should be the domain
else
return false; -- didn't find anything that is obviously a URL
end
return is_url (scheme, domain); -- return true if value appears to be a valid URL
end
--[[-------------------------< C H E C K _ F O R _ U R L >-----------------------------------------------------
loop through a list of parameters and their values. Look at the value and if it has an external link, emit an error message.
]]
local function check_for_url (parameter_list, error_list)
for k, v in pairs (parameter_list) do -- for each parameter in the list
if is_parameter_ext_wikilink (v) then -- look at the value; if there is a URL add an error message
table.insert (error_list, utilities.wrap_style ('parameter', k));
end
end
end
--[[--------------------------< S A F E _ F O R _ U R L >------------------------------------------------------
Escape sequences for content that will be used for URL descriptions
]]
local function safe_for_url( str )
if str:match( "%[%[.-%]%]" ) ~= nil then
utilities.set_message ('err_wikilink_in_url', {});
end
return str:gsub( '[%[%]\n]', {
['['] = '[',
[']'] = ']',
['\n'] = ' ' } );
end
--[[--------------------------< E X T E R N A L _ L I N K >----------------------------------------------------
Format an external link with error checking
]]
local function external_link (URL, label, source, access)
local err_msg = '';
local domain;
local path;
local base_url;
if not utilities.is_set (label) then
label = URL;
if utilities.is_set (source) then
utilities.set_message ('err_bare_url_missing_title', {utilities.wrap_style ('parameter', source)});
else
error (cfg.messages["bare_url_no_origin"]);
end
end
if not check_url (URL) then
utilities.set_message ('err_bad_url', {utilities.wrap_style ('parameter', source)});
end
domain, path = URL:match ('^([/%.%-%+:%a%d]+)([/%?#].*)$'); -- split the URL into scheme plus domain and path
if path then -- if there is a path portion
path = path:gsub ('[%[%]]', {['['] = '%5b', [']'] = '%5d'}); -- replace '[' and ']' with their percent-encoded values
URL = table.concat ({domain, path}); -- and reassemble
end
base_url = table.concat ({ "[", URL, " ", safe_for_url (label), "]" }); -- assemble a wiki-markup URL
if utilities.is_set (access) then -- access level (subscription, registration, limited)
base_url = utilities.substitute (cfg.presentation['ext-link-access-signal'], {cfg.presentation[access].class, cfg.presentation[access].title, base_url}); -- add the appropriate icon
end
return base_url;
end
--[[--------------------------< D E P R E C A T E D _ P A R A M E T E R >--------------------------------------
Categorize and emit an error message when the citation contains one or more deprecated parameters. The function includes the
offending parameter name to the error message. Only one error message is emitted regardless of the number of deprecated
parameters in the citation.
added_deprecated_cat is a Boolean declared in page scope variables above
]]
local function deprecated_parameter(name)
if not added_deprecated_cat then
added_deprecated_cat = true; -- note that we've added this category
utilities.set_message ('err_deprecated_params', {name}); -- add error message
end
end
--[=[-------------------------< K E R N _ Q U O T E S >--------------------------------------------------------
Apply kerning to open the space between the quote mark provided by the module and a leading or trailing quote
mark contained in a |title= or |chapter= parameter's value.
This function will positive kern either single or double quotes:
"'Unkerned title with leading and trailing single quote marks'"
" 'Kerned title with leading and trailing single quote marks' " (in real life the kerning isn't as wide as this example)
Double single quotes (italic or bold wiki-markup) are not kerned.
Replaces Unicode quote marks in plain text or in the label portion of a [[L|D]] style wikilink with typewriter
quote marks regardless of the need for kerning. Unicode quote marks are not replaced in simple [[D]] wikilinks.
Call this function for chapter titles, for website titles, etc.; not for book titles.
]=]
local function kern_quotes (str)
local cap = '';
local wl_type, label, link;
wl_type, label, link = utilities.is_wikilink (str); -- wl_type is: 0, no wl (text in label variable); 1, [[D]]; 2, [[L|D]]
if 1 == wl_type then -- [[D]] simple wikilink with or without quote marks
if mw.ustring.match (str, '%[%[[\"“”\'‘’].+[\"“”\'‘’]%]%]') then -- leading and trailing quote marks
str = utilities.substitute (cfg.presentation['kern-left'], str);
str = utilities.substitute (cfg.presentation['kern-right'], str);
elseif mw.ustring.match (str, '%[%[[\"“”\'‘’].+%]%]') then -- leading quote marks
str = utilities.substitute (cfg.presentation['kern-left'], str);
elseif mw.ustring.match (str, '%[%[.+[\"“”\'‘’]%]%]') then -- trailing quote marks
str = utilities.substitute (cfg.presentation['kern-right'], str);
end
else -- plain text or [[L|D]]; text in label variable
label = mw.ustring.gsub (label, '[“”]', '\"'); -- replace “” (U+201C & U+201D) with " (typewriter double quote mark)
label = mw.ustring.gsub (label, '[‘’]', '\''); -- replace ‘’ (U+2018 & U+2019) with ' (typewriter single quote mark)
cap = mw.ustring.match (label, "^([\"\'][^\'].+)"); -- match leading double or single quote but not doubled single quotes (italic markup)
if utilities.is_set (cap) then
label = utilities.substitute (cfg.presentation['kern-left'], cap);
end
cap = mw.ustring.match (label, "^(.+[^\'][\"\'])$") -- match trailing double or single quote but not doubled single quotes (italic markup)
if utilities.is_set (cap) then
label = utilities.substitute (cfg.presentation['kern-right'], cap);
end
if 2 == wl_type then
str = utilities.make_wikilink (link, label); -- reassemble the wikilink
else
str = label;
end
end
return str;
end
--[[--------------------------< F O R M A T _ S C R I P T _ V A L U E >----------------------------------------
|script-title= holds title parameters that are not written in Latin-based scripts: Chinese, Japanese, Arabic, Hebrew, etc. These scripts should
not be italicized and may be written right-to-left. The value supplied by |script-title= is concatenated onto Title after Title has been wrapped
in italic markup.
Regardless of language, all values provided by |script-title= are wrapped in <bdi>...</bdi> tags to isolate RTL languages from the English left to right.
|script-title= provides a unique feature. The value in |script-title= may be prefixed with a two-character ISO 639-1 language code and a colon:
|script-title=ja:*** *** (where * represents a Japanese character)
Spaces between the two-character code and the colon and the colon and the first script character are allowed:
|script-title=ja : *** ***
|script-title=ja: *** ***
|script-title=ja :*** ***
Spaces preceding the prefix are allowed: |script-title = ja:*** ***
The prefix is checked for validity. If it is a valid ISO 639-1 language code, the lang attribute (lang="ja") is added to the <bdi> tag so that browsers can
know the language the tag contains. This may help the browser render the script more correctly. If the prefix is invalid, the lang attribute
is not added. At this time there is no error message for this condition.
Supports |script-title=, |script-chapter=, |script-<periodical>=
]]
local function format_script_value (script_value, script_param)
local lang=''; -- initialize to empty string
local name;
if script_value:match('^%l%l%l?%s*:') then -- if first 3 or 4 non-space characters are script language prefix
lang = script_value:match('^(%l%l%l?)%s*:%s*%S.*'); -- get the language prefix or nil if there is no script
if not utilities.is_set (lang) then
utilities.set_message ('err_script_parameter', {script_param, cfg.err_msg_supl['missing title part']}); -- prefix without 'title'; add error message
return ''; -- script_value was just the prefix so return empty string
end
-- if we get this far we have prefix and script
name = cfg.lang_code_remap[lang] or mw.language.fetchLanguageName( lang, cfg.this_wiki_code ); -- get language name so that we can use it to categorize
if utilities.is_set (name) then -- is prefix a proper ISO 639-1 language code?
script_value = script_value:gsub ('^%l+%s*:%s*', ''); -- strip prefix from script
-- is prefix one of these language codes?
if utilities.in_array (lang, cfg.script_lang_codes) then
utilities.add_prop_cat ('script', {name, lang})
else
utilities.set_message ('err_script_parameter', {script_param, cfg.err_msg_supl['unknown language code']}); -- unknown script-language; add error message
end
lang = ' lang="' .. lang .. '" '; -- convert prefix into a lang attribute
else
utilities.set_message ('err_script_parameter', {script_param, cfg.err_msg_supl['invalid language code']}); -- invalid language code; add error message
lang = ''; -- invalid so set lang to empty string
end
else
utilities.set_message ('err_script_parameter', {script_param, cfg.err_msg_supl['missing prefix']}); -- no language code prefix; add error message
end
script_value = utilities.substitute (cfg.presentation['bdi'], {lang, script_value}); -- isolate in case script is RTL
return script_value;
end
--[[--------------------------< S C R I P T _ C O N C A T E N A T E >------------------------------------------
Initially for |title= and |script-title=, this function concatenates those two parameter values after the script
value has been wrapped in <bdi> tags.
]]
local function script_concatenate (title, script, script_param)
if utilities.is_set (script) then
script = format_script_value (script, script_param); -- <bdi> tags, lang attribute, categorization, etc.; returns empty string on error
if utilities.is_set (script) then
title = title .. ' ' .. script; -- concatenate title and script title
end
end
return title;
end
--[[--------------------------< W R A P _ M S G >--------------------------------------------------------------
Applies additional message text to various parameter values. Supplied string is wrapped using a message_list
configuration taking one argument. Supports lower case text for {{citation}} templates. Additional text taken
from citation_config.messages - the reason this function is similar to but separate from wrap_style().
]]
local function wrap_msg (key, str, lower)
if not utilities.is_set ( str ) then
return "";
end
if true == lower then
local msg;
msg = cfg.messages[key]:lower(); -- set the message to lower case before
return utilities.substitute ( msg, str ); -- including template text
else
return utilities.substitute ( cfg.messages[key], str );
end
end
--[[----------------< W I K I S O U R C E _ U R L _ M A K E >-------------------
Makes a Wikisource URL from Wikisource interwiki-link. Returns the URL and appropriate
label; nil else.
str is the value assigned to |chapter= (or aliases) or |title= or |title-link=
]]
local function wikisource_url_make (str)
local wl_type, D, L;
local ws_url, ws_label;
local wikisource_prefix = table.concat ({'https://', cfg.this_wiki_code, '.wikisource.org/wiki/'});
wl_type, D, L = utilities.is_wikilink (str); -- wl_type is 0 (not a wikilink), 1 (simple wikilink), 2 (complex wikilink)
if 0 == wl_type then -- not a wikilink; might be from |title-link=
str = D:match ('^[Ww]ikisource:(.+)') or D:match ('^[Ss]:(.+)'); -- article title from interwiki link with long-form or short-form namespace
if utilities.is_set (str) then
ws_url = table.concat ({ -- build a Wikisource URL
wikisource_prefix, -- prefix
str, -- article title
});
ws_label = str; -- label for the URL
end
elseif 1 == wl_type then -- simple wikilink: [[Wikisource:ws article]]
str = D:match ('^[Ww]ikisource:(.+)') or D:match ('^[Ss]:(.+)'); -- article title from interwiki link with long-form or short-form namespace
if utilities.is_set (str) then
ws_url = table.concat ({ -- build a Wikisource URL
wikisource_prefix, -- prefix
str, -- article title
});
ws_label = str; -- label for the URL
end
elseif 2 == wl_type then -- non-so-simple wikilink: [[Wikisource:ws article|displayed text]] ([[L|D]])
str = L:match ('^[Ww]ikisource:(.+)') or L:match ('^[Ss]:(.+)'); -- article title from interwiki link with long-form or short-form namespace
if utilities.is_set (str) then
ws_label = D; -- get ws article name from display portion of interwiki link
ws_url = table.concat ({ -- build a Wikisource URL
wikisource_prefix, -- prefix
str, -- article title without namespace from link portion of wikilink
});
end
end
if ws_url then
ws_url = mw.uri.encode (ws_url, 'WIKI'); -- make a usable URL
ws_url = ws_url:gsub ('%%23', '#'); -- undo percent-encoding of fragment marker
end
return ws_url, ws_label, L or D; -- return proper URL or nil and a label or nil
end
--[[----------------< F O R M A T _ P E R I O D I C A L >-----------------------
Format the three periodical parameters: |script-<periodical>=, |<periodical>=,
and |trans-<periodical>= into a single Periodical meta-parameter.
]]
local function format_periodical (script_periodical, script_periodical_source, periodical, trans_periodical)
if not utilities.is_set (periodical) then
periodical = ''; -- to be safe for concatenation
else
periodical = utilities.wrap_style ('italic-title', periodical); -- style
end
periodical = script_concatenate (periodical, script_periodical, script_periodical_source); -- <bdi> tags, lang attribute, categorization, etc.; must be done after title is wrapped
if utilities.is_set (trans_periodical) then
trans_periodical = utilities.wrap_style ('trans-italic-title', trans_periodical);
if utilities.is_set (periodical) then
periodical = periodical .. ' ' .. trans_periodical;
else -- here when trans-periodical without periodical or script-periodical
periodical = trans_periodical;
utilities.set_message ('err_trans_missing_title', {'periodical'});
end
end
return periodical;
end
--[[------------------< F O R M A T _ C H A P T E R _ T I T L E >---------------
Format the four chapter parameters: |script-chapter=, |chapter=, |trans-chapter=,
and |chapter-url= into a single chapter meta- parameter (chapter_url_source used
for error messages).
]]
local function format_chapter_title (script_chapter, script_chapter_source, chapter, chapter_source, trans_chapter, trans_chapter_source, chapter_url, chapter_url_source, no_quotes, access)
local ws_url, ws_label, L = wikisource_url_make (chapter); -- make a wikisource URL and label from a wikisource interwiki link
if ws_url then
ws_label = ws_label:gsub ('_', ' '); -- replace underscore separators with space characters
chapter = ws_label;
end
if not utilities.is_set (chapter) then
chapter = ''; -- to be safe for concatenation
else
if false == no_quotes then
chapter = kern_quotes (chapter); -- if necessary, separate chapter title's leading and trailing quote marks from module provided quote marks
chapter = utilities.wrap_style ('quoted-title', chapter);
end
end
chapter = script_concatenate (chapter, script_chapter, script_chapter_source); -- <bdi> tags, lang attribute, categorization, etc.; must be done after title is wrapped
if utilities.is_set (chapter_url) then
chapter = external_link (chapter_url, chapter, chapter_url_source, access); -- adds bare_url_missing_title error if appropriate
elseif ws_url then
chapter = external_link (ws_url, chapter .. ' ', 'ws link in chapter'); -- adds bare_url_missing_title error if appropriate; space char to move icon away from chap text; TODO: better way to do this?
chapter = utilities.substitute (cfg.presentation['interwiki-icon'], {cfg.presentation['class-wikisource'], L, chapter});
end
if utilities.is_set (trans_chapter) then
trans_chapter = utilities.wrap_style ('trans-quoted-title', trans_chapter);
if utilities.is_set (chapter) then
chapter = chapter .. ' ' .. trans_chapter;
else -- here when trans_chapter without chapter or script-chapter
chapter = trans_chapter;
chapter_source = trans_chapter_source:match ('trans%-?(.+)'); -- when no chapter, get matching name from trans-<param>
utilities.set_message ('err_trans_missing_title', {chapter_source});
end
end
return chapter;
end
--[[----------------< H A S _ I N V I S I B L E _ C H A R S >-------------------
This function searches a parameter's value for non-printable or invisible characters.
The search stops at the first match.
This function will detect the visible replacement character when it is part of the Wikisource.
Detects but ignores nowiki and math stripmarkers. Also detects other named stripmarkers
(gallery, math, pre, ref) and identifies them with a slightly different error message.
See also coins_cleanup().
Output of this function is an error message that identifies the character or the
Unicode group, or the stripmarker that was detected along with its position (or,
for multi-byte characters, the position of its first byte) in the parameter value.
]]
local function has_invisible_chars (param, v)
local position = ''; -- position of invisible char or starting position of stripmarker
local capture; -- used by stripmarker detection to hold name of the stripmarker
local stripmarker; -- boolean set true when a stripmarker is found
capture = string.match (v, '[%w%p ]*'); -- test for values that are simple ASCII text and bypass other tests if true
if capture == v then -- if same there are no Unicode characters
return;
end
for _, invisible_char in ipairs (cfg.invisible_chars) do
local char_name = invisible_char[1]; -- the character or group name
local pattern = invisible_char[2]; -- the pattern used to find it
position, _, capture = mw.ustring.find (v, pattern); -- see if the parameter value contains characters that match the pattern
if position and (cfg.invisible_defs.zwj == capture) then -- if we found a zero-width joiner character
if mw.ustring.find (v, cfg.indic_script) then -- it's ok if one of the Indic scripts
position = nil; -- unset position
elseif cfg.emoji[mw.ustring.codepoint (v, position+1)] then -- is zwj followed by a character listed in emoji{}?
position = nil; -- unset position
end
end
if position then
if 'nowiki' == capture or 'math' == capture or -- nowiki and math stripmarkers (not an error condition)
('templatestyles' == capture and utilities.in_array (param, {'id', 'quote'})) then -- templatestyles stripmarker allowed in these parameters
stripmarker = true; -- set a flag
elseif true == stripmarker and cfg.invisible_defs.del == capture then -- because stripmakers begin and end with the delete char, assume that we've found one end of a stripmarker
position = nil; -- unset
else
local err_msg;
if capture and not (cfg.invisible_defs.del == capture or cfg.invisible_defs.zwj == capture) then
err_msg = capture .. ' ' .. char_name;
else
err_msg = char_name .. ' ' .. 'character';
end
utilities.set_message ('err_invisible_char', {err_msg, utilities.wrap_style ('parameter', param), position}); -- add error message
return; -- and done with this parameter
end
end
end
end
--[[-------------------< A R G U M E N T _ W R A P P E R >----------------------
Argument wrapper. This function provides support for argument mapping defined
in the configuration file so that multiple names can be transparently aliased to
single internal variable.
]]
local function argument_wrapper ( args )
local origin = {};
return setmetatable({
ORIGIN = function ( self, k )
local dummy = self[k]; -- force the variable to be loaded.
return origin[k];
end
},
{
__index = function ( tbl, k )
if origin[k] ~= nil then
return nil;
end
local args, list, v = args, cfg.aliases[k];
if type( list ) == 'table' then
v, origin[k] = utilities.select_one ( args, list, 'err_redundant_parameters' );
if origin[k] == nil then
origin[k] = ''; -- Empty string, not nil
end
elseif list ~= nil then
v, origin[k] = args[list], list;
else
-- maybe let through instead of raising an error?
-- v, origin[k] = args[k], k;
error( cfg.messages['unknown_argument_map'] .. ': ' .. k);
end
-- Empty strings, not nil;
if v == nil then
v = '';
origin[k] = '';
end
tbl = rawset( tbl, k, v );
return v;
end,
});
end
--[[--------------------------< N O W R A P _ D A T E >-------------------------
When date is YYYY-MM-DD format wrap in nowrap span: <span ...>YYYY-MM-DD</span>.
When date is DD MMMM YYYY or is MMMM DD, YYYY then wrap in nowrap span:
<span ...>DD MMMM</span> YYYY or <span ...>MMMM DD,</span> YYYY
DOES NOT yet support MMMM YYYY or any of the date ranges.
]]
local function nowrap_date (date)
local cap = '';
local cap2 = '';
if date:match("^%d%d%d%d%-%d%d%-%d%d$") then
date = utilities.substitute (cfg.presentation['nowrap1'], date);
elseif date:match("^%a+%s*%d%d?,%s+%d%d%d%d$") or date:match ("^%d%d?%s*%a+%s+%d%d%d%d$") then
cap, cap2 = string.match (date, "^(.*)%s+(%d%d%d%d)$");
date = utilities.substitute (cfg.presentation['nowrap2'], {cap, cap2});
end
return date;
end
--[[--------------------------< S E T _ T I T L E T Y P E >---------------------
This function sets default title types (equivalent to the citation including
|type=<default value>) for those templates that have defaults. Also handles the
special case where it is desirable to omit the title type from the rendered citation
(|type=none).
]]
local function set_titletype (cite_class, title_type)
if utilities.is_set (title_type) then
if 'none' == cfg.keywords_xlate[title_type] then
title_type = ''; -- if |type=none then type parameter not displayed
end
return title_type; -- if |type= has been set to any other value use that value
end
return cfg.title_types [cite_class] or ''; -- set template's default title type; else empty string for concatenation
end
--[[--------------------------< S A F E _ J O I N >-----------------------------
Joins a sequence of strings together while checking for duplicate separation characters.
]]
local function safe_join( tbl, duplicate_char )
local f = {}; -- create a function table appropriate to type of 'duplicate character'
if 1 == #duplicate_char then -- for single byte ASCII characters use the string library functions
f.gsub = string.gsub
f.match = string.match
f.sub = string.sub
else -- for multi-byte characters use the ustring library functions
f.gsub = mw.ustring.gsub
f.match = mw.ustring.match
f.sub = mw.ustring.sub
end
local str = ''; -- the output string
local comp = ''; -- what does 'comp' mean?
local end_chr = '';
local trim;
for _, value in ipairs( tbl ) do
if value == nil then value = ''; end
if str == '' then -- if output string is empty
str = value; -- assign value to it (first time through the loop)
elseif value ~= '' then
if value:sub(1, 1) == '<' then -- special case of values enclosed in spans and other markup.
comp = value:gsub( "%b<>", "" ); -- remove HTML markup (<span>string</span> -> string)
else
comp = value;
end
-- typically duplicate_char is sepc
if f.sub(comp, 1, 1) == duplicate_char then -- is first character same as duplicate_char? why test first character?
-- Because individual string segments often (always?) begin with terminal punct for the
-- preceding segment: 'First element' .. 'sepc next element' .. etc.?
trim = false;
end_chr = f.sub(str, -1, -1); -- get the last character of the output string
-- str = str .. "<HERE(enchr=" .. end_chr .. ")" -- debug stuff?
if end_chr == duplicate_char then -- if same as separator
str = f.sub(str, 1, -2); -- remove it
elseif end_chr == "'" then -- if it might be wiki-markup
if f.sub(str, -3, -1) == duplicate_char .. "''" then -- if last three chars of str are sepc''
str = f.sub(str, 1, -4) .. "''"; -- remove them and add back ''
elseif f.sub(str, -5, -1) == duplicate_char .. "]]''" then -- if last five chars of str are sepc]]''
trim = true; -- why? why do this and next differently from previous?
elseif f.sub(str, -4, -1) == duplicate_char .. "]''" then -- if last four chars of str are sepc]''
trim = true; -- same question
end
elseif end_chr == "]" then -- if it might be wiki-markup
if f.sub(str, -3, -1) == duplicate_char .. "]]" then -- if last three chars of str are sepc]] wikilink
trim = true;
elseif f.sub(str, -3, -1) == duplicate_char .. '"]' then -- if last three chars of str are sepc"] quoted external link
trim = true;
elseif f.sub(str, -2, -1) == duplicate_char .. "]" then -- if last two chars of str are sepc] external link
trim = true;
elseif f.sub(str, -4, -1) == duplicate_char .. "'']" then -- normal case when |url=something & |title=Title.
trim = true;
end
elseif end_chr == " " then -- if last char of output string is a space
if f.sub(str, -2, -1) == duplicate_char .. " " then -- if last two chars of str are <sepc><space>
str = f.sub(str, 1, -3); -- remove them both
end
end
if trim then
if value ~= comp then -- value does not equal comp when value contains HTML markup
local dup2 = duplicate_char;
if f.match(dup2, "%A" ) then dup2 = "%" .. dup2; end -- if duplicate_char not a letter then escape it
value = f.gsub(value, "(%b<>)" .. dup2, "%1", 1 ) -- remove duplicate_char if it follows HTML markup
else
value = f.sub(value, 2, -1 ); -- remove duplicate_char when it is first character
end
end
end
str = str .. value; -- add it to the output string
end
end
return str;
end
--[[--------------------------< I S _ S U F F I X >-----------------------------
returns true if suffix is properly formed Jr, Sr, or ordinal in the range 1–9.
Puncutation not allowed.
]]
local function is_suffix (suffix)
if utilities.in_array (suffix, {'Jr', 'Sr', 'Jnr', 'Snr', '1st', '2nd', '3rd'}) or suffix:match ('^%dth$') then
return true;
end
return false;
end
--[[--------------------< I S _ G O O D _ V A N C _ N A M E >-------------------
For Vancouver style, author/editor names are supposed to be rendered in Latin
(read ASCII) characters. When a name uses characters that contain diacritical
marks, those characters are to be converted to the corresponding Latin
character. When a name is written using a non-Latin alphabet or logogram, that
name is to be transliterated into Latin characters. The module doesn't do this
so editors may/must.
This test allows |first= and |last= names to contain any of the letters defined
in the four Unicode Latin character sets
[http://www.unicode.org/charts/PDF/U0000.pdf C0 Controls and Basic Latin] 0041–005A, 0061–007A
[http://www.unicode.org/charts/PDF/U0080.pdf C1 Controls and Latin-1 Supplement] 00C0–00D6, 00D8–00F6, 00F8–00FF
[http://www.unicode.org/charts/PDF/U0100.pdf Latin Extended-A] 0100–017F
[http://www.unicode.org/charts/PDF/U0180.pdf Latin Extended-B] 0180–01BF, 01C4–024F
|lastn= also allowed to contain hyphens, spaces, and apostrophes.
(http://www.ncbi.nlm.nih.gov/books/NBK7271/box/A35029/)
|firstn= also allowed to contain hyphens, spaces, apostrophes, and periods
This original test:
if nil == mw.ustring.find (last, "^[A-Za-zÀ-ÖØ-öø-ƿDŽ-ɏ%-%s%']*$")
or nil == mw.ustring.find (first, "^[A-Za-zÀ-ÖØ-öø-ƿDŽ-ɏ%-%s%'%.]+[2-6%a]*$") then
was written outside of the code editor and pasted here because the code editor
gets confused between character insertion point and cursor position. The test has
been rewritten to use decimal character escape sequence for the individual bytes
of the Unicode characters so that it is not necessary to use an external editor
to maintain this code.
\195\128-\195\150 – À-Ö (U+00C0–U+00D6 – C0 controls)
\195\152-\195\182 – Ø-ö (U+00D8-U+00F6 – C0 controls)
\195\184-\198\191 – ø-ƿ (U+00F8-U+01BF – C0 controls, Latin extended A & B)
\199\132-\201\143 – DŽ-ɏ (U+01C4-U+024F – Latin extended B)
]]
local function is_good_vanc_name (last, first, suffix, position)
if not suffix then
if first:find ('[,%s]') then -- when there is a space or comma, might be first name/initials + generational suffix
first = first:match ('(.-)[,%s]+'); -- get name/initials
suffix = first:match ('[,%s]+(.+)$'); -- get generational suffix
end
end
if utilities.is_set (suffix) then
if not is_suffix (suffix) then
add_vanc_error (cfg.err_msg_supl.suffix, position);
return false; -- not a name with an appropriate suffix
end
end
if nil == mw.ustring.find (last, "^[A-Za-z\195\128-\195\150\195\152-\195\182\195\184-\198\191\199\132-\201\143%-%s%']*$") or
nil == mw.ustring.find (first, "^[A-Za-z\195\128-\195\150\195\152-\195\182\195\184-\198\191\199\132-\201\143%-%s%'%.]*$") then
add_vanc_error (cfg.err_msg_supl['non-Latin char'], position);
return false; -- not a string of Latin characters; Vancouver requires Romanization
end;
return true;
end
--[[--------------------------< R E D U C E _ T O _ I N I T I A L S >------------------------------------------
Attempts to convert names to initials in support of |name-list-style=vanc.
Names in |firstn= may be separated by spaces or hyphens, or for initials, a period.
See http://www.ncbi.nlm.nih.gov/books/NBK7271/box/A35062/.
Vancouver style requires family rank designations (Jr, II, III, etc.) to be rendered
as Jr, 2nd, 3rd, etc. See http://www.ncbi.nlm.nih.gov/books/NBK7271/box/A35085/.
This code only accepts and understands generational suffix in the Vancouver format
because Roman numerals look like, and can be mistaken for, initials.
This function uses ustring functions because firstname initials may be any of the
Unicode Latin characters accepted by is_good_vanc_name ().
]]
local function reduce_to_initials(first, position)
local name, suffix = mw.ustring.match(first, "^(%u+) ([%dJS][%drndth]+)$");
if not name then -- if not initials and a suffix
name = mw.ustring.match(first, "^(%u+)$"); -- is it just initials?
end
if name then -- if first is initials with or without suffix
if 3 > mw.ustring.len (name) then -- if one or two initials
if suffix then -- if there is a suffix
if is_suffix (suffix) then -- is it legitimate?
return first; -- one or two initials and a valid suffix so nothing to do
else
add_vanc_error (cfg.err_msg_supl.suffix, position); -- one or two initials with invalid suffix so error message
return first; -- and return first unmolested
end
else
return first; -- one or two initials without suffix; nothing to do
end
end
end -- if here then name has 3 or more uppercase letters so treat them as a word
local initials, names = {}, {}; -- tables to hold name parts and initials
local i = 1; -- counter for number of initials
names = mw.text.split (first, '[%s,]+'); -- split into a table of names and possible suffix
while names[i] do -- loop through the table
if 1 < i and names[i]:match ('[%dJS][%drndth]+%.?$') then -- if not the first name, and looks like a suffix (may have trailing dot)
names[i] = names[i]:gsub ('%.', ''); -- remove terminal dot if present
if is_suffix (names[i]) then -- if a legitimate suffix
table.insert (initials, ' ' .. names[i]); -- add a separator space, insert at end of initials table
break; -- and done because suffix must fall at the end of a name
end -- no error message if not a suffix; possibly because of Romanization
end
if 3 > i then
table.insert (initials, mw.ustring.sub(names[i], 1, 1)); -- insert the initial at end of initials table
end
i = i + 1; -- bump the counter
end
return table.concat(initials) -- Vancouver format does not include spaces.
end
--[[--------------------------< L I S T _ P E O P L E >--------------------------
Formats a list of people (authors, contributors, editors, interviewers, translators)
names in the list will be linked when
|<name>-link= has a value
|<name>-mask- does NOT have a value; masked names are presumed to have been
rendered previously so should have been linked there
when |<name>-mask=0, the associated name is not rendered
]]
local function list_people (control, people, etal)
local sep;
local namesep;
local format = control.format;
local maximum = control.maximum;
local name_list = {};
if 'vanc' == format then -- Vancouver-like name styling?
sep = cfg.presentation['sep_nl_vanc']; -- name-list separator between names is a comma
namesep = cfg.presentation['sep_name_vanc']; -- last/first separator is a space
else
sep = cfg.presentation['sep_nl']; -- name-list separator between names is a semicolon
namesep = cfg.presentation['sep_name']; -- last/first separator is <comma><space>
end
if sep:sub (-1, -1) ~= " " then sep = sep .. " " end
if utilities.is_set (maximum) and maximum < 1 then return "", 0; end -- returned 0 is for EditorCount; not used for other names
for i, person in ipairs (people) do
if utilities.is_set (person.last) then
local mask = person.mask;
local one;
local sep_one = sep;
if utilities.is_set (maximum) and i > maximum then
etal = true;
break;
end
if mask then
local n = tonumber (mask); -- convert to a number if it can be converted; nil else
if n then
one = 0 ~= n and string.rep("—", n) or nil; -- make a string of (n > 0) mdashes, nil else, to replace name
person.link = nil; -- don't create link to name if name is replaces with mdash string or has been set nil
else
one = mask; -- replace name with mask text (must include name-list separator)
sep_one = " "; -- modify name-list separator
end
else
one = person.last; -- get surname
local first = person.first -- get given name
if utilities.is_set (first) then
if ("vanc" == format) then -- if Vancouver format
one = one:gsub ('%.', ''); -- remove periods from surnames (http://www.ncbi.nlm.nih.gov/books/NBK7271/box/A35029/)
if not person.corporate and is_good_vanc_name (one, first, nil, i) then -- and name is all Latin characters; corporate authors not tested
first = reduce_to_initials (first, i); -- attempt to convert first name(s) to initials
end
end
one = one .. namesep .. first;
end
end
if utilities.is_set (person.link) then
one = utilities.make_wikilink (person.link, one); -- link author/editor
end
if one then -- if <one> has a value (name, mdash replacement, or mask text replacement)
table.insert (name_list, one); -- add it to the list of names
table.insert (name_list, sep_one); -- add the proper name-list separator
end
end
end
local count = #name_list / 2; -- (number of names + number of separators) divided by 2
if 0 < count then
if 1 < count and not etal then
if 'amp' == format then
name_list[#name_list-2] = " & "; -- replace last separator with ampersand text
elseif 'and' == format then
if 2 == count then
name_list[#name_list-2] = cfg.presentation.sep_nl_and; -- replace last separator with 'and' text
else
name_list[#name_list-2] = cfg.presentation.sep_nl_end; -- replace last separator with '(sep) and' text
end
end
end
name_list[#name_list] = nil; -- erase the last separator
end
local result = table.concat (name_list); -- construct list
if etal and utilities.is_set (result) then -- etal may be set by |display-authors=etal but we might not have a last-first list
result = result .. sep .. ' ' .. cfg.messages['et al']; -- we've got a last-first list and etal so add et al.
end
return result, count; -- return name-list string and count of number of names (count used for editor names only)
end
--[[--------------------< M A K E _ C I T E R E F _ I D >-----------------------
Generates a CITEREF anchor ID if we have at least one name or a date. Otherwise
returns an empty string.
namelist is one of the contributor-, author-, or editor-name lists chosen in that
order. year is Year or anchor_year.
]]
local function make_citeref_id (namelist, year)
local names={}; -- a table for the one to four names and year
for i,v in ipairs (namelist) do -- loop through the list and take up to the first four last names
names[i] = v.last
if i == 4 then break end -- if four then done
end
table.insert (names, year); -- add the year at the end
local id = table.concat(names); -- concatenate names and year for CITEREF id
if utilities.is_set (id) then -- if concatenation is not an empty string
return "CITEREF" .. id; -- add the CITEREF portion
else
return ''; -- return an empty string; no reason to include CITEREF id in this citation
end
end
--[[--------------------------< C I T E _ C L A S S _A T T R I B U T E _M A K E >------------------------------
construct <cite> tag class attribute for this citation.
<cite_class> – config.CitationClass from calling template
<mode> – value from |mode= parameter
]]
local function cite_class_attribute_make (cite_class, mode)
local class_t = {};
table.insert (class_t, 'citation'); -- required for blue highlight
if 'citation' ~= cite_class then
table.insert (class_t, cite_class); -- identify this template for user css
table.insert (class_t, utilities.is_set (mode) and mode or 'cs1'); -- identify the citation style for user css or javascript
else
table.insert (class_t, utilities.is_set (mode) and mode or 'cs2'); -- identify the citation style for user css or javascript
end
for _, prop_key in ipairs (z.prop_keys_t) do
table.insert (class_t, prop_key); -- identify various properties for user css or javascript
end
return table.concat (class_t, ' '); -- make a big string and done
end
--[[---------------------< N A M E _ H A S _ E T A L >--------------------------
Evaluates the content of name parameters (author, editor, etc.) for variations on
the theme of et al. If found, the et al. is removed, a flag is set to true and
the function returns the modified name and the flag.
This function never sets the flag to false but returns its previous state because
it may have been set by previous passes through this function or by the associated
|display-<names>=etal parameter
]]
local function name_has_etal (name, etal, nocat, param)
if utilities.is_set (name) then -- name can be nil in which case just return
local patterns = cfg.et_al_patterns; -- get patterns from configuration
for _, pattern in ipairs (patterns) do -- loop through all of the patterns
if name:match (pattern) then -- if this 'et al' pattern is found in name
name = name:gsub (pattern, ''); -- remove the offending text
etal = true; -- set flag (may have been set previously here or by |display-<names>=etal)
if not nocat then -- no categorization for |vauthors=
utilities.set_message ('err_etal', {param}); -- and set an error if not added
end
end
end
end
return name, etal;
end
--[[---------------------< N A M E _ I S _ N U M E R I C >----------------------
Add maint cat when name parameter value does not contain letters. Does not catch
mixed alphanumeric names so |last=A. Green (1922-1987) does not get caught in the
current version of this test but |first=(1888) is caught.
returns nothing
]]
local function name_is_numeric (name, list_name)
if utilities.is_set (name) then
if mw.ustring.match (name, '^[%A]+$') then -- when name does not contain any letters
utilities.set_message ('maint_numeric_names', cfg.special_case_translation [list_name]); -- add a maint cat for this template
end
end
end
--[[-----------------< N A M E _ H A S _ M U L T _ N A M E S >------------------
Evaluates the content of last/surname (authors etc.) parameters for multiple names.
Multiple names are indicated if there is more than one comma or any "unescaped"
semicolons. Escaped semicolons are ones used as part of selected HTML entities.
If the condition is met, the function adds the multiple name maintenance category.
returns nothing
]]
local function name_has_mult_names (name, list_name)
local _, commas, semicolons, nbsps;
if utilities.is_set (name) then
_, commas = name:gsub (',', ''); -- count the number of commas
_, semicolons = name:gsub (';', ''); -- count the number of semicolons
-- nbsps probably should be its own separate count rather than merged in
-- some way with semicolons because Lua patterns do not support the
-- grouping operator that regex does, which means there is no way to add
-- more entities to escape except by adding more counts with the new
-- entities
_, nbsps = name:gsub (' ',''); -- count nbsps
-- There is exactly 1 semicolon per entity, so subtract nbsps
-- from semicolons to 'escape' them. If additional entities are added,
-- they also can be subtracted.
if 1 < commas or 0 < (semicolons - nbsps) then
utilities.set_message ('maint_mult_names', cfg.special_case_translation [list_name]); -- add a maint message
end
end
end
--[=[-------------------------< I S _ G E N E R I C >----------------------------------------------------------
Compares values assigned to various parameters according to the string provided as <item> in the function call.
<item> can have on of two values:
'generic_names' – for name-holding parameters: |last=, |first=, |editor-last=, etc
'generic_titles' – for |title=
There are two types of generic tests. The 'accept' tests look for a pattern that should not be rejected by the
'reject' test. For example,
|author=[[John Smith (author)|Smith, John]]
would be rejected by the 'author' reject test. But piped wikilinks with 'author' disambiguation should not be
rejected so the 'accept' test prevents that from happening. Accept tests are always performed before reject
tests.
Each of the 'accept' and 'reject' sequence tables hold tables for en.wiki (['en']) and local.wiki (['local'])
that each can hold a test sequence table The sequence table holds, at index [1], a test pattern, and, at index
[2], a boolean control value. The control value tells string.find() or mw.ustring.find() to do plain-text search (true)
or a pattern search (false). The intent of all this complexity is to make these searches as fast as possible so
that we don't run out of processing time on very large articles.
Returns
true when a reject test finds the pattern or string
false when an accept test finds the pattern or string
nil else
]=]
local function is_generic (item, value, wiki)
local test_val;
local str_lower = { -- use string.lower() for en.wiki (['en']) and use mw.ustring.lower() or local.wiki (['local'])
['en'] = string.lower,
['local'] = mw.ustring.lower,
}
local str_find = { -- use string.find() for en.wiki (['en']) and use mw.ustring.find() or local.wiki (['local'])
['en'] = string.find,
['local'] = mw.ustring.find,
}
local function test (val, test_t, wiki) -- local function to do the testing; <wiki> selects lower() and find() functions
val = test_t[2] and str_lower[wiki](value) or val; -- when <test_t[2]> set to 'true', plaintext search using lowercase value
return str_find[wiki] (val, test_t[1], 1, test_t[2]); -- return nil when not found or matched
end
local test_types_t = {'accept', 'reject'}; -- test accept patterns first, then reject patterns
local wikis_t = {'en', 'local'}; -- do tests for each of these keys; en.wiki first, local.wiki second
for _, test_type in ipairs (test_types_t) do -- for each test type
for _, generic_value in pairs (cfg.special_case_translation[item][test_type]) do -- spin through the list of generic value fragments to accept or reject
for _, wiki in ipairs (wikis_t) do
if generic_value[wiki] then
if test (value, generic_value[wiki], wiki) then -- go do the test
return ('reject' == test_type); -- param value rejected, return true; false else
end
end
end
end
end
end
--[[--------------------------< N A M E _ I S _ G E N E R I C >------------------------------------------------
calls is_generic() to determine if <name> is a 'generic name' listed in cfg.generic_names; <name_alias> is the
parameter name used in error messaging
]]
local function name_is_generic (name, name_alias)
if not added_generic_name_errs and is_generic ('generic_names', name) then
utilities.set_message ('err_generic_name', name_alias); -- set an error message
added_generic_name_errs = true;
end
end
--[[--------------------------< N A M E _ C H E C K S >--------------------------------------------------------
This function calls various name checking functions used to validate the content of the various name-holding parameters.
]]
local function name_checks (last, first, list_name, last_alias, first_alias)
local accept_name;
if utilities.is_set (last) then
last, accept_name = utilities.has_accept_as_written (last); -- remove accept-this-as-written markup when it wraps all of <last>
if not accept_name then -- <last> not wrapped in accept-as-written markup
name_has_mult_names (last, list_name); -- check for multiple names in the parameter (last only)
name_is_numeric (last, list_name); -- check for names that are composed of digits and punctuation
name_is_generic (last, last_alias); -- check for names found in the generic names list
end
end
if utilities.is_set (first) then
first, accept_name = utilities.has_accept_as_written (first); -- remove accept-this-as-written markup when it wraps all of <first>
if not accept_name then -- <first> not wrapped in accept-as-written markup
name_is_numeric (first, list_name); -- check for names that are composed of digits and punctuation
name_is_generic (first, first_alias); -- check for names found in the generic names list
end
local wl_type, D = utilities.is_wikilink (first);
if 0 ~= wl_type then
first = D;
utilities.set_message ('err_bad_paramlink', first_alias);
end
end
return last, first; -- done
end
--[[----------------------< E X T R A C T _ N A M E S >-------------------------
Gets name list from the input arguments
Searches through args in sequential order to find |lastn= and |firstn= parameters
(or their aliases), and their matching link and mask parameters. Stops searching
when both |lastn= and |firstn= are not found in args after two sequential attempts:
found |last1=, |last2=, and |last3= but doesn't find |last4= and |last5= then the
search is done.
This function emits an error message when there is a |firstn= without a matching
|lastn=. When there are 'holes' in the list of last names, |last1= and |last3=
are present but |last2= is missing, an error message is emitted. |lastn= is not
required to have a matching |firstn=.
When an author or editor parameter contains some form of 'et al.', the 'et al.'
is stripped from the parameter and a flag (etal) returned that will cause list_people()
to add the static 'et al.' text from Module:Citation/CS1/Configuration. This keeps
'et al.' out of the template's metadata. When this occurs, an error is emitted.
]]
local function extract_names(args, list_name)
local names = {}; -- table of names
local last; -- individual name components
local first;
local link;
local mask;
local i = 1; -- loop counter/indexer
local n = 1; -- output table indexer
local count = 0; -- used to count the number of times we haven't found a |last= (or alias for authors, |editor-last or alias for editors)
local etal = false; -- return value set to true when we find some form of et al. in an author parameter
local last_alias, first_alias, link_alias; -- selected parameter aliases used in error messaging
while true do
last, last_alias = utilities.select_one ( args, cfg.aliases[list_name .. '-Last'], 'err_redundant_parameters', i ); -- search through args for name components beginning at 1
first, first_alias = utilities.select_one ( args, cfg.aliases[list_name .. '-First'], 'err_redundant_parameters', i );
link, link_alias = utilities.select_one ( args, cfg.aliases[list_name .. '-Link'], 'err_redundant_parameters', i );
mask = utilities.select_one ( args, cfg.aliases[list_name .. '-Mask'], 'err_redundant_parameters', i );
last, etal = name_has_etal (last, etal, false, last_alias); -- find and remove variations on et al.
first, etal = name_has_etal (first, etal, false, first_alias); -- find and remove variations on et al.
last, first = name_checks (last, first, list_name, last_alias, first_alias); -- multiple names, extraneous annotation, etc. checks
if first and not last then -- if there is a firstn without a matching lastn
local alias = first_alias:find ('given', 1, true) and 'given' or 'first'; -- get first or given form of the alias
utilities.set_message ('err_first_missing_last', {
first_alias, -- param name of alias missing its mate
first_alias:gsub (alias, {['first'] = 'last', ['given'] = 'surname'}), -- make param name appropriate to the alias form
}); -- add this error message
elseif not first and not last then -- if both firstn and lastn aren't found, are we done?
count = count + 1; -- number of times we haven't found last and first
if 2 <= count then -- two missing names and we give up
break; -- normal exit or there is a two-name hole in the list; can't tell which
end
else -- we have last with or without a first
local result;
link = link_title_ok (link, link_alias, last, last_alias); -- check for improper wiki-markup
if first then
link = link_title_ok (link, link_alias, first, first_alias); -- check for improper wiki-markup
end
names[n] = {last = last, first = first, link = link, mask = mask, corporate = false}; -- add this name to our names list (corporate for |vauthors= only)
n = n + 1; -- point to next location in the names table
if 1 == count then -- if the previous name was missing
utilities.set_message ('err_missing_name', {list_name:match ("(%w+)List"):lower(), i - 1}); -- add this error message
end
count = 0; -- reset the counter, we're looking for two consecutive missing names
end
i = i + 1; -- point to next args location
end
return names, etal; -- all done, return our list of names and the etal flag
end
--[[--------------------------< N A M E _ T A G _ G E T >------------------------------------------------------
attempt to decode |language=<lang_param> and return language name and matching tag; nil else.
This function looks for:
<lang_param> as a tag in cfg.lang_code_remap{}
<lang_param> as a name in cfg.lang_name_remap{}
<lang_param> as a name in cfg.mw_languages_by_name_t
<lang_param> as a tag in cfg.mw_languages_by_tag_t
when those fail, presume that <lang_param> is an IETF-like tag that MediaWiki does not recognize. Strip all
script, region, variant, whatever subtags from <lang_param> to leave just a two or three character language tag
and look for the new <lang_param> in cfg.mw_languages_by_tag_t{}
on success, returns name (in properly capitalized form) and matching tag (in lowercase); on failure returns nil
]]
local function name_tag_get (lang_param)
local lang_param_lc = mw.ustring.lower (lang_param); -- use lowercase as an index into the various tables
local name;
local tag;
name = cfg.lang_code_remap[lang_param_lc]; -- assume <lang_param_lc> is a tag; attempt to get remapped language name
if name then -- when <name>, <lang_param> is a tag for a remapped language name
return name, lang_param_lc; -- so return <name> from remap and <lang_param_lc>
end
tag = lang_param_lc:match ('^(%a%a%a?)%-.*'); -- still assuming that <lang_param_lc> is a tag; strip script, region, variant subtags
name = cfg.lang_code_remap[tag]; -- attempt to get remapped language name with language subtag only
if name then -- when <name>, <tag> is a tag for a remapped language name
return name, tag; -- so return <name> from remap and <tag>
end
if cfg.lang_name_remap[lang_param_lc] then -- not a tag, assume <lang_param_lc> is a name; attempt to get remapped language tag
return cfg.lang_name_remap[lang_param_lc][1], cfg.lang_name_remap[lang_param_lc][2]; -- for this <lang_param_lc>, return a (possibly) new name and appropriate tag
end
tag = cfg.mw_languages_by_name_t[lang_param_lc]; -- assume that <lang_param_lc> is a language name; attempt to get its matching tag
if tag then
return cfg.mw_languages_by_tag_t[tag], tag; -- <lang_param_lc> is a name so return the name from the table and <tag>
end
name = cfg.mw_languages_by_tag_t[lang_param_lc]; -- assume that <lang_param_lc> is a tag; attempt to get its matching language name
if name then
return name, lang_param_lc; -- <lang_param_lc> is a tag so return it and <name>
end
tag = lang_param_lc:match ('^(%a%a%a?)%-.*'); -- is <lang_param_lc> an IETF-like tag that MediaWiki doesn't recognize? <tag> gets the language subtag; nil else
if tag then
name = cfg.mw_languages_by_tag_t[tag]; -- attempt to get a language name using the shortened <tag>
if name then
return name, tag; -- <lang_param_lc> is an unrecognized IETF-like tag so return <name> and language subtag
end
end
end
--[[-------------------< L A N G U A G E _ P A R A M E T E R >------------------
Gets language name from a provided two- or three-character ISO 639 code. If a code
is recognized by MediaWiki, use the returned name; if not, then use the value that
was provided with the language parameter.
When |language= contains a recognized language (either code or name), the page is
assigned to the category for that code: Category:Norwegian-language sources (no).
For valid three-character code languages, the page is assigned to the single category
for '639-2' codes: Category:CS1 ISO 639-2 language sources.
Languages that are the same as the local wiki are not categorized. MediaWiki does
not recognize three-character equivalents of two-character codes: code 'ar' is
recognized but code 'ara' is not.
This function supports multiple languages in the form |language=nb, French, th
where the language names or codes are separated from each other by commas with
optional space characters.
]]
local function language_parameter (lang)
local tag; -- some form of IETF-like language tag; language subtag with optional region, sript, vatiant, etc subtags
local lang_subtag; -- ve populates |language= with mostly unecessary region subtags the MediaWiki does not recognize; this is the base language subtag
local name; -- the language name
local language_list = {}; -- table of language names to be rendered
local names_t = {}; -- table made from the value assigned to |language=
local this_wiki_name = mw.language.fetchLanguageName (cfg.this_wiki_code, cfg.this_wiki_code); -- get this wiki's language name
names_t = mw.text.split (lang, '%s*,%s*'); -- names should be a comma separated list
for _, lang in ipairs (names_t) do -- reuse lang here because we don't yet know if lang is a language name or a language tag
name, tag = name_tag_get (lang); -- attempt to get name/tag pair for <lang>; <name> has proper capitalization; <tag> is lowercase
if utilities.is_set (tag) then
lang_subtag = tag:gsub ('^(%a%a%a?)%-.*', '%1'); -- for categorization, strip any IETF-like tags from language tag
if cfg.this_wiki_code ~= lang_subtag then -- when the language is not the same as this wiki's language
if 2 == lang_subtag:len() then -- and is a two-character tag
-- utilities.add_prop_cat ('foreign-lang-source', {name, lang_subtag}, lang_subtag); -- categorize it; tag appended to allow for multiple language categorization
utilities.add_prop_cat ('foreign-lang-source', {name, tag}, lang_subtag); -- categorize it; tag appended to allow for multiple language categorization
else -- or is a recognized language (but has a three-character tag)
utilities.add_prop_cat ('foreign-lang-source-2', {lang_subtag}, lang_subtag); -- categorize it differently TODO: support multiple three-character tag categories per cs1|2 template?
end
elseif cfg.local_lang_cat_enable then -- when the language and this wiki's language are the same and categorization is enabled
utilities.add_prop_cat ('local-lang-source', {name, lang_subtag}); -- categorize it
end
else
name = lang; -- return whatever <lang> has so that we show something
utilities.set_message ('maint_unknown_lang'); -- add maint category if not already added
end
table.insert (language_list, name);
name = ''; -- so we can reuse it
end
name = utilities.make_sep_list (#language_list, language_list);
if (1 == #language_list) and (lang_subtag == cfg.this_wiki_code) then -- when only one language, find lang name in this wiki lang name; for |language=en-us, 'English' in 'American English'
return ''; -- if one language and that language is this wiki's return an empty string (no annotation)
end
return (" " .. wrap_msg ('language', name)); -- otherwise wrap with '(in ...)'
--[[ TODO: should only return blank or name rather than full list
so we can clean up the bunched parenthetical elements Language, Type, Format
]]
end
--[[-----------------------< S E T _ C S _ S T Y L E >--------------------------
Gets the default CS style configuration for the given mode.
Returns default separator and either postscript as passed in or the default.
In CS1, the default postscript and separator are '.'.
In CS2, the default postscript is the empty string and the default separator is ','.
]]
local function set_cs_style (postscript, mode)
if utilities.is_set(postscript) then
-- emit a maintenance message if user postscript is the default cs1 postscript
-- we catch the opposite case for cs2 in set_style
if mode == 'cs1' and postscript == cfg.presentation['ps_' .. mode] then
utilities.set_message ('maint_postscript');
end
else
postscript = cfg.presentation['ps_' .. mode];
end
return cfg.presentation['sep_' .. mode], postscript;
end
--[[--------------------------< S E T _ S T Y L E >-----------------------------
Sets the separator and postscript styles. Checks the |mode= first and the
#invoke CitationClass second. Removes the postscript if postscript == none.
]]
local function set_style (mode, postscript, cite_class)
local sep;
if 'cs2' == mode then
sep, postscript = set_cs_style (postscript, 'cs2');
elseif 'cs1' == mode then
sep, postscript = set_cs_style (postscript, 'cs1');
elseif 'citation' == cite_class then
sep, postscript = set_cs_style (postscript, 'cs2');
else
sep, postscript = set_cs_style (postscript, 'cs1');
end
if cfg.keywords_xlate[postscript:lower()] == 'none' then
-- emit a maintenance message if user postscript is the default cs2 postscript
-- we catch the opposite case for cs1 in set_cs_style
if 'cs2' == mode or 'citation' == cite_class then
utilities.set_message ('maint_postscript');
end
postscript = '';
end
return sep, postscript
end
--[=[-------------------------< I S _ P D F >-----------------------------------
Determines if a URL has the file extension that is one of the PDF file extensions
used by [[MediaWiki:Common.css]] when applying the PDF icon to external links.
returns true if file extension is one of the recognized extensions, else false
]=]
local function is_pdf (url)
return url:match ('%.pdf$') or url:match ('%.PDF$') or
url:match ('%.pdf[%?#]') or url:match ('%.PDF[%?#]') or
url:match ('%.PDF#') or url:match ('%.pdf#');
end
--[[--------------------------< S T Y L E _ F O R M A T >-----------------------
Applies CSS style to |format=, |chapter-format=, etc. Also emits an error message
if the format parameter does not have a matching URL parameter. If the format parameter
is not set and the URL contains a file extension that is recognized as a PDF document
by MediaWiki's commons.css, this code will set the format parameter to (PDF) with
the appropriate styling.
]]
local function style_format (format, url, fmt_param, url_param)
if utilities.is_set (format) then
format = utilities.wrap_style ('format', format); -- add leading space, parentheses, resize
if not utilities.is_set (url) then
utilities.set_message ('err_format_missing_url', {fmt_param, url_param}); -- add an error message
end
elseif is_pdf (url) then -- format is not set so if URL is a PDF file then
format = utilities.wrap_style ('format', 'PDF'); -- set format to PDF
else
format = ''; -- empty string for concatenation
end
return format;
end
--[[---------------------< G E T _ D I S P L A Y _ N A M E S >------------------
Returns a number that defines the number of names displayed for author and editor
name lists and a Boolean flag to indicate when et al. should be appended to the name list.
When the value assigned to |display-xxxxors= is a number greater than or equal to zero,
return the number and the previous state of the 'etal' flag (false by default
but may have been set to true if the name list contains some variant of the text 'et al.').
When the value assigned to |display-xxxxors= is the keyword 'etal', return a number
that is one greater than the number of authors in the list and set the 'etal' flag true.
This will cause the list_people() to display all of the names in the name list followed by 'et al.'
In all other cases, returns nil and the previous state of the 'etal' flag.
inputs:
max: A['DisplayAuthors'] or A['DisplayEditors']; a number or some flavor of etal
count: #a or #e
list_name: 'authors' or 'editors'
etal: author_etal or editor_etal
]]
local function get_display_names (max, count, list_name, etal, param)
if utilities.is_set (max) then
if 'etal' == max:lower():gsub("[ '%.]", '') then -- the :gsub() portion makes 'etal' from a variety of 'et al.' spellings and stylings
max = count + 1; -- number of authors + 1 so display all author name plus et al.
etal = true; -- overrides value set by extract_names()
elseif max:match ('^%d+$') then -- if is a string of numbers
max = tonumber (max); -- make it a number
if max >= count then -- if |display-xxxxors= value greater than or equal to number of authors/editors
utilities.set_message ('err_disp_name', {param, max}); -- add error message
max = nil;
end
else -- not a valid keyword or number
utilities.set_message ('err_disp_name', {param, max}); -- add error message
max = nil; -- unset; as if |display-xxxxors= had not been set
end
end
return max, etal;
end
--[[----------< E X T R A _ T E X T _ I N _ P A G E _ C H E C K >---------------
Adds error if |page=, |pages=, |quote-page=, |quote-pages= has what appears to be
some form of p. or pp. abbreviation in the first characters of the parameter content.
check page for extraneous p, p., pp, pp., pg, pg. at start of parameter value:
good pattern: '^P[^%.P%l]' matches when page begins PX or P# but not Px
where x and X are letters and # is a digit
bad pattern: '^[Pp][PpGg]' matches when page begins pp, pP, Pp, PP, pg, pG, Pg, PG
]]
local function extra_text_in_page_check (val, name)
if not val:match (cfg.vol_iss_pg_patterns.good_ppattern) then
for _, pattern in ipairs (cfg.vol_iss_pg_patterns.bad_ppatterns) do -- spin through the selected sequence table of patterns
if val:match (pattern) then -- when a match, error so
utilities.set_message ('err_extra_text_pages', name); -- add error message
return; -- and done
end
end
end
end
--[[--------------------------< E X T R A _ T E X T _ I N _ V O L _ I S S _ C H E C K >------------------------
Adds error if |volume= or |issue= has what appears to be some form of redundant 'type' indicator.
For |volume=:
'V.', or 'Vol.' (with or without the dot) abbreviations or 'Volume' in the first characters of the parameter
content (all case insensitive). 'V' and 'v' (without the dot) are presumed to be roman numerals so
are allowed.
For |issue=:
'No.', 'I.', 'Iss.' (with or without the dot) abbreviations, or 'Issue' in the first characters of the
parameter content (all case insensitive).
Single character values ('v', 'i', 'n') allowed when not followed by separator character ('.', ':', '=', or
whitespace character) – param values are trimmed of whitespace by MediaWiki before delivered to the module.
<val> is |volume= or |issue= parameter value
<name> is |volume= or |issue= parameter name for error message
<selector> is 'v' for |volume=, 'i' for |issue=
sets error message on failure; returns nothing
]]
local function extra_text_in_vol_iss_check (val, name, selector)
if not utilities.is_set (val) then
return;
end
local patterns = 'v' == selector and cfg.vol_iss_pg_patterns.vpatterns or cfg.vol_iss_pg_patterns.ipatterns;
local handler = 'v' == selector and 'err_extra_text_volume' or 'err_extra_text_issue';
val = val:lower(); -- force parameter value to lower case
for _, pattern in ipairs (patterns) do -- spin through the selected sequence table of patterns
if val:match (pattern) then -- when a match, error so
utilities.set_message (handler, name); -- add error message
return; -- and done
end
end
end
--[=[-------------------------< G E T _ V _ N A M E _ T A B L E >----------------------------------------------
split apart a |vauthors= or |veditors= parameter. This function allows for corporate names, wrapped in doubled
parentheses to also have commas; in the old version of the code, the doubled parentheses were included in the
rendered citation and in the metadata. Individual author names may be wikilinked
|vauthors=Jones AB, [[E. B. White|White EB]], ((Black, Brown, and Co.))
]=]
local function get_v_name_table (vparam, output_table, output_link_table)
local name_table = mw.text.split(vparam, "%s*,%s*"); -- names are separated by commas
local wl_type, label, link; -- wl_type not used here; just a placeholder
local i = 1;
while name_table[i] do
if name_table[i]:match ('^%(%(.*[^%)][^%)]$') then -- first segment of corporate with one or more commas; this segment has the opening doubled parentheses
local name = name_table[i];
i = i + 1; -- bump indexer to next segment
while name_table[i] do
name = name .. ', ' .. name_table[i]; -- concatenate with previous segments
if name_table[i]:match ('^.*%)%)$') then -- if this table member has the closing doubled parentheses
break; -- and done reassembling so
end
i = i + 1; -- bump indexer
end
table.insert (output_table, name); -- and add corporate name to the output table
table.insert (output_link_table, ''); -- no wikilink
else
wl_type, label, link = utilities.is_wikilink (name_table[i]); -- wl_type is: 0, no wl (text in label variable); 1, [[D]]; 2, [[L|D]]
table.insert (output_table, label); -- add this name
if 1 == wl_type then
table.insert (output_link_table, label); -- simple wikilink [[D]]
else
table.insert (output_link_table, link); -- no wikilink or [[L|D]]; add this link if there is one, else empty string
end
end
i = i + 1;
end
return output_table;
end
--[[--------------------------< P A R S E _ V A U T H O R S _ V E D I T O R S >--------------------------------
This function extracts author / editor names from |vauthors= or |veditors= and finds matching |xxxxor-maskn= and
|xxxxor-linkn= in args. It then returns a table of assembled names just as extract_names() does.
Author / editor names in |vauthors= or |veditors= must be in Vancouver system style. Corporate or institutional names
may sometimes be required and because such names will often fail the is_good_vanc_name() and other format compliance
tests, are wrapped in doubled parentheses ((corporate name)) to suppress the format tests.
Supports generational suffixes Jr, 2nd, 3rd, 4th–6th.
This function sets the Vancouver error when a required comma is missing and when there is a space between an author's initials.
]]
local function parse_vauthors_veditors (args, vparam, list_name)
local names = {}; -- table of names assembled from |vauthors=, |author-maskn=, |author-linkn=
local v_name_table = {};
local v_link_table = {}; -- when name is wikilinked, targets go in this table
local etal = false; -- return value set to true when we find some form of et al. vauthors parameter
local last, first, link, mask, suffix;
local corporate = false;
vparam, etal = name_has_etal (vparam, etal, true); -- find and remove variations on et al. do not categorize (do it here because et al. might have a period)
v_name_table = get_v_name_table (vparam, v_name_table, v_link_table); -- names are separated by commas
for i, v_name in ipairs(v_name_table) do
first = ''; -- set to empty string for concatenation and because it may have been set for previous author/editor
local accept_name;
v_name, accept_name = utilities.has_accept_as_written (v_name); -- remove accept-this-as-written markup when it wraps all of <v_name>
if accept_name then
last = v_name;
corporate = true; -- flag used in list_people()
elseif string.find(v_name, "%s") then
if v_name:find('[;%.]') then -- look for commonly occurring punctuation characters;
add_vanc_error (cfg.err_msg_supl.punctuation, i);
end
local lastfirstTable = {}
lastfirstTable = mw.text.split(v_name, "%s+")
first = table.remove(lastfirstTable); -- removes and returns value of last element in table which should be initials or generational suffix
if not mw.ustring.match (first, '^%u+$') then -- mw.ustring here so that later we will catch non-Latin characters
suffix = first; -- not initials so assume that whatever we got is a generational suffix
first = table.remove(lastfirstTable); -- get what should be the initials from the table
end
last = table.concat(lastfirstTable, ' ') -- returns a string that is the concatenation of all other names that are not initials and generational suffix
if not utilities.is_set (last) then
first = ''; -- unset
last = v_name; -- last empty because something wrong with first
add_vanc_error (cfg.err_msg_supl.name, i);
end
if mw.ustring.match (last, '%a+%s+%u+%s+%a+') then
add_vanc_error (cfg.err_msg_supl['missing comma'], i); -- matches last II last; the case when a comma is missing
end
if mw.ustring.match (v_name, ' %u %u$') then -- this test is in the wrong place TODO: move or replace with a more appropriate test
add_vanc_error (cfg.err_msg_supl.initials, i); -- matches a space between two initials
end
else
last = v_name; -- last name or single corporate name? Doesn't support multiword corporate names? do we need this?
end
if utilities.is_set (first) then
if not mw.ustring.match (first, "^%u?%u$") then -- first shall contain one or two upper-case letters, nothing else
add_vanc_error (cfg.err_msg_supl.initials, i); -- too many initials; mixed case initials (which may be ok Romanization); hyphenated initials
end
is_good_vanc_name (last, first, suffix, i); -- check first and last before restoring the suffix which may have a non-Latin digit
if utilities.is_set (suffix) then
first = first .. ' ' .. suffix; -- if there was a suffix concatenate with the initials
suffix = ''; -- unset so we don't add this suffix to all subsequent names
end
else
if not corporate then
is_good_vanc_name (last, '', nil, i);
end
end
link = utilities.select_one ( args, cfg.aliases[list_name .. '-Link'], 'err_redundant_parameters', i ) or v_link_table[i];
mask = utilities.select_one ( args, cfg.aliases[list_name .. '-Mask'], 'err_redundant_parameters', i );
names[i] = {last = last, first = first, link = link, mask = mask, corporate = corporate}; -- add this assembled name to our names list
end
return names, etal; -- all done, return our list of names
end
--[[--------------------------< S E L E C T _ A U T H O R _ E D I T O R _ S O U R C E >------------------------
Select one of |authors=, |authorn= / |lastn / firstn=, or |vauthors= as the source of the author name list or
select one of |editorn= / editor-lastn= / |editor-firstn= or |veditors= as the source of the editor name list.
Only one of these appropriate three will be used. The hierarchy is: |authorn= (and aliases) highest and |authors= lowest;
|editorn= (and aliases) highest and |veditors= lowest (support for |editors= withdrawn)
When looking for |authorn= / |editorn= parameters, test |xxxxor1= and |xxxxor2= (and all of their aliases); stops after the second
test which mimicks the test used in extract_names() when looking for a hole in the author name list. There may be a better
way to do this, I just haven't discovered what that way is.
Emits an error message when more than one xxxxor name source is provided.
In this function, vxxxxors = vauthors or veditors; xxxxors = authors as appropriate.
]]
local function select_author_editor_source (vxxxxors, xxxxors, args, list_name)
local lastfirst = false;
if utilities.select_one ( args, cfg.aliases[list_name .. '-Last'], 'none', 1 ) or -- do this twice in case we have a |first1= without a |last1=; this ...
utilities.select_one ( args, cfg.aliases[list_name .. '-First'], 'none', 1 ) or -- ... also catches the case where |first= is used with |vauthors=
utilities.select_one ( args, cfg.aliases[list_name .. '-Last'], 'none', 2 ) or
utilities.select_one ( args, cfg.aliases[list_name .. '-First'], 'none', 2 ) then
lastfirst = true;
end
if (utilities.is_set (vxxxxors) and true == lastfirst) or -- these are the three error conditions
(utilities.is_set (vxxxxors) and utilities.is_set (xxxxors)) or
(true == lastfirst and utilities.is_set (xxxxors)) then
local err_name;
if 'AuthorList' == list_name then -- figure out which name should be used in error message
err_name = 'author';
else
err_name = 'editor';
end
utilities.set_message ('err_redundant_parameters', err_name .. '-name-list parameters'); -- add error message
end
if true == lastfirst then return 1 end; -- return a number indicating which author name source to use
if utilities.is_set (vxxxxors) then return 2 end;
if utilities.is_set (xxxxors) then return 3 end;
return 1; -- no authors so return 1; this allows missing author name test to run in case there is a first without last
end
--[[--------------------------< I S _ V A L I D _ P A R A M E T E R _ V A L U E >------------------------------
This function is used to validate a parameter's assigned value for those parameters that have only a limited number
of allowable values (yes, y, true, live, dead, etc.). When the parameter value has not been assigned a value (missing
or empty in the source template) the function returns the value specified by ret_val. If the parameter value is one
of the list of allowed values returns the translated value; else, emits an error message and returns the value
specified by ret_val.
TODO: explain <invert>
]]
local function is_valid_parameter_value (value, name, possible, ret_val, invert)
if not utilities.is_set (value) then
return ret_val; -- an empty parameter is ok
end
if (not invert and utilities.in_array (value, possible)) then -- normal; <value> is in <possible> table
return cfg.keywords_xlate[value]; -- return translation of parameter keyword
elseif invert and not utilities.in_array (value, possible) then -- invert; <value> is not in <possible> table
return value; -- return <value> as it is
else
utilities.set_message ('err_invalid_param_val', {name, value}); -- not an allowed value so add error message
return ret_val;
end
end
--[[--------------------------< T E R M I N A T E _ N A M E _ L I S T >----------------------------------------
This function terminates a name list (author, contributor, editor) with a separator character (sepc) and a space
when the last character is not a sepc character or when the last three characters are not sepc followed by two
closing square brackets (close of a wikilink). When either of these is true, the name_list is terminated with a
single space character.
]]
local function terminate_name_list (name_list, sepc)
if (string.sub (name_list, -3, -1) == sepc .. '. ') then -- if already properly terminated
return name_list; -- just return the name list
elseif (string.sub (name_list, -1, -1) == sepc) or (string.sub (name_list, -3, -1) == sepc .. ']]') then -- if last name in list ends with sepc char
return name_list .. " "; -- don't add another
else
return name_list .. sepc .. ' '; -- otherwise terminate the name list
end
end
--[[-------------------------< F O R M A T _ V O L U M E _ I S S U E >----------------------------------------
returns the concatenation of the formatted volume and issue parameters as a single string; or formatted volume
or formatted issue, or an empty string if neither are set.
]]
local function format_volume_issue (volume, issue, cite_class, origin, sepc, lower)
if not utilities.is_set (volume) and not utilities.is_set (issue) then
return '';
end
-- same condition as in format_pages_sheets()
local is_journal = 'journal' == cite_class or (utilities.in_array (cite_class, {'citation', 'map', 'interview'}) and 'journal' == origin);
local is_numeric_vol = volume and (volume:match ('^[MDCLXVI]+$') or volume:match ('^%d+$')); -- is only uppercase roman numerals or only digits?
local is_long_vol = volume and (4 < mw.ustring.len(volume)); -- is |volume= value longer than 4 characters?
if volume and (not is_numeric_vol and is_long_vol) then -- when not all digits or Roman numerals, is |volume= longer than 4 characters?
utilities.add_prop_cat ('long-vol'); -- yes, add properties cat
end
if is_journal then -- journal-style formatting
local vol = '';
if utilities.is_set (volume) then
if is_numeric_vol then -- |volume= value all digits or all uppercase Roman numerals?
vol = utilities.substitute (cfg.presentation['vol-bold'], {sepc, volume}); -- render in bold face
elseif is_long_vol then -- not all digits or Roman numerals; longer than 4 characters?
vol = utilities.substitute (cfg.messages['j-vol'], {sepc, utilities.hyphen_to_dash (volume)}); -- not bold
else -- four or fewer characters
vol = utilities.substitute (cfg.presentation['vol-bold'], {sepc, utilities.hyphen_to_dash (volume)}); -- bold
end
end
if utilities.is_set (issue) then
return vol .. utilities.substitute (cfg.messages['j-issue'], issue);
end
return vol;
end
if 'podcast' == cite_class and utilities.is_set (issue) then
return wrap_msg ('issue', {sepc, issue}, lower);
end
-- all other types of citation
if utilities.is_set (volume) and utilities.is_set (issue) then
return wrap_msg ('vol-no', {sepc, utilities.hyphen_to_dash (volume), issue}, lower);
elseif utilities.is_set (volume) then
return wrap_msg ('vol', {sepc, utilities.hyphen_to_dash (volume)}, lower);
else
return wrap_msg ('issue', {sepc, issue}, lower);
end
end
--[[-------------------------< F O R M A T _ P A G E S _ S H E E T S >-----------------------------------------
adds static text to one of |page(s)= or |sheet(s)= values and returns it with all of the others set to empty strings.
The return order is:
page, pages, sheet, sheets
Singular has priority over plural when both are provided.
]]
local function format_pages_sheets (page, pages, sheet, sheets, cite_class, origin, sepc, nopp, lower)
if 'map' == cite_class then -- only cite map supports sheet(s) as in-source locators
if utilities.is_set (sheet) then
if 'journal' == origin then
return '', '', wrap_msg ('j-sheet', sheet, lower), '';
else
return '', '', wrap_msg ('sheet', {sepc, sheet}, lower), '';
end
elseif utilities.is_set (sheets) then
if 'journal' == origin then
return '', '', '', wrap_msg ('j-sheets', sheets, lower);
else
return '', '', '', wrap_msg ('sheets', {sepc, sheets}, lower);
end
end
end
local is_journal = 'journal' == cite_class or (utilities.in_array (cite_class, {'citation', 'map', 'interview'}) and 'journal' == origin);
if utilities.is_set (page) then
if is_journal then
return utilities.substitute (cfg.messages['j-page(s)'], page), '', '', '';
elseif not nopp then
return utilities.substitute (cfg.messages['p-prefix'], {sepc, page}), '', '', '';
else
return utilities.substitute (cfg.messages['nopp'], {sepc, page}), '', '', '';
end
elseif utilities.is_set (pages) then
if is_journal then
return utilities.substitute (cfg.messages['j-page(s)'], pages), '', '', '';
elseif tonumber(pages) ~= nil and not nopp then -- if pages is only digits, assume a single page number
return '', utilities.substitute (cfg.messages['p-prefix'], {sepc, pages}), '', '';
elseif not nopp then
return '', utilities.substitute (cfg.messages['pp-prefix'], {sepc, pages}), '', '';
else
return '', utilities.substitute (cfg.messages['nopp'], {sepc, pages}), '', '';
end
end
return '', '', '', ''; -- return empty strings
end
--[[--------------------------< I N S O U R C E _ L O C _ G E T >----------------------------------------------
returns one of the in-source locators: page, pages, or at.
If any of these are interwiki links to Wikisource, returns the label portion of the interwiki-link as plain text
for use in COinS. This COinS thing is done because here we convert an interwiki-link to an external link and
add an icon span around that; get_coins_pages() doesn't know about the span. TODO: should it?
TODO: add support for sheet and sheets?; streamline;
TODO: make it so that this function returns only one of the three as the single in-source (the return value assigned
to a new name)?
]]
local function insource_loc_get (page, page_orig, pages, pages_orig, at)
local ws_url, ws_label, coins_pages, L; -- for Wikisource interwiki-links; TODO: this corrupts page metadata (span remains in place after cleanup; fix there?)
if utilities.is_set (page) then
if utilities.is_set (pages) or utilities.is_set (at) then
pages = ''; -- unset the others
at = '';
end
extra_text_in_page_check (page, page_orig); -- emit error message when |page= value begins with what looks like p., pp., etc.
ws_url, ws_label, L = wikisource_url_make (page); -- make ws URL from |page= interwiki link; link portion L becomes tooltip label
if ws_url then
page = external_link (ws_url, ws_label .. ' ', 'ws link in page'); -- space char after label to move icon away from in-source text; TODO: a better way to do this?
page = utilities.substitute (cfg.presentation['interwiki-icon'], {cfg.presentation['class-wikisource'], L, page});
coins_pages = ws_label;
end
elseif utilities.is_set (pages) then
if utilities.is_set (at) then
at = ''; -- unset
end
extra_text_in_page_check (pages, pages_orig); -- emit error message when |page= value begins with what looks like p., pp., etc.
ws_url, ws_label, L = wikisource_url_make (pages); -- make ws URL from |pages= interwiki link; link portion L becomes tooltip label
if ws_url then
pages = external_link (ws_url, ws_label .. ' ', 'ws link in pages'); -- space char after label to move icon away from in-source text; TODO: a better way to do this?
pages = utilities.substitute (cfg.presentation['interwiki-icon'], {cfg.presentation['class-wikisource'], L, pages});
coins_pages = ws_label;
end
elseif utilities.is_set (at) then
ws_url, ws_label, L = wikisource_url_make (at); -- make ws URL from |at= interwiki link; link portion L becomes tooltip label
if ws_url then
at = external_link (ws_url, ws_label .. ' ', 'ws link in at'); -- space char after label to move icon away from in-source text; TODO: a better way to do this?
at = utilities.substitute (cfg.presentation['interwiki-icon'], {cfg.presentation['class-wikisource'], L, at});
coins_pages = ws_label;
end
end
return page, pages, at, coins_pages;
end
--[[--------------------------< I S _ U N I Q U E _ A R C H I V E _ U R L >------------------------------------
add error message when |archive-url= value is same as |url= or chapter-url= (or alias...) value
]]
local function is_unique_archive_url (archive, url, c_url, source, date)
if utilities.is_set (archive) then
if archive == url or archive == c_url then
utilities.set_message ('err_bad_url', {utilities.wrap_style ('parameter', source)}); -- add error message
return '', ''; -- unset |archive-url= and |archive-date= because same as |url= or |chapter-url=
end
end
return archive, date;
end
--[=[-------------------------< A R C H I V E _ U R L _ C H E C K >--------------------------------------------
Check archive.org URLs to make sure they at least look like they are pointing at valid archives and not to the
save snapshot URL or to calendar pages. When the archive URL is 'https://web.archive.org/save/' (or http://...)
archive.org saves a snapshot of the target page in the URL. That is something that Wikipedia should not allow
unwitting readers to do.
When the archive.org URL does not have a complete timestamp, archive.org chooses a snapshot according to its own
algorithm or provides a calendar 'search' result. [[WP:ELNO]] discourages links to search results.
This function looks at the value assigned to |archive-url= and returns empty strings for |archive-url= and
|archive-date= and an error message when:
|archive-url= holds an archive.org save command URL
|archive-url= is an archive.org URL that does not have a complete timestamp (YYYYMMDDhhmmss 14 digits) in the
correct place
otherwise returns |archive-url= and |archive-date=
There are two mostly compatible archive.org URLs:
//web.archive.org/<timestamp>... -- the old form
//web.archive.org/web/<timestamp>... -- the new form
The old form does not support or map to the new form when it contains a display flag. There are four identified flags
('id_', 'js_', 'cs_', 'im_') but since archive.org ignores others following the same form (two letters and an underscore)
we don't check for these specific flags but we do check the form.
This function supports a preview mode. When the article is rendered in preview mode, this function may return a modified
archive URL:
for save command errors, return undated wildcard (/*/)
for timestamp errors when the timestamp has a wildcard, return the URL unmodified
for timestamp errors when the timestamp does not have a wildcard, return with timestamp limited to six digits plus wildcard (/yyyymm*/)
]=]
local function archive_url_check (url, date)
local err_msg = ''; -- start with the error message empty
local path, timestamp, flag; -- portions of the archive.org URL
if (not url:match('//web%.archive%.org/')) and (not url:match('//liveweb%.archive%.org/')) then -- also deprecated liveweb Wayback machine URL
return url, date; -- not an archive.org archive, return ArchiveURL and ArchiveDate
end
if url:match('//web%.archive%.org/save/') then -- if a save command URL, we don't want to allow saving of the target page
err_msg = cfg.err_msg_supl.save;
url = url:gsub ('(//web%.archive%.org)/save/', '%1/*/', 1); -- for preview mode: modify ArchiveURL
elseif url:match('//liveweb%.archive%.org/') then
err_msg = cfg.err_msg_supl.liveweb;
else
path, timestamp, flag = url:match('//web%.archive%.org/([^%d]*)(%d+)([^/]*)/'); -- split out some of the URL parts for evaluation
if not path then -- malformed in some way; pattern did not match
err_msg = cfg.err_msg_supl.timestamp;
elseif 14 ~= timestamp:len() then -- path and flag optional, must have 14-digit timestamp here
err_msg = cfg.err_msg_supl.timestamp;
if '*' ~= flag then
local replacement = timestamp:match ('^%d%d%d%d%d%d') or timestamp:match ('^%d%d%d%d'); -- get the first 6 (YYYYMM) or first 4 digits (YYYY)
if replacement then -- nil if there aren't at least 4 digits (year)
replacement = replacement .. string.rep ('0', 14 - replacement:len()); -- year or yearmo (4 or 6 digits) zero-fill to make 14-digit timestamp
url=url:gsub ('(//web%.archive%.org/[^%d]*)%d[^/]*', '%1' .. replacement .. '*', 1) -- for preview, modify ts to 14 digits plus splat for calendar display
end
end
elseif utilities.is_set (path) and 'web/' ~= path then -- older archive URLs do not have the extra 'web/' path element
err_msg = cfg.err_msg_supl.path;
elseif utilities.is_set (flag) and not utilities.is_set (path) then -- flag not allowed with the old form URL (without the 'web/' path element)
err_msg = cfg.err_msg_supl.flag;
elseif utilities.is_set (flag) and not flag:match ('%a%a_') then -- flag if present must be two alpha characters and underscore (requires 'web/' path element)
err_msg = cfg.err_msg_supl.flag;
else
return url, date; -- return ArchiveURL and ArchiveDate
end
end
-- if here, something not right so
utilities.set_message ('err_archive_url', {err_msg}); -- add error message and
if is_preview_mode then
return url, date; -- preview mode so return ArchiveURL and ArchiveDate
else
return '', ''; -- return empty strings for ArchiveURL and ArchiveDate
end
end
--[[--------------------------< P L A C E _ C H E C K >--------------------------------------------------------
check |place=, |publication-place=, |location= to see if these params include digits. This function added because
many editors misuse location to specify the in-source location (|page(s)= and |at= are supposed to do that)
returns the original parameter value without modification; added maint cat when parameter value contains digits
]]
local function place_check (param_val)
if not utilities.is_set (param_val) then -- parameter empty or omitted
return param_val; -- return that empty state
end
if mw.ustring.find (param_val, '%d') then -- not empty, are there digits in the parameter value
utilities.set_message ('maint_location'); -- yep, add maint cat
end
return param_val; -- and done
end
--[[--------------------------< I S _ A R C H I V E D _ C O P Y >----------------------------------------------
compares |title= to 'Archived copy' (placeholder added by bots that can't find proper title); if matches, return true; nil else
]]
local function is_archived_copy (title)
title = mw.ustring.lower(title); -- switch title to lower case
if title:find (cfg.special_case_translation.archived_copy.en) then -- if title is 'Archived copy'
return true;
elseif cfg.special_case_translation.archived_copy['local'] then
if mw.ustring.find (title, cfg.special_case_translation.archived_copy['local']) then -- mw.ustring() because might not be Latin script
return true;
end
end
end
--[[--------------------------< C I T A T I O N 0 >------------------------------------------------------------
This is the main function doing the majority of the citation formatting.
]]
local function citation0( config, args )
--[[
Load Input Parameters
The argument_wrapper facilitates the mapping of multiple aliases to single internal variable.
]]
local A = argument_wrapper ( args );
local i
-- Pick out the relevant fields from the arguments. Different citation templates
-- define different field names for the same underlying things.
local author_etal;
local a = {}; -- authors list from |lastn= / |firstn= pairs or |vauthors=
local Authors;
local NameListStyle = is_valid_parameter_value (A['NameListStyle'], A:ORIGIN('NameListStyle'), cfg.keywords_lists['name-list-style'], '');
local Collaboration = A['Collaboration'];
do -- to limit scope of selected
local selected = select_author_editor_source (A['Vauthors'], A['Authors'], args, 'AuthorList');
if 1 == selected then
a, author_etal = extract_names (args, 'AuthorList'); -- fetch author list from |authorn= / |lastn= / |firstn=, |author-linkn=, and |author-maskn=
elseif 2 == selected then
NameListStyle = 'vanc'; -- override whatever |name-list-style= might be
a, author_etal = parse_vauthors_veditors (args, args.vauthors, 'AuthorList'); -- fetch author list from |vauthors=, |author-linkn=, and |author-maskn=
elseif 3 == selected then
Authors = A['Authors']; -- use content of |authors=
if 'authors' == A:ORIGIN('Authors') then -- but add a maint cat if the parameter is |authors=
utilities.set_message ('maint_authors'); -- because use of this parameter is discouraged; what to do about the aliases is a TODO:
end
end
if utilities.is_set (Collaboration) then
author_etal = true; -- so that |display-authors=etal not required
end
end
local editor_etal;
local e = {}; -- editors list from |editor-lastn= / |editor-firstn= pairs or |veditors=
do -- to limit scope of selected
local selected = select_author_editor_source (A['Veditors'], nil, args, 'EditorList'); -- support for |editors= withdrawn
if 1 == selected then
e, editor_etal = extract_names (args, 'EditorList'); -- fetch editor list from |editorn= / |editor-lastn= / |editor-firstn=, |editor-linkn=, and |editor-maskn=
elseif 2 == selected then
NameListStyle = 'vanc'; -- override whatever |name-list-style= might be
e, editor_etal = parse_vauthors_veditors (args, args.veditors, 'EditorList'); -- fetch editor list from |veditors=, |editor-linkn=, and |editor-maskn=
end
end
local Chapter = A['Chapter']; -- done here so that we have access to |contribution= from |chapter= aliases
local Chapter_origin = A:ORIGIN ('Chapter');
local Contribution; -- because contribution is required for contributor(s)
if 'contribution' == Chapter_origin then
Contribution = Chapter; -- get the name of the contribution
end
local c = {}; -- contributors list from |contributor-lastn= / contributor-firstn= pairs
if utilities.in_array (config.CitationClass, {"book", "citation"}) and not utilities.is_set (A['Periodical']) then -- |contributor= and |contribution= only supported in book cites
c = extract_names (args, 'ContributorList'); -- fetch contributor list from |contributorn= / |contributor-lastn=, -firstn=, -linkn=, -maskn=
if 0 < #c then
if not utilities.is_set (Contribution) then -- |contributor= requires |contribution=
utilities.set_message ('err_contributor_missing_required_param', 'contribution'); -- add missing contribution error message
c = {}; -- blank the contributors' table; it is used as a flag later
end
if 0 == #a then -- |contributor= requires |author=
utilities.set_message ('err_contributor_missing_required_param', 'author'); -- add missing author error message
c = {}; -- blank the contributors' table; it is used as a flag later
end
end
else -- if not a book cite
if utilities.select_one (args, cfg.aliases['ContributorList-Last'], 'err_redundant_parameters', 1 ) then -- are there contributor name list parameters?
utilities.set_message ('err_contributor_ignored'); -- add contributor ignored error message
end
Contribution = nil; -- unset
end
local Title = A['Title'];
local TitleLink = A['TitleLink'];
local auto_select = ''; -- default is auto
local accept_link;
TitleLink, accept_link = utilities.has_accept_as_written (TitleLink, true); -- test for accept-this-as-written markup
if (not accept_link) and utilities.in_array (TitleLink, {'none', 'pmc', 'doi'}) then -- check for special keywords
auto_select = TitleLink; -- remember selection for later
TitleLink = ''; -- treat as if |title-link= would have been empty
end
TitleLink = link_title_ok (TitleLink, A:ORIGIN ('TitleLink'), Title, 'title'); -- check for wiki-markup in |title-link= or wiki-markup in |title= when |title-link= is set
local Section = ''; -- {{cite map}} only; preset to empty string for concatenation if not used
if 'map' == config.CitationClass and 'section' == Chapter_origin then
Section = A['Chapter']; -- get |section= from |chapter= alias list; |chapter= and the other aliases not supported in {{cite map}}
Chapter = ''; -- unset for now; will be reset later from |map= if present
end
local Periodical = A['Periodical'];
local Periodical_origin = '';
if utilities.is_set (Periodical) then
Periodical_origin = A:ORIGIN('Periodical'); -- get the name of the periodical parameter
local i;
Periodical, i = utilities.strip_apostrophe_markup (Periodical); -- strip apostrophe markup so that metadata isn't contaminated
if i then -- non-zero when markup was stripped so emit an error message
utilities.set_message ('err_apostrophe_markup', {Periodical_origin});
end
end
if 'mailinglist' == config.CitationClass then -- special case for {{cite mailing list}}
if utilities.is_set (Periodical) and utilities.is_set (A ['MailingList']) then -- both set emit an error TODO: make a function for this and similar?
utilities.set_message ('err_redundant_parameters', {utilities.wrap_style ('parameter', Periodical_origin) .. ' and ' .. utilities.wrap_style ('parameter', 'mailinglist')});
end
Periodical = A ['MailingList']; -- error or no, set Periodical to |mailinglist= value because this template is {{cite mailing list}}
Periodical_origin = A:ORIGIN('MailingList');
end
local ScriptPeriodical = A['ScriptPeriodical'];
-- web and news not tested for now because of
-- Wikipedia:Administrators%27_noticeboard#Is_there_a_semi-automated_tool_that_could_fix_these_annoying_"Cite_Web"_errors?
if not (utilities.is_set (Periodical) or utilities.is_set (ScriptPeriodical)) then -- 'periodical' templates require periodical parameter
-- local p = {['journal'] = 'journal', ['magazine'] = 'magazine', ['news'] = 'newspaper', ['web'] = 'website'}; -- for error message
local p = {['journal'] = 'journal', ['magazine'] = 'magazine'}; -- for error message
if p[config.CitationClass] then
utilities.set_message ('err_missing_periodical', {config.CitationClass, p[config.CitationClass]});
end
end
local Volume;
local ScriptPeriodical_origin = A:ORIGIN('ScriptPeriodical');
if 'citation' == config.CitationClass then
if utilities.is_set (Periodical) then
if not utilities.in_array (Periodical_origin, cfg.citation_no_volume_t) then -- {{citation}} does not render |volume= when these parameters are used
Volume = A['Volume']; -- but does for all other 'periodicals'
end
elseif utilities.is_set (ScriptPeriodical) then
if 'script-website' ~= ScriptPeriodical_origin then -- {{citation}} does not render volume for |script-website=
Volume = A['Volume']; -- but does for all other 'periodicals'
end
else
Volume = A['Volume']; -- and does for non-'periodical' cites
end
elseif utilities.in_array (config.CitationClass, cfg.templates_using_volume) then -- render |volume= for cs1 according to the configuration settings
Volume = A['Volume'];
end
extra_text_in_vol_iss_check (Volume, A:ORIGIN ('Volume'), 'v');
local Issue;
if 'citation' == config.CitationClass then
if utilities.is_set (Periodical) and utilities.in_array (Periodical_origin, cfg.citation_issue_t) then -- {{citation}} may render |issue= when these parameters are used
Issue = utilities.hyphen_to_dash (A['Issue']);
end
elseif utilities.in_array (config.CitationClass, cfg.templates_using_issue) then -- conference & map books do not support issue; {{citation}} listed here because included in settings table
if not (utilities.in_array (config.CitationClass, {'conference', 'map', 'citation'}) and not (utilities.is_set (Periodical) or utilities.is_set (ScriptPeriodical))) then
Issue = utilities.hyphen_to_dash (A['Issue']);
end
end
extra_text_in_vol_iss_check (Issue, A:ORIGIN ('Issue'), 'i');
local Page;
local Pages;
local At;
if not utilities.in_array (config.CitationClass, cfg.templates_not_using_page) then
Page = A['Page'];
Pages = utilities.hyphen_to_dash (A['Pages']);
At = A['At'];
end
local Edition = A['Edition'];
local PublicationPlace = place_check (A['PublicationPlace'], A:ORIGIN('PublicationPlace'));
local Place = place_check (A['Place'], A:ORIGIN('Place'));
local PublisherName = A['PublisherName'];
local PublisherName_origin = A:ORIGIN('PublisherName');
if utilities.is_set (PublisherName) then
local i = 0;
PublisherName, i = utilities.strip_apostrophe_markup (PublisherName); -- strip apostrophe markup so that metadata isn't contaminated; publisher is never italicized
if i then -- non-zero when markup was stripped so emit an error message
utilities.set_message ('err_apostrophe_markup', {PublisherName_origin});
end
end
local Newsgroup = A['Newsgroup']; -- TODO: strip apostrophe markup?
local Newsgroup_origin = A:ORIGIN('Newsgroup');
if 'newsgroup' == config.CitationClass then
if utilities.is_set (PublisherName) then -- general use parameter |publisher= not allowed in cite newsgroup
utilities.set_message ('err_parameter_ignored', {PublisherName_origin});
end
PublisherName = nil; -- ensure that this parameter is unset for the time being; will be used again after COinS
end
local URL = A['URL']; -- TODO: better way to do this for URL, ChapterURL, and MapURL?
local UrlAccess = is_valid_parameter_value (A['UrlAccess'], A:ORIGIN('UrlAccess'), cfg.keywords_lists['url-access'], nil);
if not utilities.is_set (URL) and utilities.is_set (UrlAccess) then
UrlAccess = nil;
utilities.set_message ('err_param_access_requires_param', 'url');
end
local ChapterURL = A['ChapterURL'];
local ChapterUrlAccess = is_valid_parameter_value (A['ChapterUrlAccess'], A:ORIGIN('ChapterUrlAccess'), cfg.keywords_lists['url-access'], nil);
if not utilities.is_set (ChapterURL) and utilities.is_set (ChapterUrlAccess) then
ChapterUrlAccess = nil;
utilities.set_message ('err_param_access_requires_param', {A:ORIGIN('ChapterUrlAccess'):gsub ('%-access', '')});
end
local MapUrlAccess = is_valid_parameter_value (A['MapUrlAccess'], A:ORIGIN('MapUrlAccess'), cfg.keywords_lists['url-access'], nil);
if not utilities.is_set (A['MapURL']) and utilities.is_set (MapUrlAccess) then
MapUrlAccess = nil;
utilities.set_message ('err_param_access_requires_param', {'map-url'});
end
local this_page = mw.title.getCurrentTitle(); -- also used for COinS and for language
local no_tracking_cats = is_valid_parameter_value (A['NoTracking'], A:ORIGIN('NoTracking'), cfg.keywords_lists['yes_true_y'], nil);
-- check this page to see if it is in one of the namespaces that cs1 is not supposed to add to the error categories
if not utilities.is_set (no_tracking_cats) then -- ignore if we are already not going to categorize this page
if utilities.in_array (this_page.nsText, cfg.uncategorized_namespaces) then
no_tracking_cats = "true"; -- set no_tracking_cats
end
for _, v in ipairs (cfg.uncategorized_subpages) do -- cycle through page name patterns
if this_page.text:match (v) then -- test page name against each pattern
no_tracking_cats = "true"; -- set no_tracking_cats
break; -- bail out if one is found
end
end
end
-- check for extra |page=, |pages= or |at= parameters. (also sheet and sheets while we're at it)
utilities.select_one (args, {'page', 'p', 'pp', 'pages', 'at', 'sheet', 'sheets'}, 'err_redundant_parameters'); -- this is a dummy call simply to get the error message and category
local coins_pages;
Page, Pages, At, coins_pages = insource_loc_get (Page, A:ORIGIN('Page'), Pages, A:ORIGIN('Pages'), At);
local NoPP = is_valid_parameter_value (A['NoPP'], A:ORIGIN('NoPP'), cfg.keywords_lists['yes_true_y'], nil);
if utilities.is_set (PublicationPlace) and utilities.is_set (Place) then -- both |publication-place= and |place= (|location=) allowed if different
utilities.add_prop_cat ('location-test'); -- add property cat to evaluate how often PublicationPlace and Place are used together
if PublicationPlace == Place then
Place = ''; -- unset; don't need both if they are the same
end
elseif not utilities.is_set (PublicationPlace) and utilities.is_set (Place) then -- when only |place= (|location=) is set ...
PublicationPlace = Place; -- promote |place= (|location=) to |publication-place
end
if PublicationPlace == Place then Place = ''; end -- don't need both if they are the same
local URL_origin = A:ORIGIN('URL'); -- get name of parameter that holds URL
local ChapterURL_origin = A:ORIGIN('ChapterURL'); -- get name of parameter that holds ChapterURL
local ScriptChapter = A['ScriptChapter'];
local ScriptChapter_origin = A:ORIGIN ('ScriptChapter');
local Format = A['Format'];
local ChapterFormat = A['ChapterFormat'];
local TransChapter = A['TransChapter'];
local TransChapter_origin = A:ORIGIN ('TransChapter');
local TransTitle = A['TransTitle'];
local ScriptTitle = A['ScriptTitle'];
--[[
Parameter remapping for cite encyclopedia:
When the citation has these parameters:
|encyclopedia= and |title= then map |title= to |article= and |encyclopedia= to |title=
|encyclopedia= and |article= then map |encyclopedia= to |title=
|trans-title= maps to |trans-chapter= when |title= is re-mapped
|url= maps to |chapter-url= when |title= is remapped
All other combinations of |encyclopedia=, |title=, and |article= are not modified
]]
local Encyclopedia = A['Encyclopedia']; -- used as a flag by this module and by ~/COinS
if utilities.is_set (Encyclopedia) then -- emit error message when Encyclopedia set but template is other than {{cite encyclopedia}} or {{citation}}
if 'encyclopaedia' ~= config.CitationClass and 'citation' ~= config.CitationClass then
utilities.set_message ('err_parameter_ignored', {A:ORIGIN ('Encyclopedia')});
Encyclopedia = nil; -- unset because not supported by this template
end
end
if ('encyclopaedia' == config.CitationClass) or ('citation' == config.CitationClass and utilities.is_set (Encyclopedia)) then
if utilities.is_set (Periodical) and utilities.is_set (Encyclopedia) then -- when both set emit an error TODO: make a function for this and similar?
utilities.set_message ('err_redundant_parameters', {utilities.wrap_style ('parameter', A:ORIGIN ('Encyclopedia')) .. ' and ' .. utilities.wrap_style ('parameter', Periodical_origin)});
end
if utilities.is_set (Encyclopedia) then
Periodical = Encyclopedia; -- error or no, set Periodical to Encyclopedia; allow periodical without encyclopedia
Periodical_origin = A:ORIGIN ('Encyclopedia');
end
if utilities.is_set (Periodical) then -- Periodical is set when |encyclopedia= is set
if utilities.is_set (Title) or utilities.is_set (ScriptTitle) then
if not utilities.is_set (Chapter) then
Chapter = Title; -- |encyclopedia= and |title= are set so map |title= to |article= and |encyclopedia= to |title=
ScriptChapter = ScriptTitle;
ScriptChapter_origin = A:ORIGIN('ScriptTitle')
TransChapter = TransTitle;
ChapterURL = URL;
ChapterURL_origin = URL_origin;
ChapterUrlAccess = UrlAccess;
if not utilities.is_set (ChapterURL) and utilities.is_set (TitleLink) then
Chapter = utilities.make_wikilink (TitleLink, Chapter);
end
Title = Periodical;
ChapterFormat = Format;
Periodical = ''; -- redundant so unset
TransTitle = '';
URL = '';
Format = '';
TitleLink = '';
ScriptTitle = '';
end
elseif utilities.is_set (Chapter) or utilities.is_set (ScriptChapter) then -- |title= not set
Title = Periodical; -- |encyclopedia= set and |article= set so map |encyclopedia= to |title=
Periodical = ''; -- redundant so unset
end
end
end
-- special case for cite techreport.
local ID = A['ID'];
if (config.CitationClass == "techreport") then -- special case for cite techreport
if utilities.is_set (A['Number']) then -- cite techreport uses 'number', which other citations alias to 'issue'
if not utilities.is_set (ID) then -- can we use ID for the "number"?
ID = A['Number']; -- yes, use it
else -- ID has a value so emit error message
utilities.set_message ('err_redundant_parameters', {utilities.wrap_style ('parameter', 'id') .. ' and ' .. utilities.wrap_style ('parameter', 'number')});
end
end
end
-- Account for the oddity that is {{cite conference}}, before generation of COinS data.
local ChapterLink -- = A['ChapterLink']; -- deprecated as a parameter but still used internally by cite episode
local Conference = A['Conference'];
local BookTitle = A['BookTitle'];
local TransTitle_origin = A:ORIGIN ('TransTitle');
if 'conference' == config.CitationClass then
if utilities.is_set (BookTitle) then
Chapter = Title;
Chapter_origin = 'title';
-- ChapterLink = TitleLink; -- |chapter-link= is deprecated
ChapterURL = URL;
ChapterUrlAccess = UrlAccess;
ChapterURL_origin = URL_origin;
URL_origin = '';
ChapterFormat = Format;
TransChapter = TransTitle;
TransChapter_origin = TransTitle_origin;
Title = BookTitle;
Format = '';
-- TitleLink = '';
TransTitle = '';
URL = '';
end
elseif 'speech' ~= config.CitationClass then
Conference = ''; -- not cite conference or cite speech so make sure this is empty string
end
-- CS1/2 mode
local Mode = is_valid_parameter_value (A['Mode'], A:ORIGIN('Mode'), cfg.keywords_lists['mode'], '');
-- separator character and postscript
local sepc, PostScript = set_style (Mode:lower(), A['PostScript'], config.CitationClass);
-- controls capitalization of certain static text
local use_lowercase = ( sepc == ',' );
-- cite map oddities
local Cartography = "";
local Scale = "";
local Sheet = A['Sheet'] or '';
local Sheets = A['Sheets'] or '';
if config.CitationClass == "map" then
if utilities.is_set (Chapter) then --TODO: make a function for this and similar?
utilities.set_message ('err_redundant_parameters', {utilities.wrap_style ('parameter', 'map') .. ' and ' .. utilities.wrap_style ('parameter', Chapter_origin)}); -- add error message
end
Chapter = A['Map'];
Chapter_origin = A:ORIGIN('Map');
ChapterURL = A['MapURL'];
ChapterURL_origin = A:ORIGIN('MapURL');
TransChapter = A['TransMap'];
ScriptChapter = A['ScriptMap']
ScriptChapter_origin = A:ORIGIN('ScriptMap')
ChapterUrlAccess = MapUrlAccess;
ChapterFormat = A['MapFormat'];
Cartography = A['Cartography'];
if utilities.is_set ( Cartography ) then
Cartography = sepc .. " " .. wrap_msg ('cartography', Cartography, use_lowercase);
end
Scale = A['Scale'];
if utilities.is_set ( Scale ) then
Scale = sepc .. " " .. Scale;
end
end
-- Account for the oddities that are {{cite episode}} and {{cite serial}}, before generation of COinS data.
local Series = A['Series'];
if 'episode' == config.CitationClass or 'serial' == config.CitationClass then
local SeriesLink = A['SeriesLink'];
SeriesLink = link_title_ok (SeriesLink, A:ORIGIN ('SeriesLink'), Series, 'series'); -- check for wiki-markup in |series-link= or wiki-markup in |series= when |series-link= is set
local Network = A['Network'];
local Station = A['Station'];
local s, n = {}, {};
-- do common parameters first
if utilities.is_set (Network) then table.insert(n, Network); end
if utilities.is_set (Station) then table.insert(n, Station); end
ID = table.concat(n, sepc .. ' ');
if 'episode' == config.CitationClass then -- handle the oddities that are strictly {{cite episode}}
local Season = A['Season'];
local SeriesNumber = A['SeriesNumber'];
if utilities.is_set (Season) and utilities.is_set (SeriesNumber) then -- these are mutually exclusive so if both are set TODO: make a function for this and similar?
utilities.set_message ('err_redundant_parameters', {utilities.wrap_style ('parameter', 'season') .. ' and ' .. utilities.wrap_style ('parameter', 'seriesno')}); -- add error message
SeriesNumber = ''; -- unset; prefer |season= over |seriesno=
end
-- assemble a table of parts concatenated later into Series
if utilities.is_set (Season) then table.insert(s, wrap_msg ('season', Season, use_lowercase)); end
if utilities.is_set (SeriesNumber) then table.insert(s, wrap_msg ('seriesnum', SeriesNumber, use_lowercase)); end
if utilities.is_set (Issue) then table.insert(s, wrap_msg ('episode', Issue, use_lowercase)); end
Issue = ''; -- unset because this is not a unique parameter
Chapter = Title; -- promote title parameters to chapter
ScriptChapter = ScriptTitle;
ScriptChapter_origin = A:ORIGIN('ScriptTitle');
ChapterLink = TitleLink; -- alias |episode-link=
TransChapter = TransTitle;
ChapterURL = URL;
ChapterUrlAccess = UrlAccess;
ChapterURL_origin = URL_origin;
ChapterFormat = Format;
Title = Series; -- promote series to title
TitleLink = SeriesLink;
Series = table.concat(s, sepc .. ' '); -- this is concatenation of season, seriesno, episode number
if utilities.is_set (ChapterLink) and not utilities.is_set (ChapterURL) then -- link but not URL
Chapter = utilities.make_wikilink (ChapterLink, Chapter);
elseif utilities.is_set (ChapterLink) and utilities.is_set (ChapterURL) then -- if both are set, URL links episode;
Series = utilities.make_wikilink (ChapterLink, Series);
end
URL = ''; -- unset
TransTitle = '';
ScriptTitle = '';
Format = '';
else -- now oddities that are cite serial
Issue = ''; -- unset because this parameter no longer supported by the citation/core version of cite serial
Chapter = A['Episode']; -- TODO: make |episode= available to cite episode someday?
if utilities.is_set (Series) and utilities.is_set (SeriesLink) then
Series = utilities.make_wikilink (SeriesLink, Series);
end
Series = utilities.wrap_style ('italic-title', Series); -- series is italicized
end
end
-- end of {{cite episode}} stuff
-- handle type parameter for those CS1 citations that have default values
local TitleType = A['TitleType'];
local Degree = A['Degree'];
if utilities.in_array (config.CitationClass, {'AV-media-notes', 'interview', 'mailinglist', 'map', 'podcast', 'pressrelease', 'report', 'speech', 'techreport', 'thesis'}) then
TitleType = set_titletype (config.CitationClass, TitleType);
if utilities.is_set (Degree) and "Thesis" == TitleType then -- special case for cite thesis
TitleType = Degree .. ' ' .. cfg.title_types ['thesis']:lower();
end
end
if utilities.is_set (TitleType) then -- if type parameter is specified
TitleType = utilities.substitute ( cfg.messages['type'], TitleType); -- display it in parentheses
-- TODO: Hack on TitleType to fix bunched parentheses problem
end
-- legacy: promote PublicationDate to Date if neither Date nor Year are set.
local Date = A['Date'];
local Date_origin; -- to hold the name of parameter promoted to Date; required for date error messaging
local PublicationDate = A['PublicationDate'];
local Year = A['Year'];
if not utilities.is_set (Date) then
Date = Year; -- promote Year to Date
Year = nil; -- make nil so Year as empty string isn't used for CITEREF
if not utilities.is_set (Date) and utilities.is_set (PublicationDate) then -- use PublicationDate when |date= and |year= are not set
Date = PublicationDate; -- promote PublicationDate to Date
PublicationDate = ''; -- unset, no longer needed
Date_origin = A:ORIGIN('PublicationDate'); -- save the name of the promoted parameter
else
Date_origin = A:ORIGIN('Year'); -- save the name of the promoted parameter
end
else
Date_origin = A:ORIGIN('Date'); -- not a promotion; name required for error messaging
end
if PublicationDate == Date then PublicationDate = ''; end -- if PublicationDate is same as Date, don't display in rendered citation
--[[
Go test all of the date-holding parameters for valid MOS:DATE format and make sure that dates are real dates. This must be done before we do COinS because here is where
we get the date used in the metadata.
Date validation supporting code is in Module:Citation/CS1/Date_validation
]]
local DF = is_valid_parameter_value (A['DF'], A:ORIGIN('DF'), cfg.keywords_lists['df'], '');
if not utilities.is_set (DF) then
DF = cfg.global_df; -- local |df= if present overrides global df set by {{use xxx date}} template
end
local ArchiveURL;
local ArchiveDate;
local ArchiveFormat = A['ArchiveFormat'];
ArchiveURL, ArchiveDate = archive_url_check (A['ArchiveURL'], A['ArchiveDate'])
ArchiveFormat = style_format (ArchiveFormat, ArchiveURL, 'archive-format', 'archive-url');
ArchiveURL, ArchiveDate = is_unique_archive_url (ArchiveURL, URL, ChapterURL, A:ORIGIN('ArchiveURL'), ArchiveDate); -- add error message when URL or ChapterURL == ArchiveURL
local AccessDate = A['AccessDate'];
local LayDate = A['LayDate'];
local COinS_date = {}; -- holds date info extracted from |date= for the COinS metadata by Module:Date verification
local DoiBroken = A['DoiBroken'];
local Embargo = A['Embargo'];
local anchor_year; -- used in the CITEREF identifier
do -- create defined block to contain local variables error_message, date_parameters_list, mismatch
local error_message = '';
-- AirDate has been promoted to Date so not necessary to check it
local date_parameters_list = {
['access-date'] = {val = AccessDate, name = A:ORIGIN ('AccessDate')},
['archive-date'] = {val = ArchiveDate, name = A:ORIGIN ('ArchiveDate')},
['date'] = {val = Date, name = Date_origin},
['doi-broken-date'] = {val = DoiBroken, name = A:ORIGIN ('DoiBroken')},
['pmc-embargo-date'] = {val = Embargo, name = A:ORIGIN ('Embargo')},
['lay-date'] = {val = LayDate, name = A:ORIGIN ('LayDate')},
['publication-date'] = {val = PublicationDate, name = A:ORIGIN ('PublicationDate')},
['year'] = {val = Year, name = A:ORIGIN ('Year')},
};
local error_list = {};
anchor_year, Embargo = validation.dates(date_parameters_list, COinS_date, error_list);
-- start temporary Julian / Gregorian calendar uncertainty categorization
if COinS_date.inter_cal_cat then
utilities.add_prop_cat ('jul-greg-uncertainty');
end
-- end temporary Julian / Gregorian calendar uncertainty categorization
if utilities.is_set (Year) and utilities.is_set (Date) then -- both |date= and |year= not normally needed;
validation.year_date_check (Year, A:ORIGIN ('Year'), Date, A:ORIGIN ('Date'), error_list);
end
if 0 == #error_list then -- error free dates only; 0 when error_list is empty
local modified = false; -- flag
if utilities.is_set (DF) then -- if we need to reformat dates
modified = validation.reformat_dates (date_parameters_list, DF); -- reformat to DF format, use long month names if appropriate
end
if true == validation.date_hyphen_to_dash (date_parameters_list) then -- convert hyphens to dashes where appropriate
modified = true;
utilities.set_message ('maint_date_format'); -- hyphens were converted so add maint category
end
-- for those wikis that can and want to have English date names translated to the local language; not supported at en.wiki
if cfg.date_name_auto_xlate_enable and validation.date_name_xlate (date_parameters_list, cfg.date_digit_auto_xlate_enable ) then
utilities.set_message ('maint_date_auto_xlated'); -- add maint cat
modified = true;
end
if modified then -- if the date_parameters_list values were modified
AccessDate = date_parameters_list['access-date'].val; -- overwrite date holding parameters with modified values
ArchiveDate = date_parameters_list['archive-date'].val;
Date = date_parameters_list['date'].val;
DoiBroken = date_parameters_list['doi-broken-date'].val;
LayDate = date_parameters_list['lay-date'].val;
PublicationDate = date_parameters_list['publication-date'].val;
end
else
utilities.set_message ('err_bad_date', {utilities.make_sep_list (#error_list, error_list)}); -- add this error message
end
end -- end of do
local ID_list = {}; -- sequence table of rendered identifiers
local ID_list_coins = {}; -- table of identifiers and their values from args; key is same as cfg.id_handlers's key
local Class = A['Class']; -- arxiv class identifier
local ID_support = {
{A['ASINTLD'], 'ASIN', 'err_asintld_missing_asin', A:ORIGIN ('ASINTLD')},
{DoiBroken, 'DOI', 'err_doibroken_missing_doi', A:ORIGIN ('DoiBroken')},
{Embargo, 'PMC', 'err_embargo_missing_pmc', A:ORIGIN ('Embargo')},
}
ID_list, ID_list_coins = identifiers.identifier_lists_get (args, {DoiBroken = DoiBroken, ASINTLD = A['ASINTLD'], Embargo = Embargo, Class = Class}, ID_support);
-- Account for the oddities that are {{cite arxiv}}, {{cite biorxiv}}, {{cite citeseerx}}, {{cite ssrn}}, before generation of COinS data.
if utilities.in_array (config.CitationClass, whitelist.preprint_template_list) then
if not utilities.is_set (ID_list_coins[config.CitationClass:upper()]) then -- |arxiv= or |eprint= required for cite arxiv; |biorxiv= & |citeseerx= required for their templates
utilities.set_message ('err_' .. config.CitationClass .. '_missing'); -- add error message
end
Periodical = ({['arxiv'] = 'arXiv', ['biorxiv'] = 'bioRxiv', ['citeseerx'] = 'CiteSeerX', ['ssrn'] = 'Social Science Research Network'})[config.CitationClass];
end
-- Link the title of the work if no |url= was provided, but we have a |pmc= or a |doi= with |doi-access=free
if config.CitationClass == "journal" and not utilities.is_set (URL) and not utilities.is_set (TitleLink) and not utilities.in_array (cfg.keywords_xlate[Title], {'off', 'none'}) then -- TODO: remove 'none' once existing citations have been switched to 'off', so 'none' can be used as token for "no title" instead
if 'none' ~= cfg.keywords_xlate[auto_select] then -- if auto-linking not disabled
if identifiers.auto_link_urls[auto_select] then -- manual selection
URL = identifiers.auto_link_urls[auto_select]; -- set URL to be the same as identifier's external link
URL_origin = cfg.id_handlers[auto_select:upper()].parameters[1]; -- set URL_origin to parameter name for use in error message if citation is missing a |title=
elseif identifiers.auto_link_urls['pmc'] then -- auto-select PMC
URL = identifiers.auto_link_urls['pmc']; -- set URL to be the same as the PMC external link if not embargoed
URL_origin = cfg.id_handlers['PMC'].parameters[1]; -- set URL_origin to parameter name for use in error message if citation is missing a |title=
elseif identifiers.auto_link_urls['doi'] then -- auto-select DOI
URL = identifiers.auto_link_urls['doi'];
URL_origin = cfg.id_handlers['DOI'].parameters[1];
end
end
if utilities.is_set (URL) then -- set when using an identifier-created URL
if utilities.is_set (AccessDate) then -- |access-date= requires |url=; identifier-created URL is not |url=
utilities.set_message ('err_accessdate_missing_url'); -- add an error message
AccessDate = ''; -- unset
end
if utilities.is_set (ArchiveURL) then -- |archive-url= requires |url=; identifier-created URL is not |url=
utilities.set_message ('err_archive_missing_url'); -- add an error message
ArchiveURL = ''; -- unset
end
end
end
-- At this point fields may be nil if they weren't specified in the template use. We can use that fact.
-- Test if citation has no title
if not utilities.is_set (Title) and not utilities.is_set (TransTitle) and not utilities.is_set (ScriptTitle) then -- has special case for cite episode
utilities.set_message ('err_citation_missing_title', {'episode' == config.CitationClass and 'series' or 'title'});
end
if utilities.in_array (cfg.keywords_xlate[Title], {'off', 'none'}) and
utilities.in_array (config.CitationClass, {'journal', 'citation'}) and
(utilities.is_set (Periodical) or utilities.is_set (ScriptPeriodical)) and
('journal' == Periodical_origin or 'script-journal' == ScriptPeriodical_origin) then -- special case for journal cites
Title = ''; -- set title to empty string
utilities.set_message ('maint_untitled'); -- add maint cat
end
-- COinS metadata (see <http://ocoins.info/>) for automated parsing of citation information.
-- handle the oddity that is cite encyclopedia and {{citation |encyclopedia=something}}. Here we presume that
-- when Periodical, Title, and Chapter are all set, then Periodical is the book (encyclopedia) title, Title
-- is the article title, and Chapter is a section within the article. So, we remap
local coins_chapter = Chapter; -- default assuming that remapping not required
local coins_title = Title; -- et tu
if 'encyclopaedia' == config.CitationClass or ('citation' == config.CitationClass and utilities.is_set (Encyclopedia)) then
if utilities.is_set (Chapter) and utilities.is_set (Title) and utilities.is_set (Periodical) then -- if all are used then
coins_chapter = Title; -- remap
coins_title = Periodical;
end
end
local coins_author = a; -- default for coins rft.au
if 0 < #c then -- but if contributor list
coins_author = c; -- use that instead
end
local QuotePage = A['QuotePage'];
local QuotePages = utilities.hyphen_to_dash (A['QuotePages']);
-- this is the function call to COinS()
local OCinSoutput = metadata.COinS({
['Periodical'] = utilities.strip_apostrophe_markup (Periodical), -- no markup in the metadata
['Encyclopedia'] = Encyclopedia, -- just a flag; content ignored by ~/COinS
['Chapter'] = metadata.make_coins_title (coins_chapter, ScriptChapter), -- Chapter and ScriptChapter stripped of bold / italic / accept-as-written markup
['Degree'] = Degree; -- cite thesis only
['Title'] = metadata.make_coins_title (coins_title, ScriptTitle), -- Title and ScriptTitle stripped of bold / italic / accept-as-written markup
['PublicationPlace'] = PublicationPlace,
['Date'] = COinS_date.rftdate, -- COinS_date has correctly formatted date if Date is valid;
['Season'] = COinS_date.rftssn,
['Quarter'] = COinS_date.rftquarter,
['Chron'] = COinS_date.rftchron or (not COinS_date.rftdate and Date) or '', -- chron but if not set and invalid date format use Date; keep this last bit?
['Series'] = Series,
['Volume'] = Volume,
['Issue'] = Issue,
['Pages'] = coins_pages or metadata.get_coins_pages (first_set ({Sheet, Sheets, Page, Pages, At, QuotePage, QuotePages}, 7)), -- pages stripped of external links
['Edition'] = Edition,
['PublisherName'] = PublisherName or Newsgroup, -- any apostrophe markup already removed from PublisherName
['URL'] = first_set ({ChapterURL, URL}, 2),
['Authors'] = coins_author,
['ID_list'] = ID_list_coins,
['RawPage'] = this_page.prefixedText,
}, config.CitationClass);
-- Account for the oddities that are {{cite arxiv}}, {{cite biorxiv}}, {{cite citeseerx}}, and {{cite ssrn}} AFTER generation of COinS data.
if utilities.in_array (config.CitationClass, whitelist.preprint_template_list) then -- we have set rft.jtitle in COinS to arXiv, bioRxiv, CiteSeerX, or ssrn now unset so it isn't displayed
Periodical = ''; -- periodical not allowed in these templates; if article has been published, use cite journal
end
-- special case for cite newsgroup. Do this after COinS because we are modifying Publishername to include some static text
if 'newsgroup' == config.CitationClass and utilities.is_set (Newsgroup) then
PublisherName = utilities.substitute (cfg.messages['newsgroup'], external_link( 'news:' .. Newsgroup, Newsgroup, Newsgroup_origin, nil ));
end
local Editors;
local EditorCount; -- used only for choosing {ed.) or (eds.) annotation at end of editor name-list
local Contributors; -- assembled contributors name list
local contributor_etal;
local Translators; -- assembled translators name list
local translator_etal;
local t = {}; -- translators list from |translator-lastn= / translator-firstn= pairs
t = extract_names (args, 'TranslatorList'); -- fetch translator list from |translatorn= / |translator-lastn=, -firstn=, -linkn=, -maskn=
local Interviewers;
local interviewers_list = {};
interviewers_list = extract_names (args, 'InterviewerList'); -- process preferred interviewers parameters
local interviewer_etal;
-- Now perform various field substitutions.
-- We also add leading spaces and surrounding markup and punctuation to the
-- various parts of the citation, but only when they are non-nil.
do
local last_first_list;
local control = {
format = NameListStyle, -- empty string or 'vanc'
maximum = nil, -- as if display-authors or display-editors not set
mode = Mode
};
do -- do editor name list first because the now unsupported coauthors used to modify control table
control.maximum , editor_etal = get_display_names (A['DisplayEditors'], #e, 'editors', editor_etal, A:ORIGIN ('DisplayEditors'));
Editors, EditorCount = list_people (control, e, editor_etal);
if 1 == EditorCount and (true == editor_etal or 1 < #e) then -- only one editor displayed but includes etal then
EditorCount = 2; -- spoof to display (eds.) annotation
end
end
do -- now do interviewers
control.maximum, interviewer_etal = get_display_names (A['DisplayInterviewers'], #interviewers_list, 'interviewers', interviewer_etal, A:ORIGIN ('DisplayInterviewers'));
Interviewers = list_people (control, interviewers_list, interviewer_etal);
end
do -- now do translators
control.maximum, translator_etal = get_display_names (A['DisplayTranslators'], #t, 'translators', translator_etal, A:ORIGIN ('DisplayTranslators'));
Translators = list_people (control, t, translator_etal);
end
do -- now do contributors
control.maximum, contributor_etal = get_display_names (A['DisplayContributors'], #c, 'contributors', contributor_etal, A:ORIGIN ('DisplayContributors'));
Contributors = list_people (control, c, contributor_etal);
end
do -- now do authors
control.maximum, author_etal = get_display_names (A['DisplayAuthors'], #a, 'authors', author_etal, A:ORIGIN ('DisplayAuthors'));
last_first_list = list_people (control, a, author_etal);
if utilities.is_set (Authors) then
Authors, author_etal = name_has_etal (Authors, author_etal, false, 'authors'); -- find and remove variations on et al.
if author_etal then
Authors = Authors .. ' ' .. cfg.messages['et al']; -- add et al. to authors parameter
end
else
Authors = last_first_list; -- either an author name list or an empty string
end
end -- end of do
if utilities.is_set (Authors) and utilities.is_set (Collaboration) then
Authors = Authors .. ' (' .. Collaboration .. ')'; -- add collaboration after et al.
end
end
local ConferenceFormat = A['ConferenceFormat'];
local ConferenceURL = A['ConferenceURL'];
ConferenceFormat = style_format (ConferenceFormat, ConferenceURL, 'conference-format', 'conference-url');
Format = style_format (Format, URL, 'format', 'url');
-- special case for chapter format so no error message or cat when chapter not supported
if not (utilities.in_array (config.CitationClass, {'web', 'news', 'journal', 'magazine', 'pressrelease', 'podcast', 'newsgroup', 'arxiv', 'biorxiv', 'citeseerx', 'ssrn'}) or
('citation' == config.CitationClass and (utilities.is_set (Periodical) or utilities.is_set (ScriptPeriodical)) and not utilities.is_set (Encyclopedia))) then
ChapterFormat = style_format (ChapterFormat, ChapterURL, 'chapter-format', 'chapter-url');
end
if not utilities.is_set (URL) then
if utilities.in_array (config.CitationClass, {"web", "podcast", "mailinglist"}) or -- |url= required for cite web, cite podcast, and cite mailinglist
('citation' == config.CitationClass and ('website' == Periodical_origin or 'script-website' == ScriptPeriodical_origin)) then -- and required for {{citation}} with |website= or |script-website=
utilities.set_message ('err_cite_web_url');
end
-- do we have |accessdate= without either |url= or |chapter-url=?
if utilities.is_set (AccessDate) and not utilities.is_set (ChapterURL) then -- ChapterURL may be set when URL is not set;
utilities.set_message ('err_accessdate_missing_url');
AccessDate = '';
end
end
local UrlStatus = is_valid_parameter_value (A['UrlStatus'], A:ORIGIN('UrlStatus'), cfg.keywords_lists['url-status'], '');
local OriginalURL
local OriginalURL_origin
local OriginalFormat
local OriginalAccess;
UrlStatus = UrlStatus:lower(); -- used later when assembling archived text
if utilities.is_set ( ArchiveURL ) then
if utilities.is_set (ChapterURL) then -- if chapter-url= is set apply archive url to it
OriginalURL = ChapterURL; -- save copy of source chapter's url for archive text
OriginalURL_origin = ChapterURL_origin; -- name of |chapter-url= parameter for error messages
OriginalFormat = ChapterFormat; -- and original |chapter-format=
if 'live' ~= UrlStatus then
ChapterURL = ArchiveURL -- swap-in the archive's URL
ChapterURL_origin = A:ORIGIN('ArchiveURL') -- name of |archive-url= parameter for error messages
ChapterFormat = ArchiveFormat or ''; -- swap in archive's format
ChapterUrlAccess = nil; -- restricted access levels do not make sense for archived URLs
end
elseif utilities.is_set (URL) then
OriginalURL = URL; -- save copy of original source URL
OriginalURL_origin = URL_origin; -- name of URL parameter for error messages
OriginalFormat = Format; -- and original |format=
OriginalAccess = UrlAccess;
if 'live' ~= UrlStatus then -- if URL set then |archive-url= applies to it
URL = ArchiveURL -- swap-in the archive's URL
URL_origin = A:ORIGIN('ArchiveURL') -- name of archive URL parameter for error messages
Format = ArchiveFormat or ''; -- swap in archive's format
UrlAccess = nil; -- restricted access levels do not make sense for archived URLs
end
end
elseif utilities.is_set (UrlStatus) then -- if |url-status= is set when |archive-url= is not set
utilities.set_message ('maint_url_status'); -- add maint cat
end
if utilities.in_array (config.CitationClass, {'web', 'news', 'journal', 'magazine', 'pressrelease', 'podcast', 'newsgroup', 'arxiv', 'biorxiv', 'citeseerx', 'ssrn'}) or -- if any of the 'periodical' cites except encyclopedia
('citation' == config.CitationClass and (utilities.is_set (Periodical) or utilities.is_set (ScriptPeriodical)) and not utilities.is_set (Encyclopedia)) then
local chap_param;
if utilities.is_set (Chapter) then -- get a parameter name from one of these chapter related meta-parameters
chap_param = A:ORIGIN ('Chapter')
elseif utilities.is_set (TransChapter) then
chap_param = A:ORIGIN ('TransChapter')
elseif utilities.is_set (ChapterURL) then
chap_param = A:ORIGIN ('ChapterURL')
elseif utilities.is_set (ScriptChapter) then
chap_param = ScriptChapter_origin;
else utilities.is_set (ChapterFormat)
chap_param = A:ORIGIN ('ChapterFormat')
end
if utilities.is_set (chap_param) then -- if we found one
utilities.set_message ('err_chapter_ignored', {chap_param}); -- add error message
Chapter = ''; -- and set them to empty string to be safe with concatenation
TransChapter = '';
ChapterURL = '';
ScriptChapter = '';
ChapterFormat = '';
end
else -- otherwise, format chapter / article title
local no_quotes = false; -- default assume that we will be quoting the chapter parameter value
if utilities.is_set (Contribution) and 0 < #c then -- if this is a contribution with contributor(s)
if utilities.in_array (Contribution:lower(), cfg.keywords_lists.contribution) then -- and a generic contribution title
no_quotes = true; -- then render it unquoted
end
end
Chapter = format_chapter_title (ScriptChapter, ScriptChapter_origin, Chapter, Chapter_origin, TransChapter, TransChapter_origin, ChapterURL, ChapterURL_origin, no_quotes, ChapterUrlAccess); -- Contribution is also in Chapter
if utilities.is_set (Chapter) then
Chapter = Chapter .. ChapterFormat ;
if 'map' == config.CitationClass and utilities.is_set (TitleType) then
Chapter = Chapter .. ' ' .. TitleType; -- map annotation here; not after title
end
Chapter = Chapter .. sepc .. ' ';
elseif utilities.is_set (ChapterFormat) then -- |chapter= not set but |chapter-format= is so ...
Chapter = ChapterFormat .. sepc .. ' '; -- ... ChapterFormat has error message, we want to see it
end
end
-- Format main title
local plain_title = false;
local accept_title;
Title, accept_title = utilities.has_accept_as_written (Title, true); -- remove accept-this-as-written markup when it wraps all of <Title>
if accept_title and ('' == Title) then -- only support forced empty for now "(())"
Title = cfg.messages['notitle']; -- replace by predefined "No title" message
-- TODO: utilities.set_message ( 'err_redundant_parameters', ...); -- issue proper error message instead of muting
ScriptTitle = ''; -- just mute for now
TransTitle = ''; -- just mute for now
plain_title = true; -- suppress text decoration for descriptive title
utilities.set_message ('maint_untitled'); -- add maint cat
end
if not accept_title then -- <Title> not wrapped in accept-as-written markup
if '...' == Title:sub (-3) then -- if ellipsis is the last three characters of |title=
Title = Title:gsub ('(%.%.%.)%.+$', '%1'); -- limit the number of dots to three
elseif not mw.ustring.find (Title, '%.%s*%a%.$') and -- end of title is not a 'dot-(optional space-)letter-dot' initialism ...
not mw.ustring.find (Title, '%s+%a%.$') then -- ...and not a 'space-letter-dot' initial (''Allium canadense'' L.)
Title = mw.ustring.gsub(Title, '%' .. sepc .. '$', ''); -- remove any trailing separator character; sepc and ms.ustring() here for languages that use multibyte separator characters
end
if utilities.is_set (ArchiveURL) and is_archived_copy (Title) then
utilities.set_message ('maint_archived_copy'); -- add maintenance category before we modify the content of Title
end
if is_generic ('generic_titles', Title) then
utilities.set_message ('err_generic_title'); -- set an error message
end
end
if (not plain_title) and (utilities.in_array (config.CitationClass, {'web', 'news', 'journal', 'magazine', 'pressrelease', 'podcast', 'newsgroup', 'mailinglist', 'interview', 'arxiv', 'biorxiv', 'citeseerx', 'ssrn'}) or
('citation' == config.CitationClass and (utilities.is_set (Periodical) or utilities.is_set (ScriptPeriodical)) and not utilities.is_set (Encyclopedia)) or
('map' == config.CitationClass and (utilities.is_set (Periodical) or utilities.is_set (ScriptPeriodical)))) then -- special case for cite map when the map is in a periodical treat as an article
Title = kern_quotes (Title); -- if necessary, separate title's leading and trailing quote marks from module provided quote marks
Title = utilities.wrap_style ('quoted-title', Title);
Title = script_concatenate (Title, ScriptTitle, 'script-title'); -- <bdi> tags, lang attribute, categorization, etc.; must be done after title is wrapped
TransTitle = utilities.wrap_style ('trans-quoted-title', TransTitle );
elseif plain_title or ('report' == config.CitationClass) then -- no styling for cite report and descriptive titles (otherwise same as above)
Title = script_concatenate (Title, ScriptTitle, 'script-title'); -- <bdi> tags, lang attribute, categorization, etc.; must be done after title is wrapped
TransTitle = utilities.wrap_style ('trans-quoted-title', TransTitle ); -- for cite report, use this form for trans-title
else
Title = utilities.wrap_style ('italic-title', Title);
Title = script_concatenate (Title, ScriptTitle, 'script-title'); -- <bdi> tags, lang attribute, categorization, etc.; must be done after title is wrapped
TransTitle = utilities.wrap_style ('trans-italic-title', TransTitle);
end
if utilities.is_set (TransTitle) then
if utilities.is_set (Title) then
TransTitle = " " .. TransTitle;
else
utilities.set_message ('err_trans_missing_title', {'title'});
end
end
if utilities.is_set (Title) then -- TODO: is this the right place to be making Wikisource URLs?
if utilities.is_set (TitleLink) and utilities.is_set (URL) then
utilities.set_message ('err_wikilink_in_url'); -- set an error message because we can't have both
TitleLink = ''; -- unset
end
if not utilities.is_set (TitleLink) and utilities.is_set (URL) then
Title = external_link (URL, Title, URL_origin, UrlAccess) .. TransTitle .. Format;
URL = ''; -- unset these because no longer needed
Format = "";
elseif utilities.is_set (TitleLink) and not utilities.is_set (URL) then
local ws_url;
ws_url = wikisource_url_make (TitleLink); -- ignore ws_label return; not used here
if ws_url then
Title = external_link (ws_url, Title .. ' ', 'ws link in title-link'); -- space char after Title to move icon away from italic text; TODO: a better way to do this?
Title = utilities.substitute (cfg.presentation['interwiki-icon'], {cfg.presentation['class-wikisource'], TitleLink, Title});
Title = Title .. TransTitle;
else
Title = utilities.make_wikilink (TitleLink, Title) .. TransTitle;
end
else
local ws_url, ws_label, L; -- Title has italic or quote markup by the time we get here which causes is_wikilink() to return 0 (not a wikilink)
ws_url, ws_label, L = wikisource_url_make (Title:gsub('^[\'"]*(.-)[\'"]*$', '%1')); -- make ws URL from |title= interwiki link (strip italic or quote markup); link portion L becomes tooltip label
if ws_url then
Title = Title:gsub ('%b[]', ws_label); -- replace interwiki link with ws_label to retain markup
Title = external_link (ws_url, Title .. ' ', 'ws link in title'); -- space char after Title to move icon away from italic text; TODO: a better way to do this?
Title = utilities.substitute (cfg.presentation['interwiki-icon'], {cfg.presentation['class-wikisource'], L, Title});
Title = Title .. TransTitle;
else
Title = Title .. TransTitle;
end
end
else
Title = TransTitle;
end
if utilities.is_set (Place) then
Place = " " .. wrap_msg ('written', Place, use_lowercase) .. sepc .. " ";
end
local ConferenceURL_origin = A:ORIGIN('ConferenceURL'); -- get name of parameter that holds ConferenceURL
if utilities.is_set (Conference) then
if utilities.is_set (ConferenceURL) then
Conference = external_link( ConferenceURL, Conference, ConferenceURL_origin, nil );
end
Conference = sepc .. " " .. Conference .. ConferenceFormat;
elseif utilities.is_set (ConferenceURL) then
Conference = sepc .. " " .. external_link( ConferenceURL, nil, ConferenceURL_origin, nil );
end
local Position = '';
if not utilities.is_set (Position) then
local Minutes = A['Minutes'];
local Time = A['Time'];
if utilities.is_set (Minutes) then
if utilities.is_set (Time) then --TODO: make a function for this and similar?
utilities.set_message ('err_redundant_parameters', {utilities.wrap_style ('parameter', 'minutes') .. ' and ' .. utilities.wrap_style ('parameter', 'time')});
end
Position = " " .. Minutes .. " " .. cfg.messages['minutes'];
else
if utilities.is_set (Time) then
local TimeCaption = A['TimeCaption']
if not utilities.is_set (TimeCaption) then
TimeCaption = cfg.messages['event'];
if sepc ~= '.' then
TimeCaption = TimeCaption:lower();
end
end
Position = " " .. TimeCaption .. " " .. Time;
end
end
else
Position = " " .. Position;
At = '';
end
Page, Pages, Sheet, Sheets = format_pages_sheets (Page, Pages, Sheet, Sheets, config.CitationClass, Periodical_origin, sepc, NoPP, use_lowercase);
At = utilities.is_set (At) and (sepc .. " " .. At) or "";
Position = utilities.is_set (Position) and (sepc .. " " .. Position) or "";
if config.CitationClass == 'map' then
local Sections = A['Sections']; -- Section (singular) is an alias of Chapter so set earlier
local Inset = A['Inset'];
if utilities.is_set ( Inset ) then
Inset = sepc .. " " .. wrap_msg ('inset', Inset, use_lowercase);
end
if utilities.is_set ( Sections ) then
Section = sepc .. " " .. wrap_msg ('sections', Sections, use_lowercase);
elseif utilities.is_set ( Section ) then
Section = sepc .. " " .. wrap_msg ('section', Section, use_lowercase);
end
At = At .. Inset .. Section;
end
local Others = A['Others'];
if utilities.is_set (Others) and 0 == #a and 0 == #e then -- add maint cat when |others= has value and used without |author=, |editor=
if config.CitationClass == "AV-media-notes"
or config.CitationClass == "audio-visual" then -- special maint for AV/M which has a lot of 'false' positives right now
utilities.set_message ('maint_others_avm')
else
utilities.set_message ('maint_others');
end
end
Others = utilities.is_set (Others) and (sepc .. " " .. Others) or "";
if utilities.is_set (Translators) then
Others = safe_join ({sepc .. ' ', wrap_msg ('translated', Translators, use_lowercase), Others}, sepc);
end
if utilities.is_set (Interviewers) then
Others = safe_join ({sepc .. ' ', wrap_msg ('interview', Interviewers, use_lowercase), Others}, sepc);
end
local TitleNote = A['TitleNote'];
TitleNote = utilities.is_set (TitleNote) and (sepc .. " " .. TitleNote) or "";
if utilities.is_set (Edition) then
if Edition:match ('%f[%a][Ee]d%n?%.?$') or Edition:match ('%f[%a][Ee]dition$') then -- Ed, ed, Ed., ed., Edn, edn, Edn., edn.
utilities.set_message ('err_extra_text_edition'); -- add error message
end
Edition = " " .. wrap_msg ('edition', Edition);
else
Edition = '';
end
Series = utilities.is_set (Series) and wrap_msg ('series', {sepc, Series}) or ""; -- not the same as SeriesNum
local Agency = A['Agency'];
Agency = utilities.is_set (Agency) and wrap_msg ('agency', {sepc, Agency}) or "";
Volume = format_volume_issue (Volume, Issue, config.CitationClass, Periodical_origin, sepc, use_lowercase);
if utilities.is_set (AccessDate) then
local retrv_text = " " .. cfg.messages['retrieved']
AccessDate = nowrap_date (AccessDate); -- wrap in nowrap span if date in appropriate format
if (sepc ~= ".") then retrv_text = retrv_text:lower() end -- if mode is cs2, lower case
AccessDate = utilities.substitute (retrv_text, AccessDate); -- add retrieved text
AccessDate = utilities.substitute (cfg.presentation['accessdate'], {sepc, AccessDate}); -- allow editors to hide accessdates
end
if utilities.is_set (ID) then ID = sepc .. " " .. ID; end
local Docket = A['Docket'];
if "thesis" == config.CitationClass and utilities.is_set (Docket) then
ID = sepc .. " Docket " .. Docket .. ID;
end
if "report" == config.CitationClass and utilities.is_set (Docket) then -- for cite report when |docket= is set
ID = sepc .. ' ' .. Docket; -- overwrite ID even if |id= is set
end
if utilities.is_set (URL) then
URL = " " .. external_link( URL, nil, URL_origin, UrlAccess );
end
local Quote = A['Quote'];
local TransQuote = A['TransQuote'];
local ScriptQuote = A['ScriptQuote'];
if utilities.is_set (Quote) or utilities.is_set (TransQuote) or utilities.is_set (ScriptQuote) then
if utilities.is_set (Quote) then
if Quote:sub(1, 1) == '"' and Quote:sub(-1, -1) == '"' then -- if first and last characters of quote are quote marks
Quote = Quote:sub(2, -2); -- strip them off
end
end
Quote = utilities.wrap_style ('quoted-text', Quote ); -- wrap in <q>...</q> tags
if utilities.is_set (ScriptQuote) then
Quote = script_concatenate (Quote, ScriptQuote, 'script-quote'); -- <bdi> tags, lang attribute, categorization, etc.; must be done after quote is wrapped
end
if utilities.is_set (TransQuote) then
if TransQuote:sub(1, 1) == '"' and TransQuote:sub(-1, -1) == '"' then -- if first and last characters of |trans-quote are quote marks
TransQuote = TransQuote:sub(2, -2); -- strip them off
end
Quote = Quote .. " " .. utilities.wrap_style ('trans-quoted-title', TransQuote );
end
if utilities.is_set (QuotePage) or utilities.is_set (QuotePages) then -- add page prefix
local quote_prefix = '';
if utilities.is_set (QuotePage) then
extra_text_in_page_check (QuotePage, 'quote-page'); -- add to maint cat if |quote-page= value begins with what looks like p., pp., etc.
if not NoPP then
quote_prefix = utilities.substitute (cfg.messages['p-prefix'], {sepc, QuotePage}), '', '', '';
else
quote_prefix = utilities.substitute (cfg.messages['nopp'], {sepc, QuotePage}), '', '', '';
end
elseif utilities.is_set (QuotePages) then
extra_text_in_page_check (QuotePages, 'quote-pages'); -- add to maint cat if |quote-pages= value begins with what looks like p., pp., etc.
if tonumber(QuotePages) ~= nil and not NoPP then -- if only digits, assume single page
quote_prefix = utilities.substitute (cfg.messages['p-prefix'], {sepc, QuotePages}), '', '';
elseif not NoPP then
quote_prefix = utilities.substitute (cfg.messages['pp-prefix'], {sepc, QuotePages}), '', '';
else
quote_prefix = utilities.substitute (cfg.messages['nopp'], {sepc, QuotePages}), '', '';
end
end
Quote = quote_prefix .. ": " .. Quote;
else
Quote = sepc .. " " .. Quote;
end
PostScript = ""; -- cs1|2 does not supply terminal punctuation when |quote= is set
end
-- We check length of PostScript here because it will have been nuked by
-- the quote parameters. We'd otherwise emit a message even if there wasn't
-- a displayed postscript.
-- TODO: Should the max size (1) be configurable?
-- TODO: Should we check a specific pattern?
if utilities.is_set(PostScript) and mw.ustring.len(PostScript) > 1 then
utilities.set_message ('maint_postscript')
end
local Archived;
if utilities.is_set (ArchiveURL) then
local arch_text;
if not utilities.is_set (ArchiveDate) then
utilities.set_message ('err_archive_missing_date');
ArchiveDate = ''; -- empty string for concatenation
end
if "live" == UrlStatus then
arch_text = cfg.messages['archived'];
if sepc ~= "." then arch_text = arch_text:lower() end
if utilities.is_set (ArchiveDate) then
Archived = sepc .. ' ' .. utilities.substitute ( cfg.messages['archived-live'],
{external_link( ArchiveURL, arch_text, A:ORIGIN('ArchiveURL'), nil) .. ArchiveFormat, ArchiveDate } );
else
Archived = '';
end
if not utilities.is_set (OriginalURL) then
utilities.set_message ('err_archive_missing_url');
Archived = ''; -- empty string for concatenation
end
elseif utilities.is_set (OriginalURL) then -- UrlStatus is empty, 'dead', 'unfit', 'usurped', 'bot: unknown'
if utilities.in_array (UrlStatus, {'unfit', 'usurped', 'bot: unknown'}) then
arch_text = cfg.messages['archived-unfit'];
if sepc ~= "." then arch_text = arch_text:lower() end
Archived = sepc .. ' ' .. arch_text .. ArchiveDate; -- format already styled
if 'bot: unknown' == UrlStatus then
utilities.set_message ('maint_bot_unknown'); -- and add a category if not already added
else
utilities.set_message ('maint_unfit'); -- and add a category if not already added
end
else -- UrlStatus is empty, 'dead'
arch_text = cfg.messages['archived-dead'];
if sepc ~= "." then arch_text = arch_text:lower() end
if utilities.is_set (ArchiveDate) then
Archived = sepc .. " " .. utilities.substitute ( arch_text,
{ external_link( OriginalURL, cfg.messages['original'], OriginalURL_origin, OriginalAccess ) .. OriginalFormat, ArchiveDate } ); -- format already styled
else
Archived = ''; -- unset for concatenation
end
end
else -- OriginalUrl not set
arch_text = cfg.messages['archived-missing'];
if sepc ~= "." then arch_text = arch_text:lower() end
utilities.set_message ('err_archive_missing_url');
Archived = ''; -- empty string for concatenation
end
elseif utilities.is_set (ArchiveFormat) then
Archived = ArchiveFormat; -- if set and ArchiveURL not set ArchiveFormat has error message
else
Archived = '';
end
local Lay = '';
local LaySource = A['LaySource'];
local LayURL = A['LayURL'];
local LayFormat = A['LayFormat'];
LayFormat = style_format (LayFormat, LayURL, 'lay-format', 'lay-url');
if utilities.is_set (LayURL) then
if utilities.is_set (LayDate) then LayDate = " (" .. LayDate .. ")" end
if utilities.is_set (LaySource) then
LaySource = " – ''" .. utilities.safe_for_italics (LaySource) .. "''";
else
LaySource = "";
end
if sepc == '.' then
Lay = sepc .. " " .. external_link( LayURL, cfg.messages['lay summary'], A:ORIGIN('LayURL'), nil ) .. LayFormat .. LaySource .. LayDate
else
Lay = sepc .. " " .. external_link( LayURL, cfg.messages['lay summary']:lower(), A:ORIGIN('LayURL'), nil ) .. LayFormat .. LaySource .. LayDate
end
elseif utilities.is_set (LayFormat) then -- Test if |lay-format= is given without giving a |lay-url=
Lay = sepc .. LayFormat; -- if set and LayURL not set, then LayFormat has error message
end
local TranscriptURL = A['TranscriptURL']
local TranscriptFormat = A['TranscriptFormat'];
TranscriptFormat = style_format (TranscriptFormat, TranscriptURL, 'transcript-format', 'transcripturl');
local Transcript = A['Transcript'];
local TranscriptURL_origin = A:ORIGIN('TranscriptURL'); -- get name of parameter that holds TranscriptURL
if utilities.is_set (Transcript) then
if utilities.is_set (TranscriptURL) then
Transcript = external_link( TranscriptURL, Transcript, TranscriptURL_origin, nil );
end
Transcript = sepc .. ' ' .. Transcript .. TranscriptFormat;
elseif utilities.is_set (TranscriptURL) then
Transcript = external_link( TranscriptURL, nil, TranscriptURL_origin, nil );
end
local Publisher;
if utilities.is_set (PublicationDate) then
PublicationDate = wrap_msg ('published', PublicationDate);
end
if utilities.is_set (PublisherName) then
if utilities.is_set (PublicationPlace) then
Publisher = sepc .. " " .. PublicationPlace .. ": " .. PublisherName .. PublicationDate;
else
Publisher = sepc .. " " .. PublisherName .. PublicationDate;
end
elseif utilities.is_set (PublicationPlace) then
Publisher= sepc .. " " .. PublicationPlace .. PublicationDate;
else
Publisher = PublicationDate;
end
local TransPeriodical = A['TransPeriodical'];
local TransPeriodical_origin = A:ORIGIN ('TransPeriodical');
-- Several of the above rely upon detecting this as nil, so do it last.
if (utilities.is_set (Periodical) or utilities.is_set (ScriptPeriodical) or utilities.is_set (TransPeriodical)) then
if utilities.is_set (Title) or utilities.is_set (TitleNote) then
Periodical = sepc .. " " .. format_periodical (ScriptPeriodical, ScriptPeriodical_origin, Periodical, TransPeriodical, TransPeriodical_origin);
else
Periodical = format_periodical (ScriptPeriodical, ScriptPeriodical_origin, Periodical, TransPeriodical, TransPeriodical_origin);
end
end
local Language = A['Language'];
if utilities.is_set (Language) then
Language = language_parameter (Language); -- format, categories, name from ISO639-1, etc.
else
Language=''; -- language not specified so make sure this is an empty string;
--[[ TODO: need to extract the wrap_msg from language_parameter
so that we can solve parentheses bunching problem with Format/Language/TitleType
]]
end
--[[
Handle the oddity that is cite speech. This code overrides whatever may be the value assigned to TitleNote (through |department=) and forces it to be " (Speech)" so that
the annotation directly follows the |title= parameter value in the citation rather than the |event= parameter value (if provided).
]]
if "speech" == config.CitationClass then -- cite speech only
TitleNote = TitleType; -- move TitleType to TitleNote so that it renders ahead of |event=
TitleType = ''; -- and unset
if utilities.is_set (Periodical) then -- if Periodical, perhaps because of an included |website= or |journal= parameter
if utilities.is_set (Conference) then -- and if |event= is set
Conference = Conference .. sepc .. " "; -- then add appropriate punctuation to the end of the Conference variable before rendering
end
end
end
-- Piece all bits together at last. Here, all should be non-nil.
-- We build things this way because it is more efficient in LUA
-- not to keep reassigning to the same string variable over and over.
local tcommon;
local tcommon2; -- used for book cite when |contributor= is set
if utilities.in_array (config.CitationClass, {"journal", "citation"}) and utilities.is_set (Periodical) then
if utilities.is_set (Others) then Others = safe_join ({Others, sepc .. " "}, sepc) end -- add terminal punctuation & space; check for dup sepc; TODO why do we need to do this here?
tcommon = safe_join( {Others, Title, TitleNote, Conference, Periodical, Format, TitleType, Series, Language, Edition, Publisher, Agency, Volume}, sepc );
elseif utilities.in_array (config.CitationClass, {"book", "citation"}) and not utilities.is_set (Periodical) then -- special cases for book cites
if utilities.is_set (Contributors) then -- when we are citing foreword, preface, introduction, etc.
tcommon = safe_join( {Title, TitleNote}, sepc ); -- author and other stuff will come after this and before tcommon2
tcommon2 = safe_join( {Conference, Periodical, Format, TitleType, Series, Language, Volume, Others, Edition, Publisher, Agency}, sepc );
else
tcommon = safe_join( {Title, TitleNote, Conference, Periodical, Format, TitleType, Series, Language, Volume, Others, Edition, Publisher, Agency}, sepc );
end
elseif 'map' == config.CitationClass then -- special cases for cite map
if utilities.is_set (Chapter) then -- map in a book; TitleType is part of Chapter
tcommon = safe_join( {Title, Format, Edition, Scale, Series, Language, Cartography, Others, Publisher, Volume}, sepc );
elseif utilities.is_set (Periodical) then -- map in a periodical
tcommon = safe_join( {Title, TitleType, Format, Periodical, Scale, Series, Language, Cartography, Others, Publisher, Volume}, sepc );
else -- a sheet or stand-alone map
tcommon = safe_join( {Title, TitleType, Format, Edition, Scale, Series, Language, Cartography, Others, Publisher}, sepc );
end
elseif 'episode' == config.CitationClass then -- special case for cite episode
tcommon = safe_join( {Title, TitleNote, TitleType, Series, Language, Edition, Publisher}, sepc );
else -- all other CS1 templates
tcommon = safe_join( {Title, TitleNote, Conference, Periodical, Format, TitleType, Series, Language,
Volume, Others, Edition, Publisher, Agency}, sepc );
end
if #ID_list > 0 then
ID_list = safe_join( { sepc .. " ", table.concat( ID_list, sepc .. " " ), ID }, sepc );
else
ID_list = ID;
end
local Via = A['Via'];
Via = utilities.is_set (Via) and wrap_msg ('via', Via) or '';
local idcommon;
if 'audio-visual' == config.CitationClass or 'episode' == config.CitationClass then -- special case for cite AV media & cite episode position transcript
idcommon = safe_join( { ID_list, URL, Archived, Transcript, AccessDate, Via, Lay, Quote }, sepc );
else
idcommon = safe_join( { ID_list, URL, Archived, AccessDate, Via, Lay, Quote }, sepc );
end
local text;
local pgtext = Position .. Sheet .. Sheets .. Page .. Pages .. At;
local OrigDate = A['OrigDate'];
OrigDate = utilities.is_set (OrigDate) and wrap_msg ('origdate', OrigDate) or '';
if utilities.is_set (Date) then
if utilities.is_set (Authors) or utilities.is_set (Editors) then -- date follows authors or editors when authors not set
Date = " (" .. Date .. ")" .. OrigDate .. sepc .. " "; -- in parentheses
else -- neither of authors and editors set
if (string.sub(tcommon, -1, -1) == sepc) then -- if the last character of tcommon is sepc
Date = " " .. Date .. OrigDate; -- Date does not begin with sepc
else
Date = sepc .. " " .. Date .. OrigDate; -- Date begins with sepc
end
end
end
if utilities.is_set (Authors) then
if (not utilities.is_set (Date)) then -- when date is set it's in parentheses; no Authors termination
Authors = terminate_name_list (Authors, sepc); -- when no date, terminate with 0 or 1 sepc and a space
end
if utilities.is_set (Editors) then
local in_text = " ";
local post_text = "";
if utilities.is_set (Chapter) and 0 == #c then
in_text = in_text .. cfg.messages['in'] .. " "
if (sepc ~= '.') then
in_text = in_text:lower() -- lowercase for cs2
end
end
if EditorCount <= 1 then
post_text = " (" .. cfg.messages['editor'] .. ")"; -- be consistent with no-author, no-date case
else
post_text = " (" .. cfg.messages['editors'] .. ")";
end
Editors = terminate_name_list (in_text .. Editors .. post_text, sepc); -- terminate with 0 or 1 sepc and a space
end
if utilities.is_set (Contributors) then -- book cite and we're citing the intro, preface, etc.
local by_text = sepc .. ' ' .. cfg.messages['by'] .. ' ';
if (sepc ~= '.') then by_text = by_text:lower() end -- lowercase for cs2
Authors = by_text .. Authors; -- author follows title so tweak it here
if utilities.is_set (Editors) and utilities.is_set (Date) then -- when Editors make sure that Authors gets terminated
Authors = terminate_name_list (Authors, sepc); -- terminate with 0 or 1 sepc and a space
end
if (not utilities.is_set (Date)) then -- when date is set it's in parentheses; no Contributors termination
Contributors = terminate_name_list (Contributors, sepc); -- terminate with 0 or 1 sepc and a space
end
text = safe_join( {Contributors, Date, Chapter, tcommon, Authors, Place, Editors, tcommon2, pgtext, idcommon }, sepc );
else
text = safe_join( {Authors, Date, Chapter, Place, Editors, tcommon, pgtext, idcommon }, sepc );
end
elseif utilities.is_set (Editors) then
if utilities.is_set (Date) then
if EditorCount <= 1 then
Editors = Editors .. ", " .. cfg.messages['editor'];
else
Editors = Editors .. ", " .. cfg.messages['editors'];
end
else
if EditorCount <= 1 then
Editors = Editors .. " (" .. cfg.messages['editor'] .. ")" .. sepc .. " "
else
Editors = Editors .. " (" .. cfg.messages['editors'] .. ")" .. sepc .. " "
end
end
text = safe_join( {Editors, Date, Chapter, Place, tcommon, pgtext, idcommon}, sepc );
else
if utilities.in_array (config.CitationClass, {"journal", "citation"}) and utilities.is_set (Periodical) then
text = safe_join( {Chapter, Place, tcommon, pgtext, Date, idcommon}, sepc );
else
text = safe_join( {Chapter, Place, tcommon, Date, pgtext, idcommon}, sepc );
end
end
if utilities.is_set (PostScript) and PostScript ~= sepc then
text = safe_join( {text, sepc}, sepc ); -- Deals with italics, spaces, etc.
text = text:sub(1, -sepc:len() - 1);
end
text = safe_join( {text, PostScript}, sepc );
-- Now enclose the whole thing in a <cite> element
local options_t = {};
options_t.class = cite_class_attribute_make (config.CitationClass, Mode);
local Ref = is_valid_parameter_value (A['Ref'], A:ORIGIN('Ref'), cfg.keywords_lists['ref'], nil, true); -- nil when |ref=harv; A['Ref'] else
if 'none' ~= cfg.keywords_xlate[(Ref and Ref:lower()) or ''] then
local namelist_t = {}; -- holds selected contributor, author, editor name list
local year = first_set ({Year, anchor_year}, 2); -- Year first for legacy citations and for YMD dates that require disambiguation
if #c > 0 then -- if there is a contributor list
namelist_t = c; -- select it
elseif #a > 0 then -- or an author list
namelist_t = a;
elseif #e > 0 then -- or an editor list
namelist_t = e;
end
local citeref_id;
if #namelist_t > 0 then -- if there are names in namelist_t
citeref_id = make_citeref_id (namelist_t, year); -- go make the CITEREF anchor
if mw.uri.anchorEncode (citeref_id) == ((Ref and mw.uri.anchorEncode (Ref)) or '') then -- Ref may already be encoded (by {{sfnref}}) so citeref_id must be encoded before comparison
utilities.set_message ('maint_ref_duplicates_default');
end
else
citeref_id = ''; -- unset
end
options_t.id = Ref or citeref_id;
end
if string.len (text:gsub('%b<>', '')) <= 2 then -- remove html and html-like tags; then get length of what remains;
z.error_cats_t = {}; -- blank the categories list
z.error_msgs_t = {}; -- blank the error messages list
OCinSoutput = nil; -- blank the metadata string
text = ''; -- blank the the citation
utilities.set_message ('err_empty_citation'); -- set empty citation message and category
end
local render_t = {}; -- here we collect the final bits for concatenation into the rendered citation
if utilities.is_set (options_t.id) then -- here we wrap the rendered citation in <cite ...>...</cite> tags
table.insert (render_t, utilities.substitute (cfg.presentation['cite-id'], {mw.uri.anchorEncode(options_t.id), mw.text.nowiki(options_t.class), text})); -- when |ref= is set or when there is a namelist
else
table.insert (render_t, utilities.substitute (cfg.presentation['cite'], {mw.text.nowiki(options_t.class), text})); -- when |ref=none or when namelist_t empty and |ref= is missing or is empty
end
if OCinSoutput then -- blanked when citation is 'empty' so don't bother to add boilerplate metadata span
table.insert (render_t, utilities.substitute (cfg.presentation['ocins'], OCinSoutput)); -- format and append metadata to the citation
end
local template_name = ('citation' == config.CitationClass) and 'citation' or 'cite ' .. (cfg.citation_class_map_t[config.CitationClass] or config.CitationClass);
local template_link = '[[Template:' .. template_name .. '|' .. template_name .. ']]';
local msg_prefix = '<code class="cs1-code">{{' .. template_link .. '}}</code>: ';
if 0 ~= #z.error_msgs_t then
mw.addWarning (utilities.substitute (cfg.messages.warning_msg_e, template_link));
table.insert (render_t, ' '); -- insert a space between citation and its error messages
table.sort (z.error_msgs_t); -- sort the error messages list; sorting includes wrapping <span> and <code> tags; hidden-error sorts ahead of visible-error
local hidden = true; -- presume that the only error messages emited by this template are hidden
for _, v in ipairs (z.error_msgs_t) do -- spin through the list of error messages
if v:find ('cs1-visible-error', 1, true) then -- look for the visible error class name
hidden = false; -- found one; so don't hide the error message prefix
break; -- and done because no need to look further
end
end
z.error_msgs_t[1] = table.concat ({utilities.error_comment (msg_prefix, hidden), z.error_msgs_t[1]}); -- add error message prefix to first error message to prevent extraneous punctuation
table.insert (render_t, table.concat (z.error_msgs_t, '; ')); -- make a big string of error messages and add it to the rendering
end
if 0 ~= #z.maint_cats_t then
mw.addWarning (utilities.substitute (cfg.messages.warning_msg_m, template_link));
table.sort (z.maint_cats_t); -- sort the maintenance messages list
local maint_msgs_t = {}; -- here we collect all of the maint messages
if 0 == #z.error_msgs_t then -- if no error messages
table.insert (maint_msgs_t, msg_prefix); -- insert message prefix in maint message livery
end
for _, v in ipairs( z.maint_cats_t ) do -- append maintenance categories
table.insert (maint_msgs_t, -- assemble new maint message and add it to the maint_msgs_t table
table.concat ({v, ' (', utilities.substitute (cfg.messages[':cat wikilink'], v), ')'})
);
end
table.insert (render_t, utilities.substitute (cfg.presentation['hidden-maint'], table.concat (maint_msgs_t, ' '))); -- wrap the group of maint messages with proper presentation and save
end
if not no_tracking_cats then
for _, v in ipairs (z.error_cats_t) do -- append error categories
table.insert (render_t, utilities.substitute (cfg.messages['cat wikilink'], v));
end
for _, v in ipairs (z.maint_cats_t) do -- append maintenance categories
table.insert (render_t, utilities.substitute (cfg.messages['cat wikilink'], v));
end
for _, v in ipairs (z.prop_cats_t) do -- append properties categories
table.insert (render_t, utilities.substitute (cfg.messages['cat wikilink'], v));
end
end
return table.concat (render_t); -- make a big string and done
end
--[[--------------------------< V A L I D A T E >--------------------------------------------------------------
Looks for a parameter's name in one of several whitelists.
Parameters in the whitelist can have three values:
true - active, supported parameters
false - deprecated, supported parameters
nil - unsupported parameters
]]
local function validate (name, cite_class, empty)
local name = tostring (name);
local enum_name; -- for enumerated parameters, is name with enumerator replaced with '#'
local state;
local function state_test (state, name) -- local function to do testing of state values
if true == state then return true; end -- valid actively supported parameter
if false == state then
if empty then return nil; end -- empty deprecated parameters are treated as unknowns
deprecated_parameter (name); -- parameter is deprecated but still supported
return true;
end
if 'tracked' == state then
local base_name = name:gsub ('%d', ''); -- strip enumerators from parameter names that have them to get the base name
utilities.add_prop_cat ('tracked-param', {base_name}, base_name); -- add a properties category; <base_name> modifies <key>
return true;
end
return nil;
end
if name:find ('#') then -- # is a cs1|2 reserved character so parameters with # not permitted
return nil;
end
if utilities.in_array (cite_class, whitelist.preprint_template_list ) then -- limited parameter sets allowed for these templates
state = whitelist.limited_basic_arguments[name];
if true == state_test (state, name) then return true; end
state = whitelist.preprint_arguments[cite_class][name]; -- look in the parameter-list for the template identified by cite_class
if true == state_test (state, name) then return true; end
-- limited enumerated parameters list
enum_name = name:gsub("%d+", "#" ); -- replace digit(s) with # (last25 becomes last#) (mw.ustring because non-Western 'local' digits)
state = whitelist.limited_numbered_arguments[enum_name];
if true == state_test (state, name) then return true; end
return false; -- not supported because not found or name is set to nil
end -- end limited parameter-set templates
if utilities.in_array (cite_class, whitelist.unique_param_template_list) then -- experiment for template-specific parameters for templates that accept parameters from the basic argument list
state = whitelist.unique_arguments[cite_class][name]; -- look in the template-specific parameter-lists for the template identified by cite_class
if true == state_test (state, name) then return true; end
end -- if here, fall into general validation
state = whitelist.basic_arguments[name]; -- all other templates; all normal parameters allowed
if true == state_test (state, name) then return true; end
-- all enumerated parameters allowed
enum_name = name:gsub("%d+", "#" ); -- replace digit(s) with # (last25 becomes last#) (mw.ustring because non-Western 'local' digits)
state = whitelist.numbered_arguments[enum_name];
if true == state_test (state, name) then return true; end
return false; -- not supported because not found or name is set to nil
end
--[=[-------------------------< I N T E R _ W I K I _ C H E C K >----------------------------------------------
check <value> for inter-language interwiki-link markup. <prefix> must be a MediaWiki-recognized language
code. when these values have the form (without leading colon):
[[<prefix>:link|label]] return label as plain-text
[[<prefix>:link]] return <prefix>:link as plain-text
return value as is else
]=]
local function inter_wiki_check (parameter, value)
local prefix = value:match ('%[%[(%a+):'); -- get an interwiki prefix if one exists
local _;
if prefix and cfg.inter_wiki_map[prefix:lower()] then -- if prefix is in the map, needs preceding colon so
utilities.set_message ('err_bad_paramlink', parameter); -- emit an error message
_, value, _ = utilities.is_wikilink (value); -- extract label portion from wikilink
end
return value;
end
--[[--------------------------< M I S S I N G _ P I P E _ C H E C K >------------------------------------------
Look at the contents of a parameter. If the content has a string of characters and digits followed by an equal
sign, compare the alphanumeric string to the list of cs1|2 parameters. If found, then the string is possibly a
parameter that is missing its pipe. There are two tests made:
{{cite ... |title=Title access-date=2016-03-17}} -- the first parameter has a value and whitespace separates that value from the missing pipe parameter name
{{cite ... |title=access-date=2016-03-17}} -- the first parameter has no value (whitespace after the first = is trimmed by MediaWiki)
cs1|2 shares some parameter names with XML/HTML attributes: class=, title=, etc. To prevent false positives XML/HTML
tags are removed before the search.
If a missing pipe is detected, this function adds the missing pipe maintenance category.
]]
local function missing_pipe_check (parameter, value)
local capture;
value = value:gsub ('%b<>', ''); -- remove XML/HTML tags because attributes: class=, title=, etc.
capture = value:match ('%s+(%a[%w%-]+)%s*=') or value:match ('^(%a[%w%-]+)%s*='); -- find and categorize parameters with possible missing pipes
if capture and validate (capture) then -- if the capture is a valid parameter name
utilities.set_message ('err_missing_pipe', parameter);
end
end
--[[--------------------------< H A S _ E X T R A N E O U S _ P U N C T >--------------------------------------
look for extraneous terminal punctuation in most parameter values; parameters listed in skip table are not checked
]]
local function has_extraneous_punc (param, value)
if 'number' == type (param) then
return;
end
param = param:gsub ('%d+', '#'); -- enumerated name-list mask params allow terminal punct; normalize
if cfg.punct_skip[param] then
return; -- parameter name found in the skip table so done
end
if value:match ('[,;:]$') then
utilities.set_message ('maint_extra_punct'); -- has extraneous punctuation; add maint cat
end
if value:match ('^=') then -- sometimes an extraneous '=' character appears ...
utilities.set_message ('maint_extra_punct'); -- has extraneous punctuation; add maint cat
end
end
--[[--------------------------< H A S _ E X T R A N E O U S _ U R L >------------------------------------------
look for extraneous url parameter values; parameters listed in skip table are not checked
]]
local function has_extraneous_url (url_param_t)
local url_error_t = {};
check_for_url (url_param_t, url_error_t); -- extraneous url check
if 0 ~= #url_error_t then -- non-zero when there are errors
table.sort (url_error_t);
utilities.set_message ('err_param_has_ext_link', {utilities.make_sep_list (#url_error_t, url_error_t)}); -- add this error message
end
end
--[[--------------------------< C I T A T I O N >--------------------------------------------------------------
This is used by templates such as {{cite book}} to create the actual citation text.
]]
local function citation(frame)
Frame = frame; -- save a copy in case we need to display an error message in preview mode
local sandbox = '/sandbox' -- i18n: replace this rvalue with the name that your wiki uses to identify sandbox subpages
is_sandbox = nil ~= string.find (frame:getTitle(), sandbox, 1, true); -- is this invoke the sandbox module?
sandbox = is_sandbox and sandbox or ''; -- use i18n sandbox to load sandbox modules when this module is the sandox; live modules else
local pframe = frame:getParent()
local styles;
cfg = mw.loadData ('Module:Citation/CS1/Configuration' .. sandbox); -- load sandbox versions of support modules when {{#invoke:Citation/CS1/sandbox|...}}; live modules else
whitelist = mw.loadData ('Module:Citation/CS1/Whitelist' .. sandbox);
utilities = require ('Module:Citation/CS1/Utilities' .. sandbox);
validation = require ('Module:Citation/CS1/Date_validation' .. sandbox);
identifiers = require ('Module:Citation/CS1/Identifiers' .. sandbox);
metadata = require ('Module:Citation/CS1/COinS' .. sandbox);
styles = 'Module:Citation/CS1' .. sandbox .. '/styles.css';
utilities.set_selected_modules (cfg); -- so that functions in Utilities can see the selected cfg tables
identifiers.set_selected_modules (cfg, utilities); -- so that functions in Identifiers can see the selected cfg tables and selected Utilities module
validation.set_selected_modules (cfg, utilities); -- so that functions in Date validataion can see selected cfg tables and the selected Utilities module
metadata.set_selected_modules (cfg, utilities); -- so that functions in COinS can see the selected cfg tables and selected Utilities module
z = utilities.z; -- table of error and category tables in Module:Citation/CS1/Utilities
is_preview_mode = not utilities.is_set (frame:preprocess ('{{REVISIONID}}'));
local args = {}; -- table where we store all of the template's arguments
local suggestions = {}; -- table where we store suggestions if we need to loadData them
local error_text; -- used as a flag
local config = {}; -- table to store parameters from the module {{#invoke:}}
for k, v in pairs( frame.args ) do -- get parameters from the {{#invoke}} frame
config[k] = v;
-- args[k] = v; -- crude debug support that allows us to render a citation from module {{#invoke:}}; skips parameter validation; TODO: keep?
end
local capture; -- the single supported capture when matching unknown parameters using patterns
local empty_unknowns = {}; -- sequence table to hold empty unknown params for error message listing
for k, v in pairs( pframe.args ) do -- get parameters from the parent (template) frame
v = mw.ustring.gsub (v, '^%s*(.-)%s*$', '%1'); -- trim leading/trailing whitespace; when v is only whitespace, becomes empty string
if v ~= '' then
if ('string' == type (k)) then
k = mw.ustring.gsub (k, '%d', cfg.date_names.local_digits); -- for enumerated parameters, translate 'local' digits to Western 0-9
end
if not validate( k, config.CitationClass ) then
if type (k) ~= 'string' then -- exclude empty numbered parameters
if v:match("%S+") ~= nil then
error_text = utilities.set_message ('err_text_ignored', {v});
end
elseif validate (k:lower(), config.CitationClass) then
error_text = utilities.set_message ('err_parameter_ignored_suggest', {k, k:lower()}); -- suggest the lowercase version of the parameter
else
if nil == suggestions.suggestions then -- if this table is nil then we need to load it
if is_sandbox then -- did the {{#invoke:}} use sandbox version?
suggestions = mw.loadData( 'Module:Citation/CS1/Suggestions/sandbox' ); -- use the sandbox version
else
suggestions = mw.loadData( 'Module:Citation/CS1/Suggestions' ); -- use the live version
end
end
for pattern, param in pairs (suggestions.patterns) do -- loop through the patterns to see if we can suggest a proper parameter
capture = k:match (pattern); -- the whole match if no capture in pattern else the capture if a match
if capture then -- if the pattern matches
param = utilities.substitute (param, capture); -- add the capture to the suggested parameter (typically the enumerator)
if validate (param, config.CitationClass) then -- validate the suggestion to make sure that the suggestion is supported by this template (necessary for limited parameter lists)
error_text = utilities.set_message ('err_parameter_ignored_suggest', {k, param}); -- set the suggestion error message
else
error_text = utilities.set_message ('err_parameter_ignored', {k}); -- suggested param not supported by this template
v = ''; -- unset
end
end
end
if not utilities.is_set (error_text) then -- couldn't match with a pattern, is there an explicit suggestion?
if (suggestions.suggestions[ k:lower() ] ~= nil) and validate (suggestions.suggestions[ k:lower() ], config.CitationClass) then
utilities.set_message ('err_parameter_ignored_suggest', {k, suggestions.suggestions[ k:lower() ]});
else
utilities.set_message ('err_parameter_ignored', {k});
v = ''; -- unset value assigned to unrecognized parameters (this for the limited parameter lists)
end
end
end
end
args[k] = v; -- save this parameter and its value
elseif not utilities.is_set (v) then -- for empty parameters
if not validate (k, config.CitationClass, true) then -- is this empty parameter a valid parameter
k = ('' == k) and '(empty string)' or k; -- when k is empty string (or was space(s) trimmed to empty string), replace with descriptive text
table.insert (empty_unknowns, utilities.wrap_style ('parameter', k)); -- format for error message and add to the list
end
-- crude debug support that allows us to render a citation from module {{#invoke:}} TODO: keep?
-- elseif args[k] ~= nil or (k == 'postscript') then -- when args[k] has a value from {{#invoke}} frame (we don't normally do that)
-- args[k] = v; -- overwrite args[k] with empty string from pframe.args[k] (template frame); v is empty string here
end -- not sure about the postscript bit; that gets handled in parameter validation; historical artifact?
end
if 0 ~= #empty_unknowns then -- create empty unknown error message
utilities.set_message ('err_param_unknown_empty', {
1 == #empty_unknowns and '' or 's',
utilities.make_sep_list (#empty_unknowns, empty_unknowns)
});
end
local url_param_t = {};
for k, v in pairs( args ) do
if 'string' == type (k) then -- don't evaluate positional parameters
has_invisible_chars (k, v); -- look for invisible characters
end
has_extraneous_punc (k, v); -- look for extraneous terminal punctuation in parameter values
missing_pipe_check (k, v); -- do we think that there is a parameter that is missing a pipe?
args[k] = inter_wiki_check (k, v); -- when language interwiki-linked parameter missing leading colon replace with wiki-link label
if 'string' == type (k) and not cfg.url_skip[k] then -- when parameter k is not positional and not in url skip table
url_param_t[k] = v; -- make a parameter/value list for extraneous url check
end
end
has_extraneous_url (url_param_t); -- look for url in parameter values where a url does not belong
return table.concat ({
frame:extensionTag ('templatestyles', '', {src=styles}),
citation0( config, args)
});
end
--[[--------------------------< E X P O R T E D F U N C T I O N S >------------------------------------------
]]
return {citation = citation};
ap25rq0kh3819w7lon63qbjh3bjokuz
Module:Citation/CS1/doc
828
1606
15069
2022-07-17T12:49:30Z
Kambai Akau
15
Created page with "<section begin=header /> {{sandbox other|| {{#switch:{{FULLPAGENAME}} |Module:Citation/CS1={{high-risk |article-space=yes}} {{Uses TemplateStyles|Module:Citation/CS1/styles.css}} |Module:Citation/CS1/Configuration={{high-risk |article-space=yes}} |Module:Citation/CS1/Whitelist={{high-risk |article-space=yes}} |Module:Citation/CS1/Date validation={{high-risk |article-space=yes}} |Module:Citation/CS1/Identifiers={{high-risk |article-space=yes}} |Module:Citation/CS1/Utiliti..."
wikitext
text/x-wiki
<section begin=header />
{{sandbox other||
{{#switch:{{FULLPAGENAME}}
|Module:Citation/CS1={{high-risk |article-space=yes}} {{Uses TemplateStyles|Module:Citation/CS1/styles.css}}
|Module:Citation/CS1/Configuration={{high-risk |article-space=yes}}
|Module:Citation/CS1/Whitelist={{high-risk |article-space=yes}}
|Module:Citation/CS1/Date validation={{high-risk |article-space=yes}}
|Module:Citation/CS1/Identifiers={{high-risk |article-space=yes}}
|Module:Citation/CS1/Utilities={{high-risk |article-space=yes}}
|Module:Citation/CS1/COinS={{high-risk |article-space=yes}}
|Module:Citation/CS1/Suggestions={{high-use |article-space=yes}}
}}
{{Module rating|p}}}}<!-- if pagename does not contain sandbox -->
<section end=header />
This module and associated sub-modules support the {{cs1}} and {{cs2}} citation templates. In general, it is not intended to be called directly, but is called by one of the core CS1 and CS2 templates.
<section begin=module_components_table />
These files comprise the module support for CS1|2 citation templates:
{| class="wikitable" style="margin: 1em auto 1em auto;"
|+CS1 {{pipe}} CS2 modules
|-
!colspan="2"|live!!colspan="2"|sandbox!!diff!!description
|-
| rowspan="8"| [[File:Full-protection-shackle.svg|20px|alt=Gold padlock|link=|sysop]] || [[Module:Citation/CS1]] || [[Module:Citation/CS1/sandbox]] || {{Plain link|url=https://en.wikipedia.org/w/index.php?title=Module:Citation/CS1/sandbox&action=edit|name=[edit<nowiki>]</nowiki>}} ||[https://en.wikipedia.org/wiki/Special:ComparePages?page1=Module%3ACitation%2FCS1&rev1=&page2=Module%3ACitation%2FCS1%2Fsandbox&rev2=&action=&diffonly=&unhide= diff]|| Rendering and support functions
|-
| [[Module:Citation/CS1/Configuration]] || [[Module:Citation/CS1/Configuration/sandbox]] || {{Plain link|url=https://en.wikipedia.org/w/index.php?title=Module:Citation/CS1/Configuration/sandbox&action=edit|name=[edit<nowiki>]</nowiki>}} ||[https://en.wikipedia.org/wiki/Special:ComparePages?page1=Module%3ACitation%2FCS1%2FConfiguration&rev1=&page2=Module%3ACitation%2FCS1%2FConfiguration%2Fsandbox&rev2=&action=&diffonly=&unhide= diff]|| Translation tables; error and identifier handlers
|-
| [[Module:Citation/CS1/Whitelist]] || [[Module:Citation/CS1/Whitelist/sandbox]] || {{Plain link|url=https://en.wikipedia.org/w/index.php?title=Module:Citation/CS1/Whitelist/sandbox&action=edit|name=[edit<nowiki>]</nowiki>}} ||[https://en.wikipedia.org/wiki/Special:ComparePages?page1=Module%3ACitation%2FCS1%2FWhitelist&rev1=&page2=Module%3ACitation%2FCS1%2FWhitelist%2Fsandbox&rev2=&action=&diffonly=&unhide= diff]|| List of active and deprecated CS1{{pipe}}2 parameters
|-
| [[Module:Citation/CS1/Date validation]] || [[Module:Citation/CS1/Date validation/sandbox]] || {{Plain link|url=https://en.wikipedia.org/w/index.php?title=Module:Citation/CS1/Date_validation/sandbox&action=edit|name=[edit<nowiki>]</nowiki>}} ||[https://en.wikipedia.org/wiki/Special:ComparePages?page1=Module%3ACitation%2FCS1%2FDate+validation&rev1=&page2=Module%3ACitation%2FCS1%2FDate+validation%2Fsandbox&rev2=&action=&diffonly=&unhide= diff] || Date format validation functions
|-
| [[Module:Citation/CS1/Identifiers]] || [[Module:Citation/CS1/Identifiers/sandbox]] || {{Plain link|url=https://en.wikipedia.org/w/index.php?title=Module:Citation/CS1/Identifiers/sandbox&action=edit|name=[edit<nowiki>]</nowiki>}} ||[https://en.wikipedia.org/wiki/Special:ComparePages?page1=Module%3ACitation%2FCS1%2FIdentifiers&rev1=&page2=Module%3ACitation%2FCS1%2FIdentifiers%2Fsandbox&rev2=&action=&diffonly=&unhide= diff]|| Functions that support the named identifiers (ISBN, DOI, PMID, etc.)
|-
| [[Module:Citation/CS1/Utilities]] || [[Module:Citation/CS1/Utilities/sandbox]] || {{Plain link|url=https://en.wikipedia.org/w/index.php?title=Module:Citation/CS1/Utilities/sandbox&action=edit|name=[edit<nowiki>]</nowiki>}} ||[https://en.wikipedia.org/wiki/Special:ComparePages?page1=Module%3ACitation%2FCS1%2FUtilities&rev1=&page2=Module%3ACitation%2FCS1%2FUtilities%2Fsandbox&rev2=&action=&diffonly=&unhide= diff]|| Common functions and tables
|-
| [[Module:Citation/CS1/COinS]] || [[Module:Citation/CS1/COinS/sandbox]] || {{Plain link|url=https://en.wikipedia.org/w/index.php?title=Module:Citation/CS1/COinS/sandbox&action=edit|name=[edit<nowiki>]</nowiki>}} ||[https://en.wikipedia.org/wiki/Special:ComparePages?page1=Module%3ACitation%2FCS1%2FCOinS&rev1=&page2=Module%3ACitation%2FCS1%2FCOinS%2Fsandbox&rev2=&action=&diffonly=&unhide= diff]|| Functions that render a CS1{{pipe}}2 template's metadata
|-
| [[Module:Citation/CS1/styles.css]] || [[Module:Citation/CS1/sandbox/styles.css]] || {{Plain link|url=https://en.wikipedia.org/w/index.php?title=Module:Citation/CS1/sandbox/styles.css&action=edit|name=[edit<nowiki>]</nowiki>}} ||[https://en.wikipedia.org/wiki/Special:ComparePages?page1=Module%3ACitation%2FCS1%2Fstyles.css&rev1=&page2=Module%3ACitation%2FCS1%2Fsandbox%2Fstyles.css&rev2=&action=&diffonly=&unhide= diff]|| [[CSS]] styles applied to the CS1{{pipe}}2 templates
|-
| [[File:Template-protection-shackle.svg|20px|alt=Silver padlock|link=|auto confirmed]] || [[Module:Citation/CS1/Suggestions]] || [[Module:Citation/CS1/Suggestions/sandbox]] || {{Plain link|url=https://en.wikipedia.org/w/index.php?title=Module:Citation/CS1/Suggestions/sandbox&action=edit|name=[edit<nowiki>]</nowiki>}} ||[https://en.wikipedia.org/wiki/Special:ComparePages?page1=Module%3ACitation%2FCS1%2FSuggestions&rev1=&page2=Module%3ACitation%2FCS1%2FSuggestions%2Fsandbox&rev2=&action=&diffonly=&unhide= diff]|| List that maps common erroneous parameter names to valid parameter names
|}
<section end=module_components_table />
Other documentation:
* [[Module talk:Citation/CS1/Feature requests]]
* [[Module talk:Citation/CS1/COinS]]
* [[Module:Cs1 documentation support]] – a set of functions (some experimental) that extract information from the module suite for the purpose of documenting CS1|2
** [[Module:Citation/CS1/doc/Category list]] – lists of category names taken directly from [[Module:Citation/CS1/Configuration]] and [[Module:Citation/CS1/Configuration/sandbox]]
testcases
*[[Module:Citation/CS1/testcases]] ([[Module talk:Citation/CS1/testcases|run]])
*[[Module:Citation/CS1/testcases/errors]] ([[Module talk:Citation/CS1/testcases/errors|run]]) – error and maintenance messaging
*[[Module:Citation/CS1/testcases/dates]] ([[Module talk:Citation/CS1/testcases/dates|run]]) – date validation
*[[Module:Citation/CS1/testcases/identifiers]] ([[Module talk:Citation/CS1/testcases/identifiers|run]]) – identifiers
*[[Module:Citation/CS1/testcases/anchor]] ([[Module talk:Citation/CS1/testcases/anchor|run]]) – CITEREF anchors
<includeonly>{{sandbox other||
[[Category:Modules that add a tracking category]]
{{#ifeq:{{SUBPAGENAME}}|Identifiers|[[Category:Modules using data from Wikidata]]}}
}}</includeonly>
90o000qa68o1e8pjfwsvpqxp44snxtg
Module:Citation/CS1/Configuration
828
1607
15072
2022-07-17T12:53:41Z
Kambai Akau
15
Created page with "local lang_obj = mw.language.getContentLanguage(); -- make a language object for the local language; used here for languages and dates --[[--------------------------< U N C A T E G O R I Z E D _ N A M E S P A C E S >------------------------------ List of namespaces that should not be included in citation error categories. Same as setting notracking = true by default. Note: Namespace names should use underscores instead of spaces. ]] local uncategorized_names..."
Scribunto
text/plain
local lang_obj = mw.language.getContentLanguage(); -- make a language object for the local language; used here for languages and dates
--[[--------------------------< U N C A T E G O R I Z E D _ N A M E S P A C E S >------------------------------
List of namespaces that should not be included in citation error categories.
Same as setting notracking = true by default.
Note: Namespace names should use underscores instead of spaces.
]]
local uncategorized_namespaces = { 'User', 'Talk', 'User_talk', 'Wikipedia_talk',
'File_talk', 'Template_talk', 'Help_talk', 'Category_talk', 'Portal_talk',
'Book_talk', 'Draft_talk', 'Education_Program_talk', 'Module_talk', 'MediaWiki_talk' };
local uncategorized_subpages = {'/[Ss]andbox', '/[Tt]estcases', '/[^/]*[Ll]og', '/[Aa]rchive'}; -- list of Lua patterns found in page names of pages we should not categorize
--[[--------------------------< M E S S A G E S >--------------------------------------------------------------
Translation table
The following contains fixed text that may be output as part of a citation.
This is separated from the main body to aid in future translations of this
module.
]]
local messages = {
['agency'] = '$1 $2', -- $1 is sepc, $2 is agency
['archived-dead'] = 'Archived from $1 on $2',
['archived-live'] = '$1 from the original on $2',
['archived-missing'] = 'Archived from the original$1 on $2',
['archived-unfit'] = 'Archived from the original on ',
['archived'] = 'Archived',
['by'] = 'By', -- contributions to authored works: introduction, foreword, afterword
['cartography'] = 'Cartography by $1',
['editor'] = 'ed.',
['editors'] = 'eds.',
['edition'] = '($1 ed.)',
['episode'] = 'Episode $1',
['et al'] = 'et al.',
['in'] = 'In', -- edited works
['inactive'] = 'inactive',
['inset'] = '$1 inset',
['interview'] = 'Interviewed by $1',
['lay summary'] = 'Lay summary',
['mismatch'] = '<code class="cs1-code">|$1=</code> / <code class="cs1-code">|$2=</code> mismatch', -- $1 is year param name; $2 is date param name
['newsgroup'] = '[[Usenet newsgroup|Newsgroup]]: $1',
['notitle'] = 'No title', -- for |title=(()) and (in the future) |title=none
['original'] = 'the original',
['origdate'] = ' [$1]',
['published'] = ' (published $1)',
['retrieved'] = 'Retrieved $1',
['season'] = 'Season $1',
['section'] = '§ $1',
['sections'] = '§§ $1',
['series'] = '$1 $2', -- $1 is sepc, $2 is series
['seriesnum'] = 'Series $1',
['translated'] = 'Translated by $1',
['type'] = ' ($1)', -- for titletype
['written'] = 'Written at $1',
['vol'] = '$1 Vol. $2', -- $1 is sepc; bold journal style volume is in presentation{}
['vol-no'] = '$1 Vol. $2, no. $3', -- sepc, volume, issue (alternatively insert $1 after $2, but then we'd also have to change capitalization)
['issue'] = '$1 No. $2', -- $1 is sepc
['j-vol'] = '$1 $2', -- sepc, volume; bold journal volume is in presentation{}
['j-issue'] = ' ($1)',
['nopp'] = '$1 $2'; -- page(s) without prefix; $1 is sepc
['p-prefix'] = "$1 p. $2", -- $1 is sepc
['pp-prefix'] = "$1 pp. $2", -- $1 is sepc
['j-page(s)'] = ': $1', -- same for page and pages
['sheet'] = '$1 Sheet $2', -- $1 is sepc
['sheets'] = '$1 Sheets $2', -- $1 is sepc
['j-sheet'] = ': Sheet $1',
['j-sheets'] = ': Sheets $1',
['language'] = '(in $1)',
['via'] = " – via $1",
['event'] = 'Event occurs at',
['minutes'] = 'minutes in',
-- Determines the location of the help page
['help page link'] = 'Help:CS1 errors',
['help page label'] = 'help',
-- categories
['cat wikilink'] = '[[Category:$1]]', -- $1 is the category name
[':cat wikilink'] = '[[:Category:$1|link]]', -- category name as maintenance message wikilink; $1 is the category name
-- Internal errors (should only occur if configuration is bad)
['undefined_error'] = 'Called with an undefined error condition',
['unknown_ID_key'] = 'Unrecognized ID key: ', -- an ID key in id_handlers not found in ~/Identifiers func_map{}
['unknown_ID_access'] = 'Unrecognized ID access keyword: ', -- an ID access keyword in id_handlers not found in keywords_lists['id-access']{}
['unknown_argument_map'] = 'Argument map not defined for this variable',
['bare_url_no_origin'] = 'Bare URL found but origin indicator is nil or empty',
['warning_msg_e'] = '<span style="color:#d33">One or more <code style="color: inherit; background: inherit; border: none; padding: inherit;">{{$1}}</code> templates have errors</span>; messages may be hidden ([[Help:CS1_errors#Controlling_error_message_display|help]]).'; -- $1 is template link
['warning_msg_m'] = '<span style="color:#3a3">One or more <code style="color: inherit; background: inherit; border: none; padding: inherit;">{{$1}}</code> templates have maintenance messages</span>; messages may be hidden ([[Help:CS1_errors#Controlling_error_message_display|help]]).'; -- $1 is template link
}
--[[--------------------------< C I T A T I O N _ C L A S S _ M A P >------------------------------------------
this table maps the value assigned to |CitationClass= in the cs1|2 templates to the canonical template name when
the value assigned to |CitationClass= is different from the canonical template name. |CitationClass= values are
used as class attributes in the <cite> tag that encloses the citation so these names may not contain spaces while
the canonical template name may. These names are used in warning_msg_e and warning_msg_m to create links to the
template's documentation when an article is displayed in preivew mode.
Most cs1|2 template |CitationClass= values at en.wiki match their canonical template names so are not listed here.
]]
local citation_class_map_t = { -- TODO: if kept, these and all other config.CitationClass 'names' require some sort of i18n
['audio-visual'] = 'AV media', -- TODO: move to ~/Configuration
['AV-media-notes'] = 'AV media notes',
['encyclopaedia'] = 'encyclopedia',
['mailinglist'] = 'mailing list',
['pressrelease'] = 'press release'
}
--[=[-------------------------< E T _ A L _ P A T T E R N S >--------------------------------------------------
This table provides Lua patterns for the phrase "et al" and variants in name text
(author, editor, etc.). The main module uses these to identify and emit the 'etal' message.
]=]
local et_al_patterns = {
"[;,]? *[\"']*%f[%a][Ee][Tt]%.? *[Aa][Ll][%.;,\"']*$", -- variations on the 'et al' theme
"[;,]? *[\"']*%f[%a][Ee][Tt]%.? *[Aa][Ll][Ii][AaIi][Ee]?[%.;,\"']*$", -- variations on the 'et alia', 'et alii' and 'et aliae' themes (false positive 'et aliie' unlikely to match)
"[;,]? *%f[%a]and [Oo]thers", -- an alternative to et al.
"%[%[ *[Ee][Tt]%.? *[Aa][Ll]%.? *%]%]", -- a wikilinked form
"%(%( *[Ee][Tt]%.? *[Aa][Ll]%.? *%)%)", -- a double-bracketed form (to counter partial removal of ((...)) syntax)
"[%(%[] *[Ee][Tt]%.? *[Aa][Ll]%.? *[%)%]]", -- a bracketed form
}
--[[--------------------------< P R E S E N T A T I O N >------------------------
Fixed presentation markup. Originally part of citation_config.messages it has
been moved into its own, more semantically correct place.
]]
local presentation =
{
-- .citation-comment class is specified at Help:CS1_errors#Controlling_error_message_display
['hidden-error'] = '<span class="cs1-hidden-error citation-comment">$1</span>',
['visible-error'] = '<span class="cs1-visible-error citation-comment">$1</span>',
['hidden-maint'] = '<span class="cs1-maint citation-comment">$1</span>',
['accessdate'] = '<span class="reference-accessdate">$1$2</span>', -- to allow editors to hide accessdate using personal CSS
['bdi'] = '<bdi$1>$2</bdi>', -- bidirectional isolation used with |script-title= and the like
['cite'] = '<cite class="$1">$2</cite>'; -- for use when citation does not have a namelist and |ref= not set so no id="..." attribute
['cite-id'] = '<cite id="$1" class="$2">$3</cite>'; -- for use when when |ref= is set or when citation has a namelist
['format'] = ' <span class="cs1-format">($1)</span>', -- for |format=, |chapter-format=, etc.
-- various access levels, for |access=, |doi-access=, |arxiv=, ...
-- narrow no-break space   may work better than nowrap CSS. Or not? Browser support?
['ext-link-access-signal'] = '<span class="$1" title="$2">$3</span>', -- external link with appropriate lock icon
['free'] = {class='cs1-lock-free', title='Freely accessible'}, -- classes defined in Module:Citation/CS1/styles.css
['registration'] = {class='cs1-lock-registration', title='Free registration required'},
['limited'] = {class='cs1-lock-limited', title='Free access subject to limited trial, subscription normally required'},
['subscription'] = {class='cs1-lock-subscription', title='Paid subscription required'},
['interwiki-icon'] = '<span class="$1" title="$2">$3</span>',
['class-wikisource'] = 'cs1-ws-icon',
['italic-title'] = "''$1''",
['kern-left'] = '<span class="cs1-kern-left"></span>$1', -- spacing to use when title contains leading single or double quote mark
['kern-right'] = '$1<span class="cs1-kern-right"></span>', -- spacing to use when title contains trailing single or double quote mark
['nowrap1'] = '<span class="nowrap">$1</span>', -- for nowrapping an item: <span ...>yyyy-mm-dd</span>
['nowrap2'] = '<span class="nowrap">$1</span> $2', -- for nowrapping portions of an item: <span ...>dd mmmm</span> yyyy (note white space)
['ocins'] = '<span title="$1" class="Z3988"></span>',
['parameter'] = '<code class="cs1-code">|$1=</code>',
['ps_cs1'] = '.'; -- CS1 style postscript (terminal) character
['ps_cs2'] = ''; -- CS2 style postscript (terminal) character (empty string)
['quoted-text'] = '<q>$1</q>', -- for wrapping |quote= content
['quoted-title'] = '"$1"',
['sep_cs1'] = '.', -- CS1 element separator
['sep_cs2'] = ',', -- CS2 separator
['sep_nl'] = ';', -- CS1|2 style name-list separator between names is a semicolon
['sep_nl_and'] = ' and ', -- used as last nl sep when |name-list-style=and and list has 2 items
['sep_nl_end'] = '; and ', -- used as last nl sep when |name-list-style=and and list has 3+ names
['sep_name'] = ', ', -- CS1|2 style last/first separator is <comma><space>
['sep_nl_vanc'] = ',', -- Vancouver style name-list separator between authors is a comma
['sep_name_vanc'] = ' ', -- Vancouver style last/first separator is a space
['sep_list'] = ', ', -- used for |language= when list has 3+ items except for last sep which uses sep_list_end
['sep_list_pair'] = ' and ', -- used for |language= when list has 2 items
['sep_list_end'] = ', and ', -- used as last list sep for |language= when list has 3+ items
['trans-italic-title'] = "[''$1'']",
['trans-quoted-title'] = "[$1]", -- for |trans-title= and |trans-quote=
['vol-bold'] = '$1 <b>$2</b>', -- sepc, volume; for bold journal cites; for other cites ['vol'] in messages{}
}
--[[--------------------------< A L I A S E S >---------------------------------
Aliases table for commonly passed parameters.
Parameter names on the right side in the assignments in this table must have been
defined in the Whitelist before they will be recognized as valid parameter names
]]
local aliases = {
['AccessDate'] = {'access-date', 'accessdate'}, -- Used by InternetArchiveBot
['Agency'] = 'agency',
['ArchiveDate'] = {'archive-date', 'archivedate'}, -- Used by InternetArchiveBot
['ArchiveFormat'] = 'archive-format',
['ArchiveURL'] = {'archive-url', 'archiveurl'}, -- Used by InternetArchiveBot
['ASINTLD'] = 'asin-tld',
['At'] = 'at', -- Used by InternetArchiveBot
['Authors'] = {'authors', 'people', 'credits'},
['BookTitle'] = {'book-title', 'booktitle'},
['Cartography'] = 'cartography',
['Chapter'] = {'chapter', 'contribution', 'entry', 'article', 'section'},
['ChapterFormat'] = {'chapter-format', 'contribution-format', 'entry-format',
'article-format', 'section-format'};
['ChapterURL'] = {'chapter-url', 'contribution-url', 'entry-url', 'article-url', 'section-url', 'chapterurl'}, -- Used by InternetArchiveBot
['ChapterUrlAccess'] = {'chapter-url-access', 'contribution-url-access',
'entry-url-access', 'article-url-access', 'section-url-access'}, -- Used by InternetArchiveBot
['Class'] = 'class', -- cite arxiv and arxiv identifier
['Collaboration'] = 'collaboration',
['Conference'] = {'conference', 'event'},
['ConferenceFormat'] = 'conference-format',
['ConferenceURL'] = 'conference-url', -- Used by InternetArchiveBot
['Date'] = {'date', 'air-date', 'airdate'}, -- air-date and airdate for cite episode and cite serial only
['Degree'] = 'degree',
['DF'] = 'df',
['DisplayAuthors'] = {'display-authors', 'display-subjects'},
['DisplayContributors'] = 'display-contributors',
['DisplayEditors'] = 'display-editors',
['DisplayInterviewers'] = 'display-interviewers',
['DisplayTranslators'] = 'display-translators',
['Docket'] = 'docket',
['DoiBroken'] = 'doi-broken-date',
['Edition'] = 'edition',
['Embargo'] = 'pmc-embargo-date',
['Encyclopedia'] = {'encyclopedia', 'encyclopaedia', 'dictionary'}, -- cite encyclopedia only
['Episode'] = 'episode', -- cite serial only TODO: make available to cite episode?
['Format'] = 'format',
['ID'] = {'id', 'ID'},
['Inset'] = 'inset',
['Issue'] = {'issue', 'number'},
['Language'] = {'language', 'lang'},
['LayDate'] = 'lay-date',
['LayFormat'] = 'lay-format',
['LaySource'] = 'lay-source',
['LayURL'] = 'lay-url',
['MailingList'] = {'mailing-list', 'mailinglist'}, -- cite mailing list only
['Map'] = 'map', -- cite map only
['MapFormat'] = 'map-format', -- cite map only
['MapURL'] = {'map-url', 'mapurl'}, -- cite map only -- Used by InternetArchiveBot
['MapUrlAccess'] = 'map-url-access', -- cite map only -- Used by InternetArchiveBot
['Minutes'] = 'minutes',
['Mode'] = 'mode',
['NameListStyle'] = 'name-list-style',
['Network'] = 'network',
['Newsgroup'] = 'newsgroup', -- cite newsgroup only
['NoPP'] = {'no-pp', 'nopp'},
['NoTracking'] = {'no-tracking', 'template-doc-demo'},
['Number'] = 'number', -- this case only for cite techreport
['OrigDate'] = {'orig-date', 'orig-year', 'origyear'},
['Others'] = 'others',
['Page'] = {'page', 'p'}, -- Used by InternetArchiveBot
['Pages'] = {'pages', 'pp'}, -- Used by InternetArchiveBot
['Periodical'] = {'journal', 'magazine', 'newspaper', 'periodical', 'website', 'work'},
['Place'] = {'place', 'location'},
['PostScript'] = 'postscript',
['PublicationDate'] = {'publication-date', 'publicationdate'},
['PublicationPlace'] = {'publication-place', 'publicationplace'},
['PublisherName'] = {'publisher', 'institution'},
['Quote'] = {'quote', 'quotation'},
['QuotePage'] = 'quote-page',
['QuotePages'] = 'quote-pages',
['Ref'] = 'ref',
['Scale'] = 'scale',
['ScriptChapter'] = {'script-chapter', 'script-contribution', 'script-entry',
'script-article', 'script-section'},
['ScriptMap'] = 'script-map',
['ScriptPeriodical'] = {'script-journal', 'script-magazine', 'script-newspaper',
'script-periodical', 'script-website', 'script-work'},
['ScriptQuote'] = 'script-quote',
['ScriptTitle'] = 'script-title', -- Used by InternetArchiveBot
['Season'] = 'season',
['Sections'] = 'sections', -- cite map only
['Series'] = {'series', 'version'},
['SeriesLink'] = {'series-link', 'serieslink'},
['SeriesNumber'] = {'series-number', 'series-no'},
['Sheet'] = 'sheet', -- cite map only
['Sheets'] = 'sheets', -- cite map only
['Station'] = 'station',
['Time'] = 'time',
['TimeCaption'] = 'time-caption',
['Title'] = 'title', -- Used by InternetArchiveBot
['TitleLink'] = {'title-link', 'episode-link', 'episodelink'}, -- Used by InternetArchiveBot
['TitleNote'] = 'department',
['TitleType'] = {'type', 'medium'},
['TransChapter'] = {'trans-article', 'trans-chapter', 'trans-contribution',
'trans-entry', 'trans-section'},
['Transcript'] = 'transcript',
['TranscriptFormat'] = 'transcript-format',
['TranscriptURL'] = {'transcript-url', 'transcripturl'}, -- Used by InternetArchiveBot
['TransMap'] = 'trans-map', -- cite map only
['TransPeriodical'] = {'trans-journal', 'trans-magazine', 'trans-newspaper',
'trans-periodical', 'trans-website', 'trans-work'},
['TransQuote'] = 'trans-quote',
['TransTitle'] = 'trans-title', -- Used by InternetArchiveBot
['URL'] = {'url', 'URL'}, -- Used by InternetArchiveBot
['UrlAccess'] = 'url-access', -- Used by InternetArchiveBot
['UrlStatus'] = 'url-status', -- Used by InternetArchiveBot
['Vauthors'] = 'vauthors',
['Veditors'] = 'veditors',
['Via'] = 'via',
['Volume'] = 'volume',
['Year'] = 'year',
['AuthorList-First'] = {"first#", "author-first#", "author#-first", "given#",
"author-given#", "author#-given"},
['AuthorList-Last'] = {"last#", "author-last#", "author#-last", "surname#",
"author-surname#", "author#-surname", "author#", "subject#", 'host#'},
['AuthorList-Link'] = {"author-link#", "author#-link", "subject-link#",
"subject#-link", "authorlink#", "author#link"},
['AuthorList-Mask'] = {"author-mask#", "author#-mask", "subject-mask#", "subject#-mask"},
['ContributorList-First'] = {'contributor-first#', 'contributor#-first',
'contributor-given#', 'contributor#-given'},
['ContributorList-Last'] = {'contributor-last#', 'contributor#-last',
'contributor-surname#', 'contributor#-surname', 'contributor#'},
['ContributorList-Link'] = {'contributor-link#', 'contributor#-link'},
['ContributorList-Mask'] = {'contributor-mask#', 'contributor#-mask'},
['EditorList-First'] = {"editor-first#", "editor#-first", "editor-given#", "editor#-given"},
['EditorList-Last'] = {"editor-last#", "editor#-last", "editor-surname#",
"editor#-surname", "editor#"},
['EditorList-Link'] = {"editor-link#", "editor#-link"},
['EditorList-Mask'] = {"editor-mask#", "editor#-mask"},
['InterviewerList-First'] = {'interviewer-first#', 'interviewer#-first',
'interviewer-given#', 'interviewer#-given'},
['InterviewerList-Last'] = {'interviewer-last#', 'interviewer#-last',
'interviewer-surname#', 'interviewer#-surname', 'interviewer#'},
['InterviewerList-Link'] = {'interviewer-link#', 'interviewer#-link'},
['InterviewerList-Mask'] = {'interviewer-mask#', 'interviewer#-mask'},
['TranslatorList-First'] = {'translator-first#', 'translator#-first',
'translator-given#', 'translator#-given'},
['TranslatorList-Last'] = {'translator-last#', 'translator#-last',
'translator-surname#', 'translator#-surname', 'translator#'},
['TranslatorList-Link'] = {'translator-link#', 'translator#-link'},
['TranslatorList-Mask'] = {'translator-mask#', 'translator#-mask'},
}
--[[--------------------------< P U N C T _ S K I P >---------------------------
builds a table of parameter names that the extraneous terminal punctuation check should not check.
]]
local punct_meta_params = { -- table of aliases[] keys (meta parameters); each key has a table of parameter names for a value
'BookTitle', 'Chapter', 'ScriptChapter', 'ScriptTitle', 'Title', 'TransChapter', 'Transcript', 'TransMap', 'TransTitle', -- title-holding parameters
'AuthorList-Mask', 'ContributorList-Mask', 'EditorList-Mask', 'InterviewerList-Mask', 'TranslatorList-Mask', -- name-list mask may have name separators
'PostScript', 'Quote', 'ScriptQuote', 'TransQuote', 'Ref', -- miscellaneous
'ArchiveURL', 'ChapterURL', 'ConferenceURL', 'LayURL', 'MapURL', 'TranscriptURL', 'URL', -- URL-holding parameters
}
local url_meta_params = { -- table of aliases[] keys (meta parameters); each key has a table of parameter names for a value
'ArchiveURL', 'ChapterURL', 'ConferenceURL', 'ID', 'LayURL', 'MapURL', 'TranscriptURL', 'URL', -- parameters allowed to hold urls
'Page', 'Pages', 'At', 'QuotePage', 'QuotePages', -- insource locators allowed to hold urls
}
local function build_skip_table (skip_t, meta_params)
for _, meta_param in ipairs (meta_params) do -- for each meta parameter key
local params = aliases[meta_param]; -- get the parameter or the table of parameters associated with the meta parameter name
if 'string' == type (params) then
skip_t[params] = 1; -- just a single parameter
else
for _, param in ipairs (params) do -- get the parameter name
skip_t[param] = 1; -- add the parameter name to the skip table
local count;
param, count = param:gsub ('#', ''); -- remove enumerator marker from enumerated parameters
if 0 ~= count then -- if removed
skip_t[param] = 1; -- add param name without enumerator marker
end
end
end
end
return skip_t;
end
local punct_skip = {};
local url_skip = {};
--[[-----------< S P E C I A L C A S E T R A N S L A T I O N S >------------
This table is primarily here to support internationalization. Translations in
this table are used, for example, when an error message, category name, etc.,
is extracted from the English alias key. There may be other cases where
this translation table may be useful.
]]
local is_Latn = 'A-Za-z\195\128-\195\150\195\152-\195\182\195\184-\198\191\199\132-\201\143';
local special_case_translation = {
['AuthorList'] = 'authors list', -- used to assemble maintenance category names
['ContributorList'] = 'contributors list', -- translation of these names plus translation of the base mainenance category names in maint_cats{} table below
['EditorList'] = 'editors list', -- must match the names of the actual categories
['InterviewerList'] = 'interviewers list', -- this group or translations used by name_has_ed_markup() and name_has_mult_names()
['TranslatorList'] = 'translators list',
-- Lua patterns to match pseudo-titles used by InternetArchiveBot and others as placeholder for unknown |title= value
['archived_copy'] = { -- used with CS1 maint: Archive[d] copy as title
['en'] = '^archived?%s+copy$', -- for English; translators: keep this because templates imported from en.wiki
['local'] = nil, -- translators: replace ['local'] = nil with lowercase translation only when bots or tools create generic titles in your language
},
-- Lua patterns to match generic titles; usually created by bots or reference filling tools
-- translators: replace ['local'] = nil with lowercase translation only when bots or tools create generic titles in your language
-- generic titles and patterns in this table should be lowercase only
-- leave ['local'] nil except when there is a matching generic title in your language
-- boolean 'true' for plain-text searches; 'false' for pattern searches
['generic_titles'] = {
['accept'] = {
},
['reject'] = {
{['en'] = {'^wayback%s+machine$', false}, ['local'] = nil},
{['en'] = {'are you a robot', true}, ['local'] = nil},
{['en'] = {'hugedomains.com', true}, ['local'] = nil},
{['en'] = {'^[%(%[{<]?no +title[>}%]%)]?$', false}, ['local'] = nil},
{['en'] = {'page not found', true}, ['local'] = nil},
{['en'] = {'subscribe to read', true}, ['local'] = nil},
{['en'] = {'^[%(%[{<]?unknown[>}%]%)]?$', false}, ['local'] = nil},
{['en'] = {'website is for sale', true}, ['local'] = nil},
{['en'] = {'^404', false}, ['local'] = nil},
{['en'] = {'internet archive wayback machine', true}, ['local'] = nil},
{['en'] = {'log into facebook', true}, ['local'] = nil},
{['en'] = {'login • instagram', true}, ['local'] = nil},
{['en'] = {'redirecting...', true}, ['local'] = nil},
{['en'] = {'usurped title', true}, ['local'] = nil}, -- added by a GreenC bot
{['en'] = {'webcite query result', true}, ['local'] = nil},
{['en'] = {'wikiwix\'s cache', true}, ['local'] = nil},
}
},
-- boolean 'true' for plain-text searches, search string must be lowercase only
-- boolean 'false' for pattern searches
-- leave ['local'] nil except when there is a matching generic name in your language
['generic_names'] = {
['accept'] = {
{['en'] = {'%[%[[^|]*%(author%) *|[^%]]*%]%]', false}, ['local'] = nil},
},
['reject'] = {
{['en'] = {'about us', true}, ['local'] = nil},
{['en'] = {'%f[%a][Aa]dvisor%f[%A]', false}, ['local'] = nil},
{['en'] = {'%f[%a][Aa]uthor%f[%A]', false}, ['local'] = nil},
{['en'] = {'collaborator', true}, ['local'] = nil},
{['en'] = {'contributor', true}, ['local'] = nil},
{['en'] = {'contact us', true}, ['local'] = nil},
{['en'] = {'directory', true}, ['local'] = nil},
{['en'] = {'%f[%(%[][%(%[]%s*eds?%.?%s*[%)%]]?$', false}, ['local'] = nil},
{['en'] = {'[,%.%s]%f[e]eds?%.?$', false}, ['local'] = nil},
{['en'] = {'^eds?[%.,;]', false}, ['local'] = nil},
{['en'] = {'^[%(%[]%s*[Ee][Dd][Ss]?%.?%s*[%)%]]', false}, ['local'] = nil},
{['en'] = {'%f[%a][Ee]dited%f[%A]', false}, ['local'] = nil},
{['en'] = {'%f[%a][Ee]ditors?%f[%A]', false}, ['local'] = nil},
{['en'] = {'%f[%a]]Ee]mail%f[%A]', false}, ['local'] = nil},
{['en'] = {'facebook', true}, ['local'] = nil},
{['en'] = {'google', true}, ['local'] = nil},
{['en'] = {'home page', true}, ['local'] = nil},
{['en'] = {'instagram', true}, ['local'] = nil},
{['en'] = {'interviewer', true}, ['local'] = nil},
{['en'] = {'linkedIn', true}, ['local'] = nil},
{['en'] = {'^[Nn]ews$', false}, ['local'] = nil},
{['en'] = {'pinterest', true}, ['local'] = nil},
{['en'] = {'policy', true}, ['local'] = nil},
{['en'] = {'privacy', true}, ['local'] = nil},
{['en'] = {'translator', true}, ['local'] = nil},
{['en'] = {'tumblr', true}, ['local'] = nil},
{['en'] = {'twitter', true}, ['local'] = nil},
{['en'] = {'site name', true}, ['local'] = nil},
{['en'] = {'statement', true}, ['local'] = nil},
{['en'] = {'submitted', true}, ['local'] = nil},
{['en'] = {'super.?user', false}, ['local'] = nil},
{['en'] = {'%f['..is_Latn..'][Uu]ser%f[^'..is_Latn..']', false}, ['local'] = nil},
{['en'] = {'verfasser', true}, ['local'] = nil},
}
}
}
--[[--------------------------< D A T E _ N A M E S >----------------------------------------------------------
This table of tables lists local language date names and fallback English date names.
The code in Date_validation will look first in the local table for valid date names.
If date names are not found in the local table, the code will look in the English table.
Because citations can be copied to the local wiki from en.wiki, the English is
required when the date-name translation function date_name_xlate() is used.
In these tables, season numbering is defined by
Extended Date/Time Format (EDTF) Specification (https://www.loc.gov/standards/datetime/)
which became part of ISO 8601 in 2019. See '§Sub-year groupings'. The standard
defines various divisions using numbers 21-41. CS1|2 only supports generic seasons.
EDTF does support the distinction between north and south hemisphere seasons
but CS1|2 has no way to make that distinction.
33-36 = Quarter 1, Quarter 2, Quarter 3, Quarter 4 (3 months each)
The standard does not address 'named' dates so, for the purposes of CS1|2,
Easter and Christmas are defined here as 98 and 99, which should be out of the
ISO 8601 (EDTF) range of uses for a while.
local_date_names_from_mediawiki is a boolean. When set to:
true – module will fetch local month names from MediaWiki for both date_names['local']['long'] and date_names['local']['short']
false – module will *not* fetch local month names from MediaWiki
Caveat lector: There is no guarantee that MediaWiki will provide short month names. At your wiki you can test
the results of the MediaWiki fetch in the debug console with this command (the result is alpha sorted):
=mw.dumpObject (p.date_names['local'])
While the module can fetch month names from MediaWiki, it cannot fetch the quarter, season, and named date names
from MediaWiki. Those must be translated manually.
]]
local local_date_names_from_mediawiki = true; -- when false, manual translation required for date_names['local']['long'] and date_names['local']['short']
-- when true, module fetches long and short month names from MediaWiki
local date_names = {
['en'] = { -- English
['long'] = {['January'] = 1, ['February'] = 2, ['March'] = 3, ['April'] = 4, ['May'] = 5, ['June'] = 6, ['July'] = 7, ['August'] = 8, ['September'] = 9, ['October'] = 10, ['November'] = 11, ['December'] = 12},
['short'] = {['Jan'] = 1, ['Feb'] = 2, ['Mar'] = 3, ['Apr'] = 4, ['May'] = 5, ['Jun'] = 6, ['Jul'] = 7, ['Aug'] = 8, ['Sep'] = 9, ['Oct'] = 10, ['Nov'] = 11, ['Dec'] = 12},
['quarter'] = {['First Quarter'] = 33, ['Second Quarter'] = 34, ['Third Quarter'] = 35, ['Fourth Quarter'] = 36},
['season'] = {['Winter'] = 24, ['Spring'] = 21, ['Summer'] = 22, ['Fall'] = 23, ['Autumn'] = 23},
['named'] = {['Easter'] = 98, ['Christmas'] = 99},
},
-- when local_date_names_from_mediawiki = false
['local'] = { -- replace these English date names with the local language equivalents
['long'] = {['January'] = 1, ['February'] = 2, ['March'] = 3, ['April'] = 4, ['May'] = 5, ['June'] = 6, ['July'] = 7, ['August'] = 8, ['September'] = 9, ['October'] = 10, ['November'] = 11, ['December'] = 12},
['short'] = {['Jan'] = 1, ['Feb'] = 2, ['Mar'] = 3, ['Apr'] = 4, ['May'] = 5, ['Jun'] = 6, ['Jul'] = 7, ['Aug'] = 8, ['Sep'] = 9, ['Oct'] = 10, ['Nov'] = 11, ['Dec'] = 12},
['quarter'] = {['First Quarter'] = 33, ['Second Quarter'] = 34, ['Third Quarter'] = 35, ['Fourth Quarter'] = 36},
['season'] = {['Winter'] = 24, ['Spring'] = 21, ['Summer'] = 22, ['Fall'] = 23, ['Autumn'] = 23},
['named'] = {['Easter'] = 98, ['Christmas'] = 99},
},
['inv_local_long'] = {}, -- used in date reformatting & translation; copy of date_names['local'].long where k/v are inverted: [1]='<local name>' etc.
['inv_local_short'] = {}, -- used in date reformatting & translation; copy of date_names['local'].short where k/v are inverted: [1]='<local name>' etc.
['inv_local_quarter'] = {}, -- used in date translation; copy of date_names['local'].quarter where k/v are inverted: [1]='<local name>' etc.
['inv_local_season'] = {}, -- used in date translation; copy of date_names['local'].season where k/v are inverted: [1]='<local name>' etc.
['inv_local_named'] = {}, -- used in date translation; copy of date_names['local'].named where k/v are inverted: [1]='<local name>' etc.
['local_digits'] = {['0'] = '0', ['1'] = '1', ['2'] = '2', ['3'] = '3', ['4'] = '4', ['5'] = '5', ['6'] = '6', ['7'] = '7', ['8'] = '8', ['9'] = '9'}, -- used to convert local language digits to Western 0-9
['xlate_digits'] = {},
}
if local_date_names_from_mediawiki then -- if fetching local month names from MediaWiki is enabled
local long_t = {};
local short_t = {};
for i=1, 12 do -- loop 12x and
local name = lang_obj:formatDate('F', '2022-' .. i .. '-1'); -- get long month name for each i
long_t[name] = i; -- save it
name = lang_obj:formatDate('M', '2022-' .. i .. '-1'); -- get short month name for each i
short_t[name] = i; -- save it
end
date_names['local']['long'] = long_t; -- write the long table – overwrites manual translation
date_names['local']['short'] = short_t; -- write the short table – overwrites manual translation
end
-- create inverted date-name tables for reformatting and/or translation
for _, invert_t in pairs {{'long', 'inv_local_long'}, {'short', 'inv_local_short'}, {'quarter', 'inv_local_quarter'}, {'season', 'inv_local_season'}, {'named', 'inv_local_named'}} do
for name, i in pairs (date_names['local'][invert_t[1]]) do -- this table is ['name'] = i
date_names[invert_t[2]][i] = name; -- invert to get [i] = 'name' for conversions from ymd
end
end
for ld, ed in pairs (date_names.local_digits) do -- make a digit translation table for simple date translation from en to local language using local_digits table
date_names.xlate_digits [ed] = ld; -- en digit becomes index with local digit as the value
end
local df_template_patterns = { -- table of redirects to {{Use dmy dates}} and {{Use mdy dates}}
'{{ *[Uu]se +(dmy) +dates *[|}]', -- 1159k -- sorted by approximate transclusion count
'{{ *[Uu]se +(mdy) +dates *[|}]', -- 212k
'{{ *[Uu]se +(MDY) +dates *[|}]', -- 788
'{{ *[Uu]se +(DMY) +dates *[|}]', -- 343
'{{ *([Mm]dy) *[|}]', -- 176
'{{ *[Uu]se *(dmy) *[|}]', -- 156 + 18
'{{ *[Uu]se *(mdy) *[|}]', -- 149 + 11
'{{ *([Dd]my) *[|}]', -- 56
'{{ *[Uu]se +(MDY) *[|}]', -- 5
'{{ *([Dd]MY) *[|}]', -- 3
'{{ *[Uu]se(mdy)dates *[|}]', -- 1
'{{ *[Uu]se +(DMY) *[|}]', -- 0
'{{ *([Mm]DY) *[|}]', -- 0
}
local function get_date_format ()
local title_object = mw.title.getCurrentTitle();
if title_object.namespace == 10 then -- not in template space so that unused templates appear in unused-template-reports;
return nil; -- auto-formatting does not work in Template space so don't set global_df
end
local content = title_object:getContent() or ''; -- get the content of the article or ''; new pages edited w/ve do not have 'content' until saved; ve does not preview; phab:T221625
for _, pattern in ipairs (df_template_patterns) do -- loop through the patterns looking for {{Use dmy dates}} or {{Use mdy dates}} or any of their redirects
local start, _, match = content:find(pattern); -- match is the three letters indicating desired date format
if match then
content = content:match ('%b{}', start); -- get the whole template
if content:match ('| *cs1%-dates *= *[lsy][sy]?') then -- look for |cs1-dates=publication date length access-/archive-date length
return match:lower() .. '-' .. content:match ('| *cs1%-dates *= *([lsy][sy]?)');
else
return match:lower() .. '-all'; -- no |cs1-dates= k/v pair; return value appropriate for use in |df=
end
end
end
end
local global_df;
--[[-----------------< V O L U M E , I S S U E , P A G E S >------------------
These tables hold cite class values (from the template invocation) and identify those templates that support
|volume=, |issue=, and |page(s)= parameters. Cite conference and cite map require further qualification which
is handled in the main module.
]]
local templates_using_volume = {'citation', 'audio-visual', 'book', 'conference', 'encyclopaedia', 'interview', 'journal', 'magazine', 'map', 'news', 'report', 'techreport', 'thesis'}
local templates_using_issue = {'citation', 'conference', 'episode', 'interview', 'journal', 'magazine', 'map', 'news', 'podcast'}
local templates_not_using_page = {'audio-visual', 'episode', 'mailinglist', 'newsgroup', 'podcast', 'serial', 'sign', 'speech'}
--[[
These tables control when it is appropriate for {{citation}} to render |volume= and/or |issue=. The parameter
names in the tables constrain {{citation}} so that its renderings match the renderings of the equivalent cs1
templates. For example, {{cite web}} does not support |volume= so the equivalent {{citation |website=...}} must
not support |volume=.
]]
local citation_no_volume_t = { -- {{citation}} does not render |volume= when these parameters are used
'website', 'mailinglist', 'script-website',
}
local citation_issue_t = { -- {{citation}} may render |issue= when these parameters are used
'journal', 'magazine', 'newspaper', 'periodical', 'work',
'script-journal', 'script-magazine', 'script-newspaper', 'script-periodical', 'script-work',
}
--[[
Patterns for finding extra text in |volume=, |issue=, |page=, |pages=
]]
local vol_iss_pg_patterns = {
good_ppattern = '^P[^%.PpGg]', -- OK to begin with uppercase P: P7 (page 7 of section P), but not p123 (page 123); TODO: this allows 'Pages' which it should not
bad_ppatterns = { -- patterns for |page= and |pages=
'^[Pp][PpGg]?%.?[ %d]',
'^[Pp][Pp]?%. ', -- from {{p.}} and {{pp.}} templates
'^[Pp]ages?',
'^[Pp]gs.?',
},
vpatterns = { -- patterns for |volume=
'^volumes?',
'^vols?[%.:=]?'
},
ipatterns = { -- patterns for |issue=
'^issues?',
'^iss[%.:=]?',
'^numbers?',
'^nos?%A', -- don't match 'november' or 'nostradamus'
'^nr[%.:=]?',
'^n[%.:= ]' -- might be a valid issue without separator (space char is sep char here)
}
}
--[[--------------------------< K E Y W O R D S >-------------------------------
These tables hold keywords for those parameters that have defined sets of acceptable keywords.
]]
--[[-------------------< K E Y W O R D S T A B L E >--------------------------
this is a list of keywords; each key in the list is associated with a table of
synonymous keywords possibly from different languages.
for I18N: add local-language keywords to value table; do not change the key.
For example, adding the German keyword 'ja':
['affirmative'] = {'yes', 'true', 'y', 'ja'},
Because CS1|2 templates from en.wiki articles are often copied to other local wikis,
it is recommended that the English keywords remain in these tables.
]]
local keywords = {
['amp'] = {'&', 'amp', 'ampersand'}, -- |name-list-style=
['and'] = {'and', 'serial'}, -- |name-list-style=
['affirmative'] = {'yes', 'true', 'y'}, -- |no-tracking=, |no-pp= -- Used by InternetArchiveBot
['afterword'] = {'afterword'}, -- |contribution=
['bot: unknown'] = {'bot: unknown'}, -- |url-status= -- Used by InternetArchiveBot
['cs1'] = {'cs1'}, -- |mode=
['cs2'] = {'cs2'}, -- |mode=
['dead'] = {'dead', 'deviated'}, -- |url-status= -- Used by InternetArchiveBot
['dmy'] = {'dmy'}, -- |df=
['dmy-all'] = {'dmy-all'}, -- |df=
['foreword'] = {'foreword'}, -- |contribution=
['free'] = {'free'}, -- |<id>-access= -- Used by InternetArchiveBot
['harv'] = {'harv'}, -- |ref=; this no longer supported; is_valid_parameter_value() called with <invert> = true
['introduction'] = {'introduction'}, -- |contribution=
['limited'] = {'limited'}, -- |url-access= -- Used by InternetArchiveBot
['live'] = {'live'}, -- |url-status= -- Used by InternetArchiveBot
['mdy'] = {'mdy'}, -- |df=
['mdy-all'] = {'mdy-all'}, -- |df=
['none'] = {'none'}, -- |postscript=, |ref=, |title=, |type= -- Used by InternetArchiveBot
['off'] = {'off'}, -- |title= (potentially also: |title-link=, |postscript=, |ref=, |type=)
['preface'] = {'preface'}, -- |contribution=
['registration'] = {'registration'}, -- |url-access= -- Used by InternetArchiveBot
['subscription'] = {'subscription'}, -- |url-access= -- Used by InternetArchiveBot
['unfit'] = {'unfit'}, -- |url-status= -- Used by InternetArchiveBot
['usurped'] = {'usurped'}, -- |url-status= -- Used by InternetArchiveBot
['vanc'] = {'vanc'}, -- |name-list-style=
['ymd'] = {'ymd'}, -- |df=
['ymd-all'] = {'ymd-all'}, -- |df=
-- ['yMd'] = {'yMd'}, -- |df=; not supported at en.wiki
-- ['yMd-all'] = {'yMd-all'}, -- |df=; not supported at en.wiki
}
--[[------------------------< X L A T E _ K E Y W O R D S >---------------------
this function builds a list, keywords_xlate{}, of the keywords found in keywords{} where the values from keywords{}
become the keys in keywords_xlate{} and the keys from keywords{} become the values in keywords_xlate{}:
['affirmative'] = {'yes', 'true', 'y'}, -- in keywords{}
becomes
['yes'] = 'affirmative', -- in keywords_xlate{}
['true'] = 'affirmative',
['y'] = 'affirmative',
the purpose of this function is to act as a translator between a non-English keyword and its English equivalent
that may be used in other modules of this suite
]]
local function xlate_keywords ()
local out_table = {}; -- output goes here
for k, keywords_t in pairs (keywords) do -- spin through the keywords table
for _, keyword in ipairs (keywords_t) do -- for each keyword
out_table[keyword] = k; -- create an entry in the output table where keyword is the key
end
end
return out_table;
end
local keywords_xlate = xlate_keywords (); -- the list of translated keywords
--[[----------------< M A K E _ K E Y W O R D S _ L I S T >---------------------
this function assembles, for parameter-value validation, the list of keywords appropriate to that parameter.
keywords_lists{}, is a table of tables from keywords{}
]]
local function make_keywords_list (keywords_lists)
local out_table = {}; -- output goes here
for _, keyword_list in ipairs (keywords_lists) do -- spin through keywords_lists{} and get a table of keywords
for _, keyword in ipairs (keyword_list) do -- spin through keyword_list{} and add each keyword, ...
table.insert (out_table, keyword); -- ... as plain text, to the output list
end
end
return out_table;
end
--[[----------------< K E Y W O R D S _ L I S T S >-----------------------------
this is a list of lists of valid keywords for the various parameters in [key].
Generally the keys in this table are the canonical en.wiki parameter names though
some are contrived because of use in multiple differently named parameters:
['yes_true_y'], ['id-access'].
The function make_keywords_list() extracts the individual keywords from the
appropriate list in keywords{}.
The lists in this table are used to validate the keyword assignment for the
parameters named in this table's keys.
]]
local keywords_lists = {
['yes_true_y'] = make_keywords_list ({keywords.affirmative}),
['contribution'] = make_keywords_list ({keywords.afterword, keywords.foreword, keywords.introduction, keywords.preface}),
['df'] = make_keywords_list ({keywords.dmy, keywords['dmy-all'], keywords.mdy, keywords['mdy-all'], keywords.ymd, keywords['ymd-all']}),
-- ['df'] = make_keywords_list ({keywords.dmy, keywords['dmy-all'], keywords.mdy, keywords['mdy-all'], keywords.ymd, keywords['ymd-all'], keywords.yMd, keywords['yMd-all']}), -- not supported at en.wiki
['mode'] = make_keywords_list ({keywords.cs1, keywords.cs2}),
['name-list-style'] = make_keywords_list ({keywords.amp, keywords['and'], keywords.vanc}),
['ref'] = make_keywords_list ({keywords.harv}), -- inverted check; |ref=harv no longer supported
['url-access'] = make_keywords_list ({keywords.subscription, keywords.limited, keywords.registration}),
['url-status'] = make_keywords_list ({keywords.dead, keywords.live, keywords.unfit, keywords.usurped, keywords['bot: unknown']}),
['id-access'] = make_keywords_list ({keywords.free}),
}
--[[---------------------< S T R I P M A R K E R S >----------------------------
Common pattern definition location for stripmarkers so that we don't have to go
hunting for them if (when) MediaWiki changes their form.
]]
local stripmarkers = {
['any'] = '\127[^\127]*UNIQ%-%-(%a+)%-[%a%d]+%-QINU[^\127]*\127', -- capture returns name of stripmarker
['math'] = '\127[^\127]*UNIQ%-%-math%-[%a%d]+%-QINU[^\127]*\127' -- math stripmarkers used in coins_cleanup() and coins_replace_math_stripmarker()
}
--[[------------< I N V I S I B L E _ C H A R A C T E R S >---------------------
This table holds non-printing or invisible characters indexed either by name or
by Unicode group. Values are decimal representations of UTF-8 codes. The table
is organized as a table of tables because the Lua pairs keyword returns table
data in an arbitrary order. Here, we want to process the table from top to bottom
because the entries at the top of the table are also found in the ranges specified
by the entries at the bottom of the table.
Also here is a pattern that recognizes stripmarkers that begin and end with the
delete characters. The nowiki stripmarker is not an error but some others are
because the parameter values that include them become part of the template's
metadata before stripmarker replacement.
]]
local invisible_defs = {
del = '\127', -- used to distinguish between stripmarker and del char
zwj = '\226\128\141', -- used with capture because zwj may be allowed
}
local invisible_chars = {
{'replacement', '\239\191\189'}, -- U+FFFD, EF BF BD
{'zero width joiner', '('.. invisible_defs.zwj .. ')'}, -- U+200D, E2 80 8D; capture because zwj may be allowed
{'zero width space', '\226\128\139'}, -- U+200B, E2 80 8B
{'hair space', '\226\128\138'}, -- U+200A, E2 80 8A
{'soft hyphen', '\194\173'}, -- U+00AD, C2 AD
{'horizontal tab', '\009'}, -- U+0009 (HT), 09
{'line feed', '\010'}, -- U+000A (LF), 0A
{'no-break space', '\194\160'}, -- U+00A0 (NBSP), C2 A0
{'carriage return', '\013'}, -- U+000D (CR), 0D
{'stripmarker', stripmarkers.any}, -- stripmarker; may or may not be an error; capture returns the stripmaker type
{'delete', '('.. invisible_defs.del .. ')'}, -- U+007F (DEL), 7F; must be done after stripmarker test; capture to distinguish isolated del chars not part of stripmarker
{'C0 control', '[\000-\008\011\012\014-\031]'}, -- U+0000–U+001F (NULL–US), 00–1F (except HT, LF, CR (09, 0A, 0D))
{'C1 control', '[\194\128-\194\159]'}, -- U+0080–U+009F (XXX–APC), C2 80 – C2 9F
-- {'Specials', '[\239\191\185-\239\191\191]'}, -- U+FFF9-U+FFFF, EF BF B9 – EF BF BF
-- {'Private use area', '[\238\128\128-\239\163\191]'}, -- U+E000–U+F8FF, EE 80 80 – EF A3 BF
-- {'Supplementary Private Use Area-A', '[\243\176\128\128-\243\191\191\189]'}, -- U+F0000–U+FFFFD, F3 B0 80 80 – F3 BF BF BD
-- {'Supplementary Private Use Area-B', '[\244\128\128\128-\244\143\191\189]'}, -- U+100000–U+10FFFD, F4 80 80 80 – F4 8F BF BD
}
--[[
Indic script makes use of zero width joiner as a character modifier so zwj
characters must be left in. This pattern covers all of the unicode characters
for these languages:
Devanagari 0900–097F – https://unicode.org/charts/PDF/U0900.pdf
Devanagari extended A8E0–A8FF – https://unicode.org/charts/PDF/UA8E0.pdf
Bengali 0980–09FF – https://unicode.org/charts/PDF/U0980.pdf
Gurmukhi 0A00–0A7F – https://unicode.org/charts/PDF/U0A00.pdf
Gujarati 0A80–0AFF – https://unicode.org/charts/PDF/U0A80.pdf
Oriya 0B00–0B7F – https://unicode.org/charts/PDF/U0B00.pdf
Tamil 0B80–0BFF – https://unicode.org/charts/PDF/U0B80.pdf
Telugu 0C00–0C7F – https://unicode.org/charts/PDF/U0C00.pdf
Kannada 0C80–0CFF – https://unicode.org/charts/PDF/U0C80.pdf
Malayalam 0D00–0D7F – https://unicode.org/charts/PDF/U0D00.pdf
plus the not-necessarily Indic scripts for Sinhala and Burmese:
Sinhala 0D80-0DFF - https://unicode.org/charts/PDF/U0D80.pdf
Myanmar 1000-109F - https://unicode.org/charts/PDF/U1000.pdf
Myanmar extended A AA60-AA7F - https://unicode.org/charts/PDF/UAA60.pdf
Myanmar extended B A9E0-A9FF - https://unicode.org/charts/PDF/UA9E0.pdf
the pattern is used by has_invisible_chars() and coins_cleanup()
]]
local indic_script = '[\224\164\128-\224\181\191\224\163\160-\224\183\191\225\128\128-\225\130\159\234\167\160-\234\167\191\234\169\160-\234\169\191]';
-- list of emoji that use zwj character (U+200D) to combine with another emoji
local emoji = { -- indexes are decimal forms of the hex values in U+xxxx
[127752] = true, -- U+1F308 🌈 rainbow
[127806] = true, -- U+1F33E 🌾 ear of rice
[127859] = true, -- U+1F373 🍳 cooking
[127891] = true, -- U+1F393 🎓 graduation cap
[127908] = true, -- U+1F3A4 🎤 microphone
[127912] = true, -- U+1F3A8 🎨 artist palette
[127979] = true, -- U+1F3EB 🏫 school
[127981] = true, -- U+1F3ED 🏭 factory
[128102] = true, -- U+1F466 👦 boy
[128103] = true, -- U+1F467 👧 girl
[128104] = true, -- U+1F468 👨 man
[128105] = true, -- U+1F469 👩 woman
[128139] = true, -- U+1F48B 💋 kiss mark
[128187] = true, -- U+1F4BB 💻 personal computer
[128188] = true, -- U+1F4BC 💼 brief case
[128295] = true, -- U+1F527 🔧 wrench
[128300] = true, -- U+1F52C 🔬 microscope
[128488] = true, -- U+1F5E8 🗨 left speech bubble
[128640] = true, -- U+1F680 🚀 rocket
[128658] = true, -- U+1F692 🚒 fire engine
[129309] = true, -- U+1F91D 🤝 handshake
[129455] = true, -- U+1F9AF 🦯 probing cane
[129456] = true, -- U+1F9B0 🦰 emoji component red hair
[129457] = true, -- U+1F9B1 🦱 emoji component curly hair
[129458] = true, -- U+1F9B2 🦲 emoji component bald
[129459] = true, -- U+1F9B3 🦳 emoji component white hair
[129466] = true, -- U+1F9BA 🦺 safety vest
[129468] = true, -- U+1F9BC 🦼 motorized wheelchair
[129469] = true, -- U+1F9BD 🦽 manual wheelchair
[129489] = true, -- U+1F9D1 🧑 adult
[9760] = true, -- U+2620 ☠ skull and crossbones
[9792] = true, -- U+2640 ♀ female sign
[9794] = true, -- U+2642 ♂ male sign
[9877] = true, -- U+2695 ⚕ staff of aesculapius
[9878] = true, -- U+2696 ⚖ scales
[9992] = true, -- U+2708 ✈ airplane
[10084] = true, -- U+2764 ❤ heavy black heart
}
--[[----------------------< L A N G U A G E S U P P O R T >-------------------
These tables and constants support various language-specific functionality.
]]
--local this_wiki_code = mw.getContentLanguage():getCode(); -- get this wiki's language code
local this_wiki_code = lang_obj:getCode(); -- get this wiki's language code
if string.match (mw.site.server, 'wikidata') then
this_wiki_code = mw.getCurrentFrame():preprocess('{{int:lang}}'); -- on Wikidata so use interface language setting instead
end
local mw_languages_by_tag_t = mw.language.fetchLanguageNames (this_wiki_code, 'all'); -- get a table of language tag/name pairs known to Wikimedia; used for interwiki tests
local mw_languages_by_name_t = {};
for k, v in pairs (mw_languages_by_tag_t) do -- build a 'reversed' table name/tag language pairs know to MediaWiki; used for |language=
v = mw.ustring.lower (v); -- lowercase for tag fetch; get name's proper case from mw_languages_by_tag_t[<tag>]
if mw_languages_by_name_t[v] then -- when name already in the table
if 2 == #k or 3 == #k then -- if tag does not have subtags
mw_languages_by_name_t[v] = k; -- prefer the shortest tag for this name
end
else -- here when name not in the table
mw_languages_by_name_t[v] = k; -- so add name and matching tag
end
end
local inter_wiki_map = {}; -- map of interwiki prefixes that are language-code prefixes
for k, v in pairs (mw.site.interwikiMap ('local')) do -- spin through the base interwiki map (limited to local)
if mw_languages_by_tag_t[v["prefix"]] then -- if the prefix matches a known language tag
inter_wiki_map[v["prefix"]] = true; -- add it to our local map
end
end
--[[--------------------< S C R I P T _ L A N G _ C O D E S >-------------------
This table is used to hold ISO 639-1 two-character and ISO 639-3 three-character
language codes that apply only to |script-title= and |script-chapter=
]]
local script_lang_codes = {
'ab', 'am', 'ar', 'be', 'bg', 'bn', 'bo', 'bs', 'dv', 'dz', 'el', 'fa', 'gu',
'he', 'hi', 'hy', 'ja', 'ka', 'kk', 'km', 'kn', 'ko', 'ku', 'ky', 'lo', 'mk',
'ml', 'mn', 'mr', 'my', 'ne', 'or', 'ota', 'ps', 'ru', 'sd', 'si', 'sr', 'syc',
'ta', 'te', 'tg', 'th', 'ti', 'ug', 'uk', 'ur', 'uz', 'yi', 'yue', 'zh'
};
--[[---------------< L A N G U A G E R E M A P P I N G >----------------------
These tables hold language information that is different (correct) from MediaWiki's definitions
For each ['code'] = 'language name' in lang_code_remap{} there must be a matching ['language name'] = {'language name', 'code'} in lang_name_remap{}
lang_code_remap{}:
key is always lowercase ISO 639-1, -2, -3 language code or a valid lowercase IETF language tag
value is properly spelled and capitalized language name associated with key
only one language name per key;
key/value pair must have matching entry in lang_name_remap{}
lang_name_remap{}:
key is always lowercase language name
value is a table the holds correctly spelled and capitalized language name [1] and associated code [2] (code must match a code key in lang_code_remap{})
may have multiple keys referring to a common preferred name and code; For example:
['kolsch'] and ['kölsch'] both refer to 'Kölsch' and 'ksh'
]]
local lang_code_remap = { -- used for |language= and |script-title= / |script-chapter=
['als'] = 'Tosk Albanian', -- MediaWiki returns Alemannisch
['bh'] = 'Bihari', -- MediaWiki uses 'bh' as a subdomain name for Bhojpuri Wikipedia: bh.wikipedia.org
['bla'] = 'Blackfoot', -- MediaWiki/IANA/ISO 639: Siksika; use en.wiki preferred name
['bn'] = 'Bengali', -- MediaWiki returns Bangla
['ca-valencia'] = 'Valencian', -- IETF variant of Catalan
['ilo'] = 'Ilocano', -- MediaWiki/IANA/ISO 639: Iloko; use en.wiki preferred name
['ksh'] = 'Kölsch', -- MediaWiki: Colognian; use IANA/ISO 639 preferred name
['ksh-x-colog'] = 'Colognian', -- override MediaWiki ksh; no IANA/ISO 639 code for Colognian; IETF private code created at Module:Lang/data
['mis-x-ripuar'] = 'Ripuarian', -- override MediaWiki ksh; no IANA/ISO 639 code for Ripuarian; IETF private code created at Module:Lang/data
['nan-tw'] = 'Taiwanese Hokkien', -- make room for MediaWiki/IANA/ISO 639 nan: Min Nan Chinese and support en.wiki preferred name
}
local lang_name_remap = { -- used for |language=; names require proper capitalization; tags must be lowercase
['alemannisch'] = {'Swiss German', 'gsw'}, -- not an ISO or IANA language name; MediaWiki uses 'als' as a subdomain name for Alemannic Wikipedia: als.wikipedia.org
['bangla'] = {'Bengali', 'bn'}, -- MediaWiki returns Bangla (the endonym) but we want Bengali (the exonym); here we remap
['bengali'] = {'Bengali', 'bn'}, -- MediaWiki doesn't use exonym so here we provide correct language name and 639-1 code
['bhojpuri'] = {'Bhojpuri', 'bho'}, -- MediaWiki uses 'bh' as a subdomain name for Bhojpuri Wikipedia: bh.wikipedia.org
['bihari'] = {'Bihari', 'bh'}, -- MediaWiki replaces 'Bihari' with 'Bhojpuri' so 'Bihari' cannot be found
['blackfoot'] = {'Blackfoot', 'bla'}, -- MediaWiki/IANA/ISO 639: Siksika; use en.wiki preferred name
['colognian'] = {'Colognian', 'ksh-x-colog'}, -- MediaWiki preferred name for ksh
['ilocano'] = {'Ilocano', 'ilo'}, -- MediaWiki/IANA/ISO 639: Iloko; use en.wiki preferred name
['kolsch'] = {'Kölsch', 'ksh'}, -- use IANA/ISO 639 preferred name (use non-diacritical o instead of umlaut ö)
['kölsch'] = {'Kölsch', 'ksh'}, -- use IANA/ISO 639 preferred name
['ripuarian'] = {'Ripuarian', 'mis-x-ripuar'}, -- group of dialects; no code in MediaWiki or in IANA/ISO 639
['taiwanese hokkien'] = {'Taiwanese Hokkien', 'nan-tw'}, -- make room for MediaWiki/IANA/ISO 639 nan: Min Nan Chinese
['tosk albanian'] = {'Tosk Albanian', 'als'}, -- MediaWiki replaces 'Tosk Albanian' with 'Alemannisch' so 'Tosk Albanian' cannot be found
['valencian'] = {'Valencian', 'ca'}, -- variant of Catalan; categorizes as Catalan
}
--[[---------------< P R O P E R T I E S _ C A T E G O R I E S >----------------
Properties categories. These are used for investigating qualities of citations.
]]
local prop_cats = {
['foreign-lang-source'] = 'CS1 $1-language sources ($2)', -- |language= categories; $1 is foreign-language name, $2 is ISO639-1 code
['foreign-lang-source-2'] = 'CS1 foreign language sources (ISO 639-2)|$1', -- |language= category; a cat for ISO639-2 languages; $1 is the ISO 639-2 code used as a sort key
['jul-greg-uncertainty'] = 'CS1: Julian–Gregorian uncertainty', -- probably temporary cat to identify scope of template with dates 1 October 1582 – 1 January 1926
['local-lang-source'] = 'CS1 $1-language sources ($2)', -- |language= categories; $1 is local-language name, $2 is ISO639-1 code; not emitted when local_lang_cat_enable is false
['location-test'] = 'CS1 location test',
['long-vol'] = 'CS1: long volume value', -- probably temporary cat to identify scope of |volume= values longer than 4 charachters
['script'] = 'CS1 uses $1-language script ($2)', -- |script-title=xx: has matching category; $1 is language name, $2 is ISO639-1 code
['tracked-param'] = 'CS1 tracked parameter: $1', -- $1 is base (enumerators removed) parameter name
['year-range-abbreviated'] = 'CS1: abbreviated year range', -- probably temporary cat to identify scope of |date=, |year= values using YYYY–YY form
}
--[[-------------------< T I T L E _ T Y P E S >--------------------------------
Here we map a template's CitationClass to TitleType (default values for |type= parameter)
]]
local title_types = {
['AV-media-notes'] = 'Media notes',
['interview'] = 'Interview',
['mailinglist'] = 'Mailing list',
['map'] = 'Map',
['podcast'] = 'Podcast',
['pressrelease'] = 'Press release',
['report'] = 'Report',
['speech'] = 'Speech',
['techreport'] = 'Technical report',
['thesis'] = 'Thesis',
}
--[[===================<< E R R O R M E S S A G I N G >>======================
]]
--[[----------< E R R O R M E S S A G E S U P P L I M E N T S >-------------
I18N for those messages that are supplemented with additional specific text that
describes the reason for the error
TODO: merge this with special_case_translations{}?
]]
local err_msg_supl = {
['char'] = 'invalid character', -- |isbn=, |sbn=
['check'] = 'checksum', -- |isbn=, |sbn=
['flag'] = 'flag', -- |archive-url=
['form'] = 'invalid form', -- |isbn=, |sbn=
['group'] = 'invalid group id', -- |isbn=
['initials'] = 'initials', -- Vancouver
['invalid language code'] = 'invalid language code', -- |script-<param>=
['journal'] = 'journal', -- |bibcode=
['length'] = 'length', -- |isbn=, |bibcode=, |sbn=
['liveweb'] = 'liveweb', -- |archive-url=
['missing comma'] = 'missing comma', -- Vancouver
['missing prefix'] = 'missing prefix', -- |script-<param>=
['missing title part'] = 'missing title part', -- |script-<param>=
['name'] = 'name', -- Vancouver
['non-Latin char'] = 'non-Latin character', -- Vancouver
['path'] = 'path', -- |archive-url=
['prefix'] = 'invalid prefix', -- |isbn=
['punctuation'] = 'punctuation', -- Vancouver
['save'] = 'save command', -- |archive-url=
['suffix'] = 'suffix', -- Vancouver
['timestamp'] = 'timestamp', -- |archive-url=
['unknown language code'] = 'unknown language code', -- |script-<param>=
['value'] = 'value', -- |bibcode=
['year'] = 'year', -- |bibcode=
}
--[[--------------< E R R O R _ C O N D I T I O N S >---------------------------
Error condition table. This table has two sections: errors at the top, maintenance
at the bottom. Maint 'messaging' does not have a 'message' (message=nil)
The following contains a list of IDs for various error conditions defined in the
code. For each ID, we specify a text message to display, an error category to
include, and whether the error message should be wrapped as a hidden comment.
Anchor changes require identical changes to matching anchor in Help:CS1 errors
TODO: rename error_conditions{} to something more generic; create separate error
and maint tables inside that?
]]
local error_conditions = {
err_accessdate_missing_url = {
message = '<code class="cs1-code">|access-date=</code> requires <code class="cs1-code">|url=</code>',
anchor = 'accessdate_missing_url',
category = 'CS1 errors: access-date without URL',
hidden = false
},
err_apostrophe_markup = {
message = 'Italic or bold markup not allowed in: <code class="cs1-code">|$1=</code>', -- $1 is parameter name
anchor = 'apostrophe_markup',
category = 'CS1 errors: markup',
hidden = false
},
err_archive_missing_date = {
message = '<code class="cs1-code">|archive-url=</code> requires <code class="cs1-code">|archive-date=</code>',
anchor = 'archive_missing_date',
category = 'CS1 errors: archive-url',
hidden = false
},
err_archive_missing_url = {
message = '<code class="cs1-code">|archive-url=</code> requires <code class="cs1-code">|url=</code>',
anchor = 'archive_missing_url',
category = 'CS1 errors: archive-url',
hidden = false
},
err_archive_url = {
message = '<code class="cs1-code">|archive-url=</code> is malformed: $1', -- $1 is error message detail
anchor = 'archive_url',
category = 'CS1 errors: archive-url',
hidden = false
},
err_arxiv_missing = {
message = '<code class="cs1-code">|arxiv=</code> required',
anchor = 'arxiv_missing',
category = 'CS1 errors: arXiv', -- same as bad arxiv
hidden = false
},
err_asintld_missing_asin = {
message = '<code class="cs1-code">|$1=</code> requires <code class="cs1-code">|asin=</code>', -- $1 is parameter name
anchor = 'asintld_missing_asin',
category = 'CS1 errors: ASIN TLD',
hidden = false
},
err_bad_arxiv = {
message = 'Check <code class="cs1-code">|arxiv=</code> value',
anchor = 'bad_arxiv',
category = 'CS1 errors: arXiv',
hidden = false
},
err_bad_asin = {
message = 'Check <code class="cs1-code">|asin=</code> value',
anchor = 'bad_asin',
category ='CS1 errors: ASIN',
hidden = false
},
err_bad_asin_tld = {
message = 'Check <code class="cs1-code">|asin-tld=</code> value',
anchor = 'bad_asin_tld',
category ='CS1 errors: ASIN TLD',
hidden = false
},
err_bad_bibcode = {
message = 'Check <code class="cs1-code">|bibcode=</code> $1', -- $1 is error message detail
anchor = 'bad_bibcode',
category = 'CS1 errors: bibcode',
hidden = false
},
err_bad_biorxiv = {
message = 'Check <code class="cs1-code">|biorxiv=</code> value',
anchor = 'bad_biorxiv',
category = 'CS1 errors: bioRxiv',
hidden = false
},
err_bad_citeseerx = {
message = 'Check <code class="cs1-code">|citeseerx=</code> value',
anchor = 'bad_citeseerx',
category = 'CS1 errors: citeseerx',
hidden = false
},
err_bad_date = {
message = 'Check date values in: $1', -- $1 is a parameter name list
anchor = 'bad_date',
category = 'CS1 errors: dates',
hidden = false
},
err_bad_doi = {
message = 'Check <code class="cs1-code">|doi=</code> value',
anchor = 'bad_doi',
category = 'CS1 errors: DOI',
hidden = false
},
err_bad_hdl = {
message = 'Check <code class="cs1-code">|hdl=</code> value',
anchor = 'bad_hdl',
category = 'CS1 errors: HDL',
hidden = false
},
err_bad_isbn = {
message = 'Check <code class="cs1-code">|isbn=</code> value: $1', -- $1 is error message detail
anchor = 'bad_isbn',
category = 'CS1 errors: ISBN',
hidden = false
},
err_bad_ismn = {
message = 'Check <code class="cs1-code">|ismn=</code> value',
anchor = 'bad_ismn',
category = 'CS1 errors: ISMN',
hidden = false
},
err_bad_issn = {
message = 'Check <code class="cs1-code">|$1issn=</code> value', -- $1 is 'e' or '' for eissn or issn
anchor = 'bad_issn',
category = 'CS1 errors: ISSN',
hidden = false
},
err_bad_jfm = {
message = 'Check <code class="cs1-code">|jfm=</code> value',
anchor = 'bad_jfm',
category = 'CS1 errors: JFM',
hidden = false
},
err_bad_jstor = {
message = 'Check <code class="cs1-code">|jstor=</code> value',
anchor = 'bad_jstor',
category = 'CS1 errors: JSTOR',
hidden = false
},
err_bad_lccn = {
message = 'Check <code class="cs1-code">|lccn=</code> value',
anchor = 'bad_lccn',
category = 'CS1 errors: LCCN',
hidden = false
},
err_bad_mr = {
message = 'Check <code class="cs1-code">|mr=</code> value',
anchor = 'bad_mr',
category = 'CS1 errors: MR',
hidden = false
},
err_bad_oclc = {
message = 'Check <code class="cs1-code">|oclc=</code> value',
anchor = 'bad_oclc',
category = 'CS1 errors: OCLC',
hidden = false
},
err_bad_ol = {
message = 'Check <code class="cs1-code">|ol=</code> value',
anchor = 'bad_ol',
category = 'CS1 errors: OL',
hidden = false
},
err_bad_osti = {
message = 'Check <code class="cs1-code">|osti=</code> value',
anchor = 'bad_osti',
category = 'CS1 errors: OSTI',
hidden = false
},
err_bad_paramlink = { -- for |title-link=, |author/editor/translator-link=, |series-link=, |episode-link=
message = 'Check <code class="cs1-code">|$1=</code> value', -- $1 is parameter name
anchor = 'bad_paramlink',
category = 'CS1 errors: parameter link',
hidden = false
},
err_bad_pmc = {
message = 'Check <code class="cs1-code">|pmc=</code> value',
anchor = 'bad_pmc',
category = 'CS1 errors: PMC',
hidden = false
},
err_bad_pmid = {
message = 'Check <code class="cs1-code">|pmid=</code> value',
anchor = 'bad_pmid',
category = 'CS1 errors: PMID',
hidden = false
},
err_bad_rfc = {
message = 'Check <code class="cs1-code">|rfc=</code> value',
anchor = 'bad_rfc',
category = 'CS1 errors: RFC',
hidden = false
},
err_bad_s2cid = {
message = 'Check <code class="cs1-code">|s2cid=</code> value',
anchor = 'bad_s2cid',
category = 'CS1 errors: S2CID',
hidden = false
},
err_bad_sbn = {
message = 'Check <code class="cs1-code">|sbn=</code> value: $1', -- $1 is error message detail
anchor = 'bad_sbn',
category = 'CS1 errors: SBN',
hidden = false
},
err_bad_ssrn = {
message = 'Check <code class="cs1-code">|ssrn=</code> value',
anchor = 'bad_ssrn',
category = 'CS1 errors: SSRN',
hidden = false
},
err_bad_url = {
message = 'Check $1 value', -- $1 is parameter name
anchor = 'bad_url',
category = 'CS1 errors: URL',
hidden = false
},
err_bad_usenet_id = {
message = 'Check <code class="cs1-code">|message-id=</code> value',
anchor = 'bad_message_id',
category = 'CS1 errors: message-id',
hidden = false
},
err_bad_zbl = {
message = 'Check <code class="cs1-code">|zbl=</code> value',
anchor = 'bad_zbl',
category = 'CS1 errors: Zbl',
hidden = false
},
err_bare_url_missing_title = {
message = '$1 missing title', -- $1 is parameter name
anchor = 'bare_url_missing_title',
category = 'CS1 errors: bare URL',
hidden = false
},
err_biorxiv_missing = {
message = '<code class="cs1-code">|biorxiv=</code> required',
anchor = 'biorxiv_missing',
category = 'CS1 errors: bioRxiv', -- same as bad bioRxiv
hidden = false
},
err_chapter_ignored = {
message = '<code class="cs1-code">|$1=</code> ignored', -- $1 is parameter name
anchor = 'chapter_ignored',
category = 'CS1 errors: chapter ignored',
hidden = false
},
err_citation_missing_title = {
message = 'Missing or empty <code class="cs1-code">|$1=</code>', -- $1 is parameter name
anchor = 'citation_missing_title',
category = 'CS1 errors: missing title',
hidden = false
},
err_citeseerx_missing = {
message = '<code class="cs1-code">|citeseerx=</code> required',
anchor = 'citeseerx_missing',
category = 'CS1 errors: citeseerx', -- same as bad citeseerx
hidden = false
},
err_cite_web_url = { -- this error applies to cite web and to cite podcast
message = 'Missing or empty <code class="cs1-code">|url=</code>',
anchor = 'cite_web_url',
category = 'CS1 errors: requires URL',
hidden = false
},
err_class_ignored = {
message = '<code class="cs1-code">|class=</code> ignored',
anchor = 'class_ignored',
category = 'CS1 errors: class',
hidden = false
},
err_contributor_ignored = {
message = '<code class="cs1-code">|contributor=</code> ignored',
anchor = 'contributor_ignored',
category = 'CS1 errors: contributor',
hidden = false
},
err_contributor_missing_required_param = {
message = '<code class="cs1-code">|contributor=</code> requires <code class="cs1-code">|$1=</code>', -- $1 is parameter name
anchor = 'contributor_missing_required_param',
category = 'CS1 errors: contributor',
hidden = false
},
err_deprecated_params = {
message = 'Cite uses deprecated parameter <code class="cs1-code">|$1=</code>', -- $1 is parameter name
anchor = 'deprecated_params',
category = 'CS1 errors: deprecated parameters',
hidden = false
},
err_disp_name = {
message = 'Invalid <code class="cs1-code">|$1=$2</code>', -- $1 is parameter name; $2 is the assigned value
anchor = 'disp_name',
category = 'CS1 errors: display-names',
hidden = false,
},
err_doibroken_missing_doi = {
message = '<code class="cs1-code">|$1=</code> requires <code class="cs1-code">|doi=</code>', -- $1 is parameter name
anchor = 'doibroken_missing_doi',
category = 'CS1 errors: DOI',
hidden = false
},
err_embargo_missing_pmc = {
message = '<code class="cs1-code">|$1=</code> requires <code class="cs1-code">|pmc=</code>', -- $1 is parameter name
anchor = 'embargo_missing_pmc',
category = 'CS1 errors: PMC embargo',
hidden = false
},
err_empty_citation = {
message = 'Empty citation',
anchor = 'empty_citation',
category = 'CS1 errors: empty citation',
hidden = false
},
err_etal = {
message = 'Explicit use of et al. in: <code class="cs1-code">|$1=</code>', -- $1 is parameter name
anchor = 'explicit_et_al',
category = 'CS1 errors: explicit use of et al.',
hidden = false
},
err_extra_text_edition = {
message = '<code class="cs1-code">|edition=</code> has extra text',
anchor = 'extra_text_edition',
category = 'CS1 errors: extra text: edition',
hidden = false,
},
err_extra_text_issue = {
message = '<code class="cs1-code">|$1=</code> has extra text', -- $1 is parameter name
anchor = 'extra_text_issue',
category = 'CS1 errors: extra text: issue',
hidden = false,
},
err_extra_text_pages = {
message = '<code class="cs1-code">|$1=</code> has extra text', -- $1 is parameter name
anchor = 'extra_text_pages',
category = 'CS1 errors: extra text: pages',
hidden = false,
},
err_extra_text_volume = {
message = '<code class="cs1-code">|$1=</code> has extra text', -- $1 is parameter name
anchor = 'extra_text_volume',
category = 'CS1 errors: extra text: volume',
hidden = true,
},
err_first_missing_last = {
message = '<code class="cs1-code">|$1=</code> missing <code class="cs1-code">|$2=</code>', -- $1 is first alias, $2 is matching last alias
anchor = 'first_missing_last',
category = 'CS1 errors: missing name', -- author, contributor, editor, interviewer, translator
hidden = false
},
err_format_missing_url = {
message = '<code class="cs1-code">|$1=</code> requires <code class="cs1-code">|$2=</code>', -- $1 is format parameter $2 is url parameter
anchor = 'format_missing_url',
category = 'CS1 errors: format without URL',
hidden = false
},
err_generic_name = {
message = '<code class="cs1-code">|$1=</code> has generic name', -- $1 is parameter name
anchor = 'generic_name',
category = 'CS1 errors: generic name',
hidden = false,
},
err_generic_title = {
message = 'Cite uses generic title',
anchor = 'generic_title',
category = 'CS1 errors: generic title',
hidden = false,
},
err_invalid_param_val = {
message = 'Invalid <code class="cs1-code">|$1=$2</code>', -- $1 is parameter name $2 is parameter value
anchor = 'invalid_param_val',
category = 'CS1 errors: invalid parameter value',
hidden = false
},
err_invisible_char = {
message = '$1 in $2 at position $3', -- $1 is invisible char $2 is parameter name $3 is position number
anchor = 'invisible_char',
category = 'CS1 errors: invisible characters',
hidden = false
},
err_missing_name = {
message = 'Missing <code class="cs1-code">|$1$2=</code>', -- $1 is modified NameList; $2 is enumerator
anchor = 'missing_name',
category = 'CS1 errors: missing name', -- author, contributor, editor, interviewer, translator
hidden = false
},
err_missing_periodical = {
message = 'Cite $1 requires <code class="cs1-code">|$2=</code>', -- $1 is cs1 template name; $2 is canonical periodical parameter name for cite $1
anchor = 'missing_periodical',
category = 'CS1 errors: missing periodical',
hidden = true
},
err_missing_pipe = {
message = 'Missing pipe in: <code class="cs1-code">|$1=</code>', -- $1 is parameter name
anchor = 'missing_pipe',
category = 'CS1 errors: missing pipe',
hidden = false
},
err_param_access_requires_param = {
message = '<code class="cs1-code">|$1-access=</code> requires <code class="cs1-code">|$1=</code>', -- $1 is parameter name
anchor = 'param_access_requires_param',
category = 'CS1 errors: param-access',
hidden = false
},
err_param_has_ext_link = {
message = 'External link in <code class="cs1-code">$1</code>', -- $1 is parameter name
anchor = 'param_has_ext_link',
category = 'CS1 errors: external links',
hidden = false
},
err_parameter_ignored = {
message = 'Unknown parameter <code class="cs1-code">|$1=</code> ignored', -- $1 is parameter name
anchor = 'parameter_ignored',
category = 'CS1 errors: unsupported parameter',
hidden = false
},
err_parameter_ignored_suggest = {
message = 'Unknown parameter <code class="cs1-code">|$1=</code> ignored (<code class="cs1-code">|$2=</code> suggested)', -- $1 is unknown parameter $2 is suggested parameter name
anchor = 'parameter_ignored_suggest',
category = 'CS1 errors: unsupported parameter',
hidden = false
},
err_redundant_parameters = {
message = 'More than one of $1 specified', -- $1 is error message detail
anchor = 'redundant_parameters',
category = 'CS1 errors: redundant parameter',
hidden = false
},
err_script_parameter = {
message = 'Invalid <code class="cs1-code">|$1=</code>: $2', -- $1 is parameter name $2 is script language code or error detail
anchor = 'script_parameter',
category = 'CS1 errors: script parameters',
hidden = false
},
err_ssrn_missing = {
message = '<code class="cs1-code">|ssrn=</code> required',
anchor = 'ssrn_missing',
category = 'CS1 errors: SSRN', -- same as bad arxiv
hidden = false
},
err_text_ignored = {
message = 'Text "$1" ignored', -- $1 is ignored text
anchor = 'text_ignored',
category = 'CS1 errors: unrecognized parameter',
hidden = false
},
err_trans_missing_title = {
message = '<code class="cs1-code">|trans-$1=</code> requires <code class="cs1-code">|$1=</code> or <code class="cs1-code">|script-$1=</code>', -- $1 is base parameter name
anchor = 'trans_missing_title',
category = 'CS1 errors: translated title',
hidden = false
},
err_param_unknown_empty = {
message = 'Cite has empty unknown parameter$1: $2', -- $1 is 's' or empty space; $2 is emty unknown param list
anchor = 'param_unknown_empty',
category = 'CS1 errors: empty unknown parameters',
hidden = false
},
err_vancouver = {
message = 'Vancouver style error: $1 in name $2', -- $1 is error detail, $2 is the nth name
anchor = 'vancouver',
category = 'CS1 errors: Vancouver style',
hidden = false
},
err_wikilink_in_url = {
message = 'URL–wikilink conflict', -- uses ndash
anchor = 'wikilink_in_url',
category = 'CS1 errors: URL–wikilink conflict', -- uses ndash
hidden = false
},
--[[--------------------------< M A I N T >-------------------------------------
maint messages do not have a message (message = nil); otherwise the structure
is the same as error messages
]]
maint_archived_copy = {
message = nil,
anchor = 'archived_copy',
category = 'CS1 maint: archived copy as title',
hidden = true,
},
maint_authors = {
message = nil,
anchor = 'authors',
category = 'CS1 maint: uses authors parameter',
hidden = true,
},
maint_bot_unknown = {
message = nil,
anchor = 'bot:_unknown',
category = 'CS1 maint: bot: original URL status unknown',
hidden = true,
},
maint_date_auto_xlated = { -- date auto-translation not supported by en.wiki
message = nil,
anchor = 'date_auto_xlated',
category = 'CS1 maint: date auto-translated',
hidden = true,
},
maint_date_format = {
message = nil,
anchor = 'date_format',
category = 'CS1 maint: date format',
hidden = true,
},
maint_date_year = {
message = nil,
anchor = 'date_year',
category = 'CS1 maint: date and year',
hidden = true,
},
maint_doi_ignore = {
message = nil,
anchor = 'doi_ignore',
category = 'CS1 maint: ignored DOI errors',
hidden = true,
},
maint_doi_inactive = {
message = nil,
anchor = 'doi_inactive',
category = 'CS1 maint: DOI inactive',
hidden = true,
},
maint_doi_inactive_dated = {
message = nil,
anchor = 'doi_inactive_dated',
category = 'CS1 maint: DOI inactive as of $2$3$1', -- $1 is year, $2 is month-name or empty string, $3 is space or empty string
hidden = true,
},
maint_extra_punct = {
message = nil,
anchor = 'extra_punct',
category = 'CS1 maint: extra punctuation',
hidden = true,
},
maint_isbn_ignore = {
message = nil,
anchor = 'ignore_isbn_err',
category = 'CS1 maint: ignored ISBN errors',
hidden = true,
},
maint_issn_ignore = {
message = nil,
anchor = 'ignore_issn',
category = 'CS1 maint: ignored ISSN errors',
hidden = true,
},
maint_jfm_format = {
message = nil,
anchor = 'jfm_format',
category = 'CS1 maint: JFM format',
hidden = true,
},
maint_location = {
message = nil,
anchor = 'location',
category = 'CS1 maint: location',
hidden = true,
},
maint_mr_format = {
message = nil,
anchor = 'mr_format',
category = 'CS1 maint: MR format',
hidden = true,
},
maint_mult_names = {
message = nil,
anchor = 'mult_names',
category = 'CS1 maint: multiple names: $1', -- $1 is '<name>s list'; gets value from special_case_translation table
hidden = true,
},
maint_numeric_names = {
message = nil,
anchor = 'numeric_names',
category = 'CS1 maint: numeric names: $1', -- $1 is '<name>s list'; gets value from special_case_translation table
hidden = true,
},
maint_others = {
message = nil,
anchor = 'others',
category = 'CS1 maint: others',
hidden = true,
},
maint_others_avm = {
message = nil,
anchor = 'others_avm',
category = 'CS1 maint: others in cite AV media (notes)',
hidden = true,
},
maint_pmc_embargo = {
message = nil,
anchor = 'embargo',
category = 'CS1 maint: PMC embargo expired',
hidden = true,
},
maint_pmc_format = {
message = nil,
anchor = 'pmc_format',
category = 'CS1 maint: PMC format',
hidden = true,
},
maint_postscript = {
message = nil,
anchor = 'postscript',
category = 'CS1 maint: postscript',
hidden = true,
},
maint_ref_duplicates_default = {
message = nil,
anchor = 'ref_default',
category = 'CS1 maint: ref duplicates default',
hidden = true,
},
maint_unfit = {
message = nil,
anchor = 'unfit',
category = 'CS1 maint: unfit URL',
hidden = true,
},
maint_unknown_lang = {
message = nil,
anchor = 'unknown_lang',
category = 'CS1 maint: unrecognized language',
hidden = true,
},
maint_untitled = {
message = nil,
anchor = 'untitled',
category = 'CS1 maint: untitled periodical',
hidden = true,
},
maint_url_status = {
message = nil,
anchor = 'url_status',
category = 'CS1 maint: url-status',
hidden = true,
},
maint_zbl = {
message = nil,
anchor = 'zbl',
category = 'CS1 maint: Zbl',
hidden = true,
},
}
--[[--------------------------< I D _ H A N D L E R S >--------------------------------------------------------
The following contains a list of values for various defined identifiers. For each
identifier we specify a variety of information necessary to properly render the
identifier in the citation.
parameters: a list of parameter aliases for this identifier; first in the list is the canonical form
link: Wikipedia article name
redirect: a local redirect to a local Wikipedia article name; at en.wiki, 'ISBN (identifier)' is a redirect to 'International Standard Book Number'
q: Wikidata q number for the identifier
label: the label preceeding the identifier; label is linked to a Wikipedia article (in this order):
redirect from id_handlers['<id>'].redirect when use_identifier_redirects is true
Wikidata-supplied article name for the local wiki from id_handlers['<id>'].q
local article name from id_handlers['<id>'].link
prefix: the first part of a URL that will be concatenated with a second part which usually contains the identifier
suffix: optional third part to be added after the identifier
encode: true if URI should be percent-encoded; otherwise false
COinS: identifier link or keyword for use in COinS:
for identifiers registered at info-uri.info use: info:.... where '...' is the appropriate identifier label
for identifiers that have COinS keywords, use the keyword: rft.isbn, rft.issn, rft.eissn
for |asin= and |ol=, which require assembly, use the keyword: url
for others make a URL using the value in prefix/suffix and #label, use the keyword: pre (not checked; any text other than 'info', 'rft', or 'url' works here)
set to nil to leave the identifier out of the COinS
separator: character or text between label and the identifier in the rendered citation
id_limit: for those identifiers with established limits, this property holds the upper limit
access: use this parameter to set the access level for all instances of this identifier.
the value must be a valid access level for an identifier (see ['id-access'] in this file).
custom_access: to enable custom access level for an identifier, set this parameter
to the parameter that should control it (normally 'id-access')
]]
local id_handlers = {
['ARXIV'] = {
parameters = {'arxiv', 'eprint'},
link = 'arXiv',
redirect = 'arXiv (identifier)',
q = 'Q118398',
label = 'arXiv',
prefix = '//arxiv.org/abs/', -- protocol-relative tested 2013-09-04
encode = false,
COinS = 'info:arxiv',
separator = ':',
access = 'free', -- free to read
},
['ASIN'] = {
parameters = { 'asin', 'ASIN' },
link = 'Amazon Standard Identification Number',
redirect = 'ASIN (identifier)',
q = 'Q1753278',
label = 'ASIN',
prefix = '//www.amazon.',
COinS = 'url',
separator = ' ',
encode = false;
},
['BIBCODE'] = {
parameters = {'bibcode'},
link = 'Bibcode',
redirect = 'Bibcode (identifier)',
q = 'Q25754',
label = 'Bibcode',
prefix = 'https://ui.adsabs.harvard.edu/abs/',
encode = false,
COinS = 'info:bibcode',
separator = ':',
custom_access = 'bibcode-access',
},
['BIORXIV'] = {
parameters = {'biorxiv'},
link = 'bioRxiv',
redirect = 'bioRxiv (identifier)',
q = 'Q19835482',
label = 'bioRxiv',
prefix = '//doi.org/',
COinS = 'pre', -- use prefix value
access = 'free', -- free to read
encode = true,
separator = ' ',
},
['CITESEERX'] = {
parameters = {'citeseerx'},
link = 'CiteSeerX',
redirect = 'CiteSeerX (identifier)',
q = 'Q2715061',
label = 'CiteSeerX',
prefix = '//citeseerx.ist.psu.edu/viewdoc/summary?doi=',
COinS = 'pre', -- use prefix value
access = 'free', -- free to read
encode = true,
separator = ' ',
},
['DOI'] = { -- Used by InternetArchiveBot
parameters = { 'doi', 'DOI'},
link = 'Digital object identifier',
redirect = 'doi (identifier)',
q = 'Q25670',
label = 'doi',
prefix = '//doi.org/',
COinS = 'info:doi',
separator = ':',
encode = true,
custom_access = 'doi-access',
},
['EISSN'] = {
parameters = {'eissn', 'EISSN'},
link = 'International Standard Serial Number#Electronic ISSN',
redirect = 'eISSN (identifier)',
q = 'Q46339674',
label = 'eISSN',
prefix = '//www.worldcat.org/issn/',
COinS = 'rft.eissn',
encode = false,
separator = ' ',
},
['HDL'] = {
parameters = { 'hdl', 'HDL' },
link = 'Handle System',
redirect = 'hdl (identifier)',
q = 'Q3126718',
label = 'hdl',
prefix = '//hdl.handle.net/',
COinS = 'info:hdl',
separator = ':',
encode = true,
custom_access = 'hdl-access',
},
['ISBN'] = { -- Used by InternetArchiveBot
parameters = {'isbn', 'ISBN'},
link = 'International Standard Book Number',
redirect = 'ISBN (identifier)',
q = 'Q33057',
label = 'ISBN',
prefix = 'Special:BookSources/',
COinS = 'rft.isbn',
separator = ' ',
},
['ISMN'] = {
parameters = {'ismn', 'ISMN'},
link = 'International Standard Music Number',
redirect = 'ISMN (identifier)',
q = 'Q1666938',
label = 'ISMN',
prefix = '', -- not currently used;
COinS = nil, -- nil because we can't use pre or rft or info:
separator = ' ',
},
['ISSN'] = {
parameters = {'issn', 'ISSN'},
link = 'International Standard Serial Number',
redirect = 'ISSN (identifier)',
q = 'Q131276',
label = 'ISSN',
prefix = '//www.worldcat.org/issn/',
COinS = 'rft.issn',
encode = false,
separator = ' ',
},
['JFM'] = {
parameters = {'jfm', 'JFM'},
link = 'Jahrbuch über die Fortschritte der Mathematik',
redirect = 'JFM (identifier)',
q = '',
label = 'JFM',
prefix = '//zbmath.org/?format=complete&q=an:',
COinS = 'pre', -- use prefix value
encode = true,
separator = ' ',
},
['JSTOR'] = {
parameters = {'jstor', 'JSTOR'},
link = 'JSTOR',
redirect = 'JSTOR (identifier)',
q = 'Q1420342',
label = 'JSTOR',
prefix = '//www.jstor.org/stable/', -- protocol-relative tested 2013-09-04
COinS = 'pre', -- use prefix value
encode = false,
separator = ' ',
custom_access = 'jstor-access',
},
['LCCN'] = {
parameters = {'lccn', 'LCCN'},
link = 'Library of Congress Control Number',
redirect = 'LCCN (identifier)',
q = 'Q620946',
label = 'LCCN',
prefix = '//lccn.loc.gov/', -- protocol-relative tested 2015-12-28
COinS = 'info:lccn',
encode = false,
separator = ' ',
},
['MR'] = {
parameters = {'mr', 'MR'},
link = 'Mathematical Reviews',
redirect = 'MR (identifier)',
q = 'Q211172',
label = 'MR',
prefix = '//www.ams.org/mathscinet-getitem?mr=', -- protocol-relative tested 2013-09-04
COinS = 'pre', -- use prefix value
encode = true,
separator = ' ',
},
['OCLC'] = {
parameters = {'oclc', 'OCLC'},
link = 'OCLC',
redirect = 'OCLC (identifier)',
q = 'Q190593',
label = 'OCLC',
prefix = '//www.worldcat.org/oclc/',
COinS = 'info:oclcnum',
encode = true,
separator = ' ',
id_limit = 9999999999, -- 10-digits
},
['OL'] = {
parameters = { 'ol', 'OL' },
link = 'Open Library',
redirect = 'OL (identifier)',
q = 'Q1201876',
label = 'OL',
prefix = '//openlibrary.org/',
COinS = 'url',
separator = ' ',
encode = true,
custom_access = 'ol-access',
},
['OSTI'] = {
parameters = {'osti', 'OSTI'},
link = 'Office of Scientific and Technical Information',
redirect = 'OSTI (identifier)',
q = 'Q2015776',
label = 'OSTI',
prefix = '//www.osti.gov/biblio/', -- protocol-relative tested 2018-09-12
COinS = 'pre', -- use prefix value
encode = true,
separator = ' ',
id_limit = 23010000,
custom_access = 'osti-access',
},
['PMC'] = {
parameters = {'pmc', 'PMC'},
link = 'PubMed Central',
redirect = 'PMC (identifier)',
q = 'Q229883',
label = 'PMC',
prefix = '//www.ncbi.nlm.nih.gov/pmc/articles/PMC',
suffix = '',
COinS = 'pre', -- use prefix value
encode = true,
separator = ' ',
id_limit = 9300000,
access = 'free', -- free to read
},
['PMID'] = {
parameters = {'pmid', 'PMID'},
link = 'PubMed Identifier',
redirect = 'PMID (identifier)',
q = 'Q2082879',
label = 'PMID',
prefix = '//pubmed.ncbi.nlm.nih.gov/',
COinS = 'info:pmid',
encode = false,
separator = ' ',
id_limit = 35900000,
},
['RFC'] = {
parameters = {'rfc', 'RFC'},
link = 'Request for Comments',
redirect = 'RFC (identifier)',
q = 'Q212971',
label = 'RFC',
prefix = '//tools.ietf.org/html/rfc',
COinS = 'pre', -- use prefix value
encode = false,
separator = ' ',
id_limit = 9300,
access = 'free', -- free to read
},
['SBN'] = {
parameters = {'sbn', 'SBN'},
link = 'Standard Book Number', -- redirect to International_Standard_Book_Number#History
redirect = 'SBN (identifier)',
label = 'SBN',
prefix = 'Special:BookSources/0-', -- prefix has leading zero necessary to make 9-digit sbn a 10-digit isbn
COinS = nil, -- nil because we can't use pre or rft or info:
separator = ' ',
},
['SSRN'] = {
parameters = {'ssrn', 'SSRN'},
link = 'Social Science Research Network',
redirect = 'SSRN (identifier)',
q = 'Q7550801',
label = 'SSRN',
prefix = '//ssrn.com/abstract=', -- protocol-relative tested 2013-09-04
COinS = 'pre', -- use prefix value
encode = true,
separator = ' ',
id_limit = 4200000,
custom_access = 'ssrn-access',
},
['S2CID'] = {
parameters = {'s2cid', 'S2CID'},
link = 'Semantic Scholar',
redirect = 'S2CID (identifier)',
q = 'Q22908627',
label = 'S2CID',
prefix = 'https://api.semanticscholar.org/CorpusID:',
COinS = 'pre', -- use prefix value
encode = false,
separator = ' ',
id_limit = 254000000,
custom_access = 's2cid-access',
},
['USENETID'] = {
parameters = {'message-id'},
link = 'Usenet',
redirect = 'Usenet (identifier)',
q = 'Q193162',
label = 'Usenet:',
prefix = 'news:',
encode = false,
COinS = 'pre', -- use prefix value
separator = ' ',
},
['ZBL'] = {
parameters = {'zbl', 'ZBL' },
link = 'Zentralblatt MATH',
redirect = 'Zbl (identifier)',
q = 'Q190269',
label = 'Zbl',
prefix = '//zbmath.org/?format=complete&q=an:',
COinS = 'pre', -- use prefix value
encode = true,
separator = ' ',
},
}
--[[--------------------------< E X P O R T S >---------------------------------
]]
return {
use_identifier_redirects = true, -- when true use redirect name for identifier label links; always true at en.wiki
local_lang_cat_enable = false; -- when true categorizes pages where |language=<local wiki's language>; always false at en.wiki
date_name_auto_xlate_enable = false; -- when true translates English month-names to the local-wiki's language month names; always false at en.wiki
date_digit_auto_xlate_enable = false; -- when true translates Western date digit to the local-wiki's language digits (date_names['local_digits']); always false at en.wiki
global_df = get_date_format (), -- tables and variables created when this module is loaded
punct_skip = build_skip_table (punct_skip, punct_meta_params),
url_skip = build_skip_table (url_skip, url_meta_params),
aliases = aliases,
special_case_translation = special_case_translation,
date_names = date_names,
err_msg_supl = err_msg_supl,
error_conditions = error_conditions,
editor_markup_patterns = editor_markup_patterns,
et_al_patterns = et_al_patterns,
id_handlers = id_handlers,
keywords_lists = keywords_lists,
keywords_xlate = keywords_xlate,
stripmarkers=stripmarkers,
invisible_chars = invisible_chars,
invisible_defs = invisible_defs,
indic_script = indic_script,
emoji = emoji,
maint_cats = maint_cats,
messages = messages,
presentation = presentation,
prop_cats = prop_cats,
script_lang_codes = script_lang_codes,
lang_code_remap = lang_code_remap,
lang_name_remap = lang_name_remap,
this_wiki_code = this_wiki_code,
title_types = title_types,
uncategorized_namespaces = uncategorized_namespaces,
uncategorized_subpages = uncategorized_subpages,
templates_using_volume = templates_using_volume,
templates_using_issue = templates_using_issue,
templates_not_using_page = templates_not_using_page,
vol_iss_pg_patterns = vol_iss_pg_patterns,
inter_wiki_map = inter_wiki_map,
mw_languages_by_tag_t = mw_languages_by_tag_t,
mw_languages_by_name_t = mw_languages_by_name_t,
citation_class_map_t = citation_class_map_t,
citation_issue_t = citation_issue_t,
citation_no_volume_t = citation_no_volume_t,
}
thb9i5vwi93a7ji0wet25dua5c4zuel
Module:Citation/CS1/Configuration/doc
828
1608
15073
2022-07-17T12:54:29Z
Kambai Akau
15
Created page with "{{#lst:Module:Citation/CS1/doc|header}} This configuration file contains various data that controls the functioning of [[Module:Citation/CS1]] and hence the way that Lua-based citations are generated. It has several sections among which are: # translation tables that contain most of the literal strings that may be included in Lua-based citation. If editors are copying this Module to another wiki using a language other than English, then they should translate each of th..."
wikitext
text/x-wiki
{{#lst:Module:Citation/CS1/doc|header}}
This configuration file contains various data that controls the functioning of [[Module:Citation/CS1]] and hence the way that Lua-based citations are generated.
It has several sections among which are:
# translation tables that contain most of the literal strings that may be included in Lua-based citation. If editors are copying this Module to another wiki using a language other than English, then they should translate each of these values into that language.
# a list of error conditions specifying what text to display, what category to include (if any), and what help page section to refer to when errors are detected
# a list of ID handlers specifying the recognized document IDs, such as ISBN, DOI, etc., and how to format them.
{{#lst:Module:Citation/CS1/doc|module_components_table}}
<includeonly>{{#ifeq:{{SUBPAGENAME}}|sandbox | |
<!-- Categories below this line, please; interwikis at Wikidata -->
[[Category:Modules that check for strip markers]]
}}</includeonly>
biogwubrb1rjghyggmlzlh42u2bp8dy
Module:Citation/CS1/Whitelist
828
1609
15074
2022-07-17T12:57:12Z
Kambai Akau
15
Created page with "--[[--------------------------< S U P P O R T E D P A R A M E T E R S >-------------------------------------- Because a steady-state signal conveys no useful information, whitelist.basic_arguments[] list items can have three values: true - these parameters are valid and supported parameters false - these parameters are deprecated but still supported tracked - these parameters are valid and supported parameters tracked in an eponymous properties category nil - thes..."
Scribunto
text/plain
--[[--------------------------< S U P P O R T E D P A R A M E T E R S >--------------------------------------
Because a steady-state signal conveys no useful information, whitelist.basic_arguments[] list items can have three values:
true - these parameters are valid and supported parameters
false - these parameters are deprecated but still supported
tracked - these parameters are valid and supported parameters tracked in an eponymous properties category
nil - these parameters are no longer supported. remove entirely
]]
local basic_arguments = {
['accessdate'] = true,
['access-date'] = true,
['agency'] = true,
['archivedate'] = true,
['archive-date'] = true,
['archive-format'] = true,
['archiveurl'] = true,
['archive-url'] = true,
['article'] = true,
['article-format'] = true,
['article-url'] = true,
['article-url-access'] = true,
['arxiv'] = true, -- cite arxiv; here because allowed in cite ... as identifier
['asin'] = true,
['ASIN'] = true,
['asin-tld'] = true,
['at'] = true,
['author'] = true,
['author-first'] = true,
['author-given'] = true,
['author-last'] = true,
['author-surname'] = true,
['authorlink'] = true,
['author-link'] = true,
['author-mask'] = true,
['authors'] = true,
['bibcode'] = true,
['bibcode-access'] = true,
['biorxiv'] = true, -- cite biorxiv; here because allowed in cite ... as identifier
['chapter'] = true,
['chapter-format'] = true,
['chapter-url'] = true,
['chapter-url-access'] = true,
['citeseerx'] = true, -- cite citeseerx; here because allowed in cite ... as identifier
['collaboration'] = true,
['contribution'] = true,
['contribution-format'] = true,
['contribution-url'] = true,
['contribution-url-access'] = true,
['contributor'] = true,
['contributor-first'] = true,
['contributor-given'] = true,
['contributor-last'] = true,
['contributor-surname'] = true,
['contributor-link'] = true,
['contributor-mask'] = true,
['date'] = true,
['department'] = true,
['df'] = true,
['dictionary'] = true,
['display-authors'] = true,
['display-contributors'] = true,
['display-editors'] = true,
['display-interviewers'] = true,
['display-subjects'] = true,
['display-translators'] = true,
['doi'] = true,
['DOI'] = true,
['doi-access'] = true,
['doi-broken-date'] = true,
['edition'] = true,
['editor'] = true,
['editor-first'] = true,
['editor-given'] = true,
['editor-last'] = true,
['editor-surname'] = true,
['editor-link'] = true,
['editor-mask'] = true,
['eissn'] = true,
['EISSN'] = true,
['encyclopaedia'] = true,
['encyclopedia'] = true,
['entry'] = true,
['entry-format'] = true,
['entry-url'] = true,
['entry-url-access'] = true,
['eprint'] = true, -- cite arxiv; here because allowed in cite ... as identifier
['first'] = true,
['format'] = true,
['given'] = true,
['hdl'] = true,
['HDL'] = true,
['hdl-access'] = true,
['host'] = true, -- unique to certain templates?
['id'] = true,
['ID'] = true,
['institution'] = true, -- constrain to cite thesis?
['interviewer'] = true,
['interviewer-first'] = true,
['interviewer-given'] = true,
['interviewer-last'] = true,
['interviewer-surname'] = true,
['interviewer-link'] = true,
['interviewer-mask'] = true,
['isbn'] = true,
['ISBN'] = true,
['ismn'] = true,
['ISMN'] = true,
['issn'] = true,
['ISSN'] = true,
['issue'] = true,
['jfm'] = true,
['JFM'] = true,
['journal'] = true,
['jstor'] = true,
['JSTOR'] = true,
['jstor-access'] = true,
['lang'] = true,
['language'] = true,
['last'] = true,
['lay-date'] = false,
['lay-format'] = false,
['lay-source'] = false,
['lay-url'] = false,
['lccn'] = true,
['LCCN'] = true,
['location'] = true,
['magazine'] = true,
['medium'] = true,
['minutes'] = true, -- constrain to cite AV media and podcast?
['mode'] = true,
['mr'] = true,
['MR'] = true,
['name-list-style'] = true,
['newspaper'] = true,
['no-pp'] = true,
['no-tracking'] = true,
['number'] = true,
['oclc'] = true,
['OCLC'] = true,
['ol'] = true,
['OL'] = true,
['ol-access'] = true,
['orig-date'] = true,
['origyear'] = true,
['orig-year'] = true,
['osti'] = true,
['OSTI'] = true,
['osti-access'] = true,
['others'] = true,
['p'] = true,
['page'] = true,
['pages'] = true,
['people'] = true,
['periodical'] = true,
['place'] = true,
['pmc'] = true,
['PMC'] = true,
['pmc-embargo-date'] = true,
['pmid'] = true,
['PMID'] = true,
['postscript'] = true,
['pp'] = true,
['publication-date'] = true,
['publication-place'] = true,
['publisher'] = true,
['quotation'] = true,
['quote'] = true,
['quote-page'] = true,
['quote-pages'] = true,
['ref'] = true,
['rfc'] = true,
['RFC'] = true,
['sbn'] = true,
['SBN'] = true,
['scale'] = true,
['script-article'] = true,
['script-chapter'] = true,
['script-contribution'] = true,
['script-entry'] = true,
['script-journal'] = true,
['script-magazine'] = true,
['script-newspaper'] = true,
['script-periodical'] = true,
['script-quote'] = true,
['script-section'] = true,
['script-title'] = true,
['script-website'] = true,
['script-work'] = true,
['section'] = true,
['section-format'] = true,
['section-url'] = true,
['section-url-access'] = true,
['series'] = true,
['ssrn'] = true, -- cite ssrn; these three here because allowed in cite ... as identifier
['SSRN'] = true,
['ssrn-access'] = true,
['subject'] = true,
['subject-link'] = true,
['subject-mask'] = true,
['surname'] = true,
['s2cid'] = true,
['S2CID'] = true,
['s2cid-access'] = true,
['template-doc-demo'] = true,
['time'] = true, -- constrain to cite av media and podcast?
['time-caption'] = true, -- constrain to cite av media and podcast?
['title'] = true,
['title-link'] = true,
['translator'] = true,
['translator-first'] = true,
['translator-given'] = true,
['translator-last'] = true,
['translator-surname'] = true,
['translator-link'] = true,
['translator-mask'] = true,
['trans-article'] = true,
['trans-chapter'] = true,
['trans-contribution'] = true,
['trans-entry'] = true,
['trans-journal'] = true,
['trans-magazine'] = true,
['trans-newspaper'] = true,
['trans-periodical'] = true,
['trans-quote'] = true,
['trans-section'] = true,
['trans-title'] = true,
['trans-website'] = true,
['trans-work'] = true,
['type'] = true,
['url'] = true,
['URL'] = true,
['url-access'] = true,
['url-status'] = true,
['vauthors'] = true,
['veditors'] = true,
['version'] = true,
['via'] = true,
['volume'] = true,
['website'] = true,
['work'] = true,
['year'] = true,
['zbl'] = true,
['ZBL'] = true,
}
local numbered_arguments = {
['author#'] = true,
['author-first#'] = true,
['author#-first'] = true,
['author-given#'] = true,
['author#-given'] = true,
['author-last#'] = true,
['author#-last'] = true,
['author-surname#'] = true,
['author#-surname'] = true,
['author-link#'] = true,
['author#-link'] = true,
['authorlink#'] = true,
['author#link'] = true,
['author-mask#'] = true,
['author#-mask'] = true,
['contributor#'] = true,
['contributor-first#'] = true,
['contributor#-first'] = true,
['contributor-given#'] = true,
['contributor#-given'] = true,
['contributor-last#'] = true,
['contributor#-last'] = true,
['contributor-surname#'] = true,
['contributor#-surname'] = true,
['contributor-link#'] = true,
['contributor#-link'] = true,
['contributor-mask#'] = true,
['contributor#-mask'] = true,
['editor#'] = true,
['editor-first#'] = true,
['editor#-first'] = true,
['editor-given#'] = true,
['editor#-given'] = true,
['editor-last#'] = true,
['editor#-last'] = true,
['editor-surname#'] = true,
['editor#-surname'] = true,
['editor-link#'] = true,
['editor#-link'] = true,
['editor-mask#'] = true,
['editor#-mask'] = true,
['first#'] = true,
['given#'] = true,
['host#'] = true,
['interviewer#'] = true,
['interviewer-first#'] = true,
['interviewer#-first'] = true,
['interviewer-given#'] = true,
['interviewer#-given'] = true,
['interviewer-last#'] = true,
['interviewer#-last'] = true,
['interviewer-surname#'] = true,
['interviewer#-surname'] = true,
['interviewer-link#'] = true,
['interviewer#-link'] = true,
['interviewer-mask#'] = true,
['interviewer#-mask'] = true,
['last#'] = true,
['subject#'] = true,
['subject-link#'] = true,
['subject#-link'] = true,
['subject-mask#'] = true,
['subject#-mask'] = true,
['surname#'] = true,
['translator#'] = true,
['translator-first#'] = true,
['translator#-first'] = true,
['translator-given#'] = true,
['translator#-given'] = true,
['translator-last#'] = true,
['translator#-last'] = true,
['translator-surname#'] = true,
['translator#-surname'] = true,
['translator-link#'] = true,
['translator#-link'] = true,
['translator-mask#'] = true,
['translator#-mask'] = true,
}
--[[--------------------------< P R E P R I N T S U P P O R T E D P A R A M E T E R S >--------------------
Cite arXiv, cite biorxiv, cite citeseerx, and cite ssrn are preprint templates that use the limited set of parameters
defined in the limited_basic_arguments and limited_numbered_arguments tables. Those lists are supplemented with a
template-specific list of parameters that are required by the particular template and may be exclusive to one of the
preprint templates. Some of these parameters may also be available to the general cs1|2 templates.
Same conventions for true/false/tracked/nil as above.
]]
local preprint_arguments = {
arxiv = {
['arxiv'] = true, -- cite arxiv and arxiv identifiers
['class'] = true,
['eprint'] = true, -- cite arxiv and arxiv identifiers
},
biorxiv = {
['biorxiv'] = true,
},
citeseerx = {
['citeseerx'] = true,
},
ssrn = {
['ssrn'] = true,
['SSRN'] = true,
['ssrn-access'] = true,
},
}
--[[--------------------------< L I M I T E D S U P P O R T E D P A R A M E T E R S >----------------------
cite arxiv, cite biorxiv, cite citeseerx, and cite ssrn templates are preprint templates so are allowed only a
limited subset of parameters allowed to all other cs1|2 templates. The limited subset is defined here.
Same conventions for true/false/tracked/nil as above.
]]
local limited_basic_arguments = {
['at'] = true,
['author'] = true,
['author-first'] = true,
['author-given'] = true,
['author-last'] = true,
['author-surname'] = true,
['author-link'] = true,
['authorlink'] = true,
['author-mask'] = true,
['authors'] = true,
['collaboration'] = true,
['date'] = true,
['df'] = true,
['display-authors'] = true,
['first'] = true,
['given'] = true,
['language'] = true,
['last'] = true,
['mode'] = true,
['name-list-style'] = true,
['no-tracking'] = true,
['p'] = true,
['page'] = true,
['pages'] = true,
['postscript'] = true,
['pp'] = true,
['quotation'] = true,
['quote'] = true,
['ref'] = true,
['surname'] = true,
['template-doc-demo'] = true,
['title'] = true,
['trans-title'] = true,
['vauthors'] = true,
['year'] = true,
}
local limited_numbered_arguments = {
['author#'] = true,
['author-first#'] = true,
['author#-first'] = true,
['author-given#'] = true,
['author#-given'] = true,
['author-last#'] = true,
['author#-last'] = true,
['author-surname#'] = true,
['author#-surname'] = true,
['author-link#'] = true,
['author#-link'] = true,
['authorlink#'] = true,
['author#link'] = true,
['author-mask#'] = true,
['author#-mask'] = true,
['first#'] = true,
['given#'] = true,
['last#'] = true,
['surname#'] = true,
}
--[[--------------------------< U N I Q U E _ A R G U M E N T S >----------------------------------------------
Some templates have unique parameters. Those templates and their unique parameters are listed here. Keys in this
table are the template's CitationClass parameter value
Same conventions for true/false/tracked/nil as above.
]]
local unique_arguments = {
['audio-visual'] = {
['transcript'] = true,
['transcript-format'] = true,
['transcript-url'] = true,
},
conference = {
['book-title'] = true,
['conference'] = true,
['conference-format'] = true,
['conference-url'] = true,
['event'] = true,
},
episode = {
['airdate'] = true,
['air-date'] = true,
['credits'] = true,
['episode-link'] = true, -- alias of |title-link=
['network'] = true,
['season'] = true,
['series-link'] = true,
['series-no'] = true,
['series-number'] = true,
['station'] = true,
['transcript'] = true,
['transcript-format'] = true,
['transcripturl'] = false,
['transcript-url'] = true,
},
mailinglist = {
['mailing-list'] = true,
},
map = {
['cartography'] = true,
['inset'] = true,
['map'] = true,
['map-format'] = true,
['map-url'] = true,
['map-url-access'] = true,
['script-map'] = true,
['sections'] = true,
['sheet'] = true,
['sheets'] = true,
['trans-map'] = true,
},
newsgroup = {
['message-id'] = true,
['newsgroup'] = true,
},
report = {
['docket'] = true,
},
serial = {
['airdate'] = true,
['air-date'] = true,
['credits'] = true,
['episode'] = true, -- cite serial only TODO: make available to cite episode?
['episode-link'] = true, -- alias of |title-link=
['network'] = true,
['series-link'] = true,
['station'] = true,
},
speech = {
['conference'] = true,
['conference-format'] = true,
['conference-url'] = true,
['event'] = true,
},
thesis = {
['degree'] = true,
['docket'] = true,
},
}
--[[--------------------------< T E M P L A T E _ L I S T _ G E T >--------------------------------------------
gets a list of the templates from table t
]]
local function template_list_get (t)
local out = {}; -- a table for output
for k, _ in pairs (t) do -- spin through the table and collect the keys
table.insert (out, k) -- add each key to the output table
end
return out; -- and done
end
--[[--------------------------< E X P O R T E D T A B L E S >------------------------------------------------
]]
return {
basic_arguments = basic_arguments,
numbered_arguments = numbered_arguments,
limited_basic_arguments = limited_basic_arguments,
limited_numbered_arguments = limited_numbered_arguments,
preprint_arguments = preprint_arguments,
preprint_template_list = template_list_get (preprint_arguments), -- make a template list from preprint_arguments{} table
unique_arguments = unique_arguments,
unique_param_template_list = template_list_get (unique_arguments), -- make a template list from unique_arguments{} table
};
c31769ha0b0k636k736zgv3no6leh8l
Module:Citation/CS1/Whitelist/doc
828
1610
15075
2022-07-17T12:57:52Z
Kambai Akau
15
Created page with "{{#lst:Module:Citation/CS1/doc|header}} This module contains a list of all parameters that [[Module:Citation/CS1]] knows about. Each parameter is assigned a state. * '''true''': These parameters are valid and supported parameters * '''false''': These parameters are deprecated but still supported * '''{{'}}tracked{{'}}''': These parameters are valid and supported parameters tracked in an eponymous properties category. * '''nil''': Parameters not present are not supporte..."
wikitext
text/x-wiki
{{#lst:Module:Citation/CS1/doc|header}}
This module contains a list of all parameters that [[Module:Citation/CS1]] knows about. Each parameter is assigned a state.
* '''true''': These parameters are valid and supported parameters
* '''false''': These parameters are deprecated but still supported
* '''{{'}}tracked{{'}}''': These parameters are valid and supported parameters tracked in an eponymous properties category.
* '''nil''': Parameters not present are not supported, or no longer supported.
The <code>basic_arguments</code> table is supported by all templates.
{{#lst:Module:Citation/CS1/doc|module_components_table}}
sqhsh9olnalbb1t9lpqz2ghm712wy3j
Ta̱mpi̱let:Plain link
10
1611
15076
2022-07-17T12:59:41Z
Kambai Akau
15
Created page with "<span class="plainlinks">{{SAFESUBST:<noinclude />#if:{{{2|{{{NAME|{{{name|}}}}}}}}} |[{{{1|{{{URL|{{{url}}}}}}}}} {{{2|{{{NAME|{{{name|}}}}}}}}}] |[{{{1|{{{URL|{{{url}}}}}}}}}] }}</span><noinclude> {{documentation}} </noinclude>"
wikitext
text/x-wiki
<span class="plainlinks">{{SAFESUBST:<noinclude />#if:{{{2|{{{NAME|{{{name|}}}}}}}}}
|[{{{1|{{{URL|{{{url}}}}}}}}} {{{2|{{{NAME|{{{name|}}}}}}}}}]
|[{{{1|{{{URL|{{{url}}}}}}}}}]
}}</span><noinclude>
{{documentation}}
</noinclude>
4ksm928qcz1wzong5bwawgcsgfzt0v4
Ta̱mpi̱let:Plain link/doc
10
1612
15077
2022-07-17T13:00:18Z
Kambai Akau
15
Created page with "{{Documentation subpage}} {{Template shortcut|pli|plk|plal|scp|plnk}} {{used in system}} <!-- EDIT TEMPLATE DOCUMENTATION BELOW THIS LINE --> This template will allow you to create a local or [[Help:Interwiki linking|interwiki link]] (such as a link to the [[Help:Page history|history of a page]]) on a page without having the [[File:MediaWiki external link icon.svg|12px|link=|alt=external link]] icon following the link. This can be used, for example, when internal or inte..."
wikitext
text/x-wiki
{{Documentation subpage}} {{Template shortcut|pli|plk|plal|scp|plnk}}
{{used in system}}
<!-- EDIT TEMPLATE DOCUMENTATION BELOW THIS LINE -->
This template will allow you to create a local or [[Help:Interwiki linking|interwiki link]] (such as a link to the [[Help:Page history|history of a page]]) on a page without having the [[File:MediaWiki external link icon.svg|12px|link=|alt=external link]] icon following the link. This can be used, for example, when internal or interwiki links appear as external links. See [[Help:URL#URLs on other Wikimedia projects]] for more information.
5iibvu0wy5noi19apdui1qw9a8ne4nr
Module:Citation/CS1/Date validation
828
1613
15078
2022-07-17T13:02:32Z
Kambai Akau
15
Created page with "--[[--------------------------< F O R W A R D D E C L A R A T I O N S >-------------------------------------- ]] local add_prop_cat, is_set, in_array, set_message, substitute, wrap_style; -- imported functions from selected Module:Citation/CS1/Utilities local cfg; -- table of tables imported from selected Module:Citation/CS1/Configuration --[[--------------------------< F I L E - S C O P E D E C L A R A T I O N S >--------------------------------..."
Scribunto
text/plain
--[[--------------------------< F O R W A R D D E C L A R A T I O N S >--------------------------------------
]]
local add_prop_cat, is_set, in_array, set_message, substitute, wrap_style; -- imported functions from selected Module:Citation/CS1/Utilities
local cfg; -- table of tables imported from selected Module:Citation/CS1/Configuration
--[[--------------------------< F I L E - S C O P E D E C L A R A T I O N S >--------------------------------
File-scope variables are declared here
]]
local lang_object = mw.getContentLanguage(); -- used by is_valid_accessdate(), is_valid_year(), date_name_xlate(); TODO: move to ~/Configuration?
local year_limit; -- used by is_valid_year()
--[=[-------------------------< I S _ V A L I D _ A C C E S S D A T E >----------------------------------------
returns true if:
Wikipedia start date <= accessdate < today + 2 days
Wikipedia start date is 2001-01-15T00:00:00 UTC which is 979516800 seconds after 1970-01-01T00:00:00 UTC (the start of Unix time)
accessdate is the date provided in |access-date= at time 00:00:00 UTC
today is the current date at time 00:00:00 UTC plus 48 hours
if today is 2015-01-01T00:00:00 then
adding 24 hours gives 2015-01-02T00:00:00 – one second more than today
adding 24 hours gives 2015-01-03T00:00:00 – one second more than tomorrow
This function does not work if it is fed month names for languages other than English. Wikimedia #time: parser
apparently doesn't understand non-English date month names. This function will always return false when the date
contains a non-English month name because good1 is false after the call to lang.formatDate(). To get around that
call this function with YYYY-MM-DD format dates.
]=]
local function is_valid_accessdate (accessdate)
local good1, good2;
local access_ts, tomorrow_ts; -- to hold Unix time stamps representing the dates
good1, access_ts = pcall (lang_object.formatDate, lang_object, 'U', accessdate ); -- convert accessdate value to Unix timestamp
good2, tomorrow_ts = pcall (lang_object.formatDate, lang_object, 'U', 'today + 2 days' ); -- today midnight + 2 days is one second more than all day tomorrow
if good1 and good2 then -- lang.formatDate() returns a timestamp in the local script which which tonumber() may not understand
access_ts = tonumber (access_ts) or lang_object:parseFormattedNumber (access_ts); -- convert to numbers for the comparison;
tomorrow_ts = tonumber (tomorrow_ts) or lang_object:parseFormattedNumber (tomorrow_ts);
else
return false; -- one or both failed to convert to Unix time stamp
end
if 979516800 <= access_ts and access_ts < tomorrow_ts then -- Wikipedia start date <= accessdate < tomorrow's date
return true;
else
return false; -- accessdate out of range
end
end
--[[--------------------------< G E T _ M O N T H _ N U M B E R >----------------------------------------------
returns a number according to the month in a date: 1 for January, etc. Capitalization and spelling must be correct.
If not a valid month, returns 0
]]
local function get_month_number (month)
return cfg.date_names['local'].long[month] or cfg.date_names['local'].short[month] or -- look for local names first
cfg.date_names['en'].long[month] or cfg.date_names['en'].short[month] or -- failing that, look for English names
0; -- not a recognized month name
end
--[[--------------------------< G E T _ S E A S O N _ N U M B E R >--------------------------------------------
returns a number according to the sequence of seasons in a year: 21 for Spring, etc. Capitalization and spelling
must be correct. If not a valid season, returns 0.
21-24 = Spring, Summer, Autumn, Winter, independent of “Hemisphere”
returns 0 when <param> is not |date=
Season numbering is defined by Extended Date/Time Format (EDTF) specification (https://www.loc.gov/standards/datetime/)
which became part of ISO 8601 in 2019. See '§Sub-year groupings'. The standard defines various divisions using
numbers 21-41. cs1|2 only supports generic seasons. EDTF does support the distinction between north and south
hemisphere seasons but cs1|2 has no way to make that distinction.
These additional divisions not currently supported:
25-28 = Spring - Northern Hemisphere, Summer- Northern Hemisphere, Autumn - Northern Hemisphere, Winter - Northern Hemisphere
29-32 = Spring – Southern Hemisphere, Summer– Southern Hemisphere, Autumn – Southern Hemisphere, Winter - Southern Hemisphere
33-36 = Quarter 1, Quarter 2, Quarter 3, Quarter 4 (3 months each)
37-39 = Quadrimester 1, Quadrimester 2, Quadrimester 3 (4 months each)
40-41 = Semestral 1, Semestral-2 (6 months each)
]]
local function get_season_number (season, param)
if 'date' ~= param then
return 0; -- season dates only supported by |date=
end
return cfg.date_names['local'].season[season] or -- look for local names first
cfg.date_names['en'].season[season] or -- failing that, look for English names
0; -- not a recognized season name
end
--[[--------------------------< G E T _ Q U A R T E R _ N U M B E R >------------------------------------------
returns a number according to the sequence of quarters in a year: 33 for first quarter, etc. Capitalization and spelling
must be correct. If not a valid quarter, returns 0.
33-36 = Quarter 1, Quarter 2, Quarter 3, Quarter 4 (3 months each)
returns 0 when <param> is not |date=
Quarter numbering is defined by Extended Date/Time Format (EDTF) specification (https://www.loc.gov/standards/datetime/)
which became part of ISO 8601 in 2019. See '§Sub-year groupings'. The standard defines various divisions using
numbers 21-41. cs1|2 only supports generic seasons and quarters.
These additional divisions not currently supported:
37-39 = Quadrimester 1, Quadrimester 2, Quadrimester 3 (4 months each)
40-41 = Semestral 1, Semestral-2 (6 months each)
]]
local function get_quarter_number (quarter, param)
if 'date' ~= param then
return 0; -- quarter dates only supported by |date=
end
quarter = mw.ustring.gsub (quarter, ' +', ' '); -- special case replace multiple space chars with a single space char
return cfg.date_names['local'].quarter[quarter] or -- look for local names first
cfg.date_names['en'].quarter[quarter] or -- failing that, look for English names
0; -- not a recognized quarter name
end
--[[--------------------------< G E T _ P R O P E R _ N A M E _ N U M B E R >----------------------------------
returns a non-zero number if date contains a recognized proper-name. Capitalization and spelling must be correct.
returns 0 when <param> is not |date=
]]
local function get_proper_name_number (name, param)
if 'date' ~= param then
return 0; -- proper-name dates only supported by |date=
end
return cfg.date_names['local'].named[name] or -- look for local names dates first
cfg.date_names['en'].named[name] or -- failing that, look for English names
0; -- not a recognized named date
end
--[[--------------------------< G E T _ E L E M E N T _ N U M B E R <------------------------------------------
returns true if month or season or quarter or proper name is valid (properly spelled, capitalized, abbreviated)
]]
local function get_element_number (element, param)
local num;
local funcs = {get_month_number, get_season_number, get_quarter_number, get_proper_name_number}; -- list of functions to execute in order
for _, func in ipairs (funcs) do -- spin through the function list
num = func (element, param); -- call the function and get the returned number
if 0 ~= num then -- non-zero when valid month season quarter
return num; -- return that number
end
end
return nil; -- not valid
end
--[[--------------------------< I S _ V A L I D _ Y E A R >----------------------------------------------------
Function gets current year from the server and compares it to year from a citation parameter. Years more than one
year in the future are not acceptable.
Special case for |pmc-embargo-date=: years more than two years in the future are not acceptable
]]
local function is_valid_year (year, param)
if not is_set (year_limit) then
year_limit = tonumber(os.date("%Y"))+1; -- global variable so we only have to fetch it once
end
year = tonumber (year) or lang_object:parseFormattedNumber (year); -- convert to number for the comparison;
if 'pmc-embargo-date' == param then -- special case for |pmc-embargo-date=
return year and (year <= tonumber(os.date("%Y"))+2) or false; -- years more than two years in the future are not accepted
end
return year and (year <= year_limit) or false;
end
--[[--------------------------< I S _ V A L I D _ D A T E >----------------------------------------------------
Returns true if day is less than or equal to the number of days in month and year is no farther into the future
than next year; else returns false.
Assumes Julian calendar prior to year 1582 and Gregorian calendar thereafter. Accounts for Julian calendar leap
years before 1582 and Gregorian leap years after 1582. Where the two calendars overlap (1582 to approximately
1923) dates are assumed to be Gregorian.
]]
local function is_valid_date (year, month, day, param)
local days_in_month = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
local month_length;
if not is_valid_year (year, param) then -- no farther into the future than next year except |pmc-embargo-date= no more than two years in the future
return false;
end
month = tonumber (month); -- required for YYYY-MM-DD dates
if (2 == month) then -- if February
month_length = 28; -- then 28 days unless
if 1582 > tonumber(year) then -- Julian calendar
if 0 == (year%4) then -- is a leap year?
month_length = 29; -- if leap year then 29 days in February
end
else -- Gregorian calendar
if (0 == (year%4) and (0 ~= (year%100) or 0 == (year%400))) then -- is a leap year?
month_length = 29; -- if leap year then 29 days in February
end
end
else
month_length = days_in_month[month];
end
if tonumber (day) > month_length then
return false;
end
return true;
end
--[[--------------------------< I S _ V A L I D _ M O N T H _ R A N G E _ S T Y L E >--------------------------
Months in a range are expected to have the same style: Jan–Mar or October–December but not February–Mar or Jul–August.
This function looks in cfg.date_names{} to see if both month names are listed in the long subtable or both are
listed in the short subtable. When both have the same style (both are listed in the same table), returns true; false else
]]
local function is_valid_month_range_style (month1, month2)
if (cfg.date_names.en.long[month1] and cfg.date_names.en.long[month2]) or -- are both English names listed in the long subtable?
(cfg.date_names.en.short[month1] and cfg.date_names.en.short[month2]) or -- are both English names listed in the short subtable?
(cfg.date_names['local'].long[month1] and cfg.date_names['local'].long[month2]) or -- are both local names listed in the long subtable?
(cfg.date_names['local'].short[month1] and cfg.date_names['local'].short[month2]) then -- are both local names listed in the short subtable?
return true;
end
return false; -- names are mixed
end
--[[--------------------------< I S _ V A L I D _ M O N T H _ S E A S O N _ R A N G E >------------------------
Check a pair of months or seasons to see if both are valid members of a month or season pair.
Month pairs are expected to be left to right, earliest to latest in time.
All season ranges are accepted as valid because there are publishers out there who have published a Summer–Spring YYYY issue, hence treat as ok
]]
local function is_valid_month_season_range(range_start, range_end, param)
local range_start_number = get_month_number (range_start);
local range_end_number;
if 0 == range_start_number then -- is this a month range?
range_start_number = get_season_number (range_start, param); -- not a month; is it a season? get start season number
range_end_number = get_season_number (range_end, param); -- get end season number
if (0 ~= range_start_number) and (0 ~= range_end_number) and (range_start_number ~= range_end_number) then
return true; -- any season pairing is accepted except when both are the same
end
return false; -- range_start and/or range_end is not a season
end
-- here when range_start is a month
range_end_number = get_month_number (range_end); -- get end month number
if range_start_number < range_end_number and -- range_start is a month; does range_start precede range_end?
is_valid_month_range_style (range_start, range_end) then -- do months have the same style?
return true; -- proper order and same style
end
return false; -- range_start month number is greater than or equal to range end number; or range end isn't a month
end
--[[--------------------------< M A K E _ C O I N S _ D A T E >------------------------------------------------
This function receives a table of date parts for one or two dates and an empty table reference declared in
Module:Citation/CS1. The function is called only for |date= parameters and only if the |date=<value> is
determined to be a valid date format. The question of what to do with invalid date formats is not answered here.
The date parts in the input table are converted to an ISO 8601 conforming date string:
single whole dates: yyyy-mm-dd
month and year dates: yyyy-mm
year dates: yyyy
ranges: yyyy-mm-dd/yyyy-mm-dd
yyyy-mm/yyyy-mm
yyyy/yyyy
Dates in the Julian calendar are reduced to year or year/year so that we don't have to do calendar conversion from
Julian to Proleptic Gregorian.
The input table has:
year, year2 – always present; if before 1582, ignore months and days if present
month, month2 – 0 if not provided, 1-12 for months, 21-24 for seasons; 99 Christmas
day, day2 – 0 if not provided, 1-31 for days
the output table receives:
rftdate: an ISO 8601 formatted date
rftchron: a free-form version of the date, usually without year which is in rftdate (season ranges and proper-name dates)
rftssn: one of four season keywords: winter, spring, summer, fall (lowercase)
rftquarter: one of four values: 1, 2, 3, 4
]]
local function make_COinS_date (input, tCOinS_date)
local date; -- one date or first date in a range
local date2 = ''; -- end of range date
-- start temporary Julian / Gregorian calendar uncertainty detection
local year = tonumber(input.year); -- this temporary code to determine the extent of sources dated to the Julian/Gregorian
local month = tonumber(input.month); -- interstice 1 October 1582 – 1 January 1926
local day = tonumber (input.day);
if (0 ~= day) and -- day must have a value for this to be a whole date
(((1582 == year) and (10 <= month) and (12 >= month)) or -- any whole 1582 date from 1 October to 31 December or
((1926 == year) and (1 == month) and (1 == input.day)) or -- 1 January 1926 or
((1582 < year) and (1925 >= year))) then -- any date 1 January 1583 – 31 December 1925
tCOinS_date.inter_cal_cat = true; -- set category flag true
end
-- end temporary Julian / Gregorian calendar uncertainty detection
if 1582 > tonumber(input.year) or 20 < tonumber(input.month) then -- Julian calendar or season so &rft.date gets year only
date = input.year;
if 0 ~= input.year2 and input.year ~= input.year2 then -- if a range, only the second year portion when not the same as range start year
date = string.format ('%.4d/%.4d', tonumber(input.year), tonumber(input.year2)) -- assemble the date range
end
if 20 < tonumber(input.month) then -- if season or proper-name date
local season = {[24] = 'winter', [21] = 'spring', [22] = 'summer', [23] = 'fall', [33] = '1', [34] = '2', [35] = '3', [36] = '4', [98] = 'Easter', [99] = 'Christmas'}; -- seasons lowercase, no autumn; proper-names use title case
if 0 == input.month2 then -- single season date
if 40 < tonumber(input.month) then
tCOinS_date.rftchron = season[input.month]; -- proper-name dates
elseif 30 < tonumber(input.month) then
tCOinS_date.rftquarter = season[input.month]; -- quarters
else
tCOinS_date.rftssn = season[input.month]; -- seasons
end
else -- season range with a second season specified
if input.year ~= input.year2 then -- season year – season year range or season year–year
tCOinS_date.rftssn = season[input.month]; -- start of range season; keep this?
if 0~= input.month2 then
tCOinS_date.rftchron = string.format ('%s %s – %s %s', season[input.month], input.year, season[input.month2], input.year2);
end
else -- season–season year range
tCOinS_date.rftssn = season[input.month]; -- start of range season; keep this?
tCOinS_date.rftchron = season[input.month] .. '–' .. season[input.month2]; -- season–season year range
end
end
end
tCOinS_date.rftdate = date;
return; -- done
end
if 0 ~= input.day then
date = string.format ('%s-%.2d-%.2d', input.year, tonumber(input.month), tonumber(input.day)); -- whole date
elseif 0 ~= input.month then
date = string.format ('%s-%.2d', input.year, tonumber(input.month)); -- year and month
else
date = string.format ('%s', input.year); -- just year
end
if 0 ~= input.year2 then
if 0 ~= input.day2 then
date2 = string.format ('/%s-%.2d-%.2d', input.year2, tonumber(input.month2), tonumber(input.day2)); -- whole date
elseif 0 ~= input.month2 then
date2 = string.format ('/%s-%.2d', input.year2, tonumber(input.month2)); -- year and month
else
date2 = string.format ('/%s', input.year2); -- just year
end
end
tCOinS_date.rftdate = date .. date2; -- date2 has the '/' separator
return;
end
--[[--------------------------< P A T T E R N S >--------------------------------------------------------------
this is the list of patterns for date formats that this module recognizes. Approximately the first half of these
patterns represent formats that might be reformatted into another format. Those that might be reformatted have
'indicator' letters that identify the content of the matching capture: 'd' (day), 'm' (month), 'a' (anchor year),
'y' (year); second day, month, year have a '2' suffix.
These patterns are used for both date validation and for reformatting. This table should not be moved to ~/Configuration
because changes to this table require changes to check_date() and to reformatter() and reformat_date()
]]
local patterns = {
-- year-initial numerical year-month-day
['ymd'] = {'^(%d%d%d%d)%-(%d%d)%-(%d%d)$', 'y', 'm', 'd'},
-- month-initial: month day, year
['Mdy'] = {'^(%D-) +([1-9]%d?), +((%d%d%d%d?)%a?)$', 'm', 'd', 'a', 'y'},
-- month-initial day range: month day–day, year; days are separated by endash
['Md-dy'] = {'^(%D-) +([1-9]%d?)[%-–]([1-9]%d?), +((%d%d%d%d)%a?)$', 'm', 'd', 'd2', 'a', 'y'},
-- day-initial: day month year
['dMy'] = {'^([1-9]%d?) +(%D-) +((%d%d%d%d?)%a?)$', 'd', 'm', 'a', 'y'},
-- year-initial: year month day; day: 1 or 2 two digits, leading zero allowed; not supported at en.wiki
-- ['yMd'] = {'^((%d%d%d%d?)%a?) +(%D-) +(%d%d?)$', 'a', 'y', 'm', 'd'},
-- day-range-initial: day–day month year; days are separated by endash
['d-dMy'] = {'^([1-9]%d?)[%-–]([1-9]%d?) +(%D-) +((%d%d%d%d)%a?)$', 'd', 'd2', 'm', 'a', 'y'},
-- day initial month-day-range: day month - day month year; uses spaced endash
['dM-dMy'] = {'^([1-9]%d?) +(%D-) +[%-–] +([1-9]%d?) +(%D-) +((%d%d%d%d)%a?)$', 'd', 'm', 'd2', 'm2', 'a', 'y'},
-- month initial month-day-range: month day – month day, year; uses spaced endash
['Md-Mdy'] = {'^(%D-) +([1-9]%d?) +[%-–] +(%D-) +([1-9]%d?), +((%d%d%d%d)%a?)$','m', 'd', 'm2', 'd2', 'a', 'y'},
-- day initial month-day-year-range: day month year - day month year; uses spaced endash
['dMy-dMy'] = {'^([1-9]%d?) +(%D-) +(%d%d%d%d) +[%-–] +([1-9]%d?) +(%D-) +((%d%d%d%d)%a?)$', 'd', 'm', 'y', 'd2', 'm2', 'a', 'y2'},
-- month initial month-day-year-range: month day, year – month day, year; uses spaced endash
['Mdy-Mdy'] = {'^(%D-) +([1-9]%d?), +(%d%d%d%d) +[%-–] +(%D-) +([1-9]%d?), +((%d%d%d%d)%a?)$', 'm', 'd', 'y', 'm2', 'd2', 'a', 'y2'},
-- these date formats cannot be converted, per se, but month name can be rendered short or long
-- month/season year - month/season year; separated by spaced endash
['My-My'] = {'^(%D-) +(%d%d%d%d) +[%-–] +(%D-) +((%d%d%d%d)%a?)$', 'm', 'y', 'm2', 'a', 'y2'},
-- month/season range year; months separated by endash
['M-My'] = {'^(%D-)[%-–](%D-) +((%d%d%d%d)%a?)$', 'm', 'm2', 'a', 'y'},
-- month/season year or proper-name year; quarter year when First Quarter YYYY etc.
['My'] = {'^([^%d–]-) +((%d%d%d%d)%a?)$', 'm', 'a', 'y'}, -- this way because endash is a member of %D; %D- will match January–March 2019 when it shouldn't
-- these date formats cannot be converted
['Sy4-y2'] = {'^(%D-) +((%d%d)%d%d)[%-–]((%d%d)%a?)$'}, -- special case Winter/Summer year-year (YYYY-YY); year separated with unspaced endash
['Sy-y'] = {'^(%D-) +(%d%d%d%d)[%-–]((%d%d%d%d)%a?)$'}, -- special case Winter/Summer year-year; year separated with unspaced endash
['y-y'] = {'^(%d%d%d%d?)[%-–]((%d%d%d%d?)%a?)$'}, -- year range: YYY-YYY or YYY-YYYY or YYYY–YYYY; separated by unspaced endash; 100-9999
['y4-y2'] = {'^((%d%d)%d%d)[%-–]((%d%d)%a?)$'}, -- year range: YYYY–YY; separated by unspaced endash
['y'] = {'^((%d%d%d%d?)%a?)$'}, -- year; here accept either YYY or YYYY
}
--[[--------------------------< I S _ V A L I D _ E M B A R G O _ D A T E >------------------------------------
returns true and date value if that value has proper dmy, mdy, ymd format.
returns false and 9999 (embargoed forever) when date value is not proper format; assumes that when |pmc-embargo-date= is
set, the editor intended to embargo a PMC but |pmc-embargo-date= does not hold a single date.
]]
local function is_valid_embargo_date (v)
if v:match (patterns['ymd'][1]) or -- ymd
v:match (patterns['Mdy'][1]) or -- dmy
v:match (patterns['dMy'][1]) then -- mdy
return true, v;
end
return false, '9999'; -- if here not good date so return false and set embargo date to long time in future
end
--[[--------------------------< C H E C K _ D A T E >----------------------------------------------------------
Check date format to see that it is one of the formats approved by WP:DATESNO or WP:DATERANGE. Exception: only
allowed range separator is endash. Additionally, check the date to see that it is a real date: no 31 in 30-day
months; no 29 February when not a leap year. Months, both long-form and three character abbreviations, and seasons
must be spelled correctly. Future years beyond next year are not allowed.
If the date fails the format tests, this function returns false and does not return values for anchor_year and
COinS_date. When this happens, the date parameter is (DEBUG: not?) used in the COinS metadata and the CITEREF identifier gets
its year from the year parameter if present otherwise CITEREF does not get a date value.
Inputs:
date_string - date string from date-holding parameters (date, year, publication-date, access-date, pmc-embargo-date, archive-date, lay-date)
Returns:
false if date string is not a real date; else
true, anchor_year, COinS_date
anchor_year can be used in CITEREF anchors
COinS_date is ISO 8601 format date; see make_COInS_date()
]]
local function check_date (date_string, param, tCOinS_date)
local year; -- assume that year2, months, and days are not used;
local year2 = 0; -- second year in a year range
local month = 0;
local month2 = 0; -- second month in a month range
local day = 0;
local day2 = 0; -- second day in a day range
local anchor_year;
local coins_date;
if date_string:match (patterns['ymd'][1]) then -- year-initial numerical year month day format
year, month, day = date_string:match (patterns['ymd'][1]);
if 12 < tonumber(month) or 1 > tonumber(month) or 1582 > tonumber(year) or 0 == tonumber(day) then return false; end -- month or day number not valid or not Gregorian calendar
anchor_year = year;
elseif mw.ustring.match(date_string, patterns['Mdy'][1]) then -- month-initial: month day, year
month, day, anchor_year, year = mw.ustring.match(date_string, patterns['Mdy'][1]);
month = get_month_number (month);
if 0 == month then return false; end -- return false if month text isn't one of the twelve months
elseif mw.ustring.match(date_string, patterns['Md-dy'][1]) then -- month-initial day range: month day–day, year; days are separated by endash
month, day, day2, anchor_year, year = mw.ustring.match(date_string, patterns['Md-dy'][1]);
if tonumber(day) >= tonumber(day2) then return false; end -- date range order is left to right: earlier to later; dates may not be the same;
month = get_month_number (month);
if 0 == month then return false; end -- return false if month text isn't one of the twelve months
month2=month; -- for metadata
year2 = year;
elseif mw.ustring.match(date_string, patterns['dMy'][1]) then -- day-initial: day month year
day, month, anchor_year, year = mw.ustring.match(date_string, patterns['dMy'][1]);
month = get_month_number (month);
if 0 == month then return false; end -- return false if month text isn't one of the twelve months
--[[ NOT supported at en.wiki
elseif mw.ustring.match(date_string, patterns['yMd'][1]) then -- year-initial: year month day; day: 1 or 2 two digits, leading zero allowed
anchor_year, year, month, day = mw.ustring.match(date_string, patterns['yMd'][1]);
month = get_month_number (month);
if 0 == month then return false; end -- return false if month text isn't one of the twelve months
-- end NOT supported at en.wiki ]]
elseif mw.ustring.match(date_string, patterns['d-dMy'][1]) then -- day-range-initial: day–day month year; days are separated by endash
day, day2, month, anchor_year, year = mw.ustring.match(date_string, patterns['d-dMy'][1]);
if tonumber(day) >= tonumber(day2) then return false; end -- date range order is left to right: earlier to later; dates may not be the same;
month = get_month_number (month);
if 0 == month then return false; end -- return false if month text isn't one of the twelve months
month2 = month; -- for metadata
year2 = year;
elseif mw.ustring.match(date_string, patterns['dM-dMy'][1]) then -- day initial month-day-range: day month - day month year; uses spaced endash
day, month, day2, month2, anchor_year, year = mw.ustring.match(date_string, patterns['dM-dMy'][1]);
if (not is_valid_month_season_range(month, month2)) or not is_valid_year(year) then return false; end -- date range order is left to right: earlier to later;
month = get_month_number (month); -- for metadata
month2 = get_month_number (month2);
year2 = year;
elseif mw.ustring.match(date_string, patterns['Md-Mdy'][1]) then -- month initial month-day-range: month day – month day, year; uses spaced endash
month, day, month2, day2, anchor_year, year = mw.ustring.match(date_string, patterns['Md-Mdy'][1]);
if (not is_valid_month_season_range(month, month2, param)) or not is_valid_year(year) then return false; end
month = get_month_number (month); -- for metadata
month2 = get_month_number (month2);
year2 = year;
elseif mw.ustring.match(date_string, patterns['dMy-dMy'][1]) then -- day initial month-day-year-range: day month year - day month year; uses spaced endash
day, month, year, day2, month2, anchor_year, year2 = mw.ustring.match(date_string, patterns['dMy-dMy'][1]);
if tonumber(year2) <= tonumber(year) then return false; end -- must be sequential years, left to right, earlier to later
if not is_valid_year(year2) or not is_valid_month_range_style(month, month2) then return false; end -- year2 no more than one year in the future; months same style
month = get_month_number (month); -- for metadata
month2 = get_month_number (month2);
if 0 == month or 0 == month2 then return false; end -- both must be valid
elseif mw.ustring.match(date_string, patterns['Mdy-Mdy'][1]) then -- month initial month-day-year-range: month day, year – month day, year; uses spaced endash
month, day, year, month2, day2, anchor_year, year2 = mw.ustring.match(date_string, patterns['Mdy-Mdy'][1]);
if tonumber(year2) <= tonumber(year) then return false; end -- must be sequential years, left to right, earlier to later
if not is_valid_year(year2) or not is_valid_month_range_style(month, month2) then return false; end -- year2 no more than one year in the future; months same style
month = get_month_number (month); -- for metadata
month2 = get_month_number(month2);
if 0 == month or 0 == month2 then return false; end -- both must be valid
elseif mw.ustring.match(date_string, patterns['Sy4-y2'][1]) then -- special case Winter/Summer year-year (YYYY-YY); year separated with unspaced endash
local century;
month, year, century, anchor_year, year2 = mw.ustring.match(date_string, patterns['Sy4-y2'][1]);
if 'Winter' ~= month and 'Summer' ~= month then return false end; -- 'month' can only be Winter or Summer
anchor_year = year .. '–' .. anchor_year; -- assemble anchor_year from both years
year2 = century..year2; -- add the century to year2 for comparisons
if 1 ~= tonumber(year2) - tonumber(year) then return false; end -- must be sequential years, left to right, earlier to later
if not is_valid_year(year2) then return false; end -- no year farther in the future than next year
month = get_season_number(month, param);
elseif mw.ustring.match(date_string, patterns['Sy-y'][1]) then -- special case Winter/Summer year-year; year separated with unspaced endash
month, year, anchor_year, year2 = mw.ustring.match(date_string, patterns['Sy-y'][1]);
month = get_season_number (month, param); -- <month> can only be winter or summer; also for metadata
if (month ~= cfg.date_names['en'].season['Winter']) and (month ~= cfg.date_names['en'].season['Summer']) then
return false; -- not Summer or Winter; abandon
end
anchor_year = year .. '–' .. anchor_year; -- assemble anchor_year from both years
if 1 ~= tonumber(year2) - tonumber(year) then return false; end -- must be sequential years, left to right, earlier to later
if not is_valid_year(year2) then return false; end -- no year farther in the future than next year
elseif mw.ustring.match(date_string, patterns['My-My'][1]) then -- month/season year - month/season year; separated by spaced endash
month, year, month2, anchor_year, year2 = mw.ustring.match(date_string, patterns['My-My'][1]);
anchor_year = year .. '–' .. anchor_year; -- assemble anchor_year from both years
if tonumber(year) >= tonumber(year2) then return false; end -- left to right, earlier to later, not the same
if not is_valid_year(year2) then return false; end -- no year farther in the future than next year
if 0 ~= get_month_number(month) and 0 ~= get_month_number(month2) and is_valid_month_range_style(month, month2) then -- both must be month year, same month style
month = get_month_number(month);
month2 = get_month_number(month2);
elseif 0 ~= get_season_number(month, param) and 0 ~= get_season_number(month2, param) then -- both must be season year, not mixed
month = get_season_number(month, param);
month2 = get_season_number(month2, param);
else
return false;
end
elseif mw.ustring.match(date_string, patterns['M-My'][1]) then -- month/season range year; months separated by endash
month, month2, anchor_year, year = mw.ustring.match(date_string, patterns['M-My'][1]);
if (not is_valid_month_season_range(month, month2, param)) or (not is_valid_year(year)) then return false; end
if 0 ~= get_month_number(month) then -- determined to be a valid range so just check this one to know if month or season
month = get_month_number(month);
month2 = get_month_number(month2);
if 0 == month or 0 == month2 then return false; end
else
month = get_season_number(month, param);
month2 = get_season_number(month2, param);
end
year2 = year;
elseif mw.ustring.match(date_string, patterns['My'][1]) then -- month/season/quarter/proper-name year
month, anchor_year, year = mw.ustring.match(date_string, patterns['My'][1]);
if not is_valid_year(year) then return false; end
month = get_element_number(month, param); -- get month season quarter proper-name number or nil
if not month then return false; end -- not valid whatever it is
elseif mw.ustring.match(date_string, patterns['y-y'][1]) then -- Year range: YYY-YYY or YYY-YYYY or YYYY–YYYY; separated by unspaced endash; 100-9999
year, anchor_year, year2 = mw.ustring.match(date_string, patterns['y-y'][1]);
anchor_year = year .. '–' .. anchor_year; -- assemble anchor year from both years
if tonumber(year) >= tonumber(year2) then return false; end -- left to right, earlier to later, not the same
if not is_valid_year(year2) then return false; end -- no year farther in the future than next year
elseif mw.ustring.match(date_string, patterns['y4-y2'][1]) then -- Year range: YYYY–YY; separated by unspaced endash
local century;
year, century, anchor_year, year2 = mw.ustring.match(date_string, patterns['y4-y2'][1]);
anchor_year = year .. '–' .. anchor_year; -- assemble anchor year from both years
if in_array (param, {'date', 'publication-date', 'year'}) then
add_prop_cat ('year-range-abbreviated');
end
if 13 > tonumber(year2) then return false; end -- don't allow 2003-05 which might be May 2003
year2 = century .. year2; -- add the century to year2 for comparisons
if tonumber(year) >= tonumber(year2) then return false; end -- left to right, earlier to later, not the same
if not is_valid_year(year2) then return false; end -- no year farther in the future than next year
elseif mw.ustring.match(date_string, patterns['y'][1]) then -- year; here accept either YYY or YYYY
anchor_year, year = mw.ustring.match(date_string, patterns['y'][1]);
if false == is_valid_year(year) then
return false;
end
else
return false; -- date format not one of the MOS:DATE approved formats
end
if 'access-date' == param then -- test accessdate here because we have numerical date parts
if 0 ~= year and 0 ~= month and 0 ~= day and -- all parts of a single date required
0 == year2 and 0 == month2 and 0 == day2 then -- none of these; accessdate must not be a range
if not is_valid_accessdate(year .. '-' .. month .. '-' .. day) then
return false; -- return false when accessdate out of bounds
end
else
return false; -- return false when accessdate is a range of two dates
end
end
local result=true; -- check whole dates for validity; assume true because not all dates will go through this test
if 0 ~= year and 0 ~= month and 0 ~= day and 0 == year2 and 0 == month2 and 0 == day2 then -- YMD (simple whole date)
result = is_valid_date (year, month, day, param); -- <param> for |pmc-embargo-date=
elseif 0 ~= year and 0 ~= month and 0 ~= day and 0 == year2 and 0 == month2 and 0 ~= day2 then -- YMD-d (day range)
result = is_valid_date (year, month, day);
result = result and is_valid_date (year, month, day2);
elseif 0 ~= year and 0 ~= month and 0 ~= day and 0 == year2 and 0 ~= month2 and 0 ~= day2 then -- YMD-md (day month range)
result = is_valid_date (year, month, day);
result = result and is_valid_date (year, month2, day2);
elseif 0 ~= year and 0 ~= month and 0 ~= day and 0 ~= year2 and 0 ~= month2 and 0 ~= day2 then -- YMD-ymd (day month year range)
result = is_valid_date(year, month, day);
result = result and is_valid_date(year2, month2, day2);
end
if false == result then return false; end
if nil ~= tCOinS_date then -- this table only passed into this function when testing |date= parameter values
make_COinS_date ({year = year, month = month, day = day, year2 = year2, month2 = month2, day2 = day2}, tCOinS_date); -- make an ISO 8601 date string for COinS
end
return true, anchor_year; -- format is good and date string represents a real date
end
--[[--------------------------< D A T E S >--------------------------------------------------------------------
Cycle the date-holding parameters in passed table date_parameters_list through check_date() to check compliance with MOS:DATE. For all valid dates, check_date() returns
true. The |date= parameter test is unique, it is the only date holding parameter from which values for anchor_year (used in CITEREF identifiers) and COinS_date (used in
the COinS metadata) are derived. The |date= parameter is the only date-holding parameter that is allowed to contain the no-date keywords "n.d." or "nd" (without quotes).
Unlike most error messages created in this module, only one error message is created by this function. Because all of the date holding parameters are processed serially,
parameters with errors are added to the <error_list> sequence table as the dates are tested.
]]
local function dates(date_parameters_list, tCOinS_date, error_list)
local anchor_year; -- will return as nil if the date being tested is not |date=
local COinS_date; -- will return as nil if the date being tested is not |date=
local embargo_date; -- if embargo date is a good dmy, mdy, ymd date then holds original value else reset to 9999
local good_date = false;
for k, v in pairs(date_parameters_list) do -- for each date-holding parameter in the list
if is_set(v.val) then -- if the parameter has a value
v.val = mw.ustring.gsub(v.val, '%d', cfg.date_names.local_digits); -- translate 'local' digits to Western 0-9
if v.val:match("^c%. [1-9]%d%d%d?%a?$") then -- special case for c. year or with or without CITEREF disambiguator - only |date= and |year=
local year = v.val:match("c%. ([1-9]%d%d%d?)%a?"); -- get the year portion so it can be tested
if 'date' == k then
anchor_year, COinS_date = v.val:match("((c%. [1-9]%d%d%d?)%a?)"); -- anchor year and COinS_date only from |date= parameter
good_date = is_valid_year(year);
elseif 'year' == k then
good_date = is_valid_year(year);
end
elseif 'date' == k then -- if the parameter is |date=
if v.val:match("^n%.d%.%a?$") then -- ToDo: I18N -- if |date=n.d. with or without a CITEREF disambiguator
good_date, anchor_year, COinS_date = true, v.val:match("((n%.d%.)%a?)"); -- ToDo: I18N -- "n.d."; no error when date parameter is set to no date
elseif v.val:match("^nd%a?$") then -- ToDo: I18N -- if |date=nd with or without a CITEREF disambiguator
good_date, anchor_year, COinS_date = true, v.val:match("((nd)%a?)"); -- ToDo: I18N -- "nd"; no error when date parameter is set to no date
else
good_date, anchor_year, COinS_date = check_date (v.val, k, tCOinS_date); -- go test the date
end
elseif 'year' == k then -- if the parameter is |year= it should hold only a year value
if v.val:match("^[1-9]%d%d%d?%a?$") then -- if |year = 3 or 4 digits only with or without a CITEREF disambiguator
good_date, anchor_year, COinS_date = true, v.val:match("((%d+)%a?)");
end
elseif 'pmc-embargo-date' == k then -- if the parameter is |pmc-embargo-date=
good_date = check_date (v.val, k); -- go test the date
if true == good_date then -- if the date is a valid date
good_date, embargo_date = is_valid_embargo_date (v.val); -- is |pmc-embargo-date= date a single dmy, mdy, or ymd formatted date? yes: returns embargo date; no: returns 9999
end
else -- any other date-holding parameter
good_date = check_date (v.val, k); -- go test the date
end
if false == good_date then -- assemble one error message so we don't add the tracking category multiple times
table.insert (error_list, wrap_style ('parameter', v.name)); -- make parameter name suitable for error message list
end
end
end
return anchor_year, embargo_date; -- and done
end
--[[--------------------------< Y E A R _ D A T E _ C H E C K >------------------------------------------------
Compare the value provided in |year= with the year value(s) provided in |date=. This function sets a local numeric value:
0 - year value does not match the year value in date
1 - (default) year value matches the year value in date or one of the year values when date contains two years
2 - year value matches the year value in date when date is in the form YYYY-MM-DD and year is disambiguated (|year=YYYYx)
the numeric value in <result> determines the 'output' if any from this function:
0 – adds error message to error_list sequence table
1 – adds maint cat
2 – does nothing
]]
local function year_date_check (year_string, year_origin, date_string, date_origin, error_list)
local year;
local date1;
local date2;
local result = 1; -- result of the test; assume that the test passes
year = year_string:match ('(%d%d%d%d?)');
if date_string:match ('%d%d%d%d%-%d%d%-%d%d') and year_string:match ('%d%d%d%d%a') then --special case where both date and year are required YYYY-MM-DD and YYYYx
date1 = date_string:match ('(%d%d%d%d)');
year = year_string:match ('(%d%d%d%d)');
if year ~= date1 then
result = 0; -- years don't match
else
result = 2; -- years match; but because disambiguated, don't add to maint cat
end
elseif date_string:match ("%d%d%d%d?.-%d%d%d%d?") then -- any of the standard range formats of date with two three- or four-digit years
date1, date2 = date_string:match ("(%d%d%d%d?).-(%d%d%d%d?)");
if year ~= date1 and year ~= date2 then
result = 0;
end
elseif mw.ustring.match(date_string, "%d%d%d%d[%-–]%d%d") then -- YYYY-YY date ranges
local century;
date1, century, date2 = mw.ustring.match(date_string, "((%d%d)%d%d)[%-–]+(%d%d)");
date2 = century..date2; -- convert YY to YYYY
if year ~= date1 and year ~= date2 then
result = 0;
end
elseif date_string:match ("%d%d%d%d?") then -- any of the standard formats of date with one year
date1 = date_string:match ("(%d%d%d%d?)");
if year ~= date1 then
result = 0;
end
else -- should never get here; this function called only when no other date errors
result = 0; -- no recognizable year in date
end
if 0 == result then -- year / date mismatch
table.insert (error_list, substitute (cfg.messages['mismatch'], {year_origin, date_origin})); -- add error message to error_list sequence table
elseif 1 == result then -- redundant year / date
set_message ('maint_date_year'); -- add a maint cat
end
end
--[[--------------------------< R E F O R M A T T E R >--------------------------------------------------------
reformat 'date' into new format specified by format_param if pattern_idx (the current format of 'date') can be
reformatted. Does the grunt work for reformat_dates().
The table re_formats maps pattern_idx (current format) and format_param (desired format) to a table that holds:
format string used by string.format()
identifier letters ('d', 'm', 'y', 'd2', 'm2', 'y2') that serve as indexes into a table t{} that holds captures
from mw.ustring.match() for the various date parts specified by patterns[pattern_idx][1]
Items in patterns{} have the general form:
['ymd'] = {'^(%d%d%d%d)%-(%d%d)%-(%d%d)$', 'y', 'm', 'd'}, where:
['ymd'] is pattern_idx
patterns['ymd'][1] is the match pattern with captures for mw.ustring.match()
patterns['ymd'][2] is an indicator letter identifying the content of the first capture
patterns['ymd'][3] ... the second capture etc.
when a pattern matches a date, the captures are loaded into table t{} in capture order using the idemtifier
characters as indexes into t{} For the above, a ymd date is in t{} as:
t.y = first capture (year), t.m = second capture (month), t.d = third capture (day)
To reformat, this function is called with the pattern_idx that matches the current format of the date and with
format_param set to the desired format. This function loads table t{} as described and then calls string.format()
with the format string specified by re_format[pattern_idx][format_param][1] using values taken from t{} according
to the capture identifier letters specified by patterns[pattern_idx][format_param][n] where n is 2..
]]
local re_formats = {
['ymd'] = { -- date format is ymd; reformat to:
['mdy'] = {'%s %s, %s', 'm', 'd', 'y'}, -- |df=mdy
['dmy'] = {'%s %s %s', 'd', 'm', 'y'}, -- |df=dmy
-- ['yMd'] = {'%s %s %s', 'y', 'm', 'd'}, -- |df=yMd; not supported at en.wiki
},
['Mdy'] = { -- date format is Mdy; reformat to:
['mdy'] = {'%s %s, %s', 'm', 'd', 'y'}, -- for long/short reformatting
['dmy'] = {'%s %s %s', 'd', 'm', 'y'}, -- |df=dmy
['ymd'] = {'%s-%s-%s', 'y', 'm', 'd'}, -- |df=ymd
-- ['yMd'] = {'%s %s %s', 'y', 'm', 'd'}, -- |df=yMd; not supported at en.wiki
},
['dMy'] = { -- date format is dMy; reformat to:
['dmy'] = {'%s %s %s', 'd', 'm', 'y'}, -- for long/short reformatting
['mdy'] = {'%s %s, %s', 'm', 'd', 'y'}, -- |df=mdy
['ymd'] = {'%s-%s-%s', 'y', 'm', 'd'}, -- |df=ymd
-- ['yMd'] = {'%s %s %s', 'y', 'm', 'd'}, -- |df=yMd; not supported at en.wiki
},
['Md-dy'] = { -- date format is Md-dy; reformat to:
['mdy'] = {'%s %s–%s, %s', 'm', 'd', 'd2', 'y'}, -- for long/short reformatting
['dmy'] = {'%s–%s %s %s', 'd', 'd2', 'm', 'y'}, -- |df=dmy -> d-dMy
},
['d-dMy'] = { -- date format is d-d>y; reformat to:
['dmy'] = {'%s–%s %s %s', 'd', 'd2', 'm', 'y'}, -- for long/short reformatting
['mdy'] = {'%s %s–%s, %s', 'm', 'd', 'd2', 'y'}, -- |df=mdy -> Md-dy
},
['dM-dMy'] = { -- date format is dM-dMy; reformat to:
['dmy'] = {'%s %s – %s %s %s', 'd', 'm', 'd2', 'm2', 'y'}, -- for long/short reformatting
['mdy'] = {'%s %s – %s %s, %s', 'm', 'd', 'm2', 'd2', 'y'}, -- |df=mdy -> Md-Mdy
},
['Md-Mdy'] = { -- date format is Md-Mdy; reformat to:
['mdy'] = {'%s %s – %s %s, %s', 'm', 'd', 'm2', 'd2', 'y'}, -- for long/short reformatting
['dmy'] = {'%s %s – %s %s %s', 'd', 'm', 'd2', 'm2', 'y'}, -- |df=dmy -> dM-dMy
},
['dMy-dMy'] = { -- date format is dMy-dMy; reformat to:
['dmy'] = {'%s %s %s – %s %s %s', 'd', 'm', 'y', 'd2', 'm2', 'y2'}, -- for long/short reformatting
['mdy'] = {'%s %s, %s – %s %s, %s', 'm', 'd', 'y', 'm2', 'd2', 'y2'}, -- |df=mdy -> Mdy-Mdy
},
['Mdy-Mdy'] = { -- date format is Mdy-Mdy; reformat to:
['mdy'] = {'%s %s, %s – %s %s, %s', 'm', 'd', 'y', 'm2', 'd2', 'y2'}, -- for long/short reformatting
['dmy'] = {'%s %s %s – %s %s %s', 'd', 'm', 'y', 'd2', 'm2', 'y2'}, -- |df=dmy -> dMy-dMy
},
['My-My'] = { -- these for long/short reformatting
['any'] = {'%s %s – %s %s', 'm', 'y', 'm2', 'y2'}, -- dmy/mdy agnostic
},
['M-My'] = { -- these for long/short reformatting
['any'] = {'%s–%s %s', 'm', 'm2', 'y'}, -- dmy/mdy agnostic
},
['My'] = { -- these for long/short reformatting
['any'] = {'%s %s', 'm', 'y'}, -- dmy/mdy agnostic
},
-- ['yMd'] = { -- not supported at en.wiki
-- ['mdy'] = {'%s %s, %s', 'm', 'd', 'y'}, -- |df=mdy
-- ['dmy'] = {'%s %s %s', 'd', 'm', 'y'}, -- |df=dmy
-- ['ymd'] = {'%s-%s-%s', 'y', 'm', 'd'}, -- |df=ymd
-- },
}
local function reformatter (date, pattern_idx, format_param, mon_len)
if not in_array (pattern_idx, {'ymd', 'Mdy', 'Md-dy', 'dMy', 'yMd', 'd-dMy', 'dM-dMy', 'Md-Mdy', 'dMy-dMy', 'Mdy-Mdy', 'My-My', 'M-My', 'My'}) then
return; -- not in this set of date format patterns then not a reformattable date
end
if 'ymd' == format_param and in_array (pattern_idx, {'ymd', 'Md-dy', 'd-dMy', 'dM-dMy', 'Md-Mdy', 'dMy-dMy', 'Mdy-Mdy', 'My-My', 'M-My', 'My'}) then
return; -- ymd date ranges not supported at en.wiki; no point in reformatting ymd to ymd
end
if in_array (pattern_idx, {'My', 'M-My', 'My-My'}) then -- these are not dmy/mdy so can't be 'reformatted' into either
format_param = 'any'; -- so format-agnostic
end
-- yMd is not supported at en.wiki; when yMd is supported at your wiki, uncomment the next line
-- if 'yMd' == format_param and in_array (pattern_idx, {'yMd', 'Md-dy', 'd-dMy', 'dM-dMy', 'Md-Mdy', 'dMy-dMy', 'Mdy-Mdy'}) then -- these formats not convertable; yMd not supported at en.wiki
if 'yMd' == format_param then -- yMd not supported at en.wiki; when yMd is supported at your wiki, remove or comment-out this line
return; -- not a reformattable date
end
local c1, c2, c3, c4, c5, c6, c7; -- these hold the captures specified in patterns[pattern_idx][1]
c1, c2, c3, c4, c5, c6, c7 = mw.ustring.match (date, patterns[pattern_idx][1]); -- get the captures
local t = { -- table that holds k/v pairs of date parts from the captures and patterns[pattern_idx][2..]
[patterns[pattern_idx][2]] = c1; -- at minimum there is always one capture with a matching indicator letter
[patterns[pattern_idx][3] or 'x'] = c2; -- patterns can have a variable number of captures; each capture requires an indicator letter;
[patterns[pattern_idx][4] or 'x'] = c3; -- where there is no capture, there is no indicator letter so n in patterns[pattern_idx][n] will be nil;
[patterns[pattern_idx][5] or 'x'] = c4; -- the 'x' here spoofs an indicator letter to prevent 'table index is nil' error
[patterns[pattern_idx][6] or 'x'] = c5;
[patterns[pattern_idx][7] or 'x'] = c6;
[patterns[pattern_idx][8] or 'x'] = c7;
};
if t.a then -- if this date has an anchor year capture (all convertable date formats except ymd)
if t.y2 then -- for year range date formats
t.y2 = t.a; -- use the anchor year capture when reassembling the date
else -- here for single date formats (except ymd)
t.y = t.a; -- use the anchor year capture when reassembling the date
end
end
if tonumber(t.m) then -- if raw month is a number (converting from ymd)
if 's' == mon_len then -- if we are to use abbreviated month names
t.m = cfg.date_names['inv_local_short'][tonumber(t.m)]; -- convert it to a month name
else
t.m = cfg.date_names['inv_local_long'][tonumber(t.m)]; -- convert it to a month name
end
t.d = t.d:gsub ('0(%d)', '%1'); -- strip leading '0' from day if present
elseif 'ymd' == format_param then -- when converting to ymd
t.y = t.y:gsub ('%a', ''); -- strip CITREF disambiguator if present; anchor year already known so process can proceed; TODO: maint message?
if 1582 > tonumber (t.y) then -- ymd format dates not allowed before 1582
return;
end
t.m = string.format ('%02d', get_month_number (t.m)); -- make sure that month and day are two digits
t.d = string.format ('%02d', t.d);
elseif mon_len then -- if mon_len is set to either 'short' or 'long'
for _, mon in ipairs ({'m', 'm2'}) do -- because there can be two month names, check both
if t[mon] then
t[mon] = get_month_number (t[mon]); -- get the month number for this month (is length agnostic)
if 0 == t[mon] then return; end -- seasons and named dates can't be converted
t[mon] = (('s' == mon_len) and cfg.date_names['inv_local_short'][t[mon]]) or cfg.date_names['inv_local_long'][t[mon]]; -- fetch month name according to length
end
end
end
local new_date = string.format (re_formats[pattern_idx][format_param][1], -- format string
t[re_formats[pattern_idx][format_param][2]], -- named captures from t{}
t[re_formats[pattern_idx][format_param][3]],
t[re_formats[pattern_idx][format_param][4]],
t[re_formats[pattern_idx][format_param][5]],
t[re_formats[pattern_idx][format_param][6]],
t[re_formats[pattern_idx][format_param][7]],
t[re_formats[pattern_idx][format_param][8]]
);
return new_date;
end
--[[-------------------------< R E F O R M A T _ D A T E S >--------------------------------------------------
Reformats existing dates into the format specified by format.
format is one of several manual keywords: dmy, dmy-all, mdy, mdy-all, ymd, ymd-all. The -all version includes
access- and archive-dates; otherwise these dates are not reformatted.
This function allows automatic date formatting. In ~/Configuration, the article source is searched for one of
the {{use xxx dates}} templates. If found, xxx becomes the global date format as xxx-all. If |cs1-dates= in
{{use xxx dates}} has legitimate value then that value determines how cs1|2 dates will be rendered. Legitimate
values for |cs1-dates= are:
l - all dates are rendered with long month names
ls - publication dates use long month names; access-/archive-dates use abbreviated month names
ly - publication dates use long month names; access-/archive-dates rendered in ymd format
s - all dates are rendered with abbreviated (short) month names
sy - publication dates use abbreviated month names; access-/archive-dates rendered in ymd format
y - all dates are rendered in ymd format
the format argument for automatic date formatting will be the format specified by {{use xxx dates}} with the
value supplied by |cs1-dates so one of: xxx-l, xxx-ls, xxx-ly, xxx-s, xxx-sy, xxx-y, or simply xxx (|cs1-dates=
empty, omitted, or invalid) where xxx shall be either of dmy or mdy.
dates are extracted from date_parameters_list, reformatted (if appropriate), and then written back into the
list in the new format. Dates in date_parameters_list are presumed here to be valid (no errors). This function
returns true when a date has been reformatted, false else. Actual reformatting is done by reformatter().
]]
local function reformat_dates (date_parameters_list, format)
local all = false; -- set to false to skip access- and archive-dates
local len_p = 'l'; -- default publication date length shall be long
local len_a = 'l'; -- default access-/archive-date length shall be long
local result = false;
local new_date;
if format:match('%a+%-all') then -- manual df keyword; auto df keyword when length not specified in {{use xxx dates}};
format = format:match('(%a+)%-all'); -- extract the format
all = true; -- all dates are long format dates because this keyword doesn't specify length
elseif format:match('%a+%-[lsy][sy]?') then -- auto df keywords; internal only
all = true; -- auto df applies to all dates; use length specified by capture len_p for all dates
format, len_p, len_a = format:match('(%a+)%-([lsy])([sy]?)'); -- extract the format and length keywords
if 'y' == len_p then -- because allowed by MOS:DATEUNIFY (sort of) range dates and My dates not reformatted
format = 'ymd'; -- override {{use xxx dates}}
elseif (not is_set(len_a)) or (len_p == len_a) then -- no access-/archive-date length specified or same length as publication dates then
len_a = len_p; -- in case len_a not set
end
end -- else only publication dates and they are long
for param_name, param_val in pairs (date_parameters_list) do -- for each date-holding parameter in the list
if is_set (param_val.val) then -- if the parameter has a value
if not (not all and in_array (param_name, {'access-date', 'archive-date'})) then -- skip access- or archive-date unless format is xxx-all; yeah, ugly; TODO: find a better way
for pattern_idx, pattern in pairs (patterns) do
if mw.ustring.match (param_val.val, pattern[1]) then
if all and in_array (param_name, {'access-date', 'archive-date'}) then -- if this date is an access- or archive-date
new_date = reformatter (param_val.val, pattern_idx, (('y' == len_a) and 'ymd') or format, len_a); -- choose ymd or dmy/mdy according to len_a setting
else -- all other dates
new_date = reformatter (param_val.val, pattern_idx, format, len_p);
end
if new_date then -- set when date was reformatted
date_parameters_list[param_name].val = new_date; -- update date in date list
result = true; -- and announce that changes have been made
end
end -- if
end -- for
end -- if
end -- if
end -- for
return result; -- declare boolean result and done
end
--[[--------------------------< D A T E _ H Y P H E N _ T O _ D A S H >----------------------------------------
Loops through the list of date-holding parameters and converts any hyphen to an ndash. Not called if the cs1|2
template has any date errors.
Modifies the date_parameters_list and returns true if hyphens are replaced, else returns false.
]]
local function date_hyphen_to_dash (date_parameters_list)
local result = false;
local n;
for param_name, param_val in pairs(date_parameters_list) do -- for each date-holding parameter in the list
if is_set (param_val.val) and
not mw.ustring.match (param_val.val, patterns.ymd[1]) then -- for those that are not ymd dates (ustring because here digits may not be Western)
param_val.val, n = param_val.val:gsub ('%-', '–'); -- replace any hyphen with ndash
if 0 ~= n then
date_parameters_list[param_name].val = param_val.val; -- update the list
result = true;
end
end
end
return result; -- so we know if any hyphens were replaced
end
--[[-------------------------< D A T E _ N A M E _ X L A T E >------------------------------------------------
Attempts to translate English date names to local-language date names using names supplied by MediaWiki's
date parser function. This is simple name-for-name replacement and may not work for all languages.
if xlat_dig is true, this function will also translate Western (English) digits to the local language's digits.
This will also translate ymd dates.
]]
local function date_name_xlate (date_parameters_list, xlt_dig)
local xlate;
local mode; -- long or short month names
local modified = false;
local date;
local sources_t = {
{cfg.date_names.en.long, cfg.date_names.inv_local_long}, -- for translating long English month names to long local month names
{cfg.date_names.en.short, cfg.date_names.inv_local_short}, -- short month names
{cfg.date_names.en.quarter, cfg.date_names.inv_local_quarter}, -- quarter date names
{cfg.date_names.en.season, cfg.date_names.inv_local_season}, -- season date nam
{cfg.date_names.en.named, cfg.date_names.inv_local_named}, -- named dates
}
local function is_xlateable (month) -- local function to get local date name that replaces existing English-language date name
for _, date_names_t in ipairs (sources_t) do -- for each sequence table in date_names_t
if date_names_t[1][month] then -- if date name is English month (long or short), quarter, season or named and
if date_names_t[2][date_names_t[1][month]] then -- if there is a matching local date name
return date_names_t[2][date_names_t[1][month]]; -- return the local date name
end
end
end
end
for param_name, param_val in pairs(date_parameters_list) do -- for each date-holding parameter in the list
if is_set(param_val.val) then -- if the parameter has a value
date = param_val.val;
for month in mw.ustring.gmatch (date, '[%a ]+') do -- iterate through all date names in the date (single date or date range)
month = mw.text.trim (month); -- this because quarterly dates contain whitespace
xlate = is_xlateable (month); -- get translate <month>; returns translation or nil
-- if cfg.date_names.en.long[month] then -- long month dates
-- if cfg.date_names.inv_local_long[cfg.date_names.en.long[month]] then
-- xlate = cfg.date_names.inv_local_long[cfg.date_names.en.long[month]];
-- end
---- mode = 'F'; -- English name is long so use long local name
-- elseif cfg.date_names.en.short[month] then -- short month dates
-- if cfg.date_names.inv_local_short[cfg.date_names.en.short[month]] then
-- xlate = cfg.date_names.inv_local_short[cfg.date_names.en.short[month]];
-- end
---- mode = 'M'; -- English name is short so use short local name
-- elseif cfg.date_names.en.quarter[month] then -- quarter dates
-- if cfg.date_names.inv_local_quarter[cfg.date_names.en.quarter[month]] then
-- xlate = cfg.date_names.inv_local_quarter[cfg.date_names.en.quarter[month]];
-- end
-- elseif cfg.date_names.en.season[month] then -- season dates
-- if cfg.date_names.inv_local_season[cfg.date_names.en.season[month]] then
-- xlate = cfg.date_names.inv_local_season[cfg.date_names.en.season[month]];
-- end
-- elseif cfg.date_names.en.named[month] then -- named dates
-- if cfg.date_names.inv_local_named[cfg.date_names.en.named[month]] then
-- xlate = cfg.date_names.inv_local_named[cfg.date_names.en.named[month]];
-- end
-- else
-- xlate=nil; -- not an English month name; could be local language month name
---- mode = nil; -- not an English month name; could be local language month name or an English season name
-- end
if xlate then
-- if mode then -- might be a season
-- xlate = lang_object:formatDate(mode, '1' .. month); -- translate the month name to this local language
date = mw.ustring.gsub (date, month, xlate); -- replace the English with the translation
date_parameters_list[param_name].val = date; -- save the translated date
modified = true;
end
end
if xlt_dig then -- shall we also translate digits?
date = date:gsub ('%d', cfg.date_names.xlate_digits); -- translate digits from Western to 'local digits'
date_parameters_list[param_name].val = date; -- save the translated date
modified = true;
end
end
end
return modified;
end
--[[--------------------------< S E T _ S E L E C T E D _ M O D U L E S >--------------------------------------
Sets local imported functions table to same (live or sandbox) as that used by the other modules.
]]
local function set_selected_modules (cfg_table_ptr, utilities_page_ptr)
add_prop_cat = utilities_page_ptr.add_prop_cat ; -- import functions from selected Module:Citation/CS1/Utilities module
is_set = utilities_page_ptr.is_set;
in_array = utilities_page_ptr.in_array;
set_message = utilities_page_ptr.set_message;
substitute = utilities_page_ptr.substitute;
wrap_style = utilities_page_ptr.wrap_style;
cfg = cfg_table_ptr; -- import tables from selected Module:Citation/CS1/Configuration
end
--[[--------------------------< E X P O R T E D F U N C T I O N S >------------------------------------------
]]
return { -- return exported functions
dates = dates,
year_date_check = year_date_check,
reformat_dates = reformat_dates,
date_hyphen_to_dash = date_hyphen_to_dash,
date_name_xlate = date_name_xlate,
set_selected_modules = set_selected_modules
}
obboarlfkmx4zbge5gqjllttddlxljn
Module:Citation/CS1/Date validation/doc
828
1614
15079
2022-07-17T13:03:07Z
Kambai Akau
15
Created page with "{{#lst:Module:Citation/CS1/doc|header}} This module contains routines that support the {{cs1}} and {{cs2}} date formats for citations on Wikipedia. In particular, this module contains a suite of functions that validate date formats and content for the variety of date-holding parameters associated with cs1|2 citations. {{#lst:Module:Citation/CS1/doc|module_components_table}}"
wikitext
text/x-wiki
{{#lst:Module:Citation/CS1/doc|header}}
This module contains routines that support the {{cs1}} and {{cs2}} date formats for citations on Wikipedia. In particular, this module contains a suite of functions that validate date formats and content for the variety of date-holding parameters associated with cs1|2 citations.
{{#lst:Module:Citation/CS1/doc|module_components_table}}
spwbvgm7yho44xxe1425wsohnkrwzsq
Ta̱mpi̱let:Pipe
10
1615
15080
2022-07-17T13:04:23Z
Kambai Akau
15
Created page with "|<noinclude> {{documentation}} <!-- Add categories and interwikis to the /doc subpage, not here! --> </noinclude>"
wikitext
text/x-wiki
|<noinclude>
{{documentation}}
<!-- Add categories and interwikis to the /doc subpage, not here! -->
</noinclude>
kmi2ihjyu3iil3vg34b15lfs08flqjm
Ta̱mpi̱let:Pipe/doc
10
1616
15081
2022-07-17T13:04:54Z
Kambai Akau
15
Created page with "{{Documentation subpage}} <!-- PLEASE ADD CATEGORIES AND INTERWIKIS AT THE BOTTOM OF THIS PAGE --> This is the {{tl|pipe}} meta-template. It looks like this: {{pipe}} This template should be used if you want to ''see'' a vertical bar character as part of the final article. To simply delay the interpretation of a vertical bar as wikitext, use {{tn|!}}. This template uses the {{mono|<nowiki>&#124;</nowiki>}} List of XML and HTML character entity references|decimal..."
wikitext
text/x-wiki
{{Documentation subpage}}
<!-- PLEASE ADD CATEGORIES AND INTERWIKIS AT THE BOTTOM OF THIS PAGE -->
This is the {{tl|pipe}} meta-template. It looks like this: {{pipe}} This template should be used if you want to ''see'' a vertical bar character as part of the final article. To simply delay the interpretation of a vertical bar as wikitext, use {{tn|!}}.
This template uses the {{mono|<nowiki>&#124;</nowiki>}} [[List of XML and HTML character entity references|decimal code]] for the [[vertical bar]] (or pipe character) so that its usage doesn't cause problems when it is used inside a [[Help:Template|template]]. This situation most commonly arises when the title of a cited reference contains a pipe character instead of a hyphen or dash (e.g. [http://www.xbox.com/ Xbox.com {{pipe}} Xbox.com Home]). <code>{{tl|Pipe}}</code> is easier to remember and clearer than an unadorned {{mono|<nowiki>&#124;</nowiki>}}.
Please do not use the Unicode {{mono|<nowiki>&#448;</nowiki>}} (which produces ǀ) since that does not work in all web browsers. It is also slightly smaller than |.
88n670r8g8vmdrbizq1ilhce3aocsrd
Ta̱mpi̱let:Cs1
10
1617
15082
2022-07-17T13:07:00Z
Kambai Akau
15
Created page with "[[Help:Citation Style 1|Citation Style 1]]<noinclude> [[Category:Documentation assistance templates]] </noinclude>"
wikitext
text/x-wiki
[[Help:Citation Style 1|Citation Style 1]]<noinclude>
[[Category:Documentation assistance templates]]
</noinclude>
3gpz7ptxi5prfsj5lb0kawozsw3dsyw
Ta̱mpi̱let:Cs2
10
1618
15083
2022-07-17T13:08:01Z
Kambai Akau
15
Created page with "[[Help:Citation Style 2|Citation Style 2]]<noinclude> [[Category:Documentation assistance templates]] </noinclude>"
wikitext
text/x-wiki
[[Help:Citation Style 2|Citation Style 2]]<noinclude>
[[Category:Documentation assistance templates]]
</noinclude>
flktvttft09cz4qya95oiidtjdco4xs
Module:Citation/CS1/Identifiers
828
1619
15084
2022-07-17T13:09:06Z
Kambai Akau
15
Created page with "--[[--------------------------< F O R W A R D D E C L A R A T I O N S >-------------------------------------- ]] local has_accept_as_written, is_set, in_array, set_message, select_one, -- functions in Module:Citation/CS1/Utilities substitute, make_wikilink; local z; -- table of tables defined in Module:Citation/CS1/Utilities local cfg; -- table of configuration tables that are defined in Module:Citation/CS1/Configuration --[[-..."
Scribunto
text/plain
--[[--------------------------< F O R W A R D D E C L A R A T I O N S >--------------------------------------
]]
local has_accept_as_written, is_set, in_array, set_message, select_one, -- functions in Module:Citation/CS1/Utilities
substitute, make_wikilink;
local z; -- table of tables defined in Module:Citation/CS1/Utilities
local cfg; -- table of configuration tables that are defined in Module:Citation/CS1/Configuration
--[[--------------------------< P A G E S C O P E V A R I A B L E S >--------------------------------------
declare variables here that have page-wide scope that are not brought in from other modules; that are created here and used here
]]
local auto_link_urls = {}; -- holds identifier URLs for those identifiers that can auto-link |title=
--============================<< H E L P E R F U N C T I O N S >>============================================
--[[--------------------------< W I K I D A T A _ A R T I C L E _ N A M E _ G E T >----------------------------
as an aid to internationalizing identifier-label wikilinks, gets identifier article names from Wikidata.
returns :<lang code>:<article title> when <q> has an <article title> for <lang code>; nil else
for identifiers that do not have q, returns nil
for wikis that do not have mw.wikibase installed, returns nil
]]
local function wikidata_article_name_get (q)
if not is_set (q) or (q and not mw.wikibase) then -- when no q number or when a q number but mw.wikibase not installed on this wiki
return nil; -- abandon
end
local wd_article;
local this_wiki_code = cfg.this_wiki_code; -- Wikipedia subdomain; 'en' for en.wikipedia.org
wd_article = mw.wikibase.getSitelink (q, this_wiki_code .. 'wiki'); -- fetch article title from WD; nil when no title available at this wiki
if wd_article then
wd_article = table.concat ({':', this_wiki_code, ':', wd_article}); -- interwiki-style link without brackets if taken from WD; leading colon required
end
return wd_article; -- article title from WD; nil else
end
--[[--------------------------< L I N K _ L A B E L _ M A K E >------------------------------------------------
common function to create identifier link label from handler table or from Wikidata
returns the first available of
1. redirect from local wiki's handler table (if enabled)
2. Wikidata (if there is a Wikidata entry for this identifier in the local wiki's language)
3. label specified in the local wiki's handler table
]]
local function link_label_make (handler)
local wd_article;
if not (cfg.use_identifier_redirects and is_set (handler.redirect)) then -- redirect has priority so if enabled and available don't fetch from Wikidata because expensive
wd_article = wikidata_article_name_get (handler.q); -- if Wikidata has an article title for this wiki, get it;
end
return (cfg.use_identifier_redirects and is_set (handler.redirect) and handler.redirect) or wd_article or handler.link;
end
--[[--------------------------< E X T E R N A L _ L I N K _ I D >----------------------------------------------
Formats a wiki-style external link
]]
local function external_link_id (options)
local url_string = options.id;
local ext_link;
local this_wiki_code = cfg.this_wiki_code; -- Wikipedia subdomain; 'en' for en.wikipedia.org
local wd_article; -- article title from Wikidata
if options.encode == true or options.encode == nil then
url_string = mw.uri.encode (url_string, 'PATH');
end
if options.auto_link and is_set (options.access) then
auto_link_urls[options.auto_link] = table.concat ({options.prefix, url_string, options.suffix});
end
ext_link = mw.ustring.format ('[%s%s%s %s]', options.prefix, url_string, options.suffix or "", mw.text.nowiki (options.id));
if is_set (options.access) then
ext_link = substitute (cfg.presentation['ext-link-access-signal'], {cfg.presentation[options.access].class, cfg.presentation[options.access].title, ext_link}); -- add the free-to-read / paywall lock
end
return table.concat ({
make_wikilink (link_label_make (options), options.label), -- redirect, Wikidata link, or locally specified link (in that order)
options.separator or ' ',
ext_link
});
end
--[[--------------------------< I N T E R N A L _ L I N K _ I D >----------------------------------------------
Formats a wiki-style internal link
TODO: Does not currently need to support options.access, options.encode, auto-linking and COinS (as in external_link_id),
but may be needed in the future for :m:Interwiki_map custom-prefixes like :arxiv:, :bibcode:, :DOI:, :hdl:, :ISSN:,
:JSTOR:, :Openlibrary:, :PMID:, :RFC:.
]]
local function internal_link_id (options)
local id = mw.ustring.gsub (options.id, '%d', cfg.date_names.local_digits); -- translate 'local' digits to Western 0-9
return table.concat (
{
make_wikilink (link_label_make (options), options.label), -- wiki-link the identifier label
options.separator or ' ', -- add the separator
make_wikilink (
table.concat (
{
options.prefix,
id, -- translated to Western digits
options.suffix or ''
}),
substitute (cfg.presentation['bdi'], {'', mw.text.nowiki (options.id)}) -- bdi tags to prevent Latin script identifiers from being reversed at RTL language wikis
); -- nowiki because MediaWiki still has magic links for ISBN and the like; TODO: is it really required?
});
end
--[[--------------------------< I S _ E M B A R G O E D >------------------------------------------------------
Determines if a PMC identifier's online version is embargoed. Compares the date in |pmc-embargo-date= against
today's date. If embargo date is in the future, returns the content of |pmc-embargo-date=; otherwise, returns
an empty string because the embargo has expired or because |pmc-embargo-date= was not set in this cite.
]]
local function is_embargoed (embargo)
if is_set (embargo) then
local lang = mw.getContentLanguage();
local good1, embargo_date, todays_date;
good1, embargo_date = pcall (lang.formatDate, lang, 'U', embargo);
todays_date = lang:formatDate ('U');
if good1 then -- if embargo date is a good date
if tonumber (embargo_date) >= tonumber (todays_date) then -- is embargo date is in the future?
return embargo; -- still embargoed
else
set_message ('maint_pmc_embargo'); -- embargo has expired; add main cat
return ''; -- unset because embargo has expired
end
end
end
return ''; -- |pmc-embargo-date= not set return empty string
end
--[=[-------------------------< I S _ V A L I D _ B I O R X I V _ D A T E >------------------------------------
returns true if:
2019-12-11T00:00Z <= biorxiv_date < today + 2 days
The dated form of biorxiv identifier has a start date of 2019-12-11. The Unix timestamp for that date is {{#time:U|2019-12-11}} = 1576022400
biorxiv_date is the date provided in those |biorxiv= parameter values that are dated at time 00:00:00 UTC
today is the current date at time 00:00:00 UTC plus 48 hours
if today is 2015-01-01T00:00:00 then
adding 24 hours gives 2015-01-02T00:00:00 – one second more than today
adding 24 hours gives 2015-01-03T00:00:00 – one second more than tomorrow
This function does not work if it is fed month names for languages other than English. Wikimedia #time: parser
apparently doesn't understand non-English date month names. This function will always return false when the date
contains a non-English month name because good1 is false after the call to lang_object.formatDate(). To get
around that call this function with date parts and create a YYYY-MM-DD format date.
]=]
local function is_valid_biorxiv_date (y, m, d)
local biorxiv_date = table.concat ({y, m, d}, '-'); -- make ymd date
local good1, good2;
local biorxiv_ts, tomorrow_ts; -- to hold Unix timestamps representing the dates
local lang_object = mw.getContentLanguage();
good1, biorxiv_ts = pcall (lang_object.formatDate, lang_object, 'U', biorxiv_date); -- convert biorxiv_date value to Unix timestamp
good2, tomorrow_ts = pcall (lang_object.formatDate, lang_object, 'U', 'today + 2 days' ); -- today midnight + 2 days is one second more than all day tomorrow
if good1 and good2 then -- lang.formatDate() returns a timestamp in the local script which tonumber() may not understand
biorxiv_ts = tonumber (biorxiv_ts) or lang_object:parseFormattedNumber (biorxiv_ts); -- convert to numbers for the comparison;
tomorrow_ts = tonumber (tomorrow_ts) or lang_object:parseFormattedNumber (tomorrow_ts);
else
return false; -- one or both failed to convert to Unix timestamp
end
return ((1576022400 <= biorxiv_ts) and (biorxiv_ts < tomorrow_ts)) -- 2012-12-11T00:00Z <= biorxiv_date < tomorrow's date
end
--[[--------------------------< IS _ V A L I D _ I S X N >-----------------------------------------------------
ISBN-10 and ISSN validator code calculates checksum across all ISBN/ISSN digits including the check digit.
ISBN-13 is checked in isbn().
If the number is valid the result will be 0. Before calling this function, ISBN/ISSN must be checked for length
and stripped of dashes, spaces and other non-ISxN characters.
]]
local function is_valid_isxn (isxn_str, len)
local temp = 0;
isxn_str = { isxn_str:byte(1, len) }; -- make a table of byte values '0' → 0x30 .. '9' → 0x39, 'X' → 0x58
len = len + 1; -- adjust to be a loop counter
for i, v in ipairs (isxn_str) do -- loop through all of the bytes and calculate the checksum
if v == string.byte ("X" ) then -- if checkdigit is X (compares the byte value of 'X' which is 0x58)
temp = temp + 10 * (len - i); -- it represents 10 decimal
else
temp = temp + tonumber (string.char (v) )*(len-i);
end
end
return temp % 11 == 0; -- returns true if calculation result is zero
end
--[[--------------------------< IS _ V A L I D _ I S X N _ 1 3 >-----------------------------------------------
ISBN-13 and ISMN validator code calculates checksum across all 13 ISBN/ISMN digits including the check digit.
If the number is valid, the result will be 0. Before calling this function, ISBN-13/ISMN must be checked for length
and stripped of dashes, spaces and other non-ISxN-13 characters.
]]
local function is_valid_isxn_13 (isxn_str)
local temp=0;
isxn_str = { isxn_str:byte(1, 13) }; -- make a table of byte values '0' → 0x30 .. '9' → 0x39
for i, v in ipairs (isxn_str) do
temp = temp + (3 - 2*(i % 2)) * tonumber (string.char (v) ); -- multiply odd index digits by 1, even index digits by 3 and sum; includes check digit
end
return temp % 10 == 0; -- sum modulo 10 is zero when ISBN-13/ISMN is correct
end
--[[--------------------------< N O R M A L I Z E _ L C C N >--------------------------------------------------
LCCN normalization (http://www.loc.gov/marc/lccn-namespace.html#normalization)
1. Remove all blanks.
2. If there is a forward slash (/) in the string, remove it, and remove all characters to the right of the forward slash.
3. If there is a hyphen in the string:
a. Remove it.
b. Inspect the substring following (to the right of) the (removed) hyphen. Then (and assuming that steps 1 and 2 have been carried out):
1. All these characters should be digits, and there should be six or less. (not done in this function)
2. If the length of the substring is less than 6, left-fill the substring with zeroes until the length is six.
Returns a normalized LCCN for lccn() to validate. There is no error checking (step 3.b.1) performed in this function.
]]
local function normalize_lccn (lccn)
lccn = lccn:gsub ("%s", ""); -- 1. strip whitespace
if nil ~= string.find (lccn, '/') then
lccn = lccn:match ("(.-)/"); -- 2. remove forward slash and all character to the right of it
end
local prefix
local suffix
prefix, suffix = lccn:match ("(.+)%-(.+)"); -- 3.a remove hyphen by splitting the string into prefix and suffix
if nil ~= suffix then -- if there was a hyphen
suffix = string.rep("0", 6-string.len (suffix)) .. suffix; -- 3.b.2 left fill the suffix with 0s if suffix length less than 6
lccn = prefix..suffix; -- reassemble the LCCN
end
return lccn;
end
--============================<< I D E N T I F I E R F U N C T I O N S >>====================================
--[[--------------------------< A R X I V >--------------------------------------------------------------------
See: http://arxiv.org/help/arxiv_identifier
format and error check arXiv identifier. There are three valid forms of the identifier:
the first form, valid only between date codes 9107 and 0703, is:
arXiv:<archive>.<class>/<date code><number><version>
where:
<archive> is a string of alpha characters - may be hyphenated; no other punctuation
<class> is a string of alpha characters - may be hyphenated; no other punctuation; not the same as |class= parameter which is not supported in this form
<date code> is four digits in the form YYMM where YY is the last two digits of the four-digit year and MM is the month number January = 01
first digit of YY for this form can only 9 and 0
<number> is a three-digit number
<version> is a 1 or more digit number preceded with a lowercase v; no spaces (undocumented)
the second form, valid from April 2007 through December 2014 is:
arXiv:<date code>.<number><version>
where:
<date code> is four digits in the form YYMM where YY is the last two digits of the four-digit year and MM is the month number January = 01
<number> is a four-digit number
<version> is a 1 or more digit number preceded with a lowercase v; no spaces
the third form, valid from January 2015 is:
arXiv:<date code>.<number><version>
where:
<date code> and <version> are as defined for 0704-1412
<number> is a five-digit number
]]
local function arxiv (options)
local id = options.id;
local class = options.Class; -- TODO: lowercase?
local handler = options.handler;
local year, month, version;
local err_msg = false; -- assume no error message
local text; -- output text
if id:match("^%a[%a%.%-]+/[90]%d[01]%d%d%d%d$") or id:match("^%a[%a%.%-]+/[90]%d[01]%d%d%d%dv%d+$") then -- test for the 9107-0703 format with or without version
year, month = id:match("^%a[%a%.%-]+/([90]%d)([01]%d)%d%d%d[v%d]*$");
year = tonumber (year);
month = tonumber (month);
if ((not (90 < year or 8 > year)) or (1 > month or 12 < month)) or -- if invalid year or invalid month
((91 == year and 7 > month) or (7 == year and 3 < month)) then -- if years ok, are starting and ending months ok?
err_msg = true; -- flag for error message
end
elseif id:match("^%d%d[01]%d%.%d%d%d%d$") or id:match("^%d%d[01]%d%.%d%d%d%dv%d+$") then -- test for the 0704-1412 with or without version
year, month = id:match("^(%d%d)([01]%d)%.%d%d%d%d[v%d]*$");
year = tonumber (year);
month = tonumber (month);
if ((7 > year) or (14 < year) or (1 > month or 12 < month)) or -- is year invalid or is month invalid? (doesn't test for future years)
((7 == year) and (4 > month)) then -- when year is 07, is month invalid (before April)?
err_msg = true; -- flag for error message
end
elseif id:match("^%d%d[01]%d%.%d%d%d%d%d$") or id:match("^%d%d[01]%d%.%d%d%d%d%dv%d+$") then -- test for the 1501- format with or without version
year, month = id:match("^(%d%d)([01]%d)%.%d%d%d%d%d[v%d]*$");
year = tonumber (year);
month = tonumber (month);
if ((15 > year) or (1 > month or 12 < month)) then -- is year invalid or is month invalid? (doesn't test for future years)
err_msg = true; -- flag for error message
end
else
err_msg = true; -- not a recognized format; flag for error message
end
if err_msg then
options.coins_list_t['ARXIV'] = nil; -- when error, unset so not included in COinS
end
local err_msg_t = {};
if err_msg then
set_message ('err_bad_arxiv');
end
text = external_link_id ({link = handler.link, label = handler.label, q = handler.q, redirect = handler.redirect,
prefix = handler.prefix, id = id, separator = handler.separator, encode = handler.encode, access = handler.access});
if is_set (class) then
if id:match ('^%d+') then
text = table.concat ({text, ' [[//arxiv.org/archive/', class, ' ', class, ']]'}); -- external link within square brackets, not wikilink
else
set_message ('err_class_ignored');
end
end
return text;
end
--[[--------------------------< B I B C O D E >--------------------------------------------------------------------
Validates (sort of) and formats a bibcode ID.
Format for bibcodes is specified here: http://adsabs.harvard.edu/abs_doc/help_pages/data.html#bibcodes
But, this: 2015arXiv151206696F is apparently valid so apparently, the only things that really matter are length, 19 characters
and first four digits must be a year. This function makes these tests:
length must be 19 characters
characters in position
1–4 must be digits and must represent a year in the range of 1000 – next year
5 must be a letter
6–8 must be letter, digit, ampersand, or dot (ampersand cannot directly precede a dot; &. )
9–18 must be letter, digit, or dot
19 must be a letter or dot
]]
local function bibcode (options)
local id = options.id;
local access = options.access;
local handler = options.handler;
local err_type;
local err_msg = '';
local year;
local text = external_link_id ({link = handler.link, label = handler.label, q = handler.q, redirect = handler.redirect,
prefix = handler.prefix, id = id, separator = handler.separator, encode = handler.encode,
access = access});
if 19 ~= id:len() then
err_type = cfg.err_msg_supl.length;
else
year = id:match ("^(%d%d%d%d)[%a][%w&%.][%w&%.][%w&%.][%w.]+[%a%.]$");
if not year then -- if nil then no pattern match
err_type = cfg.err_msg_supl.value; -- so value error
else
local next_year = tonumber (os.date ('%Y')) + 1; -- get the current year as a number and add one for next year
year = tonumber (year); -- convert year portion of bibcode to a number
if (1000 > year) or (year > next_year) then
err_type = cfg.err_msg_supl.year; -- year out of bounds
end
if id:find('&%.') then
err_type = cfg.err_msg_supl.journal; -- journal abbreviation must not have '&.' (if it does it's missing a letter)
end
end
end
if is_set (err_type) then -- if there was an error detected
set_message ('err_bad_bibcode', {err_type});
options.coins_list_t['BIBCODE'] = nil; -- when error, unset so not included in COinS
end
return text;
end
--[[--------------------------< B I O R X I V >-----------------------------------------------------------------
Format bioRxiv ID and do simple error checking. Before 2019-12-11, biorXiv IDs were 10.1101/ followed by exactly
6 digits. After 2019-12-11, biorXiv IDs retained the six-digit identifier but prefixed that with a yyyy.mm.dd.
date and suffixed with an optional version identifier.
The bioRxiv ID is the string of characters:
https://doi.org/10.1101/078733 -> 10.1101/078733
or a date followed by a six-digit number followed by an optional version indicator 'v' and one or more digits:
https://www.biorxiv.org/content/10.1101/2019.12.11.123456v2 -> 10.1101/2019.12.11.123456v2
see https://www.biorxiv.org/about-biorxiv
]]
local function biorxiv (options)
local id = options.id;
local handler = options.handler;
local err_msg = true; -- flag; assume that there will be an error
local patterns = {
'^10.1101/%d%d%d%d%d%d$', -- simple 6-digit identifier (before 2019-12-11)
'^10.1101/(20[1-9]%d)%.([01]%d)%.([0-3]%d)%.%d%d%d%d%d%dv%d+$', -- y.m.d. date + 6-digit identifier + version (after 2019-12-11)
'^10.1101/(20[1-9]%d)%.([01]%d)%.([0-3]%d)%.%d%d%d%d%d%d$', -- y.m.d. date + 6-digit identifier (after 2019-12-11)
}
for _, pattern in ipairs (patterns) do -- spin through the patterns looking for a match
if id:match (pattern) then
local y, m, d = id:match (pattern); -- found a match, attempt to get year, month and date from the identifier
if m then -- m is nil when id is the six-digit form
if not is_valid_biorxiv_date (y, m, d) then -- validate the encoded date; TODO: don't ignore leap-year and actual month lengths ({{#time:}} is a poor date validator)
break; -- date fail; break out early so we don't unset the error message
end
end
err_msg = nil; -- we found a match so unset the error message
break; -- and done
end
end -- err_cat remains set here when no match
if err_msg then
options.coins_list_t['BIORXIV'] = nil; -- when error, unset so not included in COinS
set_message ('err_bad_biorxiv'); -- and set the error message
end
return external_link_id ({link = handler.link, label = handler.label, q = handler.q, redirect = handler.redirect,
prefix = handler.prefix, id = id, separator = handler.separator,
encode = handler.encode, access = handler.access});
end
--[[--------------------------< C I T E S E E R X >------------------------------------------------------------
CiteSeerX use their own notion of "doi" (not to be confused with the identifiers resolved via doi.org).
The description of the structure of this identifier can be found at Help_talk:Citation_Style_1/Archive_26#CiteSeerX_id_structure
]]
local function citeseerx (options)
local id = options.id;
local handler = options.handler;
local matched;
local text = external_link_id ({link = handler.link, label = handler.label, q = handler.q, redirect = handler.redirect,
prefix = handler.prefix, id = id, separator = handler.separator, encode = handler.encode,
access = handler.access});
matched = id:match ("^10%.1%.1%.[1-9]%d?%d?%d?%.[1-9]%d?%d?%d?$");
if not matched then
set_message ('err_bad_citeseerx' );
options.coins_list_t['CITESEERX'] = nil; -- when error, unset so not included in COinS
end
return text;
end
--[[--------------------------< D O I >------------------------------------------------------------------------
Formats a DOI and checks for DOI errors.
DOI names contain two parts: prefix and suffix separated by a forward slash.
Prefix: directory indicator '10.' followed by a registrant code
Suffix: character string of any length chosen by the registrant
This function checks a DOI name for: prefix/suffix. If the DOI name contains spaces or endashes, or, if it ends
with a period or a comma, this function will emit a bad_doi error message.
DOI names are case-insensitive and can incorporate any printable Unicode characters so the test for spaces, endash,
and terminal punctuation may not be technically correct but it appears, that in practice these characters are rarely
if ever used in DOI names.
]]
local function doi (options)
local id = options.id;
local inactive = options.DoiBroken
local access = options.access;
local ignore_invalid = options.accept;
local handler = options.handler;
local err_flag;
local text;
if is_set (inactive) then
local inactive_year = inactive:match("%d%d%d%d") or ''; -- try to get the year portion from the inactive date
local inactive_month, good;
if is_set (inactive_year) then
if 4 < inactive:len() then -- inactive date has more than just a year (could be anything)
local lang_obj = mw.getContentLanguage(); -- get a language object for this wiki
good, inactive_month = pcall (lang_obj.formatDate, lang_obj, 'F', inactive); -- try to get the month name from the inactive date
if not good then
inactive_month = nil; -- something went wrong so make sure this is unset
end
end
else
inactive_year = nil; -- |doi-broken-date= has something but it isn't a date
end
if is_set (inactive_year) and is_set (inactive_month) then
set_message ('maint_doi_inactive_dated', {inactive_year, inactive_month, ' '});
elseif is_set (inactive_year) then
set_message ('maint_doi_inactive_dated', {inactive_year, '', ''});
else
set_message ('maint_doi_inactive');
end
inactive = " (" .. cfg.messages['inactive'] .. ' ' .. inactive .. ')';
end
local registrant = mw.ustring.match (id, '^10%.([^/]+)/[^%s–]-[^%.,]$'); -- registrant set when DOI has the proper basic form
local registrant_err_patterns = { -- these patterns are for code ranges that are not supported
'^[^1-3]%d%d%d%d%.%d%d*$', -- 5 digits with subcode (0xxxx, 40000+); accepts: 10000–39999
'^[^1-5]%d%d%d%d$', -- 5 digits without subcode (0xxxx, 60000+); accepts: 10000–59999
'^[^1-9]%d%d%d%.%d%d*$', -- 4 digits with subcode (0xxx); accepts: 1000–9999
'^[^1-9]%d%d%d$', -- 4 digits without subcode (0xxx); accepts: 1000–9999
'^%d%d%d%d%d%d+', -- 6 or more digits
'^%d%d?%d?$', -- less than 4 digits without subcode (with subcode is legitimate)
'^5555$', -- test registrant will never resolve
'[^%d%.]', -- any character that isn't a digit or a dot
}
if not ignore_invalid then
if registrant then -- when DOI has proper form
for i, pattern in ipairs (registrant_err_patterns) do -- spin through error patterns
if registrant:match (pattern) then -- to validate registrant codes
err_flag = set_message ('err_bad_doi'); -- when found, mark this DOI as bad
break; -- and done
end
end
else
err_flag = set_message ('err_bad_doi'); -- invalid directory or malformed
end
else
set_message ('maint_doi_ignore');
end
if err_flag then
options.coins_list_t['DOI'] = nil; -- when error, unset so not included in COinS
end
text = external_link_id ({link = handler.link, label = handler.label, q = handler.q, redirect = handler.redirect,
prefix = handler.prefix, id = id, separator = handler.separator, encode = handler.encode, access = access,
auto_link = not (err_flag or is_set (inactive) or ignore_invalid) and 'doi' or nil -- do not auto-link when |doi-broken-date= has a value or when there is a DOI error or (to play it safe, after all, auto-linking is not essential) when invalid DOIs are ignored
}) .. (inactive or '');
return text;
end
--[[--------------------------< H D L >------------------------------------------------------------------------
Formats an HDL with minor error checking.
HDL names contain two parts: prefix and suffix separated by a forward slash.
Prefix: character string using any character in the UCS-2 character set except '/'
Suffix: character string of any length using any character in the UCS-2 character set chosen by the registrant
This function checks a HDL name for: prefix/suffix. If the HDL name contains spaces, endashes, or, if it ends
with a period or a comma, this function will emit a bad_hdl error message.
HDL names are case-insensitive and can incorporate any printable Unicode characters so the test for endashes and
terminal punctuation may not be technically correct but it appears, that in practice these characters are rarely
if ever used in HDLs.
Query string parameters are named here: http://www.handle.net/proxy_servlet.html. query strings are not displayed
but since '?' is an allowed character in an HDL, '?' followed by one of the query parameters is the only way we
have to detect the query string so that it isn't URL-encoded with the rest of the identifier.
]]
local function hdl (options)
local id = options.id;
local access = options.access;
local handler = options.handler;
local query_params = { -- list of known query parameters from http://www.handle.net/proxy_servlet.html
'noredirect',
'ignore_aliases',
'auth',
'cert',
'index',
'type',
'urlappend',
'locatt',
'action',
}
local hdl, suffix, param = id:match ('(.-)(%?(%a+).+)$'); -- look for query string
local found;
if hdl then -- when there are query strings, this is the handle identifier portion
for _, q in ipairs (query_params) do -- spin through the list of query parameters
if param:match ('^' .. q) then -- if the query string begins with one of the parameters
found = true; -- announce a find
break; -- and stop looking
end
end
end
if found then
id = hdl; -- found so replace id with the handle portion; this will be URL-encoded, suffix will not
else
suffix = ''; -- make sure suffix is empty string for concatenation else
end
local text = external_link_id ({link = handler.link, label = handler.label, q = handler.q, redirect = handler.redirect,
prefix = handler.prefix, id = id, suffix = suffix, separator = handler.separator, encode = handler.encode, access = access})
if nil == id:match("^[^%s–]-/[^%s–]-[^%.,]$") then -- HDL must contain a forward slash, must not contain spaces, endashes, and must not end with period or comma
set_message ('err_bad_hdl' );
options.coins_list_t['HDL'] = nil; -- when error, unset so not included in COinS
end
return text;
end
--[[--------------------------< I S B N >----------------------------------------------------------------------
Determines whether an ISBN string is valid
]]
local function isbn (options)
local isbn_str = options.id;
local ignore_invalid = options.accept;
local handler = options.handler;
local function return_result (check, err_type) -- local function to handle the various returns
local ISBN = internal_link_id ({link = handler.link, label = handler.label, redirect = handler.redirect,
prefix = handler.prefix, id = isbn_str, separator = handler.separator});
if ignore_invalid then -- if ignoring ISBN errors
set_message ('maint_isbn_ignore'); -- add a maint category even when there is no error
else -- here when not ignoring
if not check then -- and there is an error
options.coins_list_t['ISBN'] = nil; -- when error, unset so not included in COinS
set_message ('err_bad_isbn', err_type); -- set an error message
return ISBN; -- return id text
end
end
return ISBN; -- return id text
end
if nil ~= isbn_str:match ('[^%s-0-9X]') then
return return_result (false, cfg.err_msg_supl.char); -- fail if isbn_str contains anything but digits, hyphens, or the uppercase X
end
local id = isbn_str:gsub ('[%s-]', ''); -- remove hyphens and whitespace
local len = id:len();
if len ~= 10 and len ~= 13 then
return return_result (false, cfg.err_msg_supl.length); -- fail if incorrect length
end
if len == 10 then
if id:match ('^%d*X?$') == nil then -- fail if isbn_str has 'X' anywhere but last position
return return_result (false, cfg.err_msg_supl.form);
end
if not is_valid_isxn (id, 10) then -- test isbn-10 for numerical validity
return return_result (false, cfg.err_msg_supl.check); -- fail if isbn-10 is not numerically valid
end
if id:find ('^63[01]') then -- 630xxxxxxx and 631xxxxxxx are (apparently) not valid isbn group ids but are used by amazon as numeric identifiers (asin)
return return_result (false, cfg.err_msg_supl.group); -- fail if isbn-10 begins with 630/1
end
return return_result (true, cfg.err_msg_supl.check); -- pass if isbn-10 is numerically valid
else
if id:match ('^%d+$') == nil then
return return_result (false, cfg.err_msg_supl.char); -- fail if ISBN-13 is not all digits
end
if id:match ('^97[89]%d*$') == nil then
return return_result (false, cfg.err_msg_supl.prefix); -- fail when ISBN-13 does not begin with 978 or 979
end
if id:match ('^9790') then
return return_result (false, cfg.err_msg_supl.group); -- group identifier '0' is reserved to ISMN
end
return return_result (is_valid_isxn_13 (id), cfg.err_msg_supl.check);
end
end
--[[--------------------------< A S I N >----------------------------------------------------------------------
Formats a link to Amazon. Do simple error checking: ASIN must be mix of 10 numeric or uppercase alpha
characters. If a mix, first character must be uppercase alpha; if all numeric, ASINs must be 10-digit
ISBN. If 10-digit ISBN, add a maintenance category so a bot or AWB script can replace |asin= with |isbn=.
Error message if not 10 characters, if not ISBN-10, if mixed and first character is a digit.
|asin=630....... and |asin=631....... are (apparently) not a legitimate ISBN though it checksums as one; these
do not cause this function to emit the maint_asin message
This function is positioned here because it calls isbn()
]]
local function asin (options)
local id = options.id;
local domain = options.ASINTLD;
local err_flag;
if not id:match("^[%d%u][%d%u][%d%u][%d%u][%d%u][%d%u][%d%u][%d%u][%d%u][%d%u]$") then
err_flag = set_message ('err_bad_asin'); -- ASIN is not a mix of 10 uppercase alpha and numeric characters
else
if id:match("^%d%d%d%d%d%d%d%d%d[%dX]$") then -- if 10-digit numeric (or 9 digits with terminal X)
if is_valid_isxn (id, 10) then -- see if ASIN value is or validates as ISBN-10
if not id:find ('^63[01]') then -- 630xxxxxxx and 631xxxxxxx are (apparently) not a valid isbn prefixes but are used by amazon as a numeric identifier
err_flag = set_message ('err_bad_asin'); -- ASIN has ISBN-10 form but begins with something other than 630/1 so probably an isbn
end
elseif not is_set (err_flag) then
err_flag = set_message ('err_bad_asin'); -- ASIN is not ISBN-10
end
elseif not id:match("^%u[%d%u]+$") then
err_flag = set_message ('err_bad_asin'); -- asin doesn't begin with uppercase alpha
end
end
if (not is_set (domain)) or in_array (domain, {'us'}) then -- default: United States
domain = "com";
elseif in_array (domain, {'jp', 'uk'}) then -- Japan, United Kingdom
domain = "co." .. domain;
elseif in_array (domain, {'z.cn'}) then -- China
domain = "cn";
elseif in_array (domain, {'au', 'br', 'mx', 'sg', 'tr'}) then -- Australia, Brazil, Mexico, Singapore, Turkey
domain = "com." .. domain;
elseif not in_array (domain, {'ae', 'ca', 'cn', 'de', 'es', 'fr', 'in', 'it', 'nl', 'pl', 'sa', 'se', 'co.jp', 'co.uk', 'com', 'com.au', 'com.br', 'com.mx', 'com.sg', 'com.tr'}) then -- Arabic Emirates, Canada, China, Germany, Spain, France, Indonesia, Italy, Netherlands, Poland, Saudi Arabia, Sweden (as of 2021-03 Austria (.at), Liechtenstein (.li) and Switzerland (.ch) still redirect to the German site (.de) with special settings, so don't maintain local ASINs for them)
err_flag = set_message ('err_bad_asin_tld'); -- unsupported asin-tld value
end
local handler = options.handler;
if not is_set (err_flag) then
options.coins_list_t['ASIN'] = handler.prefix .. domain .. "/dp/" .. id; -- asin for coins
else
options.coins_list_t['ASIN'] = nil; -- when error, unset so not included in COinS
end
return external_link_id ({link = handler.link, label = handler.label, q = handler.q, redirect = handler.redirect,
prefix = handler.prefix .. domain .. "/dp/",
id = id, encode = handler.encode, separator = handler.separator})
end
--[[--------------------------< I S M N >----------------------------------------------------------------------
Determines whether an ISMN string is valid. Similar to ISBN-13, ISMN is 13 digits beginning 979-0-... and uses the
same check digit calculations. See http://www.ismn-international.org/download/Web_ISMN_Users_Manual_2008-6.pdf
section 2, pages 9–12.
ismn value not made part of COinS metadata because we don't have a url or isn't a COinS-defined identifier (rft.xxx)
or an identifier registered at info-uri.info (info:)
]]
local function ismn (options)
local id = options.id;
local handler = options.handler;
local text;
local valid_ismn = true;
local id_copy;
id_copy = id; -- save a copy because this testing is destructive
id = id:gsub ('[%s-]', ''); -- remove hyphens and white space
if 13 ~= id:len() or id:match ("^9790%d*$" ) == nil then -- ISMN must be 13 digits and begin with 9790
valid_ismn = false;
else
valid_ismn=is_valid_isxn_13 (id); -- validate ISMN
end
-- text = internal_link_id ({link = handler.link, label = handler.label, q = handler.q, redirect = handler.redirect, -- use this (or external version) when there is some place to link to
-- prefix = handler.prefix, id = id_copy, separator = handler.separator, encode = handler.encode})
text = table.concat ( -- because no place to link to yet
{
make_wikilink (link_label_make (handler), handler.label),
handler.separator,
id_copy
});
if false == valid_ismn then
options.coins_list_t['ISMN'] = nil; -- when error, unset so not included in COinS; not really necessary here because ismn not made part of COinS
set_message ('err_bad_ismn'); -- create an error message if the ISMN is invalid
end
return text;
end
--[[--------------------------< I S S N >----------------------------------------------------------------------
Validate and format an ISSN. This code fixes the case where an editor has included an ISSN in the citation but
has separated the two groups of four digits with a space. When that condition occurred, the resulting link looked
like this:
|issn=0819 4327 gives: [http://www.worldcat.org/issn/0819 4327 0819 4327] -- can't have spaces in an external link
This code now prevents that by inserting a hyphen at the ISSN midpoint. It also validates the ISSN for length
and makes sure that the checkdigit agrees with the calculated value. Incorrect length (8 digits), characters
other than 0-9 and X, or checkdigit / calculated value mismatch will all cause a check ISSN error message. The
ISSN is always displayed with a hyphen, even if the ISSN was given as a single group of 8 digits.
]]
local function issn (options)
local id = options.id;
local handler = options.handler;
local ignore_invalid = options.accept;
local issn_copy = id; -- save a copy of unadulterated ISSN; use this version for display if ISSN does not validate
local text;
local valid_issn = true;
id = id:gsub ('[%s-]', ''); -- remove hyphens and whitespace
if 8 ~= id:len() or nil == id:match ("^%d*X?$" ) then -- validate the ISSN: 8 digits long, containing only 0-9 or X in the last position
valid_issn = false; -- wrong length or improper character
else
valid_issn = is_valid_isxn (id, 8); -- validate ISSN
end
if true == valid_issn then
id = string.sub (id, 1, 4 ) .. "-" .. string.sub (id, 5 ); -- if valid, display correctly formatted version
else
id = issn_copy; -- if not valid, show the invalid ISSN with error message
end
text = external_link_id ({link = handler.link, label = handler.label, q = handler.q, redirect = handler.redirect,
prefix = handler.prefix, id = id, separator = handler.separator, encode = handler.encode})
if ignore_invalid then
set_message ('maint_issn_ignore');
else
if false == valid_issn then
options.coins_list_t['ISSN'] = nil; -- when error, unset so not included in COinS
set_message ('err_bad_issn', (options.hkey == 'EISSN') and 'e' or ''); -- create an error message if the ISSN is invalid
end
end
return text;
end
--[[--------------------------< J F M >-----------------------------------------------------------------------
A numerical identifier in the form nn.nnnn.nn
]]
local function jfm (options)
local id = options.id;
local handler = options.handler;
local id_num;
id_num = id:match ('^[Jj][Ff][Mm](.*)$'); -- identifier with jfm prefix; extract identifier
if is_set (id_num) then
set_message ('maint_jfm_format');
else -- plain number without JFM prefix
id_num = id; -- if here id does not have prefix
end
if id_num and id_num:match('^%d%d%.%d%d%d%d%.%d%d$') then
id = id_num; -- jfm matches pattern
else
set_message ('err_bad_jfm' ); -- set an error message
options.coins_list_t['JFM'] = nil; -- when error, unset so not included in COinS
end
return external_link_id ({link = handler.link, label = handler.label, q = handler.q, redirect = handler.redirect,
prefix = handler.prefix, id = id, separator = handler.separator, encode = handler.encode});
end
--[[--------------------------< J S T O R >--------------------------------------------------------------------
Format a JSTOR with some error checking
]]
local function jstor (options)
local id = options.id;
local access = options.access;
local handler = options.handler;
if id:find ('[Jj][Ss][Tt][Oo][Rr]') or id:find ('^https?://') or id:find ('%s') then
set_message ('err_bad_jstor'); -- set an error message
options.coins_list_t['JSTOR'] = nil; -- when error, unset so not included in COinS
end
return external_link_id ({link = handler.link, label = handler.label, q = handler.q, redirect = handler.redirect,
prefix = handler.prefix, id = id, separator = handler.separator, encode = handler.encode, access = access});
end
--[[--------------------------< L C C N >----------------------------------------------------------------------
Format LCCN link and do simple error checking. LCCN is a character string 8-12 characters long. The length of
the LCCN dictates the character type of the first 1-3 characters; the rightmost eight are always digits.
http://info-uri.info/registry/OAIHandler?verb=GetRecord&metadataPrefix=reg&identifier=info:lccn/
length = 8 then all digits
length = 9 then lccn[1] is lowercase alpha
length = 10 then lccn[1] and lccn[2] are both lowercase alpha or both digits
length = 11 then lccn[1] is lower case alpha, lccn[2] and lccn[3] are both lowercase alpha or both digits
length = 12 then lccn[1] and lccn[2] are both lowercase alpha
]]
local function lccn (options)
local lccn = options.id;
local handler = options.handler;
local err_flag; -- presume that LCCN is valid
local id = lccn; -- local copy of the LCCN
id = normalize_lccn (id); -- get canonical form (no whitespace, hyphens, forward slashes)
local len = id:len(); -- get the length of the LCCN
if 8 == len then
if id:match("[^%d]") then -- if LCCN has anything but digits (nil if only digits)
err_flag = set_message ('err_bad_lccn'); -- set an error message
end
elseif 9 == len then -- LCCN should be adddddddd
if nil == id:match("%l%d%d%d%d%d%d%d%d") then -- does it match our pattern?
err_flag = set_message ('err_bad_lccn'); -- set an error message
end
elseif 10 == len then -- LCCN should be aadddddddd or dddddddddd
if id:match("[^%d]") then -- if LCCN has anything but digits (nil if only digits) ...
if nil == id:match("^%l%l%d%d%d%d%d%d%d%d") then -- ... see if it matches our pattern
err_flag = set_message ('err_bad_lccn'); -- no match, set an error message
end
end
elseif 11 == len then -- LCCN should be aaadddddddd or adddddddddd
if not (id:match("^%l%l%l%d%d%d%d%d%d%d%d") or id:match("^%l%d%d%d%d%d%d%d%d%d%d")) then -- see if it matches one of our patterns
err_flag = set_message ('err_bad_lccn'); -- no match, set an error message
end
elseif 12 == len then -- LCCN should be aadddddddddd
if not id:match("^%l%l%d%d%d%d%d%d%d%d%d%d") then -- see if it matches our pattern
err_flag = set_message ('err_bad_lccn'); -- no match, set an error message
end
else
err_flag = set_message ('err_bad_lccn'); -- wrong length, set an error message
end
if not is_set (err_flag) and nil ~= lccn:find ('%s') then
err_flag = set_message ('err_bad_lccn'); -- lccn contains a space, set an error message
end
if is_set (err_flag) then
options.coins_list_t['LCCN'] = nil; -- when error, unset so not included in COinS
end
return external_link_id ({link = handler.link, label = handler.label, q = handler.q, redirect = handler.redirect,
prefix = handler.prefix, id = lccn, separator = handler.separator, encode = handler.encode});
end
--[[--------------------------< M R >--------------------------------------------------------------------------
A seven digit number; if not seven digits, zero-fill leading digits to make seven digits.
]]
local function mr (options)
local id = options.id;
local handler = options.handler;
local id_num;
local id_len;
id_num = id:match ('^[Mm][Rr](%d+)$'); -- identifier with mr prefix
if is_set (id_num) then
set_message ('maint_mr_format'); -- add maint cat
else -- plain number without mr prefix
id_num = id:match ('^%d+$'); -- if here id is all digits
end
id_len = id_num and id_num:len() or 0;
if (7 >= id_len) and (0 ~= id_len) then
id = string.rep ('0', 7-id_len) .. id_num; -- zero-fill leading digits
else
set_message ('err_bad_mr'); -- set an error message
options.coins_list_t['MR'] = nil; -- when error, unset so not included in COinS
end
return external_link_id ({link = handler.link, label = handler.label, q = handler.q, redirect = handler.redirect,
prefix = handler.prefix, id = id, separator = handler.separator, encode = handler.encode});
end
--[[--------------------------< O C L C >----------------------------------------------------------------------
Validate and format an OCLC ID. https://www.oclc.org/batchload/controlnumber.en.html {{dead link}}
archived at: https://web.archive.org/web/20161228233804/https://www.oclc.org/batchload/controlnumber.en.html
]]
local function oclc (options)
local id = options.id;
local handler = options.handler;
local number;
if id:match('^ocm%d%d%d%d%d%d%d%d$') then -- ocm prefix and 8 digits; 001 field (12 characters)
number = id:match('ocm(%d+)'); -- get the number
elseif id:match('^ocn%d%d%d%d%d%d%d%d%d$') then -- ocn prefix and 9 digits; 001 field (12 characters)
number = id:match('ocn(%d+)'); -- get the number
elseif id:match('^on%d%d%d%d%d%d%d%d%d%d+$') then -- on prefix and 10 or more digits; 001 field (12 characters)
number = id:match('^on(%d%d%d%d%d%d%d%d%d%d+)$'); -- get the number
elseif id:match('^%(OCoLC%)[1-9]%d*$') then -- (OCoLC) prefix and variable number digits; no leading zeros; 035 field
number = id:match('%(OCoLC%)([1-9]%d*)'); -- get the number
if 9 < number:len() then
number = nil; -- constrain to 1 to 9 digits; change this when OCLC issues 10-digit numbers
end
elseif id:match('^%d+$') then -- no prefix
number = id; -- get the number
if 10 < number:len() then
number = nil; -- constrain to 1 to 10 digits; change this when OCLC issues 11-digit numbers
end
end
if number then -- proper format
id = number; -- exclude prefix, if any, from external link
else
set_message ('err_bad_oclc') -- add an error message if the id is malformed
options.coins_list_t['OCLC'] = nil; -- when error, unset so not included in COinS
end
return external_link_id ({link = handler.link, label = handler.label, q = handler.q, redirect = handler.redirect,
prefix = handler.prefix, id = id, separator = handler.separator, encode = handler.encode});
end
--[[--------------------------< O P E N L I B R A R Y >--------------------------------------------------------
Formats an OpenLibrary link, and checks for associated errors.
]]
local function openlibrary (options)
local id = options.id;
local access = options.access;
local handler = options.handler;
local ident, code = id:gsub('^OL', ''):match("^(%d+([AMW]))$"); -- strip optional OL prefix followed immediately by digits followed by 'A', 'M', or 'W';
local err_flag;
local prefix = { -- these are appended to the handler.prefix according to code
['A']='authors/OL',
['M']='books/OL',
['W']='works/OL',
['X']='OL' -- not a code; spoof when 'code' in id is invalid
};
if not ident then
code = 'X'; -- no code or id completely invalid
ident = id; -- copy id to ident so that we display the flawed identifier
err_flag = set_message ('err_bad_ol');
end
if not is_set (err_flag) then
options.coins_list_t['OL'] = handler.prefix .. prefix[code] .. ident; -- experiment for ol coins
else
options.coins_list_t['OL'] = nil; -- when error, unset so not included in COinS
end
return external_link_id ({link = handler.link, label = handler.label, q = handler.q, redirect = handler.redirect,
prefix = handler.prefix .. prefix[code],
id = ident, separator = handler.separator, encode = handler.encode,
access = access});
end
--[[--------------------------< O S T I >----------------------------------------------------------------------
Format OSTI and do simple error checking. OSTIs are sequential numbers beginning at 1 and counting up. This
code checks the OSTI to see that it contains only digits and is less than test_limit specified in the configuration;
the value in test_limit will need to be updated periodically as more OSTIs are issued.
NB. 1018 is the lowest OSTI number found in the wild (so far) and resolving OK on the OSTI site
]]
local function osti (options)
local id = options.id;
local access = options.access;
local handler = options.handler;
if id:match("[^%d]") then -- if OSTI has anything but digits
set_message ('err_bad_osti'); -- set an error message
options.coins_list_t['OSTI'] = nil; -- when error, unset so not included in COinS
else -- OSTI is only digits
local id_num = tonumber (id); -- convert id to a number for range testing
if 1018 > id_num or handler.id_limit < id_num then -- if OSTI is outside test limit boundaries
set_message ('err_bad_osti'); -- set an error message
options.coins_list_t['OSTI'] = nil; -- when error, unset so not included in COinS
end
end
return external_link_id ({link = handler.link, label = handler.label, q = handler.q, redirect = handler.redirect,
prefix = handler.prefix, id = id, separator = handler.separator, encode = handler.encode, access = access});
end
--[[--------------------------< P M C >------------------------------------------------------------------------
Format a PMC, do simple error checking, and check for embargoed articles.
The embargo parameter takes a date for a value. If the embargo date is in the future the PMC identifier will not
be linked to the article. If the embargo date is today or in the past, or if it is empty or omitted, then the
PMC identifier is linked to the article through the link at cfg.id_handlers['PMC'].prefix.
PMC embargo date testing is done in function is_embargoed () which is called earlier because when the citation
has |pmc=<value> but does not have a |url= then |title= is linked with the PMC link. Function is_embargoed ()
returns the embargo date if the PMC article is still embargoed, otherwise it returns an empty string.
PMCs are sequential numbers beginning at 1 and counting up. This code checks the PMC to see that it contains only digits and is less
than test_limit; the value in local variable test_limit will need to be updated periodically as more PMCs are issued.
]]
local function pmc (options)
local id = options.id;
local embargo = options.Embargo; -- TODO: lowercase?
local handler = options.handler;
local err_flag;
local id_num;
local text;
id_num = id:match ('^[Pp][Mm][Cc](%d+)$'); -- identifier with PMC prefix
if is_set (id_num) then
set_message ('maint_pmc_format');
else -- plain number without PMC prefix
id_num = id:match ('^%d+$'); -- if here id is all digits
end
if is_set (id_num) then -- id_num has a value so test it
id_num = tonumber (id_num); -- convert id_num to a number for range testing
if 1 > id_num or handler.id_limit < id_num then -- if PMC is outside test limit boundaries
err_flag = set_message ('err_bad_pmc'); -- set an error message
else
id = tostring (id_num); -- make sure id is a string
end
else -- when id format incorrect
err_flag = set_message ('err_bad_pmc'); -- set an error message
end
if is_set (embargo) and is_set (is_embargoed (embargo)) then -- is PMC is still embargoed?
text = table.concat ( -- still embargoed so no external link
{
make_wikilink (link_label_make (handler), handler.label),
handler.separator,
id,
});
else
text = external_link_id ({link = handler.link, label = handler.label, q = handler.q, redirect = handler.redirect, -- no embargo date or embargo has expired, ok to link to article
prefix = handler.prefix, id = id, separator = handler.separator, encode = handler.encode, access = handler.access,
auto_link = not err_flag and 'pmc' or nil -- do not auto-link when PMC has error
});
end
if err_flag then
options.coins_list_t['PMC'] = nil; -- when error, unset so not included in COinS
end
return text;
end
--[[--------------------------< P M I D >----------------------------------------------------------------------
Format PMID and do simple error checking. PMIDs are sequential numbers beginning at 1 and counting up. This
code checks the PMID to see that it contains only digits and is less than test_limit; the value in local variable
test_limit will need to be updated periodically as more PMIDs are issued.
]]
local function pmid (options)
local id = options.id;
local handler = options.handler;
if id:match("[^%d]") then -- if PMID has anything but digits
set_message ('err_bad_pmid'); -- set an error message
options.coins_list_t['PMID'] = nil; -- when error, unset so not included in COinS
else -- PMID is only digits
local id_num = tonumber (id); -- convert id to a number for range testing
if 1 > id_num or handler.id_limit < id_num then -- if PMID is outside test limit boundaries
set_message ('err_bad_pmid'); -- set an error message
options.coins_list_t['PMID'] = nil; -- when error, unset so not included in COinS
end
end
return external_link_id ({link = handler.link, label = handler.label, q = handler.q, redirect = handler.redirect,
prefix = handler.prefix, id = id, separator = handler.separator, encode = handler.encode});
end
--[[--------------------------< R F C >------------------------------------------------------------------------
Format RFC and do simple error checking. RFCs are sequential numbers beginning at 1 and counting up. This
code checks the RFC to see that it contains only digits and is less than test_limit specified in the configuration;
the value in test_limit will need to be updated periodically as more RFCs are issued.
An index of all RFCs is here: https://tools.ietf.org/rfc/
]]
local function rfc (options)
local id = options.id;
local handler = options.handler;
if id:match("[^%d]") then -- if RFC has anything but digits
set_message ('err_bad_rfc'); -- set an error message
options.coins_list_t['RFC'] = nil; -- when error, unset so not included in COinS
else -- RFC is only digits
local id_num = tonumber (id); -- convert id to a number for range testing
if 1 > id_num or handler.id_limit < id_num then -- if RFC is outside test limit boundaries
set_message ('err_bad_rfc'); -- set an error message
options.coins_list_t['RFC'] = nil; -- when error, unset so not included in COinS
end
end
return external_link_id ({link = handler.link, label = handler.label, q = handler.q, redirect = handler.redirect,
prefix = handler.prefix, id = id, separator = handler.separator, encode = handler.encode, access = handler.access});
end
--[[--------------------------< S 2 C I D >--------------------------------------------------------------------
Format an S2CID, do simple error checking
S2CIDs are sequential numbers beginning at 1 and counting up. This code checks the S2CID to see that it is only
digits and is less than test_limit; the value in local variable test_limit will need to be updated periodically
as more S2CIDs are issued.
]]
local function s2cid (options)
local id = options.id;
local access = options.access;
local handler = options.handler;
local id_num;
local text;
id_num = id:match ('^[1-9]%d*$'); -- id must be all digits; must not begin with 0; no open access flag
if is_set (id_num) then -- id_num has a value so test it
id_num = tonumber (id_num); -- convert id_num to a number for range testing
if handler.id_limit < id_num then -- if S2CID is outside test limit boundaries
set_message ('err_bad_s2cid'); -- set an error message
options.coins_list_t['S2CID'] = nil; -- when error, unset so not included in COinS
end
else -- when id format incorrect
set_message ('err_bad_s2cid'); -- set an error message
options.coins_list_t['S2CID'] = nil; -- when error, unset so not included in COinS
end
text = external_link_id ({link = handler.link, label = handler.label, q = handler.q, redirect = handler.redirect,
prefix = handler.prefix, id = id, separator = handler.separator, encode = handler.encode, access = access});
return text;
end
--[[--------------------------< S B N >------------------------------------------------------------------------
9-digit form of ISBN-10; uses same check-digit validation when SBN is prefixed with an additional '0' to make 10 digits
sbn value not made part of COinS metadata because we don't have a url or isn't a COinS-defined identifier (rft.xxx)
or an identifier registered at info-uri.info (info:)
]]
local function sbn (options)
local id = options.id;
local ignore_invalid = options.accept;
local handler = options.handler;
local function return_result (check, err_type) -- local function to handle the various returns
local SBN = internal_link_id ({link = handler.link, label = handler.label, redirect = handler.redirect,
prefix = handler.prefix, id = id, separator = handler.separator});
if not ignore_invalid then -- if not ignoring SBN errors
if not check then
options.coins_list_t['SBN'] = nil; -- when error, unset so not included in COinS; not really necessary here because sbn not made part of COinS
set_message ('err_bad_sbn', {err_type}); -- display an error message
return SBN;
end
else
set_message ('maint_isbn_ignore'); -- add a maint category even when there is no error (ToDo: Possibly switch to separate message for SBNs only)
end
return SBN;
end
if id:match ('[^%s-0-9X]') then
return return_result (false, cfg.err_msg_supl.char); -- fail if SBN contains anything but digits, hyphens, or the uppercase X
end
local ident = id:gsub ('[%s-]', ''); -- remove hyphens and whitespace; they interfere with the rest of the tests
if 9 ~= ident:len() then
return return_result (false, cfg.err_msg_supl.length); -- fail if incorrect length
end
if ident:match ('^%d*X?$') == nil then
return return_result (false, cfg.err_msg_supl.form); -- fail if SBN has 'X' anywhere but last position
end
return return_result (is_valid_isxn ('0' .. ident, 10), cfg.err_msg_supl.check);
end
--[[--------------------------< S S R N >----------------------------------------------------------------------
Format an SSRN, do simple error checking
SSRNs are sequential numbers beginning at 100? and counting up. This code checks the SSRN to see that it is
only digits and is greater than 99 and less than test_limit; the value in local variable test_limit will need
to be updated periodically as more SSRNs are issued.
]]
local function ssrn (options)
local id = options.id;
local handler = options.handler;
local id_num;
local text;
id_num = id:match ('^%d+$'); -- id must be all digits
if is_set (id_num) then -- id_num has a value so test it
id_num = tonumber (id_num); -- convert id_num to a number for range testing
if 100 > id_num or handler.id_limit < id_num then -- if SSRN is outside test limit boundaries
set_message ('err_bad_ssrn'); -- set an error message
options.coins_list_t['SSRN'] = nil; -- when error, unset so not included in COinS
end
else -- when id format incorrect
set_message ('err_bad_ssrn'); -- set an error message
options.coins_list_t['SSRN'] = nil; -- when error, unset so not included in COinS
end
text = external_link_id ({link = handler.link, label = handler.label, q = handler.q, redirect = handler.redirect,
prefix = handler.prefix, id = id, separator = handler.separator, encode = handler.encode, access = options.access});
return text;
end
--[[--------------------------< U S E N E T _ I D >------------------------------------------------------------
Validate and format a usenet message id. Simple error checking, looks for 'id-left@id-right' not enclosed in
'<' and/or '>' angle brackets.
]]
local function usenet_id (options)
local id = options.id;
local handler = options.handler;
local text = external_link_id ({link = handler.link, label = handler.label, q = handler.q, redirect = handler.redirect,
prefix = handler.prefix, id = id, separator = handler.separator, encode = handler.encode})
if not id:match('^.+@.+$') or not id:match('^[^<].*[^>]$') then -- doesn't have '@' or has one or first or last character is '< or '>'
set_message ('err_bad_usenet_id') -- add an error message if the message id is invalid
options.coins_list_t['USENETID'] = nil; -- when error, unset so not included in COinS
end
return text;
end
--[[--------------------------< Z B L >-----------------------------------------------------------------------
A numerical identifier in the form nnnn.nnnnn - leading zeros in the first quartet optional
format described here: http://emis.mi.sanu.ac.rs/ZMATH/zmath/en/help/search/
temporary format is apparently eight digits. Anything else is an error
]]
local function zbl (options)
local id = options.id;
local handler = options.handler;
if id:match('^%d%d%d%d%d%d%d%d$') then -- is this identifier using temporary format?
set_message ('maint_zbl'); -- yes, add maint cat
elseif not id:match('^%d?%d?%d?%d%.%d%d%d%d%d$') then -- not temporary, is it normal format?
set_message ('err_bad_zbl'); -- no, set an error message
options.coins_list_t['ZBL'] = nil; -- when error, unset so not included in COinS
end
return external_link_id ({link = handler.link, label = handler.label, q = handler.q, redirect = handler.redirect,
prefix = handler.prefix, id = id, separator = handler.separator, encode = handler.encode});
end
--============================<< I N T E R F A C E F U N C T I O N S >>==========================================
--[[--------------------------< E X T R A C T _ I D S >------------------------------------------------------------
Populates ID table from arguments using configuration settings. Loops through cfg.id_handlers and searches args for
any of the parameters listed in each cfg.id_handlers['...'].parameters. If found, adds the parameter and value to
the identifier list. Emits redundant error message if more than one alias exists in args
]]
local function extract_ids (args)
local id_list = {}; -- list of identifiers found in args
for k, v in pairs (cfg.id_handlers) do -- k is uppercase identifier name as index to cfg.id_handlers; e.g. cfg.id_handlers['ISBN'], v is a table
v = select_one (args, v.parameters, 'err_redundant_parameters' ); -- v.parameters is a table of aliases for k; here we pick one from args if present
if is_set (v) then id_list[k] = v; end -- if found in args, add identifier to our list
end
return id_list;
end
--[[--------------------------< E X T R A C T _ I D _ A C C E S S _ L E V E L S >--------------------------------------
Fetches custom id access levels from arguments using configuration settings. Parameters which have a predefined access
level (e.g. arxiv) do not use this function as they are directly rendered as free without using an additional parameter.
returns a table of k/v pairs where k is same as the identifier's key in cfg.id_handlers and v is the assigned (valid) keyword
access-level values must match the case used in cfg.keywords_lists['id-access'] (lowercase unless there is some special reason for something else)
]]
local function extract_id_access_levels (args, id_list)
local id_accesses_list = {};
for k, v in pairs (cfg.id_handlers) do
local access_param = v.custom_access; -- name of identifier's access-level parameter
if is_set (access_param) then
local access_level = args[access_param]; -- get the assigned value if there is one
if is_set (access_level) then
if not in_array (access_level, cfg.keywords_lists['id-access']) then -- exact match required
set_message ('err_invalid_param_val', {access_param, access_level});
access_level = nil; -- invalid so unset
end
if not is_set (id_list[k]) then -- identifier access-level must have a matching identifier
set_message ('err_param_access_requires_param', {k:lower()}); -- parameter name is uppercase in cfg.id_handlers (k); lowercase for error message
end
id_accesses_list[k] = cfg.keywords_xlate[access_level]; -- get translated keyword
end
end
end
return id_accesses_list;
end
--[[--------------------------< B U I L D _ I D _ L I S T >----------------------------------------------------
render the identifiers into a sorted sequence table
<ID_list_coins_t> is a table of k/v pairs where k is same as key in cfg.id_handlers and v is the assigned value
<options_t> is a table of various k/v option pairs provided in the call to new_build_id_list();
modified by this function and passed to all identifier rendering functions
<access_levels_t> is a table of k/v pairs where k is same as key in cfg.id_handlers and v is the assigned value (if valid)
returns a sequence table of sorted (by hkey - 'handler' key) rendered identifier strings
]]
local function build_id_list (ID_list_coins_t, options_t, access_levels_t)
local ID_list_t = {};
local accept;
local func_map = { --function map points to functions associated with hkey identifier
['ARXIV'] = arxiv,
['ASIN'] = asin,
['BIBCODE'] = bibcode,
['BIORXIV'] = biorxiv,
['CITESEERX'] = citeseerx,
['DOI'] = doi,
['EISSN'] = issn,
['HDL'] = hdl,
['ISBN'] = isbn,
['ISMN'] = ismn,
['ISSN'] = issn,
['JFM'] = jfm,
['JSTOR'] = jstor,
['LCCN'] = lccn,
['MR'] = mr,
['OCLC'] = oclc,
['OL'] = openlibrary,
['OSTI'] = osti,
['PMC'] = pmc,
['PMID'] = pmid,
['RFC'] = rfc,
['S2CID'] = s2cid,
['SBN'] = sbn,
['SSRN'] = ssrn,
['USENETID'] = usenet_id,
['ZBL'] = zbl,
}
for hkey, v in pairs (ID_list_coins_t) do
v, accept = has_accept_as_written (v); -- remove accept-as-written markup if present; accept is boolean true when markup removed; false else
-- every function gets the options table with value v and accept boolean
options_t.hkey = hkey; -- ~/Configuration handler key
options_t.id = v; -- add that identifier value to the options table
options_t.accept = accept; -- add the accept boolean flag
options_t.access = access_levels_t[hkey]; -- add the access level for those that have an |<identifier-access= parameter
options_t.handler = cfg.id_handlers[hkey];
options_t.coins_list_t = ID_list_coins_t; -- pointer to ID_list_coins_t; for |asin= and |ol=; also to keep erroneous values out of the citation's metadata
options_t.coins_list_t[hkey] = v; -- id value without accept-as-written markup for metadata
if options_t.handler.access and not in_array (options_t.handler.access, cfg.keywords_lists['id-access']) then
error (cfg.messages['unknown_ID_access'] .. options_t.handler.access); -- here when handler access key set to a value not listed in list of allowed id access keywords
end
if func_map[hkey] then
local id_text = func_map[hkey] (options_t); -- call the function to get identifier text and any error message
table.insert (ID_list_t, {hkey, id_text}); -- add identifier text to the output sequence table
else
error (cfg.messages['unknown_ID_key'] .. hkey); -- here when func_map doesn't have a function for hkey
end
end
local function comp (a, b) -- used by following table.sort()
return a[1]:lower() < b[1]:lower(); -- sort by hkey
end
table.sort (ID_list_t, comp); -- sequence table of tables sort
for k, v in ipairs (ID_list_t) do -- convert sequence table of tables to simple sequence table of strings
ID_list_t[k] = v[2]; -- v[2] is the identifier rendering from the call to the various functions in func_map{}
end
return ID_list_t;
end
--[[--------------------------< O P T I O N S _ C H E C K >----------------------------------------------------
check that certain option parameters have their associated identifier parameters with values
<ID_list_coins_t> is a table of k/v pairs where k is same as key in cfg.id_handlers and v is the assigned value
<ID_support_t> is a sequence table of tables created in citation0() where each subtable has four elements:
[1] is the support parameter's assigned value; empty string if not set
[2] is a text string same as key in cfg.id_handlers
[3] is cfg.error_conditions key used to create error message
[4] is original ID support parameter name used to create error message
returns nothing; on error emits an appropriate error message
]]
local function options_check (ID_list_coins_t, ID_support_t)
for _, v in ipairs (ID_support_t) do
if is_set (v[1]) and not ID_list_coins_t[v[2]] then -- when support parameter has a value but matching identifier parameter is missing or empty
set_message (v[3], (v[4])); -- emit the appropriate error message
end
end
end
--[[--------------------------< I D E N T I F I E R _ L I S T S _ G E T >--------------------------------------
Creates two identifier lists: a k/v table of identifiers and their values to be used locally and for use in the
COinS metadata, and a sequence table of the rendered identifier strings that will be included in the rendered
citation.
]]
local function identifier_lists_get (args_t, options_t, ID_support_t)
local ID_list_coins_t = extract_ids (args_t); -- get a table of identifiers and their values for use locally and for use in COinS
options_check (ID_list_coins_t, ID_support_t); -- ID support parameters must have matching identifier parameters
local ID_access_levels_t = extract_id_access_levels (args_t, ID_list_coins_t); -- get a table of identifier access levels
local ID_list_t = build_id_list (ID_list_coins_t, options_t, ID_access_levels_t); -- get a sequence table of rendered identifier strings
return ID_list_t, ID_list_coins_t; -- return the tables
end
--[[--------------------------< S E T _ S E L E C T E D _ M O D U L E S >--------------------------------------
Sets local cfg table and imported functions table to same (live or sandbox) as that used by the other modules.
]]
local function set_selected_modules (cfg_table_ptr, utilities_page_ptr)
cfg = cfg_table_ptr;
has_accept_as_written = utilities_page_ptr.has_accept_as_written; -- import functions from select Module:Citation/CS1/Utilities module
is_set = utilities_page_ptr.is_set;
in_array = utilities_page_ptr.in_array;
set_message = utilities_page_ptr.set_message;
select_one = utilities_page_ptr.select_one;
substitute = utilities_page_ptr.substitute;
make_wikilink = utilities_page_ptr.make_wikilink;
z = utilities_page_ptr.z; -- table of tables in Module:Citation/CS1/Utilities
end
--[[--------------------------< E X P O R T E D F U N C T I O N S >------------------------------------------
]]
return {
auto_link_urls = auto_link_urls, -- table of identifier URLs to be used when auto-linking |title=
identifier_lists_get = identifier_lists_get, -- experiment to replace individual calls to build_id_list(), extract_ids, extract_id_access_levels
is_embargoed = is_embargoed;
set_selected_modules = set_selected_modules;
}
1s53aqur5zcnnjyu0azfrtjq6dyiwg4
Module:Citation/CS1/Identifiers/doc
828
1620
15085
2022-07-17T13:10:08Z
Kambai Akau
15
Created page with "{{#lst:Module:Citation/CS1/doc|header}} This page renders and performs error checking on the various named identifiers supported by [[Module:Citation/CS1]]. {{#lst:Module:Citation/CS1/doc|module_components_table}}"
wikitext
text/x-wiki
{{#lst:Module:Citation/CS1/doc|header}}
This page renders and performs error checking on the various named identifiers supported by [[Module:Citation/CS1]].
{{#lst:Module:Citation/CS1/doc|module_components_table}}
k23f8bs42bte1r9qzxota44wlfxmi7b
Module:Citation/CS1/Utilities
828
1621
15086
2022-07-17T13:11:21Z
Kambai Akau
15
Created page with "local z = { error_cats_t = {}; -- for categorizing citations that contain errors error_ids_t = {}; -- list of error identifiers; used to prevent duplication of certain errors; local to this module error_msgs_t = {}; -- sequence table of error messages maint_cats_t = {}; -- for categorizing citations that aren't erroneous per se, but could use a little work prop_cats_t = {}; -- for categorizing cit..."
Scribunto
text/plain
local z = {
error_cats_t = {}; -- for categorizing citations that contain errors
error_ids_t = {}; -- list of error identifiers; used to prevent duplication of certain errors; local to this module
error_msgs_t = {}; -- sequence table of error messages
maint_cats_t = {}; -- for categorizing citations that aren't erroneous per se, but could use a little work
prop_cats_t = {}; -- for categorizing citations based on certain properties, language of source for instance
prop_keys_t = {}; -- for adding classes to the citation's <cite> tag
};
--[[--------------------------< F O R W A R D D E C L A R A T I O N S >--------------------------------------
]]
local cfg; -- table of tables imported from selected Module:Citation/CS1/Configuration
--[[--------------------------< I S _ S E T >------------------------------------------------------------------
Returns true if argument is set; false otherwise. Argument is 'set' when it exists (not nil) or when it is not an empty string.
]]
local function is_set (var)
return not (var == nil or var == '');
end
--[[--------------------------< I N _ A R R A Y >--------------------------------------------------------------
Whether needle is in haystack
]]
local function in_array (needle, haystack)
if needle == nil then
return false;
end
for n, v in ipairs (haystack) do
if v == needle then
return n;
end
end
return false;
end
--[[--------------------------< H A S _ A C C E P T _ A S _ W R I T T E N >------------------------------------
When <str> is wholly wrapped in accept-as-written markup, return <str> without markup and true; return <str> and false else
with allow_empty = false, <str> must have at least one character inside the markup
with allow_empty = true, <str> the markup frame can be empty like (()) to distinguish an empty template parameter from the specific condition "has no applicable value" in citation-context.
After further evaluation the two cases might be merged at a later stage, but should be kept separated for now.
]]
local function has_accept_as_written (str, allow_empty)
if not is_set (str) then
return str, false;
end
local count;
if true == allow_empty then
str, count = str:gsub ('^%(%((.*)%)%)$', '%1'); -- allows (()) to be an empty set
else
str, count = str:gsub ('^%(%((.+)%)%)$', '%1');
end
return str, 0 ~= count;
end
--[[--------------------------< S U B S T I T U T E >----------------------------------------------------------
Populates numbered arguments in a message string using an argument table. <args> may be a single string or a
sequence table of multiple strings.
]]
local function substitute (msg, args)
return args and mw.message.newRawMessage (msg, args):plain() or msg;
end
--[[--------------------------< E R R O R _ C O M M E N T >----------------------------------------------------
Wraps error messages with CSS markup according to the state of hidden. <content> may be a single string or a
sequence table of multiple strings.
]]
local function error_comment (content, hidden)
return substitute (hidden and cfg.presentation['hidden-error'] or cfg.presentation['visible-error'], content);
end
--[[--------------------------< H Y P H E N _ T O _ D A S H >--------------------------------------------------
Converts a hyphen to a dash under certain conditions. The hyphen must separate
like items; unlike items are returned unmodified. These forms are modified:
letter - letter (A - B)
digit - digit (4-5)
digit separator digit - digit separator digit (4.1-4.5 or 4-1-4-5)
letterdigit - letterdigit (A1-A5) (an optional separator between letter and
digit is supported – a.1-a.5 or a-1-a-5)
digitletter - digitletter (5a - 5d) (an optional separator between letter and
digit is supported – 5.a-5.d or 5-a-5-d)
any other forms are returned unmodified.
str may be a comma- or semicolon-separated list
]]
local function hyphen_to_dash (str)
if not is_set (str) then
return str;
end
local accept; -- boolean
str = str:gsub ("(%(%(.-%)%))", function(m) return m:gsub(",", ","):gsub(";", ";") end) -- replace commas and semicolons in accept-as-written markup with similar unicode characters so they'll be ignored during the split
str = str:gsub ('&[nm]dash;', {['–'] = '–', ['—'] = '—'}); -- replace — and – entities with their characters; semicolon mucks up the text.split
str = str:gsub ('-', '-'); -- replace HTML numeric entity with hyphen character
str = str:gsub (' ', ' '); -- replace entity with generic keyboard space character
local out = {};
local list = mw.text.split (str, '%s*[,;]%s*'); -- split str at comma or semicolon separators if there are any
for _, item in ipairs (list) do -- for each item in the list
item, accept = has_accept_as_written (item); -- remove accept-this-as-written markup when it wraps all of item
if not accept and mw.ustring.match (item, '^%w*[%.%-]?%w+%s*[%-–—]%s*%w*[%.%-]?%w+$') then -- if a hyphenated range or has endash or emdash separators
if item:match ('^%a+[%.%-]?%d+%s*%-%s*%a+[%.%-]?%d+$') or -- letterdigit hyphen letterdigit (optional separator between letter and digit)
item:match ('^%d+[%.%-]?%a+%s*%-%s*%d+[%.%-]?%a+$') or -- digitletter hyphen digitletter (optional separator between digit and letter)
item:match ('^%d+[%.%-]%d+%s*%-%s*%d+[%.%-]%d+$') or -- digit separator digit hyphen digit separator digit
item:match ('^%d+%s*%-%s*%d+$') or -- digit hyphen digit
item:match ('^%a+%s*%-%s*%a+$') then -- letter hyphen letter
item = item:gsub ('(%w*[%.%-]?%w+)%s*%-%s*(%w*[%.%-]?%w+)', '%1–%2'); -- replace hyphen, remove extraneous space characters
else
item = mw.ustring.gsub (item, '%s*[–—]%s*', '–'); -- for endash or emdash separated ranges, replace em with en, remove extraneous whitespace
end
end
table.insert (out, item); -- add the (possibly modified) item to the output table
end
local temp_str = ''; -- concatenate the output table into a comma separated string
temp_str, accept = has_accept_as_written (table.concat (out, ', ')); -- remove accept-this-as-written markup when it wraps all of concatenated out
if accept then
temp_str = has_accept_as_written (str); -- when global markup removed, return original str; do it this way to suppress boolean second return value
return temp_str:gsub(",", ","):gsub(";", ";");
else
return temp_str:gsub(",", ","):gsub(";", ";"); -- else, return assembled temp_str
end
end
--[=[-------------------------< M A K E _ W I K I L I N K >----------------------------------------------------
Makes a wikilink; when both link and display text is provided, returns a wikilink in the form [[L|D]]; if only
link is provided (or link and display are the same), returns a wikilink in the form [[L]]; if neither are
provided or link is omitted, returns an empty string.
]=]
local function make_wikilink (link, display)
if not is_set (link) then return '' end
if is_set (display) and link ~= display then
return table.concat ({'[[', link, '|', display, ']]'});
else
return table.concat ({'[[', link, ']]'});
end
end
--[[--------------------------< S E T _ M E S S A G E >----------------------------------------------------------
Sets an error message using the ~/Configuration error_conditions{} table along with arguments supplied in the function
call, inserts the resulting message in z.error_msgs_t{} sequence table, and returns the error message.
<error_id> – key value for appropriate error handler in ~/Configuration error_conditions{} table
<arguments> – may be a single string or a sequence table of multiple strings to be subsititued into error_conditions[error_id].message
<raw> – boolean
true – causes this function to return the error message not wrapped in visible-error, hidden-error span tag;
returns error_conditions[error_id].hidden as a second return value
does not add message to z.error_msgs_t sequence table
false, nil – adds message wrapped in visible-error, hidden-error span tag to z.error_msgs_t
returns the error message wrapped in visible-error, hidden-error span tag; there is no second return value
<prefix> – string to be prepended to <message> -- TODO: remove support for these unused(?) arguments?
<suffix> – string to be appended to <message>
TODO: change z.error_cats_t and z.maint_cats_t to have the form cat_name = true? this to avoid dups without having to have an extra table
]]
local added_maint_cats = {} -- list of maintenance categories that have been added to z.maint_cats_t; TODO: figure out how to delete this table
local function set_message (error_id, arguments, raw, prefix, suffix)
local error_state = cfg.error_conditions[error_id];
prefix = prefix or '';
suffix = suffix or '';
if error_state == nil then
error (cfg.messages['undefined_error'] .. ': ' .. error_id); -- because missing error handler in Module:Citation/CS1/Configuration
elseif is_set (error_state.category) then
if error_state.message then -- when error_state.message defined, this is an error message
table.insert (z.error_cats_t, error_state.category);
else
if not added_maint_cats[error_id] then
added_maint_cats[error_id] = true; -- note that we've added this category
table.insert (z.maint_cats_t, substitute (error_state.category, arguments)); -- make cat name then add to table
end
return; -- because no message, nothing more to do
end
end
local message = substitute (error_state.message, arguments);
message = table.concat (
{
message,
' (',
make_wikilink (
table.concat (
{
cfg.messages['help page link'],
'#',
error_state.anchor
}),
cfg.messages['help page label']),
')'
});
z.error_ids_t[error_id] = true;
if z.error_ids_t['err_citation_missing_title'] and -- if missing-title error already noted
in_array (error_id, {'err_bare_url_missing_title', 'err_trans_missing_title'}) then -- and this error is one of these
return '', false; -- don't bother because one flavor of missing title is sufficient
end
message = table.concat ({prefix, message, suffix});
if true == raw then
return message, error_state.hidden; -- return message not wrapped in visible-error, hidden-error span tag
end
message = error_comment (message, error_state.hidden); -- wrap message in visible-error, hidden-error span tag
table.insert (z.error_msgs_t, message); -- add it to the messages sequence table
return message; -- and done; return value generally not used but is used as a flag in various functions of ~/Identifiers
end
--[[-------------------------< I S _ A L I A S _ U S E D >-----------------------------------------------------
This function is used by select_one() to determine if one of a list of alias parameters is in the argument list
provided by the template.
Input:
args – pointer to the arguments table from calling template
alias – one of the list of possible aliases in the aliases lists from Module:Citation/CS1/Configuration
index – for enumerated parameters, identifies which one
enumerated – true/false flag used to choose how enumerated aliases are examined
value – value associated with an alias that has previously been selected; nil if not yet selected
selected – the alias that has previously been selected; nil if not yet selected
error_list – list of aliases that are duplicates of the alias already selected
Returns:
value – value associated with alias we selected or that was previously selected or nil if an alias not yet selected
selected – the alias we selected or the alias that was previously selected or nil if an alias not yet selected
]]
local function is_alias_used (args, alias, index, enumerated, value, selected, error_list)
if enumerated then -- is this a test for an enumerated parameters?
alias = alias:gsub ('#', index); -- replace '#' with the value in index
else
alias = alias:gsub ('#', ''); -- remove '#' if it exists
end
if is_set (args[alias]) then -- alias is in the template's argument list
if value ~= nil and selected ~= alias then -- if we have already selected one of the aliases
local skip;
for _, v in ipairs (error_list) do -- spin through the error list to see if we've added this alias
if v == alias then
skip = true;
break; -- has been added so stop looking
end
end
if not skip then -- has not been added so
table.insert (error_list, alias); -- add error alias to the error list
end
else
value = args[alias]; -- not yet selected an alias, so select this one
selected = alias;
end
end
return value, selected; -- return newly selected alias, or previously selected alias
end
--[[--------------------------< A D D _ M A I N T _ C A T >------------------------------------------------------
Adds a category to z.maint_cats_t using names from the configuration file with additional text if any.
To prevent duplication, the added_maint_cats table lists the categories by key that have been added to z.maint_cats_t.
]]
local function add_maint_cat (key, arguments)
if not added_maint_cats [key] then
added_maint_cats [key] = true; -- note that we've added this category
table.insert (z.maint_cats_t, substitute (cfg.maint_cats [key], arguments)); -- make name then add to table
end
end
--[[--------------------------< A D D _ P R O P _ C A T >--------------------------------------------------------
Adds a category to z.prop_cats_t using names from the configuration file with additional text if any.
foreign_lang_source and foreign_lang_source_2 keys have a language code appended to them so that multiple languages
may be categorized but multiples of the same language are not categorized.
added_prop_cats is a table declared in page scope variables above
]]
local added_prop_cats = {}; -- list of property categories that have been added to z.prop_cats_t
local function add_prop_cat (key, arguments, key_modifier)
local key_modified = key .. ((key_modifier and key_modifier) or ''); -- modify <key> with <key_modifier> if present and not nil
if not added_prop_cats [key_modified] then
added_prop_cats [key_modified] = true; -- note that we've added this category
table.insert (z.prop_cats_t, substitute (cfg.prop_cats [key], arguments)); -- make name then add to table
table.insert (z.prop_keys_t, 'cs1-prop-' .. key); -- convert key to class for use in the citation's <cite> tag
end
end
--[[--------------------------< S A F E _ F O R _ I T A L I C S >----------------------------------------------
Protects a string that will be wrapped in wiki italic markup '' ... ''
Note: We cannot use <i> for italics, as the expected behavior for italics specified by ''...'' in the title is that
they will be inverted (i.e. unitalicized) in the resulting references. In addition, <i> and '' tend to interact
poorly under Mediawiki's HTML tidy.
]]
local function safe_for_italics (str)
if not is_set (str) then return str end
if str:sub (1, 1) == "'" then str = "<span></span>" .. str; end
if str:sub (-1, -1) == "'" then str = str .. "<span></span>"; end
return str:gsub ('\n', ' '); -- Remove newlines as they break italics.
end
--[[--------------------------< W R A P _ S T Y L E >----------------------------------------------------------
Applies styling to various parameters. Supplied string is wrapped using a message_list configuration taking one
argument; protects italic styled parameters. Additional text taken from citation_config.presentation - the reason
this function is similar to but separate from wrap_msg().
]]
local function wrap_style (key, str)
if not is_set (str) then
return "";
elseif in_array (key, {'italic-title', 'trans-italic-title'}) then
str = safe_for_italics (str);
end
return substitute (cfg.presentation[key], {str});
end
--[[--------------------------< M A K E _ S E P _ L I S T >------------------------------------------------------------
make a separated list of items using provided separators.
<sep_list> - typically '<comma><space>'
<sep_list_pair> - typically '<space>and<space>'
<sep_list_end> - typically '<comma><space>and<space>' or '<comma><space>&<space>'
defaults to cfg.presentation['sep_list'], cfg.presentation['sep_list_pair'], and cfg.presentation['sep_list_end']
if <sep_list_end> is specified, <sep_list> and <sep_list_pair> must also be supplied
]]
local function make_sep_list (count, list_seq, sep_list, sep_list_pair, sep_list_end)
local list = '';
if not sep_list then -- set the defaults
sep_list = cfg.presentation['sep_list'];
sep_list_pair = cfg.presentation['sep_list_pair'];
sep_list_end = cfg.presentation['sep_list_end'];
end
if 2 >= count then
list = table.concat (list_seq, sep_list_pair); -- insert separator between two items; returns list_seq[1] then only one item
elseif 2 < count then
list = table.concat (list_seq, sep_list, 1, count - 1); -- concatenate all but last item with plain list separator
list = table.concat ({list, list_seq[count]}, sep_list_end); -- concatenate last item onto end of <list> with final separator
end
return list;
end
--[[--------------------------< S E L E C T _ O N E >----------------------------------------------------------
Chooses one matching parameter from a list of parameters to consider. The list of parameters to consider is just
names. For parameters that may be enumerated, the position of the numerator in the parameter name is identified
by the '#' so |author-last1= and |author1-last= are represented as 'author-last#' and 'author#-last'.
Because enumerated parameter |<param>1= is an alias of |<param>= we must test for both possibilities.
Generates an error if more than one match is present.
]]
local function select_one (args, aliases_list, error_condition, index)
local value = nil; -- the value assigned to the selected parameter
local selected = ''; -- the name of the parameter we have chosen
local error_list = {};
if index ~= nil then index = tostring(index); end
for _, alias in ipairs (aliases_list) do -- for each alias in the aliases list
if alias:match ('#') then -- if this alias can be enumerated
if '1' == index then -- when index is 1 test for enumerated and non-enumerated aliases
value, selected = is_alias_used (args, alias, index, false, value, selected, error_list); -- first test for non-enumerated alias
end
value, selected = is_alias_used (args, alias, index, true, value, selected, error_list); -- test for enumerated alias
else
value, selected = is_alias_used (args, alias, index, false, value, selected, error_list); -- test for non-enumerated alias
end
end
if #error_list > 0 and 'none' ~= error_condition then -- for cases where this code is used outside of extract_names()
for i, v in ipairs (error_list) do
error_list[i] = wrap_style ('parameter', v);
end
table.insert (error_list, wrap_style ('parameter', selected));
set_message (error_condition, {make_sep_list (#error_list, error_list)});
end
return value, selected;
end
--[=[-------------------------< R E M O V E _ W I K I _ L I N K >----------------------------------------------
Gets the display text from a wikilink like [[A|B]] or [[B]] gives B
The str:gsub() returns either A|B froma [[A|B]] or B from [[B]] or B from B (no wikilink markup).
In l(), l:gsub() removes the link and pipe (if they exist); the second :gsub() trims whitespace from the label
if str was wrapped in wikilink markup. Presumably, this is because without wikimarkup in str, there is no match
in the initial gsub, the replacement function l() doesn't get called.
]=]
local function remove_wiki_link (str)
return (str:gsub ("%[%[([^%[%]]*)%]%]", function(l)
return l:gsub ("^[^|]*|(.*)$", "%1" ):gsub ("^%s*(.-)%s*$", "%1");
end));
end
--[=[-------------------------< I S _ W I K I L I N K >--------------------------------------------------------
Determines if str is a wikilink, extracts, and returns the wikilink type, link text, and display text parts.
If str is a complex wikilink ([[L|D]]):
returns wl_type 2 and D and L from [[L|D]];
if str is a simple wikilink ([[D]])
returns wl_type 1 and D from [[D]] and L as empty string;
if not a wikilink:
returns wl_type 0, str as D, and L as empty string.
trims leading and trailing whitespace and pipes from L and D ([[L|]] and [[|D]] are accepted by MediaWiki and
treated like [[D]]; while [[|D|]] is not accepted by MediaWiki, here, we accept it and return D without the pipes).
]=]
local function is_wikilink (str)
local D, L
local wl_type = 2; -- assume that str is a complex wikilink [[L|D]]
if not str:match ('^%[%[[^%]]+%]%]$') then -- is str some sort of a wikilink (must have some sort of content)
return 0, str, ''; -- not a wikilink; return wl_type as 0, str as D, and empty string as L
end
L, D = str:match ('^%[%[([^|]+)|([^%]]+)%]%]$'); -- get L and D from [[L|D]]
if not is_set (D) then -- if no separate display
D = str:match ('^%[%[([^%]]*)|*%]%]$'); -- get D from [[D]] or [[D|]]
wl_type = 1;
end
D = mw.text.trim (D, '%s|'); -- trim white space and pipe characters
return wl_type, D, L or '';
end
--[[--------------------------< S T R I P _ A P O S T R O P H E _ M A R K U P >--------------------------------
Strip wiki italic and bold markup from argument so that it doesn't contaminate COinS metadata.
This function strips common patterns of apostrophe markup. We presume that editors who have taken the time to
markup a title have, as a result, provided valid markup. When they don't, some single apostrophes are left behind.
Returns the argument without wiki markup and a number; the number is more-or-less meaningless except as a flag
to indicate that markup was replaced; do not rely on it as an indicator of how many of any kind of markup was
removed; returns the argument and nil when no markup removed
]]
local function strip_apostrophe_markup (argument)
if not is_set (argument) then
return argument, nil; -- no argument, nothing to do
end
if nil == argument:find ( "''", 1, true ) then -- Is there at least one double apostrophe? If not, exit.
return argument, nil;
end
local flag;
while true do
if argument:find ("'''''", 1, true) then -- bold italic (5)
argument, flag = argument:gsub ("%'%'%'%'%'", ""); -- remove all instances of it
elseif argument:find ("''''", 1, true) then -- italic start and end without content (4)
argument, flag=argument:gsub ("%'%'%'%'", "");
elseif argument:find ("'''", 1, true) then -- bold (3)
argument, flag=argument:gsub ("%'%'%'", "");
elseif argument:find ("''", 1, true) then -- italic (2)
argument, flag = argument:gsub ("%'%'", "");
else
break;
end
end
return argument, flag; -- done
end
--[[--------------------------< S E T _ S E L E C T E D _ M O D U L E S >--------------------------------------
Sets local cfg table to same (live or sandbox) as that used by the other modules.
]]
local function set_selected_modules (cfg_table_ptr)
cfg = cfg_table_ptr;
end
--[[--------------------------< E X P O R T S >----------------------------------------------------------------
]]
return {
add_maint_cat = add_maint_cat, -- exported functions
add_prop_cat = add_prop_cat,
error_comment = error_comment,
has_accept_as_written = has_accept_as_written,
hyphen_to_dash = hyphen_to_dash,
in_array = in_array,
is_set = is_set,
is_wikilink = is_wikilink,
make_sep_list = make_sep_list,
make_wikilink = make_wikilink,
remove_wiki_link = remove_wiki_link,
safe_for_italics = safe_for_italics,
select_one = select_one,
set_message = set_message,
set_selected_modules = set_selected_modules,
strip_apostrophe_markup = strip_apostrophe_markup,
substitute = substitute,
wrap_style = wrap_style,
z = z, -- exported table
}
kk801mqzkv4xrvmuck62gy23fyu6dl0
Module:Citation/CS1/Utilities/doc
828
1622
15087
2022-07-17T13:11:51Z
Kambai Akau
15
Created page with "{{#lst:Module:Citation/CS1/doc|header}} This page contains various functions and tables that are common to multiple of the various modules that make up [[Module:Citation/CS1]]. {{#lst:Module:Citation/CS1/doc|module_components_table}}"
wikitext
text/x-wiki
{{#lst:Module:Citation/CS1/doc|header}}
This page contains various functions and tables that are common to multiple of the various modules that make up [[Module:Citation/CS1]].
{{#lst:Module:Citation/CS1/doc|module_components_table}}
n084xy72mpkmmozo65bcmuvc7dufg27
Module:Citation/CS1/COinS
828
1623
15088
2022-07-17T13:12:53Z
Kambai Akau
15
Created page with "--[[--------------------------< F O R W A R D D E C L A R A T I O N S >-------------------------------------- ]] local has_accept_as_written, is_set, in_array, remove_wiki_link, strip_apostrophe_markup; -- functions in Module:Citation/CS1/Utilities local cfg; -- table of configuration tables that are defined in Module:Citation/CS1/Configuration --[[--------------------------< M A K E _ C O I N S _ T I T L E >----------------------------------------..."
Scribunto
text/plain
--[[--------------------------< F O R W A R D D E C L A R A T I O N S >--------------------------------------
]]
local has_accept_as_written, is_set, in_array, remove_wiki_link, strip_apostrophe_markup; -- functions in Module:Citation/CS1/Utilities
local cfg; -- table of configuration tables that are defined in Module:Citation/CS1/Configuration
--[[--------------------------< M A K E _ C O I N S _ T I T L E >----------------------------------------------
Makes a title for COinS from Title and / or ScriptTitle (or any other name-script pairs)
Apostrophe markup (bold, italics) is stripped from each value so that the COinS metadata isn't corrupted with strings
of %27%27...
]]
local function make_coins_title (title, script)
title = has_accept_as_written (title);
if is_set (title) then
title = strip_apostrophe_markup (title); -- strip any apostrophe markup
else
title = ''; -- if not set, make sure title is an empty string
end
if is_set (script) then
script = script:gsub ('^%l%l%s*:%s*', ''); -- remove language prefix if present (script value may now be empty string)
script = strip_apostrophe_markup (script); -- strip any apostrophe markup
else
script = ''; -- if not set, make sure script is an empty string
end
if is_set (title) and is_set (script) then
script = ' ' .. script; -- add a space before we concatenate
end
return title .. script; -- return the concatenation
end
--[[--------------------------< E S C A P E _ L U A _ M A G I C _ C H A R S >----------------------------------
Returns a string where all of Lua's magic characters have been escaped. This is important because functions like
string.gsub() treat their pattern and replace strings as patterns, not literal strings.
]]
local function escape_lua_magic_chars (argument)
argument = argument:gsub("%%", "%%%%"); -- replace % with %%
argument = argument:gsub("([%^%$%(%)%.%[%]%*%+%-%?])", "%%%1"); -- replace all other Lua magic pattern characters
return argument;
end
--[[--------------------------< G E T _ C O I N S _ P A G E S >------------------------------------------------
Extract page numbers from external wikilinks in any of the |page=, |pages=, or |at= parameters for use in COinS.
]]
local function get_coins_pages (pages)
local pattern;
if not is_set (pages) then return pages; end -- if no page numbers then we're done
while true do
pattern = pages:match("%[(%w*:?//[^ ]+%s+)[%w%d].*%]"); -- pattern is the opening bracket, the URL and following space(s): "[url "
if nil == pattern then break; end -- no more URLs
pattern = escape_lua_magic_chars (pattern); -- pattern is not a literal string; escape Lua's magic pattern characters
pages = pages:gsub(pattern, ""); -- remove as many instances of pattern as possible
end
pages = pages:gsub("[%[%]]", ""); -- remove the brackets
pages = pages:gsub("–", "-" ); -- replace endashes with hyphens
pages = pages:gsub("&%w+;", "-" ); -- and replace HTML entities (– etc.) with hyphens; do we need to replace numerical entities like   and the like?
return pages;
end
--[=[-------------------------< C O I N S _ R E P L A C E _ M A T H _ S T R I P M A R K E R >------------------
There are three options for math markup rendering that depend on the editor's math preference settings. These
settings are at [[Special:Preferences#mw-prefsection-rendering]] and are
PNG images
TeX source
MathML with SVG or PNG fallback
All three are heavy with HTML and CSS which doesn't belong in the metadata.
Without this function, the metadata saved in the raw wikitext contained the rendering determined by the settings
of the last editor to save the page.
This function gets the rendered form of an equation according to the editor's preference before the page is saved. It
then searches the rendering for the text equivalent of the rendered equation and replaces the rendering with that so
that the page is saved without extraneous HTML/CSS markup and with a reasonably readable text form of the equation.
When a replacement is made, this function returns true and the value with replacement; otherwise false and the initial
value. To replace multipe equations it is necessary to call this function from within a loop.
]=]
local function coins_replace_math_stripmarker (value)
local stripmarker = cfg.stripmarkers['math'];
local rendering = value:match (stripmarker); -- is there a math stripmarker
if not rendering then -- when value doesn't have a math stripmarker, abandon this test
return false, value;
end
rendering = mw.text.unstripNoWiki (rendering); -- convert stripmarker into rendered value (or nil? ''? when math render error)
if rendering:match ('alt="[^"]+"') then -- if PNG math option
rendering = rendering:match ('alt="([^"]+)"'); -- extract just the math text
elseif rendering:match ('$%s+.+%s+%$') then -- if TeX math option; $ is legit character that is escapes as \$
rendering = rendering:match ('$%s+(.+)%s+%$') -- extract just the math text
elseif rendering:match ('<annotation[^>]+>.+</annotation>') then -- if MathML math option
rendering = rendering:match ('<annotation[^>]+>(.+)</annotation>') -- extract just the math text
else
return false, value; -- had math stripmarker but not one of the three defined forms
end
return true, value:gsub (stripmarker, rendering, 1);
end
--[[--------------------------< C O I N S _ C L E A N U P >----------------------------------------------------
Cleanup parameter values for the metadata by removing or replacing invisible characters and certain HTML entities.
2015-12-10: there is a bug in mw.text.unstripNoWiki (). It replaces math stripmarkers with the appropriate content
when it shouldn't. See https://phabricator.wikimedia.org/T121085 and Wikipedia_talk:Lua#stripmarkers_and_mw.text.unstripNoWiki.28.29
TODO: move the replacement patterns and replacement values into a table in /Configuration similar to the invisible
characters table?
]]
local function coins_cleanup (value)
local replaced = true; -- default state to get the do loop running
while replaced do -- loop until all math stripmarkers replaced
replaced, value = coins_replace_math_stripmarker (value); -- replace math stripmarker with text representation of the equation
end
value = value:gsub (cfg.stripmarkers['math'], "MATH RENDER ERROR"); -- one or more couldn't be replaced; insert vague error message
value = mw.text.unstripNoWiki (value); -- replace nowiki stripmarkers with their content
value = value:gsub ('<span class="nowrap" style="padding%-left:0%.1em;">'(s?)</span>', "'%1"); -- replace {{'}} or {{'s}} with simple apostrophe or apostrophe-s
value = value:gsub (' ', ' '); -- replace entity with plain space
value = value:gsub ('\226\128\138', ' '); -- replace hair space with plain space
if not mw.ustring.find (value, cfg.indic_script) then -- don't remove zero-width joiner characters from indic script
value = value:gsub ('‍', ''); -- remove ‍ entities
value = mw.ustring.gsub (value, '[\226\128\141\226\128\139\194\173]', ''); -- remove zero-width joiner, zero-width space, soft hyphen
end
value = value:gsub ('[\009\010\013 ]+', ' '); -- replace horizontal tab, line feed, carriage return with plain space
return value;
end
--[[--------------------------< C O I N S >--------------------------------------------------------------------
COinS metadata (see <http://ocoins.info/>) allows automated tools to parse the citation information.
]]
local function COinS(data, class)
if 'table' ~= type(data) or nil == next(data) then
return '';
end
for k, v in pairs (data) do -- spin through all of the metadata parameter values
if 'ID_list' ~= k and 'Authors' ~= k then -- except the ID_list and Author tables (author nowiki stripmarker done when Author table processed)
data[k] = coins_cleanup (v);
end
end
local ctx_ver = "Z39.88-2004";
-- treat table strictly as an array with only set values.
local OCinSoutput = setmetatable( {}, {
__newindex = function(self, key, value)
if is_set(value) then
rawset( self, #self+1, table.concat{ key, '=', mw.uri.encode( remove_wiki_link( value ) ) } );
end
end
});
if in_array (class, {'arxiv', 'biorxiv', 'citeseerx', 'ssrn', 'journal', 'news', 'magazine'}) or (in_array (class, {'conference', 'interview', 'map', 'press release', 'web'}) and is_set(data.Periodical)) or
('citation' == class and is_set(data.Periodical) and not is_set (data.Encyclopedia)) then
OCinSoutput.rft_val_fmt = "info:ofi/fmt:kev:mtx:journal"; -- journal metadata identifier
if in_array (class, {'arxiv', 'biorxiv', 'citeseerx', 'ssrn'}) then -- set genre according to the type of citation template we are rendering
OCinSoutput["rft.genre"] = "preprint"; -- cite arxiv, cite biorxiv, cite citeseerx, cite ssrn
elseif 'conference' == class then
OCinSoutput["rft.genre"] = "conference"; -- cite conference (when Periodical set)
elseif 'web' == class then
OCinSoutput["rft.genre"] = "unknown"; -- cite web (when Periodical set)
else
OCinSoutput["rft.genre"] = "article"; -- journal and other 'periodical' articles
end
OCinSoutput["rft.jtitle"] = data.Periodical; -- journal only
OCinSoutput["rft.atitle"] = data.Title; -- 'periodical' article titles
-- these used only for periodicals
OCinSoutput["rft.ssn"] = data.Season; -- keywords: winter, spring, summer, fall
OCinSoutput["rft.quarter"] = data.Quarter; -- single digits 1->first quarter, etc.
OCinSoutput["rft.chron"] = data.Chron; -- free-form date components
OCinSoutput["rft.volume"] = data.Volume; -- does not apply to books
OCinSoutput["rft.issue"] = data.Issue;
OCinSoutput["rft.pages"] = data.Pages; -- also used in book metadata
elseif 'thesis' ~= class then -- all others except cite thesis are treated as 'book' metadata; genre distinguishes
OCinSoutput.rft_val_fmt = "info:ofi/fmt:kev:mtx:book"; -- book metadata identifier
if 'report' == class or 'techreport' == class then -- cite report and cite techreport
OCinSoutput["rft.genre"] = "report";
elseif 'conference' == class then -- cite conference when Periodical not set
OCinSoutput["rft.genre"] = "conference";
OCinSoutput["rft.atitle"] = data.Chapter; -- conference paper as chapter in proceedings (book)
elseif in_array (class, {'book', 'citation', 'encyclopaedia', 'interview', 'map'}) then
if is_set (data.Chapter) then
OCinSoutput["rft.genre"] = "bookitem";
OCinSoutput["rft.atitle"] = data.Chapter; -- book chapter, encyclopedia article, interview in a book, or map title
else
if 'map' == class or 'interview' == class then
OCinSoutput["rft.genre"] = 'unknown'; -- standalone map or interview
else
OCinSoutput["rft.genre"] = 'book'; -- book and encyclopedia
end
end
else -- {'audio-visual', 'AV-media-notes', 'DVD-notes', 'episode', 'interview', 'mailinglist', 'map', 'newsgroup', 'podcast', 'press release', 'serial', 'sign', 'speech', 'web'}
OCinSoutput["rft.genre"] = "unknown";
end
OCinSoutput["rft.btitle"] = data.Title; -- book only
OCinSoutput["rft.place"] = data.PublicationPlace; -- book only
OCinSoutput["rft.series"] = data.Series; -- book only
OCinSoutput["rft.pages"] = data.Pages; -- book, journal
OCinSoutput["rft.edition"] = data.Edition; -- book only
OCinSoutput["rft.pub"] = data.PublisherName; -- book and dissertation
else -- cite thesis
OCinSoutput.rft_val_fmt = "info:ofi/fmt:kev:mtx:dissertation"; -- dissertation metadata identifier
OCinSoutput["rft.title"] = data.Title; -- dissertation (also patent but that is not yet supported)
OCinSoutput["rft.degree"] = data.Degree; -- dissertation only
OCinSoutput['rft.inst'] = data.PublisherName; -- book and dissertation
end
-- NB. Not currently supported are "info:ofi/fmt:kev:mtx:patent", "info:ofi/fmt:kev:mtx:dc", "info:ofi/fmt:kev:mtx:sch_svc", "info:ofi/fmt:kev:mtx:ctx"
-- and now common parameters (as much as possible)
OCinSoutput["rft.date"] = data.Date; -- book, journal, dissertation
for k, v in pairs( data.ID_list ) do -- what to do about these? For now assume that they are common to all?
if k == 'ISBN' then v = v:gsub( "[^-0-9X]", "" ); end
local id = cfg.id_handlers[k].COinS;
if string.sub( id or "", 1, 4 ) == 'info' then -- for ids that are in the info:registry
OCinSoutput["rft_id"] = table.concat{ id, "/", v };
elseif string.sub (id or "", 1, 3 ) == 'rft' then -- for isbn, issn, eissn, etc. that have defined COinS keywords
OCinSoutput[ id ] = v;
elseif 'url' == id then -- for urls that are assembled in ~/Identifiers; |asin= and |ol=
OCinSoutput["rft_id"] = table.concat ({data.ID_list[k], "#id-name=", cfg.id_handlers[k].label});
elseif id then -- when cfg.id_handlers[k].COinS is not nil so urls created here
OCinSoutput["rft_id"] = table.concat{ cfg.id_handlers[k].prefix, v, cfg.id_handlers[k].suffix or '', "#id-name=", cfg.id_handlers[k].label }; -- others; provide a URL and indicate identifier name as #fragment (human-readable, but transparent to browsers)
end
end
local last, first;
for k, v in ipairs( data.Authors ) do
last, first = coins_cleanup (v.last), coins_cleanup (v.first or ''); -- replace any nowiki stripmarkers, non-printing or invisible characters
if k == 1 then -- for the first author name only
if is_set(last) and is_set(first) then -- set these COinS values if |first= and |last= specify the first author name
OCinSoutput["rft.aulast"] = last; -- book, journal, dissertation
OCinSoutput["rft.aufirst"] = first; -- book, journal, dissertation
elseif is_set(last) then
OCinSoutput["rft.au"] = last; -- book, journal, dissertation -- otherwise use this form for the first name
end
else -- for all other authors
if is_set(last) and is_set(first) then
OCinSoutput["rft.au"] = table.concat{ last, ", ", first }; -- book, journal, dissertation
elseif is_set(last) then
OCinSoutput["rft.au"] = last; -- book, journal, dissertation
end
-- TODO: At present we do not report "et al.". Add anything special if this condition applies?
end
end
OCinSoutput.rft_id = data.URL;
OCinSoutput.rfr_id = table.concat{ "info:sid/", mw.site.server:match( "[^/]*$" ), ":", data.RawPage };
-- TODO: Add optional extra info:
-- rfr_dat=#REVISION<version> (referrer private data)
-- ctx_id=<data.RawPage>#<ref> (identifier for the context object)
-- ctx_tim=<ts> (timestamp in format yyyy-mm-ddThh:mm:ssTZD or yyyy-mm-dd)
-- ctx_enc=info:ofi/enc:UTF-8 (character encoding)
OCinSoutput = setmetatable( OCinSoutput, nil );
-- sort with version string always first, and combine.
-- table.sort( OCinSoutput );
table.insert( OCinSoutput, 1, "ctx_ver=" .. ctx_ver ); -- such as "Z39.88-2004"
return table.concat(OCinSoutput, "&");
end
--[[--------------------------< S E T _ S E L E C T E D _ M O D U L E S >--------------------------------------
Sets local cfg table and imported functions table to same (live or sandbox) as that used by the other modules.
]]
local function set_selected_modules (cfg_table_ptr, utilities_page_ptr)
cfg = cfg_table_ptr;
has_accept_as_written = utilities_page_ptr.has_accept_as_written; -- import functions from selected Module:Citation/CS1/Utilities module
is_set = utilities_page_ptr.is_set;
in_array = utilities_page_ptr.in_array;
remove_wiki_link = utilities_page_ptr.remove_wiki_link;
strip_apostrophe_markup = utilities_page_ptr.strip_apostrophe_markup;
end
--[[--------------------------< E X P O R T E D F U N C T I O N S >------------------------------------------
]]
return {
make_coins_title = make_coins_title,
get_coins_pages = get_coins_pages,
COinS = COinS,
set_selected_modules = set_selected_modules,
}
9vyk9pk52t1pp4siilcbluanw9m1ekz
Module:Citation/CS1/COinS/doc
828
1624
15089
2022-07-17T13:13:25Z
Kambai Akau
15
Created page with "{{#lst:Module:Citation/CS1/doc|header}} This page contains various functions render a cs1|2 template's metadata. {{#lst:Module:Citation/CS1/doc|module_components_table}} Other documentation: * [[Module talk:Citation/CS1/COinS]]"
wikitext
text/x-wiki
{{#lst:Module:Citation/CS1/doc|header}}
This page contains various functions render a cs1|2 template's metadata.
{{#lst:Module:Citation/CS1/doc|module_components_table}}
Other documentation:
* [[Module talk:Citation/CS1/COinS]]
n5nzlm722lgql2pic5huux2vpcrkg3h
Module:Citation/CS1/styles.css
828
1625
15090
2022-07-17T13:15:18Z
Kambai Akau
15
Created page with "/* Protection icon the following line controls the page-protection icon in the upper right corner it must remain within this comment {{sandbox other||{{pp-template}}}} */ /* Overrides Some wikis do not override user agent default styles for HTML <cite> and <q>, unlike en.wp. On en.wp, keep these the same as [[MediaWiki:Common.css]]. The word-wrap and :target styles were moved here from Common.css. On en.wp, keep these the same as [[Template:Citation/styles.css]]. */..."
sanitized-css
text/css
/* Protection icon
the following line controls the page-protection icon in the upper right corner
it must remain within this comment
{{sandbox other||{{pp-template}}}}
*/
/* Overrides
Some wikis do not override user agent default styles for HTML <cite> and <q>,
unlike en.wp. On en.wp, keep these the same as [[MediaWiki:Common.css]].
The word-wrap and :target styles were moved here from Common.css.
On en.wp, keep these the same as [[Template:Citation/styles.css]].
*/
cite.citation {
font-style: inherit; /* Remove italics for <cite> */
/* Break long urls, etc., rather than overflowing box */
word-wrap: break-word;
}
.citation q {
quotes: '"' '"' "'" "'"; /* Straight quote marks for <q> */
}
/* Highlight linked elements (such as clicked references) in blue */
.citation:target {
/* ignore the linter - all browsers of interest implement this */
background-color: rgba(0, 127, 255, 0.133);
}
/* ID and URL access
Both core and Common.css have selector .mw-parser-output a[href$=".pdf"].external
for PDF pages. All TemplateStyles pages are hoisted to .mw-parser-output. We need
to have specificity equal to a[href$=".pdf"].external for locks to override PDF icon.
That's essentially 2 classes and 1 element.
the .id-lock-... selectors are for use by non-citation templates like
{{Catalog lookup link}} which do not have to handle PDF links
*/
.id-lock-free a,
.citation .cs1-lock-free a {
background: linear-gradient(transparent, transparent),
url(//upload.wikimedia.org/wikipedia/commons/6/65/Lock-green.svg)
right 0.1em center/9px no-repeat;
}
.id-lock-limited a,
.id-lock-registration a,
.citation .cs1-lock-limited a,
.citation .cs1-lock-registration a {
background: linear-gradient(transparent, transparent),
url(//upload.wikimedia.org/wikipedia/commons/d/d6/Lock-gray-alt-2.svg)
right 0.1em center/9px no-repeat;
}
.id-lock-subscription a,
.citation .cs1-lock-subscription a {
background: linear-gradient(transparent, transparent),
url(//upload.wikimedia.org/wikipedia/commons/a/aa/Lock-red-alt-2.svg)
right 0.1em center/9px no-repeat;
}
/* Wikisource
Wikisource icon when |chapter= or |title= is wikilinked to Wikisource
as in cite wikisource
*/
.cs1-ws-icon a {
background: linear-gradient(transparent, transparent),
url(//upload.wikimedia.org/wikipedia/commons/4/4c/Wikisource-logo.svg)
right 0.1em center/12px no-repeat;
}
/* Errors and maintenance */
.cs1-code {
/* <code>...</code> style override: mediawiki's css definition is specified here:
https://git.wikimedia.org/blob/mediawiki%2Fcore.git/
69cd73811f7aadd093050dbf20ed70ef0b42a713/skins%2Fcommon%2FcommonElements.css#L199
*/
color: inherit;
background: inherit;
border: none;
padding: inherit;
}
.cs1-hidden-error {
display: none;
color: #d33;
}
.cs1-visible-error {
color: #d33;
}
.cs1-maint {
display: none;
color: #3a3;
margin-left: 0.3em;
}
/* Small text size
Set small text size in one place. 0.95 (here) * 0.9 (from references list) is
~0.85, which is the lower bound for size for accessibility. Old styling for this
was just 0.85. We could write the rule so that when this template is inside
references/reflist, only then does it multiply by 0.95; else multiply by 0.85 */
.cs1-format {
font-size: 95%;
}
/* kerning */
.cs1-kern-left {
padding-left: 0.2em;
}
.cs1-kern-right {
padding-right: 0.2em;
}
/* selflinks – avoid bold font style when cs1|2 template links to the current page */
.citation .mw-selflink {
font-weight: inherit;
}
05swlrxxaulwkgtbbdmtf5atrgfwmuz
Module:Citation/CS1/Suggestions
828
1626
15091
2022-07-17T13:16:28Z
Kambai Akau
15
Created page with "-- Please insert new suggestions in alphabetical order -- The form is ['incorrect'] = 'correct', suggestions = { ['ASIN-TLD'] = 'asin-tld', -- old parameter name ['abruf'] = 'access-date', -- German ['abruf-verborgen'] = 'access-date', -- German ['accessmonth'] = 'access-date', ['accesso'] = 'access-date', -- Italian ['accessyear'] = 'access-date', ['acessodata'] = 'access-date', -- Brazilian Portuguese ['ad..."
Scribunto
text/plain
-- Please insert new suggestions in alphabetical order
-- The form is ['incorrect'] = 'correct',
suggestions = {
['ASIN-TLD'] = 'asin-tld', -- old parameter name
['abruf'] = 'access-date', -- German
['abruf-verborgen'] = 'access-date', -- German
['accessmonth'] = 'access-date',
['accesso'] = 'access-date', -- Italian
['accessyear'] = 'access-date',
['acessodata'] = 'access-date', -- Brazilian Portuguese
['ad'] = 'first', -- Turkish
['address'] = 'location',
['anno'] = 'date', -- Italian
['annoaccesso'] = 'access-date', -- Italian
['annodiaccesso'] = 'access-date', -- Italian
['annooriginale'] = 'orig-date', -- Italian
['année'] = 'date', -- French
['apellido'] = 'last', -- Spanish
['apellidos'] = 'last', -- Spanish
['archiv-datum'] = 'archive-date', -- German
['archiv-url'] = 'archive-url', -- German
['archive date'] = 'archive-date',
['archive url'] = 'archive-url', -- Spanish
['archive-link'] = 'archive-url',
['artikelnr'] = 'id', -- German (as 'id=Article No. ...')
['artist'] = 'others',
['arşiv-tarihi'] = 'archive-date', -- Turkish
['arşiv-url'] = 'archive-url', -- Turkish
['arşivtarihi'] = 'archive-date', -- Turkish
['arşivurl'] = 'archive-url', -- Turkish
['auflage'] = 'edition', -- German
['auteur'] = 'author', -- French
['auther'] = 'author',
['author link'] = 'author-link', -- Polish
['authorfirst'] = 'author-first', -- old parameter name
['authorgiven'] = 'author-given', -- old parameter name
['authorlast'] = 'author-last', -- old parameter name
['authormask'] = 'author-mask', -- old parameter name
['authorsurname'] = 'author-surname', -- old parameter name
['autor'] = 'author', -- Spanish, German (singular and plural)
['autore'] = 'author', -- Italian
['autthor'] = 'author',
['ay'] = 'month', -- Turkish
['año'] = 'date', -- Spanish
['año-original'] = 'orig-date', -- Spanish
['añoacceso'] = 'access-date', -- Spanish
['añooriginal'] = 'orig-date', -- Spanish
['band'] = 'volume', -- German
['bandreihe'] = 'volume', -- German
['baskı'] = 'edition', -- Turkish
['başlık'] = 'title', -- Turkish
['began'] = 'date', -- old parameter name (cite serial only); or orig-date=
['booktitle'] = 'book-title', -- old parameter name
['ch'] = 'language', -- German (as 'language=de-CH')
['chapter_title'] = 'chapter',
['chapterurl'] = 'chapter-url', -- old parameter name
['cid'] = 'ref', -- Italian
['cilt'] = 'volume', -- Turkish
['cita'] = 'quote', -- Spanish
['citazione'] = 'quote', -- Italian
['città'] = 'location', -- Italian
['city'] = 'location', -- old parameter name (cite serial only)
['coauthor'] = 'author',
['coauthors'] = 'author',
['coautores'] = 'author', -- Spanish
['coautori'] = 'author', -- Italian
['cognome'] = 'last', -- Italian
['conferenceurl'] = 'conference-url', -- old parameter name
['consulté le'] = 'access-date', -- French
['contributionurl'] = 'contribution-url', -- old parameter name
['curatore'] = 'publisher', -- Italian
['czasopismo'] = 'journal', -- Polish
['data dostępu'] = 'access-date', -- Polish
['data'] = 'date', -- Polish, Italian
['dataaccesso'] = 'access-date', -- Italian
['dataarchivio'] = 'archive-date', -- Italian
['datum'] = 'date', -- German
['dead-url'] = 'url-status', -- old parameter name
['deadlink'] = 'url-status',
['deadurl'] = 'url-status', -- old parameter name
['dergi'] = 'work', -- Turkish
['dil'] = 'language', -- Turkish
['displayauthors'] = 'display-authors', -- old parameter name
['displayeditors'] = 'display-editors', -- old parameter name
['distributor'] = 'publisher',
['dnb'] = 'id', -- German (as 'id={{DNB-IDN|...}}')
['doi-broken'] = 'doi-broken-date', -- old parameter alias
['doi-inactive'] = 'doi-broken-date', -- invalid name found in mainspace
['doi-inactive-date'] = 'doi-broken-date', -- old parameter alias
['doi_brokendate'] = 'doi-broken-date', -- old parameter alias
['doi_inactivedate'] = 'doi-inactive-date', -- old parameter alias
['doibroken'] = 'doi-broken-date', -- invalid name found in mainspace
['doiinactive'] = 'doi-broken-date', -- invalid name found in mainspace
['e-print'] = 'eprint', -- misspelling
-- ['ed'] = 'edition', -- avoid suggestion as in English this could be short for editor or edition
-- ['editora'] = 'publisher', -- can be either editor or publisher
-- ['editore'] = 'agency', -- can be either publisher or agency
-- ['editori'] = 'editor', -- can be either editor or publisher
-- ['editorial'] = 'publisher', -- can be either publisher or work
['editoin'] = 'edition', -- misspelling
['editon'] = 'edition', -- misspelling
['editorfirst'] = 'editor-first', -- old parameter name
['editorgiven'] = 'editor-given', -- old parameter name
['editorlast'] = 'editor-last', -- old parameter name
['editorlink'] = 'editor-link', -- old parameter name
['editormask'] = 'editor-mask', -- old parameter name
['editors'] = 'editor', -- old parameter name (can be emulated using multiple singular |editor= params)
['editorsurname'] = 'editor-surname', -- old parameter name
['edizione'] = 'edition', -- Italian
['embargo'] = 'pmc-embargo-date', -- old parameter name
['ended'] = 'date', -- old parameter name (cite serial only)
['en ligne le'] = 'archive-date', -- French
['encyclopædia'] = 'encyclopedia',
['enlaceautor'] = 'author-link', -- Spanish
['enlaceroto'] = 'url-status', -- Spanish
['episodelink'] = 'episode-link', -- old parameter name
['erişimtarihi'] = 'access-date', -- Turkish
['eser'] = 'work', -- Turkish
['family'] = 'surname', -- misguess
['fecha'] = 'date', -- Spanish
['fechaacceso'] = 'access-date', -- Spanish
['fechaarchivo'] = 'archive-date', -- Spanish
['filetype'] = 'format',
['foramt'] = 'format', -- misspelling
['fore-name'] = 'given', -- misguess/misspelling
['forename'] = 'given', -- misguess
['formato'] = 'format', -- Spanish, Italian, Polish
['frist'] = 'first', -- misspelling
['fundstelle'] = 'at', -- German
['gazete'] = 'work', -- Turkish
['giornale'] = 'journal', -- Italian
['herausgeber'] = 'editor', -- German (singular and plural)
['hrsg'] = 'publisher', -- German
['hrsgreihe'] = 'editor', -- German
['idioma'] = 'language', -- Spanish
['ignore-isbn-error'] = 'isbn', -- old parameter (can be fully emulated using ((syntax)))
['ignoreisbnerror'] = 'isbn', -- old parameter alias (suggest |isbn as |ignore-isbn-error is deprecated), not a direct replacement, but can be fully emulated using ((syntax))
['imię'] = 'first', -- Polish
['in-set'] = 'inset', -- misspelling
['interviewerlink'] = 'interviewer-link', -- old parameter alias
['interviewermask'] = 'interviewer-mask', -- old parameter alias
['isbndefekt'] = 'isbn', -- German (suggest |isbn as |ignore-isbn-error is deprecated), not a direct replacement, but can be fully emulated using ((syntax))
['isbnformalfalsch'] = 'isbn', -- German (suggest |isbn as |ignore-isbn-error is deprecated), not a direct replacement, but can be fully emulated using ((syntax))
['isbnistformalfalsch'] = 'isbn', -- German (suggest |isbn as |ignore-isbn-error is deprecated), not a direct replacement, but can be fully emulated using ((syntax))
['isnb'] = 'isbn', -- misspelling
['issnformalfalsch'] = 'issn', -- German (can be fully emulated using ((syntax)))
['jahr'] = 'date', -- German
['jahrea'] = 'orig-date', -- German (not a direct replacement, but can be emulated)
['kapitel'] = 'chapter', -- German
['langauge'] = 'language', -- misspelling
['langue'] = 'language', -- French
['last-author-amp'] = 'name-list-style', -- old parameter name (as |name-list-style=amp)
['lastauthoramp'] = 'name-list-style', -- old parameter name (as |name-list-style=amp)
['lieu'] = 'location', -- French
['lingua'] = 'language', -- Italian
['lire en ligne'] = 'url', -- French
['lizenznummer'] = 'id', -- German (as 'id=License No. ...')
['loaction'] = 'location', -- misspelling
['local'] = 'location', -- Brazilian Portuguese
['locatoin'] = 'location', -- misspelling
['lugar'] = 'location', -- Spanish
['mailinglist'] = 'mailing-list', -- old parameter name
['mapurl'] = 'map-url', -- old parameter name
['mes'] = 'date', -- Spanish (not a direct replacement)
['mese'] = 'date', -- Italian (not a direct replacement)
['miejsce'] = 'location', -- Polish
['miesiąc'] = 'date', -- Polish
['mois'] = 'date', -- French
['monat'] = 'date', -- German
-- ['name'] = 'author', -- 'name' is often erroneously used for 'title' and 'work' as well, so no suggestion is better than a wrong suggestion
['name-list-format'] = 'name-list-style', -- old parameter name (as |name-list-style=amp)
['nazwisko'] = 'last', -- Polish
['nespaper'] = 'newspaper', -- misspelling
['net-work'] = 'network', -- misspelling
['newpaper'] = 'newspaper', -- misspelling
['news'] = 'newspaper',
['news-group'] = 'newsgroup', -- misspelling
['news-paper'] = 'newspaper', -- misspelling
['no-cat'] = 'no-tracking', -- old parameter
['nocat'] = 'no-tracking', -- old parameter
['nom'] = 'last', -- French
['nombre'] = 'first', -- Spanish
['nome'] = 'first', -- Italian
['nopp'] = 'no-pp', -- old parameter name
['notracking'] = 'no-tracking', -- old parameter
['numero'] = 'number', -- Italian, Spanish
['nummer'] = 'number', -- German
['nummerreihe'] = 'number', -- German
['obra'] = 'work', -- Spanish
['odpowiedzialność'] = 'agency', -- Polish
['offline'] = 'url-status', -- German (as 'url-status=dead')
['online'] = 'url', -- German (not a direct replacement, but can be emulated)
['opera'] = 'work', -- Italian
['opublikowany'] = 'agency', -- Polish
['origdate'] = 'orig-date', -- misspelling
['originaljahr'] = 'orig-date', -- German
['originalort'] = 'publication-place', -- German
['originalsprache'] = 'language', -- German
['originaltitel'] = 'title', -- German (if 'originaltitel' is specified, any possible contents of 'title' should be put in 'trans-title')
['ort'] = 'publication-place', -- German
['ortea'] = 'publication-place', -- German (not a direct replacement, but can be emulated)
['other'] = 'others',
['oznaczenie'] = 'agency', -- Polish
['pagees'] = 'pages', -- misspelling
['pagina'] = 'page', -- Italian
['pagina'] = 'pages', -- Italian
['pagine'] = 'pages', -- Italian
['pagine'] = 'pages', -- Italian
['passage'] = 'pages', -- French
['periodico'] = 'magazine', -- Spanish
['plublisher'] = 'publisher', -- misspelling
['pmcid'] = 'pmc',
['post-script'] = 'postscript', -- misspelling
['praca'] = 'work', -- Polish
['primero'] = 'first', -- Spanish
['prénom'] = 'first', -- French
['prénom1'] = 'first1', -- French
['ps'] = 'postscript',
['pub'] = 'publisher',
-- ['pubblicazione'] = 'magazine', -- could be any kind of work
-- ['publicación'] = 'journal', -- could be any kind of work
['publicationdate'] = 'publication-date', -- old parameter name
-- ['published'] = 'publisher', -- could be date, location, or name of publisher
['publicationplace'] = 'publication-place', -- old parameter name
['pulbication-place'] = 'publication-place', -- misspelling
['página'] = 'page', -- Spanish
['páginas'] = 'pages', -- Spanish
['périodique'] = 'publisher', -- French
['registration'] = 'url-access', -- old parameter name
['reihe'] = 'series', -- German
['retrieved'] = 'access-date',
['richiestasottoscrizione'] = 'url-access', -- Italian (as |url-access=subscription)
['rok'] = 'date', -- Polish
['sammelwerk'] = 'work', -- German
['sayfa'] = 'page', -- Turkish
['sayfalar'] = 'pages', -- Turkish
['sayı'] = 'issue', -- Turkish
['script-post'] = 'postscript', -- misspelling
['script-trans'] = 'transcript', -- misspelling
['season'] = 'date', -- old parameter name (cite serial only)
['sectionurl'] = 'section-url', -- old parameter name
['seiten'] = 'pages', -- German
['seria'] = 'series', -- Spanish, Polish
['serie'] = 'series', -- Italian
['série'] = 'series', -- French
['serieslink'] = 'series-link', -- old parameter name
['seriesno'] = 'series-number', -- old parameter name
['service'] = 'agency',
['sitioweb'] = 'website', -- Spanish
['sito'] = 'website', -- Italian
['soyadı'] = 'last', -- Turkish
['spalten'] = 'at', -- German (not a direct replacement, but can be emulated)
['sprache'] = 'language', -- German
['stron'] = 'page', -- Polish
['strony'] = 'pages', -- Polish
['subjectlink'] = 'subject-link', -- old parameter name
['subscription'] = 'url-access', -- old parameter name (emulated as |url-access=subscription)
['sur-name'] = 'surname', -- misspelling
['suscripción'] = 'url-access', -- Spanish, Polish (as |url-access=subscription)
['tag'] = 'date', -- German
['tarih'] = 'date', -- Turkish
['template doc demo'] = 'no-tracking', -- old parameter alias
['tile'] = 'title', -- misspelling
['timecaption'] = 'time-caption', -- old parameter name
['titlelink'] = 'title-link', -- old parameter name
['tipo'] = 'type', -- Italian
['tite'] = 'title', -- misspelling
['titel'] = 'title', -- German
['titel-p'] = 'title', -- German ('postscript=none' should be added as well)
['titelerg'] = 'contribution', -- German (not a direct replacement, but can be emulated)
['titled'] = 'title', -- Brazilian Portuguese
['titolo'] = 'title', -- Italian
['titre'] = 'title', -- French
['trans-script'] = 'transcript', -- misspelling
['trans_chapter'] = 'trans-chapter', -- old parameter alias
['trans_title'] = 'trans-title', -- old parameter alias
['transchapter'] = 'trans-chapter',
['transcripturl'] = 'transcript-url', -- old parameter name
['transscript'] = 'transcript', -- misspelling
['transscript-format'] = 'transcript-format', -- misspelling
['transscript-url'] = 'transcript-url', -- misspelling
['transscripturl'] = 'transcript-url', -- misspelling
['transtitle'] = 'trans-title',
['typ'] = 'author-mask', -- German (not a direct replacement, but the only valid argument 'typ=wl' can be emulated using 'author-mask')
['tytuł'] = 'title', -- Polish
['títle'] = 'title',
['título'] = 'title', -- Spanish
['ubicación'] = 'location', -- Spanish
['urlarchivio'] = 'archive-url', -- Italian
['urlarchivo'] = 'archive-url', -- Spanish
['urlmorto'] = 'url-status', -- Italian
['urn'] = 'id', -- German (as 'id={{URN|...}}')
['v-authors'] = 'vauthors', -- misspelling
['v-editors'] = 'veditors', -- misspelling
['verlag'] = 'publisher', -- German
['verlagea'] = 'publisher', -- German (not a direct replacement, but can be emulated)
['vol'] = 'volume',
['volumen'] = 'volume', -- Spanish
['werk'] = 'work', -- German
['werkerg'] = 'contribution', -- German (not a direct replacement, but can be emulated)
['wkautore'] = 'author-link', -- Italian
['wolumin'] = 'volume', -- Polish
['wydanie'] = 'number', -- Polish
['wydawca'] = 'publisher', -- French
['yardımcıyazarlar'] = 'author', -- Turkish
['yayımcı'] = 'publisher', -- Turkish
['yayıncı'] = 'publisher', -- Turkish
['yazar'] = 'author', -- Turkish
['yazarbağı'] = 'author-link', -- Turkish
['yer'] = 'location', -- Turkish
['yıl'] = 'date', -- Turkish
['zaprezentowany'] = 'publisher', -- French
['zdb'] = 'id', -- German (as 'id={{ZDB|...}}')
['zitat'] = 'quote', -- German
['zugriff'] = 'access-date', -- German
['éditeur'] = 'editor', -- French
['ölüurl'] = 'url-status', -- Turkish
['übersetzer'] = 'translator', -- German (singular and plural)
}
--[[--------------------------< P A T T E R N S >--------------------------------------------------------------
Here we use Lua patterns to make suggestions. The form is
['pattern'] = 'correct',
Lua patterns are not REGEX though they are similar. The escape character is '%', not '\'.
For more information about Lua patterns, see: Extension:Scribunto/Lua_reference_manual#Patterns
Patterns should probably always include the '^' and '$' anchor assertions to prevent a partial
match from incorrectly suggesting the wrong parameter name. For instance, the pattern 'a[utho]+r'
matches 'author' in the no-longer-supported parameter |author-separator= so the code suggests
'|author='; the same pattern also matches the no-longer-supported parameter |separator= (returning 'ator')
so again, the code suggests '|author='.
One capture is supported, typically the enumerator from an enumerated parameter (the '6' in |author6=, etc.)
The value from the capture replaces $1 in the 'correct' value.
]]
local patterns = {
['^ac+es+ ?d?a?t?e?$'] = 'access-date', -- misspelling
['^apellido[s]?(%d+)$'] = 'last$1', -- Spanish, enumerated
['^a[utho]+r$'] = 'author', -- misspelling
['^a[utho]+r(%d+)$'] = 'author$1', -- misspelling, enumerated
['^author link(%d+)$'] = 'author-link$1', -- Polish, enumerated
['^autor[e]?(%d+)$'] = 'author$1', -- Italian/Spanish/German, enumerated
['^authorfirst(%d+)$'] = 'author-first$1', -- old parameter name, enumerated
['^author(%d+)first$'] = 'author-first$1', -- old parameter name, enumerated
['^authorgiven(%d+)$'] = 'author-given$1', -- old parameter name, enumerated
['^author(%d+)given$'] = 'author-given$1', -- old parameter name, enumerated
['^authorlast(%d+)$'] = 'author-last$1', -- old parameter name, enumerated
['^author(%d+)last$'] = 'author-last$1', -- old parameter name, enumerated
['^authormask(%d+)$'] = 'author-mask$1', -- old parameter name, enumerated
['^author(%d+)mask$'] = 'author-mask$1', -- old parameter name, enumerated
['^authorsurname(%d+)$'] = 'author-surname$1', -- old parameter name, enumerated
['^author(%d+)surname$'] = 'author-surname$1', -- old parameter name, enumerated
['^cognome(%d+)$'] = 'last$1', -- Italian, enumerated
['^editorfirst(%d+)$'] = 'editor-first$1', -- old parameter name, enumerated
['^editor(%d+)first$'] = 'editor-first$1', -- old parameter name, enumerated
['^editorgiven(%d+)$'] = 'editor-given$1', -- old parameter name, enumerated
['^editor(%d+)given$'] = 'editor-given$1', -- old parameter name, enumerated
['^editorlast(%d+)$'] = 'editor-last$1', -- old parameter name, enumerated
['^editor(%d+)last$'] = 'editor-last$1', -- old parameter name, enumerated
['^editorlink(%d+)$'] = 'editor-link$1', -- old parameter name, enumerated
['^editor(%d+)link$'] = 'editor-link$1', -- old parameter name, enumerated
['^editormask(%d+)$'] = 'editor-mask$1', -- old parameter name, enumerated
['^editor(%d+)mask$'] = 'editor-mask$1', -- old parameter name, enumerated
['^editorsurname(%d+)$'] = 'editor-surname$1', -- old parameter name, enumerated
['^editor(%d+)surname$'] = 'editor-surname$1', -- old parameter name, enumerated
['^enlaceautore(%d+)$'] = 'author-link$1', -- Spanish, enumerated
['^first (%d+)$'] = 'first$1', -- enumerated
['^last (%d+)$'] = 'last$1', -- enumerated
['^nom[e]?(%d+)$'] = 'last$1', -- Italian/French, enumerated
['^nombre(%d+)$'] = 'first$1', -- Spanish, enumerated
['^primero(%d+)$'] = 'first$1', -- Spanish, enumerated
['^pu[blish]+ers?$'] = 'publisher', -- misspelling
['^subjectlink(%d+)$'] = 'subject-link$1', -- old parameter name, enumerated
['^subject(%d+)link$'] = 'subject-link$1', -- old parameter name, enumerated
['^wkautore(%d+)$'] = 'author-link$1', -- Italian, enumerated
}
return {suggestions = suggestions, patterns=patterns};
lyv8oknf0erxtppnd4bn5uatviufsor
Module:Citation/CS1/Suggestions/doc
828
1627
15092
2022-07-17T13:17:17Z
Kambai Akau
15
Created page with "{{#lst:Module:Citation/CS1/doc|header}} This is a list of suggested alternatives to use when an unknown parameter is encountered by a citation template. When an unknown parameter is found within a citation template an error message is generated, and when possible the software makes a suggestion for what the user may have meant by consulting this list of common mistakes and typos. Each entry takes the form: ['bad input parameter'] = 'suggested parameter to use' The b..."
wikitext
text/x-wiki
{{#lst:Module:Citation/CS1/doc|header}}
This is a list of suggested alternatives to use when an unknown parameter is
encountered by a citation template. When an unknown parameter is found within
a citation template an error message is generated, and when possible the
software makes a suggestion for what the user may have meant by consulting this
list of common mistakes and typos.
Each entry takes the form:
['bad input parameter'] = 'suggested parameter to use'
The bad input parameter will have been transformed to lower case before
checking this list, so all input forms on this list should be written in lowercase.
{{#lst:Module:Citation/CS1/doc|module_components_table}}
996hzpwckoa17dez1eikyzxtk8nqg9o
Module:Citation/CS1/sandbox
828
1628
15093
2022-07-17T13:18:32Z
Kambai Akau
15
Created page with "--[[ History of changes since last sync: 2022-07-01 ]] require ('Module:No globals'); --[[--------------------------< F O R W A R D D E C L A R A T I O N S >-------------------------------------- each of these counts against the Lua upvalue limit ]] local validation; -- functions in Module:Citation/CS1/Date_validation local utilities; -- functions in Module:Citation/CS1/Utilities local z ={}; -- table of tables in Mo..."
Scribunto
text/plain
--[[
History of changes since last sync: 2022-07-01
]]
require ('Module:No globals');
--[[--------------------------< F O R W A R D D E C L A R A T I O N S >--------------------------------------
each of these counts against the Lua upvalue limit
]]
local validation; -- functions in Module:Citation/CS1/Date_validation
local utilities; -- functions in Module:Citation/CS1/Utilities
local z ={}; -- table of tables in Module:Citation/CS1/Utilities
local identifiers; -- functions and tables in Module:Citation/CS1/Identifiers
local metadata; -- functions in Module:Citation/CS1/COinS
local cfg = {}; -- table of configuration tables that are defined in Module:Citation/CS1/Configuration
local whitelist = {}; -- table of tables listing valid template parameter names; defined in Module:Citation/CS1/Whitelist
--[[------------------< P A G E S C O P E V A R I A B L E S >---------------
declare variables here that have page-wide scope that are not brought in from
other modules; that are created here and used here
]]
local added_deprecated_cat; -- Boolean flag so that the category is added only once
local added_vanc_errs; -- Boolean flag so we only emit one Vancouver error / category
local added_generic_name_errs; -- Boolean flag so we only emit one generic name error / category and stop testing names once an error is encountered
local Frame; -- holds the module's frame table
local is_preview_mode; -- true when article is in preview mode; false when using 'Preview page with this template' (previewing the module)
local is_sandbox; -- true when using sandbox modules to render citation
--[[--------------------------< F I R S T _ S E T >------------------------------------------------------------
Locates and returns the first set value in a table of values where the order established in the table,
left-to-right (or top-to-bottom), is the order in which the values are evaluated. Returns nil if none are set.
This version replaces the original 'for _, val in pairs do' and a similar version that used ipairs. With the pairs
version the order of evaluation could not be guaranteed. With the ipairs version, a nil value would terminate
the for-loop before it reached the actual end of the list.
]]
local function first_set (list, count)
local i = 1;
while i <= count do -- loop through all items in list
if utilities.is_set( list[i] ) then
return list[i]; -- return the first set list member
end
i = i + 1; -- point to next
end
end
--[[--------------------------< A D D _ V A N C _ E R R O R >----------------------------------------------------
Adds a single Vancouver system error message to the template's output regardless of how many error actually exist.
To prevent duplication, added_vanc_errs is nil until an error message is emitted.
added_vanc_errs is a Boolean declared in page scope variables above
]]
local function add_vanc_error (source, position)
if added_vanc_errs then return end
added_vanc_errs = true; -- note that we've added this category
utilities.set_message ('err_vancouver', {source, position});
end
--[[--------------------------< I S _ S C H E M E >------------------------------------------------------------
does this thing that purports to be a URI scheme seem to be a valid scheme? The scheme is checked to see if it
is in agreement with http://tools.ietf.org/html/std66#section-3.1 which says:
Scheme names consist of a sequence of characters beginning with a
letter and followed by any combination of letters, digits, plus
("+"), period ("."), or hyphen ("-").
returns true if it does, else false
]]
local function is_scheme (scheme)
return scheme and scheme:match ('^%a[%a%d%+%.%-]*:'); -- true if scheme is set and matches the pattern
end
--[=[-------------------------< I S _ D O M A I N _ N A M E >--------------------------------------------------
Does this thing that purports to be a domain name seem to be a valid domain name?
Syntax defined here: http://tools.ietf.org/html/rfc1034#section-3.5
BNF defined here: https://tools.ietf.org/html/rfc4234
Single character names are generally reserved; see https://tools.ietf.org/html/draft-ietf-dnsind-iana-dns-01#page-15;
see also [[Single-letter second-level domain]]
list of TLDs: https://www.iana.org/domains/root/db
RFC 952 (modified by RFC 1123) requires the first and last character of a hostname to be a letter or a digit. Between
the first and last characters the name may use letters, digits, and the hyphen.
Also allowed are IPv4 addresses. IPv6 not supported
domain is expected to be stripped of any path so that the last character in the last character of the TLD. tld
is two or more alpha characters. Any preceding '//' (from splitting a URL with a scheme) will be stripped
here. Perhaps not necessary but retained in case it is necessary for IPv4 dot decimal.
There are several tests:
the first character of the whole domain name including subdomains must be a letter or a digit
internationalized domain name (ASCII characters with .xn-- ASCII Compatible Encoding (ACE) prefix xn-- in the TLD) see https://tools.ietf.org/html/rfc3490
single-letter/digit second-level domains in the .org, .cash, and .today TLDs
q, x, and z SL domains in the .com TLD
i and q SL domains in the .net TLD
single-letter SL domains in the ccTLDs (where the ccTLD is two letters)
two-character SL domains in gTLDs (where the gTLD is two or more letters)
three-plus-character SL domains in gTLDs (where the gTLD is two or more letters)
IPv4 dot-decimal address format; TLD not allowed
returns true if domain appears to be a proper name and TLD or IPv4 address, else false
]=]
local function is_domain_name (domain)
if not domain then
return false; -- if not set, abandon
end
domain = domain:gsub ('^//', ''); -- strip '//' from domain name if present; done here so we only have to do it once
if not domain:match ('^[%w]') then -- first character must be letter or digit
return false;
end
if domain:match ('^%a+:') then -- hack to detect things that look like s:Page:Title where Page: is namespace at Wikisource
return false;
end
local patterns = { -- patterns that look like URLs
'%f[%w][%w][%w%-]+[%w]%.%a%a+$', -- three or more character hostname.hostname or hostname.tld
'%f[%w][%w][%w%-]+[%w]%.xn%-%-[%w]+$', -- internationalized domain name with ACE prefix
'%f[%a][qxz]%.com$', -- assigned one character .com hostname (x.com times out 2015-12-10)
'%f[%a][iq]%.net$', -- assigned one character .net hostname (q.net registered but not active 2015-12-10)
'%f[%w][%w]%.%a%a$', -- one character hostname and ccTLD (2 chars)
'%f[%w][%w][%w]%.%a%a+$', -- two character hostname and TLD
'^%d%d?%d?%.%d%d?%d?%.%d%d?%d?%.%d%d?%d?', -- IPv4 address
}
for _, pattern in ipairs (patterns) do -- loop through the patterns list
if domain:match (pattern) then
return true; -- if a match then we think that this thing that purports to be a URL is a URL
end
end
for _, d in ipairs ({'cash', 'company', 'today', 'org'}) do -- look for single letter second level domain names for these top level domains
if domain:match ('%f[%w][%w]%.' .. d) then
return true
end
end
return false; -- no matches, we don't know what this thing is
end
--[[--------------------------< I S _ U R L >------------------------------------------------------------------
returns true if the scheme and domain parts of a URL appear to be a valid URL; else false.
This function is the last step in the validation process. This function is separate because there are cases that
are not covered by split_url(), for example is_parameter_ext_wikilink() which is looking for bracketted external
wikilinks.
]]
local function is_url (scheme, domain)
if utilities.is_set (scheme) then -- if scheme is set check it and domain
return is_scheme (scheme) and is_domain_name (domain);
else
return is_domain_name (domain); -- scheme not set when URL is protocol-relative
end
end
--[[--------------------------< S P L I T _ U R L >------------------------------------------------------------
Split a URL into a scheme, authority indicator, and domain.
First remove Fully Qualified Domain Name terminator (a dot following TLD) (if any) and any path(/), query(?) or fragment(#).
If protocol-relative URL, return nil scheme and domain else return nil for both scheme and domain.
When not protocol-relative, get scheme, authority indicator, and domain. If there is an authority indicator (one
or more '/' characters immediately following the scheme's colon), make sure that there are only 2.
Any URL that does not have news: scheme must have authority indicator (//). TODO: are there other common schemes
like news: that don't use authority indicator?
Strip off any port and path;
]]
local function split_url (url_str)
local scheme, authority, domain;
url_str = url_str:gsub ('([%a%d])%.?[/%?#].*$', '%1'); -- strip FQDN terminator and path(/), query(?), fragment (#) (the capture prevents false replacement of '//')
if url_str:match ('^//%S*') then -- if there is what appears to be a protocol-relative URL
domain = url_str:match ('^//(%S*)')
elseif url_str:match ('%S-:/*%S+') then -- if there is what appears to be a scheme, optional authority indicator, and domain name
scheme, authority, domain = url_str:match ('(%S-:)(/*)(%S+)'); -- extract the scheme, authority indicator, and domain portions
if utilities.is_set (authority) then
authority = authority:gsub ('//', '', 1); -- replace place 1 pair of '/' with nothing;
if utilities.is_set(authority) then -- if anything left (1 or 3+ '/' where authority should be) then
return scheme; -- return scheme only making domain nil which will cause an error message
end
else
if not scheme:match ('^news:') then -- except for news:..., MediaWiki won't link URLs that do not have authority indicator; TODO: a better way to do this test?
return scheme; -- return scheme only making domain nil which will cause an error message
end
end
domain = domain:gsub ('(%a):%d+', '%1'); -- strip port number if present
end
return scheme, domain;
end
--[[--------------------------< L I N K _ P A R A M _ O K >---------------------------------------------------
checks the content of |title-link=, |series-link=, |author-link=, etc. for properly formatted content: no wikilinks, no URLs
Link parameters are to hold the title of a Wikipedia article, so none of the WP:TITLESPECIALCHARACTERS are allowed:
# < > [ ] | { } _
except the underscore which is used as a space in wiki URLs and # which is used for section links
returns false when the value contains any of these characters.
When there are no illegal characters, this function returns TRUE if value DOES NOT appear to be a valid URL (the
|<param>-link= parameter is ok); else false when value appears to be a valid URL (the |<param>-link= parameter is NOT ok).
]]
local function link_param_ok (value)
local scheme, domain;
if value:find ('[<>%[%]|{}]') then -- if any prohibited characters
return false;
end
scheme, domain = split_url (value); -- get scheme or nil and domain or nil from URL;
return not is_url (scheme, domain); -- return true if value DOES NOT appear to be a valid URL
end
--[[--------------------------< L I N K _ T I T L E _ O K >---------------------------------------------------
Use link_param_ok() to validate |<param>-link= value and its matching |<title>= value.
|<title>= may be wiki-linked but not when |<param>-link= has a value. This function emits an error message when
that condition exists
check <link> for inter-language interwiki-link prefix. prefix must be a MediaWiki-recognized language
code and must begin with a colon.
]]
local function link_title_ok (link, lorig, title, torig)
local orig;
if utilities.is_set (link) then -- don't bother if <param>-link doesn't have a value
if not link_param_ok (link) then -- check |<param>-link= markup
orig = lorig; -- identify the failing link parameter
elseif title:find ('%[%[') then -- check |title= for wikilink markup
orig = torig; -- identify the failing |title= parameter
elseif link:match ('^%a+:') then -- if the link is what looks like an interwiki
local prefix = link:match ('^(%a+):'):lower(); -- get the interwiki prefix
if cfg.inter_wiki_map[prefix] then -- if prefix is in the map, must have preceding colon
orig = lorig; -- flag as error
end
end
end
if utilities.is_set (orig) then
link = ''; -- unset
utilities.set_message ('err_bad_paramlink', orig); -- URL or wikilink in |title= with |title-link=;
end
return link; -- link if ok, empty string else
end
--[[--------------------------< C H E C K _ U R L >------------------------------------------------------------
Determines whether a URL string appears to be valid.
First we test for space characters. If any are found, return false. Then split the URL into scheme and domain
portions, or for protocol-relative (//example.com) URLs, just the domain. Use is_url() to validate the two
portions of the URL. If both are valid, or for protocol-relative if domain is valid, return true, else false.
Because it is different from a standard URL, and because this module used external_link() to make external links
that work for standard and news: links, we validate newsgroup names here. The specification for a newsgroup name
is at https://tools.ietf.org/html/rfc5536#section-3.1.4
]]
local function check_url( url_str )
if nil == url_str:match ("^%S+$") then -- if there are any spaces in |url=value it can't be a proper URL
return false;
end
local scheme, domain;
scheme, domain = split_url (url_str); -- get scheme or nil and domain or nil from URL;
if 'news:' == scheme then -- special case for newsgroups
return domain:match('^[%a%d%+%-_]+%.[%a%d%+%-_%.]*[%a%d%+%-_]$');
end
return is_url (scheme, domain); -- return true if value appears to be a valid URL
end
--[=[-------------------------< I S _ P A R A M E T E R _ E X T _ W I K I L I N K >----------------------------
Return true if a parameter value has a string that begins and ends with square brackets [ and ] and the first
non-space characters following the opening bracket appear to be a URL. The test will also find external wikilinks
that use protocol-relative URLs. Also finds bare URLs.
The frontier pattern prevents a match on interwiki-links which are similar to scheme:path URLs. The tests that
find bracketed URLs are required because the parameters that call this test (currently |title=, |chapter=, |work=,
and |publisher=) may have wikilinks and there are articles or redirects like '//Hus' so, while uncommon, |title=[[//Hus]]
is possible as might be [[en://Hus]].
]=]
local function is_parameter_ext_wikilink (value)
local scheme, domain;
if value:match ('%f[%[]%[%a%S*:%S+.*%]') then -- if ext. wikilink with scheme and domain: [xxxx://yyyyy.zzz]
scheme, domain = split_url (value:match ('%f[%[]%[(%a%S*:%S+).*%]'));
elseif value:match ('%f[%[]%[//%S+.*%]') then -- if protocol-relative ext. wikilink: [//yyyyy.zzz]
scheme, domain = split_url (value:match ('%f[%[]%[(//%S+).*%]'));
elseif value:match ('%a%S*:%S+') then -- if bare URL with scheme; may have leading or trailing plain text
scheme, domain = split_url (value:match ('(%a%S*:%S+)'));
elseif value:match ('//%S+') then -- if protocol-relative bare URL: //yyyyy.zzz; may have leading or trailing plain text
scheme, domain = split_url (value:match ('(//%S+)')); -- what is left should be the domain
else
return false; -- didn't find anything that is obviously a URL
end
return is_url (scheme, domain); -- return true if value appears to be a valid URL
end
--[[-------------------------< C H E C K _ F O R _ U R L >-----------------------------------------------------
loop through a list of parameters and their values. Look at the value and if it has an external link, emit an error message.
]]
local function check_for_url (parameter_list, error_list)
for k, v in pairs (parameter_list) do -- for each parameter in the list
if is_parameter_ext_wikilink (v) then -- look at the value; if there is a URL add an error message
table.insert (error_list, utilities.wrap_style ('parameter', k));
end
end
end
--[[--------------------------< S A F E _ F O R _ U R L >------------------------------------------------------
Escape sequences for content that will be used for URL descriptions
]]
local function safe_for_url( str )
if str:match( "%[%[.-%]%]" ) ~= nil then
utilities.set_message ('err_wikilink_in_url', {});
end
return str:gsub( '[%[%]\n]', {
['['] = '[',
[']'] = ']',
['\n'] = ' ' } );
end
--[[--------------------------< E X T E R N A L _ L I N K >----------------------------------------------------
Format an external link with error checking
]]
local function external_link (URL, label, source, access)
local err_msg = '';
local domain;
local path;
local base_url;
if not utilities.is_set (label) then
label = URL;
if utilities.is_set (source) then
utilities.set_message ('err_bare_url_missing_title', {utilities.wrap_style ('parameter', source)});
else
error (cfg.messages["bare_url_no_origin"]);
end
end
if not check_url (URL) then
utilities.set_message ('err_bad_url', {utilities.wrap_style ('parameter', source)});
end
domain, path = URL:match ('^([/%.%-%+:%a%d]+)([/%?#].*)$'); -- split the URL into scheme plus domain and path
if path then -- if there is a path portion
path = path:gsub ('[%[%]]', {['['] = '%5b', [']'] = '%5d'}); -- replace '[' and ']' with their percent-encoded values
URL = table.concat ({domain, path}); -- and reassemble
end
base_url = table.concat ({ "[", URL, " ", safe_for_url (label), "]" }); -- assemble a wiki-markup URL
if utilities.is_set (access) then -- access level (subscription, registration, limited)
base_url = utilities.substitute (cfg.presentation['ext-link-access-signal'], {cfg.presentation[access].class, cfg.presentation[access].title, base_url}); -- add the appropriate icon
end
return base_url;
end
--[[--------------------------< D E P R E C A T E D _ P A R A M E T E R >--------------------------------------
Categorize and emit an error message when the citation contains one or more deprecated parameters. The function includes the
offending parameter name to the error message. Only one error message is emitted regardless of the number of deprecated
parameters in the citation.
added_deprecated_cat is a Boolean declared in page scope variables above
]]
local function deprecated_parameter(name)
if not added_deprecated_cat then
added_deprecated_cat = true; -- note that we've added this category
utilities.set_message ('err_deprecated_params', {name}); -- add error message
end
end
--[=[-------------------------< K E R N _ Q U O T E S >--------------------------------------------------------
Apply kerning to open the space between the quote mark provided by the module and a leading or trailing quote
mark contained in a |title= or |chapter= parameter's value.
This function will positive kern either single or double quotes:
"'Unkerned title with leading and trailing single quote marks'"
" 'Kerned title with leading and trailing single quote marks' " (in real life the kerning isn't as wide as this example)
Double single quotes (italic or bold wiki-markup) are not kerned.
Replaces Unicode quote marks in plain text or in the label portion of a [[L|D]] style wikilink with typewriter
quote marks regardless of the need for kerning. Unicode quote marks are not replaced in simple [[D]] wikilinks.
Call this function for chapter titles, for website titles, etc.; not for book titles.
]=]
local function kern_quotes (str)
local cap = '';
local wl_type, label, link;
wl_type, label, link = utilities.is_wikilink (str); -- wl_type is: 0, no wl (text in label variable); 1, [[D]]; 2, [[L|D]]
if 1 == wl_type then -- [[D]] simple wikilink with or without quote marks
if mw.ustring.match (str, '%[%[[\"“”\'‘’].+[\"“”\'‘’]%]%]') then -- leading and trailing quote marks
str = utilities.substitute (cfg.presentation['kern-left'], str);
str = utilities.substitute (cfg.presentation['kern-right'], str);
elseif mw.ustring.match (str, '%[%[[\"“”\'‘’].+%]%]') then -- leading quote marks
str = utilities.substitute (cfg.presentation['kern-left'], str);
elseif mw.ustring.match (str, '%[%[.+[\"“”\'‘’]%]%]') then -- trailing quote marks
str = utilities.substitute (cfg.presentation['kern-right'], str);
end
else -- plain text or [[L|D]]; text in label variable
label = mw.ustring.gsub (label, '[“”]', '\"'); -- replace “” (U+201C & U+201D) with " (typewriter double quote mark)
label = mw.ustring.gsub (label, '[‘’]', '\''); -- replace ‘’ (U+2018 & U+2019) with ' (typewriter single quote mark)
cap = mw.ustring.match (label, "^([\"\'][^\'].+)"); -- match leading double or single quote but not doubled single quotes (italic markup)
if utilities.is_set (cap) then
label = utilities.substitute (cfg.presentation['kern-left'], cap);
end
cap = mw.ustring.match (label, "^(.+[^\'][\"\'])$") -- match trailing double or single quote but not doubled single quotes (italic markup)
if utilities.is_set (cap) then
label = utilities.substitute (cfg.presentation['kern-right'], cap);
end
if 2 == wl_type then
str = utilities.make_wikilink (link, label); -- reassemble the wikilink
else
str = label;
end
end
return str;
end
--[[--------------------------< F O R M A T _ S C R I P T _ V A L U E >----------------------------------------
|script-title= holds title parameters that are not written in Latin-based scripts: Chinese, Japanese, Arabic, Hebrew, etc. These scripts should
not be italicized and may be written right-to-left. The value supplied by |script-title= is concatenated onto Title after Title has been wrapped
in italic markup.
Regardless of language, all values provided by |script-title= are wrapped in <bdi>...</bdi> tags to isolate RTL languages from the English left to right.
|script-title= provides a unique feature. The value in |script-title= may be prefixed with a two-character ISO 639-1 language code and a colon:
|script-title=ja:*** *** (where * represents a Japanese character)
Spaces between the two-character code and the colon and the colon and the first script character are allowed:
|script-title=ja : *** ***
|script-title=ja: *** ***
|script-title=ja :*** ***
Spaces preceding the prefix are allowed: |script-title = ja:*** ***
The prefix is checked for validity. If it is a valid ISO 639-1 language code, the lang attribute (lang="ja") is added to the <bdi> tag so that browsers can
know the language the tag contains. This may help the browser render the script more correctly. If the prefix is invalid, the lang attribute
is not added. At this time there is no error message for this condition.
Supports |script-title=, |script-chapter=, |script-<periodical>=
]]
local function format_script_value (script_value, script_param)
local lang=''; -- initialize to empty string
local name;
if script_value:match('^%l%l%l?%s*:') then -- if first 3 or 4 non-space characters are script language prefix
lang = script_value:match('^(%l%l%l?)%s*:%s*%S.*'); -- get the language prefix or nil if there is no script
if not utilities.is_set (lang) then
utilities.set_message ('err_script_parameter', {script_param, cfg.err_msg_supl['missing title part']}); -- prefix without 'title'; add error message
return ''; -- script_value was just the prefix so return empty string
end
-- if we get this far we have prefix and script
name = cfg.lang_code_remap[lang] or mw.language.fetchLanguageName( lang, cfg.this_wiki_code ); -- get language name so that we can use it to categorize
if utilities.is_set (name) then -- is prefix a proper ISO 639-1 language code?
script_value = script_value:gsub ('^%l+%s*:%s*', ''); -- strip prefix from script
-- is prefix one of these language codes?
if utilities.in_array (lang, cfg.script_lang_codes) then
utilities.add_prop_cat ('script', {name, lang})
else
utilities.set_message ('err_script_parameter', {script_param, cfg.err_msg_supl['unknown language code']}); -- unknown script-language; add error message
end
lang = ' lang="' .. lang .. '" '; -- convert prefix into a lang attribute
else
utilities.set_message ('err_script_parameter', {script_param, cfg.err_msg_supl['invalid language code']}); -- invalid language code; add error message
lang = ''; -- invalid so set lang to empty string
end
else
utilities.set_message ('err_script_parameter', {script_param, cfg.err_msg_supl['missing prefix']}); -- no language code prefix; add error message
end
script_value = utilities.substitute (cfg.presentation['bdi'], {lang, script_value}); -- isolate in case script is RTL
return script_value;
end
--[[--------------------------< S C R I P T _ C O N C A T E N A T E >------------------------------------------
Initially for |title= and |script-title=, this function concatenates those two parameter values after the script
value has been wrapped in <bdi> tags.
]]
local function script_concatenate (title, script, script_param)
if utilities.is_set (script) then
script = format_script_value (script, script_param); -- <bdi> tags, lang attribute, categorization, etc.; returns empty string on error
if utilities.is_set (script) then
title = title .. ' ' .. script; -- concatenate title and script title
end
end
return title;
end
--[[--------------------------< W R A P _ M S G >--------------------------------------------------------------
Applies additional message text to various parameter values. Supplied string is wrapped using a message_list
configuration taking one argument. Supports lower case text for {{citation}} templates. Additional text taken
from citation_config.messages - the reason this function is similar to but separate from wrap_style().
]]
local function wrap_msg (key, str, lower)
if not utilities.is_set ( str ) then
return "";
end
if true == lower then
local msg;
msg = cfg.messages[key]:lower(); -- set the message to lower case before
return utilities.substitute ( msg, str ); -- including template text
else
return utilities.substitute ( cfg.messages[key], str );
end
end
--[[----------------< W I K I S O U R C E _ U R L _ M A K E >-------------------
Makes a Wikisource URL from Wikisource interwiki-link. Returns the URL and appropriate
label; nil else.
str is the value assigned to |chapter= (or aliases) or |title= or |title-link=
]]
local function wikisource_url_make (str)
local wl_type, D, L;
local ws_url, ws_label;
local wikisource_prefix = table.concat ({'https://', cfg.this_wiki_code, '.wikisource.org/wiki/'});
wl_type, D, L = utilities.is_wikilink (str); -- wl_type is 0 (not a wikilink), 1 (simple wikilink), 2 (complex wikilink)
if 0 == wl_type then -- not a wikilink; might be from |title-link=
str = D:match ('^[Ww]ikisource:(.+)') or D:match ('^[Ss]:(.+)'); -- article title from interwiki link with long-form or short-form namespace
if utilities.is_set (str) then
ws_url = table.concat ({ -- build a Wikisource URL
wikisource_prefix, -- prefix
str, -- article title
});
ws_label = str; -- label for the URL
end
elseif 1 == wl_type then -- simple wikilink: [[Wikisource:ws article]]
str = D:match ('^[Ww]ikisource:(.+)') or D:match ('^[Ss]:(.+)'); -- article title from interwiki link with long-form or short-form namespace
if utilities.is_set (str) then
ws_url = table.concat ({ -- build a Wikisource URL
wikisource_prefix, -- prefix
str, -- article title
});
ws_label = str; -- label for the URL
end
elseif 2 == wl_type then -- non-so-simple wikilink: [[Wikisource:ws article|displayed text]] ([[L|D]])
str = L:match ('^[Ww]ikisource:(.+)') or L:match ('^[Ss]:(.+)'); -- article title from interwiki link with long-form or short-form namespace
if utilities.is_set (str) then
ws_label = D; -- get ws article name from display portion of interwiki link
ws_url = table.concat ({ -- build a Wikisource URL
wikisource_prefix, -- prefix
str, -- article title without namespace from link portion of wikilink
});
end
end
if ws_url then
ws_url = mw.uri.encode (ws_url, 'WIKI'); -- make a usable URL
ws_url = ws_url:gsub ('%%23', '#'); -- undo percent-encoding of fragment marker
end
return ws_url, ws_label, L or D; -- return proper URL or nil and a label or nil
end
--[[----------------< F O R M A T _ P E R I O D I C A L >-----------------------
Format the three periodical parameters: |script-<periodical>=, |<periodical>=,
and |trans-<periodical>= into a single Periodical meta-parameter.
]]
local function format_periodical (script_periodical, script_periodical_source, periodical, trans_periodical)
if not utilities.is_set (periodical) then
periodical = ''; -- to be safe for concatenation
else
periodical = utilities.wrap_style ('italic-title', periodical); -- style
end
periodical = script_concatenate (periodical, script_periodical, script_periodical_source); -- <bdi> tags, lang attribute, categorization, etc.; must be done after title is wrapped
if utilities.is_set (trans_periodical) then
trans_periodical = utilities.wrap_style ('trans-italic-title', trans_periodical);
if utilities.is_set (periodical) then
periodical = periodical .. ' ' .. trans_periodical;
else -- here when trans-periodical without periodical or script-periodical
periodical = trans_periodical;
utilities.set_message ('err_trans_missing_title', {'periodical'});
end
end
return periodical;
end
--[[------------------< F O R M A T _ C H A P T E R _ T I T L E >---------------
Format the four chapter parameters: |script-chapter=, |chapter=, |trans-chapter=,
and |chapter-url= into a single chapter meta- parameter (chapter_url_source used
for error messages).
]]
local function format_chapter_title (script_chapter, script_chapter_source, chapter, chapter_source, trans_chapter, trans_chapter_source, chapter_url, chapter_url_source, no_quotes, access)
local ws_url, ws_label, L = wikisource_url_make (chapter); -- make a wikisource URL and label from a wikisource interwiki link
if ws_url then
ws_label = ws_label:gsub ('_', ' '); -- replace underscore separators with space characters
chapter = ws_label;
end
if not utilities.is_set (chapter) then
chapter = ''; -- to be safe for concatenation
else
if false == no_quotes then
chapter = kern_quotes (chapter); -- if necessary, separate chapter title's leading and trailing quote marks from module provided quote marks
chapter = utilities.wrap_style ('quoted-title', chapter);
end
end
chapter = script_concatenate (chapter, script_chapter, script_chapter_source); -- <bdi> tags, lang attribute, categorization, etc.; must be done after title is wrapped
if utilities.is_set (chapter_url) then
chapter = external_link (chapter_url, chapter, chapter_url_source, access); -- adds bare_url_missing_title error if appropriate
elseif ws_url then
chapter = external_link (ws_url, chapter .. ' ', 'ws link in chapter'); -- adds bare_url_missing_title error if appropriate; space char to move icon away from chap text; TODO: better way to do this?
chapter = utilities.substitute (cfg.presentation['interwiki-icon'], {cfg.presentation['class-wikisource'], L, chapter});
end
if utilities.is_set (trans_chapter) then
trans_chapter = utilities.wrap_style ('trans-quoted-title', trans_chapter);
if utilities.is_set (chapter) then
chapter = chapter .. ' ' .. trans_chapter;
else -- here when trans_chapter without chapter or script-chapter
chapter = trans_chapter;
chapter_source = trans_chapter_source:match ('trans%-?(.+)'); -- when no chapter, get matching name from trans-<param>
utilities.set_message ('err_trans_missing_title', {chapter_source});
end
end
return chapter;
end
--[[----------------< H A S _ I N V I S I B L E _ C H A R S >-------------------
This function searches a parameter's value for non-printable or invisible characters.
The search stops at the first match.
This function will detect the visible replacement character when it is part of the Wikisource.
Detects but ignores nowiki and math stripmarkers. Also detects other named stripmarkers
(gallery, math, pre, ref) and identifies them with a slightly different error message.
See also coins_cleanup().
Output of this function is an error message that identifies the character or the
Unicode group, or the stripmarker that was detected along with its position (or,
for multi-byte characters, the position of its first byte) in the parameter value.
]]
local function has_invisible_chars (param, v)
local position = ''; -- position of invisible char or starting position of stripmarker
local capture; -- used by stripmarker detection to hold name of the stripmarker
local stripmarker; -- boolean set true when a stripmarker is found
capture = string.match (v, '[%w%p ]*'); -- test for values that are simple ASCII text and bypass other tests if true
if capture == v then -- if same there are no Unicode characters
return;
end
for _, invisible_char in ipairs (cfg.invisible_chars) do
local char_name = invisible_char[1]; -- the character or group name
local pattern = invisible_char[2]; -- the pattern used to find it
position, _, capture = mw.ustring.find (v, pattern); -- see if the parameter value contains characters that match the pattern
if position and (cfg.invisible_defs.zwj == capture) then -- if we found a zero-width joiner character
if mw.ustring.find (v, cfg.indic_script) then -- it's ok if one of the Indic scripts
position = nil; -- unset position
elseif cfg.emoji[mw.ustring.codepoint (v, position+1)] then -- is zwj followed by a character listed in emoji{}?
position = nil; -- unset position
end
end
if position then
if 'nowiki' == capture or 'math' == capture or -- nowiki and math stripmarkers (not an error condition)
('templatestyles' == capture and utilities.in_array (param, {'id', 'quote'})) then -- templatestyles stripmarker allowed in these parameters
stripmarker = true; -- set a flag
elseif true == stripmarker and cfg.invisible_defs.del == capture then -- because stripmakers begin and end with the delete char, assume that we've found one end of a stripmarker
position = nil; -- unset
else
local err_msg;
if capture and not (cfg.invisible_defs.del == capture or cfg.invisible_defs.zwj == capture) then
err_msg = capture .. ' ' .. char_name;
else
err_msg = char_name .. ' ' .. 'character';
end
utilities.set_message ('err_invisible_char', {err_msg, utilities.wrap_style ('parameter', param), position}); -- add error message
return; -- and done with this parameter
end
end
end
end
--[[-------------------< A R G U M E N T _ W R A P P E R >----------------------
Argument wrapper. This function provides support for argument mapping defined
in the configuration file so that multiple names can be transparently aliased to
single internal variable.
]]
local function argument_wrapper ( args )
local origin = {};
return setmetatable({
ORIGIN = function ( self, k )
local dummy = self[k]; -- force the variable to be loaded.
return origin[k];
end
},
{
__index = function ( tbl, k )
if origin[k] ~= nil then
return nil;
end
local args, list, v = args, cfg.aliases[k];
if type( list ) == 'table' then
v, origin[k] = utilities.select_one ( args, list, 'err_redundant_parameters' );
if origin[k] == nil then
origin[k] = ''; -- Empty string, not nil
end
elseif list ~= nil then
v, origin[k] = args[list], list;
else
-- maybe let through instead of raising an error?
-- v, origin[k] = args[k], k;
error( cfg.messages['unknown_argument_map'] .. ': ' .. k);
end
-- Empty strings, not nil;
if v == nil then
v = '';
origin[k] = '';
end
tbl = rawset( tbl, k, v );
return v;
end,
});
end
--[[--------------------------< N O W R A P _ D A T E >-------------------------
When date is YYYY-MM-DD format wrap in nowrap span: <span ...>YYYY-MM-DD</span>.
When date is DD MMMM YYYY or is MMMM DD, YYYY then wrap in nowrap span:
<span ...>DD MMMM</span> YYYY or <span ...>MMMM DD,</span> YYYY
DOES NOT yet support MMMM YYYY or any of the date ranges.
]]
local function nowrap_date (date)
local cap = '';
local cap2 = '';
if date:match("^%d%d%d%d%-%d%d%-%d%d$") then
date = utilities.substitute (cfg.presentation['nowrap1'], date);
elseif date:match("^%a+%s*%d%d?,%s+%d%d%d%d$") or date:match ("^%d%d?%s*%a+%s+%d%d%d%d$") then
cap, cap2 = string.match (date, "^(.*)%s+(%d%d%d%d)$");
date = utilities.substitute (cfg.presentation['nowrap2'], {cap, cap2});
end
return date;
end
--[[--------------------------< S E T _ T I T L E T Y P E >---------------------
This function sets default title types (equivalent to the citation including
|type=<default value>) for those templates that have defaults. Also handles the
special case where it is desirable to omit the title type from the rendered citation
(|type=none).
]]
local function set_titletype (cite_class, title_type)
if utilities.is_set (title_type) then
if 'none' == cfg.keywords_xlate[title_type] then
title_type = ''; -- if |type=none then type parameter not displayed
end
return title_type; -- if |type= has been set to any other value use that value
end
return cfg.title_types [cite_class] or ''; -- set template's default title type; else empty string for concatenation
end
--[[--------------------------< S A F E _ J O I N >-----------------------------
Joins a sequence of strings together while checking for duplicate separation characters.
]]
local function safe_join( tbl, duplicate_char )
local f = {}; -- create a function table appropriate to type of 'duplicate character'
if 1 == #duplicate_char then -- for single byte ASCII characters use the string library functions
f.gsub = string.gsub
f.match = string.match
f.sub = string.sub
else -- for multi-byte characters use the ustring library functions
f.gsub = mw.ustring.gsub
f.match = mw.ustring.match
f.sub = mw.ustring.sub
end
local str = ''; -- the output string
local comp = ''; -- what does 'comp' mean?
local end_chr = '';
local trim;
for _, value in ipairs( tbl ) do
if value == nil then value = ''; end
if str == '' then -- if output string is empty
str = value; -- assign value to it (first time through the loop)
elseif value ~= '' then
if value:sub(1, 1) == '<' then -- special case of values enclosed in spans and other markup.
comp = value:gsub( "%b<>", "" ); -- remove HTML markup (<span>string</span> -> string)
else
comp = value;
end
-- typically duplicate_char is sepc
if f.sub(comp, 1, 1) == duplicate_char then -- is first character same as duplicate_char? why test first character?
-- Because individual string segments often (always?) begin with terminal punct for the
-- preceding segment: 'First element' .. 'sepc next element' .. etc.?
trim = false;
end_chr = f.sub(str, -1, -1); -- get the last character of the output string
-- str = str .. "<HERE(enchr=" .. end_chr .. ")" -- debug stuff?
if end_chr == duplicate_char then -- if same as separator
str = f.sub(str, 1, -2); -- remove it
elseif end_chr == "'" then -- if it might be wiki-markup
if f.sub(str, -3, -1) == duplicate_char .. "''" then -- if last three chars of str are sepc''
str = f.sub(str, 1, -4) .. "''"; -- remove them and add back ''
elseif f.sub(str, -5, -1) == duplicate_char .. "]]''" then -- if last five chars of str are sepc]]''
trim = true; -- why? why do this and next differently from previous?
elseif f.sub(str, -4, -1) == duplicate_char .. "]''" then -- if last four chars of str are sepc]''
trim = true; -- same question
end
elseif end_chr == "]" then -- if it might be wiki-markup
if f.sub(str, -3, -1) == duplicate_char .. "]]" then -- if last three chars of str are sepc]] wikilink
trim = true;
elseif f.sub(str, -3, -1) == duplicate_char .. '"]' then -- if last three chars of str are sepc"] quoted external link
trim = true;
elseif f.sub(str, -2, -1) == duplicate_char .. "]" then -- if last two chars of str are sepc] external link
trim = true;
elseif f.sub(str, -4, -1) == duplicate_char .. "'']" then -- normal case when |url=something & |title=Title.
trim = true;
end
elseif end_chr == " " then -- if last char of output string is a space
if f.sub(str, -2, -1) == duplicate_char .. " " then -- if last two chars of str are <sepc><space>
str = f.sub(str, 1, -3); -- remove them both
end
end
if trim then
if value ~= comp then -- value does not equal comp when value contains HTML markup
local dup2 = duplicate_char;
if f.match(dup2, "%A" ) then dup2 = "%" .. dup2; end -- if duplicate_char not a letter then escape it
value = f.gsub(value, "(%b<>)" .. dup2, "%1", 1 ) -- remove duplicate_char if it follows HTML markup
else
value = f.sub(value, 2, -1 ); -- remove duplicate_char when it is first character
end
end
end
str = str .. value; -- add it to the output string
end
end
return str;
end
--[[--------------------------< I S _ S U F F I X >-----------------------------
returns true if suffix is properly formed Jr, Sr, or ordinal in the range 1–9.
Puncutation not allowed.
]]
local function is_suffix (suffix)
if utilities.in_array (suffix, {'Jr', 'Sr', 'Jnr', 'Snr', '1st', '2nd', '3rd'}) or suffix:match ('^%dth$') then
return true;
end
return false;
end
--[[--------------------< I S _ G O O D _ V A N C _ N A M E >-------------------
For Vancouver style, author/editor names are supposed to be rendered in Latin
(read ASCII) characters. When a name uses characters that contain diacritical
marks, those characters are to be converted to the corresponding Latin
character. When a name is written using a non-Latin alphabet or logogram, that
name is to be transliterated into Latin characters. The module doesn't do this
so editors may/must.
This test allows |first= and |last= names to contain any of the letters defined
in the four Unicode Latin character sets
[http://www.unicode.org/charts/PDF/U0000.pdf C0 Controls and Basic Latin] 0041–005A, 0061–007A
[http://www.unicode.org/charts/PDF/U0080.pdf C1 Controls and Latin-1 Supplement] 00C0–00D6, 00D8–00F6, 00F8–00FF
[http://www.unicode.org/charts/PDF/U0100.pdf Latin Extended-A] 0100–017F
[http://www.unicode.org/charts/PDF/U0180.pdf Latin Extended-B] 0180–01BF, 01C4–024F
|lastn= also allowed to contain hyphens, spaces, and apostrophes.
(http://www.ncbi.nlm.nih.gov/books/NBK7271/box/A35029/)
|firstn= also allowed to contain hyphens, spaces, apostrophes, and periods
This original test:
if nil == mw.ustring.find (last, "^[A-Za-zÀ-ÖØ-öø-ƿDŽ-ɏ%-%s%']*$")
or nil == mw.ustring.find (first, "^[A-Za-zÀ-ÖØ-öø-ƿDŽ-ɏ%-%s%'%.]+[2-6%a]*$") then
was written outside of the code editor and pasted here because the code editor
gets confused between character insertion point and cursor position. The test has
been rewritten to use decimal character escape sequence for the individual bytes
of the Unicode characters so that it is not necessary to use an external editor
to maintain this code.
\195\128-\195\150 – À-Ö (U+00C0–U+00D6 – C0 controls)
\195\152-\195\182 – Ø-ö (U+00D8-U+00F6 – C0 controls)
\195\184-\198\191 – ø-ƿ (U+00F8-U+01BF – C0 controls, Latin extended A & B)
\199\132-\201\143 – DŽ-ɏ (U+01C4-U+024F – Latin extended B)
]]
local function is_good_vanc_name (last, first, suffix, position)
if not suffix then
if first:find ('[,%s]') then -- when there is a space or comma, might be first name/initials + generational suffix
first = first:match ('(.-)[,%s]+'); -- get name/initials
suffix = first:match ('[,%s]+(.+)$'); -- get generational suffix
end
end
if utilities.is_set (suffix) then
if not is_suffix (suffix) then
add_vanc_error (cfg.err_msg_supl.suffix, position);
return false; -- not a name with an appropriate suffix
end
end
if nil == mw.ustring.find (last, "^[A-Za-z\195\128-\195\150\195\152-\195\182\195\184-\198\191\199\132-\201\143%-%s%']*$") or
nil == mw.ustring.find (first, "^[A-Za-z\195\128-\195\150\195\152-\195\182\195\184-\198\191\199\132-\201\143%-%s%'%.]*$") then
add_vanc_error (cfg.err_msg_supl['non-Latin char'], position);
return false; -- not a string of Latin characters; Vancouver requires Romanization
end;
return true;
end
--[[--------------------------< R E D U C E _ T O _ I N I T I A L S >------------------------------------------
Attempts to convert names to initials in support of |name-list-style=vanc.
Names in |firstn= may be separated by spaces or hyphens, or for initials, a period.
See http://www.ncbi.nlm.nih.gov/books/NBK7271/box/A35062/.
Vancouver style requires family rank designations (Jr, II, III, etc.) to be rendered
as Jr, 2nd, 3rd, etc. See http://www.ncbi.nlm.nih.gov/books/NBK7271/box/A35085/.
This code only accepts and understands generational suffix in the Vancouver format
because Roman numerals look like, and can be mistaken for, initials.
This function uses ustring functions because firstname initials may be any of the
Unicode Latin characters accepted by is_good_vanc_name ().
]]
local function reduce_to_initials(first, position)
local name, suffix = mw.ustring.match(first, "^(%u+) ([%dJS][%drndth]+)$");
if not name then -- if not initials and a suffix
name = mw.ustring.match(first, "^(%u+)$"); -- is it just initials?
end
if name then -- if first is initials with or without suffix
if 3 > mw.ustring.len (name) then -- if one or two initials
if suffix then -- if there is a suffix
if is_suffix (suffix) then -- is it legitimate?
return first; -- one or two initials and a valid suffix so nothing to do
else
add_vanc_error (cfg.err_msg_supl.suffix, position); -- one or two initials with invalid suffix so error message
return first; -- and return first unmolested
end
else
return first; -- one or two initials without suffix; nothing to do
end
end
end -- if here then name has 3 or more uppercase letters so treat them as a word
local initials, names = {}, {}; -- tables to hold name parts and initials
local i = 1; -- counter for number of initials
names = mw.text.split (first, '[%s,]+'); -- split into a table of names and possible suffix
while names[i] do -- loop through the table
if 1 < i and names[i]:match ('[%dJS][%drndth]+%.?$') then -- if not the first name, and looks like a suffix (may have trailing dot)
names[i] = names[i]:gsub ('%.', ''); -- remove terminal dot if present
if is_suffix (names[i]) then -- if a legitimate suffix
table.insert (initials, ' ' .. names[i]); -- add a separator space, insert at end of initials table
break; -- and done because suffix must fall at the end of a name
end -- no error message if not a suffix; possibly because of Romanization
end
if 3 > i then
table.insert (initials, mw.ustring.sub(names[i], 1, 1)); -- insert the initial at end of initials table
end
i = i + 1; -- bump the counter
end
return table.concat(initials) -- Vancouver format does not include spaces.
end
--[[--------------------------< L I S T _ P E O P L E >--------------------------
Formats a list of people (authors, contributors, editors, interviewers, translators)
names in the list will be linked when
|<name>-link= has a value
|<name>-mask- does NOT have a value; masked names are presumed to have been
rendered previously so should have been linked there
when |<name>-mask=0, the associated name is not rendered
]]
local function list_people (control, people, etal)
local sep;
local namesep;
local format = control.format;
local maximum = control.maximum;
local name_list = {};
if 'vanc' == format then -- Vancouver-like name styling?
sep = cfg.presentation['sep_nl_vanc']; -- name-list separator between names is a comma
namesep = cfg.presentation['sep_name_vanc']; -- last/first separator is a space
else
sep = cfg.presentation['sep_nl']; -- name-list separator between names is a semicolon
namesep = cfg.presentation['sep_name']; -- last/first separator is <comma><space>
end
if sep:sub (-1, -1) ~= " " then sep = sep .. " " end
if utilities.is_set (maximum) and maximum < 1 then return "", 0; end -- returned 0 is for EditorCount; not used for other names
for i, person in ipairs (people) do
if utilities.is_set (person.last) then
local mask = person.mask;
local one;
local sep_one = sep;
if utilities.is_set (maximum) and i > maximum then
etal = true;
break;
end
if mask then
local n = tonumber (mask); -- convert to a number if it can be converted; nil else
if n then
one = 0 ~= n and string.rep("—", n) or nil; -- make a string of (n > 0) mdashes, nil else, to replace name
person.link = nil; -- don't create link to name if name is replaces with mdash string or has been set nil
else
one = mask; -- replace name with mask text (must include name-list separator)
sep_one = " "; -- modify name-list separator
end
else
one = person.last; -- get surname
local first = person.first -- get given name
if utilities.is_set (first) then
if ("vanc" == format) then -- if Vancouver format
one = one:gsub ('%.', ''); -- remove periods from surnames (http://www.ncbi.nlm.nih.gov/books/NBK7271/box/A35029/)
if not person.corporate and is_good_vanc_name (one, first, nil, i) then -- and name is all Latin characters; corporate authors not tested
first = reduce_to_initials (first, i); -- attempt to convert first name(s) to initials
end
end
one = one .. namesep .. first;
end
end
if utilities.is_set (person.link) then
one = utilities.make_wikilink (person.link, one); -- link author/editor
end
if one then -- if <one> has a value (name, mdash replacement, or mask text replacement)
table.insert (name_list, one); -- add it to the list of names
table.insert (name_list, sep_one); -- add the proper name-list separator
end
end
end
local count = #name_list / 2; -- (number of names + number of separators) divided by 2
if 0 < count then
if 1 < count and not etal then
if 'amp' == format then
name_list[#name_list-2] = " & "; -- replace last separator with ampersand text
elseif 'and' == format then
if 2 == count then
name_list[#name_list-2] = cfg.presentation.sep_nl_and; -- replace last separator with 'and' text
else
name_list[#name_list-2] = cfg.presentation.sep_nl_end; -- replace last separator with '(sep) and' text
end
end
end
name_list[#name_list] = nil; -- erase the last separator
end
local result = table.concat (name_list); -- construct list
if etal and utilities.is_set (result) then -- etal may be set by |display-authors=etal but we might not have a last-first list
result = result .. sep .. ' ' .. cfg.messages['et al']; -- we've got a last-first list and etal so add et al.
end
return result, count; -- return name-list string and count of number of names (count used for editor names only)
end
--[[--------------------< M A K E _ C I T E R E F _ I D >-----------------------
Generates a CITEREF anchor ID if we have at least one name or a date. Otherwise
returns an empty string.
namelist is one of the contributor-, author-, or editor-name lists chosen in that
order. year is Year or anchor_year.
]]
local function make_citeref_id (namelist, year)
local names={}; -- a table for the one to four names and year
for i,v in ipairs (namelist) do -- loop through the list and take up to the first four last names
names[i] = v.last
if i == 4 then break end -- if four then done
end
table.insert (names, year); -- add the year at the end
local id = table.concat(names); -- concatenate names and year for CITEREF id
if utilities.is_set (id) then -- if concatenation is not an empty string
return "CITEREF" .. id; -- add the CITEREF portion
else
return ''; -- return an empty string; no reason to include CITEREF id in this citation
end
end
--[[--------------------------< C I T E _ C L A S S _A T T R I B U T E _M A K E >------------------------------
construct <cite> tag class attribute for this citation.
<cite_class> – config.CitationClass from calling template
<mode> – value from |mode= parameter
]]
local function cite_class_attribute_make (cite_class, mode)
local class_t = {};
table.insert (class_t, 'citation'); -- required for blue highlight
if 'citation' ~= cite_class then
table.insert (class_t, cite_class); -- identify this template for user css
table.insert (class_t, utilities.is_set (mode) and mode or 'cs1'); -- identify the citation style for user css or javascript
else
table.insert (class_t, utilities.is_set (mode) and mode or 'cs2'); -- identify the citation style for user css or javascript
end
for _, prop_key in ipairs (z.prop_keys_t) do
table.insert (class_t, prop_key); -- identify various properties for user css or javascript
end
return table.concat (class_t, ' '); -- make a big string and done
end
--[[---------------------< N A M E _ H A S _ E T A L >--------------------------
Evaluates the content of name parameters (author, editor, etc.) for variations on
the theme of et al. If found, the et al. is removed, a flag is set to true and
the function returns the modified name and the flag.
This function never sets the flag to false but returns its previous state because
it may have been set by previous passes through this function or by the associated
|display-<names>=etal parameter
]]
local function name_has_etal (name, etal, nocat, param)
if utilities.is_set (name) then -- name can be nil in which case just return
local patterns = cfg.et_al_patterns; -- get patterns from configuration
for _, pattern in ipairs (patterns) do -- loop through all of the patterns
if name:match (pattern) then -- if this 'et al' pattern is found in name
name = name:gsub (pattern, ''); -- remove the offending text
etal = true; -- set flag (may have been set previously here or by |display-<names>=etal)
if not nocat then -- no categorization for |vauthors=
utilities.set_message ('err_etal', {param}); -- and set an error if not added
end
end
end
end
return name, etal;
end
--[[---------------------< N A M E _ I S _ N U M E R I C >----------------------
Add maint cat when name parameter value does not contain letters. Does not catch
mixed alphanumeric names so |last=A. Green (1922-1987) does not get caught in the
current version of this test but |first=(1888) is caught.
returns nothing
]]
local function name_is_numeric (name, list_name)
if utilities.is_set (name) then
if mw.ustring.match (name, '^[%A]+$') then -- when name does not contain any letters
utilities.set_message ('maint_numeric_names', cfg.special_case_translation [list_name]); -- add a maint cat for this template
end
end
end
--[[-----------------< N A M E _ H A S _ M U L T _ N A M E S >------------------
Evaluates the content of last/surname (authors etc.) parameters for multiple names.
Multiple names are indicated if there is more than one comma or any "unescaped"
semicolons. Escaped semicolons are ones used as part of selected HTML entities.
If the condition is met, the function adds the multiple name maintenance category.
returns nothing
]]
local function name_has_mult_names (name, list_name)
local _, commas, semicolons, nbsps;
if utilities.is_set (name) then
_, commas = name:gsub (',', ''); -- count the number of commas
_, semicolons = name:gsub (';', ''); -- count the number of semicolons
-- nbsps probably should be its own separate count rather than merged in
-- some way with semicolons because Lua patterns do not support the
-- grouping operator that regex does, which means there is no way to add
-- more entities to escape except by adding more counts with the new
-- entities
_, nbsps = name:gsub (' ',''); -- count nbsps
-- There is exactly 1 semicolon per entity, so subtract nbsps
-- from semicolons to 'escape' them. If additional entities are added,
-- they also can be subtracted.
if 1 < commas or 0 < (semicolons - nbsps) then
utilities.set_message ('maint_mult_names', cfg.special_case_translation [list_name]); -- add a maint message
end
end
end
--[=[-------------------------< I S _ G E N E R I C >----------------------------------------------------------
Compares values assigned to various parameters according to the string provided as <item> in the function call.
<item> can have on of two values:
'generic_names' – for name-holding parameters: |last=, |first=, |editor-last=, etc
'generic_titles' – for |title=
There are two types of generic tests. The 'accept' tests look for a pattern that should not be rejected by the
'reject' test. For example,
|author=[[John Smith (author)|Smith, John]]
would be rejected by the 'author' reject test. But piped wikilinks with 'author' disambiguation should not be
rejected so the 'accept' test prevents that from happening. Accept tests are always performed before reject
tests.
Each of the 'accept' and 'reject' sequence tables hold tables for en.wiki (['en']) and local.wiki (['local'])
that each can hold a test sequence table The sequence table holds, at index [1], a test pattern, and, at index
[2], a boolean control value. The control value tells string.find() or mw.ustring.find() to do plain-text search (true)
or a pattern search (false). The intent of all this complexity is to make these searches as fast as possible so
that we don't run out of processing time on very large articles.
Returns
true when a reject test finds the pattern or string
false when an accept test finds the pattern or string
nil else
]=]
local function is_generic (item, value, wiki)
local test_val;
local str_lower = { -- use string.lower() for en.wiki (['en']) and use mw.ustring.lower() or local.wiki (['local'])
['en'] = string.lower,
['local'] = mw.ustring.lower,
}
local str_find = { -- use string.find() for en.wiki (['en']) and use mw.ustring.find() or local.wiki (['local'])
['en'] = string.find,
['local'] = mw.ustring.find,
}
local function test (val, test_t, wiki) -- local function to do the testing; <wiki> selects lower() and find() functions
val = test_t[2] and str_lower[wiki](value) or val; -- when <test_t[2]> set to 'true', plaintext search using lowercase value
return str_find[wiki] (val, test_t[1], 1, test_t[2]); -- return nil when not found or matched
end
local test_types_t = {'accept', 'reject'}; -- test accept patterns first, then reject patterns
local wikis_t = {'en', 'local'}; -- do tests for each of these keys; en.wiki first, local.wiki second
for _, test_type in ipairs (test_types_t) do -- for each test type
for _, generic_value in pairs (cfg.special_case_translation[item][test_type]) do -- spin through the list of generic value fragments to accept or reject
for _, wiki in ipairs (wikis_t) do
if generic_value[wiki] then
if test (value, generic_value[wiki], wiki) then -- go do the test
return ('reject' == test_type); -- param value rejected, return true; false else
end
end
end
end
end
end
--[[--------------------------< N A M E _ I S _ G E N E R I C >------------------------------------------------
calls is_generic() to determine if <name> is a 'generic name' listed in cfg.generic_names; <name_alias> is the
parameter name used in error messaging
]]
local function name_is_generic (name, name_alias)
if not added_generic_name_errs and is_generic ('generic_names', name) then
utilities.set_message ('err_generic_name', name_alias); -- set an error message
added_generic_name_errs = true;
end
end
--[[--------------------------< N A M E _ C H E C K S >--------------------------------------------------------
This function calls various name checking functions used to validate the content of the various name-holding parameters.
]]
local function name_checks (last, first, list_name, last_alias, first_alias)
local accept_name;
if utilities.is_set (last) then
last, accept_name = utilities.has_accept_as_written (last); -- remove accept-this-as-written markup when it wraps all of <last>
if not accept_name then -- <last> not wrapped in accept-as-written markup
name_has_mult_names (last, list_name); -- check for multiple names in the parameter (last only)
name_is_numeric (last, list_name); -- check for names that are composed of digits and punctuation
name_is_generic (last, last_alias); -- check for names found in the generic names list
end
end
if utilities.is_set (first) then
first, accept_name = utilities.has_accept_as_written (first); -- remove accept-this-as-written markup when it wraps all of <first>
if not accept_name then -- <first> not wrapped in accept-as-written markup
name_is_numeric (first, list_name); -- check for names that are composed of digits and punctuation
name_is_generic (first, first_alias); -- check for names found in the generic names list
end
local wl_type, D = utilities.is_wikilink (first);
if 0 ~= wl_type then
first = D;
utilities.set_message ('err_bad_paramlink', first_alias);
end
end
return last, first; -- done
end
--[[----------------------< E X T R A C T _ N A M E S >-------------------------
Gets name list from the input arguments
Searches through args in sequential order to find |lastn= and |firstn= parameters
(or their aliases), and their matching link and mask parameters. Stops searching
when both |lastn= and |firstn= are not found in args after two sequential attempts:
found |last1=, |last2=, and |last3= but doesn't find |last4= and |last5= then the
search is done.
This function emits an error message when there is a |firstn= without a matching
|lastn=. When there are 'holes' in the list of last names, |last1= and |last3=
are present but |last2= is missing, an error message is emitted. |lastn= is not
required to have a matching |firstn=.
When an author or editor parameter contains some form of 'et al.', the 'et al.'
is stripped from the parameter and a flag (etal) returned that will cause list_people()
to add the static 'et al.' text from Module:Citation/CS1/Configuration. This keeps
'et al.' out of the template's metadata. When this occurs, an error is emitted.
]]
local function extract_names(args, list_name)
local names = {}; -- table of names
local last; -- individual name components
local first;
local link;
local mask;
local i = 1; -- loop counter/indexer
local n = 1; -- output table indexer
local count = 0; -- used to count the number of times we haven't found a |last= (or alias for authors, |editor-last or alias for editors)
local etal = false; -- return value set to true when we find some form of et al. in an author parameter
local last_alias, first_alias, link_alias; -- selected parameter aliases used in error messaging
while true do
last, last_alias = utilities.select_one ( args, cfg.aliases[list_name .. '-Last'], 'err_redundant_parameters', i ); -- search through args for name components beginning at 1
first, first_alias = utilities.select_one ( args, cfg.aliases[list_name .. '-First'], 'err_redundant_parameters', i );
link, link_alias = utilities.select_one ( args, cfg.aliases[list_name .. '-Link'], 'err_redundant_parameters', i );
mask = utilities.select_one ( args, cfg.aliases[list_name .. '-Mask'], 'err_redundant_parameters', i );
last, etal = name_has_etal (last, etal, false, last_alias); -- find and remove variations on et al.
first, etal = name_has_etal (first, etal, false, first_alias); -- find and remove variations on et al.
last, first = name_checks (last, first, list_name, last_alias, first_alias); -- multiple names, extraneous annotation, etc. checks
if first and not last then -- if there is a firstn without a matching lastn
local alias = first_alias:find ('given', 1, true) and 'given' or 'first'; -- get first or given form of the alias
utilities.set_message ('err_first_missing_last', {
first_alias, -- param name of alias missing its mate
first_alias:gsub (alias, {['first'] = 'last', ['given'] = 'surname'}), -- make param name appropriate to the alias form
}); -- add this error message
elseif not first and not last then -- if both firstn and lastn aren't found, are we done?
count = count + 1; -- number of times we haven't found last and first
if 2 <= count then -- two missing names and we give up
break; -- normal exit or there is a two-name hole in the list; can't tell which
end
else -- we have last with or without a first
local result;
link = link_title_ok (link, link_alias, last, last_alias); -- check for improper wiki-markup
if first then
link = link_title_ok (link, link_alias, first, first_alias); -- check for improper wiki-markup
end
names[n] = {last = last, first = first, link = link, mask = mask, corporate = false}; -- add this name to our names list (corporate for |vauthors= only)
n = n + 1; -- point to next location in the names table
if 1 == count then -- if the previous name was missing
utilities.set_message ('err_missing_name', {list_name:match ("(%w+)List"):lower(), i - 1}); -- add this error message
end
count = 0; -- reset the counter, we're looking for two consecutive missing names
end
i = i + 1; -- point to next args location
end
return names, etal; -- all done, return our list of names and the etal flag
end
--[[--------------------------< N A M E _ T A G _ G E T >------------------------------------------------------
attempt to decode |language=<lang_param> and return language name and matching tag; nil else.
This function looks for:
<lang_param> as a tag in cfg.lang_code_remap{}
<lang_param> as a name in cfg.lang_name_remap{}
<lang_param> as a name in cfg.mw_languages_by_name_t
<lang_param> as a tag in cfg.mw_languages_by_tag_t
when those fail, presume that <lang_param> is an IETF-like tag that MediaWiki does not recognize. Strip all
script, region, variant, whatever subtags from <lang_param> to leave just a two or three character language tag
and look for the new <lang_param> in cfg.mw_languages_by_tag_t{}
on success, returns name (in properly capitalized form) and matching tag (in lowercase); on failure returns nil
]]
local function name_tag_get (lang_param)
local lang_param_lc = mw.ustring.lower (lang_param); -- use lowercase as an index into the various tables
local name;
local tag;
name = cfg.lang_code_remap[lang_param_lc]; -- assume <lang_param_lc> is a tag; attempt to get remapped language name
if name then -- when <name>, <lang_param> is a tag for a remapped language name
return name, lang_param_lc; -- so return <name> from remap and <lang_param_lc>
end
tag = lang_param_lc:match ('^(%a%a%a?)%-.*'); -- still assuming that <lang_param_lc> is a tag; strip script, region, variant subtags
name = cfg.lang_code_remap[tag]; -- attempt to get remapped language name with language subtag only
if name then -- when <name>, <tag> is a tag for a remapped language name
return name, tag; -- so return <name> from remap and <tag>
end
if cfg.lang_name_remap[lang_param_lc] then -- not a tag, assume <lang_param_lc> is a name; attempt to get remapped language tag
return cfg.lang_name_remap[lang_param_lc][1], cfg.lang_name_remap[lang_param_lc][2]; -- for this <lang_param_lc>, return a (possibly) new name and appropriate tag
end
tag = cfg.mw_languages_by_name_t[lang_param_lc]; -- assume that <lang_param_lc> is a language name; attempt to get its matching tag
if tag then
return cfg.mw_languages_by_tag_t[tag], tag; -- <lang_param_lc> is a name so return the name from the table and <tag>
end
name = cfg.mw_languages_by_tag_t[lang_param_lc]; -- assume that <lang_param_lc> is a tag; attempt to get its matching language name
if name then
return name, lang_param_lc; -- <lang_param_lc> is a tag so return it and <name>
end
tag = lang_param_lc:match ('^(%a%a%a?)%-.*'); -- is <lang_param_lc> an IETF-like tag that MediaWiki doesn't recognize? <tag> gets the language subtag; nil else
if tag then
name = cfg.mw_languages_by_tag_t[tag]; -- attempt to get a language name using the shortened <tag>
if name then
return name, tag; -- <lang_param_lc> is an unrecognized IETF-like tag so return <name> and language subtag
end
end
end
--[[-------------------< L A N G U A G E _ P A R A M E T E R >------------------
Gets language name from a provided two- or three-character ISO 639 code. If a code
is recognized by MediaWiki, use the returned name; if not, then use the value that
was provided with the language parameter.
When |language= contains a recognized language (either code or name), the page is
assigned to the category for that code: Category:Norwegian-language sources (no).
For valid three-character code languages, the page is assigned to the single category
for '639-2' codes: Category:CS1 ISO 639-2 language sources.
Languages that are the same as the local wiki are not categorized. MediaWiki does
not recognize three-character equivalents of two-character codes: code 'ar' is
recognized but code 'ara' is not.
This function supports multiple languages in the form |language=nb, French, th
where the language names or codes are separated from each other by commas with
optional space characters.
]]
local function language_parameter (lang)
local tag; -- some form of IETF-like language tag; language subtag with optional region, sript, vatiant, etc subtags
local lang_subtag; -- ve populates |language= with mostly unecessary region subtags the MediaWiki does not recognize; this is the base language subtag
local name; -- the language name
local language_list = {}; -- table of language names to be rendered
local names_t = {}; -- table made from the value assigned to |language=
local this_wiki_name = mw.language.fetchLanguageName (cfg.this_wiki_code, cfg.this_wiki_code); -- get this wiki's language name
names_t = mw.text.split (lang, '%s*,%s*'); -- names should be a comma separated list
for _, lang in ipairs (names_t) do -- reuse lang here because we don't yet know if lang is a language name or a language tag
name, tag = name_tag_get (lang); -- attempt to get name/tag pair for <lang>; <name> has proper capitalization; <tag> is lowercase
if utilities.is_set (tag) then
lang_subtag = tag:gsub ('^(%a%a%a?)%-.*', '%1'); -- for categorization, strip any IETF-like tags from language tag
if cfg.this_wiki_code ~= lang_subtag then -- when the language is not the same as this wiki's language
if 2 == lang_subtag:len() then -- and is a two-character tag
-- utilities.add_prop_cat ('foreign-lang-source', {name, lang_subtag}, lang_subtag); -- categorize it; tag appended to allow for multiple language categorization
utilities.add_prop_cat ('foreign-lang-source', {name, tag}, lang_subtag); -- categorize it; tag appended to allow for multiple language categorization
else -- or is a recognized language (but has a three-character tag)
utilities.add_prop_cat ('foreign-lang-source-2', {lang_subtag}, lang_subtag); -- categorize it differently TODO: support multiple three-character tag categories per cs1|2 template?
end
elseif cfg.local_lang_cat_enable then -- when the language and this wiki's language are the same and categorization is enabled
utilities.add_prop_cat ('local-lang-source', {name, lang_subtag}); -- categorize it
end
else
name = lang; -- return whatever <lang> has so that we show something
utilities.set_message ('maint_unknown_lang'); -- add maint category if not already added
end
table.insert (language_list, name);
name = ''; -- so we can reuse it
end
name = utilities.make_sep_list (#language_list, language_list);
if (1 == #language_list) and (lang_subtag == cfg.this_wiki_code) then -- when only one language, find lang name in this wiki lang name; for |language=en-us, 'English' in 'American English'
return ''; -- if one language and that language is this wiki's return an empty string (no annotation)
end
return (" " .. wrap_msg ('language', name)); -- otherwise wrap with '(in ...)'
--[[ TODO: should only return blank or name rather than full list
so we can clean up the bunched parenthetical elements Language, Type, Format
]]
end
--[[-----------------------< S E T _ C S _ S T Y L E >--------------------------
Gets the default CS style configuration for the given mode.
Returns default separator and either postscript as passed in or the default.
In CS1, the default postscript and separator are '.'.
In CS2, the default postscript is the empty string and the default separator is ','.
]]
local function set_cs_style (postscript, mode)
if utilities.is_set(postscript) then
-- emit a maintenance message if user postscript is the default cs1 postscript
-- we catch the opposite case for cs2 in set_style
if mode == 'cs1' and postscript == cfg.presentation['ps_' .. mode] then
utilities.set_message ('maint_postscript');
end
else
postscript = cfg.presentation['ps_' .. mode];
end
return cfg.presentation['sep_' .. mode], postscript;
end
--[[--------------------------< S E T _ S T Y L E >-----------------------------
Sets the separator and postscript styles. Checks the |mode= first and the
#invoke CitationClass second. Removes the postscript if postscript == none.
]]
local function set_style (mode, postscript, cite_class)
local sep;
if 'cs2' == mode then
sep, postscript = set_cs_style (postscript, 'cs2');
elseif 'cs1' == mode then
sep, postscript = set_cs_style (postscript, 'cs1');
elseif 'citation' == cite_class then
sep, postscript = set_cs_style (postscript, 'cs2');
else
sep, postscript = set_cs_style (postscript, 'cs1');
end
if cfg.keywords_xlate[postscript:lower()] == 'none' then
-- emit a maintenance message if user postscript is the default cs2 postscript
-- we catch the opposite case for cs1 in set_cs_style
if 'cs2' == mode or 'citation' == cite_class then
utilities.set_message ('maint_postscript');
end
postscript = '';
end
return sep, postscript
end
--[=[-------------------------< I S _ P D F >-----------------------------------
Determines if a URL has the file extension that is one of the PDF file extensions
used by [[MediaWiki:Common.css]] when applying the PDF icon to external links.
returns true if file extension is one of the recognized extensions, else false
]=]
local function is_pdf (url)
return url:match ('%.pdf$') or url:match ('%.PDF$') or
url:match ('%.pdf[%?#]') or url:match ('%.PDF[%?#]') or
url:match ('%.PDF#') or url:match ('%.pdf#');
end
--[[--------------------------< S T Y L E _ F O R M A T >-----------------------
Applies CSS style to |format=, |chapter-format=, etc. Also emits an error message
if the format parameter does not have a matching URL parameter. If the format parameter
is not set and the URL contains a file extension that is recognized as a PDF document
by MediaWiki's commons.css, this code will set the format parameter to (PDF) with
the appropriate styling.
]]
local function style_format (format, url, fmt_param, url_param)
if utilities.is_set (format) then
format = utilities.wrap_style ('format', format); -- add leading space, parentheses, resize
if not utilities.is_set (url) then
utilities.set_message ('err_format_missing_url', {fmt_param, url_param}); -- add an error message
end
elseif is_pdf (url) then -- format is not set so if URL is a PDF file then
format = utilities.wrap_style ('format', 'PDF'); -- set format to PDF
else
format = ''; -- empty string for concatenation
end
return format;
end
--[[---------------------< G E T _ D I S P L A Y _ N A M E S >------------------
Returns a number that defines the number of names displayed for author and editor
name lists and a Boolean flag to indicate when et al. should be appended to the name list.
When the value assigned to |display-xxxxors= is a number greater than or equal to zero,
return the number and the previous state of the 'etal' flag (false by default
but may have been set to true if the name list contains some variant of the text 'et al.').
When the value assigned to |display-xxxxors= is the keyword 'etal', return a number
that is one greater than the number of authors in the list and set the 'etal' flag true.
This will cause the list_people() to display all of the names in the name list followed by 'et al.'
In all other cases, returns nil and the previous state of the 'etal' flag.
inputs:
max: A['DisplayAuthors'] or A['DisplayEditors']; a number or some flavor of etal
count: #a or #e
list_name: 'authors' or 'editors'
etal: author_etal or editor_etal
]]
local function get_display_names (max, count, list_name, etal, param)
if utilities.is_set (max) then
if 'etal' == max:lower():gsub("[ '%.]", '') then -- the :gsub() portion makes 'etal' from a variety of 'et al.' spellings and stylings
max = count + 1; -- number of authors + 1 so display all author name plus et al.
etal = true; -- overrides value set by extract_names()
elseif max:match ('^%d+$') then -- if is a string of numbers
max = tonumber (max); -- make it a number
if max >= count then -- if |display-xxxxors= value greater than or equal to number of authors/editors
utilities.set_message ('err_disp_name', {param, max}); -- add error message
max = nil;
end
else -- not a valid keyword or number
utilities.set_message ('err_disp_name', {param, max}); -- add error message
max = nil; -- unset; as if |display-xxxxors= had not been set
end
end
return max, etal;
end
--[[----------< E X T R A _ T E X T _ I N _ P A G E _ C H E C K >---------------
Adds error if |page=, |pages=, |quote-page=, |quote-pages= has what appears to be
some form of p. or pp. abbreviation in the first characters of the parameter content.
check page for extraneous p, p., pp, pp., pg, pg. at start of parameter value:
good pattern: '^P[^%.P%l]' matches when page begins PX or P# but not Px
where x and X are letters and # is a digit
bad pattern: '^[Pp][PpGg]' matches when page begins pp, pP, Pp, PP, pg, pG, Pg, PG
]]
local function extra_text_in_page_check (val, name)
if not val:match (cfg.vol_iss_pg_patterns.good_ppattern) then
for _, pattern in ipairs (cfg.vol_iss_pg_patterns.bad_ppatterns) do -- spin through the selected sequence table of patterns
if val:match (pattern) then -- when a match, error so
utilities.set_message ('err_extra_text_pages', name); -- add error message
return; -- and done
end
end
end
end
--[[--------------------------< E X T R A _ T E X T _ I N _ V O L _ I S S _ C H E C K >------------------------
Adds error if |volume= or |issue= has what appears to be some form of redundant 'type' indicator.
For |volume=:
'V.', or 'Vol.' (with or without the dot) abbreviations or 'Volume' in the first characters of the parameter
content (all case insensitive). 'V' and 'v' (without the dot) are presumed to be roman numerals so
are allowed.
For |issue=:
'No.', 'I.', 'Iss.' (with or without the dot) abbreviations, or 'Issue' in the first characters of the
parameter content (all case insensitive).
Single character values ('v', 'i', 'n') allowed when not followed by separator character ('.', ':', '=', or
whitespace character) – param values are trimmed of whitespace by MediaWiki before delivered to the module.
<val> is |volume= or |issue= parameter value
<name> is |volume= or |issue= parameter name for error message
<selector> is 'v' for |volume=, 'i' for |issue=
sets error message on failure; returns nothing
]]
local function extra_text_in_vol_iss_check (val, name, selector)
if not utilities.is_set (val) then
return;
end
local patterns = 'v' == selector and cfg.vol_iss_pg_patterns.vpatterns or cfg.vol_iss_pg_patterns.ipatterns;
local handler = 'v' == selector and 'err_extra_text_volume' or 'err_extra_text_issue';
val = val:lower(); -- force parameter value to lower case
for _, pattern in ipairs (patterns) do -- spin through the selected sequence table of patterns
if val:match (pattern) then -- when a match, error so
utilities.set_message (handler, name); -- add error message
return; -- and done
end
end
end
--[=[-------------------------< G E T _ V _ N A M E _ T A B L E >----------------------------------------------
split apart a |vauthors= or |veditors= parameter. This function allows for corporate names, wrapped in doubled
parentheses to also have commas; in the old version of the code, the doubled parentheses were included in the
rendered citation and in the metadata. Individual author names may be wikilinked
|vauthors=Jones AB, [[E. B. White|White EB]], ((Black, Brown, and Co.))
]=]
local function get_v_name_table (vparam, output_table, output_link_table)
local name_table = mw.text.split(vparam, "%s*,%s*"); -- names are separated by commas
local wl_type, label, link; -- wl_type not used here; just a placeholder
local i = 1;
while name_table[i] do
if name_table[i]:match ('^%(%(.*[^%)][^%)]$') then -- first segment of corporate with one or more commas; this segment has the opening doubled parentheses
local name = name_table[i];
i = i + 1; -- bump indexer to next segment
while name_table[i] do
name = name .. ', ' .. name_table[i]; -- concatenate with previous segments
if name_table[i]:match ('^.*%)%)$') then -- if this table member has the closing doubled parentheses
break; -- and done reassembling so
end
i = i + 1; -- bump indexer
end
table.insert (output_table, name); -- and add corporate name to the output table
table.insert (output_link_table, ''); -- no wikilink
else
wl_type, label, link = utilities.is_wikilink (name_table[i]); -- wl_type is: 0, no wl (text in label variable); 1, [[D]]; 2, [[L|D]]
table.insert (output_table, label); -- add this name
if 1 == wl_type then
table.insert (output_link_table, label); -- simple wikilink [[D]]
else
table.insert (output_link_table, link); -- no wikilink or [[L|D]]; add this link if there is one, else empty string
end
end
i = i + 1;
end
return output_table;
end
--[[--------------------------< P A R S E _ V A U T H O R S _ V E D I T O R S >--------------------------------
This function extracts author / editor names from |vauthors= or |veditors= and finds matching |xxxxor-maskn= and
|xxxxor-linkn= in args. It then returns a table of assembled names just as extract_names() does.
Author / editor names in |vauthors= or |veditors= must be in Vancouver system style. Corporate or institutional names
may sometimes be required and because such names will often fail the is_good_vanc_name() and other format compliance
tests, are wrapped in doubled parentheses ((corporate name)) to suppress the format tests.
Supports generational suffixes Jr, 2nd, 3rd, 4th–6th.
This function sets the Vancouver error when a required comma is missing and when there is a space between an author's initials.
]]
local function parse_vauthors_veditors (args, vparam, list_name)
local names = {}; -- table of names assembled from |vauthors=, |author-maskn=, |author-linkn=
local v_name_table = {};
local v_link_table = {}; -- when name is wikilinked, targets go in this table
local etal = false; -- return value set to true when we find some form of et al. vauthors parameter
local last, first, link, mask, suffix;
local corporate = false;
vparam, etal = name_has_etal (vparam, etal, true); -- find and remove variations on et al. do not categorize (do it here because et al. might have a period)
v_name_table = get_v_name_table (vparam, v_name_table, v_link_table); -- names are separated by commas
for i, v_name in ipairs(v_name_table) do
first = ''; -- set to empty string for concatenation and because it may have been set for previous author/editor
local accept_name;
v_name, accept_name = utilities.has_accept_as_written (v_name); -- remove accept-this-as-written markup when it wraps all of <v_name>
if accept_name then
last = v_name;
corporate = true; -- flag used in list_people()
elseif string.find(v_name, "%s") then
if v_name:find('[;%.]') then -- look for commonly occurring punctuation characters;
add_vanc_error (cfg.err_msg_supl.punctuation, i);
end
local lastfirstTable = {}
lastfirstTable = mw.text.split(v_name, "%s+")
first = table.remove(lastfirstTable); -- removes and returns value of last element in table which should be initials or generational suffix
if not mw.ustring.match (first, '^%u+$') then -- mw.ustring here so that later we will catch non-Latin characters
suffix = first; -- not initials so assume that whatever we got is a generational suffix
first = table.remove(lastfirstTable); -- get what should be the initials from the table
end
last = table.concat(lastfirstTable, ' ') -- returns a string that is the concatenation of all other names that are not initials and generational suffix
if not utilities.is_set (last) then
first = ''; -- unset
last = v_name; -- last empty because something wrong with first
add_vanc_error (cfg.err_msg_supl.name, i);
end
if mw.ustring.match (last, '%a+%s+%u+%s+%a+') then
add_vanc_error (cfg.err_msg_supl['missing comma'], i); -- matches last II last; the case when a comma is missing
end
if mw.ustring.match (v_name, ' %u %u$') then -- this test is in the wrong place TODO: move or replace with a more appropriate test
add_vanc_error (cfg.err_msg_supl.initials, i); -- matches a space between two initials
end
else
last = v_name; -- last name or single corporate name? Doesn't support multiword corporate names? do we need this?
end
if utilities.is_set (first) then
if not mw.ustring.match (first, "^%u?%u$") then -- first shall contain one or two upper-case letters, nothing else
add_vanc_error (cfg.err_msg_supl.initials, i); -- too many initials; mixed case initials (which may be ok Romanization); hyphenated initials
end
is_good_vanc_name (last, first, suffix, i); -- check first and last before restoring the suffix which may have a non-Latin digit
if utilities.is_set (suffix) then
first = first .. ' ' .. suffix; -- if there was a suffix concatenate with the initials
suffix = ''; -- unset so we don't add this suffix to all subsequent names
end
else
if not corporate then
is_good_vanc_name (last, '', nil, i);
end
end
link = utilities.select_one ( args, cfg.aliases[list_name .. '-Link'], 'err_redundant_parameters', i ) or v_link_table[i];
mask = utilities.select_one ( args, cfg.aliases[list_name .. '-Mask'], 'err_redundant_parameters', i );
names[i] = {last = last, first = first, link = link, mask = mask, corporate = corporate}; -- add this assembled name to our names list
end
return names, etal; -- all done, return our list of names
end
--[[--------------------------< S E L E C T _ A U T H O R _ E D I T O R _ S O U R C E >------------------------
Select one of |authors=, |authorn= / |lastn / firstn=, or |vauthors= as the source of the author name list or
select one of |editorn= / editor-lastn= / |editor-firstn= or |veditors= as the source of the editor name list.
Only one of these appropriate three will be used. The hierarchy is: |authorn= (and aliases) highest and |authors= lowest;
|editorn= (and aliases) highest and |veditors= lowest (support for |editors= withdrawn)
When looking for |authorn= / |editorn= parameters, test |xxxxor1= and |xxxxor2= (and all of their aliases); stops after the second
test which mimicks the test used in extract_names() when looking for a hole in the author name list. There may be a better
way to do this, I just haven't discovered what that way is.
Emits an error message when more than one xxxxor name source is provided.
In this function, vxxxxors = vauthors or veditors; xxxxors = authors as appropriate.
]]
local function select_author_editor_source (vxxxxors, xxxxors, args, list_name)
local lastfirst = false;
if utilities.select_one ( args, cfg.aliases[list_name .. '-Last'], 'none', 1 ) or -- do this twice in case we have a |first1= without a |last1=; this ...
utilities.select_one ( args, cfg.aliases[list_name .. '-First'], 'none', 1 ) or -- ... also catches the case where |first= is used with |vauthors=
utilities.select_one ( args, cfg.aliases[list_name .. '-Last'], 'none', 2 ) or
utilities.select_one ( args, cfg.aliases[list_name .. '-First'], 'none', 2 ) then
lastfirst = true;
end
if (utilities.is_set (vxxxxors) and true == lastfirst) or -- these are the three error conditions
(utilities.is_set (vxxxxors) and utilities.is_set (xxxxors)) or
(true == lastfirst and utilities.is_set (xxxxors)) then
local err_name;
if 'AuthorList' == list_name then -- figure out which name should be used in error message
err_name = 'author';
else
err_name = 'editor';
end
utilities.set_message ('err_redundant_parameters', err_name .. '-name-list parameters'); -- add error message
end
if true == lastfirst then return 1 end; -- return a number indicating which author name source to use
if utilities.is_set (vxxxxors) then return 2 end;
if utilities.is_set (xxxxors) then return 3 end;
return 1; -- no authors so return 1; this allows missing author name test to run in case there is a first without last
end
--[[--------------------------< I S _ V A L I D _ P A R A M E T E R _ V A L U E >------------------------------
This function is used to validate a parameter's assigned value for those parameters that have only a limited number
of allowable values (yes, y, true, live, dead, etc.). When the parameter value has not been assigned a value (missing
or empty in the source template) the function returns the value specified by ret_val. If the parameter value is one
of the list of allowed values returns the translated value; else, emits an error message and returns the value
specified by ret_val.
TODO: explain <invert>
]]
local function is_valid_parameter_value (value, name, possible, ret_val, invert)
if not utilities.is_set (value) then
return ret_val; -- an empty parameter is ok
end
if (not invert and utilities.in_array (value, possible)) then -- normal; <value> is in <possible> table
return cfg.keywords_xlate[value]; -- return translation of parameter keyword
elseif invert and not utilities.in_array (value, possible) then -- invert; <value> is not in <possible> table
return value; -- return <value> as it is
else
utilities.set_message ('err_invalid_param_val', {name, value}); -- not an allowed value so add error message
return ret_val;
end
end
--[[--------------------------< T E R M I N A T E _ N A M E _ L I S T >----------------------------------------
This function terminates a name list (author, contributor, editor) with a separator character (sepc) and a space
when the last character is not a sepc character or when the last three characters are not sepc followed by two
closing square brackets (close of a wikilink). When either of these is true, the name_list is terminated with a
single space character.
]]
local function terminate_name_list (name_list, sepc)
if (string.sub (name_list, -3, -1) == sepc .. '. ') then -- if already properly terminated
return name_list; -- just return the name list
elseif (string.sub (name_list, -1, -1) == sepc) or (string.sub (name_list, -3, -1) == sepc .. ']]') then -- if last name in list ends with sepc char
return name_list .. " "; -- don't add another
else
return name_list .. sepc .. ' '; -- otherwise terminate the name list
end
end
--[[-------------------------< F O R M A T _ V O L U M E _ I S S U E >----------------------------------------
returns the concatenation of the formatted volume and issue parameters as a single string; or formatted volume
or formatted issue, or an empty string if neither are set.
]]
local function format_volume_issue (volume, issue, cite_class, origin, sepc, lower)
if not utilities.is_set (volume) and not utilities.is_set (issue) then
return '';
end
-- same condition as in format_pages_sheets()
local is_journal = 'journal' == cite_class or (utilities.in_array (cite_class, {'citation', 'map', 'interview'}) and 'journal' == origin);
local is_numeric_vol = volume and (volume:match ('^[MDCLXVI]+$') or volume:match ('^%d+$')); -- is only uppercase roman numerals or only digits?
local is_long_vol = volume and (4 < mw.ustring.len(volume)); -- is |volume= value longer than 4 characters?
if volume and (not is_numeric_vol and is_long_vol) then -- when not all digits or Roman numerals, is |volume= longer than 4 characters?
utilities.add_prop_cat ('long-vol'); -- yes, add properties cat
end
if is_journal then -- journal-style formatting
local vol = '';
if utilities.is_set (volume) then
if is_numeric_vol then -- |volume= value all digits or all uppercase Roman numerals?
vol = utilities.substitute (cfg.presentation['vol-bold'], {sepc, volume}); -- render in bold face
elseif is_long_vol then -- not all digits or Roman numerals; longer than 4 characters?
vol = utilities.substitute (cfg.messages['j-vol'], {sepc, utilities.hyphen_to_dash (volume)}); -- not bold
else -- four or fewer characters
vol = utilities.substitute (cfg.presentation['vol-bold'], {sepc, utilities.hyphen_to_dash (volume)}); -- bold
end
end
if utilities.is_set (issue) then
return vol .. utilities.substitute (cfg.messages['j-issue'], issue);
end
return vol;
end
if 'podcast' == cite_class and utilities.is_set (issue) then
return wrap_msg ('issue', {sepc, issue}, lower);
end
-- all other types of citation
if utilities.is_set (volume) and utilities.is_set (issue) then
return wrap_msg ('vol-no', {sepc, utilities.hyphen_to_dash (volume), issue}, lower);
elseif utilities.is_set (volume) then
return wrap_msg ('vol', {sepc, utilities.hyphen_to_dash (volume)}, lower);
else
return wrap_msg ('issue', {sepc, issue}, lower);
end
end
--[[-------------------------< F O R M A T _ P A G E S _ S H E E T S >-----------------------------------------
adds static text to one of |page(s)= or |sheet(s)= values and returns it with all of the others set to empty strings.
The return order is:
page, pages, sheet, sheets
Singular has priority over plural when both are provided.
]]
local function format_pages_sheets (page, pages, sheet, sheets, cite_class, origin, sepc, nopp, lower)
if 'map' == cite_class then -- only cite map supports sheet(s) as in-source locators
if utilities.is_set (sheet) then
if 'journal' == origin then
return '', '', wrap_msg ('j-sheet', sheet, lower), '';
else
return '', '', wrap_msg ('sheet', {sepc, sheet}, lower), '';
end
elseif utilities.is_set (sheets) then
if 'journal' == origin then
return '', '', '', wrap_msg ('j-sheets', sheets, lower);
else
return '', '', '', wrap_msg ('sheets', {sepc, sheets}, lower);
end
end
end
local is_journal = 'journal' == cite_class or (utilities.in_array (cite_class, {'citation', 'map', 'interview'}) and 'journal' == origin);
if utilities.is_set (page) then
if is_journal then
return utilities.substitute (cfg.messages['j-page(s)'], page), '', '', '';
elseif not nopp then
return utilities.substitute (cfg.messages['p-prefix'], {sepc, page}), '', '', '';
else
return utilities.substitute (cfg.messages['nopp'], {sepc, page}), '', '', '';
end
elseif utilities.is_set (pages) then
if is_journal then
return utilities.substitute (cfg.messages['j-page(s)'], pages), '', '', '';
elseif tonumber(pages) ~= nil and not nopp then -- if pages is only digits, assume a single page number
return '', utilities.substitute (cfg.messages['p-prefix'], {sepc, pages}), '', '';
elseif not nopp then
return '', utilities.substitute (cfg.messages['pp-prefix'], {sepc, pages}), '', '';
else
return '', utilities.substitute (cfg.messages['nopp'], {sepc, pages}), '', '';
end
end
return '', '', '', ''; -- return empty strings
end
--[[--------------------------< I N S O U R C E _ L O C _ G E T >----------------------------------------------
returns one of the in-source locators: page, pages, or at.
If any of these are interwiki links to Wikisource, returns the label portion of the interwiki-link as plain text
for use in COinS. This COinS thing is done because here we convert an interwiki-link to an external link and
add an icon span around that; get_coins_pages() doesn't know about the span. TODO: should it?
TODO: add support for sheet and sheets?; streamline;
TODO: make it so that this function returns only one of the three as the single in-source (the return value assigned
to a new name)?
]]
local function insource_loc_get (page, page_orig, pages, pages_orig, at)
local ws_url, ws_label, coins_pages, L; -- for Wikisource interwiki-links; TODO: this corrupts page metadata (span remains in place after cleanup; fix there?)
if utilities.is_set (page) then
if utilities.is_set (pages) or utilities.is_set (at) then
pages = ''; -- unset the others
at = '';
end
extra_text_in_page_check (page, page_orig); -- emit error message when |page= value begins with what looks like p., pp., etc.
ws_url, ws_label, L = wikisource_url_make (page); -- make ws URL from |page= interwiki link; link portion L becomes tooltip label
if ws_url then
page = external_link (ws_url, ws_label .. ' ', 'ws link in page'); -- space char after label to move icon away from in-source text; TODO: a better way to do this?
page = utilities.substitute (cfg.presentation['interwiki-icon'], {cfg.presentation['class-wikisource'], L, page});
coins_pages = ws_label;
end
elseif utilities.is_set (pages) then
if utilities.is_set (at) then
at = ''; -- unset
end
extra_text_in_page_check (pages, pages_orig); -- emit error message when |page= value begins with what looks like p., pp., etc.
ws_url, ws_label, L = wikisource_url_make (pages); -- make ws URL from |pages= interwiki link; link portion L becomes tooltip label
if ws_url then
pages = external_link (ws_url, ws_label .. ' ', 'ws link in pages'); -- space char after label to move icon away from in-source text; TODO: a better way to do this?
pages = utilities.substitute (cfg.presentation['interwiki-icon'], {cfg.presentation['class-wikisource'], L, pages});
coins_pages = ws_label;
end
elseif utilities.is_set (at) then
ws_url, ws_label, L = wikisource_url_make (at); -- make ws URL from |at= interwiki link; link portion L becomes tooltip label
if ws_url then
at = external_link (ws_url, ws_label .. ' ', 'ws link in at'); -- space char after label to move icon away from in-source text; TODO: a better way to do this?
at = utilities.substitute (cfg.presentation['interwiki-icon'], {cfg.presentation['class-wikisource'], L, at});
coins_pages = ws_label;
end
end
return page, pages, at, coins_pages;
end
--[[--------------------------< I S _ U N I Q U E _ A R C H I V E _ U R L >------------------------------------
add error message when |archive-url= value is same as |url= or chapter-url= (or alias...) value
]]
local function is_unique_archive_url (archive, url, c_url, source, date)
if utilities.is_set (archive) then
if archive == url or archive == c_url then
utilities.set_message ('err_bad_url', {utilities.wrap_style ('parameter', source)}); -- add error message
return '', ''; -- unset |archive-url= and |archive-date= because same as |url= or |chapter-url=
end
end
return archive, date;
end
--[=[-------------------------< A R C H I V E _ U R L _ C H E C K >--------------------------------------------
Check archive.org URLs to make sure they at least look like they are pointing at valid archives and not to the
save snapshot URL or to calendar pages. When the archive URL is 'https://web.archive.org/save/' (or http://...)
archive.org saves a snapshot of the target page in the URL. That is something that Wikipedia should not allow
unwitting readers to do.
When the archive.org URL does not have a complete timestamp, archive.org chooses a snapshot according to its own
algorithm or provides a calendar 'search' result. [[WP:ELNO]] discourages links to search results.
This function looks at the value assigned to |archive-url= and returns empty strings for |archive-url= and
|archive-date= and an error message when:
|archive-url= holds an archive.org save command URL
|archive-url= is an archive.org URL that does not have a complete timestamp (YYYYMMDDhhmmss 14 digits) in the
correct place
otherwise returns |archive-url= and |archive-date=
There are two mostly compatible archive.org URLs:
//web.archive.org/<timestamp>... -- the old form
//web.archive.org/web/<timestamp>... -- the new form
The old form does not support or map to the new form when it contains a display flag. There are four identified flags
('id_', 'js_', 'cs_', 'im_') but since archive.org ignores others following the same form (two letters and an underscore)
we don't check for these specific flags but we do check the form.
This function supports a preview mode. When the article is rendered in preview mode, this function may return a modified
archive URL:
for save command errors, return undated wildcard (/*/)
for timestamp errors when the timestamp has a wildcard, return the URL unmodified
for timestamp errors when the timestamp does not have a wildcard, return with timestamp limited to six digits plus wildcard (/yyyymm*/)
]=]
local function archive_url_check (url, date)
local err_msg = ''; -- start with the error message empty
local path, timestamp, flag; -- portions of the archive.org URL
if (not url:match('//web%.archive%.org/')) and (not url:match('//liveweb%.archive%.org/')) then -- also deprecated liveweb Wayback machine URL
return url, date; -- not an archive.org archive, return ArchiveURL and ArchiveDate
end
if url:match('//web%.archive%.org/save/') then -- if a save command URL, we don't want to allow saving of the target page
err_msg = cfg.err_msg_supl.save;
url = url:gsub ('(//web%.archive%.org)/save/', '%1/*/', 1); -- for preview mode: modify ArchiveURL
elseif url:match('//liveweb%.archive%.org/') then
err_msg = cfg.err_msg_supl.liveweb;
else
path, timestamp, flag = url:match('//web%.archive%.org/([^%d]*)(%d+)([^/]*)/'); -- split out some of the URL parts for evaluation
if not path then -- malformed in some way; pattern did not match
err_msg = cfg.err_msg_supl.timestamp;
elseif 14 ~= timestamp:len() then -- path and flag optional, must have 14-digit timestamp here
err_msg = cfg.err_msg_supl.timestamp;
if '*' ~= flag then
local replacement = timestamp:match ('^%d%d%d%d%d%d') or timestamp:match ('^%d%d%d%d'); -- get the first 6 (YYYYMM) or first 4 digits (YYYY)
if replacement then -- nil if there aren't at least 4 digits (year)
replacement = replacement .. string.rep ('0', 14 - replacement:len()); -- year or yearmo (4 or 6 digits) zero-fill to make 14-digit timestamp
url=url:gsub ('(//web%.archive%.org/[^%d]*)%d[^/]*', '%1' .. replacement .. '*', 1) -- for preview, modify ts to 14 digits plus splat for calendar display
end
end
elseif utilities.is_set (path) and 'web/' ~= path then -- older archive URLs do not have the extra 'web/' path element
err_msg = cfg.err_msg_supl.path;
elseif utilities.is_set (flag) and not utilities.is_set (path) then -- flag not allowed with the old form URL (without the 'web/' path element)
err_msg = cfg.err_msg_supl.flag;
elseif utilities.is_set (flag) and not flag:match ('%a%a_') then -- flag if present must be two alpha characters and underscore (requires 'web/' path element)
err_msg = cfg.err_msg_supl.flag;
else
return url, date; -- return ArchiveURL and ArchiveDate
end
end
-- if here, something not right so
utilities.set_message ('err_archive_url', {err_msg}); -- add error message and
if is_preview_mode then
return url, date; -- preview mode so return ArchiveURL and ArchiveDate
else
return '', ''; -- return empty strings for ArchiveURL and ArchiveDate
end
end
--[[--------------------------< P L A C E _ C H E C K >--------------------------------------------------------
check |place=, |publication-place=, |location= to see if these params include digits. This function added because
many editors misuse location to specify the in-source location (|page(s)= and |at= are supposed to do that)
returns the original parameter value without modification; added maint cat when parameter value contains digits
]]
local function place_check (param_val)
if not utilities.is_set (param_val) then -- parameter empty or omitted
return param_val; -- return that empty state
end
if mw.ustring.find (param_val, '%d') then -- not empty, are there digits in the parameter value
utilities.set_message ('maint_location'); -- yep, add maint cat
end
return param_val; -- and done
end
--[[--------------------------< I S _ A R C H I V E D _ C O P Y >----------------------------------------------
compares |title= to 'Archived copy' (placeholder added by bots that can't find proper title); if matches, return true; nil else
]]
local function is_archived_copy (title)
title = mw.ustring.lower(title); -- switch title to lower case
if title:find (cfg.special_case_translation.archived_copy.en) then -- if title is 'Archived copy'
return true;
elseif cfg.special_case_translation.archived_copy['local'] then
if mw.ustring.find (title, cfg.special_case_translation.archived_copy['local']) then -- mw.ustring() because might not be Latin script
return true;
end
end
end
--[[--------------------------< C I T A T I O N 0 >------------------------------------------------------------
This is the main function doing the majority of the citation formatting.
]]
local function citation0( config, args )
--[[
Load Input Parameters
The argument_wrapper facilitates the mapping of multiple aliases to single internal variable.
]]
local A = argument_wrapper ( args );
local i
-- Pick out the relevant fields from the arguments. Different citation templates
-- define different field names for the same underlying things.
local author_etal;
local a = {}; -- authors list from |lastn= / |firstn= pairs or |vauthors=
local Authors;
local NameListStyle = is_valid_parameter_value (A['NameListStyle'], A:ORIGIN('NameListStyle'), cfg.keywords_lists['name-list-style'], '');
local Collaboration = A['Collaboration'];
do -- to limit scope of selected
local selected = select_author_editor_source (A['Vauthors'], A['Authors'], args, 'AuthorList');
if 1 == selected then
a, author_etal = extract_names (args, 'AuthorList'); -- fetch author list from |authorn= / |lastn= / |firstn=, |author-linkn=, and |author-maskn=
elseif 2 == selected then
NameListStyle = 'vanc'; -- override whatever |name-list-style= might be
a, author_etal = parse_vauthors_veditors (args, args.vauthors, 'AuthorList'); -- fetch author list from |vauthors=, |author-linkn=, and |author-maskn=
elseif 3 == selected then
Authors = A['Authors']; -- use content of |authors=
if 'authors' == A:ORIGIN('Authors') then -- but add a maint cat if the parameter is |authors=
utilities.set_message ('maint_authors'); -- because use of this parameter is discouraged; what to do about the aliases is a TODO:
end
end
if utilities.is_set (Collaboration) then
author_etal = true; -- so that |display-authors=etal not required
end
end
local editor_etal;
local e = {}; -- editors list from |editor-lastn= / |editor-firstn= pairs or |veditors=
do -- to limit scope of selected
local selected = select_author_editor_source (A['Veditors'], nil, args, 'EditorList'); -- support for |editors= withdrawn
if 1 == selected then
e, editor_etal = extract_names (args, 'EditorList'); -- fetch editor list from |editorn= / |editor-lastn= / |editor-firstn=, |editor-linkn=, and |editor-maskn=
elseif 2 == selected then
NameListStyle = 'vanc'; -- override whatever |name-list-style= might be
e, editor_etal = parse_vauthors_veditors (args, args.veditors, 'EditorList'); -- fetch editor list from |veditors=, |editor-linkn=, and |editor-maskn=
end
end
local Chapter = A['Chapter']; -- done here so that we have access to |contribution= from |chapter= aliases
local Chapter_origin = A:ORIGIN ('Chapter');
local Contribution; -- because contribution is required for contributor(s)
if 'contribution' == Chapter_origin then
Contribution = Chapter; -- get the name of the contribution
end
local c = {}; -- contributors list from |contributor-lastn= / contributor-firstn= pairs
if utilities.in_array (config.CitationClass, {"book", "citation"}) and not utilities.is_set (A['Periodical']) then -- |contributor= and |contribution= only supported in book cites
c = extract_names (args, 'ContributorList'); -- fetch contributor list from |contributorn= / |contributor-lastn=, -firstn=, -linkn=, -maskn=
if 0 < #c then
if not utilities.is_set (Contribution) then -- |contributor= requires |contribution=
utilities.set_message ('err_contributor_missing_required_param', 'contribution'); -- add missing contribution error message
c = {}; -- blank the contributors' table; it is used as a flag later
end
if 0 == #a then -- |contributor= requires |author=
utilities.set_message ('err_contributor_missing_required_param', 'author'); -- add missing author error message
c = {}; -- blank the contributors' table; it is used as a flag later
end
end
else -- if not a book cite
if utilities.select_one (args, cfg.aliases['ContributorList-Last'], 'err_redundant_parameters', 1 ) then -- are there contributor name list parameters?
utilities.set_message ('err_contributor_ignored'); -- add contributor ignored error message
end
Contribution = nil; -- unset
end
local Title = A['Title'];
local TitleLink = A['TitleLink'];
local auto_select = ''; -- default is auto
local accept_link;
TitleLink, accept_link = utilities.has_accept_as_written (TitleLink, true); -- test for accept-this-as-written markup
if (not accept_link) and utilities.in_array (TitleLink, {'none', 'pmc', 'doi'}) then -- check for special keywords
auto_select = TitleLink; -- remember selection for later
TitleLink = ''; -- treat as if |title-link= would have been empty
end
TitleLink = link_title_ok (TitleLink, A:ORIGIN ('TitleLink'), Title, 'title'); -- check for wiki-markup in |title-link= or wiki-markup in |title= when |title-link= is set
local Section = ''; -- {{cite map}} only; preset to empty string for concatenation if not used
if 'map' == config.CitationClass and 'section' == Chapter_origin then
Section = A['Chapter']; -- get |section= from |chapter= alias list; |chapter= and the other aliases not supported in {{cite map}}
Chapter = ''; -- unset for now; will be reset later from |map= if present
end
local Periodical = A['Periodical'];
local Periodical_origin = '';
if utilities.is_set (Periodical) then
Periodical_origin = A:ORIGIN('Periodical'); -- get the name of the periodical parameter
local i;
Periodical, i = utilities.strip_apostrophe_markup (Periodical); -- strip apostrophe markup so that metadata isn't contaminated
if i then -- non-zero when markup was stripped so emit an error message
utilities.set_message ('err_apostrophe_markup', {Periodical_origin});
end
end
if 'mailinglist' == config.CitationClass then -- special case for {{cite mailing list}}
if utilities.is_set (Periodical) and utilities.is_set (A ['MailingList']) then -- both set emit an error TODO: make a function for this and similar?
utilities.set_message ('err_redundant_parameters', {utilities.wrap_style ('parameter', Periodical_origin) .. ' and ' .. utilities.wrap_style ('parameter', 'mailinglist')});
end
Periodical = A ['MailingList']; -- error or no, set Periodical to |mailinglist= value because this template is {{cite mailing list}}
Periodical_origin = A:ORIGIN('MailingList');
end
local ScriptPeriodical = A['ScriptPeriodical'];
-- web and news not tested for now because of
-- Wikipedia:Administrators%27_noticeboard#Is_there_a_semi-automated_tool_that_could_fix_these_annoying_"Cite_Web"_errors?
if not (utilities.is_set (Periodical) or utilities.is_set (ScriptPeriodical)) then -- 'periodical' templates require periodical parameter
-- local p = {['journal'] = 'journal', ['magazine'] = 'magazine', ['news'] = 'newspaper', ['web'] = 'website'}; -- for error message
local p = {['journal'] = 'journal', ['magazine'] = 'magazine'}; -- for error message
if p[config.CitationClass] then
utilities.set_message ('err_missing_periodical', {config.CitationClass, p[config.CitationClass]});
end
end
local Volume;
local ScriptPeriodical_origin = A:ORIGIN('ScriptPeriodical');
if 'citation' == config.CitationClass then
if utilities.is_set (Periodical) then
if not utilities.in_array (Periodical_origin, cfg.citation_no_volume_t) then -- {{citation}} does not render |volume= when these parameters are used
Volume = A['Volume']; -- but does for all other 'periodicals'
end
elseif utilities.is_set (ScriptPeriodical) then
if 'script-website' ~= ScriptPeriodical_origin then -- {{citation}} does not render volume for |script-website=
Volume = A['Volume']; -- but does for all other 'periodicals'
end
else
Volume = A['Volume']; -- and does for non-'periodical' cites
end
elseif utilities.in_array (config.CitationClass, cfg.templates_using_volume) then -- render |volume= for cs1 according to the configuration settings
Volume = A['Volume'];
end
extra_text_in_vol_iss_check (Volume, A:ORIGIN ('Volume'), 'v');
local Issue;
if 'citation' == config.CitationClass then
if utilities.is_set (Periodical) and utilities.in_array (Periodical_origin, cfg.citation_issue_t) then -- {{citation}} may render |issue= when these parameters are used
Issue = utilities.hyphen_to_dash (A['Issue']);
end
elseif utilities.in_array (config.CitationClass, cfg.templates_using_issue) then -- conference & map books do not support issue; {{citation}} listed here because included in settings table
if not (utilities.in_array (config.CitationClass, {'conference', 'map', 'citation'}) and not (utilities.is_set (Periodical) or utilities.is_set (ScriptPeriodical))) then
Issue = utilities.hyphen_to_dash (A['Issue']);
end
end
extra_text_in_vol_iss_check (Issue, A:ORIGIN ('Issue'), 'i');
local Page;
local Pages;
local At;
if not utilities.in_array (config.CitationClass, cfg.templates_not_using_page) then
Page = A['Page'];
Pages = utilities.hyphen_to_dash (A['Pages']);
At = A['At'];
end
local Edition = A['Edition'];
local PublicationPlace = place_check (A['PublicationPlace'], A:ORIGIN('PublicationPlace'));
local Place = place_check (A['Place'], A:ORIGIN('Place'));
local PublisherName = A['PublisherName'];
local PublisherName_origin = A:ORIGIN('PublisherName');
if utilities.is_set (PublisherName) then
local i = 0;
PublisherName, i = utilities.strip_apostrophe_markup (PublisherName); -- strip apostrophe markup so that metadata isn't contaminated; publisher is never italicized
if i then -- non-zero when markup was stripped so emit an error message
utilities.set_message ('err_apostrophe_markup', {PublisherName_origin});
end
end
local Newsgroup = A['Newsgroup']; -- TODO: strip apostrophe markup?
local Newsgroup_origin = A:ORIGIN('Newsgroup');
if 'newsgroup' == config.CitationClass then
if utilities.is_set (PublisherName) then -- general use parameter |publisher= not allowed in cite newsgroup
utilities.set_message ('err_parameter_ignored', {PublisherName_origin});
end
PublisherName = nil; -- ensure that this parameter is unset for the time being; will be used again after COinS
end
local URL = A['URL']; -- TODO: better way to do this for URL, ChapterURL, and MapURL?
local UrlAccess = is_valid_parameter_value (A['UrlAccess'], A:ORIGIN('UrlAccess'), cfg.keywords_lists['url-access'], nil);
if not utilities.is_set (URL) and utilities.is_set (UrlAccess) then
UrlAccess = nil;
utilities.set_message ('err_param_access_requires_param', 'url');
end
local ChapterURL = A['ChapterURL'];
local ChapterUrlAccess = is_valid_parameter_value (A['ChapterUrlAccess'], A:ORIGIN('ChapterUrlAccess'), cfg.keywords_lists['url-access'], nil);
if not utilities.is_set (ChapterURL) and utilities.is_set (ChapterUrlAccess) then
ChapterUrlAccess = nil;
utilities.set_message ('err_param_access_requires_param', {A:ORIGIN('ChapterUrlAccess'):gsub ('%-access', '')});
end
local MapUrlAccess = is_valid_parameter_value (A['MapUrlAccess'], A:ORIGIN('MapUrlAccess'), cfg.keywords_lists['url-access'], nil);
if not utilities.is_set (A['MapURL']) and utilities.is_set (MapUrlAccess) then
MapUrlAccess = nil;
utilities.set_message ('err_param_access_requires_param', {'map-url'});
end
local this_page = mw.title.getCurrentTitle(); -- also used for COinS and for language
local no_tracking_cats = is_valid_parameter_value (A['NoTracking'], A:ORIGIN('NoTracking'), cfg.keywords_lists['yes_true_y'], nil);
-- check this page to see if it is in one of the namespaces that cs1 is not supposed to add to the error categories
if not utilities.is_set (no_tracking_cats) then -- ignore if we are already not going to categorize this page
-- if utilities.in_array (this_page.nsText, cfg.uncategorized_namespaces) then
if cfg.uncategorized_namespaces[this_page.namespace] then -- is this pages namespace id one of the uncategorized namespace ids?
no_tracking_cats = "true"; -- set no_tracking_cats
end
for _, v in ipairs (cfg.uncategorized_subpages) do -- cycle through page name patterns
if this_page.text:match (v) then -- test page name against each pattern
no_tracking_cats = "true"; -- set no_tracking_cats
break; -- bail out if one is found
end
end
end
-- check for extra |page=, |pages= or |at= parameters. (also sheet and sheets while we're at it)
utilities.select_one (args, {'page', 'p', 'pp', 'pages', 'at', 'sheet', 'sheets'}, 'err_redundant_parameters'); -- this is a dummy call simply to get the error message and category
local coins_pages;
Page, Pages, At, coins_pages = insource_loc_get (Page, A:ORIGIN('Page'), Pages, A:ORIGIN('Pages'), At);
local NoPP = is_valid_parameter_value (A['NoPP'], A:ORIGIN('NoPP'), cfg.keywords_lists['yes_true_y'], nil);
if utilities.is_set (PublicationPlace) and utilities.is_set (Place) then -- both |publication-place= and |place= (|location=) allowed if different
utilities.add_prop_cat ('location-test'); -- add property cat to evaluate how often PublicationPlace and Place are used together
if PublicationPlace == Place then
Place = ''; -- unset; don't need both if they are the same
end
elseif not utilities.is_set (PublicationPlace) and utilities.is_set (Place) then -- when only |place= (|location=) is set ...
PublicationPlace = Place; -- promote |place= (|location=) to |publication-place
end
if PublicationPlace == Place then Place = ''; end -- don't need both if they are the same
local URL_origin = A:ORIGIN('URL'); -- get name of parameter that holds URL
local ChapterURL_origin = A:ORIGIN('ChapterURL'); -- get name of parameter that holds ChapterURL
local ScriptChapter = A['ScriptChapter'];
local ScriptChapter_origin = A:ORIGIN ('ScriptChapter');
local Format = A['Format'];
local ChapterFormat = A['ChapterFormat'];
local TransChapter = A['TransChapter'];
local TransChapter_origin = A:ORIGIN ('TransChapter');
local TransTitle = A['TransTitle'];
local ScriptTitle = A['ScriptTitle'];
--[[
Parameter remapping for cite encyclopedia:
When the citation has these parameters:
|encyclopedia= and |title= then map |title= to |article= and |encyclopedia= to |title=
|encyclopedia= and |article= then map |encyclopedia= to |title=
|trans-title= maps to |trans-chapter= when |title= is re-mapped
|url= maps to |chapter-url= when |title= is remapped
All other combinations of |encyclopedia=, |title=, and |article= are not modified
]]
local Encyclopedia = A['Encyclopedia']; -- used as a flag by this module and by ~/COinS
if utilities.is_set (Encyclopedia) then -- emit error message when Encyclopedia set but template is other than {{cite encyclopedia}} or {{citation}}
if 'encyclopaedia' ~= config.CitationClass and 'citation' ~= config.CitationClass then
utilities.set_message ('err_parameter_ignored', {A:ORIGIN ('Encyclopedia')});
Encyclopedia = nil; -- unset because not supported by this template
end
end
if ('encyclopaedia' == config.CitationClass) or ('citation' == config.CitationClass and utilities.is_set (Encyclopedia)) then
if utilities.is_set (Periodical) and utilities.is_set (Encyclopedia) then -- when both set emit an error TODO: make a function for this and similar?
utilities.set_message ('err_redundant_parameters', {utilities.wrap_style ('parameter', A:ORIGIN ('Encyclopedia')) .. ' and ' .. utilities.wrap_style ('parameter', Periodical_origin)});
end
if utilities.is_set (Encyclopedia) then
Periodical = Encyclopedia; -- error or no, set Periodical to Encyclopedia; allow periodical without encyclopedia
Periodical_origin = A:ORIGIN ('Encyclopedia');
end
if utilities.is_set (Periodical) then -- Periodical is set when |encyclopedia= is set
if utilities.is_set (Title) or utilities.is_set (ScriptTitle) then
if not utilities.is_set (Chapter) then
Chapter = Title; -- |encyclopedia= and |title= are set so map |title= to |article= and |encyclopedia= to |title=
ScriptChapter = ScriptTitle;
ScriptChapter_origin = A:ORIGIN('ScriptTitle')
TransChapter = TransTitle;
ChapterURL = URL;
ChapterURL_origin = URL_origin;
ChapterUrlAccess = UrlAccess;
if not utilities.is_set (ChapterURL) and utilities.is_set (TitleLink) then
Chapter = utilities.make_wikilink (TitleLink, Chapter);
end
Title = Periodical;
ChapterFormat = Format;
Periodical = ''; -- redundant so unset
TransTitle = '';
URL = '';
Format = '';
TitleLink = '';
ScriptTitle = '';
end
elseif utilities.is_set (Chapter) or utilities.is_set (ScriptChapter) then -- |title= not set
Title = Periodical; -- |encyclopedia= set and |article= set so map |encyclopedia= to |title=
Periodical = ''; -- redundant so unset
end
end
end
-- special case for cite techreport.
local ID = A['ID'];
if (config.CitationClass == "techreport") then -- special case for cite techreport
if utilities.is_set (A['Number']) then -- cite techreport uses 'number', which other citations alias to 'issue'
if not utilities.is_set (ID) then -- can we use ID for the "number"?
ID = A['Number']; -- yes, use it
else -- ID has a value so emit error message
utilities.set_message ('err_redundant_parameters', {utilities.wrap_style ('parameter', 'id') .. ' and ' .. utilities.wrap_style ('parameter', 'number')});
end
end
end
-- Account for the oddity that is {{cite conference}}, before generation of COinS data.
local ChapterLink -- = A['ChapterLink']; -- deprecated as a parameter but still used internally by cite episode
local Conference = A['Conference'];
local BookTitle = A['BookTitle'];
local TransTitle_origin = A:ORIGIN ('TransTitle');
if 'conference' == config.CitationClass then
if utilities.is_set (BookTitle) then
Chapter = Title;
Chapter_origin = 'title';
-- ChapterLink = TitleLink; -- |chapter-link= is deprecated
ChapterURL = URL;
ChapterUrlAccess = UrlAccess;
ChapterURL_origin = URL_origin;
URL_origin = '';
ChapterFormat = Format;
TransChapter = TransTitle;
TransChapter_origin = TransTitle_origin;
Title = BookTitle;
Format = '';
-- TitleLink = '';
TransTitle = '';
URL = '';
end
elseif 'speech' ~= config.CitationClass then
Conference = ''; -- not cite conference or cite speech so make sure this is empty string
end
-- CS1/2 mode
local Mode = is_valid_parameter_value (A['Mode'], A:ORIGIN('Mode'), cfg.keywords_lists['mode'], '');
-- separator character and postscript
local sepc, PostScript = set_style (Mode:lower(), A['PostScript'], config.CitationClass);
-- controls capitalization of certain static text
local use_lowercase = ( sepc == ',' );
-- cite map oddities
local Cartography = "";
local Scale = "";
local Sheet = A['Sheet'] or '';
local Sheets = A['Sheets'] or '';
if config.CitationClass == "map" then
if utilities.is_set (Chapter) then --TODO: make a function for this and similar?
utilities.set_message ('err_redundant_parameters', {utilities.wrap_style ('parameter', 'map') .. ' and ' .. utilities.wrap_style ('parameter', Chapter_origin)}); -- add error message
end
Chapter = A['Map'];
Chapter_origin = A:ORIGIN('Map');
ChapterURL = A['MapURL'];
ChapterURL_origin = A:ORIGIN('MapURL');
TransChapter = A['TransMap'];
ScriptChapter = A['ScriptMap']
ScriptChapter_origin = A:ORIGIN('ScriptMap')
ChapterUrlAccess = MapUrlAccess;
ChapterFormat = A['MapFormat'];
Cartography = A['Cartography'];
if utilities.is_set ( Cartography ) then
Cartography = sepc .. " " .. wrap_msg ('cartography', Cartography, use_lowercase);
end
Scale = A['Scale'];
if utilities.is_set ( Scale ) then
Scale = sepc .. " " .. Scale;
end
end
-- Account for the oddities that are {{cite episode}} and {{cite serial}}, before generation of COinS data.
local Series = A['Series'];
if 'episode' == config.CitationClass or 'serial' == config.CitationClass then
local SeriesLink = A['SeriesLink'];
SeriesLink = link_title_ok (SeriesLink, A:ORIGIN ('SeriesLink'), Series, 'series'); -- check for wiki-markup in |series-link= or wiki-markup in |series= when |series-link= is set
local Network = A['Network'];
local Station = A['Station'];
local s, n = {}, {};
-- do common parameters first
if utilities.is_set (Network) then table.insert(n, Network); end
if utilities.is_set (Station) then table.insert(n, Station); end
ID = table.concat(n, sepc .. ' ');
if 'episode' == config.CitationClass then -- handle the oddities that are strictly {{cite episode}}
local Season = A['Season'];
local SeriesNumber = A['SeriesNumber'];
if utilities.is_set (Season) and utilities.is_set (SeriesNumber) then -- these are mutually exclusive so if both are set TODO: make a function for this and similar?
utilities.set_message ('err_redundant_parameters', {utilities.wrap_style ('parameter', 'season') .. ' and ' .. utilities.wrap_style ('parameter', 'seriesno')}); -- add error message
SeriesNumber = ''; -- unset; prefer |season= over |seriesno=
end
-- assemble a table of parts concatenated later into Series
if utilities.is_set (Season) then table.insert(s, wrap_msg ('season', Season, use_lowercase)); end
if utilities.is_set (SeriesNumber) then table.insert(s, wrap_msg ('seriesnum', SeriesNumber, use_lowercase)); end
if utilities.is_set (Issue) then table.insert(s, wrap_msg ('episode', Issue, use_lowercase)); end
Issue = ''; -- unset because this is not a unique parameter
Chapter = Title; -- promote title parameters to chapter
ScriptChapter = ScriptTitle;
ScriptChapter_origin = A:ORIGIN('ScriptTitle');
ChapterLink = TitleLink; -- alias |episode-link=
TransChapter = TransTitle;
ChapterURL = URL;
ChapterUrlAccess = UrlAccess;
ChapterURL_origin = URL_origin;
ChapterFormat = Format;
Title = Series; -- promote series to title
TitleLink = SeriesLink;
Series = table.concat(s, sepc .. ' '); -- this is concatenation of season, seriesno, episode number
if utilities.is_set (ChapterLink) and not utilities.is_set (ChapterURL) then -- link but not URL
Chapter = utilities.make_wikilink (ChapterLink, Chapter);
elseif utilities.is_set (ChapterLink) and utilities.is_set (ChapterURL) then -- if both are set, URL links episode;
Series = utilities.make_wikilink (ChapterLink, Series);
end
URL = ''; -- unset
TransTitle = '';
ScriptTitle = '';
Format = '';
else -- now oddities that are cite serial
Issue = ''; -- unset because this parameter no longer supported by the citation/core version of cite serial
Chapter = A['Episode']; -- TODO: make |episode= available to cite episode someday?
if utilities.is_set (Series) and utilities.is_set (SeriesLink) then
Series = utilities.make_wikilink (SeriesLink, Series);
end
Series = utilities.wrap_style ('italic-title', Series); -- series is italicized
end
end
-- end of {{cite episode}} stuff
-- handle type parameter for those CS1 citations that have default values
local TitleType = A['TitleType'];
local Degree = A['Degree'];
if utilities.in_array (config.CitationClass, {'AV-media-notes', 'interview', 'mailinglist', 'map', 'podcast', 'pressrelease', 'report', 'speech', 'techreport', 'thesis'}) then
TitleType = set_titletype (config.CitationClass, TitleType);
if utilities.is_set (Degree) and "Thesis" == TitleType then -- special case for cite thesis
TitleType = Degree .. ' ' .. cfg.title_types ['thesis']:lower();
end
end
if utilities.is_set (TitleType) then -- if type parameter is specified
TitleType = utilities.substitute ( cfg.messages['type'], TitleType); -- display it in parentheses
-- TODO: Hack on TitleType to fix bunched parentheses problem
end
-- legacy: promote PublicationDate to Date if neither Date nor Year are set.
local Date = A['Date'];
local Date_origin; -- to hold the name of parameter promoted to Date; required for date error messaging
local PublicationDate = A['PublicationDate'];
local Year = A['Year'];
if not utilities.is_set (Date) then
Date = Year; -- promote Year to Date
Year = nil; -- make nil so Year as empty string isn't used for CITEREF
if not utilities.is_set (Date) and utilities.is_set (PublicationDate) then -- use PublicationDate when |date= and |year= are not set
Date = PublicationDate; -- promote PublicationDate to Date
PublicationDate = ''; -- unset, no longer needed
Date_origin = A:ORIGIN('PublicationDate'); -- save the name of the promoted parameter
else
Date_origin = A:ORIGIN('Year'); -- save the name of the promoted parameter
end
else
Date_origin = A:ORIGIN('Date'); -- not a promotion; name required for error messaging
end
if PublicationDate == Date then PublicationDate = ''; end -- if PublicationDate is same as Date, don't display in rendered citation
--[[
Go test all of the date-holding parameters for valid MOS:DATE format and make sure that dates are real dates. This must be done before we do COinS because here is where
we get the date used in the metadata.
Date validation supporting code is in Module:Citation/CS1/Date_validation
]]
local DF = is_valid_parameter_value (A['DF'], A:ORIGIN('DF'), cfg.keywords_lists['df'], '');
if not utilities.is_set (DF) then
DF = cfg.global_df; -- local |df= if present overrides global df set by {{use xxx date}} template
end
local ArchiveURL;
local ArchiveDate;
local ArchiveFormat = A['ArchiveFormat'];
ArchiveURL, ArchiveDate = archive_url_check (A['ArchiveURL'], A['ArchiveDate'])
ArchiveFormat = style_format (ArchiveFormat, ArchiveURL, 'archive-format', 'archive-url');
ArchiveURL, ArchiveDate = is_unique_archive_url (ArchiveURL, URL, ChapterURL, A:ORIGIN('ArchiveURL'), ArchiveDate); -- add error message when URL or ChapterURL == ArchiveURL
local AccessDate = A['AccessDate'];
local LayDate = A['LayDate'];
local COinS_date = {}; -- holds date info extracted from |date= for the COinS metadata by Module:Date verification
local DoiBroken = A['DoiBroken'];
local Embargo = A['Embargo'];
local anchor_year; -- used in the CITEREF identifier
do -- create defined block to contain local variables error_message, date_parameters_list, mismatch
local error_message = '';
-- AirDate has been promoted to Date so not necessary to check it
local date_parameters_list = {
['access-date'] = {val = AccessDate, name = A:ORIGIN ('AccessDate')},
['archive-date'] = {val = ArchiveDate, name = A:ORIGIN ('ArchiveDate')},
['date'] = {val = Date, name = Date_origin},
['doi-broken-date'] = {val = DoiBroken, name = A:ORIGIN ('DoiBroken')},
['pmc-embargo-date'] = {val = Embargo, name = A:ORIGIN ('Embargo')},
['lay-date'] = {val = LayDate, name = A:ORIGIN ('LayDate')},
['publication-date'] = {val = PublicationDate, name = A:ORIGIN ('PublicationDate')},
['year'] = {val = Year, name = A:ORIGIN ('Year')},
};
local error_list = {};
anchor_year, Embargo = validation.dates(date_parameters_list, COinS_date, error_list);
-- start temporary Julian / Gregorian calendar uncertainty categorization
if COinS_date.inter_cal_cat then
utilities.add_prop_cat ('jul-greg-uncertainty');
end
-- end temporary Julian / Gregorian calendar uncertainty categorization
if utilities.is_set (Year) and utilities.is_set (Date) then -- both |date= and |year= not normally needed;
validation.year_date_check (Year, A:ORIGIN ('Year'), Date, A:ORIGIN ('Date'), error_list);
end
if 0 == #error_list then -- error free dates only; 0 when error_list is empty
local modified = false; -- flag
if utilities.is_set (DF) then -- if we need to reformat dates
modified = validation.reformat_dates (date_parameters_list, DF); -- reformat to DF format, use long month names if appropriate
end
if true == validation.date_hyphen_to_dash (date_parameters_list) then -- convert hyphens to dashes where appropriate
modified = true;
utilities.set_message ('maint_date_format'); -- hyphens were converted so add maint category
end
-- for those wikis that can and want to have English date names translated to the local language; not supported at en.wiki
if cfg.date_name_auto_xlate_enable and validation.date_name_xlate (date_parameters_list, cfg.date_digit_auto_xlate_enable ) then
utilities.set_message ('maint_date_auto_xlated'); -- add maint cat
modified = true;
end
if modified then -- if the date_parameters_list values were modified
AccessDate = date_parameters_list['access-date'].val; -- overwrite date holding parameters with modified values
ArchiveDate = date_parameters_list['archive-date'].val;
Date = date_parameters_list['date'].val;
DoiBroken = date_parameters_list['doi-broken-date'].val;
LayDate = date_parameters_list['lay-date'].val;
PublicationDate = date_parameters_list['publication-date'].val;
end
else
utilities.set_message ('err_bad_date', {utilities.make_sep_list (#error_list, error_list)}); -- add this error message
end
end -- end of do
local ID_list = {}; -- sequence table of rendered identifiers
local ID_list_coins = {}; -- table of identifiers and their values from args; key is same as cfg.id_handlers's key
local Class = A['Class']; -- arxiv class identifier
local ID_support = {
{A['ASINTLD'], 'ASIN', 'err_asintld_missing_asin', A:ORIGIN ('ASINTLD')},
{DoiBroken, 'DOI', 'err_doibroken_missing_doi', A:ORIGIN ('DoiBroken')},
{Embargo, 'PMC', 'err_embargo_missing_pmc', A:ORIGIN ('Embargo')},
}
ID_list, ID_list_coins = identifiers.identifier_lists_get (args, {DoiBroken = DoiBroken, ASINTLD = A['ASINTLD'], Embargo = Embargo, Class = Class}, ID_support);
-- Account for the oddities that are {{cite arxiv}}, {{cite biorxiv}}, {{cite citeseerx}}, {{cite ssrn}}, before generation of COinS data.
if utilities.in_array (config.CitationClass, whitelist.preprint_template_list) then
if not utilities.is_set (ID_list_coins[config.CitationClass:upper()]) then -- |arxiv= or |eprint= required for cite arxiv; |biorxiv= & |citeseerx= required for their templates
utilities.set_message ('err_' .. config.CitationClass .. '_missing'); -- add error message
end
Periodical = ({['arxiv'] = 'arXiv', ['biorxiv'] = 'bioRxiv', ['citeseerx'] = 'CiteSeerX', ['ssrn'] = 'Social Science Research Network'})[config.CitationClass];
end
-- Link the title of the work if no |url= was provided, but we have a |pmc= or a |doi= with |doi-access=free
if config.CitationClass == "journal" and not utilities.is_set (URL) and not utilities.is_set (TitleLink) and not utilities.in_array (cfg.keywords_xlate[Title], {'off', 'none'}) then -- TODO: remove 'none' once existing citations have been switched to 'off', so 'none' can be used as token for "no title" instead
if 'none' ~= cfg.keywords_xlate[auto_select] then -- if auto-linking not disabled
if identifiers.auto_link_urls[auto_select] then -- manual selection
URL = identifiers.auto_link_urls[auto_select]; -- set URL to be the same as identifier's external link
URL_origin = cfg.id_handlers[auto_select:upper()].parameters[1]; -- set URL_origin to parameter name for use in error message if citation is missing a |title=
elseif identifiers.auto_link_urls['pmc'] then -- auto-select PMC
URL = identifiers.auto_link_urls['pmc']; -- set URL to be the same as the PMC external link if not embargoed
URL_origin = cfg.id_handlers['PMC'].parameters[1]; -- set URL_origin to parameter name for use in error message if citation is missing a |title=
elseif identifiers.auto_link_urls['doi'] then -- auto-select DOI
URL = identifiers.auto_link_urls['doi'];
URL_origin = cfg.id_handlers['DOI'].parameters[1];
end
end
if utilities.is_set (URL) then -- set when using an identifier-created URL
if utilities.is_set (AccessDate) then -- |access-date= requires |url=; identifier-created URL is not |url=
utilities.set_message ('err_accessdate_missing_url'); -- add an error message
AccessDate = ''; -- unset
end
if utilities.is_set (ArchiveURL) then -- |archive-url= requires |url=; identifier-created URL is not |url=
utilities.set_message ('err_archive_missing_url'); -- add an error message
ArchiveURL = ''; -- unset
end
end
end
-- At this point fields may be nil if they weren't specified in the template use. We can use that fact.
-- Test if citation has no title
if not utilities.is_set (Title) and not utilities.is_set (TransTitle) and not utilities.is_set (ScriptTitle) then -- has special case for cite episode
utilities.set_message ('err_citation_missing_title', {'episode' == config.CitationClass and 'series' or 'title'});
end
if utilities.in_array (cfg.keywords_xlate[Title], {'off', 'none'}) and
utilities.in_array (config.CitationClass, {'journal', 'citation'}) and
(utilities.is_set (Periodical) or utilities.is_set (ScriptPeriodical)) and
('journal' == Periodical_origin or 'script-journal' == ScriptPeriodical_origin) then -- special case for journal cites
Title = ''; -- set title to empty string
utilities.set_message ('maint_untitled'); -- add maint cat
end
-- COinS metadata (see <http://ocoins.info/>) for automated parsing of citation information.
-- handle the oddity that is cite encyclopedia and {{citation |encyclopedia=something}}. Here we presume that
-- when Periodical, Title, and Chapter are all set, then Periodical is the book (encyclopedia) title, Title
-- is the article title, and Chapter is a section within the article. So, we remap
local coins_chapter = Chapter; -- default assuming that remapping not required
local coins_title = Title; -- et tu
if 'encyclopaedia' == config.CitationClass or ('citation' == config.CitationClass and utilities.is_set (Encyclopedia)) then
if utilities.is_set (Chapter) and utilities.is_set (Title) and utilities.is_set (Periodical) then -- if all are used then
coins_chapter = Title; -- remap
coins_title = Periodical;
end
end
local coins_author = a; -- default for coins rft.au
if 0 < #c then -- but if contributor list
coins_author = c; -- use that instead
end
local QuotePage = A['QuotePage'];
local QuotePages = utilities.hyphen_to_dash (A['QuotePages']);
-- this is the function call to COinS()
local OCinSoutput = metadata.COinS({
['Periodical'] = utilities.strip_apostrophe_markup (Periodical), -- no markup in the metadata
['Encyclopedia'] = Encyclopedia, -- just a flag; content ignored by ~/COinS
['Chapter'] = metadata.make_coins_title (coins_chapter, ScriptChapter), -- Chapter and ScriptChapter stripped of bold / italic / accept-as-written markup
['Degree'] = Degree; -- cite thesis only
['Title'] = metadata.make_coins_title (coins_title, ScriptTitle), -- Title and ScriptTitle stripped of bold / italic / accept-as-written markup
['PublicationPlace'] = PublicationPlace,
['Date'] = COinS_date.rftdate, -- COinS_date has correctly formatted date if Date is valid;
['Season'] = COinS_date.rftssn,
['Quarter'] = COinS_date.rftquarter,
['Chron'] = COinS_date.rftchron or (not COinS_date.rftdate and Date) or '', -- chron but if not set and invalid date format use Date; keep this last bit?
['Series'] = Series,
['Volume'] = Volume,
['Issue'] = Issue,
['Pages'] = coins_pages or metadata.get_coins_pages (first_set ({Sheet, Sheets, Page, Pages, At, QuotePage, QuotePages}, 7)), -- pages stripped of external links
['Edition'] = Edition,
['PublisherName'] = PublisherName or Newsgroup, -- any apostrophe markup already removed from PublisherName
['URL'] = first_set ({ChapterURL, URL}, 2),
['Authors'] = coins_author,
['ID_list'] = ID_list_coins,
['RawPage'] = this_page.prefixedText,
}, config.CitationClass);
-- Account for the oddities that are {{cite arxiv}}, {{cite biorxiv}}, {{cite citeseerx}}, and {{cite ssrn}} AFTER generation of COinS data.
if utilities.in_array (config.CitationClass, whitelist.preprint_template_list) then -- we have set rft.jtitle in COinS to arXiv, bioRxiv, CiteSeerX, or ssrn now unset so it isn't displayed
Periodical = ''; -- periodical not allowed in these templates; if article has been published, use cite journal
end
-- special case for cite newsgroup. Do this after COinS because we are modifying Publishername to include some static text
if 'newsgroup' == config.CitationClass and utilities.is_set (Newsgroup) then
PublisherName = utilities.substitute (cfg.messages['newsgroup'], external_link( 'news:' .. Newsgroup, Newsgroup, Newsgroup_origin, nil ));
end
local Editors;
local EditorCount; -- used only for choosing {ed.) or (eds.) annotation at end of editor name-list
local Contributors; -- assembled contributors name list
local contributor_etal;
local Translators; -- assembled translators name list
local translator_etal;
local t = {}; -- translators list from |translator-lastn= / translator-firstn= pairs
t = extract_names (args, 'TranslatorList'); -- fetch translator list from |translatorn= / |translator-lastn=, -firstn=, -linkn=, -maskn=
local Interviewers;
local interviewers_list = {};
interviewers_list = extract_names (args, 'InterviewerList'); -- process preferred interviewers parameters
local interviewer_etal;
-- Now perform various field substitutions.
-- We also add leading spaces and surrounding markup and punctuation to the
-- various parts of the citation, but only when they are non-nil.
do
local last_first_list;
local control = {
format = NameListStyle, -- empty string or 'vanc'
maximum = nil, -- as if display-authors or display-editors not set
mode = Mode
};
do -- do editor name list first because the now unsupported coauthors used to modify control table
control.maximum , editor_etal = get_display_names (A['DisplayEditors'], #e, 'editors', editor_etal, A:ORIGIN ('DisplayEditors'));
Editors, EditorCount = list_people (control, e, editor_etal);
if 1 == EditorCount and (true == editor_etal or 1 < #e) then -- only one editor displayed but includes etal then
EditorCount = 2; -- spoof to display (eds.) annotation
end
end
do -- now do interviewers
control.maximum, interviewer_etal = get_display_names (A['DisplayInterviewers'], #interviewers_list, 'interviewers', interviewer_etal, A:ORIGIN ('DisplayInterviewers'));
Interviewers = list_people (control, interviewers_list, interviewer_etal);
end
do -- now do translators
control.maximum, translator_etal = get_display_names (A['DisplayTranslators'], #t, 'translators', translator_etal, A:ORIGIN ('DisplayTranslators'));
Translators = list_people (control, t, translator_etal);
end
do -- now do contributors
control.maximum, contributor_etal = get_display_names (A['DisplayContributors'], #c, 'contributors', contributor_etal, A:ORIGIN ('DisplayContributors'));
Contributors = list_people (control, c, contributor_etal);
end
do -- now do authors
control.maximum, author_etal = get_display_names (A['DisplayAuthors'], #a, 'authors', author_etal, A:ORIGIN ('DisplayAuthors'));
last_first_list = list_people (control, a, author_etal);
if utilities.is_set (Authors) then
Authors, author_etal = name_has_etal (Authors, author_etal, false, 'authors'); -- find and remove variations on et al.
if author_etal then
Authors = Authors .. ' ' .. cfg.messages['et al']; -- add et al. to authors parameter
end
else
Authors = last_first_list; -- either an author name list or an empty string
end
end -- end of do
if utilities.is_set (Authors) and utilities.is_set (Collaboration) then
Authors = Authors .. ' (' .. Collaboration .. ')'; -- add collaboration after et al.
end
end
local ConferenceFormat = A['ConferenceFormat'];
local ConferenceURL = A['ConferenceURL'];
ConferenceFormat = style_format (ConferenceFormat, ConferenceURL, 'conference-format', 'conference-url');
Format = style_format (Format, URL, 'format', 'url');
-- special case for chapter format so no error message or cat when chapter not supported
if not (utilities.in_array (config.CitationClass, {'web', 'news', 'journal', 'magazine', 'pressrelease', 'podcast', 'newsgroup', 'arxiv', 'biorxiv', 'citeseerx', 'ssrn'}) or
('citation' == config.CitationClass and (utilities.is_set (Periodical) or utilities.is_set (ScriptPeriodical)) and not utilities.is_set (Encyclopedia))) then
ChapterFormat = style_format (ChapterFormat, ChapterURL, 'chapter-format', 'chapter-url');
end
if not utilities.is_set (URL) then
if utilities.in_array (config.CitationClass, {"web", "podcast", "mailinglist"}) or -- |url= required for cite web, cite podcast, and cite mailinglist
('citation' == config.CitationClass and ('website' == Periodical_origin or 'script-website' == ScriptPeriodical_origin)) then -- and required for {{citation}} with |website= or |script-website=
utilities.set_message ('err_cite_web_url');
end
-- do we have |accessdate= without either |url= or |chapter-url=?
if utilities.is_set (AccessDate) and not utilities.is_set (ChapterURL) then -- ChapterURL may be set when URL is not set;
utilities.set_message ('err_accessdate_missing_url');
AccessDate = '';
end
end
local UrlStatus = is_valid_parameter_value (A['UrlStatus'], A:ORIGIN('UrlStatus'), cfg.keywords_lists['url-status'], '');
local OriginalURL
local OriginalURL_origin
local OriginalFormat
local OriginalAccess;
UrlStatus = UrlStatus:lower(); -- used later when assembling archived text
if utilities.is_set ( ArchiveURL ) then
if utilities.is_set (ChapterURL) then -- if chapter-url= is set apply archive url to it
OriginalURL = ChapterURL; -- save copy of source chapter's url for archive text
OriginalURL_origin = ChapterURL_origin; -- name of |chapter-url= parameter for error messages
OriginalFormat = ChapterFormat; -- and original |chapter-format=
if 'live' ~= UrlStatus then
ChapterURL = ArchiveURL -- swap-in the archive's URL
ChapterURL_origin = A:ORIGIN('ArchiveURL') -- name of |archive-url= parameter for error messages
ChapterFormat = ArchiveFormat or ''; -- swap in archive's format
ChapterUrlAccess = nil; -- restricted access levels do not make sense for archived URLs
end
elseif utilities.is_set (URL) then
OriginalURL = URL; -- save copy of original source URL
OriginalURL_origin = URL_origin; -- name of URL parameter for error messages
OriginalFormat = Format; -- and original |format=
OriginalAccess = UrlAccess;
if 'live' ~= UrlStatus then -- if URL set then |archive-url= applies to it
URL = ArchiveURL -- swap-in the archive's URL
URL_origin = A:ORIGIN('ArchiveURL') -- name of archive URL parameter for error messages
Format = ArchiveFormat or ''; -- swap in archive's format
UrlAccess = nil; -- restricted access levels do not make sense for archived URLs
end
end
elseif utilities.is_set (UrlStatus) then -- if |url-status= is set when |archive-url= is not set
utilities.set_message ('maint_url_status'); -- add maint cat
end
if utilities.in_array (config.CitationClass, {'web', 'news', 'journal', 'magazine', 'pressrelease', 'podcast', 'newsgroup', 'arxiv', 'biorxiv', 'citeseerx', 'ssrn'}) or -- if any of the 'periodical' cites except encyclopedia
('citation' == config.CitationClass and (utilities.is_set (Periodical) or utilities.is_set (ScriptPeriodical)) and not utilities.is_set (Encyclopedia)) then
local chap_param;
if utilities.is_set (Chapter) then -- get a parameter name from one of these chapter related meta-parameters
chap_param = A:ORIGIN ('Chapter')
elseif utilities.is_set (TransChapter) then
chap_param = A:ORIGIN ('TransChapter')
elseif utilities.is_set (ChapterURL) then
chap_param = A:ORIGIN ('ChapterURL')
elseif utilities.is_set (ScriptChapter) then
chap_param = ScriptChapter_origin;
else utilities.is_set (ChapterFormat)
chap_param = A:ORIGIN ('ChapterFormat')
end
if utilities.is_set (chap_param) then -- if we found one
utilities.set_message ('err_chapter_ignored', {chap_param}); -- add error message
Chapter = ''; -- and set them to empty string to be safe with concatenation
TransChapter = '';
ChapterURL = '';
ScriptChapter = '';
ChapterFormat = '';
end
else -- otherwise, format chapter / article title
local no_quotes = false; -- default assume that we will be quoting the chapter parameter value
if utilities.is_set (Contribution) and 0 < #c then -- if this is a contribution with contributor(s)
if utilities.in_array (Contribution:lower(), cfg.keywords_lists.contribution) then -- and a generic contribution title
no_quotes = true; -- then render it unquoted
end
end
Chapter = format_chapter_title (ScriptChapter, ScriptChapter_origin, Chapter, Chapter_origin, TransChapter, TransChapter_origin, ChapterURL, ChapterURL_origin, no_quotes, ChapterUrlAccess); -- Contribution is also in Chapter
if utilities.is_set (Chapter) then
Chapter = Chapter .. ChapterFormat ;
if 'map' == config.CitationClass and utilities.is_set (TitleType) then
Chapter = Chapter .. ' ' .. TitleType; -- map annotation here; not after title
end
Chapter = Chapter .. sepc .. ' ';
elseif utilities.is_set (ChapterFormat) then -- |chapter= not set but |chapter-format= is so ...
Chapter = ChapterFormat .. sepc .. ' '; -- ... ChapterFormat has error message, we want to see it
end
end
-- Format main title
local plain_title = false;
local accept_title;
Title, accept_title = utilities.has_accept_as_written (Title, true); -- remove accept-this-as-written markup when it wraps all of <Title>
if accept_title and ('' == Title) then -- only support forced empty for now "(())"
Title = cfg.messages['notitle']; -- replace by predefined "No title" message
-- TODO: utilities.set_message ( 'err_redundant_parameters', ...); -- issue proper error message instead of muting
ScriptTitle = ''; -- just mute for now
TransTitle = ''; -- just mute for now
plain_title = true; -- suppress text decoration for descriptive title
utilities.set_message ('maint_untitled'); -- add maint cat
end
if not accept_title then -- <Title> not wrapped in accept-as-written markup
if '...' == Title:sub (-3) then -- if ellipsis is the last three characters of |title=
Title = Title:gsub ('(%.%.%.)%.+$', '%1'); -- limit the number of dots to three
elseif not mw.ustring.find (Title, '%.%s*%a%.$') and -- end of title is not a 'dot-(optional space-)letter-dot' initialism ...
not mw.ustring.find (Title, '%s+%a%.$') then -- ...and not a 'space-letter-dot' initial (''Allium canadense'' L.)
Title = mw.ustring.gsub(Title, '%' .. sepc .. '$', ''); -- remove any trailing separator character; sepc and ms.ustring() here for languages that use multibyte separator characters
end
if utilities.is_set (ArchiveURL) and is_archived_copy (Title) then
utilities.set_message ('maint_archived_copy'); -- add maintenance category before we modify the content of Title
end
if is_generic ('generic_titles', Title) then
utilities.set_message ('err_generic_title'); -- set an error message
end
end
if (not plain_title) and (utilities.in_array (config.CitationClass, {'web', 'news', 'journal', 'magazine', 'pressrelease', 'podcast', 'newsgroup', 'mailinglist', 'interview', 'arxiv', 'biorxiv', 'citeseerx', 'ssrn'}) or
('citation' == config.CitationClass and (utilities.is_set (Periodical) or utilities.is_set (ScriptPeriodical)) and not utilities.is_set (Encyclopedia)) or
('map' == config.CitationClass and (utilities.is_set (Periodical) or utilities.is_set (ScriptPeriodical)))) then -- special case for cite map when the map is in a periodical treat as an article
Title = kern_quotes (Title); -- if necessary, separate title's leading and trailing quote marks from module provided quote marks
Title = utilities.wrap_style ('quoted-title', Title);
Title = script_concatenate (Title, ScriptTitle, 'script-title'); -- <bdi> tags, lang attribute, categorization, etc.; must be done after title is wrapped
TransTitle = utilities.wrap_style ('trans-quoted-title', TransTitle );
elseif plain_title or ('report' == config.CitationClass) then -- no styling for cite report and descriptive titles (otherwise same as above)
Title = script_concatenate (Title, ScriptTitle, 'script-title'); -- <bdi> tags, lang attribute, categorization, etc.; must be done after title is wrapped
TransTitle = utilities.wrap_style ('trans-quoted-title', TransTitle ); -- for cite report, use this form for trans-title
else
Title = utilities.wrap_style ('italic-title', Title);
Title = script_concatenate (Title, ScriptTitle, 'script-title'); -- <bdi> tags, lang attribute, categorization, etc.; must be done after title is wrapped
TransTitle = utilities.wrap_style ('trans-italic-title', TransTitle);
end
if utilities.is_set (TransTitle) then
if utilities.is_set (Title) then
TransTitle = " " .. TransTitle;
else
utilities.set_message ('err_trans_missing_title', {'title'});
end
end
if utilities.is_set (Title) then -- TODO: is this the right place to be making Wikisource URLs?
if utilities.is_set (TitleLink) and utilities.is_set (URL) then
utilities.set_message ('err_wikilink_in_url'); -- set an error message because we can't have both
TitleLink = ''; -- unset
end
if not utilities.is_set (TitleLink) and utilities.is_set (URL) then
Title = external_link (URL, Title, URL_origin, UrlAccess) .. TransTitle .. Format;
URL = ''; -- unset these because no longer needed
Format = "";
elseif utilities.is_set (TitleLink) and not utilities.is_set (URL) then
local ws_url;
ws_url = wikisource_url_make (TitleLink); -- ignore ws_label return; not used here
if ws_url then
Title = external_link (ws_url, Title .. ' ', 'ws link in title-link'); -- space char after Title to move icon away from italic text; TODO: a better way to do this?
Title = utilities.substitute (cfg.presentation['interwiki-icon'], {cfg.presentation['class-wikisource'], TitleLink, Title});
Title = Title .. TransTitle;
else
Title = utilities.make_wikilink (TitleLink, Title) .. TransTitle;
end
else
local ws_url, ws_label, L; -- Title has italic or quote markup by the time we get here which causes is_wikilink() to return 0 (not a wikilink)
ws_url, ws_label, L = wikisource_url_make (Title:gsub('^[\'"]*(.-)[\'"]*$', '%1')); -- make ws URL from |title= interwiki link (strip italic or quote markup); link portion L becomes tooltip label
if ws_url then
Title = Title:gsub ('%b[]', ws_label); -- replace interwiki link with ws_label to retain markup
Title = external_link (ws_url, Title .. ' ', 'ws link in title'); -- space char after Title to move icon away from italic text; TODO: a better way to do this?
Title = utilities.substitute (cfg.presentation['interwiki-icon'], {cfg.presentation['class-wikisource'], L, Title});
Title = Title .. TransTitle;
else
Title = Title .. TransTitle;
end
end
else
Title = TransTitle;
end
if utilities.is_set (Place) then
Place = " " .. wrap_msg ('written', Place, use_lowercase) .. sepc .. " ";
end
local ConferenceURL_origin = A:ORIGIN('ConferenceURL'); -- get name of parameter that holds ConferenceURL
if utilities.is_set (Conference) then
if utilities.is_set (ConferenceURL) then
Conference = external_link( ConferenceURL, Conference, ConferenceURL_origin, nil );
end
Conference = sepc .. " " .. Conference .. ConferenceFormat;
elseif utilities.is_set (ConferenceURL) then
Conference = sepc .. " " .. external_link( ConferenceURL, nil, ConferenceURL_origin, nil );
end
local Position = '';
if not utilities.is_set (Position) then
local Minutes = A['Minutes'];
local Time = A['Time'];
if utilities.is_set (Minutes) then
if utilities.is_set (Time) then --TODO: make a function for this and similar?
utilities.set_message ('err_redundant_parameters', {utilities.wrap_style ('parameter', 'minutes') .. ' and ' .. utilities.wrap_style ('parameter', 'time')});
end
Position = " " .. Minutes .. " " .. cfg.messages['minutes'];
else
if utilities.is_set (Time) then
local TimeCaption = A['TimeCaption']
if not utilities.is_set (TimeCaption) then
TimeCaption = cfg.messages['event'];
if sepc ~= '.' then
TimeCaption = TimeCaption:lower();
end
end
Position = " " .. TimeCaption .. " " .. Time;
end
end
else
Position = " " .. Position;
At = '';
end
Page, Pages, Sheet, Sheets = format_pages_sheets (Page, Pages, Sheet, Sheets, config.CitationClass, Periodical_origin, sepc, NoPP, use_lowercase);
At = utilities.is_set (At) and (sepc .. " " .. At) or "";
Position = utilities.is_set (Position) and (sepc .. " " .. Position) or "";
if config.CitationClass == 'map' then
local Sections = A['Sections']; -- Section (singular) is an alias of Chapter so set earlier
local Inset = A['Inset'];
if utilities.is_set ( Inset ) then
Inset = sepc .. " " .. wrap_msg ('inset', Inset, use_lowercase);
end
if utilities.is_set ( Sections ) then
Section = sepc .. " " .. wrap_msg ('sections', Sections, use_lowercase);
elseif utilities.is_set ( Section ) then
Section = sepc .. " " .. wrap_msg ('section', Section, use_lowercase);
end
At = At .. Inset .. Section;
end
local Others = A['Others'];
if utilities.is_set (Others) and 0 == #a and 0 == #e then -- add maint cat when |others= has value and used without |author=, |editor=
if config.CitationClass == "AV-media-notes"
or config.CitationClass == "audio-visual" then -- special maint for AV/M which has a lot of 'false' positives right now
utilities.set_message ('maint_others_avm')
else
utilities.set_message ('maint_others');
end
end
Others = utilities.is_set (Others) and (sepc .. " " .. Others) or "";
if utilities.is_set (Translators) then
Others = safe_join ({sepc .. ' ', wrap_msg ('translated', Translators, use_lowercase), Others}, sepc);
end
if utilities.is_set (Interviewers) then
Others = safe_join ({sepc .. ' ', wrap_msg ('interview', Interviewers, use_lowercase), Others}, sepc);
end
local TitleNote = A['TitleNote'];
TitleNote = utilities.is_set (TitleNote) and (sepc .. " " .. TitleNote) or "";
if utilities.is_set (Edition) then
if Edition:match ('%f[%a][Ee]d%n?%.?$') or Edition:match ('%f[%a][Ee]dition$') then -- Ed, ed, Ed., ed., Edn, edn, Edn., edn.
utilities.set_message ('err_extra_text_edition'); -- add error message
end
Edition = " " .. wrap_msg ('edition', Edition);
else
Edition = '';
end
Series = utilities.is_set (Series) and wrap_msg ('series', {sepc, Series}) or ""; -- not the same as SeriesNum
local Agency = A['Agency'];
Agency = utilities.is_set (Agency) and wrap_msg ('agency', {sepc, Agency}) or "";
Volume = format_volume_issue (Volume, Issue, config.CitationClass, Periodical_origin, sepc, use_lowercase);
if utilities.is_set (AccessDate) then
local retrv_text = " " .. cfg.messages['retrieved']
AccessDate = nowrap_date (AccessDate); -- wrap in nowrap span if date in appropriate format
if (sepc ~= ".") then retrv_text = retrv_text:lower() end -- if mode is cs2, lower case
AccessDate = utilities.substitute (retrv_text, AccessDate); -- add retrieved text
AccessDate = utilities.substitute (cfg.presentation['accessdate'], {sepc, AccessDate}); -- allow editors to hide accessdates
end
if utilities.is_set (ID) then ID = sepc .. " " .. ID; end
local Docket = A['Docket'];
if "thesis" == config.CitationClass and utilities.is_set (Docket) then
ID = sepc .. " Docket " .. Docket .. ID;
end
if "report" == config.CitationClass and utilities.is_set (Docket) then -- for cite report when |docket= is set
ID = sepc .. ' ' .. Docket; -- overwrite ID even if |id= is set
end
if utilities.is_set (URL) then
URL = " " .. external_link( URL, nil, URL_origin, UrlAccess );
end
local Quote = A['Quote'];
local TransQuote = A['TransQuote'];
local ScriptQuote = A['ScriptQuote'];
if utilities.is_set (Quote) or utilities.is_set (TransQuote) or utilities.is_set (ScriptQuote) then
if utilities.is_set (Quote) then
if Quote:sub(1, 1) == '"' and Quote:sub(-1, -1) == '"' then -- if first and last characters of quote are quote marks
Quote = Quote:sub(2, -2); -- strip them off
end
end
Quote = utilities.wrap_style ('quoted-text', Quote ); -- wrap in <q>...</q> tags
if utilities.is_set (ScriptQuote) then
Quote = script_concatenate (Quote, ScriptQuote, 'script-quote'); -- <bdi> tags, lang attribute, categorization, etc.; must be done after quote is wrapped
end
if utilities.is_set (TransQuote) then
if TransQuote:sub(1, 1) == '"' and TransQuote:sub(-1, -1) == '"' then -- if first and last characters of |trans-quote are quote marks
TransQuote = TransQuote:sub(2, -2); -- strip them off
end
Quote = Quote .. " " .. utilities.wrap_style ('trans-quoted-title', TransQuote );
end
if utilities.is_set (QuotePage) or utilities.is_set (QuotePages) then -- add page prefix
local quote_prefix = '';
if utilities.is_set (QuotePage) then
extra_text_in_page_check (QuotePage, 'quote-page'); -- add to maint cat if |quote-page= value begins with what looks like p., pp., etc.
if not NoPP then
quote_prefix = utilities.substitute (cfg.messages['p-prefix'], {sepc, QuotePage}), '', '', '';
else
quote_prefix = utilities.substitute (cfg.messages['nopp'], {sepc, QuotePage}), '', '', '';
end
elseif utilities.is_set (QuotePages) then
extra_text_in_page_check (QuotePages, 'quote-pages'); -- add to maint cat if |quote-pages= value begins with what looks like p., pp., etc.
if tonumber(QuotePages) ~= nil and not NoPP then -- if only digits, assume single page
quote_prefix = utilities.substitute (cfg.messages['p-prefix'], {sepc, QuotePages}), '', '';
elseif not NoPP then
quote_prefix = utilities.substitute (cfg.messages['pp-prefix'], {sepc, QuotePages}), '', '';
else
quote_prefix = utilities.substitute (cfg.messages['nopp'], {sepc, QuotePages}), '', '';
end
end
Quote = quote_prefix .. ": " .. Quote;
else
Quote = sepc .. " " .. Quote;
end
PostScript = ""; -- cs1|2 does not supply terminal punctuation when |quote= is set
end
-- We check length of PostScript here because it will have been nuked by
-- the quote parameters. We'd otherwise emit a message even if there wasn't
-- a displayed postscript.
-- TODO: Should the max size (1) be configurable?
-- TODO: Should we check a specific pattern?
if utilities.is_set(PostScript) and mw.ustring.len(PostScript) > 1 then
utilities.set_message ('maint_postscript')
end
local Archived;
if utilities.is_set (ArchiveURL) then
local arch_text;
if not utilities.is_set (ArchiveDate) then
utilities.set_message ('err_archive_missing_date');
ArchiveDate = ''; -- empty string for concatenation
end
if "live" == UrlStatus then
arch_text = cfg.messages['archived'];
if sepc ~= "." then arch_text = arch_text:lower() end
if utilities.is_set (ArchiveDate) then
Archived = sepc .. ' ' .. utilities.substitute ( cfg.messages['archived-live'],
{external_link( ArchiveURL, arch_text, A:ORIGIN('ArchiveURL'), nil) .. ArchiveFormat, ArchiveDate } );
else
Archived = '';
end
if not utilities.is_set (OriginalURL) then
utilities.set_message ('err_archive_missing_url');
Archived = ''; -- empty string for concatenation
end
elseif utilities.is_set (OriginalURL) then -- UrlStatus is empty, 'dead', 'unfit', 'usurped', 'bot: unknown'
if utilities.in_array (UrlStatus, {'unfit', 'usurped', 'bot: unknown'}) then
arch_text = cfg.messages['archived-unfit'];
if sepc ~= "." then arch_text = arch_text:lower() end
Archived = sepc .. ' ' .. arch_text .. ArchiveDate; -- format already styled
if 'bot: unknown' == UrlStatus then
utilities.set_message ('maint_bot_unknown'); -- and add a category if not already added
else
utilities.set_message ('maint_unfit'); -- and add a category if not already added
end
else -- UrlStatus is empty, 'dead'
arch_text = cfg.messages['archived-dead'];
if sepc ~= "." then arch_text = arch_text:lower() end
if utilities.is_set (ArchiveDate) then
Archived = sepc .. " " .. utilities.substitute ( arch_text,
{ external_link( OriginalURL, cfg.messages['original'], OriginalURL_origin, OriginalAccess ) .. OriginalFormat, ArchiveDate } ); -- format already styled
else
Archived = ''; -- unset for concatenation
end
end
else -- OriginalUrl not set
arch_text = cfg.messages['archived-missing'];
if sepc ~= "." then arch_text = arch_text:lower() end
utilities.set_message ('err_archive_missing_url');
Archived = ''; -- empty string for concatenation
end
elseif utilities.is_set (ArchiveFormat) then
Archived = ArchiveFormat; -- if set and ArchiveURL not set ArchiveFormat has error message
else
Archived = '';
end
local Lay = '';
local LaySource = A['LaySource'];
local LayURL = A['LayURL'];
local LayFormat = A['LayFormat'];
LayFormat = style_format (LayFormat, LayURL, 'lay-format', 'lay-url');
if utilities.is_set (LayURL) then
if utilities.is_set (LayDate) then LayDate = " (" .. LayDate .. ")" end
if utilities.is_set (LaySource) then
LaySource = " – ''" .. utilities.safe_for_italics (LaySource) .. "''";
else
LaySource = "";
end
if sepc == '.' then
Lay = sepc .. " " .. external_link( LayURL, cfg.messages['lay summary'], A:ORIGIN('LayURL'), nil ) .. LayFormat .. LaySource .. LayDate
else
Lay = sepc .. " " .. external_link( LayURL, cfg.messages['lay summary']:lower(), A:ORIGIN('LayURL'), nil ) .. LayFormat .. LaySource .. LayDate
end
elseif utilities.is_set (LayFormat) then -- Test if |lay-format= is given without giving a |lay-url=
Lay = sepc .. LayFormat; -- if set and LayURL not set, then LayFormat has error message
end
local TranscriptURL = A['TranscriptURL']
local TranscriptFormat = A['TranscriptFormat'];
TranscriptFormat = style_format (TranscriptFormat, TranscriptURL, 'transcript-format', 'transcripturl');
local Transcript = A['Transcript'];
local TranscriptURL_origin = A:ORIGIN('TranscriptURL'); -- get name of parameter that holds TranscriptURL
if utilities.is_set (Transcript) then
if utilities.is_set (TranscriptURL) then
Transcript = external_link( TranscriptURL, Transcript, TranscriptURL_origin, nil );
end
Transcript = sepc .. ' ' .. Transcript .. TranscriptFormat;
elseif utilities.is_set (TranscriptURL) then
Transcript = external_link( TranscriptURL, nil, TranscriptURL_origin, nil );
end
local Publisher;
if utilities.is_set (PublicationDate) then
PublicationDate = wrap_msg ('published', PublicationDate);
end
if utilities.is_set (PublisherName) then
if utilities.is_set (PublicationPlace) then
Publisher = sepc .. " " .. PublicationPlace .. ": " .. PublisherName .. PublicationDate;
else
Publisher = sepc .. " " .. PublisherName .. PublicationDate;
end
elseif utilities.is_set (PublicationPlace) then
Publisher= sepc .. " " .. PublicationPlace .. PublicationDate;
else
Publisher = PublicationDate;
end
local TransPeriodical = A['TransPeriodical'];
local TransPeriodical_origin = A:ORIGIN ('TransPeriodical');
-- Several of the above rely upon detecting this as nil, so do it last.
if (utilities.is_set (Periodical) or utilities.is_set (ScriptPeriodical) or utilities.is_set (TransPeriodical)) then
if utilities.is_set (Title) or utilities.is_set (TitleNote) then
Periodical = sepc .. " " .. format_periodical (ScriptPeriodical, ScriptPeriodical_origin, Periodical, TransPeriodical, TransPeriodical_origin);
else
Periodical = format_periodical (ScriptPeriodical, ScriptPeriodical_origin, Periodical, TransPeriodical, TransPeriodical_origin);
end
end
local Language = A['Language'];
if utilities.is_set (Language) then
Language = language_parameter (Language); -- format, categories, name from ISO639-1, etc.
else
Language=''; -- language not specified so make sure this is an empty string;
--[[ TODO: need to extract the wrap_msg from language_parameter
so that we can solve parentheses bunching problem with Format/Language/TitleType
]]
end
--[[
Handle the oddity that is cite speech. This code overrides whatever may be the value assigned to TitleNote (through |department=) and forces it to be " (Speech)" so that
the annotation directly follows the |title= parameter value in the citation rather than the |event= parameter value (if provided).
]]
if "speech" == config.CitationClass then -- cite speech only
TitleNote = TitleType; -- move TitleType to TitleNote so that it renders ahead of |event=
TitleType = ''; -- and unset
if utilities.is_set (Periodical) then -- if Periodical, perhaps because of an included |website= or |journal= parameter
if utilities.is_set (Conference) then -- and if |event= is set
Conference = Conference .. sepc .. " "; -- then add appropriate punctuation to the end of the Conference variable before rendering
end
end
end
-- Piece all bits together at last. Here, all should be non-nil.
-- We build things this way because it is more efficient in LUA
-- not to keep reassigning to the same string variable over and over.
local tcommon;
local tcommon2; -- used for book cite when |contributor= is set
if utilities.in_array (config.CitationClass, {"journal", "citation"}) and utilities.is_set (Periodical) then
if utilities.is_set (Others) then Others = safe_join ({Others, sepc .. " "}, sepc) end -- add terminal punctuation & space; check for dup sepc; TODO why do we need to do this here?
tcommon = safe_join( {Others, Title, TitleNote, Conference, Periodical, Format, TitleType, Series, Language, Edition, Publisher, Agency, Volume}, sepc );
elseif utilities.in_array (config.CitationClass, {"book", "citation"}) and not utilities.is_set (Periodical) then -- special cases for book cites
if utilities.is_set (Contributors) then -- when we are citing foreword, preface, introduction, etc.
tcommon = safe_join( {Title, TitleNote}, sepc ); -- author and other stuff will come after this and before tcommon2
tcommon2 = safe_join( {Conference, Periodical, Format, TitleType, Series, Language, Volume, Others, Edition, Publisher, Agency}, sepc );
else
tcommon = safe_join( {Title, TitleNote, Conference, Periodical, Format, TitleType, Series, Language, Volume, Others, Edition, Publisher, Agency}, sepc );
end
elseif 'map' == config.CitationClass then -- special cases for cite map
if utilities.is_set (Chapter) then -- map in a book; TitleType is part of Chapter
tcommon = safe_join( {Title, Format, Edition, Scale, Series, Language, Cartography, Others, Publisher, Volume}, sepc );
elseif utilities.is_set (Periodical) then -- map in a periodical
tcommon = safe_join( {Title, TitleType, Format, Periodical, Scale, Series, Language, Cartography, Others, Publisher, Volume}, sepc );
else -- a sheet or stand-alone map
tcommon = safe_join( {Title, TitleType, Format, Edition, Scale, Series, Language, Cartography, Others, Publisher}, sepc );
end
elseif 'episode' == config.CitationClass then -- special case for cite episode
tcommon = safe_join( {Title, TitleNote, TitleType, Series, Language, Edition, Publisher}, sepc );
else -- all other CS1 templates
tcommon = safe_join( {Title, TitleNote, Conference, Periodical, Format, TitleType, Series, Language,
Volume, Others, Edition, Publisher, Agency}, sepc );
end
if #ID_list > 0 then
ID_list = safe_join( { sepc .. " ", table.concat( ID_list, sepc .. " " ), ID }, sepc );
else
ID_list = ID;
end
local Via = A['Via'];
Via = utilities.is_set (Via) and wrap_msg ('via', Via) or '';
local idcommon;
if 'audio-visual' == config.CitationClass or 'episode' == config.CitationClass then -- special case for cite AV media & cite episode position transcript
idcommon = safe_join( { ID_list, URL, Archived, Transcript, AccessDate, Via, Lay, Quote }, sepc );
else
idcommon = safe_join( { ID_list, URL, Archived, AccessDate, Via, Lay, Quote }, sepc );
end
local text;
local pgtext = Position .. Sheet .. Sheets .. Page .. Pages .. At;
local OrigDate = A['OrigDate'];
OrigDate = utilities.is_set (OrigDate) and wrap_msg ('origdate', OrigDate) or '';
if utilities.is_set (Date) then
if utilities.is_set (Authors) or utilities.is_set (Editors) then -- date follows authors or editors when authors not set
Date = " (" .. Date .. ")" .. OrigDate .. sepc .. " "; -- in parentheses
else -- neither of authors and editors set
if (string.sub(tcommon, -1, -1) == sepc) then -- if the last character of tcommon is sepc
Date = " " .. Date .. OrigDate; -- Date does not begin with sepc
else
Date = sepc .. " " .. Date .. OrigDate; -- Date begins with sepc
end
end
end
if utilities.is_set (Authors) then
if (not utilities.is_set (Date)) then -- when date is set it's in parentheses; no Authors termination
Authors = terminate_name_list (Authors, sepc); -- when no date, terminate with 0 or 1 sepc and a space
end
if utilities.is_set (Editors) then
local in_text = " ";
local post_text = "";
if utilities.is_set (Chapter) and 0 == #c then
in_text = in_text .. cfg.messages['in'] .. " "
if (sepc ~= '.') then
in_text = in_text:lower() -- lowercase for cs2
end
end
if EditorCount <= 1 then
post_text = " (" .. cfg.messages['editor'] .. ")"; -- be consistent with no-author, no-date case
else
post_text = " (" .. cfg.messages['editors'] .. ")";
end
Editors = terminate_name_list (in_text .. Editors .. post_text, sepc); -- terminate with 0 or 1 sepc and a space
end
if utilities.is_set (Contributors) then -- book cite and we're citing the intro, preface, etc.
local by_text = sepc .. ' ' .. cfg.messages['by'] .. ' ';
if (sepc ~= '.') then by_text = by_text:lower() end -- lowercase for cs2
Authors = by_text .. Authors; -- author follows title so tweak it here
if utilities.is_set (Editors) and utilities.is_set (Date) then -- when Editors make sure that Authors gets terminated
Authors = terminate_name_list (Authors, sepc); -- terminate with 0 or 1 sepc and a space
end
if (not utilities.is_set (Date)) then -- when date is set it's in parentheses; no Contributors termination
Contributors = terminate_name_list (Contributors, sepc); -- terminate with 0 or 1 sepc and a space
end
text = safe_join( {Contributors, Date, Chapter, tcommon, Authors, Place, Editors, tcommon2, pgtext, idcommon }, sepc );
else
text = safe_join( {Authors, Date, Chapter, Place, Editors, tcommon, pgtext, idcommon }, sepc );
end
elseif utilities.is_set (Editors) then
if utilities.is_set (Date) then
if EditorCount <= 1 then
Editors = Editors .. ", " .. cfg.messages['editor'];
else
Editors = Editors .. ", " .. cfg.messages['editors'];
end
else
if EditorCount <= 1 then
Editors = Editors .. " (" .. cfg.messages['editor'] .. ")" .. sepc .. " "
else
Editors = Editors .. " (" .. cfg.messages['editors'] .. ")" .. sepc .. " "
end
end
text = safe_join( {Editors, Date, Chapter, Place, tcommon, pgtext, idcommon}, sepc );
else
if utilities.in_array (config.CitationClass, {"journal", "citation"}) and utilities.is_set (Periodical) then
text = safe_join( {Chapter, Place, tcommon, pgtext, Date, idcommon}, sepc );
else
text = safe_join( {Chapter, Place, tcommon, Date, pgtext, idcommon}, sepc );
end
end
if utilities.is_set (PostScript) and PostScript ~= sepc then
text = safe_join( {text, sepc}, sepc ); -- Deals with italics, spaces, etc.
text = text:sub(1, -sepc:len() - 1);
end
text = safe_join( {text, PostScript}, sepc );
-- Now enclose the whole thing in a <cite> element
local options_t = {};
options_t.class = cite_class_attribute_make (config.CitationClass, Mode);
local Ref = is_valid_parameter_value (A['Ref'], A:ORIGIN('Ref'), cfg.keywords_lists['ref'], nil, true); -- nil when |ref=harv; A['Ref'] else
if 'none' ~= cfg.keywords_xlate[(Ref and Ref:lower()) or ''] then
local namelist_t = {}; -- holds selected contributor, author, editor name list
local year = first_set ({Year, anchor_year}, 2); -- Year first for legacy citations and for YMD dates that require disambiguation
if #c > 0 then -- if there is a contributor list
namelist_t = c; -- select it
elseif #a > 0 then -- or an author list
namelist_t = a;
elseif #e > 0 then -- or an editor list
namelist_t = e;
end
local citeref_id;
if #namelist_t > 0 then -- if there are names in namelist_t
citeref_id = make_citeref_id (namelist_t, year); -- go make the CITEREF anchor
if mw.uri.anchorEncode (citeref_id) == ((Ref and mw.uri.anchorEncode (Ref)) or '') then -- Ref may already be encoded (by {{sfnref}}) so citeref_id must be encoded before comparison
utilities.set_message ('maint_ref_duplicates_default');
end
else
citeref_id = ''; -- unset
end
options_t.id = Ref or citeref_id;
end
if string.len (text:gsub('%b<>', '')) <= 2 then -- remove html and html-like tags; then get length of what remains;
z.error_cats_t = {}; -- blank the categories list
z.error_msgs_t = {}; -- blank the error messages list
OCinSoutput = nil; -- blank the metadata string
text = ''; -- blank the the citation
utilities.set_message ('err_empty_citation'); -- set empty citation message and category
end
local render_t = {}; -- here we collect the final bits for concatenation into the rendered citation
if utilities.is_set (options_t.id) then -- here we wrap the rendered citation in <cite ...>...</cite> tags
table.insert (render_t, utilities.substitute (cfg.presentation['cite-id'], {mw.uri.anchorEncode(options_t.id), mw.text.nowiki(options_t.class), text})); -- when |ref= is set or when there is a namelist
else
table.insert (render_t, utilities.substitute (cfg.presentation['cite'], {mw.text.nowiki(options_t.class), text})); -- when |ref=none or when namelist_t empty and |ref= is missing or is empty
end
if OCinSoutput then -- blanked when citation is 'empty' so don't bother to add boilerplate metadata span
table.insert (render_t, utilities.substitute (cfg.presentation['ocins'], OCinSoutput)); -- format and append metadata to the citation
end
local template_name = ('citation' == config.CitationClass) and 'citation' or 'cite ' .. (cfg.citation_class_map_t[config.CitationClass] or config.CitationClass);
local template_link = '[[Template:' .. template_name .. '|' .. template_name .. ']]';
local msg_prefix = '<code class="cs1-code">{{' .. template_link .. '}}</code>: ';
if 0 ~= #z.error_msgs_t then
mw.addWarning (utilities.substitute (cfg.messages.warning_msg_e, template_link));
table.insert (render_t, ' '); -- insert a space between citation and its error messages
table.sort (z.error_msgs_t); -- sort the error messages list; sorting includes wrapping <span> and <code> tags; hidden-error sorts ahead of visible-error
local hidden = true; -- presume that the only error messages emited by this template are hidden
for _, v in ipairs (z.error_msgs_t) do -- spin through the list of error messages
if v:find ('cs1-visible-error', 1, true) then -- look for the visible error class name
hidden = false; -- found one; so don't hide the error message prefix
break; -- and done because no need to look further
end
end
z.error_msgs_t[1] = table.concat ({utilities.error_comment (msg_prefix, hidden), z.error_msgs_t[1]}); -- add error message prefix to first error message to prevent extraneous punctuation
table.insert (render_t, table.concat (z.error_msgs_t, '; ')); -- make a big string of error messages and add it to the rendering
end
if 0 ~= #z.maint_cats_t then
mw.addWarning (utilities.substitute (cfg.messages.warning_msg_m, template_link));
table.sort (z.maint_cats_t); -- sort the maintenance messages list
local maint_msgs_t = {}; -- here we collect all of the maint messages
if 0 == #z.error_msgs_t then -- if no error messages
table.insert (maint_msgs_t, msg_prefix); -- insert message prefix in maint message livery
end
for _, v in ipairs( z.maint_cats_t ) do -- append maintenance categories
table.insert (maint_msgs_t, -- assemble new maint message and add it to the maint_msgs_t table
table.concat ({v, ' (', utilities.substitute (cfg.messages[':cat wikilink'], v), ')'})
);
end
table.insert (render_t, utilities.substitute (cfg.presentation['hidden-maint'], table.concat (maint_msgs_t, ' '))); -- wrap the group of maint messages with proper presentation and save
end
if not no_tracking_cats then
for _, v in ipairs (z.error_cats_t) do -- append error categories
table.insert (render_t, utilities.substitute (cfg.messages['cat wikilink'], v));
end
for _, v in ipairs (z.maint_cats_t) do -- append maintenance categories
table.insert (render_t, utilities.substitute (cfg.messages['cat wikilink'], v));
end
for _, v in ipairs (z.prop_cats_t) do -- append properties categories
table.insert (render_t, utilities.substitute (cfg.messages['cat wikilink'], v));
end
end
return table.concat (render_t); -- make a big string and done
end
--[[--------------------------< V A L I D A T E >--------------------------------------------------------------
Looks for a parameter's name in one of several whitelists.
Parameters in the whitelist can have three values:
true - active, supported parameters
false - deprecated, supported parameters
nil - unsupported parameters
]]
local function validate (name, cite_class, empty)
local name = tostring (name);
local enum_name; -- for enumerated parameters, is name with enumerator replaced with '#'
local state;
local function state_test (state, name) -- local function to do testing of state values
if true == state then return true; end -- valid actively supported parameter
if false == state then
if empty then return nil; end -- empty deprecated parameters are treated as unknowns
deprecated_parameter (name); -- parameter is deprecated but still supported
return true;
end
if 'tracked' == state then
local base_name = name:gsub ('%d', ''); -- strip enumerators from parameter names that have them to get the base name
utilities.add_prop_cat ('tracked-param', {base_name}, base_name); -- add a properties category; <base_name> modifies <key>
return true;
end
return nil;
end
if name:find ('#') then -- # is a cs1|2 reserved character so parameters with # not permitted
return nil;
end
if utilities.in_array (cite_class, whitelist.preprint_template_list ) then -- limited parameter sets allowed for these templates
state = whitelist.limited_basic_arguments[name];
if true == state_test (state, name) then return true; end
state = whitelist.preprint_arguments[cite_class][name]; -- look in the parameter-list for the template identified by cite_class
if true == state_test (state, name) then return true; end
-- limited enumerated parameters list
enum_name = name:gsub("%d+", "#" ); -- replace digit(s) with # (last25 becomes last#) (mw.ustring because non-Western 'local' digits)
state = whitelist.limited_numbered_arguments[enum_name];
if true == state_test (state, name) then return true; end
return false; -- not supported because not found or name is set to nil
end -- end limited parameter-set templates
if utilities.in_array (cite_class, whitelist.unique_param_template_list) then -- experiment for template-specific parameters for templates that accept parameters from the basic argument list
state = whitelist.unique_arguments[cite_class][name]; -- look in the template-specific parameter-lists for the template identified by cite_class
if true == state_test (state, name) then return true; end
end -- if here, fall into general validation
state = whitelist.basic_arguments[name]; -- all other templates; all normal parameters allowed
if true == state_test (state, name) then return true; end
-- all enumerated parameters allowed
enum_name = name:gsub("%d+", "#" ); -- replace digit(s) with # (last25 becomes last#) (mw.ustring because non-Western 'local' digits)
state = whitelist.numbered_arguments[enum_name];
if true == state_test (state, name) then return true; end
return false; -- not supported because not found or name is set to nil
end
--[=[-------------------------< I N T E R _ W I K I _ C H E C K >----------------------------------------------
check <value> for inter-language interwiki-link markup. <prefix> must be a MediaWiki-recognized language
code. when these values have the form (without leading colon):
[[<prefix>:link|label]] return label as plain-text
[[<prefix>:link]] return <prefix>:link as plain-text
return value as is else
]=]
local function inter_wiki_check (parameter, value)
local prefix = value:match ('%[%[(%a+):'); -- get an interwiki prefix if one exists
local _;
if prefix and cfg.inter_wiki_map[prefix:lower()] then -- if prefix is in the map, needs preceding colon so
utilities.set_message ('err_bad_paramlink', parameter); -- emit an error message
_, value, _ = utilities.is_wikilink (value); -- extract label portion from wikilink
end
return value;
end
--[[--------------------------< M I S S I N G _ P I P E _ C H E C K >------------------------------------------
Look at the contents of a parameter. If the content has a string of characters and digits followed by an equal
sign, compare the alphanumeric string to the list of cs1|2 parameters. If found, then the string is possibly a
parameter that is missing its pipe. There are two tests made:
{{cite ... |title=Title access-date=2016-03-17}} -- the first parameter has a value and whitespace separates that value from the missing pipe parameter name
{{cite ... |title=access-date=2016-03-17}} -- the first parameter has no value (whitespace after the first = is trimmed by MediaWiki)
cs1|2 shares some parameter names with XML/HTML attributes: class=, title=, etc. To prevent false positives XML/HTML
tags are removed before the search.
If a missing pipe is detected, this function adds the missing pipe maintenance category.
]]
local function missing_pipe_check (parameter, value)
local capture;
value = value:gsub ('%b<>', ''); -- remove XML/HTML tags because attributes: class=, title=, etc.
capture = value:match ('%s+(%a[%w%-]+)%s*=') or value:match ('^(%a[%w%-]+)%s*='); -- find and categorize parameters with possible missing pipes
if capture and validate (capture) then -- if the capture is a valid parameter name
utilities.set_message ('err_missing_pipe', parameter);
end
end
--[[--------------------------< H A S _ E X T R A N E O U S _ P U N C T >--------------------------------------
look for extraneous terminal punctuation in most parameter values; parameters listed in skip table are not checked
]]
local function has_extraneous_punc (param, value)
if 'number' == type (param) then
return;
end
param = param:gsub ('%d+', '#'); -- enumerated name-list mask params allow terminal punct; normalize
if cfg.punct_skip[param] then
return; -- parameter name found in the skip table so done
end
if value:match ('[,;:]$') then
utilities.set_message ('maint_extra_punct'); -- has extraneous punctuation; add maint cat
end
if value:match ('^=') then -- sometimes an extraneous '=' character appears ...
utilities.set_message ('maint_extra_punct'); -- has extraneous punctuation; add maint cat
end
end
--[[--------------------------< H A S _ E X T R A N E O U S _ U R L >------------------------------------------
look for extraneous url parameter values; parameters listed in skip table are not checked
]]
local function has_extraneous_url (url_param_t)
local url_error_t = {};
check_for_url (url_param_t, url_error_t); -- extraneous url check
if 0 ~= #url_error_t then -- non-zero when there are errors
table.sort (url_error_t);
utilities.set_message ('err_param_has_ext_link', {utilities.make_sep_list (#url_error_t, url_error_t)}); -- add this error message
end
end
--[[--------------------------< C I T A T I O N >--------------------------------------------------------------
This is used by templates such as {{cite book}} to create the actual citation text.
]]
local function citation(frame)
Frame = frame; -- save a copy in case we need to display an error message in preview mode
local sandbox = '/sandbox' -- i18n: replace this rvalue with the name that your wiki uses to identify sandbox subpages
is_sandbox = nil ~= string.find (frame:getTitle(), sandbox, 1, true); -- is this invoke the sandbox module?
sandbox = is_sandbox and sandbox or ''; -- use i18n sandbox to load sandbox modules when this module is the sandox; live modules else
local pframe = frame:getParent()
local styles;
cfg = mw.loadData ('Module:Citation/CS1/Configuration' .. sandbox); -- load sandbox versions of support modules when {{#invoke:Citation/CS1/sandbox|...}}; live modules else
whitelist = mw.loadData ('Module:Citation/CS1/Whitelist' .. sandbox);
utilities = require ('Module:Citation/CS1/Utilities' .. sandbox);
validation = require ('Module:Citation/CS1/Date_validation' .. sandbox);
identifiers = require ('Module:Citation/CS1/Identifiers' .. sandbox);
metadata = require ('Module:Citation/CS1/COinS' .. sandbox);
styles = 'Module:Citation/CS1' .. sandbox .. '/styles.css';
utilities.set_selected_modules (cfg); -- so that functions in Utilities can see the selected cfg tables
identifiers.set_selected_modules (cfg, utilities); -- so that functions in Identifiers can see the selected cfg tables and selected Utilities module
validation.set_selected_modules (cfg, utilities); -- so that functions in Date validataion can see selected cfg tables and the selected Utilities module
metadata.set_selected_modules (cfg, utilities); -- so that functions in COinS can see the selected cfg tables and selected Utilities module
z = utilities.z; -- table of error and category tables in Module:Citation/CS1/Utilities
is_preview_mode = not utilities.is_set (frame:preprocess ('{{REVISIONID}}'));
local args = {}; -- table where we store all of the template's arguments
local suggestions = {}; -- table where we store suggestions if we need to loadData them
local error_text; -- used as a flag
local config = {}; -- table to store parameters from the module {{#invoke:}}
for k, v in pairs( frame.args ) do -- get parameters from the {{#invoke}} frame
config[k] = v;
-- args[k] = v; -- crude debug support that allows us to render a citation from module {{#invoke:}}; skips parameter validation; TODO: keep?
end
local capture; -- the single supported capture when matching unknown parameters using patterns
local empty_unknowns = {}; -- sequence table to hold empty unknown params for error message listing
for k, v in pairs( pframe.args ) do -- get parameters from the parent (template) frame
v = mw.ustring.gsub (v, '^%s*(.-)%s*$', '%1'); -- trim leading/trailing whitespace; when v is only whitespace, becomes empty string
if v ~= '' then
if ('string' == type (k)) then
k = mw.ustring.gsub (k, '%d', cfg.date_names.local_digits); -- for enumerated parameters, translate 'local' digits to Western 0-9
end
if not validate( k, config.CitationClass ) then
if type (k) ~= 'string' then -- exclude empty numbered parameters
if v:match("%S+") ~= nil then
error_text = utilities.set_message ('err_text_ignored', {v});
end
elseif validate (k:lower(), config.CitationClass) then
error_text = utilities.set_message ('err_parameter_ignored_suggest', {k, k:lower()}); -- suggest the lowercase version of the parameter
else
if nil == suggestions.suggestions then -- if this table is nil then we need to load it
if is_sandbox then -- did the {{#invoke:}} use sandbox version?
suggestions = mw.loadData( 'Module:Citation/CS1/Suggestions/sandbox' ); -- use the sandbox version
else
suggestions = mw.loadData( 'Module:Citation/CS1/Suggestions' ); -- use the live version
end
end
for pattern, param in pairs (suggestions.patterns) do -- loop through the patterns to see if we can suggest a proper parameter
capture = k:match (pattern); -- the whole match if no capture in pattern else the capture if a match
if capture then -- if the pattern matches
param = utilities.substitute (param, capture); -- add the capture to the suggested parameter (typically the enumerator)
if validate (param, config.CitationClass) then -- validate the suggestion to make sure that the suggestion is supported by this template (necessary for limited parameter lists)
error_text = utilities.set_message ('err_parameter_ignored_suggest', {k, param}); -- set the suggestion error message
else
error_text = utilities.set_message ('err_parameter_ignored', {k}); -- suggested param not supported by this template
v = ''; -- unset
end
end
end
if not utilities.is_set (error_text) then -- couldn't match with a pattern, is there an explicit suggestion?
if (suggestions.suggestions[ k:lower() ] ~= nil) and validate (suggestions.suggestions[ k:lower() ], config.CitationClass) then
utilities.set_message ('err_parameter_ignored_suggest', {k, suggestions.suggestions[ k:lower() ]});
else
utilities.set_message ('err_parameter_ignored', {k});
v = ''; -- unset value assigned to unrecognized parameters (this for the limited parameter lists)
end
end
end
end
args[k] = v; -- save this parameter and its value
elseif not utilities.is_set (v) then -- for empty parameters
if not validate (k, config.CitationClass, true) then -- is this empty parameter a valid parameter
k = ('' == k) and '(empty string)' or k; -- when k is empty string (or was space(s) trimmed to empty string), replace with descriptive text
table.insert (empty_unknowns, utilities.wrap_style ('parameter', k)); -- format for error message and add to the list
end
-- crude debug support that allows us to render a citation from module {{#invoke:}} TODO: keep?
-- elseif args[k] ~= nil or (k == 'postscript') then -- when args[k] has a value from {{#invoke}} frame (we don't normally do that)
-- args[k] = v; -- overwrite args[k] with empty string from pframe.args[k] (template frame); v is empty string here
end -- not sure about the postscript bit; that gets handled in parameter validation; historical artifact?
end
if 0 ~= #empty_unknowns then -- create empty unknown error message
utilities.set_message ('err_param_unknown_empty', {
1 == #empty_unknowns and '' or 's',
utilities.make_sep_list (#empty_unknowns, empty_unknowns)
});
end
local url_param_t = {};
for k, v in pairs( args ) do
if 'string' == type (k) then -- don't evaluate positional parameters
has_invisible_chars (k, v); -- look for invisible characters
end
has_extraneous_punc (k, v); -- look for extraneous terminal punctuation in parameter values
missing_pipe_check (k, v); -- do we think that there is a parameter that is missing a pipe?
args[k] = inter_wiki_check (k, v); -- when language interwiki-linked parameter missing leading colon replace with wiki-link label
if 'string' == type (k) and not cfg.url_skip[k] then -- when parameter k is not positional and not in url skip table
url_param_t[k] = v; -- make a parameter/value list for extraneous url check
end
end
has_extraneous_url (url_param_t); -- look for url in parameter values where a url does not belong
return table.concat ({
frame:extensionTag ('templatestyles', '', {src=styles}),
citation0( config, args)
});
end
--[[--------------------------< E X P O R T E D F U N C T I O N S >------------------------------------------
]]
return {citation = citation};
3vi7742np0stk4u2lgaybhrl6z09c5n
Module:Citation/CS1/sandbox/doc
828
1629
15094
2022-07-17T13:19:29Z
Kambai Akau
15
Created page with "<section begin=header /> {{sandbox other|| {{#switch:{{FULLPAGENAME}} |Module:Citation/CS1={{high-risk |article-space=yes}} {{Uses TemplateStyles|Module:Citation/CS1/styles.css}} |Module:Citation/CS1/Configuration={{high-risk |article-space=yes}} |Module:Citation/CS1/Whitelist={{high-risk |article-space=yes}} |Module:Citation/CS1/Date validation={{high-risk |article-space=yes}} |Module:Citation/CS1/Identifiers={{high-risk |article-space=yes}} |Module:Citation/CS1/Utiliti..."
wikitext
text/x-wiki
<section begin=header />
{{sandbox other||
{{#switch:{{FULLPAGENAME}}
|Module:Citation/CS1={{high-risk |article-space=yes}} {{Uses TemplateStyles|Module:Citation/CS1/styles.css}}
|Module:Citation/CS1/Configuration={{high-risk |article-space=yes}}
|Module:Citation/CS1/Whitelist={{high-risk |article-space=yes}}
|Module:Citation/CS1/Date validation={{high-risk |article-space=yes}}
|Module:Citation/CS1/Identifiers={{high-risk |article-space=yes}}
|Module:Citation/CS1/Utilities={{high-risk |article-space=yes}}
|Module:Citation/CS1/COinS={{high-risk |article-space=yes}}
|Module:Citation/CS1/Suggestions={{high-use |article-space=yes}}
}}
{{Module rating|p}}}}<!-- if pagename does not contain sandbox -->
<section end=header />
This module and associated sub-modules support the {{cs1}} and {{cs2}} citation templates. In general, it is not intended to be called directly, but is called by one of the core CS1 and CS2 templates.
<section begin=module_components_table />
These files comprise the module support for CS1|2 citation templates:
{| class="wikitable" style="margin: 1em auto 1em auto;"
|+CS1 {{pipe}} CS2 modules
|-
!colspan="2"|live!!colspan="2"|sandbox!!diff!!description
|-
| rowspan="8"| [[File:Full-protection-shackle.svg|20px|alt=Gold padlock|link=|sysop]] || [[Module:Citation/CS1]] || [[Module:Citation/CS1/sandbox]] || {{Plain link|url=https://en.wikipedia.org/w/index.php?title=Module:Citation/CS1/sandbox&action=edit|name=[edit<nowiki>]</nowiki>}} ||[https://en.wikipedia.org/wiki/Special:ComparePages?page1=Module%3ACitation%2FCS1&rev1=&page2=Module%3ACitation%2FCS1%2Fsandbox&rev2=&action=&diffonly=&unhide= diff]|| Rendering and support functions
|-
| [[Module:Citation/CS1/Configuration]] || [[Module:Citation/CS1/Configuration/sandbox]] || {{Plain link|url=https://en.wikipedia.org/w/index.php?title=Module:Citation/CS1/Configuration/sandbox&action=edit|name=[edit<nowiki>]</nowiki>}} ||[https://en.wikipedia.org/wiki/Special:ComparePages?page1=Module%3ACitation%2FCS1%2FConfiguration&rev1=&page2=Module%3ACitation%2FCS1%2FConfiguration%2Fsandbox&rev2=&action=&diffonly=&unhide= diff]|| Translation tables; error and identifier handlers
|-
| [[Module:Citation/CS1/Whitelist]] || [[Module:Citation/CS1/Whitelist/sandbox]] || {{Plain link|url=https://en.wikipedia.org/w/index.php?title=Module:Citation/CS1/Whitelist/sandbox&action=edit|name=[edit<nowiki>]</nowiki>}} ||[https://en.wikipedia.org/wiki/Special:ComparePages?page1=Module%3ACitation%2FCS1%2FWhitelist&rev1=&page2=Module%3ACitation%2FCS1%2FWhitelist%2Fsandbox&rev2=&action=&diffonly=&unhide= diff]|| List of active and deprecated CS1{{pipe}}2 parameters
|-
| [[Module:Citation/CS1/Date validation]] || [[Module:Citation/CS1/Date validation/sandbox]] || {{Plain link|url=https://en.wikipedia.org/w/index.php?title=Module:Citation/CS1/Date_validation/sandbox&action=edit|name=[edit<nowiki>]</nowiki>}} ||[https://en.wikipedia.org/wiki/Special:ComparePages?page1=Module%3ACitation%2FCS1%2FDate+validation&rev1=&page2=Module%3ACitation%2FCS1%2FDate+validation%2Fsandbox&rev2=&action=&diffonly=&unhide= diff] || Date format validation functions
|-
| [[Module:Citation/CS1/Identifiers]] || [[Module:Citation/CS1/Identifiers/sandbox]] || {{Plain link|url=https://en.wikipedia.org/w/index.php?title=Module:Citation/CS1/Identifiers/sandbox&action=edit|name=[edit<nowiki>]</nowiki>}} ||[https://en.wikipedia.org/wiki/Special:ComparePages?page1=Module%3ACitation%2FCS1%2FIdentifiers&rev1=&page2=Module%3ACitation%2FCS1%2FIdentifiers%2Fsandbox&rev2=&action=&diffonly=&unhide= diff]|| Functions that support the named identifiers (ISBN, DOI, PMID, etc.)
|-
| [[Module:Citation/CS1/Utilities]] || [[Module:Citation/CS1/Utilities/sandbox]] || {{Plain link|url=https://en.wikipedia.org/w/index.php?title=Module:Citation/CS1/Utilities/sandbox&action=edit|name=[edit<nowiki>]</nowiki>}} ||[https://en.wikipedia.org/wiki/Special:ComparePages?page1=Module%3ACitation%2FCS1%2FUtilities&rev1=&page2=Module%3ACitation%2FCS1%2FUtilities%2Fsandbox&rev2=&action=&diffonly=&unhide= diff]|| Common functions and tables
|-
| [[Module:Citation/CS1/COinS]] || [[Module:Citation/CS1/COinS/sandbox]] || {{Plain link|url=https://en.wikipedia.org/w/index.php?title=Module:Citation/CS1/COinS/sandbox&action=edit|name=[edit<nowiki>]</nowiki>}} ||[https://en.wikipedia.org/wiki/Special:ComparePages?page1=Module%3ACitation%2FCS1%2FCOinS&rev1=&page2=Module%3ACitation%2FCS1%2FCOinS%2Fsandbox&rev2=&action=&diffonly=&unhide= diff]|| Functions that render a CS1{{pipe}}2 template's metadata
|-
| [[Module:Citation/CS1/styles.css]] || [[Module:Citation/CS1/sandbox/styles.css]] || {{Plain link|url=https://en.wikipedia.org/w/index.php?title=Module:Citation/CS1/sandbox/styles.css&action=edit|name=[edit<nowiki>]</nowiki>}} ||[https://en.wikipedia.org/wiki/Special:ComparePages?page1=Module%3ACitation%2FCS1%2Fstyles.css&rev1=&page2=Module%3ACitation%2FCS1%2Fsandbox%2Fstyles.css&rev2=&action=&diffonly=&unhide= diff]|| [[CSS]] styles applied to the CS1{{pipe}}2 templates
|-
| [[File:Template-protection-shackle.svg|20px|alt=Silver padlock|link=|auto confirmed]] || [[Module:Citation/CS1/Suggestions]] || [[Module:Citation/CS1/Suggestions/sandbox]] || {{Plain link|url=https://en.wikipedia.org/w/index.php?title=Module:Citation/CS1/Suggestions/sandbox&action=edit|name=[edit<nowiki>]</nowiki>}} ||[https://en.wikipedia.org/wiki/Special:ComparePages?page1=Module%3ACitation%2FCS1%2FSuggestions&rev1=&page2=Module%3ACitation%2FCS1%2FSuggestions%2Fsandbox&rev2=&action=&diffonly=&unhide= diff]|| List that maps common erroneous parameter names to valid parameter names
|}
<section end=module_components_table />
Other documentation:
* [[Module talk:Citation/CS1/Feature requests]]
* [[Module talk:Citation/CS1/COinS]]
* [[Module:Cs1 documentation support]] – a set of functions (some experimental) that extract information from the module suite for the purpose of documenting CS1|2
** [[Module:Citation/CS1/doc/Category list]] – lists of category names taken directly from [[Module:Citation/CS1/Configuration]] and [[Module:Citation/CS1/Configuration/sandbox]]
testcases
*[[Module:Citation/CS1/testcases]] ([[Module talk:Citation/CS1/testcases|run]])
*[[Module:Citation/CS1/testcases/errors]] ([[Module talk:Citation/CS1/testcases/errors|run]]) – error and maintenance messaging
*[[Module:Citation/CS1/testcases/dates]] ([[Module talk:Citation/CS1/testcases/dates|run]]) – date validation
*[[Module:Citation/CS1/testcases/identifiers]] ([[Module talk:Citation/CS1/testcases/identifiers|run]]) – identifiers
*[[Module:Citation/CS1/testcases/anchor]] ([[Module talk:Citation/CS1/testcases/anchor|run]]) – CITEREF anchors
<includeonly>{{sandbox other||
[[Category:Modules that add a tracking category]]
{{#ifeq:{{SUBPAGENAME}}|Identifiers|[[Category:Modules using data from Wikidata]]}}
}}</includeonly>
90o000qa68o1e8pjfwsvpqxp44snxtg
Module:Citation/CS1/Configuration/sandbox
828
1630
15095
2022-07-17T13:20:56Z
Kambai Akau
15
Created page with "--[[ History of changes since last sync: 2022-07-01 2022-07-09: i18n change for uncategorized namespaces; see Help_talk:Citation_Style_1#i18n_uncategorized_namespace_list 2022-07-10: add script tag pa; ]] local lang_obj = mw.language.getContentLanguage(); -- make a language object for the local language; used here for languages and dates --[[--------------------------< U N C A T E G O R I Z E D _ N A M E S P A C E S >------------------------------ List of na..."
Scribunto
text/plain
--[[
History of changes since last sync: 2022-07-01
2022-07-09: i18n change for uncategorized namespaces; see Help_talk:Citation_Style_1#i18n_uncategorized_namespace_list
2022-07-10: add script tag pa;
]]
local lang_obj = mw.language.getContentLanguage(); -- make a language object for the local language; used here for languages and dates
--[[--------------------------< U N C A T E G O R I Z E D _ N A M E S P A C E S >------------------------------
List of namespaces identifiers for namespaces that will not be included in citation error categories.
Same as setting notracking = true by default.
For wikis that have a current version of Module:cs1 documentation support, this #invoke will return an unordered
list of namespace names and their associated identifiers:
{{#invoke:cs1 documentation support|uncategorized_namespace_lister|all=<anything>}}
]]
uncategorized_namespaces_t = {[2]=true}; -- init with user namespace id
for k, _ in pairs (mw.site.talkNamespaces) do -- add all talk namespace ids
uncategorized_namespaces_t[k] = true;
end
local uncategorized_subpages = {'/[Ss]andbox', '/[Tt]estcases', '/[^/]*[Ll]og', '/[Aa]rchive'}; -- list of Lua patterns found in page names of pages we should not categorize
--[[--------------------------< M E S S A G E S >--------------------------------------------------------------
Translation table
The following contains fixed text that may be output as part of a citation.
This is separated from the main body to aid in future translations of this
module.
]]
local messages = {
['agency'] = '$1 $2', -- $1 is sepc, $2 is agency
['archived-dead'] = 'Archived from $1 on $2',
['archived-live'] = '$1 from the original on $2',
['archived-missing'] = 'Archived from the original$1 on $2',
['archived-unfit'] = 'Archived from the original on ',
['archived'] = 'Archived',
['by'] = 'By', -- contributions to authored works: introduction, foreword, afterword
['cartography'] = 'Cartography by $1',
['editor'] = 'ed.',
['editors'] = 'eds.',
['edition'] = '($1 ed.)',
['episode'] = 'Episode $1',
['et al'] = 'et al.',
['in'] = 'In', -- edited works
['inactive'] = 'inactive',
['inset'] = '$1 inset',
['interview'] = 'Interviewed by $1',
['lay summary'] = 'Lay summary',
['mismatch'] = '<code class="cs1-code">|$1=</code> / <code class="cs1-code">|$2=</code> mismatch', -- $1 is year param name; $2 is date param name
['newsgroup'] = '[[Usenet newsgroup|Newsgroup]]: $1',
['notitle'] = 'No title', -- for |title=(()) and (in the future) |title=none
['original'] = 'the original',
['origdate'] = ' [$1]',
['published'] = ' (published $1)',
['retrieved'] = 'Retrieved $1',
['season'] = 'Season $1',
['section'] = '§ $1',
['sections'] = '§§ $1',
['series'] = '$1 $2', -- $1 is sepc, $2 is series
['seriesnum'] = 'Series $1',
['translated'] = 'Translated by $1',
['type'] = ' ($1)', -- for titletype
['written'] = 'Written at $1',
['vol'] = '$1 Vol. $2', -- $1 is sepc; bold journal style volume is in presentation{}
['vol-no'] = '$1 Vol. $2, no. $3', -- sepc, volume, issue (alternatively insert $1 after $2, but then we'd also have to change capitalization)
['issue'] = '$1 No. $2', -- $1 is sepc
['j-vol'] = '$1 $2', -- sepc, volume; bold journal volume is in presentation{}
['j-issue'] = ' ($1)',
['nopp'] = '$1 $2'; -- page(s) without prefix; $1 is sepc
['p-prefix'] = "$1 p. $2", -- $1 is sepc
['pp-prefix'] = "$1 pp. $2", -- $1 is sepc
['j-page(s)'] = ': $1', -- same for page and pages
['sheet'] = '$1 Sheet $2', -- $1 is sepc
['sheets'] = '$1 Sheets $2', -- $1 is sepc
['j-sheet'] = ': Sheet $1',
['j-sheets'] = ': Sheets $1',
['language'] = '(in $1)',
['via'] = " – via $1",
['event'] = 'Event occurs at',
['minutes'] = 'minutes in',
-- Determines the location of the help page
['help page link'] = 'Help:CS1 errors',
['help page label'] = 'help',
-- categories
['cat wikilink'] = '[[Category:$1]]', -- $1 is the category name
[':cat wikilink'] = '[[:Category:$1|link]]', -- category name as maintenance message wikilink; $1 is the category name
-- Internal errors (should only occur if configuration is bad)
['undefined_error'] = 'Called with an undefined error condition',
['unknown_ID_key'] = 'Unrecognized ID key: ', -- an ID key in id_handlers not found in ~/Identifiers func_map{}
['unknown_ID_access'] = 'Unrecognized ID access keyword: ', -- an ID access keyword in id_handlers not found in keywords_lists['id-access']{}
['unknown_argument_map'] = 'Argument map not defined for this variable',
['bare_url_no_origin'] = 'Bare URL found but origin indicator is nil or empty',
['warning_msg_e'] = '<span style="color:#d33">One or more <code style="color: inherit; background: inherit; border: none; padding: inherit;">{{$1}}</code> templates have errors</span>; messages may be hidden ([[Help:CS1_errors#Controlling_error_message_display|help]]).'; -- $1 is template link
['warning_msg_m'] = '<span style="color:#3a3">One or more <code style="color: inherit; background: inherit; border: none; padding: inherit;">{{$1}}</code> templates have maintenance messages</span>; messages may be hidden ([[Help:CS1_errors#Controlling_error_message_display|help]]).'; -- $1 is template link
}
--[[--------------------------< C I T A T I O N _ C L A S S _ M A P >------------------------------------------
this table maps the value assigned to |CitationClass= in the cs1|2 templates to the canonical template name when
the value assigned to |CitationClass= is different from the canonical template name. |CitationClass= values are
used as class attributes in the <cite> tag that encloses the citation so these names may not contain spaces while
the canonical template name may. These names are used in warning_msg_e and warning_msg_m to create links to the
template's documentation when an article is displayed in preivew mode.
Most cs1|2 template |CitationClass= values at en.wiki match their canonical template names so are not listed here.
]]
local citation_class_map_t = { -- TODO: if kept, these and all other config.CitationClass 'names' require some sort of i18n
['audio-visual'] = 'AV media',
['AV-media-notes'] = 'AV media notes',
['encyclopaedia'] = 'encyclopedia',
['mailinglist'] = 'mailing list',
['pressrelease'] = 'press release'
}
--[=[-------------------------< E T _ A L _ P A T T E R N S >--------------------------------------------------
This table provides Lua patterns for the phrase "et al" and variants in name text
(author, editor, etc.). The main module uses these to identify and emit the 'etal' message.
]=]
local et_al_patterns = {
"[;,]? *[\"']*%f[%a][Ee][Tt]%.? *[Aa][Ll][%.;,\"']*$", -- variations on the 'et al' theme
"[;,]? *[\"']*%f[%a][Ee][Tt]%.? *[Aa][Ll][Ii][AaIi][Ee]?[%.;,\"']*$", -- variations on the 'et alia', 'et alii' and 'et aliae' themes (false positive 'et aliie' unlikely to match)
"[;,]? *%f[%a]and [Oo]thers", -- an alternative to et al.
"%[%[ *[Ee][Tt]%.? *[Aa][Ll]%.? *%]%]", -- a wikilinked form
"%(%( *[Ee][Tt]%.? *[Aa][Ll]%.? *%)%)", -- a double-bracketed form (to counter partial removal of ((...)) syntax)
"[%(%[] *[Ee][Tt]%.? *[Aa][Ll]%.? *[%)%]]", -- a bracketed form
}
--[[--------------------------< P R E S E N T A T I O N >------------------------
Fixed presentation markup. Originally part of citation_config.messages it has
been moved into its own, more semantically correct place.
]]
local presentation =
{
-- .citation-comment class is specified at Help:CS1_errors#Controlling_error_message_display
['hidden-error'] = '<span class="cs1-hidden-error citation-comment">$1</span>',
['visible-error'] = '<span class="cs1-visible-error citation-comment">$1</span>',
['hidden-maint'] = '<span class="cs1-maint citation-comment">$1</span>',
['accessdate'] = '<span class="reference-accessdate">$1$2</span>', -- to allow editors to hide accessdate using personal CSS
['bdi'] = '<bdi$1>$2</bdi>', -- bidirectional isolation used with |script-title= and the like
['cite'] = '<cite class="$1">$2</cite>'; -- for use when citation does not have a namelist and |ref= not set so no id="..." attribute
['cite-id'] = '<cite id="$1" class="$2">$3</cite>'; -- for use when when |ref= is set or when citation has a namelist
['format'] = ' <span class="cs1-format">($1)</span>', -- for |format=, |chapter-format=, etc.
-- various access levels, for |access=, |doi-access=, |arxiv=, ...
-- narrow no-break space   may work better than nowrap CSS. Or not? Browser support?
['ext-link-access-signal'] = '<span class="$1" title="$2">$3</span>', -- external link with appropriate lock icon
['free'] = {class='cs1-lock-free', title='Freely accessible'}, -- classes defined in Module:Citation/CS1/styles.css
['registration'] = {class='cs1-lock-registration', title='Free registration required'},
['limited'] = {class='cs1-lock-limited', title='Free access subject to limited trial, subscription normally required'},
['subscription'] = {class='cs1-lock-subscription', title='Paid subscription required'},
['interwiki-icon'] = '<span class="$1" title="$2">$3</span>',
['class-wikisource'] = 'cs1-ws-icon',
['italic-title'] = "''$1''",
['kern-left'] = '<span class="cs1-kern-left"></span>$1', -- spacing to use when title contains leading single or double quote mark
['kern-right'] = '$1<span class="cs1-kern-right"></span>', -- spacing to use when title contains trailing single or double quote mark
['nowrap1'] = '<span class="nowrap">$1</span>', -- for nowrapping an item: <span ...>yyyy-mm-dd</span>
['nowrap2'] = '<span class="nowrap">$1</span> $2', -- for nowrapping portions of an item: <span ...>dd mmmm</span> yyyy (note white space)
['ocins'] = '<span title="$1" class="Z3988"></span>',
['parameter'] = '<code class="cs1-code">|$1=</code>',
['ps_cs1'] = '.'; -- CS1 style postscript (terminal) character
['ps_cs2'] = ''; -- CS2 style postscript (terminal) character (empty string)
['quoted-text'] = '<q>$1</q>', -- for wrapping |quote= content
['quoted-title'] = '"$1"',
['sep_cs1'] = '.', -- CS1 element separator
['sep_cs2'] = ',', -- CS2 separator
['sep_nl'] = ';', -- CS1|2 style name-list separator between names is a semicolon
['sep_nl_and'] = ' and ', -- used as last nl sep when |name-list-style=and and list has 2 items
['sep_nl_end'] = '; and ', -- used as last nl sep when |name-list-style=and and list has 3+ names
['sep_name'] = ', ', -- CS1|2 style last/first separator is <comma><space>
['sep_nl_vanc'] = ',', -- Vancouver style name-list separator between authors is a comma
['sep_name_vanc'] = ' ', -- Vancouver style last/first separator is a space
['sep_list'] = ', ', -- used for |language= when list has 3+ items except for last sep which uses sep_list_end
['sep_list_pair'] = ' and ', -- used for |language= when list has 2 items
['sep_list_end'] = ', and ', -- used as last list sep for |language= when list has 3+ items
['trans-italic-title'] = "[''$1'']",
['trans-quoted-title'] = "[$1]", -- for |trans-title= and |trans-quote=
['vol-bold'] = '$1 <b>$2</b>', -- sepc, volume; for bold journal cites; for other cites ['vol'] in messages{}
}
--[[--------------------------< A L I A S E S >---------------------------------
Aliases table for commonly passed parameters.
Parameter names on the right side in the assignments in this table must have been
defined in the Whitelist before they will be recognized as valid parameter names
]]
local aliases = {
['AccessDate'] = {'access-date', 'accessdate'}, -- Used by InternetArchiveBot
['Agency'] = 'agency',
['ArchiveDate'] = {'archive-date', 'archivedate'}, -- Used by InternetArchiveBot
['ArchiveFormat'] = 'archive-format',
['ArchiveURL'] = {'archive-url', 'archiveurl'}, -- Used by InternetArchiveBot
['ASINTLD'] = 'asin-tld',
['At'] = 'at', -- Used by InternetArchiveBot
['Authors'] = {'authors', 'people', 'credits'},
['BookTitle'] = {'book-title', 'booktitle'},
['Cartography'] = 'cartography',
['Chapter'] = {'chapter', 'contribution', 'entry', 'article', 'section'},
['ChapterFormat'] = {'chapter-format', 'contribution-format', 'entry-format',
'article-format', 'section-format'};
['ChapterURL'] = {'chapter-url', 'contribution-url', 'entry-url', 'article-url', 'section-url', 'chapterurl'}, -- Used by InternetArchiveBot
['ChapterUrlAccess'] = {'chapter-url-access', 'contribution-url-access',
'entry-url-access', 'article-url-access', 'section-url-access'}, -- Used by InternetArchiveBot
['Class'] = 'class', -- cite arxiv and arxiv identifier
['Collaboration'] = 'collaboration',
['Conference'] = {'conference', 'event'},
['ConferenceFormat'] = 'conference-format',
['ConferenceURL'] = 'conference-url', -- Used by InternetArchiveBot
['Date'] = {'date', 'air-date', 'airdate'}, -- air-date and airdate for cite episode and cite serial only
['Degree'] = 'degree',
['DF'] = 'df',
['DisplayAuthors'] = {'display-authors', 'display-subjects'},
['DisplayContributors'] = 'display-contributors',
['DisplayEditors'] = 'display-editors',
['DisplayInterviewers'] = 'display-interviewers',
['DisplayTranslators'] = 'display-translators',
['Docket'] = 'docket',
['DoiBroken'] = 'doi-broken-date',
['Edition'] = 'edition',
['Embargo'] = 'pmc-embargo-date',
['Encyclopedia'] = {'encyclopedia', 'encyclopaedia', 'dictionary'}, -- cite encyclopedia only
['Episode'] = 'episode', -- cite serial only TODO: make available to cite episode?
['Format'] = 'format',
['ID'] = {'id', 'ID'},
['Inset'] = 'inset',
['Issue'] = {'issue', 'number'},
['Language'] = {'language', 'lang'},
['LayDate'] = 'lay-date',
['LayFormat'] = 'lay-format',
['LaySource'] = 'lay-source',
['LayURL'] = 'lay-url',
['MailingList'] = {'mailing-list', 'mailinglist'}, -- cite mailing list only
['Map'] = 'map', -- cite map only
['MapFormat'] = 'map-format', -- cite map only
['MapURL'] = {'map-url', 'mapurl'}, -- cite map only -- Used by InternetArchiveBot
['MapUrlAccess'] = 'map-url-access', -- cite map only -- Used by InternetArchiveBot
['Minutes'] = 'minutes',
['Mode'] = 'mode',
['NameListStyle'] = 'name-list-style',
['Network'] = 'network',
['Newsgroup'] = 'newsgroup', -- cite newsgroup only
['NoPP'] = {'no-pp', 'nopp'},
['NoTracking'] = {'no-tracking', 'template-doc-demo'},
['Number'] = 'number', -- this case only for cite techreport
['OrigDate'] = {'orig-date', 'orig-year', 'origyear'},
['Others'] = 'others',
['Page'] = {'page', 'p'}, -- Used by InternetArchiveBot
['Pages'] = {'pages', 'pp'}, -- Used by InternetArchiveBot
['Periodical'] = {'journal', 'magazine', 'newspaper', 'periodical', 'website', 'work'},
['Place'] = {'place', 'location'},
['PostScript'] = 'postscript',
['PublicationDate'] = {'publication-date', 'publicationdate'},
['PublicationPlace'] = {'publication-place', 'publicationplace'},
['PublisherName'] = {'publisher', 'institution'},
['Quote'] = {'quote', 'quotation'},
['QuotePage'] = 'quote-page',
['QuotePages'] = 'quote-pages',
['Ref'] = 'ref',
['Scale'] = 'scale',
['ScriptChapter'] = {'script-chapter', 'script-contribution', 'script-entry',
'script-article', 'script-section'},
['ScriptMap'] = 'script-map',
['ScriptPeriodical'] = {'script-journal', 'script-magazine', 'script-newspaper',
'script-periodical', 'script-website', 'script-work'},
['ScriptQuote'] = 'script-quote',
['ScriptTitle'] = 'script-title', -- Used by InternetArchiveBot
['Season'] = 'season',
['Sections'] = 'sections', -- cite map only
['Series'] = {'series', 'version'},
['SeriesLink'] = {'series-link', 'serieslink'},
['SeriesNumber'] = {'series-number', 'series-no'},
['Sheet'] = 'sheet', -- cite map only
['Sheets'] = 'sheets', -- cite map only
['Station'] = 'station',
['Time'] = 'time',
['TimeCaption'] = 'time-caption',
['Title'] = 'title', -- Used by InternetArchiveBot
['TitleLink'] = {'title-link', 'episode-link', 'episodelink'}, -- Used by InternetArchiveBot
['TitleNote'] = 'department',
['TitleType'] = {'type', 'medium'},
['TransChapter'] = {'trans-article', 'trans-chapter', 'trans-contribution',
'trans-entry', 'trans-section'},
['Transcript'] = 'transcript',
['TranscriptFormat'] = 'transcript-format',
['TranscriptURL'] = {'transcript-url', 'transcripturl'}, -- Used by InternetArchiveBot
['TransMap'] = 'trans-map', -- cite map only
['TransPeriodical'] = {'trans-journal', 'trans-magazine', 'trans-newspaper',
'trans-periodical', 'trans-website', 'trans-work'},
['TransQuote'] = 'trans-quote',
['TransTitle'] = 'trans-title', -- Used by InternetArchiveBot
['URL'] = {'url', 'URL'}, -- Used by InternetArchiveBot
['UrlAccess'] = 'url-access', -- Used by InternetArchiveBot
['UrlStatus'] = 'url-status', -- Used by InternetArchiveBot
['Vauthors'] = 'vauthors',
['Veditors'] = 'veditors',
['Via'] = 'via',
['Volume'] = 'volume',
['Year'] = 'year',
['AuthorList-First'] = {"first#", "author-first#", "author#-first", "given#",
"author-given#", "author#-given"},
['AuthorList-Last'] = {"last#", "author-last#", "author#-last", "surname#",
"author-surname#", "author#-surname", "author#", "subject#", 'host#'},
['AuthorList-Link'] = {"author-link#", "author#-link", "subject-link#",
"subject#-link", "authorlink#", "author#link"},
['AuthorList-Mask'] = {"author-mask#", "author#-mask", "subject-mask#", "subject#-mask"},
['ContributorList-First'] = {'contributor-first#', 'contributor#-first',
'contributor-given#', 'contributor#-given'},
['ContributorList-Last'] = {'contributor-last#', 'contributor#-last',
'contributor-surname#', 'contributor#-surname', 'contributor#'},
['ContributorList-Link'] = {'contributor-link#', 'contributor#-link'},
['ContributorList-Mask'] = {'contributor-mask#', 'contributor#-mask'},
['EditorList-First'] = {"editor-first#", "editor#-first", "editor-given#", "editor#-given"},
['EditorList-Last'] = {"editor-last#", "editor#-last", "editor-surname#",
"editor#-surname", "editor#"},
['EditorList-Link'] = {"editor-link#", "editor#-link"},
['EditorList-Mask'] = {"editor-mask#", "editor#-mask"},
['InterviewerList-First'] = {'interviewer-first#', 'interviewer#-first',
'interviewer-given#', 'interviewer#-given'},
['InterviewerList-Last'] = {'interviewer-last#', 'interviewer#-last',
'interviewer-surname#', 'interviewer#-surname', 'interviewer#'},
['InterviewerList-Link'] = {'interviewer-link#', 'interviewer#-link'},
['InterviewerList-Mask'] = {'interviewer-mask#', 'interviewer#-mask'},
['TranslatorList-First'] = {'translator-first#', 'translator#-first',
'translator-given#', 'translator#-given'},
['TranslatorList-Last'] = {'translator-last#', 'translator#-last',
'translator-surname#', 'translator#-surname', 'translator#'},
['TranslatorList-Link'] = {'translator-link#', 'translator#-link'},
['TranslatorList-Mask'] = {'translator-mask#', 'translator#-mask'},
}
--[[--------------------------< P U N C T _ S K I P >---------------------------
builds a table of parameter names that the extraneous terminal punctuation check should not check.
]]
local punct_meta_params = { -- table of aliases[] keys (meta parameters); each key has a table of parameter names for a value
'BookTitle', 'Chapter', 'ScriptChapter', 'ScriptTitle', 'Title', 'TransChapter', 'Transcript', 'TransMap', 'TransTitle', -- title-holding parameters
'AuthorList-Mask', 'ContributorList-Mask', 'EditorList-Mask', 'InterviewerList-Mask', 'TranslatorList-Mask', -- name-list mask may have name separators
'PostScript', 'Quote', 'ScriptQuote', 'TransQuote', 'Ref', -- miscellaneous
'ArchiveURL', 'ChapterURL', 'ConferenceURL', 'LayURL', 'MapURL', 'TranscriptURL', 'URL', -- URL-holding parameters
}
local url_meta_params = { -- table of aliases[] keys (meta parameters); each key has a table of parameter names for a value
'ArchiveURL', 'ChapterURL', 'ConferenceURL', 'ID', 'LayURL', 'MapURL', 'TranscriptURL', 'URL', -- parameters allowed to hold urls
'Page', 'Pages', 'At', 'QuotePage', 'QuotePages', -- insource locators allowed to hold urls
}
local function build_skip_table (skip_t, meta_params)
for _, meta_param in ipairs (meta_params) do -- for each meta parameter key
local params = aliases[meta_param]; -- get the parameter or the table of parameters associated with the meta parameter name
if 'string' == type (params) then
skip_t[params] = 1; -- just a single parameter
else
for _, param in ipairs (params) do -- get the parameter name
skip_t[param] = 1; -- add the parameter name to the skip table
local count;
param, count = param:gsub ('#', ''); -- remove enumerator marker from enumerated parameters
if 0 ~= count then -- if removed
skip_t[param] = 1; -- add param name without enumerator marker
end
end
end
end
return skip_t;
end
local punct_skip = {};
local url_skip = {};
--[[-----------< S P E C I A L C A S E T R A N S L A T I O N S >------------
This table is primarily here to support internationalization. Translations in
this table are used, for example, when an error message, category name, etc.,
is extracted from the English alias key. There may be other cases where
this translation table may be useful.
]]
local is_Latn = 'A-Za-z\195\128-\195\150\195\152-\195\182\195\184-\198\191\199\132-\201\143';
local special_case_translation = {
['AuthorList'] = 'authors list', -- used to assemble maintenance category names
['ContributorList'] = 'contributors list', -- translation of these names plus translation of the base maintenance category names in maint_cats{} table below
['EditorList'] = 'editors list', -- must match the names of the actual categories
['InterviewerList'] = 'interviewers list', -- this group or translations used by name_has_ed_markup() and name_has_mult_names()
['TranslatorList'] = 'translators list',
-- Lua patterns to match pseudo-titles used by InternetArchiveBot and others as placeholder for unknown |title= value
['archived_copy'] = { -- used with CS1 maint: Archive[d] copy as title
['en'] = '^archived?%s+copy$', -- for English; translators: keep this because templates imported from en.wiki
['local'] = nil, -- translators: replace ['local'] = nil with lowercase translation only when bots or tools create generic titles in your language
},
-- Lua patterns to match generic titles; usually created by bots or reference filling tools
-- translators: replace ['local'] = nil with lowercase translation only when bots or tools create generic titles in your language
-- generic titles and patterns in this table should be lowercase only
-- leave ['local'] nil except when there is a matching generic title in your language
-- boolean 'true' for plain-text searches; 'false' for pattern searches
['generic_titles'] = {
['accept'] = {
},
['reject'] = {
{['en'] = {'^wayback%s+machine$', false}, ['local'] = nil},
{['en'] = {'are you a robot', true}, ['local'] = nil},
{['en'] = {'hugedomains.com', true}, ['local'] = nil},
{['en'] = {'^[%(%[{<]?no +title[>}%]%)]?$', false}, ['local'] = nil},
{['en'] = {'page not found', true}, ['local'] = nil},
{['en'] = {'subscribe to read', true}, ['local'] = nil},
{['en'] = {'^[%(%[{<]?unknown[>}%]%)]?$', false}, ['local'] = nil},
{['en'] = {'website is for sale', true}, ['local'] = nil},
{['en'] = {'^404', false}, ['local'] = nil},
{['en'] = {'internet archive wayback machine', true}, ['local'] = nil},
{['en'] = {'log into facebook', true}, ['local'] = nil},
{['en'] = {'login • instagram', true}, ['local'] = nil},
{['en'] = {'redirecting...', true}, ['local'] = nil},
{['en'] = {'usurped title', true}, ['local'] = nil}, -- added by a GreenC bot
{['en'] = {'webcite query result', true}, ['local'] = nil},
{['en'] = {'wikiwix\'s cache', true}, ['local'] = nil},
}
},
-- boolean 'true' for plain-text searches, search string must be lowercase only
-- boolean 'false' for pattern searches
-- leave ['local'] nil except when there is a matching generic name in your language
['generic_names'] = {
['accept'] = {
{['en'] = {'%[%[[^|]*%(author%) *|[^%]]*%]%]', false}, ['local'] = nil},
},
['reject'] = {
{['en'] = {'about us', true}, ['local'] = nil},
{['en'] = {'%f[%a][Aa]dvisor%f[%A]', false}, ['local'] = nil},
{['en'] = {'%f[%a][Aa]uthor%f[%A]', false}, ['local'] = nil},
{['en'] = {'collaborator', true}, ['local'] = nil},
{['en'] = {'contributor', true}, ['local'] = nil},
{['en'] = {'contact us', true}, ['local'] = nil},
{['en'] = {'directory', true}, ['local'] = nil},
{['en'] = {'%f[%(%[][%(%[]%s*eds?%.?%s*[%)%]]?$', false}, ['local'] = nil},
{['en'] = {'[,%.%s]%f[e]eds?%.?$', false}, ['local'] = nil},
{['en'] = {'^eds?[%.,;]', false}, ['local'] = nil},
{['en'] = {'^[%(%[]%s*[Ee][Dd][Ss]?%.?%s*[%)%]]', false}, ['local'] = nil},
{['en'] = {'%f[%a][Ee]dited%f[%A]', false}, ['local'] = nil},
{['en'] = {'%f[%a][Ee]ditors?%f[%A]', false}, ['local'] = nil},
{['en'] = {'%f[%a]]Ee]mail%f[%A]', false}, ['local'] = nil},
{['en'] = {'facebook', true}, ['local'] = nil},
{['en'] = {'google', true}, ['local'] = nil},
{['en'] = {'home page', true}, ['local'] = nil},
{['en'] = {'instagram', true}, ['local'] = nil},
{['en'] = {'interviewer', true}, ['local'] = nil},
{['en'] = {'linkedIn', true}, ['local'] = nil},
{['en'] = {'^[Nn]ews$', false}, ['local'] = nil},
{['en'] = {'pinterest', true}, ['local'] = nil},
{['en'] = {'policy', true}, ['local'] = nil},
{['en'] = {'privacy', true}, ['local'] = nil},
{['en'] = {'translator', true}, ['local'] = nil},
{['en'] = {'tumblr', true}, ['local'] = nil},
{['en'] = {'twitter', true}, ['local'] = nil},
{['en'] = {'site name', true}, ['local'] = nil},
{['en'] = {'statement', true}, ['local'] = nil},
{['en'] = {'submitted', true}, ['local'] = nil},
{['en'] = {'super.?user', false}, ['local'] = nil},
{['en'] = {'%f['..is_Latn..'][Uu]ser%f[^'..is_Latn..']', false}, ['local'] = nil},
{['en'] = {'verfasser', true}, ['local'] = nil},
}
}
}
--[[--------------------------< D A T E _ N A M E S >----------------------------------------------------------
This table of tables lists local language date names and fallback English date names.
The code in Date_validation will look first in the local table for valid date names.
If date names are not found in the local table, the code will look in the English table.
Because citations can be copied to the local wiki from en.wiki, the English is
required when the date-name translation function date_name_xlate() is used.
In these tables, season numbering is defined by
Extended Date/Time Format (EDTF) Specification (https://www.loc.gov/standards/datetime/)
which became part of ISO 8601 in 2019. See '§Sub-year groupings'. The standard
defines various divisions using numbers 21-41. CS1|2 only supports generic seasons.
EDTF does support the distinction between north and south hemisphere seasons
but CS1|2 has no way to make that distinction.
33-36 = Quarter 1, Quarter 2, Quarter 3, Quarter 4 (3 months each)
The standard does not address 'named' dates so, for the purposes of CS1|2,
Easter and Christmas are defined here as 98 and 99, which should be out of the
ISO 8601 (EDTF) range of uses for a while.
local_date_names_from_mediawiki is a boolean. When set to:
true – module will fetch local month names from MediaWiki for both date_names['local']['long'] and date_names['local']['short']
false – module will *not* fetch local month names from MediaWiki
Caveat lector: There is no guarantee that MediaWiki will provide short month names. At your wiki you can test
the results of the MediaWiki fetch in the debug console with this command (the result is alpha sorted):
=mw.dumpObject (p.date_names['local'])
While the module can fetch month names from MediaWiki, it cannot fetch the quarter, season, and named date names
from MediaWiki. Those must be translated manually.
]]
local local_date_names_from_mediawiki = true; -- when false, manual translation required for date_names['local']['long'] and date_names['local']['short']
-- when true, module fetches long and short month names from MediaWiki
local date_names = {
['en'] = { -- English
['long'] = {['January'] = 1, ['February'] = 2, ['March'] = 3, ['April'] = 4, ['May'] = 5, ['June'] = 6, ['July'] = 7, ['August'] = 8, ['September'] = 9, ['October'] = 10, ['November'] = 11, ['December'] = 12},
['short'] = {['Jan'] = 1, ['Feb'] = 2, ['Mar'] = 3, ['Apr'] = 4, ['May'] = 5, ['Jun'] = 6, ['Jul'] = 7, ['Aug'] = 8, ['Sep'] = 9, ['Oct'] = 10, ['Nov'] = 11, ['Dec'] = 12},
['quarter'] = {['First Quarter'] = 33, ['Second Quarter'] = 34, ['Third Quarter'] = 35, ['Fourth Quarter'] = 36},
['season'] = {['Winter'] = 24, ['Spring'] = 21, ['Summer'] = 22, ['Fall'] = 23, ['Autumn'] = 23},
['named'] = {['Easter'] = 98, ['Christmas'] = 99},
},
-- when local_date_names_from_mediawiki = false
['local'] = { -- replace these English date names with the local language equivalents
['long'] = {['January'] = 1, ['February'] = 2, ['March'] = 3, ['April'] = 4, ['May'] = 5, ['June'] = 6, ['July'] = 7, ['August'] = 8, ['September'] = 9, ['October'] = 10, ['November'] = 11, ['December'] = 12},
['short'] = {['Jan'] = 1, ['Feb'] = 2, ['Mar'] = 3, ['Apr'] = 4, ['May'] = 5, ['Jun'] = 6, ['Jul'] = 7, ['Aug'] = 8, ['Sep'] = 9, ['Oct'] = 10, ['Nov'] = 11, ['Dec'] = 12},
['quarter'] = {['First Quarter'] = 33, ['Second Quarter'] = 34, ['Third Quarter'] = 35, ['Fourth Quarter'] = 36},
['season'] = {['Winter'] = 24, ['Spring'] = 21, ['Summer'] = 22, ['Fall'] = 23, ['Autumn'] = 23},
['named'] = {['Easter'] = 98, ['Christmas'] = 99},
},
['inv_local_long'] = {}, -- used in date reformatting & translation; copy of date_names['local'].long where k/v are inverted: [1]='<local name>' etc.
['inv_local_short'] = {}, -- used in date reformatting & translation; copy of date_names['local'].short where k/v are inverted: [1]='<local name>' etc.
['inv_local_quarter'] = {}, -- used in date translation; copy of date_names['local'].quarter where k/v are inverted: [1]='<local name>' etc.
['inv_local_season'] = {}, -- used in date translation; copy of date_names['local'].season where k/v are inverted: [1]='<local name>' etc.
['inv_local_named'] = {}, -- used in date translation; copy of date_names['local'].named where k/v are inverted: [1]='<local name>' etc.
['local_digits'] = {['0'] = '0', ['1'] = '1', ['2'] = '2', ['3'] = '3', ['4'] = '4', ['5'] = '5', ['6'] = '6', ['7'] = '7', ['8'] = '8', ['9'] = '9'}, -- used to convert local language digits to Western 0-9
['xlate_digits'] = {},
}
if local_date_names_from_mediawiki then -- if fetching local month names from MediaWiki is enabled
local long_t = {};
local short_t = {};
for i=1, 12 do -- loop 12x and
local name = lang_obj:formatDate('F', '2022-' .. i .. '-1'); -- get long month name for each i
long_t[name] = i; -- save it
name = lang_obj:formatDate('M', '2022-' .. i .. '-1'); -- get short month name for each i
short_t[name] = i; -- save it
end
date_names['local']['long'] = long_t; -- write the long table – overwrites manual translation
date_names['local']['short'] = short_t; -- write the short table – overwrites manual translation
end
-- create inverted date-name tables for reformatting and/or translation
for _, invert_t in pairs {{'long', 'inv_local_long'}, {'short', 'inv_local_short'}, {'quarter', 'inv_local_quarter'}, {'season', 'inv_local_season'}, {'named', 'inv_local_named'}} do
for name, i in pairs (date_names['local'][invert_t[1]]) do -- this table is ['name'] = i
date_names[invert_t[2]][i] = name; -- invert to get [i] = 'name' for conversions from ymd
end
end
for ld, ed in pairs (date_names.local_digits) do -- make a digit translation table for simple date translation from en to local language using local_digits table
date_names.xlate_digits [ed] = ld; -- en digit becomes index with local digit as the value
end
local df_template_patterns = { -- table of redirects to {{Use dmy dates}} and {{Use mdy dates}}
'{{ *[Uu]se +(dmy) +dates *[|}]', -- 1159k -- sorted by approximate transclusion count
'{{ *[Uu]se +(mdy) +dates *[|}]', -- 212k
'{{ *[Uu]se +(MDY) +dates *[|}]', -- 788
'{{ *[Uu]se +(DMY) +dates *[|}]', -- 343
'{{ *([Mm]dy) *[|}]', -- 176
'{{ *[Uu]se *(dmy) *[|}]', -- 156 + 18
'{{ *[Uu]se *(mdy) *[|}]', -- 149 + 11
'{{ *([Dd]my) *[|}]', -- 56
'{{ *[Uu]se +(MDY) *[|}]', -- 5
'{{ *([Dd]MY) *[|}]', -- 3
'{{ *[Uu]se(mdy)dates *[|}]', -- 1
'{{ *[Uu]se +(DMY) *[|}]', -- 0
'{{ *([Mm]DY) *[|}]', -- 0
}
local function get_date_format ()
local title_object = mw.title.getCurrentTitle();
if title_object.namespace == 10 then -- not in template space so that unused templates appear in unused-template-reports;
return nil; -- auto-formatting does not work in Template space so don't set global_df
end
local content = title_object:getContent() or ''; -- get the content of the article or ''; new pages edited w/ve do not have 'content' until saved; ve does not preview; phab:T221625
for _, pattern in ipairs (df_template_patterns) do -- loop through the patterns looking for {{Use dmy dates}} or {{Use mdy dates}} or any of their redirects
local start, _, match = content:find(pattern); -- match is the three letters indicating desired date format
if match then
content = content:match ('%b{}', start); -- get the whole template
if content:match ('| *cs1%-dates *= *[lsy][sy]?') then -- look for |cs1-dates=publication date length access-/archive-date length
return match:lower() .. '-' .. content:match ('| *cs1%-dates *= *([lsy][sy]?)');
else
return match:lower() .. '-all'; -- no |cs1-dates= k/v pair; return value appropriate for use in |df=
end
end
end
end
local global_df;
--[[-----------------< V O L U M E , I S S U E , P A G E S >------------------
These tables hold cite class values (from the template invocation) and identify those templates that support
|volume=, |issue=, and |page(s)= parameters. Cite conference and cite map require further qualification which
is handled in the main module.
]]
local templates_using_volume = {'citation', 'audio-visual', 'book', 'conference', 'encyclopaedia', 'interview', 'journal', 'magazine', 'map', 'news', 'report', 'techreport', 'thesis'}
local templates_using_issue = {'citation', 'conference', 'episode', 'interview', 'journal', 'magazine', 'map', 'news', 'podcast'}
local templates_not_using_page = {'audio-visual', 'episode', 'mailinglist', 'newsgroup', 'podcast', 'serial', 'sign', 'speech'}
--[[
These tables control when it is appropriate for {{citation}} to render |volume= and/or |issue=. The parameter
names in the tables constrain {{citation}} so that its renderings match the renderings of the equivalent cs1
templates. For example, {{cite web}} does not support |volume= so the equivalent {{citation |website=...}} must
not support |volume=.
]]
local citation_no_volume_t = { -- {{citation}} does not render |volume= when these parameters are used
'website', 'mailinglist', 'script-website',
}
local citation_issue_t = { -- {{citation}} may render |issue= when these parameters are used
'journal', 'magazine', 'newspaper', 'periodical', 'work',
'script-journal', 'script-magazine', 'script-newspaper', 'script-periodical', 'script-work',
}
--[[
Patterns for finding extra text in |volume=, |issue=, |page=, |pages=
]]
local vol_iss_pg_patterns = {
good_ppattern = '^P[^%.PpGg]', -- OK to begin with uppercase P: P7 (page 7 of section P), but not p123 (page 123); TODO: this allows 'Pages' which it should not
bad_ppatterns = { -- patterns for |page= and |pages=
'^[Pp][PpGg]?%.?[ %d]',
'^[Pp][Pp]?%. ', -- from {{p.}} and {{pp.}} templates
'^[Pp]ages?',
'^[Pp]gs.?',
},
vpatterns = { -- patterns for |volume=
'^volumes?',
'^vols?[%.:=]?'
},
ipatterns = { -- patterns for |issue=
'^issues?',
'^iss[%.:=]?',
'^numbers?',
'^nos?%A', -- don't match 'november' or 'nostradamus'
'^nr[%.:=]?',
'^n[%.:= ]' -- might be a valid issue without separator (space char is sep char here)
}
}
--[[--------------------------< K E Y W O R D S >-------------------------------
These tables hold keywords for those parameters that have defined sets of acceptable keywords.
]]
--[[-------------------< K E Y W O R D S T A B L E >--------------------------
this is a list of keywords; each key in the list is associated with a table of
synonymous keywords possibly from different languages.
for I18N: add local-language keywords to value table; do not change the key.
For example, adding the German keyword 'ja':
['affirmative'] = {'yes', 'true', 'y', 'ja'},
Because CS1|2 templates from en.wiki articles are often copied to other local wikis,
it is recommended that the English keywords remain in these tables.
]]
local keywords = {
['amp'] = {'&', 'amp', 'ampersand'}, -- |name-list-style=
['and'] = {'and', 'serial'}, -- |name-list-style=
['affirmative'] = {'yes', 'true', 'y'}, -- |no-tracking=, |no-pp= -- Used by InternetArchiveBot
['afterword'] = {'afterword'}, -- |contribution=
['bot: unknown'] = {'bot: unknown'}, -- |url-status= -- Used by InternetArchiveBot
['cs1'] = {'cs1'}, -- |mode=
['cs2'] = {'cs2'}, -- |mode=
['dead'] = {'dead', 'deviated'}, -- |url-status= -- Used by InternetArchiveBot
['dmy'] = {'dmy'}, -- |df=
['dmy-all'] = {'dmy-all'}, -- |df=
['foreword'] = {'foreword'}, -- |contribution=
['free'] = {'free'}, -- |<id>-access= -- Used by InternetArchiveBot
['harv'] = {'harv'}, -- |ref=; this no longer supported; is_valid_parameter_value() called with <invert> = true
['introduction'] = {'introduction'}, -- |contribution=
['limited'] = {'limited'}, -- |url-access= -- Used by InternetArchiveBot
['live'] = {'live'}, -- |url-status= -- Used by InternetArchiveBot
['mdy'] = {'mdy'}, -- |df=
['mdy-all'] = {'mdy-all'}, -- |df=
['none'] = {'none'}, -- |postscript=, |ref=, |title=, |type= -- Used by InternetArchiveBot
['off'] = {'off'}, -- |title= (potentially also: |title-link=, |postscript=, |ref=, |type=)
['preface'] = {'preface'}, -- |contribution=
['registration'] = {'registration'}, -- |url-access= -- Used by InternetArchiveBot
['subscription'] = {'subscription'}, -- |url-access= -- Used by InternetArchiveBot
['unfit'] = {'unfit'}, -- |url-status= -- Used by InternetArchiveBot
['usurped'] = {'usurped'}, -- |url-status= -- Used by InternetArchiveBot
['vanc'] = {'vanc'}, -- |name-list-style=
['ymd'] = {'ymd'}, -- |df=
['ymd-all'] = {'ymd-all'}, -- |df=
-- ['yMd'] = {'yMd'}, -- |df=; not supported at en.wiki
-- ['yMd-all'] = {'yMd-all'}, -- |df=; not supported at en.wiki
}
--[[------------------------< X L A T E _ K E Y W O R D S >---------------------
this function builds a list, keywords_xlate{}, of the keywords found in keywords{} where the values from keywords{}
become the keys in keywords_xlate{} and the keys from keywords{} become the values in keywords_xlate{}:
['affirmative'] = {'yes', 'true', 'y'}, -- in keywords{}
becomes
['yes'] = 'affirmative', -- in keywords_xlate{}
['true'] = 'affirmative',
['y'] = 'affirmative',
the purpose of this function is to act as a translator between a non-English keyword and its English equivalent
that may be used in other modules of this suite
]]
local function xlate_keywords ()
local out_table = {}; -- output goes here
for k, keywords_t in pairs (keywords) do -- spin through the keywords table
for _, keyword in ipairs (keywords_t) do -- for each keyword
out_table[keyword] = k; -- create an entry in the output table where keyword is the key
end
end
return out_table;
end
local keywords_xlate = xlate_keywords (); -- the list of translated keywords
--[[----------------< M A K E _ K E Y W O R D S _ L I S T >---------------------
this function assembles, for parameter-value validation, the list of keywords appropriate to that parameter.
keywords_lists{}, is a table of tables from keywords{}
]]
local function make_keywords_list (keywords_lists)
local out_table = {}; -- output goes here
for _, keyword_list in ipairs (keywords_lists) do -- spin through keywords_lists{} and get a table of keywords
for _, keyword in ipairs (keyword_list) do -- spin through keyword_list{} and add each keyword, ...
table.insert (out_table, keyword); -- ... as plain text, to the output list
end
end
return out_table;
end
--[[----------------< K E Y W O R D S _ L I S T S >-----------------------------
this is a list of lists of valid keywords for the various parameters in [key].
Generally the keys in this table are the canonical en.wiki parameter names though
some are contrived because of use in multiple differently named parameters:
['yes_true_y'], ['id-access'].
The function make_keywords_list() extracts the individual keywords from the
appropriate list in keywords{}.
The lists in this table are used to validate the keyword assignment for the
parameters named in this table's keys.
]]
local keywords_lists = {
['yes_true_y'] = make_keywords_list ({keywords.affirmative}),
['contribution'] = make_keywords_list ({keywords.afterword, keywords.foreword, keywords.introduction, keywords.preface}),
['df'] = make_keywords_list ({keywords.dmy, keywords['dmy-all'], keywords.mdy, keywords['mdy-all'], keywords.ymd, keywords['ymd-all']}),
-- ['df'] = make_keywords_list ({keywords.dmy, keywords['dmy-all'], keywords.mdy, keywords['mdy-all'], keywords.ymd, keywords['ymd-all'], keywords.yMd, keywords['yMd-all']}), -- not supported at en.wiki
['mode'] = make_keywords_list ({keywords.cs1, keywords.cs2}),
['name-list-style'] = make_keywords_list ({keywords.amp, keywords['and'], keywords.vanc}),
['ref'] = make_keywords_list ({keywords.harv}), -- inverted check; |ref=harv no longer supported
['url-access'] = make_keywords_list ({keywords.subscription, keywords.limited, keywords.registration}),
['url-status'] = make_keywords_list ({keywords.dead, keywords.live, keywords.unfit, keywords.usurped, keywords['bot: unknown']}),
['id-access'] = make_keywords_list ({keywords.free}),
}
--[[---------------------< S T R I P M A R K E R S >----------------------------
Common pattern definition location for stripmarkers so that we don't have to go
hunting for them if (when) MediaWiki changes their form.
]]
local stripmarkers = {
['any'] = '\127[^\127]*UNIQ%-%-(%a+)%-[%a%d]+%-QINU[^\127]*\127', -- capture returns name of stripmarker
['math'] = '\127[^\127]*UNIQ%-%-math%-[%a%d]+%-QINU[^\127]*\127' -- math stripmarkers used in coins_cleanup() and coins_replace_math_stripmarker()
}
--[[------------< I N V I S I B L E _ C H A R A C T E R S >---------------------
This table holds non-printing or invisible characters indexed either by name or
by Unicode group. Values are decimal representations of UTF-8 codes. The table
is organized as a table of tables because the Lua pairs keyword returns table
data in an arbitrary order. Here, we want to process the table from top to bottom
because the entries at the top of the table are also found in the ranges specified
by the entries at the bottom of the table.
Also here is a pattern that recognizes stripmarkers that begin and end with the
delete characters. The nowiki stripmarker is not an error but some others are
because the parameter values that include them become part of the template's
metadata before stripmarker replacement.
]]
local invisible_defs = {
del = '\127', -- used to distinguish between stripmarker and del char
zwj = '\226\128\141', -- used with capture because zwj may be allowed
}
local invisible_chars = {
{'replacement', '\239\191\189'}, -- U+FFFD, EF BF BD
{'zero width joiner', '('.. invisible_defs.zwj .. ')'}, -- U+200D, E2 80 8D; capture because zwj may be allowed
{'zero width space', '\226\128\139'}, -- U+200B, E2 80 8B
{'hair space', '\226\128\138'}, -- U+200A, E2 80 8A
{'soft hyphen', '\194\173'}, -- U+00AD, C2 AD
{'horizontal tab', '\009'}, -- U+0009 (HT), 09
{'line feed', '\010'}, -- U+000A (LF), 0A
{'no-break space', '\194\160'}, -- U+00A0 (NBSP), C2 A0
{'carriage return', '\013'}, -- U+000D (CR), 0D
{'stripmarker', stripmarkers.any}, -- stripmarker; may or may not be an error; capture returns the stripmaker type
{'delete', '('.. invisible_defs.del .. ')'}, -- U+007F (DEL), 7F; must be done after stripmarker test; capture to distinguish isolated del chars not part of stripmarker
{'C0 control', '[\000-\008\011\012\014-\031]'}, -- U+0000–U+001F (NULL–US), 00–1F (except HT, LF, CR (09, 0A, 0D))
{'C1 control', '[\194\128-\194\159]'}, -- U+0080–U+009F (XXX–APC), C2 80 – C2 9F
-- {'Specials', '[\239\191\185-\239\191\191]'}, -- U+FFF9-U+FFFF, EF BF B9 – EF BF BF
-- {'Private use area', '[\238\128\128-\239\163\191]'}, -- U+E000–U+F8FF, EE 80 80 – EF A3 BF
-- {'Supplementary Private Use Area-A', '[\243\176\128\128-\243\191\191\189]'}, -- U+F0000–U+FFFFD, F3 B0 80 80 – F3 BF BF BD
-- {'Supplementary Private Use Area-B', '[\244\128\128\128-\244\143\191\189]'}, -- U+100000–U+10FFFD, F4 80 80 80 – F4 8F BF BD
}
--[[
Indic script makes use of zero width joiner as a character modifier so zwj
characters must be left in. This pattern covers all of the unicode characters
for these languages:
Devanagari 0900–097F – https://unicode.org/charts/PDF/U0900.pdf
Devanagari extended A8E0–A8FF – https://unicode.org/charts/PDF/UA8E0.pdf
Bengali 0980–09FF – https://unicode.org/charts/PDF/U0980.pdf
Gurmukhi 0A00–0A7F – https://unicode.org/charts/PDF/U0A00.pdf
Gujarati 0A80–0AFF – https://unicode.org/charts/PDF/U0A80.pdf
Oriya 0B00–0B7F – https://unicode.org/charts/PDF/U0B00.pdf
Tamil 0B80–0BFF – https://unicode.org/charts/PDF/U0B80.pdf
Telugu 0C00–0C7F – https://unicode.org/charts/PDF/U0C00.pdf
Kannada 0C80–0CFF – https://unicode.org/charts/PDF/U0C80.pdf
Malayalam 0D00–0D7F – https://unicode.org/charts/PDF/U0D00.pdf
plus the not-necessarily Indic scripts for Sinhala and Burmese:
Sinhala 0D80-0DFF - https://unicode.org/charts/PDF/U0D80.pdf
Myanmar 1000-109F - https://unicode.org/charts/PDF/U1000.pdf
Myanmar extended A AA60-AA7F - https://unicode.org/charts/PDF/UAA60.pdf
Myanmar extended B A9E0-A9FF - https://unicode.org/charts/PDF/UA9E0.pdf
the pattern is used by has_invisible_chars() and coins_cleanup()
]]
local indic_script = '[\224\164\128-\224\181\191\224\163\160-\224\183\191\225\128\128-\225\130\159\234\167\160-\234\167\191\234\169\160-\234\169\191]';
-- list of emoji that use zwj character (U+200D) to combine with another emoji
local emoji = { -- indexes are decimal forms of the hex values in U+xxxx
[127752] = true, -- U+1F308 🌈 rainbow
[127806] = true, -- U+1F33E 🌾 ear of rice
[127859] = true, -- U+1F373 🍳 cooking
[127891] = true, -- U+1F393 🎓 graduation cap
[127908] = true, -- U+1F3A4 🎤 microphone
[127912] = true, -- U+1F3A8 🎨 artist palette
[127979] = true, -- U+1F3EB 🏫 school
[127981] = true, -- U+1F3ED 🏭 factory
[128102] = true, -- U+1F466 👦 boy
[128103] = true, -- U+1F467 👧 girl
[128104] = true, -- U+1F468 👨 man
[128105] = true, -- U+1F469 👩 woman
[128139] = true, -- U+1F48B 💋 kiss mark
[128187] = true, -- U+1F4BB 💻 personal computer
[128188] = true, -- U+1F4BC 💼 brief case
[128295] = true, -- U+1F527 🔧 wrench
[128300] = true, -- U+1F52C 🔬 microscope
[128488] = true, -- U+1F5E8 🗨 left speech bubble
[128640] = true, -- U+1F680 🚀 rocket
[128658] = true, -- U+1F692 🚒 fire engine
[129309] = true, -- U+1F91D 🤝 handshake
[129455] = true, -- U+1F9AF 🦯 probing cane
[129456] = true, -- U+1F9B0 🦰 emoji component red hair
[129457] = true, -- U+1F9B1 🦱 emoji component curly hair
[129458] = true, -- U+1F9B2 🦲 emoji component bald
[129459] = true, -- U+1F9B3 🦳 emoji component white hair
[129466] = true, -- U+1F9BA 🦺 safety vest
[129468] = true, -- U+1F9BC 🦼 motorized wheelchair
[129469] = true, -- U+1F9BD 🦽 manual wheelchair
[129489] = true, -- U+1F9D1 🧑 adult
[9760] = true, -- U+2620 ☠ skull and crossbones
[9792] = true, -- U+2640 ♀ female sign
[9794] = true, -- U+2642 ♂ male sign
[9877] = true, -- U+2695 ⚕ staff of aesculapius
[9878] = true, -- U+2696 ⚖ scales
[9992] = true, -- U+2708 ✈ airplane
[10084] = true, -- U+2764 ❤ heavy black heart
}
--[[----------------------< L A N G U A G E S U P P O R T >-------------------
These tables and constants support various language-specific functionality.
]]
--local this_wiki_code = mw.getContentLanguage():getCode(); -- get this wiki's language code
local this_wiki_code = lang_obj:getCode(); -- get this wiki's language code
if string.match (mw.site.server, 'wikidata') then
this_wiki_code = mw.getCurrentFrame():preprocess('{{int:lang}}'); -- on Wikidata so use interface language setting instead
end
local mw_languages_by_tag_t = mw.language.fetchLanguageNames (this_wiki_code, 'all'); -- get a table of language tag/name pairs known to Wikimedia; used for interwiki tests
local mw_languages_by_name_t = {};
for k, v in pairs (mw_languages_by_tag_t) do -- build a 'reversed' table name/tag language pairs know to MediaWiki; used for |language=
v = mw.ustring.lower (v); -- lowercase for tag fetch; get name's proper case from mw_languages_by_tag_t[<tag>]
if mw_languages_by_name_t[v] then -- when name already in the table
if 2 == #k or 3 == #k then -- if tag does not have subtags
mw_languages_by_name_t[v] = k; -- prefer the shortest tag for this name
end
else -- here when name not in the table
mw_languages_by_name_t[v] = k; -- so add name and matching tag
end
end
local inter_wiki_map = {}; -- map of interwiki prefixes that are language-code prefixes
for k, v in pairs (mw.site.interwikiMap ('local')) do -- spin through the base interwiki map (limited to local)
if mw_languages_by_tag_t[v["prefix"]] then -- if the prefix matches a known language tag
inter_wiki_map[v["prefix"]] = true; -- add it to our local map
end
end
--[[--------------------< S C R I P T _ L A N G _ C O D E S >-------------------
This table is used to hold ISO 639-1 two-character and ISO 639-3 three-character
language codes that apply only to |script-title= and |script-chapter=
]]
local script_lang_codes = {
'ab', 'am', 'ar', 'be', 'bg', 'bn', 'bo', 'bs', 'dv', 'dz', 'el', 'fa', 'gu',
'he', 'hi', 'hy', 'ja', 'ka', 'kk', 'km', 'kn', 'ko', 'ku', 'ky', 'lo', 'mk',
'ml', 'mn', 'mr', 'my', 'ne', 'or', 'ota', 'pa', 'ps', 'ru', 'sd', 'si', 'sr',
'syc', 'ta', 'te', 'tg', 'th', 'ti', 'ug', 'uk', 'ur', 'uz', 'yi', 'yue', 'zh'
};
--[[---------------< L A N G U A G E R E M A P P I N G >----------------------
These tables hold language information that is different (correct) from MediaWiki's definitions
For each ['code'] = 'language name' in lang_code_remap{} there must be a matching ['language name'] = {'language name', 'code'} in lang_name_remap{}
lang_code_remap{}:
key is always lowercase ISO 639-1, -2, -3 language code or a valid lowercase IETF language tag
value is properly spelled and capitalized language name associated with key
only one language name per key;
key/value pair must have matching entry in lang_name_remap{}
lang_name_remap{}:
key is always lowercase language name
value is a table the holds correctly spelled and capitalized language name [1] and associated code [2] (code must match a code key in lang_code_remap{})
may have multiple keys referring to a common preferred name and code; For example:
['kolsch'] and ['kölsch'] both refer to 'Kölsch' and 'ksh'
]]
local lang_code_remap = { -- used for |language= and |script-title= / |script-chapter=
['als'] = 'Tosk Albanian', -- MediaWiki returns Alemannisch
['bh'] = 'Bihari', -- MediaWiki uses 'bh' as a subdomain name for Bhojpuri Wikipedia: bh.wikipedia.org
['bla'] = 'Blackfoot', -- MediaWiki/IANA/ISO 639: Siksika; use en.wiki preferred name
['bn'] = 'Bengali', -- MediaWiki returns Bangla
['ca-valencia'] = 'Valencian', -- IETF variant of Catalan
['ilo'] = 'Ilocano', -- MediaWiki/IANA/ISO 639: Iloko; use en.wiki preferred name
['ksh'] = 'Kölsch', -- MediaWiki: Colognian; use IANA/ISO 639 preferred name
['ksh-x-colog'] = 'Colognian', -- override MediaWiki ksh; no IANA/ISO 639 code for Colognian; IETF private code created at Module:Lang/data
['mis-x-ripuar'] = 'Ripuarian', -- override MediaWiki ksh; no IANA/ISO 639 code for Ripuarian; IETF private code created at Module:Lang/data
['nan-tw'] = 'Taiwanese Hokkien', -- make room for MediaWiki/IANA/ISO 639 nan: Min Nan Chinese and support en.wiki preferred name
}
local lang_name_remap = { -- used for |language=; names require proper capitalization; tags must be lowercase
['alemannisch'] = {'Swiss German', 'gsw'}, -- not an ISO or IANA language name; MediaWiki uses 'als' as a subdomain name for Alemannic Wikipedia: als.wikipedia.org
['bangla'] = {'Bengali', 'bn'}, -- MediaWiki returns Bangla (the endonym) but we want Bengali (the exonym); here we remap
['bengali'] = {'Bengali', 'bn'}, -- MediaWiki doesn't use exonym so here we provide correct language name and 639-1 code
['bhojpuri'] = {'Bhojpuri', 'bho'}, -- MediaWiki uses 'bh' as a subdomain name for Bhojpuri Wikipedia: bh.wikipedia.org
['bihari'] = {'Bihari', 'bh'}, -- MediaWiki replaces 'Bihari' with 'Bhojpuri' so 'Bihari' cannot be found
['blackfoot'] = {'Blackfoot', 'bla'}, -- MediaWiki/IANA/ISO 639: Siksika; use en.wiki preferred name
['colognian'] = {'Colognian', 'ksh-x-colog'}, -- MediaWiki preferred name for ksh
['ilocano'] = {'Ilocano', 'ilo'}, -- MediaWiki/IANA/ISO 639: Iloko; use en.wiki preferred name
['kolsch'] = {'Kölsch', 'ksh'}, -- use IANA/ISO 639 preferred name (use non-diacritical o instead of umlaut ö)
['kölsch'] = {'Kölsch', 'ksh'}, -- use IANA/ISO 639 preferred name
['ripuarian'] = {'Ripuarian', 'mis-x-ripuar'}, -- group of dialects; no code in MediaWiki or in IANA/ISO 639
['taiwanese hokkien'] = {'Taiwanese Hokkien', 'nan-tw'}, -- make room for MediaWiki/IANA/ISO 639 nan: Min Nan Chinese
['tosk albanian'] = {'Tosk Albanian', 'als'}, -- MediaWiki replaces 'Tosk Albanian' with 'Alemannisch' so 'Tosk Albanian' cannot be found
['valencian'] = {'Valencian', 'ca'}, -- variant of Catalan; categorizes as Catalan
}
--[[---------------< P R O P E R T I E S _ C A T E G O R I E S >----------------
Properties categories. These are used for investigating qualities of citations.
]]
local prop_cats = {
['foreign-lang-source'] = 'CS1 $1-language sources ($2)', -- |language= categories; $1 is foreign-language name, $2 is ISO639-1 code
['foreign-lang-source-2'] = 'CS1 foreign language sources (ISO 639-2)|$1', -- |language= category; a cat for ISO639-2 languages; $1 is the ISO 639-2 code used as a sort key
['jul-greg-uncertainty'] = 'CS1: Julian–Gregorian uncertainty', -- probably temporary cat to identify scope of template with dates 1 October 1582 – 1 January 1926
['local-lang-source'] = 'CS1 $1-language sources ($2)', -- |language= categories; $1 is local-language name, $2 is ISO639-1 code; not emitted when local_lang_cat_enable is false
['location-test'] = 'CS1 location test',
['long-vol'] = 'CS1: long volume value', -- probably temporary cat to identify scope of |volume= values longer than 4 charachters
['script'] = 'CS1 uses $1-language script ($2)', -- |script-title=xx: has matching category; $1 is language name, $2 is ISO639-1 code
['tracked-param'] = 'CS1 tracked parameter: $1', -- $1 is base (enumerators removed) parameter name
['year-range-abbreviated'] = 'CS1: abbreviated year range', -- probably temporary cat to identify scope of |date=, |year= values using YYYY–YY form
}
--[[-------------------< T I T L E _ T Y P E S >--------------------------------
Here we map a template's CitationClass to TitleType (default values for |type= parameter)
]]
local title_types = {
['AV-media-notes'] = 'Media notes',
['interview'] = 'Interview',
['mailinglist'] = 'Mailing list',
['map'] = 'Map',
['podcast'] = 'Podcast',
['pressrelease'] = 'Press release',
['report'] = 'Report',
['speech'] = 'Speech',
['techreport'] = 'Technical report',
['thesis'] = 'Thesis',
}
--[[===================<< E R R O R M E S S A G I N G >>======================
]]
--[[----------< E R R O R M E S S A G E S U P P L I M E N T S >-------------
I18N for those messages that are supplemented with additional specific text that
describes the reason for the error
TODO: merge this with special_case_translations{}?
]]
local err_msg_supl = {
['char'] = 'invalid character', -- |isbn=, |sbn=
['check'] = 'checksum', -- |isbn=, |sbn=
['flag'] = 'flag', -- |archive-url=
['form'] = 'invalid form', -- |isbn=, |sbn=
['group'] = 'invalid group id', -- |isbn=
['initials'] = 'initials', -- Vancouver
['invalid language code'] = 'invalid language code', -- |script-<param>=
['journal'] = 'journal', -- |bibcode=
['length'] = 'length', -- |isbn=, |bibcode=, |sbn=
['liveweb'] = 'liveweb', -- |archive-url=
['missing comma'] = 'missing comma', -- Vancouver
['missing prefix'] = 'missing prefix', -- |script-<param>=
['missing title part'] = 'missing title part', -- |script-<param>=
['name'] = 'name', -- Vancouver
['non-Latin char'] = 'non-Latin character', -- Vancouver
['path'] = 'path', -- |archive-url=
['prefix'] = 'invalid prefix', -- |isbn=
['punctuation'] = 'punctuation', -- Vancouver
['save'] = 'save command', -- |archive-url=
['suffix'] = 'suffix', -- Vancouver
['timestamp'] = 'timestamp', -- |archive-url=
['unknown language code'] = 'unknown language code', -- |script-<param>=
['value'] = 'value', -- |bibcode=
['year'] = 'year', -- |bibcode=
}
--[[--------------< E R R O R _ C O N D I T I O N S >---------------------------
Error condition table. This table has two sections: errors at the top, maintenance
at the bottom. Maint 'messaging' does not have a 'message' (message=nil)
The following contains a list of IDs for various error conditions defined in the
code. For each ID, we specify a text message to display, an error category to
include, and whether the error message should be wrapped as a hidden comment.
Anchor changes require identical changes to matching anchor in Help:CS1 errors
TODO: rename error_conditions{} to something more generic; create separate error
and maint tables inside that?
]]
local error_conditions = {
err_accessdate_missing_url = {
message = '<code class="cs1-code">|access-date=</code> requires <code class="cs1-code">|url=</code>',
anchor = 'accessdate_missing_url',
category = 'CS1 errors: access-date without URL',
hidden = false
},
err_apostrophe_markup = {
message = 'Italic or bold markup not allowed in: <code class="cs1-code">|$1=</code>', -- $1 is parameter name
anchor = 'apostrophe_markup',
category = 'CS1 errors: markup',
hidden = false
},
err_archive_missing_date = {
message = '<code class="cs1-code">|archive-url=</code> requires <code class="cs1-code">|archive-date=</code>',
anchor = 'archive_missing_date',
category = 'CS1 errors: archive-url',
hidden = false
},
err_archive_missing_url = {
message = '<code class="cs1-code">|archive-url=</code> requires <code class="cs1-code">|url=</code>',
anchor = 'archive_missing_url',
category = 'CS1 errors: archive-url',
hidden = false
},
err_archive_url = {
message = '<code class="cs1-code">|archive-url=</code> is malformed: $1', -- $1 is error message detail
anchor = 'archive_url',
category = 'CS1 errors: archive-url',
hidden = false
},
err_arxiv_missing = {
message = '<code class="cs1-code">|arxiv=</code> required',
anchor = 'arxiv_missing',
category = 'CS1 errors: arXiv', -- same as bad arxiv
hidden = false
},
err_asintld_missing_asin = {
message = '<code class="cs1-code">|$1=</code> requires <code class="cs1-code">|asin=</code>', -- $1 is parameter name
anchor = 'asintld_missing_asin',
category = 'CS1 errors: ASIN TLD',
hidden = false
},
err_bad_arxiv = {
message = 'Check <code class="cs1-code">|arxiv=</code> value',
anchor = 'bad_arxiv',
category = 'CS1 errors: arXiv',
hidden = false
},
err_bad_asin = {
message = 'Check <code class="cs1-code">|asin=</code> value',
anchor = 'bad_asin',
category ='CS1 errors: ASIN',
hidden = false
},
err_bad_asin_tld = {
message = 'Check <code class="cs1-code">|asin-tld=</code> value',
anchor = 'bad_asin_tld',
category ='CS1 errors: ASIN TLD',
hidden = false
},
err_bad_bibcode = {
message = 'Check <code class="cs1-code">|bibcode=</code> $1', -- $1 is error message detail
anchor = 'bad_bibcode',
category = 'CS1 errors: bibcode',
hidden = false
},
err_bad_biorxiv = {
message = 'Check <code class="cs1-code">|biorxiv=</code> value',
anchor = 'bad_biorxiv',
category = 'CS1 errors: bioRxiv',
hidden = false
},
err_bad_citeseerx = {
message = 'Check <code class="cs1-code">|citeseerx=</code> value',
anchor = 'bad_citeseerx',
category = 'CS1 errors: citeseerx',
hidden = false
},
err_bad_date = {
message = 'Check date values in: $1', -- $1 is a parameter name list
anchor = 'bad_date',
category = 'CS1 errors: dates',
hidden = false
},
err_bad_doi = {
message = 'Check <code class="cs1-code">|doi=</code> value',
anchor = 'bad_doi',
category = 'CS1 errors: DOI',
hidden = false
},
err_bad_hdl = {
message = 'Check <code class="cs1-code">|hdl=</code> value',
anchor = 'bad_hdl',
category = 'CS1 errors: HDL',
hidden = false
},
err_bad_isbn = {
message = 'Check <code class="cs1-code">|isbn=</code> value: $1', -- $1 is error message detail
anchor = 'bad_isbn',
category = 'CS1 errors: ISBN',
hidden = false
},
err_bad_ismn = {
message = 'Check <code class="cs1-code">|ismn=</code> value',
anchor = 'bad_ismn',
category = 'CS1 errors: ISMN',
hidden = false
},
err_bad_issn = {
message = 'Check <code class="cs1-code">|$1issn=</code> value', -- $1 is 'e' or '' for eissn or issn
anchor = 'bad_issn',
category = 'CS1 errors: ISSN',
hidden = false
},
err_bad_jfm = {
message = 'Check <code class="cs1-code">|jfm=</code> value',
anchor = 'bad_jfm',
category = 'CS1 errors: JFM',
hidden = false
},
err_bad_jstor = {
message = 'Check <code class="cs1-code">|jstor=</code> value',
anchor = 'bad_jstor',
category = 'CS1 errors: JSTOR',
hidden = false
},
err_bad_lccn = {
message = 'Check <code class="cs1-code">|lccn=</code> value',
anchor = 'bad_lccn',
category = 'CS1 errors: LCCN',
hidden = false
},
err_bad_mr = {
message = 'Check <code class="cs1-code">|mr=</code> value',
anchor = 'bad_mr',
category = 'CS1 errors: MR',
hidden = false
},
err_bad_oclc = {
message = 'Check <code class="cs1-code">|oclc=</code> value',
anchor = 'bad_oclc',
category = 'CS1 errors: OCLC',
hidden = false
},
err_bad_ol = {
message = 'Check <code class="cs1-code">|ol=</code> value',
anchor = 'bad_ol',
category = 'CS1 errors: OL',
hidden = false
},
err_bad_osti = {
message = 'Check <code class="cs1-code">|osti=</code> value',
anchor = 'bad_osti',
category = 'CS1 errors: OSTI',
hidden = false
},
err_bad_paramlink = { -- for |title-link=, |author/editor/translator-link=, |series-link=, |episode-link=
message = 'Check <code class="cs1-code">|$1=</code> value', -- $1 is parameter name
anchor = 'bad_paramlink',
category = 'CS1 errors: parameter link',
hidden = false
},
err_bad_pmc = {
message = 'Check <code class="cs1-code">|pmc=</code> value',
anchor = 'bad_pmc',
category = 'CS1 errors: PMC',
hidden = false
},
err_bad_pmid = {
message = 'Check <code class="cs1-code">|pmid=</code> value',
anchor = 'bad_pmid',
category = 'CS1 errors: PMID',
hidden = false
},
err_bad_rfc = {
message = 'Check <code class="cs1-code">|rfc=</code> value',
anchor = 'bad_rfc',
category = 'CS1 errors: RFC',
hidden = false
},
err_bad_s2cid = {
message = 'Check <code class="cs1-code">|s2cid=</code> value',
anchor = 'bad_s2cid',
category = 'CS1 errors: S2CID',
hidden = false
},
err_bad_sbn = {
message = 'Check <code class="cs1-code">|sbn=</code> value: $1', -- $1 is error message detail
anchor = 'bad_sbn',
category = 'CS1 errors: SBN',
hidden = false
},
err_bad_ssrn = {
message = 'Check <code class="cs1-code">|ssrn=</code> value',
anchor = 'bad_ssrn',
category = 'CS1 errors: SSRN',
hidden = false
},
err_bad_url = {
message = 'Check $1 value', -- $1 is parameter name
anchor = 'bad_url',
category = 'CS1 errors: URL',
hidden = false
},
err_bad_usenet_id = {
message = 'Check <code class="cs1-code">|message-id=</code> value',
anchor = 'bad_message_id',
category = 'CS1 errors: message-id',
hidden = false
},
err_bad_zbl = {
message = 'Check <code class="cs1-code">|zbl=</code> value',
anchor = 'bad_zbl',
category = 'CS1 errors: Zbl',
hidden = false
},
err_bare_url_missing_title = {
message = '$1 missing title', -- $1 is parameter name
anchor = 'bare_url_missing_title',
category = 'CS1 errors: bare URL',
hidden = false
},
err_biorxiv_missing = {
message = '<code class="cs1-code">|biorxiv=</code> required',
anchor = 'biorxiv_missing',
category = 'CS1 errors: bioRxiv', -- same as bad bioRxiv
hidden = false
},
err_chapter_ignored = {
message = '<code class="cs1-code">|$1=</code> ignored', -- $1 is parameter name
anchor = 'chapter_ignored',
category = 'CS1 errors: chapter ignored',
hidden = false
},
err_citation_missing_title = {
message = 'Missing or empty <code class="cs1-code">|$1=</code>', -- $1 is parameter name
anchor = 'citation_missing_title',
category = 'CS1 errors: missing title',
hidden = false
},
err_citeseerx_missing = {
message = '<code class="cs1-code">|citeseerx=</code> required',
anchor = 'citeseerx_missing',
category = 'CS1 errors: citeseerx', -- same as bad citeseerx
hidden = false
},
err_cite_web_url = { -- this error applies to cite web and to cite podcast
message = 'Missing or empty <code class="cs1-code">|url=</code>',
anchor = 'cite_web_url',
category = 'CS1 errors: requires URL',
hidden = false
},
err_class_ignored = {
message = '<code class="cs1-code">|class=</code> ignored',
anchor = 'class_ignored',
category = 'CS1 errors: class',
hidden = false
},
err_contributor_ignored = {
message = '<code class="cs1-code">|contributor=</code> ignored',
anchor = 'contributor_ignored',
category = 'CS1 errors: contributor',
hidden = false
},
err_contributor_missing_required_param = {
message = '<code class="cs1-code">|contributor=</code> requires <code class="cs1-code">|$1=</code>', -- $1 is parameter name
anchor = 'contributor_missing_required_param',
category = 'CS1 errors: contributor',
hidden = false
},
err_deprecated_params = {
message = 'Cite uses deprecated parameter <code class="cs1-code">|$1=</code>', -- $1 is parameter name
anchor = 'deprecated_params',
category = 'CS1 errors: deprecated parameters',
hidden = false
},
err_disp_name = {
message = 'Invalid <code class="cs1-code">|$1=$2</code>', -- $1 is parameter name; $2 is the assigned value
anchor = 'disp_name',
category = 'CS1 errors: display-names',
hidden = false,
},
err_doibroken_missing_doi = {
message = '<code class="cs1-code">|$1=</code> requires <code class="cs1-code">|doi=</code>', -- $1 is parameter name
anchor = 'doibroken_missing_doi',
category = 'CS1 errors: DOI',
hidden = false
},
err_embargo_missing_pmc = {
message = '<code class="cs1-code">|$1=</code> requires <code class="cs1-code">|pmc=</code>', -- $1 is parameter name
anchor = 'embargo_missing_pmc',
category = 'CS1 errors: PMC embargo',
hidden = false
},
err_empty_citation = {
message = 'Empty citation',
anchor = 'empty_citation',
category = 'CS1 errors: empty citation',
hidden = false
},
err_etal = {
message = 'Explicit use of et al. in: <code class="cs1-code">|$1=</code>', -- $1 is parameter name
anchor = 'explicit_et_al',
category = 'CS1 errors: explicit use of et al.',
hidden = false
},
err_extra_text_edition = {
message = '<code class="cs1-code">|edition=</code> has extra text',
anchor = 'extra_text_edition',
category = 'CS1 errors: extra text: edition',
hidden = false,
},
err_extra_text_issue = {
message = '<code class="cs1-code">|$1=</code> has extra text', -- $1 is parameter name
anchor = 'extra_text_issue',
category = 'CS1 errors: extra text: issue',
hidden = false,
},
err_extra_text_pages = {
message = '<code class="cs1-code">|$1=</code> has extra text', -- $1 is parameter name
anchor = 'extra_text_pages',
category = 'CS1 errors: extra text: pages',
hidden = false,
},
err_extra_text_volume = {
message = '<code class="cs1-code">|$1=</code> has extra text', -- $1 is parameter name
anchor = 'extra_text_volume',
category = 'CS1 errors: extra text: volume',
hidden = true,
},
err_first_missing_last = {
message = '<code class="cs1-code">|$1=</code> missing <code class="cs1-code">|$2=</code>', -- $1 is first alias, $2 is matching last alias
anchor = 'first_missing_last',
category = 'CS1 errors: missing name', -- author, contributor, editor, interviewer, translator
hidden = false
},
err_format_missing_url = {
message = '<code class="cs1-code">|$1=</code> requires <code class="cs1-code">|$2=</code>', -- $1 is format parameter $2 is url parameter
anchor = 'format_missing_url',
category = 'CS1 errors: format without URL',
hidden = false
},
err_generic_name = {
message = '<code class="cs1-code">|$1=</code> has generic name', -- $1 is parameter name
anchor = 'generic_name',
category = 'CS1 errors: generic name',
hidden = false,
},
err_generic_title = {
message = 'Cite uses generic title',
anchor = 'generic_title',
category = 'CS1 errors: generic title',
hidden = false,
},
err_invalid_param_val = {
message = 'Invalid <code class="cs1-code">|$1=$2</code>', -- $1 is parameter name $2 is parameter value
anchor = 'invalid_param_val',
category = 'CS1 errors: invalid parameter value',
hidden = false
},
err_invisible_char = {
message = '$1 in $2 at position $3', -- $1 is invisible char $2 is parameter name $3 is position number
anchor = 'invisible_char',
category = 'CS1 errors: invisible characters',
hidden = false
},
err_missing_name = {
message = 'Missing <code class="cs1-code">|$1$2=</code>', -- $1 is modified NameList; $2 is enumerator
anchor = 'missing_name',
category = 'CS1 errors: missing name', -- author, contributor, editor, interviewer, translator
hidden = false
},
err_missing_periodical = {
message = 'Cite $1 requires <code class="cs1-code">|$2=</code>', -- $1 is cs1 template name; $2 is canonical periodical parameter name for cite $1
anchor = 'missing_periodical',
category = 'CS1 errors: missing periodical',
hidden = true
},
err_missing_pipe = {
message = 'Missing pipe in: <code class="cs1-code">|$1=</code>', -- $1 is parameter name
anchor = 'missing_pipe',
category = 'CS1 errors: missing pipe',
hidden = false
},
err_param_access_requires_param = {
message = '<code class="cs1-code">|$1-access=</code> requires <code class="cs1-code">|$1=</code>', -- $1 is parameter name
anchor = 'param_access_requires_param',
category = 'CS1 errors: param-access',
hidden = false
},
err_param_has_ext_link = {
message = 'External link in <code class="cs1-code">$1</code>', -- $1 is parameter name
anchor = 'param_has_ext_link',
category = 'CS1 errors: external links',
hidden = false
},
err_parameter_ignored = {
message = 'Unknown parameter <code class="cs1-code">|$1=</code> ignored', -- $1 is parameter name
anchor = 'parameter_ignored',
category = 'CS1 errors: unsupported parameter',
hidden = false
},
err_parameter_ignored_suggest = {
message = 'Unknown parameter <code class="cs1-code">|$1=</code> ignored (<code class="cs1-code">|$2=</code> suggested)', -- $1 is unknown parameter $2 is suggested parameter name
anchor = 'parameter_ignored_suggest',
category = 'CS1 errors: unsupported parameter',
hidden = false
},
err_redundant_parameters = {
message = 'More than one of $1 specified', -- $1 is error message detail
anchor = 'redundant_parameters',
category = 'CS1 errors: redundant parameter',
hidden = false
},
err_script_parameter = {
message = 'Invalid <code class="cs1-code">|$1=</code>: $2', -- $1 is parameter name $2 is script language code or error detail
anchor = 'script_parameter',
category = 'CS1 errors: script parameters',
hidden = false
},
err_ssrn_missing = {
message = '<code class="cs1-code">|ssrn=</code> required',
anchor = 'ssrn_missing',
category = 'CS1 errors: SSRN', -- same as bad arxiv
hidden = false
},
err_text_ignored = {
message = 'Text "$1" ignored', -- $1 is ignored text
anchor = 'text_ignored',
category = 'CS1 errors: unrecognized parameter',
hidden = false
},
err_trans_missing_title = {
message = '<code class="cs1-code">|trans-$1=</code> requires <code class="cs1-code">|$1=</code> or <code class="cs1-code">|script-$1=</code>', -- $1 is base parameter name
anchor = 'trans_missing_title',
category = 'CS1 errors: translated title',
hidden = false
},
err_param_unknown_empty = {
message = 'Cite has empty unknown parameter$1: $2', -- $1 is 's' or empty space; $2 is emty unknown param list
anchor = 'param_unknown_empty',
category = 'CS1 errors: empty unknown parameters',
hidden = false
},
err_vancouver = {
message = 'Vancouver style error: $1 in name $2', -- $1 is error detail, $2 is the nth name
anchor = 'vancouver',
category = 'CS1 errors: Vancouver style',
hidden = false
},
err_wikilink_in_url = {
message = 'URL–wikilink conflict', -- uses ndash
anchor = 'wikilink_in_url',
category = 'CS1 errors: URL–wikilink conflict', -- uses ndash
hidden = false
},
--[[--------------------------< M A I N T >-------------------------------------
maint messages do not have a message (message = nil); otherwise the structure
is the same as error messages
]]
maint_archived_copy = {
message = nil,
anchor = 'archived_copy',
category = 'CS1 maint: archived copy as title',
hidden = true,
},
maint_authors = {
message = nil,
anchor = 'authors',
category = 'CS1 maint: uses authors parameter',
hidden = true,
},
maint_bot_unknown = {
message = nil,
anchor = 'bot:_unknown',
category = 'CS1 maint: bot: original URL status unknown',
hidden = true,
},
maint_date_auto_xlated = { -- date auto-translation not supported by en.wiki
message = nil,
anchor = 'date_auto_xlated',
category = 'CS1 maint: date auto-translated',
hidden = true,
},
maint_date_format = {
message = nil,
anchor = 'date_format',
category = 'CS1 maint: date format',
hidden = true,
},
maint_date_year = {
message = nil,
anchor = 'date_year',
category = 'CS1 maint: date and year',
hidden = true,
},
maint_doi_ignore = {
message = nil,
anchor = 'doi_ignore',
category = 'CS1 maint: ignored DOI errors',
hidden = true,
},
maint_doi_inactive = {
message = nil,
anchor = 'doi_inactive',
category = 'CS1 maint: DOI inactive',
hidden = true,
},
maint_doi_inactive_dated = {
message = nil,
anchor = 'doi_inactive_dated',
category = 'CS1 maint: DOI inactive as of $2$3$1', -- $1 is year, $2 is month-name or empty string, $3 is space or empty string
hidden = true,
},
maint_extra_punct = {
message = nil,
anchor = 'extra_punct',
category = 'CS1 maint: extra punctuation',
hidden = true,
},
maint_isbn_ignore = {
message = nil,
anchor = 'ignore_isbn_err',
category = 'CS1 maint: ignored ISBN errors',
hidden = true,
},
maint_issn_ignore = {
message = nil,
anchor = 'ignore_issn',
category = 'CS1 maint: ignored ISSN errors',
hidden = true,
},
maint_jfm_format = {
message = nil,
anchor = 'jfm_format',
category = 'CS1 maint: JFM format',
hidden = true,
},
maint_location = {
message = nil,
anchor = 'location',
category = 'CS1 maint: location',
hidden = true,
},
maint_mr_format = {
message = nil,
anchor = 'mr_format',
category = 'CS1 maint: MR format',
hidden = true,
},
maint_mult_names = {
message = nil,
anchor = 'mult_names',
category = 'CS1 maint: multiple names: $1', -- $1 is '<name>s list'; gets value from special_case_translation table
hidden = true,
},
maint_numeric_names = {
message = nil,
anchor = 'numeric_names',
category = 'CS1 maint: numeric names: $1', -- $1 is '<name>s list'; gets value from special_case_translation table
hidden = true,
},
maint_others = {
message = nil,
anchor = 'others',
category = 'CS1 maint: others',
hidden = true,
},
maint_others_avm = {
message = nil,
anchor = 'others_avm',
category = 'CS1 maint: others in cite AV media (notes)',
hidden = true,
},
maint_pmc_embargo = {
message = nil,
anchor = 'embargo',
category = 'CS1 maint: PMC embargo expired',
hidden = true,
},
maint_pmc_format = {
message = nil,
anchor = 'pmc_format',
category = 'CS1 maint: PMC format',
hidden = true,
},
maint_postscript = {
message = nil,
anchor = 'postscript',
category = 'CS1 maint: postscript',
hidden = true,
},
maint_ref_duplicates_default = {
message = nil,
anchor = 'ref_default',
category = 'CS1 maint: ref duplicates default',
hidden = true,
},
maint_unfit = {
message = nil,
anchor = 'unfit',
category = 'CS1 maint: unfit URL',
hidden = true,
},
maint_unknown_lang = {
message = nil,
anchor = 'unknown_lang',
category = 'CS1 maint: unrecognized language',
hidden = true,
},
maint_untitled = {
message = nil,
anchor = 'untitled',
category = 'CS1 maint: untitled periodical',
hidden = true,
},
maint_url_status = {
message = nil,
anchor = 'url_status',
category = 'CS1 maint: url-status',
hidden = true,
},
maint_zbl = {
message = nil,
anchor = 'zbl',
category = 'CS1 maint: Zbl',
hidden = true,
},
}
--[[--------------------------< I D _ H A N D L E R S >--------------------------------------------------------
The following contains a list of values for various defined identifiers. For each
identifier we specify a variety of information necessary to properly render the
identifier in the citation.
parameters: a list of parameter aliases for this identifier; first in the list is the canonical form
link: Wikipedia article name
redirect: a local redirect to a local Wikipedia article name; at en.wiki, 'ISBN (identifier)' is a redirect to 'International Standard Book Number'
q: Wikidata q number for the identifier
label: the label preceeding the identifier; label is linked to a Wikipedia article (in this order):
redirect from id_handlers['<id>'].redirect when use_identifier_redirects is true
Wikidata-supplied article name for the local wiki from id_handlers['<id>'].q
local article name from id_handlers['<id>'].link
prefix: the first part of a URL that will be concatenated with a second part which usually contains the identifier
suffix: optional third part to be added after the identifier
encode: true if URI should be percent-encoded; otherwise false
COinS: identifier link or keyword for use in COinS:
for identifiers registered at info-uri.info use: info:.... where '...' is the appropriate identifier label
for identifiers that have COinS keywords, use the keyword: rft.isbn, rft.issn, rft.eissn
for |asin= and |ol=, which require assembly, use the keyword: url
for others make a URL using the value in prefix/suffix and #label, use the keyword: pre (not checked; any text other than 'info', 'rft', or 'url' works here)
set to nil to leave the identifier out of the COinS
separator: character or text between label and the identifier in the rendered citation
id_limit: for those identifiers with established limits, this property holds the upper limit
access: use this parameter to set the access level for all instances of this identifier.
the value must be a valid access level for an identifier (see ['id-access'] in this file).
custom_access: to enable custom access level for an identifier, set this parameter
to the parameter that should control it (normally 'id-access')
]]
local id_handlers = {
['ARXIV'] = {
parameters = {'arxiv', 'eprint'},
link = 'arXiv',
redirect = 'arXiv (identifier)',
q = 'Q118398',
label = 'arXiv',
prefix = '//arxiv.org/abs/', -- protocol-relative tested 2013-09-04
encode = false,
COinS = 'info:arxiv',
separator = ':',
access = 'free', -- free to read
},
['ASIN'] = {
parameters = { 'asin', 'ASIN' },
link = 'Amazon Standard Identification Number',
redirect = 'ASIN (identifier)',
q = 'Q1753278',
label = 'ASIN',
prefix = '//www.amazon.',
COinS = 'url',
separator = ' ',
encode = false;
},
['BIBCODE'] = {
parameters = {'bibcode'},
link = 'Bibcode',
redirect = 'Bibcode (identifier)',
q = 'Q25754',
label = 'Bibcode',
prefix = 'https://ui.adsabs.harvard.edu/abs/',
encode = false,
COinS = 'info:bibcode',
separator = ':',
custom_access = 'bibcode-access',
},
['BIORXIV'] = {
parameters = {'biorxiv'},
link = 'bioRxiv',
redirect = 'bioRxiv (identifier)',
q = 'Q19835482',
label = 'bioRxiv',
prefix = '//doi.org/',
COinS = 'pre', -- use prefix value
access = 'free', -- free to read
encode = true,
separator = ' ',
},
['CITESEERX'] = {
parameters = {'citeseerx'},
link = 'CiteSeerX',
redirect = 'CiteSeerX (identifier)',
q = 'Q2715061',
label = 'CiteSeerX',
prefix = '//citeseerx.ist.psu.edu/viewdoc/summary?doi=',
COinS = 'pre', -- use prefix value
access = 'free', -- free to read
encode = true,
separator = ' ',
},
['DOI'] = { -- Used by InternetArchiveBot
parameters = { 'doi', 'DOI'},
link = 'Digital object identifier',
redirect = 'doi (identifier)',
q = 'Q25670',
label = 'doi',
prefix = '//doi.org/',
COinS = 'info:doi',
separator = ':',
encode = true,
custom_access = 'doi-access',
},
['EISSN'] = {
parameters = {'eissn', 'EISSN'},
link = 'International Standard Serial Number#Electronic ISSN',
redirect = 'eISSN (identifier)',
q = 'Q46339674',
label = 'eISSN',
prefix = '//www.worldcat.org/issn/',
COinS = 'rft.eissn',
encode = false,
separator = ' ',
},
['HDL'] = {
parameters = { 'hdl', 'HDL' },
link = 'Handle System',
redirect = 'hdl (identifier)',
q = 'Q3126718',
label = 'hdl',
prefix = '//hdl.handle.net/',
COinS = 'info:hdl',
separator = ':',
encode = true,
custom_access = 'hdl-access',
},
['ISBN'] = { -- Used by InternetArchiveBot
parameters = {'isbn', 'ISBN'},
link = 'International Standard Book Number',
redirect = 'ISBN (identifier)',
q = 'Q33057',
label = 'ISBN',
prefix = 'Special:BookSources/',
COinS = 'rft.isbn',
separator = ' ',
},
['ISMN'] = {
parameters = {'ismn', 'ISMN'},
link = 'International Standard Music Number',
redirect = 'ISMN (identifier)',
q = 'Q1666938',
label = 'ISMN',
prefix = '', -- not currently used;
COinS = nil, -- nil because we can't use pre or rft or info:
separator = ' ',
},
['ISSN'] = {
parameters = {'issn', 'ISSN'},
link = 'International Standard Serial Number',
redirect = 'ISSN (identifier)',
q = 'Q131276',
label = 'ISSN',
prefix = '//www.worldcat.org/issn/',
COinS = 'rft.issn',
encode = false,
separator = ' ',
},
['JFM'] = {
parameters = {'jfm', 'JFM'},
link = 'Jahrbuch über die Fortschritte der Mathematik',
redirect = 'JFM (identifier)',
q = '',
label = 'JFM',
prefix = '//zbmath.org/?format=complete&q=an:',
COinS = 'pre', -- use prefix value
encode = true,
separator = ' ',
},
['JSTOR'] = {
parameters = {'jstor', 'JSTOR'},
link = 'JSTOR',
redirect = 'JSTOR (identifier)',
q = 'Q1420342',
label = 'JSTOR',
prefix = '//www.jstor.org/stable/', -- protocol-relative tested 2013-09-04
COinS = 'pre', -- use prefix value
encode = false,
separator = ' ',
custom_access = 'jstor-access',
},
['LCCN'] = {
parameters = {'lccn', 'LCCN'},
link = 'Library of Congress Control Number',
redirect = 'LCCN (identifier)',
q = 'Q620946',
label = 'LCCN',
prefix = '//lccn.loc.gov/', -- protocol-relative tested 2015-12-28
COinS = 'info:lccn',
encode = false,
separator = ' ',
},
['MR'] = {
parameters = {'mr', 'MR'},
link = 'Mathematical Reviews',
redirect = 'MR (identifier)',
q = 'Q211172',
label = 'MR',
prefix = '//www.ams.org/mathscinet-getitem?mr=', -- protocol-relative tested 2013-09-04
COinS = 'pre', -- use prefix value
encode = true,
separator = ' ',
},
['OCLC'] = {
parameters = {'oclc', 'OCLC'},
link = 'OCLC',
redirect = 'OCLC (identifier)',
q = 'Q190593',
label = 'OCLC',
prefix = '//www.worldcat.org/oclc/',
COinS = 'info:oclcnum',
encode = true,
separator = ' ',
id_limit = 9999999999, -- 10-digits
},
['OL'] = {
parameters = { 'ol', 'OL' },
link = 'Open Library',
redirect = 'OL (identifier)',
q = 'Q1201876',
label = 'OL',
prefix = '//openlibrary.org/',
COinS = 'url',
separator = ' ',
encode = true,
custom_access = 'ol-access',
},
['OSTI'] = {
parameters = {'osti', 'OSTI'},
link = 'Office of Scientific and Technical Information',
redirect = 'OSTI (identifier)',
q = 'Q2015776',
label = 'OSTI',
prefix = '//www.osti.gov/biblio/', -- protocol-relative tested 2018-09-12
COinS = 'pre', -- use prefix value
encode = true,
separator = ' ',
id_limit = 23010000,
custom_access = 'osti-access',
},
['PMC'] = {
parameters = {'pmc', 'PMC'},
link = 'PubMed Central',
redirect = 'PMC (identifier)',
q = 'Q229883',
label = 'PMC',
prefix = '//www.ncbi.nlm.nih.gov/pmc/articles/PMC',
suffix = '',
COinS = 'pre', -- use prefix value
encode = true,
separator = ' ',
id_limit = 9300000,
access = 'free', -- free to read
},
['PMID'] = {
parameters = {'pmid', 'PMID'},
link = 'PubMed Identifier',
redirect = 'PMID (identifier)',
q = 'Q2082879',
label = 'PMID',
prefix = '//pubmed.ncbi.nlm.nih.gov/',
COinS = 'info:pmid',
encode = false,
separator = ' ',
id_limit = 35900000,
},
['RFC'] = {
parameters = {'rfc', 'RFC'},
link = 'Request for Comments',
redirect = 'RFC (identifier)',
q = 'Q212971',
label = 'RFC',
prefix = '//tools.ietf.org/html/rfc',
COinS = 'pre', -- use prefix value
encode = false,
separator = ' ',
id_limit = 9300,
access = 'free', -- free to read
},
['SBN'] = {
parameters = {'sbn', 'SBN'},
link = 'Standard Book Number', -- redirect to International_Standard_Book_Number#History
redirect = 'SBN (identifier)',
label = 'SBN',
prefix = 'Special:BookSources/0-', -- prefix has leading zero necessary to make 9-digit sbn a 10-digit isbn
COinS = nil, -- nil because we can't use pre or rft or info:
separator = ' ',
},
['SSRN'] = {
parameters = {'ssrn', 'SSRN'},
link = 'Social Science Research Network',
redirect = 'SSRN (identifier)',
q = 'Q7550801',
label = 'SSRN',
prefix = '//ssrn.com/abstract=', -- protocol-relative tested 2013-09-04
COinS = 'pre', -- use prefix value
encode = true,
separator = ' ',
id_limit = 4200000,
custom_access = 'ssrn-access',
},
['S2CID'] = {
parameters = {'s2cid', 'S2CID'},
link = 'Semantic Scholar',
redirect = 'S2CID (identifier)',
q = 'Q22908627',
label = 'S2CID',
prefix = 'https://api.semanticscholar.org/CorpusID:',
COinS = 'pre', -- use prefix value
encode = false,
separator = ' ',
id_limit = 254000000,
custom_access = 's2cid-access',
},
['USENETID'] = {
parameters = {'message-id'},
link = 'Usenet',
redirect = 'Usenet (identifier)',
q = 'Q193162',
label = 'Usenet:',
prefix = 'news:',
encode = false,
COinS = 'pre', -- use prefix value
separator = ' ',
},
['ZBL'] = {
parameters = {'zbl', 'ZBL' },
link = 'Zentralblatt MATH',
redirect = 'Zbl (identifier)',
q = 'Q190269',
label = 'Zbl',
prefix = '//zbmath.org/?format=complete&q=an:',
COinS = 'pre', -- use prefix value
encode = true,
separator = ' ',
},
}
--[[--------------------------< E X P O R T S >---------------------------------
]]
return {
use_identifier_redirects = true, -- when true use redirect name for identifier label links; always true at en.wiki
local_lang_cat_enable = false; -- when true categorizes pages where |language=<local wiki's language>; always false at en.wiki
date_name_auto_xlate_enable = false; -- when true translates English month-names to the local-wiki's language month names; always false at en.wiki
date_digit_auto_xlate_enable = false; -- when true translates Western date digit to the local-wiki's language digits (date_names['local_digits']); always false at en.wiki
global_df = get_date_format (), -- tables and variables created when this module is loaded
punct_skip = build_skip_table (punct_skip, punct_meta_params),
url_skip = build_skip_table (url_skip, url_meta_params),
aliases = aliases,
special_case_translation = special_case_translation,
date_names = date_names,
err_msg_supl = err_msg_supl,
error_conditions = error_conditions,
editor_markup_patterns = editor_markup_patterns,
et_al_patterns = et_al_patterns,
id_handlers = id_handlers,
keywords_lists = keywords_lists,
keywords_xlate = keywords_xlate,
stripmarkers = stripmarkers,
invisible_chars = invisible_chars,
invisible_defs = invisible_defs,
indic_script = indic_script,
emoji = emoji,
maint_cats = maint_cats,
messages = messages,
presentation = presentation,
prop_cats = prop_cats,
script_lang_codes = script_lang_codes,
lang_code_remap = lang_code_remap,
lang_name_remap = lang_name_remap,
this_wiki_code = this_wiki_code,
title_types = title_types,
uncategorized_namespaces = uncategorized_namespaces_t,
uncategorized_subpages = uncategorized_subpages,
templates_using_volume = templates_using_volume,
templates_using_issue = templates_using_issue,
templates_not_using_page = templates_not_using_page,
vol_iss_pg_patterns = vol_iss_pg_patterns,
inter_wiki_map = inter_wiki_map,
mw_languages_by_tag_t = mw_languages_by_tag_t,
mw_languages_by_name_t = mw_languages_by_name_t,
citation_class_map_t = citation_class_map_t,
citation_issue_t = citation_issue_t,
citation_no_volume_t = citation_no_volume_t,
}
271zlrn98qb47vklsyke0gate4qj8v7
Module:Citation/CS1/Configuration/sandbox/doc
828
1631
15096
2022-07-17T13:21:44Z
Kambai Akau
15
Created page with "{{#lst:Module:Citation/CS1/doc|header}} This configuration file contains various data that controls the functioning of [[Module:Citation/CS1]] and hence the way that Lua-based citations are generated. It has several sections among which are: # translation tables that contain most of the literal strings that may be included in Lua-based citation. If editors are copying this Module to another wiki using a language other than English, then they should translate each of th..."
wikitext
text/x-wiki
{{#lst:Module:Citation/CS1/doc|header}}
This configuration file contains various data that controls the functioning of [[Module:Citation/CS1]] and hence the way that Lua-based citations are generated.
It has several sections among which are:
# translation tables that contain most of the literal strings that may be included in Lua-based citation. If editors are copying this Module to another wiki using a language other than English, then they should translate each of these values into that language.
# a list of error conditions specifying what text to display, what category to include (if any), and what help page section to refer to when errors are detected
# a list of ID handlers specifying the recognized document IDs, such as ISBN, DOI, etc., and how to format them.
{{#lst:Module:Citation/CS1/doc|module_components_table}}
<includeonly>{{#ifeq:{{SUBPAGENAME}}|sandbox | |
<!-- Categories below this line, please; interwikis at Wikidata -->
[[Category:Modules that check for strip markers]]
}}</includeonly>
biogwubrb1rjghyggmlzlh42u2bp8dy
Module:Citation/CS1/Whitelist/sandbox
828
1632
15097
2022-07-17T13:28:37Z
Kambai Akau
15
Created page with "--[[ History of changes since last sync: 2022-01-22 ]] --[[--------------------------< S U P P O R T E D P A R A M E T E R S >-------------------------------------- Because a steady-state signal conveys no useful information, whitelist.basic_arguments[] list items can have three values: true - these parameters are valid and supported parameters false - these parameters are deprecated but still supported tracked - these parameters are valid and supported parameter..."
Scribunto
text/plain
--[[
History of changes since last sync: 2022-01-22
]]
--[[--------------------------< S U P P O R T E D P A R A M E T E R S >--------------------------------------
Because a steady-state signal conveys no useful information, whitelist.basic_arguments[] list items can have three values:
true - these parameters are valid and supported parameters
false - these parameters are deprecated but still supported
tracked - these parameters are valid and supported parameters tracked in an eponymous properties category
nil - these parameters are no longer supported. remove entirely
]]
local basic_arguments = {
['accessdate'] = true,
['access-date'] = true,
['agency'] = true,
['archivedate'] = true,
['archive-date'] = true,
['archive-format'] = true,
['archiveurl'] = true,
['archive-url'] = true,
['article'] = true,
['article-format'] = true,
['article-url'] = true,
['article-url-access'] = true,
['arxiv'] = true, -- cite arxiv; here because allowed in cite ... as identifier
['asin'] = true,
['ASIN'] = true,
['asin-tld'] = true,
['at'] = true,
['author'] = true,
['author-first'] = true,
['author-given'] = true,
['author-last'] = true,
['author-surname'] = true,
['authorlink'] = true,
['author-link'] = true,
['author-mask'] = true,
['authors'] = true,
['bibcode'] = true,
['bibcode-access'] = true,
['biorxiv'] = true, -- cite biorxiv; here because allowed in cite ... as identifier
['chapter'] = true,
['chapter-format'] = true,
['chapter-url'] = true,
['chapter-url-access'] = true,
['citeseerx'] = true, -- cite citeseerx; here because allowed in cite ... as identifier
['collaboration'] = true,
['contribution'] = true,
['contribution-format'] = true,
['contribution-url'] = true,
['contribution-url-access'] = true,
['contributor'] = true,
['contributor-first'] = true,
['contributor-given'] = true,
['contributor-last'] = true,
['contributor-surname'] = true,
['contributor-link'] = true,
['contributor-mask'] = true,
['date'] = true,
['department'] = true,
['df'] = true,
['dictionary'] = true,
['display-authors'] = true,
['display-contributors'] = true,
['display-editors'] = true,
['display-interviewers'] = true,
['display-subjects'] = true,
['display-translators'] = true,
['doi'] = true,
['DOI'] = true,
['doi-access'] = true,
['doi-broken-date'] = true,
['edition'] = true,
['editor'] = true,
['editor-first'] = true,
['editor-given'] = true,
['editor-last'] = true,
['editor-surname'] = true,
['editor-link'] = true,
['editor-mask'] = true,
['eissn'] = true,
['EISSN'] = true,
['encyclopaedia'] = true,
['encyclopedia'] = true,
['entry'] = true,
['entry-format'] = true,
['entry-url'] = true,
['entry-url-access'] = true,
['eprint'] = true, -- cite arxiv; here because allowed in cite ... as identifier
['first'] = true,
['format'] = true,
['given'] = true,
['hdl'] = true,
['HDL'] = true,
['hdl-access'] = true,
['host'] = true, -- unique to certain templates?
['id'] = true,
['ID'] = true,
['institution'] = true, -- constrain to cite thesis?
['interviewer'] = true,
['interviewer-first'] = true,
['interviewer-given'] = true,
['interviewer-last'] = true,
['interviewer-surname'] = true,
['interviewer-link'] = true,
['interviewer-mask'] = true,
['isbn'] = true,
['ISBN'] = true,
['ismn'] = true,
['ISMN'] = true,
['issn'] = true,
['ISSN'] = true,
['issue'] = true,
['jfm'] = true,
['JFM'] = true,
['journal'] = true,
['jstor'] = true,
['JSTOR'] = true,
['jstor-access'] = true,
['lang'] = true,
['language'] = true,
['last'] = true,
['lay-date'] = false,
['lay-format'] = false,
['lay-source'] = false,
['lay-url'] = false,
['lccn'] = true,
['LCCN'] = true,
['location'] = true,
['magazine'] = true,
['medium'] = true,
['minutes'] = true, -- constrain to cite AV media and podcast?
['mode'] = true,
['mr'] = true,
['MR'] = true,
['name-list-style'] = true,
['newspaper'] = true,
['no-pp'] = true,
['no-tracking'] = true,
['number'] = true,
['oclc'] = true,
['OCLC'] = true,
['ol'] = true,
['OL'] = true,
['ol-access'] = true,
['orig-date'] = true,
['origyear'] = true,
['orig-year'] = true,
['osti'] = true,
['OSTI'] = true,
['osti-access'] = true,
['others'] = true,
['p'] = true,
['page'] = true,
['pages'] = true,
['people'] = true,
['periodical'] = true,
['place'] = true,
['pmc'] = true,
['PMC'] = true,
['pmc-embargo-date'] = true,
['pmid'] = true,
['PMID'] = true,
['postscript'] = true,
['pp'] = true,
['publication-date'] = true,
['publication-place'] = true,
['publisher'] = true,
['quotation'] = true,
['quote'] = true,
['quote-page'] = true,
['quote-pages'] = true,
['ref'] = true,
['rfc'] = true,
['RFC'] = true,
['sbn'] = true,
['SBN'] = true,
['scale'] = true,
['script-article'] = true,
['script-chapter'] = true,
['script-contribution'] = true,
['script-entry'] = true,
['script-journal'] = true,
['script-magazine'] = true,
['script-newspaper'] = true,
['script-periodical'] = true,
['script-quote'] = true,
['script-section'] = true,
['script-title'] = true,
['script-website'] = true,
['script-work'] = true,
['section'] = true,
['section-format'] = true,
['section-url'] = true,
['section-url-access'] = true,
['series'] = true,
['ssrn'] = true, -- cite ssrn; these three here because allowed in cite ... as identifier
['SSRN'] = true,
['ssrn-access'] = true,
['subject'] = true,
['subject-link'] = true,
['subject-mask'] = true,
['surname'] = true,
['s2cid'] = true,
['S2CID'] = true,
['s2cid-access'] = true,
['template-doc-demo'] = true,
['time'] = true, -- constrain to cite av media and podcast?
['time-caption'] = true, -- constrain to cite av media and podcast?
['title'] = true,
['title-link'] = true,
['translator'] = true,
['translator-first'] = true,
['translator-given'] = true,
['translator-last'] = true,
['translator-surname'] = true,
['translator-link'] = true,
['translator-mask'] = true,
['trans-article'] = true,
['trans-chapter'] = true,
['trans-contribution'] = true,
['trans-entry'] = true,
['trans-journal'] = true,
['trans-magazine'] = true,
['trans-newspaper'] = true,
['trans-periodical'] = true,
['trans-quote'] = true,
['trans-section'] = true,
['trans-title'] = true,
['trans-website'] = true,
['trans-work'] = true,
['type'] = true,
['url'] = true,
['URL'] = true,
['url-access'] = true,
['url-status'] = true,
['vauthors'] = true,
['veditors'] = true,
['version'] = true,
['via'] = true,
['volume'] = true,
['website'] = true,
['work'] = true,
['year'] = true,
['zbl'] = true,
['ZBL'] = true,
}
local numbered_arguments = {
['author#'] = true,
['author-first#'] = true,
['author#-first'] = true,
['author-given#'] = true,
['author#-given'] = true,
['author-last#'] = true,
['author#-last'] = true,
['author-surname#'] = true,
['author#-surname'] = true,
['author-link#'] = true,
['author#-link'] = true,
['authorlink#'] = true,
['author#link'] = true,
['author-mask#'] = true,
['author#-mask'] = true,
['contributor#'] = true,
['contributor-first#'] = true,
['contributor#-first'] = true,
['contributor-given#'] = true,
['contributor#-given'] = true,
['contributor-last#'] = true,
['contributor#-last'] = true,
['contributor-surname#'] = true,
['contributor#-surname'] = true,
['contributor-link#'] = true,
['contributor#-link'] = true,
['contributor-mask#'] = true,
['contributor#-mask'] = true,
['editor#'] = true,
['editor-first#'] = true,
['editor#-first'] = true,
['editor-given#'] = true,
['editor#-given'] = true,
['editor-last#'] = true,
['editor#-last'] = true,
['editor-surname#'] = true,
['editor#-surname'] = true,
['editor-link#'] = true,
['editor#-link'] = true,
['editor-mask#'] = true,
['editor#-mask'] = true,
['first#'] = true,
['given#'] = true,
['host#'] = true,
['interviewer#'] = true,
['interviewer-first#'] = true,
['interviewer#-first'] = true,
['interviewer-given#'] = true,
['interviewer#-given'] = true,
['interviewer-last#'] = true,
['interviewer#-last'] = true,
['interviewer-surname#'] = true,
['interviewer#-surname'] = true,
['interviewer-link#'] = true,
['interviewer#-link'] = true,
['interviewer-mask#'] = true,
['interviewer#-mask'] = true,
['last#'] = true,
['subject#'] = true,
['subject-link#'] = true,
['subject#-link'] = true,
['subject-mask#'] = true,
['subject#-mask'] = true,
['surname#'] = true,
['translator#'] = true,
['translator-first#'] = true,
['translator#-first'] = true,
['translator-given#'] = true,
['translator#-given'] = true,
['translator-last#'] = true,
['translator#-last'] = true,
['translator-surname#'] = true,
['translator#-surname'] = true,
['translator-link#'] = true,
['translator#-link'] = true,
['translator-mask#'] = true,
['translator#-mask'] = true,
}
--[[--------------------------< P R E P R I N T S U P P O R T E D P A R A M E T E R S >--------------------
Cite arXiv, cite biorxiv, cite citeseerx, and cite ssrn are preprint templates that use the limited set of parameters
defined in the limited_basic_arguments and limited_numbered_arguments tables. Those lists are supplemented with a
template-specific list of parameters that are required by the particular template and may be exclusive to one of the
preprint templates. Some of these parameters may also be available to the general cs1|2 templates.
Same conventions for true/false/tracked/nil as above.
]]
local preprint_arguments = {
arxiv = {
['arxiv'] = true, -- cite arxiv and arxiv identifiers
['class'] = true,
['eprint'] = true, -- cite arxiv and arxiv identifiers
},
biorxiv = {
['biorxiv'] = true,
},
citeseerx = {
['citeseerx'] = true,
},
ssrn = {
['ssrn'] = true,
['SSRN'] = true,
['ssrn-access'] = true,
},
}
--[[--------------------------< L I M I T E D S U P P O R T E D P A R A M E T E R S >----------------------
cite arxiv, cite biorxiv, cite citeseerx, and cite ssrn templates are preprint templates so are allowed only a
limited subset of parameters allowed to all other cs1|2 templates. The limited subset is defined here.
Same conventions for true/false/tracked/nil as above.
]]
local limited_basic_arguments = {
['at'] = true,
['author'] = true,
['author-first'] = true,
['author-given'] = true,
['author-last'] = true,
['author-surname'] = true,
['author-link'] = true,
['authorlink'] = true,
['author-mask'] = true,
['authors'] = true,
['collaboration'] = true,
['date'] = true,
['df'] = true,
['display-authors'] = true,
['first'] = true,
['given'] = true,
['language'] = true,
['last'] = true,
['mode'] = true,
['name-list-style'] = true,
['no-tracking'] = true,
['p'] = true,
['page'] = true,
['pages'] = true,
['postscript'] = true,
['pp'] = true,
['quotation'] = true,
['quote'] = true,
['ref'] = true,
['surname'] = true,
['template-doc-demo'] = true,
['title'] = true,
['trans-title'] = true,
['vauthors'] = true,
['year'] = true,
}
local limited_numbered_arguments = {
['author#'] = true,
['author-first#'] = true,
['author#-first'] = true,
['author-given#'] = true,
['author#-given'] = true,
['author-last#'] = true,
['author#-last'] = true,
['author-surname#'] = true,
['author#-surname'] = true,
['author-link#'] = true,
['author#-link'] = true,
['authorlink#'] = true,
['author#link'] = true,
['author-mask#'] = true,
['author#-mask'] = true,
['first#'] = true,
['given#'] = true,
['last#'] = true,
['surname#'] = true,
}
--[[--------------------------< U N I Q U E _ A R G U M E N T S >----------------------------------------------
Some templates have unique parameters. Those templates and their unique parameters are listed here. Keys in this
table are the template's CitationClass parameter value
Same conventions for true/false/tracked/nil as above.
]]
local unique_arguments = {
['audio-visual'] = {
['transcript'] = true,
['transcript-format'] = true,
['transcript-url'] = true,
},
conference = {
['book-title'] = true,
['conference'] = true,
['conference-format'] = true,
['conference-url'] = true,
['event'] = true,
},
episode = {
['airdate'] = true,
['air-date'] = true,
['credits'] = true,
['episode-link'] = true, -- alias of |title-link=
['network'] = true,
['season'] = true,
['series-link'] = true,
['series-no'] = true,
['series-number'] = true,
['station'] = true,
['transcript'] = true,
['transcript-format'] = true,
['transcripturl'] = false,
['transcript-url'] = true,
},
mailinglist = {
['mailing-list'] = true,
},
map = {
['cartography'] = true,
['inset'] = true,
['map'] = true,
['map-format'] = true,
['map-url'] = true,
['map-url-access'] = true,
['script-map'] = true,
['sections'] = true,
['sheet'] = true,
['sheets'] = true,
['trans-map'] = true,
},
newsgroup = {
['message-id'] = true,
['newsgroup'] = true,
},
podcast = {
['transcript'] = true,
['transcript-format'] = true,
['transcript-url'] = true,
},
report = {
['docket'] = true,
},
serial = {
['airdate'] = true,
['air-date'] = true,
['credits'] = true,
['episode'] = true, -- cite serial only TODO: make available to cite episode?
['episode-link'] = true, -- alias of |title-link=
['network'] = true,
['series-link'] = true,
['station'] = true,
},
speech = {
['conference'] = true,
['conference-format'] = true,
['conference-url'] = true,
['event'] = true,
},
thesis = {
['degree'] = true,
['docket'] = true,
},
}
--[[--------------------------< T E M P L A T E _ L I S T _ G E T >--------------------------------------------
gets a list of the templates from table t
]]
local function template_list_get (t)
local out = {}; -- a table for output
for k, _ in pairs (t) do -- spin through the table and collect the keys
table.insert (out, k) -- add each key to the output table
end
return out; -- and done
end
--[[--------------------------< E X P O R T E D T A B L E S >------------------------------------------------
]]
return {
basic_arguments = basic_arguments,
numbered_arguments = numbered_arguments,
limited_basic_arguments = limited_basic_arguments,
limited_numbered_arguments = limited_numbered_arguments,
preprint_arguments = preprint_arguments,
preprint_template_list = template_list_get (preprint_arguments), -- make a template list from preprint_arguments{} table
unique_arguments = unique_arguments,
unique_param_template_list = template_list_get (unique_arguments), -- make a template list from unique_arguments{} table
};
odtxyvzixdhvg4ternyf0s5h1002ohl
Module:Citation/CS1/Date validation/sandbox
828
1633
15098
2022-07-17T13:33:12Z
Kambai Akau
15
Created page with "--[[ History of changes since last sync: 2022-07-01 ]] --[[--------------------------< F O R W A R D D E C L A R A T I O N S >-------------------------------------- ]] local add_prop_cat, is_set, in_array, set_message, substitute, wrap_style; -- imported functions from selected Module:Citation/CS1/Utilities local cfg; -- table of tables imported from selected Module:Citation/CS1/Configuration --[[--------------------------< F I L E - S C O P E..."
Scribunto
text/plain
--[[
History of changes since last sync: 2022-07-01
]]
--[[--------------------------< F O R W A R D D E C L A R A T I O N S >--------------------------------------
]]
local add_prop_cat, is_set, in_array, set_message, substitute, wrap_style; -- imported functions from selected Module:Citation/CS1/Utilities
local cfg; -- table of tables imported from selected Module:Citation/CS1/Configuration
--[[--------------------------< F I L E - S C O P E D E C L A R A T I O N S >--------------------------------
File-scope variables are declared here
]]
local lang_object = mw.getContentLanguage(); -- used by is_valid_accessdate(), is_valid_year(), date_name_xlate(); TODO: move to ~/Configuration?
local year_limit; -- used by is_valid_year()
--[=[-------------------------< I S _ V A L I D _ A C C E S S D A T E >----------------------------------------
returns true if:
Wikipedia start date <= accessdate < today + 2 days
Wikipedia start date is 2001-01-15T00:00:00 UTC which is 979516800 seconds after 1970-01-01T00:00:00 UTC (the start of Unix time)
accessdate is the date provided in |access-date= at time 00:00:00 UTC
today is the current date at time 00:00:00 UTC plus 48 hours
if today is 2015-01-01T00:00:00 then
adding 24 hours gives 2015-01-02T00:00:00 – one second more than today
adding 24 hours gives 2015-01-03T00:00:00 – one second more than tomorrow
This function does not work if it is fed month names for languages other than English. Wikimedia #time: parser
apparently doesn't understand non-English date month names. This function will always return false when the date
contains a non-English month name because good1 is false after the call to lang.formatDate(). To get around that
call this function with YYYY-MM-DD format dates.
]=]
local function is_valid_accessdate (accessdate)
local good1, good2;
local access_ts, tomorrow_ts; -- to hold Unix time stamps representing the dates
good1, access_ts = pcall (lang_object.formatDate, lang_object, 'U', accessdate ); -- convert accessdate value to Unix timestamp
good2, tomorrow_ts = pcall (lang_object.formatDate, lang_object, 'U', 'today + 2 days' ); -- today midnight + 2 days is one second more than all day tomorrow
if good1 and good2 then -- lang.formatDate() returns a timestamp in the local script which which tonumber() may not understand
access_ts = tonumber (access_ts) or lang_object:parseFormattedNumber (access_ts); -- convert to numbers for the comparison;
tomorrow_ts = tonumber (tomorrow_ts) or lang_object:parseFormattedNumber (tomorrow_ts);
else
return false; -- one or both failed to convert to Unix time stamp
end
if 979516800 <= access_ts and access_ts < tomorrow_ts then -- Wikipedia start date <= accessdate < tomorrow's date
return true;
else
return false; -- accessdate out of range
end
end
--[[--------------------------< G E T _ M O N T H _ N U M B E R >----------------------------------------------
returns a number according to the month in a date: 1 for January, etc. Capitalization and spelling must be correct.
If not a valid month, returns 0
]]
local function get_month_number (month)
return cfg.date_names['local'].long[month] or cfg.date_names['local'].short[month] or -- look for local names first
cfg.date_names['en'].long[month] or cfg.date_names['en'].short[month] or -- failing that, look for English names
0; -- not a recognized month name
end
--[[--------------------------< G E T _ S E A S O N _ N U M B E R >--------------------------------------------
returns a number according to the sequence of seasons in a year: 21 for Spring, etc. Capitalization and spelling
must be correct. If not a valid season, returns 0.
21-24 = Spring, Summer, Autumn, Winter, independent of “Hemisphere”
returns 0 when <param> is not |date=
Season numbering is defined by Extended Date/Time Format (EDTF) specification (https://www.loc.gov/standards/datetime/)
which became part of ISO 8601 in 2019. See '§Sub-year groupings'. The standard defines various divisions using
numbers 21-41. cs1|2 only supports generic seasons. EDTF does support the distinction between north and south
hemisphere seasons but cs1|2 has no way to make that distinction.
These additional divisions not currently supported:
25-28 = Spring - Northern Hemisphere, Summer- Northern Hemisphere, Autumn - Northern Hemisphere, Winter - Northern Hemisphere
29-32 = Spring – Southern Hemisphere, Summer– Southern Hemisphere, Autumn – Southern Hemisphere, Winter - Southern Hemisphere
33-36 = Quarter 1, Quarter 2, Quarter 3, Quarter 4 (3 months each)
37-39 = Quadrimester 1, Quadrimester 2, Quadrimester 3 (4 months each)
40-41 = Semestral 1, Semestral-2 (6 months each)
]]
local function get_season_number (season, param)
if 'date' ~= param then
return 0; -- season dates only supported by |date=
end
return cfg.date_names['local'].season[season] or -- look for local names first
cfg.date_names['en'].season[season] or -- failing that, look for English names
0; -- not a recognized season name
end
--[[--------------------------< G E T _ Q U A R T E R _ N U M B E R >------------------------------------------
returns a number according to the sequence of quarters in a year: 33 for first quarter, etc. Capitalization and spelling
must be correct. If not a valid quarter, returns 0.
33-36 = Quarter 1, Quarter 2, Quarter 3, Quarter 4 (3 months each)
returns 0 when <param> is not |date=
Quarter numbering is defined by Extended Date/Time Format (EDTF) specification (https://www.loc.gov/standards/datetime/)
which became part of ISO 8601 in 2019. See '§Sub-year groupings'. The standard defines various divisions using
numbers 21-41. cs1|2 only supports generic seasons and quarters.
These additional divisions not currently supported:
37-39 = Quadrimester 1, Quadrimester 2, Quadrimester 3 (4 months each)
40-41 = Semestral 1, Semestral-2 (6 months each)
]]
local function get_quarter_number (quarter, param)
if 'date' ~= param then
return 0; -- quarter dates only supported by |date=
end
quarter = mw.ustring.gsub (quarter, ' +', ' '); -- special case replace multiple space chars with a single space char
return cfg.date_names['local'].quarter[quarter] or -- look for local names first
cfg.date_names['en'].quarter[quarter] or -- failing that, look for English names
0; -- not a recognized quarter name
end
--[[--------------------------< G E T _ P R O P E R _ N A M E _ N U M B E R >----------------------------------
returns a non-zero number if date contains a recognized proper-name. Capitalization and spelling must be correct.
returns 0 when <param> is not |date=
]]
local function get_proper_name_number (name, param)
if 'date' ~= param then
return 0; -- proper-name dates only supported by |date=
end
return cfg.date_names['local'].named[name] or -- look for local names dates first
cfg.date_names['en'].named[name] or -- failing that, look for English names
0; -- not a recognized named date
end
--[[--------------------------< G E T _ E L E M E N T _ N U M B E R <------------------------------------------
returns true if month or season or quarter or proper name is valid (properly spelled, capitalized, abbreviated)
]]
local function get_element_number (element, param)
local num;
local funcs = {get_month_number, get_season_number, get_quarter_number, get_proper_name_number}; -- list of functions to execute in order
for _, func in ipairs (funcs) do -- spin through the function list
num = func (element, param); -- call the function and get the returned number
if 0 ~= num then -- non-zero when valid month season quarter
return num; -- return that number
end
end
return nil; -- not valid
end
--[[--------------------------< I S _ V A L I D _ Y E A R >----------------------------------------------------
Function gets current year from the server and compares it to year from a citation parameter. Years more than one
year in the future are not acceptable.
Special case for |pmc-embargo-date=: years more than two years in the future are not acceptable
]]
local function is_valid_year (year, param)
if not is_set (year_limit) then
year_limit = tonumber(os.date("%Y"))+1; -- global variable so we only have to fetch it once
end
year = tonumber (year) or lang_object:parseFormattedNumber (year); -- convert to number for the comparison;
if 'pmc-embargo-date' == param then -- special case for |pmc-embargo-date=
return year and (year <= tonumber(os.date("%Y"))+2) or false; -- years more than two years in the future are not accepted
end
return year and (year <= year_limit) or false;
end
--[[--------------------------< I S _ V A L I D _ D A T E >----------------------------------------------------
Returns true if day is less than or equal to the number of days in month and year is no farther into the future
than next year; else returns false.
Assumes Julian calendar prior to year 1582 and Gregorian calendar thereafter. Accounts for Julian calendar leap
years before 1582 and Gregorian leap years after 1582. Where the two calendars overlap (1582 to approximately
1923) dates are assumed to be Gregorian.
]]
local function is_valid_date (year, month, day, param)
local days_in_month = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
local month_length;
if not is_valid_year (year, param) then -- no farther into the future than next year except |pmc-embargo-date= no more than two years in the future
return false;
end
month = tonumber (month); -- required for YYYY-MM-DD dates
if (2 == month) then -- if February
month_length = 28; -- then 28 days unless
if 1582 > tonumber(year) then -- Julian calendar
if 0 == (year%4) then -- is a leap year?
month_length = 29; -- if leap year then 29 days in February
end
else -- Gregorian calendar
if (0 == (year%4) and (0 ~= (year%100) or 0 == (year%400))) then -- is a leap year?
month_length = 29; -- if leap year then 29 days in February
end
end
else
month_length = days_in_month[month];
end
if tonumber (day) > month_length then
return false;
end
return true;
end
--[[--------------------------< I S _ V A L I D _ M O N T H _ R A N G E _ S T Y L E >--------------------------
Months in a range are expected to have the same style: Jan–Mar or October–December but not February–Mar or Jul–August.
This function looks in cfg.date_names{} to see if both month names are listed in the long subtable or both are
listed in the short subtable. When both have the same style (both are listed in the same table), returns true; false else
]]
local function is_valid_month_range_style (month1, month2)
if (cfg.date_names.en.long[month1] and cfg.date_names.en.long[month2]) or -- are both English names listed in the long subtable?
(cfg.date_names.en.short[month1] and cfg.date_names.en.short[month2]) or -- are both English names listed in the short subtable?
(cfg.date_names['local'].long[month1] and cfg.date_names['local'].long[month2]) or -- are both local names listed in the long subtable?
(cfg.date_names['local'].short[month1] and cfg.date_names['local'].short[month2]) then -- are both local names listed in the short subtable?
return true;
end
return false; -- names are mixed
end
--[[--------------------------< I S _ V A L I D _ M O N T H _ S E A S O N _ R A N G E >------------------------
Check a pair of months or seasons to see if both are valid members of a month or season pair.
Month pairs are expected to be left to right, earliest to latest in time.
All season ranges are accepted as valid because there are publishers out there who have published a Summer–Spring YYYY issue, hence treat as ok
]]
local function is_valid_month_season_range(range_start, range_end, param)
local range_start_number = get_month_number (range_start);
local range_end_number;
if 0 == range_start_number then -- is this a month range?
range_start_number = get_season_number (range_start, param); -- not a month; is it a season? get start season number
range_end_number = get_season_number (range_end, param); -- get end season number
if (0 ~= range_start_number) and (0 ~= range_end_number) and (range_start_number ~= range_end_number) then
return true; -- any season pairing is accepted except when both are the same
end
return false; -- range_start and/or range_end is not a season
end
-- here when range_start is a month
range_end_number = get_month_number (range_end); -- get end month number
if range_start_number < range_end_number and -- range_start is a month; does range_start precede range_end?
is_valid_month_range_style (range_start, range_end) then -- do months have the same style?
return true; -- proper order and same style
end
return false; -- range_start month number is greater than or equal to range end number; or range end isn't a month
end
--[[--------------------------< M A K E _ C O I N S _ D A T E >------------------------------------------------
This function receives a table of date parts for one or two dates and an empty table reference declared in
Module:Citation/CS1. The function is called only for |date= parameters and only if the |date=<value> is
determined to be a valid date format. The question of what to do with invalid date formats is not answered here.
The date parts in the input table are converted to an ISO 8601 conforming date string:
single whole dates: yyyy-mm-dd
month and year dates: yyyy-mm
year dates: yyyy
ranges: yyyy-mm-dd/yyyy-mm-dd
yyyy-mm/yyyy-mm
yyyy/yyyy
Dates in the Julian calendar are reduced to year or year/year so that we don't have to do calendar conversion from
Julian to Proleptic Gregorian.
The input table has:
year, year2 – always present; if before 1582, ignore months and days if present
month, month2 – 0 if not provided, 1-12 for months, 21-24 for seasons; 99 Christmas
day, day2 – 0 if not provided, 1-31 for days
the output table receives:
rftdate: an ISO 8601 formatted date
rftchron: a free-form version of the date, usually without year which is in rftdate (season ranges and proper-name dates)
rftssn: one of four season keywords: winter, spring, summer, fall (lowercase)
rftquarter: one of four values: 1, 2, 3, 4
]]
local function make_COinS_date (input, tCOinS_date)
local date; -- one date or first date in a range
local date2 = ''; -- end of range date
-- start temporary Julian / Gregorian calendar uncertainty detection
local year = tonumber(input.year); -- this temporary code to determine the extent of sources dated to the Julian/Gregorian
local month = tonumber(input.month); -- interstice 1 October 1582 – 1 January 1926
local day = tonumber (input.day);
if (0 ~= day) and -- day must have a value for this to be a whole date
(((1582 == year) and (10 <= month) and (12 >= month)) or -- any whole 1582 date from 1 October to 31 December or
((1926 == year) and (1 == month) and (1 == input.day)) or -- 1 January 1926 or
((1582 < year) and (1925 >= year))) then -- any date 1 January 1583 – 31 December 1925
tCOinS_date.inter_cal_cat = true; -- set category flag true
end
-- end temporary Julian / Gregorian calendar uncertainty detection
if 1582 > tonumber(input.year) or 20 < tonumber(input.month) then -- Julian calendar or season so &rft.date gets year only
date = input.year;
if 0 ~= input.year2 and input.year ~= input.year2 then -- if a range, only the second year portion when not the same as range start year
date = string.format ('%.4d/%.4d', tonumber(input.year), tonumber(input.year2)) -- assemble the date range
end
if 20 < tonumber(input.month) then -- if season or proper-name date
local season = {[24] = 'winter', [21] = 'spring', [22] = 'summer', [23] = 'fall', [33] = '1', [34] = '2', [35] = '3', [36] = '4', [98] = 'Easter', [99] = 'Christmas'}; -- seasons lowercase, no autumn; proper-names use title case
if 0 == input.month2 then -- single season date
if 40 < tonumber(input.month) then
tCOinS_date.rftchron = season[input.month]; -- proper-name dates
elseif 30 < tonumber(input.month) then
tCOinS_date.rftquarter = season[input.month]; -- quarters
else
tCOinS_date.rftssn = season[input.month]; -- seasons
end
else -- season range with a second season specified
if input.year ~= input.year2 then -- season year – season year range or season year–year
tCOinS_date.rftssn = season[input.month]; -- start of range season; keep this?
if 0~= input.month2 then
tCOinS_date.rftchron = string.format ('%s %s – %s %s', season[input.month], input.year, season[input.month2], input.year2);
end
else -- season–season year range
tCOinS_date.rftssn = season[input.month]; -- start of range season; keep this?
tCOinS_date.rftchron = season[input.month] .. '–' .. season[input.month2]; -- season–season year range
end
end
end
tCOinS_date.rftdate = date;
return; -- done
end
if 0 ~= input.day then
date = string.format ('%s-%.2d-%.2d', input.year, tonumber(input.month), tonumber(input.day)); -- whole date
elseif 0 ~= input.month then
date = string.format ('%s-%.2d', input.year, tonumber(input.month)); -- year and month
else
date = string.format ('%s', input.year); -- just year
end
if 0 ~= input.year2 then
if 0 ~= input.day2 then
date2 = string.format ('/%s-%.2d-%.2d', input.year2, tonumber(input.month2), tonumber(input.day2)); -- whole date
elseif 0 ~= input.month2 then
date2 = string.format ('/%s-%.2d', input.year2, tonumber(input.month2)); -- year and month
else
date2 = string.format ('/%s', input.year2); -- just year
end
end
tCOinS_date.rftdate = date .. date2; -- date2 has the '/' separator
return;
end
--[[--------------------------< P A T T E R N S >--------------------------------------------------------------
this is the list of patterns for date formats that this module recognizes. Approximately the first half of these
patterns represent formats that might be reformatted into another format. Those that might be reformatted have
'indicator' letters that identify the content of the matching capture: 'd' (day), 'm' (month), 'a' (anchor year),
'y' (year); second day, month, year have a '2' suffix.
These patterns are used for both date validation and for reformatting. This table should not be moved to ~/Configuration
because changes to this table require changes to check_date() and to reformatter() and reformat_date()
]]
local patterns = {
-- year-initial numerical year-month-day
['ymd'] = {'^(%d%d%d%d)%-(%d%d)%-(%d%d)$', 'y', 'm', 'd'},
-- month-initial: month day, year
['Mdy'] = {'^(%D-) +([1-9]%d?), +((%d%d%d%d?)%a?)$', 'm', 'd', 'a', 'y'},
-- month-initial day range: month day–day, year; days are separated by endash
['Md-dy'] = {'^(%D-) +([1-9]%d?)[%-–]([1-9]%d?), +((%d%d%d%d)%a?)$', 'm', 'd', 'd2', 'a', 'y'},
-- day-initial: day month year
['dMy'] = {'^([1-9]%d?) +(%D-) +((%d%d%d%d?)%a?)$', 'd', 'm', 'a', 'y'},
-- year-initial: year month day; day: 1 or 2 two digits, leading zero allowed; not supported at en.wiki
-- ['yMd'] = {'^((%d%d%d%d?)%a?) +(%D-) +(%d%d?)$', 'a', 'y', 'm', 'd'},
-- day-range-initial: day–day month year; days are separated by endash
['d-dMy'] = {'^([1-9]%d?)[%-–]([1-9]%d?) +(%D-) +((%d%d%d%d)%a?)$', 'd', 'd2', 'm', 'a', 'y'},
-- day initial month-day-range: day month - day month year; uses spaced endash
['dM-dMy'] = {'^([1-9]%d?) +(%D-) +[%-–] +([1-9]%d?) +(%D-) +((%d%d%d%d)%a?)$', 'd', 'm', 'd2', 'm2', 'a', 'y'},
-- month initial month-day-range: month day – month day, year; uses spaced endash
['Md-Mdy'] = {'^(%D-) +([1-9]%d?) +[%-–] +(%D-) +([1-9]%d?), +((%d%d%d%d)%a?)$','m', 'd', 'm2', 'd2', 'a', 'y'},
-- day initial month-day-year-range: day month year - day month year; uses spaced endash
['dMy-dMy'] = {'^([1-9]%d?) +(%D-) +(%d%d%d%d) +[%-–] +([1-9]%d?) +(%D-) +((%d%d%d%d)%a?)$', 'd', 'm', 'y', 'd2', 'm2', 'a', 'y2'},
-- month initial month-day-year-range: month day, year – month day, year; uses spaced endash
['Mdy-Mdy'] = {'^(%D-) +([1-9]%d?), +(%d%d%d%d) +[%-–] +(%D-) +([1-9]%d?), +((%d%d%d%d)%a?)$', 'm', 'd', 'y', 'm2', 'd2', 'a', 'y2'},
-- these date formats cannot be converted, per se, but month name can be rendered short or long
-- month/season year - month/season year; separated by spaced endash
['My-My'] = {'^(%D-) +(%d%d%d%d) +[%-–] +(%D-) +((%d%d%d%d)%a?)$', 'm', 'y', 'm2', 'a', 'y2'},
-- month/season range year; months separated by endash
['M-My'] = {'^(%D-)[%-–](%D-) +((%d%d%d%d)%a?)$', 'm', 'm2', 'a', 'y'},
-- month/season year or proper-name year; quarter year when First Quarter YYYY etc.
['My'] = {'^([^%d–]-) +((%d%d%d%d)%a?)$', 'm', 'a', 'y'}, -- this way because endash is a member of %D; %D- will match January–March 2019 when it shouldn't
-- these date formats cannot be converted
['Sy4-y2'] = {'^(%D-) +((%d%d)%d%d)[%-–]((%d%d)%a?)$'}, -- special case Winter/Summer year-year (YYYY-YY); year separated with unspaced endash
['Sy-y'] = {'^(%D-) +(%d%d%d%d)[%-–]((%d%d%d%d)%a?)$'}, -- special case Winter/Summer year-year; year separated with unspaced endash
['y-y'] = {'^(%d%d%d%d?)[%-–]((%d%d%d%d?)%a?)$'}, -- year range: YYY-YYY or YYY-YYYY or YYYY–YYYY; separated by unspaced endash; 100-9999
['y4-y2'] = {'^((%d%d)%d%d)[%-–]((%d%d)%a?)$'}, -- year range: YYYY–YY; separated by unspaced endash
['y'] = {'^((%d%d%d%d?)%a?)$'}, -- year; here accept either YYY or YYYY
}
--[[--------------------------< I S _ V A L I D _ E M B A R G O _ D A T E >------------------------------------
returns true and date value if that value has proper dmy, mdy, ymd format.
returns false and 9999 (embargoed forever) when date value is not proper format; assumes that when |pmc-embargo-date= is
set, the editor intended to embargo a PMC but |pmc-embargo-date= does not hold a single date.
]]
local function is_valid_embargo_date (v)
if v:match (patterns['ymd'][1]) or -- ymd
v:match (patterns['Mdy'][1]) or -- dmy
v:match (patterns['dMy'][1]) then -- mdy
return true, v;
end
return false, '9999'; -- if here not good date so return false and set embargo date to long time in future
end
--[[--------------------------< C H E C K _ D A T E >----------------------------------------------------------
Check date format to see that it is one of the formats approved by WP:DATESNO or WP:DATERANGE. Exception: only
allowed range separator is endash. Additionally, check the date to see that it is a real date: no 31 in 30-day
months; no 29 February when not a leap year. Months, both long-form and three character abbreviations, and seasons
must be spelled correctly. Future years beyond next year are not allowed.
If the date fails the format tests, this function returns false and does not return values for anchor_year and
COinS_date. When this happens, the date parameter is (DEBUG: not?) used in the COinS metadata and the CITEREF identifier gets
its year from the year parameter if present otherwise CITEREF does not get a date value.
Inputs:
date_string - date string from date-holding parameters (date, year, publication-date, access-date, pmc-embargo-date, archive-date, lay-date)
Returns:
false if date string is not a real date; else
true, anchor_year, COinS_date
anchor_year can be used in CITEREF anchors
COinS_date is ISO 8601 format date; see make_COInS_date()
]]
local function check_date (date_string, param, tCOinS_date)
local year; -- assume that year2, months, and days are not used;
local year2 = 0; -- second year in a year range
local month = 0;
local month2 = 0; -- second month in a month range
local day = 0;
local day2 = 0; -- second day in a day range
local anchor_year;
local coins_date;
if date_string:match (patterns['ymd'][1]) then -- year-initial numerical year month day format
year, month, day = date_string:match (patterns['ymd'][1]);
if 12 < tonumber(month) or 1 > tonumber(month) or 1582 > tonumber(year) or 0 == tonumber(day) then return false; end -- month or day number not valid or not Gregorian calendar
anchor_year = year;
elseif mw.ustring.match(date_string, patterns['Mdy'][1]) then -- month-initial: month day, year
month, day, anchor_year, year = mw.ustring.match(date_string, patterns['Mdy'][1]);
month = get_month_number (month);
if 0 == month then return false; end -- return false if month text isn't one of the twelve months
elseif mw.ustring.match(date_string, patterns['Md-dy'][1]) then -- month-initial day range: month day–day, year; days are separated by endash
month, day, day2, anchor_year, year = mw.ustring.match(date_string, patterns['Md-dy'][1]);
if tonumber(day) >= tonumber(day2) then return false; end -- date range order is left to right: earlier to later; dates may not be the same;
month = get_month_number (month);
if 0 == month then return false; end -- return false if month text isn't one of the twelve months
month2=month; -- for metadata
year2 = year;
elseif mw.ustring.match(date_string, patterns['dMy'][1]) then -- day-initial: day month year
day, month, anchor_year, year = mw.ustring.match(date_string, patterns['dMy'][1]);
month = get_month_number (month);
if 0 == month then return false; end -- return false if month text isn't one of the twelve months
--[[ NOT supported at en.wiki
elseif mw.ustring.match(date_string, patterns['yMd'][1]) then -- year-initial: year month day; day: 1 or 2 two digits, leading zero allowed
anchor_year, year, month, day = mw.ustring.match(date_string, patterns['yMd'][1]);
month = get_month_number (month);
if 0 == month then return false; end -- return false if month text isn't one of the twelve months
-- end NOT supported at en.wiki ]]
elseif mw.ustring.match(date_string, patterns['d-dMy'][1]) then -- day-range-initial: day–day month year; days are separated by endash
day, day2, month, anchor_year, year = mw.ustring.match(date_string, patterns['d-dMy'][1]);
if tonumber(day) >= tonumber(day2) then return false; end -- date range order is left to right: earlier to later; dates may not be the same;
month = get_month_number (month);
if 0 == month then return false; end -- return false if month text isn't one of the twelve months
month2 = month; -- for metadata
year2 = year;
elseif mw.ustring.match(date_string, patterns['dM-dMy'][1]) then -- day initial month-day-range: day month - day month year; uses spaced endash
day, month, day2, month2, anchor_year, year = mw.ustring.match(date_string, patterns['dM-dMy'][1]);
if (not is_valid_month_season_range(month, month2)) or not is_valid_year(year) then return false; end -- date range order is left to right: earlier to later;
month = get_month_number (month); -- for metadata
month2 = get_month_number (month2);
year2 = year;
elseif mw.ustring.match(date_string, patterns['Md-Mdy'][1]) then -- month initial month-day-range: month day – month day, year; uses spaced endash
month, day, month2, day2, anchor_year, year = mw.ustring.match(date_string, patterns['Md-Mdy'][1]);
if (not is_valid_month_season_range(month, month2, param)) or not is_valid_year(year) then return false; end
month = get_month_number (month); -- for metadata
month2 = get_month_number (month2);
year2 = year;
elseif mw.ustring.match(date_string, patterns['dMy-dMy'][1]) then -- day initial month-day-year-range: day month year - day month year; uses spaced endash
day, month, year, day2, month2, anchor_year, year2 = mw.ustring.match(date_string, patterns['dMy-dMy'][1]);
if tonumber(year2) <= tonumber(year) then return false; end -- must be sequential years, left to right, earlier to later
if not is_valid_year(year2) or not is_valid_month_range_style(month, month2) then return false; end -- year2 no more than one year in the future; months same style
month = get_month_number (month); -- for metadata
month2 = get_month_number (month2);
if 0 == month or 0 == month2 then return false; end -- both must be valid
elseif mw.ustring.match(date_string, patterns['Mdy-Mdy'][1]) then -- month initial month-day-year-range: month day, year – month day, year; uses spaced endash
month, day, year, month2, day2, anchor_year, year2 = mw.ustring.match(date_string, patterns['Mdy-Mdy'][1]);
if tonumber(year2) <= tonumber(year) then return false; end -- must be sequential years, left to right, earlier to later
if not is_valid_year(year2) or not is_valid_month_range_style(month, month2) then return false; end -- year2 no more than one year in the future; months same style
month = get_month_number (month); -- for metadata
month2 = get_month_number(month2);
if 0 == month or 0 == month2 then return false; end -- both must be valid
elseif mw.ustring.match(date_string, patterns['Sy4-y2'][1]) then -- special case Winter/Summer year-year (YYYY-YY); year separated with unspaced endash
local century;
month, year, century, anchor_year, year2 = mw.ustring.match(date_string, patterns['Sy4-y2'][1]);
if 'Winter' ~= month and 'Summer' ~= month then return false end; -- 'month' can only be Winter or Summer
anchor_year = year .. '–' .. anchor_year; -- assemble anchor_year from both years
year2 = century..year2; -- add the century to year2 for comparisons
if 1 ~= tonumber(year2) - tonumber(year) then return false; end -- must be sequential years, left to right, earlier to later
if not is_valid_year(year2) then return false; end -- no year farther in the future than next year
month = get_season_number(month, param);
elseif mw.ustring.match(date_string, patterns['Sy-y'][1]) then -- special case Winter/Summer year-year; year separated with unspaced endash
month, year, anchor_year, year2 = mw.ustring.match(date_string, patterns['Sy-y'][1]);
month = get_season_number (month, param); -- <month> can only be winter or summer; also for metadata
if (month ~= cfg.date_names['en'].season['Winter']) and (month ~= cfg.date_names['en'].season['Summer']) then
return false; -- not Summer or Winter; abandon
end
anchor_year = year .. '–' .. anchor_year; -- assemble anchor_year from both years
if 1 ~= tonumber(year2) - tonumber(year) then return false; end -- must be sequential years, left to right, earlier to later
if not is_valid_year(year2) then return false; end -- no year farther in the future than next year
elseif mw.ustring.match(date_string, patterns['My-My'][1]) then -- month/season year - month/season year; separated by spaced endash
month, year, month2, anchor_year, year2 = mw.ustring.match(date_string, patterns['My-My'][1]);
anchor_year = year .. '–' .. anchor_year; -- assemble anchor_year from both years
if tonumber(year) >= tonumber(year2) then return false; end -- left to right, earlier to later, not the same
if not is_valid_year(year2) then return false; end -- no year farther in the future than next year
if 0 ~= get_month_number(month) and 0 ~= get_month_number(month2) and is_valid_month_range_style(month, month2) then -- both must be month year, same month style
month = get_month_number(month);
month2 = get_month_number(month2);
elseif 0 ~= get_season_number(month, param) and 0 ~= get_season_number(month2, param) then -- both must be season year, not mixed
month = get_season_number(month, param);
month2 = get_season_number(month2, param);
else
return false;
end
elseif mw.ustring.match(date_string, patterns['M-My'][1]) then -- month/season range year; months separated by endash
month, month2, anchor_year, year = mw.ustring.match(date_string, patterns['M-My'][1]);
if (not is_valid_month_season_range(month, month2, param)) or (not is_valid_year(year)) then return false; end
if 0 ~= get_month_number(month) then -- determined to be a valid range so just check this one to know if month or season
month = get_month_number(month);
month2 = get_month_number(month2);
if 0 == month or 0 == month2 then return false; end
else
month = get_season_number(month, param);
month2 = get_season_number(month2, param);
end
year2 = year;
elseif mw.ustring.match(date_string, patterns['My'][1]) then -- month/season/quarter/proper-name year
month, anchor_year, year = mw.ustring.match(date_string, patterns['My'][1]);
if not is_valid_year(year) then return false; end
month = get_element_number(month, param); -- get month season quarter proper-name number or nil
if not month then return false; end -- not valid whatever it is
elseif mw.ustring.match(date_string, patterns['y-y'][1]) then -- Year range: YYY-YYY or YYY-YYYY or YYYY–YYYY; separated by unspaced endash; 100-9999
year, anchor_year, year2 = mw.ustring.match(date_string, patterns['y-y'][1]);
anchor_year = year .. '–' .. anchor_year; -- assemble anchor year from both years
if tonumber(year) >= tonumber(year2) then return false; end -- left to right, earlier to later, not the same
if not is_valid_year(year2) then return false; end -- no year farther in the future than next year
elseif mw.ustring.match(date_string, patterns['y4-y2'][1]) then -- Year range: YYYY–YY; separated by unspaced endash
local century;
year, century, anchor_year, year2 = mw.ustring.match(date_string, patterns['y4-y2'][1]);
anchor_year = year .. '–' .. anchor_year; -- assemble anchor year from both years
if in_array (param, {'date', 'publication-date', 'year'}) then
add_prop_cat ('year-range-abbreviated');
end
if 13 > tonumber(year2) then return false; end -- don't allow 2003-05 which might be May 2003
year2 = century .. year2; -- add the century to year2 for comparisons
if tonumber(year) >= tonumber(year2) then return false; end -- left to right, earlier to later, not the same
if not is_valid_year(year2) then return false; end -- no year farther in the future than next year
elseif mw.ustring.match(date_string, patterns['y'][1]) then -- year; here accept either YYY or YYYY
anchor_year, year = mw.ustring.match(date_string, patterns['y'][1]);
if false == is_valid_year(year) then
return false;
end
else
return false; -- date format not one of the MOS:DATE approved formats
end
if param ~= 'date' then -- CITEREF disambiguation only allowed in |date=; |year= & |publication-date= promote to date
if anchor_year:match ('%l$') then
return false;
end
end
if 'access-date' == param then -- test accessdate here because we have numerical date parts
if 0 ~= year and 0 ~= month and 0 ~= day and -- all parts of a single date required
0 == year2 and 0 == month2 and 0 == day2 then -- none of these; accessdate must not be a range
if not is_valid_accessdate(year .. '-' .. month .. '-' .. day) then
return false; -- return false when accessdate out of bounds
end
else
return false; -- return false when accessdate is a range of two dates
end
end
local result=true; -- check whole dates for validity; assume true because not all dates will go through this test
if 0 ~= year and 0 ~= month and 0 ~= day and 0 == year2 and 0 == month2 and 0 == day2 then -- YMD (simple whole date)
result = is_valid_date (year, month, day, param); -- <param> for |pmc-embargo-date=
elseif 0 ~= year and 0 ~= month and 0 ~= day and 0 == year2 and 0 == month2 and 0 ~= day2 then -- YMD-d (day range)
result = is_valid_date (year, month, day);
result = result and is_valid_date (year, month, day2);
elseif 0 ~= year and 0 ~= month and 0 ~= day and 0 == year2 and 0 ~= month2 and 0 ~= day2 then -- YMD-md (day month range)
result = is_valid_date (year, month, day);
result = result and is_valid_date (year, month2, day2);
elseif 0 ~= year and 0 ~= month and 0 ~= day and 0 ~= year2 and 0 ~= month2 and 0 ~= day2 then -- YMD-ymd (day month year range)
result = is_valid_date(year, month, day);
result = result and is_valid_date(year2, month2, day2);
end
if false == result then return false; end
if nil ~= tCOinS_date then -- this table only passed into this function when testing |date= parameter values
make_COinS_date ({year = year, month = month, day = day, year2 = year2, month2 = month2, day2 = day2}, tCOinS_date); -- make an ISO 8601 date string for COinS
end
return true, anchor_year; -- format is good and date string represents a real date
end
--[[--------------------------< D A T E S >--------------------------------------------------------------------
Cycle the date-holding parameters in passed table date_parameters_list through check_date() to check compliance with MOS:DATE. For all valid dates, check_date() returns
true. The |date= parameter test is unique, it is the only date holding parameter from which values for anchor_year (used in CITEREF identifiers) and COinS_date (used in
the COinS metadata) are derived. The |date= parameter is the only date-holding parameter that is allowed to contain the no-date keywords "n.d." or "nd" (without quotes).
Unlike most error messages created in this module, only one error message is created by this function. Because all of the date holding parameters are processed serially,
parameters with errors are added to the <error_list> sequence table as the dates are tested.
]]
local function dates(date_parameters_list, tCOinS_date, error_list)
local anchor_year; -- will return as nil if the date being tested is not |date=
local COinS_date; -- will return as nil if the date being tested is not |date=
local embargo_date; -- if embargo date is a good dmy, mdy, ymd date then holds original value else reset to 9999
local good_date = false;
for k, v in pairs(date_parameters_list) do -- for each date-holding parameter in the list
if is_set(v.val) then -- if the parameter has a value
v.val = mw.ustring.gsub(v.val, '%d', cfg.date_names.local_digits); -- translate 'local' digits to Western 0-9
if v.val:match("^c%. [1-9]%d%d%d?%a?$") then -- special case for c. year or with or without CITEREF disambiguator - only |date= and |year=
local year = v.val:match("c%. ([1-9]%d%d%d?)%a?"); -- get the year portion so it can be tested
if 'date' == k then
anchor_year, COinS_date = v.val:match("((c%. [1-9]%d%d%d?)%a?)"); -- anchor year and COinS_date only from |date= parameter
good_date = is_valid_year(year);
elseif 'year' == k then
good_date = is_valid_year(year);
end
elseif 'date' == k then -- if the parameter is |date=
if v.val:match("^n%.d%.%a?$") then -- ToDo: I18N -- if |date=n.d. with or without a CITEREF disambiguator
good_date, anchor_year, COinS_date = true, v.val:match("((n%.d%.)%a?)"); -- ToDo: I18N -- "n.d."; no error when date parameter is set to no date
elseif v.val:match("^nd%a?$") then -- ToDo: I18N -- if |date=nd with or without a CITEREF disambiguator
good_date, anchor_year, COinS_date = true, v.val:match("((nd)%a?)"); -- ToDo: I18N -- "nd"; no error when date parameter is set to no date
else
good_date, anchor_year, COinS_date = check_date (v.val, k, tCOinS_date); -- go test the date
end
elseif 'year' == k then -- if the parameter is |year= it should hold only a year value
if v.val:match("^[1-9]%d%d%d?%a?$") then -- if |year = 3 or 4 digits only with or without a CITEREF disambiguator
good_date, anchor_year, COinS_date = true, v.val:match("((%d+)%a?)");
end
elseif 'pmc-embargo-date' == k then -- if the parameter is |pmc-embargo-date=
good_date = check_date (v.val, k); -- go test the date
if true == good_date then -- if the date is a valid date
good_date, embargo_date = is_valid_embargo_date (v.val); -- is |pmc-embargo-date= date a single dmy, mdy, or ymd formatted date? yes: returns embargo date; no: returns 9999
end
else -- any other date-holding parameter
good_date = check_date (v.val, k); -- go test the date
end
if false == good_date then -- assemble one error message so we don't add the tracking category multiple times
table.insert (error_list, wrap_style ('parameter', v.name)); -- make parameter name suitable for error message list
end
end
end
return anchor_year, embargo_date; -- and done
end
--[[--------------------------< Y E A R _ D A T E _ C H E C K >------------------------------------------------
Compare the value provided in |year= with the year value(s) provided in |date=. This function sets a local numeric value:
0 - year value does not match the year value in date
1 - (default) year value matches the year value in date or one of the year values when date contains two years
2 - year value matches the year value in date when date is in the form YYYY-MM-DD and year is disambiguated (|year=YYYYx)
the numeric value in <result> determines the 'output' if any from this function:
0 – adds error message to error_list sequence table
1 – adds maint cat
2 – does nothing
]]
local function year_date_check (year_string, year_origin, date_string, date_origin, error_list)
local year;
local date1;
local date2;
local result = 1; -- result of the test; assume that the test passes
year = year_string:match ('(%d%d%d%d?)');
if date_string:match ('%d%d%d%d%-%d%d%-%d%d') and year_string:match ('%d%d%d%d%a') then --special case where both date and year are required YYYY-MM-DD and YYYYx
date1 = date_string:match ('(%d%d%d%d)');
year = year_string:match ('(%d%d%d%d)');
if year ~= date1 then
result = 0; -- years don't match
else
result = 2; -- years match; but because disambiguated, don't add to maint cat
end
elseif date_string:match ("%d%d%d%d?.-%d%d%d%d?") then -- any of the standard range formats of date with two three- or four-digit years
date1, date2 = date_string:match ("(%d%d%d%d?).-(%d%d%d%d?)");
if year ~= date1 and year ~= date2 then
result = 0;
end
elseif mw.ustring.match(date_string, "%d%d%d%d[%-–]%d%d") then -- YYYY-YY date ranges
local century;
date1, century, date2 = mw.ustring.match(date_string, "((%d%d)%d%d)[%-–]+(%d%d)");
date2 = century..date2; -- convert YY to YYYY
if year ~= date1 and year ~= date2 then
result = 0;
end
elseif date_string:match ("%d%d%d%d?") then -- any of the standard formats of date with one year
date1 = date_string:match ("(%d%d%d%d?)");
if year ~= date1 then
result = 0;
end
else -- should never get here; this function called only when no other date errors
result = 0; -- no recognizable year in date
end
if 0 == result then -- year / date mismatch
table.insert (error_list, substitute (cfg.messages['mismatch'], {year_origin, date_origin})); -- add error message to error_list sequence table
elseif 1 == result then -- redundant year / date
set_message ('maint_date_year'); -- add a maint cat
end
end
--[[--------------------------< R E F O R M A T T E R >--------------------------------------------------------
reformat 'date' into new format specified by format_param if pattern_idx (the current format of 'date') can be
reformatted. Does the grunt work for reformat_dates().
The table re_formats maps pattern_idx (current format) and format_param (desired format) to a table that holds:
format string used by string.format()
identifier letters ('d', 'm', 'y', 'd2', 'm2', 'y2') that serve as indexes into a table t{} that holds captures
from mw.ustring.match() for the various date parts specified by patterns[pattern_idx][1]
Items in patterns{} have the general form:
['ymd'] = {'^(%d%d%d%d)%-(%d%d)%-(%d%d)$', 'y', 'm', 'd'}, where:
['ymd'] is pattern_idx
patterns['ymd'][1] is the match pattern with captures for mw.ustring.match()
patterns['ymd'][2] is an indicator letter identifying the content of the first capture
patterns['ymd'][3] ... the second capture etc.
when a pattern matches a date, the captures are loaded into table t{} in capture order using the idemtifier
characters as indexes into t{} For the above, a ymd date is in t{} as:
t.y = first capture (year), t.m = second capture (month), t.d = third capture (day)
To reformat, this function is called with the pattern_idx that matches the current format of the date and with
format_param set to the desired format. This function loads table t{} as described and then calls string.format()
with the format string specified by re_format[pattern_idx][format_param][1] using values taken from t{} according
to the capture identifier letters specified by patterns[pattern_idx][format_param][n] where n is 2..
]]
local re_formats = {
['ymd'] = { -- date format is ymd; reformat to:
['mdy'] = {'%s %s, %s', 'm', 'd', 'y'}, -- |df=mdy
['dmy'] = {'%s %s %s', 'd', 'm', 'y'}, -- |df=dmy
-- ['yMd'] = {'%s %s %s', 'y', 'm', 'd'}, -- |df=yMd; not supported at en.wiki
},
['Mdy'] = { -- date format is Mdy; reformat to:
['mdy'] = {'%s %s, %s', 'm', 'd', 'y'}, -- for long/short reformatting
['dmy'] = {'%s %s %s', 'd', 'm', 'y'}, -- |df=dmy
['ymd'] = {'%s-%s-%s', 'y', 'm', 'd'}, -- |df=ymd
-- ['yMd'] = {'%s %s %s', 'y', 'm', 'd'}, -- |df=yMd; not supported at en.wiki
},
['dMy'] = { -- date format is dMy; reformat to:
['dmy'] = {'%s %s %s', 'd', 'm', 'y'}, -- for long/short reformatting
['mdy'] = {'%s %s, %s', 'm', 'd', 'y'}, -- |df=mdy
['ymd'] = {'%s-%s-%s', 'y', 'm', 'd'}, -- |df=ymd
-- ['yMd'] = {'%s %s %s', 'y', 'm', 'd'}, -- |df=yMd; not supported at en.wiki
},
['Md-dy'] = { -- date format is Md-dy; reformat to:
['mdy'] = {'%s %s–%s, %s', 'm', 'd', 'd2', 'y'}, -- for long/short reformatting
['dmy'] = {'%s–%s %s %s', 'd', 'd2', 'm', 'y'}, -- |df=dmy -> d-dMy
},
['d-dMy'] = { -- date format is d-d>y; reformat to:
['dmy'] = {'%s–%s %s %s', 'd', 'd2', 'm', 'y'}, -- for long/short reformatting
['mdy'] = {'%s %s–%s, %s', 'm', 'd', 'd2', 'y'}, -- |df=mdy -> Md-dy
},
['dM-dMy'] = { -- date format is dM-dMy; reformat to:
['dmy'] = {'%s %s – %s %s %s', 'd', 'm', 'd2', 'm2', 'y'}, -- for long/short reformatting
['mdy'] = {'%s %s – %s %s, %s', 'm', 'd', 'm2', 'd2', 'y'}, -- |df=mdy -> Md-Mdy
},
['Md-Mdy'] = { -- date format is Md-Mdy; reformat to:
['mdy'] = {'%s %s – %s %s, %s', 'm', 'd', 'm2', 'd2', 'y'}, -- for long/short reformatting
['dmy'] = {'%s %s – %s %s %s', 'd', 'm', 'd2', 'm2', 'y'}, -- |df=dmy -> dM-dMy
},
['dMy-dMy'] = { -- date format is dMy-dMy; reformat to:
['dmy'] = {'%s %s %s – %s %s %s', 'd', 'm', 'y', 'd2', 'm2', 'y2'}, -- for long/short reformatting
['mdy'] = {'%s %s, %s – %s %s, %s', 'm', 'd', 'y', 'm2', 'd2', 'y2'}, -- |df=mdy -> Mdy-Mdy
},
['Mdy-Mdy'] = { -- date format is Mdy-Mdy; reformat to:
['mdy'] = {'%s %s, %s – %s %s, %s', 'm', 'd', 'y', 'm2', 'd2', 'y2'}, -- for long/short reformatting
['dmy'] = {'%s %s %s – %s %s %s', 'd', 'm', 'y', 'd2', 'm2', 'y2'}, -- |df=dmy -> dMy-dMy
},
['My-My'] = { -- these for long/short reformatting
['any'] = {'%s %s – %s %s', 'm', 'y', 'm2', 'y2'}, -- dmy/mdy agnostic
},
['M-My'] = { -- these for long/short reformatting
['any'] = {'%s–%s %s', 'm', 'm2', 'y'}, -- dmy/mdy agnostic
},
['My'] = { -- these for long/short reformatting
['any'] = {'%s %s', 'm', 'y'}, -- dmy/mdy agnostic
},
-- ['yMd'] = { -- not supported at en.wiki
-- ['mdy'] = {'%s %s, %s', 'm', 'd', 'y'}, -- |df=mdy
-- ['dmy'] = {'%s %s %s', 'd', 'm', 'y'}, -- |df=dmy
-- ['ymd'] = {'%s-%s-%s', 'y', 'm', 'd'}, -- |df=ymd
-- },
}
local function reformatter (date, pattern_idx, format_param, mon_len)
if not in_array (pattern_idx, {'ymd', 'Mdy', 'Md-dy', 'dMy', 'yMd', 'd-dMy', 'dM-dMy', 'Md-Mdy', 'dMy-dMy', 'Mdy-Mdy', 'My-My', 'M-My', 'My'}) then
return; -- not in this set of date format patterns then not a reformattable date
end
if 'ymd' == format_param and in_array (pattern_idx, {'ymd', 'Md-dy', 'd-dMy', 'dM-dMy', 'Md-Mdy', 'dMy-dMy', 'Mdy-Mdy', 'My-My', 'M-My', 'My'}) then
return; -- ymd date ranges not supported at en.wiki; no point in reformatting ymd to ymd
end
if in_array (pattern_idx, {'My', 'M-My', 'My-My'}) then -- these are not dmy/mdy so can't be 'reformatted' into either
format_param = 'any'; -- so format-agnostic
end
-- yMd is not supported at en.wiki; when yMd is supported at your wiki, uncomment the next line
-- if 'yMd' == format_param and in_array (pattern_idx, {'yMd', 'Md-dy', 'd-dMy', 'dM-dMy', 'Md-Mdy', 'dMy-dMy', 'Mdy-Mdy'}) then -- these formats not convertable; yMd not supported at en.wiki
if 'yMd' == format_param then -- yMd not supported at en.wiki; when yMd is supported at your wiki, remove or comment-out this line
return; -- not a reformattable date
end
local c1, c2, c3, c4, c5, c6, c7; -- these hold the captures specified in patterns[pattern_idx][1]
c1, c2, c3, c4, c5, c6, c7 = mw.ustring.match (date, patterns[pattern_idx][1]); -- get the captures
local t = { -- table that holds k/v pairs of date parts from the captures and patterns[pattern_idx][2..]
[patterns[pattern_idx][2]] = c1; -- at minimum there is always one capture with a matching indicator letter
[patterns[pattern_idx][3] or 'x'] = c2; -- patterns can have a variable number of captures; each capture requires an indicator letter;
[patterns[pattern_idx][4] or 'x'] = c3; -- where there is no capture, there is no indicator letter so n in patterns[pattern_idx][n] will be nil;
[patterns[pattern_idx][5] or 'x'] = c4; -- the 'x' here spoofs an indicator letter to prevent 'table index is nil' error
[patterns[pattern_idx][6] or 'x'] = c5;
[patterns[pattern_idx][7] or 'x'] = c6;
[patterns[pattern_idx][8] or 'x'] = c7;
};
if t.a then -- if this date has an anchor year capture (all convertable date formats except ymd)
if t.y2 then -- for year range date formats
t.y2 = t.a; -- use the anchor year capture when reassembling the date
else -- here for single date formats (except ymd)
t.y = t.a; -- use the anchor year capture when reassembling the date
end
end
if tonumber(t.m) then -- if raw month is a number (converting from ymd)
if 's' == mon_len then -- if we are to use abbreviated month names
t.m = cfg.date_names['inv_local_short'][tonumber(t.m)]; -- convert it to a month name
else
t.m = cfg.date_names['inv_local_long'][tonumber(t.m)]; -- convert it to a month name
end
t.d = t.d:gsub ('0(%d)', '%1'); -- strip leading '0' from day if present
elseif 'ymd' == format_param then -- when converting to ymd
t.y = t.y:gsub ('%a', ''); -- strip CITREF disambiguator if present; anchor year already known so process can proceed; TODO: maint message?
if 1582 > tonumber (t.y) then -- ymd format dates not allowed before 1582
return;
end
t.m = string.format ('%02d', get_month_number (t.m)); -- make sure that month and day are two digits
t.d = string.format ('%02d', t.d);
elseif mon_len then -- if mon_len is set to either 'short' or 'long'
for _, mon in ipairs ({'m', 'm2'}) do -- because there can be two month names, check both
if t[mon] then
t[mon] = get_month_number (t[mon]); -- get the month number for this month (is length agnostic)
if 0 == t[mon] then return; end -- seasons and named dates can't be converted
t[mon] = (('s' == mon_len) and cfg.date_names['inv_local_short'][t[mon]]) or cfg.date_names['inv_local_long'][t[mon]]; -- fetch month name according to length
end
end
end
local new_date = string.format (re_formats[pattern_idx][format_param][1], -- format string
t[re_formats[pattern_idx][format_param][2]], -- named captures from t{}
t[re_formats[pattern_idx][format_param][3]],
t[re_formats[pattern_idx][format_param][4]],
t[re_formats[pattern_idx][format_param][5]],
t[re_formats[pattern_idx][format_param][6]],
t[re_formats[pattern_idx][format_param][7]],
t[re_formats[pattern_idx][format_param][8]]
);
return new_date;
end
--[[-------------------------< R E F O R M A T _ D A T E S >--------------------------------------------------
Reformats existing dates into the format specified by format.
format is one of several manual keywords: dmy, dmy-all, mdy, mdy-all, ymd, ymd-all. The -all version includes
access- and archive-dates; otherwise these dates are not reformatted.
This function allows automatic date formatting. In ~/Configuration, the article source is searched for one of
the {{use xxx dates}} templates. If found, xxx becomes the global date format as xxx-all. If |cs1-dates= in
{{use xxx dates}} has legitimate value then that value determines how cs1|2 dates will be rendered. Legitimate
values for |cs1-dates= are:
l - all dates are rendered with long month names
ls - publication dates use long month names; access-/archive-dates use abbreviated month names
ly - publication dates use long month names; access-/archive-dates rendered in ymd format
s - all dates are rendered with abbreviated (short) month names
sy - publication dates use abbreviated month names; access-/archive-dates rendered in ymd format
y - all dates are rendered in ymd format
the format argument for automatic date formatting will be the format specified by {{use xxx dates}} with the
value supplied by |cs1-dates so one of: xxx-l, xxx-ls, xxx-ly, xxx-s, xxx-sy, xxx-y, or simply xxx (|cs1-dates=
empty, omitted, or invalid) where xxx shall be either of dmy or mdy.
dates are extracted from date_parameters_list, reformatted (if appropriate), and then written back into the
list in the new format. Dates in date_parameters_list are presumed here to be valid (no errors). This function
returns true when a date has been reformatted, false else. Actual reformatting is done by reformatter().
]]
local function reformat_dates (date_parameters_list, format)
local all = false; -- set to false to skip access- and archive-dates
local len_p = 'l'; -- default publication date length shall be long
local len_a = 'l'; -- default access-/archive-date length shall be long
local result = false;
local new_date;
if format:match('%a+%-all') then -- manual df keyword; auto df keyword when length not specified in {{use xxx dates}};
format = format:match('(%a+)%-all'); -- extract the format
all = true; -- all dates are long format dates because this keyword doesn't specify length
elseif format:match('%a+%-[lsy][sy]?') then -- auto df keywords; internal only
all = true; -- auto df applies to all dates; use length specified by capture len_p for all dates
format, len_p, len_a = format:match('(%a+)%-([lsy])([sy]?)'); -- extract the format and length keywords
if 'y' == len_p then -- because allowed by MOS:DATEUNIFY (sort of) range dates and My dates not reformatted
format = 'ymd'; -- override {{use xxx dates}}
elseif (not is_set(len_a)) or (len_p == len_a) then -- no access-/archive-date length specified or same length as publication dates then
len_a = len_p; -- in case len_a not set
end
end -- else only publication dates and they are long
for param_name, param_val in pairs (date_parameters_list) do -- for each date-holding parameter in the list
if is_set (param_val.val) then -- if the parameter has a value
if not (not all and in_array (param_name, {'access-date', 'archive-date'})) then -- skip access- or archive-date unless format is xxx-all; yeah, ugly; TODO: find a better way
for pattern_idx, pattern in pairs (patterns) do
if mw.ustring.match (param_val.val, pattern[1]) then
if all and in_array (param_name, {'access-date', 'archive-date'}) then -- if this date is an access- or archive-date
new_date = reformatter (param_val.val, pattern_idx, (('y' == len_a) and 'ymd') or format, len_a); -- choose ymd or dmy/mdy according to len_a setting
else -- all other dates
new_date = reformatter (param_val.val, pattern_idx, format, len_p);
end
if new_date then -- set when date was reformatted
date_parameters_list[param_name].val = new_date; -- update date in date list
result = true; -- and announce that changes have been made
end
end -- if
end -- for
end -- if
end -- if
end -- for
return result; -- declare boolean result and done
end
--[[--------------------------< D A T E _ H Y P H E N _ T O _ D A S H >----------------------------------------
Loops through the list of date-holding parameters and converts any hyphen to an ndash. Not called if the cs1|2
template has any date errors.
Modifies the date_parameters_list and returns true if hyphens are replaced, else returns false.
]]
local function date_hyphen_to_dash (date_parameters_list)
local result = false;
local n;
for param_name, param_val in pairs(date_parameters_list) do -- for each date-holding parameter in the list
if is_set (param_val.val) and
not mw.ustring.match (param_val.val, patterns.ymd[1]) then -- for those that are not ymd dates (ustring because here digits may not be Western)
param_val.val, n = param_val.val:gsub ('%-', '–'); -- replace any hyphen with ndash
if 0 ~= n then
date_parameters_list[param_name].val = param_val.val; -- update the list
result = true;
end
end
end
return result; -- so we know if any hyphens were replaced
end
--[[-------------------------< D A T E _ N A M E _ X L A T E >------------------------------------------------
Attempts to translate English date names to local-language date names using names supplied by MediaWiki's
date parser function. This is simple name-for-name replacement and may not work for all languages.
if xlat_dig is true, this function will also translate Western (English) digits to the local language's digits.
This will also translate ymd dates.
]]
local function date_name_xlate (date_parameters_list, xlt_dig)
local xlate;
local mode; -- long or short month names
local modified = false;
local date;
local sources_t = {
{cfg.date_names.en.long, cfg.date_names.inv_local_long}, -- for translating long English month names to long local month names
{cfg.date_names.en.short, cfg.date_names.inv_local_short}, -- short month names
{cfg.date_names.en.quarter, cfg.date_names.inv_local_quarter}, -- quarter date names
{cfg.date_names.en.season, cfg.date_names.inv_local_season}, -- season date nam
{cfg.date_names.en.named, cfg.date_names.inv_local_named}, -- named dates
}
local function is_xlateable (month) -- local function to get local date name that replaces existing English-language date name
for _, date_names_t in ipairs (sources_t) do -- for each sequence table in date_names_t
if date_names_t[1][month] then -- if date name is English month (long or short), quarter, season or named and
if date_names_t[2][date_names_t[1][month]] then -- if there is a matching local date name
return date_names_t[2][date_names_t[1][month]]; -- return the local date name
end
end
end
end
for param_name, param_val in pairs(date_parameters_list) do -- for each date-holding parameter in the list
if is_set(param_val.val) then -- if the parameter has a value
date = param_val.val;
for month in mw.ustring.gmatch (date, '[%a ]+') do -- iterate through all date names in the date (single date or date range)
month = mw.text.trim (month); -- this because quarterly dates contain whitespace
xlate = is_xlateable (month); -- get translate <month>; returns translation or nil
-- if cfg.date_names.en.long[month] then -- long month dates
-- if cfg.date_names.inv_local_long[cfg.date_names.en.long[month]] then
-- xlate = cfg.date_names.inv_local_long[cfg.date_names.en.long[month]];
-- end
---- mode = 'F'; -- English name is long so use long local name
-- elseif cfg.date_names.en.short[month] then -- short month dates
-- if cfg.date_names.inv_local_short[cfg.date_names.en.short[month]] then
-- xlate = cfg.date_names.inv_local_short[cfg.date_names.en.short[month]];
-- end
---- mode = 'M'; -- English name is short so use short local name
-- elseif cfg.date_names.en.quarter[month] then -- quarter dates
-- if cfg.date_names.inv_local_quarter[cfg.date_names.en.quarter[month]] then
-- xlate = cfg.date_names.inv_local_quarter[cfg.date_names.en.quarter[month]];
-- end
-- elseif cfg.date_names.en.season[month] then -- season dates
-- if cfg.date_names.inv_local_season[cfg.date_names.en.season[month]] then
-- xlate = cfg.date_names.inv_local_season[cfg.date_names.en.season[month]];
-- end
-- elseif cfg.date_names.en.named[month] then -- named dates
-- if cfg.date_names.inv_local_named[cfg.date_names.en.named[month]] then
-- xlate = cfg.date_names.inv_local_named[cfg.date_names.en.named[month]];
-- end
-- else
-- xlate=nil; -- not an English month name; could be local language month name
---- mode = nil; -- not an English month name; could be local language month name or an English season name
-- end
if xlate then
-- if mode then -- might be a season
-- xlate = lang_object:formatDate(mode, '1' .. month); -- translate the month name to this local language
date = mw.ustring.gsub (date, month, xlate); -- replace the English with the translation
date_parameters_list[param_name].val = date; -- save the translated date
modified = true;
end
end
if xlt_dig then -- shall we also translate digits?
date = date:gsub ('%d', cfg.date_names.xlate_digits); -- translate digits from Western to 'local digits'
date_parameters_list[param_name].val = date; -- save the translated date
modified = true;
end
end
end
return modified;
end
--[[--------------------------< S E T _ S E L E C T E D _ M O D U L E S >--------------------------------------
Sets local imported functions table to same (live or sandbox) as that used by the other modules.
]]
local function set_selected_modules (cfg_table_ptr, utilities_page_ptr)
add_prop_cat = utilities_page_ptr.add_prop_cat ; -- import functions from selected Module:Citation/CS1/Utilities module
is_set = utilities_page_ptr.is_set;
in_array = utilities_page_ptr.in_array;
set_message = utilities_page_ptr.set_message;
substitute = utilities_page_ptr.substitute;
wrap_style = utilities_page_ptr.wrap_style;
cfg = cfg_table_ptr; -- import tables from selected Module:Citation/CS1/Configuration
end
--[[--------------------------< E X P O R T E D F U N C T I O N S >------------------------------------------
]]
return { -- return exported functions
dates = dates,
year_date_check = year_date_check,
reformat_dates = reformat_dates,
date_hyphen_to_dash = date_hyphen_to_dash,
date_name_xlate = date_name_xlate,
set_selected_modules = set_selected_modules
}
fnhwom3b2hnpz7ii2s5dz4wnqk11on9
Module:Citation/CS1/Date validation/sandbox/doc
828
1634
15099
2022-07-17T13:34:08Z
Kambai Akau
15
Created page with "{{#lst:Module:Citation/CS1/doc|header}} This module contains routines that support the {{cs1}} and {{cs2}} date formats for citations on Wikipedia. In particular, this module contains a suite of functions that validate date formats and content for the variety of date-holding parameters associated with cs1|2 citations. {{#lst:Module:Citation/CS1/doc|module_components_table}}"
wikitext
text/x-wiki
{{#lst:Module:Citation/CS1/doc|header}}
This module contains routines that support the {{cs1}} and {{cs2}} date formats for citations on Wikipedia. In particular, this module contains a suite of functions that validate date formats and content for the variety of date-holding parameters associated with cs1|2 citations.
{{#lst:Module:Citation/CS1/doc|module_components_table}}
spwbvgm7yho44xxe1425wsohnkrwzsq
Module:Citation/CS1/Identifiers/sandbox
828
1635
15100
2022-07-17T13:35:18Z
Kambai Akau
15
Created page with "--[[ History of changes since last sync: 2022-01-22 ]] --[[--------------------------< F O R W A R D D E C L A R A T I O N S >-------------------------------------- ]] local has_accept_as_written, is_set, in_array, set_message, select_one, -- functions in Module:Citation/CS1/Utilities substitute, make_wikilink; local z; -- table of tables defined in Module:Citation/CS1/Utilities local cfg; -- table of configuration tables tha..."
Scribunto
text/plain
--[[
History of changes since last sync: 2022-01-22
]]
--[[--------------------------< F O R W A R D D E C L A R A T I O N S >--------------------------------------
]]
local has_accept_as_written, is_set, in_array, set_message, select_one, -- functions in Module:Citation/CS1/Utilities
substitute, make_wikilink;
local z; -- table of tables defined in Module:Citation/CS1/Utilities
local cfg; -- table of configuration tables that are defined in Module:Citation/CS1/Configuration
--[[--------------------------< P A G E S C O P E V A R I A B L E S >--------------------------------------
declare variables here that have page-wide scope that are not brought in from other modules; that are created here and used here
]]
local auto_link_urls = {}; -- holds identifier URLs for those identifiers that can auto-link |title=
--============================<< H E L P E R F U N C T I O N S >>============================================
--[[--------------------------< W I K I D A T A _ A R T I C L E _ N A M E _ G E T >----------------------------
as an aid to internationalizing identifier-label wikilinks, gets identifier article names from Wikidata.
returns :<lang code>:<article title> when <q> has an <article title> for <lang code>; nil else
for identifiers that do not have q, returns nil
for wikis that do not have mw.wikibase installed, returns nil
]]
local function wikidata_article_name_get (q)
if not is_set (q) or (q and not mw.wikibase) then -- when no q number or when a q number but mw.wikibase not installed on this wiki
return nil; -- abandon
end
local wd_article;
local this_wiki_code = cfg.this_wiki_code; -- Wikipedia subdomain; 'en' for en.wikipedia.org
wd_article = mw.wikibase.getSitelink (q, this_wiki_code .. 'wiki'); -- fetch article title from WD; nil when no title available at this wiki
if wd_article then
wd_article = table.concat ({':', this_wiki_code, ':', wd_article}); -- interwiki-style link without brackets if taken from WD; leading colon required
end
return wd_article; -- article title from WD; nil else
end
--[[--------------------------< L I N K _ L A B E L _ M A K E >------------------------------------------------
common function to create identifier link label from handler table or from Wikidata
returns the first available of
1. redirect from local wiki's handler table (if enabled)
2. Wikidata (if there is a Wikidata entry for this identifier in the local wiki's language)
3. label specified in the local wiki's handler table
]]
local function link_label_make (handler)
local wd_article;
if not (cfg.use_identifier_redirects and is_set (handler.redirect)) then -- redirect has priority so if enabled and available don't fetch from Wikidata because expensive
wd_article = wikidata_article_name_get (handler.q); -- if Wikidata has an article title for this wiki, get it;
end
return (cfg.use_identifier_redirects and is_set (handler.redirect) and handler.redirect) or wd_article or handler.link;
end
--[[--------------------------< E X T E R N A L _ L I N K _ I D >----------------------------------------------
Formats a wiki-style external link
]]
local function external_link_id (options)
local url_string = options.id;
local ext_link;
local this_wiki_code = cfg.this_wiki_code; -- Wikipedia subdomain; 'en' for en.wikipedia.org
local wd_article; -- article title from Wikidata
if options.encode == true or options.encode == nil then
url_string = mw.uri.encode (url_string, 'PATH');
end
if options.auto_link and is_set (options.access) then
auto_link_urls[options.auto_link] = table.concat ({options.prefix, url_string, options.suffix});
end
ext_link = mw.ustring.format ('[%s%s%s %s]', options.prefix, url_string, options.suffix or "", mw.text.nowiki (options.id));
if is_set (options.access) then
ext_link = substitute (cfg.presentation['ext-link-access-signal'], {cfg.presentation[options.access].class, cfg.presentation[options.access].title, ext_link}); -- add the free-to-read / paywall lock
end
return table.concat ({
make_wikilink (link_label_make (options), options.label), -- redirect, Wikidata link, or locally specified link (in that order)
options.separator or ' ',
ext_link
});
end
--[[--------------------------< I N T E R N A L _ L I N K _ I D >----------------------------------------------
Formats a wiki-style internal link
TODO: Does not currently need to support options.access, options.encode, auto-linking and COinS (as in external_link_id),
but may be needed in the future for :m:Interwiki_map custom-prefixes like :arxiv:, :bibcode:, :DOI:, :hdl:, :ISSN:,
:JSTOR:, :Openlibrary:, :PMID:, :RFC:.
]]
local function internal_link_id (options)
local id = mw.ustring.gsub (options.id, '%d', cfg.date_names.local_digits); -- translate 'local' digits to Western 0-9
return table.concat (
{
make_wikilink (link_label_make (options), options.label), -- wiki-link the identifier label
options.separator or ' ', -- add the separator
make_wikilink (
table.concat (
{
options.prefix,
id, -- translated to Western digits
options.suffix or ''
}),
substitute (cfg.presentation['bdi'], {'', mw.text.nowiki (options.id)}) -- bdi tags to prevent Latin script identifiers from being reversed at RTL language wikis
); -- nowiki because MediaWiki still has magic links for ISBN and the like; TODO: is it really required?
});
end
--[[--------------------------< I S _ E M B A R G O E D >------------------------------------------------------
Determines if a PMC identifier's online version is embargoed. Compares the date in |pmc-embargo-date= against
today's date. If embargo date is in the future, returns the content of |pmc-embargo-date=; otherwise, returns
an empty string because the embargo has expired or because |pmc-embargo-date= was not set in this cite.
]]
local function is_embargoed (embargo)
if is_set (embargo) then
local lang = mw.getContentLanguage();
local good1, embargo_date, todays_date;
good1, embargo_date = pcall (lang.formatDate, lang, 'U', embargo);
todays_date = lang:formatDate ('U');
if good1 then -- if embargo date is a good date
if tonumber (embargo_date) >= tonumber (todays_date) then -- is embargo date is in the future?
return embargo; -- still embargoed
else
set_message ('maint_pmc_embargo'); -- embargo has expired; add main cat
return ''; -- unset because embargo has expired
end
end
end
return ''; -- |pmc-embargo-date= not set return empty string
end
--[=[-------------------------< I S _ V A L I D _ B I O R X I V _ D A T E >------------------------------------
returns true if:
2019-12-11T00:00Z <= biorxiv_date < today + 2 days
The dated form of biorxiv identifier has a start date of 2019-12-11. The Unix timestamp for that date is {{#time:U|2019-12-11}} = 1576022400
biorxiv_date is the date provided in those |biorxiv= parameter values that are dated at time 00:00:00 UTC
today is the current date at time 00:00:00 UTC plus 48 hours
if today is 2015-01-01T00:00:00 then
adding 24 hours gives 2015-01-02T00:00:00 – one second more than today
adding 24 hours gives 2015-01-03T00:00:00 – one second more than tomorrow
This function does not work if it is fed month names for languages other than English. Wikimedia #time: parser
apparently doesn't understand non-English date month names. This function will always return false when the date
contains a non-English month name because good1 is false after the call to lang_object.formatDate(). To get
around that call this function with date parts and create a YYYY-MM-DD format date.
]=]
local function is_valid_biorxiv_date (y, m, d)
local biorxiv_date = table.concat ({y, m, d}, '-'); -- make ymd date
local good1, good2;
local biorxiv_ts, tomorrow_ts; -- to hold Unix timestamps representing the dates
local lang_object = mw.getContentLanguage();
good1, biorxiv_ts = pcall (lang_object.formatDate, lang_object, 'U', biorxiv_date); -- convert biorxiv_date value to Unix timestamp
good2, tomorrow_ts = pcall (lang_object.formatDate, lang_object, 'U', 'today + 2 days' ); -- today midnight + 2 days is one second more than all day tomorrow
if good1 and good2 then -- lang.formatDate() returns a timestamp in the local script which tonumber() may not understand
biorxiv_ts = tonumber (biorxiv_ts) or lang_object:parseFormattedNumber (biorxiv_ts); -- convert to numbers for the comparison;
tomorrow_ts = tonumber (tomorrow_ts) or lang_object:parseFormattedNumber (tomorrow_ts);
else
return false; -- one or both failed to convert to Unix timestamp
end
return ((1576022400 <= biorxiv_ts) and (biorxiv_ts < tomorrow_ts)) -- 2012-12-11T00:00Z <= biorxiv_date < tomorrow's date
end
--[[--------------------------< IS _ V A L I D _ I S X N >-----------------------------------------------------
ISBN-10 and ISSN validator code calculates checksum across all ISBN/ISSN digits including the check digit.
ISBN-13 is checked in isbn().
If the number is valid the result will be 0. Before calling this function, ISBN/ISSN must be checked for length
and stripped of dashes, spaces and other non-ISxN characters.
]]
local function is_valid_isxn (isxn_str, len)
local temp = 0;
isxn_str = { isxn_str:byte(1, len) }; -- make a table of byte values '0' → 0x30 .. '9' → 0x39, 'X' → 0x58
len = len + 1; -- adjust to be a loop counter
for i, v in ipairs (isxn_str) do -- loop through all of the bytes and calculate the checksum
if v == string.byte ("X" ) then -- if checkdigit is X (compares the byte value of 'X' which is 0x58)
temp = temp + 10 * (len - i); -- it represents 10 decimal
else
temp = temp + tonumber (string.char (v) )*(len-i);
end
end
return temp % 11 == 0; -- returns true if calculation result is zero
end
--[[--------------------------< IS _ V A L I D _ I S X N _ 1 3 >-----------------------------------------------
ISBN-13 and ISMN validator code calculates checksum across all 13 ISBN/ISMN digits including the check digit.
If the number is valid, the result will be 0. Before calling this function, ISBN-13/ISMN must be checked for length
and stripped of dashes, spaces and other non-ISxN-13 characters.
]]
local function is_valid_isxn_13 (isxn_str)
local temp=0;
isxn_str = { isxn_str:byte(1, 13) }; -- make a table of byte values '0' → 0x30 .. '9' → 0x39
for i, v in ipairs (isxn_str) do
temp = temp + (3 - 2*(i % 2)) * tonumber (string.char (v) ); -- multiply odd index digits by 1, even index digits by 3 and sum; includes check digit
end
return temp % 10 == 0; -- sum modulo 10 is zero when ISBN-13/ISMN is correct
end
--[[--------------------------< N O R M A L I Z E _ L C C N >--------------------------------------------------
LCCN normalization (https://www.loc.gov/marc/lccn-namespace.html#normalization)
1. Remove all blanks.
2. If there is a forward slash (/) in the string, remove it, and remove all characters to the right of the forward slash.
3. If there is a hyphen in the string:
a. Remove it.
b. Inspect the substring following (to the right of) the (removed) hyphen. Then (and assuming that steps 1 and 2 have been carried out):
1. All these characters should be digits, and there should be six or less. (not done in this function)
2. If the length of the substring is less than 6, left-fill the substring with zeroes until the length is six.
Returns a normalized LCCN for lccn() to validate. There is no error checking (step 3.b.1) performed in this function.
]]
local function normalize_lccn (lccn)
lccn = lccn:gsub ("%s", ""); -- 1. strip whitespace
if nil ~= string.find (lccn, '/') then
lccn = lccn:match ("(.-)/"); -- 2. remove forward slash and all character to the right of it
end
local prefix
local suffix
prefix, suffix = lccn:match ("(.+)%-(.+)"); -- 3.a remove hyphen by splitting the string into prefix and suffix
if nil ~= suffix then -- if there was a hyphen
suffix = string.rep("0", 6-string.len (suffix)) .. suffix; -- 3.b.2 left fill the suffix with 0s if suffix length less than 6
lccn = prefix..suffix; -- reassemble the LCCN
end
return lccn;
end
--============================<< I D E N T I F I E R F U N C T I O N S >>====================================
--[[--------------------------< A R X I V >--------------------------------------------------------------------
See: https://arxiv.org/help/arxiv_identifier
format and error check arXiv identifier. There are three valid forms of the identifier:
the first form, valid only between date codes 9107 and 0703, is:
arXiv:<archive>.<class>/<date code><number><version>
where:
<archive> is a string of alpha characters - may be hyphenated; no other punctuation
<class> is a string of alpha characters - may be hyphenated; no other punctuation; not the same as |class= parameter which is not supported in this form
<date code> is four digits in the form YYMM where YY is the last two digits of the four-digit year and MM is the month number January = 01
first digit of YY for this form can only 9 and 0
<number> is a three-digit number
<version> is a 1 or more digit number preceded with a lowercase v; no spaces (undocumented)
the second form, valid from April 2007 through December 2014 is:
arXiv:<date code>.<number><version>
where:
<date code> is four digits in the form YYMM where YY is the last two digits of the four-digit year and MM is the month number January = 01
<number> is a four-digit number
<version> is a 1 or more digit number preceded with a lowercase v; no spaces
the third form, valid from January 2015 is:
arXiv:<date code>.<number><version>
where:
<date code> and <version> are as defined for 0704-1412
<number> is a five-digit number
]]
local function arxiv (options)
local id = options.id;
local class = options.Class; -- TODO: lowercase?
local handler = options.handler;
local year, month, version;
local err_msg = false; -- assume no error message
local text; -- output text
if id:match("^%a[%a%.%-]+/[90]%d[01]%d%d%d%d$") or id:match("^%a[%a%.%-]+/[90]%d[01]%d%d%d%dv%d+$") then -- test for the 9107-0703 format with or without version
year, month = id:match("^%a[%a%.%-]+/([90]%d)([01]%d)%d%d%d[v%d]*$");
year = tonumber (year);
month = tonumber (month);
if ((not (90 < year or 8 > year)) or (1 > month or 12 < month)) or -- if invalid year or invalid month
((91 == year and 7 > month) or (7 == year and 3 < month)) then -- if years ok, are starting and ending months ok?
err_msg = true; -- flag for error message
end
elseif id:match("^%d%d[01]%d%.%d%d%d%d$") or id:match("^%d%d[01]%d%.%d%d%d%dv%d+$") then -- test for the 0704-1412 with or without version
year, month = id:match("^(%d%d)([01]%d)%.%d%d%d%d[v%d]*$");
year = tonumber (year);
month = tonumber (month);
if ((7 > year) or (14 < year) or (1 > month or 12 < month)) or -- is year invalid or is month invalid? (doesn't test for future years)
((7 == year) and (4 > month)) then -- when year is 07, is month invalid (before April)?
err_msg = true; -- flag for error message
end
elseif id:match("^%d%d[01]%d%.%d%d%d%d%d$") or id:match("^%d%d[01]%d%.%d%d%d%d%dv%d+$") then -- test for the 1501- format with or without version
year, month = id:match("^(%d%d)([01]%d)%.%d%d%d%d%d[v%d]*$");
year = tonumber (year);
month = tonumber (month);
if ((15 > year) or (1 > month or 12 < month)) then -- is year invalid or is month invalid? (doesn't test for future years)
err_msg = true; -- flag for error message
end
else
err_msg = true; -- not a recognized format; flag for error message
end
if err_msg then
options.coins_list_t['ARXIV'] = nil; -- when error, unset so not included in COinS
end
local err_msg_t = {};
if err_msg then
set_message ('err_bad_arxiv');
end
text = external_link_id ({link = handler.link, label = handler.label, q = handler.q, redirect = handler.redirect,
prefix = handler.prefix, id = id, separator = handler.separator, encode = handler.encode, access = handler.access});
if is_set (class) then
if id:match ('^%d+') then
text = table.concat ({text, ' [[//arxiv.org/archive/', class, ' ', class, ']]'}); -- external link within square brackets, not wikilink
else
set_message ('err_class_ignored');
end
end
return text;
end
--[[--------------------------< B I B C O D E >--------------------------------------------------------------------
Validates (sort of) and formats a bibcode ID.
Format for bibcodes is specified here: https://adsabs.harvard.edu/abs_doc/help_pages/data.html#bibcodes
But, this: 2015arXiv151206696F is apparently valid so apparently, the only things that really matter are length, 19 characters
and first four digits must be a year. This function makes these tests:
length must be 19 characters
characters in position
1–4 must be digits and must represent a year in the range of 1000 – next year
5 must be a letter
6–8 must be letter, digit, ampersand, or dot (ampersand cannot directly precede a dot; &. )
9–18 must be letter, digit, or dot
19 must be a letter or dot
]]
local function bibcode (options)
local id = options.id;
local access = options.access;
local handler = options.handler;
local err_type;
local err_msg = '';
local year;
local text = external_link_id ({link = handler.link, label = handler.label, q = handler.q, redirect = handler.redirect,
prefix = handler.prefix, id = id, separator = handler.separator, encode = handler.encode,
access = access});
if 19 ~= id:len() then
err_type = cfg.err_msg_supl.length;
else
year = id:match ("^(%d%d%d%d)[%a][%w&%.][%w&%.][%w&%.][%w.]+[%a%.]$");
if not year then -- if nil then no pattern match
err_type = cfg.err_msg_supl.value; -- so value error
else
local next_year = tonumber (os.date ('%Y')) + 1; -- get the current year as a number and add one for next year
year = tonumber (year); -- convert year portion of bibcode to a number
if (1000 > year) or (year > next_year) then
err_type = cfg.err_msg_supl.year; -- year out of bounds
end
if id:find('&%.') then
err_type = cfg.err_msg_supl.journal; -- journal abbreviation must not have '&.' (if it does it's missing a letter)
end
end
end
if is_set (err_type) then -- if there was an error detected
set_message ('err_bad_bibcode', {err_type});
options.coins_list_t['BIBCODE'] = nil; -- when error, unset so not included in COinS
end
return text;
end
--[[--------------------------< B I O R X I V >-----------------------------------------------------------------
Format bioRxiv ID and do simple error checking. Before 2019-12-11, biorXiv IDs were 10.1101/ followed by exactly
6 digits. After 2019-12-11, biorXiv IDs retained the six-digit identifier but prefixed that with a yyyy.mm.dd.
date and suffixed with an optional version identifier.
The bioRxiv ID is the string of characters:
https://doi.org/10.1101/078733 -> 10.1101/078733
or a date followed by a six-digit number followed by an optional version indicator 'v' and one or more digits:
https://www.biorxiv.org/content/10.1101/2019.12.11.123456v2 -> 10.1101/2019.12.11.123456v2
see https://www.biorxiv.org/about-biorxiv
]]
local function biorxiv (options)
local id = options.id;
local handler = options.handler;
local err_msg = true; -- flag; assume that there will be an error
local patterns = {
'^10.1101/%d%d%d%d%d%d$', -- simple 6-digit identifier (before 2019-12-11)
'^10.1101/(20[1-9]%d)%.([01]%d)%.([0-3]%d)%.%d%d%d%d%d%dv%d+$', -- y.m.d. date + 6-digit identifier + version (after 2019-12-11)
'^10.1101/(20[1-9]%d)%.([01]%d)%.([0-3]%d)%.%d%d%d%d%d%d$', -- y.m.d. date + 6-digit identifier (after 2019-12-11)
}
for _, pattern in ipairs (patterns) do -- spin through the patterns looking for a match
if id:match (pattern) then
local y, m, d = id:match (pattern); -- found a match, attempt to get year, month and date from the identifier
if m then -- m is nil when id is the six-digit form
if not is_valid_biorxiv_date (y, m, d) then -- validate the encoded date; TODO: don't ignore leap-year and actual month lengths ({{#time:}} is a poor date validator)
break; -- date fail; break out early so we don't unset the error message
end
end
err_msg = nil; -- we found a match so unset the error message
break; -- and done
end
end -- err_cat remains set here when no match
if err_msg then
options.coins_list_t['BIORXIV'] = nil; -- when error, unset so not included in COinS
set_message ('err_bad_biorxiv'); -- and set the error message
end
return external_link_id ({link = handler.link, label = handler.label, q = handler.q, redirect = handler.redirect,
prefix = handler.prefix, id = id, separator = handler.separator,
encode = handler.encode, access = handler.access});
end
--[[--------------------------< C I T E S E E R X >------------------------------------------------------------
CiteSeerX use their own notion of "doi" (not to be confused with the identifiers resolved via doi.org).
The description of the structure of this identifier can be found at Help_talk:Citation_Style_1/Archive_26#CiteSeerX_id_structure
]]
local function citeseerx (options)
local id = options.id;
local handler = options.handler;
local matched;
local text = external_link_id ({link = handler.link, label = handler.label, q = handler.q, redirect = handler.redirect,
prefix = handler.prefix, id = id, separator = handler.separator, encode = handler.encode,
access = handler.access});
matched = id:match ("^10%.1%.1%.[1-9]%d?%d?%d?%.[1-9]%d?%d?%d?$");
if not matched then
set_message ('err_bad_citeseerx' );
options.coins_list_t['CITESEERX'] = nil; -- when error, unset so not included in COinS
end
return text;
end
--[[--------------------------< D O I >------------------------------------------------------------------------
Formats a DOI and checks for DOI errors.
DOI names contain two parts: prefix and suffix separated by a forward slash.
Prefix: directory indicator '10.' followed by a registrant code
Suffix: character string of any length chosen by the registrant
This function checks a DOI name for: prefix/suffix. If the DOI name contains spaces or endashes, or, if it ends
with a period or a comma, this function will emit a bad_doi error message.
DOI names are case-insensitive and can incorporate any printable Unicode characters so the test for spaces, endash,
and terminal punctuation may not be technically correct but it appears, that in practice these characters are rarely
if ever used in DOI names.
]]
local function doi (options)
local id = options.id;
local inactive = options.DoiBroken
local access = options.access;
local ignore_invalid = options.accept;
local handler = options.handler;
local err_flag;
local text;
if is_set (inactive) then
local inactive_year = inactive:match("%d%d%d%d") or ''; -- try to get the year portion from the inactive date
local inactive_month, good;
if is_set (inactive_year) then
if 4 < inactive:len() then -- inactive date has more than just a year (could be anything)
local lang_obj = mw.getContentLanguage(); -- get a language object for this wiki
good, inactive_month = pcall (lang_obj.formatDate, lang_obj, 'F', inactive); -- try to get the month name from the inactive date
if not good then
inactive_month = nil; -- something went wrong so make sure this is unset
end
end
else
inactive_year = nil; -- |doi-broken-date= has something but it isn't a date
end
if is_set (inactive_year) and is_set (inactive_month) then
set_message ('maint_doi_inactive_dated', {inactive_year, inactive_month, ' '});
elseif is_set (inactive_year) then
set_message ('maint_doi_inactive_dated', {inactive_year, '', ''});
else
set_message ('maint_doi_inactive');
end
inactive = " (" .. cfg.messages['inactive'] .. ' ' .. inactive .. ')';
end
local registrant = mw.ustring.match (id, '^10%.([^/]+)/[^%s–]-[^%.,]$'); -- registrant set when DOI has the proper basic form
local registrant_err_patterns = { -- these patterns are for code ranges that are not supported
'^[^1-3]%d%d%d%d%.%d%d*$', -- 5 digits with subcode (0xxxx, 40000+); accepts: 10000–39999
'^[^1-5]%d%d%d%d$', -- 5 digits without subcode (0xxxx, 60000+); accepts: 10000–59999
'^[^1-9]%d%d%d%.%d%d*$', -- 4 digits with subcode (0xxx); accepts: 1000–9999
'^[^1-9]%d%d%d$', -- 4 digits without subcode (0xxx); accepts: 1000–9999
'^%d%d%d%d%d%d+', -- 6 or more digits
'^%d%d?%d?$', -- less than 4 digits without subcode (with subcode is legitimate)
'^5555$', -- test registrant will never resolve
'[^%d%.]', -- any character that isn't a digit or a dot
}
if not ignore_invalid then
if registrant then -- when DOI has proper form
for i, pattern in ipairs (registrant_err_patterns) do -- spin through error patterns
if registrant:match (pattern) then -- to validate registrant codes
err_flag = set_message ('err_bad_doi'); -- when found, mark this DOI as bad
break; -- and done
end
end
else
err_flag = set_message ('err_bad_doi'); -- invalid directory or malformed
end
else
set_message ('maint_doi_ignore');
end
if err_flag then
options.coins_list_t['DOI'] = nil; -- when error, unset so not included in COinS
end
text = external_link_id ({link = handler.link, label = handler.label, q = handler.q, redirect = handler.redirect,
prefix = handler.prefix, id = id, separator = handler.separator, encode = handler.encode, access = access,
auto_link = not (err_flag or is_set (inactive) or ignore_invalid) and 'doi' or nil -- do not auto-link when |doi-broken-date= has a value or when there is a DOI error or (to play it safe, after all, auto-linking is not essential) when invalid DOIs are ignored
}) .. (inactive or '');
return text;
end
--[[--------------------------< H D L >------------------------------------------------------------------------
Formats an HDL with minor error checking.
HDL names contain two parts: prefix and suffix separated by a forward slash.
Prefix: character string using any character in the UCS-2 character set except '/'
Suffix: character string of any length using any character in the UCS-2 character set chosen by the registrant
This function checks a HDL name for: prefix/suffix. If the HDL name contains spaces, endashes, or, if it ends
with a period or a comma, this function will emit a bad_hdl error message.
HDL names are case-insensitive and can incorporate any printable Unicode characters so the test for endashes and
terminal punctuation may not be technically correct but it appears, that in practice these characters are rarely
if ever used in HDLs.
Query string parameters are named here: https://www.handle.net/proxy_servlet.html. query strings are not displayed
but since '?' is an allowed character in an HDL, '?' followed by one of the query parameters is the only way we
have to detect the query string so that it isn't URL-encoded with the rest of the identifier.
]]
local function hdl (options)
local id = options.id;
local access = options.access;
local handler = options.handler;
local query_params = { -- list of known query parameters from https://www.handle.net/proxy_servlet.html
'noredirect',
'ignore_aliases',
'auth',
'cert',
'index',
'type',
'urlappend',
'locatt',
'action',
}
local hdl, suffix, param = id:match ('(.-)(%?(%a+).+)$'); -- look for query string
local found;
if hdl then -- when there are query strings, this is the handle identifier portion
for _, q in ipairs (query_params) do -- spin through the list of query parameters
if param:match ('^' .. q) then -- if the query string begins with one of the parameters
found = true; -- announce a find
break; -- and stop looking
end
end
end
if found then
id = hdl; -- found so replace id with the handle portion; this will be URL-encoded, suffix will not
else
suffix = ''; -- make sure suffix is empty string for concatenation else
end
local text = external_link_id ({link = handler.link, label = handler.label, q = handler.q, redirect = handler.redirect,
prefix = handler.prefix, id = id, suffix = suffix, separator = handler.separator, encode = handler.encode, access = access})
if nil == id:match("^[^%s–]-/[^%s–]-[^%.,]$") then -- HDL must contain a forward slash, must not contain spaces, endashes, and must not end with period or comma
set_message ('err_bad_hdl' );
options.coins_list_t['HDL'] = nil; -- when error, unset so not included in COinS
end
return text;
end
--[[--------------------------< I S B N >----------------------------------------------------------------------
Determines whether an ISBN string is valid
]]
local function isbn (options)
local isbn_str = options.id;
local ignore_invalid = options.accept;
local handler = options.handler;
local function return_result (check, err_type) -- local function to handle the various returns
local ISBN = internal_link_id ({link = handler.link, label = handler.label, redirect = handler.redirect,
prefix = handler.prefix, id = isbn_str, separator = handler.separator});
if ignore_invalid then -- if ignoring ISBN errors
set_message ('maint_isbn_ignore'); -- add a maint category even when there is no error
else -- here when not ignoring
if not check then -- and there is an error
options.coins_list_t['ISBN'] = nil; -- when error, unset so not included in COinS
set_message ('err_bad_isbn', err_type); -- set an error message
return ISBN; -- return id text
end
end
return ISBN; -- return id text
end
if nil ~= isbn_str:match ('[^%s-0-9X]') then
return return_result (false, cfg.err_msg_supl.char); -- fail if isbn_str contains anything but digits, hyphens, or the uppercase X
end
local id = isbn_str:gsub ('[%s-]', ''); -- remove hyphens and whitespace
local len = id:len();
if len ~= 10 and len ~= 13 then
return return_result (false, cfg.err_msg_supl.length); -- fail if incorrect length
end
if len == 10 then
if id:match ('^%d*X?$') == nil then -- fail if isbn_str has 'X' anywhere but last position
return return_result (false, cfg.err_msg_supl.form);
end
if not is_valid_isxn (id, 10) then -- test isbn-10 for numerical validity
return return_result (false, cfg.err_msg_supl.check); -- fail if isbn-10 is not numerically valid
end
if id:find ('^63[01]') then -- 630xxxxxxx and 631xxxxxxx are (apparently) not valid isbn group ids but are used by amazon as numeric identifiers (asin)
return return_result (false, cfg.err_msg_supl.group); -- fail if isbn-10 begins with 630/1
end
return return_result (true, cfg.err_msg_supl.check); -- pass if isbn-10 is numerically valid
else
if id:match ('^%d+$') == nil then
return return_result (false, cfg.err_msg_supl.char); -- fail if ISBN-13 is not all digits
end
if id:match ('^97[89]%d*$') == nil then
return return_result (false, cfg.err_msg_supl.prefix); -- fail when ISBN-13 does not begin with 978 or 979
end
if id:match ('^9790') then
return return_result (false, cfg.err_msg_supl.group); -- group identifier '0' is reserved to ISMN
end
return return_result (is_valid_isxn_13 (id), cfg.err_msg_supl.check);
end
end
--[[--------------------------< A S I N >----------------------------------------------------------------------
Formats a link to Amazon. Do simple error checking: ASIN must be mix of 10 numeric or uppercase alpha
characters. If a mix, first character must be uppercase alpha; if all numeric, ASINs must be 10-digit
ISBN. If 10-digit ISBN, add a maintenance category so a bot or AWB script can replace |asin= with |isbn=.
Error message if not 10 characters, if not ISBN-10, if mixed and first character is a digit.
|asin=630....... and |asin=631....... are (apparently) not a legitimate ISBN though it checksums as one; these
do not cause this function to emit the maint_asin message
This function is positioned here because it calls isbn()
]]
local function asin (options)
local id = options.id;
local domain = options.ASINTLD;
local err_flag;
if not id:match("^[%d%u][%d%u][%d%u][%d%u][%d%u][%d%u][%d%u][%d%u][%d%u][%d%u]$") then
err_flag = set_message ('err_bad_asin'); -- ASIN is not a mix of 10 uppercase alpha and numeric characters
else
if id:match("^%d%d%d%d%d%d%d%d%d[%dX]$") then -- if 10-digit numeric (or 9 digits with terminal X)
if is_valid_isxn (id, 10) then -- see if ASIN value is or validates as ISBN-10
if not id:find ('^63[01]') then -- 630xxxxxxx and 631xxxxxxx are (apparently) not a valid isbn prefixes but are used by amazon as a numeric identifier
err_flag = set_message ('err_bad_asin'); -- ASIN has ISBN-10 form but begins with something other than 630/1 so probably an isbn
end
elseif not is_set (err_flag) then
err_flag = set_message ('err_bad_asin'); -- ASIN is not ISBN-10
end
elseif not id:match("^%u[%d%u]+$") then
err_flag = set_message ('err_bad_asin'); -- asin doesn't begin with uppercase alpha
end
end
if (not is_set (domain)) or in_array (domain, {'us'}) then -- default: United States
domain = "com";
elseif in_array (domain, {'jp', 'uk'}) then -- Japan, United Kingdom
domain = "co." .. domain;
elseif in_array (domain, {'z.cn'}) then -- China
domain = "cn";
elseif in_array (domain, {'au', 'br', 'mx', 'sg', 'tr'}) then -- Australia, Brazil, Mexico, Singapore, Turkey
domain = "com." .. domain;
elseif not in_array (domain, {'ae', 'ca', 'cn', 'de', 'es', 'fr', 'in', 'it', 'nl', 'pl', 'sa', 'se', 'co.jp', 'co.uk', 'com', 'com.au', 'com.br', 'com.mx', 'com.sg', 'com.tr'}) then -- Arabic Emirates, Canada, China, Germany, Spain, France, Indonesia, Italy, Netherlands, Poland, Saudi Arabia, Sweden (as of 2021-03 Austria (.at), Liechtenstein (.li) and Switzerland (.ch) still redirect to the German site (.de) with special settings, so don't maintain local ASINs for them)
err_flag = set_message ('err_bad_asin_tld'); -- unsupported asin-tld value
end
local handler = options.handler;
if not is_set (err_flag) then
options.coins_list_t['ASIN'] = handler.prefix .. domain .. "/dp/" .. id; -- asin for coins
else
options.coins_list_t['ASIN'] = nil; -- when error, unset so not included in COinS
end
return external_link_id ({link = handler.link, label = handler.label, q = handler.q, redirect = handler.redirect,
prefix = handler.prefix .. domain .. "/dp/",
id = id, encode = handler.encode, separator = handler.separator})
end
--[[--------------------------< I S M N >----------------------------------------------------------------------
Determines whether an ISMN string is valid. Similar to ISBN-13, ISMN is 13 digits beginning 979-0-... and uses the
same check digit calculations. See https://www.ismn-international.org/download/Web_ISMN_Users_Manual_2008-6.pdf
section 2, pages 9–12.
ismn value not made part of COinS metadata because we don't have a url or isn't a COinS-defined identifier (rft.xxx)
or an identifier registered at info-uri.info (info:)
]]
local function ismn (options)
local id = options.id;
local handler = options.handler;
local text;
local valid_ismn = true;
local id_copy;
id_copy = id; -- save a copy because this testing is destructive
id = id:gsub ('[%s-]', ''); -- remove hyphens and white space
if 13 ~= id:len() or id:match ("^9790%d*$" ) == nil then -- ISMN must be 13 digits and begin with 9790
valid_ismn = false;
else
valid_ismn=is_valid_isxn_13 (id); -- validate ISMN
end
-- text = internal_link_id ({link = handler.link, label = handler.label, q = handler.q, redirect = handler.redirect, -- use this (or external version) when there is some place to link to
-- prefix = handler.prefix, id = id_copy, separator = handler.separator, encode = handler.encode})
text = table.concat ( -- because no place to link to yet
{
make_wikilink (link_label_make (handler), handler.label),
handler.separator,
id_copy
});
if false == valid_ismn then
options.coins_list_t['ISMN'] = nil; -- when error, unset so not included in COinS; not really necessary here because ismn not made part of COinS
set_message ('err_bad_ismn'); -- create an error message if the ISMN is invalid
end
return text;
end
--[[--------------------------< I S S N >----------------------------------------------------------------------
Validate and format an ISSN. This code fixes the case where an editor has included an ISSN in the citation but
has separated the two groups of four digits with a space. When that condition occurred, the resulting link looked
like this:
|issn=0819 4327 gives: [https://www.worldcat.org/issn/0819 4327 0819 4327] -- can't have spaces in an external link
This code now prevents that by inserting a hyphen at the ISSN midpoint. It also validates the ISSN for length
and makes sure that the checkdigit agrees with the calculated value. Incorrect length (8 digits), characters
other than 0-9 and X, or checkdigit / calculated value mismatch will all cause a check ISSN error message. The
ISSN is always displayed with a hyphen, even if the ISSN was given as a single group of 8 digits.
]]
local function issn (options)
local id = options.id;
local handler = options.handler;
local ignore_invalid = options.accept;
local issn_copy = id; -- save a copy of unadulterated ISSN; use this version for display if ISSN does not validate
local text;
local valid_issn = true;
id = id:gsub ('[%s-]', ''); -- remove hyphens and whitespace
if 8 ~= id:len() or nil == id:match ("^%d*X?$" ) then -- validate the ISSN: 8 digits long, containing only 0-9 or X in the last position
valid_issn = false; -- wrong length or improper character
else
valid_issn = is_valid_isxn (id, 8); -- validate ISSN
end
if true == valid_issn then
id = string.sub (id, 1, 4 ) .. "-" .. string.sub (id, 5 ); -- if valid, display correctly formatted version
else
id = issn_copy; -- if not valid, show the invalid ISSN with error message
end
text = external_link_id ({link = handler.link, label = handler.label, q = handler.q, redirect = handler.redirect,
prefix = handler.prefix, id = id, separator = handler.separator, encode = handler.encode})
if ignore_invalid then
set_message ('maint_issn_ignore');
else
if false == valid_issn then
options.coins_list_t['ISSN'] = nil; -- when error, unset so not included in COinS
set_message ('err_bad_issn', (options.hkey == 'EISSN') and 'e' or ''); -- create an error message if the ISSN is invalid
end
end
return text;
end
--[[--------------------------< J F M >-----------------------------------------------------------------------
A numerical identifier in the form nn.nnnn.nn
]]
local function jfm (options)
local id = options.id;
local handler = options.handler;
local id_num;
id_num = id:match ('^[Jj][Ff][Mm](.*)$'); -- identifier with jfm prefix; extract identifier
if is_set (id_num) then
set_message ('maint_jfm_format');
else -- plain number without JFM prefix
id_num = id; -- if here id does not have prefix
end
if id_num and id_num:match('^%d%d%.%d%d%d%d%.%d%d$') then
id = id_num; -- jfm matches pattern
else
set_message ('err_bad_jfm' ); -- set an error message
options.coins_list_t['JFM'] = nil; -- when error, unset so not included in COinS
end
return external_link_id ({link = handler.link, label = handler.label, q = handler.q, redirect = handler.redirect,
prefix = handler.prefix, id = id, separator = handler.separator, encode = handler.encode});
end
--[[--------------------------< J S T O R >--------------------------------------------------------------------
Format a JSTOR with some error checking
]]
local function jstor (options)
local id = options.id;
local access = options.access;
local handler = options.handler;
if id:find ('[Jj][Ss][Tt][Oo][Rr]') or id:find ('^https?://') or id:find ('%s') then
set_message ('err_bad_jstor'); -- set an error message
options.coins_list_t['JSTOR'] = nil; -- when error, unset so not included in COinS
end
return external_link_id ({link = handler.link, label = handler.label, q = handler.q, redirect = handler.redirect,
prefix = handler.prefix, id = id, separator = handler.separator, encode = handler.encode, access = access});
end
--[[--------------------------< L C C N >----------------------------------------------------------------------
Format LCCN link and do simple error checking. LCCN is a character string 8-12 characters long. The length of
the LCCN dictates the character type of the first 1-3 characters; the rightmost eight are always digits.
https://oclc-research.github.io/infoURI-Frozen/info-uri.info/info:lccn/reg.html
length = 8 then all digits
length = 9 then lccn[1] is lowercase alpha
length = 10 then lccn[1] and lccn[2] are both lowercase alpha or both digits
length = 11 then lccn[1] is lower case alpha, lccn[2] and lccn[3] are both lowercase alpha or both digits
length = 12 then lccn[1] and lccn[2] are both lowercase alpha
]]
local function lccn (options)
local lccn = options.id;
local handler = options.handler;
local err_flag; -- presume that LCCN is valid
local id = lccn; -- local copy of the LCCN
id = normalize_lccn (id); -- get canonical form (no whitespace, hyphens, forward slashes)
local len = id:len(); -- get the length of the LCCN
if 8 == len then
if id:match("[^%d]") then -- if LCCN has anything but digits (nil if only digits)
err_flag = set_message ('err_bad_lccn'); -- set an error message
end
elseif 9 == len then -- LCCN should be adddddddd
if nil == id:match("%l%d%d%d%d%d%d%d%d") then -- does it match our pattern?
err_flag = set_message ('err_bad_lccn'); -- set an error message
end
elseif 10 == len then -- LCCN should be aadddddddd or dddddddddd
if id:match("[^%d]") then -- if LCCN has anything but digits (nil if only digits) ...
if nil == id:match("^%l%l%d%d%d%d%d%d%d%d") then -- ... see if it matches our pattern
err_flag = set_message ('err_bad_lccn'); -- no match, set an error message
end
end
elseif 11 == len then -- LCCN should be aaadddddddd or adddddddddd
if not (id:match("^%l%l%l%d%d%d%d%d%d%d%d") or id:match("^%l%d%d%d%d%d%d%d%d%d%d")) then -- see if it matches one of our patterns
err_flag = set_message ('err_bad_lccn'); -- no match, set an error message
end
elseif 12 == len then -- LCCN should be aadddddddddd
if not id:match("^%l%l%d%d%d%d%d%d%d%d%d%d") then -- see if it matches our pattern
err_flag = set_message ('err_bad_lccn'); -- no match, set an error message
end
else
err_flag = set_message ('err_bad_lccn'); -- wrong length, set an error message
end
if not is_set (err_flag) and nil ~= lccn:find ('%s') then
err_flag = set_message ('err_bad_lccn'); -- lccn contains a space, set an error message
end
if is_set (err_flag) then
options.coins_list_t['LCCN'] = nil; -- when error, unset so not included in COinS
end
return external_link_id ({link = handler.link, label = handler.label, q = handler.q, redirect = handler.redirect,
prefix = handler.prefix, id = lccn, separator = handler.separator, encode = handler.encode});
end
--[[--------------------------< M R >--------------------------------------------------------------------------
A seven digit number; if not seven digits, zero-fill leading digits to make seven digits.
]]
local function mr (options)
local id = options.id;
local handler = options.handler;
local id_num;
local id_len;
id_num = id:match ('^[Mm][Rr](%d+)$'); -- identifier with mr prefix
if is_set (id_num) then
set_message ('maint_mr_format'); -- add maint cat
else -- plain number without mr prefix
id_num = id:match ('^%d+$'); -- if here id is all digits
end
id_len = id_num and id_num:len() or 0;
if (7 >= id_len) and (0 ~= id_len) then
id = string.rep ('0', 7-id_len) .. id_num; -- zero-fill leading digits
else
set_message ('err_bad_mr'); -- set an error message
options.coins_list_t['MR'] = nil; -- when error, unset so not included in COinS
end
return external_link_id ({link = handler.link, label = handler.label, q = handler.q, redirect = handler.redirect,
prefix = handler.prefix, id = id, separator = handler.separator, encode = handler.encode});
end
--[[--------------------------< O C L C >----------------------------------------------------------------------
Validate and format an OCLC ID. https://www.oclc.org/batchload/controlnumber.en.html {{dead link}}
archived at: https://web.archive.org/web/20161228233804/https://www.oclc.org/batchload/controlnumber.en.html
]]
local function oclc (options)
local id = options.id;
local handler = options.handler;
local number;
if id:match('^ocm%d%d%d%d%d%d%d%d$') then -- ocm prefix and 8 digits; 001 field (12 characters)
number = id:match('ocm(%d+)'); -- get the number
elseif id:match('^ocn%d%d%d%d%d%d%d%d%d$') then -- ocn prefix and 9 digits; 001 field (12 characters)
number = id:match('ocn(%d+)'); -- get the number
elseif id:match('^on%d%d%d%d%d%d%d%d%d%d+$') then -- on prefix and 10 or more digits; 001 field (12 characters)
number = id:match('^on(%d%d%d%d%d%d%d%d%d%d+)$'); -- get the number
elseif id:match('^%(OCoLC%)[1-9]%d*$') then -- (OCoLC) prefix and variable number digits; no leading zeros; 035 field
number = id:match('%(OCoLC%)([1-9]%d*)'); -- get the number
if 9 < number:len() then
number = nil; -- constrain to 1 to 9 digits; change this when OCLC issues 10-digit numbers
end
elseif id:match('^%d+$') then -- no prefix
number = id; -- get the number
if 10 < number:len() then
number = nil; -- constrain to 1 to 10 digits; change this when OCLC issues 11-digit numbers
end
end
if number then -- proper format
id = number; -- exclude prefix, if any, from external link
else
set_message ('err_bad_oclc') -- add an error message if the id is malformed
options.coins_list_t['OCLC'] = nil; -- when error, unset so not included in COinS
end
return external_link_id ({link = handler.link, label = handler.label, q = handler.q, redirect = handler.redirect,
prefix = handler.prefix, id = id, separator = handler.separator, encode = handler.encode});
end
--[[--------------------------< O P E N L I B R A R Y >--------------------------------------------------------
Formats an OpenLibrary link, and checks for associated errors.
]]
local function openlibrary (options)
local id = options.id;
local access = options.access;
local handler = options.handler;
local ident, code = id:gsub('^OL', ''):match("^(%d+([AMW]))$"); -- strip optional OL prefix followed immediately by digits followed by 'A', 'M', or 'W';
local err_flag;
local prefix = { -- these are appended to the handler.prefix according to code
['A']='authors/OL',
['M']='books/OL',
['W']='works/OL',
['X']='OL' -- not a code; spoof when 'code' in id is invalid
};
if not ident then
code = 'X'; -- no code or id completely invalid
ident = id; -- copy id to ident so that we display the flawed identifier
err_flag = set_message ('err_bad_ol');
end
if not is_set (err_flag) then
options.coins_list_t['OL'] = handler.prefix .. prefix[code] .. ident; -- experiment for ol coins
else
options.coins_list_t['OL'] = nil; -- when error, unset so not included in COinS
end
return external_link_id ({link = handler.link, label = handler.label, q = handler.q, redirect = handler.redirect,
prefix = handler.prefix .. prefix[code],
id = ident, separator = handler.separator, encode = handler.encode,
access = access});
end
--[[--------------------------< O S T I >----------------------------------------------------------------------
Format OSTI and do simple error checking. OSTIs are sequential numbers beginning at 1 and counting up. This
code checks the OSTI to see that it contains only digits and is less than test_limit specified in the configuration;
the value in test_limit will need to be updated periodically as more OSTIs are issued.
NB. 1018 is the lowest OSTI number found in the wild (so far) and resolving OK on the OSTI site
]]
local function osti (options)
local id = options.id;
local access = options.access;
local handler = options.handler;
if id:match("[^%d]") then -- if OSTI has anything but digits
set_message ('err_bad_osti'); -- set an error message
options.coins_list_t['OSTI'] = nil; -- when error, unset so not included in COinS
else -- OSTI is only digits
local id_num = tonumber (id); -- convert id to a number for range testing
if 1018 > id_num or handler.id_limit < id_num then -- if OSTI is outside test limit boundaries
set_message ('err_bad_osti'); -- set an error message
options.coins_list_t['OSTI'] = nil; -- when error, unset so not included in COinS
end
end
return external_link_id ({link = handler.link, label = handler.label, q = handler.q, redirect = handler.redirect,
prefix = handler.prefix, id = id, separator = handler.separator, encode = handler.encode, access = access});
end
--[[--------------------------< P M C >------------------------------------------------------------------------
Format a PMC, do simple error checking, and check for embargoed articles.
The embargo parameter takes a date for a value. If the embargo date is in the future the PMC identifier will not
be linked to the article. If the embargo date is today or in the past, or if it is empty or omitted, then the
PMC identifier is linked to the article through the link at cfg.id_handlers['PMC'].prefix.
PMC embargo date testing is done in function is_embargoed () which is called earlier because when the citation
has |pmc=<value> but does not have a |url= then |title= is linked with the PMC link. Function is_embargoed ()
returns the embargo date if the PMC article is still embargoed, otherwise it returns an empty string.
PMCs are sequential numbers beginning at 1 and counting up. This code checks the PMC to see that it contains only digits and is less
than test_limit; the value in local variable test_limit will need to be updated periodically as more PMCs are issued.
]]
local function pmc (options)
local id = options.id;
local embargo = options.Embargo; -- TODO: lowercase?
local handler = options.handler;
local err_flag;
local id_num;
local text;
id_num = id:match ('^[Pp][Mm][Cc](%d+)$'); -- identifier with PMC prefix
if is_set (id_num) then
set_message ('maint_pmc_format');
else -- plain number without PMC prefix
id_num = id:match ('^%d+$'); -- if here id is all digits
end
if is_set (id_num) then -- id_num has a value so test it
id_num = tonumber (id_num); -- convert id_num to a number for range testing
if 1 > id_num or handler.id_limit < id_num then -- if PMC is outside test limit boundaries
err_flag = set_message ('err_bad_pmc'); -- set an error message
else
id = tostring (id_num); -- make sure id is a string
end
else -- when id format incorrect
err_flag = set_message ('err_bad_pmc'); -- set an error message
end
if is_set (embargo) and is_set (is_embargoed (embargo)) then -- is PMC is still embargoed?
text = table.concat ( -- still embargoed so no external link
{
make_wikilink (link_label_make (handler), handler.label),
handler.separator,
id,
});
else
text = external_link_id ({link = handler.link, label = handler.label, q = handler.q, redirect = handler.redirect, -- no embargo date or embargo has expired, ok to link to article
prefix = handler.prefix, id = id, separator = handler.separator, encode = handler.encode, access = handler.access,
auto_link = not err_flag and 'pmc' or nil -- do not auto-link when PMC has error
});
end
if err_flag then
options.coins_list_t['PMC'] = nil; -- when error, unset so not included in COinS
end
return text;
end
--[[--------------------------< P M I D >----------------------------------------------------------------------
Format PMID and do simple error checking. PMIDs are sequential numbers beginning at 1 and counting up. This
code checks the PMID to see that it contains only digits and is less than test_limit; the value in local variable
test_limit will need to be updated periodically as more PMIDs are issued.
]]
local function pmid (options)
local id = options.id;
local handler = options.handler;
if id:match("[^%d]") then -- if PMID has anything but digits
set_message ('err_bad_pmid'); -- set an error message
options.coins_list_t['PMID'] = nil; -- when error, unset so not included in COinS
else -- PMID is only digits
local id_num = tonumber (id); -- convert id to a number for range testing
if 1 > id_num or handler.id_limit < id_num then -- if PMID is outside test limit boundaries
set_message ('err_bad_pmid'); -- set an error message
options.coins_list_t['PMID'] = nil; -- when error, unset so not included in COinS
end
end
return external_link_id ({link = handler.link, label = handler.label, q = handler.q, redirect = handler.redirect,
prefix = handler.prefix, id = id, separator = handler.separator, encode = handler.encode});
end
--[[--------------------------< R F C >------------------------------------------------------------------------
Format RFC and do simple error checking. RFCs are sequential numbers beginning at 1 and counting up. This
code checks the RFC to see that it contains only digits and is less than test_limit specified in the configuration;
the value in test_limit will need to be updated periodically as more RFCs are issued.
An index of all RFCs is here: https://tools.ietf.org/rfc/
]]
local function rfc (options)
local id = options.id;
local handler = options.handler;
if id:match("[^%d]") then -- if RFC has anything but digits
set_message ('err_bad_rfc'); -- set an error message
options.coins_list_t['RFC'] = nil; -- when error, unset so not included in COinS
else -- RFC is only digits
local id_num = tonumber (id); -- convert id to a number for range testing
if 1 > id_num or handler.id_limit < id_num then -- if RFC is outside test limit boundaries
set_message ('err_bad_rfc'); -- set an error message
options.coins_list_t['RFC'] = nil; -- when error, unset so not included in COinS
end
end
return external_link_id ({link = handler.link, label = handler.label, q = handler.q, redirect = handler.redirect,
prefix = handler.prefix, id = id, separator = handler.separator, encode = handler.encode, access = handler.access});
end
--[[--------------------------< S 2 C I D >--------------------------------------------------------------------
Format an S2CID, do simple error checking
S2CIDs are sequential numbers beginning at 1 and counting up. This code checks the S2CID to see that it is only
digits and is less than test_limit; the value in local variable test_limit will need to be updated periodically
as more S2CIDs are issued.
]]
local function s2cid (options)
local id = options.id;
local access = options.access;
local handler = options.handler;
local id_num;
local text;
id_num = id:match ('^[1-9]%d*$'); -- id must be all digits; must not begin with 0; no open access flag
if is_set (id_num) then -- id_num has a value so test it
id_num = tonumber (id_num); -- convert id_num to a number for range testing
if handler.id_limit < id_num then -- if S2CID is outside test limit boundaries
set_message ('err_bad_s2cid'); -- set an error message
options.coins_list_t['S2CID'] = nil; -- when error, unset so not included in COinS
end
else -- when id format incorrect
set_message ('err_bad_s2cid'); -- set an error message
options.coins_list_t['S2CID'] = nil; -- when error, unset so not included in COinS
end
text = external_link_id ({link = handler.link, label = handler.label, q = handler.q, redirect = handler.redirect,
prefix = handler.prefix, id = id, separator = handler.separator, encode = handler.encode, access = access});
return text;
end
--[[--------------------------< S B N >------------------------------------------------------------------------
9-digit form of ISBN-10; uses same check-digit validation when SBN is prefixed with an additional '0' to make 10 digits
sbn value not made part of COinS metadata because we don't have a url or isn't a COinS-defined identifier (rft.xxx)
or an identifier registered at info-uri.info (info:)
]]
local function sbn (options)
local id = options.id;
local ignore_invalid = options.accept;
local handler = options.handler;
local function return_result (check, err_type) -- local function to handle the various returns
local SBN = internal_link_id ({link = handler.link, label = handler.label, redirect = handler.redirect,
prefix = handler.prefix, id = id, separator = handler.separator});
if not ignore_invalid then -- if not ignoring SBN errors
if not check then
options.coins_list_t['SBN'] = nil; -- when error, unset so not included in COinS; not really necessary here because sbn not made part of COinS
set_message ('err_bad_sbn', {err_type}); -- display an error message
return SBN;
end
else
set_message ('maint_isbn_ignore'); -- add a maint category even when there is no error (ToDo: Possibly switch to separate message for SBNs only)
end
return SBN;
end
if id:match ('[^%s-0-9X]') then
return return_result (false, cfg.err_msg_supl.char); -- fail if SBN contains anything but digits, hyphens, or the uppercase X
end
local ident = id:gsub ('[%s-]', ''); -- remove hyphens and whitespace; they interfere with the rest of the tests
if 9 ~= ident:len() then
return return_result (false, cfg.err_msg_supl.length); -- fail if incorrect length
end
if ident:match ('^%d*X?$') == nil then
return return_result (false, cfg.err_msg_supl.form); -- fail if SBN has 'X' anywhere but last position
end
return return_result (is_valid_isxn ('0' .. ident, 10), cfg.err_msg_supl.check);
end
--[[--------------------------< S S R N >----------------------------------------------------------------------
Format an SSRN, do simple error checking
SSRNs are sequential numbers beginning at 100? and counting up. This code checks the SSRN to see that it is
only digits and is greater than 99 and less than test_limit; the value in local variable test_limit will need
to be updated periodically as more SSRNs are issued.
]]
local function ssrn (options)
local id = options.id;
local handler = options.handler;
local id_num;
local text;
id_num = id:match ('^%d+$'); -- id must be all digits
if is_set (id_num) then -- id_num has a value so test it
id_num = tonumber (id_num); -- convert id_num to a number for range testing
if 100 > id_num or handler.id_limit < id_num then -- if SSRN is outside test limit boundaries
set_message ('err_bad_ssrn'); -- set an error message
options.coins_list_t['SSRN'] = nil; -- when error, unset so not included in COinS
end
else -- when id format incorrect
set_message ('err_bad_ssrn'); -- set an error message
options.coins_list_t['SSRN'] = nil; -- when error, unset so not included in COinS
end
text = external_link_id ({link = handler.link, label = handler.label, q = handler.q, redirect = handler.redirect,
prefix = handler.prefix, id = id, separator = handler.separator, encode = handler.encode, access = options.access});
return text;
end
--[[--------------------------< U S E N E T _ I D >------------------------------------------------------------
Validate and format a usenet message id. Simple error checking, looks for 'id-left@id-right' not enclosed in
'<' and/or '>' angle brackets.
]]
local function usenet_id (options)
local id = options.id;
local handler = options.handler;
local text = external_link_id ({link = handler.link, label = handler.label, q = handler.q, redirect = handler.redirect,
prefix = handler.prefix, id = id, separator = handler.separator, encode = handler.encode})
if not id:match('^.+@.+$') or not id:match('^[^<].*[^>]$') then -- doesn't have '@' or has one or first or last character is '< or '>'
set_message ('err_bad_usenet_id') -- add an error message if the message id is invalid
options.coins_list_t['USENETID'] = nil; -- when error, unset so not included in COinS
end
return text;
end
--[[--------------------------< Z B L >-----------------------------------------------------------------------
A numerical identifier in the form nnnn.nnnnn - leading zeros in the first quartet optional
format described here: http://emis.mi.sanu.ac.rs/ZMATH/zmath/en/help/search/
temporary format is apparently eight digits. Anything else is an error
]]
local function zbl (options)
local id = options.id;
local handler = options.handler;
if id:match('^%d%d%d%d%d%d%d%d$') then -- is this identifier using temporary format?
set_message ('maint_zbl'); -- yes, add maint cat
elseif not id:match('^%d?%d?%d?%d%.%d%d%d%d%d$') then -- not temporary, is it normal format?
set_message ('err_bad_zbl'); -- no, set an error message
options.coins_list_t['ZBL'] = nil; -- when error, unset so not included in COinS
end
return external_link_id ({link = handler.link, label = handler.label, q = handler.q, redirect = handler.redirect,
prefix = handler.prefix, id = id, separator = handler.separator, encode = handler.encode});
end
--============================<< I N T E R F A C E F U N C T I O N S >>==========================================
--[[--------------------------< E X T R A C T _ I D S >------------------------------------------------------------
Populates ID table from arguments using configuration settings. Loops through cfg.id_handlers and searches args for
any of the parameters listed in each cfg.id_handlers['...'].parameters. If found, adds the parameter and value to
the identifier list. Emits redundant error message if more than one alias exists in args
]]
local function extract_ids (args)
local id_list = {}; -- list of identifiers found in args
for k, v in pairs (cfg.id_handlers) do -- k is uppercase identifier name as index to cfg.id_handlers; e.g. cfg.id_handlers['ISBN'], v is a table
v = select_one (args, v.parameters, 'err_redundant_parameters' ); -- v.parameters is a table of aliases for k; here we pick one from args if present
if is_set (v) then id_list[k] = v; end -- if found in args, add identifier to our list
end
return id_list;
end
--[[--------------------------< E X T R A C T _ I D _ A C C E S S _ L E V E L S >--------------------------------------
Fetches custom id access levels from arguments using configuration settings. Parameters which have a predefined access
level (e.g. arxiv) do not use this function as they are directly rendered as free without using an additional parameter.
returns a table of k/v pairs where k is same as the identifier's key in cfg.id_handlers and v is the assigned (valid) keyword
access-level values must match the case used in cfg.keywords_lists['id-access'] (lowercase unless there is some special reason for something else)
]]
local function extract_id_access_levels (args, id_list)
local id_accesses_list = {};
for k, v in pairs (cfg.id_handlers) do
local access_param = v.custom_access; -- name of identifier's access-level parameter
if is_set (access_param) then
local access_level = args[access_param]; -- get the assigned value if there is one
if is_set (access_level) then
if not in_array (access_level, cfg.keywords_lists['id-access']) then -- exact match required
set_message ('err_invalid_param_val', {access_param, access_level});
access_level = nil; -- invalid so unset
end
if not is_set (id_list[k]) then -- identifier access-level must have a matching identifier
set_message ('err_param_access_requires_param', {k:lower()}); -- parameter name is uppercase in cfg.id_handlers (k); lowercase for error message
end
id_accesses_list[k] = cfg.keywords_xlate[access_level]; -- get translated keyword
end
end
end
return id_accesses_list;
end
--[[--------------------------< B U I L D _ I D _ L I S T >----------------------------------------------------
render the identifiers into a sorted sequence table
<ID_list_coins_t> is a table of k/v pairs where k is same as key in cfg.id_handlers and v is the assigned value
<options_t> is a table of various k/v option pairs provided in the call to new_build_id_list();
modified by this function and passed to all identifier rendering functions
<access_levels_t> is a table of k/v pairs where k is same as key in cfg.id_handlers and v is the assigned value (if valid)
returns a sequence table of sorted (by hkey - 'handler' key) rendered identifier strings
]]
local function build_id_list (ID_list_coins_t, options_t, access_levels_t)
local ID_list_t = {};
local accept;
local func_map = { --function map points to functions associated with hkey identifier
['ARXIV'] = arxiv,
['ASIN'] = asin,
['BIBCODE'] = bibcode,
['BIORXIV'] = biorxiv,
['CITESEERX'] = citeseerx,
['DOI'] = doi,
['EISSN'] = issn,
['HDL'] = hdl,
['ISBN'] = isbn,
['ISMN'] = ismn,
['ISSN'] = issn,
['JFM'] = jfm,
['JSTOR'] = jstor,
['LCCN'] = lccn,
['MR'] = mr,
['OCLC'] = oclc,
['OL'] = openlibrary,
['OSTI'] = osti,
['PMC'] = pmc,
['PMID'] = pmid,
['RFC'] = rfc,
['S2CID'] = s2cid,
['SBN'] = sbn,
['SSRN'] = ssrn,
['USENETID'] = usenet_id,
['ZBL'] = zbl,
}
for hkey, v in pairs (ID_list_coins_t) do
v, accept = has_accept_as_written (v); -- remove accept-as-written markup if present; accept is boolean true when markup removed; false else
-- every function gets the options table with value v and accept boolean
options_t.hkey = hkey; -- ~/Configuration handler key
options_t.id = v; -- add that identifier value to the options table
options_t.accept = accept; -- add the accept boolean flag
options_t.access = access_levels_t[hkey]; -- add the access level for those that have an |<identifier-access= parameter
options_t.handler = cfg.id_handlers[hkey];
options_t.coins_list_t = ID_list_coins_t; -- pointer to ID_list_coins_t; for |asin= and |ol=; also to keep erroneous values out of the citation's metadata
options_t.coins_list_t[hkey] = v; -- id value without accept-as-written markup for metadata
if options_t.handler.access and not in_array (options_t.handler.access, cfg.keywords_lists['id-access']) then
error (cfg.messages['unknown_ID_access'] .. options_t.handler.access); -- here when handler access key set to a value not listed in list of allowed id access keywords
end
if func_map[hkey] then
local id_text = func_map[hkey] (options_t); -- call the function to get identifier text and any error message
table.insert (ID_list_t, {hkey, id_text}); -- add identifier text to the output sequence table
else
error (cfg.messages['unknown_ID_key'] .. hkey); -- here when func_map doesn't have a function for hkey
end
end
local function comp (a, b) -- used by following table.sort()
return a[1]:lower() < b[1]:lower(); -- sort by hkey
end
table.sort (ID_list_t, comp); -- sequence table of tables sort
for k, v in ipairs (ID_list_t) do -- convert sequence table of tables to simple sequence table of strings
ID_list_t[k] = v[2]; -- v[2] is the identifier rendering from the call to the various functions in func_map{}
end
return ID_list_t;
end
--[[--------------------------< O P T I O N S _ C H E C K >----------------------------------------------------
check that certain option parameters have their associated identifier parameters with values
<ID_list_coins_t> is a table of k/v pairs where k is same as key in cfg.id_handlers and v is the assigned value
<ID_support_t> is a sequence table of tables created in citation0() where each subtable has four elements:
[1] is the support parameter's assigned value; empty string if not set
[2] is a text string same as key in cfg.id_handlers
[3] is cfg.error_conditions key used to create error message
[4] is original ID support parameter name used to create error message
returns nothing; on error emits an appropriate error message
]]
local function options_check (ID_list_coins_t, ID_support_t)
for _, v in ipairs (ID_support_t) do
if is_set (v[1]) and not ID_list_coins_t[v[2]] then -- when support parameter has a value but matching identifier parameter is missing or empty
set_message (v[3], (v[4])); -- emit the appropriate error message
end
end
end
--[[--------------------------< I D E N T I F I E R _ L I S T S _ G E T >--------------------------------------
Creates two identifier lists: a k/v table of identifiers and their values to be used locally and for use in the
COinS metadata, and a sequence table of the rendered identifier strings that will be included in the rendered
citation.
]]
local function identifier_lists_get (args_t, options_t, ID_support_t)
local ID_list_coins_t = extract_ids (args_t); -- get a table of identifiers and their values for use locally and for use in COinS
options_check (ID_list_coins_t, ID_support_t); -- ID support parameters must have matching identifier parameters
local ID_access_levels_t = extract_id_access_levels (args_t, ID_list_coins_t); -- get a table of identifier access levels
local ID_list_t = build_id_list (ID_list_coins_t, options_t, ID_access_levels_t); -- get a sequence table of rendered identifier strings
return ID_list_t, ID_list_coins_t; -- return the tables
end
--[[--------------------------< S E T _ S E L E C T E D _ M O D U L E S >--------------------------------------
Sets local cfg table and imported functions table to same (live or sandbox) as that used by the other modules.
]]
local function set_selected_modules (cfg_table_ptr, utilities_page_ptr)
cfg = cfg_table_ptr;
has_accept_as_written = utilities_page_ptr.has_accept_as_written; -- import functions from select Module:Citation/CS1/Utilities module
is_set = utilities_page_ptr.is_set;
in_array = utilities_page_ptr.in_array;
set_message = utilities_page_ptr.set_message;
select_one = utilities_page_ptr.select_one;
substitute = utilities_page_ptr.substitute;
make_wikilink = utilities_page_ptr.make_wikilink;
z = utilities_page_ptr.z; -- table of tables in Module:Citation/CS1/Utilities
end
--[[--------------------------< E X P O R T E D F U N C T I O N S >------------------------------------------
]]
return {
auto_link_urls = auto_link_urls, -- table of identifier URLs to be used when auto-linking |title=
identifier_lists_get = identifier_lists_get, -- experiment to replace individual calls to build_id_list(), extract_ids, extract_id_access_levels
is_embargoed = is_embargoed;
set_selected_modules = set_selected_modules;
}
fpzwbbg7bi1fz0kcd2bo644o9cggpty
Module:Citation/CS1/Utilities/sandbox
828
1636
15101
2022-07-17T13:36:47Z
Kambai Akau
15
Created page with "--[[ History of changes since last sync: 2022-01-22 ]] local z = { error_cats_t = {}; -- for categorizing citations that contain errors error_ids_t = {}; -- list of error identifiers; used to prevent duplication of certain errors; local to this module error_msgs_t = {}; -- sequence table of error messages maint_cats_t = {}; -- for categorizing citations that aren't erroneous per se, but could use a little work..."
Scribunto
text/plain
--[[
History of changes since last sync: 2022-01-22
]]
local z = {
error_cats_t = {}; -- for categorizing citations that contain errors
error_ids_t = {}; -- list of error identifiers; used to prevent duplication of certain errors; local to this module
error_msgs_t = {}; -- sequence table of error messages
maint_cats_t = {}; -- for categorizing citations that aren't erroneous per se, but could use a little work
prop_cats_t = {}; -- for categorizing citations based on certain properties, language of source for instance
prop_keys_t = {}; -- for adding classes to the citation's <cite> tag
};
--[[--------------------------< F O R W A R D D E C L A R A T I O N S >--------------------------------------
]]
local cfg; -- table of tables imported from selected Module:Citation/CS1/Configuration
--[[--------------------------< I S _ S E T >------------------------------------------------------------------
Returns true if argument is set; false otherwise. Argument is 'set' when it exists (not nil) or when it is not an empty string.
]]
local function is_set (var)
return not (var == nil or var == '');
end
--[[--------------------------< I N _ A R R A Y >--------------------------------------------------------------
Whether needle is in haystack
]]
local function in_array (needle, haystack)
if needle == nil then
return false;
end
for n, v in ipairs (haystack) do
if v == needle then
return n;
end
end
return false;
end
--[[--------------------------< H A S _ A C C E P T _ A S _ W R I T T E N >------------------------------------
When <str> is wholly wrapped in accept-as-written markup, return <str> without markup and true; return <str> and false else
with allow_empty = false, <str> must have at least one character inside the markup
with allow_empty = true, <str> the markup frame can be empty like (()) to distinguish an empty template parameter from the specific condition "has no applicable value" in citation-context.
After further evaluation the two cases might be merged at a later stage, but should be kept separated for now.
]]
local function has_accept_as_written (str, allow_empty)
if not is_set (str) then
return str, false;
end
local count;
if true == allow_empty then
str, count = str:gsub ('^%(%((.*)%)%)$', '%1'); -- allows (()) to be an empty set
else
str, count = str:gsub ('^%(%((.+)%)%)$', '%1');
end
return str, 0 ~= count;
end
--[[--------------------------< S U B S T I T U T E >----------------------------------------------------------
Populates numbered arguments in a message string using an argument table. <args> may be a single string or a
sequence table of multiple strings.
]]
local function substitute (msg, args)
return args and mw.message.newRawMessage (msg, args):plain() or msg;
end
--[[--------------------------< E R R O R _ C O M M E N T >----------------------------------------------------
Wraps error messages with CSS markup according to the state of hidden. <content> may be a single string or a
sequence table of multiple strings.
]]
local function error_comment (content, hidden)
return substitute (hidden and cfg.presentation['hidden-error'] or cfg.presentation['visible-error'], content);
end
--[[--------------------------< H Y P H E N _ T O _ D A S H >--------------------------------------------------
Converts a hyphen to a dash under certain conditions. The hyphen must separate
like items; unlike items are returned unmodified. These forms are modified:
letter - letter (A - B)
digit - digit (4-5)
digit separator digit - digit separator digit (4.1-4.5 or 4-1-4-5)
letterdigit - letterdigit (A1-A5) (an optional separator between letter and
digit is supported – a.1-a.5 or a-1-a-5)
digitletter - digitletter (5a - 5d) (an optional separator between letter and
digit is supported – 5.a-5.d or 5-a-5-d)
any other forms are returned unmodified.
str may be a comma- or semicolon-separated list
]]
local function hyphen_to_dash (str)
if not is_set (str) then
return str;
end
local accept; -- boolean
str = str:gsub ("(%(%(.-%)%))", function(m) return m:gsub(",", ","):gsub(";", ";") end) -- replace commas and semicolons in accept-as-written markup with similar unicode characters so they'll be ignored during the split
str = str:gsub ('&[nm]dash;', {['–'] = '–', ['—'] = '—'}); -- replace — and – entities with their characters; semicolon mucks up the text.split
str = str:gsub ('-', '-'); -- replace HTML numeric entity with hyphen character
str = str:gsub (' ', ' '); -- replace entity with generic keyboard space character
local out = {};
local list = mw.text.split (str, '%s*[,;]%s*'); -- split str at comma or semicolon separators if there are any
for _, item in ipairs (list) do -- for each item in the list
item, accept = has_accept_as_written (item); -- remove accept-this-as-written markup when it wraps all of item
if not accept and mw.ustring.match (item, '^%w*[%.%-]?%w+%s*[%-–—]%s*%w*[%.%-]?%w+$') then -- if a hyphenated range or has endash or emdash separators
if item:match ('^%a+[%.%-]?%d+%s*%-%s*%a+[%.%-]?%d+$') or -- letterdigit hyphen letterdigit (optional separator between letter and digit)
item:match ('^%d+[%.%-]?%a+%s*%-%s*%d+[%.%-]?%a+$') or -- digitletter hyphen digitletter (optional separator between digit and letter)
item:match ('^%d+[%.%-]%d+%s*%-%s*%d+[%.%-]%d+$') or -- digit separator digit hyphen digit separator digit
item:match ('^%d+%s*%-%s*%d+$') or -- digit hyphen digit
item:match ('^%a+%s*%-%s*%a+$') then -- letter hyphen letter
item = item:gsub ('(%w*[%.%-]?%w+)%s*%-%s*(%w*[%.%-]?%w+)', '%1–%2'); -- replace hyphen, remove extraneous space characters
else
item = mw.ustring.gsub (item, '%s*[–—]%s*', '–'); -- for endash or emdash separated ranges, replace em with en, remove extraneous whitespace
end
end
table.insert (out, item); -- add the (possibly modified) item to the output table
end
local temp_str = ''; -- concatenate the output table into a comma separated string
temp_str, accept = has_accept_as_written (table.concat (out, ', ')); -- remove accept-this-as-written markup when it wraps all of concatenated out
if accept then
temp_str = has_accept_as_written (str); -- when global markup removed, return original str; do it this way to suppress boolean second return value
return temp_str:gsub(",", ","):gsub(";", ";");
else
return temp_str:gsub(",", ","):gsub(";", ";"); -- else, return assembled temp_str
end
end
--[=[-------------------------< M A K E _ W I K I L I N K >----------------------------------------------------
Makes a wikilink; when both link and display text is provided, returns a wikilink in the form [[L|D]]; if only
link is provided (or link and display are the same), returns a wikilink in the form [[L]]; if neither are
provided or link is omitted, returns an empty string.
]=]
local function make_wikilink (link, display)
if not is_set (link) then return '' end
if is_set (display) and link ~= display then
return table.concat ({'[[', link, '|', display, ']]'});
else
return table.concat ({'[[', link, ']]'});
end
end
--[[--------------------------< S E T _ M E S S A G E >----------------------------------------------------------
Sets an error message using the ~/Configuration error_conditions{} table along with arguments supplied in the function
call, inserts the resulting message in z.error_msgs_t{} sequence table, and returns the error message.
<error_id> – key value for appropriate error handler in ~/Configuration error_conditions{} table
<arguments> – may be a single string or a sequence table of multiple strings to be subsititued into error_conditions[error_id].message
<raw> – boolean
true – causes this function to return the error message not wrapped in visible-error, hidden-error span tag;
returns error_conditions[error_id].hidden as a second return value
does not add message to z.error_msgs_t sequence table
false, nil – adds message wrapped in visible-error, hidden-error span tag to z.error_msgs_t
returns the error message wrapped in visible-error, hidden-error span tag; there is no second return value
<prefix> – string to be prepended to <message> -- TODO: remove support for these unused(?) arguments?
<suffix> – string to be appended to <message>
TODO: change z.error_cats_t and z.maint_cats_t to have the form cat_name = true? this to avoid dups without having to have an extra table
]]
local added_maint_cats = {} -- list of maintenance categories that have been added to z.maint_cats_t; TODO: figure out how to delete this table
local function set_message (error_id, arguments, raw, prefix, suffix)
local error_state = cfg.error_conditions[error_id];
prefix = prefix or '';
suffix = suffix or '';
if error_state == nil then
error (cfg.messages['undefined_error'] .. ': ' .. error_id); -- because missing error handler in Module:Citation/CS1/Configuration
elseif is_set (error_state.category) then
if error_state.message then -- when error_state.message defined, this is an error message
table.insert (z.error_cats_t, error_state.category);
else
if not added_maint_cats[error_id] then
added_maint_cats[error_id] = true; -- note that we've added this category
table.insert (z.maint_cats_t, substitute (error_state.category, arguments)); -- make cat name then add to table
end
return; -- because no message, nothing more to do
end
end
local message = substitute (error_state.message, arguments);
message = table.concat (
{
message,
' (',
make_wikilink (
table.concat (
{
cfg.messages['help page link'],
'#',
error_state.anchor
}),
cfg.messages['help page label']),
')'
});
z.error_ids_t[error_id] = true;
if z.error_ids_t['err_citation_missing_title'] and -- if missing-title error already noted
in_array (error_id, {'err_bare_url_missing_title', 'err_trans_missing_title'}) then -- and this error is one of these
return '', false; -- don't bother because one flavor of missing title is sufficient
end
message = table.concat ({prefix, message, suffix});
if true == raw then
return message, error_state.hidden; -- return message not wrapped in visible-error, hidden-error span tag
end
message = error_comment (message, error_state.hidden); -- wrap message in visible-error, hidden-error span tag
table.insert (z.error_msgs_t, message); -- add it to the messages sequence table
return message; -- and done; return value generally not used but is used as a flag in various functions of ~/Identifiers
end
--[[-------------------------< I S _ A L I A S _ U S E D >-----------------------------------------------------
This function is used by select_one() to determine if one of a list of alias parameters is in the argument list
provided by the template.
Input:
args – pointer to the arguments table from calling template
alias – one of the list of possible aliases in the aliases lists from Module:Citation/CS1/Configuration
index – for enumerated parameters, identifies which one
enumerated – true/false flag used to choose how enumerated aliases are examined
value – value associated with an alias that has previously been selected; nil if not yet selected
selected – the alias that has previously been selected; nil if not yet selected
error_list – list of aliases that are duplicates of the alias already selected
Returns:
value – value associated with alias we selected or that was previously selected or nil if an alias not yet selected
selected – the alias we selected or the alias that was previously selected or nil if an alias not yet selected
]]
local function is_alias_used (args, alias, index, enumerated, value, selected, error_list)
if enumerated then -- is this a test for an enumerated parameters?
alias = alias:gsub ('#', index); -- replace '#' with the value in index
else
alias = alias:gsub ('#', ''); -- remove '#' if it exists
end
if is_set (args[alias]) then -- alias is in the template's argument list
if value ~= nil and selected ~= alias then -- if we have already selected one of the aliases
local skip;
for _, v in ipairs (error_list) do -- spin through the error list to see if we've added this alias
if v == alias then
skip = true;
break; -- has been added so stop looking
end
end
if not skip then -- has not been added so
table.insert (error_list, alias); -- add error alias to the error list
end
else
value = args[alias]; -- not yet selected an alias, so select this one
selected = alias;
end
end
return value, selected; -- return newly selected alias, or previously selected alias
end
--[[--------------------------< A D D _ M A I N T _ C A T >------------------------------------------------------
Adds a category to z.maint_cats_t using names from the configuration file with additional text if any.
To prevent duplication, the added_maint_cats table lists the categories by key that have been added to z.maint_cats_t.
]]
local function add_maint_cat (key, arguments)
if not added_maint_cats [key] then
added_maint_cats [key] = true; -- note that we've added this category
table.insert (z.maint_cats_t, substitute (cfg.maint_cats [key], arguments)); -- make name then add to table
end
end
--[[--------------------------< A D D _ P R O P _ C A T >--------------------------------------------------------
Adds a category to z.prop_cats_t using names from the configuration file with additional text if any.
foreign_lang_source and foreign_lang_source_2 keys have a language code appended to them so that multiple languages
may be categorized but multiples of the same language are not categorized.
added_prop_cats is a table declared in page scope variables above
]]
local added_prop_cats = {}; -- list of property categories that have been added to z.prop_cats_t
local function add_prop_cat (key, arguments, key_modifier)
local key_modified = key .. ((key_modifier and key_modifier) or ''); -- modify <key> with <key_modifier> if present and not nil
if not added_prop_cats [key_modified] then
added_prop_cats [key_modified] = true; -- note that we've added this category
table.insert (z.prop_cats_t, substitute (cfg.prop_cats [key], arguments)); -- make name then add to table
table.insert (z.prop_keys_t, 'cs1-prop-' .. key); -- convert key to class for use in the citation's <cite> tag
end
end
--[[--------------------------< S A F E _ F O R _ I T A L I C S >----------------------------------------------
Protects a string that will be wrapped in wiki italic markup '' ... ''
Note: We cannot use <i> for italics, as the expected behavior for italics specified by ''...'' in the title is that
they will be inverted (i.e. unitalicized) in the resulting references. In addition, <i> and '' tend to interact
poorly under Mediawiki's HTML tidy.
]]
local function safe_for_italics (str)
if not is_set (str) then return str end
if str:sub (1, 1) == "'" then str = "<span></span>" .. str; end
if str:sub (-1, -1) == "'" then str = str .. "<span></span>"; end
return str:gsub ('\n', ' '); -- Remove newlines as they break italics.
end
--[[--------------------------< W R A P _ S T Y L E >----------------------------------------------------------
Applies styling to various parameters. Supplied string is wrapped using a message_list configuration taking one
argument; protects italic styled parameters. Additional text taken from citation_config.presentation - the reason
this function is similar to but separate from wrap_msg().
]]
local function wrap_style (key, str)
if not is_set (str) then
return "";
elseif in_array (key, {'italic-title', 'trans-italic-title'}) then
str = safe_for_italics (str);
end
return substitute (cfg.presentation[key], {str});
end
--[[--------------------------< M A K E _ S E P _ L I S T >------------------------------------------------------------
make a separated list of items using provided separators.
<sep_list> - typically '<comma><space>'
<sep_list_pair> - typically '<space>and<space>'
<sep_list_end> - typically '<comma><space>and<space>' or '<comma><space>&<space>'
defaults to cfg.presentation['sep_list'], cfg.presentation['sep_list_pair'], and cfg.presentation['sep_list_end']
if <sep_list_end> is specified, <sep_list> and <sep_list_pair> must also be supplied
]]
local function make_sep_list (count, list_seq, sep_list, sep_list_pair, sep_list_end)
local list = '';
if not sep_list then -- set the defaults
sep_list = cfg.presentation['sep_list'];
sep_list_pair = cfg.presentation['sep_list_pair'];
sep_list_end = cfg.presentation['sep_list_end'];
end
if 2 >= count then
list = table.concat (list_seq, sep_list_pair); -- insert separator between two items; returns list_seq[1] then only one item
elseif 2 < count then
list = table.concat (list_seq, sep_list, 1, count - 1); -- concatenate all but last item with plain list separator
list = table.concat ({list, list_seq[count]}, sep_list_end); -- concatenate last item onto end of <list> with final separator
end
return list;
end
--[[--------------------------< S E L E C T _ O N E >----------------------------------------------------------
Chooses one matching parameter from a list of parameters to consider. The list of parameters to consider is just
names. For parameters that may be enumerated, the position of the numerator in the parameter name is identified
by the '#' so |author-last1= and |author1-last= are represented as 'author-last#' and 'author#-last'.
Because enumerated parameter |<param>1= is an alias of |<param>= we must test for both possibilities.
Generates an error if more than one match is present.
]]
local function select_one (args, aliases_list, error_condition, index)
local value = nil; -- the value assigned to the selected parameter
local selected = ''; -- the name of the parameter we have chosen
local error_list = {};
if index ~= nil then index = tostring(index); end
for _, alias in ipairs (aliases_list) do -- for each alias in the aliases list
if alias:match ('#') then -- if this alias can be enumerated
if '1' == index then -- when index is 1 test for enumerated and non-enumerated aliases
value, selected = is_alias_used (args, alias, index, false, value, selected, error_list); -- first test for non-enumerated alias
end
value, selected = is_alias_used (args, alias, index, true, value, selected, error_list); -- test for enumerated alias
else
value, selected = is_alias_used (args, alias, index, false, value, selected, error_list); -- test for non-enumerated alias
end
end
if #error_list > 0 and 'none' ~= error_condition then -- for cases where this code is used outside of extract_names()
for i, v in ipairs (error_list) do
error_list[i] = wrap_style ('parameter', v);
end
table.insert (error_list, wrap_style ('parameter', selected));
set_message (error_condition, {make_sep_list (#error_list, error_list)});
end
return value, selected;
end
--[=[-------------------------< R E M O V E _ W I K I _ L I N K >----------------------------------------------
Gets the display text from a wikilink like [[A|B]] or [[B]] gives B
The str:gsub() returns either A|B froma [[A|B]] or B from [[B]] or B from B (no wikilink markup).
In l(), l:gsub() removes the link and pipe (if they exist); the second :gsub() trims whitespace from the label
if str was wrapped in wikilink markup. Presumably, this is because without wikimarkup in str, there is no match
in the initial gsub, the replacement function l() doesn't get called.
]=]
local function remove_wiki_link (str)
return (str:gsub ("%[%[([^%[%]]*)%]%]", function(l)
return l:gsub ("^[^|]*|(.*)$", "%1" ):gsub ("^%s*(.-)%s*$", "%1");
end));
end
--[=[-------------------------< I S _ W I K I L I N K >--------------------------------------------------------
Determines if str is a wikilink, extracts, and returns the wikilink type, link text, and display text parts.
If str is a complex wikilink ([[L|D]]):
returns wl_type 2 and D and L from [[L|D]];
if str is a simple wikilink ([[D]])
returns wl_type 1 and D from [[D]] and L as empty string;
if not a wikilink:
returns wl_type 0, str as D, and L as empty string.
trims leading and trailing whitespace and pipes from L and D ([[L|]] and [[|D]] are accepted by MediaWiki and
treated like [[D]]; while [[|D|]] is not accepted by MediaWiki, here, we accept it and return D without the pipes).
]=]
local function is_wikilink (str)
local D, L
local wl_type = 2; -- assume that str is a complex wikilink [[L|D]]
if not str:match ('^%[%[[^%]]+%]%]$') then -- is str some sort of a wikilink (must have some sort of content)
return 0, str, ''; -- not a wikilink; return wl_type as 0, str as D, and empty string as L
end
L, D = str:match ('^%[%[([^|]+)|([^%]]+)%]%]$'); -- get L and D from [[L|D]]
if not is_set (D) then -- if no separate display
D = str:match ('^%[%[([^%]]*)|*%]%]$'); -- get D from [[D]] or [[D|]]
wl_type = 1;
end
D = mw.text.trim (D, '%s|'); -- trim white space and pipe characters
return wl_type, D, L or '';
end
--[[--------------------------< S T R I P _ A P O S T R O P H E _ M A R K U P >--------------------------------
Strip wiki italic and bold markup from argument so that it doesn't contaminate COinS metadata.
This function strips common patterns of apostrophe markup. We presume that editors who have taken the time to
markup a title have, as a result, provided valid markup. When they don't, some single apostrophes are left behind.
Returns the argument without wiki markup and a number; the number is more-or-less meaningless except as a flag
to indicate that markup was replaced; do not rely on it as an indicator of how many of any kind of markup was
removed; returns the argument and nil when no markup removed
]]
local function strip_apostrophe_markup (argument)
if not is_set (argument) then
return argument, nil; -- no argument, nothing to do
end
if nil == argument:find ( "''", 1, true ) then -- Is there at least one double apostrophe? If not, exit.
return argument, nil;
end
local flag;
while true do
if argument:find ("'''''", 1, true) then -- bold italic (5)
argument, flag = argument:gsub ("%'%'%'%'%'", ""); -- remove all instances of it
elseif argument:find ("''''", 1, true) then -- italic start and end without content (4)
argument, flag=argument:gsub ("%'%'%'%'", "");
elseif argument:find ("'''", 1, true) then -- bold (3)
argument, flag=argument:gsub ("%'%'%'", "");
elseif argument:find ("''", 1, true) then -- italic (2)
argument, flag = argument:gsub ("%'%'", "");
else
break;
end
end
return argument, flag; -- done
end
--[[--------------------------< S E T _ S E L E C T E D _ M O D U L E S >--------------------------------------
Sets local cfg table to same (live or sandbox) as that used by the other modules.
]]
local function set_selected_modules (cfg_table_ptr)
cfg = cfg_table_ptr;
end
--[[--------------------------< E X P O R T S >----------------------------------------------------------------
]]
return {
add_maint_cat = add_maint_cat, -- exported functions
add_prop_cat = add_prop_cat,
error_comment = error_comment,
has_accept_as_written = has_accept_as_written,
hyphen_to_dash = hyphen_to_dash,
in_array = in_array,
is_set = is_set,
is_wikilink = is_wikilink,
make_sep_list = make_sep_list,
make_wikilink = make_wikilink,
remove_wiki_link = remove_wiki_link,
safe_for_italics = safe_for_italics,
select_one = select_one,
set_message = set_message,
set_selected_modules = set_selected_modules,
strip_apostrophe_markup = strip_apostrophe_markup,
substitute = substitute,
wrap_style = wrap_style,
z = z, -- exported table
}
0ovf73n1evalod9yfcuo1jfbt5scv9l
Module:Citation/CS1/COinS/sandbox
828
1637
15102
2022-07-17T13:38:50Z
Kambai Akau
15
Created page with "--[[ History of changes since last sync: 2022-01-22 ]] --[[--------------------------< F O R W A R D D E C L A R A T I O N S >-------------------------------------- ]] local has_accept_as_written, is_set, in_array, remove_wiki_link, strip_apostrophe_markup; -- functions in Module:Citation/CS1/Utilities local cfg; -- table of configuration tables that are defined in Module:Citation/CS1/Configuration --[[--------------------------< M A K E _ C O I..."
Scribunto
text/plain
--[[
History of changes since last sync: 2022-01-22
]]
--[[--------------------------< F O R W A R D D E C L A R A T I O N S >--------------------------------------
]]
local has_accept_as_written, is_set, in_array, remove_wiki_link, strip_apostrophe_markup; -- functions in Module:Citation/CS1/Utilities
local cfg; -- table of configuration tables that are defined in Module:Citation/CS1/Configuration
--[[--------------------------< M A K E _ C O I N S _ T I T L E >----------------------------------------------
Makes a title for COinS from Title and / or ScriptTitle (or any other name-script pairs)
Apostrophe markup (bold, italics) is stripped from each value so that the COinS metadata isn't corrupted with strings
of %27%27...
]]
local function make_coins_title (title, script)
title = has_accept_as_written (title);
if is_set (title) then
title = strip_apostrophe_markup (title); -- strip any apostrophe markup
else
title = ''; -- if not set, make sure title is an empty string
end
if is_set (script) then
script = script:gsub ('^%l%l%s*:%s*', ''); -- remove language prefix if present (script value may now be empty string)
script = strip_apostrophe_markup (script); -- strip any apostrophe markup
else
script = ''; -- if not set, make sure script is an empty string
end
if is_set (title) and is_set (script) then
script = ' ' .. script; -- add a space before we concatenate
end
return title .. script; -- return the concatenation
end
--[[--------------------------< E S C A P E _ L U A _ M A G I C _ C H A R S >----------------------------------
Returns a string where all of Lua's magic characters have been escaped. This is important because functions like
string.gsub() treat their pattern and replace strings as patterns, not literal strings.
]]
local function escape_lua_magic_chars (argument)
argument = argument:gsub("%%", "%%%%"); -- replace % with %%
argument = argument:gsub("([%^%$%(%)%.%[%]%*%+%-%?])", "%%%1"); -- replace all other Lua magic pattern characters
return argument;
end
--[[--------------------------< G E T _ C O I N S _ P A G E S >------------------------------------------------
Extract page numbers from external wikilinks in any of the |page=, |pages=, or |at= parameters for use in COinS.
]]
local function get_coins_pages (pages)
local pattern;
if not is_set (pages) then return pages; end -- if no page numbers then we're done
while true do
pattern = pages:match("%[(%w*:?//[^ ]+%s+)[%w%d].*%]"); -- pattern is the opening bracket, the URL and following space(s): "[url "
if nil == pattern then break; end -- no more URLs
pattern = escape_lua_magic_chars (pattern); -- pattern is not a literal string; escape Lua's magic pattern characters
pages = pages:gsub(pattern, ""); -- remove as many instances of pattern as possible
end
pages = pages:gsub("[%[%]]", ""); -- remove the brackets
pages = pages:gsub("–", "-" ); -- replace endashes with hyphens
pages = pages:gsub("&%w+;", "-" ); -- and replace HTML entities (– etc.) with hyphens; do we need to replace numerical entities like   and the like?
return pages;
end
--[=[-------------------------< C O I N S _ R E P L A C E _ M A T H _ S T R I P M A R K E R >------------------
There are three options for math markup rendering that depend on the editor's math preference settings. These
settings are at [[Special:Preferences#mw-prefsection-rendering]] and are
PNG images
TeX source
MathML with SVG or PNG fallback
All three are heavy with HTML and CSS which doesn't belong in the metadata.
Without this function, the metadata saved in the raw wikitext contained the rendering determined by the settings
of the last editor to save the page.
This function gets the rendered form of an equation according to the editor's preference before the page is saved. It
then searches the rendering for the text equivalent of the rendered equation and replaces the rendering with that so
that the page is saved without extraneous HTML/CSS markup and with a reasonably readable text form of the equation.
When a replacement is made, this function returns true and the value with replacement; otherwise false and the initial
value. To replace multipe equations it is necessary to call this function from within a loop.
]=]
local function coins_replace_math_stripmarker (value)
local stripmarker = cfg.stripmarkers['math'];
local rendering = value:match (stripmarker); -- is there a math stripmarker
if not rendering then -- when value doesn't have a math stripmarker, abandon this test
return false, value;
end
rendering = mw.text.unstripNoWiki (rendering); -- convert stripmarker into rendered value (or nil? ''? when math render error)
if rendering:match ('alt="[^"]+"') then -- if PNG math option
rendering = rendering:match ('alt="([^"]+)"'); -- extract just the math text
elseif rendering:match ('$%s+.+%s+%$') then -- if TeX math option; $ is legit character that is escapes as \$
rendering = rendering:match ('$%s+(.+)%s+%$') -- extract just the math text
elseif rendering:match ('<annotation[^>]+>.+</annotation>') then -- if MathML math option
rendering = rendering:match ('<annotation[^>]+>(.+)</annotation>') -- extract just the math text
else
return false, value; -- had math stripmarker but not one of the three defined forms
end
return true, value:gsub (stripmarker, rendering, 1);
end
--[[--------------------------< C O I N S _ C L E A N U P >----------------------------------------------------
Cleanup parameter values for the metadata by removing or replacing invisible characters and certain HTML entities.
2015-12-10: there is a bug in mw.text.unstripNoWiki (). It replaces math stripmarkers with the appropriate content
when it shouldn't. See https://phabricator.wikimedia.org/T121085 and Wikipedia_talk:Lua#stripmarkers_and_mw.text.unstripNoWiki.28.29
TODO: move the replacement patterns and replacement values into a table in /Configuration similar to the invisible
characters table?
]]
local function coins_cleanup (value)
local replaced = true; -- default state to get the do loop running
while replaced do -- loop until all math stripmarkers replaced
replaced, value = coins_replace_math_stripmarker (value); -- replace math stripmarker with text representation of the equation
end
value = value:gsub (cfg.stripmarkers['math'], "MATH RENDER ERROR"); -- one or more couldn't be replaced; insert vague error message
value = mw.text.unstripNoWiki (value); -- replace nowiki stripmarkers with their content
value = value:gsub ('<span class="nowrap" style="padding%-left:0%.1em;">'(s?)</span>', "'%1"); -- replace {{'}} or {{'s}} with simple apostrophe or apostrophe-s
value = value:gsub (' ', ' '); -- replace entity with plain space
value = value:gsub ('\226\128\138', ' '); -- replace hair space with plain space
if not mw.ustring.find (value, cfg.indic_script) then -- don't remove zero-width joiner characters from indic script
value = value:gsub ('‍', ''); -- remove ‍ entities
value = mw.ustring.gsub (value, '[\226\128\141\226\128\139\194\173]', ''); -- remove zero-width joiner, zero-width space, soft hyphen
end
value = value:gsub ('[\009\010\013 ]+', ' '); -- replace horizontal tab, line feed, carriage return with plain space
return value;
end
--[[--------------------------< C O I N S >--------------------------------------------------------------------
COinS metadata (see <http://ocoins.info/>) allows automated tools to parse the citation information.
]]
local function COinS(data, class)
if 'table' ~= type(data) or nil == next(data) then
return '';
end
for k, v in pairs (data) do -- spin through all of the metadata parameter values
if 'ID_list' ~= k and 'Authors' ~= k then -- except the ID_list and Author tables (author nowiki stripmarker done when Author table processed)
data[k] = coins_cleanup (v);
end
end
local ctx_ver = "Z39.88-2004";
-- treat table strictly as an array with only set values.
local OCinSoutput = setmetatable( {}, {
__newindex = function(self, key, value)
if is_set(value) then
rawset( self, #self+1, table.concat{ key, '=', mw.uri.encode( remove_wiki_link( value ) ) } );
end
end
});
if in_array (class, {'arxiv', 'biorxiv', 'citeseerx', 'ssrn', 'journal', 'news', 'magazine'}) or (in_array (class, {'conference', 'interview', 'map', 'press release', 'web'}) and is_set(data.Periodical)) or
('citation' == class and is_set(data.Periodical) and not is_set (data.Encyclopedia)) then
OCinSoutput.rft_val_fmt = "info:ofi/fmt:kev:mtx:journal"; -- journal metadata identifier
if in_array (class, {'arxiv', 'biorxiv', 'citeseerx', 'ssrn'}) then -- set genre according to the type of citation template we are rendering
OCinSoutput["rft.genre"] = "preprint"; -- cite arxiv, cite biorxiv, cite citeseerx, cite ssrn
elseif 'conference' == class then
OCinSoutput["rft.genre"] = "conference"; -- cite conference (when Periodical set)
elseif 'web' == class then
OCinSoutput["rft.genre"] = "unknown"; -- cite web (when Periodical set)
else
OCinSoutput["rft.genre"] = "article"; -- journal and other 'periodical' articles
end
OCinSoutput["rft.jtitle"] = data.Periodical; -- journal only
OCinSoutput["rft.atitle"] = data.Title; -- 'periodical' article titles
-- these used only for periodicals
OCinSoutput["rft.ssn"] = data.Season; -- keywords: winter, spring, summer, fall
OCinSoutput["rft.quarter"] = data.Quarter; -- single digits 1->first quarter, etc.
OCinSoutput["rft.chron"] = data.Chron; -- free-form date components
OCinSoutput["rft.volume"] = data.Volume; -- does not apply to books
OCinSoutput["rft.issue"] = data.Issue;
OCinSoutput["rft.pages"] = data.Pages; -- also used in book metadata
elseif 'thesis' ~= class then -- all others except cite thesis are treated as 'book' metadata; genre distinguishes
OCinSoutput.rft_val_fmt = "info:ofi/fmt:kev:mtx:book"; -- book metadata identifier
if 'report' == class or 'techreport' == class then -- cite report and cite techreport
OCinSoutput["rft.genre"] = "report";
elseif 'conference' == class then -- cite conference when Periodical not set
OCinSoutput["rft.genre"] = "conference";
OCinSoutput["rft.atitle"] = data.Chapter; -- conference paper as chapter in proceedings (book)
elseif in_array (class, {'book', 'citation', 'encyclopaedia', 'interview', 'map'}) then
if is_set (data.Chapter) then
OCinSoutput["rft.genre"] = "bookitem";
OCinSoutput["rft.atitle"] = data.Chapter; -- book chapter, encyclopedia article, interview in a book, or map title
else
if 'map' == class or 'interview' == class then
OCinSoutput["rft.genre"] = 'unknown'; -- standalone map or interview
else
OCinSoutput["rft.genre"] = 'book'; -- book and encyclopedia
end
end
else -- {'audio-visual', 'AV-media-notes', 'DVD-notes', 'episode', 'interview', 'mailinglist', 'map', 'newsgroup', 'podcast', 'press release', 'serial', 'sign', 'speech', 'web'}
OCinSoutput["rft.genre"] = "unknown";
end
OCinSoutput["rft.btitle"] = data.Title; -- book only
OCinSoutput["rft.place"] = data.PublicationPlace; -- book only
OCinSoutput["rft.series"] = data.Series; -- book only
OCinSoutput["rft.pages"] = data.Pages; -- book, journal
OCinSoutput["rft.edition"] = data.Edition; -- book only
OCinSoutput["rft.pub"] = data.PublisherName; -- book and dissertation
else -- cite thesis
OCinSoutput.rft_val_fmt = "info:ofi/fmt:kev:mtx:dissertation"; -- dissertation metadata identifier
OCinSoutput["rft.title"] = data.Title; -- dissertation (also patent but that is not yet supported)
OCinSoutput["rft.degree"] = data.Degree; -- dissertation only
OCinSoutput['rft.inst'] = data.PublisherName; -- book and dissertation
end
-- NB. Not currently supported are "info:ofi/fmt:kev:mtx:patent", "info:ofi/fmt:kev:mtx:dc", "info:ofi/fmt:kev:mtx:sch_svc", "info:ofi/fmt:kev:mtx:ctx"
-- and now common parameters (as much as possible)
OCinSoutput["rft.date"] = data.Date; -- book, journal, dissertation
for k, v in pairs( data.ID_list ) do -- what to do about these? For now assume that they are common to all?
if k == 'ISBN' then v = v:gsub( "[^-0-9X]", "" ); end
local id = cfg.id_handlers[k].COinS;
if string.sub( id or "", 1, 4 ) == 'info' then -- for ids that are in the info:registry
OCinSoutput["rft_id"] = table.concat{ id, "/", v };
elseif string.sub (id or "", 1, 3 ) == 'rft' then -- for isbn, issn, eissn, etc. that have defined COinS keywords
OCinSoutput[ id ] = v;
elseif 'url' == id then -- for urls that are assembled in ~/Identifiers; |asin= and |ol=
OCinSoutput["rft_id"] = table.concat ({data.ID_list[k], "#id-name=", cfg.id_handlers[k].label});
elseif id then -- when cfg.id_handlers[k].COinS is not nil so urls created here
OCinSoutput["rft_id"] = table.concat{ cfg.id_handlers[k].prefix, v, cfg.id_handlers[k].suffix or '', "#id-name=", cfg.id_handlers[k].label }; -- others; provide a URL and indicate identifier name as #fragment (human-readable, but transparent to browsers)
end
end
local last, first;
for k, v in ipairs( data.Authors ) do
last, first = coins_cleanup (v.last), coins_cleanup (v.first or ''); -- replace any nowiki stripmarkers, non-printing or invisible characters
if k == 1 then -- for the first author name only
if is_set(last) and is_set(first) then -- set these COinS values if |first= and |last= specify the first author name
OCinSoutput["rft.aulast"] = last; -- book, journal, dissertation
OCinSoutput["rft.aufirst"] = first; -- book, journal, dissertation
elseif is_set(last) then
OCinSoutput["rft.au"] = last; -- book, journal, dissertation -- otherwise use this form for the first name
end
else -- for all other authors
if is_set(last) and is_set(first) then
OCinSoutput["rft.au"] = table.concat{ last, ", ", first }; -- book, journal, dissertation
elseif is_set(last) then
OCinSoutput["rft.au"] = last; -- book, journal, dissertation
end
-- TODO: At present we do not report "et al.". Add anything special if this condition applies?
end
end
OCinSoutput.rft_id = data.URL;
OCinSoutput.rfr_id = table.concat{ "info:sid/", mw.site.server:match( "[^/]*$" ), ":", data.RawPage };
-- TODO: Add optional extra info:
-- rfr_dat=#REVISION<version> (referrer private data)
-- ctx_id=<data.RawPage>#<ref> (identifier for the context object)
-- ctx_tim=<ts> (timestamp in format yyyy-mm-ddThh:mm:ssTZD or yyyy-mm-dd)
-- ctx_enc=info:ofi/enc:UTF-8 (character encoding)
OCinSoutput = setmetatable( OCinSoutput, nil );
-- sort with version string always first, and combine.
-- table.sort( OCinSoutput );
table.insert( OCinSoutput, 1, "ctx_ver=" .. ctx_ver ); -- such as "Z39.88-2004"
return table.concat(OCinSoutput, "&");
end
--[[--------------------------< S E T _ S E L E C T E D _ M O D U L E S >--------------------------------------
Sets local cfg table and imported functions table to same (live or sandbox) as that used by the other modules.
]]
local function set_selected_modules (cfg_table_ptr, utilities_page_ptr)
cfg = cfg_table_ptr;
has_accept_as_written = utilities_page_ptr.has_accept_as_written; -- import functions from selected Module:Citation/CS1/Utilities module
is_set = utilities_page_ptr.is_set;
in_array = utilities_page_ptr.in_array;
remove_wiki_link = utilities_page_ptr.remove_wiki_link;
strip_apostrophe_markup = utilities_page_ptr.strip_apostrophe_markup;
end
--[[--------------------------< E X P O R T E D F U N C T I O N S >------------------------------------------
]]
return {
make_coins_title = make_coins_title,
get_coins_pages = get_coins_pages,
COinS = COinS,
set_selected_modules = set_selected_modules,
}
srl5mkrfu1cyw2h4vy41jea3p6nap1r
Module:Citation/CS1/sandbox/styles.css
828
1638
15103
2022-07-17T13:39:43Z
Kambai Akau
15
Created page with "/* History of changes since last sync: 2022-01-22 */ /* Protection icon the following line controls the page-protection icon in the upper right corner it must remain within this comment {{sandbox other||{{pp-template}}}} */ /* Overrides Some wikis do not override user agent default styles for HTML <cite> and <q>, unlike en.wp. On en.wp, keep these the same as [[MediaWiki:Common.css]]. The word-wrap and :target styles were moved here from Common.css. On en.wp, keep..."
sanitized-css
text/css
/*
History of changes since last sync: 2022-01-22
*/
/* Protection icon
the following line controls the page-protection icon in the upper right corner
it must remain within this comment
{{sandbox other||{{pp-template}}}}
*/
/* Overrides
Some wikis do not override user agent default styles for HTML <cite> and <q>,
unlike en.wp. On en.wp, keep these the same as [[MediaWiki:Common.css]].
The word-wrap and :target styles were moved here from Common.css.
On en.wp, keep these the same as [[Template:Citation/styles.css]].
*/
cite.citation {
font-style: inherit; /* Remove italics for <cite> */
/* Break long urls, etc., rather than overflowing box */
word-wrap: break-word;
}
.citation q {
quotes: '"' '"' "'" "'"; /* Straight quote marks for <q> */
}
/* Highlight linked elements (such as clicked references) in blue */
.citation:target {
/* ignore the linter - all browsers of interest implement this */
background-color: rgba(0, 127, 255, 0.133);
}
/* ID and URL access
Both core and Common.css have selector .mw-parser-output a[href$=".pdf"].external
for PDF pages. All TemplateStyles pages are hoisted to .mw-parser-output. We need
to have specificity equal to a[href$=".pdf"].external for locks to override PDF icon.
That's essentially 2 classes and 1 element.
the .id-lock-... selectors are for use by non-citation templates like
{{Catalog lookup link}} which do not have to handle PDF links
*/
.id-lock-free a,
.citation .cs1-lock-free a {
background: linear-gradient(transparent, transparent),
url(//upload.wikimedia.org/wikipedia/commons/6/65/Lock-green.svg)
right 0.1em center/9px no-repeat;
}
.id-lock-limited a,
.id-lock-registration a,
.citation .cs1-lock-limited a,
.citation .cs1-lock-registration a {
background: linear-gradient(transparent, transparent),
url(//upload.wikimedia.org/wikipedia/commons/d/d6/Lock-gray-alt-2.svg)
right 0.1em center/9px no-repeat;
}
.id-lock-subscription a,
.citation .cs1-lock-subscription a {
background: linear-gradient(transparent, transparent),
url(//upload.wikimedia.org/wikipedia/commons/a/aa/Lock-red-alt-2.svg)
right 0.1em center/9px no-repeat;
}
/* Wikisource
Wikisource icon when |chapter= or |title= is wikilinked to Wikisource
as in cite wikisource
*/
.cs1-ws-icon a {
background: linear-gradient(transparent, transparent),
url(//upload.wikimedia.org/wikipedia/commons/4/4c/Wikisource-logo.svg)
right 0.1em center/12px no-repeat;
}
/* Errors and maintenance */
.cs1-code {
/* <code>...</code> style override: mediawiki's css definition is specified here:
https://git.wikimedia.org/blob/mediawiki%2Fcore.git/
69cd73811f7aadd093050dbf20ed70ef0b42a713/skins%2Fcommon%2FcommonElements.css#L199
*/
color: inherit;
background: inherit;
border: none;
padding: inherit;
}
.cs1-hidden-error {
display: none;
color: #d33;
}
.cs1-visible-error {
color: #d33;
}
.cs1-maint {
display: none;
color: #3a3;
margin-left: 0.3em;
}
/* Small text size
Set small text size in one place. 0.95 (here) * 0.9 (from references list) is
~0.85, which is the lower bound for size for accessibility. Old styling for this
was just 0.85. We could write the rule so that when this template is inside
references/reflist, only then does it multiply by 0.95; else multiply by 0.85 */
.cs1-format {
font-size: 95%;
}
/* kerning */
.cs1-kern-left {
padding-left: 0.2em;
}
.cs1-kern-right {
padding-right: 0.2em;
}
/* selflinks – avoid bold font style when cs1|2 template links to the current page */
.citation .mw-selflink {
font-weight: inherit;
}
255fhh362b0iuzqumanz7xl8kv3rvpg
Module:Citation/CS1/Suggestions/sandbox
828
1639
15104
2022-07-17T13:42:58Z
Kambai Akau
15
Created page with "--[[ History of changes since last sync: 2022-07-01 TO DO: Provide suggestions for template-specific errors, e.g. suggest "title" for the erroneous "book-title" when used outside of Cite conference. ]] -- Please insert new suggestions in alphabetical order -- The form is ['incorrect'] = 'correct', suggestions = { ['ASIN-TLD'] = 'asin-tld', -- old parameter name ['abruf'] = 'access-date', -- German ['abruf-verborgen'] = 'access-date',..."
Scribunto
text/plain
--[[
History of changes since last sync: 2022-07-01
TO DO: Provide suggestions for template-specific errors, e.g. suggest "title" for the erroneous "book-title" when used outside of Cite conference.
]]
-- Please insert new suggestions in alphabetical order
-- The form is ['incorrect'] = 'correct',
suggestions = {
['ASIN-TLD'] = 'asin-tld', -- old parameter name
['abruf'] = 'access-date', -- German
['abruf-verborgen'] = 'access-date', -- German
['accessmonth'] = 'access-date',
['accesso'] = 'access-date', -- Italian
['accessyear'] = 'access-date',
['acessodata'] = 'access-date', -- Brazilian Portuguese
['ad'] = 'first', -- Turkish
['address'] = 'location',
['anno'] = 'date', -- Italian
['annoaccesso'] = 'access-date', -- Italian
['annodiaccesso'] = 'access-date', -- Italian
['annooriginale'] = 'orig-date', -- Italian
['année'] = 'date', -- French
['apellido'] = 'last', -- Spanish
['apellidos'] = 'last', -- Spanish
['archiv-datum'] = 'archive-date', -- German
['archiv-url'] = 'archive-url', -- German
['archive date'] = 'archive-date',
['archive url'] = 'archive-url', -- Spanish
['archive-link'] = 'archive-url',
['artikelnr'] = 'id', -- German (as 'id=Article No. ...')
['artist'] = 'others',
['arşiv-tarihi'] = 'archive-date', -- Turkish
['arşiv-url'] = 'archive-url', -- Turkish
['arşivtarihi'] = 'archive-date', -- Turkish
['arşivurl'] = 'archive-url', -- Turkish
['auflage'] = 'edition', -- German
['auteur'] = 'author', -- French
['auther'] = 'author',
['author link'] = 'author-link', -- Polish
['authorfirst'] = 'author-first', -- old parameter name
['authorgiven'] = 'author-given', -- old parameter name
['authorlast'] = 'author-last', -- old parameter name
['authormask'] = 'author-mask', -- old parameter name
['authorsurname'] = 'author-surname', -- old parameter name
['autor'] = 'author', -- Spanish, German (singular and plural)
['autore'] = 'author', -- Italian
['autthor'] = 'author',
['ay'] = 'month', -- Turkish
['año'] = 'date', -- Spanish
['año-original'] = 'orig-date', -- Spanish
['añoacceso'] = 'access-date', -- Spanish
['añooriginal'] = 'orig-date', -- Spanish
['band'] = 'volume', -- German
['bandreihe'] = 'volume', -- German
['baskı'] = 'edition', -- Turkish
['başlık'] = 'title', -- Turkish
['began'] = 'date', -- old parameter name (cite serial only); or orig-date=
['booktitle'] = 'book-title', -- old parameter name
['ch'] = 'language', -- German (as 'language=de-CH')
['chapter_title'] = 'chapter',
['chapterurl'] = 'chapter-url', -- old parameter name
['cid'] = 'ref', -- Italian
['cilt'] = 'volume', -- Turkish
['cita'] = 'quote', -- Spanish
['citazione'] = 'quote', -- Italian
['città'] = 'location', -- Italian
['city'] = 'location', -- old parameter name (cite serial only)
['coauthor'] = 'author',
['coauthors'] = 'author',
['coautores'] = 'author', -- Spanish
['coautori'] = 'author', -- Italian
['cognome'] = 'last', -- Italian
['conferenceurl'] = 'conference-url', -- old parameter name
['consulté le'] = 'access-date', -- French
['contributionurl'] = 'contribution-url', -- old parameter name
['curatore'] = 'publisher', -- Italian
['czasopismo'] = 'journal', -- Polish
['data dostępu'] = 'access-date', -- Polish
['data'] = 'date', -- Polish, Italian
['dataaccesso'] = 'access-date', -- Italian
['dataarchivio'] = 'archive-date', -- Italian
['datum'] = 'date', -- German
['dead-url'] = 'url-status', -- old parameter name
['deadlink'] = 'url-status',
['deadurl'] = 'url-status', -- old parameter name
['dergi'] = 'work', -- Turkish
['dil'] = 'language', -- Turkish
['displayauthors'] = 'display-authors', -- old parameter name
['displayeditors'] = 'display-editors', -- old parameter name
['distributor'] = 'publisher',
['dnb'] = 'id', -- German (as 'id={{DNB-IDN|...}}')
['doi-broken'] = 'doi-broken-date', -- old parameter alias
['doi-inactive'] = 'doi-broken-date', -- invalid name found in mainspace
['doi-inactive-date'] = 'doi-broken-date', -- old parameter alias
['doi_brokendate'] = 'doi-broken-date', -- old parameter alias
['doi_inactivedate'] = 'doi-inactive-date', -- old parameter alias
['doibroken'] = 'doi-broken-date', -- invalid name found in mainspace
['doiinactive'] = 'doi-broken-date', -- invalid name found in mainspace
['e-print'] = 'eprint', -- misspelling
-- ['ed'] = 'edition', -- avoid suggestion as in English this could be short for editor or edition
-- ['editora'] = 'publisher', -- can be either editor or publisher
-- ['editore'] = 'agency', -- can be either publisher or agency
-- ['editori'] = 'editor', -- can be either editor or publisher
-- ['editorial'] = 'publisher', -- can be either publisher or work
['editoin'] = 'edition', -- misspelling
['editon'] = 'edition', -- misspelling
['editorfirst'] = 'editor-first', -- old parameter name
['editorgiven'] = 'editor-given', -- old parameter name
['editorlast'] = 'editor-last', -- old parameter name
['editorlink'] = 'editor-link', -- old parameter name
['editormask'] = 'editor-mask', -- old parameter name
['editors'] = 'editor', -- old parameter name (can be emulated using multiple singular |editor= params)
['editorsurname'] = 'editor-surname', -- old parameter name
['edizione'] = 'edition', -- Italian
['embargo'] = 'pmc-embargo-date', -- old parameter name
['ended'] = 'date', -- old parameter name (cite serial only)
['en ligne le'] = 'archive-date', -- French
['encyclopædia'] = 'encyclopedia',
['enlaceautor'] = 'author-link', -- Spanish
['enlaceroto'] = 'url-status', -- Spanish
['episodelink'] = 'episode-link', -- old parameter name
['erişimtarihi'] = 'access-date', -- Turkish
['eser'] = 'work', -- Turkish
['family'] = 'surname', -- misguess
['fecha'] = 'date', -- Spanish
['fechaacceso'] = 'access-date', -- Spanish
['fechaarchivo'] = 'archive-date', -- Spanish
['filetype'] = 'format',
['foramt'] = 'format', -- misspelling
['fore-name'] = 'given', -- misguess/misspelling
['forename'] = 'given', -- misguess
['formato'] = 'format', -- Spanish, Italian, Polish
['frist'] = 'first', -- misspelling
['fundstelle'] = 'at', -- German
['gazete'] = 'work', -- Turkish
['giornale'] = 'journal', -- Italian
['herausgeber'] = 'editor', -- German (singular and plural)
['hrsg'] = 'publisher', -- German
['hrsgreihe'] = 'editor', -- German
['idioma'] = 'language', -- Spanish
['ignore-isbn-error'] = 'isbn', -- old parameter (can be fully emulated using ((syntax)))
['ignoreisbnerror'] = 'isbn', -- old parameter alias (suggest |isbn as |ignore-isbn-error is deprecated), not a direct replacement, but can be fully emulated using ((syntax))
['imię'] = 'first', -- Polish
['in-set'] = 'inset', -- misspelling
['interviewerlink'] = 'interviewer-link', -- old parameter alias
['interviewermask'] = 'interviewer-mask', -- old parameter alias
['isbndefekt'] = 'isbn', -- German (suggest |isbn as |ignore-isbn-error is deprecated), not a direct replacement, but can be fully emulated using ((syntax))
['isbnformalfalsch'] = 'isbn', -- German (suggest |isbn as |ignore-isbn-error is deprecated), not a direct replacement, but can be fully emulated using ((syntax))
['isbnistformalfalsch'] = 'isbn', -- German (suggest |isbn as |ignore-isbn-error is deprecated), not a direct replacement, but can be fully emulated using ((syntax))
['isnb'] = 'isbn', -- misspelling
['issnformalfalsch'] = 'issn', -- German (can be fully emulated using ((syntax)))
['jahr'] = 'date', -- German
['jahrea'] = 'orig-date', -- German (not a direct replacement, but can be emulated)
['kapitel'] = 'chapter', -- German
['langauge'] = 'language', -- misspelling
['langue'] = 'language', -- French
['last-author-amp'] = 'name-list-style', -- old parameter name (as |name-list-style=amp)
['lastauthoramp'] = 'name-list-style', -- old parameter name (as |name-list-style=amp)
['lieu'] = 'location', -- French
['lingua'] = 'language', -- Italian
['lire en ligne'] = 'url', -- French
['lizenznummer'] = 'id', -- German (as 'id=License No. ...')
['loaction'] = 'location', -- misspelling
['local'] = 'location', -- Brazilian Portuguese
['locatoin'] = 'location', -- misspelling
['lugar'] = 'location', -- Spanish
['mailinglist'] = 'mailing-list', -- old parameter name
['mapurl'] = 'map-url', -- old parameter name
['mes'] = 'date', -- Spanish (not a direct replacement)
['mese'] = 'date', -- Italian (not a direct replacement)
['miejsce'] = 'location', -- Polish
['miesiąc'] = 'date', -- Polish
['mois'] = 'date', -- French
['monat'] = 'date', -- German
-- ['name'] = 'author', -- 'name' is often erroneously used for 'title' and 'work' as well, so no suggestion is better than a wrong suggestion
['name-list-format'] = 'name-list-style', -- old parameter name (as |name-list-style=amp)
['nazwisko'] = 'last', -- Polish
['nespaper'] = 'newspaper', -- misspelling
['net-work'] = 'network', -- misspelling
['newpaper'] = 'newspaper', -- misspelling
['news'] = 'newspaper',
['news-group'] = 'newsgroup', -- misspelling
['news-paper'] = 'newspaper', -- misspelling
['no-cat'] = 'no-tracking', -- old parameter
['nocat'] = 'no-tracking', -- old parameter
['nom'] = 'last', -- French
['nombre'] = 'first', -- Spanish
['nome'] = 'first', -- Italian
['nopp'] = 'no-pp', -- old parameter name
['notracking'] = 'no-tracking', -- old parameter
['numero'] = 'number', -- Italian, Spanish
['nummer'] = 'number', -- German
['nummerreihe'] = 'number', -- German
['obra'] = 'work', -- Spanish
['odpowiedzialność'] = 'agency', -- Polish
['offline'] = 'url-status', -- German (as 'url-status=dead')
['online'] = 'url', -- German (not a direct replacement, but can be emulated)
['opera'] = 'work', -- Italian
['opublikowany'] = 'agency', -- Polish
['origdate'] = 'orig-date', -- misspelling
['originaljahr'] = 'orig-date', -- German
['originalort'] = 'publication-place', -- German
['originalsprache'] = 'language', -- German
['originaltitel'] = 'title', -- German (if 'originaltitel' is specified, any possible contents of 'title' should be put in 'trans-title')
['ort'] = 'publication-place', -- German
['ortea'] = 'publication-place', -- German (not a direct replacement, but can be emulated)
['other'] = 'others',
['oznaczenie'] = 'agency', -- Polish
['pagees'] = 'pages', -- misspelling
['pagina'] = 'page', -- Italian
['pagina'] = 'pages', -- Italian
['pagine'] = 'pages', -- Italian
['pagine'] = 'pages', -- Italian
['passage'] = 'pages', -- French
['periodico'] = 'magazine', -- Spanish
['plublisher'] = 'publisher', -- misspelling
['pmcid'] = 'pmc',
['post-script'] = 'postscript', -- misspelling
['praca'] = 'work', -- Polish
['primero'] = 'first', -- Spanish
['prénom'] = 'first', -- French
['prénom1'] = 'first1', -- French
['ps'] = 'postscript',
['pub'] = 'publisher',
-- ['pubblicazione'] = 'magazine', -- could be any kind of work
-- ['publicación'] = 'journal', -- could be any kind of work
['publicationdate'] = 'publication-date', -- old parameter name
-- ['published'] = 'publisher', -- could be date, location, or name of publisher
['publicationplace'] = 'publication-place', -- old parameter name
['pulbication-place'] = 'publication-place', -- misspelling
['página'] = 'page', -- Spanish
['páginas'] = 'pages', -- Spanish
['périodique'] = 'publisher', -- French
['registration'] = 'url-access', -- old parameter name
['reihe'] = 'series', -- German
['retrieved'] = 'access-date',
['richiestasottoscrizione'] = 'url-access', -- Italian (as |url-access=subscription)
['rok'] = 'date', -- Polish
['sammelwerk'] = 'work', -- German
['sayfa'] = 'page', -- Turkish
['sayfalar'] = 'pages', -- Turkish
['sayı'] = 'issue', -- Turkish
['script-post'] = 'postscript', -- misspelling
['script-trans'] = 'transcript', -- misspelling
['season'] = 'date', -- old parameter name (cite serial only)
['sectionurl'] = 'section-url', -- old parameter name
['seiten'] = 'pages', -- German
['seria'] = 'series', -- Spanish, Polish
['serie'] = 'series', -- Italian
['série'] = 'series', -- French
['serieslink'] = 'series-link', -- old parameter name
['seriesno'] = 'series-number', -- old parameter name
['service'] = 'agency',
['sitioweb'] = 'website', -- Spanish
['sito'] = 'website', -- Italian
['soyadı'] = 'last', -- Turkish
['spalten'] = 'at', -- German (not a direct replacement, but can be emulated)
['sprache'] = 'language', -- German
['stron'] = 'page', -- Polish
['strony'] = 'pages', -- Polish
['subjectlink'] = 'subject-link', -- old parameter name
['subscription'] = 'url-access', -- old parameter name (emulated as |url-access=subscription)
['sur-name'] = 'surname', -- misspelling
['suscripción'] = 'url-access', -- Spanish, Polish (as |url-access=subscription)
['tag'] = 'date', -- German
['tarih'] = 'date', -- Turkish
['template doc demo'] = 'no-tracking', -- old parameter alias
['tile'] = 'title', -- misspelling
['timecaption'] = 'time-caption', -- old parameter name
['titlelink'] = 'title-link', -- old parameter name
['tipo'] = 'type', -- Italian
['tite'] = 'title', -- misspelling
['titel'] = 'title', -- German
['titel-p'] = 'title', -- German ('postscript=none' should be added as well)
['titelerg'] = 'contribution', -- German (not a direct replacement, but can be emulated)
['titled'] = 'title', -- Brazilian Portuguese
['titolo'] = 'title', -- Italian
['titre'] = 'title', -- French
['trans-script'] = 'transcript', -- misspelling
['trans_chapter'] = 'trans-chapter', -- old parameter alias
['trans_title'] = 'trans-title', -- old parameter alias
['transchapter'] = 'trans-chapter',
['transcripturl'] = 'transcript-url', -- old parameter name
['transscript'] = 'transcript', -- misspelling
['transscript-format'] = 'transcript-format', -- misspelling
['transscript-url'] = 'transcript-url', -- misspelling
['transscripturl'] = 'transcript-url', -- misspelling
['transtitle'] = 'trans-title',
['typ'] = 'author-mask', -- German (not a direct replacement, but the only valid argument 'typ=wl' can be emulated using 'author-mask')
['tytuł'] = 'title', -- Polish
['títle'] = 'title',
['título'] = 'title', -- Spanish
['ubicación'] = 'location', -- Spanish
['urlarchivio'] = 'archive-url', -- Italian
['urlarchivo'] = 'archive-url', -- Spanish
['urlmorto'] = 'url-status', -- Italian
['urn'] = 'id', -- German (as 'id={{URN|...}}')
['v-authors'] = 'vauthors', -- misspelling
['v-editors'] = 'veditors', -- misspelling
['verlag'] = 'publisher', -- German
['verlagea'] = 'publisher', -- German (not a direct replacement, but can be emulated)
['vol'] = 'volume',
['volumen'] = 'volume', -- Spanish
['werk'] = 'work', -- German
['werkerg'] = 'contribution', -- German (not a direct replacement, but can be emulated)
['wkautore'] = 'author-link', -- Italian
['wolumin'] = 'volume', -- Polish
['wydanie'] = 'number', -- Polish
['wydawca'] = 'publisher', -- French
['yardımcıyazarlar'] = 'author', -- Turkish
['yayımcı'] = 'publisher', -- Turkish
['yayıncı'] = 'publisher', -- Turkish
['yazar'] = 'author', -- Turkish
['yazarbağı'] = 'author-link', -- Turkish
['yer'] = 'location', -- Turkish
['yıl'] = 'date', -- Turkish
['zaprezentowany'] = 'publisher', -- French
['zdb'] = 'id', -- German (as 'id={{ZDB|...}}')
['zitat'] = 'quote', -- German
['zugriff'] = 'access-date', -- German
['éditeur'] = 'editor', -- French
['ölüurl'] = 'url-status', -- Turkish
['übersetzer'] = 'translator', -- German (singular and plural)
}
--[[--------------------------< P A T T E R N S >--------------------------------------------------------------
Here we use Lua patterns to make suggestions. The form is
['pattern'] = 'correct',
Lua patterns are not REGEX though they are similar. The escape character is '%', not '\'.
For more information about Lua patterns, see: Extension:Scribunto/Lua_reference_manual#Patterns
Patterns should probably always include the '^' and '$' anchor assertions to prevent a partial
match from incorrectly suggesting the wrong parameter name. For instance, the pattern 'a[utho]+r'
matches 'author' in the no-longer-supported parameter |author-separator= so the code suggests
'|author='; the same pattern also matches the no-longer-supported parameter |separator= (returning 'ator')
so again, the code suggests '|author='.
One capture is supported, typically the enumerator from an enumerated parameter (the '6' in |author6=, etc.)
The value from the capture replaces $1 in the 'correct' value.
]]
local patterns = {
['^ac+es+ ?d?a?t?e?$'] = 'access-date', -- misspelling
['^apellido[s]?(%d+)$'] = 'last$1', -- Spanish, enumerated
['^a[utho]+r$'] = 'author', -- misspelling
['^a[utho]+r(%d+)$'] = 'author$1', -- misspelling, enumerated
['^author link(%d+)$'] = 'author-link$1', -- Polish, enumerated
['^autor[e]?(%d+)$'] = 'author$1', -- Italian/Spanish/German, enumerated
['^authorfirst(%d+)$'] = 'author-first$1', -- old parameter name, enumerated
['^author(%d+)first$'] = 'author-first$1', -- old parameter name, enumerated
['^authorgiven(%d+)$'] = 'author-given$1', -- old parameter name, enumerated
['^author(%d+)given$'] = 'author-given$1', -- old parameter name, enumerated
['^authorlast(%d+)$'] = 'author-last$1', -- old parameter name, enumerated
['^author(%d+)last$'] = 'author-last$1', -- old parameter name, enumerated
['^authormask(%d+)$'] = 'author-mask$1', -- old parameter name, enumerated
['^author(%d+)mask$'] = 'author-mask$1', -- old parameter name, enumerated
['^authorsurname(%d+)$'] = 'author-surname$1', -- old parameter name, enumerated
['^author(%d+)surname$'] = 'author-surname$1', -- old parameter name, enumerated
['^cognome(%d+)$'] = 'last$1', -- Italian, enumerated
['^editorfirst(%d+)$'] = 'editor-first$1', -- old parameter name, enumerated
['^editor(%d+)first$'] = 'editor-first$1', -- old parameter name, enumerated
['^editorgiven(%d+)$'] = 'editor-given$1', -- old parameter name, enumerated
['^editor(%d+)given$'] = 'editor-given$1', -- old parameter name, enumerated
['^editorlast(%d+)$'] = 'editor-last$1', -- old parameter name, enumerated
['^editor(%d+)last$'] = 'editor-last$1', -- old parameter name, enumerated
['^editorlink(%d+)$'] = 'editor-link$1', -- old parameter name, enumerated
['^editor(%d+)link$'] = 'editor-link$1', -- old parameter name, enumerated
['^editormask(%d+)$'] = 'editor-mask$1', -- old parameter name, enumerated
['^editor(%d+)mask$'] = 'editor-mask$1', -- old parameter name, enumerated
['^editorsurname(%d+)$'] = 'editor-surname$1', -- old parameter name, enumerated
['^editor(%d+)surname$'] = 'editor-surname$1', -- old parameter name, enumerated
['^enlaceautore(%d+)$'] = 'author-link$1', -- Spanish, enumerated
['^first (%d+)$'] = 'first$1', -- enumerated
['^last (%d+)$'] = 'last$1', -- enumerated
['^nom[e]?(%d+)$'] = 'last$1', -- Italian/French, enumerated
['^nombre(%d+)$'] = 'first$1', -- Spanish, enumerated
['^primero(%d+)$'] = 'first$1', -- Spanish, enumerated
['^pu[blish]+ers?$'] = 'publisher', -- misspelling
['^subjectlink(%d+)$'] = 'subject-link$1', -- old parameter name, enumerated
['^subject(%d+)link$'] = 'subject-link$1', -- old parameter name, enumerated
['^wkautore(%d+)$'] = 'author-link$1', -- Italian, enumerated
}
return {suggestions = suggestions, patterns=patterns};
3cvv8ckqf8tcqk3vvnr3nxo67yeviho
Ta̱mpi̱let:Webarchive
10
1640
15105
2022-07-17T13:54:17Z
Kambai Akau
15
Created page with "<includeonly>{{#invoke:webarchive|webarchive}}</includeonly><noinclude> {{documentation}} <!-- PLEASE ADD CATEGORIES AND INTERWIKIS TO THE /doc SUBPAGE, THANKS --> </noinclude>"
wikitext
text/x-wiki
<includeonly>{{#invoke:webarchive|webarchive}}</includeonly><noinclude>
{{documentation}}
<!-- PLEASE ADD CATEGORIES AND INTERWIKIS TO THE /doc SUBPAGE, THANKS -->
</noinclude>
af0jh9wqwfjf3uyx3ywwvb039disnpm
Ta̱mpi̱let:Webarchive/doc
10
1641
15106
2022-07-17T13:55:00Z
Kambai Akau
15
Created page with "{{Documentation subpage}} {{high-risk}} {{info|1=This template is intended for [[Wikipedia:External links|external links]]. It is not designed for use as a [[Wikipedia:Citation templates|citation template]].}} {{lua|Module:Webarchive|Module:Webarchive/data}} {{tl|{{BASEPAGENAME}}}} is for linking to web archiving services such as the [[Wayback Machine]], [[WebCite]] and [[List of Web archiving initiatives|all other web archiving services]]. This template is a replace..."
wikitext
text/x-wiki
{{Documentation subpage}}
{{high-risk}}
{{info|1=This template is intended for [[Wikipedia:External links|external links]]. It is not designed for use as a [[Wikipedia:Citation templates|citation template]].}}
{{lua|Module:Webarchive|Module:Webarchive/data}}
{{tl|{{BASEPAGENAME}}}} is for linking to web archiving services such as the [[Wayback Machine]], [[WebCite]] and [[List of Web archiving initiatives|all other web archiving services]].
This template is a replacement for {{tld|wayback}}, {{tld|webcite}}, {{tld|memento}} and {{tld|cite archives}}.
An alternative way to include a link to an archived copy of a page in a reference to a source is to use one of the many variants of the {{tl|citation}} template such as {{tld|cite web}}, with the <code>archive-url, archive-date, and url-status</code> parameters.
1go4vjmbk92t1nbzjpa8nz126f4z0g5
Ta̱mpi̱let:Tld
10
1642
15108
15107
2022-07-17T14:00:21Z
Kambai Akau
15
Redirected page to [[Ta̱mpi̱let:Tlg]]
wikitext
text/x-wiki
#REDIRECT [[Template:Tlg]]
pp71eza8eh8ayr22wlgumgbzyia1rqv
Ta̱mpi̱let:Tlg
10
1643
15109
2022-07-17T14:00:34Z
Kambai Akau
15
Created page with "<includeonly>{{#Invoke:Template link general|main|nolink=yes|code=yes|nowrap=yes}}</includeonly><noinclude> {{Documentation|1=Template:Tlg/doc |content = {{tlg/doc|tlc}} }} <!-- Add categories to the /doc subpage, not here! --> </noinclude>"
wikitext
text/x-wiki
<includeonly>{{#Invoke:Template link general|main|nolink=yes|code=yes|nowrap=yes}}</includeonly><noinclude>
{{Documentation|1=Template:Tlg/doc
|content = {{tlg/doc|tlc}}
}}
<!-- Add categories to the /doc subpage, not here! -->
</noinclude>
0i49ncdivj3996big2nh593ty7aspr8
Ta̱mpi̱let:Tlg/doc
10
1644
15110
2022-07-17T14:01:30Z
Kambai Akau
15
Created page with "{Documentation subpage}} <!-- PLEASE ADD CATEGORIES WHERE INDICATED AT THE BOTTOM OF THIS PAGE --> {{#ifeq:{{FULLPAGENAME}}|Template:Template link with subst|{{used in system}}| {{#ifexpr:{{#invoke:Transclusion count|fetch|0}} > 2000|{{high-use}}}}}} {{tsh|{{{1|tlg}}}|{{{2|}}}}} {{lua|Module:Template link general}} This template, often abbreviated as {{tlf|{{#switch:{{lc:{{ROOTPAGENAME}}}} | tlg | template link general = tlg | tlb | template link with bold = tlb | tlc |..."
wikitext
text/x-wiki
{Documentation subpage}}
<!-- PLEASE ADD CATEGORIES WHERE INDICATED AT THE BOTTOM OF THIS PAGE -->
{{#ifeq:{{FULLPAGENAME}}|Template:Template link with subst|{{used in system}}|
{{#ifexpr:{{#invoke:Transclusion count|fetch|0}} > 2000|{{high-use}}}}}}
{{tsh|{{{1|tlg}}}|{{{2|}}}}}
{{lua|Module:Template link general}}
This template, often abbreviated as {{tlf|{{#switch:{{lc:{{ROOTPAGENAME}}}}
| tlg | template link general = tlg
| tlb | template link with bold = tlb
| tlc | template link code = tlc
| tlw ||template link with linked braces = tlw
| tlf | template link with link off = tlf
| tltss | template link with title span, subst = tltss
| tlx | template link expanded = tlx
| tlxb | template link expanded with bold = tlxb
| tlxi | template link expanded with italic = tlxi
| tlxs | template link expanded with subst = tlxs
| tls | template link with subst = tls
| tnull | template link null = tnull
| tlp | template link with parameters = tlp}}
}}, is used to provide stylized formatting to template displays without actually using the template itself.
inknimoqrmw3x19yifbwnpwaj48o91i
Module:Template link general
828
1645
15111
2022-07-17T14:03:26Z
Kambai Akau
15
Created page with "-- This implements Template:Tlg local getArgs = require('Module:Arguments').getArgs local p = {} -- Is a string non-empty? local function _ne(s) return s ~= nil and s ~= "" end local nw = mw.text.nowiki local function addTemplate(s) local i, _ = s:find(':', 1, true) if i == nil then return 'Template:' .. s end local ns = s:sub(1, i - 1) if ns == '' or mw.site.namespaces[ns] then return s else return 'Template:' .. s end end local function trimTemplate(..."
Scribunto
text/plain
-- This implements Template:Tlg
local getArgs = require('Module:Arguments').getArgs
local p = {}
-- Is a string non-empty?
local function _ne(s)
return s ~= nil and s ~= ""
end
local nw = mw.text.nowiki
local function addTemplate(s)
local i, _ = s:find(':', 1, true)
if i == nil then
return 'Template:' .. s
end
local ns = s:sub(1, i - 1)
if ns == '' or mw.site.namespaces[ns] then
return s
else
return 'Template:' .. s
end
end
local function trimTemplate(s)
local needle = 'template:'
if s:sub(1, needle:len()):lower() == needle then
return s:sub(needle:len() + 1)
else
return s
end
end
local function linkTitle(args)
if _ne(args.nolink) then
return args['1']
end
local titleObj
local titlePart = '[['
if args['1'] then
-- This handles :Page and other NS
titleObj = mw.title.new(args['1'], 'Template')
else
titleObj = mw.title.getCurrentTitle()
end
titlePart = titlePart .. (titleObj ~= nil and titleObj.fullText or
addTemplate(args['1']))
local textPart = args.alttext
if not _ne(textPart) then
if titleObj ~= nil then
textPart = titleObj:inNamespace("Template") and args['1'] or titleObj.fullText
else
-- redlink
textPart = args['1']
end
end
if _ne(args.subst) then
-- HACK: the ns thing above is probably broken
textPart = 'subst:' .. textPart
end
if _ne(args.brace) then
textPart = nw('{{') .. textPart .. nw('}}')
elseif _ne(args.braceinside) then
textPart = nw('{') .. textPart .. nw('}')
end
titlePart = titlePart .. '|' .. textPart .. ']]'
if _ne(args.braceinside) then
titlePart = nw('{') .. titlePart .. nw('}')
end
return titlePart
end
function p.main(frame)
local args = getArgs(frame, {
trim = true,
removeBlanks = false
})
return p._main(args)
end
function p._main(args)
local bold = _ne(args.bold) or _ne(args.boldlink) or _ne(args.boldname)
local italic = _ne(args.italic) or _ne(args.italics)
local dontBrace = _ne(args.brace) or _ne(args.braceinside)
local code = _ne(args.code) or _ne(args.tt)
local show_result = _ne(args._show_result)
local expand = _ne(args._expand)
-- Build the link part
local titlePart = linkTitle(args)
if bold then titlePart = "'''" .. titlePart .. "'''" end
if _ne(args.nowrapname) then titlePart = '<span class="nowrap">' .. titlePart .. '</span>' end
-- Build the arguments
local textPart = ""
local textPartBuffer = "|"
local codeArguments = {}
local codeArgumentsString = ""
local i = 2
local j = 1
while args[i] do
local val = args[i]
if val ~= "" then
if _ne(args.nowiki) then
-- Unstrip nowiki tags first because calling nw on something that already contains nowiki tags will
-- mangle the nowiki strip marker and result in literal UNIQ...QINU showing up
val = nw(mw.text.unstripNoWiki(val))
end
local k, v = string.match(val, "(.*)=(.*)")
if not k then
codeArguments[j] = val
j = j + 1
else
codeArguments[k] = v
end
codeArgumentsString = codeArgumentsString .. textPartBuffer .. val
if italic then
val = '<span style="font-style:italic;">' .. val .. '</span>'
end
textPart = textPart .. textPartBuffer .. val
end
i = i + 1
end
-- final wrap
local ret = titlePart .. textPart
if not dontBrace then ret = nw('{{') .. ret .. nw('}}') end
if _ne(args.a) then ret = nw('*') .. ' ' .. ret end
if _ne(args.kbd) then ret = '<kbd>' .. ret .. '</kbd>' end
if code then
ret = '<code>' .. ret .. '</code>'
elseif _ne(args.plaincode) then
ret = '<code style="border:none;background:transparent;">' .. ret .. '</code>'
end
if _ne(args.nowrap) then ret = '<span class="nowrap">' .. ret .. '</span>' end
--[[ Wrap as html??
local span = mw.html.create('span')
span:wikitext(ret)
--]]
if _ne(args.debug) then ret = ret .. '\n<pre>' .. mw.text.encode(mw.dumpObject(args)) .. '</pre>' end
if show_result then
local result = mw.getCurrentFrame():expandTemplate{title = addTemplate(args[1]), args = codeArguments}
ret = ret .. " → " .. result
end
if expand then
local query = mw.text.encode('{{' .. addTemplate(args[1]) .. string.gsub(codeArgumentsString, textPartBuffer, "|") .. '}}')
local url = mw.uri.fullUrl('special:ExpandTemplates', 'wpInput=' .. query)
mw.log()
ret = ret .. " [" .. tostring(url) .. "]"
end
return ret
end
return p
n9mqsaqf536os0lov5na5yuqoibbr4y
Module:Template link general/doc
828
1646
15112
2022-07-17T14:04:16Z
Kambai Akau
15
Created page with "{{used in system}} {{Module rating|protected}} {{Lua|Module:Arguments}} Implements {{Tl|Template link general}} and other templates in its family"
wikitext
text/x-wiki
{{used in system}}
{{Module rating|protected}}
{{Lua|Module:Arguments}}
Implements {{Tl|Template link general}} and other templates in its family
6shwr5f8om4qr869y2mym8s4lyldej2
Module:Webarchive
828
1647
15113
2022-07-17T14:05:59Z
Kambai Akau
15
Created page with "--[[ ---------------------------------- Lua module implementing the {{webarchive}} template. A merger of the functionality of three templates: {{wayback}}, {{webcite}} and {{cite archives}} ]] --[[--------------------------< D E P E N D E N C I E S >------------------------------------------------------ ]] require('Module:No globals'); local getArgs = require ('Module:Arguments').getArgs; --[[--------------------------< F O R W A R D D E C L A R A T I O N S >..."
Scribunto
text/plain
--[[ ----------------------------------
Lua module implementing the {{webarchive}} template.
A merger of the functionality of three templates: {{wayback}}, {{webcite}} and {{cite archives}}
]]
--[[--------------------------< D E P E N D E N C I E S >------------------------------------------------------
]]
require('Module:No globals');
local getArgs = require ('Module:Arguments').getArgs;
--[[--------------------------< F O R W A R D D E C L A R A T I O N S >--------------------------------------
]]
local categories = {}; -- category names
local config = {}; -- global configuration settings
local digits = {}; -- for i18n; table that translates local-wiki digits to western digits
local err_warn_msgs = {}; -- error and warning messages
local excepted_pages = {};
local month_num = {}; -- for i18n; table that translates local-wiki month names to western digits
local prefixes = {}; -- service provider tail string prefixes
local services = {}; -- archive service provider data from
local s_text = {}; -- table of static text strings used to build final rendering
local uncategorized_namespaces = {}; -- list of namespaces that we should not categorize
local uncategorized_subpages = {}; -- list of subpages that should not be categorized
--[[--------------------------< P A G E S C O P E I D E N T I F I E R S >----------------------------------
]]
local non_western_digits; -- boolean flag set true when data.digits.enable is true
local this_page = mw.title.getCurrentTitle();
local track = {}; -- Associative array to hold tracking categories
local ulx = {}; -- Associative array to hold template data
--[[--------------------------< S U B S T I T U T E >----------------------------------------------------------
Populates numbered arguments in a message string using an argument table.
]]
local function substitute (msg, args)
return args and mw.message.newRawMessage (msg, args):plain() or msg;
end
--[[--------------------------< tableLength >-----------------------
Given a 1-D table, return number of elements
]]
local function tableLength(T)
local count = 0
for _ in pairs(T) do count = count + 1 end
return count
end
--[=[-------------------------< M A K E _ W I K I L I N K >----------------------------------------------------
Makes a wikilink; when both link and display text is provided, returns a wikilink in the form [[L|D]]; if only
link is provided, returns a wikilink in the form [[L]]; if neither are provided or link is omitted, returns an
empty string.
]=]
local function make_wikilink (link, display, no_link)
if nil == no_link then
if link and ('' ~= link) then
if display and ('' ~= display) then
return table.concat ({'[[', link, '|', display, ']]'});
else
return table.concat ({'[[', link, ']]'});
end
end
return display or ''; -- link not set so return the display text
else -- no_link
if display and ('' ~= display) then -- if there is display text
return display; -- return that
else
return link or ''; -- return the target article name or empty string
end
end
end
--[[--------------------------< createTracking >-----------------------
Return data in track[] ie. tracking categories
]]
local function createTracking()
if not excepted_pages[this_page.fullText] then -- namespace:title/fragment is allowed to be categorized (typically this module's / template's testcases page(s))
if uncategorized_namespaces[this_page.nsText] then
return ''; -- this page not to be categorized so return empty string
end
for _,v in ipairs (uncategorized_subpages) do -- cycle through page name patterns
if this_page.text:match (v) then -- test page name against each pattern
return ''; -- this subpage type not to be categorized so return empty string
end
end
end
local out = {};
if tableLength(track) > 0 then
for key, _ in pairs(track) do -- loop through table
table.insert (out, make_wikilink (key)); -- and convert category names to links
end
end
return table.concat (out); -- concat into one big string; empty string if table is empty
end
--[[--------------------------< inlineError >-----------------------
Critical error. Render output completely in red. Add to tracking category.
This function called as the last thing before abandoning this module
]]
local function inlineError (msg, args)
track[categories.error] = 1
return table.concat ({
'<span style="font-size:100%" class="error citation-comment">Error in ', -- open the error message span
config.tname, -- insert the local language template name
' template: ',
substitute (msg, args), -- insert the formatted error message
'.</span>', -- close the span
createTracking() -- add the category
})
end
--[[--------------------------< inlineRed >-----------------------
Render a text fragment in red, such as a warning as part of the final output.
Add tracking category.
]]
local function inlineRed(msg, trackmsg)
if trackmsg == "warning" then
track[categories.warning] = 1;
elseif trackmsg == "error" then
track[categories.error] = 1;
end
return '<span style="font-size:100%" class="error citation-comment">' .. msg .. '</span>'
end
--[[--------------------------< base62 >-----------------------
Convert base-62 to base-10
Credit: https://de.wikipedia.org/wiki/Modul:Expr
]]
local function base62( value )
local r = 1 -- default return value is input value is malformed
if value:match ('%W') then -- value must only be in the set [0-9a-zA-Z]
return; -- nil return when value contains extraneous characters
end
local n = #value -- number of characters in value
local k = 1
local c
r = 0
for i = n, 1, -1 do -- loop through all characters in value from ls digit to ms digit
c = value:byte( i, i )
if c >= 48 and c <= 57 then -- character is digit 0-9
c = c - 48
elseif c >= 65 and c <= 90 then -- character is ascii a-z
c = c - 55
else -- must be ascii A-Z
c = c - 61
end
r = r + c * k -- accumulate this base62 character's value
k = k * 62 -- bump for next
end -- for i
return r
end
--[[--------------------------< D E C O D E _ D A T E >--------------------------------------------------------
Given a date string, return it in iso format along with an indicator of the date's format. Except that month names
must be recognizable as legitimate month names with proper capitalization, and that the date string must match one
of the recognized date formats, no error checking is done here; return nil else
]]
local function decode_date (date_str)
local patterns = {
['dmy'] = {'^(%d%d?) +([^%s%d]+) +(%d%d%d%d)$', 'd', 'm', 'y'}, -- %a does not recognize unicode combining characters used by some languages
['mdy'] = {'^([^%s%d]+) (%d%d?), +(%d%d%d%d)$', 'm', 'd', 'y'},
['ymd'] = {'^(%d%d%d%d) +([^%s%d]+) (%d%d?)$', 'y', 'm', 'd'}, -- not mos compliant at en.wiki but may be acceptible at other wikis
};
local t = {};
if non_western_digits then -- this wiki uses non-western digits?
date_str = mw.ustring.gsub (date_str, '%d', digits); -- convert this wiki's non-western digits to western digits
end
if date_str:match ('^%d%d%d%d%-%d%d%-%d%d$') then -- already an iso format date, return western digits form
return date_str, 'iso';
end
for k, v in pairs (patterns) do
local c1, c2, c3 = mw.ustring.match (date_str, patterns[k][1]); -- c1 .. c3 are captured but we don't know what they hold
if c1 then -- set on match
t = { -- translate unspecified captures to y, m, and d
[patterns[k][2]] = c1, -- fill the table of captures with the captures
[patterns[k][3]] = c2, -- take index names from src_pattern table and assign sequential captures
[patterns[k][4]] = c3,
};
if month_num[t.m] then -- when month not already a number
t.m = month_num[t.m]; -- replace valid month name with a number
else
return nil, 'iso'; -- not a valid date form because month not valid
end
return mw.ustring.format ('%.4d-%.2d-%.2d', t.y, t.m, t.d), k; -- return date in iso format
end
end
return nil, 'iso'; -- date could not be decoded; return nil and default iso date
end
--[[--------------------------< makeDate >-----------------------
Given year, month, day numbers, (zero-padded or not) return a full date in df format
where df may be one of:
mdy, dmy, iso, ymd
on entry, year, month, day are presumed to be correct for the date that they represent; all are required
in this module, makeDate() is sometimes given an iso-format date in year:
makeDate (2018-09-20, nil, nil, df)
this works because table.concat() sees only one table member
]]
local function makeDate (year, month, day, df)
local format = {
['dmy'] = 'j F Y',
['mdy'] = 'F j, Y',
['ymd'] = 'Y F j',
['iso'] = 'Y-m-d',
};
local date = table.concat ({year, month, day}, '-'); -- assemble year-initial numeric-format date (zero padding not required here)
if non_western_digits then -- this wiki uses non-western digits?
date = mw.ustring.gsub (date, '%d', digits); -- convert this wiki's non-western digits to western digits
end
return mw.getContentLanguage():formatDate (format[df], date);
end
--[[--------------------------< I S _ V A L I D _ D A T E >----------------------------------------------------
Returns true if date is after 31 December 1899 (why is 1900 the min year? shouldn't the internet's date-of-birth
be min year?), not after today's date, and represents a valid date (29 February 2017 is not a valid date). Applies
Gregorian leapyear rules.
all arguments are required
]]
local function is_valid_date (year, month, day)
local days_in_month = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
local month_length;
local y, m, d;
local today = os.date ('*t'); -- fetch a table of current date parts
if not year or '' == year or not month or '' == month or not day or '' == day then
return false; -- something missing
end
y = tonumber (year);
m = tonumber (month);
d = tonumber (day);
if 1900 > y or today.year < y or 1 > m or 12 < m then -- year and month are within bounds TODO: 1900?
return false;
end
if (2==m) then -- if February
month_length = 28; -- then 28 days unless
if (0==(y%4) and (0~=(y%100) or 0==(y%400))) then -- is a leap year?
month_length = 29; -- if leap year then 29 days in February
end
else
month_length=days_in_month[m];
end
if 1 > d or month_length < d then -- day is within bounds
return false;
end
-- here when date parts represent a valid date
return os.time({['year']=y, ['month']=m, ['day']=d, ['hour']=0}) <= os.time(); -- date at midnight must be less than or equal to current date/time
end
--[[--------------------------< decodeWebciteDate >-----------------------
Given a URI-path to Webcite (eg. /67xHmVFWP) return the encoded date in df format
returns date string in df format - webcite date is a unix timestamp encoded as bae62
or the string 'query'
]]
local function decodeWebciteDate(path, df)
local dt = {};
local decode;
dt = mw.text.split(path, "/")
-- valid URL formats that are not base62
-- http://www.webcitation.org/query?id=1138911916587475
-- http://www.webcitation.org/query?url=http..&date=2012-06-01+21:40:03
-- http://www.webcitation.org/1138911916587475
-- http://www.webcitation.org/cache/73e53dd1f16cf8c5da298418d2a6e452870cf50e
-- http://www.webcitation.org/getfile.php?fileid=1c46e791d68e89e12d0c2532cc3cf629b8bc8c8e
if dt[2]:find ('query', 1, true) or
dt[2]:find ('cache', 1, true) or
dt[2]:find ('getfile', 1, true) or
tonumber(dt[2]) then
return 'query';
end
decode = base62(dt[2]); -- base62 string -> exponential number
if not decode then
return nil; -- nil return when dt[2] contains characters not in %w
end
dt = os.date('*t', string.format("%d", decode):sub(1,10)) -- exponential number -> text -> first 10 characters (a unix timestamp) -> a table of date parts
decode = makeDate (dt.year, dt.month, dt.day, 'iso'); -- date comparisons are all done in iso format with western digits
if non_western_digits then -- this wiki uses non-western digits?
decode = mw.ustring.gsub (decode, '%d', digits); -- convert this wiki's non-western digits to western digits
end
return decode;
end
--[[--------------------------< decodeWaybackDate >-----------------------
Given a URI-path to Wayback (eg. /web/20160901010101/http://example.com )
or Library of Congress Web Archives (eg. /all/20160901010101/http://example.com)
or UK Government Web Archive (eg. /ukgwa/20160901010101/http://example.com or /tna/20160901010101/http://example.com)
return the formatted date eg. "September 1, 2016" in df format
Handle non-digits in snapshot ID such as "re_" and "-" and "*"
returns two values:
first value is one of these:
valid date string in df format - wayback date is valid (including the text string 'index' when date is '/*/')
empty string - wayback date is malformed (less than 8 digits, not a valid date)
nil - wayback date is '/save/' or otherwise not a number
second return value is an appropriate 'message' may or may not be formatted
]]
local function decodeWaybackDate(path, df)
local msg, snapdate;
snapdate = path:gsub ('^/web/', ''):gsub ('^/all/', ''):gsub ('^/ukgwa/', ''):gsub ('^/tna/', ''):gsub ('^/', ''); -- remove leading /web/, /all/, /ukgwa/, /tna/, or /
snapdate = snapdate:match ('^[^/]+'); -- get timestamp
if snapdate == "*" then -- eg. /web/*/http.., etc.
return 'index'; -- return indicator that this url has an index date
end
snapdate = snapdate:gsub ('%a%a_%d?$', ''):gsub ('%-', ''); -- from date, remove any trailing "re_", dashes
msg = '';
if snapdate:match ('%*$') then -- a trailing '*' causes calendar display at archive .org
snapdate = snapdate:gsub ('%*$', ''); -- remove so not part of length calc later
msg = inlineRed (err_warn_msgs.ts_cal, 'warning'); -- make a message
end
if not tonumber(snapdate) then
return nil, 'ts_nan'; -- return nil (fatal error flag) and message selector
end
local dlen = snapdate:len();
if dlen < 8 then -- we need 8 digits TODO: but shouldn't this be testing for 14 digits?
return '', inlineRed (err_warn_msgs.ts_short, 'error'); -- return empty string and error message
end
local year, month, day = snapdate:match ('(%d%d%d%d)(%d%d)(%d%d)'); -- no need for snapdatelong here
if not is_valid_date (year, month, day) then
return '', inlineRed (err_warn_msgs.ts_date, 'error'); -- return empty string and error message
end
snapdate = table.concat ({year, month, day}, '-'); -- date comparisons are all done in iso format
if 14 == dlen then
return snapdate, msg; -- return date with message if any
else
return snapdate, msg .. inlineRed (err_warn_msgs.ts_len, 'warning'); -- return date with warning message(s)
end
end
--[[--------------------------< decodeArchiveisDate >-----------------------
Given an Archive.is "long link" URI-path (e.g. /2016.08.28-144552/http://example.com)
return the date in df format (e.g. if df = dmy, return 28 August 2016)
Handles "." and "-" in snapshot date, so 2016.08.28-144552 is same as 20160828144552
returns two values:
first value is one of these:
valid date string in df format - archive.is date is valid (including the text string 'short link' when url is the short form)
empty string - wayback date is malformed (not a number, less than 8 digits, not a valid date)
nil - wayback date is '/save/'
second return value is an appropriate 'message' may or may not be formatted
]]
local function decodeArchiveisDate(path, df)
local snapdate
if path:match ('^/%w+$') then -- short form url path is '/' followed by some number of base 62 digits and nothing else
return "short link" -- e.g. http://archive.is/hD1qz
end
snapdate = mw.text.split (path, '/')[2]:gsub('[%.%-]', ''); -- get snapshot date, e.g. 2016.08.28-144552; remove periods and hyphens
local dlen = string.len(snapdate)
if dlen < 8 then -- we need 8 digits TODO: but shouldn't this be testing for 14 digits?
return '', inlineRed (err_warn_msgs.ts_short, 'error'); -- return empty string and error message
end
local year, month, day = snapdate:match ('(%d%d%d%d)(%d%d)(%d%d)'); -- no need for snapdatelong here
if not is_valid_date (year, month, day) then
return '', inlineRed (err_warn_msgs.ts_date, 'error'); -- return empty string and error message
end
snapdate = table.concat ({year, month, day}, '-'); -- date comparisons are all done in iso format
if 14 == dlen then
return snapdate; -- return date
else
return snapdate, inlineRed (err_warn_msgs.ts_len, 'warning'); -- return date with warning message
end
end
--[[--------------------------< serviceName >-----------------------
Given a domain extracted by mw.uri.new() (eg. web.archive.org) set tail string and service ID
]]
local function serviceName(host, no_link)
local tracking;
local index;
host = host:lower():gsub ('^web%.(.+)', '%1'):gsub ('^www%.(.+)', '%1'); -- lowercase, remove web. and www. subdomains
if services[host] then
index = host;
else
for k, _ in pairs (services) do
if host:find ('%f[%a]'..k:gsub ('([%.%-])', '%%%1')) then
index = k;
break;
end
end
end
if index then
local out = {''}; -- empty string in [1] so that concatenated result has leading single space
ulx.url1.service = services[index][4] or 'other';
tracking = services[index][5] or categories.other;
-- build tail string
if false == services[index][1] then -- select prefix
table.insert (out, prefixes.at);
elseif true == services[index][1] then
table.insert (out, prefixes.atthe);
else
table.insert (out, services[index][1]);
end
table.insert (out, make_wikilink (services[index][2], services[index][3], no_link)); -- add article wikilink
if services[index][6] then -- add tail postfix if it exists
table.insert (out, services[index][6]);
end
ulx.url1.tail = table.concat (out, ' '); -- put it all together; result has leading space character
else -- here when unknown archive
ulx.url1.service = 'other';
tracking = categories.unknown;
ulx.url1.tail = table.concat ({'', prefixes.at, host, inlineRed (err_warn_msgs.unknown_url, error)}, ' ');
end
track[tracking] = 1
end
--[[--------------------------< parseExtraArgs >-----------------------
Parse numbered arguments starting at 2, such as url2..url10, date2..date10, title2..title10
For example: {{webarchive |url=.. |url4=.. |url7=..}}
Three url arguments not in numeric sequence (1..4..7).
Function only processes arguments numbered 2 or greater (in this case 4 and 7)
It creates numeric sequenced table entries like:
urlx.url2.url = <argument value for url4>
urlx.url3.url = <argument value for url7>
Returns the number of URL arguments found numbered 2 or greater (in this case returns "2")
]]
local function parseExtraArgs(args)
local i, j, argurl, argurl2, argdate, argtitle
j = 2
for i = 2, config.maxurls do
argurl = "url" .. i
if args[argurl] then
argurl2 = "url" .. j
ulx[argurl2] = {}
ulx[argurl2]["url"] = args[argurl]
argdate = "date" .. j
if args[argdate] then
ulx[argurl2]["date"] = args[argdate]
else
ulx[argurl2]["date"] = inlineRed (err_warn_msgs.date_miss, 'warning');
end
argtitle = "title" .. j
if args[argtitle] then
ulx[argurl2]["title"] = args[argtitle]
else
ulx[argurl2]["title"] = nil
end
j = j + 1
end
end
if j == 2 then
return 0
else
return j - 2
end
end
--[[--------------------------< comma >-----------------------
Given a date string, return "," if it's MDY
]]
local function comma(date)
return (date and date:match ('%a+ +%d%d?(,) +%d%d%d%d')) or '';
end
--[[--------------------------< createRendering >-----------------------
Return a rendering of the data in ulx[][]
]]
local function createRendering()
local displayfield
local out = {};
local index_date, msg = ulx.url1.date:match ('(index)(.*)'); -- when ulx.url1.date extract 'index' text and message text (if there is a message)
ulx.url1.date = ulx.url1.date:gsub ('index.*', 'index'); -- remove message
if 'none' == ulx.url1.format then -- For {{wayback}}, {{webcite}}
table.insert (out, '['); -- open extlink markup
table.insert (out, ulx.url1.url); -- add url
if ulx.url1.title then
table.insert (out, ' ') -- the required space
table.insert (out, ulx.url1.title) -- the title
table.insert (out, ']'); -- close extlink markup
table.insert (out, ulx.url1.tail); -- tail text
if ulx.url1.date then
table.insert (out, ' ('); -- open date text; TODO: why the html entity? replace with regular space?
table.insert (out, 'index' == ulx.url1.date and s_text.archive or s_text.archived); -- add text
table.insert (out, ' '); -- insert a space
table.insert (out, ulx.url1.date); -- add date
table.insert (out, ')'); -- close date text
end
else -- no title
if index_date then -- when url date is 'index'
table.insert (out, table.concat ({' ', s_text.Archive_index, ']'})); -- add the index link label
table.insert (out, msg or ''); -- add date mismatch message when url date is /*/ and |date= has valid date
else
table.insert (out, table.concat ({' ', s_text.Archived, '] '})); -- add link label for url has timestamp date (will include mismatch message if there is one)
end
if ulx.url1.date then
if 'index' ~= ulx.url1.date then
table.insert (out, ulx.url1.date); -- add date when data is not 'index'
end
table.insert (out, comma(ulx.url1.date)); -- add ',' if date format is mdy
table.insert (out, ulx.url1.tail); -- add tail text
else -- no date
table.insert (out, ulx.url1.tail); -- add tail text
end
end
if 0 < ulx.url1.extraurls then -- For multiple archive URLs
local tot = ulx.url1.extraurls + 1
table.insert (out, '.') -- terminate first url
table.insert (out, table.concat ({' ', s_text.addlarchives, ': '})); -- add header text
for i=2, tot do -- loop through the additionals
local index = table.concat ({'url', i}); -- make an index
displayfield = ulx[index]['title'] and 'title' or 'date'; -- choose display text
table.insert (out, '['); -- open extlink markup
table.insert (out, ulx[index]['url']); -- add the url
table.insert (out, ' '); -- the required space
table.insert (out, ulx[index][displayfield]); -- add the label
table.insert (out, ']'); -- close extlink markup
table.insert (out, i==tot and '.' or ', '); -- add terminator
end
end
return table.concat (out); -- make a big string and done
else -- For {{cite archives}}
if 'addlarchives' == ulx.url1.format then -- Multiple archive services
table.insert (out, table.concat ({s_text.addlarchives, ': '})); -- add header text
else -- Multiple pages from the same archive
table.insert (out, table.concat ({s_text.addlpages, ' '})); -- add header text
table.insert (out, ulx.url1.date); -- add date to header text
table.insert (out, ': '); -- close header text
end
local tot = ulx.url1.extraurls + 1;
for i=1, tot do -- loop through the additionals
local index = table.concat ({'url', i}); -- make an index
table.insert (out, '['); -- open extlink markup
table.insert (out, ulx[index]['url']); -- add url
table.insert (out, ' '); -- add required space
displayfield = ulx[index]['title'];
if 'addlarchives' == ulx.url1.format then
if not displayfield then
displayfield = ulx[index]['date']
end
else -- must be addlpages
if not displayfield then
displayfield = table.concat ({s_text.Page, ' ', i});
end
end
table.insert (out, displayfield); -- add title, date, page label text
table.insert (out, ']'); -- close extlink markup
table.insert (out, (i==tot and '.' or ', ')); -- add terminator
end
return table.concat (out); -- make a big string and done
end
end
--[[--------------------------< P A R A M E T E R _ N A M E _ X L A T E >--------------------------------------
for internaltionalization, translate local-language parameter names to their English equivalents
TODO: return error message if multiple aliases of the same canonical parameter name are found?
returns two tables:
new_args - holds canonical form parameters and their values either from translation or because the parameter was already in canonical form
origin - maps canonical-form parameter names to their untranslated (local language) form for error messaging in the local language
unrecognized parameters are ignored
]]
local function parameter_name_xlate (args, params, enum_params)
local name; -- holds modifiable name of the parameter name during evaluation
local enum; -- for enumerated parameters, holds the enumerator during evaluation
local found = false; -- flag used to break out of nested for loops
local new_args = {}; -- a table that holds canonical and translated parameter k/v pairs
local origin = {}; -- a table that maps original (local language) parameter names to their canonical name for local language error messaging
local unnamed_params; -- set true when unsupported positional parameters are detected
for k, v in pairs (args) do -- loop through all of the arguments in the args table
name = k; -- copy of original parameter name
if 'string' == type (k) then
if non_western_digits then -- true when non-western digits supported at this wiki
name = mw.ustring.gsub (name, '%d', digits); -- convert this wiki's non-western digits to western digits
end
enum = name:match ('%d+$'); -- get parameter enumerator if it exists; nil else
if not enum then -- no enumerator so looking for non-enumnerated parameters
-- TODO: insert shortcut here? if params[name] then name holds the canonical parameter name; no need to search further
for pname, aliases in pairs (params) do -- loop through each parameter the params table
for _, alias in ipairs (aliases) do -- loop through each alias in the parameter's aliases table
if name == alias then
new_args[pname] = v; -- create a new entry in the new_args table
origin [pname] = k; -- create an entry to make canonical parameter name to original local language parameter name
found = true; -- flag so that we can break out of these nested for loops
break; -- no need to search the rest of the aliases table for name so go on to the next k, v pair
end
end
if found then -- true when we found an alias that matched name
found = false; -- reset the flag
break; -- go do next args k/v pair
end
end
else -- enumerated parameters
name = name:gsub ('%d$', '#'); -- replace enumeration digits with place holder for table search
-- TODO: insert shortcut here? if num_params[name] then name holds the canonical parameter name; no need to search further
for pname, aliases in pairs (enum_params) do -- loop through each parameter the num_params table
for _, alias in ipairs (aliases) do -- loop through each alias in the parameter's aliases table
if name == alias then
pname = pname:gsub ('#$', enum); -- replace the '#' place holder with the actual enumerator
new_args[pname] = v; -- create a new entry in the new_args table
origin [pname] = k; -- create an entry to make canonical parameter name to original local language parameter name
found = true; -- flag so that we can break out of these nested for loops
break; -- no need to search the rest of the aliases table for name so go on to the next k, v pair
end
end
if found then -- true when we found an alias that matched name
found = false; -- reset the flag
break; -- go do next args k/v pair
end
end
end
else
unnamed_params = true; -- flag for unsupported positional parameters
end
end -- for k, v
return new_args, origin, unnamed_params;
end
--[[--------------------------< W E B A R C H I V E >----------------------------------------------------------
template entry point
]]
local function webarchive(frame)
local args = getArgs (frame);
local data = mw.loadData (table.concat ({ -- make a data module name; sandbox or live
'Module:Webarchive/data',
frame:getTitle():find('sandbox', 1, true) and '/sandbox' or '' -- this instance is ./sandbox then append /sandbox
}));
categories = data.categories; -- fill in the forward declarations
config = data.config;
if data.digits.enable then
digits = data.digits; -- for i18n; table of digits in the local wiki's language
non_western_digits = true; -- use_non_western_digits
end
err_warn_msgs = data.err_warn_msgs;
excepted_pages = data.excepted_pages;
month_num = data.month_num; -- for i18n; table of month names in the local wiki's language
prefixes = data.prefixes;
services = data.services;
s_text = data.s_text;
uncategorized_namespaces = data.uncategorized_namespaces;
uncategorized_subpages = data.uncategorized_subpages;
local origin = {}; -- holds a map of English to local language parameter names used in the current template; not currently used
local unnamed_params; -- boolean set to true when template call has unnamed parameters
args, origin, unnamed_params = parameter_name_xlate (args, data.params, data.enum_params); -- translate parameter names in args to English
local date, format, msg, udate, uri, url;
local ldf = 'iso'; -- when there is no |date= parameter, render url dates in iso format
if args.url and args.url1 then -- URL argument (first)
return inlineError (data.crit_err_msgs.conflicting, {origin.url, origin.url1});
end
url = args.url or args.url1;
if not url then
return inlineError (data.crit_err_msgs.empty);
end
-- these iabot bugs perportedly fixed; removing these causes lua script error
--[[ -- at Template:Webarchive/testcases/Production; resolve that before deleting these tests
if mw.ustring.find( url, "https://web.http", 1, true ) then -- track bug - TODO: IAbot bug; not known if the bug has been fixed; deferred
track[categories.error] = 1;
return inlineError (data.crit_err_msgs.iabot1);
end
if url == "https://web.archive.org/http:/" then -- track bug - TODO: IAbot bug; not known if the bug has been fixed; deferred
track[categories.error] = 1;
return inlineError (data.crit_err_msgs.iabot2);
end
]]
if not (url:lower():find ('^http') or url:find ('^//')) then
return inlineError (data.crit_err_msgs.invalid_url );
end
ulx.url1 = {}
ulx.url1.url = url
ulx.url1.extraurls = parseExtraArgs(args)
local good = false;
good, uri = pcall (mw.uri.new, ulx.url1.url); -- get a table of uri parts from this url; protected mode to prevent lua error when ulx.url1.url is malformed
if not good or nil == uri.host then -- abandon when ulx.url1.url is malformed
return inlineError (data.crit_err_msgs.invalid_url);
end
serviceName(uri.host, args.nolink)
if args.date and args.date1 then -- Date argument
return inlineError (data.crit_err_msgs.conflicting, {origin.date, origin.date1});
end
date = args.date or args.date1;
date = date and date:gsub (' +', ' '); -- replace multiple spaces with a single space
if date and config.verifydates then
if '*' == date then
date = 'index';
ldf = 'iso'; -- set to default format
elseif 'mdy' == date then
date = nil; -- if date extracted from URL,
ldf = 'mdy'; -- then |date=mdy overrides iso
elseif 'dmy' == date then
date = nil; -- if date extracted from URL,
ldf = 'dmy'; -- then |date=dmy overrides iso
elseif 'ymd' == date then
date = nil; -- if date extracted from URL,
ldf = 'ymd'; -- then |date=ymd overrides iso
else
date, ldf = decode_date (date); -- get an iso format date from date and get date's original format
end
end
if 'wayback' == ulx.url1.service or 'locwebarchives' == ulx.url1.service or 'ukgwa' == ulx.url1.service then
if date then
if config.verifydates then
if ldf then
udate, msg = decodeWaybackDate (uri.path); -- get the url date in iso format and format of date in |date=; 'index' when wayback url date is *
if not udate then -- this is the only 'fatal' error return
return inlineError (data.crit_err_msgs[msg]);
end
if udate ~= date then -- date comparison using iso format dates
date = udate;
msg = table.concat ({
inlineRed (err_warn_msgs.mismatch, 'warning'), -- add warning message
msg, -- add message if there is one
});
end
end
end
else -- no |date=
udate, msg = decodeWaybackDate (uri.path);
if not udate then -- this is the only 'fatal' error return
return inlineError (data.crit_err_msgs[msg]);
end
if '' == udate then
date = nil; -- unset
else
date = udate;
end
end
elseif 'webcite' == ulx.url1.service then
if date then
if config.verifydates then
if ldf then
udate = decodeWebciteDate (uri.path); -- get the url date in iso format
if 'query' ~= udate then -- skip if query
if udate ~= date then -- date comparison using iso format dates
date = udate;
msg = table.concat ({
inlineRed (err_warn_msgs.mismatch, 'warning'),
});
end
end
end
end
else
date = decodeWebciteDate( uri.path, "iso" )
if date == "query" then
date = nil; -- unset
msg = inlineRed (err_warn_msgs.date_miss, 'warning');
elseif not date then -- invalid base62 string
date = inlineRed (err_warn_msgs.date1, 'error');
end
end
elseif 'archiveis' == ulx.url1.service then
if date then
if config.verifydates then
if ldf then
udate, msg = decodeArchiveisDate (uri.path) -- get the url date in iso format
if 'short link' ~= udate then -- skip if short link
if udate ~= date then -- date comparison using iso format dates
date = udate;
msg = table.concat ({
inlineRed (err_warn_msgs.mismatch, 'warning'), -- add warning message
msg, -- add message if there is one
});
end
end
end
end
else -- no |date=
udate, msg = decodeArchiveisDate( uri.path, "iso" )
if udate == "short link" then
date = nil; -- unset
msg = inlineRed (err_warn_msgs.date_miss, 'warning');
elseif '' == udate then
date = nil; -- unset
else
date = udate;
end
end
else -- some other service
if not date then
msg = inlineRed (err_warn_msgs.date_miss, 'warning');
end
end
if 'index' == date then
ulx.url1.date = date .. (msg or ''); -- create index + message (if there is one)
elseif date then
ulx.url1.date = makeDate (date, nil, nil, ldf) .. (msg or ''); -- create a date in the wiki's local language + message (if there is one)
else
ulx.url1.date = msg;
end
format = args.format; -- Format argument
if not format then
format = "none"
else
for k, v in pairs (data.format_vals) do -- |format= accepts two specific values loop through a table of those values
local found; -- declare a nil flag
for _, p in ipairs (v) do -- loop through local language variants
if format == p then -- when |format= value matches
format = k; -- use name from table key
found = true; -- declare found so that we can break out of outer for loop
break; -- break out of inner for loop
end
end
if found then
break;
end
end
if format == "addlpages" then
if not ulx.url1.date then
format = "none"
end
elseif format == "addlarchives" then
format = "addlarchives"
else
format = "none"
end
end
ulx.url1.format = format
if args.title and args.title1 then -- Title argument
return inlineError (data.crit_err_msgs.conflicting, {origin.title, origin.title1});
end
ulx.url1.title = args.title or args.title1;
local rend = createRendering()
if not rend then
return inlineError (data.crit_err_msgs.unknown);
end
return rend .. ((unnamed_params and inlineRed (err_warn_msgs.unnamed_params, 'warning')) or '') .. createTracking();
end
--[[--------------------------< E X P O R T E D F U N C T I O N S >------------------------------------------
]]
return {webarchive = webarchive};
509fpybw6991rhb29k46no643h4jgz2
Module:Webarchive/doc
828
1648
15114
2022-07-17T14:06:56Z
Kambai Akau
15
Created page with "{{#ifeq:{{SUBPAGENAME}}|sandbox|| {{Module rating |release<!-- Values: pre-alpha • alpha • beta • release • protected -- If a rating not needed/relevant, delete this template call -->}} {{Module rating|protected}} }} {{Lua|Module:Webarchive/data|Module:No globals|Module:Arguments}} This module implements {{ti|webarchive}}. This module uses [[Module:Webarchive/data{{#ifeq:{{SUBPAGENAME}}|sandbox|/sandbox}}]] to support configuration control and internationaliz..."
wikitext
text/x-wiki
{{#ifeq:{{SUBPAGENAME}}|sandbox||
{{Module rating |release<!-- Values: pre-alpha • alpha • beta • release • protected -- If a rating not needed/relevant, delete this template call -->}}
{{Module rating|protected}}
}}
{{Lua|Module:Webarchive/data|Module:No globals|Module:Arguments}}
This module implements {{ti|webarchive}}.
This module uses [[Module:Webarchive/data{{#ifeq:{{SUBPAGENAME}}|sandbox|/sandbox}}]] to support configuration control and internationalization.
javzxjy81atoeemjv33ylqqw5j8q9b6
Module:Webarchive/data
828
1649
15115
2022-07-17T14:07:30Z
Kambai Akau
15
Created page with "--[[--------------------------< C O N F I G U R A T I O N >---------------------------------------------------- global configuration settings ]] local config = { maxurls = 10, -- Max number of URLs allowed. tname = 'Webarchive', -- name of calling template. Change if template rename. verifydates = true, -- See documentation. Set false to disable. } --[[--------------------------< U N C A T E G O R I Z E D _ N A M E S P..."
Scribunto
text/plain
--[[--------------------------< C O N F I G U R A T I O N >----------------------------------------------------
global configuration settings
]]
local config = {
maxurls = 10, -- Max number of URLs allowed.
tname = 'Webarchive', -- name of calling template. Change if template rename.
verifydates = true, -- See documentation. Set false to disable.
}
--[[--------------------------< U N C A T E G O R I Z E D _ N A M E S P A C E S >------------------------------
List of namespaces that should not be included in citation error categories.
Note: Namespace names should use underscores instead of spaces.
]]
local uncategorized_namespaces = { -- same list as specified at [[Module:Citation/CS1/Configuration]]
['User']=true, ['Talk']=true, ['User_talk']=true, ['Wikipedia_talk']=true, ['File_talk']=true,
['Template_talk']=true, ['Help_talk']=true, ['Category_talk']=true, ['Portal_talk']=true,
['Book_talk']=true, ['Draft_talk']=true, ['Module_talk']=true,
['MediaWiki_talk']=true,
}
local uncategorized_subpages = {'/[Ss]andbox', '/[Tt]estcases'}; -- list of Lua patterns found in page names of pages we should not categorize
local excepted_pages = { -- these pages will be categorized if set true; set to nil to disable
['Module talk:Webarchive/testcases'] = true, -- test cases pages used during development
['Template:Webarchive/testcases/Production'] = true,
}
--[[--------------------------< C A T E G O R I E S >----------------------------------------------------------
this is a table of all categories supported by Module:Webarchive
]]
local categories = {
archiveis = 'Category:Webarchive template archiveis links',
error = 'Category:Webarchive template errors',
other = 'Category:Webarchive template other archives',
unknown = 'Category:Webarchive template unknown archives',
warning = 'Category:Webarchive template warnings',
wayback = 'Category:Webarchive template wayback links',
webcite = 'Category:Webarchive template webcite links',
}
--[[--------------------------< P R E F I X E S >--------------------------------------------------------------
used only with serviceName(), this table holds the two generic tail-text prefixes specified by services['<service name>'][1]
]]
local prefixes = {
at = 'at',
atthe = 'at the',
}
--[=[-------------------------< S E R V I C E S >--------------------------------------------------------------
this is a table of tables for archive services. Each service table has:
[1]=prefix; may be boolean true or false, or text string where:
true indicates that the prefix is taken from prefixes.atthe
false indicates that the prefix is taken from prefixes.at
'text string' is used in lieu of the typical 'at' or 'at the' prefix
[2]=wikilink target article that describes the service; set to nil if not used
[3]=wikilink label; the label in [[target|label]]; set to nil if not used; when there is not article ([2] is nil) use this to name the service; see wikiwix in the table
[4]=service ID; set to nil if not used
[5]=tracking category key from the categories table; set to nil if not used
[6]=postfix; text string to be appended at the end of the tail string - see webarchive.loc.gov in the table
]=]
local services = {
['archive.ec'] = {false, 'archive.today', nil, 'archiveis', categories.archiveis},
['archive.fo'] = {false, 'archive.today', nil, 'archiveis', categories.archiveis},
['archive.is'] = {false, 'archive.today', nil, 'archiveis', categories.archiveis},
['archive.li'] = {false, 'archive.today', nil, 'archiveis', categories.archiveis},
['archive.md'] = {false, 'archive.today', nil, 'archiveis', categories.archiveis},
['archive.org'] = {true, 'Wayback Machine', nil, 'wayback', categories.wayback},
['archive.ph'] = {false, 'archive.today', nil, 'archiveis', categories.archiveis},
['archive.today'] = {false, 'archive.today', nil, 'archiveis', categories.archiveis},
['archive.vn'] = {false, 'archive.today', nil, 'archiveis', categories.archiveis},
['archive-it.org'] = {false, 'Archive-It', nil, 'archiveit'},
['arquivo.pt'] = {true, nil, 'Portuguese Web Archive'},
['bibalex.org'] = {false, 'Bibliotheca Alexandrina#Internet Archive partnership', 'Bibliotheca Alexandrina'},
['collectionscanada'] = {true, 'Canadian Government Web Archive'},
['europarchive.org'] = {true, 'National Library of Ireland'},
['freezepage.com'] = {false, nil, 'Freezepage'},
['ghostarchive.org'] = {false, nil, 'Ghost Archive'},
['haw.nsk'] = {true, 'Croatian Web Archive (HAW)'},
['langzeitarchivierung.bib-bvb.de'] = {false, 'Bavarian State Library'},
['loc.gov'] = {true, 'Library of Congress'},
['nationalarchives.gov.uk'] = {true, 'UK Government Web Archive', nil, 'ukgwa'},
['nlb.gov.sg'] = {false, 'Web Archive Singapore'},
['parliament.uk'] = {true, 'UK Parliament\'s Web Archive'},
['perma.cc'] = {false, 'Perma.cc'},
['perma-archives.cc'] = {false, 'Perma.cc'},
['proni.gov'] = {true, 'Public Record Office of Northern Ireland'},
['screenshots.com'] = {false, nil, 'Screenshots'},
['stanford.edu'] = {true, 'Stanford University Libraries', 'Stanford Web Archive'},
['timetravel.mementoweb.org'] = {false, 'Memento Project'},
['uni-lj.si'] = {true, nil, 'Slovenian Web Archive'},
['veebiarhiiv.digar.ee'] = {true, nil, 'Estonian Web Archive'},
['vefsafn.is'] = {true, 'National and University Library of Iceland'},
['webarchive.bac-lac.gc.ca'] = {false, 'Library and Archives Canada'},
['webarchive.loc.gov'] = {true, 'Library of Congress', nil, 'locwebarchives', nil, 'Web Archives'},
['webarchive.nla.gov.au'] = {true, 'Australian Web Archive'},
['webarchive.org.uk'] = {true, 'UK Web Archive'},
['webcache.googleusercontent.com'] = {false, nil, 'Google Cache'},
['webcitation.org'] = {false, 'WebCite', nil, 'webcite', categories.webcite},
['webharvest.gov'] = {true, 'National Archives and Records Administration'},
['webrecorder.io'] = {false, 'webrecorder.io'},
['wikiwix.com'] = {false, nil, 'Wikiwix'},
['yorku.ca'] = {false, 'York University Libraries', 'York University Digital Library'},
}
--[[--------------------------< S T A T I C T E X T >--------------------------------------------------------
for internationalzation
]]
local s_text = {
addlarchives = 'Additional archives',
addlpages = 'Additional pages archived on', -- TODO why the there? replace with regular space?
Archive_index = 'Archive index',
Archived = 'Archived',
archived = 'archived',
archive = 'archive',
Page = 'Page',
}
--[[--------------------------< E R R _ W A R N _ M S G S >----------------------------------------------------
these tables hold error and warning message text
]]
local err_warn_msgs = {
date_err = '(Date error)', -- decodeWebciteDate, decodeWaybackDate, decodeArchiveisDate
date_miss = '(Date missing)', -- parseExtraArgs
ts_short = '(Timestamp date length)', -- decodeWaybackDate timestamp less than 8 digits
ts_date = '(Timestamp date invalid)', -- decodeWaybackDate timestamp not a valid date
unknown_url = '(Error: unknown archive URL)', -- serviceName
unnamed_params = '(Positional parameters ignored)',
--warnings
mismatch = '<sup>(Date mismatch)</sup>', -- webarchive
ts_len = '<sup>(Timestamp length)</sup>', -- decodeWaybackDate, decodeArchiveisDate timestamp not 14 digits
ts_cal = '<sup>(Calendar)</sup>', -- decodeWaybackDate timestamp has trailing splat
}
local crit_err_msgs = { -- critical error messages
conflicting = 'Conflicting |$1= and |$2=',
empty = 'Empty url',
-- iabot1 = 'https://web.http', -- TODO: these iabot bugs perportedly fixed; removing these causes lua script error
-- iabot2 = 'Invalid URL', -- at Template:Webarchive/testcases/Production; resolve that before deleting these messages
invalid_url = 'Invalid URL',
ts_nan = 'Timestamp not a number',
unknown = 'Unknown problem. Please report on template talk page',
}
--[[--------------------------< D A T E I N T E R N A T I O N A L I Z A T I O N >----------------------------
these tables hold data that is used when converting date formats from non-English languages (because mw.language.getContentLanguage:formatDate()
doesn't understand non-English month names)
]]
local month_num = { -- retain English language names even though they may not be strictly required on the local wiki
['January'] = 1, ['February'] = 2, ['March'] = 3, ['April'] = 4, ['May'] = 5, ['June'] = 6, ['July'] = 7, ['August'] = 8, ['September'] = 9, ['October'] = 10, ['November'] = 11, ['December'] = 12,
['Jan'] = 1, ['Feb'] = 2, ['Mar'] = 3, ['Apr'] = 4, ['May'] = 5, ['Jun'] = 6, ['Jul'] = 7, ['Aug'] = 8, ['Sep'] = 9, ['Oct'] = 10, ['Nov'] = 11, ['Dec'] = 12,
-- add local wiki month-names to number translation here
-- [''] = 1, [''] = 2, [''] = 3, [''] = 4, [''] = 5, [''] = 6, [''] = 7, [''] = 8, [''] = 9, [''] = 10, [''] = 11, [''] = 12,
};
-- when the local wiki uses non-western digits in dates, local wiki digits must be
-- translated to western digits; lua only understands western digits
local digits = { -- use this table to aid translation
-- [''] = 0, [''] = 1, [''] = 2, [''] = 3, [''] = 4, [''] = 5, [''] = 6, [''] = 7, [''] = 8, [''] = 9, -- fill these table indexes with local digits
enable = false -- set to true to enable local-digit to western-digit translation
};
--[[--------------------------< P A R A M E T E R I N T E R N A T I O N A L I Z A T I O N >------------------
this table holds tables of parameter names and their non-English aliases. In the enum_params table '#' is a single
character placeholder for 1 or more digit characters
parameter names in this table shall be lowercase
]]
local params = {
['url'] = {'url'},
['date'] = {'date', 'datum'},
['title'] = {'title', 'titel'},
['nolink'] = {'nolink'},
['format'] = {'format'}
}
local enum_params = {
['url#'] = {'url#'},
['date#'] = {'date#', 'datum#'},
['title#'] = {'title#', 'titel#'},
}
local format_vals = { -- |format= accepts two values; add local language variants here
['addlpages'] = {'addlpages'},
['addlarchives'] = {'addlarchives'},
}
--[[--------------------------< E X P O R T E D T A B L E S >------------------------------------------------
]]
return {
categories = categories,
config = config,
crit_err_msgs = crit_err_msgs,
digits = digits,
enum_params = enum_params,
err_warn_msgs = err_warn_msgs,
excepted_pages = excepted_pages,
format_vals = format_vals,
month_num = month_num,
params = params,
prefixes = prefixes,
services = services,
s_text = s_text,
uncategorized_namespaces = uncategorized_namespaces,
uncategorized_subpages = uncategorized_subpages,
}
jf14rm1dib7bpwh1q20q3jf6p4gmikt
Module:Webarchive/data/doc
828
1650
15116
2022-07-17T14:08:11Z
Kambai Akau
15
Created page with "Data used by [[Module:Webarchive]]"
wikitext
text/x-wiki
Data used by [[Module:Webarchive]]
b46zkwtvq4zuiwhl9g1hj8lu58v7fiv
Ta̱mpi̱let:Ti
10
1651
15117
2022-07-17T14:09:34Z
Kambai Akau
15
Created page with "'''[[Template:{{{1}}}]]''' ([[Template talk:{{{1}}}|talk]]{{int:dot-separator}}[[Special:Whatlinkshere/Template:{{{1}}}|links]]{{int:dot-separator}}[{{SERVER}}{{localurl:Template:{{{1}}}|action=edit}} edit])<noinclude> {{Documentation}} </noinclude>"
wikitext
text/x-wiki
'''[[Template:{{{1}}}]]''' ([[Template talk:{{{1}}}|talk]]{{int:dot-separator}}[[Special:Whatlinkshere/Template:{{{1}}}|links]]{{int:dot-separator}}[{{SERVER}}{{localurl:Template:{{{1}}}|action=edit}} edit])<noinclude>
{{Documentation}}
</noinclude>
dgn75l4v01qr6tv5qnl9qa5djw7v17h
Sa:A̱yaayangka̱nan A̱kurung Swanta FIFA
14
1652
15119
2022-07-17T14:25:22Z
Kambai Akau
15
Created blank page
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:2005–06 ma̱ a̱la̱u-a̱ti̱tak Jami̱ni
14
1653
15120
2022-07-17T14:25:39Z
Kambai Akau
15
Created blank page
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:2006 ma̱ a̱la̱u-a̱ti̱tak nsot
14
1654
15121
2022-07-17T14:25:56Z
Kambai Akau
15
Created blank page
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:A̱kurung Swanta FIFA 2006
14
1655
15122
2022-07-17T14:26:11Z
Kambai Akau
15
Created blank page
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:A̱kurung A̱la̱u-a̱ti̱tak Swanta FIFA 2006
14
1656
15132
15131
2022-07-17T15:16:08Z
Kambai Akau
15
wikitext
text/x-wiki
{{Commons category|2006 FIFA World Cup|A̱kurung A̱la̱u-a̱ti̱tak Swanta FIFA 2006}}
[[Category:A̱kurung Swanta FIFA 2006]]
evc3m1ctt0zq24b78e5nn1dk2dca58x
Sa:Byin 1988
14
1657
15139
2022-07-17T16:00:58Z
Kambai Akau
15
Created blank page
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:A̱kworiya
14
1658
15141
2022-07-17T16:02:44Z
Kambai Akau
15
Created page with "[[Category:Kworiya A̱tak]] [[Category:Kworiya A̱za]]"
wikitext
text/x-wiki
[[Category:Kworiya A̱tak]]
[[Category:Kworiya A̱za]]
0ladcnm6a8gbgx2xowg8ab0bs4su2ma
Sa:Kworiya A̱za
14
1659
15142
2022-07-17T16:02:57Z
Kambai Akau
15
Created blank page
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Song Il-gook
0
1660
15145
2022-07-17T16:09:12Z
Kambai Akau
15
Kambai Akau shyei peji [[Song Il-gook]] nat [[Song Il-guk]]: Ku lan tyia̱ a̱ni.
wikitext
text/x-wiki
#REDIRECT [[Song Il-guk]]
lpdhjp6rmmlxy3crt8dtmfl1iqkh3bv
Jang Yeong-sil
0
1661
15152
2022-07-17T16:24:06Z
Kambai Akau
15
Kambai Akau shyei peji [[Jang Yeong-sil]] nat [[Cang Yong-sil]]: Yei Kworiya
wikitext
text/x-wiki
#REDIRECT [[Cang Yong-sil]]
c9gskhnykvia2zzr131fu49a3zn52n1
Sa:Á̱kyuo Ma̱rkut Antoniyot
14
1662
15160
2022-07-17T16:41:10Z
Kambai Akau
15
Created blank page
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:A̱yaafi̱ra̱una lang á̱gwam Ptolemi
14
1663
15161
2022-07-17T16:41:31Z
Kambai Akau
15
Created blank page
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Ba̱mba̱ra (a̱lyem)
0
1664
15198
15192
2022-07-17T18:24:49Z
Kambai Akau
15
wikitext
text/x-wiki
{{Databox|item=Q33243}}
'''Ba̱mba̱ra''' (lyuut La̱ra̱ba: بامبارا, Shong: Bambara, á̱ ka ndyen nang '''Bamana''' (lyuut N'Ko: ߓߡߊߣߊ߲) ku '''Bamanankan''' (ߓߡߊߣߊ߲ߞߊ߲)), yet a̱lyem a̱gwomna̱ti kya ma̱ng a̱lyem a̱byin [[Mali]] nang kpa̱mkpaan ma̱ng á̱niet miliyon 15 lyiat a̱ni, A̱ba̱mba̱ra miliyon 5 ji̱ yet a̱lyem mbyin mba ji mbeang kpa̱mkpaan ma̱ng á̱nietlyiat miliyon 10 ba̱ lyiat nji nang a̱lyem a̱feang a̱ni. Á̱ ku tyan nyia̱ a̱yaakpa 80 mami a̱yaakpa 100 á̱niet Mali bya lyiat Ba̱mba̱ra nang a̱lyem mbyin ku a̱si̱ a̱feang mba ka. Ji̱ byia̱ nok a̱lyiat [[a̱pyia̱ a̱lyiat–a̱saai a̱lyiat–ta̱m]] ma̱ng nwunwuat la̱kzi̱t nfeang. A̱lyoot mbyin ka ''bamanankan'' fa "a̱lyem (''kan'') á̱niet song A̱bwoi (''bámànán''), á̱niet ba̱ lak [[Khwikpaa̱pyia̱]] ba",<ref>Donaldson, Coleman (1 Zwat Tsat 2019). ''Linguistic and Civic Refinement in the N'ko Movement of Manding-Speaking West Africa'' (di̱n Shong). Signs and Society. '''(7)(2)'''. w. 161. DOI 10.1086/702554. ISSN 2326-4489</ref> di̱ nyia̱ fi̱p ma̱ng á̱nietlyiat Dyula ba, ba̱ yet Á̱nietkpaa̱pyia̱ bya.<ref>Vydrin, Valentin (1999). ''Manding-English Dictionary : (Maninka, Bamana)''. ISBN 9780993996931. Lac-Beauport. w. 69. OCLC 905517929</ref>
==Ya̱fang==
<references/>
==A̱ka̱fwuop nta==
===Wa̱i a̱lyiat===
* [https://web.archive.org/web/20160115094600/http://mali.pwnet.org/history/history_language.htm Mali – History – Language]
===A̱yaagban swáng a̱lyiat===
* [https://www.maliyiri.com/ Maliyiri.com] is a website which provides English-Bambara-French translations and is a community-based project where users can add new words, comments, provide feedback and follow one another.
* [http://cormand.huma-num.fr/bamadaba.html Corpus Bambara de Référence - Etiquetage] online and downloadable Bambara-French Dictionary (about 11,500 entries by the end of 2014), with a French-Bambara index, linked with the Corpus Bambara de Référence
* An ka taa's [http://dictionary.ankataa.com Mobile-friendly Bambara-English dictionary] that includes French and Jula.
* [[wikt:fr:Catégorie:bambara|Bambara entries (>2300) in the French Wiktionary]]
* [https://web.archive.org/web/20081004120230/http://www.bambara.org/en/ Bambara-French-English dictionary] online and downloadable lexicons for language learners
* [https://web.archive.org/web/20081108005847/http://www.bisharat.net/Demos/jiriwso.htm Bambara tree names (scientific name -> common name)]
===Nkyang myiam===
* [https://web.archive.org/web/20181226225516/http://www.iub.edu/~celtie/bambara.html Online Bambara Course from the Indiana University]
* {{cite web |url=http://www.peacecorp.gov/wws/multimedia/language/transcripts/ML_Bambara_Language_Lessons.pdf |title=AN INTRODUCTION TO BAMBARA |url-status=dead |archive-url=https://web.archive.org/web/20110721061045/http://www.peacecorp.gov/wws/multimedia/language/transcripts/ML_Bambara_Language_Lessons.pdf |archive-date=2011-07-21 }} {{small|(168 KB)}} on peacecorps.gov
===Nkyang njhyang===
* [http://cormand.huma-num.fr/ Corpus Bambara de Référence] Corpus Bambara de Référence, an electronic corpus of Bambara texts (about 2,000,000 words end 2014)
* Maliyiri.com's [https://play.google.com/store/apps/details?id=ml.maliyiri.bambaradictionary&hl=en_US Android application], with thousands of daily users, provides English-Bambara-French translations and users can choose to get daily/weekly word notifications for continuous learning.
* [http://cormand.huma-num.fr/biblio/index.jsp Bambara Electronic Library, AMALAN – LLACAN]
* [http://www.ankataa.com An ka taa]: a website with a dictionary, resources and media for learning Bambara and Manding more generally.
* [http://fr.wikibooks.org/wiki/Bambara Bambara at French Wikibooks] contains more material
* [https://web.archive.org/web/20140703141254/http://www.vjf.cnrs.fr/clt/php/va/Page_revue.php?ValCodeRev=MDK Mandenkan Journal]
* [https://web.archive.org/web/20130516204859/http://www.panafril10n.org/wikidoc/pmwiki.php/PanAfrLoc/Manding PanAfriL10n page on Manding] (includes information on Bambara)
* [https://web.archive.org/web/20090916112516/http://www.maneno.org/bam/ Maneno in Bambara] (a blogging platform with a full Bambara interface)
[[Category:A̱lyem Ba̱mba̱ra| ]]
[[Category:Lilyem Burkina Faso]]
[[Category:Lilyem Gana]]
[[Category:Lilyem Gini]]
[[Category:Lilyem Khwong A̱ta̱m Nzwuom]]
[[Category:Lilyem Mali]]
[[Category:Lilyem Senegat]]
[[Category:Lilyem Manding]]
5kguaegf9iroa2gk2vegjk7wq3fllxm
Sa:Lilyem Manding
14
1665
15176
15175
2022-07-17T17:07:15Z
Kambai Akau
15
wikitext
text/x-wiki
[[Category:Lilyem Nija–Konggo]]
[[Category:Lilyem Afrika Jenshyung]]
[[Category:Lilyem Afrika]]
[[Category:Lilyem swanta]]
958c872w7lzayzl1eokuuo2qutx6y65
Sa:Lilyem Senegat
14
1666
15177
2022-07-17T17:41:24Z
Kambai Akau
15
Created page with " [[Category:Lilyem Afrika Jenshyung]] [[Category:Lilyem Afrika]] [[Category:Lilyem swanta]]"
wikitext
text/x-wiki
[[Category:Lilyem Afrika Jenshyung]]
[[Category:Lilyem Afrika]]
[[Category:Lilyem swanta]]
aemwxvcspjgtxrlk47zm3fyi0imlu1j
Sa:Lilyem Mali
14
1667
15178
2022-07-17T17:41:54Z
Kambai Akau
15
Created page with "[[Category:Lilyem Nija–Konggo]] [[Category:Lilyem Afrika Jenshyung]] [[Category:Lilyem Afrika]] [[Category:Lilyem swanta]]"
wikitext
text/x-wiki
[[Category:Lilyem Nija–Konggo]]
[[Category:Lilyem Afrika Jenshyung]]
[[Category:Lilyem Afrika]]
[[Category:Lilyem swanta]]
958c872w7lzayzl1eokuuo2qutx6y65
Sa:Lilyem Khwong A̱ta̱m Nzwuom
14
1668
15179
2022-07-17T17:42:22Z
Kambai Akau
15
Created page with "[[Category:Lilyem Nija–Konggo]] [[Category:Lilyem Afrika Jenshyung]] [[Category:Lilyem Afrika]] [[Category:Lilyem swanta]]"
wikitext
text/x-wiki
[[Category:Lilyem Nija–Konggo]]
[[Category:Lilyem Afrika Jenshyung]]
[[Category:Lilyem Afrika]]
[[Category:Lilyem swanta]]
958c872w7lzayzl1eokuuo2qutx6y65
Sa:Lilyem Gini
14
1669
15180
2022-07-17T17:42:57Z
Kambai Akau
15
Created page with " [[Category:Lilyem Afrika Jenshyung]] [[Category:Lilyem Afrika]] [[Category:Lilyem swanta]]"
wikitext
text/x-wiki
[[Category:Lilyem Afrika Jenshyung]]
[[Category:Lilyem Afrika]]
[[Category:Lilyem swanta]]
aemwxvcspjgtxrlk47zm3fyi0imlu1j
Sa:Lilyem Gana
14
1670
15181
2022-07-17T17:43:56Z
Kambai Akau
15
Created page with " [[Category:Lilyem Afrika Jenshyung]] [[Category:Lilyem Afrika]] [[Category:Lilyem swanta]]"
wikitext
text/x-wiki
[[Category:Lilyem Afrika Jenshyung]]
[[Category:Lilyem Afrika]]
[[Category:Lilyem swanta]]
aemwxvcspjgtxrlk47zm3fyi0imlu1j
Sa:Lilyem Burkina Faso
14
1671
15182
2022-07-17T17:44:23Z
Kambai Akau
15
Created page with " [[Category:Lilyem Afrika Jenshyung]] [[Category:Lilyem Afrika]] [[Category:Lilyem swanta]]"
wikitext
text/x-wiki
[[Category:Lilyem Afrika Jenshyung]]
[[Category:Lilyem Afrika]]
[[Category:Lilyem swanta]]
aemwxvcspjgtxrlk47zm3fyi0imlu1j
Sa:A̱lyem Ba̱mba̱ra
14
1672
15183
2022-07-17T17:44:38Z
Kambai Akau
15
Created page with "[[Category:Lilyem Nija–Konggo]] [[Category:Lilyem Afrika Jenshyung]] [[Category:Lilyem Afrika]] [[Category:Lilyem swanta]]"
wikitext
text/x-wiki
[[Category:Lilyem Nija–Konggo]]
[[Category:Lilyem Afrika Jenshyung]]
[[Category:Lilyem Afrika]]
[[Category:Lilyem swanta]]
958c872w7lzayzl1eokuuo2qutx6y65
A̱daa (á̱niet)
0
1673
15210
2022-07-17T19:10:53Z
Kambai Akau
15
Kambai Akau shyei peji [[A̱daa (á̱niet)]] nat [[A̱daa (nwap)]]: Ku lan tyia̱ a̱ni.
wikitext
text/x-wiki
#REDIRECT [[A̱daa (nwap)]]
9xqjfl1diaz47y94ox75aca1lvfd9sg
Sa:A̱gwai
14
1674
15218
2022-07-18T05:52:09Z
Kambai Akau
15
Created blank page
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:A̱nu
14
1675
15219
2022-07-18T05:52:27Z
Kambai Akau
15
Created blank page
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Mai
14
1676
15220
2022-07-18T05:52:42Z
Kambai Akau
15
Created blank page
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Shyuak-mai
0
1677
15222
2022-07-18T05:57:46Z
Kambai Akau
15
Kambai Akau shyei peji [[Shyuak-mai]] nat [[Shyuang-mai]]: a̱lyoot
wikitext
text/x-wiki
#REDIRECT [[Shyuang-mai]]
j8hnhudygs9rzqazr4ggq8xg1fx9j75
Sa:A̱nwuat a̱tyubishyi
14
1679
15228
2022-07-19T05:35:09Z
Kambai Akau
15
Created blank page
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Fi̱ri̱ng (vam a̱tyubishyi)
14
1680
15232
2022-07-19T05:46:25Z
Kambai Akau
15
Created blank page
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Vam nyam
14
1681
15233
2022-07-19T05:46:39Z
Kambai Akau
15
Created blank page
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:A̱nyunyung
14
1682
15236
2022-07-19T05:59:36Z
Kambai Akau
15
Created blank page
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:A̱yaagurma
14
1683
15240
2022-07-19T06:16:05Z
Kambai Akau
15
Created blank page
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Bubwom
14
1684
15252
2022-07-21T05:42:44Z
Kambai Akau
15
Created blank page
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Tangka̱i a̱bwom
14
1685
15253
2022-07-21T05:43:01Z
Kambai Akau
15
Created blank page
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Kwaa̱mbwat A̱tsan
0
1686
15298
15297
2022-07-24T10:41:01Z
Kambai Akau
15
wikitext
text/x-wiki
{{Databox}}
'''Kwaa̱mbwat A̱tsan''' hu (from [[Helen]]: Γένεσις, ''Génesis''; A̱biru: בְּרֵאשִׁית, ''Bərēʾšīṯ'', "Di̱n tsa [hu]") hwa yet kwaa̱mbwat a̱tsan [[Kpa̱m A̱lyiat A̱gwaza]] A̱biru hu ma̱ng a̱si̱ A̱khwukhwop La̱p-a̱nu Krista wu.<ref>Hamilton (1990). w. 1</ref> A̱lyoot A̱biru nhu yet kyang nyiung hwa ma̱ng swáng a̱lyiat ntsa nhu ji, ''Bereshit'' ("Di̱n tsa hu"). A̱tsan yet nkhang mat swanta ni̱nia, nkhang ntsa á̱nietbishyi, ma̱ng a̱si̱ a̱yaatyia̱-a̱khwop Isi̱rela ma̱ng a̱tyin A̱yahuda ba.<ref>Sweeney (2012). w. 657</ref>
==Ya̱fang==
<references/>
== A̱ka̱fwuop nta ==
{{Commons category|Book of Genesis}}
[[Category:Kwaa̱mbwat A̱tsan| ]]
gb3esnuxm1k41vyd79fbmabswc29ebv
Sa:Kwaa̱mbwat A̱tsan
14
1687
15300
15299
2022-07-24T10:53:05Z
Kambai Akau
15
wikitext
text/x-wiki
{{Commons category|A̱tsan}}
gqh4i4qpeq8bjzdh99qflypm6e1hdht
Sotbeang Wukimedia
0
1688
15318
15317
2022-07-24T12:53:17Z
Kambai Akau
15
wikitext
text/x-wiki
{{Databox}}
'''Sotbeang Wukimedia ji''' ([[Shong (a̱lyem)|Shong]]: '''''Wikimedia Foundation, Inc.''''', '''WMF''') ku '''Wiukimedia''' (Shong: '''Wikimedia''') yet sotnta̱m ji̱ nwai ncat kpangti̱n [[501(c)(3)]] ja ji̱ byia̱ tyantung nji ji mi̱ San Francisco, California, á̱ ku ri̱jista nang sotbeang nwuat ja a̱ni a̱tafa cam [[Muná̱pyia̱ Sí̱tet|MS]] hu.<ref name="Hanson2016">Jarice Hanson (2006). [https://books.google.com/books?id=ePEZDAAAQBAJ&pg=PA375 The Social Media Revolution: An Economic Encyclopedia of Friending, Following, Texting, and Connecting] (di̱n Shong). ABC-CLIO. w. 375. ISBN 978-1-61069-768-2</ref> Nta̱m Wukimedia a̱pyia̱ nji na – nang á̱ dyuut á̱ saai mbwak A̱wukipedia cyikwop tazwa cyikwop ma̱ng á̱ghyang á̱niet ba ba̱ nyia̱ ta̱m di̱ mi̱n cat teang a̱ni – ma̱ng kyanglilyiit wuki MediaWiki hu.<ref>Jacobs, Julia (8 Zwat Nyaai 2019). [https://www.nytimes.com/2019/04/08/us/wikipedia-harassment-wikimedia-foundation.html Wikipedia Isn't Officially a Social Network. But the Harassment Can Get Ugly.] (di̱n Shong).</ref><ref>Cohen, Noam (16 Zwat Tsat 2021). [https://www.wired.com/story/wikipedia-finally-asking-big-tech-to-pay-up/ Wikipedia Is Finally Asking Big Tech to Pay Up] (di̱n Shong). Wired.</ref><ref name=DD>Kolbe, Andreas (24 Zwat Tswuon 2021). [https://www.dailydot.com/debug/wikipedia-endownemnt-fundraising/ Wikipedia is swimming in money—why is it begging people to donate?] (di̱n Shong). The Daily Dot.</ref><ref>Culliford, Elizabeth (2 Zwat Sweang 2021). [https://www.reuters.com/article/us-wikipedia-rules-exclusive-idUSKBN2A21PW Exclusive: Wikipedia launches new global rules to combat site abuses] (di̱n Shong). Reuters.</ref>
==Ya̱fang==
<references/>
== A̱ka̱fwuop nta ==
* [https://wikimediafoundation.org/ Official website (wikimediafoundation.org)]
* [https://www.wikimedia.org/ Wikimedia site navigation (wikimedia.org)]
===Sotnta̱m===
* [https://meta.wikimedia.org/wiki/Wikimedia_Foundation_Annual_Plan/2022-2023/draft Wikimedia Foundation 2022–23 Annual Plan (draft)]
* [https://wikimediafoundation.org/about/annual-reports/ Wikimedia Foundation annual reports]
* [https://foundation.wikimedia.org/wiki/Bylaws Wikimedia Foundation bylaws]
* A̱yaaprofait nyinyiit shei nkhang á̱niet Sotbeang Wukimedia: [https://twitter.com/Wikimedia Twitter], [https://www.youtube.com/channel/UCK_cUZLMpibyRiIdp0uF-lQ YouTube]
===A̱ka̱kurum===
* [https://foundation.wikimedia.org/w/index.php?title=File%3AWikimedia_Foundation_FY2020-2021_Audit_Report.pdf&page=5 Wikimedia Foundation's 2020/2021 audited financial statements]
* [https://projects.propublica.org/nonprofits/organizations/200049703 Wikimedia Foundation Form 990 tax filings]
=== Yong nwuat za̱nang ===
* [https://www.charitynavigator.org/ein/200049703 Wikimedia Foundation] profait mi̱ Charity Navigator, charitynavigator.org
===Sot-á̱niet===
* [https://lists.wikimedia.org/hyperkitty/list/wikimedia-l@lists.wikimedia.org/ Wikimedia mailing list archives]
* [https://meta.wikimedia.org/wiki/Main_Page Global community site for the Wikimedia Foundation's projects] (meta.wikimedia.org)
[[Category:Sotbeang Wukimedia| ]]
[[Category:Susotnta̱m 501(c)(3)]]
[[Category:A̱yaati̱kut ba̱ byia̱ nghwughwu a̰guguut a̱ni]]
[[Category:Jimmy Wales]]
[[Category:Susotnta̱m nang á̱ ku kpaat 2003]]
[[Category:Susot-á̱niet Wuki]]
fk93hdx0y5oe9mcxv6cmxjgksyuy8e8
Sa:Susot-á̱niet Wuki
14
1689
15310
2022-07-24T12:44:50Z
Kambai Akau
15
Created blank page
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Sotbeang Wukimedia
14
1690
15311
2022-07-24T12:45:10Z
Kambai Akau
15
Created blank page
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Susotnta̱m 501(c)(3)
14
1691
15312
2022-07-24T12:45:30Z
Kambai Akau
15
Created blank page
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:A̱yaati̱kut ba̱ byia̱ nghwughwu a̰guguut a̱ni
14
1692
15313
2022-07-24T12:45:48Z
Kambai Akau
15
Created blank page
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Jimmy Wales
14
1693
15314
2022-07-24T12:46:08Z
Kambai Akau
15
Created blank page
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Susotnta̱m nang á̱ ku kpaat 2003
14
1694
15315
2022-07-24T12:46:25Z
Kambai Akau
15
Created blank page
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Á̱kwop
14
1695
15326
2022-07-26T05:51:51Z
Kambai Akau
15
Created blank page
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:A̱ka̱sasaaikurum
14
1696
15332
2022-07-27T06:13:06Z
Kambai Akau
15
Created blank page
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Saaikurum
14
1697
15333
2022-07-27T06:13:25Z
Kambai Akau
15
Created blank page
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Nkhang tung nzwa Italiya
14
1698
15334
2022-07-27T06:13:52Z
Kambai Akau
15
Created blank page
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Wukipedia:Sockpuppet policy
4
1699
15339
2022-07-27T12:28:36Z
LisafBia6531
225
+1
wikitext
text/x-wiki
#REDIRECT [[Wukipedia:Sockpuppetry]]
g8idno2bgvc6a4yvmzpptr0z7iy0inb
Wukipedia:Sockpuppetry
4
1700
15340
2022-07-27T12:30:35Z
LisafBia6531
225
+
wikitext
text/x-wiki
On [[Wikipedia]], '''sockpuppetry''', or '''socking''', refers to the misuse of multiple Wikipedia accounts. To maintain accountability and increase community trust, editors are generally expected to use only one account. While there are some valid reasons for maintaining multiple accounts, it is improper to use multiple accounts to deceive or mislead other editors, disrupt discussions, distort consensus, avoid [[Wikipedia:Sanctions|sanctions]], evade blocks, or otherwise violate community standards and policies.
Sockpuppetry takes various forms:
* Logging out to make problematic edits as an [[IP address]]
* Creating new accounts to avoid detection or sanctions
* Using another person's account ([[Piggybacking (security)|piggybacking]])
* Reviving old unused accounts (sometimes referred to as ''[[Wikipedia:Sleeper accounts|sleepers]]'') and presenting them as different users
* Persuading friends or colleagues to create accounts for the purpose of supporting one side of a dispute (usually called [[#Meatpuppetry|meatpuppetry]])
kgbaljn53s7z606ha21bf7h0k8zxrfd
Wikipedia
0
1701
15341
2022-07-27T12:31:17Z
LisafBia6531
225
Redirected page to [[Wukipedia]]
wikitext
text/x-wiki
#REDIRECT [[Wukipedia]]
j4unp5shmpnutytgh1rzh22efvttj6d
Wukipedia:A̱na̱nwuai á̱niet
4
1703
15344
2022-07-27T12:37:59Z
LisafBia6531
225
LisafBia6531 shyei peji [[Wukipedia:A̱na̱nwuai á̱niet]] nat [[Wukipedia:A̱na̱nwuai sot-á̱niet]]: Sidebar link change
wikitext
text/x-wiki
#REDIRECT [[Wukipedia:A̱na̱nwuai sot-á̱niet]]
rgk2rf2fq5c40x980mue2s7ld8boua6
Ta̱mpi̱let:Policy list
10
1704
15345
2022-07-27T18:13:29Z
Kambai Akau
15
Created page with "{{helpbox|width:21.5em; clear:right | templatename = Policy list | name = [[Wikipedia:Policies and guidelines|Policies and guidelines]] ([[Wikipedia:List of policies and guidelines|list]]) | bodyclass = hlist | group1 = [[WP:Principles|Principles]] | list1 = * [[Wikipedia:Five pillars|Five pillars]] * [[Wikipedia:Ignore all rules|Ignore all rules]] * [[Wikipedia:Core content policies|Core content policies]] | group2 = [[WP:Content policies|Content policies]] | list..."
wikitext
text/x-wiki
{{helpbox|width:21.5em; clear:right
| templatename = Policy list
| name = [[Wikipedia:Policies and guidelines|Policies and guidelines]] ([[Wikipedia:List of policies and guidelines|list]])
| bodyclass = hlist
| group1 = [[WP:Principles|Principles]]
| list1 =
* [[Wikipedia:Five pillars|Five pillars]]
* [[Wikipedia:Ignore all rules|Ignore all rules]]
* [[Wikipedia:Core content policies|Core content policies]]
| group2 = [[WP:Content policies|Content policies]]
| list2 =
* [[Wikipedia:Article titles|Article titles]]
* [[Wikipedia:Biographies of living persons|Biographies of living persons]]
* [[Wikipedia:Image use policy|Image use]]
* [[Wikipedia:Neutral point of view|Neutral point of view]]
* [[Wikipedia:No original research|No original research]]
* [[Wikipedia:Verifiability|Verifiability]]
* [[Wikipedia:What Wikipedia is not|What Wikipedia is not]] ([[Wikipedia:Wikipedia is not a dictionary|Not a dictionary]])
| group3 = [[WP:Conduct policies|Conduct policies]]
| list3 =
* [[Wikipedia:Civility|Civility]]
* [[Wikipedia:Clean start|Clean start]]
* [[Wikipedia:Consensus|Consensus]]
* [[Wikipedia:Dispute resolution|Dispute resolution]]
* [[Wikipedia:Edit warring|Edit warring]]
* [[Wikipedia:Editing policy|Editing policy]]
* [[Wikipedia:Harassment|Harassment]]
* [[Wikipedia:No legal threats|No legal threats]]
* [[Wikipedia:No personal attacks|No personal attacks]]
* [[Wikipedia:Ownership of content|Ownership of content]]
* [[Wikipedia:Username policy|Username policy]]
* [[Wikipedia:Vandalism|Vandalism]]
| group4 = Other policy categories
| list4 =
* [[Wikipedia:List of policies#Deletion|Deletion]]
* [[Wikipedia:List of policies#Enforcement|Enforcement]]
* [[Wikipedia:List of policies#Legal|Legal]]
* [[Wikipedia:List of policies#Procedural|Procedural]]
| group5 = Directories
| list5 =
* [[Wikipedia:List of policies|List of policies]]
* [[Wikipedia:List of guidelines|List of guidelines]]
* [[Wikipedia:Manual of Style/Contents|Manual of Style contents]]
}}<noinclude>
{{pp-semi-indef}}
[[Category:Wikipedia policy list templates| ]]
[[Category:Wikipedia help templates]]
</noinclude>
sgcqlmrl87t4coqlmq577h98px3c0dc
Ta̱mpi̱let:Helpbox
10
1705
15346
2022-07-27T18:14:37Z
Kambai Akau
15
Created page with "<includeonly>{{Sidebar | name = {{#if:{{{templatename|}}} |{{{templatename}}} |{{{name|{{PAGENAME}}}}} }} | templatestyles = Template:Helpbox/styles.css | child templatestyles = {{{child templatestyles|}}} | float = {{{float|}}} | class = help-box noprint {{{class|{{{bodyclass|}}}}}} | style = {{{1|}}} | titlestyle = {{{titlestyle|}}} | title = {{{title|{{{name|}}}}}} | headingstyle = {{{headingstyle|}}} | heading1 = {{{group1|}}} | content1 = {{{list1|}}} | heading2..."
wikitext
text/x-wiki
<includeonly>{{Sidebar
| name = {{#if:{{{templatename|}}} |{{{templatename}}} |{{{name|{{PAGENAME}}}}} }}
| templatestyles = Template:Helpbox/styles.css
| child templatestyles = {{{child templatestyles|}}}
| float = {{{float|}}}
| class = help-box noprint {{{class|{{{bodyclass|}}}}}}
| style = {{{1|}}}
| titlestyle = {{{titlestyle|}}}
| title = {{{title|{{{name|}}}}}}
| headingstyle = {{{headingstyle|}}}
| heading1 = {{{group1|}}}
| content1 = {{{list1|}}}
| heading2 = {{{group2|}}}
| content2 = {{{list2|}}}
| heading3 = {{{group3|}}}
| content3 = {{{list3|}}}
| heading4 = {{{group4|}}}
| content4 = {{{list4|}}}
| heading5 = {{{group5|}}}
| content5 = {{{list5|}}}
| heading6 = {{{group6|}}}
| content6 = {{{list6|}}}
| heading7 = {{{group7|}}}
| content7 = {{{list7|}}}
| heading8 = {{{group8|}}}
| content8 = {{{list8|}}}
| heading9 = {{{group9|}}}
| content9 = {{{list9|}}}
| heading10 = {{{group10|}}}
| content10 = {{{list10|}}}
| heading11 = {{{group11|}}}
| content11 = {{{list11|}}}
| heading12 = {{{group12|}}}
| content12 = {{{list12|}}}
| heading13 = {{{group13|}}}
| content13 = {{{list13|}}}
| heading14 = {{{group14|}}}
| content14 = {{{list14|}}}
| heading15 = {{{group15|}}}
| content15 = {{{list15|}}}
| heading16 = {{{group16|}}}
| content16 = {{{list16|}}}
| heading17 = {{{group17|}}}
| content17 = {{{list17|}}}
| heading18 = {{{group18|}}}
| content18 = {{{list18|}}}
| heading19 = {{{group19|}}}
| content19 = {{{list19|}}}
| heading20 = {{{group20|}}}
| content20 = {{{list20|}}}
| navbar = {{#if:{{{templatename|}}} |
| {{#if:{{{title|}}} |{{#if:{{{name|}}} | |none}}
| none
}}
}}
}}</includeonly><noinclude>
{{Documentation}}
</noinclude>
9xlpz91q0yqlrqv9e9je6g80b3j0d2x
Ta̱mpi̱let:Helpbox/doc
10
1706
15347
2022-07-27T18:15:14Z
Kambai Akau
15
Created page with "{{Documentation subpage}} <includeonly>{{Intricate template}}</includeonly> {{uses TemplateStyles|Template:Helpbox/styles.css}} {{Generic template demo |title |group1 |list1 |group2 |list2 |list3={{longitem|{{{list3}}}<br/>''without {{{group3}}}''}} |list4=''ditto'' {{{list4}}} |group5<!--={{longitem|{{{group5}}}<br/>{{nobold|''without {{{list5}}}''}}}}--> |group6 |list6={{{list6}}}<br/>''...... etc ......'' |group20 |list20}} This template allows a help-related Wikip..."
wikitext
text/x-wiki
{{Documentation subpage}}
<includeonly>{{Intricate template}}</includeonly>
{{uses TemplateStyles|Template:Helpbox/styles.css}}
{{Generic template demo |title |group1 |list1 |group2 |list2 |list3={{longitem|{{{list3}}}<br/>''without {{{group3}}}''}} |list4=''ditto'' {{{list4}}} |group5<!--={{longitem|{{{group5}}}<br/>{{nobold|''without {{{list5}}}''}}}}--> |group6 |list6={{{list6}}}<br/>''...... etc ......'' |group20 |list20}}
This template allows a help-related [[Wikipedia:Navigation template|navigation template]] to be set up relatively quickly by supplying it with one or more lists of links.
e38k1pgun3mjndg8vm06htktmi6b3q9
Ta̱mpi̱let:Sidebar
10
1707
15348
2022-07-27T18:17:30Z
Kambai Akau
15
Created page with "{{#invoke:Sidebar|sidebar}}<noinclude> {{documentation}}</noinclude>"
wikitext
text/x-wiki
{{#invoke:Sidebar|sidebar}}<noinclude>
{{documentation}}</noinclude>
jzouzofoaugku1umcgwhk1sk23s7qrm
Ta̱mpi̱let:Sidebar/doc
10
1708
15349
2022-07-27T18:18:32Z
Kambai Akau
15
Created page with "{{Documentation subpage}} {{about|the vertical navigation template|the horizontal template|Template:Navbox|the left sidebar of the interface|mw:Manual:Interface/Sidebar{{!}}the article in the Mediawiki Manual}} {{#ifeq:{{FULLPAGENAME}}|Template:Sidebar|{{High-risk| approximately 145000 }}{{Template display|nomobile}}}} {{Lua|Module:Sidebar}} This template is a [[wikt:Metatemplate|metatemplate]] for the creation of sidebar templates, i.e. boxes that are Vertical direct..."
wikitext
text/x-wiki
{{Documentation subpage}}
{{about|the vertical navigation template|the horizontal template|Template:Navbox|the left sidebar of the interface|mw:Manual:Interface/Sidebar{{!}}the article in the Mediawiki Manual}}
{{#ifeq:{{FULLPAGENAME}}|Template:Sidebar|{{High-risk| approximately 145000 }}{{Template display|nomobile}}}}
{{Lua|Module:Sidebar}}
This template is a [[wikt:Metatemplate|metatemplate]] for the creation of sidebar templates, i.e. boxes that are [[Vertical direction|vertically]]-aligned [[Wikipedia:Navigation template|navigation templates]]. Sidebars, like [[Wikipedia:Manual of Style/Infoboxes|infoboxes]], are usually positioned on the right-hand side of a page.
{{tl|Sidebar with collapsible lists}} is a version of {{tl|Sidebar}} that adds collapsibility to its sections, i.e. the means to show or hide sections by clicking links beside their headings.
{{Navbox visibility}}
Note that [[MOS:LEAD]] discourages the placement of sidebars in the lead section of articles.
dl7pf8nqcd4mmzvfvcqi0y0arml7wsq
Module:Sidebar
828
1709
15350
2022-07-27T18:20:26Z
Kambai Akau
15
Created page with "-- -- This module implements {{Sidebar}} -- require('Module:No globals') local cfg = mw.loadData('Module:Sidebar/configuration') local p = {} local getArgs = require('Module:Arguments').getArgs --[[ Categorizes calling templates and modules with a 'style' parameter of any sort for tracking to convert to TemplateStyles. TODO after a long cleanup: Catch sidebars in other namespaces than Template and Module. TODO would probably want to remove /log and /archive as CS1 do..."
Scribunto
text/plain
--
-- This module implements {{Sidebar}}
--
require('Module:No globals')
local cfg = mw.loadData('Module:Sidebar/configuration')
local p = {}
local getArgs = require('Module:Arguments').getArgs
--[[
Categorizes calling templates and modules with a 'style' parameter of any sort
for tracking to convert to TemplateStyles.
TODO after a long cleanup: Catch sidebars in other namespaces than Template and Module.
TODO would probably want to remove /log and /archive as CS1 does
]]
local function categorizeTemplatesWithInlineStyles(args)
local title = mw.title.getCurrentTitle()
if title.namespace ~= 10 and title.namespace ~= 828 then return '' end
for _, pattern in ipairs (cfg.i18n.pattern.uncategorized_conversion_titles) do
if title.text:match(pattern) then return '' end
end
for key, _ in pairs(args) do
if mw.ustring.find(key, cfg.i18n.pattern.style_conversion) or key == 'width' then
return cfg.i18n.category.conversion
end
end
end
--[[
For compatibility with the original {{sidebar with collapsible lists}}
implementation, which passed some parameters through {{#if}} to trim their
whitespace. This also triggered the automatic newline behavior.
]]
-- See ([[meta:Help:Newlines and spaces#Automatic newline]])
local function trimAndAddAutomaticNewline(s)
s = mw.ustring.gsub(s, "^%s*(.-)%s*$", "%1")
if mw.ustring.find(s, '^[#*:;]') or mw.ustring.find(s, '^{|') then
return '\n' .. s
else
return s
end
end
--[[
Finds whether a sidebar has a subgroup sidebar.
]]
local function hasSubgroup(s)
if mw.ustring.find(s, cfg.i18n.pattern.subgroup) then
return true
else
return false
end
end
--[[
Main sidebar function. Takes the frame, args, and an optional collapsibleClass.
The collapsibleClass is and should be used only for sidebars with collapsible
lists, as in p.collapsible.
]]
function p.sidebar(frame, args, collapsibleClass)
if not args then
args = getArgs(frame)
end
local root = mw.html.create()
local child = args.child and mw.text.trim(args.child) == cfg.i18n.child_yes
root = root:tag('table')
if not child then
root
:addClass(cfg.i18n.class.sidebar)
-- force collapsibleclass to be sidebar-collapse otherwise output nothing
:addClass(collapsibleClass == cfg.i18n.class.collapse and cfg.i18n.class.collapse or nil)
:addClass('nomobile')
:addClass(args.float == cfg.i18n.float_none and cfg.i18n.class.float_none or nil)
:addClass(args.float == cfg.i18n.float_left and cfg.i18n.class.float_left or nil)
:addClass(args.wraplinks ~= cfg.i18n.wrap_true and cfg.i18n.class.wraplinks or nil)
:addClass(args.bodyclass or args.class)
:css('width', args.width or nil)
:cssText(args.bodystyle or args.style)
if args.outertitle then
root
:tag('caption')
:addClass(cfg.i18n.class.outer_title)
:addClass(args.outertitleclass)
:cssText(args.outertitlestyle)
:wikitext(args.outertitle)
end
if args.topimage then
local imageCell = root:tag('tr'):tag('td')
imageCell
:addClass(cfg.i18n.class.top_image)
:addClass(args.topimageclass)
:cssText(args.topimagestyle)
:wikitext(args.topimage)
if args.topcaption then
imageCell
:tag('div')
:addClass(cfg.i18n.class.top_caption)
:cssText(args.topcaptionstyle)
:wikitext(args.topcaption)
end
end
if args.pretitle then
root
:tag('tr')
:tag('td')
:addClass(args.topimage and cfg.i18n.class.pretitle_with_top_image
or cfg.i18n.class.pretitle)
:addClass(args.pretitleclass)
:cssText(args.basestyle)
:cssText(args.pretitlestyle)
:wikitext(args.pretitle)
end
else
root
:addClass(cfg.i18n.class.subgroup)
:addClass(args.bodyclass or args.class)
:cssText(args.bodystyle or args.style)
end
if args.title then
if child then
root
:wikitext(args.title)
else
root
:tag('tr')
:tag('th')
:addClass(args.pretitle and cfg.i18n.class.title_with_pretitle
or cfg.i18n.class.title)
:addClass(args.titleclass)
:cssText(args.basestyle)
:cssText(args.titlestyle)
:wikitext(args.title)
end
end
if args.image then
local imageCell = root:tag('tr'):tag('td')
imageCell
:addClass(cfg.i18n.class.image)
:addClass(args.imageclass)
:cssText(args.imagestyle)
:wikitext(args.image)
if args.caption then
imageCell
:tag('div')
:addClass(cfg.i18n.class.caption)
:cssText(args.captionstyle)
:wikitext(args.caption)
end
end
if args.above then
root
:tag('tr')
:tag('td')
:addClass(cfg.i18n.class.above)
:addClass(args.aboveclass)
:cssText(args.abovestyle)
:newline() -- newline required for bullet-points to work
:wikitext(args.above)
end
local rowNums = {}
for k, v in pairs(args) do
k = '' .. k
local num = k:match('^heading(%d+)$') or k:match('^content(%d+)$')
if num then table.insert(rowNums, tonumber(num)) end
end
table.sort(rowNums)
-- remove duplicates from the list (e.g. 3 will be duplicated if both heading3
-- and content3 are specified)
for i = #rowNums, 1, -1 do
if rowNums[i] == rowNums[i - 1] then
table.remove(rowNums, i)
end
end
for i, num in ipairs(rowNums) do
local heading = args['heading' .. num]
if heading then
root
:tag('tr')
:tag('th')
:addClass(cfg.i18n.class.heading)
:addClass(args.headingclass)
:addClass(args['heading' .. num .. 'class'])
:cssText(args.basestyle)
:cssText(args.headingstyle)
:cssText(args['heading' .. num .. 'style'])
:newline()
:wikitext(heading)
end
local content = args['content' .. num]
if content then
root
:tag('tr')
:tag('td')
:addClass(hasSubgroup(content) and cfg.i18n.class.content_with_subgroup
or cfg.i18n.class.content)
:addClass(args.contentclass)
:addClass(args['content' .. num .. 'class'])
:cssText(args.contentstyle)
:cssText(args['content' .. num .. 'style'])
:newline()
:wikitext(content)
:done()
-- Without a linebreak after the </td>, a nested list like
-- "* {{hlist| ...}}" doesn't parse correctly.
:newline()
end
end
if args.below then
root
:tag('tr')
:tag('td')
:addClass(cfg.i18n.class.below)
:addClass(args.belowclass)
:cssText(args.belowstyle)
:newline()
:wikitext(args.below)
end
if not child then
if args.navbar ~= cfg.i18n.navbar_none and args.navbar ~= cfg.i18n.navbar_off and
(args.name or frame:getParent():getTitle():gsub(cfg.i18n.pattern.sandbox, '') ~=
cfg.i18n.title_not_to_add_navbar) then
root
:tag('tr')
:tag('td')
:addClass(cfg.i18n.class.navbar)
:cssText(args.navbarstyle)
:wikitext(require('Module:Navbar')._navbar{
args.name,
mini = 1,
fontstyle = args.navbarfontstyle
})
end
end
local base_templatestyles = frame:extensionTag{
name = 'templatestyles', args = { src = cfg.i18n.templatestyles }
}
local templatestyles = ''
if args['templatestyles'] and args['templatestyles'] ~= '' then
templatestyles = frame:extensionTag{
name = 'templatestyles', args = { src = args['templatestyles'] }
}
end
local child_templatestyles = ''
if args['child templatestyles'] and args['child templatestyles'] ~= '' then
child_templatestyles = frame:extensionTag{
name = 'templatestyles', args = { src = args['child templatestyles'] }
}
end
local grandchild_templatestyles = ''
if args['grandchild templatestyles'] and args['grandchild templatestyles'] ~= '' then
grandchild_templatestyles = frame:extensionTag{
name = 'templatestyles', args = { src = args['grandchild templatestyles'] }
}
end
return table.concat({
base_templatestyles,
templatestyles,
child_templatestyles,
grandchild_templatestyles,
tostring(root),
(child and cfg.i18n.category.child or ''),
categorizeTemplatesWithInlineStyles(args)
})
end
local function list_title(args, is_centered_list_titles, num)
local title_text = trimAndAddAutomaticNewline(args['list' .. num .. 'title']
or cfg.i18n.default_list_title)
local title
if is_centered_list_titles then
-- collapsible can be finicky, so provide some CSS/HTML to support
title = mw.html.create('div')
:addClass(cfg.i18n.class.list_title_centered)
:wikitext(title_text)
else
title = mw.html.create()
:wikitext(title_text)
end
local title_container = mw.html.create('div')
:addClass(cfg.i18n.class.list_title)
-- don't /need/ a listnumtitleclass because you can do
-- .templateclass .listnumclass .sidebar-list-title
:addClass(args.listtitleclass)
:cssText(args.basestyle)
:cssText(args.listtitlestyle)
:cssText(args['list' .. num .. 'titlestyle'])
:node(title)
:done()
return title_container
end
--[[
Main entry point for sidebar with collapsible lists.
Does the work of creating the collapsible lists themselves and including them
into the args.
]]
function p.collapsible(frame)
local args = getArgs(frame)
if not args.name and
frame:getParent():getTitle():gsub(cfg.i18n.pattern.collapse_sandbox, '') ==
cfg.i18n.collapse_title_not_to_add_navbar then
args.navbar = cfg.i18n.navbar_none
end
local contentArgs = {}
local is_centered_list_titles
if args['centered list titles'] and args['centered list titles'] ~= '' then
is_centered_list_titles = true
else
is_centered_list_titles = false
end
for k, v in pairs(args) do
local num = string.match(k, '^list(%d+)$')
if num then
local expand = args.expanded and
(args.expanded == 'all' or args.expanded == args['list' .. num .. 'name'])
local row = mw.html.create('div')
row
:addClass(cfg.i18n.class.list)
:addClass('mw-collapsible')
:addClass((not expand) and 'mw-collapsed' or nil)
:addClass(args['list' .. num .. 'class'])
:cssText(args.listframestyle)
:cssText(args['list' .. num .. 'framestyle'])
:node(list_title(args, is_centered_list_titles, num))
:tag('div')
:addClass(cfg.i18n.class.list_content)
:addClass('mw-collapsible-content')
-- don't /need/ a listnumstyleclass because you can do
-- .templatename .listnumclass .sidebar-list
:addClass(args.listclass)
:cssText(args.liststyle)
:cssText(args['list' .. num .. 'style'])
:wikitext(trimAndAddAutomaticNewline(args['list' .. num]))
contentArgs['content' .. num] = tostring(row)
end
end
for k, v in pairs(contentArgs) do
args[k] = v
end
return p.sidebar(frame, args, cfg.i18n.class.collapse)
end
return p
dqe3p6l293j6ldrj3b5n5gg76puqau7
Module:Sidebar/doc
828
1710
15351
2022-07-27T18:21:24Z
Kambai Akau
15
Created page with "{{High-risk|155000+}} {{module rating|protected}} {{Lua|Module:Sidebar/configuration|Module:Navbar|Module:No globals|Module:Arguments}} {{Uses TemplateStyles|Module:Sidebar/styles.css}} This module implements the templates {{tl|sidebar}} and {{tl|sidebar with collapsible lists}}. See the individual template pages for documentation. <includeonly>{{sandbox other|| <!-- Categories below this line; interwikis at Wikidata --> [[Category:Sidebar meta-templates| ]] }}</includ..."
wikitext
text/x-wiki
{{High-risk|155000+}}
{{module rating|protected}}
{{Lua|Module:Sidebar/configuration|Module:Navbar|Module:No globals|Module:Arguments}}
{{Uses TemplateStyles|Module:Sidebar/styles.css}}
This module implements the templates {{tl|sidebar}} and {{tl|sidebar with collapsible lists}}. See the individual template pages for documentation.
<includeonly>{{sandbox other||
<!-- Categories below this line; interwikis at Wikidata -->
[[Category:Sidebar meta-templates| ]]
}}</includeonly>
nlbpqdtqg27kern79whrrpfmssy7b9g
Module:Sidebar/configuration
828
1711
15352
2022-07-27T18:22:21Z
Kambai Akau
15
Created page with "return { i18n = { child_yes = 'yes', float_none = 'none', float_left = 'left', wrap_true = 'true', navbar_none = 'none', navbar_off = 'off', default_list_title = 'List', title_not_to_add_navbar = 'Template:Sidebar', collapse_title_not_to_add_navbar = 'Template:Sidebar with collapsible lists', templatestyles = 'Module:Sidebar/styles.css', category = { child = '[[Category:Pages using sidebar with the child parameter]]', conversion = '[[Category..."
Scribunto
text/plain
return {
i18n = {
child_yes = 'yes',
float_none = 'none',
float_left = 'left',
wrap_true = 'true',
navbar_none = 'none',
navbar_off = 'off',
default_list_title = 'List',
title_not_to_add_navbar = 'Template:Sidebar',
collapse_title_not_to_add_navbar = 'Template:Sidebar with collapsible lists',
templatestyles = 'Module:Sidebar/styles.css',
category = {
child = '[[Category:Pages using sidebar with the child parameter]]',
conversion = '[[Category:Sidebars with styles needing conversion]]'
},
pattern = {
collapse_sandbox = '/sandbox$',
sandbox = '/sandbox$',
subgroup = 'sidebar%-subgroup',
style_conversion = 'style$',
uncategorized_conversion_titles = {
'/[Ss]andbox',
'/[Tt]estcases',
'/[Dd]oc$'
}
},
class = {
sidebar = 'sidebar',
subgroup = 'sidebar-subgroup',
collapse = 'sidebar-collapse',
float_none = 'sidebar-none',
float_left = 'sidebar-left',
wraplinks = 'nowraplinks',
outer_title = 'sidebar-outer-title',
top_image = 'sidebar-top-image',
top_caption = 'sidebar-top-caption',
pretitle = 'sidebar-pretitle',
pretitle_with_top_image = 'sidebar-pretitle-with-top-image',
title = 'sidebar-title',
title_with_pretitle = 'sidebar-title-with-pretitle',
image = 'sidebar-image',
caption = 'sidebar-caption',
above = 'sidebar-above',
heading = 'sidebar-heading',
content = 'sidebar-content',
content_with_subgroup = 'sidebar-content-with-subgroup',
below = 'sidebar-below',
navbar = 'sidebar-navbar',
list = 'sidebar-list',
list_title = 'sidebar-list-title',
list_title_centered = 'sidebar-list-title-c',
list_content = 'sidebar-list-content'
}
}
}
0rujaua8lftdvsbwq4988fo6iw6xlak
Module:Sidebar/styles.css
828
1712
15353
2022-07-27T18:25:43Z
Kambai Akau
15
Created page with "/* {{pp-template}} */ /* TODO: Invert width design to be "mobile first" */ .sidebar { /* TODO: Ask if we should have max-width 22em instead */ width: 22em; /* @noflip */ float: right; /* @noflip */ clear: right; /* @noflip */ margin: 0.5em 0 1em 1em; background: #f8f9fa; border: 1px solid #aaa; padding: 0.2em; text-align: center; line-height: 1.4em; font-size: 88%; border-collapse: collapse; /* Timeless has display: none on .nomobile at mobile resolutions..."
sanitized-css
text/css
/* {{pp-template}} */
/* TODO: Invert width design to be "mobile first" */
.sidebar {
/* TODO: Ask if we should have max-width 22em instead */
width: 22em;
/* @noflip */
float: right;
/* @noflip */
clear: right;
/* @noflip */
margin: 0.5em 0 1em 1em;
background: #f8f9fa;
border: 1px solid #aaa;
padding: 0.2em;
text-align: center;
line-height: 1.4em;
font-size: 88%;
border-collapse: collapse;
/* Timeless has display: none on .nomobile at mobile resolutions, so we
* unhide it with display: table and let precedence and proximity win.
*/
display: table;
}
/* Unfortunately, so does Minerva desktop, except Minerva drops an
* !important on the declaration. So we have to be mean for Minerva users.
* Mobile removes the element entirely with `wgMFRemovableClasses` in
* https://github.com/wikimedia/operations-mediawiki-config/blob/master/
wmf-config/InitialiseSettings.php#L16992
* which is why displaying it categorically with display: table works.
* We don't really want to expose the generic user in the wild on mobile to have
* to deal with sidebars. (Maybe the ones with collapsible lists, so that
* might be an improvement. That is blocked on [[:phab:T111565]].)
*/
body.skin-minerva .sidebar {
display: table !important;
/* also, minerva is way too aggressive about other stylings on tables.
* TODO remove when this template gets moved to a div. plans on talk page.
* We always float right on Minerva because that's a lot of extra CSS
* otherwise. */
float: right !important;
margin: 0.5em 0 1em 1em !important;
}
.sidebar-subgroup {
width: 100%;
margin: 0;
border-spacing: 0;
}
.sidebar-left {
/* @noflip */
float: left;
/* @noflip */
clear: left;
/* @noflip */
margin: 0.5em 1em 1em 0;
}
.sidebar-none {
float: none;
clear: both;
/* @noflip */
margin: 0.5em 1em 1em 0;
}
.sidebar-outer-title {
padding: 0 0.4em 0.2em;
font-size: 125%;
line-height: 1.2em;
font-weight: bold;
}
.sidebar-top-image {
padding: 0.4em;
}
.sidebar-top-caption,
.sidebar-pretitle-with-top-image,
.sidebar-caption {
padding: 0.2em 0.4em 0;
line-height: 1.2em;
}
.sidebar-pretitle {
padding: 0.4em 0.4em 0;
line-height: 1.2em;
}
.sidebar-title,
.sidebar-title-with-pretitle {
padding: 0.2em 0.8em;
font-size: 145%;
line-height: 1.2em;
}
.sidebar-title-with-pretitle {
padding: 0.1em 0.4em;
}
.sidebar-image {
padding: 0.2em 0.4em 0.4em;
}
.sidebar-heading {
padding: 0.1em 0.4em;
}
.sidebar-content {
padding: 0 0.5em 0.4em;
}
.sidebar-content-with-subgroup {
padding: 0.1em 0.4em 0.2em;
}
.sidebar-above,
.sidebar-below {
padding: 0.3em 0.8em;
font-weight: bold;
}
.sidebar-collapse .sidebar-above,
.sidebar-collapse .sidebar-below {
border-top: 1px solid #aaa;
border-bottom: 1px solid #aaa;
}
.sidebar-navbar {
text-align: right;
font-size: 115%;
padding: 0 0.4em 0.4em;
}
.sidebar-list-title {
padding: 0 0.4em;
text-align: left;
font-weight: bold;
line-height: 1.6em;
font-size: 105%;
}
/* centered text with mw-collapsible headers is finicky */
.sidebar-list-title-c {
padding: 0 0.4em;
text-align: center;
margin: 0 3.3em;
}
@media (max-width: 720px) {
/* users have wide latitude to set arbitrary width and margin :(
"Super-specific" selector to prevent overriding this appearance by
lower level sidebars too */
body.mediawiki .sidebar {
width: 100% !important;
clear: both;
float: none !important; /* Remove when we div based; Minerva is dumb */
margin-left: 0 !important;
margin-right: 0 !important;
}
/* TODO: We might consider making all links wrap at small resolutions and then
* only introduce nowrap at higher resolutions. Do when we invert the media
* query.
*/
}
en9f828813j59rhubpbkm63sj6kasx7
Ta̱mpi̱let:High-risk
10
1713
15355
15354
2022-07-27T18:33:01Z
Kambai Akau
15
Redirected page to [[Ta̱mpi̱let:High-use]]
wikitext
text/x-wiki
#REDIRECT [[Template:High-use]]
e17i7zdjae1f1pi88fnci4b96lfz175
Module:Effective protection level
828
1714
15356
2022-07-27T18:34:14Z
Kambai Akau
15
Created page with "local p = {} -- Returns the permission required to perform a given action on a given title. -- If no title is specified, the title of the page being displayed is used. function p._main(action, pagename) local title if type(pagename) == 'table' and pagename.prefixedText then title = pagename elseif pagename then title = mw.title.new(pagename) else title = mw.title.getCurrentTitle() end pagename = title.prefixedText if action == 'autoreview' then local leve..."
Scribunto
text/plain
local p = {}
-- Returns the permission required to perform a given action on a given title.
-- If no title is specified, the title of the page being displayed is used.
function p._main(action, pagename)
local title
if type(pagename) == 'table' and pagename.prefixedText then
title = pagename
elseif pagename then
title = mw.title.new(pagename)
else
title = mw.title.getCurrentTitle()
end
pagename = title.prefixedText
if action == 'autoreview' then
local level = mw.ext.FlaggedRevs.getStabilitySettings(title)
level = level and level.autoreview
if level == 'review' then
return 'reviewer'
elseif level ~= '' then
return level
else
return nil -- not '*'. a page not being PC-protected is distinct from it being PC-protected with anyone able to review. also not '', as that would mean PC-protected but nobody can review
end
elseif action ~= 'edit' and action ~= 'move' and action ~= 'create' and action ~= 'upload' and action ~= 'undelete' then
error( 'First parameter must be one of edit, move, create, upload, undelete, autoreview', 2 )
end
if title.namespace == 8 then -- MediaWiki namespace
if title.text:sub(-3) == '.js' or title.text:sub(-4) == '.css' or title.contentModel == 'javascript' or title.contentModel == 'css' then -- site JS or CSS page
return 'interfaceadmin'
else -- any non-JS/CSS MediaWiki page
return 'sysop'
end
elseif title.namespace == 2 and title.isSubpage then
if title.contentModel == 'javascript' or title.contentModel == 'css' then -- user JS or CSS page
return 'interfaceadmin'
elseif title.contentModel == 'json' then -- user JSON page
return 'sysop'
end
end
if action == 'undelete' then
return 'sysop'
end
local level = title.protectionLevels[action] and title.protectionLevels[action][1]
if level == 'sysop' or level == 'editprotected' then
return 'sysop'
elseif title.cascadingProtection.restrictions[action] and title.cascadingProtection.restrictions[action][1] then -- used by a cascading-protected page
return 'sysop'
elseif level == 'templateeditor' then
return 'templateeditor'
elseif action == 'move' then
local blacklistentry = mw.ext.TitleBlacklist.test('edit', pagename) -- Testing action edit is correct, since this is for the source page. The target page name gets tested with action move.
if blacklistentry and not blacklistentry.params.autoconfirmed then
return 'templateeditor'
elseif title.namespace == 6 then
return 'filemover'
elseif level == 'extendedconfirmed' then
return 'extendedconfirmed'
else
return 'autoconfirmed'
end
end
local blacklistentry = mw.ext.TitleBlacklist.test(action, pagename)
if blacklistentry then
if not blacklistentry.params.autoconfirmed then
return 'templateeditor'
elseif level == 'extendedconfirmed' then
return 'extendedconfirmed'
else
return 'autoconfirmed'
end
elseif level == 'editsemiprotected' then -- create-semiprotected pages return this for some reason
return 'autoconfirmed'
elseif level then
return level
elseif action == 'upload' then
return 'autoconfirmed'
elseif action == 'create' and title.namespace % 2 == 0 and title.namespace ~= 118 then -- You need to be registered, but not autoconfirmed, to create non-talk pages other than drafts
return 'user'
else
return '*'
end
end
setmetatable(p, { __index = function(t, k)
return function(frame)
return t._main(k, frame.args[1])
end
end })
return p
d3lhy0comfcfe9lnnj8klmrfqm1oxw7
Module:Effective protection level/doc
828
1715
15357
2022-07-27T18:35:01Z
Kambai Akau
15
Created page with "{{Module rating|protected}} {{used in system}} This module provides a way to retrieve the group required to perform a given action on a page. It currently tests the following criteria: * The page being pending-changes protected: autoconfirmed * The page being a JavaScript or CSS subpage in userspace, or in the MediaWiki namespace: interfaceadmin * The page being in the MediaWiki namespace: sysop * The page being a JSON subpage in userspace: sysop * The page being protec..."
wikitext
text/x-wiki
{{Module rating|protected}}
{{used in system}}
This module provides a way to retrieve the group required to perform a given action on a page. It currently tests the following criteria:
* The page being pending-changes protected: autoconfirmed
* The page being a JavaScript or CSS subpage in userspace, or in the MediaWiki namespace: interfaceadmin
* The page being in the MediaWiki namespace: sysop
* The page being a JSON subpage in userspace: sysop
* The page being protected: sysop, templateeditor, extendedconfirmed, or autoconfirmed
* The page being used in a cascading-protected page: sysop
* The page's title matching the titleblacklist: templateeditor or autoconfirmed
* A file being moved: filemover
* A page being moved or a file being uploaded: autoconfirmed
* A non-Draft non-talk page being created: user
* Anything else: *
Note that if a template-protected file is moved, both filemover and templateeditor are required, but this will return only templateeditor. This is not likely to be changed any time soon, since template protection currently shouldn't be used on files.
bxbgugyphfhz31ucjyfh6dbcqfv7uve
Module:Transclusion count/data/S
828
1716
15358
2022-07-27T18:36:59Z
Kambai Akau
15
Created page with "return { ["S"] = 3700, ["S-aca"] = 6200, ["S-ach"] = 16000, ["S-aft"] = 211000, ["S-aft/filter"] = 211000, ["S-bef"] = 216000, ["S-bef/filter"] = 216000, ["S-break"] = 4700, ["S-civ"] = 2500, ["S-dip"] = 5200, ["S-end"] = 243000, ["S-gov"] = 7500, ["S-hon"] = 3600, ["S-hou"] = 9300, ["S-inc"] = 13000, ["S-legal"] = 9000, ["S-line"] = 5900, ["S-line/side_cell"] = 5900, ["S-mil"] = 12000, ["S-new"] = 15000, ["S-non"] = 9000, ["S-npo"] = 3600, ["S-off"] = 39000, ["S-par"] =..."
Scribunto
text/plain
return {
["S"] = 3700,
["S-aca"] = 6200,
["S-ach"] = 16000,
["S-aft"] = 211000,
["S-aft/filter"] = 211000,
["S-bef"] = 216000,
["S-bef/filter"] = 216000,
["S-break"] = 4700,
["S-civ"] = 2500,
["S-dip"] = 5200,
["S-end"] = 243000,
["S-gov"] = 7500,
["S-hon"] = 3600,
["S-hou"] = 9300,
["S-inc"] = 13000,
["S-legal"] = 9000,
["S-line"] = 5900,
["S-line/side_cell"] = 5900,
["S-mil"] = 12000,
["S-new"] = 15000,
["S-non"] = 9000,
["S-npo"] = 3600,
["S-off"] = 39000,
["S-par"] = 49000,
["S-par/en"] = 3200,
["S-par/gb"] = 3200,
["S-par/uk"] = 11000,
["S-par/us-hs"] = 11000,
["S-par/us-sen"] = 2000,
["S-ppo"] = 12000,
["S-prec"] = 3100,
["S-rail"] = 12000,
["S-rail-start"] = 11000,
["S-rail/lines"] = 12000,
["S-reg"] = 20000,
["S-rel"] = 17000,
["S-roy"] = 2600,
["S-s"] = 3600,
["S-sports"] = 10000,
["S-start"] = 233000,
["S-ttl"] = 222000,
["S-vac"] = 5600,
["SCO"] = 4000,
["SDcat"] = 4890000,
["SECOND"] = 2300,
["SG"] = 2400,
["SGP"] = 2500,
["SIA"] = 2500,
["SLO"] = 3900,
["SMS"] = 6800,
["SPI_archive_notice"] = 65000,
["SPIarchive_notice"] = 65000,
["SPIcat"] = 3800,
["SPIclose"] = 3300,
["SPIpriorcases"] = 60000,
["SR/Olympics_profile"] = 3800,
["SRB"] = 3400,
["SS"] = 19000,
["SSPa"] = 2600,
["STN"] = 12000,
["SUBJECTSPACE_formatted"] = 41000,
["SUI"] = 8500,
["SVG"] = 3500,
["SVG-Logo"] = 17000,
["SVG-Res"] = 15000,
["SVG-logo"] = 3100,
["SVK"] = 5500,
["SVN"] = 4800,
["SWE"] = 13000,
["Sandbox_other"] = 204000,
["Saturday"] = 2600,
["Saved_book"] = 52000,
["Sc"] = 2400,
["Scholia"] = 2400,
["School_block"] = 25000,
["School_disambiguation"] = 3300,
["Schoolblock"] = 17000,
["Schooldis"] = 2600,
["Schoolip"] = 14000,
["Scientist_icon"] = 15000,
["Scientist_icon2"] = 15000,
["Sclass"] = 30000,
["Sclass/core"] = 33000,
["Sclass2"] = 9300,
["Screen_reader-only"] = 3400,
["Screen_reader-only/styles.css"] = 3700,
["Script"] = 4900,
["Script/Hebrew"] = 4500,
["Script/Nastaliq"] = 12000,
["Script/doc/id-unk"] = 2600,
["Script/doc/id-unk/core"] = 2600,
["Script/doc/id-unk/is-iso-alpha4"] = 2500,
["Script/doc/id-unk/name-to-alpha4"] = 2600,
["Script/styles.css"] = 2700,
["Script/styles_hebrew.css"] = 4500,
["Sdash"] = 2800,
["Search_box"] = 43000,
["Search_link"] = 8200,
["Section_link"] = 42000,
["See"] = 10000,
["See_also"] = 172000,
["Seealso"] = 6300,
["Select_skin"] = 4000,
["Selected_article"] = 2800,
["Selected_picture"] = 2500,
["Self"] = 57000,
["Self-published_inline"] = 4100,
["Self-published_source"] = 6500,
["Self-reference_tool"] = 4000,
["Self/migration"] = 39000,
["Self2"] = 2400,
["Self_reference"] = 2700,
["SemiBareRefNeedsTitle"] = 2300,
["Sent_off"] = 12000,
["Sentoff"] = 3700,
["Separated_entries"] = 154000,
["Sequence"] = 3900,
["Serial_killer_opentask"] = 3100,
["Series_overview"] = 6700,
["Serif"] = 2800,
["Set_category"] = 34000,
["Set_index_article"] = 5400,
["Sets_taxobox_colour"] = 120000,
["Sfn"] = 136000,
["SfnRef"] = 123000,
["Sfnm"] = 2900,
["Sfnp"] = 15000,
["Sfnref"] = 9100,
["Sfrac"] = 3900,
["Sfrac/styles.css"] = 3900,
["SharedIP"] = 6900,
["SharedIPEDU"] = 9100,
["SharedIPedu"] = 2100,
["Shared_IP"] = 32000,
["Shared_IP_advice"] = 16000,
["Shared_IP_corp"] = 7200,
["Shared_IP_edu"] = 131000,
["Shared_IP_gov"] = 4100,
["Sharedip"] = 9400,
["Sharedipedu"] = 14000,
["Sherdog"] = 2600,
["Ship"] = 82000,
["Ship/maintenancecategory"] = 82000,
["Ship_index"] = 6800,
["Shipboxflag"] = 19000,
["Shipboxflag/core"] = 19000,
["Shipwrecks_navbox_footer"] = 9600,
["Shipwrecks_navbox_footer/link"] = 9600,
["Short_description"] = 4990000,
["Short_description/lowercasecheck"] = 4990000,
["Short_pages_monitor"] = 9700,
["Short_pages_monitor/maximum_length"] = 9800,
["Shortcut"] = 19000,
["Shortcut/styles.css"] = 23000,
["Should_be_SVG"] = 9600,
["Show_button"] = 2650000,
["Sic"] = 29000,
["Sica"] = 2900,
["Side_box"] = 1030000,
["Sidebar"] = 206000,
["Sidebar_games_events"] = 34000,
["Sidebar_with_collapsible_lists"] = 88000,
["Sigfig"] = 3300,
["Significant_figures"] = 4100,
["Significant_figures/rnd"] = 3700,
["Signpost-subscription"] = 2000,
["Silver02"] = 15000,
["Silver2"] = 45000,
["Silver_medal"] = 5000,
["Single+double"] = 5500,
["Single+space"] = 13000,
["Single-innings_cricket_match"] = 2900,
["Single_chart"] = 34000,
["Single_chart/chartnote"] = 34000,
["Single_namespace"] = 188000,
["Singlechart"] = 21000,
["Singles"] = 39000,
["Sister-inline"] = 173000,
["Sister_project"] = 1010000,
["Sister_project_links"] = 10000,
["Sisterlinks"] = 3400,
["Skip_to_talk"] = 12000,
["Skip_to_talk/styles.css"] = 12000,
["Sky"] = 2700,
["Sky/styles.css"] = 2500,
["Slink"] = 6100,
["Small"] = 1020000,
["Small_Solar_System_bodies"] = 3600,
["Smallcaps"] = 17000,
["Smallcaps/styles.css"] = 17000,
["Smallcaps_all"] = 2500,
["Smalldiv"] = 18000,
["Smaller"] = 70000,
["Smallsup"] = 20000,
["Smiley"] = 40000,
["Snd"] = 104000,
["Snds"] = 6200,
["Soccer_icon"] = 133000,
["Soccer_icon2"] = 133000,
["Soccer_icon4"] = 5600,
["Soccerbase"] = 13000,
["Soccerbase_season"] = 6300,
["Soccerway"] = 70000,
["Sock"] = 46000,
["Sockcat"] = 2100,
["Sockmaster"] = 9000,
["Sockpuppet"] = 226000,
["Sockpuppet/categorise"] = 226000,
["SockpuppetCheckuser"] = 5500,
["Sockpuppet_category"] = 45000,
["Sockpuppet_category/confirmed"] = 22000,
["Sockpuppet_category/suspected"] = 23000,
["Sockpuppetcheckuser"] = 3600,
["Sockpuppeteer"] = 23000,
["Soft_redirect"] = 6000,
["Soft_redirect_protection"] = 7900,
["Softredirect"] = 3200,
["Solar_luminosity"] = 4100,
["Solar_mass"] = 4800,
["Solar_radius"] = 3900,
["Soldier_icon"] = 3900,
["Soldier_icon2"] = 3900,
["Song"] = 7800,
["Songs"] = 19000,
["Songs_category"] = 7800,
["Songs_category/core"] = 7800,
["Sort"] = 109000,
["Sortname"] = 48000,
["Source-attribution"] = 21000,
["Source_check"] = 973000,
["Sourcecheck"] = 973000,
["South_America_topic"] = 2500,
["Sp"] = 230000,
["Space"] = 56000,
["Space+double"] = 17000,
["Space+single"] = 12000,
["Spaced_en_dash"] = 135000,
["Spaced_en_dash_space"] = 6200,
["Spaced_ndash"] = 23000,
["Spaces"] = 3190000,
["Spain_metadata_Wikidata"] = 7400,
["Spamlink"] = 12000,
["Species_Latin_name_abbreviation_disambiguation"] = 2200,
["Species_list"] = 13000,
["Speciesbox"] = 255000,
["Speciesbox/getGenus"] = 255000,
["Speciesbox/getSpecies"] = 255000,
["Speciesbox/name"] = 255000,
["Speciesbox/parameterCheck"] = 255000,
["Speciesbox/trim"] = 255000,
["Specieslist"] = 4600,
["Split_article"] = 3400,
["Spnd"] = 3700,
["Sport_icon"] = 14000,
["Sport_icon2"] = 15000,
["SportsYearCatUSstate"] = 6400,
["SportsYearCatUSstate/core"] = 6400,
["Sports_links"] = 58000,
["Sports_reference"] = 7600,
["Squad_maintenance"] = 2800,
["Square_bracket_close"] = 90000,
["Square_bracket_open"] = 93000,
["Srt"] = 4000,
["Stack"] = 24000,
["Stack/styles.css"] = 32000,
["Stack_begin"] = 8300,
["Stack_end"] = 8300,
["StaleIP"] = 3000,
["Standings_Table_End"] = 50000,
["Standings_Table_Entry"] = 50000,
["Standings_Table_Entry/record"] = 50000,
["Standings_Table_Start"] = 50000,
["Standings_Table_Start/colheader"] = 50000,
["Standings_Table_Start/colspan"] = 50000,
["Starbox_astrometry"] = 4800,
["Starbox_begin"] = 5000,
["Starbox_catalog"] = 4900,
["Starbox_character"] = 4800,
["Starbox_detail"] = 4700,
["Starbox_end"] = 5000,
["Starbox_image"] = 2600,
["Starbox_observe"] = 4800,
["Starbox_reference"] = 4900,
["Start-Class"] = 117000,
["Start-date"] = 4000,
["Start_and_end_dates"] = 2300,
["Start_box"] = 7700,
["Start_date"] = 411000,
["Start_date_and_age"] = 120000,
["Start_date_and_years_ago"] = 6900,
["Start_of_course_timeline"] = 5200,
["Start_of_course_week"] = 5400,
["Start_tab"] = 4500,
["Startflatlist"] = 140000,
["Static_IP"] = 12000,
["Station"] = 7100,
["Station_link"] = 12000,
["Stdinchicite"] = 10000,
["Steady"] = 12000,
["Stl"] = 9600,
["Stn"] = 6700,
["Stnlnk"] = 29000,
["Stop"] = 2100,
["Storm_colour"] = 4900,
["StoryTeleplay"] = 3000,
["Str_endswith"] = 170000,
["Str_find"] = 103000,
["Str_index"] = 12000,
["Str_left"] = 1220000,
["Str_len"] = 19000,
["Str_letter"] = 171000,
["Str_letter/trim"] = 8500,
["Str_number"] = 8000,
["Str_number/trim"] = 33000,
["Str_rep"] = 296000,
["Str_sub_new"] = 3100,
["Str_trim"] = 6100,
["Str_≠_len"] = 30000,
["Str_≥_len"] = 61000,
["Strfind_short"] = 6100,
["Strikethrough"] = 15000,
["Strip_tags"] = 36000,
["Strong"] = 775000,
["Structurae"] = 2100,
["Stub-Class"] = 42000,
["Stub_Category"] = 13000,
["Stub_category"] = 17000,
["Stub_documentation"] = 36000,
["Student_editor"] = 27000,
["Student_sandbox"] = 4500,
["Student_table_row"] = 4500,
["Students_table"] = 4500,
["Su"] = 11000,
["Su-census1989"] = 4100,
["Sub"] = 3500,
["Subinfobox_bodystyle"] = 34000,
["Subject_bar"] = 18000,
["Suboff"] = 5800,
["Subon"] = 5900,
["Subpage_other"] = 250000,
["Subscription"] = 5200,
["Subscription_required"] = 34000,
["Subsidebar_bodystyle"] = 7900,
["Subst_only"] = 4300,
["Substituted_comment"] = 19000,
["Succession_box"] = 117000,
["Succession_links"] = 143000,
["Summer_Olympics_by_year_category_navigation"] = 2600,
["Summer_Olympics_by_year_category_navigation/core"] = 2600,
["Sunday"] = 2600,
["Sup"] = 71000,
["Superimpose2/base"] = 2300,
["Superimpose5"] = 2000,
["Suppress_categories"] = 2000,
["Surname"] = 63000,
["Swiss_populations"] = 2400,
["Swiss_populations_NC"] = 3000,
["Swiss_populations_YM"] = 2300,
["Swiss_populations_ref"] = 2400,
["Module:SDcat"] = 4890000,
["Module:SPI_archive_notice"] = 30000,
["Module:Science_redirect"] = 240000,
["Module:Science_redirect/conf"] = 240000,
["Module:Section_link"] = 42000,
["Module:See_also_if_exists"] = 71000,
["Module:Separated_entries"] = 2160000,
["Module:Series_overview"] = 6800,
["Module:Settlement_short_description"] = 688000,
["Module:Shortcut"] = 23000,
["Module:Shortcut/config"] = 23000,
["Module:Side_box"] = 1060000,
["Module:Side_box/styles.css"] = 1050000,
["Module:Sidebar"] = 280000,
["Module:Sidebar/configuration"] = 280000,
["Module:Sidebar/styles.css"] = 286000,
["Module:Sidebar_games_events"] = 34000,
["Module:Sidebar_games_events/styles.css"] = 34000,
["Module:Singles"] = 39000,
["Module:Sister_project_links"] = 13000,
["Module:Sister_project_links/bar/styles.css"] = 2400,
["Module:Sister_project_links/styles.css"] = 10000,
["Module:Sort_title"] = 16000,
["Module:Sortkey"] = 179000,
["Module:Sports_career"] = 18000,
["Module:Sports_color"] = 63000,
["Module:Sports_color/baseball"] = 33000,
["Module:Sports_color/basketball"] = 22000,
["Module:Sports_rbr_table"] = 9700,
["Module:Sports_rbr_table/styles.css"] = 9700,
["Module:Sports_reference"] = 7600,
["Module:Sports_results"] = 13000,
["Module:Sports_results/styles.css"] = 8800,
["Module:Sports_table"] = 51000,
["Module:Sports_table/WDL"] = 46000,
["Module:Sports_table/WL"] = 3400,
["Module:Sports_table/argcheck"] = 51000,
["Module:Sports_table/styles.css"] = 51000,
["Module:Sports_table/sub"] = 51000,
["Module:Sports_table/totalscheck"] = 36000,
["Module:Stock_tickers/NYSE"] = 2200,
["Module:Storm_categories"] = 4900,
["Module:Storm_categories/categories"] = 4900,
["Module:Storm_categories/colors"] = 4900,
["Module:Storm_categories/icons"] = 4900,
["Module:String"] = 11000000,
["Module:String2"] = 1730000,
["Module:Su"] = 11000,
["Module:Subject_bar"] = 18000,
["Module:Suppress_categories"] = 2200,
}
3w5i849ufhh5b33dubfeul8e21xysnn
Ta̱mpi̱let:Helpbox/styles.css
10
1717
15359
2022-07-27T18:39:15Z
Kambai Akau
15
Created page with "/* {{pp|small=y}} */ .help-box { background: #f5faff; line-height: 1.6em; } .help-box .sidebar-title { background: #cee0f2; font-size: 130%; padding-left: 0.4em; padding-right: 0.4em; /* gap before first heading/content */ margin-bottom: 6px; } .help-box .sidebar-heading { background: #cee0f2; padding: 0.1em 0.7em 0.15em; } .help-box .sidebar-content, /* conservatively target subgroups since we're working with a metatemplate */ .help-box .sidebar-content-with..."
sanitized-css
text/css
/* {{pp|small=y}} */
.help-box {
background: #f5faff;
line-height: 1.6em;
}
.help-box .sidebar-title {
background: #cee0f2;
font-size: 130%;
padding-left: 0.4em;
padding-right: 0.4em; /* gap before first heading/content */
margin-bottom: 6px;
}
.help-box .sidebar-heading {
background: #cee0f2;
padding: 0.1em 0.7em 0.15em;
}
.help-box .sidebar-content,
/* conservatively target subgroups since we're working with a metatemplate */
.help-box .sidebar-content-with-subgroup {
padding-top: 0.15em;
}
@media all and (min-width: 720px) {
.help-box {
width: auto;
max-width: 22em;
}
}
r8x3ccmevl6vhprccndi102ptc4olel
Ta̱mpi̱let:Pp-semi-indef
10
1718
15360
2022-07-27T18:40:25Z
Kambai Akau
15
Created page with "<includeonly>{{#invoke:Protection banner|main}}</includeonly><noinclude> {{documentation}} <!-- Categories go on the /doc subpage, and interwikis go on Wikidata. --> </noinclude>"
wikitext
text/x-wiki
<includeonly>{{#invoke:Protection banner|main}}</includeonly><noinclude>
{{documentation}}
<!-- Categories go on the /doc subpage, and interwikis go on Wikidata. -->
</noinclude>
5t6lal9n9hcpwsso2obr7pcyjbg26xc
Ta̱mpi̱let:Pp-semi-indef/doc
10
1719
15361
2022-07-27T18:41:07Z
Kambai Akau
15
Created page with "{{Documentation subpage}} {{Twinkle standard installation}} {{lua|Module:Protection banner}} <!-- PLEASE ADD CATEGORIES AND INTERWIKIS AT THE BOTTOM OF THIS PAGE --> '''Note: This template is not blank; see the top right corner of the protected page'''"
wikitext
text/x-wiki
{{Documentation subpage}}
{{Twinkle standard installation}}
{{lua|Module:Protection banner}}
<!-- PLEASE ADD CATEGORIES AND INTERWIKIS AT THE BOTTOM OF THIS PAGE -->
'''Note: This template is not blank; see the top right corner of the protected page'''
3obv7afjqx82ep83gqtkon0292neot2
Module:Protection banner
828
1720
15362
2022-07-27T18:43:05Z
Kambai Akau
15
Created page with "-- This module implements {{pp-meta}} and its daughter templates such as -- {{pp-dispute}}, {{pp-vandalism}} and {{pp-sock}}. -- Initialise necessary modules. require('Module:No globals') local makeFileLink = require('Module:File link')._main local effectiveProtectionLevel = require('Module:Effective protection level')._main local effectiveProtectionExpiry = require('Module:Effective protection expiry')._main local yesno = require('Module:Yesno') -- Lazily initialise m..."
Scribunto
text/plain
-- This module implements {{pp-meta}} and its daughter templates such as
-- {{pp-dispute}}, {{pp-vandalism}} and {{pp-sock}}.
-- Initialise necessary modules.
require('Module:No globals')
local makeFileLink = require('Module:File link')._main
local effectiveProtectionLevel = require('Module:Effective protection level')._main
local effectiveProtectionExpiry = require('Module:Effective protection expiry')._main
local yesno = require('Module:Yesno')
-- Lazily initialise modules and objects we don't always need.
local getArgs, makeMessageBox, lang
-- Set constants.
local CONFIG_MODULE = 'Module:Protection banner/config'
--------------------------------------------------------------------------------
-- Helper functions
--------------------------------------------------------------------------------
local function makeCategoryLink(cat, sort)
if cat then
return string.format(
'[[%s:%s|%s]]',
mw.site.namespaces[14].name,
cat,
sort
)
end
end
-- Validation function for the expiry and the protection date
local function validateDate(dateString, dateType)
if not lang then
lang = mw.language.getContentLanguage()
end
local success, result = pcall(lang.formatDate, lang, 'U', dateString)
if success then
result = tonumber(result)
if result then
return result
end
end
error(string.format(
'invalid %s: %s',
dateType,
tostring(dateString)
), 4)
end
local function makeFullUrl(page, query, display)
return string.format(
'[%s %s]',
tostring(mw.uri.fullUrl(page, query)),
display
)
end
-- Given a directed graph formatted as node -> table of direct successors,
-- get a table of all nodes reachable from a given node (though always
-- including the given node).
local function getReachableNodes(graph, start)
local toWalk, retval = {[start] = true}, {}
while true do
-- Can't use pairs() since we're adding and removing things as we're iterating
local k = next(toWalk) -- This always gets the "first" key
if k == nil then
return retval
end
toWalk[k] = nil
retval[k] = true
for _,v in ipairs(graph[k]) do
if not retval[v] then
toWalk[v] = true
end
end
end
end
--------------------------------------------------------------------------------
-- Protection class
--------------------------------------------------------------------------------
local Protection = {}
Protection.__index = Protection
Protection.supportedActions = {
edit = true,
move = true,
autoreview = true,
upload = true
}
Protection.bannerConfigFields = {
'text',
'explanation',
'tooltip',
'alt',
'link',
'image'
}
function Protection.new(args, cfg, title)
local obj = {}
obj._cfg = cfg
obj.title = title or mw.title.getCurrentTitle()
-- Set action
if not args.action then
obj.action = 'edit'
elseif Protection.supportedActions[args.action] then
obj.action = args.action
else
error(string.format(
'invalid action: %s',
tostring(args.action)
), 3)
end
-- Set level
obj.level = args.demolevel or effectiveProtectionLevel(obj.action, obj.title)
if not obj.level or (obj.action == 'move' and obj.level == 'autoconfirmed') then
-- Users need to be autoconfirmed to move pages anyway, so treat
-- semi-move-protected pages as unprotected.
obj.level = '*'
end
-- Set expiry
local effectiveExpiry = effectiveProtectionExpiry(obj.action, obj.title)
if effectiveExpiry == 'infinity' then
obj.expiry = 'indef'
elseif effectiveExpiry ~= 'unknown' then
obj.expiry = validateDate(effectiveExpiry, 'expiry date')
end
-- Set reason
if args[1] then
obj.reason = mw.ustring.lower(args[1])
if obj.reason:find('|') then
error('reasons cannot contain the pipe character ("|")', 3)
end
end
-- Set protection date
if args.date then
obj.protectionDate = validateDate(args.date, 'protection date')
end
-- Set banner config
do
obj.bannerConfig = {}
local configTables = {}
if cfg.banners[obj.action] then
configTables[#configTables + 1] = cfg.banners[obj.action][obj.reason]
end
if cfg.defaultBanners[obj.action] then
configTables[#configTables + 1] = cfg.defaultBanners[obj.action][obj.level]
configTables[#configTables + 1] = cfg.defaultBanners[obj.action].default
end
configTables[#configTables + 1] = cfg.masterBanner
for i, field in ipairs(Protection.bannerConfigFields) do
for j, t in ipairs(configTables) do
if t[field] then
obj.bannerConfig[field] = t[field]
break
end
end
end
end
return setmetatable(obj, Protection)
end
function Protection:isUserScript()
-- Whether the page is a user JavaScript or CSS page.
local title = self.title
return title.namespace == 2 and (
title.contentModel == 'javascript' or title.contentModel == 'css'
)
end
function Protection:isProtected()
return self.level ~= '*'
end
function Protection:shouldShowLock()
-- Whether we should output a banner/padlock
return self:isProtected() and not self:isUserScript()
end
-- Whether this page needs a protection category.
Protection.shouldHaveProtectionCategory = Protection.shouldShowLock
function Protection:isTemporary()
return type(self.expiry) == 'number'
end
function Protection:makeProtectionCategory()
if not self:shouldHaveProtectionCategory() then
return ''
end
local cfg = self._cfg
local title = self.title
-- Get the expiry key fragment.
local expiryFragment
if self.expiry == 'indef' then
expiryFragment = self.expiry
elseif type(self.expiry) == 'number' then
expiryFragment = 'temp'
end
-- Get the namespace key fragment.
local namespaceFragment = cfg.categoryNamespaceKeys[title.namespace]
if not namespaceFragment and title.namespace % 2 == 1 then
namespaceFragment = 'talk'
end
-- Define the order that key fragments are tested in. This is done with an
-- array of tables containing the value to be tested, along with its
-- position in the cfg.protectionCategories table.
local order = {
{val = expiryFragment, keypos = 1},
{val = namespaceFragment, keypos = 2},
{val = self.reason, keypos = 3},
{val = self.level, keypos = 4},
{val = self.action, keypos = 5}
}
--[[
-- The old protection templates used an ad-hoc protection category system,
-- with some templates prioritising namespaces in their categories, and
-- others prioritising the protection reason. To emulate this in this module
-- we use the config table cfg.reasonsWithNamespacePriority to set the
-- reasons for which namespaces have priority over protection reason.
-- If we are dealing with one of those reasons, move the namespace table to
-- the end of the order table, i.e. give it highest priority. If not, the
-- reason should have highest priority, so move that to the end of the table
-- instead.
--]]
table.insert(order, table.remove(order, self.reason and cfg.reasonsWithNamespacePriority[self.reason] and 2 or 3))
--[[
-- Define the attempt order. Inactive subtables (subtables with nil "value"
-- fields) are moved to the end, where they will later be given the key
-- "all". This is to cut down on the number of table lookups in
-- cfg.protectionCategories, which grows exponentially with the number of
-- non-nil keys. We keep track of the number of active subtables with the
-- noActive parameter.
--]]
local noActive, attemptOrder
do
local active, inactive = {}, {}
for i, t in ipairs(order) do
if t.val then
active[#active + 1] = t
else
inactive[#inactive + 1] = t
end
end
noActive = #active
attemptOrder = active
for i, t in ipairs(inactive) do
attemptOrder[#attemptOrder + 1] = t
end
end
--[[
-- Check increasingly generic key combinations until we find a match. If a
-- specific category exists for the combination of key fragments we are
-- given, that match will be found first. If not, we keep trying different
-- key fragment combinations until we match using the key
-- "all-all-all-all-all".
--
-- To generate the keys, we index the key subtables using a binary matrix
-- with indexes i and j. j is only calculated up to the number of active
-- subtables. For example, if there were three active subtables, the matrix
-- would look like this, with 0 corresponding to the key fragment "all", and
-- 1 corresponding to other key fragments.
--
-- j 1 2 3
-- i
-- 1 1 1 1
-- 2 0 1 1
-- 3 1 0 1
-- 4 0 0 1
-- 5 1 1 0
-- 6 0 1 0
-- 7 1 0 0
-- 8 0 0 0
--
-- Values of j higher than the number of active subtables are set
-- to the string "all".
--
-- A key for cfg.protectionCategories is constructed for each value of i.
-- The position of the value in the key is determined by the keypos field in
-- each subtable.
--]]
local cats = cfg.protectionCategories
for i = 1, 2^noActive do
local key = {}
for j, t in ipairs(attemptOrder) do
if j > noActive then
key[t.keypos] = 'all'
else
local quotient = i / 2 ^ (j - 1)
quotient = math.ceil(quotient)
if quotient % 2 == 1 then
key[t.keypos] = t.val
else
key[t.keypos] = 'all'
end
end
end
key = table.concat(key, '|')
local attempt = cats[key]
if attempt then
return makeCategoryLink(attempt, title.text)
end
end
return ''
end
function Protection:isIncorrect()
local expiry = self.expiry
return not self:shouldHaveProtectionCategory()
or type(expiry) == 'number' and expiry < os.time()
end
function Protection:isTemplateProtectedNonTemplate()
local action, namespace = self.action, self.title.namespace
return self.level == 'templateeditor'
and (
(action ~= 'edit' and action ~= 'move')
or (namespace ~= 10 and namespace ~= 828)
)
end
function Protection:makeCategoryLinks()
local msg = self._cfg.msg
local ret = {self:makeProtectionCategory()}
if self:isIncorrect() then
ret[#ret + 1] = makeCategoryLink(
msg['tracking-category-incorrect'],
self.title.text
)
end
if self:isTemplateProtectedNonTemplate() then
ret[#ret + 1] = makeCategoryLink(
msg['tracking-category-template'],
self.title.text
)
end
return table.concat(ret)
end
--------------------------------------------------------------------------------
-- Blurb class
--------------------------------------------------------------------------------
local Blurb = {}
Blurb.__index = Blurb
Blurb.bannerTextFields = {
text = true,
explanation = true,
tooltip = true,
alt = true,
link = true
}
function Blurb.new(protectionObj, args, cfg)
return setmetatable({
_cfg = cfg,
_protectionObj = protectionObj,
_args = args
}, Blurb)
end
-- Private methods --
function Blurb:_formatDate(num)
-- Formats a Unix timestamp into dd Month, YYYY format.
lang = lang or mw.language.getContentLanguage()
local success, date = pcall(
lang.formatDate,
lang,
self._cfg.msg['expiry-date-format'] or 'j F Y',
'@' .. tostring(num)
)
if success then
return date
end
end
function Blurb:_getExpandedMessage(msgKey)
return self:_substituteParameters(self._cfg.msg[msgKey])
end
function Blurb:_substituteParameters(msg)
if not self._params then
local parameterFuncs = {}
parameterFuncs.CURRENTVERSION = self._makeCurrentVersionParameter
parameterFuncs.EDITREQUEST = self._makeEditRequestParameter
parameterFuncs.EXPIRY = self._makeExpiryParameter
parameterFuncs.EXPLANATIONBLURB = self._makeExplanationBlurbParameter
parameterFuncs.IMAGELINK = self._makeImageLinkParameter
parameterFuncs.INTROBLURB = self._makeIntroBlurbParameter
parameterFuncs.INTROFRAGMENT = self._makeIntroFragmentParameter
parameterFuncs.PAGETYPE = self._makePagetypeParameter
parameterFuncs.PROTECTIONBLURB = self._makeProtectionBlurbParameter
parameterFuncs.PROTECTIONDATE = self._makeProtectionDateParameter
parameterFuncs.PROTECTIONLEVEL = self._makeProtectionLevelParameter
parameterFuncs.PROTECTIONLOG = self._makeProtectionLogParameter
parameterFuncs.TALKPAGE = self._makeTalkPageParameter
parameterFuncs.TOOLTIPBLURB = self._makeTooltipBlurbParameter
parameterFuncs.TOOLTIPFRAGMENT = self._makeTooltipFragmentParameter
parameterFuncs.VANDAL = self._makeVandalTemplateParameter
self._params = setmetatable({}, {
__index = function (t, k)
local param
if parameterFuncs[k] then
param = parameterFuncs[k](self)
end
param = param or ''
t[k] = param
return param
end
})
end
msg = msg:gsub('${(%u+)}', self._params)
return msg
end
function Blurb:_makeCurrentVersionParameter()
-- A link to the page history or the move log, depending on the kind of
-- protection.
local pagename = self._protectionObj.title.prefixedText
if self._protectionObj.action == 'move' then
-- We need the move log link.
return makeFullUrl(
'Special:Log',
{type = 'move', page = pagename},
self:_getExpandedMessage('current-version-move-display')
)
else
-- We need the history link.
return makeFullUrl(
pagename,
{action = 'history'},
self:_getExpandedMessage('current-version-edit-display')
)
end
end
function Blurb:_makeEditRequestParameter()
local mEditRequest = require('Module:Submit an edit request')
local action = self._protectionObj.action
local level = self._protectionObj.level
-- Get the edit request type.
local requestType
if action == 'edit' then
if level == 'autoconfirmed' then
requestType = 'semi'
elseif level == 'extendedconfirmed' then
requestType = 'extended'
elseif level == 'templateeditor' then
requestType = 'template'
end
end
requestType = requestType or 'full'
-- Get the display value.
local display = self:_getExpandedMessage('edit-request-display')
return mEditRequest._link{type = requestType, display = display}
end
function Blurb:_makeExpiryParameter()
local expiry = self._protectionObj.expiry
if type(expiry) == 'number' then
return self:_formatDate(expiry)
else
return expiry
end
end
function Blurb:_makeExplanationBlurbParameter()
-- Cover special cases first.
if self._protectionObj.title.namespace == 8 then
-- MediaWiki namespace
return self:_getExpandedMessage('explanation-blurb-nounprotect')
end
-- Get explanation blurb table keys
local action = self._protectionObj.action
local level = self._protectionObj.level
local talkKey = self._protectionObj.title.isTalkPage and 'talk' or 'subject'
-- Find the message in the explanation blurb table and substitute any
-- parameters.
local explanations = self._cfg.explanationBlurbs
local msg
if explanations[action][level] and explanations[action][level][talkKey] then
msg = explanations[action][level][talkKey]
elseif explanations[action][level] and explanations[action][level].default then
msg = explanations[action][level].default
elseif explanations[action].default and explanations[action].default[talkKey] then
msg = explanations[action].default[talkKey]
elseif explanations[action].default and explanations[action].default.default then
msg = explanations[action].default.default
else
error(string.format(
'could not find explanation blurb for action "%s", level "%s" and talk key "%s"',
action,
level,
talkKey
), 8)
end
return self:_substituteParameters(msg)
end
function Blurb:_makeImageLinkParameter()
local imageLinks = self._cfg.imageLinks
local action = self._protectionObj.action
local level = self._protectionObj.level
local msg
if imageLinks[action][level] then
msg = imageLinks[action][level]
elseif imageLinks[action].default then
msg = imageLinks[action].default
else
msg = imageLinks.edit.default
end
return self:_substituteParameters(msg)
end
function Blurb:_makeIntroBlurbParameter()
if self._protectionObj:isTemporary() then
return self:_getExpandedMessage('intro-blurb-expiry')
else
return self:_getExpandedMessage('intro-blurb-noexpiry')
end
end
function Blurb:_makeIntroFragmentParameter()
if self._protectionObj:isTemporary() then
return self:_getExpandedMessage('intro-fragment-expiry')
else
return self:_getExpandedMessage('intro-fragment-noexpiry')
end
end
function Blurb:_makePagetypeParameter()
local pagetypes = self._cfg.pagetypes
return pagetypes[self._protectionObj.title.namespace]
or pagetypes.default
or error('no default pagetype defined', 8)
end
function Blurb:_makeProtectionBlurbParameter()
local protectionBlurbs = self._cfg.protectionBlurbs
local action = self._protectionObj.action
local level = self._protectionObj.level
local msg
if protectionBlurbs[action][level] then
msg = protectionBlurbs[action][level]
elseif protectionBlurbs[action].default then
msg = protectionBlurbs[action].default
elseif protectionBlurbs.edit.default then
msg = protectionBlurbs.edit.default
else
error('no protection blurb defined for protectionBlurbs.edit.default', 8)
end
return self:_substituteParameters(msg)
end
function Blurb:_makeProtectionDateParameter()
local protectionDate = self._protectionObj.protectionDate
if type(protectionDate) == 'number' then
return self:_formatDate(protectionDate)
else
return protectionDate
end
end
function Blurb:_makeProtectionLevelParameter()
local protectionLevels = self._cfg.protectionLevels
local action = self._protectionObj.action
local level = self._protectionObj.level
local msg
if protectionLevels[action][level] then
msg = protectionLevels[action][level]
elseif protectionLevels[action].default then
msg = protectionLevels[action].default
elseif protectionLevels.edit.default then
msg = protectionLevels.edit.default
else
error('no protection level defined for protectionLevels.edit.default', 8)
end
return self:_substituteParameters(msg)
end
function Blurb:_makeProtectionLogParameter()
local pagename = self._protectionObj.title.prefixedText
if self._protectionObj.action == 'autoreview' then
-- We need the pending changes log.
return makeFullUrl(
'Special:Log',
{type = 'stable', page = pagename},
self:_getExpandedMessage('pc-log-display')
)
else
-- We need the protection log.
return makeFullUrl(
'Special:Log',
{type = 'protect', page = pagename},
self:_getExpandedMessage('protection-log-display')
)
end
end
function Blurb:_makeTalkPageParameter()
return string.format(
'[[%s:%s#%s|%s]]',
mw.site.namespaces[self._protectionObj.title.namespace].talk.name,
self._protectionObj.title.text,
self._args.section or 'top',
self:_getExpandedMessage('talk-page-link-display')
)
end
function Blurb:_makeTooltipBlurbParameter()
if self._protectionObj:isTemporary() then
return self:_getExpandedMessage('tooltip-blurb-expiry')
else
return self:_getExpandedMessage('tooltip-blurb-noexpiry')
end
end
function Blurb:_makeTooltipFragmentParameter()
if self._protectionObj:isTemporary() then
return self:_getExpandedMessage('tooltip-fragment-expiry')
else
return self:_getExpandedMessage('tooltip-fragment-noexpiry')
end
end
function Blurb:_makeVandalTemplateParameter()
return mw.getCurrentFrame():expandTemplate{
title="vandal-m",
args={self._args.user or self._protectionObj.title.baseText}
}
end
-- Public methods --
function Blurb:makeBannerText(key)
-- Validate input.
if not key or not Blurb.bannerTextFields[key] then
error(string.format(
'"%s" is not a valid banner config field',
tostring(key)
), 2)
end
-- Generate the text.
local msg = self._protectionObj.bannerConfig[key]
if type(msg) == 'string' then
return self:_substituteParameters(msg)
elseif type(msg) == 'function' then
msg = msg(self._protectionObj, self._args)
if type(msg) ~= 'string' then
error(string.format(
'bad output from banner config function with key "%s"'
.. ' (expected string, got %s)',
tostring(key),
type(msg)
), 4)
end
return self:_substituteParameters(msg)
end
end
--------------------------------------------------------------------------------
-- BannerTemplate class
--------------------------------------------------------------------------------
local BannerTemplate = {}
BannerTemplate.__index = BannerTemplate
function BannerTemplate.new(protectionObj, cfg)
local obj = {}
obj._cfg = cfg
-- Set the image filename.
local imageFilename = protectionObj.bannerConfig.image
if imageFilename then
obj._imageFilename = imageFilename
else
-- If an image filename isn't specified explicitly in the banner config,
-- generate it from the protection status and the namespace.
local action = protectionObj.action
local level = protectionObj.level
local namespace = protectionObj.title.namespace
local reason = protectionObj.reason
-- Deal with special cases first.
if (
namespace == 10
or namespace == 828
or reason and obj._cfg.indefImageReasons[reason]
)
and action == 'edit'
and level == 'sysop'
and not protectionObj:isTemporary()
then
-- Fully protected modules and templates get the special red "indef"
-- padlock.
obj._imageFilename = obj._cfg.msg['image-filename-indef']
else
-- Deal with regular protection types.
local images = obj._cfg.images
if images[action] then
if images[action][level] then
obj._imageFilename = images[action][level]
elseif images[action].default then
obj._imageFilename = images[action].default
end
end
end
end
return setmetatable(obj, BannerTemplate)
end
function BannerTemplate:renderImage()
local filename = self._imageFilename
or self._cfg.msg['image-filename-default']
or 'Transparent.gif'
return makeFileLink{
file = filename,
size = (self.imageWidth or 20) .. 'px',
alt = self._imageAlt,
link = self._imageLink,
caption = self.imageCaption
}
end
--------------------------------------------------------------------------------
-- Banner class
--------------------------------------------------------------------------------
local Banner = setmetatable({}, BannerTemplate)
Banner.__index = Banner
function Banner.new(protectionObj, blurbObj, cfg)
local obj = BannerTemplate.new(protectionObj, cfg) -- This doesn't need the blurb.
obj.imageWidth = 40
obj.imageCaption = blurbObj:makeBannerText('alt') -- Large banners use the alt text for the tooltip.
obj._reasonText = blurbObj:makeBannerText('text')
obj._explanationText = blurbObj:makeBannerText('explanation')
obj._page = protectionObj.title.prefixedText -- Only makes a difference in testing.
return setmetatable(obj, Banner)
end
function Banner:__tostring()
-- Renders the banner.
makeMessageBox = makeMessageBox or require('Module:Message box').main
local reasonText = self._reasonText or error('no reason text set', 2)
local explanationText = self._explanationText
local mbargs = {
page = self._page,
type = 'protection',
image = self:renderImage(),
text = string.format(
"'''%s'''%s",
reasonText,
explanationText and '<br />' .. explanationText or ''
)
}
return makeMessageBox('mbox', mbargs)
end
--------------------------------------------------------------------------------
-- Padlock class
--------------------------------------------------------------------------------
local Padlock = setmetatable({}, BannerTemplate)
Padlock.__index = Padlock
function Padlock.new(protectionObj, blurbObj, cfg)
local obj = BannerTemplate.new(protectionObj, cfg) -- This doesn't need the blurb.
obj.imageWidth = 20
obj.imageCaption = blurbObj:makeBannerText('tooltip')
obj._imageAlt = blurbObj:makeBannerText('alt')
obj._imageLink = blurbObj:makeBannerText('link')
obj._indicatorName = cfg.padlockIndicatorNames[protectionObj.action]
or cfg.padlockIndicatorNames.default
or 'pp-default'
return setmetatable(obj, Padlock)
end
function Padlock:__tostring()
local frame = mw.getCurrentFrame()
-- The nowiki tag helps prevent whitespace at the top of articles.
return frame:extensionTag{name = 'nowiki'} .. frame:extensionTag{
name = 'indicator',
args = {name = self._indicatorName},
content = self:renderImage()
}
end
--------------------------------------------------------------------------------
-- Exports
--------------------------------------------------------------------------------
local p = {}
function p._exportClasses()
-- This is used for testing purposes.
return {
Protection = Protection,
Blurb = Blurb,
BannerTemplate = BannerTemplate,
Banner = Banner,
Padlock = Padlock,
}
end
function p._main(args, cfg, title)
args = args or {}
cfg = cfg or require(CONFIG_MODULE)
local protectionObj = Protection.new(args, cfg, title)
local ret = {}
-- If a page's edit protection is equally or more restrictive than its
-- protection from some other action, then don't bother displaying anything
-- for the other action (except categories).
if not yesno(args.catonly) and (protectionObj.action == 'edit' or
args.demolevel or
not getReachableNodes(
cfg.hierarchy,
protectionObj.level
)[effectiveProtectionLevel('edit', protectionObj.title)])
then
-- Initialise the blurb object
local blurbObj = Blurb.new(protectionObj, args, cfg)
-- Render the banner
if protectionObj:shouldShowLock() then
ret[#ret + 1] = tostring(
(yesno(args.small) and Padlock or Banner)
.new(protectionObj, blurbObj, cfg)
)
end
end
-- Render the categories
if yesno(args.category) ~= false then
ret[#ret + 1] = protectionObj:makeCategoryLinks()
end
return table.concat(ret)
end
function p.main(frame, cfg)
cfg = cfg or require(CONFIG_MODULE)
-- Find default args, if any.
local parent = frame.getParent and frame:getParent()
local defaultArgs = parent and cfg.wrappers[parent:getTitle():gsub('/sandbox$', '')]
-- Find user args, and use the parent frame if we are being called from a
-- wrapper template.
getArgs = getArgs or require('Module:Arguments').getArgs
local userArgs = getArgs(frame, {
parentOnly = defaultArgs,
frameOnly = not defaultArgs
})
-- Build the args table. User-specified args overwrite default args.
local args = {}
for k, v in pairs(defaultArgs or {}) do
args[k] = v
end
for k, v in pairs(userArgs) do
args[k] = v
end
return p._main(args, cfg)
end
return p
ktral6mmlw9hhlxwgaq85237qklrdx8
Module:Protection banner/doc
828
1721
15363
2022-07-27T18:43:57Z
Kambai Akau
15
Created page with "{{High-use| 36098 }} {{Module rating|protected}} {{Lua|Module:Protection banner/config|Module:No globals|Module:File link|Module:Effective protection level|Module:Effective protection expiry|Module:Yesno|Module:Arguments|Module:Message box|Module:Submit an edit request}} This module creates protection banners and padlock icons that are placed at the top of [[Help:Protection|protected pages]]."
wikitext
text/x-wiki
{{High-use| 36098 }}
{{Module rating|protected}}
{{Lua|Module:Protection banner/config|Module:No globals|Module:File link|Module:Effective protection level|Module:Effective protection expiry|Module:Yesno|Module:Arguments|Module:Message box|Module:Submit an edit request}}
This module creates protection banners and padlock icons that are placed at the top of [[Help:Protection|protected pages]].
68d3zvfj61q78ohc4mgjvluen6xr78o
Module:Protection banner/config
828
1722
15364
2022-07-27T18:44:47Z
Kambai Akau
15
Created page with "-- This module provides configuration data for [[Module:Protection banner]]. return { -------------------------------------------------------------------------------- -- -- BANNER DATA -- -------------------------------------------------------------------------------- --[[ -- Banner data consists of six fields: -- * text - the main protection text that appears at the top of protection -- banners. -- * explanation - the text that appear..."
Scribunto
text/plain
-- This module provides configuration data for [[Module:Protection banner]].
return {
--------------------------------------------------------------------------------
--
-- BANNER DATA
--
--------------------------------------------------------------------------------
--[[
-- Banner data consists of six fields:
-- * text - the main protection text that appears at the top of protection
-- banners.
-- * explanation - the text that appears below the main protection text, used
-- to explain the details of the protection.
-- * tooltip - the tooltip text you see when you move the mouse over a small
-- padlock icon.
-- * link - the page that the small padlock icon links to.
-- * alt - the alt text for the small padlock icon. This is also used as tooltip
-- text for the large protection banners.
-- * image - the padlock image used in both protection banners and small padlock
-- icons.
--
-- The module checks in three separate tables to find a value for each field.
-- First it checks the banners table, which has values specific to the reason
-- for the page being protected. Then the module checks the defaultBanners
-- table, which has values specific to each protection level. Finally, the
-- module checks the masterBanner table, which holds data for protection
-- templates to use if no data has been found in the previous two tables.
--
-- The values in the banner data can take parameters. These are specified
-- using ${TEXTLIKETHIS} (a dollar sign preceding a parameter name
-- enclosed in curly braces).
--
-- Available parameters:
--
-- ${CURRENTVERSION} - a link to the page history or the move log, with the
-- display message "current-version-edit-display" or
-- "current-version-move-display".
--
-- ${EDITREQUEST} - a link to create an edit request for the current page.
--
-- ${EXPLANATIONBLURB} - an explanation blurb, e.g. "Please discuss any changes
-- on the talk page; you may submit a request to ask an administrator to make
-- an edit if it is minor or supported by consensus."
--
-- ${IMAGELINK} - a link to set the image to, depending on the protection
-- action and protection level.
--
-- ${INTROBLURB} - the PROTECTIONBLURB parameter, plus the expiry if an expiry
-- is set. E.g. "Editing of this page by new or unregistered users is currently
-- disabled until dd Month YYYY."
--
-- ${INTROFRAGMENT} - the same as ${INTROBLURB}, but without final punctuation
-- so that it can be used in run-on sentences.
--
-- ${PAGETYPE} - the type of the page, e.g. "article" or "template".
-- Defined in the cfg.pagetypes table.
--
-- ${PROTECTIONBLURB} - a blurb explaining the protection level of the page, e.g.
-- "Editing of this page by new or unregistered users is currently disabled"
--
-- ${PROTECTIONDATE} - the protection date, if it has been supplied to the
-- template.
--
-- ${PROTECTIONLEVEL} - the protection level, e.g. "fully protected" or
-- "semi-protected".
--
-- ${PROTECTIONLOG} - a link to the protection log or the pending changes log,
-- depending on the protection action.
--
-- ${TALKPAGE} - a link to the talk page. If a section is specified, links
-- straight to that talk page section.
--
-- ${TOOLTIPBLURB} - uses the PAGETYPE, PROTECTIONTYPE and EXPIRY parameters to
-- create a blurb like "This template is semi-protected", or "This article is
-- move-protected until DD Month YYYY".
--
-- ${VANDAL} - links for the specified username (or the root page name)
-- using Module:Vandal-m.
--
-- Functions
--
-- For advanced users, it is possible to use Lua functions instead of strings
-- in the banner config tables. Using functions gives flexibility that is not
-- possible just by using parameters. Functions take two arguments, the
-- protection object and the template arguments, and they must output a string.
--
-- For example:
--
-- text = function (protectionObj, args)
-- if protectionObj.level == 'autoconfirmed' then
-- return 'foo'
-- else
-- return 'bar'
-- end
-- end
--
-- Some protection object properties and methods that may be useful:
-- protectionObj.action - the protection action
-- protectionObj.level - the protection level
-- protectionObj.reason - the protection reason
-- protectionObj.expiry - the expiry. Nil if unset, the string "indef" if set
-- to indefinite, and the protection time in unix time if temporary.
-- protectionObj.protectionDate - the protection date in unix time, or nil if
-- unspecified.
-- protectionObj.bannerConfig - the banner config found by the module. Beware
-- of editing the config field used by the function, as it could create an
-- infinite loop.
-- protectionObj:isProtected - returns a boolean showing whether the page is
-- protected.
-- protectionObj:isTemporary - returns a boolean showing whether the expiry is
-- temporary.
-- protectionObj:isIncorrect - returns a boolean showing whether the protection
-- template is incorrect.
--]]
-- The master banner data, used if no values have been found in banners or
-- defaultBanners.
masterBanner = {
text = '${INTROBLURB}',
explanation = '${EXPLANATIONBLURB}',
tooltip = '${TOOLTIPBLURB}',
link = '${IMAGELINK}',
alt = 'Page ${PROTECTIONLEVEL}'
},
-- The default banner data. This holds banner data for different protection
-- levels.
-- *required* - this table needs edit, move, autoreview and upload subtables.
defaultBanners = {
edit = {},
move = {},
autoreview = {
default = {
alt = 'Page protected with pending changes',
tooltip = 'All edits by unregistered and new users are subject to review prior to becoming visible to unregistered users',
image = 'Pending-protection-shackle.svg'
}
},
upload = {}
},
-- The banner data. This holds banner data for different protection reasons.
-- In fact, the reasons specified in this table control which reasons are
-- valid inputs to the first positional parameter.
--
-- There is also a non-standard "description" field that can be used for items
-- in this table. This is a description of the protection reason for use in the
-- module documentation.
--
-- *required* - this table needs edit, move, autoreview and upload subtables.
banners = {
edit = {
blp = {
description = 'For pages protected to promote compliance with the'
.. ' [[Wikipedia:Biographies of living persons'
.. '|biographies of living persons]] policy',
text = '${INTROFRAGMENT} to promote compliance with'
.. ' [[Wikipedia:Biographies of living persons'
.. "|Wikipedia's policy on the biographies"
.. ' of living people]].',
tooltip = '${TOOLTIPFRAGMENT} to promote compliance with the policy on'
.. ' biographies of living persons',
},
dmca = {
description = 'For pages protected by the Wikimedia Foundation'
.. ' due to [[Digital Millennium Copyright Act]] takedown requests',
explanation = function (protectionObj, args)
local ret = 'Pursuant to a rights owner notice under the Digital'
.. ' Millennium Copyright Act (DMCA) regarding some content'
.. ' in this article, the Wikimedia Foundation acted under'
.. ' applicable law and took down and restricted the content'
.. ' in question.'
if args.notice then
ret = ret .. ' A copy of the received notice can be found here: '
.. args.notice .. '.'
end
ret = ret .. ' For more information, including websites discussing'
.. ' how to file a counter-notice, please see'
.. " [[Wikipedia:Office actions]] and the article's ${TALKPAGE}."
.. "'''Do not remove this template from the article until the"
.. " restrictions are withdrawn'''."
return ret
end,
image = 'Office-protection-shackle.svg',
},
dispute = {
description = 'For pages protected due to editing disputes',
text = function (protectionObj, args)
-- Find the value of "disputes".
local display = 'disputes'
local disputes
if args.section then
disputes = string.format(
'[[%s:%s#%s|%s]]',
mw.site.namespaces[protectionObj.title.namespace].talk.name,
protectionObj.title.text,
args.section,
display
)
else
disputes = display
end
-- Make the blurb, depending on the expiry.
local msg
if type(protectionObj.expiry) == 'number' then
msg = '${INTROFRAGMENT} or until editing %s have been resolved.'
else
msg = '${INTROFRAGMENT} until editing %s have been resolved.'
end
return string.format(msg, disputes)
end,
explanation = "This protection is '''not''' an endorsement of the"
.. ' ${CURRENTVERSION}. ${EXPLANATIONBLURB}',
tooltip = '${TOOLTIPFRAGMENT} due to editing disputes',
},
ecp = {
description = 'For articles in topic areas authorized by'
.. ' [[Wikipedia:Arbitration Committee|ArbCom]] or'
.. ' meets the criteria for community use',
tooltip = 'This ${PAGETYPE} is extended-confirmed protected',
alt = 'Extended-protected ${PAGETYPE}',
},
mainpage = {
description = 'For pages protected for being displayed on the [[Main Page]]',
text = 'This file is currently'
.. ' [[Wikipedia:This page is protected|protected]] from'
.. ' editing because it is currently or will soon be displayed'
.. ' on the [[Main Page]].',
explanation = 'Images on the Main Page are protected due to their high'
.. ' visibility. Please discuss any necessary changes on the ${TALKPAGE}.'
.. '<br /><span style="font-size:90%;">'
.. "'''Administrators:''' Once this image is definitely off the Main Page,"
.. ' please unprotect this file, or reduce to semi-protection,'
.. ' as appropriate.</span>',
},
office = {
description = 'For pages protected by the Wikimedia Foundation',
text = function (protectionObj, args)
local ret = 'This ${PAGETYPE} is currently under the'
.. ' scrutiny of the'
.. ' [[Wikipedia:Office actions|Wikimedia Foundation Office]]'
.. ' and is protected.'
if protectionObj.protectionDate then
ret = ret .. ' It has been protected since ${PROTECTIONDATE}.'
end
return ret
end,
explanation = "If you can edit this page, please discuss all changes and"
.. " additions on the ${TALKPAGE} first. '''Do not remove protection from this"
.. " page unless you are authorized by the Wikimedia Foundation to do"
.. " so.'''",
image = 'Office-protection-shackle.svg',
},
reset = {
description = 'For pages protected by the Wikimedia Foundation and'
.. ' "reset" to a bare-bones version',
text = 'This ${PAGETYPE} is currently under the'
.. ' scrutiny of the'
.. ' [[Wikipedia:Office actions|Wikimedia Foundation Office]]'
.. ' and is protected.',
explanation = function (protectionObj, args)
local ret = ''
if protectionObj.protectionDate then
ret = ret .. 'On ${PROTECTIONDATE} this ${PAGETYPE} was'
else
ret = ret .. 'This ${PAGETYPE} has been'
end
ret = ret .. ' reduced to a'
.. ' simplified, "bare bones" version so that it may be completely'
.. ' rewritten to ensure it meets the policies of'
.. ' [[WP:NPOV|Neutral Point of View]] and [[WP:V|Verifiability]].'
.. ' Standard Wikipedia policies will apply to its rewriting—which'
.. ' will eventually be open to all editors—and will be strictly'
.. ' enforced. The ${PAGETYPE} has been ${PROTECTIONLEVEL} while'
.. ' it is being rebuilt.\n\n'
.. 'Any insertion of material directly from'
.. ' pre-protection revisions of the ${PAGETYPE} will be removed, as'
.. ' will any material added to the ${PAGETYPE} that is not properly'
.. ' sourced. The associated talk page(s) were also cleared on the'
.. " same date.\n\n"
.. "If you can edit this page, please discuss all changes and"
.. " additions on the ${TALKPAGE} first. '''Do not override"
.. " this action, and do not remove protection from this page,"
.. " unless you are authorized by the Wikimedia Foundation"
.. " to do so. No editor may remove this notice.'''"
return ret
end,
image = 'Office-protection-shackle.svg',
},
sock = {
description = 'For pages protected due to'
.. ' [[Wikipedia:Sock puppetry|sock puppetry]]',
text = '${INTROFRAGMENT} to prevent [[Wikipedia:Sock puppetry|sock puppets]] of'
.. ' [[Wikipedia:Blocking policy|blocked]] or'
.. ' [[Wikipedia:Banning policy|banned users]]'
.. ' from editing it.',
tooltip = '${TOOLTIPFRAGMENT} to prevent sock puppets of blocked or banned users from'
.. ' editing it',
},
template = {
description = 'For [[Wikipedia:High-risk templates|high-risk]]'
.. ' templates and Lua modules',
text = 'This is a permanently [[Help:Protection|protected]] ${PAGETYPE},'
.. ' as it is [[Wikipedia:High-risk templates|high-risk]].',
explanation = 'Please discuss any changes on the ${TALKPAGE}; you may'
.. ' ${EDITREQUEST} to ask an'
.. ' [[Wikipedia:Administrators|administrator]] or'
.. ' [[Wikipedia:Template editor|template editor]] to make an edit if'
.. ' it is [[Help:Minor edit#When to mark an edit as a minor edit'
.. '|uncontroversial]] or supported by'
.. ' [[Wikipedia:Consensus|consensus]]. You can also'
.. ' [[Wikipedia:Requests for page protection|request]] that the page be'
.. ' unprotected.',
tooltip = 'This high-risk ${PAGETYPE} is permanently ${PROTECTIONLEVEL}'
.. ' to prevent vandalism',
alt = 'Permanently protected ${PAGETYPE}',
},
usertalk = {
description = 'For pages protected against disruptive edits by a'
.. ' particular user',
text = '${INTROFRAGMENT} to prevent ${VANDAL} from using it to make disruptive edits,'
.. ' such as abusing the'
.. ' {{[[Template:unblock|unblock]]}} template.',
explanation = 'If you cannot edit this user talk page and you need to'
.. ' make a change or leave a message, you can'
.. ' [[Wikipedia:Requests for page protection'
.. '#Current requests for edits to a protected page'
.. '|request an edit]],'
.. ' [[Wikipedia:Requests for page protection'
.. '#Current requests for reduction in protection level'
.. '|request unprotection]],'
.. ' [[Special:Userlogin|log in]],'
.. ' or [[Special:UserLogin/signup|create an account]].',
},
vandalism = {
description = 'For pages protected against'
.. ' [[Wikipedia:Vandalism|vandalism]]',
text = '${INTROFRAGMENT} due to [[Wikipedia:Vandalism|vandalism]].',
explanation = function (protectionObj, args)
local ret = ''
if protectionObj.level == 'sysop' then
ret = ret .. "This protection is '''not''' an endorsement of the"
.. ' ${CURRENTVERSION}. '
end
return ret .. '${EXPLANATIONBLURB}'
end,
tooltip = '${TOOLTIPFRAGMENT} due to vandalism',
}
},
move = {
dispute = {
description = 'For pages protected against page moves due to'
.. ' disputes over the page title',
explanation = "This protection is '''not''' an endorsement of the"
.. ' ${CURRENTVERSION}. ${EXPLANATIONBLURB}',
image = 'Move-protection-shackle.svg'
},
vandalism = {
description = 'For pages protected against'
.. ' [[Wikipedia:Vandalism#Page-move vandalism'
.. ' |page-move vandalism]]'
}
},
autoreview = {},
upload = {}
},
--------------------------------------------------------------------------------
--
-- GENERAL DATA TABLES
--
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
-- Protection blurbs
--------------------------------------------------------------------------------
-- This table produces the protection blurbs available with the
-- ${PROTECTIONBLURB} parameter. It is sorted by protection action and
-- protection level, and is checked by the module in the following order:
-- 1. page's protection action, page's protection level
-- 2. page's protection action, default protection level
-- 3. "edit" protection action, default protection level
--
-- It is possible to use banner parameters inside this table.
-- *required* - this table needs edit, move, autoreview and upload subtables.
protectionBlurbs = {
edit = {
default = 'This ${PAGETYPE} is currently [[Help:Protection|'
.. 'protected]] from editing',
autoconfirmed = 'Editing of this ${PAGETYPE} by [[Wikipedia:User access'
.. ' levels#New users|new]] or [[Wikipedia:User access levels#Unregistered'
.. ' users|unregistered]] users is currently [[Help:Protection|disabled]]',
extendedconfirmed = 'This ${PAGETYPE} is currently under extended confirmed protection',
},
move = {
default = 'This ${PAGETYPE} is currently [[Help:Protection|protected]]'
.. ' from [[Help:Moving a page|page moves]]'
},
autoreview = {
default = 'All edits made to this ${PAGETYPE} by'
.. ' [[Wikipedia:User access levels#New users|new]] or'
.. ' [[Wikipedia:User access levels#Unregistered users|unregistered]]'
.. ' users are currently'
.. ' [[Wikipedia:Pending changes|subject to review]]'
},
upload = {
default = 'Uploading new versions of this ${PAGETYPE} is currently disabled'
}
},
--------------------------------------------------------------------------------
-- Explanation blurbs
--------------------------------------------------------------------------------
-- This table produces the explanation blurbs available with the
-- ${EXPLANATIONBLURB} parameter. It is sorted by protection action,
-- protection level, and whether the page is a talk page or not. If the page is
-- a talk page it will have a talk key of "talk"; otherwise it will have a talk
-- key of "subject". The table is checked in the following order:
-- 1. page's protection action, page's protection level, page's talk key
-- 2. page's protection action, page's protection level, default talk key
-- 3. page's protection action, default protection level, page's talk key
-- 4. page's protection action, default protection level, default talk key
--
-- It is possible to use banner parameters inside this table.
-- *required* - this table needs edit, move, autoreview and upload subtables.
explanationBlurbs = {
edit = {
autoconfirmed = {
subject = 'See the [[Wikipedia:Protection policy|'
.. 'protection policy]] and ${PROTECTIONLOG} for more details. If you'
.. ' cannot edit this ${PAGETYPE} and you wish to make a change, you can'
.. ' ${EDITREQUEST}, discuss changes on the ${TALKPAGE},'
.. ' [[Wikipedia:Requests for page protection'
.. '#Current requests for reduction in protection level'
.. '|request unprotection]], [[Special:Userlogin|log in]], or'
.. ' [[Special:UserLogin/signup|create an account]].',
default = 'See the [[Wikipedia:Protection policy|'
.. 'protection policy]] and ${PROTECTIONLOG} for more details. If you'
.. ' cannot edit this ${PAGETYPE} and you wish to make a change, you can'
.. ' [[Wikipedia:Requests for page protection'
.. '#Current requests for reduction in protection level'
.. '|request unprotection]], [[Special:Userlogin|log in]], or'
.. ' [[Special:UserLogin/signup|create an account]].',
},
extendedconfirmed = {
default = 'Extended confirmed protection prevents edits from all unregistered editors'
.. ' and registered users with fewer than 30 days tenure and 500 edits.'
.. ' The [[Wikipedia:Protection policy#extended|policy on community use]]'
.. ' specifies that extended confirmed protection can be applied to combat'
.. ' disruption, if semi-protection has proven to be ineffective.'
.. ' Extended confirmed protection may also be applied to enforce'
.. ' [[Wikipedia:Arbitration Committee|arbitration sanctions]].'
.. ' Please discuss any changes on the ${TALKPAGE}; you may'
.. ' ${EDITREQUEST} to ask for uncontroversial changes supported by'
.. ' [[Wikipedia:Consensus|consensus]].'
},
default = {
subject = 'See the [[Wikipedia:Protection policy|'
.. 'protection policy]] and ${PROTECTIONLOG} for more details.'
.. ' Please discuss any changes on the ${TALKPAGE}; you'
.. ' may ${EDITREQUEST} to ask an'
.. ' [[Wikipedia:Administrators|administrator]] to make an edit if it'
.. ' is [[Help:Minor edit#When to mark an edit as a minor edit'
.. '|uncontroversial]] or supported by [[Wikipedia:Consensus'
.. '|consensus]]. You may also [[Wikipedia:Requests for'
.. ' page protection#Current requests for reduction in protection level'
.. '|request]] that this page be unprotected.',
default = 'See the [[Wikipedia:Protection policy|'
.. 'protection policy]] and ${PROTECTIONLOG} for more details.'
.. ' You may [[Wikipedia:Requests for page'
.. ' protection#Current requests for edits to a protected page|request an'
.. ' edit]] to this page, or [[Wikipedia:Requests for'
.. ' page protection#Current requests for reduction in protection level'
.. '|ask]] for it to be unprotected.'
}
},
move = {
default = {
subject = 'See the [[Wikipedia:Protection policy|'
.. 'protection policy]] and ${PROTECTIONLOG} for more details.'
.. ' The page may still be edited but cannot be moved'
.. ' until unprotected. Please discuss any suggested moves on the'
.. ' ${TALKPAGE} or at [[Wikipedia:Requested moves]]. You can also'
.. ' [[Wikipedia:Requests for page protection|request]] that the page be'
.. ' unprotected.',
default = 'See the [[Wikipedia:Protection policy|'
.. 'protection policy]] and ${PROTECTIONLOG} for more details.'
.. ' The page may still be edited but cannot be moved'
.. ' until unprotected. Please discuss any suggested moves at'
.. ' [[Wikipedia:Requested moves]]. You can also'
.. ' [[Wikipedia:Requests for page protection|request]] that the page be'
.. ' unprotected.'
}
},
autoreview = {
default = {
default = 'See the [[Wikipedia:Protection policy|'
.. 'protection policy]] and ${PROTECTIONLOG} for more details.'
.. ' Edits to this ${PAGETYPE} by new and unregistered users'
.. ' will not be visible to readers until they are accepted by'
.. ' a reviewer. To avoid the need for your edits to be'
.. ' reviewed, you may'
.. ' [[Wikipedia:Requests for page protection'
.. '#Current requests for reduction in protection level'
.. '|request unprotection]], [[Special:Userlogin|log in]], or'
.. ' [[Special:UserLogin/signup|create an account]].'
},
},
upload = {
default = {
default = 'See the [[Wikipedia:Protection policy|'
.. 'protection policy]] and ${PROTECTIONLOG} for more details.'
.. ' The page may still be edited but new versions of the file'
.. ' cannot be uploaded until it is unprotected. You can'
.. ' request that a new version be uploaded by using a'
.. ' [[Wikipedia:Edit requests|protected edit request]], or you'
.. ' can [[Wikipedia:Requests for page protection|request]]'
.. ' that the file be unprotected.'
}
}
},
--------------------------------------------------------------------------------
-- Protection levels
--------------------------------------------------------------------------------
-- This table provides the data for the ${PROTECTIONLEVEL} parameter, which
-- produces a short label for different protection levels. It is sorted by
-- protection action and protection level, and is checked in the following
-- order:
-- 1. page's protection action, page's protection level
-- 2. page's protection action, default protection level
-- 3. "edit" protection action, default protection level
--
-- It is possible to use banner parameters inside this table.
-- *required* - this table needs edit, move, autoreview and upload subtables.
protectionLevels = {
edit = {
default = 'protected',
templateeditor = 'template-protected',
extendedconfirmed = 'extended-protected',
autoconfirmed = 'semi-protected',
},
move = {
default = 'move-protected'
},
autoreview = {
},
upload = {
default = 'upload-protected'
}
},
--------------------------------------------------------------------------------
-- Images
--------------------------------------------------------------------------------
-- This table lists different padlock images for each protection action and
-- protection level. It is used if an image is not specified in any of the
-- banner data tables, and if the page does not satisfy the conditions for using
-- the ['image-filename-indef'] image. It is checked in the following order:
-- 1. page's protection action, page's protection level
-- 2. page's protection action, default protection level
images = {
edit = {
default = 'Full-protection-shackle.svg',
templateeditor = 'Template-protection-shackle.svg',
extendedconfirmed = 'Extended-protection-shackle.svg',
autoconfirmed = 'Semi-protection-shackle.svg'
},
move = {
default = 'Move-protection-shackle.svg',
},
autoreview = {
default = 'Pending-protection-shackle.svg'
},
upload = {
default = 'Upload-protection-shackle.svg'
}
},
-- Pages with a reason specified in this table will show the special "indef"
-- padlock, defined in the 'image-filename-indef' message, if no expiry is set.
indefImageReasons = {
template = true
},
--------------------------------------------------------------------------------
-- Image links
--------------------------------------------------------------------------------
-- This table provides the data for the ${IMAGELINK} parameter, which gets
-- the image link for small padlock icons based on the page's protection action
-- and protection level. It is checked in the following order:
-- 1. page's protection action, page's protection level
-- 2. page's protection action, default protection level
-- 3. "edit" protection action, default protection level
--
-- It is possible to use banner parameters inside this table.
-- *required* - this table needs edit, move, autoreview and upload subtables.
imageLinks = {
edit = {
default = 'Wikipedia:Protection policy#full',
templateeditor = 'Wikipedia:Protection policy#template',
extendedconfirmed = 'Wikipedia:Protection policy#extended',
autoconfirmed = 'Wikipedia:Protection policy#semi'
},
move = {
default = 'Wikipedia:Protection policy#move'
},
autoreview = {
default = 'Wikipedia:Protection policy#pending'
},
upload = {
default = 'Wikipedia:Protection policy#upload'
}
},
--------------------------------------------------------------------------------
-- Padlock indicator names
--------------------------------------------------------------------------------
-- This table provides the "name" attribute for the <indicator> extension tag
-- with which small padlock icons are generated. All indicator tags on a page
-- are displayed in alphabetical order based on this attribute, and with
-- indicator tags with duplicate names, the last tag on the page wins.
-- The attribute is chosen based on the protection action; table keys must be a
-- protection action name or the string "default".
padlockIndicatorNames = {
autoreview = 'pp-autoreview',
default = 'pp-default'
},
--------------------------------------------------------------------------------
-- Protection categories
--------------------------------------------------------------------------------
--[[
-- The protection categories are stored in the protectionCategories table.
-- Keys to this table are made up of the following strings:
--
-- 1. the expiry date
-- 2. the namespace
-- 3. the protection reason (e.g. "dispute" or "vandalism")
-- 4. the protection level (e.g. "sysop" or "autoconfirmed")
-- 5. the action (e.g. "edit" or "move")
--
-- When the module looks up a category in the table, first it will will check to
-- see a key exists that corresponds to all five parameters. For example, a
-- user page semi-protected from vandalism for two weeks would have the key
-- "temp-user-vandalism-autoconfirmed-edit". If no match is found, the module
-- changes the first part of the key to "all" and checks the table again. It
-- keeps checking increasingly generic key combinations until it finds the
-- field, or until it reaches the key "all-all-all-all-all".
--
-- The module uses a binary matrix to determine the order in which to search.
-- This is best demonstrated by a table. In this table, the "0" values
-- represent "all", and the "1" values represent the original data (e.g.
-- "indef" or "file" or "vandalism").
--
-- expiry namespace reason level action
-- order
-- 1 1 1 1 1 1
-- 2 0 1 1 1 1
-- 3 1 0 1 1 1
-- 4 0 0 1 1 1
-- 5 1 1 0 1 1
-- 6 0 1 0 1 1
-- 7 1 0 0 1 1
-- 8 0 0 0 1 1
-- 9 1 1 1 0 1
-- 10 0 1 1 0 1
-- 11 1 0 1 0 1
-- 12 0 0 1 0 1
-- 13 1 1 0 0 1
-- 14 0 1 0 0 1
-- 15 1 0 0 0 1
-- 16 0 0 0 0 1
-- 17 1 1 1 1 0
-- 18 0 1 1 1 0
-- 19 1 0 1 1 0
-- 20 0 0 1 1 0
-- 21 1 1 0 1 0
-- 22 0 1 0 1 0
-- 23 1 0 0 1 0
-- 24 0 0 0 1 0
-- 25 1 1 1 0 0
-- 26 0 1 1 0 0
-- 27 1 0 1 0 0
-- 28 0 0 1 0 0
-- 29 1 1 0 0 0
-- 30 0 1 0 0 0
-- 31 1 0 0 0 0
-- 32 0 0 0 0 0
--
-- In this scheme the action has the highest priority, as it is the last
-- to change, and the expiry has the least priority, as it changes the most.
-- The priorities of the expiry, the protection level and the action are
-- fixed, but the priorities of the reason and the namespace can be swapped
-- through the use of the cfg.bannerDataNamespaceHasPriority table.
--]]
-- If the reason specified to the template is listed in this table,
-- namespace data will take priority over reason data in the protectionCategories
-- table.
reasonsWithNamespacePriority = {
vandalism = true,
},
-- The string to use as a namespace key for the protectionCategories table for each
-- namespace number.
categoryNamespaceKeys = {
[ 2] = 'user',
[ 3] = 'user',
[ 4] = 'project',
[ 6] = 'file',
[ 8] = 'mediawiki',
[ 10] = 'template',
[ 12] = 'project',
[ 14] = 'category',
[100] = 'portal',
[828] = 'module',
},
protectionCategories = {
['all|all|all|all|all'] = 'Wikipedia fully protected pages',
['all|all|office|all|all'] = 'Wikipedia Office-protected pages',
['all|all|reset|all|all'] = 'Wikipedia Office-protected pages',
['all|all|dmca|all|all'] = 'Wikipedia Office-protected pages',
['all|all|mainpage|all|all'] = 'Wikipedia fully-protected main page files',
['all|all|all|extendedconfirmed|all'] = 'Wikipedia extended-confirmed-protected pages',
['all|all|ecp|extendedconfirmed|all'] = 'Wikipedia extended-confirmed-protected pages',
['all|template|all|all|edit'] = 'Wikipedia fully protected templates',
['all|all|all|autoconfirmed|edit'] = 'Wikipedia semi-protected pages',
['indef|all|all|autoconfirmed|edit'] = 'Wikipedia indefinitely semi-protected pages',
['all|all|blp|autoconfirmed|edit'] = 'Wikipedia indefinitely semi-protected biographies of living people',
['temp|all|blp|autoconfirmed|edit'] = 'Wikipedia temporarily semi-protected biographies of living people',
['all|all|dispute|autoconfirmed|edit'] = 'Wikipedia pages semi-protected due to dispute',
['all|all|sock|autoconfirmed|edit'] = 'Wikipedia pages semi-protected from banned users',
['all|all|vandalism|autoconfirmed|edit'] = 'Wikipedia pages semi-protected against vandalism',
['all|category|all|autoconfirmed|edit'] = 'Wikipedia semi-protected categories',
['all|file|all|autoconfirmed|edit'] = 'Wikipedia semi-protected files',
['all|portal|all|autoconfirmed|edit'] = 'Wikipedia semi-protected portals',
['all|project|all|autoconfirmed|edit'] = 'Wikipedia semi-protected project pages',
['all|talk|all|autoconfirmed|edit'] = 'Wikipedia semi-protected talk pages',
['all|template|all|autoconfirmed|edit'] = 'Wikipedia semi-protected templates',
['all|user|all|autoconfirmed|edit'] = 'Wikipedia semi-protected user and user talk pages',
['all|all|all|templateeditor|edit'] = 'Wikipedia template-protected pages other than templates and modules',
['all|template|all|templateeditor|edit'] = 'Wikipedia template-protected templates',
['all|template|all|templateeditor|move'] = 'Wikipedia template-protected templates', -- move-protected templates
['all|all|blp|sysop|edit'] = 'Wikipedia indefinitely protected biographies of living people',
['temp|all|blp|sysop|edit'] = 'Wikipedia temporarily protected biographies of living people',
['all|all|dispute|sysop|edit'] = 'Wikipedia pages protected due to dispute',
['all|all|sock|sysop|edit'] = 'Wikipedia pages protected from banned users',
['all|all|vandalism|sysop|edit'] = 'Wikipedia pages protected against vandalism',
['all|category|all|sysop|edit'] = 'Wikipedia fully protected categories',
['all|file|all|sysop|edit'] = 'Wikipedia fully-protected files',
['all|project|all|sysop|edit'] = 'Wikipedia fully-protected project pages',
['all|talk|all|sysop|edit'] = 'Wikipedia fully-protected talk pages',
['all|template|all|extendedconfirmed|edit'] = 'Wikipedia extended-confirmed-protected templates',
['all|template|all|sysop|edit'] = 'Wikipedia fully protected templates',
['all|user|all|sysop|edit'] = 'Wikipedia fully protected user and user talk pages',
['all|module|all|all|edit'] = 'Wikipedia fully-protected modules',
['all|module|all|templateeditor|edit'] = 'Wikipedia template-protected modules',
['all|module|all|extendedconfirmed|edit'] = 'Wikipedia extended-confirmed-protected modules',
['all|module|all|autoconfirmed|edit'] = 'Wikipedia semi-protected modules',
['all|all|all|sysop|move'] = 'Wikipedia move-protected pages',
['indef|all|all|sysop|move'] = 'Wikipedia indefinitely move-protected pages',
['all|all|dispute|sysop|move'] = 'Wikipedia pages move-protected due to dispute',
['all|all|vandalism|sysop|move'] = 'Wikipedia pages move-protected due to vandalism',
['all|portal|all|sysop|move'] = 'Wikipedia move-protected portals',
['all|project|all|sysop|move'] = 'Wikipedia move-protected project pages',
['all|talk|all|sysop|move'] = 'Wikipedia move-protected talk pages',
['all|template|all|sysop|move'] = 'Wikipedia move-protected templates',
['all|user|all|sysop|move'] = 'Wikipedia move-protected user and user talk pages',
['all|all|all|autoconfirmed|autoreview'] = 'Wikipedia pending changes protected pages',
['all|file|all|all|upload'] = 'Wikipedia upload-protected files',
},
--------------------------------------------------------------------------------
-- Expiry category config
--------------------------------------------------------------------------------
-- This table configures the expiry category behaviour for each protection
-- action.
-- * If set to true, setting that action will always categorise the page if
-- an expiry parameter is not set.
-- * If set to false, setting that action will never categorise the page.
-- * If set to nil, the module will categorise the page if:
-- 1) an expiry parameter is not set, and
-- 2) a reason is provided, and
-- 3) the specified reason is not blacklisted in the reasonsWithoutExpiryCheck
-- table.
expiryCheckActions = {
edit = nil,
move = false,
autoreview = true,
upload = false
},
reasonsWithoutExpiryCheck = {
blp = true,
template = true,
},
--------------------------------------------------------------------------------
-- Pagetypes
--------------------------------------------------------------------------------
-- This table produces the page types available with the ${PAGETYPE} parameter.
-- Keys are namespace numbers, or the string "default" for the default value.
pagetypes = {
[0] = 'article',
[6] = 'file',
[10] = 'template',
[14] = 'category',
[828] = 'module',
default = 'page'
},
--------------------------------------------------------------------------------
-- Strings marking indefinite protection
--------------------------------------------------------------------------------
-- This table contains values passed to the expiry parameter that mean the page
-- is protected indefinitely.
indefStrings = {
['indef'] = true,
['indefinite'] = true,
['indefinitely'] = true,
['infinite'] = true,
},
--------------------------------------------------------------------------------
-- Group hierarchy
--------------------------------------------------------------------------------
-- This table maps each group to all groups that have a superset of the original
-- group's page editing permissions.
hierarchy = {
sysop = {},
reviewer = {'sysop'},
filemover = {'sysop'},
templateeditor = {'sysop'},
extendedconfirmed = {'sysop'},
autoconfirmed = {'reviewer', 'filemover', 'templateeditor', 'extendedconfirmed'},
user = {'autoconfirmed'},
['*'] = {'user'}
},
--------------------------------------------------------------------------------
-- Wrapper templates and their default arguments
--------------------------------------------------------------------------------
-- This table contains wrapper templates used with the module, and their
-- default arguments. Templates specified in this table should contain the
-- following invocation, and no other template content:
--
-- {{#invoke:Protection banner|main}}
--
-- If other content is desired, it can be added between
-- <noinclude>...</noinclude> tags.
--
-- When a user calls one of these wrapper templates, they will use the
-- default arguments automatically. However, users can override any of the
-- arguments.
wrappers = {
['Template:Pp'] = {},
['Template:Pp-extended'] = {'ecp'},
['Template:Pp-blp'] = {'blp'},
-- we don't need Template:Pp-create
['Template:Pp-dispute'] = {'dispute'},
['Template:Pp-main-page'] = {'mainpage'},
['Template:Pp-move'] = {action = 'move', catonly = 'yes'},
['Template:Pp-move-dispute'] = {'dispute', action = 'move', catonly = 'yes'},
-- we don't need Template:Pp-move-indef
['Template:Pp-move-vandalism'] = {'vandalism', action = 'move', catonly = 'yes'},
['Template:Pp-office'] = {'office'},
['Template:Pp-office-dmca'] = {'dmca'},
['Template:Pp-pc'] = {action = 'autoreview', small = true},
['Template:Pp-pc1'] = {action = 'autoreview', small = true},
['Template:Pp-reset'] = {'reset'},
['Template:Pp-semi-indef'] = {small = true},
['Template:Pp-sock'] = {'sock'},
['Template:Pp-template'] = {'template', small = true},
['Template:Pp-upload'] = {action = 'upload'},
['Template:Pp-usertalk'] = {'usertalk'},
['Template:Pp-vandalism'] = {'vandalism'},
},
--------------------------------------------------------------------------------
--
-- MESSAGES
--
--------------------------------------------------------------------------------
msg = {
--------------------------------------------------------------------------------
-- Intro blurb and intro fragment
--------------------------------------------------------------------------------
-- These messages specify what is produced by the ${INTROBLURB} and
-- ${INTROFRAGMENT} parameters. If the protection is temporary they use the
-- intro-blurb-expiry or intro-fragment-expiry, and if not they use
-- intro-blurb-noexpiry or intro-fragment-noexpiry.
-- It is possible to use banner parameters in these messages.
['intro-blurb-expiry'] = '${PROTECTIONBLURB} until ${EXPIRY}.',
['intro-blurb-noexpiry'] = '${PROTECTIONBLURB}.',
['intro-fragment-expiry'] = '${PROTECTIONBLURB} until ${EXPIRY},',
['intro-fragment-noexpiry'] = '${PROTECTIONBLURB}',
--------------------------------------------------------------------------------
-- Tooltip blurb
--------------------------------------------------------------------------------
-- These messages specify what is produced by the ${TOOLTIPBLURB} parameter.
-- If the protection is temporary the tooltip-blurb-expiry message is used, and
-- if not the tooltip-blurb-noexpiry message is used.
-- It is possible to use banner parameters in these messages.
['tooltip-blurb-expiry'] = 'This ${PAGETYPE} is ${PROTECTIONLEVEL} until ${EXPIRY}.',
['tooltip-blurb-noexpiry'] = 'This ${PAGETYPE} is ${PROTECTIONLEVEL}.',
['tooltip-fragment-expiry'] = 'This ${PAGETYPE} is ${PROTECTIONLEVEL} until ${EXPIRY},',
['tooltip-fragment-noexpiry'] = 'This ${PAGETYPE} is ${PROTECTIONLEVEL}',
--------------------------------------------------------------------------------
-- Special explanation blurb
--------------------------------------------------------------------------------
-- An explanation blurb for pages that cannot be unprotected, e.g. for pages
-- in the MediaWiki namespace.
-- It is possible to use banner parameters in this message.
['explanation-blurb-nounprotect'] = 'See the [[Wikipedia:Protection policy|'
.. 'protection policy]] and ${PROTECTIONLOG} for more details.'
.. ' Please discuss any changes on the ${TALKPAGE}; you'
.. ' may ${EDITREQUEST} to ask an'
.. ' [[Wikipedia:Administrators|administrator]] to make an edit if it'
.. ' is [[Help:Minor edit#When to mark an edit as a minor edit'
.. '|uncontroversial]] or supported by [[Wikipedia:Consensus'
.. '|consensus]].',
--------------------------------------------------------------------------------
-- Protection log display values
--------------------------------------------------------------------------------
-- These messages determine the display values for the protection log link
-- or the pending changes log link produced by the ${PROTECTIONLOG} parameter.
-- It is possible to use banner parameters in these messages.
['protection-log-display'] = 'protection log',
['pc-log-display'] = 'pending changes log',
--------------------------------------------------------------------------------
-- Current version display values
--------------------------------------------------------------------------------
-- These messages determine the display values for the page history link
-- or the move log link produced by the ${CURRENTVERSION} parameter.
-- It is possible to use banner parameters in these messages.
['current-version-move-display'] = 'current title',
['current-version-edit-display'] = 'current version',
--------------------------------------------------------------------------------
-- Talk page
--------------------------------------------------------------------------------
-- This message determines the display value of the talk page link produced
-- with the ${TALKPAGE} parameter.
-- It is possible to use banner parameters in this message.
['talk-page-link-display'] = 'talk page',
--------------------------------------------------------------------------------
-- Edit requests
--------------------------------------------------------------------------------
-- This message determines the display value of the edit request link produced
-- with the ${EDITREQUEST} parameter.
-- It is possible to use banner parameters in this message.
['edit-request-display'] = 'submit an edit request',
--------------------------------------------------------------------------------
-- Expiry date format
--------------------------------------------------------------------------------
-- This is the format for the blurb expiry date. It should be valid input for
-- the first parameter of the #time parser function.
['expiry-date-format'] = 'F j, Y "at" H:i e',
--------------------------------------------------------------------------------
-- Tracking categories
--------------------------------------------------------------------------------
-- These messages determine which tracking categories the module outputs.
['tracking-category-incorrect'] = 'Wikipedia pages with incorrect protection templates',
['tracking-category-template'] = 'Wikipedia template-protected pages other than templates and modules',
--------------------------------------------------------------------------------
-- Images
--------------------------------------------------------------------------------
-- These are images that are not defined by their protection action and protection level.
['image-filename-indef'] = 'Full-protection-shackle.svg',
['image-filename-default'] = 'Transparent.gif',
--------------------------------------------------------------------------------
-- End messages
--------------------------------------------------------------------------------
}
--------------------------------------------------------------------------------
-- End configuration
--------------------------------------------------------------------------------
}
eeb6sgpzkp24z3uln44ko8rah6nhotf
Module:Protection banner/config/doc
828
1723
15365
2022-07-27T18:45:23Z
Kambai Akau
15
Created page with "{{Module rating|protected}} This module contains configuration data for [[Module:Protection banner]]. For documentation please see the module comments, and if you're not sure how something works you can ask on the [[Module talk:Protection banner|module talk page]]. <includeonly>{{#ifeq:{{SUBPAGENAME}}|sandbox|| <!-- Categories go here and interwikis go in Wikidata. --> }}</includeonly>"
wikitext
text/x-wiki
{{Module rating|protected}}
This module contains configuration data for [[Module:Protection banner]]. For documentation please see the module comments, and if you're not sure how something works you can ask on the [[Module talk:Protection banner|module talk page]].
<includeonly>{{#ifeq:{{SUBPAGENAME}}|sandbox||
<!-- Categories go here and interwikis go in Wikidata. -->
}}</includeonly>
4soaa4twf9kvsi2t08ab9ggal5hevr2
Module:Effective protection expiry
828
1724
15366
2022-07-27T18:46:32Z
Kambai Akau
15
Created page with "local p = {} -- Returns the expiry of a restriction of an action on a given title, or unknown if it cannot be known. -- If no title is specified, the title of the page being displayed is used. function p._main(action, pagename) local title if type(pagename) == 'table' and pagename.prefixedText then title = pagename elseif pagename then title = mw.title.new(pagename) else title = mw.title.getCurrentTitle() end pagename = title.prefixedText if action == 'auto..."
Scribunto
text/plain
local p = {}
-- Returns the expiry of a restriction of an action on a given title, or unknown if it cannot be known.
-- If no title is specified, the title of the page being displayed is used.
function p._main(action, pagename)
local title
if type(pagename) == 'table' and pagename.prefixedText then
title = pagename
elseif pagename then
title = mw.title.new(pagename)
else
title = mw.title.getCurrentTitle()
end
pagename = title.prefixedText
if action == 'autoreview' then
local stabilitySettings = mw.ext.FlaggedRevs.getStabilitySettings(title)
return stabilitySettings and stabilitySettings.expiry or 'unknown'
elseif action ~= 'edit' and action ~= 'move' and action ~= 'create' and action ~= 'upload' then
error( 'First parameter must be one of edit, move, create, upload, autoreview', 2 )
end
local rawExpiry = mw.getCurrentFrame():callParserFunction('PROTECTIONEXPIRY', action, pagename)
if rawExpiry == 'infinity' then
return 'infinity'
elseif rawExpiry == '' then
return 'unknown'
else
local year, month, day, hour, minute, second = rawExpiry:match(
'^(%d%d%d%d)(%d%d)(%d%d)(%d%d)(%d%d)(%d%d)$'
)
if year then
return string.format(
'%s-%s-%sT%s:%s:%s',
year, month, day, hour, minute, second
)
else
error('internal error in Module:Effective protection expiry; malformed expiry timestamp')
end
end
end
setmetatable(p, { __index = function(t, k)
return function(frame)
return t._main(k, frame.args[1])
end
end })
return p
i1wms02y1w048cq6uttka18a5pjzp63
Module:Effective protection expiry/doc
828
1725
15367
2022-07-27T18:47:05Z
Kambai Akau
15
Created page with "{{Module rating |protected <!-- Values: pre-alpha • alpha • beta • release • protected -- If a rating not needed/relevant, delete this template call -->}} <!-- Please place categories where indicated at the bottom of this page and interwikis at Wikidata (see [[Wikipedia:Wikidata]]) --> This module provides a way to retrieve the expiry of a restriction over a given action on a page."
wikitext
text/x-wiki
{{Module rating |protected <!-- Values: pre-alpha • alpha • beta • release • protected -- If a rating not needed/relevant, delete this template call -->}}
<!-- Please place categories where indicated at the bottom of this page and interwikis at Wikidata (see [[Wikipedia:Wikidata]]) -->
This module provides a way to retrieve the expiry of a restriction over a given action on a page.
gez8savnjdxxdq02y79hzve1pdmnvot
Module:Submit an edit request
828
1726
15368
2022-07-27T18:48:54Z
Kambai Akau
15
Created page with "-- This module implements {{Submit an edit request}}. local CONFIG_MODULE = 'Module:Submit an edit request/config' -- Load necessary modules local mRedirect = require('Module:Redirect') local cfg = mw.loadData(CONFIG_MODULE) local effectiveProtectionLevel = require('Module:Effective protection level')._main local escape = require("Module:String")._escapePattern local lang = mw.language.getContentLanguage() local p = {} local validLevels = { semi = 'semi', extended..."
Scribunto
text/plain
-- This module implements {{Submit an edit request}}.
local CONFIG_MODULE = 'Module:Submit an edit request/config'
-- Load necessary modules
local mRedirect = require('Module:Redirect')
local cfg = mw.loadData(CONFIG_MODULE)
local effectiveProtectionLevel = require('Module:Effective protection level')._main
local escape = require("Module:String")._escapePattern
local lang = mw.language.getContentLanguage()
local p = {}
local validLevels = {
semi = 'semi',
extended = 'extended',
template = 'template',
full = 'full',
interface = 'interface',
manual = 'manual'
}
local function message(key, ...)
local params = {...}
local msg = cfg[key]
if #params < 1 then
return msg
else
return mw.message.newRawMessage(msg):params(params):plain()
end
end
local function validateLevel(level)
return level and validLevels[level] or 'full'
end
local function getLevelInfo(level, field)
return cfg.protectionLevels[level][field]
end
local function resolveRedirect(page)
return mRedirect.luaMain(page)
end
local function isProtected(page)
local action = mw.title.new(page).exists and 'edit' or 'create'
return effectiveProtectionLevel(action, page) ~= '*'
end
function p.makeRequestUrl(level, titleObj)
titleObj = titleObj or mw.title.getCurrentTitle()
local basePage = titleObj.basePageTitle.fullText
if cfg['main-page-content'][basePage] then
return tostring(mw.uri.fullUrl(message('main-page-request-page')))
end
local talkPageName = titleObj.talkPageTitle
if talkPageName == nil then
return tostring(mw.uri.fullUrl(message('protected-talk-page-request-page')))
end
talkPageName = resolveRedirect(talkPageName.prefixedText)
if isProtected(talkPageName) then
return tostring(mw.uri.fullUrl(message('protected-talk-page-request-page')))
end
level = validateLevel(level)
if level == 'manual' then
return tostring(mw.uri.fullUrl(talkPageName, {
action = 'edit',
section = 'new'
}))
end
local sectionname = message(
'preload-title-text',
getLevelInfo(level, 'levelText'),
lang:formatDate(message('preload-title-date-format'))
)
local content = mw.title.new(talkPageName):getContent()
if content and content:find("== *" .. escape(sectionname) .. " *==") then
local dedup = 2
while true do
local newname = message("preload-title-dedup-suffix", sectionname, dedup)
if not content:find("== *" .. escape(newname) .. " *==") then
sectionname = newname
break
end
dedup = dedup + 1
end
end
local url = mw.uri.fullUrl(talkPageName, {
action = 'edit',
editintro = getLevelInfo(level, 'editintro'),
preload = message('preload-template'),
preloadtitle = sectionname,
section = 'new'
})
url = tostring(url)
-- Add the preload parameters. @TODO: merge this into the mw.uri.fullUrl
-- query table once [[phab:T93059]] is fixed.
local function encodeParam(key, val)
return string.format('&%s=%s', mw.uri.encode(key), mw.uri.encode(val))
end
url = url .. encodeParam('preloadparams[]', getLevelInfo(level, 'requestTemplate'))
url = url .. encodeParam('preloadparams[]', titleObj.prefixedText)
return url
end
function p._link(args)
return string.format(
'<span class="plainlinks">[%s %s]</span>',
p.makeRequestUrl(args.type),
args.display or message('default-display-value')
)
end
function p._button(args)
return require('Module:Clickable button 2').luaMain{
[1] = args.display or message('default-display-value'),
url = p.makeRequestUrl(args.type),
class = 'mw-ui-progressive'
}
end
local function makeInvokeFunc(func, wrapper)
return function (frame)
local args = require('Module:Arguments').getArgs(frame, {
wrappers = {wrapper}
})
return func(args)
end
end
p.link = makeInvokeFunc(p._link, message('link-wrapper-template'))
p.button = makeInvokeFunc(p._button, message('button-wrapper-template'))
return p
2c0ofx7u6wfuwm9if27uqcb367n9zxm
Module:Submit an edit request/doc
828
1727
15369
2022-07-27T18:49:38Z
Kambai Akau
15
Created page with "{{used in system}} {{Lua|Module:Redirect|Module:Effective protection level|Module:String|Module:Arguments|Module:Clickable button 2}} This module implements the {{tl|submit an edit request}} and {{tl|submit an edit request/link}} templates."
wikitext
text/x-wiki
{{used in system}}
{{Lua|Module:Redirect|Module:Effective protection level|Module:String|Module:Arguments|Module:Clickable button 2}}
This module implements the {{tl|submit an edit request}} and {{tl|submit an edit request/link}} templates.
e35cnf6iwb054j8vwgylqk05d0fnamu
Module:Submit an edit request/config
828
1728
15370
2022-07-27T18:51:26Z
Kambai Akau
15
Created page with "-- This module contains configuration data for [[Module:Submit an edit request]]. return { -------------------------------------------------------------------------------- -- Messages -------------------------------------------------------------------------------- -- The default display value for edit requests. ['default-display-value'] = 'Submit an edit request', -- The template that stores the edit request preload text ['preload-template'] = 'Template:Submit an edi..."
Scribunto
text/plain
-- This module contains configuration data for [[Module:Submit an edit request]].
return {
--------------------------------------------------------------------------------
-- Messages
--------------------------------------------------------------------------------
-- The default display value for edit requests.
['default-display-value'] = 'Submit an edit request',
-- The template that stores the edit request preload text
['preload-template'] = 'Template:Submit an edit request/preload',
-- The section heading that is generated when a user clicks on an edit request
-- link. $1 is the protection level text, e.g. "Semi-protected" or
-- "Template-protected". $2 is the current date, in the format specified by the
-- "preload-title-date-format" message.
['preload-title-text'] = '$1 edit request on $2',
-- The date format for the automatically-generated section heading. The format
-- must be valid input for the #time parser function.
['preload-title-date-format'] = 'j F Y',
-- What do do with the generated section header if another header with the same section already exists
-- $1 is the original section header. $2 is an automatically generated number, starting at 2 and increasing
-- by one until a unique header is found.
['preload-title-dedup-suffix'] = '$1 ($2)',
-- The names of pages (and their subpages) that make up the content of the main page for this wiki
['main-page-content'] = {
['Wikipedia:Today\'s featured article'] = true,
['Template:In the news'] = true,
['Template:Did you know'] = true,
['Wikipedia:Selected anniversaries'] = true,
['Template:POTD protected'] = true,
['Wikipedia:Today\'s featured list'] = true
},
-- The page used to request changes to things on the Main Page.
['main-page-request-page'] = 'Wikipedia:Main Page/Errors',
-- The page used to request edits to protected talk pages.
['protected-talk-page-request-page'] = 'Wikipedia:Requests for page protection/Edit',
-- The names of the templates to be used as wrappers for the "link" and "button"
-- functions. These are passed as arguments to the "wrappers" option of
-- [[Module:Arguments]].
['link-wrapper-template'] = 'Template:Submit an edit request/link',
['button-wrapper-template'] = 'Template:Submit an edit request',
--------------------------------------------------------------------------------
-- Protection level config
--------------------------------------------------------------------------------
protectionLevels = {
--[[
-- These settings are for the different protection levels which the module can
-- output edit request links for.
--
-- editintro:
-- The template to use as the edit intro users see when they click on an edit
-- request link.
--
-- request-template:
-- The name of the edit request template for that protection level. Do not
-- include the "Template:" text.
--
-- protectionlevel:
-- The name of the protection level, used for formatting the automatically-
-- generated section headings.
--]]
-- Semi-protection
semi = {
editintro = 'Template:Edit semi-protected/editintro',
requestTemplate = 'edit semi-protected',
levelText = 'Semi-protected',
},
-- Extended-confirmed-protection
extended = {
editintro = 'Template:Edit extended-protected/editintro',
requestTemplate = 'edit extended-protected',
levelText = 'Extended-confirmed-protected',
},
-- Template-protection
template = {
editintro = 'Template:Edit template-protected/editintro',
requestTemplate = 'edit template-protected',
levelText = 'Template-protected',
},
-- Full protection
full = {
editintro = 'Template:Edit protected/editintro',
requestTemplate = 'edit fully-protected',
levelText = 'Protected',
},
-- Interface-protection
interface = {
editintro = 'Template:Edit interface-protected/editintro',
requestTemplate = 'edit interface-protected',
levelText = 'Interface-protected',
},
}
}
g2cw0sza4grvyqer5wl8rec95c9kc4l
Module:Submit an edit request/config/doc
828
1729
15371
2022-07-27T18:52:02Z
Kambai Akau
15
Created page with "{{used in system}} This module provides configuration data for [[Module:Submit an edit request]]. Please see the module comments for a description of what each message does. <includeonly>{{#ifeq:{{SUBPAGENAME}}|sandbox|| <!-- Categories go here and interwikis go in Wikidata. --> }}</includeonly>"
wikitext
text/x-wiki
{{used in system}}
This module provides configuration data for [[Module:Submit an edit request]]. Please see the module comments for a description of what each message does.
<includeonly>{{#ifeq:{{SUBPAGENAME}}|sandbox||
<!-- Categories go here and interwikis go in Wikidata. -->
}}</includeonly>
2voum47qb0x5qt3vdrcrhrmiid0z205
Module:Transclusion count/data/P
828
1730
15372
2022-07-27T18:53:59Z
Kambai Akau
15
Created page with "return { ["P"] = 6000, ["P-phrases"] = 3100, ["P."] = 3500, ["P1"] = 134000, ["P2"] = 261000, ["PAGENAMEBASE"] = 1430000, ["PAGENAMEU"] = 85000, ["PAK"] = 2800, ["PD-US"] = 11000, ["PD-US-1923"] = 2500, ["PD-US-1923-abroad"] = 6000, ["PD-US-expired"] = 4200, ["PD-US-expired-abroad"] = 6900, ["PD-art"] = 3400, ["PD-ineligible-USonly"] = 4600, ["PD-notice"] = 18000, ["PD-old-100"] = 5500, ["PD-self"] = 41000, ["PD-textlogo"] = 5300, ["PDB_Gallery"] = 2900, ["PDanube"] = 32..."
Scribunto
text/plain
return {
["P"] = 6000,
["P-phrases"] = 3100,
["P."] = 3500,
["P1"] = 134000,
["P2"] = 261000,
["PAGENAMEBASE"] = 1430000,
["PAGENAMEU"] = 85000,
["PAK"] = 2800,
["PD-US"] = 11000,
["PD-US-1923"] = 2500,
["PD-US-1923-abroad"] = 6000,
["PD-US-expired"] = 4200,
["PD-US-expired-abroad"] = 6900,
["PD-art"] = 3400,
["PD-ineligible-USonly"] = 4600,
["PD-notice"] = 18000,
["PD-old-100"] = 5500,
["PD-self"] = 41000,
["PD-textlogo"] = 5300,
["PDB_Gallery"] = 2900,
["PDanube"] = 3200,
["PER"] = 3000,
["PHI"] = 2300,
["PHL"] = 3200,
["PLANTS"] = 4000,
["PM20"] = 3300,
["PMID"] = 7100,
["POL"] = 38000,
["POR"] = 4800,
["POTD_default"] = 11000,
["POTD_image"] = 2400,
["POTD_navigation"] = 6400,
["POTDlink"] = 6900,
["POV"] = 7500,
["PR/header"] = 3100,
["PR/heading"] = 7200,
["PRT"] = 5500,
["PR_link"] = 97000,
["PS"] = 2600,
["Pad"] = 51000,
["Page"] = 4000,
["Page_name_sub"] = 45000,
["Page_needed"] = 16000,
["Page_tabs"] = 3400,
["Page_tabs/styles.css"] = 3400,
["Pagelinks"] = 40000,
["Pagelist"] = 6000,
["Pagetype"] = 14600000,
["Paid"] = 7500,
["Para"] = 862000,
["Parabr"] = 2300,
["Paragraph_break"] = 1160000,
["Parameter_names_example"] = 2300,
["ParmPart"] = 13000,
["Partial_minor_planet_designation"] = 5800,
["Partly_done"] = 2100,
["Party_color"] = 65000,
["Party_color_cell"] = 3800,
["Party_name_with_color"] = 5000,
["Party_name_with_colour"] = 2700,
["Party_shading/Democratic"] = 14000,
["Party_shading/Independent"] = 2000,
["Party_shading/Republican"] = 14000,
["Party_stripe"] = 17000,
["Pass"] = 2400,
["Pb"] = 1140000,
["Pbox"] = 3100,
["Pbox/1"] = 3100,
["Peacock"] = 3600,
["Pedigree"] = 3700,
["Peer_review/heading"] = 10000,
["Peer_review_tools"] = 7900,
["Pending"] = 2100,
["Pengoal"] = 8300,
["Penmiss"] = 9500,
["Percentage"] = 9200,
["Performance_key"] = 2300,
["Period_color"] = 22000,
["Period_end"] = 20000,
["Period_id"] = 22000,
["Period_start"] = 22000,
["PeruTasks"] = 14000,
["Phab"] = 4600,
["Phanerozoic_220px"] = 19000,
["PharmNavFootnote"] = 5200,
["Philippine_name"] = 2500,
["Philosophy"] = 5200,
["Photo_montage"] = 3900,
["Photo_requested"] = 98000,
["Photomontage"] = 3800,
["Physics"] = 9600,
["Picture_of_the_day"] = 6900,
["Pie_chart"] = 4800,
["Pie_chart/slice"] = 4800,
["Ping"] = 205000,
["Pipe"] = 131000,
["Place_name_disambiguation"] = 39000,
["Plain_link"] = 1240000,
["Plain_list"] = 10000,
["Plain_text"] = 34000,
["Plainlink"] = 69000,
["Plainlist"] = 283000,
["Player"] = 3500,
["Player2"] = 2500,
["Please_check_ISSN"] = 14000,
["Plural"] = 101000,
["Pluralize_from_text"] = 1150000,
["Poem_quote"] = 2400,
["Poemquote"] = 2100,
["Politician_icon"] = 31000,
["Politician_icon2"] = 31000,
["Politics_sidebar_below"] = 19000,
["Politics_sidebar_title"] = 19000,
["Poll_bottom"] = 2000,
["Poll_top"] = 2000,
["Polparty"] = 25000,
["Pop_density"] = 9200,
["Population_Germany"] = 14000,
["Portal"] = 8810000,
["Portal-Class"] = 7500,
["Portal-inline"] = 210000,
["Portal_bar"] = 104000,
["Portal_box"] = 2700,
["Portalbar"] = 10000,
["Portuguese_name"] = 7900,
["PosMapFS"] = 4200,
["Possible"] = 3100,
["Possibly_empty_category"] = 65000,
["Post-nominals"] = 47000,
["Post-nominals/AUS"] = 6800,
["Post-nominals/CAN"] = 8300,
["Post-nominals/GBR"] = 25000,
["Post-nominals/NZL"] = 3700,
["Postnominals"] = 8700,
["Pp"] = 12000,
["Pp-book-cover"] = 52000,
["Pp-move"] = 7100,
["Pp-move-indef"] = 4600,
["Pp-pc"] = 3900,
["Pp-pc1"] = 3100,
["Pp-protected"] = 6000,
["Pp-semi-indef"] = 4000,
["Pp-template"] = 2400,
["Pp-vandalism"] = 2300,
["Precision"] = 255000,
["PresFoot"] = 2900,
["PresHead"] = 2900,
["PresRow"] = 2900,
["Press"] = 4500,
["Preview_warning"] = 14000,
["Primary_source_inline"] = 5200,
["Primary_sources"] = 29000,
["Principal_rank"] = 425000,
["Prl"] = 97000,
["Pro-wrestling"] = 4400,
["ProCyclingStats"] = 2700,
["ProQuest"] = 11000,
["Procyclingstats"] = 2100,
["Professional_wrestling_results_table"] = 2300,
["Profit"] = 3400,
["Progress_box"] = 15000,
["Project-Class"] = 12000,
["Project_Catholicism"] = 2100,
["Project_other"] = 4300,
["Prose"] = 3300,
["Proxy_block"] = 2700,
["Pso"] = 2800,
["Purge"] = 319000,
["Purge_button"] = 15000,
["Module:Page"] = 225000,
["Module:PageLinks"] = 40000,
["Module:Page_tabs"] = 3400,
["Module:Pagelist"] = 6000,
["Module:Pagetype"] = 14600000,
["Module:Pagetype/config"] = 14600000,
["Module:ParameterCount"] = 103000,
["Module:Parameter_names_example"] = 2300,
["Module:Parameter_validation"] = 57000,
["Module:Parameter_validation/default_config"] = 57000,
["Module:Party_name_with_color"] = 5000,
["Module:Percentage"] = 9200,
["Module:Person_height"] = 246000,
["Module:Person_length"] = 6800,
["Module:Person_weight"] = 75000,
["Module:Photo_montage"] = 3900,
["Module:Plain_text"] = 1100000,
["Module:Political_party"] = 101000,
["Module:Political_party/A"] = 16000,
["Module:Political_party/B"] = 13000,
["Module:Political_party/C"] = 31000,
["Module:Political_party/D"] = 43000,
["Module:Political_party/E"] = 5000,
["Module:Political_party/F"] = 8800,
["Module:Political_party/G"] = 14000,
["Module:Political_party/H"] = 3900,
["Module:Political_party/I"] = 42000,
["Module:Political_party/J"] = 5800,
["Module:Political_party/K"] = 3200,
["Module:Political_party/L"] = 31000,
["Module:Political_party/M"] = 9500,
["Module:Political_party/N"] = 24000,
["Module:Political_party/O"] = 4400,
["Module:Political_party/P"] = 22000,
["Module:Political_party/R"] = 41000,
["Module:Political_party/S"] = 23000,
["Module:Political_party/T"] = 8800,
["Module:Political_party/U"] = 16000,
["Module:Political_party/V"] = 5500,
["Module:Political_party/W"] = 8700,
["Module:Pop_density"] = 9200,
["Module:PopulationFromWikidata"] = 3700,
["Module:Portal"] = 9100000,
["Module:Portal-inline"] = 210000,
["Module:Portal/images/a"] = 1500000,
["Module:Portal/images/aliases"] = 129000,
["Module:Portal/images/b"] = 2570000,
["Module:Portal/images/c"] = 1440000,
["Module:Portal/images/d"] = 95000,
["Module:Portal/images/e"] = 395000,
["Module:Portal/images/f"] = 753000,
["Module:Portal/images/g"] = 579000,
["Module:Portal/images/h"] = 385000,
["Module:Portal/images/i"] = 1020000,
["Module:Portal/images/j"] = 244000,
["Module:Portal/images/k"] = 64000,
["Module:Portal/images/l"] = 368000,
["Module:Portal/images/m"] = 569000,
["Module:Portal/images/n"] = 680000,
["Module:Portal/images/o"] = 388000,
["Module:Portal/images/other"] = 114000,
["Module:Portal/images/p"] = 777000,
["Module:Portal/images/q"] = 2900,
["Module:Portal/images/r"] = 346000,
["Module:Portal/images/s"] = 1480000,
["Module:Portal/images/t"] = 573000,
["Module:Portal/images/u"] = 929000,
["Module:Portal/images/v"] = 271000,
["Module:Portal/images/w"] = 168000,
["Module:Portal/images/y"] = 25000,
["Module:Portal/images/z"] = 4900,
["Module:Portal/styles.css"] = 8810000,
["Module:Portal_bar"] = 122000,
["Module:Portal_bar/styles.css"] = 122000,
["Module:Progress_box"] = 15000,
["Module:Progress_box/config"] = 15000,
["Module:Protect"] = 228000,
["Module:Protected_edit_request"] = 43000,
["Module:Protection_banner"] = 50000,
["Module:Protection_banner/config"] = 50000,
["Module:Purge"] = 337000,
}
ogok9iaov46u3nhd3uqqe3pnsqmipf1
Ta̱mpi̱let:Shim
10
1731
15380
15376
2022-07-27T19:19:28Z
Kambai Akau
15
Kambai Akau shyei peji [[Ta̱mpi̱let:Reply to]] nat [[Ta̱mpi̱let:Shim]]: Di̱n Tyap
wikitext
text/x-wiki
{{<includeonly>safesubst:</includeonly>#invoke:Reply to|replyto|<noinclude>example=Example</noinclude>|max=50}}<noinclude>
{{documentation}}
</noinclude>
745b53c3ct06m88ybdv83pcjzywtr9q
Ta̱mpi̱let:Shim/doc
10
1732
15382
15377
2022-07-27T19:19:28Z
Kambai Akau
15
Kambai Akau shyei peji [[Ta̱mpi̱let:Reply to/doc]] nat [[Ta̱mpi̱let:Shim/doc]]: Di̱n Tyap
wikitext
text/x-wiki
{{hatnote|[[Template:Pin]] redirects here. You may be looking for [[Template:Pin section]].}}
{{hatnote|[[Template:Echo]] redirects here. You may be looking for [[Template:1x]].}}
{{Documentation subpage}}
<!-- Add categories where indicated at the bottom of this page and interwikis at Wikidata -->
{{High-use}}
{{Lua|Module:Reply to}}
{{template shortcut|ping|re|replyto|reply|yo|clear=right}}
This template is used to link one or more users' names, in the form "<kbd>@Username:</kbd>", to trigger a [[Wikipedia:Notifications|notification]] for user(s) you are replying to in a discussion. The notification will work successfully only if you sign your post in the same edit in which you use this template. If you make a mistake in placing this template or in signing, see [[Help:Fixing failed pings]]. It is an alternative to the {{tl|talkback}} template. It works on any talk page or Wikipedia namespace page.
{{notice|For registered users, the {{tl|talkback}} template is obsolete as it has been superseded by [[Help:Notifications|Notifications]] and this template.}}
'''You cannot directly type the "@" symbol to notify a user of your reply, you must use the template documented here or manually create a [[WP:WIKILINK|wikilink]] to their [[WP:USERPAGE|user page]].<br /> The "@" symbol is used by this template for display purposes only.'''
This template is particularly helpful in discussions that are not threaded, to indicate which user's comment is referenced. If you feel that this template unnecessarily personalizes the discussion, you may still use the {{tl|talkback}} template on the user's talk page to indicate that you have replied to a comment. IP addresses are only notified if you post to their user talk page.
fwj9jlym4rzkbxoqklx05bgfolybf26
Module:Shim
828
1733
15384
15378
2022-07-27T19:20:20Z
Kambai Akau
15
Kambai Akau shyei peji [[Module:Reply to]] nat [[Module:Shim]] di̱ mi̱n wot a̱shaivak: Di̱n Tyap
Scribunto
text/plain
local p = {}
local function makeError(msg)
msg ='Error in [[Template:Reply to]]: ' .. msg
return mw.text.tag('strong', {['class']='error'}, msg)
end
function p.replyto(frame)
local origArgs = frame:getParent().args
local args = {}
local maxArg = 1
local usernames = 0
for k, v in pairs(origArgs) do
if type(k) == 'number' then
if mw.ustring.match(v,'%S') then
if k > maxArg then maxArg = k end
usernames = usernames + 1
local title = mw.title.new(v)
if not title then return makeError('Input contains forbidden characters.') end
args[k] = title.rootText
end
elseif v == '' and k:sub(0,5) == 'label' then
args[k] = '​'
else
args[k] = v
end
end
if usernames > (tonumber(frame.args.max) or 50) then
return makeError(string.format(
'More than %s names specified.',
tostring(frame.args.max or 50)
))
else
if usernames < 1 then
if frame.args.example then args[1] = frame.args.example else return makeError('Username not given.') end
end
args['label1'] = args['label1'] or args['label']
local isfirst = true
local outStr = args['prefix'] or '@'
for i = 1, maxArg do
if args[i] then
if isfirst then
isfirst = false
else
if ( (usernames > 2) or ((usernames == 2) and (args['c'] == '')) ) then outStr = outStr..', ' end
if i == maxArg then outStr = outStr..' '..(args['c'] or 'and') .. ' ' end
end
outStr = string.format(
'%s[[User:%s|%s]]',
outStr,
args[i],
args['label'..tostring(i)] or args[i]
)
end
end
outStr = outStr..(args['p'] or ':')
return mw.text.tag('span', {['class']='template-ping'}, outStr)
end
end
return p
2g258a6jic0282azfyk17p5289xwnxm
Module:Shim/doc
828
1734
15386
15385
2022-07-27T19:22:08Z
Kambai Akau
15
wikitext
text/x-wiki
{{High-risk|approximately 150,000}}
{{Module rating |release<!-- Values: pre-alpha • alpha • beta • release • protected -- If a rating not needed/relevant, delete this template call -->}}
{{Module rating|protected}}
<!-- Please place categories where indicated at the bottom of this page and interwikis at Wikidata (see [[Wikipedia:Wikidata]]) -->
This module is used by {{tl|Shim}} to trigger a [[Wikipedia:Notifications|notification]] to one or several registered user(s) you are replying to in a discussion.
2v47wjn68xu7nhbjbalj042nynzrcxc
Ta̱mpi̱let:Reply to
10
1735
15381
2022-07-27T19:19:28Z
Kambai Akau
15
Kambai Akau shyei peji [[Ta̱mpi̱let:Reply to]] nat [[Ta̱mpi̱let:Shim]]: Di̱n Tyap
wikitext
text/x-wiki
#REDIRECT [[Ta̱mpi̱let:Shim]]
ji91iot8yqf84pri7rh0e1pf4w8rs7z
Ta̱mpi̱let:Reply to/doc
10
1736
15383
2022-07-27T19:19:28Z
Kambai Akau
15
Kambai Akau shyei peji [[Ta̱mpi̱let:Reply to/doc]] nat [[Ta̱mpi̱let:Shim/doc]]: Di̱n Tyap
wikitext
text/x-wiki
#REDIRECT [[Ta̱mpi̱let:Shim/doc]]
g1352uqmlcapmj5277rtl2kc9wsp1pm
Wukipedia:Deletion
4
1737
15468
15457
2022-08-05T21:02:12Z
LisafBia6531
225
LisafBia6531 shyei peji [[A̱lyiat a̱tyunta̱m:Deletion policy]] nat [[Wukipedia:Deletion]]: revert
wikitext
text/x-wiki
'''kcg:''' Á̱ fa nkyang na̱ shyia̱ mami wat huni na yet á̱lyiat tyai nvak nia mat a̱mgba̱m á̱nietjhyuk di̱ Wukipedia nTyap hu.
'''en:''' The contents on this page are meant to serve as guidelines to all who edit on the Tyap wikipedia.
0olx6ggel41smqrg1k619evgnvzzbv0
Wukipedia:Blocking policy
4
1738
15410
15394
2022-07-27T21:03:44Z
LisafBia6531
225
LisafBia6531 shyei peji [[Blocking policy]] nat [[Wukipedia:Blocking policy]]: fix
wikitext
text/x-wiki
'''kcg:''' Á̱ fa nkyang na̱ shyia̱ mami wat huni na yet á̱lyiat tyai nvak nia mat a̱mgba̱m á̱nietjhyuk di̱ Wukipedia nTyap hu, tazwa fwun a̱la̱n a̱tyunta̱m.
'''en:''' The contents on this page are meant to serve as guidelines to all who edit on the Tyap wikipedia, regarding user account blocking.
tsnv5djtpvmz041rtxe4e2inmm71gdx
Sa:A̱waktong
14
1739
15398
2022-07-27T19:51:48Z
Kambai Akau
15
Created blank page
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Á̱gwam A̱byintyok A̱jhyuo
14
1740
15406
2022-07-27T20:16:26Z
Kambai Akau
15
Created blank page
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Ta̱mpi̱let:Nutshell
10
1742
15428
2022-07-30T14:22:17Z
LisafBia6531
225
Created page with "{{mbox | class = nutshell | image = [[File:Walnut.png|30px|link=|alt=]] | text = '''{{{title|This page}}} in a nutshell:''' {{#if:{{{2|}}} | {{unordered list|{{{1|}}}|{{{2|}}}|{{{3|}}}|{{{4|}}}}} | {{{1}}} }} | imageright = {{#if:{{{shortcut|{{{shortcut1|}}}}}} | {{Ombox/shortcut|{{{shortcut|{{{shortcut1|}}}}}}|{{{shortcut2|}}}|{{{shortcut3|}}}|{{{shortcut4|}}}|{{{shortcut5|}}} }} }} }}<noinclude> {{documentation}} <!-- Categories go on the /doc subpage, and interw..."
wikitext
text/x-wiki
{{mbox
| class = nutshell
| image = [[File:Walnut.png|30px|link=|alt=]]
| text = '''{{{title|This page}}} in a nutshell:''' {{#if:{{{2|}}}
| {{unordered list|{{{1|}}}|{{{2|}}}|{{{3|}}}|{{{4|}}}}}
| {{{1}}}
}}
| imageright = {{#if:{{{shortcut|{{{shortcut1|}}}}}} | {{Ombox/shortcut|{{{shortcut|{{{shortcut1|}}}}}}|{{{shortcut2|}}}|{{{shortcut3|}}}|{{{shortcut4|}}}|{{{shortcut5|}}} }} }}
}}<noinclude>
{{documentation}}
<!-- Categories go on the /doc subpage, and interwikis go on Wikidata. -->
</noinclude>
n8ji8sjm39m0urz63y3qqsh9zcg59s7
Brazil
0
1743
15432
2022-07-30T14:35:35Z
Kambai Akau
15
Kambai Akau shyei peji [[Brazil]] nat [[Bi̱razi̱t]]
wikitext
text/x-wiki
#REDIRECT [[Bi̱razi̱t]]
dij9zrqqsvtupl6m7th48hppxhicnuo
Wukipedia:IP block exemption
4
1744
15475
15446
2022-08-06T06:18:00Z
LisafBia6531
225
wikitext
text/x-wiki
{{nutshell|title=This policy|Editors in good standing whose editing is disrupted by unrelated blocks or firewalls may request IP address block exemption, which allows editing on an otherwise-blocked IP address. The right is given to trusted users and may be removed if concerns arise or when it is no longer needed. To request an IP address block exemption, please contact a [[Special:listusers/sysop|administrator]]. If you will be editing using an anonymous proxy, including a VPN service, send your request to administrator's talk page.}}
Normally, long-term [[Wikipedia:Blocking policy|blocks]] of IP addresses or ranges do not affect [[Wikipedia:Why create an account?|logged-in editors]]. However, it is occasionally necessary to block both anonymous and logged-in editors in this way, using a [[WP:HARDBLOCK|hard block]], to prevent disruption.
[[Wikipedia:Administrators|Administrators]] and [[Wikipedia:Bots|bots]] are always exempt from such blocks (except for [[Tor (anonymity network)|Tor]] blocks<ref>Editing from Tor exit nodes require the <code>torunblocked</code> right, which is included only in the IP block exemption group. It is not included with the Administrator or Bot user groups. All users, including those with IP block exemption, are still affected by any [[Wikipedia:Autoblock#Cookie block|cookie blocks]] that are imposed upon them; IP block exemption does not affect this block option.</ref>). Other editors can request for IP address block exemptions on a per-user basis if they can show good cause.
An IP address block exemption allows that editor to edit without interruption, from an IP address that would otherwise be blocked through no fault of their own. It can also be used to allow editing via an [[WP:PROXY|anonymizing proxy]] when need is demonstrated and the user is trusted to not abuse the user right.
Editors granted IP address block exemption should be aware that breach of this policy, including unauthorized editing via [[WP:PROXY|proxies]], or significant concerns over [[WP:SOCK|account abuse]] or other conduct, may lead to the removal of the IP address block exemption.
The permission is usually given for 12-month intervals for experienced users, who are encouraged to request it again if they have a continued need after it expires. Users with less experience but who meet the qualification under this policy might be granted an IP block exemption for a shorter duration.
<div style="margin-left:2em;">''When it is considered, please document the decision and your experience [[Wikipedia talk:IP block exemption/log|here]] so we can learn from your experience.''<!-- DO NOT REMOVE PLEASE - IT IS *IMPORTANT* PEOPLE KNOW THIS, IT'S A TEMPORARY NOTICE, WHILE WE ARE LEARNING. --></div>
There are currently [[Special:ListUsers/ipblock-exempt|{{NUMBERINGROUP:ipblock-exempt}}]] users who have the IPBE flag.
== Requesting and granting exemption ==
There are three main circumstances where the IP address block exemption flag can be given:
* An editor who is unfortunately affected by a block intended to prevent vandalism or disruption. After being given the flag, they will then be able to edit without being affected by any IP address blocks.
* An editor in good standing editing anonymously when they can demonstrate the need.
* For one of the reasons above, an editor in good standing needs to edit from an IP or range that is globally blocked, but is primarily interested in editing the English Wikipedia.
These are handled differently, due to the additional safeguards involved for open proxy usage.
=== <span id="CONDITIONS"></span>Used to bypass an IP address range block ===
{{shortcut|WP:IPEXEMPTCONDITIONS|WP:IPEC}}
[[WP:HARDBLOCK|Hard IP address range blocks]] are used to prevent persistent disruption from temporary accounts and [[WP:SOCK|sock-puppets]] within an IP address range. An editor with a credible editing record who would be affected by this measure may be exempted from the block at administrative discretion, allowing them to edit uninterrupted through the IP address range block.
The '''conditions''' for granting this are that:
* the editor's normal (non-proxy) IP address will be disrupted by an IP address block placed on a range they usually edit on, through no fault of theirs. (This may be confirmed via autoblock or [[Wikipedia:CheckUser|CheckUser]])
* the editor agrees <u>never</u> to misuse the exemption to edit through a blocked anonymizing proxy (this may be checked), and,
* when the block ends, or ceases to be an issue for the editor, the exemption will be removed by any administrator.
In addition, ''IP block exemption may also be given by an administrator without a request'', to prevent good-faith editors being affected by a hard IP address range block. The editor should be informed that in order to prevent vandalism, a block has been applied to their IP address range, and they have been exempted from it. They should clearly be recommended to read this section, and especially that the flag may be removed if used to edit via a blocked proxy. (See '''[[#Tags and templates|tags and templates]]''' below.)
;<span style="background-color:#d5fdf4">''Who may request''</span>: A user affected by an IP address block that is unrelated to their editing and that prevents them editing with a logged-in account.
;<span style="background-color:#d5fdf4">''How to request''</span>: You need to contact an administrator.
ig9syqc7i1nau87656zbfcdy9sy7k87
Wukipedia:Administrators
4
1745
15439
2022-07-31T19:17:19Z
LisafBia6531
225
Redirected page to [[Wukipedia:A̱yaakwak a̱son]]
wikitext
text/x-wiki
#REDIRECT [[Wukipedia:A̱yaakwak a̱son]]
c6rdzb2e1mp8a2t4msdmrr8tgo6unif
A̱kan
0
1746
15445
15444
2022-08-01T08:05:39Z
Kambai Akau
15
wikitext
text/x-wiki
{{Databox}}
[[File:Alkoholersterwerbsalter (Weltweit)2.svg|thumb|Ndyia̱ na̱ myim a̱yin gu tat a̱ kin ta̱bat swuo a̱kan a̱ni kyiak neet a̱byin nat a̱byin]]
'''A̱kan''' yet kyangswuo hwa ku byia̱ ''ethanol'', tangka̱i ''alcohol'' ku byia̱ za̱kwa kan a̱ni nang á̱ nyia̱ ma̱ng [[A̱shung|a̱shung]], súm a̱kwon, ku nvak nshyia̱ nya̱nyiat njhyang. The consumption of alcoholic drinks, often referred to as "drinking", plays an important [[Drinking culture|social role]] in many cultures. Most countries have [[Alcohol law|laws]] regulating the production, sale, and consumption of alcoholic beverages.<ref name="IARD">{{cite web |title=Minimum Legal Age Limits |url=http://www.iard.org/policy-tables/minimum-legal-age-limits/ |website=IARD.org |publisher=International Alliance for Responsible Drinking |access-date=23 June 2016 |archive-url=https://web.archive.org/web/20160504144607/http://www.iard.org/policy-tables/minimum-legal-age-limits/ |archive-date=4 May 2016 |url-status=dead }}</ref> Regulations may require the labeling of the percentage alcohol content (as [[ABV]] or [[Alcohol proof|proof]]) and the use of a [[Alcohol warning label|warning label]]. [[List of countries with alcohol prohibition|Some countries]] [[prohibition|ban such activities entirely]], but alcoholic drinks are legal in most parts of the world. The global [[alcohol industry|alcoholic drink industry]] exceeded $1 trillion in 2018.<ref name="IWSR" />
==Ya̱fang==
<references/>
7w87u26kfoj11xqw3q46hc567alolxk
Sa:A̱yaabwa
14
1747
15447
2022-08-02T09:29:11Z
Kambai Akau
15
Created blank page
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Kwaí a̱ka̱man
14
1748
15448
2022-08-02T09:29:36Z
Kambai Akau
15
Created blank page
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Ta̱mpi̱let:A̱tsak
10
1753
15514
15508
2022-08-06T08:20:52Z
Kambai Akau
15
wikitext
text/x-wiki
<includeonly>{{#invoke:Labelled list hatnote|labelledList|A̱tsak ati̱kut|A̱tsak a̱yaati̱kut|A̱tsak wat|A̱tsak ngwat}}</includeonly><noinclude>
{{documentation}}
<!-- Categories go on the /doc subpage, and interwikis go on Wikidata. -->
</noinclude>
1vy0hqvhavtg1g68xverld68hh6wmgr
Ta̱mpi̱let:A̱tsak/doc
10
1754
15512
15511
2022-08-06T08:17:34Z
Kambai Akau
15
wikitext
text/x-wiki
<noinclude>{{pp-template|small=yes}}</noinclude>{{Documentation subpage}}
{{High-use}}
{{Never substitute}}
{{Lua|icononly=on|Module:Labelled list hatnote}}
{{hatnote|This template is for linking to main content. For the mainspace detection template, see [[:template:main other]].}}
When a [[Wikipedia:What is an article?|Wikipedia article]] is large, it is often written in [[Wikipedia:Summary style|summary style]]. This [[Wikipedia:Template messages|template]] is used after the heading of the summary, to link to the subtopic article that has been summarized. For [[Help:Category|Category namespace]], please use '''{{tl|Cat main}}''' instead.
Use of this template should be restricted to the purposes described above. It is '''not''' to be used as a substitute for inline links or {{tl|Further}} template. The latter is used when the section expounds a specific aspect of the topic instead of summarizing its article. For example, in [[phthalate]], the template under the "Endocrine disruptor" section should '''not''' be {{tlf|Main|Endocrine disruptor}}, because the section specifically deals with phthalate as an endocrine disruptor and not endocrine disruptors in general.
This template should also not be used in lead sections. A lead section is always a summary of its own article, not any other; as such, the only appropriate target for a {{tl|A̱tsak}} link in the lead section would be the article itself, which is not useful. {{tl|Broader}} may be appropriate in this case.
{{TOC limit}}
==Usage==
{{startplainlist}}
* {{vad|Basic usage:|7.5em|left}} <code>{{((}}{{BASEPAGENAME}}{{!}}{{var|page}}{{))}}</code>
* {{vad|All parameters:|7.5em|left}} <code>{{((}}{{BASEPAGENAME}}{{!}}{{var|page1}}{{!}}{{var|page2}}{{!}}{{var|page3}}{{!}} ... {{!}}l1 {{=}} {{var|label1}}{{!}}l2 {{=}} {{var|label2}}{{!}}l3 {{=}} {{var|label3}}{{!}} ... {{!}}selfref {{=}} {{var|yes}}{{))}}</code>
{{endplainlist}}
==Parameters==
*<code>1</code>, <code>2</code>, <code>3</code>, ... – the pages to link to. If no page names are specified, the current page name is used instead (without the [[Wikipedia:Namespace|namespace]] prefix). Categories and files are automatically escaped with the [[Help:Colon trick|colon trick]], and links to sections are automatically formatted as ''page § section'', rather than the MediaWiki default of ''page#section''.
*<code>l1</code>, <code>l2</code>, <code>l3</code>, ... ''or''<code>label 1</code>, <code>label 2</code>, <code>label 3</code>, ... – optional labels for each of the pages to link to (this is for articles where a piped link would be used). Note that the extra parameters use a lower case 'L', for example, <code>l1</code>, <u>not</u> <code>L1</code>.
*<code>selfref</code> – if set to "yes", "y", "true" or "1", adds the CSS class "selfref". This is used to denote self-references to Wikipedia. See [[Template:Selfref]] for more information. This is only necessary in articles and other content (e.g. templates) that will appear in articles, and need not be added for uses of this template on <code>Wikipedia:</code> namespace pages.
==Template data==
{{TemplateData header}}
<templatedata>
{
"description": "This template is used after the heading of a section, to link to a sub-article (or sub-articles) that is entirely about the topic of the section. The template will display, in italics, \"A̱tsak ati̱kut: Ati̱kut 1, Ati̱kut 2 ma̱ng Ati̱kut 3\"",
"params": {
"1": {
"label": "Page 1",
"description": "The name of the first page that you want to link to. If this is not specified, the current page name (with no namespace prefix) is used instead. ",
"type": "wiki-page-name",
"required": false,
"suggested": true
},
"2": {
"label": "Page 2",
"description": "The name of the second page that you want to link to.",
"type": "wiki-page-name",
"required": false
},
"3": {
"label": "Page 3",
"description": "The name of the third page that you want to link to. More pages can be added using the parameters \"4\", \"5\", etc.",
"type": "wiki-page-name",
"required": false
},
"l1": {
"type": "string",
"label": "Label 1",
"description": "What the first linked page is to be displayed as.",
"aliases": [
"label 1"
]
},
"l2": {
"label": "Label 2",
"description": "What the second linked page is to be displayed as.",
"type": "string",
"aliases": [
"label 2"
]
},
"l3": {
"label": "Label 3",
"description": "What the third linked page is to be displayed as. Other labels can be added by using increasing numbers (starting with \"l4\" for page 4) as parameter names.",
"type": "string",
"aliases": [
"label 3"
]
},
"selfref": {
"type": "boolean",
"label": "Self reference",
"description": "Set to \"yes\" if the template is a self-reference to Wikipedia that would not make sense on mirrors or forks of the Wikipedia site."
}
},
"paramOrder": [
"1",
"2",
"3",
"l1",
"l2",
"l3",
"selfref"
],
"format": "{{_|_ = _}}\n"
}
</templatedata>
==Kídee==
*<code><nowiki>{{A̱tsak}}</nowiki></code> → {{a̱tsak|category=no}}
*<code><nowiki>{{A̱tsak|Ati̱kut}}</nowiki></code> → {{a̱tsak|Ati̱kut}}
*<code><nowiki>{{A̱tsak|Ati̱kut#Tamm}}</nowiki></code> → {{a̱tsak|Ati̱kut#Tamm}}
*<code><nowiki>{{A̱tsak|Ati̱kut#Tamm|l1=Custom section label}}</nowiki></code> → {{a̱tsak|Ati̱kut#Tamm|l1=Custom section label}}
*<code><nowiki>{{A̱tsak|Ati̱kut1|Ati̱kut2|Ati̱kut3}}</nowiki></code> → {{a̱tsak|Ati̱kut1|Ati̱kut2|Ati̱kut3}}
*<code><nowiki>{{A̱tsak|Ati̱kut1|l1=Custom label 1|Ati̱kut2|l2=Custom label 2}}</nowiki></code> → {{a̱tsak|Ati̱kut1|l1=Custom label 1|Ati̱kut2|l2=Custom label 2}}
*<code><nowiki>{{A̱tsak|(15760) 1992 QB1|l1={{mp|(15760) 1992 QB|1}}}}</nowiki></code> → {{a̱tsak|(15760) 1992 QB1|l1={{mp|(15760) 1992 QB|1}}}}
==Errors==
If the name of the first page that you want to link to is not specified, the current page name (with no namespace prefix) is used instead:
*{{Main|category=no}}
No errors can be displayed due to the illegal usage of parameters or other usages (i.e. the first parameter can be omitted, other parameters can be used even if the first one is empty (and automatically filled with the current page name (with no namespace prefix)), equals sign can be used as one of the parameters, and template can be used by direct call to the module (using "#invoke")). This is not the case for {{tl|see also}}, for example.
==See also==
*{{tl|Broader}}: For broader coverage of this topic, see {{color|blue|Article}}.
*{{tl|Excerpt}}, which allows transclusion of text (such as an intro section) from one article into another
*{{tl|Further}}: Further information: {{color|blue|Article}}.
*{{tl|Official website}}
{{Hatnote templates}}
<includeonly>{{sandbox other||
<!-- Categories go here and interwikis go in Wikidata. -->
[[Category:Hatnote templates]]
[[Category:Wikipedia page-section templates]]
}}</includeonly>
0vtmv2hf42sx4vxvuku06ytndhcb02c
Ta̱mpi̱let:Pp-template
10
1755
15479
2022-08-06T06:51:20Z
Kambai Akau
15
Created page with "<includeonly>{{#invoke:Protection banner|main}}</includeonly><noinclude> {{documentation}} <!-- Categories go on the /doc subpage, and interwikis go on Wikidata. --> </noinclude>"
wikitext
text/x-wiki
<includeonly>{{#invoke:Protection banner|main}}</includeonly><noinclude>
{{documentation}}
<!-- Categories go on the /doc subpage, and interwikis go on Wikidata. -->
</noinclude>
5t6lal9n9hcpwsso2obr7pcyjbg26xc
Ta̱mpi̱let:Pp-template/doc
10
1756
15480
2022-08-06T06:51:59Z
Kambai Akau
15
Created page with "{{Documentation subpage}} {{Twinkle standard installation}} {{lua|Module:Protection banner}} <!-- PLEASE ADD CATEGORIES AND INTERWIKIS AT THE BOTTOM OF THIS PAGE. --> This is the {{tl|pp-template}} protection notice. It is used on protected templates and on protected file (image) pages. This template does not show on pages that are not protected; instead, it reports an error. Please note that only [[Wikipedia:Administrators|administrators]] can protect pages; this tem..."
wikitext
text/x-wiki
{{Documentation subpage}}
{{Twinkle standard installation}}
{{lua|Module:Protection banner}}
<!-- PLEASE ADD CATEGORIES AND INTERWIKIS AT THE BOTTOM OF THIS PAGE. -->
This is the {{tl|pp-template}} protection notice.
It is used on protected templates and on protected file (image) pages.
This template does not show on pages that are not protected; instead, it reports an error. Please note that only [[Wikipedia:Administrators|administrators]] can protect pages; this template only informs about the protection status of the page.
This template should usually not be manually placed on template pages, since it is automatically loaded by the {{tl|Documentation}} template of protected template pages. Protected templates (both semi and full) should preferably have a documentation subpage (/doc) so that any editor can update the documentation, categories and interwiki links of the template. See [[Wikipedia:Template documentation]] for more on that.
This template automatically detects the edit protection level (semi or full) of a page, and whether it is on a template or file page, and modifies its appearance and how it categorizes the page.
* Use {{tlc|pp-template}} for the normal appearance (a small icon at the top).
* Use {{tlc|pp-template|small=no}} for the large message box. On file pages we recommend using the large box. (It is usually a good idea to also add the {{tl|nocommons}} box on protected image pages, to remind people that protected images should not be deleted even if there is a backup copy on Commons.)
When {{tl|pp-template}} is added to a protected template, it should be placed inside {{tag|noinclude}} tags (otherwise, every page which uses the template will load the protection notice, which will result in an error message). On file (image) pages the <noinclude></noinclude> tags are not necessary.
{{Protection templates}}
<includeonly>{{Sandbox other||
<!-- CATEGORIES AND INTERWIKIS HERE, THANKS -->
[[Category:Top icon protection templates|{{PAGENAME}}]]
}}</includeonly>
dni17g5rbo7jm7etp4yp5431778vb6y
Ta̱mpi̱let:Strong
10
1757
15481
2022-08-06T06:53:28Z
Kambai Akau
15
Created page with "<strong {{#if:{{{role|}}}|role="{{{role}}}"}} {{#if:{{{class|}}}|class="{{{class}}}"}} {{#if:{{{id|}}}|id="{{{id}}}"}} {{#if:{{{style|}}}|style="{{{style}}}"}} {{#if:{{{title|}}}|title="{{{title}}}"}}>{{{1}}}</strong><noinclude> {{documentation}} <!-- Add cats and interwikis to the /doc subpage, not here! --> </noinclude>"
wikitext
text/x-wiki
<strong {{#if:{{{role|}}}|role="{{{role}}}"}} {{#if:{{{class|}}}|class="{{{class}}}"}} {{#if:{{{id|}}}|id="{{{id}}}"}} {{#if:{{{style|}}}|style="{{{style}}}"}} {{#if:{{{title|}}}|title="{{{title}}}"}}>{{{1}}}</strong><noinclude>
{{documentation}}
<!-- Add cats and interwikis to the /doc subpage, not here! -->
</noinclude>
jhbv1h6fd9kjc1d4eovhzvnxrpqq09r
Ta̱mpi̱let:Strong/doc
10
1758
15485
15484
2022-08-06T06:56:31Z
Kambai Akau
15
/* Usage */
wikitext
text/x-wiki
{{Documentation subpage}}
<!-- PLEASE ADD CATEGORIES WHERE INDICATED AT THE BOTTOM OF THIS PAGE -->
== Purpose ==
This template makes it faster and easier to apply the {{tag|strong}} {{strong|importance, seriousness, or urgency}} [[HTML element]] to text, and more importantly to indicate to human and bot editors they should not use <code><nowiki>'''...'''</nowiki></code> or {{tag|b}} typographic boldfacing to replace the intentional and semantically meaningful {{tag|strong|open}}. The {{tag|strong}} element is usually rendered visually in a bold (heavy) typeface by default on graphical browsers, but can be parsed and acted upon in customizable ways with style sheets, apps and text-to-speech screen readers. It is said to be [[semantic markup]], i.e. markup that conveys meaning or context, not just visual appearance. Simple boldfacing is purely typographic and is semantically meaningless. It is most often used for headings, but has a few other uses (such as for book or film titles and the like, which are usually italicized, when they appear in an already-italicized passage). The average reader, and average editor, do not and need not care about this distinction most of the time, but it can be important and editors who understand it can use this template as a baseline insurance against accidental or careless replacement by bots and human editors.
== Usage ==
:{{tlnull|strong|<var>important text</var>}}
or, if the important text contains an equals sign:
:{{tlnull|strong|'''1{{=}}'''<var>important text</var>}}
These both render as:
:{{strong|important text}}
This template puts intentional and explicit {{tag|strong}} (importance, seriousness, or urgency) HTML markup around the text provided as the first parameter. It is safest to always use the {{para|1}} syntax.
===Optional parameters===
Advanced HTML values can be passed through the template to the HTML code:
* {{para|role}} takes a WAI-ARIA role; adds <code>role="<var>rolename</var>"</code> to the HTML code
* {{para|class}} takes a class name (or multiple class names, separated by spaces); adds <code>class="<var>classname[s]</var>"</code> to the HTML code
* {{para|style}} takes inline CSS input; adds <code>style="<var>CSS directive[s]</var>"</code> to the HTML code
* {{para|id}} takes a valid, unique HTML id (must begin with an alphabetic letter); adds <code>id="<var>name</var>"</code> to the HTML code
* {{para|title}} takes text, which cannot be marked up in any way, and displays it as a pop-up "tooltip" when the cursor hovers over the {{tnull|strong}} span
===Use cases===
{{more|Wikipedia:WikiProject Usability/Scannability}}
This template is made to mark important words or phrases in a text, in a way that is (unlike simply boldfacing it) [[Semantic markup|semantically meaningful markup]]. With this technique, the important text strongly stands out from the rest in most if not all visual browsers and some text-to-speech screen readers (which usually ignore purely typographic boldfacing), and can also be parsed by user agents and other software as definitively indicating importance, not just some typographic boldface effect for appearance's sake. It should therefore only be used very sparingly in articles to highlight the most important words or phrases in the entire article (and, rarely in encyclopedic writing, to represent relative importance). Use of this template has a strong effect on scannability, drawing the eye from elsewhere on the page to words marked up with the template.
Typical uses on Wikipedia:
* In the [[WP:LEAD|lead section of an article]], the article's title and its synonyms {{em|should}} be marked with {{tnull|strong}}. Example: "The {{strong|soma}}, or {{strong|perikaryon}}, or {{strong|cyton}}, is the bulbous end of a neuron." {{As of|July 2021}}, this is not yet common, but users should not revert it (nor criticize anyone for not using it).
* After the lead, it {{em|can}} be used to highlight crucial terms of importance only slightly secondary to that of the article title and its synonyms. For example, the article on a viral infection might use {{tnull|strong}} to highlight the names of two identified strains of the disease in a "Varieties" section, as an aid to scannability.
* In unusual cases (most often direct quotations) it is used to represent contextually important text, if the passage were spoken rather than written (e.g., because it indicates shouting).
* Outside articles, it {{em|should}} be used (but {{as of|July 2021|lc=y}} isn't yet common) in polls, XfD processes, RfX votes, and similar comments and debates where users indicate that they approve of or disagree with a view or proposal. Example: "{{strong|Support}}, because of this and that reasons [...]" or "{{strong|Oppose}}, because of this and that reasons [...]".
== When this template should not be used ==
Because {{tnull|strong}} is strictly for semantic (meaningful) importance, it should not be used for layout, typography conventions and such. In these different cases, bold <code><nowiki>'''...'''</nowiki></code> (which resolves to {{tag|b}} in the browser or other user agent) should be used instead. It should also not be used when the text to which it is applied is already boldfaced for some other reason (e.g., it is part of a heading); in such cases use {{tlx|em}} instead. Avoid using {{tnull|strong}} in non-quoted sentences that end in an exclamation point. And it is usually excessive to use it on terms that are already wikilinked, since the link markup acts to indicate importance itself.
==See also==
* {{tlx|strongbad}} – same but red
* {{tlx|stronggood}} – same but green
* {{tlx|em}} – for italic rather than bold semantic emphasis<br />
{{Semantic markup templates|show}}
<includeonly>{{Sandbox other||
<!-- CATEGORIES BELOW THIS LINE, PLEASE: -->
[[Category:Semantic markup templates]]
[[Category:Wikipedia XHTML tag-replacing templates]]
}}</includeonly>
mumjdb0vyzqzw0qtzj3hvr0nvy7g4pa
Module:Labelled list hatnote
828
1759
15486
2022-08-06T06:59:11Z
Kambai Akau
15
Created page with "-------------------------------------------------------------------------------- -- Labelled list -- -- -- -- This module does the core work of creating a hatnote composed of a list -- -- prefixed by a colon-terminated label, i.e. "LABEL: [andList of pages]", -- -- for {{see also}} and similar templates...."
Scribunto
text/plain
--------------------------------------------------------------------------------
-- Labelled list --
-- --
-- This module does the core work of creating a hatnote composed of a list --
-- prefixed by a colon-terminated label, i.e. "LABEL: [andList of pages]", --
-- for {{see also}} and similar templates. --
--------------------------------------------------------------------------------
local mHatnote = require('Module:Hatnote')
local mHatlist = require('Module:Hatnote list')
local mArguments --initialize lazily
local yesno --initialize lazily
local p = {}
-- Defaults global to this module
local defaults = {
label = 'See also', --Final fallback for label argument
labelForm = '%s: %s',
prefixes = {'label', 'label ', 'l'},
template = 'Module:Labelled list hatnote'
}
-- Localizable message strings
local msg = {
errorSuffix = '#Errors',
noInputWarning = 'no page names specified',
noOutputWarning =
"'''[[%s]] — no output: none of the target pages exist.'''"
}
-- Helper function that pre-combines display parameters into page arguments.
-- Also compresses sparse arrays, as a desirable side-effect.
function p.preprocessDisplays (args, prefixes)
-- Prefixes specify which parameters, in order, to check for display options
-- They each have numbers auto-appended, e.g. 'label1', 'label 1', & 'l1'
prefixes = prefixes or defaults.prefixes
local indices = {}
local sparsePages = {}
for k, v in pairs(args) do
if type(k) == 'number' then
indices[#indices + 1] = k
local display
for i = 1, #prefixes do
display = args[prefixes[i] .. k]
if display then break end
end
sparsePages[k] = display and
string.format('%s|%s', string.gsub(v, '|.*$', ''), display) or v
end
end
table.sort(indices)
local pages = {}
for k, v in ipairs(indices) do pages[#pages + 1] = sparsePages[v] end
return pages
end
--Helper function to get a page target from a processed page string
--e.g. "Page|Label" → "Page" or "Target" → "Target"
local function getTarget(pagename)
local pipe = string.find(pagename, '|')
return string.sub(pagename, 0, pipe and pipe - 1 or nil)
end
-- Produces a labelled pages-list hatnote.
-- The main frame (template definition) takes 1 or 2 arguments, for a singular
-- and (optionally) plural label respectively:
-- * {{#invoke:Labelled list hatnote|labelledList|Singular label|Plural label}}
-- The resulting template takes pagename & label parameters normally.
function p.labelledList (frame)
mArguments = require('Module:Arguments')
yesno = require('Module:Yesno')
local labels = {frame.args[1] or defaults.label}
labels[2] = frame.args[2] or labels[1]
labels[3] = frame.args[3] --no defaulting
labels[4] = frame.args[4] --no defaulting
local template = frame:getParent():getTitle()
local args = mArguments.getArgs(frame, {parentOnly = true})
local pages = p.preprocessDisplays(args)
local options = {
category = yesno(args.category),
extraclasses = frame.args.extraclasses,
ifexists = yesno(frame.args.ifexists),
namespace = frame.args.namespace or args.namespace,
selfref = yesno(frame.args.selfref or args.selfref),
template = template
}
return p._labelledList(pages, labels, options)
end
function p._labelledList (pages, labels, options)
if options.ifexists then
for k = #pages, 1, -1 do --iterate backwards to allow smooth removals
local v = pages[k]
local title = mw.title.new(getTarget(v), namespace)
if (v == '') or title == nil or not title.exists then
table.remove(pages, k)
end
end
end
labels = labels or {}
label = (#pages == 1 and labels[1] or labels[2]) or defaults.label
for k, v in pairs(pages) do
if mHatnote.findNamespaceId(v) ~= 0 then
label =
(
#pages == 1 and
(labels[3] or labels[1] or defaults.label) or
(labels[4] or labels[2] or defaults.label)
) or defaults.label
end
end
if #pages == 0 then
if options.ifexists then
mw.addWarning(
string.format(
msg.noOutputWarning, options.template or defaults.template
)
)
return ''
else
return mHatnote.makeWikitextError(
msg.noInputWarning,
(options.template or defaults.template) .. msg.errorSuffix,
options.category
)
end
end
local text = string.format(
options.labelForm or defaults.labelForm,
label,
mHatlist.andList(pages, true)
)
local hnOptions = {
extraclasses = options.extraclasses,
selfref = options.selfref
}
return mHatnote._hatnote(text, hnOptions)
end
return p
lgbn92zoszcjkbsmuwkrn9f0fvft89t
Module:Labelled list hatnote/doc
828
1760
15487
2022-08-06T07:01:10Z
Kambai Akau
15
Created page with "{{module rating|protected}} {{used in system|in [[MediaWiki:Wantedpages-summary]]}} {{Lua|Module:Hatnote|Module:Hatnote list|Module:Arguments}} This module provides a handful of functions that make it easy to implement hatnotes that take the form of a label in front of a list of pages, e.g. {{hatnote|LABEL: [[A]], [[B]], and [[C]]}} == Usage == ===labelledList=== Invoking the <code>labelledList()</code> function is enough to implement most such templates: <code><nowi..."
wikitext
text/x-wiki
{{module rating|protected}}
{{used in system|in [[MediaWiki:Wantedpages-summary]]}}
{{Lua|Module:Hatnote|Module:Hatnote list|Module:Arguments}}
This module provides a handful of functions that make it easy to implement hatnotes that take the form of a label in front of a list of pages, e.g. {{hatnote|LABEL: [[A]], [[B]], and [[C]]}}
== Usage ==
===labelledList===
Invoking the <code>labelledList()</code> function is enough to implement most such templates:
<code><nowiki>{{#invoke:Labelled list hatnote|labelledList|Universal label}}</nowiki></code>
or
<code><nowiki>{{#invoke:Labelled list hatnote|labelledList|Singular label|Plural label}}</nowiki></code>
For example, providing "See also" instead of "Universal label" duplicates the functionality of {{tl|see also}}, while providing "Main article" and "Main articles" instead of "Singular label" and "Plural label" duplicates the (article namespace) functionality of {{tl|main}}.
If third and fourth labels are provided, they'll be used in the case where any of the target pages are outside the article namespace, so e.g. {{tl|main}} can be implemented thus:
<code><nowiki>{{#invoke:Labelled list hatnote|labelledList|Main article|Main articles|Main page|Main pages}}</nowiki></code>
===preprocessDisplays===
The <code>preprocessDisplays()</code> function takes a raw list of arguments and combines in any display arguments. For example, {{tlx|see also|1|<nowiki>l1=One</nowiki>}} initially has the arguments table <code><nowiki>{'1', ['l1'] = 'One'}</nowiki></code>; this table would combine those into the table <code><nowiki>{'1|One'}</nowiki></code>. It overrides manual piping (e.g. {{tlx|see also|<nowiki>1{{!}}2</nowiki>|<nowiki>l1=One</nowiki>}} → <code><nowiki>{'1|One'}</nowiki></code>) and compresses sparse arrays if a parameter is skipped or left empty.
Example: <syntaxhighlight lang="lua">
local mLabelledList = require('Module:Labelled list hatnote')
local pages = mLabelledList.preprocessDisplays(args)
</syntaxhighlight>
===_labelledList===
For modules that need to modify the functionality slightly while still using it, <code>_labelledList()</code> provides some flexibility. It takes three parameters:
# A pages list, preferably preprocessed and compressed by <code>preprocessDisplays</code>
# A labels table, where the first item is the singular or universal label, and the second either a plural label or a copy of the first.
# An options table, preferably containing:
#* a <code>template</code> string with the full title of the template. Defaults to the title of this module.
#* a <code>category</code> string (or nil) as taken by <code>makeWikitextError</code> from [[Module:Hatnote]], to optionally disable error categories
#* a <code>selfref</code> string (or nil) as taken by <code>_hatnote</code> to enable the selfref option
Example: <syntaxhighlight lang="lua">
local mLabelledList = require('Module:Labelled list hatnote')
return mLabelledList._labelledList(pages, labels, options)
</syntaxhighlight>
==Errors==
This module causes templates based on it to produce an error message if no page names are provided as template parameters. Normally, these should lead back to "Errors" sections in the documentation of those templates. However, if those templates use a module with <code>_labelledList()</code> and don't provide a <code>template</code> item in their options table, that error defaults to leading back here. The error can be solved by providing at least one valid page-name parameter to the template in question; the problem in the template can be fixed by providing some value to the <code>template</code> item of the <code>_labelledList()</code> <code>options</code> table.
<includeonly>{{sandbox other||
<!-- Categories below this line, please; interwikis at Wikidata -->
[[Category:Hatnote modules| ]]
}}</includeonly>
2s6a4a3szoalzk1xqlf53gnwssaq3vp
Ta̱mpi̱let:Hatnote
10
1761
15488
2022-08-06T07:03:46Z
Kambai Akau
15
Created page with "<includeonly>{{#invoke:Hatnote|hatnote}}</includeonly><noinclude> {{documentation}} <!-- Categories go on the /doc subpage, and interwikis go on Wikidata. --> </noinclude>"
wikitext
text/x-wiki
<includeonly>{{#invoke:Hatnote|hatnote}}</includeonly><noinclude>
{{documentation}}
<!-- Categories go on the /doc subpage, and interwikis go on Wikidata. -->
</noinclude>
8nnude79i1y2v6yy2z7j285k1k4v8p3
Ta̱mpi̱let:Hatnote/doc
10
1762
15489
2022-08-06T07:05:28Z
Kambai Akau
15
Created page with "{{Documentation subpage}} {{High-use| 369726 }} {{Never substitute}} {{lua|Module:Hatnote}} This template produces formatted text, following the guideline for a '''[[WP:HATNOTE|Wikipedia hatnote]]'''. :<code><nowiki>{{hatnote|Example hatnote text.}}</nowiki></code> →<br><!-- a construct to show hatnote as expected (using newline) --> {{hatnote|Example hatnote text.}} Broadly speaking, a hatnote should answer a reader's question (maybe preemptively): ''Am I on the..."
wikitext
text/x-wiki
{{Documentation subpage}}
{{High-use| 369726 }}
{{Never substitute}}
{{lua|Module:Hatnote}}
This template produces formatted text, following the guideline for a '''[[WP:HATNOTE|Wikipedia hatnote]]'''.
:<code><nowiki>{{hatnote|Example hatnote text.}}</nowiki></code> →<br><!-- a construct to show hatnote as expected (using newline) -->
{{hatnote|Example hatnote text.}}
Broadly speaking, a hatnote should answer a reader's question (maybe preemptively): ''Am I on the right page?''
{{TOC limit}}
4h6uzhm1h06nequq2hyo4c53jfh4nqm
Module:Hatnote
828
1763
15490
2022-08-06T07:07:12Z
Kambai Akau
15
Created page with "-------------------------------------------------------------------------------- -- Module:Hatnote -- -- -- -- This module produces hatnote links and links to related articles. It -- -- implements the {{hatnote}} and {{format link}} meta-templates and includes -- -- helper functions for other Lua hatnote modules...."
Scribunto
text/plain
--------------------------------------------------------------------------------
-- Module:Hatnote --
-- --
-- This module produces hatnote links and links to related articles. It --
-- implements the {{hatnote}} and {{format link}} meta-templates and includes --
-- helper functions for other Lua hatnote modules. --
--------------------------------------------------------------------------------
local libraryUtil = require('libraryUtil')
local checkType = libraryUtil.checkType
local checkTypeForNamedArg = libraryUtil.checkTypeForNamedArg
local mArguments -- lazily initialise [[Module:Arguments]]
local yesno -- lazily initialise [[Module:Yesno]]
local formatLink -- lazily initialise [[Module:Format link]] ._formatLink
local p = {}
--------------------------------------------------------------------------------
-- Helper functions
--------------------------------------------------------------------------------
local curNs = mw.title.getCurrentTitle().namespace
p.missingTargetCat =
--Default missing target category, exported for use in related modules
((curNs == 0) or (curNs == 14)) and
'Articles with hatnote templates targeting a nonexistent page' or nil
local function getArgs(frame)
-- Fetches the arguments from the parent frame. Whitespace is trimmed and
-- blanks are removed.
mArguments = require('Module:Arguments')
return mArguments.getArgs(frame, {parentOnly = true})
end
local function removeInitialColon(s)
-- Removes the initial colon from a string, if present.
return s:match('^:?(.*)')
end
function p.findNamespaceId(link, removeColon)
-- Finds the namespace id (namespace number) of a link or a pagename. This
-- function will not work if the link is enclosed in double brackets. Colons
-- are trimmed from the start of the link by default. To skip colon
-- trimming, set the removeColon parameter to false.
checkType('findNamespaceId', 1, link, 'string')
checkType('findNamespaceId', 2, removeColon, 'boolean', true)
if removeColon ~= false then
link = removeInitialColon(link)
end
local namespace = link:match('^(.-):')
if namespace then
local nsTable = mw.site.namespaces[namespace]
if nsTable then
return nsTable.id
end
end
return 0
end
function p.makeWikitextError(msg, helpLink, addTrackingCategory, title)
-- Formats an error message to be returned to wikitext. If
-- addTrackingCategory is not false after being returned from
-- [[Module:Yesno]], and if we are not on a talk page, a tracking category
-- is added.
checkType('makeWikitextError', 1, msg, 'string')
checkType('makeWikitextError', 2, helpLink, 'string', true)
yesno = require('Module:Yesno')
title = title or mw.title.getCurrentTitle()
-- Make the help link text.
local helpText
if helpLink then
helpText = ' ([[' .. helpLink .. '|help]])'
else
helpText = ''
end
-- Make the category text.
local category
if not title.isTalkPage -- Don't categorise talk pages
and title.namespace ~= 2 -- Don't categorise userspace
and yesno(addTrackingCategory) ~= false -- Allow opting out
then
category = 'Hatnote templates with errors'
category = mw.ustring.format(
'[[%s:%s]]',
mw.site.namespaces[14].name,
category
)
else
category = ''
end
return mw.ustring.format(
'<strong class="error">Error: %s%s.</strong>%s',
msg,
helpText,
category
)
end
function p.disambiguate(page, disambiguator)
-- Formats a page title with a disambiguation parenthetical,
-- i.e. "Example" → "Example (disambiguation)".
checkType('disambiguate', 1, page, 'string')
checkType('disambiguate', 2, disambiguator, 'string', true)
disambiguator = disambiguator or 'disambiguation'
return mw.ustring.format('%s (%s)', page, disambiguator)
end
--------------------------------------------------------------------------------
-- Hatnote
--
-- Produces standard hatnote text. Implements the {{hatnote}} template.
--------------------------------------------------------------------------------
function p.hatnote(frame)
local args = getArgs(frame)
local s = args[1]
if not s then
return p.makeWikitextError(
'no text specified',
'Template:Hatnote#Errors',
args.category
)
end
return p._hatnote(s, {
extraclasses = args.extraclasses,
selfref = args.selfref
})
end
function p._hatnote(s, options)
checkType('_hatnote', 1, s, 'string')
checkType('_hatnote', 2, options, 'table', true)
options = options or {}
local inline = options.inline
local hatnote = mw.html.create(inline == 1 and 'span' or 'div')
local extraclasses
if type(options.extraclasses) == 'string' then
extraclasses = options.extraclasses
end
hatnote
:attr('role', 'note')
:addClass(inline == 1 and 'hatnote-inline' or 'hatnote')
:addClass('navigation-not-searchable')
:addClass(extraclasses)
:addClass(options.selfref and 'selfref' or nil)
:wikitext(s)
return mw.getCurrentFrame():extensionTag{
name = 'templatestyles', args = { src = 'Module:Hatnote/styles.css' }
} .. tostring(hatnote)
end
return p
3lp0p77brxpfdg1fgn1qvov8zvyjqlw
Module:Hatnote/doc
828
1764
15492
15491
2022-08-06T07:10:53Z
Kambai Akau
15
wikitext
text/x-wiki
{{used in system|in [[MediaWiki:Wantedpages-summary]]}}
{{module rating|protected}}
{{Lua|Module:Yesno|Module:Arguments}}
{{Uses TemplateStyles|Module:Hatnote/styles.css}}
This is a meta-module that provides various functions for making [[Wikipedia:Hatnote|hatnotes]]. It implements the {{tl|hatnote}} template, for use in hatnotes at the top of pages, and the {{tl|format link}} template, which is used to format a wikilink for use in hatnotes. It also contains a number of helper functions for use in other Lua hatnote modules.
== Use from wikitext ==
The functions in this module cannot be used directly from #invoke, and must be used through templates instead. Please see [[Template:Hatnote]] and [[Template:Format link]] for documentation.
== Use from other Lua modules ==
To load this module from another Lua module, use the following code.
<syntaxhighlight lang="lua">
local mHatnote = require('Module:Hatnote')
</syntaxhighlight>
You can then use the functions as documented below.
=== Hatnote ===
<syntaxhighlight lang="lua">
mHatnote._hatnote(s, options)
</syntaxhighlight>
Formats the string <var>s</var> as a hatnote. This encloses <var>s</var> in the tags {{tag|div|params=class="hatnote"}}. Options are provided in the <var>options</var> table. Options include:
* <var>options.extraclasses</var> - a string of extra classes to provide
* <var>options.selfref</var> - if this is not nil or false, adds the class "selfref", used to denote self-references to Wikipedia (see [[Template:Selfref]]))
The CSS of the hatnote class is defined in [[Module:Hatnote/styles.css]].
; Example 1
<syntaxhighlight lang="lua">
mHatnote._hatnote('This is a hatnote.')
</syntaxhighlight>
Produces:
{{tag|div|content=This is a hatnote.|params=class="hatnote"}}
Displays as:
{{hatnote|This is a hatnote.}}
; Example 2
<syntaxhighlight lang="lua">
mHatnote._hatnote('This is a hatnote.', {extraclasses = 'boilerplate seealso', selfref = true})
</syntaxhighlight>
Produces:
{{tag|div|content=This is a hatnote.|params=class="hatnote boilerplate seealso selfref"}}
Displayed as:
{{hatnote|This is a hatnote.|extraclasses=boilerplate seealso|selfref=true}}
=== Find namespace id ===
<syntaxhighlight lang="lua">
mHatnote.findNamespaceId(link, removeColon)
</syntaxhighlight>
Finds the [[WP:NS|namespace id]] of the string <var>link</var>, which should be a valid page name, with or without the section name. This function will not work if the page name is enclosed with square brackets. When trying to parse the namespace name, colons are removed from the start of the link by default. This is helpful if users have specified colons when they are not strictly necessary. If you do not need to check for initial colons, set <var>removeColon</var> to false.
;Examples:
: {{code|mHatnote.findNamespaceId('Lion')|lua}} → 0
: {{code|mHatnote.findNamespaceId('Category:Lions')|lua}} → 14
: {{code|mHatnote.findNamespaceId(':Category:Lions')|lua}} → 14
: {{code|mHatnote.findNamespaceId(':Category:Lions', false)|lua}} → 0 (the namespace is detected as ":Category", rather than "Category")
=== Make wikitext error ===
<syntaxhighlight lang="lua">
mHatnote.makeWikitextError(msg, helpLink, addTrackingCategory)
</syntaxhighlight>
Formats the string <var>msg</var> as a red wikitext error message, with optional link to a help page <var>helpLink</var>. Normally this function also adds {{clc|Hatnote templates with errors}}. To suppress categorization, pass <code>false</code> as third parameter of the function (<code>addTrackingCategory</code>).
Examples:
:{{code|mHatnote.makeWikitextError('an error has occurred')|lua}} → <strong class="error">Error: an error has occurred.</strong>
:{{code|mHatnote.makeWikitextError('an error has occurred', 'Template:Example#Errors')|lua}} → <strong class="error">Error: an error has occurred ([[Template:Example#Errors|help]]).</strong>
== Examples ==
For an example of how this module is used in other Lua modules, see [[Module:Main]]
<includeonly>{{Sandbox other||
<!-- Categories go here and interwikis go in Wikidata. -->
[[Category:Hatnote modules| ]]
[[Category:Modules that add a tracking category]]
}}</includeonly>
ffk7vcwidvy63v3vouxw6p8c55j1uyw
Module:Hatnote/styles.css
828
1765
15493
2022-08-06T07:12:19Z
Kambai Akau
15
Created page with "/* {{pp|small=y}} */ .hatnote { font-style: italic; } /* Limit structure CSS to divs because of [[Module:Hatnote inline]] */ div.hatnote { /* @noflip */ padding-left: 1.6em; margin-bottom: 0.5em; } .hatnote i { font-style: normal; } /* The templatestyles element inserts a link element before hatnotes. * TODO: Remove link if/when WMF resolves T200206 */ .hatnote + link + .hatnote { margin-top: -0.5em; }"
sanitized-css
text/css
/* {{pp|small=y}} */
.hatnote {
font-style: italic;
}
/* Limit structure CSS to divs because of [[Module:Hatnote inline]] */
div.hatnote {
/* @noflip */
padding-left: 1.6em;
margin-bottom: 0.5em;
}
.hatnote i {
font-style: normal;
}
/* The templatestyles element inserts a link element before hatnotes.
* TODO: Remove link if/when WMF resolves T200206 */
.hatnote + link + .hatnote {
margin-top: -0.5em;
}
7znvdfdw9mn3ta8a2ioyp35gizwnv4c
Module:Transclusion count/data/L
828
1766
15494
2022-08-06T07:13:21Z
Kambai Akau
15
Created page with "return { ["LASTYEAR"] = 653000, ["LAT"] = 3300, ["LCAuth"] = 3200, ["LDSproject"] = 2900, ["LTU"] = 4000, ["LUX"] = 2200, ["LVA"] = 3800, ["La"] = 430000, ["Label"] = 3200, ["LabourProject"] = 3600, ["Lafc"] = 4900, ["Lake_project"] = 5200, ["Lang"] = 312000, ["Lang-ar"] = 39000, ["Lang-az"] = 4000, ["Lang-be"] = 4100, ["Lang-bg"] = 9800, ["Lang-bn"] = 7100, ["Lang-cs"] = 3000, ["Lang-cy"] = 3600, ["Lang-da"] = 3300, ["Lang-de"] = 47000, ["Lang-el"] = 22000, ["Lang-en"]..."
Scribunto
text/plain
return {
["LASTYEAR"] = 653000,
["LAT"] = 3300,
["LCAuth"] = 3200,
["LDSproject"] = 2900,
["LTU"] = 4000,
["LUX"] = 2200,
["LVA"] = 3800,
["La"] = 430000,
["Label"] = 3200,
["LabourProject"] = 3600,
["Lafc"] = 4900,
["Lake_project"] = 5200,
["Lang"] = 312000,
["Lang-ar"] = 39000,
["Lang-az"] = 4000,
["Lang-be"] = 4100,
["Lang-bg"] = 9800,
["Lang-bn"] = 7100,
["Lang-cs"] = 3000,
["Lang-cy"] = 3600,
["Lang-da"] = 3300,
["Lang-de"] = 47000,
["Lang-el"] = 22000,
["Lang-en"] = 17000,
["Lang-es"] = 17000,
["Lang-et"] = 2100,
["Lang-fa"] = 75000,
["Lang-fi"] = 2800,
["Lang-fr"] = 22000,
["Lang-ga"] = 7200,
["Lang-gd"] = 3500,
["Lang-gr"] = 2600,
["Lang-grc"] = 6500,
["Lang-he"] = 16000,
["Lang-hr"] = 2900,
["Lang-hu"] = 8000,
["Lang-hy"] = 6400,
["Lang-it"] = 11000,
["Lang-ja"] = 3900,
["Lang-ka"] = 5100,
["Lang-kk"] = 2300,
["Lang-ko"] = 3400,
["Lang-la"] = 12000,
["Lang-mk"] = 3400,
["Lang-ms"] = 2200,
["Lang-my"] = 4400,
["Lang-ne"] = 3200,
["Lang-nl"] = 4400,
["Lang-no"] = 5500,
["Lang-oc"] = 6700,
["Lang-pl"] = 8300,
["Lang-pt"] = 6300,
["Lang-ro"] = 3500,
["Lang-ru"] = 88000,
["Lang-rus"] = 3100,
["Lang-sl"] = 3700,
["Lang-sq"] = 3300,
["Lang-sr"] = 4900,
["Lang-sr-Cyrl"] = 13000,
["Lang-sr-cyr"] = 6000,
["Lang-sr-cyrl"] = 2900,
["Lang-sv"] = 6100,
["Lang-ta"] = 2500,
["Lang-th"] = 10000,
["Lang-tr"] = 7200,
["Lang-ua"] = 2100,
["Lang-uk"] = 17000,
["Lang-ur"] = 9100,
["Lang-zh"] = 67000,
["Lang2iso"] = 5900,
["Language_with_name"] = 9400,
["Languages"] = 2600,
["Large"] = 9500,
["Large_category_TOC"] = 10000,
["Large_category_TOC/tracking"] = 10000,
["Larger"] = 41000,
["Last_edited_by"] = 59000,
["Last_word"] = 3800,
["LaunchesByYear_header"] = 3200,
["Lc"] = 8400,
["Lead_too_short"] = 9400,
["League_icon"] = 3000,
["Leagueicon"] = 2900,
["Leave_feedback/link"] = 74000,
["Left"] = 6500,
["Legend"] = 27000,
["Legend/styles.css"] = 119000,
["Legend0"] = 6100,
["Legend2"] = 16000,
["Legend_inline"] = 19000,
["LepIndex"] = 12000,
["LepidopteraTalk"] = 56000,
["Letter-NumberCombDisambig"] = 3800,
["Letter-number_combination_disambiguation"] = 4800,
["Libera.Chat"] = 13000,
["Library_link_about"] = 3800,
["Library_resources_box"] = 3900,
["Librivox_author"] = 6400,
["Librivox_book"] = 3500,
["License_migration"] = 62000,
["License_migration_complete"] = 28000,
["License_migration_is_redundant"] = 9100,
["License_migration_not_eligible"] = 7700,
["License_migration_redundant"] = 27000,
["Like"] = 2300,
["Like_resume"] = 3300,
["Likely"] = 4200,
["Line_link"] = 4500,
["Linescore_Amfootball"] = 2200,
["LinkCatIfExists2"] = 55000,
["LinkStatusLocal"] = 43000,
["LinkSummary"] = 234000,
["LinkSummaryLive"] = 11000,
["Link_if_exists"] = 54000,
["Link_note"] = 60000,
["Link_summary"] = 247000,
["Linkcolor"] = 2300,
["Linkless_exists"] = 14000,
["Linksummarylive"] = 3900,
["Linktext"] = 21000,
["List-Class"] = 20000,
["Listen"] = 12000,
["Listen_live"] = 2000,
["Lists_of_people_editnotice"] = 2400,
["Lit"] = 2900,
["Literal_translation"] = 6600,
["Lnl"] = 2800,
["LoMP"] = 4200,
["Location_map"] = 673000,
["Location_map+"] = 23000,
["Location_map_data_documentation"] = 6200,
["Location_map_many"] = 3900,
["Location_map~"] = 22000,
["Log"] = 3900,
["Logo_fur"] = 31000,
["Logo_requested"] = 2900,
["London_Gazette"] = 31000,
["Long_plot"] = 4300,
["Longitem"] = 637000,
["Longlink"] = 6300,
["Look_from"] = 8700,
["Lookfrom"] = 4600,
["Loop"] = 100000,
["Loss"] = 3000,
["Low-Class"] = 15000,
["Low-importance"] = 15000,
["Lower"] = 8100,
["Lowercase"] = 5000,
["Lowercase_title"] = 13000,
["Lowercasetitle"] = 2400,
["Lt"] = 2400,
["Lua"] = 8700,
["Lx"] = 21000,
["Module:Labelled_list_hatnote"] = 511000,
["Module:Lang"] = 1320000,
["Module:Lang-zh"] = 67000,
["Module:Lang/ISO_639_synonyms"] = 1320000,
["Module:Lang/data"] = 1320000,
["Module:Lang/documentor_tool"] = 3300,
["Module:Lang/tag_from_name"] = 2100,
["Module:Language"] = 2000,
["Module:Language/data"] = 2000,
["Module:Language/data/ISO_639-1"] = 7200,
["Module:Language/data/ISO_639-2"] = 2100,
["Module:Language/data/ISO_639-3_(dep)"] = 13000,
["Module:Language/data/ISO_639_deprecated"] = 13000,
["Module:Language/data/ISO_639_name_to_code"] = 5900,
["Module:Language/data/ISO_639_override"] = 13000,
["Module:Language/data/iana_languages"] = 1320000,
["Module:Language/data/iana_regions"] = 1320000,
["Module:Language/data/iana_scripts"] = 1320000,
["Module:Language/data/iana_suppressed_scripts"] = 1320000,
["Module:Language/data/iana_variants"] = 1320000,
["Module:Large_category_TOC"] = 10000,
["Module:Large_category_TOC/styles.css"] = 10000,
["Module:Latin"] = 8000,
["Module:Librivox_book"] = 3500,
["Module:Lighthouse_tracking"] = 2500,
["Module:List"] = 1410000,
["Module:Listen"] = 12000,
["Module:Listen/styles.css"] = 12000,
["Module:Location_map"] = 704000,
["Module:Location_map/data/Antarctica"] = 2700,
["Module:Location_map/data/Arkansas"] = 3300,
["Module:Location_map/data/Australia"] = 2100,
["Module:Location_map/data/Australia_New_South_Wales"] = 3600,
["Module:Location_map/data/Australia_Queensland"] = 6100,
["Module:Location_map/data/Australia_South_Australia"] = 2400,
["Module:Location_map/data/Austria"] = 3400,
["Module:Location_map/data/Azerbaijan"] = 4800,
["Module:Location_map/data/Bosnia_and_Herzegovina"] = 5300,
["Module:Location_map/data/Brazil"] = 4700,
["Module:Location_map/data/California"] = 5600,
["Module:Location_map/data/Canada"] = 4100,
["Module:Location_map/data/Canada_Alberta"] = 2300,
["Module:Location_map/data/Canada_British_Columbia"] = 2700,
["Module:Location_map/data/Canada_Ontario"] = 2400,
["Module:Location_map/data/Croatia"] = 2400,
["Module:Location_map/data/Czech_Republic"] = 6600,
["Module:Location_map/data/Estonia"] = 3000,
["Module:Location_map/data/Europe"] = 4000,
["Module:Location_map/data/Florida"] = 2500,
["Module:Location_map/data/France"] = 40000,
["Module:Location_map/data/France_Auvergne-Rhône-Alpes"] = 4400,
["Module:Location_map/data/France_Bourgogne-Franche-Comté"] = 3900,
["Module:Location_map/data/France_Grand_Est"] = 5300,
["Module:Location_map/data/France_Hauts-de-France"] = 3900,
["Module:Location_map/data/France_Normandy"] = 3400,
["Module:Location_map/data/France_Nouvelle-Aquitaine"] = 4800,
["Module:Location_map/data/France_Occitanie"] = 4700,
["Module:Location_map/data/Germany"] = 17000,
["Module:Location_map/data/Germany_Bavaria"] = 2900,
["Module:Location_map/data/Germany_Rhineland-Palatinate"] = 2600,
["Module:Location_map/data/Greece"] = 3900,
["Module:Location_map/data/Hungary"] = 2800,
["Module:Location_map/data/Illinois"] = 3400,
["Module:Location_map/data/India"] = 23000,
["Module:Location_map/data/India3"] = 2900,
["Module:Location_map/data/India_Andhra_Pradesh"] = 2500,
["Module:Location_map/data/India_Karnataka"] = 2100,
["Module:Location_map/data/India_Kerala"] = 2600,
["Module:Location_map/data/India_Maharashtra"] = 2700,
["Module:Location_map/data/India_Punjab"] = 2200,
["Module:Location_map/data/India_Tamil_Nadu"] = 2900,
["Module:Location_map/data/India_Uttar_Pradesh"] = 2700,
["Module:Location_map/data/India_West_Bengal"] = 4000,
["Module:Location_map/data/Indiana"] = 3400,
["Module:Location_map/data/Iowa"] = 2900,
["Module:Location_map/data/Iran"] = 46000,
["Module:Location_map/data/Ireland"] = 3500,
["Module:Location_map/data/Italy"] = 12000,
["Module:Location_map/data/Japan"] = 12000,
["Module:Location_map/data/Maine"] = 2000,
["Module:Location_map/data/Massachusetts"] = 4700,
["Module:Location_map/data/Mexico"] = 3200,
["Module:Location_map/data/Michigan"] = 3700,
["Module:Location_map/data/Minnesota"] = 4600,
["Module:Location_map/data/Nepal"] = 4600,
["Module:Location_map/data/Netherlands"] = 2900,
["Module:Location_map/data/New_York"] = 8200,
["Module:Location_map/data/North_Carolina"] = 3500,
["Module:Location_map/data/Norway"] = 4200,
["Module:Location_map/data/Ohio"] = 2200,
["Module:Location_map/data/Pakistan"] = 2800,
["Module:Location_map/data/Pennsylvania"] = 5900,
["Module:Location_map/data/Peru"] = 2800,
["Module:Location_map/data/Philippines"] = 3100,
["Module:Location_map/data/Poland"] = 45000,
["Module:Location_map/data/Queensland"] = 2200,
["Module:Location_map/data/Romania"] = 5900,
["Module:Location_map/data/Russia"] = 26000,
["Module:Location_map/data/Russia_Bashkortostan"] = 4500,
["Module:Location_map/data/Russia_Vladimir_Oblast"] = 2200,
["Module:Location_map/data/Russia_Vologda_Oblast"] = 4800,
["Module:Location_map/data/Serbia"] = 3900,
["Module:Location_map/data/Slovakia"] = 2000,
["Module:Location_map/data/Slovenia"] = 6600,
["Module:Location_map/data/South_Africa"] = 3000,
["Module:Location_map/data/Spain"] = 7500,
["Module:Location_map/data/Sweden"] = 2700,
["Module:Location_map/data/Switzerland"] = 6200,
["Module:Location_map/data/Syria"] = 2200,
["Module:Location_map/data/Texas"] = 3100,
["Module:Location_map/data/Turkey"] = 7100,
["Module:Location_map/data/USA"] = 105000,
["Module:Location_map/data/USA_Alabama"] = 2300,
["Module:Location_map/data/USA_Alaska"] = 2100,
["Module:Location_map/data/USA_Arizona"] = 2200,
["Module:Location_map/data/USA_Arkansas"] = 3400,
["Module:Location_map/data/USA_California"] = 7200,
["Module:Location_map/data/USA_Florida"] = 3200,
["Module:Location_map/data/USA_Georgia"] = 2000,
["Module:Location_map/data/USA_Illinois"] = 3700,
["Module:Location_map/data/USA_Indiana"] = 3600,
["Module:Location_map/data/USA_Iowa"] = 3200,
["Module:Location_map/data/USA_Kentucky"] = 3100,
["Module:Location_map/data/USA_Maine"] = 2200,
["Module:Location_map/data/USA_Maryland"] = 2500,
["Module:Location_map/data/USA_Massachusetts"] = 5100,
["Module:Location_map/data/USA_Michigan"] = 4100,
["Module:Location_map/data/USA_Minnesota"] = 4900,
["Module:Location_map/data/USA_Missouri"] = 2000,
["Module:Location_map/data/USA_New_Jersey"] = 2400,
["Module:Location_map/data/USA_New_York"] = 9100,
["Module:Location_map/data/USA_North_Carolina"] = 4300,
["Module:Location_map/data/USA_Ohio"] = 2400,
["Module:Location_map/data/USA_Oregon"] = 2500,
["Module:Location_map/data/USA_Pennsylvania"] = 7000,
["Module:Location_map/data/USA_Texas"] = 3500,
["Module:Location_map/data/USA_Virginia"] = 5000,
["Module:Location_map/data/USA_Washington"] = 2800,
["Module:Location_map/data/USA_West_Virginia"] = 4400,
["Module:Location_map/data/USA_Wisconsin"] = 3200,
["Module:Location_map/data/Ukraine"] = 2300,
["Module:Location_map/data/United_Kingdom_Greater_London"] = 2200,
["Module:Location_map/data/Virginia"] = 3900,
["Module:Location_map/data/West_Virginia"] = 4100,
["Module:Location_map/data/Wisconsin"] = 2900,
["Module:Location_map/data/doc"] = 6200,
["Module:Location_map/info"] = 6200,
["Module:Location_map/multi"] = 26000,
["Module:Location_map/styles.css"] = 699000,
["Module:London_Gazette_util"] = 31000,
["Module:Lua_banner"] = 8700,
}
kpizmj2mpw48ej9pqsnb3m34ckz4vsy
Ta̱mpi̱let:Template link expanded
10
1767
15496
15495
2022-08-06T07:22:06Z
Kambai Akau
15
Kambai Akau shyei peji [[Ta̱mpi̱let:Tlx]] nat [[Ta̱mpi̱let:Template link expanded]]
wikitext
text/x-wiki
{{#Invoke:Template link general|main|code=on}}<noinclude>
{{Documentation|1=Template:Tlg/doc
|content = {{tlg/doc|tlx}}
}}
<!-- Add categories to the /doc subpage, not here! -->
</noinclude>
coojm3pkl18q6hsxqyw9qpihxc7knpv
Ta̱mpi̱let:Tlx
10
1768
15497
2022-08-06T07:22:06Z
Kambai Akau
15
Kambai Akau shyei peji [[Ta̱mpi̱let:Tlx]] nat [[Ta̱mpi̱let:Template link expanded]]
wikitext
text/x-wiki
#REDIRECT [[Ta̱mpi̱let:Template link expanded]]
btlcr0vkctz2jrgo687e94fn2p3m9g3
Module:Hatnote list
828
1769
15498
2022-08-06T07:25:44Z
Kambai Akau
15
Created page with "-------------------------------------------------------------------------------- -- Module:Hatnote list -- -- -- -- This module produces and formats lists for use in hatnotes. In particular, -- -- it implements the for-see list, i.e. lists of "For X, see Y" statements, -- -- as used in {{about}}, {{redirect}}, and their variants. Also introd..."
Scribunto
text/plain
--------------------------------------------------------------------------------
-- Module:Hatnote list --
-- --
-- This module produces and formats lists for use in hatnotes. In particular, --
-- it implements the for-see list, i.e. lists of "For X, see Y" statements, --
-- as used in {{about}}, {{redirect}}, and their variants. Also introduced --
-- are andList & orList helpers for formatting lists with those conjunctions. --
--------------------------------------------------------------------------------
local mArguments --initialize lazily
local mFormatLink = require('Module:Format link')
local mHatnote = require('Module:Hatnote')
local libraryUtil = require('libraryUtil')
local checkType = libraryUtil.checkType
local p = {}
--------------------------------------------------------------------------------
-- List stringification helper functions
--
-- These functions are used for stringifying lists, usually page lists inside
-- the "Y" portion of "For X, see Y" for-see items.
--------------------------------------------------------------------------------
--default options table used across the list stringification functions
local stringifyListDefaultOptions = {
conjunction = "and",
separator = ",",
altSeparator = ";",
space = " ",
formatted = false
}
--Searches display text only
local function searchDisp(haystack, needle)
return string.find(
string.sub(haystack, (string.find(haystack, '|') or 0) + 1), needle
)
end
-- Stringifies a list generically; probably shouldn't be used directly
local function stringifyList(list, options)
-- Type-checks, defaults, and a shortcut
checkType("stringifyList", 1, list, "table")
if #list == 0 then return nil end
checkType("stringifyList", 2, options, "table", true)
options = options or {}
for k, v in pairs(stringifyListDefaultOptions) do
if options[k] == nil then options[k] = v end
end
local s = options.space
-- Format the list if requested
if options.formatted then
list = mFormatLink.formatPages(
{categorizeMissing = mHatnote.missingTargetCat}, list
)
end
-- Set the separator; if any item contains it, use the alternate separator
local separator = options.separator
for k, v in pairs(list) do
if searchDisp(v, separator) then
separator = options.altSeparator
break
end
end
-- Set the conjunction, apply Oxford comma, and force a comma if #1 has "§"
local conjunction = s .. options.conjunction .. s
if #list == 2 and searchDisp(list[1], "§") or #list > 2 then
conjunction = separator .. conjunction
end
-- Return the formatted string
return mw.text.listToText(list, separator .. s, conjunction)
end
--DRY function
function p.conjList (conj, list, fmt)
return stringifyList(list, {conjunction = conj, formatted = fmt})
end
-- Stringifies lists with "and" or "or"
function p.andList (...) return p.conjList("and", ...) end
function p.orList (...) return p.conjList("or", ...) end
--------------------------------------------------------------------------------
-- For see
--
-- Makes a "For X, see [[Y]]." list from raw parameters. Intended for the
-- {{about}} and {{redirect}} templates and their variants.
--------------------------------------------------------------------------------
--default options table used across the forSee family of functions
local forSeeDefaultOptions = {
andKeyword = 'and',
title = mw.title.getCurrentTitle().text,
otherText = 'other uses',
forSeeForm = 'For %s, see %s.',
}
--Collapses duplicate punctuation
local function punctuationCollapse (text)
local replacements = {
["%.%.$"] = ".",
["%?%.$"] = "?",
["%!%.$"] = "!",
["%.%]%]%.$"] = ".]]",
["%?%]%]%.$"] = "?]]",
["%!%]%]%.$"] = "!]]"
}
for k, v in pairs(replacements) do text = string.gsub(text, k, v) end
return text
end
-- Structures arguments into a table for stringification, & options
function p.forSeeArgsToTable (args, from, options)
-- Type-checks and defaults
checkType("forSeeArgsToTable", 1, args, 'table')
checkType("forSeeArgsToTable", 2, from, 'number', true)
from = from or 1
checkType("forSeeArgsToTable", 3, options, 'table', true)
options = options or {}
for k, v in pairs(forSeeDefaultOptions) do
if options[k] == nil then options[k] = v end
end
-- maxArg's gotten manually because getArgs() and table.maxn aren't friends
local maxArg = 0
for k, v in pairs(args) do
if type(k) == 'number' and k > maxArg then maxArg = k end
end
-- Structure the data out from the parameter list:
-- * forTable is the wrapper table, with forRow rows
-- * Rows are tables of a "use" string & a "pages" table of pagename strings
-- * Blanks are left empty for defaulting elsewhere, but can terminate list
local forTable = {}
local i = from
local terminated = false
-- If there is extra text, and no arguments are given, give nil value
-- to not produce default of "For other uses, see foo (disambiguation)"
if options.extratext and i > maxArg then return nil end
-- Loop to generate rows
repeat
-- New empty row
local forRow = {}
-- On blank use, assume list's ended & break at end of this loop
forRow.use = args[i]
if not args[i] then terminated = true end
-- New empty list of pages
forRow.pages = {}
-- Insert first pages item if present
table.insert(forRow.pages, args[i + 1])
-- If the param after next is "and", do inner loop to collect params
-- until the "and"'s stop. Blanks are ignored: "1|and||and|3" → {1, 3}
while args[i + 2] == options.andKeyword do
if args[i + 3] then
table.insert(forRow.pages, args[i + 3])
end
-- Increment to next "and"
i = i + 2
end
-- Increment to next use
i = i + 2
-- Append the row
table.insert(forTable, forRow)
until terminated or i > maxArg
return forTable
end
-- Stringifies a table as formatted by forSeeArgsToTable
function p.forSeeTableToString (forSeeTable, options)
-- Type-checks and defaults
checkType("forSeeTableToString", 1, forSeeTable, "table", true)
checkType("forSeeTableToString", 2, options, "table", true)
options = options or {}
for k, v in pairs(forSeeDefaultOptions) do
if options[k] == nil then options[k] = v end
end
-- Stringify each for-see item into a list
local strList = {}
if forSeeTable then
for k, v in pairs(forSeeTable) do
local useStr = v.use or options.otherText
local pagesStr =
p.andList(v.pages, true) or
mFormatLink._formatLink{
categorizeMissing = mHatnote.missingTargetCat,
link = mHatnote.disambiguate(options.title)
}
local forSeeStr = string.format(options.forSeeForm, useStr, pagesStr)
forSeeStr = punctuationCollapse(forSeeStr)
table.insert(strList, forSeeStr)
end
end
if options.extratext then table.insert(strList, punctuationCollapse(options.extratext..'.')) end
-- Return the concatenated list
return table.concat(strList, ' ')
end
-- Produces a "For X, see [[Y]]" string from arguments. Expects index gaps
-- but not blank/whitespace values. Ignores named args and args < "from".
function p._forSee (args, from, options)
local forSeeTable = p.forSeeArgsToTable(args, from, options)
return p.forSeeTableToString(forSeeTable, options)
end
-- As _forSee, but uses the frame.
function p.forSee (frame, from, options)
mArguments = require('Module:Arguments')
return p._forSee(mArguments.getArgs(frame), from, options)
end
return p
octqbcvqrobtndgnn8u78tg2tsemf14
Module:Hatnote list/doc
828
1770
15499
2022-08-06T07:29:25Z
Kambai Akau
15
Created page with "<!-- Please place categories where indicated at the bottom of this page and interwikis at Wikidata (see [[Wikipedia:Wikidata]]) --> {{used in system|in [[MediaWiki:Wantedpages-summary]]}} == Usage from wikitext == This module is not designed be used directly from wikitext even though <code>forSee</code> does take an initial <code>frame</code> argument and could potentially be used from wikitext, e.g.: *<code><nowiki>{{hatnote|PREFIX {{#invoke:Hatnote list|forSee|{{tl|Fo..."
wikitext
text/x-wiki
<!-- Please place categories where indicated at the bottom of this page and interwikis at Wikidata (see [[Wikipedia:Wikidata]]) -->
{{used in system|in [[MediaWiki:Wantedpages-summary]]}}
== Usage from wikitext ==
This module is not designed be used directly from wikitext even though <code>forSee</code> does take an initial <code>frame</code> argument and could potentially be used from wikitext, e.g.:
*<code><nowiki>{{hatnote|PREFIX {{#invoke:Hatnote list|forSee|{{tl|For}}|Module:For|{{tl|About}}|Module:About}} POSTFIX}}</nowiki></code> → {{hatnote|PREFIX {{#invoke:Hatnote list|forSee|{{tl|For}}|Module:For|{{tl|About}}|Module:About}} POSTFIX}}
== Usage from Lua ==
To call the module, use <syntaxhighlight lang="lua">local mHatList = require('Module:Hatnote list')</syntaxhighlight> or similar, then access its methods through the <code>mHatList</code> variable (or whatever was used).
===andList===
<code>andList</code> takes a list in table form, and returns a string with the list separated with "and" and commas as appropriate.
===orList===
<code>orList</code> takes a list in table form, and returns a string with the list separated with "or" and commas as appropriate.
===forSee===
<code>_forSee</code> takes three arguments: a table of trimmed arguments with blanks removed, a "from" number with the index to start at, and an options table, and returns a string with a number of "<code><nowiki>For X, see [[Y]]</nowiki></code>" sentences. The links are formatted using the methods from [[Module:Hatnote]].
As a convenience, the <code>forSee</code> method (without the leading underscore) takes the same arguments except with a frame instead of an args table, using <code>getArgs()</code> from [[Module:Arguments]] to preprocess the arguments.
<includeonly>{{#ifeq:{{SUBPAGENAME}}|sandbox | |
<!-- Categories below this line, please; interwikis at Wikidata -->
[[Category:Hatnote modules| ]]
}}</includeonly>
2ud0cr1s1boqiq4mbbsy1u5p9r1fhvs
Module:Format link
828
1771
15500
2022-08-06T07:33:54Z
Kambai Akau
15
Created page with "-------------------------------------------------------------------------------- -- Format link -- -- Makes a wikilink from the given link and display values. Links are escaped -- with colons if necessary, and links to sections are detected and displayed -- with " § " as a separator rather than the standard MediaWiki "#". Used in -- the {{format link}} template. -------------------------------------------------------------------------------- local libraryUtil = require(..."
Scribunto
text/plain
--------------------------------------------------------------------------------
-- Format link
--
-- Makes a wikilink from the given link and display values. Links are escaped
-- with colons if necessary, and links to sections are detected and displayed
-- with " § " as a separator rather than the standard MediaWiki "#". Used in
-- the {{format link}} template.
--------------------------------------------------------------------------------
local libraryUtil = require('libraryUtil')
local checkType = libraryUtil.checkType
local checkTypeForNamedArg = libraryUtil.checkTypeForNamedArg
local mArguments -- lazily initialise [[Module:Arguments]]
local mError -- lazily initialise [[Module:Error]]
local yesno -- lazily initialise [[Module:Yesno]]
local p = {}
--------------------------------------------------------------------------------
-- Helper functions
--------------------------------------------------------------------------------
local function getArgs(frame)
-- Fetches the arguments from the parent frame. Whitespace is trimmed and
-- blanks are removed.
mArguments = require('Module:Arguments')
return mArguments.getArgs(frame, {parentOnly = true})
end
local function removeInitialColon(s)
-- Removes the initial colon from a string, if present.
return s:match('^:?(.*)')
end
local function maybeItalicize(s, shouldItalicize)
-- Italicize s if s is a string and the shouldItalicize parameter is true.
if s and shouldItalicize then
return '<i>' .. s .. '</i>'
else
return s
end
end
local function parseLink(link)
-- Parse a link and return a table with the link's components.
-- These components are:
-- - link: the link, stripped of any initial colon (always present)
-- - page: the page name (always present)
-- - section: the page name (may be nil)
-- - display: the display text, if manually entered after a pipe (may be nil)
link = removeInitialColon(link)
-- Find whether a faux display value has been added with the {{!}} magic
-- word.
local prePipe, display = link:match('^(.-)|(.*)$')
link = prePipe or link
-- Find the page, if it exists.
-- For links like [[#Bar]], the page will be nil.
local preHash, postHash = link:match('^(.-)#(.*)$')
local page
if not preHash then
-- We have a link like [[Foo]].
page = link
elseif preHash ~= '' then
-- We have a link like [[Foo#Bar]].
page = preHash
end
-- Find the section, if it exists.
local section
if postHash and postHash ~= '' then
section = postHash
end
return {
link = link,
page = page,
section = section,
display = display,
}
end
local function formatDisplay(parsed, options)
-- Formats a display string based on a parsed link table (matching the
-- output of parseLink) and an options table (matching the input options for
-- _formatLink).
local page = maybeItalicize(parsed.page, options.italicizePage)
local section = maybeItalicize(parsed.section, options.italicizeSection)
if (not section) then
return page
elseif (not page) then
return mw.ustring.format('§ %s', section)
else
return mw.ustring.format('%s § %s', page, section)
end
end
local function missingArgError(target)
mError = require('Module:Error')
return mError.error{message =
'Error: no link or target specified! ([[' .. target .. '#Errors|help]])'
}
end
--------------------------------------------------------------------------------
-- Main functions
--------------------------------------------------------------------------------
function p.formatLink(frame)
-- The formatLink export function, for use in templates.
yesno = require('Module:Yesno')
local args = getArgs(frame)
local link = args[1] or args.link
local target = args[3] or args.target
if not (link or target) then
return missingArgError('Template:Format link')
end
return p._formatLink{
link = link,
display = args[2] or args.display,
target = target,
italicizePage = yesno(args.italicizepage),
italicizeSection = yesno(args.italicizesection),
categorizeMissing = args.categorizemissing
}
end
function p._formatLink(options)
-- The formatLink export function, for use in modules.
checkType('_formatLink', 1, options, 'table')
local function check(key, expectedType) --for brevity
checkTypeForNamedArg(
'_formatLink', key, options[key], expectedType or 'string', true
)
end
check('link')
check('display')
check('target')
check('italicizePage', 'boolean')
check('italicizeSection', 'boolean')
check('categorizeMissing')
-- Normalize link and target and check that at least one is present
if options.link == '' then options.link = nil end
if options.target == '' then options.target = nil end
if not (options.link or options.target) then
return missingArgError('Module:Format link')
end
local parsed = parseLink(options.link)
local display = options.display or parsed.display
local catMissing = options.categorizeMissing
local category = ''
-- Find the display text
if not display then display = formatDisplay(parsed, options) end
-- Handle the target option if present
if options.target then
local parsedTarget = parseLink(options.target)
parsed.link = parsedTarget.link
parsed.page = parsedTarget.page
end
-- Test if page exists if a diagnostic category is specified
if catMissing and (mw.ustring.len(catMissing) > 0) then
local title = nil
if parsed.page then title = mw.title.new(parsed.page) end
if title and (not title.isExternal) and (not title.exists) then
category = mw.ustring.format('[[Category:%s]]', catMissing)
end
end
-- Format the result as a link
if parsed.link == display then
return mw.ustring.format('[[:%s]]%s', parsed.link, category)
else
return mw.ustring.format('[[:%s|%s]]%s', parsed.link, display, category)
end
end
--------------------------------------------------------------------------------
-- Derived convenience functions
--------------------------------------------------------------------------------
function p.formatPages(options, pages)
-- Formats an array of pages using formatLink and the given options table,
-- and returns it as an array. Nil values are not allowed.
local ret = {}
for i, page in ipairs(pages) do
ret[i] = p._formatLink{
link = page,
categorizeMissing = options.categorizeMissing,
italicizePage = options.italicizePage,
italicizeSection = options.italicizeSection
}
end
return ret
end
return p
kqzzmt53imtxeq4z2wtd8gb4aoahnkl
Module:Format link/doc
828
1772
15502
15501
2022-08-06T07:40:16Z
Kambai Akau
15
wikitext
text/x-wiki
<!-- Add categories where indicated at the bottom of this page and interwikis at Wikidata -->
{{used in system|in [[MediaWiki:Perfcachedts]]}}
This module, migrated from origins in [[Module:Hatnote]], provides functionality for formatting links for display, including that powering the {{tl|format link}} template.
It can pretty-format section links with the section symbol ("§") and appropriate whitespace, it automatically escapes category and file names with the [[Help:Colon trick|colon trick]], and includes functionality for italicizing the page or section name, and for detecting and categorizing results that produce [[Wikipedia:Red link|red links]].
== Use from wikitext ==
The functions in this module cannot be used directly from #invoke, and must be used through templates instead. Please see [[Template:Format link]] for documentation on usage of that template.
== Use from other Lua modules==
To load this module from another Lua module, use the following code:
<syntaxhighlight lang="lua">
local mFormatLink = require('Module:Format link')
</syntaxhighlight>
You can then use the functions as documented below.
=== _formatLink ===
<syntaxhighlight lang="lua">
mFormatLink._formatLink{
link = 'Link',
display = 'Display',
target = 'Target',
italicizePage = true,
italicizeSection = true,
categorizeMissing = 'Pages using formatted red links'
}
</syntaxhighlight>
Formats <var>link</var> as a wikilink. Categories and files are automatically escaped with the [[Help:Colon trick|colon trick]], and links to sections are automatically formatted as ''page § section'', rather than the MediaWiki default of ''page#section''.
Several options modify the output:
* If the <var>display</var> value is present, then it will be used as a display value. Any manual piping (using the <code><nowiki>{{!}}</nowiki></code> magic word or similar) present in <var>link</var> will be overridden by the <var>display</var> value if present.
* If the <var>target</var> value is present, then it will override <var>link</var> as a target, but the result will still be ''displayed'' using either the value from <var>display</var>, or the result of formatting <var>link</var>.
* If <var>italicizePage</var> is true, then the page portion of the link is italicized if present.
* If <var>italicizeSection</var> is true, then the section portion of the link is italicized if present.
* If <var>categorizeMissing</var> is a non-empty string, then that value is used as a category name, and that category will be applied if the resulting target of the link (no matter whether through <var>link</var> or through <var>target</var>) doesn't exist.
;Examples:
: <syntaxhighlight lang="lua" inline>mFormatLink._formatLink{link = 'Foo#Bar'}</syntaxhighlight> → <nowiki>[[:Foo#Bar|Foo §&nbsp;Bar]]</nowiki> → {{format link|Foo#Bar}}
: <syntaxhighlight lang="lua" inline>mFormatLink._formatLink{link = 'Baz', display = 'Qux'}</syntaxhighlight> → <nowiki>[[:Baz|Qux]]</nowiki> → {{format link|Baz|Qux}}
: <syntaxhighlight lang="lua" inline>mFormatLink._formatLink{link = 'Foo|Bar', display = 'Baz'}</syntaxhighlight> → <nowiki>[[:Foo|Baz]]</nowiki> → {{format link|Foo{{!}}Bar|Baz}}
: <syntaxhighlight lang="lua" inline>mFormatLink._formatLink{link = '#Foo', target = 'Example#Foo'}</syntaxhighlight> → <nowiki>[[:Example#Foo|§&nbsp;Foo]]</nowiki> → {{format link|#Foo||Example#Foo}}
: <syntaxhighlight lang="lua" inline>mFormatLink._formatLink{link = 'The Lord of the Rings#Plot', italicizePage = true}</syntaxhighlight> → <nowiki>[[:The Lord of the Rings#Plot|''The Lord of the Rings'' §&nbsp;Plot]]</nowiki> → {{format link|The Lord of the Rings#Plot|italicizepage=true}}
: <syntaxhighlight lang="lua" inline>mFormatLink._formatLink{link = 'Cybercrime Prevention Act of 2012#Disini v. Secretary of Justice', italicizeSection = true}</syntaxhighlight> → <nowiki>[[:Cybercrime Prevention Act of 2012#Disini v. Secretary of Justice|Cybercrime Prevention Act of 2012 §&nbsp;''Disini v. Secretary of Justice'']]</nowiki> → {{format link|Cybercrime Prevention Act of 2012#Disini v. Secretary of Justice|italicizesection=true}}
: <syntaxhighlight lang="lua" inline>mFormatLink._formatLink{link = 'Nonexistent page', categorizeMissing = 'Example'}</syntaxhighlight> → <nowiki>[[:Nonexistent page]][[Category:Example]]</nowiki> → {{format link|Nonexistent page}}
: <syntaxhighlight lang="lua" inline>mFormatLink._formatLink{link = 'Existing', categorizeMissing = 'Example'}</syntaxhighlight> → <nowiki>[[:Existing]]</nowiki> → {{format link|Existing}}
=== formatPages ===
<syntaxhighlight lang="lua">
mFormatLink.formatPages(options, pages)
</syntaxhighlight>
This derived function is useful for lists that format many links. It formats an array of pages using the [[#_formatLink|_formatLink]] function, and returns the result as an array. Options in the <var>options</var> table are applied, and use the same names as the options for <var>_formatLink</var>.
;Example
:{{code|<nowiki>mFormatLink.formatPages({categorizeMissing = 'Example'}, {'Foo#Bar', 'Nonexistent page'})</nowiki>|lua}} → {{code|<nowiki>{'[[:Foo#Bar|Foo § Bar]]', '[[:Nonexistent page]][[Category:Example]]'}</nowiki>|lua}}
== Errors ==
If <var>_formatLink</var> is used and neither a <var>link</var> nor a <var>target</var> argument is provided, then the module will produce an error message instead of its usual output, as it ''cannot'' then produce valid output.
You can solve this error by providing appropriate parameters to <var>_formatLink</var>, or you may want to ensure that a more descriptive error is provided by a downstream template or module when it would otherwise call <var>_formatLink</var> with inadequate arguments.
<includeonly>{{Sandbox other||
<!-- Categories below this line; interwikis at Wikidata -->
}}</includeonly>
sb4o3bl09quzu1fqq4fmnndk6byf1iq
Module:Transclusion count/data/H
828
1773
15503
2022-08-06T07:46:20Z
Kambai Akau
15
Created page with "return { ["H-phrases"] = 3200, ["HABS"] = 2200, ["HAER"] = 2000, ["HDS"] = 4200, ["HD_color"] = 2800, ["HKG"] = 2900, ["HMAS"] = 6100, ["HMCS"] = 4500, ["HMM"] = 4900, ["HMS"] = 34000, ["HOUR"] = 2300, ["HRV"] = 4500, ["HUN"] = 10000, ["Hab"] = 12000, ["Hair_space"] = 9600, ["Hanging_indent"] = 5600, ["Hansard-contribs"] = 9300, ["Harv"] = 5800, ["Harvard_citation"] = 6000, ["Harvard_citation_no_brackets"] = 43000, ["Harvard_citation_text"] = 5700, ["Harvid"] = 57000, ["..."
Scribunto
text/plain
return {
["H-phrases"] = 3200,
["HABS"] = 2200,
["HAER"] = 2000,
["HDS"] = 4200,
["HD_color"] = 2800,
["HKG"] = 2900,
["HMAS"] = 6100,
["HMCS"] = 4500,
["HMM"] = 4900,
["HMS"] = 34000,
["HOUR"] = 2300,
["HRV"] = 4500,
["HUN"] = 10000,
["Hab"] = 12000,
["Hair_space"] = 9600,
["Hanging_indent"] = 5600,
["Hansard-contribs"] = 9300,
["Harv"] = 5800,
["Harvard_citation"] = 6000,
["Harvard_citation_no_brackets"] = 43000,
["Harvard_citation_text"] = 5700,
["Harvid"] = 57000,
["Harvnb"] = 42000,
["Harvp"] = 3700,
["Harvtxt"] = 5700,
["Has_short_description"] = 603000,
["Hat"] = 11000,
["Hatnote"] = 427000,
["Hatnote_inline"] = 3700,
["Hatnote_inline/invoke"] = 3700,
["Height"] = 102000,
["Help_me-helped"] = 15000,
["Helpbox"] = 2600,
["Helpbox/styles.css"] = 2600,
["Helpme-helped"] = 2100,
["Hidden"] = 346000,
["Hidden/FC"] = 3800,
["Hidden_archive_bottom"] = 12000,
["Hidden_archive_top"] = 12000,
["Hidden_begin"] = 387000,
["Hidden_category"] = 6700,
["Hidden_end"] = 387000,
["Hidden_ping"] = 3700,
["Hidden_sort_key"] = 18000,
["Hide"] = 2100,
["High-Class"] = 15000,
["High-importance"] = 15000,
["High-use"] = 5100,
["Highlight"] = 6300,
["Highlight/core"] = 6500,
["Highlight_round"] = 3100,
["Hilite"] = 2700,
["Historic_Environment_Scotland"] = 2300,
["Historical"] = 25000,
["Historical_populations"] = 39000,
["History_icon"] = 9600,
["History_icon2"] = 9600,
["Hlist"] = 198000,
["Hmbox"] = 23000,
["Hmmm"] = 9700,
["Hndis"] = 67000,
["HockeyDB"] = 3100,
["Hockeydb"] = 3000,
["Hong_Kong_English"] = 3300,
["Horizontal_TOC"] = 5300,
["Horizontal_TOC/styles.css"] = 5300,
["Horse_racing"] = 3500,
["HoursElapsed"] = 40000,
["Hours_elapsed"] = 40000,
["Hover_title"] = 62000,
["How_to_request_photo_in"] = 2300,
["Howtoreqphotoin"] = 2200,
["Hr"] = 5000,
["Hs"] = 18000,
["Hsp"] = 4100,
["Hugman"] = 7000,
["Human_name_disambiguation"] = 71000,
["Humor"] = 2800,
["Hurricane_season_bar"] = 2300,
["Hurricane_season_bar/button"] = 2300,
["Hurricane_season_bar/end"] = 2400,
["Hurricane_season_bar/start"] = 2400,
["Hurricane_season_bar_gap"] = 2000,
["Hurricane_status_small"] = 2300,
["Module:HTMLDecode"] = 625000,
["Module:Hatnote"] = 1620000,
["Module:Hatnote/styles.css"] = 1620000,
["Module:Hatnote_inline"] = 3700,
["Module:Hatnote_list"] = 1050000,
["Module:Hidden_ping"] = 3700,
["Module:High-use"] = 13000,
["Module:Highest_archive_number"] = 117000,
["Module:Historical_populations"] = 39000,
["Module:Hms"] = 231000,
}
c2j30tkfwzbqd904zxxswe3k0x0dck2
Ta̱mpi̱let:Main/doc
10
1774
15507
2022-08-06T07:58:13Z
Kambai Akau
15
Kambai Akau shyei peji [[Ta̱mpi̱let:Main/doc]] nat [[Ta̱mpi̱let:A̱tsak/doc]]: di̱n Tyap
wikitext
text/x-wiki
#REDIRECT [[Ta̱mpi̱let:A̱tsak/doc]]
b4shxk074gk1uci764xn585g350h8ts
Ta̱mpi̱let:Main
10
1775
15509
2022-08-06T07:59:13Z
Kambai Akau
15
Kambai Akau shyei peji [[Ta̱mpi̱let:Main]] nat [[Ta̱mpi̱let:A̱tsak]]: Di̱n Tyap
wikitext
text/x-wiki
#REDIRECT [[Ta̱mpi̱let:A̱tsak]]
gc9wwsv1y8bcti0qyxy6vzek12iregd
Sa:Wikipedia policies
14
1777
15517
2022-08-06T08:30:00Z
LisafBia6531
225
Created page with "This category lists Wikipedia policies."
wikitext
text/x-wiki
This category lists Wikipedia policies.
rrh92dxc22kx7ewiw5lnqcwcu11mdl6
Module:Shortcut
828
1778
15519
2022-08-06T08:36:10Z
LisafBia6531
225
+
Scribunto
text/plain
-- This module implements {{shortcut}}.
-- Set constants
local CONFIG_MODULE = 'Module:Shortcut/config'
-- Load required modules
local checkType = require('libraryUtil').checkType
local yesno = require('Module:Yesno')
local p = {}
local function message(msg, ...)
return mw.message.newRawMessage(msg, ...):plain()
end
local function makeCategoryLink(cat)
return string.format('[[%s:%s]]', mw.site.namespaces[14].name, cat)
end
function p._main(shortcuts, options, frame, cfg)
checkType('_main', 1, shortcuts, 'table')
checkType('_main', 2, options, 'table', true)
options = options or {}
frame = frame or mw.getCurrentFrame()
cfg = cfg or mw.loadData(CONFIG_MODULE)
local templateMode = options.template and yesno(options.template)
local redirectMode = options.redirect and yesno(options.redirect)
local isCategorized = not options.category or yesno(options.category) ~= false
-- Validate shortcuts
for i, shortcut in ipairs(shortcuts) do
if type(shortcut) ~= 'string' or #shortcut < 1 then
error(message(cfg['invalid-shortcut-error'], i), 2)
end
end
-- Make the list items. These are the shortcuts plus any extra lines such
-- as options.msg.
local listItems = {}
for i, shortcut in ipairs(shortcuts) do
local templatePath, prefix
if templateMode then
-- Namespace detection
local titleObj = mw.title.new(shortcut, 10)
if titleObj.namespace == 10 then
templatePath = titleObj.fullText
else
templatePath = shortcut
end
prefix = options['pre' .. i] or options.pre or ''
end
if options.target and yesno(options.target) then
listItems[i] = templateMode
and string.format("{{%s[[%s|%s]]}}", prefix, templatePath, shortcut)
or string.format("[[%s]]", shortcut)
else
listItems[i] = frame:expandTemplate{
title = 'No redirect',
args = templateMode and {templatePath, shortcut} or {shortcut, shortcut}
}
if templateMode then
listItems[i] = string.format("{{%s%s}}", prefix, listItems[i])
end
end
end
table.insert(listItems, options.msg)
-- Return an error if we have nothing to display
if #listItems < 1 then
local msg = cfg['no-content-error']
msg = string.format('<strong class="error">%s</strong>', msg)
if isCategorized and cfg['no-content-error-category'] then
msg = msg .. makeCategoryLink(cfg['no-content-error-category'])
end
return msg
end
local root = mw.html.create()
root:wikitext(frame:extensionTag{ name = 'templatestyles', args = { src = 'Shortcut/styles.css'} })
-- Anchors
local anchorDiv = root
:tag('div')
:addClass('module-shortcutanchordiv')
for i, shortcut in ipairs(shortcuts) do
local anchor = mw.uri.anchorEncode(shortcut)
anchorDiv:tag('span'):attr('id', anchor)
end
-- Shortcut heading
local shortcutHeading
do
local nShortcuts = #shortcuts
if nShortcuts > 0 then
local headingMsg = options['shortcut-heading'] or
redirectMode and cfg['redirect-heading'] or
cfg['shortcut-heading']
shortcutHeading = message(headingMsg, nShortcuts)
shortcutHeading = frame:preprocess(shortcutHeading)
end
end
-- Shortcut box
local shortcutList = root
:tag('div')
:addClass('module-shortcutboxplain plainlist noprint')
:attr('role', 'note')
if options.float and options.float:lower() == 'left' then
shortcutList:addClass('module-shortcutboxleft')
end
if options.clear and options.clear ~= '' then
shortcutList:css('clear', options.clear)
end
if shortcutHeading then
shortcutList
:tag('div')
:addClass('module-shortcutlist')
:wikitext(shortcutHeading)
end
local list = shortcutList:tag('ul')
for i, item in ipairs(listItems) do
list:tag('li'):wikitext(item)
end
return tostring(root)
end
function p.main(frame)
local args = require('Module:Arguments').getArgs(frame)
-- Separate shortcuts from options
local shortcuts, options = {}, {}
for k, v in pairs(args) do
if type(k) == 'number' then
shortcuts[k] = v
else
options[k] = v
end
end
-- Compress the shortcut array, which may contain nils.
local function compressArray(t)
local nums, ret = {}, {}
for k in pairs(t) do
nums[#nums + 1] = k
end
table.sort(nums)
for i, num in ipairs(nums) do
ret[i] = t[num]
end
return ret
end
shortcuts = compressArray(shortcuts)
return p._main(shortcuts, options, frame)
end
return p
4jqk5gxekn99b9nsdu6rq56uiap5da8
Ta̱mpi̱let:Shortcut
10
1779
15521
2022-08-06T08:36:30Z
LisafBia6531
225
Created page with "<includeonly>{{#invoke:Shortcut|main}}</includeonly><noinclude> {{documentation}} <!-- Categories go on the /doc subpage, and interwikis go on Wikidata. --> </noinclude>"
wikitext
text/x-wiki
<includeonly>{{#invoke:Shortcut|main}}</includeonly><noinclude>
{{documentation}}
<!-- Categories go on the /doc subpage, and interwikis go on Wikidata. -->
</noinclude>
5idoxkkbt62sniipoe18t8iorl88qpo
Module:Shortcut/config
828
1780
15522
2022-08-06T08:41:34Z
LisafBia6531
225
Created page with "-- This module holds configuration data for [[Module:Shortcut]]. return { -- The heading at the top of the shortcut box. It accepts the following parameter: -- $1 - the total number of shortcuts. (required) ['shortcut-heading'] = '[[Wikipedia:Shortcut|{{PLURAL:$1|Shortcut|Shortcuts}}]]', -- The heading when |redirect=yes is given. It accepts the following parameter: -- $1 - the total number of shortcuts. (required) ['redirect-heading'] = '[[Wikipedia:Redirect|{{PLURAL..."
Scribunto
text/plain
-- This module holds configuration data for [[Module:Shortcut]].
return {
-- The heading at the top of the shortcut box. It accepts the following parameter:
-- $1 - the total number of shortcuts. (required)
['shortcut-heading'] = '[[Wikipedia:Shortcut|{{PLURAL:$1|Shortcut|Shortcuts}}]]',
-- The heading when |redirect=yes is given. It accepts the following parameter:
-- $1 - the total number of shortcuts. (required)
['redirect-heading'] = '[[Wikipedia:Redirect|{{PLURAL:$1|Redirect|Redirects}}]]',
-- The error message to display when a shortcut is invalid (is not a string, or
-- is the blank string). It accepts the following parameter:
-- $1 - the number of the shortcut in the argument list. (required)
['invalid-shortcut-error'] = 'shortcut #$1 was invalid (shortcuts must be ' ..
'strings of at least one character in length)',
-- The error message to display when no shortcuts or other displayable content
-- were specified. (required)
['no-content-error'] = 'Error: no shortcuts were specified and the ' ..
mw.text.nowiki('|msg=') ..
' parameter was not set.',
-- A category to add when the no-content-error message is displayed. (optional)
['no-content-error-category'] = 'Shortcut templates with missing parameters',
}
t6jiszehpcz1mpvmzl8esji0vdvjr4p
Module:Redirect
828
1781
15523
2022-08-06T08:43:20Z
LisafBia6531
225
Created page with "-- This module provides functions for getting the target of a redirect page. local p = {} -- Gets a mw.title object, using pcall to avoid generating script errors if we -- are over the expensive function count limit (among other possible causes). local function getTitle(...) local success, titleObj = pcall(mw.title.new, ...) if success then return titleObj else return nil end end -- Gets the name of a page that a redirect leads to, or nil if it isn't a -- redi..."
Scribunto
text/plain
-- This module provides functions for getting the target of a redirect page.
local p = {}
-- Gets a mw.title object, using pcall to avoid generating script errors if we
-- are over the expensive function count limit (among other possible causes).
local function getTitle(...)
local success, titleObj = pcall(mw.title.new, ...)
if success then
return titleObj
else
return nil
end
end
-- Gets the name of a page that a redirect leads to, or nil if it isn't a
-- redirect.
function p.getTargetFromText(text)
local target = string.match(
text,
"^%s*#[Rr][Ee][Dd][Ii][Rr][Ee][Cc][Tt]%s*:?%s*%[%[([^%[%]|]-)%]%]"
) or string.match(
text,
"^%s*#[Rr][Ee][Dd][Ii][Rr][Ee][Cc][Tt]%s*:?%s*%[%[([^%[%]|]-)|[^%[%]]-%]%]"
)
return target and mw.uri.decode(target, 'PATH')
end
-- Gets the target of a redirect. If the page specified is not a redirect,
-- returns nil.
function p.getTarget(page, fulltext)
-- Get the title object. Both page names and title objects are allowed
-- as input.
local titleObj
if type(page) == 'string' or type(page) == 'number' then
titleObj = getTitle(page)
elseif type(page) == 'table' and type(page.getContent) == 'function' then
titleObj = page
else
error(string.format(
"bad argument #1 to 'getTarget'"
.. " (string, number, or title object expected, got %s)",
type(page)
), 2)
end
if not titleObj then
return nil
end
local targetTitle = titleObj.redirectTarget
if targetTitle then
if fulltext then
return targetTitle.fullText
else
return targetTitle.prefixedText
end
else
return nil
end
end
--[[
-- Given a single page name determines what page it redirects to and returns the
-- target page name, or the passed page name when not a redirect. The passed
-- page name can be given as plain text or as a page link.
--
-- Returns page name as plain text, or when the bracket parameter is given, as a
-- page link. Returns an error message when page does not exist or the redirect
-- target cannot be determined for some reason.
--]]
function p.luaMain(rname, bracket, fulltext)
if type(rname) ~= "string" or not rname:find("%S") then
return nil
end
bracket = bracket and "[[%s]]" or "%s"
rname = rname:match("%[%[(.+)%]%]") or rname
local target = p.getTarget(rname, fulltext)
local ret = target or rname
ret = getTitle(ret)
if ret then
if fulltext then
ret = ret.fullText
else
ret = ret.prefixedText
end
return bracket:format(ret)
else
return nil
end
end
-- Provides access to the luaMain function from wikitext.
function p.main(frame)
local args = require('Module:Arguments').getArgs(frame, {frameOnly = true})
return p.luaMain(args[1], args.bracket, args.fulltext) or ''
end
-- Returns true if the specified page is a redirect, and false otherwise.
function p.luaIsRedirect(page)
local titleObj = getTitle(page)
if not titleObj then
return false
end
if titleObj.isRedirect then
return true
else
return false
end
end
-- Provides access to the luaIsRedirect function from wikitext, returning 'yes'
-- if the specified page is a redirect, and the blank string otherwise.
function p.isRedirect(frame)
local args = require('Module:Arguments').getArgs(frame, {frameOnly = true})
if p.luaIsRedirect(args[1]) then
return 'yes'
else
return ''
end
end
return p
ixuh7hehfu8mxwx3ai7pksok45inaxs
Ta̱mpi̱let:No redirect
10
1782
15524
2022-08-06T08:43:47Z
LisafBia6531
225
Created page with "{{safesubst:<noinclude/>#if: {{safesubst:<noinclude/>#invoke:Redirect|isRedirect|{{{1}}}}} | <span class="plainlinks">[{{safesubst:<noinclude/>fullurl:{{{1}}}|redirect=no}} {{{2|{{{1}}}}}}]</span> | {{safesubst:<noinclude/>#if:{{{2|}}}|[[:{{safesubst:<noinclude/>FULLPAGENAME:{{{1}}}}}|{{{2}}}]]|[[:{{safesubst:<noinclude/>FULLPAGENAME:{{{1}}}}}]]}} }}<noinclude> {{documentation}} </noinclude>"
wikitext
text/x-wiki
{{safesubst:<noinclude/>#if: {{safesubst:<noinclude/>#invoke:Redirect|isRedirect|{{{1}}}}}
| <span class="plainlinks">[{{safesubst:<noinclude/>fullurl:{{{1}}}|redirect=no}} {{{2|{{{1}}}}}}]</span>
| {{safesubst:<noinclude/>#if:{{{2|}}}|[[:{{safesubst:<noinclude/>FULLPAGENAME:{{{1}}}}}|{{{2}}}]]|[[:{{safesubst:<noinclude/>FULLPAGENAME:{{{1}}}}}]]}}
}}<noinclude>
{{documentation}}
</noinclude>
2qaonlqtyk07btxy9fviektgkcflxxv
Ta̱mpi̱let:Shortcut/styles.css
10
1783
15525
2022-08-06T08:46:03Z
LisafBia6531
225
Created page with "/* {{pp-template}} */ .module-shortcutboxplain { float: right; margin: 0 0 0 1em; border: 1px solid #aaa; background: #fff; padding: 0.3em 0.6em 0.2em 0.6em; text-align: center; font-size: 85%; } .module-shortcutboxleft { float: left; margin: 0 1em 0 0; } .module-shortcutlist { display: inline-block; border-bottom: 1px solid #aaa; margin-bottom: 0.2em; } .module-shortcutboxplain > ul { font-weight: bold; } .module-shortcutanchordiv { position: relative;..."
sanitized-css
text/css
/* {{pp-template}} */
.module-shortcutboxplain {
float: right;
margin: 0 0 0 1em;
border: 1px solid #aaa;
background: #fff;
padding: 0.3em 0.6em 0.2em 0.6em;
text-align: center;
font-size: 85%;
}
.module-shortcutboxleft {
float: left;
margin: 0 1em 0 0;
}
.module-shortcutlist {
display: inline-block;
border-bottom: 1px solid #aaa;
margin-bottom: 0.2em;
}
.module-shortcutboxplain > ul {
font-weight: bold;
}
.module-shortcutanchordiv {
position: relative;
top: -3em;
}
li .module-shortcutanchordiv {
float: right; /* IE/Edge in list items */
}
.mbox-imageright .module-shortcutboxplain {
padding: 0.4em 1em 0.4em 1em;
line-height: 1.3;
}
di4ixssc6neh0ej5fer2bhcqnk4l0hc
Wukipedia:IPEC
4
1786
15530
2022-08-06T13:10:47Z
LisafBia6531
225
+
wikitext
text/x-wiki
#REDIRECT [[Wukipedia:IP block exemption#Used to bypass an IP address range block]]
lf1e1hyzr0ogxjd62dvo33b522axrg3
A̱kwak A̱son A̱byin Naijeriya
0
1789
15540
15537
2022-08-07T16:10:09Z
Kambai Akau
15
Changed redirect target from [[A̱yaakwak a̱son a̱byin Naijeriya]] to [[A̱kwak a̱son a̱byin Naijeriya]]
wikitext
text/x-wiki
#REDIRECT [[A̱kwak a̱son a̱byin Naijeriya]]
07vu86z9poyct4aydh7b2s6w3x3kewv
A̱yaakwak a̱son a̱byin Naijeriya
0
1790
15539
2022-08-07T16:00:56Z
Kambai Akau
15
Kambai Akau shyei peji [[A̱yaakwak a̱son a̱byin Naijeriya]] nat [[A̱kwak a̱son a̱byin Naijeriya]]: Ku myim a̱ swak
wikitext
text/x-wiki
#REDIRECT [[A̱kwak a̱son a̱byin Naijeriya]]
07vu86z9poyct4aydh7b2s6w3x3kewv
Sa:A̱yaakwak a̱son di̱n vak bibyin
14
1791
15545
2022-08-07T16:19:42Z
Kambai Akau
15
Created blank page
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Kwai-nfwuo-á̱niet mi̱ Naijeriya
14
1792
15546
2022-08-07T16:20:13Z
Kambai Akau
15
Created page with "[[Category:Naijeriya]]"
wikitext
text/x-wiki
[[Category:Naijeriya]]
8uqjdpl99les40t12x0vvrjbz0lc48p
Sa:A̱yaakwak a̱son a̱byin Naijeriya
14
1793
15547
2022-08-07T16:20:48Z
Kambai Akau
15
Created page with "[[Category:Naijeriya]]"
wikitext
text/x-wiki
[[Category:Naijeriya]]
8uqjdpl99les40t12x0vvrjbz0lc48p
Sa:A̱gwomna̱ti Naijeriya
14
1794
15548
2022-08-07T16:21:17Z
Kambai Akau
15
Created page with "[[Category:Naijeriya]]"
wikitext
text/x-wiki
[[Category:Naijeriya]]
8uqjdpl99les40t12x0vvrjbz0lc48p
Sa:Kpaat kpi̱kpaat a̱lyia̱ 1963 mi̱ Naijeriya
14
1795
15549
2022-08-07T16:21:36Z
Kambai Akau
15
Created page with "[[Category:Naijeriya]]"
wikitext
text/x-wiki
[[Category:Naijeriya]]
8uqjdpl99les40t12x0vvrjbz0lc48p
Byafra
0
1796
15578
15557
2022-08-07T20:01:52Z
Kambai Akau
15
wikitext
text/x-wiki
{{Databox}}
A̱byin '''Byafra''', á̱ lyen ma̱ng a̱lyoot a̱gwomna̱ti nka nang '''Ri̱pobi̱lik Byafra''' a̱ni,<ref>{{Cite web |title=The Republic of Biafra {{!}} AHA |url=https://www.historians.org/teaching-and-learning/teaching-resources-for-historians/teaching-and-learning-in-the-digital-age/through-the-lens-of-history-biafra-nigeria-the-west-and-the-world/the-republic-of-biafra |access-date=2022-06-09 |website=www.historians.org}}</ref> ku yet a̱byin nang bibyin ghyá̱ng ku lyen di̱ nkap nang a̱byin tyei zat di̱ cat tyok a̱pyia̱ nka hu a̱ni di̱ fam [[Afrika Jenshyung]] ka̱ ku tak a̱pyia̱ nka a̱byin sa̱t neet ma̱ [[Naijeriya]] kpa̱sai a̱wot ka̱ si̱ swuan kyiak neet ma̱ a̱lyia̱ 1967 ba̱ng si̱ tat a̱lyia̱ 1970.<ref>{{Cite book|last=Daly|first=Samuel Fury Childs|url=https://www.cambridge.org/core/books/history-of-the-republic-of-biafra/59377D443F078E195F366F5D1BCB31B9|title=A History of the Republic of Biafra: Law, Crime, and the Nigerian Civil War|date=2020|publisher=Cambridge University Press|isbn=978-1-108-84076-7|location=Cambridge|doi=10.1017/9781108887748|s2cid=225266768}}</ref> A̱byin ka ku yet mi̱ kyang nyiung hwa ma̱ng Fam-a̱byin A̱tyin Naijeriya hu nang nwap [[A̱kum-a̱cyi (nwap)|A̱kum-a̱cyi]] ja swak kuzang ji ma̱ng shi a̱ni. Á̱ ku Byafra a̱tuk Zwat Tswuon 1967 ja mbwak ofisa a̱khwot a̱kwop A̱kum-a̱cyi nang á̱ ngyei [[Chukwuemeka Odumegwu Ojukwu]] a̱ni di̱n jen ji ku ku ngyet a̱kwak a̱son fam-a̱byin hu a̱ni, di̱n jen ji nang a̱ca̱cet nnwap Naijeriya na ku ya fwuang tsi̱tsak á̱pyia̱ nna, ku si̱ kyiak jen ba̱t a̱ni a̱wot a̱khwot á̱kwop wu si̱ ya̱gurup a̱yaagwomna̱ti a̱ma̱lyim shyiat sa̱t Naijeriya ma̱ a̱lyia̱ 1960 a̱wot nyiá̱ jini si̱ byin hyaai A̱kum-a̱cyi a̱lyia̱ 1966 hu ma̱ng nnwap jhyang na̱ ku neet fam a̱tak-a̱tyin Naijeriya hu dḭ fam a̱za ka.<ref>{{cite book |last=Lewis |first=Peter |author-link= |date= 2007 |title=Oil, Politics, and Economic Change in Indonesia and Nigeria
|url= |location= |publisher=University of Michigan Press |page=78 |isbn=9780472024742|quote=setting in jjkmotion a chain of social conflicts that culminated in the attempted secession of Igbo nationalists in 1967}}</ref> [[A̱khwot Á̱kwop Naijeriya|A̱khwot a̱kwop Naijeriya]] wu si̱ ya a̱son di̱ nwuai Byafra di̱ mi̱n byian jen a̱ma̱lyim nang á̱ tak a̱byin ka a̱byin ka̱ yong sa̱t a̱ni, ku si̱ byin [[Zwang Á̱niet-a̱byin Naijeriya]] ji (á̱ ka ngyei Zwang Naijeriya-Byafra ji a̱ni).
==Ya̱fang==
<references/>
67ak98zqzyc5x3xma3olzon59a4ihhd
Ta̱mpi̱let:Cite book
10
1797
15558
2022-08-07T19:15:13Z
Kambai Akau
15
Created page with "<includeonly>{{#invoke:citation/CS1|citation |CitationClass=book }}</includeonly><noinclude> {{documentation}} {{collapse top|TemplateData}} {{Cite book/TemplateData}} {{collapse bottom}} </noinclude>"
wikitext
text/x-wiki
<includeonly>{{#invoke:citation/CS1|citation
|CitationClass=book
}}</includeonly><noinclude>
{{documentation}}
{{collapse top|TemplateData}}
{{Cite book/TemplateData}}
{{collapse bottom}}
</noinclude>
my4yy07itdv4e2t5sc1x4l3pzgpmzo7
Ta̱mpi̱let:Cite book/doc
10
1798
15559
2022-08-07T19:17:11Z
Kambai Akau
15
Created page with "<noinclude>{{pp-protected|reason=Persistent [[WP:Disruptive editing|disruptive editing]] Protecting high visibility template.|small=yes}}</noinclude>{{Documentation subpage}} <!-- Categories go where indicated at the bottom of this page, please; interwikis go to Wikidata (see also: [[Wikipedia:Wikidata]]). --> {{high-risk| 1000000+}} {{csdoc|lua}} {{csdoc|cs1}} {{csdoc|lead|books}} When citing an article in a periodical, use {{tl|cite journal}} or {{tl|cite magazine}}. F..."
wikitext
text/x-wiki
<noinclude>{{pp-protected|reason=Persistent [[WP:Disruptive editing|disruptive editing]] Protecting high visibility template.|small=yes}}</noinclude>{{Documentation subpage}}
<!-- Categories go where indicated at the bottom of this page, please; interwikis go to Wikidata (see also: [[Wikipedia:Wikidata]]). -->
{{high-risk| 1000000+}}
{{csdoc|lua}}
{{csdoc|cs1}}
{{csdoc|lead|books}} When citing an article in a periodical, use {{tl|cite journal}} or {{tl|cite magazine}}. For conference papers, use {{tl|cite conference}}. For edited collections, use {{tl|cite encyclopedia}}. For theses, use {{tl|cite thesis}}.
==Usage==
{{csdoc|usage}}
{{csdoc|usage common}}
; To cite a book with a credited author
: <code><nowiki>{{cite book |last= |first= |author-link= |date= |title= |url= |location= |publisher= |page= |isbn=}}</nowiki></code>
; To cite a book with no credited author
: <code><nowiki>{{cite book |author=<!--Staff writer(s); no by-line.--> |date= |title= |url= |location= |publisher= |page= |isbn=}}</nowiki></code>
; To cite an online book that has been archived
: <code><nowiki>{{cite book |last= |first= |date= |title= |url= |url-status= |location= |publisher= |isbn= |archive-url= |archive-date=}}</nowiki></code>
; To cite a book written in a foreign language
: <code><nowiki>{{cite book |last= |first= |date= |title= |trans-title= |url= |language= |location= |publisher= |isbn=}}</nowiki></code>
; To cite and quote an archived, two-author, foreign language book re-published as a PDF on an information aggregation service requiring a subscription
: <code><nowiki>{{cite book |last1= |first1= |last2= |first2= |date= |title= |trans-title= |url= |url-status= |url-access= |format= |language= |location= |publisher= |isbn= |archive-url= |archive-date= |via= |quote=}}</nowiki></code>
{{end}}
{{csdoc|usage vertical common}}
<pre style="margin:0px; border:none; white-space:pre;">
{{cite book
|last=
|first=
|author-link=
|date=
|title=
|url=
|location=
|publisher=
|page= <!-- or pages= -->
|isbn=
}}
</pre>
{{end}}
{{csdoc|usage full}}
<code><nowiki>{{cite book |last1= |first1= |author-link1= |last2= |first2= |author-link2= |last3= |first3= |author-link3= |last4= |first4= |author-link4= |last5= |first5= |author-link5= |display-authors= |author-mask1= |author-mask2= |author-mask3= |author-mask4= |author-mask5= |editor-last1= |editor-first1= |editor-link1= |editor-last2= |editor-first2= |editor-link2= |editor-last3= |editor-first3= |editor-link3= |editor-last4= |editor-first4= |editor-link4= |editor-last5= |editor-first5= |editor-link5= |display-editors= |editor-mask1= |editor-mask2= |editor-mask3= |editor-mask4= |editor-mask5= |translator-last1= |translator-first1= |translator-link1= |translator-last2= |translator-first2= |translator-link2= |translator-last3= |translator-first3= |translator-link3= |translator-last4= |translator-first4= |translator-link4= |translator-last5= |translator-first5= |translator-link5= |display-translators= |translator-mask1= |translator-mask2= |translator-mask3= |translator-mask4= |translator-mask5= |others= |name-list-style= |date= |year= |orig-date= |chapter= |script-chapter= |trans-chapter= |chapter-url= |chapter-url-access= |chapter-format= |title= |script-title= |trans-title= |title-link= |url= |url-status= |url-access= |format= |type= |series= |language= |volume= |edition= |publication-place= |location= |publisher= |publication-date= |page= |pages= |at= |no-pp= |arxiv= |asin= |asin-tld= |bibcode= |bibcode-access= |biorxiv= |citeseerx= |doi= |doi-access= |doi-broken-date= |eissn= |hdl= |hdl-access= |isbn= |ismn= |issn= |jfm= |jstor= |jstor-access= |lccn= |mr= |oclc= |ol= |ol-access= |osti= |osti-access= |pmc= |pmc-embargo-date= |pmid= |rfc= |sbn= |ssrn= |s2cid= |s2cid-access= |zbl= |id= |archive-url= |archive-date= |access-date= |via= |quote= |script-quote= |trans-quote= |quote-page= |quote-pages= |mode= |postscript= |ref=}}</nowiki></code>
{{end}}
{| class="wikitable"
|+Full parameter set in vertical format
! Parameters !! Prerequisites !! Brief instructions / notes !! Vertical list
|-
| {{Hover title|or any of its aliases, including: last; author1; author; author-last1; author-last; (etc.)|last1}}
|
| Author's last name or single name author. Don't link.
| rowspan="111" style="vertical-align:top;" | <pre style="margin:0px; border:none;">
{{cite book
|last1 =
|first1 =
|author-link1 =
|last2 =
|first2 =
|author-link2 =
|last3 =
|first3 =
|author-link3 =
|last4 =
|first4 =
|author-link4 =
|last5 =
|first5 =
|author-link5 =
|display-authors =
|author-mask1 =
|author-mask2 =
|author-mask3 =
|author-mask4 =
|author-mask5 =
|editor-last1 =
|editor-first1 =
|editor-link1 =
|editor-last2 =
|editor-first2 =
|editor-link2 =
|editor-last3 =
|editor-first3 =
|editor-link3 =
|editor-last4 =
|editor-first4 =
|editor-link4 =
|editor-last5 =
|editor-first5 =
|editor-link5 =
|display-editors =
|editor-mask1 =
|editor-mask2 =
|editor-mask3 =
|editor-mask4 =
|editor-mask5 =
|translator-last1 =
|translator-first1 =
|translator-link1 =
|translator-last2 =
|translator-first2 =
|translator-link2 =
|translator-last3 =
|translator-first3 =
|translator-link3 =
|translator-last4 =
|translator-first4 =
|translator-link4 =
|translator-last5 =
|translator-first5 =
|translator-link5 =
|display-translators =
|translator-mask1 =
|translator-mask2 =
|translator-mask3 =
|translator-mask4 =
|translator-mask5 =
|others =
|name-list-style =
|date =
|year =
|orig-date =
|chapter =
|script-chapter =
|trans-chapter =
|chapter-url =
|chapter-url-access =
|chapter-format =
|title =
|script-title =
|trans-title =
|title-link =
|url =
|url-status =
|url-access =
|format =
|type =
|series =
|language =
|volume =
|edition =
|publication-place =
|location =
|publisher =
|publication-date =
|page =
|pages =
|at =
|no-pp =
|arxiv =
|asin =
|asin-tld =
|bibcode =
|bibcode-access =
|biorxiv =
|citeseerx =
|doi =
|doi-access =
|doi-broken-date =
|eissn =
|hdl =
|hdl-access =
|isbn =
|ismn =
|issn =
|jfm =
|jstor =
|jstor-access =
|lccn =
|mr =
|oclc =
|ol =
|ol-access =
|osti =
|osti-access =
|pmc =
|pmc-embargo-date =
|pmid =
|rfc =
|sbn =
|ssrn =
|s2cid =
|s2cid-access =
|zbl =
|id =
|archive-url =
|archive-date =
|access-date =
|via =
|quote =
|script-quote =
|trans-quote =
|quote-page =
|quote-pages =
|mode =
|postscript =
|ref =
}}
</pre>
|-
| {{Hover title|or any of its aliases, including: first; given1; given; author-first1; author-first; (etc.)|first1}}
| {{Hover title|or any of its aliases, including: last; author1; author; author-last1; author-last; (etc.)|last1}}
| Author's first name. Don't link.
|-
| {{Hover title|or any of its aliases, including: author-link; author-link1; subject-link1; subject-link; (etc.)|author-link1}}
| {{Hover title|or any of its aliases, including: last; author1; author; author-last1; author-last; (etc.)|last1}}
| Title of Wikipedia article about the first author. Don't link.
|-
| {{Hover title|or any of its aliases, including: author2; author-last2; (etc.)|last2}}
| {{Hover title|or any of its aliases, including: last; author1; author; author-last1; author-last; (etc.)|last1}}
| Like <code>last1</code>, but for 2nd author.
|-
| {{Hover title|or any of its aliases, including: given2; author-first2; (etc.)|first2}}
| {{Hover title|or any of its aliases, including: author2; author-last2; (etc.)|last2}}
| Like <code>first1</code>, but for 2nd author.
|-
| {{Hover title|or any of its aliases, including: subject-link2; (etc.)|author-link2}}
| {{Hover title|or any of its aliases, including: author2; author-last2; (etc.)|last2}}
| Like <code>author-link1</code>, but for 2nd author.
|-
| {{Hover title|or any of its aliases, including: author3; author-last3; (etc.)|last3}}
| {{Hover title|or any of its aliases, including: author2; author-last2; (etc.)|last2}}
| Like <code>last1</code>, but for 3rd author.
|-
| {{Hover title|or any of its aliases, including: given3; author-first3; (etc.)|first3}}
| {{Hover title|or any of its aliases, including: author3; author-last3; (etc.)|last3}}
| Like <code>first1</code>, but for 3rd author.
|-
| {{Hover title|or any of its aliases, including: subject-link3; (etc.)|author-link3}}
| {{Hover title|or any of its aliases, including: author3; author-last3; (etc.)|last3}}
| Like <code>author-link1</code>, but for 3rd author.
|-
| {{Hover title|or any of its aliases, including: author4; author-last4; (etc.)|last4}}
| {{Hover title|or any of its aliases, including: author3; author-last3; (etc.)|last3}}
| Like <code>last1</code>, but for 4th author.
|-
| {{Hover title|or any of its aliases, including: given4; author-first4; (etc.)|first4}}
| {{Hover title|or any of its aliases, including: author4; author-last4; (etc.)|last4}}
| Like <code>first1</code>, but for 4th author.
|-
| {{Hover title|or any of its aliases, including: subject-link4; (etc.)|author-link4}}
| {{Hover title|or any of its aliases, including: author4; author-last4; (etc.)|last4}}
| Like <code>author-link1</code>, but for 4th author.
|-
| {{Hover title|or any of its aliases, including: author5; author-last5; (etc.)|last5}}
| {{Hover title|or any of its aliases, including: author4; author-last4; (etc.)|last4}}
| Like <code>last1</code>, but for 5th author. Similar: last6, etc.
|-
| {{Hover title|or any of its aliases, including: given5; author-first5; (etc.)|first5}}
| {{Hover title|or any of its aliases, including: author5; author-last5; (etc.)|last5}}
| Like <code>first1</code>, but for 5th author. Similar: first6, etc.
|-
| {{Hover title|or any of its aliases, including: subject-link5; (etc.)|author-link5}}
| {{Hover title|or any of its aliases, including: author5; author-last5; (etc.)|last5}}
| Like <code>author-link1</code>, but for 5th author. Similar: author-link6, etc.
|-
| {{Hover title|or alias displayauthors|display-authors}}
| {{Hover title|or any of its aliases, including: last; author1; author; author-last1; author-last; (etc.)|last1}}
| Number (number of authors displayed) or <code>etal</code> (more authors)
|-
| {{Hover title|or any of its aliases, including: author-mask; author1-mask; (etc.)|author-mask1}}
| {{Hover title|or any of its aliases, including: last; author1; author; author-last1; author-last; (etc.)|last1}}
| rowspan="5" | See [[#Display options|Display options]] below; not for lists of cited works
|-
| {{Hover title|or any of its aliases, including: author2-mask; (etc.)|author-mask2}}
| {{Hover title|or any of its aliases, including: author2; author-last2; (etc.)|last2}}
|-
| {{Hover title|or any of its aliases, including: author3-mask; (etc.)|author-mask3}}
| {{Hover title|or any of its aliases, including: author3; author-last3; (etc.)|last3}}
|-
| {{Hover title|or any of its aliases, including: author4-mask; (etc.)|author-mask4}}
| {{Hover title|or any of its aliases, including: author4; author-last4; (etc.)|last4}}
|-
| {{Hover title|or any of its aliases, including: author5-mask; (etc.)|author-mask5}}
| {{Hover title|or any of its aliases, including: author5; author-last5; (etc.)|last5}}
|-
|| editor-last1 || || may also use "editor-last"
|-
|| editor-first1 || editor-last1 || may also use 'editor-first"
|-
|| editor-link1 || editor-last1 || may also use "editor-link"
|-
|| editor-mask1 || editor-last1 ||
|-
|| display-editors || ||
|-
| {{Hover title|or any of its aliases, including: translator-last; translator1; translator; translator-surname; (etc.)|translator-last1}}
|
| Like <code>last1</code>, but for translator
|-
| {{Hover title|or any of its aliases, including: translator-first; translator-given1; translator-given; (etc.)|translator-first1}}
| {{Hover title|or any of its aliases, including: translator-last; translator1; translator; translator-surname; (etc.)|translator-last1}}
| Like <code>first1</code>, but for translator
|-
| {{Hover title|or any of its aliases, including: translator-link; (etc.)|translator-link1}}
| {{Hover title|or any of its aliases, including: translator-last; translator1; translator; translator-surname; (etc.)|translator-last1}}
| Like <code>author-link1</code>, but for translator
|-
| {{Hover title|or any of its aliases, including: translator2; translator-surname2; (etc.)|translator-last2}}
| {{Hover title|or any of its aliases, including: translator-last; translator1; translator; translator-surname; (etc.)|translator-last1}}
| Like <code>last1</code>, but for 2nd translator. Similar: translator-last3, etc.
|-
| {{Hover title|or any of its aliases, including: translator2-first; translator-given2; (etc.)|translator-first2}}
| {{Hover title|or any of its aliases, including: translator2; translator-surname2; (etc.)|translator-last2}}
| Like <code>first1</code>, but for 2nd translator. Similar: translator-first3, etc.
|-
| {{Hover title|or alias translator2-link|translator-link2}}
| {{Hover title|or any of its aliases, including: translator2; translator-surname2; (etc.)|translator-last2}}
| Like <code>author-link1</code>, but for 2nd transl. Similar: translator-link3, ...
|-
| {{nowrap|display-translators}}
| {{Hover title|or any of its aliases, including: translator-last; translator1; translator; translator-surname; (etc.)|translator-last1}}
| Like <code>display-authors</code>, but for translators
|-
| {{Hover title|or any of its aliases, including: translator-mask; (etc.)|translator-mask1}}
| {{Hover title|or any of its aliases, including: translator-last; translator1; translator; translator-surname; (etc.)|translator-last1}}
| rowspan="2" | See [[#Display options|Display options]] below; not for lists of cited works
|-
| {{Hover title|or alias translator2-mask|translator-mask2}}
| {{Hover title|or any of its aliases, including: translator2; translator-surname2; (etc.)|translator-last2}}
|-
| name-list-style
| {{Hover title|or any of its aliases, including: author2; author-last2; (etc.)|last2}}
| Set to <code>amp</code> or <code>ampersand</code> to separate the last author with {{nowrap|"<code> & </code>"}}; set to <code>and</code> to separate with {{nowrap|"<code> and </code>"}}
|-
|| others || ||
|-
|| date || ||
|-
|| year || ||
|-
|| orig-date || date or year ||
|-
|| chapter || || This should be the title of the chapter cited. Do not wikilink "chapter" if "chapter-url" is provided
|-
|| script-chapter || ||
|-
|| trans-chapter || chapter or script-chapter ||
|-
|| chapter-url || chapter or script-chapter ||
|-
|| chapter-format || chapter-url ||
|-
|| title || ||
|-
|| script-title || ||
|-
|| trans-title || title or script-title ||
|-
|| title-link || ||
|-
|| url || title or script-title ||
|-
|| url-status || archive-url ||
|-
|| url-access || url ||
|-
|| format || url ||
|-
|| type || ||
|-
|| series || ||
|-
|| language || ||
|-
|| volume || ||
|-
|| edition || || Ordinal number
|-
|| publication-place || publisher ||
|-
|| location || publisher || can be used for written-at location when "publication-place" is used for publication place
|-
|| publisher || ||
|-
|| publication-date || ||
|-
|| page || || choose one: "page", "pages", or "at"
|-
|| pages || || choose one: "page", "pages", or "at". Use when content on multiple pages supports the article text.
|-
|| at || || choose one: "page", "pages", or "at"
|-
|| no-pp || page or pages || set no-pp to "yes" to suppress the "p." or "pp." before page numbers
|-
|| arxiv || ||
|-
|| asin || ||
|-
|| asin-tld || asin ||
|-
|| bibcode || ||
|-
|| biorxiv || ||
|-
|| citeseerx || ||
|-
|| doi || ||
|-
|| doi-broken-date || doi ||
|-
|| eissn || ||
|-
|| hdl || ||
|-
|| isbn || || '''always include ISBN''', if one has been assigned
|-
|| issn || ||
|-
|| ismn || ||
|-
|| jfm || ||
|-
|| jstor || ||
|-
|| lccn || ||
|-
|| mr || ||
|-
|| oclc || ||
|-
|| ol || ||
|-
|| osti || ||
|-
|| pmc || ||
|-
|| pmc-embargo-date || pmc ||
|-
|| pmid || ||
|-
|| rfc || ||
|-
|| sbn || ||
|-
|| ssrn || ||
|-
|| s2cid || ||
|-
|| zbl || ||
|-
|| id || ||
|-
|| archive-url || archive-date, url ||
|-
|| archive-date || archive-url ||
|-
|| access-date || url ||
|-
|| via || ||
|-
|| quote || ||
|-
|| script-quote || ||
|-
|| trans-quote || ||
|-
|| quote-page || || choose one: "quote-page", "quote-pages"
|-
|| quote-pages || || choose one: "quote-page", "quote-pages". Use when quote contains contents from multiple pages.
|-
|| mode || || <code>cs1</code> or <code>cs2</code>
|-
|| postscript || ||
|-
|| ref || ||
|-
| colspan="4" style="text-align: center" | If a field name is listed in the '''Prerequisites''' column, it is a prerequisite for the field to the left.
|}
==Examples==
{{markup2|t=Title
|m=<nowiki>{{cite book |title=Mysterious Book}}</nowiki>
|r={{cite book |title=Mysterious Book}}
}}
{{markup2|t=Title and year
|m=<nowiki>{{cite book |title=Mysterious Book |date=1901}}</nowiki>
|r={{cite book |title=Mysterious Book |date=1901}}
}}
{{markup2|t=Basic usage (single author)
|m=<nowiki>{{cite book |last=Bloggs |first=Joe |author-link=Joe Bloggs |date=1974 |title=Book of Bloggs}}</nowiki>
|r={{cite book |last=Bloggs |first=Joe |author-link=Joe Bloggs |date=1974 |title=Book of Bloggs}}
}}
{{markup2|t=Basic usage (two authors)
|m=<nowiki>{{cite book |last1=Bloggs |first1=Joe |author-link1=Joe Bloggs |last2=Bloggs |first2=Fred |author-link2=Fred Bloggs |date=1974 |title=Book of Bloggs}}</nowiki>
|r={{cite book |last1=Bloggs |first1=Joe |author-link1=Joe Bloggs |last2=Bloggs |first2=Fred |author-link2=Fred Bloggs |date=1974 |title=Book of Bloggs}}
}}
{{markup2|t=Basic usage with url (and access-date) and edition
|m=<nowiki>{{cite book |last=Bloggs |first=Joe |author-link=Joe Bloggs |date=1974 |title=Book of Bloggs |edition=1st |url=https://en.wikipedia.org/ |access-date=February 17, 2006}}</nowiki>
|r={{cite book |last=Bloggs |first=Joe |author-link=Joe Bloggs |date=1974 |title=Book of Bloggs |edition=1st |url=https://en.wikipedia.org/ |access-date=February 17, 2006}}
}}{{anchor|different authors}}
{{markup2|t=Citing a chapter in a book with different authors for different chapters and an editor
|m=<nowiki>{{cite book |last=Bloggs |first=Fred |date=January 1, 2001 |editor-last=Doe |editor-first=John |title=Big Compilation Book with Many Chapters and Distinct Chapter Authors |publisher=Book Publishers |pages=100–110 |chapter=Chapter 2: The History of the Bloggs Family |isbn=}}</nowiki>
|r={{cite book |last=Bloggs |first=Fred |date=January 1, 2001 |editor-last=Doe |editor-first=John |title=Big Compilation Book with Many Chapters and Distinct Chapter Authors |publisher=Book Publishers |pages=100–110 |chapter=Chapter 2: The History of the Bloggs Family |isbn=}}
}}
{{markup2|t=Citing a chapter in a book with two joint authors and an editor
|m=<nowiki>{{cite book |last1=Bloggs |first1=Joe |last2=Egg |first2=Fred |date=January 1, 2001 |editor-last=Doe |editor-first=John |title=Big Book with Many Chapters and Two Co-authors |publisher=Book Publishers |orig-date=1st pub. 1986 |pages=100–110 |chapter=Chapter 6: Getting There |chapter-url=https://en.wikipedia.org/ |isbn= |name-list-style=amp}}</nowiki>
|r={{cite book |last1=Bloggs |first1=Joe |last2=Egg |first2=Fred |date=January 1, 2001 |editor-last=Doe |editor-first=John |title=Big Book with Many Chapters and Two Co-authors |publisher=Book Publishers |orig-date=1st pub. 1986 |pages=100–110 |chapter=Chapter 6: Getting There |chapter-url=https://en.wikipedia.org/ |isbn= |name-list-style=amp}}
}}
{{markup2|t=Three authors, title with a piped wikilink, edition
|m=<nowiki>{{cite book |last1=Bloggs |first1=Joe |author-link1=Joe Bloggs |last2=Smith |first2=John |last3=Smythe |first3=Jim |title=[[A Thousand Acres|1000 Acres]] |edition=2nd}}</nowiki>
|r={{cite book |last1=Bloggs |first1=Joe |author-link1=Joe Bloggs |last2=Smith |first2=John |last3=Smythe |first3=Jim |title=[[A Thousand Acres|1000 Acres]] |edition=2nd}}
}}
{{markup2|t=Complex usage showing effect of using volume parameter and lastauthoramp parameter (without volume and lastauthoramp)
|m=<nowiki>{{cite book |last1=Playfair |first1=I. S. O. |author-link1=Ian Stanley Ord Playfair |last2=Stitt |first2=G. M. S. |last3=Molony |first3=C. J. C. |last4=Toomer |first4=S. E. |date=2007 |orig-date=1st pub. [[HMSO]]:1954 |editor-last=Butler |editor-first=J. R. M. |series=History of the Second World War, United Kingdom Military Series |title=Mediterranean and Middle East. Volume I: The Early Successes Against Italy (to May 1941) |publisher=Naval & Military Press |location=Uckfield, East Sussex |isbn=1-845740-65-3}}</nowiki>
|r={{cite book |last1=Playfair |first1=I. S. O. |author-link1=Ian Stanley Ord Playfair |last2=Stitt |first2=G. M. S. |last3=Molony |first3=C. J. C. |last4=Toomer |first4=S. E. |date=2007 |orig-date=1st pub. [[HMSO]]:1954 |editor-last=Butler |editor-first=J. R. M. |series=History of the Second World War, United Kingdom Military Series |title=Mediterranean and Middle East. Volume I: The Early Successes Against Italy (to May 1941) |publisher=Naval & Military Press |location=Uckfield, East Sussex |isbn=1-845740-65-3}}
}}
{{markup2|t=Complex usage showing effect of using volume parameter and lastauthoramp parameter (with volume and lastauthoramp)
|m=<nowiki>{{cite book |last1=Playfair |first1=I. S. O. |author-link1=Ian Stanley Ord Playfair |last2=Stitt |first2=G. M. S. |last3=Molony |first3=C. J. C. |last4=Toomer |first4=S. E. |date=2007 |orig-date=1st pub. [[HMSO]]:1954 |editor-last=Butler |editor-first=J. R. M. |series=History of the Second World War, United Kingdom Military Series |title=Mediterranean and Middle East |volume=I: The Early Successes Against Italy (to May 1941) |publisher=Naval & Military Press |location=Uckfield, East Sussex |isbn=1-845740-65-3 |name-list-style=amp}}</nowiki>
|r={{cite book |last1=Playfair |first1=I. S. O. |author-link1=Ian Stanley Ord Playfair |last2=Stitt |first2=G. M. S. |last3=Molony |first3=C. J. C. |last4=Toomer |first4=S. E. |date=2007 |orig-date=1st pub. [[HMSO]]:1954 |editor-last=Butler |editor-first=J. R. M. |series=History of the Second World War, United Kingdom Military Series |title=Mediterranean and Middle East |volume=I: The Early Successes Against Italy (to May 1941) |publisher=Naval & Military Press |location=Uckfield, East Sussex |isbn=1-845740-65-3 |name-list-style=amp}}
}}
{{markup2|t=Date without day, wikilinked title, publisher, pages, edition, location
|m=<nowiki>{{cite book |last1=Cordell |first1=Bruce R. |last2=Grubb |first2=Jeff |last3=Noonan |first3=David |date=September 2001 |title=[[Manual of the Planes]] |edition=3rd |publisher=Wizards of the Coast |location=Renton, Washington |isbn=0-7869-1850-0 |pages=134–137}}</nowiki>
|r={{cite book |last1=Cordell |first1=Bruce R. |last2=Grubb |first2=Jeff |last3=Noonan |first3=David |date=September 2001 |title=[[Manual of the Planes]] |edition=3rd |publisher=Wizards of the Coast |location=Renton, Washington |isbn=0-7869-1850-0 |pages=134–137}}
}}
{{markup2|t=Other language
|m=<nowiki>{{cite book |last=Bloggs |first=Jean |date=1974 |title=Livre de Bloggs |edition=1st |language=French |trans-title=Book of Bloggs |url=https://en.wikipedia.org/ |access-date=February 17, 2006}}</nowiki>
|r={{cite book |last=Bloggs |first=Jean |date=1974 |title=Livre de Bloggs |edition=1st |language=French |trans-title=Book of Bloggs |url=https://en.wikipedia.org/ |access-date=February 17, 2006}}
}}
{{markup2|t=Using a [[Digital object identifier|DOI]]
|m=<nowiki>{{cite book |last=Mumford |first=David |author-link=David Mumford |date=1999 |title=The Red Book of Varieties and Schemes: Includes the Michigan Lectures (1974) on Curves and Their Jacobians |edition=2nd |publisher=Springer-Verlag |doi=10.1007/b62130 |isbn=354063293X}}</nowiki>
|r={{cite book |last=Mumford |first=David |author-link=David Mumford |date=1999 |title=The Red Book of Varieties and Schemes: Includes the Michigan Lectures (1974) on Curves and Their Jacobians |edition=2nd |publisher=Springer-Verlag |doi=10.1007/b62130 |isbn=354063293X}}
}}
{{markup2|t=Using author-mask parameter
|m=<nowiki>{{cite book |last1=Playfair |first1=I. S. O. |author-link1=Ian Stanley Ord Playfair |last2=Stitt |first2=G. M. S. |last3=Molony |first3=C. J. C. |last4=Toomer |first4=S. E. |date=2004 |orig-date=1st pub. [[HMSO]]:1954 |editor-last=Butler |editor-first=J. R. M. |editor-link=James Ramsay Montagu Butler |series=History of the Second World War, United Kingdom Military Series |title=Mediterranean and Middle East Volume I: The Early Successes Against Italy (to May 1941) |publisher=Naval & Military Press |location=Uckfield, East Sussex |isbn=1-845740-65-3 |name-list-style=amp}}</nowiki>
|m2=<nowiki>{{cite book |last1=Playfair |first1=I. S. O. |author-link1=Ian Stanley Ord Playfair |last2=Flynn |first2=F. C. |last3=Molony |first3=C. J. C. |last4=Toomer |first4=S. E. |date=2004 |orig-date=1st pub. [[HMSO]]:1954 |editor-last=Butler |editor-first=J. R. M. |editor-link=James Ramsay Montagu Butler |series=History of the Second World War, United Kingdom Military Series |title=The Mediterranean and Middle East, Volume II: The Germans Come to the Help of Their Ally (1941) |publisher=Naval & Military Press |location=Uckfield, East Sussex |isbn=1-845740-66-1 |name-list-style=amp |author-mask=2}}</nowiki>
|m3=<nowiki>{{cite book |last1=Playfair |first1=I. S. O. |author-link1=Ian Stanley Ord Playfair |last2=Flynn |first2=F. C. |last3=Molony |first3=C. J. C. |last4=Gleave |first4=T. P. |date=2004 |orig-date=1st pub. [[HMSO]]:1954 |editor-last=Butler |editor-first=Sir James |editor-link=James Ramsay Montagu Butler |series=History of the Second World War, United Kingdom Military Series |title=The Mediterranean and Middle East, Volume III: British Fortunes Reach Their Lowest Ebb (September 1941 to September 1942) |publisher=Naval & Military Press |location=Uckfield, East Sussex |isbn=1-845740-67-X |name-list-style=amp |author-mask=2}}</nowiki>
|r={{cite book |last1=Playfair |first1=I. S. O. |author-link1=Ian Stanley Ord Playfair |last2=Stitt |first2=G. M. S. |last3=Molony |first3=C. J. C. |last4=Toomer |first4=S. E. |date=2004 |orig-date=1st pub. [[HMSO]]:1954 |editor-last=Butler |editor-first=J. R. M. |editor-link=James Ramsay Montagu Butler |series=History of the Second World War, United Kingdom Military Series |title=Mediterranean and Middle East Volume I: The Early Successes Against Italy (to May 1941) |publisher=Naval & Military Press |location=Uckfield, East Sussex |isbn=1-845740-65-3 |name-list-style=amp}}
|r2={{cite book |last1=Playfair |first1=I. S. O. |author-link1=Ian Stanley Ord Playfair |last2=Flynn |first2=F. C. |last3=Molony |first3=C. J. C. |last4=Toomer |first4=S. E. |date=2004 |orig-date=1st pub. [[HMSO]]:1954 |editor-last=Butler |editor-first=J. R. M. |editor-link=James Ramsay Montagu Butler |series=History of the Second World War, United Kingdom Military Series |title=The Mediterranean and Middle East, Volume II: The Germans Come to the Help of Their Ally (1941) |publisher=Naval & Military Press |location=Uckfield, East Sussex |isbn=1-845740-66-1 |name-list-style=amp |author-mask=2}}
|r3={{cite book |last1=Playfair |first1=I. S. O. |author-link1=Ian Stanley Ord Playfair |last2=Flynn |first2=F. C. |last3=Molony |first3=C. J. C. |last4=Gleave |first4=T. P. |date=2004 |orig-date=1st pub. [[HMSO]]:1954 |editor-last=Butler |editor-first=Sir James |editor-link=James Ramsay Montagu Butler |series=History of the Second World War, United Kingdom Military Series |title=The Mediterranean and Middle East, Volume III: British Fortunes Reach Their Lowest Ebb (September 1941 to September 1942) |publisher=Naval & Military Press |location=Uckfield, East Sussex |isbn=1-845740-67-X |name-list-style=amp |author-mask=2}}
}}
{{markup2|t=Using display-authors parameter
|m=<nowiki>{{cite book |last1=Playfair |first1=I. S. O. |author-link1=Ian Stanley Ord Playfair |last2=Stitt |first2=G. M. S. |last3=Molony |first3=C. J. C. |last4=Toomer |first4=S. E. |date=2004 |orig-date=1st pub. [[HMSO]]:1954 |editor-last=Butler |editor-first=J. R. M. |editor-link=James Ramsay Montagu Butler |series=History of the Second World War, United Kingdom Military Series |title=Mediterranean and Middle East Volume I: The Early Successes Against Italy (to May 1941) |publisher=Naval & Military Press |location=Uckfield, East Sussex |isbn=1-845740-65-3 |display-authors=1}}</nowiki>
|r={{cite book |last1=Playfair |first1=I. S. O. |author-link1=Ian Stanley Ord Playfair |last2=Stitt |first2=G. M. S. |last3=Molony |first3=C. J. C. |last4=Toomer |first4=S. E. |date=2004 |orig-date=1st pub. [[HMSO]]:1954 |editor-last=Butler |editor-first=J. R. M. |editor-link=James Ramsay Montagu Butler |series=History of the Second World War, United Kingdom Military Series |title=Mediterranean and Middle East Volume I: The Early Successes Against Italy (to May 1941) |publisher=Naval & Military Press |location=Uckfield, East Sussex |isbn=1-845740-65-3 |display-authors=1}}
}}
==Parameters==
===Syntax===
{{csdoc|syntax}}
===COinS===
{{csdoc|coins}}
===What's new===
{{csdoc|whats new}}
===Deprecated===
{{csdoc|deprecated}}
===Description===
====Authors====
{{csdoc|author|contributor=yes|others=yes}}
====Date====
{{csdoc|date}}
====Title====
{{csdoc|title|title_format=italics}}
{{csdoc|type}}
{{csdoc|chapter}}
{{csdoc|language}}
====Publisher====
{{csdoc|publisher}}
====Edition, series, volume====
{{csdoc|edition}}
{{csdoc|series}}
{{csdoc|volume}}
====In-source locations====
{{csdoc|pages}}
===={{Anchor|url}}URL====
{{csdoc|url}}
====Chapter URL====
{{csdoc|chapterurl}}
====Anchor====
{{csdoc|ref}}
====Identifiers====
{{csdoc|id1}}
{{csdoc|id2}}
====Quote====
{{csdoc|quote}}
====Editors====
{{csdoc|editor}}
====Lay summary====
{{csdoc|lay}}
====Display options====
{{csdoc|display}}
====Subscription or registration required====
{{csdoc|registration}}
==TemplateData==
See [[Template:Cite book/TemplateData]].
== Citation tools==
{{main|Help:Citation tools}}
*'''[https://citer.toolforge.org/ Citer]''': A web tool that converts a DOI, ISBN, PMID, PMCID, [[OCLC]], or [[Google Books]] URL into a citation and [[Help:Shortened footnotes|shortened footnote]].
* '''[https://alyw234237.github.io/wiki-doi-gbooks-citation-maker/ DOI and Google Books Citation Maker]''': A web tool for generating filled citation templates via DOIs and Google Books URLs.
{{Citation Style 1}}
{{Wikipedia referencing}}
{{UF-COinS}}
<includeonly>{{Sandbox other||
<!-- Categories go below this line, please; interwikis go to Wikidata, thank you! -->
[[Category:Citation Style 1 templates|B]]
[[Category:Book citation templates]]
[[Category:Book templates]]
}}</includeonly>
80wrtkpnxvxw4qcfpqbtgc7h6epryjv
Ta̱mpi̱let:Cite news
10
1799
15560
2022-08-07T19:20:36Z
Kambai Akau
15
Created page with "<includeonly>{{#invoke:citation/CS1|citation |CitationClass=news }}</includeonly><noinclude> {{documentation}} </noinclude>"
wikitext
text/x-wiki
<includeonly>{{#invoke:citation/CS1|citation
|CitationClass=news
}}</includeonly><noinclude>
{{documentation}}
</noinclude>
pbjnspfej5gxihr9izxrzkow3f1uf3i
Ta̱mpi̱let:Cite news/doc
10
1800
15561
2022-08-07T19:22:34Z
Kambai Akau
15
Created page with "<noinclude>{{pp-template}}</noinclude> {{Documentation subpage}} {{High-risk|1020075+}} {{csdoc|lua}} {{csdoc|cs1}} {{csdoc|lead|news articles in print, video, audio or web}} ==Usage== {{csdoc|usage}} {{csdoc|usage common}} ;To cite a news article with a credited author <code><nowiki>{{cite news |last= |first= |date= |title= |url= |work= |location= |access-date=}}</nowiki></code> <br /> ;To cite a news article with no credited author <code><nowiki>{{cite news |author=<!..."
wikitext
text/x-wiki
<noinclude>{{pp-template}}</noinclude>
{{Documentation subpage}}
{{High-risk|1020075+}}
{{csdoc|lua}}
{{csdoc|cs1}}
{{csdoc|lead|news articles in print, video, audio or web}}
==Usage==
{{csdoc|usage}}
{{csdoc|usage common}}
;To cite a news article with a credited author
<code><nowiki>{{cite news |last= |first= |date= |title= |url= |work= |location= |access-date=}}</nowiki></code>
<br />
;To cite a news article with no credited author
<code><nowiki>{{cite news |author=<!--not stated--> |date= |title= |url= |work= |location= |access-date=}}</nowiki></code>
<br />
;To cite an online news article that has been archived
<code><nowiki>{{cite news |last= |first= |date= |title= |url= |url-status= |work= |location= |archive-url= |archive-date= |access-date=}}</nowiki></code>
<br />
;To cite a news article written in a foreign language
<code><nowiki>{{cite news |last= |first= |date= |title= |trans-title= |url= |language= |work= |location= |access-date=}}</nowiki></code>
;To cite and quote an archived news article clipped with an information aggregation service requiring a subscription
<code><nowiki>{{cite news |last1= |first1= |last2= |first2= |date= |title= |trans-title= |url= |url-status= |language= |work= |location= |archive-url= |archive-date= |access-date= |via= |quote=}}</nowiki></code>
{{end}}
{{csdoc|usage full}}
:<code><nowiki>{{cite news |last1= |first1= |author-link1= |last2= |first2= |author-link2= |last3= |first3= |author-link3= |last4= |first4= |author-link4= |last5= |first5= |author-link5= |display-authors= |author-mask= |name-list-style= |date= |year= |orig-date= |title= |script-title= |trans-title= |url= |url-status= |format= |editor1-last= |editor1-first= |editor1-link= |editor2-last= |editor2-first= |editor2-link= |editor3-last= |editor3-first= |editor3-link= |editor4-last= |editor4-first= |editor4-link= |editor5-last= |editor5-first= |editor5-link= |display-editors= |department= |work= |type= |series= |language= |volume= |issue= |others= |edition= |location= |publisher= |publication-date= |agency= |page= |pages= |at= |no-pp= |arxiv= |asin= |bibcode= |doi= |doi-broken-date= |isbn= |issn= |jfm= |jstor= |lccn= |mr= |oclc= |ol= |osti= |pmc= |pmid= |rfc= |ssrn= |zbl= |id= |archive-url= |archive-date= |access-date= |via= |url-access= |quote= |postscript= |ref=}}</nowiki></code>
{{end}}
{{csdoc|usage vertical common}}
;To cite a news article with a credited author
<pre style="margin:0px; border:none;">
{{cite news
| last =
| first =
| date =
| title =
| url =
| work =
| location =
| access-date =
}}
</pre>
;To cite a news article with no credited author
<pre style="margin:0px; border:none;">
{{cite news
| author =<!--not stated-->
| title =
| url =
| work =
| location =
| date =
| access-date =
}}
</pre>
;To cite an online news article that has been archived
<pre style="margin:0px; border:none;">
{{cite news
| last =
| first =
| date =
| title =
| url =
| url-status =
| work =
| location =
| archive-url =
| archive-date =
| access-date =
}}
</pre>
;To cite a news article written in a foreign language
<pre style="margin:0px; border:none;">
{{cite news
| last =
| first =
| date =
| title =
| trans-title =
| url =
| language =
| work =
| location =
| access-date =
}}
</pre>
;To cite and quote a clipped and archived news article on an information aggregation service requiring a subscription
<pre style="margin:0px; border:none;">
{{cite news
| last1 =
| first1 =
| last2 =
| first2 =
| date =
| title =
| trans-title =
| url =
| url-status =
| format =
| language =
| work =
| location =
| archive-url =
| archive-date =
| access-date =
| via =
| url-access =
| quote =
}}
</pre>
{{end}}
{{csdoc|usage vertical}}
<pre style="margin:0px; border:none;">
{{cite news
| last1 =
| first1 =
| author-link1 =
| last2 =
| first2 =
| author-link2 =
| last3 =
| first3 =
| author-link3 =
| last4 =
| first4 =
| author-link4 =
| last5 =
| first5 =
| author-link5 =
| display-authors =
| author-mask =
| name-list-style =
| date =
| year =
| orig-date =
| title =
| script-title =
| trans-title =
| url =
| url-status =
| format =
| editor1-last =
| editor1-first =
| editor1-link =
| editor2-last =
| editor2-first =
| editor2-link =
| editor3-last =
| editor3-first =
| editor3-link =
| editor4-last =
| editor4-first =
| editor4-link =
| editor5-last =
| editor5-first =
| editor5-link =
| display-editors =
| department =
| work =
| type =
| series =
| language =
| volume =
| issue =
| others =
| edition =
| location =
| publisher =
| publication-date =
| agency =
| page =
| pages =
| at =
| no-pp =
| arxiv =
| asin =
| bibcode =
| doi =
| doi-broken-date =
| isbn =
| issn =
| jfm =
| jstor =
| lccn =
| mr =
| oclc =
| ol =
| osti =
| pmc =
| pmid =
| rfc =
| ssrn =
| zbl =
| id =
| archive-url =
| archive-date =
| access-date =
| via =
| quote =
| postscript =
| ref =
}}
</pre>
{{csdoc|usage vertical mid}}
<pre style="margin:0px; border:none;">
</pre>
{{csdoc|usage vertical mid}}
<pre style="margin:0px; border:none;">
</pre>
{{csdoc|usage vertical end}}
===Choosing between {{tlf|Cite web}} and {{tlf|Cite news}}===
{{anchor|Consistency}}
Before 2014, editors needed to decide whether to use {{tl|Cite web}} or {{tlf|Cite news}} based on their features. In 2014, however, ''most of'' the differences between the two templates were eliminated.
As of {{diff|Module:Citation/CS1|732205428|723907342|29 July 2016}}, {{tlf|Cite web}} and {{tlf|Cite news}} have the following differences:
*{{tlf|Cite news}} can be used for [[WP:OFFLINE|offline]] (paper) sources whereas {{tlf|Cite web}} generates a missing URL error when no URL is provided
*{{tlf|Cite news}} accepts {{para|issue}} and {{para|volume}} parameters while {{tlf|Cite web}} does not (See {{section link|1=Help talk:Citation Style 1/Archive 10|2=|volume=, |issue=, |page(s)= and cite magazine}}.)
But given the same set of valid parameters, their output is exactly the same:
<!-- ATTENTION!
The following example only serves to demonstrate parameter rending results.
Whether you must include all these parameters in actual articles is not a concern here.
-->
{|
| '''Cite web''': || {{cite web |url=http://blog.chron.com/techblog/2011/07/microsoft-envisions-a-universal-os-but-it-might-not-be-called-windows/ |title=Microsoft envisions a universal OS, but it might not be called Windows |last=Silverman |first=Dwight |date=July 15, 2011 |work=Houston Chronicle |publisher=Hearst Corporation |access-date=May 26, 2015}}
|-
| '''Cite news''': || {{cite news |url=http://blog.chron.com/techblog/2011/07/microsoft-envisions-a-universal-os-but-it-might-not-be-called-windows/ |title=Microsoft envisions a universal OS, but it might not be called Windows |last=Silverman |first=Dwight |date=July 15, 2011 |work=Houston Chronicle|publisher=Hearst Corporation |access-date=May 26, 2015}}
|}
==Examples==
; A news article with a credited author
: <code><nowiki>{{cite news |last=Wolford |first=Ben |date=2013-10-16 |title=Citrus Canker Lawsuit Headed Back to Trial |url=http://www.sun-sentinel.com/news/palm-beach/fl-citrus-canker-ruling-20131016,0,7602285.story |work=South Florida Sun-Sentinel |access-date=2013-10-17}}</nowiki></code>
: Displays as:
* {{cite news |last=Wolford |first=Ben |date=2013-10-16 |title=Citrus Canker Lawsuit Headed Back to Trial |url=http://www.sun-sentinel.com/news/palm-beach/fl-citrus-canker-ruling-20131016,0,7602285.story |work=South Florida Sun-Sentinel |access-date=2013-10-17}}
; A news article released by a news agency and having no credited author
: <code><nowiki>{{cite news |author=<!--not stated--> |title=Bellingham Police Arrest WWU Student in Melee |url=http://blogs.seattletimes.com/today/2013/10/bellingham-police-arrest-wwu-student-in-melee/ |work=The Seattle Times |agency=Associated Press |date=2013-10-17 |access-date=2013-10-17}}</nowiki></code>
: Displays as:
* {{cite news |author=<!--not stated--> |title=Bellingham Police Arrest WWU Student in Melee |url=http://blogs.seattletimes.com/today/2013/10/bellingham-police-arrest-wwu-student-in-melee/ |work=The Seattle Times |agency=Associated Press |date=2013-10-17 |access-date=2013-10-17}}
; A news article that has been archived
: <code><nowiki>{{cite news |last=Pank |first=Philip |date=2013-10-18 |title=Families Accuse Network Rail of Cover-Up |url=http://www.thetimes.co.uk/tto/business/industries/transport/article3897709.ece |url-status=dead |work=The Times |location=London |archive-url=https://www.webcitation.org/6KS5scqfE |archive-date=2013-10-18 |access-date=2013-10-18}}</nowiki></code>
: Displays as:
* {{cite news |last=Pank |first=Philip |date=2013-10-18 |title=Families Accuse Network Rail of Cover-Up |url=http://www.thetimes.co.uk/tto/business/industries/transport/article3897709.ece |url-status=dead |work=The Times |location=London |archive-url=https://www.webcitation.org/6KS5scqfE |archive-date=2013-10-18 |access-date=2013-10-18}}
; A news article written in a foreign language
: <code><nowiki>{{cite news |last=Bourmaud |first=François-Xavier |date=2013-10-17 |title=Hollande dans le bourbier de l'affaire Leonarda |trans-title=Hollande in the quagmire of the Leonarda case |url=http://www.lefigaro.fr/politique/2013/10/17/01002-20131017ARTFIG00575-hollande-dans-le-bourbier-de-l-affaire-leonarda.php |language=French |work=Le Figaro |location=Paris |access-date=2013-10-17}}</nowiki></code>
: Displays as:
* {{cite news |last=Bourmaud |first=François-Xavier |date=2013-10-17 |title=Hollande dans le Bourbier de L'affaire Leonarda |trans-title=Holland in the Quagmire of the Leonarda Case |url=http://www.lefigaro.fr/politique/2013/10/17/01002-20131017ARTFIG00575-hollande-dans-le-bourbier-de-l-affaire-leonarda.php |language=French |work=Le Figaro |location=Paris |access-date=2013-10-17}}
; A clipped and archived news article that you quote, found on an information aggregation service requiring a subscription
: <code><nowiki>{{cite news |url=https://www.newspapers.com/clip/30201172/daily_news/ |title=Czechs honor Yuri |date=30 April 1961 |newspaper=Daily News|access-date=2 April 2019|archive-url=https://web.archive.org/web/20190402233429/https://www.newspapers.com/clip/30201172/daily_news/|archive-date=2 April 2019|url-status=live |agency=Reuters |location=New York |page=35 |via=Newspapers.com |quote=Czech President [[Antonin Novotny]] today made visiting Soviet spaceman Yuri Gagarin a 'Hero of Socialist Labor'.}}</nowiki></code>
: Displays as:
* {{cite news |url=https://www.newspapers.com/clip/30201172/daily_news/ |title=Czechs honor Yuri |date=30 April 1961 |newspaper=Daily News|access-date=2 April 2019|archive-url=https://web.archive.org/web/20190402233429/https://www.newspapers.com/clip/30201172/daily_news/|archive-date=2 April 2019|url-status=live |agency=Reuters |location=New York |page=35 |via=Newspapers.com |quote=Czech President [[Antonin Novotny]] today made visiting Soviet spaceman Yuri Gagarin a 'Hero of Socialist Labor'.}}
==Parameters==
===Syntax===
{{csdoc|syntax}}
{{csdoc|sep_period}}
===COinS===
{{csdoc|coins}}
===What's new===
{{csdoc|whats new}}
===Deprecated===
{{csdoc|deprecated}}
===Description===
====Authors====
{{csdoc|author|others=yes}}
====Title====
{{csdoc|title|title_format=work}}
{{csdoc|language}}
====Periodical (work, newspaper, website)====
{{csdoc|journal|department=yes}}
====Publisher====
{{csdoc|publisher}}
{{csdoc|agency}}
====Date====
{{csdoc|date}}
====Edition, volume====
{{csdoc|edition}}
{{csdoc|volume}}
====In-source locations====
{{csdoc|pages}}
===={{Anchor|url}}URL====
{{csdoc|url}}
====Anchor====
{{csdoc|ref}}
====Identifiers====
{{csdoc|id1}}
{{csdoc|id2}}
====Quote====
{{csdoc|quote}}
====Editors====
{{csdoc|editor}}
====Lay summary====
{{csdoc|lay}}
====Display options====
{{csdoc|display}}
====Subscription or registration required====
{{csdoc|registration}}
==TemplateData==
{{TemplateData header}}
{{#invoke:cs1 documentation support|template_data_validate|{{ROOTPAGENAME}}}}
<templatedata>
{
"description": "This template formats a citation to a news article in print, video, audio or web using the provided source information (e.g. author, publication, date) and various formatting options.",
"params": {
"url": {
"label": "URL",
"description": "The URL of the online location where the text of the publication can be found. Requires schemes of the type \"http://...\" or maybe even the protocol relative scheme \"//...\"",
"type": "url",
"suggested": true,
"aliases": [
"URL"
],
"example": "https://www.nytimes.com/..."
},
"title": {
"label": "Source title",
"description": "The title of the article as it appears in the source; displays in quotes",
"type": "string",
"required": true
},
"last": {
"label": "Last name",
"description": "The surname of the author; don't wikilink, use 'author-link'.",
"aliases": [
"last1",
"author",
"author1",
"authors"
],
"suggested": true,
"type": "line"
},
"first": {
"label": "First name",
"description": "Given or first name, middle names, or initials of the author; don't wikilink, use 'author-link'.",
"aliases": [
"first1"
],
"suggested": true,
"type": "line"
},
"date": {
"label": "Source date",
"description": "Full date of the source; do not wikilink",
"type": "date",
"suggested": true
},
"publisher": {
"label": "Publisher",
"description": "Name of the parent institution or company that publishes the newspaper, magazine, or periodical; displays after name of the publication",
"type": "string",
"aliases": [
"institution"
],
"example": "[[Gannett]]"
},
"last2": {
"label": "Last name 2",
"description": "The surname of the second author; don't wikilink, use 'author-link2'.",
"aliases": [
"author2"
]
},
"first2": {
"label": "First name 2",
"description": "Given or first name, middle names, or initials of the second author; don't wikilink."
},
"others": {
"label": "Others",
"description": "Used to record other contributions to the work, such as 'Illustrated by John Smith' or 'Translated by John Smith'",
"type": "string"
},
"year": {
"label": "Year of publication",
"description": "Year of the source being referenced; use 'date' instead, if month and day are also known",
"type": "string"
},
"editor-last": {
"label": "Editor last name",
"description": "The surname of the editor; don't wikilink, use 'editor-link'; can suffix with a numeral to add additional editors; alias of 'editor1-last', 'editor', and 'editors'",
"aliases": [
"editor-last1",
"editor1-last",
"editor-surname",
"editor-surname1",
"editor1-surname",
"editor",
"editor1"
]
},
"editor-first": {
"label": "Editor first name",
"description": "Given or first name, middle names, or initials of the editor; don't wikilink, use 'editor-link'; can suffix with a numeral to add additional editors; alias of 'editor1-first'",
"aliases": [
"editor-first1",
"editor1-first",
"editor-given",
"editor-given1",
"editor1-given"
]
},
"editor-link": {
"label": "Editor link",
"description": "Title of existing Wikipedia article about the editor; can suffix with a numeral to add additional editors; alias of 'editor1-link'",
"type": "wiki-page-name",
"aliases": [
"editor-link1"
]
},
"issue": {
"label": "Issue",
"description": "Issue identifier when the source is part of a series that is published periodically. Usually a number. Do not prepend with no. ",
"type": "line",
"aliases": [
"number"
],
"example": "4"
},
"department": {
"label": "Department",
"description": "Department within the periodical",
"type": "string"
},
"location": {
"label": "Location of publication",
"description": "Geographical place of publication; usually not wikilinked; omit when the publication name includes place; alias of 'place'",
"type": "string",
"aliases": [
"place"
]
},
"publication-place": {
"label": "Place of publication",
"description": "Publication place shows after title; if 'place' or 'location' are also given, they are displayed before the title prefixed with 'written at'",
"type": "string"
},
"publication-date": {
"label": "Publication date",
"description": "Date of publication when different from the date the work was written; do not wikilink",
"type": "date",
"autovalue": ""
},
"agency": {
"label": "Agency",
"description": "The news agency (wire service) that provided the content; examples: Associated Press, Reuters, Agence France-Presse",
"type": "string"
},
"edition": {
"label": "Edition",
"description": "When the publication has more than one edition; for example: '2nd', 'Revised' etc.; suffixed with ' ed.'",
"type": "string"
},
"volume": {
"label": "Volume",
"description": "For one publication published in several volumes. Usually a number. Do not prepend with vol. or v. ",
"type": "string",
"example": "3"
},
"page": {
"label": "Page",
"description": "Page in the source that supports the content; displays after 'p.'",
"type": "string"
},
"pages": {
"label": "Pages",
"description": "Pages in the source that support the content (not an indication of the number of pages in the source); displays after 'pp.'",
"type": "string",
"example": "2–3",
"suggested": true
},
"no-pp": {
"label": "No pp",
"description": "Set to 'y' to suppress the 'p.' or 'pp.' display with 'page' or 'pages' when inappropriate (such as 'Front cover')",
"type": "boolean",
"autovalue": "y"
},
"at": {
"label": "At",
"description": "May be used instead of 'page' or 'pages' where a page number is inappropriate or insufficient",
"type": "string"
},
"language": {
"label": "Language",
"description": "The language in which the source is written, if not English; use the full language name; do not use icons or templates",
"type": "string"
},
"script-title": {
"label": "Script title",
"description": "For titles in languages that do not use a Latin-based alphabet (Arabic, Chinese, Cyrillic, Greek, Hebrew, Japanese, Korean, Vietnamese, etc). Prefix with two-character ISO639-1 language code followed by a colon. For Japanese use: |script-title=ja:...",
"type": "string"
},
"trans-title": {
"label": "Translated title",
"description": "An English language title, if the source cited is in a foreign language; 'language' is recommended",
"type": "string"
},
"type": {
"label": "Type",
"description": "Additional information about the media type of the source; format in sentence case",
"type": "string"
},
"format": {
"label": "Format",
"description": "Format of the work referred to by 'url'; examples: PDF, DOC, XLS; do not specify HTML",
"type": "string"
},
"arxiv": {
"label": "arXiv identifier",
"description": "An identifier for arXive electronic preprints of scientific papers",
"type": "string"
},
"asin": {
"label": "ASIN",
"description": "Amazon Standard Identification Number; 10 characters",
"type": "string"
},
"asin-tld": {
"label": "ASIN TLD",
"description": "ASIN top-level domain for Amazon sites other than the US",
"type": "string"
},
"bibcode": {
"label": "Bibcode",
"description": "Bibliographic Reference Code (REFCODE); 19 characters",
"type": "string"
},
"doi": {
"label": "DOI",
"description": "Digital Object Identifier; begins with '10.'",
"type": "string"
},
"doi-broken-date": {
"label": "DOI broken date",
"description": "The date that the DOI was determined to be broken",
"type": "date"
},
"isbn": {
"label": "ISBN",
"description": "International Standard Book Number; use the 13-digit ISBN where possible",
"type": "string",
"aliases": [
"ISBN"
]
},
"issn": {
"label": "ISSN",
"description": "International Standard Serial Number; 8 characters; may be split into two groups of four using a hyphen",
"type": "string",
"aliases": [
"ISSN"
]
},
"jfm": {
"label": "jfm code",
"description": "Jahrbuch über die Fortschritte der Mathematik classification code",
"type": "string"
},
"jstor": {
"label": "JSTOR",
"description": "JSTOR identifier",
"type": "string"
},
"lccn": {
"label": "LCCN",
"description": "Library of Congress Control Number",
"type": "string"
},
"mr": {
"label": "MR",
"description": "Mathematical Reviews identifier",
"type": "string"
},
"oclc": {
"label": "OCLC",
"description": "Online Computer Library Center number",
"type": "string"
},
"ol": {
"label": "OL",
"description": "Open Library identifier",
"type": "string"
},
"osti": {
"label": "OSTI",
"description": "Office of Scientific and Technical Information identifier",
"type": "string"
},
"pmc": {
"label": "PMC",
"description": "PubMed Center article number",
"type": "string"
},
"pmid": {
"label": "PMID",
"description": "PubMed Unique Identifier",
"type": "string"
},
"rfc": {
"label": "RFC",
"description": "Request for Comments number",
"type": "string"
},
"ssrn": {
"label": "SSRN",
"description": "Social Science Research Network",
"type": "string"
},
"zbl": {
"label": "Zbl",
"description": "Zentralblatt MATH journal identifier",
"type": "string"
},
"id": {
"label": "id",
"description": "A unique identifier used where none of the specialized ones are applicable",
"type": "string"
},
"quote": {
"label": "Quote",
"description": "Relevant text quoted from the source; displays last, enclosed in quotes; needs to include terminating punctuation",
"type": "string"
},
"ref": {
"label": "Ref",
"description": "An anchor identifier; can be made the target of wikilinks to full references; special value 'harv' generates an anchor suitable for the harv and sfn templates",
"type": "string"
},
"postscript": {
"label": "Postscript",
"description": "The closing punctuation for the citation; ignored if 'quote' is defined; to suppress use reserved keyword 'none'",
"type": "string",
"default": "."
},
"last3": {
"label": "Last name 3",
"description": "The surname of the third author; don't wikilink, use 'author-link3'.",
"aliases": [
"author3"
]
},
"first3": {
"label": "First name 3",
"description": "Given or first name, middle names, or initials of the third author; don't wikilink."
},
"last4": {
"label": "Last name 4",
"description": "The surname of the fourth author; don't wikilink, use 'author-link4'.",
"aliases": [
"author4"
]
},
"first4": {
"label": "First name 4",
"description": "Given or first name, middle names, or initials of the fourth author; don't wikilink."
},
"last5": {
"label": "Last name 5",
"description": "The surname of the fifth author; don't wikilink, use 'author-link5'.",
"aliases": [
"author5"
]
},
"first5": {
"label": "First name 5",
"description": "Given or first name, middle names, or initials of the fifth author; don't wikilink."
},
"last6": {
"label": "Last name 6",
"description": "The surname of the sixth author; don't wikilink, use 'author-link6'.",
"aliases": [
"author6"
]
},
"first6": {
"label": "First name 6",
"description": "Given or first name, middle names, or initials of the sixth author; don't wikilink."
},
"last7": {
"label": "Last name 7",
"description": "The surname of the seventh author; don't wikilink, use 'author-link7'.",
"aliases": [
"author7"
]
},
"first7": {
"label": "First name 7",
"description": "Given or first name, middle names, or initials of the seventh author; don't wikilink."
},
"last8": {
"label": "Last name 8",
"description": "The surname of the eighth author; don't wikilink, use 'author-link8'.",
"aliases": [
"author8"
]
},
"first8": {
"label": "First name 8",
"description": "Given or first name, middle names, or initials of the eighth author; don't wikilink."
},
"last9": {
"label": "Last name 9",
"description": "The surname of the ninth author; don't wikilink, use 'author-link9'. If nine authors are defined, then only eight will show and 'et al.' will show in place of the last author.",
"aliases": [
"author9"
]
},
"first9": {
"label": "First name 9",
"description": "Given or first name, middle names, or initials of the ninth author; don't wikilink."
},
"author-mask": {
"label": "Author mask",
"description": "Replaces the name of the first author with em dashes or text; set to a numeric value 'n' to set the dash 'n' em spaces wide; set to a text value to display the text without a trailing author separator; for example, 'with' instead",
"type": "string"
},
"display-authors": {
"label": "Display authors",
"description": "number of authors to display before 'et al.' is used;",
"type": "number"
},
"author-link": {
"label": "Author link",
"description": "Title of existing Wikipedia article about the author; can suffix with a numeral to add additional authors",
"type": "wiki-page-name",
"aliases": [
"author-link1",
"author1-link"
]
},
"author-link2": {
"label": "Author link 2",
"description": "Title of existing Wikipedia article about the second author. (Up to nine authors can be listed, 3-9 are toward the end of the parameter list)",
"type": "wiki-page-name",
"aliases": [
"author2-link"
]
},
"archive-url": {
"label": "Archive URL",
"description": "The URL of an archived copy of a web page, if or in case the URL becomes unavailable; requires 'archive-date'",
"type": "string"
},
"archive-date": {
"label": "Archive date",
"description": "Date when the original URL was archived; do not wikilink",
"type": "string"
},
"author-link3": {
"label": "Author link 3",
"description": "Title of existing Wikipedia article about the third author.",
"type": "wiki-page-name",
"aliases": [
"author3-link"
]
},
"author-link4": {
"label": "Author link 4",
"description": "Title of existing Wikipedia article about the fourth author.",
"type": "wiki-page-name",
"aliases": [
"author4-link"
]
},
"author-link5": {
"label": "Author link 5",
"description": "Title of existing Wikipedia article about the fifth author.",
"type": "wiki-page-name",
"aliases": [
"author5-link"
]
},
"author-link6": {
"label": "Author link 6",
"description": "Title of existing Wikipedia article about the sixth author.",
"type": "wiki-page-name",
"aliases": [
"author6-link"
]
},
"author-link7": {
"label": "Author link 7",
"description": "Title of existing Wikipedia article about the seventh author.",
"type": "wiki-page-name",
"aliases": [
"author7-link"
]
},
"author-link8": {
"label": "Author link 8",
"description": "Title of existing Wikipedia article about the eighth author.",
"type": "wiki-page-name",
"aliases": [
"author8-link"
]
},
"author-link9": {
"label": "Author link 9",
"description": "Title of existing Wikipedia article about the ninth author.",
"type": "wiki-page-name",
"aliases": [
"author9-link"
]
},
"name-list-style": {
"label": "Name list style",
"description": "Set to 'amp' or 'and' to change the separator between the last two names of the name list to ' & ' or ' and ', respectively. Set to 'vanc' to display name lists in Vancouver style.",
"type": "string"
},
"access-date": {
"label": "URL access date",
"description": "The full date when the original URL was accessed; do not wikilink",
"type": "date",
"suggested": true
},
"orig-date": {
"label": "Original date",
"description": "Original date of publication; provide specifics",
"type": "string"
},
"via": {
"label": "via",
"description": "Identify the aggregator of the resource that provided the digital version (usually a database provider), when it differs from the publisher (e.g., for The Wikipedia Library)",
"example": "[[EBSCOHost]], [[Proquest]], [[Newspapers.com]]",
"type": "string"
},
"url-access": {
"label": "URL access level",
"description": "Classification of the access restrictions on the URL ('registration', 'subscription' or 'limited')",
"type": "string",
"suggestedvalues": [
"registration",
"subscription",
"limited"
]
},
"bibcode-access": {
"label": "Bibcode access level",
"description": "If the full text is available from ADS via this Bibcode, type 'free'.",
"type": "string",
"suggestedvalues": [
"free"
]
},
"doi-access": {
"label": "DOI access level",
"description": "If the full text is free to read via the DOI, type 'free'.",
"type": "string",
"suggestedvalues": [
"free"
]
},
"hdl-access": {
"label": "HDL access level",
"description": "If the full text is free to read via the HDL, type 'free'.",
"type": "string",
"suggestedvalues": [
"free"
]
},
"jstor-access": {
"label": "Jstor access level",
"description": "If the full text is free to read on Jstor, type 'free'.",
"type": "string",
"suggestedvalues": [
"free"
]
},
"ol-access": {
"label": "OpenLibrary access level",
"description": "If the full text is free to read on OpenLibrary, type 'free'.",
"type": "string",
"suggestedvalues": [
"free"
]
},
"osti-access": {
"label": "OSTI access level",
"description": "If the full text is free to read on OSTI, type 'free'.",
"type": "string",
"suggestedvalues": [
"free"
]
},
"url-status": {
"label": "URL status",
"description": "If set to 'live', the title display is adjusted; useful for when the URL is archived preemptively but still live. Set to \"dead\" or 'usurped' for broken links. Entering 'unfit' or 'usurped' makes the original link not appear at all.",
"example": "'dead' or 'live'",
"default": "'dead' if an Archive URL is entered",
"type": "string",
"suggestedvalues": [
"dead",
"live",
"usurped",
"unfit"
]
},
"work": {
"aliases": [
"journal",
"magazine",
"periodical",
"newspaper",
"website"
],
"label": "Name of publication",
"description": "Name of the newspaper, magazine or periodical; displays after title",
"example": "[[The Wall Street Journal]]",
"type": "string",
"suggested": true
}
},
"maps": {
"proveit": {
"main": "title",
"textarea": [
"quote"
]
},
"citoid": {
"title": "title",
"url": "url",
"publisher": "publisher",
"publicationTitle": "work",
"date": "date",
"accessDate": "access-date",
"location": "location",
"ISSN": [
"issn"
],
"ISBN": [
"isbn"
],
"PMCID": "pmc",
"PMID": "pmid",
"pages": "pages",
"volume": "volume",
"issue": "issue",
"DOI": "doi",
"oclc": "oclc",
"language": "language",
"contributor": "others",
"author": [
[
"first",
"last"
],
[
"first2",
"last2"
],
[
"first3",
"last3"
],
[
"first4",
"last4"
],
[
"first5",
"last5"
],
[
"first6",
"last6"
],
[
"first7",
"last7"
],
[
"first8",
"last8"
],
[
"first9",
"last9"
]
],
"editor": [
[
"editor-first",
"editor-last"
]
]
}
},
"format": "{{_ |_=_}}",
"paramOrder": [
"last",
"first",
"author-link",
"last2",
"first2",
"author-link2",
"last3",
"first3",
"author-link3",
"last4",
"first4",
"author-link4",
"last5",
"first5",
"author-link5",
"last6",
"first6",
"author-link6",
"last7",
"first7",
"author-link7",
"last8",
"first8",
"author-link8",
"last9",
"first9",
"author-link9",
"display-authors",
"author-mask",
"name-list-style",
"others",
"date",
"year",
"orig-date",
"title",
"script-title",
"language",
"trans-title",
"edition",
"volume",
"page",
"pages",
"no-pp",
"at",
"work",
"publisher",
"agency",
"issue",
"department",
"location",
"publication-place",
"publication-date",
"editor-last",
"editor-first",
"editor-link",
"type",
"format",
"url",
"url-status",
"url-access",
"access-date",
"archive-url",
"archive-date",
"arxiv",
"asin",
"asin-tld",
"bibcode",
"doi",
"doi-broken-date",
"isbn",
"issn",
"jfm",
"jstor",
"lccn",
"mr",
"oclc",
"ol",
"osti",
"pmc",
"pmid",
"rfc",
"ssrn",
"zbl",
"id",
"quote",
"ref",
"postscript",
"via",
"bibcode-access",
"doi-access",
"hdl-access",
"jstor-access",
"ol-access",
"osti-access"
]
}
</templatedata>
==See also==
{{Citation Style 1}}
{{Wikipedia referencing}}
{{UF-COinS}}
<includeonly>{{Sandbox other||
[[Category:Citation Style 1 templates|N]]
}}</includeonly>
1ogm4s4ul3ghsaiwvkcx6zs1zha8qf9
Ta̱mpi̱let:Cite journal
10
1801
15562
2022-08-07T19:25:28Z
Kambai Akau
15
Created page with "<includeonly>{{#invoke:Citation/CS1|citation |CitationClass=journal }}</includeonly><noinclude> {{documentation}} </noinclude>"
wikitext
text/x-wiki
<includeonly>{{#invoke:Citation/CS1|citation
|CitationClass=journal
}}</includeonly><noinclude>
{{documentation}}
</noinclude>
9fcytsszanq7xbwi3p28zsneear9938
Ta̱mpi̱let:Cite journal/doc
10
1802
15563
2022-08-07T19:26:36Z
Kambai Akau
15
Created page with "<noinclude>{{pp-template}}{{pp-move-indef}}</noinclude> {{Documentation subpage}} {{High-use}} {{csdoc|lua|lua=yes}} {{csdoc|cs1|lua=yes}} {{csdoc|lead|academic and scientific papers published in bona fide journals. For articles in magazines and newsletters, use {{tlx|cite magazine}}. For academic and scientific papers not published in bona fide journals, please use one of the templates listed on this page in the "Citation Style 1 templates" box. If you have a digital..."
wikitext
text/x-wiki
<noinclude>{{pp-template}}{{pp-move-indef}}</noinclude>
{{Documentation subpage}}
{{High-use}}
{{csdoc|lua|lua=yes}}
{{csdoc|cs1|lua=yes}}
{{csdoc|lead|academic and scientific papers published in bona fide journals. For articles in magazines and newsletters, use {{tlx|cite magazine}}. For academic and scientific papers not published in bona fide journals, please use one of the templates listed on this page in the "Citation Style 1 templates" box. If you have a [[digital object identifier]] (DOI) for the journal reference you wish to add, Wikipedia has a citation bot that will read that DOI and expand it into a full reference with the author's name, journal name, date, volume, issue, pages, etc. You can view instructions on how to add this gadget to your Wikipedia preferences at [[User:Citation bot/use]]|lua=yes}}
==Usage==
{{csdoc|usage}}
{{csdoc|usage common}}
; To cite a professional or scientific journal
: <syntaxhighlight lang="text" inline>{{cite journal |last1= |first1= |last2= |first2= |date= |title= |url= |journal= |volume= |issue= |pages= |doi= |access-date=}}</syntaxhighlight>
; [[Vancouver system]] author style for a scientific journal
: <syntaxhighlight lang="text" inline>{{cite journal |vauthors= |date= |title= |url= |journal= |volume= |issue= |pages= |doi= |pmc= |pmid= |access-date=}}</syntaxhighlight>
: or
: <syntaxhighlight lang="text" inline>{{cite journal |last1= |first1= |last2= |first2= |date= |title= |url= |journal= |volume= |issue= |pages= |doi= |pmc= |pmid= |access-date= |name-list-style=vanc}}</syntaxhighlight>
; To cite a journal article with no credited author
: <syntaxhighlight lang="html" inline>{{cite journal |author=<!--Staff writer(s); no by-line.--> |date= |title= |url= |journal= |volume= |issue= |pages= |doi= |access-date=}}</syntaxhighlight>
;To cite an online article that has been archived
:<syntaxhighlight lang="text" inline>{{cite journal |last= |first= |date= |title= |url= |journal= |volume= |issue= |pages= |doi= |access-date= |url-status= |archive-url= |archive-date=}}</syntaxhighlight>
;To cite an article written in a foreign language
:<syntaxhighlight lang="text" inline>{{cite journal |last= |first= |date= |title= |trans-title= |url= |language= |journal= |volume= |issue= |pages= |doi= |access-date=}}</syntaxhighlight>
;To cite and quote an archived, two-author, foreign language journal article re-published as a PDF on an information aggregation service requiring a subscription
:<syntaxhighlight lang="text" inline>{{cite journal |last1= |first1= |last2= |first2= |date= |title= |trans-title= |url= |format= |language= |journal= |volume= |issue= |pages= |doi= |via= |url-access= |access-date= |url-status= |archive-url= |archive-date= |quote=}}</syntaxhighlight>
{{end}}
{{anchor|full horizontal}}{{csdoc|usage full}}
:<syntaxhighlight lang="text" inline>{{cite journal |last1= |first1= |author-link1= |last2= |first2= |author-link2= |last3= |first3= |author-link3= |last4= |first4= |author-link4= |last5= |first5= |author-link5= |display-authors= |author-mask= |name-list-style= |date= |year= |orig-date= |editor1-last= |editor1-first= |editor1-link= |editor2-last= |editor2-first= |editor2-link= |editor3-last= |editor3-first= |editor3-link= |editor4-last= |editor4-first= |editor4-link= |editor5-last= |editor5-first= |editor5-link= |display-editors= |others= |title= |script-title= |trans-title= |url= |format= |department= |journal= |type= |series= |language= |edition= |location= |publisher= |publication-place= |publication-date= |volume= |issue= |page= |pages= |at= |no-pp= |arxiv= |asin= |bibcode= |bibcode-access= |biorxiv= |citeseerx= |doi= |doi-access= |doi-broken-date= |isbn= |issn= |jfm= |jstor= |jstor-access= |lccn= |mr= |oclc= |ol= |ol-access= |osti= |osti-access= |pmc= |pmid= |rfc= |ssrn= |zbl= |id= |via= |url-access= |access-date= |url-status= |archive-url= |archive-date= |quote= |postscript= |ref=}}</syntaxhighlight>
{{end}}
{{csdoc|usage vertical common}}
'''To cite a professional or scientific journal'''
<pre style="margin:0px; border:none;">
{{cite journal
| last1 =
| first1 =
| last2 =
| first2 =
| date =
| title =
| url =
| journal =
| volume =
| issue =
| pages =
| doi =
| access-date =
}}
</pre>
'''[[Vancouver system]] author style for a scientific journal'''
<pre style="margin:0px; border:none;">
{{cite journal
| vauthors =
| date =
| title =
| url =
| journal =
| volume =
| issue =
| pages =
| doi =
| pmc =
| pmid =
| access-date =
}}
</pre>
or
<pre style="margin:0px; border:none;">
{{cite journal
| last1 =
| first1 =
| last2 =
| first2 =
| date =
| title =
| url =
| journal =
| volume =
| issue =
| pages =
| doi =
| pmc =
| pmid =
| access-date =
| name-list-style = vanc
}}
</pre>
'''To cite a journal article with no credited author'''
<syntaxhighlight lang="html" style="margin:0px; border:none;" highlight="2">
{{cite journal
| author = <!--Staff writer(s); no by-line.-->
| date =
| title =
| url =
| journal =
| volume =
| issue =
| pages =
| doi =
| access-date =
}}
</syntaxhighlight >
'''To cite an online article that has been archived'''
<pre style="margin:0px; border:none;">
{{cite journal
| last =
| first =
| date =
| title =
| url =
| journal =
| volume =
| issue =
| pages =
| doi =
| access-date =
| url-status =
| archive-url =
| archive-date=
}}
</pre>
'''To cite a journal article written in a foreign language'''
<pre style="margin:0px; border:none;">
{{cite journal
| last =
| first =
| date =
| title =
| trans-title =
| url =
| language =
| journal =
| volume =
| issue =
| pages =
| doi =
| access-date =
}}
</pre>
'''To cite and quote an archived, two-author, foreign language journal article re-published as a PDF on an information aggregation service requiring a subscription'''
<pre style="margin:0px; border:none;">
{{cite journal
| last1 =
| first1 =
| last2 =
| first2 =
| date =
| title =
| trans-title =
| url =
| format =
| language =
| journal =
| volume =
| issue =
| pages =
| doi =
| via =
| url-access =
| access-date =
| url-status =
| archive-url =
| archive-date =
| quote =
}}
</pre>
{{end}}
{{anchor|full vertical}}{{csdoc|usage vertical}}
<pre style="margin:0px; border:none;">
{{cite journal
| last1 =
| first1 =
| author-link1 =
| last2 =
| first2 =
| author-link2 =
| last3 =
| first3 =
| author-link3 =
| last4 =
| first4 =
| author-link4 =
| last5 =
| first5 =
| author-link5 =
| display-authors =
| author-mask =
| name-list-style =
| date =
| year =
| orig-date =
| editor1-last =
| editor1-first =
| editor1-link =
| editor2-last =
| editor2-first =
| editor2-link =
| editor3-last =
| editor3-first =
| editor3-link =
| editor4-last =
| editor4-first =
| editor4-link =
| editor5-last =
| editor5-first =
| editor5-link =
| display-editors =
| others =
| title =
| script-title =
| trans-title =
| url =
| format =
| department =
| journal =
| type =
| series =
| language =
| edition =
| location =
| publisher =
| publication-place =
| publication-date =
| volume =
| issue =
| page =
| pages =
| at =
| no-pp =
| arxiv =
| asin =
| bibcode =
| biorxiv =
| citeseerx =
| doi =
| doi-broken-date =
| doi-access =
| isbn =
| issn =
| jfm =
| jstor =
| jstor-access =
| lccn =
| mr =
| oclc =
| ol =
| ol-access =
| osti =
| osti-access =
| pmc =
| pmid =
| rfc =
| ssrn =
| zbl =
| id =
| via =
| registration =
| subscription =
| quote =
| postscript =
| ref =
| url-access =
| access-date =
| url-status =
| archive-url =
| archive-date =
}}
</pre>
{{csdoc|usage vertical mid}}
<pre style="margin:0px; border:none;">
last1
last1
last2
last2
last3
last3
last4
last4
last5
editor1-last
editor1-last
editor2-last
editor2-last
editor3-last
editor3-last
editor4-last
editor4-last
editor5-last
title or script-title
doi
doi
jstor
ol
osti
url
url
url
url
archive-url
</pre>
{{csdoc|usage vertical mid}}
<pre style="margin:0px; border:none;">
</pre>
{{csdoc|usage vertical end}}
==Examples==
;Journal article
*<code><nowiki>{{cite journal |last1=Overpeck |first1=J. T. |last2=Webb |first2=T. |last3=Prentice |first3=I. C. |date=January 1985 |title=Quantitative interpretation of fossil pollen spectra: Dissimilarity coefficients and the method of modern analogs |journal=Quaternary Research |volume=23 |pages=87–108 |bibcode=1985QuRes..23...87O |doi=10.1016/0033-5894(85)90074-2}}</nowiki></code>
Displays as:
* {{cite journal |last1=Overpeck |first1=J. T. |last2=Webb |first2=T. |last3=Prentice |first3=I. C. |date=January 1985 |title=Quantitative interpretation of fossil pollen spectra: Dissimilarity coefficients and the method of modern analogs |journal=Quaternary Research |volume=23 |pages=87–108 |doi=10.1016/0033-5894(85)90074-2|bibcode=1985QuRes..23...87O}}
;Vancouver style (common in biomedicine); see {{vcite}} for specific templates
*<code><nowiki>{{cite journal |vauthors=Bannen R, Suresh V, Phillips GN Jr, Wright S, Mitchell J |date=2008 |title=Optimal design of thermally stable proteins |url=https://academic.oup.com/bioinformatics/article/24/20/2339/260340 |journal=Bioinformatics |volume=24 |issue=20 |pages=2339–2343 |doi=10.1093/bioinformatics/btn450 |pmc=2562006 |pmid=18723523}}</nowiki></code>
Displays as:
*{{cite journal |vauthors=Bannen R, Suresh V, Phillips GN Jr, Wright S, Mitchell J |date=2008 |title=Optimal design of thermally stable proteins |url=https://academic.oup.com/bioinformatics/article/24/20/2339/260340 |journal=Bioinformatics |volume=24 |issue=20 |pages=2339–2343 |doi=10.1093/bioinformatics/btn450 |pmc=2562006 |pmid=18723523}}
or
*<code><nowiki>{{cite journal |last1=Bannen |first1=RM |last2=Suresh |first2=V |last3=Phillips |first3=GN Jr |last4=Wright |first4=SJ |last5=Mitchell |first5=JC |date=2008 |title=Optimal design of thermally stable proteins |url=https://academic.oup.com/bioinformatics/article/24/20/2339/260340 |journal=Bioinformatics |volume=24 |issue=20 |pages=2339–2343 |doi=10.1093/bioinformatics/btn450 |pmc=2562006 |pmid=18723523 |name-list-style=vanc}}</nowiki></code>
Displays as:
* {{cite journal |last1=Bannen |first1=RM |last2=Suresh |first2=V |last3=Phillips |first3=GN Jr |last4=Wright |first4=SJ |last5=Mitchell |first5=JC |date=2008 |title=Optimal design of thermally stable proteins |url=https://academic.oup.com/bioinformatics/article/24/20/2339/260340 |journal=Bioinformatics |volume=24 |issue=20 |pages=2339–2343 |doi=10.1093/bioinformatics/btn450 |pmc=2562006 |pmid=18723523 |name-list-style=vanc}}
;Include URL link to article, pre-print, or abstract.
*<code><nowiki>{{cite journal |last1=Aries |first1=Myriam B. C. |last2=Newsham |first2=Guy R. |name-list-style=amp |date=2008 |title=Effect of daylight saving time on lighting energy use: a literature review |url=http://archive.nrc-cnrc.gc.ca/obj/irc/doc/pubs/nrcc49212/nrcc49212.pdf |journal=Energy Policy |volume=36 |issue=6 |pages=1858–1866 |doi=10.1016/j.enpol.2007.05.021 |access-date=October 18, 2013}}</nowiki></code>
Displays as:
* {{cite journal |last1=Aries |first1=Myriam B. C. |last2=Newsham |first2=Guy R. |name-list-style=amp |date=2008 |title=Effect of daylight saving time on lighting energy use: a literature review |url=http://archive.nrc-cnrc.gc.ca/obj/irc/doc/pubs/nrcc49212/nrcc49212.pdf |journal=Energy Policy |volume=36 |issue=6 |pages=1858–1866 |doi=10.1016/j.enpol.2007.05.021 |access-date=October 18, 2013}}
If the linked document is PDF, but the [[filename extension|extension]] is not .pdf or .PDF, you may add the parameter {{para|format|PDF}}, which displays " (PDF)" after the link.
;Specify the [[digital object identifier|DOI]] to provide a permanent link, and an URL where the article is free. For medical articles also give the [[PMID]] and [[PubMed Central]] (PMC) ID: the PMC value will link the free full-text repository, will link the title if the URL is not specified, and will show an open padlock informing readers that the article is open-access. {{para|access-date}} is not necessary when a permanent identifier is used.
*<code><nowiki>{{cite journal |last1=Viollet |first1=Benoît |last2=Andreelli |first2=Fabrizio |last3=Jørgensen |first3=Sebastian B. |last4=Perrin |first4=Christophe |last5=Geloen |first5=Alain |last6=Flamez |first6=Daisy |last7=Mu |first7=James |last8=Lenzner |first8=Claudia |last9=Baud |first9=Olivier |last10=Bennoun |first10=Myriam |last11=Gomas |first11=Emmanuel |last12=Nicolas |first12=Gaël |last13=Wojtaszewski |first13=Jørgen F. P. |last14=Kahn1 |first14=Axel |last15=Carling |first15=David |last16=Schuit |first16=Frans C. |last17=Birnbaum |first17=Morris J. |last18=Richter |first18=Erik A. |last19=Burcelin |first19=Rémy |last20=Vaulont |first20=Sophie |display-authors=5 |date=January 2003 |title=The AMP-activated protein kinase α2 catalytic subunit controls whole-body insulin sensitivity |url=https://www.jci.org/articles/view/16567 |journal=The Journal of Clinical Investigation |volume=111 |issue=1 |pages=91–98 |doi=10.1172/JCI16567 |pmc=151837 |pmid=12511592 |access-date=2012-11-17}}</nowiki></code>
Displays as:
* {{cite journal |last1=Viollet |first1=Benoît |last2=Andreelli |first2=Fabrizio |last3=Jørgensen |first3=Sebastian B. |last4=Perrin |first4=Christophe |last5=Geloen |first5=Alain |last6=Flamez |first6=Daisy |last7=Mu |first7=James |last8=Lenzner |first8=Claudia |last9=Baud |first9=Olivier |last10=Bennoun |first10=Myriam |last11=Gomas |first11=Emmanuel |last12=Nicolas |first12=Gaël |last13=Wojtaszewski |first13=Jørgen F. P. |last14=Kahn1 |first14=Axel |last15=Carling |first15=David |last16=Schuit |first16=Frans C. |last17=Birnbaum |first17=Morris J. |last18=Richter |first18=Erik A. |last19=Burcelin |first19=Rémy |last20=Vaulont |first20=Sophie |display-authors=5 |date=January 2003 |title=The AMP-activated protein kinase α2 catalytic subunit controls whole-body insulin sensitivity |url=https://www.jci.org/articles/view/16567 |journal=The Journal of Clinical Investigation |volume=111 |issue=1 |pages=91–98 |doi=10.1172/JCI16567 <!--|doi-access=free --> |pmc=151837 |pmid=12511592 |access-date=2012-11-17}}
Whereas if the URL had not been specified, then the title is linked to the PMC link, which is repeated:
*<code><nowiki>{{cite journal |last1=Viollet |first1=Benoît |last2=Andreelli |first2=Fabrizio |last3=Jørgensen |first3=Sebastian B. |last4=Perrin |first4=Christophe |last5=Geloen |first5=Alain |last6=Flamez |first6=Daisy |last7=Mu |first7=James |last8=Lenzner |first8=Claudia |last9=Baud |first9=Olivier |last10=Bennoun |first10=Myriam |last11=Gomas |first11=Emmanuel |last12=Nicolas |first12=Gaël |last13=Wojtaszewski |first13=Jørgen F. P. |last14=Kahn1 |first14=Axel |last15=Carling |first15=David |last16=Schuit |first16=Frans C. |last17=Birnbaum |first17=Morris J. |last18=Richter |first18=Erik A. |last19=Burcelin |first19=Rémy |last20=Vaulont |first20=Sophie |display-authors=5 |date=January 2003 |title=The AMP-activated protein kinase α2 catalytic subunit controls whole-body insulin sensitivity |journal=The Journal of Clinical Investigation |volume=111 |issue=1 |pages=91–98 |doi=10.1172/JCI16567 |pmc=151837 |pmid=12511592}}</nowiki></code>
Displays as:
* {{cite journal |last1=Viollet |first1=Benoît |last2=Andreelli |first2=Fabrizio |last3=Jørgensen |first3=Sebastian B. |last4=Perrin |first4=Christophe |last5=Geloen |first5=Alain |last6=Flamez |first6=Daisy |last7=Mu |first7=James |last8=Lenzner |first8=Claudia |last9=Baud |first9=Olivier |last10=Bennoun |first10=Myriam |last11=Gomas |first11=Emmanuel |last12=Nicolas |first12=Gaël |last13=Wojtaszewski |first13=Jørgen F. P. |last14=Kahn1 |first14=Axel |last15=Carling |first15=David |last16=Schuit |first16=Frans C. |last17=Birnbaum |first17=Morris J. |last18=Richter |first18=Erik A. |last19=Burcelin |first19=Rémy |last20=Vaulont |first20=Sophie |display-authors=5 |date=January 2003 |title=The AMP-activated protein kinase α2 catalytic subunit controls whole-body insulin sensitivity |journal=The Journal of Clinical Investigation |volume=111 |issue=1 |pages=91–98 |doi=10.1172/JCI16567 <!--|doi-access=free --> |pmc=151837 |pmid=12511592}}
If the doi link is broken, then use of '''doi-broken-date''' unlinks the doi value, indicates when the doi-problem was first noticed, and will also add the page to "CS1 maint: DOI inactive as of Mmmm YYYY" (tracking category [[:Category:CS1 maint: DOI inactive]]):
*<code><nowiki>{{cite journal |last1=Viollet |first1=Benoît |last2=Andreelli |first2=Fabrizio |last3=Jørgensen |first3=Sebastian B. |last4=Perrin |first4=Christophe |last5=Geloen |first5=Alain |last6=Flamez |first6=Daisy |last7=Mu |first7=James |last8=Lenzner |first8=Claudia |last9=Baud |first9=Olivier |last10=Bennoun |first10=Myriam |last11=Gomas |first11=Emmanuel |last12=Nicolas |first12=Gaël |last13=Wojtaszewski |first13=Jørgen F. P. |last14=Kahn1 |first14=Axel |last15=Carling |first15=David |last16=Schuit |first16=Frans C. |last17=Birnbaum |first17=Morris J. |last18=Richter |first18=Erik A. |last19=Burcelin |first19=Rémy |last20=Vaulont |first20=Sophie |display-authors=5 |date=January 2003 |title=The AMP-activated protein kinase α2 catalytic subunit controls whole-body insulin sensitivity |journal=The Journal of Clinical Investigation |volume=111 |issue=1 |pages=91–98 |doi=10.1172/JCI16567 |doi-broken-date=2021-07-01 |pmc=151837 |pmid=12511592}}</nowiki></code>
Displays as:
* {{cite journal |last1=Viollet |first1=Benoît |last2=Andreelli |first2=Fabrizio |last3=Jørgensen |first3=Sebastian B. |last4=Perrin |first4=Christophe |last5=Geloen |first5=Alain |last6=Flamez |first6=Daisy |last7=Mu |first7=James |last8=Lenzner |first8=Claudia |last9=Baud |first9=Olivier |last10=Bennoun |first10=Myriam |last11=Gomas |first11=Emmanuel |last12=Nicolas |first12=Gaël |last13=Wojtaszewski |first13=Jørgen F. P. |last14=Kahn1 |first14=Axel |last15=Carling |first15=David |last16=Schuit |first16=Frans C. |last17=Birnbaum |first17=Morris J. |last18=Richter |first18=Erik A. |last19=Burcelin |first19=Rémy |last20=Vaulont |first20=Sophie |display-authors=5 |date=January 2003 |title=The AMP-activated protein kinase α2 catalytic subunit controls whole-body insulin sensitivity |journal=The Journal of Clinical Investigation |volume=111 |issue=1 |pages=91–98 |doi=10.1172/JCI16567 |doi-broken-date=2021-07-01 |pmc=151837 |pmid=12511592 |no-tracking=yes}}
;If the article is in a foreign language, and the original title is unknown, enclose the translated title in square brackets and use {{para|title}}. Otherwise use {{para|title}} for the foreign-language title and {{para|trans-title}} for the English-language title.
*<code><nowiki>{{cite journal |last1=Huang |first1=Y. |last2=Lu |first2=J. |last3=Shen |first3=Y. |last4=Lu |first4=J. |name-list-style=amp |date=March 1999 |title=[The protective effects of total flavonoids from Lycium Barbarum L. on lipid peroxidation of liver mitochondria and red blood cell in rats] |journal=Wei Sheng Yan Jiu |language=Chinese |volume=28 |issue=2 |pages=115–116 |pmid=11938998}}</nowiki></code>
Displays as:
:{{cite journal |last1=Huang |first1=Y. |last2=Lu |first2=J. |last3=Shen |first3=Y. |last4=Lu |first4=J. |name-list-style=amp |date=March 1999 |title=[The protective effects of total flavonoids from Lycium Barbarum L. on lipid peroxidation of liver mitochondria and red blood cell in rats] |journal=Wei Sheng Yan Jiu |language=Chinese |volume=28 |issue=2 |pages=115–116 |pmid=11938998}}
;Example using other identifiers
*<code><nowiki>{{cite journal |last=Merimovich |first=C. |date=2007 |title=A power function with a fixed finite gap everywhere |journal=Journal of Symbolic Logic |volume=72 |issue=2 |pages=361–417 |doi=10.2178/jsl/1185803615 |mr=2320282}}</nowiki></code>
Displays as:
* {{cite journal |last=Merimovich |first=C. |date=2007 |title=A power function with a fixed finite gap everywhere |journal=Journal of Symbolic Logic |volume=72 |issue=2 |pages=361–417 |doi=10.2178/jsl/1185803615 |mr=2320282}}
==Parameters==
===Syntax===
{{csdoc|syntax}}
{{csdoc|sep_period}}
===COinS===
{{csdoc|coins}}
===What's new===
{{csdoc|whats new}}
===Deprecated===
{{disputed|what=documentation's representation of the various lay parameters|talkpage=Help talk:Citation Style 1/Archive 82#Lay-url|date=January 2022}}
{{csdoc|deprecated}}
===Description===
====Authors====
{{csdoc|author|others=yes}}
====Date====
{{csdoc|date}}
====Editors====
{{csdoc|editor}}
====Title====
{{csdoc|title|title_format=quotes}}
{{csdoc|type}}
{{csdoc|language}}
===={{Anchor|url}}URL====
{{csdoc|url|pmc=yes}}
====Periodical====
{{csdoc|journal|department=yes}}
====Publisher====
{{csdoc|publisher}}
====Edition, series, volume====
{{csdoc|edition}}
{{csdoc|series}}
{{csdoc|volume}}
====In-source locations====
{{csdoc|pages|work=y|journal=y}}
====Identifiers====
{{csdoc|id1}}
{{csdoc|id2}}
====Subscription or registration required====
{{csdoc|registration}}
====Lay summary====
{{disputed|what=documentation's representation of the various lay parameters|talkpage=Help talk:Citation Style 1/Archive 82#Lay-url|date=January 2022}}
{{anchor|Laysummary}}{{csdoc|lay}}
====Quote====
{{csdoc|quote}}
====Anchor====
{{csdoc|ref}}
====Display options====
{{csdoc|display}}
==Notes==
Although it may appear redundant to include multiple ids for articles, it is helpful for many editors who only have access to a certain resource. If only one ID is to be included, the DOI should be used, as this is the universal standard preferred by professional publications. Specifying a link as a DOI, PMID, etc. is always preferable to including it as a URL parameter, as it makes it clear that the link is accurate and stable, but not necessarily openly accessible. {{para|access-date}} is not necessary when a permanent identifier is used.
==TemplateData==
{{TemplateData header}}
{{#invoke:cs1 documentation support|template_data_validate|{{ROOTPAGENAME}}}}
<templatedata>
{
"description": "This template formats a citation to an article in a magazine or journal, using the provided source information (e.g. journal name, author, title, issue, URL) and various formatting options.",
"params": {
"url": {
"label": "URL",
"description": "The URL of the online location where the text of the publication can be found. Requires schemes of the type \"http://...\" or maybe even the protocol-relative scheme \"//...\"",
"type": "line",
"aliases": [
"URL"
],
"suggested": true,
"example": "https://www.nytimes.com/..."
},
"title": {
"label": "Title",
"description": "The title of the article; can be wikilinked to an existing Wikipedia article or url may be used to add an external link, but not both. Displays in quotes.",
"type": "content",
"required": true
},
"last": {
"label": "Last name",
"description": "The surname of the author; don't wikilink, use 'author-link'; can suffix with a numeral to add additional authors",
"aliases": [
"author",
"author1",
"authors",
"last1"
],
"type": "line",
"suggested": true
},
"first": {
"label": "First name",
"description": "Given or first name, middle names, or initials of the author; don't wikilink, use 'author-link'; can suffix with a numeral to add additional authors",
"aliases": [
"first1"
],
"type": "line",
"suggested": true
},
"last2": {
"label": "Last name 2",
"description": "The surname of the second author; don't wikilink, use 'author-link2'",
"aliases": [
"author2"
],
"type": "line"
},
"first2": {
"label": "First name 2",
"description": "Given or first name, middle names, or initials of the second author; don't wikilink",
"type": "line"
},
"date": {
"label": "Source date",
"description": "Date of the source; do not wikilink. As listed in the publication",
"type": "date",
"suggested": true
},
"journal": {
"label": "Journal",
"description": "Name of the source journal; may be wikilinked; displays in italics; alias of 'work'",
"type": "content",
"required": true,
"example": "[[American Journal of Sociology]]"
},
"publisher": {
"label": "Publisher",
"description": "Name of the publisher; may be wikilinked; displays after title",
"type": "content",
"example": "[[University of Chicago Press]]"
},
"issue": {
"label": "Issue",
"description": "Issue identifier when the source is part of a series that is published periodically, usually a number. Do not prepend with no.",
"type": "line",
"example": "4",
"suggested": true
},
"doi": {
"label": "DOI",
"description": "Digital Object Identifier; begins with '10.'",
"type": "string"
},
"doi-broken-date": {
"label": "DOI broken date",
"description": "The date that the DOI was determined to be broken",
"type": "date"
},
"others": {
"label": "Others",
"description": "Used to record other contributions to the work, such as 'Illustrated by John Smith' or 'Translated by John Smith'",
"type": "content"
},
"year": {
"label": "Year of publication",
"description": "Year of the source being referenced; recommended only when date parameter format is YYYY-MM-DD and a CITEREF disambiguator is needed",
"type": "number"
},
"orig-date": {
"label": "Original date",
"description": "Original date of publication; provide specifics",
"type": "number"
},
"editor-last": {
"label": "Editor last name",
"description": "The surname of the editor; don't wikilink, use 'editor-link'; can suffix with a numeral to add additional editors; alias of 'editor1-last', 'editor'",
"aliases": [
"editor1-last"
],
"type": "line"
},
"editor-first": {
"label": "Editor first name",
"description": "Given or first name, middle names, or initials of the editor; don't wikilink, use 'editor-link'; can suffix with a numeral to add additional editors; alias of 'editor1-first'",
"aliases": [
"editor1-first"
],
"type": "line"
},
"editor-link": {
"label": "Editor link",
"description": "Title of existing Wikipedia article about the editor; can suffix with a numeral to add additional editors; alias of 'editor1-link'",
"type": "wiki-page-name"
},
"series": {
"label": "Series",
"description": "Series identifier when the source is part of a series, such as a book series or a journal; alias of 'version'",
"type": "content",
"aliases": [
"version"
]
},
"department": {
"label": "Department",
"description": "Department (section) within the periodical",
"type": "string"
},
"location": {
"label": "Location of publication",
"description": "Geographical place of publication; usually not wikilinked; omit when the publication name includes place; alias of 'place'",
"type": "string"
},
"publication-place": {
"label": "Place of publication",
"description": "Publication place shows after title; if 'place' or 'location' are also given, they are displayed before the title prefixed with 'written at'",
"type": "content"
},
"publication-date": {
"label": "Publication date",
"description": "Date of publication when different from the date the work was written; do not wikilink",
"type": "date"
},
"edition": {
"label": "Edition",
"description": "When the publication has more than one edition; for example: '2nd', 'Revised' etc.; suffixed with ' ed.'",
"type": "line"
},
"volume": {
"label": "Volume",
"description": "For one publication published in several volumes, usually a number. Do not prepend with v. or vol.",
"type": "line",
"suggested": true,
"example": "3"
},
"page": {
"label": "Page",
"description": "Page in the source that supports the content; displays after 'p.'",
"type": "line"
},
"pages": {
"label": "Pages",
"description": "Pages in the source that support the content (not an indication of the number of pages in the source; displays after 'pp.')",
"type": "line",
"suggested": true
},
"no-pp": {
"label": "No pp",
"description": "Set to 'y' to suppress the 'p.' or 'pp.' display with 'page' or 'pages' when inappropriate (such as 'Front cover')",
"type": "line"
},
"at": {
"label": "At",
"description": "May be used instead of 'page' or 'pages' where a page number is inappropriate or insufficient",
"type": "line"
},
"language": {
"label": "Language",
"description": "The language in which the source is written, if not English; use the full language name; do not use icons or templates",
"type": "content"
},
"script-title": {
"label": "Script title",
"description": "For titles in languages that do not use a Latin-based alphabet (Arabic, Chinese, Cyrillic, Greek, Hebrew, Japanese, Korean, Vietnamese, etc). Prefix with two-character ISO639-1 language code followed by a colon. For Japanese use: |script-title=ja:...",
"type": "line"
},
"trans-title": {
"label": "Translated title",
"description": "An English language title, if the source cited is in a foreign language; 'language' is recommended",
"type": "content"
},
"type": {
"label": "Type",
"description": "Additional information about the media type of the source; format in sentence case",
"type": "content"
},
"format": {
"label": "Format",
"description": "Format of the work referred to by 'url' ('url' is required when using 'format'); examples: PDF, DOC, XLS; do not specify HTML",
"type": "content"
},
"arxiv": {
"label": "arXiv identifier",
"description": "An identifier for arXiv electronic preprints of scientific papers",
"type": "line"
},
"asin": {
"label": "ASIN",
"description": "Amazon Standard Identification Number; 10 characters",
"type": "line"
},
"asin-tld": {
"label": "ASIN TLD",
"description": "ASIN top-level domain for Amazon sites other than the US",
"type": "line"
},
"bibcode": {
"label": "Bibcode",
"description": "Bibliographic Reference Code (REFCODE); 19 characters",
"type": "line"
},
"biorxiv": {
"label": "biorXiv",
"description": "biorXiv identifier; full doi",
"type": "line"
},
"citeseerx": {
"label": "CiteSeerX",
"description": "CiteSeerX identifier; found after the 'doi=' query parameter",
"type": "line"
},
"isbn": {
"label": "ISBN",
"description": "International Standard Book Number; use the 13-digit ISBN where possible",
"type": "line"
},
"issn": {
"label": "ISSN",
"description": "International Standard Serial Number (print); 8 characters; usually split into two groups of four using a hyphen",
"type": "line"
},
"eissn": {
"label": "eISSN",
"description": "International Standard Serial Number (online); 8 characters; usually split into two groups of four using a hyphen",
"type": "line"
},
"jfm": {
"label": "jfm code",
"description": "Jahrbuch über die Fortschritte der Mathematik classification code",
"type": "line"
},
"jstor": {
"label": "JSTOR",
"description": "JSTOR identifier",
"type": "line"
},
"lccn": {
"label": "LCCN",
"description": "Library of Congress Control Number",
"type": "line"
},
"mr": {
"label": "MR",
"description": "Mathematical Reviews identifier",
"type": "line"
},
"oclc": {
"label": "OCLC",
"description": "Online Computer Library Center number",
"type": "number"
},
"ol": {
"label": "OL",
"description": "Open Library identifier",
"type": "line"
},
"osti": {
"label": "OSTI",
"description": "Office of Scientific and Technical Information identifier",
"type": "line"
},
"pmc": {
"label": "PMC",
"description": "PubMed Center article number",
"type": "number"
},
"pmid": {
"label": "PMID",
"description": "PubMed Unique Identifier",
"type": "line"
},
"rfc": {
"label": "RFC",
"description": "Request for Comments number",
"type": "number"
},
"ssrn": {
"label": "SSRN",
"description": "Social Science Research Network",
"type": "line"
},
"zbl": {
"label": "Zbl",
"description": "Zentralblatt MATH journal identifier",
"type": "line"
},
"id": {
"label": "id",
"description": "A unique identifier used where none of the specialized ones are applicable",
"type": "line"
},
"quote": {
"label": "Quote",
"description": "Relevant text quoted from the source; displays last, enclosed in quotes; must include terminating punctuation",
"type": "content"
},
"ref": {
"label": "Ref",
"description": "An anchor identifier; can be made the target of wikilinks to full references; special value 'harv' generates an anchor suitable for the harv and sfn templates",
"type": "line"
},
"postscript": {
"label": "Postscript",
"description": "The closing punctuation for the citation; ignored if 'quote' is defined; to suppress use reserved keyword 'none'",
"type": "line",
"default": "."
},
"last3": {
"label": "Last name 3",
"description": "The surname of the third author; don't wikilink, use 'author-link3'",
"aliases": [
"author3"
],
"type": "line"
},
"first3": {
"label": "First name 3",
"description": "Given or first name, middle names, or initials of the third author; don't wikilink",
"type": "line"
},
"last4": {
"label": "Last name 4",
"description": "The surname of the forth author; don't wikilink, use 'author-link4'",
"aliases": [
"author4"
],
"type": "line"
},
"first4": {
"label": "First name 4",
"description": "Given or first name, middle names, or initials of the forth author; don't wikilink",
"type": "line"
},
"last5": {
"label": "Last name 5",
"description": "The surname of the fifth author; don't wikilink, use 'author-link5'",
"aliases": [
"author5"
],
"type": "line"
},
"first5": {
"label": "First name 5",
"description": "Given or first name, middle names, or initials of the fifth author; don't wikilink",
"type": "line"
},
"last6": {
"label": "Last name 6",
"description": "The surname of the sixth author; don't wikilink, use 'author-link6'",
"aliases": [
"author6"
],
"type": "line"
},
"first6": {
"label": "First name 6",
"description": "Given or first name, middle names, or initials of the sixth author; don't wikilink",
"type": "line"
},
"last7": {
"label": "Last name 7",
"description": "The surname of the seventh author; don't wikilink, use 'author-link7'",
"aliases": [
"author7"
],
"type": "line"
},
"first7": {
"label": "First name 7",
"description": "Given or first name, middle names, or initials of the seventh author; don't wikilink",
"type": "line"
},
"last8": {
"label": "Last name 8",
"description": "The surname of the eighth author; don't wikilink, use 'author-link8'",
"aliases": [
"author8"
],
"type": "line"
},
"first8": {
"label": "First name 8",
"description": "Given or first name, middle names, or initials of the eighth author; don't wikilink",
"type": "line"
},
"last9": {
"label": "Last name 9",
"description": "The surname of the ninth author; don't wikilink, use 'author-link9'. If nine authors are defined, then only eight will show and 'et al.' will show in place of the last author.",
"aliases": [
"author9"
],
"type": "line"
},
"first9": {
"label": "First name 9",
"description": "Given or first name, middle names, or initials of the ninth author; don't wikilink",
"type": "line"
},
"last10": {
"label": "Last name 10",
"description": "The surname of the tenth author; don't wikilink, use 'author-link9'. If ten authors are defined, then only eight will show and 'et al.' will show in place of the last two authors.",
"aliases": [
"author10"
],
"type": "line"
},
"first10": {
"label": "First name 10",
"description": "Given or first name, middle names, or initials of the tenth author; don't wikilink",
"type": "line"
},
"last11": {
"label": "Last name 11",
"description": "The surname of the 11th author; don't wikilink, use 'author-link9'. If more than nine authors are defined, then only eight will show and 'et al.' will show in place of the remaining authors.",
"aliases": [
"author11"
],
"type": "line"
},
"first11": {
"label": "First name 11",
"description": "Given or first name, middle names, or initials of the 11th author; don't wikilink",
"type": "line"
},
"editor2-last": {
"label": "Editor last name 2",
"description": "The surname of the second editor; don't wikilink, use 'editor2-link'",
"aliases": [
"editor2"
],
"type": "line"
},
"editor2-first": {
"label": "Editor first name 2",
"description": "Given or first name, middle names, or initials of the second editor; don't wikilink",
"type": "line"
},
"editor3-last": {
"label": "Editor last name 3",
"description": "The surname of the third editor; don't wikilink, use 'editor3-link'",
"aliases": [
"editor3"
],
"type": "line"
},
"editor3-first": {
"label": "Editor first name 3",
"description": "Given or first name, middle names, or initials of the third editor; don't wikilink",
"type": "line"
},
"editor4-last": {
"label": "Editor last name 4",
"description": "The surname of the fourth editor; don't wikilink, use 'editor4-link'",
"aliases": [
"editor4"
],
"type": "line"
},
"editor4-first": {
"label": "Editor first name 4",
"description": "Given or first name, middle names, or initials of the fourth editor; don't wikilink",
"type": "line"
},
"editor5-last": {
"label": "Editor last name 5",
"description": "The surname of the fifth editor; don't wikilink, use 'editor5-link'",
"aliases": [
"editor5"
],
"type": "line"
},
"editor5-first": {
"label": "Editor first name 5",
"description": "Given or first name, middle names, or initials of the fifth editor; don't wikilink",
"type": "line"
},
"editor6-last": {
"label": "Editor last name 6",
"description": "The surname of the sixth editor; don't wikilink, use 'editor6-link'",
"aliases": [
"editor6"
],
"type": "line"
},
"editor6-first": {
"label": "Editor first name 6",
"description": "Given or first name, middle names, or initials of the sixth editor; don't wikilink",
"type": "line"
},
"editor7-last": {
"label": "Editor last name 7",
"description": "The surname of the seventh editor; don't wikilink, use 'editor7-link'",
"aliases": [
"editor7"
],
"type": "line"
},
"editor7-first": {
"label": "Editor first name 7",
"description": "Given or first name, middle names, or initials of the seventh editor; don't wikilink",
"type": "line"
},
"editor8-last": {
"label": "Editor last name 8",
"description": "The surname of the eighth editor; don't wikilink, use 'editor8-link'",
"aliases": [
"editor8"
],
"type": "line"
},
"editor8-first": {
"label": "Editor first name 8",
"description": "Given or first name, middle names, or initials of the eighth editor; don't wikilink",
"type": "line"
},
"editor9-last": {
"label": "Editor last name 9",
"description": "The surname of the ninth editor; don't wikilink, use 'editor9-link'",
"aliases": [
"editor9"
],
"type": "line"
},
"editor9-first": {
"label": "Editor first name 9",
"description": "Given or first name, middle names, or initials of the ninth editor; don't wikilink",
"type": "line"
},
"author-mask": {
"label": "Author mask",
"description": "Replaces the name of the first author with em dashes or text; set to a numeric value 'n' to set the dash 'n' em spaces wide; set to a text value to display the text without a trailing author separator; for example, 'with' instead",
"type": "string"
},
"author-link": {
"label": "Author link",
"description": "Title of existing Wikipedia article about the author; can suffix with a numeral to add additional authors",
"type": "wiki-page-name",
"aliases": [
"author-link1",
"author1-link"
]
},
"author-link2": {
"label": "Author link 2",
"description": "Title of existing Wikipedia article about the second author",
"type": "wiki-page-name",
"aliases": [
"author2-link"
]
},
"access-date": {
"label": "URL access date",
"description": "The full date when the original URL was accessed; do not wikilink",
"type": "date"
},
"archive-url": {
"label": "Archive URL",
"description": "The URL of an archived copy of a web page, if or in case the URL becomes unavailable; requires 'archive-date'",
"type": "line"
},
"archive-date": {
"label": "Archive date",
"description": "Date when the original URL was archived; do not wikilink",
"type": "date"
},
"url-status": {
"label": "URL status",
"description": "If set to 'live', the title displays with the URL linked; if set to 'dead', the title displays with the archive URL linked",
"type": "line"
},
"author-link3": {
"label": "Author link 3",
"description": "Title of existing Wikipedia article about the third author",
"type": "wiki-page-name",
"aliases": [
"author3-link"
]
},
"author-link4": {
"label": "Author link 4",
"description": "Title of existing Wikipedia article about the forth author",
"type": "wiki-page-name",
"aliases": [
"author4-link"
]
},
"author-link5": {
"label": "Author link 5",
"description": "Title of existing Wikipedia article about the fifth author",
"type": "wiki-page-name",
"aliases": [
"author5-link"
]
},
"author-link6": {
"label": "Author link 6",
"description": "Title of existing Wikipedia article about the sixth author",
"type": "wiki-page-name",
"aliases": [
"author6-link"
]
},
"author-link7": {
"label": "Author link 7",
"description": "Title of existing Wikipedia article about the seventh author",
"type": "wiki-page-name",
"aliases": [
"author7-link"
]
},
"author-link8": {
"label": "Author link 8",
"description": "Title of existing Wikipedia article about the eighth author",
"type": "wiki-page-name",
"aliases": [
"author8-link"
]
},
"author-link9": {
"label": "Author link 9",
"description": "Title of existing Wikipedia article about the ninth author",
"type": "wiki-page-name",
"aliases": [
"author9-link"
]
},
"editor2-link": {
"label": "Editor link 2",
"description": "Title of existing Wikipedia article about the second editor",
"type": "wiki-page-name",
"aliases": [
"editor-link2"
]
},
"editor3-link": {
"label": "Editor link 3",
"description": "Title of existing Wikipedia article about the third editor",
"type": "wiki-page-name",
"aliases": [
"editor-link3"
]
},
"editor4-link": {
"label": "Editor link 4",
"description": "Title of existing Wikipedia article about the fourth editor",
"type": "wiki-page-name",
"aliases": [
"editor-link4"
]
},
"editor5-link": {
"label": "Editor link 5",
"description": "Title of existing Wikipedia article about the fifth editor",
"type": "wiki-page-name",
"aliases": [
"editor-link5"
]
},
"editor6-link": {
"label": "Editor link 6",
"description": "Title of existing Wikipedia article about the sixth editor",
"type": "wiki-page-name",
"aliases": [
"editor-link6"
]
},
"editor7-link": {
"label": "Editor link 7",
"description": "Title of existing Wikipedia article about the seventh editor",
"type": "wiki-page-name",
"aliases": [
"editor-link7"
]
},
"editor8-link": {
"label": "Editor link 8",
"description": "Title of existing Wikipedia article about the eighth editor",
"type": "wiki-page-name",
"aliases": [
"editor-link8"
]
},
"editor9-link": {
"label": "Editor link 9",
"description": "Title of existing Wikipedia article about the ninth editor",
"type": "wiki-page-name",
"aliases": [
"editor-link9"
]
},
"name-list-style": {
"label": "Name list style",
"description": "Set to 'amp' or 'and' to change the separator between the last two on the name list to '&' or 'and', respectively. Set to 'vanc' to display name lists in Vancouver style.",
"type": "string"
},
"chapter": {
"label": "Chapter",
"description": "The chapter heading of the source",
"type": "string"
},
"via": {
"label": "Content deliverer (i.e. Database)",
"description": "Provider of the article (not the publisher), usually an aggregator of journal articles or a repository",
"example": "JSTOR, Project MUSE, Elsevier Science Direct",
"type": "string",
"suggested": true
},
"url-access": {
"label": "URL access level",
"description": "Classification of the access restrictions on the URL ('registration', 'subscription' or 'limited')",
"type": "string"
},
"bibcode-access": {
"label": "Bibcode access level",
"description": "If the full text is available from ADS via this Bibcode, type 'free'",
"type": "string"
},
"doi-access": {
"label": "DOI access level",
"description": "If the full text is free to read via the DOI, type 'free'",
"type": "string"
},
"hdl-access": {
"label": "HDL access level",
"description": "If the full text is free to read via the HDL, type 'free'",
"type": "string"
},
"jstor-access": {
"label": "JSTOR access level",
"description": "If the full text is free to read on JSTOR, type 'free'",
"type": "string"
},
"ol-access": {
"label": "OpenLibrary access level",
"description": "If the full text is free to read on OpenLibrary, type 'free'",
"type": "string"
},
"osti-access": {
"label": "OSTI access level",
"description": "If the full text is free to read on OSTI, type 'free'",
"type": "string"
},
"vauthors": {
"label": "Vancouver style authors",
"description": "comma-separated list of author names in Vancouver style; enclose corporate or institutional author names in doubled parentheses",
"type": "line"
},
"display-authors": {
"label": "Display authors",
"description": "number of authors to display before 'et al.' is used;",
"type": "number"
}
},
"paramOrder": [
"last",
"first",
"author-link",
"last2",
"first2",
"author-link2",
"last3",
"first3",
"author-link3",
"last4",
"first4",
"author-link4",
"last5",
"first5",
"author-link5",
"last6",
"first6",
"author-link6",
"last7",
"first7",
"author-link7",
"last8",
"first8",
"author-link8",
"last9",
"first9",
"author-link9",
"last10",
"first10",
"last11",
"first11",
"display-authors",
"author-mask",
"name-list-style",
"vauthors",
"date",
"year",
"orig-date",
"editor-last",
"editor-first",
"editor-link",
"editor2-last",
"editor2-first",
"editor2-link",
"editor3-last",
"editor3-first",
"editor3-link",
"editor4-last",
"editor4-first",
"editor4-link",
"editor5-last",
"editor5-first",
"editor5-link",
"editor6-last",
"editor6-first",
"editor6-link",
"editor7-last",
"editor7-first",
"editor7-link",
"editor8-last",
"editor8-first",
"editor8-link",
"editor9-last",
"editor9-first",
"editor9-link",
"others",
"title",
"script-title",
"trans-title",
"url",
"url-status",
"format",
"department",
"journal",
"chapter",
"type",
"series",
"language",
"edition",
"location",
"publisher",
"publication-place",
"publication-date",
"volume",
"issue",
"page",
"pages",
"at",
"no-pp",
"arxiv",
"asin",
"asin-tld",
"bibcode",
"biorxiv",
"citeseerx",
"doi",
"doi-broken-date",
"isbn",
"issn",
"eissn",
"jfm",
"jstor",
"lccn",
"mr",
"oclc",
"ol",
"osti",
"pmc",
"pmid",
"rfc",
"ssrn",
"zbl",
"id",
"url-access",
"archive-url",
"archive-date",
"access-date",
"quote",
"postscript",
"ref",
"via",
"bibcode-access",
"doi-access",
"hdl-access",
"jstor-access",
"ol-access",
"osti-access"
],
"maps": {
"citoid": {
"title": "title",
"url": "url",
"publisher": "publisher",
"publicationTitle": "journal",
"proceedingsTitle": "journal",
"encyclopediaTitle": "journal",
"dictionaryTitle": "journal",
"date": "date",
"place": "location",
"ISSN": [
"issn"
],
"ISBN": [
"isbn"
],
"PMCID": "pmc",
"PMID": "pmid",
"pages": "pages",
"volume": "volume",
"series": "series",
"seriesNumber": "volume",
"issue": "issue",
"DOI": "doi",
"oclc": "oclc",
"language": "language",
"contributor": "others",
"author": [
[
"first",
"last"
],
[
"first2",
"last2"
],
[
"first3",
"last3"
],
[
"first4",
"last4"
],
[
"first5",
"last5"
],
[
"first6",
"last6"
],
[
"first7",
"last7"
],
[
"first8",
"last8"
],
[
"first9",
"last9"
],
[
"first10",
"last10"
],
[
"first11",
"last11"
]
],
"editor": [
[
"editor-first",
"editor-last"
],
[
"editor2-first",
"editor2-last"
],
[
"editor3-first",
"editor3-last"
],
[
"editor4-first",
"editor4-last"
],
[
"editor5-first",
"editor5-last"
],
[
"editor6-first",
"editor6-last"
],
[
"editor7-first",
"editor7-last"
],
[
"editor8-first",
"editor8-last"
],
[
"editor9-first",
"editor9-last"
]
]
}
},
"format": "{{_ |_=_}}"
}
</templatedata>
==See also==
* [https://citation-template-filling.toolforge.org/cgi-bin/index.cgi Citation-template-filling tool], can be used for [[DrugBank]], [[HGNC]], [[ISBN]], [[PubMed]], and [[PubChem]]
* [https://alyw234237.github.io/wiki-doi-gbooks-citation-maker/ Wikipedia DOI and Google Books Citation Maker] can be used for [[digital object identifier|DOI]]
{{Citation Style 1}}
{{Wikipedia referencing}}
{{UF-COinS}}
<includeonly>{{Sandbox other||
[[Category:Citation Style 1 templates|J]]
}}</includeonly>
trghotwsrmaontk33zwk81crxklir0r
Ta̱mpi̱let:Citation Style documentation/usage
10
1803
15564
2022-08-07T19:28:35Z
Kambai Akau
15
Created page with "Copy a blank version to use. Almost all parameter names are supported only in lower case (some initialisms, such as {{para|isbn}} have upper-case aliases like {{para|ISBN}}, which are acceptable for use). Use the "|" (pipe) character between each parameter. Unused parameters may be deleted to avoid clutter in the edit window. Some samples on this documentation page may include the current date. If the date is not current, then {{purge|purge}} the page."
wikitext
text/x-wiki
Copy a blank version to use. Almost all parameter names are supported only in lower case (some initialisms, such as {{para|isbn}} have upper-case aliases like {{para|ISBN}}, which are acceptable for use). Use the "|" (pipe) character between each parameter. Unused parameters may be deleted to avoid clutter in the edit window. Some samples on this documentation page may include the current date. If the date is not current, then {{purge|purge}} the page.
mlulm6uha7kh6acnxivlndist95yhd7
Ta̱mpi̱let:Citation Style documentation/usage vertical
10
1804
15565
2022-08-07T19:30:50Z
Kambai Akau
15
Created page with "{| class="wikitable" |+ Full parameter set in vertical format ! Vertical list !! Prerequisites !! Brief instructions / notes |- style="vertical-align:top;" |"
wikitext
text/x-wiki
{| class="wikitable"
|+ Full parameter set in vertical format
! Vertical list !! Prerequisites !! Brief instructions / notes
|- style="vertical-align:top;"
|
7ya57kwky8ltmh98iar22xeljvztwew
Ta̱mpi̱let:Citation Style documentation/usage vertical end
10
1805
15567
15566
2022-08-07T19:33:00Z
Kambai Akau
15
wikitext
text/x-wiki
|}
* If a field name is listed in the '''Prerequisites''' column, it is a prerequisite for the field to the left.
iba42liqck57p33wcbds1eq8kf39tbj
Ta̱mpi̱let:Citation Style documentation/usage common
10
1806
15568
2022-08-07T19:34:25Z
Kambai Akau
15
Created page with "{| class="wikitable" style="width: 100%" |+ Most commonly used parameters in horizontal format |- style="vertical-align:top;" |"
wikitext
text/x-wiki
{| class="wikitable" style="width: 100%"
|+ Most commonly used parameters in horizontal format
|- style="vertical-align:top;"
|
g59aluhs3riv40zrn04wrzig2rndz5x
Ta̱mpi̱let:Citation Style documentation/usage vertical mid
10
1807
15569
2022-08-07T19:36:55Z
Kambai Akau
15
Created page with "| style="vertical-align:top;" |"
wikitext
text/x-wiki
| style="vertical-align:top;" |
dngspsil9irpijhjhntztbj8cw6cmxw
Ta̱mpi̱let:Citation Style documentation/usage full
10
1808
15570
2022-08-07T19:39:15Z
Kambai Akau
15
Created page with "{| class="wikitable" style="width: 100%" |+ Full parameter set in horizontal format |- style="vertical-align:top;" |"
wikitext
text/x-wiki
{| class="wikitable" style="width: 100%"
|+ Full parameter set in horizontal format
|- style="vertical-align:top;"
|
ibig78ze0cv5pm1gtveggipwk9so1ba
Ta̱mpi̱let:Citation Style documentation/usage vertical sandbox
10
1809
15571
2022-08-07T19:41:35Z
Kambai Akau
15
Created page with "{| class="wikitable" |+ Full parameter set in vertical format ! Vertical list !! Prerequisites !! Brief instructions / notes |- style="vertical-align:top;" |{{pre|style=margin:0px;|1= {{{1}}} }}"
wikitext
text/x-wiki
{| class="wikitable"
|+ Full parameter set in vertical format
! Vertical list !! Prerequisites !! Brief instructions / notes
|- style="vertical-align:top;"
|{{pre|style=margin:0px;|1=
{{{1}}}
}}
3slja27j3oha40a602sdxquck5keqp5
Ta̱mpi̱let:Citation Style documentation/usage vertical common
10
1810
15572
2022-08-07T19:46:55Z
Kambai Akau
15
Created page with "{| class="wikitable" style="width: 30em" |+ Most commonly used parameters in vertical format |- style="vertical-align:top;" |<noinclude> |} {{doc|content= This template is used in documentation for [[Help:Citation Style 1|Citation Style 1]] templates to show parameters in a vertical format.}} </noinclude>"
wikitext
text/x-wiki
{| class="wikitable" style="width: 30em"
|+ Most commonly used parameters in vertical format
|- style="vertical-align:top;"
|<noinclude>
|}
{{doc|content= This template is used in documentation for [[Help:Citation Style 1|Citation Style 1]] templates to show parameters in a vertical format.}}
</noinclude>
s908ozzvdin1zzj02vpxka5opnwk3ji
Ta̱mpi̱let:Doc
10
1811
15573
2022-08-07T19:48:11Z
Kambai Akau
15
Created page with "{{#invoke:documentation|main|_content={{ {{#invoke:documentation|contentTitle}}}}}}<noinclude> <!-- Add categories to the /doc subpage --> </noinclude>"
wikitext
text/x-wiki
{{#invoke:documentation|main|_content={{ {{#invoke:documentation|contentTitle}}}}}}<noinclude>
<!-- Add categories to the /doc subpage -->
</noinclude>
ii1kftoonz87mztj4siz1yhyqeg6agm
Ta̱mpi̱let:Documentation/doc
10
1812
15574
2022-08-07T19:49:37Z
Kambai Akau
15
Created page with "<noinclude>{{pp-semi-indef}} </noinclude>{{Distinguish|Template:Documentation subpage}} {{Documentation subpage}} {{template shortcut|doc}} {{High-use}} {{Lua|Module:Documentation}} {{Never substitute}} This is the '''{{tlx|documentation}}''' template used on almost every [[Help:A quick guide to templates|template page]] to contain that template's documented instructions and information, including [[Wikipedia:TemplateData|<templatedata>]], on either the template page its..."
wikitext
text/x-wiki
<noinclude>{{pp-semi-indef}}
</noinclude>{{Distinguish|Template:Documentation subpage}}
{{Documentation subpage}}
{{template shortcut|doc}}
{{High-use}}
{{Lua|Module:Documentation}}
{{Never substitute}}
This is the '''{{tlx|documentation}}''' template used on almost every [[Help:A quick guide to templates|template page]] to contain that template's documented instructions and information, including [[Wikipedia:TemplateData|<templatedata>]], on either the template page itself, or a created documentation subpage.
For detailed instructions on how and when to use this template, see [[Wikipedia:Template documentation]] (shortcut: [[WP:TDOC]]).
This template displays a green documentation box, like you are seeing now, and automatically loads the content from a /doc subpage. It can also load the content from other places, if instructed to do so.
This template is intended for documenting templates and other pages that are [[Wikipedia:Transclusion|transcluded]] onto other pages. It can be used in the [[Wikipedia:Template namespace|template namespace]] and most other [[Wikipedia:Namespace|namespace]]s.
Use of this template allows templates to be [[Wikipedia:Protection policy|protected]], where necessary, while allowing anyone to edit the documentation and categories.
==Usage==
Normally, this template is used without any parameters, and is placed at the bottom of the template page or other page being documented, within a {{tag|noinclude}} container:
<syntaxhighlight lang="xml+smarty">
<!--Last line of your template code--><noinclude>
{{Documentation}}
<!-- Add categories to the /doc subpage -->
</noinclude>
</syntaxhighlight>
Then, this template automatically loads the content from the /doc subpage of the template it is used on.
This template can also load the content from any other page. For example:
<syntaxhighlight lang="xml+smarty">
<!--Last line of your template code--><noinclude>
{{Documentation |Template:Other page/doc}}
</noinclude>
</syntaxhighlight>
Note that when loading the documentation from a page other than the local /doc subpage, it becomes tricky to handle the categories.
The content can also be fed directly as text. For example:
<syntaxhighlight lang="xml">
<!--Last line of your template code--><noinclude>
{{Documentation
| content =
<!-- template documentation -->
}}</noinclude>
</syntaxhighlight>
When the {{para|content}} parameter is used, the doc box normally does not show the [edit] [purge] links in the top right corner. Note that if the /doc page exists, a link to it is still shown in the link box below the doc box.
Parameter {{para|1}} and the {{para|content}} parameter can also be combined, for example:
<syntaxhighlight lang="xml">
<!--Last line of your template code--><noinclude>
{{Documentation |1=Template:Any page/doc
| content =
<!-- {{Template:Any page/doc |parameters}} -->
}}</noinclude>
</syntaxhighlight>
Then, the pagename fed as parameter 1 is used for the [edit] [purge] links and for the /doc link in the link box below the doc box. But, the '''content''' parameter is used for the content shown in the doc box. The above code means that the content is transcluded as {{tnull|Template:Any page/doc{{!}}parameters}}. In this example, a parameter is also fed to the /doc page being loaded.
==Placement and tags==
This code should be added at the bottom of the template code page, with no space before {{Tag|noinclude|o}} (which causes extra whitespace to show on pages where the template is transcluded): <syntaxhighlight lang="xml"><!--Last line of your template code--><noinclude>
{{documentation}}
</noinclude></syntaxhighlight>
To automatically insert the [[Wikipedia:Noinclude|noinclude tags]], the template call and the guiding comment, you can also use this [[Wikipedia:Substitution|substitution]] code shortcut:
{{tlxs|doc-code}}
Which results in: <syntaxhighlight lang="xml"><!--Last line of your template code--><noinclude>
{{documentation}}
<!-- Add categories to the /doc subpage -->
</noinclude></syntaxhighlight>
===Categorization===
When a documentation subpage is created by using this template, then to place the template itself into a category, add <code><nowiki>[[Category:Category name]]</nowiki></code> inside an {{tag|includeonly|p|content={{((}}Sandbox other{{!!}}...{{))}}}} section on the /doc subpage. For example, for placement on the documentation subpage:
<syntaxhighlight lang="xml" style="overflow:auto;">
{{Documentation subpage}}
== Usage ==
<include<includeonly></includeonly>only>{{sandbox other||
<!-- Categories below this line -->
[[Category:Category name]]
[[Category:Category name2]]
}}</includeonly>
</syntaxhighlight>
When a documentation subpage has not been created, and the documentation template is being used with a {{para|content}} parameter on the actual template page, then to place the template itself into a category, add <code><nowiki>[[Category:Category name]]</nowiki></code> inside the documentation template, after the content. For example, for placement on the actual template page:
<syntaxhighlight lang="xml" style="overflow:auto;">
<!--Last line of your template code--><noinclude>
{{Documentation
| content =
<!-- template documentation -->
[[Category:Category name]]
[[Category:Category name2]]
}}</noinclude>
</syntaxhighlight>
Interwiki links that apply to the template should be listed at [[d:|Wikidata]] (more at [[Wikipedia:Wikidata]]). For more complex cases, see {{section link|Wikipedia:Template documentation#Categories and interwiki links}}.
==Heading==
When in the Template namespace, this template shows this heading:
:[[File:Test Template Info-Icon - Version (2).svg|32px|link=[[Wikipedia:Template documentation]]]] '''Template documentation'''
On the Module namespace, the template shows this heading instead:
: [[File:Test Template Info-Icon - Version (2).svg|32px|link=[[Wikipedia:Template documentation]]]] '''Module documentation'''
In most other namespaces, such as "Wikipedia:", it shows this heading:
:'''Documentation'''
The '''heading''' parameter can be used to set the heading to something else. For example:
:<code><nowiki>{{Documentation |heading=Infobox documentation}}</nowiki></code>
If the '''heading''' parameter is empty but defined, no heading is shown and no [edit] [purge] links are shown. For example:
:<code><nowiki>{{Documentation |heading=}}</nowiki></code>
The '''heading-style''' parameter can be fed optional [[Cascading Style Sheets|CSS]] values. Without quotation marks <code>" "</code> but with the ending semicolons <code>;</code>. For example:
:<code>heading-style=font-size:150%;color:red;</code>
==Link box==
Below the big doc box is a small link box that shows some meta-data about the documentation. The link box shows different things depending on what parameters are fed to this template, and in which namespace it is used. In some cases, the link box is not shown at all.
To hide the link box, add the parameter {{para|link box|off}}.
You can also insert customised text into the link box, by setting the {{para|link box}} parameter. For example:
:<code><nowiki> |link box=This documentation is automatically generated by [[Template:Country showdata]]</nowiki></code>
==Automatic functions==
If the documentation page does not exist, the [create] link includes a [[mw:Manual:Creating pages with preloaded text|preload]] page so that clicking it will pre-fill the edit form with the basic documentation page format. Preload text is also used for the /sandbox and /testcases [create] links.
When this template is on a protected template page it now automatically adds {{tl|pp-template}}, which shows the grey or red padlock in the top right corner. So no need to manually add {{tlf|pp-template}} to templates that use {{tl|Documentation}}.
When this template is on a /sandbox subpage it automatically adds the {{tl|Template sandbox notice}}.
==Subject namespaces vs. talk namespaces==
Terminology: ''Subject namespaces'' are the opposite of ''talk namespaces''. For instance "Template:" is the subject space of "Template talk:".
This template is usually placed in a subject namespace, within {{tag|noinclude|o}} tags. But in some cases this template needs to be on the talk page:
* In the Mediawiki namespace, since {{tag|noinclude|o}} often does not work in system messages, and since the Mediawiki namespace needs to be kept clean for performance reasons.
When placed on talk pages, this template usually is placed near the top of the page and without {{tag|noinclude}} tags.
The /doc, /sandbox and /testcases pages should normally be in the subject namespace, except in the namespaces that do not have the MediaWiki [[meta:Help:Link#Subpage feature|subpage feature]] enabled: Main, File, and Mediawiki. (Categories can have subpages, but documentation is created in the Category talk namespace to prevent creating empty categories.) (But currently we only show the /sandbox and /testcases links from User, User talk, Template and Template talk namespaces.) There are also a whole bunch of other technical reasons why the /doc page must be stored under the talk page for those (but only those) namespaces.
This template automatically points its [create] links for the /doc, /sandbox and /testcases to the right namespace.
==Testing==
You can simulate the output for a given page by using the {{para|page}} parameter. For example, if you use the code {{para|page|Template:Edit protected}}, the template will behave exactly as if it were on the page [[Template:Edit protected]], including showing the documentation from [[Template:Edit protected/doc]], linking to [[Template:Edit protected/sandbox]], etc. This parameter is useful for testing and is used extensively on the [[Module:Documentation/testcases|module testcases page]].
==Technical details==
The preload page for the /doc [create] link is [[Template:Documentation/preload]]. The preload pages for the /sandbox and /testcases [create] links are [[Template:Documentation/preload-sandbox]] and [[Template:Documentation/preload-testcases]]. The preload page for the /sandbox [mirror] link is [[Template:Documentation/mirror]].
For more details, see the [[Template talk:Documentation|talk page]].
===Full syntax===
<pre>
{{Documentation}}
or
{{Documentation
| content =
}}
or
{{Documentation
| [path to documentation page]
| heading-style =
| heading =
| link box =
}}
</pre>
===Color scheme===
{| class="wikitable" style="font-size:90%"
|+ Wikipedia background colors for {{Template link|documentation}} <small>([[Help:Using colors]])</small>
! !! RGB !! HSV !! Color !! General usage !! Note
|-
| A
| <kbd>#ECFCF4</kbd> || 150°, 6%, 99%
| style="background:#ECFCF4" |
| Sample || Current documentation background
|-
| B
| <kbd>#00FF80</kbd>
| style="font-size:90%;" | {{nowrap|1=Hue=150° <small>(41.7%; 106/255<small>dec</small>)</small> 100%, 100%}}
| style="background:#00FF80" |
| Basic hue || What we'd call ''the color''
|-
|
|-
| 1
| <kbd>#A3BFB1</kbd> || 150°, 15%, 75%
| style="background:#A3BFB1" |
| Header border only ||
|-
| 2
| <kbd>#CEF2E0</kbd> || 150°, 15%, 95%
| style="background:#CEF2E0" |
| Main border; header background ||
|-
| 3
| <kbd>#E6FFF2</kbd> || 150°, 10%, 100%
| style="background:#E6FFF2" |
| 2nd header, accent colour ||
|-
| 4
| <kbd>#F5FFFA</kbd> || 150°, 4%, 100%
| style="background:#F5FFFA" |
| Main background || So saturation in A is a bit off
|}
{{collapse top|title=Colors for documentation navbox}}
As a suggestion, here are colors for a navbox intended for documentation pages only.
They follow the shading of regular blue navbox colors:
<pre>
| titlestyle = background:#ccffe5
| basestyle = background:#ddffee
<!-- basestyle= sets groupstyle, abovestyle, belowstyle together -->
</pre>
For subgroups, in child navboxes:
<pre>
{{Navbox|child
| groupstyle = background:#e6fff2
...
</pre>
Example:{{Template link expanded|Periodic table templates}}
{{collapse bottom}}
==See also==
* {{tl|Documentation subpage}}, a notice placed at the top of a /doc subpage explaining its role and including a link to the page it documents.
* {{tl|Barnstar documentation}}, a variant of {{tl|Documentation}} for use with [[Wikipedia:Barnstars|barnstar]] templates.
* [[Wikipedia:Template documentation]] is a how-to guide to template documentation.
* [[Wikipedia:Template sandbox and test cases]] explains the use of /sandbox and /testcases subpages and includes more information about template testing.
<includeonly><!-- Make sure that only page [[Template:Documentation]] is categorised. No other page (no subpages, not when transcluded).
-->{{#ifeq:{{FULLPAGENAME}}|Template:Documentation|
[[Category:Template documentation| ]]
[[Category:Template namespace templates|Documentation]]
}}</includeonly>
oopaug7y5q2tyuurpg44a8f5akctri8
Ta̱mpi̱let:Tag
10
1813
15575
2022-08-07T19:51:57Z
Kambai Akau
15
Created page with "<code class="{{#ifeq:{{{wrap|}}}|yes|wrap|nowrap}}" style="{{#ifeq:{{{style|}}}|plain|border:none;background:transparent;|{{{style|}}}}}"><!-- Opening tag -->{{#switch:{{{2|pair}}} |c|close = |e|empty|s|single|v|void |o|open |p|pair = <{{#if:{{{link|}}}|[[HTML element#{{{1|tag}}}|{{{1|tag}}}]]|{{{1|tag}}}}}{{#if:{{{params|{{{attribs|}}}}}}| {{{params|{{{attribs}}}}}}}} }}<!-- Content between tags -->{{#switch:{{{2|pair}}} |c|close = {{{content|}}} |..."
wikitext
text/x-wiki
<code class="{{#ifeq:{{{wrap|}}}|yes|wrap|nowrap}}" style="{{#ifeq:{{{style|}}}|plain|border:none;background:transparent;|{{{style|}}}}}"><!--
Opening tag
-->{{#switch:{{{2|pair}}}
|c|close =
|e|empty|s|single|v|void
|o|open
|p|pair = <{{#if:{{{link|}}}|[[HTML element#{{{1|tag}}}|{{{1|tag}}}]]|{{{1|tag}}}}}{{#if:{{{params|{{{attribs|}}}}}}| {{{params|{{{attribs}}}}}}}}
}}<!--
Content between tags
-->{{#switch:{{{2|pair}}}
|c|close = {{{content|}}}
|e|empty|s|single|v|void =  />
|o|open = >{{{content|}}}
|p|pair = {{#ifeq:{{{1|tag}}}|!--||>}}{{{content|...}}}
}}<!--
Closing tag
-->{{#switch:{{{2|pair}}}
|e|empty|s|single|v|void
|o|open =
|c|close
|p|pair = {{#ifeq:{{{1|tag}}}|!--|-->|</{{{1|tag}}}>}}
}}<!--
--></code><noinclude>
{{Documentation}}
</noinclude>
rfqa950ndrmgt6ozaa81dwgyr2n28ea
Ta̱mpi̱let:Tag/doc
10
1814
15576
2022-08-07T19:53:46Z
Kambai Akau
15
Created page with "{{Documentation subpage}} {{high-use}} {{About|'displaying' markup tags|'using' markup tags|m:Help:Magic_words#Miscellaneous{{!}}the #tag magic word|the inline maintenance tag|Template:Fix}} <!-- PLEASE ADD CATEGORIES WHERE INDICATED AT THE BOTTOM OF THIS PAGE --> : {{tc|tag|''tagname'' [|''type''] [|content=''text''] [|attribs=''attributes and values'']}} A [[markup tag]] is an open < and a close > angle brackets and the content within them, in a markup langua..."
wikitext
text/x-wiki
{{Documentation subpage}}
{{high-use}}
{{About|'displaying' markup tags|'using' markup tags|m:Help:Magic_words#Miscellaneous{{!}}the #tag magic word|the inline maintenance tag|Template:Fix}}
<!-- PLEASE ADD CATEGORIES WHERE INDICATED AT THE BOTTOM OF THIS PAGE -->
: {{tc|tag|''tagname'' [|''type''] [|content=''text''] [|attribs=''attributes and values'']}}
A [[markup tag]] is an open < and a close > angle brackets and the content within them, in a markup language, as [[XML]] or [[HTML]]:
:For example, the '''<title>''' tag provides a title for the Web page.
This template provides a quick way to mention a markup-style [[tag]] in a preformatted way. Mainly used in discussion/help pages.
==Parameters==
{{See also|Span and div}}
Required parameters shown in '''''bold italics'''''.
; {{para|1}} {{nobold| (''tagname'' above)}} : The XML/HTML tag's name (e.g. {{mono|100%|code}}, {{mono|100%|ref}}).
; {{para|2}} {{nobold| (''type'' above)}} : To indicate which of the tag's types is/are presented:
:; <code>p</code> (<code>pair</code>) ''(default)'' : A matching pair of open/start and close/end tags (e.g. {{tag|div|pair}}).<br/>To suppress the [[ellipsis]] ("...") between the tags, add an empty {{para|content}} parameter (for example, {{tag|div|pair|content=}}).
:; <code>o</code> (<code>open</code>) : An open/start tag (e.g. {{tag|span|open}}).
:; <code>c</code> (<code>close</code>) : A close/end tag (e.g. {{tag|span|close}}).
:; <code>e</code> (<code>empty</code>) or <code>s</code> (<code>single</code>) or <code>v</code> (<code>void</code>) : An empty element, formed with a single self-terminating tag (e.g. {{tag|hr|single}}); in HTML5 these are now known as "void" elements, though "empty" is the more common term.
; {{para|content}} : Text to place between open/start and close/end tags.
; {{para|attribs}} : [[HTML attribute|Attributes and values]] to be included as part of an open/start tag (this parameter can also be called {{para|params}}).
; {{para|wrap|yes}} : Disable [[:Template:Nowrap|nowrap]] for long samples, so allowing wraps ([[Help:Line-break handling|line breaks]]).
; {{para|link|yes}} : Link to the element's entry at the [[HTML element]] article, e.g.{{colon}}<br />{{in5}}{{tnull|Tag|del|link{{=}}y}}<br />produces:<br />{{in5}}{{Tag|del|link=y}}<br />This is {{em|only}} for HTML elements; the page is hard-coded, so it cannot be used for, e.g., XML elements from a particular schema. If desired, a feature for specifying the link page can be added.
==Examples==
{{Markup
| <nowiki>{{tag|ref}}</nowiki> | {{tag|ref}}
| <nowiki>{{tag|ref|content=}}</nowiki> | {{tag|ref|content=}}
| <nowiki>{{tag|ref|content=hello}}</nowiki> | {{tag|ref|content=hello}}
| <nowiki>{{tag|span|content=foo}}</nowiki> | {{tag|span|content=foo}}
| <nowiki>{{tag|span|open}}</nowiki> | {{tag|span|open}}
| <nowiki>{{tag|span|open|content=hello}}</nowiki> | {{tag|span|open|content=hello}}
| <nowiki>{{tag|span|close|content=hello}}</nowiki> | {{tag|span|close|content=hello}}
| <nowiki>{{tag|span|pair|content=hello}}</nowiki> | {{tag|span|pair|content=hello}}
| <nowiki>{{tag|ref|open|attribs=group="note"}}</nowiki> | {{tag|ref|open|attribs=group="note"}}
| <nowiki>{{tag|references|single}}</nowiki> | {{tag|references|single}}
| <nowiki>{{tag|br|single}}</nowiki> | {{tag|br|single}}
| <nowiki>{{tag|!--|content=comment}}</nowiki> | {{tag|!--|content=comment}}
| <nowiki>{{tag|math|attribs=chem}}</nowiki> | {{tag|math|attribs=chem}}
| <nowiki>{{tag|a
|attribs=href="<nowiki>https://en.wikipedia.org/</nowiki>"
|content=English Wikipedia}}</nowiki> | {{tag|a|attribs=href="<nowiki>https://en.wikipedia.org/</nowiki>"|content=English Wikipedia}}
}}
== Global use and documentation==
For a global use of this template in other sister or Wikimedia projects, after copying it to paste in the destination project, remember to change in the code:
<pre>
|p|pair = <{{#if:{{{link|}}}|[[HTML element#
</pre>
by this one:
<pre>
|p|pair = <{{#if:{{{link|}}}|[[Wikipedia:en:HTML element#
</pre>
Remark that the code '''<code>Wikipedia:en:</code>''' has been added.
For template documentation in the sister project, you can use [[m:Template:Wikipedia doc|Template:Wikipedia doc]].
==See also==
* [[HTML tag]]
* {{tl|HTMLElement}}
* {{tl|XMLElement}}
* {{tl|xtag}} adds a MediaWiki parser or extension tag that links to the extension page.
* [[mw:Help:Magic words#Miscellaneous|#tag:]], the [[Wikipedia:Parser functions|parser function]] that generates working tags.
===Other formatting templates===
{{#lsth:Template:Template-linking_templates|Other formatting templates}}
<includeonly>{{sandbox other||
<!-- CATEGORIES BELOW THIS LINE, PLEASE: -->
[[Category:HTML typing-aid templates]]
[[Category:Wikitext typing-aid templates]]
[[Category:Wikipedia XHTML tag-replacing templates| ]]
}}</includeonly>
btamucj3b45pm1wteqe4jmapploit0b
Ta̱mpi̱let:Template-linking templates
10
1815
15577
2022-08-07T20:00:26Z
Kambai Akau
15
Created page with "<includeonly>{{navbar|Template-linking templates|text=These tables:|style=float: right;}}</includeonly> === General-purpose formatting === <div style="overflow-x: auto; margin: 1em 0;"> {| class="wikitable plainrowheaders" style="margin: 0;" |+ Comparison of template-linking templates according to the styles of generated text and link produced |- style="background-color: #fee;" ! scope="col" rowspan="2"| Text style ↓ ! scope="col" rowspan="2"| {{Template link expanded|..."
wikitext
text/x-wiki
<includeonly>{{navbar|Template-linking templates|text=These tables:|style=float: right;}}</includeonly>
=== General-purpose formatting ===
<div style="overflow-x: auto; margin: 1em 0;">
{| class="wikitable plainrowheaders" style="margin: 0;"
|+ Comparison of template-linking templates according to the styles of generated text and link produced
|- style="background-color: #fee;"
! scope="col" rowspan="2"| Text style ↓
! scope="col" rowspan="2"| {{Template link expanded|tlg}} options{{NoteTag|name=TlTfn1}}<br />to achieve text style
! scope="col" colspan="6"| Link style
|- style="background-color: #fee;"
! scope="col"| Linked
! scope="col"| Unlinked
! scope="col"| Linked with subst
! scope="col"| Unlinked with subst
! scope="col"| Linked including braces
! scope="col"| Linked with alternative text
|-
! scope="row"| {{Template link expanded|tlg}} options{{NoteTag|name=TlTfn1}}<br />to achieve link style
| {{n/a}}
| {{n/a|DEFAULT}}
| {{code|nolink{{=}}yes}}
| {{code|subst{{=}}yes}}
|| <code>nolink=yes<wbr/>|subst=yes</code>
| {{code|braceinside{{=}}yes}}
| {{code|alttext{{=}}Foo}}<br />{{code|2{{=}}Foo}}
|-
! scope="row"| normal
| {{n/a|DEFAULT}}
| {{nowrap|{{tlg|tlg}}}}<wbr/>{{NoteTag|name=TlTfn1}}<br />{{tl|tl}}<br />{{tlp|tlp|1|2|...}}<wbr/>{{NoteTag|name=TlTfn2}}<br />{{tlu|Template:tlu}}<wbr/>{{NoteTag|name=TlTfn3}}
| {{tlf|tlf}}<wbr/>{{NoteTag|name=TlTfn2}}<br /><sup><[[Template:Template link with link off|template link]]></sup>
| {{tls|tls}}<br />{{tlsu|Template:tlsu}}<wbr/>{{NoteTag|name=TlTfn3}}
| {{tlf|tlsf}}<wbr/>{{NoteTag|name=TlTfn2}}<br/><sup><[[Template:Tlsf|template link]]></sup>
| {{tn|tn}}
| {{tla|tla}}
|-
! scope="row"| <code>code</code>
| {{code|code{{=}}yes}}
| {{tl2|tl2}}<br />{{Template link expanded|tlx}}<br />{{tlxu|Template:tlxu}}<wbr/>{{NoteTag|name=TlTfn3}}
| {{tlc|tlc}}<wbr/>{{NoteTag|name=TlTfn2}}<br /><sup><[[Template:tlc|template link]]></sup><br />{{tnull|tnull}}<sup><[[Template:tnull|template link]]></sup>
| {{tlxs|tlxs}}
| {{tlsc|tlsc}}<wbr/>{{NoteTag|name=TlTfn2}}<br/><sup><[[Template:Tlsc|template link]]></sup>
| colspan="2" rowspan="3" {{n/a}}
|-
! scope="row"| <span style="font-family:monospace; font-size:larger;">monospace</span>
| {{code|plaincode{{=}}yes}}<wbr/>{{NoteTag|name=TlTfn4}}
| colspan="2" rowspan="2" {{n/a}}
| rowspan="2"| {{tltss|tltss}}<wbr/>{{NoteTag|name=TlTfn5}}
| rowspan="2" {{n/a}}
|-
! scope="row"| <kbd>kbd</kbd>
| {{code|kbd{{=}}yes}}<wbr/>{{NoteTag||name=TlTfn5}}
|-
! scope="row"| '''bold'''
| {{code|bold{{=}}yes}}
| {{tlb|tlb}}
| colspan="5" rowspan="3" {{n/a}}
|-
! scope="row"| '''<code>bold+code</code>'''
|| <code>bold=yes<wbr/>|code=yes</code>
| {{tlxb|tlxb}}
|-
! scope="row"| ''<code>italic+code</code>''
|| <code>italic=yes<wbr/>|code=yes</code>
| {{tlxi|tlxi}}
|}
</div>
{{NoteFoot|refs=
{{NoteTag|name=TlTfn1|{{tlx|tlg}} is the most general template, allowing any combination of text style and/or link style options.}}
{{NoteTag|name=TlTfn2|Prevents wrapping of text by placing it inside {{tag|span|params=class="nowrap"}} tags.}}
{{NoteTag|name=TlTfn3|Allows links to templates in any namespace.}}
{{NoteTag|name=TlTfn4|{{tld|tlg|plaincode{{=}}yes}} uses [[HTML element#code|{{tag|code|params=style="border:none; background-color:transparent;"}}]].}}
{{NoteTag|name=TlTfn5|Displays monospaced font using {{tag|span|params=style="font-family:monospace;"}}.}}
}}
{{clear}}
===Other formatting templates===
{| class="wikitable sortable plainrowheaders"
|+ Templates producing specialised formatting effects for given templates, modules or parameters
!scope="col"| Code example
!scope="col"| Effect
!scope="col"| Notes
|-
!scope="row"| {{tlx|tl2|<nowiki>Hatnote|lang=fr</nowiki>}}
| {{tl2|hatnote|lang=fr}} || Supports linking to sister projects (e.g., fr:Hatnote)
|-
!scope="row"| {{tlx|demo|<nowiki><nowiki>{{Hatnote|lang=fr|Some text}}</nowiki></nowiki>}}
| {{demo|<nowiki>{{hatnote|lang=fr|Some text}}</nowiki>}} || Shows code and example
|-
!scope="row"| {{tlx|tln|Hatnote}}
| {{tln|Hatnote}} || Produces a normal link to the template
|-
<!-- Yes, I know these two aren't actually template-linking templates, but they're a heck of a lot easier to find if listed in the docs for e.g. {{tl}} -->
!scope="row"| {{tlx|elc|Template:Hatnote}}<br />{{tlx|elc|<nowiki>Template:Hatnote|Hatnote</nowiki>}}
| {{elc|Template:Hatnote}}<br />{{elc|<nowiki>Template:Hatnote|Hatnote</nowiki>}} || Formats wikilink, with optional piped link text and blended suffix
|-
!scope="row"| {{tlx|ml|Example|hello}}
| {{ml|Example|hello}} || Counterpart to {{tl|tl}} for linking to Lua modules
|-
!scope="row"| {{tlx|mlx|Example|hello}}
| {{mlx|Example|hello}} || Counterpart to {{tl|tlx}} for linking to Lua modules
|-
!scope="row"| {{tlx|para|<nowiki>title|<var>book title</var></nowiki>}}
| {{para|title|<var>book title</var>}} || Formats template parameters for display, with or without values
|-
!scope="row"| {{tlx|sclx|LASTING}}
| {{sclx|LASTING}} || Takes a shortcut suffix in project namespace and displays it with brackets and the [[WP:ALIAS|WP: alias]] in a [[WP:CODE|{{tag|code}}]] tag.
|-
!scope="row"| {{tlx|tag|ref}}<br />{{tlx|xtag|templatedata}}
| {{tag|ref}}<br />{{xtag|templatedata}} || Formats [X]HTML tags; can add content, choose opening, closing, or self-closing
|-
!scope="row"| {{tlx|dtl|Ping project}}
| {{dtl|Ping project}} || Wikidata counterpart to {{tl|tl}}
|-
!scope="row"| {{tlx|pf|if}}<br />{{tlx|pf|if|<nowiki>{{{1}}}</nowiki>|true|false}}
| {{pf|if}}<br />{{pf|if|<nowiki>{{{1}}}</nowiki>|true|false}} || [[Help:Parser functions|Parser function]] equivalent to {{tl|tl}}
|-
!scope="row"| {{tlx|magic word|uc:}}
| {{magic word|uc:}} || Magic word links
|}
===With utility links===
{| class="wikitable sortable plainrowheaders"
|+ Templates producing utility links for a given template ([[Template:Hatnote|Hatnote]] used here as example)
!scope="col"| Code example
!scope="col"| Effect
|-
!scope="row"| {{tlx|lt|Hatnote}}
| {{lt|hatnote}}
|-
!scope="row"| {{tlx|lts|Hatnote}}
| {{lts|hatnote}}
|-
!scope="row"| {{tlx|t links|Hatnote}}
| {{t links|hatnote}}
|-
!scope="row"| {{tlx|tfd links|Hatnote}}
| {{tfd links|hatnote}}
|-
!scope="row"| {{tlx|tetl|Hatnote}}
| {{tetl|Hatnote}}
|-
!scope="row"| {{tlx|tsetl|Hatnote}}
| {{tsetl|Hatnote}}
|-
!scope="row"| {{tlx|ti|Hatnote}}
| {{ti|Hatnote}}
|-
!scope="row"| {{tlx|tic|Hatnote}}
| {{tic|Hatnote}}
|-
!scope="row"| {{tlx|tim|Hatnote}}
| {{tim|Hatnote}}
|-
!scope="row"| {{tlx|tiw|Hatnote}}
| {{tiw|Hatnote}}
|-
!scope="row"| {{tlx|tlt|Hatnote}}
| {{tlt|Hatnote}}
|-
!scope="row"| {{tlx|ttl|Hatnote}}
| {{ttl|Hatnote}}
|-
!scope="row"| {{tlx|twlh|Hatnote}}
| {{twlh|Hatnote}}
|}<noinclude>
{{Documentation
| content =
{{template shortcut|tl-nav|tl templates}}
==Usage==
Use this {{tl|Template-linking templates}} on /doc pages for related templates.
[[Category:Documentation see also templates]]
}}</noinclude>
fv9bbvtanq7wj26pwr7mqxamrbq43qj
Module:Unicode data
828
1816
15585
2022-08-07T20:27:09Z
Kambai Akau
15
Created page with "local p = {} local floor = math.floor local function errorf(level, ...) if type(level) == "number" then return error(string.format(...), level + 1) else -- level is actually the format string. return error(string.format(level, ...), 2) end end local function binary_range_search(codepoint, ranges) local low, mid, high low, high = 1, ranges.length or require "Module:TableTools".length(ranges) while low <= high do mid = floor((low + high) / 2) local range =..."
Scribunto
text/plain
local p = {}
local floor = math.floor
local function errorf(level, ...)
if type(level) == "number" then
return error(string.format(...), level + 1)
else -- level is actually the format string.
return error(string.format(level, ...), 2)
end
end
local function binary_range_search(codepoint, ranges)
local low, mid, high
low, high = 1, ranges.length or require "Module:TableTools".length(ranges)
while low <= high do
mid = floor((low + high) / 2)
local range = ranges[mid]
if codepoint < range[1] then
high = mid - 1
elseif codepoint <= range[2] then
return range, mid
else
low = mid + 1
end
end
return nil, mid
end
p.binary_range_search = binary_range_search
--[[
local function linear_range_search(codepoint, ranges)
for i, range in ipairs(ranges) do
if range[1] <= codepoint and codepoint <= range[2] then
return range
end
end
end
--]]
-- Load a module by indexing "loader" with the name of the module minus the
-- "Module:Unicode data/" part. For instance, loader.blocks returns
-- [[Module:Unicode data/blocks]]. If a module cannot be loaded, false will be
-- returned.
local loader = setmetatable({}, {
__index = function (self, key)
local success, data = pcall(mw.loadData, "Module:Unicode data/" .. key)
if not success then
data = false
end
self[key] = data
return data
end
})
-- For the algorithm used to generate Hangul Syllable names,
-- see "Hangul Syllable Name Generation" in section 3.12 of the
-- Unicode Specification:
-- https://www.unicode.org/versions/Unicode11.0.0/ch03.pdf
local name_hooks = {
{ 0x00, 0x1F, "<control-%04X>" }, -- C0 control characters
{ 0x7F, 0x9F, "<control-%04X>" }, -- DEL and C1 control characters
{ 0x3400, 0x4DBF, "CJK UNIFIED IDEOGRAPH-%04X" }, -- CJK Ideograph Extension A
{ 0x4E00, 0x9FFF, "CJK UNIFIED IDEOGRAPH-%04X" }, -- CJK Ideograph
{ 0xAC00, 0xD7A3, function (codepoint) -- Hangul Syllables
local Hangul_data = loader.Hangul
local syllable_index = codepoint - 0xAC00
return ("HANGUL SYLLABLE %s%s%s"):format(
Hangul_data.leads[floor(syllable_index / Hangul_data.final_count)],
Hangul_data.vowels[floor((syllable_index % Hangul_data.final_count)
/ Hangul_data.trail_count)],
Hangul_data.trails[syllable_index % Hangul_data.trail_count]
)
end },
-- High Surrogates, High Private Use Surrogates, Low Surrogates
{ 0xD800, 0xDFFF, "<surrogate-%04X>" },
{ 0xE000, 0xF8FF, "<private-use-%04X>" }, -- Private Use
-- CJK Compatibility Ideographs
{ 0xF900, 0xFA6D, "CJK COMPATIBILITY IDEOGRAPH-%04X" },
{ 0xFA70, 0xFAD9, "CJK COMPATIBILITY IDEOGRAPH-%04X" },
{ 0x17000, 0x187F7, "TANGUT IDEOGRAPH-%04X" }, -- Tangut Ideograph
{ 0x18800, 0x18AFF, function (codepoint)
return ("TANGUT COMPONENT-%03d"):format(codepoint - 0x187FF)
end },
{ 0x18D00, 0x18D08, "TANGUT IDEOGRAPH-%04X" }, -- Tangut Ideograph Supplement
{ 0x1B170, 0x1B2FB, "NUSHU CHARACTER-%04X" }, -- Nushu
{ 0x20000, 0x2A6DF, "CJK UNIFIED IDEOGRAPH-%04X" }, -- CJK Ideograph Extension B
{ 0x2A700, 0x2B738, "CJK UNIFIED IDEOGRAPH-%04X" }, -- CJK Ideograph Extension C
{ 0x2B740, 0x2B81D, "CJK UNIFIED IDEOGRAPH-%04X" }, -- CJK Ideograph Extension D
{ 0x2B820, 0x2CEA1, "CJK UNIFIED IDEOGRAPH-%04X" }, -- CJK Ideograph Extension E
{ 0x2CEB0, 0x2EBE0, "CJK UNIFIED IDEOGRAPH-%04X" }, -- CJK Ideograph Extension F
-- CJK Compatibility Ideographs Supplement (Supplementary Ideographic Plane)
{ 0x2F800, 0x2FA1D, "CJK COMPATIBILITY IDEOGRAPH-%04X" },
{ 0xE0100, 0xE01EF, function (codepoint) -- Variation Selectors Supplement
return ("VARIATION SELECTOR-%d"):format(codepoint - 0xE0100 + 17)
end},
{ 0x30000, 0x3134A, "CJK UNIFIED IDEOGRAPH-%04X" }, -- CJK Ideograph Extension G
{ 0xF0000, 0xFFFFD, "<private-use-%04X>" }, -- Plane 15 Private Use
{ 0x100000, 0x10FFFD, "<private-use-%04X>" } -- Plane 16 Private Use
}
name_hooks.length = #name_hooks
local name_range_cache
local function generate_name(data, codepoint)
if type(data) == "string" then
return data:format(codepoint)
else
return data(codepoint)
end
end
--[[
-- Checks that the code point is a number and in range.
-- Does not check whether code point is an integer.
-- Not used
local function check_codepoint(funcName, argIdx, val)
require 'libraryUtil'.checkType(funcName, argIdx, val, 'number')
if codepoint < 0 or 0x10FFFF < codepoint then
errorf("Codepoint %04X out of range", codepoint)
end
end
--]]
-- https://www.unicode.org/versions/Unicode11.0.0/ch04.pdf, section 4.8
function p.lookup_name(codepoint)
-- U+FDD0-U+FDEF and all code points ending in FFFE or FFFF are Unassigned
-- (Cn) and specifically noncharacters:
-- https://www.unicode.org/faq/private_use.html#nonchar4
if 0xFDD0 <= codepoint and (codepoint <= 0xFDEF
or floor(codepoint % 0x10000) >= 0xFFFE) then
return ("<noncharacter-%04X>"):format(codepoint)
end
if name_range_cache -- Check if previously used "name hook" applies to this code point.
and codepoint >= name_range_cache[1]
and codepoint <= name_range_cache[2] then
return generate_name(name_range_cache[3], codepoint)
end
local range = binary_range_search(codepoint, name_hooks)
if range then
name_range_cache = range
return generate_name(range[3], codepoint)
end
local data = loader[('names/%03X'):format(codepoint / 0x1000)]
if data and data[codepoint] then
return data[codepoint]
-- Unassigned (Cn) consists of noncharacters and reserved characters.
-- The character has been established not to be a noncharacter,
-- and if it were assigned, its name would already been retrieved,
-- so it must be reserved.
else
return ("<reserved-%04X>"):format(codepoint)
end
end
--[[
-- No image data modules on Wikipedia yet.
function p.lookup_image(codepoint)
local data = loader[('images/%03X'):format(codepoint / 0x1000)]
if data then
return data[codepoint]
end
end
--]]
local planes = {
[ 0] = "Basic Multilingual Plane";
[ 1] = "Supplementary Multilingual Plane";
[ 2] = "Supplementary Ideographic Plane";
[ 3] = "Tertiary Ideographic Plane";
[14] = "Supplementary Special-purpose Plane";
[15] = "Supplementary Private Use Area-A";
[16] = "Supplementary Private Use Area-B";
}
-- Load [[Module:Unicode data/blocks]] if needed and assign it to this variable.
local blocks
local function block_iter(blocks, i)
i = i + 1
local data = blocks[i]
if data then
-- Unpack doesn't work on tables loaded with mw.loadData.
return i, data[1], data[2], data[3]
end
end
-- An ipairs-type iterator generator for the list of blocks.
function p.enum_blocks()
local blocks = loader.blocks
return block_iter, blocks, 0
end
function p.lookup_plane(codepoint)
local i = floor(codepoint / 0x10000)
return planes[i] or ("Plane %u"):format(i)
end
function p.lookup_block(codepoint)
local blocks = loader.blocks
local range = binary_range_search(codepoint, blocks)
if range then
return range[3]
else
return "No Block"
end
end
function p.get_block_info(name)
for i, block in ipairs(loader.blocks) do
if block[3] == name then
return block
end
end
end
function p.is_valid_pagename(pagename)
local has_nonws = false
for cp in mw.ustring.gcodepoint(pagename) do
if (cp == 0x0023) -- #
or (cp == 0x005B) -- [
or (cp == 0x005D) -- ]
or (cp == 0x007B) -- {
or (cp == 0x007C) -- |
or (cp == 0x007D) -- }
or (cp == 0x180E) -- MONGOLIAN VOWEL SEPARATOR
or ((cp >= 0x2000) and (cp <= 0x200A)) -- spaces in General Punctuation block
or (cp == 0xFFFD) -- REPLACEMENT CHARACTER
then
return false
end
local printable, result = p.is_printable(cp)
if not printable then
return false
end
if result ~= "space-separator" then
has_nonws = true
end
end
return has_nonws
end
local function manual_unpack(what, from)
if what[from + 1] == nil then
return what[from]
end
local result = {}
from = from or 1
for i, item in ipairs(what) do
if i >= from then
table.insert(result, item)
end
end
return unpack(result)
end
local function compare_ranges(range1, range2)
return range1[1] < range2[1]
end
-- Creates a function to look up data in a module that contains "singles" (a
-- code point-to-data map) and "ranges" (an array containing arrays that contain
-- the low and high code points of a range and the data associated with that
-- range).
-- "loader" loads and returns the "singles" and "ranges" tables.
-- "match_func" is passed the code point and either the data or the "dots", and
-- generates the final result of the function.
-- The varargs ("dots") describes the default data to be returned if there wasn't
-- a match.
-- In case the function is used more than once, "cache" saves ranges that have
-- already been found to match, or a range whose data is the default if there
-- was no match.
local function memo_lookup(data_module_subpage, match_func, ...)
local dots = { ... }
local cache = {}
local singles, ranges
return function (codepoint)
if not singles then
local data_module = loader[data_module_subpage]
singles, ranges = data_module.singles, data_module.ranges
end
if singles[codepoint] then
return match_func(codepoint, singles[codepoint])
end
local range = binary_range_search(codepoint, cache)
if range then
return match_func(codepoint, manual_unpack(range, 3))
end
local range, index = binary_range_search(codepoint, ranges)
if range then
table.insert(cache, range)
table.sort(cache, compare_ranges)
return match_func(codepoint, manual_unpack(range, 3))
end
if ranges[index] then
local dots_range
if codepoint > ranges[index][2] then
dots_range = {
ranges[index][2] + 1,
ranges[index + 1] and ranges[index + 1][1] - 1 or 0x10FFFF,
unpack(dots)
}
else -- codepoint < range[index][1]
dots_range = {
ranges[index - 1] and ranges[index - 1][2] + 1 or 0,
ranges[index][1] - 1,
unpack(dots)
}
end
table.sort(cache, compare_ranges)
end
return match_func(codepoint)
end
end
-- Get a code point's combining class value in [[Module:Unicode data/combining]],
-- and return whether this value is not zero. Zero is assigned as the default
-- if the combining class value is not found in this data module.
-- That is, return true if character is combining, or false if it is not.
-- See https://www.unicode.org/reports/tr44/#Canonical_Combining_Class_Values for
-- more information.
p.is_combining = memo_lookup(
"combining",
function (codepoint, combining_class)
return combining_class and combining_class ~= 0 or false
end,
0)
function p.add_dotted_circle(str)
return (mw.ustring.gsub(str, ".",
function(char)
if p.is_combining(mw.ustring.codepoint(char)) then
return '◌' .. char
end
end))
end
local lookup_control = memo_lookup(
"control",
function (codepoint, ccc)
return ccc or "assigned"
end,
"assigned")
p.lookup_control = lookup_control
function p.is_assigned(codepoint)
return lookup_control(codepoint) ~= "unassigned"
end
function p.is_printable(codepoint)
local result = lookup_control(codepoint)
return (result == "assigned") or (result == "space-separator"), result
end
function p.is_whitespace(codepoint)
local result = lookup_control(codepoint)
return (result == "space-separator"), result
end
p.lookup_category = memo_lookup(
"category",
function (codepoint, category)
return category
end,
"Cn")
local lookup_script = memo_lookup(
"scripts",
function (codepoint, script_code)
return script_code or 'Zzzz'
end,
"Zzzz")
p.lookup_script = lookup_script
function p.get_best_script(str)
-- Check type of argument, because mw.text.decode coerces numbers to strings!
require "libraryUtil".checkType("get_best_script", 1, str, "string")
-- Convert HTML character references (including named character references,
-- or character entities) to characters.
str = mw.text.decode(str, true)
local scripts = {}
for codepoint in mw.ustring.gcodepoint(str) do
local script = lookup_script(codepoint)
-- Ignore "Inherited", "Undetermined", or "Uncoded" scripts.
if not (script == "Zyyy" or script == "Zinh" or script == "Zzzz") then
scripts[script] = true
end
end
-- If scripts does not contain two or more keys,
-- return first and only key (script code) in table.
if not next(scripts, next(scripts)) then
return next(scripts)
end -- else return majority script, or else "Zzzz"?
end
function p.is_Latin(str)
require "libraryUtil".checkType("get_best_script", 1, str, "string")
str = mw.text.decode(str, true)
-- Search for the leading bytes that introduce the UTF-8 encoding of the
-- code points U+0340-U+10FFFF. If they are not found and there is at least
-- one Latin-script character, the string counts as Latin, because the rest
-- of the characters can only be Zyyy, Zinh, and Zzzz.
-- The only scripts found below U+0370 (the first code point of the Greek
-- and Coptic block) are Latn, Zyyy, Zinh, and Zzzz.
-- See the codepage in the [[UTF-8]] article.
if not str:find "[\205-\244]" then
for codepoint in mw.ustring.gcodepoint(str) do
if lookup_script(codepoint) == "Latn" then
return true
end
end
end
local Latn = false
for codepoint in mw.ustring.gcodepoint(str) do
local script = lookup_script(codepoint)
if script == "Latn" then
Latn = true
elseif not (script == "Zyyy" or script == "Zinh"
or script == "Zzzz") then
return false
end
end
return Latn
end
-- Checks that a string contains only characters belonging to right-to-left
-- scripts, or characters of ignorable scripts.
function p.is_rtl(str)
require "libraryUtil".checkType("get_best_script", 1, str, "string")
str = mw.text.decode(str, true)
-- Search for the leading bytes that introduce the UTF-8 encoding of the
-- code points U+0580-U+10FFFF. If they are not found, the string can only
-- have characters from a left-to-right script, because the first code point
-- in a right-to-left script is U+0591, in the Hebrew block.
if not str:find "[\214-\244]" then
return false
end
local result = false
local rtl = loader.scripts.rtl
for codepoint in mw.ustring.gcodepoint(str) do
local script = lookup_script(codepoint)
if rtl[script] then
result = true
elseif not (script == "Zyyy" or script == "Zinh"
or script == "Zzzz") then
return false
end
end
return result
end
local function get_codepoint(args, arg)
local codepoint_string = args[arg]
or errorf(2, "Parameter %s is required", tostring(arg))
local codepoint = tonumber(codepoint_string, 16)
or errorf(2, "Parameter %s is not a code point in hexadecimal base",
tostring(arg))
if not (0 <= codepoint and codepoint <= 0x10FFFF) then
errorf(2, "code point in parameter %s out of range", tostring(arg))
end
return codepoint
end
local function get_func(args, arg, prefix)
local suffix = args[arg]
or errorf(2, "Parameter %s is required", tostring(arg))
suffix = mw.text.trim(suffix)
local func_name = prefix .. suffix
local func = p[func_name]
or errorf(2, "There is no function '%s'", func_name)
return func
end
-- This function allows any of the "lookup" functions to be invoked. The first
-- parameter is the word after "lookup_"; the second parameter is the code point
-- in hexadecimal base.
function p.lookup(frame)
local func = get_func(frame.args, 1, "lookup_")
local codepoint = get_codepoint(frame.args, 2)
local result = func(codepoint)
if func == p.lookup_name then
-- Prevent code point labels such as <control-0000> from being
-- interpreted as HTML tags.
result = result:gsub("<", "<")
end
return result
end
function p.is(frame)
local func = get_func(frame.args, 1, "is_")
-- is_Latin and is_valid_pagename take strings.
if func == p.is_Latin or func == p.is_valid_pagename or func == p.is_rtl then
return (func(frame.args[2]))
else -- The rest take code points.
local codepoint = get_codepoint(frame.args, 2)
return (func(codepoint)) -- Adjust to one result.
end
end
return p
ow05ajlaszuscigi8a54dfk393ds43k
Module:Unicode data/doc
828
1817
15586
2022-08-07T20:30:02Z
Kambai Akau
15
Created page with "<!-- Please place categories where indicated at the bottom of this page and interwikis at Wikidata (see [[Wikipedia:Wikidata]]) --> {{#ifeq: {{SUBPAGENAME}} | sandbox | {{#invoke: Unicode_data/testcases | run_tests}} | {{high risk|952513}} }} == Usage == This module provides functions that access information on Unicode code points. The information is retrieved from data modules generated from the [https://www.unicode.org/Public/UNIDATA/ Unicode Character Database]..."
wikitext
text/x-wiki
<!-- Please place categories where indicated at the bottom of this page and interwikis at Wikidata (see [[Wikipedia:Wikidata]]) -->
{{#ifeq: {{SUBPAGENAME}} | sandbox
| {{#invoke: Unicode_data/testcases | run_tests}}
| {{high risk|952513}}
}}
== Usage ==
This module provides functions that access information on Unicode code points. The information is retrieved from data modules generated from the [https://www.unicode.org/Public/UNIDATA/ Unicode Character Database], or derived by rules given in the [https://www.unicode.org/versions/Unicode11.0.0/UnicodeStandard-11.0.pdf Unicode Specification]. It and its submodules were copied from English Wiktionary and then modified; see [[wikt:Module:Unicode data|there]] for more information.
==Parameters and functions==
===code point===
The code point is to be entered as '''hexadecimal value'''. For example, {{unichar|A9|COPYRIGHT SIGN}}:
:{{mono|1={{!}}A9<sub>hex</sub>}}
:{{mono|1={{!}}0xA9<sub>hex</sub>}}
:{{mono|1={{!}}0x00A9<sub>hex</sub>}}
:{{mono|1={{!}}0x00a9<sub>hex</sub>}}
:<code><nowiki>{{#invoke:Unicode data|lookup|name|0x00A9}}</nowiki></code> → {{#invoke:Unicode data|lookup|name|0x00A9}}
Incorrect or unintended results:
:{{mono|1=169<sub>dec</sub>}}: <code><nowiki>{{#invoke:Unicode data|lookup|name|169}}</nowiki></code> → {{#invoke:Unicode data|lookup|name|169}} {{nay}} —"U+00A9" {{code|1=©}} expected; but is read as {{mono|1=00A9<sub>hex</sub>}} (that is, {{mono|1={{hex2dec|169}}<sub>dec</sub>}}
:{{mono|1=U+00A9}} <code><nowiki>{{#invoke:Unicode data|lookup|name|U+00A9}}</nowiki></code> {{nay}} —do not use "U+" prefix
:{{mono|1=غ}} <code><nowiki>{{#invoke:Unicode data|lookup|name|غ}}</nowiki></code> {{nay}} —cannot enter a character as codepoint
==="{{mono|lookup}}" and "{{mono|1=is}}" functions===
; {{code|lang=lua|lookup, is}}: Template-invokable functions that allow access to the functions starting with <code>lookup</code> and <code>is</code>.For most of the functions, add the code point in hexadecimal base as the next parameter. For <code>is"{{!}}Latin</code>, <code>is{{!}}rtl</code>, and <code>is{{!}}valid_pagename</code>, add character string. [[HTML character references]] in the text are decoded by the module into code points.
:For example, {{tnull|#invoke:Unicode data|is|Latin|àzàhàr̃iyyā̀}} → {{#invoke:Unicode data|is|Latin|àzàhàr̃iyyā̀}}.
:Internally, in modules, these functions are named using underscore: {{code|lang=lua|lookup_name{{!}}code point}} ← {{code|lang=lua|lookup_name}}
:For <code>&A9;</code> <big>©</big>: {{tnull|#invoke:Unicode data|lookup|name|A9}} → {{#invoke:Unicode data|lookup|name|A9}}
==Functions overview==
{{Module:Unicode data/overview/doc}}
==Data modules==
The data used by functions in this module is found in [[Special:PrefixIndex/Module:Unicode data/|submodules]]. Some are generated by [[AWK]] scripts shown at [[wikt:User:Kephir/Unicode|User:Kephir/Unicode]] on English Wiktionary, others by Lua scripts on the <code>/make</code> subpages of the submodules.
* [[Module:Unicode data/age]]: 'Age' of a character, that is: version introduction number.
* [[Module:Unicode data/aliases]]: the formal name aliases for characters (from [https://www.unicode.org/Public/UNIDATA/NameAliases.txt NameAliases.txt])
* [[Module:Unicode data/blocks]]: the list of Unicode blocks (from [https://www.unicode.org/Public/UNIDATA/Blocks.txt Blocks.txt])
* [[Module:Unicode data/category]]: data mapping characters to their General Category (from [https://www.unicode.org/Public/UNIDATA/extracted/DerivedGeneralCategory.txt DerivedGeneralCategory.txt])
* [[Module:Unicode data/control]]: data for identifying characters that belong to the General Categories of Separator and Other (from [https://www.unicode.org/Public/UNIDATA/extracted/DerivedGeneralCategory.txt DerivedGeneralCategory.txt])
* [[Module:Unicode data/combining]]: data mapping characters to their Combining Classes (from [https://www.unicode.org/Public/UNIDATA/extracted/DerivedCombiningClass.txt DerivedCombiningClass.txt])
* [[Module:Unicode data/Hangul]]: data used to generate the names of [[Hangul]] syllables (from [https://www.unicode.org/Public/UNIDATA/Jamo.txt Jamo.txt])
* [[Special:PrefixIndex/Module:Unicode data/names|Module:Unicode data/names/<nowiki>*</nowiki>]] ({{mono|000hh, .., 0E0hh}}; eg [[:Module:Unicode data/names/000|../names/000]]): names
* [[Module:Unicode data/scripts]]: data mapping characters to their Unicode script properties (from [https://www.unicode.org/Public/UNIDATA/Scripts.txt Scripts.txt]).
* [[Module:Unicode data/derived core properties]]:
The name data modules ([[Special:PrefixIndex/Module:Unicode data/names/|Module:Unicode data/names/<var>xxx</var>]]) were compiled from [https://www.unicode.org/Public/UNIDATA/UnicodeData.txt UnicodeData.txt]. Each one contains, at maximum, code points U+xxx000 to U+xxxFFF.
{{#invoke:Unicode data/documentation functions|show_modules}}
==Copyright==
The Unicode database is released by Unicode Inc. under the following terms:
<blockquote>
Copyright © 1991-2018 Unicode, Inc. All rights reserved. Distributed under the Terms of Use in https://www.unicode.org/copyright.html.
Permission is hereby granted, free of charge, to any person obtaining a copy of the Unicode data files and any associated documentation (the "Data Files") or Unicode software and any associated documentation (the "Software") to deal in the Data Files or Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, and/or sell copies of the Data Files or Software, and to permit persons to whom the Data Files or Software are furnished to do so, provided that either (a) this copyright and permission notice appear with all copies of the Data Files or Software, or (b) this copyright and permission notice appear in associated Documentation.
THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THE DATA FILES OR SOFTWARE.
Except as contained in this notice, the name of a copyright holder shall not be used in advertising or otherwise to promote the sale, use or other dealings in these Data Files or Software without prior written authorization of the copyright holder.
</blockquote>
==Known issues==
* Reading data like <code>[[:Module:Unicode data/aliases]]</code> not provided nor documented
* Test fail: <code>lookup_category</code> {{mono|U+FFFF}} (<noncharacter-FFFF>) expected: Cn.
::<code><nowiki>{{#invoke:Unicode data|lookup|category|0xFFFF}}</nowiki></code> → {{#invoke:Unicode data|lookup|category|0xFFFF}} [Nil]
==See also==
* '''Named entities''': for example, {{unichar|22C1|N-ARY LOGICAL OR}}: <code><nowiki>{{#</nowiki>invoke:[[:Module:LoadData|LoadData]]|[[:Module:Numcr2namecr|Numcr2namecr]]|0x22C1}}</code> → {{#invoke:LoadData|Numcr2namecr|0x22C1}}
<includeonly>{{sandbox other| |
<!-- Categories below this line, please; interwikis at Wikidata -->
[[Category:Unicode character modules|Data]]
[[Category:Lua metamodules]]
}}</includeonly>
n5cwfdzyz9id6x6apj6wdenoy76esw7
Module:Unicode data/category
828
1818
15587
2022-08-07T20:33:32Z
Kambai Akau
15
Created page with "return { singles = { [0x00020] = "Zs", [0x00024] = "Sc", [0x00028] = "Ps", [0x00029] = "Pe", [0x0002A] = "Po", [0x0002B] = "Sm", [0x0002C] = "Po", [0x0002D] = "Pd", [0x0005B] = "Ps", [0x0005C] = "Po", [0x0005D] = "Pe", [0x0005E] = "Sk", [0x0005F] = "Pc", [0x00060] = "Sk", [0x0007B] = "Ps", [0x0007C] = "Sm", [0x0007D] = "Pe", [0x0007E] = "Sm", [0x000A0] = "Zs", [0x000A1] = "Po", [0x000A6] = "So", [0x000A7] = "Po", [0x000A8] =..."
Scribunto
text/plain
return {
singles = {
[0x00020] = "Zs",
[0x00024] = "Sc",
[0x00028] = "Ps",
[0x00029] = "Pe",
[0x0002A] = "Po",
[0x0002B] = "Sm",
[0x0002C] = "Po",
[0x0002D] = "Pd",
[0x0005B] = "Ps",
[0x0005C] = "Po",
[0x0005D] = "Pe",
[0x0005E] = "Sk",
[0x0005F] = "Pc",
[0x00060] = "Sk",
[0x0007B] = "Ps",
[0x0007C] = "Sm",
[0x0007D] = "Pe",
[0x0007E] = "Sm",
[0x000A0] = "Zs",
[0x000A1] = "Po",
[0x000A6] = "So",
[0x000A7] = "Po",
[0x000A8] = "Sk",
[0x000A9] = "So",
[0x000AA] = "Lo",
[0x000AB] = "Pi",
[0x000AC] = "Sm",
[0x000AD] = "Cf",
[0x000AE] = "So",
[0x000AF] = "Sk",
[0x000B0] = "So",
[0x000B1] = "Sm",
[0x000B4] = "Sk",
[0x000B5] = "Ll",
[0x000B8] = "Sk",
[0x000B9] = "No",
[0x000BA] = "Lo",
[0x000BB] = "Pf",
[0x000BF] = "Po",
[0x000D7] = "Sm",
[0x000F7] = "Sm",
[0x00100] = "Lu",
[0x00101] = "Ll",
[0x00102] = "Lu",
[0x00103] = "Ll",
[0x00104] = "Lu",
[0x00105] = "Ll",
[0x00106] = "Lu",
[0x00107] = "Ll",
[0x00108] = "Lu",
[0x00109] = "Ll",
[0x0010A] = "Lu",
[0x0010B] = "Ll",
[0x0010C] = "Lu",
[0x0010D] = "Ll",
[0x0010E] = "Lu",
[0x0010F] = "Ll",
[0x00110] = "Lu",
[0x00111] = "Ll",
[0x00112] = "Lu",
[0x00113] = "Ll",
[0x00114] = "Lu",
[0x00115] = "Ll",
[0x00116] = "Lu",
[0x00117] = "Ll",
[0x00118] = "Lu",
[0x00119] = "Ll",
[0x0011A] = "Lu",
[0x0011B] = "Ll",
[0x0011C] = "Lu",
[0x0011D] = "Ll",
[0x0011E] = "Lu",
[0x0011F] = "Ll",
[0x00120] = "Lu",
[0x00121] = "Ll",
[0x00122] = "Lu",
[0x00123] = "Ll",
[0x00124] = "Lu",
[0x00125] = "Ll",
[0x00126] = "Lu",
[0x00127] = "Ll",
[0x00128] = "Lu",
[0x00129] = "Ll",
[0x0012A] = "Lu",
[0x0012B] = "Ll",
[0x0012C] = "Lu",
[0x0012D] = "Ll",
[0x0012E] = "Lu",
[0x0012F] = "Ll",
[0x00130] = "Lu",
[0x00131] = "Ll",
[0x00132] = "Lu",
[0x00133] = "Ll",
[0x00134] = "Lu",
[0x00135] = "Ll",
[0x00136] = "Lu",
[0x00139] = "Lu",
[0x0013A] = "Ll",
[0x0013B] = "Lu",
[0x0013C] = "Ll",
[0x0013D] = "Lu",
[0x0013E] = "Ll",
[0x0013F] = "Lu",
[0x00140] = "Ll",
[0x00141] = "Lu",
[0x00142] = "Ll",
[0x00143] = "Lu",
[0x00144] = "Ll",
[0x00145] = "Lu",
[0x00146] = "Ll",
[0x00147] = "Lu",
[0x0014A] = "Lu",
[0x0014B] = "Ll",
[0x0014C] = "Lu",
[0x0014D] = "Ll",
[0x0014E] = "Lu",
[0x0014F] = "Ll",
[0x00150] = "Lu",
[0x00151] = "Ll",
[0x00152] = "Lu",
[0x00153] = "Ll",
[0x00154] = "Lu",
[0x00155] = "Ll",
[0x00156] = "Lu",
[0x00157] = "Ll",
[0x00158] = "Lu",
[0x00159] = "Ll",
[0x0015A] = "Lu",
[0x0015B] = "Ll",
[0x0015C] = "Lu",
[0x0015D] = "Ll",
[0x0015E] = "Lu",
[0x0015F] = "Ll",
[0x00160] = "Lu",
[0x00161] = "Ll",
[0x00162] = "Lu",
[0x00163] = "Ll",
[0x00164] = "Lu",
[0x00165] = "Ll",
[0x00166] = "Lu",
[0x00167] = "Ll",
[0x00168] = "Lu",
[0x00169] = "Ll",
[0x0016A] = "Lu",
[0x0016B] = "Ll",
[0x0016C] = "Lu",
[0x0016D] = "Ll",
[0x0016E] = "Lu",
[0x0016F] = "Ll",
[0x00170] = "Lu",
[0x00171] = "Ll",
[0x00172] = "Lu",
[0x00173] = "Ll",
[0x00174] = "Lu",
[0x00175] = "Ll",
[0x00176] = "Lu",
[0x00177] = "Ll",
[0x0017A] = "Ll",
[0x0017B] = "Lu",
[0x0017C] = "Ll",
[0x0017D] = "Lu",
[0x00183] = "Ll",
[0x00184] = "Lu",
[0x00185] = "Ll",
[0x00188] = "Ll",
[0x00192] = "Ll",
[0x00195] = "Ll",
[0x0019E] = "Ll",
[0x001A1] = "Ll",
[0x001A2] = "Lu",
[0x001A3] = "Ll",
[0x001A4] = "Lu",
[0x001A5] = "Ll",
[0x001A8] = "Ll",
[0x001A9] = "Lu",
[0x001AC] = "Lu",
[0x001AD] = "Ll",
[0x001B0] = "Ll",
[0x001B4] = "Ll",
[0x001B5] = "Lu",
[0x001B6] = "Ll",
[0x001BB] = "Lo",
[0x001BC] = "Lu",
[0x001C4] = "Lu",
[0x001C5] = "Lt",
[0x001C6] = "Ll",
[0x001C7] = "Lu",
[0x001C8] = "Lt",
[0x001C9] = "Ll",
[0x001CA] = "Lu",
[0x001CB] = "Lt",
[0x001CC] = "Ll",
[0x001CD] = "Lu",
[0x001CE] = "Ll",
[0x001CF] = "Lu",
[0x001D0] = "Ll",
[0x001D1] = "Lu",
[0x001D2] = "Ll",
[0x001D3] = "Lu",
[0x001D4] = "Ll",
[0x001D5] = "Lu",
[0x001D6] = "Ll",
[0x001D7] = "Lu",
[0x001D8] = "Ll",
[0x001D9] = "Lu",
[0x001DA] = "Ll",
[0x001DB] = "Lu",
[0x001DE] = "Lu",
[0x001DF] = "Ll",
[0x001E0] = "Lu",
[0x001E1] = "Ll",
[0x001E2] = "Lu",
[0x001E3] = "Ll",
[0x001E4] = "Lu",
[0x001E5] = "Ll",
[0x001E6] = "Lu",
[0x001E7] = "Ll",
[0x001E8] = "Lu",
[0x001E9] = "Ll",
[0x001EA] = "Lu",
[0x001EB] = "Ll",
[0x001EC] = "Lu",
[0x001ED] = "Ll",
[0x001EE] = "Lu",
[0x001F1] = "Lu",
[0x001F2] = "Lt",
[0x001F3] = "Ll",
[0x001F4] = "Lu",
[0x001F5] = "Ll",
[0x001F9] = "Ll",
[0x001FA] = "Lu",
[0x001FB] = "Ll",
[0x001FC] = "Lu",
[0x001FD] = "Ll",
[0x001FE] = "Lu",
[0x001FF] = "Ll",
[0x00200] = "Lu",
[0x00201] = "Ll",
[0x00202] = "Lu",
[0x00203] = "Ll",
[0x00204] = "Lu",
[0x00205] = "Ll",
[0x00206] = "Lu",
[0x00207] = "Ll",
[0x00208] = "Lu",
[0x00209] = "Ll",
[0x0020A] = "Lu",
[0x0020B] = "Ll",
[0x0020C] = "Lu",
[0x0020D] = "Ll",
[0x0020E] = "Lu",
[0x0020F] = "Ll",
[0x00210] = "Lu",
[0x00211] = "Ll",
[0x00212] = "Lu",
[0x00213] = "Ll",
[0x00214] = "Lu",
[0x00215] = "Ll",
[0x00216] = "Lu",
[0x00217] = "Ll",
[0x00218] = "Lu",
[0x00219] = "Ll",
[0x0021A] = "Lu",
[0x0021B] = "Ll",
[0x0021C] = "Lu",
[0x0021D] = "Ll",
[0x0021E] = "Lu",
[0x0021F] = "Ll",
[0x00220] = "Lu",
[0x00221] = "Ll",
[0x00222] = "Lu",
[0x00223] = "Ll",
[0x00224] = "Lu",
[0x00225] = "Ll",
[0x00226] = "Lu",
[0x00227] = "Ll",
[0x00228] = "Lu",
[0x00229] = "Ll",
[0x0022A] = "Lu",
[0x0022B] = "Ll",
[0x0022C] = "Lu",
[0x0022D] = "Ll",
[0x0022E] = "Lu",
[0x0022F] = "Ll",
[0x00230] = "Lu",
[0x00231] = "Ll",
[0x00232] = "Lu",
[0x0023C] = "Ll",
[0x00241] = "Lu",
[0x00242] = "Ll",
[0x00247] = "Ll",
[0x00248] = "Lu",
[0x00249] = "Ll",
[0x0024A] = "Lu",
[0x0024B] = "Ll",
[0x0024C] = "Lu",
[0x0024D] = "Ll",
[0x0024E] = "Lu",
[0x00294] = "Lo",
[0x002EC] = "Lm",
[0x002ED] = "Sk",
[0x002EE] = "Lm",
[0x00370] = "Lu",
[0x00371] = "Ll",
[0x00372] = "Lu",
[0x00373] = "Ll",
[0x00374] = "Lm",
[0x00375] = "Sk",
[0x00376] = "Lu",
[0x00377] = "Ll",
[0x0037A] = "Lm",
[0x0037E] = "Po",
[0x0037F] = "Lu",
[0x00386] = "Lu",
[0x00387] = "Po",
[0x0038C] = "Lu",
[0x00390] = "Ll",
[0x003CF] = "Lu",
[0x003D8] = "Lu",
[0x003D9] = "Ll",
[0x003DA] = "Lu",
[0x003DB] = "Ll",
[0x003DC] = "Lu",
[0x003DD] = "Ll",
[0x003DE] = "Lu",
[0x003DF] = "Ll",
[0x003E0] = "Lu",
[0x003E1] = "Ll",
[0x003E2] = "Lu",
[0x003E3] = "Ll",
[0x003E4] = "Lu",
[0x003E5] = "Ll",
[0x003E6] = "Lu",
[0x003E7] = "Ll",
[0x003E8] = "Lu",
[0x003E9] = "Ll",
[0x003EA] = "Lu",
[0x003EB] = "Ll",
[0x003EC] = "Lu",
[0x003ED] = "Ll",
[0x003EE] = "Lu",
[0x003F4] = "Lu",
[0x003F5] = "Ll",
[0x003F6] = "Sm",
[0x003F7] = "Lu",
[0x003F8] = "Ll",
[0x00460] = "Lu",
[0x00461] = "Ll",
[0x00462] = "Lu",
[0x00463] = "Ll",
[0x00464] = "Lu",
[0x00465] = "Ll",
[0x00466] = "Lu",
[0x00467] = "Ll",
[0x00468] = "Lu",
[0x00469] = "Ll",
[0x0046A] = "Lu",
[0x0046B] = "Ll",
[0x0046C] = "Lu",
[0x0046D] = "Ll",
[0x0046E] = "Lu",
[0x0046F] = "Ll",
[0x00470] = "Lu",
[0x00471] = "Ll",
[0x00472] = "Lu",
[0x00473] = "Ll",
[0x00474] = "Lu",
[0x00475] = "Ll",
[0x00476] = "Lu",
[0x00477] = "Ll",
[0x00478] = "Lu",
[0x00479] = "Ll",
[0x0047A] = "Lu",
[0x0047B] = "Ll",
[0x0047C] = "Lu",
[0x0047D] = "Ll",
[0x0047E] = "Lu",
[0x0047F] = "Ll",
[0x00480] = "Lu",
[0x00481] = "Ll",
[0x00482] = "So",
[0x0048A] = "Lu",
[0x0048B] = "Ll",
[0x0048C] = "Lu",
[0x0048D] = "Ll",
[0x0048E] = "Lu",
[0x0048F] = "Ll",
[0x00490] = "Lu",
[0x00491] = "Ll",
[0x00492] = "Lu",
[0x00493] = "Ll",
[0x00494] = "Lu",
[0x00495] = "Ll",
[0x00496] = "Lu",
[0x00497] = "Ll",
[0x00498] = "Lu",
[0x00499] = "Ll",
[0x0049A] = "Lu",
[0x0049B] = "Ll",
[0x0049C] = "Lu",
[0x0049D] = "Ll",
[0x0049E] = "Lu",
[0x0049F] = "Ll",
[0x004A0] = "Lu",
[0x004A1] = "Ll",
[0x004A2] = "Lu",
[0x004A3] = "Ll",
[0x004A4] = "Lu",
[0x004A5] = "Ll",
[0x004A6] = "Lu",
[0x004A7] = "Ll",
[0x004A8] = "Lu",
[0x004A9] = "Ll",
[0x004AA] = "Lu",
[0x004AB] = "Ll",
[0x004AC] = "Lu",
[0x004AD] = "Ll",
[0x004AE] = "Lu",
[0x004AF] = "Ll",
[0x004B0] = "Lu",
[0x004B1] = "Ll",
[0x004B2] = "Lu",
[0x004B3] = "Ll",
[0x004B4] = "Lu",
[0x004B5] = "Ll",
[0x004B6] = "Lu",
[0x004B7] = "Ll",
[0x004B8] = "Lu",
[0x004B9] = "Ll",
[0x004BA] = "Lu",
[0x004BB] = "Ll",
[0x004BC] = "Lu",
[0x004BD] = "Ll",
[0x004BE] = "Lu",
[0x004BF] = "Ll",
[0x004C2] = "Ll",
[0x004C3] = "Lu",
[0x004C4] = "Ll",
[0x004C5] = "Lu",
[0x004C6] = "Ll",
[0x004C7] = "Lu",
[0x004C8] = "Ll",
[0x004C9] = "Lu",
[0x004CA] = "Ll",
[0x004CB] = "Lu",
[0x004CC] = "Ll",
[0x004CD] = "Lu",
[0x004D0] = "Lu",
[0x004D1] = "Ll",
[0x004D2] = "Lu",
[0x004D3] = "Ll",
[0x004D4] = "Lu",
[0x004D5] = "Ll",
[0x004D6] = "Lu",
[0x004D7] = "Ll",
[0x004D8] = "Lu",
[0x004D9] = "Ll",
[0x004DA] = "Lu",
[0x004DB] = "Ll",
[0x004DC] = "Lu",
[0x004DD] = "Ll",
[0x004DE] = "Lu",
[0x004DF] = "Ll",
[0x004E0] = "Lu",
[0x004E1] = "Ll",
[0x004E2] = "Lu",
[0x004E3] = "Ll",
[0x004E4] = "Lu",
[0x004E5] = "Ll",
[0x004E6] = "Lu",
[0x004E7] = "Ll",
[0x004E8] = "Lu",
[0x004E9] = "Ll",
[0x004EA] = "Lu",
[0x004EB] = "Ll",
[0x004EC] = "Lu",
[0x004ED] = "Ll",
[0x004EE] = "Lu",
[0x004EF] = "Ll",
[0x004F0] = "Lu",
[0x004F1] = "Ll",
[0x004F2] = "Lu",
[0x004F3] = "Ll",
[0x004F4] = "Lu",
[0x004F5] = "Ll",
[0x004F6] = "Lu",
[0x004F7] = "Ll",
[0x004F8] = "Lu",
[0x004F9] = "Ll",
[0x004FA] = "Lu",
[0x004FB] = "Ll",
[0x004FC] = "Lu",
[0x004FD] = "Ll",
[0x004FE] = "Lu",
[0x004FF] = "Ll",
[0x00500] = "Lu",
[0x00501] = "Ll",
[0x00502] = "Lu",
[0x00503] = "Ll",
[0x00504] = "Lu",
[0x00505] = "Ll",
[0x00506] = "Lu",
[0x00507] = "Ll",
[0x00508] = "Lu",
[0x00509] = "Ll",
[0x0050A] = "Lu",
[0x0050B] = "Ll",
[0x0050C] = "Lu",
[0x0050D] = "Ll",
[0x0050E] = "Lu",
[0x0050F] = "Ll",
[0x00510] = "Lu",
[0x00511] = "Ll",
[0x00512] = "Lu",
[0x00513] = "Ll",
[0x00514] = "Lu",
[0x00515] = "Ll",
[0x00516] = "Lu",
[0x00517] = "Ll",
[0x00518] = "Lu",
[0x00519] = "Ll",
[0x0051A] = "Lu",
[0x0051B] = "Ll",
[0x0051C] = "Lu",
[0x0051D] = "Ll",
[0x0051E] = "Lu",
[0x0051F] = "Ll",
[0x00520] = "Lu",
[0x00521] = "Ll",
[0x00522] = "Lu",
[0x00523] = "Ll",
[0x00524] = "Lu",
[0x00525] = "Ll",
[0x00526] = "Lu",
[0x00527] = "Ll",
[0x00528] = "Lu",
[0x00529] = "Ll",
[0x0052A] = "Lu",
[0x0052B] = "Ll",
[0x0052C] = "Lu",
[0x0052D] = "Ll",
[0x0052E] = "Lu",
[0x0052F] = "Ll",
[0x00559] = "Lm",
[0x00589] = "Po",
[0x0058A] = "Pd",
[0x0058F] = "Sc",
[0x005BE] = "Pd",
[0x005BF] = "Mn",
[0x005C0] = "Po",
[0x005C3] = "Po",
[0x005C6] = "Po",
[0x005C7] = "Mn",
[0x0060B] = "Sc",
[0x0061B] = "Po",
[0x0061C] = "Cf",
[0x00640] = "Lm",
[0x00670] = "Mn",
[0x006D4] = "Po",
[0x006D5] = "Lo",
[0x006DD] = "Cf",
[0x006DE] = "So",
[0x006E9] = "So",
[0x006FF] = "Lo",
[0x0070F] = "Cf",
[0x00710] = "Lo",
[0x00711] = "Mn",
[0x007B1] = "Lo",
[0x007F6] = "So",
[0x007FA] = "Lm",
[0x007FD] = "Mn",
[0x0081A] = "Lm",
[0x00824] = "Lm",
[0x00828] = "Lm",
[0x0085E] = "Po",
[0x00888] = "Sk",
[0x008C9] = "Lm",
[0x008E2] = "Cf",
[0x00903] = "Mc",
[0x0093A] = "Mn",
[0x0093B] = "Mc",
[0x0093C] = "Mn",
[0x0093D] = "Lo",
[0x0094D] = "Mn",
[0x00950] = "Lo",
[0x00970] = "Po",
[0x00971] = "Lm",
[0x00981] = "Mn",
[0x009B2] = "Lo",
[0x009BC] = "Mn",
[0x009BD] = "Lo",
[0x009CD] = "Mn",
[0x009CE] = "Lo",
[0x009D7] = "Mc",
[0x009FA] = "So",
[0x009FB] = "Sc",
[0x009FC] = "Lo",
[0x009FD] = "Po",
[0x009FE] = "Mn",
[0x00A03] = "Mc",
[0x00A3C] = "Mn",
[0x00A51] = "Mn",
[0x00A5E] = "Lo",
[0x00A75] = "Mn",
[0x00A76] = "Po",
[0x00A83] = "Mc",
[0x00ABC] = "Mn",
[0x00ABD] = "Lo",
[0x00AC9] = "Mc",
[0x00ACD] = "Mn",
[0x00AD0] = "Lo",
[0x00AF0] = "Po",
[0x00AF1] = "Sc",
[0x00AF9] = "Lo",
[0x00B01] = "Mn",
[0x00B3C] = "Mn",
[0x00B3D] = "Lo",
[0x00B3E] = "Mc",
[0x00B3F] = "Mn",
[0x00B40] = "Mc",
[0x00B4D] = "Mn",
[0x00B57] = "Mc",
[0x00B70] = "So",
[0x00B71] = "Lo",
[0x00B82] = "Mn",
[0x00B83] = "Lo",
[0x00B9C] = "Lo",
[0x00BC0] = "Mn",
[0x00BCD] = "Mn",
[0x00BD0] = "Lo",
[0x00BD7] = "Mc",
[0x00BF9] = "Sc",
[0x00BFA] = "So",
[0x00C00] = "Mn",
[0x00C04] = "Mn",
[0x00C3C] = "Mn",
[0x00C3D] = "Lo",
[0x00C5D] = "Lo",
[0x00C77] = "Po",
[0x00C7F] = "So",
[0x00C80] = "Lo",
[0x00C81] = "Mn",
[0x00C84] = "Po",
[0x00CBC] = "Mn",
[0x00CBD] = "Lo",
[0x00CBE] = "Mc",
[0x00CBF] = "Mn",
[0x00CC6] = "Mn",
[0x00D3D] = "Lo",
[0x00D4D] = "Mn",
[0x00D4E] = "Lo",
[0x00D4F] = "So",
[0x00D57] = "Mc",
[0x00D79] = "So",
[0x00D81] = "Mn",
[0x00DBD] = "Lo",
[0x00DCA] = "Mn",
[0x00DD6] = "Mn",
[0x00DF4] = "Po",
[0x00E31] = "Mn",
[0x00E3F] = "Sc",
[0x00E46] = "Lm",
[0x00E4F] = "Po",
[0x00E84] = "Lo",
[0x00EA5] = "Lo",
[0x00EB1] = "Mn",
[0x00EBD] = "Lo",
[0x00EC6] = "Lm",
[0x00F00] = "Lo",
[0x00F13] = "So",
[0x00F14] = "Po",
[0x00F34] = "So",
[0x00F35] = "Mn",
[0x00F36] = "So",
[0x00F37] = "Mn",
[0x00F38] = "So",
[0x00F39] = "Mn",
[0x00F3A] = "Ps",
[0x00F3B] = "Pe",
[0x00F3C] = "Ps",
[0x00F3D] = "Pe",
[0x00F7F] = "Mc",
[0x00F85] = "Po",
[0x00FC6] = "Mn",
[0x01031] = "Mc",
[0x01038] = "Mc",
[0x0103F] = "Lo",
[0x01061] = "Lo",
[0x01082] = "Mn",
[0x0108D] = "Mn",
[0x0108E] = "Lo",
[0x0108F] = "Mc",
[0x0109D] = "Mn",
[0x010C7] = "Lu",
[0x010CD] = "Lu",
[0x010FB] = "Po",
[0x010FC] = "Lm",
[0x01258] = "Lo",
[0x012C0] = "Lo",
[0x01400] = "Pd",
[0x0166D] = "So",
[0x0166E] = "Po",
[0x01680] = "Zs",
[0x0169B] = "Ps",
[0x0169C] = "Pe",
[0x01715] = "Mc",
[0x01734] = "Mc",
[0x017B6] = "Mc",
[0x017C6] = "Mn",
[0x017D7] = "Lm",
[0x017DB] = "Sc",
[0x017DC] = "Lo",
[0x017DD] = "Mn",
[0x01806] = "Pd",
[0x0180E] = "Cf",
[0x0180F] = "Mn",
[0x01843] = "Lm",
[0x018A9] = "Mn",
[0x018AA] = "Lo",
[0x01932] = "Mn",
[0x01940] = "So",
[0x019DA] = "No",
[0x01A1B] = "Mn",
[0x01A55] = "Mc",
[0x01A56] = "Mn",
[0x01A57] = "Mc",
[0x01A60] = "Mn",
[0x01A61] = "Mc",
[0x01A62] = "Mn",
[0x01A7F] = "Mn",
[0x01AA7] = "Lm",
[0x01ABE] = "Me",
[0x01B04] = "Mc",
[0x01B34] = "Mn",
[0x01B35] = "Mc",
[0x01B3B] = "Mc",
[0x01B3C] = "Mn",
[0x01B42] = "Mn",
[0x01B82] = "Mc",
[0x01BA1] = "Mc",
[0x01BAA] = "Mc",
[0x01BE6] = "Mn",
[0x01BE7] = "Mc",
[0x01BED] = "Mn",
[0x01BEE] = "Mc",
[0x01CD3] = "Po",
[0x01CE1] = "Mc",
[0x01CED] = "Mn",
[0x01CF4] = "Mn",
[0x01CF7] = "Mc",
[0x01CFA] = "Lo",
[0x01D78] = "Lm",
[0x01E00] = "Lu",
[0x01E01] = "Ll",
[0x01E02] = "Lu",
[0x01E03] = "Ll",
[0x01E04] = "Lu",
[0x01E05] = "Ll",
[0x01E06] = "Lu",
[0x01E07] = "Ll",
[0x01E08] = "Lu",
[0x01E09] = "Ll",
[0x01E0A] = "Lu",
[0x01E0B] = "Ll",
[0x01E0C] = "Lu",
[0x01E0D] = "Ll",
[0x01E0E] = "Lu",
[0x01E0F] = "Ll",
[0x01E10] = "Lu",
[0x01E11] = "Ll",
[0x01E12] = "Lu",
[0x01E13] = "Ll",
[0x01E14] = "Lu",
[0x01E15] = "Ll",
[0x01E16] = "Lu",
[0x01E17] = "Ll",
[0x01E18] = "Lu",
[0x01E19] = "Ll",
[0x01E1A] = "Lu",
[0x01E1B] = "Ll",
[0x01E1C] = "Lu",
[0x01E1D] = "Ll",
[0x01E1E] = "Lu",
[0x01E1F] = "Ll",
[0x01E20] = "Lu",
[0x01E21] = "Ll",
[0x01E22] = "Lu",
[0x01E23] = "Ll",
[0x01E24] = "Lu",
[0x01E25] = "Ll",
[0x01E26] = "Lu",
[0x01E27] = "Ll",
[0x01E28] = "Lu",
[0x01E29] = "Ll",
[0x01E2A] = "Lu",
[0x01E2B] = "Ll",
[0x01E2C] = "Lu",
[0x01E2D] = "Ll",
[0x01E2E] = "Lu",
[0x01E2F] = "Ll",
[0x01E30] = "Lu",
[0x01E31] = "Ll",
[0x01E32] = "Lu",
[0x01E33] = "Ll",
[0x01E34] = "Lu",
[0x01E35] = "Ll",
[0x01E36] = "Lu",
[0x01E37] = "Ll",
[0x01E38] = "Lu",
[0x01E39] = "Ll",
[0x01E3A] = "Lu",
[0x01E3B] = "Ll",
[0x01E3C] = "Lu",
[0x01E3D] = "Ll",
[0x01E3E] = "Lu",
[0x01E3F] = "Ll",
[0x01E40] = "Lu",
[0x01E41] = "Ll",
[0x01E42] = "Lu",
[0x01E43] = "Ll",
[0x01E44] = "Lu",
[0x01E45] = "Ll",
[0x01E46] = "Lu",
[0x01E47] = "Ll",
[0x01E48] = "Lu",
[0x01E49] = "Ll",
[0x01E4A] = "Lu",
[0x01E4B] = "Ll",
[0x01E4C] = "Lu",
[0x01E4D] = "Ll",
[0x01E4E] = "Lu",
[0x01E4F] = "Ll",
[0x01E50] = "Lu",
[0x01E51] = "Ll",
[0x01E52] = "Lu",
[0x01E53] = "Ll",
[0x01E54] = "Lu",
[0x01E55] = "Ll",
[0x01E56] = "Lu",
[0x01E57] = "Ll",
[0x01E58] = "Lu",
[0x01E59] = "Ll",
[0x01E5A] = "Lu",
[0x01E5B] = "Ll",
[0x01E5C] = "Lu",
[0x01E5D] = "Ll",
[0x01E5E] = "Lu",
[0x01E5F] = "Ll",
[0x01E60] = "Lu",
[0x01E61] = "Ll",
[0x01E62] = "Lu",
[0x01E63] = "Ll",
[0x01E64] = "Lu",
[0x01E65] = "Ll",
[0x01E66] = "Lu",
[0x01E67] = "Ll",
[0x01E68] = "Lu",
[0x01E69] = "Ll",
[0x01E6A] = "Lu",
[0x01E6B] = "Ll",
[0x01E6C] = "Lu",
[0x01E6D] = "Ll",
[0x01E6E] = "Lu",
[0x01E6F] = "Ll",
[0x01E70] = "Lu",
[0x01E71] = "Ll",
[0x01E72] = "Lu",
[0x01E73] = "Ll",
[0x01E74] = "Lu",
[0x01E75] = "Ll",
[0x01E76] = "Lu",
[0x01E77] = "Ll",
[0x01E78] = "Lu",
[0x01E79] = "Ll",
[0x01E7A] = "Lu",
[0x01E7B] = "Ll",
[0x01E7C] = "Lu",
[0x01E7D] = "Ll",
[0x01E7E] = "Lu",
[0x01E7F] = "Ll",
[0x01E80] = "Lu",
[0x01E81] = "Ll",
[0x01E82] = "Lu",
[0x01E83] = "Ll",
[0x01E84] = "Lu",
[0x01E85] = "Ll",
[0x01E86] = "Lu",
[0x01E87] = "Ll",
[0x01E88] = "Lu",
[0x01E89] = "Ll",
[0x01E8A] = "Lu",
[0x01E8B] = "Ll",
[0x01E8C] = "Lu",
[0x01E8D] = "Ll",
[0x01E8E] = "Lu",
[0x01E8F] = "Ll",
[0x01E90] = "Lu",
[0x01E91] = "Ll",
[0x01E92] = "Lu",
[0x01E93] = "Ll",
[0x01E94] = "Lu",
[0x01E9E] = "Lu",
[0x01E9F] = "Ll",
[0x01EA0] = "Lu",
[0x01EA1] = "Ll",
[0x01EA2] = "Lu",
[0x01EA3] = "Ll",
[0x01EA4] = "Lu",
[0x01EA5] = "Ll",
[0x01EA6] = "Lu",
[0x01EA7] = "Ll",
[0x01EA8] = "Lu",
[0x01EA9] = "Ll",
[0x01EAA] = "Lu",
[0x01EAB] = "Ll",
[0x01EAC] = "Lu",
[0x01EAD] = "Ll",
[0x01EAE] = "Lu",
[0x01EAF] = "Ll",
[0x01EB0] = "Lu",
[0x01EB1] = "Ll",
[0x01EB2] = "Lu",
[0x01EB3] = "Ll",
[0x01EB4] = "Lu",
[0x01EB5] = "Ll",
[0x01EB6] = "Lu",
[0x01EB7] = "Ll",
[0x01EB8] = "Lu",
[0x01EB9] = "Ll",
[0x01EBA] = "Lu",
[0x01EBB] = "Ll",
[0x01EBC] = "Lu",
[0x01EBD] = "Ll",
[0x01EBE] = "Lu",
[0x01EBF] = "Ll",
[0x01EC0] = "Lu",
[0x01EC1] = "Ll",
[0x01EC2] = "Lu",
[0x01EC3] = "Ll",
[0x01EC4] = "Lu",
[0x01EC5] = "Ll",
[0x01EC6] = "Lu",
[0x01EC7] = "Ll",
[0x01EC8] = "Lu",
[0x01EC9] = "Ll",
[0x01ECA] = "Lu",
[0x01ECB] = "Ll",
[0x01ECC] = "Lu",
[0x01ECD] = "Ll",
[0x01ECE] = "Lu",
[0x01ECF] = "Ll",
[0x01ED0] = "Lu",
[0x01ED1] = "Ll",
[0x01ED2] = "Lu",
[0x01ED3] = "Ll",
[0x01ED4] = "Lu",
[0x01ED5] = "Ll",
[0x01ED6] = "Lu",
[0x01ED7] = "Ll",
[0x01ED8] = "Lu",
[0x01ED9] = "Ll",
[0x01EDA] = "Lu",
[0x01EDB] = "Ll",
[0x01EDC] = "Lu",
[0x01EDD] = "Ll",
[0x01EDE] = "Lu",
[0x01EDF] = "Ll",
[0x01EE0] = "Lu",
[0x01EE1] = "Ll",
[0x01EE2] = "Lu",
[0x01EE3] = "Ll",
[0x01EE4] = "Lu",
[0x01EE5] = "Ll",
[0x01EE6] = "Lu",
[0x01EE7] = "Ll",
[0x01EE8] = "Lu",
[0x01EE9] = "Ll",
[0x01EEA] = "Lu",
[0x01EEB] = "Ll",
[0x01EEC] = "Lu",
[0x01EED] = "Ll",
[0x01EEE] = "Lu",
[0x01EEF] = "Ll",
[0x01EF0] = "Lu",
[0x01EF1] = "Ll",
[0x01EF2] = "Lu",
[0x01EF3] = "Ll",
[0x01EF4] = "Lu",
[0x01EF5] = "Ll",
[0x01EF6] = "Lu",
[0x01EF7] = "Ll",
[0x01EF8] = "Lu",
[0x01EF9] = "Ll",
[0x01EFA] = "Lu",
[0x01EFB] = "Ll",
[0x01EFC] = "Lu",
[0x01EFD] = "Ll",
[0x01EFE] = "Lu",
[0x01F59] = "Lu",
[0x01F5B] = "Lu",
[0x01F5D] = "Lu",
[0x01F5F] = "Lu",
[0x01FBC] = "Lt",
[0x01FBD] = "Sk",
[0x01FBE] = "Ll",
[0x01FCC] = "Lt",
[0x01FFC] = "Lt",
[0x02018] = "Pi",
[0x02019] = "Pf",
[0x0201A] = "Ps",
[0x0201D] = "Pf",
[0x0201E] = "Ps",
[0x0201F] = "Pi",
[0x02028] = "Zl",
[0x02029] = "Zp",
[0x0202F] = "Zs",
[0x02039] = "Pi",
[0x0203A] = "Pf",
[0x02044] = "Sm",
[0x02045] = "Ps",
[0x02046] = "Pe",
[0x02052] = "Sm",
[0x02053] = "Po",
[0x02054] = "Pc",
[0x0205F] = "Zs",
[0x02070] = "No",
[0x02071] = "Lm",
[0x0207D] = "Ps",
[0x0207E] = "Pe",
[0x0207F] = "Lm",
[0x0208D] = "Ps",
[0x0208E] = "Pe",
[0x020E1] = "Mn",
[0x02102] = "Lu",
[0x02107] = "Lu",
[0x0210A] = "Ll",
[0x02113] = "Ll",
[0x02114] = "So",
[0x02115] = "Lu",
[0x02118] = "Sm",
[0x02124] = "Lu",
[0x02125] = "So",
[0x02126] = "Lu",
[0x02127] = "So",
[0x02128] = "Lu",
[0x02129] = "So",
[0x0212E] = "So",
[0x0212F] = "Ll",
[0x02134] = "Ll",
[0x02139] = "Ll",
[0x02145] = "Lu",
[0x0214A] = "So",
[0x0214B] = "Sm",
[0x0214E] = "Ll",
[0x0214F] = "So",
[0x02183] = "Lu",
[0x02184] = "Ll",
[0x02189] = "No",
[0x021A0] = "Sm",
[0x021A3] = "Sm",
[0x021A6] = "Sm",
[0x021AE] = "Sm",
[0x021D2] = "Sm",
[0x021D3] = "So",
[0x021D4] = "Sm",
[0x02308] = "Ps",
[0x02309] = "Pe",
[0x0230A] = "Ps",
[0x0230B] = "Pe",
[0x02329] = "Ps",
[0x0232A] = "Pe",
[0x0237C] = "Sm",
[0x025B7] = "Sm",
[0x025C1] = "Sm",
[0x0266F] = "Sm",
[0x02768] = "Ps",
[0x02769] = "Pe",
[0x0276A] = "Ps",
[0x0276B] = "Pe",
[0x0276C] = "Ps",
[0x0276D] = "Pe",
[0x0276E] = "Ps",
[0x0276F] = "Pe",
[0x02770] = "Ps",
[0x02771] = "Pe",
[0x02772] = "Ps",
[0x02773] = "Pe",
[0x02774] = "Ps",
[0x02775] = "Pe",
[0x027C5] = "Ps",
[0x027C6] = "Pe",
[0x027E6] = "Ps",
[0x027E7] = "Pe",
[0x027E8] = "Ps",
[0x027E9] = "Pe",
[0x027EA] = "Ps",
[0x027EB] = "Pe",
[0x027EC] = "Ps",
[0x027ED] = "Pe",
[0x027EE] = "Ps",
[0x027EF] = "Pe",
[0x02983] = "Ps",
[0x02984] = "Pe",
[0x02985] = "Ps",
[0x02986] = "Pe",
[0x02987] = "Ps",
[0x02988] = "Pe",
[0x02989] = "Ps",
[0x0298A] = "Pe",
[0x0298B] = "Ps",
[0x0298C] = "Pe",
[0x0298D] = "Ps",
[0x0298E] = "Pe",
[0x0298F] = "Ps",
[0x02990] = "Pe",
[0x02991] = "Ps",
[0x02992] = "Pe",
[0x02993] = "Ps",
[0x02994] = "Pe",
[0x02995] = "Ps",
[0x02996] = "Pe",
[0x02997] = "Ps",
[0x02998] = "Pe",
[0x029D8] = "Ps",
[0x029D9] = "Pe",
[0x029DA] = "Ps",
[0x029DB] = "Pe",
[0x029FC] = "Ps",
[0x029FD] = "Pe",
[0x02C60] = "Lu",
[0x02C61] = "Ll",
[0x02C67] = "Lu",
[0x02C68] = "Ll",
[0x02C69] = "Lu",
[0x02C6A] = "Ll",
[0x02C6B] = "Lu",
[0x02C6C] = "Ll",
[0x02C71] = "Ll",
[0x02C72] = "Lu",
[0x02C75] = "Lu",
[0x02C81] = "Ll",
[0x02C82] = "Lu",
[0x02C83] = "Ll",
[0x02C84] = "Lu",
[0x02C85] = "Ll",
[0x02C86] = "Lu",
[0x02C87] = "Ll",
[0x02C88] = "Lu",
[0x02C89] = "Ll",
[0x02C8A] = "Lu",
[0x02C8B] = "Ll",
[0x02C8C] = "Lu",
[0x02C8D] = "Ll",
[0x02C8E] = "Lu",
[0x02C8F] = "Ll",
[0x02C90] = "Lu",
[0x02C91] = "Ll",
[0x02C92] = "Lu",
[0x02C93] = "Ll",
[0x02C94] = "Lu",
[0x02C95] = "Ll",
[0x02C96] = "Lu",
[0x02C97] = "Ll",
[0x02C98] = "Lu",
[0x02C99] = "Ll",
[0x02C9A] = "Lu",
[0x02C9B] = "Ll",
[0x02C9C] = "Lu",
[0x02C9D] = "Ll",
[0x02C9E] = "Lu",
[0x02C9F] = "Ll",
[0x02CA0] = "Lu",
[0x02CA1] = "Ll",
[0x02CA2] = "Lu",
[0x02CA3] = "Ll",
[0x02CA4] = "Lu",
[0x02CA5] = "Ll",
[0x02CA6] = "Lu",
[0x02CA7] = "Ll",
[0x02CA8] = "Lu",
[0x02CA9] = "Ll",
[0x02CAA] = "Lu",
[0x02CAB] = "Ll",
[0x02CAC] = "Lu",
[0x02CAD] = "Ll",
[0x02CAE] = "Lu",
[0x02CAF] = "Ll",
[0x02CB0] = "Lu",
[0x02CB1] = "Ll",
[0x02CB2] = "Lu",
[0x02CB3] = "Ll",
[0x02CB4] = "Lu",
[0x02CB5] = "Ll",
[0x02CB6] = "Lu",
[0x02CB7] = "Ll",
[0x02CB8] = "Lu",
[0x02CB9] = "Ll",
[0x02CBA] = "Lu",
[0x02CBB] = "Ll",
[0x02CBC] = "Lu",
[0x02CBD] = "Ll",
[0x02CBE] = "Lu",
[0x02CBF] = "Ll",
[0x02CC0] = "Lu",
[0x02CC1] = "Ll",
[0x02CC2] = "Lu",
[0x02CC3] = "Ll",
[0x02CC4] = "Lu",
[0x02CC5] = "Ll",
[0x02CC6] = "Lu",
[0x02CC7] = "Ll",
[0x02CC8] = "Lu",
[0x02CC9] = "Ll",
[0x02CCA] = "Lu",
[0x02CCB] = "Ll",
[0x02CCC] = "Lu",
[0x02CCD] = "Ll",
[0x02CCE] = "Lu",
[0x02CCF] = "Ll",
[0x02CD0] = "Lu",
[0x02CD1] = "Ll",
[0x02CD2] = "Lu",
[0x02CD3] = "Ll",
[0x02CD4] = "Lu",
[0x02CD5] = "Ll",
[0x02CD6] = "Lu",
[0x02CD7] = "Ll",
[0x02CD8] = "Lu",
[0x02CD9] = "Ll",
[0x02CDA] = "Lu",
[0x02CDB] = "Ll",
[0x02CDC] = "Lu",
[0x02CDD] = "Ll",
[0x02CDE] = "Lu",
[0x02CDF] = "Ll",
[0x02CE0] = "Lu",
[0x02CE1] = "Ll",
[0x02CE2] = "Lu",
[0x02CEB] = "Lu",
[0x02CEC] = "Ll",
[0x02CED] = "Lu",
[0x02CEE] = "Ll",
[0x02CF2] = "Lu",
[0x02CF3] = "Ll",
[0x02CFD] = "No",
[0x02D27] = "Ll",
[0x02D2D] = "Ll",
[0x02D6F] = "Lm",
[0x02D70] = "Po",
[0x02D7F] = "Mn",
[0x02E02] = "Pi",
[0x02E03] = "Pf",
[0x02E04] = "Pi",
[0x02E05] = "Pf",
[0x02E09] = "Pi",
[0x02E0A] = "Pf",
[0x02E0B] = "Po",
[0x02E0C] = "Pi",
[0x02E0D] = "Pf",
[0x02E17] = "Pd",
[0x02E1A] = "Pd",
[0x02E1B] = "Po",
[0x02E1C] = "Pi",
[0x02E1D] = "Pf",
[0x02E20] = "Pi",
[0x02E21] = "Pf",
[0x02E22] = "Ps",
[0x02E23] = "Pe",
[0x02E24] = "Ps",
[0x02E25] = "Pe",
[0x02E26] = "Ps",
[0x02E27] = "Pe",
[0x02E28] = "Ps",
[0x02E29] = "Pe",
[0x02E2F] = "Lm",
[0x02E40] = "Pd",
[0x02E41] = "Po",
[0x02E42] = "Ps",
[0x02E55] = "Ps",
[0x02E56] = "Pe",
[0x02E57] = "Ps",
[0x02E58] = "Pe",
[0x02E59] = "Ps",
[0x02E5A] = "Pe",
[0x02E5B] = "Ps",
[0x02E5C] = "Pe",
[0x02E5D] = "Pd",
[0x03000] = "Zs",
[0x03004] = "So",
[0x03005] = "Lm",
[0x03006] = "Lo",
[0x03007] = "Nl",
[0x03008] = "Ps",
[0x03009] = "Pe",
[0x0300A] = "Ps",
[0x0300B] = "Pe",
[0x0300C] = "Ps",
[0x0300D] = "Pe",
[0x0300E] = "Ps",
[0x0300F] = "Pe",
[0x03010] = "Ps",
[0x03011] = "Pe",
[0x03014] = "Ps",
[0x03015] = "Pe",
[0x03016] = "Ps",
[0x03017] = "Pe",
[0x03018] = "Ps",
[0x03019] = "Pe",
[0x0301A] = "Ps",
[0x0301B] = "Pe",
[0x0301C] = "Pd",
[0x0301D] = "Ps",
[0x03020] = "So",
[0x03030] = "Pd",
[0x0303B] = "Lm",
[0x0303C] = "Lo",
[0x0303D] = "Po",
[0x0309F] = "Lo",
[0x030A0] = "Pd",
[0x030FB] = "Po",
[0x030FF] = "Lo",
[0x03250] = "So",
[0x0A015] = "Lm",
[0x0A60C] = "Lm",
[0x0A640] = "Lu",
[0x0A641] = "Ll",
[0x0A642] = "Lu",
[0x0A643] = "Ll",
[0x0A644] = "Lu",
[0x0A645] = "Ll",
[0x0A646] = "Lu",
[0x0A647] = "Ll",
[0x0A648] = "Lu",
[0x0A649] = "Ll",
[0x0A64A] = "Lu",
[0x0A64B] = "Ll",
[0x0A64C] = "Lu",
[0x0A64D] = "Ll",
[0x0A64E] = "Lu",
[0x0A64F] = "Ll",
[0x0A650] = "Lu",
[0x0A651] = "Ll",
[0x0A652] = "Lu",
[0x0A653] = "Ll",
[0x0A654] = "Lu",
[0x0A655] = "Ll",
[0x0A656] = "Lu",
[0x0A657] = "Ll",
[0x0A658] = "Lu",
[0x0A659] = "Ll",
[0x0A65A] = "Lu",
[0x0A65B] = "Ll",
[0x0A65C] = "Lu",
[0x0A65D] = "Ll",
[0x0A65E] = "Lu",
[0x0A65F] = "Ll",
[0x0A660] = "Lu",
[0x0A661] = "Ll",
[0x0A662] = "Lu",
[0x0A663] = "Ll",
[0x0A664] = "Lu",
[0x0A665] = "Ll",
[0x0A666] = "Lu",
[0x0A667] = "Ll",
[0x0A668] = "Lu",
[0x0A669] = "Ll",
[0x0A66A] = "Lu",
[0x0A66B] = "Ll",
[0x0A66C] = "Lu",
[0x0A66D] = "Ll",
[0x0A66E] = "Lo",
[0x0A66F] = "Mn",
[0x0A673] = "Po",
[0x0A67E] = "Po",
[0x0A67F] = "Lm",
[0x0A680] = "Lu",
[0x0A681] = "Ll",
[0x0A682] = "Lu",
[0x0A683] = "Ll",
[0x0A684] = "Lu",
[0x0A685] = "Ll",
[0x0A686] = "Lu",
[0x0A687] = "Ll",
[0x0A688] = "Lu",
[0x0A689] = "Ll",
[0x0A68A] = "Lu",
[0x0A68B] = "Ll",
[0x0A68C] = "Lu",
[0x0A68D] = "Ll",
[0x0A68E] = "Lu",
[0x0A68F] = "Ll",
[0x0A690] = "Lu",
[0x0A691] = "Ll",
[0x0A692] = "Lu",
[0x0A693] = "Ll",
[0x0A694] = "Lu",
[0x0A695] = "Ll",
[0x0A696] = "Lu",
[0x0A697] = "Ll",
[0x0A698] = "Lu",
[0x0A699] = "Ll",
[0x0A69A] = "Lu",
[0x0A69B] = "Ll",
[0x0A722] = "Lu",
[0x0A723] = "Ll",
[0x0A724] = "Lu",
[0x0A725] = "Ll",
[0x0A726] = "Lu",
[0x0A727] = "Ll",
[0x0A728] = "Lu",
[0x0A729] = "Ll",
[0x0A72A] = "Lu",
[0x0A72B] = "Ll",
[0x0A72C] = "Lu",
[0x0A72D] = "Ll",
[0x0A72E] = "Lu",
[0x0A732] = "Lu",
[0x0A733] = "Ll",
[0x0A734] = "Lu",
[0x0A735] = "Ll",
[0x0A736] = "Lu",
[0x0A737] = "Ll",
[0x0A738] = "Lu",
[0x0A739] = "Ll",
[0x0A73A] = "Lu",
[0x0A73B] = "Ll",
[0x0A73C] = "Lu",
[0x0A73D] = "Ll",
[0x0A73E] = "Lu",
[0x0A73F] = "Ll",
[0x0A740] = "Lu",
[0x0A741] = "Ll",
[0x0A742] = "Lu",
[0x0A743] = "Ll",
[0x0A744] = "Lu",
[0x0A745] = "Ll",
[0x0A746] = "Lu",
[0x0A747] = "Ll",
[0x0A748] = "Lu",
[0x0A749] = "Ll",
[0x0A74A] = "Lu",
[0x0A74B] = "Ll",
[0x0A74C] = "Lu",
[0x0A74D] = "Ll",
[0x0A74E] = "Lu",
[0x0A74F] = "Ll",
[0x0A750] = "Lu",
[0x0A751] = "Ll",
[0x0A752] = "Lu",
[0x0A753] = "Ll",
[0x0A754] = "Lu",
[0x0A755] = "Ll",
[0x0A756] = "Lu",
[0x0A757] = "Ll",
[0x0A758] = "Lu",
[0x0A759] = "Ll",
[0x0A75A] = "Lu",
[0x0A75B] = "Ll",
[0x0A75C] = "Lu",
[0x0A75D] = "Ll",
[0x0A75E] = "Lu",
[0x0A75F] = "Ll",
[0x0A760] = "Lu",
[0x0A761] = "Ll",
[0x0A762] = "Lu",
[0x0A763] = "Ll",
[0x0A764] = "Lu",
[0x0A765] = "Ll",
[0x0A766] = "Lu",
[0x0A767] = "Ll",
[0x0A768] = "Lu",
[0x0A769] = "Ll",
[0x0A76A] = "Lu",
[0x0A76B] = "Ll",
[0x0A76C] = "Lu",
[0x0A76D] = "Ll",
[0x0A76E] = "Lu",
[0x0A76F] = "Ll",
[0x0A770] = "Lm",
[0x0A779] = "Lu",
[0x0A77A] = "Ll",
[0x0A77B] = "Lu",
[0x0A77C] = "Ll",
[0x0A77F] = "Ll",
[0x0A780] = "Lu",
[0x0A781] = "Ll",
[0x0A782] = "Lu",
[0x0A783] = "Ll",
[0x0A784] = "Lu",
[0x0A785] = "Ll",
[0x0A786] = "Lu",
[0x0A787] = "Ll",
[0x0A788] = "Lm",
[0x0A78B] = "Lu",
[0x0A78C] = "Ll",
[0x0A78D] = "Lu",
[0x0A78E] = "Ll",
[0x0A78F] = "Lo",
[0x0A790] = "Lu",
[0x0A791] = "Ll",
[0x0A792] = "Lu",
[0x0A796] = "Lu",
[0x0A797] = "Ll",
[0x0A798] = "Lu",
[0x0A799] = "Ll",
[0x0A79A] = "Lu",
[0x0A79B] = "Ll",
[0x0A79C] = "Lu",
[0x0A79D] = "Ll",
[0x0A79E] = "Lu",
[0x0A79F] = "Ll",
[0x0A7A0] = "Lu",
[0x0A7A1] = "Ll",
[0x0A7A2] = "Lu",
[0x0A7A3] = "Ll",
[0x0A7A4] = "Lu",
[0x0A7A5] = "Ll",
[0x0A7A6] = "Lu",
[0x0A7A7] = "Ll",
[0x0A7A8] = "Lu",
[0x0A7A9] = "Ll",
[0x0A7AF] = "Ll",
[0x0A7B5] = "Ll",
[0x0A7B6] = "Lu",
[0x0A7B7] = "Ll",
[0x0A7B8] = "Lu",
[0x0A7B9] = "Ll",
[0x0A7BA] = "Lu",
[0x0A7BB] = "Ll",
[0x0A7BC] = "Lu",
[0x0A7BD] = "Ll",
[0x0A7BE] = "Lu",
[0x0A7BF] = "Ll",
[0x0A7C0] = "Lu",
[0x0A7C1] = "Ll",
[0x0A7C2] = "Lu",
[0x0A7C3] = "Ll",
[0x0A7C8] = "Ll",
[0x0A7C9] = "Lu",
[0x0A7CA] = "Ll",
[0x0A7D0] = "Lu",
[0x0A7D1] = "Ll",
[0x0A7D3] = "Ll",
[0x0A7D5] = "Ll",
[0x0A7D6] = "Lu",
[0x0A7D7] = "Ll",
[0x0A7D8] = "Lu",
[0x0A7D9] = "Ll",
[0x0A7F5] = "Lu",
[0x0A7F6] = "Ll",
[0x0A7F7] = "Lo",
[0x0A7FA] = "Ll",
[0x0A802] = "Mn",
[0x0A806] = "Mn",
[0x0A80B] = "Mn",
[0x0A827] = "Mc",
[0x0A82C] = "Mn",
[0x0A838] = "Sc",
[0x0A839] = "So",
[0x0A8FB] = "Lo",
[0x0A8FC] = "Po",
[0x0A8FF] = "Mn",
[0x0A95F] = "Po",
[0x0A983] = "Mc",
[0x0A9B3] = "Mn",
[0x0A9CF] = "Lm",
[0x0A9E5] = "Mn",
[0x0A9E6] = "Lm",
[0x0AA43] = "Mn",
[0x0AA4C] = "Mn",
[0x0AA4D] = "Mc",
[0x0AA70] = "Lm",
[0x0AA7A] = "Lo",
[0x0AA7B] = "Mc",
[0x0AA7C] = "Mn",
[0x0AA7D] = "Mc",
[0x0AAB0] = "Mn",
[0x0AAB1] = "Lo",
[0x0AAC0] = "Lo",
[0x0AAC1] = "Mn",
[0x0AAC2] = "Lo",
[0x0AADD] = "Lm",
[0x0AAEB] = "Mc",
[0x0AAF2] = "Lo",
[0x0AAF5] = "Mc",
[0x0AAF6] = "Mn",
[0x0AB5B] = "Sk",
[0x0AB69] = "Lm",
[0x0ABE5] = "Mn",
[0x0ABE8] = "Mn",
[0x0ABEB] = "Po",
[0x0ABEC] = "Mc",
[0x0ABED] = "Mn",
[0x0FB1D] = "Lo",
[0x0FB1E] = "Mn",
[0x0FB29] = "Sm",
[0x0FB3E] = "Lo",
[0x0FD3E] = "Pe",
[0x0FD3F] = "Ps",
[0x0FDCF] = "So",
[0x0FDFC] = "Sc",
[0x0FE17] = "Ps",
[0x0FE18] = "Pe",
[0x0FE19] = "Po",
[0x0FE30] = "Po",
[0x0FE35] = "Ps",
[0x0FE36] = "Pe",
[0x0FE37] = "Ps",
[0x0FE38] = "Pe",
[0x0FE39] = "Ps",
[0x0FE3A] = "Pe",
[0x0FE3B] = "Ps",
[0x0FE3C] = "Pe",
[0x0FE3D] = "Ps",
[0x0FE3E] = "Pe",
[0x0FE3F] = "Ps",
[0x0FE40] = "Pe",
[0x0FE41] = "Ps",
[0x0FE42] = "Pe",
[0x0FE43] = "Ps",
[0x0FE44] = "Pe",
[0x0FE47] = "Ps",
[0x0FE48] = "Pe",
[0x0FE58] = "Pd",
[0x0FE59] = "Ps",
[0x0FE5A] = "Pe",
[0x0FE5B] = "Ps",
[0x0FE5C] = "Pe",
[0x0FE5D] = "Ps",
[0x0FE5E] = "Pe",
[0x0FE62] = "Sm",
[0x0FE63] = "Pd",
[0x0FE68] = "Po",
[0x0FE69] = "Sc",
[0x0FEFF] = "Cf",
[0x0FF04] = "Sc",
[0x0FF08] = "Ps",
[0x0FF09] = "Pe",
[0x0FF0A] = "Po",
[0x0FF0B] = "Sm",
[0x0FF0C] = "Po",
[0x0FF0D] = "Pd",
[0x0FF3B] = "Ps",
[0x0FF3C] = "Po",
[0x0FF3D] = "Pe",
[0x0FF3E] = "Sk",
[0x0FF3F] = "Pc",
[0x0FF40] = "Sk",
[0x0FF5B] = "Ps",
[0x0FF5C] = "Sm",
[0x0FF5D] = "Pe",
[0x0FF5E] = "Sm",
[0x0FF5F] = "Ps",
[0x0FF60] = "Pe",
[0x0FF61] = "Po",
[0x0FF62] = "Ps",
[0x0FF63] = "Pe",
[0x0FF70] = "Lm",
[0x0FFE2] = "Sm",
[0x0FFE3] = "Sk",
[0x0FFE4] = "So",
[0x0FFE8] = "So",
[0x101A0] = "So",
[0x101FD] = "Mn",
[0x102E0] = "Mn",
[0x10341] = "Nl",
[0x1034A] = "Nl",
[0x1039F] = "Po",
[0x103D0] = "Po",
[0x1056F] = "Po",
[0x10808] = "Lo",
[0x1083C] = "Lo",
[0x10857] = "Po",
[0x1091F] = "Po",
[0x1093F] = "Po",
[0x10A00] = "Lo",
[0x10A3F] = "Mn",
[0x10A7F] = "Po",
[0x10AC8] = "So",
[0x10EAD] = "Pd",
[0x10F27] = "Lo",
[0x11000] = "Mc",
[0x11001] = "Mn",
[0x11002] = "Mc",
[0x11070] = "Mn",
[0x11075] = "Lo",
[0x11082] = "Mc",
[0x110BD] = "Cf",
[0x110C2] = "Mn",
[0x110CD] = "Cf",
[0x1112C] = "Mc",
[0x11144] = "Lo",
[0x11147] = "Lo",
[0x11173] = "Mn",
[0x11176] = "Lo",
[0x11182] = "Mc",
[0x111CD] = "Po",
[0x111CE] = "Mc",
[0x111CF] = "Mn",
[0x111DA] = "Lo",
[0x111DB] = "Po",
[0x111DC] = "Lo",
[0x11234] = "Mn",
[0x11235] = "Mc",
[0x1123E] = "Mn",
[0x11288] = "Lo",
[0x112A9] = "Po",
[0x112DF] = "Mn",
[0x1133D] = "Lo",
[0x11340] = "Mn",
[0x11350] = "Lo",
[0x11357] = "Mc",
[0x11445] = "Mc",
[0x11446] = "Mn",
[0x1145D] = "Po",
[0x1145E] = "Mn",
[0x114B9] = "Mc",
[0x114BA] = "Mn",
[0x114C1] = "Mc",
[0x114C6] = "Po",
[0x114C7] = "Lo",
[0x115BE] = "Mc",
[0x1163D] = "Mn",
[0x1163E] = "Mc",
[0x11644] = "Lo",
[0x116AB] = "Mn",
[0x116AC] = "Mc",
[0x116AD] = "Mn",
[0x116B6] = "Mc",
[0x116B7] = "Mn",
[0x116B8] = "Lo",
[0x116B9] = "Po",
[0x11726] = "Mc",
[0x1173F] = "So",
[0x11838] = "Mc",
[0x1183B] = "Po",
[0x11909] = "Lo",
[0x1193D] = "Mc",
[0x1193E] = "Mn",
[0x1193F] = "Lo",
[0x11940] = "Mc",
[0x11941] = "Lo",
[0x11942] = "Mc",
[0x11943] = "Mn",
[0x119E0] = "Mn",
[0x119E1] = "Lo",
[0x119E2] = "Po",
[0x119E3] = "Lo",
[0x119E4] = "Mc",
[0x11A00] = "Lo",
[0x11A39] = "Mc",
[0x11A3A] = "Lo",
[0x11A47] = "Mn",
[0x11A50] = "Lo",
[0x11A97] = "Mc",
[0x11A9D] = "Lo",
[0x11C2F] = "Mc",
[0x11C3E] = "Mc",
[0x11C3F] = "Mn",
[0x11C40] = "Lo",
[0x11CA9] = "Mc",
[0x11CB1] = "Mc",
[0x11CB4] = "Mc",
[0x11D3A] = "Mn",
[0x11D46] = "Lo",
[0x11D47] = "Mn",
[0x11D95] = "Mn",
[0x11D96] = "Mc",
[0x11D97] = "Mn",
[0x11D98] = "Lo",
[0x11FB0] = "Lo",
[0x11FFF] = "Po",
[0x16AF5] = "Po",
[0x16B44] = "Po",
[0x16B45] = "So",
[0x16F4F] = "Mn",
[0x16F50] = "Lo",
[0x16FE2] = "Po",
[0x16FE3] = "Lm",
[0x16FE4] = "Mn",
[0x1BC9C] = "So",
[0x1BC9F] = "Po",
[0x1D245] = "So",
[0x1D49C] = "Lu",
[0x1D4A2] = "Lu",
[0x1D4BB] = "Ll",
[0x1D546] = "Lu",
[0x1D6C1] = "Sm",
[0x1D6DB] = "Sm",
[0x1D6FB] = "Sm",
[0x1D715] = "Sm",
[0x1D735] = "Sm",
[0x1D74F] = "Sm",
[0x1D76F] = "Sm",
[0x1D789] = "Sm",
[0x1D7A9] = "Sm",
[0x1D7C3] = "Sm",
[0x1D7CA] = "Lu",
[0x1D7CB] = "Ll",
[0x1DA75] = "Mn",
[0x1DA84] = "Mn",
[0x1DF0A] = "Lo",
[0x1E14E] = "Lo",
[0x1E14F] = "So",
[0x1E2AE] = "Mn",
[0x1E2FF] = "Sc",
[0x1E94B] = "Lm",
[0x1ECAC] = "So",
[0x1ECB0] = "Sc",
[0x1ED2E] = "So",
[0x1EE24] = "Lo",
[0x1EE27] = "Lo",
[0x1EE39] = "Lo",
[0x1EE3B] = "Lo",
[0x1EE42] = "Lo",
[0x1EE47] = "Lo",
[0x1EE49] = "Lo",
[0x1EE4B] = "Lo",
[0x1EE54] = "Lo",
[0x1EE57] = "Lo",
[0x1EE59] = "Lo",
[0x1EE5B] = "Lo",
[0x1EE5D] = "Lo",
[0x1EE5F] = "Lo",
[0x1EE64] = "Lo",
[0x1EE7E] = "Lo",
[0x1F7F0] = "So",
[0xE0001] = "Cf",
},
ranges = {
{ 0x000000, 0x00001F, "Cc" },
{ 0x000021, 0x000023, "Po" },
{ 0x000025, 0x000027, "Po" },
{ 0x00002E, 0x00002F, "Po" },
{ 0x000030, 0x000039, "Nd" },
{ 0x00003A, 0x00003B, "Po" },
{ 0x00003C, 0x00003E, "Sm" },
{ 0x00003F, 0x000040, "Po" },
{ 0x000041, 0x00005A, "Lu" },
{ 0x000061, 0x00007A, "Ll" },
{ 0x00007F, 0x00009F, "Cc" },
{ 0x0000A2, 0x0000A5, "Sc" },
{ 0x0000B2, 0x0000B3, "No" },
{ 0x0000B6, 0x0000B7, "Po" },
{ 0x0000BC, 0x0000BE, "No" },
{ 0x0000C0, 0x0000D6, "Lu" },
{ 0x0000D8, 0x0000DE, "Lu" },
{ 0x0000DF, 0x0000F6, "Ll" },
{ 0x0000F8, 0x0000FF, "Ll" },
{ 0x000137, 0x000138, "Ll" },
{ 0x000148, 0x000149, "Ll" },
{ 0x000178, 0x000179, "Lu" },
{ 0x00017E, 0x000180, "Ll" },
{ 0x000181, 0x000182, "Lu" },
{ 0x000186, 0x000187, "Lu" },
{ 0x000189, 0x00018B, "Lu" },
{ 0x00018C, 0x00018D, "Ll" },
{ 0x00018E, 0x000191, "Lu" },
{ 0x000193, 0x000194, "Lu" },
{ 0x000196, 0x000198, "Lu" },
{ 0x000199, 0x00019B, "Ll" },
{ 0x00019C, 0x00019D, "Lu" },
{ 0x00019F, 0x0001A0, "Lu" },
{ 0x0001A6, 0x0001A7, "Lu" },
{ 0x0001AA, 0x0001AB, "Ll" },
{ 0x0001AE, 0x0001AF, "Lu" },
{ 0x0001B1, 0x0001B3, "Lu" },
{ 0x0001B7, 0x0001B8, "Lu" },
{ 0x0001B9, 0x0001BA, "Ll" },
{ 0x0001BD, 0x0001BF, "Ll" },
{ 0x0001C0, 0x0001C3, "Lo" },
{ 0x0001DC, 0x0001DD, "Ll" },
{ 0x0001EF, 0x0001F0, "Ll" },
{ 0x0001F6, 0x0001F8, "Lu" },
{ 0x000233, 0x000239, "Ll" },
{ 0x00023A, 0x00023B, "Lu" },
{ 0x00023D, 0x00023E, "Lu" },
{ 0x00023F, 0x000240, "Ll" },
{ 0x000243, 0x000246, "Lu" },
{ 0x00024F, 0x000293, "Ll" },
{ 0x000295, 0x0002AF, "Ll" },
{ 0x0002B0, 0x0002C1, "Lm" },
{ 0x0002C2, 0x0002C5, "Sk" },
{ 0x0002C6, 0x0002D1, "Lm" },
{ 0x0002D2, 0x0002DF, "Sk" },
{ 0x0002E0, 0x0002E4, "Lm" },
{ 0x0002E5, 0x0002EB, "Sk" },
{ 0x0002EF, 0x0002FF, "Sk" },
{ 0x000300, 0x00036F, "Mn" },
{ 0x00037B, 0x00037D, "Ll" },
{ 0x000384, 0x000385, "Sk" },
{ 0x000388, 0x00038A, "Lu" },
{ 0x00038E, 0x00038F, "Lu" },
{ 0x000391, 0x0003A1, "Lu" },
{ 0x0003A3, 0x0003AB, "Lu" },
{ 0x0003AC, 0x0003CE, "Ll" },
{ 0x0003D0, 0x0003D1, "Ll" },
{ 0x0003D2, 0x0003D4, "Lu" },
{ 0x0003D5, 0x0003D7, "Ll" },
{ 0x0003EF, 0x0003F3, "Ll" },
{ 0x0003F9, 0x0003FA, "Lu" },
{ 0x0003FB, 0x0003FC, "Ll" },
{ 0x0003FD, 0x00042F, "Lu" },
{ 0x000430, 0x00045F, "Ll" },
{ 0x000483, 0x000487, "Mn" },
{ 0x000488, 0x000489, "Me" },
{ 0x0004C0, 0x0004C1, "Lu" },
{ 0x0004CE, 0x0004CF, "Ll" },
{ 0x000531, 0x000556, "Lu" },
{ 0x00055A, 0x00055F, "Po" },
{ 0x000560, 0x000588, "Ll" },
{ 0x00058D, 0x00058E, "So" },
{ 0x000591, 0x0005BD, "Mn" },
{ 0x0005C1, 0x0005C2, "Mn" },
{ 0x0005C4, 0x0005C5, "Mn" },
{ 0x0005D0, 0x0005EA, "Lo" },
{ 0x0005EF, 0x0005F2, "Lo" },
{ 0x0005F3, 0x0005F4, "Po" },
{ 0x000600, 0x000605, "Cf" },
{ 0x000606, 0x000608, "Sm" },
{ 0x000609, 0x00060A, "Po" },
{ 0x00060C, 0x00060D, "Po" },
{ 0x00060E, 0x00060F, "So" },
{ 0x000610, 0x00061A, "Mn" },
{ 0x00061D, 0x00061F, "Po" },
{ 0x000620, 0x00063F, "Lo" },
{ 0x000641, 0x00064A, "Lo" },
{ 0x00064B, 0x00065F, "Mn" },
{ 0x000660, 0x000669, "Nd" },
{ 0x00066A, 0x00066D, "Po" },
{ 0x00066E, 0x00066F, "Lo" },
{ 0x000671, 0x0006D3, "Lo" },
{ 0x0006D6, 0x0006DC, "Mn" },
{ 0x0006DF, 0x0006E4, "Mn" },
{ 0x0006E5, 0x0006E6, "Lm" },
{ 0x0006E7, 0x0006E8, "Mn" },
{ 0x0006EA, 0x0006ED, "Mn" },
{ 0x0006EE, 0x0006EF, "Lo" },
{ 0x0006F0, 0x0006F9, "Nd" },
{ 0x0006FA, 0x0006FC, "Lo" },
{ 0x0006FD, 0x0006FE, "So" },
{ 0x000700, 0x00070D, "Po" },
{ 0x000712, 0x00072F, "Lo" },
{ 0x000730, 0x00074A, "Mn" },
{ 0x00074D, 0x0007A5, "Lo" },
{ 0x0007A6, 0x0007B0, "Mn" },
{ 0x0007C0, 0x0007C9, "Nd" },
{ 0x0007CA, 0x0007EA, "Lo" },
{ 0x0007EB, 0x0007F3, "Mn" },
{ 0x0007F4, 0x0007F5, "Lm" },
{ 0x0007F7, 0x0007F9, "Po" },
{ 0x0007FE, 0x0007FF, "Sc" },
{ 0x000800, 0x000815, "Lo" },
{ 0x000816, 0x000819, "Mn" },
{ 0x00081B, 0x000823, "Mn" },
{ 0x000825, 0x000827, "Mn" },
{ 0x000829, 0x00082D, "Mn" },
{ 0x000830, 0x00083E, "Po" },
{ 0x000840, 0x000858, "Lo" },
{ 0x000859, 0x00085B, "Mn" },
{ 0x000860, 0x00086A, "Lo" },
{ 0x000870, 0x000887, "Lo" },
{ 0x000889, 0x00088E, "Lo" },
{ 0x000890, 0x000891, "Cf" },
{ 0x000898, 0x00089F, "Mn" },
{ 0x0008A0, 0x0008C8, "Lo" },
{ 0x0008CA, 0x0008E1, "Mn" },
{ 0x0008E3, 0x000902, "Mn" },
{ 0x000904, 0x000939, "Lo" },
{ 0x00093E, 0x000940, "Mc" },
{ 0x000941, 0x000948, "Mn" },
{ 0x000949, 0x00094C, "Mc" },
{ 0x00094E, 0x00094F, "Mc" },
{ 0x000951, 0x000957, "Mn" },
{ 0x000958, 0x000961, "Lo" },
{ 0x000962, 0x000963, "Mn" },
{ 0x000964, 0x000965, "Po" },
{ 0x000966, 0x00096F, "Nd" },
{ 0x000972, 0x000980, "Lo" },
{ 0x000982, 0x000983, "Mc" },
{ 0x000985, 0x00098C, "Lo" },
{ 0x00098F, 0x000990, "Lo" },
{ 0x000993, 0x0009A8, "Lo" },
{ 0x0009AA, 0x0009B0, "Lo" },
{ 0x0009B6, 0x0009B9, "Lo" },
{ 0x0009BE, 0x0009C0, "Mc" },
{ 0x0009C1, 0x0009C4, "Mn" },
{ 0x0009C7, 0x0009C8, "Mc" },
{ 0x0009CB, 0x0009CC, "Mc" },
{ 0x0009DC, 0x0009DD, "Lo" },
{ 0x0009DF, 0x0009E1, "Lo" },
{ 0x0009E2, 0x0009E3, "Mn" },
{ 0x0009E6, 0x0009EF, "Nd" },
{ 0x0009F0, 0x0009F1, "Lo" },
{ 0x0009F2, 0x0009F3, "Sc" },
{ 0x0009F4, 0x0009F9, "No" },
{ 0x000A01, 0x000A02, "Mn" },
{ 0x000A05, 0x000A0A, "Lo" },
{ 0x000A0F, 0x000A10, "Lo" },
{ 0x000A13, 0x000A28, "Lo" },
{ 0x000A2A, 0x000A30, "Lo" },
{ 0x000A32, 0x000A33, "Lo" },
{ 0x000A35, 0x000A36, "Lo" },
{ 0x000A38, 0x000A39, "Lo" },
{ 0x000A3E, 0x000A40, "Mc" },
{ 0x000A41, 0x000A42, "Mn" },
{ 0x000A47, 0x000A48, "Mn" },
{ 0x000A4B, 0x000A4D, "Mn" },
{ 0x000A59, 0x000A5C, "Lo" },
{ 0x000A66, 0x000A6F, "Nd" },
{ 0x000A70, 0x000A71, "Mn" },
{ 0x000A72, 0x000A74, "Lo" },
{ 0x000A81, 0x000A82, "Mn" },
{ 0x000A85, 0x000A8D, "Lo" },
{ 0x000A8F, 0x000A91, "Lo" },
{ 0x000A93, 0x000AA8, "Lo" },
{ 0x000AAA, 0x000AB0, "Lo" },
{ 0x000AB2, 0x000AB3, "Lo" },
{ 0x000AB5, 0x000AB9, "Lo" },
{ 0x000ABE, 0x000AC0, "Mc" },
{ 0x000AC1, 0x000AC5, "Mn" },
{ 0x000AC7, 0x000AC8, "Mn" },
{ 0x000ACB, 0x000ACC, "Mc" },
{ 0x000AE0, 0x000AE1, "Lo" },
{ 0x000AE2, 0x000AE3, "Mn" },
{ 0x000AE6, 0x000AEF, "Nd" },
{ 0x000AFA, 0x000AFF, "Mn" },
{ 0x000B02, 0x000B03, "Mc" },
{ 0x000B05, 0x000B0C, "Lo" },
{ 0x000B0F, 0x000B10, "Lo" },
{ 0x000B13, 0x000B28, "Lo" },
{ 0x000B2A, 0x000B30, "Lo" },
{ 0x000B32, 0x000B33, "Lo" },
{ 0x000B35, 0x000B39, "Lo" },
{ 0x000B41, 0x000B44, "Mn" },
{ 0x000B47, 0x000B48, "Mc" },
{ 0x000B4B, 0x000B4C, "Mc" },
{ 0x000B55, 0x000B56, "Mn" },
{ 0x000B5C, 0x000B5D, "Lo" },
{ 0x000B5F, 0x000B61, "Lo" },
{ 0x000B62, 0x000B63, "Mn" },
{ 0x000B66, 0x000B6F, "Nd" },
{ 0x000B72, 0x000B77, "No" },
{ 0x000B85, 0x000B8A, "Lo" },
{ 0x000B8E, 0x000B90, "Lo" },
{ 0x000B92, 0x000B95, "Lo" },
{ 0x000B99, 0x000B9A, "Lo" },
{ 0x000B9E, 0x000B9F, "Lo" },
{ 0x000BA3, 0x000BA4, "Lo" },
{ 0x000BA8, 0x000BAA, "Lo" },
{ 0x000BAE, 0x000BB9, "Lo" },
{ 0x000BBE, 0x000BBF, "Mc" },
{ 0x000BC1, 0x000BC2, "Mc" },
{ 0x000BC6, 0x000BC8, "Mc" },
{ 0x000BCA, 0x000BCC, "Mc" },
{ 0x000BE6, 0x000BEF, "Nd" },
{ 0x000BF0, 0x000BF2, "No" },
{ 0x000BF3, 0x000BF8, "So" },
{ 0x000C01, 0x000C03, "Mc" },
{ 0x000C05, 0x000C0C, "Lo" },
{ 0x000C0E, 0x000C10, "Lo" },
{ 0x000C12, 0x000C28, "Lo" },
{ 0x000C2A, 0x000C39, "Lo" },
{ 0x000C3E, 0x000C40, "Mn" },
{ 0x000C41, 0x000C44, "Mc" },
{ 0x000C46, 0x000C48, "Mn" },
{ 0x000C4A, 0x000C4D, "Mn" },
{ 0x000C55, 0x000C56, "Mn" },
{ 0x000C58, 0x000C5A, "Lo" },
{ 0x000C60, 0x000C61, "Lo" },
{ 0x000C62, 0x000C63, "Mn" },
{ 0x000C66, 0x000C6F, "Nd" },
{ 0x000C78, 0x000C7E, "No" },
{ 0x000C82, 0x000C83, "Mc" },
{ 0x000C85, 0x000C8C, "Lo" },
{ 0x000C8E, 0x000C90, "Lo" },
{ 0x000C92, 0x000CA8, "Lo" },
{ 0x000CAA, 0x000CB3, "Lo" },
{ 0x000CB5, 0x000CB9, "Lo" },
{ 0x000CC0, 0x000CC4, "Mc" },
{ 0x000CC7, 0x000CC8, "Mc" },
{ 0x000CCA, 0x000CCB, "Mc" },
{ 0x000CCC, 0x000CCD, "Mn" },
{ 0x000CD5, 0x000CD6, "Mc" },
{ 0x000CDD, 0x000CDE, "Lo" },
{ 0x000CE0, 0x000CE1, "Lo" },
{ 0x000CE2, 0x000CE3, "Mn" },
{ 0x000CE6, 0x000CEF, "Nd" },
{ 0x000CF1, 0x000CF2, "Lo" },
{ 0x000D00, 0x000D01, "Mn" },
{ 0x000D02, 0x000D03, "Mc" },
{ 0x000D04, 0x000D0C, "Lo" },
{ 0x000D0E, 0x000D10, "Lo" },
{ 0x000D12, 0x000D3A, "Lo" },
{ 0x000D3B, 0x000D3C, "Mn" },
{ 0x000D3E, 0x000D40, "Mc" },
{ 0x000D41, 0x000D44, "Mn" },
{ 0x000D46, 0x000D48, "Mc" },
{ 0x000D4A, 0x000D4C, "Mc" },
{ 0x000D54, 0x000D56, "Lo" },
{ 0x000D58, 0x000D5E, "No" },
{ 0x000D5F, 0x000D61, "Lo" },
{ 0x000D62, 0x000D63, "Mn" },
{ 0x000D66, 0x000D6F, "Nd" },
{ 0x000D70, 0x000D78, "No" },
{ 0x000D7A, 0x000D7F, "Lo" },
{ 0x000D82, 0x000D83, "Mc" },
{ 0x000D85, 0x000D96, "Lo" },
{ 0x000D9A, 0x000DB1, "Lo" },
{ 0x000DB3, 0x000DBB, "Lo" },
{ 0x000DC0, 0x000DC6, "Lo" },
{ 0x000DCF, 0x000DD1, "Mc" },
{ 0x000DD2, 0x000DD4, "Mn" },
{ 0x000DD8, 0x000DDF, "Mc" },
{ 0x000DE6, 0x000DEF, "Nd" },
{ 0x000DF2, 0x000DF3, "Mc" },
{ 0x000E01, 0x000E30, "Lo" },
{ 0x000E32, 0x000E33, "Lo" },
{ 0x000E34, 0x000E3A, "Mn" },
{ 0x000E40, 0x000E45, "Lo" },
{ 0x000E47, 0x000E4E, "Mn" },
{ 0x000E50, 0x000E59, "Nd" },
{ 0x000E5A, 0x000E5B, "Po" },
{ 0x000E81, 0x000E82, "Lo" },
{ 0x000E86, 0x000E8A, "Lo" },
{ 0x000E8C, 0x000EA3, "Lo" },
{ 0x000EA7, 0x000EB0, "Lo" },
{ 0x000EB2, 0x000EB3, "Lo" },
{ 0x000EB4, 0x000EBC, "Mn" },
{ 0x000EC0, 0x000EC4, "Lo" },
{ 0x000EC8, 0x000ECD, "Mn" },
{ 0x000ED0, 0x000ED9, "Nd" },
{ 0x000EDC, 0x000EDF, "Lo" },
{ 0x000F01, 0x000F03, "So" },
{ 0x000F04, 0x000F12, "Po" },
{ 0x000F15, 0x000F17, "So" },
{ 0x000F18, 0x000F19, "Mn" },
{ 0x000F1A, 0x000F1F, "So" },
{ 0x000F20, 0x000F29, "Nd" },
{ 0x000F2A, 0x000F33, "No" },
{ 0x000F3E, 0x000F3F, "Mc" },
{ 0x000F40, 0x000F47, "Lo" },
{ 0x000F49, 0x000F6C, "Lo" },
{ 0x000F71, 0x000F7E, "Mn" },
{ 0x000F80, 0x000F84, "Mn" },
{ 0x000F86, 0x000F87, "Mn" },
{ 0x000F88, 0x000F8C, "Lo" },
{ 0x000F8D, 0x000F97, "Mn" },
{ 0x000F99, 0x000FBC, "Mn" },
{ 0x000FBE, 0x000FC5, "So" },
{ 0x000FC7, 0x000FCC, "So" },
{ 0x000FCE, 0x000FCF, "So" },
{ 0x000FD0, 0x000FD4, "Po" },
{ 0x000FD5, 0x000FD8, "So" },
{ 0x000FD9, 0x000FDA, "Po" },
{ 0x001000, 0x00102A, "Lo" },
{ 0x00102B, 0x00102C, "Mc" },
{ 0x00102D, 0x001030, "Mn" },
{ 0x001032, 0x001037, "Mn" },
{ 0x001039, 0x00103A, "Mn" },
{ 0x00103B, 0x00103C, "Mc" },
{ 0x00103D, 0x00103E, "Mn" },
{ 0x001040, 0x001049, "Nd" },
{ 0x00104A, 0x00104F, "Po" },
{ 0x001050, 0x001055, "Lo" },
{ 0x001056, 0x001057, "Mc" },
{ 0x001058, 0x001059, "Mn" },
{ 0x00105A, 0x00105D, "Lo" },
{ 0x00105E, 0x001060, "Mn" },
{ 0x001062, 0x001064, "Mc" },
{ 0x001065, 0x001066, "Lo" },
{ 0x001067, 0x00106D, "Mc" },
{ 0x00106E, 0x001070, "Lo" },
{ 0x001071, 0x001074, "Mn" },
{ 0x001075, 0x001081, "Lo" },
{ 0x001083, 0x001084, "Mc" },
{ 0x001085, 0x001086, "Mn" },
{ 0x001087, 0x00108C, "Mc" },
{ 0x001090, 0x001099, "Nd" },
{ 0x00109A, 0x00109C, "Mc" },
{ 0x00109E, 0x00109F, "So" },
{ 0x0010A0, 0x0010C5, "Lu" },
{ 0x0010D0, 0x0010FA, "Ll" },
{ 0x0010FD, 0x0010FF, "Ll" },
{ 0x001100, 0x001248, "Lo" },
{ 0x00124A, 0x00124D, "Lo" },
{ 0x001250, 0x001256, "Lo" },
{ 0x00125A, 0x00125D, "Lo" },
{ 0x001260, 0x001288, "Lo" },
{ 0x00128A, 0x00128D, "Lo" },
{ 0x001290, 0x0012B0, "Lo" },
{ 0x0012B2, 0x0012B5, "Lo" },
{ 0x0012B8, 0x0012BE, "Lo" },
{ 0x0012C2, 0x0012C5, "Lo" },
{ 0x0012C8, 0x0012D6, "Lo" },
{ 0x0012D8, 0x001310, "Lo" },
{ 0x001312, 0x001315, "Lo" },
{ 0x001318, 0x00135A, "Lo" },
{ 0x00135D, 0x00135F, "Mn" },
{ 0x001360, 0x001368, "Po" },
{ 0x001369, 0x00137C, "No" },
{ 0x001380, 0x00138F, "Lo" },
{ 0x001390, 0x001399, "So" },
{ 0x0013A0, 0x0013F5, "Lu" },
{ 0x0013F8, 0x0013FD, "Ll" },
{ 0x001401, 0x00166C, "Lo" },
{ 0x00166F, 0x00167F, "Lo" },
{ 0x001681, 0x00169A, "Lo" },
{ 0x0016A0, 0x0016EA, "Lo" },
{ 0x0016EB, 0x0016ED, "Po" },
{ 0x0016EE, 0x0016F0, "Nl" },
{ 0x0016F1, 0x0016F8, "Lo" },
{ 0x001700, 0x001711, "Lo" },
{ 0x001712, 0x001714, "Mn" },
{ 0x00171F, 0x001731, "Lo" },
{ 0x001732, 0x001733, "Mn" },
{ 0x001735, 0x001736, "Po" },
{ 0x001740, 0x001751, "Lo" },
{ 0x001752, 0x001753, "Mn" },
{ 0x001760, 0x00176C, "Lo" },
{ 0x00176E, 0x001770, "Lo" },
{ 0x001772, 0x001773, "Mn" },
{ 0x001780, 0x0017B3, "Lo" },
{ 0x0017B4, 0x0017B5, "Mn" },
{ 0x0017B7, 0x0017BD, "Mn" },
{ 0x0017BE, 0x0017C5, "Mc" },
{ 0x0017C7, 0x0017C8, "Mc" },
{ 0x0017C9, 0x0017D3, "Mn" },
{ 0x0017D4, 0x0017D6, "Po" },
{ 0x0017D8, 0x0017DA, "Po" },
{ 0x0017E0, 0x0017E9, "Nd" },
{ 0x0017F0, 0x0017F9, "No" },
{ 0x001800, 0x001805, "Po" },
{ 0x001807, 0x00180A, "Po" },
{ 0x00180B, 0x00180D, "Mn" },
{ 0x001810, 0x001819, "Nd" },
{ 0x001820, 0x001842, "Lo" },
{ 0x001844, 0x001878, "Lo" },
{ 0x001880, 0x001884, "Lo" },
{ 0x001885, 0x001886, "Mn" },
{ 0x001887, 0x0018A8, "Lo" },
{ 0x0018B0, 0x0018F5, "Lo" },
{ 0x001900, 0x00191E, "Lo" },
{ 0x001920, 0x001922, "Mn" },
{ 0x001923, 0x001926, "Mc" },
{ 0x001927, 0x001928, "Mn" },
{ 0x001929, 0x00192B, "Mc" },
{ 0x001930, 0x001931, "Mc" },
{ 0x001933, 0x001938, "Mc" },
{ 0x001939, 0x00193B, "Mn" },
{ 0x001944, 0x001945, "Po" },
{ 0x001946, 0x00194F, "Nd" },
{ 0x001950, 0x00196D, "Lo" },
{ 0x001970, 0x001974, "Lo" },
{ 0x001980, 0x0019AB, "Lo" },
{ 0x0019B0, 0x0019C9, "Lo" },
{ 0x0019D0, 0x0019D9, "Nd" },
{ 0x0019DE, 0x0019FF, "So" },
{ 0x001A00, 0x001A16, "Lo" },
{ 0x001A17, 0x001A18, "Mn" },
{ 0x001A19, 0x001A1A, "Mc" },
{ 0x001A1E, 0x001A1F, "Po" },
{ 0x001A20, 0x001A54, "Lo" },
{ 0x001A58, 0x001A5E, "Mn" },
{ 0x001A63, 0x001A64, "Mc" },
{ 0x001A65, 0x001A6C, "Mn" },
{ 0x001A6D, 0x001A72, "Mc" },
{ 0x001A73, 0x001A7C, "Mn" },
{ 0x001A80, 0x001A89, "Nd" },
{ 0x001A90, 0x001A99, "Nd" },
{ 0x001AA0, 0x001AA6, "Po" },
{ 0x001AA8, 0x001AAD, "Po" },
{ 0x001AB0, 0x001ABD, "Mn" },
{ 0x001ABF, 0x001ACE, "Mn" },
{ 0x001B00, 0x001B03, "Mn" },
{ 0x001B05, 0x001B33, "Lo" },
{ 0x001B36, 0x001B3A, "Mn" },
{ 0x001B3D, 0x001B41, "Mc" },
{ 0x001B43, 0x001B44, "Mc" },
{ 0x001B45, 0x001B4C, "Lo" },
{ 0x001B50, 0x001B59, "Nd" },
{ 0x001B5A, 0x001B60, "Po" },
{ 0x001B61, 0x001B6A, "So" },
{ 0x001B6B, 0x001B73, "Mn" },
{ 0x001B74, 0x001B7C, "So" },
{ 0x001B7D, 0x001B7E, "Po" },
{ 0x001B80, 0x001B81, "Mn" },
{ 0x001B83, 0x001BA0, "Lo" },
{ 0x001BA2, 0x001BA5, "Mn" },
{ 0x001BA6, 0x001BA7, "Mc" },
{ 0x001BA8, 0x001BA9, "Mn" },
{ 0x001BAB, 0x001BAD, "Mn" },
{ 0x001BAE, 0x001BAF, "Lo" },
{ 0x001BB0, 0x001BB9, "Nd" },
{ 0x001BBA, 0x001BE5, "Lo" },
{ 0x001BE8, 0x001BE9, "Mn" },
{ 0x001BEA, 0x001BEC, "Mc" },
{ 0x001BEF, 0x001BF1, "Mn" },
{ 0x001BF2, 0x001BF3, "Mc" },
{ 0x001BFC, 0x001BFF, "Po" },
{ 0x001C00, 0x001C23, "Lo" },
{ 0x001C24, 0x001C2B, "Mc" },
{ 0x001C2C, 0x001C33, "Mn" },
{ 0x001C34, 0x001C35, "Mc" },
{ 0x001C36, 0x001C37, "Mn" },
{ 0x001C3B, 0x001C3F, "Po" },
{ 0x001C40, 0x001C49, "Nd" },
{ 0x001C4D, 0x001C4F, "Lo" },
{ 0x001C50, 0x001C59, "Nd" },
{ 0x001C5A, 0x001C77, "Lo" },
{ 0x001C78, 0x001C7D, "Lm" },
{ 0x001C7E, 0x001C7F, "Po" },
{ 0x001C80, 0x001C88, "Ll" },
{ 0x001C90, 0x001CBA, "Lu" },
{ 0x001CBD, 0x001CBF, "Lu" },
{ 0x001CC0, 0x001CC7, "Po" },
{ 0x001CD0, 0x001CD2, "Mn" },
{ 0x001CD4, 0x001CE0, "Mn" },
{ 0x001CE2, 0x001CE8, "Mn" },
{ 0x001CE9, 0x001CEC, "Lo" },
{ 0x001CEE, 0x001CF3, "Lo" },
{ 0x001CF5, 0x001CF6, "Lo" },
{ 0x001CF8, 0x001CF9, "Mn" },
{ 0x001D00, 0x001D2B, "Ll" },
{ 0x001D2C, 0x001D6A, "Lm" },
{ 0x001D6B, 0x001D77, "Ll" },
{ 0x001D79, 0x001D9A, "Ll" },
{ 0x001D9B, 0x001DBF, "Lm" },
{ 0x001DC0, 0x001DFF, "Mn" },
{ 0x001E95, 0x001E9D, "Ll" },
{ 0x001EFF, 0x001F07, "Ll" },
{ 0x001F08, 0x001F0F, "Lu" },
{ 0x001F10, 0x001F15, "Ll" },
{ 0x001F18, 0x001F1D, "Lu" },
{ 0x001F20, 0x001F27, "Ll" },
{ 0x001F28, 0x001F2F, "Lu" },
{ 0x001F30, 0x001F37, "Ll" },
{ 0x001F38, 0x001F3F, "Lu" },
{ 0x001F40, 0x001F45, "Ll" },
{ 0x001F48, 0x001F4D, "Lu" },
{ 0x001F50, 0x001F57, "Ll" },
{ 0x001F60, 0x001F67, "Ll" },
{ 0x001F68, 0x001F6F, "Lu" },
{ 0x001F70, 0x001F7D, "Ll" },
{ 0x001F80, 0x001F87, "Ll" },
{ 0x001F88, 0x001F8F, "Lt" },
{ 0x001F90, 0x001F97, "Ll" },
{ 0x001F98, 0x001F9F, "Lt" },
{ 0x001FA0, 0x001FA7, "Ll" },
{ 0x001FA8, 0x001FAF, "Lt" },
{ 0x001FB0, 0x001FB4, "Ll" },
{ 0x001FB6, 0x001FB7, "Ll" },
{ 0x001FB8, 0x001FBB, "Lu" },
{ 0x001FBF, 0x001FC1, "Sk" },
{ 0x001FC2, 0x001FC4, "Ll" },
{ 0x001FC6, 0x001FC7, "Ll" },
{ 0x001FC8, 0x001FCB, "Lu" },
{ 0x001FCD, 0x001FCF, "Sk" },
{ 0x001FD0, 0x001FD3, "Ll" },
{ 0x001FD6, 0x001FD7, "Ll" },
{ 0x001FD8, 0x001FDB, "Lu" },
{ 0x001FDD, 0x001FDF, "Sk" },
{ 0x001FE0, 0x001FE7, "Ll" },
{ 0x001FE8, 0x001FEC, "Lu" },
{ 0x001FED, 0x001FEF, "Sk" },
{ 0x001FF2, 0x001FF4, "Ll" },
{ 0x001FF6, 0x001FF7, "Ll" },
{ 0x001FF8, 0x001FFB, "Lu" },
{ 0x001FFD, 0x001FFE, "Sk" },
{ 0x002000, 0x00200A, "Zs" },
{ 0x00200B, 0x00200F, "Cf" },
{ 0x002010, 0x002015, "Pd" },
{ 0x002016, 0x002017, "Po" },
{ 0x00201B, 0x00201C, "Pi" },
{ 0x002020, 0x002027, "Po" },
{ 0x00202A, 0x00202E, "Cf" },
{ 0x002030, 0x002038, "Po" },
{ 0x00203B, 0x00203E, "Po" },
{ 0x00203F, 0x002040, "Pc" },
{ 0x002041, 0x002043, "Po" },
{ 0x002047, 0x002051, "Po" },
{ 0x002055, 0x00205E, "Po" },
{ 0x002060, 0x002064, "Cf" },
{ 0x002066, 0x00206F, "Cf" },
{ 0x002074, 0x002079, "No" },
{ 0x00207A, 0x00207C, "Sm" },
{ 0x002080, 0x002089, "No" },
{ 0x00208A, 0x00208C, "Sm" },
{ 0x002090, 0x00209C, "Lm" },
{ 0x0020A0, 0x0020C0, "Sc" },
{ 0x0020D0, 0x0020DC, "Mn" },
{ 0x0020DD, 0x0020E0, "Me" },
{ 0x0020E2, 0x0020E4, "Me" },
{ 0x0020E5, 0x0020F0, "Mn" },
{ 0x002100, 0x002101, "So" },
{ 0x002103, 0x002106, "So" },
{ 0x002108, 0x002109, "So" },
{ 0x00210B, 0x00210D, "Lu" },
{ 0x00210E, 0x00210F, "Ll" },
{ 0x002110, 0x002112, "Lu" },
{ 0x002116, 0x002117, "So" },
{ 0x002119, 0x00211D, "Lu" },
{ 0x00211E, 0x002123, "So" },
{ 0x00212A, 0x00212D, "Lu" },
{ 0x002130, 0x002133, "Lu" },
{ 0x002135, 0x002138, "Lo" },
{ 0x00213A, 0x00213B, "So" },
{ 0x00213C, 0x00213D, "Ll" },
{ 0x00213E, 0x00213F, "Lu" },
{ 0x002140, 0x002144, "Sm" },
{ 0x002146, 0x002149, "Ll" },
{ 0x00214C, 0x00214D, "So" },
{ 0x002150, 0x00215F, "No" },
{ 0x002160, 0x002182, "Nl" },
{ 0x002185, 0x002188, "Nl" },
{ 0x00218A, 0x00218B, "So" },
{ 0x002190, 0x002194, "Sm" },
{ 0x002195, 0x002199, "So" },
{ 0x00219A, 0x00219B, "Sm" },
{ 0x00219C, 0x00219F, "So" },
{ 0x0021A1, 0x0021A2, "So" },
{ 0x0021A4, 0x0021A5, "So" },
{ 0x0021A7, 0x0021AD, "So" },
{ 0x0021AF, 0x0021CD, "So" },
{ 0x0021CE, 0x0021CF, "Sm" },
{ 0x0021D0, 0x0021D1, "So" },
{ 0x0021D5, 0x0021F3, "So" },
{ 0x0021F4, 0x0022FF, "Sm" },
{ 0x002300, 0x002307, "So" },
{ 0x00230C, 0x00231F, "So" },
{ 0x002320, 0x002321, "Sm" },
{ 0x002322, 0x002328, "So" },
{ 0x00232B, 0x00237B, "So" },
{ 0x00237D, 0x00239A, "So" },
{ 0x00239B, 0x0023B3, "Sm" },
{ 0x0023B4, 0x0023DB, "So" },
{ 0x0023DC, 0x0023E1, "Sm" },
{ 0x0023E2, 0x002426, "So" },
{ 0x002440, 0x00244A, "So" },
{ 0x002460, 0x00249B, "No" },
{ 0x00249C, 0x0024E9, "So" },
{ 0x0024EA, 0x0024FF, "No" },
{ 0x002500, 0x0025B6, "So" },
{ 0x0025B8, 0x0025C0, "So" },
{ 0x0025C2, 0x0025F7, "So" },
{ 0x0025F8, 0x0025FF, "Sm" },
{ 0x002600, 0x00266E, "So" },
{ 0x002670, 0x002767, "So" },
{ 0x002776, 0x002793, "No" },
{ 0x002794, 0x0027BF, "So" },
{ 0x0027C0, 0x0027C4, "Sm" },
{ 0x0027C7, 0x0027E5, "Sm" },
{ 0x0027F0, 0x0027FF, "Sm" },
{ 0x002800, 0x0028FF, "So" },
{ 0x002900, 0x002982, "Sm" },
{ 0x002999, 0x0029D7, "Sm" },
{ 0x0029DC, 0x0029FB, "Sm" },
{ 0x0029FE, 0x002AFF, "Sm" },
{ 0x002B00, 0x002B2F, "So" },
{ 0x002B30, 0x002B44, "Sm" },
{ 0x002B45, 0x002B46, "So" },
{ 0x002B47, 0x002B4C, "Sm" },
{ 0x002B4D, 0x002B73, "So" },
{ 0x002B76, 0x002B95, "So" },
{ 0x002B97, 0x002BFF, "So" },
{ 0x002C00, 0x002C2F, "Lu" },
{ 0x002C30, 0x002C5F, "Ll" },
{ 0x002C62, 0x002C64, "Lu" },
{ 0x002C65, 0x002C66, "Ll" },
{ 0x002C6D, 0x002C70, "Lu" },
{ 0x002C73, 0x002C74, "Ll" },
{ 0x002C76, 0x002C7B, "Ll" },
{ 0x002C7C, 0x002C7D, "Lm" },
{ 0x002C7E, 0x002C80, "Lu" },
{ 0x002CE3, 0x002CE4, "Ll" },
{ 0x002CE5, 0x002CEA, "So" },
{ 0x002CEF, 0x002CF1, "Mn" },
{ 0x002CF9, 0x002CFC, "Po" },
{ 0x002CFE, 0x002CFF, "Po" },
{ 0x002D00, 0x002D25, "Ll" },
{ 0x002D30, 0x002D67, "Lo" },
{ 0x002D80, 0x002D96, "Lo" },
{ 0x002DA0, 0x002DA6, "Lo" },
{ 0x002DA8, 0x002DAE, "Lo" },
{ 0x002DB0, 0x002DB6, "Lo" },
{ 0x002DB8, 0x002DBE, "Lo" },
{ 0x002DC0, 0x002DC6, "Lo" },
{ 0x002DC8, 0x002DCE, "Lo" },
{ 0x002DD0, 0x002DD6, "Lo" },
{ 0x002DD8, 0x002DDE, "Lo" },
{ 0x002DE0, 0x002DFF, "Mn" },
{ 0x002E00, 0x002E01, "Po" },
{ 0x002E06, 0x002E08, "Po" },
{ 0x002E0E, 0x002E16, "Po" },
{ 0x002E18, 0x002E19, "Po" },
{ 0x002E1E, 0x002E1F, "Po" },
{ 0x002E2A, 0x002E2E, "Po" },
{ 0x002E30, 0x002E39, "Po" },
{ 0x002E3A, 0x002E3B, "Pd" },
{ 0x002E3C, 0x002E3F, "Po" },
{ 0x002E43, 0x002E4F, "Po" },
{ 0x002E50, 0x002E51, "So" },
{ 0x002E52, 0x002E54, "Po" },
{ 0x002E80, 0x002E99, "So" },
{ 0x002E9B, 0x002EF3, "So" },
{ 0x002F00, 0x002FD5, "So" },
{ 0x002FF0, 0x002FFB, "So" },
{ 0x003001, 0x003003, "Po" },
{ 0x003012, 0x003013, "So" },
{ 0x00301E, 0x00301F, "Pe" },
{ 0x003021, 0x003029, "Nl" },
{ 0x00302A, 0x00302D, "Mn" },
{ 0x00302E, 0x00302F, "Mc" },
{ 0x003031, 0x003035, "Lm" },
{ 0x003036, 0x003037, "So" },
{ 0x003038, 0x00303A, "Nl" },
{ 0x00303E, 0x00303F, "So" },
{ 0x003041, 0x003096, "Lo" },
{ 0x003099, 0x00309A, "Mn" },
{ 0x00309B, 0x00309C, "Sk" },
{ 0x00309D, 0x00309E, "Lm" },
{ 0x0030A1, 0x0030FA, "Lo" },
{ 0x0030FC, 0x0030FE, "Lm" },
{ 0x003105, 0x00312F, "Lo" },
{ 0x003131, 0x00318E, "Lo" },
{ 0x003190, 0x003191, "So" },
{ 0x003192, 0x003195, "No" },
{ 0x003196, 0x00319F, "So" },
{ 0x0031A0, 0x0031BF, "Lo" },
{ 0x0031C0, 0x0031E3, "So" },
{ 0x0031F0, 0x0031FF, "Lo" },
{ 0x003200, 0x00321E, "So" },
{ 0x003220, 0x003229, "No" },
{ 0x00322A, 0x003247, "So" },
{ 0x003248, 0x00324F, "No" },
{ 0x003251, 0x00325F, "No" },
{ 0x003260, 0x00327F, "So" },
{ 0x003280, 0x003289, "No" },
{ 0x00328A, 0x0032B0, "So" },
{ 0x0032B1, 0x0032BF, "No" },
{ 0x0032C0, 0x0033FF, "So" },
{ 0x003400, 0x004DBF, "Lo" },
{ 0x004DC0, 0x004DFF, "So" },
{ 0x004E00, 0x00A014, "Lo" },
{ 0x00A016, 0x00A48C, "Lo" },
{ 0x00A490, 0x00A4C6, "So" },
{ 0x00A4D0, 0x00A4F7, "Lo" },
{ 0x00A4F8, 0x00A4FD, "Lm" },
{ 0x00A4FE, 0x00A4FF, "Po" },
{ 0x00A500, 0x00A60B, "Lo" },
{ 0x00A60D, 0x00A60F, "Po" },
{ 0x00A610, 0x00A61F, "Lo" },
{ 0x00A620, 0x00A629, "Nd" },
{ 0x00A62A, 0x00A62B, "Lo" },
{ 0x00A670, 0x00A672, "Me" },
{ 0x00A674, 0x00A67D, "Mn" },
{ 0x00A69C, 0x00A69D, "Lm" },
{ 0x00A69E, 0x00A69F, "Mn" },
{ 0x00A6A0, 0x00A6E5, "Lo" },
{ 0x00A6E6, 0x00A6EF, "Nl" },
{ 0x00A6F0, 0x00A6F1, "Mn" },
{ 0x00A6F2, 0x00A6F7, "Po" },
{ 0x00A700, 0x00A716, "Sk" },
{ 0x00A717, 0x00A71F, "Lm" },
{ 0x00A720, 0x00A721, "Sk" },
{ 0x00A72F, 0x00A731, "Ll" },
{ 0x00A771, 0x00A778, "Ll" },
{ 0x00A77D, 0x00A77E, "Lu" },
{ 0x00A789, 0x00A78A, "Sk" },
{ 0x00A793, 0x00A795, "Ll" },
{ 0x00A7AA, 0x00A7AE, "Lu" },
{ 0x00A7B0, 0x00A7B4, "Lu" },
{ 0x00A7C4, 0x00A7C7, "Lu" },
{ 0x00A7F2, 0x00A7F4, "Lm" },
{ 0x00A7F8, 0x00A7F9, "Lm" },
{ 0x00A7FB, 0x00A801, "Lo" },
{ 0x00A803, 0x00A805, "Lo" },
{ 0x00A807, 0x00A80A, "Lo" },
{ 0x00A80C, 0x00A822, "Lo" },
{ 0x00A823, 0x00A824, "Mc" },
{ 0x00A825, 0x00A826, "Mn" },
{ 0x00A828, 0x00A82B, "So" },
{ 0x00A830, 0x00A835, "No" },
{ 0x00A836, 0x00A837, "So" },
{ 0x00A840, 0x00A873, "Lo" },
{ 0x00A874, 0x00A877, "Po" },
{ 0x00A880, 0x00A881, "Mc" },
{ 0x00A882, 0x00A8B3, "Lo" },
{ 0x00A8B4, 0x00A8C3, "Mc" },
{ 0x00A8C4, 0x00A8C5, "Mn" },
{ 0x00A8CE, 0x00A8CF, "Po" },
{ 0x00A8D0, 0x00A8D9, "Nd" },
{ 0x00A8E0, 0x00A8F1, "Mn" },
{ 0x00A8F2, 0x00A8F7, "Lo" },
{ 0x00A8F8, 0x00A8FA, "Po" },
{ 0x00A8FD, 0x00A8FE, "Lo" },
{ 0x00A900, 0x00A909, "Nd" },
{ 0x00A90A, 0x00A925, "Lo" },
{ 0x00A926, 0x00A92D, "Mn" },
{ 0x00A92E, 0x00A92F, "Po" },
{ 0x00A930, 0x00A946, "Lo" },
{ 0x00A947, 0x00A951, "Mn" },
{ 0x00A952, 0x00A953, "Mc" },
{ 0x00A960, 0x00A97C, "Lo" },
{ 0x00A980, 0x00A982, "Mn" },
{ 0x00A984, 0x00A9B2, "Lo" },
{ 0x00A9B4, 0x00A9B5, "Mc" },
{ 0x00A9B6, 0x00A9B9, "Mn" },
{ 0x00A9BA, 0x00A9BB, "Mc" },
{ 0x00A9BC, 0x00A9BD, "Mn" },
{ 0x00A9BE, 0x00A9C0, "Mc" },
{ 0x00A9C1, 0x00A9CD, "Po" },
{ 0x00A9D0, 0x00A9D9, "Nd" },
{ 0x00A9DE, 0x00A9DF, "Po" },
{ 0x00A9E0, 0x00A9E4, "Lo" },
{ 0x00A9E7, 0x00A9EF, "Lo" },
{ 0x00A9F0, 0x00A9F9, "Nd" },
{ 0x00A9FA, 0x00A9FE, "Lo" },
{ 0x00AA00, 0x00AA28, "Lo" },
{ 0x00AA29, 0x00AA2E, "Mn" },
{ 0x00AA2F, 0x00AA30, "Mc" },
{ 0x00AA31, 0x00AA32, "Mn" },
{ 0x00AA33, 0x00AA34, "Mc" },
{ 0x00AA35, 0x00AA36, "Mn" },
{ 0x00AA40, 0x00AA42, "Lo" },
{ 0x00AA44, 0x00AA4B, "Lo" },
{ 0x00AA50, 0x00AA59, "Nd" },
{ 0x00AA5C, 0x00AA5F, "Po" },
{ 0x00AA60, 0x00AA6F, "Lo" },
{ 0x00AA71, 0x00AA76, "Lo" },
{ 0x00AA77, 0x00AA79, "So" },
{ 0x00AA7E, 0x00AAAF, "Lo" },
{ 0x00AAB2, 0x00AAB4, "Mn" },
{ 0x00AAB5, 0x00AAB6, "Lo" },
{ 0x00AAB7, 0x00AAB8, "Mn" },
{ 0x00AAB9, 0x00AABD, "Lo" },
{ 0x00AABE, 0x00AABF, "Mn" },
{ 0x00AADB, 0x00AADC, "Lo" },
{ 0x00AADE, 0x00AADF, "Po" },
{ 0x00AAE0, 0x00AAEA, "Lo" },
{ 0x00AAEC, 0x00AAED, "Mn" },
{ 0x00AAEE, 0x00AAEF, "Mc" },
{ 0x00AAF0, 0x00AAF1, "Po" },
{ 0x00AAF3, 0x00AAF4, "Lm" },
{ 0x00AB01, 0x00AB06, "Lo" },
{ 0x00AB09, 0x00AB0E, "Lo" },
{ 0x00AB11, 0x00AB16, "Lo" },
{ 0x00AB20, 0x00AB26, "Lo" },
{ 0x00AB28, 0x00AB2E, "Lo" },
{ 0x00AB30, 0x00AB5A, "Ll" },
{ 0x00AB5C, 0x00AB5F, "Lm" },
{ 0x00AB60, 0x00AB68, "Ll" },
{ 0x00AB6A, 0x00AB6B, "Sk" },
{ 0x00AB70, 0x00ABBF, "Ll" },
{ 0x00ABC0, 0x00ABE2, "Lo" },
{ 0x00ABE3, 0x00ABE4, "Mc" },
{ 0x00ABE6, 0x00ABE7, "Mc" },
{ 0x00ABE9, 0x00ABEA, "Mc" },
{ 0x00ABF0, 0x00ABF9, "Nd" },
{ 0x00AC00, 0x00D7A3, "Lo" },
{ 0x00D7B0, 0x00D7C6, "Lo" },
{ 0x00D7CB, 0x00D7FB, "Lo" },
{ 0x00D800, 0x00DFFF, "Cs" },
{ 0x00E000, 0x00F8FF, "Co" },
{ 0x00F900, 0x00FA6D, "Lo" },
{ 0x00FA70, 0x00FAD9, "Lo" },
{ 0x00FB00, 0x00FB06, "Ll" },
{ 0x00FB13, 0x00FB17, "Ll" },
{ 0x00FB1F, 0x00FB28, "Lo" },
{ 0x00FB2A, 0x00FB36, "Lo" },
{ 0x00FB38, 0x00FB3C, "Lo" },
{ 0x00FB40, 0x00FB41, "Lo" },
{ 0x00FB43, 0x00FB44, "Lo" },
{ 0x00FB46, 0x00FBB1, "Lo" },
{ 0x00FBB2, 0x00FBC2, "Sk" },
{ 0x00FBD3, 0x00FD3D, "Lo" },
{ 0x00FD40, 0x00FD4F, "So" },
{ 0x00FD50, 0x00FD8F, "Lo" },
{ 0x00FD92, 0x00FDC7, "Lo" },
{ 0x00FDF0, 0x00FDFB, "Lo" },
{ 0x00FDFD, 0x00FDFF, "So" },
{ 0x00FE00, 0x00FE0F, "Mn" },
{ 0x00FE10, 0x00FE16, "Po" },
{ 0x00FE20, 0x00FE2F, "Mn" },
{ 0x00FE31, 0x00FE32, "Pd" },
{ 0x00FE33, 0x00FE34, "Pc" },
{ 0x00FE45, 0x00FE46, "Po" },
{ 0x00FE49, 0x00FE4C, "Po" },
{ 0x00FE4D, 0x00FE4F, "Pc" },
{ 0x00FE50, 0x00FE52, "Po" },
{ 0x00FE54, 0x00FE57, "Po" },
{ 0x00FE5F, 0x00FE61, "Po" },
{ 0x00FE64, 0x00FE66, "Sm" },
{ 0x00FE6A, 0x00FE6B, "Po" },
{ 0x00FE70, 0x00FE74, "Lo" },
{ 0x00FE76, 0x00FEFC, "Lo" },
{ 0x00FF01, 0x00FF03, "Po" },
{ 0x00FF05, 0x00FF07, "Po" },
{ 0x00FF0E, 0x00FF0F, "Po" },
{ 0x00FF10, 0x00FF19, "Nd" },
{ 0x00FF1A, 0x00FF1B, "Po" },
{ 0x00FF1C, 0x00FF1E, "Sm" },
{ 0x00FF1F, 0x00FF20, "Po" },
{ 0x00FF21, 0x00FF3A, "Lu" },
{ 0x00FF41, 0x00FF5A, "Ll" },
{ 0x00FF64, 0x00FF65, "Po" },
{ 0x00FF66, 0x00FF6F, "Lo" },
{ 0x00FF71, 0x00FF9D, "Lo" },
{ 0x00FF9E, 0x00FF9F, "Lm" },
{ 0x00FFA0, 0x00FFBE, "Lo" },
{ 0x00FFC2, 0x00FFC7, "Lo" },
{ 0x00FFCA, 0x00FFCF, "Lo" },
{ 0x00FFD2, 0x00FFD7, "Lo" },
{ 0x00FFDA, 0x00FFDC, "Lo" },
{ 0x00FFE0, 0x00FFE1, "Sc" },
{ 0x00FFE5, 0x00FFE6, "Sc" },
{ 0x00FFE9, 0x00FFEC, "Sm" },
{ 0x00FFED, 0x00FFEE, "So" },
{ 0x00FFF9, 0x00FFFB, "Cf" },
{ 0x00FFFC, 0x00FFFD, "So" },
{ 0x010000, 0x01000B, "Lo" },
{ 0x01000D, 0x010026, "Lo" },
{ 0x010028, 0x01003A, "Lo" },
{ 0x01003C, 0x01003D, "Lo" },
{ 0x01003F, 0x01004D, "Lo" },
{ 0x010050, 0x01005D, "Lo" },
{ 0x010080, 0x0100FA, "Lo" },
{ 0x010100, 0x010102, "Po" },
{ 0x010107, 0x010133, "No" },
{ 0x010137, 0x01013F, "So" },
{ 0x010140, 0x010174, "Nl" },
{ 0x010175, 0x010178, "No" },
{ 0x010179, 0x010189, "So" },
{ 0x01018A, 0x01018B, "No" },
{ 0x01018C, 0x01018E, "So" },
{ 0x010190, 0x01019C, "So" },
{ 0x0101D0, 0x0101FC, "So" },
{ 0x010280, 0x01029C, "Lo" },
{ 0x0102A0, 0x0102D0, "Lo" },
{ 0x0102E1, 0x0102FB, "No" },
{ 0x010300, 0x01031F, "Lo" },
{ 0x010320, 0x010323, "No" },
{ 0x01032D, 0x010340, "Lo" },
{ 0x010342, 0x010349, "Lo" },
{ 0x010350, 0x010375, "Lo" },
{ 0x010376, 0x01037A, "Mn" },
{ 0x010380, 0x01039D, "Lo" },
{ 0x0103A0, 0x0103C3, "Lo" },
{ 0x0103C8, 0x0103CF, "Lo" },
{ 0x0103D1, 0x0103D5, "Nl" },
{ 0x010400, 0x010427, "Lu" },
{ 0x010428, 0x01044F, "Ll" },
{ 0x010450, 0x01049D, "Lo" },
{ 0x0104A0, 0x0104A9, "Nd" },
{ 0x0104B0, 0x0104D3, "Lu" },
{ 0x0104D8, 0x0104FB, "Ll" },
{ 0x010500, 0x010527, "Lo" },
{ 0x010530, 0x010563, "Lo" },
{ 0x010570, 0x01057A, "Lu" },
{ 0x01057C, 0x01058A, "Lu" },
{ 0x01058C, 0x010592, "Lu" },
{ 0x010594, 0x010595, "Lu" },
{ 0x010597, 0x0105A1, "Ll" },
{ 0x0105A3, 0x0105B1, "Ll" },
{ 0x0105B3, 0x0105B9, "Ll" },
{ 0x0105BB, 0x0105BC, "Ll" },
{ 0x010600, 0x010736, "Lo" },
{ 0x010740, 0x010755, "Lo" },
{ 0x010760, 0x010767, "Lo" },
{ 0x010780, 0x010785, "Lm" },
{ 0x010787, 0x0107B0, "Lm" },
{ 0x0107B2, 0x0107BA, "Lm" },
{ 0x010800, 0x010805, "Lo" },
{ 0x01080A, 0x010835, "Lo" },
{ 0x010837, 0x010838, "Lo" },
{ 0x01083F, 0x010855, "Lo" },
{ 0x010858, 0x01085F, "No" },
{ 0x010860, 0x010876, "Lo" },
{ 0x010877, 0x010878, "So" },
{ 0x010879, 0x01087F, "No" },
{ 0x010880, 0x01089E, "Lo" },
{ 0x0108A7, 0x0108AF, "No" },
{ 0x0108E0, 0x0108F2, "Lo" },
{ 0x0108F4, 0x0108F5, "Lo" },
{ 0x0108FB, 0x0108FF, "No" },
{ 0x010900, 0x010915, "Lo" },
{ 0x010916, 0x01091B, "No" },
{ 0x010920, 0x010939, "Lo" },
{ 0x010980, 0x0109B7, "Lo" },
{ 0x0109BC, 0x0109BD, "No" },
{ 0x0109BE, 0x0109BF, "Lo" },
{ 0x0109C0, 0x0109CF, "No" },
{ 0x0109D2, 0x0109FF, "No" },
{ 0x010A01, 0x010A03, "Mn" },
{ 0x010A05, 0x010A06, "Mn" },
{ 0x010A0C, 0x010A0F, "Mn" },
{ 0x010A10, 0x010A13, "Lo" },
{ 0x010A15, 0x010A17, "Lo" },
{ 0x010A19, 0x010A35, "Lo" },
{ 0x010A38, 0x010A3A, "Mn" },
{ 0x010A40, 0x010A48, "No" },
{ 0x010A50, 0x010A58, "Po" },
{ 0x010A60, 0x010A7C, "Lo" },
{ 0x010A7D, 0x010A7E, "No" },
{ 0x010A80, 0x010A9C, "Lo" },
{ 0x010A9D, 0x010A9F, "No" },
{ 0x010AC0, 0x010AC7, "Lo" },
{ 0x010AC9, 0x010AE4, "Lo" },
{ 0x010AE5, 0x010AE6, "Mn" },
{ 0x010AEB, 0x010AEF, "No" },
{ 0x010AF0, 0x010AF6, "Po" },
{ 0x010B00, 0x010B35, "Lo" },
{ 0x010B39, 0x010B3F, "Po" },
{ 0x010B40, 0x010B55, "Lo" },
{ 0x010B58, 0x010B5F, "No" },
{ 0x010B60, 0x010B72, "Lo" },
{ 0x010B78, 0x010B7F, "No" },
{ 0x010B80, 0x010B91, "Lo" },
{ 0x010B99, 0x010B9C, "Po" },
{ 0x010BA9, 0x010BAF, "No" },
{ 0x010C00, 0x010C48, "Lo" },
{ 0x010C80, 0x010CB2, "Lu" },
{ 0x010CC0, 0x010CF2, "Ll" },
{ 0x010CFA, 0x010CFF, "No" },
{ 0x010D00, 0x010D23, "Lo" },
{ 0x010D24, 0x010D27, "Mn" },
{ 0x010D30, 0x010D39, "Nd" },
{ 0x010E60, 0x010E7E, "No" },
{ 0x010E80, 0x010EA9, "Lo" },
{ 0x010EAB, 0x010EAC, "Mn" },
{ 0x010EB0, 0x010EB1, "Lo" },
{ 0x010F00, 0x010F1C, "Lo" },
{ 0x010F1D, 0x010F26, "No" },
{ 0x010F30, 0x010F45, "Lo" },
{ 0x010F46, 0x010F50, "Mn" },
{ 0x010F51, 0x010F54, "No" },
{ 0x010F55, 0x010F59, "Po" },
{ 0x010F70, 0x010F81, "Lo" },
{ 0x010F82, 0x010F85, "Mn" },
{ 0x010F86, 0x010F89, "Po" },
{ 0x010FB0, 0x010FC4, "Lo" },
{ 0x010FC5, 0x010FCB, "No" },
{ 0x010FE0, 0x010FF6, "Lo" },
{ 0x011003, 0x011037, "Lo" },
{ 0x011038, 0x011046, "Mn" },
{ 0x011047, 0x01104D, "Po" },
{ 0x011052, 0x011065, "No" },
{ 0x011066, 0x01106F, "Nd" },
{ 0x011071, 0x011072, "Lo" },
{ 0x011073, 0x011074, "Mn" },
{ 0x01107F, 0x011081, "Mn" },
{ 0x011083, 0x0110AF, "Lo" },
{ 0x0110B0, 0x0110B2, "Mc" },
{ 0x0110B3, 0x0110B6, "Mn" },
{ 0x0110B7, 0x0110B8, "Mc" },
{ 0x0110B9, 0x0110BA, "Mn" },
{ 0x0110BB, 0x0110BC, "Po" },
{ 0x0110BE, 0x0110C1, "Po" },
{ 0x0110D0, 0x0110E8, "Lo" },
{ 0x0110F0, 0x0110F9, "Nd" },
{ 0x011100, 0x011102, "Mn" },
{ 0x011103, 0x011126, "Lo" },
{ 0x011127, 0x01112B, "Mn" },
{ 0x01112D, 0x011134, "Mn" },
{ 0x011136, 0x01113F, "Nd" },
{ 0x011140, 0x011143, "Po" },
{ 0x011145, 0x011146, "Mc" },
{ 0x011150, 0x011172, "Lo" },
{ 0x011174, 0x011175, "Po" },
{ 0x011180, 0x011181, "Mn" },
{ 0x011183, 0x0111B2, "Lo" },
{ 0x0111B3, 0x0111B5, "Mc" },
{ 0x0111B6, 0x0111BE, "Mn" },
{ 0x0111BF, 0x0111C0, "Mc" },
{ 0x0111C1, 0x0111C4, "Lo" },
{ 0x0111C5, 0x0111C8, "Po" },
{ 0x0111C9, 0x0111CC, "Mn" },
{ 0x0111D0, 0x0111D9, "Nd" },
{ 0x0111DD, 0x0111DF, "Po" },
{ 0x0111E1, 0x0111F4, "No" },
{ 0x011200, 0x011211, "Lo" },
{ 0x011213, 0x01122B, "Lo" },
{ 0x01122C, 0x01122E, "Mc" },
{ 0x01122F, 0x011231, "Mn" },
{ 0x011232, 0x011233, "Mc" },
{ 0x011236, 0x011237, "Mn" },
{ 0x011238, 0x01123D, "Po" },
{ 0x011280, 0x011286, "Lo" },
{ 0x01128A, 0x01128D, "Lo" },
{ 0x01128F, 0x01129D, "Lo" },
{ 0x01129F, 0x0112A8, "Lo" },
{ 0x0112B0, 0x0112DE, "Lo" },
{ 0x0112E0, 0x0112E2, "Mc" },
{ 0x0112E3, 0x0112EA, "Mn" },
{ 0x0112F0, 0x0112F9, "Nd" },
{ 0x011300, 0x011301, "Mn" },
{ 0x011302, 0x011303, "Mc" },
{ 0x011305, 0x01130C, "Lo" },
{ 0x01130F, 0x011310, "Lo" },
{ 0x011313, 0x011328, "Lo" },
{ 0x01132A, 0x011330, "Lo" },
{ 0x011332, 0x011333, "Lo" },
{ 0x011335, 0x011339, "Lo" },
{ 0x01133B, 0x01133C, "Mn" },
{ 0x01133E, 0x01133F, "Mc" },
{ 0x011341, 0x011344, "Mc" },
{ 0x011347, 0x011348, "Mc" },
{ 0x01134B, 0x01134D, "Mc" },
{ 0x01135D, 0x011361, "Lo" },
{ 0x011362, 0x011363, "Mc" },
{ 0x011366, 0x01136C, "Mn" },
{ 0x011370, 0x011374, "Mn" },
{ 0x011400, 0x011434, "Lo" },
{ 0x011435, 0x011437, "Mc" },
{ 0x011438, 0x01143F, "Mn" },
{ 0x011440, 0x011441, "Mc" },
{ 0x011442, 0x011444, "Mn" },
{ 0x011447, 0x01144A, "Lo" },
{ 0x01144B, 0x01144F, "Po" },
{ 0x011450, 0x011459, "Nd" },
{ 0x01145A, 0x01145B, "Po" },
{ 0x01145F, 0x011461, "Lo" },
{ 0x011480, 0x0114AF, "Lo" },
{ 0x0114B0, 0x0114B2, "Mc" },
{ 0x0114B3, 0x0114B8, "Mn" },
{ 0x0114BB, 0x0114BE, "Mc" },
{ 0x0114BF, 0x0114C0, "Mn" },
{ 0x0114C2, 0x0114C3, "Mn" },
{ 0x0114C4, 0x0114C5, "Lo" },
{ 0x0114D0, 0x0114D9, "Nd" },
{ 0x011580, 0x0115AE, "Lo" },
{ 0x0115AF, 0x0115B1, "Mc" },
{ 0x0115B2, 0x0115B5, "Mn" },
{ 0x0115B8, 0x0115BB, "Mc" },
{ 0x0115BC, 0x0115BD, "Mn" },
{ 0x0115BF, 0x0115C0, "Mn" },
{ 0x0115C1, 0x0115D7, "Po" },
{ 0x0115D8, 0x0115DB, "Lo" },
{ 0x0115DC, 0x0115DD, "Mn" },
{ 0x011600, 0x01162F, "Lo" },
{ 0x011630, 0x011632, "Mc" },
{ 0x011633, 0x01163A, "Mn" },
{ 0x01163B, 0x01163C, "Mc" },
{ 0x01163F, 0x011640, "Mn" },
{ 0x011641, 0x011643, "Po" },
{ 0x011650, 0x011659, "Nd" },
{ 0x011660, 0x01166C, "Po" },
{ 0x011680, 0x0116AA, "Lo" },
{ 0x0116AE, 0x0116AF, "Mc" },
{ 0x0116B0, 0x0116B5, "Mn" },
{ 0x0116C0, 0x0116C9, "Nd" },
{ 0x011700, 0x01171A, "Lo" },
{ 0x01171D, 0x01171F, "Mn" },
{ 0x011720, 0x011721, "Mc" },
{ 0x011722, 0x011725, "Mn" },
{ 0x011727, 0x01172B, "Mn" },
{ 0x011730, 0x011739, "Nd" },
{ 0x01173A, 0x01173B, "No" },
{ 0x01173C, 0x01173E, "Po" },
{ 0x011740, 0x011746, "Lo" },
{ 0x011800, 0x01182B, "Lo" },
{ 0x01182C, 0x01182E, "Mc" },
{ 0x01182F, 0x011837, "Mn" },
{ 0x011839, 0x01183A, "Mn" },
{ 0x0118A0, 0x0118BF, "Lu" },
{ 0x0118C0, 0x0118DF, "Ll" },
{ 0x0118E0, 0x0118E9, "Nd" },
{ 0x0118EA, 0x0118F2, "No" },
{ 0x0118FF, 0x011906, "Lo" },
{ 0x01190C, 0x011913, "Lo" },
{ 0x011915, 0x011916, "Lo" },
{ 0x011918, 0x01192F, "Lo" },
{ 0x011930, 0x011935, "Mc" },
{ 0x011937, 0x011938, "Mc" },
{ 0x01193B, 0x01193C, "Mn" },
{ 0x011944, 0x011946, "Po" },
{ 0x011950, 0x011959, "Nd" },
{ 0x0119A0, 0x0119A7, "Lo" },
{ 0x0119AA, 0x0119D0, "Lo" },
{ 0x0119D1, 0x0119D3, "Mc" },
{ 0x0119D4, 0x0119D7, "Mn" },
{ 0x0119DA, 0x0119DB, "Mn" },
{ 0x0119DC, 0x0119DF, "Mc" },
{ 0x011A01, 0x011A0A, "Mn" },
{ 0x011A0B, 0x011A32, "Lo" },
{ 0x011A33, 0x011A38, "Mn" },
{ 0x011A3B, 0x011A3E, "Mn" },
{ 0x011A3F, 0x011A46, "Po" },
{ 0x011A51, 0x011A56, "Mn" },
{ 0x011A57, 0x011A58, "Mc" },
{ 0x011A59, 0x011A5B, "Mn" },
{ 0x011A5C, 0x011A89, "Lo" },
{ 0x011A8A, 0x011A96, "Mn" },
{ 0x011A98, 0x011A99, "Mn" },
{ 0x011A9A, 0x011A9C, "Po" },
{ 0x011A9E, 0x011AA2, "Po" },
{ 0x011AB0, 0x011AF8, "Lo" },
{ 0x011C00, 0x011C08, "Lo" },
{ 0x011C0A, 0x011C2E, "Lo" },
{ 0x011C30, 0x011C36, "Mn" },
{ 0x011C38, 0x011C3D, "Mn" },
{ 0x011C41, 0x011C45, "Po" },
{ 0x011C50, 0x011C59, "Nd" },
{ 0x011C5A, 0x011C6C, "No" },
{ 0x011C70, 0x011C71, "Po" },
{ 0x011C72, 0x011C8F, "Lo" },
{ 0x011C92, 0x011CA7, "Mn" },
{ 0x011CAA, 0x011CB0, "Mn" },
{ 0x011CB2, 0x011CB3, "Mn" },
{ 0x011CB5, 0x011CB6, "Mn" },
{ 0x011D00, 0x011D06, "Lo" },
{ 0x011D08, 0x011D09, "Lo" },
{ 0x011D0B, 0x011D30, "Lo" },
{ 0x011D31, 0x011D36, "Mn" },
{ 0x011D3C, 0x011D3D, "Mn" },
{ 0x011D3F, 0x011D45, "Mn" },
{ 0x011D50, 0x011D59, "Nd" },
{ 0x011D60, 0x011D65, "Lo" },
{ 0x011D67, 0x011D68, "Lo" },
{ 0x011D6A, 0x011D89, "Lo" },
{ 0x011D8A, 0x011D8E, "Mc" },
{ 0x011D90, 0x011D91, "Mn" },
{ 0x011D93, 0x011D94, "Mc" },
{ 0x011DA0, 0x011DA9, "Nd" },
{ 0x011EE0, 0x011EF2, "Lo" },
{ 0x011EF3, 0x011EF4, "Mn" },
{ 0x011EF5, 0x011EF6, "Mc" },
{ 0x011EF7, 0x011EF8, "Po" },
{ 0x011FC0, 0x011FD4, "No" },
{ 0x011FD5, 0x011FDC, "So" },
{ 0x011FDD, 0x011FE0, "Sc" },
{ 0x011FE1, 0x011FF1, "So" },
{ 0x012000, 0x012399, "Lo" },
{ 0x012400, 0x01246E, "Nl" },
{ 0x012470, 0x012474, "Po" },
{ 0x012480, 0x012543, "Lo" },
{ 0x012F90, 0x012FF0, "Lo" },
{ 0x012FF1, 0x012FF2, "Po" },
{ 0x013000, 0x01342E, "Lo" },
{ 0x013430, 0x013438, "Cf" },
{ 0x014400, 0x014646, "Lo" },
{ 0x016800, 0x016A38, "Lo" },
{ 0x016A40, 0x016A5E, "Lo" },
{ 0x016A60, 0x016A69, "Nd" },
{ 0x016A6E, 0x016A6F, "Po" },
{ 0x016A70, 0x016ABE, "Lo" },
{ 0x016AC0, 0x016AC9, "Nd" },
{ 0x016AD0, 0x016AED, "Lo" },
{ 0x016AF0, 0x016AF4, "Mn" },
{ 0x016B00, 0x016B2F, "Lo" },
{ 0x016B30, 0x016B36, "Mn" },
{ 0x016B37, 0x016B3B, "Po" },
{ 0x016B3C, 0x016B3F, "So" },
{ 0x016B40, 0x016B43, "Lm" },
{ 0x016B50, 0x016B59, "Nd" },
{ 0x016B5B, 0x016B61, "No" },
{ 0x016B63, 0x016B77, "Lo" },
{ 0x016B7D, 0x016B8F, "Lo" },
{ 0x016E40, 0x016E5F, "Lu" },
{ 0x016E60, 0x016E7F, "Ll" },
{ 0x016E80, 0x016E96, "No" },
{ 0x016E97, 0x016E9A, "Po" },
{ 0x016F00, 0x016F4A, "Lo" },
{ 0x016F51, 0x016F87, "Mc" },
{ 0x016F8F, 0x016F92, "Mn" },
{ 0x016F93, 0x016F9F, "Lm" },
{ 0x016FE0, 0x016FE1, "Lm" },
{ 0x016FF0, 0x016FF1, "Mc" },
{ 0x017000, 0x0187F7, "Lo" },
{ 0x018800, 0x018CD5, "Lo" },
{ 0x018D00, 0x018D08, "Lo" },
{ 0x01AFF0, 0x01AFF3, "Lm" },
{ 0x01AFF5, 0x01AFFB, "Lm" },
{ 0x01AFFD, 0x01AFFE, "Lm" },
{ 0x01B000, 0x01B122, "Lo" },
{ 0x01B150, 0x01B152, "Lo" },
{ 0x01B164, 0x01B167, "Lo" },
{ 0x01B170, 0x01B2FB, "Lo" },
{ 0x01BC00, 0x01BC6A, "Lo" },
{ 0x01BC70, 0x01BC7C, "Lo" },
{ 0x01BC80, 0x01BC88, "Lo" },
{ 0x01BC90, 0x01BC99, "Lo" },
{ 0x01BC9D, 0x01BC9E, "Mn" },
{ 0x01BCA0, 0x01BCA3, "Cf" },
{ 0x01CF00, 0x01CF2D, "Mn" },
{ 0x01CF30, 0x01CF46, "Mn" },
{ 0x01CF50, 0x01CFC3, "So" },
{ 0x01D000, 0x01D0F5, "So" },
{ 0x01D100, 0x01D126, "So" },
{ 0x01D129, 0x01D164, "So" },
{ 0x01D165, 0x01D166, "Mc" },
{ 0x01D167, 0x01D169, "Mn" },
{ 0x01D16A, 0x01D16C, "So" },
{ 0x01D16D, 0x01D172, "Mc" },
{ 0x01D173, 0x01D17A, "Cf" },
{ 0x01D17B, 0x01D182, "Mn" },
{ 0x01D183, 0x01D184, "So" },
{ 0x01D185, 0x01D18B, "Mn" },
{ 0x01D18C, 0x01D1A9, "So" },
{ 0x01D1AA, 0x01D1AD, "Mn" },
{ 0x01D1AE, 0x01D1EA, "So" },
{ 0x01D200, 0x01D241, "So" },
{ 0x01D242, 0x01D244, "Mn" },
{ 0x01D2E0, 0x01D2F3, "No" },
{ 0x01D300, 0x01D356, "So" },
{ 0x01D360, 0x01D378, "No" },
{ 0x01D400, 0x01D419, "Lu" },
{ 0x01D41A, 0x01D433, "Ll" },
{ 0x01D434, 0x01D44D, "Lu" },
{ 0x01D44E, 0x01D454, "Ll" },
{ 0x01D456, 0x01D467, "Ll" },
{ 0x01D468, 0x01D481, "Lu" },
{ 0x01D482, 0x01D49B, "Ll" },
{ 0x01D49E, 0x01D49F, "Lu" },
{ 0x01D4A5, 0x01D4A6, "Lu" },
{ 0x01D4A9, 0x01D4AC, "Lu" },
{ 0x01D4AE, 0x01D4B5, "Lu" },
{ 0x01D4B6, 0x01D4B9, "Ll" },
{ 0x01D4BD, 0x01D4C3, "Ll" },
{ 0x01D4C5, 0x01D4CF, "Ll" },
{ 0x01D4D0, 0x01D4E9, "Lu" },
{ 0x01D4EA, 0x01D503, "Ll" },
{ 0x01D504, 0x01D505, "Lu" },
{ 0x01D507, 0x01D50A, "Lu" },
{ 0x01D50D, 0x01D514, "Lu" },
{ 0x01D516, 0x01D51C, "Lu" },
{ 0x01D51E, 0x01D537, "Ll" },
{ 0x01D538, 0x01D539, "Lu" },
{ 0x01D53B, 0x01D53E, "Lu" },
{ 0x01D540, 0x01D544, "Lu" },
{ 0x01D54A, 0x01D550, "Lu" },
{ 0x01D552, 0x01D56B, "Ll" },
{ 0x01D56C, 0x01D585, "Lu" },
{ 0x01D586, 0x01D59F, "Ll" },
{ 0x01D5A0, 0x01D5B9, "Lu" },
{ 0x01D5BA, 0x01D5D3, "Ll" },
{ 0x01D5D4, 0x01D5ED, "Lu" },
{ 0x01D5EE, 0x01D607, "Ll" },
{ 0x01D608, 0x01D621, "Lu" },
{ 0x01D622, 0x01D63B, "Ll" },
{ 0x01D63C, 0x01D655, "Lu" },
{ 0x01D656, 0x01D66F, "Ll" },
{ 0x01D670, 0x01D689, "Lu" },
{ 0x01D68A, 0x01D6A5, "Ll" },
{ 0x01D6A8, 0x01D6C0, "Lu" },
{ 0x01D6C2, 0x01D6DA, "Ll" },
{ 0x01D6DC, 0x01D6E1, "Ll" },
{ 0x01D6E2, 0x01D6FA, "Lu" },
{ 0x01D6FC, 0x01D714, "Ll" },
{ 0x01D716, 0x01D71B, "Ll" },
{ 0x01D71C, 0x01D734, "Lu" },
{ 0x01D736, 0x01D74E, "Ll" },
{ 0x01D750, 0x01D755, "Ll" },
{ 0x01D756, 0x01D76E, "Lu" },
{ 0x01D770, 0x01D788, "Ll" },
{ 0x01D78A, 0x01D78F, "Ll" },
{ 0x01D790, 0x01D7A8, "Lu" },
{ 0x01D7AA, 0x01D7C2, "Ll" },
{ 0x01D7C4, 0x01D7C9, "Ll" },
{ 0x01D7CE, 0x01D7FF, "Nd" },
{ 0x01D800, 0x01D9FF, "So" },
{ 0x01DA00, 0x01DA36, "Mn" },
{ 0x01DA37, 0x01DA3A, "So" },
{ 0x01DA3B, 0x01DA6C, "Mn" },
{ 0x01DA6D, 0x01DA74, "So" },
{ 0x01DA76, 0x01DA83, "So" },
{ 0x01DA85, 0x01DA86, "So" },
{ 0x01DA87, 0x01DA8B, "Po" },
{ 0x01DA9B, 0x01DA9F, "Mn" },
{ 0x01DAA1, 0x01DAAF, "Mn" },
{ 0x01DF00, 0x01DF09, "Ll" },
{ 0x01DF0B, 0x01DF1E, "Ll" },
{ 0x01E000, 0x01E006, "Mn" },
{ 0x01E008, 0x01E018, "Mn" },
{ 0x01E01B, 0x01E021, "Mn" },
{ 0x01E023, 0x01E024, "Mn" },
{ 0x01E026, 0x01E02A, "Mn" },
{ 0x01E100, 0x01E12C, "Lo" },
{ 0x01E130, 0x01E136, "Mn" },
{ 0x01E137, 0x01E13D, "Lm" },
{ 0x01E140, 0x01E149, "Nd" },
{ 0x01E290, 0x01E2AD, "Lo" },
{ 0x01E2C0, 0x01E2EB, "Lo" },
{ 0x01E2EC, 0x01E2EF, "Mn" },
{ 0x01E2F0, 0x01E2F9, "Nd" },
{ 0x01E7E0, 0x01E7E6, "Lo" },
{ 0x01E7E8, 0x01E7EB, "Lo" },
{ 0x01E7ED, 0x01E7EE, "Lo" },
{ 0x01E7F0, 0x01E7FE, "Lo" },
{ 0x01E800, 0x01E8C4, "Lo" },
{ 0x01E8C7, 0x01E8CF, "No" },
{ 0x01E8D0, 0x01E8D6, "Mn" },
{ 0x01E900, 0x01E921, "Lu" },
{ 0x01E922, 0x01E943, "Ll" },
{ 0x01E944, 0x01E94A, "Mn" },
{ 0x01E950, 0x01E959, "Nd" },
{ 0x01E95E, 0x01E95F, "Po" },
{ 0x01EC71, 0x01ECAB, "No" },
{ 0x01ECAD, 0x01ECAF, "No" },
{ 0x01ECB1, 0x01ECB4, "No" },
{ 0x01ED01, 0x01ED2D, "No" },
{ 0x01ED2F, 0x01ED3D, "No" },
{ 0x01EE00, 0x01EE03, "Lo" },
{ 0x01EE05, 0x01EE1F, "Lo" },
{ 0x01EE21, 0x01EE22, "Lo" },
{ 0x01EE29, 0x01EE32, "Lo" },
{ 0x01EE34, 0x01EE37, "Lo" },
{ 0x01EE4D, 0x01EE4F, "Lo" },
{ 0x01EE51, 0x01EE52, "Lo" },
{ 0x01EE61, 0x01EE62, "Lo" },
{ 0x01EE67, 0x01EE6A, "Lo" },
{ 0x01EE6C, 0x01EE72, "Lo" },
{ 0x01EE74, 0x01EE77, "Lo" },
{ 0x01EE79, 0x01EE7C, "Lo" },
{ 0x01EE80, 0x01EE89, "Lo" },
{ 0x01EE8B, 0x01EE9B, "Lo" },
{ 0x01EEA1, 0x01EEA3, "Lo" },
{ 0x01EEA5, 0x01EEA9, "Lo" },
{ 0x01EEAB, 0x01EEBB, "Lo" },
{ 0x01EEF0, 0x01EEF1, "Sm" },
{ 0x01F000, 0x01F02B, "So" },
{ 0x01F030, 0x01F093, "So" },
{ 0x01F0A0, 0x01F0AE, "So" },
{ 0x01F0B1, 0x01F0BF, "So" },
{ 0x01F0C1, 0x01F0CF, "So" },
{ 0x01F0D1, 0x01F0F5, "So" },
{ 0x01F100, 0x01F10C, "No" },
{ 0x01F10D, 0x01F1AD, "So" },
{ 0x01F1E6, 0x01F202, "So" },
{ 0x01F210, 0x01F23B, "So" },
{ 0x01F240, 0x01F248, "So" },
{ 0x01F250, 0x01F251, "So" },
{ 0x01F260, 0x01F265, "So" },
{ 0x01F300, 0x01F3FA, "So" },
{ 0x01F3FB, 0x01F3FF, "Sk" },
{ 0x01F400, 0x01F6D7, "So" },
{ 0x01F6DD, 0x01F6EC, "So" },
{ 0x01F6F0, 0x01F6FC, "So" },
{ 0x01F700, 0x01F773, "So" },
{ 0x01F780, 0x01F7D8, "So" },
{ 0x01F7E0, 0x01F7EB, "So" },
{ 0x01F800, 0x01F80B, "So" },
{ 0x01F810, 0x01F847, "So" },
{ 0x01F850, 0x01F859, "So" },
{ 0x01F860, 0x01F887, "So" },
{ 0x01F890, 0x01F8AD, "So" },
{ 0x01F8B0, 0x01F8B1, "So" },
{ 0x01F900, 0x01FA53, "So" },
{ 0x01FA60, 0x01FA6D, "So" },
{ 0x01FA70, 0x01FA74, "So" },
{ 0x01FA78, 0x01FA7C, "So" },
{ 0x01FA80, 0x01FA86, "So" },
{ 0x01FA90, 0x01FAAC, "So" },
{ 0x01FAB0, 0x01FABA, "So" },
{ 0x01FAC0, 0x01FAC5, "So" },
{ 0x01FAD0, 0x01FAD9, "So" },
{ 0x01FAE0, 0x01FAE7, "So" },
{ 0x01FAF0, 0x01FAF6, "So" },
{ 0x01FB00, 0x01FB92, "So" },
{ 0x01FB94, 0x01FBCA, "So" },
{ 0x01FBF0, 0x01FBF9, "Nd" },
{ 0x020000, 0x02A6DF, "Lo" },
{ 0x02A700, 0x02B738, "Lo" },
{ 0x02B740, 0x02B81D, "Lo" },
{ 0x02B820, 0x02CEA1, "Lo" },
{ 0x02CEB0, 0x02EBE0, "Lo" },
{ 0x02F800, 0x02FA1D, "Lo" },
{ 0x030000, 0x03134A, "Lo" },
{ 0x0E0020, 0x0E007F, "Cf" },
{ 0x0E0100, 0x0E01EF, "Mn" },
{ 0x0F0000, 0x0FFFFD, "Co" },
{ 0x100000, 0x10FFFD, "Co" },
},
long_names = {
C = "Other",
Cc = "Control",
Cf = "Format",
Cn = "Unassigned",
Co = "Private_Use",
Cs = "Surrogate",
L = "Letter",
LC = "Cased_Letter",
Ll = "Lowercase_Letter",
Lm = "Modifier_Letter",
Lo = "Other_Letter",
Lt = "Titlecase_Letter",
Lu = "Uppercase_Letter",
M = "Mark",
Mc = "Spacing_Mark",
Me = "Enclosing_Mark",
Mn = "Nonspacing_Mark",
N = "Number",
Nd = "Decimal_Number",
Nl = "Letter_Number",
No = "Other_Number",
P = "Punctuation",
Pc = "Connector_Punctuation",
Pd = "Dash_Punctuation",
Pe = "Close_Punctuation",
Pf = "Final_Punctuation",
Pi = "Initial_Punctuation",
Po = "Other_Punctuation",
Ps = "Open_Punctuation",
S = "Symbol",
Sc = "Currency_Symbol",
Sk = "Modifier_Symbol",
Sm = "Math_Symbol",
So = "Other_Symbol",
Z = "Separator",
Zl = "Line_Separator",
Zp = "Paragraph_Separator",
Zs = "Space_Separator",
},
}
lipo56cnlepswprxv4ofejdkdoblrxm
Module:Lang/data
828
1819
15588
2022-08-07T20:37:16Z
Kambai Akau
15
Created page with "local lang_obj = mw.language.getContentLanguage(); local this_wiki_lang_tag = lang_obj.code; -- get this wiki's language tag --[[--------------------------< L A N G _ N A M E _ T A B L E >------------------------------------------------ primary table of tables that decode: lang -> language tags and names script -> ISO 15924 script tags region -> ISO 3166 region tags variant -> iana registered variant tags suppressed -> map of scripts tags and their assoc..."
Scribunto
text/plain
local lang_obj = mw.language.getContentLanguage();
local this_wiki_lang_tag = lang_obj.code; -- get this wiki's language tag
--[[--------------------------< L A N G _ N A M E _ T A B L E >------------------------------------------------
primary table of tables that decode:
lang -> language tags and names
script -> ISO 15924 script tags
region -> ISO 3166 region tags
variant -> iana registered variant tags
suppressed -> map of scripts tags and their associated language tags
all of these data come from separate modules that are derived from the IANA language-subtag-registry file
key_to_lower() avoids the metatable trap and sets all keys in the subtables to lowercase. Many language codes
have multiple associated names; Module:lang is only concerned with the first name so key_to_lower() only fetches
the first name.
]]
local function key_to_lower (module, src_type)
local out = {};
local source = (('var_sup' == src_type) and require (module)) or mw.loadData (module); -- fetch data from this module; require() avoids metatable trap for variant data
if 'var_sup' == src_type then
for k, v in pairs (source) do
out[k:lower()] = v; -- for variant and suppressed everything is needed
end
elseif 'lang' == src_type and source.active then -- for ~/iana_languages (active)
for k, v in pairs (source.active) do
out[k:lower()] = v[1]; -- ignore multiple names; take first name only
end
elseif 'lang_dep' == src_type and source.deprecated then -- for ~/iana_languages (deprecated)
for k, v in pairs (source.deprecated) do
out[k:lower()] = v[1]; -- ignore multiple names; take first name only
end
else -- here for all other sources
for k, v in pairs (source) do
out[k:lower()] = v[1]; -- ignore multiple names; take first name only
end
end
return out;
end
local lang_name_table_t = {
lang = key_to_lower ('Module:Language/data/iana languages', 'lang'),
lang_dep = key_to_lower ('Module:Language/data/iana languages', 'lang_dep'),
script = key_to_lower ('Module:Language/data/iana scripts'), -- script keys are capitalized; set to lower
region = key_to_lower ('Module:Language/data/iana regions'), -- region keys are uppercase; set to lower
variant = key_to_lower ('Module:Language/data/iana variants', 'var_sup'),
suppressed = key_to_lower ('Module:Language/data/iana suppressed scripts', 'var_sup'), -- script keys are capitalized; set to lower
}
--[[--------------------------< I 1 8 N M E D I A W I K I O V E R R I D E >--------------------------------
For internationalization; not used at en.wiki
The language names taken from the IANA language-subtag-registry file are given in English. That may not be ideal.
Translating ~8,000 language names is also not ideal. MediaWiki maintains (much) shorter lists of language names
in most languages for which there is a Wikipedia edition. When desired, Module:Lang can use the MediaWiki
language list for the local language.
Caveat lector: the list of MediaWiki language names for your language may not be complete or may not exist at all.
When incomplete, MediaWiki's list will 'fall back' to another language (typically English). When that happens
add an appropriate entry to the override table below.
Caveat lector: the list of MediaWiki language names for your language may not be correct. At en.wiki, the
MediaWiki language names do not agree with the IANA language names for these ISO 639-1 tags. Often it is simply
spelling differences:
bh: IANA: Bihari languages MW: Bhojpuri – the ISO 639-3 tag for Bhojpuri is bho
bn: IANA: Bengali MW: Bangla – Bengali is the exonym, Bangla is the endonym
dv: IANA: Dhivehi MW: Divehi
el: IANA: Modern Greek MW: Greek
ht: IANA: Haitian MW: Haitian Creole
ky: IANA: Kirghiz MW: Kyrgyz
li: IANA: Limburgan MW: Limburgish
or: IANA: Oriya MW: Odia
os: IANA: Ossetian MW: Ossetic
"pa: IANA: Panjabi MW: Punjabi
"ps: IANA: Pushto MW: Pashto
"to: IANA: Tonga MW: Tongan
"ug: IANA: Uighur MW: Uyghur
use the override table to override language names that are incorrect for your project
To see the list of names that MediaWiki has for your language, enter this in the Debug colsole:
=mw.dumpObject (mw.language.fetchLanguageNames ('<tag>', 'all'))
(replacing <tag> with the language tag for your language)
Use of the MediaWiki language names lists is enabled when media_wiki_override_enable is set to boolean true.
]]
local media_wiki_override_enable = false; -- set to true to override IANA names with MediaWiki names; always false at en.wiki
-- caveat lector: the list of MediaWiki language names for your language may not be complete or may not exist at all
if true == media_wiki_override_enable then
local mw_languages_by_tag_t = mw.language.fetchLanguageNames (this_wiki_lang_tag, 'all'); -- get a table of language tag/name pairs known to MediaWiki
for tag, name in pairs (mw_languages_by_tag_t) do -- loop through each tag/name pair in the MediaWiki list
if lang_name_table_t.lang[tag] then -- if the tag is in the main list
lang_name_table_t.lang[tag] = name; -- overwrite exisiting name with the name from MediaWiki
end
end
end
--[[--------------------------< O V E R R I D E >--------------------------------------------------------------
Language codes and names in this table override the BCP47 names in lang_name_table.
indexes in this table shall always be lower case
]]
local override = {
------------------------------< I S O _ 6 3 9 - 1 >------------------------------------------------------------
["ca-valencia"] = "Valencian",
["cu"] = "Church Slavonic", -- 2nd IANA name;
["de-at"] = "Austrian German", -- these code-region and code-variant tags to match en.wiki article names
["de-ch"] = "Swiss Standard German",
["en-au"] = "Australian English",
["en-ca"] = "Canadian English",
["en-emodeng"] = "Early Modern English",
["en-gb"] = "British English",
["en-ie"] = "Irish English",
["en-in"] = "Indian English",
["en-nz"] = "New Zealand English",
["en-us"] = "American English",
["en-za"] = "South African English",
["fy"] = "West Frisian", -- Western Frisian
["mo"] = "Moldovan", -- Moldavian (deprecated code); to match en.wiki article title
["nl-be"] = "Flemish", -- match MediaWiki
["oc-provenc"] = "Provençal",
["ps"] = "Pashto", -- Pushto
["pt-br"] = "Brazilian Portuguese", -- match MediaWiki
["tw-asante"] = "Asante Twi",
-- these ISO 639-1 language-name overrides imported from Module:Language/data/wp_languages
--<begin do-not-edit except to comment out>--
["av"] = "Avar", -- Avaric
["bo"] = "Standard Tibetan", -- Tibetan
["el"] = "Greek", -- Modern Greek
-- ["en-SA"] = "South African English", -- English; no; SA is not South Africa it Saudi Arabia; ZA is South Africa
["ff"] = "Fula", -- Fulah
["ht"] = "Haitian Creole", -- Haitian
["hz"] = "Otjiherero", -- Herero
["ii"] = "Yi", -- Sichuan Yi
["ki"] = "Gikuyu", -- Kikuyu
["kl"] = "Greenlandic", -- Kalaallisut
["ky"] = "Kyrgyz", -- Kirghiz
["lg"] = "Luganda", -- Ganda
["li"] = "Limburgish", -- Limburgan
["mi"] = "Māori", -- Maori
["na"] = "Nauruan", -- Nauru
["nb"] = "Bokmål", -- Norwegian Bokmål
["nd"] = "Northern Ndebele", -- North Ndebele
["nn"] = "Nynorsk", -- Norwegian Nynorsk
["nr"] = "Southern Ndebele", -- South Ndebele
["ny"] = "Chichewa", -- Nyanja
["oj"] = "Ojibwe", -- Ojibwa
["or"] = "Odia", -- Oriya
["pa"] = "Punjabi", -- Panjabi
["rn"] = "Kirundi", -- Rundi
["sl"] = "Slovene", -- Slovenian
["ss"] = "Swazi", -- Swati
["st"] = "Sotho", -- Southern Sotho
["to"] = "Tongan", -- Tonga
--<end do-not-edit except to comment out>--
------------------------------< I S O _ 6 3 9 - 2, - 3, - 5 >----------------------------------------------
["alv"] = "Atlantic–Congo languages", -- to match en.wiki article title (endash)
["arc"] = "Aramaic", -- Official Aramaic (700-300 BCE), Imperial Aramaic (700-300 BCE);
["art"] = "constructed", -- to match en.wiki article; lowercase for category name
["bhd"] = "Bhadarwahi", -- Bhadrawahi; to match en.wiki article title
["bla"] = "Blackfoot", -- Siksika; to match en.wiki article title
["bua"] = "Buryat", -- Buriat; this is a macro language; these four use wp preferred transliteration;
["bxm"] = "Mongolian Buryat", -- Mongolia Buriat; these three all redirect to Buryat
["bxr"] = "Russian Buryat", -- Russia Buriat;
["bxu"] = "Chinese Buryat", -- China Buriat;
["byr"] = "Yipma", -- Baruya, Yipma
["egy"] = "Ancient Egyptian", -- Egyptian (Ancient); distinguish from contemporary arz: Egyptian Arabic
["ems"] = "Alutiiq", -- Pacific Gulf Yupik; to match en.wiki article title
["esx"] = "Eskimo–Aleut languages", -- to match en.wiki article title (endash)
["frr"] = "North Frisian", -- Northern Frisian
["frs"] = "East Frisian Low Saxon", -- Eastern Frisian
["gsw-fr"] = "Alsatian", -- match MediaWiki
["haa"] = "Hän", -- Han; to match en.wiki article title
["hmx"] = "Hmong–Mien languages", -- to match en.wiki article title (endash)
["ilo"] = "Ilocano", -- Iloko; to match en.wiki article title
["jam"] = "Jamaican Patois", -- Jamaican Creole English
["luo"] = "Dholuo", -- IANA (primary) /ISO 639-3: Luo (Kenya and Tanzania); IANA (secondary): Dholuo
["mhr"] = "Meadow Mari", -- Eastern Mari
["mid"] = "Modern Mandaic", -- Mandaic
['mis'] = "uncoded", -- Uncoded languages; capitalization; special scope, not collective scope;
["mkh"] = "Mon–Khmer languages", -- to match en.wiki article title (endash)
["mla"] = "Tamambo", -- Malo
['mte'] = "Mono-Alu", -- Mono (Solomon Islands)
['mul'] = "multiple", -- Multiple languages; capitalization; special scope, not collective scope;
["nan-tw"] = "Taiwanese Hokkien", -- make room for IANA / 639-3 nan Min Nan Chinese; match en.wiki article title
["new"] = "Newar", -- Newari, Nepal Bhasa; to match en,wiki article title
["ngf"] = "Trans–New Guinea languages", -- to match en.wiki article title (endash)
["nic"] = "Niger–Congo languages", -- Niger-Kordofanian languages; to match en,wiki article title
["nrf"] = "Norman", -- not quite a collective - IANA name: Jèrriais + Guernésiais; categorizes to Norman-language text
["nrf-gg"] = "Guernésiais", -- match MediaWiki
["nrf-je"] = "Jèrriais", -- match MediaWiki
["nzi"] = "Nzema", -- Nzima; to match en.wiki article title
["oma"] = "Omaha–Ponca", -- to match en.wiki article title (endash)
["orv"] = "Old East Slavic", -- Old Russian
["pfl"] = "Palatine German", -- Pfaelzisch; to match en.wiki article
["pie"] = "Piro Pueblo", -- Piro; to match en.wiki article
["pms"] = "Piedmontese", -- Piemontese; to match en.wiki article title
["pnb"] = "Punjabi (Western)", -- Western Panjabi; dab added to override import from ~/wp languages and distinguish pnb from pa in reverse look up tag_from_name()
["rop"] = "Australian Kriol", -- Kriol; en.wiki article is a dab; point to correct en.wiki article
["sdo"] = "Bukar–Sadong", -- Bukar-Sadung Bidayuh; to match en.wiki article title
["stq"] = "Saterland Frisian", -- Saterfriesisch
["und"] = "undetermined", -- capitalization to match existing category
["wrg"] = "Warrongo", -- Warungu
["xal-ru"] = "Kalmyk", -- to match en.wiki article title
["xgf"] = "Tongva", -- ISO 639-3 is Gabrielino-Fernandeño
["yuf"] = "Havasupai–Hualapai", -- Havasupai-Walapai-Yavapai; to match en.wiki article title
["zxx"] = "no linguistic content", -- capitalization
-- these ISO 639-2, -3 language-name overrides imported from Module:Language/data/wp_languages
--<begin do-not-edit except to comment out>--
["ace"] = "Acehnese", -- Achinese
["aec"] = "Sa'idi Arabic", -- Saidi Arabic
["akl"] = "Aklan", -- Aklanon
["alt"] = "Altay", -- Southern Altai
["apm"] = "Mescalero-Chiricahua", -- Mescalero-Chiricahua Apache
["bal"] = "Balochi", -- Baluchi
-- ["bcl"] = "Central Bicolano", -- Central Bikol
["bin"] = "Edo", -- Bini
["bpy"] = "Bishnupriya Manipuri", -- Bishnupriya
["chg"] = "Chagatay", -- Chagatai
["ckb"] = "Sorani Kurdish", -- Central Kurdish
["cnu"] = "Shenwa", -- Chenoua
["coc"] = "Cocopah", -- Cocopa
["diq"] = "Zazaki", -- Dimli
["fit"] = "Meänkieli", -- Tornedalen Finnish
["fkv"] = "Kven", -- Kven Finnish
["frk"] = "Old Frankish", -- Frankish
["gez"] = "Ge'ez", -- Geez
["gju"] = "Gujari", -- Gujari
["gsw"] = "Alemannic German", -- Swiss German
["gul"] = "Gullah", -- Sea Island Creole English
["hak"] = "Hakka", -- Hakka Chinese
["hbo"] = "Biblical Hebrew", -- Ancient Hebrew
["hnd"] = "Hindko", -- Southern Hindko
-- ["ikt"] = "Inuvialuk", -- Inuinnaqtun
["kaa"] = "Karakalpak", -- Kara-Kalpak
["khb"] = "Tai Lü", -- Lü
["kmr"] = "Kurmanji Kurdish", -- Northern Kurdish
["kpo"] = "Kposo", -- Ikposo
["krj"] = "Kinaray-a", -- Kinaray-A
["ktz"] = "Juǀ'hoan", -- Juǀʼhoan
["lez"] = "Lezgian", -- Lezghian
["liv"] = "Livonian", -- Liv
["lng"] = "Lombardic", -- Langobardic
["mia"] = "Miami-Illinois", -- Miami
["miq"] = "Miskito", -- Mískito
["mix"] = "Mixtec", -- Mixtepec Mixtec
["mni"] = "Meitei", -- Manipuri
["mrj"] = "Hill Mari", -- Western Mari
["mww"] = "White Hmong", -- Hmong Daw
["nds-nl"] = "Dutch Low Saxon", -- Low German
-- ["new"] = "Nepal Bhasa", -- Newari
["nso"] = "Northern Sotho", -- Pedi
-- ["nwc"] = "Classical Nepal Bhasa", -- Classical Newari, Classical Nepal Bhasa, Old Newari
["ood"] = "O'odham", -- Tohono O'odham
["otk"] = "Old Turkic", -- Old Turkish
["pal"] = "Middle Persian", -- Pahlavi
["pam"] = "Kapampangan", -- Pampanga
["phr"] = "Potwari", -- Pahari-Potwari
["pka"] = "Jain Prakrit", -- Ardhamāgadhī Prākrit
-- ["pnb"] = "Punjabi", -- Western Panjabi
["psu"] = "Shauraseni", -- Sauraseni Prākrit
["rap"] = "Rapa Nui", -- Rapanui
["rar"] = "Cook Islands Māori", -- Rarotongan
["rmu"] = "Scandoromani", -- Tavringer Romani
["rom"] = "Romani", -- Romany
["rup"] = "Aromanian", -- Macedo-Romanian
["ryu"] = "Okinawan", -- Central Okinawan
["sdc"] = "Sassarese", -- Sassarese Sardinian
["sdn"] = "Gallurese", -- Gallurese Sardinian
["shp"] = "Shipibo", -- Shipibo-Conibo
["src"] = "Logudorese", -- Logudorese Sardinian
["sro"] = "Campidanese", -- Campidanese Sardinian
["tkl"] = "Tokelauan", -- Tokelau
["tvl"] = "Tuvaluan", -- Tuvalu
["tyv"] = "Tuvan", -- Tuvinian
["vls"] = "West Flemish", -- Vlaams
["wep"] = "Westphalian", -- Westphalien
["xal"] = "Oirat", -- Kalmyk
["xcl"] = "Old Armenian", -- Classical Armenian
["yua"] = "Yucatec Maya", -- Yucateco
--<end do-not-edit except to comment out>--
------------------------------< P R I V A T E _ U S E _ T A G S >----------------------------------------------
["alg-x-proto"] = "Proto-Algonquian", -- alg in IANA is Algonquian languages
["cel-x-proto"] = "Proto-Celtic", -- cel in IANA is Celtic languages
["gem-x-proto"] = "Proto-Germanic", -- gem in IANA is Germanic languages
["gmw-x-ecg"] = "East Central German",
["grc-x-aeolic"] = "Aeolic Greek", -- these grc-x-... codes are preferred alternates to the non-standard catchall code grc-gre
["grc-x-attic"] = "Attic Greek",
["grc-x-biblical"] = "Biblical Greek",
["grc-x-byzant"] = "Byzantine Greek",
["grc-x-classic"] = "Classical Greek",
["grc-x-doric"] = "Doric Greek",
["grc-x-hellen"] = "Hellenistic Greek",
["grc-x-ionic"] = "Ionic Greek",
["grc-x-koine"] = "Koinē Greek",
["grc-x-medieval"] = "Medieval Greek",
["grc-x-patris"] = "Patristic Greek",
["grk-x-proto"] = "Proto-Greek", -- grk in IANA is Greek languages
["iir-x-proto"] = "Proto-Indo-Iranian", -- iir in IANA is Indo-Iranian Languages
["ine-x-proto"] = "Proto-Indo-European",
["ira-x-proto"] = "Proto-Iranian", -- ira in IANA is Iranian languages
["itc-x-proto"] = "Proto-Italic", -- itc in IANA is Italic languages
["ksh-x-colog"] = "Colognian", -- en.wiki article is Colognian; ksh (Kölsch) redirects there
["la-x-medieval"] = "Medieval Latin",
["mis-x-ripuar"] = "Ripuarian", -- replaces improper use of ksh in wp_languages
["sem-x-proto"] = "Proto-Semitic",
["sla-x-proto"] = "Proto-Slavic", -- sla in IANA is Slavic languages
["yuf-x-hav"] = "Havasupai", -- IANA name for these three is Havasupai-Walapai-Yavapai
["yuf-x-wal"] = "Walapai",
["yuf-x-yav"] = "Yavapai",
}
--[[--------------------------< A R T I C L E _ L I N K >------------------------------------------------------
for those rare occasions when article titles don't fit with the normal '<language name>-language', this table
maps language code to article title. Use of this table should be avoided and the use of redirects preferred as
that is the long-standing method of handling article names that don't fit with the normal pattern
]]
local article_name = {
["lij"] = "Ligurian (Romance language)", -- Ligurian; see Template_talk:Lang#Ligurian_dab
['mnh'] = "Mono language (Congo)", -- Mono (Democratic Republic of Congo); see Template_talk:Lang#Mono_languages
['mnr'] = "Mono language (California)", -- Mono (USA)
['mru'] = "Mono language (Cameroon)", -- Mono (Cameroon)
["xlg"] = "Ligurian (ancient language)", -- see Template_talk:Lang#Ligurian_dab
}
--[=[-------------------------< R T L _ S C R I P T S >--------------------------------------------------------
ISO 15924 scripts that are written right-to-left. Data in this table taken from [[ISO 15924#List of codes]]
last update to this list: 2017-12-24
]=]
local rtl_scripts = {
'adlm', 'arab', 'aran', 'armi', 'avst', 'cprt', 'egyd', 'egyh', 'hatr', 'hebr',
'hung', 'inds', 'khar', 'lydi', 'mand', 'mani', 'mend', 'merc', 'mero', 'narb',
'nbat', 'nkoo', 'orkh', 'palm', 'phli', 'phlp', 'phlv', 'phnx', 'prti', 'rohg',
'samr', 'sarb', 'sogd', 'sogo', 'syrc', 'syre', 'syrj', 'syrn', 'thaa', 'wole',
};
--[[--------------------------< T R A N S L I T _ T I T L E S >------------------------------------------------
This is a table of tables of transliteration standards and the language codes or language scripts that apply to
those standards. This table is used to create the tool-tip text associated with the transliterated text displayed
by some of the {{lang-??}} templates.
These tables are more-or-less copied directly from {{transl}}. The standard 'NO_STD' is a construct to allow for
the cases when no |std= parameter value is provided.
]]
local translit_title_table = {
['ahl'] = {
['default'] = 'Academy of the Hebrew Language transliteration',
},
['ala'] = {
['default'] = 'American Library Association – Library of Congress transliteration',
},
['ala-lc'] = {
['default'] = 'American Library Association – Library of Congress transliteration',
},
['batr'] = {
['default'] = 'Bikdash Arabic Transliteration Rules',
},
['bgn/pcgn'] = {
['default'] = 'Board on Geographic Names / Permanent Committee on Geographical Names transliteration',
},
['din'] = {
['ar'] = 'DIN 31635 Arabic',
['fa'] = 'DIN 31635 Arabic',
['ku'] = 'DIN 31635 Arabic',
['ps'] = 'DIN 31635 Arabic',
['tg'] = 'DIN 31635 Arabic',
['ug'] = 'DIN 31635 Arabic',
['ur'] = 'DIN 31635 Arabic',
['arab'] = 'DIN 31635 Arabic',
['default'] = 'DIN transliteration',
},
['eae'] = {
['default'] = 'Encyclopaedia Aethiopica transliteration',
},
['hepburn'] = {
['default'] = 'Hepburn transliteration',
},
['hunterian'] = {
['default'] = 'Hunterian transliteration',
},
['iast'] = {
['default'] = 'International Alphabet of Sanskrit transliteration',
},
['iso'] = { -- when a transliteration standard is supplied
['ab'] = 'ISO 9 Cyrillic',
['ba'] = 'ISO 9 Cyrillic',
['be'] = 'ISO 9 Cyrillic',
['bg'] = 'ISO 9 Cyrillic',
['kk'] = 'ISO 9 Cyrillic',
['ky'] = 'ISO 9 Cyrillic',
['mn'] = 'ISO 9 Cyrillic',
['ru'] = 'ISO 9 Cyrillic',
['tg'] = 'ISO 9 Cyrillic',
['uk'] = 'ISO 9 Cyrillic',
['bua'] = 'ISO 9 Cyrillic',
['sah'] = 'ISO 9 Cyrillic',
['tut'] = 'ISO 9 Cyrillic',
['xal'] = 'ISO 9 Cyrillic',
['cyrl'] = 'ISO 9 Cyrillic',
['ar'] = 'ISO 233 Arabic',
['ku'] = 'ISO 233 Arabic',
['ps'] = 'ISO 233 Arabic',
['ug'] = 'ISO 233 Arabic',
['ur'] = 'ISO 233 Arabic',
['arab'] = 'ISO 233 Arabic',
['he'] = 'ISO 259 Hebrew',
['yi'] = 'ISO 259 Hebrew',
['hebr'] = 'ISO 259 Hebrew',
['el'] = 'ISO 843 Greek',
['grc'] = 'ISO 843 Greek',
['ja'] = 'ISO 3602 Japanese',
['hira'] = 'ISO 3602 Japanese',
['hrkt'] = 'ISO 3602 Japanese',
['jpan'] = 'ISO 3602 Japanese',
['kana'] = 'ISO 3602 Japanese',
['zh'] = 'ISO 7098 Chinese',
['chi'] = 'ISO 7098 Chinese',
['pny'] = 'ISO 7098 Chinese',
['zho'] = 'ISO 7098 Chinese',
-- ['han'] = 'ISO 7098 Chinese', -- unicode alias of Hani? doesn't belong here? should be Hani?
['hans'] = 'ISO 7098 Chinese',
['hant'] = 'ISO 7098 Chinese',
['ka'] = 'ISO 9984 Georgian',
['kat'] = 'ISO 9984 Georgian',
['arm'] = 'ISO 9985 Armenian',
['hy'] = 'ISO 9985 Armenian',
['th'] = 'ISO 11940 Thai',
['tha'] = 'ISO 11940 Thai',
['ko'] = 'ISO 11941 Korean',
['kor'] = 'ISO 11941 Korean',
['awa'] = 'ISO 15919 Indic',
['bho'] = 'ISO 15919 Indic',
['bn'] = 'ISO 15919 Indic',
['bra'] = 'ISO 15919 Indic',
['doi'] = 'ISO 15919 Indic',
['dra'] = 'ISO 15919 Indic',
['gon'] = 'ISO 15919 Indic',
['gu'] = 'ISO 15919 Indic',
['hi'] = 'ISO 15919 Indic',
['inc'] = 'ISO 15919 Indic',
['kn'] = 'ISO 15919 Indic',
['kok'] = 'ISO 15919 Indic',
['ks'] = 'ISO 15919 Indic',
['mag'] = 'ISO 15919 Indic',
['mai'] = 'ISO 15919 Indic',
['ml'] = 'ISO 15919 Indic',
['mr'] = 'ISO 15919 Indic',
['ne'] = 'ISO 15919 Indic',
['new'] = 'ISO 15919 Indic',
['or'] = 'ISO 15919 Indic',
['pa'] = 'ISO 15919 Indic',
['raj'] = 'ISO 15919 Indic',
['sa'] = 'ISO 15919 Indic',
['sat'] = 'ISO 15919 Indic',
['sd'] = 'ISO 15919 Indic',
['si'] = 'ISO 15919 Indic',
['ta'] = 'ISO 15919 Indic',
['tcy'] = 'ISO 15919 Indic',
['te'] = 'ISO 15919 Indic',
['beng'] = 'ISO 15919 Indic',
['brah'] = 'ISO 15919 Indic',
['deva'] = 'ISO 15919 Indic',
['gujr'] = 'ISO 15919 Indic',
['guru'] = 'ISO 15919 Indic',
['knda'] = 'ISO 15919 Indic',
['mlym'] = 'ISO 15919 Indic',
['orya'] = 'ISO 15919 Indic',
['sinh'] = 'ISO 15919 Indic',
['taml'] = 'ISO 15919 Indic',
['telu'] = 'ISO 15919 Indic',
['default'] = 'ISO transliteration',
},
['jyutping'] = {
['default'] = 'Jyutping transliteration',
},
['mlcts'] = {
['default'] = 'Myanmar Language Commission Transcription System',
},
['mr'] = {
['default'] = 'McCune–Reischauer transliteration',
},
['nihon-shiki'] = {
['default'] = 'Nihon-shiki transliteration',
},
['no_std'] = { -- when no transliteration standard is supplied
['akk'] = 'Semitic transliteration',
['sem'] = 'Semitic transliteration',
['phnx'] = 'Semitic transliteration',
['xsux'] = 'Cuneiform transliteration',
},
['pinyin'] = {
['default'] = 'Pinyin transliteration',
},
['rr'] = {
['default'] = 'Revised Romanization of Korean transliteration',
},
['rtgs'] = {
['default'] = 'Royal Thai General System of Transcription',
},
['satts'] = {
['default'] = 'Standard Arabic Technical Transliteration System transliteration',
},
['scientific'] = {
['default'] = 'scientific transliteration',
},
['ukrainian'] = {
['default'] = 'Ukrainian National system of romanization',
},
['ungegn'] = {
['default'] = 'United Nations Group of Experts on Geographical Names transliteration',
},
['wadegile'] = {
['default'] = 'Wade–Giles transliteration',
},
['wehr'] = {
['default'] = 'Hans Wehr transliteration',
},
};
return
{
this_wiki_lang_tag = this_wiki_lang_tag,
this_wiki_lang_dir = lang_obj:getDir(), -- wiki's language direction
article_name = article_name,
lang_name_table = lang_name_table_t,
override = override,
rtl_scripts = rtl_scripts,
special_tags_table = special_tags_table,
translit_title_table = translit_title_table,
};
gcytnpe6x2x7bs1mj7bzccelzc10um7
Module:Lang/data/doc
828
1820
15589
2022-08-07T20:38:21Z
Kambai Akau
15
Created page with "{{High-use}} {{Lua|Module:Language/data/iana languages|Module:Language/data/iana scripts|Module:Language/data/iana regions|Module:Language/data/iana variants|Module:Language/data/iana suppressed scripts}} This module holds various support tables used by [[Module:Lang]] * <code>lang_name_table</code> – this table provides language name data used in the creation of categories and, for the {{tld|lang-??}} templates, the language name annotation * <code>override</code>..."
wikitext
text/x-wiki
{{High-use}}
{{Lua|Module:Language/data/iana languages|Module:Language/data/iana scripts|Module:Language/data/iana regions|Module:Language/data/iana variants|Module:Language/data/iana suppressed scripts}}
This module holds various support tables used by [[Module:Lang]]
* <code>lang_name_table</code> – this table provides language name data used in the creation of categories and, for the {{tld|lang-??}} templates, the language name annotation
* <code>override</code> – this table overrides data in <code>lang_name_table</code>; commonly used when an en.wiki article title differs from the name for the standard's language
* <code>rtl_scripts</code> – a list of ISO 15924 scripts that are written right-to-left; data taken from the table at [[ISO 15924#List of codes]]
* <code>translit_title_table</code> – a table of tables that is used in the creation of the <code>title=</code> attribute of the {{tag|i}} tags that wrap transliterated text; data adapted from {{tlx|transl}}
* <code>article_name</code> – this table overrides <code>lang_name_table</code> and <code>override</code> for (typically) disambiguated en.wiki article names
<includeonly>{{#ifeq:{{SUBPAGENAME}}|sandbox | |
<!-- Categories below this line, please; interwikis at Wikidata -->
[[Category:Language-related modules]]
}}</includeonly>
ib1nn1jo0lq0qijxxilorys64wmvbb3
Ta̱mpi̱let:Main other
10
1821
15594
2022-08-08T21:27:48Z
Kambai Akau
15
Created page with "{{#switch: <!--If no or empty "demospace" parameter then detect namespace--> {{#if:{{{demospace|}}} | {{lc: {{{demospace}}} }} <!--Use lower case "demospace"--> | {{#ifeq:{{NAMESPACE}}|{{ns:0}} | main | other }} }} | main = {{{1|}}} | other | #default = {{{2|}}} }}<noinclude> {{documentation}} <!-- Add categories to the /doc subpage; interwikis go to Wikidata, thank you! --> </noinclude>"
wikitext
text/x-wiki
{{#switch:
<!--If no or empty "demospace" parameter then detect namespace-->
{{#if:{{{demospace|}}}
| {{lc: {{{demospace}}} }} <!--Use lower case "demospace"-->
| {{#ifeq:{{NAMESPACE}}|{{ns:0}}
| main
| other
}}
}}
| main = {{{1|}}}
| other
| #default = {{{2|}}}
}}<noinclude>
{{documentation}}
<!-- Add categories to the /doc subpage; interwikis go to Wikidata, thank you! -->
</noinclude>
fqcj40f1ojeitvtz4m2eefrp1ymhi6o
Ta̱mpi̱let:Main other/doc
10
1822
15595
2022-08-08T21:28:33Z
Kambai Akau
15
Created page with "{{Documentation subpage}} {{used in system}} {{Template shortcut|ns0|mo|ao}} <!-- PLEASE ADD CATEGORIES AT THE BOTTOM OF THIS PAGE --> This is the {{tl|main other}} meta-template. This template helps other templates detect if they are on a main space (article) page or some "other" type of page. ===Basic usage=== This template usually takes two parameters, like this: : {{Tlc|main other |''result if in mainspace'' |''result if elsewhere''}} If the template is o..."
wikitext
text/x-wiki
{{Documentation subpage}}
{{used in system}}
{{Template shortcut|ns0|mo|ao}}
<!-- PLEASE ADD CATEGORIES AT THE BOTTOM OF THIS PAGE -->
This is the {{tl|main other}} meta-template.
This template helps other templates detect if they are on a main space (article) page or some "other" type of page.
===Basic usage===
This template usually takes two parameters, like this:
: {{Tlc|main other |''result if in mainspace'' |''result if elsewhere''}}
If the template is on a main space (article) page, it will return this:
: {{main other |demospace=main |''result if in mainspace'' |''result if elsewhere''}}
If the template is on any other page, it will return this:
: {{main other |''result if in mainspace'' |''result if elsewhere''}}
A typical usage case could be to make it so that a template only adds a category when on an article. Thus not adding other pages that just show the template. Like this:
: {{Tlc|main other |<nowiki>[[:Category:Some article maintenance category]]</nowiki>}}
Note that guidelines do not support categorization in templates.
Or to warn that a template should not be used on other pages:
: {{Tlc|main other | |This template should only be used in articles.}}
Note that in the first case above the "other" parameter was not used, and in the second example the "main" parameter was left empty.
===Demospace===
For testing and demonstration purposes, this template can take a parameter named '''demospace'''.
* If it has the value '''main''' it returns the article text.
* It if has the value '''other''' or any other value such as the name of some other namespace it returns the other pages text.
* If the parameter is empty or undefined, the actual page type determines the result.
Like this:
: {{tlf|main other |''result if in mainspace'' |''result if elsewhere'' |demospace{{=}}main}}
No matter on what kind of page the code above is used, it will return: {{main other |''result if in mainspace'' |''result if elsewhere'' |demospace=main}}
You can make it so your template also understands the '''demospace''' parameter. That means you can demonstrate the different appearances of your template in the documentation for your template:
: {{tlf|main other |''result if in mainspace'' |''result if elsewhere'' |<nowiki>demospace={{{demospace|}}}</nowiki> }}
===Technical details===
This template detects article "Talk:" pages as type '''other'''.
This template works like {{tl|main talk other}}. For more examples and technical details, see the documentation there.
<templatedata>
{
"params": {
"1": {
"label": "If mainspace",
"description": "Content if page is located in mainspace (i.e. article space)",
"type": "content"
},
"2": {
"label": "If not mainspace",
"description": "Content if page is not located in mainspace",
"type": "content"
}
}
}
</templatedata>
===Redirects===
* {{tl|article only}}
* {{tl|article other}}
{{Namespace and pagename-detecting templates}}
<includeonly>{{Sandbox other||
[[Category:Namespace manipulation templates]]
[[Category:If-then-else templates]]
}}</includeonly>
h9bb2bqvosj7bvavjf0yafwz7er43xm
Ta̱mpi̱let:Category handler
10
1823
15596
2022-08-08T21:29:55Z
Kambai Akau
15
Created page with "{{#invoke:Category handler|main}}<noinclude> {{documentation}} <!-- Add categories to the /doc subpage, and interwikis to Wikidata. --> </noinclude>"
wikitext
text/x-wiki
{{#invoke:Category handler|main}}<noinclude>
{{documentation}}
<!-- Add categories to the /doc subpage, and interwikis to Wikidata. -->
</noinclude>
og6fhyj2ssd4fmzpqzuodk12q3cms0z
Ta̱mpi̱let:Category handler/doc
10
1824
15597
2022-08-08T21:30:32Z
Kambai Akau
15
Created page with "{{documentation subpage}} {{#ifeq: {{FULLPAGENAME}} | Template:Category handler | {{used in system}} }} {{lua|Module:Category handler}} <!-- PLEASE ADD CATEGORIES AT THE BOTTOM OF THIS PAGE --> This is the {{tl|category handler}} meta-template. It helps other templates to automate both categorization and [[Wikipedia:Category suppression|category suppression]]. Already when used with its default settings this template prevents auto-categorization in some namespaces an..."
wikitext
text/x-wiki
{{documentation subpage}}
{{#ifeq: {{FULLPAGENAME}} | Template:Category handler | {{used in system}} }}
{{lua|Module:Category handler}}
<!-- PLEASE ADD CATEGORIES AT THE BOTTOM OF THIS PAGE -->
This is the {{tl|category handler}} meta-template.
It helps other templates to automate both categorization and [[Wikipedia:Category suppression|category suppression]].
Already when used with its default settings this template prevents auto-categorization in some namespaces and on some pages where we usually don't want categorization. Thus even the most basic usage like "<code><nowiki>{{category handler|[[Category:Somecat]]}}</nowiki></code>" sees to it that templates don't auto-categorize in the wrong places.
This template makes it easy to choose in what namespaces a template should and should not categorize. And it makes it easy to use different categories in different namespaces. And this template uses a central blacklist where we can add pages and page types where templates should not auto-categorize.
=== When not to use this template ===
If a template only needs to categorize in one of the namespaces main (articles), file (images) or category, then using this template is overkill. Then instead use one of {{tl|main other}}, {{tl|file other}}, or {{tl|category other}}. But if your template needs to categorize in any other namespace, then we recommend you use this template, since it provides proper category suppression and makes it easy to select how to categorize in the different namespaces.
=== Namespaces ===
This template detects and groups all the different [[Wikipedia:Namespace|namespaces]] used on Wikipedia into several types. These types are used as parameter names in this template.
:'''main''' = Main/article space, as in normal Wikipedia articles.
:'''talk''' = Any talk space, such as page names that start with "Talk:", "User talk:", "File talk:" and so on.
:'''user, wikipedia, file, mediawiki, template, help, category, portal''' and '''book''' = The other namespaces except the talk pages.
:'''other''' = Any namespaces that were not specified as a parameter to the template. See examples below.
=== Basic usage ===
This template takes two or more parameters. Here's an example with the full template code for an article message box:
<syntaxhighlight lang="xml">
{{Ambox
| text = This is a box used in articles.
}}{{category handler
| [[Category:Somecat]]
| nocat = {{{nocat|}}} <!--So "nocat=true/false" works-->
}}<noinclude>
{{Documentation}}
<!--Add categories to the /doc subpage-->
</noinclude>
</syntaxhighlight>
The above example uses the default settings for {{tlf|category handler}}. That means the box will categorize on pages in the following namespaces:
:'''main''', '''file''', '''help''', '''category''', '''portal''' and '''book'''
But it will ''not'' categorize in the following namespaces:
:'''talk''', '''user''', '''wikipedia''', '''mediawiki''' and '''template'''
And it will ''not'' categorize on blacklisted pages. (See section [[#Blacklist|blacklist]] below.)
The reason this template does not categorize in some of the namespaces is that in those namespaces most templates are just demonstrated or listed, not used. Thus most templates should not categorize in those namespaces.
Any template that is meant for one or more of the namespaces where this template categorizes can use the basic syntax as shown above.
=== Advanced usage ===
This template takes one or more parameters named after the different page types as listed in section [[#Namespaces|namespaces]] above. By using those parameters you can specify exactly in which namespaces your template should categorize. Like this:
<syntaxhighlight lang="xml">
{{mbox
| text = This is a box for articles and talk pages.
}}{{category handler
| main = [[Category:Somecat1]] <!--Categorize in main (article) space-->
| talk = [[Category:Somecat2]] <!--Categorize in talk space-->
| nocat = {{{nocat|}}} <!--So "nocat=true" works-->
}}
</syntaxhighlight>
The above box will only categorize in main and talk space. But it will not categorize on /archive pages since they are blacklisted. (See section [[#Blacklist|blacklist]] below.) And if you need to demonstrate (discuss) that box on a talkpage, then you can feed "<code>nocat=true</code>" to prevent that template from categorizing. (See section [[#The_%22nocat%22_parameter|The "nocat" parameter]] below.) Like this:
<syntaxhighlight lang="moin">
== My new template ==
Hey guys, have you seen my new template?
{{mytemp|nocat=true}}
Nice, isn't it?
--~~~~
</syntaxhighlight>
Sometimes we want to use the same category in several namespaces, then do like this:
<syntaxhighlight lang="xml">
{{mbox
| text = This is a box used in several namespaces.
}}{{category handler
| main = [[Category:Somecat1]]
| 1 = [[Category:Somecat2]] <!--For help and user space-->
| help = 1
| user = 1
| talk = <!--No categories on talk pages-->
| other = [[Category:Somecat3]] <!--For all other namespaces-->
| nocat = {{{nocat|}}} <!--So "nocat=true/false" works-->
}}
</syntaxhighlight>
In the above example we use a numbered parameter to feed one of the categories, and then we tell this template to use that numbered parameter for both the help and user space.
This template understands the numbered parameters 1 to 10.
The '''other''' parameter defines what should be used in the remaining namespaces that have not explicitly been fed data.
Note the empty but defined '''talk''' parameter. That stops this template from showing what has been fed to the '''other''' parameter, when in talk space.
This template also has a parameter called '''all'''. It works like this:
<syntaxhighlight lang="xml" highlight="4">
{{mbox
| text = This is a box used in all namespaces.
}}{{category handler
| all = [[Category:Somecat1]] <!--Categorize in all namespaces-->
| nocat = {{{nocat|}}} <!--So "nocat=true/false" works-->
}}
</syntaxhighlight>
The above example will categorize in all namespaces, but not on blacklisted pages. If you want to demonstrate that box on a page, then use "<code>nocat=true</code>" to prevent the template from categorizing.
We suggest avoiding the '''all''' parameter, since templates should preferably only categorize in the namespaces they need to.
The all parameter can also be combined with the rest of the parameters. Like this:
<syntaxhighlight lang="xml" highlight="4">
{{mbox
| text = This is a box used in all namespaces.
}}{{category handler
| all = [[Category:Somecat1]] <!--Categorize in all namespaces-->
| main = [[Category:Somecat2]] <!--And add this in main space-->
| other = [[Category:Somecat3]] <!--And add this in all other namespaces-->
| nocat = {{{nocat|}}} <!--So "nocat=true/false" works-->
}}
</syntaxhighlight>
If the above box is placed on an article, then it will add the categories "Somecat1" and "Somecat2". But on all other types of pages it will instead add "Somecat1" and "Somecat3". As the example shows, the all parameter works independently of the rest of the parameters.
=== Subpages ===
This template understands the '''subpage''' parameter. Like this:
<syntaxhighlight lang="xml" highlight="2">
{{category handler
| subpage = no <!--Don't categorize on subpages-->
| wikipedia = [[Category:Somecat]]
| nocat = {{{nocat|}}} <!--So "nocat=true/false" works-->
}}
</syntaxhighlight>
If "<code>subpage=no</code>" then this template will ''not'' categorize on subpages. For the rare occasion you ''only'' want to categorize on subpages, then use "<code>subpage=only</code>". If '''subpage''' is empty or undefined then this template categorizes both on basepages and on subpages.
=== Blacklist ===
This template has a blacklist of the pages and page types where templates should not auto-categorize. Thus templates that use this meta-template will for instance not categorize on /archive pages and on the subpages of [[Wikipedia:Template messages]].
If you want a template to categorize on a blacklisted page, then feed "<code><nowiki>nocat = false</nowiki></code>" to the template when you place it on the page, thus skipping the blacklist check. Note that this template only categorizes if it has data for the namespace. For instance, if the basic syntax is used (see [[#Basic usage|basic usage]] above), then even if you set "<code>nocat = false</code>" the template will not categorize on a talk page, since it has no data for talk pages. But it has data for help space, so on a blacklisted help page it will categorize.
The blacklist is in the sub-template {{tl|category handler/blacklist}}. To see or update the blacklist, go there.
=== The "nocat" parameter ===
This template understands the '''nocat''' parameter:
* If "<code>nocat = true</code>" then this template does ''not'' categorize.
* If '''nocat''' is empty or undefined then this template categorizes as usual.
* If "<code>nocat = false</code>" this template categorizes even when on blacklisted pages. (See section [[#Blacklist|blacklist]] above.)
Templates that use {{tlf|category handler}} should forward '''nocat''', so they too understand '''nocat'''. The code "<code><nowiki>nocat = {{{nocat|}}}</nowiki></code>" shown in the examples on this page does that.
=== The "categories" parameter ===
For backwards compatibility this template also understands the '''categories''' parameter. It works the same as '''nocat'''. Like this:
* If "<code>categories = no</code>" then this template does ''not'' categorize.
* If '''categories''' is empty or undefined then this template categorizes as usual.
* If "<code>categories = yes</code>" this template categorizes even when on blacklisted pages.
When adding this template to a template that already uses the "<code>categories = no</code>" logic, then you can do the following to not break any existing usage:
<syntaxhighlight lang="xml" highlight="4">
{{category handler
| [[Category:Somecat]]
| nocat = {{{nocat|}}} <!--So "nocat=true/false" works-->
| categories = {{{categories|}}} <!--So "categories=no" works-->
}}
</syntaxhighlight>
=== The "category2" parameter ===
For backwards compatibility this template kind of supports the old "category =" parameter. But the parameter name "category" is already used in this template to feed category data for when in category space. So instead this template uses '''category2''' for the usage similar to '''nocat'''. Like this:
* If "<code>category2 =</code>" (empty but defined), or "<code>category2 = no</code>", or if '''category2''' is fed any other data (except as described in the next two points), then this template does ''not'' categorize.
* If '''category2''' is undefined or if "<code>category2 = ¬</code>", then this template categorizes as usual.
* If "<code>category2 = yes</code>" this template categorizes even when on blacklisted pages.
When adding this template to a template that already uses the "<code>category =</code>" logic, then you can do like this to not break any existing usage:
<syntaxhighlight lang="xml" highlight="4">
{{category handler
| [[Category:Somecat]]
| nocat = {{{nocat|}}} <!--So "nocat=true/false" works-->
| category2 = {{{category|¬}}} <!--So "category =" works-->
}}
</syntaxhighlight>
Note that the "<code>¬</code>" is necessary, it helps this template to detect if the '''category''' parameter is defined but empty, or undefined.
=== Categories and text ===
Besides from categories, you can feed anything else to this template, for instance some text. Like this:
<syntaxhighlight lang="xml">
{{tmbox
| text = This is a talk page message box.
}}{{category handler
| talk = [[Category:Somecat]]
| other = :::::This template should only be used on talk pages.
| nocat = {{{nocat|}}} <!--So "nocat=true/false" works-->
}}
</syntaxhighlight>
When the template above is shown on anything else than a talk page, it will look like this (note the text below the box):
{{tmbox
| text = This is a talk page message box.
| nocat = true <!--So this box doesn't add "Category:Talk message boxes"-->
}}{{category handler
| talk = [[Category:Somecat]]
| other = :::::This template should only be used on talk pages.
| nocat = {{{nocat|}}} <!--So "nocat=true/false" works-->
}}
That text will not show on blacklisted pages, so don't use this method to show any important information. Feeding "<code>nocat = true</code>" to the template hides the text, just as it suppresses any categories.
=== The "page" parameter ===
For testing and demonstration purposes this template can take a parameter named '''page'''. Like this:
<syntaxhighlight lang="xml" highlight="5">
{{category handler
| main = Category:Some cat
| talk = Category:Talk cat
| nocat = {{{nocat|}}} <!--So "nocat=true/false" works-->
| page = User talk:Example
}}
</syntaxhighlight>
In the above code we on purpose left out the brackets around the category names so we see the output on the page. No matter on what kind of page the code above is used it will return this:
:{{category handler
| main = Category:Some cat
| talk = Category:Talk cat
| nocat = {{{nocat|}}} <!--So "nocat=true/false" works-->
| page = User talk:Example
}}
The '''page''' parameter makes this template behave exactly as if on that page. Even the blacklist works. The pagename doesn't have to be an existing page.
If the '''page''' parameter is empty or undefined, the name of the current page determines the result.
You can make it so your template also understands the '''page''' parameter. That means you can test how your template will categorize on different pages, without having to actually edit those pages. Then do like this:
<syntaxhighlight lang="xml" highlight="5">
{{category handler
| main = Category:Some cat
| talk = Category:Talk cat
| nocat = {{{nocat|}}} <!--So "nocat=true/false" works-->
| page = {{{page|}}} <!--For testing-->
}}
</syntaxhighlight>
=== Parameters ===
List of all parameters:
<syntaxhighlight lang="moin">
{{category handler
| [[Category:Somecat]]
| subpage = no / only
| 1 =
...
| 10 =
| all = [[Category:Somecat]] / Text
| main = 1 / ... / 10 / [[Category:Somecat]] / Text
...
| other = 1 / ... / 10 / [[Category:Somecat]] / Text
| nocat = {{{nocat|}}} / true / false
| categories = {{{categories|}}} / no / yes
| category2 = {{{category|¬}}} / 'empty' / no / 'not defined' / ¬ / yes
| page = {{{page|}}} / User:Example
}}
</syntaxhighlight>
Note that empty values to the "main" ... "other" parameters have special meaning (see examples above). The "all" parameter doesn't understand numbered parameters, since there should never be a need for that.
=== Technical details ===
The centralised category suppression blacklist is in [[Module:Category handler/blacklist]]. To see or update the blacklist, go there.
For more technical details see the [[Template talk:Category handler|talk page]].
=== See also ===
* [[Wikipedia:Category suppression]] – The how-to guide.
* [[Wikipedia:WikiProject Category Suppression]] – The WikiProject.
* [[Wikipedia:Namespace]] – Lists all the namespaces.
<includeonly>{{Sandbox other||
[[Category:Wikipedia metatemplates]]
}}</includeonly>
n1teny6pq7px0v6q4b7qj0hibu25hnm
Module:Category handler
828
1825
15598
2022-08-08T21:31:25Z
Kambai Akau
15
Created page with "-------------------------------------------------------------------------------- -- -- -- CATEGORY HANDLER -- -- -- -- This module implements the {{category handler}} template in Lua, -- -- with a few improvements: all namespaces and all namespace alia..."
Scribunto
text/plain
--------------------------------------------------------------------------------
-- --
-- CATEGORY HANDLER --
-- --
-- This module implements the {{category handler}} template in Lua, --
-- with a few improvements: all namespaces and all namespace aliases --
-- are supported, and namespace names are detected automatically for --
-- the local wiki. This module requires [[Module:Namespace detect]] --
-- and [[Module:Yesno]] to be available on the local wiki. It can be --
-- configured for different wikis by altering the values in --
-- [[Module:Category handler/config]], and pages can be blacklisted --
-- from categorisation by using [[Module:Category handler/blacklist]]. --
-- --
--------------------------------------------------------------------------------
-- Load required modules
local yesno = require('Module:Yesno')
-- Lazily load things we don't always need
local mShared, mappings
local p = {}
--------------------------------------------------------------------------------
-- Helper functions
--------------------------------------------------------------------------------
local function trimWhitespace(s, removeBlanks)
if type(s) ~= 'string' then
return s
end
s = s:match('^%s*(.-)%s*$')
if removeBlanks then
if s ~= '' then
return s
else
return nil
end
else
return s
end
end
--------------------------------------------------------------------------------
-- CategoryHandler class
--------------------------------------------------------------------------------
local CategoryHandler = {}
CategoryHandler.__index = CategoryHandler
function CategoryHandler.new(data, args)
local obj = setmetatable({ _data = data, _args = args }, CategoryHandler)
-- Set the title object
do
local pagename = obj:parameter('demopage')
local success, titleObj
if pagename then
success, titleObj = pcall(mw.title.new, pagename)
end
if success and titleObj then
obj.title = titleObj
if titleObj == mw.title.getCurrentTitle() then
obj._usesCurrentTitle = true
end
else
obj.title = mw.title.getCurrentTitle()
obj._usesCurrentTitle = true
end
end
-- Set suppression parameter values
for _, key in ipairs{'nocat', 'categories'} do
local value = obj:parameter(key)
value = trimWhitespace(value, true)
obj['_' .. key] = yesno(value)
end
do
local subpage = obj:parameter('subpage')
local category2 = obj:parameter('category2')
if type(subpage) == 'string' then
subpage = mw.ustring.lower(subpage)
end
if type(category2) == 'string' then
subpage = mw.ustring.lower(category2)
end
obj._subpage = trimWhitespace(subpage, true)
obj._category2 = trimWhitespace(category2) -- don't remove blank values
end
return obj
end
function CategoryHandler:parameter(key)
local parameterNames = self._data.parameters[key]
local pntype = type(parameterNames)
if pntype == 'string' or pntype == 'number' then
return self._args[parameterNames]
elseif pntype == 'table' then
for _, name in ipairs(parameterNames) do
local value = self._args[name]
if value ~= nil then
return value
end
end
return nil
else
error(string.format(
'invalid config key "%s"',
tostring(key)
), 2)
end
end
function CategoryHandler:isSuppressedByArguments()
return
-- See if a category suppression argument has been set.
self._nocat == true
or self._categories == false
or (
self._category2
and self._category2 ~= self._data.category2Yes
and self._category2 ~= self._data.category2Negative
)
-- Check whether we are on a subpage, and see if categories are
-- suppressed based on our subpage status.
or self._subpage == self._data.subpageNo and self.title.isSubpage
or self._subpage == self._data.subpageOnly and not self.title.isSubpage
end
function CategoryHandler:shouldSkipBlacklistCheck()
-- Check whether the category suppression arguments indicate we
-- should skip the blacklist check.
return self._nocat == false
or self._categories == true
or self._category2 == self._data.category2Yes
end
function CategoryHandler:matchesBlacklist()
if self._usesCurrentTitle then
return self._data.currentTitleMatchesBlacklist
else
mShared = mShared or require('Module:Category handler/shared')
return mShared.matchesBlacklist(
self.title.prefixedText,
mw.loadData('Module:Category handler/blacklist')
)
end
end
function CategoryHandler:isSuppressed()
-- Find if categories are suppressed by either the arguments or by
-- matching the blacklist.
return self:isSuppressedByArguments()
or not self:shouldSkipBlacklistCheck() and self:matchesBlacklist()
end
function CategoryHandler:getNamespaceParameters()
if self._usesCurrentTitle then
return self._data.currentTitleNamespaceParameters
else
if not mappings then
mShared = mShared or require('Module:Category handler/shared')
mappings = mShared.getParamMappings(true) -- gets mappings with mw.loadData
end
return mShared.getNamespaceParameters(
self.title,
mappings
)
end
end
function CategoryHandler:namespaceParametersExist()
-- Find whether any namespace parameters have been specified.
-- We use the order "all" --> namespace params --> "other" as this is what
-- the old template did.
if self:parameter('all') then
return true
end
if not mappings then
mShared = mShared or require('Module:Category handler/shared')
mappings = mShared.getParamMappings(true) -- gets mappings with mw.loadData
end
for ns, params in pairs(mappings) do
for i, param in ipairs(params) do
if self._args[param] then
return true
end
end
end
if self:parameter('other') then
return true
end
return false
end
function CategoryHandler:getCategories()
local params = self:getNamespaceParameters()
local nsCategory
for i, param in ipairs(params) do
local value = self._args[param]
if value ~= nil then
nsCategory = value
break
end
end
if nsCategory ~= nil or self:namespaceParametersExist() then
-- Namespace parameters exist - advanced usage.
if nsCategory == nil then
nsCategory = self:parameter('other')
end
local ret = {self:parameter('all')}
local numParam = tonumber(nsCategory)
if numParam and numParam >= 1 and math.floor(numParam) == numParam then
-- nsCategory is an integer
ret[#ret + 1] = self._args[numParam]
else
ret[#ret + 1] = nsCategory
end
if #ret < 1 then
return nil
else
return table.concat(ret)
end
elseif self._data.defaultNamespaces[self.title.namespace] then
-- Namespace parameters don't exist, simple usage.
return self._args[1]
end
return nil
end
--------------------------------------------------------------------------------
-- Exports
--------------------------------------------------------------------------------
local p = {}
function p._exportClasses()
-- Used for testing purposes.
return {
CategoryHandler = CategoryHandler
}
end
function p._main(args, data)
data = data or mw.loadData('Module:Category handler/data')
local handler = CategoryHandler.new(data, args)
if handler:isSuppressed() then
return nil
end
return handler:getCategories()
end
function p.main(frame, data)
data = data or mw.loadData('Module:Category handler/data')
local args = require('Module:Arguments').getArgs(frame, {
wrappers = data.wrappers,
valueFunc = function (k, v)
v = trimWhitespace(v)
if type(k) == 'number' then
if v ~= '' then
return v
else
return nil
end
else
return v
end
end
})
return p._main(args, data)
end
return p
letwavu3yvlayfzew66uuwixmwebq5b
Module:Category handler/doc
828
1826
15599
2022-08-08T21:31:59Z
Kambai Akau
15
Created page with "{{Used in system}} {{Module rating|p}} This module implements the {{tl|category handler}} template. The category handler template helps other templates to automate both categorization and [[Wikipedia:Category suppression|category suppression]]. For information about using the category handler template in other templates, please see the '''[[Template:Category handler|template documentation]]'''. Keep reading for information about using the category handler module in othe..."
wikitext
text/x-wiki
{{Used in system}}
{{Module rating|p}}
This module implements the {{tl|category handler}} template. The category handler template helps other templates to automate both categorization and [[Wikipedia:Category suppression|category suppression]]. For information about using the category handler template in other templates, please see the '''[[Template:Category handler|template documentation]]'''. Keep reading for information about using the category handler module in other Lua modules, or for information on exporting this module to other wikis.
== Use from other Lua modules ==
=== When not to use this module ===
For cases where a module only needs to categorise in one of the namespaces main (articles), file (images) or category, then using this module is overkill. Instead, you can simply get a title object using [[mw:Extension:Scribunto/Lua reference manual#mw.title.getCurrentTitle|mw.title.getCurrentTitle]] and check the <code>nsText</code> field. For example:
<syntaxhighlight lang="lua">
local title = mw.title.getCurrentTitle()
if title.nsText == 'File' then
-- do something
end
</syntaxhighlight>
However, if your module needs to categorize in any other namespace, then we recommend you use this module, since it provides proper category suppression and makes it easy to select how to categorize in the different namespaces.
=== Namespaces ===
This module detects and groups all the different [[Wikipedia:Namespace|namespaces]] used on Wikipedia into several types. These types are used as parameter names in this module.
:'''main''' = Main/article space, as in normal Wikipedia articles.
:'''talk''' = Any talk space, such as page names that start with "Talk:", "User talk:", "File talk:" and so on.
:'''user, wikipedia, file ... = The other namespaces except the talk pages. Namespace aliases are also accepted. See the table below for the full list.'''
:'''other''' = Any namespaces that were not specified as a parameter to the template. See examples below.
;List of possible namespace parameters
(excluding <code>''talk''</code> and <code>''other''</code>)
{{#invoke:Namespace detect|table}}
=== Basic usage ===
This module takes two or more parameters. Here's an example using a hello world program:
<syntaxhighlight lang="lua">
p = {}
local categoryHandler = require( 'Module:Category handler' ).main
function p.main( frame )
local result = 'Hello world!'
local category = categoryHandler{
'[[Category:Somecat]]',
nocat = frame.args.nocat -- So "nocat=true/false" works
}
category = category or '' -- Check that we don't have a nil value for the category variable.
return result .. category
end
return p
</syntaxhighlight>
The above example uses the default settings for the category handler module. That means the example module will categorize on pages in the following namespaces:
:'''main''', '''file''', '''help''', '''category''', '''portal''' and '''book'''
But it will ''not'' categorize in any other namespaces, e.g.:
:'''talk''', '''user''', '''wikipedia''', '''mediawiki''', '''template''' ...
And it will ''not'' categorize on blacklisted pages. (See section [[#Blacklist|blacklist]] below.)
The reason the category handler module does not categorize in some of the namespaces is that in those namespaces most modules and templates are just demonstrated or listed, not used. Thus most modules and templates should not categorize in those namespaces.
Any module or template that is meant for one or more of the namespaces where this module categorizes can use the basic syntax as shown above.
=== Advanced usage ===
This module takes one or more parameters named after the different page types as listed in section [[#Namespaces|namespaces]] above. By using those parameters you can specify exactly in which namespaces your template should categorize. Like this:
<syntaxhighlight lang="lua">
p = {}
local categoryHandler = require( 'Module:Category handler' ).main
function p.main( frame )
local result = 'This is a module meant for articles and talk pages.'
local category = categoryHandler{
main = '[[Category:Somecat1]]', -- Categorize in main (article) space
talk = '[[Category:Somecat2]]', -- Categorize in talk space
nocat = frame.args.nocat -- So "nocat=true/false" works
}
category = category or '' -- Check that we don't have a nil value for the category variable.
return result .. category
end
return p
</syntaxhighlight>
The above module will only categorize in main and talk space. But it will not categorize on /archive pages since they are blacklisted. (See section [[#Blacklist|blacklist]] below.) And if you need to demonstrate (discuss) the module on a talkpage, then you can feed "<code>nocat='true'</code>" to prevent that template from categorizing. (See section [[#Nocat|nocat]] below.) Like this:
<pre>
== My new module ==
Hey guys, have you seen my new module?
{{#invoke:mymodule|main|nocat=true}}
Nice, isn't it?
--~~~~
</pre>
Sometimes we want to use the same category in several namespaces, then do like this:
<syntaxhighlight lang="lua">
p = {}
local categoryHandler = require( 'Module:Category handler' ).main
function p.main( frame )
local result = 'This is a module used in several namespaces.'
local category = categoryHandler{
main = '[[Category:Somecat1]]',
[ 1 ] = '[[Category:Somecat2]]', -- For help and user space
help = 1,
user = 1,
talk = '', -- No categories on talk pages
other = '[[Category:Somecat3]]', -- For all other namespaces
nocat = frame.args.nocat -- So "nocat=true/false" works
}
category = category or '' -- Check that we don't have a nil value for the category variable.
return result .. category
end
return p
</syntaxhighlight>
In the above example we use a numbered parameter to feed one of the categories, and then we tell this module to use that numbered parameter for both the help and user space.
The category handler module understands an unlimited number of numbered parameters.
The '''other''' parameter defines what should be used in the remaining namespaces that have not explicitly been fed data.
Note the empty but defined '''talk''' parameter. That stops this module from showing what has been fed to the '''other''' parameter, when in talk space.
The category handler module also has a parameter called '''all'''. It works like this:
<syntaxhighlight lang="lua">
p = {}
local categoryHandler = require( 'Module:Category handler' ).main
function p.main( frame )
local result = 'This is a module used in all namespaces.'
local category = categoryHandler{
all = '[[Category:Somecat1]]', -- Categorize in all namespaces
nocat = frame.args.nocat -- So "nocat=true/false" works
}
category = category or '' -- Check that we don't have a nil value for the category variable.
return result .. category
end
return p
</syntaxhighlight>
The above example will categorize in all namespaces, but not on blacklisted pages. If you want to demonstrate that module on a page, then use "<code>nocat=true</code>" to prevent the template from categorizing.
We suggest avoiding the '''all''' parameter, since modules and templates should preferably only categorize in the namespaces they need to.
The all parameter can also be combined with the rest of the parameters. Like this:
<syntaxhighlight lang="lua">
p = {}
local categoryHandler = require( 'Module:Category handler' ).main
function p.main( frame )
local result = 'This is a module used in all namespaces.'
local category = categoryHandler{
all = '[[Category:Somecat1]]', -- Categorize in all namespaces
main = '[[Category:Somecat2]]', -- And add this in main space
other = '[[Category:Somecat3]]', -- And add this in all other namespaces
nocat = frame.args.nocat -- So "nocat=true/false" works
}
category = category or '' -- Check that we don't have a nil value for the category variable.
return result .. category
end
return p
</syntaxhighlight>
If the above module is placed on an article, then it will add the categories "Somecat1" and "Somecat2". But on all other types of pages it will instead add "Somecat1" and "Somecat3". As the example shows, the all parameter works independently of the rest of the parameters.
=== Subpages ===
The category handler module understands the '''subpage''' parameter. Like this:
<syntaxhighlight lang="lua">
p = {}
local categoryHandler = require( 'Module:Category handler' ).main
function p.main( frame )
local result = 'This is a module used in all namespaces.'
local category = categoryHandler{
subpage = 'no' -- Don't categorize on subpages
wikipedia = '[[Category:Somecat]]',
nocat = frame.args.nocat -- So "nocat=true/false" works
}
category = category or '' -- Check that we don't have a nil value for the category variable.
return result .. category
end
return p
</syntaxhighlight>
If "<code>subpage='no'</code>" then this template will ''not'' categorize on subpages. For the rare occasion you ''only'' want to categorize on subpages, then use "<code>subpage='only'</code>". If '''subpage''' is empty or undefined then this template categorizes both on basepages and on subpages.
=== Blacklist ===
This module has a blacklist of the pages and page types where templates should not auto-categorize. Thus modules that use this meta-template will for instance not categorize on /archive pages and on the subpages of [[Wikipedia:Template messages]].
If you want a template to categorize on a blacklisted page, then feed "<code><nowiki>nocat = false</nowiki></code>" to the module when you place it on the page, thus skipping the blacklist check. Note that this module only categorizes if it has data for the namespace. For instance, if the basic syntax is used (see [[#Basic usage|basic usage]] above), then even if you set "<code>nocat = false</code>" the template will not categorize on a talk page, since it has no data for talk pages. But it has data for help space, so on a blacklisted help page it will categorize.
The blacklist is located in the configuration table <code>cfg.blacklist</code> near the top of the module code.
=== The "nocat" parameter ===
This module understands the '''nocat''' parameter:
* If "<code>nocat = true</code>" then this template does ''not'' categorize.
* If '''nocat''' is <code>nil</code> then this template categorizes as usual.
* If "<code>nocat = false</code>" this template categorizes even when on blacklisted pages. (See section [[#Blacklist|blacklist]] above.)
* The nocat parameter also accepts aliases for <code>true</code> and <code>false</code> as defined by [[Module:Yesno]], e.g. "yes", "y", "true", and 1 for <code>true</code>, and "no", "n", "false", and 0 for <code>false</code>.
Modules and templates that use {{tlf|category handler}} should forward '''nocat''', so they too understand '''nocat'''. The code "<code>nocat = frame.args.nocat</code>" shown in the examples on this page does that.
=== The "categories" parameter ===
For backwards compatibility this module also understands the '''categories''' parameter. It works the same as '''nocat'''. Like this:
* If "<code>categories = false</code>" then this template does ''not'' categorize.
* If '''categories''' is empty or undefined then this template categorizes as usual.
* If "<code>categories = true</code>" this template categorizes even when on blacklisted pages.
* The categories parameter also accepts aliases for <code>true</code> and <code>false</code> as defined by [[Module:Yesno]], e.g. "yes", "y", "true", and 1 for <code>true</code>, and "no", "n", "false", and 0 for <code>false</code>.
=== The "category2" parameter ===
For backwards compatibility this template kind of supports the old "category =" parameter. But the parameter name "category" is already used in this module to feed category data for when in category space. So instead this template uses '''category2''' for the usage similar to '''nocat'''. Like this:
* If "<code>category2 = "</code>" (empty but defined), or "<code>category2 = 'no'</code>", or if '''category2''' is fed any other data (except as described in the next two points), then this template does ''not'' categorize.
* If '''category2''' is undefined or if "<code>category2 = '¬'</code>", then this template categorizes as usual.
* If "<code>category2 = 'yes'</code>" this template categorizes even when on blacklisted pages.
=== Categories and text ===
Besides from categories, you can feed anything else to this module, for instance some text. Like this:
<syntaxhighlight lang="lua">
p = {}
local categoryHandler = require( 'Module:Category handler' ).main
function p.main( frame )
local result = 'This is a module used on talk pages.'
local category = categoryHandler{
talk = '[[Category:Somecat]]',
other = '<p class="error">This module should only be used on talk pages.</p>',
nocat = frame.args.nocat -- So "nocat=true/false" works
}
category = category or '' -- Check that we don't have a nil value for the category variable.
return result .. category
end
return p
</syntaxhighlight>
When the module code above is used on anything other than a talk page, it will look like this:
:This is a module used on talk pages.{{#invoke:category handler|main
| talk = [[Category:Somecat]]
| other = <p class="error">This module should only be used on talk pages.</p>
| nocat = {{{nocat|}}} <!--So "nocat=true/false" works-->
}}
That text will not show on blacklisted pages, so don't use this method to show any important information. Feeding "<code>nocat = 'true'</code>" to the template hides the text, just as it suppresses any categories.
=== The "page" parameter ===
For testing and demonstration purposes this module can take a parameter named '''page'''. Like this:
<syntaxhighlight lang="lua">
p = {}
local categoryHandler = require( 'Module:Category handler' ).main
function p.main( frame )
local category = categoryHandler{
main = 'Category:Some cat',
talk = 'Category:Talk cat',
nocat = frame.args.nocat, -- So "nocat=true/false" works
page = 'User talk:Example'
}
return category
end
return p
</syntaxhighlight>
In the above code we on purpose left out the brackets around the category names so we see the output on the page. No matter on what kind of page the code above is used it will return this:
:{{#invoke:category handler|main
| main = Category:Some cat
| talk = Category:Talk cat
| nocat = {{{nocat|}}} <!--So "nocat=true/false" works-->
| page = User talk:Example
}}
The '''page''' parameter makes this module behave exactly as if on that page. Even the blacklist works. The pagename doesn't have to be an existing page.
If the '''page''' parameter is empty or undefined, the name of the current page determines the result.
You can make it so your module also understands the '''page''' parameter. That means you can test how your template will categorize on different pages, without having to actually edit those pages. Then do like this:
<syntaxhighlight lang="lua">
p = {}
local categoryHandler = require( 'Module:Category handler' ).main
function p.main( frame )
local category = categoryHandler{
main = 'Category:Some cat',
talk = 'Category:Talk cat',
nocat = frame.args.nocat, -- So "nocat=true/false" works
page = frame.args.page -- For testing
}
return category
end
return p
</syntaxhighlight>
=== Parameters ===
List of all parameters:
* First positional parameter - for default settings
* subpage = 'no' / 'only'
* 1, 2, 3 ...
* all = '<nowiki>[[Category:Somecat]]</nowiki>' / 'Text'
* main = 1, 2, 3 ... / '<nowiki>[[Category:Somecat]]</nowiki>' / 'Text'
* ...
* other = 1, 2, 3 ... / '<nowiki>[[Category:Somecat]]</nowiki>' / 'Text'
* nocat = frame.args.nocat / true / false / 'yes' / 'no' / 'y' / 'n' / 'true' / 'false' / 1 / 0
* categories = frame.args.categories / false / true / 'no' / 'yes' / 'n' / 'y' / 'false' / 'true' / 0 / 1
* category2 = frame.args.category or '¬' / 'no' / 'not defined' / '¬' / 'yes'
* page = frame.args.page / 'User:Example'
Note that empty values to the "main" ... "other" parameters have special meaning (see examples above). The "all" parameter doesn't understand numbered parameters, since there should never be a need for that.
== Exporting to other wikis ==
This module can be exported to other wikis by changing the configuration values in the <code>cfg</code> table. All the variable values are configurable, so after the configuration values have been set there should be no need to alter the main module code. Details of each configuration value are included in the module code comments. In addition, this module requires [[Module:Namespace detect]] to be available on the local wiki.
== See also ==
* {{tl|Category handler}} – for using this module with templates, rather than Lua modules.
* [[Wikipedia:Category suppression]] – The how-to guide.
* [[Wikipedia:WikiProject Category Suppression]] – The WikiProject.
* [[Wikipedia:Namespace]] – Lists all the namespaces.
gkkejpxqs4okdrj4sjelcpufg10t90l
Module:Category handler/sandbox
828
1827
15600
2022-08-08T21:32:54Z
Kambai Akau
15
Created page with "-------------------------------------------------------------------------------- -- -- -- CATEGORY HANDLER -- -- -- -- This module implements the {{category handler}} template in Lua, -- -- with a few improvements: all namespaces and all namespace alia..."
Scribunto
text/plain
--------------------------------------------------------------------------------
-- --
-- CATEGORY HANDLER --
-- --
-- This module implements the {{category handler}} template in Lua, --
-- with a few improvements: all namespaces and all namespace aliases --
-- are supported, and namespace names are detected automatically for --
-- the local wiki. This module requires [[Module:Namespace detect]] --
-- and [[Module:Yesno]] to be available on the local wiki. It can be --
-- configured for different wikis by altering the values in --
-- [[Module:Category handler/config]], and pages can be blacklisted --
-- from categorisation by using [[Module:Category handler/blacklist]]. --
-- --
--------------------------------------------------------------------------------
-- Load required modules
local yesno = require('Module:Yesno')
-- Lazily load things we don't always need
local mShared, mappings
local p = {}
--------------------------------------------------------------------------------
-- Helper functions
--------------------------------------------------------------------------------
local function trimWhitespace(s, removeBlanks)
if type(s) ~= 'string' then
return s
end
s = s:match('^%s*(.-)%s*$')
if removeBlanks then
if s ~= '' then
return s
else
return nil
end
else
return s
end
end
--------------------------------------------------------------------------------
-- CategoryHandler class
--------------------------------------------------------------------------------
local CategoryHandler = {}
CategoryHandler.__index = CategoryHandler
function CategoryHandler.new(data, args)
local obj = setmetatable({ _data = data, _args = args }, CategoryHandler)
-- Set the title object
do
local pagename = obj:parameter('demopage')
local success, titleObj
if pagename then
success, titleObj = pcall(mw.title.new, pagename)
end
if success and titleObj then
obj.title = titleObj
if titleObj == mw.title.getCurrentTitle() then
obj._usesCurrentTitle = true
end
else
obj.title = mw.title.getCurrentTitle()
obj._usesCurrentTitle = true
end
end
-- Set suppression parameter values
for _, key in ipairs{'nocat', 'categories'} do
local value = obj:parameter(key)
value = trimWhitespace(value, true)
obj['_' .. key] = yesno(value)
end
do
local subpage = obj:parameter('subpage')
local category2 = obj:parameter('category2')
if type(subpage) == 'string' then
subpage = mw.ustring.lower(subpage)
end
if type(category2) == 'string' then
subpage = mw.ustring.lower(category2)
end
obj._subpage = trimWhitespace(subpage, true)
obj._category2 = trimWhitespace(category2) -- don't remove blank values
end
return obj
end
function CategoryHandler:parameter(key)
local parameterNames = self._data.parameters[key]
local pntype = type(parameterNames)
if pntype == 'string' or pntype == 'number' then
return self._args[parameterNames]
elseif pntype == 'table' then
for _, name in ipairs(parameterNames) do
local value = self._args[name]
if value ~= nil then
return value
end
end
return nil
else
error(string.format(
'invalid config key "%s"',
tostring(key)
), 2)
end
end
function CategoryHandler:isSuppressedByArguments()
return
-- See if a category suppression argument has been set.
self._nocat == true
or self._categories == false
or (
self._category2
and self._category2 ~= self._data.category2Yes
and self._category2 ~= self._data.category2Negative
)
-- Check whether we are on a subpage, and see if categories are
-- suppressed based on our subpage status.
or self._subpage == self._data.subpageNo and self.title.isSubpage
or self._subpage == self._data.subpageOnly and not self.title.isSubpage
end
function CategoryHandler:shouldSkipBlacklistCheck()
-- Check whether the category suppression arguments indicate we
-- should skip the blacklist check.
return self._nocat == false
or self._categories == true
or self._category2 == self._data.category2Yes
end
function CategoryHandler:matchesBlacklist()
if self._usesCurrentTitle then
return self._data.currentTitleMatchesBlacklist
else
mShared = mShared or require('Module:Category handler/shared')
return mShared.matchesBlacklist(
self.title.prefixedText,
mw.loadData('Module:Category handler/blacklist')
)
end
end
function CategoryHandler:isSuppressed()
-- Find if categories are suppressed by either the arguments or by
-- matching the blacklist.
return self:isSuppressedByArguments()
or not self:shouldSkipBlacklistCheck() and self:matchesBlacklist()
end
function CategoryHandler:getNamespaceParameters()
if self._usesCurrentTitle then
return self._data.currentTitleNamespaceParameters
else
if not mappings then
mShared = mShared or require('Module:Category handler/shared')
mappings = mShared.getParamMappings(true) -- gets mappings with mw.loadData
end
return mShared.getNamespaceParameters(
self.title,
mappings
)
end
end
function CategoryHandler:namespaceParametersExist()
-- Find whether any namespace parameters have been specified.
-- We use the order "all" --> namespace params --> "other" as this is what
-- the old template did.
if self:parameter('all') then
return true
end
if not mappings then
mShared = mShared or require('Module:Category handler/shared')
mappings = mShared.getParamMappings(true) -- gets mappings with mw.loadData
end
for ns, params in pairs(mappings) do
for i, param in ipairs(params) do
if self._args[param] then
return true
end
end
end
if self:parameter('other') then
return true
end
return false
end
function CategoryHandler:getCategories()
local params = self:getNamespaceParameters()
local nsCategory
for i, param in ipairs(params) do
local value = self._args[param]
if value ~= nil then
nsCategory = value
break
end
end
if nsCategory ~= nil or self:namespaceParametersExist() then
-- Namespace parameters exist - advanced usage.
if nsCategory == nil then
nsCategory = self:parameter('other')
end
local ret = {self:parameter('all')}
local numParam = tonumber(nsCategory)
if numParam and numParam >= 1 and math.floor(numParam) == numParam then
-- nsCategory is an integer
ret[#ret + 1] = self._args[numParam]
else
ret[#ret + 1] = nsCategory
end
if #ret < 1 then
return nil
else
return table.concat(ret)
end
elseif self._data.defaultNamespaces[self.title.namespace] then
-- Namespace parameters don't exist, simple usage.
return self._args[1]
end
return nil
end
--------------------------------------------------------------------------------
-- Exports
--------------------------------------------------------------------------------
local p = {}
function p._exportClasses()
-- Used for testing purposes.
return {
CategoryHandler = CategoryHandler
}
end
function p._main(args, data)
data = data or mw.loadData('Module:Category handler/data')
local handler = CategoryHandler.new(data, args)
if handler:isSuppressed() then
return nil
end
return handler:getCategories()
end
function p.main(frame, data)
data = data or mw.loadData('Module:Category handler/data')
local args = require('Module:Arguments').getArgs(frame, {
wrappers = data.wrappers,
valueFunc = function (k, v)
v = trimWhitespace(v)
if type(k) == 'number' then
if v ~= '' then
return v
else
return nil
end
else
return v
end
end
})
return p._main(args, data)
end
return p
letwavu3yvlayfzew66uuwixmwebq5b
Module:Category handler/testcases
828
1828
15601
2022-08-08T21:33:55Z
Kambai Akau
15
Created page with "-- Unit tests for [[Module:Category handler]]. Click talk page to run tests. local m_category_handler = require('Module:Category handler/sandbox') local chmain = m_category_handler._main local ScribuntoUnit = require('Module:ScribuntoUnit') local suite = ScribuntoUnit:new() -- Define table of defaults local d = {} -- Values d.absent = nil d.blank = '' d.negation = '¬' d.yes = 'yes' d.no = 'no' d.subpageOnly = 'only' d.subpageNo = 'no' -- Categories d.category = 'Cate..."
Scribunto
text/plain
-- Unit tests for [[Module:Category handler]]. Click talk page to run tests.
local m_category_handler = require('Module:Category handler/sandbox')
local chmain = m_category_handler._main
local ScribuntoUnit = require('Module:ScribuntoUnit')
local suite = ScribuntoUnit:new()
-- Define table of defaults
local d = {}
-- Values
d.absent = nil
d.blank = ''
d.negation = '¬'
d.yes = 'yes'
d.no = 'no'
d.subpageOnly = 'only'
d.subpageNo = 'no'
-- Categories
d.category = 'Category:Somecat'
d.category1 = 'Category:Somecat1'
d.category2 = 'Category:Somecat2'
-- Pages
d.article = 'Somearticle'
d.file = 'File:Example.png'
d.talk = 'Talk:Foo'
d.archive = 'User talk:Example/Archive 5'
d.subpage = 'User:Example/test'
d.basepage = 'User:Example'
-- Params
d.archiveParam = 'talk'
--------------------------------------------------------------------------------
-- Test nil
--------------------------------------------------------------------------------
function suite:test_nil()
self:assertEquals(d.absent, chmain{nil})
end
--------------------------------------------------------------------------------
-- Test defaults
--------------------------------------------------------------------------------
function suite:test_default_current_page()
-- Will test either module or module talk space, neither of which are categorised by default.
self:assertEquals(d.absent, chmain{d.category})
end
function suite:test_default_main()
self:assertEquals(d.category, chmain{d.category, page = d.article})
end
function suite:test_default_file()
self:assertEquals(d.category, chmain{d.category, page = d.file})
end
--------------------------------------------------------------------------------
-- Test numbered parameters
--------------------------------------------------------------------------------
function suite:test_numbered_main()
self:assertEquals(d.category, chmain{
[1] = d.category,
main = 1,
page = d.article
})
end
function suite:test_numbered_two_params()
self:assertEquals(d.category2, chmain{
[1] = d.category1,
[2] = d.category2,
main = 1,
file = 2,
page = d.file
})
end
--------------------------------------------------------------------------------
-- Test overriding defaults
--------------------------------------------------------------------------------
function suite:test_numbered_main()
self:assertEquals(d.absent, chmain{
main = d.category,
page = d.file
})
end
--------------------------------------------------------------------------------
-- Test blank namespace parameters
--------------------------------------------------------------------------------
function suite:test_blank_namespace_talk()
self:assertEquals(d.blank, chmain{
talk = d.blank,
other = d.category,
page = d.talk
})
end
--------------------------------------------------------------------------------
-- Test other parameter
--------------------------------------------------------------------------------
function suite:test_other_only()
self:assertEquals(d.category, chmain{
other = d.category,
})
end
--------------------------------------------------------------------------------
-- Test nocat parameter
--------------------------------------------------------------------------------
function suite:test_nocat_true()
self:assertEquals(d.absent, chmain{d.category, page = d.file, nocat = true})
end
function suite:test_nocat_blank()
self:assertEquals(d.category, chmain{d.category, page = d.file, nocat = ''})
end
function suite:test_nocat_yes()
self:assertEquals(d.absent, chmain{d.category, page = d.file, nocat = d.yes})
end
function suite:test_nocat_false()
self:assertEquals(d.category, chmain{
[d.archiveParam] = d.category,
page = d.archive,
nocat = false
})
end
function suite:test_nocat_no()
self:assertEquals(d.category, chmain{
[d.archiveParam] = d.category,
page = d.archive,
nocat = d.no
})
end
--------------------------------------------------------------------------------
-- Test categories parameter
--------------------------------------------------------------------------------
function suite:test_categories_true()
self:assertEquals(d.category, chmain{
[d.archiveParam] = d.category,
page = d.archive,
categories = true
})
end
function suite:test_categories_blank()
self:assertEquals(d.category, chmain{d.category, page = d.file, categories = ''})
end
function suite:test_categories_yes()
self:assertEquals(d.category, chmain{
[d.archiveParam] = d.category,
page = d.archive,
categories = d.yes
})
end
function suite:test_categories_false()
self:assertEquals(d.absent, chmain{
file = d.category,
page = d.file,
categories = false
})
end
function suite:test_categories_no()
self:assertEquals(d.absent, chmain{
file = d.category,
page = d.file,
categories = d.no
})
end
--------------------------------------------------------------------------------
-- Test category2 parameter
--------------------------------------------------------------------------------
function suite:test_category2_no()
self:assertEquals(d.absent, chmain{
other = d.category,
category2 = d.no
})
end
function suite:test_category2_blank()
self:assertEquals(d.absent, chmain{
other = d.category,
category2 = d.blank
})
end
function suite:test_category2_negation()
self:assertEquals(d.category, chmain{
other = d.category,
category2 = d.negation
})
end
function suite:test_category2_blacklist()
self:assertEquals(d.category, chmain{
other = d.category,
page = d.archive,
categories = d.yes
})
end
--------------------------------------------------------------------------------
-- Test subpage parameter
--------------------------------------------------------------------------------
function suite:test_subpage_no_basepage()
self:assertEquals(d.category, chmain{
other = d.category,
page = d.basepage,
subpage = d.subpageNo
})
end
function suite:test_subpage_no_subpage()
self:assertEquals(d.absent, chmain{
other = d.category,
page = d.subpage,
subpage = d.subpageNo
})
end
function suite:test_subpage_only_basepage()
self:assertEquals(d.absent, chmain{
other = d.category,
page = d.basepage,
subpage = d.subpageOnly
})
end
function suite:test_subpage_only_subpage()
self:assertEquals(d.category, chmain{
other = d.category,
page = d.subpage,
subpage = d.subpageOnly
})
end
--------------------------------------------------------------------------------
-- Test blacklist
--------------------------------------------------------------------------------
function suite:test_blacklist_archives()
self:assertEquals(d.absent, chmain{
other = d.category,
page = 'User talk:Example/Archive 5',
})
end
function suite:test_blacklist_archives_lowercase()
self:assertEquals(d.absent, chmain{
other = d.category,
page = 'User talk:Example/archive 5',
})
end
function suite:test_blacklist_archives_notarchive()
self:assertEquals(d.category, chmain{
other = d.category,
page = 'User talk:Example/Archove 5',
})
end
function suite:test_blacklist_archives_incident_archive()
self:assertEquals(d.category, chmain{
other = d.category,
page = "Wikipedia:Administrators' noticeboard/IncidentArchive 5",
})
end
function suite:test_blacklist_main_page()
self:assertEquals(d.absent, chmain{
other = d.category,
page = 'Main Page',
})
end
function suite:test_blacklist_main_page_talk()
self:assertEquals(d.category, chmain{
other = d.category,
page = 'Talk:Main Page',
})
end
function suite:test_blacklist_cascade()
self:assertEquals(d.absent, chmain{
other = d.category,
page = 'Wikipedia:Cascade-protected items',
})
end
function suite:test_blacklist_cascade_slash()
self:assertEquals(d.absent, chmain{
other = d.category,
page = 'Wikipedia:Cascade-protected items/',
})
end
function suite:test_blacklist_cascade_subpage()
self:assertEquals(d.absent, chmain{
other = d.category,
page = 'Wikipedia:Cascade-protected items/Foo',
})
end
function suite:test_blacklist_cascade_not_subpage()
self:assertEquals(d.category, chmain{
other = d.category,
page = 'Wikipedia:Cascade-protected itemsFoo',
})
end
function suite:test_blacklist_cascade_talk()
self:assertEquals(d.category, chmain{
other = d.category,
page = 'Wikipedia talk:Cascade-protected items',
})
end
function suite:test_blacklist_ubx()
self:assertEquals(d.absent, chmain{
other = d.category,
page = 'User:UBX',
})
end
function suite:test_blacklist_ubx_talk()
self:assertEquals(d.absent, chmain{
other = d.category,
page = 'User talk:UBX',
})
end
function suite:test_blacklist_ubx_subpage()
self:assertEquals(d.absent, chmain{
other = d.category,
page = 'User:UBX/Userboxes',
})
end
function suite:test_blacklist_ubx_talk_subpage()
self:assertEquals(d.absent, chmain{
other = d.category,
page = 'User talk:UBX/Userboxes',
})
end
function suite:test_blacklist_template_index_basepage()
self:assertEquals(d.category, chmain{
other = d.category,
page = 'Wikipedia:Template index',
})
end
function suite:test_blacklist_template_index_slash()
self:assertEquals(d.absent, chmain{
other = d.category,
page = 'Wikipedia:Template index/',
})
end
function suite:test_blacklist_template_index_not_subpage()
self:assertEquals(d.category, chmain{
other = d.category,
page = 'Wikipedia:Template indexFoo',
})
end
function suite:test_blacklist_template_index_subpage()
self:assertEquals(d.absent, chmain{
other = d.category,
page = 'Wikipedia:Template index/Cleanup',
})
end
--------------------------------------------------------------------------------
-- Test namespace params
--------------------------------------------------------------------------------
function suite:test_main()
self:assertEquals(d.category, chmain{
main = d.category,
page = 'Some article',
})
end
function suite:test_talk()
self:assertEquals(d.category, chmain{
talk = d.category,
page = 'Talk:Some article',
})
end
function suite:test_user()
self:assertEquals(d.category, chmain{
user = d.category,
page = 'User:Example',
})
end
function suite:test_user_talk()
self:assertEquals(d.category, chmain{
talk = d.category,
page = 'User talk:Example',
})
self:assertEquals(d.absent, chmain{
['user talk'] = d.category,
page = 'User talk:Example',
})
self:assertEquals(d.absent, chmain{
['user_talk'] = d.category,
page = 'User talk:Example',
})
end
function suite:test_wikipedia()
self:assertEquals(d.category, chmain{
wikipedia = d.category,
page = 'Wikipedia:Example',
})
end
function suite:test_wikipedia()
self:assertEquals(d.category, chmain{
wikipedia = d.category,
page = 'Wikipedia:Example',
})
end
function suite:test_project()
self:assertEquals(d.category, chmain{
project = d.category,
page = 'Wikipedia:Example',
})
end
function suite:test_wp()
self:assertEquals(d.category, chmain{
wp = d.category,
page = 'Wikipedia:Example',
})
end
function suite:test_file()
self:assertEquals(d.category, chmain{
file = d.category,
page = 'File:Example.png',
})
end
function suite:test_image()
self:assertEquals(d.category, chmain{
image = d.category,
page = 'File:Example.png',
})
end
function suite:test_mediawiki()
self:assertEquals(d.category, chmain{
mediawiki = d.category,
page = 'MediaWiki:Protectedpagetext',
})
end
function suite:test_template()
self:assertEquals(d.category, chmain{
template = d.category,
page = 'Template:Example',
})
end
function suite:test_help()
self:assertEquals(d.category, chmain{
help = d.category,
page = 'Help:Editing',
})
end
function suite:test_category()
self:assertEquals(d.category, chmain{
category = d.category,
page = 'Category:Wikipedians',
})
end
function suite:test_category()
self:assertEquals(d.category, chmain{
category = d.category,
page = 'Category:Wikipedians',
})
end
function suite:test_portal()
self:assertEquals(d.category, chmain{
portal = d.category,
page = 'Portal:France',
})
end
function suite:test_draft()
self:assertEquals(d.category, chmain{
draft = d.category,
page = 'Draft:Example',
})
end
function suite:test_timedtext()
self:assertEquals(d.category, chmain{
timedtext = d.category,
page = 'TimedText:Example',
})
end
function suite:test_module()
self:assertEquals(d.category, chmain{
module = d.category,
page = 'Module:Sandbox',
})
end
function suite:test_special()
self:assertEquals(d.category, chmain{
special = d.category,
page = 'Special:WhatLinksHere',
})
end
function suite:test_media()
self:assertEquals(d.category, chmain{
media = d.category,
page = 'Media:Example.png',
})
end
return suite
8rsvk9j212z1pja4pg2q60znaokaxrd
Module:Category handler/data
828
1829
15602
2022-08-08T21:36:50Z
Kambai Akau
15
Created page with "-- This module assembles data to be passed to [[Module:Category handler]] using -- mw.loadData. This includes the configuration data and whether the current -- page matches the title blacklist. local data = require('Module:Category handler/config') local mShared = require('Module:Category handler/shared') local blacklist = require('Module:Category handler/blacklist') local title = mw.title.getCurrentTitle() data.currentTitleMatchesBlacklist = mShared.matchesBlacklist(..."
Scribunto
text/plain
-- This module assembles data to be passed to [[Module:Category handler]] using
-- mw.loadData. This includes the configuration data and whether the current
-- page matches the title blacklist.
local data = require('Module:Category handler/config')
local mShared = require('Module:Category handler/shared')
local blacklist = require('Module:Category handler/blacklist')
local title = mw.title.getCurrentTitle()
data.currentTitleMatchesBlacklist = mShared.matchesBlacklist(
title.prefixedText,
blacklist
)
data.currentTitleNamespaceParameters = mShared.getNamespaceParameters(
title,
mShared.getParamMappings()
)
return data
k26mwixuaeijisfddb0sxkg82iux8v4
Module:Category handler/data/doc
828
1830
15603
2022-08-08T21:37:19Z
Kambai Akau
15
Created page with "This module is used in conjunction with the category handler module to manage categories; it is a very important template used on millions of pages. {{Module rating|protected}} {{used in system}}"
wikitext
text/x-wiki
This module is used in conjunction with the category handler module to manage categories; it is a very important template used on millions of pages.
{{Module rating|protected}}
{{used in system}}
n0u1dvd1fz2q1zrds5q4ys14rh3hrgz
Module:Category handler/config
828
1831
15604
2022-08-08T21:38:46Z
Kambai Akau
15
Created page with "-------------------------------------------------------------------------------- -- [[Module:Category handler]] configuration data -- -- Language-specific parameter names and values can be set here. -- -- For blacklist config, see [[Module:Category handler/blacklist]]. -- -------------------------------------------------------------------------------- local cfg = {} -- Don't edit this line. ----------------------------..."
Scribunto
text/plain
--------------------------------------------------------------------------------
-- [[Module:Category handler]] configuration data --
-- Language-specific parameter names and values can be set here. --
-- For blacklist config, see [[Module:Category handler/blacklist]]. --
--------------------------------------------------------------------------------
local cfg = {} -- Don't edit this line.
--------------------------------------------------------------------------------
-- Start configuration data --
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
-- Parameter names --
-- These configuration items specify custom parameter names. --
-- To add one extra name, you can use this format: --
-- --
-- foo = 'parameter name', --
-- --
-- To add multiple names, you can use this format: --
-- --
-- foo = {'parameter name 1', 'parameter name 2', 'parameter name 3'}, --
--------------------------------------------------------------------------------
cfg.parameters = {
-- The nocat and categories parameter suppress
-- categorisation. They are used with Module:Yesno, and work as follows:
--
-- cfg.nocat:
-- Result of yesno() Effect
-- true Categorisation is suppressed
-- false Categorisation is allowed, and
-- the blacklist check is skipped
-- nil Categorisation is allowed
--
-- cfg.categories:
-- Result of yesno() Effect
-- true Categorisation is allowed, and
-- the blacklist check is skipped
-- false Categorisation is suppressed
-- nil Categorisation is allowed
nocat = 'nocat',
categories = 'categories',
-- The parameter name for the legacy "category2" parameter. This skips the
-- blacklist if set to the cfg.category2Yes value, and suppresses
-- categorisation if present but equal to anything other than
-- cfg.category2Yes or cfg.category2Negative.
category2 = 'category2',
-- cfg.subpage is the parameter name to specify how to behave on subpages.
subpage = 'subpage',
-- The parameter for data to return in all namespaces.
all = 'all',
-- The parameter name for data to return if no data is specified for the
-- namespace that is detected.
other = 'other',
-- The parameter name used to specify a page other than the current page;
-- used for testing and demonstration.
demopage = 'page',
}
--------------------------------------------------------------------------------
-- Parameter values --
-- These are set values that can be used with certain parameters. Only one --
-- value can be specified, like this: --
-- --
-- cfg.foo = 'value name' -- --
--------------------------------------------------------------------------------
-- The following settings are used with the cfg.category2 parameter. Setting
-- cfg.category2 to cfg.category2Yes skips the blacklist, and if cfg.category2
-- is present but equal to anything other than cfg.category2Yes or
-- cfg.category2Negative then it supresses cateogrisation.
cfg.category2Yes = 'yes'
cfg.category2Negative = '¬'
-- The following settings are used with the cfg.subpage parameter.
-- cfg.subpageNo is the value to specify to not categorise on subpages;
-- cfg.subpageOnly is the value to specify to only categorise on subpages.
cfg.subpageNo = 'no'
cfg.subpageOnly = 'only'
--------------------------------------------------------------------------------
-- Default namespaces --
-- This is a table of namespaces to categorise by default. The keys are the --
-- namespace numbers. --
--------------------------------------------------------------------------------
cfg.defaultNamespaces = {
[ 0] = true, -- main
[ 6] = true, -- file
[ 12] = true, -- help
[ 14] = true, -- category
[100] = true, -- portal
[108] = true, -- book
}
--------------------------------------------------------------------------------
-- Wrappers --
-- This is a wrapper template or a list of wrapper templates to be passed to --
-- [[Module:Arguments]]. --
--------------------------------------------------------------------------------
cfg.wrappers = 'Template:Category handler'
--------------------------------------------------------------------------------
-- End configuration data --
--------------------------------------------------------------------------------
return cfg -- Don't edit this line.
6ga9hbq2pdwalsvx68i53dmbr421rq5
Module:Category handler/shared
828
1832
15605
2022-08-08T21:40:14Z
Kambai Akau
15
Created page with "-- This module contains shared functions used by [[Module:Category handler]] -- and its submodules. local p = {} function p.matchesBlacklist(page, blacklist) for i, pattern in ipairs(blacklist) do local match = mw.ustring.match(page, pattern) if match then return true end end return false end function p.getParamMappings(useLoadData) local dataPage = 'Module:Namespace detect/data' if useLoadData then return mw.loadData(dataPage).mappings else return..."
Scribunto
text/plain
-- This module contains shared functions used by [[Module:Category handler]]
-- and its submodules.
local p = {}
function p.matchesBlacklist(page, blacklist)
for i, pattern in ipairs(blacklist) do
local match = mw.ustring.match(page, pattern)
if match then
return true
end
end
return false
end
function p.getParamMappings(useLoadData)
local dataPage = 'Module:Namespace detect/data'
if useLoadData then
return mw.loadData(dataPage).mappings
else
return require(dataPage).mappings
end
end
function p.getNamespaceParameters(titleObj, mappings)
-- We don't use title.nsText for the namespace name because it adds
-- underscores.
local mappingsKey
if titleObj.isTalkPage then
mappingsKey = 'talk'
else
mappingsKey = mw.site.namespaces[titleObj.namespace].name
end
mappingsKey = mw.ustring.lower(mappingsKey)
return mappings[mappingsKey] or {}
end
return p
omlsnhudxz6juptvtxz7ns97jutbzc5
Module:Category handler/blacklist
828
1833
15606
2022-08-08T21:41:11Z
Kambai Akau
15
Created page with "-- This module contains the blacklist used by [[Module:Category handler]]. -- Pages that match Lua patterns in this list will not be categorised unless -- categorisation is explicitly requested. return { '^Main Page$', -- don't categorise the main page. -- Don't categorise the following pages or their subpages. -- "%f[/\0]" matches if the next character is "/" or the end of the string. '^Wikipedia:Cascade%-protected items%f[/\0]', '^User:UBX%f[/\0]', -- The userbo..."
Scribunto
text/plain
-- This module contains the blacklist used by [[Module:Category handler]].
-- Pages that match Lua patterns in this list will not be categorised unless
-- categorisation is explicitly requested.
return {
'^Main Page$', -- don't categorise the main page.
-- Don't categorise the following pages or their subpages.
-- "%f[/\0]" matches if the next character is "/" or the end of the string.
'^Wikipedia:Cascade%-protected items%f[/\0]',
'^User:UBX%f[/\0]', -- The userbox "template" space.
'^User talk:UBX%f[/\0]',
-- Don't categorise subpages of these pages, but allow
-- categorisation of the base page.
'^Wikipedia:Template index/.*$',
-- Don't categorise archives.
'/[aA]rchive',
"^Wikipedia:Administrators' noticeboard/IncidentArchive%d+$",
}
fsv1drcay6t25e91hzhqxtyp7pckbpx
Module:Category handler/blacklist/doc
828
1834
15607
2022-08-08T21:41:36Z
Kambai Akau
15
Created page with "{{Module rating |protected}} {{used in system}} <!-- Please place categories where indicated at the bottom of this page and interwikis at Wikidata (see [[Wikipedia:Wikidata]]) --> == Usage == <code><nowiki>{{</nowiki>#invoke:{{BASEPAGENAME}}|''function_name''}}</code> <includeonly>{{#ifeq:{{SUBPAGENAME}}|sandbox | | <!-- Categories below this line, please; interwikis at Wikidata --> }}</includeonly>"
wikitext
text/x-wiki
{{Module rating |protected}}
{{used in system}}
<!-- Please place categories where indicated at the bottom of this page and interwikis at Wikidata (see [[Wikipedia:Wikidata]]) -->
== Usage ==
<code><nowiki>{{</nowiki>#invoke:{{BASEPAGENAME}}|''function_name''}}</code>
<includeonly>{{#ifeq:{{SUBPAGENAME}}|sandbox | |
<!-- Categories below this line, please; interwikis at Wikidata -->
}}</includeonly>
cvoghrbwx40ued6n9taharl9o3yu327
Module:Category handler/shared/doc
828
1835
15608
2022-08-08T21:43:57Z
Kambai Akau
15
Created page with "{{Module rating |protected}} {{used in system}} <!-- Please place categories where indicated at the bottom of this page and interwikis at Wikidata (see [[Wikipedia:Wikidata]]) --> == Usage == <code><nowiki>{{</nowiki>#invoke:{{BASEPAGENAME}}|''function_name''}}</code> <includeonly>{{#ifeq:{{SUBPAGENAME}}|sandbox | | <!-- Categories below this line, please; interwikis at Wikidata --> }}</includeonly>"
wikitext
text/x-wiki
{{Module rating |protected}}
{{used in system}}
<!-- Please place categories where indicated at the bottom of this page and interwikis at Wikidata (see [[Wikipedia:Wikidata]]) -->
== Usage ==
<code><nowiki>{{</nowiki>#invoke:{{BASEPAGENAME}}|''function_name''}}</code>
<includeonly>{{#ifeq:{{SUBPAGENAME}}|sandbox | |
<!-- Categories below this line, please; interwikis at Wikidata -->
}}</includeonly>
cvoghrbwx40ued6n9taharl9o3yu327
Ta̱mpi̱let:Error
10
1836
15609
2022-08-08T21:45:03Z
Kambai Akau
15
Created page with "{{#invoke:Error|error|{{{message|{{{1}}}}}}|tag={{{tag|}}}}}<noinclude> {{documentation}} </noinclude>"
wikitext
text/x-wiki
{{#invoke:Error|error|{{{message|{{{1}}}}}}|tag={{{tag|}}}}}<noinclude>
{{documentation}}
</noinclude>
axsripqkyjus55mon24y6efvuedy0d2
Module:Error
828
1837
15610
2022-08-08T21:47:57Z
Kambai Akau
15
Created page with "-- This module implements {{error}}. local p = {} local function _error(args) local tag = mw.ustring.lower(tostring(args.tag)) -- Work out what html tag we should use. if not (tag == 'p' or tag == 'span' or tag == 'div') then tag = 'strong' end -- Generate the html. return tostring(mw.html.create(tag) :addClass('error') :wikitext(tostring(args.message or args[1] or error('no message specified', 2))) ) end function..."
Scribunto
text/plain
-- This module implements {{error}}.
local p = {}
local function _error(args)
local tag = mw.ustring.lower(tostring(args.tag))
-- Work out what html tag we should use.
if not (tag == 'p' or tag == 'span' or tag == 'div') then
tag = 'strong'
end
-- Generate the html.
return tostring(mw.html.create(tag)
:addClass('error')
:wikitext(tostring(args.message or args[1] or error('no message specified', 2)))
)
end
function p.error(frame)
local args
if type(frame.args) == 'table' then
-- We're being called via #invoke. The args are passed through to the module
-- from the template page, so use the args that were passed into the template.
args = frame.args
else
-- We're being called from another module or from the debug console, so assume
-- the args are passed in directly.
args = frame
end
-- if the message parameter is present but blank, change it to nil so that Lua will
-- consider it false.
if args.message == "" then
args.message = nil
end
return _error(args)
end
return p
swpvwjcdmj2mkkmx9f7rbsdrfsnmirh
Module:Error/doc
828
1838
15611
2022-08-08T21:51:20Z
Kambai Akau
15
Created page with "{{High-use|80000}} {{module rating|protected}} This module creates an html message with class "error". It is a replacement for {{tl|error}} - please see the documentation page there for usage instructions. == See also == * [[Module:Warning]] * [[Module:If preview]]<includeonly> {{Sandbox other|| [[Category:Error-handling modules]] }}</includeonly>"
wikitext
text/x-wiki
{{High-use|80000}}
{{module rating|protected}}
This module creates an html message with class "error". It is a replacement for {{tl|error}} - please see the documentation page there for usage instructions.
== See also ==
* [[Module:Warning]]
* [[Module:If preview]]<includeonly>
{{Sandbox other||
[[Category:Error-handling modules]]
}}</includeonly>
70mpyeet335t4p36iziic4knhvshesh
Module:Warning
828
1839
15612
2022-08-08T21:52:22Z
Kambai Akau
15
Created page with "local libraryUtil = require('libraryUtil') local wrapper = "%s" -- wikitext formatting local msg_loc = "Lua warning in %s at line %d: %s." local msg = "Lua warning: %s." return function (message, level) libraryUtil.checkType('warn', 2, level, 'number', true) level = level or 1 if level > 0 then local _, location = pcall(error, '', level+2) if location ~= '' then location = mw.text.split(location:sub(1,-3), ':%f[%d]') message = msg_loc:format(location[1], l..."
Scribunto
text/plain
local libraryUtil = require('libraryUtil')
local wrapper = "%s" -- wikitext formatting
local msg_loc = "Lua warning in %s at line %d: %s."
local msg = "Lua warning: %s."
return function (message, level)
libraryUtil.checkType('warn', 2, level, 'number', true)
level = level or 1
if level > 0 then
local _, location = pcall(error, '', level+2)
if location ~= '' then
location = mw.text.split(location:sub(1,-3), ':%f[%d]')
message = msg_loc:format(location[1], location[2], message)
else
message = msg:format(message)
end
else
message = msg:format(message)
end
mw.addWarning(wrapper:format(message))
end
6n5nxfk4xtrlul0szoxeogpa9uj1ggn
Ta̱mpi̱let:Error/doc
10
1840
15613
2022-08-08T21:55:19Z
Kambai Akau
15
Created page with "{{Documentation subpage}} <!-- Place categories where indicated at the bottom of this page and interwikis at Wikidata (see [[Wikipedia:Wikidata]]) --> {{high use}} {{lua|Module:Error}} This meta template returns a ''state of error'' (recognized as such by a wiki [[Help:Parser function|parser function]]), and optionally an ''error-message text'' in red (visible for the user). It is used by other templates to signal an error, for example invalid input, which can then eith..."
wikitext
text/x-wiki
{{Documentation subpage}}
<!-- Place categories where indicated at the bottom of this page and interwikis at Wikidata (see [[Wikipedia:Wikidata]]) -->
{{high use}}
{{lua|Module:Error}}
This meta template returns a ''state of error'' (recognized as such by a wiki [[Help:Parser function|parser function]]), and optionally an ''error-message text'' in red (visible for the user). It is used by other templates to signal an error, for example invalid input, which can then either be displayed to the editor or caught and handled by other templates.
== Usage ==
* {{tlx|error|An exemplary error}} → {{error|An exemplary error}}
* {{tlx|error|message{{=}}An exemplary error}} → {{error|message=An exemplary error}}
* Compare, used in a Parser Function: <code><nowiki>{{#expr:Foo}}</nowiki></code> → {{#expr:Foo}}
* <code><nowiki>{{#iferror:{{error|Foo}} | {{y}} | {{n}} }}</nowiki></code> → {{#iferror:{{error|Foo}} | {{y}} | {{n}} }}
=== Tag option ===
The tag to contain the error message can be given through the <code>tag</code> parameter, but it will only accept <code>span</code>, <code>div</code>, <code>p</code>, and <code>strong</code>, since those are the only tags recognized by the {{pf|iferror}} parser function. It defaults to <code>strong</code>, the tag generated e.g. by {{pf|expr}}. To prevent <code>strong</code> message, use one of the other tags, e.g. <code>tag=span</code>.
* ABC {{tlx|error|An exemplary error demo no tag (default)}} XYZ → ABC {{error|An exemplary error demo no tag (default)}} XYZ
* ABC {{tlx|error|An exemplary error demo span|tag{{=}}span}} XYZ → ABC {{error|An exemplary error demo span|tag=span}} XYZ
* ABC {{tlx|error|An exemplary error demo div|tag{{=}}div}} XYZ → ABC {{error|An exemplary error demo div|tag=div}} XYZ
* ABC {{tlx|error|An exemplary error demo p|tag{{=}}p}} XYZ → ABC {{error|An exemplary error demo p|tag=p}} XYZ
* ABC {{tlx|error|An exemplary error demo strong|tag{{=}}strong}} XYZ → ABC {{error|An exemplary error demo strong|tag=strong}} XYZ
==TemplateData==
{{TemplateData header}}
<TemplateData>
{
"description": "The template returns a state of error (recognized as such by a wiki parser function), and optionally an error-message text in red (visible for the user)",
"params": {
"1": {
"label": "Message",
"description": "Error message text in red",
"type": "string",
"required": false,
"suggested": true
},
"tag": {
"label": "Tag",
"description": "The tag to contain the error message; will only accept span, div, p, and strong, since those are the only tags recognized by the #iferror parser function. It defaults to strong, the tag generated e.g. by #expre",
"type": "string",
"default": "strong",
"required": false
}
}
}
</TemplateData>
==See also==
* {{tl|Error-small}}
* {{tl|Formatting error}}
* [[Help:Magic_words#Conditional|#iferror: parser function]]
<includeonly>{{Sandbox other||
<!-- Categories below this line, please; interwikis at Wikidata -->
[[Category:Wikipedia metatemplates]]
[[Category:Error-message templates]]
}}</includeonly>
3gubbmhoq6dck7u9dvuuf3sd66e8mp5
Ta̱mpi̱let:Terminate sentence
10
1841
15614
2022-08-08T21:59:42Z
Kambai Akau
15
Created page with "{{{1}}}{{#if:{{#invoke:text|sentenceTerminated|{{{1|}}}}}||{{{2|.}}}}}<noinclude>{{documentation}}</noinclude>"
wikitext
text/x-wiki
{{{1}}}{{#if:{{#invoke:text|sentenceTerminated|{{{1|}}}}}||{{{2|.}}}}}<noinclude>{{documentation}}</noinclude>
qn47z9jj1gbam5odtqcnrnt6hqvwhtn
Ta̱mpi̱let:Terminate sentence/doc
10
1842
15615
2022-08-08T22:01:59Z
Kambai Akau
15
Created page with "{{Documentation subpage}} {{Lua|Module:Text}} This template returns its first argument, after adding a full stop (or its second argument) if the sentence was not finished. == Usage == * {{#invoke:DemoTemplate|{{BASEPAGENAME}}|The rain in Spain}} * {{#invoke:DemoTemplate|{{BASEPAGENAME}}|falls mainly on the plain.}} * {{#invoke:DemoTemplate|{{BASEPAGENAME}}|BANG|!}} <includeonly>{{sandbox other|| <!-- Categories below this line --> }}</includeonly>"
wikitext
text/x-wiki
{{Documentation subpage}}
{{Lua|Module:Text}}
This template returns its first argument, after adding a full stop (or its second argument) if the sentence was not finished.
== Usage ==
* {{#invoke:DemoTemplate|{{BASEPAGENAME}}|The rain in Spain}}
* {{#invoke:DemoTemplate|{{BASEPAGENAME}}|falls mainly on the plain.}}
* {{#invoke:DemoTemplate|{{BASEPAGENAME}}|BANG|!}}
<includeonly>{{sandbox other||
<!-- Categories below this line -->
}}</includeonly>
poh2uo7tuw6rdtbypr55ll04qy4jcwt
Module:Text
828
1843
15616
2022-08-08T22:02:56Z
Kambai Akau
15
Created page with "local yesNo = require("Module:Yesno") local Text = { serial = "2022-07-21", suite = "Text" } --[=[ Text utilities ]=] -- local globals local PatternCJK = false local PatternCombined = false local PatternLatin = false local PatternTerminated = false local QuoteLang = false local QuoteType = false local RangesLatin = false local SeekQuote = false local function initLatinData() if not RangesLatin then..."
Scribunto
text/plain
local yesNo = require("Module:Yesno")
local Text = { serial = "2022-07-21",
suite = "Text" }
--[=[
Text utilities
]=]
-- local globals
local PatternCJK = false
local PatternCombined = false
local PatternLatin = false
local PatternTerminated = false
local QuoteLang = false
local QuoteType = false
local RangesLatin = false
local SeekQuote = false
local function initLatinData()
if not RangesLatin then
RangesLatin = { { 7, 687 },
{ 7531, 7578 },
{ 7680, 7935 },
{ 8194, 8250 } }
end
if not PatternLatin then
local range
PatternLatin = "^["
for i = 1, #RangesLatin do
range = RangesLatin[ i ]
PatternLatin = PatternLatin ..
mw.ustring.char( range[ 1 ], 45, range[ 2 ] )
end -- for i
PatternLatin = PatternLatin .. "]*$"
end
end
local function initQuoteData()
-- Create quote definitions
if not QuoteLang then
QuoteLang =
{ af = "bd",
ar = "la",
be = "labd",
bg = "bd",
ca = "la",
cs = "bd",
da = "bd",
de = "bd",
dsb = "bd",
et = "bd",
el = "lald",
en = "ld",
es = "la",
eu = "la",
-- fa = "la",
fi = "rd",
fr = "laSPC",
ga = "ld",
he = "ldla",
hr = "bd",
hsb = "bd",
hu = "bd",
hy = "labd",
id = "rd",
is = "bd",
it = "ld",
ja = "x300C",
ka = "bd",
ko = "ld",
lt = "bd",
lv = "bd",
nl = "ld",
nn = "la",
no = "la",
pl = "bdla",
pt = "lald",
ro = "bdla",
ru = "labd",
sk = "bd",
sl = "bd",
sq = "la",
sr = "bx",
sv = "rd",
th = "ld",
tr = "ld",
uk = "la",
zh = "ld",
["de-ch"] = "la",
["en-gb"] = "lsld",
["en-us"] = "ld",
["fr-ch"] = "la",
["it-ch"] = "la",
["pt-br"] = "ldla",
["zh-tw"] = "x300C",
["zh-cn"] = "ld" }
end
if not QuoteType then
QuoteType =
{ bd = { { 8222, 8220 }, { 8218, 8217 } },
bdla = { { 8222, 8220 }, { 171, 187 } },
bx = { { 8222, 8221 }, { 8218, 8217 } },
la = { { 171, 187 }, { 8249, 8250 } },
laSPC = { { 171, 187 }, { 8249, 8250 }, true },
labd = { { 171, 187 }, { 8222, 8220 } },
lald = { { 171, 187 }, { 8220, 8221 } },
ld = { { 8220, 8221 }, { 8216, 8217 } },
ldla = { { 8220, 8221 }, { 171, 187 } },
lsld = { { 8216, 8217 }, { 8220, 8221 } },
rd = { { 8221, 8221 }, { 8217, 8217 } },
x300C = { { 0x300C, 0x300D },
{ 0x300E, 0x300F } } }
end
end -- initQuoteData()
local function fiatQuote( apply, alien, advance )
-- Quote text
-- Parameter:
-- apply -- string, with text
-- alien -- string, with language code
-- advance -- number, with level 1 or 2
local r = apply and tostring(apply) or ""
alien = alien or "en"
advance = tonumber(advance) or 0
local suite
initQuoteData()
local slang = alien:match( "^(%l+)-" )
suite = QuoteLang[alien] or slang and QuoteLang[slang] or QuoteLang["en"]
if suite then
local quotes = QuoteType[ suite ]
if quotes then
local space
if quotes[ 3 ] then
space = " "
else
space = ""
end
quotes = quotes[ advance ]
if quotes then
r = mw.ustring.format( "%s%s%s%s%s",
mw.ustring.char( quotes[ 1 ] ),
space,
apply,
space,
mw.ustring.char( quotes[ 2 ] ) )
end
else
mw.log( "fiatQuote() " .. suite )
end
end
return r
end -- fiatQuote()
Text.char = function ( apply, again, accept )
-- Create string from codepoints
-- Parameter:
-- apply -- table (sequence) with numerical codepoints, or nil
-- again -- number of repetitions, or nil
-- accept -- true, if no error messages to be appended
-- Returns: string
local r = ""
apply = type(apply) == "table" and apply or {}
again = math.floor(tonumber(again) or 1)
if again < 1 then
return ""
end
local bad = { }
local codes = { }
for _, v in ipairs( apply ) do
local n = tonumber(v)
if not n or (n < 32 and n ~= 9 and n ~= 10) then
table.insert(bad, tostring(v))
else
table.insert(codes, math.floor(n))
end
end
if #bad > 0 then
if not accept then
r = tostring( mw.html.create( "span" )
:addClass( "error" )
:wikitext( "bad codepoints: " .. table.concat( bad, " " )) )
end
return r
end
if #codes > 0 then
r = mw.ustring.char( unpack( codes ) )
if again > 1 then
r = r:rep(again)
end
end
return r
end -- Text.char()
local function trimAndFormat(args, fmt)
local result = {}
if type(args) ~= 'table' then
args = {args}
end
for _, v in ipairs(args) do
v = mw.text.trim(tostring(v))
if v ~= "" then
table.insert(result,fmt and mw.ustring.format(fmt, v) or v)
end
end
return result
end
Text.concatParams = function ( args, apply, adapt )
-- Concat list items into one string
-- Parameter:
-- args -- table (sequence) with numKey=string
-- apply -- string (optional); separator (default: "|")
-- adapt -- string (optional); format including "%s"
-- Returns: string
local collect = { }
return table.concat(trimAndFormat(args,adapt), apply or "|")
end -- Text.concatParams()
Text.containsCJK = function ( s )
-- Is any CJK code within?
-- Parameter:
-- s -- string
-- Returns: true, if CJK detected
s = s and tostring(s) or ""
if not patternCJK then
patternCJK = mw.ustring.char( 91,
4352, 45, 4607,
11904, 45, 42191,
43072, 45, 43135,
44032, 45, 55215,
63744, 45, 64255,
65072, 45, 65103,
65381, 45, 65500,
131072, 45, 196607,
93 )
end
return mw.ustring.find( s, patternCJK ) ~= nil
end -- Text.containsCJK()
Text.removeDelimited = function (s, prefix, suffix)
-- Remove all text in s delimited by prefix and suffix (inclusive)
-- Arguments:
-- s = string to process
-- prefix = initial delimiter
-- suffix = ending delimiter
-- Returns: stripped string
s = s and tostring(s) or ""
prefix = prefix and tostring(prefix) or ""
suffix = suffix and tostring(suffix) or ""
local prefixLen = mw.ustring.len(prefix)
local suffixLen = mw.ustring.len(suffix)
if prefixLen == 0 or suffixLen == 0 then
return s
end
local i = s:find(prefix, 1, true)
local r = s
local j
while i do
j = r:find(suffix, i + prefixLen)
if j then
r = r:sub(1, i - 1)..r:sub(j+suffixLen)
else
r = r:sub(1, i - 1)
end
i = r:find(prefix, 1, true)
end
return r
end
Text.getPlain = function ( adjust )
-- Remove wikisyntax from string, except templates
-- Parameter:
-- adjust -- string
-- Returns: string
local r = Text.removeDelimited(adjust,"<!--","-->")
r = r:gsub( "(</?%l[^>]*>)", "" )
:gsub( "'''", "" )
:gsub( "''", "" )
:gsub( " ", " " )
return r
end -- Text.getPlain()
Text.isLatinRange = function (s)
-- Are characters expected to be latin or symbols within latin texts?
-- Arguments:
-- s = string to analyze
-- Returns: true, if valid for latin only
s = s and tostring(s) or "" --- ensure input is always string
initLatinData()
return mw.ustring.match(s, PatternLatin) ~= nil
end -- Text.isLatinRange()
Text.isQuote = function ( s )
-- Is this character any quotation mark?
-- Parameter:
-- s = single character to analyze
-- Returns: true, if s is quotation mark
s = s and tostring(s) or ""
if s == "" then
return false
end
if not SeekQuote then
SeekQuote = mw.ustring.char( 34, -- "
39, -- '
171, -- laquo
187, -- raquo
8216, -- lsquo
8217, -- rsquo
8218, -- sbquo
8220, -- ldquo
8221, -- rdquo
8222, -- bdquo
8249, -- lsaquo
8250, -- rsaquo
0x300C, -- CJK
0x300D, -- CJK
0x300E, -- CJK
0x300F ) -- CJK
end
return mw.ustring.find( SeekQuote, s, 1, true ) ~= nil
end -- Text.isQuote()
Text.listToText = function ( args, adapt )
-- Format list items similar to mw.text.listToText()
-- Parameter:
-- args -- table (sequence) with numKey=string
-- adapt -- string (optional); format including "%s"
-- Returns: string
return mw.text.listToText(trimAndFormat(args, adapt))
end -- Text.listToText()
Text.quote = function ( apply, alien, advance )
-- Quote text
-- Parameter:
-- apply -- string, with text
-- alien -- string, with language code, or nil
-- advance -- number, with level 1 or 2, or nil
-- Returns: quoted string
apply = apply and tostring(apply) or ""
local mode, slang
if type( alien ) == "string" then
slang = mw.text.trim( alien ):lower()
else
slang = mw.title.getCurrentTitle().pageLanguage
if not slang then
-- TODO FIXME: Introduction expected 2017-04
slang = mw.language.getContentLanguage():getCode()
end
end
if advance == 2 then
mode = 2
else
mode = 1
end
return fiatQuote( mw.text.trim( apply ), slang, mode )
end -- Text.quote()
Text.quoteUnquoted = function ( apply, alien, advance )
-- Quote text, if not yet quoted and not empty
-- Parameter:
-- apply -- string, with text
-- alien -- string, with language code, or nil
-- advance -- number, with level 1 or 2, or nil
-- Returns: string; possibly quoted
local r = mw.text.trim( apply and tostring(apply) or "" )
local s = mw.ustring.sub( r, 1, 1 )
if s ~= "" and not Text.isQuote( s, advance ) then
s = mw.ustring.sub( r, -1, 1 )
if not Text.isQuote( s ) then
r = Text.quote( r, alien, advance )
end
end
return r
end -- Text.quoteUnquoted()
Text.removeDiacritics = function ( adjust )
-- Remove all diacritics
-- Parameter:
-- adjust -- string
-- Returns: string; all latin letters should be ASCII
-- or basic greek or cyrillic or symbols etc.
local cleanup, decomposed
if not PatternCombined then
PatternCombined = mw.ustring.char( 91,
0x0300, 45, 0x036F,
0x1AB0, 45, 0x1AFF,
0x1DC0, 45, 0x1DFF,
0xFE20, 45, 0xFE2F,
93 )
end
decomposed = mw.ustring.toNFD( adjust and tostring(adjust) or "" )
cleanup = mw.ustring.gsub( decomposed, PatternCombined, "" )
return mw.ustring.toNFC( cleanup )
end -- Text.removeDiacritics()
Text.sentenceTerminated = function ( analyse )
-- Is string terminated by dot, question or exclamation mark?
-- Quotation, link termination and so on granted
-- Parameter:
-- analyse -- string
-- Returns: true, if sentence terminated
local r
if not PatternTerminated then
PatternTerminated = mw.ustring.char( 91,
12290,
65281,
65294,
65311 )
.. "!%.%?…][\"'%]‹›«»‘’“”]*$"
end
if mw.ustring.find( analyse, PatternTerminated ) then
r = true
else
r = false
end
return r
end -- Text.sentenceTerminated()
Text.ucfirstAll = function ( adjust)
-- Capitalize all words
-- Arguments:
-- adjust = string to adjust
-- Returns: string with all first letters in upper case
adjust = adjust and tostring(adjust) or ""
local r = mw.text.decode(adjust,true)
local i = 1
local c, j, m
m = (r ~= adjust)
r = " "..r
while i do
i = mw.ustring.find( r, "%W%l", i )
if i then
j = i + 1
c = mw.ustring.upper( mw.ustring.sub( r, j, j ) )
r = string.format( "%s%s%s",
mw.ustring.sub( r, 1, i ),
c,
mw.ustring.sub( r, i + 2 ) )
i = j
end
end -- while i
r = r:sub( 2 )
if m then
r = mw.text.encode(r)
end
return r
end -- Text.ucfirstAll()
Text.uprightNonlatin = function ( adjust )
-- Ensure non-italics for non-latin text parts
-- One single greek letter might be granted
-- Precondition:
-- adjust -- string
-- Returns: string with non-latin parts enclosed in <span>
local r
initLatinData()
if mw.ustring.match( adjust, PatternLatin ) then
-- latin only, horizontal dashes, quotes
r = adjust
else
local c
local j = false
local k = 1
local m = false
local n = mw.ustring.len( adjust )
local span = "%s%s<span dir='auto' style='font-style:normal'>%s</span>"
local flat = function ( a )
-- isLatin
local range
for i = 1, #RangesLatin do
range = RangesLatin[ i ]
if a >= range[ 1 ] and a <= range[ 2 ] then
return true
end
end -- for i
end -- flat()
local focus = function ( a )
-- char is not ambivalent
local r = ( a > 64 )
if r then
r = ( a < 8192 or a > 8212 )
else
r = ( a == 38 or a == 60 ) -- '&' '<'
end
return r
end -- focus()
local form = function ( a )
return string.format( span,
r,
mw.ustring.sub( adjust, k, j - 1 ),
mw.ustring.sub( adjust, j, a ) )
end -- form()
r = ""
for i = 1, n do
c = mw.ustring.codepoint( adjust, i, i )
if focus( c ) then
if flat( c ) then
if j then
if m then
if i == m then
-- single greek letter.
j = false
end
m = false
end
if j then
local nx = i - 1
local s = ""
for ix = nx, 1, -1 do
c = mw.ustring.sub( adjust, ix, ix )
if c == " " or c == "(" then
nx = nx - 1
s = c .. s
else
break -- for ix
end
end -- for ix
r = form( nx ) .. s
j = false
k = i
end
end
elseif not j then
j = i
if c >= 880 and c <= 1023 then
-- single greek letter?
m = i + 1
else
m = false
end
end
elseif m then
m = m + 1
end
end -- for i
if j and ( not m or m < n ) then
r = form( n )
else
r = r .. mw.ustring.sub( adjust, k )
end
end
return r
end -- Text.uprightNonlatin()
Text.test = function ( about )
local r
if about == "quote" then
initQuoteData()
r = { }
r.QuoteLang = QuoteLang
r.QuoteType = QuoteType
end
return r
end -- Text.test()
-- Export
local p = { }
for _, func in ipairs({'containsCJK','isLatinRange','isQuote','sentenceTerminated'}) do
p[func] = function (frame)
return Text[func]( frame.args[ 1 ] or "" ) and "1" or ""
end
end
for _, func in ipairs({'getPlain','removeDiacritics','ucfirstAll','uprightNonlatin'}) do
p[func] = function (frame)
return Text[func]( frame.args[ 1 ] or "" )
end
end
function p.char( frame )
local params = frame:getParent().args
local story = params[ 1 ]
local codes, lenient, multiple
if not story then
params = frame.args
story = params[ 1 ]
end
if story then
local items = mw.text.split( mw.text.trim(story), "%s+" )
if #items > 0 then
local j
lenient = (yesNo(params.errors) == false)
codes = { }
multiple = tonumber( params[ "*" ] )
for _, v in ipairs( items ) do
j = tonumber((v:sub( 1, 1 ) == "x" and "0" or "") .. v)
table.insert( codes, j or v )
end
end
end
return Text.char( codes, multiple, lenient )
end
function p.concatParams( frame )
local args
local template = frame.args.template
if type( template ) == "string" then
template = mw.text.trim( template )
template = ( template == "1" )
end
if template then
args = frame:getParent().args
else
args = frame.args
end
return Text.concatParams( args,
frame.args.separator,
frame.args.format )
end
function p.listToFormat(frame)
local lists = {}
local pformat = frame.args["format"]
local sep = frame.args["sep"] or ";"
-- Parameter parsen: Listen
for k, v in pairs(frame.args) do
local knum = tonumber(k)
if knum then lists[knum] = v end
end
-- Listen splitten
local maxListLen = 0
for i = 1, #lists do
lists[i] = mw.text.split(lists[i], sep)
if #lists[i] > maxListLen then maxListLen = #lists[i] end
end
-- Ergebnisstring generieren
local result = ""
local result_line = ""
for i = 1, maxListLen do
result_line = pformat
for j = 1, #lists do
result_line = mw.ustring.gsub(result_line, "%%s", lists[j][i], 1)
end
result = result .. result_line
end
return result
end
function p.listToText( frame )
local args
local template = frame.args.template
if type( template ) == "string" then
template = mw.text.trim( template )
template = ( template == "1" )
end
if template then
args = frame:getParent().args
else
args = frame.args
end
return Text.listToText( args, frame.args.format )
end
function p.quote( frame )
local slang = frame.args[2]
if type( slang ) == "string" then
slang = mw.text.trim( slang )
if slang == "" then
slang = false
end
end
return Text.quote( frame.args[ 1 ] or "",
slang,
tonumber( frame.args[3] ) )
end
function p.quoteUnquoted( frame )
local slang = frame.args[2]
if type( slang ) == "string" then
slang = mw.text.trim( slang )
if slang == "" then
slang = false
end
end
return Text.quoteUnquoted( frame.args[ 1 ] or "",
slang,
tonumber( frame.args[3] ) )
end
function p.zip(frame)
local lists = {}
local seps = {}
local defaultsep = frame.args["sep"] or ""
local innersep = frame.args["isep"] or ""
local outersep = frame.args["osep"] or ""
-- Parameter parsen
for k, v in pairs(frame.args) do
local knum = tonumber(k)
if knum then lists[knum] = v else
if string.sub(k, 1, 3) == "sep" then
local sepnum = tonumber(string.sub(k, 4))
if sepnum then seps[sepnum] = v end
end
end
end
-- sofern keine expliziten Separatoren angegeben sind, den Standardseparator verwenden
for i = 1, math.max(#seps, #lists) do
if not seps[i] then seps[i] = defaultsep end
end
-- Listen splitten
local maxListLen = 0
for i = 1, #lists do
lists[i] = mw.text.split(lists[i], seps[i])
if #lists[i] > maxListLen then maxListLen = #lists[i] end
end
local result = ""
for i = 1, maxListLen do
if i ~= 1 then result = result .. outersep end
for j = 1, #lists do
if j ~= 1 then result = result .. innersep end
result = result .. (lists[j][i] or "")
end
end
return result
end
function p.failsafe()
return Text.serial
end
p.Text = function ()
return Text
end -- p.Text
return p
0xet6fnewsfg3wohnjcgtxmnjwe52je
Module:Text/doc
828
1844
15617
2022-08-08T22:03:34Z
Kambai Akau
15
Created page with "{{high use}} '''<code>Text</code>''' – Module containing methods for the manipulation of text, wikimarkup and some HTML. == {{Anchor|Vorlage}} Functions for templates == All methods have an unnamed parameter containing the text. The return value is an empty string if the parameter does not meet the conditions. When the condition is matched or some result is successfully found, strings of at least one character are returned. ; char {{Anchor|char}} : Creates a string..."
wikitext
text/x-wiki
{{high use}}
'''<code>Text</code>''' – Module containing methods for the manipulation of text, wikimarkup and some HTML.
== {{Anchor|Vorlage}} Functions for templates ==
All methods have an unnamed parameter containing the text.
The return value is an empty string if the parameter does not meet the conditions. When the condition is matched or some result is successfully found, strings of at least one character are returned.
; char {{Anchor|char}}
: Creates a string from a list of character codes.
::; 1
::: Space-separated list of character codes
::; *
::: Number of repetitions of the list in parameter '''1'''; (Default 1).
::; errors
::: <code>0</code> – Silence errors
; concatParams {{Anchor|concatParams}}
: Combine any number of elements into a list, like <code>table.concat()</code> in Lua.
: From a template:
::; 1
::: First element; missing and empty elements are ignored.
::; 2 3 4 5 6 …
::: Further list elements
: From Lua
::; args
::: ''table (sequence)'' of the elements
::; apply
::: Separator between elements; defaults to <code>|</code>
::; adapt
::: optional formatting, which will be applied to each element; must contain <code>%s</code>.
; containsCJK {{Anchor|containsCJK}}
: Returns whether the input string contains any [[CJK characters]]
:* Returns nothing if there are no CJK characters
; removeDelimited
: Remove all text between delimiters, including the delimiters themselves.
; getPlain{{Anchor|getPlain}}
: Remove wikimarkup (except templates): comments, tags, bold, italic, nbsp
; isLatinRange {{Anchor|isLatinRange}}
: Returns some content, unless the string contains a character that would not normally be found in Latin text.
:* Returns nothing if there is a non-Latin string.
; isQuote {{Anchor|isQuote}}
: Returns some content if the parameter passed is a single character, and that character is a quote, such as <code>'</code>.
:* Returns nothing for multiple characters, or if the character passed is not a quote.
; listToText {{Anchor|listToText}}
: Formats list elements analogously to [[:mw:Extension:Scribunto/Lua_reference_manual#mw.text.listToText|mw.text.listToText()]].
: The elements are separated by a comma and space ; the word "and" appears between the first and last.
: Unnamed parameters become the list items.
: Optional parameters for <code>#invoke</code>:
:* <code>format</code> – Every list element will first be formatted with this format string; see [[:mw:Extension:Scribunto/Lua_reference_manual#string.format|here]] for how to construct this string. The string must contain at least one <code>%s</code> sequence.
:* <code>template=1</code> – List elements should be taken from the calling template.
: Returns the resulting string.
; quote {{Anchor|quote}}
: Wrap the string in quotes; quotes can be chosen for a specific language.
::; 1
::: Input text (will be automatically trimmed); may be empty.
::; 2
::: ''(optional)'' the [[ISO 639]] language code for the quote marks; should be one of the [[:de:Wikipedia:Lua/Modul/Text/Test#Anführungszeichen|supported languages]] {{in lang|de}}
::; 3
::: ''(optional)'' <code>2</code> for second level quotes. This means the single quote marks in a statement such as: Jack said, “Jill said ‘fish’ last Tuesday.”
; quoteUnquoted {{Anchor|quoteUnquoted}}
:
: Wrap the string in quotes; quotes can be chosen for a specific language. Will not quote an empty string, and will not quote if there is a quote at the start or end of the (trimmed) string.
::; 1
::: Input text (will be automatically trimmed); may be empty.
::; 2
::: ''(optional)'' the [[ISO 639]] language code for the quote marks; should be one of the [[:de:Wikipedia:Lua/Modul/Text/Test#Anführungszeichen|supported languages]] {{in lang|de}}
::; 3
::: ''(optional)'' <code>2</code> for second level quotes. This means the single quote marks in a statement such as: Jack said, “Jill said ‘fish’ last Tuesday.”
; removeDiacritics {{Anchor|removeDiacritics}}
: Removes all [[diacritical marks]] from the input.
::; 1
::;: Input text
; sentenceTerminated {{Anchor|sentenceTerminated}}
: Is this sentence terminated? Should work with CJK, and allows quotation marks to follow.
:* Returns nothing if the sentence is unterminated.
; ucfirstAll {{Anchor|ucfirstAll}}
: The first letter of every recognized word is converted to upper case. This contrasts with the parser function {{tlg|:mw:ucfirst|alttext=ucfirst:}} which changes only the first character of the whole string passed.
: A few common HTML entities are protected; the implementation of this may mean that numerical entities passed (e.g. <code>&#38;)</code> are converted to <code>&amp;</code> form
; uprightNonlatin {{Anchor|uprightNonlatin}}
: Takes a string. Italicized non-Latin characters are un-italicized, unless they are a single Greek letter.
; zip {{Anchor|zip}}
: Combines a tuple of lists by [[convolution (computer science)|convolution]]. This is easiest to explain by example: given two lists, list1 = "a b c" and list2 = "1 2 3", then<br><code>zip(liste1, liste2, sep = " ", isep = "-", osep = "/")</code><br>outputs<br><code>a-1/b-2/c-3</code>
:* 1, 2, 3, … – Lists to be combined
:* <code>sep</code> – A separator (in Lua [[regex]] form) used to split the lists. If empty, the lists are split into individual characters.
:* <code>sep1</code>, <code>sep2</code>, <code>sep3</code>, … – Allows a different separator to be used for each list.
:* <code>isep</code> – Output separator; placed between elements which were at the ''same'' index in their lists.
:* <code>osep</code> – Output separator; placed between elements which had ''different'' original indices; i.e. between the groups joined with <code>isep</code>
=== Examples and test page ===
There are [[:de:Wikipedia:Lua/Modul/Text/Test|tests available]] {{in lang|de}} to illustrate this in practice.
== {{Anchor|Lua}} Use in another Lua module ==
All of the above functions can be called from other Lua modules. Use <code>require()</code>; the below code checks for errors loading it:
<syntaxhighlight lang="lua">
local lucky, Text = pcall( require, "Module:Text" )
if type( Text ) == "table" then
Text = Text.Text()
else
-- In the event of errors, Text is an error message.
return "<span class=\"error\">" .. Text .. "</span>"
end
</syntaxhighlight>
You may then call:
* Text.char( apply, again, accept )
* Text.concatParams( args, separator, format )
* Text.containsCJK( s )
* Text.removeDelimited( s )
* Text.getPlain( s )
* Text.isLatinRange( s )
* Text.isQuote( c )
* Text.listToText( table, format )
* Text.quote( s, lang, mode )
* Text.quoteUnquoted( s, lang, mode )
* Text.removeDiacritics( s )
* Text.sentenceTerminated( s )
* Text.ucfirstAll( s )
* Text.uprightNonlatin( s )
* <s>Text.zip(…)</s>
* ''Text.test( s )''
== Usage ==
This is a general library; use it anywhere.
== Dependencies ==
None.
== See also ==
{{String-handling templates}}
<includeonly>{{Sandbox other||
<!-- Categories below this line; interwikis at Wikidata -->
[[Category:Modules that manipulate strings]]
}}</includeonly>
6t3zuz1ysmzvo7tdol2hs2fq5946xtc
Ta̱mpi̱let:Anchor
10
1845
15618
2022-08-08T22:07:33Z
Kambai Akau
15
Created page with "{{<includeonly>safesubst:</includeonly>#invoke:anchor|main}}<noinclude> {{Documentation}} <!-- Categories go on the /doc subpage, and interwikis go on Wikidata. --> </noinclude>"
wikitext
text/x-wiki
{{<includeonly>safesubst:</includeonly>#invoke:anchor|main}}<noinclude>
{{Documentation}}
<!-- Categories go on the /doc subpage, and interwikis go on Wikidata. -->
</noinclude>
enb6c4d9v8ozj2bh2wvmo7698r1sot4
Ta̱mpi̱let:Anchor/doc
10
1846
15619
2022-08-08T22:08:50Z
Kambai Akau
15
Created page with "{{Documentation subpage}} {{lua|Module:Anchor}} {{used in system}} {{Bot use warning|bots= [[Wikipedia:Bots/Requests for approval/Cewbot 6|cewbot]]}} <!-- PLEASE ADD CATEGORIES AT THE END OF THIS PAGE, ND INTERWIKIS LINKS TO WIKIDATA --> The template <nowiki>{{</nowiki>[[{{ns:Template}}:{{BASEPAGENAME}}|{{lc:{{BASEPAGENAME}}}}]]<nowiki>}}</nowiki> inserts one or more invisible anchor names ([[Fragment identifier|HTML fragment identifiers]]) in a page. The basic format..."
wikitext
text/x-wiki
{{Documentation subpage}}
{{lua|Module:Anchor}}
{{used in system}}
{{Bot use warning|bots= [[Wikipedia:Bots/Requests for approval/Cewbot 6|cewbot]]}}
<!-- PLEASE ADD CATEGORIES AT THE END OF THIS PAGE, ND INTERWIKIS LINKS TO WIKIDATA -->
The template <nowiki>{{</nowiki>[[{{ns:Template}}:{{BASEPAGENAME}}|{{lc:{{BASEPAGENAME}}}}]]<nowiki>}}</nowiki> inserts one or more invisible anchor names ([[Fragment identifier|HTML fragment identifiers]]) in a page.
The basic format is <code><nowiki>{{anchor|Anchor name}}</nowiki></code>. To link to an anchor from within the same page, use <code><nowiki>[[#Anchor name|display text]]</nowiki></code>. {{#ifeq:{{BASEPAGENAME}}|Visible anchor| Unlike {{tl|Anchor}}, the first parameter will be visible text on the page.|}} To link to an anchor from another page, use <code><nowiki>[[Article name#Anchor name|display text]]</nowiki></code>. See [[WP:ANCHOR|Help:Section linking]] for more details.
Note that <code><nowiki>#Anchor name</nowiki></code> is not a browser instruction like <code><nowiki>#redirect</nowiki></code>.
Anchors are most useful with sections, since links to a section will not work if a section is renamed. However, anchors can be used as needed anywhere in an article. The anchor name can be arbitrary, but the first letter should generally be capitalized in keeping with header style (see [[MOS:HEAD|Manual of Style: Section headers]] for more information).
__TOC__
{{anchor|Above-Foo|Foo bar}}
== Basic format<span class="anchor" id="Foo"></span><span class="anchor" id="In-Foo"></span><span class="anchor" id="Anchor name 1"></span><span class="anchor" id="Anchor name 2"></span> ==
{{anchor|Under-Foo}}
You can define one or more anchor names, separated by |. This can be useful for alternative spellings, such as "humor" and "humour."
In general, substitute an anchor at the end of a section header:
<br /><code style="color:darkgreen;"><nowiki>== Section header{{subst:</nowiki>anchor|Anchor name}} ==</code>
which will be saved in the article as:
<br /><code>== Section header{{code|1={{Anchor|Anchor name}}}} ==</code>
Anchor names are case sensitive, so <code><nowiki>[[#Anchor name]]</nowiki></code> and <code><nowiki>[[#Anchor Name]]</nowiki></code> are not equivalent. When making an anchor, in general capitalize the first letter of the anchor name, and follow the same capitalization guidelines as headers (see [[MOS:HEAD|Manual of Style: Headers]] for more information).
== Limitations ==
{|class="wikitable floatright"
!Character
![[Character entity reference|Code]]
!Template
!Meaning
|-
|"
|<code>&quot;</code> <br /><code>&#34;</code>
|{{N/a}}
|(double) [[quotation mark]]
|-
|#
|<code>&#35;</code>
|{{tl|hash}}
|[[Number sign|hash]]
|-
||
|<code>&#124;</code>
|{{tl|!}}
|[[Vertical bar|pipe]]
|-
|=
|<code>&#61;</code>
|{{tl|{{=}}}}
|[[Equals sign|equals]]
|}
* Anchor names that contain any character shown in the table on the right will not work as expected. However, any of these characters can be replaced with the "&#" codes shown for them here. Or, the pipe symbol and equals sign can be worked around with {{tl|!}} and {{tl|{{=}}}}, respectively. Markup code such as {{tag|sup|o}} and {{tag|sub|o}} (superscript and subscript) cannot be used. Most other characters, including white space and punctuation, are not a problem.
* Anchor names must be unique on a page, and must not duplicate any heading titles. Duplicate anchors will not work as expected since the <code><nowiki>#location</nowiki></code> links go to the first anchor with that name. Duplicate anchors result in invalid HTML; you can check for duplicate anchors by running the page through the [[W3C Markup Validation Service]].
* Anchor links are case-sensitive in '''some''' browsers, so treat all anchor links as case-sensitive when creating links to them. For example, if you create the anchor with <code><nowiki>=== Baz{{subst:anchor|Bar}} ===</nowiki></code>, link to it with <code><nowiki>[[pagename#Bar]]</nowiki></code>, not <code><nowiki>[[pagename#bAR]]</nowiki></code>. However, because some browsers are '''not''' case-sensitive, do not create section titles or anchors that differ only in case from others on the page. That is, do not create both <code><nowiki>=== Abcd{{subst:anchor|Baz}} ===</nowiki></code> and <code><nowiki>=== Efgh{{subst:anchor|bAZ}} ===</nowiki></code>.
* If a template is left unsubstituted inside a section title ([[#Rationale for substitution in the header|which should never be done]]), then the template code will appear in the edit summary window each time a section edit of that section begins, as in {{nowrap|1=<code><nowiki>/* Limitations{{anchor|Issues}} */ New issue</nowiki></code>}}. The editor must manually remove the anchor template from the edit summary window, or else when they save the section, the browser may not return to the section and the section link of that edit in the history page won't work.
== Use in tables ==
{{Warning|To see how to set anchors in tables, see [[Help:Table#Section link or map link to a row anchor]]. Only use this template in tables if you need multiple anchors for the same row.}}
Anchors may be used within tables, subject to certain restrictions. The {{tlx|anchor}} template may be used in the caption and cells of a table, but not those portions of a table that are outside the caption and cells. Unlike in section headings, the template does not have to be substituted. It is used on the table's caption thus:
<syntaxhighlight lang=text>
|+ {{anchor|FooX}} A table caption
</syntaxhighlight>
and the following forms of cell are valid:
<syntaxhighlight lang=text>
!{{anchor|Foo1}} A header cell
!style="background:white;" |{{anchor|Foo2}} A header cell with styling
|{{anchor|Foo3}} A data cell
|rowspan=2 |{{anchor|Foo4}} A data cell spanning two rows
</syntaxhighlight>
You need to ensure that the {{tlx|anchor}} is not in that portion of the markup intended for the classes, styles etc. Thus, {{tlx|anchor}} cannot be placed anywhere on lines that begin with <code><nowiki>{|</nowiki></code> (start of table) or <code><nowiki>|-</nowiki></code> (new row), and the following forms of cell are not valid:
<syntaxhighlight lang=text>
!{{anchor|Foo1}} |A header cell
!style="background:white;" {{anchor|Foo2}} |A header cell with styling
|{{anchor|Foo3}} |A data cell
|rowspan=2 {{anchor|Foo4}} |A data cell spanning two rows
</syntaxhighlight>
If it is necessary for an anchor to be in any of these positions, a different technique is used—the <code>id=</code> attribute. This is placed in that portion of the markup where the classes, styles etc. may be used, as follows:
<syntaxhighlight lang=text>
{| id=FooX class=wikitable
|- id=FooY
!id=Foo1 |A header cell
!style="background:white;" id=Foo2 |A header cell with styling
|id=Foo3 |A data cell
|rowspan=2 id=Foo4 |A data cell spanning two rows
</syntaxhighlight>
The <code>id=</code> attribute may appear before, between or after any other attributes that may be present, but only one <code>id=</code> attribute may be used in each of these areas.
If <code><nowiki>{{anchor}}</nowiki></code> is placed at the start of a vertically centered cell (which is the default for tables) then links to the anchor will jump to the start of the displayed content and not the top of the cell. This may require the reader to scroll up to fully see other cells in the row. It can be avoided by instead placing <code>id=</code> where the row code starts.
== Rationale for substitution in the header<span class="anchor" id="Rationale for placement above header"></span><span class="anchor" id="substitution_reason_anchor"></span> ==
<!-- The anchor "Rationale for placement above header" is the old name of this section. -->
To show why substitution in the header is preferred, the following anchor is placed in the Basic format section header:
<br /><code style="color:darkgreen;"><nowiki>== Basic format<span class="anchor" id="Foo"></span><span class="anchor" id="In-Foo"></span> ==</nowiki></code>
Since the anchor is actually used on this documentation page, the links [[#Basic format]], [[#Foo]] and [[#In-Foo]] all work and can be tested to see the effect.
For contrast, an anchor named [[#Under-Foo]] has also been placed underneath the Basic format section header and can be clicked to illustrate how this placement hides the section title when jumping to the linked target:
<br /><code>== Basic format ==<br/><nowiki>{{anchor|Under-Foo}}</nowiki></code>
Another anchor named [[#Above-Foo]] has been placed above the section header. This anchor does work correctly, but because the anchor is technically not in the section but before it, it makes editing counter-intuitive.
<br/><code><nowiki>{{anchor|Above-Foo}}</nowiki><br/>== Basic format ==</code>
Anchors should also never be left unsubstituted within a section header, as this violates [[MOS:HEADINGS]] and causes technical complications.
== Explanations and examples ==
Reasons for the above being best practice are detailed in the following additional, numbered examples, as well as in [[#Limitations|§ Limitations]] section:
# <code style="color:darkgreen;"><nowiki>{{</nowiki>{{lc:{{BASEPAGENAME}}}}|Foo<nowiki>}}</nowiki></code> <br /> could be linked to with <code><nowiki>[[#Foo|...]]</nowiki></code> from ''within the same article'' (let's call this article "Qux"), <br /> or it could be linked to with {{nowrap|<code><nowiki>[[</nowiki>Qux#Foo<nowiki>|...]]</nowiki></code>}} from ''other'' articles and from redirects (where the ellipsis after the word "Foo" here means the words chosen to represent that link in the Wikipedia article, which, of course, could be anything).
# Anchors can be more suitable for inter-article linking than section titles are, because anchors are more stable. For example a section title {{nowrap|1=<code>== Foo ==</code>}} within a Wikipedia article titled <code>Qux</code>: <br /> {{nowrap|1=<code style="color:dimgray;"><nowiki>==</nowiki>{{sp}}<code style="color:darkgreen;"><nowiki>{{</nowiki>{{lc:{{BASEPAGENAME}}}}<nowiki>|Foo bar}}</nowiki></code>{{sp}}Foo <nowiki>==</nowiki></code>}} <br /> Here, links via {{nowrap|1=<code><nowiki>[[</nowiki>Qux#Foo bar<nowiki>]]</nowiki></code>}} would remain valid even if the section were renamed {{nowrap|1=<code><nowiki>== {{anchor|Foo bar}} On foo and its many friends ==</nowiki></code>}}<br /> A drawback of this approach (as detailed in [[#Limitations|§ Limitations]] section) is that having a template in the section header causes problems with the edit summary window each time that a section edit is done for this section. The obvious solution is to place the anchor ''before'' the section name. This also prevents browsers from hiding the section title from view when jumping to the target.<br /> {{anchor|Example-note}}{{em|Note:}} The anchor name (<code>Foo bar</code>) should be different than the section (<code>Foo</code>) to avoid invalid HTML.
# Within section titles, it may be preferable to simply use direct HTML, which may be achieved by [[WP:substitution|substitution]] like this:<br /> {{nowrap|1=<code style="color:dimgray;"><nowiki>==</nowiki>{{sp}}<code style="color:darkgreen;"><nowiki>{{subst:anchor|Foo bar}}</nowiki></code> Foo <nowiki>==</nowiki></code>}}<br />which is saved into the article as:<br /> {{nowrap|1=<code style="color:dimgray;"><nowiki>==</nowiki>{{sp}}<code style="color:darkgreen;">{{code|1={{anchor|Foo bar}}}}</code> Foo <nowiki>==</nowiki></code>}}<br />This provides the stable, linkable anchor, but without the edit problem.<br /> The [[#Example-note|Note]] above still applies. See [[#Limitations|§ Limitations]] for details.
# The template can be used to create multiple anchors with a single call. For example, <br /> {{nowrap|1=<code style="color:darkgreen;"><nowiki>{{</nowiki>{{lc:{{BASEPAGENAME}}}}<nowiki>|Foo|Bar|baz}}</nowiki></code>}} <br /> will create three anchors that can then be linked to with <code><nowiki>[[#Foo]]</nowiki></code>, <code><nowiki>[[#Bar]]</nowiki></code> and <code><nowiki>[[#baz]]</nowiki></code>.
# Here is a more literal example:<br /> Say you wrote an article about a recently discovered Indo-European language called "Yish Yash". The title of your article would probably be "Yish Yash language" (if there were already an article titled "Yish Yash" that covered the culture generally). Now let's say that within your article you wished to have a section titled "The placement of the tongue when producing Yish Yash vowel sounds". You would create a section heading that looked like this:<br />{{nowrap|1=<code><nowiki>== The placement of the tongue when producing Yish Yash vowel sounds == </nowiki></code>}}<br />Let's say that you then finished up writing and saved the new article. Now, say you came across another article on Wikipedia titled "Proto-Indo-European vowels" which happened to have a section on the unique tongue placement used in Yish Yash. You decided it might be useful here for readers to be able to quickly access the section of your article on Yish Yash tongue placement when forming vowels; however, you don't want to send them to the beginning of the whole article on the Yish Yash language (you wanted to target them more specifically). So you create a link in the Proto-Indo European vowel article to the ''section'' within ''your'' article on the placement of the tongue in Yish Yash: you might do so by editing the text of the Proto-Indo-European vowel article and adding something like this to a relevant place within it:<br /><code><nowiki>[[Yish Yash language#The placement of the tongue when producing Yish Yash vowel sounds|Yish Yash tongue placement]] is particularly interesting.</nowiki></code><br />That is some ''really'' long code, but it would create a direct link to the relevant section of the new Yish Yash language article and would look like this in the article on Proto-Indo-European vowels:<br /> "...<span style="color:blue;">Yish Yash tongue placement</span> is particularly interesting..." <br /> Now let's say another editor came along and wished to change the heading of this section of your article for some legitimate reason—perhaps to "Yish Yash vowels and the tongue". They could do so by editing your article and making the section heading look like this:<br />{{nowrap|1=<code><nowiki>== Yish Yash vowels and the tongue ==</nowiki></code>}}<br />Unbeknownst to that editor, this would mean the link in the article on Proto-Indo-European vowels that you created earlier would now go by default to the top of the Yish Yash article instead of your carefully-chosen subsection! However, if an ''anchor'' were placed within the section heading of the Yish Yash article either when you created it or when the other editor came along and changed it—perhaps something like this:<br />{{nowrap|1= <code><nowiki>== {{subst:anchor|Tongue}} The placement of the tongue when producing Yish Yash vowel sounds ==</nowiki></code>}}<br />or like this:<br />{{nowrap|1=<code><nowiki>== {{subst:anchor|Tongue}} Yish Yash vowel–tongue interaction ==</nowiki></code>}}<br />and the text of the article on Proto-Indo-European vowels had been changed by you to something like this:<br />{{nowrap|1=<code><nowiki>[[Yish Yash language#Tongue|Yish Yash tongue placement]] is particularly interesting.</nowiki></code>}}<br />then the link from the Proto-Indo-European article would continue to point to the relevant ''section'' of the Yish Yash article, even if the wording of the section heading there had changed completely and without the reader having to sort it out for themselves. The use of anchors can make for a cleaner, more efficient Wikipedia reading experience where section headings are changed—which they not infrequently are.
== TemplateData ==
{{TemplateDataHeader}}
<templatedata>{
"description": "Add HTML anchors to a page. Make a link to your anchor with [[#Anchor on same page]] or [[Page you're linking to#Anchor on that page]]. Every anchor on a page must be different. Do not use the characters \" or # or | or =.",
"params": {
"1": {
"label": "First anchor",
"type": "string",
"required": true,
"description": "Name of anchor",
"example": "Anchor name 1"
},
"2": {
"label": "Second anchor",
"type": "string",
"required": false,
"description": "Name of anchor"
},
"3": {
"label": "Third anchor",
"type": "string",
"required": false,
"description": "Name of anchor"
},
"4": {
"label": "Fourth anchor",
"description": "To add more than four anchors, go to source editing.",
"type": "string",
"required": false
}
},
"format": "inline"
}</templatedata>
== See also ==
* {{#ifeq:{{BASEPAGENAME}}|Visible anchor|{{tl|Anchor}}|{{tl|Visible anchor}}}}
* {{tl|Anchored list}}
* {{tl|Anchor comment}}
* {{tl|Shortcut}}
* [[WP:ANCHOR]]
* [[WP:TARGET]]
* {{tl|Section link}}
<includeonly>{{Sandbox other||
<!-- CATEGORIES HERE, AND INTERWIKIS TO WIKIDATA, THANKS -->
[[Category:Wikipedia formatting and function templates]]
[[Category:Wikipedia section templates]]
[[Category:Templates with no visible output]]
}}</includeonly>
4zwp682v8rgg2drxrph3wdxr7u2f1xn
Module:Anchor
828
1847
15620
2022-08-08T22:12:20Z
Kambai Akau
15
Created page with "-- This module implements {{anchor}}. local getArgs = require('Module:Arguments').getArgs local tableTools = require('Module:TableTools') local p = {} function p.main(frame) -- Get the positional arguments from #invoke, remove any nil values, -- and pass them to p._main. local args = getArgs(frame) local argArray = tableTools.compressSparseArray(args) return p._main(unpack(argArray)) end function p._main(...) -- Generate the list of anchors. local anchors = {...."
Scribunto
text/plain
-- This module implements {{anchor}}.
local getArgs = require('Module:Arguments').getArgs
local tableTools = require('Module:TableTools')
local p = {}
function p.main(frame)
-- Get the positional arguments from #invoke, remove any nil values,
-- and pass them to p._main.
local args = getArgs(frame)
local argArray = tableTools.compressSparseArray(args)
return p._main(unpack(argArray))
end
function p._main(...)
-- Generate the list of anchors.
local anchors = {...}
local ret = {}
for _, anchor in ipairs(anchors) do
ret[#ret + 1] = '<span class="anchor" id="' .. anchor .. '"></span>'
end
return table.concat(ret)
end
return p
qn9l8z10vmc8ghld7804a9aaffg6g8o
Module:Anchor/doc
828
1848
15621
2022-08-08T22:12:57Z
Kambai Akau
15
Created page with "{{used in system}} {{Module rating|protected}} This module implements {{tl|anchor}}. Please see the [[Template:Anchor/doc]] page for documentation."
wikitext
text/x-wiki
{{used in system}}
{{Module rating|protected}}
This module implements {{tl|anchor}}. Please see the [[Template:Anchor/doc]] page for documentation.
gx8pkgsvgf4ofr9xh3m80gc0gr3kivc
Module:Anchor/sandbox
828
1849
15622
2022-08-08T22:14:24Z
Kambai Akau
15
Created page with "-- This module implements {{anchor}}. local p = {} function p.main(frame) -- Algorithm: -- Step 1. Create a local variable to store the anchors, -- initialised to the empty string. local ret = "" -- Step 2. Create a iterator variable, initialised to 1. local i = 1 -- Step 3. While there exists a positional argument referenced by -- the iterator variable, do the following: while not (frame.args[i] == nil) do -- (a) Add a empty span whose id is t..."
Scribunto
text/plain
-- This module implements {{anchor}}.
local p = {}
function p.main(frame)
-- Algorithm:
-- Step 1. Create a local variable to store the anchors,
-- initialised to the empty string.
local ret = ""
-- Step 2. Create a iterator variable, initialised to 1.
local i = 1
-- Step 3. While there exists a positional argument referenced by
-- the iterator variable, do the following:
while not (frame.args[i] == nil)
do
-- (a) Add a empty span whose id is the value of the argument
-- to the local variable storing the anchors;
ret = ret .. '<span id="' .. frame.args[i] .. '"></span>'
-- (b) Increment the iterator variable.
i = i + 1
end
-- Step 4. Return the value of the local variable storing the anchors.
return ret
end
return p
o30w7crnn78viie78lnp34ifpmezewk
Module:Anchor/testcases
828
1850
15623
2022-08-08T22:15:21Z
Kambai Akau
15
Created page with "-- Unit tests for [[Module:Anchor]]. Click talk page to run tests. local anchor = require('Module:Anchor') -- the module to be tested local ScribuntoUnit = require('Module:ScribuntoUnit') local suite = ScribuntoUnit:new() function suite:testmain() self:assertResultEquals('<span class="anchor" id="foo"></span>', '{{#invoke:Anchor|main|foo}}') self:assertResultEquals('<span class="anchor" id="foo"></span><span class="anchor" id="bar"></span>', '{{#invoke:Anchor|main|fo..."
Scribunto
text/plain
-- Unit tests for [[Module:Anchor]]. Click talk page to run tests.
local anchor = require('Module:Anchor') -- the module to be tested
local ScribuntoUnit = require('Module:ScribuntoUnit')
local suite = ScribuntoUnit:new()
function suite:testmain()
self:assertResultEquals('<span class="anchor" id="foo"></span>', '{{#invoke:Anchor|main|foo}}')
self:assertResultEquals('<span class="anchor" id="foo"></span><span class="anchor" id="bar"></span>', '{{#invoke:Anchor|main|foo|bar}}')
self:assertResultEquals('<span class="anchor" id="foo"></span>', '{{#invoke:Anchor|main|3=foo}}')
self:assertResultEquals('<span class="anchor" id="foo"></span>', '{{#invoke:Anchor|main| foo }}')
self:assertResultEquals('<span class="anchor" id="foo"></span>', '{{#invoke:Anchor|main|25=foo}}')
end
function suite:test_main()
self:assertResultEquals('<span class="anchor" id="foo"></span>', anchor._main('foo'))
self:assertResultEquals('<span class="anchor" id="foo"></span><span class="anchor" id="bar"></span>', anchor._main('foo', 'bar'))
end
function suite:testAgainstTemplate()
self:assertSameResult('{{anchor|foo}}', '{{#invoke:Anchor|main|foo}}')
self:assertSameResult('{{anchor|foo|bar}}', '{{#invoke:Anchor|main|foo|bar}}')
self:assertSameResult('{{anchor|3=foo}}', '{{#invoke:Anchor|main|3=foo}}')
end
return suite
c3ani0ckntw2jqv6cqgs789427p868z
Module:Namespace detect/data
828
1851
15624
2022-08-08T22:27:42Z
Kambai Akau
15
Created page with "-------------------------------------------------------------------------------- -- Namespace detect data -- -- This module holds data for [[Module:Namespace detect]] to be loaded per -- -- page, rather than per #invoke, for performance reasons. -- -------------------------------------------------------------------------------- local cfg = require('Module:Namespace detect/config') local function..."
Scribunto
text/plain
--------------------------------------------------------------------------------
-- Namespace detect data --
-- This module holds data for [[Module:Namespace detect]] to be loaded per --
-- page, rather than per #invoke, for performance reasons. --
--------------------------------------------------------------------------------
local cfg = require('Module:Namespace detect/config')
local function addKey(t, key, defaultKey)
if key ~= defaultKey then
t[#t + 1] = key
end
end
-- Get a table of parameters to query for each default parameter name.
-- This allows wikis to customise parameter names in the cfg table while
-- ensuring that default parameter names will always work. The cfg table
-- values can be added as a string, or as an array of strings.
local defaultKeys = {
'main',
'talk',
'other',
'subjectns',
'demospace',
'demopage'
}
local argKeys = {}
for i, defaultKey in ipairs(defaultKeys) do
argKeys[defaultKey] = {defaultKey}
end
for defaultKey, t in pairs(argKeys) do
local cfgValue = cfg[defaultKey]
local cfgValueType = type(cfgValue)
if cfgValueType == 'string' then
addKey(t, cfgValue, defaultKey)
elseif cfgValueType == 'table' then
for i, key in ipairs(cfgValue) do
addKey(t, key, defaultKey)
end
end
cfg[defaultKey] = nil -- Free the cfg value as we don't need it any more.
end
local function getParamMappings()
--[[
-- Returns a table of how parameter names map to namespace names. The keys
-- are the actual namespace names, in lower case, and the values are the
-- possible parameter names for that namespace, also in lower case. The
-- table entries are structured like this:
-- {
-- [''] = {'main'},
-- ['wikipedia'] = {'wikipedia', 'project', 'wp'},
-- ...
-- }
--]]
local mappings = {}
local mainNsName = mw.site.subjectNamespaces[0].name
mainNsName = mw.ustring.lower(mainNsName)
mappings[mainNsName] = mw.clone(argKeys.main)
mappings['talk'] = mw.clone(argKeys.talk)
for nsid, ns in pairs(mw.site.subjectNamespaces) do
if nsid ~= 0 then -- Exclude main namespace.
local nsname = mw.ustring.lower(ns.name)
local canonicalName = mw.ustring.lower(ns.canonicalName)
mappings[nsname] = {nsname}
if canonicalName ~= nsname then
table.insert(mappings[nsname], canonicalName)
end
for _, alias in ipairs(ns.aliases) do
table.insert(mappings[nsname], mw.ustring.lower(alias))
end
end
end
return mappings
end
return {
argKeys = argKeys,
cfg = cfg,
mappings = getParamMappings()
}
ojp6d3pc8mql5nufaqdg576c9so3479
Module:Namespace detect/data/doc
828
1852
15625
2022-08-08T22:27:58Z
Kambai Akau
15
Created page with "{{Module rating|protected}} {{used in system}} This is a data page for [[Module:Namespace detect]] and [[Module:Category handler/shared]]. It is loaded by the main module using mw.loadData, which means it is only processed once per page rather than once per #invoke."
wikitext
text/x-wiki
{{Module rating|protected}}
{{used in system}}
This is a data page for [[Module:Namespace detect]] and [[Module:Category handler/shared]]. It is loaded by the main module using mw.loadData, which means it is only processed once per page rather than once per #invoke.
ioepg46hakjdvq3ucl901rubudmi4v3
Module:Namespace detect
828
1853
15626
2022-08-08T22:30:10Z
Kambai Akau
15
Created page with "--[[ -------------------------------------------------------------------------------- -- -- -- NAMESPACE DETECT -- -- -- -- This module implements the {{namespace detect}} template in Lua, with a -- -- few improvements: all namespaces and all namespace aliases are..."
Scribunto
text/plain
--[[
--------------------------------------------------------------------------------
-- --
-- NAMESPACE DETECT --
-- --
-- This module implements the {{namespace detect}} template in Lua, with a --
-- few improvements: all namespaces and all namespace aliases are supported, --
-- and namespace names are detected automatically for the local wiki. The --
-- module can also use the corresponding subject namespace value if it is --
-- used on a talk page. Parameter names can be configured for different wikis --
-- by altering the values in the "cfg" table in --
-- Module:Namespace detect/config. --
-- --
--------------------------------------------------------------------------------
--]]
local data = mw.loadData('Module:Namespace detect/data')
local argKeys = data.argKeys
local cfg = data.cfg
local mappings = data.mappings
local yesno = require('Module:Yesno')
local mArguments -- Lazily initialise Module:Arguments
local mTableTools -- Lazily initilalise Module:TableTools
local ustringLower = mw.ustring.lower
local p = {}
local function fetchValue(t1, t2)
-- Fetches a value from the table t1 for the first key in array t2 where
-- a non-nil value of t1 exists.
for i, key in ipairs(t2) do
local value = t1[key]
if value ~= nil then
return value
end
end
return nil
end
local function equalsArrayValue(t, value)
-- Returns true if value equals a value in the array t. Otherwise
-- returns false.
for i, arrayValue in ipairs(t) do
if value == arrayValue then
return true
end
end
return false
end
function p.getPageObject(page)
-- Get the page object, passing the function through pcall in case of
-- errors, e.g. being over the expensive function count limit.
if page then
local success, pageObject = pcall(mw.title.new, page)
if success then
return pageObject
else
return nil
end
else
return mw.title.getCurrentTitle()
end
end
-- Provided for backward compatibility with other modules
function p.getParamMappings()
return mappings
end
local function getNamespace(args)
-- This function gets the namespace name from the page object.
local page = fetchValue(args, argKeys.demopage)
if page == '' then
page = nil
end
local demospace = fetchValue(args, argKeys.demospace)
if demospace == '' then
demospace = nil
end
local subjectns = fetchValue(args, argKeys.subjectns)
local ret
if demospace then
-- Handle "demospace = main" properly.
if equalsArrayValue(argKeys.main, ustringLower(demospace)) then
ret = mw.site.namespaces[0].name
else
ret = demospace
end
else
local pageObject = p.getPageObject(page)
if pageObject then
if pageObject.isTalkPage then
-- Get the subject namespace if the option is set,
-- otherwise use "talk".
if yesno(subjectns) then
ret = mw.site.namespaces[pageObject.namespace].subject.name
else
ret = 'talk'
end
else
ret = pageObject.nsText
end
else
return nil -- return nil if the page object doesn't exist.
end
end
ret = ret:gsub('_', ' ')
return ustringLower(ret)
end
function p._main(args)
-- Check the parameters stored in the mappings table for any matches.
local namespace = getNamespace(args) or 'other' -- "other" avoids nil table keys
local params = mappings[namespace] or {}
local ret = fetchValue(args, params)
--[[
-- If there were no matches, return parameters for other namespaces.
-- This happens if there was no text specified for the namespace that
-- was detected or if the demospace parameter is not a valid
-- namespace. Note that the parameter for the detected namespace must be
-- completely absent for this to happen, not merely blank.
--]]
if ret == nil then
ret = fetchValue(args, argKeys.other)
end
return ret
end
function p.main(frame)
mArguments = require('Module:Arguments')
local args = mArguments.getArgs(frame, {removeBlanks = false})
local ret = p._main(args)
return ret or ''
end
function p.table(frame)
--[[
-- Create a wikitable of all subject namespace parameters, for
-- documentation purposes. The talk parameter is optional, in case it
-- needs to be excluded in the documentation.
--]]
-- Load modules and initialise variables.
mTableTools = require('Module:TableTools')
local namespaces = mw.site.namespaces
local cfg = data.cfg
local useTalk = type(frame) == 'table'
and type(frame.args) == 'table'
and yesno(frame.args.talk) -- Whether to use the talk parameter.
-- Get the header names.
local function checkValue(value, default)
if type(value) == 'string' then
return value
else
return default
end
end
local nsHeader = checkValue(cfg.wikitableNamespaceHeader, 'Namespace')
local aliasesHeader = checkValue(cfg.wikitableAliasesHeader, 'Aliases')
-- Put the namespaces in order.
local mappingsOrdered = {}
for nsname, params in pairs(mappings) do
if useTalk or nsname ~= 'talk' then
local nsid = namespaces[nsname].id
-- Add 1, as the array must start with 1; nsid 0 would be lost otherwise.
nsid = nsid + 1
mappingsOrdered[nsid] = params
end
end
mappingsOrdered = mTableTools.compressSparseArray(mappingsOrdered)
-- Build the table.
local ret = '{| class="wikitable"'
.. '\n|-'
.. '\n! ' .. nsHeader
.. '\n! ' .. aliasesHeader
for i, params in ipairs(mappingsOrdered) do
for j, param in ipairs(params) do
if j == 1 then
ret = ret .. '\n|-'
.. '\n| <code>' .. param .. '</code>'
.. '\n| '
elseif j == 2 then
ret = ret .. '<code>' .. param .. '</code>'
else
ret = ret .. ', <code>' .. param .. '</code>'
end
end
end
ret = ret .. '\n|-'
.. '\n|}'
return ret
end
return p
j7kygz1y56jpz4doq0m2c6x1td5d8ar
Module:Namespace detect/doc
828
1854
15627
2022-08-08T22:31:19Z
Kambai Akau
15
Created page with "{{Used in system}} {{Module rating|protected}} This module allows you to output different text depending on the [[WP:NAMESPACE|namespace]] that a given page is in. It is a [[WP:Lua|Lua]] implementation of the {{tl|namespace detect}} template, with a few improvements: all namespaces and all namespace aliases are supported, and namespace names are detected automatically for the local wiki. == Usage == <pre> {{#invoke: Namespace detect | main | page = <!-- p..."
wikitext
text/x-wiki
{{Used in system}}
{{Module rating|protected}}
This module allows you to output different text depending on the [[WP:NAMESPACE|namespace]] that a given page is in. It is a [[WP:Lua|Lua]] implementation of the {{tl|namespace detect}} template, with a few improvements: all namespaces and all namespace aliases are supported, and namespace names are detected automatically for the local wiki.
== Usage ==
<pre>
{{#invoke: Namespace detect | main
| page = <!-- page to detect namespace for, if not the current page -->
| main = <!-- text to return for the main namespace -->
| talk = <!-- text to return for talk namespaces -->
<!-- text to return for specific subject namespaces -->
| portal =
| category =
| user =
| wikipedia =
| mediawiki =
| book =
| timedtext =
| template =
| special =
| media =
| file =
| image =
| help =
| module =
| other = <!-- text to return for unspecified namespaces -->
| demospace = <!-- namespace to display text for -->
| subjectns = <!-- set to "yes" to treat talk pages as the corresponding subject page -->
}}
</pre>
== Parameters ==
* '''main''' - text to return if the page is in the main namespace.
* '''talk''' - text to return if the page is in a talk namespace. This can be any talk namespace - it will match any of "Talk:", "Wikipedia talk:", "User talk:", etc.
* Subject namespace parameters, e.g. '''wikipedia''', '''user''', '''file'''... - the text to return if the page is in the corresponding namespace. This module accepts all subject namespaces as parameters, including [[Wikipedia:Namespace#Aliases|namespace aliases]] and [[Wikipedia:Namespace#Virtual namespaces|virtual namespaces]]. See below for a list of supported values.
* '''other''' - text to return if no parameters for the page's namespace were specified. This text is also returned if {{para|demospace}} is set to an invalid namespace value.
* '''subjectns''' - if on a talk page, use the corresponding subject page. Can be set with values of "yes", "y", "true" or "1".
* '''demopage''' - specifies a page to detect the namespace of. If not specified, and if the {{para|demospace}} parameter is not set, then the module uses the current page.
* '''demospace''' - force the module to behave as if the page was in the specified namespace. Often used for demonstrations.
=== Namespace parameters ===
Possible values for subject namespace parameters are as follows:
{{#invoke:Namespace detect|table}}
== Table function ==
Use the following to display a table with the different possible namespace parameters:
{{#invoke:Namespace detect|table|talk=''yes''}}
To include the parameter for talk namespaces, use {{para|talk|yes}}.
== Porting to different wikis ==
This module is designed to be portable. To use it on a different wiki, all you need to do is to change the values in [[Module:Namespace detect/config]]. Instructions are available on that page.
== Technical details ==
The module uses a data page at [[Module:Namespace detect/data]]. This page is loaded with [[mw:Extension:Scribunto/Lua reference manual#mw.loadData|mw.loadData]], which means it is processed once per page rather than once per #invoke. This was done for performance reasons.
my8cstvs2770xe6eq9z082ck9brwfaz
Module:Namespace detect/sandbox
828
1855
15628
2022-08-08T22:31:54Z
Kambai Akau
15
Created page with "--[[ -------------------------------------------------------------------------------- -- -- -- NAMESPACE DETECT -- -- -- -- This module implements the {{namespace detect}} template in Lua, with a -- -- few improvements: all namespaces and all namespace aliases are..."
Scribunto
text/plain
--[[
--------------------------------------------------------------------------------
-- --
-- NAMESPACE DETECT --
-- --
-- This module implements the {{namespace detect}} template in Lua, with a --
-- few improvements: all namespaces and all namespace aliases are supported, --
-- and namespace names are detected automatically for the local wiki. The --
-- module can also use the corresponding subject namespace value if it is --
-- used on a talk page. Parameter names can be configured for different wikis --
-- by altering the values in the "cfg" table in --
-- Module:Namespace detect/config. --
-- --
--------------------------------------------------------------------------------
--]]
local data = mw.loadData('Module:Namespace detect/data')
local argKeys = data.argKeys
local cfg = data.cfg
local mappings = data.mappings
local yesno = require('Module:Yesno')
local mArguments -- Lazily initialise Module:Arguments
local mTableTools -- Lazily initilalise Module:TableTools
local ustringLower = mw.ustring.lower
local p = {}
local function fetchValue(t1, t2)
-- Fetches a value from the table t1 for the first key in array t2 where
-- a non-nil value of t1 exists.
for i, key in ipairs(t2) do
local value = t1[key]
if value ~= nil then
return value
end
end
return nil
end
local function equalsArrayValue(t, value)
-- Returns true if value equals a value in the array t. Otherwise
-- returns false.
for i, arrayValue in ipairs(t) do
if value == arrayValue then
return true
end
end
return false
end
function p.getPageObject(page)
-- Get the page object, passing the function through pcall in case of
-- errors, e.g. being over the expensive function count limit.
if page then
local success, pageObject = pcall(mw.title.new, page)
if success then
return pageObject
else
return nil
end
else
return mw.title.getCurrentTitle()
end
end
-- Provided for backward compatibility with other modules
function p.getParamMappings()
return mappings
end
local function getNamespace(args)
-- This function gets the namespace name from the page object.
local page = fetchValue(args, argKeys.demopage)
if page == '' then
page = nil
end
local demospace = fetchValue(args, argKeys.demospace)
if demospace == '' then
demospace = nil
end
local subjectns = fetchValue(args, argKeys.subjectns)
local ret
if demospace then
-- Handle "demospace = main" properly.
if equalsArrayValue(argKeys.main, ustringLower(demospace)) then
ret = mw.site.namespaces[0].name
else
ret = demospace
end
else
local pageObject = p.getPageObject(page)
if pageObject then
if pageObject.isTalkPage then
-- Get the subject namespace if the option is set,
-- otherwise use "talk".
if yesno(subjectns) then
ret = mw.site.namespaces[pageObject.namespace].subject.name
else
ret = 'talk'
end
else
ret = pageObject.nsText
end
else
return nil -- return nil if the page object doesn't exist.
end
end
ret = ret:gsub('_', ' ')
return ustringLower(ret)
end
function p._main(args)
-- Check the parameters stored in the mappings table for any matches.
local namespace = getNamespace(args) or 'other' -- "other" avoids nil table keys
local params = mappings[namespace] or {}
local ret = fetchValue(args, params)
--[[
-- If there were no matches, return parameters for other namespaces.
-- This happens if there was no text specified for the namespace that
-- was detected or if the demospace parameter is not a valid
-- namespace. Note that the parameter for the detected namespace must be
-- completely absent for this to happen, not merely blank.
--]]
if ret == nil then
ret = fetchValue(args, argKeys.other)
end
return ret
end
function p.main(frame)
mArguments = require('Module:Arguments')
local args = mArguments.getArgs(frame, {removeBlanks = false})
local ret = p._main(args)
return ret or ''
end
function p.table(frame)
--[[
-- Create a wikitable of all subject namespace parameters, for
-- documentation purposes. The talk parameter is optional, in case it
-- needs to be excluded in the documentation.
--]]
-- Load modules and initialise variables.
mTableTools = require('Module:TableTools')
local namespaces = mw.site.namespaces
local cfg = data.cfg
local useTalk = type(frame) == 'table'
and type(frame.args) == 'table'
and yesno(frame.args.talk) -- Whether to use the talk parameter.
-- Get the header names.
local function checkValue(value, default)
if type(value) == 'string' then
return value
else
return default
end
end
local nsHeader = checkValue(cfg.wikitableNamespaceHeader, 'Namespace')
local aliasesHeader = checkValue(cfg.wikitableAliasesHeader, 'Aliases')
-- Put the namespaces in order.
local mappingsOrdered = {}
for nsname, params in pairs(mappings) do
if useTalk or nsname ~= 'talk' then
local nsid = namespaces[nsname].id
-- Add 1, as the array must start with 1; nsid 0 would be lost otherwise.
nsid = nsid + 1
mappingsOrdered[nsid] = params
end
end
mappingsOrdered = mTableTools.compressSparseArray(mappingsOrdered)
-- Build the table.
local ret = '{| class="wikitable"'
.. '\n|-'
.. '\n! ' .. nsHeader
.. '\n! ' .. aliasesHeader
for i, params in ipairs(mappingsOrdered) do
for j, param in ipairs(params) do
if j == 1 then
ret = ret .. '\n|-'
.. '\n| <code>' .. param .. '</code>'
.. '\n| '
elseif j == 2 then
ret = ret .. '<code>' .. param .. '</code>'
else
ret = ret .. ', <code>' .. param .. '</code>'
end
end
end
ret = ret .. '\n|-'
.. '\n|}'
return ret
end
return p
j7kygz1y56jpz4doq0m2c6x1td5d8ar
Module:Namespace detect/testcases
828
1856
15629
2022-08-08T22:34:24Z
Kambai Akau
15
Created page with "-- Example Unit tests for [[Module:Namespace detect]]. Click talk page to run tests. local p = require('Module:UnitTests') local nsDetect = require('Module:Namespace detect/sandbox')._main function p:test_template_testcases_page() self:preprocess_equals_many('{{#invoke:Namespace detect/sandbox|main', '}}', { {[[ | main = Article text. | talk = Any talk page text. | user = User page text. | other = Other pages text.]], 'Any talk page text.'}, {[[ | ma..."
Scribunto
text/plain
-- Example Unit tests for [[Module:Namespace detect]]. Click talk page to run tests.
local p = require('Module:UnitTests')
local nsDetect = require('Module:Namespace detect/sandbox')._main
function p:test_template_testcases_page()
self:preprocess_equals_many('{{#invoke:Namespace detect/sandbox|main', '}}', {
{[[
| main = Article text.
| talk = Any talk page text.
| user = User page text.
| other = Other pages text.]], 'Any talk page text.'},
{[[
| main = Article text.
| talk = Any talk page text.
| user = User page text.
| other = Other pages text.
| demospace = ]], 'Any talk page text.'},
{[[
| main = Article text.
| talk = Any talk page text.
| user = User page text.
| other = Other pages text.
| demospace = main]], 'Article text.'},
{[[
| main = Article text.
| talk = Any talk page text.
| user = User page text.
| other = Other pages text.
| demospace = talk]], 'Any talk page text.'},
{[[
| main = Article text.
| talk = Any talk page text.
| user = User page text.
| other = Other pages text.
| demospace = help talk]], 'Other pages text.'},
{[[
| main = Article text.
| talk = Any talk page text.
| user = User page text.
| other = Other pages text.
| page = ]], 'Any talk page text.'},
{[[
| main = Article text.
| talk = Any talk page text.
| user = User page text.
| other = Other pages text.
| page = Example/test]], 'Article text.'},
{[[
| main = Article text.
| talk = Any talk page text.
| user = User page text.
| other = Other pages text.
| page = User:Example/test]], 'User page text.'},
{[[
| main = Article text.
| talk = Any talk page text.
| user = User page text.
| other = Other pages text.
| page = User talk:Example/test]], 'Any talk page text.'},
})
end
function p:test_new()
self:preprocess_equals_many('{{#invoke:Namespace detect/sandbox|main', '}}', {
{[[]], ''},
{[[
| main = Article text.
| talk =
| user = User page text.
| other = Other pages text.
| page = User talk:Example/test]], ''},
{[[
| main = Article text.
| talk =
| user = User page text.
| other = Other pages text.
| page = User:Example/test]], 'User page text.'},
{[[
| main = Article text.
| TALK = Talk page text.
| user = User page text.
| other = Other pages text.
| page = User talk:Example/test]], 'Other pages text.'},
{[[
| main = Article text.
| talk = talk page text with a delete character here: ""
| user = User page text.
| other = Other pages text.
| page = User talk:Example/test]], 'talk page text with a delete character here: ""'},
{[[
| main = Article text.
| talk = Talk page text.
| wikipedia = Wikipedia page text.
| user = User page text.
| other = Other pages text.
| demospace = Wikipedia ]], 'Wikipedia page text.'},
{[[
| main =
| talk = talk page text with a delete character here: ""
| user = User page text.
| other = Other pages text.
| page = Foo]], ''},
{[[
| main = Article text.
| talk = talk page text with a delete character here: ""
| user =
| other = Other pages text.
| page = User:Example/test]], ''},
{[[
| main = Article text.
| talk = talk page text with a delete character here: ""
| user = User page text.
| book = Book page text.
| other = Other pages text.
| page = Book:Foo]], 'Book page text.'},
{[[
| main = Article text.
| talk = talk page text with a delete character here: ""
| user = User page text.
| image = Image page text.
| other = Other pages text.
| page = File:Foo]], 'Image page text.'},
{[[
| main = Article text.
| talk = talk page text with a delete character here: ""
| user = User page text.
| file = File page text.
| other = Other pages text.
| page = File:Foo]], 'File page text.'},
{[[
| main = Article text.
| talk = talk page text with a delete character here: ""
| user = User page text.
| image =
| other = Other pages text.
| page = File:Foo]], ''},
{[[
| main = Article text.
| talk = talk page text with a delete character here: ""
| user = User page text.
| file =
| other = Other pages text.
| page = File:Foo]], ''},
{[[
| main = Article text.
| talk = talk page text with a delete character here: ""
| user = User page text.
| mediawiki = MediaWiki page text.
| other = Other pages text.
| page = MediaWiki:Foo]], 'MediaWiki page text.'},
{[[
| main = Article text.
| talk = talk page text with a delete character here: ""
| user = User page text.
| template = Template page text.
| other = Other pages text.
| page = Template:Foo]], 'Template page text.'},
{[[
| main = Article text.
| talk = talk page text with a delete character here: ""
| help = Help page text.
| image = Image page text.
| other = Other pages text.
| page = Help:Foo]], 'Help page text.'},
{[[
| main = Article text.
| talk = talk page text with a delete character here: ""
| user = User page text.
| category = Category page text.
| other = Other pages text.
| page = Category:Foo]], 'Category page text.'},
{[[
| main = Article text.
| talk = talk page text with a delete character here: ""
| user = User page text.
| portal = Portal page text.
| other = Other pages text.
| page = Portal:Foo]], 'Portal page text.'},
{[[
| main = Article text.
| talk = talk page text with a delete character here: ""
| user = User page text.
| nonexistent = Nonexistent namespace page text.
| other = Other pages text.
| page = Nonexistent:Foo]], 'Article text.'},
{[[
| main = Article text.
| talk = talk page text with a delete character here: ""
| user = User page text.
| nonexistent = Nonexistent namespace page text.
| other = Other pages text.
| demospace = Nonexistent]], 'Other pages text.'},
})
end
function p:test_bad_titles()
self:preprocess_equals_many('{{#invoke:Namespace detect/sandbox|main', '}}', {
{[==[
| main = Article text.
| talk = Any talk page text.
| user = User page text.
| other = Other pages text.
| page = Talk:Square [[brackets]] aren't allowed in page titles]==], 'Other pages text.'},
})
end
function p:test_subject_namespaces()
self:preprocess_equals_many('{{#invoke:Namespace detect/sandbox|main', '}}', {
{[==[
| main = Article text.
| talk = Any talk page text.
| user = User page text.
| other = Other pages text.
| page = Talk:Foo]==], 'Any talk page text.'},
{[==[
| subjectns = yes
| main = Article text.
| talk = Any talk page text.
| user = User page text.
| other = Other pages text.
| page = Talk:Foo]==], 'Article text.'},
{[==[
| subjectns = no
| main = Article text.
| talk = Any talk page text.
| user = User page text.
| other = Other pages text.
| page = Talk:Foo]==], 'Any talk page text.'},
{[==[
| subjectns = yes
| main = Article text.
| talk = Any talk page text.
| user = User page text.
| other = Other pages text.
| page = Wikipedia talk:Foo]==], 'Other pages text.'},
})
end
function p:test_multiple_word_namespaces()
self:preprocess_equals_many('{{#invoke:Namespace detect/sandbox|main', '}}', {
{[==[
| main = Article text.
| talk = Any talk page text.
| user = User page text.
| education program = Education Program pages text.
| other = Other pages text.
| page = Education Program:Foo]==], 'Education Program pages text.'},
})
end
function p:test_returning_false()
self:equals('Return false from article', nsDetect{page = 'Wikipedia', main = false}, false)
self:equals('Return false from talk page', nsDetect{page = 'Talk:Wikipedia', main = true, talk = false}, false)
self:equals('Return false from category page', nsDetect{page = 'Category:Wikipedians', main = true, talk = true, category = false}, false)
self:equals('Return false from other page', nsDetect{page = 'Template:Pagetype', main = true, talk = true, other = false}, false)
end
return p
qj90kaq4elnrxbuz5ip701pb4t2zg4h
Ta̱mpi̱let:Namespace detect
10
1857
15630
2022-08-08T22:35:42Z
Kambai Akau
15
Created page with "{{SAFESUBST:<noinclude />#invoke:Namespace detect|main}}<noinclude> {{documentation}} <!-- Categories go on the /doc subpage, and interwikis go on Wikidata. --> </noinclude>"
wikitext
text/x-wiki
{{SAFESUBST:<noinclude />#invoke:Namespace detect|main}}<noinclude>
{{documentation}}
<!-- Categories go on the /doc subpage, and interwikis go on Wikidata. -->
</noinclude>
l3ti6zjxip68spdlt018btofjtao8um
Module:Namespace detect/config
828
1858
15631
2022-08-08T22:38:10Z
Kambai Akau
15
Created page with "-------------------------------------------------------------------------------- -- Namespace detect configuration data -- -- -- -- This module stores configuration data for Module:Namespace detect. Here -- -- you can localise the module to your wiki's language. -- --..."
Scribunto
text/plain
--------------------------------------------------------------------------------
-- Namespace detect configuration data --
-- --
-- This module stores configuration data for Module:Namespace detect. Here --
-- you can localise the module to your wiki's language. --
-- --
-- To activate a configuration item, you need to uncomment it. This means --
-- that you need to remove the text "-- " at the start of the line. --
--------------------------------------------------------------------------------
local cfg = {} -- Don't edit this line.
--------------------------------------------------------------------------------
-- Parameter names --
-- These configuration items specify custom parameter names. Values added --
-- here will work in addition to the default English parameter names. --
-- To add one extra name, you can use this format: --
-- --
-- cfg.foo = 'parameter name' --
-- --
-- To add multiple names, you can use this format: --
-- --
-- cfg.foo = {'parameter name 1', 'parameter name 2', 'parameter name 3'} --
--------------------------------------------------------------------------------
---- This parameter displays content for the main namespace:
-- cfg.main = 'main'
---- This parameter displays in talk namespaces:
-- cfg.talk = 'talk'
---- This parameter displays content for "other" namespaces (namespaces for which
---- parameters have not been specified):
-- cfg.other = 'other'
---- This parameter makes talk pages behave as though they are the corresponding
---- subject namespace. Note that this parameter is used with [[Module:Yesno]].
---- Edit that module to change the default values of "yes", "no", etc.
-- cfg.subjectns = 'subjectns'
---- This parameter sets a demonstration namespace:
-- cfg.demospace = 'demospace'
---- This parameter sets a specific page to compare:
cfg.demopage = 'page'
--------------------------------------------------------------------------------
-- Table configuration --
-- These configuration items allow customisation of the "table" function, --
-- used to generate a table of possible parameters in the module --
-- documentation. --
--------------------------------------------------------------------------------
---- The header for the namespace column in the wikitable containing the list of
---- possible subject-space parameters.
-- cfg.wikitableNamespaceHeader = 'Namespace'
---- The header for the wikitable containing the list of possible subject-space
---- parameters.
-- cfg.wikitableAliasesHeader = 'Aliases'
--------------------------------------------------------------------------------
-- End of configuration data --
--------------------------------------------------------------------------------
return cfg -- Don't edit this line.
1o6ozz56i8q0xgyl6xa41n2v7kelhli
Ta̱mpi̱let:Lang-tr
10
1859
15633
2022-08-08T22:48:34Z
Kambai Akau
15
Created page with "<includeonly>{{#invoke:lang|lang_xx_italic |code=tr }}</includeonly><noinclude> {{Documentation|Template:Lang-x/doc}} [[Category:Turkic multilingual support templates]] </noinclude>"
wikitext
text/x-wiki
<includeonly>{{#invoke:lang|lang_xx_italic
|code=tr
}}</includeonly><noinclude>
{{Documentation|Template:Lang-x/doc}}
[[Category:Turkic multilingual support templates]]
</noinclude>
ip7hbrmy4ew1rdoih36wrm35nomc1qj
Ta̱mpi̱let:IPA-tr
10
1860
15634
2022-08-08T22:49:32Z
Kambai Akau
15
Created page with "<onlyinclude><small>{{#switch: {{{2}}}|IPA=IPA: |lang=Turkish: |pron=pronounced |=||Turkish pronunciation: }}</small>{{IPA|[[Help:IPA/Turkish|[{{{1}}}]]]|lang=tr}}{{#if:{{{3|}}}|{{IPA audio link|{{{3}}} }} }}</onlyinclude> <noinclude>{{documentation}}</noinclude>"
wikitext
text/x-wiki
<onlyinclude><small>{{#switch: {{{2}}}|IPA=IPA: |lang=Turkish: |pron=pronounced |=||Turkish pronunciation: }}</small>{{IPA|[[Help:IPA/Turkish|[{{{1}}}]]]|lang=tr}}{{#if:{{{3|}}}|{{IPA audio link|{{{3}}} }} }}</onlyinclude>
<noinclude>{{documentation}}</noinclude>
oir8ng7rwsxmyyaiupird3j3r92cggm
Ta̱mpi̱let:IPA-tr/doc
10
1861
15635
2022-08-08T22:50:50Z
Kambai Akau
15
Created page with "{{Documentation subpage}} <!-- PLEASE ADD CATEGORIES AND INTERWIKIS AT THE BOTTOM OF THIS PAGE --> {{usage of IPA templates}} <includeonly>{{Sandbox other|| <!-- PLEASE ADD CATEGORIES BELOW THIS LINE, THANKS. --> [[Category:IPA language templates|{{PAGENAME}}]] <!-- PLEASE ADD INTERWIKIS BELOW THIS LINE, THANKS. --> }}</includeonly>"
wikitext
text/x-wiki
{{Documentation subpage}}
<!-- PLEASE ADD CATEGORIES AND INTERWIKIS AT THE BOTTOM OF THIS PAGE -->
{{usage of IPA templates}}
<includeonly>{{Sandbox other||
<!-- PLEASE ADD CATEGORIES BELOW THIS LINE, THANKS. -->
[[Category:IPA language templates|{{PAGENAME}}]]
<!-- PLEASE ADD INTERWIKIS BELOW THIS LINE, THANKS. -->
}}</includeonly>
qfi4umutyrto078qrss6sospl2klpfl
Ta̱mpi̱let:Usage of IPA templates
10
1862
15636
2022-08-08T22:52:26Z
Kambai Akau
15
Created page with "{{navbar|Usage of IPA templates|plain=y|style=float:right}} === Usage of IPA pronunciation templates === {{IPA keys|style=width: 40em; clear: right; float: right; margin: 0.5em 0 0.5em 1em;}} Wikipedia offers several templates for proper display of [[International Phonetic Alphabet|IPA]] transcriptions. ==== IPA font ==== In general, IPA symbols on a page should be enclosed in the {{tlx|IPA}} template, which formats the text in an IPA-producing font. If a substantial p..."
wikitext
text/x-wiki
{{navbar|Usage of IPA templates|plain=y|style=float:right}}
=== Usage of IPA pronunciation templates ===
{{IPA keys|style=width: 40em; clear: right; float: right; margin: 0.5em 0 0.5em 1em;}}
Wikipedia offers several templates for proper display of [[International Phonetic Alphabet|IPA]] transcriptions.
==== IPA font ====
In general, IPA symbols on a page should be enclosed in the {{tlx|IPA}} template, which formats the text in an IPA-producing font. If a substantial portion of a page uses IPA, it is customary to post notice of that fact with {{tlx|Contains special characters|IPA}}, though each token still requires the {{tlx|IPA}} template for proper formatting.
If there are not enough occurrences to warrant a notice, then consider a template that links to an IPA key for the first instance of the IPA on a page or section.
==== English words ====
For '''English''' words, in a broad, non-regional transcription, as when giving the pronunciation of a key word in an article, use {{tl|IPAc-en}}, which links to [[Help:IPA/English]], a chart of the subset of the IPA that is relevant to English, and automates the conversion to IPA, so that <code><nowiki>{{IPAc-en|'|w|3:r|d}}</nowiki></code> appears as {{IPAc-en|'|w|3:r|d}}. This provides mouse-over links to the symbols, and is now the preferred template.
For a specific transcription in a regional variety, use {{tl|IPA-endia}} or {{tl|IPA-all}}.
==== Non-English words ====
For words that are not assimilated into English, regional pronunciations of English words, and non-standard English dialects, use templates linking to the more general [[Help:IPA]] chart, containing all major IPA symbols:
* {{tl|IPA-all}}, appearing as: {{IPA-all|word}}. Or:
* For specific languages, there may be dedicated IPA keys for standardized transcription. There are several options for their display. The first cell includes the ISO code of the language; the second is the transcription; the third keys an introductory phrase; and the fourth is space for a sound file. Using the French word ''eau'' {{IPA|[o]}} as an example, we have the default format:
** <code><nowiki>{{IPA-fr|o}}</nowiki></code> → {{IPA-fr|o}}
* Or the word "pronounced" can be used as the introduction:
** <code><nowiki>{{IPA-fr|o|pron}}</nowiki></code> → {{IPA-fr|o|pron}}
* Language name only:
** <code><nowiki>{{IPA-fr|o|lang}}</nowiki></code> → {{IPA-fr|o|lang}}
* "IPA" only:
** <code><nowiki>{{IPA-fr|o|IPA}}</nowiki></code> → {{IPA-fr|o|IPA}}
* Link only:
** <code><nowiki>{{IPA-fr|o|}}</nowiki></code> → {{IPA-fr|o|}}
* Any of these may be combined with a sound file:
** <code><nowiki>{{IPA-fr|o|lang|Fr-eau.ogg}}</nowiki></code> → {{IPA-fr|o|lang|Fr-eau.ogg}}
* For the default introductory phrase, however, a placeholder such as “-” is required:
** <code><nowiki>{{IPA-fr|o|-|Fr-eau.ogg}}</nowiki></code> → {{IPA-fr|o|-|Fr-eau.ogg}}
==== Supported languages and templates ====
{| class="wikitable sortable"
! Key
! Language
! Template(s)
|-
| [[Help:IPA/Adyghe]]
| [[Adyghe language|Adyghe]]
| {{tldep|IPA-ady}}
|-
| [[Help:IPA/Afrikaans]]
| [[Afrikaans]]
| {{tldep|IPA-af}}
|-
| [[Help:IPA/Albanian]]
| [[Albanian language|Albanian]]
| {{tldep|IPA-sq}}
|-
| rowspan="4" | [[Help:IPA/Alemannic German]]
| [[Alemannic German]]
| {{tldep|IPA-gsw}}
|-
| [[Colonia Tovar dialect]]
| {{tldep|IPA-gct}}
|-
| [[Swabian German]]
| {{tldep|IPA-swg}}
|-
| [[Walser German]]
| {{tldep|IPA-wae}}
|-
| [[Help:IPA/Amharic]]
| [[Amharic]]
| {{tldep|IPA-am}}
|-
| [[Help:IPA/Arabic]]
| [[Arabic]]
| {{tldep|IPA-ar}}, {{tldep|IPAc-ar}}
|-
| [[Help:IPA/Armenian]]
| [[Armenian language|Armenian]]
| {{tldep|IPA-hy}}
|-
| [[Help:IPA/Assamese]]
| [[Assamese language|Assamese]]
| {{tldep|IPA-as}}
|-
| rowspan="4" | [[Help:IPA/Astur-Leonese]]
| [[Asturian language|Asturian]]
| {{tldep|IPA-ast}}
|-
| [[Extremaduran language|Extremaduran]]
| {{tldep|IPA-ext}}
|-
| [[Leonese dialect|Leonese]]
| {{tldep|IPA-le}}
|-
| [[Mirandese language|Mirandese]]
| {{tldep|IPA-mwl}}
|-
| [[Help:IPA/Australian languages]]
| [[Australian Aboriginal languages]]
| {{tldep|IPA-aus}}
|-
| [[Help:IPA/Azerbaijani]]
| [[Azerbaijani language|Azerbaijani]]
| {{tldep|IPA-az}}
|-
| [[Help:IPA/Basque]]
| [[Basque language|Basque]]
| {{tldep|IPA-eu}}
|-
| [[Help:IPA/Belarusian]]
| [[Belarusian language|Belarusian]]
| {{tldep|IPA-be}}
|-
| [[Help:IPA/Bengali]]
| [[Bengali language|Bengali]]
| {{tldep|IPA-bn}}
|-
| [[Help:IPA/Berber]]
| [[Berber languages|Berber]]
| {{tldep|IPA-ber}}
|-
| [[Help:IPA/Breton]]
| [[Breton language|Breton]]
| {{tldep|IPA-br}}
|-
| [[Help:IPA/Bulgarian]]
| [[Bulgarian language|Bulgarian]]
| {{tldep|IPA-bg}}
|-
| [[Help:IPA/Burmese]]
| [[Burmese language|Burmese]]
| {{tldep|IPA-my}}
|-
| [[Help:IPA/Cantonese]]
| [[Cantonese]]
| {{tldep|IPA-yue}}, {{tldep|IPAc-yue}}
|-
| rowspan="2" | [[Help:IPA/Catalan]]
| [[Catalan language|Catalan]]
| {{tldep|IPA-ca}}
|-
| [[Valencian language|Valencian ]]
| {{tldep|IPA-va}}
|-
| [[Help:IPA/Colognian]]
| [[Colognian]]
| {{tldep|IPA-ksh}}
|-
| [[Help:IPA/Corsican]]
| [[Corsican language|Corsican]]
| {{tldep|IPA-co}}
|-
| [[Help:IPA/Czech]]
| [[Czech language|Czech]]
| {{tldep|IPA-cs}}
|-
| [[Help:IPA/Danish]]
| [[Danish language|Danish]]
| {{tldep|IPA-da}}
|-
| [[Help:IPA/Dutch]]
| [[Dutch language|Dutch]]
| {{tldep|IPA-nl}}
|-
| [[Help:IPA/Egyptian Arabic]]
| [[Egyptian Arabic]]
| {{tldep|IPA-arz}}
|-
| rowspan="2" | [[Help:IPA/Emilian-Romagnol]]
| [[Emilian dialects|Emilian]]
| {{tldep|IPA-egl}}
|-
| [[Romagnol dialects|Romagnol]]
| {{tldep|IPA-rgn}}
|-
| [[Help:IPA/English]]
| [[English language|English]]
| {{tldep|IPAc-en}}
|-
| [[Help:IPA/Esperanto]]
| [[Esperanto]]
| {{tldep|IPA-eo}}
|-
| [[Help:IPA/Estonian]]
| [[Estonian language|Estonian]]
| {{tldep|IPA-et}}
|-
| [[Help:IPA/Fijian]]
| [[Fijian language|Fijian]]
| {{tldep|IPA-fj}}
|-
| [[Help:IPA/Finnish]]
| [[Finnish language|Finnish]]
| {{tldep|IPA-fi}}
|-
| [[Help:IPA/Franco-Provençal]]
| [[Franco-Provençal]]
| {{tldep|IPA-frp}}
|-
| [[Help:IPA/French]]
| [[French language|French]]
| {{tldep|IPA-fr}}, {{tldep|IPAc-fr}}
|-
| [[Help:IPA/Galician]]
| [[Galician language|Galician]]
| {{tldep|IPA-gl}}
|-
| [[Help:IPA/Georgian]]
| [[Georgian language|Georgian]]
| {{tldep|IPA-ka}}, {{tldep|IPAc-ka}}
|-
| [[Help:IPA/Greek]]
| [[Greek language|Greek]]
| {{tldep|IPA-el}}, {{tldep|IPA-grc}}
|-
| [[Help:IPA/Greenlandic]]
| [[Greenlandic language|Greenlandic]]
| {{tldep|IPA-kl}}
|-
| [[Help:IPA/Gujarati]]
| [[Gujarati language|Gujarati]]
| {{tldep|IPA-gu}}
|-
| [[Help:IPA/Haitian Creole]]
| [[Haitian Creole]]
| {{tldep|IPA-ht}}
|-
| [[Help:IPA/Hawaiian]]
| [[Hawaiian language|Hawaiian]]
| {{tldep|IPA-haw}}
|-
| [[Help:IPA/Hebrew]]
| [[Hebrew language|Hebrew]]
| {{tldep|IPA-he}}, {{tldep|IPAc-he}}
|-
| [[Help:IPA/Hejazi Arabic]]
| [[Hejazi Arabic]]
| {{tldep|IPA-acw}}
|-
| rowspan="3" | [[Help:IPA/Hindi and Urdu]]
| [[Hindustani language|Hindustani]]
| {{tldep|IPA-hns}}
|-
| [[Hindi]]
| {{tldep|IPA-hi}}
|-
| [[Urdu]]
| {{tldep|IPA-ur}}
|-
| [[Help:IPA/Hmong]]
| [[Hmong language|Hmong]]
| {{tldep|IPA-hmn}}
|-
| [[Help:IPA/Hungarian]]
| [[Hungarian language|Hungarian]]
| {{tldep|IPA-hu}}, {{tldep|IPAc-hu}}
|-
| [[Help:IPA/Icelandic]]
| [[Icelandic language|Icelandic]]
| {{tldep|IPA-is}}
|-
| [[Help:IPA/Igbo]]
| [[Igbo language|Igbo]]
| {{tldep|IPA-ig}}
|-
| [[Help:IPA/Insular Catalan]]
| [[Insular Catalan]]
| {{tldep|IPA-cadia}}
|-
| [[Help:IPA/Inuktitut]]
| [[Inuktitut]]
| {{tldep|IPA-iu}}
|-
| [[Help:IPA/Inupiaq]]
| [[Inupiaq language|Inupiaq]]
| {{tldep|IPA-ik}}
|-
| [[Help:IPA/Irish]]
| [[Irish language|Irish]]
| {{tldep|IPA-ga}}, {{tldep|IPAc-ga}}
|-
| [[Help:IPA/Italian]]
| [[Italian language|Italian]]
| {{tldep|IPA-it}}, {{tldep|IPAc-it}}
|-
| [[Help:IPA/Italian dialects]]
| [[Regional Italian|Italian dialects]]
| {{tldep|IPA-itdia}}
|-
| [[Help:IPA/Japanese]]
| [[Japanese language|Japanese]]
| {{tldep|IPA-ja}}, {{tldep|IPAc-ja}}
|-
| [[Help:IPA/Kazakh]]
| [[Kazakh language|Kazakh]]
| {{tldep|IPA-kk}}
|-
| [[Help:IPA/Khmer]]
| [[Khmer language|Khmer]]
| {{tldep|IPA-km}}
|-
| [[Help:IPA/Korean]]
| [[Korean language|Korean]]
| {{tldep|IPA-ko}}, {{tldep|IPAc-ko}}
|-
| rowspan="4" | [[Help:IPA/Kurdish]]
| [[Kurdish languages|Kurdish]]
| {{tldep|IPA-ku}}
|-
| [[Kurmanji|Kurmanji (Northern Kurdish)]]
| {{tldep|IPA-kmr}}
|-
| [[Sorani|Sorani (Central Kurdish)]]
| {{tldep|IPA-ckb}}
|-
| [[Southern Kurdish]]
| {{tldep|IPA-sdh}}
|-
| [[Help:IPA/Kyrgyz]]
| [[Kyrgyz language|Kyrgyz]]
| {{tldep|IPA-ky}}
|-
| [[Help:IPA/Lakota]]
| [[Lakota language|Lakota]]
| {{tldep|IPA-lkt}}
|-
| [[Help:IPA/Lao]]
| [[Lao language|Lao]]
| {{tldep|IPA-lo}}
|-
| [[Help:IPA/Latin]]
| [[Latin]]
| {{tldep|IPA-la}}
|-
| [[Help:IPA/Latvian]]
| [[Latvian language|Latvian]]
| {{tldep|IPA-lv}}
|-
| [[Help:IPA/Lebanese Arabic]]
| [[Lebanese Arabic]]
| {{tldep|IPA-apc-LB}}
|-
| [[Help:IPA/Ligurian]]
| [[Ligurian (Romance language)|Ligurian]]
| {{tldep|IPA-lij}}
|-
| [[Help:IPA/Lithuanian]]
| [[Lithuanian language|Lithuanian]]
| {{tldep|IPA-lt}}
|-
| [[Help:IPA/Lombard]]
| [[Lombard language|Lombard]]
| {{tldep|IPA-lmo}}
|-
| [[Help:IPA/Luxembourgish]]
| [[Luxembourgish]]
| {{tldep|IPA-lb}}
|-
| [[Help:IPA/Macedonian]]
| [[Macedonian language|Macedonian]]
| {{tldep|IPA-mk}}
|-
| [[Help:IPA/Malagasy]]
| [[Malagasy language|Malagasy]]
| {{tldep|IPA-mg}}
|-
| rowspan="2" | [[Help:IPA/Malay]]
| [[Malay language|Malay]]
| {{tldep|IPA-ms}}
|-
| [[Indonesian language|Indonesian]]
| {{tldep|IPA-id}}
|-
| [[Help:IPA/Malayalam]]
| [[Malayalam]]
| {{tldep|IPA-ml}}
|-
| [[Help:IPA/Maltese]]
| [[Maltese language|Maltese]]
| {{tldep|IPA-mt}}
|-
| [[Help:IPA/Mandarin]]
| [[Standard Chinese]]
| {{tldep|IPA-cmn}}, {{tldep|IPAc-cmn}}
|-
| [[Help:IPA/Manx]]
| [[Manx language|Manx]]
| {{tldep|IPA-gv}}
|-
| [[Help:IPA/Maithili]]
| [[Maithili language|Maithili]]
| {{tldep|IPA-mai}}
|-
| [[Help:IPA/Māori]]
| [[Māori language|Māori]]
| {{tldep|IPA-mi}}, {{tldep|IPAc-mi}}
|-
| [[Help:IPA/Marathi]]
| [[Marathi language|Marathi]]
| {{tldep|IPA-mr}}
|-
| [[Help:IPA/Marshallese]]
| [[Marshallese language|Marshallese]]
| {{tldep|IPA-mh}}, {{tldep|IPAc-mh}}
|-
| [[Help:IPA/Mauritian Creole]]
| [[Mauritian Creole]]
| {{tldep|IPA-mfe}}
|-
| [[Help:IPA/Mayan]]
| [[Mayan languages|Mayan]]
| {{tldep|IPA-myn}}
|-
| [[Help:IPA/Mongolian]]
| [[Mongolian language|Mongolian]]
| {{tldep|IPA-mn}}
|-
| [[Help:IPA/Nahuatl]]
| [[Nahuatl]]
| {{tldep|IPA-nah}}
|-
| [[Help:IPA/Navajo]]
| [[Navajo language|Navajo]]
| {{tldep|IPA-nv}}
|-
| [[Help:IPA/Neapolitan]]
| [[Neapolitan language|Neapolitan]]
| {{tldep|IPA-nap}}
|-
| [[Help:IPA/Nepali]]
| [[Nepali language|Nepali]]
| {{tldep|IPA-ne}}
|-
| rowspan="3" | [[Help:IPA/Nguni]]
| [[Swazi language|Swazi]]
| {{tldep|IPA-ss}}
|-
| [[Xhosa language|Xhosa]]
| {{tldep|IPA-xh}}
|-
| [[Zulu language|Zulu]]
| {{tldep|IPA-zu}}
|-
| [[Help:IPA/Northern Thai]]
| [[Northern Thai language|Northern Thai]]
| {{tldep|IPA-nod}}
|-
| [[Help:IPA/Norwegian]]
| [[Norwegian language|Norwegian]]
| {{tldep|IPA-no}}
|-
| [[Help:IPA/Occitan]]
| [[Occitan language|Occitan]]
| {{tldep|IPA-oc}}
|-
| [[Help:IPA/Odia]]
| [[Odia language|Odia]]
| {{tldep|IPA-or}}
|-
| [[Help:IPA/Old English]]
| [[Old English]]
| {{tldep|IPA-ang}}
|-
| rowspan="3" | [[Help:IPA/Persian]]
| [[Persian language|Persian]]
| {{tldep|IPA-fa}}
|-
| [[Dari]]
| {{tldep|IPA-prs}}
|-
| [[Tajik language|Tajik]]
| {{tldep|IPA-tg}}
|-
| [[Help:IPA/Piedmontese]]
| [[Piedmontese language|Piedmontese]]
| {{tldep|IPA-pms}}
|-
| [[Help:IPA/Polish]]
| [[Polish language|Polish]]
| {{tldep|IPA-pl}}, {{tldep|IPAc-pl}}
|-
| [[Help:IPA/Portuguese]]
| [[Portuguese language|Portuguese]]
| {{tldep|IPA-pt}}, {{tldep|IPAc-pt}}
|-
| [[Help:IPA/Punjabi]]
| [[Punjabi language|Punjabi]]
| {{tldep|IPA-pa}}
|-
| [[Help:IPA/Quechua]]
| [[Quechuan languages|Quechua]]
| {{tldep|IPA-qu}}
|-
| [[Help:IPA/Romanian]]
| [[Romanian language|Romanian]]
| {{tldep|IPA-ro}}, {{tldep|IPAc-ro}}
|-
| [[Help:IPA/Romansh]]
| [[Romansh language|Romansh]]
| {{tldep|IPA-rm}}
|-
| [[Help:IPA/Russian]]
| [[Russian language|Russian]]
| {{tldep|IPA-ru}}
|-
| [[Help:IPA/Sanskrit]]
| [[Sanskrit]]
| {{tldep|IPA-sa}}
|-
| [[Help:IPA/Sardinian]]
| [[Sardinian language|Sardinian]]
| {{tldep|IPA-sc}}
|-
| [[Help:IPA/Scottish Gaelic]]
| [[Scottish Gaelic]]
| {{tldep|IPA-gd}}
|-
| rowspan="5" | [[Help:IPA/Serbo-Croatian]]
| [[Serbo-Croatian]]
| {{tldep|IPA-sh}}
|-
| [[Croatian language|Croatian]]
| {{tldep|IPA-hr}}
|-
| [[Serbian language|Serbian]]
| {{tldep|IPA-sr}}
|-
| [[Bosnian language|Bosnian]]
| {{tldep|IPA-bs}}
|-
| [[Montenegrin language|Montenegrin]]
| {{tldep|IPA-cnr}}
|-
| rowspan="2" | [[Help:IPA/Shan and Tai Lue]]
| [[Shan language|Shan]]
| {{tldep|IPA-shn}}
|-
| [[Tai Lue language|Tai Lue]]
| {{tldep|IPA-khb}}
|-
| [[Help:IPA/Sicilian]]
| [[Sicilian language|Sicilian]]
| {{tldep|IPA-scn}}
|-
| [[Help:IPA/Slovak]]
| [[Slovak language|Slovak]]
| {{tldep|IPA-sk}}
|-
| [[Help:IPA/Slovene]]
| [[Slovene language|Slovene]]
| {{tldep|IPA-sl}}
|-
| [[Help:IPA/Spanish]]
| [[Spanish language|Spanish]]
| {{tldep|IPA-es}}, {{tldep|IPAc-es}}
|-
| [[Help:IPA/Standard German]]
| [[German language|German]]
| {{tldep|IPA-de}}
|-
| [[Help:IPA/Swahili]]
| [[Swahili language|Swahili]]
| {{tldep|IPA-sw}}
|-
| [[Help:IPA/Swedish]]
| [[Swedish language|Swedish]]
| {{tldep|IPA-sv}}
|-
| [[Help:IPA/Sylheti]]
| [[Sylheti language|Sylheti]]
| {{tldep|IPA-syl}}
|-
| [[Help:IPA/Tagalog]]
| [[Tagalog language|Tagalog]]
| {{tldep|IPA-tl}}
|-
| [[Help:IPA/Taiwanese Hokkien]]
| [[Taiwanese Hokkien]]
| {{tldep|IPA-taiwan}}
|-
| [[Help:IPA/Tamil]]
| [[Tamil language|Tamil]]
| {{tldep|IPA-ta}}
|-
| [[Help:IPA/Tatar]]
| [[Tatar language|Tatar]]
| {{tldep|IPA-tt}}, {{tldep|IPA-crh}}
|-
| [[Help:IPA/Telugu]]
| [[Telugu language|Telugu]]
| {{tldep|IPA-te}}
|-
| [[Help:IPA/Thai]]
| [[Thai language|Thai]]
| {{tldep|IPA-th}}, {{tldep|IPA-sou}}
|-
| [[Help:IPA/Tibetan]]
| [[Standard Tibetan|Tibetan]]
| {{tldep|IPA-bo}}
|-
| [[Help:IPA/Tigrinya]]
| [[Tigrinya language|Tigrinya]]
| {{tldep|IPA-ti}}
|-
| [[Help:IPA/Tunisian Arabic]]
| [[Tunisian Arabic]]
| {{tldep|IPA-aeb}}
|-
| [[Help:IPA/Turkish]]
| [[Turkish language|Turkish]]
| {{tldep|IPA-tr}}
|-
| [[Help:IPA/Turkmen]]
| [[Turkmen language|Turkmen]]
| {{tldep|IPA-tk}}
|-
| [[Help:IPA/Ukrainian]]
| [[Ukrainian language|Ukrainian]]
| {{tldep|IPA-uk}}
|-
| [[Help:IPA/Uzbek]]
| [[Uzbek language|Uzbek]]
| {{tldep|IPA-uz}}
|-
| [[Help:IPA/Venetian]]
| [[Venetian language|Venetian]]
| {{tldep|IPA-vec}}
|-
| [[Help:IPA/Vietnamese]]
| [[Vietnamese language|Vietnamese]]
| {{tldep|IPA-vi}}
|-
| [[Help:IPA/Walloon]]
| [[Walloon language|Walloon]]
| {{tldep|IPA-wa}}
|-
| [[Help:IPA/Welsh]]
| [[Welsh language|Welsh]]
| {{tldep|IPA-cy}}
|-
| [[Help:IPA/West Frisian]]
| [[West Frisian language|West Frisian]]
| {{tldep|IPA-fy}}
|-
| [[Help:IPA/Wu Chinese]]
| [[Wu Chinese]]
| {{tldep|IPA-wuu}}
|-
| [[Help:IPA/Yiddish]]
| [[Yiddish]]
| {{tldep|IPA-yi}}
|-
| [[Help:IPA/Yoruba]]
| [[Yoruba language|Yoruba]]
| {{tldep|IPA-yo}}
|-
| [[Help:IPA/Zhuang]]
| [[Standard Zhuang|Zhuang]]
| {{tldep|IPA-za}}
|}
==== Languages without dedicated keys ====
Templates have been created for languages which do not yet have dedicated key pages. Transcriptions which use these templates will link to [[Help:IPA]] for the time being; when a language-specific key is created the templates will be linked accordingly. For example, you can use {{tlx|IPA-jv|word}} for Javanese, but for the moment it will link to [[Help:IPA]], producing {{IPA-jv|word}}.
{{Collapse top|Languages and language extensions (IPA-xx) with links to Help:IPA|expand=yes}}
{{div col|colwidth=15em}}
* {{tldep|IPA-ace}}: Acehnese
* {{tldep|IPA-ae}}: Avestan
* {{tldep|IPA-aec}}: Saidi Arabic
* {{tldep|IPA-afb}}: Gulf Arabic
* {{tldep|IPA-ain}}: Ainu
* {{tldep|IPA-ak}}: Akan (Fante, Twi)
* {{tldep|IPA-akk}}: Akkadian
* {{tldep|IPA-alg}}: Algonquian (Micmac, Cree)
* {{tldep|IPA-all}}: (transcriptions not specific to any language, or which have not yet been reassigned)
* {{tldep|IPA-als}}: Albanian dialects
* {{tldep|IPA-an}}: Aragonese
* {{tldep|IPA-arn}}: Mapuche
* {{tldep|IPA-art}}: artificial (Ido, Tolkien, etc.)
* {{tldep|IPA-ath}}: Athabaskan (Dene, Navajo)
* {{tldep|IPA-ay}}: Aymara
* {{tldep|IPA-azc}}: Uto-Aztecan (Shoshone, Comanche)
* {{tldep|IPA-ba}}: Bashkir
* {{tldep|IPA-bar}}: Bavarian
* {{tldep|IPA-bm}}: Manding/Bambara
* {{tldep|IPA-bodia}}: Bodish
* {{tldep|IPA-cau}}: (North) Caucasian
* {{tldep|IPA-cdd}}: Caddoan
* {{tldep|IPA-cdo}}: Eastern Min
* {{tldep|IPA-ceb}}: Cebuano
* {{tldep|IPA-cel}}: Celtic (Brythonic, Gaulish)
* {{tldep|IPA-ch}}: Chamorro
* {{tldep|IPA-cop}}: Coptic
* {{tldep|IPA-csb}}: Kashubian
* {{tldep|IPA-cv}}: Chuvash
* {{tldep|IPA-dedia}}: German dialects
* {{tldep|IPA-dv}}: Dhivehi
* {{tldep|IPA-doi}}: Dogri
* {{tldep|IPA-dz}}: Dzongkha
* {{tldep|IPA-ee}}: Gbe (Ewe, Fon)
* {{tldep|IPA-endia}}: English dialects
* {{tldep|IPA-enm}}: Middle English
* {{tldep|IPA-esdia}}: Spanish dialects
* {{tldep|IPA-fo}}: Faroese
* {{tldep|IPA-frdia}}: French dialects (Canadian, Metis, Norman)
* {{tldep|IPA-frr}}: North Frisian
* {{tldep|IPA-fur}}: Friulian
* {{tldep|IPA-gag}}: Gagauz
* {{tldep|IPA-gez}}: Ge'ez
* {{tldep|IPA-gn}}: Guaraní
* {{tldep|IPA-guc}}: Wayuu
* {{tldep|IPA-ha}}: Hausa
* {{tldep|IPA-hak}}: Hakka
* {{tldep|IPA-hop}}: Hopi
* {{tldep|IPA-iro}}: Iroquoian (Mohawk, Cherokee)
* {{tldep|IPA-ium}}: Iu Mien
* {{tldep|IPA-jv}}: Javanese
* {{tldep|IPA-kgg}}: Kusunda
* {{tldep|IPA-ki}}: Kikuyu
* {{tldep|IPA-kjq}}: Western Keres
* {{tldep|IPA-kn}}: Kannada
* {{tldep|IPA-kok}}: Konkani
* {{tldep|IPA-ks}}: Kashmiri
* {{tldep|IPA-ksw}}: S'gaw Karen
* {{tldep|IPA-kw}}: Cornish
* {{tldep|IPA-lad}}: Ladino
* {{tldep|IPA-lg}}: Ganda
* {{tldep|IPA-li}}: Limburgish
* {{tldep|IPA-lld}}: Ladin
* {{tldep|IPA-ltc}}: Middle Chinese
* {{tldep|IPA-lzz}}: Laz
* {{tldep|IPA-maz}}: Central Mazahua
* {{tldep|IPA-mga}}: Middle Irish
* {{tldep|IPA-mid}}: Neo-Mandaic
* {{tldep|IPA-mnc}}: Manchu
* {{tldep|IPA-mnw}}: Mon
* {{tldep|IPA-moh}}: Mohawk
* {{tldep|IPA-mos}}: Mossi/Gurunsi
* {{tldep|IPA-mus}}: Muskogean (Chickasaw, Creek)
* {{tldep|IPA-na}}: Nauruan
* {{tldep|IPA-nan}}: Minnan/Taiwanese
* {{tldep|IPA-nci}}: Classical Nahuatl
* {{tldep|IPA-nds}}: Low Saxon
* {{tldep|IPA-new}}: Newar
* {{tldep|IPA-non}}: Old Norse
* {{tldep|IPA-nrf}}: Norman
* {{tldep|IPA-nus}}: Nuer
* {{tldep|IPA-ny}}: Chewa
* {{tldep|IPA-oax}}: Oaxaca (Zapotec, Mixe, Otomi)
* {{tldep|IPA-om}}: Oromo
* {{tldep|IPA-os}}: Ossetian
* {{tldep|IPA-pap}}: Papiamento
* {{tldep|IPA-pcd}}: Picard
* {{tldep|IPA-pdc}}: Pennsylvania German
* {{tldep|IPA-pi}}: Pali (linked to Sanskrit)
* {{tldep|IPA-pjt}}: Pitjantjatjara
* {{tldep|IPA-poly}}: (other) Polynesian
* {{tldep|IPA-ps}}: Pashto
* {{tldep|IPA-ptdia}}: Portuguese dialects
* {{tldep|IPA-qya}}: Quenya
* {{tldep|IPA-rej}}: Rejang
* {{tldep|IPA-rw}}: Rwanda-Rundi
* {{tldep|IPA-ryu}}: Okinawan langs
* {{tldep|IPA-sal}}: Salish & NW Coast
* {{tldep|IPA-sco}}: Scots
* {{tldep|IPA-sd}}: Sindhi
* {{tldep|IPA-se}}: Northern Sami
* {{tldep|IPA-sec}}: Sechelt
* {{tldep|IPA-sei}}: Seri
* {{tldep|IPA-sem}}: (ancient) Semitic, Egyptian
* {{tldep|IPA-sga}}: Old Irish
* {{tldep|IPA-si}}: Sinhala
* {{tldep|IPA-sio}}: Siouan (Omaha, Lakota)
* {{tldep|IPA-sjn}}: Sindarin
* {{tldep|IPA-sla}}: Slavic (old Slavic, Silesian, Sorbian)
* {{tldep|IPA-sm}}: Samoan
* {{tldep|IPA-sn}}: Shona
* {{tldep|IPA-so}}: Somali
* {{tldep|IPA-st}}: Sotho
* {{tldep|IPA-stq}}: Saterland Frisian
* {{tldep|IPA-su}}: Sundanese
* {{tldep|IPA-sux}}: Sumerian
* {{tldep|IPA-sva}}: Svan
* {{tldep|IPA-syc}}: Classical Syriac
* {{tldep|IPA-syr}}: Syriac
* {{tldep|IPA-tet}}: Tetum
* {{tldep|IPA-tew}}: Tewa
* {{tldep|IPA-tix}}: Southern Tiwa
* {{tldep|IPA-tlh}}: Klingon
* {{tldep|IPA-tn}}: Tswana
* {{tldep|IPA-to}}: Tongan
* {{tldep|IPA-ts}}: Tsonga
* {{tldep|IPA-ty}}: Tahitian
* {{tldep|IPA-tyv}}: Tuvan
* {{tldep|IPA-tzl}}: Talossan
* {{tldep|IPA-ug}}: Uyghur
* {{tldep|IPA-ve}}: Venda
* {{tldep|IPA-vls}}: West Flemish
* {{tldep|IPA-wad}}: Wandamen
* {{tldep|IPA-wo}}: Wolof
* {{tldep|IPA-wbp}}: Warlpiri
* {{tldep|IPA-xmf}}: Mingrelian
* {{tldep|IPA-zun}}: Zuni
{{div col end}}
{{Collapse bottom}}
==== Conversion to IPA ====
The template {{tl|x2i}} takes [[X-SAMPA]] symbols ([[ASCII]] equivalents of IPA symbols) and converts them to IPA.
Other language-specific templates allow you to enter ordinary letters (or conventional ASCII equivalents) in place of IPA characters, and they will be automatically converted to the phonetic symbols that are used to transcribe the language. The templates that are currently available are shown below, with examples:
{| class="wikitable sortable"
! Language
! Template
! class="unsortable" | Code example
! class="unsortable" | Result
|-
| Arabic
| class="nowrap" | {{tldep|IPAc-ar}}
| <code><nowiki>{{IPAc-ar|2|a|l|l|u|gh|a|t_|a|l|3|a|r|a|b|i|y|y|a}}</nowiki></code>
| {{IPAc-ar|2|a|l|l|u|gh|a|t_|a|l|3|a|r|a|b|i|y|y|a}}
|-
| Cantonese
| class="nowrap" | {{tldep|IPAc-yue}}
| <code><nowiki>{{IPAc-yue|h|ung|2|.|z|i|2}}</nowiki></code>
| {{IPAc-yue|h|ung|2|.|z|i|2}}
|-
| English
| class="nowrap" | {{tldep|IPAc-en}}
| <code><nowiki>{{IPAc-en|,|{|l|@|'|b|{|m|@}}</nowiki></code>
| {{IPAc-en|,|{|l|@|'|b|{|m|@}}
|-
| French
| class="nowrap" | {{tldep|IPAc-fr}}
| <code><nowiki>{{IPAc-fr|j|@|-|s|U|i|s_|a|m|é|r|i|c|ain}}</nowiki></code>
| {{IPAc-fr|j|@|-|s|U|i|s_|a|m|é|r|i|c|ain}}
|-
| Georgian
| class="nowrap" | {{tldep|IPAc-ka}}
| <code><nowiki>{{IPAc-ka|dz|a|l|a|_|e|r|t|o|b|a|sh|i|a}}</nowiki></code>
| {{IPAc-ka|dz|a|l|a|_|e|r|t|o|b|a|sh|i|a}}
|-
| Hebrew
| class="nowrap" | {{tldep|IPAc-he}}
| <code><nowiki>{{IPAc-he|y|a|ʿ|a|k|o|v}}</nowiki></code>
| {{IPAc-he|y|a|ʿ|a|k|o|v}}
|-
| Hungarian
| class="nowrap" | {{tldep|IPAc-hu}}
| <code><nowiki>{{IPAc-hu|'|m|a|gy|a|r}}</nowiki></code>
| {{IPAc-hu|'|m|a|gy|a|r}}
|-
| Irish
| class="nowrap" | {{tldep|IPAc-ga}}
| <code><nowiki>{{IPAc-ga|'|b|ai|l'|@|-|'|á|th|@|-|'|c'|l'|ia|th}}</nowiki></code>
| {{IPAc-ga|'|b|ai|l'|@|-|'|á|th|@|-|'|c'|l'|ia|th}}
|-
| Italian
| class="nowrap" | {{tldep|IPAc-it}}
| <code><nowiki>{{IPAc-it|'|i|:|o|_|'|s|o|:|n|o|_|a|m|e|r|i|'|c|a|:|n|o}}</nowiki></code>
| {{IPAc-it|'|i|:|o|_|'|s|o|:|n|o|_|a|m|e|r|i|'|c|a|:|n|o}}
|-
| Japanese
| class="nowrap" | {{tldep|IPAc-ja}}
| <code><nowiki>{{IPAc-ja|ku|ro|si|o}}</nowiki></code>
| {{IPAc-ja|ku|ro|si|o}}
|-
| Korean
| class="nowrap" | {{tldep|IPAc-ko}}
| <code><nowiki>{{IPAc-ko|h|a|ng|eo}}</nowiki></code>
| {{IPAc-ko|h|a|ng|eo}}
|-
| Mandarin
| class="nowrap" | {{tldep|IPAc-cmn}}
| <code><nowiki>{{IPAc-cmn|zh|ong|1|h|ua|2|-|r|en|2|m|in|2|-|g|ong|4|h|e|2|g|uo|2}}</nowiki></code>
| {{IPAc-cmn|zh|ong|1|h|ua|2|-|r|en|2|m|in|2|-|g|ong|4|h|e|2|g|uo|2}}
|-
| Māori
| class="nowrap" | {{tldep|IPAc-mi}}
| <code><nowiki>{{IPAc-mi|ng|ā|r|u|a|'|w|ā|h|i|a}}</nowiki></code>
| {{IPAc-mi|ng|ā|r|u|a|'|w|ā|h|i|a}}
|-
| Marshallese
| class="nowrap" | {{tldep|IPAc2-mh}}
| <code><nowiki>{{IPAc2-mh|mhahjelh}}</nowiki></code>
| {{IPAc2-mh|mhahjelh}}
|-
| Polish
| class="nowrap" | {{tldep|IPAc-pl}}
| <code><nowiki>{{IPAc-pl|'|sz|cz|e|ć|i|n}}</nowiki></code>
| {{IPAc-pl|'|sz|cz|e|ć|i|n}}
|-
| Portuguese
| class="nowrap" | {{tldep|IPAc-pt}}
| <code><nowiki>{{IPAc-pt|p|o|<|r|t|u|'|g|a|l|lang=pt}} and {{IPAc-pt|b|r|a|'|S|i|l|lang=br}}</nowiki></code>
| {{IPAc-pt|p|o|<|r|t|u|'|g|a|l|lang=pt}} and {{IPAc-pt|b|r|a|'|S|i|l|lang=br}}
|-
| Romanian
| class="nowrap" | {{tldep|IPAc-ro}}
| <code><nowiki>{{IPAc-ro|ˈ|m|u|n|ț|ii|_|f|ă|g|ă|ˈ|r|a|ș|u|l|ui}}</nowiki></code>
| {{IPAc-ro|ˈ|m|u|n|ț|ii|_|f|ă|g|ă|ˈ|r|a|ș|u|l|ui}}
|-
| Spanish
| class="nowrap" | {{tldep|IPAc-es}}
| <code><nowiki>{{IPAc-es|m|i|'|gu|e|l|_|d|e|_|c|e|r|'|v|a|n|t|e|s|_|s|aa|'|v|e|d|r|a}}</nowiki></code>
| {{IPAc-es|m|i|'|gu|e|l|_|d|e|_|c|e|r|'|v|a|n|t|e|s|_|s|aa|'|v|e|d|r|a}}
|}
The following templates have also been created, but they haven't been vetted by the community and may not work properly:
* {{tldep|IPAc-ang}}: Old English
* {{tldep|IPAc-de}}: German
* {{tldep|IPAc-is}}: Icelandic
* {{tldep|IPAc-la}}: Latin
* {{tldep|IPAc-nl}}: Dutch
* {{tldep|IPAc-uk}}: Ukrainian
=== See also ===
* {{tl|Respell}}, for [[Help:Pronunciation respelling key|pronunciation respellings]], which may be used for English words in addition to the IPA
* {{tl|IPA-nci}}, for dual Nahuatl-IPA transcription
{{IPA templates}}
<noinclude>{{#ifeq:{{SUBPAGENAME}}|sandbox ||
[[Category:IPA templates| ]]
}}</noinclude>
axs351e6jsq49ibam8rwmh2k3grz8qo
Ta̱mpi̱let:IPA
10
1863
15637
2022-08-08T22:53:29Z
Kambai Akau
15
Created page with "<span title="Representation in the International Phonetic Alphabet (IPA)" class="IPA" lang="{{#if:{{{lang|}}}|{{{lang}}}|und}}-Latn-fonipa">{{{1}}}</span><noinclude> {{documentation}} </noinclude>"
wikitext
text/x-wiki
<span title="Representation in the International Phonetic Alphabet (IPA)" class="IPA" lang="{{#if:{{{lang|}}}|{{{lang}}}|und}}-Latn-fonipa">{{{1}}}</span><noinclude>
{{documentation}}
</noinclude>
q0pj5teg42lnsnzsx1qekjjpg8165gz
Ta̱mpi̱let:IPA/doc
10
1864
15638
2022-08-08T22:54:10Z
Kambai Akau
15
Created page with "{{documentation subpage}} <!-- Please place categories where indicated at the bottom of this page and interwikis at Wikidata (see [[Wikipedia:Wikidata]]) --> {{#ifeq:{{SUBPAGENAME}}|sandbox||{{High-use}}}} {{TOC right}} {{shortcut|T:IPA}} {{Language templates}} === Usage === '''[[Template:IPA]]''' is useful when there are multiple instances of the [[International Phonetic Alphabet]] (IPA) on a page. It contains <nowiki><span title="Representation in the International..."
wikitext
text/x-wiki
{{documentation subpage}}
<!-- Please place categories where indicated at the bottom of this page and interwikis at Wikidata (see [[Wikipedia:Wikidata]]) -->
{{#ifeq:{{SUBPAGENAME}}|sandbox||{{High-use}}}}
{{TOC right}}
{{shortcut|T:IPA}}
{{Language templates}}
=== Usage ===
'''[[Template:IPA]]''' is useful when there are multiple instances of the [[International Phonetic Alphabet]] (IPA) on a page. It contains
<nowiki><span title="Representation in the International Phonetic Alphabet (IPA)" class="IPA" lang="und-Latn-fonipa">{{{1}}}</span></nowiki>
This means it specifies a class called "IPA" as a hook for CSS styling and DOM scripting. This allows for assigning specific fonts to display IPA characters. Registered Wikipedia users can specify their own fonts for IPA text by editing their user style sheet, e.g. [[Special:MyPage/common.css]]. Users can also edit their global stylesheet ([[meta:Special:MyPage/global.css]]), which works across all projects. [[MediaWiki:Common.css]] also ensures that links inside IPA transcriptions marked up with this template do not use underlines since these carry special semantics there. For instance, the following code would cause IPA to be displayed in the font [[Charis SIL]]:
<syntaxhighlight lang="css">
.IPA {
font-family: Charis SIL;
}</syntaxhighlight>
=== TemplateData ===
{{TemplateData header}}
<templatedata>{
"description": "This template ensures proper display of transcriptions using the International Phonetic Alphabet (IPA), especially in older operating systems and browsers. There are related specialized templates that also semi-automatically generate the transcription itself.",
"params": {
"1": {
"label": "Transcription",
"description": "including square brackets [...] for phonetic transcriptions or enclosing forward slashes /.../ for phonemic ones",
"type": "string",
"required": true
},
"lang": {
"label": "Language code",
"description": "ISO 639 code of the language being transcribed, will be used in IETF language tag",
"example": "en",
"type": "string"
}
}
}</templatedata>
=== Examples ===
Placing a phonemic rendering of the word ''characters'' in Template:IPA:
<nowiki>{{IPA|/ˈkærəktɚz/|lang=en}}</nowiki>
<nowiki>{{IPA|/[[character|ˈkærəktɚz]]/|lang=en}}</nowiki>
The result will be a span with a class attribute, like this:
<nowiki><span</nowiki> title="Representation in the International Phonetic Alphabet (IPA)" class="IPA" lang="en-Latn-fonipa">/ˈkærəktɚz/<nowiki></span></nowiki>
Which appears in your browser as:
: {{IPA|/ˈkærəktɚz/|lang=en}}
: {{IPA|/[[character|ˈkærəktɚz]]/|lang=en}}
Without template:IPA:
: /ˈkærəktɚz/
: /[[character|ˈkærəktɚz]]/
These sets may look different if you have a custom font defined for IPA text.
Please place all IPA text into the template, even if it doesn't have any special IPA characters, like this: {{IPA |/mi/}}. This will allow users to format all examples of IPA text consistently, with their choice of fonts, colours, etc.
{{usage of IPA templates}}
<includeonly>{{Sandbox other||
<!-- Categories below this line, please; interwikis at Wikidata -->
[[Category:IPA templates| ]]
[[Category:Character templates]]
}}</includeonly>
5a6hfiw1fiu7k0lix7ni0hi6bg9rhzv
Ta̱mpi̱let:IPA audio link
10
1865
15639
2022-08-08T22:56:00Z
Kambai Akau
15
Created page with " <span class="nowrap" style="font-size:85%">{{#ifeq:{{{attribution|}}}|no|<includeonly>{{#if:{{{1|}}}|{{#ifexist:Media:{{{1}}}|<span class="unicode haudio"><span class="fn">[[File:Loudspeaker.svg|11px|link=Special:Filepath/{{{1}}}|Listen]]</span>{{main other|[[Category:Articles with hAudio microformats]]}}</span>|{{error{{main other||-small}}|Audio file "{{{1}}}" not found}}<!-- tracking category begin -->{{Category handler|[[Category:Pages linking to missing files]]..."
wikitext
text/x-wiki
 <span class="nowrap" style="font-size:85%">{{#ifeq:{{{attribution|}}}|no|<includeonly>{{#if:{{{1|}}}|{{#ifexist:Media:{{{1}}}|<span class="unicode haudio"><span class="fn">[[File:Loudspeaker.svg|11px|link=Special:Filepath/{{{1}}}|Listen]]</span>{{main other|[[Category:Articles with hAudio microformats]]}}</span>|{{error{{main other||-small}}|Audio file "{{{1}}}" not found}}<!-- tracking category begin -->{{Category handler|[[Category:Pages linking to missing files]]}}<!-- tracking category end -->}}}}</includeonly>|({{Audio|{{{1|}}}|listen|help=no}})}}</span><noinclude>
{{documentation}}
</noinclude>
qqkr4qi7no4fvrvf5wk26pbeji87wlk
Ta̱mpi̱let:IPA audio link/doc
10
1866
15640
2022-08-08T22:56:33Z
Kambai Akau
15
Created page with "{{Documentation subpage}} <!-- Please place categories where indicated at the bottom of this page and interwikis at Wikidata (see [[Wikipedia:Wikidata]]) --> This template formats the audio link used by [[Template:IPA-all]] and similar templates at [[:Category:IPA templates]]. '''It should not be used directly in articles.''' ==Usage== Usage within an IPA template will typically be something similar to:<br> <code><nowiki>{{#if:{{{3|}}}|{{IPA audio link|{{{3}}}|attributi..."
wikitext
text/x-wiki
{{Documentation subpage}}
<!-- Please place categories where indicated at the bottom of this page and interwikis at Wikidata (see [[Wikipedia:Wikidata]]) -->
This template formats the audio link used by [[Template:IPA-all]] and similar templates at [[:Category:IPA templates]]. '''It should not be used directly in articles.'''
==Usage==
Usage within an IPA template will typically be something similar to:<br>
<code><nowiki>{{#if:{{{3|}}}|{{IPA audio link|{{{3}}}|attribution={{{attribution|}}} }} }}</nowiki></code>
In the sample code above, "3" is the parameter for the file name (e.g. "Fr-Avignon.ogg") and "attribution" is an optional parameter specifying whether or not to create an attribution link (i.e. a link to the file page).
==Example output==
Note that this template is not intended for use directly in articles. The following examples are purely to show variations in output.
; Basic
*[aviɲɔ̃]{{IPA audio link|Fr-Avignon.ogg}}
*:<code>[aviɲɔ̃]<nowiki>{{IPA audio link|Fr-Avignon.ogg}}</nowiki></code>
; Without attribution link
Audio files which are licensed as CC0 or public domain may be linked to without an attribution link:
*[aviɲɔ̃]{{IPA audio link|Fr-Avignon.ogg|attribution=no}}
*:<code>[aviɲɔ̃]<nowiki>{{IPA audio link|Fr-Avignon.ogg|attribution=no}}</nowiki></code>
==TemplateData==
<templatedata>
{
"params": {
"1": {
"label": "Audio file",
"description": "The audio file without the \"File:\" prefix",
"example": "En-us-Foobar.ogg"
},
"attribution": {
"label": "Attribution link",
"description": "Set attribution to \"no\" to only display a speaker icon that links directly to the audio file (with no link to the File page).",
"example": "no"
}
},
"paramOrder": [
"1",
"attribution"
],
"description": "Formats the audio link used by IPA-all and similar templates"
}
</templatedata>
{{IPA templates}}
<includeonly>{{sandbox other||
<!-- Categories below this line, please; interwikis at Wikidata -->
[[Category:IPA audio templates]]
}}</includeonly>
n3y2001lc9u2f1u62etw29qav0date7
Module:Language/data/iana languages
828
1867
15748
15747
2022-08-11T23:57:52Z
Kambai Akau
15
Scribunto
text/plain
-- File-Date: 2022-03-02
local active = {
["aa"] = {"Afar"},
["ab"] = {"Abkhaziya"},
["ae"] = {"Avesta"},
["af"] = {"Afrikaans"},
["ak"] = {"Akan"},
["am"] = {"Ami̱hara"},
["an"] = {"A̱ragon"},
["ar"] = {"La̱ra̱ba"},
["as"] = {"Assam"},
["av"] = {"Avar"},
["ay"] = {"A̱yimara"},
["az"] = {"Azerbaijani"},
["ba"] = {"Bashkir"},
["be"] = {"Belarusiya"},
["bg"] = {"Buli̱gariya"},
["bh"] = {"lilyem Bihari"},
["bi"] = {"Bislama"},
["bm"] = {"Ba̱mba̱ra"},
["bn"] = {"Bengali", "Bangi̱la"},
["bo"] = {"Tibet"},
["br"] = {"Breton"},
["bs"] = {"Bosi̱niya"},
["ca"] = {"Katala", "Valensiya"},
["ce"] = {"Cecen"},
["ch"] = {"Camorro"},
["co"] = {"Korsika"},
["cr"] = {"Ki̱ri"},
["cs"] = {"Czech"},
["cu"] = {"Church Slavic", "Church Slavonic", "Old Bulgarian", "Old Church Slavonic", "Old Slavonic"},
["cv"] = {"Chuvash"},
["cy"] = {"Welsh"},
["da"] = {"Danish"},
["de"] = {"Jaman"},
["dv"] = {"Dhivehi", "Divehi", "Maldivian"},
["dz"] = {"Dzongkha"},
["ee"] = {"Ewe"},
["el"] = {"Modern Greek (1453-)"},
["en"] = {"Shong"},
["eo"] = {"Esperanto"},
["es"] = {"Si̱pen", "Ka̱stiliya"},
["et"] = {"Estoniya"},
["eu"] = {"Basi̱k"},
["fa"] = {"Parsi"},
["ff"] = {"Fa̱taa"},
["fi"] = {"Swomi"},
["fj"] = {"Fiji"},
["fo"] = {"Faroese"},
["fr"] = {"Fi̱ransa"},
["fy"] = {"Frisiya Jenshyung"},
["ga"] = {"Irish"},
["gd"] = {"Scottish Gaelic", "Gaelic"},
["gl"] = {"Galishya"},
["gn"] = {"Gwarani"},
["gu"] = {"Gujarati"},
["gv"] = {"Manx"},
["ha"] = {"Kpat"},
["he"] = {"A̱biru"},
["hi"] = {"Hindi"},
["ho"] = {"Hiri Motu"},
["hr"] = {"Croatian"},
["ht"] = {"Haitian", "Haitian Creole"},
["hu"] = {"Hungarian"},
["hy"] = {"Armeniya"},
["hz"] = {"Herero"},
["ia"] = {"Interlingua (International Auxiliary Language Association)"},
["id"] = {"Indonesian"},
["ie"] = {"Interlingue", "Occidental"},
["ig"] = {"A̱kum-a̱cyi"},
["ii"] = {"Sichuan Yi", "Nuosu"},
["ik"] = {"Inupiaq"},
["io"] = {"Ido"},
["is"] = {"Icelandic"},
["it"] = {"Italiya"},
["iu"] = {"Inuktitut"},
["ja"] = {"Ja̱pan"},
["jv"] = {"Javan"},
["ka"] = {"Jojiya"},
["kg"] = {"Konggo"},
["ki"] = {"Kikuyu", "Gikuyu"},
["kj"] = {"Kuanyama", "Kwanyama"},
["kk"] = {"Kazakh"},
["kl"] = {"Kalaallisut", "Greenlandic"},
["km"] = {"Khmer", "Central Khmer"},
["kn"] = {"Kannada"},
["ko"] = {"Kworiya"},
["kr"] = {"Kanuri"},
["ks"] = {"Kashmiri"},
["ku"] = {"Kurdish"},
["kv"] = {"Komi"},
["kw"] = {"Cornish"},
["ky"] = {"Kirghiz", "Kyrgyz"},
["la"] = {"Latin"},
["lb"] = {"Luxembourgish", "Letzeburgesch"},
["lg"] = {"Ganda", "Luganda"},
["li"] = {"Limburgan", "Limburger", "Limburgish"},
["ln"] = {"Lingala"},
["lo"] = {"Lao"},
["lt"] = {"Lithuanian"},
["lu"] = {"Luba-Katanga"},
["lv"] = {"Latvian"},
["mg"] = {"Malagasy"},
["mh"] = {"Marshallese"},
["mi"] = {"Maori"},
["mk"] = {"Macedonian"},
["ml"] = {"Malayalam"},
["mn"] = {"Mongolian"},
["mr"] = {"Marathi"},
["ms"] = {"Malay (macrolanguage)"},
["mt"] = {"Maltese"},
["my"] = {"Burmese"},
["na"] = {"Nauru"},
["nb"] = {"Norwegian Bokmål"},
["nd"] = {"North Ndebele"},
["ne"] = {"Nepali (macrolanguage)"},
["ng"] = {"Ndonga"},
["nl"] = {"Dutch", "Flemish"},
["nn"] = {"Norwegian Nynorsk"},
["no"] = {"Norwegian"},
["nr"] = {"South Ndebele"},
["nv"] = {"Navajo", "Navaho"},
["ny"] = {"Nyanja", "Chewa", "Chichewa"},
["oc"] = {"Occitan (post 1500)"},
["oj"] = {"Ojibwa"},
["om"] = {"Oromo"},
["or"] = {"Oriya (macrolanguage)", "Odia (macrolanguage)"},
["os"] = {"Ossetian", "Ossetic"},
["pa"] = {"Panjabi", "Punjabi"},
["pi"] = {"Pali"},
["pl"] = {"Polish"},
["ps"] = {"Pushto", "Pashto"},
["pt"] = {"Portuguese"},
["qu"] = {"Quechua"},
["rm"] = {"Romansh"},
["rn"] = {"Rundi"},
["ro"] = {"Romanian", "Moldavian", "Moldovan"},
["ru"] = {"Roshiya"},
["rw"] = {"Kinyarwanda"},
["sa"] = {"Sanskrit"},
["sc"] = {"Sardinian"},
["sd"] = {"Sindhi"},
["se"] = {"Sami A̱za"},
["sg"] = {"Sango"},
["sh"] = {"Serbo-Croatian"},
["si"] = {"Sinhala", "Sinhalese"},
["sk"] = {"Slovak"},
["sl"] = {"Slovenian"},
["sm"] = {"Samoan"},
["sn"] = {"Shona"},
["so"] = {"Somali"},
["sq"] = {"Albanian"},
["sr"] = {"Serbiya"},
["ss"] = {"Swati"},
["st"] = {"Soto A̱tak"},
["su"] = {"Sundanese"},
["sv"] = {"Swedish"},
["sw"] = {"Swahili (macrolanguage)"},
["ta"] = {"Tamil"},
["te"] = {"Telugu"},
["tg"] = {"Tajik"},
["th"] = {"Thai"},
["ti"] = {"Tigrinya"},
["tk"] = {"Turkmen"},
["tl"] = {"Tagalog"},
["tn"] = {"Tswana"},
["to"] = {"Tonga (Tonga Islands)"},
["tr"] = {"Turkiya"},
["ts"] = {"Tsonga"},
["tt"] = {"Tatar"},
["tw"] = {"Twi"},
["ty"] = {"Tahitian"},
["ug"] = {"Uighur", "Uyghur"},
["uk"] = {"Ukrainian"},
["ur"] = {"Urdu"},
["uz"] = {"Uzbek"},
["ve"] = {"Venda"},
["vi"] = {"Vietnamese"},
["vo"] = {"Volapük"},
["wa"] = {"Walloon"},
["wo"] = {"Wolof"},
["xh"] = {"Xhosa"},
["yi"] = {"Yiddish"},
["yo"] = {"A̱ghwangkpang"},
["za"] = {"Zhuang", "Chuang"},
["zh"] = {"Caina"},
["zu"] = {"Zulu"},
["aaa"] = {"Ghotuo"},
["aab"] = {"Alumu-Tesu"},
["aac"] = {"Ari"},
["aad"] = {"Amal"},
["aae"] = {"Arbëreshë Albanian"},
["aaf"] = {"Aranadan"},
["aag"] = {"Ambrak"},
["aah"] = {"Abu' Arapesh"},
["aai"] = {"Arifama-Miniafia"},
["aak"] = {"Ankave"},
["aal"] = {"Afade"},
["aan"] = {"Anambé"},
["aao"] = {"Algerian Saharan Arabic"},
["aap"] = {"Pará Arára"},
["aaq"] = {"Eastern Abnaki"},
["aas"] = {"Aasáx"},
["aat"] = {"Arvanitika Albanian"},
["aau"] = {"Abau"},
["aav"] = {"Austro-Asiatic languages"},
["aaw"] = {"Solong"},
["aax"] = {"Mandobo Atas"},
["aaz"] = {"Amarasi"},
["aba"] = {"Abé"},
["abb"] = {"Bankon"},
["abc"] = {"Ambala Ayta"},
["abd"] = {"Manide"},
["abe"] = {"Western Abnaki"},
["abf"] = {"Abai Sungai"},
["abg"] = {"Abaga"},
["abh"] = {"Tajiki Arabic"},
["abi"] = {"Abidji"},
["abj"] = {"Aka-Bea"},
["abl"] = {"Lampung Nyo"},
["abm"] = {"Abanyom"},
["abn"] = {"Abua"},
["abo"] = {"Abon"},
["abp"] = {"Abellen Ayta"},
["abq"] = {"Abaza"},
["abr"] = {"Abron"},
["abs"] = {"Ambonese Malay"},
["abt"] = {"Ambulas"},
["abu"] = {"Abure"},
["abv"] = {"Baharna Arabic"},
["abw"] = {"Pal"},
["abx"] = {"Inabaknon"},
["aby"] = {"Aneme Wake"},
["abz"] = {"Abui"},
["aca"] = {"Achagua"},
["acb"] = {"Áncá"},
["acd"] = {"Gikyode"},
["ace"] = {"Achinese"},
["acf"] = {"Saint Lucian Creole French"},
["ach"] = {"Acoli"},
["aci"] = {"Aka-Cari"},
["ack"] = {"Aka-Kora"},
["acl"] = {"Akar-Bale"},
["acm"] = {"Mesopotamian Arabic"},
["acn"] = {"Achang"},
["acp"] = {"Eastern Acipa"},
["acq"] = {"Ta'izzi-Adeni Arabic"},
["acr"] = {"Achi"},
["acs"] = {"Acroá"},
["act"] = {"Achterhoeks"},
["acu"] = {"Achuar-Shiwiar"},
["acv"] = {"Achumawi"},
["acw"] = {"Hijazi Arabic"},
["acx"] = {"Omani Arabic"},
["acy"] = {"Cypriot Arabic"},
["acz"] = {"Acheron"},
["ada"] = {"Adangme"},
["adb"] = {"Atauran"},
["add"] = {"Lidzonka", "Dzodinka"},
["ade"] = {"Adele"},
["adf"] = {"Dhofari Arabic"},
["adg"] = {"Andegerebinha"},
["adh"] = {"Adhola"},
["adi"] = {"Adi"},
["adj"] = {"Adioukrou"},
["adl"] = {"Galo"},
["adn"] = {"Adang"},
["ado"] = {"Abu"},
["adq"] = {"Adangbe"},
["adr"] = {"Adonara"},
["ads"] = {"Adamorobe Sign Language"},
["adt"] = {"Adnyamathanha"},
["adu"] = {"Aduge"},
["adw"] = {"Amundava"},
["adx"] = {"Amdo Tibetan"},
["ady"] = {"Adyghe", "Adygei"},
["adz"] = {"Adzera"},
["aea"] = {"Areba"},
["aeb"] = {"Tunisian Arabic"},
["aec"] = {"Saidi Arabic"},
["aed"] = {"Argentine Sign Language"},
["aee"] = {"Northeast Pashai", "Northeast Pashayi"},
["aek"] = {"Haeke"},
["ael"] = {"Ambele"},
["aem"] = {"Arem"},
["aen"] = {"Armenian Sign Language"},
["aeq"] = {"Aer"},
["aer"] = {"Eastern Arrernte"},
["aes"] = {"Alsea"},
["aeu"] = {"Akeu"},
["aew"] = {"Ambakich"},
["aey"] = {"Amele"},
["aez"] = {"Aeka"},
["afa"] = {"Afro-Asiatic languages"},
["afb"] = {"Gulf Arabic"},
["afd"] = {"Andai"},
["afe"] = {"Putukwam"},
["afg"] = {"Afghan Sign Language"},
["afh"] = {"Afrihili"},
["afi"] = {"Akrukay", "Chini"},
["afk"] = {"Nanubae"},
["afn"] = {"Defaka"},
["afo"] = {"Eloyi"},
["afp"] = {"Tapei"},
["afs"] = {"Afro-Seminole Creole"},
["aft"] = {"Afitti"},
["afu"] = {"Awutu"},
["afz"] = {"Obokuitai"},
["aga"] = {"Aguano"},
["agb"] = {"Legbo"},
["agc"] = {"Agatu"},
["agd"] = {"Agarabi"},
["age"] = {"Angal"},
["agf"] = {"Arguni"},
["agg"] = {"Angor"},
["agh"] = {"Ngelima"},
["agi"] = {"Agariya"},
["agj"] = {"Argobba"},
["agk"] = {"Isarog Agta"},
["agl"] = {"Fembe"},
["agm"] = {"Angaataha"},
["agn"] = {"Agutaynen"},
["ago"] = {"Tainae"},
["agq"] = {"Aghem"},
["agr"] = {"Aguaruna"},
["ags"] = {"Esimbi"},
["agt"] = {"Central Cagayan Agta"},
["agu"] = {"Aguacateco"},
["agv"] = {"Remontado Dumagat"},
["agw"] = {"Kahua"},
["agx"] = {"Aghul"},
["agy"] = {"Southern Alta"},
["agz"] = {"Mt. Iriga Agta"},
["aha"] = {"Ahanta"},
["ahb"] = {"Axamb"},
["ahg"] = {"Qimant"},
["ahh"] = {"Aghu"},
["ahi"] = {"Tiagbamrin Aizi"},
["ahk"] = {"Akha"},
["ahl"] = {"Igo"},
["ahm"] = {"Mobumrin Aizi"},
["ahn"] = {"Àhàn"},
["aho"] = {"Ahom"},
["ahp"] = {"Aproumu Aizi"},
["ahr"] = {"Ahirani"},
["ahs"] = {"Ashe"},
["aht"] = {"Ahtena"},
["aia"] = {"Arosi"},
["aib"] = {"Ainu (China)"},
["aic"] = {"Ainbai"},
["aid"] = {"Alngith"},
["aie"] = {"Amara"},
["aif"] = {"Agi"},
["aig"] = {"Antigua and Barbuda Creole English"},
["aih"] = {"Ai-Cham"},
["aii"] = {"Assyrian Neo-Aramaic"},
["aij"] = {"Lishanid Noshan"},
["aik"] = {"Ake"},
["ail"] = {"Aimele"},
["aim"] = {"Aimol"},
["ain"] = {"Ainu (Japan)"},
["aio"] = {"Aiton"},
["aip"] = {"Burumakok"},
["aiq"] = {"Aimaq"},
["air"] = {"Airoran"},
["ait"] = {"Arikem"},
["aiw"] = {"Aari"},
["aix"] = {"Aighon"},
["aiy"] = {"Ali"},
["aja"] = {"Aja (South Sudan)"},
["ajg"] = {"Aja (Benin)"},
["aji"] = {"Ajië"},
["ajn"] = {"Andajin"},
["ajp"] = {"South Levantine Arabic"},
["ajs"] = {"Algerian Jewish Sign Language"},
["aju"] = {"Judeo-Moroccan Arabic"},
["ajw"] = {"Ajawa"},
["ajz"] = {"Amri Karbi"},
["akb"] = {"Batak Angkola"},
["akc"] = {"Mpur"},
["akd"] = {"Ukpet-Ehom"},
["ake"] = {"Akawaio"},
["akf"] = {"Akpa"},
["akg"] = {"Anakalangu"},
["akh"] = {"Angal Heneng"},
["aki"] = {"Aiome"},
["akj"] = {"Aka-Jeru"},
["akk"] = {"Akkadian"},
["akl"] = {"Aklanon"},
["akm"] = {"Aka-Bo"},
["ako"] = {"Akurio"},
["akp"] = {"Siwu"},
["akq"] = {"Ak"},
["akr"] = {"Araki"},
["aks"] = {"Akaselem"},
["akt"] = {"Akolet"},
["aku"] = {"Akum"},
["akv"] = {"Akhvakh"},
["akw"] = {"Akwa"},
["akx"] = {"Aka-Kede"},
["aky"] = {"Aka-Kol"},
["akz"] = {"Alabama"},
["ala"] = {"Alago"},
["alc"] = {"Qawasqar"},
["ald"] = {"Alladian"},
["ale"] = {"Aleut"},
["alf"] = {"Alege"},
["alg"] = {"Algonquian languages"},
["alh"] = {"Alawa"},
["ali"] = {"Amaimon"},
["alj"] = {"Alangan"},
["alk"] = {"Alak"},
["all"] = {"Allar"},
["alm"] = {"Amblong"},
["aln"] = {"Gheg Albanian"},
["alo"] = {"Larike-Wakasihu"},
["alp"] = {"Alune"},
["alq"] = {"Algonquin"},
["alr"] = {"Alutor"},
["als"] = {"Tosk Albanian"},
["alt"] = {"Southern Altai"},
["alu"] = {"'Are'are"},
["alv"] = {"Atlantic-Congo languages"},
["alw"] = {"Alaba-K’abeena", "Wanbasana"},
["alx"] = {"Amol"},
["aly"] = {"Alyawarr"},
["alz"] = {"Alur"},
["ama"] = {"Amanayé"},
["amb"] = {"Ambo"},
["amc"] = {"Amahuaca"},
["ame"] = {"Yanesha'"},
["amf"] = {"Hamer-Banna"},
["amg"] = {"Amurdak"},
["ami"] = {"Amis"},
["amj"] = {"Amdang"},
["amk"] = {"Ambai"},
["aml"] = {"War-Jaintia"},
["amm"] = {"Ama (Papua New Guinea)"},
["amn"] = {"Amanab"},
["amo"] = {"Amo"},
["amp"] = {"Alamblak"},
["amq"] = {"Amahai"},
["amr"] = {"Amarakaeri"},
["ams"] = {"Southern Amami-Oshima"},
["amt"] = {"Amto"},
["amu"] = {"Guerrero Amuzgo"},
["amv"] = {"Ambelau"},
["amw"] = {"Western Neo-Aramaic"},
["amx"] = {"Anmatyerre"},
["amy"] = {"Ami"},
["amz"] = {"Atampaya"},
["ana"] = {"Andaqui"},
["anb"] = {"Andoa"},
["anc"] = {"Ngas"},
["and"] = {"Ansus"},
["ane"] = {"Xârâcùù"},
["anf"] = {"Animere"},
["ang"] = {"Old English (ca. 450-1100)"},
["anh"] = {"Nend"},
["ani"] = {"Andi"},
["anj"] = {"Anor"},
["ank"] = {"Goemai"},
["anl"] = {"Anu-Hkongso Chin"},
["anm"] = {"Anal"},
["ann"] = {"Obolo"},
["ano"] = {"Andoque"},
["anp"] = {"Angika"},
["anq"] = {"Jarawa (India)"},
["anr"] = {"Andh"},
["ans"] = {"Anserma"},
["ant"] = {"Antakarinya", "Antikarinya"},
["anu"] = {"Anuak"},
["anv"] = {"Denya"},
["anw"] = {"Anaang"},
["anx"] = {"Andra-Hus"},
["any"] = {"Anyin"},
["anz"] = {"Anem"},
["aoa"] = {"Angolar"},
["aob"] = {"Abom"},
["aoc"] = {"Pemon"},
["aod"] = {"Andarum"},
["aoe"] = {"Angal Enen"},
["aof"] = {"Bragat"},
["aog"] = {"Angoram"},
["aoi"] = {"Anindilyakwa"},
["aoj"] = {"Mufian"},
["aok"] = {"Arhö"},
["aol"] = {"Alor"},
["aom"] = {"Ömie"},
["aon"] = {"Bumbita Arapesh"},
["aor"] = {"Aore"},
["aos"] = {"Taikat"},
["aot"] = {"Atong (India)", "A'tong"},
["aou"] = {"A'ou"},
["aox"] = {"Atorada"},
["aoz"] = {"Uab Meto"},
["apa"] = {"Apache languages"},
["apb"] = {"Sa'a"},
["apc"] = {"North Levantine Arabic"},
["apd"] = {"Sudanese Arabic"},
["ape"] = {"Bukiyip"},
["apf"] = {"Pahanan Agta"},
["apg"] = {"Ampanang"},
["aph"] = {"Athpariya"},
["api"] = {"Apiaká"},
["apj"] = {"Jicarilla Apache"},
["apk"] = {"Kiowa Apache"},
["apl"] = {"Lipan Apache"},
["apm"] = {"Mescalero-Chiricahua Apache"},
["apn"] = {"Apinayé"},
["apo"] = {"Ambul"},
["app"] = {"Apma"},
["apq"] = {"A-Pucikwar"},
["apr"] = {"Arop-Lokep"},
["aps"] = {"Arop-Sissano"},
["apt"] = {"Apatani"},
["apu"] = {"Apurinã"},
["apv"] = {"Alapmunte"},
["apw"] = {"Western Apache"},
["apx"] = {"Aputai"},
["apy"] = {"Apalaí"},
["apz"] = {"Safeyoka"},
["aqa"] = {"Alacalufan languages"},
["aqc"] = {"Archi"},
["aqd"] = {"Ampari Dogon"},
["aqg"] = {"Arigidi"},
["aqk"] = {"Aninka"},
["aql"] = {"Algic languages"},
["aqm"] = {"Atohwaim"},
["aqn"] = {"Northern Alta"},
["aqp"] = {"Atakapa"},
["aqr"] = {"Arhâ"},
["aqt"] = {"Angaité"},
["aqz"] = {"Akuntsu"},
["arb"] = {"Standard Arabic"},
["arc"] = {"Official Aramaic (700-300 BCE)", "Imperial Aramaic (700-300 BCE)"},
["ard"] = {"Arabana"},
["are"] = {"Western Arrarnta"},
["arh"] = {"Arhuaco"},
["ari"] = {"Arikara"},
["arj"] = {"Arapaso"},
["ark"] = {"Arikapú"},
["arl"] = {"Arabela"},
["arn"] = {"Mapudungun", "Mapuche"},
["aro"] = {"Araona"},
["arp"] = {"Arapaho"},
["arq"] = {"Algerian Arabic"},
["arr"] = {"Karo (Brazil)"},
["ars"] = {"Najdi Arabic"},
["art"] = {"Artificial languages"},
["aru"] = {"Aruá (Amazonas State)", "Arawá"},
["arv"] = {"Arbore"},
["arw"] = {"Arawak"},
["arx"] = {"Aruá (Rodonia State)"},
["ary"] = {"Moroccan Arabic"},
["arz"] = {"Egyptian Arabic"},
["asa"] = {"Asu (Tanzania)"},
["asb"] = {"Assiniboine"},
["asc"] = {"Casuarina Coast Asmat"},
["ase"] = {"American Sign Language"},
["asf"] = {"Auslan", "Australian Sign Language"},
["asg"] = {"Cishingini"},
["ash"] = {"Abishira"},
["asi"] = {"Buruwai"},
["asj"] = {"Sari"},
["ask"] = {"Ashkun"},
["asl"] = {"Asilulu"},
["asn"] = {"Xingú Asuriní"},
["aso"] = {"Dano"},
["asp"] = {"Algerian Sign Language"},
["asq"] = {"Austrian Sign Language"},
["asr"] = {"Asuri"},
["ass"] = {"Ipulo"},
["ast"] = {"Asturian", "Asturleonese", "Bable", "Leonese"},
["asu"] = {"Tocantins Asurini"},
["asv"] = {"Asoa"},
["asw"] = {"Australian Aborigines Sign Language"},
["asx"] = {"Muratayak"},
["asy"] = {"Yaosakor Asmat"},
["asz"] = {"As"},
["ata"] = {"Pele-Ata"},
["atb"] = {"Zaiwa"},
["atc"] = {"Atsahuaca"},
["atd"] = {"Ata Manobo"},
["ate"] = {"Atemble"},
["atg"] = {"Ivbie North-Okpela-Arhe"},
["ath"] = {"Athapascan languages"},
["ati"] = {"Attié"},
["atj"] = {"Atikamekw"},
["atk"] = {"Ati"},
["atl"] = {"Mt. Iraya Agta"},
["atm"] = {"Ata"},
["atn"] = {"Ashtiani"},
["ato"] = {"Atong (Cameroon)"},
["atp"] = {"Pudtol Atta"},
["atq"] = {"Aralle-Tabulahan"},
["atr"] = {"Waimiri-Atroari"},
["ats"] = {"Gros Ventre"},
["att"] = {"Pamplona Atta"},
["atu"] = {"Reel"},
["atv"] = {"Northern Altai"},
["atw"] = {"Atsugewi"},
["atx"] = {"Arutani"},
["aty"] = {"Aneityum"},
["atz"] = {"Arta"},
["aua"] = {"Asumboa"},
["aub"] = {"Alugu"},
["auc"] = {"Waorani"},
["aud"] = {"Anuta"},
["auf"] = {"Arauan languages"},
["aug"] = {"Aguna"},
["auh"] = {"Aushi"},
["aui"] = {"Anuki"},
["auj"] = {"Awjilah"},
["auk"] = {"Heyo"},
["aul"] = {"Aulua"},
["aum"] = {"Asu (Nigeria)"},
["aun"] = {"Molmo One"},
["auo"] = {"Auyokawa"},
["aup"] = {"Makayam"},
["auq"] = {"Anus", "Korur"},
["aur"] = {"Aruek"},
["aus"] = {"Australian languages"},
["aut"] = {"Austral"},
["auu"] = {"Auye"},
["auw"] = {"Awyi"},
["aux"] = {"Aurá"},
["auy"] = {"Awiyaana"},
["auz"] = {"Uzbeki Arabic"},
["avb"] = {"Avau"},
["avd"] = {"Alviri-Vidari"},
["avi"] = {"Avikam"},
["avk"] = {"Kotava"},
["avl"] = {"Eastern Egyptian Bedawi Arabic"},
["avm"] = {"Angkamuthi"},
["avn"] = {"Avatime"},
["avo"] = {"Agavotaguerra"},
["avs"] = {"Aushiri"},
["avt"] = {"Au"},
["avu"] = {"Avokaya"},
["avv"] = {"Avá-Canoeiro"},
["awa"] = {"Awadhi"},
["awb"] = {"Awa (Papua New Guinea)"},
["awc"] = {"Cicipu"},
["awd"] = {"Arawakan languages"},
["awe"] = {"Awetí"},
["awg"] = {"Anguthimri"},
["awh"] = {"Awbono"},
["awi"] = {"Aekyom"},
["awk"] = {"Awabakal"},
["awm"] = {"Arawum"},
["awn"] = {"Awngi"},
["awo"] = {"Awak"},
["awr"] = {"Awera"},
["aws"] = {"South Awyu"},
["awt"] = {"Araweté"},
["awu"] = {"Central Awyu"},
["awv"] = {"Jair Awyu"},
["aww"] = {"Awun"},
["awx"] = {"Awara"},
["awy"] = {"Edera Awyu"},
["axb"] = {"Abipon"},
["axe"] = {"Ayerrerenge"},
["axg"] = {"Mato Grosso Arára"},
["axk"] = {"Yaka (Central African Republic)"},
["axl"] = {"Lower Southern Aranda"},
["axm"] = {"Middle Armenian"},
["axx"] = {"Xârâgurè"},
["aya"] = {"Awar"},
["ayb"] = {"Ayizo Gbe"},
["ayc"] = {"Southern Aymara"},
["ayd"] = {"Ayabadhu"},
["aye"] = {"Ayere"},
["ayg"] = {"Ginyanga"},
["ayh"] = {"Hadrami Arabic"},
["ayi"] = {"Leyigha"},
["ayk"] = {"Akuku"},
["ayl"] = {"Libyan Arabic"},
["ayn"] = {"Sanaani Arabic"},
["ayo"] = {"Ayoreo"},
["ayp"] = {"North Mesopotamian Arabic"},
["ayq"] = {"Ayi (Papua New Guinea)"},
["ayr"] = {"Central Aymara"},
["ays"] = {"Sorsogon Ayta"},
["ayt"] = {"Magbukun Ayta"},
["ayu"] = {"Ayu"},
["ayz"] = {"Mai Brat"},
["aza"] = {"Azha"},
["azb"] = {"South Azerbaijani"},
["azc"] = {"Uto-Aztecan languages"},
["azd"] = {"Eastern Durango Nahuatl"},
["azg"] = {"San Pedro Amuzgos Amuzgo"},
["azj"] = {"North Azerbaijani"},
["azm"] = {"Ipalapa Amuzgo"},
["azn"] = {"Western Durango Nahuatl"},
["azo"] = {"Awing"},
["azt"] = {"Faire Atta"},
["azz"] = {"Highland Puebla Nahuatl"},
["baa"] = {"Babatana"},
["bab"] = {"Bainouk-Gunyuño"},
["bac"] = {"Badui"},
["bad"] = {"Banda languages"},
["bae"] = {"Baré"},
["baf"] = {"Nubaca"},
["bag"] = {"Tuki"},
["bah"] = {"Bahamas Creole English"},
["bai"] = {"Bamileke languages"},
["baj"] = {"Barakai"},
["bal"] = {"Baluchi"},
["ban"] = {"Balinese"},
["bao"] = {"Waimaha"},
["bap"] = {"Bantawa"},
["bar"] = {"Bavarian"},
["bas"] = {"Basa (Cameroon)"},
["bat"] = {"Baltic languages"},
["bau"] = {"Bada (Nigeria)"},
["bav"] = {"Vengo"},
["baw"] = {"Bambili-Bambui"},
["bax"] = {"Bamun"},
["bay"] = {"Batuley"},
["bba"] = {"Baatonum"},
["bbb"] = {"Barai"},
["bbc"] = {"Batak Toba"},
["bbd"] = {"Bau"},
["bbe"] = {"Bangba"},
["bbf"] = {"Baibai"},
["bbg"] = {"Barama"},
["bbh"] = {"Bugan"},
["bbi"] = {"Barombi"},
["bbj"] = {"Ghomálá'"},
["bbk"] = {"Babanki"},
["bbl"] = {"Bats"},
["bbm"] = {"Babango"},
["bbn"] = {"Uneapa"},
["bbo"] = {"Northern Bobo Madaré", "Konabéré"},
["bbp"] = {"West Central Banda"},
["bbq"] = {"Bamali"},
["bbr"] = {"Girawa"},
["bbs"] = {"Bakpinka"},
["bbt"] = {"Mburku"},
["bbu"] = {"Kulung (Nigeria)"},
["bbv"] = {"Karnai"},
["bbw"] = {"Baba"},
["bbx"] = {"Bubia"},
["bby"] = {"Befang"},
["bca"] = {"Central Bai"},
["bcb"] = {"Bainouk-Samik"},
["bcc"] = {"Southern Balochi"},
["bcd"] = {"North Babar"},
["bce"] = {"Bamenyam"},
["bcf"] = {"Bamu"},
["bcg"] = {"Baga Pokur"},
["bch"] = {"Bariai"},
["bci"] = {"Baoulé"},
["bcj"] = {"Bardi"},
["bck"] = {"Bunuba"},
["bcl"] = {"Central Bikol"},
["bcm"] = {"Bannoni"},
["bcn"] = {"Bali (Nigeria)"},
["bco"] = {"Kaluli"},
["bcp"] = {"Bali (Democratic Republic of Congo)"},
["bcq"] = {"Bench"},
["bcr"] = {"Babine"},
["bcs"] = {"Kohumono"},
["bct"] = {"Bendi"},
["bcu"] = {"Awad Bing"},
["bcv"] = {"Shoo-Minda-Nye"},
["bcw"] = {"Bana"},
["bcy"] = {"Bacama"},
["bcz"] = {"Bainouk-Gunyaamolo"},
["bda"] = {"Bayot"},
["bdb"] = {"Basap"},
["bdc"] = {"Emberá-Baudó"},
["bdd"] = {"Bunama"},
["bde"] = {"Bade"},
["bdf"] = {"Biage"},
["bdg"] = {"Bonggi"},
["bdh"] = {"Baka (South Sudan)"},
["bdi"] = {"Burun"},
["bdj"] = {"Bai (South Sudan)", "Bai"},
["bdk"] = {"Budukh"},
["bdl"] = {"Indonesian Bajau"},
["bdm"] = {"Buduma"},
["bdn"] = {"Baldemu"},
["bdo"] = {"Morom"},
["bdp"] = {"Bende"},
["bdq"] = {"Bahnar"},
["bdr"] = {"West Coast Bajau"},
["bds"] = {"Burunge"},
["bdt"] = {"Bokoto"},
["bdu"] = {"Oroko"},
["bdv"] = {"Bodo Parja"},
["bdw"] = {"Baham"},
["bdx"] = {"Budong-Budong"},
["bdy"] = {"Bandjalang"},
["bdz"] = {"Badeshi"},
["bea"] = {"Beaver"},
["beb"] = {"Bebele"},
["bec"] = {"Iceve-Maci"},
["bed"] = {"Bedoanas"},
["bee"] = {"Byangsi"},
["bef"] = {"Benabena"},
["beg"] = {"Belait"},
["beh"] = {"Biali"},
["bei"] = {"Bekati'"},
["bej"] = {"Beja", "Bedawiyet"},
["bek"] = {"Bebeli"},
["bem"] = {"Bemba (Zambia)"},
["beo"] = {"Beami"},
["bep"] = {"Besoa"},
["beq"] = {"Beembe"},
["ber"] = {"Berber languages"},
["bes"] = {"Besme"},
["bet"] = {"Guiberoua Béte"},
["beu"] = {"Blagar"},
["bev"] = {"Daloa Bété"},
["bew"] = {"Betawi"},
["bex"] = {"Jur Modo"},
["bey"] = {"Beli (Papua New Guinea)"},
["bez"] = {"Bena (Tanzania)"},
["bfa"] = {"Bari"},
["bfb"] = {"Pauri Bareli"},
["bfc"] = {"Panyi Bai", "Northern Bai"},
["bfd"] = {"Bafut"},
["bfe"] = {"Betaf", "Tena"},
["bff"] = {"Bofi"},
["bfg"] = {"Busang Kayan"},
["bfh"] = {"Blafe"},
["bfi"] = {"British Sign Language"},
["bfj"] = {"Bafanji"},
["bfk"] = {"Ban Khor Sign Language"},
["bfl"] = {"Banda-Ndélé"},
["bfm"] = {"Mmen"},
["bfn"] = {"Bunak"},
["bfo"] = {"Malba Birifor"},
["bfp"] = {"Beba"},
["bfq"] = {"Badaga"},
["bfr"] = {"Bazigar"},
["bfs"] = {"Southern Bai"},
["bft"] = {"Balti"},
["bfu"] = {"Gahri"},
["bfw"] = {"Bondo"},
["bfx"] = {"Bantayanon"},
["bfy"] = {"Bagheli"},
["bfz"] = {"Mahasu Pahari"},
["bga"] = {"Gwamhi-Wuri"},
["bgb"] = {"Bobongko"},
["bgc"] = {"Haryanvi"},
["bgd"] = {"Rathwi Bareli"},
["bge"] = {"Bauria"},
["bgf"] = {"Bangandu"},
["bgg"] = {"Bugun"},
["bgi"] = {"Giangan"},
["bgj"] = {"Bangolan"},
["bgk"] = {"Bit", "Buxinhua"},
["bgl"] = {"Bo (Laos)"},
["bgn"] = {"Western Balochi"},
["bgo"] = {"Baga Koga"},
["bgp"] = {"Eastern Balochi"},
["bgq"] = {"Bagri"},
["bgr"] = {"Bawm Chin"},
["bgs"] = {"Tagabawa"},
["bgt"] = {"Bughotu"},
["bgu"] = {"Mbongno"},
["bgv"] = {"Warkay-Bipim"},
["bgw"] = {"Bhatri"},
["bgx"] = {"Balkan Gagauz Turkish"},
["bgy"] = {"Benggoi"},
["bgz"] = {"Banggai"},
["bha"] = {"Bharia"},
["bhb"] = {"Bhili"},
["bhc"] = {"Biga"},
["bhd"] = {"Bhadrawahi"},
["bhe"] = {"Bhaya"},
["bhf"] = {"Odiai"},
["bhg"] = {"Binandere"},
["bhh"] = {"Bukharic"},
["bhi"] = {"Bhilali"},
["bhj"] = {"Bahing"},
["bhl"] = {"Bimin"},
["bhm"] = {"Bathari"},
["bhn"] = {"Bohtan Neo-Aramaic"},
["bho"] = {"Bhojpuri"},
["bhp"] = {"Bima"},
["bhq"] = {"Tukang Besi South"},
["bhr"] = {"Bara Malagasy"},
["bhs"] = {"Buwal"},
["bht"] = {"Bhattiyali"},
["bhu"] = {"Bhunjia"},
["bhv"] = {"Bahau"},
["bhw"] = {"Biak"},
["bhx"] = {"Bhalay"},
["bhy"] = {"Bhele"},
["bhz"] = {"Bada (Indonesia)"},
["bia"] = {"Badimaya"},
["bib"] = {"Bissa", "Bisa"},
["bid"] = {"Bidiyo"},
["bie"] = {"Bepour"},
["bif"] = {"Biafada"},
["big"] = {"Biangai"},
["bik"] = {"Bikol"},
["bil"] = {"Bile"},
["bim"] = {"Bimoba"},
["bin"] = {"Bini", "Edo"},
["bio"] = {"Nai"},
["bip"] = {"Bila"},
["biq"] = {"Bipi"},
["bir"] = {"Bisorio"},
["bit"] = {"Berinomo"},
["biu"] = {"Biete"},
["biv"] = {"Southern Birifor"},
["biw"] = {"Kol (Cameroon)"},
["bix"] = {"Bijori"},
["biy"] = {"Birhor"},
["biz"] = {"Baloi"},
["bja"] = {"Budza"},
["bjb"] = {"Banggarla"},
["bjc"] = {"Bariji"},
["bje"] = {"Biao-Jiao Mien"},
["bjf"] = {"Barzani Jewish Neo-Aramaic"},
["bjg"] = {"Bidyogo"},
["bjh"] = {"Bahinemo"},
["bji"] = {"Burji"},
["bjj"] = {"Kanauji"},
["bjk"] = {"Barok"},
["bjl"] = {"Bulu (Papua New Guinea)"},
["bjm"] = {"Bajelani"},
["bjn"] = {"Banjar"},
["bjo"] = {"Mid-Southern Banda"},
["bjp"] = {"Fanamaket"},
["bjr"] = {"Binumarien"},
["bjs"] = {"Bajan"},
["bjt"] = {"Balanta-Ganja"},
["bju"] = {"Busuu"},
["bjv"] = {"Bedjond"},
["bjw"] = {"Bakwé"},
["bjx"] = {"Banao Itneg"},
["bjy"] = {"Bayali"},
["bjz"] = {"Baruga"},
["bka"] = {"Kyak"},
["bkc"] = {"Baka (Cameroon)"},
["bkd"] = {"Binukid", "Talaandig"},
["bkf"] = {"Beeke"},
["bkg"] = {"Buraka"},
["bkh"] = {"Bakoko"},
["bki"] = {"Baki"},
["bkj"] = {"Pande"},
["bkk"] = {"Brokskat"},
["bkl"] = {"Berik"},
["bkm"] = {"Kom (Cameroon)"},
["bkn"] = {"Bukitan"},
["bko"] = {"Kwa'"},
["bkp"] = {"Boko (Democratic Republic of Congo)"},
["bkq"] = {"Bakairí"},
["bkr"] = {"Bakumpai"},
["bks"] = {"Northern Sorsoganon"},
["bkt"] = {"Boloki"},
["bku"] = {"Buhid"},
["bkv"] = {"Bekwarra"},
["bkw"] = {"Bekwel"},
["bkx"] = {"Baikeno"},
["bky"] = {"Bokyi"},
["bkz"] = {"Bungku"},
["bla"] = {"Siksika"},
["blb"] = {"Bilua"},
["blc"] = {"Bella Coola"},
["bld"] = {"Bolango"},
["ble"] = {"Balanta-Kentohe"},
["blf"] = {"Buol"},
["blh"] = {"Kuwaa"},
["bli"] = {"Bolia"},
["blj"] = {"Bolongan"},
["blk"] = {"Pa'o Karen", "Pa'O"},
["bll"] = {"Biloxi"},
["blm"] = {"Beli (South Sudan)"},
["bln"] = {"Southern Catanduanes Bikol"},
["blo"] = {"Anii"},
["blp"] = {"Blablanga"},
["blq"] = {"Baluan-Pam"},
["blr"] = {"Blang"},
["bls"] = {"Balaesang"},
["blt"] = {"Tai Dam"},
["blv"] = {"Kibala", "Bolo"},
["blw"] = {"Balangao"},
["blx"] = {"Mag-Indi Ayta"},
["bly"] = {"Notre"},
["blz"] = {"Balantak"},
["bma"] = {"Lame"},
["bmb"] = {"Bembe"},
["bmc"] = {"Biem"},
["bmd"] = {"Baga Manduri"},
["bme"] = {"Limassa"},
["bmf"] = {"Bom-Kim"},
["bmg"] = {"Bamwe"},
["bmh"] = {"Kein"},
["bmi"] = {"Bagirmi"},
["bmj"] = {"Bote-Majhi"},
["bmk"] = {"Ghayavi"},
["bml"] = {"Bomboli"},
["bmm"] = {"Northern Betsimisaraka Malagasy"},
["bmn"] = {"Bina (Papua New Guinea)"},
["bmo"] = {"Bambalang"},
["bmp"] = {"Bulgebi"},
["bmq"] = {"Bomu"},
["bmr"] = {"Muinane"},
["bms"] = {"Bilma Kanuri"},
["bmt"] = {"Biao Mon"},
["bmu"] = {"Somba-Siawari"},
["bmv"] = {"Bum"},
["bmw"] = {"Bomwali"},
["bmx"] = {"Baimak"},
["bmz"] = {"Baramu"},
["bna"] = {"Bonerate"},
["bnb"] = {"Bookan"},
["bnc"] = {"Bontok"},
["bnd"] = {"Banda (Indonesia)"},
["bne"] = {"Bintauna"},
["bnf"] = {"Masiwang"},
["bng"] = {"Benga"},
["bni"] = {"Bangi"},
["bnj"] = {"Eastern Tawbuid"},
["bnk"] = {"Bierebo"},
["bnl"] = {"Boon"},
["bnm"] = {"Batanga"},
["bnn"] = {"Bunun"},
["bno"] = {"Bantoanon"},
["bnp"] = {"Bola"},
["bnq"] = {"Bantik"},
["bnr"] = {"Butmas-Tur"},
["bns"] = {"Bundeli"},
["bnt"] = {"Bantu languages"},
["bnu"] = {"Bentong"},
["bnv"] = {"Bonerif", "Beneraf", "Edwas"},
["bnw"] = {"Bisis"},
["bnx"] = {"Bangubangu"},
["bny"] = {"Bintulu"},
["bnz"] = {"Beezen"},
["boa"] = {"Bora"},
["bob"] = {"Aweer"},
["boe"] = {"Mundabli"},
["bof"] = {"Bolon"},
["bog"] = {"Bamako Sign Language"},
["boh"] = {"Boma"},
["boi"] = {"Barbareño"},
["boj"] = {"Anjam"},
["bok"] = {"Bonjo"},
["bol"] = {"Bole"},
["bom"] = {"Berom"},
["bon"] = {"Bine"},
["boo"] = {"Tiemacèwè Bozo"},
["bop"] = {"Bonkiman"},
["boq"] = {"Bogaya"},
["bor"] = {"Borôro"},
["bot"] = {"Bongo"},
["bou"] = {"Bondei"},
["bov"] = {"Tuwuli"},
["bow"] = {"Rema"},
["box"] = {"Buamu"},
["boy"] = {"Bodo (Central African Republic)"},
["boz"] = {"Tiéyaxo Bozo"},
["bpa"] = {"Daakaka"},
["bpc"] = {"Mbuk"},
["bpd"] = {"Banda-Banda"},
["bpe"] = {"Bauni"},
["bpg"] = {"Bonggo"},
["bph"] = {"Botlikh"},
["bpi"] = {"Bagupi"},
["bpj"] = {"Binji"},
["bpk"] = {"Orowe", "'Ôrôê"},
["bpl"] = {"Broome Pearling Lugger Pidgin"},
["bpm"] = {"Biyom"},
["bpn"] = {"Dzao Min"},
["bpo"] = {"Anasi"},
["bpp"] = {"Kaure"},
["bpq"] = {"Banda Malay"},
["bpr"] = {"Koronadal Blaan"},
["bps"] = {"Sarangani Blaan"},
["bpt"] = {"Barrow Point"},
["bpu"] = {"Bongu"},
["bpv"] = {"Bian Marind"},
["bpw"] = {"Bo (Papua New Guinea)"},
["bpx"] = {"Palya Bareli"},
["bpy"] = {"Bishnupriya"},
["bpz"] = {"Bilba"},
["bqa"] = {"Tchumbuli"},
["bqb"] = {"Bagusa"},
["bqc"] = {"Boko (Benin)", "Boo"},
["bqd"] = {"Bung"},
["bqf"] = {"Baga Kaloum"},
["bqg"] = {"Bago-Kusuntu"},
["bqh"] = {"Baima"},
["bqi"] = {"Bakhtiari"},
["bqj"] = {"Bandial"},
["bqk"] = {"Banda-Mbrès"},
["bql"] = {"Bilakura"},
["bqm"] = {"Wumboko"},
["bqn"] = {"Bulgarian Sign Language"},
["bqo"] = {"Balo"},
["bqp"] = {"Busa"},
["bqq"] = {"Biritai"},
["bqr"] = {"Burusu"},
["bqs"] = {"Bosngun"},
["bqt"] = {"Bamukumbit"},
["bqu"] = {"Boguru"},
["bqv"] = {"Koro Wachi", "Begbere-Ejar"},
["bqw"] = {"Buru (Nigeria)"},
["bqx"] = {"Baangi"},
["bqy"] = {"Bengkala Sign Language"},
["bqz"] = {"Bakaka"},
["bra"] = {"Braj"},
["brb"] = {"Brao", "Lave"},
["brc"] = {"Berbice Creole Dutch"},
["brd"] = {"Baraamu"},
["brf"] = {"Bira"},
["brg"] = {"Baure"},
["brh"] = {"Brahui"},
["bri"] = {"Mokpwe"},
["brj"] = {"Bieria"},
["brk"] = {"Birked"},
["brl"] = {"Birwa"},
["brm"] = {"Barambu"},
["brn"] = {"Boruca"},
["bro"] = {"Brokkat"},
["brp"] = {"Barapasi"},
["brq"] = {"Breri"},
["brr"] = {"Birao"},
["brs"] = {"Baras"},
["brt"] = {"Bitare"},
["bru"] = {"Eastern Bru"},
["brv"] = {"Western Bru"},
["brw"] = {"Bellari"},
["brx"] = {"Bodo (India)"},
["bry"] = {"Burui"},
["brz"] = {"Bilbil"},
["bsa"] = {"Abinomn"},
["bsb"] = {"Brunei Bisaya"},
["bsc"] = {"Bassari", "Oniyan"},
["bse"] = {"Wushi"},
["bsf"] = {"Bauchi"},
["bsg"] = {"Bashkardi"},
["bsh"] = {"Kati"},
["bsi"] = {"Bassossi"},
["bsj"] = {"Bangwinji"},
["bsk"] = {"Burushaski"},
["bsl"] = {"Basa-Gumna"},
["bsm"] = {"Busami"},
["bsn"] = {"Barasana-Eduria"},
["bso"] = {"Buso"},
["bsp"] = {"Baga Sitemu"},
["bsq"] = {"Bassa"},
["bsr"] = {"Bassa-Kontagora"},
["bss"] = {"Akoose"},
["bst"] = {"Basketo"},
["bsu"] = {"Bahonsuai"},
["bsv"] = {"Baga Sobané"},
["bsw"] = {"Baiso"},
["bsx"] = {"Yangkam"},
["bsy"] = {"Sabah Bisaya"},
["bta"] = {"Bata"},
["btc"] = {"Bati (Cameroon)"},
["btd"] = {"Batak Dairi"},
["bte"] = {"Gamo-Ningi"},
["btf"] = {"Birgit"},
["btg"] = {"Gagnoa Bété"},
["bth"] = {"Biatah Bidayuh"},
["bti"] = {"Burate"},
["btj"] = {"Bacanese Malay"},
["btk"] = {"Batak languages"},
["btm"] = {"Batak Mandailing"},
["btn"] = {"Ratagnon"},
["bto"] = {"Rinconada Bikol"},
["btp"] = {"Budibud"},
["btq"] = {"Batek"},
["btr"] = {"Baetora"},
["bts"] = {"Batak Simalungun"},
["btt"] = {"Bete-Bendi"},
["btu"] = {"Batu"},
["btv"] = {"Bateri"},
["btw"] = {"Butuanon"},
["btx"] = {"Batak Karo"},
["bty"] = {"Bobot"},
["btz"] = {"Batak Alas-Kluet"},
["bua"] = {"Buriat"},
["bub"] = {"Bua"},
["buc"] = {"Bushi"},
["bud"] = {"Ntcham"},
["bue"] = {"Beothuk"},
["buf"] = {"Bushoong"},
["bug"] = {"Buginese"},
["buh"] = {"Younuo Bunu"},
["bui"] = {"Bongili"},
["buj"] = {"Basa-Gurmana"},
["buk"] = {"Bugawac"},
["bum"] = {"Bulu (Cameroon)"},
["bun"] = {"Sherbro"},
["buo"] = {"Terei"},
["bup"] = {"Busoa"},
["buq"] = {"Brem"},
["bus"] = {"Bokobaru"},
["but"] = {"Bungain"},
["buu"] = {"Budu"},
["buv"] = {"Bun"},
["buw"] = {"Bubi"},
["bux"] = {"Boghom"},
["buy"] = {"Bullom So"},
["buz"] = {"Bukwen"},
["bva"] = {"Barein"},
["bvb"] = {"Bube"},
["bvc"] = {"Baelelea"},
["bvd"] = {"Baeggu"},
["bve"] = {"Berau Malay"},
["bvf"] = {"Boor"},
["bvg"] = {"Bonkeng"},
["bvh"] = {"Bure"},
["bvi"] = {"Belanda Viri"},
["bvj"] = {"Baan"},
["bvk"] = {"Bukat"},
["bvl"] = {"Bolivian Sign Language"},
["bvm"] = {"Bamunka"},
["bvn"] = {"Buna"},
["bvo"] = {"Bolgo"},
["bvp"] = {"Bumang"},
["bvq"] = {"Birri"},
["bvr"] = {"Burarra"},
["bvt"] = {"Bati (Indonesia)"},
["bvu"] = {"Bukit Malay"},
["bvv"] = {"Baniva"},
["bvw"] = {"Boga"},
["bvx"] = {"Dibole"},
["bvy"] = {"Baybayanon"},
["bvz"] = {"Bauzi"},
["bwa"] = {"Bwatoo"},
["bwb"] = {"Namosi-Naitasiri-Serua"},
["bwc"] = {"Bwile"},
["bwd"] = {"Bwaidoka"},
["bwe"] = {"Bwe Karen"},
["bwf"] = {"Boselewa"},
["bwg"] = {"Barwe"},
["bwh"] = {"Bishuo"},
["bwi"] = {"Baniwa"},
["bwj"] = {"Láá Láá Bwamu"},
["bwk"] = {"Bauwaki"},
["bwl"] = {"Bwela"},
["bwm"] = {"Biwat"},
["bwn"] = {"Wunai Bunu"},
["bwo"] = {"Boro (Ethiopia)", "Borna (Ethiopia)"},
["bwp"] = {"Mandobo Bawah"},
["bwq"] = {"Southern Bobo Madaré"},
["bwr"] = {"Bura-Pabir"},
["bws"] = {"Bomboma"},
["bwt"] = {"Bafaw-Balong"},
["bwu"] = {"Buli (Ghana)"},
["bww"] = {"Bwa"},
["bwx"] = {"Bu-Nao Bunu"},
["bwy"] = {"Cwi Bwamu"},
["bwz"] = {"Bwisi"},
["bxa"] = {"Tairaha"},
["bxb"] = {"Belanda Bor"},
["bxc"] = {"Molengue"},
["bxd"] = {"Pela"},
["bxe"] = {"Birale"},
["bxf"] = {"Bilur", "Minigir"},
["bxg"] = {"Bangala"},
["bxh"] = {"Buhutu"},
["bxi"] = {"Pirlatapa"},
["bxj"] = {"Bayungu"},
["bxk"] = {"Bukusu", "Lubukusu"},
["bxl"] = {"Jalkunan"},
["bxm"] = {"Mongolia Buriat"},
["bxn"] = {"Burduna"},
["bxo"] = {"Barikanchi"},
["bxp"] = {"Bebil"},
["bxq"] = {"Beele"},
["bxr"] = {"Russia Buriat"},
["bxs"] = {"Busam"},
["bxu"] = {"China Buriat"},
["bxv"] = {"Berakou"},
["bxw"] = {"Bankagooma"},
["bxz"] = {"Binahari"},
["bya"] = {"Batak"},
["byb"] = {"Bikya"},
["byc"] = {"Ubaghara"},
["byd"] = {"Benyadu'"},
["bye"] = {"Pouye"},
["byf"] = {"Bete"},
["byg"] = {"Baygo"},
["byh"] = {"Bhujel"},
["byi"] = {"Buyu"},
["byj"] = {"Bina (Nigeria)"},
["byk"] = {"Biao"},
["byl"] = {"Bayono"},
["bym"] = {"Bidjara"},
["byn"] = {"Bilin", "Blin"},
["byo"] = {"Biyo"},
["byp"] = {"Bumaji"},
["byq"] = {"Basay"},
["byr"] = {"Baruya", "Yipma"},
["bys"] = {"Burak"},
["byt"] = {"Berti"},
["byv"] = {"Medumba"},
["byw"] = {"Belhariya"},
["byx"] = {"Qaqet"},
["byz"] = {"Banaro"},
["bza"] = {"Bandi"},
["bzb"] = {"Andio"},
["bzc"] = {"Southern Betsimisaraka Malagasy"},
["bzd"] = {"Bribri"},
["bze"] = {"Jenaama Bozo"},
["bzf"] = {"Boikin"},
["bzg"] = {"Babuza"},
["bzh"] = {"Mapos Buang"},
["bzi"] = {"Bisu"},
["bzj"] = {"Belize Kriol English"},
["bzk"] = {"Nicaragua Creole English"},
["bzl"] = {"Boano (Sulawesi)"},
["bzm"] = {"Bolondo"},
["bzn"] = {"Boano (Maluku)"},
["bzo"] = {"Bozaba"},
["bzp"] = {"Kemberano"},
["bzq"] = {"Buli (Indonesia)"},
["bzr"] = {"Biri"},
["bzs"] = {"Brazilian Sign Language"},
["bzt"] = {"Brithenig"},
["bzu"] = {"Burmeso"},
["bzv"] = {"Naami"},
["bzw"] = {"Basa (Nigeria)"},
["bzx"] = {"Kɛlɛngaxo Bozo"},
["bzy"] = {"Obanliku"},
["bzz"] = {"Evant"},
["caa"] = {"Chortí"},
["cab"] = {"Garifuna"},
["cac"] = {"Chuj"},
["cad"] = {"Caddo"},
["cae"] = {"Lehar", "Laalaa"},
["caf"] = {"Southern Carrier"},
["cag"] = {"Nivaclé"},
["cah"] = {"Cahuarano"},
["cai"] = {"Central American Indian languages"},
["caj"] = {"Chané"},
["cak"] = {"Kaqchikel", "Cakchiquel"},
["cal"] = {"Carolinian"},
["cam"] = {"Cemuhî"},
["can"] = {"Chambri"},
["cao"] = {"Chácobo"},
["cap"] = {"Chipaya"},
["caq"] = {"Car Nicobarese"},
["car"] = {"Galibi Carib"},
["cas"] = {"Tsimané"},
["cau"] = {"Caucasian languages"},
["cav"] = {"Cavineña"},
["caw"] = {"Callawalla"},
["cax"] = {"Chiquitano"},
["cay"] = {"Cayuga"},
["caz"] = {"Canichana"},
["cba"] = {"Chibchan languages"},
["cbb"] = {"Cabiyarí"},
["cbc"] = {"Carapana"},
["cbd"] = {"Carijona"},
["cbg"] = {"Chimila"},
["cbi"] = {"Chachi"},
["cbj"] = {"Ede Cabe"},
["cbk"] = {"Chavacano"},
["cbl"] = {"Bualkhaw Chin"},
["cbn"] = {"Nyahkur"},
["cbo"] = {"Izora"},
["cbq"] = {"Tsucuba", "Cuba"},
["cbr"] = {"Cashibo-Cacataibo"},
["cbs"] = {"Cashinahua"},
["cbt"] = {"Chayahuita"},
["cbu"] = {"Candoshi-Shapra"},
["cbv"] = {"Cacua"},
["cbw"] = {"Kinabalian"},
["cby"] = {"Carabayo"},
["ccc"] = {"Chamicuro"},
["ccd"] = {"Cafundo Creole"},
["cce"] = {"Chopi"},
["ccg"] = {"Samba Daka"},
["cch"] = {"Atsam"},
["ccj"] = {"Kasanga"},
["ccl"] = {"Cutchi-Swahili"},
["ccm"] = {"Malaccan Creole Malay"},
["ccn"] = {"North Caucasian languages"},
["cco"] = {"Comaltepec Chinantec"},
["ccp"] = {"Chakma"},
["ccr"] = {"Cacaopera"},
["ccs"] = {"South Caucasian languages"},
["cda"] = {"Choni"},
["cdc"] = {"Chadic languages"},
["cdd"] = {"Caddoan languages"},
["cde"] = {"Chenchu"},
["cdf"] = {"Chiru"},
["cdh"] = {"Chambeali"},
["cdi"] = {"Chodri"},
["cdj"] = {"Churahi"},
["cdm"] = {"Chepang"},
["cdn"] = {"Chaudangsi"},
["cdo"] = {"Min Dong Chinese"},
["cdr"] = {"Cinda-Regi-Tiyal"},
["cds"] = {"Chadian Sign Language"},
["cdy"] = {"Chadong"},
["cdz"] = {"Koda"},
["cea"] = {"Lower Chehalis"},
["ceb"] = {"Cebuano"},
["ceg"] = {"Chamacoco"},
["cek"] = {"Eastern Khumi Chin"},
["cel"] = {"Celtic languages"},
["cen"] = {"Cen"},
["cet"] = {"Centúúm"},
["cey"] = {"Ekai Chin"},
["cfa"] = {"Dijim-Bwilim"},
["cfd"] = {"Cara"},
["cfg"] = {"Como Karim"},
["cfm"] = {"Falam Chin"},
["cga"] = {"Changriwa"},
["cgc"] = {"Kagayanen"},
["cgg"] = {"Chiga"},
["cgk"] = {"Chocangacakha"},
["chb"] = {"Chibcha"},
["chc"] = {"Catawba"},
["chd"] = {"Highland Oaxaca Chontal"},
["chf"] = {"Tabasco Chontal"},
["chg"] = {"Chagatai"},
["chh"] = {"Chinook"},
["chj"] = {"Ojitlán Chinantec"},
["chk"] = {"Chuukese"},
["chl"] = {"Cahuilla"},
["chm"] = {"Mari (Russia)"},
["chn"] = {"Chinook jargon"},
["cho"] = {"Choctaw"},
["chp"] = {"Chipewyan", "Dene Suline"},
["chq"] = {"Quiotepec Chinantec"},
["chr"] = {"Cherokee"},
["cht"] = {"Cholón"},
["chw"] = {"Chuwabu"},
["chx"] = {"Chantyal"},
["chy"] = {"Cheyenne"},
["chz"] = {"Ozumacín Chinantec"},
["cia"] = {"Cia-Cia"},
["cib"] = {"Ci Gbe"},
["cic"] = {"Chickasaw"},
["cid"] = {"Chimariko"},
["cie"] = {"Cineni"},
["cih"] = {"Chinali"},
["cik"] = {"Chitkuli Kinnauri"},
["cim"] = {"Cimbrian"},
["cin"] = {"Cinta Larga"},
["cip"] = {"Chiapanec"},
["cir"] = {"Tiri", "Haméa", "Méa"},
["ciw"] = {"Chippewa"},
["ciy"] = {"Chaima"},
["cja"] = {"Western Cham"},
["cje"] = {"Chru"},
["cjh"] = {"Upper Chehalis"},
["cji"] = {"Chamalal"},
["cjk"] = {"Chokwe"},
["cjm"] = {"Eastern Cham"},
["cjn"] = {"Chenapian"},
["cjo"] = {"Ashéninka Pajonal"},
["cjp"] = {"Cabécar"},
["cjs"] = {"Shor"},
["cjv"] = {"Chuave"},
["cjy"] = {"Jinyu Chinese"},
["ckb"] = {"Central Kurdish"},
["ckh"] = {"Chak"},
["ckl"] = {"Cibak"},
["ckm"] = {"Chakavian"},
["ckn"] = {"Kaang Chin"},
["cko"] = {"Anufo"},
["ckq"] = {"Kajakse"},
["ckr"] = {"Kairak"},
["cks"] = {"Tayo"},
["ckt"] = {"Chukot"},
["cku"] = {"Koasati"},
["ckv"] = {"Kavalan"},
["ckx"] = {"Caka"},
["cky"] = {"Cakfem-Mushere"},
["ckz"] = {"Cakchiquel-Quiché Mixed Language"},
["cla"] = {"Ron"},
["clc"] = {"Chilcotin"},
["cld"] = {"Chaldean Neo-Aramaic"},
["cle"] = {"Lealao Chinantec"},
["clh"] = {"Chilisso"},
["cli"] = {"Chakali"},
["clj"] = {"Laitu Chin"},
["clk"] = {"Idu-Mishmi"},
["cll"] = {"Chala"},
["clm"] = {"Clallam"},
["clo"] = {"Lowland Oaxaca Chontal"},
["clt"] = {"Lautu Chin"},
["clu"] = {"Caluyanun"},
["clw"] = {"Chulym"},
["cly"] = {"Eastern Highland Chatino"},
["cma"] = {"Maa"},
["cmc"] = {"Chamic languages"},
["cme"] = {"Cerma"},
["cmg"] = {"Classical Mongolian"},
["cmi"] = {"Emberá-Chamí"},
["cml"] = {"Campalagian"},
["cmm"] = {"Michigamea"},
["cmn"] = {"Mandarin Chinese"},
["cmo"] = {"Central Mnong"},
["cmr"] = {"Mro-Khimi Chin"},
["cms"] = {"Messapic"},
["cmt"] = {"Camtho"},
["cna"] = {"Changthang"},
["cnb"] = {"Chinbon Chin"},
["cnc"] = {"Côông"},
["cng"] = {"Northern Qiang"},
["cnh"] = {"Hakha Chin", "Haka Chin"},
["cni"] = {"Asháninka"},
["cnk"] = {"Khumi Chin"},
["cnl"] = {"Lalana Chinantec"},
["cno"] = {"Con"},
["cnp"] = {"Northern Ping Chinese", "Northern Pinghua"},
["cnq"] = {"Chung"},
["cnr"] = {"Montenegrin"},
["cns"] = {"Central Asmat"},
["cnt"] = {"Tepetotutla Chinantec"},
["cnu"] = {"Chenoua"},
["cnw"] = {"Ngawn Chin"},
["cnx"] = {"Middle Cornish"},
["coa"] = {"Cocos Islands Malay"},
["cob"] = {"Chicomuceltec"},
["coc"] = {"Cocopa"},
["cod"] = {"Cocama-Cocamilla"},
["coe"] = {"Koreguaje"},
["cof"] = {"Colorado"},
["cog"] = {"Chong"},
["coh"] = {"Chonyi-Dzihana-Kauma", "Chichonyi-Chidzihana-Chikauma"},
["coj"] = {"Cochimi"},
["cok"] = {"Santa Teresa Cora"},
["col"] = {"Columbia-Wenatchi"},
["com"] = {"Comanche"},
["con"] = {"Cofán"},
["coo"] = {"Comox"},
["cop"] = {"Coptic"},
["coq"] = {"Coquille"},
["cot"] = {"Caquinte"},
["cou"] = {"Wamey"},
["cov"] = {"Cao Miao"},
["cow"] = {"Cowlitz"},
["cox"] = {"Nanti"},
["coz"] = {"Chochotec"},
["cpa"] = {"Palantla Chinantec"},
["cpb"] = {"Ucayali-Yurúa Ashéninka"},
["cpc"] = {"Ajyíninka Apurucayali"},
["cpe"] = {"English-based creoles and pidgins"},
["cpf"] = {"French-based creoles and pidgins"},
["cpg"] = {"Cappadocian Greek"},
["cpi"] = {"Chinese Pidgin English"},
["cpn"] = {"Cherepon"},
["cpo"] = {"Kpeego"},
["cpp"] = {"Portuguese-based creoles and pidgins"},
["cps"] = {"Capiznon"},
["cpu"] = {"Pichis Ashéninka"},
["cpx"] = {"Pu-Xian Chinese"},
["cpy"] = {"South Ucayali Ashéninka"},
["cqd"] = {"Chuanqiandian Cluster Miao"},
["cra"] = {"Chara"},
["crb"] = {"Island Carib"},
["crc"] = {"Lonwolwol"},
["crd"] = {"Coeur d'Alene"},
["crf"] = {"Caramanta"},
["crg"] = {"Michif"},
["crh"] = {"Crimean Tatar", "Crimean Turkish"},
["cri"] = {"Sãotomense"},
["crj"] = {"Southern East Cree"},
["crk"] = {"Plains Cree"},
["crl"] = {"Northern East Cree"},
["crm"] = {"Moose Cree"},
["crn"] = {"El Nayar Cora"},
["cro"] = {"Crow"},
["crp"] = {"Creoles and pidgins"},
["crq"] = {"Iyo'wujwa Chorote"},
["crr"] = {"Carolina Algonquian"},
["crs"] = {"Seselwa Creole French"},
["crt"] = {"Iyojwa'ja Chorote"},
["crv"] = {"Chaura"},
["crw"] = {"Chrau"},
["crx"] = {"Carrier"},
["cry"] = {"Cori"},
["crz"] = {"Cruzeño"},
["csa"] = {"Chiltepec Chinantec"},
["csb"] = {"Kashubian"},
["csc"] = {"Catalan Sign Language", "Lengua de señas catalana", "Llengua de Signes Catalana"},
["csd"] = {"Chiangmai Sign Language"},
["cse"] = {"Czech Sign Language"},
["csf"] = {"Cuba Sign Language"},
["csg"] = {"Chilean Sign Language"},
["csh"] = {"Asho Chin"},
["csi"] = {"Coast Miwok"},
["csj"] = {"Songlai Chin"},
["csk"] = {"Jola-Kasa"},
["csl"] = {"Chinese Sign Language"},
["csm"] = {"Central Sierra Miwok"},
["csn"] = {"Colombian Sign Language"},
["cso"] = {"Sochiapam Chinantec", "Sochiapan Chinantec"},
["csp"] = {"Southern Ping Chinese", "Southern Pinghua"},
["csq"] = {"Croatia Sign Language"},
["csr"] = {"Costa Rican Sign Language"},
["css"] = {"Southern Ohlone"},
["cst"] = {"Northern Ohlone"},
["csu"] = {"Central Sudanic languages"},
["csv"] = {"Sumtu Chin"},
["csw"] = {"Swampy Cree"},
["csx"] = {"Cambodian Sign Language"},
["csy"] = {"Siyin Chin"},
["csz"] = {"Coos"},
["cta"] = {"Tataltepec Chatino"},
["ctc"] = {"Chetco"},
["ctd"] = {"Tedim Chin"},
["cte"] = {"Tepinapa Chinantec"},
["ctg"] = {"Chittagonian"},
["cth"] = {"Thaiphum Chin"},
["ctl"] = {"Tlacoatzintepec Chinantec"},
["ctm"] = {"Chitimacha"},
["ctn"] = {"Chhintange"},
["cto"] = {"Emberá-Catío"},
["ctp"] = {"Western Highland Chatino"},
["cts"] = {"Northern Catanduanes Bikol"},
["ctt"] = {"Wayanad Chetti"},
["ctu"] = {"Chol"},
["cty"] = {"Moundadan Chetty"},
["ctz"] = {"Zacatepec Chatino"},
["cua"] = {"Cua"},
["cub"] = {"Cubeo"},
["cuc"] = {"Usila Chinantec"},
["cuh"] = {"Chuka", "Gichuka"},
["cui"] = {"Cuiba"},
["cuj"] = {"Mashco Piro"},
["cuk"] = {"San Blas Kuna"},
["cul"] = {"Culina", "Kulina"},
["cuo"] = {"Cumanagoto"},
["cup"] = {"Cupeño"},
["cuq"] = {"Cun"},
["cur"] = {"Chhulung"},
["cus"] = {"Cushitic languages"},
["cut"] = {"Teutila Cuicatec"},
["cuu"] = {"Tai Ya"},
["cuv"] = {"Cuvok"},
["cuw"] = {"Chukwa"},
["cux"] = {"Tepeuxila Cuicatec"},
["cuy"] = {"Cuitlatec"},
["cvg"] = {"Chug"},
["cvn"] = {"Valle Nacional Chinantec"},
["cwa"] = {"Kabwa"},
["cwb"] = {"Maindo"},
["cwd"] = {"Woods Cree"},
["cwe"] = {"Kwere"},
["cwg"] = {"Chewong", "Cheq Wong"},
["cwt"] = {"Kuwaataay"},
["cya"] = {"Nopala Chatino"},
["cyb"] = {"Cayubaba"},
["cyo"] = {"Cuyonon"},
["czh"] = {"Huizhou Chinese"},
["czk"] = {"Knaanic"},
["czn"] = {"Zenzontepec Chatino"},
["czo"] = {"Min Zhong Chinese"},
["czt"] = {"Zotung Chin"},
["daa"] = {"Dangaléat"},
["dac"] = {"Dambi"},
["dad"] = {"Marik"},
["dae"] = {"Duupa"},
["dag"] = {"Dagbani"},
["dah"] = {"Gwahatike"},
["dai"] = {"Day"},
["daj"] = {"Dar Fur Daju"},
["dak"] = {"Dakota"},
["dal"] = {"Dahalo"},
["dam"] = {"Damakawa"},
["dao"] = {"Daai Chin"},
["daq"] = {"Dandami Maria"},
["dar"] = {"Dargwa"},
["das"] = {"Daho-Doo"},
["dau"] = {"Dar Sila Daju"},
["dav"] = {"Taita", "Dawida"},
["daw"] = {"Davawenyo"},
["dax"] = {"Dayi"},
["day"] = {"Land Dayak languages"},
["daz"] = {"Dao"},
["dba"] = {"Bangime"},
["dbb"] = {"Deno"},
["dbd"] = {"Dadiya"},
["dbe"] = {"Dabe"},
["dbf"] = {"Edopi"},
["dbg"] = {"Dogul Dom Dogon"},
["dbi"] = {"Doka"},
["dbj"] = {"Ida'an"},
["dbl"] = {"Dyirbal"},
["dbm"] = {"Duguri"},
["dbn"] = {"Duriankere"},
["dbo"] = {"Dulbu"},
["dbp"] = {"Duwai"},
["dbq"] = {"Daba"},
["dbr"] = {"Dabarre"},
["dbt"] = {"Ben Tey Dogon"},
["dbu"] = {"Bondum Dom Dogon"},
["dbv"] = {"Dungu"},
["dbw"] = {"Bankan Tey Dogon"},
["dby"] = {"Dibiyaso"},
["dcc"] = {"Deccan"},
["dcr"] = {"Negerhollands"},
["dda"] = {"Dadi Dadi"},
["ddd"] = {"Dongotono"},
["dde"] = {"Doondo"},
["ddg"] = {"Fataluku"},
["ddi"] = {"West Goodenough"},
["ddj"] = {"Jaru"},
["ddn"] = {"Dendi (Benin)"},
["ddo"] = {"Dido"},
["ddr"] = {"Dhudhuroa"},
["dds"] = {"Donno So Dogon"},
["ddw"] = {"Dawera-Daweloor"},
["dec"] = {"Dagik"},
["ded"] = {"Dedua"},
["dee"] = {"Dewoin"},
["def"] = {"Dezfuli"},
["deg"] = {"Degema"},
["deh"] = {"Dehwari"},
["dei"] = {"Demisa"},
["dek"] = {"Dek"},
["del"] = {"Delaware"},
["dem"] = {"Dem"},
["den"] = {"Slave (Athapascan)"},
["dep"] = {"Pidgin Delaware"},
["deq"] = {"Dendi (Central African Republic)"},
["der"] = {"Deori"},
["des"] = {"Desano"},
["dev"] = {"Domung"},
["dez"] = {"Dengese"},
["dga"] = {"Southern Dagaare"},
["dgb"] = {"Bunoge Dogon"},
["dgc"] = {"Casiguran Dumagat Agta"},
["dgd"] = {"Dagaari Dioula"},
["dge"] = {"Degenan"},
["dgg"] = {"Doga"},
["dgh"] = {"Dghwede"},
["dgi"] = {"Northern Dagara"},
["dgk"] = {"Dagba"},
["dgl"] = {"Andaandi", "Dongolawi"},
["dgn"] = {"Dagoman"},
["dgo"] = {"Dogri (individual language)"},
["dgr"] = {"Dogrib", "Tłı̨chǫ"},
["dgs"] = {"Dogoso"},
["dgt"] = {"Ndra'ngith"},
["dgw"] = {"Daungwurrung"},
["dgx"] = {"Doghoro"},
["dgz"] = {"Daga"},
["dhd"] = {"Dhundari"},
["dhg"] = {"Dhangu-Djangu", "Dhangu", "Djangu"},
["dhi"] = {"Dhimal"},
["dhl"] = {"Dhalandji"},
["dhm"] = {"Zemba"},
["dhn"] = {"Dhanki"},
["dho"] = {"Dhodia"},
["dhr"] = {"Dhargari"},
["dhs"] = {"Dhaiso"},
["dhu"] = {"Dhurga"},
["dhv"] = {"Dehu", "Drehu"},
["dhw"] = {"Dhanwar (Nepal)"},
["dhx"] = {"Dhungaloo"},
["dia"] = {"Dia"},
["dib"] = {"South Central Dinka"},
["dic"] = {"Lakota Dida"},
["did"] = {"Didinga"},
["dif"] = {"Dieri", "Diyari"},
["dig"] = {"Digo", "Chidigo"},
["dih"] = {"Kumiai"},
["dii"] = {"Dimbong"},
["dij"] = {"Dai"},
["dik"] = {"Southwestern Dinka"},
["dil"] = {"Dilling"},
["dim"] = {"Dime"},
["din"] = {"Dinka"},
["dio"] = {"Dibo"},
["dip"] = {"Northeastern Dinka"},
["diq"] = {"Dimli (individual language)"},
["dir"] = {"Dirim"},
["dis"] = {"Dimasa"},
["diu"] = {"Diriku"},
["diw"] = {"Northwestern Dinka"},
["dix"] = {"Dixon Reef"},
["diy"] = {"Diuwe"},
["diz"] = {"Ding"},
["dja"] = {"Djadjawurrung"},
["djb"] = {"Djinba"},
["djc"] = {"Dar Daju Daju"},
["djd"] = {"Djamindjung", "Ngaliwurru"},
["dje"] = {"Zarma"},
["djf"] = {"Djangun"},
["dji"] = {"Djinang"},
["djj"] = {"Djeebbana"},
["djk"] = {"Eastern Maroon Creole", "Businenge Tongo", "Nenge"},
["djm"] = {"Jamsay Dogon"},
["djn"] = {"Jawoyn", "Djauan"},
["djo"] = {"Jangkang"},
["djr"] = {"Djambarrpuyngu"},
["dju"] = {"Kapriman"},
["djw"] = {"Djawi"},
["dka"] = {"Dakpakha"},
["dkg"] = {"Kadung"},
["dkk"] = {"Dakka"},
["dkr"] = {"Kuijau"},
["dks"] = {"Southeastern Dinka"},
["dkx"] = {"Mazagway"},
["dlg"] = {"Dolgan"},
["dlk"] = {"Dahalik"},
["dlm"] = {"Dalmatian"},
["dln"] = {"Darlong"},
["dma"] = {"Duma"},
["dmb"] = {"Mombo Dogon"},
["dmc"] = {"Gavak"},
["dmd"] = {"Madhi Madhi"},
["dme"] = {"Dugwor"},
["dmf"] = {"Medefaidrin"},
["dmg"] = {"Upper Kinabatangan"},
["dmk"] = {"Domaaki"},
["dml"] = {"Dameli"},
["dmm"] = {"Dama"},
["dmn"] = {"Mande languages"},
["dmo"] = {"Kemedzung"},
["dmr"] = {"East Damar"},
["dms"] = {"Dampelas"},
["dmu"] = {"Dubu", "Tebi"},
["dmv"] = {"Dumpas"},
["dmw"] = {"Mudburra"},
["dmx"] = {"Dema"},
["dmy"] = {"Demta", "Sowari"},
["dna"] = {"Upper Grand Valley Dani"},
["dnd"] = {"Daonda"},
["dne"] = {"Ndendeule"},
["dng"] = {"Dungan"},
["dni"] = {"Lower Grand Valley Dani"},
["dnj"] = {"Dan"},
["dnk"] = {"Dengka"},
["dnn"] = {"Dzùùngoo"},
["dno"] = {"Ndrulo", "Northern Lendu"},
["dnr"] = {"Danaru"},
["dnt"] = {"Mid Grand Valley Dani"},
["dnu"] = {"Danau"},
["dnv"] = {"Danu"},
["dnw"] = {"Western Dani"},
["dny"] = {"Dení"},
["doa"] = {"Dom"},
["dob"] = {"Dobu"},
["doc"] = {"Northern Dong"},
["doe"] = {"Doe"},
["dof"] = {"Domu"},
["doh"] = {"Dong"},
["doi"] = {"Dogri (macrolanguage)"},
["dok"] = {"Dondo"},
["dol"] = {"Doso"},
["don"] = {"Toura (Papua New Guinea)"},
["doo"] = {"Dongo"},
["dop"] = {"Lukpa"},
["doq"] = {"Dominican Sign Language"},
["dor"] = {"Dori'o"},
["dos"] = {"Dogosé"},
["dot"] = {"Dass"},
["dov"] = {"Dombe"},
["dow"] = {"Doyayo"},
["dox"] = {"Bussa"},
["doy"] = {"Dompo"},
["doz"] = {"Dorze"},
["dpp"] = {"Papar"},
["dra"] = {"Dravidian languages"},
["drb"] = {"Dair"},
["drc"] = {"Minderico"},
["drd"] = {"Darmiya"},
["dre"] = {"Dolpo"},
["drg"] = {"Rungus"},
["dri"] = {"C'Lela"},
["drl"] = {"Paakantyi"},
["drn"] = {"West Damar"},
["dro"] = {"Daro-Matu Melanau"},
["drq"] = {"Dura"},
["drs"] = {"Gedeo"},
["drt"] = {"Drents"},
["dru"] = {"Rukai"},
["dry"] = {"Darai"},
["dsb"] = {"Lower Sorbian"},
["dse"] = {"Dutch Sign Language"},
["dsh"] = {"Daasanach"},
["dsi"] = {"Disa"},
["dsl"] = {"Danish Sign Language"},
["dsn"] = {"Dusner"},
["dso"] = {"Desiya"},
["dsq"] = {"Tadaksahak"},
["dsz"] = {"Mardin Sign Language"},
["dta"] = {"Daur"},
["dtb"] = {"Labuk-Kinabatangan Kadazan"},
["dtd"] = {"Ditidaht"},
["dth"] = {"Adithinngithigh"},
["dti"] = {"Ana Tinga Dogon"},
["dtk"] = {"Tene Kan Dogon"},
["dtm"] = {"Tomo Kan Dogon"},
["dtn"] = {"Daatsʼíin"},
["dto"] = {"Tommo So Dogon"},
["dtp"] = {"Kadazan Dusun", "Central Dusun"},
["dtr"] = {"Lotud"},
["dts"] = {"Toro So Dogon"},
["dtt"] = {"Toro Tegu Dogon"},
["dtu"] = {"Tebul Ure Dogon"},
["dty"] = {"Dotyali"},
["dua"] = {"Duala"},
["dub"] = {"Dubli"},
["duc"] = {"Duna"},
["due"] = {"Umiray Dumaget Agta"},
["duf"] = {"Dumbea", "Drubea"},
["dug"] = {"Duruma", "Chiduruma"},
["duh"] = {"Dungra Bhil"},
["dui"] = {"Dumun"},
["duk"] = {"Uyajitaya"},
["dul"] = {"Alabat Island Agta"},
["dum"] = {"Middle Dutch (ca. 1050-1350)"},
["dun"] = {"Dusun Deyah"},
["duo"] = {"Dupaninan Agta"},
["dup"] = {"Duano"},
["duq"] = {"Dusun Malang"},
["dur"] = {"Dii"},
["dus"] = {"Dumi"},
["duu"] = {"Drung"},
["duv"] = {"Duvle"},
["duw"] = {"Dusun Witu"},
["dux"] = {"Duungooma"},
["duy"] = {"Dicamay Agta"},
["duz"] = {"Duli-Gey"},
["dva"] = {"Duau"},
["dwa"] = {"Diri"},
["dwk"] = {"Dawik Kui"},
["dwr"] = {"Dawro"},
["dws"] = {"Dutton World Speedwords"},
["dwu"] = {"Dhuwal"},
["dww"] = {"Dawawa"},
["dwy"] = {"Dhuwaya"},
["dwz"] = {"Dewas Rai"},
["dya"] = {"Dyan"},
["dyb"] = {"Dyaberdyaber"},
["dyd"] = {"Dyugun"},
["dyg"] = {"Villa Viciosa Agta"},
["dyi"] = {"Djimini Senoufo"},
["dym"] = {"Yanda Dom Dogon"},
["dyn"] = {"Dyangadi", "Dhanggatti"},
["dyo"] = {"Jola-Fonyi"},
["dyu"] = {"Dyula"},
["dyy"] = {"Djabugay", "Dyaabugay"},
["dza"] = {"Tunzu"},
["dze"] = {"Djiwarli"},
["dzg"] = {"Dazaga"},
["dzl"] = {"Dzalakha"},
["dzn"] = {"Dzando"},
["eaa"] = {"Karenggapa"},
["ebc"] = {"Beginci"},
["ebg"] = {"Ebughu"},
["ebk"] = {"Eastern Bontok"},
["ebo"] = {"Teke-Ebo"},
["ebr"] = {"Ebrié"},
["ebu"] = {"Embu", "Kiembu"},
["ecr"] = {"Eteocretan"},
["ecs"] = {"Ecuadorian Sign Language"},
["ecy"] = {"Eteocypriot"},
["eee"] = {"E"},
["efa"] = {"Efai"},
["efe"] = {"Efe"},
["efi"] = {"Efik"},
["ega"] = {"Ega"},
["egl"] = {"Emilian"},
["egm"] = {"Benamanga"},
["ego"] = {"Eggon"},
["egx"] = {"Egyptian languages"},
["egy"] = {"Egyptian (Ancient)"},
["ehs"] = {"Miyakubo Sign Language"},
["ehu"] = {"Ehueun"},
["eip"] = {"Eipomek"},
["eit"] = {"Eitiep"},
["eiv"] = {"Askopan"},
["eja"] = {"Ejamat"},
["eka"] = {"Ekajuk"},
["eke"] = {"Ekit"},
["ekg"] = {"Ekari"},
["eki"] = {"Eki"},
["ekk"] = {"Standard Estonian"},
["ekl"] = {"Kol (Bangladesh)", "Kol"},
["ekm"] = {"Elip"},
["eko"] = {"Koti"},
["ekp"] = {"Ekpeye"},
["ekr"] = {"Yace"},
["eky"] = {"Eastern Kayah"},
["ele"] = {"Elepi"},
["elh"] = {"El Hugeirat"},
["eli"] = {"Nding"},
["elk"] = {"Elkei"},
["elm"] = {"Eleme"},
["elo"] = {"El Molo"},
["elu"] = {"Elu"},
["elx"] = {"Elamite"},
["ema"] = {"Emai-Iuleha-Ora"},
["emb"] = {"Embaloh"},
["eme"] = {"Emerillon"},
["emg"] = {"Eastern Meohang"},
["emi"] = {"Mussau-Emira"},
["emk"] = {"Eastern Maninkakan"},
["emm"] = {"Mamulique"},
["emn"] = {"Eman"},
["emp"] = {"Northern Emberá"},
["emq"] = {"Eastern Minyag"},
["ems"] = {"Pacific Gulf Yupik"},
["emu"] = {"Eastern Muria"},
["emw"] = {"Emplawas"},
["emx"] = {"Erromintxela"},
["emy"] = {"Epigraphic Mayan"},
["emz"] = {"Mbessa"},
["ena"] = {"Apali"},
["enb"] = {"Markweeta"},
["enc"] = {"En"},
["end"] = {"Ende"},
["enf"] = {"Forest Enets"},
["enh"] = {"Tundra Enets"},
["enl"] = {"Enlhet"},
["enm"] = {"Middle English (1100-1500)"},
["enn"] = {"Engenni"},
["eno"] = {"Enggano"},
["enq"] = {"Enga"},
["enr"] = {"Emumu", "Emem"},
["enu"] = {"Enu"},
["env"] = {"Enwan (Edo State)"},
["enw"] = {"Enwan (Akwa Ibom State)"},
["enx"] = {"Enxet"},
["eot"] = {"Beti (Côte d'Ivoire)"},
["epi"] = {"Epie"},
["era"] = {"Eravallan"},
["erg"] = {"Sie"},
["erh"] = {"Eruwa"},
["eri"] = {"Ogea"},
["erk"] = {"South Efate"},
["ero"] = {"Horpa"},
["err"] = {"Erre"},
["ers"] = {"Ersu"},
["ert"] = {"Eritai"},
["erw"] = {"Erokwanas"},
["ese"] = {"Ese Ejja"},
["esg"] = {"Aheri Gondi"},
["esh"] = {"Eshtehardi"},
["esi"] = {"North Alaskan Inupiatun"},
["esk"] = {"Northwest Alaska Inupiatun"},
["esl"] = {"Egypt Sign Language"},
["esm"] = {"Esuma"},
["esn"] = {"Salvadoran Sign Language"},
["eso"] = {"Estonian Sign Language"},
["esq"] = {"Esselen"},
["ess"] = {"Central Siberian Yupik"},
["esu"] = {"Central Yupik"},
["esx"] = {"Eskimo-Aleut languages"},
["esy"] = {"Eskayan"},
["etb"] = {"Etebi"},
["etc"] = {"Etchemin"},
["eth"] = {"Ethiopian Sign Language"},
["etn"] = {"Eton (Vanuatu)"},
["eto"] = {"Eton (Cameroon)"},
["etr"] = {"Edolo"},
["ets"] = {"Yekhee"},
["ett"] = {"Etruscan"},
["etu"] = {"Ejagham"},
["etx"] = {"Eten"},
["etz"] = {"Semimi"},
["euq"] = {"Basque (family)"},
["eve"] = {"Even"},
["evh"] = {"Uvbie"},
["evn"] = {"Evenki"},
["ewo"] = {"Ewondo"},
["ext"] = {"Extremaduran"},
["eya"] = {"Eyak"},
["eyo"] = {"Keiyo"},
["eza"] = {"Ezaa"},
["eze"] = {"Uzekwe"},
["faa"] = {"Fasu"},
["fab"] = {"Fa d'Ambu"},
["fad"] = {"Wagi"},
["faf"] = {"Fagani"},
["fag"] = {"Finongan"},
["fah"] = {"Baissa Fali"},
["fai"] = {"Faiwol"},
["faj"] = {"Faita"},
["fak"] = {"Fang (Cameroon)"},
["fal"] = {"South Fali"},
["fam"] = {"Fam"},
["fan"] = {"Fang (Equatorial Guinea)"},
["fap"] = {"Paloor"},
["far"] = {"Fataleka"},
["fat"] = {"Fanti"},
["fau"] = {"Fayu"},
["fax"] = {"Fala"},
["fay"] = {"Southwestern Fars"},
["faz"] = {"Northwestern Fars"},
["fbl"] = {"West Albay Bikol"},
["fcs"] = {"Quebec Sign Language"},
["fer"] = {"Feroge"},
["ffi"] = {"Foia Foia"},
["ffm"] = {"Maasina Fulfulde"},
["fgr"] = {"Fongoro"},
["fia"] = {"Nobiin"},
["fie"] = {"Fyer"},
["fif"] = {"Faifi"},
["fil"] = {"Filipino", "Pilipino"},
["fip"] = {"Fipa"},
["fir"] = {"Firan"},
["fit"] = {"Tornedalen Finnish", "Meänkieli"},
["fiu"] = {"Finno-Ugrian languages"},
["fiw"] = {"Fiwaga"},
["fkk"] = {"Kirya-Konzəl"},
["fkv"] = {"Kven Finnish"},
["fla"] = {"Kalispel-Pend d'Oreille"},
["flh"] = {"Foau"},
["fli"] = {"Fali"},
["fll"] = {"North Fali"},
["fln"] = {"Flinders Island"},
["flr"] = {"Fuliiru"},
["fly"] = {"Flaaitaal", "Tsotsitaal"},
["fmp"] = {"Fe'fe'"},
["fmu"] = {"Far Western Muria"},
["fnb"] = {"Fanbak"},
["fng"] = {"Fanagalo"},
["fni"] = {"Fania"},
["fod"] = {"Foodo"},
["foi"] = {"Foi"},
["fom"] = {"Foma"},
["fon"] = {"Fon"},
["for"] = {"Fore"},
["fos"] = {"Siraya"},
["fox"] = {"Formosan languages"},
["fpe"] = {"Fernando Po Creole English"},
["fqs"] = {"Fas"},
["frc"] = {"Cajun French"},
["frd"] = {"Fordata"},
["frk"] = {"Frankish"},
["frm"] = {"Middle French (ca. 1400-1600)"},
["fro"] = {"Old French (842-ca. 1400)"},
["frp"] = {"Arpitan", "Francoprovençal"},
["frq"] = {"Forak"},
["frr"] = {"Northern Frisian"},
["frs"] = {"Eastern Frisian"},
["frt"] = {"Fortsenal"},
["fse"] = {"Finnish Sign Language"},
["fsl"] = {"French Sign Language"},
["fss"] = {"Finland-Swedish Sign Language", "finlandssvenskt teckenspråk", "suomenruotsalainen viittomakieli"},
["fub"] = {"Adamawa Fulfulde"},
["fuc"] = {"Pulaar"},
["fud"] = {"East Futuna"},
["fue"] = {"Borgu Fulfulde"},
["fuf"] = {"Pular"},
["fuh"] = {"Western Niger Fulfulde"},
["fui"] = {"Bagirmi Fulfulde"},
["fuj"] = {"Ko"},
["fum"] = {"Fum"},
["fun"] = {"Fulniô"},
["fuq"] = {"Central-Eastern Niger Fulfulde"},
["fur"] = {"Friulian"},
["fut"] = {"Futuna-Aniwa"},
["fuu"] = {"Furu"},
["fuv"] = {"Nigerian Fulfulde"},
["fuy"] = {"Fuyug"},
["fvr"] = {"Fur"},
["fwa"] = {"Fwâi"},
["fwe"] = {"Fwe"},
["gaa"] = {"Ga"},
["gab"] = {"Gabri"},
["gac"] = {"Mixed Great Andamanese"},
["gad"] = {"Gaddang"},
["gae"] = {"Guarequena"},
["gaf"] = {"Gende"},
["gag"] = {"Gagauz"},
["gah"] = {"Alekano"},
["gai"] = {"Borei"},
["gaj"] = {"Gadsup"},
["gak"] = {"Gamkonora"},
["gal"] = {"Galolen"},
["gam"] = {"Kandawo"},
["gan"] = {"Gan Chinese"},
["gao"] = {"Gants"},
["gap"] = {"Gal"},
["gaq"] = {"Gata'"},
["gar"] = {"Galeya"},
["gas"] = {"Adiwasi Garasia"},
["gat"] = {"Kenati"},
["gau"] = {"Mudhili Gadaba"},
["gaw"] = {"Nobonob"},
["gax"] = {"Borana-Arsi-Guji Oromo"},
["gay"] = {"Gayo"},
["gaz"] = {"West Central Oromo"},
["gba"] = {"Gbaya (Central African Republic)"},
["gbb"] = {"Kaytetye"},
["gbd"] = {"Karajarri"},
["gbe"] = {"Niksek"},
["gbf"] = {"Gaikundi"},
["gbg"] = {"Gbanziri"},
["gbh"] = {"Defi Gbe"},
["gbi"] = {"Galela"},
["gbj"] = {"Bodo Gadaba"},
["gbk"] = {"Gaddi"},
["gbl"] = {"Gamit"},
["gbm"] = {"Garhwali"},
["gbn"] = {"Mo'da"},
["gbo"] = {"Northern Grebo"},
["gbp"] = {"Gbaya-Bossangoa"},
["gbq"] = {"Gbaya-Bozoum"},
["gbr"] = {"Gbagyi"},
["gbs"] = {"Gbesi Gbe"},
["gbu"] = {"Gagadu"},
["gbv"] = {"Gbanu"},
["gbw"] = {"Gabi-Gabi"},
["gbx"] = {"Eastern Xwla Gbe"},
["gby"] = {"Gbari"},
["gbz"] = {"Zoroastrian Dari"},
["gcc"] = {"Mali"},
["gcd"] = {"Ganggalida"},
["gce"] = {"Galice"},
["gcf"] = {"Guadeloupean Creole French"},
["gcl"] = {"Grenadian Creole English"},
["gcn"] = {"Gaina"},
["gcr"] = {"Guianese Creole French"},
["gct"] = {"Colonia Tovar German"},
["gda"] = {"Gade Lohar"},
["gdb"] = {"Pottangi Ollar Gadaba"},
["gdc"] = {"Gugu Badhun"},
["gdd"] = {"Gedaged"},
["gde"] = {"Gude"},
["gdf"] = {"Guduf-Gava"},
["gdg"] = {"Ga'dang"},
["gdh"] = {"Gadjerawang", "Gajirrabeng"},
["gdi"] = {"Gundi"},
["gdj"] = {"Gurdjar"},
["gdk"] = {"Gadang"},
["gdl"] = {"Dirasha"},
["gdm"] = {"Laal"},
["gdn"] = {"Umanakaina"},
["gdo"] = {"Ghodoberi"},
["gdq"] = {"Mehri"},
["gdr"] = {"Wipi"},
["gds"] = {"Ghandruk Sign Language"},
["gdt"] = {"Kungardutyi"},
["gdu"] = {"Gudu"},
["gdx"] = {"Godwari"},
["gea"] = {"Geruma"},
["geb"] = {"Kire"},
["gec"] = {"Gboloo Grebo"},
["ged"] = {"Gade"},
["gef"] = {"Gerai"},
["geg"] = {"Gengle"},
["geh"] = {"Hutterite German", "Hutterisch"},
["gei"] = {"Gebe"},
["gej"] = {"Gen"},
["gek"] = {"Ywom"},
["gel"] = {"ut-Ma'in"},
["gem"] = {"Germanic languages"},
["geq"] = {"Geme"},
["ges"] = {"Geser-Gorom"},
["gev"] = {"Eviya"},
["gew"] = {"Gera"},
["gex"] = {"Garre"},
["gey"] = {"Enya"},
["gez"] = {"Geez"},
["gfk"] = {"Patpatar"},
["gft"] = {"Gafat"},
["gga"] = {"Gao"},
["ggb"] = {"Gbii"},
["ggd"] = {"Gugadj"},
["gge"] = {"Gurr-goni"},
["ggg"] = {"Gurgula"},
["ggk"] = {"Kungarakany"},
["ggl"] = {"Ganglau"},
["ggt"] = {"Gitua"},
["ggu"] = {"Gagu", "Gban"},
["ggw"] = {"Gogodala"},
["gha"] = {"Ghadamès"},
["ghc"] = {"Hiberno-Scottish Gaelic"},
["ghe"] = {"Southern Ghale"},
["ghh"] = {"Northern Ghale"},
["ghk"] = {"Geko Karen"},
["ghl"] = {"Ghulfan"},
["ghn"] = {"Ghanongga"},
["gho"] = {"Ghomara"},
["ghr"] = {"Ghera"},
["ghs"] = {"Guhu-Samane"},
["ght"] = {"Kuke", "Kutang Ghale"},
["gia"] = {"Kija"},
["gib"] = {"Gibanawa"},
["gic"] = {"Gail"},
["gid"] = {"Gidar"},
["gie"] = {"Gaɓogbo", "Guébie"},
["gig"] = {"Goaria"},
["gih"] = {"Githabul"},
["gii"] = {"Girirra"},
["gil"] = {"Gilbertese"},
["gim"] = {"Gimi (Eastern Highlands)"},
["gin"] = {"Hinukh"},
["gip"] = {"Gimi (West New Britain)"},
["giq"] = {"Green Gelao"},
["gir"] = {"Red Gelao"},
["gis"] = {"North Giziga"},
["git"] = {"Gitxsan"},
["giu"] = {"Mulao"},
["giw"] = {"White Gelao"},
["gix"] = {"Gilima"},
["giy"] = {"Giyug"},
["giz"] = {"South Giziga"},
["gjk"] = {"Kachi Koli"},
["gjm"] = {"Gunditjmara"},
["gjn"] = {"Gonja"},
["gjr"] = {"Gurindji Kriol"},
["gju"] = {"Gujari"},
["gka"] = {"Guya"},
["gkd"] = {"Magɨ (Madang Province)"},
["gke"] = {"Ndai"},
["gkn"] = {"Gokana"},
["gko"] = {"Kok-Nar"},
["gkp"] = {"Guinea Kpelle"},
["gku"] = {"ǂUngkue"},
["glb"] = {"Belning"},
["glc"] = {"Bon Gula"},
["gld"] = {"Nanai"},
["glh"] = {"Northwest Pashai", "Northwest Pashayi"},
["glj"] = {"Gula Iro"},
["glk"] = {"Gilaki"},
["gll"] = {"Garlali"},
["glo"] = {"Galambu"},
["glr"] = {"Glaro-Twabo"},
["glu"] = {"Gula (Chad)"},
["glw"] = {"Glavda"},
["gly"] = {"Gule"},
["gma"] = {"Gambera"},
["gmb"] = {"Gula'alaa"},
["gmd"] = {"Mághdì"},
["gme"] = {"East Germanic languages"},
["gmg"] = {"Magɨyi"},
["gmh"] = {"Middle High German (ca. 1050-1500)"},
["gml"] = {"Middle Low German"},
["gmm"] = {"Gbaya-Mbodomo"},
["gmn"] = {"Gimnime"},
["gmq"] = {"North Germanic languages"},
["gmr"] = {"Mirning", "Mirniny"},
["gmu"] = {"Gumalu"},
["gmv"] = {"Gamo"},
["gmw"] = {"West Germanic languages"},
["gmx"] = {"Magoma"},
["gmy"] = {"Mycenaean Greek"},
["gmz"] = {"Mgbolizhia"},
["gna"] = {"Kaansa"},
["gnb"] = {"Gangte"},
["gnc"] = {"Guanche"},
["gnd"] = {"Zulgo-Gemzek"},
["gne"] = {"Ganang"},
["gng"] = {"Ngangam"},
["gnh"] = {"Lere"},
["gni"] = {"Gooniyandi"},
["gnj"] = {"Ngen"},
["gnk"] = {"ǁGana"},
["gnl"] = {"Gangulu"},
["gnm"] = {"Ginuman"},
["gnn"] = {"Gumatj"},
["gno"] = {"Northern Gondi"},
["gnq"] = {"Gana"},
["gnr"] = {"Gureng Gureng"},
["gnt"] = {"Guntai"},
["gnu"] = {"Gnau"},
["gnw"] = {"Western Bolivian Guaraní"},
["gnz"] = {"Ganzi"},
["goa"] = {"Guro"},
["gob"] = {"Playero"},
["goc"] = {"Gorakor"},
["god"] = {"Godié"},
["goe"] = {"Gongduk"},
["gof"] = {"Gofa"},
["gog"] = {"Gogo"},
["goh"] = {"Old High German (ca. 750-1050)"},
["goi"] = {"Gobasi"},
["goj"] = {"Gowlan"},
["gok"] = {"Gowli"},
["gol"] = {"Gola"},
["gom"] = {"Goan Konkani"},
["gon"] = {"Gondi"},
["goo"] = {"Gone Dau"},
["gop"] = {"Yeretuar"},
["goq"] = {"Gorap"},
["gor"] = {"Gorontalo"},
["gos"] = {"Gronings"},
["got"] = {"Gothic"},
["gou"] = {"Gavar"},
["gov"] = {"Goo"},
["gow"] = {"Gorowa"},
["gox"] = {"Gobu"},
["goy"] = {"Goundo"},
["goz"] = {"Gozarkhani"},
["gpa"] = {"Gupa-Abawa"},
["gpe"] = {"Ghanaian Pidgin English"},
["gpn"] = {"Taiap"},
["gqa"] = {"Ga'anda"},
["gqi"] = {"Guiqiong"},
["gqn"] = {"Guana (Brazil)"},
["gqr"] = {"Gor"},
["gqu"] = {"Qau"},
["gra"] = {"Rajput Garasia"},
["grb"] = {"Grebo"},
["grc"] = {"Ancient Greek (to 1453)"},
["grd"] = {"Guruntum-Mbaaru"},
["grg"] = {"Madi"},
["grh"] = {"Gbiri-Niragu"},
["gri"] = {"Ghari"},
["grj"] = {"Southern Grebo"},
["grk"] = {"Greek languages"},
["grm"] = {"Kota Marudu Talantang"},
["gro"] = {"Groma"},
["grq"] = {"Gorovu"},
["grr"] = {"Taznatit"},
["grs"] = {"Gresi"},
["grt"] = {"Garo"},
["gru"] = {"Kistane"},
["grv"] = {"Central Grebo"},
["grw"] = {"Gweda"},
["grx"] = {"Guriaso"},
["gry"] = {"Barclayville Grebo"},
["grz"] = {"Guramalum"},
["gse"] = {"Ghanaian Sign Language"},
["gsg"] = {"German Sign Language"},
["gsl"] = {"Gusilay"},
["gsm"] = {"Guatemalan Sign Language"},
["gsn"] = {"Nema", "Gusan"},
["gso"] = {"Southwest Gbaya"},
["gsp"] = {"Wasembo"},
["gss"] = {"Greek Sign Language"},
["gsw"] = {"Swiss German", "Alemannic", "Alsatian"},
["gta"] = {"Guató"},
["gtu"] = {"Aghu-Tharnggala"},
["gua"] = {"Shiki"},
["gub"] = {"Guajajára"},
["guc"] = {"Wayuu"},
["gud"] = {"Yocoboué Dida"},
["gue"] = {"Gurindji"},
["guf"] = {"Gupapuyngu"},
["gug"] = {"Paraguayan Guaraní"},
["guh"] = {"Guahibo"},
["gui"] = {"Eastern Bolivian Guaraní"},
["guk"] = {"Gumuz"},
["gul"] = {"Sea Island Creole English"},
["gum"] = {"Guambiano"},
["gun"] = {"Mbyá Guaraní"},
["guo"] = {"Guayabero"},
["gup"] = {"Gunwinggu"},
["guq"] = {"Aché"},
["gur"] = {"Farefare"},
["gus"] = {"Guinean Sign Language"},
["gut"] = {"Maléku Jaíka"},
["guu"] = {"Yanomamö"},
["guw"] = {"Gun"},
["gux"] = {"Gourmanchéma"},
["guz"] = {"Gusii", "Ekegusii"},
["gva"] = {"Guana (Paraguay)"},
["gvc"] = {"Guanano"},
["gve"] = {"Duwet"},
["gvf"] = {"Golin"},
["gvj"] = {"Guajá"},
["gvl"] = {"Gulay"},
["gvm"] = {"Gurmana"},
["gvn"] = {"Kuku-Yalanji"},
["gvo"] = {"Gavião Do Jiparaná"},
["gvp"] = {"Pará Gavião"},
["gvr"] = {"Gurung"},
["gvs"] = {"Gumawana"},
["gvy"] = {"Guyani"},
["gwa"] = {"Mbato"},
["gwb"] = {"Gwa"},
["gwc"] = {"Gawri", "Kalami"},
["gwd"] = {"Gawwada"},
["gwe"] = {"Gweno"},
["gwf"] = {"Gowro"},
["gwg"] = {"Moo"},
["gwi"] = {"Gwichʼin"},
["gwj"] = {"ǀGwi"},
["gwm"] = {"Awngthim"},
["gwn"] = {"Gwandara"},
["gwr"] = {"Gwere"},
["gwt"] = {"Gawar-Bati"},
["gwu"] = {"Guwamu"},
["gww"] = {"Kwini"},
["gwx"] = {"Gua"},
["gxx"] = {"Wè Southern"},
["gya"] = {"Northwest Gbaya"},
["gyb"] = {"Garus"},
["gyd"] = {"Kayardild"},
["gye"] = {"Gyem"},
["gyf"] = {"Gungabula"},
["gyg"] = {"Gbayi"},
["gyi"] = {"Gyele"},
["gyl"] = {"Gayil"},
["gym"] = {"Ngäbere"},
["gyn"] = {"Guyanese Creole English"},
["gyo"] = {"Gyalsumdo"},
["gyr"] = {"Guarayu"},
["gyy"] = {"Gunya"},
["gyz"] = {"Geji", "Gyaazi"},
["gza"] = {"Ganza"},
["gzi"] = {"Gazi"},
["gzn"] = {"Gane"},
["haa"] = {"Han"},
["hab"] = {"Hanoi Sign Language"},
["hac"] = {"Gurani"},
["had"] = {"Hatam"},
["hae"] = {"Eastern Oromo"},
["haf"] = {"Haiphong Sign Language"},
["hag"] = {"Hanga"},
["hah"] = {"Hahon"},
["hai"] = {"Haida"},
["haj"] = {"Hajong"},
["hak"] = {"Hakka Chinese"},
["hal"] = {"Halang"},
["ham"] = {"Hewa"},
["han"] = {"Hangaza"},
["hao"] = {"Hakö"},
["hap"] = {"Hupla"},
["haq"] = {"Ha"},
["har"] = {"Harari"},
["has"] = {"Haisla"},
["hav"] = {"Havu"},
["haw"] = {"Hawaiian"},
["hax"] = {"Southern Haida"},
["hay"] = {"Haya"},
["haz"] = {"Hazaragi"},
["hba"] = {"Hamba"},
["hbb"] = {"Huba"},
["hbn"] = {"Heiban"},
["hbo"] = {"Ancient Hebrew"},
["hbu"] = {"Habu"},
["hca"] = {"Andaman Creole Hindi"},
["hch"] = {"Huichol"},
["hdn"] = {"Northern Haida"},
["hds"] = {"Honduras Sign Language"},
["hdy"] = {"Hadiyya"},
["hea"] = {"Northern Qiandong Miao"},
["hed"] = {"Herdé"},
["heg"] = {"Helong"},
["heh"] = {"Hehe"},
["hei"] = {"Heiltsuk"},
["hem"] = {"Hemba"},
["hgm"] = {"Haiǁom"},
["hgw"] = {"Haigwai"},
["hhi"] = {"Hoia Hoia"},
["hhr"] = {"Kerak"},
["hhy"] = {"Hoyahoya"},
["hia"] = {"Lamang"},
["hib"] = {"Hibito"},
["hid"] = {"Hidatsa"},
["hif"] = {"Fiji Hindi"},
["hig"] = {"Kamwe"},
["hih"] = {"Pamosu"},
["hii"] = {"Hinduri"},
["hij"] = {"Hijuk"},
["hik"] = {"Seit-Kaitetu"},
["hil"] = {"Hiligaynon"},
["him"] = {"Himachali languages", "Western Pahari languages"},
["hio"] = {"Tsoa"},
["hir"] = {"Himarimã"},
["hit"] = {"Hittite"},
["hiw"] = {"Hiw"},
["hix"] = {"Hixkaryána"},
["hji"] = {"Haji"},
["hka"] = {"Kahe"},
["hke"] = {"Hunde"},
["hkh"] = {"Khah", "Poguli"},
["hkk"] = {"Hunjara-Kaina Ke"},
["hkn"] = {"Mel-Khaonh"},
["hks"] = {"Hong Kong Sign Language", "Heung Kong Sau Yue"},
["hla"] = {"Halia"},
["hlb"] = {"Halbi"},
["hld"] = {"Halang Doan"},
["hle"] = {"Hlersu"},
["hlt"] = {"Matu Chin"},
["hlu"] = {"Hieroglyphic Luwian"},
["hma"] = {"Southern Mashan Hmong", "Southern Mashan Miao"},
["hmb"] = {"Humburi Senni Songhay"},
["hmc"] = {"Central Huishui Hmong", "Central Huishui Miao"},
["hmd"] = {"Large Flowery Miao", "A-hmaos", "Da-Hua Miao"},
["hme"] = {"Eastern Huishui Hmong", "Eastern Huishui Miao"},
["hmf"] = {"Hmong Don"},
["hmg"] = {"Southwestern Guiyang Hmong"},
["hmh"] = {"Southwestern Huishui Hmong", "Southwestern Huishui Miao"},
["hmi"] = {"Northern Huishui Hmong", "Northern Huishui Miao"},
["hmj"] = {"Ge", "Gejia"},
["hmk"] = {"Maek"},
["hml"] = {"Luopohe Hmong", "Luopohe Miao"},
["hmm"] = {"Central Mashan Hmong", "Central Mashan Miao"},
["hmn"] = {"Hmong", "Mong"},
["hmp"] = {"Northern Mashan Hmong", "Northern Mashan Miao"},
["hmq"] = {"Eastern Qiandong Miao"},
["hmr"] = {"Hmar"},
["hms"] = {"Southern Qiandong Miao"},
["hmt"] = {"Hamtai"},
["hmu"] = {"Hamap"},
["hmv"] = {"Hmong Dô"},
["hmw"] = {"Western Mashan Hmong", "Western Mashan Miao"},
["hmx"] = {"Hmong-Mien languages"},
["hmy"] = {"Southern Guiyang Hmong", "Southern Guiyang Miao"},
["hmz"] = {"Hmong Shua", "Sinicized Miao"},
["hna"] = {"Mina (Cameroon)"},
["hnd"] = {"Southern Hindko"},
["hne"] = {"Chhattisgarhi"},
["hng"] = {"Hungu"},
["hnh"] = {"ǁAni"},
["hni"] = {"Hani"},
["hnj"] = {"Hmong Njua", "Mong Leng", "Mong Njua"},
["hnn"] = {"Hanunoo"},
["hno"] = {"Northern Hindko"},
["hns"] = {"Caribbean Hindustani"},
["hnu"] = {"Hung"},
["hoa"] = {"Hoava"},
["hob"] = {"Mari (Madang Province)"},
["hoc"] = {"Ho"},
["hod"] = {"Holma"},
["hoe"] = {"Horom"},
["hoh"] = {"Hobyót"},
["hoi"] = {"Holikachuk"},
["hoj"] = {"Hadothi", "Haroti"},
["hok"] = {"Hokan languages"},
["hol"] = {"Holu"},
["hom"] = {"Homa"},
["hoo"] = {"Holoholo"},
["hop"] = {"Hopi"},
["hor"] = {"Horo"},
["hos"] = {"Ho Chi Minh City Sign Language"},
["hot"] = {"Hote", "Malê"},
["hov"] = {"Hovongan"},
["how"] = {"Honi"},
["hoy"] = {"Holiya"},
["hoz"] = {"Hozo"},
["hpo"] = {"Hpon"},
["hps"] = {"Hawai'i Sign Language (HSL)", "Hawai'i Pidgin Sign Language"},
["hra"] = {"Hrangkhol"},
["hrc"] = {"Niwer Mil"},
["hre"] = {"Hre"},
["hrk"] = {"Haruku"},
["hrm"] = {"Horned Miao"},
["hro"] = {"Haroi"},
["hrp"] = {"Nhirrpi"},
["hrt"] = {"Hértevin"},
["hru"] = {"Hruso"},
["hrw"] = {"Warwar Feni"},
["hrx"] = {"Hunsrik"},
["hrz"] = {"Harzani"},
["hsb"] = {"Upper Sorbian"},
["hsh"] = {"Hungarian Sign Language"},
["hsl"] = {"Hausa Sign Language"},
["hsn"] = {"Xiang Chinese"},
["hss"] = {"Harsusi"},
["hti"] = {"Hoti"},
["hto"] = {"Minica Huitoto"},
["hts"] = {"Hadza"},
["htu"] = {"Hitu"},
["htx"] = {"Middle Hittite"},
["hub"] = {"Huambisa"},
["huc"] = {"ǂHua", "ǂʼAmkhoe"},
["hud"] = {"Huaulu"},
["hue"] = {"San Francisco Del Mar Huave"},
["huf"] = {"Humene"},
["hug"] = {"Huachipaeri"},
["huh"] = {"Huilliche"},
["hui"] = {"Huli"},
["huj"] = {"Northern Guiyang Hmong", "Northern Guiyang Miao"},
["huk"] = {"Hulung"},
["hul"] = {"Hula"},
["hum"] = {"Hungana"},
["huo"] = {"Hu"},
["hup"] = {"Hupa"},
["huq"] = {"Tsat"},
["hur"] = {"Halkomelem"},
["hus"] = {"Huastec"},
["hut"] = {"Humla"},
["huu"] = {"Murui Huitoto"},
["huv"] = {"San Mateo Del Mar Huave"},
["huw"] = {"Hukumina"},
["hux"] = {"Nüpode Huitoto"},
["huy"] = {"Hulaulá"},
["huz"] = {"Hunzib"},
["hvc"] = {"Haitian Vodoun Culture Language"},
["hve"] = {"San Dionisio Del Mar Huave"},
["hvk"] = {"Haveke"},
["hvn"] = {"Sabu"},
["hvv"] = {"Santa María Del Mar Huave"},
["hwa"] = {"Wané"},
["hwc"] = {"Hawai'i Creole English", "Hawai'i Pidgin"},
["hwo"] = {"Hwana"},
["hya"] = {"Hya"},
["hyw"] = {"Western Armenian"},
["hyx"] = {"Armenian (family)"},
["iai"] = {"Iaai"},
["ian"] = {"Iatmul"},
["iar"] = {"Purari"},
["iba"] = {"Iban"},
["ibb"] = {"Ibibio"},
["ibd"] = {"Iwaidja"},
["ibe"] = {"Akpes"},
["ibg"] = {"Ibanag"},
["ibh"] = {"Bih"},
["ibl"] = {"Ibaloi"},
["ibm"] = {"Agoi"},
["ibn"] = {"Ibino"},
["ibr"] = {"Ibuoro"},
["ibu"] = {"Ibu"},
["iby"] = {"Ibani"},
["ica"] = {"Ede Ica"},
["ich"] = {"Etkywan"},
["icl"] = {"Icelandic Sign Language"},
["icr"] = {"Islander Creole English"},
["ida"] = {"Idakho-Isukha-Tiriki", "Luidakho-Luisukha-Lutirichi"},
["idb"] = {"Indo-Portuguese"},
["idc"] = {"Idon", "Ajiya"},
["idd"] = {"Ede Idaca"},
["ide"] = {"Idere"},
["idi"] = {"Idi"},
["idr"] = {"Indri"},
["ids"] = {"Idesa"},
["idt"] = {"Idaté"},
["idu"] = {"Idoma"},
["ifa"] = {"Amganad Ifugao"},
["ifb"] = {"Batad Ifugao", "Ayangan Ifugao"},
["ife"] = {"Ifè"},
["iff"] = {"Ifo"},
["ifk"] = {"Tuwali Ifugao"},
["ifm"] = {"Teke-Fuumu"},
["ifu"] = {"Mayoyao Ifugao"},
["ify"] = {"Keley-I Kallahan"},
["igb"] = {"Ebira"},
["ige"] = {"Igede"},
["igg"] = {"Igana"},
["igl"] = {"Igala"},
["igm"] = {"Kanggape"},
["ign"] = {"Ignaciano"},
["igo"] = {"Isebe"},
["igs"] = {"Interglossa"},
["igw"] = {"Igwe"},
["ihb"] = {"Iha Based Pidgin"},
["ihi"] = {"Ihievbe"},
["ihp"] = {"Iha"},
["ihw"] = {"Bidhawal"},
["iin"] = {"Thiin"},
["iir"] = {"Indo-Iranian languages"},
["ijc"] = {"Izon"},
["ije"] = {"Biseni"},
["ijj"] = {"Ede Ije"},
["ijn"] = {"Kalabari"},
["ijo"] = {"Ijo languages"},
["ijs"] = {"Southeast Ijo"},
["ike"] = {"Eastern Canadian Inuktitut"},
["iki"] = {"Iko"},
["ikk"] = {"Ika"},
["ikl"] = {"Ikulu"},
["iko"] = {"Olulumo-Ikom"},
["ikp"] = {"Ikpeshi"},
["ikr"] = {"Ikaranggal"},
["iks"] = {"Inuit Sign Language"},
["ikt"] = {"Inuinnaqtun", "Western Canadian Inuktitut"},
["ikv"] = {"Iku-Gora-Ankwa"},
["ikw"] = {"Ikwere"},
["ikx"] = {"Ik"},
["ikz"] = {"Ikizu"},
["ila"] = {"Ile Ape"},
["ilb"] = {"Ila"},
["ilg"] = {"Garig-Ilgar"},
["ili"] = {"Ili Turki"},
["ilk"] = {"Ilongot"},
["ilm"] = {"Iranun (Malaysia)"},
["ilo"] = {"Iloko"},
["ilp"] = {"Iranun (Philippines)"},
["ils"] = {"International Sign"},
["ilu"] = {"Ili'uun"},
["ilv"] = {"Ilue"},
["ima"] = {"Mala Malasar"},
["imi"] = {"Anamgura"},
["iml"] = {"Miluk"},
["imn"] = {"Imonda"},
["imo"] = {"Imbongu"},
["imr"] = {"Imroing"},
["ims"] = {"Marsian"},
["imt"] = {"Imotong"},
["imy"] = {"Milyan"},
["inb"] = {"Inga"},
["inc"] = {"Indic languages"},
["ine"] = {"Indo-European languages"},
["ing"] = {"Degexit'an"},
["inh"] = {"Ingush"},
["inj"] = {"Jungle Inga"},
["inl"] = {"Indonesian Sign Language"},
["inm"] = {"Minaean"},
["inn"] = {"Isinai"},
["ino"] = {"Inoke-Yate"},
["inp"] = {"Iñapari"},
["ins"] = {"Indian Sign Language"},
["int"] = {"Intha"},
["inz"] = {"Ineseño"},
["ior"] = {"Inor"},
["iou"] = {"Tuma-Irumu"},
["iow"] = {"Iowa-Oto"},
["ipi"] = {"Ipili"},
["ipo"] = {"Ipiko"},
["iqu"] = {"Iquito"},
["iqw"] = {"Ikwo"},
["ira"] = {"Iranian languages"},
["ire"] = {"Iresim"},
["irh"] = {"Irarutu"},
["iri"] = {"Rigwe", "Irigwe"},
["irk"] = {"Iraqw"},
["irn"] = {"Irántxe"},
["iro"] = {"Iroquoian languages"},
["irr"] = {"Ir"},
["iru"] = {"Irula"},
["irx"] = {"Kamberau"},
["iry"] = {"Iraya"},
["isa"] = {"Isabi"},
["isc"] = {"Isconahua"},
["isd"] = {"Isnag"},
["ise"] = {"Italian Sign Language"},
["isg"] = {"Irish Sign Language"},
["ish"] = {"Esan"},
["isi"] = {"Nkem-Nkum"},
["isk"] = {"Ishkashimi"},
["ism"] = {"Masimasi"},
["isn"] = {"Isanzu"},
["iso"] = {"Isoko"},
["isr"] = {"Israeli Sign Language"},
["ist"] = {"Istriot"},
["isu"] = {"Isu (Menchum Division)"},
["itb"] = {"Binongan Itneg"},
["itc"] = {"Italic languages"},
["itd"] = {"Southern Tidung"},
["ite"] = {"Itene"},
["iti"] = {"Inlaod Itneg"},
["itk"] = {"Judeo-Italian"},
["itl"] = {"Itelmen"},
["itm"] = {"Itu Mbon Uzo"},
["ito"] = {"Itonama"},
["itr"] = {"Iteri"},
["its"] = {"Isekiri"},
["itt"] = {"Maeng Itneg"},
["itv"] = {"Itawit"},
["itw"] = {"Ito"},
["itx"] = {"Itik"},
["ity"] = {"Moyadan Itneg"},
["itz"] = {"Itzá"},
["ium"] = {"Iu Mien"},
["ivb"] = {"Ibatan"},
["ivv"] = {"Ivatan"},
["iwk"] = {"I-Wak"},
["iwm"] = {"Iwam"},
["iwo"] = {"Iwur"},
["iws"] = {"Sepik Iwam"},
["ixc"] = {"Ixcatec"},
["ixl"] = {"Ixil"},
["iya"] = {"Iyayu"},
["iyo"] = {"Mesaka"},
["iyx"] = {"Yaka (Congo)"},
["izh"] = {"Ingrian"},
["izr"] = {"Izere"},
["izz"] = {"Izii"},
["jaa"] = {"Jamamadí"},
["jab"] = {"Hyam"},
["jac"] = {"Popti'", "Jakalteko"},
["jad"] = {"Jahanka"},
["jae"] = {"Yabem"},
["jaf"] = {"Jara"},
["jah"] = {"Jah Hut"},
["jaj"] = {"Zazao"},
["jak"] = {"Jakun"},
["jal"] = {"Yalahatan"},
["jam"] = {"Jamaican Creole English"},
["jan"] = {"Jandai"},
["jao"] = {"Yanyuwa"},
["jaq"] = {"Yaqay"},
["jas"] = {"New Caledonian Javanese"},
["jat"] = {"Jakati"},
["jau"] = {"Yaur"},
["jax"] = {"Jambi Malay"},
["jay"] = {"Yan-nhangu", "Nhangu"},
["jaz"] = {"Jawe"},
["jbe"] = {"Judeo-Berber"},
["jbi"] = {"Badjiri"},
["jbj"] = {"Arandai"},
["jbk"] = {"Barikewa"},
["jbm"] = {"Bijim"},
["jbn"] = {"Nafusi"},
["jbo"] = {"Lojban"},
["jbr"] = {"Jofotek-Bromnya"},
["jbt"] = {"Jabutí"},
["jbu"] = {"Jukun Takum"},
["jbw"] = {"Yawijibaya"},
["jcs"] = {"Jamaican Country Sign Language"},
["jct"] = {"Krymchak"},
["jda"] = {"Jad"},
["jdg"] = {"Jadgali"},
["jdt"] = {"Judeo-Tat"},
["jeb"] = {"Jebero"},
["jee"] = {"Jerung"},
["jeh"] = {"Jeh"},
["jei"] = {"Yei"},
["jek"] = {"Jeri Kuo"},
["jel"] = {"Yelmek"},
["jen"] = {"Dza"},
["jer"] = {"Jere"},
["jet"] = {"Manem"},
["jeu"] = {"Jonkor Bourmataguil"},
["jgb"] = {"Ngbee"},
["jge"] = {"Judeo-Georgian"},
["jgk"] = {"Gwak"},
["jgo"] = {"Ngomba"},
["jhi"] = {"Jehai"},
["jhs"] = {"Jhankot Sign Language"},
["jia"] = {"Jina"},
["jib"] = {"Jibu"},
["jic"] = {"Tol"},
["jid"] = {"Bu (Kaduna State)"},
["jie"] = {"Jilbe"},
["jig"] = {"Jingulu", "Djingili"},
["jih"] = {"sTodsde", "Shangzhai"},
["jii"] = {"Jiiddu"},
["jil"] = {"Jilim"},
["jim"] = {"Jimi (Cameroon)"},
["jio"] = {"Jiamao"},
["jiq"] = {"Guanyinqiao", "Lavrung"},
["jit"] = {"Jita"},
["jiu"] = {"Youle Jinuo"},
["jiv"] = {"Shuar"},
["jiy"] = {"Buyuan Jinuo"},
["jje"] = {"Jejueo"},
["jjr"] = {"Bankal"},
["jka"] = {"Kaera"},
["jkm"] = {"Mobwa Karen"},
["jko"] = {"Kubo"},
["jkp"] = {"Paku Karen"},
["jkr"] = {"Koro (India)"},
["jks"] = {"Amami Koniya Sign Language"},
["jku"] = {"Labir"},
["jle"] = {"Ngile"},
["jls"] = {"Jamaican Sign Language"},
["jma"] = {"Dima"},
["jmb"] = {"Zumbun"},
["jmc"] = {"Machame"},
["jmd"] = {"Yamdena"},
["jmi"] = {"Jimi (Nigeria)"},
["jml"] = {"Jumli"},
["jmn"] = {"Makuri Naga"},
["jmr"] = {"Kamara"},
["jms"] = {"Mashi (Nigeria)"},
["jmw"] = {"Mouwase"},
["jmx"] = {"Western Juxtlahuaca Mixtec"},
["jna"] = {"Jangshung"},
["jnd"] = {"Jandavra"},
["jng"] = {"Yangman"},
["jni"] = {"Janji"},
["jnj"] = {"Yemsa"},
["jnl"] = {"Rawat"},
["jns"] = {"Jaunsari"},
["job"] = {"Joba"},
["jod"] = {"Wojenaka"},
["jog"] = {"Jogi"},
["jor"] = {"Jorá"},
["jos"] = {"Jordanian Sign Language"},
["jow"] = {"Jowulu"},
["jpa"] = {"Jewish Palestinian Aramaic"},
["jpr"] = {"Judeo-Persian"},
["jpx"] = {"Japanese (family)"},
["jqr"] = {"Jaqaru"},
["jra"] = {"Jarai"},
["jrb"] = {"Judeo-Arabic"},
["jrr"] = {"Jiru"},
["jrt"] = {"Jakattoe"},
["jru"] = {"Japrería"},
["jsl"] = {"Japanese Sign Language"},
["jua"] = {"Júma"},
["jub"] = {"Wannu"},
["juc"] = {"Jurchen"},
["jud"] = {"Worodougou"},
["juh"] = {"Hõne"},
["jui"] = {"Ngadjuri"},
["juk"] = {"Wapan"},
["jul"] = {"Jirel"},
["jum"] = {"Jumjum"},
["jun"] = {"Juang"},
["juo"] = {"Jiba"},
["jup"] = {"Hupdë"},
["jur"] = {"Jurúna"},
["jus"] = {"Jumla Sign Language"},
["jut"] = {"Jutish"},
["juu"] = {"Ju"},
["juw"] = {"Wãpha"},
["juy"] = {"Juray"},
["jvd"] = {"Javindo"},
["jvn"] = {"Caribbean Javanese"},
["jwi"] = {"Jwira-Pepesa"},
["jya"] = {"Jiarong"},
["jye"] = {"Judeo-Yemeni Arabic"},
["jyy"] = {"Jaya"},
["kaa"] = {"Kara-Kalpak", "Karakalpak"},
["kab"] = {"Kabyle"},
["kac"] = {"Kachin", "Jingpho"},
["kad"] = {"Adara"},
["kae"] = {"Ketangalan"},
["kaf"] = {"Katso"},
["kag"] = {"Kajaman"},
["kah"] = {"Kara (Central African Republic)"},
["kai"] = {"Karekare"},
["kaj"] = {"Jhyuo"},
["kak"] = {"Kalanguya", "Kayapa Kallahan"},
["kam"] = {"Kamba (Kenya)"},
["kao"] = {"Xaasongaxango"},
["kap"] = {"Bezhta"},
["kaq"] = {"Capanahua"},
["kar"] = {"Karen languages"},
["kav"] = {"Katukína"},
["kaw"] = {"Kawi"},
["kax"] = {"Kao"},
["kay"] = {"Kamayurá"},
["kba"] = {"Kalarko"},
["kbb"] = {"Kaxuiâna"},
["kbc"] = {"Kadiwéu"},
["kbd"] = {"Kabardian"},
["kbe"] = {"Kanju"},
["kbg"] = {"Khamba"},
["kbh"] = {"Camsá"},
["kbi"] = {"Kaptiau"},
["kbj"] = {"Kari"},
["kbk"] = {"Grass Koiari"},
["kbl"] = {"Kanembu"},
["kbm"] = {"Iwal"},
["kbn"] = {"Kare (Central African Republic)"},
["kbo"] = {"Keliko"},
["kbp"] = {"Kabiyè"},
["kbq"] = {"Kamano"},
["kbr"] = {"Kafa"},
["kbs"] = {"Kande"},
["kbt"] = {"Abadi"},
["kbu"] = {"Kabutra"},
["kbv"] = {"Dera (Indonesia)"},
["kbw"] = {"Kaiep"},
["kbx"] = {"Ap Ma"},
["kby"] = {"Manga Kanuri"},
["kbz"] = {"Duhwa"},
["kca"] = {"Khanty"},
["kcb"] = {"Kawacha"},
["kcc"] = {"Lubila"},
["kcd"] = {"Ngkâlmpw Kanum"},
["kce"] = {"Kaivi"},
["kcf"] = {"Ukaan"},
["kcg"] = {"Tyap"},
["kch"] = {"Vono"},
["kci"] = {"Byoot"},
["kcj"] = {"Kobiana"},
["kck"] = {"Kalanga"},
["kcl"] = {"Kela (Papua New Guinea)", "Kala"},
["kcm"] = {"Gula (Central African Republic)"},
["kcn"] = {"Nubi"},
["kco"] = {"Kinalakna"},
["kcp"] = {"Kanga"},
["kcq"] = {"Kamo"},
["kcr"] = {"Katla"},
["kcs"] = {"Koenoem"},
["kct"] = {"Kaian"},
["kcu"] = {"Kami (Tanzania)"},
["kcv"] = {"Kete"},
["kcw"] = {"Kabwari"},
["kcx"] = {"Kachama-Ganjule"},
["kcy"] = {"Korandje"},
["kcz"] = {"Konongo"},
["kda"] = {"Worimi"},
["kdc"] = {"Kutu"},
["kdd"] = {"Yankunytjatjara"},
["kde"] = {"Makonde"},
["kdf"] = {"Mamusi"},
["kdg"] = {"Seba"},
["kdh"] = {"Tem"},
["kdi"] = {"Kumam"},
["kdj"] = {"Karamojong"},
["kdk"] = {"Numèè", "Kwényi"},
["kdl"] = {"Tsikimba"},
["kdm"] = {"Kagoma"},
["kdn"] = {"Kunda"},
["kdo"] = {"Kordofanian languages"},
["kdp"] = {"Kaningdon-Nindem"},
["kdq"] = {"Koch"},
["kdr"] = {"Karaim"},
["kdt"] = {"Kuy"},
["kdu"] = {"Kadaru"},
["kdw"] = {"Koneraw"},
["kdx"] = {"Kam"},
["kdy"] = {"Keder", "Keijar"},
["kdz"] = {"Kwaja"},
["kea"] = {"Kabuverdianu"},
["keb"] = {"Kélé"},
["kec"] = {"Keiga"},
["ked"] = {"Kerewe"},
["kee"] = {"Eastern Keres"},
["kef"] = {"Kpessi"},
["keg"] = {"Tese"},
["keh"] = {"Keak"},
["kei"] = {"Kei"},
["kej"] = {"Kadar"},
["kek"] = {"Kekchí"},
["kel"] = {"Kela (Democratic Republic of Congo)"},
["kem"] = {"Kemak"},
["ken"] = {"Kenyang"},
["keo"] = {"Kakwa"},
["kep"] = {"Kaikadi"},
["keq"] = {"Kamar"},
["ker"] = {"Kera"},
["kes"] = {"Kugbo"},
["ket"] = {"Ket"},
["keu"] = {"Akebu"},
["kev"] = {"Kanikkaran"},
["kew"] = {"West Kewa"},
["kex"] = {"Kukna"},
["key"] = {"Kupia"},
["kez"] = {"Kukele"},
["kfa"] = {"Kodava"},
["kfb"] = {"Northwestern Kolami"},
["kfc"] = {"Konda-Dora"},
["kfd"] = {"Korra Koraga"},
["kfe"] = {"Kota (India)"},
["kff"] = {"Koya"},
["kfg"] = {"Kudiya"},
["kfh"] = {"Kurichiya"},
["kfi"] = {"Kannada Kurumba"},
["kfj"] = {"Kemiehua"},
["kfk"] = {"Kinnauri"},
["kfl"] = {"Kung"},
["kfm"] = {"Khunsari"},
["kfn"] = {"Kuk"},
["kfo"] = {"Koro (Côte d'Ivoire)"},
["kfp"] = {"Korwa"},
["kfq"] = {"Korku"},
["kfr"] = {"Kachhi", "Kutchi"},
["kfs"] = {"Bilaspuri"},
["kft"] = {"Kanjari"},
["kfu"] = {"Katkari"},
["kfv"] = {"Kurmukar"},
["kfw"] = {"Kharam Naga"},
["kfx"] = {"Kullu Pahari"},
["kfy"] = {"Kumaoni"},
["kfz"] = {"Koromfé"},
["kga"] = {"Koyaga"},
["kgb"] = {"Kawe"},
["kge"] = {"Komering"},
["kgf"] = {"Kube"},
["kgg"] = {"Kusunda"},
["kgi"] = {"Selangor Sign Language"},
["kgj"] = {"Gamale Kham"},
["kgk"] = {"Kaiwá"},
["kgl"] = {"Kunggari"},
["kgm"] = {"Karipúna"},
["kgn"] = {"Karingani"},
["kgo"] = {"Krongo"},
["kgp"] = {"Kaingang"},
["kgq"] = {"Kamoro"},
["kgr"] = {"Abun"},
["kgs"] = {"Kumbainggar"},
["kgt"] = {"Somyev"},
["kgu"] = {"Kobol"},
["kgv"] = {"Karas"},
["kgw"] = {"Karon Dori"},
["kgx"] = {"Kamaru"},
["kgy"] = {"Kyerung"},
["kha"] = {"Khasi"},
["khb"] = {"Lü"},
["khc"] = {"Tukang Besi North"},
["khd"] = {"Bädi Kanum"},
["khe"] = {"Korowai"},
["khf"] = {"Khuen"},
["khg"] = {"Khams Tibetan"},
["khh"] = {"Kehu"},
["khi"] = {"Khoisan languages"},
["khj"] = {"Kuturmi"},
["khk"] = {"Halh Mongolian"},
["khl"] = {"Lusi"},
["khn"] = {"Khandesi"},
["kho"] = {"Khotanese", "Sakan"},
["khp"] = {"Kapori", "Kapauri"},
["khq"] = {"Koyra Chiini Songhay"},
["khr"] = {"Kharia"},
["khs"] = {"Kasua"},
["kht"] = {"Khamti"},
["khu"] = {"Nkhumbi"},
["khv"] = {"Khvarshi"},
["khw"] = {"Khowar"},
["khx"] = {"Kanu"},
["khy"] = {"Kele (Democratic Republic of Congo)"},
["khz"] = {"Keapara"},
["kia"] = {"Kim"},
["kib"] = {"Koalib"},
["kic"] = {"Kickapoo"},
["kid"] = {"Koshin"},
["kie"] = {"Kibet"},
["kif"] = {"Eastern Parbate Kham"},
["kig"] = {"Kimaama", "Kimaghima"},
["kih"] = {"Kilmeri"},
["kii"] = {"Kitsai"},
["kij"] = {"Kilivila"},
["kil"] = {"Kariya"},
["kim"] = {"Karagas"},
["kio"] = {"Kiowa"},
["kip"] = {"Sheshi Kham"},
["kiq"] = {"Kosadle", "Kosare"},
["kis"] = {"Kis"},
["kit"] = {"Agob"},
["kiu"] = {"Kirmanjki (individual language)"},
["kiv"] = {"Kimbu"},
["kiw"] = {"Northeast Kiwai"},
["kix"] = {"Khiamniungan Naga"},
["kiy"] = {"Kirikiri"},
["kiz"] = {"Kisi"},
["kja"] = {"Mlap"},
["kjb"] = {"Q'anjob'al", "Kanjobal"},
["kjc"] = {"Coastal Konjo"},
["kjd"] = {"Southern Kiwai"},
["kje"] = {"Kisar"},
["kjg"] = {"Khmu"},
["kjh"] = {"Khakas"},
["kji"] = {"Zabana"},
["kjj"] = {"Khinalugh"},
["kjk"] = {"Highland Konjo"},
["kjl"] = {"Western Parbate Kham"},
["kjm"] = {"Kháng"},
["kjn"] = {"Kunjen"},
["kjo"] = {"Harijan Kinnauri"},
["kjp"] = {"Pwo Eastern Karen"},
["kjq"] = {"Western Keres"},
["kjr"] = {"Kurudu"},
["kjs"] = {"East Kewa"},
["kjt"] = {"Phrae Pwo Karen"},
["kju"] = {"Kashaya"},
["kjv"] = {"Kaikavian Literary Language"},
["kjx"] = {"Ramopa"},
["kjy"] = {"Erave"},
["kjz"] = {"Bumthangkha"},
["kka"] = {"Kakanda"},
["kkb"] = {"Kwerisa"},
["kkc"] = {"Odoodee"},
["kkd"] = {"Kinuku"},
["kke"] = {"Kakabe"},
["kkf"] = {"Kalaktang Monpa"},
["kkg"] = {"Mabaka Valley Kalinga"},
["kkh"] = {"Khün"},
["kki"] = {"Kagulu"},
["kkj"] = {"Kako"},
["kkk"] = {"Kokota"},
["kkl"] = {"Kosarek Yale"},
["kkm"] = {"Kiong"},
["kkn"] = {"Kon Keu"},
["kko"] = {"Karko"},
["kkp"] = {"Gugubera", "Koko-Bera"},
["kkq"] = {"Kaeku"},
["kkr"] = {"Kir-Balar"},
["kks"] = {"Giiwo"},
["kkt"] = {"Koi"},
["kku"] = {"Tumi"},
["kkv"] = {"Kangean"},
["kkw"] = {"Teke-Kukuya"},
["kkx"] = {"Kohin"},
["kky"] = {"Guugu Yimidhirr", "Guguyimidjir"},
["kkz"] = {"Kaska"},
["kla"] = {"Klamath-Modoc"},
["klb"] = {"Kiliwa"},
["klc"] = {"Kolbila"},
["kld"] = {"Gamilaraay"},
["kle"] = {"Kulung (Nepal)"},
["klf"] = {"Kendeje"},
["klg"] = {"Tagakaulo"},
["klh"] = {"Weliki"},
["kli"] = {"Kalumpang"},
["klj"] = {"Khalaj"},
["klk"] = {"Kono (Nigeria)"},
["kll"] = {"Kagan Kalagan"},
["klm"] = {"Migum"},
["kln"] = {"Kalenjin"},
["klo"] = {"Kapya"},
["klp"] = {"Kamasa"},
["klq"] = {"Rumu"},
["klr"] = {"Khaling"},
["kls"] = {"Kalasha"},
["klt"] = {"Nukna"},
["klu"] = {"Klao"},
["klv"] = {"Maskelynes"},
["klw"] = {"Tado", "Lindu"},
["klx"] = {"Koluwawa"},
["kly"] = {"Kalao"},
["klz"] = {"Kabola"},
["kma"] = {"Konni"},
["kmb"] = {"Kimbundu"},
["kmc"] = {"Southern Dong"},
["kmd"] = {"Majukayang Kalinga"},
["kme"] = {"Bakole"},
["kmf"] = {"Kare (Papua New Guinea)"},
["kmg"] = {"Kâte"},
["kmh"] = {"Kalam"},
["kmi"] = {"Kami (Nigeria)"},
["kmj"] = {"Kumarbhag Paharia"},
["kmk"] = {"Limos Kalinga"},
["kml"] = {"Tanudan Kalinga"},
["kmm"] = {"Kom (India)"},
["kmn"] = {"Awtuw"},
["kmo"] = {"Kwoma"},
["kmp"] = {"Gimme"},
["kmq"] = {"Kwama"},
["kmr"] = {"Northern Kurdish"},
["kms"] = {"Kamasau"},
["kmt"] = {"Kemtuik"},
["kmu"] = {"Kanite"},
["kmv"] = {"Karipúna Creole French"},
["kmw"] = {"Komo (Democratic Republic of Congo)"},
["kmx"] = {"Waboda"},
["kmy"] = {"Koma"},
["kmz"] = {"Khorasani Turkish"},
["kna"] = {"Dera (Nigeria)"},
["knb"] = {"Lubuagan Kalinga"},
["knc"] = {"Central Kanuri"},
["knd"] = {"Konda"},
["kne"] = {"Kankanaey"},
["knf"] = {"Mankanya"},
["kng"] = {"Koongo"},
["kni"] = {"Kanufi"},
["knj"] = {"Western Kanjobal"},
["knk"] = {"Kuranko"},
["knl"] = {"Keninjal"},
["knm"] = {"Kanamarí"},
["knn"] = {"Konkani (individual language)"},
["kno"] = {"Kono (Sierra Leone)"},
["knp"] = {"Kwanja"},
["knq"] = {"Kintaq"},
["knr"] = {"Kaningra"},
["kns"] = {"Kensiu"},
["knt"] = {"Panoan Katukína"},
["knu"] = {"Kono (Guinea)"},
["knv"] = {"Tabo"},
["knw"] = {"Kung-Ekoka"},
["knx"] = {"Kendayan", "Salako"},
["kny"] = {"Kanyok"},
["knz"] = {"Kalamsé"},
["koa"] = {"Konomala"},
["koc"] = {"Kpati"},
["kod"] = {"Kodi"},
["koe"] = {"Kacipo-Bale Suri"},
["kof"] = {"Kubi"},
["kog"] = {"Cogui", "Kogi"},
["koh"] = {"Koyo"},
["koi"] = {"Komi-Permyak"},
["kok"] = {"Konkani (macrolanguage)"},
["kol"] = {"Kol (Papua New Guinea)"},
["koo"] = {"Konzo"},
["kop"] = {"Waube"},
["koq"] = {"Kota (Gabon)"},
["kos"] = {"Kosraean"},
["kot"] = {"Lagwan"},
["kou"] = {"Koke"},
["kov"] = {"Kudu-Camo"},
["kow"] = {"Kugama"},
["koy"] = {"Koyukon"},
["koz"] = {"Korak"},
["kpa"] = {"Kutto"},
["kpb"] = {"Mullu Kurumba"},
["kpc"] = {"Curripaco"},
["kpd"] = {"Koba"},
["kpe"] = {"Kpelle"},
["kpf"] = {"Komba"},
["kpg"] = {"Kapingamarangi"},
["kph"] = {"Kplang"},
["kpi"] = {"Kofei"},
["kpj"] = {"Karajá"},
["kpk"] = {"Kpan"},
["kpl"] = {"Kpala"},
["kpm"] = {"Koho"},
["kpn"] = {"Kepkiriwát"},
["kpo"] = {"Ikposo"},
["kpq"] = {"Korupun-Sela"},
["kpr"] = {"Korafe-Yegha"},
["kps"] = {"Tehit"},
["kpt"] = {"Karata"},
["kpu"] = {"Kafoa"},
["kpv"] = {"Komi-Zyrian"},
["kpw"] = {"Kobon"},
["kpx"] = {"Mountain Koiali"},
["kpy"] = {"Koryak"},
["kpz"] = {"Kupsabiny"},
["kqa"] = {"Mum"},
["kqb"] = {"Kovai"},
["kqc"] = {"Doromu-Koki"},
["kqd"] = {"Koy Sanjaq Surat"},
["kqe"] = {"Kalagan"},
["kqf"] = {"Kakabai"},
["kqg"] = {"Khe"},
["kqh"] = {"Kisankasa"},
["kqi"] = {"Koitabu"},
["kqj"] = {"Koromira"},
["kqk"] = {"Kotafon Gbe"},
["kql"] = {"Kyenele"},
["kqm"] = {"Khisa"},
["kqn"] = {"Kaonde"},
["kqo"] = {"Eastern Krahn"},
["kqp"] = {"Kimré"},
["kqq"] = {"Krenak"},
["kqr"] = {"Kimaragang"},
["kqs"] = {"Northern Kissi"},
["kqt"] = {"Klias River Kadazan"},
["kqu"] = {"Seroa"},
["kqv"] = {"Okolod"},
["kqw"] = {"Kandas"},
["kqx"] = {"Mser"},
["kqy"] = {"Koorete"},
["kqz"] = {"Korana"},
["kra"] = {"Kumhali"},
["krb"] = {"Karkin"},
["krc"] = {"Karachay-Balkar"},
["krd"] = {"Kairui-Midiki"},
["kre"] = {"Panará"},
["krf"] = {"Koro (Vanuatu)"},
["krh"] = {"Kurama"},
["kri"] = {"Krio"},
["krj"] = {"Kinaray-A"},
["krk"] = {"Kerek"},
["krl"] = {"Karelian"},
["krn"] = {"Sapo"},
["kro"] = {"Kru languages"},
["krp"] = {"Korop"},
["krr"] = {"Krung"},
["krs"] = {"Gbaya (Sudan)"},
["krt"] = {"Tumari Kanuri"},
["kru"] = {"Kurukh"},
["krv"] = {"Kavet"},
["krw"] = {"Western Krahn"},
["krx"] = {"Karon"},
["kry"] = {"Kryts"},
["krz"] = {"Sota Kanum"},
["ksa"] = {"Shuwa-Zamani"},
["ksb"] = {"Shambala"},
["ksc"] = {"Southern Kalinga"},
["ksd"] = {"Kuanua"},
["kse"] = {"Kuni"},
["ksf"] = {"Bafia"},
["ksg"] = {"Kusaghe"},
["ksh"] = {"Kölsch"},
["ksi"] = {"Krisa", "I'saka"},
["ksj"] = {"Uare"},
["ksk"] = {"Kansa"},
["ksl"] = {"Kumalu"},
["ksm"] = {"Kumba"},
["ksn"] = {"Kasiguranin"},
["kso"] = {"Kofa"},
["ksp"] = {"Kaba"},
["ksq"] = {"Kwaami"},
["ksr"] = {"Borong"},
["kss"] = {"Southern Kisi"},
["kst"] = {"Winyé"},
["ksu"] = {"Khamyang"},
["ksv"] = {"Kusu"},
["ksw"] = {"S'gaw Karen"},
["ksx"] = {"Kedang"},
["ksy"] = {"Kharia Thar"},
["ksz"] = {"Kodaku"},
["kta"] = {"Katua"},
["ktb"] = {"Kambaata"},
["ktc"] = {"Kholok"},
["ktd"] = {"Kokata", "Kukatha"},
["kte"] = {"Nubri"},
["ktf"] = {"Kwami"},
["ktg"] = {"Kalkutung"},
["kth"] = {"Karanga"},
["kti"] = {"North Muyu"},
["ktj"] = {"Plapo Krumen"},
["ktk"] = {"Kaniet"},
["ktl"] = {"Koroshi"},
["ktm"] = {"Kurti"},
["ktn"] = {"Karitiâna"},
["kto"] = {"Kuot"},
["ktp"] = {"Kaduo"},
["ktq"] = {"Katabaga"},
["kts"] = {"South Muyu"},
["ktt"] = {"Ketum"},
["ktu"] = {"Kituba (Democratic Republic of Congo)"},
["ktv"] = {"Eastern Katu"},
["ktw"] = {"Kato"},
["ktx"] = {"Kaxararí"},
["kty"] = {"Kango (Bas-Uélé District)"},
["ktz"] = {"Juǀʼhoan", "Juǀʼhoansi"},
["kub"] = {"Kutep"},
["kuc"] = {"Kwinsu"},
["kud"] = {"'Auhelawa"},
["kue"] = {"Kuman (Papua New Guinea)"},
["kuf"] = {"Western Katu"},
["kug"] = {"Kupa"},
["kuh"] = {"Kushi"},
["kui"] = {"Kuikúro-Kalapálo", "Kalapalo"},
["kuj"] = {"Kuria"},
["kuk"] = {"Kepo'"},
["kul"] = {"Kulere"},
["kum"] = {"Kumyk"},
["kun"] = {"Kunama"},
["kuo"] = {"Kumukio"},
["kup"] = {"Kunimaipa"},
["kuq"] = {"Karipuna"},
["kus"] = {"Kusaal"},
["kut"] = {"Kutenai"},
["kuu"] = {"Upper Kuskokwim"},
["kuv"] = {"Kur"},
["kuw"] = {"Kpagua"},
["kux"] = {"Kukatja"},
["kuy"] = {"Kuuku-Ya'u"},
["kuz"] = {"Kunza"},
["kva"] = {"Bagvalal"},
["kvb"] = {"Kubu"},
["kvc"] = {"Kove"},
["kvd"] = {"Kui (Indonesia)"},
["kve"] = {"Kalabakan"},
["kvf"] = {"Kabalai"},
["kvg"] = {"Kuni-Boazi"},
["kvh"] = {"Komodo"},
["kvi"] = {"Kwang"},
["kvj"] = {"Psikye"},
["kvk"] = {"Korean Sign Language"},
["kvl"] = {"Kayaw"},
["kvm"] = {"Kendem"},
["kvn"] = {"Border Kuna"},
["kvo"] = {"Dobel"},
["kvp"] = {"Kompane"},
["kvq"] = {"Geba Karen"},
["kvr"] = {"Kerinci"},
["kvt"] = {"Lahta Karen", "Lahta"},
["kvu"] = {"Yinbaw Karen"},
["kvv"] = {"Kola"},
["kvw"] = {"Wersing"},
["kvx"] = {"Parkari Koli"},
["kvy"] = {"Yintale Karen", "Yintale"},
["kvz"] = {"Tsakwambo", "Tsaukambo"},
["kwa"] = {"Dâw"},
["kwb"] = {"Kwa"},
["kwc"] = {"Likwala"},
["kwd"] = {"Kwaio"},
["kwe"] = {"Kwerba"},
["kwf"] = {"Kwara'ae"},
["kwg"] = {"Sara Kaba Deme"},
["kwh"] = {"Kowiai"},
["kwi"] = {"Awa-Cuaiquer"},
["kwj"] = {"Kwanga"},
["kwk"] = {"Kwakiutl"},
["kwl"] = {"Kofyar"},
["kwm"] = {"Kwambi"},
["kwn"] = {"Kwangali"},
["kwo"] = {"Kwomtari"},
["kwp"] = {"Kodia"},
["kwr"] = {"Kwer"},
["kws"] = {"Kwese"},
["kwt"] = {"Kwesten"},
["kwu"] = {"Kwakum"},
["kwv"] = {"Sara Kaba Náà"},
["kww"] = {"Kwinti"},
["kwx"] = {"Khirwar"},
["kwy"] = {"San Salvador Kongo"},
["kwz"] = {"Kwadi"},
["kxa"] = {"Kairiru"},
["kxb"] = {"Krobu"},
["kxc"] = {"Konso", "Khonso"},
["kxd"] = {"Brunei"},
["kxf"] = {"Manumanaw Karen", "Manumanaw"},
["kxh"] = {"Karo (Ethiopia)"},
["kxi"] = {"Keningau Murut"},
["kxj"] = {"Kulfa"},
["kxk"] = {"Zayein Karen"},
["kxm"] = {"Northern Khmer"},
["kxn"] = {"Kanowit-Tanjong Melanau"},
["kxo"] = {"Kanoé"},
["kxp"] = {"Wadiyara Koli"},
["kxq"] = {"Smärky Kanum"},
["kxr"] = {"Koro (Papua New Guinea)"},
["kxs"] = {"Kangjia"},
["kxt"] = {"Koiwat"},
["kxv"] = {"Kuvi"},
["kxw"] = {"Konai"},
["kxx"] = {"Likuba"},
["kxy"] = {"Kayong"},
["kxz"] = {"Kerewo"},
["kya"] = {"Kwaya"},
["kyb"] = {"Butbut Kalinga"},
["kyc"] = {"Kyaka"},
["kyd"] = {"Karey"},
["kye"] = {"Krache"},
["kyf"] = {"Kouya"},
["kyg"] = {"Keyagana"},
["kyh"] = {"Karok"},
["kyi"] = {"Kiput"},
["kyj"] = {"Karao"},
["kyk"] = {"Kamayo"},
["kyl"] = {"Kalapuya"},
["kym"] = {"Kpatili"},
["kyn"] = {"Northern Binukidnon"},
["kyo"] = {"Kelon"},
["kyp"] = {"Kang"},
["kyq"] = {"Kenga"},
["kyr"] = {"Kuruáya"},
["kys"] = {"Baram Kayan"},
["kyt"] = {"Kayagar"},
["kyu"] = {"Western Kayah"},
["kyv"] = {"Kayort"},
["kyw"] = {"Kudmali"},
["kyx"] = {"Rapoisi"},
["kyy"] = {"Kambaira"},
["kyz"] = {"Kayabí"},
["kza"] = {"Western Karaboro"},
["kzb"] = {"Kaibobo"},
["kzc"] = {"Bondoukou Kulango"},
["kzd"] = {"Kadai"},
["kze"] = {"Kosena"},
["kzf"] = {"Da'a Kaili"},
["kzg"] = {"Kikai"},
["kzi"] = {"Kelabit"},
["kzk"] = {"Kazukuru"},
["kzl"] = {"Kayeli"},
["kzm"] = {"Kais"},
["kzn"] = {"Kokola"},
["kzo"] = {"Kaningi"},
["kzp"] = {"Kaidipang"},
["kzq"] = {"Kaike"},
["kzr"] = {"Karang"},
["kzs"] = {"Sugut Dusun"},
["kzu"] = {"Kayupulau"},
["kzv"] = {"Komyandaret"},
["kzw"] = {"Karirí-Xocó"},
["kzx"] = {"Kamarian"},
["kzy"] = {"Kango (Tshopo District)"},
["kzz"] = {"Kalabra"},
["laa"] = {"Southern Subanen"},
["lab"] = {"Linear A"},
["lac"] = {"Lacandon"},
["lad"] = {"Ladino"},
["lae"] = {"Pattani"},
["laf"] = {"Lafofa"},
["lag"] = {"Langi"},
["lah"] = {"Lahnda"},
["lai"] = {"Lambya"},
["laj"] = {"Lango (Uganda)"},
["lal"] = {"Lalia"},
["lam"] = {"Lamba"},
["lan"] = {"Laru"},
["lap"] = {"Laka (Chad)"},
["laq"] = {"Qabiao"},
["lar"] = {"Larteh"},
["las"] = {"Lama (Togo)"},
["lau"] = {"Laba"},
["law"] = {"Lauje"},
["lax"] = {"Tiwa"},
["lay"] = {"Lama Bai"},
["laz"] = {"Aribwatsa"},
["lbb"] = {"Label"},
["lbc"] = {"Lakkia"},
["lbe"] = {"Lak"},
["lbf"] = {"Tinani"},
["lbg"] = {"Laopang"},
["lbi"] = {"La'bi"},
["lbj"] = {"Ladakhi"},
["lbk"] = {"Central Bontok"},
["lbl"] = {"Libon Bikol"},
["lbm"] = {"Lodhi"},
["lbn"] = {"Rmeet"},
["lbo"] = {"Laven"},
["lbq"] = {"Wampar"},
["lbr"] = {"Lohorung"},
["lbs"] = {"Libyan Sign Language"},
["lbt"] = {"Lachi"},
["lbu"] = {"Labu"},
["lbv"] = {"Lavatbura-Lamusong"},
["lbw"] = {"Tolaki"},
["lbx"] = {"Lawangan"},
["lby"] = {"Lamalama", "Lamu-Lamu"},
["lbz"] = {"Lardil"},
["lcc"] = {"Legenyem"},
["lcd"] = {"Lola"},
["lce"] = {"Loncong", "Sekak"},
["lcf"] = {"Lubu"},
["lch"] = {"Luchazi"},
["lcl"] = {"Lisela"},
["lcm"] = {"Tungag"},
["lcp"] = {"Western Lawa"},
["lcq"] = {"Luhu"},
["lcs"] = {"Lisabata-Nuniali"},
["lda"] = {"Kla-Dan"},
["ldb"] = {"Dũya"},
["ldd"] = {"Luri"},
["ldg"] = {"Lenyima"},
["ldh"] = {"Lamja-Dengsa-Tola"},
["ldi"] = {"Laari"},
["ldj"] = {"Lemoro"},
["ldk"] = {"Leelau"},
["ldl"] = {"Kaan"},
["ldm"] = {"Landoma"},
["ldn"] = {"Láadan"},
["ldo"] = {"Loo"},
["ldp"] = {"Tso"},
["ldq"] = {"Lufu"},
["lea"] = {"Lega-Shabunda"},
["leb"] = {"Lala-Bisa"},
["lec"] = {"Leco"},
["led"] = {"Lendu"},
["lee"] = {"Lyélé"},
["lef"] = {"Lelemi"},
["leh"] = {"Lenje"},
["lei"] = {"Lemio"},
["lej"] = {"Lengola"},
["lek"] = {"Leipon"},
["lel"] = {"Lele (Democratic Republic of Congo)"},
["lem"] = {"Nomaande"},
["len"] = {"Lenca"},
["leo"] = {"Leti (Cameroon)"},
["lep"] = {"Lepcha"},
["leq"] = {"Lembena"},
["ler"] = {"Lenkau"},
["les"] = {"Lese"},
["let"] = {"Lesing-Gelimi", "Amio-Gelimi"},
["leu"] = {"Kara (Papua New Guinea)"},
["lev"] = {"Lamma"},
["lew"] = {"Ledo Kaili"},
["lex"] = {"Luang"},
["ley"] = {"Lemolang"},
["lez"] = {"Lezghian"},
["lfa"] = {"Lefa"},
["lfn"] = {"Lingua Franca Nova"},
["lga"] = {"Lungga"},
["lgb"] = {"Laghu"},
["lgg"] = {"Lugbara"},
["lgh"] = {"Laghuu"},
["lgi"] = {"Lengilu"},
["lgk"] = {"Lingarak", "Neverver"},
["lgl"] = {"Wala"},
["lgm"] = {"Lega-Mwenga"},
["lgn"] = {"T'apo", "Opuuo"},
["lgo"] = {"Lango (South Sudan)"},
["lgq"] = {"Logba"},
["lgr"] = {"Lengo"},
["lgt"] = {"Pahi"},
["lgu"] = {"Longgu"},
["lgz"] = {"Ligenza"},
["lha"] = {"Laha (Viet Nam)"},
["lhh"] = {"Laha (Indonesia)"},
["lhi"] = {"Lahu Shi"},
["lhl"] = {"Lahul Lohar"},
["lhm"] = {"Lhomi"},
["lhn"] = {"Lahanan"},
["lhp"] = {"Lhokpu"},
["lhs"] = {"Mlahsö"},
["lht"] = {"Lo-Toga"},
["lhu"] = {"Lahu"},
["lia"] = {"West-Central Limba"},
["lib"] = {"Likum"},
["lic"] = {"Hlai"},
["lid"] = {"Nyindrou"},
["lie"] = {"Likila"},
["lif"] = {"Limbu"},
["lig"] = {"Ligbi"},
["lih"] = {"Lihir"},
["lij"] = {"Ligurian"},
["lik"] = {"Lika"},
["lil"] = {"Lillooet"},
["lio"] = {"Liki"},
["lip"] = {"Sekpele"},
["liq"] = {"Libido"},
["lir"] = {"Liberian English"},
["lis"] = {"Lisu"},
["liu"] = {"Logorik"},
["liv"] = {"Liv"},
["liw"] = {"Col"},
["lix"] = {"Liabuku"},
["liy"] = {"Banda-Bambari"},
["liz"] = {"Libinza"},
["lja"] = {"Golpa"},
["lje"] = {"Rampi"},
["lji"] = {"Laiyolo"},
["ljl"] = {"Li'o"},
["ljp"] = {"Lampung Api"},
["ljw"] = {"Yirandali"},
["ljx"] = {"Yuru"},
["lka"] = {"Lakalei"},
["lkb"] = {"Kabras", "Lukabaras"},
["lkc"] = {"Kucong"},
["lkd"] = {"Lakondê"},
["lke"] = {"Kenyi"},
["lkh"] = {"Lakha"},
["lki"] = {"Laki"},
["lkj"] = {"Remun"},
["lkl"] = {"Laeko-Libuat"},
["lkm"] = {"Kalaamaya"},
["lkn"] = {"Lakon", "Vure"},
["lko"] = {"Khayo", "Olukhayo"},
["lkr"] = {"Päri"},
["lks"] = {"Kisa", "Olushisa"},
["lkt"] = {"Lakota"},
["lku"] = {"Kungkari"},
["lky"] = {"Lokoya"},
["lla"] = {"Lala-Roba"},
["llb"] = {"Lolo"},
["llc"] = {"Lele (Guinea)"},
["lld"] = {"Ladin"},
["lle"] = {"Lele (Papua New Guinea)"},
["llf"] = {"Hermit"},
["llg"] = {"Lole"},
["llh"] = {"Lamu"},
["lli"] = {"Teke-Laali"},
["llj"] = {"Ladji Ladji"},
["llk"] = {"Lelak"},
["lll"] = {"Lilau"},
["llm"] = {"Lasalimu"},
["lln"] = {"Lele (Chad)"},
["llp"] = {"North Efate"},
["llq"] = {"Lolak"},
["lls"] = {"Lithuanian Sign Language"},
["llu"] = {"Lau"},
["llx"] = {"Lauan"},
["lma"] = {"East Limba"},
["lmb"] = {"Merei"},
["lmc"] = {"Limilngan"},
["lmd"] = {"Lumun"},
["lme"] = {"Pévé"},
["lmf"] = {"South Lembata"},
["lmg"] = {"Lamogai"},
["lmh"] = {"Lambichhong"},
["lmi"] = {"Lombi"},
["lmj"] = {"West Lembata"},
["lmk"] = {"Lamkang"},
["lml"] = {"Hano"},
["lmn"] = {"Lambadi"},
["lmo"] = {"Lombard"},
["lmp"] = {"Limbum"},
["lmq"] = {"Lamatuka"},
["lmr"] = {"Lamalera"},
["lmu"] = {"Lamenu"},
["lmv"] = {"Lomaiviti"},
["lmw"] = {"Lake Miwok"},
["lmx"] = {"Laimbue"},
["lmy"] = {"Lamboya"},
["lna"] = {"Langbashe"},
["lnb"] = {"Mbalanhu"},
["lnd"] = {"Lundayeh", "Lun Bawang"},
["lng"] = {"Langobardic"},
["lnh"] = {"Lanoh"},
["lni"] = {"Daantanai'"},
["lnj"] = {"Leningitij"},
["lnl"] = {"South Central Banda"},
["lnm"] = {"Langam"},
["lnn"] = {"Lorediakarkar"},
["lns"] = {"Lamnso'"},
["lnu"] = {"Longuda"},
["lnw"] = {"Lanima"},
["lnz"] = {"Lonzo"},
["loa"] = {"Loloda"},
["lob"] = {"Lobi"},
["loc"] = {"Inonhan"},
["loe"] = {"Saluan"},
["lof"] = {"Logol"},
["log"] = {"Logo"},
["loh"] = {"Narim"},
["loi"] = {"Loma (Côte d'Ivoire)"},
["loj"] = {"Lou"},
["lok"] = {"Loko"},
["lol"] = {"Mongo"},
["lom"] = {"Loma (Liberia)"},
["lon"] = {"Malawi Lomwe"},
["loo"] = {"Lombo"},
["lop"] = {"Lopa"},
["loq"] = {"Lobala"},
["lor"] = {"Téén"},
["los"] = {"Loniu"},
["lot"] = {"Otuho"},
["lou"] = {"Louisiana Creole"},
["lov"] = {"Lopi"},
["low"] = {"Tampias Lobu"},
["lox"] = {"Loun"},
["loy"] = {"Loke"},
["loz"] = {"Lozi"},
["lpa"] = {"Lelepa"},
["lpe"] = {"Lepki"},
["lpn"] = {"Long Phuri Naga"},
["lpo"] = {"Lipo"},
["lpx"] = {"Lopit"},
["lqr"] = {"Logir"},
["lra"] = {"Rara Bakati'"},
["lrc"] = {"Northern Luri"},
["lre"] = {"Laurentian"},
["lrg"] = {"Laragia"},
["lri"] = {"Marachi", "Olumarachi"},
["lrk"] = {"Loarki"},
["lrl"] = {"Lari"},
["lrm"] = {"Marama", "Olumarama"},
["lrn"] = {"Lorang"},
["lro"] = {"Laro"},
["lrr"] = {"Southern Yamphu"},
["lrt"] = {"Larantuka Malay"},
["lrv"] = {"Larevat"},
["lrz"] = {"Lemerig"},
["lsa"] = {"Lasgerdi"},
["lsb"] = {"Burundian Sign Language", "Langue des Signes Burundaise"},
["lsc"] = {"Albarradas Sign Language", "Lengua de señas Albarradas"},
["lsd"] = {"Lishana Deni"},
["lse"] = {"Lusengo"},
["lsh"] = {"Lish"},
["lsi"] = {"Lashi"},
["lsl"] = {"Latvian Sign Language"},
["lsm"] = {"Saamia", "Olusamia"},
["lsn"] = {"Tibetan Sign Language"},
["lso"] = {"Laos Sign Language"},
["lsp"] = {"Panamanian Sign Language", "Lengua de Señas Panameñas"},
["lsr"] = {"Aruop"},
["lss"] = {"Lasi"},
["lst"] = {"Trinidad and Tobago Sign Language"},
["lsv"] = {"Sivia Sign Language"},
["lsw"] = {"Seychelles Sign Language", "Lalang Siny Seselwa", "Langue des Signes Seychelloise"},
["lsy"] = {"Mauritian Sign Language"},
["ltc"] = {"Late Middle Chinese"},
["ltg"] = {"Latgalian"},
["lth"] = {"Thur"},
["lti"] = {"Leti (Indonesia)"},
["ltn"] = {"Latundê"},
["lto"] = {"Tsotso", "Olutsotso"},
["lts"] = {"Tachoni", "Lutachoni"},
["ltu"] = {"Latu"},
["lua"] = {"Luba-Lulua"},
["luc"] = {"Aringa"},
["lud"] = {"Ludian"},
["lue"] = {"Luvale"},
["luf"] = {"Laua"},
["lui"] = {"Luiseno"},
["luj"] = {"Luna"},
["luk"] = {"Lunanakha"},
["lul"] = {"Olu'bo"},
["lum"] = {"Luimbi"},
["lun"] = {"Lunda"},
["luo"] = {"Luo (Kenya and Tanzania)", "Dholuo"},
["lup"] = {"Lumbu"},
["luq"] = {"Lucumi"},
["lur"] = {"Laura"},
["lus"] = {"Lushai"},
["lut"] = {"Lushootseed"},
["luu"] = {"Lumba-Yakkha"},
["luv"] = {"Luwati"},
["luw"] = {"Luo (Cameroon)"},
["luy"] = {"Luyia", "Oluluyia"},
["luz"] = {"Southern Luri"},
["lva"] = {"Maku'a"},
["lvi"] = {"Lavi"},
["lvk"] = {"Lavukaleve"},
["lvs"] = {"Standard Latvian"},
["lvu"] = {"Levuka"},
["lwa"] = {"Lwalu"},
["lwe"] = {"Lewo Eleng"},
["lwg"] = {"Wanga", "Oluwanga"},
["lwh"] = {"White Lachi"},
["lwl"] = {"Eastern Lawa"},
["lwm"] = {"Laomian"},
["lwo"] = {"Luwo"},
["lws"] = {"Malawian Sign Language"},
["lwt"] = {"Lewotobi"},
["lwu"] = {"Lawu"},
["lww"] = {"Lewo"},
["lxm"] = {"Lakurumau"},
["lya"] = {"Layakha"},
["lyg"] = {"Lyngngam"},
["lyn"] = {"Luyana"},
["lzh"] = {"Literary Chinese"},
["lzl"] = {"Litzlitz"},
["lzn"] = {"Leinong Naga"},
["lzz"] = {"Laz"},
["maa"] = {"San Jerónimo Tecóatl Mazatec"},
["mab"] = {"Yutanduchi Mixtec"},
["mad"] = {"Madurese"},
["mae"] = {"Bo-Rukul"},
["maf"] = {"Mafa"},
["mag"] = {"Magahi"},
["mai"] = {"Maithili"},
["maj"] = {"Jalapa De Díaz Mazatec"},
["mak"] = {"Makasar"},
["mam"] = {"Mam"},
["man"] = {"Mandingo", "Manding"},
["map"] = {"Austronesian languages"},
["maq"] = {"Chiquihuitlán Mazatec"},
["mas"] = {"Masai"},
["mat"] = {"San Francisco Matlatzinca"},
["mau"] = {"Huautla Mazatec"},
["mav"] = {"Sateré-Mawé"},
["maw"] = {"Mampruli"},
["max"] = {"North Moluccan Malay"},
["maz"] = {"Central Mazahua"},
["mba"] = {"Higaonon"},
["mbb"] = {"Western Bukidnon Manobo"},
["mbc"] = {"Macushi"},
["mbd"] = {"Dibabawon Manobo"},
["mbe"] = {"Molale"},
["mbf"] = {"Baba Malay"},
["mbh"] = {"Mangseng"},
["mbi"] = {"Ilianen Manobo"},
["mbj"] = {"Nadëb"},
["mbk"] = {"Malol"},
["mbl"] = {"Maxakalí"},
["mbm"] = {"Ombamba"},
["mbn"] = {"Macaguán"},
["mbo"] = {"Mbo (Cameroon)"},
["mbp"] = {"Malayo"},
["mbq"] = {"Maisin"},
["mbr"] = {"Nukak Makú"},
["mbs"] = {"Sarangani Manobo"},
["mbt"] = {"Matigsalug Manobo"},
["mbu"] = {"Mbula-Bwazza"},
["mbv"] = {"Mbulungish"},
["mbw"] = {"Maring"},
["mbx"] = {"Mari (East Sepik Province)"},
["mby"] = {"Memoni"},
["mbz"] = {"Amoltepec Mixtec"},
["mca"] = {"Maca"},
["mcb"] = {"Machiguenga"},
["mcc"] = {"Bitur"},
["mcd"] = {"Sharanahua"},
["mce"] = {"Itundujia Mixtec"},
["mcf"] = {"Matsés"},
["mcg"] = {"Mapoyo"},
["mch"] = {"Maquiritari"},
["mci"] = {"Mese"},
["mcj"] = {"Mvanip"},
["mck"] = {"Mbunda"},
["mcl"] = {"Macaguaje"},
["mcm"] = {"Malaccan Creole Portuguese"},
["mcn"] = {"Masana"},
["mco"] = {"Coatlán Mixe"},
["mcp"] = {"Makaa"},
["mcq"] = {"Ese"},
["mcr"] = {"Menya"},
["mcs"] = {"Mambai"},
["mct"] = {"Mengisa"},
["mcu"] = {"Cameroon Mambila"},
["mcv"] = {"Minanibai"},
["mcw"] = {"Mawa (Chad)"},
["mcx"] = {"Mpiemo"},
["mcy"] = {"South Watut"},
["mcz"] = {"Mawan"},
["mda"] = {"Mada (Nigeria)"},
["mdb"] = {"Morigi"},
["mdc"] = {"Male (Papua New Guinea)"},
["mdd"] = {"Mbum"},
["mde"] = {"Maba (Chad)"},
["mdf"] = {"Moksha"},
["mdg"] = {"Massalat"},
["mdh"] = {"Maguindanaon"},
["mdi"] = {"Mamvu"},
["mdj"] = {"Mangbetu"},
["mdk"] = {"Mangbutu"},
["mdl"] = {"Maltese Sign Language"},
["mdm"] = {"Mayogo"},
["mdn"] = {"Mbati"},
["mdp"] = {"Mbala"},
["mdq"] = {"Mbole"},
["mdr"] = {"Mandar"},
["mds"] = {"Maria (Papua New Guinea)"},
["mdt"] = {"Mbere"},
["mdu"] = {"Mboko"},
["mdv"] = {"Santa Lucía Monteverde Mixtec"},
["mdw"] = {"Mbosi"},
["mdx"] = {"Dizin"},
["mdy"] = {"Male (Ethiopia)"},
["mdz"] = {"Suruí Do Pará"},
["mea"] = {"Menka"},
["meb"] = {"Ikobi"},
["mec"] = {"Marra"},
["med"] = {"Melpa"},
["mee"] = {"Mengen"},
["mef"] = {"Megam"},
["meh"] = {"Southwestern Tlaxiaco Mixtec"},
["mei"] = {"Midob"},
["mej"] = {"Meyah"},
["mek"] = {"Mekeo"},
["mel"] = {"Central Melanau"},
["mem"] = {"Mangala"},
["men"] = {"Mende (Sierra Leone)"},
["meo"] = {"Kedah Malay"},
["mep"] = {"Miriwoong"},
["meq"] = {"Merey"},
["mer"] = {"Meru"},
["mes"] = {"Masmaje"},
["met"] = {"Mato"},
["meu"] = {"Motu"},
["mev"] = {"Mano"},
["mew"] = {"Maaka"},
["mey"] = {"Hassaniyya"},
["mez"] = {"Menominee"},
["mfa"] = {"Pattani Malay"},
["mfb"] = {"Bangka"},
["mfc"] = {"Mba"},
["mfd"] = {"Mendankwe-Nkwen"},
["mfe"] = {"Morisyen"},
["mff"] = {"Naki"},
["mfg"] = {"Mogofin"},
["mfh"] = {"Matal"},
["mfi"] = {"Wandala"},
["mfj"] = {"Mefele"},
["mfk"] = {"North Mofu"},
["mfl"] = {"Putai"},
["mfm"] = {"Marghi South"},
["mfn"] = {"Cross River Mbembe"},
["mfo"] = {"Mbe"},
["mfp"] = {"Makassar Malay"},
["mfq"] = {"Moba"},
["mfr"] = {"Marrithiyel"},
["mfs"] = {"Mexican Sign Language"},
["mft"] = {"Mokerang"},
["mfu"] = {"Mbwela"},
["mfv"] = {"Mandjak"},
["mfw"] = {"Mulaha"},
["mfx"] = {"Melo"},
["mfy"] = {"Mayo"},
["mfz"] = {"Mabaan"},
["mga"] = {"Middle Irish (900-1200)"},
["mgb"] = {"Mararit"},
["mgc"] = {"Morokodo"},
["mgd"] = {"Moru"},
["mge"] = {"Mango"},
["mgf"] = {"Maklew"},
["mgg"] = {"Mpumpong"},
["mgh"] = {"Makhuwa-Meetto"},
["mgi"] = {"Lijili"},
["mgj"] = {"Abureni"},
["mgk"] = {"Mawes"},
["mgl"] = {"Maleu-Kilenge"},
["mgm"] = {"Mambae"},
["mgn"] = {"Mbangi"},
["mgo"] = {"Meta'"},
["mgp"] = {"Eastern Magar"},
["mgq"] = {"Malila"},
["mgr"] = {"Mambwe-Lungu"},
["mgs"] = {"Manda (Tanzania)"},
["mgt"] = {"Mongol"},
["mgu"] = {"Mailu"},
["mgv"] = {"Matengo"},
["mgw"] = {"Matumbi"},
["mgy"] = {"Mbunga"},
["mgz"] = {"Mbugwe"},
["mha"] = {"Manda (India)"},
["mhb"] = {"Mahongwe"},
["mhc"] = {"Mocho"},
["mhd"] = {"Mbugu"},
["mhe"] = {"Besisi", "Mah Meri"},
["mhf"] = {"Mamaa"},
["mhg"] = {"Margu"},
["mhi"] = {"Ma'di"},
["mhj"] = {"Mogholi"},
["mhk"] = {"Mungaka"},
["mhl"] = {"Mauwake"},
["mhm"] = {"Makhuwa-Moniga"},
["mhn"] = {"Mócheno"},
["mho"] = {"Mashi (Zambia)"},
["mhp"] = {"Balinese Malay"},
["mhq"] = {"Mandan"},
["mhr"] = {"Eastern Mari"},
["mhs"] = {"Buru (Indonesia)"},
["mht"] = {"Mandahuaca"},
["mhu"] = {"Digaro-Mishmi", "Darang Deng"},
["mhw"] = {"Mbukushu"},
["mhx"] = {"Maru", "Lhaovo"},
["mhy"] = {"Ma'anyan"},
["mhz"] = {"Mor (Mor Islands)"},
["mia"] = {"Miami"},
["mib"] = {"Atatláhuca Mixtec"},
["mic"] = {"Mi'kmaq", "Micmac"},
["mid"] = {"Mandaic"},
["mie"] = {"Ocotepec Mixtec"},
["mif"] = {"Mofu-Gudur"},
["mig"] = {"San Miguel El Grande Mixtec"},
["mih"] = {"Chayuco Mixtec"},
["mii"] = {"Chigmecatitlán Mixtec"},
["mij"] = {"Abar", "Mungbam"},
["mik"] = {"Mikasuki"},
["mil"] = {"Peñoles Mixtec"},
["mim"] = {"Alacatlatzala Mixtec"},
["min"] = {"Minangkabau"},
["mio"] = {"Pinotepa Nacional Mixtec"},
["mip"] = {"Apasco-Apoala Mixtec"},
["miq"] = {"Mískito"},
["mir"] = {"Isthmus Mixe"},
["mis"] = {"Uncoded languages"},
["mit"] = {"Southern Puebla Mixtec"},
["miu"] = {"Cacaloxtepec Mixtec"},
["miw"] = {"Akoye"},
["mix"] = {"Mixtepec Mixtec"},
["miy"] = {"Ayutla Mixtec"},
["miz"] = {"Coatzospan Mixtec"},
["mjb"] = {"Makalero"},
["mjc"] = {"San Juan Colorado Mixtec"},
["mjd"] = {"Northwest Maidu"},
["mje"] = {"Muskum"},
["mjg"] = {"Tu"},
["mjh"] = {"Mwera (Nyasa)"},
["mji"] = {"Kim Mun"},
["mjj"] = {"Mawak"},
["mjk"] = {"Matukar"},
["mjl"] = {"Mandeali"},
["mjm"] = {"Medebur"},
["mjn"] = {"Ma (Papua New Guinea)"},
["mjo"] = {"Malankuravan"},
["mjp"] = {"Malapandaram"},
["mjq"] = {"Malaryan"},
["mjr"] = {"Malavedan"},
["mjs"] = {"Miship"},
["mjt"] = {"Sauria Paharia"},
["mju"] = {"Manna-Dora"},
["mjv"] = {"Mannan"},
["mjw"] = {"Karbi"},
["mjx"] = {"Mahali"},
["mjy"] = {"Mahican"},
["mjz"] = {"Majhi"},
["mka"] = {"Mbre"},
["mkb"] = {"Mal Paharia"},
["mkc"] = {"Siliput"},
["mke"] = {"Mawchi"},
["mkf"] = {"Miya"},
["mkg"] = {"Mak (China)"},
["mkh"] = {"Mon-Khmer languages"},
["mki"] = {"Dhatki"},
["mkj"] = {"Mokilese"},
["mkk"] = {"Byep"},
["mkl"] = {"Mokole"},
["mkm"] = {"Moklen"},
["mkn"] = {"Kupang Malay"},
["mko"] = {"Mingang Doso"},
["mkp"] = {"Moikodi"},
["mkq"] = {"Bay Miwok"},
["mkr"] = {"Malas"},
["mks"] = {"Silacayoapan Mixtec"},
["mkt"] = {"Vamale"},
["mku"] = {"Konyanka Maninka"},
["mkv"] = {"Mafea"},
["mkw"] = {"Kituba (Congo)"},
["mkx"] = {"Kinamiging Manobo"},
["mky"] = {"East Makian"},
["mkz"] = {"Makasae"},
["mla"] = {"Malo"},
["mlb"] = {"Mbule"},
["mlc"] = {"Cao Lan"},
["mle"] = {"Manambu"},
["mlf"] = {"Mal"},
["mlh"] = {"Mape"},
["mli"] = {"Malimpung"},
["mlj"] = {"Miltu"},
["mlk"] = {"Ilwana", "Kiwilwana"},
["mll"] = {"Malua Bay"},
["mlm"] = {"Mulam"},
["mln"] = {"Malango"},
["mlo"] = {"Mlomp"},
["mlp"] = {"Bargam"},
["mlq"] = {"Western Maninkakan"},
["mlr"] = {"Vame"},
["mls"] = {"Masalit"},
["mlu"] = {"To'abaita"},
["mlv"] = {"Motlav", "Mwotlap"},
["mlw"] = {"Moloko"},
["mlx"] = {"Malfaxal", "Naha'ai"},
["mlz"] = {"Malaynon"},
["mma"] = {"Mama"},
["mmb"] = {"Momina"},
["mmc"] = {"Michoacán Mazahua"},
["mmd"] = {"Maonan"},
["mme"] = {"Mae"},
["mmf"] = {"Mundat"},
["mmg"] = {"North Ambrym"},
["mmh"] = {"Mehináku"},
["mmi"] = {"Musar"},
["mmj"] = {"Majhwar"},
["mmk"] = {"Mukha-Dora"},
["mml"] = {"Man Met"},
["mmm"] = {"Maii"},
["mmn"] = {"Mamanwa"},
["mmo"] = {"Mangga Buang"},
["mmp"] = {"Siawi"},
["mmq"] = {"Musak"},
["mmr"] = {"Western Xiangxi Miao"},
["mmt"] = {"Malalamai"},
["mmu"] = {"Mmaala"},
["mmv"] = {"Miriti"},
["mmw"] = {"Emae"},
["mmx"] = {"Madak"},
["mmy"] = {"Migaama"},
["mmz"] = {"Mabaale"},
["mna"] = {"Mbula"},
["mnb"] = {"Muna"},
["mnc"] = {"Manchu"},
["mnd"] = {"Mondé"},
["mne"] = {"Naba"},
["mnf"] = {"Mundani"},
["mng"] = {"Eastern Mnong"},
["mnh"] = {"Mono (Democratic Republic of Congo)"},
["mni"] = {"Manipuri"},
["mnj"] = {"Munji"},
["mnk"] = {"Mandinka"},
["mnl"] = {"Tiale"},
["mnm"] = {"Mapena"},
["mnn"] = {"Southern Mnong"},
["mno"] = {"Manobo languages"},
["mnp"] = {"Min Bei Chinese"},
["mnq"] = {"Minriq"},
["mnr"] = {"Mono (USA)"},
["mns"] = {"Mansi"},
["mnu"] = {"Mer"},
["mnv"] = {"Rennell-Bellona"},
["mnw"] = {"Mon"},
["mnx"] = {"Manikion"},
["mny"] = {"Manyawa"},
["mnz"] = {"Moni"},
["moa"] = {"Mwan"},
["moc"] = {"Mocoví"},
["mod"] = {"Mobilian"},
["moe"] = {"Innu", "Montagnais"},
["mog"] = {"Mongondow"},
["moh"] = {"Mohawk"},
["moi"] = {"Mboi"},
["moj"] = {"Monzombo"},
["mok"] = {"Morori"},
["mom"] = {"Mangue"},
["moo"] = {"Monom"},
["mop"] = {"Mopán Maya"},
["moq"] = {"Mor (Bomberai Peninsula)"},
["mor"] = {"Moro"},
["mos"] = {"Mossi"},
["mot"] = {"Barí"},
["mou"] = {"Mogum"},
["mov"] = {"Mohave"},
["mow"] = {"Moi (Congo)"},
["mox"] = {"Molima"},
["moy"] = {"Shekkacho"},
["moz"] = {"Mukulu", "Gergiko"},
["mpa"] = {"Mpoto"},
["mpb"] = {"Malak Malak", "Mullukmulluk"},
["mpc"] = {"Mangarrayi"},
["mpd"] = {"Machinere"},
["mpe"] = {"Majang"},
["mpg"] = {"Marba"},
["mph"] = {"Maung"},
["mpi"] = {"Mpade"},
["mpj"] = {"Martu Wangka", "Wangkajunga"},
["mpk"] = {"Mbara (Chad)"},
["mpl"] = {"Middle Watut"},
["mpm"] = {"Yosondúa Mixtec"},
["mpn"] = {"Mindiri"},
["mpo"] = {"Miu"},
["mpp"] = {"Migabac"},
["mpq"] = {"Matís"},
["mpr"] = {"Vangunu"},
["mps"] = {"Dadibi"},
["mpt"] = {"Mian"},
["mpu"] = {"Makuráp"},
["mpv"] = {"Mungkip"},
["mpw"] = {"Mapidian"},
["mpx"] = {"Misima-Panaeati"},
["mpy"] = {"Mapia"},
["mpz"] = {"Mpi"},
["mqa"] = {"Maba (Indonesia)"},
["mqb"] = {"Mbuko"},
["mqc"] = {"Mangole"},
["mqe"] = {"Matepi"},
["mqf"] = {"Momuna"},
["mqg"] = {"Kota Bangun Kutai Malay"},
["mqh"] = {"Tlazoyaltepec Mixtec"},
["mqi"] = {"Mariri"},
["mqj"] = {"Mamasa"},
["mqk"] = {"Rajah Kabunsuwan Manobo"},
["mql"] = {"Mbelime"},
["mqm"] = {"South Marquesan"},
["mqn"] = {"Moronene"},
["mqo"] = {"Modole"},
["mqp"] = {"Manipa"},
["mqq"] = {"Minokok"},
["mqr"] = {"Mander"},
["mqs"] = {"West Makian"},
["mqt"] = {"Mok"},
["mqu"] = {"Mandari"},
["mqv"] = {"Mosimo"},
["mqw"] = {"Murupi"},
["mqx"] = {"Mamuju"},
["mqy"] = {"Manggarai"},
["mqz"] = {"Pano"},
["mra"] = {"Mlabri"},
["mrb"] = {"Marino"},
["mrc"] = {"Maricopa"},
["mrd"] = {"Western Magar"},
["mre"] = {"Martha's Vineyard Sign Language"},
["mrf"] = {"Elseng"},
["mrg"] = {"Mising"},
["mrh"] = {"Mara Chin"},
["mrj"] = {"Western Mari"},
["mrk"] = {"Hmwaveke"},
["mrl"] = {"Mortlockese"},
["mrm"] = {"Merlav", "Mwerlap"},
["mrn"] = {"Cheke Holo"},
["mro"] = {"Mru"},
["mrp"] = {"Morouas"},
["mrq"] = {"North Marquesan"},
["mrr"] = {"Maria (India)"},
["mrs"] = {"Maragus"},
["mrt"] = {"Marghi Central"},
["mru"] = {"Mono (Cameroon)"},
["mrv"] = {"Mangareva"},
["mrw"] = {"Maranao"},
["mrx"] = {"Maremgi", "Dineor"},
["mry"] = {"Mandaya"},
["mrz"] = {"Marind"},
["msb"] = {"Masbatenyo"},
["msc"] = {"Sankaran Maninka"},
["msd"] = {"Yucatec Maya Sign Language"},
["mse"] = {"Musey"},
["msf"] = {"Mekwei"},
["msg"] = {"Moraid"},
["msh"] = {"Masikoro Malagasy"},
["msi"] = {"Sabah Malay"},
["msj"] = {"Ma (Democratic Republic of Congo)"},
["msk"] = {"Mansaka"},
["msl"] = {"Molof", "Poule"},
["msm"] = {"Agusan Manobo"},
["msn"] = {"Vurës"},
["mso"] = {"Mombum"},
["msp"] = {"Maritsauá"},
["msq"] = {"Caac"},
["msr"] = {"Mongolian Sign Language"},
["mss"] = {"West Masela"},
["msu"] = {"Musom"},
["msv"] = {"Maslam"},
["msw"] = {"Mansoanka"},
["msx"] = {"Moresada"},
["msy"] = {"Aruamu"},
["msz"] = {"Momare"},
["mta"] = {"Cotabato Manobo"},
["mtb"] = {"Anyin Morofo"},
["mtc"] = {"Munit"},
["mtd"] = {"Mualang"},
["mte"] = {"Mono (Solomon Islands)"},
["mtf"] = {"Murik (Papua New Guinea)"},
["mtg"] = {"Una"},
["mth"] = {"Munggui"},
["mti"] = {"Maiwa (Papua New Guinea)"},
["mtj"] = {"Moskona"},
["mtk"] = {"Mbe'"},
["mtl"] = {"Montol"},
["mtm"] = {"Mator"},
["mtn"] = {"Matagalpa"},
["mto"] = {"Totontepec Mixe"},
["mtp"] = {"Wichí Lhamtés Nocten"},
["mtq"] = {"Muong"},
["mtr"] = {"Mewari"},
["mts"] = {"Yora"},
["mtt"] = {"Mota"},
["mtu"] = {"Tututepec Mixtec"},
["mtv"] = {"Asaro'o"},
["mtw"] = {"Southern Binukidnon"},
["mtx"] = {"Tidaá Mixtec"},
["mty"] = {"Nabi"},
["mua"] = {"Mundang"},
["mub"] = {"Mubi"},
["muc"] = {"Ajumbu"},
["mud"] = {"Mednyj Aleut"},
["mue"] = {"Media Lengua"},
["mug"] = {"Musgu"},
["muh"] = {"Mündü"},
["mui"] = {"Musi"},
["muj"] = {"Mabire"},
["muk"] = {"Mugom"},
["mul"] = {"Multiple languages"},
["mum"] = {"Maiwala"},
["mun"] = {"Munda languages"},
["muo"] = {"Nyong"},
["mup"] = {"Malvi"},
["muq"] = {"Eastern Xiangxi Miao"},
["mur"] = {"Murle"},
["mus"] = {"Creek"},
["mut"] = {"Western Muria"},
["muu"] = {"Yaaku"},
["muv"] = {"Muthuvan"},
["mux"] = {"Bo-Ung"},
["muy"] = {"Muyang"},
["muz"] = {"Mursi"},
["mva"] = {"Manam"},
["mvb"] = {"Mattole"},
["mvd"] = {"Mamboru"},
["mve"] = {"Marwari (Pakistan)"},
["mvf"] = {"Peripheral Mongolian"},
["mvg"] = {"Yucuañe Mixtec"},
["mvh"] = {"Mulgi"},
["mvi"] = {"Miyako"},
["mvk"] = {"Mekmek"},
["mvl"] = {"Mbara (Australia)"},
["mvn"] = {"Minaveha"},
["mvo"] = {"Marovo"},
["mvp"] = {"Duri"},
["mvq"] = {"Moere"},
["mvr"] = {"Marau"},
["mvs"] = {"Massep"},
["mvt"] = {"Mpotovoro"},
["mvu"] = {"Marfa"},
["mvv"] = {"Tagal Murut"},
["mvw"] = {"Machinga"},
["mvx"] = {"Meoswar"},
["mvy"] = {"Indus Kohistani"},
["mvz"] = {"Mesqan"},
["mwa"] = {"Mwatebu"},
["mwb"] = {"Juwal"},
["mwc"] = {"Are"},
["mwe"] = {"Mwera (Chimwera)"},
["mwf"] = {"Murrinh-Patha"},
["mwg"] = {"Aiklep"},
["mwh"] = {"Mouk-Aria"},
["mwi"] = {"Labo", "Ninde"},
["mwk"] = {"Kita Maninkakan"},
["mwl"] = {"Mirandese"},
["mwm"] = {"Sar"},
["mwn"] = {"Nyamwanga"},
["mwo"] = {"Central Maewo"},
["mwp"] = {"Kala Lagaw Ya"},
["mwq"] = {"Mün Chin"},
["mwr"] = {"Marwari"},
["mws"] = {"Mwimbi-Muthambi"},
["mwt"] = {"Moken"},
["mwu"] = {"Mittu"},
["mwv"] = {"Mentawai"},
["mww"] = {"Hmong Daw"},
["mwz"] = {"Moingi"},
["mxa"] = {"Northwest Oaxaca Mixtec"},
["mxb"] = {"Tezoatlán Mixtec"},
["mxc"] = {"Manyika"},
["mxd"] = {"Modang"},
["mxe"] = {"Mele-Fila"},
["mxf"] = {"Malgbe"},
["mxg"] = {"Mbangala"},
["mxh"] = {"Mvuba"},
["mxi"] = {"Mozarabic"},
["mxj"] = {"Miju-Mishmi", "Geman Deng"},
["mxk"] = {"Monumbo"},
["mxl"] = {"Maxi Gbe"},
["mxm"] = {"Meramera"},
["mxn"] = {"Moi (Indonesia)"},
["mxo"] = {"Mbowe"},
["mxp"] = {"Tlahuitoltepec Mixe"},
["mxq"] = {"Juquila Mixe"},
["mxr"] = {"Murik (Malaysia)"},
["mxs"] = {"Huitepec Mixtec"},
["mxt"] = {"Jamiltepec Mixtec"},
["mxu"] = {"Mada (Cameroon)"},
["mxv"] = {"Metlatónoc Mixtec"},
["mxw"] = {"Namo"},
["mxx"] = {"Mahou", "Mawukakan"},
["mxy"] = {"Southeastern Nochixtlán Mixtec"},
["mxz"] = {"Central Masela"},
["myb"] = {"Mbay"},
["myc"] = {"Mayeka"},
["mye"] = {"Myene"},
["myf"] = {"Bambassi"},
["myg"] = {"Manta"},
["myh"] = {"Makah"},
["myj"] = {"Mangayat"},
["myk"] = {"Mamara Senoufo"},
["myl"] = {"Moma"},
["mym"] = {"Me'en"},
["myn"] = {"Mayan languages"},
["myo"] = {"Anfillo"},
["myp"] = {"Pirahã"},
["myr"] = {"Muniche"},
["mys"] = {"Mesmes"},
["myu"] = {"Mundurukú"},
["myv"] = {"Erzya"},
["myw"] = {"Muyuw"},
["myx"] = {"Masaaba"},
["myy"] = {"Macuna"},
["myz"] = {"Classical Mandaic"},
["mza"] = {"Santa María Zacatepec Mixtec"},
["mzb"] = {"Tumzabt"},
["mzc"] = {"Madagascar Sign Language"},
["mzd"] = {"Malimba"},
["mze"] = {"Morawa"},
["mzg"] = {"Monastic Sign Language"},
["mzh"] = {"Wichí Lhamtés Güisnay"},
["mzi"] = {"Ixcatlán Mazatec"},
["mzj"] = {"Manya"},
["mzk"] = {"Nigeria Mambila"},
["mzl"] = {"Mazatlán Mixe"},
["mzm"] = {"Mumuye"},
["mzn"] = {"Mazanderani"},
["mzo"] = {"Matipuhy"},
["mzp"] = {"Movima"},
["mzq"] = {"Mori Atas"},
["mzr"] = {"Marúbo"},
["mzs"] = {"Macanese"},
["mzt"] = {"Mintil"},
["mzu"] = {"Inapang"},
["mzv"] = {"Manza"},
["mzw"] = {"Deg"},
["mzx"] = {"Mawayana"},
["mzy"] = {"Mozambican Sign Language"},
["mzz"] = {"Maiadomu"},
["naa"] = {"Namla"},
["nab"] = {"Southern Nambikuára"},
["nac"] = {"Narak"},
["nae"] = {"Naka'ela"},
["naf"] = {"Nabak"},
["nag"] = {"Naga Pidgin"},
["nah"] = {"Nahuatl languages"},
["nai"] = {"North American Indian languages"},
["naj"] = {"Nalu"},
["nak"] = {"Nakanai"},
["nal"] = {"Nalik"},
["nam"] = {"Ngan'gityemerri"},
["nan"] = {"Min Nan Chinese"},
["nao"] = {"Naaba"},
["nap"] = {"Neapolitan"},
["naq"] = {"Khoekhoe", "Nama (Namibia)"},
["nar"] = {"Iguta"},
["nas"] = {"Naasioi"},
["nat"] = {"Ca̱hungwa̱rya̱", "Hungworo"},
["naw"] = {"Nawuri"},
["nax"] = {"Nakwi"},
["nay"] = {"Ngarrindjeri"},
["naz"] = {"Coatepec Nahuatl"},
["nba"] = {"Nyemba"},
["nbb"] = {"Ndoe"},
["nbc"] = {"Chang Naga"},
["nbd"] = {"Ngbinda"},
["nbe"] = {"Konyak Naga"},
["nbg"] = {"Nagarchal"},
["nbh"] = {"Ngamo"},
["nbi"] = {"Mao Naga"},
["nbj"] = {"Ngarinyman"},
["nbk"] = {"Nake"},
["nbm"] = {"Ngbaka Ma'bo"},
["nbn"] = {"Kuri"},
["nbo"] = {"Nkukoli"},
["nbp"] = {"Nnam"},
["nbq"] = {"Nggem"},
["nbr"] = {"Numana"},
["nbs"] = {"Namibian Sign Language"},
["nbt"] = {"Na"},
["nbu"] = {"Rongmei Naga"},
["nbv"] = {"Ngamambo"},
["nbw"] = {"Southern Ngbandi"},
["nby"] = {"Ningera"},
["nca"] = {"Iyo"},
["ncb"] = {"Central Nicobarese"},
["ncc"] = {"Ponam"},
["ncd"] = {"Nachering"},
["nce"] = {"Yale"},
["ncf"] = {"Notsi"},
["ncg"] = {"Nisga'a"},
["nch"] = {"Central Huasteca Nahuatl"},
["nci"] = {"Classical Nahuatl"},
["ncj"] = {"Northern Puebla Nahuatl"},
["nck"] = {"Na-kara"},
["ncl"] = {"Michoacán Nahuatl"},
["ncm"] = {"Nambo"},
["ncn"] = {"Nauna"},
["nco"] = {"Sibe"},
["ncq"] = {"Northern Katang"},
["ncr"] = {"Ncane"},
["ncs"] = {"Nicaraguan Sign Language"},
["nct"] = {"Chothe Naga"},
["ncu"] = {"Chumburung"},
["ncx"] = {"Central Puebla Nahuatl"},
["ncz"] = {"Natchez"},
["nda"] = {"Ndasa"},
["ndb"] = {"Kenswei Nsei"},
["ndc"] = {"Ndau"},
["ndd"] = {"Nde-Nsele-Nta"},
["ndf"] = {"Nadruvian"},
["ndg"] = {"Ndengereko"},
["ndh"] = {"Ndali"},
["ndi"] = {"Samba Leko"},
["ndj"] = {"Ndamba"},
["ndk"] = {"Ndaka"},
["ndl"] = {"Ndolo"},
["ndm"] = {"Ndam"},
["ndn"] = {"Ngundi"},
["ndp"] = {"Ndo"},
["ndq"] = {"Ndombe"},
["ndr"] = {"Ndoola"},
["nds"] = {"Low German", "Low Saxon"},
["ndt"] = {"Ndunga"},
["ndu"] = {"Dugun"},
["ndv"] = {"Ndut"},
["ndw"] = {"Ndobo"},
["ndx"] = {"Nduga"},
["ndy"] = {"Lutos"},
["ndz"] = {"Ndogo"},
["nea"] = {"Eastern Ngad'a"},
["neb"] = {"Toura (Côte d'Ivoire)"},
["nec"] = {"Nedebang"},
["ned"] = {"Nde-Gbite"},
["nee"] = {"Nêlêmwa-Nixumwak"},
["nef"] = {"Nefamese"},
["neg"] = {"Negidal"},
["neh"] = {"Nyenkha"},
["nei"] = {"Neo-Hittite"},
["nej"] = {"Neko"},
["nek"] = {"Neku"},
["nem"] = {"Nemi"},
["nen"] = {"Nengone"},
["neo"] = {"Ná-Meo"},
["neq"] = {"North Central Mixe"},
["ner"] = {"Yahadian"},
["nes"] = {"Bhoti Kinnauri"},
["net"] = {"Nete"},
["neu"] = {"Neo"},
["nev"] = {"Nyaheun"},
["new"] = {"Newari", "Nepal Bhasa"},
["nex"] = {"Neme"},
["ney"] = {"Neyo"},
["nez"] = {"Nez Perce"},
["nfa"] = {"Dhao"},
["nfd"] = {"Ahwai"},
["nfl"] = {"Ayiwo", "Äiwoo"},
["nfr"] = {"Nafaanra"},
["nfu"] = {"Mfumte"},
["nga"] = {"Ngbaka"},
["ngb"] = {"Northern Ngbandi"},
["ngc"] = {"Ngombe (Democratic Republic of Congo)"},
["ngd"] = {"Ngando (Central African Republic)"},
["nge"] = {"Ngemba"},
["ngf"] = {"Trans-New Guinea languages"},
["ngg"] = {"Ngbaka Manza"},
["ngh"] = {"Nǁng"},
["ngi"] = {"Ngizim"},
["ngj"] = {"Ngie"},
["ngk"] = {"Dalabon"},
["ngl"] = {"Lomwe"},
["ngm"] = {"Ngatik Men's Creole"},
["ngn"] = {"Ngwo"},
["ngp"] = {"Ngulu"},
["ngq"] = {"Ngurimi", "Ngoreme"},
["ngr"] = {"Engdewu"},
["ngs"] = {"Gvoko"},
["ngt"] = {"Kriang", "Ngeq"},
["ngu"] = {"Guerrero Nahuatl"},
["ngv"] = {"Nagumi"},
["ngw"] = {"Ngwaba"},
["ngx"] = {"Nggwahyi"},
["ngy"] = {"Tibea"},
["ngz"] = {"Ngungwel"},
["nha"] = {"Nhanda"},
["nhb"] = {"Beng"},
["nhc"] = {"Tabasco Nahuatl"},
["nhd"] = {"Chiripá", "Ava Guaraní"},
["nhe"] = {"Eastern Huasteca Nahuatl"},
["nhf"] = {"Nhuwala"},
["nhg"] = {"Tetelcingo Nahuatl"},
["nhh"] = {"Nahari"},
["nhi"] = {"Zacatlán-Ahuacatlán-Tepetzintla Nahuatl"},
["nhk"] = {"Isthmus-Cosoleacaque Nahuatl"},
["nhm"] = {"Morelos Nahuatl"},
["nhn"] = {"Central Nahuatl"},
["nho"] = {"Takuu"},
["nhp"] = {"Isthmus-Pajapan Nahuatl"},
["nhq"] = {"Huaxcaleca Nahuatl"},
["nhr"] = {"Naro"},
["nht"] = {"Ometepec Nahuatl"},
["nhu"] = {"Noone"},
["nhv"] = {"Temascaltepec Nahuatl"},
["nhw"] = {"Western Huasteca Nahuatl"},
["nhx"] = {"Isthmus-Mecayapan Nahuatl"},
["nhy"] = {"Northern Oaxaca Nahuatl"},
["nhz"] = {"Santa María La Alta Nahuatl"},
["nia"] = {"Nias"},
["nib"] = {"Nakame"},
["nic"] = {"Niger-Kordofanian languages"},
["nid"] = {"Ngandi"},
["nie"] = {"Niellim"},
["nif"] = {"Nek"},
["nig"] = {"Ngalakgan"},
["nih"] = {"Nyiha (Tanzania)"},
["nii"] = {"Nii"},
["nij"] = {"Ngaju"},
["nik"] = {"Southern Nicobarese"},
["nil"] = {"Nila"},
["nim"] = {"Nilamba"},
["nin"] = {"Ninzo"},
["nio"] = {"Nganasan"},
["niq"] = {"Nandi"},
["nir"] = {"Nimboran"},
["nis"] = {"Nimi"},
["nit"] = {"Southeastern Kolami"},
["niu"] = {"Niuean"},
["niv"] = {"Gilyak"},
["niw"] = {"Nimo"},
["nix"] = {"Hema"},
["niy"] = {"Ngiti"},
["niz"] = {"Ningil"},
["nja"] = {"Nzanyi"},
["njb"] = {"Nocte Naga"},
["njd"] = {"Ndonde Hamba"},
["njh"] = {"Lotha Naga"},
["nji"] = {"Gudanji"},
["njj"] = {"Njen"},
["njl"] = {"Njalgulgule"},
["njm"] = {"Angami Naga"},
["njn"] = {"Liangmai Naga"},
["njo"] = {"Ao Naga"},
["njr"] = {"Njerep"},
["njs"] = {"Nisa"},
["njt"] = {"Ndyuka-Trio Pidgin"},
["nju"] = {"Ngadjunmaya"},
["njx"] = {"Kunyi"},
["njy"] = {"Njyem"},
["njz"] = {"Nyishi"},
["nka"] = {"Nkoya"},
["nkb"] = {"Khoibu Naga"},
["nkc"] = {"Nkongho"},
["nkd"] = {"Koireng"},
["nke"] = {"Duke"},
["nkf"] = {"Inpui Naga"},
["nkg"] = {"Nekgini"},
["nkh"] = {"Khezha Naga"},
["nki"] = {"Thangal Naga"},
["nkj"] = {"Nakai"},
["nkk"] = {"Nokuku"},
["nkm"] = {"Namat"},
["nkn"] = {"Nkangala"},
["nko"] = {"Nkonya"},
["nkp"] = {"Niuatoputapu"},
["nkq"] = {"Nkami"},
["nkr"] = {"Nukuoro"},
["nks"] = {"North Asmat"},
["nkt"] = {"Nyika (Tanzania)"},
["nku"] = {"Bouna Kulango"},
["nkv"] = {"Nyika (Malawi and Zambia)"},
["nkw"] = {"Nkutu"},
["nkx"] = {"Nkoroo"},
["nkz"] = {"Nkari"},
["nla"] = {"Ngombale"},
["nlc"] = {"Nalca"},
["nle"] = {"East Nyala"},
["nlg"] = {"Gela"},
["nli"] = {"Grangali"},
["nlj"] = {"Nyali"},
["nlk"] = {"Ninia Yali"},
["nll"] = {"Nihali"},
["nlm"] = {"Mankiyali"},
["nlo"] = {"Ngul"},
["nlq"] = {"Lao Naga"},
["nlu"] = {"Nchumbulu"},
["nlv"] = {"Orizaba Nahuatl"},
["nlw"] = {"Walangama"},
["nlx"] = {"Nahali"},
["nly"] = {"Nyamal"},
["nlz"] = {"Nalögo"},
["nma"] = {"Maram Naga"},
["nmb"] = {"Big Nambas", "V'ënen Taut"},
["nmc"] = {"Ngam"},
["nmd"] = {"Ndumu"},
["nme"] = {"Mzieme Naga"},
["nmf"] = {"Tangkhul Naga (India)"},
["nmg"] = {"Kwasio"},
["nmh"] = {"Monsang Naga"},
["nmi"] = {"Nyam"},
["nmj"] = {"Ngombe (Central African Republic)"},
["nmk"] = {"Namakura"},
["nml"] = {"Ndemli"},
["nmm"] = {"Manangba"},
["nmn"] = {"ǃXóõ"},
["nmo"] = {"Moyon Naga"},
["nmp"] = {"Nimanbur"},
["nmq"] = {"Nambya"},
["nmr"] = {"Nimbari"},
["nms"] = {"Letemboi"},
["nmt"] = {"Namonuito"},
["nmu"] = {"Northeast Maidu"},
["nmv"] = {"Ngamini"},
["nmw"] = {"Nimoa", "Rifao"},
["nmx"] = {"Nama (Papua New Guinea)"},
["nmy"] = {"Namuyi"},
["nmz"] = {"Nawdm"},
["nna"] = {"Nyangumarta"},
["nnb"] = {"Nande"},
["nnc"] = {"Nancere"},
["nnd"] = {"West Ambae"},
["nne"] = {"Ngandyera"},
["nnf"] = {"Ngaing"},
["nng"] = {"Maring Naga"},
["nnh"] = {"Ngiemboon"},
["nni"] = {"North Nuaulu"},
["nnj"] = {"Nyangatom"},
["nnk"] = {"Nankina"},
["nnl"] = {"Northern Rengma Naga"},
["nnm"] = {"Namia"},
["nnn"] = {"Ngete"},
["nnp"] = {"Wancho Naga"},
["nnq"] = {"Ngindo"},
["nnr"] = {"Narungga"},
["nnt"] = {"Nanticoke"},
["nnu"] = {"Dwang"},
["nnv"] = {"Nugunu (Australia)"},
["nnw"] = {"Southern Nuni"},
["nny"] = {"Nyangga"},
["nnz"] = {"Nda'nda'"},
["noa"] = {"Woun Meu"},
["noc"] = {"Nuk"},
["nod"] = {"Northern Thai"},
["noe"] = {"Nimadi"},
["nof"] = {"Nomane"},
["nog"] = {"Nogai"},
["noh"] = {"Nomu"},
["noi"] = {"Noiri"},
["noj"] = {"Nonuya"},
["nok"] = {"Nooksack"},
["nol"] = {"Nomlaki"},
["nom"] = {"Nocamán"},
["non"] = {"Old Norse"},
["nop"] = {"Numanggang"},
["noq"] = {"Ngongo"},
["nos"] = {"Eastern Nisu"},
["not"] = {"Nomatsiguenga"},
["nou"] = {"Ewage-Notu"},
["nov"] = {"Novial"},
["now"] = {"Nyambo"},
["noy"] = {"Noy"},
["noz"] = {"Nayi"},
["npa"] = {"Nar Phu"},
["npb"] = {"Nupbikha"},
["npg"] = {"Ponyo-Gongwang Naga"},
["nph"] = {"Phom Naga"},
["npi"] = {"Nepali (individual language)"},
["npl"] = {"Southeastern Puebla Nahuatl"},
["npn"] = {"Mondropolon"},
["npo"] = {"Pochuri Naga"},
["nps"] = {"Nipsan"},
["npu"] = {"Puimei Naga"},
["npx"] = {"Noipx"},
["npy"] = {"Napu"},
["nqg"] = {"Southern Nago"},
["nqk"] = {"Kura Ede Nago"},
["nql"] = {"Ngendelengo"},
["nqm"] = {"Ndom"},
["nqn"] = {"Nen"},
["nqo"] = {"N'Ko", "N’Ko"},
["nqq"] = {"Kyan-Karyaw Naga"},
["nqt"] = {"Nteng"},
["nqy"] = {"Akyaung Ari Naga"},
["nra"] = {"Ngom"},
["nrb"] = {"Nara"},
["nrc"] = {"Noric"},
["nre"] = {"Southern Rengma Naga"},
["nrf"] = {"Jèrriais", "Guernésiais"},
["nrg"] = {"Narango"},
["nri"] = {"Chokri Naga"},
["nrk"] = {"Ngarla"},
["nrl"] = {"Ngarluma"},
["nrm"] = {"Narom"},
["nrn"] = {"Norn"},
["nrp"] = {"North Picene"},
["nrr"] = {"Norra", "Nora"},
["nrt"] = {"Northern Kalapuya"},
["nru"] = {"Narua"},
["nrx"] = {"Ngurmbur"},
["nrz"] = {"Lala"},
["nsa"] = {"Sangtam Naga"},
["nsb"] = {"Lower Nossob"},
["nsc"] = {"Nshi"},
["nsd"] = {"Southern Nisu"},
["nse"] = {"Nsenga"},
["nsf"] = {"Northwestern Nisu"},
["nsg"] = {"Ngasa"},
["nsh"] = {"Ngoshie"},
["nsi"] = {"Nigerian Sign Language"},
["nsk"] = {"Naskapi"},
["nsl"] = {"Norwegian Sign Language"},
["nsm"] = {"Sumi Naga"},
["nsn"] = {"Nehan"},
["nso"] = {"Pedi", "Northern Sotho", "Sepedi"},
["nsp"] = {"Nepalese Sign Language"},
["nsq"] = {"Northern Sierra Miwok"},
["nsr"] = {"Maritime Sign Language"},
["nss"] = {"Nali"},
["nst"] = {"Tase Naga"},
["nsu"] = {"Sierra Negra Nahuatl"},
["nsv"] = {"Southwestern Nisu"},
["nsw"] = {"Navut"},
["nsx"] = {"Nsongo"},
["nsy"] = {"Nasal"},
["nsz"] = {"Nisenan"},
["ntd"] = {"Northern Tidung"},
["nte"] = {"Nathembo"},
["ntg"] = {"Ngantangarra"},
["nti"] = {"Natioro"},
["ntj"] = {"Ngaanyatjarra"},
["ntk"] = {"Ikoma-Nata-Isenye"},
["ntm"] = {"Nateni"},
["nto"] = {"Ntomba"},
["ntp"] = {"Northern Tepehuan"},
["ntr"] = {"Delo"},
["ntu"] = {"Natügu"},
["ntw"] = {"Nottoway"},
["ntx"] = {"Tangkhul Naga (Myanmar)"},
["nty"] = {"Mantsi"},
["ntz"] = {"Natanzi"},
["nua"] = {"Yuanga"},
["nub"] = {"Nubian languages"},
["nuc"] = {"Nukuini"},
["nud"] = {"Ngala"},
["nue"] = {"Ngundu"},
["nuf"] = {"Nusu"},
["nug"] = {"Nungali"},
["nuh"] = {"Ndunda"},
["nui"] = {"Ngumbi"},
["nuj"] = {"Nyole"},
["nuk"] = {"Nuu-chah-nulth", "Nuuchahnulth"},
["nul"] = {"Nusa Laut"},
["num"] = {"Niuafo'ou"},
["nun"] = {"Anong"},
["nuo"] = {"Nguôn"},
["nup"] = {"Nupe-Nupe-Tako"},
["nuq"] = {"Nukumanu"},
["nur"] = {"Nukuria"},
["nus"] = {"Nuer"},
["nut"] = {"Nung (Viet Nam)"},
["nuu"] = {"Ngbundu"},
["nuv"] = {"Northern Nuni"},
["nuw"] = {"Nguluwan"},
["nux"] = {"Mehek"},
["nuy"] = {"Nunggubuyu"},
["nuz"] = {"Tlamacazapa Nahuatl"},
["nvh"] = {"Nasarian"},
["nvm"] = {"Namiae"},
["nvo"] = {"Nyokon"},
["nwa"] = {"Nawathinehena"},
["nwb"] = {"Nyabwa"},
["nwc"] = {"Classical Newari", "Classical Nepal Bhasa", "Old Newari"},
["nwe"] = {"Ngwe"},
["nwg"] = {"Ngayawung"},
["nwi"] = {"Southwest Tanna"},
["nwm"] = {"Nyamusa-Molo"},
["nwo"] = {"Nauo"},
["nwr"] = {"Nawaru"},
["nww"] = {"Ndwewe"},
["nwx"] = {"Middle Newar"},
["nwy"] = {"Nottoway-Meherrin"},
["nxa"] = {"Nauete"},
["nxd"] = {"Ngando (Democratic Republic of Congo)"},
["nxe"] = {"Nage"},
["nxg"] = {"Ngad'a"},
["nxi"] = {"Nindi"},
["nxk"] = {"Koki Naga"},
["nxl"] = {"South Nuaulu"},
["nxm"] = {"Numidian"},
["nxn"] = {"Ngawun"},
["nxo"] = {"Ndambomo"},
["nxq"] = {"Naxi"},
["nxr"] = {"Ninggerum"},
["nxx"] = {"Nafri"},
["nyb"] = {"Nyangbo"},
["nyc"] = {"Nyanga-li"},
["nyd"] = {"Nyore", "Olunyole"},
["nye"] = {"Nyengo"},
["nyf"] = {"Giryama", "Kigiryama"},
["nyg"] = {"Nyindu"},
["nyh"] = {"Nyikina"},
["nyi"] = {"Ama (Sudan)"},
["nyj"] = {"Nyanga"},
["nyk"] = {"Nyaneka"},
["nyl"] = {"Nyeu"},
["nym"] = {"Nyamwezi"},
["nyn"] = {"Nyankole"},
["nyo"] = {"Nyoro"},
["nyp"] = {"Nyang'i"},
["nyq"] = {"Nayini"},
["nyr"] = {"Nyiha (Malawi)"},
["nys"] = {"Nyungar"},
["nyt"] = {"Nyawaygi"},
["nyu"] = {"Nyungwe"},
["nyv"] = {"Nyulnyul"},
["nyw"] = {"Nyaw"},
["nyx"] = {"Nganyaywana"},
["nyy"] = {"Nyakyusa-Ngonde"},
["nza"] = {"Tigon Mbembe"},
["nzb"] = {"Njebi"},
["nzd"] = {"Nzadi"},
["nzi"] = {"Nzima"},
["nzk"] = {"Nzakara"},
["nzm"] = {"Zeme Naga"},
["nzs"] = {"New Zealand Sign Language"},
["nzu"] = {"Teke-Nzikou"},
["nzy"] = {"Nzakambay"},
["nzz"] = {"Nanga Dama Dogon"},
["oaa"] = {"Orok"},
["oac"] = {"Oroch"},
["oar"] = {"Old Aramaic (up to 700 BCE)", "Ancient Aramaic (up to 700 BCE)"},
["oav"] = {"Old Avar"},
["obi"] = {"Obispeño"},
["obk"] = {"Southern Bontok"},
["obl"] = {"Oblo"},
["obm"] = {"Moabite"},
["obo"] = {"Obo Manobo"},
["obr"] = {"Old Burmese"},
["obt"] = {"Old Breton"},
["obu"] = {"Obulom"},
["oca"] = {"Ocaina"},
["och"] = {"Old Chinese"},
["ocm"] = {"Old Cham"},
["oco"] = {"Old Cornish"},
["ocu"] = {"Atzingo Matlatzinca"},
["oda"] = {"Odut"},
["odk"] = {"Od"},
["odt"] = {"Old Dutch"},
["odu"] = {"Odual"},
["ofo"] = {"Ofo"},
["ofs"] = {"Old Frisian"},
["ofu"] = {"Efutop"},
["ogb"] = {"Ogbia"},
["ogc"] = {"Ogbah"},
["oge"] = {"Old Georgian"},
["ogg"] = {"Ogbogolo"},
["ogo"] = {"Khana"},
["ogu"] = {"Ogbronuagum"},
["oht"] = {"Old Hittite"},
["ohu"] = {"Old Hungarian"},
["oia"] = {"Oirata"},
["oie"] = {"Okolie"},
["oin"] = {"Inebu One"},
["ojb"] = {"Northwestern Ojibwa"},
["ojc"] = {"Central Ojibwa"},
["ojg"] = {"Eastern Ojibwa"},
["ojp"] = {"Old Japanese"},
["ojs"] = {"Severn Ojibwa"},
["ojv"] = {"Ontong Java"},
["ojw"] = {"Western Ojibwa"},
["oka"] = {"Okanagan"},
["okb"] = {"Okobo"},
["okc"] = {"Kobo"},
["okd"] = {"Okodia"},
["oke"] = {"Okpe (Southwestern Edo)"},
["okg"] = {"Koko Babangk"},
["okh"] = {"Koresh-e Rostam"},
["oki"] = {"Okiek"},
["okj"] = {"Oko-Juwoi"},
["okk"] = {"Kwamtim One"},
["okl"] = {"Old Kentish Sign Language"},
["okm"] = {"Middle Korean (10th-16th cent.)"},
["okn"] = {"Oki-No-Erabu"},
["oko"] = {"Old Korean (3rd-9th cent.)"},
["okr"] = {"Kirike"},
["oks"] = {"Oko-Eni-Osayen"},
["oku"] = {"Oku"},
["okv"] = {"Orokaiva"},
["okx"] = {"Okpe (Northwestern Edo)"},
["okz"] = {"Old Khmer"},
["ola"] = {"Walungge"},
["old"] = {"Mochi"},
["ole"] = {"Olekha"},
["olk"] = {"Olkol"},
["olm"] = {"Oloma"},
["olo"] = {"Livvi"},
["olr"] = {"Olrat"},
["olt"] = {"Old Lithuanian"},
["olu"] = {"Kuvale"},
["oma"] = {"Omaha-Ponca"},
["omb"] = {"East Ambae"},
["omc"] = {"Mochica"},
["omg"] = {"Omagua"},
["omi"] = {"Omi"},
["omk"] = {"Omok"},
["oml"] = {"Ombo"},
["omn"] = {"Minoan"},
["omo"] = {"Utarmbung"},
["omp"] = {"Old Manipuri"},
["omq"] = {"Oto-Manguean languages"},
["omr"] = {"Old Marathi"},
["omt"] = {"Omotik"},
["omu"] = {"Omurano"},
["omv"] = {"Omotic languages"},
["omw"] = {"South Tairora"},
["omx"] = {"Old Mon"},
["omy"] = {"Old Malay"},
["ona"] = {"Ona"},
["onb"] = {"Lingao"},
["one"] = {"Oneida"},
["ong"] = {"Olo"},
["oni"] = {"Onin"},
["onj"] = {"Onjob"},
["onk"] = {"Kabore One"},
["onn"] = {"Onobasulu"},
["ono"] = {"Onondaga"},
["onp"] = {"Sartang"},
["onr"] = {"Northern One"},
["ons"] = {"Ono"},
["ont"] = {"Ontenu"},
["onu"] = {"Unua"},
["onw"] = {"Old Nubian"},
["onx"] = {"Onin Based Pidgin"},
["ood"] = {"Tohono O'odham"},
["oog"] = {"Ong"},
["oon"] = {"Önge"},
["oor"] = {"Oorlams"},
["oos"] = {"Old Ossetic"},
["opa"] = {"Okpamheri"},
["opk"] = {"Kopkaka"},
["opm"] = {"Oksapmin"},
["opo"] = {"Opao"},
["opt"] = {"Opata"},
["opy"] = {"Ofayé"},
["ora"] = {"Oroha"},
["orc"] = {"Orma"},
["ore"] = {"Orejón"},
["org"] = {"Oring"},
["orh"] = {"Oroqen"},
["orn"] = {"Orang Kanaq"},
["oro"] = {"Orokolo"},
["orr"] = {"Oruma"},
["ors"] = {"Orang Seletar"},
["ort"] = {"Adivasi Oriya"},
["oru"] = {"Ormuri"},
["orv"] = {"Old Russian"},
["orw"] = {"Oro Win"},
["orx"] = {"Oro"},
["ory"] = {"Odia (individual language)", "Oriya (individual language)"},
["orz"] = {"Ormu"},
["osa"] = {"Osage"},
["osc"] = {"Oscan"},
["osi"] = {"Osing"},
["osn"] = {"Old Sundanese"},
["oso"] = {"Ososo"},
["osp"] = {"Old Spanish"},
["ost"] = {"Osatu"},
["osu"] = {"Southern One"},
["osx"] = {"Old Saxon"},
["ota"] = {"Ottoman Turkish (1500-1928)"},
["otb"] = {"Old Tibetan"},
["otd"] = {"Ot Danum"},
["ote"] = {"Mezquital Otomi"},
["oti"] = {"Oti"},
["otk"] = {"Old Turkish"},
["otl"] = {"Tilapa Otomi"},
["otm"] = {"Eastern Highland Otomi"},
["otn"] = {"Tenango Otomi"},
["oto"] = {"Otomian languages"},
["otq"] = {"Querétaro Otomi"},
["otr"] = {"Otoro"},
["ots"] = {"Estado de México Otomi"},
["ott"] = {"Temoaya Otomi"},
["otu"] = {"Otuke"},
["otw"] = {"Ottawa"},
["otx"] = {"Texcatepec Otomi"},
["oty"] = {"Old Tamil"},
["otz"] = {"Ixtenco Otomi"},
["oua"] = {"Tagargrent"},
["oub"] = {"Glio-Oubi"},
["oue"] = {"Oune"},
["oui"] = {"Old Uighur"},
["oum"] = {"Ouma"},
["ovd"] = {"Elfdalian", "Övdalian"},
["owi"] = {"Owiniga"},
["owl"] = {"Old Welsh"},
["oyb"] = {"Oy"},
["oyd"] = {"Oyda"},
["oym"] = {"Wayampi"},
["oyy"] = {"Oya'oya"},
["ozm"] = {"Koonzime"},
["paa"] = {"Papuan languages"},
["pab"] = {"Parecís"},
["pac"] = {"Pacoh"},
["pad"] = {"Paumarí"},
["pae"] = {"Pagibete"},
["paf"] = {"Paranawát"},
["pag"] = {"Pangasinan"},
["pah"] = {"Tenharim"},
["pai"] = {"Pe"},
["pak"] = {"Parakanã"},
["pal"] = {"Pahlavi"},
["pam"] = {"Pampanga", "Kapampangan"},
["pao"] = {"Northern Paiute"},
["pap"] = {"Papiamento"},
["paq"] = {"Parya"},
["par"] = {"Panamint", "Timbisha"},
["pas"] = {"Papasena"},
["pau"] = {"Palauan"},
["pav"] = {"Pakaásnovos"},
["paw"] = {"Pawnee"},
["pax"] = {"Pankararé"},
["pay"] = {"Pech"},
["paz"] = {"Pankararú"},
["pbb"] = {"Páez"},
["pbc"] = {"Patamona"},
["pbe"] = {"Mezontla Popoloca"},
["pbf"] = {"Coyotepec Popoloca"},
["pbg"] = {"Paraujano"},
["pbh"] = {"E'ñapa Woromaipu"},
["pbi"] = {"Parkwa"},
["pbl"] = {"Mak (Nigeria)"},
["pbm"] = {"Puebla Mazatec"},
["pbn"] = {"Kpasam"},
["pbo"] = {"Papel"},
["pbp"] = {"Badyara"},
["pbr"] = {"Pangwa"},
["pbs"] = {"Central Pame"},
["pbt"] = {"Southern Pashto"},
["pbu"] = {"Northern Pashto"},
["pbv"] = {"Pnar"},
["pby"] = {"Pyu (Papua New Guinea)"},
["pca"] = {"Santa Inés Ahuatempan Popoloca"},
["pcb"] = {"Pear"},
["pcc"] = {"Bouyei"},
["pcd"] = {"Picard"},
["pce"] = {"Ruching Palaung"},
["pcf"] = {"Paliyan"},
["pcg"] = {"Paniya"},
["pch"] = {"Pardhan"},
["pci"] = {"Duruwa"},
["pcj"] = {"Parenga"},
["pck"] = {"Paite Chin"},
["pcl"] = {"Pardhi"},
["pcm"] = {"Nigerian Pidgin"},
["pcn"] = {"Piti"},
["pcp"] = {"Pacahuara"},
["pcw"] = {"Pyapun"},
["pda"] = {"Anam"},
["pdc"] = {"Pennsylvania German"},
["pdi"] = {"Pa Di"},
["pdn"] = {"Podena", "Fedan"},
["pdo"] = {"Padoe"},
["pdt"] = {"Plautdietsch"},
["pdu"] = {"Kayan"},
["pea"] = {"Peranakan Indonesian"},
["peb"] = {"Eastern Pomo"},
["ped"] = {"Mala (Papua New Guinea)"},
["pee"] = {"Taje"},
["pef"] = {"Northeastern Pomo"},
["peg"] = {"Pengo"},
["peh"] = {"Bonan"},
["pei"] = {"Chichimeca-Jonaz"},
["pej"] = {"Northern Pomo"},
["pek"] = {"Penchal"},
["pel"] = {"Pekal"},
["pem"] = {"Phende"},
["peo"] = {"Old Persian (ca. 600-400 B.C.)"},
["pep"] = {"Kunja"},
["peq"] = {"Southern Pomo"},
["pes"] = {"Iranian Persian"},
["pev"] = {"Pémono"},
["pex"] = {"Petats"},
["pey"] = {"Petjo"},
["pez"] = {"Eastern Penan"},
["pfa"] = {"Pááfang"},
["pfe"] = {"Pere"},
["pfl"] = {"Pfaelzisch"},
["pga"] = {"Sudanese Creole Arabic"},
["pgd"] = {"Gāndhārī"},
["pgg"] = {"Pangwali"},
["pgi"] = {"Pagi"},
["pgk"] = {"Rerep"},
["pgl"] = {"Primitive Irish"},
["pgn"] = {"Paelignian"},
["pgs"] = {"Pangseng"},
["pgu"] = {"Pagu"},
["pgz"] = {"Papua New Guinean Sign Language"},
["pha"] = {"Pa-Hng"},
["phd"] = {"Phudagi"},
["phg"] = {"Phuong"},
["phh"] = {"Phukha"},
["phi"] = {"Philippine languages"},
["phj"] = {"Pahari"},
["phk"] = {"Phake"},
["phl"] = {"Phalura", "Palula"},
["phm"] = {"Phimbi"},
["phn"] = {"Phoenician"},
["pho"] = {"Phunoi"},
["phq"] = {"Phana'"},
["phr"] = {"Pahari-Potwari"},
["pht"] = {"Phu Thai"},
["phu"] = {"Phuan"},
["phv"] = {"Pahlavani"},
["phw"] = {"Phangduwali"},
["pia"] = {"Pima Bajo"},
["pib"] = {"Yine"},
["pic"] = {"Pinji"},
["pid"] = {"Piaroa"},
["pie"] = {"Piro"},
["pif"] = {"Pingelapese"},
["pig"] = {"Pisabo"},
["pih"] = {"Pitcairn-Norfolk"},
["pij"] = {"Pijao"},
["pil"] = {"Yom"},
["pim"] = {"Powhatan"},
["pin"] = {"Piame"},
["pio"] = {"Piapoco"},
["pip"] = {"Pero"},
["pir"] = {"Piratapuyo"},
["pis"] = {"Pijin"},
["pit"] = {"Pitta Pitta"},
["piu"] = {"Pintupi-Luritja"},
["piv"] = {"Pileni", "Vaeakau-Taumako"},
["piw"] = {"Pimbwe"},
["pix"] = {"Piu"},
["piy"] = {"Piya-Kwonci"},
["piz"] = {"Pije"},
["pjt"] = {"Pitjantjatjara"},
["pka"] = {"Ardhamāgadhī Prākrit"},
["pkb"] = {"Pokomo", "Kipfokomo"},
["pkc"] = {"Paekche"},
["pkg"] = {"Pak-Tong"},
["pkh"] = {"Pankhu"},
["pkn"] = {"Pakanha"},
["pko"] = {"Pökoot"},
["pkp"] = {"Pukapuka"},
["pkr"] = {"Attapady Kurumba"},
["pks"] = {"Pakistan Sign Language"},
["pkt"] = {"Maleng"},
["pku"] = {"Paku"},
["pla"] = {"Miani"},
["plb"] = {"Polonombauk"},
["plc"] = {"Central Palawano"},
["pld"] = {"Polari"},
["ple"] = {"Palu'e"},
["plf"] = {"Central Malayo-Polynesian languages"},
["plg"] = {"Pilagá"},
["plh"] = {"Paulohi"},
["plj"] = {"Polci"},
["plk"] = {"Kohistani Shina"},
["pll"] = {"Shwe Palaung"},
["pln"] = {"Palenquero"},
["plo"] = {"Oluta Popoluca"},
["plq"] = {"Palaic"},
["plr"] = {"Palaka Senoufo"},
["pls"] = {"San Marcos Tlacoyalco Popoloca", "San Marcos Tlalcoyalco Popoloca"},
["plt"] = {"Plateau Malagasy"},
["plu"] = {"Palikúr"},
["plv"] = {"Southwest Palawano"},
["plw"] = {"Brooke's Point Palawano"},
["ply"] = {"Bolyu"},
["plz"] = {"Paluan"},
["pma"] = {"Paama"},
["pmb"] = {"Pambia"},
["pmd"] = {"Pallanganmiddang"},
["pme"] = {"Pwaamei"},
["pmf"] = {"Pamona"},
["pmh"] = {"Māhārāṣṭri Prākrit"},
["pmi"] = {"Northern Pumi"},
["pmj"] = {"Southern Pumi"},
["pmk"] = {"Pamlico"},
["pml"] = {"Lingua Franca"},
["pmm"] = {"Pomo"},
["pmn"] = {"Pam"},
["pmo"] = {"Pom"},
["pmq"] = {"Northern Pame"},
["pmr"] = {"Paynamar"},
["pms"] = {"Piemontese"},
["pmt"] = {"Tuamotuan"},
["pmw"] = {"Plains Miwok"},
["pmx"] = {"Poumei Naga"},
["pmy"] = {"Papuan Malay"},
["pmz"] = {"Southern Pame"},
["pna"] = {"Punan Bah-Biau"},
["pnb"] = {"Western Panjabi"},
["pnc"] = {"Pannei"},
["pnd"] = {"Mpinda"},
["pne"] = {"Western Penan"},
["png"] = {"Pangu", "Pongu"},
["pnh"] = {"Penrhyn"},
["pni"] = {"Aoheng"},
["pnj"] = {"Pinjarup"},
["pnk"] = {"Paunaka"},
["pnl"] = {"Paleni"},
["pnm"] = {"Punan Batu 1"},
["pnn"] = {"Pinai-Hagahai"},
["pno"] = {"Panobo"},
["pnp"] = {"Pancana"},
["pnq"] = {"Pana (Burkina Faso)"},
["pnr"] = {"Panim"},
["pns"] = {"Ponosakan"},
["pnt"] = {"Pontic"},
["pnu"] = {"Jiongnai Bunu"},
["pnv"] = {"Pinigura"},
["pnw"] = {"Banyjima", "Panytyima"},
["pnx"] = {"Phong-Kniang"},
["pny"] = {"Pinyin"},
["pnz"] = {"Pana (Central African Republic)"},
["poc"] = {"Poqomam"},
["poe"] = {"San Juan Atzingo Popoloca"},
["pof"] = {"Poke"},
["pog"] = {"Potiguára"},
["poh"] = {"Poqomchi'"},
["poi"] = {"Highland Popoluca"},
["pok"] = {"Pokangá"},
["pom"] = {"Southeastern Pomo"},
["pon"] = {"Pohnpeian"},
["poo"] = {"Central Pomo"},
["pop"] = {"Pwapwâ"},
["poq"] = {"Texistepec Popoluca"},
["pos"] = {"Sayula Popoluca"},
["pot"] = {"Potawatomi"},
["pov"] = {"Upper Guinea Crioulo"},
["pow"] = {"San Felipe Otlaltepec Popoloca"},
["pox"] = {"Polabian"},
["poy"] = {"Pogolo"},
["poz"] = {"Malayo-Polynesian languages"},
["ppe"] = {"Papi"},
["ppi"] = {"Paipai"},
["ppk"] = {"Uma"},
["ppl"] = {"Pipil", "Nicarao"},
["ppm"] = {"Papuma"},
["ppn"] = {"Papapana"},
["ppo"] = {"Folopa"},
["ppp"] = {"Pelende"},
["ppq"] = {"Pei"},
["pps"] = {"San Luís Temalacayuca Popoloca"},
["ppt"] = {"Pare"},
["ppu"] = {"Papora"},
["pqa"] = {"Pa'a"},
["pqe"] = {"Eastern Malayo-Polynesian languages"},
["pqm"] = {"Malecite-Passamaquoddy"},
["pqw"] = {"Western Malayo-Polynesian languages"},
["pra"] = {"Prakrit languages"},
["prc"] = {"Parachi"},
["prd"] = {"Parsi-Dari"},
["pre"] = {"Principense"},
["prf"] = {"Paranan"},
["prg"] = {"Prussian"},
["prh"] = {"Porohanon"},
["pri"] = {"Paicî"},
["prk"] = {"Parauk"},
["prl"] = {"Peruvian Sign Language"},
["prm"] = {"Kibiri"},
["prn"] = {"Prasuni"},
["pro"] = {"Old Provençal (to 1500)", "Old Occitan (to 1500)"},
["prp"] = {"Parsi"},
["prq"] = {"Ashéninka Perené"},
["prr"] = {"Puri"},
["prs"] = {"Dari", "Afghan Persian"},
["prt"] = {"Phai"},
["pru"] = {"Puragi"},
["prw"] = {"Parawen"},
["prx"] = {"Purik"},
["prz"] = {"Providencia Sign Language"},
["psa"] = {"Asue Awyu"},
["psc"] = {"Iranian Sign Language", "Persian Sign Language"},
["psd"] = {"Plains Indian Sign Language"},
["pse"] = {"Central Malay"},
["psg"] = {"Penang Sign Language"},
["psh"] = {"Southwest Pashai", "Southwest Pashayi"},
["psi"] = {"Southeast Pashai", "Southeast Pashayi"},
["psl"] = {"Puerto Rican Sign Language"},
["psm"] = {"Pauserna"},
["psn"] = {"Panasuan"},
["pso"] = {"Polish Sign Language"},
["psp"] = {"Philippine Sign Language"},
["psq"] = {"Pasi"},
["psr"] = {"Portuguese Sign Language"},
["pss"] = {"Kaulong"},
["pst"] = {"Central Pashto"},
["psu"] = {"Sauraseni Prākrit"},
["psw"] = {"Port Sandwich"},
["psy"] = {"Piscataway"},
["pta"] = {"Pai Tavytera"},
["pth"] = {"Pataxó Hã-Ha-Hãe"},
["pti"] = {"Pindiini", "Wangkatha"},
["ptn"] = {"Patani"},
["pto"] = {"Zo'é"},
["ptp"] = {"Patep"},
["ptq"] = {"Pattapu"},
["ptr"] = {"Piamatsina"},
["ptt"] = {"Enrekang"},
["ptu"] = {"Bambam"},
["ptv"] = {"Port Vato"},
["ptw"] = {"Pentlatch"},
["pty"] = {"Pathiya"},
["pua"] = {"Western Highland Purepecha"},
["pub"] = {"Purum"},
["puc"] = {"Punan Merap"},
["pud"] = {"Punan Aput"},
["pue"] = {"Puelche"},
["puf"] = {"Punan Merah"},
["pug"] = {"Phuie"},
["pui"] = {"Puinave"},
["puj"] = {"Punan Tubu"},
["pum"] = {"Puma"},
["puo"] = {"Puoc"},
["pup"] = {"Pulabu"},
["puq"] = {"Puquina"},
["pur"] = {"Puruborá"},
["put"] = {"Putoh"},
["puu"] = {"Punu"},
["puw"] = {"Puluwatese"},
["pux"] = {"Puare"},
["puy"] = {"Purisimeño"},
["pwa"] = {"Pawaia"},
["pwb"] = {"Panawa"},
["pwg"] = {"Gapapaiwa"},
["pwi"] = {"Patwin"},
["pwm"] = {"Molbog"},
["pwn"] = {"Paiwan"},
["pwo"] = {"Pwo Western Karen"},
["pwr"] = {"Powari"},
["pww"] = {"Pwo Northern Karen"},
["pxm"] = {"Quetzaltepec Mixe"},
["pye"] = {"Pye Krumen"},
["pym"] = {"Fyam"},
["pyn"] = {"Poyanáwa"},
["pys"] = {"Paraguayan Sign Language", "Lengua de Señas del Paraguay"},
["pyu"] = {"Puyuma"},
["pyx"] = {"Pyu (Myanmar)"},
["pyy"] = {"Pyen"},
["pzh"] = {"Pazeh"},
["pzn"] = {"Jejara Naga", "Para Naga"},
["qua"] = {"Quapaw"},
["qub"] = {"Huallaga Huánuco Quechua"},
["quc"] = {"K'iche'", "Quiché"},
["qud"] = {"Calderón Highland Quichua"},
["quf"] = {"Lambayeque Quechua"},
["qug"] = {"Chimborazo Highland Quichua"},
["quh"] = {"South Bolivian Quechua"},
["qui"] = {"Quileute"},
["quk"] = {"Chachapoyas Quechua"},
["qul"] = {"North Bolivian Quechua"},
["qum"] = {"Sipacapense"},
["qun"] = {"Quinault"},
["qup"] = {"Southern Pastaza Quechua"},
["quq"] = {"Quinqui"},
["qur"] = {"Yanahuanca Pasco Quechua"},
["qus"] = {"Santiago del Estero Quichua"},
["quv"] = {"Sacapulteco"},
["quw"] = {"Tena Lowland Quichua"},
["qux"] = {"Yauyos Quechua"},
["quy"] = {"Ayacucho Quechua"},
["quz"] = {"Cusco Quechua"},
["qva"] = {"Ambo-Pasco Quechua"},
["qvc"] = {"Cajamarca Quechua"},
["qve"] = {"Eastern Apurímac Quechua"},
["qvh"] = {"Huamalíes-Dos de Mayo Huánuco Quechua"},
["qvi"] = {"Imbabura Highland Quichua"},
["qvj"] = {"Loja Highland Quichua"},
["qvl"] = {"Cajatambo North Lima Quechua"},
["qvm"] = {"Margos-Yarowilca-Lauricocha Quechua"},
["qvn"] = {"North Junín Quechua"},
["qvo"] = {"Napo Lowland Quechua"},
["qvp"] = {"Pacaraos Quechua"},
["qvs"] = {"San Martín Quechua"},
["qvw"] = {"Huaylla Wanca Quechua"},
["qvy"] = {"Queyu"},
["qvz"] = {"Northern Pastaza Quichua"},
["qwa"] = {"Corongo Ancash Quechua"},
["qwc"] = {"Classical Quechua"},
["qwe"] = {"Quechuan (family)"},
["qwh"] = {"Huaylas Ancash Quechua"},
["qwm"] = {"Kuman (Russia)"},
["qws"] = {"Sihuas Ancash Quechua"},
["qwt"] = {"Kwalhioqua-Tlatskanai"},
["qxa"] = {"Chiquián Ancash Quechua"},
["qxc"] = {"Chincha Quechua"},
["qxh"] = {"Panao Huánuco Quechua"},
["qxl"] = {"Salasaca Highland Quichua"},
["qxn"] = {"Northern Conchucos Ancash Quechua"},
["qxo"] = {"Southern Conchucos Ancash Quechua"},
["qxp"] = {"Puno Quechua"},
["qxq"] = {"Qashqa'i"},
["qxr"] = {"Cañar Highland Quichua"},
["qxs"] = {"Southern Qiang"},
["qxt"] = {"Santa Ana de Tusi Pasco Quechua"},
["qxu"] = {"Arequipa-La Unión Quechua"},
["qxw"] = {"Jauja Wanca Quechua"},
["qya"] = {"Quenya"},
["qyp"] = {"Quiripi"},
["raa"] = {"Dungmali"},
["rab"] = {"Camling"},
["rac"] = {"Rasawa"},
["rad"] = {"Rade"},
["raf"] = {"Western Meohang"},
["rag"] = {"Logooli", "Lulogooli"},
["rah"] = {"Rabha"},
["rai"] = {"Ramoaaina"},
["raj"] = {"Rajasthani"},
["rak"] = {"Tulu-Bohuai"},
["ral"] = {"Ralte"},
["ram"] = {"Canela"},
["ran"] = {"Riantana"},
["rao"] = {"Rao"},
["rap"] = {"Rapanui"},
["raq"] = {"Saam"},
["rar"] = {"Rarotongan", "Cook Islands Maori"},
["ras"] = {"Tegali"},
["rat"] = {"Razajerdi"},
["rau"] = {"Raute"},
["rav"] = {"Sampang"},
["raw"] = {"Rawang"},
["rax"] = {"Rang"},
["ray"] = {"Rapa"},
["raz"] = {"Rahambuu"},
["rbb"] = {"Rumai Palaung"},
["rbk"] = {"Northern Bontok"},
["rbl"] = {"Miraya Bikol"},
["rbp"] = {"Barababaraba"},
["rcf"] = {"Réunion Creole French"},
["rdb"] = {"Rudbari"},
["rea"] = {"Rerau"},
["reb"] = {"Rembong"},
["ree"] = {"Rejang Kayan"},
["reg"] = {"Kara (Tanzania)"},
["rei"] = {"Reli"},
["rej"] = {"Rejang"},
["rel"] = {"Rendille"},
["rem"] = {"Remo"},
["ren"] = {"Rengao"},
["rer"] = {"Rer Bare"},
["res"] = {"Reshe"},
["ret"] = {"Retta"},
["rey"] = {"Reyesano"},
["rga"] = {"Roria"},
["rge"] = {"Romano-Greek"},
["rgk"] = {"Rangkas"},
["rgn"] = {"Romagnol"},
["rgr"] = {"Resígaro"},
["rgs"] = {"Southern Roglai"},
["rgu"] = {"Ringgou"},
["rhg"] = {"Rohingya"},
["rhp"] = {"Yahang"},
["ria"] = {"Riang (India)"},
["rib"] = {"Bribri Sign Language"},
["rif"] = {"Tarifit"},
["ril"] = {"Riang Lang", "Riang (Myanmar)"},
["rim"] = {"Nyaturu"},
["rin"] = {"Nungu"},
["rir"] = {"Ribun"},
["rit"] = {"Ritharrngu"},
["riu"] = {"Riung"},
["rjg"] = {"Rajong"},
["rji"] = {"Raji"},
["rjs"] = {"Rajbanshi"},
["rka"] = {"Kraol"},
["rkb"] = {"Rikbaktsa"},
["rkh"] = {"Rakahanga-Manihiki"},
["rki"] = {"Rakhine"},
["rkm"] = {"Marka"},
["rkt"] = {"Rangpuri", "Kamta"},
["rkw"] = {"Arakwal"},
["rma"] = {"Rama"},
["rmb"] = {"Rembarrnga"},
["rmc"] = {"Carpathian Romani"},
["rmd"] = {"Traveller Danish"},
["rme"] = {"Angloromani"},
["rmf"] = {"Kalo Finnish Romani"},
["rmg"] = {"Traveller Norwegian"},
["rmh"] = {"Murkim"},
["rmi"] = {"Lomavren"},
["rmk"] = {"Romkun"},
["rml"] = {"Baltic Romani"},
["rmm"] = {"Roma"},
["rmn"] = {"Balkan Romani"},
["rmo"] = {"Sinte Romani"},
["rmp"] = {"Rempi"},
["rmq"] = {"Caló"},
["rms"] = {"Romanian Sign Language"},
["rmt"] = {"Domari"},
["rmu"] = {"Tavringer Romani"},
["rmv"] = {"Romanova"},
["rmw"] = {"Welsh Romani"},
["rmx"] = {"Romam"},
["rmy"] = {"Vlax Romani"},
["rmz"] = {"Marma"},
["rnb"] = {"Brunca Sign Language"},
["rnd"] = {"Ruund"},
["rng"] = {"Ronga"},
["rnl"] = {"Ranglong"},
["rnn"] = {"Roon"},
["rnp"] = {"Rongpo"},
["rnr"] = {"Nari Nari"},
["rnw"] = {"Rungwa"},
["roa"] = {"Romance languages"},
["rob"] = {"Tae'"},
["roc"] = {"Cacgia Roglai"},
["rod"] = {"Rogo"},
["roe"] = {"Ronji"},
["rof"] = {"Rombo"},
["rog"] = {"Northern Roglai"},
["rol"] = {"Romblomanon"},
["rom"] = {"Romany"},
["roo"] = {"Rotokas"},
["rop"] = {"Kriol"},
["ror"] = {"Rongga"},
["rou"] = {"Runga"},
["row"] = {"Dela-Oenale"},
["rpn"] = {"Repanbitip"},
["rpt"] = {"Rapting"},
["rri"] = {"Ririo"},
["rro"] = {"Waima"},
["rrt"] = {"Arritinngithigh"},
["rsb"] = {"Romano-Serbian"},
["rsk"] = {"Ruthenian", "Rusyn"},
["rsl"] = {"Russian Sign Language"},
["rsm"] = {"Miriwoong Sign Language"},
["rsn"] = {"Rwandan Sign Language"},
["rtc"] = {"Rungtu Chin"},
["rth"] = {"Ratahan"},
["rtm"] = {"Rotuman"},
["rts"] = {"Yurats"},
["rtw"] = {"Rathawi"},
["rub"] = {"Gungu"},
["ruc"] = {"Ruuli"},
["rue"] = {"Rusyn"},
["ruf"] = {"Luguru"},
["rug"] = {"Roviana"},
["ruh"] = {"Ruga"},
["rui"] = {"Rufiji"},
["ruk"] = {"Che"},
["ruo"] = {"Istro Romanian"},
["rup"] = {"Macedo-Romanian", "Aromanian", "Arumanian"},
["ruq"] = {"Megleno Romanian"},
["rut"] = {"Rutul"},
["ruu"] = {"Lanas Lobu"},
["ruy"] = {"Mala (Nigeria)"},
["ruz"] = {"Ruma"},
["rwa"] = {"Rawo"},
["rwk"] = {"Rwa"},
["rwl"] = {"Ruwila"},
["rwm"] = {"Amba (Uganda)"},
["rwo"] = {"Rawa"},
["rwr"] = {"Marwari (India)"},
["rxd"] = {"Ngardi"},
["rxw"] = {"Karuwali", "Garuwali"},
["ryn"] = {"Northern Amami-Oshima"},
["rys"] = {"Yaeyama"},
["ryu"] = {"Central Okinawan"},
["rzh"] = {"Rāziḥī"},
["saa"] = {"Saba"},
["sab"] = {"Buglere"},
["sac"] = {"Meskwaki"},
["sad"] = {"Sandawe"},
["sae"] = {"Sabanê"},
["saf"] = {"Safaliba"},
["sah"] = {"Yakut"},
["sai"] = {"South American Indian languages"},
["saj"] = {"Sahu"},
["sak"] = {"Sake"},
["sal"] = {"Salishan languages"},
["sam"] = {"Samaritan Aramaic"},
["sao"] = {"Sause"},
["saq"] = {"Samburu"},
["sar"] = {"Saraveca"},
["sas"] = {"Sasak"},
["sat"] = {"Santali"},
["sau"] = {"Saleman"},
["sav"] = {"Saafi-Saafi"},
["saw"] = {"Sawi"},
["sax"] = {"Sa"},
["say"] = {"Saya"},
["saz"] = {"Saurashtra"},
["sba"] = {"Ngambay"},
["sbb"] = {"Simbo"},
["sbc"] = {"Kele (Papua New Guinea)"},
["sbd"] = {"Southern Samo"},
["sbe"] = {"Saliba"},
["sbf"] = {"Chabu", "Shabo"},
["sbg"] = {"Seget"},
["sbh"] = {"Sori-Harengan"},
["sbi"] = {"Seti"},
["sbj"] = {"Surbakhal"},
["sbk"] = {"Safwa"},
["sbl"] = {"Botolan Sambal"},
["sbm"] = {"Sagala"},
["sbn"] = {"Sindhi Bhil"},
["sbo"] = {"Sabüm"},
["sbp"] = {"Sangu (Tanzania)"},
["sbq"] = {"Sileibi"},
["sbr"] = {"Sembakung Murut"},
["sbs"] = {"Subiya"},
["sbt"] = {"Kimki"},
["sbu"] = {"Stod Bhoti"},
["sbv"] = {"Sabine"},
["sbw"] = {"Simba"},
["sbx"] = {"Seberuang"},
["sby"] = {"Soli"},
["sbz"] = {"Sara Kaba"},
["scb"] = {"Chut"},
["sce"] = {"Dongxiang"},
["scf"] = {"San Miguel Creole French"},
["scg"] = {"Sanggau"},
["sch"] = {"Sakachep"},
["sci"] = {"Sri Lankan Creole Malay"},
["sck"] = {"Sadri"},
["scl"] = {"Shina"},
["scn"] = {"Sicilian"},
["sco"] = {"Scots"},
["scp"] = {"Hyolmo", "Helambu Sherpa"},
["scq"] = {"Sa'och"},
["scs"] = {"North Slavey"},
["sct"] = {"Southern Katang"},
["scu"] = {"Shumcho"},
["scv"] = {"Sheni"},
["scw"] = {"Sha"},
["scx"] = {"Sicel"},
["sda"] = {"Toraja-Sa'dan"},
["sdb"] = {"Shabak"},
["sdc"] = {"Sassarese Sardinian"},
["sde"] = {"Surubu"},
["sdf"] = {"Sarli"},
["sdg"] = {"Savi"},
["sdh"] = {"Southern Kurdish"},
["sdj"] = {"Suundi"},
["sdk"] = {"Sos Kundi"},
["sdl"] = {"Saudi Arabian Sign Language"},
["sdn"] = {"Gallurese Sardinian"},
["sdo"] = {"Bukar-Sadung Bidayuh"},
["sdp"] = {"Sherdukpen"},
["sdq"] = {"Semandang"},
["sdr"] = {"Oraon Sadri"},
["sds"] = {"Sened"},
["sdt"] = {"Shuadit"},
["sdu"] = {"Sarudu"},
["sdv"] = {"Eastern Sudanic languages"},
["sdx"] = {"Sibu Melanau"},
["sdz"] = {"Sallands"},
["sea"] = {"Semai"},
["seb"] = {"Shempire Senoufo"},
["sec"] = {"Sechelt"},
["sed"] = {"Sedang"},
["see"] = {"Seneca"},
["sef"] = {"Cebaara Senoufo"},
["seg"] = {"Segeju"},
["seh"] = {"Sena"},
["sei"] = {"Seri"},
["sej"] = {"Sene"},
["sek"] = {"Sekani"},
["sel"] = {"Selkup"},
["sem"] = {"Semitic languages"},
["sen"] = {"Nanerigé Sénoufo"},
["seo"] = {"Suarmin"},
["sep"] = {"Sìcìté Sénoufo"},
["seq"] = {"Senara Sénoufo"},
["ser"] = {"Serrano"},
["ses"] = {"Koyraboro Senni Songhai"},
["set"] = {"Sentani"},
["seu"] = {"Serui-Laut"},
["sev"] = {"Nyarafolo Senoufo"},
["sew"] = {"Sewa Bay"},
["sey"] = {"Secoya"},
["sez"] = {"Senthang Chin"},
["sfb"] = {"Langue des signes de Belgique Francophone", "French Belgian Sign Language"},
["sfe"] = {"Eastern Subanen"},
["sfm"] = {"Small Flowery Miao"},
["sfs"] = {"South African Sign Language"},
["sfw"] = {"Sehwi"},
["sga"] = {"Old Irish (to 900)"},
["sgb"] = {"Mag-antsi Ayta"},
["sgc"] = {"Kipsigis"},
["sgd"] = {"Surigaonon"},
["sge"] = {"Segai"},
["sgg"] = {"Swiss-German Sign Language"},
["sgh"] = {"Shughni"},
["sgi"] = {"Suga"},
["sgj"] = {"Surgujia"},
["sgk"] = {"Sangkong"},
["sgm"] = {"Singa"},
["sgn"] = {"Sign languages"},
["sgp"] = {"Singpho"},
["sgr"] = {"Sangisari"},
["sgs"] = {"Samogitian"},
["sgt"] = {"Brokpake"},
["sgu"] = {"Salas"},
["sgw"] = {"Sebat Bet Gurage"},
["sgx"] = {"Sierra Leone Sign Language"},
["sgy"] = {"Sanglechi"},
["sgz"] = {"Sursurunga"},
["sha"] = {"Shall-Zwall"},
["shb"] = {"Ninam"},
["shc"] = {"Sonde"},
["shd"] = {"Kundal Shahi"},
["she"] = {"Sheko"},
["shg"] = {"Shua"},
["shh"] = {"Shoshoni"},
["shi"] = {"Tachelhit"},
["shj"] = {"Shatt"},
["shk"] = {"Shilluk"},
["shl"] = {"Shendu"},
["shm"] = {"Shahrudi"},
["shn"] = {"Shan"},
["sho"] = {"Shanga"},
["shp"] = {"Shipibo-Conibo"},
["shq"] = {"Sala"},
["shr"] = {"Shi"},
["shs"] = {"Shuswap"},
["sht"] = {"Shasta"},
["shu"] = {"Chadian Arabic"},
["shv"] = {"Shehri"},
["shw"] = {"Shwai"},
["shx"] = {"She"},
["shy"] = {"Tachawit"},
["shz"] = {"Syenara Senoufo"},
["sia"] = {"Akkala Sami"},
["sib"] = {"Sebop"},
["sid"] = {"Sidamo"},
["sie"] = {"Simaa"},
["sif"] = {"Siamou"},
["sig"] = {"Paasaal"},
["sih"] = {"Zire", "Sîshëë"},
["sii"] = {"Shom Peng"},
["sij"] = {"Numbami"},
["sik"] = {"Sikiana"},
["sil"] = {"Tumulung Sisaala"},
["sim"] = {"Mende (Papua New Guinea)"},
["sio"] = {"Siouan languages"},
["sip"] = {"Sikkimese"},
["siq"] = {"Sonia"},
["sir"] = {"Siri"},
["sis"] = {"Siuslaw"},
["sit"] = {"Sino-Tibetan languages"},
["siu"] = {"Sinagen"},
["siv"] = {"Sumariup"},
["siw"] = {"Siwai"},
["six"] = {"Sumau"},
["siy"] = {"Sivandi"},
["siz"] = {"Siwi"},
["sja"] = {"Epena"},
["sjb"] = {"Sajau Basap"},
["sjd"] = {"Kildin Sami"},
["sje"] = {"Pite Sami"},
["sjg"] = {"Assangori"},
["sjk"] = {"Kemi Sami"},
["sjl"] = {"Sajalong", "Miji"},
["sjm"] = {"Mapun"},
["sjn"] = {"Sindarin"},
["sjo"] = {"Xibe"},
["sjp"] = {"Surjapuri"},
["sjr"] = {"Siar-Lak"},
["sjs"] = {"Senhaja De Srair"},
["sjt"] = {"Ter Sami"},
["sju"] = {"Ume Sami"},
["sjw"] = {"Shawnee"},
["ska"] = {"Skagit"},
["skb"] = {"Saek"},
["skc"] = {"Ma Manda"},
["skd"] = {"Southern Sierra Miwok"},
["ske"] = {"Seke (Vanuatu)"},
["skf"] = {"Sakirabiá"},
["skg"] = {"Sakalava Malagasy"},
["skh"] = {"Sikule"},
["ski"] = {"Sika"},
["skj"] = {"Seke (Nepal)"},
["skm"] = {"Kutong"},
["skn"] = {"Kolibugan Subanon"},
["sko"] = {"Seko Tengah"},
["skp"] = {"Sekapan"},
["skq"] = {"Sininkere"},
["skr"] = {"Saraiki", "Seraiki"},
["sks"] = {"Maia"},
["skt"] = {"Sakata"},
["sku"] = {"Sakao"},
["skv"] = {"Skou"},
["skw"] = {"Skepi Creole Dutch"},
["skx"] = {"Seko Padang"},
["sky"] = {"Sikaiana"},
["skz"] = {"Sekar"},
["sla"] = {"Slavic languages"},
["slc"] = {"Sáliba"},
["sld"] = {"Sissala"},
["sle"] = {"Sholaga"},
["slf"] = {"Swiss-Italian Sign Language"},
["slg"] = {"Selungai Murut"},
["slh"] = {"Southern Puget Sound Salish"},
["sli"] = {"Lower Silesian"},
["slj"] = {"Salumá"},
["sll"] = {"Salt-Yui"},
["slm"] = {"Pangutaran Sama"},
["sln"] = {"Salinan"},
["slp"] = {"Lamaholot"},
["slq"] = {"Salchuq"},
["slr"] = {"Salar"},
["sls"] = {"Singapore Sign Language"},
["slt"] = {"Sila"},
["slu"] = {"Selaru"},
["slw"] = {"Sialum"},
["slx"] = {"Salampasu"},
["sly"] = {"Selayar"},
["slz"] = {"Ma'ya"},
["sma"] = {"Southern Sami"},
["smb"] = {"Simbari"},
["smc"] = {"Som"},
["smf"] = {"Auwe"},
["smg"] = {"Simbali"},
["smh"] = {"Samei"},
["smi"] = {"Sami languages"},
["smj"] = {"Lule Sami"},
["smk"] = {"Bolinao"},
["sml"] = {"Central Sama"},
["smm"] = {"Musasa"},
["smn"] = {"Inari Sami"},
["smp"] = {"Samaritan"},
["smq"] = {"Samo"},
["smr"] = {"Simeulue"},
["sms"] = {"Skolt Sami"},
["smt"] = {"Simte"},
["smu"] = {"Somray"},
["smv"] = {"Samvedi"},
["smw"] = {"Sumbawa"},
["smx"] = {"Samba"},
["smy"] = {"Semnani"},
["smz"] = {"Simeku"},
["snc"] = {"Sinaugoro"},
["sne"] = {"Bau Bidayuh"},
["snf"] = {"Noon"},
["sng"] = {"Sanga (Democratic Republic of Congo)"},
["sni"] = {"Sensi"},
["snj"] = {"Riverain Sango"},
["snk"] = {"Soninke"},
["snl"] = {"Sangil"},
["snm"] = {"Southern Ma'di"},
["snn"] = {"Siona"},
["sno"] = {"Snohomish"},
["snp"] = {"Siane"},
["snq"] = {"Sangu (Gabon)"},
["snr"] = {"Sihan"},
["sns"] = {"South West Bay", "Nahavaq"},
["snu"] = {"Senggi", "Viid"},
["snv"] = {"Sa'ban"},
["snw"] = {"Selee"},
["snx"] = {"Sam"},
["sny"] = {"Saniyo-Hiyewe"},
["snz"] = {"Kou"},
["soa"] = {"Thai Song"},
["sob"] = {"Sobei"},
["soc"] = {"So (Democratic Republic of Congo)"},
["sod"] = {"Songoora"},
["soe"] = {"Songomeno"},
["sog"] = {"Sogdian"},
["soh"] = {"Aka"},
["soi"] = {"Sonha"},
["soj"] = {"Soi"},
["sok"] = {"Sokoro"},
["sol"] = {"Solos"},
["son"] = {"Songhai languages"},
["soo"] = {"Songo"},
["sop"] = {"Songe"},
["soq"] = {"Kanasi"},
["sor"] = {"Somrai"},
["sos"] = {"Seeku"},
["sou"] = {"Southern Thai"},
["sov"] = {"Sonsorol"},
["sow"] = {"Sowanda"},
["sox"] = {"Swo"},
["soy"] = {"Miyobe"},
["soz"] = {"Temi"},
["spb"] = {"Sepa (Indonesia)"},
["spc"] = {"Sapé"},
["spd"] = {"Saep"},
["spe"] = {"Sepa (Papua New Guinea)"},
["spg"] = {"Sian"},
["spi"] = {"Saponi"},
["spk"] = {"Sengo"},
["spl"] = {"Selepet"},
["spm"] = {"Akukem"},
["spn"] = {"Sanapaná"},
["spo"] = {"Spokane"},
["spp"] = {"Supyire Senoufo"},
["spq"] = {"Loreto-Ucayali Spanish"},
["spr"] = {"Saparua"},
["sps"] = {"Saposa"},
["spt"] = {"Spiti Bhoti"},
["spu"] = {"Sapuan"},
["spv"] = {"Sambalpuri", "Kosli"},
["spx"] = {"South Picene"},
["spy"] = {"Sabaot"},
["sqa"] = {"Shama-Sambuga"},
["sqh"] = {"Shau"},
["sqj"] = {"Albanian languages"},
["sqk"] = {"Albanian Sign Language"},
["sqm"] = {"Suma"},
["sqn"] = {"Susquehannock"},
["sqo"] = {"Sorkhei"},
["sqq"] = {"Sou"},
["sqr"] = {"Siculo Arabic"},
["sqs"] = {"Sri Lankan Sign Language"},
["sqt"] = {"Soqotri"},
["squ"] = {"Squamish"},
["sqx"] = {"Kufr Qassem Sign Language (KQSL)"},
["sra"] = {"Saruga"},
["srb"] = {"Sora"},
["src"] = {"Logudorese Sardinian"},
["sre"] = {"Sara"},
["srf"] = {"Nafi"},
["srg"] = {"Sulod"},
["srh"] = {"Sarikoli"},
["sri"] = {"Siriano"},
["srk"] = {"Serudung Murut"},
["srl"] = {"Isirawa"},
["srm"] = {"Saramaccan"},
["srn"] = {"Sranan Tongo"},
["sro"] = {"Campidanese Sardinian"},
["srq"] = {"Sirionó"},
["srr"] = {"Serer"},
["srs"] = {"Sarsi"},
["srt"] = {"Sauri"},
["sru"] = {"Suruí"},
["srv"] = {"Southern Sorsoganon"},
["srw"] = {"Serua"},
["srx"] = {"Sirmauri"},
["sry"] = {"Sera"},
["srz"] = {"Shahmirzadi"},
["ssa"] = {"Nilo-Saharan languages"},
["ssb"] = {"Southern Sama"},
["ssc"] = {"Suba-Simbiti"},
["ssd"] = {"Siroi"},
["sse"] = {"Balangingi", "Bangingih Sama"},
["ssf"] = {"Thao"},
["ssg"] = {"Seimat"},
["ssh"] = {"Shihhi Arabic"},
["ssi"] = {"Sansi"},
["ssj"] = {"Sausi"},
["ssk"] = {"Sunam"},
["ssl"] = {"Western Sisaala"},
["ssm"] = {"Semnam"},
["ssn"] = {"Waata"},
["sso"] = {"Sissano"},
["ssp"] = {"Spanish Sign Language"},
["ssq"] = {"So'a"},
["ssr"] = {"Swiss-French Sign Language"},
["sss"] = {"Sô"},
["sst"] = {"Sinasina"},
["ssu"] = {"Susuami"},
["ssv"] = {"Shark Bay"},
["ssx"] = {"Samberigi"},
["ssy"] = {"Saho"},
["ssz"] = {"Sengseng"},
["sta"] = {"Settla"},
["stb"] = {"Northern Subanen"},
["std"] = {"Sentinel"},
["ste"] = {"Liana-Seti"},
["stf"] = {"Seta"},
["stg"] = {"Trieng"},
["sth"] = {"Shelta"},
["sti"] = {"Bulo Stieng"},
["stj"] = {"Matya Samo"},
["stk"] = {"Arammba"},
["stl"] = {"Stellingwerfs"},
["stm"] = {"Setaman"},
["stn"] = {"Owa"},
["sto"] = {"Stoney"},
["stp"] = {"Southeastern Tepehuan"},
["stq"] = {"Saterfriesisch"},
["str"] = {"Straits Salish"},
["sts"] = {"Shumashti"},
["stt"] = {"Budeh Stieng"},
["stu"] = {"Samtao"},
["stv"] = {"Silt'e"},
["stw"] = {"Satawalese"},
["sty"] = {"Siberian Tatar"},
["sua"] = {"Sulka"},
["sub"] = {"Suku"},
["suc"] = {"Western Subanon"},
["sue"] = {"Suena"},
["sug"] = {"Suganga"},
["sui"] = {"Suki"},
["suj"] = {"Shubi"},
["suk"] = {"Sukuma"},
["suo"] = {"Bouni"},
["suq"] = {"Tirmaga-Chai Suri", "Suri"},
["sur"] = {"Mwaghavul"},
["sus"] = {"Susu"},
["sut"] = {"Subtiaba"},
["suv"] = {"Puroik"},
["suw"] = {"Sumbwa"},
["sux"] = {"Sumerian"},
["suy"] = {"Suyá"},
["suz"] = {"Sunwar"},
["sva"] = {"Svan"},
["svb"] = {"Ulau-Suain"},
["svc"] = {"Vincentian Creole English"},
["sve"] = {"Serili"},
["svk"] = {"Slovakian Sign Language"},
["svm"] = {"Slavomolisano"},
["svs"] = {"Savosavo"},
["svx"] = {"Skalvian"},
["swb"] = {"Maore Comorian"},
["swc"] = {"Congo Swahili"},
["swf"] = {"Sere"},
["swg"] = {"Swabian"},
["swh"] = {"Swahili (individual language)", "Kiswahili"},
["swi"] = {"Sui"},
["swj"] = {"Sira"},
["swk"] = {"Malawi Sena"},
["swl"] = {"Swedish Sign Language"},
["swm"] = {"Samosa"},
["swn"] = {"Sawknah"},
["swo"] = {"Shanenawa"},
["swp"] = {"Suau"},
["swq"] = {"Sharwa"},
["swr"] = {"Saweru"},
["sws"] = {"Seluwasan"},
["swt"] = {"Sawila"},
["swu"] = {"Suwawa"},
["swv"] = {"Shekhawati"},
["sww"] = {"Sowa"},
["swx"] = {"Suruahá"},
["swy"] = {"Sarua"},
["sxb"] = {"Suba"},
["sxc"] = {"Sicanian"},
["sxe"] = {"Sighu"},
["sxg"] = {"Shuhi", "Shixing"},
["sxk"] = {"Southern Kalapuya"},
["sxl"] = {"Selian"},
["sxm"] = {"Samre"},
["sxn"] = {"Sangir"},
["sxo"] = {"Sorothaptic"},
["sxr"] = {"Saaroa"},
["sxs"] = {"Sasaru"},
["sxu"] = {"Upper Saxon"},
["sxw"] = {"Saxwe Gbe"},
["sya"] = {"Siang"},
["syb"] = {"Central Subanen"},
["syc"] = {"Classical Syriac"},
["syd"] = {"Samoyedic languages"},
["syi"] = {"Seki"},
["syk"] = {"Sukur"},
["syl"] = {"Sylheti"},
["sym"] = {"Maya Samo"},
["syn"] = {"Senaya"},
["syo"] = {"Suoy"},
["syr"] = {"Syriac"},
["sys"] = {"Sinyar"},
["syw"] = {"Kagate"},
["syx"] = {"Samay"},
["syy"] = {"Al-Sayyid Bedouin Sign Language"},
["sza"] = {"Semelai"},
["szb"] = {"Ngalum"},
["szc"] = {"Semaq Beri"},
["szd"] = {"Seru"},
["sze"] = {"Seze"},
["szg"] = {"Sengele"},
["szl"] = {"Silesian"},
["szn"] = {"Sula"},
["szp"] = {"Suabo"},
["szs"] = {"Solomon Islands Sign Language"},
["szv"] = {"Isu (Fako Division)"},
["szw"] = {"Sawai"},
["szy"] = {"Sakizaya"},
["taa"] = {"Lower Tanana"},
["tab"] = {"Tabassaran"},
["tac"] = {"Lowland Tarahumara"},
["tad"] = {"Tause"},
["tae"] = {"Tariana"},
["taf"] = {"Tapirapé"},
["tag"] = {"Tagoi"},
["tai"] = {"Tai languages"},
["taj"] = {"Eastern Tamang"},
["tak"] = {"Tala"},
["tal"] = {"Tal"},
["tan"] = {"Tangale"},
["tao"] = {"Yami"},
["tap"] = {"Taabwa"},
["taq"] = {"Tamasheq"},
["tar"] = {"Central Tarahumara"},
["tas"] = {"Tay Boi"},
["tau"] = {"Upper Tanana"},
["tav"] = {"Tatuyo"},
["taw"] = {"Tai"},
["tax"] = {"Tamki"},
["tay"] = {"Atayal"},
["taz"] = {"Tocho"},
["tba"] = {"Aikanã"},
["tbc"] = {"Takia"},
["tbd"] = {"Kaki Ae"},
["tbe"] = {"Tanimbili"},
["tbf"] = {"Mandara"},
["tbg"] = {"North Tairora"},
["tbh"] = {"Dharawal", "Thurawal"},
["tbi"] = {"Gaam"},
["tbj"] = {"Tiang"},
["tbk"] = {"Calamian Tagbanwa"},
["tbl"] = {"Tboli"},
["tbm"] = {"Tagbu"},
["tbn"] = {"Barro Negro Tunebo"},
["tbo"] = {"Tawala"},
["tbp"] = {"Taworta", "Diebroud"},
["tbq"] = {"Tibeto-Burman languages"},
["tbr"] = {"Tumtum"},
["tbs"] = {"Tanguat"},
["tbt"] = {"Tembo (Kitembo)"},
["tbu"] = {"Tubar"},
["tbv"] = {"Tobo"},
["tbw"] = {"Tagbanwa"},
["tbx"] = {"Kapin"},
["tby"] = {"Tabaru"},
["tbz"] = {"Ditammari"},
["tca"] = {"Ticuna"},
["tcb"] = {"Tanacross"},
["tcc"] = {"Datooga"},
["tcd"] = {"Tafi"},
["tce"] = {"Southern Tutchone"},
["tcf"] = {"Malinaltepec Me'phaa", "Malinaltepec Tlapanec"},
["tcg"] = {"Tamagario"},
["tch"] = {"Turks And Caicos Creole English"},
["tci"] = {"Wára"},
["tck"] = {"Tchitchege"},
["tcl"] = {"Taman (Myanmar)"},
["tcm"] = {"Tanahmerah"},
["tcn"] = {"Tichurong"},
["tco"] = {"Taungyo"},
["tcp"] = {"Tawr Chin"},
["tcq"] = {"Kaiy"},
["tcs"] = {"Torres Strait Creole", "Yumplatok"},
["tct"] = {"T'en"},
["tcu"] = {"Southeastern Tarahumara"},
["tcw"] = {"Tecpatlán Totonac"},
["tcx"] = {"Toda"},
["tcy"] = {"Tulu"},
["tcz"] = {"Thado Chin"},
["tda"] = {"Tagdal"},
["tdb"] = {"Panchpargania"},
["tdc"] = {"Emberá-Tadó"},
["tdd"] = {"Tai Nüa"},
["tde"] = {"Tiranige Diga Dogon"},
["tdf"] = {"Talieng"},
["tdg"] = {"Western Tamang"},
["tdh"] = {"Thulung"},
["tdi"] = {"Tomadino"},
["tdj"] = {"Tajio"},
["tdk"] = {"Tambas"},
["tdl"] = {"Sur"},
["tdm"] = {"Taruma"},
["tdn"] = {"Tondano"},
["tdo"] = {"Teme"},
["tdq"] = {"Tita"},
["tdr"] = {"Todrah"},
["tds"] = {"Doutai"},
["tdt"] = {"Tetun Dili"},
["tdv"] = {"Toro"},
["tdx"] = {"Tandroy-Mahafaly Malagasy"},
["tdy"] = {"Tadyawan"},
["tea"] = {"Temiar"},
["teb"] = {"Tetete"},
["tec"] = {"Terik"},
["ted"] = {"Tepo Krumen"},
["tee"] = {"Huehuetla Tepehua"},
["tef"] = {"Teressa"},
["teg"] = {"Teke-Tege"},
["teh"] = {"Tehuelche"},
["tei"] = {"Torricelli"},
["tek"] = {"Ibali Teke"},
["tem"] = {"Timne"},
["ten"] = {"Tama (Colombia)"},
["teo"] = {"Teso"},
["tep"] = {"Tepecano"},
["teq"] = {"Temein"},
["ter"] = {"Tereno"},
["tes"] = {"Tengger"},
["tet"] = {"Tetum"},
["teu"] = {"Soo"},
["tev"] = {"Teor"},
["tew"] = {"Tewa (USA)"},
["tex"] = {"Tennet"},
["tey"] = {"Tulishi"},
["tez"] = {"Tetserret"},
["tfi"] = {"Tofin Gbe"},
["tfn"] = {"Tanaina"},
["tfo"] = {"Tefaro"},
["tfr"] = {"Teribe"},
["tft"] = {"Ternate"},
["tga"] = {"Sagalla"},
["tgb"] = {"Tobilung"},
["tgc"] = {"Tigak"},
["tgd"] = {"Ciwogai"},
["tge"] = {"Eastern Gorkha Tamang"},
["tgf"] = {"Chalikha"},
["tgh"] = {"Tobagonian Creole English"},
["tgi"] = {"Lawunuia"},
["tgj"] = {"Tagin"},
["tgn"] = {"Tandaganon"},
["tgo"] = {"Sudest"},
["tgp"] = {"Tangoa"},
["tgq"] = {"Tring"},
["tgr"] = {"Tareng"},
["tgs"] = {"Nume"},
["tgt"] = {"Central Tagbanwa"},
["tgu"] = {"Tanggu"},
["tgv"] = {"Tingui-Boto"},
["tgw"] = {"Tagwana Senoufo"},
["tgx"] = {"Tagish"},
["tgy"] = {"Togoyo"},
["tgz"] = {"Tagalaka"},
["thd"] = {"Kuuk Thaayorre", "Thayore"},
["the"] = {"Chitwania Tharu"},
["thf"] = {"Thangmi"},
["thh"] = {"Northern Tarahumara"},
["thi"] = {"Tai Long"},
["thk"] = {"Tharaka", "Kitharaka"},
["thl"] = {"Dangaura Tharu"},
["thm"] = {"Aheu"},
["thn"] = {"Thachanadan"},
["thp"] = {"Thompson"},
["thq"] = {"Kochila Tharu"},
["thr"] = {"Rana Tharu"},
["ths"] = {"Thakali"},
["tht"] = {"Tahltan"},
["thu"] = {"Thuri"},
["thv"] = {"Tahaggart Tamahaq"},
["thy"] = {"Tha"},
["thz"] = {"Tayart Tamajeq"},
["tia"] = {"Tidikelt Tamazight"},
["tic"] = {"Tira"},
["tif"] = {"Tifal"},
["tig"] = {"Tigre"},
["tih"] = {"Timugon Murut"},
["tii"] = {"Tiene"},
["tij"] = {"Tilung"},
["tik"] = {"Tikar"},
["til"] = {"Tillamook"},
["tim"] = {"Timbe"},
["tin"] = {"Tindi"},
["tio"] = {"Teop"},
["tip"] = {"Trimuris"},
["tiq"] = {"Tiéfo"},
["tis"] = {"Masadiit Itneg"},
["tit"] = {"Tinigua"},
["tiu"] = {"Adasen"},
["tiv"] = {"Tiv"},
["tiw"] = {"Tiwi"},
["tix"] = {"Southern Tiwa"},
["tiy"] = {"Tiruray"},
["tiz"] = {"Tai Hongjin"},
["tja"] = {"Tajuasohn"},
["tjg"] = {"Tunjung"},
["tji"] = {"Northern Tujia"},
["tjj"] = {"Tjungundji"},
["tjl"] = {"Tai Laing"},
["tjm"] = {"Timucua"},
["tjn"] = {"Tonjon"},
["tjo"] = {"Temacine Tamazight"},
["tjp"] = {"Tjupany"},
["tjs"] = {"Southern Tujia"},
["tju"] = {"Tjurruru"},
["tjw"] = {"Djabwurrung"},
["tka"] = {"Truká"},
["tkb"] = {"Buksa"},
["tkd"] = {"Tukudede"},
["tke"] = {"Takwane"},
["tkf"] = {"Tukumanféd"},
["tkg"] = {"Tesaka Malagasy"},
["tkl"] = {"Tokelau"},
["tkm"] = {"Takelma"},
["tkn"] = {"Toku-No-Shima"},
["tkp"] = {"Tikopia"},
["tkq"] = {"Tee"},
["tkr"] = {"Tsakhur"},
["tks"] = {"Takestani"},
["tkt"] = {"Kathoriya Tharu"},
["tku"] = {"Upper Necaxa Totonac"},
["tkv"] = {"Mur Pano"},
["tkw"] = {"Teanu"},
["tkx"] = {"Tangko"},
["tkz"] = {"Takua"},
["tla"] = {"Southwestern Tepehuan"},
["tlb"] = {"Tobelo"},
["tlc"] = {"Yecuatla Totonac"},
["tld"] = {"Talaud"},
["tlf"] = {"Telefol"},
["tlg"] = {"Tofanma"},
["tlh"] = {"Klingon", "tlhIngan Hol"},
["tli"] = {"Tlingit"},
["tlj"] = {"Talinga-Bwisi"},
["tlk"] = {"Taloki"},
["tll"] = {"Tetela"},
["tlm"] = {"Tolomako"},
["tln"] = {"Talondo'"},
["tlo"] = {"Talodi"},
["tlp"] = {"Filomena Mata-Coahuitlán Totonac"},
["tlq"] = {"Tai Loi"},
["tlr"] = {"Talise"},
["tls"] = {"Tambotalo"},
["tlt"] = {"Sou Nama", "Teluti"},
["tlu"] = {"Tulehu"},
["tlv"] = {"Taliabu"},
["tlx"] = {"Khehek"},
["tly"] = {"Talysh"},
["tma"] = {"Tama (Chad)"},
["tmb"] = {"Katbol", "Avava"},
["tmc"] = {"Tumak"},
["tmd"] = {"Haruai"},
["tme"] = {"Tremembé"},
["tmf"] = {"Toba-Maskoy"},
["tmg"] = {"Ternateño"},
["tmh"] = {"Tamashek"},
["tmi"] = {"Tutuba"},
["tmj"] = {"Samarokena"},
["tmk"] = {"Northwestern Tamang"},
["tml"] = {"Tamnim Citak"},
["tmm"] = {"Tai Thanh"},
["tmn"] = {"Taman (Indonesia)"},
["tmo"] = {"Temoq"},
["tmq"] = {"Tumleo"},
["tmr"] = {"Jewish Babylonian Aramaic (ca. 200-1200 CE)"},
["tms"] = {"Tima"},
["tmt"] = {"Tasmate"},
["tmu"] = {"Iau"},
["tmv"] = {"Tembo (Motembo)"},
["tmw"] = {"Temuan"},
["tmy"] = {"Tami"},
["tmz"] = {"Tamanaku"},
["tna"] = {"Tacana"},
["tnb"] = {"Western Tunebo"},
["tnc"] = {"Tanimuca-Retuarã"},
["tnd"] = {"Angosturas Tunebo"},
["tng"] = {"Tobanga"},
["tnh"] = {"Maiani"},
["tni"] = {"Tandia"},
["tnk"] = {"Kwamera"},
["tnl"] = {"Lenakel"},
["tnm"] = {"Tabla"},
["tnn"] = {"North Tanna"},
["tno"] = {"Toromono"},
["tnp"] = {"Whitesands"},
["tnq"] = {"Taino"},
["tnr"] = {"Ménik"},
["tns"] = {"Tenis"},
["tnt"] = {"Tontemboan"},
["tnu"] = {"Tay Khang"},
["tnv"] = {"Tangchangya"},
["tnw"] = {"Tonsawang"},
["tnx"] = {"Tanema"},
["tny"] = {"Tongwe"},
["tnz"] = {"Ten'edn"},
["tob"] = {"Toba"},
["toc"] = {"Coyutla Totonac"},
["tod"] = {"Toma"},
["tof"] = {"Gizrra"},
["tog"] = {"Tonga (Nyasa)"},
["toh"] = {"Gitonga"},
["toi"] = {"Tonga (Zambia)"},
["toj"] = {"Tojolabal"},
["tok"] = {"Toki Pona"},
["tol"] = {"Tolowa"},
["tom"] = {"Tombulu"},
["too"] = {"Xicotepec De Juárez Totonac"},
["top"] = {"Papantla Totonac"},
["toq"] = {"Toposa"},
["tor"] = {"Togbo-Vara Banda"},
["tos"] = {"Highland Totonac"},
["tou"] = {"Tho"},
["tov"] = {"Upper Taromi"},
["tow"] = {"Jemez"},
["tox"] = {"Tobian"},
["toy"] = {"Topoiyo"},
["toz"] = {"To"},
["tpa"] = {"Taupota"},
["tpc"] = {"Azoyú Me'phaa", "Azoyú Tlapanec"},
["tpe"] = {"Tippera"},
["tpf"] = {"Tarpia"},
["tpg"] = {"Kula"},
["tpi"] = {"Tok Pisin"},
["tpj"] = {"Tapieté"},
["tpk"] = {"Tupinikin"},
["tpl"] = {"Tlacoapa Me'phaa", "Tlacoapa Tlapanec"},
["tpm"] = {"Tampulma"},
["tpn"] = {"Tupinambá"},
["tpo"] = {"Tai Pao"},
["tpp"] = {"Pisaflores Tepehua"},
["tpq"] = {"Tukpa"},
["tpr"] = {"Tuparí"},
["tpt"] = {"Tlachichilco Tepehua"},
["tpu"] = {"Tampuan"},
["tpv"] = {"Tanapag"},
["tpw"] = {"Tupí"},
["tpx"] = {"Acatepec Me'phaa", "Acatepec Tlapanec"},
["tpy"] = {"Trumai"},
["tpz"] = {"Tinputz"},
["tqb"] = {"Tembé"},
["tql"] = {"Lehali"},
["tqm"] = {"Turumsa"},
["tqn"] = {"Tenino"},
["tqo"] = {"Toaripi"},
["tqp"] = {"Tomoip"},
["tqq"] = {"Tunni"},
["tqr"] = {"Torona"},
["tqt"] = {"Western Totonac"},
["tqu"] = {"Touo"},
["tqw"] = {"Tonkawa"},
["tra"] = {"Tirahi"},
["trb"] = {"Terebu"},
["trc"] = {"Copala Triqui"},
["trd"] = {"Turi"},
["tre"] = {"East Tarangan"},
["trf"] = {"Trinidadian Creole English"},
["trg"] = {"Lishán Didán"},
["trh"] = {"Turaka"},
["tri"] = {"Trió"},
["trj"] = {"Toram"},
["trk"] = {"Turkic languages"},
["trl"] = {"Traveller Scottish"},
["trm"] = {"Tregami"},
["trn"] = {"Trinitario"},
["tro"] = {"Tarao Naga"},
["trp"] = {"Kok Borok"},
["trq"] = {"San Martín Itunyoso Triqui"},
["trr"] = {"Taushiro"},
["trs"] = {"Chicahuaxtla Triqui"},
["trt"] = {"Tunggare"},
["tru"] = {"Turoyo", "Surayt"},
["trv"] = {"Sediq", "Seediq", "Taroko"},
["trw"] = {"Torwali"},
["trx"] = {"Tringgus-Sembaan Bidayuh"},
["try"] = {"Turung"},
["trz"] = {"Torá"},
["tsa"] = {"Tsaangi"},
["tsb"] = {"Tsamai"},
["tsc"] = {"Tswa"},
["tsd"] = {"Tsakonian"},
["tse"] = {"Tunisian Sign Language"},
["tsg"] = {"Tausug"},
["tsh"] = {"Tsuvan"},
["tsi"] = {"Tsimshian"},
["tsj"] = {"Tshangla"},
["tsk"] = {"Tseku"},
["tsl"] = {"Ts'ün-Lao"},
["tsm"] = {"Turkish Sign Language", "Türk İşaret Dili"},
["tsp"] = {"Northern Toussian"},
["tsq"] = {"Thai Sign Language"},
["tsr"] = {"Akei"},
["tss"] = {"Taiwan Sign Language"},
["tst"] = {"Tondi Songway Kiini"},
["tsu"] = {"Tsou"},
["tsv"] = {"Tsogo"},
["tsw"] = {"Tsishingini"},
["tsx"] = {"Mubami"},
["tsy"] = {"Tebul Sign Language"},
["tsz"] = {"Purepecha"},
["tta"] = {"Tutelo"},
["ttb"] = {"Gaa"},
["ttc"] = {"Tektiteko"},
["ttd"] = {"Tauade"},
["tte"] = {"Bwanabwana"},
["ttf"] = {"Tuotomb"},
["ttg"] = {"Tutong"},
["tth"] = {"Upper Ta'oih"},
["tti"] = {"Tobati"},
["ttj"] = {"Tooro"},
["ttk"] = {"Totoro"},
["ttl"] = {"Totela"},
["ttm"] = {"Northern Tutchone"},
["ttn"] = {"Towei"},
["tto"] = {"Lower Ta'oih"},
["ttp"] = {"Tombelala"},
["ttq"] = {"Tawallammat Tamajaq"},
["ttr"] = {"Tera"},
["tts"] = {"Northeastern Thai"},
["ttt"] = {"Muslim Tat"},
["ttu"] = {"Torau"},
["ttv"] = {"Titan"},
["ttw"] = {"Long Wat"},
["tty"] = {"Sikaritai"},
["ttz"] = {"Tsum"},
["tua"] = {"Wiarumus"},
["tub"] = {"Tübatulabal"},
["tuc"] = {"Mutu"},
["tud"] = {"Tuxá"},
["tue"] = {"Tuyuca"},
["tuf"] = {"Central Tunebo"},
["tug"] = {"Tunia"},
["tuh"] = {"Taulil"},
["tui"] = {"Tupuri"},
["tuj"] = {"Tugutil"},
["tul"] = {"Tula"},
["tum"] = {"Tumbuka"},
["tun"] = {"Tunica"},
["tuo"] = {"Tucano"},
["tup"] = {"Tupi languages"},
["tuq"] = {"Tedaga"},
["tus"] = {"Tuscarora"},
["tut"] = {"Altaic languages"},
["tuu"] = {"Tututni"},
["tuv"] = {"Turkana"},
["tuw"] = {"Tungus languages"},
["tux"] = {"Tuxináwa"},
["tuy"] = {"Tugen"},
["tuz"] = {"Turka"},
["tva"] = {"Vaghua"},
["tvd"] = {"Tsuvadi"},
["tve"] = {"Te'un"},
["tvk"] = {"Southeast Ambrym"},
["tvl"] = {"Tuvalu"},
["tvm"] = {"Tela-Masbuar"},
["tvn"] = {"Tavoyan"},
["tvo"] = {"Tidore"},
["tvs"] = {"Taveta"},
["tvt"] = {"Tutsa Naga"},
["tvu"] = {"Tunen"},
["tvw"] = {"Sedoa"},
["tvx"] = {"Taivoan"},
["tvy"] = {"Timor Pidgin"},
["twa"] = {"Twana"},
["twb"] = {"Western Tawbuid"},
["twc"] = {"Teshenawa"},
["twd"] = {"Twents"},
["twe"] = {"Tewa (Indonesia)"},
["twf"] = {"Northern Tiwa"},
["twg"] = {"Tereweng"},
["twh"] = {"Tai Dón"},
["twl"] = {"Tawara"},
["twm"] = {"Tawang Monpa"},
["twn"] = {"Twendi"},
["two"] = {"Tswapong"},
["twp"] = {"Ere"},
["twq"] = {"Tasawaq"},
["twr"] = {"Southwestern Tarahumara"},
["twt"] = {"Turiwára"},
["twu"] = {"Termanu"},
["tww"] = {"Tuwari"},
["twx"] = {"Tewe"},
["twy"] = {"Tawoyan"},
["txa"] = {"Tombonuo"},
["txb"] = {"Tokharian B"},
["txc"] = {"Tsetsaut"},
["txe"] = {"Totoli"},
["txg"] = {"Tangut"},
["txh"] = {"Thracian"},
["txi"] = {"Ikpeng"},
["txj"] = {"Tarjumo"},
["txm"] = {"Tomini"},
["txn"] = {"West Tarangan"},
["txo"] = {"Toto"},
["txq"] = {"Tii"},
["txr"] = {"Tartessian"},
["txs"] = {"Tonsea"},
["txt"] = {"Citak"},
["txu"] = {"Kayapó"},
["txx"] = {"Tatana"},
["txy"] = {"Tanosy Malagasy"},
["tya"] = {"Tauya"},
["tye"] = {"Kyanga"},
["tyh"] = {"O'du"},
["tyi"] = {"Teke-Tsaayi"},
["tyj"] = {"Tai Do", "Tai Yo"},
["tyl"] = {"Thu Lao"},
["tyn"] = {"Kombai"},
["typ"] = {"Thaypan"},
["tyr"] = {"Tai Daeng"},
["tys"] = {"Tày Sa Pa"},
["tyt"] = {"Tày Tac"},
["tyu"] = {"Kua"},
["tyv"] = {"Tuvinian"},
["tyx"] = {"Teke-Tyee"},
["tyy"] = {"Tiyaa"},
["tyz"] = {"Tày"},
["tza"] = {"Tanzanian Sign Language"},
["tzh"] = {"Tzeltal"},
["tzj"] = {"Tz'utujil"},
["tzl"] = {"Talossan"},
["tzm"] = {"Central Atlas Tamazight"},
["tzn"] = {"Tugun"},
["tzo"] = {"Tzotzil"},
["tzx"] = {"Tabriak"},
["uam"] = {"Uamué"},
["uan"] = {"Kuan"},
["uar"] = {"Tairuma"},
["uba"] = {"Ubang"},
["ubi"] = {"Ubi"},
["ubl"] = {"Buhi'non Bikol"},
["ubr"] = {"Ubir"},
["ubu"] = {"Umbu-Ungu"},
["uby"] = {"Ubykh"},
["uda"] = {"Uda"},
["ude"] = {"Udihe"},
["udg"] = {"Muduga"},
["udi"] = {"Udi"},
["udj"] = {"Ujir"},
["udl"] = {"Wuzlam"},
["udm"] = {"Udmurt"},
["udu"] = {"Uduk"},
["ues"] = {"Kioko"},
["ufi"] = {"Ufim"},
["uga"] = {"Ugaritic"},
["ugb"] = {"Kuku-Ugbanh"},
["uge"] = {"Ughele"},
["ugh"] = {"Kubachi"},
["ugn"] = {"Ugandan Sign Language"},
["ugo"] = {"Ugong"},
["ugy"] = {"Uruguayan Sign Language"},
["uha"] = {"Uhami"},
["uhn"] = {"Damal"},
["uis"] = {"Uisai"},
["uiv"] = {"Iyive"},
["uji"] = {"Tanjijili"},
["uka"] = {"Kaburi"},
["ukg"] = {"Ukuriguma"},
["ukh"] = {"Ukhwejo"},
["uki"] = {"Kui (India)"},
["ukk"] = {"Muak Sa-aak"},
["ukl"] = {"Ukrainian Sign Language"},
["ukp"] = {"Ukpe-Bayobiri"},
["ukq"] = {"Ukwa"},
["uks"] = {"Urubú-Kaapor Sign Language", "Kaapor Sign Language"},
["uku"] = {"Ukue"},
["ukv"] = {"Kuku"},
["ukw"] = {"Ukwuani-Aboh-Ndoni"},
["uky"] = {"Kuuk-Yak"},
["ula"] = {"Fungwa"},
["ulb"] = {"Ulukwumi"},
["ulc"] = {"Ulch"},
["ule"] = {"Lule"},
["ulf"] = {"Usku", "Afra"},
["uli"] = {"Ulithian"},
["ulk"] = {"Meriam Mir"},
["ull"] = {"Ullatan"},
["ulm"] = {"Ulumanda'"},
["uln"] = {"Unserdeutsch"},
["ulu"] = {"Uma' Lung"},
["ulw"] = {"Ulwa"},
["uma"] = {"Umatilla"},
["umb"] = {"Umbundu"},
["umc"] = {"Marrucinian"},
["umd"] = {"Umbindhamu"},
["umg"] = {"Morrobalama", "Umbuygamu"},
["umi"] = {"Ukit"},
["umm"] = {"Umon"},
["umn"] = {"Makyan Naga"},
["umo"] = {"Umotína"},
["ump"] = {"Umpila"},
["umr"] = {"Umbugarla"},
["ums"] = {"Pendau"},
["umu"] = {"Munsee"},
["una"] = {"North Watut"},
["und"] = {"Undetermined"},
["une"] = {"Uneme"},
["ung"] = {"Ngarinyin"},
["uni"] = {"Uni"},
["unk"] = {"Enawené-Nawé"},
["unm"] = {"Unami"},
["unn"] = {"Kurnai"},
["unr"] = {"Mundari"},
["unu"] = {"Unubahe"},
["unx"] = {"Munda"},
["unz"] = {"Unde Kaili"},
["uon"] = {"Kulon"},
["upi"] = {"Umeda"},
["upv"] = {"Uripiv-Wala-Rano-Atchin"},
["ura"] = {"Urarina"},
["urb"] = {"Urubú-Kaapor", "Kaapor"},
["urc"] = {"Urningangg"},
["ure"] = {"Uru"},
["urf"] = {"Uradhi"},
["urg"] = {"Urigina"},
["urh"] = {"Urhobo"},
["uri"] = {"Urim"},
["urj"] = {"Uralic languages"},
["urk"] = {"Urak Lawoi'"},
["url"] = {"Urali"},
["urm"] = {"Urapmin"},
["urn"] = {"Uruangnirin"},
["uro"] = {"Ura (Papua New Guinea)"},
["urp"] = {"Uru-Pa-In"},
["urr"] = {"Lehalurup", "Löyöp"},
["urt"] = {"Urat"},
["uru"] = {"Urumi"},
["urv"] = {"Uruava"},
["urw"] = {"Sop"},
["urx"] = {"Urimo"},
["ury"] = {"Orya"},
["urz"] = {"Uru-Eu-Wau-Wau"},
["usa"] = {"Usarufa"},
["ush"] = {"Ushojo"},
["usi"] = {"Usui"},
["usk"] = {"Usaghade"},
["usp"] = {"Uspanteco"},
["uss"] = {"us-Saare"},
["usu"] = {"Uya"},
["uta"] = {"Otank"},
["ute"] = {"Ute-Southern Paiute"},
["uth"] = {"ut-Hun"},
["utp"] = {"Amba (Solomon Islands)"},
["utr"] = {"Etulo"},
["utu"] = {"Utu"},
["uum"] = {"Urum"},
["uur"] = {"Ura (Vanuatu)"},
["uuu"] = {"U"},
["uve"] = {"West Uvean", "Fagauvea"},
["uvh"] = {"Uri"},
["uvl"] = {"Lote"},
["uwa"] = {"Kuku-Uwanh"},
["uya"] = {"Doko-Uyanga"},
["uzn"] = {"Northern Uzbek"},
["uzs"] = {"Southern Uzbek"},
["vaa"] = {"Vaagri Booli"},
["vae"] = {"Vale"},
["vaf"] = {"Vafsi"},
["vag"] = {"Vagla"},
["vah"] = {"Varhadi-Nagpuri"},
["vai"] = {"Vai"},
["vaj"] = {"Sekele", "Northwestern ǃKung", "Vasekele"},
["val"] = {"Vehes"},
["vam"] = {"Vanimo"},
["van"] = {"Valman"},
["vao"] = {"Vao"},
["vap"] = {"Vaiphei"},
["var"] = {"Huarijio"},
["vas"] = {"Vasavi"},
["vau"] = {"Vanuma"},
["vav"] = {"Varli"},
["vay"] = {"Wayu"},
["vbb"] = {"Southeast Babar"},
["vbk"] = {"Southwestern Bontok"},
["vec"] = {"Venetian"},
["ved"] = {"Veddah"},
["vel"] = {"Veluws"},
["vem"] = {"Vemgo-Mabas"},
["veo"] = {"Ventureño"},
["vep"] = {"Veps"},
["ver"] = {"Mom Jango"},
["vgr"] = {"Vaghri"},
["vgt"] = {"Vlaamse Gebarentaal", "Flemish Sign Language"},
["vic"] = {"Virgin Islands Creole English"},
["vid"] = {"Vidunda"},
["vif"] = {"Vili"},
["vig"] = {"Viemo"},
["vil"] = {"Vilela"},
["vin"] = {"Vinza"},
["vis"] = {"Vishavan"},
["vit"] = {"Viti"},
["viv"] = {"Iduna"},
["vka"] = {"Kariyarra"},
["vkj"] = {"Kujarge"},
["vkk"] = {"Kaur"},
["vkl"] = {"Kulisusu"},
["vkm"] = {"Kamakan"},
["vkn"] = {"Koro Nulu"},
["vko"] = {"Kodeoha"},
["vkp"] = {"Korlai Creole Portuguese"},
["vkt"] = {"Tenggarong Kutai Malay"},
["vku"] = {"Kurrama"},
["vkz"] = {"Koro Zuba"},
["vlp"] = {"Valpei"},
["vls"] = {"Vlaams"},
["vma"] = {"Martuyhunira"},
["vmb"] = {"Barbaram"},
["vmc"] = {"Juxtlahuaca Mixtec"},
["vmd"] = {"Mudu Koraga"},
["vme"] = {"East Masela"},
["vmf"] = {"Mainfränkisch"},
["vmg"] = {"Lungalunga"},
["vmh"] = {"Maraghei"},
["vmi"] = {"Miwa"},
["vmj"] = {"Ixtayutla Mixtec"},
["vmk"] = {"Makhuwa-Shirima"},
["vml"] = {"Malgana"},
["vmm"] = {"Mitlatongo Mixtec"},
["vmp"] = {"Soyaltepec Mazatec"},
["vmq"] = {"Soyaltepec Mixtec"},
["vmr"] = {"Marenje"},
["vms"] = {"Moksela"},
["vmu"] = {"Muluridyi"},
["vmv"] = {"Valley Maidu"},
["vmw"] = {"Makhuwa"},
["vmx"] = {"Tamazola Mixtec"},
["vmy"] = {"Ayautla Mazatec"},
["vmz"] = {"Mazatlán Mazatec"},
["vnk"] = {"Vano", "Lovono"},
["vnm"] = {"Vinmavis", "Neve'ei"},
["vnp"] = {"Vunapu"},
["vor"] = {"Voro"},
["vot"] = {"Votic"},
["vra"] = {"Vera'a"},
["vro"] = {"Võro"},
["vrs"] = {"Varisi"},
["vrt"] = {"Burmbar", "Banam Bay"},
["vsi"] = {"Moldova Sign Language"},
["vsl"] = {"Venezuelan Sign Language"},
["vsv"] = {"Valencian Sign Language", "Llengua de signes valenciana"},
["vto"] = {"Vitou"},
["vum"] = {"Vumbu"},
["vun"] = {"Vunjo"},
["vut"] = {"Vute"},
["vwa"] = {"Awa (China)"},
["waa"] = {"Walla Walla"},
["wab"] = {"Wab"},
["wac"] = {"Wasco-Wishram"},
["wad"] = {"Wamesa", "Wondama"},
["wae"] = {"Walser"},
["waf"] = {"Wakoná"},
["wag"] = {"Wa'ema"},
["wah"] = {"Watubela"},
["wai"] = {"Wares"},
["waj"] = {"Waffa"},
["wak"] = {"Wakashan languages"},
["wal"] = {"Wolaytta", "Wolaitta"},
["wam"] = {"Wampanoag"},
["wan"] = {"Wan"},
["wao"] = {"Wappo"},
["wap"] = {"Wapishana"},
["waq"] = {"Wagiman"},
["war"] = {"Waray (Philippines)"},
["was"] = {"Washo"},
["wat"] = {"Kaninuwa"},
["wau"] = {"Waurá"},
["wav"] = {"Waka"},
["waw"] = {"Waiwai"},
["wax"] = {"Watam", "Marangis"},
["way"] = {"Wayana"},
["waz"] = {"Wampur"},
["wba"] = {"Warao"},
["wbb"] = {"Wabo"},
["wbe"] = {"Waritai"},
["wbf"] = {"Wara"},
["wbh"] = {"Wanda"},
["wbi"] = {"Vwanji"},
["wbj"] = {"Alagwa"},
["wbk"] = {"Waigali"},
["wbl"] = {"Wakhi"},
["wbm"] = {"Wa"},
["wbp"] = {"Warlpiri"},
["wbq"] = {"Waddar"},
["wbr"] = {"Wagdi"},
["wbs"] = {"West Bengal Sign Language"},
["wbt"] = {"Warnman"},
["wbv"] = {"Wajarri"},
["wbw"] = {"Woi"},
["wca"] = {"Yanomámi"},
["wci"] = {"Waci Gbe"},
["wdd"] = {"Wandji"},
["wdg"] = {"Wadaginam"},
["wdj"] = {"Wadjiginy"},
["wdk"] = {"Wadikali"},
["wdt"] = {"Wendat"},
["wdu"] = {"Wadjigu"},
["wdy"] = {"Wadjabangayi"},
["wea"] = {"Wewaw"},
["wec"] = {"Wè Western"},
["wed"] = {"Wedau"},
["weg"] = {"Wergaia"},
["weh"] = {"Weh"},
["wei"] = {"Kiunum"},
["wem"] = {"Weme Gbe"},
["wen"] = {"Sorbian languages"},
["weo"] = {"Wemale"},
["wep"] = {"Westphalien"},
["wer"] = {"Weri"},
["wes"] = {"Cameroon Pidgin"},
["wet"] = {"Perai"},
["weu"] = {"Rawngtu Chin"},
["wew"] = {"Wejewa"},
["wfg"] = {"Yafi", "Zorop"},
["wga"] = {"Wagaya"},
["wgb"] = {"Wagawaga"},
["wgg"] = {"Wangkangurru", "Wangganguru"},
["wgi"] = {"Wahgi"},
["wgo"] = {"Waigeo"},
["wgu"] = {"Wirangu"},
["wgy"] = {"Warrgamay"},
["wha"] = {"Sou Upaa", "Manusela"},
["whg"] = {"North Wahgi"},
["whk"] = {"Wahau Kenyah"},
["whu"] = {"Wahau Kayan"},
["wib"] = {"Southern Toussian"},
["wic"] = {"Wichita"},
["wie"] = {"Wik-Epa"},
["wif"] = {"Wik-Keyangan"},
["wig"] = {"Wik Ngathan"},
["wih"] = {"Wik-Me'anha"},
["wii"] = {"Minidien"},
["wij"] = {"Wik-Iiyanh"},
["wik"] = {"Wikalkan"},
["wil"] = {"Wilawila"},
["wim"] = {"Wik-Mungkan"},
["win"] = {"Ho-Chunk"},
["wir"] = {"Wiraféd"},
["wiu"] = {"Wiru"},
["wiv"] = {"Vitu"},
["wiy"] = {"Wiyot"},
["wja"] = {"Waja"},
["wji"] = {"Warji"},
["wka"] = {"Kw'adza"},
["wkb"] = {"Kumbaran"},
["wkd"] = {"Wakde", "Mo"},
["wkl"] = {"Kalanadi"},
["wkr"] = {"Keerray-Woorroong"},
["wku"] = {"Kunduvadi"},
["wkw"] = {"Wakawaka"},
["wky"] = {"Wangkayutyuru"},
["wla"] = {"Walio"},
["wlc"] = {"Mwali Comorian"},
["wle"] = {"Wolane"},
["wlg"] = {"Kunbarlang"},
["wlh"] = {"Welaun"},
["wli"] = {"Waioli"},
["wlk"] = {"Wailaki"},
["wll"] = {"Wali (Sudan)"},
["wlm"] = {"Middle Welsh"},
["wlo"] = {"Wolio"},
["wlr"] = {"Wailapa"},
["wls"] = {"Wallisian"},
["wlu"] = {"Wuliwuli"},
["wlv"] = {"Wichí Lhamtés Vejoz"},
["wlw"] = {"Walak"},
["wlx"] = {"Wali (Ghana)"},
["wly"] = {"Waling"},
["wma"] = {"Mawa (Nigeria)"},
["wmb"] = {"Wambaya"},
["wmc"] = {"Wamas"},
["wmd"] = {"Mamaindé"},
["wme"] = {"Wambule"},
["wmg"] = {"Western Minyag"},
["wmh"] = {"Waima'a"},
["wmi"] = {"Wamin"},
["wmm"] = {"Maiwa (Indonesia)"},
["wmn"] = {"Waamwang"},
["wmo"] = {"Wom (Papua New Guinea)"},
["wms"] = {"Wambon"},
["wmt"] = {"Walmajarri"},
["wmw"] = {"Mwani"},
["wmx"] = {"Womo"},
["wnb"] = {"Wanambre"},
["wnc"] = {"Wantoat"},
["wnd"] = {"Wandarang"},
["wne"] = {"Waneci"},
["wng"] = {"Wanggom"},
["wni"] = {"Ndzwani Comorian"},
["wnk"] = {"Wanukaka"},
["wnm"] = {"Wanggamala"},
["wnn"] = {"Wunumara"},
["wno"] = {"Wano"},
["wnp"] = {"Wanap"},
["wnu"] = {"Usan"},
["wnw"] = {"Wintu"},
["wny"] = {"Wanyi", "Waanyi"},
["woa"] = {"Kuwema", "Tyaraity"},
["wob"] = {"Wè Northern"},
["woc"] = {"Wogeo"},
["wod"] = {"Wolani"},
["woe"] = {"Woleaian"},
["wof"] = {"Gambian Wolof"},
["wog"] = {"Wogamusin"},
["woi"] = {"Kamang"},
["wok"] = {"Longto"},
["wom"] = {"Wom (Nigeria)"},
["won"] = {"Wongo"},
["woo"] = {"Manombai"},
["wor"] = {"Woria"},
["wos"] = {"Hanga Hundi"},
["wow"] = {"Wawonii"},
["woy"] = {"Weyto"},
["wpc"] = {"Maco"},
["wrb"] = {"Waluwarra", "Warluwara"},
["wrg"] = {"Warungu", "Gudjal"},
["wrh"] = {"Wiradjuri"},
["wri"] = {"Wariyangga"},
["wrk"] = {"Garrwa"},
["wrl"] = {"Warlmanpa"},
["wrm"] = {"Warumungu"},
["wrn"] = {"Warnang"},
["wro"] = {"Worrorra"},
["wrp"] = {"Waropen"},
["wrr"] = {"Wardaman"},
["wrs"] = {"Waris"},
["wru"] = {"Waru"},
["wrv"] = {"Waruna"},
["wrw"] = {"Gugu Warra"},
["wrx"] = {"Wae Rana"},
["wry"] = {"Merwari"},
["wrz"] = {"Waray (Australia)"},
["wsa"] = {"Warembori"},
["wsg"] = {"Adilabad Gondi"},
["wsi"] = {"Wusi"},
["wsk"] = {"Waskia"},
["wsr"] = {"Owenia"},
["wss"] = {"Wasa"},
["wsu"] = {"Wasu"},
["wsv"] = {"Wotapuri-Katarqalai"},
["wtf"] = {"Watiwa"},
["wth"] = {"Wathawurrung"},
["wti"] = {"Berta"},
["wtk"] = {"Watakataui"},
["wtm"] = {"Mewati"},
["wtw"] = {"Wotu"},
["wua"] = {"Wikngenchera"},
["wub"] = {"Wunambal"},
["wud"] = {"Wudu"},
["wuh"] = {"Wutunhua"},
["wul"] = {"Silimo"},
["wum"] = {"Wumbvu"},
["wun"] = {"Bungu"},
["wur"] = {"Wurrugu"},
["wut"] = {"Wutung"},
["wuu"] = {"Wu Chinese"},
["wuv"] = {"Wuvulu-Aua"},
["wux"] = {"Wulna"},
["wuy"] = {"Wauyai"},
["wwa"] = {"Waama"},
["wwb"] = {"Wakabunga"},
["wwo"] = {"Wetamut", "Dorig"},
["wwr"] = {"Warrwa"},
["www"] = {"Wawa"},
["wxa"] = {"Waxianghua"},
["wxw"] = {"Wardandi"},
["wyb"] = {"Wangaaybuwan-Ngiyambaa"},
["wyi"] = {"Woiwurrung"},
["wym"] = {"Wymysorys"},
["wyn"] = {"Wyandot"},
["wyr"] = {"Wayoró"},
["wyy"] = {"Western Fijian"},
["xaa"] = {"Andalusian Arabic"},
["xab"] = {"Sambe"},
["xac"] = {"Kachari"},
["xad"] = {"Adai"},
["xae"] = {"Aequian"},
["xag"] = {"Aghwan"},
["xai"] = {"Kaimbé"},
["xaj"] = {"Ararandewára"},
["xak"] = {"Máku"},
["xal"] = {"Kalmyk", "Oirat"},
["xam"] = {"ǀXam"},
["xan"] = {"Xamtanga"},
["xao"] = {"Khao"},
["xap"] = {"Apalachee"},
["xaq"] = {"Aquitanian"},
["xar"] = {"Karami"},
["xas"] = {"Kamas"},
["xat"] = {"Katawixi"},
["xau"] = {"Kauwera"},
["xav"] = {"Xavánte"},
["xaw"] = {"Kawaiisu"},
["xay"] = {"Kayan Mahakam"},
["xbb"] = {"Lower Burdekin"},
["xbc"] = {"Bactrian"},
["xbd"] = {"Bindal"},
["xbe"] = {"Bigambal"},
["xbg"] = {"Bunganditj"},
["xbi"] = {"Kombio"},
["xbj"] = {"Birrpayi"},
["xbm"] = {"Middle Breton"},
["xbn"] = {"Kenaboi"},
["xbo"] = {"Bolgarian"},
["xbp"] = {"Bibbulman"},
["xbr"] = {"Kambera"},
["xbw"] = {"Kambiwá"},
["xby"] = {"Batjala", "Batyala"},
["xcb"] = {"Cumbric"},
["xcc"] = {"Camunic"},
["xce"] = {"Celtiberian"},
["xcg"] = {"Cisalpine Gaulish"},
["xch"] = {"Chemakum", "Chimakum"},
["xcl"] = {"Classical Armenian"},
["xcm"] = {"Comecrudo"},
["xcn"] = {"Cotoname"},
["xco"] = {"Chorasmian"},
["xcr"] = {"Carian"},
["xct"] = {"Classical Tibetan"},
["xcu"] = {"Curonian"},
["xcv"] = {"Chuvantsy"},
["xcw"] = {"Coahuilteco"},
["xcy"] = {"Cayuse"},
["xda"] = {"Darkinyung"},
["xdc"] = {"Dacian"},
["xdk"] = {"Dharuk"},
["xdm"] = {"Edomite"},
["xdo"] = {"Kwandu"},
["xdq"] = {"Kaitag"},
["xdy"] = {"Malayic Dayak"},
["xeb"] = {"Eblan"},
["xed"] = {"Hdi"},
["xeg"] = {"ǁXegwi"},
["xel"] = {"Kelo"},
["xem"] = {"Kembayan"},
["xep"] = {"Epi-Olmec"},
["xer"] = {"Xerénte"},
["xes"] = {"Kesawai"},
["xet"] = {"Xetá"},
["xeu"] = {"Keoru-Ahia"},
["xfa"] = {"Faliscan"},
["xga"] = {"Galatian"},
["xgb"] = {"Gbin"},
["xgd"] = {"Gudang"},
["xgf"] = {"Gabrielino-Fernandeño"},
["xgg"] = {"Goreng"},
["xgi"] = {"Garingbal"},
["xgl"] = {"Galindan"},
["xgm"] = {"Dharumbal", "Guwinmal"},
["xgn"] = {"Mongolian languages"},
["xgr"] = {"Garza"},
["xgu"] = {"Unggumi"},
["xgw"] = {"Guwa"},
["xha"] = {"Harami"},
["xhc"] = {"Hunnic"},
["xhd"] = {"Hadrami"},
["xhe"] = {"Khetrani"},
["xhm"] = {"Middle Khmer (1400 to 1850 CE)"},
["xhr"] = {"Hernican"},
["xht"] = {"Hattic"},
["xhu"] = {"Hurrian"},
["xhv"] = {"Khua"},
["xib"] = {"Iberian"},
["xii"] = {"Xiri"},
["xil"] = {"Illyrian"},
["xin"] = {"Xinca"},
["xir"] = {"Xiriâna"},
["xis"] = {"Kisan"},
["xiv"] = {"Indus Valley Language"},
["xiy"] = {"Xipaya"},
["xjb"] = {"Minjungbal"},
["xjt"] = {"Jaitmatang"},
["xka"] = {"Kalkoti"},
["xkb"] = {"Northern Nago"},
["xkc"] = {"Kho'ini"},
["xkd"] = {"Mendalam Kayan"},
["xke"] = {"Kereho"},
["xkf"] = {"Khengkha"},
["xkg"] = {"Kagoro"},
["xki"] = {"Kenyan Sign Language"},
["xkj"] = {"Kajali"},
["xkk"] = {"Kachok", "Kaco'"},
["xkl"] = {"Mainstream Kenyah"},
["xkn"] = {"Kayan River Kayan"},
["xko"] = {"Kiorr"},
["xkp"] = {"Kabatei"},
["xkq"] = {"Koroni"},
["xkr"] = {"Xakriabá"},
["xks"] = {"Kumbewaha"},
["xkt"] = {"Kantosi"},
["xku"] = {"Kaamba"},
["xkv"] = {"Kgalagadi"},
["xkw"] = {"Kembra"},
["xkx"] = {"Karore"},
["xky"] = {"Uma' Lasan"},
["xkz"] = {"Kurtokha"},
["xla"] = {"Kamula"},
["xlb"] = {"Loup B"},
["xlc"] = {"Lycian"},
["xld"] = {"Lydian"},
["xle"] = {"Lemnian"},
["xlg"] = {"Ligurian (Ancient)"},
["xli"] = {"Liburnian"},
["xln"] = {"Alanic"},
["xlo"] = {"Loup A"},
["xlp"] = {"Lepontic"},
["xls"] = {"Lusitanian"},
["xlu"] = {"Cuneiform Luwian"},
["xly"] = {"Elymian"},
["xma"] = {"Mushungulu"},
["xmb"] = {"Mbonga"},
["xmc"] = {"Makhuwa-Marrevone"},
["xmd"] = {"Mbudum"},
["xme"] = {"Median"},
["xmf"] = {"Mingrelian"},
["xmg"] = {"Mengaka"},
["xmh"] = {"Kugu-Muminh"},
["xmj"] = {"Majera"},
["xmk"] = {"Ancient Macedonian"},
["xml"] = {"Malaysian Sign Language"},
["xmm"] = {"Manado Malay"},
["xmn"] = {"Manichaean Middle Persian"},
["xmo"] = {"Morerebi"},
["xmp"] = {"Kuku-Mu'inh"},
["xmq"] = {"Kuku-Mangk"},
["xmr"] = {"Meroitic"},
["xms"] = {"Moroccan Sign Language"},
["xmt"] = {"Matbat"},
["xmu"] = {"Kamu"},
["xmv"] = {"Antankarana Malagasy", "Tankarana Malagasy"},
["xmw"] = {"Tsimihety Malagasy"},
["xmx"] = {"Salawati", "Maden"},
["xmy"] = {"Mayaguduna"},
["xmz"] = {"Mori Bawah"},
["xna"] = {"Ancient North Arabian"},
["xnb"] = {"Kanakanabu"},
["xnd"] = {"Na-Dene languages"},
["xng"] = {"Middle Mongolian"},
["xnh"] = {"Kuanhua"},
["xni"] = {"Ngarigu"},
["xnj"] = {"Ngoni (Tanzania)"},
["xnk"] = {"Nganakarti"},
["xnm"] = {"Ngumbarl"},
["xnn"] = {"Northern Kankanay"},
["xno"] = {"Anglo-Norman"},
["xnq"] = {"Ngoni (Mozambique)"},
["xnr"] = {"Kangri"},
["xns"] = {"Kanashi"},
["xnt"] = {"Narragansett"},
["xnu"] = {"Nukunul"},
["xny"] = {"Nyiyaparli"},
["xnz"] = {"Kenzi", "Mattoki"},
["xoc"] = {"O'chi'chi'"},
["xod"] = {"Kokoda"},
["xog"] = {"Soga"},
["xoi"] = {"Kominimung"},
["xok"] = {"Xokleng"},
["xom"] = {"Komo (Sudan)"},
["xon"] = {"Konkomba"},
["xoo"] = {"Xukurú"},
["xop"] = {"Kopar"},
["xor"] = {"Korubo"},
["xow"] = {"Kowaki"},
["xpa"] = {"Pirriya"},
["xpb"] = {"Northeastern Tasmanian", "Pyemmairrener"},
["xpc"] = {"Pecheneg"},
["xpd"] = {"Oyster Bay Tasmanian"},
["xpe"] = {"Liberia Kpelle"},
["xpf"] = {"Southeast Tasmanian", "Nuenonne"},
["xpg"] = {"Phrygian"},
["xph"] = {"North Midlands Tasmanian", "Tyerrenoterpanner"},
["xpi"] = {"Pictish"},
["xpj"] = {"Mpalitjanh"},
["xpk"] = {"Kulina Pano"},
["xpl"] = {"Port Sorell Tasmanian"},
["xpm"] = {"Pumpokol"},
["xpn"] = {"Kapinawá"},
["xpo"] = {"Pochutec"},
["xpp"] = {"Puyo-Paekche"},
["xpq"] = {"Mohegan-Pequot"},
["xpr"] = {"Parthian"},
["xps"] = {"Pisidian"},
["xpt"] = {"Punthamara"},
["xpu"] = {"Punic"},
["xpv"] = {"Northern Tasmanian", "Tommeginne"},
["xpw"] = {"Northwestern Tasmanian", "Peerapper"},
["xpx"] = {"Southwestern Tasmanian", "Toogee"},
["xpy"] = {"Puyo"},
["xpz"] = {"Bruny Island Tasmanian"},
["xqa"] = {"Karakhanid"},
["xqt"] = {"Qatabanian"},
["xra"] = {"Krahô"},
["xrb"] = {"Eastern Karaboro"},
["xrd"] = {"Gundungurra"},
["xre"] = {"Kreye"},
["xrg"] = {"Minang"},
["xri"] = {"Krikati-Timbira"},
["xrm"] = {"Armazic"},
["xrn"] = {"Arin"},
["xrr"] = {"Raetic"},
["xrt"] = {"Aranama-Tamique"},
["xru"] = {"Marriammu"},
["xrw"] = {"Karawa"},
["xsa"] = {"Sabaean"},
["xsb"] = {"Sambal"},
["xsc"] = {"Scythian"},
["xsd"] = {"Sidetic"},
["xse"] = {"Sempan"},
["xsh"] = {"Shamang"},
["xsi"] = {"Sio"},
["xsj"] = {"Subi"},
["xsl"] = {"South Slavey"},
["xsm"] = {"Kasem"},
["xsn"] = {"Sanga (Nigeria)"},
["xso"] = {"Solano"},
["xsp"] = {"Silopi"},
["xsq"] = {"Makhuwa-Saka"},
["xsr"] = {"Sherpa"},
["xss"] = {"Assan"},
["xsu"] = {"Sanumá"},
["xsv"] = {"Sudovian"},
["xsy"] = {"Saisiyat"},
["xta"] = {"Alcozauca Mixtec"},
["xtb"] = {"Chazumba Mixtec"},
["xtc"] = {"Katcha-Kadugli-Miri"},
["xtd"] = {"Diuxi-Tilantongo Mixtec"},
["xte"] = {"Ketengban"},
["xtg"] = {"Transalpine Gaulish"},
["xth"] = {"Yitha Yitha"},
["xti"] = {"Sinicahua Mixtec"},
["xtj"] = {"San Juan Teita Mixtec"},
["xtl"] = {"Tijaltepec Mixtec"},
["xtm"] = {"Magdalena Peñasco Mixtec"},
["xtn"] = {"Northern Tlaxiaco Mixtec"},
["xto"] = {"Tokharian A"},
["xtp"] = {"San Miguel Piedras Mixtec"},
["xtq"] = {"Tumshuqese"},
["xtr"] = {"Early Tripuri"},
["xts"] = {"Sindihui Mixtec"},
["xtt"] = {"Tacahua Mixtec"},
["xtu"] = {"Cuyamecalco Mixtec"},
["xtv"] = {"Thawa"},
["xtw"] = {"Tawandê"},
["xty"] = {"Yoloxochitl Mixtec"},
["xua"] = {"Alu Kurumba"},
["xub"] = {"Betta Kurumba"},
["xud"] = {"Umiida"},
["xug"] = {"Kunigami"},
["xuj"] = {"Jennu Kurumba"},
["xul"] = {"Ngunawal", "Nunukul"},
["xum"] = {"Umbrian"},
["xun"] = {"Unggaranggu"},
["xuo"] = {"Kuo"},
["xup"] = {"Upper Umpqua"},
["xur"] = {"Urartian"},
["xut"] = {"Kuthant"},
["xuu"] = {"Kxoe", "Khwedam"},
["xve"] = {"Venetic"},
["xvi"] = {"Kamviri"},
["xvn"] = {"Vandalic"},
["xvo"] = {"Volscian"},
["xvs"] = {"Vestinian"},
["xwa"] = {"Kwaza"},
["xwc"] = {"Woccon"},
["xwd"] = {"Wadi Wadi"},
["xwe"] = {"Xwela Gbe"},
["xwg"] = {"Kwegu"},
["xwj"] = {"Wajuk"},
["xwk"] = {"Wangkumara"},
["xwl"] = {"Western Xwla Gbe"},
["xwo"] = {"Written Oirat"},
["xwr"] = {"Kwerba Mamberamo"},
["xwt"] = {"Wotjobaluk"},
["xww"] = {"Wemba Wemba"},
["xxb"] = {"Boro (Ghana)"},
["xxk"] = {"Ke'o"},
["xxm"] = {"Minkin"},
["xxr"] = {"Koropó"},
["xxt"] = {"Tambora"},
["xya"] = {"Yaygir"},
["xyb"] = {"Yandjibara"},
["xyj"] = {"Mayi-Yapi"},
["xyk"] = {"Mayi-Kulan"},
["xyl"] = {"Yalakalore"},
["xyt"] = {"Mayi-Thakurti"},
["xyy"] = {"Yorta Yorta"},
["xzh"] = {"Zhang-Zhung"},
["xzm"] = {"Zemgalian"},
["xzp"] = {"Ancient Zapotec"},
["yaa"] = {"Yaminahua"},
["yab"] = {"Yuhup"},
["yac"] = {"Pass Valley Yali"},
["yad"] = {"Yagua"},
["yae"] = {"Pumé"},
["yaf"] = {"Yaka (Democratic Republic of Congo)"},
["yag"] = {"Yámana"},
["yah"] = {"Yazgulyam"},
["yai"] = {"Yagnobi"},
["yaj"] = {"Banda-Yangere"},
["yak"] = {"Yakama"},
["yal"] = {"Yalunka"},
["yam"] = {"Yamba"},
["yan"] = {"Mayangna"},
["yao"] = {"Yao"},
["yap"] = {"Yapese"},
["yaq"] = {"Yaqui"},
["yar"] = {"Yabarana"},
["yas"] = {"Nugunu (Cameroon)"},
["yat"] = {"Yambeta"},
["yau"] = {"Yuwana"},
["yav"] = {"Yangben"},
["yaw"] = {"Yawalapití"},
["yax"] = {"Yauma"},
["yay"] = {"Agwagwune"},
["yaz"] = {"Lokaa"},
["yba"] = {"Yala"},
["ybb"] = {"Yemba"},
["ybe"] = {"West Yugur"},
["ybh"] = {"Yakha"},
["ybi"] = {"Yamphu"},
["ybj"] = {"Hasha"},
["ybk"] = {"Bokha"},
["ybl"] = {"Yukuben"},
["ybm"] = {"Yaben"},
["ybn"] = {"Yabaâna"},
["ybo"] = {"Yabong"},
["ybx"] = {"Yawiyo"},
["yby"] = {"Yaweyuha"},
["ych"] = {"Chesu"},
["ycl"] = {"Lolopo"},
["ycn"] = {"Yucuna"},
["ycp"] = {"Chepya"},
["yda"] = {"Yanda"},
["ydd"] = {"Eastern Yiddish"},
["yde"] = {"Yangum Dey"},
["ydg"] = {"Yidgha"},
["ydk"] = {"Yoidik"},
["yea"] = {"Ravula"},
["yec"] = {"Yeniche"},
["yee"] = {"Yimas"},
["yei"] = {"Yeni"},
["yej"] = {"Yevanic"},
["yel"] = {"Yela"},
["yer"] = {"Tarok"},
["yes"] = {"Nyankpa"},
["yet"] = {"Yetfa"},
["yeu"] = {"Yerukula"},
["yev"] = {"Yapunda"},
["yey"] = {"Yeyi"},
["yga"] = {"Malyangapa"},
["ygi"] = {"Yiningayi"},
["ygl"] = {"Yangum Gel"},
["ygm"] = {"Yagomi"},
["ygp"] = {"Gepo"},
["ygr"] = {"Yagaria"},
["ygs"] = {"Yolŋu Sign Language"},
["ygu"] = {"Yugul"},
["ygw"] = {"Yagwoia"},
["yha"] = {"Baha Buyang"},
["yhd"] = {"Judeo-Iraqi Arabic"},
["yhl"] = {"Hlepho Phowa"},
["yhs"] = {"Yan-nhaŋu Sign Language"},
["yia"] = {"Yinggarda"},
["yif"] = {"Ache"},
["yig"] = {"Wusa Nasu"},
["yih"] = {"Western Yiddish"},
["yii"] = {"Yidiny"},
["yij"] = {"Yindjibarndi"},
["yik"] = {"Dongshanba Lalo"},
["yil"] = {"Yindjilandji"},
["yim"] = {"Yimchungru Naga"},
["yin"] = {"Riang Lai", "Yinchia"},
["yip"] = {"Pholo"},
["yiq"] = {"Miqie"},
["yir"] = {"North Awyu"},
["yis"] = {"Yis"},
["yit"] = {"Eastern Lalu"},
["yiu"] = {"Awu"},
["yiv"] = {"Northern Nisu"},
["yix"] = {"Axi Yi"},
["yiz"] = {"Azhe"},
["yka"] = {"Yakan"},
["ykg"] = {"Northern Yukaghir"},
["yki"] = {"Yoke"},
["ykk"] = {"Yakaikeke"},
["ykl"] = {"Khlula"},
["ykm"] = {"Kap"},
["ykn"] = {"Kua-nsi"},
["yko"] = {"Yasa"},
["ykr"] = {"Yekora"},
["ykt"] = {"Kathu"},
["yku"] = {"Kuamasi"},
["yky"] = {"Yakoma"},
["yla"] = {"Yaul"},
["ylb"] = {"Yaleba"},
["yle"] = {"Yele"},
["ylg"] = {"Yelogu"},
["yli"] = {"Angguruk Yali"},
["yll"] = {"Yil"},
["ylm"] = {"Limi"},
["yln"] = {"Langnian Buyang"},
["ylo"] = {"Naluo Yi"},
["ylr"] = {"Yalarnnga"},
["ylu"] = {"Aribwaung"},
["yly"] = {"Nyâlayu", "Nyelâyu"},
["ymb"] = {"Yambes"},
["ymc"] = {"Southern Muji"},
["ymd"] = {"Muda"},
["yme"] = {"Yameo"},
["ymg"] = {"Yamongeri"},
["ymh"] = {"Mili"},
["ymi"] = {"Moji"},
["ymk"] = {"Makwe"},
["yml"] = {"Iamalele"},
["ymm"] = {"Maay"},
["ymn"] = {"Yamna", "Sunum"},
["ymo"] = {"Yangum Mon"},
["ymp"] = {"Yamap"},
["ymq"] = {"Qila Muji"},
["ymr"] = {"Malasar"},
["yms"] = {"Mysian"},
["ymx"] = {"Northern Muji"},
["ymz"] = {"Muzi"},
["yna"] = {"Aluo"},
["ynd"] = {"Yandruwandha"},
["yne"] = {"Lang'e"},
["yng"] = {"Yango"},
["ynk"] = {"Naukan Yupik"},
["ynl"] = {"Yangulam"},
["ynn"] = {"Yana"},
["yno"] = {"Yong"},
["ynq"] = {"Yendang"},
["yns"] = {"Yansi"},
["ynu"] = {"Yahuna"},
["yob"] = {"Yoba"},
["yog"] = {"Yogad"},
["yoi"] = {"Yonaguni"},
["yok"] = {"Yokuts"},
["yol"] = {"Yola"},
["yom"] = {"Yombe"},
["yon"] = {"Yongkom"},
["yot"] = {"Yotti"},
["yox"] = {"Yoron"},
["yoy"] = {"Yoy"},
["ypa"] = {"Phala"},
["ypb"] = {"Labo Phowa"},
["ypg"] = {"Phola"},
["yph"] = {"Phupha"},
["ypk"] = {"Yupik languages"},
["ypm"] = {"Phuma"},
["ypn"] = {"Ani Phowa"},
["ypo"] = {"Alo Phola"},
["ypp"] = {"Phupa"},
["ypz"] = {"Phuza"},
["yra"] = {"Yerakai"},
["yrb"] = {"Yareba"},
["yre"] = {"Yaouré"},
["yrk"] = {"Nenets"},
["yrl"] = {"Nhengatu"},
["yrm"] = {"Yirrk-Mel"},
["yrn"] = {"Yerong"},
["yro"] = {"Yaroamë"},
["yrs"] = {"Yarsun"},
["yrw"] = {"Yarawata"},
["yry"] = {"Yarluyandi"},
["ysc"] = {"Yassic"},
["ysd"] = {"Samatao"},
["ysg"] = {"Sonaga"},
["ysl"] = {"Yugoslavian Sign Language"},
["ysm"] = {"Myanmar Sign Language"},
["ysn"] = {"Sani"},
["yso"] = {"Nisi (China)"},
["ysp"] = {"Southern Lolopo"},
["ysr"] = {"Sirenik Yupik"},
["yss"] = {"Yessan-Mayo"},
["ysy"] = {"Sanie"},
["yta"] = {"Talu"},
["ytl"] = {"Tanglang"},
["ytp"] = {"Thopho"},
["ytw"] = {"Yout Wam"},
["yty"] = {"Yatay"},
["yua"] = {"Yucateco", "Yucatec Maya"},
["yub"] = {"Yugambal"},
["yuc"] = {"Yuchi"},
["yud"] = {"Judeo-Tripolitanian Arabic"},
["yue"] = {"Yue Chinese", "Cantonese"},
["yuf"] = {"Havasupai-Walapai-Yavapai"},
["yug"] = {"Yug"},
["yui"] = {"Yurutí"},
["yuj"] = {"Karkar-Yuri"},
["yuk"] = {"Yuki"},
["yul"] = {"Yulu"},
["yum"] = {"Quechan"},
["yun"] = {"Bena (Nigeria)"},
["yup"] = {"Yukpa"},
["yuq"] = {"Yuqui"},
["yur"] = {"Yurok"},
["yut"] = {"Yopno"},
["yuw"] = {"Yau (Morobe Province)"},
["yux"] = {"Southern Yukaghir"},
["yuy"] = {"East Yugur"},
["yuz"] = {"Yuracare"},
["yva"] = {"Yawa"},
["yvt"] = {"Yavitero"},
["ywa"] = {"Kalou"},
["ywg"] = {"Yinhawangka"},
["ywl"] = {"Western Lalu"},
["ywn"] = {"Yawanawa"},
["ywq"] = {"Wuding-Luquan Yi"},
["ywr"] = {"Yawuru"},
["ywt"] = {"Xishanba Lalo", "Central Lalo"},
["ywu"] = {"Wumeng Nasu"},
["yww"] = {"Yawarawarga"},
["yxa"] = {"Mayawali"},
["yxg"] = {"Yagara"},
["yxl"] = {"Yardliyawarra"},
["yxm"] = {"Yinwum"},
["yxu"] = {"Yuyu"},
["yxy"] = {"Yabula Yabula"},
["yyr"] = {"Yir Yoront"},
["yyu"] = {"Yau (Sandaun Province)"},
["yyz"] = {"Ayizi"},
["yzg"] = {"E'ma Buyang"},
["yzk"] = {"Zokhuo"},
["zaa"] = {"Sierra de Juárez Zapotec"},
["zab"] = {"Western Tlacolula Valley Zapotec", "San Juan Guelavía Zapotec"},
["zac"] = {"Ocotlán Zapotec"},
["zad"] = {"Cajonos Zapotec"},
["zae"] = {"Yareni Zapotec"},
["zaf"] = {"Ayoquesco Zapotec"},
["zag"] = {"Zaghawa"},
["zah"] = {"Zangwal"},
["zai"] = {"Isthmus Zapotec"},
["zaj"] = {"Zaramo"},
["zak"] = {"Zanaki"},
["zal"] = {"Zauzou"},
["zam"] = {"Miahuatlán Zapotec"},
["zao"] = {"Ozolotepec Zapotec"},
["zap"] = {"Zapotec"},
["zaq"] = {"Aloápam Zapotec"},
["zar"] = {"Rincón Zapotec"},
["zas"] = {"Santo Domingo Albarradas Zapotec"},
["zat"] = {"Tabaa Zapotec"},
["zau"] = {"Zangskari"},
["zav"] = {"Yatzachi Zapotec"},
["zaw"] = {"Mitla Zapotec"},
["zax"] = {"Xadani Zapotec"},
["zay"] = {"Zayse-Zergulla", "Zaysete"},
["zaz"] = {"Zari"},
["zba"] = {"Balaibalan"},
["zbc"] = {"Central Berawan"},
["zbe"] = {"East Berawan"},
["zbl"] = {"Blissymbols", "Bliss", "Blissymbolics"},
["zbt"] = {"Batui"},
["zbu"] = {"Bu (Bauchi State)"},
["zbw"] = {"West Berawan"},
["zca"] = {"Coatecas Altas Zapotec"},
["zcd"] = {"Las Delicias Zapotec"},
["zch"] = {"Central Hongshuihe Zhuang"},
["zdj"] = {"Ngazidja Comorian"},
["zea"] = {"Zeeuws"},
["zeg"] = {"Zenag"},
["zeh"] = {"Eastern Hongshuihe Zhuang"},
["zen"] = {"Zenaga"},
["zga"] = {"Kinga"},
["zgb"] = {"Guibei Zhuang"},
["zgh"] = {"Standard Moroccan Tamazight"},
["zgm"] = {"Minz Zhuang"},
["zgn"] = {"Guibian Zhuang"},
["zgr"] = {"Magori"},
["zhb"] = {"Zhaba"},
["zhd"] = {"Dai Zhuang"},
["zhi"] = {"Zhire"},
["zhn"] = {"Nong Zhuang"},
["zhw"] = {"Zhoa"},
["zhx"] = {"Chinese (family)"},
["zia"] = {"Zia"},
["zib"] = {"Zimbabwe Sign Language"},
["zik"] = {"Zimakani"},
["zil"] = {"Zialo"},
["zim"] = {"Mesme"},
["zin"] = {"Zinza"},
["ziw"] = {"Zigula"},
["ziz"] = {"Zizilivakan"},
["zka"] = {"Kaimbulawa"},
["zkb"] = {"Koibal"},
["zkd"] = {"Kadu"},
["zkg"] = {"Koguryo"},
["zkh"] = {"Khorezmian"},
["zkk"] = {"Karankawa"},
["zkn"] = {"Kanan"},
["zko"] = {"Kott"},
["zkp"] = {"São Paulo Kaingáng"},
["zkr"] = {"Zakhring"},
["zkt"] = {"Kitan"},
["zku"] = {"Kaurna"},
["zkv"] = {"Krevinian"},
["zkz"] = {"Khazar"},
["zla"] = {"Zula"},
["zle"] = {"East Slavic languages"},
["zlj"] = {"Liujiang Zhuang"},
["zlm"] = {"Malay (individual language)"},
["zln"] = {"Lianshan Zhuang"},
["zlq"] = {"Liuqian Zhuang"},
["zls"] = {"South Slavic languages"},
["zlw"] = {"West Slavic languages"},
["zma"] = {"Manda (Australia)"},
["zmb"] = {"Zimba"},
["zmc"] = {"Margany"},
["zmd"] = {"Maridan"},
["zme"] = {"Mangerr"},
["zmf"] = {"Mfinu"},
["zmg"] = {"Marti Ke"},
["zmh"] = {"Makolkol"},
["zmi"] = {"Negeri Sembilan Malay"},
["zmj"] = {"Maridjabin"},
["zmk"] = {"Mandandanyi"},
["zml"] = {"Matngala"},
["zmm"] = {"Marimanindji", "Marramaninyshi"},
["zmn"] = {"Mbangwe"},
["zmo"] = {"Molo"},
["zmp"] = {"Mpuono"},
["zmq"] = {"Mituku"},
["zmr"] = {"Maranunggu"},
["zms"] = {"Mbesa"},
["zmt"] = {"Maringarr"},
["zmu"] = {"Muruwari"},
["zmv"] = {"Mbariman-Gudhinma"},
["zmw"] = {"Mbo (Democratic Republic of Congo)"},
["zmx"] = {"Bomitaba"},
["zmy"] = {"Mariyedi"},
["zmz"] = {"Mbandja"},
["zna"] = {"Zan Gula"},
["znd"] = {"Zande languages"},
["zne"] = {"Zande (individual language)"},
["zng"] = {"Mang"},
["znk"] = {"Manangkari"},
["zns"] = {"Mangas"},
["zoc"] = {"Copainalá Zoque"},
["zoh"] = {"Chimalapa Zoque"},
["zom"] = {"Zou"},
["zoo"] = {"Asunción Mixtepec Zapotec"},
["zoq"] = {"Tabasco Zoque"},
["zor"] = {"Rayón Zoque"},
["zos"] = {"Francisco León Zoque"},
["zpa"] = {"Lachiguiri Zapotec"},
["zpb"] = {"Yautepec Zapotec"},
["zpc"] = {"Choapan Zapotec"},
["zpd"] = {"Southeastern Ixtlán Zapotec"},
["zpe"] = {"Petapa Zapotec"},
["zpf"] = {"San Pedro Quiatoni Zapotec"},
["zpg"] = {"Guevea De Humboldt Zapotec"},
["zph"] = {"Totomachapan Zapotec"},
["zpi"] = {"Santa María Quiegolani Zapotec"},
["zpj"] = {"Quiavicuzas Zapotec"},
["zpk"] = {"Tlacolulita Zapotec"},
["zpl"] = {"Lachixío Zapotec"},
["zpm"] = {"Mixtepec Zapotec"},
["zpn"] = {"Santa Inés Yatzechi Zapotec"},
["zpo"] = {"Amatlán Zapotec"},
["zpp"] = {"El Alto Zapotec"},
["zpq"] = {"Zoogocho Zapotec"},
["zpr"] = {"Santiago Xanica Zapotec"},
["zps"] = {"Coatlán Zapotec"},
["zpt"] = {"San Vicente Coatlán Zapotec"},
["zpu"] = {"Yalálag Zapotec"},
["zpv"] = {"Chichicapan Zapotec"},
["zpw"] = {"Zaniza Zapotec"},
["zpx"] = {"San Baltazar Loxicha Zapotec"},
["zpy"] = {"Mazaltepec Zapotec"},
["zpz"] = {"Texmelucan Zapotec"},
["zqe"] = {"Qiubei Zhuang"},
["zra"] = {"Kara (Korea)"},
["zrg"] = {"Mirgan"},
["zrn"] = {"Zerenkel"},
["zro"] = {"Záparo"},
["zrp"] = {"Zarphatic"},
["zrs"] = {"Mairasi"},
["zsa"] = {"Sarasira"},
["zsk"] = {"Kaskean"},
["zsl"] = {"Zambian Sign Language"},
["zsm"] = {"Standard Malay"},
["zsr"] = {"Southern Rincon Zapotec"},
["zsu"] = {"Sukurum"},
["zte"] = {"Elotepec Zapotec"},
["ztg"] = {"Xanaguía Zapotec"},
["ztl"] = {"Lapaguía-Guivini Zapotec"},
["ztm"] = {"San Agustín Mixtepec Zapotec"},
["ztn"] = {"Santa Catarina Albarradas Zapotec"},
["ztp"] = {"Loxicha Zapotec"},
["ztq"] = {"Quioquitani-Quierí Zapotec"},
["zts"] = {"Tilquiapan Zapotec"},
["ztt"] = {"Tejalapan Zapotec"},
["ztu"] = {"Güilá Zapotec"},
["ztx"] = {"Zaachila Zapotec"},
["zty"] = {"Yatee Zapotec"},
["zua"] = {"Zeem"},
["zuh"] = {"Tokano"},
["zum"] = {"Kumzari"},
["zun"] = {"Zuni"},
["zuy"] = {"Zumaya"},
["zwa"] = {"Zay"},
["zxx"] = {"No linguistic content", "Not applicable"},
["zyb"] = {"Yongbei Zhuang"},
["zyg"] = {"Yang Zhuang"},
["zyj"] = {"Youjiang Zhuang"},
["zyn"] = {"Yongnan Zhuang"},
["zyp"] = {"Zyphe Chin"},
["zza"] = {"Zaza", "Dimili", "Dimli (macrolanguage)", "Kirdki", "Kirmanjki (macrolanguage)", "Zazaki"},
["zzj"] = {"Zuojiang Zhuang"}
}
local deprecated = {
["in"] = {"Indonesian"},
["iw"] = {"Hebrew"},
["ji"] = {"Yiddish"},
["jw"] = {"Javanese"},
["mo"] = {"Moldavian", "Moldovan"},
["aam"] = {"Aramanik"},
["adp"] = {"Adap"},
["agp"] = {"Paranan"},
["ais"] = {"Nataoran Amis"},
["ajt"] = {"Judeo-Tunisian Arabic"},
["aoh"] = {"Arma"},
["asd"] = {"Asas"},
["aue"] = {"ǂKxʼauǁʼein"},
["ayx"] = {"Ayi (China)"},
["ayy"] = {"Tayabas Ayta"},
["baz"] = {"Tunen"},
["bbz"] = {"Babalia Creole Arabic"},
["bgm"] = {"Baga Mboteni"},
["bhk"] = {"Albay Bicolano"},
["bic"] = {"Bikaru"},
["bij"] = {"Vaghat-Ya-Bijim-Legeri"},
["bjd"] = {"Bandjigali"},
["bjq"] = {"Southern Betsimisaraka Malagasy"},
["bkb"] = {"Finallig"},
["blg"] = {"Balau"},
["bmy"] = {"Bemba (Democratic Republic of Congo)"},
["bpb"] = {"Barbacoas"},
["btb"] = {"Beti (Cameroon)"},
["btl"] = {"Bhatola"},
["bxx"] = {"Borna (Democratic Republic of Congo)"},
["byy"] = {"Buya"},
["cbe"] = {"Chipiajes"},
["cbh"] = {"Cagua"},
["cca"] = {"Cauca"},
["ccq"] = {"Chaungtha"},
["cdg"] = {"Chamari"},
["cjr"] = {"Chorotega"},
["cka"] = {"Khumi Awa Chin"},
["cmk"] = {"Chimakum"},
["coy"] = {"Coyaima"},
["cqu"] = {"Chilean Quechua"},
["cug"] = {"Chungmboko", "Cung"},
["cum"] = {"Cumeral"},
["daf"] = {"Dan"},
["dap"] = {"Nisi (India)"},
["dgu"] = {"Degaru"},
["dha"] = {"Dhanwar (India)"},
["dit"] = {"Dirari"},
["djl"] = {"Djiwarli"},
["dkl"] = {"Kolum So Dogon"},
["drh"] = {"Darkhat"},
["drr"] = {"Dororo"},
["drw"] = {"Darwazi"},
["dud"] = {"Hun-Saare"},
["duj"] = {"Dhuwal"},
["dwl"] = {"Walo Kumbe Dogon"},
["dzd"] = {"Daza"},
["ekc"] = {"Eastern Karnic"},
["elp"] = {"Elpaputih"},
["emo"] = {"Emok"},
["gav"] = {"Gabutamon"},
["gbc"] = {"Garawa"},
["gfx"] = {"Mangetti Dune ǃXung"},
["ggn"] = {"Eastern Gurung"},
["ggo"] = {"Southern Gondi"},
["ggr"] = {"Aghu Tharnggalu"},
["gio"] = {"Gelao"},
["gji"] = {"Geji"},
["gli"] = {"Guliguli"},
["gti"] = {"Gbati-ri"},
["guv"] = {"Gey"},
["hrr"] = {"Horuru"},
["iap"] = {"Iapama"},
["ibi"] = {"Ibilo"},
["ill"] = {"Iranun"},
["ilw"] = {"Talur"},
["ime"] = {"Imeraguen"},
["izi"] = {"Izi-Ezaa-Ikwo-Mgbo"},
["jar"] = {"Jarawa (Nigeria)"},
["jeg"] = {"Jeng"},
["kbf"] = {"Kakauhua"},
["kdv"] = {"Kado"},
["kgc"] = {"Kasseng"},
["kgd"] = {"Kataang"},
["kgh"] = {"Upper Tanudan Kalinga"},
["kjf"] = {"Khalaj [Indo-Iranian]"},
["koj"] = {"Sara Dunjo"},
["kox"] = {"Coxima"},
["kpp"] = {"Paku Karen"},
["krm"] = {"Krim"},
["ktr"] = {"Kota Marudu Tinagas"},
["kvs"] = {"Kunggara"},
["kwq"] = {"Kwak"},
["kxe"] = {"Kakihum"},
["kxl"] = {"Nepali Kurux"},
["kxu"] = {"Kui (India)"},
["kzh"] = {"Kenuzi-Dongola"},
["kzj"] = {"Coastal Kadazan"},
["kzt"] = {"Tambunan Dusun"},
["lak"] = {"Laka (Nigeria)"},
["lba"] = {"Lui"},
["leg"] = {"Lengua"},
["lii"] = {"Lingkhim"},
["llo"] = {"Khlor"},
["lmm"] = {"Lamam"},
["lmz"] = {"Lumbee"},
["lno"] = {"Lango (South Sudan)"},
["lsg"] = {"Lyons Sign Language"},
["meg"] = {"Mea"},
["mgx"] = {"Omati"},
["mhh"] = {"Maskoy Pidgin"},
["mja"] = {"Mahei"},
["mld"] = {"Malakhel"},
["mnt"] = {"Maykulan"},
["mof"] = {"Mohegan-Montauk-Narragansett"},
["mst"] = {"Cataelano Mandaya"},
["mvm"] = {"Muya"},
["mwd"] = {"Mudbura"},
["mwj"] = {"Maligo"},
["mwx"] = {"Mediak"},
["mwy"] = {"Mosiro"},
["myd"] = {"Maramba"},
["myi"] = {"Mina (India)"},
["myq"] = {"Forest Maninka"},
["myt"] = {"Sangab Mandaya"},
["nad"] = {"Nijadali"},
["nbf"] = {"Naxi"},
["nbx"] = {"Ngura"},
["ncp"] = {"Ndaktup"},
["ngo"] = {"Ngoni"},
["nln"] = {"Durango Nahuatl"},
["nlr"] = {"Ngarla"},
["nns"] = {"Ningye"},
["nnx"] = {"Ngong"},
["noo"] = {"Nootka"},
["nts"] = {"Natagaimas"},
["nxu"] = {"Narau"},
["ome"] = {"Omejes"},
["oun"] = {"ǃOǃung"},
["pat"] = {"Papitalai"},
["pbz"] = {"Palu"},
["pcr"] = {"Panang"},
["pgy"] = {"Pongyong"},
["pii"] = {"Pini"},
["plp"] = {"Palpa"},
["pmc"] = {"Palumata"},
["pmu"] = {"Mirpur Panjabi"},
["pod"] = {"Ponares"},
["ppa"] = {"Pao"},
["ppr"] = {"Piru"},
["prb"] = {"Lua'"},
["pry"] = {"Pray 3"},
["puk"] = {"Pu Ko"},
["puz"] = {"Purum Naga"},
["rie"] = {"Rien"},
["rmr"] = {"Caló"},
["rna"] = {"Runa"},
["rsi"] = {"Rennellese Sign Language"},
["sap"] = {"Sanapaná"},
["sca"] = {"Sansu"},
["sdm"] = {"Semandang"},
["sgl"] = {"Sanglechi-Ishkashimi"},
["sgo"] = {"Songa"},
["skk"] = {"Sok"},
["smd"] = {"Sama"},
["snb"] = {"Sebuyau"},
["snh"] = {"Shinabo"},
["sul"] = {"Surigaonon"},
["sum"] = {"Sumo-Mayangna"},
["svr"] = {"Savara"},
["tbb"] = {"Tapeba"},
["tdu"] = {"Tempasuk Dusun"},
["tgg"] = {"Tangga"},
["thc"] = {"Tai Hang Tong"},
["thw"] = {"Thudam"},
["thx"] = {"The"},
["tid"] = {"Tidong"},
["tie"] = {"Tingal"},
["tkk"] = {"Takpa"},
["tlw"] = {"South Wemale"},
["tmp"] = {"Tai Mène"},
["tne"] = {"Tinoc Kallahan"},
["tnf"] = {"Tangshewi"},
["toe"] = {"Tomedes"},
["tsf"] = {"Southwestern Tamang"},
["unp"] = {"Worora"},
["uok"] = {"Uokha"},
["uun"] = {"Kulon-Pazeh"},
["vki"] = {"Ija-Zuba"},
["wgw"] = {"Wagawaga"},
["wit"] = {"Wintu"},
["wiw"] = {"Wirangu"},
["wra"] = {"Warapu"},
["wrd"] = {"Warduji"},
["wya"] = {"Wyandot"},
["xba"] = {"Kamba (Brazil)"},
["xbx"] = {"Kabixí"},
["xia"] = {"Xiandao"},
["xip"] = {"Xipináwa"},
["xkh"] = {"Karahawyana"},
["xrq"] = {"Karranga"},
["xtz"] = {"Tasmanian"},
["ybd"] = {"Yangbye"},
["yds"] = {"Yiddish Sign Language"},
["yen"] = {"Yendang"},
["yiy"] = {"Yir Yoront"},
["yma"] = {"Yamphe"},
["ymt"] = {"Mator-Taygi-Karagas"},
["ynh"] = {"Yangho"},
["yos"] = {"Yos"},
["yri"] = {"Yarí"},
["yuu"] = {"Yugh"},
["zir"] = {"Ziriya"}
}
return {
active = active,
deprecated = deprecated,
}
6r8ul0mubpciyn4vrrwso563e98tzix
Module:Language/data/iana languages/doc
828
1868
15642
2022-08-08T22:59:37Z
Kambai Akau
15
Created page with "{{High-use}} This module contains data taken directly from a local copy of an IANA [https://www.iana.org/assignments/language-subtag-registry/language-subtag-registry language-subtag-registry file]. The table in this module was created using the awb script at [[User:Trappist_the_monk/IANA_subtag_registry_file_update|IANA subtag registry file update]] or by [[Module:Language/data/iana languages/make]]. There should be no need to hand edit this table, so please do not d..."
wikitext
text/x-wiki
{{High-use}}
This module contains data taken directly from a local copy of an IANA [https://www.iana.org/assignments/language-subtag-registry/language-subtag-registry language-subtag-registry file].
The table in this module was created using the awb script at [[User:Trappist_the_monk/IANA_subtag_registry_file_update|IANA subtag registry file update]] or by [[Module:Language/data/iana languages/make]]. There should be no need to hand edit this table, so please do not do so except to reflect changes that are actually present in the source (in which case it is probably better to re-run one of the tools on a new data file).
The data in this table come from records that are not 'Deprecated', do not have a 'Preferred-Value', and are not 'Private use'.
<includeonly>{{#ifeq:{{SUBPAGENAME}}|sandbox | |
<!-- Categories below this line, please; interwikis at Wikidata -->
[[Category:Language-related modules]]
}}</includeonly>
4n7epawfijhtzhng7vvyhyxyua9fiz1
Module:Language/data/iana scripts
828
1869
15643
2022-08-08T23:02:18Z
Kambai Akau
15
Created page with "-- File-Date: 2022-03-02 return { ["Adlm"] = {"Adlam"}, ["Afak"] = {"Afaka"}, ["Aghb"] = {"Caucasian Albanian"}, ["Ahom"] = {"Ahom", "Tai Ahom"}, ["Arab"] = {"Arabic"}, ["Aran"] = {"Arabic (Nastaliq variant)"}, ["Armi"] = {"Imperial Aramaic"}, ["Armn"] = {"Armenian"}, ["Avst"] = {"Avestan"}, ["Bali"] = {"Balinese"}, ["Bamu"] = {"Bamum"}, ["Bass"] = {"Bassa Vah"}, ["Batk"] = {"Batak"}, ["Beng"] = {"Bengali", "Bangla"}, ["Bhks"] = {"Bhaiksuki"}, ["Blis"] =..."
Scribunto
text/plain
-- File-Date: 2022-03-02
return {
["Adlm"] = {"Adlam"},
["Afak"] = {"Afaka"},
["Aghb"] = {"Caucasian Albanian"},
["Ahom"] = {"Ahom", "Tai Ahom"},
["Arab"] = {"Arabic"},
["Aran"] = {"Arabic (Nastaliq variant)"},
["Armi"] = {"Imperial Aramaic"},
["Armn"] = {"Armenian"},
["Avst"] = {"Avestan"},
["Bali"] = {"Balinese"},
["Bamu"] = {"Bamum"},
["Bass"] = {"Bassa Vah"},
["Batk"] = {"Batak"},
["Beng"] = {"Bengali", "Bangla"},
["Bhks"] = {"Bhaiksuki"},
["Blis"] = {"Blissymbols"},
["Bopo"] = {"Bopomofo"},
["Brah"] = {"Brahmi"},
["Brai"] = {"Braille"},
["Bugi"] = {"Buginese"},
["Buhd"] = {"Buhid"},
["Cakm"] = {"Chakma"},
["Cans"] = {"Unified Canadian Aboriginal Syllabics"},
["Cari"] = {"Carian"},
["Cham"] = {"Cham"},
["Cher"] = {"Cherokee"},
["Chrs"] = {"Chorasmian"},
["Cirt"] = {"Cirth"},
["Copt"] = {"Coptic"},
["Cpmn"] = {"Cypro-Minoan"},
["Cprt"] = {"Cypriot syllabary"},
["Cyrl"] = {"Cyrillic"},
["Cyrs"] = {"Cyrillic (Old Church Slavonic variant)"},
["Deva"] = {"Devanagari", "Nagari"},
["Diak"] = {"Dives Akuru"},
["Dogr"] = {"Dogra"},
["Dsrt"] = {"Deseret", "Mormon"},
["Dupl"] = {"Duployan shorthand", "Duployan stenography"},
["Egyd"] = {"Egyptian demotic"},
["Egyh"] = {"Egyptian hieratic"},
["Egyp"] = {"Egyptian hieroglyphs"},
["Elba"] = {"Elbasan"},
["Elym"] = {"Elymaic"},
["Ethi"] = {"Ethiopic", "Geʻez", "Ge'ez"},
["Geok"] = {"Khutsuri (Asomtavruli and Nuskhuri)"},
["Geor"] = {"Georgian (Mkhedruli and Mtavruli)"},
["Glag"] = {"Glagolitic"},
["Gong"] = {"Gunjala Gondi"},
["Gonm"] = {"Masaram Gondi"},
["Goth"] = {"Gothic"},
["Gran"] = {"Grantha"},
["Grek"] = {"Greek"},
["Gujr"] = {"Gujarati"},
["Guru"] = {"Gurmukhi"},
["Hanb"] = {"Han with Bopomofo (alias for Han + Bopomofo)"},
["Hang"] = {"Hangul", "Hangŭl", "Hangeul"},
["Hani"] = {"Han", "Hanzi", "Kanji", "Hanja"},
["Hano"] = {"Hanunoo", "Hanunóo"},
["Hans"] = {"Han (Simplified variant)"},
["Hant"] = {"Han (Traditional variant)"},
["Hatr"] = {"Hatran"},
["Hebr"] = {"Hebrew"},
["Hira"] = {"Hiragana"},
["Hluw"] = {"Anatolian Hieroglyphs", "Luwian Hieroglyphs", "Hittite Hieroglyphs"},
["Hmng"] = {"Pahawh Hmong"},
["Hmnp"] = {"Nyiakeng Puachue Hmong"},
["Hrkt"] = {"Japanese syllabaries (alias for Hiragana + Katakana)"},
["Hung"] = {"Old Hungarian", "Hungarian Runic"},
["Inds"] = {"Indus", "Harappan"},
["Ital"] = {"Old Italic (Etruscan, Oscan, etc.)"},
["Jamo"] = {"Jamo (alias for Jamo subset of Hangul)"},
["Java"] = {"Javanese"},
["Jpan"] = {"Japanese (alias for Han + Hiragana + Katakana)"},
["Jurc"] = {"Jurchen"},
["Kali"] = {"Kayah Li"},
["Kana"] = {"Katakana"},
["Kawi"] = {"Kawi"},
["Khar"] = {"Kharoshthi"},
["Khmr"] = {"Khmer"},
["Khoj"] = {"Khojki"},
["Kitl"] = {"Khitan large script"},
["Kits"] = {"Khitan small script"},
["Knda"] = {"Kannada"},
["Kore"] = {"Korean (alias for Hangul + Han)"},
["Kpel"] = {"Kpelle"},
["Kthi"] = {"Kaithi"},
["Lana"] = {"Tai Tham", "Lanna"},
["Laoo"] = {"Lao"},
["Latf"] = {"Latin (Fraktur variant)"},
["Latg"] = {"Latin (Gaelic variant)"},
["Latn"] = {"Latin"},
["Leke"] = {"Leke"},
["Lepc"] = {"Lepcha", "Róng"},
["Limb"] = {"Limbu"},
["Lina"] = {"Linear A"},
["Linb"] = {"Linear B"},
["Lisu"] = {"Lisu", "Fraser"},
["Loma"] = {"Loma"},
["Lyci"] = {"Lycian"},
["Lydi"] = {"Lydian"},
["Mahj"] = {"Mahajani"},
["Maka"] = {"Makasar"},
["Mand"] = {"Mandaic", "Mandaean"},
["Mani"] = {"Manichaean"},
["Marc"] = {"Marchen"},
["Maya"] = {"Mayan hieroglyphs"},
["Medf"] = {"Medefaidrin", "Oberi Okaime", "Oberi Ɔkaimɛ"},
["Mend"] = {"Mende Kikakui"},
["Merc"] = {"Meroitic Cursive"},
["Mero"] = {"Meroitic Hieroglyphs"},
["Mlym"] = {"Malayalam"},
["Modi"] = {"Modi", "Moḍī"},
["Mong"] = {"Mongolian"},
["Moon"] = {"Moon", "Moon code", "Moon script", "Moon type"},
["Mroo"] = {"Mro", "Mru"},
["Mtei"] = {"Meitei Mayek", "Meithei", "Meetei"},
["Mult"] = {"Multani"},
["Mymr"] = {"Myanmar", "Burmese"},
["Nagm"] = {"Nag Mundari"},
["Nand"] = {"Nandinagari"},
["Narb"] = {"Old North Arabian", "Ancient North Arabian"},
["Nbat"] = {"Nabataean"},
["Newa"] = {"Newa", "Newar", "Newari", "Nepāla lipi"},
["Nkdb"] = {"Naxi Dongba", "na²¹ɕi³³ to³³ba²¹", "Nakhi Tomba"},
["Nkgb"] = {"Naxi Geba", "na²¹ɕi³³ gʌ²¹ba²¹", "'Na-'Khi ²Ggŏ-¹baw", "Nakhi Geba"},
["Nkoo"] = {"N’Ko", "N'Ko"},
["Nshu"] = {"Nüshu"},
["Ogam"] = {"Ogham"},
["Olck"] = {"Ol Chiki", "Ol Cemet'", "Ol", "Santali"},
["Orkh"] = {"Old Turkic", "Orkhon Runic"},
["Orya"] = {"Oriya", "Odia"},
["Osge"] = {"Osage"},
["Osma"] = {"Osmanya"},
["Ougr"] = {"Old Uyghur"},
["Palm"] = {"Palmyrene"},
["Pauc"] = {"Pau Cin Hau"},
["Pcun"] = {"Proto-Cuneiform"},
["Pelm"] = {"Proto-Elamite"},
["Perm"] = {"Old Permic"},
["Phag"] = {"Phags-pa"},
["Phli"] = {"Inscriptional Pahlavi"},
["Phlp"] = {"Psalter Pahlavi"},
["Phlv"] = {"Book Pahlavi"},
["Phnx"] = {"Phoenician"},
["Piqd"] = {"Klingon (KLI pIqaD)"},
["Plrd"] = {"Miao", "Pollard"},
["Prti"] = {"Inscriptional Parthian"},
["Psin"] = {"Proto-Sinaitic"},
["Ranj"] = {"Ranjana"},
["Rjng"] = {"Rejang", "Redjang", "Kaganga"},
["Rohg"] = {"Hanifi Rohingya"},
["Roro"] = {"Rongorongo"},
["Runr"] = {"Runic"},
["Samr"] = {"Samaritan"},
["Sara"] = {"Sarati"},
["Sarb"] = {"Old South Arabian"},
["Saur"] = {"Saurashtra"},
["Sgnw"] = {"SignWriting"},
["Shaw"] = {"Shavian", "Shaw"},
["Shrd"] = {"Sharada", "Śāradā"},
["Shui"] = {"Shuishu"},
["Sidd"] = {"Siddham", "Siddhaṃ", "Siddhamātṛkā"},
["Sind"] = {"Khudawadi", "Sindhi"},
["Sinh"] = {"Sinhala"},
["Sogd"] = {"Sogdian"},
["Sogo"] = {"Old Sogdian"},
["Sora"] = {"Sora Sompeng"},
["Soyo"] = {"Soyombo"},
["Sund"] = {"Sundanese"},
["Sunu"] = {"Sunuwar"},
["Sylo"] = {"Syloti Nagri"},
["Syrc"] = {"Syriac"},
["Syre"] = {"Syriac (Estrangelo variant)"},
["Syrj"] = {"Syriac (Western variant)"},
["Syrn"] = {"Syriac (Eastern variant)"},
["Tagb"] = {"Tagbanwa"},
["Takr"] = {"Takri", "Ṭākrī", "Ṭāṅkrī"},
["Tale"] = {"Tai Le"},
["Talu"] = {"New Tai Lue"},
["Taml"] = {"Tamil"},
["Tang"] = {"Tangut"},
["Tavt"] = {"Tai Viet"},
["Telu"] = {"Telugu"},
["Teng"] = {"Tengwar"},
["Tfng"] = {"Tifinagh", "Berber"},
["Tglg"] = {"Tagalog", "Baybayin", "Alibata"},
["Thaa"] = {"Thaana"},
["Thai"] = {"Thai"},
["Tibt"] = {"Tibetan"},
["Tirh"] = {"Tirhuta"},
["Tnsa"] = {"Tangsa"},
["Toto"] = {"Toto"},
["Ugar"] = {"Ugaritic"},
["Vaii"] = {"Vai"},
["Visp"] = {"Visible Speech"},
["Vith"] = {"Vithkuqi"},
["Wara"] = {"Warang Citi", "Varang Kshiti"},
["Wcho"] = {"Wancho"},
["Wole"] = {"Woleai"},
["Xpeo"] = {"Old Persian"},
["Xsux"] = {"Sumero-Akkadian cuneiform"},
["Yezi"] = {"Yezidi"},
["Yiii"] = {"Yi"},
["Zanb"] = {"Zanabazar Square", "Zanabazarin Dörböljin Useg", "Xewtee Dörböljin Bicig", "Horizontal Square Script"},
["Zinh"] = {"Code for inherited script"},
["Zmth"] = {"Mathematical notation"},
["Zsye"] = {"Symbols (Emoji variant)"},
["Zsym"] = {"Symbols"},
["Zxxx"] = {"Code for unwritten documents"},
["Zyyy"] = {"Code for undetermined script"},
["Zzzz"] = {"Code for uncoded script"}
}
c2tzwyywjd9wdj486idbwqkojq0zmcp
Module:Language/data/iana scripts/doc
828
1870
15644
2022-08-08T23:02:48Z
Kambai Akau
15
Created page with "{{High-use}} This module contains data taken directly from a local copy of an IANA [https://www.iana.org/assignments/language-subtag-registry/language-subtag-registry language-subtag-registry file]. The table in this module was created using the awb script at [[User:Trappist_the_monk/IANA_subtag_registry_file_update|IANA subtag registry file update]] or by [[Module:Language/data/iana languages/make]]. There should be no need to hand edit this table, so please do not d..."
wikitext
text/x-wiki
{{High-use}}
This module contains data taken directly from a local copy of an IANA [https://www.iana.org/assignments/language-subtag-registry/language-subtag-registry language-subtag-registry file].
The table in this module was created using the awb script at [[User:Trappist_the_monk/IANA_subtag_registry_file_update|IANA subtag registry file update]] or by [[Module:Language/data/iana languages/make]]. There should be no need to hand edit this table, so please do not do so except to reflect changes that are actually present in the source (in which case it is probably better to re-run one of the tools on a new data file).
The data in this table come from records that are not 'Deprecated', do not have a 'Preferred-Value', and are not 'Private use'.
<includeonly>{{#ifeq:{{SUBPAGENAME}}|sandbox | |
<!-- Categories below this line, please; interwikis at Wikidata -->
[[Category:Language-related modules]]
}}</includeonly>
4n7epawfijhtzhng7vvyhyxyua9fiz1
Module:Language/data/iana regions
828
1871
15645
2022-08-08T23:04:21Z
Kambai Akau
15
Created page with "-- File-Date: 2022-03-02 return { ["AC"] = {"Ascension Island"}, ["AD"] = {"Andorra"}, ["AE"] = {"United Arab Emirates"}, ["AF"] = {"Afghanistan"}, ["AG"] = {"Antigua and Barbuda"}, ["AI"] = {"Anguilla"}, ["AL"] = {"Albania"}, ["AM"] = {"Armenia"}, ["AO"] = {"Angola"}, ["AQ"] = {"Antarctica"}, ["AR"] = {"Argentina"}, ["AS"] = {"American Samoa"}, ["AT"] = {"Austria"}, ["AU"] = {"Australia"}, ["AW"] = {"Aruba"}, ["AX"] = {"Åland Islands"}, ["AZ"] = {"Azer..."
Scribunto
text/plain
-- File-Date: 2022-03-02
return {
["AC"] = {"Ascension Island"},
["AD"] = {"Andorra"},
["AE"] = {"United Arab Emirates"},
["AF"] = {"Afghanistan"},
["AG"] = {"Antigua and Barbuda"},
["AI"] = {"Anguilla"},
["AL"] = {"Albania"},
["AM"] = {"Armenia"},
["AO"] = {"Angola"},
["AQ"] = {"Antarctica"},
["AR"] = {"Argentina"},
["AS"] = {"American Samoa"},
["AT"] = {"Austria"},
["AU"] = {"Australia"},
["AW"] = {"Aruba"},
["AX"] = {"Åland Islands"},
["AZ"] = {"Azerbaijan"},
["BA"] = {"Bosnia and Herzegovina"},
["BB"] = {"Barbados"},
["BD"] = {"Bangladesh"},
["BE"] = {"Belgium"},
["BF"] = {"Burkina Faso"},
["BG"] = {"Bulgaria"},
["BH"] = {"Bahrain"},
["BI"] = {"Burundi"},
["BJ"] = {"Benin"},
["BL"] = {"Saint Barthélemy"},
["BM"] = {"Bermuda"},
["BN"] = {"Brunei Darussalam"},
["BO"] = {"Bolivia"},
["BQ"] = {"Bonaire, Sint Eustatius and Saba"},
["BR"] = {"Brazil"},
["BS"] = {"Bahamas"},
["BT"] = {"Bhutan"},
["BV"] = {"Bouvet Island"},
["BW"] = {"Botswana"},
["BY"] = {"Belarus"},
["BZ"] = {"Belize"},
["CA"] = {"Canada"},
["CC"] = {"Cocos (Keeling) Islands"},
["CD"] = {"The Democratic Republic of the Congo"},
["CF"] = {"Central African Republic"},
["CG"] = {"Congo"},
["CH"] = {"Switzerland"},
["CI"] = {"Côte d'Ivoire"},
["CK"] = {"Cook Islands"},
["CL"] = {"Chile"},
["CM"] = {"Cameroon"},
["CN"] = {"China"},
["CO"] = {"Colombia"},
["CP"] = {"Clipperton Island"},
["CR"] = {"Costa Rica"},
["CU"] = {"Cuba"},
["CV"] = {"Cabo Verde", "Cape Verde"},
["CW"] = {"Curaçao"},
["CX"] = {"Christmas Island"},
["CY"] = {"Cyprus"},
["CZ"] = {"Czechia", "Czech Republic"},
["DE"] = {"Germany"},
["DG"] = {"Diego Garcia"},
["DJ"] = {"Djibouti"},
["DK"] = {"Denmark"},
["DM"] = {"Dominica"},
["DO"] = {"Dominican Republic"},
["DZ"] = {"Algeria"},
["EA"] = {"Ceuta, Melilla"},
["EC"] = {"Ecuador"},
["EE"] = {"Estonia"},
["EG"] = {"Egypt"},
["EH"] = {"Western Sahara"},
["ER"] = {"Eritrea"},
["ES"] = {"Spain"},
["ET"] = {"Ethiopia"},
["EU"] = {"European Union"},
["EZ"] = {"Eurozone"},
["FI"] = {"Finland"},
["FJ"] = {"Fiji"},
["FK"] = {"Falkland Islands (Malvinas)"},
["FM"] = {"Federated States of Micronesia"},
["FO"] = {"Faroe Islands"},
["FR"] = {"France"},
["GA"] = {"Gabon"},
["GB"] = {"United Kingdom"},
["GD"] = {"Grenada"},
["GE"] = {"Georgia"},
["GF"] = {"French Guiana"},
["GG"] = {"Guernsey"},
["GH"] = {"Ghana"},
["GI"] = {"Gibraltar"},
["GL"] = {"Greenland"},
["GM"] = {"Gambia"},
["GN"] = {"Guinea"},
["GP"] = {"Guadeloupe"},
["GQ"] = {"Equatorial Guinea"},
["GR"] = {"Greece"},
["GS"] = {"South Georgia and the South Sandwich Islands"},
["GT"] = {"Guatemala"},
["GU"] = {"Guam"},
["GW"] = {"Guinea-Bissau"},
["GY"] = {"Guyana"},
["HK"] = {"Hong Kong"},
["HM"] = {"Heard Island and McDonald Islands"},
["HN"] = {"Honduras"},
["HR"] = {"Croatia"},
["HT"] = {"Haiti"},
["HU"] = {"Hungary"},
["IC"] = {"Canary Islands"},
["ID"] = {"Indonesia"},
["IE"] = {"Ireland"},
["IL"] = {"Israel"},
["IM"] = {"Isle of Man"},
["IN"] = {"India"},
["IO"] = {"British Indian Ocean Territory"},
["IQ"] = {"Iraq"},
["IR"] = {"Islamic Republic of Iran"},
["IS"] = {"Iceland"},
["IT"] = {"Italy"},
["JE"] = {"Jersey"},
["JM"] = {"Jamaica"},
["JO"] = {"Jordan"},
["JP"] = {"Japan"},
["KE"] = {"Kenya"},
["KG"] = {"Kyrgyzstan"},
["KH"] = {"Cambodia"},
["KI"] = {"Kiribati"},
["KM"] = {"Comoros"},
["KN"] = {"Saint Kitts and Nevis"},
["KP"] = {"Democratic People's Republic of Korea"},
["KR"] = {"Republic of Korea"},
["KW"] = {"Kuwait"},
["KY"] = {"Cayman Islands"},
["KZ"] = {"Kazakhstan"},
["LA"] = {"Lao People's Democratic Republic"},
["LB"] = {"Lebanon"},
["LC"] = {"Saint Lucia"},
["LI"] = {"Liechtenstein"},
["LK"] = {"Sri Lanka"},
["LR"] = {"Liberia"},
["LS"] = {"Lesotho"},
["LT"] = {"Lithuania"},
["LU"] = {"Luxembourg"},
["LV"] = {"Latvia"},
["LY"] = {"Libya"},
["MA"] = {"Morocco"},
["MC"] = {"Monaco"},
["MD"] = {"Moldova"},
["ME"] = {"Montenegro"},
["MF"] = {"Saint Martin (French part)"},
["MG"] = {"Madagascar"},
["MH"] = {"Marshall Islands"},
["MK"] = {"North Macedonia"},
["ML"] = {"Mali"},
["MM"] = {"Myanmar"},
["MN"] = {"Mongolia"},
["MO"] = {"Macao"},
["MP"] = {"Northern Mariana Islands"},
["MQ"] = {"Martinique"},
["MR"] = {"Mauritania"},
["MS"] = {"Montserrat"},
["MT"] = {"Malta"},
["MU"] = {"Mauritius"},
["MV"] = {"Maldives"},
["MW"] = {"Malawi"},
["MX"] = {"Mexico"},
["MY"] = {"Malaysia"},
["MZ"] = {"Mozambique"},
["NA"] = {"Namibia"},
["NC"] = {"New Caledonia"},
["NE"] = {"Niger"},
["NF"] = {"Norfolk Island"},
["NG"] = {"Nigeria"},
["NI"] = {"Nicaragua"},
["NL"] = {"Netherlands"},
["NO"] = {"Norway"},
["NP"] = {"Nepal"},
["NR"] = {"Nauru"},
["NU"] = {"Niue"},
["NZ"] = {"New Zealand"},
["OM"] = {"Oman"},
["PA"] = {"Panama"},
["PE"] = {"Peru"},
["PF"] = {"French Polynesia"},
["PG"] = {"Papua New Guinea"},
["PH"] = {"Philippines"},
["PK"] = {"Pakistan"},
["PL"] = {"Poland"},
["PM"] = {"Saint Pierre and Miquelon"},
["PN"] = {"Pitcairn"},
["PR"] = {"Puerto Rico"},
["PS"] = {"State of Palestine"},
["PT"] = {"Portugal"},
["PW"] = {"Palau"},
["PY"] = {"Paraguay"},
["QA"] = {"Qatar"},
["RE"] = {"Réunion"},
["RO"] = {"Romania"},
["RS"] = {"Serbia"},
["RU"] = {"Russian Federation"},
["RW"] = {"Rwanda"},
["SA"] = {"Saudi Arabia"},
["SB"] = {"Solomon Islands"},
["SC"] = {"Seychelles"},
["SD"] = {"Sudan"},
["SE"] = {"Sweden"},
["SG"] = {"Singapore"},
["SH"] = {"Saint Helena, Ascension and Tristan da Cunha"},
["SI"] = {"Slovenia"},
["SJ"] = {"Svalbard and Jan Mayen"},
["SK"] = {"Slovakia"},
["SL"] = {"Sierra Leone"},
["SM"] = {"San Marino"},
["SN"] = {"Senegal"},
["SO"] = {"Somalia"},
["SR"] = {"Suriname"},
["SS"] = {"South Sudan"},
["ST"] = {"Sao Tome and Principe"},
["SV"] = {"El Salvador"},
["SX"] = {"Sint Maarten (Dutch part)"},
["SY"] = {"Syrian Arab Republic"},
["SZ"] = {"Eswatini", "eSwatini", "Swaziland"},
["TA"] = {"Tristan da Cunha"},
["TC"] = {"Turks and Caicos Islands"},
["TD"] = {"Chad"},
["TF"] = {"French Southern Territories"},
["TG"] = {"Togo"},
["TH"] = {"Thailand"},
["TJ"] = {"Tajikistan"},
["TK"] = {"Tokelau"},
["TL"] = {"Timor-Leste"},
["TM"] = {"Turkmenistan"},
["TN"] = {"Tunisia"},
["TO"] = {"Tonga"},
["TR"] = {"Turkey"},
["TT"] = {"Trinidad and Tobago"},
["TV"] = {"Tuvalu"},
["TW"] = {"Taiwan, Province of China"},
["TZ"] = {"United Republic of Tanzania"},
["UA"] = {"Ukraine"},
["UG"] = {"Uganda"},
["UM"] = {"United States Minor Outlying Islands"},
["UN"] = {"United Nations"},
["US"] = {"United States"},
["UY"] = {"Uruguay"},
["UZ"] = {"Uzbekistan"},
["VA"] = {"Holy See (Vatican City State)"},
["VC"] = {"Saint Vincent and the Grenadines"},
["VE"] = {"Venezuela"},
["VG"] = {"British Virgin Islands"},
["VI"] = {"U.S. Virgin Islands"},
["VN"] = {"Viet Nam"},
["VU"] = {"Vanuatu"},
["WF"] = {"Wallis and Futuna"},
["WS"] = {"Samoa"},
["YE"] = {"Yemen"},
["YT"] = {"Mayotte"},
["ZA"] = {"South Africa"},
["ZM"] = {"Zambia"},
["ZW"] = {"Zimbabwe"},
["001"] = {"World"},
["002"] = {"Africa"},
["003"] = {"North America"},
["005"] = {"South America"},
["009"] = {"Oceania"},
["011"] = {"Western Africa"},
["013"] = {"Central America"},
["014"] = {"Eastern Africa"},
["015"] = {"Northern Africa"},
["017"] = {"Middle Africa"},
["018"] = {"Southern Africa"},
["019"] = {"Americas"},
["021"] = {"Northern America"},
["029"] = {"Caribbean"},
["030"] = {"Eastern Asia"},
["034"] = {"Southern Asia"},
["035"] = {"South-Eastern Asia"},
["039"] = {"Southern Europe"},
["053"] = {"Australia and New Zealand"},
["054"] = {"Melanesia"},
["057"] = {"Micronesia"},
["061"] = {"Polynesia"},
["142"] = {"Asia"},
["143"] = {"Central Asia"},
["145"] = {"Western Asia"},
["150"] = {"Europe"},
["151"] = {"Eastern Europe"},
["154"] = {"Northern Europe"},
["155"] = {"Western Europe"},
["202"] = {"Sub-Saharan Africa"},
["419"] = {"Latin America and the Caribbean"}
}
0v0v0ovapbarvggl2f4zbri8b1iyggi
Module:Language/data/iana regions/doc
828
1872
15646
2022-08-08T23:04:54Z
Kambai Akau
15
Created page with "{{High-use}} This module contains data taken directly from a local copy of an IANA [https://www.iana.org/assignments/language-subtag-registry/language-subtag-registry language-subtag-registry file]. The table in this module was created using the awb script at [[User:Trappist_the_monk/IANA_subtag_registry_file_update|IANA subtag registry file update]] or by [[Module:Language/data/iana languages/make]]. There should be no need to hand edit this table, so please do not d..."
wikitext
text/x-wiki
{{High-use}}
This module contains data taken directly from a local copy of an IANA [https://www.iana.org/assignments/language-subtag-registry/language-subtag-registry language-subtag-registry file].
The table in this module was created using the awb script at [[User:Trappist_the_monk/IANA_subtag_registry_file_update|IANA subtag registry file update]] or by [[Module:Language/data/iana languages/make]]. There should be no need to hand edit this table, so please do not do so except to reflect changes that are actually present in the source (in which case it is probably better to re-run one of the tools on a new data file).
The data in this table come from records that are not 'Deprecated', do not have a 'Preferred-Value', and are not 'Private use'.
<includeonly>{{#ifeq:{{SUBPAGENAME}}|sandbox | |
<!-- Categories below this line, please; interwikis at Wikidata -->
[[Category:Language-related modules]]
}}</includeonly>
4n7epawfijhtzhng7vvyhyxyua9fiz1
Module:Language/data/iana variants
828
1873
15648
2022-08-09T07:01:39Z
Kambai Akau
15
Created page with "-- File-Date: 2022-03-02 return { ["1606nict"] = { ["descriptions"] = {"Late Middle French (to 1606)"}, ["prefixes"] = {"frm"}, }, ["1694acad"] = { ["descriptions"] = {"Early Modern French"}, ["prefixes"] = {"fr"}, }, ["1901"] = { ["descriptions"] = {"Traditional German orthography"}, ["prefixes"] = {"de"}, }, ["1959acad"] = { ["descriptions"] = {"\"Academic\" (\"governmental\") variant of Belarusian as codified in 1959"}, ["prefixes"] = {"be"},..."
Scribunto
text/plain
-- File-Date: 2022-03-02
return {
["1606nict"] = {
["descriptions"] = {"Late Middle French (to 1606)"},
["prefixes"] = {"frm"},
},
["1694acad"] = {
["descriptions"] = {"Early Modern French"},
["prefixes"] = {"fr"},
},
["1901"] = {
["descriptions"] = {"Traditional German orthography"},
["prefixes"] = {"de"},
},
["1959acad"] = {
["descriptions"] = {"\"Academic\" (\"governmental\") variant of Belarusian as codified in 1959"},
["prefixes"] = {"be"},
},
["1994"] = {
["descriptions"] = {"Standardized Resian orthography"},
["prefixes"] = {"sl-rozaj", "sl-rozaj-biske", "sl-rozaj-njiva", "sl-rozaj-osojs", "sl-rozaj-solba"},
},
["1996"] = {
["descriptions"] = {"German orthography of 1996"},
["prefixes"] = {"de"},
},
["abl1943"] = {
["descriptions"] = {"Orthographic formulation of 1943 - Official in Brazil (Formulário Ortográfico de 1943 - Oficial no Brasil)"},
["prefixes"] = {"pt-br"},
},
["akuapem"] = {
["descriptions"] = {"Akuapem Twi"},
["prefixes"] = {"tw"},
},
["alalc97"] = {
["descriptions"] = {"ALA-LC Romanization, 1997 edition"},
["prefixes"] = {},
},
["aluku"] = {
["descriptions"] = {"Aluku dialect", "Boni dialect"},
["prefixes"] = {"djk"},
},
["ao1990"] = {
["descriptions"] = {"Portuguese Language Orthographic Agreement of 1990 (Acordo Ortográfico da Língua Portuguesa de 1990)"},
["prefixes"] = {"pt", "gl"},
},
["aranes"] = {
["descriptions"] = {"Aranese"},
["prefixes"] = {"oc"},
},
["arkaika"] = {
["descriptions"] = {"Arcaicam Esperantom", "Arkaika Esperanto"},
["prefixes"] = {"eo"},
},
["asante"] = {
["descriptions"] = {"Asante Twi", "Ashanti Twi"},
["prefixes"] = {"tw"},
},
["auvern"] = {
["descriptions"] = {"Auvergnat"},
["prefixes"] = {"oc"},
},
["baku1926"] = {
["descriptions"] = {"Unified Turkic Latin Alphabet (Historical)"},
["prefixes"] = {"az", "ba", "crh", "kk", "krc", "ky", "sah", "tk", "tt", "uz"},
},
["balanka"] = {
["descriptions"] = {"The Balanka dialect of Anii"},
["prefixes"] = {"blo"},
},
["barla"] = {
["descriptions"] = {"The Barlavento dialect group of Kabuverdianu"},
["prefixes"] = {"kea"},
},
["basiceng"] = {
["descriptions"] = {"Basic English"},
["prefixes"] = {"en"},
},
["bauddha"] = {
["descriptions"] = {"Buddhist Hybrid Sanskrit"},
["prefixes"] = {"sa"},
},
["biscayan"] = {
["descriptions"] = {"Biscayan dialect of Basque"},
["prefixes"] = {"eu"},
},
["biske"] = {
["descriptions"] = {"The San Giorgio dialect of Resian", "The Bila dialect of Resian"},
["prefixes"] = {"sl-rozaj"},
},
["bohoric"] = {
["descriptions"] = {"Slovene in Bohorič alphabet"},
["prefixes"] = {"sl"},
},
["boont"] = {
["descriptions"] = {"Boontling"},
["prefixes"] = {"en"},
},
["bornholm"] = {
["descriptions"] = {"Bornholmsk"},
["prefixes"] = {"da"},
},
["cisaup"] = {
["descriptions"] = {"Cisalpine"},
["prefixes"] = {"oc"},
},
["colb1945"] = {
["descriptions"] = {"Portuguese-Brazilian Orthographic Convention of 1945 (Convenção Ortográfica Luso-Brasileira de 1945)"},
["prefixes"] = {"pt"},
},
["cornu"] = {
["descriptions"] = {"Cornu-English", "Cornish English", "Anglo-Cornish"},
["prefixes"] = {"en"},
},
["creiss"] = {
["descriptions"] = {"Occitan variants of the Croissant area"},
["prefixes"] = {"oc"},
},
["dajnko"] = {
["descriptions"] = {"Slovene in Dajnko alphabet"},
["prefixes"] = {"sl"},
},
["ekavsk"] = {
["descriptions"] = {"Serbian with Ekavian pronunciation"},
["prefixes"] = {"sr", "sr-latn", "sr-cyrl"},
},
["emodeng"] = {
["descriptions"] = {"Early Modern English (1500-1700)"},
["prefixes"] = {"en"},
},
["fonipa"] = {
["descriptions"] = {"International Phonetic Alphabet"},
["prefixes"] = {},
},
["fonkirsh"] = {
["descriptions"] = {"Kirshenbaum Phonetic Alphabet"},
["prefixes"] = {},
},
["fonnapa"] = {
["descriptions"] = {"North American Phonetic Alphabet", "Americanist Phonetic Notation"},
["prefixes"] = {},
},
["fonupa"] = {
["descriptions"] = {"Uralic Phonetic Alphabet"},
["prefixes"] = {},
},
["fonxsamp"] = {
["descriptions"] = {"X-SAMPA transcription"},
["prefixes"] = {},
},
["gallo"] = {
["descriptions"] = {"Gallo"},
["prefixes"] = {"fr"},
},
["gascon"] = {
["descriptions"] = {"Gascon"},
["prefixes"] = {"oc"},
},
["grclass"] = {
["descriptions"] = {"Classical Occitan orthography"},
["prefixes"] = {"oc", "oc-aranes", "oc-auvern", "oc-cisaup", "oc-creiss", "oc-gascon", "oc-lemosin", "oc-lengadoc", "oc-nicard", "oc-provenc", "oc-vivaraup"},
},
["grital"] = {
["descriptions"] = {"Italian-inspired Occitan orthography"},
["prefixes"] = {"oc", "oc-cisaup", "oc-nicard", "oc-provenc"},
},
["grmistr"] = {
["descriptions"] = {"Mistralian or Mistralian-inspired Occitan orthography"},
["prefixes"] = {"oc", "oc-aranes", "oc-auvern", "oc-cisaup", "oc-creiss", "oc-gascon", "oc-lemosin", "oc-lengadoc", "oc-nicard", "oc-provenc", "oc-vivaraup"},
},
["hepburn"] = {
["descriptions"] = {"Hepburn romanization"},
["prefixes"] = {"ja-latn"},
},
["hognorsk"] = {
["descriptions"] = {"Norwegian in Høgnorsk (High Norwegian) orthography"},
["prefixes"] = {"nn"},
},
["hsistemo"] = {
["descriptions"] = {"Standard H-system orthographic fallback for spelling Esperanto"},
["prefixes"] = {"eo"},
},
["ijekavsk"] = {
["descriptions"] = {"Serbian with Ijekavian pronunciation"},
["prefixes"] = {"sr", "sr-latn", "sr-cyrl"},
},
["itihasa"] = {
["descriptions"] = {"Epic Sanskrit"},
["prefixes"] = {"sa"},
},
["ivanchov"] = {
["descriptions"] = {"Bulgarian in 1899 orthography"},
["prefixes"] = {"bg"},
},
["jauer"] = {
["descriptions"] = {"Jauer dialect of Romansh"},
["prefixes"] = {"rm"},
},
["jyutping"] = {
["descriptions"] = {"Jyutping Cantonese Romanization"},
["prefixes"] = {"yue"},
},
["kkcor"] = {
["descriptions"] = {"Common Cornish orthography of Revived Cornish"},
["prefixes"] = {"kw"},
},
["kociewie"] = {
["descriptions"] = {"The Kociewie dialect of Polish"},
["prefixes"] = {"pl"},
},
["kscor"] = {
["descriptions"] = {"Standard Cornish orthography of Revived Cornish", "Kernowek Standard"},
["prefixes"] = {"kw"},
},
["laukika"] = {
["descriptions"] = {"Classical Sanskrit"},
["prefixes"] = {"sa"},
},
["lemosin"] = {
["descriptions"] = {"Limousin"},
["prefixes"] = {"oc"},
},
["lengadoc"] = {
["descriptions"] = {"Languedocien"},
["prefixes"] = {"oc"},
},
["lipaw"] = {
["descriptions"] = {"The Lipovaz dialect of Resian", "The Lipovec dialect of Resian"},
["prefixes"] = {"sl-rozaj"},
},
["luna1918"] = {
["descriptions"] = {"Post-1917 Russian orthography"},
["prefixes"] = {"ru"},
},
["metelko"] = {
["descriptions"] = {"Slovene in Metelko alphabet"},
["prefixes"] = {"sl"},
},
["monoton"] = {
["descriptions"] = {"Monotonic Greek"},
["prefixes"] = {"el"},
},
["ndyuka"] = {
["descriptions"] = {"Ndyuka dialect", "Aukan dialect"},
["prefixes"] = {"djk"},
},
["nedis"] = {
["descriptions"] = {"Natisone dialect", "Nadiza dialect"},
["prefixes"] = {"sl"},
},
["newfound"] = {
["descriptions"] = {"Newfoundland English"},
["prefixes"] = {"en-ca"},
},
["nicard"] = {
["descriptions"] = {"Niçard"},
["prefixes"] = {"oc"},
},
["njiva"] = {
["descriptions"] = {"The Gniva dialect of Resian", "The Njiva dialect of Resian"},
["prefixes"] = {"sl-rozaj"},
},
["nulik"] = {
["descriptions"] = {"Volapük nulik", "Volapük perevidöl", "Volapük nulädik", "de Jong's Volapük", "New Volapük", "Revised Volapük", "Modern Volapük"},
["prefixes"] = {"vo"},
},
["osojs"] = {
["descriptions"] = {"The Oseacco dialect of Resian", "The Osojane dialect of Resian"},
["prefixes"] = {"sl-rozaj"},
},
["oxendict"] = {
["descriptions"] = {"Oxford English Dictionary spelling"},
["prefixes"] = {"en"},
},
["pahawh2"] = {
["descriptions"] = {"Pahawh Hmong Second Stage Reduced orthography"},
["prefixes"] = {"mww", "hnj"},
},
["pahawh3"] = {
["descriptions"] = {"Pahawh Hmong Third Stage Reduced orthography"},
["prefixes"] = {"mww", "hnj"},
},
["pahawh4"] = {
["descriptions"] = {"Pahawh Hmong Final Version orthography"},
["prefixes"] = {"mww", "hnj"},
},
["pamaka"] = {
["descriptions"] = {"Pamaka dialect"},
["prefixes"] = {"djk"},
},
["peano"] = {
["descriptions"] = {"Latino Sine Flexione", "Interlingua de API", "Interlingua de Peano"},
["prefixes"] = {"la"},
},
["petr1708"] = {
["descriptions"] = {"Petrine orthography"},
["prefixes"] = {"ru"},
},
["pinyin"] = {
["descriptions"] = {"Pinyin romanization"},
["prefixes"] = {"zh-latn", "bo-latn"},
},
["polyton"] = {
["descriptions"] = {"Polytonic Greek"},
["prefixes"] = {"el"},
},
["provenc"] = {
["descriptions"] = {"Provençal"},
["prefixes"] = {"oc"},
},
["puter"] = {
["descriptions"] = {"Puter idiom of Romansh"},
["prefixes"] = {"rm"},
},
["rigik"] = {
["descriptions"] = {"Volapük rigik", "Schleyer's Volapük", "Original Volapük", "Classic Volapük"},
["prefixes"] = {"vo"},
},
["rozaj"] = {
["descriptions"] = {"Resian", "Resianic", "Rezijan"},
["prefixes"] = {"sl"},
},
["rumgr"] = {
["descriptions"] = {"Rumantsch Grischun"},
["prefixes"] = {"rm"},
},
["scotland"] = {
["descriptions"] = {"Scottish Standard English"},
["prefixes"] = {"en"},
},
["scouse"] = {
["descriptions"] = {"Scouse"},
["prefixes"] = {"en"},
},
["simple"] = {
["descriptions"] = {"Simplified form"},
["prefixes"] = {},
},
["solba"] = {
["descriptions"] = {"The Stolvizza dialect of Resian", "The Solbica dialect of Resian"},
["prefixes"] = {"sl-rozaj"},
},
["sotav"] = {
["descriptions"] = {"The Sotavento dialect group of Kabuverdianu"},
["prefixes"] = {"kea"},
},
["spanglis"] = {
["descriptions"] = {"Spanglish"},
["prefixes"] = {"en", "es"},
},
["surmiran"] = {
["descriptions"] = {"Surmiran idiom of Romansh"},
["prefixes"] = {"rm"},
},
["sursilv"] = {
["descriptions"] = {"Sursilvan idiom of Romansh"},
["prefixes"] = {"rm"},
},
["sutsilv"] = {
["descriptions"] = {"Sutsilvan idiom of Romansh"},
["prefixes"] = {"rm"},
},
["synnejyl"] = {
["descriptions"] = {"Synnejysk", "South Jutish"},
["prefixes"] = {"da"},
},
["tarask"] = {
["descriptions"] = {"Belarusian in Taraskievica orthography"},
["prefixes"] = {"be"},
},
["tongyong"] = {
["descriptions"] = {"Tongyong Pinyin romanization"},
["prefixes"] = {"zh-latn"},
},
["tunumiit"] = {
["descriptions"] = {"Tunumiisiut", "East Greenlandic", "Østgrønlandsk"},
["prefixes"] = {"kl"},
},
["uccor"] = {
["descriptions"] = {"Unified Cornish orthography of Revived Cornish"},
["prefixes"] = {"kw"},
},
["ucrcor"] = {
["descriptions"] = {"Unified Cornish Revised orthography of Revived Cornish"},
["prefixes"] = {"kw"},
},
["ulster"] = {
["descriptions"] = {"Ulster dialect of Scots"},
["prefixes"] = {"sco"},
},
["unifon"] = {
["descriptions"] = {"Unifon phonetic alphabet"},
["prefixes"] = {"en", "hup", "kyh", "tol", "yur"},
},
["vaidika"] = {
["descriptions"] = {"Vedic Sanskrit"},
["prefixes"] = {"sa"},
},
["valencia"] = {
["descriptions"] = {"Valencian"},
["prefixes"] = {"ca"},
},
["vallader"] = {
["descriptions"] = {"Vallader idiom of Romansh"},
["prefixes"] = {"rm"},
},
["vecdruka"] = {
["descriptions"] = {"Latvian orthography used before 1920s (\"vecā druka\")"},
["prefixes"] = {"lv"},
},
["vivaraup"] = {
["descriptions"] = {"Vivaro-Alpine"},
["prefixes"] = {"oc"},
},
["wadegile"] = {
["descriptions"] = {"Wade-Giles romanization"},
["prefixes"] = {"zh-latn"},
},
["xsistemo"] = {
["descriptions"] = {"Standard X-system orthographic fallback for spelling Esperanto"},
["prefixes"] = {"eo"},
}
}
5hcrlvqkg553eym8ibp2qqayixappxt
Module:Language/data/iana variants/doc
828
1874
15649
2022-08-09T07:04:28Z
Kambai Akau
15
Created page with "{{High-use}} This module contains data taken directly from a local copy of an IANA [https://www.iana.org/assignments/language-subtag-registry/language-subtag-registry language-subtag-registry file]. The table in this module was created using the awb script at [[User:Trappist_the_monk/IANA_subtag_registry_file_update|IANA subtag registry file update]] or by [[Module:Language/data/iana languages/make]]. There should be no need to hand edit this table, so please do not d..."
wikitext
text/x-wiki
{{High-use}}
This module contains data taken directly from a local copy of an IANA [https://www.iana.org/assignments/language-subtag-registry/language-subtag-registry language-subtag-registry file].
The table in this module was created using the awb script at [[User:Trappist_the_monk/IANA_subtag_registry_file_update|IANA subtag registry file update]] or by [[Module:Language/data/iana languages/make]]. There should be no need to hand edit this table, so please do not do so except to reflect changes that are actually present in the source (in which case it is probably better to re-run one of the tools on a new data file).
The data in this table come from records that are not 'Deprecated', do not have a 'Preferred-Value', and are not 'Private use'.
<includeonly>{{#ifeq:{{SUBPAGENAME}}|sandbox | |
<!-- Categories below this line, please; interwikis at Wikidata -->
[[Category:Language-related modules]]
}}</includeonly>
4n7epawfijhtzhng7vvyhyxyua9fiz1
Module:Language/data/iana languages/make
828
1875
15650
2022-08-09T08:00:22Z
Kambai Akau
15
Created page with "require('Module:No globals'); --[=[------------------------< G E T _ V A R I A N T _ P A R T S >--------------------------------------------- We get a record that looks more-or-less like this: %%\n Type: variant\n Subtag: bohoric\n Description: Slovene in Bohorič alphabet\n Added: 2012-06-27\n Prefix: sl\n Each line is terminated with a \n character. Type, for this function can only be 'variant' Subtag is the code of Type Prefix is a language code to which..."
Scribunto
text/plain
require('Module:No globals');
--[=[------------------------< G E T _ V A R I A N T _ P A R T S >---------------------------------------------
We get a record that looks more-or-less like this:
%%\n
Type: variant\n
Subtag: bohoric\n
Description: Slovene in Bohorič alphabet\n
Added: 2012-06-27\n
Prefix: sl\n
Each line is terminated with a \n character.
Type, for this function can only be 'variant'
Subtag is the code of Type
Prefix is a language code to which this variant applies; one language code per Prefix line. There can be
more than one prefix line.
Description associates Subtag with a proper name or names; one name per Description line. There can be more
than one Description line and Description lines can wrap to the next line. When they do, the first two
characters of the continuation line are spaces.
Comments: lines can also be continued so once in a Comments line (which is otherwise ignored) all further
continuations in the record are also ignored. This is a crude mechanism to prevent comment continuations
from being concatenated onto the end of descriptions and relies on Description line occuring in the record
before the Comments line.
Records with private use subtags are ignored.
]=]
local function get_variant_parts (record)
local code;
local descriptions = {};
local prefixes = {};
local in_comments = false;
if string.find (record, 'Deprecated', 1, true) or string.find (record, 'Preferred-Value', 1, true)
or string.find (record, 'Private use', 1, true) then
return 'skip';
end
for line in string.gmatch (record, '([^\n]+)\n') do -- get a \n terminated line of text (without the \n)
local label = string.match(line, "(.-):")
if not label and string.find (line, '^ .+') and not in_comments then -- if a continuation line but not a comments continuation
descriptions[#descriptions] = string.gsub (descriptions[#descriptions], '\"$', ''); -- remove trailing quote mark from previous description
descriptions[#descriptions] = descriptions[#descriptions] .. ' ' .. string.match (line, '^ (.+)') .. '\"'; -- extract and save the continuation with new quote mark
elseif label == 'Subtag' then -- if this line is the subtag line
code = string.match (line, 'Subtag: (%w+)'); -- extract and save to subtag's code
elseif label == 'Description' then -- if this line is a description line
local desc = string.match (line, 'Description: (.+)'); -- extract the description
desc = string.gsub (desc, '"', '\\"'); -- in case description contains quote marks (see 1959acad)
table.insert (descriptions, '\"' .. desc .. '\"'); -- save the description wrapped in quote marks
elseif label == 'Prefix' then -- if this line is a prefix line
table.insert (prefixes, '\"' .. string.match (line, 'Prefix: (.+)'):lower() .. '\"'); -- extract and save the prefix wrapped in quote marks
elseif label == 'Comments' then -- if this line is a comments line
in_comments = true;
end
end
return code, table.concat (prefixes, ', '), table.concat (descriptions, ', ');
end
--[=[------------------------< G E T _ L A N G _ S C R I P T _ R E G I O N _ P A R T S >-----------------------
We get a record that looks more-or-less like this:
%%\n
Type: language\n
Subtag: aa\n
Description: Afar\n
Added: 2005-10-16\n
Each line is terminated with a \n character.
Type, for our purposes can be 'language', 'script', or 'region'
Subtag is the code of Type
Description associates Subtag with a proper name or names; one name per Description line. There can be more
than one Description line and Description lines can wrap to the next line. When they do, the first two
characters of the continuation line are spaces.
Comments: lines can also be continued so once in a Comments line (which is otherwise ignored) all further
continuations in the record are also ignored. This is a crude mechanism to prevent comment continuations
from being concatenated onto the end of descriptions and relies on Description line occuring in the record
before the Comments line.
Records with private use subtags are ignored.
]=]
local function get_lang_script_region_parts (record)
local code;
local suppress; -- Suppress script for this code if specified
local deprecated; -- boolean; true when subtag is deprecated
local descriptions = {};
local in_comments = false;
if record:find ('Private use') then
return 'skip';
end
for line in record:gmatch ('([^\n]+)\n') do -- get a \n terminated line of text (without the \n)
local label = line:match ('(.-):');
if 'Subtag' == label then -- if this line is the subtag line
code = line:match ('Subtag: (%w+)'); -- extract and save to subtag's code
elseif 'Description' == label then -- if this line is a description line
table.insert (descriptions, '\"' .. line:match ('Description: (.+)') .. '\"'); -- extract and save the name wrapped in quote marks
elseif 'Deprecated' == label then
deprecated = true; -- subtag is deprecated; set our flag
elseif 'Suppress-Script' == label then
suppress = line:match ('Suppress%-Script: (%S+)');
elseif 'Comments' == label then -- if this line is a comments line
in_comments = true;
elseif line:find ('^ .+') and not in_comments then -- if a continuation line but not a commnets continuation
descriptions[#descriptions] = descriptions[#descriptions]:gsub ('\"$', ''); -- remove trailing quote mark from previous description
descriptions[#descriptions] = descriptions[#descriptions] .. ' ' .. line:match ('^ (.+)') .. '\"'; -- extract and save the continuation with new quote mark
end
end
return code, table.concat (descriptions, ', '), suppress, deprecated;
end
--[=[------------------------< I A N A _ E X T R A C T >-------------------------------------------------------
read a local copy of the IANA language-subtag-registry file and from it build tables to replace the tables in:
[[Module:Language/data/iana languages]]
[[Module:Language/data/iana scripts]
[[Module:Language/data/iana regions]]
current language-subtag-registry file can be found at: http://www.iana.org/assignments/language-subtag-registry
archive.org has copies of previous versions see: https://web.archive.org/web/*/http://www.iana.org/assignments/language-subtag-registry
]=]
local function iana_extract (frame)
local page = mw.title.getCurrentTitle(); -- get a page object for this page
local content = page:getContent(); -- get unparsed content
local lang_table = {}; -- languages go here
local lang_dep_table = {}; -- deprecated languages go here
local script_table = {}; -- scripts go here
local region_table = {}; -- regions go here
local variant_table = {}; -- variants go here
local suppress_table = {}; -- here we collect suppressed scripts and associated language codes
local iso_639_1_table = {}; -- ISO 639-1 languages; not used by Module:Lang but included here to ensure Module:Language/data/ISO_639-1 gets updated
local file_date; -- first line
local code;
local descriptions;
local prefixes; -- used for language variants only
local suppress; -- a code's suppress script
local deprecated; -- boolean: true when subtag is deprecated
file_date = content:match ('(File%-Date: %d%d%d%d%-%d%d%-%d%d)'); -- get the file date line from this version of the source file
for record in string.gmatch (content, '%%%%([^%%]+)') do -- get a %% delimited 'record' from the file; leave off the delimiters
local record_type = string.match(record, 'Type: (%w+)')
if record_type == 'language' then -- if a language record
code, descriptions, suppress, deprecated = get_lang_script_region_parts (record); -- get the code, description(s), suppress script, and deprecated flag
if code and ('skip' ~= code) then
if deprecated then
table.insert (lang_dep_table, "[\"" .. code .. "\"] = {" .. descriptions .. "}"); -- make table entries
else
table.insert (lang_table, "[\"" .. code .. "\"] = {" .. descriptions .. "}"); -- make table entries
if 2 == code:len() then
table.insert (iso_639_1_table, "[\"" .. code .. "\"] = {" .. descriptions .. "}"); -- make table entries
end
end
elseif not code then
table.insert (lang_table, "[\"error\"] = {" .. record .. "}"); -- code should never be nil, but inserting an error entry in the final output can be helpful
end
-- here we collect suppress stript tags and their associated language codes;
-- prettigying the data in this table must wait until all language codes have been read
if suppress then -- if this code has a suppressed script
local suppressed_code = table.concat ({'\"', code, '\"'}); -- wrap the code in quotes
if suppress_table[suppress] then -- if there is an entry for this script
table.insert (suppress_table[suppress], suppressed_code); -- insert the new code
else
suppress_table[suppress] = {}; -- add new script and empty table
table.insert (suppress_table[suppress], suppressed_code); -- insert the new code
end
end
elseif record_type == 'script' then -- if a script record
code, descriptions = get_lang_script_region_parts (record); -- get the code and description(s)
if code and ('skip' ~= code) then
table.insert (script_table, "[\"" .. code .. "\"] = {" .. descriptions .. "}"); -- make table entries
elseif not code then
table.insert (script_table, "[\"error\"] = {" .. record .. "}"); -- code should never be nil, but ...
end
elseif record_type == 'region' then -- if a region record
code, descriptions = get_lang_script_region_parts (record); -- get the code and description(s)
if code and ('skip' ~= code) then
table.insert (region_table, "[\"" .. code .. "\"] = {" .. descriptions .. "}"); -- make table entries
elseif not code then
table.insert (region_table, "[\"error\"] = {" .. record .. "}"); -- code should never be nil, but ...
end
elseif record_type == 'variant' then -- if a variant record
code, prefixes, descriptions = get_variant_parts (record); -- get the code, prefix(es), and description(s)
if code and ('skip' ~= code) then
table.insert (variant_table,
table.concat ({
"[\"",
code,
"\"] = {<br />		[\"descriptions\"] = {",
descriptions,
"},<br />		[\"prefixes\"] = {",
prefixes,
"},<br />		}"
})
);
elseif not code then
table.insert (variant_table, "[\"error\"] = {" .. record .. "}"); -- code should never be nil, but ...
end
end
end
-- now prettify the supressed script table
local pretty_suppressed = {};
for script, code_tbl in pairs (suppress_table) do
local LIMIT = 11; -- max number of subtags on a line before a line break
local fragment_tbl = {}; -- groups of LIMIT number of subtags collected here
for i=1, #code_tbl, LIMIT do
local stop = ((i+LIMIT-1) > #code_tbl) and #code_tbl or i+LIMIT-1; -- calculate a table.concat stop position
table.insert (fragment_tbl, table.concat (code_tbl, ', ', i, stop)); -- get the fragment and save it
end
table.insert (pretty_suppressed, -- and make all pretty
table.concat ({'[\"', script, '\"] = {', table.concat (fragment_tbl, ',\n\t\t\t\t'), '}'})
);
end
table.sort (pretty_suppressed);
-- make final output pretty
return '<br /><pre>------------------------------< I A N A L A N G U A G E S >--------------------------------------------------<br />--' ..
file_date .. "<br />local active = {<br />	" .. table.concat (lang_table, ',<br />	') .. "<br />	}<br /><br />" ..
"local deprecated = {<br />	" .. table.concat (lang_dep_table, ',<br />	') .. "<br />	}<br /><br />" ..
"return {<br />	active = active,<br />	deprecated = deprecated,<br />	}<br /><br />" ..
'------------------------------< I A N A S C R I P T S >------------------------------------------------------<br />--' ..
file_date .. "<br />return {<br />	" .. table.concat (script_table, ',<br />	') .. "<br />	}<br /><br />" ..
'------------------------------< I A N A R E G I O N S >------------------------------------------------------<br />--' ..
file_date .. "<br />return {<br />	" .. table.concat (region_table, ',<br />	') .. "<br />	}<br /><br />" ..
'------------------------------< I A N A V A R I A N T S >----------------------------------------------------<br />--' ..
file_date .. "<br />return {<br />	" .. table.concat (variant_table, ',<br />	') .. "<br />	}<br /><br />" ..
'------------------------------< I A N A S U P P R E S S E D S C R I P T S >--------------------------------<br />--' ..
file_date .. "<br />return {<br />	" .. table.concat (pretty_suppressed, ',<br />	') .. "<br />	}<br /><br />" ..
'------------------------------< I S O 6 3 9 - 1 >------------------------------------------------------------<br />--' ..
file_date .. "<br />return {<br />	" .. table.concat (iso_639_1_table, ',<br />	') .. "<br />	}<br /><br />" .. "</pre>";
end
--[[--------------------------< E X P O R T E D F U N C T I O N >--------------------------------------------
]]
return {
iana_extract = iana_extract,
}
jcjvf1yt745ge4wr4fcpqbrx7ngn1u0
Module:Language/data/iana languages/make/doc
828
1876
15651
2022-08-09T08:03:30Z
Kambai Akau
15
Created page with "{{Lua|Module:No globals}} This is a crude tool that reads a local copy of an IANA [https://www.iana.org/assignments/language-subtag-registry/language-subtag-registry language-subtag-registry file] and extracts the information necessary to create the data tables held by: * [[Module:Language/data/iana languages]] * [[Module:Language/data/iana scripts]] * [[Module:Language/data/iana regions]] * [[Module:Language/data/iana variants]] * Module:Language/data/iana suppressed..."
wikitext
text/x-wiki
{{Lua|Module:No globals}}
This is a crude tool that reads a local copy of an IANA [https://www.iana.org/assignments/language-subtag-registry/language-subtag-registry language-subtag-registry file] and extracts the information necessary to create the data tables held by:
* [[Module:Language/data/iana languages]]
* [[Module:Language/data/iana scripts]]
* [[Module:Language/data/iana regions]]
* [[Module:Language/data/iana variants]]
* [[Module:Language/data/iana suppressed scripts]]
* [[Module:Language/data/ISO 639-1]] – not an IANA file per se, but used by [[Module:ISO 639 name]]; included here so that -1 is not neglected when the other files are updated
The tool skips records that contain the words: 'Deprecated', 'Preferred-Value', and 'Private use'.
At this writing, the tool extracts only the subtag code and description(s) from language, script, region, and variant records.
d7g5nnu91sc0p58p9nc9iazdu2s7sga
Module:Language/data/iana suppressed scripts
828
1877
15652
2022-08-09T08:05:09Z
Kambai Akau
15
Created page with "-- File-Date: 2022-03-02 return { ["Arab"] = {"ar", "fa", "ps", "ur"}, ["Armn"] = {"hy"}, ["Beng"] = {"as", "bn"}, ["Blis"] = {"zbl"}, ["Cyrl"] = {"ab", "be", "bg", "kk", "mk", "ru", "uk"}, ["Deva"] = {"hi", "mr", "ne", "kok", "mai"}, ["Ethi"] = {"am", "ti"}, ["Geor"] = {"ka"}, ["Grek"] = {"el"}, ["Gujr"] = {"gu"}, ["Guru"] = {"pa"}, ["Hebr"] = {"he", "iw", "yi"}, ["Jpan"] = {"ja"}, ["Khmr"] = {"km"}, ["Knda"] = {"kn"}, ["Kore"] = {"ko"}, ["Laoo"] = {"lo..."
Scribunto
text/plain
-- File-Date: 2022-03-02
return {
["Arab"] = {"ar", "fa", "ps", "ur"},
["Armn"] = {"hy"},
["Beng"] = {"as", "bn"},
["Blis"] = {"zbl"},
["Cyrl"] = {"ab", "be", "bg", "kk", "mk", "ru", "uk"},
["Deva"] = {"hi", "mr", "ne", "kok", "mai"},
["Ethi"] = {"am", "ti"},
["Geor"] = {"ka"},
["Grek"] = {"el"},
["Gujr"] = {"gu"},
["Guru"] = {"pa"},
["Hebr"] = {"he", "iw", "yi"},
["Jpan"] = {"ja"},
["Khmr"] = {"km"},
["Knda"] = {"kn"},
["Kore"] = {"ko"},
["Laoo"] = {"lo"},
["Latn"] = {"af", "ay", "bs", "ca", "ch", "cs", "cy", "da", "de", "en", "eo",
"es", "et", "eu", "fi", "fj", "fo", "fr", "fy", "ga", "gl", "gn",
"gv", "hr", "ht", "hu", "id", "in", "is", "it", "kl", "la", "lb",
"ln", "lt", "lv", "mg", "mh", "mo", "ms", "mt", "na", "nb", "nd",
"nl", "nn", "no", "nr", "ny", "om", "pl", "pt", "qu", "rm", "rn",
"ro", "rw", "sg", "sk", "sl", "sm", "so", "sq", "ss", "st", "sv",
"sw", "tl", "tn", "to", "tr", "ts", "ve", "vi", "xh", "zu", "dsb",
"frr", "frs", "gsw", "hsb", "men", "nds", "niu", "nso", "tem", "tkl", "tmh",
"tpi", "tvl"},
["Mlym"] = {"ml"},
["Mymr"] = {"my"},
["Nkoo"] = {"nqo"},
["Orya"] = {"or"},
["Sinh"] = {"si"},
["Taml"] = {"ta"},
["Telu"] = {"te"},
["Thaa"] = {"dv"},
["Thai"] = {"th"},
["Tibt"] = {"dz"}
}
odkm1h8rz17ymkehfhi5w6fftyxme8p
Module:Language/data/iana suppressed scripts/doc
828
1878
15653
2022-08-09T08:06:58Z
Kambai Akau
15
Created page with "{{High-use}} This module contains data taken directly from a local copy of an IANA [https://www.iana.org/assignments/language-subtag-registry/language-subtag-registry language-subtag-registry file]. The table in this module was created using the awb script at [[User:Trappist_the_monk/IANA_subtag_registry_file_update|IANA subtag registry file update]] or by [[Module:Language/data/iana languages/make]]. There should be no need to hand edit this table, so please do not d..."
wikitext
text/x-wiki
{{High-use}}
This module contains data taken directly from a local copy of an IANA [https://www.iana.org/assignments/language-subtag-registry/language-subtag-registry language-subtag-registry file].
The table in this module was created using the awb script at [[User:Trappist_the_monk/IANA_subtag_registry_file_update|IANA subtag registry file update]] or by [[Module:Language/data/iana languages/make]]. There should be no need to hand edit this table, so please do not do so except to reflect changes that are actually present in the source (in which case it is probably better to re-run one of the tools on a new data file).
The data in this table come from records that are not 'Deprecated', do not have a 'Preferred-Value', and are not 'Private use'.
<includeonly>{{#ifeq:{{SUBPAGENAME}}|sandbox | |
<!-- Categories below this line, please; interwikis at Wikidata -->
[[Category:Language-related modules]]
}}</includeonly>
4n7epawfijhtzhng7vvyhyxyua9fiz1
Sa:Nkungkup
14
1879
15659
2022-08-10T06:25:58Z
Kambai Akau
15
Created blank page
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Wukipedia:You may need to feed the trolls
4
1880
15665
2022-08-10T17:30:45Z
LisafBia6531
225
Created page with "{{Essay|WP:YMFTT}} [[File:Feedthetrooll.svg|thumb|right|Feed the trolls with caution.]] Any user who deliberately attempts to damage Wikipedia is a [[WP:VAN|vandal]]. A vandal who intentionally makes non-constructive edits with the goal of provoking an angry reaction from other users is a [[Troll (Internet)|troll]]. It is generally best to [[WP:DENY|deny recognition]] to all such ill-intentioned individuals. It can be difficult to determine, though, whether a particular..."
wikitext
text/x-wiki
{{Essay|WP:YMFTT}}
[[File:Feedthetrooll.svg|thumb|right|Feed the trolls with caution.]]
Any user who deliberately attempts to damage Wikipedia is a [[WP:VAN|vandal]]. A vandal who intentionally makes non-constructive edits with the goal of provoking an angry reaction from other users is a [[Troll (Internet)|troll]]. It is generally best to [[WP:DENY|deny recognition]] to all such ill-intentioned individuals. It can be difficult to determine, though, whether a particular non-constructive edit is deliberate, or whether a deliberately non-constructive edit is intended to provoke anger. Many edits that appear to be inappropriate are actually well-intended. Some apparent trolls are actually inappropriate attempts to [[WP:POINT|prove a point]] or to challenge Wikipedia policy.
Unless there is clear evidence that a particular user or a particular edit is ill-intended, however, Wikipedia users are expected to [[WP:AGF|assume good faith]].{{efn|This does not mean that inappropriate edits must be accepted. Changes may be [[WP:BRD|reverted and discussed]] if there is question about their appropriateness. In difficult cases [[WP:DR|dispute resolution mechanisms]] exist to help editors reach a consensus on controversial issues. In the worst cases, persistent vandals may be [[WP:BLOCK|blocked from editing]] for a time to protect pages from damage.}} Given the difficulty in determining intention, it is necessary to engage with other editors over points of dispute and to reach a consensus. Unfortunately, this sometimes means giving ill-intentioned editors the attention that they seek.
In short, sometimes you must feed the trolls until you can ascertain their intentions.
==Notes==
{{notelist}}
==See also==
*[[Wikipedia:Don't feed the trolls]]
*[[Wikipedia:Please be a giant dick, so we can ban you]]
*[[Wikipedia:Vandals versus Trolls]]
*[[Wikipedia:Revert, block, ignore]]
*[[Wikipedia:Most people who disagree with you on content are not vandals]]
*[[Wikipedia:Please do not bite the newcomers]]
*[[Wikipedia:Be bold]]
[[Category:Wikipedia trolling]]
03dignri6iz4n38gdbcndue0citq3vd
Ta̱mpi̱let:Essay
10
1881
15666
2022-08-10T17:31:29Z
LisafBia6531
225
Created page with "{{ {{{|safesubst:}}}#invoke:Unsubst||date=__DATE__ |$B= {{#ifeq:{{NAMESPACE}}|{{ns:0}}|{{essay-like|{{{1|article}}}|{{{2|}}}|date={{{date|}}}}}| {{Project other|{{short description|Essay on editing Wikipedia|noreplace}}}}{{ombox |type = notice |image = [[File:Essay.svg|30px]] |text = <div style="padding-top: 6px; padding-bottom: 5px;">'''This is an [[Wikipedia:Essays|essay]]{{#if:{{{interprets|}}}|<nowiki> </nowiki>on {{#ifexist:{{{interprets}}}|{{{int..."
wikitext
text/x-wiki
{{ {{{|safesubst:}}}#invoke:Unsubst||date=__DATE__ |$B=
{{#ifeq:{{NAMESPACE}}|{{ns:0}}|{{essay-like|{{{1|article}}}|{{{2|}}}|date={{{date|}}}}}|
{{Project other|{{short description|Essay on editing Wikipedia|noreplace}}}}{{ombox
|type = notice
|image = [[File:Essay.svg|30px]]
|text = <div style="padding-top: 6px; padding-bottom: 5px;">'''This is an [[Wikipedia:Essays|essay]]{{#if:{{{interprets|}}}|<nowiki> </nowiki>on {{#ifexist:{{{interprets}}}|[[{{{interprets}}}]]|{{{interprets|}}} }} }}.'''<br /><div style="font-size: 90%;">It contains the advice or opinions of one or more Wikipedia contributors. This page is not an encyclopedia article, nor is it one of [[Wikipedia:Policies and guidelines|Wikipedia's policies or guidelines]], as it has not been [[Wikipedia:Consensus#Levels of consensus|thoroughly vetted by the community]]. Some essays represent widespread norms; others only represent minority viewpoints.</div></div>
| imageright = {{#if:{{{shortcut|{{{shortcut1|{{{sc1|{{{sc|{{{1<includeonly>|</includeonly>}}}}}}}}}}}}}}} |{{Ombox/shortcut|{{{shortcut|{{{shortcut1|{{{sc1|{{{sc|{{{1}}}}}}}}}}}}}}}|{{{shortcut2|{{{sc2|{{{2|}}}}}}}}}|{{{shortcut3|{{{sc3|{{{3|}}}}}}}}}|{{{shortcut4|{{{sc4|{{{4|}}}}}}}}}|{{{shortcut5|{{{sc5|{{{5|}}}}}}}}}<noinclude>|category=no</noinclude>}} }}
}}{{#ifeq:{{{demo}}}|yes||<includeonly>{{#switch:{{NAMESPACE}}
|{{ns:4}} = {{#ifexist:Category:{{{category|{{{cat}}}}}}|[[Category:{{{category|{{{cat}}}}}}|{{PAGENAME}}]]|{{#ifexist:{{{category|{{{cat}}}}}}|[[{{{category|{{{cat}}}}}}|{{PAGENAME}}]]|{{{category|{{{cat|[[Category:Wikipedia essays|{{PAGENAME}}]]}}}}}} }} }}
|{{ns:2}} = {{#ifexist:Category:{{{category|{{{cat}}}}}}|[[Category:{{{category|{{{cat}}}}}}|{{SUBPAGENAME}}]]|{{#ifexist:{{{category|{{{cat}}}}}}|[[{{{category|{{{cat}}}}}}|{{SUBPAGENAME}}]]|{{{category|{{{cat|[[Category:User essays|{{SUBPAGENAME}}]]}}}}}} }} }}
}}</includeonly>}}}}
}}<noinclude>
{{documentation}}
<!-- Add categories and interwikis to the /doc subpage, not here! -->
</noinclude>
igbj7t2a0i5prp5us5s4xr0qnnbejaj
Module:Unsubst
828
1882
15667
2022-08-10T17:34:03Z
LisafBia6531
225
Created page with "local checkType = require('libraryUtil').checkType local p = {} local BODY_PARAM = '$B' local specialParams = { ['$params'] = 'parameter list', ['$aliases'] = 'parameter aliases', ['$flags'] = 'flags', ['$B'] = 'template content', ['$template-name'] = 'template invocation name override', } function p.main(frame, body) -- If we are substing, this function returns a template invocation, and if -- not, it returns the template body. The template body can be specif..."
Scribunto
text/plain
local checkType = require('libraryUtil').checkType
local p = {}
local BODY_PARAM = '$B'
local specialParams = {
['$params'] = 'parameter list',
['$aliases'] = 'parameter aliases',
['$flags'] = 'flags',
['$B'] = 'template content',
['$template-name'] = 'template invocation name override',
}
function p.main(frame, body)
-- If we are substing, this function returns a template invocation, and if
-- not, it returns the template body. The template body can be specified in
-- the body parameter, or in the template parameter defined in the
-- BODY_PARAM variable. This function can be called from Lua or from
-- #invoke.
-- Return the template body if we aren't substing.
if not mw.isSubsting() then
if body ~= nil then
return body
elseif frame.args[BODY_PARAM] ~= nil then
return frame.args[BODY_PARAM]
else
error(string.format(
"no template content specified (use parameter '%s' from #invoke)",
BODY_PARAM
), 2)
end
end
-- Sanity check for the frame object.
if type(frame) ~= 'table'
or type(frame.getParent) ~= 'function'
or not frame:getParent()
then
error(
"argument #1 to 'main' must be a frame object with a parent " ..
"frame available",
2
)
end
-- Find the invocation name.
local mTemplateInvocation = require('Module:Template invocation')
local name
if frame.args['$template-name'] and '' ~= frame.args['$template-name'] then
name = frame.args['$template-name'] -- override whatever the template name is with this name
else
name = mTemplateInvocation.name(frame:getParent():getTitle())
end
-- Combine passed args with passed defaults
local args = {}
if string.find( ','..(frame.args['$flags'] or '')..',', ',%s*override%s*,' ) then
for k, v in pairs( frame:getParent().args ) do
args[k] = v
end
for k, v in pairs( frame.args ) do
if not specialParams[k] then
if v == '__DATE__' then
v = mw.getContentLanguage():formatDate( 'F Y' )
end
args[k] = v
end
end
else
for k, v in pairs( frame.args ) do
if not specialParams[k] then
if v == '__DATE__' then
v = mw.getContentLanguage():formatDate( 'F Y' )
end
args[k] = v
end
end
for k, v in pairs( frame:getParent().args ) do
args[k] = v
end
end
-- Trim parameters, if not specified otherwise
if not string.find( ','..(frame.args['$flags'] or '')..',', ',%s*keep%-whitespace%s*,' ) then
for k, v in pairs( args ) do args[k] = mw.ustring.match(v, '^%s*(.*)%s*$') or '' end
end
-- Pull information from parameter aliases
local aliases = {}
if frame.args['$aliases'] then
local list = mw.text.split( frame.args['$aliases'], '%s*,%s*' )
for k, v in ipairs( list ) do
local tmp = mw.text.split( v, '%s*>%s*' )
aliases[tonumber(mw.ustring.match(tmp[1], '^[1-9][0-9]*$')) or tmp[1]] = ((tonumber(mw.ustring.match(tmp[2], '^[1-9][0-9]*$'))) or tmp[2])
end
end
for k, v in pairs( aliases ) do
if args[k] and ( not args[v] or args[v] == '' ) then
args[v] = args[k]
end
args[k] = nil
end
-- Remove empty parameters, if specified
if string.find( ','..(frame.args['$flags'] or '')..',', ',%s*remove%-empty%s*,' ) then
local tmp = 0
for k, v in ipairs( args ) do
if v ~= '' or ( args[k+1] and args[k+1] ~= '' ) or ( args[k+2] and args[k+2] ~= '' ) then
tmp = k
else
break
end
end
for k, v in pairs( args ) do
if v == '' then
if not (type(k) == 'number' and k < tmp) then args[k] = nil end
end
end
end
-- Order parameters
if frame.args['$params'] then
local params, tmp = mw.text.split( frame.args['$params'], '%s*,%s*' ), {}
for k, v in ipairs(params) do
v = tonumber(mw.ustring.match(v, '^[1-9][0-9]*$')) or v
if args[v] then tmp[v], args[v] = args[v], nil end
end
for k, v in pairs(args) do tmp[k], args[k] = args[k], nil end
args = tmp
end
return mTemplateInvocation.invocation(name, args)
end
p[''] = p.main -- For backwards compatibility
return p
eu3d3ip0gtd6n65iz4vmtpogb62rxdi
Ta̱mpi̱let:Ombox/shortcut
10
1883
15668
2022-08-10T17:35:26Z
LisafBia6531
225
Redirected page to [[Ta̱mpi̱let:Shortcut]]
wikitext
text/x-wiki
#REDIRECT [[Template:Shortcut]]
pul8ew4dlsui3eusj3pxwhvfdlo4dj9
Wukipedia:Vandalism
4
1884
15669
2022-08-10T17:36:31Z
LisafBia6531
225
Created page with "{{pp-vandalism|small=yes}}{{pp-move-indef}} {{short description|Policy on deliberate editing to obstruct or defeat Wikipedia's purpose}} {{redirect|WP:VANDAL|policies on vandalism-only accounts|Wikipedia:Vandalism-only account|the essay on the word "vandal"|Wikipedia:Avoid the word "vandal"|reporting instances of vandalism|Wikipedia:Administrator intervention against vandalism|and|Wikipedia:Requests for page protection}} {{Distinguish|Wikipedia:Disruptive editing}} {{Pol..."
wikitext
text/x-wiki
{{pp-vandalism|small=yes}}{{pp-move-indef}}
{{short description|Policy on deliberate editing to obstruct or defeat Wikipedia's purpose}}
{{redirect|WP:VANDAL|policies on vandalism-only accounts|Wikipedia:Vandalism-only account|the essay on the word "vandal"|Wikipedia:Avoid the word "vandal"|reporting instances of vandalism|Wikipedia:Administrator intervention against vandalism|and|Wikipedia:Requests for page protection}}
{{Distinguish|Wikipedia:Disruptive editing}}
{{Policy|WP:VD|WP:VAND|WP:VANDAL}}
{{nutshell|Intentionally making abusive edits to Wikipedia will result in a [[Wikipedia:Blocking policy|block]].}}
{{/VANDRightPlace}}
{{Wikipedia vandalism}}
{{conduct policy list}}
On Wikipedia, '''vandalism''' has a very specific meaning: editing (or other behavior) {{em|{{strong|deliberately}} intended to obstruct or defeat the [[Wikipedia:Five pillars|project's purpose]]}}, which is to create a free encyclopedia, in a variety of languages, presenting the sum of all human knowledge.
The malicious [[WP:PRESERVE|removal]] of encyclopedic content, or the changing of such content beyond all recognition, without any regard to our core content policies of [[Wikipedia:Neutral point of view|neutral point of view]] (which does not mean [[WP:YESPOV|no point of view]]), [[Wikipedia:Verifiability|verifiability]] and [[Wikipedia:No original research|no original research]], is a {{em|deliberate}} attempt to damage Wikipedia. There are, of course, more juvenile forms of vandalism, such as adding irrelevant [[Wikipedia:Offensive material|obscenities or crude humor]] to a page, illegitimately [[Wikipedia:Page blanking|blanking pages]], and inserting obvious nonsense into a page. Abusive creation or usage of user accounts and IP addresses may also constitute vandalism.
{{strong|Vandalism is prohibited.}} While editors are encouraged to [[#Warnings|warn]] and [[Wikipedia:Blocking policy#Preliminary: education and warnings|educate]] vandals, warnings are by no means a prerequisite for blocking a vandal (although administrators usually block only when multiple warnings have been issued).
{{strong|Even if misguided, willfully against consensus, or disruptive, any [[Wikipedia:Assume good faith|good faith]] effort to improve the encyclopedia is {{em|not}} vandalism.}} For example, [[Wikipedia:Edit warring|edit warring]] over how exactly to present encyclopedic content is not vandalism. Careful consideration may be required to differentiate between edits that are beneficial, edits that are detrimental but well-intentioned, and edits that are vandalism. If it is clear that an editor is intending to improve Wikipedia, their edits are not vandalism, {{em|even if}} they violate some core policy of Wikipedia. Mislabeling good faith edits "vandalism" can be harmful, as it makes users less likely to respond to corrective advice or to engage collaboratively during a disagreement. For that reason, avoid using the term "vandalism" unless it is clear the user means to harm Wikipedia; this is even true when warning a user with a [[Wikipedia:Template index/User talk namespace|user warning template]]. Choose the template that most closely matches the behavior you are trying to correct.
{{TOC limit|2}}
==Handling==
Upon discovering vandalism, [[Help:Reverting|revert]] such edits, using the undo function or an [[Wikipedia:Cleaning up vandalism/Tools|anti-vandalism tool]]. Once the vandalism is undone, [[#Warnings|warn]] the vandalizing editor. Notify [[Wikipedia:Administrators|administrators]] at the [[Wikipedia:Administrator intervention against vandalism|vandalism noticeboard]] of editors who continue to vandalize after multiple warnings, and administrators should intervene to preserve content and prevent further disruption by [[Wikipedia:Blocking policy|blocking]] such editors. Users whose [[Wikipedia:Vandalism-only account|main or sole purpose is clearly vandalism]] may be blocked indefinitely without warning.
==How to spot vandalism==
{{Policy shortcut|WP:HTSV|WP:SPOTVAN}}
Useful ways to detect vandalism include:
* [[Wikipedia:Recent changes patrol|Recent changes patrolling]], using the [[Special:Recentchanges|recent changes]] link to spot suspicious edits
* Keeping an eye on your [[Special:Watchlist|watchlist]]
* The [[Help:Page history|edit history]] of an article can be checked for recent suspicious edits. Article size, as given in bytes, usually increases slightly with time, so a sudden large decrease may indicate a [[wp:section blanking|section blanking]]. Similarly, if an article's size change is inappropriately large for the stated edit summary (e.g. "Fixing typo"), it's an indication of vandalism.
{{quote box|width=23em|Even in Rome itself, the City of the Popes, the vandalism of the ignorant wrought dreadful havoc.
|salign=right|source=Rev. James MacCaffrey, ''History of the Catholic Church From the Renaissance to the {{nobr|French Revolution}}''}}
In all the three methods above, examples of suspicious edits are those performed by IP addresses, [[Wikipedia:Red link|red linked]], or obviously improvised usernames. A good way to start is to click on every edit in watchlists, histories etc. with the least suspicion of being vandalism. Increased experience will probably give a sense of which edit descriptions are worth to check further and which may likely be ignored. Some descriptions like "Fixed typo" may be vandalism as that is one of the default edit summaries. IP editors should not be approached with the assumption that they are vandals. Although many vandals do vandalize without registering an account, there are many IP editors who are [[WP:HUMAN|great contributors to Wikipedia]]. Always read the actual changes made and judge on that, rather than who made the changes or what was entered in the [[Help:Edit summary|edit summary]].
* See the [[Help:What links here|what links here]] pages for [[Special:Whatlinkshere/Insert text|Insert text]], [[Special:Whatlinkshere/Link title|Link title]], [[Special:Whatlinkshere/Headline text|Headline text]], [[Special:Whatlinkshere/Bold text|Bold text]] and [[Special:Whatlinkshere/File:Example.jpg|Example Image]] to detect test edits. (See also {{tl|toolbar experiments}}).
* The [[Wikipedia:automatic edit summaries|auto-summary feature]] can also help users spot vandalism.
* Viewing the [[Special:AbuseLog|abuse log]] or this version[https://en.wikipedia.org/wiki/Special:RecentChanges?hidebots=1&hidepreviousrevisions=1&tagfilter=de-userfying%7Cadding+email+address%7Cremoval+of+articles+for+deletion+template%7CExtraneous+formatting%7Cmw-blank%7Cblanking%7Ccanned+edit+summary%7Ccategories+removed%7Cchanging+height+or+weight%7CCiting+predatory+open+access+journal%7Cremoval+of+COI+template%7Cmw-contentmodelchange%7Ccontenttranslation%7Cremoval+of+copyvio+templates%7Cextraneous+markup%7Cbad+external%7Cmobile+app+edit%7Cmobile+edit%7Cmobile+web+edit%7Cnew+blank+article%7Cmw-new-redirect%7CRapid+reverts%7Cnon-English+content%7Cnonsense+characters%7Cnowiki+added%7Cautobiography%7Cpossible+libel+or+vandalism%7Ccoi-spam%7CPossible+self+promotion+in+userspace%7Cuserspace+spam%7Cpossible+vandalism%7CPossible+vandalism%7Cmw-changed-redirect-target%7Creferences+removed%7Cremoval+of+Category%3ALiving+People%7Cmw-removed-redirect%7Cpossible+link+spam%7Crepeating+characters%7Cmw-replace%7Creverting+anti-vandal+bot%7CPossible+disruption%7CSection+blanking%7Cself-renaming+and+bad+user+talk+moves%7Cshouting%7Cremoval+of+speedy+deletion+templates%7Ctalk+page+blanking%7CEnd+of+page+text%7Cunusual+redirect&limit=50&days=7&damaging__maybebad_color=c3&damaging__likelybad_color=c4&damaging__verylikelybad_color=c5&goodfaith__likelygood_color=c1&goodfaith__maybebad_color=c3&goodfaith__likelybad_color=c4&goodfaith__verylikelybad_color=c5&urlversion=2&highlight=1] if the regular abuse log is cluttered by spambots.
* Watching for edits [[Special:tags|tagged]] by the abuse filter. However, many tagged edits are legitimate, so they should not be blindly reverted. That is, do not revert without at least reading the edit.
* Plausible, subtle changes not supported by sources or by text elsewhere in the article, particularly without an edit summary, may suggest vandalism. Changing numbers, sometimes by 1, is a common stealth tactic.
==How to respond to vandalism==
{{policy shortcut|WP:RVAN}}
If you see vandalism in an article, the simplest thing to do is just to remove or undo it, but sometimes vandalism takes place on top of older, undetected vandalism. With undetected vandalism, editors may make edits without realizing the vandalism occurred. This can make it harder to detect and delete the vandalism, which is now hidden among other edits. Sometimes [[Wikipedia:Bots|bots]] try to fix collateral damage and accidentally make things worse. Check the [[Help:Page history|page history]] to make sure you're [[Help:Reverting|reverting]] to a "clean" version of the page. Alternatively, if you can't tell where the best place is, take your best guess and leave a note on the article's [[Wikipedia:Talk page guidelines|talk page]] so that someone more familiar with the page can address the issue—or you can manually remove the vandalism without reverting it.
If you see vandalism on a list of changes (such as your [[Wikipedia:Watchlist|watchlist]]), then revert it immediately. You may use the "undo" button (and the automatic edit summary it generates), and mark the change as minor. It may be helpful to check the [[Help:Page history|page history]] to determine whether other recent edits by the same or other editors also represent vandalism. Repair all vandalism you can identify.
For a new article, if all versions of the article are pure vandalism, mark it for {{strong|[[Wikipedia:Criteria for speedy deletion|speedy deletion]]}} by tagging it with {{tlx|Db-g3}}.
To make vandalism reverts easier you can ask for the [[Wikipedia:Rollback|rollback feature]] to be enabled for your registered Wikipedia account. This feature is only for reverting vandalism and other obvious disruption, and lets you revert several recent edits with a single click. See [[Wikipedia:Requests for permissions]].
If you see that a user has added vandalism you may also check the {{strong|[[Help:User contributions|user's other contributions]]}} (click "User contributions" on the left sidebar of the screen). If most or all of these are obvious vandalism you may report the user immediately at [[Wikipedia:Administrator intervention against vandalism]], though even in this case you may consider issuing a warning first, unless there is an urgent need to block the user. Otherwise, you can leave an appropriate [[wikipedia:Template messages/User talk namespace|warning message]] on the user's {{strong|[[Wikipedia:Talk page#User talk pages|talk page]]}}. Remember that any editor may freely remove messages from their own talk page, so they might appear only in the talk history. If a user continues to cause disruption after being warned, report them at [[Wikipedia:Administrator intervention against vandalism]]. An [[Wikipedia:Administrators|administrator]] will then decide whether to [[Wikipedia:Blocking policy|block]] the user.
For repeated vandalism by an [[WP:IP|IP user]] it is helpful to trace the IP address (e.g. http://whois.domaintools.com/) and add {{tlx|whois|{{var|Name of owner}}}} to the user talk page of the address. If it appears to be a [[Proxy server|shared IP address]], add {{tlx|SharedIP|{{var|Name of owner}}}} or {{tlx|Shared IP edu|{{var|Name of owner}}}}. The ''OrgName'' on the IP trace result should be used as the <code>{{var|Name of owner}}</code> parameter in the above three templates.
===For beginners===
{{See also|Wikipedia:Cleaning up vandalism}}
For relatively inexperienced Wikipedians, use these simple steps to quickly respond to what you consider vandalism. This is essentially an abridged version of '''Wikipedia:Vandalism'''.
# {{strong|Assess}} whether the edit was made in good or bad faith. If in good faith, it is {{em|not}} vandalism as such, so question the accuracy of information on the talk page or add an [[:Template:Inline cleanup tags|inline cleanup tag]], such as a "{{tl|dubious}}" tag, to the disputed edit. If it is in bad faith, then it {{em|is}} vandalism and you may take the appropriate steps to remove it.
# {{strong|Revert}} the vandalism by viewing the page's history and selecting the most recent version of the page prior to the vandalism. Use an edit summary such as 'rv/v' or 'reverted vandalism' and click on 'Publish changes'.
# {{strong|Warn}} the vandal. Access the vandal's talk page and warn them. A simple note explaining the problem with their editing is sufficient. If desired, a [[WP:UWT|series of warning templates]] exist to simplify the process of warning users, but {{strong|these templates are not required}}. These templates include
#* Level one: {{tls|uw-vandalism1}} This is a gentle caution regarding unconstructive edits; it encourages new editors to use a sandbox for test edits. This is the mildest warning.
#* Level two: {{tls|uw-vandalism2}} This warning is also fairly mild, though it explicitly uses the word 'vandalism' and links to this Wikipedia policy. It is the first to warn that further disruptive editing or vandalism may lead to a block, however it uses the wording "loss of editing privileges" rather than "block".
#* Level three: {{tls|uw-vandalism3}} This warning is sterner. It is the first to warn that further disruptive editing or vandalism may lead to a block while actually using the word "block".
#* Level four: {{tls|uw-vandalism4|}} This is the sharpest vandalism warning template, and indicates that any further disruptive editing may lead to a block without warning.
#* Level four-im: {{tls|uw-vandalism4im|}} This warning template should be used only in the worst conditions of vandalism. It indicates that this is the only warning the target will receive, and that further disruptive edits will result in a block without warning.
# {{strong|Watch}} for future vandalism from the vandal by checking the user's contributions. If bad faith edits continue, revert them and warn them again, letting the users know that they can be blocked. Note that it is {{em|not}} necessary to use all four warning templates in succession, nor is it necessary to incrementally step through warnings.
# {{strong|Report}} vandals that continue their behavior after being warned to [[Wikipedia:Administrator intervention against vandalism]]. While not strictly required, administrators there are most likely to respond rapidly to requests which include at least two warnings, culminating in the level-four "last chance" template.
===Template and CSS vandalism===
If no vandalizing edits appear in the page's edit history, or the vandalism obscures the page tabs so you can't easily access the history or edit the page, it is probably [[Wikipedia:Template|template]] or [[Help:Cascading Style Sheets|Cascading Style Sheets]] vandalism. These are often not difficult to fix, but can be confusing.
To access the page history or edit the page when the "View history" or "Edit" tabs are inaccessible, use [[Wikipedia:Keyboard shortcuts|Wikipedia keyboard shortcuts]]. You can also access the history through a [[Wikipedia:Cleaning up vandalism|vandalism patrolling tool]] if you're using one, or from your [[Help:Watchlist|watchlist]] if you are [[Help:Watching pages|watching the page]]), or from your [[Help:User contributions|user contributions]] if you have edited the page. Or, enter the [[Uniform Resource Locator|URL]] manually into the [[address bar]] of your browser: it will take the form <code>https://<nowiki />en.wikipedia.org/wiki/{{var|Name_of_article}}?action=edit</code> or <code>https://<nowiki />en.wikipedia.org/wiki/{{var|Name_of_article}}?action=history</code>.
If vandalizing edits do not appear in the page history, the vandalism is likely in a [[Wikipedia:Transclusion|transcluded]] template instead of the page itself. To find the template page, edit the article (using [[Wikipedia:Keyboard shortcuts|Wikipedia keyboard shortcuts]] if necessary); toward the bottom of the edit page is a list of all templates transcluded into the page. Look for vandalism in the transcluded templates not [[Wikipedia:Protection policy|protected]]. Alternatively, look for {{tlf|{{var|Template name}}}} or {{tlf|{{var|Template name}}|{{var|parameter{{nbsp}}...}}}} in the text, approximately where the vandalism appears, then go to the page Template:{{var|Template name}} and revert any vandalism. When you return to the original page, the vandalism should be gone, though you may need to [[Wikipedia:Purge|purge]] the page.
===Image vandalism===
[[WP:images|Images]] are occasionally used for vandalism, such as by placing shock or explicit images where they should not be. When an image has been created exclusively for vandalism, it can be requested for speedy deletion: under criterion [[WP:CSD|G3]] if hosted on Wikipedia or as [[Commons:Commons:Deletion policy#Self-promotion or vandalism/attack|vandalism]] if hosted on [[commons:|Commons]] (a file repository for [[Wikimedia Foundation]] projects). When an image is used for vandalism due to its explicit nature but has legitimate encyclopedic uses (Wikipedia [[WP:CENSOR|is not censored]]) or is hosted on Commons and has legitimate uses on other projects, it can be requested for being added to the [[MediaWiki talk:Bad image list|bad image list]], which precludes its addition on any page except those specified.
==How not to respond to vandalism==
{{Policy shortcut|WP:NORESVAND}}
* Do not nominate a page for [[Wikipedia:Deletion policy|deletion]] because it is being vandalized. If a page is persistently vandalized, consider requesting [[Wikipedia:Protection policy|protection]] of the page at [[Wikipedia:Requests for page protection]].
* [[Wikipedia:Deny recognition|Do not feed the trolls]]. Fanning the fire will only serve to make the situation worse. Similarly, [[Wikipedia:Do not insult the vandals|do not insult the vandals]]. If someone is doing something they know is wrong, insulting them over it is likely to make them vandalize more, just to get that reaction. Furthermore, [[Wikipedia:No personal attacks|Wikipedia is not the place for personal attacks]], it is [[Wikipedia:What Wikipedia is not#BATTLE|not a battleground]], and [[Two wrongs make a right|two wrongs don't make a right]]. Instead, report them to the [[Wikipedia:Administrators|administrators]] if they continue.
* [[Wikipedia:Avoid the word "vandal"|Avoid the word "vandal"]]. In particular, this word should not be used to refer to any contributor in good standing nor to any [[Wikipedia:Assume good faith|edits that might have been made in good faith]]. This is because if the edits were made in good faith, they are [[#NOT|not vandalism]]. Assume good faith yourself; instead of calling the person who made the edits a "vandal", discuss your concerns with them. Comment on the content and substance of the edits, instead of making [[ad hominem|personal attacks]].
==Warnings==
{{WarningsSmall|align=right}}
{{Policy shortcut|WP:WARNVAND}}
The purpose of warning a user who has vandalized is to inform the user that the user's conduct is abusive and prohibited, and seek the user's compliance. Not all that appears to be vandalism is in bad faith, and a warning can politely advise and correct users unaware of the nature of their actions. A warning may even dissuade a user acting in bad faith from continuing, particularly as the warnings escalate and the user is informed of the consequences of continuing.
Warning a user for vandalism is generally a prerequisite to administrator intervention. Because of this, users should be warned for each and every instance of vandalism.
===How to warn vandalizing users===
A list of user warning templates, with descriptions and instructions for their use, is at [[Wikipedia:Template messages/User talk namespace]]. In addition to a series of user warning templates for vandalism, there are series for specific types of vandalism. Use the most specific user warning template for the conduct. The existence of these templates is intended as a convenience, and {{strong|their use is not required}}. A specifically tailored note, written personally and directly addressing the problematic behavior is equally as acceptable as a form of warning, and in many cases, will often result in better engagement with the user in question.
[[WP:Assume good faith|Assume good faith]] (such as that the user is simply unaware of the policies and guidelines) unless it is clear that the user is deliberately harming Wikipedia from the outset, such as the use of abusive, vulgar, or juvenile vandalism.
If you do choose to use warning templates, please choose templates that are appropriate to the type and level of problem in question. If edits are questionable, but not clearly vandalism, consider using lower-level templates (level 1 or 2) and wait for a few further contributions to see if the other editor responds or changes their behavior. If the behavior continues, or if it is clear the edits are in bad faith from the outset, the use of a higher-level template (level 3 or 4) may be appropriate. If, after receiving multiple warnings, the behavior persists past the point where good faith can be extended, or it becomes clear that the user has {{em|had}} the opportunity to notice they have been warned, and they {{em|still}} persist with the problematic behavior, consider reporting them to [[WP:AIV|the Vandalism noticeboard]].
===Administrator response to vandalism===
Response from administrators at the vandalism noticeboard varies depending on the type of vandalism and the specifics of the report. Keep in mind:
* Admins are unlikely to block a user who has not been warned at all, or who has been warned, but has stopped editing since being warned. It must be clear that the user has been told to stop vandalizing, and still persists despite such warnings, except for egregious cases.
* Reports of vandalism from registered accounts are handled differently than that from IP users, and reports from newly registered accounts are handled differently from accounts of experienced Wikipedia users.
** IP addresses may or may not be kept by the same person for long periods of time; a dynamic address which appears to have stopped vandalizing will probably not be blocked, while one that {{em|is}} actively vandalizing will likely receive a short (1–2 day) block. If there is evidence that an IP address is being used by the same person over a long period of time to repeatedly vandalize Wikipedia, or if it is clear the IP address is being used by multiple people to vandalize Wikipedia (such as a school-based IP, which can sometimes attract lots of juvenile vandalism over long periods of time from many different people) then an administrator may block the IP for a longer time period (several months to a year). IP addresses are almost never blocked indefinitely.
** Brand-new accounts who repeatedly vandalize despite multiple warnings are usually blocked indefinitely, especially when there is no history of quality editing on the account.
** Reports which involve experienced Wikipedia users rarely result in blocks for vandalism, as these reports are usually mislabeling other problematic behavior (such as misrepresenting sources, or removing text, or edit warring) as vandalism. The vandalism noticeboard is not designed to litigate disputes or to investigate complex behavior problems. Instead, other noticeboards such as [[WP:ANEW|the edit warring noticeboard]] or [[WP:ANI|the incidents noticeboard]] are more appropriate to deal with those issues.
* Check back in to the vandalism noticeboard to see how your report has been dealt with. If an administrator declines to block someone you report, they will always leave a note explaining why they did not respond as you requested. Often, this does not mean the person you reported is behaving properly, or should not be dealt with, but merely that the {{em|mechanisms}} of the vandalism noticeboard are not well suited for handling many types of reports. Consider taking the issue up at a more appropriate noticeboard, which has been tailored to the specific type of problem you are seeing. Other times, a report is declined for being stale (blocks to abandoned accounts, or to IP addresses which have been dormant for some time are rarely done), or to the admin being unable to easily identify the edits as vandalism.
* If the vandalism in question is "sneaky vandalism", is being committed by a person who was [[WP:SOCK|blocked under a prior account or IP address]], or requires in-depth and direct knowledge of a prior problem, consider taking the report to [[WP:ANI|the incidents noticeboard]] instead. There are hundreds of Wikipedia administrators, and many of them are unfamiliar with the intricacies of past cases. Unless it is the sort of vandalism that needs no explanation at all, it should be taken elsewhere and not [[WP:AIV]].
===Reminding responding users to correctly warn===
Because warnings for vandalism are generally a prerequisite to administrator intervention, it is important that users responding to vandalism warn vandalizing users. To inform responding users of this responsibility, use the user warning template {{tl|uw-warn}}.
Likewise, incorrect use of user warning templates, even if well-intended, should be identified to the mistaken user. The {{tl|uw-tempabuse}} series of user warning templates may be used, but a detailed talk page message is better.
==Tracing IP addresses==
{{Policy shortcut|WP:WHOIS|WP:TRACEIP}}
The owners of [[IP address]]es can be found using:
* [https://whois.arin.net/ui ARIN] (North America)
* [https://www.ripe.net/fcgi-bin/whois RIPE NCC] (Europe, the Middle East and Central Asia)
* [https://www.apnic.net/apnic-info/whois_search APNIC] (Asia Pacific)
* [https://lacnic.net/cgi-bin/lacnic/whois LACNIC] (Latin American and Caribbean)
* [https://www.afrinic.net AfriNIC] (Africa)
* [https://www.ipligence.com/geolocation/?lang=en&search# IPLigence]
* {{sic|[https://www.ip-adress.com IP-adress.com]}}
* [https://www.find-ip-address.org Find-IP-address.org]
* [https://who.is/ who.is]
If an address is not in one registry, it will probably be in another.
===Identifying associated IP addresses===
<!-- Useful though possibly overly advanced options, trying to strike a balance between "useful" and "off into the weeds". -->
If you're trying to determine whether a {{em|set}} of IP addresses involved in vandalism are related, a command-line WHOIS query will generally list this information, or can be shown using the [http://www.routeviews.org Routeviews] [[Domain Name System|DNS]] [[name server]] asn.routeviews.org reverse [[IP address|IP]] look-up to find the [[Classless Inter-Domain Routing|CIDR]] and [[Autonomous system (Internet)|ASN]] for a set of IP addresses. This can be done using [[IP address#Diagnostic tools|IP lookup tools]].
A [[Whois#Query example|WHOIS query]] will typically return NetRange, CIDR, NetName, NetHandle, and OriginAS, all of which identify specific network spaces. Data and labeling vary considerably by WHOIS registrar.
The Routeviews data is far more uniformly structured and returns ASN and CIDR as a reverse-lookup TXT query result. It is more useful and faster than WHOIS when checking multiple IP addresses and can be scripted or automated.
CIDR identifies a set of related addresses ("network space") and ASN identifies an [[Autonomous system (Internet)|Autonomous System]]—that is, a single administrative entity with control over multiple (and often very many) addresses. Some (though not all) abuse from multiple sources does come from such unified spaces—possibly corresponding to a set of hosts within a single facility.
Abuse originating in a short period of time from different IP addresses within the same CIDR or ASN may indicate a dedicated non-distributed attack, as opposed to a [[Denial-of-service attack#Distributed attack|distributed denial of service attack]].
===Proxies, VPNs and Tor exit nodes===
It's possible that a user's source location is being masked by routing traffic through a [[Proxy server]], [[VPN]] or the [[Tor (network)|Tor network]]. Such addresses typically serve many, not just one, person, and though they can be valid present challenges when used for abuse.
A proxy VPN is not necessarily detectable, but commercial services may be indicated by the hostname when resolving an IP address.
Users of the Tor anonymity network will show the IP address of a Tor "exit node". Lists of known Tor exit nodes are available from the Tor Project's [https://check.torproject.org/cgi-bin/TorBulkExitList.py Tor Bulk Exit List exporting tool].
==Types of vandalism==
{{policy shortcut|WP:VANDTYPES}}
Vandalism on Wikipedia usually falls into one or more of these categories:
{{anchor|Abuse of tags}}
===Abuse of tags===
Bad faith placing of non-content tags such as {{tl|afd}}, {{tl|db}}, {{tl|sprotected}}, or other tags on pages that do not meet such criteria. This includes baseless removal of {{tl|policy}} and related tags.
===Account creation, malicious===
Creating accounts with usernames that contain deliberately offensive or disruptive terms is considered vandalism, whether the account is used or not. For Wikipedia's policy on what is considered inappropriate for a username, see [[Wikipedia:Username policy]]. See also [[Wikipedia:Sock puppetry]].
{{anchor|Avoidance vandalism}}{{anchor|Avoidant vandalism}}
===Avoidant vandalism===
Removing {{tl|afd}}, {{tl|copyvio}} and other related tags in order to conceal deletion candidates or avert deletion of such content. However, this is often mistakenly done by new users who are unfamiliar with AfD procedures and such users should be given the benefit of the doubt and pointed to the proper page to discuss the issue.
===Blanking, illegitimate===
{{for|legitimate cases of blanking articles|Wikipedia:Redirect#Redirects that replace previous articles}}
{{anchor|Blanking}}[[WP:PRESERVE|Removing encyclopedic content]] without any reason, or replacing such content with nonsense. Content removal is {{em|not}} considered to be vandalism when the reason for the removal of the content is readily apparent by examination of the content itself, or where a non-frivolous explanation for the removal of apparently legitimate content is provided, linked to, or referenced in an edit summary.
Blanking that could be legitimate includes blanking all or part of a [[WP:LIVING|biography of a living person]]. Wikipedia is especially concerned about providing accurate and unbiased information on the living; blanking may be an effort to remove inaccurate or biased material. Due to the possibility of unexplained good faith content removal, {{tl|uw-test1}} or {{tl|uw-delete1}}, as appropriate, should be used as initial warnings for content removals without more descriptive edit summaries.
===Copyrighted material, repeated uploading of===
Uploading or using material on Wikipedia in ways which violate [[Wikipedia:Copyright problems|Wikipedia's copyright policies]] after having been warned is vandalism. Because users may be unaware that the information is copyrighted, or of Wikipedia policies on how such material may and may not be used, such action becomes vandalism {{em|only}} if it continues after the copyrighted nature of the material and relevant policy restricting its use have been communicated to the user.
===Edit summary vandalism===
Making offensive edit summaries in an attempt to leave a mark that cannot be easily expunged from the record (edit summaries cannot simply be "reverted" and require [[Wikipedia:Revision deletion|administrative action]] if they have to be removed from a page's history). Often combined with malicious account creation.
===Format vandalism===
Changing the formatting of a page unreasonably and maliciously. But many times, editors might just make an unintended mistake or are testing how the wikicode works. Sometimes it might be a bug in the Wikipedia software. Some changes to the format are not vandalism, but rather either good faith edits of editors who don't know the guidelines or simply a different opinion on how the format should look, in which case it is just a disputed edit.
===[[WP:GAME|Gaming the system]]===
Deliberate attempts to circumvent enforcement of Wikipedia policies, guidelines, and procedures by causing bad faith edits to go unnoticed. Includes marking bad faith edits as minor to get less scrutiny, making a minor edit following a bad faith edit so it won't appear on all watchlists, recreating previously deleted bad faith creations under a new title, use of the {{tl|construction}} tag to prevent deletion of a page that would otherwise be a clear candidate for deletion, or use of [[WP:SOCK|sock puppets]].
===Hidden vandalism===
Any form of vandalism that makes use of embedded text, which is not visible to the final rendering of the article but visible during editing. This includes link vandalism, or placing malicious, offensive, or otherwise disruptive or irrelevant messages or spam in hidden comments for editors to see.
===[[WP:Hoaxes|Hoaxing vandalism]]===
<span id="VDHOAXES"></span>Deliberately adding falsities to articles, particularly to [[WP:BLP|biographies of living people]], with hoax information is considered vandalism.
===Image vandalism===
Uploading shock images, inappropriately placing explicit images on pages, or simply using any image in a way that is disruptive. Please note though that [[Wikipedia:What Wikipedia is not#Wikipedia is not censored|Wikipedia is not censored for the protection of minors]] and that explicit images may be uploaded and/or placed on pages for legitimate reasons (that is, if they have encyclopedic value).
===Link vandalism===
Adding or changing internal or external links on a page to disruptive, irrelevant, or inappropriate targets while disguising them with mislabeling.
===Page creation, illegitimate===
Creating new pages with the sole intent of malicious behavior. It also includes [[WP:ATTACK|personal attack pages]] (articles written to disparage the subject), [[WP:HOAX|hoaxes]] and other intentionally inaccurate pages. There are many other types of pages that merit deletion, even [[WP:SPEEDY|speedy deletion]], but which are not vandalism. [[WP:NEWBIE|New users]] sometimes create test pages containing [[WP:NONSENSE|nonsense]] or even autobiographies, and doing so is not vandalism; such pages can also be moved to become their sandbox or userpage. Pages on non-notable topics are not vandalism. [[WP:SPAM|Blatant advertising pages]], and [[WP:POVPUSH|blatant POV pushes]], are not vandalism, but frequently happen and often lead to editors being blocked. It's important that people creating inappropriate pages be given appropriate communication; even if they aren't willing to edit within our rules, they are more likely to go away quietly if they understand why their page has been deleted.
===Page lengthening, illegitimate===
Adding very large (measured by the number of [[byte]]s) amounts of bad faith content to a page so as to make the page's load time abnormally long or even make the page impossible to load on some computers without the browser or machine crashing. Adding large amounts of good faith content is not vandalism, though prior to doing so, one should consider if splitting a long page may be appropriate (see [[Wikipedia:Article size]]).
===Page-move vandalism===
{{Policy shortcut|WP:MOVEVANDAL|WP:PAGEMOVEVANDAL|WP:MOVEVAND}}
Changing the names of pages to disruptive, irrelevant, or otherwise inappropriate names. Only [[WP:AUTOCONF|autoconfirmed or confirmed]] users can move pages.
===Redirect vandalism===
[[WP:Redirect|Redirecting]] or changing the target of redirect pages to other pages that are vandalism, nonsense, promotional, non-existent pages, or attack pages. This also applies when a redirect or its title is created only to disparage its subject. Pages that redirect to non-existent or deleted pages are also applied with [[Wikipedia:Criteria for speedy deletion#G8. Pages dependent on a non-existent or deleted page|G8]].
===Reverting to vandalism===
Reverting edits to the latest revisions that are nonsense, promotional, personal attacks, and/or harassment.
===Silly vandalism===
Adding [[profanity]], [[graffiti]], or [[WP:Patent nonsense|patent nonsense]] to pages; creating nonsensical and obviously unencyclopedic pages, etc. This is one of the most common forms of vandalism. However, the addition of random characters to pages is often characteristic of an editing test and, though impermissible, may not be malicious.
==={{anchor|Sneaky vandalism}}Subtle vandalism===
{{Policy shortcut|WP:SNEAKY}}
Vandalism that is harder to spot, or that otherwise circumvents detection, including adding plausible misinformation to articles (such as minor alteration of facts or additions of plausible-sounding hoaxes), hiding vandalism (such as by making two bad edits and reverting only one), simultaneously using [[WP:SOCK|multiple accounts]] or IP addresses to vandalize, abuse of maintenance and deletion templates, or reverting legitimate edits with the intent of hindering the improvement of pages. Impersonating other users by signing an edit with a different username or IP address also constitutes sneaky vandalism, but take care not to confuse this with appropriately correcting an unsigned edit made by another user. Some vandals even follow their vandalism with an edit that states "Rv vandalism" in the [[Help:Edit summary|edit summary]] in order to give the appearance the vandalism was reverted.
===[[Wikipedia:External links#AVOID|Spam external linking]]===
Adding or continuing to add spam external links is vandalism if the activity continues after a warning. A spam external link is one added to a page mainly for the purpose of promoting a website, product or a user's interests rather than to improve the page editorially.
===Talk page vandalism===
{{anchor|Tpv}}
Illegitimately removing or editing other users' comments, especially in closed discussions, or adding offensive comments. However, it is acceptable to blank comments constituting vandalism, [[Wikipedia:Canvassing|internal spam]], or [[Wikipedia:Harassment|harassment]] or a [[Wikipedia:No personal attacks#Removal of text|personal attack]]. It is also acceptable to identify an unsigned comment. Users are also [[WP:OWNTALK|permitted]] to remove comments from their own user talk pages. A policy of prohibiting users from removing warnings from their own talk pages was [[Wikipedia:Perennial proposals#Talk pages and discussions|considered and rejected]] on the grounds that it would create more issues than it would solve.
===Template vandalism===
Modifying the wiki language or text of a [[WP:TM|template]] in a harmful or disruptive manner. This is especially serious, because it will negatively impact the appearance of multiple pages. Some templates appear on hundreds or thousands of pages, so they are [[Wikipedia:High-risk templates|permanently protected from editing]] to prevent vandalism.
===User and user talk page vandalism===
Unwelcome, illegitimate edits to another person's user page may be considered vandalism. User pages are regarded as within the control of their respective users and generally should not be edited without the permission of the user to whom they belong. See [[WP:UP#OWN]]. This is why there is an [[Special:AbuseFilter/803|edit filter that prevents new and non-(auto)confirmed users from editing user pages other than their own]]. Related to this is [[Wikipedia:No personal attacks]].
===[[m:Vandalbot|Vandalbots]]===
A [[Internet bot|script or "robot"]] that attempts to vandalize or add spam to a mass of pages.
==<span id="NOT"></span>What is {{em|not}} vandalism==
{{policy shortcut|WP:VANDNOT|WP:NOTVAND|WP:NOTV|WP:NOTVANDALISM|WP:NOTVAN}}
Although at times the following situations may be referred to colloquially as "vandalism", they are not usually considered vandalism within the context of Wikipedia. However, each case should be treated independently, taking into consideration whether or not the actions violate Wikipedia policies and guidelines. If an editor treats situations which are not clearly vandalism as such, {{strong|it may harm the encyclopedia by alienating or driving away potential editors}}.
===[[Wikipedia:Be bold|Boldly editing]]===
Bold edits, though they may precede consensus or be inconsistent with prior consensus, are not vandalism unless other aspects of the edits identify them as vandalism. The Wikipedia community encourages users to be bold and acknowledges [[WP:BRD|the role of bold edits in reaching consensus]].
===[[Wikipedia:Copyright problems|Copyright policy violations]]===
Uploading or using material on Wikipedia in violation of Wikipedia's copyright policies is prohibited, but is not vandalism unless the user does so maliciously or fails to heed warnings. It is at least as serious an issue as vandalism and persistent offenders will ultimately get blocked, but it is well worth spending time communicating clearly with those who add copyvio as they are far more likely to reform than vandals or spammers.
==={{anchor|disruptive editing}}[[Wikipedia:Disruptive editing|Disruptive editing]] or stubbornness===
Some users cannot come to an agreement with others who are willing to talk to them about an editing issue, and repeatedly make changes against consensus. [[Wikipedia:Edit warring|Edit warring]] is not vandalism and should not be dealt with as such. [[Wikipedia:Dispute resolution|Dispute resolution]] may help. See also: [[Wikipedia:Tendentious editing|Tendentious editing]].
Starting a [[Wikipedia:Deletion process|deletion process]] in bad faith is disruptive editing, but is not vandalism. However, misusing deletion template messages ''with no intention'' to start a deletion process is vandalism by [[#Abuse of tags|abuse of tags]].
In short, all vandalism is disruptive editing, but not all disruptive editing is vandalism.
===[[Help:Edit summary|Edit summary]] omission===
The [[Help:Edit summary|edit summary]] is important in that it helps other editors understand the purpose of your edit. Though its use is not required, it is strongly recommended, even for minor edits, and is considered proper [[WP:etiquette|Wikipedia etiquette]]. Even a brief edit summary is better than none. However, not leaving edit summaries is not considered vandalism.
===Editing tests by experimenting users===
Users sometimes edit pages as an experiment. Such edits, while prohibited, are treated differently from vandalism. These users should be warned using the uw-test series of [[WP:WARN|user warning templates]], or by a talk page message including, if appropriate, a welcome and referral to the [[Wikipedia:About the Sandbox|Wikipedia sandbox]], where they can continue to make test edits without being unintentionally disruptive. Registered users can also create their own sandboxes as a [[WP:USER#How do I create a user subpage?|user subpage]]. If a user has made a test edit and then reverted it, consider placing the message {{tl|uw-selfrevert}}, on their talk page. Pages created as test edits outside of userspace may be deleted under [[WP:G2|speedy deletion criterion G2]]. Editing tests are considered vandalism only when a user continues to make test edits despite receiving numerous warnings.
===[[Wikipedia:Harassment|Harassment]] or [[Wikipedia:No personal attacks|personal attacks]]===
Personal attacks and harassment are not allowed. While some harassment is also vandalism, such as user page vandalism, or inserting a personal attack into an article, harassment in itself is not vandalism and should be handled differently.
===Incorrect [[wikipedia:How to edit a page|wiki markup]] and [[Wikipedia:Manual of Style|style]]===
Inexperienced users are often unfamiliar with Wikipedia's formatting and grammatical standards, such as how to create internal and/or external links or which words should be bolded or italicized, etc. Rather than label such users as vandals, just explain to them what the standard style would be for the issue at hand, perhaps pointing them towards the documentation at [[Wikipedia:How to edit a page|How to edit a page]], and the like.
===[[Wikipedia:What Wikipedia is not|Lack of understanding of the purpose of Wikipedia]]===
Some users are not familiar with [[WP:PURPOSE|Wikipedia's purpose]] or policies and may start editing it as if it were a different medium—such as a forum or blog—in a way that it [[Special:Diff/284393758|appears as unproductive editing]] or borderline vandalism to experienced users. Although such edits can usually be reverted, it should not be treated as vandalism.
===[[Wikipedia:Verifiability|Misinformation, accidental]]===
A user who, in good faith, adds content to an article that is factually inaccurate but in the belief that it is accurate is trying to contribute to and improve Wikipedia, not vandalize it. If you believe inaccurate information has been added to an article in good faith, remove it once you are certain it is inaccurate, or discuss its factuality with the user who has added it.
===[[Wikipedia:NPOV dispute|NPOV contraventions]]===
The neutral point of view policy is difficult for many of us to understand. Even Wikipedia veterans occasionally introduce material which is not ideal from an [[WP:NPOV|NPOV]] perspective. Indeed, we are all affected to a greater extent than we estimate by our beliefs. Though the material added may be inappropriate, it is not vandalism in itself.
===[[Wikipedia:Patent nonsense|Nonsense, accidental]]===
While intentionally adding nonsense to a page is a form of vandalism, sometimes honest editors may not have expressed themselves correctly (e.g. there may be an error in the [[syntax]], particularly for Wikipedians who use [[English as a second language]]). Also, connection errors, browser extensions, or [[Help:Edit conflict|edit conflicts]] can unintentionally produce the appearance of nonsense or malicious edits. In either case, [[Wikipedia:Assume good faith|assume good faith]].
===[[Wikipedia:Policies and guidelines#Changes to guideline and policy pages|Policy and guideline pages, good faith changes to]]===
Editors are encouraged to [[Wikipedia:Be bold|be bold]]. However, making edits to [[Wikipedia:Policies and guidelines|Wikipedia policies and guidelines]] pages, such as this one, does require some knowledge of the [[Wikipedia:Consensus|consensus]] on the issues. If people misjudge consensus, it would not be considered vandalism; rather, it would be an opportunity to discuss the matter with them, and help them understand the consensus.
===Reversion or removal of unencyclopedic material===
Even [[WP:TRUTH|factually correct]] material may not belong on Wikipedia, and removing such content when it is inconsistent with [[WP:CONPOL|Wikipedia's content policies]] is not vandalism.
Contentious material about living persons that is unsourced or poorly sourced—whether the material is negative, positive, neutral, or just questionable—should be removed immediately and without waiting for discussion, per [[Wikipedia:Biographies of living persons]].
Make sure that the removed content is consistent with Wikipedia's standards before restoring it or treating its removal as vandalism.
==See also==
{{Wikipedia glossary}}
* [[Vandalism on Wikipedia]]
* [[Wikipedia:Wikipedia Signpost/2009-06-22/Vandalism]]
===Tools===
{{see also|Wikipedia:Cleaning up vandalism/Tools}}
* [[Wikipedia:Huggle|Huggle]] – Cross-platform application for dealing with vandalism (requires [[WP:ROLLBACK|rollback]] permission).
* [[Wikipedia:Twinkle|Twinkle]] – JavaScript gadget allowing reversion of vandalism from page [[Help:Diff|diffs]].
* [[Wikipedia:RedWarn|RedWarn]] – User-friendly Javascript-based diff browser and counter-vandalism tool (works with or without [[WP:ROLLBACK|rollback]] permissions).
* [[Wikipedia:Igloo|Igloo]] – JavaScript-based browser window for reverting vandalism. (requires [[WP:ROLLBACK|rollback]] permission).
* [[Wikipedia:STiki|STiki]] – Cross-platform and Java-based anti-vandalism application. Connects to a remote, non-Wikimedia server. (requires [[WP:ROLLBACK|rollback]] permission).
* [[User:DannyS712/Undo|mobileUndo]] is a [[WP:US|userscript]] which allows you to revert vandalism on mobile.
===Guidelines===
* [[Wikipedia:Administrator intervention against vandalism|Administrator intervention against vandalism]] – intended to get administrator attention for obvious and persistent vandals and spammers
* [[Wikipedia:Cleaning up vandalism|Cleaning up vandalism]] – introduction to cleaning up vandalism
* [[Wikipedia:Criteria for speedy deletion|Criteria for speedy deletion]] – English Wikipedia policy
* [[Wikipedia:Do not create hoaxes|Do not create hoaxes]] – content guideline
* [[Wikipedia:Most vandalized pages|Most vandalized pages]] – articles that have undergone repeated vandalism
* [[Wikipedia:Recent changes patrol|Recent changes patrol]] – Wikipedia communal patrol
* [[Wikipedia:Requests for page protection|Requests for page protection]] – for protection against long-term attacks
* [[Wikipedia:Template messages/User talk namespace|Template messages/User talk namespace]] – grid of templates for user talk page warnings and notices
* [[Wikipedia:Vandalism-only account|Vandalism-only accounts]] – advice for dealing with vandalism from registered accounts
* [[Wikipedia:WikiProject user warnings|WikiProject user warnings]] – internal project for creating a complete, standardised set of user warning templates
* [[Wikipedia:WikiProject Vandalism studies|WikiProject Vandalism studies]] – internal project for conducting research related to unconstructive edits on Wikipedia (currently semi-active)
===Essays===
* [[Wikipedia:Avoid the word "vandal"|Avoid the word "vandal"]] – essay on the differences between vandals and those who make adverse edits
* [[Wikipedia:Deny recognition|Deny recognition]] – essay on not feeding the trolls
* [[Wikipedia:Do not insult the vandals|Do not insult the vandals]] – essay on vandals and civility
* [[Wikipedia:Don't be trigger happy|Don't be trigger happy]] – essay on care, courtesy, and professionalism when performing recent changes and new pages patrols
* [[Wikipedia:Don't call a spade a spade|Don't call a spade a spade]] – essay on civility and difficult editors
* [[Wikipedia:Don't template the regulars|Don't template the regulars]] – essay on how to use warning templates carefully
* [[Wikipedia:Identifying test edits|Identifying test edits]] – essay on the difference between editing tests and vandalism
* [[Wikipedia:IPs are human too|IP address editors are human too]] – essay on assuming IP address editors are able and willing to make positive contributions
* [[Wikipedia:Make protection requests sparingly|Make protection requests sparingly]] – essay recommending not overusing page protection
* [[Wikipedia:Not every IP is a vandal|Not every IP is a vandal]] – essay on the common assumption that IP address editors are vandals
* [[Wikipedia:On assuming good faith|On assuming good faith]] – essay on the relationship between the Vandalism policy and the [[Wikipedia:Assume good faith|Assume good faith]] behavioral guideline
* [[Wikipedia:The motivation of a vandal|The motivation of a vandal]] – essay on "Why would anyone wish to vandalize a source of information that benefits people?"
* [[Wikipedia:Vandals versus Trolls|Vandals versus Trolls]] – essay on the distinction between vandals and trolls
* [[User:Ritchie333/Plain and simple guide to vandalism]] – one [[WP:ADMIN|administrator]]'s view
===[[Wikipedia:Meta|Meta]]===
* [[m:Anti-vandalism ideas]]
* [[m:Vandalbot]]
* [[m:What is a troll?]]
* [[m:Small Wiki Monitoring Team]] – cross-wiki anti-vandalism
==Further reading==
* [https://tools.wmflabs.org/wmcharts/wmchart0008.php Statistics about reverts by bots, Huggle, Twinkle] in wmcharts
* {{Cite web|url=https://medium.com/pcmag-access/how-i-used-lies-about-a-cartoon-to-prove-history-is-meaningless-on-the-internet-6c88bcbc62d7|title=How I Used Lies About a Cartoon to Prove History is Meaningless on the Internet |date=15 June 2020}}
{{Wikipedia policies and guidelines}}
[[Category:Wikipedia vandalism| ]]
[[Category:Wikipedia conduct policies]]
[[Category:Wikipedia how-to|{{PAGENAME}}]]
dd4hd22bataoz0wf75wfmpm4uksedxv
Beang:Si̱sa
12
1885
15681
15680
2022-08-11T21:51:35Z
Kambai Akau
15
wikitext
text/x-wiki
{{dablink|For guidelines on the use of categories on Wikipedia, see [[Wikipedia:Categorization]]. For a basic readers' guide, see [[Help:Categories]]. For quick answers, see the [[WP:FAQ/Categories|readers' FAQ]] or the [[WP:FAQ/Categorization|editors' FAQ]] on categories. For a list of categories, see [[Special:Categories]].}}
{{hatnote|This page describes editing with the source editor. See {{slink|Help:VisualEditor|Editing categories}} for [[Wikipedia:VisualEditor|VisualEditor]].}}
{{Information page|H:CAT}}
{{Namespaces}}
Á̱ fa '''si̱sa''' ji na yet susot ntung ngwat na̱ tai a̱ghyang a̱ni ndung. They are implemented by a [[MediaWiki]] feature that adds any page with a text like <code>[[<nowiki />Category:''XYZ'']]</code> in its wiki markup to the automated listing that is the category with name ''XYZ''. Categories help readers to find, and navigate around, a subject area, to see pages sorted by title, and to thus find article relationships.
Categories are normally found at the bottom of an article page. Clicking a category name brings up a category page listing the articles (or other pages) that have been added to that particular category. There may also be a section listing the ''subcategories'' of that category. The subcategorization feature makes it possible to organize categories into tree-like structures to aid navigation.
The term ''category'' does refer to both the title of a category page—the ''category pagename''—and the category itself. Keeping this in mind while reading about categorization, plus learning a category page layout is a worthwhile investment in research techniques. (See also the search box parameter "[[H:S#Parameters|incategory]]".) The layout of a category page is mostly text, but see about ''[[#Displaying category trees and page counts|displaying category trees]]'' below.
==Nam-a̱lyiat==
The MediaWiki software maintains tables of ''categories'', to which any editable page can be added. To add a page to a category, include "<code>[[<nowiki />Category:''Category name'']]</code>" or "<code>[[<nowiki />Category:''Category name''|''Sortkey'']]</code>" in that page's [[Help:Wiki markup|wiki markup]]. The categories to which a page belongs appear in a box at the bottom of the page.
A category is usually associated with a ''category page'' in the "Category:" [[WP:Namespace|namespace]].<ref>The category itself is permanently created as soon as it has been saved on to any page. Unless you create a ''category page'', it will display as a red link. Unless you add another category to the category page, it will not be placed in the category tree. Category pages are created like any other page. Most commonly, editors click on the redlink in an article and create the category page that way.</ref> A category page contains text that can be edited, like any other page, but when the page is displayed, the last part of what is displayed is an automatically generated list of all pages in that category, in the form of links. Other category pages which appear in this list are treated separately, as ''subcategories''.
[[File:Chicken_Eyeglasses_categories.png|center|thumb|900x900px|The bottom of a Wikipedia article on [[Chicken eyeglasses]]. At the very bottom of the page, below the References, navigation templates and external links are a series of links. These links are the categories used on the page, which include: [[:Category:Animal welfare|Category:Animal welfare]], [[:Category:Animal equipment]], [[:Category:Eyewear]], and [[:Category:Poultry farming]]. By clicking on the category link at the bottom of the page, readers can navigate the Category tree.]]
==Category page definition==
A ''category page'' is any page in the {{ns:category}} namespace. They each act as a category, and are termed a "category". The category page has one section titled '''Subcategories''' listing other "categories", and one section titled '''Pages''', listing pages as categorized (in ''other'' namespaces). New categories are created by [[wp:How to create a page|creating a page]] in the Category namespace.
A category page can be edited like any other page. However, when it is displayed, the editable part of the page is followed by automatically generated lists of pages belonging to the category, as follows:
* First a count and list of subcategories (other category pages belonging to the category) is shown, if any exist. The name of each subcategory is followed by counts like "(6 C, 38 P, 2 F)", meaning this subcategory contains 6 subcategories, 38 pages, and 2 files. Counts of 0 are omitted. The further subcategories are expanded in the display if the <span style="color:#0645AD;">►</span> sign alongside the subcategory is clicked (but this "[[web widget|widget]]" is only visible if your browser has [[JavaScript]] enabled). Note: <span style="color:#C0C0C0;">►</span> is shown if there are no further subcategories. The subcategory is collapsed again if <span style="color:#0645AD;">▼</span> is clicked.
* Next a count and list of pages in the category (excluding subcategories and images) is shown. If the category has no members, a message to that effect is displayed.
* Next a count and list of image and other media files in the category appears, if any exist. These are shown with thumbnails. The first 20 characters of the file name are shown, with an ellipsis if that is not the full name; also the file size is shown.
The items in the lists all link to the pages concerned; in the case of the images this applies both to the image itself and to the text below it (the name of the image).
For the way in which the lists are ordered, see [[#Sorting category pages|Sorting category pages]] below. The first and second lists are divided into sections, according to the first character of the sort key. These initial characters are displayed above the sections. To suppress these, make all sort keys start with a space.
A category page can only display a limited number of items (currently 200). If more pages belong to the category, there will be a link to the next ones.
{{anchor|Parent category}} The categories box for the category page appears at the bottom, in the same place as for other pages. This contains the categories to which the current category page has been added, i.e., its ''parent categories'' (the categories of which it is a subcategory). Add a category page to other categories in the normal way, using the "[[<nowiki />Category:''Category name'']]" or "[[<nowiki />Category:''Category name''|''Sortkey'']]" syntax.
===Putting pages into categories {{anchor|Putting pages in categories}}===
{{Shortcut|WP:PAGECAT}}
A page becomes part of a category if the page's wiki markup contains a declaration for that category. A category declaration takes the form <code>[[<nowiki />Category:''Category name'']]</code> or <code>[[<nowiki />Category:''Category name''|''Sortkey'']]</code>. The declaration must be processed, i.e. it will not work if it appears between {{tag|nowiki}} or {{tag|includeonly}} tags, or in a comment. The declaration may however come from a [[WP:Transclusion|transcluded]] page; see [[#Categories and templates|Categories and templates]] below.
A category name can be any string that would be a legitimate [[WP:Page title|page title]]. If the category name begins with a lower-case letter, it will be capitalized. For initial lower-case letters, as in [[:Category:macOS]], see the [[Wikipedia:Naming_conventions_(technical_restrictions)#Lowercase_first_letter|technical restrictions]] page.
On Wikipedia, it is customary to place category declarations at the end of the wiki markup, but before any [[WP:Stub|stub]] templates (which themselves transclude categories) and [[Help:Interwiki linking|interlanguage links]].
When a page has been added to one or more categories, a categories box appears at the bottom of the page (or possibly elsewhere, if a non-default [[WP:Skin|skin]] is being used). This box contains a list of the categories the page belongs to, in the order in which the category declarations appear in the processed wiki markup. The category names are [[Help:Link|linked]] to the corresponding category pages. They appear as [[Wikipedia:Red link|red links]] if the corresponding category page does not exist. If a user has enabled the [[WP:HOTCAT|HotCat]] gadget, the categories box will also provide links to quickly add, remove, or modify category declarations on the page, without having to edit the whole page.
Hidden categories are not displayed, except as described below under [[#Hiding categories|Hiding categories]].
==Working with category pages==
The following subsections are ordered from simple actions to more elaborate or rarer actions.
===Linking to category pages===
To link to a category page ''without'' putting the current page in that category, precede the link with a colon: [[<nowiki />:Category:''Category name'']]. Such a link can be [[Help:Piped link|piped]] like a normal wikilink. (The {{tl|cl}} template, and others listed on its documentation page, may sometimes be helpful.)
===Retrieving raw category information===
Raw information about the members of a category, their sortkeys and timestamps (time when last added to the category) can be obtained from the [[mw:API|API]], using a query of the form:
:<nowiki>https</nowiki>://en.wikipedia.org/w/api.php?cmtitle=Category:''Category_name''&action=query&list=categorymembers&cmlimit=500&cmprop=title|sortkey|timestamp
Listings of up to 500 members are possible. If there are more members then the results will include text near the end like this: <syntaxhighlight lang=xml inline><categorymembers cmcontinue="page|NNNN|TITLE" /></syntaxhighlight>.
This can be added to the previous one, without quotation marks, for the next page of members: <code>...&cmcontinue=page|NNNN|TITLE</code>
===Sorting category pages===
{{See also|WP:Categorization#Sort keys|Help:Sorting}}
{{Shortcut|WP:SORTCAT}}
By default, a page is sorted under the first character of its name, without the namespace. English Wikipedia groups accented characters together with their unaccented version, so pages starting with À, Á, Ä, will be listed under heading A. Sorting is case-insensitive, so "ABC" comes after "Abacus".
Unlike at [[Special:Allpages]] and [[Special:Prefixindex]], a space is treated as a space (coming before all other characters), not as an underscore.
The English Wikipedia has [[meta:Community Tech/Numerical sorting in categories|numerical sorting in categories]]. This means a page whose title begins with a number will be sorted according to the numeric value of the number (even if it is multiple digits). Thus "9 dogs", "25 dogs", and "112 dogs" will all appear under the "0–9" heading in numeric order. If the number includes a comma, space, or period, the sorting algorithm will only consider the part of the number before the separator.
Each of the three lists (subcategories, pages, media files) is arranged in the order explained above (except that, in the subcategories list, the namespace indicator "Category:" is not considered). If an item ought to be positioned within a list on the basis of an alternative name (sort key) for that item, then this can be specified in the category tag that places the item in the list:
<code><nowiki>[[</nowiki>Category:''Category name''|''Sortkey''<nowiki>]]</nowiki></code>
For example, to add an article called [[Albert Einstein]] to [[:Category:1879 births]] and have the article sorted by "Einstein, Albert", you would type:
<code><nowiki>[[Category:1879 births|Einstein, Albert]]</nowiki></code>
Unlike a [[Help:Piped link|piped link]] (which uses the same syntax), the sort key itself is not displayed to readers. It affects only the order in which pages are listed on the category page.
It is useful to document the system being used for sort keys on the category page. For guidelines about the use of sort keys on Wikipedia, see [[WP:SORTKEY]].
====Default sort key====
{{Shortcut|WP:DEFAULTSORT}}
{{see also|WP:NAMESORT|WP:SORTKEY}}
It is possible to set a default sort key which is different from <code><nowiki>{{PAGENAME}}</nowiki></code> by using the [[Help:magic words|magic word]] <code><nowiki>{{DEFAULTSORT}}</nowiki></code>:
<nowiki>{{DEFAULTSORT:new key}}</nowiki>
This is often used in biography articles, to make sure the subject is sorted by their last name:
<nowiki>{{DEFAULTSORT:LastName, FirstName}}</nowiki>
For example, on the [[Albert Einstein]] page, <code><nowiki>{{DEFAULTSORT:Einstein, Albert}}</nowiki></code> adds the sort key "Einstein, Albert" to all his categories, such as [[:Category:1879 births]].
In the case of multiple default sort key tags, the last DEFAULTSORT on the final rendering of a page applies for all categories, regardless of the position of the category tags. This also means that a DEFAULTSORT tag included from a template is not effective if another DEFAULTSORT tag occurs later on the page, even if the later DEFAULTSORT tag is also "hidden" (included by another template). If a category is added inside {{tag|ref}} then [[phab:T40435|DEFAULTSORT may be ignored]].
===Searching for pages in categories===
{{more|Help:Searching#Syntax}}
{{see also|1=#Searching for articles in categories|2=Wikipedia:Category intersection|3=phab:T3497|l3=Wikimedia bug T3497 "Hierarchical category system is urgently needed"}}
In addition to browsing through hierarchies of categories, it is possible to use the search tool to find specific articles in specific categories. To search for articles in a specific category, type '''incategory:"''CategoryName''"''' in the search box.
<!-- The following section use to reference using OR between separate incategory: terms to perform a boolean or, but this hasn't worked for years: https://phabricator.wikimedia.org/T164589 -->
A pipe "|" can be added to join the contents of one category with the contents of another. For example, enter
::<code>incategory:"Suspension bridges|Bridges in New York City"</code>
to return all pages that belong to either (or both) of the categories, as [{{fullurl:Special:Search|search=incategory%3A%22Suspension+bridges%7CBridges+in+New+York+City%22&ns0=1&fulltext=Search}} here].
Note that using search to find categories will not find articles which have been categorized using templates. This feature also doesn't return pages in subcategories.
<inputbox>
type=fulltext
width=25
namespaces=Category**
searchbuttonlabel=Search Category namespace
break=no
placeholder=i.e. "A-Class" Wikipedia books
</inputbox>
===Listing all categories===
[[Special:Categories]] provides an alphabetic list of all categories, with the number of members of each; this number does not include the content of the subcategories, but it includes the subcategories themselves, i.e., each counting as one.
The above list contains all categories that have members, regardless of whether they have corresponding category pages. To list all existing category pages (regardless of whether they have members), use [[Special:AllPages/Category:]].
===Displaying category trees and page counts===
As described at [[mw:Help:Magic words]], <code><nowiki>{{</nowiki>PAGESINCATEGORY:''Example''}}</code> or <code><nowiki>{{</nowiki>PAGESINCAT:''Example''}}</code> returns the number of pages in "Category:Example". Each subcategory counts as one page; pages in subcategories are not counted.
The page [[Special:CategoryTree]] enables you to see the tree structure of a category (its subcategories, their subcategories and so on; the display of files and other member pages is optional).
The [[mw:Extension:CategoryTree|CategoryTree extension]] can be used to display such a tree on any page. (This is sometimes done on the category page itself, if the category is split over multiple screens, to make all subcategories available on every screen.) The basic syntax is
* <code><nowiki><categorytree></nowiki>''Category name''<nowiki></categorytree></nowiki></code>
to display just the subcategory tree, and
* <code><nowiki><categorytree mode=pages></nowiki>''Category name''<nowiki></categorytree></nowiki></code>
to display member pages as well. They will be indicated by italics.
[[User:Dapete|Dapete's]] category-visualizer [[meta:User:Dapete/vCat#English|vCat]] will render charts of the tree structure.
You may also use [[Template:Category tree]] or [[Template:Category tree all]], instead.
Warning:
: The following code <code><nowiki>{{PAGESINCATEGORY:{{PAGENAME}}}}</nowiki></code> will not work as expected when used in the wikitext or in a transcluded template in a category page whose title contains some ASCII punctuations.
: For legacy reasons, <code><nowiki>{{PAGENAME}}</nowiki></code> may return the page name with these characters being HTML-encoded using numeric character entities : this still works for generating derived wikilinks or displaying page names, or when HTML-encoded this page name is used in a conditional "#switch", but PAGESINCATEGORY does not recognize the category name given in parameter if some characters are HTML-encoded (this is the case notably when the category name contains ASCII apostrophes <code>'</code> and a few other ASCII punctuations. (The same HTML-encoding is also applied to the values returned by <code><nowiki>{{FULLPAGENAME}}</nowiki></code>, <code><nowiki>{{SUBPAGENAME}}</nowiki></code>, or <code><nowiki>{{NAMESPACE}}</nowiki></code>).
: In that case, as the category is not found by its HTML-encoded pagename, PAGESINCATEGORY will unexpectedly return 0 and not its effective number of member pages.
: A simple workaround is to transform these HTML-encoded characters back into standard UTF-8-encoded characters, by using the <code><nowiki>{{</nowiki>titleparts:<nowiki>}}</nowiki></code> parser function, like this:
: <code><nowiki>{{</nowiki>PAGESINCATEGORY:<nowiki>{{</nowiki>titleparts:<nowiki>{{</nowiki>PAGENAME<nowiki>}}}}}}</nowiki></code>
{{Anchor|Populate}}
===Moving and redirecting category pages===
[[Help:Moving a page#How to move a category|Categories can be moved]] in the same way as an ordinary page; but a certain amount of cleanup may be necessary. A redirect is left at the old category name, and this is not a normal <code><nowiki>#REDIRECT [[...]]</nowiki></code> but a {{tlx|category redirect}}. Once all the pages have been moved out of the old category, it may be left as a category redirect or deleted. For categories entirely populated through templates (see above), modifying the templates enables all affected articles to be moved to another category, but with the refresh problem mentioned. Almost all category name changes are made pursuant to a consensus decision at [[Wikipedia:Categories for discussion]].
Do not create intercategory redirects other than with a {{tlx|category redirect}} template. See [[Wikipedia:Categories for discussion#Redirecting categories]] for more on category redirects.
=== Hiding categories ===
<!--[[Help:Hidden category]] and [[Help:Hidden categories]] redirect here-->
When the [[Help:Magic words|magic word]] <code><nowiki>__HIDDENCAT__</nowiki></code> is placed on a category page, that category becomes ''hidden'', meaning that it will not be displayed on the pages belonging to that category. On Wikipedia, the magic word is not normally used explicitly, but is applied through the {{tl|hidden category}} template. The feature is mostly used to prevent project maintenance categories from showing up to ordinary readers on article pages.
However, hidden categories ''are'' displayed (although listed as hidden):
* on category pages (whether as parent categories or subcategories);
* at preview during editing;
* if the user has selected "Show hidden categories" in user preferences.
Hidden categories are automatically added to [[:Category:Hidden categories]].
For guidelines on the hiding of categories on Wikipedia, see [[WP:HIDDENCAT]].
{{anchor|Adding a category by using a template}}
==Finding articles for a category==
The most effective way of finding entries of a category is using the "[[Help:What links here|What links here]]" tool on the category's main article.
An easy way to find relevant articles for a new category or missing entries in an existing one is by finding the most relevant [[Help:List|list]] and checking its entries. Sometimes categories are about things that are [[Wikipedia:Category intersection|intersections of other categories]] for which the [https://petscan.wmflabs.org/ PetScan tool] can be used.
More relevant articles may also be found linked in a category's main article and the articles already featured in the category − especially in their [[WP:ALSO|"See also"]] sections (if existent) and the automatically suggested "RELATED ARTICLES" below them.
Furthermore, a category's superordinate categories often feature articles that should be subcategorized to the category.
Other ways to find relevant articles include [[Special:Search|searching Wikipedia]] for the category's topic and searching the Web for the topic in quotes <code>"</code> (with synonyms also in quotes and appended after an <code>OR</code>) and appending the word <code>wiki</code> or <code>Wikipedia</code> or <code>site:Wikipedia.org</code> to them<!-- − e.g. insert linked example here-->.
==Categorizing==
{{main|Wikipedia:Categorization}}
===Categorizing templates===
Templates are categorized the same way as articles, except that <code><nowiki>[[Category: Some-topic templates]]</nowiki></code> should be placed on the template's documentation page (or inside {{tag|noinclude}} tags, if there is no documentation page), this is necessary to avoid ''categorizing pages by template inclusion'' (see below).
===Categories and templates===
A template can be used to add pages to a category, usually by placing the category link inside ''<nowiki><includeonly></includeonly></nowiki>'' tags on the template (e.g. <code><nowiki><includeonly>[[Category:category name]]</includeonly></nowiki></code>). When the template is transcluded into the page, the category link becomes active, and the page is added to the category page. This is useful for categories that have high turnover or many pages included, like cleanup categories.
Changes to the template, however, may not be reflected immediately on the category page. When you edit an article to add a category tag directly, the list of category members is updated immediately when the page is saved. When a category link is contained in a template, however, this does not happen immediately: instead, whenever a template is edited, all the pages that transclude it are put into the [[Help:job queue|job queue]] to be recached during periods of low server load. This means that, in busy periods, it may take hours or even days before individual pages are recached and they start to appear in the category list. Performing a [[Help:Null edit|null edit]] to a page will allow it to jump the queue and be immediately recached.
To add the template itself to the category page as well, omit the "includeonly" tags. To add the template to a category ''without'' categorizing pages on which the template is transcluded, place the category declaration between <noinclude>...</noinclude> tags, or add it to the [[Wikipedia:Template documentation|template documentation]] page between ''<nowiki><includeonly></includeonly></nowiki>'' (the latter allows recategorizing the template without editing it, which is helpful if it is protected, or so complicated that mere mortals hesitate to touch it).
[[Help:Parser function|Parser functions]] can be used to make the transcluded categories, or the sort key used in them, dependent on other variables, notably PAGENAME.
;Passing a category name as a parameter:<nowiki><includeonly>[[Category:{{{cat|default}}}]]</includeonly></nowiki> or <nowiki><includeonly>{{{cat|[[Category:default]]}}}</includeonly></nowiki><br />If the user provides a parameter 'cat=XXX' the page will be categorized at the page '''<nowiki>[[Category:XXX]]</nowiki>''', otherwise it will be categorized at the page '''<nowiki>[[Category:default]]</nowiki>'''. Calling the template with "cat=" (equal to nothing) disables putting the page in any category.
;Excluding non-article pages:<nowiki><includeonly>{{#if:{{NAMESPACE}} | | [[Category:XXX]]}}</includeonly></nowiki><br />the variable NAMESPACE is null for mainspace articles. For any space other than mainspace, this ParserFunction will produce an empty string, but for regular articles this will include the article in Category:XXX.
On Wikipedia it is not recommended that templates be used to populate ordinary content categories of articles. See [[Wikipedia:Categorization#Categorization using templates|Categorization using templates]] in the categorization guideline.
===Categorizing redirect pages===
{{main|Wikipedia:Categorizing redirects}}
Redirect pages can be categorized and there are conventions on how to do it. The redirect link must be first on the page. On a category page, redirects are listed in italics.
==="Related Changes" with categories===
For a category, the "[[Help:Related changes|Related Changes]]" feature, when applied to the corresponding category page, lists recent changes to the pages which are currently listed as belonging to a category. Where those pages are subcategories or image pages, only changes to their ''editable parts'' are listed.
Notice that "Related Changes" does ''not'' show edits to pages that have been removed from the category.
Also, "Related Changes" does ''not'' list recent changes to pages linked from the editable part of the category page (as it would normally, with a non-category page). If a workaround would be required, the links in question could be placed in a template and transcluded onto the category page.
As usual – unlike with [[Help:watchlist|watchlists]] – recent changes to corresponding [[Help:Talk page|talk pages]] are ''not'' shown under "Related Changes". Pages one is watching are bolded on the list. This can help to find which pages in a given category one has on one's watchlist.
The [[mw:Extension:DynamicPageList (third-party)|DynamicPageList (third-party)]] extension provides a list of ''last'' edits to the pages in a category, or optionally, just the list of pages; the simpler [[mw:Extension:DynamicPageList (Wikimedia)|DynamicPageList (Wikimedia)]] is installed on Meta, Wikinews, [[b:Template:RC|Wikibooks]] and Wikiversity; the extension [[mw:Extension:DPLforum]] is installed on Wikia.
=== Watching category additions and removals ===
Since [[phab:T9148|2016]], additions and removals from categories are available via the [[mw:Help:New filters for edit review/Filtering#Type of change|"Category changes" filter]] on recent changes pages, including [[Help:Watchlist|watchlists]] and [[Special:RecentChangesLinked]]. For example, category changes to articles in [[:Category:Cannabis stubs]] can be [{{fullurl:Special:RecentChangesLinked|hidepageedits=1&hidenewpages=1&hideWikibase=1&hidelog=1&target=Category%3ACannabis_stubs&days=30&urlversion=2}} found here]. You can monitor additions and removals from specific categories by adding the categories to your watchlist and making sure the "Category changes" filter is active. You can view changes to categories in your watchlist by [{{fullurl:Special:Watchlist|hidemyself=1&hidepageedits=1&hidenewpages=1&hideWikibase=1&hidelog=1&days=30&urlversion=2}} clicking here]. Additional scripts with similar functionality are [[User:CategoryWatchlistBot]] and [[User:Ais523/catwatch]].
<!-- What if they were added via a template?
Old text: "Related Changes" can be used to find pages which have recently been added to a category, unless they were added through modification of a template; then [[Help:What links here|"What links here"]] should be used with the template. -->
==See also==
* [[mw:Help:Categories|MediaWiki: Help:Categories]]
* [[Template:Category TOC]]
* [[Wikipedia:FAQ/Categorization]]
* [[Wikipedia:WikiProject Categories]]
* [[Wikipedia:Quick cat index]]
* [[Wikipedia:Moving_a_page#How_to_move_a_category|How to move a category.]]
==Notes==
<references />
{{Help navigation}}
{{Wikipedia technical help|collapsed}}
{{Wikipedia categorization navbox}}
[[Category:Wikipedia categorization| ]]
[[Category:Wikipedia how-to]]
[[Category:Wikipedia page help]]
25h889rvm2w1umkahqd5fug08o9gvv1
Beang:Categories
12
1886
15679
2022-08-11T21:47:59Z
Kambai Akau
15
Kambai Akau shyei peji [[Beang:Categories]] nat [[Beang:Si̱sa]]: Di̱n Tyap
wikitext
text/x-wiki
#REDIRECT [[Beang:Si̱sa]]
896h4i77bay6vh029fka94rclh1lrig
Sa:Mang nhyet
14
1887
15685
2022-08-11T22:00:56Z
Kambai Akau
15
Created blank page
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Sa:Nkyang a̱kat
14
1888
15686
2022-08-11T22:01:11Z
Kambai Akau
15
Created blank page
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Ta̱mpi̱let:Cite EB1911
10
1889
15687
2022-08-11T22:03:23Z
Kambai Akau
15
Created page with "<!-- optional icon - included by default -->{{#if:{{{no-icon|{{{noicon|}}}}}}||{{#ifeq: {{{wstitle|}}}||<span class="noprint">[[File:PD-icon.svg|12px|class=noviewer|alt=|link=]] </span>}}}}<!-- optional public domain icon when wstitle is missing or empty -->{{#invoke:template wrapper|{{#if:{{{_debug|}}}|list|wrap}}|_template=cite encyclopedia |_exclude=display, no-icon, noicon, short, wstitle, language, lang, _debug |_reuse=chapter, title, url <!-- these are r..."
wikitext
text/x-wiki
<!--
optional icon - included by default
-->{{#if:{{{no-icon|{{{noicon|}}}}}}||{{#ifeq: {{{wstitle|}}}||<span class="noprint">[[File:PD-icon.svg|12px|class=noviewer|alt=|link=]] </span>}}}}<!-- optional public domain icon when wstitle is missing or empty
-->{{#invoke:template wrapper|{{#if:{{{_debug|}}}|list|wrap}}|_template=cite encyclopedia
|_exclude=display, no-icon, noicon, short, wstitle, language, lang, _debug
|_reuse=chapter, title, url <!-- these are reused -->
|_alias-map=name-list-format:name-list-style,accessdate:access-date,authorlink:author-link
|editor-first={{#if:{{{short|}}}||Hugh}}
|editor-last={{#if:{{{short|}}}||Chisholm}}
|encyclopedia=[[Encyclopædia Britannica Eleventh Edition|Encyclopædia Britannica]]
|title={{#if:{{{wstitle|}}}|{{cite wikisource/make link
|link=1911 Encyclopædia Britannica/{{{wstitle}}}
|label={{{display|{{{wstitle|}}}}}}
|noicon={{{no-icon|{{{noicon|}}}}}}
}}|{{#if:{{{title|}}}|{{{title}}}}}}}
|chapter={{#if:{{{chapter|}}}
|{{#if:{{{wstitle|}}}{{{title|}}}
|{{cite wikisource/make link
|link=1911 Encyclopædia Britannica/{{{wstitle}}}
|anchor={{{chapter|}}}
|label={{{chapter|}}}
|noicon={{{noicon|}}}
}}
|{{{chapter|}}}<!-- else #if NOT wstitle OR title; cs1|2 will emit a missing title error message here because no title -->
}}<!-- end #if wstitle, title -->
}}<!-- end #if chapter -->
|url={{#if:{{{wstitle|}}}||{{{url|}}}}}
|edition=11th
|date=1911
|language=en
|publisher={{#if:{{{short|}}}||Cambridge University Press}}
}}<noinclude>
{{documentation}}</noinclude><!--
--><includeonly><!--
-->{{#ifeq: {{NAMESPACEE}} |<!--is set-->
|<!--Sort out the parameters-->
{{#ifeq: {{#if: {{{wstitle|}}}|{{{wstitle}}}}}|<!--eq to empty-->
|<!-- then-->
{{#ifeq: {{#if: {{{title|}}}|{{{title}}}|}}|<!--eq to empty-->
|<!--then-->[[Category:Wikipedia articles incorporating a citation from the 1911 Encyclopaedia Britannica with no article parameter]]
|<!--else-->[[Category:Wikipedia articles incorporating a citation from the 1911 Encyclopaedia Britannica without Wikisource reference]]
}}<!--end title-->
|<!--else-->[[Category:Wikipedia articles incorporating a citation from the 1911 Encyclopaedia Britannica with Wikisource reference]]
}}<!--end of check wstitle-->
|<!--else not in NAMESPACE do nothing-->
}}<!--end NAMESPACE no white space
--></includeonly><!--DO NOT PUT A BLANK LINE AFTER THIS COMMENT-->
mcln8pxsv0xp36mt3jecnkllay0doz9
Ta̱mpi̱let:Cite EB1911/doc
10
1890
15689
15688
2022-08-11T22:07:49Z
Kambai Akau
15
wikitext
text/x-wiki
{{Documentation subpage}}
{{High-use}}
<!-- PLEASE ADD CATEGORIES AT THE BOTTOM OF THIS PAGE. -->
{{Lua|Module:template wrapper}}
==Usage==
This template indicates that an article incorporates information from the [[Encyclopædia Britannica Eleventh Edition|Eleventh Edition of the ''Encyclopædia Britannica'']], a work now in the [[public domain]].
If the Wikipedia article incorporates a copy of '''text''' from (or close paraphrasing of) an article in the [[Encyclopædia Britannica Eleventh Edition|Eleventh Edition of the ''Encyclopædia Britannica'']], then use the template {{Template link|EB1911}} which prepends an attribution string to the citation (see the [[WP:PLAGIARISM|plagiarism]] guideline).
===Error message===
This template ''requires'' a title parameter: <kbd>title=</kbd> or <kbd>wstitle=</kbd> to associate the source of the text being used with a specific part of the massive encyclopaedia from which it is copied or paraphrased. More information on these and other parameters are set out below. In the absence of a title parameter being supplied, the template will display the error message <sup><span style="color:red">article name needed</span></sup> and set a category flagging that no article name has been given.<ref group=nb>It is not much use to the reader to inform them that a Wikipedia article contains some text supported by a citation from somewhere in the 29-volumes of the Eleventh Edition of the Encyclopædia Britannica!</ref>
===Summary===
The template can be placed in different locations and depending on the what it is required the parameters can be mixed and matched:
{|class=wikitable
|-
!Parameters||Example||Note
|-
|<nowiki>{{Cite EB1911|wstitle=</nowiki>''EB name''<nowiki>}}</nowiki>
|{{Cite EB1911|wstitle=Alfred the Great}}
|Use '''wstitle=''EB name''''' if the article exists on [[Wikisource]]. If not use '''title=''EB name'' '''.
|-
|<nowiki>{{Cite EB1911|title=|url=|first=|last=|volume=|pages=}}</nowiki>
|{{Cite EB1911|title=Alfred the Great|first=Charles|last=Plummer|url=https://www.archive.org/stream/encyclopaediabri01chisrich#page/582/mode/1up|volume=1|pages=582–584}}
|Some additional information: '''title''' instead of ''wstitle'', '''url''' to the external page instead of link to Wikisource; the '''first''' and '''last''' names of the author of the article, the '''volume''' and '''page [number]s'''.
|}
===Detailed notes===
This template is wrapper around {{Template link|cite encyclopedia}}. In its default mode it attributes text to an article from Eleventh Edition of the Encyclopædia Britannica.
This template automatically sets some of the parameters passed into {{Template link|cite encyclopedia}} for example "publisher = Cambridge University Press". Over and above the standard parameter passed into {{Template link|cite encyclopedia}} there are some additional parameters and those are listed hereafter in a separate table from the table of parameters passed into {{Template link|cite encyclopedia}}.
Minimum is: '''<nowiki>{{Cite EB1911 |title=</nowiki>''EB article name''<nowiki>}}</nowiki>''' or '''<nowiki>{{Cite EB1911 |wstitle=</nowiki>''EB article name''<nowiki>}}</nowiki>'''
Full set is: '''<nowiki>{{Cite EB1911 |wstitle= |display= |noicon= |short= |footnote= |author= |last= |first= |author-link= |chapter= |title= |url= |access-date= |volume= |page= |pages= |ref= |mode=}}</nowiki>'''
{|class=wikitable
|+Additional parameters
!Parameter ||Note
|-
|author=''author name''||Assigned to ''last'' ignored if ''last'' is set.
|-
|wstitle=''name of the article on Wikisource'' ||If set, set link to EB article on Wikisource, and unsets ''title'' and ''url'' if they are also set.
|-
|noicon=1 ||Suppresses the lead icon (useful with {{Template link|Wikisource-inline}}).
|-
|short=1 ||Suppresses publisher and editor display.
|-
|display=''label for Wikisource link''||If set, this text is used as a label when linking to EB article on Wikisource. It is useful for hiding disambiguation extensions, and should show the actual title in the printed EB.
|}
{|class=wikitable
|+Parameters passed into {{Template link|cite encyclopedia}}
!Parameter||Set to||Notes
|-
|last= ||author= or last= ||If ''author='' and ''last='' are set the value of ''last='' is used. author2, (or last2) etc, are provided if there is more than one author
|-
|first= ||first= ||Set to the value of ''first='' or not set
|-
|author-link= || author-link= || Set to the value of ''author-link='' or not set (author-link2 etc is available if needed)
|-
|editor-first= ||Hugh || Automatically set within the template unless '''short''' is set
|-
|editor-last= ||Chisholm || Automatically set within the template unless '''short''' is set
|-
|encyclopedia= || [[Encyclopædia Britannica Eleventh Edition|Encyclopædia Britannica]]||Automatically set within the template
|-
|chapter= ||chapter= ||Set to the text of ''chapter='' or not set
|-
|title= ||wstitle= or title= or article=||Set to ''wstitle='' if set, if not to ''title='' if set, if not to ''article='' if set, if not set then left blank.
|-
|url= ||url= || Set to the value of url= unless ''wstitle='' is set in which case it is not set.
|-
|access-date= || access-date= || Set to the value of ''access-date='' unless ''wstitle='' is set in which case it is not set.
|-
| language=||en ||Set by default within the template, cannot be overridden
|-
| edition= ||11th ||Set by default within the template, can be overridden
|-
| date= || ||Not set (see year)
|-
| year= ||1911||Set by default within the template, can be overridden
|-
| month= || ||Not set
|-
| publisher= ||Cambridge University Press ||Automatically set within the template unless '''short''' is set
|-
| volume= ||volume= ||Set to the value of ''volume='' or not set
|-
| location= || ||Not set
|-
| id= || ||Not set
|-
| isbn= || ||Not set
|-
| oclc= || ||Not set
|-
| doi= || ||Not set
|-
| page= ||page=||Set to the value of ''page='' or not set
|-
| pages= ||pages=||Set to the value of ''pages='' or not set
|-
| quote=|| ||Not set
|-
| ref= ||ref =||Set to the value of ''ref='' or not set
|-
| mode= ||mode= ||Set to the value of ''mode='' or set to default.<ref group=nb>The parameter is provided because {{Template link|cite encyclopedia}} (the wrapper for this template) sets mode="cs1" ([[Help:Citation Style 1|citation style 1]]) while the other standard template {{Template link|citation}} sets mode="cs2" ([[Help:Citation Style 2|citation style 2]]). So the parameter ''mode'' can be set to cs2 to allow this template to emulate the look of {{Template link|citation}} if that is considered to be desirable.</ref>
|}
== Tracking categories ==
Depending on the parameters passed into this template, it adds the following hidden categories to the articles in which it is used:
*{{Category link with count|Wikipedia articles incorporating a citation from the 1911 Encyclopaedia Britannica with no article parameter}}
*{{Category link with count|Wikipedia articles incorporating a citation from the 1911 Encyclopaedia Britannica with Wikisource reference}}
*{{Category link with count|Wikipedia articles incorporating a citation from the 1911 Encyclopaedia Britannica without Wikisource reference}}
For an overview group category of the above see: [[:Category:Wikipedia articles incorporating a citation from the 1911 Encyclopædia Britannica]].
== See also ==
* [[Wikipedia:WikiProject Encyclopaedia Britannica]]—for information on usage of the material.
* {{Template link|EB1911}} Attribute an EB 1911 article.
* {{Template link|Sect1911}} Attribute a section to EB 1911.
* {{Template link|EB1911 poster}} display an EB 1911 Wikisource article in a top box on the right.
* {{Template link|Update-EB}} for articles with issues related to using information from the 1911 ''Encyclopaedia Britannica''.
==Notes==
{{reflist|group=nb}}
<includeonly>{{Sandbox other||<!--
++++ PLEASE ADD CATEGORIES AFTER THIS LINE, INSIDE INCLUDEONLY TAGS, THANK YOU. -->
{{DEFAULTSORT:Eb1911 Cite}}
[[Category:1911 Britannica templates]]
[[Category:Wikisource link templates]]
[[Category:Templates that add a tracking category|{{PAGENAME}}]]
}}</includeonly>
0byd32n7bm8g5jz7bp87bcv2bcbuy5k
Ta̱mpi̱let:Cite encyclopedia
10
1891
15692
2022-08-11T22:11:06Z
Kambai Akau
15
Created page with "<includeonly>{{#invoke:citation/CS1|citation |CitationClass=encyclopaedia }}</includeonly><noinclude> {{documentation}} [[Category:Lua-based templates]] </noinclude>"
wikitext
text/x-wiki
<includeonly>{{#invoke:citation/CS1|citation
|CitationClass=encyclopaedia
}}</includeonly><noinclude>
{{documentation}}
[[Category:Lua-based templates]]
</noinclude>
jdzpxvlfcwjuua45ovk7i5lcp6qre48
Ta̱mpi̱let:Cite encyclopedia/doc
10
1892
15694
15693
2022-08-11T22:17:20Z
Kambai Akau
15
wikitext
text/x-wiki
{{Documentation subpage}}
<!-- Add categories where indicated at the bottom of this page and interwikis at Wikidata -->
{{High-use}}
{{csdoc|lua}}
{{csdoc|cs1}}
{{csdoc|lead|articles or chapters in edited collections such as encyclopedias and dictionaries, but more generally any book or book series containing individual sections or chapters written by various authors, and put together by one or more editors}} However, it is not intended for journals or magazines, which are issued periodically and have volume and (usually) issue numbers, and should be cited with {{tl|Cite journal}}; nor is it intended for conference proceedings, which should be cited with {{tl|Cite conference}}.
Some citations to tertiary sources such as encyclopedias are problematic; see [[Wikipedia:Identifying and using tertiary sources]].
== Usage ==
{{csdoc|usage}}
{{csdoc|usage common}}
:<code><nowiki>{{cite encyclopedia |title= |encyclopedia= |date= |year= |last= |first= |publisher= |location= |id= |url= |access-date= }}</nowiki></code>
{{end}}
{{csdoc|usage full}}
:<code><nowiki>{{cite encyclopedia |last= |first= |author-link= |editor-last= |editor-first= |editor-link= |encyclopedia= |title= |trans-title= |url= |access-date= |language= |edition= |date= |year= |publisher= |series= |volume= |location= |id= |isbn= |issn= |oclc= |doi= |page= |pages= |archive-url= |archive-date= |url-status= |quote= |ref= }}
</nowiki></code>
{{end}}
{{csdoc|usage vertical common}}
<pre style="margin:0px;">
{{cite encyclopedia
|title=
|encyclopedia=
|date=
|year=
|last=
|first=
|publisher=
|location=
|id=
|url=
|access-date=
}}
</pre>
{{end}}
{{csdoc|usage vertical}}
<pre style="margin:0px;">
{{cite encyclopedia
| last =
| first =
| author-link =
| editor-last =
| editor-first =
| editor-link =
| encyclopedia =
| title =
| trans-title =
| url =
| access-date =
| language =
| edition =
| date =
| year =
| publisher =
| series =
| volume =
| location =
| id =
| isbn =
| oclc =
| doi =
| pages =
| archive-url =
| archive-date =
| url-status =
| quote =
| ref =
}}
</pre>
{{csdoc|usage vertical mid}}
<pre style="margin:0px;">
</pre>
{{csdoc|usage vertical mid}}
<pre style="margin:0px;">
</pre>
{{csdoc|usage vertical end}}
==Examples==
{{markup2|
|m=<nowiki>{{cite encyclopedia |last=Golden |first=Peter B. |author-link=Peter Benjamin Golden |editor1-last=Golden |editor1-first=Peter B. |editor1-link=Peter Benjamin Golden |editor2-last=Ben-Shammai |editor2-first=Haggai |editor3-last=Róna-Tas |editor3-first=András |editor3-link=András Róna-Tas |encyclopedia=The World of the Khazars: New Perspectives |title=Khazar Studies: Achievements and Perspectives |url={{google books |plainurl=y |id=3ZzXjdyK-CEC|page=7}} |date=2007a |publisher=BRILL |series=Handbook of Oriental Studies |volume=17 |isbn=978-9-004-16042-2 |pages=7–57}}</nowiki>
|r={{cite encyclopedia |last=Golden |first=Peter B. |author-link=Peter Benjamin Golden |editor1-last=Golden |editor1-first=Peter B. |editor1-link=Peter Benjamin Golden |editor2-last=Ben-Shammai |editor2-first=Haggai |editor3-last=Róna-Tas |editor3-first=András |editor3-link=András Róna-Tas |encyclopedia=The World of the Khazars: New Perspectives |title=Khazar Studies: Achievements and Perspectives |url={{google books |plainurl=y |id=3ZzXjdyK-CEC|page=7}} |date=2007a |publisher=BRILL |series=Handbook of Oriental Studies |volume=17 |isbn=978-9-004-16042-2 |pages=7–57}}
}}
{{markup2|
|m=<nowiki>{{cite encyclopedia |archive-url=https://www.webcitation.org/query?id=1257036681681058 |title=Idaho |encyclopedia=MSN Encarta |url=http://encarta.msn.com/encyclopedia_761565515/Idaho.html |archive-date=1 November 2009}}
</nowiki>
|r={{cite encyclopedia |archive-url=https://www.webcitation.org/query?id=1257036681681058 |title=Idaho |encyclopedia=MSN Encarta |url=http://encarta.msn.com/encyclopedia_761565515/Idaho.html |archive-date=1 November 2009}}
}}
{{markup2|
|m=<nowiki>{{cite encyclopedia |last=Seberg |first=Ole |editor1-last=Heywood |editor1-first=Vernon H. |editor2-last=Brummitt |editor2-first=Richard K. |editor3-last=Culham |editor3-first=Alastair |title=Alliaceae |encyclopedia=Flowering Plant Families of the World |url={{google books |plainurl=y |id=Jy1FAQAAIAAJ|page=340}}|date=2007 |publisher=Firefly Books |location=Richmond Hill, Ontario |isbn=978-1-55407-206-4 |pages=340–341}}</nowiki>
|r={{cite encyclopedia |last=Seberg |first=Ole |editor1-last=Heywood |editor1-first=Vernon H. |editor2-last=Brummitt |editor2-first=Richard K. |editor3-last=Culham |editor3-first=Alastair |title=Alliaceae |encyclopedia=Flowering Plant Families of the World |url={{google books |plainurl=y |id=Jy1FAQAAIAAJ|page=340}}|date=2007 |publisher=Firefly Books |location=Richmond Hill}}
}}
{{markup2|
|m=<nowiki>{{cite encyclopedia |last=Gerish |first=Deborah |editor-last=Murray |editor-first=Alan V. |title=Aimery of Lusignan |encyclopedia=The Crusades: An Encyclopedia |url=https://books.google.com/books?id=6cSXSgAACAAJ |date=2006 |publisher=ABC-CLIO |volume=1 |location=Santa Barbara |oclc=70122512 |pages=24}}</nowiki>
|r={{cite encyclopedia |last=Gerish |first=Deborah |editor-last=Murray |editor-first=Alan V. |title=Aimery of Lusignan |encyclopedia=The Crusades: An Encyclopedia |url=https://books.google.com/books?id=6cSXSgAACAAJ |date=2006 |publisher=ABC-CLIO |volume=1 |location=Santa Barbara |oclc=70122512 |pages=24}}
}}
{{markup2|
|m=<nowiki>{{cite encyclopedia |encyclopedia=Biographical Memoirs |volume=82 |date=2003 |given=Arnel R. |surname=Hallauer |entry=John David Axtell |publisher=[[National Academies Press]] |publication-place=Washington, D.C. |language=en |url=https://www.nap.edu/catalog/10683/biographical-memoirs-volume-82 |entry-url=https://www.nap.edu/read/10683/chapter/2}}</nowiki>
|r={{cite encyclopedia |encyclopedia=Biographical Memoirs |volume=82 |date=2003 |given=Arnel R. |surname=Hallauer |entry=John David Axtell |publisher=[[National Academies Press]] |publication-place=Washington, D.C. |language=en |url=https://www.nap.edu/catalog/10683/biographical-memoirs-volume-82 |entry-url=https://www.nap.edu/read/10683/chapter/2}}
}}<p>Above is an example of using {{para|entry-url}} to link to the cited entry in the encyclopedia while also using {{para|url}} to link to the encyclopedia as a whole.</p>
{{markup2|
|m=<nowiki>{{cite encyclopedia |last=Morère |encyclopedia=Dictionary of Scientific Biography |isbn=0-684-10114-9 |first=J. E. |publisher=Charles Scribner's Sons |title=Aguilon, François d' |volume=1 |location=New York |pages=81 |date=1970}}
</nowiki>
|r={{cite encyclopedia |last=Morère |encyclopedia=Dictionary of Scientific Biography |isbn=0-684-10114-9 |first=J. E. |publisher=Charles Scribner's Sons |title=Aguilon, François d' |volume=1 |location=New York |pages=81 |date=1970}}
}}
{{markup2|
|m=<nowiki>
{{cite encyclopedia |last=Smith |encyclopedia=A concise encyclopedia of the Bahá'í Faith |isbn=1-85168-184-1 |first=Peter |publisher=Oneworld Publications |title=satan |location=Oxford |pages=304 |date=2000}}</nowiki>
|r={{cite encyclopedia |last=Smith |encyclopedia=A concise encyclopedia of the Bahá'í Faith |isbn=1-85168-184-1 |first=Peter |publisher=Oneworld Publications |title=satan |location=Oxford |pages=304 |date=2000}}
}}
{{markup2|
|m=<nowiki>{{cite encyclopedia |last=Wallace |first=William A. |editor-last=Gillispie |editor-first=Charles |title=Albertus Magnus, Saint |encyclopedia=Dictionary of Scientific Biography |url=http://www.u.arizona.edu/~aversa/scholastic/Dictionary%20of%20Scientific%20Biography/Albertus%20Magnus%20(Wallace).pdf |date=1970 |publisher=Scribner & American Council of Learned Societies |volume=1 |location=New York |isbn=978-0-684-10114-9 |pages=99-103}}</nowiki>
|r={{cite encyclopedia |last=Wallace |first=William A. |editor-last=Gillispie |editor-first=Charles |title=Albertus Magnus, Saint |encyclopedia=Dictionary of Scientific Biography |url=http://www.u.arizona.edu/~aversa/scholastic/Dictionary%20of%20Scientific%20Biography/Albertus%20Magnus%20(Wallace).pdf |date=1970 |publisher=Scribner & American Council of Learned Societies |volume=1 |location=New York |isbn=978-0-684-10114-9 |pages=99–103}}
}}
{{markup2|
|m=<nowiki>{{cite encyclopedia |last=Morse |encyclopedia=Law Library – American Law and Legal Information |first=Stephen J. |archive-date=25 September 2008 |title=Psychopathy – What Is Psychopathy? |volume=Crime and Justice Vol 3 |archive-url=https://www.webcitation.org/5b5vnGYP0 |url=http://law.jrank.org/pages/1884/Psychopathy-What-psychopathy.html8}}</nowiki>
|r={{cite encyclopedia |last=Morse |encyclopedia=Law Library – American Law and Legal Information |first=Stephen J. |archive-date=25 September 2008 |title=Psychopathy – What Is Psychopathy? |volume=Crime and Justice Vol 3 |archive-url=https://www.webcitation.org/5b5vnGYP0 |url=http://law.jrank.org/pages/1884/Psychopathy-What-psychopathy.html8}}
}}
{{markup2|
|m=<nowiki>{{cite encyclopedia |title=Wordsmith's dictionary of uncommon words with anonymous definitions |editor-last=Pickett|editor-first=James| date=2021 |ref={{sfnref|''Wordsmith''|2021}}}}</nowiki>
|r={{cite encyclopedia |title=Wordsmith's dictionary of uncommon words with anonymous definitions |editor-last=Pickett|editor-first=James| date=2021 |ref={{sfnref|Wordsmith|2021}}}}
}}
:
:This text uses uncommon-term_1{{sfn|Wordsmith|2021|loc=uncommon-term-1}} and uncommon-term-2{{sfn|Wordsmith|2021|loc=uncommon-term-2}} that require references in a dictionary and we don't want to cite the dictionary twice.
{{reflist-talk}}
==Parameters==
===Syntax===
{{csdoc|syntax}}
{{csdoc|sep_period}}
===COinS===
{{csdoc|coins}}
===What's new===
{{csdoc|whats new}}
===Deprecated===
{{csdoc|deprecated}}
===Description===
====Authors====
{{csdoc|author|coauthors=yes}}
====Title====
{{csdoc|title|title_title=encyclopedia|link=wikilink_only}}
{{csdoc|title||title_format=quotes}}
:Aliases: '''title''', '''article'''
{{csdoc|language}}
====Date====
{{csdoc|date}}
====Publisher====
{{csdoc|publisher}}
====Edition, series, volume====
{{csdoc|edition}}
{{csdoc|series}}
{{csdoc|volume}}
====In-source locations====
{{csdoc|pages}}
===={{Anchor|url}}URL====
{{csdoc|url}}
====Anchor====
{{csdoc|ref}}
====Identifiers====
{{csdoc|id1}}
{{csdoc|id2}}
====Quote====
{{csdoc|quote}}
====Editors====
{{csdoc|editor}}
====Lay summary====
{{csdoc|lay}}
====Display options====
{{csdoc|display}}
====Subscription or registration required====
{{csdoc|registration}}
==TemplateData==
{{TemplateData header}}
{{#invoke:cs1 documentation support|template_data_validate|{{ROOTPAGENAME}}}}
<templatedata>
{
"description": "This template formats a citation to an article or chapter in an edited collection such as an encyclopedia or dictionary, but more generally to any book or book series containing individual sections or chapters written by various authors, and put together by one or more editors.",
"params": {
"year": {
"label": "Year of publication",
"description": "Year of the source being referenced; use 'date' instead, if month and day are also known",
"type": "string"
},
"title": {
"label": "Source title",
"description": "The title of the article or entry in the encyclopedia; displays in quotes",
"type": "string",
"required": true
},
"encyclopedia": {
"label": "Encyclopedia",
"description": "Title of the source; may be wikilinked; displays in italics; alias of 'work'",
"type": "string",
"aliases": [
"encyclopaedia",
"dictionary"
],
"suggested": true
},
"publisher": {
"label": "Publisher",
"description": "Name of the publisher; displays after title",
"type": "string",
"aliases": [
"institution"
]
},
"location": {
"label": "Location of publication",
"description": "Geographical place of publication; usually not wikilinked; omit when the publication name includes place; alias of 'place'",
"type": "string",
"aliases": [
"place"
]
},
"id": {
"label": "id",
"description": "A unique identifier used where none of the specialized ones are applicable",
"type": "string",
"aliases": [
"ID"
]
},
"url": {
"label": "URL",
"description": "The URL of the online location where the text of the publication can be found",
"type": "string",
"aliases": [
"URL"
]
},
"access-date": {
"label": "URL access date",
"description": "The full date when the original URL was accessed; do not wikilink",
"type": "string"
},
"last": {
"label": "Last name",
"description": "The surname of the author; don't wikilink, use 'author-link'; can suffix with a numeral to add additional authors",
"type": "string",
"suggested": true
},
"first": {
"label": "First name",
"description": "Given or first name, middle names, or initials of the author; don't wikilink, use 'author-link'; can suffix with a numeral to add additional authors",
"type": "string",
"suggested": true
},
"date": {
"label": "Source date",
"description": "Full date of the source; do not wikilink",
"type": "string"
},
"author-link": {
"label": "Author link",
"description": "Title of existing Wikipedia article about the author; can suffix with a numeral to add additional authors",
"aliases": [
"author-link1",
"author1-link"
],
"type": "wiki-page-name"
},
"others": {
"label": "Others",
"description": "Used to record other contributions to the work, such as 'Illustrated by John Smith' or 'Translated by John Smith'",
"type": "string"
},
"orig-date": {
"label": "Original date",
"description": "Original year of publication; provide specifics",
"type": "string",
"aliases": [
"orig-year"
]
},
"editor-last": {
"label": "Editor last name",
"description": "The surname of the editor; don't wikilink, use 'editor-link'; can suffix with a numeral to add additional editors",
"aliases": [
"editor",
"editor-surname",
"editor-last1",
"editor-surname1",
"editor1",
"editor1-last",
"editor1-surname"
]
},
"editor-first": {
"label": "Editor first name",
"description": "Given or first name, middle names, or initials of the editor; don't wikilink, use 'editor-link'; can suffix with a numeral to add additional editors",
"aliases": [
"editor-given",
"editor-first1",
"editor-given1",
"editor1-first",
"editor1-given"
]
},
"editor-link": {
"label": "Editor link",
"description": "Title of existing Wikipedia article about the editor; can suffix with a numeral to add additional editors; alias of 'editor1-link'",
"type": "wiki-page-name"
},
"publication-place": {
"label": "Place of publication",
"description": "Publication place shows after title; if 'place' or 'location' are also given, they are displayed before the title prefixed with 'written at'",
"type": "string"
},
"publication-date": {
"label": "Publication date",
"description": "Date of publication when different from the date the work was written; do not wikilink",
"type": "string"
},
"edition": {
"label": "Edition",
"description": "When the publication has more than one edition; for example: '2nd', 'Revised' etc.; suffixed with ' ed.'",
"type": "string"
},
"series": {
"label": "Series",
"description": "When the source is part of a series, such as a book series where the issue numbering has restarted; alias of 'version'",
"type": "string",
"aliases": [
"version"
]
},
"volume": {
"label": "Volume",
"description": "For one publication published in several volumes",
"type": "string"
},
"page": {
"label": "Page",
"description": "Page in the source that supports the content; displays after 'p.'",
"type": "string",
"aliases": [
"p"
]
},
"pages": {
"label": "Pages",
"description": "Pages in the source that support the content (not an indication of the number of pages in the source; displays after 'pp.'",
"type": "string",
"aliases": [
"pp"
]
},
"no-pp": {
"label": "No pp",
"description": "Set to 'y' to suppress the 'p.' or 'pp.' display with 'page' or 'pages' when inappropriate (such as 'Front cover')",
"type": "string"
},
"at": {
"label": "At",
"description": "May be used instead of 'page' or 'pages' where a page number is inappropriate or insufficient",
"type": "string"
},
"language": {
"label": "Language",
"description": "The language in which the source is written, if not English; use the full language name; do not use icons or templates",
"type": "string",
"aliases": [
"lang"
]
},
"trans-title": {
"label": "Translated title",
"description": "An English language title, if the source cited is in a foreign language; 'language' is recommended",
"type": "string"
},
"type": {
"label": "Type",
"description": "Additional information about the media type of the source; format in sentence case",
"type": "string"
},
"format": {
"label": "Format",
"description": "Format of the work referred to by 'url'; examples: PDF, DOC, XLS; do not specify HTML",
"type": "string"
},
"arxiv": {
"label": "arXiv identifier",
"description": "An identifier for arXive electronic preprints of scientific papers",
"type": "string"
},
"asin": {
"label": "ASIN",
"description": "Amazon Standard Identification Number; 10 characters",
"type": "string"
},
"asin-tld": {
"label": "ASIN TLD",
"description": "ASIN top-level domain for Amazon sites other than the US",
"type": "string"
},
"bibcode": {
"label": "Bibcode",
"description": "Bibliographic Reference Code (REFCODE); 19 characters",
"type": "string"
},
"doi": {
"label": "DOI",
"description": "Digital Object Identifier; begins with '10.'",
"type": "string",
"aliases": [
"DOI"
]
},
"isbn": {
"label": "ISBN",
"description": "International Standard Book Number; use the 13-digit ISBN where possible",
"type": "string",
"aliases": [
"ISBN"
]
},
"issn": {
"label": "ISSN",
"description": "International Standard Serial Number; 8 characters; may be split into two groups of four using a hyphen",
"type": "string",
"aliases": [
"ISSN"
]
},
"jfm": {
"label": "jfm code",
"description": "Jahrbuch über die Fortschritte der Mathematik classification code",
"type": "string",
"aliases": [
"JFM"
]
},
"jstor": {
"label": "JSTOR",
"description": "JSTOR identifier",
"type": "string",
"aliases": [
"JSTOR"
]
},
"lccn": {
"label": "LCCN",
"description": "Library of Congress Control Number",
"type": "string",
"aliases": [
"LCCN"
]
},
"mr": {
"label": "MR",
"description": "Mathematical Reviews identifier",
"type": "string",
"aliases": [
"MR"
]
},
"oclc": {
"label": "OCLC",
"description": "Online Computer Library Center number",
"type": "string",
"aliases": [
"OCLC"
]
},
"ol": {
"label": "OL",
"description": "Open Library identifier",
"type": "string",
"aliases": [
"OL"
]
},
"osti": {
"label": "OSTI",
"description": "Office of Scientific and Technical Information identifier",
"type": "string",
"aliases": [
"OSTI"
]
},
"pmc": {
"label": "PMC",
"description": "PubMed Center article number",
"type": "string",
"aliases": [
"PMC"
]
},
"pmid": {
"label": "PMID",
"description": "PubMed Unique Identifier",
"type": "string",
"aliases": [
"PMID"
]
},
"rfc": {
"label": "RFC",
"description": "Request for Comments number",
"type": "string",
"aliases": [
"RFC"
]
},
"ssrn": {
"label": "SSRN",
"description": "Social Science Research Network",
"type": "string",
"aliases": [
"SSRN"
]
},
"zbl": {
"label": "ZBL",
"description": "Zentralblatt MATH journal identifier",
"type": "string",
"aliases": [
"ZBL"
]
},
"archive-url": {
"label": "Archive URL",
"description": "The URL of an archived copy of a web page, if or in case the URL becomes unavailable; requires 'archive-date'",
"type": "string"
},
"archive-date": {
"label": "Archive date",
"description": "Date when the original URL was archived; do not wikilink",
"type": "string"
},
"quote": {
"label": "Quote",
"description": "Relevant text quoted from the source; displays last, enclosed in quotes; needs to include terminating punctuation",
"type": "string",
"aliases": [
"quotation"
]
},
"ref": {
"label": "Ref",
"description": "An anchor identifier; can be made the target of wikilinks to full references; special value 'harv' generates an anchor suitable for the harv template",
"type": "string"
},
"postscript": {
"label": "Postscript",
"description": "The closing punctuation for the citation; ignored if 'quote' is defined",
"type": "string",
"default": "."
},
"author-mask": {
"label": "Author mask",
"description": "Replaces the name of the first author with em dashes or text; set to a numeric value 'n' to set the dash 'n' em spaces wide; set to a text value to display the text without a trailing author separator; for example, 'with' instead",
"type": "string"
},
"display-authors": {
"label": "Display authors",
"description": "number of authors to display before 'et al.' is used; default is to do so after 8 of 9 are listed; alias of 'displayauthors'",
"type": "number",
"default": "8",
"aliases": [
"display-subjects"
]
},
"last2": {
"label": "Last name 2",
"description": "The surname of the second author; don't wikilink, use 'author-link2'; can suffix with a numeral to add additional authors",
"aliases": [
"author2",
"surname2",
"author-last2",
"author2-last",
"subject2"
],
"type": "string"
},
"first2": {
"label": "First name 2",
"description": "Given or first name, middle names, or initials of the second author; don't wikilink, use 'author-link'; can suffix with a numeral to add additional authors",
"aliases": [
"given2",
"author-first2",
"author2-first"
],
"type": "string"
},
"last3": {
"label": "Last name 3",
"description": "The surname of the third author; don't wikilink, use 'author-link3'.",
"aliases": [
"author3",
"surname3",
"author-last3",
"author3-last",
"subject3"
],
"type": "string"
},
"first3": {
"label": "First name 3",
"description": "Given or first name, middle names, or initials of the third author; don't wikilink.",
"aliases": [
"given3",
"author-first3",
"author3-first"
],
"type": "string"
},
"last4": {
"label": "Last name 4",
"description": "The surname of the fourth author; don't wikilink, use 'author-link4'.",
"aliases": [
"author4",
"surname4",
"author-last4",
"author4-last",
"subject4"
],
"type": "string"
},
"first4": {
"label": "First name 4",
"description": "Given or first name, middle names, or initials of the fourth author; don't wikilink.",
"aliases": [
"given4",
"author-first4",
"author4-first"
],
"type": "string"
},
"last5": {
"label": "Last name 5",
"description": "The surname of the fifth author; don't wikilink, use 'author-link5'.",
"aliases": [
"author5",
"surname5",
"author-last5",
"author5-last",
"subject5"
],
"type": "string"
},
"first5": {
"label": "First name 5",
"description": "Given or first name, middle names, or initials of the fifth author; don't wikilink.",
"aliases": [
"given5",
"author-first5",
"author5-first"
],
"type": "string"
},
"last6": {
"label": "Last name 6",
"description": "The surname of the sixth author; don't wikilink, use 'author-link6'.",
"aliases": [
"author6",
"surname6",
"author-last6",
"author6-last",
"subject6"
],
"type": "string"
},
"first6": {
"label": "First name 6",
"description": "Given or first name, middle names, or initials of the sixth author; don't wikilink.",
"aliases": [
"given6",
"author-first6",
"author6-first"
],
"type": "string"
},
"last7": {
"label": "Last name 7",
"description": "The surname of the seventh author; don't wikilink, use 'author-link7'.",
"aliases": [
"author7",
"surname7",
"author-last7",
"author7-last",
"subject7"
],
"type": "string"
},
"first7": {
"label": "First name 7",
"description": "Given or first name, middle names, or initials of the seventh author; don't wikilink.",
"aliases": [
"given7",
"author-first7",
"author7-first"
],
"type": "string"
},
"last8": {
"label": "Last name 8",
"description": "The surname of the eighth author; don't wikilink, use 'author-link8'.",
"aliases": [
"author8",
"surname8",
"author-last8",
"author8-last",
"subject8"
],
"type": "string"
},
"first8": {
"label": "First name 8",
"description": "Given or first name, middle names, or initials of the eighth author; don't wikilink.",
"aliases": [
"given8",
"author-first8",
"author8-first"
],
"type": "string"
},
"last9": {
"label": "Last name 9",
"description": "The surname of the ninth author; don't wikilink, use 'author-link9'. If nine authors are defined, then only eight will show and 'et al.' will show in place of the last author.",
"aliases": [
"author9",
"surname9",
"author-last9",
"author9-last",
"subject9"
],
"type": "string"
},
"first9": {
"label": "First name 9",
"description": "Given or first name, middle names, or initials of the ninth author; don't wikilink.",
"aliases": [
"given9",
"author-first9",
"author9-first"
],
"type": "string"
},
"doi-broken-date": {
"label": "DOI broken date",
"description": "The date that the DOI was determined to be broken",
"type": "string"
},
"name-list-style": {}
},
"maps": {
"proveit": {
"main": "title",
"textarea": [
"quote"
]
},
"citoid": {
"edition": "edition",
"title": "title",
"bookTitle": "encyclopedia",
"encyclopediaTitle": "encyclopedia",
"dictionaryTitle": "encyclopedia",
"publicationTitle": "encyclopedia",
"url": "url",
"publisher": "publisher",
"date": "date",
"place": "location",
"ISSN": [
"issn"
],
"ISBN": [
"isbn"
],
"oclc": "oclc",
"PMCID": "pmc",
"PMID": "pmid",
"pages": "pages",
"volume": "volume",
"series": "series",
"DOI": "doi",
"language": "language",
"contributor": "others",
"author": [
[
"first",
"last"
],
[
"first2",
"last2"
],
[
"first3",
"last3"
],
[
"first4",
"last4"
],
[
"first5",
"last5"
],
[
"first6",
"last6"
],
[
"first7",
"last7"
],
[
"first8",
"last8"
],
[
"first9",
"last9"
]
],
"editor": "editor-last"
}
},
"format": "{{_ |_=_}}",
"paramOrder": [
"year",
"title",
"encyclopedia",
"publisher",
"location",
"id",
"url",
"access-date",
"last",
"first",
"date",
"author-link",
"others",
"orig-date",
"editor-last",
"editor-first",
"editor-link",
"publication-place",
"publication-date",
"edition",
"series",
"volume",
"page",
"pages",
"no-pp",
"at",
"language",
"trans-title",
"type",
"format",
"arxiv",
"asin",
"asin-tld",
"bibcode",
"doi",
"doi-broken-date",
"isbn",
"issn",
"jfm",
"jstor",
"lccn",
"mr",
"oclc",
"ol",
"osti",
"pmc",
"pmid",
"rfc",
"ssrn",
"zbl",
"archive-url",
"archive-date",
"quote",
"ref",
"postscript",
"author-mask",
"display-authors",
"last2",
"first2",
"last3",
"first3",
"last4",
"first4",
"last5",
"first5",
"last6",
"first6",
"last7",
"first7",
"last8",
"first8",
"last9",
"first9",
"name-list-style"
]
}
</templatedata>
==See also==
* [[:Category:Encyclopedia source templates]] contains many wrappers for specific encyclopedias, such as {{tlx|EB1911}} for the 1911 ''Encyclopædia Britannica''
{{Citation Style 1}}
{{Wikipedia referencing}}
{{UF-COinS}}
<includeonly>{{sandbox other||
<!-- Categories below this line; interwikis at Wikidata -->
[[Category:Citation Style 1 templates|Encyclopedia]]
[[Category:Encyclopedia source templates| ]]
}}</includeonly>
6mfdqa9zjq14cvf5vvh8lv9ezlz1zjb
Ta̱mpi̱let:Citation Style documentation/lead
10
1893
15695
2022-08-11T22:20:28Z
Kambai Akau
15
Created page with "This {{cs1}} template is used to create [[WP:CITE|citations]] for {{{2|}}}."
wikitext
text/x-wiki
This {{cs1}} template is used to create [[WP:CITE|citations]] for {{{2|}}}.
rb2qz7f7zsv9heko47icoioecass1w8
Ta̱mpi̱let:Cite wikisource/make link
10
1894
15696
2022-08-11T22:23:02Z
Kambai Akau
15
Created page with "{{#if:{{{noicon|}}} |[[:s:{{#if:{{{language|}}}|{{{language}}}:}}{{#if:{{{anchor|}}}|{{{link|}}}{{#if:{{{chapter|}}}|/{{{chapter}}}}}#{{{anchor}}}|{{{link|}}}{{#if:{{{chapter|}}}|/{{{chapter}}}}}}}|{{{label|{{{link|}}}}}}]] |[[s:{{#if:{{{language|}}}|{{{language}}}:}}{{#if:{{{anchor|}}}|{{{link|}}}{{#if:{{{chapter|}}}|/{{{chapter}}}}}#{{{anchor}}}|{{{link|}}}{{#if:{{{chapter|}}}|/{{{chapter}}}}}}}|{{{label|{{{link|}}}}}}]]}}<noinclude> {{documentation}} </noinclude>"
wikitext
text/x-wiki
{{#if:{{{noicon|}}}
|[[:s:{{#if:{{{language|}}}|{{{language}}}:}}{{#if:{{{anchor|}}}|{{{link|}}}{{#if:{{{chapter|}}}|/{{{chapter}}}}}#{{{anchor}}}|{{{link|}}}{{#if:{{{chapter|}}}|/{{{chapter}}}}}}}|{{{label|{{{link|}}}}}}]]
|[[s:{{#if:{{{language|}}}|{{{language}}}:}}{{#if:{{{anchor|}}}|{{{link|}}}{{#if:{{{chapter|}}}|/{{{chapter}}}}}#{{{anchor}}}|{{{link|}}}{{#if:{{{chapter|}}}|/{{{chapter}}}}}}}|{{{label|{{{link|}}}}}}]]}}<noinclude>
{{documentation}}
</noinclude>
fw778f1z6wwtnuonjt2bts5m0lkf5zw
Ta̱mpi̱let:Cite wikisource/make link/doc
10
1895
15697
2022-08-11T22:24:24Z
Kambai Akau
15
Created page with "{{Documentation subpage}} <!-- Please place categories where indicated at the bottom of this page and interwikis at Wikidata (see [[Wikipedia:Wikidata]]) --> This is a service template for {{tlx|cite wikisource}} and {{tlx|cite DNB}}. Its purpose is to create properly formatted interwiki links into [[Wikisource]]. == Usage == <syntaxhighlight lang="moin">{{cite wikisource/make link |language= <!-- cite wikisource only; language code for non-English wikisources (..."
wikitext
text/x-wiki
{{Documentation subpage}}
<!-- Please place categories where indicated at the bottom of this page and interwikis at Wikidata (see [[Wikipedia:Wikidata]]) -->
This is a service template for {{tlx|cite wikisource}} and {{tlx|cite DNB}}. Its purpose is to create properly formatted interwiki links into [[Wikisource]].
== Usage ==
<syntaxhighlight lang="moin">{{cite wikisource/make link
|language= <!-- cite wikisource only; language code for non-English wikisources (second-level subdomain name) -->
|link= <!-- wikisource article name -->
|anchor= <!-- modifies {{{link}}} → {{{link}}}#{{{anchor}}} -->
|label= <!-- the label portion of a wikilink: [[link|label]] -->
|noicon= <!-- when set to any value uses [[:s:...]] interwiki link style to prevent Module:Citation/CS1 from rendering the wikisource icon -->
}}</syntaxhighlight>
<includeonly>{{sandbox other||
<!-- Categories below this line, please; interwikis at Wikidata -->
}}</includeonly>
odocxfmdp750wuext7ik660ao58sbmi
Module:Lang/ISO 639 synonyms
828
1896
15698
2022-08-11T22:28:33Z
Kambai Akau
15
Created page with "-- File-Date: 2013-01-11 return { ["aar"] = "aa", ["abk"] = "ab", ["afr"] = "af", ["aka"] = "ak", ["amh"] = "am", ["ara"] = "ar", ["arg"] = "an", ["asm"] = "as", ["ava"] = "av", ["ave"] = "ae", ["aym"] = "ay", ["aze"] = "az", ["bak"] = "ba", ["bam"] = "bm", ["bel"] = "be", ["ben"] = "bn", ["bih"] = "bh", ["bis"] = "bi", ["bod"] = "bo", ["bos"] = "bs", ["bre"] = "br", ["bul"] = "bg", ["cat"] = "ca", ["ces"] = "cs", ["cha"] = "ch", ["che"] = "ce",..."
Scribunto
text/plain
-- File-Date: 2013-01-11
return {
["aar"] = "aa",
["abk"] = "ab",
["afr"] = "af",
["aka"] = "ak",
["amh"] = "am",
["ara"] = "ar",
["arg"] = "an",
["asm"] = "as",
["ava"] = "av",
["ave"] = "ae",
["aym"] = "ay",
["aze"] = "az",
["bak"] = "ba",
["bam"] = "bm",
["bel"] = "be",
["ben"] = "bn",
["bih"] = "bh",
["bis"] = "bi",
["bod"] = "bo",
["bos"] = "bs",
["bre"] = "br",
["bul"] = "bg",
["cat"] = "ca",
["ces"] = "cs",
["cha"] = "ch",
["che"] = "ce",
["chu"] = "cu",
["chv"] = "cv",
["cor"] = "kw",
["cos"] = "co",
["cre"] = "cr",
["cym"] = "cy",
["dan"] = "da",
["deu"] = "de",
["div"] = "dv",
["dzo"] = "dz",
["ell"] = "el",
["eng"] = "en",
["epo"] = "eo",
["est"] = "et",
["eus"] = "eu",
["ewe"] = "ee",
["fao"] = "fo",
["fas"] = "fa",
["fij"] = "fj",
["fin"] = "fi",
["fra"] = "fr",
["fry"] = "fy",
["ful"] = "ff",
["gla"] = "gd",
["gle"] = "ga",
["glg"] = "gl",
["glv"] = "gv",
["grn"] = "gn",
["guj"] = "gu",
["hat"] = "ht",
["hau"] = "ha",
["heb"] = "he",
["her"] = "hz",
["hin"] = "hi",
["hmo"] = "ho",
["hrv"] = "hr",
["hun"] = "hu",
["hye"] = "hy",
["ibo"] = "ig",
["ido"] = "io",
["iii"] = "ii",
["iku"] = "iu",
["ile"] = "ie",
["ina"] = "ia",
["ind"] = "id",
["ipk"] = "ik",
["isl"] = "is",
["ita"] = "it",
["jav"] = "jv",
["jpn"] = "ja",
["kal"] = "kl",
["kan"] = "kn",
["kas"] = "ks",
["kat"] = "ka",
["kau"] = "kr",
["kaz"] = "kk",
["khm"] = "km",
["kik"] = "ki",
["kin"] = "rw",
["kir"] = "ky",
["kom"] = "kv",
["kon"] = "kg",
["kor"] = "ko",
["kua"] = "kj",
["kur"] = "ku",
["lao"] = "lo",
["lat"] = "la",
["lav"] = "lv",
["lim"] = "li",
["lin"] = "ln",
["lit"] = "lt",
["ltz"] = "lb",
["lub"] = "lu",
["lug"] = "lg",
["mah"] = "mh",
["mal"] = "ml",
["mar"] = "mr",
["mkd"] = "mk",
["mlg"] = "mg",
["mlt"] = "mt",
["mon"] = "mn",
["mri"] = "mi",
["msa"] = "ms",
["mya"] = "my",
["nau"] = "na",
["nav"] = "nv",
["nbl"] = "nr",
["nde"] = "nd",
["ndo"] = "ng",
["nep"] = "ne",
["nld"] = "nl",
["nno"] = "nn",
["nob"] = "nb",
["nor"] = "no",
["nya"] = "ny",
["oci"] = "oc",
["oji"] = "oj",
["ori"] = "or",
["orm"] = "om",
["oss"] = "os",
["pan"] = "pa",
["pli"] = "pi",
["pol"] = "pl",
["por"] = "pt",
["pus"] = "ps",
["que"] = "qu",
["roh"] = "rm",
["ron"] = "ro",
["run"] = "rn",
["rus"] = "ru",
["sag"] = "sg",
["san"] = "sa",
["sin"] = "si",
["slk"] = "sk",
["slv"] = "sl",
["sme"] = "se",
["smo"] = "sm",
["sna"] = "sn",
["snd"] = "sd",
["som"] = "so",
["sot"] = "st",
["spa"] = "es",
["sqi"] = "sq",
["srd"] = "sc",
["srp"] = "sr",
["ssw"] = "ss",
["sun"] = "su",
["swa"] = "sw",
["swe"] = "sv",
["tah"] = "ty",
["tam"] = "ta",
["tat"] = "tt",
["tel"] = "te",
["tgk"] = "tg",
["tgl"] = "tl",
["tha"] = "th",
["tir"] = "ti",
["ton"] = "to",
["tsn"] = "tn",
["tso"] = "ts",
["tuk"] = "tk",
["tur"] = "tr",
["twi"] = "tw",
["uig"] = "ug",
["ukr"] = "uk",
["urd"] = "ur",
["uzb"] = "uz",
["ven"] = "ve",
["vie"] = "vi",
["vol"] = "vo",
["wln"] = "wa",
["wol"] = "wo",
["xho"] = "xh",
["yid"] = "yi",
["yor"] = "yo",
["zha"] = "za",
["zho"] = "zh",
["zul"] = "zu"
}
shzq5qyzo42nqfska6amwdq4g8lois9
Module:Lang/ISO 639 synonyms/doc
828
1897
15699
2022-08-11T22:29:25Z
Kambai Akau
15
Created page with "{{High-risk|639000}} This module contains data taken directly from a local copy of data copied from the table at [https://www.loc.gov/standards/iso639-2/php/English_list.php Codes for the Representation of Names of Languages] on the ISO 639-1 and ISO 639-2 custodian's website. The table in this module was created using [[Module:Language/data/ISO 639-2/make]]. There should be no need to hand edit this table, so please do not do so except to reflect changes that are actu..."
wikitext
text/x-wiki
{{High-risk|639000}}
This module contains data taken directly from a local copy of data copied from the table at [https://www.loc.gov/standards/iso639-2/php/English_list.php Codes for the Representation of Names of Languages] on the ISO 639-1 and ISO 639-2 custodian's website.
The table in this module was created using [[Module:Language/data/ISO 639-2/make]]. There should be no need to hand edit this table, so please do not do so except to reflect changes that are actually present in the source (in which case it is probably better to re-run the extraction tool on the new data).
<includeonly>{{#ifeq:{{SUBPAGENAME}}|sandbox | |
<!-- Categories below this line, please; interwikis at Wikidata -->
[[Category:Language-related modules]]
}}</includeonly>
1b5p7n6kfvjasjielawccbhttjs7xuh
Module:Language/data/ISO 639-2/make
828
1898
15700
2022-08-11T22:31:10Z
Kambai Akau
15
Created page with "require('Module:No globals'); --[=[------------------------< I S O _ S Y N O N Y M _ E X T R A C T >----------------------------------------- {{#invoke:Language/data/ISO 639-2/make|ISO_synonym_extract|file-date=2013-01-11}} reads a local copy of data from the table at http://www.loc.gov/standards/iso639-2/php/English_list.php, extracts the ISO 639-2 (or 639-2T) codes that have equivalent ISO 639-1 codes and creates a table to translate 639-2 to 639-1. ISO-639-3 uses 6..."
Scribunto
text/plain
require('Module:No globals');
--[=[------------------------< I S O _ S Y N O N Y M _ E X T R A C T >-----------------------------------------
{{#invoke:Language/data/ISO 639-2/make|ISO_synonym_extract|file-date=2013-01-11}}
reads a local copy of data from the table at http://www.loc.gov/standards/iso639-2/php/English_list.php, extracts
the ISO 639-2 (or 639-2T) codes that have equivalent ISO 639-1 codes and creates a table to translate 639-2 to 639-1.
ISO-639-3 uses 639-2T codes
useful lines in the source table have the form:
<English name>\t<all English names>\t<all French names>\t<639-2 code>\t<639-1 code>\n
where:
<English name> is primary English name (not used here); one of <all English names> so duplicates code listing
<all English names> is all of the English names (not used here)
<all French names> is all of the French names (not used here)
<639-2 code> is the three-character ISO 639-2 or 639-2B/639-2T language code; when 639-2T present, use that code
<639-1 code> is the two-character ISO 639-1 language code synonym of the -2 code (if one is defined)
like this (with synonym):
Abkhazian Abkhazian abkhaze abk ab
or (without synonym):
Achinese Achinese aceh ace
for the file date use the date listed at the bottom of the source page in yyyymmdd numeric format without hyphens or spaces
]=]
local function ISO_synonym_extract (frame)
local page = mw.title.getCurrentTitle(); -- get a page object for this page
local content = page:getContent(); -- get unparsed content
local content_table = {}; -- table of text lines from source
local split_table = {}; -- table of lines split at the tabs
local skip_table = {}; -- table of 636-2/639-2T codes that have been handled; used to prevent duplication
local out_table = {}; -- output table
local file_date = 'File-Date: ' .. frame.args["file-date"]; -- set the file date line from |file-date= (from the bottom of the source page)
content_table = mw.text.split (content, '[\r\n]'); -- make a table of text lines
for _, line in ipairs (content_table) do -- for each line
split_table = mw.text.split (line, '\t'); -- split at the table
if split_table[5] and (' ' ~= split_table[5]) then -- if there is a 639-1 code
local code = split_table[4]:match ('%a+/(%a+)') or split_table[4]; -- when 639-2B/639-2T use 639-2T else use 639-2
if not skip_table[code] then -- skip if code already in the skip table because more than one language name
skip_table[code] = true; -- remember that we've handled this 636-2/639-2T code
table.insert (out_table, "[\"" .. code .. "\"] = \"" .. split_table[5] .. "\""); -- make new table entry
end
end
end
table.sort (out_table);
return "<br /><pre>-- " .. file_date .. "<br />return {<br />	" .. table.concat (out_table, ',<br />	') .. "<br />	}<br />" .. "</pre>";
end
--[[--------------------------< I S O _ 2 _ N A M E _ E X T R A C T >------------------------------------------
{{#invoke:Language/data/ISO 639-2/make|ISO_2_name_extract|file-date=2013-01-11}}
reads a local copy of data from the table at http://www.loc.gov/standards/iso639-2/php/English_list.php, extracts
the ISO 639-2 and 639-2T codes and their associated language names
useful lines in the source table have the form:
<English name>\t<all English names>\t<all French names>\t<639-2 code>\t<639-1 code>\n
where:
<English name> is primary English name (not used here); one of <all English names> so duplicates code listing
<all English names> is all of the English names (used here)
<all French names> is all of the French names (not used here)
<639-2 code> is the three-character ISO 639-2 or 639-2B/639-2T language code; both are used
<639-1 code> is the two-character ISO 639-1 language code synonym of the -2 code (not used here)
for the file date use the date listed at the bottom of the source page in yyyymmdd numeric format without hyphens or spaces
]]
local function ISO_2_name_extract (frame)
local page = mw.title.getCurrentTitle(); -- get a page object for this page
local content = page:getContent(); -- get unparsed content
local content_table = {}; -- table of text lines from source
local split_table = {}; -- table of lines split at the tabs
local skip_table = {['qaa-qtz']=true}; -- table of 636-2/639-2T codes that have been handled; used to prevent duplication; qaa-qtz reserved for local use so not supported here
local name_table = {}; -- holds language names for processing
local code_table = {}; -- because some languages have both -2B and -2T codes
local out_table_T = {}; -- output table for 639-2T codes
local out_table_B = {}; -- output table for 639-2B codes
local out_table; -- used as a pointer to the selected out_table_B or out_table_T
local file_date = 'File-Date: ' .. frame.args["file-date"]; -- set the file date line from |file-date= (from the bottom of the source page)
content_table = mw.text.split (content, '[\r\n]'); -- make a table of text lines
for _, line in ipairs (content_table) do -- for each line
split_table = mw.text.split (line, '\t'); -- split at the tab
if split_table[4] then -- if a code then continue processing; skip this line else
name_table = mw.text.split (split_table[2], ' *; *'); -- split 'all English names' at the '; ' into a table of individual names
for i, v in ipairs (name_table) do
name_table [i] = mw.ustring.gsub (v, '(.+)', '"%1"'); -- add double quotes around each name
end
code_table = mw.text.split (split_table[4], ' */ *'); -- split 'ISO 639-2' code at the '/' into a table of -2B and -2T individual codes
for i, code in ipairs (code_table) do -- now built a table entry for the code(s) and its(their) associated language(s)
if not skip_table[code] then -- source data has duplicates so check to see if we have already done this code
out_table = (2 == #code_table and 1 == i) and out_table_B or out_table_T; -- does this language name have both -2B and -2T codes?
table.insert (out_table,
table.concat ({
'["', -- open code index
code, -- the code
'"] = {', -- close code index; open name table
table.concat(name_table, ', '), -- add the names
'}' -- close the names table
})
)
skip_table[code] = true; -- remember that we've done this code
end
end
end
end
table.sort (out_table_T);
table.sort (out_table_B);
-- return "<br /><pre>-- " .. file_date .. "<br />return {<br />	" .. table.concat (out_table_T, ',<br />	') .. "<br />	}<br />" .. "</pre>";
return table.concat ({
"<br /><pre>-- ",
file_date,
"<br />return {",
string.rep ('	', 18),
'-- 639-2T<br />	',
table.concat (out_table_T, ',<br />	'),
"<br />	}<br />" .. "</pre><br /><br />",
"<br /><pre>-- ",
file_date,
"<br />return {",
string.rep ('	', 18),
'-- 639-2B<br />	',
table.concat (out_table_B, ',<br />	'),
"<br />	}<br />" .. "</pre><br /><br />",
});
end
--[[--------------------------< E X P O R T E D F U N C T I O N S >------------------------------------------
]]
return {
ISO_synonym_extract = ISO_synonym_extract,
ISO_2_name_extract = ISO_2_name_extract
};
em1cp8qq4nt0rtcia58xi7o7a9mytjl
Module:Language/data/ISO 639-2/make/doc
828
1899
15701
2022-08-11T22:32:58Z
Kambai Akau
15
Created page with "{{Lua|Module:No globals}} Reads a local copy of data from the table at [https://www.loc.gov/standards/iso639-2/php/English_list.php Codes for the Representation of Names of Languages], extracts the ISO 639-2 codes, names, and ISO 639-1 synonyms. There are two functions in the tool: <code>ISO_synonym_extract()</code> and <code>ISO_2_name_extract()</code>. == Usage == To use this tool: #open a blank sandbox page and paste either or both of these <code><nowiki>{{#invoke:..."
wikitext
text/x-wiki
{{Lua|Module:No globals}}
Reads a local copy of data from the table at [https://www.loc.gov/standards/iso639-2/php/English_list.php Codes for the Representation of Names of Languages], extracts the ISO 639-2 codes, names, and ISO 639-1 synonyms. There are two functions in the tool: <code>ISO_synonym_extract()</code> and <code>ISO_2_name_extract()</code>.
== Usage ==
To use this tool:
#open a blank sandbox page and paste either or both of these <code><nowiki>{{#invoke:}}</nowiki></code>s into it at the top:
#:for use in [[Module:Lang/ISO 639 synonyms]]:
#:*<code><nowiki>{{#invoke:Language/data/ISO 639-2/make|ISO_synonym_extract|file-date=YYYY-MM-DD</nowiki></code>
#:for use in [[Module:Language/data/ISO 639-2]] (-2T only) and [[Module:Language/data/ISO 639-2B]]:
#:*<code><nowiki>{{#invoke:Language/data/ISO 639-2/make|ISO_2_name_extract|file-date=YYYY-MM-DD</nowiki></code> – creates separate tables for 639-2T and for 639-2B
#go to the current [https://www.loc.gov/standards/iso639-2/php/English_list.php Codes for the Representation of Names of Languages]. Copy the content of the table on that page and paste it into the sandbox page below the <code><nowiki>{{#invoke:}}</nowiki></code>.
#click Show preview
#wait
#get result
<includeonly>{{#ifeq:{{SUBPAGENAME}}|sandbox | |
<!-- Categories below this line, please; interwikis at Wikidata -->
[[Category:Language-related modules]]
}}</includeonly>
avahw0oxam0mrj3sbqdv4g5uxqsreq5
Module:Language/data/ISO 639-2
828
1900
15702
2022-08-11T22:38:34Z
Kambai Akau
15
Created page with "-- File-Date: 2013-01-11 return { -- 639-2T ["aar"] = {"Afar"}, ["abk"] = {"Abkhazian"}, ["ace"] = {"Achinese"}, ["ach"] = {"Acoli"}, ["ada"] = {"Adangme"}, ["ady"] = {"Adyghe", "Adygei"}, ["afa"] = {"Afro-Asiatic languages"}, ["afh"] = {"Afrihili"}, ["afr"] = {"Afrikaans"}, ["ain"] = {"Ainu"}, ["aka"] = {"Akan"}, ["akk"] = {"Akkadian"}, ["ale"] = {"Aleut"}, ["alg"] = {"Algonquian languages"}, ["alt"] = {"Southern Altai"}, ["amh"] = {"Amh..."
Scribunto
text/plain
-- File-Date: 2013-01-11
return { -- 639-2T
["aar"] = {"Afar"},
["abk"] = {"Abkhazian"},
["ace"] = {"Achinese"},
["ach"] = {"Acoli"},
["ada"] = {"Adangme"},
["ady"] = {"Adyghe", "Adygei"},
["afa"] = {"Afro-Asiatic languages"},
["afh"] = {"Afrihili"},
["afr"] = {"Afrikaans"},
["ain"] = {"Ainu"},
["aka"] = {"Akan"},
["akk"] = {"Akkadian"},
["ale"] = {"Aleut"},
["alg"] = {"Algonquian languages"},
["alt"] = {"Southern Altai"},
["amh"] = {"Amharic"},
["ang"] = {"English, Old (ca.450-1100)"},
["anp"] = {"Angika"},
["apa"] = {"Apache languages"},
["ara"] = {"Arabic"},
["arc"] = {"Official Aramaic (700-300 BCE)", "Imperial Aramaic (700-300 BCE)"},
["arg"] = {"Aragonese"},
["arn"] = {"Mapudungun", "Mapuche"},
["arp"] = {"Arapaho"},
["art"] = {"Artificial languages"},
["arw"] = {"Arawak"},
["asm"] = {"Assamese"},
["ast"] = {"Asturian", "Bable", "Leonese", "Asturleonese"},
["ath"] = {"Athapascan languages"},
["aus"] = {"Australian languages"},
["ava"] = {"Avaric"},
["ave"] = {"Avestan"},
["awa"] = {"Awadhi"},
["aym"] = {"Aymara"},
["aze"] = {"Azerbaijani"},
["bad"] = {"Banda languages"},
["bai"] = {"Bamileke languages"},
["bak"] = {"Bashkir"},
["bal"] = {"Baluchi"},
["bam"] = {"Bambara"},
["ban"] = {"Balinese"},
["bas"] = {"Basa"},
["bat"] = {"Baltic languages"},
["bej"] = {"Beja", "Bedawiyet"},
["bel"] = {"Belarusian"},
["bem"] = {"Bemba"},
["ben"] = {"Bengali"},
["ber"] = {"Berber languages"},
["bho"] = {"Bhojpuri"},
["bih"] = {"Bihari languages"},
["bik"] = {"Bikol"},
["bin"] = {"Bini", "Edo"},
["bis"] = {"Bislama"},
["bla"] = {"Siksika"},
["bnt"] = {"Bantu languages"},
["bod"] = {"Tibetan"},
["bos"] = {"Bosnian"},
["bra"] = {"Braj"},
["bre"] = {"Breton"},
["btk"] = {"Batak languages"},
["bua"] = {"Buriat"},
["bug"] = {"Buginese"},
["bul"] = {"Bulgarian"},
["byn"] = {"Blin", "Bilin"},
["cad"] = {"Caddo"},
["cai"] = {"Central American Indian languages"},
["car"] = {"Galibi Carib"},
["cat"] = {"Catalan", "Valencian"},
["cau"] = {"Caucasian languages"},
["ceb"] = {"Cebuano"},
["cel"] = {"Celtic languages"},
["ces"] = {"Czech"},
["cha"] = {"Chamorro"},
["chb"] = {"Chibcha"},
["che"] = {"Chechen"},
["chg"] = {"Chagatai"},
["chk"] = {"Chuukese"},
["chm"] = {"Mari"},
["chn"] = {"Chinook jargon"},
["cho"] = {"Choctaw"},
["chp"] = {"Chipewyan", "Dene Suline"},
["chr"] = {"Cherokee"},
["chu"] = {"Church Slavic", "Old Slavonic", "Church Slavonic", "Old Bulgarian", "Old Church Slavonic"},
["chv"] = {"Chuvash"},
["chy"] = {"Cheyenne"},
["cmc"] = {"Chamic languages"},
["cnr"] = {"Montenegrin"},
["cop"] = {"Coptic"},
["cor"] = {"Cornish"},
["cos"] = {"Corsican"},
["cpe"] = {"Creoles and pidgins, English based"},
["cpf"] = {"Creoles and pidgins, French-based"},
["cpp"] = {"Creoles and pidgins, Portuguese-based"},
["cre"] = {"Cree"},
["crh"] = {"Crimean Tatar", "Crimean Turkish"},
["crp"] = {"Creoles and pidgins"},
["csb"] = {"Kashubian"},
["cus"] = {"Cushitic languages"},
["cym"] = {"Welsh"},
["dak"] = {"Dakota"},
["dan"] = {"Danish"},
["dar"] = {"Dargwa"},
["day"] = {"Land Dayak languages"},
["del"] = {"Delaware"},
["den"] = {"Slave (Athapascan)"},
["deu"] = {"German"},
["dgr"] = {"Dogrib"},
["din"] = {"Dinka"},
["div"] = {"Divehi", "Dhivehi", "Maldivian"},
["doi"] = {"Dogri"},
["dra"] = {"Dravidian languages"},
["dsb"] = {"Lower Sorbian"},
["dua"] = {"Duala"},
["dum"] = {"Dutch, Middle (ca.1050-1350)"},
["dyu"] = {"Dyula"},
["dzo"] = {"Dzongkha"},
["efi"] = {"Efik"},
["egy"] = {"Egyptian (Ancient)"},
["eka"] = {"Ekajuk"},
["ell"] = {"Greek, Modern (1453-)"},
["elx"] = {"Elamite"},
["eng"] = {"English"},
["enm"] = {"English, Middle (1100-1500)"},
["epo"] = {"Esperanto"},
["est"] = {"Estonian"},
["eus"] = {"Basque"},
["ewe"] = {"Ewe"},
["ewo"] = {"Ewondo"},
["fan"] = {"Fang"},
["fao"] = {"Faroese"},
["fas"] = {"Persian"},
["fat"] = {"Fanti"},
["fij"] = {"Fijian"},
["fil"] = {"Filipino", "Pilipino"},
["fin"] = {"Finnish"},
["fiu"] = {"Finno-Ugrian languages"},
["fon"] = {"Fon"},
["fra"] = {"French"},
["frm"] = {"French, Middle (ca.1400-1600)"},
["fro"] = {"French, Old (842-ca.1400)"},
["frr"] = {"Northern Frisian"},
["frs"] = {"Eastern Frisian"},
["fry"] = {"Western Frisian"},
["ful"] = {"Fulah"},
["fur"] = {"Friulian"},
["gaa"] = {"Ga"},
["gay"] = {"Gayo"},
["gba"] = {"Gbaya"},
["gem"] = {"Germanic languages"},
["gez"] = {"Geez"},
["gil"] = {"Gilbertese"},
["gla"] = {"Gaelic", "Scottish Gaelic"},
["gle"] = {"Irish"},
["glg"] = {"Galician"},
["glv"] = {"Manx"},
["gmh"] = {"German, Middle High (ca.1050-1500)"},
["goh"] = {"German, Old High (ca.750-1050)"},
["gon"] = {"Gondi"},
["gor"] = {"Gorontalo"},
["got"] = {"Gothic"},
["grb"] = {"Grebo"},
["grc"] = {"Greek, Ancient (to 1453)"},
["grn"] = {"Guarani"},
["gsw"] = {"Swiss German", "Alemannic", "Alsatian"},
["guj"] = {"Gujarati"},
["gwi"] = {"Gwich'in"},
["hai"] = {"Haida"},
["hat"] = {"Haitian", "Haitian Creole"},
["hau"] = {"Hausa"},
["haw"] = {"Hawaiian"},
["heb"] = {"Hebrew"},
["her"] = {"Herero"},
["hil"] = {"Hiligaynon"},
["him"] = {"Himachali languages", "Western Pahari languages"},
["hin"] = {"Hindi"},
["hit"] = {"Hittite"},
["hmn"] = {"Hmong", "Mong"},
["hmo"] = {"Hiri Motu"},
["hrv"] = {"Croatian"},
["hsb"] = {"Upper Sorbian"},
["hun"] = {"Hungarian"},
["hup"] = {"Hupa"},
["hye"] = {"Armenian"},
["iba"] = {"Iban"},
["ibo"] = {"Igbo"},
["ido"] = {"Ido"},
["iii"] = {"Sichuan Yi", "Nuosu"},
["ijo"] = {"Ijo languages"},
["iku"] = {"Inuktitut"},
["ile"] = {"Interlingue", "Occidental"},
["ilo"] = {"Iloko"},
["ina"] = {"Interlingua (International Auxiliary Language Association)"},
["inc"] = {"Indic languages"},
["ind"] = {"Indonesian"},
["ine"] = {"Indo-European languages"},
["inh"] = {"Ingush"},
["ipk"] = {"Inupiaq"},
["ira"] = {"Iranian languages"},
["iro"] = {"Iroquoian languages"},
["isl"] = {"Icelandic"},
["ita"] = {"Italian"},
["jav"] = {"Javanese"},
["jbo"] = {"Lojban"},
["jpn"] = {"Japanese"},
["jpr"] = {"Judeo-Persian"},
["jrb"] = {"Judeo-Arabic"},
["kaa"] = {"Kara-Kalpak"},
["kab"] = {"Kabyle"},
["kac"] = {"Kachin", "Jingpho"},
["kal"] = {"Kalaallisut", "Greenlandic"},
["kam"] = {"Kamba"},
["kan"] = {"Kannada"},
["kar"] = {"Karen languages"},
["kas"] = {"Kashmiri"},
["kat"] = {"Georgian"},
["kau"] = {"Kanuri"},
["kaw"] = {"Kawi"},
["kaz"] = {"Kazakh"},
["kbd"] = {"Kabardian"},
["kha"] = {"Khasi"},
["khi"] = {"Khoisan languages"},
["khm"] = {"Central Khmer"},
["kho"] = {"Khotanese", "Sakan"},
["kik"] = {"Kikuyu", "Gikuyu"},
["kin"] = {"Kinyarwanda"},
["kir"] = {"Kirghiz", "Kyrgyz"},
["kmb"] = {"Kimbundu"},
["kok"] = {"Konkani"},
["kom"] = {"Komi"},
["kon"] = {"Kongo"},
["kor"] = {"Korean"},
["kos"] = {"Kosraean"},
["kpe"] = {"Kpelle"},
["krc"] = {"Karachay-Balkar"},
["krl"] = {"Karelian"},
["kro"] = {"Kru languages"},
["kru"] = {"Kurukh"},
["kua"] = {"Kuanyama", "Kwanyama"},
["kum"] = {"Kumyk"},
["kur"] = {"Kurdish"},
["kut"] = {"Kutenai"},
["lad"] = {"Ladino"},
["lah"] = {"Lahnda"},
["lam"] = {"Lamba"},
["lao"] = {"Lao"},
["lat"] = {"Latin"},
["lav"] = {"Latvian"},
["lez"] = {"Lezghian"},
["lim"] = {"Limburgan", "Limburger", "Limburgish"},
["lin"] = {"Lingala"},
["lit"] = {"Lithuanian"},
["lol"] = {"Mongo"},
["loz"] = {"Lozi"},
["ltz"] = {"Luxembourgish", "Letzeburgesch"},
["lua"] = {"Luba-Lulua"},
["lub"] = {"Luba-Katanga"},
["lug"] = {"Ganda"},
["lui"] = {"Luiseno"},
["lun"] = {"Lunda"},
["luo"] = {"Luo (Kenya and Tanzania)"},
["lus"] = {"Lushai"},
["mad"] = {"Madurese"},
["mag"] = {"Magahi"},
["mah"] = {"Marshallese"},
["mai"] = {"Maithili"},
["mak"] = {"Makasar"},
["mal"] = {"Malayalam"},
["man"] = {"Mandingo"},
["map"] = {"Austronesian languages"},
["mar"] = {"Marathi"},
["mas"] = {"Masai"},
["mdf"] = {"Moksha"},
["mdr"] = {"Mandar"},
["men"] = {"Mende"},
["mga"] = {"Irish, Middle (900-1200)"},
["mic"] = {"Mi'kmaq", "Micmac"},
["min"] = {"Minangkabau"},
["mis"] = {"Uncoded languages"},
["mkd"] = {"Macedonian"},
["mkh"] = {"Mon-Khmer languages"},
["mlg"] = {"Malagasy"},
["mlt"] = {"Maltese"},
["mnc"] = {"Manchu"},
["mni"] = {"Manipuri"},
["mno"] = {"Manobo languages"},
["moh"] = {"Mohawk"},
["mon"] = {"Mongolian"},
["mos"] = {"Mossi"},
["mri"] = {"Maori"},
["msa"] = {"Malay"},
["mul"] = {"Multiple languages"},
["mun"] = {"Munda languages"},
["mus"] = {"Creek"},
["mwl"] = {"Mirandese"},
["mwr"] = {"Marwari"},
["mya"] = {"Burmese"},
["myn"] = {"Mayan languages"},
["myv"] = {"Erzya"},
["nah"] = {"Nahuatl languages"},
["nai"] = {"North American Indian languages"},
["nap"] = {"Neapolitan"},
["nau"] = {"Nauru"},
["nav"] = {"Navajo", "Navaho"},
["nbl"] = {"Ndebele, South", "South Ndebele"},
["nde"] = {"Ndebele, North", "North Ndebele"},
["ndo"] = {"Ndonga"},
["nds"] = {"Low German", "Low Saxon", "German, Low", "Saxon, Low"},
["nep"] = {"Nepali"},
["new"] = {"Nepal Bhasa", "Newari"},
["nia"] = {"Nias"},
["nic"] = {"Niger-Kordofanian languages"},
["niu"] = {"Niuean"},
["nld"] = {"Dutch", "Flemish"},
["nno"] = {"Norwegian Nynorsk", "Nynorsk, Norwegian"},
["nob"] = {"Bokmål, Norwegian", "Norwegian Bokmål"},
["nog"] = {"Nogai"},
["non"] = {"Norse, Old"},
["nor"] = {"Norwegian"},
["nqo"] = {"N'Ko"},
["nso"] = {"Pedi", "Sepedi", "Northern Sotho"},
["nub"] = {"Nubian languages"},
["nwc"] = {"Classical Newari", "Old Newari", "Classical Nepal Bhasa"},
["nya"] = {"Chichewa", "Chewa", "Nyanja"},
["nym"] = {"Nyamwezi"},
["nyn"] = {"Nyankole"},
["nyo"] = {"Nyoro"},
["nzi"] = {"Nzima"},
["oci"] = {"Occitan (post 1500)"},
["oji"] = {"Ojibwa"},
["ori"] = {"Oriya"},
["orm"] = {"Oromo"},
["osa"] = {"Osage"},
["oss"] = {"Ossetian", "Ossetic"},
["ota"] = {"Turkish, Ottoman (1500-1928)"},
["oto"] = {"Otomian languages"},
["paa"] = {"Papuan languages"},
["pag"] = {"Pangasinan"},
["pal"] = {"Pahlavi"},
["pam"] = {"Pampanga", "Kapampangan"},
["pan"] = {"Panjabi", "Punjabi"},
["pap"] = {"Papiamento"},
["pau"] = {"Palauan"},
["peo"] = {"Persian, Old (ca.600-400 B.C.)"},
["phi"] = {"Philippine languages"},
["phn"] = {"Phoenician"},
["pli"] = {"Pali"},
["pol"] = {"Polish"},
["pon"] = {"Pohnpeian"},
["por"] = {"Portuguese"},
["pra"] = {"Prakrit languages"},
["pro"] = {"Provençal, Old (to 1500)", "Occitan, Old (to 1500)"},
["pus"] = {"Pushto", "Pashto"},
["que"] = {"Quechua"},
["raj"] = {"Rajasthani"},
["rap"] = {"Rapanui"},
["rar"] = {"Rarotongan", "Cook Islands Maori"},
["roa"] = {"Romance languages"},
["roh"] = {"Romansh"},
["rom"] = {"Romany"},
["ron"] = {"Romanian", "Moldavian", "Moldovan"},
["run"] = {"Rundi"},
["rup"] = {"Aromanian", "Arumanian", "Macedo-Romanian"},
["rus"] = {"Russian"},
["sad"] = {"Sandawe"},
["sag"] = {"Sango"},
["sah"] = {"Yakut"},
["sai"] = {"South American Indian languages"},
["sal"] = {"Salishan languages"},
["sam"] = {"Samaritan Aramaic"},
["san"] = {"Sanskrit"},
["sas"] = {"Sasak"},
["sat"] = {"Santali"},
["scn"] = {"Sicilian"},
["sco"] = {"Scots"},
["sel"] = {"Selkup"},
["sem"] = {"Semitic languages"},
["sga"] = {"Irish, Old (to 900)"},
["sgn"] = {"Sign Languages"},
["shn"] = {"Shan"},
["sid"] = {"Sidamo"},
["sin"] = {"Sinhala", "Sinhalese"},
["sio"] = {"Siouan languages"},
["sit"] = {"Sino-Tibetan languages"},
["sla"] = {"Slavic languages"},
["slk"] = {"Slovak"},
["slv"] = {"Slovenian"},
["sma"] = {"Southern Sami"},
["sme"] = {"Northern Sami"},
["smi"] = {"Sami languages"},
["smj"] = {"Lule Sami"},
["smn"] = {"Inari Sami"},
["smo"] = {"Samoan"},
["sms"] = {"Skolt Sami"},
["sna"] = {"Shona"},
["snd"] = {"Sindhi"},
["snk"] = {"Soninke"},
["sog"] = {"Sogdian"},
["som"] = {"Somali"},
["son"] = {"Songhai languages"},
["sot"] = {"Sotho, Southern"},
["spa"] = {"Spanish", "Castilian"},
["sqi"] = {"Albanian"},
["srd"] = {"Sardinian"},
["srn"] = {"Sranan Tongo"},
["srp"] = {"Serbian"},
["srr"] = {"Serer"},
["ssa"] = {"Nilo-Saharan languages"},
["ssw"] = {"Swati"},
["suk"] = {"Sukuma"},
["sun"] = {"Sundanese"},
["sus"] = {"Susu"},
["sux"] = {"Sumerian"},
["swa"] = {"Swahili"},
["swe"] = {"Swedish"},
["syc"] = {"Classical Syriac"},
["syr"] = {"Syriac"},
["tah"] = {"Tahitian"},
["tai"] = {"Tai languages"},
["tam"] = {"Tamil"},
["tat"] = {"Tatar"},
["tel"] = {"Telugu"},
["tem"] = {"Timne"},
["ter"] = {"Tereno"},
["tet"] = {"Tetum"},
["tgk"] = {"Tajik"},
["tgl"] = {"Tagalog"},
["tha"] = {"Thai"},
["tig"] = {"Tigre"},
["tir"] = {"Tigrinya"},
["tiv"] = {"Tiv"},
["tkl"] = {"Tokelau"},
["tlh"] = {"Klingon", "tlhIngan-Hol"},
["tli"] = {"Tlingit"},
["tmh"] = {"Tamashek"},
["tog"] = {"Tonga (Nyasa)"},
["ton"] = {"Tonga (Tonga Islands)"},
["tpi"] = {"Tok Pisin"},
["tsi"] = {"Tsimshian"},
["tsn"] = {"Tswana"},
["tso"] = {"Tsonga"},
["tuk"] = {"Turkmen"},
["tum"] = {"Tumbuka"},
["tup"] = {"Tupi languages"},
["tur"] = {"Turkish"},
["tut"] = {"Altaic languages"},
["tvl"] = {"Tuvalu"},
["twi"] = {"Twi"},
["tyv"] = {"Tuvinian"},
["udm"] = {"Udmurt"},
["uga"] = {"Ugaritic"},
["uig"] = {"Uighur", "Uyghur"},
["ukr"] = {"Ukrainian"},
["umb"] = {"Umbundu"},
["und"] = {"Undetermined"},
["urd"] = {"Urdu"},
["uzb"] = {"Uzbek"},
["vai"] = {"Vai"},
["ven"] = {"Venda"},
["vie"] = {"Vietnamese"},
["vol"] = {"Volapük"},
["vot"] = {"Votic"},
["wak"] = {"Wakashan languages"},
["wal"] = {"Wolaitta", "Wolaytta"},
["war"] = {"Waray"},
["was"] = {"Washo"},
["wen"] = {"Sorbian languages"},
["wln"] = {"Walloon"},
["wol"] = {"Wolof"},
["xal"] = {"Kalmyk", "Oirat"},
["xho"] = {"Xhosa"},
["yao"] = {"Yao"},
["yap"] = {"Yapese"},
["yid"] = {"Yiddish"},
["yor"] = {"Yoruba"},
["ypk"] = {"Yupik languages"},
["zap"] = {"Zapotec"},
["zbl"] = {"Blissymbols", "Blissymbolics", "Bliss"},
["zen"] = {"Zenaga"},
["zgh"] = {"Standard Moroccan Tamazight"},
["zha"] = {"Zhuang", "Chuang"},
["zho"] = {"Chinese"},
["znd"] = {"Zande languages"},
["zul"] = {"Zulu"},
["zun"] = {"Zuni"},
["zxx"] = {"No linguistic content", "Not applicable"},
["zza"] = {"Zaza", "Dimili", "Dimli", "Kirdki", "Kirmanjki", "Zazaki"}
}
6z1z7e9d5jtsvzx4kt61izbb4yq8n65
Module:Language/data/ISO 639-2/doc
828
1901
15703
2022-08-11T22:40:01Z
Kambai Akau
15
Created page with "This module contains data taken directly from a local copy of data copied from the table at [https://www.loc.gov/standards/iso639-2/php/English_list.php Codes for the Representation of Names of Languages] on the ISO 639-2 custodian's website. The table in this module was created using [[Module:Language/data/ISO 639-2/make]]. There should be no need to hand edit this table, so please do not do so except to reflect changes that are actually present in the source (in whic..."
wikitext
text/x-wiki
This module contains data taken directly from a local copy of data copied from the table at [https://www.loc.gov/standards/iso639-2/php/English_list.php Codes for the Representation of Names of Languages] on the ISO 639-2 custodian's website.
The table in this module was created using [[Module:Language/data/ISO 639-2/make]]. There should be no need to hand edit this table, so please do not do so except to reflect changes that are actually present in the source (in which case it is probably better to re-run the extraction tool on the new data).
<includeonly>{{#ifeq:{{SUBPAGENAME}}|sandbox | |
<!-- Categories below this line, please; interwikis at Wikidata -->
[[Category:Language-related modules]]
}}</includeonly>
ddfugpw5jmyuimtpb5fvntpv06qts8m
Module:Language/data/ISO 639-2B
828
1902
15704
2022-08-11T22:43:56Z
Kambai Akau
15
Created page with "-- File-Date: 2013-01-11 return { -- 639-2B ["alb"] = {"Albanian"}, ["arm"] = {"Armenian"}, ["baq"] = {"Basque"}, ["bur"] = {"Burmese"}, ["chi"] = {"Chinese"}, ["cze"] = {"Czech"}, ["dut"] = {"Dutch", "Flemish"}, ["fre"] = {"French"}, ["geo"] = {"Georgian"}, ["ger"] = {"German"}, ["gre"] = {"Greek, Modern (1453-)"}, ["ice"] = {"Icelandic"}, ["mac"] = {"Macedonian"}, ["mao"] = {"Maori"}, ["may"] = {"Malay"}, ["per"] = {"Persian"}, ["rum"]..."
Scribunto
text/plain
-- File-Date: 2013-01-11
return { -- 639-2B
["alb"] = {"Albanian"},
["arm"] = {"Armenian"},
["baq"] = {"Basque"},
["bur"] = {"Burmese"},
["chi"] = {"Chinese"},
["cze"] = {"Czech"},
["dut"] = {"Dutch", "Flemish"},
["fre"] = {"French"},
["geo"] = {"Georgian"},
["ger"] = {"German"},
["gre"] = {"Greek, Modern (1453-)"},
["ice"] = {"Icelandic"},
["mac"] = {"Macedonian"},
["mao"] = {"Maori"},
["may"] = {"Malay"},
["per"] = {"Persian"},
["rum"] = {"Romanian", "Moldavian", "Moldovan"},
["slo"] = {"Slovak"},
["tib"] = {"Tibetan"},
["wel"] = {"Welsh"}
}
7kyzwi6xop8izl2xoh9c32sam9cyh4q
Module:Language/data/ISO 639-2B/doc
828
1903
15705
2022-08-11T22:44:53Z
Kambai Akau
15
Created page with "This module contains data taken directly from a local copy of data copied from the table at [https://www.loc.gov/standards/iso639-2/php/English_list.php Codes for the Representation of Names of Languages] on the ISO 639-2 custodian's website. The table in this module was created using [[Module:Language/data/ISO 639-2/make]]. There should be no need to hand edit this table, so please do not do so except to reflect changes that are actually present in the source (in whic..."
wikitext
text/x-wiki
This module contains data taken directly from a local copy of data copied from the table at [https://www.loc.gov/standards/iso639-2/php/English_list.php Codes for the Representation of Names of Languages] on the ISO 639-2 custodian's website.
The table in this module was created using [[Module:Language/data/ISO 639-2/make]]. There should be no need to hand edit this table, so please do not do so except to reflect changes that are actually present in the source (in which case it is probably better to re-run the extraction tool on the new data).
<includeonly>{{#ifeq:{{SUBPAGENAME}}|sandbox | |
<!-- Categories below this line, please; interwikis at Wikidata -->
[[Category:Language-related modules]]
}}</includeonly>
ddfugpw5jmyuimtpb5fvntpv06qts8m
Module:Fa̱k/doc
828
1904
15711
15708
2022-08-11T22:52:06Z
Kambai Akau
15
Kambai Akau shyei peji [[Module:Listen/doc]] nat [[Module:Fa̱k/doc]] di̱ mi̱n wot a̱shaivak: Di̱n Tyap
wikitext
text/x-wiki
{{Lua|Module:File link|Module:TableTools|Module:Side box|Module:If preview}}
{{Uses TemplateStyles|Module:Listen/styles.css}}
This module implements the {{tl|listen}} template.
auhv0480osirvg3x3senvjg05eoduvk
Module:Fa̱k/styles.css
828
1905
15712
15709
2022-08-11T22:52:06Z
Kambai Akau
15
Kambai Akau shyei peji [[Module:Listen/styles.css]] nat [[Module:Fa̱k/styles.css]] di̱ mi̱n wot a̱shaivak: Di̱n Tyap
sanitized-css
text/css
/* {{pp|small=y}} */
.listen .side-box-text {
line-height: 1.1em;
}
.listen-plain {
border: none;
background: transparent;
}
.listen-embedded {
width: 100%;
margin: 0;
border-width: 1px 0 0 0;
background: transparent;
}
.listen-header {
padding: 2px;
}
.listen-embedded .listen-header {
padding: 2px 0;
}
.listen-file-header {
padding: 4px 0;
}
.listen .description {
padding-top: 2px;
}
.listen .mw-tmh-player {
max-width: 100%;
}
/* have to deal with Vector suboptimal */
@media (max-width: 719px) {
.listen {
clear: both;
}
}
@media (min-width: 720px) {
.listen:not(.listen-noimage) {
width: 320px;
}
/* left/right (core template takes care of right)/center mutually exclusive */
.listen-left {
/* TODO: Understand why this overflow is here. */
overflow: visible;
float: left;
}
.listen-center {
float: none;
margin-left: auto;
margin-right: auto;
}
}
8wj5f95mzuq4d8vsnr0wimpjcllnyau
Ta̱mpi̱let:Listen
10
1906
15714
2022-08-11T22:55:05Z
Kambai Akau
15
Kambai Akau shyei peji [[Ta̱mpi̱let:Listen]] nat [[Ta̱mpi̱let:Fa̱k]]: Di̱n Tyap
wikitext
text/x-wiki
#REDIRECT [[Ta̱mpi̱let:Fa̱k]]
rggfb7s25w9xtstvfy0sohjcbjoz2do
Ta̱mpi̱let:Listen/Documentation/start box2
10
1907
15716
2022-08-11T22:55:05Z
Kambai Akau
15
Kambai Akau shyei peji [[Ta̱mpi̱let:Listen/Documentation/start box2]] nat [[Ta̱mpi̱let:Fa̱k/Documentation/start box2]]: Di̱n Tyap
wikitext
text/x-wiki
#REDIRECT [[Ta̱mpi̱let:Fa̱k/Documentation/start box2]]
5ap4x2p4p7thqlu0fi6ms97swi6kfj3
Ta̱mpi̱let:Listen/doc
10
1908
15718
2022-08-11T22:55:06Z
Kambai Akau
15
Kambai Akau shyei peji [[Ta̱mpi̱let:Listen/doc]] nat [[Ta̱mpi̱let:Fa̱k/doc]]: Di̱n Tyap
wikitext
text/x-wiki
#REDIRECT [[Ta̱mpi̱let:Fa̱k/doc]]
400kdrlrr1t21nkfjzelwb5oubd5jn9
Ta̱mpi̱let:Listen/doc (section)
10
1909
15720
2022-08-11T22:55:06Z
Kambai Akau
15
Kambai Akau shyei peji [[Ta̱mpi̱let:Listen/doc (section)]] nat [[Ta̱mpi̱let:Fa̱k/doc (section)]]: Di̱n Tyap
wikitext
text/x-wiki
#REDIRECT [[Ta̱mpi̱let:Fa̱k/doc (section)]]
a06m8leb3al7yoh4l8fscrkejegxn8g
Ta̱mpi̱let:For
10
1910
15721
2022-08-11T22:56:42Z
Kambai Akau
15
Created page with "<includeonly>{{#invoke:For|For}}</includeonly><noinclude> {{Documentation}} </noinclude>"
wikitext
text/x-wiki
<includeonly>{{#invoke:For|For}}</includeonly><noinclude>
{{Documentation}}
</noinclude>
7es2p1mk6qse8zlwn5qqya2ysrq1rcr
Ta̱mpi̱let:For/doc
10
1911
15722
2022-08-11T22:58:22Z
Kambai Akau
15
Created page with "{{for|the template to create a for loop|Template:For loop}} {{documentation subpage}} <!-- EDIT TEMPLATE DOCUMENTATION BELOW THIS LINE --> {{high-use| 149560 }} {{Lua|Module:For}} == Usage == This template yields a [[WP:Hatnote|hatnote]] similar to {{tl|Other uses}}, but allowing more flexible text with links to multiple articles or disambiguation pages. It accepts one or more parameters (zero is not allowed). === With one parameter (rare) === The first parameter sets..."
wikitext
text/x-wiki
{{for|the template to create a for loop|Template:For loop}}
{{documentation subpage}}
<!-- EDIT TEMPLATE DOCUMENTATION BELOW THIS LINE -->
{{high-use| 149560 }}
{{Lua|Module:For}}
== Usage ==
This template yields a [[WP:Hatnote|hatnote]] similar to {{tl|Other uses}}, but allowing more flexible text with links to multiple articles or disambiguation pages. It accepts one or more parameters (zero is not allowed).
=== With one parameter (rare) ===
The first parameter sets the hatnote itself and should be plain text. Without any further parameter, it will link to a default disambiguation page for the article title, e.g. {{tlc|For|other entities}} yields on page Foo:
{{hatnote|For other entities, see [[:Foo (disambiguation)]].}}
This kind of usage with exactly one parameter is rare, as in most instances {{tl|Other uses}} (and in this case, {{tl|About}} with the same result) can be used more easily, and without any parameter. But it makes sense in some cases for disambiguation pages with the same type of other meanings, e.g. in [[Treaty of Lisbon]]:
{{hatnote|For earlier treaties known as Treaty of Lisbon, see [[Treaty of Lisbon (disambiguation)]].}}
However, for many such cases specific new templates have been implemented, like {{tl|Other people}}, {{tl|Other places}} etc. - see hatnote template overview box below.
=== With two parameters ===
The second parameter is used to change the resultant link, e.g. {{tlc|For|the acronym|FOO}} yields (wherever it is set, now independent of the article title):
{{For|the acronym|FOO}}
=== With more parameters ===
The third, fourth and fifth parameters are used to give one, two, or three additional resultant links:
{{For|similar terms|Foobar|Bar}}
{{For|similar terms|Foobar|Bar|Baz}}
{{For|similar terms|Foobar|Bar|Baz|Quux}}
the last being produced by e.g. {{tlc|For|similar terms|Foobar|Bar|Baz|Quux}}.
This template supports {{para|selfref}} (see {{tl|self reference}} and [[MOS:SELFREF]] for details).
==Tracking category==
Pages with errors reported by this template are added to [[:Category:Hatnote templates using unusual parameters]].
==See also==
* {{tl|About}}
* {{tl|For-text}}
* {{tl|For multi}}
* {{tl|See also}}
==TemplateData==
{{TemplateData header}}
<templatedata>
{
"description": "This template lists up to four articles on alternative meanings of a term. For further details and examples see the template documentation.",
"params": {
"1": {
"label": "Description",
"description": "a phrase describing the major alternative, or a general term for all alternative meanings",
"type": "string",
"required": true,
"example": "other people with the surname Smith"
},
"2": {
"label": "First link",
"description": "A page to link to; usually a disambiguation page or the most likely other meaning.",
"default": "{{PAGENAME}} (disambiguation)",
"type": "wiki-page-name",
"required": false
},
"3": {
"label": "Second link",
"description": "A page to link to for another meaning, if any.",
"type": "wiki-page-name",
"required": false
},
"4": {
"label": "Third link",
"description": "A page to link to for another meaning, if any.",
"type": "wiki-page-name",
"required": false
},
"5": {
"label": "Fourth link",
"description": "A page to link to for another meaning, if any.",
"type": "wiki-page-name",
"required": false
}
},
"format": "inline"
}
</templatedata>
{{Hatnote templates}}
<includeonly>{{Sandbox other||
<!-- ADD CATEGORIES BELOW THIS LINE -->
[[Category:Disambiguation and redirection templates|For]]
[[Category:Hatnote templates]]
}}</includeonly>
9t8id16fov71c7229dyhvgjyeaznzw2
Module:For
828
1912
15723
2022-08-11T22:59:05Z
Kambai Akau
15
Created page with "local mArguments --initialize lazily local mHatlist = require('Module:Hatnote list') local mHatnote = require('Module:Hatnote') local yesNo = require('Module:Yesno') local p = {} --Implements {{For}} from the frame --uses capitalized "For" to avoid collision with Lua reserved word "for" function p.For (frame) mArguments = require('Module:Arguments') return p._For(mArguments.getArgs(frame)) end --Implements {{For}} but takes a manual arguments table function p._For (a..."
Scribunto
text/plain
local mArguments --initialize lazily
local mHatlist = require('Module:Hatnote list')
local mHatnote = require('Module:Hatnote')
local yesNo = require('Module:Yesno')
local p = {}
--Implements {{For}} from the frame
--uses capitalized "For" to avoid collision with Lua reserved word "for"
function p.For (frame)
mArguments = require('Module:Arguments')
return p._For(mArguments.getArgs(frame))
end
--Implements {{For}} but takes a manual arguments table
function p._For (args)
local use = args[1]
if (not use) then
return mHatnote.makeWikitextError(
'no context parameter provided. Use {{other uses}} for "other uses" hatnotes.',
'Template:For#Errors',
args.category
)
end
local pages = {}
function two (a, b) return a, b, 1 end --lets us run ipairs from 2
for k, v in two(ipairs(args)) do table.insert(pages, v) end
local title = mw.title.getCurrentTitle()
local skipCat = title.isTalkPage or title.namespace == 2 --don't categorise talk pages and userspace
local oddCat = skipCat and '' or '[[Category:Hatnote templates using unusual parameters]]'
local category = yesNo(args.category)
return mHatnote._hatnote(
mHatlist.forSeeTableToString({{use = use, pages = pages}}),
{selfref = args.selfref}
) .. (
(use == 'other uses') and ((category == true) or (category == nil)) and
oddCat or ''
)
end
return p
5kir3llbyjasubdg18thlz8rxsxfwtw
Module:For/doc
828
1913
15724
2022-08-11T22:59:46Z
Kambai Akau
15
Created page with "{{high-risk}} {{Module rating|protected}} Implements {{tl|for}}. <includeonly>{{#ifeq:{{SUBPAGENAME}}|sandbox | | <!-- Categories below this line, please; interwikis at Wikidata --> [[Category:Hatnote modules]] }}</includeonly>"
wikitext
text/x-wiki
{{high-risk}}
{{Module rating|protected}}
Implements {{tl|for}}.
<includeonly>{{#ifeq:{{SUBPAGENAME}}|sandbox | |
<!-- Categories below this line, please; interwikis at Wikidata -->
[[Category:Hatnote modules]]
}}</includeonly>
sc7o3dabuz5k5qgwnhek155wf2f04og
Module:For/sandbox
828
1914
15725
2022-08-11T23:00:21Z
Kambai Akau
15
Created page with "local mArguments --initialize lazily local mHatlist = require('Module:Hatnote list') local mHatnote = require('Module:Hatnote') local yesNo = require('Module:Yesno') local p = {} --Implements {{For}} from the frame --uses capitalized "For" to avoid collision with Lua reserved word "for" function p.For (frame) mArguments = require('Module:Arguments') return p._For(mArguments.getArgs(frame)) end --Implements {{For}} but takes a manual arguments table function p._For (a..."
Scribunto
text/plain
local mArguments --initialize lazily
local mHatlist = require('Module:Hatnote list')
local mHatnote = require('Module:Hatnote')
local yesNo = require('Module:Yesno')
local p = {}
--Implements {{For}} from the frame
--uses capitalized "For" to avoid collision with Lua reserved word "for"
function p.For (frame)
mArguments = require('Module:Arguments')
return p._For(mArguments.getArgs(frame))
end
--Implements {{For}} but takes a manual arguments table
function p._For (args)
local use = args[1]
if (not use) then
return mHatnote.makeWikitextError(
'no context parameter provided. Use {{other uses}} for "other uses" hatnotes.',
'Template:For#Errors',
args.category
)
end
local pages = {}
function two (a, b) return a, b, 1 end --lets us run ipairs from 2
for k, v in two(ipairs(args)) do table.insert(pages, v) end
local title = mw.title.getCurrentTitle()
-- Don't categorise talk pages and userspace
local skipCat = title.isTalkPage or title.namespace == 2
local oddCat = skipCat and '' or '[[Category:Hatnote templates using unusual parameters]]'
local category = yesNo(args.category)
return mHatnote._hatnote(
mHatlist.forSeeTableToString({{use = use, pages = pages}}),
{selfref = args.selfref}
) .. (
(use == 'other uses') and ((category == true) or (category == nil)) and
oddCat or ''
)
end
return p
4xrd5wr3plc8a7s74rf5jiqjub4ef9x
Ta̱mpi̱let:Hatnote templates
10
1915
15726
2022-08-11T23:02:15Z
Kambai Akau
15
Created page with "{{Navbox | name = Hatnote templates | state = {{{state|<includeonly>autocollapse</includeonly>}}} | bodyclass = hlist | belowclass = hlist | title = [[WP:Hatnote#Hatnote templates|Hatnote templates]] | above = *[[Wikipedia:Hatnote]] *[[Wikipedia:Disambiguation]] *[[Wikipedia:Redirect]] | group1 = Generic | list1 = *{{tl|Hatnote}} *{{tl|Selfref}} (for self-references) | group2 = For and about | list2 = *{{tl|For}} *{{tl|For-text}} (for custom text) *{{tl|For multi}} (..."
wikitext
text/x-wiki
{{Navbox
| name = Hatnote templates
| state = {{{state|<includeonly>autocollapse</includeonly>}}}
| bodyclass = hlist
| belowclass = hlist
| title = [[WP:Hatnote#Hatnote templates|Hatnote templates]]
| above =
*[[Wikipedia:Hatnote]]
*[[Wikipedia:Disambiguation]]
*[[Wikipedia:Redirect]]
| group1 = Generic
| list1 =
*{{tl|Hatnote}}
*{{tl|Selfref}} (for self-references)
| group2 = For and about
| list2 =
*{{tl|For}}
*{{tl|For-text}} (for custom text)
*{{tl|For multi}} (for multiple uses)
*{{tl|About}}
*Variations: {{tl|Other uses}}
*{{tl|Other uses of}}
*{{tl|Redirect-distinguish-for}}
*{{tl|About-distinguish}}
*{{tl|About-distinguish-text}}
| group3 = Other topics
| list3 =
*{{tl|Other people}}
*{{tl|About other people}} (adds "about" description)
*{{tl|Similar names}}
*{{tl|Other places}}
*{{tl|Other ships}}
*{{tl|Other hurricanes}}
| group4 = Redirect
| list4 =
*{{tl|Redirect}}
*{{tl|Redirect2}} (for two redirects)
*{{tl|Redirect-multi}} (for multiple redirects)
*{{tl|Redirect-several}} (for several redirects, without listing each)
*{{tl|Redirect-synonym}}
*{{tl|Redirect-distinguish}}
*{{tl|Redirect-distinguish-text}}
*{{tl|Redirect-distinguish-for}}
*{{tl|Technical reasons}}
| group5 = Distinguish
| list5 =
*{{tl|Distinguish}} (supports custom text too)
*{{tl|Redirect-distinguish}}
*{{tl|Redirect-distinguish-text}} (for custom text)
*{{tl|Redirect-distinguish-for}}
*{{tl|About-distinguish}}
*{{tl|About-distinguish-text}} (for custom text)
| group6 = For use in sections
| list6 =
*{{tl|Main}}
*{{tl|Further}}
*{{tl|Further-text}} (for custom text)
*{{tl|Further ill}}
*{{tl|See also}}
*{{tl|See also if exists}}
*{{tl|For outline}}
*{{tl|For timeline}}
| group7 = Special
| list7 =
*{{tl|Broader}}
*{{tl|See introduction}}
*{{tl|See Wiktionary}}
*{{tl|Transcluding article}}
*{{tl|Transcluded section}}
| group8 = Subject specific
| list8 =
* {{tl|Year dab}}
* {{tl|Highway detail hatnote}}
* {{tl|For LMST}}
* {{tl|WikiIPA}}
| below =
*{{Icon|cat}} [[:Category:Hatnote templates]]
**[[:Category:Hatnote modules|modules]]
**[[:Category:Hatnote templates for names|for [family] names]]
**[[:Category:Hatnote templates for lists|for lists]]
*[[Template:Category hatnote templates|hatnote templates for category pages]]
}}<noinclude>
{{Documentation}}
</noinclude>
ijedcubz715wwxi9mkz6gy5ppn2pim8
Ta̱mpi̱let:Hatnote templates/doc
10
1916
15727
2022-08-11T23:03:41Z
Kambai Akau
15
Created page with "{{Documentation subpage}} <!-- Please add categories at the bottom of this page, and interwikis at Wikidata (see Wikipedia:Wikidata) --> {{Collapsible option|statename=optional}} == TemplateData for [[mw:Extension:VisualEditor|VisualEditor]] == <templatedata> { "params": { "state": {} } } </templatedata> == See also == *[[Wikipedia:Hatnote#Hatnote_templates|Wikipedia's Hatnote templates]] <includeonly>{{Sandbox other|| <!-- Add categories below this line, and inte..."
wikitext
text/x-wiki
{{Documentation subpage}}
<!-- Please add categories at the bottom of this page, and interwikis at Wikidata (see Wikipedia:Wikidata) -->
{{Collapsible option|statename=optional}}
== TemplateData for [[mw:Extension:VisualEditor|VisualEditor]] ==
<templatedata>
{
"params": {
"state": {}
}
}
</templatedata>
== See also ==
*[[Wikipedia:Hatnote#Hatnote_templates|Wikipedia's Hatnote templates]]
<includeonly>{{Sandbox other||
<!-- Add categories below this line, and interwikis at Wikidata -->
[[Category:Hatnote templates| ]]
[[Category:Documentation see also templates]]
}}</includeonly>
a5eidh4be2a03e8p9knwenkx132i685
Ta̱mpi̱let:TemplateData header
10
1917
15728
2022-08-11T23:06:06Z
Kambai Akau
15
Created page with "<div class="templatedata-header">{{#if:{{{noheader|}}}|<!-- noheader: -->{{Template parameter usage|based=y}}|<!-- +header: -->This is the {{#if:{{{nolink|}}}|<!-- +header, nolink TD -->TemplateData|<!-- +header, +link [[TD]]; DEFAULT: -->[[Wikipedia:TemplateData|TemplateData]]}}<!-- e.o. #if:nolink; DEFAULT: --> for this template used by [[mw:Extension:TemplateWizard|TemplateWizard]], [[Wikipedia:VisualEditor|VisualEditor]] and other tools. {{Template parame..."
wikitext
text/x-wiki
<div class="templatedata-header">{{#if:{{{noheader|}}}|<!--
noheader:
-->{{Template parameter usage|based=y}}|<!--
+header:
-->This is the {{#if:{{{nolink|}}}|<!--
+header, nolink TD
-->TemplateData|<!--
+header, +link [[TD]]; DEFAULT:
-->[[Wikipedia:TemplateData|TemplateData]]}}<!--
e.o. #if:nolink; DEFAULT:
--> for this template used by [[mw:Extension:TemplateWizard|TemplateWizard]], [[Wikipedia:VisualEditor|VisualEditor]] and other tools. {{Template parameter usage|based=y}}<!--
e.o. #if:noheader
-->}}
'''TemplateData for {{{1|{{BASEPAGENAME}}}}}'''
</div><includeonly><!--
check parameters
-->{{#invoke:Check for unknown parameters|check
|unknown={{template other|1=[[Category:Pages using TemplateData header with unknown parameters|_VALUE_]]}}
|template=Template:TemplateData header
|1 |nolink |noheader
|preview=<div class="error" style="font-weight:normal">Unknown parameter '_VALUE_' in [[Template:TemplateData header]].</div>
}}<!--
-->{{template other|{{sandbox other||
[[Category:Templates using TemplateData]]
}}}}</includeonly><!--
--><noinclude>{{Documentation}}</noinclude>
pxhfjcmyklg4yst97in9mz897nxe198
Ta̱mpi̱let:TemplateData header/doc
10
1918
15729
2022-08-11T23:08:22Z
Kambai Akau
15
Created page with "{{Documentation subpage}} <!-- Add categories where indicated at the bottom of this page and interwikis at Wikidata --> {{Lua|Module:Check for unknown parameters}} The {{tlx|TemplateData header}} template inserts a brief header for the template data section, and adds the page to [[:Category:Templates using TemplateData]]. == Usage == <pre style="overflow:auto;"> ==TemplateData== {{TemplateData header}} <templatedata>{ ... }</templatedata> Note: Section headers of ==Pa..."
wikitext
text/x-wiki
{{Documentation subpage}}
<!-- Add categories where indicated at the bottom of this page and interwikis at Wikidata -->
{{Lua|Module:Check for unknown parameters}}
The {{tlx|TemplateData header}} template inserts a brief header for the template data section, and adds the page to [[:Category:Templates using TemplateData]].
== Usage ==
<pre style="overflow:auto;">
==TemplateData==
{{TemplateData header}}
<templatedata>{
...
}</templatedata>
Note: Section headers of ==Parameters== or ==Usage== may also be used.
</pre>
Use <code><nowiki>{{TemplateData header|Template name}}</nowiki></code> to display a name for the template other than the default, which is [[Help:Magic_words#Variables|<nowiki>{{BASEPAGENAME}}</nowiki>]]. Do ''not'' add namespace <code>Template:</code>
:{|
|{{TemplateData header|Template name}}
|}
Use <code><nowiki>{{TemplateData header|nolink=1}}</nowiki></code> to omit the [[Help:Link#Wikilinks|wikilink]] from the word "TemplateData" in the header text, for instances where it is already linked outside this template.
:{|
|{{TemplateData header|nolink=1}}
|}
Use <code><nowiki>{{TemplateData header|noheader=1}}</nowiki></code> to omit the first sentence of the header text.
:{|
|{{TemplateData header|noheader=1}}
|}
==Example==
:Using a collapse box for {{elc|Template:User}}:
{{nowiki template demo|code=<nowiki>
{{collapse top|title=TemplateData}}
{{TemplateData header|User}}
<templatedata>
{
"description": "This template is used to create a link to a user's user page (unless using {{Useranon}}), talk page, and contributions, and generates a special notification (aka 'ping').",
"params": {
"1": {
"label": "User name",
"type": "string",
"required": true,
"description": "The user name that you want to create links to and notify.",
"aliases":["user"]
},
"project": {
"label": "Sister project",
"type": "string",
"description": "Used to link to a sister project instead of the English Wikipedia. Use the standard interwiki prefix."
},
"lang": {
"label": "Other language project",
"type": "string",
"description": "Used to link to another language project. If used with the \"sister project\" parameter, links to another language of a sister project. Otherwise links to another language Wikipedia. Use the standard language code."
},
"separator": {
"label": "Separator",
"description": "Used to change the separator between the links. If unused, defaults to a dot."
}
}
}
</templatedata>
{{collapse bottom}}</nowiki>}}
==Parameters==
{{TemplateData header}}
<templatedata>{
"description": "Inserts a brief header for the template data section. Adds the page to [[Category:Templates using TemplateData]]",
"params": {
"1": {
"label": "Template name",
"description": "Used to display a name for the template other than the default, which is {{BASEPAGENAME}}.",
"type": "string",
"required": false
},
"nolink": {
"label": "No link",
"description": "Assigning any value to this parameter will omit cause the template to omit the wikilink from the word \"TemplateData\" in the header text, for instances where it is already linked outside this template.",
"type": "string",
"required": false
},
"noheader": {
"label": "No header",
"description": "Assigning any value to this parameter will cause the template to omit the first sentence of the header text.",
"type": "string",
"required": false
}
}
}</templatedata>
==Tracking category==
* {{clc|Category:Pages using TemplateData header with unknown parameters}}
==See also==
* {{clc|Category:Templates using TemplateData}}
* {{tl|Crude TemplateData}}
* {{tl|Template parameter usage}}
<includeonly>{{sandbox other||
<!-- Categories below this line; interwikis at Wikidata -->
{{DEFAULTSORT:Templatedata Header}}
[[Category:TemplateData|Header]]
[[Category:Documentation header templates]]
}}</includeonly>
m9w5v940f41020tkhqs2pbl3wx7n9np
Ta̱mpi̱let:Listen image
10
1919
15732
2022-08-11T23:14:05Z
Kambai Akau
15
Kambai Akau shyei peji [[Ta̱mpi̱let:Listen image]] nat [[Ta̱mpi̱let:Ghwughwu fa̱k]]: Di̱n Tyap
wikitext
text/x-wiki
#REDIRECT [[Ta̱mpi̱let:Ghwughwu fa̱k]]
0bt4fv661fjhz0ajogl87xul1ay4t3n
Ta̱mpi̱let:Listen image/doc
10
1920
15734
2022-08-11T23:14:05Z
Kambai Akau
15
Kambai Akau shyei peji [[Ta̱mpi̱let:Listen image/doc]] nat [[Ta̱mpi̱let:Ghwughwu fa̱k/doc]]: Di̱n Tyap
wikitext
text/x-wiki
#REDIRECT [[Ta̱mpi̱let:Ghwughwu fa̱k/doc]]
ed42gknldopwo91houixjgv6rjgge0v
Ta̱mpi̱let:Lang-it
10
1921
15739
2022-08-11T23:33:50Z
Kambai Akau
15
Created page with "<includeonly>{{#invoke:lang|lang_xx_italic |code=it }}</includeonly><noinclude> {{Documentation|Template:Lang-x/doc}} [[Category:Italic multilingual support templates]] </noinclude>"
wikitext
text/x-wiki
<includeonly>{{#invoke:lang|lang_xx_italic
|code=it
}}</includeonly><noinclude>
{{Documentation|Template:Lang-x/doc}}
[[Category:Italic multilingual support templates]]
</noinclude>
lk0e03t4ix27tm9j2gzf60jdw567iry
Ta̱mpi̱let:IPA-it
10
1922
15740
2022-08-11T23:35:05Z
Kambai Akau
15
Created page with "<small>{{#switch: {{{2}}}|IPA=IPA: |lang=Italian: |pron=pronounced |local=locally |=|Italian pronunciation: }}</small>{{IPA|[[Help:IPA/Italian|[{{{1}}}]]]|lang=it}}{{#if:{{{3|}}}|{{IPA audio link|{{{3}}} }} }}<noinclude> {{documentation|Template:usage of IPA templates}} <!-- PLEASE ADD CATEGORIES BELOW THIS LINE, THANKS. --> [[Category:IPA language templates|{{PAGENAME}}]] <!-- PLEASE ADD INTERWIKIS BELOW THIS LINE, THANKS. --> </noinclude>"
wikitext
text/x-wiki
<small>{{#switch: {{{2}}}|IPA=IPA: |lang=Italian: |pron=pronounced |local=locally |=|Italian pronunciation: }}</small>{{IPA|[[Help:IPA/Italian|[{{{1}}}]]]|lang=it}}{{#if:{{{3|}}}|{{IPA audio link|{{{3}}} }} }}<noinclude>
{{documentation|Template:usage of IPA templates}}
<!-- PLEASE ADD CATEGORIES BELOW THIS LINE, THANKS. -->
[[Category:IPA language templates|{{PAGENAME}}]]
<!-- PLEASE ADD INTERWIKIS BELOW THIS LINE, THANKS. -->
</noinclude>
9ufczxxpeawkesw8h7ebw5pvnpusmbh
Ta̱mpi̱let:IPA keys
10
1923
15741
2022-08-11T23:35:57Z
Kambai Akau
15
Created page with "{{Navbox |name = IPA keys |listclass = hlist |state = {{{state|<noinclude>expanded</noinclude>}}} |title = [[International Phonetic Alphabet]] keys |above = |image = |style = {{{style|}}} |list1 = * [[Help:IPA/Adyghe|Adyghe]] * [[Help:IPA/Afrikaans|Afrikaans]] * [[Help:IPA/Albanian|Albanian]] * [[Help:IPA/Amharic|Amharic]] * Arabic ** [[Help:IPA/Arabic|Modern Standard]] ** [[Help:IPA/Egyptian Arabic|Egyptian]] ** Help:IPA/Hejazi..."
wikitext
text/x-wiki
{{Navbox
|name = IPA keys
|listclass = hlist
|state = {{{state|<noinclude>expanded</noinclude>}}}
|title = [[International Phonetic Alphabet]] keys
|above =
|image =
|style = {{{style|}}}
|list1 =
* [[Help:IPA/Adyghe|Adyghe]]
* [[Help:IPA/Afrikaans|Afrikaans]]
* [[Help:IPA/Albanian|Albanian]]
* [[Help:IPA/Amharic|Amharic]]
* Arabic
** [[Help:IPA/Arabic|Modern Standard]]
** [[Help:IPA/Egyptian Arabic|Egyptian]]
** [[Help:IPA/Hejazi Arabic|Hejazi]]
** [[Help:IPA/Lebanese Arabic|Lebanese]]
** [[Help:IPA/Tunisian Arabic|Tunisian]]
* [[Help:IPA/Armenian|Armenian]]
* [[Help:IPA/Assamese|Assamese]]
* [[Help:IPA/Astur-Leonese|Asturian]]
* [[Help:IPA/Australian languages|Australian languages]]
* [[Help:IPA/Azerbaijani|Azerbaijani]]
* [[Help:IPA/Basque|Basque]]
* [[Help:IPA/Belarusian|Belarusian]]
* [[Help:IPA/Bengali|Bengali]]
* [[Help:IPA/Berber|Berber]]
* [[Help:IPA/Breton|Breton]]
* [[Help:IPA/Bulgarian|Bulgarian]]
* [[Help:IPA/Burmese|Burmese]]
* Catalan / Valencian
** [[Help:IPA/Catalan|Standard]]
** [[Help:IPA/Insular Catalan|Insular]]
* Chinese
** [[Help:IPA/Mandarin|Mandarin]]
** [[Help:IPA/Cantonese|Cantonese]]
** [[Help:IPA/Taiwanese Hokkien|Taiwanese Hokkien]]
** [[Help:IPA/Wu Chinese|Wu]]
* [[Help:IPA/Corsican|Corsican]]
* [[Help:IPA/Czech|Czech]]
* [[Help:IPA/Danish|Danish]]
* [[Help:IPA/Persian|Dari]]
* [[Help:IPA/Dutch|Dutch]]
* [[Help:IPA/English|English]]
** [[Help:IPA/Old English|Old English]]
* [[Help:IPA/Emilian-Romagnol|Emilian-Romagnol]]
* [[Help:IPA/Esperanto|Esperanto]]
* [[Help:IPA/Estonian|Estonian]]
* [[Help:IPA/Astur-Leonese|Extremaduran]]
* [[Help:IPA/Fijian|Fijian]]
* [[Help:IPA/Finnish|Finnish]]
* [[Help:IPA/Franco-Provençal|Franco-Provençal]]
* [[Help:IPA/French|French]]
* [[Help:IPA/Galician|Galician]]
* [[Help:IPA/Georgian|Georgian]]
* German
** [[Help:IPA/Standard German|Standard]]
** [[Help:IPA/Alemannic German|Alemannic]]
** [[Help:IPA/Colognian|Colognian]]
* [[Help:IPA/Greek|Greek]]
* [[Help:IPA/Greenlandic|Greenlandic]]
* [[Help:IPA/Gujarati|Gujarati]]
* [[Help:IPA/Haitian Creole|Haitian Creole]]
* [[Help:IPA/Hawaiian|Hawaiian]]
* [[Help:IPA/Hebrew|Hebrew]]
* [[Help:IPA/Hindi and Urdu|Hindi]]
* [[Help:IPA/Hmong|Hmong]]
* [[Help:IPA/Hungarian|Hungarian]]
* [[Help:IPA/Icelandic|Icelandic]]
* [[Help:IPA/Igbo|Igbo]]
* [[Help:IPA/Malay|Indonesian]]
* [[Help:IPA/Inuktitut|Inuktitut]]
* [[Help:IPA/Inupiaq|Inupiaq]]
* [[Help:IPA/Irish|Irish]]
* [[Help:IPA/Lao|Isan]]
* [[Help:IPA/Italian|Italian]]
** [[Help:IPA/Italian dialects|dialects]]
* [[Help:IPA/Japanese|Japanese]]
* [[Help:IPA/Kazakh|Kazakh]]
* [[Help:IPA/Khmer|Khmer]]
* [[Help:IPA/Korean|Korean]]
* [[Help:IPA/Kurdish|Kurdish]]
* [[Help:IPA/Kyrgyz|Kyrgyz]]
* [[Help:IPA/Lakota|Lakota]]
* [[Help:IPA/Lao|Lao]]
* [[Help:IPA/Latin|Latin]]
* [[Help:IPA/Latvian|Latvian]]
* [[Help:IPA/Ligurian|Ligurian]]
* [[Help:IPA/Lithuanian|Lithuanian]]
* [[Help:IPA/Lombard|Lombard]]
* [[Help:IPA/Luxembourgish|Luxembourgish]]
* [[Help:IPA/Macedonian|Macedonian]]
* [[Help:IPA/Maithili|Maithili]]
* [[Help:IPA/Malagasy|Malagasy]]
* [[Help:IPA/Malay|Malay]]
* [[Help:IPA/Malayalam|Malayalam]]
* [[Help:IPA/Maltese|Maltese]]
* [[Help:IPA/Manx|Manx]]
* [[Help:IPA/Māori|Māori]]
* [[Help:IPA/Marathi|Marathi]]
* [[Help:IPA/Marshallese|Marshallese]]
* [[Help:IPA/Mauritian Creole|Mauritian Creole]]
* [[Help:IPA/Mayan|Mayan]]
* [[Help:IPA/Mongolian|Mongolian]]
* [[Help:IPA/Astur-Leonese|Mirandese]]
* [[Help:IPA/Nahuatl|Nahuatl]]
* [[Help:IPA/Navajo|Navajo]]
* [[Help:IPA/Neapolitan|Neapolitan]]
* [[Help:IPA/Nepali|Nepali]]
* [[Help:IPA/Northern Thai|Northern Thai]]
* [[Help:IPA/Norwegian|Norwegian]]
* [[Help:IPA/Occitan|Occitan]]
* [[Help:IPA/Odia|Odia]]
* [[Help:IPA/Persian|Persian]]
* [[Help:IPA/Piedmontese|Piedmontese]]
* [[Help:IPA/Polish|Polish]]
* [[Help:IPA/Portuguese|Portuguese]]
* [[Help:IPA/Punjabi|Punjabi]]
* [[Help:IPA/Quechua|Quechua]]
* [[Help:IPA/Romanian|Romanian]]
* [[Help:IPA/Romansh|Romansh]]
* [[Help:IPA/Russian|Russian]]
* [[Help:IPA/Sanskrit|Sanskrit]]
* [[Help:IPA/Sardinian|Sardinian]]
* [[Help:IPA/Scottish Gaelic|Scottish Gaelic]]
* [[Help:IPA/Serbo-Croatian|Serbo-Croatian]]
* [[Help:IPA/Shan and Tai Lue|Shan]]
* [[Help:IPA/Sicilian|Sicilian]]
* [[Help:IPA/Slovak|Slovak]]
* [[Help:IPA/Slovene|Slovene]]
* [[Help:IPA/Spanish|Spanish]]
* [[Help:IPA/Swahili|Swahili]]
* [[Help:IPA/Nguni|Swazi]]
* [[Help:IPA/Swedish|Swedish]]
* [[Help:IPA/Sylheti|Sylheti]]
* [[Help:IPA/Tagalog|Tagalog]]
* [[Help:IPA/Shan and Tai Lue|Tai Lue]]
* [[Help:IPA/Persian|Tajik]]
* [[Help:IPA/Tamil|Tamil]]
* [[Help:IPA/Tatar|Tatar]]
* [[Help:IPA/Telugu|Telugu]]
* [[Help:IPA/Thai|Thai]]
* [[Help:IPA/Tibetan|Tibetan]]
* [[Help:IPA/Tigrinya|Tigrinya]]
* [[Help:IPA/Turkish|Turkish]]
* [[Help:IPA/Turkmen|Turkmen]]
* [[Help:IPA/Ukrainian|Ukrainian]]
* [[Help:IPA/Hindi and Urdu|Urdu]]
* [[Help:IPA/Uzbek|Uzbek]]
* [[Help:IPA/Venetian|Venetian]]
* [[Help:IPA/Vietnamese|Vietnamese]]
* [[Help:IPA/Walloon|Walloon]]
* [[Help:IPA/Welsh|Welsh]]
* [[Help:IPA/West Frisian|West Frisian]]
* [[Help:IPA/Nguni|Xhosa]]
* [[Help:IPA/Yiddish|Yiddish]]
* [[Help:IPA/Yoruba|Yoruba]]
* [[Help:IPA/Zhuang|Zhuang]]
* [[Help:IPA/Nguni|Zulu]]
|group2 = Comparisons
|list2 =
* [[Help:IPA/Conventions for English|IPA conventions for English]]
* [[International Phonetic Alphabet chart for English dialects|English dialects]]
* [[Help:Pronunciation respelling key|Wikipedia pronunciation respelling]]
* [[Pronunciation respelling for English|Other English pronunciation respellings]]
|group3 = Introductory guides
|list3 =
* [[Help:IPA|Symbols]]
* [[Help:IPA/Introduction|For English speakers]]
* [[Wikipedia:Manual of Style/Pronunciation|Manual of Style: Pronunciation]]
}}<noinclude>
{{documentation}}
</noinclude>
iqmxu20fqveuugnms8rkzzk39w3so8p
Ta̱mpi̱let:IPA keys/doc
10
1924
15742
2022-08-11T23:37:11Z
Kambai Akau
15
Created page with "{{Documentation subpage}} <!-- PLEASE ADD CATEGORIES AND INTERWIKIS AT THE BOTTOM OF THIS PAGE --> === Usage === This navbox goes on the bottom of ''Help:IPA/<language>'' pages to ease navigation between them. === See also === {{IPA templates}} <includeonly>{{Sandbox other|| <!-- CATEGORIES --> [[Category:Wikipedia help navigation]] <!-- INTERWIKIS --> }}</includeonly>"
wikitext
text/x-wiki
{{Documentation subpage}}
<!-- PLEASE ADD CATEGORIES AND INTERWIKIS AT THE BOTTOM OF THIS PAGE -->
=== Usage ===
This navbox goes on the bottom of ''Help:IPA/<language>'' pages to ease navigation between them.
=== See also ===
{{IPA templates}}
<includeonly>{{Sandbox other||
<!-- CATEGORIES -->
[[Category:Wikipedia help navigation]]
<!-- INTERWIKIS -->
}}</includeonly>
n4vdzrbe9icxr7omcrcgh90zvbgjpv3
Ta̱mpi̱let:IPA templates
10
1925
15743
2022-08-11T23:38:02Z
Kambai Akau
15
Created page with "{{navbox | name = IPA templates | title = [[International Phonetic Alphabet|IPA]] templates | state = {{{state<includeonly>|expanded</includeonly>}}} | basestyle = background:#ddffee;<!-- /doc colors --> | bodyclass = hlist | group1 = Inline | list1 = {{navbox|child| basestyle = background:#ddffee; | group1 = Formatting | list1 = * {{tl|IPA}} * {{tl|IPA-all}} * {{tl|IPA link}} * {{tl|IPAblink}} {{IPA|[a]}} * {{tl|IPAslink}} {{IPA|/a/}} * {{tl|IPAalink}..."
wikitext
text/x-wiki
{{navbox
| name = IPA templates
| title = [[International Phonetic Alphabet|IPA]] templates
| state = {{{state<includeonly>|expanded</includeonly>}}}
| basestyle = background:#ddffee;<!-- /doc colors -->
| bodyclass = hlist
| group1 = Inline
| list1 =
{{navbox|child| basestyle = background:#ddffee;
| group1 = Formatting
| list1 =
* {{tl|IPA}}
* {{tl|IPA-all}}
* {{tl|IPA link}}
* {{tl|IPAblink}} {{IPA|[a]}}
* {{tl|IPAslink}} {{IPA|/a/}}
* {{tl|IPAalink}} {{angbr IPA|a}}
* {{tl|IPAplink}}
* {{tl|angbr IPA}}
* {{tl|Chinese tone letter}}
* {{tl|Audio-IPA}}
| group3 = Language-<br />specific
| list3 =
* {{tl|IPAc-en}}
* {{tl|IPA-ca}}
* {{tl|IPAc-cmn}}
* {{tl|IPA-cs}}
* {{tl|IPA-de}}
* {{tl|IPA-el}}
* {{tl|IPA-es}}
* {{tl|IPA-fr}}
* {{tl|IPA-it}}
* {{tl|IPA-ko}}
* {{tl|IPA-my}}
* {{tl|IPA-nl}}
* {{tl|IPA-pl}}
* {{tl|IPAc-pl}}
* {{tl|IPA-pt}}
* {{tl|IPA-ro}}
* {{tl|IPA-ru}}
* {{tl|IPA-sh}}
* {{tl|IPA-sl}}
* {{tl|IPA-th}}
* [[Template:Usage of IPA templates#Supported languages and templates|etc. (documentation)]]
* {{category-inline|IPA language templates}}
| group4 = Maintenance
| list4 =
* {{tl|Needs IPA}}
* {{tl|Pronunciation needed}}
* {{category-inline|Articles needing IPA cleanup}}
}}
| group4 = Infobox
| list4 =
* {{tl|Infobox IPA}}
| group5 = Navigation
| list5 =
* {{tl|IPA keys}}
* {{tl|IPA key}}
* {{tl|WikiIPA}}
* {{tl|IPA notice}}
| group6 = Charts
| list6 =
* {{tl|IPA vowels}}
* {{tl|IPA pulmonic consonants}}
* {{tl|IPA non-pulmonic consonants}}
* {{tl|IPA co-articulated consonants}}
* {{tl|IPA affricates}}
* {{category-inline|IPA chart templates}}
| group7 = Meta templates
| list7 =
* {{tl|IPA symbol}}
* {{tl|IPA audio link}}
* {{tl|IPA common}}
* {{tl|IPA soundbox}}
* {{tl|Usage of IPA templates}}
* {{tl|IPA notice/msg}}
| group8 = Others
| list8 =
| below = {{hlist
| [[:Module:IPA symbol]]
| {{Category-inline|IPA templates|IPA templates}}
}}
}}<noinclude>{{documentation}}</noinclude>
is042lfejes3euc4zsdwosqfavnt1mb
Ta̱mpi̱let:IPA templates/doc
10
1926
15744
2022-08-11T23:38:41Z
Kambai Akau
15
Created page with "{{Documentation subpage}} <!-- Categories and interwikis go at the bottom of this page. --> This template gives an overview of [[International Phonetic Alphabet]] (IPA) templates. It is aimed to be used in templates' documentation. {{collapsible option}}<includeonly>{{Sandbox other|| <!-- Categories and interwikis go here: --> [[Category:IPA templates| ]] [[Category:Documentation see also templates]] }}</includeonly>"
wikitext
text/x-wiki
{{Documentation subpage}}
<!-- Categories and interwikis go at the bottom of this page. -->
This template gives an overview of [[International Phonetic Alphabet]] (IPA) templates. It is aimed to be used in templates' documentation.
{{collapsible option}}<includeonly>{{Sandbox other||
<!-- Categories and interwikis go here: -->
[[Category:IPA templates| ]]
[[Category:Documentation see also templates]]
}}</includeonly>
gvn7zdii9x7hrpulb5h8ao1uw4p36sq
Ta̱mpi̱let:Information page
10
1927
15750
2022-08-12T06:52:00Z
LisafBia6531
225
Created page with "{{#if: {{{nocat|{{{demo|}}}}}}||<includeonly>{{Namespace detect | wikipedia = {{short description|Wikipedia information page|noreplace}} | help = {{short description|Wikipedia information page|noreplace}} | user = {{short description|Wikipedia information page|noreplace}} }}</includeonly> }}{{ombox | type = notice | style = {{#if:{{{style|}}} |margin:0 auto;width:80%;{{{style}}} }} | imagerig..."
wikitext
text/x-wiki
{{#if: {{{nocat|{{{demo|}}}}}}||<includeonly>{{Namespace detect
| wikipedia = {{short description|Wikipedia information page|noreplace}}
| help = {{short description|Wikipedia information page|noreplace}}
| user = {{short description|Wikipedia information page|noreplace}}
}}</includeonly>
}}{{ombox
| type = notice
| style = {{#if:{{{style|}}} |margin:0 auto;width:80%;{{{style}}} }}
| imageright = {{#if:{{{shortcut|{{{shortcut1|{{{sc1|{{{1<includeonly>|</includeonly>}}}}}}}}}}}} |{{Shortcut|{{{shortcut|{{{shortcut1|{{{sc1|{{{1}}}}}}}}}}}}|{{{shortcut2|{{{sc2|{{{2|}}}}}}}}}|{{{shortcut3|{{{sc3|{{{3|}}}}}}}}}|{{{shortcut4|{{{sc4|{{{4|}}}}}}}}}|{{{shortcut5|{{{sc5|{{{5|}}}}}}}}}<noinclude>|category=no</noinclude>}} }}
| text = <div style="padding-top: 6px; padding-bottom: 5px;">'''This is an [[Wikipedia:Project namespace#How-to and information pages|information page]].'''<br><div style="font-size: 90%;">It is not one of [[Wikipedia:Policies and guidelines|Wikipedia's policies or guidelines]], but rather intends to describe some aspect(s) of <!--
-->{{#if:{{{page|{{{pages|{{{interprets|}}}}}}}}}
| <!--doesn't handle multiple items--> {{#ifexist:{{{page|{{{pages|{{{interprets}}}}}}}}} |'''[[{{{page|{{{pages|{{{interprets}}}}}}}}}]]''' |'''{{{page|{{{pages|{{{interprets}}}}}}}}}'''}}
| Wikipedia's norms, customs, technicalities, or practices
}}. It may reflect varying levels of [[Wikipedia:Consensus|consensus]] and [[Wikipedia:Consensus#Achieving consensus|vetting]].</div></div>
}}{{#if: {{{nocat|{{{demo|}}}}}}||<includeonly>{{Namespace detect
| wikipedia = {{{category|[[Category:Wikipedia information pages|{{#if:{{{sort-by|}}}|{{{sort-by}}}|{{PAGENAME}}}}]]}}}
| help = {{{category|[[Category:Wikipedia information pages|{{#if:{{{sort-by|}}}|{{{sort-by}}}|{{PAGENAME}}}}]]}}}
| user = [[Category:User essays]]{{{category|}}}
}}
</includeonly>}}<noinclude>
{{Documentation}}
<!-- Add categories to the /doc subpage (and interwikis in Wikidata), not here! -->
</noinclude>
69xtpq3rbghcr4o3hj77jkafny0pk4w
Ta̱mpi̱let:Information page/doc
10
1928
15751
2022-08-12T06:52:29Z
LisafBia6531
225
Created page with "<!-- ****************************************************************************** **** This is the documentation for both Template:Information_page and **** **** Template:Wikipedia_how-to (it uses #if statements to distinguish). **** ****************************************************************************** --> {{Distinguish|Template:Information}} {{Documentation subpage}} {{Auto short description|conditions=when it is used in Wikipedia, Help,..."
wikitext
text/x-wiki
<!-- ******************************************************************************
**** This is the documentation for both Template:Information_page and ****
**** Template:Wikipedia_how-to (it uses #if statements to distinguish). ****
******************************************************************************
-->
{{Distinguish|Template:Information}}
{{Documentation subpage}}
{{Auto short description|conditions=when it is used in Wikipedia, Help, or User space}}
<!-- PLEASE ADD CATEGORIES AT THE BOTTOM OF THIS PAGE; INTERWIKIS GO IN WIKIDATA. -->
{{#if:{{{howto|}}}
|{{distinguish|text = the article tone dispute tag, [[Template:How-to]]}}
|<!-- hatnote space for Template:Information_page/doc -->
}}
This is the page banner template for [[:Category:Wikipedia {{#if:{{{howto|}}}|how-to{{!}}Wikipedia how-to|information pages{{!}}Wikipedia information pages}}]].
It can be placed on top of [[WP:GOVPS|administration pages]] (not-articles) when appropriate (see [[WP:INFOPAGES]] for details). This usually means pages in the "Wikipedia:" and "Help:" namespaces, but sometimes {{#if:{{{howto|}}}|how-to guides|information pages}} also exist as user subpages.
== Categorization ==
If a page that uses this template is in the "Wikipedia:" or "Help:" [[WP:Namespace|namespace]], then this template adds [[:Category:Wikipedia {{#if:{{{howto|}}}|how-to|information pages}}]] to the page.
If the page is in the [[WP:User pages|"User:"]] namespace, it will be put into [[:Category:User essays]]. If your page is just a draft, please use the {{para|nocat}} parameter to prevent categorization, until it is finished.
If it is in some other namespace, it will not be auto-categorized, and it may be in the wrong place.
== Usage ==
This template can be used as is, like this:
:{{tlc|{{BASEPAGENAME}}}}
But it can also take up to three [[Wikipedia:Shortcut|shortcuts]] as parameters. It then displays a small shortcut box inside it. Like this:
:{{tlc|{{BASEPAGENAME}}|WP:SHORT|WP:LONG}}
Then it looks like this:
{{ {{BASEPAGENAME}}|WP:SHORT|WP:LONG|demo=y}}
If you want to feed more than one or two shortcuts then the shortcut box becomes too high, which doesn't look good. In such a case it is better to use a {{tlc|shortcut}} box directly {{em|below}} this template, like this:
{{block indent|1=
{{tlx|{{BASEPAGENAME}}}}<br />
{{tlx|shortcut|WP:SHORT|WP:SHORT2|WP:SHORT3|WP:SHORT4}}
}}
=== Optional parameters ===
* {{para|1}} or {{para|sc1}}, {{para|shortcut1}}, {{para|shortcut}}, or first unnamed parameter – First [[WP:Shortcut|shortcut]]. Don't include <code><nowiki>[[...]]</nowiki></code> linking brackets in this or other shortcut parameters.
* {{para|2}} or {{para|sc2}}, {{para|shortcut2}}, or first unnamed parameter – Second shortcut
* {{para|3}} or {{para|sc3}}, {{para|shortcut3}}, or first unnamed parameter – Third shortcut (deprecated; please use separate [[Template:Shortcut]] for three or more)
* {{para|interprets}} or {{para|page}} or {{para|pages}} – Specify name of page (policy, process, etc.) that this essay provides advice about. For a single page, it is not necessary to include <code><nowiki>[[...]]</nowiki></code> linking brackets;. This will replace the wording "{{#if:{{{howto|}}}|some aspect or aspects of Wikipedia's norms and practices|Wikipedia's norms and practices}}". If more than one page and/or any notes are intended, links must be manually coded, e.g.: {{para|interprets|<nowiki>[[Wikipedia:Verifiability]] policy and the [[Wikipedia:Identifying reliable sources]] guideline</nowiki>}}
* {{para|sort-by}} – Specify a [[WP:Categorization#Sort keys|sort key]] for the category. For example, if the how-to page is [[Wikipedia:Producing maps with xplanet]] and you want it category-sorted to appear under "X", use {{para|sort-by|Xplanet, Producing maps with}}. This has no effect on the user essays category.
* {{para|category}} – Specify a complete wikilink (i.e, {{em|do}} include the <code><nowiki>[[...]]</nowiki></code> linking brackets) to one or more categories to override the default [[:Category:Wikipedia {{#if:{{{howto|}}}|how-to|information pages}}]]. May include a category sort; example: <code><nowiki>[[Category:WikiProject Underwater Basketweaving|Article structure advice]]</nowiki></code> This parameter does not replace the [[:Category:User essays]] categorization for pages in the "User:" namespace, but can be used to add them manually to [[:Category:Wikipedia {{#if:{{{howto|}}}|how-to|information pages}}]], in addition to the automatic user category.
* {{para|nocat|y}} or {{para|demo|y}} – Bypass all categorization, when the template is used for demo purposes, e.g. in template documentation, on talk pages, etc.
* {{para|style}} – Pass arbitrary CSS to the [[Template:Ombox]] base template that this template uses.
== TemplateData ==
{{collapse top|[[Wikipedia:TemplateData|TemplateData]] documentation used by [[Wikipedia:VisualEditor|VisualEditor]] and other tools}}
{{TemplateData header|noheader=1}}
<templatedata>
{
"description": "",
"params": {
"page": {"type": "wiki-page-name","description": "Guideline or other page being interpreted"},
"shortcut1" : {"type": "wiki-page-name","description": "Shortcut to this page"},
"shortcut2" : {"type": "wiki-page-name","description": "Shortcut to this page"},
"shortcut3" : {"type": "wiki-page-name","description": "Shortcut to this page"},
"nocat" : {"type": "string","description": "Any value prevents addition of project category"}
}
}
</templatedata>
{{collapse bottom}}
== See also ==
{{#if:{{{howto|}}}|
* {{tlx|How-to}} – the cleanup/dispute tag for articles written in a "how-to" style.
* {{tlx|Information page}} – the banner template for pages that are more just informational than directly instructional like [[WP:GOV]].
|
* {{tlx|Wikipedia how-to}} – the banner template for pages that are more directly instructional than just informational like [[H:EDIT]].
}}
* {{tlx|Essay|interprets{{=}}}} – the banner template for pages that are more opinionated then instructional or technical; there are several parameters and variations.
* {{tlx|Supplement|interprets{{=}}}} – to tag a well-established page that adds something to a policy or guideline, to make up for a deficiency, and when it is referenced in the guideline or policy like [[WP:BRD]].
* [[Wikipedia:Template messages/Project namespace]] – for other "Wikipedia:"-namespace banner templates.
<includeonly>{{sandbox other||
<!-- Categories below this line, please; interwikis at Wikidata -->
[[Category:Wikipedia header templates]]
}}</includeonly>
i526tmotdpfgk11ijb0jb0ljqh2idg7
Ta̱mpi̱let:Distinguish
10
1929
15752
2022-08-12T06:53:22Z
LisafBia6531
225
Created page with "{{#invoke:Distinguish|distinguish}}<noinclude><!-- splitting these lines causes {{Documentation}} template to terminate green shading when Distinguish is used in /doc pages. --> {{Documentation}} <!-- Add categories to the /doc subpage and interwikis to Wikidata, not here! --> </noinclude>"
wikitext
text/x-wiki
{{#invoke:Distinguish|distinguish}}<noinclude><!-- splitting these lines causes {{Documentation}} template to terminate green shading when Distinguish is used in /doc pages. -->
{{Documentation}}
<!-- Add categories to the /doc subpage and interwikis to Wikidata, not here! -->
</noinclude>
t4az5q8zekjr0kpgvlz6fgo7i77psk8
Module:Distinguish
828
1930
15753
2022-08-12T06:54:19Z
LisafBia6531
225
Created page with "local mHatnote = require('Module:Hatnote') local mHatlist = require('Module:Hatnote list') local mArguments --initialize lazily local mTableTools --initialize lazily local libraryUtil = require('libraryUtil') local checkType = libraryUtil.checkType local p = {} function p.distinguish(frame) mArguments = require('Module:Arguments') mTableTools = require('Module:TableTools') local args = mArguments.getArgs(frame) local selfref = args.selfref local text = args.text a..."
Scribunto
text/plain
local mHatnote = require('Module:Hatnote')
local mHatlist = require('Module:Hatnote list')
local mArguments --initialize lazily
local mTableTools --initialize lazily
local libraryUtil = require('libraryUtil')
local checkType = libraryUtil.checkType
local p = {}
function p.distinguish(frame)
mArguments = require('Module:Arguments')
mTableTools = require('Module:TableTools')
local args = mArguments.getArgs(frame)
local selfref = args.selfref
local text = args.text
args = mTableTools.compressSparseArray(args)
return p._distinguish(args, text, selfref)
end
function p._distinguish(args, text, selfref)
checkType("_distinguish", 1, args, 'table')
if #args == 0 and not text then return '' end
local text = string.format(
'Not to be confused with %s.',
text or mHatlist.orList(args, true)
)
hnOptions = {selfref = selfref}
return mHatnote._hatnote(text, hnOptions)
end
return p
0e9s40s10w9aih1qwh96v3jypzotm48
Ta̱mpi̱let:Short description
10
1931
15754
2022-08-12T07:28:41Z
Kambai Akau
15
Created page with "{{#ifeq:{{lc:{{{1|}}}}}|none|<nowiki /><!--Prevents whitespace issues when used with adjacent newlines-->|<div class="shortdescription nomobile noexcerpt noprint searchaux" style="display:none">{{{1|}}}{{SHORTDESC:{{{1|}}}|{{{2|}}}}}</div>}}<includeonly>[[Category:{{{pagetype|{{pagetype |defaultns = extended |plural=y}}}}} with short description{{#ifeq:{{{pagetype}}}|Disambiguation pages|s}}]]</includeonly><!-- Start tracking -->{{#invoke:Check for unknown parameters|che..."
wikitext
text/x-wiki
{{#ifeq:{{lc:{{{1|}}}}}|none|<nowiki /><!--Prevents whitespace issues when used with adjacent newlines-->|<div class="shortdescription nomobile noexcerpt noprint searchaux" style="display:none">{{{1|}}}{{SHORTDESC:{{{1|}}}|{{{2|}}}}}</div>}}<includeonly>[[Category:{{{pagetype|{{pagetype |defaultns = extended |plural=y}}}}} with short description{{#ifeq:{{{pagetype}}}|Disambiguation pages|s}}]]</includeonly><!-- Start tracking
-->{{#invoke:Check for unknown parameters|check|unknown={{Main other|[[Category:Pages using short description with unknown parameters|_VALUE_{{PAGENAME}}]]}}|preview=Page using [[Template:Short description]] with unknown parameter "_VALUE_"|ignoreblank=y| 1 | 2 | pagetype | bot |plural }}<!--
-->{{#ifexpr: {{#invoke:String|len|{{{1|}}}}}>100 | [[Category:{{{pagetype|{{pagetype |defaultns = extended |plural=y}}}}} with long short description]]}}<!--
-->{{Short description/lowercasecheck|{{{1|}}}}}<!--
-->{{Main other |{{SDcat |sd={{{1|}}} }} }}<noinclude>
{{Documentation}}
</noinclude>
t36h9ek56znujq09ne6dfagkel1cjk9
Ta̱mpi̱let:Short description/doc
10
1932
15755
2022-08-12T07:32:51Z
Kambai Akau
15
Created page with "{{Documentation subpage}} {{High risk|all-pages = yes}} {{Warning|'''Please do not use redirects/shortcuts for this template''', as they cause problems with the [[Wikipedia:Shortdesc helper|short description editing gadget]] and other maintenance tools.}} {{Lua|Module:Check for unknown parameters|Module:String}} '''[[Template:Short description]]''' is used to add a [[Wikipedia:Short description|short description]] (which can be edited from within Wikipedia) to a Wikiped..."
wikitext
text/x-wiki
{{Documentation subpage}}
{{High risk|all-pages = yes}}
{{Warning|'''Please do not use redirects/shortcuts for this template''', as they cause problems with the [[Wikipedia:Shortdesc helper|short description editing gadget]] and other maintenance tools.}}
{{Lua|Module:Check for unknown parameters|Module:String}}
'''[[Template:Short description]]''' is used to add a [[Wikipedia:Short description|short description]] (which can be edited from within Wikipedia) to a Wikipedia page. These descriptions appear in Wikipedia mobile searches and elsewhere, and help users identify the desired article.
== Usage ==
{{tld|Short description|''Write your short description here''}}
This should be limited to about 40 characters, as explained at [[WP:SDFORMAT]], along with the other guidance at [[WP:SDCONTENT]].
== Parameters ==
{{TemplateData header|noheader=1}}
<templatedata>
{
"description": {
"en": "Creates a short description, for a Wikipedia article, which is used in the Visual Editor to provide context on wikilinks.",
"es": "Crea una breve descripción, para un artículo de Wikipedia, que se utiliza en el Editor Visual para proporcionar contexto en los wikilinks (wikienlaces)."
},
"params": {
"1": {
"label": {
"en": "Description",
"es": "Descripción"
},
"description": {
"en": "The short description of the article or 'none'.",
"es": "La descripción corta del artículo"
},
"example": {
"en": "Chinese encyclopedia writer (1947–2001)",
"es": "La enciclopedia en línea que cualquiera puede editar"
},
"required": true,
"type": "content"
},
"2": {
"label": {
"en": "No replace?",
"es": "2"
},
"description": {
"en": "Should be unused or 'noreplace'. Templates with noreplace will not replace a short description defined by an earlier template. Mainly for use within transcluded templates.",
"es": "Se anula una descripción corta si se transcluye. Debe estar sin usar o con 'noreplace' (que significar no reemplazar)."
},
"example": {
"es": "noreplace"
},
"required": false,
"type": "string",
"autovalue": "noreplace"
},
"pagetype": {
"type": "string",
"description": {
"en": "The type of page. This puts it in the appropriate category - Things with short description. Normally unneeded, since handled through namespace detection.",
"es": "El tipo de página. La coloca en la categoría apropiada - Cosas con descripción corta"
},
"example": "Redirect, Disambiguation page",
"required": false
}
},
"format": "{{_|_ = _}}\n"
}
</templatedata>
== About writing good short descriptions ==
This page is about the short description {{em|template}}; it does not provide guidelines for writing a good short description. If you plan to use this template, you should make sure you read and follow the detailed guidance at [[WP:HOWTOSD]]. General information can be found at [[Wikipedia:Short description]].
== Template information ==
Eventually all articles should have a short description:
* by directly using this template, in which case the short description will be unique to the article
* transcluded in another template, such as a disambiguation template, where a generic short description is adequate for a large class of pages
* where the short description is assembled from data in an infobox
Automatically generated descriptions within templates should set the second parameter as {{code|noreplace}} so they do not override any short descriptions specifically added to the transcluding article.
Short descriptions are not normally needed for non-article pages, such as redirects, but can be added if useful.
If the article title alone is sufficient to ensure reliable identification of the desired article, a null value of {{tnull|Short description|none}} may be used.
Short descriptions do not necessarily serve the same function as the Wikidata description for an item and they do not have to be the same, but some overlap is expected in many cases. Some Wikidata descriptions may be unsuitable, and if imported must be checked for relevance, accuracy and fitness for purpose. Responsibility for such imports lies with the importer. {{crossref|(See also [[d:Help:Description|Wikidata:Help:Description]].)}}
=== Example ===
At [[Oxygen therapy]], add the following at the very top of the article, above everything else:
* {{tld|Short description|Use of oxygen as medical treatment}}
== Testing ==
For testing purposes, the display of this template can be enabled by adding a line to your [[Special:MyPage/common.css]]:
* <syntaxhighlight lang="CSS" inline>.shortdescription { display:block !important; }</syntaxhighlight>
This can be easily removed or disabled when finished testing.
If you want to {{em|always}} see short descriptions, you may prefer a more utilitarian layout, such as:
<syntaxhighlight lang="CSS">
.shortdescription {
display:block !important;
white-space: pre-wrap;
}
.shortdescription::before {
content: "\A[Short description:\0020";
}
.shortdescription::after {
content: "]\A";
}
</syntaxhighlight>
There is a test version of this template available as [[Template:Short description/test]] which displays its text by default.
* {{tld|Short description/test}} displays the short description if supplied
* {{tld|Short description/test}} displays nothing if <code>none</code> is supplied
* {{tld|Short description/test}} displays the description from Wikidata if <code>wikidata</code> is supplied.
Taking {{Q|Q1096878}} as an example:
* <code><nowiki>{{short description/test|Underwater diving where breathing is from equipment independent of the surface}}</nowiki></code> → {{short description/test|Underwater diving where breathing is from equipment independent of the surface }}
* <code><nowiki>{{short description/test|none }}</nowiki></code> → {{short description/test|none}}
* <code><nowiki>{{short description/test|wikidata }}</nowiki></code> → {{short description/test|wikidata|qid=Q1096878}}
===Pagetype parameter===
If {{param|Pagetype}} is '''not''' set, then this template adds the article to a category based on the namespace:
* {{clc|Articles with short description}}
* {{clc|Categories with short description}}
* {{clc|Drafts with short description}}
* {{clc|Files with short description}}
* {{clc|Help pages with short description}}
* {{clc|Modules with short description}}
* {{clc|Portals with short description}}
* {{clc|Project pages with short description}}
* {{clc|Templates with short description}}
* {{clc|User pages with short description}}
* {{clc|Redirects with short description}} {{--}} for redirects in any namespace
If {{param|Pagetype}} '''is''' set, then this template adds the article to a category matching the parameter. For example:
* {{clc|Disambiguation pages with short description}} {{--}} {{code|pagetype {{=}} Disambiguation page}}
{{anchor|No-aliases}}
== Aliases ==
{{shortcut|WP:SDNOALIASES}}
While there are currently <span class="plainlinks">[{{fullurl:Special:WhatLinksHere/Template:Short_description|hidetrans=1&hidelinks=1&limit=500}} redirects to this template]</span>, '''they must not be used'''.
: Other templates and gadgets attempt to extract the description from pages by explicitly searching for the use of the {{tl|Short description}} template.
: For example, {{tl|Annotated link}} searches for templates "Short description" or "short description".
'''Do not''' start the template with a space: {{code|<nowiki> {{ Short description...</nowiki>}}. While this does create a valid short description, the space will prevent searches for the {{code|<nowiki>{{Short description...</nowiki>}} text.
==Tracking categories==
* {{clc|Templates that generate short descriptions}}
* {{clc|Modules that create a short description}}
* {{clc|Short description matches Wikidata}}
* {{clc|Short description is different from Wikidata}}
* {{clc|Short description with empty Wikidata description}}
== Maintenance categories ==
* {{clc|Pages using short description with unknown parameters}}
* {{clc|Articles with long short description}}
* {{clc|Pages with lower-case short description}}
==See also ==
* {{tl|Auto short description}}
* {{tl|Annotated link}}
* [[Wikipedia:Short descriptions]] — background information
* [[Wikipedia:WikiProject Short descriptions]] — project to add Short descriptions to all articles
<includeonly>{{Sandbox other||
<!-- Categories below this line, please; interwikis at Wikidata -->
<!-- Category:Articles with short description (maintenance category)? -->
[[Category:Templates that add a tracking category]]
[[Category:Templates that generate short descriptions]]
}}</includeonly>
m2qnhswrzzkla7febbrvxjsv3pspmj7
Ta̱mpi̱let:High risk
10
1933
15756
2022-08-12T07:34:48Z
Kambai Akau
15
Created page with "{{#invoke:High-use|main|1={{{1|}}}|2={{{2|}}}|all-pages={{{all-pages|}}}|info={{{info|}}}|demo={{{demo|}}}|form={{{form|}}}|expiry={{{expiry|}}}|system={{{system|}}}}}<noinclude> {{Documentation}} <!-- Add categories to the /doc subpage; interwiki links go to Wikidata, thank you! --> </noinclude>"
wikitext
text/x-wiki
{{#invoke:High-use|main|1={{{1|}}}|2={{{2|}}}|all-pages={{{all-pages|}}}|info={{{info|}}}|demo={{{demo|}}}|form={{{form|}}}|expiry={{{expiry|}}}|system={{{system|}}}}}<noinclude>
{{Documentation}}
<!-- Add categories to the /doc subpage; interwiki links go to Wikidata, thank you! -->
</noinclude>
pqp5tan0gkp2stociv4f3zgylzoarl5
Ta̱mpi̱let:Template other
10
1934
15757
2022-08-12T07:35:59Z
Kambai Akau
15
Created page with "{{#switch: <!--If no or empty "demospace" parameter then detect namespace--> {{#if:{{{demospace|}}} | {{lc: {{{demospace}}} }} <!--Use lower case "demospace"--> | {{#ifeq:{{NAMESPACE}}|{{ns:Template}} | template | other }} }} | template = {{{1|}}} | other | #default = {{{2|}}} }}<!--End switch--><noinclude> {{documentation}} <!-- Add categories and interwikis to the /doc subpage, not here! --> </noinclude>"
wikitext
text/x-wiki
{{#switch:
<!--If no or empty "demospace" parameter then detect namespace-->
{{#if:{{{demospace|}}}
| {{lc: {{{demospace}}} }} <!--Use lower case "demospace"-->
| {{#ifeq:{{NAMESPACE}}|{{ns:Template}}
| template
| other
}}
}}
| template = {{{1|}}}
| other
| #default = {{{2|}}}
}}<!--End switch--><noinclude>
{{documentation}}
<!-- Add categories and interwikis to the /doc subpage, not here! -->
</noinclude>
0tcssjmltwl7y5v3f5wj2kqciaabqly
Ta̱mpi̱let:Template other/doc
10
1935
15758
2022-08-12T07:38:30Z
Kambai Akau
15
Created page with "{{Documentation subpage}} {{Template shortcut|ns10}} {{High-risk|2=yes|all-pages=yes}} <!-- Please place categories where indicated at the bottom of this page and interwikis at Wikidata (see [[Wikipedia:Wikidata]]) --> This is a meta-template which helps other templates detect whether they are used in the "Template:" namespace. ==Usage== This template usually takes one or two parameters: : {{tc|Template other |''[result/action if on a template page]'' (|''[res..."
wikitext
text/x-wiki
{{Documentation subpage}}
{{Template shortcut|ns10}}
{{High-risk|2=yes|all-pages=yes}}
<!-- Please place categories where indicated at the bottom of this page and interwikis at Wikidata (see [[Wikipedia:Wikidata]]) -->
This is a meta-template which helps other templates detect whether they are used in the "Template:" namespace.
==Usage==
This template usually takes one or two parameters:
: {{tc|Template other |''[result/action if on a template page]'' (|''[result/action if on another type of page]'')}}
For example, if {{tlf|Template other |On template page |Not on template page}} were on a "Template:" page, it would return:
: {{Template other |On template page |Not on template page}}
On any other type of page (e.g. "Wikipedia:", "User:") it would return:
: {{Template other|demospace=other |On template page |Not on template page}}
A typical use is to manage the categorization of template pages. Adding {{tlf|Template other | |{{!((}}Category:''[category name]''{{))!}}}} to a template, for instance, means it would only categorize a page when that page isn't a template page. (The first parameter consists of nothing, so no action taken if/when the template is on a template page.)
==Demospace==
The parameter {{mono|demospace}} can be used to demonstrate or test this template. By default, it is undefined and has no effect on the template's action, but:
* when set as "template" ({{para|demospace|template}}), it prompts the template to return the ''first'' result/action above (i.e. to behave as if on a "Template:" page) even if the template is on a different type of page;
* when set as "other" ({{para|demospace|other}}), it prompts the template to return the ''second'' result/action above (i.e. to behave as if not on a "Template:" page) even if the template is on a "Template:" page.
For example:
<pre>
{{Template other
| demospace = template
| Template page text
| Other pages text
}}
</pre>
No matter on what kind of page the code above is used, it returns:
{{Template other
| demospace = template
| Template page text
| Other pages text
}}
You can make it so your template also understands the '''demospace''' parameter. That means you can demonstrate the different appearances of your template in the documentation for your template. Then do like this:
<pre>
{{template other
| Template page text
| Other pages text
| demospace = {{{demospace|}}}
}}
</pre>
==Technical details==
This template detects "Template talk:" pages as type '''other'''. For more details relevant to this template, see {{tl|Main talk other}}, which works similarly.
{{Namespace and pagename-detecting templates}}
<includeonly>{{sandbox other||
<!-- Categories below this line, please; interwikis at Wikidata -->
[[Category:Namespace manipulation templates]]
[[Category:Template namespace templates]]
}}</includeonly>
t2yvovmv51ut79kbzyy6ld4xuv1zrv7
Ta̱mpi̱let:Template shortcut
10
1936
15759
2022-08-12T07:40:43Z
Kambai Akau
15
Created page with "<includeonly>{{#invoke:Shortcut|main|template=yes}}</includeonly><noinclude>{{Documentation}}</noinclude>"
wikitext
text/x-wiki
<includeonly>{{#invoke:Shortcut|main|template=yes}}</includeonly><noinclude>{{Documentation}}</noinclude>
me4jjte8wllgxkf22h7gbzu0e2tux3i
Ta̱mpi̱let:Template shortcut/doc
10
1937
15760
2022-08-12T07:43:12Z
Kambai Akau
15
Created page with "{{Documentation subpage}} {{tlr|clear=right|Template shortcuts|Templateshortcut}}{{tsh|tsh}} {{High-use}} {{lua|Module:Shortcut}} <!-- PLEASE ADD CATEGORIES AND INTERWIKIS AT THE BOTTOM OF THIS PAGE --> This template displays one or more of a template's shortcuts (that is, redirects, also known as aliases, as in the box appearing at the right. {{tl|Tsh}} is a shortcut to this template, {{tlf|template shortcut}}, and can be used in its place, as it is in this documentatio..."
wikitext
text/x-wiki
{{Documentation subpage}}
{{tlr|clear=right|Template shortcuts|Templateshortcut}}{{tsh|tsh}}
{{High-use}}
{{lua|Module:Shortcut}}
<!-- PLEASE ADD CATEGORIES AND INTERWIKIS AT THE BOTTOM OF THIS PAGE -->
This template displays one or more of a template's shortcuts (that is, redirects, also known as aliases, as in the box appearing at the right. {{tl|Tsh}} is a shortcut to this template, {{tlf|template shortcut}}, and can be used in its place, as it is in this documentation's [[Wikipedia:View source|source]] [[wikitext]].
== Usage ==
Place this template and its list of few to one, carefully selected shortcut(s) at the top of the template documentation page's [[Wikipedia:Wikitext|wikitext]], right underneath {{tl|Documentation subpage}}. In the saved, rendered text, those shortcuts will appear in this template's Shortcut(s) box, whose title will reflect the number of list items by automatically being singular or plural in form.
=== Which ones to display here ===
Although the template can show up to ten shortcuts, you are ''encouraged to choose well'' which ones to display in this template's box. Even if many redirects exist, ''two or three at the most'' is almost always enough. By keeping the number of redirects presented in the Shortcut box small, it makes it easier to remember them, and the documentation is kept well organized.
=== Where to list any others ===
List others in the Redirects section of the [[Wikipedia:Template documentation|template documentation]]. Again, not all of them need to be listed; some shortcuts are there just for historical reasons, and others differ only in minor points such as white spaces or capitalization. Such shortcut-name variations are unnecessary to list at all—just list the standard, most common version of such a variation.
=== Optional parameters ===
This template has several optional parameters:
* '''float''' – if set to "left", then the box will float to the left of the page, instead of the default float "right".
* '''clear''' – if set to "right" (when float also is set to "right"), the box will be pushed to the right margin of the page, and {{clarify|text=prevent it from nest to the left of other right-floating elements.}} Similarly, if set to "left" (when float also is set to "left"), the box will be pushed to the left margin of the page.
* '''pre''' – can be used to show some text before the shortcut links, but within the braces. This is mostly used to add the text "subst:". This shows the proper syntax for using the template with [[Wikipedia:Substitution|substitution]].
* '''pre1, pre2 ...''' – like above, but adds the prefix only to the nth shortcut.
== Examples of basic code ==
To display one template shortcut named {{tl|uw-v1}}:
{{tlc|template shortcut|uw-v1}}
{{template shortcut|uw-v1}}
{{clear}}
To display three template shortcuts for {{tl|uw-vandalism1}} named {{tl|uw-v1}}, {{tl|uw-vand1}}, and {{tl|uw-vandal1}}:
{{tlc|template shortcut|uw-v1|uw-vand1|uw-vandal1}}
{{template shortcut|uw-v1|uw-vand1|uw-vandal1}}
{{clear}}
== Example with the float parameter ==
Using {{para|float|<var>left</var>}} makes this template flow to the left of the page:
<code><nowiki>{{template shortcut|float=left|uw-v1}}</nowiki></code>
{{template shortcut|float=left|uw-v1}}
{{clear}}
== Example with text ("subst:") within the braces ==
This is mostly used to add text to show how the template could be used with [[Wikipedia:Substitution|substitution]].
Use {{para|pre2|<var>subst:</var>}} and {{para|pre3|<var>subst:</var>}} to show "subst:" before the shortcut links, but within the braces:
<code><nowiki>{{template shortcut|uw-v1|pre2=subst:|uw-vand1|pre3=subst:|uw-vandal1}}</nowiki></code>
{{template shortcut|uw-v1|pre2=subst:|uw-vand1|pre3=subst:|uw-vandal1}}
{{clear}}
If you use {{para|pre|<var>subst:</var>}}, it applies to all of the shortcuts:
<code><nowiki>{{template shortcut|pre=subst:|uw-v1|uw-vand1|uw-vandal1}}</nowiki></code>
{{template shortcut|pre=subst:|uw-v1|uw-vand1|uw-vandal1}}
{{clear}}
== TemplateData ==
{{Format TemplateData|<templatedata>
{
"description": "This template displays one or more of a template's shortcuts.",
"format": "inline",
"params": {
"redirect": {
"label": "Redirect?",
"description": "Whether to refer to the \"shortcut/s\" as \"redirect/s\" instead.",
"default": "0",
"type": "boolean"
},
"target": {
"label": "Target?",
"description": "Whether to not add the <code>redirect=no</code> URL parameter.",
"default": "0",
"type": "boolean"
},
"float": {
"label": "Float",
"description": "The CSS <code>float</code> property value.",
"default": "right",
"suggestedvalues": [
"left",
"right"
],
"type": "string"
},
"clear": {
"label": "Clear",
"description": "The CSS <code>clear</code> property value.",
"suggestedvalues": [
"left",
"right",
"both"
],
"type": "string"
},
"category": {
"label": "Categorize",
"description": "Whether to add pages to the error category if no alias or <code>msg</code> is specified.",
"default": "1",
"type": "boolean"
},
"msg": {
"label": "Message",
"description": "An unlinked message that goes after the shortcut links.",
"type": "content"
},
"pre": {
"label": "Default prefix",
"description": "The default prefix",
"example": "subst:",
"type": "string"
},
"pre1": {
"label": "Prefix 1",
"description": "Prefix for template shortcut 1",
"example": "subst:",
"type": "string"
},
"1": {
"label": "Shortcut 1",
"description": "Template shortcut 1",
"required": true,
"type": "wiki-template-name"
},
"pre2": {
"label": "Prefix 2",
"description": "Prefix for template shortcut 2",
"example": "subst:",
"type": "string"
},
"2": {
"label": "Shortcut 2",
"description": "Template shortcut 2",
"type": "wiki-template-name"
},
"pre3": {
"label": "Prefix 3",
"description": "Prefix for template shortcut 3",
"example": "subst:",
"type": "string"
},
"3": {
"label": "Shortcut 3",
"description": "Template shortcut 3",
"type": "wiki-template-name"
},
"pre4": {
"label": "Prefix 4",
"description": "Prefix for template shortcut 4",
"example": "subst:",
"type": "string"
},
"4": {
"label": "Shortcut 4",
"description": "Template shortcut 4",
"type": "wiki-template-name"
},
"pre5": {
"label": "Prefix 5",
"description": "Prefix for template shortcut 5",
"example": "subst:",
"type": "string"
},
"5": {
"label": "Shortcut 5",
"description": "Template shortcut 5",
"type": "wiki-template-name"
},
"pre6": {
"label": "Prefix 6",
"description": "Prefix for template shortcut 6",
"example": "subst:",
"type": "string"
},
"6": {
"label": "Shortcut 6",
"description": "Template shortcut 6",
"type": "wiki-template-name"
},
"pre7": {
"label": "Prefix 7",
"description": "Prefix for template shortcut 7",
"example": "subst:",
"type": "string"
},
"7": {
"label": "Shortcut 7",
"description": "Template shortcut 7",
"type": "wiki-template-name"
},
"pre8": {
"label": "Prefix 8",
"description": "Prefix for template shortcut 8",
"example": "subst:",
"type": "string"
},
"8": {
"label": "Shortcut 8",
"description": "Template shortcut 8",
"type": "wiki-template-name"
},
"pre9": {
"label": "Prefix 9",
"description": "Prefix for template shortcut 9",
"example": "subst:",
"type": "string"
},
"9": {
"label": "Shortcut 9",
"description": "Template shortcut 9",
"type": "wiki-template-name"
}
}
}
</templatedata>}}
== See also ==
* {{tl|shortcut}}, the standard shortcut notice.
* {{tl|policy shortcut}}, for shortcuts to sections of policy pages.
* {{tl|R to redirect template}}, the [[WP:RCAT|rcat]] template for redirects to rcat templates
* {{tl|template redirect}}, automatically sets <code>redirect=yes</code>
<includeonly>{{Sandbox other||
<!----CATEGORIES BELOW THIS LINE, PLEASE:---->
[[Category:Shortcut templates]]
[[Category:Template documentation]]<!--Yes, this is intended for the template page – this template is used IN template docs.-->
}}</includeonly>
h8fnclsq4swqv2i2dw5axna27woily9
Ta̱mpi̱let:Shortcut/doc
10
1938
15761
2022-08-12T07:48:08Z
Kambai Akau
15
Created page with "{{documentation subpage}} <!-- PLEASE ADD CATEGORIES AND INTERWIKIS AT THE BOTTOM OF THIS PAGE --> {{Template shortcut|Shc|Short|Shorthand}} {{High-use}} {{Lua|Module:Shortcut}} {{Lua sidebar}} {{Commons|Template:Redirects}} This is the documentation for {{tl|shortcut}} and its sister templates. Template {{tl|shortcut}} renders a box, informing editors, which [[Wikipedia:Shortcut|shortcuts]] are available for linking to a page or a section of a page. The ''Wikipedia:..."
wikitext
text/x-wiki
{{documentation subpage}}
<!-- PLEASE ADD CATEGORIES AND INTERWIKIS AT THE BOTTOM OF THIS PAGE -->
{{Template shortcut|Shc|Short|Shorthand}}
{{High-use}}
{{Lua|Module:Shortcut}}
{{Lua sidebar}}
{{Commons|Template:Redirects}}
This is the documentation for {{tl|shortcut}} and its sister templates. Template {{tl|shortcut}} renders a box, informing editors, which [[Wikipedia:Shortcut|shortcuts]] are available for linking to a page or a section of a page.
The ''[[Wikipedia:Shortcut|shortcut]]'' family of templates is put into context here, but they each have their own documentation pages, [[#See also|see below]]. A shortcut template is similar to the {{tl|anchor}} template, but it adds a visual ''box'' graphic to the rendered page, as well as providing an alternative name. Creating a redirect page is a requirement to fulfill the shortcut mechanism.
In templates, it is put in the [[Wikipedia:Template documentation|documentation page]].
== Usage ==
This template should not be used for articles in the main namespace, because the graphic produces an unavoidable [[WP:SELF|self-reference]].
# Insert the shortcut template.
# Create a redirect page with the {{tl|R from shortcut}} template suffixed to the redirect. Name the page after your shortcut name. Include the namespace name in both the shortcut name and the redirect page name. For example, substitute your own shortcut name as the title of the page, and substitute the proper namespace, then add the REDIRECT as the top-line on your redirect page, and the category to the third line of the redirect:
#:<code><nowiki>#REDIRECT [[</nowiki>''Namespace'':''Title of page with''#''Optional and possibly very long section name''<nowiki>]]</nowiki><br><br><nowiki>{{R from shortcut}}</nowiki></code>
# Verify operation. Note that shortcut templates should display in all capitals, but operate without all capitals.
'''Notes'''
Shortcuts are used mainly on user pages and talk pages in reference to the Wikipedia, Help, and Portal namespaces. These templates inform about the shortcuts available to the page they are on. For example, [[WP:SHORT]] redirects to [[Wikipedia:Shortcut]] and therefore, Wikipedia:Shortcut renders a shortcut box listing WP:SHORT. It is a self-reference that is normally avoided in the main article namespace.
The purpose of these templates is not to list every single redirect for a page (that's what [[Special:WhatLinksHere]] is for), but to list the most common and easily remembered redirects.
== Parameters ==
{{tl|shortcut}} takes the following parameters:
* {{code|1}}, {{code|2}}, {{code|3}}... – the shortcut links.
* {{code|float}} – if set to {{code|left}}, the box floats to the left.
* {{code|clear}} – if set to {{code|right}}, (or {{code|left}} if {{para|float|left}} is set), the box appears beneath, not beside, another floating element preceding it (infobox, thumbnail etc.).
* {{code|msg}} – an unlinked message that goes after the shortcut links.
* {{code|category}} – set to "no", "n", "false" or "0" to suppress error categories.
== Examples ==
{|
! Code
! Result
|-
| style="vertical-align:top;" | {{tlc|{{BASEPAGENAME}}|WP:SHORT}}
| {{<!---->{{BASEPAGENAME}}|WP:SHORT}}
|-
| style="vertical-align:top;" | {{tlc|{{BASEPAGENAME}}|WP:V|WP:VERIFY|WP:SOURCE}}
| {{<!---->{{BASEPAGENAME}}|WP:V|WP:VERIFY|WP:SOURCE}}
|-
| style="vertical-align:top;" | {{tlc|{{BASEPAGENAME}}|WP:V|WP:VERIFY|4=msg=A message}}
| {{<!---->{{BASEPAGENAME}}|WP:V|WP:VERIFY|msg=A message}}
|}
== Anchors ==
These templates automatically add an [[HTML element#Anchor|anchor]] for each shortcut name parameter. For example, if a shortcut box with the shortcut [[WP:SHORT]] is placed on the page [[Wikipedia:Shortcut]], then the link [[Wikipedia:Shortcut#WP:SHORT]] will take you to the position in the page where that shortcut box is placed.
Examples: [[#WP:SHORT]], and [[MOS:MATH#TONE]]
This makes it easier to create a shortcut for a section of a page, because you can refer to the anchor when creating the shortcut redirect itself. Like this:
:<code><nowiki>#REDIRECT [[Pagename#WP:SHORT]] {{R from shortcut}}</nowiki></code>
== Positioning ==
This template is usually placed below the section header or at the top of a page.
Before July 26, 2010, when the anchor was inside the box, this caused the section header to scroll above the page window. Fixes for this issue included:
* Placing the shortcut above the section header; a bit confusing when editing
* Creating the redirect to the section header, not the shortcut; this would break if the section header was renamed
* Placing an {{tl|anchor}} in the section header that duplicated the shortcut
These fixes are no longer needed, but do not break the current implementation.
== TemplateData ==
<!-- The <nostrip> comments are necessary to work around bugs in [[Module:Plain text]] -->
{{Format TemplateData|<templatedata>
{
"description": "This template displays one or more of a template's shortcuts.",
"format": "inline",
"params": {
"template": {
"label": "Template?",
"description": "Whether this is a list of shortcuts for a Template. <p><!--nostrip-->'''See also:''' <code><!--nostrip-->{{[[Template:Template shortcut|Template shortcut]]}}</code></p>",
"default": "0",
"autovalue": "1",
"type": "boolean"
},
"redirect": {
"label": "Redirect?",
"description": "Whether to refer to the “shortcut/s” as “redirect/s” instead.",
"default": "0",
"autovalue": "1",
"type": "boolean"
},
"target": {
"label": "Target?",
"description": "Whether to omit the <code><!--nostrip-->redirect=no</code><!--nostrip--> URL parameter.",
"default": "0",
"autovalue": "1",
"type": "boolean"
},
"float": {
"label": "Float",
"description": "The CSS <code><!--nostrip-->float</code><!--nostrip--> property value.",
"default": "right",
"suggestedvalues": [
"left",
"right"
],
"type": "string"
},
"clear": {
"label": "Clear",
"description": "The CSS <code><!--nostrip-->clear</code><!--nostrip--> property value.",
"suggestedvalues": [
"left",
"right",
"both"
],
"type": "string"
},
"category": {
"label": "Categorize",
"description": "Whether to add pages to the error category if no alias or <code><!--nostrip-->msg</code><!--nostrip--> is specified.",
"default": "1",
"autovalue": "0",
"type": "boolean"
},
"msg": {
"label": "Message",
"description": "An unlinked message that goes after the shortcut links.",
"type": "content"
},
"1": {
"label": "Shortcut 1",
"description": "Page/section shortcut 1",
"required": true,
"type": "wiki-page-name"
},
"2": {
"label": "Shortcut 2",
"description": "Page/section shortcut 2",
"type": "wiki-page-name"
},
"3": {
"label": "Shortcut 3",
"description": "Page/section shortcut 3",
"type": "wiki-page-name"
},
"4": {
"label": "Shortcut 4",
"description": "Page/section shortcut 4",
"type": "wiki-page-name"
},
"5": {
"label": "Shortcut 5",
"description": "Page/section shortcut 5",
"type": "wiki-page-name"
},
"6": {
"label": "Shortcut 6",
"description": "Page/section shortcut 6",
"type": "wiki-page-name"
},
"7": {
"label": "Shortcut 7",
"description": "Page/section shortcut 7",
"type": "wiki-page-name"
},
"8": {
"label": "Shortcut 8",
"description": "Page/section shortcut 8",
"type": "wiki-page-name"
},
"9": {
"label": "Shortcut 9",
"description": "Page/section shortcut 9",
"type": "wiki-page-name"
}
},
"paramOrder": [
"template",
"redirect",
"target",
"float",
"clear",
"category",
"msg",
"1",
"2",
"3",
"4",
"5",
"6",
"7",
"8",
"9"
]
}
</templatedata>}}
== See also ==
* [[Wikipedia:Shortcut]] – The how-to guide and guideline about how and when to create shortcuts and shortcut boxes. A must-read for anyone handling shortcuts.
* {{tl|Anchor}} – a way to overcome the otherwise permanent fact that section titles are the only way to link to a section
* {{tl|R from shortcut}} – for placement on the redirect page
* {{tl|Template shortcut}} – used for shortcuts/redirects to a template page
* {{tl|Short URL box}} – for short URLs created with the [[:meta:Special:URLShortener|WMF URL shortener]]
<includeonly>{{Sandbox other||
<!--Categories below this line, please; interwikis at Wikidata-->
[[Category:Shortcut templates]]
}}</includeonly>
9noo69lrngijftgj6iumb6igt993tqi
Ta̱mpi̱let:Policy shortcut
10
1939
15762
2022-08-12T07:49:49Z
Kambai Akau
15
Redirected page to [[Ta̱mpi̱let:Shortcut]]
wikitext
text/x-wiki
#REDIRECT [[Template:Shortcut]]
pul8ew4dlsui3eusj3pxwhvfdlo4dj9
Ta̱mpi̱let:Short URL box
10
1940
15765
15763
2022-08-12T07:54:36Z
Kambai Akau
15
wikitext
text/x-wiki
{{shortcut|msg=<div class="module-shortcutlist">[[Wikipedia:URLShortener|Short URL]]</div><br />
<span class="plainlinks">[https://w.wiki/{{{1<noinclude>|4Q7</noinclude>}}} w.wiki/{{{1<noinclude>|4Q7</noinclude>}}}]</span>}}<noinclude>
{{Documentation}}
<!-- Add categories and interwikis to the /doc subpage, not here! -->
</noinclude>
1qfwjc8laxkhzefj3hcdfths22lq8b3
Ta̱mpi̱let:Short URL box/doc
10
1941
15764
2022-08-12T07:54:10Z
Kambai Akau
15
Created page with "{{Documentation subpage}} <!-- Please place categories where indicated at the bottom of this page and interwikis at Wikidata (see [[Wikipedia:Wikidata]]) --> To display short URLs made by the [[WP:URLShortener|WMF's 'URLShortener' tool]], styled like {{Tl|Shortcut}}. == Usage == <code><nowiki>{{Short URL box|4Q7}}</nowiki></code> renders as seen above. <includeonly>{{sandbox other|| <!-- Categories below this line, please; interwikis at Wikidata --> }}</includeonly>"
wikitext
text/x-wiki
{{Documentation subpage}}
<!-- Please place categories where indicated at the bottom of this page and interwikis at Wikidata (see [[Wikipedia:Wikidata]]) -->
To display short URLs made by the [[WP:URLShortener|WMF's 'URLShortener' tool]], styled like {{Tl|Shortcut}}.
== Usage ==
<code><nowiki>{{Short URL box|4Q7}}</nowiki></code> renders as seen above.
<includeonly>{{sandbox other||
<!-- Categories below this line, please; interwikis at Wikidata -->
}}</includeonly>
rp9ujeptnr1v836dhs5v2a5sf4gw4e9
Ta̱mpi̱let:Namespace and pagename-detecting templates
10
1942
15766
2022-08-12T07:56:04Z
Kambai Akau
15
Created page with "{{Navbox | name = Namespace and pagename-detecting templates | state = {{{state|{{{1|<noinclude>expanded</noinclude>}}}}}} | bodyclass=hlist | title = Namespace and pagename-detecting templates | group1 = [[Wikipedia:Namespace|Namespace]] | list1 = {{Navbox |child |groupstyle=font-weight:normal; | group1 = Particular | list1 = * {{tlbare|Main other}} * {{tlbare|Talk other}} * {{tlbare|Category other}} * {{tlbare|Draft other}} * {{tlbare|File other}} ** {{tlbare|..."
wikitext
text/x-wiki
{{Navbox
| name = Namespace and pagename-detecting templates
| state = {{{state|{{{1|<noinclude>expanded</noinclude>}}}}}}
| bodyclass=hlist
| title = Namespace and pagename-detecting templates
| group1 = [[Wikipedia:Namespace|Namespace]]
| list1 =
{{Navbox |child
|groupstyle=font-weight:normal;
| group1 = Particular
| list1 =
* {{tlbare|Main other}}
* {{tlbare|Talk other}}
* {{tlbare|Category other}}
* {{tlbare|Draft other}}
* {{tlbare|File other}}
** {{tlbare|Is Commons}}
* {{tlbare|Help other}}
* {{tlbare|Module other}}
* {{tlbare|Portal other}}
* {{tlbare|Template other}}
* {{tlbare|User other}}
* {{tlbare|Wikipedia other}}
* {{tlbare|Single namespace}}
* {{tlbare|If talkspace of}}
* {{tlbare|If usertalk of}}
| group2 = More generic
| list2 =
* {{tlbare|Namespace detect}}
* {{tlbare|Namespace detect showall}}
* {{tlbare|Main talk other}}
** {{tlbare|Main talk other flex}}
* {{tlbare|Talkspace detect}}
}}
| group2 = [[Wikipedia:Page name|Pagename]]
| list2 = {{navbox|subgroup
| groupstyle = line-height:1.2em; font-weight:normal; background:transparent;
| liststyle = line-height:1.2em
| group1 = {{tlbare|When on basepage}}
| list1 = Detects and acts according to whether it is on a basepage ''or'' on any subpage (that is, a <code>../..</code> subpage).
| group2 = {{tlbare|When pagename is}}
| list2 = For pattern matching on the pagename.
| group3 = [[Module:Page]]
| list3 = Can take apart and put together pagenames in several ways.
| group4 = {{tlbare|IP-talk}}
| list4 = Returns IP-user talkpage, registered-user talkpage or non-user talkpage.
| group5 = {{tlbare|IP-user other}}
| list5 = For detecting IP-user pages.
| group6 = {{tlbare|Subpage other}}
| list6 = Pagename has an after-slash part (not in mainspace)
| group7 = {{tlbare|Sandbox other}}
| list7 = Page is subpage /sandbox (template space)
| group8 = {{tlbare|Testcases other}}
| list8 = Page is subpage /testcases (template space)
| group9 = {{tlbare|Rootpage other}}
| list9 = Page is rootpage (vs. /subpage) (template space)
}}
| group3 = Others
| list3 = {{navbox|subgroup
| groupstyle = line-height:1.2em; font-weight:normal; background:transparent;
| liststyle = line-height:1.2em
| group1 = {{tlbare|Stub other}}
| list1 = Detects whether it is on a page with a stub template or not.
| group2 = {{tlbare|Redirect other}}
| list2 = Detects whether it is on a redirect or not.
| group3 = {{tlbare|If preview}}
| list3 = Detects whether page is viewed as a preview or not.
| group4 = {{tlbare|If IP}}
| list4 = Displays different content to IP users and logged-in users.
| group5 = {{tlbare|If autoconfirmed}}
| list5 = Displays different content to autoconfirmed and non-autoconfirmed users.
| group6 = {{tlbare|If extended confirmed}}
| list6 = Displays different content to extended confirmed and non-extended confirmed users.
| group7 = {{tlbare|If administrator}}
| list7 = Displays content only to admins.
| group8 = {{tlbare|If mobile}}
| list8 = Displays different content to mobile users and desktop users.
| group9 = {{tlbare|Noscript}}
| list9 = Detects whether page is viewed with a JavaScript-capable client or not.
}}
| below =
* [[Wikipedia:Namespace]]
* [[Wikipedia:Page name]]
* [[mw:Help:Magic words|Magic words]]
* [[mw:Help:Extension:ParserFunctions|ParserFunctions]]
}}<noinclude>
{{documentation}}
</noinclude>
jo039fl1emgg1040zkmv7ne7cx1i7c0
Ta̱mpi̱let:Namespace and pagename-detecting templates/doc
10
1943
15767
2022-08-12T07:56:45Z
Kambai Akau
15
Created page with "{{Documentation subpage}} <!--Categories where indicated at the bottom of this page, please; interwikis at Wikidata (see [[Wikipedia:Wikidata]])--> {{Collapsible option |statename=optional}} <includeonly>{{Sandbox other|| <!--Categories below this line, please; interwikis at Wikidata--> [[Category:Namespace manipulation templates| ]] [[Category:Documentation see also templates]] [[Category:Template namespace templates]] }}</includeonly>"
wikitext
text/x-wiki
{{Documentation subpage}}
<!--Categories where indicated at the bottom of this page, please; interwikis at Wikidata (see [[Wikipedia:Wikidata]])-->
{{Collapsible option |statename=optional}}
<includeonly>{{Sandbox other||
<!--Categories below this line, please; interwikis at Wikidata-->
[[Category:Namespace manipulation templates| ]]
[[Category:Documentation see also templates]]
[[Category:Template namespace templates]]
}}</includeonly>
7vd3z1lix4pebvzem4f6e9vl8itdf1q
Ta̱mpi̱let:Navbar
10
1944
15768
2022-08-12T07:58:08Z
Kambai Akau
15
Created page with "<includeonly>{{#invoke:Navbar|navbar}}</includeonly><noinclude> {{documentation}} </noinclude>"
wikitext
text/x-wiki
<includeonly>{{#invoke:Navbar|navbar}}</includeonly><noinclude>
{{documentation}}
</noinclude>
fptzky4feeh5ybkj9wgkbuuk3emtln7
Ta̱mpi̱let:Navbar/doc
10
1945
15769
2022-08-12T08:00:41Z
Kambai Akau
15
Created page with "{{documentation subpage}} {{#ifeq:{{BASEPAGENAME}}|Navbar|{{used in system}}}} {{lua|Module:Navbar}}{{#ifeq:{{BASEPAGENAME}}|VTE|{{tsh|V}}}} {{tlx|Navbar}} provides a small "view '''·''' talk '''·''' edit" navigation bar. It is primarily used for content-heavy templates and other transcluded content blocks, so that the content inside the template or block is more easily editable {{lang|la|in situ}} where it was found, without having tra..."
wikitext
text/x-wiki
{{documentation subpage}}
{{#ifeq:{{BASEPAGENAME}}|Navbar|{{used in system}}}}
{{lua|Module:Navbar}}{{#ifeq:{{BASEPAGENAME}}|VTE|{{tsh|V}}}}
{{tlx|Navbar}} provides a small "view '''·''' talk '''·''' edit" navigation bar. It is primarily used for content-heavy templates and other transcluded content blocks, so that the content inside the template or block is more easily editable {{lang|la|in situ}} where it was found, without having track it down through examining transclusion code. {{tnull|Navbar}}'s extremely high use rate and consequent protection level are because it is integrated as a feature into numerous [[WP:NAVBOX|navigation box]] and [[WP:INFOBOX|infobox]] templates used in millions of articles. It is also a regular feature of many internal-use templates and tables of the Wikipedia, Help, and Template [[WP:NAMESPACE|namespaces]].
==Usage==
===General===
When one of the following examples is placed inside a given [[Wikipedia:Navigation templates|template]] (or block of content used for [[Wikipedia:Transclusion#Selective transclusion|selective transclusion]]), it adds basic navbar navigational functionality:
:<code><nowiki>{{navbar|{{subst:PAGENAME}}|mini=y}}</nowiki></code>
:<code><nowiki>{{navbar|{{subst:PAGENAME}}|plain=y}}</nowiki></code>
:<code><nowiki>{{navbar|{{subst:PAGENAME}}|fontstyle=color: green; font-style: italic;}}</nowiki></code>
The <code><nowiki>{{subst:PAGENAME}}</nowiki></code> will be [[WP:SUBST|substituted]] with the page name of the real location of the content when parsed by the servers. For example, <code><nowiki>{{navbar|Navbar/doc}}</nowiki></code> gives:<br />{{navbar|Navbar/doc}}
When used in content that is selectively transcluded but which is also used as-is in its original location, this template should be wrapped in {{xtag|includeonly|p}} markup, so that it only appears when transcluded.
===Font size and weight ===
Font-size is 88% when used in a topical navbar template or in plain text, and 100% when nested in a navbox or infobox (because those templates' text size is already reduced; the "100%" is relative to the surrounding template's own content, not that of the entire page). The {{para|fontstyle}} parameter can be used to adjust font size as needed (e.g. to reduce font size even more when the template is used inside a block element with a large font size). Do not abuse this to make excessively small text (i.e. less than 85% of the normal page text), since that causes [[MOS:SMALLTEXT|accessibility problems]] for many readers.
In a topical navbar, the weight is "normal"; when nested in a navbox or infobox, it inherits the style of the surrounding content. The middot bullets are bold for better visibility.
=== Block level element ===
The template generates block-level markup with {{tag|div}} tags, and therefore, any surrounding markup cannot include {{tag|span}} tags, which would cause a [[Special:LintErrors/misc-tidy-replacement-issues|div-span-flip]] lint error.
==Examples==
===Required parameters===
*<code><nowiki>{{navbar|Template Name}}</nowiki></code> – the template name is required.
===Optional parameters===
{| class="wikitable"
! Options !! Parameters !! Produces... !! "Shortcut" template
|-
| Basic || <code><nowiki>{{navbar|Template Name}}</nowiki></code> || {{navbar|Navbar/doc}} ||
|-
| Different text || <code><nowiki>{{navbar|Template Name|</nowiki>'''text'''<nowiki>=This template:}}</nowiki></code> || {{navbar|Navbar/doc|text=This template:}} ||
|-
| Without "This box:" text || <code><nowiki>{{navbar|Template Name|</nowiki>'''plain'''<nowiki>=y}}</nowiki></code> || {{navbar|Navbar/doc|plain=y}} || {{tl|view}}
|-
| Short version || <code><nowiki>{{navbar|Template Name|</nowiki>'''mini'''<nowiki>=y}}</nowiki></code> || {{navbar|Navbar/doc|mini=y}} || {{tl|v}}
|-
| With brackets || <code><nowiki>{{navbar|Template Name|</nowiki>'''brackets'''<nowiki>=y}}</nowiki></code> || {{navbar|Navbar/doc|brackets=y}} ||
|-
| With font styling examples ([[Span and div|span]]) || <code><nowiki>{{navbar|Template Name|</nowiki>'''fontstyle'''<nowiki>=color: green; font-style: italic;}}</nowiki></code> || {{navbar|Navbar/doc|fontstyle=color: green; font-style: italic;}} ||
|-
| With whole-template styling examples ([[Span and div|div]]) || <code><nowiki>{{navbar|Template Name|</nowiki>'''style'''<nowiki>=float:right; background: Beige; padding: 5px; border: 1px solid;}}</nowiki></code> || {{navbar|Navbar/doc|style=float:right; background: Beige; padding: 5px; border: 1px solid;}} ||
|}
===Shortcut templates ===
The <code>mini=y</code> and <code>plain=y</code> parameters can be avoided by using the {{tlx|v}} or {{tlx|view}} templates, respectively, instead.
{{tl|view}} and {{tl|v}} also support changing the shown links, for example only view and edit, or only view and talk:
{| class="wikitable"
|-
! Code
! Result
|-
|{{demo|br=<td>|<nowiki>{{view|template=view/doc}}</nowiki>}}
|-
|{{demo|br=<td>|<nowiki>{{view|template=view/doc|talk}}</nowiki>}}
|-
|{{demo|br=<td>|<nowiki>{{view|template=view/doc|talk|edit}}</nowiki>}}
|-
|{{demo|br=<td>|<nowiki>{{v|template=v/doc}}</nowiki>}}
|-
|{{demo|br=<td>|<nowiki>{{v|template=v/doc|t}}</nowiki>}}
|-
|{{demo|br=<td>|<nowiki>{{v|template=v/doc|t|e}}</nowiki>}}
|}
==Notes==
Navbar is contained within a {{tag|div}} in order to accommodate a horizontal unnumbered list. This means it cannot be placed inside a {{tag|span}} or other inline element, because the [[HTML Tidy]] extension will 'fix' situations where it finds block elements inside inline elements.
==Prepackaged==
;{{tl|Navbar-header}}: Positions {{navbar|Navbar/doc|mini=1}} on the right edge of the line, often used in non-collapsible navbox heading.
;{{tl|Navbar-collapsible}}: For use in conjunction with [[Help:Collapsing|collapsible tables]], floats {{navbar|Navbar/doc|mini=1}} opposite of the [hide]/[show] feature.
==See also==
{{Edit templates}}
Other [[:Category:Internal link templates|internal link templates]], including:
*{{tl|Talk}} – plain talk link
*{{tl|Watch}} – plain link that adds the page to your [[Help:Watchlist|watchlist]]
*[[:Category:Internal template-link templates]]
{{Navigation templates}}
== TemplateData ==
{{TemplateData header}}
<templatedata>
{
"description": "When placed inside a given template, it adds navbar navigational functionality",
"params": {
"": {
"label": "Template Name",
"description": "The name of the template, so links work correctly",
"type": "string",
"default": "",
"required": true
},
"text": {
"label": "Different text",
"description": "Allows custom text to replace the default 'this box'",
"type": "string",
"default": "This box",
"required": false
},
"plain": {
"label": "Without 'This box:' text",
"description": "Removes 'This box'",
"type": "number",
"default": "0",
"required": false
},
"mini": {
"label": "Short Version",
"description": "Shortens text to V T E",
"type": "number",
"default": "0",
"required": false
},
"brackets": {
"label": "with brackets",
"description": "adds brackets before and after the links",
"type": "number",
"default": "0",
"required": false
},
"fontstyle": {
"label": "Font color",
"description": "Allows you to change the color of the font (in the format color:green)",
"type": "string",
"default": "",
"required": false
},
"style": {
"label": "To float to the side",
"description": "Allows the template to float to the side (format=float:right)",
"type": "string",
"default": "float:left",
"required": false
}
}
}
</templatedata><!---
PLEASE ADD METADATA TO THE <includeonly> SECTION HERE
---><includeonly>{{Sandbox other||
[[Category:Internal link templates]]
}}</includeonly>
4nddvksak3qr3xrxm1mkuf975hnre7b
Ta̱mpi̱let:Navbar/sandbox
10
1946
15770
2022-08-12T08:01:35Z
Kambai Akau
15
Created page with "<includeonly>{{#invoke:Navbar/sandbox|navbar}}</includeonly><noinclude> {{documentation}} </noinclude>"
wikitext
text/x-wiki
<includeonly>{{#invoke:Navbar/sandbox|navbar}}</includeonly><noinclude>
{{documentation}}
</noinclude>
8vn93ymza53mq979zq81qo7zkh2kdd5
Ta̱mpi̱let:Navbar/testcases
10
1947
15839
15772
2022-08-12T10:00:46Z
Kambai Akau
15
wikitext
text/x-wiki
{{Template test cases notice}}
== Navbar/sandbox ==
{| class="wikitable"
|-
! scope="col" | Option (high-level)
! scope="col" | Option (detail)
! scope="col" | Parameters
! scope="col" | Navbar
! scope="col" | Navbar/sandbox
|-
! rowspan="9" scope="row" | Normal
| Normal
| <small><code><nowiki>{{Navbar/sandbox|Template Name}}</nowiki></code></small>
| {{Navbar|Navbar/doc}}
| {{Navbar/sandbox|Navbar/doc}}
|-
| With other text
| <small><code><nowiki>{{Navbar/sandbox|Template Name|text=This template:}}</nowiki></code></small>
| {{Navbar|Navbar/doc|text=This template:}}
| {{Navbar/sandbox|Navbar/doc|text=This template:}}
|-
| No text
| <small><code><nowiki>{{Navbar/sandbox|Template Name|plain=1}}</nowiki></code></small>
| {{Navbar|Navbar/doc|plain=1}}
| {{Navbar/sandbox|Navbar/doc|plain=1}}
|-
| With brackets
| <small><code><nowiki>{{Navbar/sandbox|Template Name|plain=1|brackets=1}}</nowiki></code></small>
| {{Navbar|Navbar/doc|plain=1|brackets=1}}
| {{Navbar/sandbox|Navbar/doc|plain=1|brackets=1}}
|-
| Inline
| <small><code><nowiki>{{Navbar/sandbox|Template Name}}</nowiki></code></small>
| Lorem {{Navbar|Navbar/doc}} Ipsum
| Lorem {{Navbar/sandbox|Navbar/doc}} Ipsum
|-
| Inline, plain
| <small><code><nowiki>{{Navbar/sandbox|Template Name|plain=1}}</nowiki></code></small>
| Lorem {{Navbar|Navbar/doc|plain=1}} Ipsum
| Lorem {{Navbar/sandbox|Navbar/doc|plain=1}} Ipsum
|-
| With color option
| <small><code><nowiki>{{Navbar/sandbox|Template Name|fontstyle=color:green}}</nowiki></code></small>
| {{Navbar|Navbar/doc|fontstyle=color:green}}
| {{Navbar/sandbox|Navbar/doc|fontstyle=color:green}}
|-
| Linking to non-template pages
| <small><code><nowiki>{{Navbar/sandbox|User:Foo}}</nowiki></code></small>
| {{Navbar|User:Foo}}
| {{Navbar/sandbox|User:Foo}}
|-
| Linking to non-template pages
| <small><code><nowiki>{{Navbar/sandbox|:Foo}}</nowiki></code></small>
| {{Navbar|:Foo}}
| {{Navbar/sandbox|:Foo}}
|-
! rowspan="4" scope="row" | Mini
| Makes Navbar display in a mini version.
| <small><code><nowiki>{{Navbar/sandbox|Template Name|mini=1}}</nowiki></code></small>
| {{Navbar|Navbar/doc|mini=1}}
| {{Navbar/sandbox|Navbar/doc|mini=1}}
|-
| With brackets.
| <small><code><nowiki>{{Navbar/sandbox|Template Name|mini=1|brackets=1}}</nowiki></code></small>
| {{Navbar|Navbar/doc|mini=1|brackets=1}}
| {{Navbar/sandbox|Navbar/doc|mini=1|brackets=1}}
|-
| Mini colors
| <small><code><nowiki>{{Navbar/sandbox|Template Name|mini=1|fontstyle=color:green}}</nowiki></code></small>
| {{Navbar|Navbar/doc|mini=1|fontstyle=color:green}}
| {{Navbar/sandbox|Navbar/doc|mini=1|fontstyle=color:green}}
|-
| Inline
| <small><code><nowiki>{{Navbar/sandbox|Template Name|mini=1}}</nowiki></code></small>
| Lorem {{Navbar|Navbar/doc|mini=1}} Ipsum
| Lorem {{Navbar/sandbox|Navbar/doc|mini=1}} Ipsum
|-
! rowspan="4" scope="row" | View only
| For a full simpler access option
| <small><code><nowiki>{{Navbar/sandbox|Template Name|viewplain=1}}</nowiki></code></small>
| {{view|Navbar/doc}}
| {{view/sandbox|Navbar/doc}}
|-
| For a simpler access option
| <small><code><nowiki>{{Navbar/sandbox|Template Name|miniv=1}}</nowiki></code></small>
| {{v|Navbar/doc}}
| {{v/sandbox|Navbar/doc}}
|-
| For protected templates
| <small><code><nowiki>{{Navbar/sandbox|Template Name|noedit=1}}</nowiki></code></small>
| {{Navbar|Navbar/doc|noedit=1}}
| {{Navbar/sandbox|Navbar/doc|noedit=1}}
|-
| For protected templates, mini
| <small><code><nowiki>{{Navbar/sandbox|Template Name|noedit=1|mini=1}}</nowiki></code></small>
| {{Navbar|Navbar/doc|noedit=1|mini=1}}
| {{Navbar/sandbox|Navbar/doc|noedit=1|mini=1}}
|}
== In navbox ==
{{bu nwuan|Template:Navbox/testcases}}
{{navbox/sandbox
| name = Template:Navbar/testcases
| title = Navbox Navbar test
| group1 = Group 1 test
| list1 = List 1 test
}}
ovya7qdtv9l0yxkv3lal2bn0x8dpq3a
Ta̱mpi̱let:Template test cases notice
10
1948
15773
2022-08-12T08:05:46Z
Kambai Akau
15
Redirected page to [[Ta̱mpi̱let:Testcases notice]]
wikitext
text/x-wiki
#REDIRECT [[Template:Testcases notice]]
2toq2uume3mhgw0cecu1mzayn9ym6wq
Ta̱mpi̱let:Testcases notice
10
1949
15774
2022-08-12T08:06:21Z
Kambai Akau
15
Created page with "{{#ifeq:{{NAMESPACE}}|User||{{#ifexist:{{FULLBASEPAGENAME}}||{{db-g8}}}}}}{{ombox | image = [[File:Gnome-applications-science.svg|42px]] | text = This is the [[Wikipedia:Template sandbox and test cases|template test cases]] page for the <noinclude>[[Template:Template test cases notice/sandbox|sandbox]]</noinclude><includeonly>{{{sandbox link|{{#if:{{{1|}}}|{{{1|}}}|{{NAMESPACE}}:{{BASEPAGENAME}}}}/{{{subpage-name|sandbox}}}}}}|{{{sandbox name|{{{subpage-name|sandbox}}..."
wikitext
text/x-wiki
{{#ifeq:{{NAMESPACE}}|User||{{#ifexist:{{FULLBASEPAGENAME}}||{{db-g8}}}}}}{{ombox
| image = [[File:Gnome-applications-science.svg|42px]]
| text =
This is the [[Wikipedia:Template sandbox and test cases|template test cases]] page for the <noinclude>[[Template:Template test cases notice/sandbox|sandbox]]</noinclude><includeonly>[[{{{sandbox link|{{#if:{{{1|}}}|{{{1|}}}|{{NAMESPACE}}:{{BASEPAGENAME}}}}/{{{subpage-name|sandbox}}}}}}|{{{sandbox name|{{{subpage-name|sandbox}}}}}}]]</includeonly> of [[:{{#if:{{{1|}}}|{{{1|}}}|{{NAMESPACE}}:{{BASEPAGENAME}}}}]]. {{Purge|Purge this page}} to update the examples. <br> <small>If there are many examples of a complicated template, later ones may break due to [[Wikipedia:Template limits|limits in MediaWiki]]; see the HTML comment "NewPP limit report" in the rendered page. <br> You can also use [[Special:ExpandTemplates]] to examine the results of template uses. <br> You can test how this page looks in the different skins with these links:</small>
<div style="text-align:center;font-size:90%;">{{select skin}}</div>
}}<includeonly>{{{category|[[Category:Template test cases]]}}}</includeonly><noinclude>
{{Documentation}}
<!-- Add categories and interwikis to the /doc subpage, not here! -->
</noinclude>
55jvqmrsj86qlsblgjnk0dnymvqw9gd
Ta̱mpi̱let:Testcases notice/doc
10
1950
15776
15775
2022-08-12T08:08:16Z
Kambai Akau
15
wikitext
text/x-wiki
{{Documentation subpage}}
<!-- Categories go where indicated at the bottom of this page, please; interwikis go to Wikidata (see also: [[Wikipedia:Wikidata]]). -->
{{not a sandbox}}
{{high-use| 2800 }}
{{tl|{{BASEPAGENAME}}}} is meant to be placed at the top of a /testcases page, i.e. a page where a test version (a "sandbox" version) of (usually) a template and its parameters is tested and (usually) compared with the version currently in use (the "main" version). For further information about template sandboxes and testcase pages, see [[Wikipedia:Template sandbox and test cases]].
===Usage===
{{tlc|{{BASEPAGENAME}}}}, i.e. the template without any parameters, produces the notice as formatted above.
====Parameters====
<!----REVISED TO HERE---->
You may specify the link to the associated sandbox page using the parameter ''sandboxlink'':
: <code>{{((}}{{BASEPAGENAME}} |sandboxlink=../[alternate sandbox name here]{{))}}</code>
You may also specify that some other text is substituted for the word "sandbox" shown in the template using the parameter ''sandboxname'':
: <code>{{((}}{{BASEPAGENAME}} |sandboxlink=../[alternate sandbox name here] |sandboxname=[alternate to "sandbox" here]{{))}}</code>
{{((}}{{BASEPAGENAME}}
| [template name]
| purgelink =
| sandboxlink =
| sandboxname =
| category =
| style =
{{))}}
; <nowiki>{{{1}}}</nowiki> {{nobold|(i.e. first unnamed parameter)}}
: Full name of the template being tested on the page, including the "Template:" prefix. If omitted, the default is the base page of the test cases page. Be careful not to use any leading or trailing spaces with this parameter, as they will affect the display of the template link.
; ''sandboxlink'' {{nobold|(or ''sandbox link'')}}
: The page that the sandbox link in the message targets. Can be an absolute page name, or relative to the test cases page. The default is "../sandbox".
; ''sandboxname'' {{nobold|(or ''sandbox name'')}}
: The text shown for the sandbox link. The default is "sandbox".
; ''category''
: Category and sort key to use for the test cases page instead of the default of <code><nowiki>[[Category:Template test cases|{{PAGENAME}}]]</nowiki></code>. When using this parameter, the double square brackets and "Category:" prefix are required. To suppress the category, use {{para|category}} (i.e. ''category'' without any value).
; <s>''subpage-name''</s>
: '''(deprecated)''' Sets the ''sandboxlink'' and ''sandboxname'' parameters at the same time. The value is prefixed with "../" for the sandbox link, so must be a page name relative to the base page. For example, <code>subpage-name=sandbox3</code> implies <code>sandboxlink=../sandbox3 |sandboxname=sandbox3</code>.
===See also===
* {{tl|Documentation}}, for use at the bottom of templates and their /sandbox pages.
* {{tl|Template sandbox notice}}, for use at the bottom of /sandbox pages if {{braces|Documentation}} is not used.
<includeonly>{{Sandbox other||
<!-- Categories go below this line, please; interwikis go to Wikidata, thank you! -->
[[Category:Template test cases| ]]
[[Category:Template namespace templates]]
}}</includeonly>
pp54hameye9ls3qae9dm8quag201bbz
Ta̱mpi̱let:Navbox/sandbox
10
1951
15777
2022-08-12T08:10:11Z
Kambai Akau
15
Created page with "{{{{{|safesubst:}}}#invoke: Navbox/sandbox | navbox }}<noinclude> {{documentation}} <!-- Add categories to the /doc subpage; interwikis go to Wikidata, thank you! --> </noinclude>"
wikitext
text/x-wiki
{{{{{|safesubst:}}}#invoke: Navbox/sandbox | navbox }}<noinclude>
{{documentation}}
<!-- Add categories to the /doc subpage; interwikis go to Wikidata, thank you! -->
</noinclude>
m4mtx11stw06ahyrbv4tf9i451tmx11
Module:Navbox/sandbox
828
1952
15778
2022-08-12T08:11:32Z
Kambai Akau
15
Created page with "local p = {} local navbar = require('Module:Navbar')._navbar local cfg = mw.loadData('Module:Navbox/configuration') local getArgs -- lazily initialized local args local format = string.format local function striped(wikitext, border) -- Return wikitext with markers replaced for odd/even striping. -- Child (subgroup) navboxes are flagged with a category that is removed -- by parent navboxes. The result is that the category shows all pages -- where a child navbox is no..."
Scribunto
text/plain
local p = {}
local navbar = require('Module:Navbar')._navbar
local cfg = mw.loadData('Module:Navbox/configuration')
local getArgs -- lazily initialized
local args
local format = string.format
local function striped(wikitext, border)
-- Return wikitext with markers replaced for odd/even striping.
-- Child (subgroup) navboxes are flagged with a category that is removed
-- by parent navboxes. The result is that the category shows all pages
-- where a child navbox is not contained in a parent navbox.
local orphanCat = cfg.category.orphan
if border == cfg.keyword.border_subgroup and args[cfg.arg.orphan] ~= cfg.keyword.orphan_yes then
-- No change; striping occurs in outermost navbox.
return wikitext .. orphanCat
end
local first, second = cfg.class.navbox_odd_part, cfg.class.navbox_even_part
if args[cfg.arg.evenodd] then
if args[cfg.arg.evenodd] == cfg.keyword.evenodd_swap then
first, second = second, first
else
first = args[cfg.arg.evenodd]
second = first
end
end
local changer
if first == second then
changer = first
else
local index = 0
changer = function (code)
if code == '0' then
-- Current occurrence is for a group before a nested table.
-- Set it to first as a valid although pointless class.
-- The next occurrence will be the first row after a title
-- in a subgroup and will also be first.
index = 0
return first
end
index = index + 1
return index % 2 == 1 and first or second
end
end
local regex = orphanCat:gsub('([%[%]])', '%%%1')
return (wikitext:gsub(regex, ''):gsub(cfg.marker.regex, changer)) -- () omits gsub count
end
local function processItem(item, nowrapitems)
if item:sub(1, 2) == '{|' then
-- Applying nowrap to lines in a table does not make sense.
-- Add newlines to compensate for trim of x in |parm=x in a template.
return '\n' .. item ..'\n'
end
if nowrapitems == cfg.keyword.nowrapitems_yes then
local lines = {}
for line in (item .. '\n'):gmatch('([^\n]*)\n') do
local prefix, content = line:match('^([*:;#]+)%s*(.*)')
if prefix and not content:match(cfg.pattern.nowrap) then
line = format(cfg.nowrap_item, prefix, content)
end
table.insert(lines, line)
end
item = table.concat(lines, '\n')
end
if item:match('^[*:;#]') then
return '\n' .. item ..'\n'
end
return item
end
-- we will want this later when we want to add tstyles for hlist/plainlist
local function has_navbar()
return args[cfg.arg.navbar] ~= cfg.keyword.navbar_off
and args[cfg.arg.navbar] ~= cfg.keyword.navbar_plain
and (
args[cfg.arg.name]
or mw.getCurrentFrame():getParent():getTitle():gsub(cfg.pattern.sandbox, '')
~= cfg.pattern.navbox
)
end
-- extract color from css
local function extractcolor(str)
-- return nil because navbar takes its argument into mw.html which handles
-- nil gracefully, and it removes the associated style attribute
return mw.ustring.match(';' .. str .. ';', '.*;%s*([Cc][Oo][Ll][Oo][Rr]%s*:%s*.-)%s*;') or nil
end
local function renderNavBar(titleCell)
if has_navbar() then
titleCell:wikitext(navbar{
[cfg.navbar.name] = args[cfg.arg.name],
[cfg.navbar.mini] = 1,
[cfg.navbar.fontstyle] = extractcolor(
(args[cfg.arg.basestyle] or '') .. ';' .. (args[cfg.arg.titlestyle] or '')
)
})
end
end
local function renderTitleRow(tbl)
if not args[cfg.arg.title] then return end
local titleRow = tbl:tag('tr')
local titleCell = titleRow:tag('th'):attr('scope', 'col')
local titleColspan = 2
if args[cfg.arg.imageleft] then titleColspan = titleColspan + 1 end
if args[cfg.arg.image] then titleColspan = titleColspan + 1 end
titleCell
:cssText(args[cfg.arg.basestyle])
:cssText(args[cfg.arg.titlestyle])
:addClass(cfg.class.navbox_title)
:attr('colspan', titleColspan)
renderNavBar(titleCell)
titleCell
:tag('div')
-- id for aria-labelledby attribute
:attr('id', mw.uri.anchorEncode(args[cfg.arg.title]))
:addClass(args[cfg.arg.titleclass])
:css('font-size', '114%')
:css('margin', '0 4em')
:wikitext(processItem(args[cfg.arg.title]))
end
local function getAboveBelowColspan()
local ret = 2
if args[cfg.arg.imageleft] then ret = ret + 1 end
if args[cfg.arg.image] then ret = ret + 1 end
return ret
end
local function renderAboveRow(tbl)
if not args[cfg.arg.above] then return end
tbl:tag('tr')
:tag('td')
:addClass(cfg.class.navbox_abovebelow)
:addClass(args[cfg.arg.aboveclass])
:cssText(args[cfg.arg.basestyle])
:cssText(args[cfg.arg.abovestyle])
:attr('colspan', getAboveBelowColspan())
:tag('div')
-- id for aria-labelledby attribute, if no title
:attr('id', args[cfg.arg.title] and nil or mw.uri.anchorEncode(args[cfg.arg.above]))
:wikitext(processItem(args[cfg.arg.above], args[cfg.arg.nowrapitems]))
end
local function renderBelowRow(tbl)
if not args[cfg.arg.below] then return end
tbl:tag('tr')
:tag('td')
:addClass(cfg.class.navbox_abovebelow)
:addClass(args[cfg.arg.belowclass])
:cssText(args[cfg.arg.basestyle])
:cssText(args[cfg.arg.belowstyle])
:attr('colspan', getAboveBelowColspan())
:tag('div')
:wikitext(processItem(args[cfg.arg.below], args[cfg.arg.nowrapitems]))
end
local function renderListRow(tbl, index, listnum, listnums_size)
local row = tbl:tag('tr')
if index == 1 and args[cfg.arg.imageleft] then
row
:tag('td')
:addClass(cfg.class.noviewer)
:addClass(cfg.class.navbox_image)
:addClass(args[cfg.arg.imageclass])
:css('width', '1px') -- Minimize width
:css('padding', '0 2px 0 0')
:cssText(args[cfg.arg.imageleftstyle])
:attr('rowspan', listnums_size)
:tag('div')
:wikitext(processItem(args[cfg.arg.imageleft]))
end
local group_and_num = format(cfg.arg.group_and_num, listnum)
local groupstyle_and_num = format(cfg.arg.groupstyle_and_num, listnum)
if args[group_and_num] then
local groupCell = row:tag('th')
-- id for aria-labelledby attribute, if lone group with no title or above
if listnum == 1 and not (args[cfg.arg.title] or args[cfg.arg.above] or args[cfg.arg.group2]) then
groupCell
:attr('id', mw.uri.anchorEncode(args[cfg.arg.group1]))
end
groupCell
:attr('scope', 'row')
:addClass(cfg.class.navbox_group)
:addClass(args[cfg.arg.groupclass])
:cssText(args[cfg.arg.basestyle])
-- If groupwidth not specified, minimize width
:css('width', args[cfg.arg.groupwidth] or '1%')
groupCell
:cssText(args[cfg.arg.groupstyle])
:cssText(args[groupstyle_and_num])
:wikitext(args[group_and_num])
end
local listCell = row:tag('td')
if args[group_and_num] then
listCell
:addClass(cfg.class.navbox_list_with_group)
else
listCell:attr('colspan', 2)
end
if not args[cfg.arg.groupwidth] then
listCell:css('width', '100%')
end
local rowstyle -- usually nil so cssText(rowstyle) usually adds nothing
if index % 2 == 1 then
rowstyle = args[cfg.arg.oddstyle]
else
rowstyle = args[cfg.arg.evenstyle]
end
local list_and_num = format(cfg.arg.list_and_num, listnum)
local listText = args[list_and_num]
local oddEven = cfg.marker.oddeven
if listText:sub(1, 12) == '</div><table' then
-- Assume list text is for a subgroup navbox so no automatic striping for this row.
oddEven = listText:find(cfg.pattern.navbox_title) and cfg.marker.restart or cfg.class.navbox_odd_part
end
local liststyle_and_num = format(cfg.arg.liststyle_and_num, listnum)
local listclass_and_num = format(cfg.arg.listclass_and_num, listnum)
listCell
:css('padding', '0')
:cssText(args[cfg.arg.liststyle])
:cssText(rowstyle)
:cssText(args[liststyle_and_num])
:addClass(cfg.class.navbox_list)
:addClass(cfg.class.navbox_part .. oddEven)
:addClass(args[cfg.arg.listclass])
:addClass(args[listclass_and_num])
:tag('div')
:css('padding',
(index == 1 and args[cfg.arg.list1padding]) or args[cfg.arg.listpadding] or '0 0.25em'
)
:wikitext(processItem(listText, args[cfg.arg.nowrapitems]))
if index == 1 and args[cfg.arg.image] then
row
:tag('td')
:addClass(cfg.class.noviewer)
:addClass(cfg.class.navbox_image)
:addClass(args[cfg.arg.imageclass])
:css('width', '1px') -- Minimize width
:css('padding', '0 0 0 2px')
:cssText(args[cfg.arg.imagestyle])
:attr('rowspan', listnums_size)
:tag('div')
:wikitext(processItem(args[cfg.arg.image]))
end
end
-- uses this now to make the needHlistCategory correct
-- to use later for when we add list styles via navbox
local function has_list_class(htmlclass)
local class_args = { -- rough order of probability of use
cfg.arg.bodyclass, cfg.arg.listclass, cfg.arg.aboveclass,
cfg.arg.belowclass, cfg.arg.titleclass, cfg.arg.navboxclass,
cfg.arg.groupclass, cfg.arg.imageclass
}
local patterns = {
'^' .. htmlclass .. '$',
'%s' .. htmlclass .. '$',
'^' .. htmlclass .. '%s',
'%s' .. htmlclass .. '%s'
}
for _, arg in ipairs(class_args) do
for _, pattern in ipairs(patterns) do
if mw.ustring.find(args[arg] or '', pattern) then
return true
end
end
end
return false
end
local function needsHorizontalLists(border)
if border == cfg.keyword.border_subgroup or args[cfg.arg.tracking] == cfg.keyword.tracking_no then
return false
end
return not has_list_class(cfg.pattern.hlist) and not has_list_class(cfg.pattern.plainlist)
end
local function hasBackgroundColors()
for _, key in ipairs({cfg.arg.titlestyle, cfg.arg.groupstyle,
cfg.arg.basestyle, cfg.arg.abovestyle, cfg.arg.belowstyle}) do
if tostring(args[key]):find('background', 1, true) then
return true
end
end
return false
end
local function hasBorders()
for _, key in ipairs({cfg.arg.groupstyle, cfg.arg.basestyle,
cfg.arg.abovestyle, cfg.arg.belowstyle}) do
if tostring(args[key]):find('border', 1, true) then
return true
end
end
return false
end
local function isIllegible()
local styleratio = require('Module:Color contrast')._styleratio
for key, style in pairs(args) do
if tostring(key):match(cfg.pattern.style) then
if styleratio{mw.text.unstripNoWiki(style)} < 4.5 then
return true
end
end
end
return false
end
local function getTrackingCategories(border)
local cats = {}
if needsHorizontalLists(border) then table.insert(cats, cfg.category.horizontal_lists) end
if hasBackgroundColors() then table.insert(cats, cfg.category.background_colors) end
if isIllegible() then table.insert(cats, cfg.category.illegible) end
if hasBorders() then table.insert(cats, cfg.category.borders) end
return cats
end
local function renderTrackingCategories(builder, border)
local title = mw.title.getCurrentTitle()
if title.namespace ~= 10 then return end -- not in template space
local subpage = title.subpageText
if subpage == cfg.keyword.subpage_doc or subpage == cfg.keyword.subpage_sandbox
or subpage == cfg.keyword.subpage_testcases then return end
for _, cat in ipairs(getTrackingCategories(border)) do
builder:wikitext('[[Category:' .. cat .. ']]')
end
end
local function renderMainTable(border, listnums)
local tbl = mw.html.create('table')
:addClass(cfg.class.nowraplinks)
:addClass(args[cfg.arg.bodyclass])
local state = args[cfg.arg.state]
if args[cfg.arg.title] and state ~= cfg.keyword.state_plain and state ~= cfg.keyword.state_off then
if state == cfg.keyword.state_collapsed then
state = cfg.class.collapsed
end
tbl
:addClass(cfg.class.collapsible)
:addClass(state or cfg.class.autocollapse)
end
tbl:css('border-spacing', 0)
if border == cfg.keyword.border_subgroup or border == cfg.keyword.border_none then
tbl
:addClass(cfg.class.navbox_subgroup)
:cssText(args[cfg.arg.bodystyle])
:cssText(args[cfg.arg.style])
else -- regular navbox - bodystyle and style will be applied to the wrapper table
tbl
:addClass(cfg.class.navbox_inner)
:css('background', 'transparent')
:css('color', 'inherit')
end
tbl:cssText(args[cfg.arg.innerstyle])
renderTitleRow(tbl)
renderAboveRow(tbl)
local listnums_size = #listnums
for i, listnum in ipairs(listnums) do
renderListRow(tbl, i, listnum, listnums_size)
end
renderBelowRow(tbl)
return tbl
end
local function add_navbox_styles()
local frame = mw.getCurrentFrame()
-- This is a lambda so that it doesn't need the frame as a parameter
local function add_user_styles(templatestyles)
if templatestyles and templatestyles ~= '' then
return frame:extensionTag{
name = 'templatestyles', args = { src = templatestyles }
}
end
return ''
end
-- get templatestyles. load base from config so that Lua only needs to do
-- the work once of parser tag expansion
local base_templatestyles = cfg.templatestyles
local templatestyles = add_user_styles(args[cfg.arg.templatestyles])
local child_templatestyles = add_user_styles(args[cfg.arg.child_templatestyles])
-- The 'navbox-styles' div exists for two reasons:
-- 1. To wrap the styles to work around T200206 more elegantly. Instead
-- of combinatorial rules, this ends up being linear number of CSS rules.
-- 2. To allow MobileFrontend to rip the styles out with 'nomobile' such that
-- they are not dumped into the mobile view.
return mw.html.create('div')
:addClass(cfg.class.navbox_styles)
:addClass(cfg.class.nomobile)
:wikitext(base_templatestyles .. templatestyles .. child_templatestyles)
:done()
end
function p._navbox(navboxArgs)
args = navboxArgs
local listnums = {}
for k, _ in pairs(args) do
if type(k) == 'string' then
local listnum = k:match(cfg.pattern.listnum)
if listnum then table.insert(listnums, tonumber(listnum)) end
end
end
table.sort(listnums)
local border = mw.text.trim(args[cfg.arg.border] or args[1] or '')
if border == cfg.keyword.border_child then
border = cfg.keyword.border_subgroup
end
-- render the main body of the navbox
local tbl = renderMainTable(border, listnums)
local res = mw.html.create()
-- render the appropriate wrapper for the navbox, based on the border param
if border == cfg.keyword.border_none then
res:node(add_navbox_styles())
local nav = res:tag('div')
:attr('role', 'navigation')
:node(tbl)
-- aria-labelledby title, otherwise above, otherwise lone group
if args[cfg.arg.title] or args[cfg.arg.above] or (args[cfg.arg.group1]
and not args[cfg.arg.group2]) then
nav:attr(
'aria-labelledby',
mw.uri.anchorEncode(
args[cfg.arg.title] or args[cfg.arg.above] or args[cfg.arg.group1]
)
)
else
nav:attr('aria-label', cfg.aria_label)
end
elseif border == cfg.keyword.border_subgroup then
-- We assume that this navbox is being rendered in a list cell of a
-- parent navbox, and is therefore inside a div with padding:0em 0.25em.
-- We start with a </div> to avoid the padding being applied, and at the
-- end add a <div> to balance out the parent's </div>
res
:wikitext('</div>')
:node(tbl)
:wikitext('<div>')
else
res:node(add_navbox_styles())
local nav = res:tag('div')
:attr('role', 'navigation')
:addClass(cfg.class.navbox)
:addClass(args[cfg.arg.navboxclass])
:cssText(args[cfg.arg.bodystyle])
:cssText(args[cfg.arg.style])
:css('padding', '3px')
:node(tbl)
-- aria-labelledby title, otherwise above, otherwise lone group
if args[cfg.arg.title] or args[cfg.arg.above]
or (args[cfg.arg.group1] and not args[cfg.arg.group2]) then
nav:attr(
'aria-labelledby',
mw.uri.anchorEncode(args[cfg.arg.title] or args[cfg.arg.above] or args[cfg.arg.group1])
)
else
nav:attr('aria-label', cfg.aria_label)
end
end
if (args[cfg.arg.nocat] or cfg.keyword.nocat_false):lower() == cfg.keyword.nocat_false then
renderTrackingCategories(res, border)
end
return striped(tostring(res), border)
end
function p.navbox(frame)
if not getArgs then
getArgs = require('Module:Arguments').getArgs
end
args = getArgs(frame, {wrappers = {cfg.pattern.navbox}})
-- Read the arguments in the order they'll be output in, to make references
-- number in the right order.
local _
_ = args[cfg.arg.title]
_ = args[cfg.arg.above]
-- Limit this to 20 as covering 'most' cases (that's a SWAG) and because
-- iterator approach won't work here
for i = 1, 20 do
_ = args[format(cfg.arg.group_and_num, i)]
_ = args[format(cfg.arg.list_and_num, i)]
end
_ = args[cfg.arg.below]
return p._navbox(args)
end
return p
rfwpycm3ntumn620jk1sm44fredkbx8
Ta̱mpi̱let:Navbox visibility
10
1953
15779
2022-08-12T08:14:17Z
Kambai Akau
15
Created page with "Templates using the classes <code>class=navbox</code> ({{tl|navbox}}) or <code>class=nomobile</code> ({{tl|sidebar}}) are not displayed on the [https://en.m.wikipedia.org/ mobile web site] of English Wikipedia. Mobile page views account for approximately 63% of all page views (90-day average {{as of|March 2022|lc=y}}).<noinclude> {{documentation}} </noinclude>"
wikitext
text/x-wiki
Templates using the classes <code>class=navbox</code> ({{tl|navbox}}) or <code>class=nomobile</code> ({{tl|sidebar}}) are not displayed on the [https://en.m.wikipedia.org/ mobile web site] of English Wikipedia. Mobile page views account for approximately 63% of all page views (90-day average {{as of|March 2022|lc=y}}).<noinclude>
{{documentation}}
</noinclude>
3wkklzztnu7w9weowdo8d0edowg1h30
Ta̱mpi̱let:Navbox visibility/doc
10
1954
15780
2022-08-12T08:15:18Z
Kambai Akau
15
Created page with "{{Documentation subpage}} == Usage == Place this template on templates that directly or indirectly use the <code>navbox</code> attribute, so that editors will know that many readers will not be able to see the template. == Update == See https://analytics.wikimedia.org/dashboards/vital-signs/#projects=enwiki/metrics=Pageviews if you want to update the numbers (try smoothing the curve by averaging over the last 90 days). Numbers can also be updated from pageviews. To u..."
wikitext
text/x-wiki
{{Documentation subpage}}
== Usage ==
Place this template on templates that directly or indirectly use the <code>navbox</code> attribute, so that editors will know that many readers will not be able to see the template.
== Update ==
See https://analytics.wikimedia.org/dashboards/vital-signs/#projects=enwiki/metrics=Pageviews if you want to update the numbers (try smoothing the curve by averaging over the last 90 days).
Numbers can also be updated from pageviews. To update the number, get the (total) value in [https://pageviews.toolforge.org/siteviews/?platform=all-access&source=pageviews&agent=user&range=latest-90&sites=en.wikipedia.org PageViews] on the right (should be in the realm of 20 billion). Then set the Platform on the left for Mobile web (click "Break down by Site"). Get the total. Do the same for Mobile app. Then do the basic addition/division.
Some ad blockers (uBlock origin particularly) will catch the words 'pageview' and 'piwik' in resources loaded to display the graphs. Disable the adblocker for the website in question.
<includeonly>{{Sandbox other||
<!-- Categories below this line, please; interwikis at Wikidata -->
[[Category:Notice and warning templates]]
[[Category:Navigational meta-templates]]
}}</includeonly>
gylrc6sj105rryaiootltnw26o61pe4
Ta̱mpi̱let:Navbox suite
10
1955
15781
2022-08-12T08:16:49Z
Kambai Akau
15
Created page with "{{#invoke:sidebar|sidebar | width = auto | bodystyle = border-spacing:0;background:#f7f7f7;padding:2px; | title = Navbox suite | titlestyle = padding: 0.2em 0.8em; font-size: 145%; line-height: 1.2em; background-color: #ccf; | contentclass = plainlist | contentstyle = padding:0.25em;background:#fdfdfd; | content1 = *{{tl|Navbox}} *{{tl|Navbox with collapsible groups}} *{{tl|Navbox with columns}} *{{tl|Navboxes}} | navbarstyle = background:#fdfdfd;padding:0 5px }}<!--..."
wikitext
text/x-wiki
{{#invoke:sidebar|sidebar
| width = auto
| bodystyle = border-spacing:0;background:#f7f7f7;padding:2px;
| title = Navbox suite
| titlestyle = padding: 0.2em 0.8em; font-size: 145%; line-height: 1.2em; background-color: #ccf;
| contentclass = plainlist
| contentstyle = padding:0.25em;background:#fdfdfd;
| content1 =
*{{tl|Navbox}}
*{{tl|Navbox with collapsible groups}}
*{{tl|Navbox with columns}}
*{{tl|Navboxes}}
| navbarstyle = background:#fdfdfd;padding:0 5px
}}<!--
NOTE: A template MUST support all of the parameters marked with a cross in Template:Navbox/doc in order to be Navbox suite compliant.
In particular, the name, state, border, and navbar parameters are especially important.
--><noinclude>
{{Documentation|content=
Helper template for linking between main navbox templates in their documentation.
[[Category:Wikipedia-internal sidebar templates]]
[[Category:Navigational boxes|Δ]]<!-- Δ for documentation ([[WP:SORTKEY]]) -->
[[Category:Documentation see also templates]]
}}
</noinclude>
q2u0aptiq4ctbt1lm3wqxw8cvzv3j1y
Ta̱mpi̱let:Lua sidebar
10
1956
15782
2022-08-12T08:18:29Z
Kambai Akau
15
Created page with "{{Sidebar | class = lua-sidebar | templatestyles = Template:Lua sidebar/styles.css | title = Related pages | content1 = {{plainlist}} * [[Template:{{{template|{{{title|{{BASEPAGENAME}}}}}}}}|Template]] {{#if:{{#invoke:redirect|isRedirect|Template talk:{{{template|{{{title|{{BASEPAGENAME}}}}}}}}}}||([[Template talk:{{{template|{{{title|{{BASEPAGENAME}}}}}}}}|talk]])}} * [[Template:{{{template|{{{title|{{BASEPAGENAME}}}}}}}}/sandbox|Template sandbox]] * Template:{{{templ..."
wikitext
text/x-wiki
{{Sidebar
| class = lua-sidebar
| templatestyles = Template:Lua sidebar/styles.css
| title = Related pages
| content1 = {{plainlist}}
* [[Template:{{{template|{{{title|{{BASEPAGENAME}}}}}}}}|Template]] {{#if:{{#invoke:redirect|isRedirect|Template talk:{{{template|{{{title|{{BASEPAGENAME}}}}}}}}}}||([[Template talk:{{{template|{{{title|{{BASEPAGENAME}}}}}}}}|talk]])}}
* [[Template:{{{template|{{{title|{{BASEPAGENAME}}}}}}}}/sandbox|Template sandbox]]
* [[Template:{{{template|{{{title|{{BASEPAGENAME}}}}}}}}/testcases|Template testcases]]
* [[Template:{{{template|{{{title|{{BASEPAGENAME}}}}}}}}/doc|Template doc]]
* [[Special:PrefixIndex/Template:{{{template|{{{title|{{BASEPAGENAME}}}}}}}}/|Template subpages]]
* [[Module:{{{module|{{{title|{{BASEPAGENAME}}}}}}}}|Module]] {{#if:{{#invoke:redirect|isRedirect|Module talk:{{{module|{{{title|{{BASEPAGENAME}}}}}}}}}}||([[Module talk:{{{module|{{{title|{{BASEPAGENAME}}}}}}}}|talk]])}}
* [[Module:{{{module|{{{title|{{BASEPAGENAME}}}}}}}}/sandbox|Module sandbox]]
* [[Module talk:{{{module|{{{title|{{BASEPAGENAME}}}}}}}}/testcases|Module testcases]]
* [[Module:{{{module|{{{title|{{BASEPAGENAME}}}}}}}}/doc|Module doc]]
* [[Special:PrefixIndex/Module:{{{module|{{{title|{{BASEPAGENAME}}}}}}}}/|Module subpages]]
{{endplainlist}}
| content2 = {{{1|}}}
}}<noinclude>
{{Documentation}}
</noinclude>
s5y8n898go3p8r4cru1j3ini466tzdv
Ta̱mpi̱let:Lua sidebar/doc
10
1957
15783
2022-08-12T08:19:04Z
Kambai Akau
15
Created page with "{{Documentation subpage}} <!-- Please place categories where indicated at the bottom of this page and interwikis at Wikidata (see [[Wikipedia:Wikidata]]) --> {{Uses TemplateStyles|Template:Lua sidebar/styles.css}} This template displays links which are generated based on a page's base page name. These are useful for templates which work using a specific Lua module. The parameter {{para|title}} can be used to add the title of the template and module, if needed; {{para|tem..."
wikitext
text/x-wiki
{{Documentation subpage}}
<!-- Please place categories where indicated at the bottom of this page and interwikis at Wikidata (see [[Wikipedia:Wikidata]]) -->
{{Uses TemplateStyles|Template:Lua sidebar/styles.css}}
This template displays links which are generated based on a page's base page name. These are useful for templates which work using a specific Lua module. The parameter {{para|title}} can be used to add the title of the template and module, if needed; {{para|template}} and {{para|module}} do the same, but for only the template and only the module respectively.
The first unnamed parameter or {{para|1}} can be used to add more information; {{tlx|Sidebar|2=child=yes}} can be used inside it for further customization. The default links use {{tl|Div col}} and the <kbd>plainlist</kbd> CSS class.
5646xozo3ctscpqr1gkd65vvq9egfx6
Ta̱mpi̱let:Lua sidebar/styles.css
10
1958
15784
2022-08-12T08:19:38Z
Kambai Akau
15
Created page with ".lua-sidebar { width: auto; max-width: 22em; }"
sanitized-css
text/css
.lua-sidebar {
width: auto;
max-width: 22em;
}
hxkspvtmmhihekuzzwicqq4c1jd4hgr
Ta̱mpi̱let:Div col
10
1959
15785
2022-08-12T08:20:55Z
Kambai Akau
15
Created page with "<includeonly><templatestyles src="Div col/styles.css"/><!-- --><div class="div-col {{#ifeq:{{{small|}}}|yes|div-col-small}} {{#ifeq:{{{rules|}}}|yes|div-col-rules}} {{{class|}}}" <!-- -->{{#if:{{{colwidth|}}}{{{gap|}}}{{{style|}}}|<!-- -->style="{{#if:{{{colwidth|}}}|column-width: {{{colwidth}}};}}{{#if:{{{gap|}}}|column-gap: {{{gap}}};}}{{#if:{{{style|}}}|{{{style}}}}}"<!-- -->}}><!-- -->{{#if:{{{content|}}}|{{{content}}}</div>}}<!-- Inventory how many pages use small=y..."
wikitext
text/x-wiki
<includeonly><templatestyles src="Div col/styles.css"/><!--
--><div class="div-col {{#ifeq:{{{small|}}}|yes|div-col-small}} {{#ifeq:{{{rules|}}}|yes|div-col-rules}} {{{class|}}}" <!--
-->{{#if:{{{colwidth|}}}{{{gap|}}}{{{style|}}}|<!--
-->style="{{#if:{{{colwidth|}}}|column-width: {{{colwidth}}};}}{{#if:{{{gap|}}}|column-gap: {{{gap}}};}}{{#if:{{{style|}}}|{{{style}}}}}"<!--
-->}}><!--
-->{{#if:{{{content|}}}|{{{content}}}</div>}}<!-- Inventory how many pages use small=yes
-->{{#ifeq:{{{small|}}}|yes|[[Category:Pages using div col with small parameter]]}}<!--
--></includeonly>{{#invoke:Check for unknown parameters|check|unknown={{main other|[[Category:Pages using div col with unknown parameters|_VALUE_{{PAGENAME}}]]}}|preview=Page using [[Template:Div col]] with unknown parameter "_VALUE_"; use colwidth= to specify column size |ignoreblank=y | class | colwidth | content | gap | rules | small | style }}<noinclude>
{{Documentation}}
</noinclude>
cwqp9gtrnaa6hga4rh0s9vzcnfwr54n
Ta̱mpi̱let:Div col/doc
10
1960
15796
15795
2022-08-12T08:31:43Z
Kambai Akau
15
wikitext
text/x-wiki
{{Documentation subpage}}
<!-----------------------------------------------------------------------------
PLEASE ADD CATEGORIES WHERE INDICATED AT THE BOTTOM OF THIS PAGE
------------------------------------------------------------------------------>
{{#ifeq:{{FULLPAGENAME}}|Template:Div col|{{High-use| 269676 }}|{{#ifeq:{{FULLPAGENAME}}|Template:Div col end|{{High-use| 209292 }}}}}}
{{Ombox |type=notice |text=Columns are not supported by some older browsers, most notably Internet Explorer 9 and earlier and Opera 11.0 and earlier. See {{section link|Template:Reflist#Browser support for columns}} for more information.}}
{{CSS3 multiple column layout}}
{{Lua|Module:Check for unknown parameters}}
{{Uses TemplateStyles|Template:Div col/styles.css}}
The '''div col''' (short for division columns) formats a list into columns that wrap at multiple screen resolutions responsively. It automatically breaks the available screen space into equal parts, meaning, for instance, that it is not necessary to guess how many columns to use and then figure out the dividing point(s), e.g., the halfway point to divide the list into two columns, or the one-third and two-thirds points to divide the list into three columns.
==Usage==
=== Basic usage ===
<pre>
{{div col}} <!-- default width is 30em -->
* a
* b
* c
* d
* e
* f
* g
* h
{{div col end}}
</pre>
Produces:
{{Div col}}
* a
* b
* c
* d
* e
* f
* g
* h
{{Div col end}}
===Parameters===
There are six parameters for this template:
; {{para|colwidth}}
: Specifies the minimum width of the columns so that the number of columns is automatically based on screen width (that is, more columns will be shown on wider displays). If no value is supplied, the template uses a default of 30em. The width can be specified in any [[CSS#Length units|CSS unit of measure]], for instance, the [[Em (typography)|em]] (about the width of the capital "M" of the displayed typeface), e.g., <code>colwidth=20em</code>.
; {{para|rules|yes}}
: Adds vertical lines ("rules") between the columns if set to <code>yes</code>.
; {{para|gap}}
: Specifies the space between the content of adjacent columns, in any valid CSS width unit, e.g., <code>gap=2em</code>. The default spacing (set by browser) is 1em.
; {{para|class}}
: An HTML class, or multiple space-delimited classes, to apply to the columns. For example, <code>class=plainlist nowrap</code>.
; {{para|style}}
: [[Cascading Style Sheets|CSS styling]] to apply to the columns.
; {{para|small|yes}}
: Sets font size to 90%.
; {{para|content}}
: Content to apply to the columns. This parameter is effectively equivalent to {{tl|columns-list}}, which is a pass-through for this template.
=== Examples ===
====Colwidth====
<pre>
{{div col|colwidth=10em}} <!-- column width of 10em -->
* a
* b
* c
* d
* e
* f
* g
* h
{{div col end}}
</pre>
Produces:
{{Div col|colwidth=10em}}
* a
* b
* c
* d
* e
* f
* g
* h
{{Div col end}}
====Rules====
<pre>
{{Div col|colwidth=10em|rules=yes}} <!-- column width of 10em with rules -->
* a
* b
* c
* d
* e
* f
* g
* h
{{Div col end}}
</pre>
Produces:
{{Div col|colwidth=10em|rules=yes}}
* a
* b
* c
* d
* e
* f
* g
* h
{{Div col end}}
====Gap====
<pre>
{{Div col|colwidth=10em|rules=yes|gap=2em}} <!-- column width of 10em with rules and a gap of 2em -->
* a
* b
* c
* d
* e
* f
* g
* h
{{Div col end}}
</pre>
Produces:
{{Div col|colwidth=10em|rules=yes|gap=2em}}
* a
* b
* c
* d
* e
* f
* g
* h
{{Div col end}}
====Small====
<pre>
{{Div col|small=yes}} <!-- Small = yes -->
* a
* b
* c
* d
* e
* f
* g
* h
{{Div col end}}
</pre>
Produces:
{{Div col|small=yes}}
* a
* b
* c
* d
* e
* f
* g
* h
{{Div col end}}
====Content====
<pre>
{{Div col|colwidth=10em|content= <!-- content parameter doesn't need {{div col end}} -->
* a
* b
* c
* d
* e
* f
* g
* h
}}
</pre>
Produces:
{{Div col|colwidth=10em|content=
* a
* b
* c
* d
* e
* f
* g
* h
}}
====Multiple parameters====
<pre>
{{Div col|colwidth=10em|rules=yes|gap=2em|small=yes}}
* a
* b
* c
* d
* e
* f
* g
* h
{{Div col end}}
</pre>
Produces:
{{Div col|colwidth=10em|rules=yes|gap=2em|small=yes}}
* a
* b
* c
* d
* e
* f
* g
* h
{{Div col end}}
==== Text characters without list markup ====
<pre>
{{div col|colwidth=10em}} <!--Text characters without list markup -->
a
b
c
d
e
f
g
h
{{div col end}}
</pre>
Produces
{{Div col|colwidth=10em}}
a
b
c
d
e
f
g
h
{{Div col end}}
==== Lorem ipsum ====
<pre>
{{div col}} <!--Lorem ipsum -->
{{lorem ipsum}}
{{div col end}}
</pre>
Produces
{{Div col}}
{{lorem ipsum}}
{{Div col end}}
== Limitation ==
=== Sub-lists ===
The underlying CSS system is unable to break sub-lists into columns. Note the uneven formatting below:
<pre>
{{Div col|colwidth=10em|rules=yes|gap=2em|style=column-count:3|content=
* a
* b
* c
** c.d
** c.e
** c.f
* g
* h
}}
</pre>
Produces:
{{Div col|colwidth=10em|rules=yes|gap=2em|style=column-count:3|content=
* a
* b
* c
** c.d
** c.e
** c.f
* g
* h
}}
Turning off the {{code|break-inside: avoid-column;}} rule appears to help.<!-- A full page refersh is needed; just F12-ing doesn't work. -->
==Tracking categories==
* {{category link with count|Pages using div col with unknown parameters}} (for erroneous use of parameter names not documented here)
* {{category link with count|Pages using div col with small parameter}}
==TemplateData==
{{TemplateData header}}
{{#switch: {{BASEPAGENAME}}
|Div col=<templatedata>
{
"description": "Breaks a list into columns. It automatically breaks each column to an equal space, so you do not manually have to find the half way point on two columns. The list is provided by |content= or closed with {{div col end}}.",
"params": {
"colwidth": {
"label": "Column width",
"description": "Specifies the width of columns, and determines dynamically the number of columns based on screen width; more columns will be shown on wider displays.",
"type": "string",
"example": "30em"
},
"rules": {
"label": "Rules",
"description": "Produces vertical rules between the columns if set to yes.",
"type": "string",
"example": "yes"
},
"gap": {
"label": "Gap size",
"description": "Specifies the space between the content of adjacent columns.",
"type": "string",
"example": "2em"
},
"class": {
"label": "HTML class",
"description": "Specifies any class or multiple space-delimited classes.",
"type": "string",
"example": "plainlist nowrap"
},
"style": {
"label": "CSS style",
"description": "Specifies any custom styling.",
"type": "string"
},
"content": {
"label": "Content",
"description": "Specifies the content to divide into columns",
"type": "content"
},
"small": {
"label": "Small font",
"description": "Use a smaller font size (90%)",
"example": "yes",
"type": "string"
}
}
}
</templatedata>
|Div col end=<templatedata>
{
"description": "Ends a multi-column list started by {{div col}}. It takes no parameters.",
"params": {
}
}
</templatedata>
}}
==Redirects==
{{#ifeq:{{ROOTPAGENAME}}|Div col|
* {{Tlx|Col div}}
* {{Tlx|Colbegin}} (but '''not''' {{Tlx|Col begin}} or {{Tlx|Col-begin}})
* {{Tlx|Cols}}
* {{Tlx|Div col start}}
* {{Tlx|Div col begin}}
* {{Tlx|Div-col}}
* {{Tlx|Palmares start}}
}}
==See also==
{{Column-generating template families}}
<includeonly>{{Sandbox other|
| <!-- CATEGORIES BELOW THIS LINE, PLEASE: -->
[[Category:Multi-column templates]]
[[Category:Templates that add a tracking category]]
<!--?:-->{{#switch:{{PAGENAME}} |Div col= |Div col end=}}
}}</includeonly>
pcm3b8yqumfejdb99o8bitk5ldkihot
Ta̱mpi̱let:Div col/styles.css
10
1961
15787
2022-08-12T08:22:16Z
Kambai Akau
15
Created page with "/* {{pp|small=yes}} */ .div-col { margin-top: 0.3em; column-width: 30em; } .div-col-small { font-size: 90%; } .div-col-rules { column-rule: 1px solid #aaa; } /* Reset top margin for lists in div col */ .div-col dl, .div-col ol, .div-col ul { margin-top: 0; } /* Avoid elements breaking between columns See also Template:No col break */ .div-col li, .div-col dd { page-break-inside: avoid; /* Removed from CSS in favor of break-inside c. 2020 */ break-inside: av..."
sanitized-css
text/css
/* {{pp|small=yes}} */
.div-col {
margin-top: 0.3em;
column-width: 30em;
}
.div-col-small {
font-size: 90%;
}
.div-col-rules {
column-rule: 1px solid #aaa;
}
/* Reset top margin for lists in div col */
.div-col dl,
.div-col ol,
.div-col ul {
margin-top: 0;
}
/* Avoid elements breaking between columns
See also Template:No col break */
.div-col li,
.div-col dd {
page-break-inside: avoid; /* Removed from CSS in favor of break-inside c. 2020 */
break-inside: avoid-column;
}
n7twp689l8hrwuefq6a9a414zrxegfw
Ta̱mpi̱let:CSS3 multiple column layout
10
1962
15788
2022-08-12T08:24:39Z
Kambai Akau
15
Created page with "{| class="wikitable" style="float:right;clear:right;font-size:90%;margin:0 0 1em 1em;text-align:center;line-height:1.25em;" |+ style="line-height:1.25em;padding-bottom:0.25em;"| CSS3 multiple-column layout browser support |- ! Property !! [[Internet Explorer|Internet<br />Explorer]] !! [[Firefox]] !! [[Safari (web browser)|Safari]] !! [[Google Chrome|Chrome]] !! [[Opera (web browser)|Opera]] |- | column-width<br/>column-count | {{yes|≥ 10<br />{{smaller|(2012)}}}} || {..."
wikitext
text/x-wiki
{| class="wikitable" style="float:right;clear:right;font-size:90%;margin:0 0 1em 1em;text-align:center;line-height:1.25em;"
|+ style="line-height:1.25em;padding-bottom:0.25em;"| CSS3 multiple-column layout browser support
|-
! Property !! [[Internet Explorer|Internet<br />Explorer]] !! [[Firefox]] !! [[Safari (web browser)|Safari]] !! [[Google Chrome|Chrome]] !! [[Opera (web browser)|Opera]]
|-
| column-width<br/>column-count
| {{yes|≥ 10<br />{{smaller|(2012)}}}} || {{yes|≥ 1.5<br />{{smaller|(2005)}}}} || {{yes|≥ 3<br />{{smaller|(2007)}}}} || {{yes|≥ 1<br />{{smaller|(2008)}}}} || {{yes|≥ 11.1<br />{{smaller|(2011)}}}}
|-
| columns
| {{yes|≥ 10<br />{{smaller|(2012)}}}} || {{yes|≥ 9<br />{{smaller|(2011)}}}} || {{yes|≥ 3<br />{{smaller|(2007)}}}} || {{yes|≥ 1<br />{{smaller|(2008)}}}} || {{yes|≥ 11.1<br />{{smaller|(2011)}}}}
|-
| break-before<br/>break-after<br/>break-inside
| {{yes|≥ 10<br />{{smaller|(2012)}}}} || {{maybe|≥ 65<br />{{smaller|(2019)}}}}<!-- no break-after --> || {{yes|≥ 10<br />{{smaller|(2016)}}}} || {{maybe|≥ 65<br />{{smaller|(2016)}}}}<!-- no break-after --> || {{maybe|≥ 15<br />{{smaller|(2013)}}}}<!-- no break-after -->
|-
|colspan="6" style="text-align:right"|{{navbar|CSS3 multiple column layout|mini=y}}
|}<noinclude>
{{Documentation}}
</noinclude>
mxf3yk41f6fre05f3pdfetn8vhepin9
Ta̱mpi̱let:CSS3 multiple column layout/doc
10
1963
15790
15789
2022-08-12T08:26:16Z
Kambai Akau
15
wikitext
text/x-wiki
{{Documentation subpage}} {{CSS3 multiple column layout}}
<noinclude>{{about|the compatibility information template|the layout templates|Template:Columns-list|and|Template:Div col}}</noinclude>
<!-----------------------------------------------------------------------------
Add categories where indicated at the bottom of this page, please.
------------------------------------------------------------------------------>
===Usage===
This template (opposite) documents browser support for CSS3 multiple column layout..
===References===
{{refbegin}}
* {{cite web |title=CSS Multi-column Layout Module |url=http://www.w3.org/TR/css3-multicol/ |publisher=W3C}}
* {{cite web |title=When can I use... Support tables for HTML5, CSS3, etc |url=https://caniuse.com/multicolumn}}
* {{Wikitraffic}}
{{refend}}
<includeonly>{{Sandbox other||
<!-----------------------------------------------------------------------------
Categories here, please:
------------------------------------------------------------------------------>
[[Category:Wikipedia help templates]]
}}</includeonly>
6gnblcjq1a943jll662dygw62wwop5s
Ta̱mpi̱let:Template parameter usage
10
1964
15797
2022-08-12T08:33:32Z
Kambai Akau
15
Created page with "{{#switch:{{{label|}}} |=[https://bambots.brucemyers.com/TemplateParam.php?wiki=enwiki&template={{Urlencode:{{#if:{{{1|}}}|{{ROOTPAGENAME:{{{1|}}}}}|{{ROOTPAGENAME}}}}}} {{#ifeq:{{yesno-no|{{{lc}}}}}|no|C|c}}lick here] to see a monthly parameter usage report for {{#if:{{{1|}}}|[[Template:{{ROOTPAGENAME:{{{1|}}}}}]]|this template}}{{#ifeq:{{yesno-no|{{{based}}}}}|yes| based on {{#if:{{{1|}}}|its|this}} TemplateData}}. |None|none=[https://bambots.brucemyers.com/Templ..."
wikitext
text/x-wiki
{{#switch:{{{label|}}}
|=[https://bambots.brucemyers.com/TemplateParam.php?wiki=enwiki&template={{Urlencode:{{#if:{{{1|}}}|{{ROOTPAGENAME:{{{1|}}}}}|{{ROOTPAGENAME}}}}}} {{#ifeq:{{yesno-no|{{{lc}}}}}|no|C|c}}lick here] to see a monthly parameter usage report for {{#if:{{{1|}}}|[[Template:{{ROOTPAGENAME:{{{1|}}}}}]]|this template}}{{#ifeq:{{yesno-no|{{{based}}}}}|yes| based on {{#if:{{{1|}}}|its|this}} TemplateData}}.
|None|none=[https://bambots.brucemyers.com/TemplateParam.php?wiki=enwiki&template={{Urlencode:{{#if:{{{1|}}}|{{ROOTPAGENAME:{{{1|}}}}}|{{ROOTPAGENAME}}}}}} {{#ifeq:{{yesno-no|{{{lc}}}}}|no|P|p}}arameter usage report]{{#ifeq:{{yesno-no|{{{based}}}}}|yes| based on {{#if:{{{1|}}}|its|this}} TemplateData}}
|for|For=[https://bambots.brucemyers.com/TemplateParam.php?wiki=enwiki&template={{Urlencode:{{#if:{{{1|}}}|{{ROOTPAGENAME:{{{1|}}}}}|{{ROOTPAGENAME}}}}}} {{#ifeq:{{yesno-no|{{{lc}}}}}|no|P|p}}arameter usage report] for {{#if:{{{1|}}}|[[Template:{{ROOTPAGENAME:{{{1|}}}}}]]|[[Template:{{ROOTPAGENAME}}]]}}{{#ifeq:{{yesno-no|{{{based}}}}}|yes| based on {{#if:{{{1|}}}|its|this}} TemplateData}}.
|#default=[https://bambots.brucemyers.com/TemplateParam.php?wiki=enwiki&template={{Urlencode:{{#if:{{{1|}}}|{{ROOTPAGENAME:{{{1|}}}}}|{{ROOTPAGENAME}}}}}} {{{label|}}}]{{#ifeq:{{yesno-no|{{{based}}}}}|yes| based on {{#if:{{{1|}}}|its|this}} TemplateData}}
}}<noinclude>
{{documentation}}
</noinclude>
lpccs26r3pb49u723au85qnq27a3axj
Ta̱mpi̱let:Template parameter usage/doc
10
1965
15798
2022-08-12T08:35:24Z
Kambai Akau
15
Created page with "{{Documentation subpage}} <!-- Please place categories where indicated at the bottom of this page and interwikis at Wikidata (see [[Wikipedia:Wikidata]]) --> {{shortcut|1=WP:TPU}} The [https://bambots.brucemyers.com/TemplateParam.php Template Parameters tool] is available for viewing template parameter usage in articles. It works with [[Wikipedia:TemplateData|TemplateData]] to show the frequency of parameter name usage in a template's mainspace transclusions, along with..."
wikitext
text/x-wiki
{{Documentation subpage}}
<!-- Please place categories where indicated at the bottom of this page and interwikis at Wikidata (see [[Wikipedia:Wikidata]]) -->
{{shortcut|1=WP:TPU}}
The [https://bambots.brucemyers.com/TemplateParam.php Template Parameters tool] is available for viewing template parameter usage in articles. It works with [[Wikipedia:TemplateData|TemplateData]] to show the frequency of parameter name usage in a template's mainspace transclusions, along with whether or not each parameter is listed in that template's TemplateData code as a supported parameter. For a required parameter, it can display a list of pages where the template is missing that parameter. The tool also shows commonly used values for each parameter. Each report is updated monthly and does not reflect changes made to articles or to the TemplateData code after the report's generation.
== Usage ==
Example:
<div style="background:#ddd">
* {{tl|Infobox lighthouse}}/documentation: {{Slink|Template:Infobox_lighthouse|TemplateData}} → "''[https://bambots.brucemyers.com/TemplateParam.php?wiki=enwiki&template=Infobox+lighthouse Click here] to see a monthly parameter usage report ...''" → [https://bambots.brucemyers.com/TemplateParam.php?wiki=enwiki&template=Infobox+lighthouse].
</div>
===Parameters===
<pre>
{{Template parameter usage
| 1 = <!-- template:name, default=pagename -->
| lc = <!-- yes/no -->
| label= <!-- keywords like "for", or free labeltext -->
}}
</pre>
:All parameters are optional, and have a default
By default, the template links for the template page:
:<nowiki>{{Template parameter usage}}</nowiki> → {{Template parameter usage}} [for this page]
One can enter a template name:
:<nowiki>{{Template parameter usage|Infobox film}}</nowiki> → {{Template parameter usage|Infobox film}}
Optional:
* {{para|lc|yes}} for lowercase "see": {{Template parameter usage|lc=yes|Infobox film}}
* Entering {{para|1|Template:Infobox film}} is accepted (namespace is removed). Editor friendly, using a positional parameter.
: When {{para|1}} is used, "this template" text changes: → {{Template parameter usage|1=Infobox film}}
* {{para|label}} sets the visible text; it does not change the target link:
::{{para|label}} default → {{Template parameter usage|1=Infobox film}}
::{{para|label|none}} → {{Template parameter usage|1=Infobox film|label=none}}
::{{para|label|for}} → {{Template parameter usage|1=Infobox film|label=for}}
::{{para|label|FooBar}} → {{Template parameter usage|1=Infobox film|label=FooBar}}
* {{para|based|yes}} adds the text "based on this TemplateData" to the end of the template (or "based on its TemplateData" if {{para|1}} is also used).
The template is included in transclusions of {{Tl|TemplateData header}}.
== Error reports ==
{{tl|Template parameter usage}}
By default, it links a report for the template-page being viewed. To link a report for a different template-page, pass it as the first parameter:
:{{tlx|Template parameter usage|Example}} makes a link to the error report for [[Template:Example]]:
:→ {{Template parameter usage|Example}}
The first character can be made lowercase to follow on at the end of a sentence:
:<code>Blah, {{tlp|Template parameter usage|2=lc=yes}}</code> → Blah, {{Template parameter usage|lc=yes}}
== TemplateData ==
{{TemplateData header}}
<templatedata>
{
"description": "Short line of text providing a link to a monthly parameter usage report for a template based on its TemplateData",
"format": "inline",
"params": {
"lc": {
"label": "Lowercase",
"description": "Enter \"y\", \"yes\", \"true\", \"on\" or \"1\" here to make the text begin with a lowercase character.",
"type": "line",
"autovalue": "y",
"example": "y"
},
"1": {
"label": "Custom template",
"description": "Enter any template here to change the usage report link to that of that template",
"type": "wiki-template-name",
"example": "Anchor"
},
"label": {
"label": "Custom text",
"description": "Enter any text here to make the template just the usage report link with the given custom text. Alternatively, enter \"none\" to include only the usage report link, or enter \"for\" to include only the usage report link followed by \"for <template name>\".",
"type": "string"
},
"based": {
"label": "Append \"based on this[/its] TemplateData\"",
"description": "Enter \"y\", \"yes\", \"true\", \"on\" or \"1\" here to append the text \"based on this TemplateData\" (or \"based on its TemplateData\" if \"Custom template\" is also used).",
"type": "line",
"autovalue": "y",
"example": "y"
}
},
"paramOrder": [
"lc",
"1",
"label",
"based"
]
}
</templatedata>
==See also==
* {{tl|TemplateData header}} -- major user of this template
* [[User:Bamyers99/TemplateParametersTool]] - the tool
<includeonly>{{sandbox other||
<!-- Categories below this line, please; interwikis at Wikidata -->
[[Category:External link templates]]
}}</includeonly>
5m47ngykrv68g7lh7mmf7voytvg6jcg
Ta̱mpi̱let:Div col end
10
1966
15799
2022-08-12T08:37:31Z
Kambai Akau
15
Created page with "<includeonly></div></includeonly><noinclude> {{Documentation|Template:Div col/doc}} </noinclude>"
wikitext
text/x-wiki
<includeonly></div></includeonly><noinclude>
{{Documentation|Template:Div col/doc}}
</noinclude>
e0rj08wj8gm7na2mxp8t9b3l4y8kspb
Ta̱mpi̱let:Lorem ipsum
10
1967
15800
2022-08-12T08:39:03Z
Kambai Akau
15
Created page with "{{#ifexpr:{{{1|1}}}>0|{{Lorem ipsum/p-cond|{{{2|}}}|{{{join|}}}}}{{{2|}}}{{Lorem ipsum/P1|link={{{link|{{{4|no}}}}}}}}{{{3|}}} |}}{{#ifexpr:{{{1|1}}}>1|{{Lorem ipsum/pb-cond|{{{2|}}}|{{{join|}}}}}{{{2|}}}{{Lorem ipsum/P2}}{{{3|}}} |}}{{#ifexpr:{{{1|1}}}>2|{{Lorem ipsum/pb-cond|{{{2|}}}|{{{join|}}}}}{{{2|}}}{{Lorem ipsum/P3}}{{{3|}}} |}}{{#ifexpr:{{{1|1}}}>3|{{Lorem ipsum/pb-cond|{{{2|}}}|{{{join|}}}}}{{{2|}}}{{Lorem ipsum/P4}}{{{3|}}} |}}{{#ifexpr:{{{1|1}}}>4|{{Lorem..."
wikitext
text/x-wiki
{{#ifexpr:{{{1|1}}}>0|{{Lorem ipsum/p-cond|{{{2|}}}|{{{join|}}}}}{{{2|}}}{{Lorem ipsum/P1|link={{{link|{{{4|no}}}}}}}}{{{3|}}}
|}}{{#ifexpr:{{{1|1}}}>1|{{Lorem ipsum/pb-cond|{{{2|}}}|{{{join|}}}}}{{{2|}}}{{Lorem ipsum/P2}}{{{3|}}}
|}}{{#ifexpr:{{{1|1}}}>2|{{Lorem ipsum/pb-cond|{{{2|}}}|{{{join|}}}}}{{{2|}}}{{Lorem ipsum/P3}}{{{3|}}}
|}}{{#ifexpr:{{{1|1}}}>3|{{Lorem ipsum/pb-cond|{{{2|}}}|{{{join|}}}}}{{{2|}}}{{Lorem ipsum/P4}}{{{3|}}}
|}}{{#ifexpr:{{{1|1}}}>4|{{Lorem ipsum/pb-cond|{{{2|}}}|{{{join|}}}}}{{{2|}}}{{Lorem ipsum/P5}}{{{3|}}}
|}}{{#ifexpr:{{{1|1}}}>5|{{Lorem ipsum/pb-cond|{{{2|}}}|{{{join|}}}}}{{{2|}}}{{Lorem ipsum/P6}}{{{3|}}}
|}}{{#ifexpr:{{{1|1}}}>6|{{Lorem ipsum/pb-cond|{{{2|}}}|{{{join|}}}}}{{{2|}}}{{Lorem ipsum/P7}}{{{3|}}}
|}}{{#ifexpr:{{{1|1}}}>7|{{Lorem ipsum/pb-cond|{{{2|}}}|{{{join|}}}}}{{{2|}}}{{Lorem ipsum/P8}}{{{3|}}}
|}}{{#ifexpr:{{{1|1}}}>8|{{Lorem ipsum/pb-cond|{{{2|}}}|{{{join|}}}}}{{{2|}}}{{Lorem ipsum/P9}}{{{3|}}}
|}}{{#ifexpr:{{{1|1}}}>9|{{Lorem ipsum/pb-cond|{{{2|}}}|{{{join|}}}}}{{{2|}}}{{Lorem ipsum/P10}}{{{3|}}}
|}}{{#ifexpr:{{{1|1}}}>10|{{Lorem ipsum/pb-cond|{{{2|}}}|{{{join|}}}}}{{{2|}}}{{Lorem ipsum/P11}}{{{3|}}}
|}}{{#ifexpr:{{{1|1}}}>11|{{Lorem ipsum/pb-cond|{{{2|}}}|{{{join|}}}}}{{{2|}}}{{Lorem ipsum/P12}}{{{3|}}}
|}}{{#ifexpr:{{{1|1}}}>12|{{Lorem ipsum/pb-cond|{{{2|}}}|{{{join|}}}}}{{{2|}}}{{Lorem ipsum/P13}}{{{3|}}}
|}}{{#ifexpr:{{{1|1}}}>13|{{Lorem ipsum/pb-cond|{{{2|}}}|{{{join|}}}}}{{{2|}}}{{Lorem ipsum/P14}}{{{3|}}}
|}}{{#ifexpr:{{{1|1}}}>14|{{Lorem ipsum/pb-cond|{{{2|}}}|{{{join|}}}}}{{{2|}}}{{Lorem ipsum/P15}}{{{3|}}}
|}}{{#ifexpr:{{{1|1}}}>15|{{Lorem ipsum/pb-cond|{{{2|}}}|{{{join|}}}}}{{{2|}}}{{Lorem ipsum/P16}}{{{3|}}}
|}}{{#ifexpr:{{{1|1}}}>16|{{Lorem ipsum/pb-cond|{{{2|}}}|{{{join|}}}}}{{{2|}}}{{Lorem ipsum/P17}}{{{3|}}}
|}}{{#ifexpr:{{{1|1}}}>17|{{Lorem ipsum/pb-cond|{{{2|}}}|{{{join|}}}}}{{{2|}}}{{Lorem ipsum/P18}}{{{3|}}}
|}}{{#ifexpr:{{{1|1}}}>18|{{Lorem ipsum/pb-cond|{{{2|}}}|{{{join|}}}}}{{{2|}}}{{Lorem ipsum/P19}}{{{3|}}}
|}}{{#ifexpr:{{{1|1}}}>19|{{Lorem ipsum/pb-cond|{{{2|}}}|{{{join|}}}}}{{{2|}}}{{Lorem ipsum/P20}}{{{3|}}}}}{{Lorem ipsum/p-end-cond|{{{2|}}}|{{{join|}}}}}<includeonly>{{#ifeq:{{{cat|}}}|no||{{Template:Main other|[[Category:Wikipedia articles containing placeholders]]}}}}</includeonly><noinclude>
{{Documentation}}
<!-- PLEASE ADD CATEGORIES TO THE /doc SUBPAGE, AND INTERWIKIS TO WIKIDATA, THANKS -->
</noinclude>
h1d3n629kxkdbp81g31sos11tuyqcyk
Ta̱mpi̱let:Lorem ipsum/doc
10
1968
15802
15801
2022-08-12T08:42:22Z
Kambai Akau
15
wikitext
text/x-wiki
{{documentation subpage}}
<!---PLEASE ADD METADATA TO THE <includeonly> SECTION AT THE BOTTOM OF THIS PAGE--->
{{template shortcut|Ipsum|Lipsum|Lorem|Loremipsum}}
This template outputs the "[[lorem ipsum]]" filler text. It takes four parameters: the number of paragraphs to generate, paragraph prefix, paragraph suffix, and an option to link lorem ipsum. There are 10 distinct paragraphs, but it can produce up to 20 in one use.
==Usage==
{{tlc|Lorem ipsum}} – one paragraph<br/>
{{tlc|Lorem ipsum|3|*}} – three paragraphs as bullet list<br/>
{{tlc|Lorem ipsum|10}} – ten paragraphs
==Parameters==
There are four positional parameters and two named parameters, all optional:
* 1 – Number of paragraphs to display (1..20; default: 1)
* 2 – prefix character(s) to emit before each paragraph (such as a quotation mark, an asterisk for bullet list, etc.; default: none)
* 3 – suffix (such as ending quote; default: none)
* 4 – if set to {{para|4|yes}}, causes the first two words of paragraph 1 to be linked to [[Lorem ipsum]]. (default: 'no'. Alias: 'link'.)
* join – if set to {{para|join|yes}}, causes all output to be emitted as a single paragraph (default: 'no'). Use of 'join' alters how prefix is handled.
* cat – Adds article to [[:Category:Wikipedia articles containing placeholders]], unless {{para|cat|no}} (default: 'yes')
==Notes about font styling==
For most parameter combinations, this template produces block-level Html output, and for those cases, font styling using [[Help:Wikitext#Format|wiki markup]] such as <code><nowiki>'''bold'''</nowiki></code>, <code><nowiki>''italic''</nowiki></code> or {{nowrap|<code><nowiki><small>...</small></nowiki></code>}} may not produce the desired results. (This is true of all templates that generate [[HTML_element#Block_elements|Html block elements]].) If font styling is required, you can use block level alternatives, such as these:
* for smaller font, you may use ⟶ <code><nowiki>{{small div | {{Lorem ipsum|3}} }}</nowiki></code>
* for bold ⟶ <code><nowiki>{{bold div | {{Lorem ipsum|3}} }}</nowiki></code>
* for italics ⟶ <code><nowiki>{{italic div | {{Lorem ipsum|3}} }}</nowiki></code>
The latter two have a parameter to make the text smaller at the same time. Alternatively, if you only need one paragraph of lorem output, consider using {{tl|lorem ipsum span}} instead, which generates an [[HTML element#Inline elements|Html inline-level element]] and so may be used with all the normal in-line wiki markup to alter the font style.
Exceptionally, standard wiki markup may be used when param {{para|join|yes}} is in use. See [[#Running paragraphs together]].
==Examples==
===Linking "lorem ipsum"===
To link the [[incipit]] (the first two words of paragraph one, i.e. ''Lorem ipsum'') to the Wikipedia article [[Lorem ipsum]], either use param {{para|link|yes}}, or place <code>yes</code> in the fourth positional parameter. {{tlc|Lorem ipsum|1|#|link{{=}}yes}} generates:
{{Lorem ipsum|1|#|link=yes}}
===Prefix and suffix===
Param 2 is the prefix, and 3 is the suffix added to the beginning and end of each paragraph. In the example below, the prefix is {{pval|:* "}}, and the suffix is {{pval|"}}:
<code><nowiki>{{Lorem ipsum|2|:* "|"}}</nowiki></code> generates:
{{Lorem ipsum|2|:* "|"}}
Note that if param {{para|join|yes}} is in effect, the wiki markup behavior of prefix metacharacters <code>#</code>, <code>*</code>, and <code>:</code> is only apparent at the beginning of the output, because there is only one, long paragraph. For example, if prefix is {{pval|#}} with {{para|join|yes}}, the output consists of one long paragraph, numbered "1". The prefix character(s) will still be placed in the content where paragraph breaks would normally occur in non-joined results, but they appear as normal characters (hash, asterisk, colon) and are not interpreted as wiki markup.
===Prefix and suffix whitespace===
Note that whitespace is important in the second and third parameters. In the example <code><nowiki>{{Lorem ipsum|1| * " | " }}</nowiki></code> the prefix is {{pval| * " }} and the suffix is {{pval| " }}. The space in front of the asterisk prevents it from being interpreted as a bullet metacharacter, and it is seen as a plain asterisk. This results in the following:
{{Lorem ipsum|1| * " | " }}</p>
In this example, the prefix is {{pval| * " }}; the leading white space before the asterisk forces the asterisk to be read as plain text, not a bullet metacharacter.
===Running paragraphs together===
All requested paragraphs of text can be joined together in one long paragraph using the {{para|join|yes}} param. Use of this parameter alters the behavior of param 2 (prefix): see [[#Prefix and suffix]] for details. The link param (4) behaves as usual: {{nowrap|{{tlc|Lorem ipsum|2|link{{=}}yes|join{{=}}yes}}}} will produce:
:{{Lorem ipsum|2|link=yes|join=yes}}
Since joined text produces a single string without line breaks and without block-level tags such as <p>, if no prefix metacharacters are in use, the result of transcluding the template with {{para|join|yes}} is an [[HTML element#Inline elements|inline-level HTML element]], meaning that standard [[Help:Wikitext#Format|wiki markup]] for font styling (like bold, italic, or font-size such as '<small>') may be used in this case. See [[#Notes about font styling]] for details.
===Limiting character count to less than one paragraph===
If fewer than 446 characters are desired, use {{tl|lorem ipsum span}} and truncate to the desired size with {{nowrap|[[Template:Str left]]}}:
<code><nowiki>{{Str left|{{Lorem ipsum span}}|123}}</nowiki></code> will result in:
{{Str left|{{Lorem ipsum span}}|123}}
==Full text==
<code><nowiki>{{Lorem ipsum|10}}</nowiki></code> will produce:
{{collapse top}}
{{Lorem ipsum|10}}
{{collapse bottom}}
==See also==
* {{tl|lorem ipsum span}}
==Template data==
{{TemplateData header}}
<templatedata>
{
"description": "This template generates a filler text for test purposes. Text generated is the well-known \"Lorem ipsum\" passage, which is gibberish that somewhat resembles Latin. There are 10 distinct paragraphs, but it can produce up to 20.",
"params": {
"1": {
"label": "Number of paragraphs",
"description": "Number of paragraphs to be shown. A number from 1 to 20 is acceptable.",
"type": "number",
"suggested": true,
"default": "1"
},
"2": {
"label": "Paragraph prefix",
"description": "Wikicode or text to prefix to each paragraph. For example, specifying * ( causes each paragraph to become a bullet list and start with an opening parenthesis.",
"type": "unbalanced-wikitext"
},
"3": {
"label": "Paragraph suffix",
"description": "Wikicode or text to suffix to each paragraph. For example, specifying ) causes each paragraph to end with a closing parenthesis.",
"type": "unbalanced-wikitext"
},
"4": {
"aliases": [
"link"
],
"label": "Link to [[Lorem ipsum]]?",
"description": "Setting this parameter to \"yes\" causes a link to the \"Lorem ipsum\" article to appear.",
"type": "boolean"
},
"join": {
"label": "Join all output into one paragraph?",
"description": "Setting this parameter to \"yes\" causes all output to go into one paragraph.",
"type": "boolean",
"default": "no"
},
"cat": {
"label": "Add to category \"Wikipedia articles containing placeholders\"?",
"description": "Setting this parameter to \"no\" prevents the page from being added to [[Category:Wikipedia articles containing placeholders]].",
"type": "boolean",
"default": "yes"
}
}
}
</templatedata>
<includeonly>{{Sandbox other||
<!-- Interwiki and categories come here: -->
{{DEFAULTSORT:Lorem ipsum}}
[[Category:Placeholder templates]]
}}</includeonly>
0m9opxgnm0djyzir6crb2tzrl7ow8iz
Ta̱mpi̱let:Lorem ipsum span
10
1969
15803
2022-08-12T08:44:21Z
Kambai Akau
15
Created page with "{{#invoke:string|sub|{{#switch: {{{1|}}} |2 = {{lorem ipsum/P2}} |3 = {{lorem ipsum/P3}} |4 = {{lorem ipsum/P4}} |5 = {{lorem ipsum/P5}} |6 = {{lorem ipsum/P6}} |7 = {{lorem ipsum/P7}} |8 = {{lorem ipsum/P8}} |9 = {{lorem ipsum/P9}} |10 = {{lorem ipsum/P10}} |#default = {{lorem ipsum/P1}} }}|1|{{{max len|-1}}}}}<noinclude>{{Documentation}} </noinclude>"
wikitext
text/x-wiki
{{#invoke:string|sub|{{#switch: {{{1|}}}
|2 = {{lorem ipsum/P2}}
|3 = {{lorem ipsum/P3}}
|4 = {{lorem ipsum/P4}}
|5 = {{lorem ipsum/P5}}
|6 = {{lorem ipsum/P6}}
|7 = {{lorem ipsum/P7}}
|8 = {{lorem ipsum/P8}}
|9 = {{lorem ipsum/P9}}
|10 = {{lorem ipsum/P10}}
|#default = {{lorem ipsum/P1}}
}}|1|{{{max len|-1}}}}}<noinclude>{{Documentation}}
</noinclude>
7jemcypujblwztns1wb40n6eujxqj4h
Ta̱mpi̱let:Lorem ipsum span/doc
10
1970
15804
2022-08-12T08:46:08Z
Kambai Akau
15
Created page with "{{Documentation subpage}} {{template shortcut|Lorem span|Lipsum span|Lipspan}} This template emits '''one string''' with no line breaks, corresponding to '''one''' of the [[Lorem ipsum]] paragraphs. It is intended for use in [[HTML element#Inline elements|inline element]] contexts, where it may be used with standard [[Help:Wikitext#Format|wiki markup]] such as italic, bold, <small> or other inline markup. == Usage == * {{tlc|lorem ipsum span}}{{snd}}generates a strin..."
wikitext
text/x-wiki
{{Documentation subpage}}
{{template shortcut|Lorem span|Lipsum span|Lipspan}}
This template emits '''one string''' with no line breaks, corresponding to '''one''' of the [[Lorem ipsum]] paragraphs. It is intended for use in [[HTML element#Inline elements|inline element]] contexts, where it may be used with standard [[Help:Wikitext#Format|wiki markup]] such as italic, bold, <small> or other inline markup.
== Usage ==
* {{tlc|lorem ipsum span}}{{snd}}generates a string containing the first paragraph of lorem ipsum
* {{tlc|lorem ipsum span|1}}{{snd}}same as above
* {{tlc|lorem ipsum span|5}}{{snd}}generates one string containing paragraph five of lorem
== Parameters ==
There is one optional positional parameter, which is the number of the lorem paragraph to emit. Legal values are {{nowrap|<code>1..10</code>}}.
* first param: which string to emit. A value of <code>3</code> means, emit paragraph 3 of lorem as a single string.
== Examples ==
Unlike with the main template {{tl|lorem ipsum}}, this template generates an [[HTML_element#Inline_elements|Html inline-level element]], so surrounding Wiki markup is allowed here:
* <code><nowiki>''{{lorem ipsum span|4}}''</nowiki></code>{{snd}}generate paragraph 4 in italics
* <code><nowiki>'''<small>{{lorem ipsum span|2}}</small>'''</nowiki></code>{{snd}}generate paragraph 2 in small, bolded font
For example, <code><nowiki>''<small>{{lorem ipsum span|1}}</small>''</nowiki></code> generates the following:
''<small>{{lorem ipsum span|1}}</small>''
== Limiting character count to less than one paragraph ==
If fewer than 446 characters are desired, truncate to the desired size with {{para|max len}}. For example,
{{markup|
<nowiki>{{Lorem ipsum span|max len=123}}</nowiki>|{{Lorem ipsum span|max len=123}}}}<!-- Template:Mra -->
== See also ==
* {{tl|lorem span}}{{snd}}redirects to this template
* {{tl|lipspan}}{{snd}}redirects to this template
* {{tl|lorem ipsum}}{{snd}}full-featured template for multiple paragraph output and additional options
0jpkfq2o8f8e9z651zdldh5u0088be2
Ta̱mpi̱let:Lorem ipsum/P1
10
1971
15805
2022-08-12T08:47:37Z
Kambai Akau
15
Created page with "{{#ifeq:{{{link|no}}}|yes|[[Lorem ipsum]]|Lorem ipsum}} dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim i..."
wikitext
text/x-wiki
{{#ifeq:{{{link|no}}}|yes|[[Lorem ipsum]]|Lorem ipsum}} dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.<noinclude>{{pp-template}}</noinclude>
q2pmmu1fq1hlsxz747b5d901gp06zkp
Ta̱mpi̱let:Template display
10
1972
15806
2022-08-12T08:53:28Z
Kambai Akau
15
Created page with "<includeonly>{{#invoke:Message box|ombox|type=notice |image={{#switch:{{{1}}}|adaptive=[[File:Different devices simple.svg|65x65px|link=|alt=]]|nomobile=[[File:Handheld devices no.svg|55px|link=|alt=]]|nodesktop=[[File:Desktop devices no.svg|55px|link=|alt=]]}} |text={{#switch:{{{1}}} | adaptive = This template is [[Adaptive web design|responsive]] and <strong>displays differently in mobile and desktop view</strong>. Read the documentation for an explanation of the diff..."
wikitext
text/x-wiki
<includeonly>{{#invoke:Message box|ombox|type=notice
|image={{#switch:{{{1}}}|adaptive=[[File:Different devices simple.svg|65x65px|link=|alt=]]|nomobile=[[File:Handheld devices no.svg|55px|link=|alt=]]|nodesktop=[[File:Desktop devices no.svg|55px|link=|alt=]]}}
|text={{#switch:{{{1}}}
| adaptive = This template is [[Adaptive web design|responsive]] and <strong>displays differently in mobile and desktop view</strong>. Read the documentation for an explanation of the differences and why they exist.
| nomobile = This template does not display in the mobile view of Wikipedia; it is <strong>desktop only</strong>. Read the documentation for an explanation.
| nodesktop = This template does not display in the desktop view of Wikipedia; it is <strong>mobile only</strong>. Read the documentation for an explanation.
| nomobilesidebar = This template does not display in the mobile view of Wikipedia; it is <strong>desktop only</strong>. Read the [[Template:Sidebar/doc|parent documentation]] for an explanation.
| #default = {{{1}}}
}}}}</includeonly><noinclude>
{{Documentation}}
</noinclude>
i0r84n2lb20yqrmgd4yze5lfzkicqb4
Ta̱mpi̱let:Template display/doc
10
1973
15807
2022-08-12T08:54:47Z
Kambai Akau
15
Created page with "{{Documentation subpage}} <!-- Please place categories where indicated at the bottom of this page and interwikis at Wikidata (see [[Wikipedia:Wikidata]]) --> {{Template rating|beta}} The desktop and mobile browsing interfaces on Wikipedia differ substantially, and sometimes different templates are more or less suitable for a specific interface. For this reason certain templates do not display in mobile view, using the <code>class = "nomobile"</code> :'''As of March 2017..."
wikitext
text/x-wiki
{{Documentation subpage}}
<!-- Please place categories where indicated at the bottom of this page and interwikis at Wikidata (see [[Wikipedia:Wikidata]]) -->
{{Template rating|beta}}
The desktop and mobile browsing interfaces on Wikipedia differ substantially, and sometimes different templates are more or less suitable for a specific interface. For this reason certain templates do not display in mobile view, using the <code>class = "nomobile"</code>
:'''As of March 2017, only the <code>"nomobile"</code>-class is implemented, and <code>"nodesktop"</code> / <code>"mobileonly"</code> classes do nothing because they are not enabled in [[MediaWiki:Common.css]] or [[MediaWiki:Mobile.css]]''' — this means only the {{tlx|Template display|nomobile}} or {{tlx|Template display|desktoponly}} have any use.
This template does not itself control where content is displayed. It is only intended for template documentation to say where another template displays.
== Usage ==
=== Adaptive templates ===
{{Template display|adaptive}}
<pre>{{Template display|adaptive}}</pre>
=== Desktop only templates ===
{{Template display|nomobile}}
<pre>{{Template display|nomobile}}</pre>
<!--<pre>{{Template display|desktoponly}}</pre>-->
=== Mobile only templates ===
{{Template display|nodesktop}}
<pre>{{Template display|nodesktop}}</pre>
<!-- <pre>{{Template display|mobileonly}}</pre> -->
==Images used==
* [[File:Different devices simple.svg|x22px|link=|alt=]] [[:File:Different devices simple.svg]]
* [[File:Handheld devices no.svg|x22px|link=|alt=]] [[:File:Handheld devices no.svg]]
* [[File:Desktop devices no.svg|x22px|link=|alt=]] [[:File:Desktop devices no.svg]]
==See also==
*
<includeonly>{{sandbox other||
<!-- Categories below this line, please; interwikis at Wikidata -->
}}</includeonly>
1hl1k3uuek8az3w2lhy2o4esu47zkfz
Ta̱mpi̱let:Template rating
10
1974
15808
2022-08-12T08:56:43Z
Kambai Akau
15
Created page with "{{Template other|{{ombox | type = notice | image = {{#switch: {{{1|<noinclude>g</noinclude>}}} | pre-alpha | prealpha | pa = [[File:Ambox warning blue construction.svg|40x40px|link=]] | alpha | a = [[File:Alpha lowercase.svg|26x26px|link=]] | beta | b = [[File:Greek lc beta.svg|40x40px|link=]] | release | r | general | g = [[File:Green check.svg|40x40px|link=]] | protected | protect | p = File:{{#switch:{{#in..."
wikitext
text/x-wiki
{{Template other|{{ombox
| type = notice
| image = {{#switch: {{{1|<noinclude>g</noinclude>}}}
| pre-alpha | prealpha | pa = [[File:Ambox warning blue construction.svg|40x40px|link=]]
| alpha | a = [[File:Alpha lowercase.svg|26x26px|link=]]
| beta | b = [[File:Greek lc beta.svg|40x40px|link=]]
| release | r | general | g = [[File:Green check.svg|40x40px|link=]]
| protected | protect | p = [[File:{{#switch:{{#invoke:Effective protection level|edit|{{#switch:{{SUBPAGENAME}}|doc|sandbox={{FULLBASEPAGENAME}}|{{FULLPAGENAME}}}}}}|autoconfirmed=Semi-protection-shackle|accountcreator|templateeditor=Template-protection-shackle|Padlock}}.svg|40x40px|link=]]
}}
| style =
| textstyle =
| text = {{#switch: {{{1|<noinclude>g</noinclude>}}}
| pre-alpha | prealpha | pa = This template is rated as [[:Category:Templates in pre-alpha development|pre-alpha]]. It is unfinished, and may or may not be in active development. It should not be used from article namespace pages. Templates remain pre-alpha until the original editor (or someone who takes one over if it is abandoned for some time) is satisfied with the basic structure.<!--
-->{{#switch: {{SUBPAGENAME}}|doc|sandbox=<!-- No category for /doc or /sandbox subpages -->
| {{#ifeq: {{{nocat|}}} | true | <!-- No category if user sets nocat=true --> | [[Category:Templates in pre-alpha development|{{PAGENAME}}]] }}
}}
| alpha | a = This template is rated as [[:Category:Templates in alpha|alpha]]. It is ready for third party input, and may be used on a few pages to see if problems arise, but should be watched. Suggestions for new features or changes in their input and output mechanisms are welcome.<!--
-->{{#switch: {{SUBPAGENAME}}|doc|sandbox=<!-- No category for /doc or /sandbox subpages -->
| {{#ifeq: {{{nocat|}}} | true | <!-- No category if user sets nocat=true --> | [[Category:Templates in alpha|{{PAGENAME}}]] }}
}}
| beta | b = This template is rated as [[:Category:Templates in beta|beta]], and is ready for widespread use. It is still new and should be used with some caution to ensure the results are as expected.<!--
-->{{#switch: {{SUBPAGENAME}}|doc|sandbox=<!-- No category for /doc or /sandbox subpages -->
| {{#ifeq: {{{nocat|}}} | true | <!-- No category if user sets nocat=true --> | [[Category:Templates in beta|{{PAGENAME}}]] }}
}}
| release | r | general | g = This template is rated as ready for general use. It has reached a mature form and is thought to be bug-free and ready for use wherever appropriate. It is ready to mention on help pages and other Wikipedia resources as an option for new users to learn. To reduce server load and bad output, it should be improved by [[WP:TESTCASES|sandbox testing]] rather than repeated trial-and-error editing.<!-- Category deleted per [[Wikipedia:Categories_for_discussion/Log/2021_October_17#Category%3ATemplates_for_general_use]] -->
| protected | protect | p = This template is [[:Category:Wikipedia template-protected templates|subject to page protection]]. It is a [[Wikipedia:High-risk templates|highly visible template]] in use by a very large number of pages, or is [[WP:SUBST|substituted]] very frequently. Because vandalism or mistakes would affect many pages, and even trivial editing might cause substantial load on the servers, it is [[WP:PROTECT|protected]] from editing.<!--
-->{{#switch: {{SUBPAGENAME}}|doc|sandbox=<!-- No category for /doc or /sandbox subpages -->
| {{#ifeq: {{{nocat|}}} | true | <!-- No category if user sets nocat=true --> | [[Category:Wikipedia template-protected templates|{{PAGENAME}}]] }}
}}
| #default = {{error|Template rating is invalid or not specified.}}
}}
}}|{{error|Error: {{tl|Template rating}} must be placed in the Template namespace.}}|demospace={{{demospace|<noinclude>template</noinclude>}}}}}<noinclude>
{{documentation}}
<!-- Categories go on the /doc subpage, and interwikis go in Wikidata. -->
</noinclude>
d5bq504nepxbdcffniq16otm1ajwk8g
Ta̱mpi̱let:Template rating/doc
10
1975
15809
2022-08-12T08:57:45Z
Kambai Akau
15
Created page with "{{Documentation subpage}} <!-- Please place categories where indicated at the bottom of this page and interwikis at Wikidata (see [[Wikipedia:Wikidata]]) --> == Usage == <pre>{{Template rating |1= |nocat= }}</pre> This template marks the status of a template as one of five levels: * {{tlx|Template rating|pre-alpha}} * {{tlx|Template rating|alpha}} * {{tlx|Template rating|beta}} * {{tlx|Template rating|release}} * {{tlx|Template rating|protected}} All parameter values a..."
wikitext
text/x-wiki
{{Documentation subpage}}
<!-- Please place categories where indicated at the bottom of this page and interwikis at Wikidata (see [[Wikipedia:Wikidata]]) -->
== Usage ==
<pre>{{Template rating |1= |nocat= }}</pre>
This template marks the status of a template as one of five levels:
* {{tlx|Template rating|pre-alpha}}
* {{tlx|Template rating|alpha}}
* {{tlx|Template rating|beta}}
* {{tlx|Template rating|release}}
* {{tlx|Template rating|protected}}
All parameter values are case-sensitive.
* <code>prealpha</code> and <code>pa</code> are aliases for <code>pre-alpha</code>.
* <code>a</code> is an alias for <code>alpha</code>.
* <code>b</code> is an alias for <code>beta</code>.
* <code>r</code>, <code>general</code> and <code>g</code> are aliases for <code>release</code>.
* <code>protect</code> and <code>p</code> are aliases for <code>protected</code>.
It also adds the template to one of five categories (unless the parameter <code>nocat</code> is set to <code>true</code>):
* {{clc|Templates in pre-alpha development}}
* {{clc|Templates in alpha}}
* {{clc|Templates in beta}}
* {{clc|Wikipedia template-protected templates}}
== TemplateData==
<templatedata>
{
"description": "Used to mark the status of a template as one of pre-alpha, alpha, beta, release, or protected",
"params": {
"1": {
"label": "Rating",
"description": "The rating level of the template",
"type": "string",
"required": true
},
"nocat": {
"label": "Nocat",
"description": "Suppress categories",
"type": "boolean",
"default": "no"
}
}
}
</templatedata>
<includeonly>{{sandbox other||
<!-- Categories below this line, please; interwikis at Wikidata -->
[[Category:Template namespace templates|Rating]]
}}</includeonly>
lj0ln36nyxvinfeg5upfidqk3c2pvui
Ta̱mpi̱let:Bu nwuan
10
1976
15813
15810
2022-08-12T09:11:39Z
Kambai Akau
15
Kambai Akau shyei peji [[Ta̱mpi̱let:See also]] nat [[Ta̱mpi̱let:Bu nwuan]]: Di̱n Tyap
wikitext
text/x-wiki
<includeonly>{{#invoke:Labelled list hatnote|labelledList|See also}}</includeonly><noinclude>
{{documentation}}
<!-- Categories go on the /doc subpage, and interwikis go on Wikidata. -->
</noinclude>
dn9i3dv2bt8lqifr6vkbycoya78rnav
Ta̱mpi̱let:Bu nwuan/doc
10
1977
15820
15819
2022-08-12T09:21:57Z
Kambai Akau
15
wikitext
text/x-wiki
{{documentation subpage}}
{{used in system|in [[MediaWiki:wantedpages-summary]]}}
{{lua|Module:Labelled list hatnote}}
Á̱ nyia̱ ta̱m ma̱ng ta̱mpi̱let huni á̱ khwuk '''[[WP:Hatnotes|hatnotes]] ku ta̱fang a̱cyuang lyulyoot ghyáng ku byia̱ a̱meang a̱ni''' di̱ '''''[[Help:Section|ti̱tamm]] fam a̱za ati̱kut''''' (kang ma̱ng [[WP:LEAD|lead]] hu). Ku li a̱ni:
{{Bu nwuan|Ati̱kut}}
Do not use this template on top of a page, where hatnotes are for disambiguation and not for related topics (according to [[WP:RELATED]]). Do not use this template inside [[Wikipedia:Manual of Style/Layout#"See also" section|the ''"See also" section'']] at the end of an article, or for links to other articles or subsections of the same article within regular article text. Where subsections are linked to, [[Template:Section link]] may be suitable instead. For use on category pages, the corresponding template is [[Template:Category see also]].
Refer to the examples below to see how the template handles link targets containing section links and commas.
==Nyian ta̱m==
; Basic usage:
{{Bu nwuan|''wat1''|''wat2''|''wat3''|...}}
; All parameters:
{{Bu nwuan|''wat1''|''wat2''|''wat3''| ...
|label 1 = ''label 1''|label 2 = ''label2''|label 3 = ''label3''| ...
|l1 = ''label1''|l2 = ''label2''|l3 = ''label3''| ...
|selfref = ''ii''|sa = ''kaai''}}
==Parameters==
This template accepts the following parameters:
* <code>1</code>, <code>2</code>, <code>3</code>, ... – the pages to link to. At least one page name is required. Categories and files are automatically escaped with the [[Help:Colon trick|colon trick]], and links to sections are automatically formatted as ''page § section'', rather than the MediaWiki default of ''page#section''.
* <code>label 1</code>, <code>label 2</code>, <code>label 3</code>, ...; or <code>l1</code>, <code>l2</code>, <code>l3</code>, ...; optional labels for each of the pages to link to.
* <code>selfref</code> – if set to "yes", "y", "true" or "1", adds the CSS class "selfref". This is used to denote self-references to Wikipedia. See [[Template:Selfref]] for more information.
* <code>category</code> – if set to "no", "n", "false", or "0", suppresses the error tracking category ([[:Category:Hatnote templates with errors]]). This only has an effect if the first positional parameter (the page to link to) is omitted.
== Kídee ==
* <code><nowiki>{{Bu nwuan|Ati̱kut}}</nowiki></code> → {{But nwuan|Ati̱kut}}
* <code><nowiki>{{Bu nwuan|Ati̱kut#Tamm}}</nowiki></code> → {{Bu nwuan|Ati̱kut#Tamm}}
* <code><nowiki>{{Bu nwua |Ati̱kut#Tamm|label 1=Custom section label}}</nowiki></code> → {{Bu nwuan|Ati̱kut#Tamm|label 1=Custom section label}}
* <code><nowiki>{{See also|Article1|Article2|Article3}}</nowiki></code> → {{See also|Article1|Article2|Article3}}
* <code><nowiki>{{See also|Article1|Article,2|Article3}}</nowiki></code> → {{See also|Article1|Article,2|Article3}}
* <code><nowiki>{{See also|Article1|l1=Custom label 1|Article2|l2=Custom label 2}}</nowiki></code> → {{See also|Article1|l1=Custom label 1|Article2|l2=Custom label 2}}
* <code><nowiki>{{See also|Veni, vidi, vici|Julius Caesar}}</nowiki></code> → {{See also|Veni, vidi, vici|Julius Caesar}}
* <code><nowiki>{{See also|Veni, vidi, vici|Julius Caesar#Civil war}}</nowiki></code> → {{See also|Veni, vidi, vici|Julius Caesar#Civil war}}
* <code><nowiki>{{See also|Julius Caesar#Civil war|Veni, vidi, vici}}</nowiki></code> → {{See also|Julius Caesar#Civil war|Veni, vidi, vici}}
* <code><nowiki>{{See also|Julius Caesar#Civil war|Crossing the Rubicon}}</nowiki></code> → {{See also|Julius Caesar#Civil war|Crossing the Rubicon}}
==Errors==
If no page names are supplied, the template outputs the following message with the (help) wikilink pointing to the "Errors" section of this page:
*{{See also|category=no}}
If you see this error message, it is for one of three reasons:
# No parameters were specified (the template code was <code><nowiki>{{See also}}</nowiki></code> with no pipe character nor page to link to). Please use <code><nowiki>{{See also|</nowiki>''page''<nowiki>}}</nowiki></code> instead.
# Some parameters were specified, but no page names were included. For example, the template text <code><nowiki>{{See also|selfref=yes}}</nowiki></code> will produce this error. Please use (for example) <code><nowiki>{{See also|</nowiki>''page''<nowiki>|selfref=yes}}</nowiki></code> instead.
# A page name was specified, but it contains an equals sign ("="). The equals sign has a special meaning in template code, and because of this it cannot be used in template parameters that do not specify a parameter name. For example, the template code <code><nowiki>{{See also|1+1=2|2+2=4}}</nowiki></code> will produce this error. To work around this, you can specify the parameter name explicitly by using <code>1=</code>, <code>2</code>, etc., before the page name, like this: <code><nowiki>{{See also|1=1+1=2|2=2+2=4}}</nowiki></code>.
If you see this error message and are unsure of what to do, please post a message on [[WP:HD|the help desk (WP:HD)]], and someone should be able to help you.
To see a list of wikilinks to articles that contain this error message, see the [[Wikipedia:Maintenance|maintenance category]]: [[:Category:Hatnote templates with errors]].
==TemplateData==
{{Collapse top|[[Wikipedia:TemplateData|TemplateData]] documentation used by [[Wikipedia:VisualEditor|VisualEditor]] and other tools}}
{{TemplateData header|noheader=1}}
<templatedata>
{
"description": "This template creates a hatnote to point to a small number of related pages. It is placed at the top of a section, directly underneath the section heading.",
"params": {
"1": {
"label": "Page 1",
"description": "The name of the first page that you want to link to.",
"type": "wiki-page-name",
"required": true,
"example": "Article name"
},
"2": {
"label": "Page 2",
"description": "The name of the second page that you want to link to.",
"type": "wiki-page-name",
"required": false
},
"3": {
"label": "Page 3",
"description": "The name of the third page that you want to link to. More pages can be added using the parameters \"4\", \"5\", \"6\", etc.",
"type": "wiki-page-name",
"required": false
},
"label 1": {
"label": "Label 1",
"type": "string",
"description": "What the first linked article is to be displayed as. ",
"aliases": [
"l1"
]
},
"label 2": {
"label": "Label 2",
"type": "string",
"description": "What the second linked article is to be displayed as.",
"aliases": [
"l2"
]
},
"label 3": {
"aliases": [
"l3"
],
"type": "string",
"label": "Label 3",
"description": "What the third linked article is to be displayed as. Other labels can be added by using increasing numbers (starting with \"label 4\" or \"l4\" for page 4) as parameter names."
},
"selfref": {
"type": "boolean",
"label": "Self reference",
"description": "Set to \"yes\" if the template is a self-reference to Wikipedia that would not make sense on mirrors or forks of the Wikipedia site.",
"example": "yes",
"default": "no"
},
"category": {
"label": "Category",
"description": "Set to \"no\", \"n\", \"false\", or \"0\" to suppresses the error tracking category (Category:Hatnote templates with errors). This only has an effect if no page names are specified.",
"type": "boolean",
"default": "yes",
"example": "no"
}
},
"format": "inline"
}
</templatedata>
{{Collapse bottom}}
==See also==
*{{tl|For}}
*{{tl|See also if exists}}
*{{tl|Template see also}}
*{{tl|Category see also}}
*{{tl|Main}}
*{{tl|See}} (redirect to {{tl|Further}})
*{{tl|Hatnote}}
{{Hatnote templates}}
<includeonly>{{Sandbox other||
<!-- Categories go here and interwikis go in Wikidata. -->
[[Category:Hatnote templates]]
[[Category:Related-topic templates]]
[[Category:Wikipedia page-section templates]]
[[Category:Wikipedia see also]]
}}</includeonly>
6b37adczsrms7wuce5xxvg5bt0nhb6c
Ta̱mpi̱let:Navbox/testcases
10
1978
15812
2022-08-12T09:10:15Z
Kambai Akau
15
Created page with "{{testcases notice}} Except for the side by side comparisons, these all use the <nowiki>{{</nowiki>[[Template:Navbox/sandbox|sandbox version]]<nowiki>}}</nowiki> of the {{tl|Navbox}} (and subsequently {{tl|Navbar}}) code; please ensure that all of them look correct here before saving sandbox tests to the live template. ==Basic tests== {{testcase table|_style=width:100% |name = {{FULLPAGENAME}} |state = uncollapsed |title = Simple Group/List Test |above = Above |below =..."
wikitext
text/x-wiki
{{testcases notice}}
Except for the side by side comparisons, these all use the <nowiki>{{</nowiki>[[Template:Navbox/sandbox|sandbox version]]<nowiki>}}</nowiki> of the {{tl|Navbox}} (and subsequently {{tl|Navbar}}) code; please ensure that all of them look correct here before saving sandbox tests to the live template.
==Basic tests==
{{testcase table|_style=width:100%
|name = {{FULLPAGENAME}}
|state = uncollapsed
|title = Simple Group/List Test
|above = Above
|below = Below
|group1 = Group1
|list1 = List1
|group2 = Group2
|list2 = List2
|group3 = Group3
|list3 = List3
}}
{{testcase table|_style=width:100%
|bodyclass = vcard
|name = {{FULLPAGENAME}}
|state = uncollapsed
|title = Simple List Only Test
|titleclass = fn org
|above = Above
|below = Below
|list1 = List1
|list2 = List2
|list3 = List3
}}
{{testcase table|_style=width:100%
|name = {{FULLPAGENAME}}
|state = uncollapsed
|title = Simple 1 List Only Test
|list1 = List1
}}
{{testcase table|_style=width:100%
|name = {{FULLPAGENAME}}
|state = uncollapsed
|title = Mixed Groups/Lists Test
|above = Above
|below = Below
|group1 = Group1
|list1 = List1
|list2 = List2
|group3 = Group3
|list3 = List3
}}
{{testcase table|_style=width:100%
|name = {{FULLPAGENAME}}
|image = [[File:Flag of the United States.svg|100px]]
|state = uncollapsed
|title = Image Test
|above = Above
|below = Below
|group1 = Group1
|list1 = List1
|group2 = Group2
|list2 = List2
|group3 = Group3
|list3 = List3
}}
{{testcase table|_style=width:100%
|name = {{FULLPAGENAME}}
|image = [[File:Flag of the United States.svg|100px]]
|state = uncollapsed
|title = Image No Groups Test
|above = Above
|below = Below
|list1 = List1
|list2 = List2
|list3 = List3
}}
{{testcase table|_style=width:100%
|name = {{FULLPAGENAME}}
|imageleft = [[File:Flag of the United States.svg|100px]]
|state = uncollapsed
|title = Left Image Test
|above = Above
|below = Below
|group1 = Group1
|list1 = List1
|group2 = Group2
|list2 = List2
|group3 = Group3
|list3 = List3
}}
{{testcase table|_style=width:100%
|name = {{FULLPAGENAME}}
|imageleft = [[File:Flag of the United States.svg|100px]]
|state = uncollapsed
|title = Left Image, No Groups Test
|above = Above
|below = Below
|list1 = List1
|list2 = List2
|list3 = List3
}}
{{testcase table|_style=width:100%
|name = {{FULLPAGENAME}}
|image = [[File:Flag of the United States.svg|100px]]
|imageleft = [[File:Flag of the United States.svg|100px]]
|state = uncollapsed
|title = Both Images Test
|above = Above
|below = Below
|group1 = Group1
|list1 = List1
|group2 = Group2
|list2 = List2
|group3 = Group3
|list3 = List3
}}
{{testcase table|_style=width:100%
|name = {{FULLPAGENAME}}
|image = [[File:Flag of the United States.svg|100px]]
|imageleft = [[File:Flag of the United States.svg|100px]]
|state = uncollapsed
|title = Both Images, No Groups Test
|above = Above
|below = Below
|list1 = List1
|list2 = List2
|list3 = List3
}}
==Subgroup tests==
{{Navbox/sandbox
|name = {{FULLPAGENAME}}
|image = [[File:Flag of the United States.svg|100px]]
|state = uncollapsed
|title = Simple Subgroup Test
|above = Above
|below = Below
|group1 = Group1
|list1 = List1
|group2 = Group2
|list2 =
{{Navbox/sandbox|child
|evenodd = swap
|group1 = Group1
|list1 = List1
|group2 = Group2
|list2 = List2
|group3 = Group3
|list3 = List3
}}
|group3 = Group3
|list3 = List3
}}
{{Navbox/sandbox
|name = {{FULLPAGENAME}}
|image = [[File:Flag of the United States.svg|100px]]
|state = uncollapsed
|title = Subgroup without all Groups Test
|above = Above
|below = Below
|group1 = Group1
|list1 = List1
|group2 = Group2
|list2 =
{{Navbox/sandbox|child
|evenodd = swap
|list1 = List1
|group2 = Group2
|list2 = List2
|group3 = Group3
|list3 = List3
|list4 = List4
|list5 = List5
}}
|group3 = Group3
|list3 = List3
}}
{{Navbox/sandbox
|name = {{FULLPAGENAME}}
|image = [[File:Flag of the United States.svg|100px]]
|state = uncollapsed
|title = Multiple Subgroup Test
|above = Above
|below = Below
|group1 = Group1
|list1 = List1
|group2 = Group2
|list2 =
{{Navbox/sandbox|child
|evenodd = swap
|group1 = Subgroup1
|list1 = List1
|group2 = Subgroup2
|list2 = List2
|group3 = Subgroup3
|list3 = List3
}}
|group3 = Group3
|list3 =
{{Navbox/sandbox|child
|group1 = Group1
|list1 = List1
|group2 = Group2
|list2 = List2
|group3 = Group3
|list3 = List3
}}
}}
{{Navbox/sandbox
|name = {{FULLPAGENAME}}
|image = [[File:Flag of the United States.svg|100px]]
|state = uncollapsed
|title = NestedSubgroup Test
|above = Above
|below = Below
|group1 = Group1
|list1 = List1
|group2 = Group2
|list2 =
{{Navbox/sandbox|child
|evenodd = swap
|group1 = Group1
|list1 = List1
|group2 = Group2
|list2 =
{{Navbox/sandbox|child
|group1 = Group1
|list1 = List1
|group2 = Group2
|list2 = List2
|group3 = Group3
|list3 = List3
}}
|group3 = Group3
|list3 = List3
}}
|group3 = Group3
|list3 =
{{Navbox/sandbox|child
|group1 = Group1
|list1 = List1
|group2 = Group2
|list2 = List2
|group3 = Group3
|list3 = List3
}}
}}
{{Navbox/sandbox
|name = {{FULLPAGENAME}}
|image = [[File:Flag of the United States.svg|100px]]
|state = uncollapsed
|title = Nested Collapsible Subgroup Test
|above = Above
|below = Below
|group1 = Group1
|list1 = List1
|group2 = Group2
|list2 =
{{Navbox/sandbox|child
|state = uncollapsed
|title = Nested Subgroup
|group1 = Group1
|list1 = List1
|group2 = Group2
|list2 = List2
|group3 = Group3
|list3 = List3
|group4 = Group4
|list4 = List4
}}
|group3 = Group3
|list3 = List3
}}
{{Navbox/sandbox
|name = {{FULLPAGENAME}}
|image = [[File:Flag of the United States.svg|100px]]
|state = uncollapsed
|title = Nested Collapsible Subgroup with Image and VDE Test
|above = Above
|below = Below
|group1 = Group1
|list1 = List1
|group2 = Group2
|list2 =
{{Navbox/sandbox|child
|state = uncollapsed
|name = {{FULLPAGENAME}}
|image = [[File:Flag of the United States.svg|100px]]
|title = Nested Subgroup
|group1 = Group1
|list1 = List1
|group2 = Group2
|list2 = List2
|group3 = Group3
|list3 = List3
|group4 = Group4
|list4 = List4
}}
|group3 = Group3
|list3 =
{{Navbox/sandbox|child
|group1 = Group1
|list1 = List1
|group2 = Group2
|list2 = List2
|group3 = Group3
|list3 = List3
}}
}}
{{Navbox/sandbox
|name = {{FULLPAGENAME}}
|image = [[File:Flag of the United States.svg|100px]]
|state = uncollapsed
|title = Test title
|above = Above
|below = Below
|group1 = Group1
|list1 = List1
|group2 = Group2
|list2 = List2
|group3 = Group3
|list3 =
{{Navbox/sandbox|child
|state = uncollapsed
|title = Title
|navbar = plain
|above = Above
|below = Below
|group1 = Group3.1
|list1 = List3.1
|group2 = Group3.1
|list2 = List3.1
|group3 = Group3.2
|list3 =
{{Navbox/sandbox|child
|group1 = Group3.2.1
|list1 = List3.2.1
|group2 = Group3.2.2
|list2 = List3.2.2
|group3 = Group3.2.3
|list3 = List3.2.3
}}
}}
|group4 = Group4
|list4 = List4
|group5 = Group5
|list5 =
{{Navbox/sandbox|child
|group1 = Group5.1
|list1 = List5.1
|group2 = Group5.2
|list2 = List5.2
|group3 = Group5.3
|list3 = List5.3
}}
}}
==Container tests==
{{Navbox/sandbox
|title = Container test
|name = {{FULLPAGENAME}}
|state = expanded
|list1 =
{{Navbox/sandbox|child
|image = [[File:Flag of the United States.svg|100px]]
|title = Test title1
|group1 = Group1
|list1 = List1
|group2 = Group2
|list2 = List2
|group3 = Group3
|list3 = List3
}}
|list2 =
{{Navbox/sandbox|child
|image = [[File:Flag of Canada.svg|100px]]
|title = Test title2
|group1 = Group1
|list1 = List1
|group2 = Group2
|list2 = List2
|group3 = Group3
|list3 = List3
}}
|list3 =
{{Navbox/sandbox|child
|image = [[File:Flag of Mexico.svg|100px]]
|title = Test title3
|group1 = Group1
|list1 = List1
|group2 = Group2
|list2 = List2
|group3 = Group3
|list3 = List3
}}
}}
{{Navbox/sandbox
|title = Container test 2
|name = {{FULLPAGENAME}}
|state = uncollapsed
|list1 =
{{Navbox/sandbox|child
|image = [[File:Flag of the United States.svg|100px]]
|title = Test title1
|above = Above
|below = Below
|group1 = Group1
|list1 = List1
|group2 = Group2
|list2 = List2
|group3 = Group3
|list3 = List3
}}
|list2 =
{{Navbox/sandbox|child
|image = [[File:Flag of Canada.svg|100px]]
|title = Test title2
|above = Above
|below = Below
|group1 = Group1
|list1 = List1
|group2 = Group2
|list2 = List2
|group3 = Group3
|list3 = List3
}}
|list3 =
{{Navbox/sandbox|child
|title = Test title3
|list1 = List1
|list2 = List2
|list3 = List3
}}
}}
{{Navbox/sandbox
|name = {{FULLPAGENAME}}
|title = [[File:Blason France moderne.svg|15px]] {{flagicon|FRA}} [[French colonial empires|French overseas empire]]
|titlestyle = {{{titlestyle|}}}
|state = uncollapsed
|listclass = hlist
|group1 = Former
|list1 = {{Navbox/sandbox|child
|list1 = {{Navbox/sandbox|child
|name = Former French colonies in Africa and the Indian Ocean
|state = collapsed
|title = [[French colonial empires|Former French colonies]] in [[Africa]] and the [[Indian Ocean]]
|groupstyle = background:lavender;
|group1 = [[Mahgreb]]
|list1 =
* [[French rule in Algeria|Algeria]]
* [[French Morocco|Morocco]]
** [[Arguin|Arguin Island]]
* [[History of Tunisia|Tunisia]]
|group2 = [[French West Africa]]
|list2 =
* [[History of Côte d'Ivoire#French Period|Côte d'Ivoire]]
* [[French Dahomey|Dahomey]]
* [[French Sudan]]
* [[French Guinea|Guinea]]
* [[History of Mauritania#French colonization and post-colonial history|Mauritania]]
* [[History of Niger#Colonization|Niger]]
* [[History of Senegal|Senegal]]
* [[French Upper Volta|Upper Volta]]
|group3 =
|list3 =
* [[French Togoland]]
* [[James Island (The Gambia)|James Island]]
|group4 = [[French Equatorial Africa]]
|list4 =
* [[Colonial Chad|Chad]]
* [[History of Gabon|Gabon]]
* [[History of the Republic of the Congo|Middle Congo]]
* [[Oubangui-Chari]]
|group5 = [[Comoros]]
|list5 =
* [[Anjouan]]
* [[Grande Comore]]
* [[Mohéli]]
|group6 =
|list6 =
* [[History of Djibouti#French interest|French Somaliland (Djibouti)]]
* [[History of Madagascar#French control|Madagascar]]
* [[Mauritius|Ile de France]]
* [[Seychelles]]
}}
|list2 = {{Navbox/sandbox|child
|name = Former French colonies in the Americas
|state = collapsed
|titlestyle =
|title = [[French colonial empires|Former French colonies]] in the [[Americas]]
|groupstyle =
|list1 =
* [[New France]]
** [[Acadia]]
** [[Louisiana (New France)|Louisiana]]
** [[Canada, New France|Canada]]
** [[Newfoundland (island)|Terre Neuve]] 1655–1763
|list2 =
* [[Inini]]
* [[Berbice]]
* [[Saint-Domingue]]
** [[Haiti]]
* [[Tobago]]
* [[History of the British Virgin Islands|Virgin Islands]]
* [[France Antarctique]]
* [[France Équinoxiale]]
|belowstyle =
|below = [[French West India Company]]
}}
|list3 = {{Navbox/sandbox|child
|name = Former French colonies in Asia and Oceania
|state = collapsed
|title = [[French colonial empires|Former French colonies]] in [[Asia]] and [[Oceania]]
|groupstyle =
|group1 = [[French India]]
|list1 =
* [[Chandernagor]]
* [[Coromandel Coast]]
* [[History of Chennai|Madras]]
* [[Mahé, India|Mahé]]
* [[History of Pondicherry|Pondichéry]]
* [[Karaikal]]
* [[Yanam (India)|Yanaon]]
|group2 = [[French Indochina]]
|list2 =
* [[Colonial Cambodia|Cambodia]]
* [[History of Laos to 1945#French Laos|Laos]]
* [[French Indochina|Vietnam]]
** [[Annam (French protectorate)|Annam]]
** [[Cochinchina]]|[[Tonkin]]
|group3 = Other Asian
|list3 =
* [[Alawite State|Alaouites]]
* [[Republic of Hatay|Alexandretta-Hatay]]
* [[Sri Lanka|Ceylon]]
* [[Kwangchowan]]
|group4 = [[Oceania]]
|list4 =
* [[New Hebrides]] ([[History of Vanuatu|Vanuatu]])
|belowstyle =
|below = [[French East India Company]]
}}
}}
|group2 = Present
|list2 = {{Navbox/sandbox|child
| name = French overseas departments and territories
| title = [[Overseas departments and territories of France]] [[File:Flag of France.svg|26px]]
| state = collapsed
| group1 = [[Overseas department]]s{{smallsup|1}}
| list1 =
* [[French Guiana]]
* [[Guadeloupe]]
* [[Martinique]]
* [[Réunion]]
| group2 = [[Overseas collectivity|Overseas collectivities]]
| list2 =
* [[French Polynesia]]
* [[Mayotte]]{{smallsup|2}}
* [[Saint Barthélemy]]
* [[Saint Martin (France)|Saint Martin]]
* [[Saint Pierre and Miquelon]]
* [[Wallis and Futuna]]
| group3 = Special status
| list3 =
* [[New Caledonia]]
| group4 = Uninhabited lands
| list4 =
* [[Clipperton Island]]
* [[French Southern and Antarctic Lands]]
| below = {{smallsup|1}} Also known as [[Overseas region|overseas regions]]. {{smallsup|2}} Claimed by [[Comoros]]. {{smallsup|3}} Claimed by [[Madagascar]]. {{smallsup|4}} Claimed by [[Seychelles]]. {{smallsup|5}} Claimed by [[Mauritius]].
| belowstyle = font-size:90%
}}
}}
==Style tests==
{{Navbox/sandbox
|name = {{FULLPAGENAME}}
|image = [[File:Flag of the United States.svg|100px]]
|state = uncollapsed
|title = Test title
|above = Above
|below = Below
|style = background:purple;
|basestyle = background:magenta;color:white;
|titlestyle = background:red; color:white;
|abovestyle = background:green; color:white;
|belowstyle = background:blue; color:white;
|liststyle = border-color:purple;
|group1style = background:blue;
|list1style = background:magenta;
|group1 = Group1
|list1 = List1
|group2style = background:yellow;
|list2style = background:black;color:white;
|group2 = Group2
|list2 = List2
|group3style = background:orange; color:green;
|group3 = Group3
|list3 =
{{Navbox/sandbox|child
|style = background:purple;
|basestyle = background:cyan;
|liststyle = background:yellow;border-color:purple;
|group1style = background:purple;
|list1style = background:red; color:white;
|group1 = Group3.1
|list1 = List3.1
|group2 = Group3.2
|list2 = List3.2
|group3 = Group3.3
|list3 =
{{Navbox/sandbox|child
|state = uncollapsed
|image = [[File:Flag of Canada.svg|100px]]
|style = background:purple;
|basestyle = background:blue;color:white;
|evenstyle = background:cyan;
|oddstyle = background:red;color:white;
|liststyle = border-color:purple;
|title = Title 3.3
|above = Above 3.3
|below = Below 3.3
|group1 = Group3.3.1
|list1 = List3.3.1
|group2 = Group3.3.2
|list2 = List3.3.2
}}
}}
|list4style = background:purple;color:white;
|group4 = Group4
|list4 = List4
|group5 = Group5
|list5 =
{{Navbox/sandbox|child
|title = Test title
|state = uncollapsed
|style = background:purple;
|basestyle = background:red;color:white;
|liststyle = border-color:purple;
|evenstyle = background:yellow;
|oddstyle = background:green;
|group1 = Group5.1
|list1 = List5.1
|group2 = Group5.2
|list2 = List5.2
|group3 = Group5.3
|list3 = List5.3
}}
}}
{{Navbox/sandbox
|name = {{FULLPAGENAME}}
|state = uncollapsed
|title = All Styles Test
|above = Above
|below = Below
|imageleft = [[File:Flag of the United States.svg|100px]]
|image = [[File:Flag of the United States.svg|100px]]
|imagestyle = background:purple;
|imageleftstyle = background:cyan;
|basestyle = font-size:110%;color:white;
|titlestyle = background:blue;
|abovestyle = background:red;
|belowstyle = background:green;
|groupstyle = color:white;
|groupevenstyle = font-weight:normal;
|groupoddstyle = color:silver;
|liststyle = color:white;
|evenstyle = font-size:110%;
|oddstyle = font-size:90%;
|group1style = background:blue;
|group2style = background:green;
|group3style = background:red;
|group4style = background:magenta;
|group5style = background:yellow;
|group6style = background:blue;
|group7style = background:green;
|group8style = background:red;
|group9style = background:magenta;
|group10style = background:yellow;
|group11style = background:blue;
|group12style = background:green;
|group13style = background:red;
|group14style = background:magenta;
|group15style = background:yellow;
|group16style = background:blue;
|group17style = background:green;
|group18style = background:red;
|group19style = background:magenta;
|group20style = background:yellow;
|list1style = background:blue;
|list2style = background:green;
|list3style = background:red;
|list4style = background:magenta;
|list5style = background:yellow;
|list6style = background:blue;
|list7style = background:green;
|list8style = background:red;
|list9style = background:magenta;
|list10style = background:yellow;
|list11style = background:blue;
|list12style = background:green;
|list13style = background:red;
|list14style = background:magenta;
|list15style = background:yellow;
|list16style = background:blue;
|list17style = background:green;
|list18style = background:red;
|list19style = background:magenta;
|list20style = background:yellow;
|group1 = Group1
|list1 = List1
|group2 = Group2
|list2 = List2
|group3 = Group3
|list3 = List3
|group4 = Group4
|list4 = List4
|group5 = Group5
|list5 = List5
|group6 = Group6
|list6 = List6
|group7 = Group7
|list7 = List7
|group8 = Group8
|list8 = List8
|group9 = Group9
|list9 = List9
|group10 = Group10
|list10 = List10
|group11 = Group11
|list11 = List11
|group12 = Group12
|list12 = List12
|group13 = Group13
|list13 = List13
|group14 = Group14
|list14 = List14
|group15 = Group15
|list15 = List15
|group16 = Group16
|list16 = List16
|group17 = Group17
|list17 = List17
|group18 = Group18
|list18 = List18
|group19 = Group19
|list19 = List19
|group20 = Group20
|list20 = List20
}}
{{Navbox/sandbox
|name = {{FULLPAGENAME}}
|state = uncollapsed
|title = "basestyle = background:red;color:white;" Test
|basestyle = background:red;color:white;
|above = Above
|below = Below
|group1 = Group1
|list1 = List1
|group2 = Group2
|list2 = List2
|group3 = Group3
|list3 = List3
}}
{{testcase table|_style=width:100%
|name = {{FULLPAGENAME}}
|state = uncollapsed
|title = Old-fashioned nested table wrapper styles
|style = width:auto; min-width:10em;
|above = Above
|below = Below
|group1 = Group1
|list1 = List1
|group2 = Group2
|list2 = List2
|group3 = Group3
|list3 = List3
}}
==Group width tests==
{{Navbox/sandbox
|name = {{FULLPAGENAME}}
|state = uncollapsed
|title = Groupwidth = 10em Test
|groupstyle = width:10em;
|liststyle = width:auto;
|above = Above
|below = Below
|group1 = Group1
|list1 = List1, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test
|group2 = Group2
|list2 = List2
|group3 = Group3
|list3 = List3
}}
{{Navbox/sandbox
|name = {{FULLPAGENAME}}
|state = uncollapsed
|title = Groupwidth = 10em Test
|groupstyle = width:10em;
|liststyle = width:auto;
|imagestyle = width:1px;
|image = [[File:Flag of the United States.svg|100px]]
|above = Above
|below = Below
|group1 = Group1
|list1 = List1, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test
|group2 = Group2
|list2 = List2
|group3 = Group3
|list3 = List3
}}
{{Navbox/sandbox
|name = {{FULLPAGENAME}}
|state = uncollapsed
|title = Groupwidth = 10em Test
|groupstyle = width:10em;
|liststyle = width:auto;
|imageleftstyle = width:1px;
|imageleft = [[File:Flag of the United States.svg|100px]]
|above = Above
|below = Below
|group1 = Group1
|list1 = List1, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test
|group2 = Group2
|list2 = List2
|group3 = Group3
|list3 = List3
}}
{{Navbox/sandbox
|name = {{FULLPAGENAME}}
|state = uncollapsed
|title = Groupwidth = 10em Test
|groupstyle = width:10em;
|liststyle = width:auto;
|imagestyle = width:1px;
|imageleftstyle = width:1px;
|image = [[File:Flag of the United States.svg|100px]]
|imageleft = [[File:Flag of the United States.svg|100px]]
|above = Above
|below = Below
|group1 = Group1
|list1 = List1, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test
|group2 = Group2
|list2 = List2
|group3 = Group3
|list3 = List3
}}
{{Navbox/sandbox
|name = {{FULLPAGENAME}}
|state = uncollapsed
|title = Multiple subgroups with "groupwidth = 7em"
|above = Above
|below = Below
|group1 = Group1
|list1 =
{{Navbox/sandbox|child
|name = {{FULLPAGENAME}}
|state = uncollapsed
|groupstyle = width:7em;
|liststyle = width:auto;
|group1 = Group1
|list1 = List1, test, test, test, test, test, test
|group2 = Group2
|list2 = List2, test, test, test, test, test, test
|group3 = Group3
|list3 = List3, test, test, test, test, test, test
}}
|group2 = Group2
|list2 = List2
|group3 = Group3
|list3 =
{{Navbox/sandbox|child
|name = {{FULLPAGENAME}}
|state = uncollapsed
|groupstyle = width:7em;
|liststyle = width:auto;
|group1 = Group1
|list1 = List1, test, test, test, test, test, test
|group2 = Group2
|list2 = List2, test, test, test, test, test, test
|group3 = Group3
|list3 = List3, test, test, test, test, test, test
}}
|group4 = Group4
|list4 = List4
}}
===Using new ''groupwidth'' parameter===
{{Navbox/sandbox
|name = {{FULLPAGENAME}}
|state = uncollapsed
|title = Groupwidth = 10em Test
|groupwidth=10em
|above = Above
|below = Below
|group1 = Group1
|list1 = List1, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test
|group2 = Group2
|list2 = List2
|group3 = Group3
|list3 = List3
}}
{{Navbox/sandbox
|name = {{FULLPAGENAME}}
|state = uncollapsed
|title = Groupwidth = 10em Test
|groupwidth=10em
|imagestyle = width:1px;
|image = [[File:Flag of the United States.svg|100px]]
|above = Above
|below = Below
|group1 = Group1
|list1 = List1, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test
|group2 = Group2
|list2 = List2
|group3 = Group3
|list3 = List3
}}
{{Navbox/sandbox
|name = {{FULLPAGENAME}}
|state = uncollapsed
|title = Groupwidth = 10em Test
|groupwidth=10em
|imageleftstyle = width:1px;
|imageleft = [[File:Flag of the United States.svg|100px]]
|above = Above
|below = Below
|group1 = Group1
|list1 = List1, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test
|group2 = Group2
|list2 = List2
|group3 = Group3
|list3 = List3
}}
{{Navbox/sandbox
|name = {{FULLPAGENAME}}
|state = uncollapsed
|title = Groupwidth = 10em Test
|groupwidth=10em
|imagestyle = width:1px;
|imageleftstyle = width:1px;
|image = [[File:Flag of the United States.svg|100px]]
|imageleft = [[File:Flag of the United States.svg|100px]]
|above = Above
|below = Below
|group1 = Group1
|list1 = List1, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test
|group2 = Group2
|list2 = List2
|group3 = Group3
|list3 = List3
}}
{{Navbox/sandbox
|name = {{FULLPAGENAME}}
|state = uncollapsed
|title = Multiple subgroups with "groupwidth = 7em"
|above = Above
|below = Below
|group1 = Group1
|list1 =
{{Navbox/sandbox|child
|name = {{FULLPAGENAME}}
|state = uncollapsed
|groupwidth=7em
|group1 = Group1
|list1 = List1, test, test, test, test, test, test
|group2 = Group2
|list2 = List2, test, test, test, test, test, test
|group3 = Group3
|list3 = List3, test, test, test, test, test, test
}}
|group2 = Group2
|list2 = List2
|group3 = Group3
|list3 =
{{Navbox/sandbox|child
|name = {{FULLPAGENAME}}
|state = uncollapsed
|groupwidth=7em
|group1 = Group1
|list1 = List1, test, test, test, test, test, test
|group2 = Group2
|list2 = List2, test, test, test, test, test, test
|group3 = Group3
|list3 = List3, test, test, test, test, test, test
}}
|group4 = Group4
|list4 = List4
}}
{{Navbox
|name = {{FULLPAGENAME}}
|state = uncollapsed
|title = Multiple live subgroups with "groupwidth = 7em"
|above = Above
|below = Below
|group1 = Group1
|list1 =
{{Navbox|child
|name = {{FULLPAGENAME}}
|state = uncollapsed
|groupwidth=7em
|group1 = Group1
|list1 = List1, test, test, test, test, test, test
|group2 = Group2
|list2 = List2, test, test, test, test, test, test
|group3 = Group3
|list3 = List3, test, test, test, test, test, test
}}
|group2 = Group2
|list2 = List2
|group3 = Group3
|list3 =
{{Navbox|child
|name = {{FULLPAGENAME}}
|state = uncollapsed
|groupwidth=7em
|group1 = Group1
|list1 = List1, test, test, test, test, test, test
|group2 = Group2
|list2 = List2, test, test, test, test, test, test
|group3 = Group3
|list3 = List3, test, test, test, test, test, test
}}
|group4 = Group4
|list4 = List4
}}
==Navbar and state tests==
{{testcase table|_style=width:100%
|name = {{FULLPAGENAME}}
|state = plain
|title = "state = plain" Test
|image = [[File:Flag of the United States.svg|100px]]
|above = Above
|below = Below
|group1 = Group1
|list1 = List1
|group2 = Group2
|list2 = List2
|group3 = Group3
|list3 = List3
}}
{{testcase table|_style=width:100%
|name = {{FULLPAGENAME}}
|state = uncollapsed
|navbar = plain
|title = "navbar = plain" Test
|image = [[File:Flag of the United States.svg|100px]]
|above = Above
|below = Below
|group1 = Group1
|list1 = List1
|group2 = Group2
|list2 = List2
|group3 = Group3
|list3 = List3
}}
{{testcase table|_style=width:100%
|name = {{FULLPAGENAME}}
|state = plain
|navbar = plain
|title = "state = plain" and "navbar = plain" Test
|image = [[File:Flag of the United States.svg|100px]]
|above = Above
|below = Below
|group1 = Group1
|list1 = List1
|group2 = Group2
|list2 = List2
|group3 = Group3
|list3 = List3
}}
{{testcase table|_style=width:100%
|name = {{FULLPAGENAME}}
|state = off
|title = "state = off" Test
|image = [[File:Flag of the United States.svg|100px]]
|above = Above
|below = Below
|group1 = Group1
|list1 = List1
|group2 = Group2
|list2 = List2
|group3 = Group3
|list3 = List3
}}
{{testcase table|_style=width:100%
|name = {{FULLPAGENAME}}
|state = uncollapsed
|navbar = off
|title = "navbar = off" Test
|image = [[File:Flag of the United States.svg|100px]]
|above = Above
|below = Below
|group1 = Group1
|list1 = List1
|group2 = Group2
|list2 = List2
|group3 = Group3
|list3 = List3
}}
{{testcase table|_style=width:100%
|name = {{FULLPAGENAME}}
|state = off
|navbar = plain
|title = "state = off" and "navbar = plain" Test
|image = [[File:Flag of the United States.svg|100px]]
|above = Above
|below = Below
|group1 = Group1
|list1 = List1
|group2 = Group2
|list2 = List2
|group3 = Group3
|list3 = List3
}}
{{testcase table|_style=width:100%
|name = {{FULLPAGENAME}}
|state = plain
|navbar = off
|title = "state = plain" and "navbar = off" Test
|image = [[File:Flag of the United States.svg|100px]]
|above = Above
|below = Below
|group1 = Group1
|list1 = List1
|group2 = Group2
|list2 = List2
|group3 = Group3
|list3 = List3
}}
{{testcase table|_style=width:100%
|name = {{FULLPAGENAME}}
|state = off
|navbar = off
|title = "state = off" and "navbar = off" Test
|image = [[File:Flag of the United States.svg|100px]]
|above = Above
|below = Below
|group1 = Group1
|list1 = List1
|group2 = Group2
|list2 = List2
|group3 = Group3
|list3 = List3
}}
{{testcase table|_style=width:100%
|state = uncollapsed
|title = Missing "name" parameter
|image = [[File:Flag of the United States.svg|100px]]
|above = Above
|below = Below
|group1 = Group1
|list1 = List1
|group2 = Group2
|list2 = List2
|group3 = Group3
|list3 = List3
}}
{{testcase table|_style=width:100%
|name = {{FULLPAGENAME}}
|title = Box-shadow Test
|titlestyle = {{box-shadow border|a|red|2px}}
|image = [[File:Flag of the United States.svg|100px]]
|above = Above
|below = Below
|group1 = Group1
|list1 = List1
|group2 = Group2
|list2 = List2
|group3 = Group3
|list3 = List3
}}
==Titlegroup tests==
{{Navbox/sandbox
|name = {{FULLPAGENAME}}
|state = uncollapsed
|title = Simple Titlegroup Test
|titlegroup = Titlegroup
|above = Above
|below = Below
|group1 = Group1
|list1 = List1
|group2 = Group2
|list2 = List2
|group3 = Group3
|list3 = List3
}}
{{Navbox/sandbox
|name = {{FULLPAGENAME}}
|state = uncollapsed
|title = Titlegroup Test with Image
|image = [[File:Flag of the United States.svg|100px]]
|titlegroup = Titlegroup
|above = Above
|below = Below
|group1 = Group1
|list1 = List1
|group2 = Group2
|list2 = List2
|group3 = Group3
|list3 = List3
}}
{{Navbox/sandbox
|name = {{FULLPAGENAME}}
|state = uncollapsed
|title = </span><div style="float:right;width:0px;padding:1px;"></div><div style="float:right;width:10em;padding:0em 1em;"> </div><span style="font-size:110%;">Titlegroup, group width = 10em, with Centered Title
|image = [[File:Flag of the United States.svg|100px]]
|groupstyle = width:10em;
|liststyle = width:auto;
|titlestyle = width:auto;
|imagestyle = width:1px;
|titlegroup = Titlegroup
|above = Above
|below = Below
|group1 = Group1
|list1 = List1, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test
|group2 = Group2
|list2 = List2
|group3 = Group3
|list3 = List3
}}
==Missing parameter tests==
{{testcase table|_style=width:100%
|name = {{FULLPAGENAME}}
|state = uncollapsed
|title = Missing List1 Test
|image = [[File:Flag of the United States.svg|100px]]
|above = Above
|below = Below
|group2 = Group2
|list2 = List2
|group3 = Group3
|list3 = List3
}}
{{testcase table|_style=width:100%
|name = {{FULLPAGENAME}}
|state = uncollapsed
|title = Missing List1 and List2 Test
|image = [[File:Flag of the United States.svg|100px]]
|above = Above
|below = Below
|group3 = Group3
|list3 = List3
|group7 = Group7
|list7 = List7
}}
{{testcase table|_style=width:100%
|name = {{FULLPAGENAME}}
|state = uncollapsed
|title = No Groups/Lists
|above = Above
|below = Below
}}
{{testcase table|_style=width:100%
|name = {{FULLPAGENAME}}
|state = uncollapsed
|image = [[File:Flag of the United States.svg|100px]]
|above = No title (this is the Above pane)
|below = Below
|group1 = Group1
|list1 = List1
|group2 = Group2
|list2 = List2
|group3 = Group3
|list3 = List3
}}
{{testcase table|_style=width:100%
|name = {{FULLPAGENAME}}
|state = uncollapsed
|above = No Groups/Lists/Title (this is the Above pane)
|below = Below
}}
{{testcase table|_style=width:100%
|name = {{FULLPAGENAME}}
|state = uncollapsed
|title = Nothing but title
}}
{{testcase table|_style=width:100%
|name = {{FULLPAGENAME}}
|state = uncollapsed
|group1 = One group
|list1 = One list
}}
==Row striping tests==
{{Navbox/sandbox
|name = {{FULLPAGENAME}}
|state = uncollapsed
|title = Striping Test with "evenodd = swap"
|above = Above
|below = Below
|group1 = Group1
|list1 = List1
|group2 = Group2
|list2 = List2
|group3 = Group3
|list3 = {{Navbox/sandbox|child
|group1 = Group3.1
|list1 = List3.1
|group2 = Group3.2
|list2 = List3.2
|group3 = Group4.3
|list3 = List4.3
}}
|group4 = Group4
|list4 = {{Navbox/sandbox|child
|evenodd = swap
|group1 = Group4.1
|list1 = List4.1
|group2 = Group4.2
|list2 = List4.2
|group3 = Group4.3
|list3 = List4.3
}}
|group5 = Group5
|list5 = List5
}}
{{Navbox/sandbox
|name = {{FULLPAGENAME}}
|state = uncollapsed
|title = Striping Test 2
|above = Above
|below = Below
|group1 = Group1
|list1 = List1
|group2 = Group2
|list2 = List2
|group3 = Group3
|list3 = {{Navbox/sandbox|child
|group1 = Group3.1
|list1 = {{Navbox/sandbox|child
|group1 = Group3.1.1
|list1 = Group3.1.1
|group2 = Group3.1.2
|list2 = Group3.1.2
|group3 = Group3.1.3
|list3 = List3.1.3
}}
|group2 = Group3.2
|list2 = {{Navbox/sandbox|child
|evenodd = swap
|group1 = Group3.2.1
|list1 = Group3.2.1
|group2 = Group3.2.2
|list2 = Group3.2.2
|group3 = Group3.2.3
|list3 = List3.2.3
}}
|group3 = Group3.3.1
|list3 = List3.3.1
}}
|group4 = Group4
|list4 = {{Navbox/sandbox|child
|evenodd = swap
|group1 = Group4.1
|list1 = {{Navbox/sandbox|child
|evenodd = swap
|group1 = Group4.1.1
|list1 = Group4.1.1
|group2 = Group4.1.2
|list2 = Group4.1.2
|group3 = Group4.1.3
|list3 = List4.1.3
}}
|group2 = Group4.2
|list2 = {{Navbox/sandbox|child
|group1 = Group4.2.1
|list1 = Group4.2.1
|group2 = Group4.2.2
|list2 = Group4.2.2
|group3 = Group4.2.3
|list3 = List4.2.3
}}
|group3 = Group4.3.1
|list3 = List4.3.1
|group4 = Group4.4.1
|list4 = List4.4.1
}}
}}
==Additional tests==
<div class="reflist">
# Test margin with references
# Second reference
# Third reference
</div>
{{Navbox/sandbox
|name = {{FULLPAGENAME}}
|title = Unlimited Groups/Lists test
|above = Above
|below = Below
|group1 = Group1
|list1 = List1
|group2 = Group2
|list2 = List2
|group3 = Group3
|list3 = List3
|group4 = Group4
|list4 = List4
|group5 = Group5
|list5 = List5
|group6 = Group6
|list6 = List6
|group7 = Group7
|list7 = List7
|group8 = Group8
|list8 = List8
|group9 = Group9
|list9 = List9
|group10 = Group10
|list10 = List10
|group11 = Group11
|list11 = List11
|group12 = Group12
|list12 = List12
|group13 = Group13
|list13 = List13
|group14 = Group14
|list14 = List14
|group15 = Group15
|list15 = List15
|group16 = Group16
|list16 = List16
|group17 = Group17
|list17 = List17
|group18 = Group18
|list18 = List18
|group19 = Group19
|list19 = List19
|list20 =
{{Navbox/sandbox|child
|evenodd = swap
|group1 = Group20
|list1 = List20
|group2 = Group21
|list2 = List21
|group3 = Group22
|list3 = List22
|group4 = Group23
|list4 = List23
|group5 = Group24
|list5 = List24
|group6 = Group25
|list6 = List25
|group7 = Group26
|list7 = List26
|group8 = Group27
|list8 = List27
|group9 = Group28
|list9 = List28
|group10 = Group29
|list10 = List29
|group11 = Group30
|list11 = List30
|group12 = Group31
|list12 = List31
|group13 = Group32
|list13 = List32
|group14 = Group33
|list14 = List33
|group15 = Group34
|list15 = List34
|group16 = Group35
|list16 = List35
|group17 = Group36
|list17 = List36
|group18 = Group37
|list18 = List37
|group19 = Group38
|list19 = List38
|list20 =
{{Navbox/sandbox|child
|group1 = Group39
|list1 = List39
|group2 = Group40
|list2 = List40
|group3 = Group41
|list3 = List41
|group4 = Group42
|list4 = List42
|group5 = Group43
|list5 = List43
|group6 = Group44
|list6 = List44
|group7 = Group45
|list7 = List45
|group8 = Group46
|list8 = List46
|group9 = Group47
|list9 = List47
|group10 = Group48
|list10 = List48
|group11 = Group49
|list11 = List49
|group12 = Group50
|list12 = List50
|group13 = Group51
|list13 = List51
|group14 = Group52
|list14 = List52
|group15 = Group53
|list15 = List53
|group16 = Group54
|list16 = List54
|group17 = Group55
|list17 = List55
|group18 = Group56
|list18 = List56
|group19 = Group57
|list19 = List57
|group20 = Group58
|list20 = List58
}}
}}
}}
{{Navbox/sandbox|none
|name = {{FULLPAGENAME}}
|state = uncollapsed
|title = "border = none"
|above = Above
|below = Below
|group1 = Group1
|list1 = List1
|group2 = Group2
|list2 = List2
|group3 = Group3
|list3 = List3
}}
==Using Navbox with columns / Navbox with collapsible groups==
{{Navbox with columns/sandbox
|name = {{FULLPAGENAME}}
|state = uncollapsed
|title = Navbox with columns simple test
|colstyle = text-align:center;
|fullwidth = true;
|colwidth = 15%
|col1width = 12%
|col2width = 13%
|col1 = Col1
|col2 = Col2
|col3 = Col3
|col4 = Col4
|col5 = Col5
|col6 = Col6
|col7 = Col7
}}
{{Navbox with columns/sandbox
|name = {{FULLPAGENAME}}
|state = uncollapsed
|title = Navbox with columns, single header test
|colstyle = text-align:center;
|colwidth = 15%
|col1width = 12%
|col2width = 13%
|col1headercolspan = 2
|col4headercolspan = 3
|col1header = Col1Header (span=2)
|col3header = Col3Header
|col4header = Col4Header (span=3)
|col7header = Col7Header
|col1 = Col1
|col2 = Col2
|col3 = Col3
|col4 = Col4
|col5 = Col5
|col6 = Col6
|col7 = Col7
}}
{{Navbox with columns/sandbox
|name = {{FULLPAGENAME}}
|state = uncollapsed
|title = Navbox with columns, multi-level header test
|colstyle = text-align:center;
|colwidth = 15%
|col1width = 12%
|col2width = 13%
|col1headercolspan = 2
|col3headerrowspan = 2
|col4headercolspan = 3
|col7headerrowspan = 2
|col1header = Col1Header
|col1header2 = Col1Header2
|col2header2 = Col2Header2
|col3header = Col3Header
|col4header = Col4Header
|col4header2 = Col4Header2
|col5header2 = Col5Header2
|col6header2 = Col6Header2
|col7header = Col7Header
|col1 = Col1
|col2 = Col2
|col3 = Col3
|col4 = Col4
|col5 = Col5
|col6 = Col6
|col7 = Col7
}}
{{Navbox with columns/sandbox
|name = {{FULLPAGENAME}}
|state = uncollapsed
|title = Navbox with columns nested in itself
|colstyle = text-align:center;
|col1width = 33%
|col2width = 17%
|col3width = 33%
|col4width = 17%
|col1header = Col1Header
|col2header = Col2Header
|col3header = Col3Header
|col4header = Col4Header
|col1 = {{Navbox with columns/sandbox|child
|colwidth = 50%
|colstyle = text-align:center;
|col1header = Col1.1Header
|col2header = Col1.2Header
|col1 = Col1.1
|col2 = Col1.2
}}
|col2 = Col2
|col3 = {{Navbox with columns/sandbox|child
|colwidth = 33%
|colstyle = text-align:center;
|col1header = Col3.1Header
|col2header = Col3.2Header
|col3header = Col3.3Header
|col1 = Col3.1
|col2 = Col3.2
|col3 = Col3.3
}}
|col4 = Col4
}}
{{Navbox with collapsible groups/sandbox
|name = {{FULLPAGENAME}}
|title = Navbox with collapsible groups (conversion of [[Template:Scouting|<span style="color:white">Template:Scouting</span>]])
|titlestyle = background:#7BA05B;color:ivory;
|groupstyle = background:lightgreen;
|listclass = hlist
|selected = {{{1|}}}
|group1 = [[:Category:Scouting|The Scouting Movement]]
|abbr1 = movement
|list1 =
* [[Scouting]]
* ''[[Scouting for Boys]]''
* [[Scout method]]
* [[Scout Law]]
* [[Scout Promise]]
* [[Scout Motto]]
* [[Wood Badge]]
* [[Age groups in Scouting and Guiding]]
* [[Cub Scout]]
* [[Boy Scout]]
* [[Rover Scout]]
* [[Brownie (Girl Guides)|Brownie]]
* [[Girl Guiding and Girl Scouting]]
* [[Ranger (Girl Guide)]]
* [[Jamboree (Scouting)|Jamboree]]
* [[Scout Leader]]
* [[World Organization of the Scout Movement|WOSM]]
* [[World Association of Girl Guides and Girl Scouts|WAGGGS]]
* [[Non-aligned Scouting and Scout-like organisations|Non-aligned organisations]]
* [[Scouting controversy and conflict]]
* [[Scouting in popular culture]]
* [[List of Scouts]]
* [[List of highest awards in Scouting]]
|group2 = [[:Category:Scouting in the United States|Scouting in the United States]]
|abbr2 = us
|list2 =
* [[Scouting in the United States]]
* [[Girl Scouts of the USA]]
* [[:Category:Local councils of the Girl Scouts of the USA|GSUSA Local Councils]]
* [[Girl Scout levels (USA)]]
* [[Boy Scouts of America]]
* [[Cub Scouting (Boy Scouts of America)|Cub Scouting]]
* [[Boy Scouting (Boy Scouts of America)|Boy Scouting]]
* [[Varsity Scouting (Boy Scouts of America)|Varsity Scouting]]
* [[Venturing (Boy Scouts of America)|Venturing BSA]]
* [[Sea Scouting (Boy Scouts of America)|Sea Scouting]]
* [[Order of the Arrow]]
* [[Advancement and recognition in the Boy Scouts of America|BSA Advancement & recognition]]
* [[Eagle Scout (Boy Scouts of America)|Eagle Scout]]
* [[List of Eagle Scouts (Boy Scouts of America)|Notable Eagle Scouts]]
* [[History of merit badges (Boy Scouts of America)|History of merit badges]]
* [[History of the Boy Scouts of America|History of the BSA]]
* [[Uniform and insignia of the Boy Scouts of America|BSA Uniform & insignia]]
* ''[[Boy Scout Handbook]]''
* [[:Category:Local councils of the Boy Scouts of America|BSA Local Councils]]
* [[Boy Scouts of America membership controversies|BSA membership controversies]]
|group3 = [[:Category:Scouting and Guiding in the United Kingdom|Scouting and Guiding in the United Kingdom]]
|abbr3= uk
|list3 =
* [[The Scout Association]]
* [[Girlguiding UK]]
* [[Beaver Scouts]]
* [[Cub Section (UK)]]
* [[Venture Scout]]
* [[Explorer Scouts]]
* [[Brownie (Girl Guides)]]
* [[Ranger (Girl Guide)]]
* [[Rainbow (Girl Guides)]]
* [[Scout Network]]
* [[Chief Scout (United Kingdom)]]
* [[Scout Counties]]
* [[Scout District]]
* [[Scout Section (UK)]]
* [[Scout Activity Centre]]
* [[Young Leaders (The Scout Association)|Young Leaders]]
|group4 = [[:Category:Scouting pioneers|Founders, pioneers, and notable leaders]]
|abbr4 = founders
|list4 =
* [[Robert Baden-Powell, 1st Baron Baden-Powell|Robert Baden-Powell]]
* [[Olave Baden-Powell]]
* [[Agnes Baden-Powell]]
* [[Daniel Carter Beard]]
* [[William D. Boyce]]
* [[Frederick Russell Burnham]]
* [[George Thomas Coker]]
* [[David Cossgrove]]
* [[Olga Drahonowska-Małkowska]]
* [[Charles Eastman]]
* [[Arthur Rose Eldred]]
* [[William Hillcourt]]
* [[Andrzej Małkowski]]
* [[Ernest Thompson Seton]]
* [[William Alexander Smith (Boys' Brigade)|William A. Smith]]
* [[James E. West (Scouting)|James E. West]]
* [[J. S. Wilson]]
|group5 = Prominent places
|abbr5 = places
|list5 =
* [[Baden-Powell House]]
* [[Brownsea Island Scout camp|Brownsea Island]]
* [[Edith Macy Conference Center]]
* [[Foxlease]]
* [[Gilwell Park]]
* [[Kandersteg International Scout Centre|Kandersteg]]
* [[Our Cabaña]]
* [[Our Chalet]]
* [[Pax Hill]]
* [[Pax Lodge]]
* [[Philmont Scout Ranch|Philmont]]
* [[Sangam World Girl Guide/Girl Scout Center|Sangam]]
|group6 = Other Scouting articles
|abbr6 = other
|list6 =
* [[:Category:Scouting organizations and associations|Scouting organizations and associations]]
* [[Mafeking Cadet Corps]]
* [[The Scout Association of Hong Kong]]
* [[South African Scout Association]]
* [[Scouts Canada]]
}}
{{Navbox with collapsible groups/sandbox
|name = {{FULLPAGENAME}}
|title = Navbox, Navbox with columns, and Navbox with collapsible groups together
|listclass = hlist
|selected = {{{1|}}}
|group1 = [[:Category:Scouting|The Scouting Movement]]
|abbr1 = movement
|list1 =
* [[Scouting]]
* ''[[Scouting for Boys]]''
* [[Scout method]]
* [[Scout Law]]
* [[Scout Promise]]
* [[Scout Motto]]
* [[Wood Badge]]
* [[Age groups in Scouting and Guiding]]
* [[Cub Scout]]
* [[Boy Scout]]
* [[Rover Scout]]
* [[Brownie (Girl Guides)|Brownie]]
* [[Girl Guiding and Girl Scouting]]
* [[Ranger (Girl Guide)]]
* [[Jamboree (Scouting)|Jamboree]]
* [[Scout Leader]]
* [[World Organization of the Scout Movement|WOSM]]
* [[World Association of Girl Guides and Girl Scouts|WAGGGS]]
* [[Non-aligned Scouting and Scout-like organisations|Non-aligned organisations]]
* [[Scouting controversy and conflict]]
* [[Scouting in popular culture]]
* [[List of Scouts]]
* [[List of highest awards in Scouting]]
|list2 = {{Navbox/sandbox|child
|state = collapsed
|title = [[French colonial empires|Former French colonies]] in [[Africa]] and the [[Indian Ocean]]
|titlestyle = background#
|groupstyle = background:lavender;
|group1 = [[Mahgreb]]
|list1 =
* [[French rule in Algeria|Algeria]]
* [[French Morocco|Morocco]] <small>([[Arguin|Arguin Island]])</small>
* [[History of Tunisia|Tunisia]]
|group2 = [[French West Africa]]
|list2 =
* [[History of Côte d'Ivoire#French Period|Côte d'Ivoire]]
* [[French Dahomey|Dahomey]]
* [[French Sudan]]
* [[French Guinea|Guinea]]
* [[History of Mauritania#French colonization and post-colonial history|Mauritania]]
* [[History of Niger#Colonization|Niger]]
* [[History of Senegal|Senegal]]
* [[French Upper Volta|Upper Volta]]
|group3 =
|list3 =
* [[French Togoland]]
* [[James Island (The Gambia)|James Island]]
|group4 = [[French Equatorial Africa]]
|list4 =
* [[Colonial Chad|Chad]]
* [[History of Gabon|Gabon]]
* [[History of the Republic of the Congo|Middle Congo]]
* [[Oubangui-Chari]]
|group5 = [[Comoros]]
|list5 =
* [[Anjouan]]
* [[Grande Comore]]
* [[Mohéli]]
|group6 =
|list6 =
* [[History of Djibouti#French interest|French Somaliland (Djibouti)]]
* [[History of Madagascar#French control|Madagascar]]
* [[Mauritius|Ile de France]]
* [[Seychelles]]
}}
|group3 = [[:Category:Scouting and Guiding in the United Kingdom|Scouting and Guiding in the United Kingdom]]
|abbr3 = uk
|list3 =
* [[The Scout Association]]
* [[Girlguiding UK]]
* [[Beaver Scouts]]
* [[Cub Section (UK)]]
* [[Venture Scout]]
* [[Explorer Scouts]]
* [[Brownie (Girl Guides)]]
* [[Ranger (Girl Guide)]]
* [[Rainbow (Girl Guides)]]
* [[Scout Network]]
* [[Chief Scout (United Kingdom)]]
* [[Scout Counties]]
* [[Scout District]]
* [[Scout Section (UK)]]
* [[Scout Activity Centre]]
* [[Young Leaders (The Scout Association)|Young Leaders]]
|list4 = {{Navbox with columns/sandbox|child
|title = Navbox with columns nested in itself
|colstyle = text-align:center;
|col1width = 33%
|col2width = 17%
|col3width = 33%
|col4width = 17%
|col1header = Col1Header
|col2header = Col2Header
|col3header = Col3Header
|col4header = Col4Header
|col1 = {{Navbox with columns/sandbox|child
|colwidth = 50%
|colstyle = text-align:center;
|col1header = Col1.1Header
|col2header = Col1.2Header
|col1 = Col1.1
|col2 = Col1.2
}}
|col2 = Col2
|col3 = {{Navbox with columns/sandbox|child
|colwidth = 33%
|colstyle = text-align:center;
|col1header = Col3.1Header
|col2header = Col3.2Header
|col3header = Col3.3Header
|col1 = Col3.1
|col2 = Col3.2
|col3 = Col3.3
}}
|col4 = Col4
}}
}}
==Span hack==
{{testcase table|_style=width:100%
|navbar = plain
|state = {{{state|collapsed}}}
|titlestyle = {{{titlestyle|}}}
|liststyle = padding:0px;font-size:111%;
|listpadding = 0px;
|title=Neil Blaney
|list1=
{{s-start}}
{{s-par|ie/oi}}
{{s-bef|before = [[Neal Blaney]]<br><small>([[Fianna Fáil]])</small>}}
{{s-ttl|title = [[Fianna Fáil]] [[Teachta Dála]] for [[Donegal East (Dáil Éireann constituency)|Donegal East]]
|years = 1948–1961}}
{{s-aft|after = Constituency abolished}}
{{s-bef|before = New constituency}}
{{s-ttl|title = [[Fianna Fáil]] [[Teachta Dála]] for [[Donegal North East (Dáil Éireann constituency)|Donegal North East]]
|years = 1961–1970}}
{{s-aft|after = Himself|as=[[Independent Fianna Fáil]] [[Teachta Dála]]}}
{{s-bef|before = Himself|as=[[Fianna Fáil]] [[Teachta Dála]]}}
{{s-ttl|title = [[Independent Fianna Fáil]] [[Teachta Dála]] for [[Donegal North East (Dáil Éireann constituency)|Donegal North East]]
|years = 1970–1977}}
{{s-aft|after = Constituency abolished}}
{{s-bef|before = New constituency}}
{{s-ttl|title = [[Independent Fianna Fáil]] [[Teachta Dála]] for [[Donegal (Dáil Éireann constituency)|Donegal]]
|years = 1977–1981}}
{{s-aft|after = Constituency abolished}}
{{s-bef|before = New constituency}}
{{s-ttl|title = [[Independent Fianna Fáil]] [[Teachta Dála]] for [[Donegal North East (Dáil Éireann constituency)|Donegal North East]]
|years = 1981–1995}}
{{s-aft|after = [[Cecilia Keaveney]]<br><small>([[Fianna Fáil]])</small>}}
{{s-off}}
{{s-bef|before = [[Michael Keyes]]}}
{{s-ttl|title = [[Minister for Posts and Telegraphs (Ireland)|Minister for Posts and Telegraphs]]
|years = 1957}}
{{s-aft|after = [[John Ormonde]]}}
{{s-bef|before = [[Patrick Smith (politician)|Paddy Smith]]}}
{{s-ttl|title = [[Minister for the Environment, Heritage and Local Government|Minister for Local Government]]
|years = 1957–1966}}
{{s-aft|after = [[Kevin Boland]]}}
{{s-bef|before = [[Charles Haughey]]}}
{{s-ttl|title = [[Minister for Agriculture, Fisheries and Food (Ireland)|Minister for Agriculture and Fisheries]]
|years = 1966–1970}}
{{s-aft|after = [[Jim Gibbons (Irish politician)|Jim Gibbons]]}}
{{s-hon}}
{{s-bef|before = [[Oliver J. Flanagan]]}}
{{s-ttl|title = [[Baby of the House#Baby of the Dáil|Baby of the Dáil]]
|years = 1948–1949}}
{{s-aft|after = [[William J. Murphy (Labour politician)|William J. Murphy]]}}
{{s-bef|before = [[Oliver J. Flanagan]]}}
{{s-ttl|title = [[Father of the Dáil]]
|years = 1987–1995}}
{{s-aft|after = [[Séamus Pattison]]}}
{{s-end}}
}}
== Lists with in-list images ==
{{testcase table|_style=width:100%
|name = {{FULLPAGENAME}}
|title = Example
| listclass = hlist
| group1 = group1
| list1 = [[File:Placeholder.svg|right|20px]]
* item1
* item2
* item3
| group2 = group2
| list2 =
* item5
* item6
* item7
}}
{{testcase table|_style=width:100%
|navbar = plain
|title = Example
| listclass = hlist
| group1 = group1
| list1 = [[File:Placeholder.svg|right|20px]]
* item1
* item2
* item3
| group2 = group2
| list2 =
* item5
* item6
* item7
}}
==Horizontal/plain lists==
{{testcase table|_style=width:100%
| name = {{FULLPAGENAME}}
| title = hlist & plainlist
| aboveclass = hlist
| listclass = hlist
| belowclass = hlist
| imageclass = plainlist
| imageleft =
* [[File:Ambox content.png|alt=|link=]]
* [[File:Ambox notice.png|alt=|link=]]
| image =
* [[File:Ambox content.png|alt=|link=]]
* [[File:Ambox notice.png|alt=|link=]]
| above =
* Item 1
** Item 1.1
** Item 1.2
* Item 2
** Item 2.1
** Item 2.2
| group1 = List 1
| list1 =
* Item 1
** Item 1.1
** Item 1.2
* Item 2
** Item 2.1
** Item 2.2
* Item 3
** Item 3.1
** Item 3.2
* Item 4
** Item 4.1
** Item 4.2
* Item 55
** Item 5.1
** Item 5.2
* Item 6
** Item 6.1
** Item 6.2
* Item 7
** Item 7.1
** Item 7.2
* Item 8
** Item 8.1
** Item 8.2
| group2 = List 2
| list2 =
* Item 1
** Item 1.1
** Item 1.2
* Item 2
** Item 2.1
** Item 2.2
* Item 3
** Item 3.1
** Item 3.2
* Item 4
** Item 4.1
** Item 4.2
* Item 5
** Item 5.1
** Item 5.2
* Item 6
** Item 6.1
** Item 6.2
* Item 7
** Item 7.1
** Item 7.2
* Item 8
** Item 8.1
** Item 8.2
| below =
* Item 1
** Item 1.1
** Item 1.2
* Item 2
** Item 2.1
** Item 2.2
}}
== Longterm: Div version ==
{{Navbox/div}}
8c9uf4sh86ucrxzn7cx2o6ofu494yvi
Ta̱mpi̱let:See also
10
1979
15814
2022-08-12T09:11:39Z
Kambai Akau
15
Kambai Akau shyei peji [[Ta̱mpi̱let:See also]] nat [[Ta̱mpi̱let:Bu nwuan]]: Di̱n Tyap
wikitext
text/x-wiki
#REDIRECT [[Ta̱mpi̱let:Bu nwuan]]
8nfv17wtrfkbytt90vcyp2hum0p16ws
Ta̱mpi̱let:See also/doc
10
1980
15816
2022-08-12T09:11:39Z
Kambai Akau
15
Kambai Akau shyei peji [[Ta̱mpi̱let:See also/doc]] nat [[Ta̱mpi̱let:Bu nwuan/doc]]: Di̱n Tyap
wikitext
text/x-wiki
#REDIRECT [[Ta̱mpi̱let:Bu nwuan/doc]]
8h1ls7x7628nunweuo48qsyx1cne8ge
Ta̱mpi̱let:Collapse top
10
1981
15821
2022-08-12T09:23:26Z
Kambai Akau
15
Created page with "<div style="margin-left:{{{indent|0}}}"><!-- NOTE: width renders incorrectly if added to main STYLE section --> {| <!-- Template:Collapse top --> class="mw-collapsible {{<includeonly>safesubst:</includeonly>#if:{{{expand|{{{collapse|}}}}}}||mw-collapsed}} {{{class|}}}" style="background: {{{bg1|transparent}}}; text-align: left; border: {{{border|1px}}} solid {{{b-color|Silver}}}; margin: 0.2em auto auto; width:{{<includeonly>safesubst:</includeonly>#if:{{{width|}}}|{{{wi..."
wikitext
text/x-wiki
<div style="margin-left:{{{indent|0}}}"><!-- NOTE: width renders incorrectly if added to main STYLE section -->
{| <!-- Template:Collapse top --> class="mw-collapsible {{<includeonly>safesubst:</includeonly>#if:{{{expand|{{{collapse|}}}}}}||mw-collapsed}} {{{class|}}}" style="background: {{{bg1|transparent}}}; text-align: left; border: {{{border|1px}}} solid {{{b-color|Silver}}}; margin: 0.2em auto auto; width:{{<includeonly>safesubst:</includeonly>#if:{{{width|}}}|{{{width}}}|100%}}; clear: {{{clear|both}}}; padding: 1px;"
|-
! style="background: {{{bg|#{{main other|F0F2F5|CCFFCC}}}}}; font-size:87%; padding:0.2em 0.3em; text-align:{{<includeonly>safesubst:</includeonly>#if:{{{left|}}}|left|{{<includeonly>safesubst:</includeonly>#if:{{{align|}}}|left|center}}}}; {{<includeonly>safesubst:</includeonly>#if:{{{fc|}}}|color: {{{fc}}};|}}" | <div style="font-size:115%;{{<includeonly>safesubst:</includeonly>#if:{{{left|}}}||margin:0 4em}}">{{{1|{{{title|{{{reason|{{{header|{{{heading|{{{result|Extended content}}}}}}}}}}}}}}}}}}</div>
{{<includeonly>safesubst:</includeonly>#if:{{{warning|{{{2|}}}}}}
|{{<includeonly>safesubst:</includeonly>!}}-
{{<includeonly>safesubst:</includeonly>!}} style="text-align:center; font-style:italic;" {{<includeonly>safesubst:</includeonly>!}} {{{2|The following is a closed discussion. {{strongbad|Please do not modify it.}} }}} }}
|-
| style="border: solid {{{border2|1px Silver}}}; padding: {{{padding|0.6em}}}; background: {{{bg2|White}}};" {{<includeonly>safesubst:</includeonly>!}}<noinclude>
{{lorem ipsum|3}}
{{Collapse bottom}}
{{Documentation}}
</noinclude>
7r1tuthlxr6p6uk1quv9ajwsic05cc1
Ta̱mpi̱let:Collapse top/doc
10
1982
15822
2022-08-12T09:26:06Z
Kambai Akau
15
Created page with "{{Documentation subpage}} <!-- Place categories where indicated at the bottom of this page and interwikis at Wikidata (see [[Wikipedia:Wikidata]]) --> {{used in system|in [[MediaWiki:Protect-text]]}} {{Template shortcut|Cot|Cob}} {{Template:Collapse Templates}} The {{tlx|collapse top}} template (or {{tlx|cot}}), and its paired template {{tlx|collapse bottom}} (or {{tlx|cob}}), are used for placing a collapse box around a talk page discussion, especially when the content..."
wikitext
text/x-wiki
{{Documentation subpage}}
<!-- Place categories where indicated at the bottom of this page and interwikis at Wikidata (see [[Wikipedia:Wikidata]]) -->
{{used in system|in [[MediaWiki:Protect-text]]}}
{{Template shortcut|Cot|Cob}}
{{Template:Collapse Templates}}
The {{tlx|collapse top}} template (or {{tlx|cot}}), and its paired template {{tlx|collapse bottom}} (or {{tlx|cob}}), are used for placing a collapse box around a talk page discussion, especially when the content contains complex wikimarkup such as tables. For very simple content, the one-piece template {{tlx|collapse}} can be used instead.
These templates should only be used in accordance with the [[Wikipedia:Refactoring]] guideline; they should never be used to end a discussion over the objections of other editors, except in cases of unambiguous disruptive editing.
Do not hide content in articles. This violates the {{Section link|Wikipedia:Manual of Style|Scrolling lists and collapsible content}} and [[Wikipedia:Accessibility]] guidelines.
== Usage ==
Place {{tlx|collapse top}} (or {{tlx|cot}}), and {{tlx|collapse bottom}} (or {{tlx|cob}}), around the text to be collapsed. For example:
<pre>{{collapse top|title=This is the title text}}
Sample contents text
{{collapse bottom}}</pre>
produces:
{{collapse top|title=This is the title text}}
Sample contents text
{{collapse bottom}}
{{tlx|collapse bottom}} should always be placed on its own line.
== Parameters ==
This template takes the following parameters, all of which are optional. They are case-sensitive. Those that take CSS measurements require them in CSS format (e.g. <code>{{mxt|1em}}</code> not <code>{{!mxt|1 em}}</code>.
;{{para|1}}, {{para|title}}, {{para|reason}}, {{para|header}}, {{para|heading}}, {{para|result}}<span style="font-weight: normal;">, or first unnamed parameter</span>: Will give the collapsed box a title, which occurs on the same line as the ''show'' link and is always visible. It defaults to "Extended content". For example, <code><nowiki>{{collapse top|title=This is the title text}}</nowiki></code> or <code><nowiki>{{collapse top|This is the title text}}</nowiki></code>. Note: The shorter, unnamed markup will not work if the title value contain an equals (<code>=</code>) character.
;{{para|warning|yes}}: Will display a default warning line under the main title which reads "The following is a closed debate. {{strongbad|Please do not modify it.}}" Any value supplied to this parameter will have this effect (i.e. {{para|warning|{{!mxt|no}}}} will not work as expected).
;{{para|2}}<span style="font-weight: normal;"> or second unnamed parameter</span>: This is optional warning-line text. It will override the standard warning line above; it is not necessary to also use {{para|warning|yes}} in this case, though doing so is harmless.
;{{para|left|yes}}: Will align the title along the left margin. By default, text is centered, specifically between the left edge of the green box and the left edge of the "show" link. Any value will enable this parameter (i.e. {{para|left|{{!mxt|no}}}} will not work as expected); nor is there a {{para|{{!mxt|right}}}} parameter.
;{{para|expand|yes}} <span style="font-weight: normal;">or</span> {{para|collapse|no}}: Will leave the material uncollapsed with the border and coloring. Default is to collapse the material. Any value will have this effect (i.e. {{para|expand|{{!mxt|no}}}} and {{para|collapse|{{!mxt|yes}}}} will not work as expected).
;{{para|bg}}: Sets the background color of the collapsed material. Defaults to <code>#CCFFCC</code>, a green hue. Named colors are listed at [[List of colors]]. For example, <code><nowiki>{{collapse top|This is the title text|bg=#F0F2F5}}</nowiki></code> or <code><nowiki>{{collapse top|This is the title text|bg=LightGrey}}</nowiki></code> (HTML color codes require the leading <code>#</code>).
;{{para|fc}}: Sets the font color of the title of the collapsible bar. Defaults to inheriting the current text color of the context. See {{para|bg}}, above, for details on color options.
;{{para|border}}: Sets the width of the border line on the collapsed material. defaults to <code>1px</code>. For example, <code><nowiki>{{collapse top|border=2px}}</nowiki></code>; going much thicker than this is not very useful.
;{{para|b-color}}: Sets the border color. defaults to <code>Silver</code> (<code>#C0C0C0</code>). See {{para|bg}}, above, for details on color options.
;{{para|padding}}: Sets the padding (distance from borders) on the collapsed material inside the colored area. Defaults to <code>0.6em</code>.
;{{para|width}}: Sets the width of the overall template relative to the page (or a block element containing the collapse box). This should virtually always be given as a percentage, e.g. {{para|width|50%}}, or in relative <samp>em</samp> units, e.g. {{para|width|30em}}. Pixel-based values should be avoided, as they are effectively meaningless – the result will be different depending on each user's browser and local CSS settings (which browser and operating system it is, zoom level, font sizes, etc.).
;{{para|border2}}: Sets the properties of the border of the box that appears when template is expanded; defaults to <code>1px Silver</code> (there is no provision to change from a solid line). For example, <code><nowiki>{{collapse top|border2=2px}}</nowiki></code> (only width or color will be changed if only one value is supplied). See {{para|bg}}, above, for details on color options.
;{{para|bg2}}: Sets the background color of the box that appears when template is expanded; defaults to <code>White</code> (<code>#FFFFFF</code>). See {{para|bg}}, above, for details on color options.
;{{para|indent}}: Indents the box from the left of the page. Defaults to no indentation. Each <code>:</code> in talk page markup is approximately equivalent to <code>1.6em</code> of indent (e.g., to match <code>::::</code> indentation level, use {{para|indent|6.4em}}. You can also use a percentage value. Pixel-based values should be avoided (see {{para|width}}, above, for why).
;{{para|clear}}: In some situations you may not want the default <code>clear: both;</code> CSS to apply, which puts the collapse box below any left- or right-floated content within the same HTML block. In this case, you can use {{para|clear|none}}, {{para|clear|right}}, or {{para|clear|left}}, as needed.
== Examples ==
* Adding a box title (if omitted, default is 'Extended content') – <code><nowiki>{{collapse top|This is the title text}}</nowiki></code>
{{collapse top|This is the title text}}
{{lorem ipsum}}
{{collapse bottom}}
* Adding a standard warning line – <code><nowiki>{{collapse top|This is the title text|warning=true}}</nowiki></code>
{{collapse top|This is the title text|warning=true}}
{{lorem ipsum}}
{{collapse bottom}}
* Adding a custom warning line – <code><nowiki>{{collapse top|This is the title text|This is a custom warning line}}</nowiki></code>
{{collapse top|This is the title text|This is a custom warning line}}
{{lorem ipsum}}
{{collapse bottom}}
* Aligning box title along left margin – <code><nowiki>{{collapse top|left=true}}</nowiki><!-- or {{collapse top|left=true}}--><nowiki></nowiki></code>
{{collapse top|left=true}}
{{lorem ipsum}}
{{collapse bottom}}
* Changing background color – <code><nowiki>{{collapse top|bg=#F0F2F5}}</nowiki></code>
{{collapse top|bg=#F0F2F5}}
{{lorem ipsum}}
{{collapse bottom}}
* Adding extra padding – <code><nowiki>{{collapse top|padding=5em}}</nowiki></code>
{{collapse top|padding=5em}}
{{lorem ipsum}}
{{collapse bottom}}
* Archiving a section: the markup below:
<pre>{{collapse top}}
==Section header==
Sample contents text
{{collapse bottom}}</pre>
must be rewritten as:
<pre>{{collapse top|Section header}}
Sample contents text
{{collapse bottom}}</pre>
The end result:
{{collapse top|Section header}}
Sample contents text
{{collapse bottom}}
==TemplateData==
{{TemplateData header}}
<templatedata>
{
"params": {
"1": {
"aliases": [
"title",
"heading",
"header",
"reason",
"result"
],
"label": "Title",
"description": "Main title of collapsed box",
"example": "This is the title text",
"required": true
},
"2": {
"label": "Custom warning line",
"description": "Will override the standard warning line, and make the 'warning' parameter unnecessary",
"example": "This is a custom warning line",
"type": "string"
},
"indent": {
"description": "Indents the box from the left of the page",
"type": "unknown",
"autovalue": "0px"
},
"expand": {
"aliases": [
"collapse"
], "description": "Using expand=yes or collapse=no will leave the material uncollapsed with the border and coloring",
"example": "true",
"type": "string",
"autovalue": ""
},
"border": {
"label": "Border width (px)",
"description": "Sets the width of the border line on the collapsed material",
"example": "2px",
"default": "1px",
"autovalue": ""
},
"b-color": {
"label": "Border color",
"description": "Sets the border color",
"example": "#F0F2F5",
"default": "Silver"
},
"width": {
"label": "Template width (px or %)",
"description": "Sets the width of the overall template",
"example": "50%"
},
"bg": {
"label": "Collapsed material background color",
"description": "Sets the background color of the collapsed material",
"example": "#F0F2F5",
"default": "#CFC"
},
"left": {
"label": "Alight along the left margin (true or blank)",
"description": "Will align the 'parameter 1 title' along the left margin",
"example": "true",
"type": "string"
},
"fc": {
"label": "Title font color",
"description": "Sets the font color of the title of the collapsible bar",
"example": "#F0F2F5",
"default": "Black"
},
"warning": {
"label": "Warning (true or blank)",
"description": "Will display a default warning line under the main title which reads \"The following is a closed debate. Please do not modify it.\"",
"example": "true"
},
"border2": {
"label": "Expanded box border size & color",
"description": "Sets the border of the box that appears when template is expanded",
"example": "2px",
"default": "1px silver"
},
"padding": {
"label": "Padding (px)",
"description": "Sets the padding on the collapsed material in the colored area",
"example": "16px",
"default": "8px"
},
"bg2": {
"label": "Expanded box color",
"description": "Sets background of the box that appears when template is expanded",
"example": "#F0F2F5",
"default": "white"
}
},
"description": "Use in conjunction with {{Collapse bottom}}. Will collapse text in between the two templates."
}
</templatedata>
== Redirects ==
To Collapse top:
* {{tl|cot}}
* {{tl|ctop}}
* {{tl|DAT}}
To Collapse bottom:
* {{tl|cob}}
* {{tl|cbot}}
== See also ==
* {{tl|collapse}}
* {{#ifeq: {{BASEPAGENAME}} | Collapse top || {{tl|collapse top}} }}
* {{#ifeq: {{BASEPAGENAME}} | Collapse bottom || {{tl|collapse bottom}} }}
* {{tl|discussion top}} and {{tl|discussion bottom}}
* {{tl|hidden archive top}} and {{tl|hidden archive bottom}}
* {{tl|hidden begin}} and {{tl|hidden end}}
* {{tl|hidden}}
* {{tl|collapsible list}}
{{Warchivenav|state=uncollapsed}}
<includeonly>{{Sandbox other||
<!-- Categories below this line, please; interwikis at Wikidata -->
[[Category:Archival templates]]
[[Category:Collapse templates]]
}}</includeonly>
nptrpfjxvomdlpzrtsybmp0voe7xwwn
Ta̱mpi̱let:Collapse bottom
10
1983
15823
2022-08-12T09:28:29Z
Kambai Akau
15
Created page with "<includeonly>|}</div></includeonly><noinclude> {{Documentation|Template:Collapse top/doc}} <!-- PLEASE ADD THIS TEMPLATE'S CATEGORIES AND INTERWIKIS TO THE /doc SUBPAGE, THANKS --> </noinclude>"
wikitext
text/x-wiki
<includeonly>|}</div></includeonly><noinclude>
{{Documentation|Template:Collapse top/doc}}
<!-- PLEASE ADD THIS TEMPLATE'S CATEGORIES AND INTERWIKIS TO THE /doc SUBPAGE, THANKS -->
</noinclude>
brg0xxydzz07jqyt62vdk8nb02zd0ob
Ta̱mpi̱let:Collapse
10
1984
15824
2022-08-12T09:29:58Z
Kambai Akau
15
Created page with "{| <!-- Template:Collapse --> class="mw-collapsible {{#switch:{{lc:{{{expand|no}}}}}|uncollapse|uncollapsed|expand|expanded|yes|y=mw-uncollapsed|#default=mw-collapsed}} {{{class|}}}" style="{{{{{|safesubst:}}}#ifeq:{{NAMESPACEE}}|{{ns:0}}|display: none;}}background-color: {{{bg1|transparent}}}; text-align: left; border: {{{border|1px}}} solid {{{b-color|silver}}}; {{{{{|safesubst:}}}#switch:{{{float|}}} | left = margin:0.2em 0.5em 0.2em 0; width:{{{{{|safesubst:}}}#if:{{..."
wikitext
text/x-wiki
{| <!-- Template:Collapse --> class="mw-collapsible {{#switch:{{lc:{{{expand|no}}}}}|uncollapse|uncollapsed|expand|expanded|yes|y=mw-uncollapsed|#default=mw-collapsed}} {{{class|}}}" style="{{{{{|safesubst:}}}#ifeq:{{NAMESPACEE}}|{{ns:0}}|display: none;}}background-color: {{{bg1|transparent}}}; text-align: left; border: {{{border|1px}}} solid {{{b-color|silver}}}; {{{{{|safesubst:}}}#switch:{{{float|}}}
| left = margin:0.2em 0.5em 0.2em 0; width:{{{{{|safesubst:}}}#if:{{{width|}}}|{{{width}}}|auto}}; float: left; clear: {{{clear|left}}}
| right = margin:0.2em 0 0.2em 0.5em; width:{{{{{|safesubst:}}}#if:{{{width|}}}|{{{width}}}|auto}}; float: right; clear: {{{clear|right}}}
| none = margin:0.2em 0; width:{{{{{|safesubst:}}}#if:{{{width|}}}|{{{width}}}|auto}}; clear: {{{clear|none}}}
| center | centre = margin:0.2em auto; width:{{{{{|safesubst:}}}#if:{{{width|}}}|{{{width}}}|auto}}; clear: {{{clear|both}}}
| #default = margin: 0.2em auto auto; width:{{{{{|safesubst:}}}#if:{{{width|}}}|{{{width}}}|100%}}; clear: {{{clear|both}}}
}}; padding: 1px;"
|-
! style="background-color: {{{background|{{{bg|#F0F2F5}}}}}}; font-size:87%; padding:0.2em 0.3em; text-align: {{{{{|safesubst:}}}#if:{{{left|}}}|left|{{{{{|safesubst:}}}#if:{{{center|}}}|center|left}}}}; {{{{{|safesubst:}}}#if:{{{fc|}}}|color: {{{fc}}};|}}" | <div style="display: inline; font-size: 115%;">{{{2|{{{title|{{{reason|{{{header|{{{heading|{{{result|Extended content}}}}}}}}}}}}}}}}}}</div>
|-
| style="border: solid {{{border2|1px silver}}}; padding: {{{padding|8px}}}; background-color: {{{bg2|white}}};" |
<div>{{{content|{{{text|{{{1<noinclude>|{{lorem ipsum|3}}</noinclude>}}}}}}}}}</div>
|}{{{{{|safesubst:}}}#ifeq:{{NAMESPACEE}}|{{ns:0}}|<span class="error noprint">[[Template:collapse]] is not available for use in articles (see [[MOS:COLLAPSE]]).</span>}}<noinclude>
{{Documentation}}
</noinclude>
dpg506w9n0gpqxqivodily2zup0sfj4
Ta̱mpi̱let:Collapse/doc
10
1985
15825
2022-08-12T09:32:09Z
Kambai Akau
15
Created page with "{{Documentation subpage}} <!-- Add categories where indicated at the bottom of this page and interwikis at Wikidata --> {{High-use}} {{Collapsible templates}} The {{tlx|collapse|<nowiki>folding text</nowiki>}} template is used for placing collapse boxes around ''short'' discussions and bits of discussions. To fold ''long'' discussion threads, use {{tlx|Collapse top}}<code>... lots of text ...</code>{{tlx|Collapse bottom}}. This template should only be used in accordanc..."
wikitext
text/x-wiki
{{Documentation subpage}}
<!-- Add categories where indicated at the bottom of this page and interwikis at Wikidata -->
{{High-use}}
{{Collapsible templates}}
The {{tlx|collapse|<nowiki>folding text</nowiki>}} template is used for placing collapse boxes around ''short'' discussions and bits of discussions. To fold ''long'' discussion threads, use {{tlx|Collapse top}}<code>... lots of text ...</code>{{tlx|Collapse bottom}}.
This template should only be used in accordance with the [[Wikipedia:refactoring talk pages]] guideline; it should never be used to end a discussion over the objections of other editors, except in cases of unambiguous disruptive editing.
Do not hide content in articles. This violates the [[WP:Manual of Style#Scrolling lists and collapsible content]] and [[WP:Accessibility]] guidelines.
== Usage ==
'''''Note: {{Tl|Collapse}} needs to be [[Wikipedia:Substitution|substed]] in order for the time stamp functionality to work properly.'''''
{{Tlx|Collapse|1=<var>Discussion text to be put into box.</var>|2=<var>Optional custom heading</var>}}
It is definitely safest to use the named {{para|1}} and {{para|2}} parameters, because otherwise any "=" character will break the template.
For compatibility with various discussion-boxing and -closing, and discussion-wrapping templates, {{para|1}} can also be given as {{para|content}} or {{para|text}}, and {{para|2}} can also be given as {{para|title}}, {{para|reason}}, {{para|header}}, {{para|heading}}, or {{para|result}}.
=== HTML version ===
If you find that the template does not function properly in a particular circumstance, this is mostly likely because the wikicode table markup (<code><nowiki>{|</nowiki></code>, etc.) only works when it is at the beginning of a newline.
A workaround for this is the "pure HTML" ({{tag|table|o}}, etc.) variant of this template, '''{{tlx|Collapse/HTML}}''', which is identical (same parameters, etc.) other than in not using wikimarkup for the layout-table code.
=== The <code>bg</code> parameter ===
The <code>bg</code> parameter is optional. It changes the background color. Use [[Web color]] values (e.g. <code>#F0F2F5</code>).
;Example:
<code>{<nowiki />{Collapse|1=<var>Discussion text to be put into box.</var>|bg=#F0F2F5}<nowiki />}</code> creates:
{{Collapse|1=Discussion text to be put into box.|bg=#F0F2F5}}
=== The <code>padding</code> parameter ===
The <code>padding</code> parameter adjusts the amount of cell padding (defaults to <code>8px</code>):
<code>{<nowiki />{Collapse|1=<var>Discussion text to be put into box.</var>|padding=20px}<nowiki />}</code> creates the following (expand the box to see the border padding effect):
{{Collapse|1=Discussion text to be put into box.|padding=20px}}
=== The <code>float</code> parameter ===
The <code>float</code> parameter allows the collapsed content to float to the left, right, or center of the page (defaults to <code>none</code> with <code>width = 100%</code>):
<code><nowiki>{{</nowiki>Collapse|1=<var>Discussion text to be put into box.</var>|float=center<nowiki>}}</nowiki></code> creates the following:
{{Collapse|1=Discussion text to be put into box.|float=center}}
<code><nowiki>{{</nowiki>Collapse|1=<var>Discussion text to be put into box.</var>|float=center|width=30em<nowiki>}}</nowiki></code> creates the following:
{{Collapse|1=Discussion text to be put into box.|float=center|width=30em}}
<code><nowiki>{{</nowiki>Collapse|1=<var>Discussion text to be put into box.</var>|float=left|width=30em<nowiki>}}</nowiki></code> creates the following:
{{Collapse|1=Discussion text to be put into box.|float=left|width=30em}}
{{clear}}
<code><nowiki>{{</nowiki>Collapse|1=<var>Discussion text to be put into box.</var>|float=right|width=30em<nowiki>}}</nowiki></code> creates the following:
{{Collapse|1=Discussion text to be put into box.|float=right|width=30em}}
{{clear}}
<code><nowiki>{{</nowiki>Collapse|1=<var>Discussion text to be put into box.</var>|float=none|width=30em<nowiki>}}</nowiki></code> creates the following:
{{Collapse|1=Discussion text to be put into box.|float=none|width=30em}}
=== Around header text ===
When used with a section of text, include the section header in the collapsed portion of text. For example, given:
{| style="background-color: lavender"
| Example text|== [[Help:Section|Heading]] ==<br />{{Lorem ipsum}}
|}
Replace with:
{{mono|{{Tlsp|Collapse|1={{Lorem ipsum}}|2=[[Help:Section|Heading]]}}}}
===The <code>expand</code> parameter===
Simply add {{para|expand|yes}} to have the box show up in expanded form with a "hide" link, instead of collapsed form with a "show" link. Other options: {{para|expand|}} <code>yes, y, expand, expanded, uncollapse, uncollapsed</code>. Note: {{para|expand|no}} will fold the box (default).
===The <code>clear</code> parameter===
In some situations you may not want the default <code>clear: both;</code> CSS to apply, which puts the collapse box below any left- or right-floated content within the same HTML block. In this case, you can use {{para|clear|none}}, {{para|clear|right}}, or {{para|clear|left}}, as needed.
===When content includes tables===
This template frequently breaks when used around content that consists of or includes [[Help:Table|wikitables]]. Such content can be made collapsible by using the {{tlx|collapse top}} and {{tlx|collapse bottom}} templates instead of {{tlx|collapse}}.
If you want to collapse only the table and not other content, you can do this using wikitable parameters. See the [[Help:Collapsing#Collapsing tables by default|Collapsing tables]] guide for help.
==TemplateData==
{{TemplateData header}}
<templatedata>
{
"description": "Creates a collapsible box that allows its content to be hidden or revealed on user's command. It is used to reduce clutter.",
"params": {
"1": {
"label": "Contents",
"description": "Contents of the box",
"type": "content",
"required": true,
"aliases": [
"content",
"text"
]
},
"2": {
"label": "Title",
"description": "Text of title bar. Defaults to \"Extended contents\".",
"type": "string",
"suggested": true,
"aliases": [
"title",
"heading",
"header",
"reason",
"result"
],
"default": "Extended content"
},
"expand": {
"label": "Expanded by default?",
"description": "Setting to \"yes\" (or \"y\", \"expand\", \"expanded\", \"uncollapse\", or \"uncollapsed\") will cause the box to show its contents by default. Any other value (and omitting this parameter) causes the box to be expanded by default. If not set or set to another value (e.g. \"no\") the box will be collapsed by default (its contents hidden).",
"type": "string",
"default": "no"
},
"border": {
"label": "Border width",
"description": "Width of the outermost border. Accepts a number (e.g. 2) followed immediately with a CSS-compatible unit of measurement. (e.g. \"px\") Example: 2px.",
"type": "string",
"default": "1px"
},
"bg": {
"label": "Title bar's color",
"description": "Color of the title bar. Can be set any valid CSS color value but please take care that text would remain black.",
"type": "string",
"aliases": [
"background"
],
"default": "#F0F2F5"
},
"padding": {
"label": "Padding",
"description": "Width of the padding, the empty space between border and the contents. Accepts a number (e.g. 2) followed immediately with a CSS-compatible unit of measurement. (e.g. \"px\") Example: 2px.",
"default": "8px"
},
"bg1": {
"label": "Outer background",
"description": "Color of the space between the inner and outer border. Can be set to any valid CSS color.",
"type": "string",
"default": "transparent"
},
"b-color": {
"label": "Outer border color",
"description": "Color of the outer border. Can be any valid CSS color.",
"type": "string",
"default": "silver"
},
"width": {
"label": "Collapse box width",
"description": "The width of the entire collapsed box.",
"type": "string",
"default": "100%"
},
"center": {
"label": "Center-align title",
"description": "If set to any value, the title will be centered.",
"type": "boolean"
},
"fc": {
"label": "Font color",
"description": "Font color for the title. Also sets the color of the [show]/[hide] link. Can be any valid CSS color",
"type": "string"
},
"class": {
"label": "CSS class",
"description": "Additional CSS class to add",
"type": "string"
},
"float": {
"label": "CSS float",
"description": "CSS float, one of \"left\", \"right\", \"none\", \"center\"/\"centre\", or blank.",
"type": "string"
},
"clear": {
"label": "CSS clear",
"description": "CSS clear value. The default depends on the selected float. Usually one of \"none\", \"left\", \"right\", or \"both\"",
"type": "string"
},
"left": {
"label": "Left-align title",
"description": "Left-aligns the title. Takes precedence over center.",
"type": "boolean"
},
"border2": {
"label": "Content border",
"description": "CSS border styling to add to the content.",
"type": "string",
"default": "1px silver"
},
"bg2": {
"label": "Content background color",
"description": "Background color to use for expanded content.",
"type": "string",
"default": "white"
}
}
}
</templatedata>
== Re-using at other wikis ==
This template depends upon having rules for the three classes (collapsible, uncollapsed, and collapsed) in the appropriate CSS files, and some related JavaScript installed. This template transcludes {{tl|main other}} and {{tl|lorem ipsum}}, which should also be imported at the same time.
For MediaWiki versions ≥ 1.18, this template can simply be exported and then imported into another MediaWiki installation. Some changes to the source code will need to be made in order for this template to become usable on the Main/Article (ns:0) [[mw:Help:Namespaces|namespace]].
The toggle text can be edited at external Wiki's [[MediaWiki:Collapsible-expand]] and [[MediaWiki:Collapsible-collapse]] pages. Further information at [[mw:ResourceLoader/Modules#jquery.makeCollapsible|jquery.makeCollapsible module]].
== See also ==
* {{tl|discussion top}}
* {{tl|hidden}}
{{templates for archiving|state=expanded}}
<includeonly>{{sandbox other||
<!-- Categories below this line; interwikis at Wikidata -->
[[Category:Archival templates]]
[[Category:Collapse templates]]
}}</includeonly>
313pfmcmibqs3tp06ergw5wug1wh7kd
Ta̱mpi̱let:Lorem ipsum/p-cond
10
1986
15826
2022-08-12T09:35:01Z
Kambai Akau
15
Created page with "{{#ifeq: {{{2|{{{join|no}}}}}} | yes | | {{#switch: {{#invoke:string|sub|x{{{1|}}}|2|2}} | : | # | * = | #default = <p><!-- -->}} }}</p><noinclude>{{Documentation |content= Conditional paragraph begin. Generates a begin p-tag if needed, depending on ''prefix'' and ''join'': * nothing, in the case of joins; * nothing, where prefix metacharacters are present like (<code>*</code>, <code>#</code>, or <code>:</code>) which must sit in column 1; * a begin p..."
wikitext
text/x-wiki
{{#ifeq: {{{2|{{{join|no}}}}}} | yes
|
| {{#switch: {{#invoke:string|sub|x{{{1|}}}|2|2}}
| : | # | * =
| #default = <p><!--
-->}}
}}</p><noinclude>{{Documentation |content=
Conditional paragraph begin. Generates a begin p-tag if needed, depending on ''prefix'' and ''join'':
* nothing, in the case of joins;
* nothing, where prefix metacharacters are present like (<code>*</code>, <code>#</code>, or <code>:</code>) which must sit in column 1;
* a begin p-tag before the first lorem paragraph, in other cases.
== Usage ==
{{tlc|Lorem ipsum/p-cond|''prefix''|''join''}}
}}</noinclude>
qfkb7yc12h7u8bfu5zqhqgsgelo8eah
Ta̱mpi̱let:Lorem ipsum/p-end-cond
10
1987
15827
2022-08-12T09:36:03Z
Kambai Akau
15
Created page with "{{#ifeq: {{{2|{{{join|no}}}}}} | yes | | {{#switch: {{#invoke:string|sub|x{{{1|}}}|2|2}} | : | # | * = | #default = </p><!-- -->}} }}<noinclude>{{Documentation |content= Conditional paragraph end. Generates an p-tag if needed, depending on ''prefix'' and ''join'': * nothing, in the case of joins; * nothing, where prefix metacharacters are present like (<code>*</code>, <code>#</code>, or <code>:</code>) which must sit in column 1, don't acquire begin-p..."
wikitext
text/x-wiki
{{#ifeq: {{{2|{{{join|no}}}}}} | yes
|
| {{#switch: {{#invoke:string|sub|x{{{1|}}}|2|2}}
| : | # | * =
| #default = </p><!--
-->}}
}}<noinclude>{{Documentation |content=
Conditional paragraph end. Generates an p-tag if needed, depending on ''prefix'' and ''join'':
* nothing, in the case of joins;
* nothing, where prefix metacharacters are present like (<code>*</code>, <code>#</code>, or <code>:</code>) which must sit in column 1, don't acquire begin-p tags, and therefore don't need an end p-tag;
* an end p-tag after the lorem paragraph emitted last, in other cases.
== Usage ==
{{tlc|Lorem ipsum/p-end-cond|''prefix''|''join''}}
}}</noinclude>
i6offputlh9z8gkyebvla5y066mg6n3
Ta̱mpi̱let:Template link code
10
1988
15829
15828
2022-08-12T09:38:05Z
Kambai Akau
15
Kambai Akau shyei peji [[Ta̱mpi̱let:Tlc]] nat [[Ta̱mpi̱let:Template link code]]
wikitext
text/x-wiki
<includeonly>{{#Invoke:Template link general|main|nolink=yes|code=yes|nowrap=yes}}</includeonly><noinclude>
{{Documentation|1=Template:Tlg/doc
|content = {{tlg/doc|tlc}}
}}
<!-- Add categories to the /doc subpage, not here! -->
</noinclude>
0i49ncdivj3996big2nh593ty7aspr8
Ta̱mpi̱let:Tlc
10
1989
15830
2022-08-12T09:38:06Z
Kambai Akau
15
Kambai Akau shyei peji [[Ta̱mpi̱let:Tlc]] nat [[Ta̱mpi̱let:Template link code]]
wikitext
text/x-wiki
#REDIRECT [[Ta̱mpi̱let:Template link code]]
h7ig329g6npo9ilcktl7hnusi3i6cpr
Ta̱mpi̱let:Tsh
10
1990
15833
15831
2022-08-12T09:47:01Z
Kambai Akau
15
Redirected page to [[Ta̱mpi̱let:Template shortcut]]
wikitext
text/x-wiki
#REDIRECT [[Template:Template shortcut]]
51onx995ufewbjk8zfjdpn9a27ntfz0
Ta̱mpi̱let:Tsh/doc
10
1991
15832
2022-08-12T09:41:38Z
Kambai Akau
15
Created page with "{{Documentation subpage}} {{tlr|clear=right|Template shortcuts|Templateshortcut}}{{tsh|tsh}} {{High-use}} {{lua|Module:Shortcut}} <!-- PLEASE ADD CATEGORIES AND INTERWIKIS AT THE BOTTOM OF THIS PAGE --> This template displays one or more of a template's shortcuts (that is, redirects, also known as aliases, as in the box appearing at the right. {{tl|Tsh}} is a shortcut to this template, {{tlf|template shortcut}}, and can be used in its place, as it is in this documentatio..."
wikitext
text/x-wiki
{{Documentation subpage}}
{{tlr|clear=right|Template shortcuts|Templateshortcut}}{{tsh|tsh}}
{{High-use}}
{{lua|Module:Shortcut}}
<!-- PLEASE ADD CATEGORIES AND INTERWIKIS AT THE BOTTOM OF THIS PAGE -->
This template displays one or more of a template's shortcuts (that is, redirects, also known as aliases, as in the box appearing at the right. {{tl|Tsh}} is a shortcut to this template, {{tlf|template shortcut}}, and can be used in its place, as it is in this documentation's [[Wikipedia:View source|source]] [[wikitext]].
jeo3j145xvxonyxq46yy73lw6zkh82n
Ta̱mpi̱let:Cot
10
1992
15834
2022-08-12T09:50:50Z
Kambai Akau
15
Redirected page to [[Ta̱mpi̱let:Collapse top]]
wikitext
text/x-wiki
#REDIRECT [[Template:Collapse top]]
{{Redirect category shell|
{{R from template shortcut}}
}}
d5c9d1b0mn88iq64b19dhiryjp55236
Ta̱mpi̱let:Cob
10
1993
15835
2022-08-12T09:51:50Z
Kambai Akau
15
Redirected page to [[Ta̱mpi̱let:Collapse bottom]]
wikitext
text/x-wiki
#REDIRECT [[Template:Collapse bottom]]
7mew2vfn0t93rnp5fn8nnmy3qkudjlf
Module:Navbar/sandbox
828
1994
15836
2022-08-12T09:56:50Z
Kambai Akau
15
Created page with "local p = {} local cfg = mw.loadData('Module:Navbar/configuration') local function get_title_arg(is_collapsible, template) local title_arg = 1 if is_collapsible then title_arg = 2 end if template then title_arg = 'template' end return title_arg end local function choose_links(template, args) -- The show table indicates the default displayed items. -- view, talk, edit, hist, move, watch -- TODO: Move to configuration. local show = {true, true, true, false, false..."
Scribunto
text/plain
local p = {}
local cfg = mw.loadData('Module:Navbar/configuration')
local function get_title_arg(is_collapsible, template)
local title_arg = 1
if is_collapsible then title_arg = 2 end
if template then title_arg = 'template' end
return title_arg
end
local function choose_links(template, args)
-- The show table indicates the default displayed items.
-- view, talk, edit, hist, move, watch
-- TODO: Move to configuration.
local show = {true, true, true, false, false, false}
if template then
show[2] = false
show[3] = false
local index = {t = 2, d = 2, e = 3, h = 4, m = 5, w = 6,
talk = 2, edit = 3, hist = 4, move = 5, watch = 6}
-- TODO: Consider removing TableTools dependency.
for _, v in ipairs(require ('Module:TableTools').compressSparseArray(args)) do
local num = index[v]
if num then show[num] = true end
end
end
local remove_edit_link = args.noedit
if remove_edit_link then show[3] = false end
return show
end
local function add_link(link_description, ul, is_mini, font_style)
local l
if link_description.url then
l = {'[', '', ']'}
else
l = {'[[', '|', ']]'}
end
ul:tag('li')
:addClass('nv-' .. link_description.full)
:wikitext(l[1] .. link_description.link .. l[2])
:tag(is_mini and 'abbr' or 'span')
:attr('title', link_description.html_title)
:cssText(font_style)
:wikitext(is_mini and link_description.mini or link_description.full)
:done()
:wikitext(l[3])
:done()
end
local function make_list(title_text, has_brackets, displayed_links, is_mini, font_style)
local title = mw.title.new(mw.text.trim(title_text), cfg.title_namespace)
if not title then
error(cfg.invalid_title .. title_text)
end
local talkpage = title.talkPageTitle and title.talkPageTitle.fullText or ''
-- TODO: Get link_descriptions and show into the configuration module.
-- link_descriptions should be easier...
local link_descriptions = {
{ ['mini'] = 'v', ['full'] = 'view', ['html_title'] = 'View this template',
['link'] = title.fullText, ['url'] = false },
{ ['mini'] = 't', ['full'] = 'talk', ['html_title'] = 'Discuss this template',
['link'] = talkpage, ['url'] = false },
{ ['mini'] = 'e', ['full'] = 'edit', ['html_title'] = 'Edit this template',
['link'] = title:fullUrl('action=edit'), ['url'] = true },
{ ['mini'] = 'h', ['full'] = 'hist', ['html_title'] = 'History of this template',
['link'] = title:fullUrl('action=history'), ['url'] = true },
{ ['mini'] = 'm', ['full'] = 'move', ['html_title'] = 'Move this template',
['link'] = mw.title.new('Special:Movepage'):fullUrl('target='..title.fullText), ['url'] = true },
{ ['mini'] = 'w', ['full'] = 'watch', ['html_title'] = 'Watch this template',
['link'] = title:fullUrl('action=watch'), ['url'] = true }
}
local ul = mw.html.create('ul')
if has_brackets then
ul:addClass(cfg.classes.brackets)
:cssText(font_style)
end
for i, _ in ipairs(displayed_links) do
if displayed_links[i] then add_link(link_descriptions[i], ul, is_mini, font_style) end
end
return ul:done()
end
function p._navbar(args)
-- TODO: We probably don't need both fontstyle and fontcolor...
local font_style = args.fontstyle
local font_color = args.fontcolor
local is_collapsible = args.collapsible
local is_mini = args.mini
local is_plain = args.plain
local collapsible_class = nil
if is_collapsible then
collapsible_class = cfg.classes.collapsible
if not is_plain then is_mini = 1 end
if font_color then
font_style = (font_style or '') .. '; color: ' .. font_color .. ';'
end
end
font_style = (font_style or '') .. ';text-decoration:inherit;'
local navbar_style = args.style
local div = mw.html.create():tag('div')
div
:addClass(cfg.classes.navbar)
:addClass(cfg.classes.plainlinks)
:addClass(cfg.classes.horizontal_list)
:addClass(collapsible_class) -- we made the determination earlier
:cssText(navbar_style)
if is_mini then div:addClass(cfg.classes.mini) end
local box_text = (args.text or cfg.box_text) .. ' '
-- the concatenated space guarantees the box text is separated
if not (is_mini or is_plain) then
div
:tag('span')
:addClass(cfg.classes.box_text)
:cssText(font_style)
:wikitext(box_text)
end
local template = args.template
local displayed_links = choose_links(template, args)
local has_brackets = args.brackets
local title_arg = get_title_arg(is_collapsible, template)
local title_text = args[title_arg] or (':' .. mw.getCurrentFrame():getParent():getTitle())
local list = make_list(title_text, has_brackets, displayed_links, is_mini, font_style)
div:node(list)
if is_collapsible then
local title_text_class
if is_mini then
title_text_class = cfg.classes.collapsible_title_mini
else
title_text_class = cfg.classes.collapsible_title_full
end
div:done()
:tag('div')
:addClass(title_text_class)
:cssText(font_style)
:wikitext(args[1])
end
return mw.getCurrentFrame():extensionTag{
name = 'templatestyles', args = { src = cfg.templatestyles }
} .. tostring(div:done())
end
function p.navbar(frame)
return p._navbar(require('Module:Arguments').getArgs(frame))
end
return p
pktzhjadawuzj4l3ly2m0dn971ajo3o
Module:Navbar/sandbox/doc
828
1995
15837
2022-08-12T09:58:54Z
Kambai Akau
15
Redirected page to [[Module:Navbar/doc]]
wikitext
text/x-wiki
#REDIRECT [[Module:Navbar/doc]]
o2wohtsttxilsc7c6dg7gtd3tx8vem1
Module:Navbar/doc
828
1996
15838
2022-08-12T09:59:32Z
Kambai Akau
15
Created page with "{{used in system}} {{module rating|protected}} {{Lua|Module:Navbar/configuration|Module:Arguments|Module:TableTools}} {{Uses TemplateStyles|Module:Navbar/styles.css}} This is a [[WP:Lua|Lua]] implementation of {{tl|Navbar}}. It is used in [[Module:Navbox]]."
wikitext
text/x-wiki
{{used in system}}
{{module rating|protected}}
{{Lua|Module:Navbar/configuration|Module:Arguments|Module:TableTools}}
{{Uses TemplateStyles|Module:Navbar/styles.css}}
This is a [[WP:Lua|Lua]] implementation of {{tl|Navbar}}. It is used in [[Module:Navbox]].
4utih3keivesjbfxfevy0k4relva0jj
Ta̱mpi̱let:Template link with link off
10
1997
15841
15840
2022-08-12T10:03:36Z
Kambai Akau
15
Kambai Akau shyei peji [[Ta̱mpi̱let:Tlf]] nat [[Ta̱mpi̱let:Template link with link off]]
wikitext
text/x-wiki
<includeonly>{{#Invoke:Template link general|main|nowrap=yes|nolink=yes}}</includeonly><noinclude>
{{Documentation|1=Template:Tlg/doc
|content = {{tlg/doc|tlf}}
}}
<!-- Add categories to the /doc subpage, not here! -->
</noinclude>
kmn80yu5079jyyvwn623d36xsqq3dch
Ta̱mpi̱let:Tlf
10
1998
15842
2022-08-12T10:03:36Z
Kambai Akau
15
Kambai Akau shyei peji [[Ta̱mpi̱let:Tlf]] nat [[Ta̱mpi̱let:Template link with link off]]
wikitext
text/x-wiki
#REDIRECT [[Ta̱mpi̱let:Template link with link off]]
l8ow37wtt27i2fy7h5a12w5pshzmd1x
Ta̱mpi̱let:Mono
10
1999
15844
2022-08-12T10:04:50Z
Kambai Akau
15
Created page with "{{<includeonly>safesubst:</includeonly>ifsubst|1=|2=<templatestyles src="Mono/styles.css" />}}<span class="monospaced">{{{2|{{{1}}}}}}</span><noinclude> {{Documentation}} <!-- Categories go on the /doc subpage and interwikis go on Wikidata. --> </noinclude>"
wikitext
text/x-wiki
{{<includeonly>safesubst:</includeonly>ifsubst|1=|2=<templatestyles src="Mono/styles.css" />}}<span class="monospaced">{{{2|{{{1}}}}}}</span><noinclude>
{{Documentation}}
<!-- Categories go on the /doc subpage and interwikis go on Wikidata. -->
</noinclude>
eyigcpktddtgno85j4vajm121b6hlip
Ta̱mpi̱let:Mono/doc
10
2000
15847
2022-08-12T10:06:21Z
Kambai Akau
15
Created page with "{{Documentation subpage}} <!-- PLEASE ADD CATEGORIES AT THE BOTTOM OF THIS PAGE --> {{tlr|clear=right|monospace}}{{tsh|clear=right|tt|ttt}} {{used in system|in [[MediaWiki:Abusefilter-disallowed-semicolon]]}} {{Uses TemplateStyles |Template:Mono/styles.css}} {{COinS safe|n}} {{-}} == Usage == {{tlx|mono|<var>text to format here</var>}} renders as: {{mono|text to format here}} This template is for formatting short bits of content (the only parameter) as monospaced (n..."
wikitext
text/x-wiki
{{Documentation subpage}}
<!-- PLEASE ADD CATEGORIES AT THE BOTTOM OF THIS PAGE -->
{{tlr|clear=right|monospace}}{{tsh|clear=right|tt|ttt}}
{{used in system|in [[MediaWiki:Abusefilter-disallowed-semicolon]]}}
{{Uses TemplateStyles |Template:Mono/styles.css}}
{{COinS safe|n}}
{{-}}
== Usage ==
{{tlx|mono|<var>text to format here</var>}}
renders as:
{{mono|text to format here}}
This template is for formatting short bits of content (the only parameter) as monospaced (nonproportional) text. It is simply a quick shorthand for the necessary [[Cascading Style Sheets|CSS]] code. It is a replacement for {{tag|tt}}, which is an obsolete element under HTML5. ([http://www.w3.org/TR/html5/obsolete.html#non-conforming-features Non-conforming features])
This template {{em|should}} be used where the content is being rendered in monospaced text for purely stylistic/display reasons, where this display has no particular semantic significance.
It {{em|should not}} be used to indicate information with these semantics:
* source code, use {{tl|code}} or {{tag|code}} instead
* variables or variable input, use {{tl|var}} or {{tag|var}} instead
* keyboard input, use {{tl|kbd}} or {{tag|kbd}} instead
* sample output, use {{tl|samp}} or {{tag|samp}} instead
It {{em|cannot}} be used to mark up multiple paragraphs, sections or other block elements, as it uses {{tag|span|o}}, which is an inline element. Use {{tl|monodiv}} and {{tl|pre}} for multiple blocks of text, or use multiple instances of {{tl|Mono}} for each individual line.
When the content ends with a single closing curly brace (<code><nowiki>}</nowiki></code>), the content should be followed by <code><nowiki><nowiki/></nowiki></code>, for example, to mark up <code><nowiki>{foo}</nowiki></code>, use {{tlc|mono|<nowiki>{foo}<nowiki/></nowiki>}} or {{tlc|mono|<nowiki><nowiki>{foo}</nowiki></nowiki>}}.
If the content contains pipe characters (<code>|</code>) not surrounded by {{tag|nowiki}}, they must be escaped with <code>&#124;</code> or <code><nowiki>{{!}}</nowiki></code>.
=== Parameters ===
There are two parameters:
;{{para|1}} or unnamed
: The content to format as monospaced. If the content contains a <code>=</code> character, the parameter must be numbered or the template will break. (The parameter does not need to be numbered if the <code>=</code> character is surrounded by {{tag|nowiki}}, or if it is escaped as <code>&#61;</code>.) For backward compatibility with an old, merged-in template, this parameter can also be called {{para|2}}.
;{{para|needs_review|yes}}
: Used (e.g. by [[WP:Bot|bots]] or [[WP:AWB|AWB]] scripts) to indicate replacement of now-obsolete {{tag|tt}} markup with {{tnull|mono|...}} markup. This template displays nothing and presently does no categorization, though a cleanup category can be created if necessary. It indicates that the markup may need to be changed to something more semantically meaningful, such as {{tag|code}}, {{tag|samp}}, or {{tag|kbd}}.
== TemplateData ==
{{Format TemplateData|<templatedata>
{
"description": "This template is for formatting short bits of content as monospaced text.",
"format": "inline",
"params": {
"1": {
"aliases": [
"2"
],
"label": "Content",
"description": "The content to format as monospaced.",
"required": true,
"type": "line"
},
"needs_review": {
"label": "Needs Review?",
"description": "Used (e.g. by [[WP:Bot|bots]] or [[WP:AWB|AWB]] scripts) to indicate replacement of now-obsolete <code><!--nostrip--><tt>...</tt></code><!--nostrip--> markup with <code><!--nostrip-->{{mono|...}}</code><!--nostrip--> markup. This template displays nothing and presently does no categorization, though a cleanup category can be created if necessary. It indicates that the markup may need to be changed to something more semantically meaningful, such as <code><!--nostrip--><code>...</code></code><!--nostrip-->, <code><!--nostrip--><samp>...</samp></code><!--nostrip-->, or <code><!--nostrip--><kbd>...</kbd></code><!--nostrip-->.",
"autovalue": "yes",
"type": "boolean"
}
}
}
</templatedata>}}
== See also ==
* {{tl|pre}}
* {{tl|code}}
* {{tl|kbd}}
* {{tl|syntaxhighlight}}
* {{tl|samp}}
* {{tl|var}}
* {{tl|param value}}
{{Semantic markup templates|show}}
<includeonly>{{Sandbox other||
<!-- CATEGORIES HERE, THANKS -->
[[Category:Typing-aid templates|{{PAGENAME}}]]
}}</includeonly>
pr0gk7b10ni4ahj9k5dr43nnf487x65
Beang:IPA/Turkiya
12
2001
15849
15848
2022-08-12T10:09:35Z
Kambai Akau
15
Kambai Akau shyei peji [[Beang:IPA/Turkish]] nat [[Beang:IPA/Turkiya]]
wikitext
text/x-wiki
{{IPA key|H:IPA-TR}}
The charts below show the way in which the [[International Phonetic Alphabet|International Phonetic Alphabet (IPA)]] represents [[Turkish language]] pronunciations in Wikipedia articles. For a guide to adding IPA characters to Wikipedia articles, see {{tl|IPA-tr}} and {{section link|Wikipedia:Manual of Style/Pronunciation#Entering IPA characters}}.
For a more in-depth coverage of the sounds of Turkish, see [[Turkish phonology]].
{|
| style="vertical-align:top;" |
{| class="wikitable"
|+ Consonants
|-
! IPA
! Example
! English<br />approximation
|-
| style="text-align: center;" | <big>{{IPA link|b}}</big>
| {{audio|Tr tr bebek.ogg|'''b'''e'''b'''ek|help=no}}
| a'''b'''out
|-
| style="text-align: center;" | <big>{{IPA link|β}}</big>
| {{audio|Vücut-turkish.ogg|'''v'''ücut|help=no}}<ref name="v">{{IPA|/v/}} surfaces as {{IPAblink|β}} when either preceded or followed by a rounded vowel (but not when intervocalic).</ref>
| ''like'' '''v'''ase, ''but with both lips''
|-
| style="text-align: center;" | <big>{{IPA link|c}}</big>
| {{audio|Tr tr şekil.ogg|şe'''k'''il|help=no}}<ref name="velar">{{IPA|[c~k]}}, {{IPA|[ɟ~ɡ]}}, and {{IPA|[l~ɫ]}} contrast only in loanwords before {{angbr|â, û}} vs. {{angbr|a, u}}. In native words, {{IPA|[c, ɟ, l]}} occur before front vowels ({{IPA|[æ, e, i, œ, y]}}) and {{IPA|[k, ɡ, ɫ]}} occur before back vowels ({{IPA|[a, o, u, ɯ]}}); word-finally or preconsonantally, {{IPA|[c, ɟ, l]}} occur after front vowels and {{IPA|[k, ɡ, ɫ]}} occur after back vowels.</ref>
| s'''k'''ew
|-
| style="text-align: center;" | <big>{{IPA link|d̪|d}}</big>
| {{audio|Tur-madde.ogg|ma'''dd'''e|help=no}}
| a'''d'''o
|-
| style="text-align: center;" | <big>{{IPA link|dʒ}}</big>
| {{audio|Ocak.ogg|o'''c'''ak|help=no}}
| '''j'''ump
|-
| style="text-align: center;" | <big>{{IPA link|f}}</big>
| {{audio|Far-turkish.ogg|'''f'''ar|help=no}}
| '''f'''ood
|-
| style="text-align: center;" | <big>{{IPA link|ɡ}}</big>
| {{audio|Gam-turkish.ogg|'''g'''am|help=no}}<ref name="velar" />
| a'''g'''o
|-
| style="text-align: center;" | <big>{{IPA link|ɟ}}</big>
| {{audio|Tr tr gerçek.ogg|'''g'''erçek|help=no}}<ref name="velar" />
| ar'''g'''ue
|-
| style="text-align: center;" | <big>{{IPA link|h}}</big>
| {{audio|Anahtar.ogg|ana'''h'''tar|help=no}}
| '''h'''ome
|-
| style="text-align: center;" | <big>{{IPA link|j}}</big>
| {{audio|Tr tr hayat.ogg|ha'''y'''at|help=no}}, e'''ğ'''ri<ref name="soft g">In Turkish, the letter {{angbr|[[Ğ#Turkish use|ğ]]}} (also called ''yumuşak g'', 'soft g') indicates a number of different sounds, depending on context:
* in syllable-initial positions, is silent and indicates a syllable break, for example: ''ağır'' ('heavy') {{IPA|[aˈɯɾ]}}, ''ağa'' ('[[Agha (title)|Agha]]') {{IPA|[aˈa]}}.
* in other positions, indicates the lengthening of the preceding vowel, for example: ''dağ'' ('mountain') {{IPA|[daː]}}, ''doğru'' ('true') {{IPA|[doːɾu]}}.
** if the lengthened vowel is /e/, it sounds like [j], for example: ''eğlence'' ('fun') {{IPA|[ejlænˈdʒe]}}
* in proper names where it may appear following a consonant, it is treated as a {{angbr|g}}, for example: ''Olğun'' {{IPA|[oɫˈɡun]}} </ref>
| '''y'''es
|-
| style="text-align: center;" | <big>{{IPA link|k}}</big>
| {{audio|Kabak.ogg|'''k'''aba'''k'''|help=no}}<ref name="velar" />
| '''c'''ore
|-
| style="text-align: center;" | <big>{{IPA link|ʎ̟|l}}</big>
| {{audio|Tr-bilinç.oga|bi'''l'''inç|help=no}}<ref>{{IPA|[l]}} is more accurately described as palatalized postalveolar {{IPAblink|ʎ̟}}, but it is conventionally transcribed with {{angbr IPA|l}}.</ref>
| '''l'''ate
|-
| style="text-align: center;" | <big>{{IPA link|ɫ̪|ɫ}}</big>
| {{audio|Tr-kulak.ogg|ku'''l'''ak|help=no}}<ref name="velar" />
| tai'''l'''
|-
| style="text-align: center;" | <big>{{IPA link|m}}</big>
| {{audio|Tr-cuma.ogg|cu'''m'''a|help=no}}
| '''m'''uch
|-
| style="text-align: center;" | <big>{{IPA link|n}}</big>
| {{audio|Tr tr nesne.ogg|'''n'''es'''n'''e|help=no}}
| '''n'''ot
|-
| style="text-align: center;" | <big>{{IPA link|ɲ}}</big>
| {{audio|Engin-turkish.ogg|e'''n'''gin|help=no}}<ref name="ny">{{IPAblink|ɲ}} appears as an allophone of {{IPAslink|n}} before the consonants {{IPAblink|ɟ}} and {{IPAblink|c}}.</ref>
| ca'''ny'''on
|-
| style="text-align: center;" | <big>{{IPA link|ŋ}}</big>
| {{audio|Yangın-turkish.ogg|ya'''n'''gın|help=no}}<ref name="ng">{{IPAblink|ŋ}} appears as an allophone of {{IPAslink|n}} before the consonants {{IPAblink|ɡ}} and {{IPAblink|k}}.</ref>
| wi'''ng'''
|-
| style="text-align: center;" | <big>{{IPA link|p}}</big>
| {{audio|Tr-pazar.ogg|'''p'''azar|help=no}}
| '''p'''an
|-
| style="text-align: center;" | <big>{{IPA link|ɾ}}</big>
| {{audio|Anahtarlar.ogg|anahta'''r'''la'''r'''|help=no}}
| ''[[American English|AmE]]'' a'''t'''om
|-
| style="text-align: center;" | <big>{{IPA link|s}}</big>
| {{audio|Tur-sinek.ogg|'''s'''inek|help=no}}
| '''s'''end
|-
| style="text-align: center;" | <big>{{IPA link|ʃ}}</big>
| {{audio|Tr-kişi.ogg|ki'''ş'''i|help=no}}
| '''sh'''oe
|-
| style="text-align: center;" | <big>{{IPA link|t̪|t}}</big>
| {{audio|Tr-Türkçe.oga|'''T'''ürkçe|help=no}}
| '''t'''able
|-
| style="text-align: center;" | <big>{{IPA link|tʃ}}</big>
| {{audio|Çivi.ogg|'''ç'''ivi|help=no}}
| '''ch'''ange
|-
| style="text-align: center;" | <big>{{IPA link|v}}</big>
| {{audio|Çivi.ogg|çi'''v'''i|help=no}}<ref name="v"/>
| '''v'''ase
|-
| style="text-align: center;" | <big>{{IPA link|z}}</big>
| {{audio|Tr-pazar.ogg|pa'''z'''ar|help=no}}
| '''z'''one
|-
| style="text-align: center;" | <big>{{IPA link|ʒ}}</big>
| {{audio|Jilet-turkish.ogg|'''j'''ilet|help=no}}
| lei'''s'''ure
|}
| style="padding-left: 1em; vertical-align:top;" |
{| class="wikitable"
|+ Vowels
|-
! IPA
! Example
! English<br />approximation
|-
| style="text-align: center;" | <big>{{IPA link|ä|a}}</big>
| {{audio|Kabak.ogg|k'''a'''b'''a'''k|help=no}}
| f'''a'''ther
|-
| style="text-align: center;" | <big>{{IPA link|æ}}</big>
| {{audio|Tr tr erkek.ogg|'''e'''rkek|help=no}}<ref>Allophone of {{IPA|/e/}} before sonorants {{IPA|[l, m, n, ɾ]}} in the same syllable, and in the suffix ''-mez''.</ref>
| c'''a'''t
|-
| style="text-align: center;" | <big>{{IPA link|e̞|e}}</big>
| {{audio|Tr tr erkek.ogg|erk'''e'''k|help=no}}
| b'''e'''d
|-
| style="text-align: center;" | <big>{{IPA link|i}}</big>
| {{audio|Çivi.ogg|ç'''i'''v'''i'''|help=no}}
| cr'''ee'''k
|-
| style="text-align: center;" | <big>{{IPA link|o̞|o}}</big>
| {{audio|Tr-tokmak.ogg|t'''o'''kmak|help=no}}
| st'''o'''ry
|-
| style="text-align: center;" | <big>{{IPA link|ø̞|œ}}</big>
| {{audio|Tr tr özgürlük.ogg|'''ö'''zgürlük|help=no}}
| ''somewhat like'' b'''ir'''d
|-
| style="text-align: center;" | <big>{{IPA link|u}}</big>
| {{audio|Tr tr ruh.ogg|r'''u'''h|help=no}}
| s'''ou'''p
|-
| style="text-align: center;" | <big>{{IPA link|ɯ}}</big>
| {{audio|Tur-kış.ogg|k'''ı'''ş|help=no}}
| ''somewhat like'' ros'''e'''s
|-
| style="text-align: center;" | <big>{{IPA link|y}}</big>
| {{audio|Tr-Türkçe.oga|T'''ü'''rkçe|help=no}}
| ''somewhat like'' c'''ue'''
|}
{| class="wikitable"
|+ [[Suprasegmental]]s
|-
! IPA
! colspan="2" | Examples
|-
| style="text-align: center;" | <big>{{IPA link|ˈ}}</big>
| colspan="2" | ''torbalı'' {{IPA|[toɾbaˈɫɯ]}} 'with bag'<br />''[[Torbalı]]'' {{IPA|[ˈtoɾbaɫɯ]}} (a place name)<ref>In Turkish proper, proper nouns are typically stressed on the second or third last syllable (see [[Sezer stress]]), and other words (excepting certain unstressed suffixes and stressed verb tenses) are stressed on the last syllable.</ref>
|-
| style="text-align: center;" | <big>{{IPA link|ː}}</big>
| ''â, î, û'',<ref name="sapka">[[circumflex|''Düzeltme işareti'']] (Turkish for "correction mark") {{angbr|ˆ}} is a sign which indicates both the vowel length and indicates if the letter {{angbr|k}} represents {{IPAblink|c}}, the letter {{angbr|g}} represents {{IPAblink|ɟ}} or the letter {{angbr|l}} represents {{IPAblink|l}} before back vowels {{IPAblink|ä|a}} and {{IPAblink|u}}.<br>Yet the ''düzeltme işareti'' is used primarily to indicate palatalization, instead of length. For example, the word {{wikt-lang|tr|katil}} means "murder" when it is pronounced as {{IPA|[kaˈtil]}}, but it means "killer" when it is pronounced as {{IPA|[kaːˈtil]}}. The letter {{angbr|a}} is left unmarked even if it is long because the sound {{IPAslink|k}} does not become {{IPAslink|c}} in this case.<br>{{angbr|î}} is an exception, as it indicates only the vowel length.</ref> ''ğ''<ref name="soft g" />
| '''''oğ'''lan'' {{Audio-IPA|Tr tr oğlan.ogg|[oːˈɫan]|help=no}} 'boy'
|}
|}
==Notes==
{{reflist}}
{{IPA keys}}
0qnzfki84efober1ttb879udzrpbwi9
Beang:IPA/Turkish
12
2002
15850
2022-08-12T10:09:35Z
Kambai Akau
15
Kambai Akau shyei peji [[Beang:IPA/Turkish]] nat [[Beang:IPA/Turkiya]]
wikitext
text/x-wiki
#REDIRECT [[Beang:IPA/Turkiya]]
t2b0cqsmbfh7u7y7b6juo6o6kxg2x0a
Ta̱mpi̱let:IPA link
10
2003
15851
2022-08-12T10:11:09Z
Kambai Akau
15
Created page with "<includeonly>{{#invoke:IPA symbol|link|symbol={{{1|}}}|text={{{2|}}}|audio={{{audio|}}}|errortext={{{errortext|}}}}}</includeonly><noinclude>{{documentation}}</noinclude>"
wikitext
text/x-wiki
<includeonly>{{#invoke:IPA symbol|link|symbol={{{1|}}}|text={{{2|}}}|audio={{{audio|}}}|errortext={{{errortext|}}}}}</includeonly><noinclude>{{documentation}}</noinclude>
99tmmy1kbwuscys61iyebbrezcxtb14
Ta̱mpi̱let:IPA link/doc
10
2004
15852
2022-08-12T10:12:23Z
Kambai Akau
15
Created page with "{{Documentation subpage}} <!-- Categories go where indicated at the bottom of this page, please; interwikis go to Wikidata (see also: [[Wikipedia:Wikidata]]). --> {{lua|Module:IPA symbol}} The template {{tl|IPA link}} takes an IPA symbol and turns it into a link to the respective article which discusses the sound the symbol represents. Versions with defined brackets are also available: * For phonetic representations, {{tl|IPAblink}} encloses the link in square brackets:..."
wikitext
text/x-wiki
{{Documentation subpage}}
<!-- Categories go where indicated at the bottom of this page, please; interwikis go to Wikidata (see also: [[Wikipedia:Wikidata]]). -->
{{lua|Module:IPA symbol}}
The template {{tl|IPA link}} takes an IPA symbol and turns it into a link to the respective article which discusses the sound the symbol represents.
Versions with defined brackets are also available:
* For phonetic representations, {{tl|IPAblink}} encloses the link in square brackets: {{IPAblink|a}}
* For phonemic representations, {{tl|IPAslink}} encloses the link in slashes: {{IPAslink|a}}
* For orthographic representations, {{tl|IPAalink}} encloses the link in angle brackets: {{IPAalink|a}}
Another version is {{tl|IPAplink}}, which encloses the link in neither brackets nor {{tag|span|attribs=class="IPA" lang="und-fonipa"}}, which is useful if the link is already inside {{tl|IPA}}, avoiding superfluous nesting of the same class.
== Usage ==
'''First parameter''' (required): any IPA symbol.
* <code><nowiki>{{</nowiki>{{BASEPAGENAME}}|m}}</code> → {{{{BASEPAGENAME}}|m}}
* <code><nowiki>{{</nowiki>{{BASEPAGENAME}}|ɡb}}</code> → {{{{BASEPAGENAME}}|ɡb}}
'''Second parameter''': changes the label of the wikilink.
* <code><nowiki>{{</nowiki>{{BASEPAGENAME}}|m|Any text}}</code> → {{{{BASEPAGENAME}}|m|Any text}}
'''Audio link'''
{{para|audio|yes}} adds a link to the corresponding audio file:
* <code><nowiki>{{</nowiki>{{BASEPAGENAME}}|ɽ|audio=yes}}</code> → {{{{BASEPAGENAME}}|ɽ|audio=yes}}
If the value in {{para|audio}} is not "yes", "y", "true", etc., it is treated as the name of an audio file:
* <code><nowiki>{{</nowiki>{{BASEPAGENAME}}|ɽ|audio=Retroflex flaps.ogg}}</code> → {{{{BASEPAGENAME}}|ɽ|audio=Retroflex flaps.ogg}}
If the audio file is not specified at [[Module:IPA symbol/data]], the link will not appear:
* <code><nowiki>{{</nowiki>{{BASEPAGENAME}}|s̬|audio=yes}}</code> → {{{{BASEPAGENAME}}|s̬|audio=yes}}
'''Errors'''
If the IPA symbol is not defined at [[Module:IPA symbol/data]], then an error message is returned and the page will be categorized into [[:Category:International Phonetic Alphabet pages needing attention]].
* <code><nowiki>{{</nowiki>{{BASEPAGENAME}}|xyz}}</code> → {{{{BASEPAGENAME}}|xyz}}
The error message can be customized in {{para|errortext}}. This cancels the addition of the error category. If set to <code>blank</code>, the message will not appear at all.
* <code><nowiki>{{</nowiki>{{BASEPAGENAME}}|xyz|errortext=Custom error message}}</code> → {{{{BASEPAGENAME}}|xyz|errortext=Custom error message}}
* <code><nowiki>{{</nowiki>{{BASEPAGENAME}}|xyz|errortext=blank}}</code> → {{{{BASEPAGENAME}}|xyz|errortext=blank}}
{{IPA templates}}
==Template data==
{{Template data header}}
{{collapse top|TemplateData}}
<templatedata>
{
"params": {
"1": {
"label": "IPA symbol",
"description": "IPA symbol whose article to link to",
"example": "ʉː",
"type": "string",
"required": true
},
"2": {
"label": "Display text",
"description": "Text to show instead of the IPA symbol",
"type": "string"
},
"audio": {
"label": "Audio",
"description": "Adds a link to sound if available",
"example": "yes",
"type": "string"
},
"errortext": {
"label": "Error text",
"example": "blank",
"type": "string"
}
}
}
</templatedata>
{{collapse bottom}}
<includeonly>{{sandbox other||
<!-- Categories go below this line, please; interwikis go to Wikidata, thank you! -->
[[Category:IPA symbol templates]]
[[Category:Templates that add a tracking category]]
}}</includeonly>
a3h6crv166e7vumid91ewchhz28kktz
Module:IPA symbol
828
2005
15853
2022-08-12T10:14:16Z
Kambai Akau
15
Created page with "local data = mw.loadData('Module:IPA symbol/data').data local p = {} local gsub = mw.ustring.gsub local len = mw.ustring.len local sub = mw.ustring.sub local function reverseLook(t, s) local ret for i = 1, len(s) - 1 do -- Look for 2-char matches first ret = t[sub(s, i, i + 1)] or t[sub(s, i, i)] if ret then return ret end end ret = t[sub(s, -1)] -- Last character if ret then return ret end end local function returnData(s, dataType) for _, v in ipa..."
Scribunto
text/plain
local data = mw.loadData('Module:IPA symbol/data').data
local p = {}
local gsub = mw.ustring.gsub
local len = mw.ustring.len
local sub = mw.ustring.sub
local function reverseLook(t, s)
local ret
for i = 1, len(s) - 1 do
-- Look for 2-char matches first
ret = t[sub(s, i, i + 1)] or t[sub(s, i, i)]
if ret then
return ret
end
end
ret = t[sub(s, -1)] -- Last character
if ret then
return ret
end
end
local function returnData(s, dataType)
for _, v in ipairs(data.univPatterns) do
s = gsub(s, v.pat, v.rep)
end
local key = s
for _, v in ipairs(data.keyPatterns) do
key = gsub(key, v.pat, v.rep)
end
local ret = data.sounds[key] or data.diacritics[key]
or reverseLook(data.diacritics, s)
if ret and dataType then
if ret[dataType] then
ret = ret[dataType]
else
error(string.format('Invalid data type "%s"', dataType))
end
end
return ret
end
local function returnErrorCat()
return require('Module:Category handler').main{
'[[Category:International Phonetic Alphabet pages needing attention]]',
other = ''
}
end
local function returnError(s)
return string.format(
'<span class="error">Error using {{[[Template:IPA symbol|IPA symbol]]}}: "%s" not found in list</span>%s',
s, returnErrorCat())
end
function p._main(s, errorText, output)
return returnData(s, output or 'article') or errorText or returnError(s)
end
function p.main(frame)
local args = {}
for k, v in pairs(frame.args) do
args[k] = v ~= '' and v
end
if not args.symbol then
return '' -- Exit early
end
if args.errortext == 'blank' then
args.errortext = ''
end
return p._main(args.symbol, args.errortext, args.output)
end
function p._link(s, displayText, prefix, suffix, audio, addSpan, errorText)
local t = returnData(s)
if t then
s = string.format('%s[[:%s|%s]]%s',
prefix or '', t.article, displayText or s, suffix or '')
if addSpan ~= 'no' then
local span = mw.html.create('span'):addClass('IPA'):attr('lang', 'und-fonipa')
if prefix or suffix then
span:addClass('nowrap'):attr('title',
'Representation in the International Phonetic Alphabet (IPA)')
end
s = tostring(span:wikitext(s))
end
if audio then
audio = require('Module:Yesno')(audio, audio)
audio = audio == true and t.audio or audio
if audio ~= '' then
audio = mw.getCurrentFrame():expandTemplate{
title = 'Template:Audio',
args = { audio, 'listen', help = 'no' }
}
audio = ' <span class="nowrap" style="font-size:85%">(' .. audio
.. ')</span>'
end
else
audio = ''
end
return s .. audio
else
return errorText or returnError(s)
end
end
function p.link(frame)
local args = {}
for k, v in pairs(frame.args) do
args[k] = v ~= '' and v
end
if not args.symbol then
return '' -- Exit early
end
if args.errortext == 'blank' then
args.errortext = ''
end
return p._link(args.symbol, args.text, args.prefix, args.suffix, args.audio,
args.span, args.errortext)
end
return p
8v9jrdlt075x5d62n990zlicnqgmssd
Ta̱mpi̱let:Done
10
2006
15854
2022-08-12T10:15:49Z
LisafBia6531
225
Created page with "<span class="nowrap">[[File:Yes check.svg|18px|link=|alt=]] '''{{{1|Done}}}'''</span>{{{{{|safesubst:}}}#if:{{{2|{{{note|{{{reason|}}}}}}}}}|: {{{2|{{{note|{{{reason}}}}}}}}}}}<!--template:done--><noinclude> {{documentation}} </noinclude>"
wikitext
text/x-wiki
<span class="nowrap">[[File:Yes check.svg|18px|link=|alt=]] '''{{{1|Done}}}'''</span>{{{{{|safesubst:}}}#if:{{{2|{{{note|{{{reason|}}}}}}}}}|: {{{2|{{{note|{{{reason}}}}}}}}}}}<!--template:done--><noinclude>
{{documentation}}
</noinclude>
tpie10klkknpn9hpmeab71azjfb5r5o
Module:IPA symbol/doc
828
2007
15855
2022-08-12T10:15:53Z
Kambai Akau
15
Created page with "<!-- Please place categories where indicated at the bottom of this page and interwikis at Wikidata (see [[Wikipedia:Wikidata]]) --> This module is used by {{t|IPA symbol}} and {{t|IPA link}}. Its data is found at [[Module:IPA symbol/data]]. ==Functions== ; {{code|main}} ; {{code|link}} ==Tracking== :{{clc|International Phonetic Alphabet pages needing attention}} ==Data== {{collapse top|Data overview}} {{#invoke:IPA symbol/overview|main}} {{collapse bottom}} {{IPA te..."
wikitext
text/x-wiki
<!-- Please place categories where indicated at the bottom of this page and interwikis at Wikidata (see [[Wikipedia:Wikidata]]) -->
This module is used by {{t|IPA symbol}} and {{t|IPA link}}. Its data is found at [[Module:IPA symbol/data]].
==Functions==
; {{code|main}}
; {{code|link}}
==Tracking==
:{{clc|International Phonetic Alphabet pages needing attention}}
==Data==
{{collapse top|Data overview}}
{{#invoke:IPA symbol/overview|main}}
{{collapse bottom}}
{{IPA templates}}
<includeonly>{{#ifeq:{{SUBPAGENAME}}|sandbox | |
<!-- Categories below this line, please; interwikis at Wikidata -->
[[Category:Language-related modules]]
}}</includeonly>
5mp27uxo2c3eyg2acow6b5sfhz2u8rd
Ta̱mpi̱let:Done/doc
10
2008
15864
15856
2022-08-12T10:26:33Z
LisafBia6531
225
LisafBia6531 shyei peji [[Ta̱mpi̱let:Done/sandbox]] nat [[Ta̱mpi̱let:Done/doc]]: sorry
wikitext
text/x-wiki
{{Documentation subpage}}
<!-- Please place categories where indicated at the bottom of this page and interwikis at Wikidata (see [[Wikipedia:Wikidata]]) -->
This template is often used on [[Wikipedia:talk pages|talk pages]] to show clearly that a section of discussion has been resolved, so that each editor does not have to re-read the section.
==Usage==
You may either use {{tl|done}} by itself for the default message or you may customize with optional parameters.
{| class="wikitable"
!Template !! Result
|-
|{{tlx|done}} || {{done}}
|-
|{{in5}}The first unnamed parameter a.k.a. {{para|1}} parameter:<br />{{tlx|done|Custom message}} || {{done|Custom message}}
|-
|{{tlx|done|1{{=}}<nowiki>[[Wikipedia:Templates for discussion|Custom message with link]]</nowiki>}} || {{done|1=[[Wikipedia:Templates for discussion|Custom message with link]]}}
|-
|{{in5}}The {{para|reason}} a.k.a. {{para|note}} or {{para|2}} parameter:<br />{{tlx|done|reason{{=}}Implemented with wording favored by comments on original request.}} || {{done|reason=Implemented with wording favored by comments on original request.}}
|-
|{{in5}}The {{para|reason}} (etc.) parameter paired with a custom message:<br />{{tlx|done|Custom message|reason{{=}}Implemented with wording favored by comments on original request.}} || {{done|Custom message|reason=Implemented with wording favored by comments on original request.}}
|}
==Example==
{| border="1" cellpadding="6" cellspacing="0"
|
{{Pseudoheading|Bias}}
I think the article is biased in favour of the school. --[[User:Example|John]]<br>
:I agree, especially the part about the student body. --[[User:Example|Jane]]
::I actually think it gives fair coverage, I read a paper about it online. --[[User:Example|George]]
:::It would be great if you could add that paper as a reference, so there's proof. Thanks, --[[User:Example|John]]
::::{{Done}} I added it today, so that should be sorted out. --[[User:Example|George]]
:::::{{Thank you}}. --[[User:Example|John]]
|}
==TemplateData==
{{FormatTemplateData|JSON=
{
"description": "This template adds a green tick mark with text and is often used on talk pages to show clearly that a section of discussion has been resolved, so that each editor does not have to re-read the section.",
"params": {
"1": {
"label": "custom message",
"type": "content",
"default": "Done",
"description": "Enter an individual message to replace the default 'Done' text."
},
"reason": {
"label": "Reason",
"aliases": [ "note" ],
"type": "content",
"description": "Text to follow the text \"Done\""
}
}
}
}}
==See also==
{{Done/See also}}
<includeonly>{{Template other|{{Sandbox other||
<!-- Categories below this line, please; interwikis at Wikidata -->
[[Category:Checkmark insertion templates]]
[[Category:Image with comment templates]]
[[Category:Resolution templates]]
}}}}</includeonly>
2heqhijq3r0hsn2sr55oqw068zm600q
Module:IPA symbol/overview
828
2009
15857
2022-08-12T10:16:58Z
Kambai Akau
15
Created page with "local data = mw.loadData('Module:IPA symbol/data') local univPatterns, keyPatterns = data.data.univPatterns, data.data.keyPatterns data = data.rawData local p = {} function p.main(frame) local ret = { frame:extensionTag{ name = 'templatestyles', args = { src = 'Module:IPA symbol/overview/styles.css' } } } local count, sCount = {}, {} -- Error detection do local symbols, dupes, invChars = {}, {}, {} local function checkSubs(t, s, name) for _, v in ipai..."
Scribunto
text/plain
local data = mw.loadData('Module:IPA symbol/data')
local univPatterns, keyPatterns = data.data.univPatterns, data.data.keyPatterns
data = data.rawData
local p = {}
function p.main(frame)
local ret = { frame:extensionTag{
name = 'templatestyles',
args = { src = 'Module:IPA symbol/overview/styles.css' }
} }
local count, sCount = {}, {}
-- Error detection
do
local symbols, dupes, invChars = {}, {}, {}
local function checkSubs(t, s, name)
for _, v in ipairs(t) do
local matched = mw.ustring.match(s, v.pat)
if matched then
table.insert(invChars, { name, matched, v.rep })
end
end
end
local function check(s, checkKeyPats)
sCount[s] = 0
for i, v in ipairs(data[s]) do
for _, symbol in ipairs(v.symbols) do
if symbols[symbol] then
table.insert(dupes, symbol)
else
symbols[symbol] = true
end
checkSubs(univPatterns, symbol, v.name)
if checkKeyPats then
checkSubs(keyPatterns, symbol, v.name)
end
sCount[s] = sCount[s] + 1
end
count[s] = i
end
end
check('sounds', true)
check('diacritics')
if dupes[1] or invChars[1] then
for _, v in ipairs(dupes) do
table.insert(ret, string.format(
'*Error: "<span class="IPA">%s</span>" is defined more than once.\n',
mw.text.nowiki(v)))
end
for _, v in ipairs(invChars) do
table.insert(ret, string.format(
'*Error: A symbol for "%s" uses "<span class="IPA">%s</span>", which will be replaced by "<span class="IPA">%s</span>".\n',
v[1], mw.text.nowiki(v[2]), mw.text.nowiki(v[3])))
end
else
table.insert(ret, 'No errors were found. ')
end
end
table.insert(ret, string.format(
'%s entries (%s in "sounds", %s in "diacritics"), %s symbols (%s in "sounds", %s in "diacritics").\n\n',
count.sounds + count.diacritics, count.sounds, count.diacritics,
sCount.sounds + sCount.diacritics, sCount.sounds, sCount.diacritics))
table.insert(ret,
'Parentheses denote a link automatically inherited from the name field. In italics are redirects.\n')
-- Table
table.insert(ret,
'{| class="wikitable sortable IPA-symbol-overview"\n!Name!!Symbols!!Article!!Audio!!Group\n')
local function renderRows(s)
for _, v in ipairs(data[s]) do
local parenL = v.article and '' or '('
local parenR = v.article and '' or ')'
local article = v.article or v.name
local symbols = {}
for j, w in ipairs(v.symbols) do
symbols[j] = mw.text.nowiki(w)
end
local audio = ''
if v.audio then
if frame.args.check_wikidata == 'yes' then
local rt = mw.title.new(article).redirectTarget
rt = rt and rt.text or article
local qId = mw.wikibase.getEntityIdForTitle(rt)
local wdAudio = qId and mw.wikibase.getEntity(qId).claims
wdAudio = wdAudio and wdAudio['P51']
if wdAudio then
wdAudio = wdAudio[1].mainsnak.datavalue.value
audio = wdAudio and wdAudio ~= v.audio
and ' (≠ [[wikidata:' .. qId .. '#P51|Wikidata]])'
or ''
elseif qId then
audio = ' (not on [[wikidata:' .. qId .. '|Wikidata]])'
end
end
audio = string.format(
'[[:File:%s|%s]] <small>([[Media:%s|play]])</small>',
v.audio, v.audio, v.audio) .. audio
end
table.insert(ret, string.format(
'|-\n|%s||class="IPA"|%s||%s[[:%s]]%s||%s||%s\n',
v.name, table.concat(symbols, ' , '), parenL, article,
parenR, audio, s))
end
end
renderRows('sounds')
renderRows('diacritics')
table.insert(ret, '|}')
return table.concat(ret)
end
return p
bwgzhmadqh6qc2wv29suefnmgy9qdw8
Module:IPA symbol/overview/doc
828
2010
15858
2022-08-12T10:17:38Z
Kambai Akau
15
Created page with "{{Uses TemplateStyles|Module:IPA symbol/overview/styles.css}} Generates the collapsed "Data overview" box on [[Module:IPA symbol/doc]] and [[Module:IPA symbol/data/doc]] <includeonly>{{#ifeq:{{SUBPAGENAME}}|sandbox | | <!-- Categories below this line, please; interwikis at Wikidata --> [[Category:Language-related modules]] }}</includeonly>"
wikitext
text/x-wiki
{{Uses TemplateStyles|Module:IPA symbol/overview/styles.css}}
Generates the collapsed "Data overview" box on [[Module:IPA symbol/doc]] and [[Module:IPA symbol/data/doc]]
<includeonly>{{#ifeq:{{SUBPAGENAME}}|sandbox | |
<!-- Categories below this line, please; interwikis at Wikidata -->
[[Category:Language-related modules]]
}}</includeonly>
ekl17fp7qocyxfm3bthr9315jjj0fpy
Module:IPA symbol/data/doc
828
2011
15859
2022-08-12T10:19:00Z
Kambai Akau
15
Created page with "'''Before adding a symbol here, consider using the display text option of {{tl|IPA link}}, as in <code><nowiki>{{IPA link|p|b̥}}</nowiki></code>.''' When editing the data, make sure it has no errors by checking the overview below (note, however, that it is not capable of detecting all errors). {{collapse top|Overview<noinclude>|expand=yes</noinclude>}} {{float|right|([[Module:IPA symbol/data/doc|Wikidata check]])}} {{#invoke:IPA symbol/overview|main<noinclude>|check_w..."
wikitext
text/x-wiki
'''Before adding a symbol here, consider using the display text option of {{tl|IPA link}}, as in <code><nowiki>{{IPA link|p|b̥}}</nowiki></code>.'''
When editing the data, make sure it has no errors by checking the overview below (note, however, that it is not capable of detecting all errors).
{{collapse top|Overview<noinclude>|expand=yes</noinclude>}}
{{float|right|([[Module:IPA symbol/data/doc|Wikidata check]])}}
{{#invoke:IPA symbol/overview|main<noinclude>|check_wikidata=yes</noinclude>}}
{{collapse bottom}}
<includeonly>{{#ifeq:{{SUBPAGENAME}}|sandbox | |
<!-- Categories below this line, please; interwikis at Wikidata -->
[[Category:Language-related modules]]
}}</includeonly>
qv0hu6vcnap4lhv5w9ryc7dfgt7uqeb
Module:IPA symbol/overview/styles.css
828
2012
15860
2022-08-12T10:22:14Z
Kambai Akau
15
Created page with ".IPA-symbol-overview .mw-redirect { font-style: italic; }"
sanitized-css
text/css
.IPA-symbol-overview .mw-redirect {
font-style: italic;
}
je1bvkocuxgnw8ray9shhuc89noi4e3
Module:IPA symbol/data
828
2013
15861
2022-08-12T10:24:11Z
Kambai Akau
15
Created page with "local data = { sounds = {}, diacritics = {}, univPatterns = { { pat = "g", -- Latin Small Letter G rep = "ɡ" -- Latin Small Letter Script G }, { pat = "ᵍ", -- Modifier Letter Small G rep = "ᶢ" -- Modifier Letter Small Script G }, { pat = "l̴", -- 'l' + Combining Tilde Overlay rep = "ɫ" -- Latin Small Letter L with Middle Tilde }, { pat = "ˁ", -- Modifier Letter Reversed Glottal Stop rep = "ˤ" -- Modifier Letter Small Reve..."
Scribunto
text/plain
local data = {
sounds = {},
diacritics = {},
univPatterns = {
{
pat = "g", -- Latin Small Letter G
rep = "ɡ" -- Latin Small Letter Script G
},
{
pat = "ᵍ", -- Modifier Letter Small G
rep = "ᶢ" -- Modifier Letter Small Script G
},
{
pat = "l̴", -- 'l' + Combining Tilde Overlay
rep = "ɫ" -- Latin Small Letter L with Middle Tilde
},
{
pat = "ˁ", -- Modifier Letter Reversed Glottal Stop
rep = "ˤ" -- Modifier Letter Small Reversed Glottal Stop
},
{
pat = "’", -- Right Single Quotation Mark
rep = "ʼ" -- Modifier Letter Apostrophe
},
{
pat = "ȷ", -- Latin Small Letter Dotless J
rep = "j" -- Latin Small Letter J
},
{
pat = "ʇ", -- Latin Small Letter Turned T
rep = "ǀ" -- Latin Letter Dental Click
},
{
pat = "[!ʗ]", -- Exclamation Mark / Latin Letter Stretched C
rep = "ǃ" -- Latin Letter Retroflex Click
},
{
pat = "ǃǃ", -- Latin Letter Retroflex Click x 2
rep = "‼" -- Double Exclamation Mark
},
{
pat = "ʖ", -- Latin Letter Inverted Glottal Stop
rep = "ǁ" -- Latin Letter Lateral Click
},
},
keyPatterns = {
-- These do not affect the revese look for diacritics
{
pat = "[͜͡ːˑ◌]", -- Tie bars, length marks, dotted circle
rep = ""
},
{
pat = "ᵏ", -- Modifier Letter Small K
rep = "k" -- Latin Small Letter K
},
{
pat = "ᶢ", -- Modifier Letter Small Script G
rep = "ɡ" -- Latin Small Letter Script G
},
{
pat = "ᵑ", -- Modifier Letter Small Eng
rep = "ŋ" -- Latin Small Letter Eng
},
}
}
local rawData = {
sounds = {
-- PULMONIC CONSONANTS
-- Nasals
{
name = "Voiceless bilabial nasal",
symbols = { "m̥" },
},
{
name = "Voiced bilabial nasal",
symbols = { "m" },
audio = "Bilabial nasal.ogg"
},
{
name = "Voiced labiodental nasal",
symbols = { "ɱ" },
audio = "Labiodental nasal.ogg"
},
{
name = "Voiced linguolabial nasal",
symbols = { "n̼" },
audio = "Linguolabial nasal.ogg"
},
{
name = "Voiced dental nasal",
symbols = { "n̪" },
},
{
name = "Voiceless alveolar nasal",
symbols = { "n̥" },
},
{
name = "Voiced alveolar nasal",
symbols = { "n" },
audio = "Alveolar nasal.ogg"
},
{
name = "Voiced postalveolar nasal",
symbols = { "n̠" },
},
{
name = "Voiceless retroflex nasal",
symbols = { "ɳ̊", "ɳ̥" },
},
{
name = "Voiced retroflex nasal",
symbols = { "ɳ" },
audio = "Retroflex nasal.ogg"
},
{
name = "Voiceless alveolo-palatal nasal",
symbols = { "n̠̊ʲ", "ɲ̊˖", "ɲ̟̊", "ȵ̊" },
},
{
name = "Voiced alveolo-palatal nasal",
symbols = { "n̠ʲ", "ɲ˖", "ɲ̟", "ȵ" },
},
{
name = "Voiceless palatal nasal",
symbols = { "ɲ̊", "ɲ̥" },
},
{
name = "Voiced palatal nasal",
symbols = { "ɲ" },
audio = "Palatal nasal.ogg"
},
{
name = "Voiced post-palatal nasal",
symbols = { "ɲ˗", "ɲ̠", "ŋ˖", "ŋ̟" },
},
{
name = "Voiceless velar nasal",
symbols = { "ŋ̊", "ŋ̥" },
},
{
name = "Voiced velar nasal",
symbols = { "ŋ" },
audio = "Velar nasal.ogg"
},
{
name = "Voiced pre-uvular nasal",
symbols = { "ɴ̟", "ŋ˗", "ŋ̠" },
},
{
name = "Voiced uvular nasal",
symbols = { "ɴ" },
audio = "Uvular nasal.ogg"
},
-- Plosives
{
name = "Voiceless bilabial plosive",
symbols = { "p" },
audio = "Voiceless bilabial plosive.ogg"
},
{
name = "Voiced bilabial plosive",
symbols = { "b" },
audio = "Voiced bilabial plosive.ogg"
},
{
name = "Voiceless labiodental plosive",
symbols = { "p̪", "p͆" },
},
{
name = "Voiced labiodental plosive",
symbols = { "b̪" },
},
{
name = "Voiceless linguolabial plosive",
symbols = { "t̼" },
audio = "Voiceless linguolabial stop.ogg"
},
{
name = "Voiced linguolabial plosive",
symbols = { "d̼" },
audio = "Voiced linguolabial stop.ogg"
},
{
name = "Voiceless dental plosive",
symbols = { "t̪" },
audio = "Voiceless dental stop.ogg"
},
{
name = "Voiced dental plosive",
symbols = { "d̪" },
audio = "Voiced dental stop.ogg"
},
{
name = "Voiceless alveolar plosive",
symbols = { "t" },
audio = "Voiceless alveolar plosive.ogg"
},
{
name = "Voiced alveolar plosive",
symbols = { "d" },
audio = "Voiced alveolar plosive.ogg"
},
{
name = "Voiceless postalveolar plosive",
symbols = { "t̠" },
},
{
name = "Voiced postalveolar plosive",
symbols = { "d̠" },
},
{
name = "Voiceless retroflex plosive",
symbols = { "ʈ" },
audio = "Voiceless retroflex stop.oga"
},
{
name = "Voiced retroflex plosive",
symbols = { "ɖ" },
audio = "Voiced retroflex stop.oga"
},
{
name = "Voiceless alveolo-palatal plosive",
symbols = { "t̠ʲ", "c̟", "ȶ" },
},
{
name = "Voiced alveolo-palatal plosive",
symbols = { "d̠ʲ", "ɟ˖", "ɟ̟", "ȡ" },
},
{
name = "Voiceless palatal plosive",
symbols = { "c" },
audio = "Voiceless palatal plosive.ogg"
},
{
name = "Voiced palatal plosive",
symbols = { "ɟ" },
audio = "Voiced palatal plosive.ogg"
},
{
name = "Voiceless post-palatal plosive",
symbols = { "c̠", "k̟" },
},
{
name = "Voiced post-palatal plosive",
symbols = { "ɟ˗", "ɟ̠", "ɡ˖", "ɡ̟" },
},
{
name = "Voiceless velar plosive",
symbols = { "k" },
audio = "Voiceless velar plosive.ogg"
},
{
name = "Voiced velar plosive",
symbols = { "ɡ" },
audio = "Voiced velar plosive 02.ogg"
},
{
name = "Voiceless pre-uvular plosive",
symbols = { "q˖", "q̟", "k̠" },
},
{
name = "Voiced pre-uvular plosive",
symbols = { "ɢ̟", "ɡ˗", "ɡ̠" },
},
{
name = "Voiceless uvular plosive",
symbols = { "q" },
audio = "Voiceless uvular plosive.ogg"
},
{
name = "Voiced uvular plosive",
symbols = { "ɢ" },
audio = "Voiced uvular stop.oga"
},
{
name = "Epiglottal plosive",
symbols = { "ʡ" },
audio = "Epiglottal stop.ogg"
},
{
name = "Glottal stop",
symbols = { "ʔ" },
audio = "Glottal stop.ogg"
},
-- Affricates
{
name = "Voiceless bilabial affricate",
symbols = { "pɸ" },
audio = "Voiceless bilabial affricate.ogg"
},
{
name = "Voiced bilabial affricate",
symbols = { "bβ" },
},
{
name = "Voiceless labiodental affricate",
symbols = { "p̪f", "p͆f", "pf" },
audio = "Voiceless labiodental affricate.ogg"
},
{
name = "Voiced labiodental affricate",
symbols = { "b̪v", "bv" },
audio = "Voiced labiodental affricate.ogg"
},
{
name = "Voiceless dental affricate",
symbols = { "t̪s̪", "ts̪", "t̟s̟", "ts̟" },
audio = "Voiceless dental sibilant affricate.oga"
},
{
name = "Voiced dental affricate",
symbols = { "d̪z̪", "dz̪", "d̟z̟", "dz̟" },
audio = "Voiced dental sibilant affricate.oga"
},
{
name = "Voiceless dental non-sibilant affricate",
symbols = { "t̪θ", "t̟θ", "tθ" },
audio = "Voiceless dental non-sibilant affricate.oga"
},
{
name = "Voiced dental non-sibilant affricate",
symbols = { "d̪ð", "d̟ð", "dð" },
audio = "Voiced dental non-sibilant affricate.oga"
},
{
name = "Voiceless alveolar affricate",
symbols = { "ts", "ʦ" },
audio = "Voiceless alveolar sibilant affricate.oga"
},
{
name = "Voiced alveolar affricate",
symbols = { "dz", "ʣ" },
audio = "Voiced alveolar sibilant affricate.oga"
},
{
name = "Voiceless apico-alveolar affricate",
symbols = { "t̺s̺", "ts̺", "t̠s̠", "ts̠" },
},
{
name = "Voiced apico-alveolar affricate",
symbols = { "d̺z̺", "dz̺", "d̠z̠", "dz̠" },
},
{
name = "Voiceless alveolar non-sibilant affricate",
symbols = { "tɹ̝̊", "tɹ̥", "tθ̠", "tθ͇" },
},
{
name = "Voiced alveolar non-sibilant affricate",
symbols = { "dɹ̝", "dɹ", "dð̠", "dð͇" },
},
{
name = "Voiceless postalveolar affricate",
symbols = { "t̠ʃ", "tʃ", "ʧ" },
audio = "Voiceless palato-alveolar affricate.ogg"
},
{
name = "Voiced postalveolar affricate",
symbols = { "d̠ʒ", "dʒ", "ʤ" },
audio = "Voiced palato-alveolar affricate.ogg"
},
{
name = "Voiceless postalveolar non-sibilant affricate",
symbols = { "t̠ɹ̠̊˔", "tɹ̠̊˔", "tɹ̝̊˗", "t̠ɹ̝̊˗", "t̠ɹ̠̊", "tɹ̠̊" },
audio = "Voiceless postalveolar non-sibilant affricate.ogg"
},
{
name = "Voiced postalveolar non-sibilant affricate",
symbols = { "d̠ɹ̠˔", "dɹ̠˔", "dɹ̝˗", "d̠ɹ̝˗", "d̠ɹ̠", "dɹ̠" },
audio = "Voiced postalveolar non-sibilant affricate.ogg"
},
{
name = "Voiceless retroflex affricate",
symbols = { "ʈʂ", "tʂ" },
audio = "Voiceless retroflex affricate.ogg"
},
{
name = "Voiced retroflex affricate",
symbols = { "ɖʐ", "dʐ" },
audio = "Voiced retroflex affricate.ogg"
},
{
name = "Voiceless alveolo-palatal affricate",
symbols = { "tɕ", "cɕ", "ʨ" },
audio = "Voiceless alveolo-palatal affricate.ogg"
},
{
name = "Voiced alveolo-palatal affricate",
symbols = { "dʑ", "ɟʑ", "ʥ" },
audio = "Voiced alveolo-palatal affricate.ogg"
},
{
name = "Voiceless palatal affricate",
symbols = { "cç" },
audio = "Voiceless palatal affricate.ogg"
},
{
name = "Voiced palatal affricate",
symbols = { "ɟʝ" },
audio = "Voiced palatal affricate.ogg"
},
{
name = "Voiceless post-palatal affricate",
symbols = { "c̠ç˗", "cç˗", "c̠ç̠", "cç̠", "k̟x̟", "kx̟" },
},
{
name = "Voiced post-palatal affricate",
symbols = { "ɟ˗ʝ˗", "ɟʝ˗", "ɟ̠ʝ̠", "ɟʝ̠", "ɡ˖ɣ˖", "ɡɣ˖", "ɡ̟ɣ̟", "ɡɣ̟" },
},
{
name = "Voiceless velar affricate",
symbols = { "kx" },
audio = "Voiceless velar affricate.ogg"
},
{
name = "Voiced velar affricate",
symbols = { "ɡɣ" },
audio = "Voiced velar affricate.ogg"
},
{
name = "Voiceless pre-uvular affricate",
symbols = { "q˖χ˖", "qχ˖", "q̟χ̟", "qχ̟", "k̠x̠", "kx̠" },
},
{
name = "Voiceless uvular affricate",
symbols = { "qχ" },
audio = "Voiceless uvular affricate.ogg"
},
{
name = "Voiced uvular affricate",
symbols = { "ɢʁ" },
audio = "Voiced uvular affricate.ogg"
},
{
name = "Voiceless pharyngeal affricate",
symbols = { "ʡħ" },
},
{
name = "Voiceless epiglottal affricate",
symbols = { "ʡʜ" },
audio = "Voiceless epiglottal affricate.ogg"
},
{
name = "Voiced epiglottal affricate",
symbols = { "ʡʢ" },
audio = "Voiced epiglottal affricate.ogg"
},
{
name = "Voiceless glottal affricate",
symbols = { "ʔh" },
audio = "Voiceless glottal affricate.ogg"
},
-- Fricatives
{
name = "Voiceless bilabial fricative",
symbols = { "ɸ", "β̞̊", "β̥˕" },
audio = "Voiceless bilabial fricative.ogg"
},
{
name = "Voiced bilabial fricative",
symbols = { "β" },
audio = "Voiced bilabial fricative.ogg"
},
{
name = "Voiceless labiodental fricative",
symbols = { "f", "ʋ̥", "f̞" },
audio = "Voiceless labio-dental fricative.ogg"
},
{
name = "Voiced labiodental fricative",
symbols = { "v" },
audio = "Voiced labio-dental fricative.ogg"
},
{
name = "Voiceless linguolabial fricative",
symbols = { "θ̼" },
audio = "Voiceless linguolabial fricative.ogg"
},
{
name = "Voiced linguolabial fricative",
symbols = { "ð̼" },
},
{
name = "Voiceless dental fricative",
symbols = { "θ", "θ̞" },
audio = "Voiceless dental fricative.ogg"
},
{
name = "Voiced dental fricative",
symbols = { "ð" },
audio = "Voiced dental fricative.ogg"
},
{
name = "Voiceless dental sibilant fricative",
symbols = { "s̪" },
},
{
name = "Voiced dental sibilant fricative",
symbols = { "z̪" },
},
{
name = "Voiceless denti-alveolar fricative",
symbols = { "s̻̪", "s̪̻", "s̻͆", "s̟" },
},
{
name = "Voiceless alveolar fricative",
symbols = { "s" },
audio = "Voiceless alveolar sibilant.ogg"
},
{
name = "Voiced alveolar fricative",
symbols = { "z" },
audio = "Voiced alveolar sibilant.ogg"
},
{
name = "Voiceless apico-alveolar fricative",
symbols = { "s̺" },
},
{
name = "Voiced apico-alveolar fricative",
symbols = { "z̺" },
},
{
name = "Voiceless alveolar retracted fricative",
symbols = { "s̠" },
audio = "Voiceless alveolar retracted sibilant.ogg"
},
{
name = "Voiced alveolar retracted fricative",
symbols = { "z̠" },
},
{
name = "Voiceless alveolar non-sibilant fricative",
symbols = { "θ̠", "θ͇", "ɹ̝̊", "ɹ̥" },
audio = "Voiceless alveolar non-sibilant fricative.ogg"
},
{
name = "Voiced alveolar non-sibilant fricative",
symbols = { "ð̠", "ð͇", "ɹ̝" },
audio = "Voiced alveolar non-sibilant fricative.ogg"
},
{
name = "Voiceless alveolar tapped fricative",
symbols = { "ɾ̞̊" },
},
{
name = "Voiced alveolar tapped fricative",
symbols = { "ɾ̞" },
audio = "Voiced alveolar tapped fricative.ogg"
},
{
name = "Voiceless postalveolar fricative",
symbols = { "ʃ" },
audio = "Voiceless palato-alveolar sibilant.ogg"
},
{
name = "Voiced postalveolar fricative",
symbols = { "ʒ" },
audio = "Voiced palato-alveolar sibilant.ogg"
},
{
name = "Voiceless postalveolar non-sibilant fricative",
symbols = { "ɹ̠̊˔", "ɹ̝̊˗" },
audio = "Voiceless postalveolar non-sibilant fricative.ogg"
},
{
name = "Voiced postalveolar non-sibilant fricative",
symbols = { "ɹ̠˔", "ɹ̝˗" },
audio = "Voiced postalveolar non-sibilant fricative.ogg"
},
{
name = "Voiceless retroflex fricative",
symbols = { "ʂ" },
audio = "Voiceless retroflex sibilant.ogg"
},
{
name = "Voiced retroflex fricative",
symbols = { "ʐ" },
audio = "Voiced retroflex sibilant.ogg"
},
{
name = "Voiced retroflex non-sibilant fricative",
symbols = { "ɻ̝", "ɻ˔", "ɻ̊" },
},
{
name = "Voiceless alveolo-palatal fricative",
symbols = { "ɕ" },
audio = "Voiceless alveolo-palatal sibilant.ogg"
},
{
name = "Voiced alveolo-palatal fricative",
symbols = { "ʑ" },
audio = "Voiced alveolo-palatal sibilant.ogg"
},
{
name = "Voiceless palatal fricative",
symbols = { "ç" },
audio = "Voiceless palatal fricative.ogg"
},
{
name = "Voiced palatal fricative",
symbols = { "ʝ", "j̊" },
audio = "Voiced palatal fricative.ogg"
},
{
name = "Voiceless post-palatal fricative",
symbols = { "ç˗", "ç̠", "x̟" },
},
{
name = "Voiced post-palatal fricative",
symbols = { "ʝ˗", "ʝ̠", "ɣ˖", "ɣ̟" },
},
{
name = "Voiceless velar fricative",
symbols = { "x", "ɰ̊", "x̞", "ɣ̊˕", "ɣ̞̊" },
audio = "Voiceless velar fricative.ogg"
},
{
name = "Voiced velar fricative",
symbols = { "ɣ" },
audio = "Voiced velar fricative.ogg"
},
{
name = "Voiceless pre-uvular fricative",
symbols = { "χ˖", "χ̟", "x̠" },
},
{
name = "Voiced pre-uvular fricative",
symbols = { "ʁ̟", "ɣ˗", "ɣ̠" },
},
{
name = "Voiceless uvular fricative",
symbols = { "χ" },
audio = "Voiceless uvular fricative.ogg"
},
{
name = "Voiced uvular fricative",
symbols = { "ʁ" },
audio = "Voiced uvular fricative.ogg"
},
{
name = "Voiceless pharyngeal fricative",
symbols = { "ħ" },
audio = "Voiceless pharyngeal fricative.ogg"
},
{
name = "Voiced pharyngeal fricative",
symbols = { "ʕ" },
audio = "Voiced pharyngeal fricative.ogg"
},
{
name = "Voiceless glottal fricative",
symbols = { "h" },
audio = "Voiceless glottal fricative.ogg"
},
{
name = "Voiced glottal fricative",
symbols = { "ɦ" },
audio = "Voiced glottal fricative.ogg"
},
{
name = "Voiceless bidental fricative",
symbols = { "h̪͆" },
},
-- Approximants
{
name = "Voiced bilabial approximant",
symbols = { "β̞" },
audio = "Bilabial approximant.ogg"
},
{
name = "Voiced labiodental approximant",
symbols = { "ʋ" },
audio = "Labiodental approximant.ogg"
},
{
name = "Voiced dental approximant",
symbols = { "ð̞" },
audio = "Voiced dental approximant.ogg"
},
{
name = "Voiced alveolar approximant",
symbols = { "ɹ" },
audio = "Alveolar approximant.ogg"
},
{
name = "Voiced postalveolar approximant",
symbols = { "ɹ̠" },
audio = "Postalveolar approximant.ogg"
},
{
name = "Voiced retroflex approximant",
symbols = { "ɻ" },
audio = "Retroflex Approximant2.oga"
},
{
name = "Voiced palatal approximant",
symbols = { "j", "ʝ˕", "ʝ̞" },
audio = "Palatal approximant.ogg"
},
{
name = "Voiced post-palatal approximant",
symbols = { "j˗", "j̠", "ɰ̟", "ɰ˖", "ʝ˕˗", "ʝ˗˕", "ʝ̞˗", "ɣ˕˖", "ɣ˖˕", "ɣ̞˖" },
audio = "Post-palatal approximant.ogg"
},
{
name = "Voiced velar approximant",
symbols = { "ɰ", "ɣ˕", "ɣ̞" },
audio = "Voiced velar approximant.ogg"
},
{
name = "Voiced uvular approximant",
symbols = { "ʁ̞" },
audio = "Voiced Uvular Approximant.ogg"
},
{
name = "Voiced pharyngeal approximant",
symbols = { "ʕ̞" },
},
{
name = "Voiced epiglottal approximant",
symbols = { "ʢ̞" },
},
{
name = "Creaky-voiced glottal approximant",
symbols = { "ʔ̞", "ʔ̰" },
},
-- Taps/flaps
{
name = "Voiced bilabial flap",
symbols = { "ⱱ̟", "b̆" },
},
{
name = "Voiced labiodental flap",
symbols = { "ⱱ" },
audio = "Labiodental flap.ogg"
},
{
name = "Voiced linguolabial tap",
symbols = { "ɾ̼" },
},
{
name = "Voiced dental tap or flap",
symbols = { "ɾ̪" },
article = "Dental tap",
},
{
name = "Voiceless alveolar tap or flap",
symbols = { "ɾ̥" },
article = "Voiceless alveolar tap",
},
{
name = "Voiced alveolar tap or flap",
symbols = { "ɾ" },
article = "Voiced dental and alveolar taps and flaps",
audio = "Alveolar tap.ogg"
},
{
name = "Voiced postalveolar flap",
symbols = { "ɾ̠" },
},
{
name = "Voiced alveolar nasal tap or flap",
symbols = { "ɾ̃", "n̆" },
article = "Alveolar nasal tap",
},
{
name = "Voiceless retroflex flap",
symbols = { "ɽ̊" },
},
{
name = "Voiced retroflex flap",
symbols = { "ɽ" },
audio = "Retroflex flap.ogg"
},
{
name = "Voiced velar tap",
symbols = { "ɡ̆" },
},
{
name = "Voiced uvular tap or flap",
symbols = { "ɢ̆", "ʀ̆" },
article = "Voiced uvular tap and flap",
},
{
name = "Voiced epiglottal tap",
symbols = { "ʡ̆", "ʢ̆" },
audio = "Epiglottal flap.oga"
},
-- Trills
{
name = "Voiceless bilabial trill",
symbols = { "ʙ̥" },
audio = "Voiceless bilabial trill with aspiration.ogg"
},
{
name = "Voiced bilabial trill",
symbols = { "ʙ" },
audio = "Bilabial trill.ogg"
},
{
name = "Voiced linguolabial trill",
symbols = { "r̼" },
audio = "Linguolabial trill.ogg"
},
{
name = "Voiced dental trill",
symbols = { "r̪" },
},
{
name = "Voiceless alveolar trill",
symbols = { "r̥" },
audio = "Voiceless alveolar trill.ogg"
},
{
name = "Voiced alveolar trill",
symbols = { "r" },
audio = "Alveolar trill.ogg"
},
{
name = "Voiceless alveolar fricative trill",
symbols = { "r̝̊" },
},
{
name = "Voiced alveolar fricative trill",
symbols = { "r̝" },
audio = "Raised alveolar non-sonorant trill.ogg"
},
{
name = "Voiced postalveolar trill",
symbols = { "r̠" },
audio = "Voiced postalveolar trill.ogg"
},
{
name = "Voiceless retroflex trill",
symbols = { "ɽ̊r̥", "ɽr̥" },
},
{
name = "Voiced retroflex trill",
symbols = { "ɽr" },
audio = "Voiced retroflex trill.ogg"
},
{
name = "Voiceless pre-uvular fricative trill",
symbols = { "ʀ̝̊˖", "ʀ̟̊˔" },
},
{
name = "Voiced pre-uvular fricative trill",
symbols = { "ʀ̝˖", "ʀ̟˔" },
},
{
name = "Voiceless uvular trill",
symbols = { "ʀ̥" },
audio = "Voiceless uvular trill.ogg"
},
{
name = "Voiced uvular trill",
symbols = { "ʀ" },
audio = "Uvular trill.ogg"
},
{
name = "Voiceless uvular fricative trill",
symbols = { "ʀ̝̊" },
},
{
name = "Voiced uvular fricative trill",
symbols = { "ʀ̝" },
},
{
name = "Voiceless epiglottal trill",
symbols = { "ʜ" },
audio = "Voiceless epiglottal trill.ogg"
},
{
name = "Voiced epiglottal trill",
symbols = { "ʢ" },
audio = "Voiced epiglottal trill 2.ogg"
},
-- Lateral affricates
{
name = "Voiceless alveolar lateral affricate",
symbols = { "tɬ", "ƛ" },
audio = "Voiceless alveolar lateral affricate.ogg"
},
{
name = "Voiced alveolar lateral affricate",
symbols = { "dɮ" },
audio = "Voiced alveolar lateral affricate.ogg"
},
{
name = "Voiceless retroflex lateral affricate",
symbols = { "ʈɭ̊˔","ʈɭ̊", "tꞎ", "ʈꞎ" },
},
{
name = "Voiced retroflex lateral affricate",
symbols = { "ɖɭ˔","ɖɭ", "d𝼅", "ɖ𝼅" },
},
{
name = "Voiceless palatal lateral affricate",
symbols = { "cʎ̝̊", "cʎ̥", "c𝼆", "t𝼆" },
audio = "Voiceless palatal lateral affricate.ogg"
},
{
name = "Voiced palatal lateral affricate",
symbols = { "ɟʎ̝", "ɟʎ", "ɟ𝼆̬", "d𝼆̬" },
},
{
name = "Voiceless velar lateral affricate",
symbols = { "kʟ̝̊", "kʟ̥", "k𝼄" },
audio = "Voiceless velar lateral affricate.ogg"
},
{
name = "Voiced velar lateral affricate",
symbols = { "ɡʟ̝", "ɡʟ", "ɡ𝼄̬" },
audio = "Voiced velar lateral affricate.ogg"
},
-- Lateral fricatives
{
name = "Voiceless dental lateral fricative",
symbols = { "ɬ̪" },
},
{
name = "Voiced dental lateral fricative",
symbols = { "ɮ̪", "ɮ͆" },
},
{
name = "Voiceless alveolar lateral fricative",
symbols = { "ɬ", "l̥" },
audio = "Voiceless alveolar lateral fricative.ogg"
},
{
name = "Voiced alveolar lateral fricative",
symbols = { "ɮ" },
audio = "Voiced alveolar lateral fricative.ogg"
},
{
name = "Voiceless retroflex lateral fricative",
symbols = { "ɭ̊˔", "ꞎ", "ɭ̊" },
audio = "Voiceless retroflex lateral fricative.ogg"
},
{
name = "Voiced retroflex lateral fricative",
symbols = { "ɭ˔", "𝼅" },
},
{
name = "Voiceless alveolo-palatal lateral fricative",
symbols = { "ɬ̠ʲ", "ʎ̝̊˖", "ȴ̊˔", "l̠̊ʲ", "ʎ̟̊", "ȴ̊" },
},
{
name = "Voiceless palatal lateral fricative",
symbols = { "ʎ̝̊", "ʎ̥", "𝼆" },
audio = "Voiceless palatal lateral fricative.ogg"
},
{
name = "Voiced palatal lateral fricative",
symbols = { "ʎ̝", "𝼆̬" },
},
{
name = "Voiceless velar lateral fricative",
symbols = { "ʟ̝̊", "ʟ̥", "𝼄" },
audio = "Voiceless velar lateral fricative.ogg"
},
{
name = "Voiced velar lateral fricative",
symbols = { "ʟ̝", "𝼄̬" },
audio = "Voiced velar lateral fricative.ogg"
},
-- Lateral approximants
{
name = "Voiced dental lateral approximant",
symbols = { "l̪" },
audio = "Voiced dental lateral approximant.ogg"
},
{
name = "Voiced alveolar lateral approximant",
symbols = { "l" },
audio = "Alveolar lateral approximant.ogg"
},
{
name = "Voiced postalveolar lateral approximant",
symbols = { "l̠" },
audio = "Voiced postalveolar lateral approximant.ogg"
},
{
name = "Voiced retroflex lateral approximant",
symbols = { "ɭ" },
audio = "Retroflex lateral approximant.ogg"
},
{
name = "Voiced alveolo-palatal lateral approximant",
symbols = { "l̠ʲ", "ʎ̟", "ȴ" },
},
{
name = "Voiced palatal lateral approximant",
symbols = { "ʎ" },
audio = "Palatal lateral approximant.ogg"
},
{
name = "Voiced velar lateral approximant",
symbols = { "ʟ" },
audio = "Velar lateral approximant.ogg"
},
{
name = "Voiced uvular lateral approximant",
symbols = { "ʟ̠" },
audio = "Uvular lateral approximant.ogg"
},
-- Lateral taps/flaps
{
name = "Voiceless alveolar lateral flap",
symbols = { "ɺ̥" },
},
{
name = "Voiced alveolar lateral flap",
symbols = { "ɺ" },
},
{
name = "Voiceless retroflex lateral flap",
symbols = { "ɭ̥̆", "𝼈̥" },
},
{
name = "Voiced retroflex lateral flap",
symbols = { "ɭ̆", "𝼈" },
},
{
name = "Voiced palatal lateral flap",
symbols = { "ʎ̆" },
},
{
name = "Voiced velar lateral tap",
symbols = { "ʟ̆" },
},
-- NON-PULMONIC CONSONANTS
-- Ejective stops
{
name = "Bilabial ejective stop",
symbols = { "pʼ" },
audio = "Bilabial ejective plosive.ogg"
},
{
name = "Dental ejective stop",
symbols = { "t̪ʼ" },
},
{
name = "Alveolar ejective stop",
symbols = { "tʼ" },
audio = "Alveolar ejective plosive.ogg"
},
{
name = "Retroflex ejective stop",
symbols = { "ʈʼ" },
audio = "Retroflex ejective.ogg"
},
{
name = "Palatal ejective stop",
symbols = { "cʼ" },
audio = "Palatal ejective.ogg"
},
{
name = "Velar ejective stop",
symbols = { "kʼ" },
audio = "Velar ejective plosive.ogg"
},
{
name = "Uvular ejective stop",
symbols = { "qʼ" },
audio = "Uvular ejective plosive.ogg"
},
{
name = "Epiglottal ejective",
symbols = { "ʡʼ" },
audio = "Epiglottal ejective.ogg"
},
-- Ejective affricates
{
name = "Dental ejective affricate",
symbols = { "t̪θʼ", "t̟θʼ", "tθʼ" },
audio = "Dental ejective affricate.ogg"
},
{
name = "Alveolar ejective affricate",
symbols = { "tsʼ" },
audio = "Alveolar ejective affricate.ogg"
},
{
name = "Palato-alveolar ejective affricate",
symbols = { "t̠ʃʼ", "tʃʼ" },
audio = "Palato-alveolar ejective affricate.ogg"
},
{
name = "Retroflex ejective affricate",
symbols = { "ʈʂʼ", "tʂʼ" },
audio = "Retroflex ejective affricate.ogg"
},
{
name = "Alveolo-palatal ejective affricate",
symbols = { "t̠ɕʼ", "tɕʼ", "cɕʼ" },
},
{
name = "Palatal ejective affricate",
symbols = { "cçʼ" },
audio = "Palatal ejective affricate.ogg"
},
{
name = "Velar ejective affricate",
symbols = { "kxʼ" },
audio = "Velar ejective affricate.ogg"
},
{
name = "Uvular ejective affricate",
symbols = { "qχʼ" },
audio = "Uvular ejective affricate.ogg"
},
-- Ejective fricatives
{
name = "Bilabial ejective fricative",
symbols = { "ɸʼ" },
},
{
name = "Labiodental ejective fricative",
symbols = { "fʼ" },
audio = "Labiodental ejective fricative.ogg"
},
{
name = "Dental ejective fricative",
symbols = { "θʼ" },
audio = "Dental ejective fricative.ogg"
},
{
name = "Alveolar ejective fricative",
symbols = { "sʼ" },
audio = "Alveolar ejective fricative.ogg"
},
{
name = "Palato-alveolar ejective fricative",
symbols = { "ʃʼ" },
audio = "Palato-alveolar ejective fricative.ogg"
},
{
name = "Retroflex ejective fricative",
symbols = { "ʂʼ" },
audio = "Retroflex ejective fricative.ogg"
},
{
name = "Alveolo-palatal ejective fricative",
symbols = { "ɕʼ" },
audio = "Alveolo-palatal ejective fricative.ogg"
},
{
name = "Palatal ejective fricative",
symbols = { "çʼ" },
audio = "Palatal ejective fricative.ogg"
},
{
name = "Velar ejective fricative",
symbols = { "xʼ" },
audio = "Velar ejective fricative.ogg"
},
{
name = "Uvular ejective fricative",
symbols = { "χʼ" },
audio = "Uvular ejective fricative.ogg"
},
-- Lateral ejective affricates
{
name = "Alveolar lateral ejective affricate",
symbols = { "tɬʼ", "ƛʼ" },
audio = "Alveolar lateral ejective affricate.ogg"
},
{
name = "Palatal lateral ejective affricate",
symbols = { "cʎ̝̊ʼ", "cʎ̥ʼ" },
audio = "Palatal lateral ejective affricate.ogg"
},
{
name = "Velar lateral ejective affricate",
symbols = { "kʟ̝̊ʼ", "kʟ̥ʼ" },
audio = "Velar lateral ejective affricate.ogg"
},
-- Lateral ejective fricatives
{
name = "Alveolar lateral ejective fricative",
symbols = { "ɬʼ" },
audio = "Alveolar lateral ejective fricative.ogg"
},
-- Tenuis clicks
{
name = "Tenuis bilabial click",
symbols = { "ʘ", "kʘ" },
audio = "Clic bilabial sourd.ogg"
},
{
name = "Tenuis dental click",
symbols = { "ǀ", "kǀ" },
audio = "Dental click.ogg"
},
{
name = "Tenuis alveolar click",
symbols = { "ǃ", "kǃ" },
audio = "Postalveolar click.ogg"
},
{
name = "Tenuis palatal click",
symbols = { "ǂ", "kǂ" },
audio = "Palatoalveolar click.ogg"
},
{
name = "Back-released velar click",
symbols = { "ʞ" },
},
-- Voiced clicks
{
name = "Voiced bilabial click",
symbols = { "ʘ̬", "ɡʘ" },
},
{
name = "Voiced dental click",
symbols = { "ǀ̬", "ɡǀ" },
},
{
name = "Voiced alveolar click",
symbols = { "ǃ̬", "ɡǃ" },
},
{
name = "Tenuis retroflex click",
symbols = { "‼", "𝼊" },
},
{
name = "Voiced palatal click",
symbols = { "ǂ̬", "ɡǂ" },
},
{
name = "Voiced retroflex click",
symbols = { "‼̬", "ɡ‼", "ɡ𝼊" },
},
-- Nasal clicks
{
name = "Bilabial nasal click",
symbols = { "ʘ̃", "ŋʘ" },
audio = "Bilabial nasal click.ogg"
},
{
name = "Dental nasal click",
symbols = { "ǀ̃", "ŋǀ" },
},
{
name = "Alveolar nasal click",
symbols = { "ǃ̃", "ŋǃ" },
audio = "Intervocalic nasal alveolar clicks.ogg"
},
{
name = "Palatal nasal click",
symbols = { "ǂ̃", "ŋǂ" },
},
{
name = "Retroflex nasal click",
symbols = { "‼̃", "ŋ‼", "ŋ𝼊" },
},
-- Lateral clicks
{
name = "Tenuis alveolar lateral click",
symbols = { "ǁ", "kǁ" },
audio = "Alveolar lateral click.ogg"
},
{
name = "Voiced alveolar lateral click",
symbols = { "ǁ̬", "ɡǁ" },
},
-- Lateral nasal clicks
{
name = "Alveolar lateral nasal click",
symbols = { "ǁ̃", "ŋǁ" },
},
-- Glottalized clicks
{
name = "Glottalized bilabial nasal click",
symbols = { "ʘ̃ˀ", "ʘˀ", "ŋ̊ʘˀ", "ŋʘˀ" },
},
{
name = "Glottalized dental nasal click",
symbols = { "ǀ̃ˀ", "ǀˀ", "ŋ̊ǀˀ", "ŋǀˀ" },
},
{
name = "Glottalized alveolar nasal click",
symbols = { "ǃ̃ˀ", "ǃˀ", "ŋ̊ǃˀ", "ŋǃˀ" },
},
{
name = "Glottalized retroflex nasal click",
symbols = { "‼̃ˀ", "‼ˀ", "ŋ‼ˀ", "ŋ̊‼ˀ" },
},
{
name = "Glottalized palatal nasal click",
symbols = { "ǂ̃ˀ", "ǂˀ", "ŋ̊ǂˀ", "ŋǂˀ" },
},
{
name = "Glottalized alveolar lateral nasal click",
symbols = { "ǁ̃ˀ", "ǁˀ", "ŋ̊ǁˀ", "ŋǁˀ" },
},
-- Implosives
{
name = "Voiceless bilabial implosive",
symbols = { "ɓ̥", "ƥ" },
},
{
name = "Voiced bilabial implosive",
symbols = { "ɓ" },
audio = "Voiced bilabial implosive.ogg"
},
{
name = "Voiceless alveolar implosive",
symbols = { "ɗ̥", "ƭ" },
},
{
name = "Voiced alveolar implosive",
symbols = { "ɗ" },
audio = "Voiced alveolar implosive.ogg"
},
{
name = "Voiceless retroflex implosive",
symbols = { "ᶑ̊", "ᶑ̥", "𝼉" },
},
{
name = "Voiced retroflex implosive",
symbols = { "ᶑ" },
},
{
name = "Voiceless palatal implosive",
symbols = { "ʄ̊", "ʄ̥", "ƈ" },
},
{
name = "Voiced palatal implosive",
symbols = { "ʄ" },
audio = "Voiced palatal implosive.ogg"
},
{
name = "Voiceless velar implosive",
symbols = { "ɠ̊", "ƙ" },
},
{
name = "Voiced velar implosive",
symbols = { "ɠ" },
audio = "Voiced velar implosive.ogg"
},
{
name = "Voiceless uvular implosive",
symbols = { "ʛ̥", "ʠ" },
},
{
name = "Voiced uvular implosive",
symbols = { "ʛ" },
audio = "Voiced uvular implosive.ogg"
},
-- CO-ARTICULATED CONSONANTS
-- Co-articulated nasals
{
name = "Voiced labial–alveolar nasal",
symbols = { "nm" },
article = "Labial–coronal consonant",
},
{
name = "Voiced labial–velar nasal",
symbols = { "ŋm" },
audio = "Labial-velar nasal stop.ogg"
},
-- Co-articulated plosives
{
name = "Voiceless labial–alveolar plosive",
symbols = { "tp" },
article = "Labial–coronal consonant",
},
{
name = "Voiced labial–alveolar plosive",
symbols = { "db" },
article = "Labial–coronal consonant",
},
{
name = "Voiceless labial–velar plosive",
symbols = { "kp" },
audio = "Voiceless labial-velar plosive.ogg"
},
{
name = "Voiced labial–velar plosive",
symbols = { "ɡb" },
audio = "Voiced labial-velar plosive.ogg"
},
{
name = "Voiceless uvular–epiglottal plosive",
symbols = { "qʡ" },
},
-- Co-articulated continuants
{
name = "Voiceless labial–palatal fricative",
symbols = { "ɥ̊" },
},
{
name = "Voiced labial–palatal approximant",
symbols = { "ɥ" },
audio = "LL-Q150 (fra)-WikiLucas00-IPA ɥ.wav"
},
{
name = "Voiceless labial–velar fricative",
symbols = { "ʍ", "w̥", "hw" },
audio = "Voiceless labio-velar fricative.ogg"
},
{
name = "Voiced labial–velar approximant",
symbols = { "w" },
audio = "Voiced labio-velar approximant.ogg"
},
{
name = "Compressed voiced labial–velar approximant",
symbols = { "wᵝ", "ɰᵝ" },
article = "Voiced labial–velar approximant",
},
{
name = "Sj-sound",
symbols = { "ɧ" },
audio = "Voiceless dorso-palatal velar fricative.ogg"
},
-- Co-articulated lateral approximants
{
name = "Velarized dental lateral approximant",
symbols = { "ɫ̪", "l̪ˠ" },
},
{
name = "Velarized alveolar lateral approximant",
symbols = { "ɫ", "lˠ" },
audio = "Velarized alveolar lateral approximant.ogg"
},
-- Nasal approximants
{
name = "Nasal palatal approximant",
symbols = { "j̃" },
},
{
name = "Nasal labial–velar approximant",
symbols = { "w̃" },
},
{
name = "Voiceless nasal glottal approximant",
symbols = { "h̃" },
},
-- VOWELS
-- Close vowels
{
name = "Close front unrounded vowel",
symbols = { "i" },
audio = "Close front unrounded vowel.ogg"
},
{
name = "Close front rounded vowel",
symbols = { "y" },
audio = "Close front rounded vowel.ogg"
},
{
name = "Close front compressed vowel",
symbols = { "y͍", "iᵝ" },
audio = "Close front rounded vowel.ogg"
},
{
name = "Close front protruded vowel",
symbols = { "y̫", "yʷ", "iʷ" },
},
{
name = "Close central unrounded vowel",
symbols = { "ɨ", "ï" },
audio = "Close central unrounded vowel.ogg"
},
{
name = "Close central rounded vowel",
symbols = { "ʉ", "ü" },
audio = "Close central rounded vowel.ogg"
},
{
name = "Close central protruded vowel",
symbols = { "ʉ̫", "ʉʷ", "ɨʷ" },
audio = "Close central rounded vowel.ogg"
},
{
name = "Close central compressed vowel",
symbols = { "ÿ", "ɨᵝ" },
},
{
name = "Close back unrounded vowel",
symbols = { "ɯ" },
audio = "Close back unrounded vowel.ogg"
},
{
name = "Close back rounded vowel",
symbols = { "u" },
audio = "Close back rounded vowel.ogg"
},
{
name = "Close back protruded vowel",
symbols = { "u̫", "uʷ", "ɯʷ" },
audio = "Close back rounded vowel.ogg"
},
{
name = "Close back compressed vowel",
symbols = { "u͍", "ɯᵝ" },
audio = "Ja-U.oga"
},
-- Near-close vowels
{
name = "Near-close near-front unrounded vowel",
symbols = { "ɪ", "ɪ̟", "i̞", "e̝" },
audio = "Near-close near-front unrounded vowel.ogg"
},
{
name = "Near-close near-front rounded vowel",
symbols = { "ʏ", "y̞", "y˕", "ø̝" },
audio = "Near-close near-front rounded vowel.ogg"
},
{
name = "Near-close near-front compressed vowel",
symbols = { "ʏ͍", "ɪᵝ" },
audio = "Near-close near-front rounded vowel.ogg"
},
{
name = "Near-close near-front protruded vowel",
symbols = { "ʏ̫", "ʏʷ", "ɪʷ" },
},
{
name = "Near-close central unrounded vowel",
symbols = { "ɪ̈", "ɨ̞", "ɘ̝" },
audio = "Near-close central unrounded vowel.ogg"
},
{
name = "Near-close central rounded vowel",
symbols = { "ʊ̈", "ʊ̟", "ʉ̞", "ɵ̝" },
},
{
name = "Near-close central protruded vowel",
symbols = { "ʊ̫̈", "ʉ̫˕", "ʊ̈ʷ", "ʉ̞ʷ", "ɪ̈ʷ", "ɨ̞ʷ" },
},
{
name = "Near-close central compressed vowel",
symbols = { "ʏ̈", "ɨ̞ᵝ" },
},
{
name = "Near-close near-back unrounded vowel",
symbols = { "ɯ̞", "ɯ̽" },
audio = "Near-close near-back unrounded vowel.ogg"
},
{
name = "Near-close near-back rounded vowel",
symbols = { "ʊ", "u̞", "o̝" },
audio = "Near-close near-back rounded vowel.ogg"
},
{
name = "Near-close near-back protruded vowel",
symbols = { "ʊ̫", "ʊʷ", "ɯ̽ʷ", "ɤ̝̈ʷ", "u̫˕", "u̞ʷ", "ɯ̞ʷ", "ɤ̝ʷ" },
audio = "Near-close near-back rounded vowel.ogg"
},
{
name = "Near-close near-back compressed vowel",
symbols = { "ʊ͍", "ɯ̽ᵝ", "ɯ̞̈ᵝ", "ɯ̞ᵝ" },
},
-- Close-mid vowels
{
name = "Close-mid front unrounded vowel",
symbols = { "e" },
audio = "Close-mid front unrounded vowel.ogg"
},
{
name = "Close-mid front rounded vowel",
symbols = { "ø" },
audio = "Close-mid front rounded vowel.ogg"
},
{
name = "Close-mid front compressed vowel",
symbols = { "ø͍", "eᵝ" },
audio = "Close-mid front rounded vowel.ogg"
},
{
name = "Close-mid front protruded vowel",
symbols = { "ø̫", "øʷ", "eʷ" },
},
{
name = "Close-mid central unrounded vowel",
symbols = { "ɘ", "ë", "ɤ̈" },
audio = "Close-mid central unrounded vowel.ogg"
},
{
name = "Close-mid central rounded vowel",
symbols = { "ɵ", "ö" },
audio = "Close-mid central rounded vowel.ogg"
},
{
name = "Close-mid central protruded vowel",
symbols = { "ɵ̫", "ɵʷ", "ɘʷ" },
audio = "Close-mid central rounded vowel.ogg"
},
{
name = "Close-mid central compressed vowel",
symbols = { "ø̈", "ɘᵝ" },
},
{
name = "Close-mid back unrounded vowel",
symbols = { "ɤ" },
audio = "Close-mid back unrounded vowel.ogg"
},
{
name = "Close-mid back rounded vowel",
symbols = { "o" },
audio = "Close-mid back rounded vowel.ogg"
},
{
name = "Close-mid back protruded vowel",
symbols = { "o̫", "oʷ", "ɤʷ" },
audio = "Close-mid back rounded vowel.ogg"
},
{
name = "Close-mid back compressed vowel",
symbols = { "o͍", "ɤᵝ" },
},
-- Mid vowels
{
name = "Mid front unrounded vowel",
symbols = { "e̞", "ɛ̝" },
audio = "Mid front unrounded vowel.ogg"
},
{
name = "Mid front rounded vowel",
symbols = { "ø̞", "œ̝" },
audio = "Mid front rounded vowel.ogg"
},
{
name = "Mid front compressed vowel",
symbols = { "ø͍˕", "œ͍˔", "e̞ᵝ", "ɛ̝ᵝ" },
},
{
name = "Mid front protruded vowel",
symbols = { "ø̫˕", "œ̫˔", "ø̞ʷ", "œ̝ʷ", "e̞ʷ", "ɛ̝ʷ" },
},
{
name = "Mid central vowel",
symbols = { "ə" },
audio = "Mid-central vowel.ogg"
},
{
name = "Mid central unrounded vowel",
symbols = { "ə̜", "ɘ̞", "ɜ̝" },
audio = "Mid-central vowel.ogg"
},
{
name = "Mid central rounded vowel",
symbols = { "ə̹", "ɵ̞", "ɞ̝" },
audio = "Mid central rounded vowel.ogg"
},
{
name = "Mid back unrounded vowel",
symbols = { "ɤ̞", "ʌ̝" },
},
{
name = "Mid back rounded vowel",
symbols = { "o̞", "ɔ̝" },
audio = "Mid back rounded vowel.ogg"
},
-- Open-mid vowels
{
name = "Open-mid front unrounded vowel",
symbols = { "ɛ" },
audio = "Open-mid front unrounded vowel.ogg"
},
{
name = "Open-mid front rounded vowel",
symbols = { "œ" },
audio = "Open-mid front rounded vowel.ogg"
},
{
name = "Open-mid front compressed vowel",
symbols = { "œ͍", "ɛᵝ" },
audio = "Open-mid front rounded vowel.ogg"
},
{
name = "Open-mid front protruded vowel",
symbols = { "œ̫", "œʷ", "ɛʷ" },
},
{
name = "Open-mid central unrounded vowel",
symbols = { "ɜ", "ɛ̈", "ʌ̈" },
audio = "Open-mid central unrounded vowel.ogg"
},
{
name = "Open-mid central rounded vowel",
symbols = { "ɞ" },
audio = "Open-mid central rounded vowel.ogg"
},
{
name = "Open-mid back unrounded vowel",
symbols = { "ʌ" },
audio = "PR-open-mid back unrounded vowel2.ogg"
},
{
name = "Open-mid back rounded vowel",
symbols = { "ɔ" },
audio = "PR-open-mid back rounded vowel.ogg"
},
-- Near-open vowels
{
name = "Near-open front unrounded vowel",
symbols = { "æ" },
audio = "Near-open front unrounded vowel.ogg"
},
{
name = "Near-open central vowel",
symbols = { "ɐ" },
audio = "Near-open central unrounded vowel.ogg"
},
{
name = "Near-open central unrounded vowel",
symbols = { "ɐ̜", "ɜ̞" },
audio = "PR-near-open central unrounded vowel.ogg"
},
{
name = "Near-open central rounded vowel",
symbols = { "ɐ̹", "ɞ̞" },
},
-- Open vowels
{
name = "Open front unrounded vowel",
symbols = { "a", "æ̞" },
audio = "PR-open front unrounded vowel.ogg"
},
{
name = "Open front rounded vowel",
symbols = { "ɶ" },
audio = "Open front rounded vowel.ogg"
},
{
name = "Open central unrounded vowel",
symbols = { "ä", "ɑ̈", "ɐ̞" },
audio = "Open central unrounded vowel.ogg"
},
{
name = "Open central rounded vowel",
symbols = { "ɒ̈", "ɶ̈" },
audio = "Open central rounded vowel.ogg"
},
{
name = "Open back unrounded vowel",
symbols = { "ɑ" },
audio = "Open back unrounded vowel.ogg"
},
{
name = "Open back rounded vowel",
symbols = { "ɒ" },
audio = "PR-open back rounded vowel.ogg"
},
{
name = "R-colored vowel",
symbols = { "ɚ", "ɝ", "ɹ̩", "ɻ̍" },
audio = "En-us-er.ogg"
},
-- SUPRASEGMENTALS
{
name = "Primary stress",
symbols = { "ˈ" },
article = "Stress (linguistics)",
},
{
name = "Secondary stress",
symbols = { "ˌ" },
},
{
name = "Minor (foot) group",
symbols = { "|" },
article = "Prosodic unit",
},
{
name = "Major (intonation) group",
symbols = { "‖" },
article = "Prosodic unit",
},
{
name = "Syllable break",
symbols = { "." },
article = "Syllable",
},
{
name = "Linking (absence of a break)",
symbols = { "‿" },
article = "Connected speech",
},
-- TONES AND WORD ACCENTS
{
name = "Downstep",
symbols = { "ꜜ" },
},
{
name = "Upstep",
symbols = { "ꜛ" },
},
{
name = "Global rise",
symbols = { "↗" },
article = "Intonation (linguistics)",
},
{
name = "Global fall",
symbols = { "↘" },
article = "Intonation (linguistics)",
},
-- EXTENDED IPA (extIPA)
{
name = "Bilabial percussive",
symbols = { "ʬ" },
},
{
name = "Bidental percussive",
symbols = { "ʭ" },
},
{
name = "Velopharyngeal fricative",
symbols = { "ʩ" },
},
{
name = "Voiceless alveolar lateral–median fricative",
symbols = { "ʪ" },
article = "Lateral release (phonetics)",
},
{
name = "Voiced alveolar lateral–median fricative",
symbols = { "ʫ" },
article = "Lateral release (phonetics)",
},
{
name = "Ingressive airflow",
symbols = { "↓" },
article = "Ingressive sound",
},
{
name = "Egressive airflow",
symbols = { "↑" },
article = "Egressive sound",
},
{
name = "Apical r",
symbols = { "ɹ̺" },
article = "Pronunciation of English /r/",
},
{
name = "Bunched r",
symbols = { "ɹ̈" },
article = "Pronunciation of English /r/",
},
{
name = "Sublaminal lower alveolar percussive",
symbols = { "¡" },
article = "Percussive consonant",
},
{
name = "Percussive alveolar click",
symbols = { "ǃ¡" },
},
{
name = "Buccal interdental trill",
symbols = { "ↀr̪͆" },
article = "Blowing a raspberry",
},
-- NON-IPA
{
name = "Morphological boundary",
symbols = { "#" },
article = "Word stem",
},
{
name = "Zero",
symbols = { "∅" },
article = "Zero (linguistics)",
},
},
diacritics = {
-- DIACRITICS
{
name = "Voiceless",
symbols = { "̥", "̊", "ḁ", "å", "ů", "ẘ", "ẙ" },
},
{
name = "Voiced",
symbols = { "̬" },
article = "Voice (phonetics)",
},
{
name = "Aspirated",
symbols = { "ʰ" },
article = "Aspirated consonant",
},
{
name = "More rounded",
symbols = { "̹", "͗", "˒" },
article = "Roundedness",
},
{
name = "Less rounded",
symbols = { "̜", "͑", "˓", "͍" },
article = "Roundedness",
},
{
name = "Advanced",
symbols = { "̟", "˖" },
article = "Relative articulation#Advanced and retracted",
},
{
name = "Retracted",
symbols = { "̠", "˗" },
article = "Relative articulation#Advanced and retracted",
},
{
name = "Centralized",
symbols = { "̈" },
article = "Relative articulation#Centralized vowels",
},
{
name = "Mid-centralized",
symbols = { "̽" },
article = "Relative articulation#Mid-centralized vowel",
},
{
name = "Syllabic",
symbols = { "̩", "̍" },
article = "Syllabic consonant",
},
{
name = "Non-syllabic",
symbols = { "̯", "̑" },
article = "Semivowel",
},
{
name = "Rhoticity",
symbols = { "˞" },
article = "R-colored vowel",
audio = "En-us-er.ogg"
},
{
name = "Breathy voiced",
symbols = { "̤", "ṳ", "ʱ" },
article = "Breathy voice",
},
{
name = "Creaky voiced",
symbols = { "̰", "ḛ", "ḭ", "ṵ" },
article = "Creaky voice",
},
{
name = "Linguolabial",
symbols = { "̼" },
article = "Linguolabial consonant",
},
{
name = "Labialized",
symbols = { "ʷ", "̫" },
article = "Labialization",
},
{
name = "Palatalized",
symbols = { "ʲ" },
article = "Palatalization (phonetics)",
},
{
name = "Velarized",
symbols = { "ˠ" },
article = "Velarization",
},
{
name = "Pharyngealized",
symbols = { "ˤ" },
article = "Pharyngealization",
},
{
name = "Velarized or pharyngealized",
symbols = { "̴", "ᵯ", "ᵰ", "ᵱ", "ᵬ", "ᵮ", "ᵵ", "ᵭ", "ᵴ", "ᵶ", "ᵳ", "ᵲ" },
article = "Pharyngealization",
},
{
name = "Raised",
symbols = { "̝", "˔" },
article = "Relative articulation#Raised and lowered",
},
{
name = "Lowered",
symbols = { "̞", "˕" },
article = "Relative articulation#Raised and lowered",
},
{
name = "Advanced tongue root",
symbols = { "̘" },
},
{
name = "Retracted tongue root",
symbols = { "̙" },
},
{
name = "Dental",
symbols = { "̪", "͆" },
article = "Dental consonant",
},
{
name = "Apical",
symbols = { "̺" },
article = "Apical consonant",
},
{
name = "Laminal",
symbols = { "̻" },
article = "Laminal consonant",
},
{
name = "Nasalized",
symbols = { "̃", "ṽ" },
article = "Nasalization",
},
{
name = "Nasal vowel",
symbols = { "ĩ", "ỹ", "ɨ̃", "ʉ̃", "ɯ̃", "ũ", "ɪ̃", "ʏ̃", "ʊ̃", "ẽ", "ø̃", "ɘ̃", "ɵ̃", "ɤ̃", "õ", "ə̃", "ɛ̃", "œ̃", "ɜ̃", "ɞ̃", "ʌ̃", "ɔ̃", "æ̃", "ɐ̃", "ã", "ɶ̃", "ä̃", "ɑ̃", "ɒ̃" },
},
{
name = "Nasal release",
symbols = { "ⁿ" },
},
{
name = "Lateral release",
symbols = { "ˡ" },
article = "Lateral release (phonetics)",
},
{
name = "No audible release",
symbols = { "̚" },
},
{
name = "Ejective",
symbols = { "ʼ" },
article = "Ejective consonant",
},
{
name = "Glottalized",
symbols = { "ˀ" },
article = "Glottalization",
},
{
name = "Labio-palatalized",
symbols = { "ᶣ" },
article = "Labio-palatalization",
},
-- SUPRASEGMENTALS
{
name = "Long",
symbols = { "ː" },
article = "Length (phonetics)",
},
{
name = "Half-long",
symbols = { "ˑ" },
article = "Length (phonetics)",
},
{
name = "Extra-short",
symbols = { "̆" },
article = "Extra-shortness",
},
-- TONES AND WORD ACCENTS
{
name = "Accent",
symbols = { "̋", "ű", "ӳ", "ő", "́", "í", "ý", "ú", "é", "ó", "á", "̄", "ī", "ȳ", "ū", "ē", "ō", "ǣ", "ā", "̀", "ì", "ỳ", "ù", "è", "ò", "à", "̏", "ȉ", "ȕ", "ȅ", "ȍ", "ȁ" },
article = "Pitch-accent language",
},
{
name = "Tone",
symbols = { "̌", "̂", "᷄", "᷅", "᷇", "᷆", "᷈", "᷉", "˥", "˦", "˧", "˨", "˩" },
article = "Tone (linguistics)",
},
-- EXTENDED IPA (extIPA)
{
name = "Alveolar",
symbols = { "͇" },
article = "Alveolar consonant",
},
{
name = "Strong articulation",
symbols = { "͈", "̎" },
article = "Fortis and lenis",
},
{
name = "Weak articulation",
symbols = { "͉", "᷂" },
article = "Fortis and lenis",
},
{
name = "Denasalized",
symbols = { "͊" },
article = "Denasalization",
},
{
name = "Velopharyngeal friction",
symbols = { "͌" },
article = "Velopharyngeal consonant",
},
{
name = "Whistled articulation",
symbols = { "͎" },
article = "Whistled sibilant",
},
{
name = "Unaspirated",
symbols = { "˭" },
article = "Tenuis consonant",
},
{
name = "Pre-aspiration",
symbols = { "ʰp", "ʰt", "ʰʈ", "ʰc", "ʰk", "ʰq", "ʰn" },
article = "Preaspiration",
},
-- NON-IPA
{
name = "Retroflex",
symbols = { "̣", "̢" },
article = "Retroflex consonant",
},
{
name = "Prenasalized consonant",
symbols = { "ᵐ", "ᶬ", "ⁿt", "ⁿd", "ⁿθ", "ⁿð", "ⁿs", "ⁿz", "ⁿʃ", "ⁿʒ", "ⁿɕ", "ⁿʑ", "ⁿr", "ⁿɬ", "ⁿɮ", "ⁿl", "ᶯ", "ᶮ", "ᵑ", "ᶰ" },
},
{
name = "Pre-stopped consonant",
symbols = { "ᵖ", "ᵇ", "ᵗ", "ᵈ", "ᶜ", "ᶡ", "ᵏ", "ᶢ", "ᴳ" },
},
{
name = "Post-stopped nasal",
symbols = { "mᵇ", "nᵈ", "ɲᶡ", "ŋᶢ", "ɴᴳ" },
},
}
}
for k, group in pairs(rawData) do
for _, v in ipairs(group) do
local t = {
name = v.name,
symbol = v.symbols[1],
article = v.article or v.name,
audio = v.audio or ""
}
for _, s in ipairs(v.symbols) do
data[k][s] = t
end
end
end
return { data = data, rawData = rawData }
2513954eju01domsinlrckehziy7vlf
Ta̱mpi̱let:Not done
10
2014
15862
2022-08-12T10:25:59Z
LisafBia6531
225
Created page with "<span class="nowrap">[[File:X mark.svg|18px|link=|alt=]] '''{{{1|Not done}}}'''</span><!--template:not done--><noinclude> {{documentation}} </noinclude>"
wikitext
text/x-wiki
<span class="nowrap">[[File:X mark.svg|18px|link=|alt=]] '''{{{1|Not done}}}'''</span><!--template:not done--><noinclude>
{{documentation}}
</noinclude>
mewrinem1wsnu7j2smmmbkgp6p2glbh
Ta̱mpi̱let:Float
10
2015
15863
2022-08-12T10:26:21Z
Kambai Akau
15
Created page with "<includeonly><div style="position:relative;text-align:left;"><!-- --><div style="width:{{{width|}}};height:{{{height|}}};position:absolute;<!-- -->top:{{{top|0}}};right:{{{right|0}}};bottom:{{{bottom|}}};left:{{{left|}}};<!-- -->{{#if:{{{2|}}} |{{#ifeq:{{{1}}}|left |left:0;}}}}"><!-- -->{{#if:{{{2|}}} |{{{2}}} |{{{1|{{color|red|'''Error: Parameter missing''' {{smaller|([[Template:Float]])}}}}}}} }}<!-- --></div></div><!-- -..."
wikitext
text/x-wiki
<includeonly><div style="position:relative;text-align:left;"><!--
--><div style="width:{{{width|}}};height:{{{height|}}};position:absolute;<!--
-->top:{{{top|0}}};right:{{{right|0}}};bottom:{{{bottom|}}};left:{{{left|}}};<!--
-->{{#if:{{{2|}}} |{{#ifeq:{{{1}}}|left |left:0;}}}}"><!--
-->{{#if:{{{2|}}} |{{{2}}} |{{{1|{{color|red|'''Error: Parameter missing''' {{smaller|([[Template:Float]])}}}}}}} }}<!--
--></div></div><!--
--></includeonly><noinclude>
{{Documentation}}
<!-- Please add categories to the /doc subpage; interwikis go to Wikidata -->
</noinclude>
6fxb6zcqc71f58tkhlks2zbahpax9d3
Ta̱mpi̱let:Done/sandbox
10
2016
15866
15865
2022-08-12T10:26:44Z
LisafBia6531
225
Requesting speedy deletion (Author's request). (TwinkleGlobal)
wikitext
text/x-wiki
<noinclude>{{Delete|1=Author's request}}</noinclude>
#REDIRECT [[Ta̱mpi̱let:Done/doc]]
ktjzakmjtdepnipqkj09tuwg1fu4eaw
Ta̱mpi̱let:Float/doc
10
2017
15867
2022-08-12T10:28:03Z
Kambai Akau
15
Created page with "{{Documentation subpage}} <!-- Please add categories to the /doc subpage, and interwikis at Wikidata (see Wikipedia:Wikidata) --> == Description == It is used to position text or elements to the rightmost/leftmost of a page/area, without changing the alignment or formatting of other text and elements nearby. For aligning text in general, see {{tl|align}}. For floating images, boxes, and other elements, see {{tl|stack}}. == Usage == These are the standard usage: * <c..."
wikitext
text/x-wiki
{{Documentation subpage}}
<!-- Please add categories to the /doc subpage, and interwikis at Wikidata (see Wikipedia:Wikidata) -->
== Description ==
It is used to position text or elements to the rightmost/leftmost of a page/area, without changing the alignment or formatting of other text and elements nearby.
For aligning text in general, see {{tl|align}}. For floating images, boxes, and other elements, see {{tl|stack}}.
== Usage ==
These are the standard usage:
* <code><nowiki>{{float|</nowiki>{{bigger|{{smallcaps|item}}}}}}</code> floats {{smallcaps|item}} on the rightmost of a page/area.
* <code><nowiki>{{float|left|</nowiki>{{bigger|{{smallcaps|item}}}}}}</code> floats {{smallcaps|item}} on the leftmost of a page/area.
More configuration:
* <code><nowiki>{{float |width= |height= |top= |right= |bottom= |left= |</nowiki>{{bigger|{{smallcaps|item}}}}}}</code>
<code>{{bigger|{{smallcaps|item}}}}</code> is required. You must specify what text or element to float or it will throw an error.
All parameters are optional. The parameters {{para|width}} and {{para|height}} are to indicate the width/height of the <code><nowiki><div></nowiki></code> element. <!--Unnecessary?: Note that if any values other than zero for ''top'' and ''right'' are required, they need to be specified.-->
The optional parameters {{para|top}}, {{para|right}}, {{para|bottom}} and {{para|left}} are to indicate how far from their respective positions the item is to be positioned.
Any established HTML/CSS units may be used, for example, <code><nowiki>{{float |top=2.0em |left=2px |width=10em | the content to float}}</nowiki></code>.
=== Beware ===
Beware when using this template in navboxes. Please ensure whatever it floats (e.g. an image) does not float over other elements or text, even after the navbox is resized.
To align centered lists in a navbox with an image, see the [[#Alternatives for navigational boxes|alternatives for navigational boxes]] section below.
== Examples ==
Note how the links in the second two examples are centered relative to the whole template, unlike those in the first example.
=== Example 1 (without float) ===
This is a [[Template:Navbox|navbox]] using its image parameter:
{{Navbox
| name = Float/doc
| state = uncollapsed
| title = [[Imperial Japanese Navy]]
| listclass = hlist
| image = [[File:Naval Ensign of Japan.svg|24px|border|Naval Ensign of Japan]]
| list1 =
* [[Imperial Japanese Navy admirals|Admirals]]
* [[Battles of the Imperial Japanese Navy|Battles]]
* [[List of ships of the Japanese Navy|Ships]]
* [[List of aircraft of the Japanese Navy|Aircraft]]
* [[List of weapons of the Japanese Navy|Weapons]]
}}
{{Hidden begin |showhide=left |title=The code used in the above example}}
<pre>
{{Navbox
| name = Float/doc
| state = uncollapsed
| title = [[Imperial Japanese Navy]]
| listclass = hlist
| image = [[File:Naval Ensign of Japan.svg|24px|border|Naval Ensign of Japan]]
| list1 =
* [[Imperial Japanese Navy admirals|Admirals]]
* [[Battles of the Imperial Japanese Navy|Battles]]
* [[List of ships of the Japanese Navy|Ships]]
* [[List of aircraft of the Japanese Navy|Aircraft]]
* [[List of weapons of the Japanese Navy|Weapons]]
}}
</pre>
{{Hidden end}}
=== Example 2 (with float) ===
We use {{tlf|float}} instead of the navbox's image parameter:
{{Navbox
| name = Float/doc
| state = uncollapsed
| title = [[Imperial Japanese Navy]]
| listclass = hlist
| list1 = {{float|[[File:Naval Ensign of Japan.svg|24px|border|Naval Ensign of Japan]]}}
* [[Imperial Japanese Navy admirals|Admirals]]
* [[Battles of the Imperial Japanese Navy|Battles]]
* [[List of ships of the Japanese Navy|Ships]]
* [[List of aircraft of the Japanese Navy|Aircraft]]
* [[List of weapons of the Japanese Navy|Weapons]]
}}
{{Hidden begin |showhide=left |title=The code used in the above example}}
<pre>
{{Navbox
| name = Float/doc
| state = uncollapsed
| title = [[Imperial Japanese Navy]]
| listclass = hlist
| list1 = {{float|[[File:Naval Ensign of Japan.svg|24px|border|Naval Ensign of Japan]]}}
* [[Imperial Japanese Navy admirals|Admirals]]
* [[Battles of the Imperial Japanese Navy|Battles]]
* [[List of ships of the Japanese Navy|Ships]]
* [[List of aircraft of the Japanese Navy|Aircraft]]
* [[List of weapons of the Japanese Navy|Weapons]]
}}
</pre>
{{Hidden end}}
=== Example 3 (with float and custom values) ===
We use {{tlf|float}} with a custom value of {{para|top}} this time:
{{Navbox
| name = Float/doc
| state = uncollapsed
| title = [[Imperial Japanese Navy]]
| listclass = hlist
| list1 = {{float|top=0.5em|[[File:Naval Ensign of Japan.svg|24px|border|Naval Ensign of Japan]]}}
* [[Imperial Japanese Navy admirals|Admirals]]
* [[Battles of the Imperial Japanese Navy|Battles]]
* [[List of ships of the Japanese Navy|Ships]]
* [[List of aircraft of the Japanese Navy|Aircraft]]
* [[List of weapons of the Japanese Navy|Weapons]]
}}
{{Hidden begin |showhide=left |title=The code used in the above example}}
<pre>
{{Navbox
| name = Float/doc
| state = uncollapsed
| title = [[Imperial Japanese Navy]]
| listclass = hlist
| list1 = {{float|top=0.5em|[[File:Naval Ensign of Japan.svg|24px|border|Naval Ensign of Japan]]}}
* [[Imperial Japanese Navy admirals|Admirals]]
* [[Battles of the Imperial Japanese Navy|Battles]]
* [[List of ships of the Japanese Navy|Ships]]
* [[List of aircraft of the Japanese Navy|Aircraft]]
* [[List of weapons of the Japanese Navy|Weapons]]
}}
</pre>
{{Hidden end}}
=== Alternatives for navigational boxes ===
We use its image parameter and liststyle with padding-left set to the image width:
{{Navbox
| name = Float/doc
| state = uncollapsed
| title = [[Imperial Japanese Navy]]
| listclass = hlist
| image = [[File:Naval Ensign of Japan.svg|24px|border|Naval Ensign of Japan]]
| liststyle = padding-left: 24px
| list1 =
* [[Imperial Japanese Navy admirals|Admirals]]
* [[Battles of the Imperial Japanese Navy|Battles]]
* [[List of ships of the Japanese Navy|Ships]]
* [[List of aircraft of the Japanese Navy|Aircraft]]
* [[List of weapons of the Japanese Navy|Weapons]]
}}
{{Hidden begin |showhide=left |title=The code used in the above example}}
<pre>
{{Navbox
| name = Float/doc
| state = uncollapsed
| title = [[Imperial Japanese Navy]]
| listclass = hlist
| image = [[File:Naval Ensign of Japan.svg|24px|border|Naval Ensign of Japan]]
| liststyle = padding-left: 24px
| list1 =
* [[Imperial Japanese Navy admirals|Admirals]]
* [[Battles of the Imperial Japanese Navy|Battles]]
* [[List of ships of the Japanese Navy|Ships]]
* [[List of aircraft of the Japanese Navy|Aircraft]]
* [[List of weapons of the Japanese Navy|Weapons]]
}}
</pre>
{{Hidden end}}
== See also ==
* {{tl|align}}
* {{tl|clear}}
* {{t|float begin}} and {{t|float end}} - Places wikicode in an image frame. Allows captions. Handles wikitables without having to use escape characters.
* {{tl|stack}}
<includeonly>{{sandbox other||
<!-- Add categories below this line, and interwikis at Wikidata -->
[[Category:Positioning templates]]
}}</includeonly>
bpmx90hdntxrattoz8umgqcu69bp755
Ta̱mpi̱let:Not done/doc
10
2018
15868
2022-08-12T10:29:23Z
LisafBia6531
225
Created page with "{{Documentation subpage}} <!-- PLEASE ADD CATEGORIES AND INTERWIKIS AT THE BOTTOM OF THIS PAGE. --> {{shortcut|Template:Notdone}} This is an image-based template may be used on [[Wikipedia:talk pages|talk pages]] to show clearly that a section of discussion has not been resolved, so that each editor does not have to completely re-read the section. ==Usage== You may either use {{tl|not done}} by itself for the default message or you may add a custom message as an optiona..."
wikitext
text/x-wiki
{{Documentation subpage}}
<!-- PLEASE ADD CATEGORIES AND INTERWIKIS AT THE BOTTOM OF THIS PAGE. -->
{{shortcut|Template:Notdone}}
This is an image-based template may be used on [[Wikipedia:talk pages|talk pages]] to show clearly that a section of discussion has not been resolved, so that each editor does not have to completely re-read the section.
==Usage==
You may either use {{tl|not done}} by itself for the default message or you may add a custom message as an optional parameter.
{| class="wikitable"
!Template !! Result
|-
|{{tlx|not done}} || {{not done}}
|-
|{{tlx|not done|Custom message}} || {{not done|Custom message}}
|}
==Example==
{| border="1" cellpadding="6" cellspacing="0"
|
{{pseudoheading|Images}}
I think this article needs more pictures. --[[User:Example|John]] 00:00, 1 January 2000<br>
:I agree, especially the part about the estate grounds. --[[User:Jane|Jane]] 00:05, 1 January 2000<br>
::Can anyone find any, I've looked on Commons but there doesn't appear to be any. --[[User:Example|George]] 00:23, 1 January 2000<br>
:::{{not done}} The only pictures I can find are copyrighted, can anyone else help? --[[User:Example|John]] 00:30, 1 January 2000<br>
::::Can anyone take some photos?. --[[User:Jane|Jane]] 01:00, 1 January 2000<br>
:::::{{done}} I've uploaded one I took myself. --[[User:Example|John]] 03:00, 1 January 2000<br>
::::::{{Thank you}}, that looks great. --[[User:Example|George]] 12:00, 1 January 2000<br>
:::::::Good bye!! --[[User:Example|John]] 00:00, 2 January 2000
|}
==TemplateData==
{{TemplateDataHeader}}
<templatedata>
{
"description": "This template adds a red x mark with text and is often used on talk pages to show clearly that a section of discussion has not been resolved.",
"params": {
"1": {
"label": "custom message",
"type": "string",
"default": "Not done",
"description": "Enter an individual message to replace the default 'Not Done' text."
}
}
}
</templatedata>
==See also==
{{Done/See also}}
<includeonly>{{Sandbox other||
<!-- ADD CATEGORIES BELOW THIS LINE -->
[[Category:Resolution templates|{{PAGENAME}}]]
[[Category:Image with comment templates|{{PAGENAME}}]]
<!-- ADD INTERWIKIS BELOW THIS LINE -->
}}</includeonly>
egt4ucee748r5ch6tnj3y1f01nv265c
Ta̱mpi̱let:Notdone
10
2019
15882
15870
2022-08-12T10:59:34Z
LisafBia6531
225
Changed redirect target from [[Ta̱mpi̱let:Not done/doc]] to [[Ta̱mpi̱let:Not done]]
wikitext
text/x-wiki
#REDIRECT [[Template:Not done]]
2po82ehaehdngpxx8x59jwvlakaoxu4
Ta̱mpi̱let:Supplement
10
2020
15871
2022-08-12T10:32:12Z
LisafBia6531
225
Created page with "<noinclude>{{pp-vandalism|small=yes}}</noinclude>{{ombox | type = notice | text = <div style="padding-top: 6px; padding-bottom: 5px;">'''This is an [[Wikipedia:Project namespace#How-to and information pages|explanatory essay]] about <noinclude>Some guideline/policy</noinclude>{{#if:{{{pages|{{{interprets|}}}}}}|{{#ifexist:{{{pages}}}|[[{{{pages}}}]]|{{#ifexist:{{{interprets}}}|[[{{{interprets}}}]]|the {{{pages|{{{interprets}}}}}} }} }}|<includeonly>{{Error|Er..."
wikitext
text/x-wiki
<noinclude>{{pp-vandalism|small=yes}}</noinclude>{{ombox
| type = notice
| text = <div style="padding-top: 6px; padding-bottom: 5px;">'''This is an [[Wikipedia:Project namespace#How-to and information pages|explanatory essay]] about <noinclude>Some guideline/policy</noinclude>{{#if:{{{pages|{{{interprets|}}}}}}|{{#ifexist:{{{pages}}}|[[{{{pages}}}]]|{{#ifexist:{{{interprets}}}|[[{{{interprets}}}]]|the {{{pages|{{{interprets}}}}}} }} }}|<includeonly>{{Error|Error: No page specified}}</includeonly>}}'''. <br><div style="font-size:90%;"> This page is intended to provide additional information about concepts in the page(s) it supplements. This page is not one of [[Wikipedia:Policies and guidelines|Wikipedia's policies or guidelines]], as it has not been [[Wikipedia:Consensus#Levels of consensus|thoroughly vetted by the community]].</div></div>
| imageright = {{#if:{{{shortcut|{{{shortcut1|{{{1|}}}}}}}}} | {{Ombox/shortcut|{{{shortcut|{{{shortcut1|{{{1}}}}}}}}}|{{{shortcut2|{{{2|}}}}}}|{{{shortcut3|{{{3|}}}}}}|{{{shortcut4|{{{4|}}}}}} }} }}
}}<includeonly>{{#ifeq:{{NAMESPACE}}|{{ns:4}}|{{{category|[[Category:Wikipedia supplemental pages]]}}}}}{{#ifeq:{{NAMESPACE}}|{{ns:2}}|{{{category|[[Category:User essays]]}}}}}</includeonly><noinclude>
{{documentation}}<!-- Add categories and interwikis to the /doc subpage, not here! --></noinclude>
6ct800mgwrrl4k30hs0qhl5dfhv9koy
Beang:IPA/Italiya
12
2021
15877
15874
2022-08-12T10:51:52Z
Kambai Akau
15
Kambai Akau shyei peji [[Beang:IPA/Italian]] nat [[Beang:IPA/Italiya]]
wikitext
text/x-wiki
{{about|IPA for Standard Italian|the help page regarding IPA for Italian dialects|Help:IPA/Italian dialects}}
{{IPA key|H:IPA-IT|H:IPAIT|H:IPAITA}}
The charts below show how the [[International Phonetic Alphabet]] represents pronunciations of [[Italian language|Standard Italian]] in Wikipedia articles. For a guide to adding IPA characters to Wikipedia articles, see {{tl|IPA-it}}, {{tl|IPAc-it}} and {{section link|Wikipedia:Manual of Style/Pronunciation#Entering IPA characters}}.
See [[Italian phonology]] and [[Italian orthography]] for a more thorough look at the sounds of Italian.
{| style="background: none"
| style="vertical-align:top;" |
{| class="wikitable" style="margin: 1em;"
! colspan="3" | [[Consonant]]s<ref>Except {{IPAslink|z}}, all consonants after a vowel and before {{IPA|/r/}}, {{IPA|/l/}}, a vowel or a semivowel may be [[geminated]]. Gemination in IPA is represented by doubling the consonant (''fatto'' {{IPA|[ˈfatto]}}, ''mezzo'' {{IPA|[ˈmɛddzo]}}), and can usually be told from orthography. After stressed vowels and certain prepositions and conjunctions, word-initial consonants become geminated too ([[syntactic gemination]]): ''va '''v'''ia'' {{IPA|[ˌva vˈviːa]}}.</ref>
|-
! [[Help:IPA|IPA]] !! Examples !! English approximation
|-
| style="text-align: center;" | <big>{{IPA link|b}}</big>
| '''b'''anca, ci'''b'''o
| a'''b'''out
|-
| style="text-align: center;" | <big>{{IPA link|d̪|d}}</big>
| '''d'''ove, i'''d'''ra
| to'''d'''ay
|-
| style="text-align: center;" | <big>{{IPA link|d̪͡z̪|dz}}</big>
| '''z'''aino, a'''z'''alea, me'''zz'''o<ref name="z">{{angbr|z}} represents both {{IPA|/ts/}} and {{IPA|/dz/}}. The article on [[Italian orthography#S and Z|Italian orthography]] explains how they are used.</ref><ref name="geminated"/>
| da'''ds'''
|-
| style="text-align: center;" | <big>{{IPA link|d͡ʒ|dʒ}}</big>
| '''g'''elo, '''gi'''ù, ma'''g'''ia, '''j'''udo, ga'''dg'''et
| '''j'''ob
|-
| style="text-align: center;" | <big>{{IPA link|f}}</big>
| '''f'''atto, ci'''f'''ra, '''ph'''on
| '''f'''ast
|-
| style="text-align: center;" | <big>{{IPA link|ɡ}}</big>
| '''g'''atto, a'''g'''ro, '''gh'''etto, '''g'''licosio<ref name=gli>{{angbr|gli}} represents {{IPA|/ʎ/}} or {{IPA|/ʎi/}}, except in roots of Greek origin, when preceded by another consonant, and in a few other words, where it represents {{IPA|/ɡli/}}.</ref>
| a'''g'''ain
|-
| style="text-align: center;" | <big>{{IPA link|j}}</big>
| '''i'''eri, sa'''i'''o, p'''i'''ù, '''J'''esi, '''y'''acht, n'''e'''ws
| '''y'''es
|-
| style="text-align: center;" | <big>{{IPA link|k}}</big>
| '''c'''osa, a'''c'''uto, fin'''ch'''é, '''q'''uei, '''k'''iwi, '''k'''oala
| s'''c'''ar
|-
| style="text-align: center;" | <big>{{IPA link|l}}</big>
| '''l'''ato, te'''l'''a, g'''l'''icosio<ref name=gli/>
| '''l'''adder
|-
| style="text-align: center;" | <big>{{IPA link|ʎ}}</big>
| fi'''gl'''i, '''gli'''elo, ma'''gli'''a<ref name="geminated">{{IPA|/ts, dz, ʃ, ɲ, ʎ/}} are always [[geminated]] after a vowel.</ref>
| bi'''lli'''on
|-
| style="text-align: center;" | <big>{{IPA link|m}}</big>
| '''m'''ano, a'''m'''are, i'''n'''put<ref name="nasal">A [[nasal consonant|nasal]] always [[Assimilation (phonology)|assimilates]] to the [[place of articulation]] of the following consonant. It is [[bilabial consonant|bilabial]] {{IPA|[m]}} before {{IPA|/p, b, m/}}, [[labiodental consonant|labiodental]] {{IPA|[ɱ]}} before {{IPA|/f, v/}}, [[dental consonant|dental]], [[alveolar consonant|alveolar]] or [[postalveolar consonant|postalveolar]] {{IPA|[n]}} before {{IPA|/t, d, ts, dz, tʃ, dʒ, ʃ, l, r/}}, and [[velar consonant|velar]] {{IPA|[ŋ]}} before {{IPA|/k, ɡ/}}. Utterance-finally, it is always {{IPA|[n]}}.</ref>
| '''m'''other
|-
| style="text-align: center;" | <big>{{IPA link|ɱ}}</big>
|a'''n'''fibio, i'''n'''vece<ref name=nasal/>
|co'''m'''fort
|-
| style="text-align: center;" | <big>{{IPA link|n}}</big>
| '''n'''a'''n'''o, pu'''n'''to, pe'''n'''sare, ma'''n'''giare<ref name="nasal"/>
| '''n'''est
|-
| style="text-align: center;" | <big>{{IPA link|ŋ}}</big>
| u'''n'''ghia, a'''n'''che, du'''n'''que<ref name="nasal"/>
| si'''ng'''
|-
| style="text-align: center;" | <big>{{IPA link|ɲ}}</big>
| '''gn'''occo, o'''gn'''i<ref name="geminated"/><ref name="nasal"/>
| ca'''ny'''on
|-
| style="text-align: center;" | <big>{{IPA link|p}}</big>
| '''p'''rimo, am'''p'''io, a'''p'''ertura
| s'''p'''in
|-
| style="text-align: center;" | <big>{{IPA link|r}}</big>
| '''R'''oma, quatt'''r'''o, mo'''r'''te<ref>Non-geminate {{IPA|/r/}} is generally realised with a single strike, as a monovibrant trill or tap {{IPAblink|ɾ}}, particularly in unstressed syllables.</ref>
| ''[[alveolar trill|trilled r]]''
|-
| style="text-align: center;" | <big>{{IPA link|s̪|s}}</big>
| '''s'''ano, '''s'''cusa, pre'''s'''entire, pa'''s'''to<ref name="s-z">{{IPA|/s/}} and {{IPA|/z/}} contrast only intervocalically. Word-initially, after consonants, when geminated, and before voiceless consonants, only {{IPA|[s]}} is found. Before voiced consonants, only {{IPA|[z]}} is found.</ref>
| '''s'''orry
|-
| style="text-align: center;" | <big>{{IPA link|ʃ}}</big>
| '''sc'''ena, '''sci'''à, pe'''sc'''i, fla'''sh''', '''ch'''ic<ref name="geminated"/>
| '''sh'''oe
|-
| style="text-align: center;" | <big>{{IPA link|t̪|t}}</big>
| '''t'''ranne, mi'''t'''o, al'''t'''ro, '''th'''ai
| s'''t'''ar
|-
| style="text-align: center;" | <big>{{IPA link|t̪͡s̪|ts}}</big>
| '''z'''io, so'''zz'''o, mar'''z'''o<ref name="z"/><ref name="geminated"/>
| ca'''ts'''
|-
| style="text-align: center;" | <big>{{IPA link|t͡ʃ|tʃ}}</big>
| '''c'''erto, '''ci'''ao, farma'''c'''ia, '''ch'''ip
| '''ch'''eck
|-
| style="text-align: center;" | <big>{{IPA link|v}}</big>
| '''v'''ado, po'''v'''ero, '''w'''att
| '''v'''ent
|-
| style="text-align: center;" | <big>{{IPA link|w}}</big>
| '''u'''ova, g'''u'''ado, q'''u'''i, '''w'''eek-end
| '''w'''ine
|-
| style="text-align: center;" | <big>{{IPA link|z̪|z}}</big>
| '''s'''birro, pre'''s'''entare, a'''s'''ma<ref name="s-z"/>
| ama'''z'''on
|-
! colspan="3" | Non-native consonants
|-
| style="text-align: center;" | <big>{{IPA link|h}}</big>
| '''h'''obby, '''h'''ertz<ref>{{IPA|/h/}} is usually dropped.</ref>
| '''h'''ouse
|-
| style="text-align: center;" | <big>{{IPA link|θ}}</big>
| '''Th'''atcher, Pére'''z'''<ref>{{IPA|/θ/}} is usually pronounced as {{IPAblink|t̪|t}} in [[English language|English]] loanwords, and {{IPAblink|d̪͡z̪|dz}}, {{IPAblink|t̪͡s̪|ts}} (if spelled {{angbr|z}}) or {{IPAblink|s̪|s}} (if spelled {{angbr|c}} or {{angbr|z}}) in [[Spanish language|Spanish]] ones.</ref>
| '''th'''ing
|-
| style="text-align: center;" | <big>{{IPA link|x}}</big>
| '''j'''ota, Ba'''ch''', '''kh'''amsin<ref>In Spanish loanwords, {{IPA|/x/}} is usually pronounced as {{IPAblink|h}} or {{IPAblink|k}} or dropped. In [[German language|German]], [[Arabic]] and [[Russian language|Russian]] ones, it is usually pronounced {{IPAblink|k}}.</ref>
| lo'''ch''' (''[[Scottish English]]'')
|-
| style="text-align: center;" | <big>{{IPA link|ʒ}}</big>
| Fu'''j'''i, gara'''ge''', ca'''s'''ual
| vi'''si'''on
|}
<!---------- Vowels ---------->
| style="vertical-align:top;" |
{| class="wikitable" style="margin: 1em 2em;"
! colspan="3" | [[Vowel]]s<ref>Italian contrasts seven [[monophthong]]s in stressed syllables. Open-mid vowels {{IPA|/ɛ, ɔ/}} can appear only if the syllable is stressed (''cop'''e'''rto'' {{IPA|[koˈpɛrto]}}, ''qu'''o'''ta'' {{IPA|[ˈkwɔːta]}}), close-mid vowels {{IPA|/e, o/}} are found elsewhere (''B'''o'''ccacci'''o''''' {{IPA|[bokˈkattʃo]}}, ''am'''o'''r'''e''''' {{IPA|[aˈmoːre]}}). Close and open vowels {{IPA|/i, u, a/}} are unchanged in unstressed syllables, but word-final unstressed {{IPA|/i/}} may become approximant {{IPAblink|j}} before vowels, which is known as [[synalepha]] (''par'''i''' età'' {{IPA|[ˌparj eˈta]}}).</ref>
|-
! [[Help:IPA|IPA]] !! Examples !! English approximation
|-
| style="text-align: center;" | <big>{{IPA link|ä|a}}</big>
| '''a'''lto, s'''a'''r'''à''', m'''u'''st
| f'''a'''st (''[[Scottish English]]'')
|-
| style="text-align: center;" | <big>{{IPA link|e}}</big>
| v'''e'''ro, p'''e'''rch'''é''', li'''ai'''son
| f'''a'''de
|-
| style="text-align: center;" | <big>{{IPA link|ɛ}}</big>
| '''e'''tto, cio'''è''', spr'''ea'''d
| b'''e'''d
|-
| style="text-align: center;" | <big>{{IPA link|i}}</big>
| v'''i'''so, s'''ì''', z'''i'''a, f'''ee'''d, t'''ea'''m, sex'''y'''
| sk'''i'''
|-
| style="text-align: center;" | <big>{{IPA link|o}}</big>
| '''o'''mbra, ott'''o''', sh'''ow''', c'''oa'''ch
| st'''o'''ry
|-
| style="text-align: center;" | <big>{{IPA link|ɔ}}</big>
| '''o'''tto, sar'''ò''', S'''ea'''n
| '''o'''ff
|-
| style="text-align: center;" | <big>{{IPA link|u}}</big>
| '''u'''si, rag'''ù''', t'''u'''o, t'''ou'''r
| r'''u'''le
|-
! colspan="3" | Non-native vowels
|-
| style="text-align: center;" | <big>{{IPA link|ø}}</big>
| viv'''eu'''r, g'''oe'''thiano, Ch'''u'''rchill<ref>Open-mid {{IPAblink|œ}} or close-mid {{IPAblink|ø}} if it is stressed but usually {{IPAblink|ø}} if it is unstressed. May be replaced by {{IPAblink|ɛ}} (stressed) or {{IPAblink|e}} (stressed or unstressed).</ref>
| m'''ur'''der (''[[Received Pronunciation|RP]]'')
|-
| style="text-align: center;" | <big>{{IPA link|y}}</big>
| par'''u'''re, br'''û'''lé, F'''üh'''rer<ref>{{IPA|/y/}} is often pronounced as {{IPAblink|u}} or [{{IPA link|j}}{{IPA link|u}}].</ref>
| f'''u'''ture (''[[Scottish English]]'')
|-
| colspan="3" style="border-left: #fff solid 1px; border-right: #fff solid 1px" |
|-
! colspan="3" | [[International Phonetic Alphabet#Suprasegmentals|Suprasegmentals]]
|-
! [[Help:IPA|IPA]] !! Examples !! Explanation
|-
| style="text-align: center;" | <big>{{IPA link|ˈ}}</big>
| Cen'''ni'''ni {{IPA|[tʃenˈniːni]}}
| [[Stress (linguistics)#Levels of stress|primary stress]]
|-
| style="text-align: center;" | <big>{{IPA link|ˌ}}</big>
| '''al'''tamente {{IPA|[ˌaltaˈmente]}}
| [[secondary stress]]<ref>Since Italian has no distinction between heavier or lighter vowels (like the English ''o'' in ''c'''o'''nclusion'' vs ''o'' in ''n'''o'''mination''), a defined secondary stress, even in long words, is extremely rare.</ref>
|-
| style="text-align: center;" | <big>{{IPA link|.}}</big>
| contin'''uo''' {{IPA|[konˈtiːnu.o]}}
| [[Syllabification|syllable break]]
|-
| style="text-align: center;" | <big>{{IPA link|ː}}</big>
| pr'''i'''mo {{IPA|[ˈpriːmo]}}
| [[Vowel length|long vowel]]<ref>Primarily stressed vowels are long in non-final open syllables: ''fato'' {{IPA|[ˈfaːto]}}, ''fatto'' {{IPA|[ˈfatto]}}.</ref>
|}
|}
==Notes==
{{reflist}}
==Further reading==
*{{cite journal
|last1=Bertinetto
|first1=Pier Marco
|last2=Loporcaro
|first2=Michele
|year=2005
|title=The sound pattern of Standard Italian, as compared with the varieties spoken in Florence, Milan and Rome
|journal=Journal of the International Phonetic Association
|volume=35
|issue=2
|pages=131–151
|doi=10.1017/S0025100305002148
|url=https://www.cambridge.org/core/services/aop-cambridge-core/content/view/3BD6A21BBF1225A1ED46F6E984131AD3/S0025100305002148a.pdf/sound_pattern_of_standard_italian_as_compared_with_the_varieties_spoken_in_florence_milan_and_rome.pdf
}}
*{{cite journal
|last1=Rogers
|first1=Derek
|last2=d'Arcangeli
|first2=Luciana
|year=2004
|title=Italian
|journal=Journal of the International Phonetic Association
|volume=34
|issue=1
|pages=117–121
|doi=10.1017/S0025100304001628
|url=https://www.cambridge.org/core/services/aop-cambridge-core/content/view/426259D72EEC9F71664AC2F2D3A0FD30/S0025100304001628a.pdf/italian.pdf
}}
==External links==
* {{lang|it|[https://dop.netadcom.com/ Dizionario italiano multimediale e multilingue d'ortografia e di pronunzia]}} {{In lang|it}} {{registration required}} [not based on IPA]
* {{lang|it|[http://www.dipionline.it/ Dizionario di pronuncia italiana online]}} by [[Luciano Canepari]] {{In lang|it}} [phonemic, based on IPA]
{{IPA keys}}
1r2oqonj7p83q4bmlqrahoxj4nx2ts4
Ta̱mpi̱let:IPA key
10
2022
15875
2022-08-12T10:49:24Z
Kambai Akau
15
Created page with "{{ombox |type = notice |image = [[File:Parentesi Quadre.svg|30px|link=]] |text = '''This is the [[Wikipedia:Manual of Style/Pronunciation|pronunciation key]] for [[International Phonetic Alphabet|IPA]] transcriptions of {{{language<includeonly>|{{SUBPAGENAME}}</includeonly>}}} on Wikipedia.'''<div style="font-size: 90%;">It provides a set of symbols to represent the pronunciation of {{#if:{{{language<includeonly>|</includeonly>}}}|<includeonly>{{delink|</includeonly>{{{l..."
wikitext
text/x-wiki
{{ombox
|type = notice
|image = [[File:Parentesi Quadre.svg|30px|link=]]
|text = '''This is the [[Wikipedia:Manual of Style/Pronunciation|pronunciation key]] for [[International Phonetic Alphabet|IPA]] transcriptions of {{{language<includeonly>|{{SUBPAGENAME}}</includeonly>}}} on Wikipedia.'''<div style="font-size: 90%;">It provides a set of symbols to represent the pronunciation of {{#if:{{{language<includeonly>|</includeonly>}}}|<includeonly>{{delink|</includeonly>{{{language}}}<includeonly>}}</includeonly>|{{SUBPAGENAME}}}} in Wikipedia articles, and example words that illustrate the sounds that correspond to them. Integrity must be maintained between the key and the transcriptions that link here; do not change any symbol or value without establishing [[Wikipedia:Consensus|consensus]] on the [[{{TALKPAGENAME}}|talk page]] first.</div><div style="font-size: 90%;">{{IPA notice/msg|preamble=no}}</div>
|imageright = <div style="white-space: nowrap;">{{#if:{{{1<includeonly>|</includeonly>}}}|{{Shortcut|{{{1}}}|{{{2|}}}|{{{3|}}}|{{{4|}}}|{{{5|}}}<noinclude>|category=no</noinclude>}}}}</div>
}}<includeonly>{{#ifeq:{{NAMESPACENUMBER}}|12|{{short description|Wikipedia key to pronunciation of {{{language|{{SUBPAGENAME}}}}}}}[[Category:International Phonetic Alphabet help|{{{sort|{{SUBPAGENAME}}}}}]]}}</includeonly><noinclude>{{Documentation}}</noinclude>
4hb2eby2pkqrjm8u34fvv8fplfj0hok
Ta̱mpi̱let:IPA key/doc
10
2023
15876
2022-08-12T10:49:51Z
Kambai Akau
15
Created page with "{{documentation subpage}} This is the page banner template for IPA keys under "[[Special:PrefixIndex/Help:IPA/|Help:IPA/]]". By default, {{param|language}} is set to the subpage name (e.g. "English" for [[Help:IPA/English]]). It supports up to five [[Wikipedia:Shortcut|shortcuts]]. It categorizes the page under [[:Category:International Phonetic Alphabet help]], with the sort key set to the subpage name or the value in {{para|sort}}. {{IPA templates}} <includeonly>{{Sa..."
wikitext
text/x-wiki
{{documentation subpage}}
This is the page banner template for IPA keys under "[[Special:PrefixIndex/Help:IPA/|Help:IPA/]]". By default, {{param|language}} is set to the subpage name (e.g. "English" for [[Help:IPA/English]]). It supports up to five [[Wikipedia:Shortcut|shortcuts]].
It categorizes the page under [[:Category:International Phonetic Alphabet help]], with the sort key set to the subpage name or the value in {{para|sort}}.
{{IPA templates}}
<includeonly>{{Sandbox other||
[[Category:Header templates]]
[[Category:Help namespace templates]]
[[Category:Templates that generate short descriptions]]
}}</includeonly>
roftpmow2ty0opvnmnqfcz4ohy5bckk
Beang:IPA/Italian
12
2024
15878
2022-08-12T10:51:52Z
Kambai Akau
15
Kambai Akau shyei peji [[Beang:IPA/Italian]] nat [[Beang:IPA/Italiya]]
wikitext
text/x-wiki
#REDIRECT [[Beang:IPA/Italiya]]
cfknjnylzeh4ed0lm3b371g56ytu3cl
Ta̱mpi̱let:IPAblink
10
2025
15879
2022-08-12T10:53:40Z
Kambai Akau
15
Created page with "<includeonly>{{#invoke:IPA symbol|link|symbol={{{1|}}}|text={{{2|}}}|prefix=[|suffix=]|audio={{{audio|}}}|errortext={{{errortext|}}}}}</includeonly><noinclude>{{documentation}}</noinclude>"
wikitext
text/x-wiki
<includeonly>{{#invoke:IPA symbol|link|symbol={{{1|}}}|text={{{2|}}}|prefix=[|suffix=]|audio={{{audio|}}}|errortext={{{errortext|}}}}}</includeonly><noinclude>{{documentation}}</noinclude>
1anzyqmgvf3cz4ea8lut74ea8fj3zvu
Ta̱mpi̱let:IPAblink/doc
10
2026
15880
2022-08-12T10:55:05Z
Kambai Akau
15
Redirected page to [[Ta̱mpi̱let:IPA link/doc]]
wikitext
text/x-wiki
#REDIRECT [[Template:IPA link/doc]]
l8kh0ppzmp2kqdaiypy1q9yt5uewj5x
Ta̱mpi̱let:Reflist
10
2027
15881
2022-08-12T10:56:48Z
Kambai Akau
15
Created page with "<templatestyles src="Reflist/styles.css" /><div class="reflist <!-- -->{{#if:{{{1|}}}{{{colwidth|}}}|reflist-columns references-column-width}} <!-- -->{{#switch:{{{liststyle|{{{group|}}}}}}|upper-alpha|upper-roman|lower-alpha|lower-greek|lower-roman=reflist-{{{liststyle|{{{group}}}}}}}} <!-- -->{{#if:{{{1|}}}|{{#iferror:{{#ifexpr: {{{1|1}}} > 1 }}||{{#switch:{{{1|}}}|1=|2=reflist-columns-2|#default=reflist-columns-3}} }}}}" <!-- end class -->{{#if: {{{1|}}}<!-- start sty..."
wikitext
text/x-wiki
<templatestyles src="Reflist/styles.css" /><div class="reflist <!--
-->{{#if:{{{1|}}}{{{colwidth|}}}|reflist-columns references-column-width}} <!--
-->{{#switch:{{{liststyle|{{{group|}}}}}}|upper-alpha|upper-roman|lower-alpha|lower-greek|lower-roman=reflist-{{{liststyle|{{{group}}}}}}}} <!--
-->{{#if:{{{1|}}}|{{#iferror:{{#ifexpr: {{{1|1}}} > 1 }}||{{#switch:{{{1|}}}|1=|2=reflist-columns-2|#default=reflist-columns-3}} }}}}" <!-- end class
-->{{#if: {{{1|}}}<!-- start style -->
| {{#iferror: {{#ifexpr: {{{1|1}}} > 1 }} |style="column-width: {{{1}}};"}}
| {{#if: {{{colwidth|}}}|style="column-width: {{{colwidth}}};"}}
}}>
{{#tag:references|{{{refs|}}}|group={{{group|}}}|responsive={{#if:{{{1|}}}{{{colwidth|}}}|0|1}}}}</div>{{#invoke:Check for unknown parameters|check|unknown={{main other|[[Category:Pages using reflist with unknown parameters|_VALUE_{{PAGENAME}}]]}}|preview=Page using [[Template:Reflist]] with unknown parameter "_VALUE_"|ignoreblank=y| 1 | colwidth | group | liststyle | refs }}<noinclude>
{{Documentation}}
</noinclude>
geeeydvb5368tzzflcyuzs20a5hlnbz
Ta̱mpi̱let:Reflist/doc
10
2028
15883
2022-08-12T11:00:35Z
Kambai Akau
15
Created page with "{{Documentation subpage}} {{High-use|all-pages=yes}} {{notice|<nowiki /> * This page gives technical details for the {{tl|Reflist}} template. For a full overview of this template in use, see [[Help:Footnotes]]. }} {{Transwiki guide |small=yes |text=See [[Template:Reflist/Transwiki guide|'''this information''']] on copying this template and modifying it for use on another wiki.}} {{Uses TemplateStyles|Template:Reflist/styles.css}} This Wikipedia:Citation templates|citat..."
wikitext
text/x-wiki
{{Documentation subpage}}
{{High-use|all-pages=yes}}
{{notice|<nowiki />
* This page gives technical details for the {{tl|Reflist}} template. For a full overview of this template in use, see [[Help:Footnotes]].
}}
{{Transwiki guide |small=yes |text=See [[Template:Reflist/Transwiki guide|'''this information''']] on copying this template and modifying it for use on another wiki.}}
{{Uses TemplateStyles|Template:Reflist/styles.css}}
This [[Wikipedia:Citation templates|citation template]] provides formatting and organizational features for [[Help:Footnotes|footnotes]]. It encapsulates the {{tag|references|s}} tag used by the {{cite.php}} MediaWiki extension to show the list of references as defined by {{tag|ref|o}} tags. It adds support for sizing the column width, groups and {{ldr}}.
==Parameters==
There are no ''required'' parameters; if none are supplied, a single-column list will be generated if there are fewer than 10 references in the list. If you have more than 10 references, it will use columns of 30em wide if your device allows this.
Optional parameters are:
* Unnamed parameter (must be the first one if used): the minimum width for each column of references, typically in [[em (typography)#CSS|em]]s. Syntax (for example) {{para||30em}} with no space (i.e. not {{para||30 em}}). Note that this replaces '''colwidth'''—see [[#Obsolete parameters|§ Obsolete parameters]].
* '''refs''': used with {{ldr}}.
* '''group''': identifies by name the subset of references to be rendered; the value should correspond to that used inline, e.g., {{tlx|Reflist|2=group=groupname}} renders all references with ''groupname'' as the group name ({{tag|ref|o|params=group="groupname"}}). There are five pre-defined group names that style the list differently. See [[#Grouped references|§ Grouped references]] below.
* '''liststyle''': specifies the style used when the reference list is rendered. The default is a numbered list. When set, it will override the style set by the {{para|group}} parameter, without affecting group functionality. See [[#List styles|§ List styles]] below.
{{anchor|Multiple uses}}
==Usage==
{{markup|title=Using only footnote-style references
|<nowiki>Lorem ipsum.<ref>Source name, access date, etc.</ref>
Lorem ipsum dolor sit amet.<ref>Source name, access date, etc.</ref>
==References==
{{Reflist}}</nowiki>
|Lorem ipsum.<ref>Source name, access date, etc.</ref>
Lorem ipsum dolor sit amet.<ref>Source name, access date, etc.</ref>
{{fake heading|sub=3|References}}
{{Reflist}}
}}
{{markup|title=Using only bibliographical style references (no direct references from the text)
|<nowiki>Lorem ipsum. Lorem ipsum dolor sit amet.
==References==
{{Refbegin}}
* reference 1
* reference 2
{{Refend}}</nowiki>
|Lorem ipsum. Lorem ipsum dolor sit amet.
{{fake heading|sub=3|References}}
{{Refbegin}}
* reference 1
* reference 2
{{Refend}}
}}
{{markup|title=Using both footnote-style and bibliography-style references
|<nowiki>Lorem ipsum.<ref>Source name, access date, etc.</ref>
Lorem ipsum dolor sit amet.<ref>Source name, access date, etc.</ref>
==References==
{{Reflist}}
{{Refbegin}}
* reference 1
* reference 2
{{Refend}}</nowiki>
|Lorem ipsum.<ref>Source name, access date, etc.</ref>
Lorem ipsum dolor sit amet.<ref>Source name, access date, etc.</ref>
{{fake heading|sub=3|References}}
{{Reflist}}
{{Refbegin}}
* reference 1
* reference 2
{{Refend}}
}}
===Columns===
{{tlx|Reflist|30em}} (for example) instructs the browser to create as many columns as possible (of width at least 30 [[Em (typography)|em]], in this example) given the width of the display window. ([http://www.w3.org/TR/CSS21/syndata.html#length-units Units supported are em, ex, in, cm, mm, pt, pc, px], but em is almost always used.) There must not be a space between the number and the unit. Percent is not supported.
Choose a width appropriate to the typical width of the references:
* Automatic columns (default when no width is specified): Where there are only a few {{fnote}}; see, e.g., {{oldid|Silver State Arena|530211388#References|Silver State Arena (23:05, 28 December 2012)}}
* 30em: Where there are many footnotes plus a page-width Bibliography subsection: see, e.g., {{oldid|Ebola virus disease|819923970#References|Ebola virus disease (02:02, 12 January 2018)}}
* 20em: Where {{sfnote}} are used; see, e.g., {{oldid|NBR 224 and 420 Classes|442508215#Notes|NBR 224 and 420 Classes (13:32, 1 August 2011)}}.
====Example====
{{markup|title=15em wide columns (vary width of display window to see change in number of columns)
|<nowiki>Lorem ipsum.<ref>Source name, access date, etc.</ref>
Lorem ipsum dolor sit amet.<ref>Source name, access date, etc.</ref>
Lorem ipsum dolor sit amet.<ref>Source name, access date, etc.</ref>
Lorem ipsum dolor sit amet.<ref>Source name, access date, etc.</ref>
Lorem ipsum dolor sit amet.<ref>Source name, access date, etc.</ref>
==References==
{{Reflist|15em}}</nowiki>
|Lorem ipsum.<ref>Source name, access date, etc.</ref>
Lorem ipsum dolor sit amet.<ref>Source name, access date, etc.</ref>
Lorem ipsum dolor sit amet.<ref>Source name, access date, etc.</ref>
Lorem ipsum dolor sit amet.<ref>Source name, access date, etc.</ref>
Lorem ipsum dolor sit amet.<ref>Source name, access date, etc.</ref>
{{fake heading|sub=3|References}}
{{Reflist|15em}}<!-- note 15em used here for illustration purposes because larger value won't columnize in the "renders as" part on many screens -->
}}
The syntax {{tlx|Reflist|2}} (for example), which specifies two columns of equal width ''regardless of the available display width'', is deprecated. When you use 1 the template gives you a single column while 2 will pretend you specified 30em. When using higher column counts, it will pretend you specified 25em.
===List-defined references===
{{Further|WP:LDR}}
A list of references may be defined within {{tl|Reflist}} using the {{para|refs}} parameter, just like including named {{tag|ref|params=name="..."}} elements inside the {{tag|references}} container.
====Example====
{{markup
|<nowiki>This is reference 1.<ref name="refname1" />
This is reference 2.<ref name="refname2" />
==References==
{{Reflist|refs=
<ref name="refname1">content1</ref>
<ref name="refname2">content2</ref>
}}</nowiki>
|This is reference 1.<ref name="refname1" group="decimal"/>
This is reference 2.<ref name="refname2" group="decimal"/>
{{fake heading|sub=3|References}}
{{Reflist|group=decimal|refs=
<ref name="refname1">content1</ref>
<ref name="refname2">content2</ref>
}}
}}
===Grouped references===
{{further|WP:REFGROUP}}
References can be grouped into separate sections (for explanatory notes, table references, and the like) via <code>group=</code>:
:{{tag|ref|open|params=group="<var>groupname</var>"}}
where <var>groupname</var> is (for example) <code>notes</code> or <code>sources</code>. The group name need not be enclosed in quotes; this differs from the footnote marker where quotes are required if the group name includes a space.
Each group used in the article must have a matching reference list:
:{{tlx|Reflist|2=group=<var>groupname</var>}}
====Predefined groups====
{{further|H:PREGROUP}}
There are predefined group names that automatically set the labels in the footnote markers and the reference list to other styles. Thus, setting <code><nowiki>{{Reflist|group=lower-alpha}}</nowiki></code> will set the group to <code>lower-alpha</code> and will style the reference list with lower alpha characters. The matching footnote marker can be formed by {{tag|ref|params=group="lower-alpha"}}. This is made easier by a series of templates to set the group/label styles for the footnote marker and the reference list:
{{#section:Help:Footnotes|pregrouptable}}
===List styles===
{{for|technical details|Help:Cite link labels}}
As noted in [[#Predefined groups|§ Predefined groups]], there are predefined groups that automatically add list styling. Using the listed templates is more convenient than using {{para|liststyle}}.
Reference lists are by default numbered lists. By using the {{para|liststyle}} parameter, you can control how the list is rendered. For example, using {{para|liststyle|upper-roman}} will result in references being labeled with [[Roman numerals]] instead of decimal numbers. The parameter accepts any valid CSS value defined for <code>list-style-type</code> as shown below.
{{CSS list-style-type values}}
It is possible to use {{para|liststyle}} so that the labels for the footnote marker and the reference list marker differ. This should be used with care as it can be confusing to readers. For example:
{{markup
|1=<nowiki><ref group="note">Reference</ref>
{{Reflist|group=note|liststyle=lower-alpha}}
</nowiki>
|2=<ref group="note">Reference</ref>
{{Reflist|group=note|liststyle=lower-alpha}}
}}
===Interaction with images===
{{Reflist hide}}
In the unusual case of an image being placed to the left of a reference list, layout problems may occur on some browsers. This can be prevented by using the columns feature.
==Technical details==
===Font size===
The font size should reduce to 90% for most browsers, but may appear to show at 100% for Internet Explorer and possibly other browsers.<ref group="general" name="fontsize" /> As of December 21, 2010, the standard {{tag|references|single}} tag has the same font styling. The smaller font may be disabled through {{myprefs|Gadgets|Disable smaller font sizes of elements such as Infoboxes, Navboxes and References lists}}.
===Browser support for columns===
{{CSS3 multiple column layout}}
Multiple columns are generated by using [[Cascading Style Sheets|CSS3]], which is still in development; thus only browsers that properly support the multi-column property will show multiple columns with {{tl|Reflist}}.<ref group="general" name="stuffandnonsense" /><ref group="general" name="w3org1" />
These browsers '''support''' CSS3 columns:
* [[Gecko (software)|Gecko]]-based browsers such as [[Mozilla Firefox]]
* [[WebKit]]-based browsers such as [[Safari (web browser)|Safari]] and [[Google Chrome]]
* [[Opera (web browser)|Opera]] from version 11.10 onward
* [[Internet Explorer]] from version 10 onward
These browsers do '''not support''' CSS3 columns:
* Microsoft [[MSHTML]]-based browsers including Internet Explorer up to version 9<ref group="general" name="msdn" />
* [[Opera (web browser)|Opera]] through to version 11
===Widows and orphans===
The use of columns can result in [[widows and orphans]], where a citation at the bottom of a column may be split to the top of the next column. [[MediaWiki:Common.css]] includes CSS rules to prevent list items from breaking between columns. Widows may still show in extreme circumstances, such as a reference list formatted in columns where only a single reference is defined.
{{markup
|<nowiki>Lorem ipsum.<ref>Source name, access date, etc.</ref>
Lorem ipsum dolor sit amet.
==References==
{{Reflist|10em}}</nowiki>
|Lorem ipsum.<ref>Source name, access date, etc.</ref>
Lorem ipsum dolor sit amet.
{{fake heading|sub=3|References}}
{{Reflist|10em}}
}}
===Customizing the view===
{{Further|Help:Reference display customization}}
By editing your CSS, the personal appearance of the reference list can be customized. From [[Special:Preferences|Preferences]], select the Appearance tab, then on the selected skin select Custom CSS. After editing and saving, follow the instructions at the top of the page to purge. See [[Wikipedia:Skin#Customisation (advanced users)]] for more help.
'''Font size'''
The font size for all reference lists defaults to 90% of the standard size. To change it, add:
<syntaxhighlight lang="css">
ol.references,
.mw-parser-output div.reflist,
.mw-parser-output div.refbegin {
font-size: 90%;
}
</syntaxhighlight>
Change 90% to the desired size.
'''Columns'''
To disable columns, add:
<syntaxhighlight lang="css">
.references-column-width {
column-width: auto !important;
}
</syntaxhighlight>
'''Column dividers'''
To add dividers (rules) between columns, add:
<syntaxhighlight lang="css">
.references-column-width {
column-rule: 1px solid #aaa;
}
</syntaxhighlight>
You can alter the appearance of the dividers by changing the values.
==Perennial suggestions==
'''Collapsing and scrolling'''
There have been a number of requests to add functionality for a collapsible or [[WP:SCROLLING|scrolling]] reference list. These requests have not been fulfilled due to issues with readability, accessibility, and printing. The applicable guidelines are at [[MOS:SCROLL]]. Links between the inline cite and the reference list do not work when the reference list is enclosed in a collapsed box.
To display the reference list in a scrollbox or collapsed per user, see [[Help:Reference display customization]].
For discussion on previous attempts to do this with a template, see the discussions for [[Wikipedia:Templates for deletion/Log/2007 June 11#Template:Scrollref|Scrollref]] and [[Wikipedia:Templates for discussion/Log/2010 May 26#Template:Refbox|Refbox]].
'''Including the section title'''
There have been suggestions to include section header markup such as <code>==References==</code>. This is inadvisable because:
* There is no standard section name {{crossreference|(see {{section link|WP:Manual of Style/Layout|Notes and references}})}}.
* When transcluded, the article will have an edit link that will confusingly open the template for editing.
==Obsolete parameters==
These parameters are no longer in use:
* '''colwidth''': Same as specifying a column-width for the first unnamed parameter. Replaced by width as unnamed first parameter.
Articles using unsupported parameters are tracked in {{clc|Pages using reflist with unknown parameters}}.
==Template data==
{{TemplateData header}}
<templatedata>
{
"description": "This template displays the list of footnotes at the end of an article and provides additional formatting and organizing options. After hitting \"Apply changes\" and turning back to VE read mode, you will not see the references list. After hitting \"Publish page\" and turning back to normal read mode the reference list will reappear with the changes applied, see T53146.",
"params": {
"1": {
"label": "Columns / Column width",
"type": "string",
"required": false,
"description": "Two modes supported. First mode (deprecated): integer number of fixed columns into which the reference list is to be rendered. Second mode: typographic unit of measurement such as 'em', specifying the width for the reference list columns, e.g. '33em'; spaced '33 em' will not be recognized",
"default": " 1 if < 11 references; otherwise 30em",
"aliases": [
"colwidth"
]
},
"liststyle": {
"label": "Liststyle",
"type": "string",
"required": false,
"description": "Specifies the style used when the reference list is enumerated; accepts any valid CSS value defined for list-style-type",
"default": "decimal",
"suggestedvalues": [
"none",
"disc",
"circle",
"square",
"decimal",
"decimal-leading-zero",
"lower-roman",
"upper-roman",
"lower-alpha",
"upper-alpha",
"lower-greek",
"armenian",
"georgian"
]
},
"group": {
"label": "Group",
"type": "string",
"required": false,
"description": "Group is an identifier which restricts the references that are shown. Without this parameter, this template only shows references with no group identifier. With a group identifier specified, only references with a matching group identifier are handled. The rest are left alone."
},
"refs": {
"label": "List of references",
"type": "string",
"required": false,
"description": "Provides a space to define named references for use in the article. References defined in this space are not shown unless used somewhere in the article."
}
}
}
</templatedata>
==Limitations==
Do not use {{tl|Reflist}} or other templates or modules that use '''<nowiki>{{#tag:references}}</nowiki>''' in numbered or unnumbered lists if the list is inside an [[Span and div|HTML div tag]]. See [[Template talk:Reflist#Limitations|the talk page]] ([https://en.wikipedia.org/w/index.php?title=Template_talk:Reflist&oldid=942930696 permalink]) for examples and details.
:{{no mark}} {{em dash}} <nowiki>:{{Reflist}}</nowiki>
:{{no mark}} {{em dash}} <nowiki>*{{Reflist}}</nowiki>
:{{no mark}} {{em dash}} <nowiki>#{{Reflist}}</nowiki>
:{{yes check}} {{em dash}} <nowiki>{{Reflist}}</nowiki>
==See also==
* [[Wikipedia:Citing sources]] – style guide for the citation of sources
* [[Wikipedia:Citation templates]] – templates for use with references
* [[Help:Shortened footnotes]]
* {{tl|Notelist}} and {{tl|efn}} – templates for use with footnotes
* {{tl|Refbegin}} and {{tl|Refend}} – format reference lists
* {{phab|T53260}} – Support editing {{tag|references|s}} tags to set multi-column display on/off
'''Variants'''
* {{tl|Template reference list}} – version of reflist for use in templates
* {{tl|Reflist-talk}} and {{tl|Sources-talk}} – for use in talk page sections and other non-mainspace pages
==References==
{{Reflist|group=general|refs=
<ref group="general" name="fontsize">See [[User:Edokter/fonttest]] for a comparison of font sizes for various browsers; see [//en.wikipedia.org/w/index.php?title=Special%3ASearch&redirs=1&search=fonttest+prefix%3AMediaWiki+talk%3ACommon.css%2F&fulltext=Search&ns0=1 previous discussions] on changing the font size to resolve the IE issue.</ref>
<ref group="general" name="stuffandnonsense">{{cite web |accessdate=November 24, 2006 |date=December 30, 2005 |title=CSS3 Multi-Column Thriller |url=http://www.stuffandnonsense.co.uk/archives/css3_multi-column_thriller.html}}</ref>
<ref group="general" name="w3org1">{{cite web |url=http://www.w3.org/TR/css3-multicol/ |title=CSS3 module: Multi-column layout |publisher=[[World Wide Web Consortium|W3C]] |date=December 15, 2005 |accessdate=November 24, 2006}}</ref>
<ref group="general" name="msdn">{{cite web |url=https://docs.microsoft.com/en-us/previous-versions/cc351024(v=vs.85)#multi-column-layout |title=CSS Compatibility and Internet Explorer: Multi-column Layout |work=[[Microsoft Docs]] |publisher=[[Microsoft Developer Network]] |access-date=2021-03-19}}</ref>
}}
{{Wikipedia referencing}}
{{Wikipedia templates}}
{{Wikipedia technical help}}
<includeonly>{{Sandbox other||
[[Category:Footnote templates]]
[[Category:Reference list templates]]
}}</includeonly>
dhlz23xmmgc19664iqipg8oziihe5a8
Ta̱mpi̱let:Reflist/styles.css
10
2029
15884
2022-08-12T11:01:50Z
Kambai Akau
15
Created page with "/* {{pp|small=yes}} */ /* can we remove the font size declarations? .references gets a font-size in * common.css that is always 90, and there is nothing else in reflist out in * the wild. May affect column sizes. */ .reflist { font-size: 90%; /* Default font-size */ margin-bottom: 0.5em; list-style-type: decimal; } .reflist .references { font-size: 100%; /* Reset font-size when nested in div.reflist */ margin-bottom: 0; /* Avoid dou..."
sanitized-css
text/css
/* {{pp|small=yes}} */
/* can we remove the font size declarations? .references gets a font-size in
* common.css that is always 90, and there is nothing else in reflist out in
* the wild. May affect column sizes.
*/
.reflist {
font-size: 90%; /* Default font-size */
margin-bottom: 0.5em;
list-style-type: decimal;
}
.reflist .references {
font-size: 100%; /* Reset font-size when nested in div.reflist */
margin-bottom: 0; /* Avoid double margin when nested in div.reflist */
list-style-type: inherit; /* Enable custom list style types */
}
/* columns-2 and columns-3 are legacy for "2 or more" column view from when the
* template was implemented with column-count.
*/
.reflist-columns-2 {
column-width: 30em;
}
.reflist-columns-3 {
column-width: 25em;
}
/* Reset top margin for lists embedded in columns */
.reflist-columns {
margin-top: 0.3em;
}
.reflist-columns ol {
margin-top: 0;
}
/* Avoid elements breaking between columns */
.reflist-columns li {
page-break-inside: avoid; /* Removed from CSS in favor of break-inside c. 2020 */
break-inside: avoid-column;
}
.reflist-upper-alpha {
list-style-type: upper-alpha;
}
.reflist-upper-roman {
list-style-type: upper-roman;
}
.reflist-lower-alpha {
list-style-type: lower-alpha;
}
.reflist-lower-greek {
list-style-type: lower-greek;
}
.reflist-lower-roman {
list-style-type: lower-roman;
}
9pglv18rwto8wyb2wiymxh52wdd5ut0
Ta̱mpi̱let:In lang
10
2030
15885
2022-08-12T11:03:08Z
Kambai Akau
15
Created page with "{{#invoke:In lang|in_lang|template=in lang<noinclude>|{{CONTENTLANGUAGE}}</noinclude>}}<noinclude> {{documentation}} </noinclude>"
wikitext
text/x-wiki
{{#invoke:In lang|in_lang|template=in lang<noinclude>|{{CONTENTLANGUAGE}}</noinclude>}}<noinclude>
{{documentation}}
</noinclude>
szbgb2lf6rekweszdnzzmouvi00fwpl
Ta̱mpi̱let:In lang/doc
10
2031
15886
2022-08-12T11:04:09Z
Kambai Akau
15
Created page with "{{Documentation subpage}} {{High-use}} {{Lua|Module:In lang}} '''Template:In lang''' is used to denote that a text source is written in a specific language. For citations using a citation template ({{tlx|cite web}}, {{tlx|cite news}}, {{tlx|cite journal}}, etc.), that template's {{Para|language}} parameter should be used instead. To note a span of text in a different language, {{tlx|lang}} or one of the {{tld|[[:Category:Lang-x templates|lang-x]]}} templates ({{tlx|la..."
wikitext
text/x-wiki
{{Documentation subpage}}
{{High-use}}
{{Lua|Module:In lang}}
'''Template:In lang''' is used to denote that a text source is written in a specific language.
For citations using a citation template ({{tlx|cite web}}, {{tlx|cite news}}, {{tlx|cite journal}}, etc.), that template's {{Para|language}} parameter should be used instead.
To note a span of text in a different language, {{tlx|lang}} or one of the {{tld|[[:Category:Lang-x templates|lang-x]]}} templates ({{tlx|lang-fr}}, {{tlx|lang-ast}}, etc.) should be used instead.
==Usage==
This template accepts one or more positional language-code parameters (<{{var|code}}>) and two named parameters:
* Code: {{Tlx|{{BASEPAGENAME}}|<{{var|code}}>|<{{var|code2}}>|{{var|...}}|link{{=}}|cap{{=}}}}
* Produces: {{tld|{{BASEPAGENAME}}|de}} → {{In lang|de}}
===Parameters===
* <code><{{var|code}}></code> – required; <code><{{var|code}}></code> is a valid [[ISO-639]] language code or a valid [[IETF language tag]]; more than one language code supported:
** <code><nowiki>{{In lang|cs|en|de|fr|es|ca-valencia|pl|ru|ja|zh}}</nowiki></code> →
::: {{In lang|cs|en|de|fr|es|ca-valencia|pl|ru|ja|zh}}
* <code>link</code> – accepts the single value <code>yes</code>; creates link to language article
** {{tlc|In lang|nv|link{{=}}yes}} → {{code |lang=moin|{{In lang|nv|link=yes}}}} → {{In lang|nv|link=yes}}
* <code>cap</code> – accepts the single value <code>yes</code>; capitalizes the first letter of "In":
** {{tlc|In lang|pt-BR|cap{{=}}yes}} → {{In lang|pt-BR|cap=yes}}
===Error messages===
This template has one error message of its own:
:<span style="font-size:100%; font-style:normal;" class="error">error: <nowiki>{{In lang}}</nowiki> missing language tag</span> – displayed when the template is transcluded without an ISO 639 language code or IETF language tag.
All other error messages related to the use of this template are emitted by [[Module:Lang]] and are documented at {{cl|Lang and lang-xx template errors}}.
===Categories===
Transclusions in mainspace articles will add the article to the appropriate subcategory of {{cl|Articles with non-English-language sources}}. There are two forms of these subcategories:
:Category:Articles with <{{var|language name}}>-language sources (<{{var|code}}>) – for individual languages<ref>{{cite web |url=https://iso639-3.sil.org/about/scope#Individual%20languages |title=ISO 639-3: Scope of denotation for language identifiers: Individual languages |website=SIL International |access-date=5 December 2019}}</ref> and for macrolanguages<ref>{{cite web |url=https://iso639-3.sil.org/about/scope#Macrolanguages |title=ISO 639-3: Scope of denotation for language identifiers: Macrolanguages |website=SIL International |access-date=5 December 2019}}</ref>
:Category:Articles with <{{var|collective name}}> languages-collective sources (<{{var|code}}>) – for language collectives<ref>{{cite web |url=https://iso639-3.sil.org/about/scope#Collections%20of%20languages |title=ISO 639-3: Scope of denotation for language identifiers: Collections of languages |website=SIL International |access-date=5 December 2019}}</ref>
where <{{var|language name}}> and <{{var|collective name}}> is the name used in the template's rendering and <{{var|code}}> is the ISO 639 code or IETF language tag.
==References==
{{Reflist}}
<includeonly>{{Sandbox other||
<!-- Categories below this line, please; interwikis at Wikidata -->
[[Category:Language templates]]
[[Category:Wikipedia multilingual support templates]]
[[Category:Language tag handling templates]]
}}</includeonly>
nj1ebfe7xwqeklguyxuv7ytz3xy7atv
Module:In lang
828
2032
15887
2022-08-12T11:04:52Z
Kambai Akau
15
Created page with "require ('Module:No globals'); --[[--------------------------< _ I N _ L A N G >-------------------------------------------------------------- implements {{in lang}} Module entry point from another module |link=yes - creates wikilinked language names |template=<template name> - customizes error messages created by Module:lang |list-cats=yes - documentation tool returns language-category names of cats populated by this template <span class="languageicon">(in <langua..."
Scribunto
text/plain
require ('Module:No globals');
--[[--------------------------< _ I N _ L A N G >--------------------------------------------------------------
implements {{in lang}}
Module entry point from another module
|link=yes - creates wikilinked language names
|template=<template name> - customizes error messages created by Module:lang
|list-cats=yes - documentation tool returns language-category names of cats populated by this template
<span class="languageicon">(in <language>)</span>
]]
local function _in_lang (args)
local synonym_table = mw.loadData ('Module:Lang/ISO 639 synonyms'); -- ISO 639-2/639-2T code translation to 639-1 code
local list_cats = 'yes' == args['list-cats']; -- make a boolean
local list = {};
local cats = {};
local maint_msgs = {};
if not args[1] then
local template = (args['template'] and table.concat ({'{{', args['template'], '}}: '})) or ''; -- make template name (if provided by the template)
return table.concat ({'<span style=\"color:#d33\">error: ', template, 'missing language tag</span>'});
end
local module = 'Module:Lang' .. (mw.getCurrentFrame():getTitle():match ('/sandbox') or ''); -- if this module is the sandbox,
local name_from_tag = require (module)._name_from_tag; -- use Module:Lang/sandbox; Module:Lang else
local namespace = mw.title.getCurrentTitle().namespace; -- used for categorization
local this_wiki_lang = mw.language.getContentLanguage().code; -- get this wiki's language code
for i, lang in ipairs (args) do
local code = args[i]:lower();
local t = {code, ['link'] = args['link'], ['template'] = args['template']}; -- build an 'args' table
lang = name_from_tag (t) -- get the language name
table.insert (list, lang) -- add this language or error message to the list
if not ({['ca-valencia'] = true, ['gsw-fr'] = true, ['pt-br'] = true})[code] then -- except for these exact IETF tags; TODO: a better way/place to do this?
code = code:match ('^%a%a%a?%f[^%a]'); -- strip off region, script, and variant tags so that they aren't used to make category names
end
if synonym_table[code] then -- if 639-2/639-2T code has a 639-1 synonym
if (0 == namespace) and not list_cats then -- when listing cats don't include this cat; TODO: right choice?
table.insert (cats, table.concat ({'[[Category:Lang and lang-xx code promoted to ISO 639-1|', code ..']]'}));
end
table.insert (maint_msgs, ' <span class="lang-comment" style="font-style:normal; display:none; color:#33aa33; margin-left:0.3em">')
table.insert (maint_msgs, table.concat ({'code: ', code, ' promoted to code: ', synonym_table[code]}));
table.insert (maint_msgs, '</span>;');
code = synonym_table[code]; -- use the synonym
end
if (0 == namespace) or list_cats then -- when in article space
if lang:find ('[Ee]rror') then -- add error category (message provided by Module:Lang)
if not list_cats then -- don't include this cat when listing cats; TODO: right choice?
table.insert (cats, '[[Category:in lang template errors]]');
end
elseif this_wiki_lang ~= code then -- categorize article only when code is not this wiki's language code
if lang:match ('%[%[.-|.-%]%]') then -- wikilinked individual language name
lang = lang:match ('%[%[.-|(.-)%]%]');
elseif lang:match ('%[%[.-%]%]') then -- wikilinked collective languages name
lang = lang:match ('%[%[(.-)%]%]');
end -- neither of these then plain-text language name
if lang:find ('languages') then -- add appropriate language-name category
table.insert (cats, table.concat ({'[[Category:Articles with ', lang, '-collective sources (', code, ')]]'}));
else
table.insert (cats, table.concat ({'[[Category:Articles with ', lang, '-language sources (', code, ')]]'}));
end
end
end
end
if list_cats then
local cats = table.concat (cats, ', '):gsub ('[%[%]]', ''); -- make a string of categories and then strip wikilink markup
return cats
end
local result = {'<span class="languageicon">('}; -- opening span and (
table.insert (result, 'yes' == args['cap'] and 'In ' or 'in '); -- add capitalized or uncapitalized 'in'
table.insert (result, mw.text.listToText (list, ', ', (2 < #list) and ', and ' or ' and ' )); -- and concatenate the language list
table.insert (result, ')</span>'); -- add closing ) and closing span
table.insert (result, table.concat (maint_msgs) or ''); -- add maint messages, if any
table.insert (result, table.concat (cats)); -- add categories
return table.concat (result); -- make a big string and done
end
--[[--------------------------< I N _ L A N G >----------------------------------------------------------------
implements {{in lang}}
Module entry point from an {{#invoke:lang/utilities/sanbox|in_lang|<code>|<code2>|<code3>|<code...>|link=yes|template=in lang|list-cats=yes}}
]]
local function in_lang (frame)
local args = require ('Module:Arguments').getArgs (frame);
return _in_lang (args);
end
--[[--------------------------< E X P O R T E D F U N C T I O N S >------------------------------------------
]]
return {
in_lang = in_lang, -- module entry from {{#invoke:}}
_in_lang = _in_lang, -- module entry from another module
}
a6fuxq2ab54nahsafebn37ekx1bqu6z
Ta̱mpi̱let:Pp-vandalism
10
2033
15888
2022-08-12T11:05:18Z
LisafBia6531
225
Created page with "<includeonly>{{#invoke:Protection banner|main}}</includeonly><noinclude> {{documentation}} <!-- Categories go on the /doc subpage, and interwikis go on Wikidata. --> </noinclude>"
wikitext
text/x-wiki
<includeonly>{{#invoke:Protection banner|main}}</includeonly><noinclude>
{{documentation}}
<!-- Categories go on the /doc subpage, and interwikis go on Wikidata. -->
</noinclude>
5t6lal9n9hcpwsso2obr7pcyjbg26xc
Module:In lang/doc
828
2034
15889
2022-08-12T11:05:26Z
Kambai Akau
15
Created page with "{{High-use}} {{Lua|Module:Arguments|Module:No globals|Module:Lang|Module:Lang/ISO 639 synonyms}} This module implements {{tlx|In lang}}. <includeonly>{{#ifeq:{{SUBPAGENAME}}|sandbox | | <!-- Categories below this line, please; interwikis at Wikidata --> [[Category:Language-related modules]] }}</includeonly>"
wikitext
text/x-wiki
{{High-use}}
{{Lua|Module:Arguments|Module:No globals|Module:Lang|Module:Lang/ISO 639 synonyms}}
This module implements {{tlx|In lang}}.
<includeonly>{{#ifeq:{{SUBPAGENAME}}|sandbox | |
<!-- Categories below this line, please; interwikis at Wikidata -->
[[Category:Language-related modules]]
}}</includeonly>
3w7v9y4eejr83xpq2q0ixz6rmfx6trc
Module:In lang/sandbox
828
2035
15890
2022-08-12T11:06:01Z
Kambai Akau
15
Created page with "require ('Module:No globals'); --[[--------------------------< _ I N _ L A N G >-------------------------------------------------------------- implements {{in lang}} Module entry point from another module |link=yes - creates wikilinked language names |template=<template name> - customizes error messages created by Module:lang |list-cats=yes - documentation tool returns language-category names of cats populated by this template <span class="languageicon">(in <langua..."
Scribunto
text/plain
require ('Module:No globals');
--[[--------------------------< _ I N _ L A N G >--------------------------------------------------------------
implements {{in lang}}
Module entry point from another module
|link=yes - creates wikilinked language names
|template=<template name> - customizes error messages created by Module:lang
|list-cats=yes - documentation tool returns language-category names of cats populated by this template
<span class="languageicon">(in <language>)</span>
]]
local function _in_lang (args)
local synonym_table = mw.loadData ('Module:Lang/ISO 639 synonyms'); -- ISO 639-2/639-2T code translation to 639-1 code
local list_cats = 'yes' == args['list-cats']; -- make a boolean
local list = {};
local cats = {};
local maint_msgs = {};
if not args[1] then
local template = (args['template'] and table.concat ({'{{', args['template'], '}}: '})) or ''; -- make template name (if provided by the template)
return table.concat ({'<span style=\"font-size:100%; font-style:normal;\" class=\"error\">error: ', template, 'missing language tag</span>'});
end
local module = 'Module:Lang' .. (mw.getCurrentFrame():getTitle():match ('/sandbox') or ''); -- if this module is the sandbox,
local name_from_tag = require (module)._name_from_tag; -- use Module:Lang/sandbox; Module:Lang else
local namespace = mw.title.getCurrentTitle().namespace; -- used for categorization
local this_wiki_lang = mw.language.getContentLanguage().code; -- get this wiki's language code
for i, lang in ipairs (args) do
local code = args[i]:lower();
local t = {code, ['link'] = args['link'], ['template'] = args['template']}; -- build an 'args' table
lang = name_from_tag (t) -- get the language name
table.insert (list, lang) -- add this language or error message to the list
if 'ca-valencia' ~= code then -- except for valencian
code = code:match ('^%a%a%a?%f[^%a]'); -- strip off region, script, and variant tags so that they aren't used to make category names
end
if synonym_table[code] then -- if 639-2/639-2T code has a 639-1 synonym
if (0 == namespace) and not list_cats then -- when listing cats don't include this cat; TODO: right choice?
table.insert (cats, table.concat ({'[[Category:Lang and lang-xx code promoted to ISO 639-1|', code ..']]'}));
end
table.insert (maint_msgs, ' <span class="lang-comment" style="font-style:normal; display:none; color:#33aa33; margin-left:0.3em">')
table.insert (maint_msgs, table.concat ({'code: ', code, ' promoted to code: ', synonym_table[code]}));
table.insert (maint_msgs, '</span>;');
code = synonym_table[code]; -- use the synonym
end
if (0 == namespace) or list_cats then -- when in article space
if lang:find ('error') then -- add error category (message provided by Module:Lang)
if not list_cats then -- don't include this cat when listin cats; TODO: right choice?
table.insert (cats, '[[Category:in lang template errors]]');
end
elseif this_wiki_lang ~= code then -- categorize article only when code is not this wiki's language code
if lang:match ('%[%[.-|.-%]%]') then -- wikilinked individual language name
lang = lang:match ('%[%[.-|(.-)%]%]');
elseif lang:match ('%[%[.-%]%]') then -- wikilinked collective languages name
lang = lang:match ('%[%[(.-)%]%]');
end -- neither of these then plain-text language name
if lang:find ('languages') then -- add appropriate language-name category
table.insert (cats, table.concat ({'[[Category:Articles with ', lang, '-collective sources (', code, ')]]'}));
else
table.insert (cats, table.concat ({'[[Category:Articles with ', lang, '-language sources (', code, ')]]'}));
end
end
end
end
if list_cats then
local cats = table.concat (cats, ', '):gsub ('[%[%]]', ''); -- make a string of categories and then strip wikilink markup
return cats
end
local result = {'<span class="languageicon">('}; -- opening span and (
table.insert (result, 'yes' == args['cap'] and 'In ' or 'in '); -- add capitalized or uncapitalized 'in'
table.insert (result, mw.text.listToText (list, ', ', (2 < #list) and ', and ' or ' and ' )); -- and concatenate the language list
table.insert (result, ')</span>'); -- add closing ) and closing span
table.insert (result, table.concat (maint_msgs) or ''); -- add maint messages, if any
table.insert (result, table.concat (cats)); -- add categories
return table.concat (result); -- make a big string and done
end
--[[--------------------------< I N _ L A N G >----------------------------------------------------------------
implements {{in lang}}
Module entry point from an {{#invoke:lang/utilities/sanbox|in_lang|<code>|<code2>|<code3>|<code...>|link=yes|template=in lang|list-cats=yes}}
]]
local function in_lang (frame)
local args = require ('Module:Arguments').getArgs (frame);
return _in_lang (args);
end
--[[--------------------------< N A T I V E _ N A M E _ L A N G >----------------------------------------------
experimental code; may not be retained
implements combined is_ietf_tag() and tag_from_name() in Module:Lang for various infoboxen that support a
|native_name_lang= parameter.
if {{{1}}} is a valid ietf language tag, returns that tag;
if {{{1}}} is a properly spelled (case agnostic) language name, returns the ietf language tag associated with that name
error messages else
entry point from an {{#invoke:Lang/utilities/sandbox|native_name_lang|<language name or tag>|template=<template name>}}
]]
local function native_name_lang (frame)
local lang_module = require ('Module:Lang/sandbox');
local getArgs = require ('Module:Arguments').getArgs;
local args = getArgs(frame);
if lang_module._is_ietf_tag (args[1]) then
return args[1]; -- if a tag, return the tag
else
return lang_module._tag_from_name (args); -- not a tag, attempt to get a tag from the args[1] input value; return tag or error message
end
end
--[[--------------------------< C A T _ T E S T >--------------------------------------------------------------
temporary test code to be deleted
support for {{Category articles containing non-English-language text}} that tests the language parameters provided
to that template against the category name.
{{#invoke:Lang/utilities/sandbox|cat_test}}
]]
local function cat_test (frame)
local lang_module = require ('Module:Lang');
local args = require ('Module:Arguments').getArgs (frame);
local err = false; -- boolean set true when an error is detected; one error message only
local cat_page_title = mw.title.getCurrentTitle().text; -- get the category title
local lang_name;
local index; -- positional parameter index
local lc_lang_name, lc_lang_name_col; -- individual and collective cat names are different
local lc_title;
for i, v in ipairs (args) do -- pairs because ipairs stops at nil value (empty positional parameter)
if 'number' == type (i) and args[i] then -- only positional parameters and only when they have a value
if lang_module._is_ietf_tag (v) then -- see if this thing 'v' is an ietf tag
local t = {v}; -- it is so make an args table for _name_from_tag()
lang_name = lang_module._name_from_tag (t); -- get the language name
else
lang_name = v; -- not a valid tag so presume it is a name
end
mw.logObject (lang_name, 'lang_name')
lc_lang_name = table.concat ({ -- build a string to match category name form for individual and macro languages
'containing ',
mw.ustring.lower (lang_name); -- to lowercase for comparisons
'-language',
});
mw.logObject (lc_lang_name, 'lc_lang_name')
lc_lang_name_col = table.concat ({ -- build a string to match category name form for collective languages
'the ',
mw.ustring.lower (lang_name); -- to lowercase for comparisons
' ', -- next word is languages which is included in the name retrieved from Module:lang
});
mw.logObject (lc_lang_name_col, 'lc_lang_name_col')
lc_title = mw.ustring.lower (cat_page_title);
if not mw.ustring.find (lc_title, lc_lang_name, 1, true) and -- if lang name not found in cat title
not mw.ustring.find (lc_title, lc_lang_name_col, 1, true) then
err = true; -- set a flag
index = i; -- remember which positional param failed the test
break; -- abandon the search on first error
end
end
end
-- create error message and done
return err and table.concat ({
'<span style=\"font-size:100%; font-style:normal;\" class=\"error\">error: language: ',
lang_name, -- the thing that we think is the language name
' from {{{',
index, -- the positional parameter index: 1 in {{{1}}}
'}}} (',
args[index], -- the content of the positional parameter
') does not match category title.</span>[[Category:Lang and lang-xx template errors]]'
}) or nil;
end
--[[--------------------------< E X P O R T E D F U N C T I O N S >------------------------------------------
]]
return {
in_lang = in_lang, -- module entry from {{#invoke:}}
native_name_lang = native_name_lang, -- experimental code; may not be retained
_in_lang = _in_lang, -- module entry from another module
cat_test = cat_test, -- temporary test code to be deleted
}
353vir5uqqaf1geiocbcwpmieik2xlb
Ta̱mpi̱let:Pp-vandalism/doc
10
2037
15894
2022-08-12T11:29:14Z
LisafBia6531
225
Created page with "{{Documentation subpage}} {{Twinkle standard installation}} {{lua|Module:Protection banner}} <!-- PLEASE ADD CATEGORIES AND INTERWIKIS AT THE BOTTOM OF THIS PAGE. --> ==Usage== {{in category|Wikipedia pages protected against vandalism|Wikipedia pages with incorrect protection templates|and=or}} This template will automatically detect the edit protection level of a page and adjust its appearance and categorization accordingly (showing full or semi-protection, temporary..."
wikitext
text/x-wiki
{{Documentation subpage}}
{{Twinkle standard installation}}
{{lua|Module:Protection banner}}
<!-- PLEASE ADD CATEGORIES AND INTERWIKIS AT THE BOTTOM OF THIS PAGE. -->
==Usage==
{{in category|Wikipedia pages protected against vandalism|Wikipedia pages with incorrect protection templates|and=or}}
This template will automatically detect the edit protection level of a page and adjust its appearance and categorization accordingly (showing full or semi-protection, temporary or indefinite, etc.). This template will not be visible on pages that are not protected. Please note that only [[Wikipedia:Administrators|administrators]] can protect pages.
* Use {{tlx|{{lc:{{PAGENAME}}}}}} for the normal template
* Use {{tlx|{{lc:{{PAGENAME}}}}|small=yes}} for just an icon at the top
==TemplateData==
{{TemplateData header}}
<templatedata>
{
"params": {
"small": {
"label": "Small",
"description": "Just show an icon at the top.",
"type": "boolean",
"example": "yes"
}
},
"description": "This template will automatically detect the edit protection level of a page and adjust its appearance and categorization accordingly (showing full or semi-protection, temporary or indefinite, etc.). This template will not be visible on pages that are not protected.",
"format": "inline"
}
</templatedata>
==See also==
{{protection templates}}
<includeonly>{{Sandbox other||
<!-- PLEASE ADD CATEGORIES AND INTERWIKIS BELOW THIS LINE, INSIDE INCLUDEONLY TAGS, THANK YOU. -->
[[Category:Top icon protection templates|{{PAGENAME}}]]
}}</includeonly>
bikd0889whgomehtzz1gvic41im1bof
Ta̱mpi̱let:Pp
10
2038
15895
2022-08-12T11:58:22Z
LisafBia6531
225
Created page with "{{#invoke:Protection banner|main}}<noinclude> {{documentation}} </noinclude>"
wikitext
text/x-wiki
{{#invoke:Protection banner|main}}<noinclude>
{{documentation}}
</noinclude>
8rt1snyv5yit3jnuzrbl00negaj27e5
TR
0
2039
15896
2022-08-12T12:08:13Z
LisafBia6531
225
Redirected page to [[Turkiya]]
wikitext
text/x-wiki
#REDIRECT [[Turkiya]]
90x846ao4ea0axn3ltonxdby98a5gzx
Wukipedia:Upload requests
4
2040
15908
15898
2022-08-12T14:04:14Z
LisafBia6531
225
wikitext
text/x-wiki
__NEWSECTIONLINK__
<big>This page is for requests from users who are not eligible to upload files.</big> If your purpose is to upload Commons files, please [https://commons.wikimedia.org/wiki/Special:UploadWizard?uselang=kcg click here].
----
oqe4wb5i9t4m05br2y2b0euauy3vy23
Ta̱mpi̱let:Requester
10
2041
15900
2022-08-12T12:51:06Z
LisafBia6531
225
+
wikitext
text/x-wiki
*<span class="plainlinks">[[User:{{{User|{{{1|Example}}}}}}|{{UCFIRST:{{{User|{{{1|''Example''}}}}}}}}]] ([[User :{{{User|{{{1|Example}}}}}}|message]]) · contributions ([[Special:Contributions/{{{User|{{{1|Example}}}}}}|local]] · [[:luxo:{{{User|{{{1|Example}}}}}}|global]]) · statistics ([https://tools.wmflabs.org/supercount/index.php?user={{urlencode:{{UCFIRST:{{{User|{{{1|Example}}}}}}}}}}&project=tr.wikipedia general] · [https://xtools.wmflabs.org/editsummary/kcg.wikipedia.org/{{urlencode:{{UCFIRST:{{{User|{{{1|Example}}}}}}}}}}&project=kcg.wikipedia summaries]) · [{{fullurl:Special:Log|user={{anchorencode:{{UCFIRST:{{{User|{{{1|Example}}}}}}}}}}}} logs] · [{{fullurl:Special:Log/block|page=User:{{anchorencode:{{UCFIRST:{{{User|{{{1|Example}}}}}}}}}}}} blocks] · [[Special:DeletedContributions/{{{User|{{{1|Example}}}}}}|deleted contributions]] ([[Special:Userrights/{{{1|Example}}}|<span style="color:#002bb8">'''Change user groups'''</span>]])</span>
5fgrlixq59rrv3fuar616fm3l9tbqzv
Wukipedia:VisualEditor
4
2042
15930
15929
2022-08-16T09:53:04Z
Danjuma Anthony
411
N tyia databox
wikitext
text/x-wiki
Tsuung adak (akpa;tsutsuung adak ji) yet nbwak nkwon nyia na byia agasat, nang ani tyap a njhyi adak kwoot yak ani.
1se1ro0qd5i4ipdq9dens211nv9txs6
Sa:Zwuóm
14
2043
15936
15935
2022-08-17T06:40:49Z
Kambai Akau
15
wikitext
text/x-wiki
[[Category:Nyám]]
fj5rrgsuj8y83kco7mq8z0l3sq4n8v0
Wukipedia:The duck test
4
2044
15937
2022-08-17T14:03:17Z
LisafBia6531
225
Created page with "{{Short description|Wikimedia project page}} {{redirect|WP:QUACK|the essay "Lunatic charlatans"|Wikipedia:Lunatic charlatans}} {{redirect|WP:DUCK|the WikiProject on birds (including ducks)|Wikipedia:WikiProject Birds}} {{essay|interprets=the [[Wikipedia:Sockpuppetry|sock puppetry policy]]|WP:DUCK|WP:QUACK|WP:DUCKTEST|WP:FOWLPLAY}} {{nutshell|Administrators may take action against [[Wikipedia:Sockpuppetry|sock puppetry]] or Wikipedia:Sockpuppetry#Meatpuppetry|meat puppe..."
wikitext
text/x-wiki
{{Short description|Wikimedia project page}}
{{redirect|WP:QUACK|the essay "Lunatic charlatans"|Wikipedia:Lunatic charlatans}}
{{redirect|WP:DUCK|the WikiProject on birds (including ducks)|Wikipedia:WikiProject Birds}}
{{essay|interprets=the [[Wikipedia:Sockpuppetry|sock puppetry policy]]|WP:DUCK|WP:QUACK|WP:DUCKTEST|WP:FOWLPLAY}}
{{nutshell|Administrators may take action against [[Wikipedia:Sockpuppetry|sock puppetry]] or [[Wikipedia:Sockpuppetry#Meatpuppetry|meat puppetry]] if there are obvious correlations in behavior.}}
[[File:Wood duck eclipse.jpg|thumb|alt=A photograph of a wood duck standing on a rock.|"Well, it ''could'' be a [[Rabbit–duck illusion|rabbit in disguise]]..." (but it isn't)]]
The [[duck test]] – "If it looks like a duck, swims like a duck, and quacks like a duck, then [[Operational definition|it probably is a duck]]" – suggests that something can be identified by its habitual characteristics.
The duck test does not apply to non-obvious cases. Unless there is evidence which proves otherwise beyond a reasonable doubt, editors must [[Wikipedia:Assume good faith|assume good faith]] from others.
== Usage ==
The "duck test" is meant to be used for internal processes within Wikipedia. For example, consider that "[[User:Example1]]" is engaged in a [[WP:DISPUTE|heated dispute]] with someone else, and gets blocked because of it. Immediately after, a "[[User:Example2]]" registers on Wikipedia and continues the dispute right away, saying the same things and in the same tone. The duck test allows us to consider it '''an obvious [[WP:BADSOCK|sock-puppet]]''', and act in consequence. If "[[User:Example3]]" then registers and continues the dispute, it is appropriate to escalate sanctions, because the matching behaviour is sufficiently obvious to deal with it as sock-puppetry again.
(However, check Example1 and Example2 aren't longstanding editors with similar names - [[WP:CONFUSED|it does happen]]).
==Variations==
[[File:Sockenpuppentanz2.jpg|thumb|alt=A number of literal sock puppets with buttons for eyes. One wears a pair of glasses. Another has yarn for hair.|If your favourite [[YouTuber]]'s article gets [[WP:AfD|nominated for deletion]], ''don't'' get all your [[WP:Meatpuppetry|friends]] to say "[[WP:ILIKEIT|I like it!]]" Even though they all ''look'' different, we can spot that you recruited them...]]
A variation of the duck test in conversations can be found in community discussions where consensus is required, most obviously [[WP:AFD|Articles for deletion]]. If '''consensus appears to be approaching''' one direction, aside from a handful of accounts that are using the same [[WP:ATA|bad arguments]] (often "[[WP:ILIKEIT|I like it]]" or "[[WP:JNN|It's just not notable]]"), it might be reasonable to conclude that, even if direct sockpuppetry is not occurring, the accounts may have still [[WP:MEAT|ganged up together]].
The duck test may also '''apply to [[WP:COPYVIO|copyright violations]]'''. If there is an image that is clearly a movie or TV screenshot, or magazine or CD cover, licensed as an own work by the author, the duck test would allow us to treat it as a copyright violation, even if the specific source of the image remains unknown. For example, ''theoretically'' the actual owner of the movie/CD/whatever copyright ''might'' be re-licensing the image [[GFDL]] and [[CC-BY-SA]] to Wikipedia ... but the image should be [[WP:F9|speedily deleted as a copyright violation]] despite this slim possibility, because there is no need to prove [[beyond a reasonable doubt]] that the uploader was ''not'' in fact the copyright holder ... if so, they can try again via the [[WP:OTRS|Open Ticket Request System]].
The duck test '''does not apply to article content''', and does not trump, or even stand aside, policies such as [[WP:NOR|no original research]], [[WP:VER|verifiability]], and [[WP:NPOV|neutral point of view]]. If there is [[Coot|an animal that "looks like a duck, swims like a duck, and quacks like a duck"]], but zoologists agree that it does not belong in the family [[Anatidae]], then it is not a duck, [[wikt:period#Interjection|period]]. (That being said, some editors believe that [[wp:you don't need to cite that the sky is blue|you don't need to cite that the sky is blue]].)
{{clear}}
== See also ==
* The template {{t|Duck}}, which appears as {{duck}}
* [[Wikipedia:Avoid the word "vandal"]]
* [[Wikipedia:Call a spade a spade]]
* [[Wikipedia:Give 'em enough rope]]
* [[Wikipedia:You can't squeeze blood from a turnip]]
* [[Presumption of innocence|Innocent until proven guilty]]
* [[Confirmation bias]]
* [[Prejudice]]
* [[The purpose of a system is what it does]]
* [[Wikipedia:Don't bite the newbies]]
{{Wikipedia essays}}
[[Category:Wikipedia sockpuppetry]]
ed2caydt1d2o34uz1kzpa5pmjg5nl1a
Wukipedia:DUCK
4
2045
15938
2022-08-17T14:04:57Z
LisafBia6531
225
Redirected page to [[Wukipedia:The duck test]]
wikitext
text/x-wiki
#REDIRECT [[WP:The duck test]]
e30p3hmtou0qk38wn3hu65k5gagdupk
Ta̱mpi̱let:A̱ka̱fwuop nta̱m a̱meang jhyang
10
2047
16062
16061
2022-08-18T20:16:13Z
Kambai Akau
15
wikitext
text/x-wiki
{{#invoke:A̱ka̱fwuop nta̱m a̱meang jhyang|main}}{{main other|{{#invoke:Check for unknown parameters|check|unknown=[[Category:Ngwat na̱ nyian ta̱m ma̱ng A̱ka̱fwuop nta̱m a̱meang ma̱ng a̱kace a̱gi̱gak|_VALUE_]]|preview=unknown parameter "_VALUE_"|1|author|auto|b|c|collapsible|commons|commonscat|cookbook|d|display|m|mw|n|position|q|qid|s|species|species_author|style|v|voy|wikt}}}}<noinclude>
{{Documentation}}
</noinclude>
r6twn4johg6tv6wnug1pkoxa2ezo9f9
Ta̱mpi̱let:A̱ka̱fwuop nta̱m jhyang/doc
10
2048
16045
16044
2022-08-18T19:53:56Z
Kambai Akau
15
wikitext
text/x-wiki
{{Documentation subpage}}
<!-- Add categories where indicated at the bottom of this page and interwikis at Wikidata -->
{{high-use}}
{{Lua|Module:A̱ka̱fwuop nta̱m a̱meang jhyang|Module:Commons link}}
{{Sister project links{{\sandbox}}}}
Ta̱mpi̱let {{tl|A̱ka̱fwuop nta̱m a̱meang jhyang}} hu ni̱ jhyet a̱ka̱fwuop ngwat na̱ myim a̱ni di̱ [[Wikipedia:Wikimedia sister projects|nta̱m a̱meang Wukimedia ma̱ a̱di̱di̱t jhyang]]. The following pages are sought, in order:
* An explicit page chosen by an editor (if provided)
* A sitelink in Wikidata (if exists)
* A search page on the sister project
Sending a reader to a search page can be an unpleasant experience, if there is no corresponding page for that subject. Editors have a choice between two methods to prevent this negative experience:
* Manually check each project for a relevant page, if missing, then set argument to "no" (e.g., {{para|wikt|n}})
* Use "automatic mode", which only displays a sister project by default if sitelink exists (e.g., {{para|auto|yes}})
Note that {{tl|Sister project auto}} is equivalent to {{tlx|A̱ka̱fwuop nta̱m a̱meang jhyang|<nowiki>auto=yes</nowiki>}}.
==Parameters==
<pre style="overflow:auto;">
{{A̱ka̱fwuop nta̱m a̱meang jhyang
<!-- Configuration parameters. Do not leave empty; populate, or remove -->
|1= |auto= |collapsible= |display= |position= |style=
<!-- Projects that default to "yes" when auto=no -->
|b= |c= |n= |q= |s= |v= |wikt=
<!-- Projects that default to "no" when auto=no -->
|d= |m= |mw= |species= |species_author= |voy=
|author= <!-- force search for author name in wikisource -->
|commonscat= <!-- force link to commons category -->
|cookbook= <!-- force link to cookbook at wikibooks -->
}}
All parameters:
{{A̱ka̱fwuop nta̱m a̱meang jhyang |1= |author= |auto= |b= |c= |collapsible= |commonscat= |cookbook= |d= |display= |m= |mw= |n= |position= |q= |qid= |s= |species= |species_author= |style= |v= |voy= |wikt= }}
</pre>
===Default display===
For any project parameter, there are four acceptable values:
* "yes" means find a reasonable link for the sister project (wikidata, or default back to search)
* "no" means exclude this sister project: no link
* a string means link to the page with whose name is that string
* blank or missing means use the default
** If {{para|auto|yes}}, default is either use wikidata (if present), or drop the link
** If {{para|auto|no}}, if project is in the "yes" list above, either use wikidata or search. Otherwise drop the link.
===Si̱sa kai nnia̱===
*{{clc|Ngwat na̱ nyian ta̱m ma̱ng A̱ka̱fwuop nta̱m a̱meang ma̱ng a̱kace a̱gi̱gak}}
==TemplateData==
{{TemplateDataHeader}}
<templatedata>
{
"description": "Displays a terminal window with a set of commands. If the titles in the individual sister projects differ, use the following parameters, which are taken from [[Help:Interwiki linking]].",
"params": {
"1": {
"label": "Search Parameter",
"type": "string",
"required": false,
"description": "Use if the ''search parameter'' differs from the pagename."
},
"auto": {
"label": "Use wikidata to fill defaults",
"type": "string",
"required": false,
"description": "If auto=\"yes\", then sister projects with wikidata sitelinks are filled-in, others are off by default. Each project can be overridden with its own parameter."
},
"collapsible": {
"label": "Collapsible?",
"description": "Set to \"yes\" to make the template collapsible. Set to \"collapsed\" to make the template collapsible and initially collapsed.",
"type": "string"
},
"display": {
"label": "Display name",
"type": "string",
"required": false,
"description": "Use if the ''display name'' is different from the search term. For example, the bear article would be 'Bears'."
},
"author": {
"label": "Wikisource author?",
"type": "string",
"required": false,
"description": "Use for articles about authors to force the Wikisource links to include the \"Author:\" prefix. Can be set to \"yes\" or \"no\". The default is \"No\".",
"default": "No"
},
"commonscat": {
"label": "Commons category?",
"type": "string",
"required": false,
"description": "Specifies whether a link to a category on Wikimedia Commons is shown. Can be \"yes\" or \"no\". The default is \"No\".",
"default": "No"
},
"cookbook": {
"label": "Cookbook",
"type": "string",
"required": false,
"description": "If yes, link to Cookbook at wikibooks. If string, use that string as article title in Cookbooks.",
"default": "Yes"
},
"wikt": {
"label": "Wiktionary link",
"type": "string",
"required": false,
"description": "Wiktionary link to show. Acceptable values are a page name, \"yes\", and \"no\". The default is \"Yes\" (find page automatically).",
"default": "Yes"
},
"c": {
"label": "Commons link",
"type": "string",
"required": false,
"description": "Commons link to show. Acceptable values are a page name, \"yes\" and \"no\". The default is \"Yes\" (find page automatically).",
"aliases": [
"commons"
],
"default": "Yes"
},
"n": {
"label": "Wikinews link",
"type": "string",
"required": false,
"description": "Wikinews link to show. Acceptable values are a page name, \"yes\" and \"no\". The default is \"Yes\" (find page automatically).",
"default": "Yes"
},
"q": {
"label": "Wikiquote link",
"type": "string",
"required": false,
"description": "Wikiquote link to show. Acceptable values are a page name, \"yes\" and \"no\". The default is \"Yes\" (find page automatically).",
"default": "Yes"
},
"s": {
"label": "Wikisource link",
"type": "string",
"required": false,
"description": "Wikisource link to show. Acceptable values are a page name, \"yes\" and \"no\". The default is \"Yes\" (find page automatically).",
"default": "Yes"
},
"b": {
"label": "Wikibooks link",
"type": "string",
"required": false,
"description": "Wikibooks link to show. Acceptable values are a page name, \"yes\" and \"no\". The default is \"Yes\" (find page automatically).",
"default": "Yes"
},
"voy": {
"label": "Wikivoyage link",
"type": "string",
"required": false,
"description": "Wikivoyage link to show. Acceptable values are a page name, \"yes\" (find page automatically), and \"no\". The default is \"No\".",
"default": "No"
},
"v": {
"label": "Wikiversity link",
"type": "string",
"required": false,
"description": "Wikiversity link to show. Acceptable values are a page name, \"yes\", and \"no\". The default is \"Yes\" (find page automatically).",
"default": "Yes"
},
"d": {
"label": "Wikidata link",
"type": "string",
"required": false,
"description": "Wikidata link to show. Acceptable values are a QID, \"yes\" (find page automatically), and \"no\". The default is \"No\".",
"default": "No"
},
"species": {
"label": "Wikispecies taxon link",
"type": "string",
"required": false,
"description": "Wikispecies link to show. Acceptable values are a page name, \"yes\" (find page automatically), and \"no\". The default is \"No\".",
"default": "No"
},
"species_author": {
"label": "Wikispecies author link",
"type": "string",
"required": false,
"description": "Wikispecies author link to show. Acceptable values are a page name, \"yes\"(find page automatically), and \"no\". The default is \"No\".",
"default": "No"
},
"m": {
"label": "Meta link",
"type": "string",
"required": false,
"description": "Meta link to show. Acceptable values are a page name, \"yes\" (find page automatically), and \"no\". The default is \"No\".",
"default": "No"
},
"mw": {
"label": "MediaWiki link",
"type": "string",
"required": false,
"description": "MediaWiki link to show. Acceptable values are a page name, \"yes\" (find page automatically) and \"no\". The default is \"No\".",
"default": "No"
},
"position": {
"label": "Position",
"description": "Specifies whether the box floats to the left or right. The only acceptable value is \"left\" which causes the box to float to the left. Any other value (not specifying this parameter) activates the default. (Float to the right.)",
"type": "string"
},
"style": {
"label": "CSS style",
"description": "Optional CSS style specifications. Use with caution. (And don't use for evil!)",
"type": "string"
}
},
"paramOrder": [
"1",
"auto",
"collapsible",
"display",
"wikt",
"c",
"commonscat",
"n",
"q",
"s",
"author",
"b",
"cookbook",
"voy",
"v",
"d",
"species",
"species_author",
"m",
"mw",
"position",
"style"
]
}
</templatedata>
==Tracking categories==
* {{clc|Pages using Sister project links with unknown parameters}}
* {{clc|Pages using Sister project links with default search}}
* {{clc|Pages using Sister project links with hidden wikidata}}
* {{clc|Pages using Sister project links with wikidata namespace mismatch}}
* {{clc|Pages using Sister project links with wikidata mismatch}}
* {{clc|Pages with empty sister project links}}
==Nghwughwu nang á̱ nyia̱ ta̱m ma̱ng á̱na==
Ta̱mpi̱let hu bye ntyai nghwughwu nani:<br/>
:[[File:Wiktionary-logo-v2.svg|27x27px|link=|alt=]] [[:File:Wiktionary-logo-v2.svg|Wiktionary logo]] <code>wikt</code><br/>
:[[File:Commons-logo.svg|27x27px|link=|alt=]] [[:File:Commons-logo.svg|Wikimedia Commons logo]] <code>c</code> or <code>commons</code><br/>
:[[File:Wikinews-logo.svg|27x27px|link=|alt=]] [[:File:Wikinews-logo.svg|Wikinews logo]] <code>n</code><br/>
:[[File:Wikiquote-logo.svg|27x27px|link=|alt=]] [[:File:Wikiquote-logo.svg|Wikiquote logo]] <code>q</code><br/>
:[[File:Wikisource-logo.svg|27x27px|link=|alt=]] [[:File:Wikisource-logo.svg|Wikisource logo]] <code>s</code><br/>
:[[File:Wikibooks-logo.svg|27x27px|link=|alt=]] [[:File:Wikibooks-logo.svg|Wikibooks logo]] <code>b</code><br/>
:[[File:Wikivoyage-Logo-v3-icon.svg|27x27px|link=|alt=]] [[:File:Wikivoyage-Logo-v3-icon.svg|Wikivoyage logo]] <code>voy</code><br/>
:[[File:Wikiversity logo 2017.svg|27x27px|link=|alt=]] [[:File:Wikiversity logo 2017.svg|Wikiversity logo]] <code>v</code><br/>
:[[File:Wikidata-logo.svg|27x27px|link=|alt=]] [[:File:Wikidata-logo.svg|Wikidata logo]] <code>d</code><br/>
:[[File:Wikispecies-logo.svg|27x27px|link=|alt=]] [[:File:Wikispecies-logo.svg|Wikispecies logo]] <code>species</code> or <code>species_author</code><br/>
:[[File:Wikimedia Community Logo.svg|27x27px|link=|alt=]] [[:File:Wikimedia Community Logo.svg|Meta-Wiki logo]] <code>m</code><br/>
:[[File:MediaWiki-2020-icon.svg|27x27px|link=|alt=]] [[:File:MediaWiki-2020-icon.svg|MediaWiki logo]] <code>mw</code>
==Bu nwuan==
* [[Template:Commons]]
* [[Template:Cross-wiki user]]
* [[Template:Ta̱m a̱meang]]
* [[Template:Sister bar]] – a horizontal version
* [[Template:Subject bar]] – a horizontal version that includes optional portals
* [[Help:Interwiki linking]]
* [[Wikipedia:Template index/Sister projects]]
* [[Wikipedia:Wikimedia sister projects]]
<includeonly>{{sandbox other||
<!-- Categories below this line; interwikis at Wikidata -->
[[Category:Interwiki link templates| ]]
}}</includeonly>
pr3kzlm8xz4l2kiu239we1m693khy5y
Module:A̱ka̱fwuop nta̱m a̱meang jhyang
828
2049
15978
15943
2022-08-18T13:02:30Z
Kambai Akau
15
Kambai Akau shyei peji [[Module:Sister project links]] nat [[Module:A̱ka̱fwuop nta̱m a̱meang jhyang]] di̱ mi̱n wot a̱shaivak: Di̱n Tyap
Scribunto
text/plain
require('Module:No globals')
-- Module to create sister project link box
local getArgs = require('Module:Arguments').getArgs
local commonsLink = require('Module:Commons link')
local sideBox = require('Module:Side box')._main
local generateWarning = require('Module:If preview')._warning
local p = {}
local logo = {
wikt="Wiktionary-logo-v2.svg",
c="Commons-logo.svg",
n="Wikinews-logo.svg",
q="Wikiquote-logo.svg",
s="Wikisource-logo.svg",
b="Wikibooks-logo.svg",
voy="Wikivoyage-Logo-v3-icon.svg",
v="Wikiversity logo 2017.svg",
d="Wikidata-logo.svg",
species="Wikispecies-logo.svg",
m="Wikimedia Community Logo.svg",
mw="MediaWiki-2020-icon.svg"}
local prefixList = {'wikt', 'c', 'n', 'q', 's', 'b', 'voy', 'v', 'd',
'species', 'species_author', 'm', 'mw'}
local sisterName = {
wikt="Wiktionary",
c="Commons",
n="Wikinews",
q="Wikiquote",
s="Wikisource",
b="Wikibooks",
voy="Wikivoyage",
v="Wikiversity",
d="Wikidata",
species="Wikispecies",
m="Meta-Wiki",
mw="MediaWiki"}
local sisterInfo = {
wikt="Definitions",
c="Media",
n="News",
q="Quotations",
s="Texts",
b="Textbooks",
voy="Travel guides",
v="Resources",
d="Data",
species="Taxa",
species_author="Authorship",
m="Discussions",
mw="Documentation"
}
local defaultSisters = {
wikt=true,
c=true,
n=true,
q=true,
s=true,
b=true,
voy='auto',
v=true,
d=false,
species='auto',
species_author=false,
m=false,
mw=false
}
local sisterDb = {
wikt="enwiktionary",
n="enwikinews",
q="enwikiquote",
s="enwikisource",
b="enwikibooks",
voy="enwikivoyage",
v="enwikiversity",
species="specieswiki"}
local trackingType = {
wdMismatch="Pages using Sister project links with wikidata mismatch",
wdNamespace="Pages using Sister project links with wikidata namespace mismatch",
wdHidden="Pages using Sister project links with hidden wikidata",
defaultSearch="Pages using Sister project links with default search"}
local inSandbox = mw.getCurrentFrame():getTitle():find('sandbox', 1, true)
-- Function to add "-sand" to classes when called from sandbox
local function sandbox(s)
return inSandbox and s.."-sand" or s
end
-- Function to canonicalize string
-- search for variants of "yes", and "no", and transform
-- them into a standard form (like [[Template:YesNo]])
-- Argument:
-- s --- input string
-- Result:
-- {x,y} list of length 2
-- x = nil if s is canonicalized, otherwise has trimmed s
-- y = canonical form of s (true if "yes" or other, false if "no", nil if blank)
local function canonicalize(s)
if s == nil then
return {nil, nil}
end
-- if s is table/list, then assume already canonicalized and return unchanged
if tostring(type(s)) == "table" then
return s
end
s = mw.text.trim(tostring(s))
if s == "" then
return {nil, nil}
end
local lowerS = s:lower()
-- Check for various forms of "yes"
if lowerS == 'yes' or lowerS == 'y' or lowerS == 't'
or lowerS == '1' or lowerS == 'true' or lowerS == 'on' then
return {nil, true}
end
-- Check for various forms of "no"
if lowerS == 'no' or lowerS == 'n' or lowerS == 'f'
or lowerS == '0' or lowerS == 'false' or lowerS == 'off'then
return {nil, false}
end
-- Neither yes nor no recognized, leave string trimmed
return {s, true}
end
-- Merge two or more canonicalized argument lists
-- Arguments:
-- argList = list of canonicalized arguments
-- noAll = if true, return no when all argList is no.
-- otherwise, return blank when all argList is blank
local function mergeArgs(argList,noAll)
local test = nil -- default, return blank if all blank
if noAll then
test = false -- return no if all no
end
local allSame = true
-- Search through string for first non-no or non-blank
for _, arg in ipairs(argList) do
if arg[2] then
return arg -- found non-no and non-blank, return it
end
-- test to see if argList is all blank / no
allSame = allSame and (arg[2] == test)
end
-- if all blank / no, return blank / no
if allSame then
return {nil, test} -- all match no/blank, return it
end
-- otherwise, return no / blank
if noAll then
return {nil, nil}
end
return {nil, false}
end
-- Function to get sitelink for a wiki
-- Arguments:
-- wiki = db name of wiki to lookup
-- qid = QID of entity to search for, current page entity by default
local function getSitelink(wiki,qid)
-- return nil if some sort of lookup failure
return qid and mw.wikibase.getSitelink(qid,wiki)
end
-- Function to get sitelink for a wiki
-- Arguments:
-- prefix = prefix string for wiki to lookup
-- qid = QID of entity to search for, current page entity by default
local function fetchWikidata(prefix,qid)
local sisterDbName = sisterDb[prefix]
return sisterDbName and getSitelink(sisterDbName,qid)
end
-- Function to generate the sister link itself
-- Arguments:
-- args = argument table for function
-- args[1] = page to fetch
-- args.default = link when blank
-- args.auto = new auto mode (don't fall back to search)
-- args.sitelink = wikidata sitelink (if available)
-- args.qid = QID of entity
-- args.search = fallback string to search for
-- args.sisterPrefix = wikitext prefix for sister site
-- args.information = type of info sister site contains
-- tracking = tracking table
local function genSisterLink(args, tracking)
if args[1][2] == false or (not args.default and args[1][2] == nil) then
return nil --- either editor specified "no", or "blank" (and default=no), then skip this sister
end
local sitelink = args.sitelink or fetchWikidata(args.sisterPrefix,args.qid)
if args.auto and not sitelink and args[1][2] == nil then
return nil --- in auto mode, if link is blank and no sitelink, then skip
end
-- fallback order of sister link: first specified page, then wikidata, then search
local link = args[1][1] or sitelink or (args.search and "Special:"..args.search)
if not link then
return nil --- no link found, just skip
end
if tracking then
-- update state for tracking categories
if args[1][1] and sitelink then
-- transform supplied page name to be in wiki-format
local page = mw.ustring.gsub(args[1][1],"_"," ")
page = mw.ustring.sub(page,1,1):upper()..mw.ustring.sub(page,2)
local pageNS = mw.ustring.match(page,"^([^:]+):")
local sitelinkNS = mw.ustring.match(sitelink,"^([^:]+):")
if page == sitelink then
tracking.wdHidden = args.sisterPrefix
elseif pageNS ~= sitelinkNS then
tracking.wdNamespace = args.sisterPrefix
else
tracking.wdMismatch = args.sisterPrefix
end
-- if no page link, nor a wikidata entry, and search is on, then warn
elseif not (args[1][2] or sitelink) and args.search then
tracking.defaultSearch = args.sisterPrefix
end
end
return {prefix=args.sisterPrefix, link=link, information=args.information}
end
-- Function to handle special case of commons link
local function commonsLinks(args, commonsPage)
-- use [[Module:Commons link]] to determine best commons link
local cLink = (not args.commonscat) and commonsLink._hasGallery(args.qid)
or commonsLink._hasCategory(args.qid)
if commonsPage[1] and not mw.ustring.match(commonsPage[1]:lower(),"^category:") then
commonsPage[1] = (args.commonscat and "Category:" or "")..commonsPage[1]
end
local commonsSearch = "Search/"..(args.commonscat and "Category:" or "")..args[1]
return {link=cLink, search=commonsSearch}
end
-- Function to handle special case for "author" and "cookbook"
local function handleSubtype(args)
local ns = args.ns
local ns_len = mw.ustring.len(ns)
local result = {}
result.sitelink = fetchWikidata(args.prefix, args.qid)
local subtype = false
if args.page then
if mw.ustring.sub(args.page,1,ns_len) == ns then
subtype = true
elseif args.subtype then
result.page = ns..args.page
subtype = true
end
elseif result.sitelink then
subtype = mw.ustring.sub(result.sitelink,1,ns_len) == ns
elseif args.subtype then
result.search = "Search/"..ns..args.default
subtype = true
end
if subtype then
result.info = args.info
end
return result
end
-- Function to create a sister link, by prefix
-- Arguments:
-- prefix = sister prefix (e.g., "c" for commons)
-- args = arguments for this sister (see p._sisterLink above)
-- tracking = tracking table
local function sisterLink(prefix, args, tracking)
-- determine arguments to genSisterLink according to prefix
if prefix == 'species_author' and not args.species[1] and args.species[2] and not args.species_author[1] and args.species_author[2] then
return nil
end
local default = defaultSisters[prefix]
if default == 'auto' then
default = args.auto
end
-- Handle exceptions by prefix
local search = ((prefix == 'd' and "ItemByTitle/enwiki/") or "Search/")..args[1]
local sitelink = prefix == 'd' and args.qid
local page = args[prefix]
local info = sisterInfo[prefix]
-- special case handling of author and cookbook
local subtype = nil
if prefix == 's' then
subtype = handleSubtype({prefix='s',qid=args.qid,subtype=args.author,page=page[1],
ns='Author:',info=nil,default=args[1]})
elseif prefix == 'b' then
subtype = handleSubtype({prefix='b',qid=args.qid,subtype=args.cookbook,page=page[1],
ns='Cookbook:',info='Recipes',default=args[1]})
end
if subtype then
page[1] = subtype.page or page[1]
search = subtype.search or search
sitelink = subtype.sitelink or sitelink
info = subtype.info or info
end
if prefix == 'voy' and not args.bar and not page[1] and page[2] ~= nil then
info = "Travel information"
end
info = args.information or info
if prefix == 'c' then
local commons = commonsLinks(args, page)
search = commons.search
sitelink = commons.link
end
prefix = (prefix == 'species_author' and 'species') or prefix
return genSisterLink({
page,
auto=args.auto,
qid=args.qid,
sitelink=sitelink,
default=default,
sisterPrefix = prefix,
search=search,
information=info}, tracking)
end
local function templatestyles_page(is_bar)
local sandbox = inSandbox and 'sandbox/' or ''
if is_bar then
return mw.ustring.format(
'Module:Sister project links/bar/%sstyles.css',
sandbox
)
end
return mw.ustring.format(
'Module:Sister project links/%sstyles.css',
sandbox
)
end
-- Function to create html containers for sister project link list
-- Arguments:
-- args = table of arguments
-- args.position: if 'left', position links to left
-- args.collapsible: if non-empty, make box collapsible. If 'collapse', start box hidden
-- args.style: CSS style string appended to end of default CSS
-- args.display: boldface name to display
local function createSisterBox(sisterList, args)
local list = mw.html.create('ul')
for i, link in ipairs(sisterList) do
local li = list:tag('li')
-- html element for 27px-high logo
local logoSpan = li:tag('span')
logoSpan:addClass(sandbox("sister-logo"))
logoSpan:wikitext("[[File:"..logo[link.prefix].."|27x27px|middle|link=|alt=]]")
-- html element for link
local linkspan = li:tag('span')
linkspan:addClass(sandbox("sister-link"))
local linkText = "[["..link.prefix..":"..link.link.."|"..link.information .."]] from "..sisterName[link.prefix]
linkspan:wikitext(linkText)
end
list:allDone()
return sideBox({
role = 'navigation',
labelledby = 'sister-projects',
class = sandbox("sister-box") .. ' sistersitebox plainlinks',
position = args.position,
style = args.style,
abovestyle = args.collapsible and 'clear: both' or nil,
above = mw.ustring.format(
"'''%s''' at Wikipedia's [[Wikipedia:Wikimedia sister projects|<span id=\"sister-projects\">sister projects</span>]]",
args.display or args[1]
),
text = tostring(list),
collapsible = args.collapsible,
templatestyles = templatestyles_page()
})
end
local function createSisterBar(sisterList,args)
local nav = mw.html.create( 'div' )
nav:addClass( 'noprint')
nav:addClass( 'metadata')
nav:addClass( sandbox('sister-bar'))
nav:attr( 'role', 'navigation' )
nav:attr( 'aria-label' , 'sister-projects' )
local header = nav:tag('div')
header:addClass(sandbox('sister-bar-header'))
local pagename = header:tag('b')
pagename:wikitext(args.display or args[1])
local headerText = " at Wikipedia's [[Wikipedia:Wikimedia sister projects|"
headerText = headerText..'<span id="sister-projects" style="white-space:nowrap;">sister projects</span>]]:'
header:wikitext(headerText)
if #sisterList == 1 then
header:wikitext("[[Category:Pages with single-entry sister bar]]")
end
local container = nav:tag('div')
container:addClass(sandbox('sister-bar-content'))
for _, link in ipairs(sisterList) do
local item = container:tag('div')
item:addClass(sandbox('sister-bar-item'))
local logoSpan = item:tag('span')
logoSpan:addClass(sandbox('sister-bar-logo'))
logoSpan:wikitext("[[File:"..logo[link.prefix].."|21x19px|link=|alt=]]")
local linkSpan = item:tag('span')
linkSpan:addClass(sandbox('sister-bar-link'))
linkSpan:wikitext("<b>[["..link.prefix..":"..link.link.."|"..link.information .."]]</b> from "..sisterName[link.prefix])
end
return nav
end
function p._main(args)
local titleObject = mw.title.getCurrentTitle()
-- find qid, either supplied with args, from search string, or from current page
args.qid = args.qid or mw.wikibase.getEntityIdForTitle(args[1] or "") or mw.wikibase.getEntityIdForCurrentPage()
args.qid = args.qid and args.qid:upper()
-- search string defaults to PAGENAME
args[1] = args[1] or mw.wikibase.getSitelink(args.qid or "") or titleObject.text
-- handle redundant "commons"/"c" prefix
args.c = args.c or args.commons
-- Canonicalize all sister links (handle yes/no/empty)
for _, k in ipairs(prefixList) do
args[k] = canonicalize(args[k])
end
-- Canonicalize cookbook
args.cookbook = canonicalize(args.cookbook)
args.b = mergeArgs({args.b,args.cookbook})
args.cookbook = args.cookbook[2]
-- Canonicalize general parameters
for _,k in pairs({"auto","commonscat","author","bar","tracking","sandbox"}) do
args[k] = canonicalize(args[k])[2]
end
-- Initialize tracking categories if main namespace
local tracking = (args.tracking or titleObject.namespace == 0) and {}
local sisterList = {}
local prefix
-- Loop through all sister projects, generate possible links
for _, prefix in ipairs(prefixList) do
local link = sisterLink(prefix, args, tracking)
if link then
table.insert(sisterList, link)
end
end
local box = mw.html.create()
if args.bar and #sisterList > 0 then
box:wikitext(mw.getCurrentFrame():extensionTag{
name = 'templatestyles', args = { src = templatestyles_page(true) }
})
box:node(createSisterBar(sisterList,args))
elseif #sisterList == 1 then
-- Use single sister box instead of multi-sister box
local sister = sisterList[1]
local link = "[["..sister.prefix..":"..sister.link.."|<b><i>"..(args.display or args[1]).."</i></b>]]"
box:wikitext(sideBox({
role = 'navigation',
position=args.position,
image="[[File:"..logo[sister.prefix].."|40x40px|class=noviewer|alt=|link=]]",
metadata='no',
class='plainlinks sistersitebox',
text=sisterName[sister.prefix].." has "..mw.ustring.lower(sister.information).." related to "..link,
templatestyles = templatestyles_page()
}))
elseif #sisterList > 0 then
-- else use sister box if non-empty
box:wikitext(createSisterBox(sisterList,args))
end
if #sisterList == 0 and args.auto then
box:wikitext(generateWarning({"No sister project links found in Wikidata. Try auto=0"}))
end
-- Append tracking categories to container div
-- Alpha ordering is by sister prefix
if tracking then
for k, v in pairs(tracking) do
box:wikitext("[[Category:"..trackingType[k].."|"..v.."]]")
end
if #sisterList == 0 then
box:wikitext("[[Category:Pages with empty sister project links]]")
end
end
return tostring(box)
end
-- Main entry point for generating sister project links box
function p.main(frame)
local args = getArgs(frame,{frameOnly=false,parentOnly=false,parentFirst=false})
return p._main(args)
end
-- Lua entry point for generate one sister link
function p._sisterlink(args)
local prefix = args.prefix
-- Canonicalize all sister links (handle yes/no/empty)
for _, k in ipairs(prefixList) do
args[k] = canonicalize(args[k])
end
-- Canonicalize cookbook
args.cookbook = canonicalize(args.cookbook)
args.b = mergeArgs({args.b,args.cookbook})
args.cookbook = args.cookbook[2]
-- Canonicalize general parameters
for _,k in pairs({"auto","commonscat","author"}) do
args[k] = canonicalize(args[k])[2]
end
args[1] = args[1] or mw.title.getCurrentTitle().text
args.qid = args.qid or mw.wikibase.getEntityIdForCurrentPage()
args.qid = args.qid and args.qid:upper()
local link = sisterLink(prefix, args,nil)
if not link then
return ""
end
return "[["..link.prefix..":"..link.link.."|"..link.information .."]] from "..sisterName[link.prefix]
end
-- Template entry point for generating one sister link
function p.link(frame)
local args = getArgs(frame)
return p._sisterlink(args)
end
return p
hr47rmsc19vyv0rhnmw7tfp4ew0puvb
Module:A̱ka̱fwuop nta̱m a̱meang jhyang/doc
828
2050
16063
15980
2022-08-18T20:21:19Z
Kambai Akau
15
wikitext
text/x-wiki
{{high use|12000}}
{{Lua|Module:Arguments|Module:Commons link|Module:Side box|Module:If preview}}
{{uses TemplateStyles|Module:A̱ka̱fwuop nta̱m a̱meang jhyang/styles.css|Module:A̱ka̱fwuop nta̱m a̱meang jhyang/bar/styles.css}}
Implements {{tl|A̱ka̱fwuop nta̱m a̱meang jhyang}}
See {{tl|A̱ka̱fwuop nta̱m a̱meang jhyang/testcases}} for test cases for box, {{tl|Sister bar/testcases}} for bar.
'''Note''': in order to make the test cases work, the Sandbox CSS classes have "-sand" appended to their names. If you wish to update the CSS, copy the contents of each class from [[Module:A̱ka̱fwuop nta̱m a̱meang jhyang/sandbox/styles.css]] to [[Module:A̱ka̱fwuop nta̱m a̱meang jhyang/styles.css]], but do '''not''' alter the class names, nor just copy-paste the entire CSS file. For the current difference in CSS between Sandbox and Main, see [https://en.wikipedia.org/wiki/Special:ComparePages?page1=Module%3ASister+project+links%2Fstyles.css&rev1=&page2=Module%3ASister+project+links%2Fsandbox%2Fstyles.css&rev2=&action=&diffonly=&unhide= here].
adqj80ecxs3s7do8osttxetmacl9i0u
Module:A̱ka̱fwuop nta̱m a̱meang jhyang/bar/styles.css
828
2051
15979
15945
2022-08-18T13:02:31Z
Kambai Akau
15
Kambai Akau shyei peji [[Module:Sister project links/bar/styles.css]] nat [[Module:A̱ka̱fwuop nta̱m a̱meang jhyang/bar/styles.css]] di̱ mi̱n wot a̱shaivak: Di̱n Tyap
sanitized-css
text/css
/* {{pp|small=y}} */
.sister-bar {
display:flex;
justify-content: center;
align-items: baseline;
font-size: 88%;
background-color: #fdfdfd;
border: 1px solid #a2a9b1;
clear: both;
margin: 1em 0 0;
padding: 0 2em;
}
.sister-bar-header {
margin: 0 1em 0 0.5em;
padding: 0.2em 0;
flex:0 0 auto;
min-height: 24px;
line-height: 22px;
}
.sister-bar-content {
display:flex;
flex-flow: row wrap;
flex:0 1 auto;
align-items: baseline;
padding: 0.2em 0;
column-gap: 1em;
}
.sister-bar-item {
display:flex;
align-items: baseline;
margin:0.15em 0;
min-height:24px;
text-align:left;
}
.sister-bar-logo {
width: 22px;
line-height: 22px;
margin:0 0.2em;
text-align: right;
}
.sister-bar-link {
margin:0 0.2em;
text-align: left;
}
@media screen and (max-width:960px) {
.sister-bar {
flex-flow: column wrap;
margin: 1em auto 0;
}
.sister-bar-header {
flex:0 1;
}
.sister-bar-content {
flex:1;
border-top: 1px solid #a2a9b1;
}
.sister-bar-item {
flex:0 0 20em;
min-width: 20em;
}
}
.navbox + link + .sister-bar,
.navbox + style + .sister-bar,
.portal-bar + link + .sister-bar,
.portal-bar + style + .sister-bar,
.sister-bar + .navbox-styles + .navbox,
.sister-bar + .navbox-styles + .portal-bar {
margin-top: -1px;
}
e2uzts4hp4xug97l0hy3lrw03idta7m
Ta̱mpi̱let:A̱ka̱fwuop nta̱m jhyang/testcases
10
2052
15970
15946
2022-08-18T12:58:19Z
Kambai Akau
15
Kambai Akau shyei peji [[Ta̱mpi̱let:Sister project links/testcases]] nat [[Ta̱mpi̱let:A̱ka̱fwuop nta̱m jhyang/testcases]]: Di̱n Tyap
wikitext
text/x-wiki
{{Testcases notice |toc=on}}
'''Note:''' Sandbox CSS classes have different names than the Main CSS Classes, due to technical limitations in {{tl|test case}}. The sandbox and main will display correctly, but will be flagged as different due to these different names. You will have to manually inspect each test case for correctness.
45w60rd022blbjgie4sxbfkc57zw82r
Ta̱mpi̱let:Sister bar/testcases
10
2053
15948
15947
2022-08-18T11:45:25Z
Kambai Akau
15
wikitext
text/x-wiki
{{Testcases notice |toc=on}}
'''Note:''' Sandbox CSS classes have different names than the Main CSS Classes, due to technical limitations in {{tl|test case}}. The sandbox and main will display correctly, but will be flagged as different due to these different names. You will have to manually inspect each test case for correctness.
== No parameters ==
{{Test case |_format=rows| _showcode=y|_collapsible=y|_title=no parameters}}
== With parameters ==
{{Test case |_format=rows|_collapsible=y|_title=plain|_showcode=true |_code=<nowiki>{{__TEMPLATENAME__ |m=Category:Categories |d=Category:Contents |voy=Category:Project |commons=Category:CommonsRoot |b=Category:Categories |n=Category:Categories |q=Category:Categories |s=Category:Categories |wikt=Category:Fundamental |v=Category:Categories |mw=Category:Languages |species=Category:Categories}}</nowiki>
|m=Category:Categories |d=Category:Contents |voy=Category:Project |commons=Category:CommonsRoot |b=Category:Categories |n=Category:Categories |q=Category:Categories |s=Category:Categories |wikt=Category:Fundamental |v=Category:Categories |mw=Category:Languages |species=Category:Categories
}}
{{Test case |_format=rows| _showcode=y|_collapsible=y|_title=all named arguments set to yes|test|m=y |d=yes |voy=1 |commons=true |b=yes |n=yes |q=y |s=Y |wikt=y |v=YES |mw=y|species=y|species_author=y}}
{{Test case |_format=rows| _showcode=y|_collapsible=y|_title=all named arguments set to no|test|m=n |d=no |voy=0 |commons=false |b=no |n=no |q=n |s=N |wikt=n |v=NO |mw=0|species=n|species_author=n}}
{{Test case |_format=rows| _showcode=y|_collapsible=y|_title=Only commons link|test|m=n |d=no |voy=0 |commons=test |b=no |n=no |q=n |s=N |wikt=n |v=NO |mw=0|species=n|species_author=n}}
{{Test case |_format=rows| _showcode=y|_collapsible=y|_title=Only commonscat link|test|m=n |d=no |voy=0 |commons=test|commonscat=yes|b=no |n=no |q=n |s=N |wikt=n |v=NO |mw=0|species=n|species_author=n}}
{{Test case |_format=rows| _showcode=y|_collapsible=y|_title=Display with single link|test|m=n |d=no |voy=0 |commons=true |b=no |n=no |q=n |s=N |wikt=n |v=NO |mw=0|species=n|species_author=n|display=Bears}}
{{Test case |_format=rows| _showcode=y|_collapsible=y|_title=Only wikispecies|test|m=n |d=no |voy=0 |commons=false |b=no |n=no |q=n |s=N |wikt=n |v=NO |mw=0|species=Testus chicagoensis|species_author=n}}
==Test commonscat==
{{Test case |_format=rows| _showcode=y| _collapsible=y|_title=commons provided, commonscat no|Polar bear|commons=Ursus maritimus}}
{{Test case |_format=rows| _showcode=y| _collapsible=y|_title=commons provided, commonscat yes|Polar bear|commons=Ursus maritimus|commonscat=y}}
{{Test case |_format=rows| _showcode=y| _collapsible=y|_title=commons has category, commonscat is category|Polar bear|commons=Category:Ursus maritimus|commonscat=Category:Ursus maritimus}}
{{Test case |_format=rows| _showcode=y| _collapsible=y|_title=no commons, commonscat no|Polar bear}}
{{Test case |_format=rows| _showcode=y| _collapsible=y|_title=no commons, commonscat yes|Polar bear|commonscat=y}}
==With ''Ursus maritimus'' metadata==
{{Test case |_format=rows| _showcode=y| _collapsible=y|_title=commonscat yes
|qid=Q33609|d=y|commonscat=yes|species=yes|Polar bear}}
{{Test case |_format=rows| _showcode=y| _collapsible=y|_title=commonscat no
|qid=Q33609|d=y|commonscat=no|species=yes|Polar bear}}
{{Test case |_format=rows| _showcode=y| _collapsible=y|_title=commons yes
|qid=Q33609|d=y|commons=yes|species=yes|Polar bear}}
{{Test case |_format=rows| _showcode=y| _collapsible=y|_title=commons no
|qid=Q33609|d=y|commons=no|species=yes|Polar bear}}
{{Test case |_format=rows| _showcode=y|_collapsible=y|_title=commons Angola
|qid=Q33609|d=y|commons=Angola|species=yes|Polar bear}}
==Test auto==
{{Test case |_format=rows| _showcode=y| _collapsible=y|_title=Alabama no auto | Alabama | qid=Q173}}
{{Test case |_format=rows| _showcode=y| _collapsible=y|_title=Alabama auto | Alabama | qid=Q173 |auto=1}}
{{Test case |_format=rows| _showcode=y| _collapsible=y|_title=Alabama auto no qid | Alabama |auto=1}}
{{Test case |_format=rows| _showcode=y| _collapsible=y|_title=Alabama no auto no qid | Alabama}}
{{Test case |_format=rows| _showcode=y| _collapsible=y|_title=Abraham Lincoln no auto | Abraham Lincoln | qid=Q91}}
{{Test case |_format=rows| _showcode=y| _collapsible=y|_title=Abraham Lincoln auto | Abraham Lincoln | qid=Q91 | auto=1}}
{{Test case |_format=rows| _showcode=y| _collapsible=y|_title=Abraham Lincoln auto no qid | Abraham Lincoln | auto=1}}
{{Test case |_format=rows| _showcode=y| _collapsible=y|_title=Abraham Lincoln no auto no qid | Abraham Lincoln}}
==Test wikispecies==
{{Test case |_format=rows| _showcode=y| _collapsible=y|_title=auto default | Polar bear | qid=Q33609 | auto=1}}
{{Test case |_format=rows| _showcode=y| _collapsible=y|_title=species default, without QID | Polar bear | species=1}}
{{Test case |_format=rows| _showcode=y| _collapsible=y|_title=species default, with QID | Polar bear | qid=Q33609 | species=1}}
{{Test case |_format=rows| _showcode=y| _collapsible=y|_title=species specified | Polar bear | species=Ursus maritimus}}
{{Test case |_format=rows| _showcode=y| _collapsible=y|_title=author default, with QID | Constantine John Phipps |qid=Q335143 | species_author=1 | author=1}}
{{Test case |_format=rows| _showcode=y|_collapsible=y|_title=author default, without QID | Constantine John Phipps | species_author=1 | author=1}}
{{Test case |_format=rows| _showcode=y| _collapsible=y|_title=author specified | Constantine John Phipps | species_author=Constantine John Phipps | author=1}}
{{Test case |_format=rows| _showcode=y| _collapsible=y|_title=both species and author specified | Polar bear | species=Ursus maritimus | species_author=Constantine John Phipps | author=1}}
{{Test case |_format=rows| _showcode=y| _collapsible=y|_title=species blank, author no, auto | Polar bear | qid=Q33609 | auto=1 | species_author=no}}
{{Test case |_format=rows| _showcode=y| _collapsible=y|_title=species no, author no, auto | Polar bear | qid=Q33609 | auto=1 | species=no | species_author=no}}
==Test cookbook==
{{Test case |_format=rows| _showcode=y| _collapsible=y|_title=From wikidata | Dessert | qid=Q182940 | auto=1}}
{{Test case |_format=rows| _showcode=y| _collapsible=y|_title=cookbook specified | Cuisine of France| auto=1|qid=Q6661| b=Cuisine of France|cookbook=y|c=Cuisine of France|commonscat=y|voy=Cuisine of France}}
{{Test case |_format=rows| _showcode=y| _collapsible=y|_title=cookbook implicit | Vanilla | auto=1|qid=Q13241|c=y|s=y|cookbook=y|wikt=y}}
{{Test case |_format=rows| _showcode=y| _collapsible=y|_title=cookbook namespace used | Vanilla | auto=1|qid=Q13241|b=Cookbook:Vanilla}}
==Test wikisource author==
{{Test case |_format=rows| _showcode=y| _collapsible=y|_title=Colin Powell | Colin Powell | qid=Q150851 | s=Colin L. Powell |author=yes}}
{{Test case |_format=rows| _showcode=y| _collapsible=y|_title=Leon Trotsky | Leon Trotsky | qid=Q33391 | author=yes|commons=Лев Троцкий|d=Q33391}}
==Test junk search==
{{Test case |_format=rows| _showcode=y| _collapsible=y|_title=sdfjoisfj auto=0 | sdfjoisfj | auto=0}}
{{Test case |_format=rows| _showcode=y| _collapsible=y|_title=sdfjoisfj auto=1 | sdfjoisfj | auto=1}}
2ym5c9lc5k53torgidhg1kg5hs28ix9
Ta̱mpi̱let:Test case
10
2054
15949
2022-08-18T11:46:37Z
Kambai Akau
15
Created page with "<includeonly>{{#invoke:Template test case|main}}</includeonly><noinclude> {{documentation}} <!-- Categories go on the /doc subpage and interwikis go on Wikidata. --> </noinclude>"
wikitext
text/x-wiki
<includeonly>{{#invoke:Template test case|main}}</includeonly><noinclude>
{{documentation}}
<!-- Categories go on the /doc subpage and interwikis go on Wikidata. -->
</noinclude>
tqcbtoi20hh04qz7tcyj9c81ibksvas
Ta̱mpi̱let:Test case/doc
10
2055
15950
2022-08-18T11:50:20Z
Kambai Akau
15
Created page with "{{Documentation subpage}} {{For|the legacy syntax version of this template|Template:Testcase}} {{Lua|Module:Template test case}} <!-- Please place categories where indicated at the bottom of this page and interwikis at Wikidata (see [[Wikipedia:Wikidata]]) --> This template generates a test case for two or more templates. Each template is called with the same parameters, and the test case can be displayed in various different formats. All parameters passed to this temp..."
wikitext
text/x-wiki
{{Documentation subpage}}
{{For|the legacy syntax version of this template|Template:Testcase}}
{{Lua|Module:Template test case}}
<!-- Please place categories where indicated at the bottom of this page and interwikis at Wikidata (see [[Wikipedia:Wikidata]]) -->
This template generates a test case for two or more templates. Each template is called with the same parameters, and the test case can be displayed in various different formats.
All parameters passed to this template are passed through to the test-case templates, with the exception of parameters starting with an underscore character ("_"), which are reserved for internal use.
If no templates are specified explicitly, the module uses the base page of the current page as the first template, and its /sandbox subpage as the second template. If only one template is specified explicitly, its /sandbox subpage is used as the second template.
== Usage ==
'''Basic syntax'''
<pre>
{{test case
| [param1] = [value1]
| [param2] = [value2]
| [param3] = [value3]
...
}}
</pre>
'''Common syntax'''
The following options will work with all different test case formats.
<pre>
{{test case
| _format =
| _output =
| _collapsible =
| _resetRefs =
| _code =
| _showcode =
| _template =
| _template1 =
| _heading1 =
| _template2 =
| _heading2 =
| _template3 =
| _heading3 =
...
| [param1] = [value1]
| [param2] = [value2]
| [param3] = [value3]
...
}}
</pre>
Some test case formats accept additional parameters as well. See their sections for documentation.
== Common parameters ==
{| class="wikitable"
|-
! Parameter !! Description
|-
| <code>_format</code> || The format used to display the test cases. This can be "[[#Columns|columns]]", "[[#Rows and tablerows|rows]]", "[[#Rows and tablerows|tablerows]]", "[[#Inline|inline]]" or "[[#Default|default]]".
|-
| <code>_output</code> || Allows changes in how the template's output is displayed. The default output is displayed when the {{code|_output}} parameter is not specified or when it is set to any unsupported value. A [[WP:NOWIKI|nowiki]] version of the template's output is displayed when {{para|_output|nowiki}}; this is helpful when there are differences in the underlying [[Help:Wikitext|wikitext]] which are not visible in the default output. Both the default output and nowiki version are displayed when {{para|_output|nowiki+}}.
|-
| <code>_collapsible</code> || If set to "y" or "yes", the test case is made collapsible. The test case is collapsed and given a green heading if all the template outputs are the same. If any of the template outputs differ, the test case is expanded and given a yellow heading. See [[#Collapsible test cases]] for other parameters which only work when _collapsible is enabled.
|-
| <code>_template1</code>, <code>_template2</code>, <code>_template3</code>... || The names of the templates to be processed. The default of _template1 is the base page of the current page. If _template1 is specified, the default for _template2 is its /sandbox subpage; if not, the default for _template2 is the /sandbox subpage of the base page of the current page. Template names should be entered as you would use them in a normal template invocation, i.e. "3x", not "Template:3x". If you need to test a page in the main namespace you can use a colon prefix, i.e. ":''article name''".
|-
| <code>_template</code> || An alias for _template1. If both _template and _template1 are specified, _template will take precedence.
|-
| <code>_showtemplate1</code>, <code>_showtemplate2</code>, <code>_showtemplate3</code>... || If this is set to "no", then no output is shown for that template. This is useful if you only want to show the main template, or if you only want to show the sandbox template.
|-
| <code>_heading1</code>, <code>_heading2</code>, <code>_heading3</code>... || Custom headings for each of the templates.
|-
| <code>_showheader</code> || If this is set to "n" or "no", then no headers are shown.
|-
| <code>_resetRefs</code> || If set to "y" or "yes", any references generated by the templates tested are reset after each template is expanded.
|-
| <code>_showcode</code> || Show the template code used to make the test case. If an invocation is specified with the _code parameter, then that is used. Otherwise, an approximation is generated from the arguments. This approximation is not perfect - white space in named arguments is lost, and duplicate arguments are ignored - but it should be fine for template code that is input all on one line without spaces between parameters.
|-
| <code>_code</code> || Used to specify template code inside {{tag|nowiki}} tags. This is used with the _showcode option to display the template invocation while preserving white space. You must use the magic word "__TEMPLATENAME__" instead of the template name. For example: <code><nowiki>| _code = <nowiki>{{__TEMPLATENAME__|first|second|foo=bar}}</nowiki></nowiki></code>. If you find yourself using this option a lot, you may want to consider using {{tl|test case nowiki}}, which allows you to generate the entire test case from template code in nowiki tags, saving you from typing in all the arguments twice. <p>Note: due to the way nowiki tags work, the template treats the [[HTML entities]] &lt;, &gt; and &quot; as if they were the literal characters <, > and " when used with this parameter.</p>
|}
== <div id="Test case formats" ></div>Test case formats ==
=== <div id="Default" ></div>Default format ===
This format is used when '''{{code|_format}}''' is not specified or when '''{{para|_format|default}}'''. It does not have any extra parameters.
'''Example'''
{{test case|_template1=ombox|text=Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.}}
=== <div id="Columns" ></div>Columns format ===
Use '''{{para|_format|columns}}''' to arrange the test cases side by side in a table. This is useful for comparing long and thin templates such as infoboxes. It has the following extra parameters:
{| class="wikitable"
|-
! Parameter !! Description
|-
| <code>_class</code> || HTML classes for the table. Use {{para|_class|wikitable}} to format the table as a wikitable.
|-
| <code>_style</code> || Custom inline CSS for the table.
|-
| <code>_caption</code> || Custom caption for the table. The default is "Side by side comparison".
|-
| <code>_rowheader</code> || An extra heading for the row containing the templates.
|-
| <code>_heading0</code> || If _rowheader is supplied, this is an optional heading above it in the template row.
|-
| <code>_before</code> || This text is displayed before the output of each template.
|-
| <code>_after</code> || This text is displayed after the output of each template.
|}
'''Example'''
{{test case|_template1=ombox|_format=columns|text=Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.}}
=== <div id="Rows and tablerows" ></div>Rows and tablerows formats ===
Use '''{{para|_format|rows}}''' or '''{{para|_format|tablerows}}''' to arrange the test cases one above another in a table. These two formats differ in the placement of the headings: '''{{code|rows}}''' puts them above, whereas '''{{code|tablerows}}''' to the left of the template outputs. It has the following extra parameters:
{| class="wikitable"
|-
! Parameter !! Description
|-
| <code>_class</code> || HTML classes for the table. Use {{para|_class|wikitable}} to format the table as a wikitable.
|-
| <code>_style</code> || Custom inline CSS for the table.
|-
| <code>_caption</code> || Custom caption for the table.
|}
'''Example – rows'''
{{test case|_template1=ombox|_format=rows|text=Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.}}
'''Example – tablerows'''
{{test case|_template1=ombox|_format=tablerows|text=Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.}}
=== <div id="Inline" ></div>Inline format ===
Use '''{{Para|_format|inline}}''' for test cases that can be displayed entirely on one line. If used with templates that display on multiple lines it may produce unexpected results. This format creates a [[Help:Wikitext#Unordered lists|bulleted list]] by placing <code>*</code> before each line of output. It has the following extra parameters:
{| class="wikitable"
|-
! Parameter !! Description
|-
| <code>_addline</code> || Text to be added as last line in list, after the template output.
|-
| <code>_prefix</code> || Character to replace <code>*</code> before each line of output. Using {{para|_prefix|#}} would display a [[Help:Wikitext#Ordered lists|numbered list]].
|}
Note: As this format starts with a bullet, a newline will always be inserted at the start of the template output due to [[phab:T14974|bug 14974]].
'''Examples''' (using [[Template:3x]])
Default:
{{test case|_format=inline|_template1=3x|Lorem ipsum }}
With '''{{para|_showcode|yes}}''':
{{test case|_format=inline|_showcode=yes|_template1=3x|Lorem ipsum }}
'''Example''' (using [[Template:Height]])
With '''{{para|_prefix|#}}''' and '''{{para|_addline}}''':
{{test case |_format=inline |_prefix=# |_showcode=yes |_template=Height |m=1.51 |_addline=<code><nowiki>{{Cvt|1.51|m|frac=2}}</nowiki></code> → {{Cvt|1.51|m|frac=2}} }}
== Output ==
The '''{{code|_output}}''' parameter allows changes in how the template's output is displayed. It should work with any of the [[#Test case formats|test case formats]]; the following examples use '''{{para|format|tablerows}}'''.
=== Default output ===
The default output is displayed when the '''{{code|_output}}''' parameter is not specified or when it is set to any unsupported value; this example uses '''{{para|_output|default}}'''.
{{test case|_format=tablerows|_output=XXX|_template1=URL|_template2=Official website|https://www.example.com|example.com}}
=== Nowiki output ===
A [[WP:NOWIKI|nowiki]] version of the template's output is displayed when '''{{para|_output|nowiki}}'''. This is helpful if there are differences in the underlying [[Help:Wikitext|wikitext]] which are not visible in the default output.
{{test case|_format=tablerows|_output=nowiki|_template1=URL|_template2=Official website|https://www.example.com|example.com}}
=== Nowiki+ output ===
Both the default output and nowiki version are displayed when '''{{para|_output|nowiki+}}'''.
{{test case|_format=tablerows|_output=nowiki+|_template1=URL|_template2=Official website|https://www.example.com|example.com}}
== <div id="Collapsible test cases" ></div>Collapsible test cases ==
If <code>_collapsible</code> is set to "y" or "yes", the test case is made collapsible. The test case is collapsed and given a green heading if all the template outputs are the same. If any of the template outputs differ, the test case is expanded and given a yellow heading. It has the following extra parameters:
{| class="wikitable"
|-
! Parameter !! Description
|-
| <code>_title</code> || Use {{para|_title}} to display a custom title for collapsible test cases.
|-
| <code>_titlecode</code> || Use {{para|_titlecode|yes}} to display the template's code as the title of a collapsible test case.
|-
| <code>_notcollapsed</code> || If set to <code>y</code> or <code>yes</code>, the test case will always be expanded upon loading the page. If set to <code>n</code> or <code>no</code>, it will always be collapsed upon loading the page. This setting overrides the default functionality in which the test case is collapsed unless two or more outputs do not match.
|}
'''Examples'''
=== Default title ===
{{test case|_template1=ombox|_collapsible=yes|text=Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.}}
=== With _title ===
{{test case|_template1=ombox|_collapsible=yes|_format=columns|_title=Using the columns format|text=Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.}}
{{test case|_template1=ombox|_collapsible=yes|_format=rows|_title=Using the rows format|text=Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.}}
{{test case|_template1=ombox|_template2=tmbox|_collapsible=yes|_title=Example of differing output|text=Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.}}
=== With _titlecode=yes ===
This is useful for templates with a small number of parameters. It displays the template code in the title, eliminating the need for both '''{{para|_title}}''' and '''{{para|_showcode|yes}}'''. For actual tests implemented with '''{{para|_titlecode|yes}}''', see [[Template:URL/testcases]].
{{test case|_collapsible=yes|_titlecode=yes|_format=tablerows|_output=nowiki+|_template1=URL|www.example.com}}
=== With _notcollapsed=yes ===
If '''{{para|_notcollapsed|yes}}''', the test case will always be expanded upon loading the page. This setting overrides the default functionality in which the test case is collapsed unless two or more outputs do not match. The following example would normally be collapsed, as indicated by green background of title:
{{test case|_template1=ombox|_template2=ombox|_collapsible=yes|_notcollapsed=yes|_title=Example of same output|text=Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.}}
=== With _notcollapsed=no ===
If '''{{para|_notcollapsed|no}}''', the test case will always be collapsed upon loading the page. This setting overrides the default functionality in which the test case is collapsed unless two or more outputs do not match. The following would normally be expanded, as indicated by yellow background of title:
{{test case|_template1=ombox|_template2=tmbox|_collapsible=yes|_notcollapsed=no|_title=Example of differing output|text=Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.}}
== Additional examples ==
=== With _showcode ===
;Usage
<pre style="overflow:auto; background-color:#eee;">
{{test case|_template1=ombox|_showcode=yes|text=Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.}}
</pre>
;Output
{{test case|_template1=ombox|_showcode=yes|text=Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.}}
=== With _showcode, using a nowiki invocation via _code ===
;Usage
<pre style="overflow:auto; background-color:#eee;">
{{test case|_template1=ombox|_showcode=yes
|_code =
<nowiki>{{__TEMPLATENAME__
| text = Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
}}</nowiki>
|text=Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
}}
</pre>
;Output
{{test case|_template1=ombox|_showcode=yes
|_code =
<nowiki>{{__TEMPLATENAME__
| text = Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
}}</nowiki>
|text=Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
}}
=== With _showcode and _collapsible ===
;Usage
<pre style="overflow:auto; background-color:#eee;">
{{test case|_template1=ombox|_showcode=yes|_collapsible=yes|text=Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.}}
</pre>
;Output
{{test case|_template1=ombox|_showcode=yes|_collapsible=yes|text=Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.}}
== Technical limitations ==
The template has the following known technical limitations:
* An error will be generated if processing the entire page takes more than 10 seconds. This is an intentional limit in the [[mw:Extension:Scribunto|Scribunto]] extension that runs [[Module:Template test case]], on which this template is based. If a test cases page takes more than 10 seconds to load, you may need to split it up into different pages.
* When generating the template code used with {{para|_showcode}} whitespace in named parameters is ignored, numbered parameters like {{para|1}} may be incorrectly displayed as positional parameters, and duplicate parameters are ignored. This is due to how template parameters are processed before they are passed to [[Module:Template test case]].
* When using a template invocation inside nowiki tags with the {{para|_code}} parameter, the [[HTML entities]] &lt;, &gt; and &quot; are converted to the literal characters <, > and ". This is due to the way nowiki tags work.
* For collapsible test cases, all text inside each extension tag (e.g. {{tag|ref|o}}, {{tag|references|o}}, {{tag|gallery|o}} or {{tag|nowiki|o}}) is treated as equal. These tags are converted to [[Help:Strip markers|strip markers]] before they are passed to the template, and all strip markers include a unique hexadecimal string. Even if strip markers were unstripped before being compared, the same wikitext would not be guaranteed to result in exactly the same unstripped code. So this module ignores the content of strip markers for the purposes of testing equality. This has the unwanted side effect that e.g. all {{tag|ref}} tags are treated as though they are equal, but should be adequate for most uses.
== See also ==
Templates invoking [[Module:Template test case]]:
* [[Template:Testcase rows]] – for a table of test cases arranged in rows
* [[Template:Testcase table]] – for a table of test cases arranged in columns
* [[Template:Inline test case]] – for test cases with small invocations and small output
* [[Template:Collapsible test case]] – for test cases collapsed by default if the results are the same
* [[Template:Test case nowiki]] – for test cases from template invocations enclosed in {{tag|nowiki}} tags
* [[Template:Nowiki template demo]] – for use in template documentation
<includeonly>{{Sandbox other||
<!-- Categories below this line, please; interwikis at Wikidata -->
[[Category:Template test cases| ]]
[[Category:Template namespace templates]]
}}</includeonly>
tbmah20tjmn720nbffgp8w2cr01w3tl
Module:Template test case
828
2056
15951
2022-08-18T11:51:12Z
Kambai Akau
15
Created page with "--[[ A module for generating test case templates. This module incorporates code from the English Wikipedia's "Testcase table" module,[1] written by Frietjes [2] with contributions by Mr. Stradivarius [3] and Jackmcbarn,[4] and the English Wikipedia's "Testcase rows" module,[5] written by Mr. Stradivarius. The "Testcase table" and "Testcase rows" modules are released under the CC BY-SA 3.0 License [6] and the GFDL.[7] License: CC BY-SA 3.0 and t..."
Scribunto
text/plain
--[[
A module for generating test case templates.
This module incorporates code from the English Wikipedia's "Testcase table"
module,[1] written by Frietjes [2] with contributions by Mr. Stradivarius [3]
and Jackmcbarn,[4] and the English Wikipedia's "Testcase rows" module,[5]
written by Mr. Stradivarius.
The "Testcase table" and "Testcase rows" modules are released under the
CC BY-SA 3.0 License [6] and the GFDL.[7]
License: CC BY-SA 3.0 and the GFDL
Author: Mr. Stradivarius
[1] https://en.wikipedia.org/wiki/Module:Testcase_table
[2] https://en.wikipedia.org/wiki/User:Frietjes
[3] https://en.wikipedia.org/wiki/User:Mr._Stradivarius
[4] https://en.wikipedia.org/wiki/User:Jackmcbarn
[5] https://en.wikipedia.org/wiki/Module:Testcase_rows
[6] https://en.wikipedia.org/wiki/Wikipedia:Text_of_Creative_Commons_Attribution-ShareAlike_3.0_Unported_License
[7] https://en.wikipedia.org/wiki/Wikipedia:Text_of_the_GNU_Free_Documentation_License
]]
-- Load required modules
local yesno = require('Module:Yesno')
-- Set constants
local DATA_MODULE = 'Module:Template test case/data'
-------------------------------------------------------------------------------
-- Shared methods
-------------------------------------------------------------------------------
local function message(self, key, ...)
-- This method is added to classes that need to deal with messages from the
-- config module.
local msg = self.cfg.msg[key]
if select(1, ...) then
return mw.message.newRawMessage(msg, ...):plain()
else
return msg
end
end
-------------------------------------------------------------------------------
-- Template class
-------------------------------------------------------------------------------
local Template = {}
Template.memoizedMethods = {
-- Names of methods to be memoized in each object. This table should only
-- hold methods with no parameters.
getFullPage = true,
getName = true,
makeHeader = true,
getOutput = true
}
function Template.new(invocationObj, options)
local obj = {}
-- Set input
for k, v in pairs(options or {}) do
if not Template[k] then
obj[k] = v
end
end
obj._invocation = invocationObj
-- Validate input
if not obj.template and not obj.title then
error('no template or title specified', 2)
end
-- Memoize expensive method calls
local memoFuncs = {}
return setmetatable(obj, {
__index = function (t, key)
if Template.memoizedMethods[key] then
local func = memoFuncs[key]
if not func then
local val = Template[key](t)
func = function () return val end
memoFuncs[key] = func
end
return func
else
return Template[key]
end
end
})
end
function Template:getFullPage()
if not self.template then
return self.title.prefixedText
elseif self.template:sub(1, 7) == '#invoke' then
return 'Module' .. self.template:sub(8):gsub('|.*', '')
else
local strippedTemplate, hasColon = self.template:gsub('^:', '', 1)
hasColon = hasColon > 0
local ns = strippedTemplate:match('^(.-):')
ns = ns and mw.site.namespaces[ns]
if ns then
return strippedTemplate
elseif hasColon then
return strippedTemplate -- Main namespace
else
return mw.site.namespaces[10].name .. ':' .. strippedTemplate
end
end
end
function Template:getName()
if self.template then
return self.template
else
return require('Module:Template invocation').name(self.title)
end
end
function Template:makeLink(display)
if display then
return string.format('[[:%s|%s]]', self:getFullPage(), display)
else
return string.format('[[:%s]]', self:getFullPage())
end
end
function Template:makeBraceLink(display)
display = display or self:getName()
local link = self:makeLink(display)
return mw.text.nowiki('{{') .. link .. mw.text.nowiki('}}')
end
function Template:makeHeader()
return self.heading or self:makeBraceLink()
end
function Template:getInvocation(format)
local invocation = self._invocation:getInvocation{
template = self:getName(),
requireMagicWord = self.requireMagicWord,
}
if format == 'code' then
invocation = '<code>' .. mw.text.nowiki(invocation) .. '</code>'
elseif format == 'kbd' then
invocation = '<kbd>' .. mw.text.nowiki(invocation) .. '</kbd>'
elseif format == 'plain' then
invocation = mw.text.nowiki(invocation)
else
-- Default is pre tags
invocation = mw.text.encode(invocation, '&')
invocation = '<pre style="white-space: pre-wrap;">' .. invocation .. '</pre>'
invocation = mw.getCurrentFrame():preprocess(invocation)
end
return invocation
end
function Template:getOutput()
local protect = require('Module:Protect')
-- calling self._invocation:getOutput{...}
return protect(self._invocation.getOutput)(self._invocation, {
template = self:getName(),
requireMagicWord = self.requireMagicWord,
})
end
-------------------------------------------------------------------------------
-- TestCase class
-------------------------------------------------------------------------------
local TestCase = {}
TestCase.__index = TestCase
TestCase.message = message -- add the message method
TestCase.renderMethods = {
-- Keys in this table are values of the "format" option, values are the
-- method for rendering that format.
columns = 'renderColumns',
rows = 'renderRows',
tablerows = 'renderRows',
inline = 'renderInline',
cells = 'renderCells',
default = 'renderDefault'
}
function TestCase.new(invocationObj, options, cfg)
local obj = setmetatable({}, TestCase)
obj.cfg = cfg
-- Separate general options from template options. Template options are
-- numbered, whereas general options are not.
local generalOptions, templateOptions = {}, {}
for k, v in pairs(options) do
local prefix, num
if type(k) == 'string' then
prefix, num = k:match('^(.-)([1-9][0-9]*)$')
end
if prefix then
num = tonumber(num)
templateOptions[num] = templateOptions[num] or {}
templateOptions[num][prefix] = v
else
generalOptions[k] = v
end
end
-- Set general options
generalOptions.showcode = yesno(generalOptions.showcode)
generalOptions.showheader = yesno(generalOptions.showheader) ~= false
generalOptions.showcaption = yesno(generalOptions.showcaption) ~= false
generalOptions.collapsible = yesno(generalOptions.collapsible)
generalOptions.notcollapsed = yesno(generalOptions.notcollapsed)
generalOptions.wantdiff = yesno(generalOptions.wantdiff)
obj.options = generalOptions
-- Preprocess template args
for num, t in pairs(templateOptions) do
if t.showtemplate ~= nil then
t.showtemplate = yesno(t.showtemplate)
end
end
-- Set up first two template options tables, so that if only the
-- "template3" is specified it isn't made the first template when the
-- the table options array is compressed.
templateOptions[1] = templateOptions[1] or {}
templateOptions[2] = templateOptions[2] or {}
-- Allow the "template" option to override the "template1" option for
-- backwards compatibility with [[Module:Testcase table]].
if generalOptions.template then
templateOptions[1].template = generalOptions.template
end
-- Add default template options
if templateOptions[1].template and not templateOptions[2].template then
templateOptions[2].template = templateOptions[1].template ..
'/' .. obj.cfg.sandboxSubpage
end
if not templateOptions[1].template then
templateOptions[1].title = mw.title.getCurrentTitle().basePageTitle
end
if not templateOptions[2].template then
templateOptions[2].title = templateOptions[1].title:subPageTitle(
obj.cfg.sandboxSubpage
)
end
-- Remove template options for any templates where the showtemplate
-- argument is false. This prevents any output for that template.
for num, t in pairs(templateOptions) do
if t.showtemplate == false then
templateOptions[num] = nil
end
end
-- Check for missing template names.
for num, t in pairs(templateOptions) do
if not t.template and not t.title then
error(obj:message(
'missing-template-option-error',
num, num
), 2)
end
end
-- Compress templateOptions table so we can iterate over it with ipairs.
templateOptions = (function (t)
local nums = {}
for num in pairs(t) do
nums[#nums + 1] = num
end
table.sort(nums)
local ret = {}
for i, num in ipairs(nums) do
ret[i] = t[num]
end
return ret
end)(templateOptions)
-- Don't require the __TEMPLATENAME__ magic word for nowiki invocations if
-- there is only one template being output.
if #templateOptions <= 1 then
templateOptions[1].requireMagicWord = false
end
mw.logObject(templateOptions)
-- Make the template objects
obj.templates = {}
for i, options in ipairs(templateOptions) do
table.insert(obj.templates, Template.new(invocationObj, options))
end
-- Add tracking categories. At the moment we are only tracking templates
-- that use any "heading" parameters or an "output" parameter.
obj.categories = {}
for k, v in pairs(options) do
if type(k) == 'string' and k:find('heading') then
obj.categories['Test cases using heading parameters'] = true
elseif k == 'output' then
obj.categories['Test cases using output parameter'] = true
end
end
return obj
end
function TestCase:getTemplateOutput(templateObj)
local output = templateObj:getOutput()
if self.options.resetRefs then
mw.getCurrentFrame():extensionTag('references')
end
return output
end
function TestCase:templateOutputIsEqual()
-- Returns a boolean showing whether all of the template outputs are equal.
-- The random parts of strip markers (see [[Help:Strip markers]]) are
-- removed before comparison. This means a strip marker can contain anything
-- and still be treated as equal, but it solves the problem of otherwise
-- identical wikitext not returning as exactly equal.
local function normaliseOutput(obj)
local out = obj:getOutput()
-- Remove the random parts from strip markers.
out = out:gsub('(\127[^\127]*UNIQ%-%-%l+%-)%x+(%-%-?QINU[^\127]*\127)', '%1%2')
return out
end
local firstOutput = normaliseOutput(self.templates[1])
for i = 2, #self.templates do
local output = normaliseOutput(self.templates[i])
if output ~= firstOutput then
return false
end
end
return true
end
function TestCase:makeCollapsible(s)
local title = self.options.title or self.templates[1]:makeHeader()
if self.options.titlecode then
title = self.templates[1]:getInvocation('kbd')
end
local isEqual = self:templateOutputIsEqual()
local root = mw.html.create('div')
root
:addClass('mw-collapsible')
:css('width', '100%')
:css('border', 'solid silver 1px')
:css('padding', '0.2em')
:addClass(self.options.notcollapsed == false and 'mw-collapsed' or nil)
if self.options.wantdiff then
root
:tag('div')
:css('background-color', isEqual and 'yellow' or '#90a8ee')
:css('font-weight', 'bold')
:css('padding', '0.2em')
:wikitext(title)
:done()
else
if self.options.notcollapsed ~= true or false then
root
:addClass(isEqual and 'mw-collapsed' or nil)
end
root
:tag('div')
:css('background-color', isEqual and 'lightgreen' or 'yellow')
:css('font-weight', 'bold')
:css('padding', '0.2em')
:wikitext(title)
:done()
end
root
:tag('div')
:addClass('mw-collapsible-content')
:newline()
:wikitext(s)
:newline()
return tostring(root)
end
function TestCase:renderColumns()
local root = mw.html.create()
if self.options.showcode then
root
:wikitext(self.templates[1]:getInvocation())
:newline()
end
local tableroot = root:tag('table')
if self.options.showheader then
-- Caption
if self.options.showcaption then
tableroot
:addClass(self.options.class)
:cssText(self.options.style)
:tag('caption')
:wikitext(self.options.caption or self:message('columns-header'))
end
-- Headers
local headerRow = tableroot:tag('tr')
if self.options.rowheader then
-- rowheader is correct here. We need to add another th cell if
-- rowheader is set further down, even if heading0 is missing.
headerRow:tag('th'):wikitext(self.options.heading0)
end
local width
if #self.templates > 0 then
width = tostring(math.floor(100 / #self.templates)) .. '%'
else
width = '100%'
end
for i, obj in ipairs(self.templates) do
headerRow
:tag('th')
:css('width', width)
:wikitext(obj:makeHeader())
end
end
-- Row header
local dataRow = tableroot:tag('tr'):css('vertical-align', 'top')
if self.options.rowheader then
dataRow:tag('th')
:attr('scope', 'row')
:wikitext(self.options.rowheader)
end
-- Template output
for i, obj in ipairs(self.templates) do
if self.options.output == 'nowiki+' then
dataRow:tag('td')
:newline()
:wikitext(self.options.before)
:wikitext(self:getTemplateOutput(obj))
:wikitext(self.options.after)
:wikitext('<pre style="white-space: pre-wrap;">')
:wikitext(mw.text.nowiki(self.options.before or ""))
:wikitext(mw.text.nowiki(self:getTemplateOutput(obj)))
:wikitext(mw.text.nowiki(self.options.after or ""))
:wikitext('</pre>')
elseif self.options.output == 'nowiki' then
dataRow:tag('td')
:newline()
:wikitext(mw.text.nowiki(self.options.before or ""))
:wikitext(mw.text.nowiki(self:getTemplateOutput(obj)))
:wikitext(mw.text.nowiki(self.options.after or ""))
else
dataRow:tag('td')
:newline()
:wikitext(self.options.before)
:wikitext(self:getTemplateOutput(obj))
:wikitext(self.options.after)
end
end
return tostring(root)
end
function TestCase:renderRows()
local root = mw.html.create()
if self.options.showcode then
root
:wikitext(self.templates[1]:getInvocation())
:newline()
end
local tableroot = root:tag('table')
tableroot
:addClass(self.options.class)
:cssText(self.options.style)
if self.options.caption then
tableroot
:tag('caption')
:wikitext(self.options.caption)
end
for _, obj in ipairs(self.templates) do
local dataRow = tableroot:tag('tr')
-- Header
if self.options.showheader then
if self.options.format == 'tablerows' then
dataRow:tag('th')
:attr('scope', 'row')
:css('vertical-align', 'top')
:css('text-align', 'left')
:wikitext(obj:makeHeader())
dataRow:tag('td')
:css('vertical-align', 'top')
:css('padding', '0 1em')
:wikitext('→')
else
dataRow:tag('td')
:css('text-align', 'center')
:css('font-weight', 'bold')
:wikitext(obj:makeHeader())
dataRow = tableroot:tag('tr')
end
end
-- Template output
if self.options.output == 'nowiki+' then
dataRow:tag('td')
:newline()
:wikitext(self:getTemplateOutput(obj))
:wikitext('<pre style="white-space: pre-wrap;">')
:wikitext(mw.text.nowiki(self:getTemplateOutput(obj)))
:wikitext('</pre>')
elseif self.options.output == 'nowiki' then
dataRow:tag('td')
:newline()
:wikitext(mw.text.nowiki(self:getTemplateOutput(obj)))
else
dataRow:tag('td')
:newline()
:wikitext(self:getTemplateOutput(obj))
end
end
return tostring(root)
end
function TestCase:renderInline()
local arrow = mw.language.getContentLanguage():getArrow('forwards')
local ret = {}
for i, obj in ipairs(self.templates) do
local line = {}
line[#line + 1] = self.options.prefix or '* '
if self.options.showcode then
line[#line + 1] = obj:getInvocation('code')
line[#line + 1] = ' '
line[#line + 1] = arrow
line[#line + 1] = ' '
end
if self.options.output == 'nowiki+' then
line[#line + 1] = self:getTemplateOutput(obj)
line[#line + 1] = '<pre style="white-space: pre-wrap;">'
line[#line + 1] = mw.text.nowiki(self:getTemplateOutput(obj))
line[#line + 1] = '</pre>'
elseif self.options.output == 'nowiki' then
line[#line + 1] = mw.text.nowiki(self:getTemplateOutput(obj))
else
line[#line + 1] = self:getTemplateOutput(obj)
end
ret[#ret + 1] = table.concat(line)
end
if self.options.addline then
local line = {}
line[#line + 1] = self.options.prefix or '* '
line[#line + 1] = self.options.addline
ret[#ret + 1] = table.concat(line)
end
return table.concat(ret, '\n')
end
function TestCase:renderCells()
local root = mw.html.create()
local dataRow = root:tag('tr')
dataRow
:css('vertical-align', 'top')
:addClass(self.options.class)
:cssText(self.options.style)
-- Row header
if self.options.rowheader then
dataRow:tag('th')
:attr('scope', 'row')
:newline()
:wikitext(self.options.rowheader or self:message('row-header'))
end
-- Caption
if self.options.showcaption then
dataRow:tag('th')
:attr('scope', 'row')
:newline()
:wikitext(self.options.caption or self:message('columns-header'))
end
-- Show code
if self.options.showcode then
dataRow:tag('td')
:newline()
:wikitext(self:getInvocation('code'))
end
-- Template output
for i, obj in ipairs(self.templates) do
if self.options.output == 'nowiki+' then
dataRow:tag('td')
:newline()
:wikitext(self.options.before)
:wikitext(self:getTemplateOutput(obj))
:wikitext(self.options.after)
:wikitext('<pre style="white-space: pre-wrap;">')
:wikitext(mw.text.nowiki(self.options.before or ""))
:wikitext(mw.text.nowiki(self:getTemplateOutput(obj)))
:wikitext(mw.text.nowiki(self.options.after or ""))
:wikitext('</pre>')
elseif self.options.output == 'nowiki' then
dataRow:tag('td')
:newline()
:wikitext(mw.text.nowiki(self.options.before or ""))
:wikitext(mw.text.nowiki(self:getTemplateOutput(obj)))
:wikitext(mw.text.nowiki(self.options.after or ""))
else
dataRow:tag('td')
:newline()
:wikitext(self.options.before)
:wikitext(self:getTemplateOutput(obj))
:wikitext(self.options.after)
end
end
return tostring(root)
end
function TestCase:renderDefault()
local ret = {}
if self.options.showcode then
ret[#ret + 1] = self.templates[1]:getInvocation()
end
for i, obj in ipairs(self.templates) do
ret[#ret + 1] = '<div style="clear: both;"></div>'
if self.options.showheader then
ret[#ret + 1] = obj:makeHeader()
end
if self.options.output == 'nowiki+' then
ret[#ret + 1] = self:getTemplateOutput(obj) ..
'<pre style="white-space: pre-wrap;">' ..
mw.text.nowiki(self:getTemplateOutput(obj)) .. '</pre>'
elseif self.options.output == 'nowiki' then
ret[#ret + 1] = mw.text.nowiki(self:getTemplateOutput(obj))
else
ret[#ret + 1] = self:getTemplateOutput(obj)
end
end
return table.concat(ret, '\n\n')
end
function TestCase:__tostring()
local format = self.options.format
local method = format and TestCase.renderMethods[format] or 'renderDefault'
local ret = self[method](self)
if self.options.collapsible then
ret = self:makeCollapsible(ret)
end
for cat in pairs(self.categories) do
ret = ret .. string.format('[[Category:%s]]', cat)
end
return ret
end
-------------------------------------------------------------------------------
-- Nowiki invocation class
-------------------------------------------------------------------------------
local NowikiInvocation = {}
NowikiInvocation.__index = NowikiInvocation
NowikiInvocation.message = message -- Add the message method
function NowikiInvocation.new(invocation, cfg)
local obj = setmetatable({}, NowikiInvocation)
obj.cfg = cfg
invocation = mw.text.unstrip(invocation)
-- Decode HTML entities for <, >, and ". This means that HTML entities in
-- the original code must be escaped as e.g. &lt;, which is unfortunate,
-- but it is the best we can do as the distinction between <, >, " and <,
-- >, " is lost during the original nowiki operation.
invocation = invocation:gsub('<', '<')
invocation = invocation:gsub('>', '>')
invocation = invocation:gsub('"', '"')
obj.invocation = invocation
return obj
end
function NowikiInvocation:getInvocation(options)
local template = options.template:gsub('%%', '%%%%') -- Escape "%" with "%%"
local invocation, count = self.invocation:gsub(
self.cfg.templateNameMagicWordPattern,
template
)
if options.requireMagicWord ~= false and count < 1 then
error(self:message(
'nowiki-magic-word-error',
self.cfg.templateNameMagicWord
))
end
return invocation
end
function NowikiInvocation:getOutput(options)
local invocation = self:getInvocation(options)
return mw.getCurrentFrame():preprocess(invocation)
end
-------------------------------------------------------------------------------
-- Table invocation class
-------------------------------------------------------------------------------
local TableInvocation = {}
TableInvocation.__index = TableInvocation
TableInvocation.message = message -- Add the message method
function TableInvocation.new(invokeArgs, nowikiCode, cfg)
local obj = setmetatable({}, TableInvocation)
obj.cfg = cfg
obj.invokeArgs = invokeArgs
obj.code = nowikiCode
return obj
end
function TableInvocation:getInvocation(options)
if self.code then
local nowikiObj = NowikiInvocation.new(self.code, self.cfg)
return nowikiObj:getInvocation(options)
else
return require('Module:Template invocation').invocation(
options.template,
self.invokeArgs
)
end
end
function TableInvocation:getOutput(options)
if (options.template:sub(1, 7) == '#invoke') then
local moduleCall = mw.text.split(options.template, '|', true)
local args = mw.clone(self.invokeArgs)
table.insert(args, 1, moduleCall[2])
return mw.getCurrentFrame():callParserFunction(moduleCall[1], args)
end
return mw.getCurrentFrame():expandTemplate{
title = options.template,
args = self.invokeArgs
}
end
-------------------------------------------------------------------------------
-- Bridge functions
--
-- These functions translate template arguments into forms that can be accepted
-- by the different classes, and return the results.
-------------------------------------------------------------------------------
local bridge = {}
function bridge.table(args, cfg)
cfg = cfg or mw.loadData(DATA_MODULE)
local options, invokeArgs = {}, {}
for k, v in pairs(args) do
local optionKey = type(k) == 'string' and k:match('^_(.*)$')
if optionKey then
if type(v) == 'string' then
v = v:match('^%s*(.-)%s*$') -- trim whitespace
end
if v ~= '' then
options[optionKey] = v
end
else
invokeArgs[k] = v
end
end
-- Allow passing a nowiki invocation as an option. While this means users
-- have to pass in the code twice, whitespace is preserved and < etc.
-- will work as intended.
local nowikiCode = options.code
options.code = nil
local invocationObj = TableInvocation.new(invokeArgs, nowikiCode, cfg)
local testCaseObj = TestCase.new(invocationObj, options, cfg)
return tostring(testCaseObj)
end
function bridge.nowiki(args, cfg)
cfg = cfg or mw.loadData(DATA_MODULE)
local code = args.code or args[1]
local invocationObj = NowikiInvocation.new(code, cfg)
args.code = nil
args[1] = nil
-- Assume we want to see the code as we already passed it in.
args.showcode = args.showcode or true
local testCaseObj = TestCase.new(invocationObj, args, cfg)
return tostring(testCaseObj)
end
-------------------------------------------------------------------------------
-- Exports
-------------------------------------------------------------------------------
local p = {}
function p.main(frame, cfg)
cfg = cfg or mw.loadData(DATA_MODULE)
-- Load the wrapper config, if any.
local wrapperConfig
if frame.getParent then
local title = frame:getParent():getTitle()
local template = title:gsub(cfg.sandboxSubpagePattern, '')
wrapperConfig = cfg.wrappers[template]
end
-- Work out the function we will call, use it to generate the config for
-- Module:Arguments, and use Module:Arguments to find the arguments passed
-- by the user.
local func = wrapperConfig and wrapperConfig.func or 'table'
local userArgs = require('Module:Arguments').getArgs(frame, {
parentOnly = wrapperConfig,
frameOnly = not wrapperConfig,
trim = func ~= 'table',
removeBlanks = func ~= 'table'
})
-- Get default args and build the args table. User-specified args overwrite
-- default args.
local defaultArgs = wrapperConfig and wrapperConfig.args or {}
local args = {}
for k, v in pairs(defaultArgs) do
args[k] = v
end
for k, v in pairs(userArgs) do
args[k] = v
end
return bridge[func](args, cfg)
end
function p._exportClasses() -- For testing
return {
Template = Template,
TestCase = TestCase,
NowikiInvocation = NowikiInvocation,
TableInvocation = TableInvocation
}
end
return p
1uizvfa43tqjj11t699xzh3p7g40nwz
Module:Template test case/doc
828
2057
15952
2022-08-18T11:53:25Z
Kambai Akau
15
Created page with "== Usage == This module should not usually be called directly. Instead, you should use one of the following templates: Parameter-based templates: * [[Template:Test case]] – for standard test cases * [[Template:Testcase table]] – for test cases arranged side by side in columns * [[Template:Testcase rows]] – for test cases arranged as rows in a table * [[Template:Collapsible test case]] – for test cases that are collapsed by default if the results are the same *..."
wikitext
text/x-wiki
== Usage ==
This module should not usually be called directly. Instead, you should use one of the following templates:
Parameter-based templates:
* [[Template:Test case]] – for standard test cases
* [[Template:Testcase table]] – for test cases arranged side by side in columns
* [[Template:Testcase rows]] – for test cases arranged as rows in a table
* [[Template:Collapsible test case]] – for test cases that are collapsed by default if the results are the same
* [[Template:Inline test case]] – for test cases with small invocations and small output, that do not contain any line breaks
The only difference between these templates is their default arguments. For example, it is possible to display test cases side by side in [[Template:Testcase rows]] by specifying {{para|_format|columns}}
Nowiki-based templates:
* [[Template:Test case nowiki]] – for test cases created from template code wrapped in nowiki tags (useful for displaying complex template invocations)
* [[Template:Nowiki template demo]] – for use in template documentation
It is also possible to use a format of <code><nowiki>{{#invoke:template test case|main|</nowiki>''parameters''<nowiki>}}</nowiki></code>. This uses the same defaults as [[Template:Test case]]; please see that page for documentation of the parameters.
There is no direct interface to this module for other Lua modules. Lua modules should generally use Lua-based test case modules such as [[Module:UnitTests]] or [[Module:ScribuntoUnit]]. If it is really necessary to use this module, you can use [[mw:Extension:Scribunto/Lua reference manual#frame:expandTemplate|frame:expandTemplate]] with one of the templates listed above.
== Configuration ==
This module has a configuration module at [[Module:Template test case/config]]. You can edit it to add new wrapper templates, or to change the messages that the module outputs.
== Tracking categories ==
* {{clc|Test cases using heading parameters}}
* {{clc|Test cases using output parameter}}
<includeonly>{{#ifeq:{{SUBPAGENAME}}|sandbox||
<!-- Categories go here and interwikis go in Wikidata. -->
[[Category:Modules that add a tracking category]]
[[Category:Modules that check for strip markers]]
}}</includeonly>
800hk8f8yzomwfhwusj50y4qfc05fi8
Module:Template test case/data
828
2058
15953
2022-08-18T11:56:47Z
Kambai Akau
15
Created page with "-- This module processes configuration data for use in -- [[Module:Template test case]]. It is loaded from the main module with -- mw.loadData. local cfg = require('Module:Template test case/config') local function escapePattern(s) s = s:gsub('%p', '%%%0') return s end -- Escape config items that need to be used as patterns. Doing it here is more -- efficient, as mw.loadData saves them from having to be computed for every -- test case on a page. cfg.templateNameMagi..."
Scribunto
text/plain
-- This module processes configuration data for use in
-- [[Module:Template test case]]. It is loaded from the main module with
-- mw.loadData.
local cfg = require('Module:Template test case/config')
local function escapePattern(s)
s = s:gsub('%p', '%%%0')
return s
end
-- Escape config items that need to be used as patterns. Doing it here is more
-- efficient, as mw.loadData saves them from having to be computed for every
-- test case on a page.
cfg.templateNameMagicWordPattern = escapePattern(cfg.templateNameMagicWord)
cfg.sandboxSubpagePattern = '/' .. escapePattern(cfg.sandboxSubpage) .. '$'
return cfg
dmdplkk88kmnriu7s6pk3hhob51o8xa
Module:Template test case/data/doc
828
2059
15954
2022-08-18T11:57:27Z
Kambai Akau
15
Created page with "This module processes configuration data for use in [[Module:Template test case]]. It is loaded from the main module with [[mw:Extension:Scribunto/Lua reference manual#mw.loadData|mw.loadData]]."
wikitext
text/x-wiki
This module processes configuration data for use in [[Module:Template test case]]. It is loaded from the main module with [[mw:Extension:Scribunto/Lua reference manual#mw.loadData|mw.loadData]].
bs9exglmb5qar00rwdnb7rfa9egcnt6
Module:Template test case/config
828
2060
15955
2022-08-18T11:59:41Z
Kambai Akau
15
Created page with "------------------------------------------------------------------------------- -- Module:Template test case/config -- This module holds configuration data for [[Module:Template test case]]. ------------------------------------------------------------------------------- return { ------------------------------------------------------------------------------- -- Options ------------------------------------------------------------------------------- --..."
Scribunto
text/plain
-------------------------------------------------------------------------------
-- Module:Template test case/config
-- This module holds configuration data for [[Module:Template test case]].
-------------------------------------------------------------------------------
return {
-------------------------------------------------------------------------------
-- Options
-------------------------------------------------------------------------------
-- The magic word used in place of the template name when making nowiki
-- invocations.
templateNameMagicWord = '__TEMPLATENAME__',
-- The subpage that sandboxes are typically stored on. Used when loading
-- wrapper template config and when guessing the sandbox template name.
sandboxSubpage = 'sandbox',
-------------------------------------------------------------------------------
-- Messages
-------------------------------------------------------------------------------
msg = {
-- The default header for test cases rendered in columns.
['columns-header'] = 'Side by side comparison',
-- The error message to use if a templaten option is missing.
-- $1 - the number of the missing template option.
['missing-template-option-error'] = "one or more options ending in '$1' " ..
"were detected, but no 'template$1' option was found",
-- The error message to use if a nowiki invocation is used but the template
-- name magic word is not found.
-- $1 - the value of the template name magic word
['nowiki-magic-word-error'] = "the template invocation must include '$1' in " ..
"place of the template name",
},
-------------------------------------------------------------------------------
-- Wrapper template config.
-- The wrapper template config is a table with wrapper template names as keys,
-- and subtables containing two fields:
-- func - the function name to be used with that template. This must be a
-- function exported by the main module. This is optional: the default
-- value is "table".
-- args - a table of default arguments to be used with that template. This is
-- is optional.
-------------------------------------------------------------------------------
wrappers = {
['Template:Test case'] = {},
['Template:Testcase table'] = {
args = {_format = 'columns'}
},
['Template:Testcase rows'] = {
args = {_format = 'rows'}
},
['Template:Test case nowiki'] = {
func = 'nowiki'
},
['Template:Nowiki template demo'] = {
func = 'nowiki',
args = {showheader = false, showtemplate2 = false}
},
['Template:Collapsible test case'] = {
args = {_collapsible = true}
},
['Template:Collapsible 2 test case'] = {
args = {_collapsible = true, _wantdiff = true}
},
['Template:Inline test case'] = {
args = {_format = 'inline', _showcode = true}
},
},
-------------------------------------------------------------------------------
-- End config
-------------------------------------------------------------------------------
}
qnnl7yi4y14i5if0gn8xikibzp6hb6x
Module:Template test case/config/doc
828
2061
15956
2022-08-18T12:00:19Z
Kambai Akau
15
Created page with "This module provides configuration data for [[Module:Template test case]]. <includeonly>{{#ifeq:{{SUBPAGENAME}}|sandbox|| <!-- Categories go here and interwikis go in Wikidata. --> }}</includeonly>"
wikitext
text/x-wiki
This module provides configuration data for [[Module:Template test case]].
<includeonly>{{#ifeq:{{SUBPAGENAME}}|sandbox||
<!-- Categories go here and interwikis go in Wikidata. -->
}}</includeonly>
cq8fisqg7pp9na0lcthl5nyj9ygv02p
Module:A̱ka̱fwuop nta̱m a̱meang jhyang/sandbox/styles.css
828
2062
15982
15957
2022-08-18T13:02:31Z
Kambai Akau
15
Kambai Akau shyei peji [[Module:Sister project links/sandbox/styles.css]] nat [[Module:A̱ka̱fwuop nta̱m a̱meang jhyang/sandbox/styles.css]] di̱ mi̱n wot a̱shaivak: Di̱n Tyap
sanitized-css
text/css
.sister-box-sand .side-box-abovebelow {
padding: 0.75em 0;
text-align: center;
}
.sister-box-sand .side-box-abovebelow > b {
display: block;
}
.sister-box-sand .side-box-text > ul {
border-top: 1px solid #aaa;
padding: 0.75em 0;
width: 217px;
margin: 0 auto;
}
.sister-box-sand .side-box-text > ul > li {
min-height: 31px;
}
.sister-logo-sand {
display: inline-block;
width: 31px;
line-height: 31px;
vertical-align: middle;
text-align: center;
}
.sister-link-sand {
display: inline-block;
margin-left: 4px;
width: 182px;
vertical-align: middle;
}
kr5vvggh4w0325bwup5tfrzkqhugoui
Ta̱mpi̱let:High use
10
2063
15958
2022-08-18T12:04:10Z
Kambai Akau
15
Created page with "{{#invoke:High-use|main|1={{{1|}}}|2={{{2|}}}|all-pages={{{all-pages|}}}|info={{{info|}}}|demo={{{demo|}}}|form={{{form|}}}|expiry={{{expiry|}}}|system={{{system|}}}}}<noinclude> {{Documentation}} <!-- Add categories to the /doc subpage; interwiki links go to Wikidata, thank you! --> </noinclude>"
wikitext
text/x-wiki
{{#invoke:High-use|main|1={{{1|}}}|2={{{2|}}}|all-pages={{{all-pages|}}}|info={{{info|}}}|demo={{{demo|}}}|form={{{form|}}}|expiry={{{expiry|}}}|system={{{system|}}}}}<noinclude>
{{Documentation}}
<!-- Add categories to the /doc subpage; interwiki links go to Wikidata, thank you! -->
</noinclude>
pqp5tan0gkp2stociv4f3zgylzoarl5
Ta̱mpi̱let:High use/doc
10
2064
15960
15959
2022-08-18T12:10:48Z
Kambai Akau
15
wikitext
text/x-wiki
{{Documentation subpage}}
<!-- Add categories where indicated at the bottom of this page and interwikis at Wikidata -->
{{#ifeq:{{SUBPAGENAME}}|sandbox||{{High-use}}}}
{{lua|Module:High-use}}
This is the {{tlx|high-use}} message box.
It is meant to be put at the top of the documentation subpage for templates transcluded onto more than 2,000 pages. For templates transcluded onto more than 100,000 pages, or if the first parameter is set to <code>risk</code>, then a stronger wording is given.
'''Note''': It is normal that some of the links in the message box are red.
== Usage ==
{{tlx |High-use}}
{{tlx |High-use |2=2=''discussion page, or use + notation'' |3=info=''additional text'' }}
'''all parameters'''
<pre style="overflow:auto;">
{{High-use |1= |2= |info= |demo= |form= |expiry= }}
</pre>
The template can be used as is, and will automatically use bot-updated transclusion counts from [[Special:PrefixIndex/Module:Transclusion_count/data/|subpages of Module:Transclusion_count/data/]], when available. It can also take some parameters:
* <code>1=''number of transclusions''</code>: ''(deprecated)'' The first parameter is either a static number of times the template has been transcluded, or the word "risk" (without quotes) to display "a very large number of" instead of the actual value. This value will be ignored, if transclusion data is available for the current page (generally, for templates with more than 2,000 transclusions).
* <code>2=''discussion page, or use + notation''</code>: The second parameter is overloaded. It will cause the number of transclusions to display as "#,###+" instead of "approximately #,###" when set equal to "yes" (without quotes). When used in this manner, values will be rounded down, instead of rounded to the nearest number with the appropriate number of significant figures. When set to any other non-blank value, it will replace the link to the template's talk page to the value of the parameter (for example, <code>2=WP:VPT</code> will insert a link to [[WP:VPT]]),
* {{para|info|<{{var|extra information}}>}}: When set to non-blank, will insert <{{var|extra information}}> into the template text.
* {{para|demo|<{{var|Template_name}}>}}: Will use the transclusion count for the template at <code><nowiki>[[Template:</nowiki><{{var|Template_name}}>]]</code> instead of detecting what template it is being used on. Capitalization must exactly match the value used in [[Special:PrefixIndex/Module:Transclusion_count/data/]].
* {{para|form}}: When set to "<code>editnotice</code>", will display the message using {{tl|editnotice}} instead of {{tl|ombox}}.
* {{para|expiry}}: Sets the {{para|expiry}} parameter for {{tl|editnotice}}.
* {{para|no-percent|yes}}: suppresses automatic 'percent of all pages' annotation; 'percent of all pages' annotation is automatically added when template is used in more than 1% of all pages (currently <code><nowiki>{{NUMBEROFPAGES}}</nowiki></code> is {{NUMBEROFPAGES}} pages so 1% is {{formatnum:{{#expr:trunc ({{formatnum:{{NUMBEROFPAGES}}|R}}/100)}}}} pages)
== Examples ==
The full code for a /doc page top usually looks like this:
<pre>
{{documentation subpage}}
<!-- Add categories where indicated at the bottom of this page and interwikis at Wikidata -->
{{high-use}}
</pre>
=== Standard form ===
{{nowiki template demo|code=<nowiki>{{high-use}}</nowiki>}}
{{nowiki template demo|code=<nowiki>{{high-use | |Wikipedia talk:High-risk templates }}</nowiki>}}
=== Rounding and + notation ===
{{nowiki template demo|code=<nowiki>{{high-use |49,500 |demo=A template that does not exist }}</nowiki>}}
{{nowiki template demo|code=<nowiki>{{high-use |49,500+ |demo=A template that does not exist }}</nowiki>}}
=== Editnotice form ===
{{nowiki template demo|code=<nowiki>{{high-use |form=editnotice }}</nowiki>}}
=== High risk ===
{{nowiki template demo|code=<nowiki>{{high-use |demo=Yesno }}</nowiki>}}
{{nowiki template demo|code=<nowiki>{{high-use |demo=Yesno |no-percent=yes}}</nowiki>}}
{{nowiki template demo|code=<nowiki>{{high-use |risk |demo=High-use }}</nowiki>}}
{{nowiki template demo|code=<nowiki>{{high-use |risk |Wikipedia talk:High-risk templates |info=This is a very large number! |demo=Yesno}}</nowiki>}}
== Technical details ==
The [[Template:High-use/sandbox|/sandbox]] and [[Template:High-use/testcases|/testcases]] links are the standard names for such subpages. If those pages are created, then the green /doc box for the template will detect them and link to them in its heading. For instance, see the top of this documentation.
[[User:Ahechtbot|Ahechtbot]] compiles usage statistics for all templates with 2,000 or more transclusions, using [[User:Ahechtbot/transclusioncount.py]], and writes them to subpages of [[Module:Transclusion count/data]] (see [[Wikipedia:Bots/Requests for approval/Ahechtbot 6]]). These pages are usually updated every Sunday, but since running the query is resource intensive, it may be delayed or skipped if Wikipedia server usage is high. '''Important''': If a transclusion count is available in [[Module:Transclusion count/data]], any manually input values will be ignored by this template.
== Supporting templates and modules ==
* {{tl|ombox}} which uses {{m2|Message box|ombox}}
* {{tl|editnotice}} which uses {{m2|Message box|fmbox}}
* {{m2|high-use|main}}
* {{m2|transclusion count|fetch}}
==Redirects==
{{columns-list|colwidth=15em|
*{{tl|heavilytranscluded}}
*{{tl|high risk}}
*{{tl|high-risk}}
*{{tl|high use}}
*{{tl|risky template}}
}}
== See also ==
* {{tl|Intricate template}} – for templates that are complex, using less obvious techniques
* {{tl|pp-template}} – protection template that usually is put on high-risk templates
* {{tl|Used in system}} – for templates used in the Wikipedia user interface
* [[Wikipedia:High-risk templates]]
* [[Wikipedia:Template sandbox and test cases]]
== Template counters ==
* [[toollabs:templatecount/]] – easy to use, returns current (real time) transclusion count for a template
* <span class="plainlinks">[{{fullurl:Special:MostLinkedTemplates|limit=500}} Special:MostLinkedTemplates]</span> – special page search for most transcluded templates
* [[Special:PrefixIndex/Module:Transclusion_count/data/]] – template count data used by this template that is broken down by first letter of template and rounded to two or three significant figures, and updated weekly
* [[Wikipedia:Database reports/Templates transcluded on the most pages]] – lists the 1000 most transcluded templates, not updated since November 2018
<!-- * [[tools:~dispenser/cgi-bin/embeddedincount.py]] – Seems to lack human interface, probably meant for programs to call. (not working anymore) -->
<includeonly>{{sandbox other||
<!-- Categories go below this line, please; interwikis go to Wikidata, thank you! -->
[[Category:Documentation header templates]]
}}</includeonly>
0356yrwbvlaevacqsuprqug4qg4a81t
Ta̱mpi̱let:High use/sandbox
10
2065
15961
2022-08-18T12:16:09Z
Kambai Akau
15
Created page with "{{#invoke:High-use/sandbox|main|1={{{1|}}}|2={{{2|}}}|all-pages={{{all-pages|}}}|info={{{info|}}}|demo={{{demo|}}}|form={{{form|}}}|expiry={{{expiry|}}}|fetch={{{fetch|}}}}}<noinclude> {{Documentation}} <!-- Add categories to the /doc subpage; interwiki links go to Wikidata, thank you! --> </noinclude>"
wikitext
text/x-wiki
{{#invoke:High-use/sandbox|main|1={{{1|}}}|2={{{2|}}}|all-pages={{{all-pages|}}}|info={{{info|}}}|demo={{{demo|}}}|form={{{form|}}}|expiry={{{expiry|}}}|fetch={{{fetch|}}}}}<noinclude>
{{Documentation}}
<!-- Add categories to the /doc subpage; interwiki links go to Wikidata, thank you! -->
</noinclude>
kty35ra9j2xqtdnwe2nisabj2ls28mz
Ta̱mpi̱let:High use/testcases
10
2066
15962
2022-08-18T12:21:10Z
Kambai Akau
15
Created page with "{{template test cases notice}} ==Empty== {{test case| _showcode = yes }}Kalie Lyman ==12345== {{test case| _showcode = yes |12345466777}} ==4768470 all-pages== {{test case| _showcode = yes |4768470|all-pages = yes}} ==4768470+ all-pages== {{test case| _showcode = yes |4768470+|all-pages = yes}} ==Small number== {{test case| _showcode = yes |demo = High-use}} ==Large number== {{test case| _showcode = yes |demo = Yesno}} ==Not found== {{test case| _showcode = yes |1..."
wikitext
text/x-wiki
{{template test cases notice}}
==Empty==
{{test case| _showcode = yes
}}Kalie Lyman
==12345==
{{test case| _showcode = yes
|12345466777}}
==4768470 all-pages==
{{test case| _showcode = yes
|4768470|all-pages = yes}}
==4768470+ all-pages==
{{test case| _showcode = yes
|4768470+|all-pages = yes}}
==Small number==
{{test case| _showcode = yes
|demo = High-use}}
==Large number==
{{test case| _showcode = yes
|demo = Yesno}}
==Not found==
{{test case| _showcode = yes
|1234|demo = TemplateThatDoesNotExist}}
==Edit notice==
{{test case| _showcode = yes
|28883|form=editnotice}}
==Module vs Template==
{{test case| _showcode = yes
|demo = Age}}
{{test case| _showcode = yes
|demo = Module:Age}}
==Info parameter==
{{test case| _showcode = yes
|info=It is used on a really important page.|demo = Yesno}}
{{test case| _showcode = yes
|info=It is used on a really important page.|demo = Infobox outbreak}}
==fetch = no==
{{test case| _showcode = yes
|fetch=no|demo = Yesno}}
{{test case| _showcode = yes
|1=1234|fetch=no|demo = Yesno}}
{{test case| _showcode = yes
|fetch=no|demo = Infobox outbreak}}
{{test case| _showcode = yes
|1=1234|fetch=no|demo = Infobox outbreak}}
35ty2cftm1nwtct2du6p7gf5r94vn54
Module:Template invocation
828
2067
15963
2022-08-18T12:24:27Z
Kambai Akau
15
Created page with "-- This module provides functions for making MediaWiki template invocations. local checkType = require('libraryUtil').checkType local p = {} ------------------------------------------------------------------------ -- Name: p.name -- Purpose: Find a template invocation name from a page name or a -- mw.title object. -- Description: This function detects whether a string or a mw.title -- object has been passed in, and uses t..."
Scribunto
text/plain
-- This module provides functions for making MediaWiki template invocations.
local checkType = require('libraryUtil').checkType
local p = {}
------------------------------------------------------------------------
-- Name: p.name
-- Purpose: Find a template invocation name from a page name or a
-- mw.title object.
-- Description: This function detects whether a string or a mw.title
-- object has been passed in, and uses that to find a
-- template name as it is used in template invocations.
-- Parameters: title - full page name or mw.title object for the
-- template (string or mw.title object)
-- Returns: String
------------------------------------------------------------------------
function p.name(title)
if type(title) == 'string' then
title = mw.title.new(title)
if not title then
error("invalid title in parameter #1 of function 'name'", 2)
end
elseif type(title) ~= 'table' or type(title.getContent) ~= 'function' then
error("parameter #1 of function 'name' must be a string or a mw.title object", 2)
end
if title.namespace == 10 then
return title.text
elseif title.namespace == 0 then
return ':' .. title.prefixedText
else
return title.prefixedText
end
end
------------------------------------------------------------------------
-- Name: p.invocation
-- Purpose: Construct a MediaWiki template invocation.
-- Description: This function makes a template invocation from the
-- name and the arguments given. Note that it isn't
-- perfect: we have no way of knowing what whitespace was
-- in the original invocation, the named parameters will be
-- alphabetically sorted, and any parameters with duplicate keys
-- will be removed.
-- Parameters: name - the template name, formatted as it will appear
-- in the invocation. (string)
-- args - a table of template arguments. (table)
-- format - formatting options. (string, optional)
-- Set to "nowiki" to escape, curly braces, pipes and
-- equals signs with their HTML entities. The default
-- is unescaped.
-- Returns: String
------------------------------------------------------------------------
function p.invocation(name, args, format)
checkType('invocation', 1, name, 'string')
checkType('invocation', 2, args, 'table')
checkType('invocation', 3, format, 'string', true)
-- Validate the args table and make a copy to work from. We need to
-- make a copy of the table rather than just using the original, as
-- some of the values may be erased when building the invocation.
local invArgs = {}
for k, v in pairs(args) do
local typek = type(k)
local typev = type(v)
if typek ~= 'string' and typek ~= 'number'
or typev ~= 'string' and typev ~= 'number'
then
error("invalid arguments table in parameter #2 of " ..
"'invocation' (keys and values must be strings or numbers)", 2)
end
invArgs[k] = v
end
-- Get the separators to use.
local seps = {
openb = '{{',
closeb = '}}',
pipe = '|',
equals = '='
}
if format == 'nowiki' then
for k, v in pairs(seps) do
seps[k] = mw.text.nowiki(v)
end
end
-- Build the invocation body with numbered args first, then named.
local ret = {}
ret[#ret + 1] = seps.openb
ret[#ret + 1] = name
for k, v in ipairs(invArgs) do
if type(v) == 'string' and v:find('=', 1, true) then
-- Likely something like 1=foo=bar which needs to be displayed as a named arg.
else
ret[#ret + 1] = seps.pipe
ret[#ret + 1] = v
invArgs[k] = nil -- Erase the key so that we don't add the value twice
end
end
local keys = {} -- sort parameter list; better than arbitrary order
for k, _ in pairs(invArgs) do
keys[#keys + 1] = k
end
table.sort(keys, function (a, b)
-- Sort with keys of type number first, then string.
if type(a) == type(b) then
return a < b
elseif type(a) == 'number' then
return true
end
end)
for _, v in ipairs(keys) do -- Add named args based on sorted parameter list
ret[#ret + 1] = seps.pipe
ret[#ret + 1] = tostring(v)
ret[#ret + 1] = seps.equals
ret[#ret + 1] = invArgs[v]
end
ret[#ret + 1] = seps.closeb
return table.concat(ret)
end
return p
0mchuzsxvb5yfnycusogh7a63eybbyl
Module:Template invocation/doc
828
2068
15964
2022-08-18T12:25:28Z
Kambai Akau
15
Created page with "This is a meta-module for producing MediaWiki template invocations. == Usage == First load the module: <syntaxhighlight lang="lua"> local mTemplateInvocation = require('Module:Template invocation') </syntaxhighlight> Then you can use the individual functions as documented below. === Name === <syntaxhighlight lang="lua"> mTemplateInvocation.name(title) </syntaxhighlight> This function produces the name to be used in a template invocation. For pages in the template..."
wikitext
text/x-wiki
This is a meta-module for producing MediaWiki template invocations.
== Usage ==
First load the module:
<syntaxhighlight lang="lua">
local mTemplateInvocation = require('Module:Template invocation')
</syntaxhighlight>
Then you can use the individual functions as documented below.
=== Name ===
<syntaxhighlight lang="lua">
mTemplateInvocation.name(title)
</syntaxhighlight>
This function produces the name to be used in a template invocation. For pages in the template namespace it returns the page name with no namespace prefix, for pages in the main namespace it returns the full page name prefixed with ":", and for other pages it returns the full page name. <var>title</var> can be a string or a [[mw:Extension:Scribunto/Lua reference manual#Title objects|mw.title object]].
=== Invocation ===
<syntaxhighlight lang="lua">
mTemplateInvocation.invocation(name, args, format)
</syntaxhighlight>
This function creates a MediaWiki [[Help:Template|template]] invocation.
Parameters:
* '''name''' - the name of the template (string, required). This should be exactly as it will appear in the invocation, e.g. for [[Template:Example]] use "Example". To generate the template name from a page name you can use the [[#Name|name]] function.
* '''args''' - the arguments to use in the invocation (table, required). Table keys and values must be either strings or numbers.
* '''format''' - the format of the invocation (string, optional). The default is a normal invocation with unescaped curly braces, pipes, and equals signs. If this parameter is the string "nowiki", then the curly braces, pipes and equals signs are replaced with the appropriate [[HTML entities]].
'''Example'''
The code {{code|1=mTemplateInvocation.invocation('foo', {'bar', 'baz', abc = 'def'})|2=lua}} would produce <code><nowiki>{{foo|bar|baz|abc=def}}</nowiki></code>.
<includeonly>{{#ifeq:{{SUBPAGENAME}}|sandbox||
<!-- Categories go here and interwikis go in Wikidata. -->
}}</includeonly>
0pmk33rdtfo09ckwjrsvgmtt9avmg36
Module:A̱ka̱fwuop nta̱m a̱meang jhyang/sandbox
828
2069
15981
15965
2022-08-18T13:02:31Z
Kambai Akau
15
Kambai Akau shyei peji [[Module:Sister project links/sandbox]] nat [[Module:A̱ka̱fwuop nta̱m a̱meang jhyang/sandbox]] di̱ mi̱n wot a̱shaivak: Di̱n Tyap
Scribunto
text/plain
require('Module:No globals')
-- Module to create sister project link box
local getArgs = require('Module:Arguments').getArgs
local commonsLink = require('Module:Commons link')
local sideBox = require('Module:Side box')._main
local generateWarning = require('Module:If preview')._warning
local p = {}
local logo = {
wikt="Wiktionary-logo-v2.svg",
c="Commons-logo.svg",
n="Wikinews-logo.svg",
q="Wikiquote-logo.svg",
s="Wikisource-logo.svg",
b="Wikibooks-logo.svg",
voy="Wikivoyage-Logo-v3-icon.svg",
v="Wikiversity logo 2017.svg",
d="Wikidata-logo.svg",
species="Wikispecies-logo.svg",
m="Wikimedia Community Logo.svg",
mw="MediaWiki-2020-icon.svg"}
local prefixList = {'wikt', 'c', 'n', 'q', 's', 'b', 'voy', 'v', 'd',
'species', 'species_author', 'm', 'mw'}
local sisterName = {
wikt="Wiktionary",
c="Commons",
n="Wikinews",
q="Wikiquote",
s="Wikisource",
b="Wikibooks",
voy="Wikivoyage",
v="Wikiversity",
d="Wikidata",
species="Wikispecies",
m="Meta-Wiki",
mw="MediaWiki"}
local sisterInfo = {
wikt="Definitions",
c="Media",
n="News",
q="Quotations",
s="Texts",
b="Textbooks",
voy="Travel guides",
v="Resources",
d="Data",
species="Taxa",
species_author="Authorship",
m="Discussions",
mw="Documentation"
}
local defaultSisters = {
wikt=true,
c=true,
n=true,
q=true,
s=true,
b=true,
voy='auto',
v=true,
d=false,
species='auto',
species_author=false,
m=false,
mw=false
}
local sisterDb = {
wikt="enwiktionary",
n="enwikinews",
q="enwikiquote",
s="enwikisource",
b="enwikibooks",
voy="enwikivoyage",
v="enwikiversity",
species="specieswiki"}
local trackingType = {
wdMismatch="Pages using Sister project links with wikidata mismatch",
wdNamespace="Pages using Sister project links with wikidata namespace mismatch",
wdHidden="Pages using Sister project links with hidden wikidata",
defaultSearch="Pages using Sister project links with default search"}
local inSandbox = mw.getCurrentFrame():getTitle():find('sandbox', 1, true)
-- Function to add "-sand" to classes when called from sandbox
local function sandbox(s)
return inSandbox and s.."-sand" or s
end
-- Function to canonicalize string
-- search for variants of "yes", and "no", and transform
-- them into a standard form (like [[Template:YesNo]])
-- Argument:
-- s --- input string
-- Result:
-- {x,y} list of length 2
-- x = nil if s is canonicalized, otherwise has trimmed s
-- y = canonical form of s (true if "yes" or other, false if "no", nil if blank)
local function canonicalize(s)
if s == nil then
return {nil, nil}
end
-- if s is table/list, then assume already canonicalized and return unchanged
if tostring(type(s)) == "table" then
return s
end
s = mw.text.trim(tostring(s))
if s == "" then
return {nil, nil}
end
local lowerS = s:lower()
-- Check for various forms of "yes"
if lowerS == 'yes' or lowerS == 'y' or lowerS == 't'
or lowerS == '1' or lowerS == 'true' or lowerS == 'on' then
return {nil, true}
end
-- Check for various forms of "no"
if lowerS == 'no' or lowerS == 'n' or lowerS == 'f'
or lowerS == '0' or lowerS == 'false' or lowerS == 'off'then
return {nil, false}
end
-- Neither yes nor no recognized, leave string trimmed
return {s, true}
end
-- Merge two or more canonicalized argument lists
-- Arguments:
-- argList = list of canonicalized arguments
-- noAll = if true, return no when all argList is no.
-- otherwise, return blank when all argList is blank
local function mergeArgs(argList,noAll)
local test = nil -- default, return blank if all blank
if noAll then
test = false -- return no if all no
end
local allSame = true
-- Search through string for first non-no or non-blank
for _, arg in ipairs(argList) do
if arg[2] then
return arg -- found non-no and non-blank, return it
end
-- test to see if argList is all blank / no
allSame = allSame and (arg[2] == test)
end
-- if all blank / no, return blank / no
if allSame then
return {nil, test} -- all match no/blank, return it
end
-- otherwise, return no / blank
if noAll then
return {nil, nil}
end
return {nil, false}
end
-- Function to get sitelink for a wiki
-- Arguments:
-- wiki = db name of wiki to lookup
-- qid = QID of entity to search for, current page entity by default
local function getSitelink(wiki,qid)
-- return nil if some sort of lookup failure
return qid and mw.wikibase.getSitelink(qid,wiki)
end
-- Function to get sitelink for a wiki
-- Arguments:
-- prefix = prefix string for wiki to lookup
-- qid = QID of entity to search for, current page entity by default
local function fetchWikidata(prefix,qid)
local sisterDbName = sisterDb[prefix]
return sisterDbName and getSitelink(sisterDbName,qid)
end
-- Function to generate the sister link itself
-- Arguments:
-- args = argument table for function
-- args[1] = page to fetch
-- args.default = link when blank
-- args.auto = new auto mode (don't fall back to search)
-- args.sitelink = wikidata sitelink (if available)
-- args.qid = QID of entity
-- args.search = fallback string to search for
-- args.sisterPrefix = wikitext prefix for sister site
-- args.information = type of info sister site contains
-- tracking = tracking table
local function genSisterLink(args, tracking)
if args[1][2] == false or (not args.default and args[1][2] == nil) then
return nil --- either editor specified "no", or "blank" (and default=no), then skip this sister
end
local sitelink = args.sitelink or fetchWikidata(args.sisterPrefix,args.qid)
if args.auto and not sitelink and args[1][2] == nil then
return nil --- in auto mode, if link is blank and no sitelink, then skip
end
-- fallback order of sister link: first specified page, then wikidata, then search
local link = args[1][1] or sitelink or (args.search and "Special:"..args.search)
if not link then
return nil --- no link found, just skip
end
if tracking then
-- update state for tracking categories
if args[1][1] and sitelink then
-- transform supplied page name to be in wiki-format
local page = mw.ustring.gsub(args[1][1],"_"," ")
page = mw.ustring.sub(page,1,1):upper()..mw.ustring.sub(page,2)
local pageNS = mw.ustring.match(page,"^([^:]+):")
local sitelinkNS = mw.ustring.match(sitelink,"^([^:]+):")
if page == sitelink then
tracking.wdHidden = args.sisterPrefix
elseif pageNS ~= sitelinkNS then
tracking.wdNamespace = args.sisterPrefix
else
tracking.wdMismatch = args.sisterPrefix
end
-- if no page link, nor a wikidata entry, and search is on, then warn
elseif not (args[1][2] or sitelink) and args.search then
tracking.defaultSearch = args.sisterPrefix
end
end
return {prefix=args.sisterPrefix, link=link, information=args.information}
end
-- Function to handle special case of commons link
local function commonsLinks(args, commonsPage)
-- use [[Module:Commons link]] to determine best commons link
local cLink = (not args.commonscat) and commonsLink._hasGallery(args.qid)
or commonsLink._hasCategory(args.qid)
if commonsPage[1] and not mw.ustring.match(commonsPage[1]:lower(),"^category:") then
commonsPage[1] = (args.commonscat and "Category:" or "")..commonsPage[1]
end
local commonsSearch = "Search/"..(args.commonscat and "Category:" or "")..args[1]
return {link=cLink, search=commonsSearch}
end
-- Function to handle special case for "author" and "cookbook"
local function handleSubtype(args)
local ns = args.ns
local ns_len = mw.ustring.len(ns)
local result = {}
result.sitelink = fetchWikidata(args.prefix, args.qid)
local subtype = false
if args.page then
if mw.ustring.sub(args.page,1,ns_len) == ns then
subtype = true
elseif args.subtype then
result.page = ns..args.page
subtype = true
end
elseif result.sitelink then
subtype = mw.ustring.sub(result.sitelink,1,ns_len) == ns
elseif args.subtype then
result.search = "Search/"..ns..args.default
subtype = true
end
if subtype then
result.info = args.info
end
return result
end
-- Function to create a sister link, by prefix
-- Arguments:
-- prefix = sister prefix (e.g., "c" for commons)
-- args = arguments for this sister (see p._sisterLink above)
-- tracking = tracking table
local function sisterLink(prefix, args, tracking)
-- determine arguments to genSisterLink according to prefix
if prefix == 'species_author' and not args.species[1] and args.species[2] and not args.species_author[1] and args.species_author[2] then
return nil
end
local default = defaultSisters[prefix]
if default == 'auto' then
default = args.auto
end
-- Handle exceptions by prefix
local search = ((prefix == 'd' and "ItemByTitle/enwiki/") or "Search/")..args[1]
local sitelink = prefix == 'd' and args.qid
local page = args[prefix]
local info = sisterInfo[prefix]
-- special case handling of author and cookbook
local subtype = nil
if prefix == 's' then
subtype = handleSubtype({prefix='s',qid=args.qid,subtype=args.author,page=page[1],
ns='Author:',info=nil,default=args[1]})
elseif prefix == 'b' then
subtype = handleSubtype({prefix='b',qid=args.qid,subtype=args.cookbook,page=page[1],
ns='Cookbook:',info='Recipes',default=args[1]})
end
if subtype then
page[1] = subtype.page or page[1]
search = subtype.search or search
sitelink = subtype.sitelink or sitelink
info = subtype.info or info
end
if prefix == 'voy' and not args.bar and not page[1] and page[2] ~= nil then
info = "Travel information"
end
info = args.information or info
if prefix == 'c' then
local commons = commonsLinks(args, page)
search = commons.search
sitelink = commons.link
end
prefix = (prefix == 'species_author' and 'species') or prefix
return genSisterLink({
page,
auto=args.auto,
qid=args.qid,
sitelink=sitelink,
default=default,
sisterPrefix = prefix,
search=search,
information=info}, tracking)
end
local function templatestyles_page(is_bar)
local sandbox = inSandbox and 'sandbox/' or ''
if is_bar then
return mw.ustring.format(
'Module:Sister project links/bar/%sstyles.css',
sandbox
)
end
return mw.ustring.format(
'Module:Sister project links/%sstyles.css',
sandbox
)
end
-- Function to create html containers for sister project link list
-- Arguments:
-- args = table of arguments
-- args.position: if 'left', position links to left
-- args.collapsible: if non-empty, make box collapsible. If 'collapse', start box hidden
-- args.style: CSS style string appended to end of default CSS
-- args.display: boldface name to display
local function createSisterBox(sisterList, args)
local list = mw.html.create('ul')
for i, link in ipairs(sisterList) do
local li = list:tag('li')
-- html element for 27px-high logo
local logoSpan = li:tag('span')
logoSpan:addClass(sandbox("sister-logo"))
logoSpan:wikitext("[[File:"..logo[link.prefix].."|27x27px|middle|link=|alt=]]")
-- html element for link
local linkspan = li:tag('span')
linkspan:addClass(sandbox("sister-link"))
local linkText = "[["..link.prefix..":"..link.link.."|"..link.information .."]] from "..sisterName[link.prefix]
linkspan:wikitext(linkText)
end
list:allDone()
return sideBox({
role = 'navigation',
labelledby = 'sister-projects',
class = sandbox("sister-box") .. ' sistersitebox plainlinks',
position = args.position,
style = args.style,
abovestyle = args.collapsible and 'clear: both' or nil,
above = mw.ustring.format(
"'''%s''' at Wikipedia's [[Wikipedia:Wikimedia sister projects|<span id=\"sister-projects\">sister projects</span>]]",
args.display or args[1]
),
text = tostring(list),
collapsible = args.collapsible,
templatestyles = templatestyles_page()
})
end
local function createSisterBar(sisterList,args)
local nav = mw.html.create( 'div' )
nav:addClass( 'noprint')
nav:addClass( 'metadata')
nav:addClass( sandbox('sister-bar'))
nav:attr( 'role', 'navigation' )
nav:attr( 'aria-label' , 'sister-projects' )
local header = nav:tag('div')
header:addClass(sandbox('sister-bar-header'))
local pagename = header:tag('b')
pagename:wikitext(args.display or args[1])
local headerText = " at Wikipedia's [[Wikipedia:Wikimedia sister projects|"
headerText = headerText..'<span id="sister-projects" style="white-space:nowrap;">sister projects</span>]]:'
header:wikitext(headerText)
if #sisterList == 1 then
header:wikitext("[[Category:Pages with single-entry sister bar]]")
end
local container = nav:tag('div')
container:addClass(sandbox('sister-bar-content'))
for _, link in ipairs(sisterList) do
local item = container:tag('div')
item:addClass(sandbox('sister-bar-item'))
local logoSpan = item:tag('span')
logoSpan:addClass(sandbox('sister-bar-logo'))
logoSpan:wikitext("[[File:"..logo[link.prefix].."|21x19px|link=|alt=]]")
local linkSpan = item:tag('span')
linkSpan:addClass(sandbox('sister-bar-link'))
linkSpan:wikitext("<b>[["..link.prefix..":"..link.link.."|"..link.information .."]]</b> from "..sisterName[link.prefix])
end
return nav
end
function p._main(args)
local titleObject = mw.title.getCurrentTitle()
-- find qid, either supplied with args, from search string, or from current page
args.qid = args.qid or mw.wikibase.getEntityIdForTitle(args[1] or "") or mw.wikibase.getEntityIdForCurrentPage()
args.qid = args.qid and args.qid:upper()
-- search string defaults to PAGENAME
args[1] = args[1] or mw.wikibase.getSitelink(args.qid or "") or titleObject.text
-- handle redundant "commons"/"c" prefix
args.c = args.c or args.commons
-- Canonicalize all sister links (handle yes/no/empty)
for _, k in ipairs(prefixList) do
args[k] = canonicalize(args[k])
end
-- Canonicalize cookbook
args.cookbook = canonicalize(args.cookbook)
args.b = mergeArgs({args.b,args.cookbook})
args.cookbook = args.cookbook[2]
-- Canonicalize general parameters
for _,k in pairs({"auto","commonscat","author","bar","tracking","sandbox"}) do
args[k] = canonicalize(args[k])[2]
end
-- Initialize tracking categories if main namespace
local tracking = (args.tracking or titleObject.namespace == 0) and {}
local sisterList = {}
local prefix
-- Loop through all sister projects, generate possible links
for _, prefix in ipairs(prefixList) do
local link = sisterLink(prefix, args, tracking)
if link then
table.insert(sisterList, link)
end
end
local box = mw.html.create()
if args.bar and #sisterList > 0 then
box:wikitext(mw.getCurrentFrame():extensionTag{
name = 'templatestyles', args = { src = templatestyles_page(true) }
})
box:node(createSisterBar(sisterList,args))
elseif #sisterList == 1 then
-- Use single sister box instead of multi-sister box
local sister = sisterList[1]
local link = "[["..sister.prefix..":"..sister.link.."|<b><i>"..(args.display or args[1]).."</i></b>]]"
box:wikitext(sideBox({
role = 'navigation',
position=args.position,
image="[[File:"..logo[sister.prefix].."|40x40px|class=noviewer|alt=|link=]]",
metadata='no',
class='plainlinks sistersitebox',
text=sisterName[sister.prefix].." has "..mw.ustring.lower(sister.information).." related to "..link,
templatestyles = templatestyles_page()
}))
elseif #sisterList > 0 then
-- else use sister box if non-empty
box:wikitext(createSisterBox(sisterList,args))
end
if #sisterList == 0 and args.auto then
box:wikitext(generateWarning({"No sister project links found in Wikidata. Try auto=0"}))
end
-- Append tracking categories to container div
-- Alpha ordering is by sister prefix
if tracking then
for k, v in pairs(tracking) do
box:wikitext("[[Category:"..trackingType[k].."|"..v.."]]")
end
if #sisterList == 0 then
box:wikitext("[[Category:Pages with empty sister project links]]")
end
end
return tostring(box)
end
-- Main entry point for generating sister project links box
function p.main(frame)
local args = getArgs(frame,{frameOnly=false,parentOnly=false,parentFirst=false})
return p._main(args)
end
-- Lua entry point for generate one sister link
function p._sisterlink(args)
local prefix = args.prefix
-- Canonicalize all sister links (handle yes/no/empty)
for _, k in ipairs(prefixList) do
args[k] = canonicalize(args[k])
end
-- Canonicalize cookbook
args.cookbook = canonicalize(args.cookbook)
args.b = mergeArgs({args.b,args.cookbook})
args.cookbook = args.cookbook[2]
-- Canonicalize general parameters
for _,k in pairs({"auto","commonscat","author"}) do
args[k] = canonicalize(args[k])[2]
end
args[1] = args[1] or mw.title.getCurrentTitle().text
args.qid = args.qid or mw.wikibase.getEntityIdForCurrentPage()
args.qid = args.qid and args.qid:upper()
local link = sisterLink(prefix, args,nil)
if not link then
return ""
end
return "[["..link.prefix..":"..link.link.."|"..link.information .."]] from "..sisterName[link.prefix]
end
-- Template entry point for generating one sister link
function p.link(frame)
local args = getArgs(frame)
return p._sisterlink(args)
end
return p
hr47rmsc19vyv0rhnmw7tfp4ew0puvb
Ta̱mpi̱let:A̱ka̱fwuop nta̱m a̱meang jhyang/doc
10
2071
15974
15969
2022-08-18T12:58:32Z
Kambai Akau
15
Kambai Akau shyei peji [[Ta̱mpi̱let:Sister project links/doc]] nat [[Ta̱mpi̱let:A̱ka̱fwuop nta̱m a̱meang jhyang/doc]]: Di̱n Tyap
wikitext
text/x-wiki
#REDIRECT [[Ta̱mpi̱let:A̱ka̱fwuop nta̱m jhyang/doc]]
9n96fkob559wfaoug7bxrp6ruvc1g5d
Ta̱mpi̱let:A̱ka̱fwuop nta̱m a̱meang jhyang/testcases
10
2072
15976
15971
2022-08-18T12:58:32Z
Kambai Akau
15
Kambai Akau shyei peji [[Ta̱mpi̱let:Sister project links/testcases]] nat [[Ta̱mpi̱let:A̱ka̱fwuop nta̱m a̱meang jhyang/testcases]]: Di̱n Tyap
wikitext
text/x-wiki
#REDIRECT [[Ta̱mpi̱let:A̱ka̱fwuop nta̱m jhyang/testcases]]
a4iaz0x9qq6b1yj9ho11jokkwfwtk93
Ta̱mpi̱let:Sister project links
10
2073
15973
2022-08-18T12:58:32Z
Kambai Akau
15
Kambai Akau shyei peji [[Ta̱mpi̱let:Sister project links]] nat [[Ta̱mpi̱let:A̱ka̱fwuop nta̱m a̱meang jhyang]]: Di̱n Tyap
wikitext
text/x-wiki
#REDIRECT [[Ta̱mpi̱let:A̱ka̱fwuop nta̱m a̱meang jhyang]]
2h64xjqp0z1xqkkjnaqxw3uf7j2gh3i
Ta̱mpi̱let:Sister project links/doc
10
2074
15975
2022-08-18T12:58:32Z
Kambai Akau
15
Kambai Akau shyei peji [[Ta̱mpi̱let:Sister project links/doc]] nat [[Ta̱mpi̱let:A̱ka̱fwuop nta̱m a̱meang jhyang/doc]]: Di̱n Tyap
wikitext
text/x-wiki
#REDIRECT [[Ta̱mpi̱let:A̱ka̱fwuop nta̱m a̱meang jhyang/doc]]
fini0xg5s7x1in5avdhcsx96kl2zg7p
Ta̱mpi̱let:Sister project links/testcases
10
2075
15977
2022-08-18T12:58:32Z
Kambai Akau
15
Kambai Akau shyei peji [[Ta̱mpi̱let:Sister project links/testcases]] nat [[Ta̱mpi̱let:A̱ka̱fwuop nta̱m a̱meang jhyang/testcases]]: Di̱n Tyap
wikitext
text/x-wiki
#REDIRECT [[Ta̱mpi̱let:A̱ka̱fwuop nta̱m a̱meang jhyang/testcases]]
hp0jopg64h2k2dsavwko5ep92vfhkde
Ta̱mpi̱let:A̱ka̱fwuop nta̱m jhyang
10
2076
15985
2022-08-18T13:05:15Z
Kambai Akau
15
Kambai Akau shyei peji [[Ta̱mpi̱let:A̱ka̱fwuop nta̱m jhyang]] nat [[Ta̱mpi̱let:A̱ka̱fwuop nta̱m a̱meang jhyang]]
wikitext
text/x-wiki
#REDIRECT [[Ta̱mpi̱let:A̱ka̱fwuop nta̱m a̱meang jhyang]]
2h64xjqp0z1xqkkjnaqxw3uf7j2gh3i
Ta̱mpi̱let:A̱ka̱fwuop nta̱m a̱meang jhyang/sandbox
10
2077
16043
15993
2022-08-18T19:46:18Z
Kambai Akau
15
wikitext
text/x-wiki
{{#invoke:A̱ka̱fwuop nta̱m a̱meang jhyang/sandbox|main}}{{main other|{{#invoke:Check for unknown parameters|check|unknown=[[Category:Ngwat na̱ nyian ta̱m ma̱ng A̱ka̱fwuop nta̱m a̱meang ma̱ng a̱kace a̱gi̱gak|_VALUE_]]|preview=unknown parameter "_VALUE_"|1|author|auto|b|c|collapsible|commons|commonscat|d|display|m|mw|n|position|q|qid|s|species|species_author|style|v|voy|wikt}}}}<noinclude>
{{Documentation}}
</noinclude>
989flzcu4z9gkaupsslsyyblv9w72kv
Ta̱mpi̱let:Sister project
10
2078
15996
2022-08-18T13:30:01Z
Kambai Akau
15
Kambai Akau shyei peji [[Ta̱mpi̱let:Sister project]] nat [[Ta̱mpi̱let:Ta̱m a̱meang]]: Di̱n Tyap
wikitext
text/x-wiki
#REDIRECT [[Ta̱mpi̱let:Ta̱m a̱meang]]
48xgso5thfj0imiikt05dtekljcfkdw
Ta̱mpi̱let:Ta̱m a̱meang/doc
10
2079
16013
15997
2022-08-18T14:13:04Z
Kambai Akau
15
wikitext
text/x-wiki
{{Documentation subpage}}
<!-- PLEASE ADD CATEGORIES AT THE BOTTOM OF THIS PAGE -->
{{High-risk}}
{{Lua|Module:Side box}}
This is a meta-template used for creating interwiki links to other [[Wikipedia:Wikimedia sister projects|sister projects]] of Wikipedia. Note that links to other ''language'' Wikipedias should ''not'' use links in this form, instead use interwiki links to add them to the sidebar.
== Usage ==
*{{para|text}} – text of the message
*{{para|project}} – the sister project to link to. Used to select which project logo is displayed.
*{{para|below}} – optional text to display in a full-width row below the main content. Use sparingly
*{{para|position}} – set to <kbd>left</kbd> for a left-floating box or, ideally, pass through with {{nowrap|<kbd><nowiki>|position={{{position|}}}</nowiki></kbd>}} to let this be set on a per-page basis.
'''Example'''
<syntaxhighlight lang="moin">
{{Sister project
|project=commons
|text=[[Wikimedia Commons]] has media related to: '''''[[Commons:{{{1|Special:Search/{{PAGENAME}}}}}|{{{2|{{{1|{{PAGENAME}}}}}}}}]]'''''
}}
</syntaxhighlight>
{{Sister project
|project=commons
|text=[[Wikimedia Commons]] byia̱ nyinyiit shei nkhang a̱meang ma̱ng: '''''[[Commons:{{{1|Special:Search/{{PAGENAME}}}}}|{{{2|{{{1|{{PAGENAME}}}}}}}}]]''''' }}
===Location===
This template should normally be placed at the top of the ''External links'' section at the end of an article, if the article has a section for [[WP:EL|external links]]. If no such section exists, then please place it at the top of the last section in <nowiki>the article</nowiki>.
On [[WP:DAB|disambiguation pages]], this template should be listed above other text, but below any cleanup templates, images, infoboxes or navboxes.<!-- Per WP:ACCESS, cleanup templates, images, infoboxes, and navboxes are always<nowiki> first</nowiki>. -->
==Template data==
{{TemplateDataHeader}}
<templatedata>{
"description": "Creates a small box with a links to an article on a sister project of wikipedia.",
"params": {
"project": {
"label": "Project",
"description": "The project to link to e.g. commons, meta, wikibooks, wikidata, wikiquote, wikipedia, wikisource, wiktionary, wikinews, wikispecies, wikiversity, wikivoyage, mediawiki, outreachwiki, or incubator. The default displays the Wikimedia logo.",
"type": "string",
"required": true
},
"text": {
"label": "Text",
"description": "Text of the message e.g. [[Wikimedia Commons]] has media related to: '''''[[Commons:Alcatraz]]'''''",
"type": "string",
"required": true
},
"below": {
"label": "Below",
"description": "Optional text to display in a full-width row below the main content. Use sparingly.",
"type": "string",
"required": false
},
"position": {
"label": "Position",
"description": "Position to display the box: 'left' floats the box to the left rather than the default, which is on the right.",
"type": "string",
"required": false
}
}}</templatedata>
==Images used==
This template potentially displays the following images.
* [[File:Commons-logo.svg|27x27px|link=|alt=]] [[:File:Commons-logo.svg|Wikimedia Commons logo]] <code>commons</code>
* [[File:Wikimedia Community Logo.svg|27x27px|link=|alt=]] [[:File:Wikimedia Community Logo.svg|Meta-Wiki logo]] <code>meta</code>, <code>metawiki</code>, or <code>m</code>
* [[File:Wikibooks-logo-en-noslogan.svg|27x27px|link=|alt=]] [[:File:Wikibooks-logo-en-noslogan.svg|Wikibooks logo]] <code>wikibooks</code>, <code>wbk</code>, <code>wb</code>, or <code>b</code>
* [[File:Wikidata-logo.svg|27x27px|link=|alt=]] [[:File:Wikidata-logo.svg|Wikidata logo]] <code>wikidata</code> or <code>data</code>
* [[File:Wikiquote-logo.svg|27x27px|link=|alt=]] [[:File:Wikiquote-logo.svg|Wikiquote logo]] <code>wikiquote</code>, <code>quote</code>, <code>wqt</code>, or <code>q</code>
* [[File:Wikipedia-logo-v2.svg|27x27px|link=|alt=]] [[:File:Wikipedia-logo-v2.svg|Wikipedia logo]] <code>wikipedia</code>, <code>wp</code>, or <code>w</code>
* [[File:Wikisource-logo.svg|27x27px|link=|alt=]] [[:File:Wikisource-logo.svg|Wikisource logo]] <code>wikisource</code>, <code>source</code>, <code>ws</code>, or <code>s</code>
* [[File:Wiktionary-logo-v2.svg|27x27px|link=|alt=]] [[:File:Wiktionary-logo-v2.svg|Wiktionary logo]] <code>wiktionary</code>, <code>wkt</code>, <code>wdy</code>, or <code>d</code>
* [[File:Wikinews-logo.svg|27x27px|link=|alt=]] [[:File:Wikinews-logo.svg|Wikinews logo]] <code>wikinews</code>, <code>news</code>, <code>wnw</code>, or <code>n</code>
* [[File:Wikispecies-logo.svg|27x27px|link=|alt=]] [[:File:Wikispecies-logo.svg|Wikispecies logo]] <code>wikispecies</code> or <code>species</code>
* [[File:Wikiversity logo 2017.svg|27x27px|link=|alt=]] [[:File:Wikiversity logo 2017.svg|Wikiversity logo]] <code>wikiversity</code>, <code>wvy</code>, or <code>v</code>
* [[File:Wikivoyage-Logo-v3-icon.svg|27x27px|link=|alt=]] [[:File:Wikivoyage-Logo-v3-icon.svg|Wikivoyage logo]] <code>wikivoyage</code>, <code>voyage</code>, or <code>voy</code>
* [[File:MediaWiki-2020-icon.svg|27x27px|link=|alt=]] [[:File:MediaWiki-2020-icon.svg|MediaWiki logo]] <code>mediawiki</code> or <code>mw</code>
* [[File:Wikimedia Outreach.png|27x27px|link=|alt=]] [[:File:Wikimedia Outreach.png|Wikimedia Outreach logo]] <code>outreachwiki</code> or <code>outreach</code>
* [[File:Incubator-notext.svg|27x27px|link=|alt=]] [[:File:Incubator-notext.svg|Wikimedia Incubator logo]] <code>incubator</code>
* [[File:Wikimedia-logo.svg|27x27px|link=|alt=]] [[:File:Wikimedia-logo.svg|Wikimedia logo]] default
== See also ==
* {{tl|Sister-inline}}, compatible template for inline use with preceding bullets or indentation
* {{tl|Sister project links}}
* {{tl|Side box}}, the meta-template used for floated side boxes like {{tl|sister project}}
* {{tl|Subject bar}}, a comprehensive horizontal template
<includeonly>{{Sandbox other||
[[Category:Interwiki link templates| ]]
}}</includeonly>
6zee1vep9k6qhvbqx13ezcpg4l6kacd
Ta̱mpi̱let:Ta̱m a̱meang/sandbox
10
2080
15998
2022-08-18T13:34:10Z
Kambai Akau
15
Created page with "{{Side box/sandbox | metadata=no | position = {{{position|}}} | image = {{#switch: {{{image|}}} | none = <!-- "image=none", do nothing --> | = <!-- No image fed, select an image --> File:{{#switch: {{lc: {{{project|}}} }} | commons = Commons-logo.svg | meta|metawiki|m = Wikimedia Community Logo.svg | wikibooks|wbk|wb|b = Wikibooks-logo-en-noslogan.svg | wikidata|data = Wikidata-logo.svg | w..."
wikitext
text/x-wiki
{{Side box/sandbox
| metadata=no
| position = {{{position|}}}
| image =
{{#switch: {{{image|}}}
| none = <!-- "image=none", do nothing -->
| = <!-- No image fed, select an image -->
[[File:{{#switch: {{lc: {{{project|}}} }}
| commons = Commons-logo.svg
| meta|metawiki|m = Wikimedia Community Logo.svg
| wikibooks|wbk|wb|b = Wikibooks-logo-en-noslogan.svg
| wikidata|data = Wikidata-logo.svg
| wikiquote|quote|wqt|q = Wikiquote-logo.svg
| wikipedia|wp|w = Wikipedia-logo-v2.svg
| wikisource|source|ws|s = Wikisource-logo.svg
| wiktionary|wkt|wdy|d = Wiktionary-logo-en-v2.svg
| wikinews|news|wnw|n = Wikinews-logo.svg
| wikispecies|species = Wikispecies-logo.svg
| wikiversity|wvy|v = Wikiversity logo 2017.svg
| wikivoyage|voyage|voy = Wikivoyage-Logo-v3-icon.svg
| mediawiki|mw = MediaWiki-2020-icon.svg
| outreachwiki|outreach = Wikimedia Outreach.png
| incubator = Incubator-notext.svg
| #default = Wikimedia-logo.svg
}}|40x40px|class=noviewer|alt=|link=
]]
| #default = {{{image|}}}
}}
| textclass = {{{textclass|plainlist}}}
| textstyle = {{{textstyle|}}}
| text = {{{text}}}
| below = {{{below|}}}
| imageright = {{{imageright|}}}
| class = plainlinks sistersitebox
}}<noinclude>{{Documentation}}<!-- Add categories and interwikis to the /doc subpage, not here! --></noinclude>
p4w48sq9u4knrs23c0bnmjwjp0d24lz
Ta̱mpi̱let:Side box/sandbox
10
2081
16001
16000
2022-08-18T13:40:43Z
Kambai Akau
15
Replaced content with "{{#invoke:Side box/sandbox|main}}<noinclude> {{documentation}} <!-- Categories go on the /doc subpage, and interwikis go on Wikidata. --> </noinclude>"
wikitext
text/x-wiki
{{#invoke:Side box/sandbox|main}}<noinclude>
{{documentation}}
<!-- Categories go on the /doc subpage, and interwikis go on Wikidata. -->
</noinclude>
lusj0fz2476oo06ovjxybnwiggwwkbs
Ta̱mpi̱let:Sidebox
10
2082
16002
2022-08-18T13:41:32Z
Kambai Akau
15
Redirected page to [[Ta̱mpi̱let:Side box]]
wikitext
text/x-wiki
#REDIRECT [[Template:Side box]]
{{Redirect category shell|
{{R from move}}
{{R from modification}}
{{R from template shortcut}}
}}
inrse3sed2zmc0pbfb76zsk9b32v8j4
Ta̱mpi̱let:Side box/testcases
10
2083
16007
16006
2022-08-18T13:51:10Z
Kambai Akau
15
wikitext
text/x-wiki
{{Template test cases notice}}
== Test no parameters ==
* <code><nowiki>{{side box}}</nowiki></code>
'''Sandbox'''
{{side box/sandbox}}
{{clear}}
'''Main'''
{{side box}}
{{clear}}
== Text only ==
* <code><nowiki>{{side box|text = {{lorem}}}}</nowiki></code>
'''Sandbox'''
{{side box/sandbox|text = {{lorem}}}}
{{clear}}
'''Main'''
{{side box|text = {{lorem}}}}
{{clear}}
== Above text ==
* <code><nowiki>{{side box|text = The body text|above = The above text}}</nowiki></code>
'''Sandbox'''
{{side box/sandbox|text = The body text|above = The above text}}
{{clear}}
'''Main'''
{{side box|text = The body text|above = The above text}}
{{clear}}
== Above and imageright ==
* <code><nowiki>{{side box|text = The body text|above = The above text|imageright = [[File:Bad Title Example.png|30px]]}}</nowiki></code>
'''Sandbox'''
{{side box/sandbox|text = The body text|above = The above text|imageright = [[File:Bad Title Example.png|30px]]}}
{{clear}}
'''Main'''
{{side box|text = The body text|above = The above text|imageright = [[File:Bad Title Example.png|30px]]}}
{{clear}}
== Image and imageright ==
* <code><nowiki>{{side box|text = The body text|image = [[File:Bad Title Example.png|30px]]|imageright = [[File:Bad Title Example.png|30px]]}}</nowiki></code>
'''Sandbox'''
{{side box/sandbox|text = The body text|image = [[File:Bad Title Example.png|30px]]|imageright = [[File:Bad Title Example.png|30px]]}}
{{clear}}
'''Main'''
{{side box|text = The body text|image = [[File:Bad Title Example.png|30px]]|imageright = [[File:Bad Title Example.png|30px]]}}
{{clear}}
== Below ==
* <code><nowiki>{{side box|text = The body text|below = The below text}}</nowiki></code>
'''Sandbox'''
{{side box/sandbox|text = The body text|below = The below text}}
{{clear}}
'''Main'''
{{side box|text = The body text|below = The below text}}
{{clear}}
== Below and imageright ==
* <code><nowiki>{{side box|text = The body text|below = The below text|imageright = [[File:Bad Title Example.png|30px]]}}</nowiki></code>
'''Sandbox'''
{{side box/sandbox|text = The body text|below = The below text|imageright = [[File:Bad Title Example.png|30px]]}}
{{clear}}
'''Main'''
{{side box|text = The body text|below = The below text|imageright = [[File:Bad Title Example.png|30px]]}}
{{clear}}
== Image ==
* <code><nowiki>{{side box|text = The body text|image = [[File:Bad Title Example.png|32px]]}}</nowiki></code>
'''Sandbox'''
{{side box/sandbox|text = The body text|image = [[File:Bad Title Example.png|32px]]}}
{{clear}}
'''Main'''
{{side box|text = The body text|image = [[File:Bad Title Example.png|32px]]}}
{{clear}}
== Image = none ==
* <code><nowiki>{{side box|text = The body text|image = none}}</nowiki></code>
'''Sandbox'''
{{side box/sandbox|text = The body text|image = none}}
{{clear}}
'''Main'''
{{side box|text = The body text|image = none}}
{{clear}}
== Style ==
* <code><nowiki>{{side box|text = The body text|style = width:100px}}</nowiki></code>
'''Sandbox'''
{{side box/sandbox|text = The body text|style = width:100px}}
{{clear}}
'''Main'''
{{side box|text = The body text|style = width:100px}}
{{clear}}
== Textstyle ==
* <code><nowiki>{{side box|text = The body text|below = The below text|above = The above text|textstyle = color:red}}</nowiki></code>
'''Sandbox'''
{{side box/sandbox|text = The body text|below = The below text|above = The above text|textstyle = color:red}}
{{clear}}
'''Main'''
{{side box|text = The body text|below = The below text|above = The above text|textstyle = color:red}}
{{clear}}
== Abovestyle ==
* <code><nowiki>{{side box|text = The body text|below = The below text|above = The above text|textstyle = color:red|abovestyle = font-weight:bold}}</nowiki></code>
'''Sandbox'''
{{side box/sandbox|text = The body text|below = The below text|above = The above text|textstyle = color:red|abovestyle = font-weight:bold}}
{{clear}}
'''Main'''
{{side box|text = The body text|below = The below text|above = The above text|textstyle = color:red|abovestyle = font-weight:bold}}
{{clear}}
== Position ==
* <code><nowiki>{{side box|text = The body text|position = left}}</nowiki></code>
'''Sandbox'''
{{side box/sandbox|text = The body text|position = left}}
{{clear}}
'''Main'''
{{side box|text = The body text|position = left}}
{{clear}}
== Position caps ==
* <code><nowiki>{{side box|text = The body text|position = LEFT}}</nowiki></code>
'''Sandbox'''
{{side box/sandbox|text = The body text|position = LEFT}}
{{clear}}
'''Main'''
{{side box|text = The body text|position = LEFT}}
{{clear}}
== No metadata ==
* <code><nowiki>{{side box|text = The body text|metadata = no}}</nowiki></code>
'''Sandbox'''
{{side box/sandbox|text = The body text|metadata = no}}
{{clear}}
'''Main'''
{{side box|text = The body text|metadata = no}}
{{clear}}
== plainlist = no ==
* <syntaxhighlight lang=text>{{side box |plainlist=no |text =The body text
*item one
*item two
*item three
}}</syntaxhighlight>
'''Sandbox'''
{{side box/sandbox |plainlist=no |text =The body text
*item one
*item two
*item three
}}
{{clear}}
'''Main'''
{{side box |plainlist=no |text =The body text
*item one
*item two
*item three
}}
{{clear}}
d8d5tufb6m0wy94zdhhwldcdn79sqij
Module:Side box/sandbox
828
2084
16009
2022-08-18T13:53:47Z
Kambai Akau
15
Created page with "-- This module implements {{side box}}. local yesno = require('Module:Yesno') local p = {} local function makeData(args) local data = {} -- Main table classes data.classes = {} if yesno(args.metadata) ~= false then table.insert(data.classes, 'metadata') end if args.position and args.position:lower() == 'left' then table.insert(data.classes, 'side-box-left') else table.insert(data.classes, 'side-box-right') end if args.collapsible then table.insert(..."
Scribunto
text/plain
-- This module implements {{side box}}.
local yesno = require('Module:Yesno')
local p = {}
local function makeData(args)
local data = {}
-- Main table classes
data.classes = {}
if yesno(args.metadata) ~= false then
table.insert(data.classes, 'metadata')
end
if args.position and args.position:lower() == 'left' then
table.insert(data.classes, 'side-box-left')
else
table.insert(data.classes, 'side-box-right')
end
if args.collapsible then
table.insert(data.classes, 'mw-collapsible')
if args.collapsible == "collapsed" then
table.insert(data.classes, 'mw-collapsed')
end
data.collapsible = true
end
table.insert(data.classes, args.class)
-- Image
if args.image and args.image ~= 'none' then
data.image = args.image
end
-- Copy over data that does not need adjusting
local argsToCopy = {
-- aria qualities
'role',
'labelledby',
-- Classes
'textclass',
-- Styles
'style',
'textstyle',
'templatestyles',
-- Above row
'above',
'abovestyle',
-- Body row
'text',
'imageright',
-- Below row
'below',
}
for i, key in ipairs(argsToCopy) do
data[key] = args[key]
end
return data
end
local function renderSidebox(data)
-- Renders the sidebox HTML.
-- Table root
local root = mw.html.create('div')
root:attr('role', data.role)
:attr('aria-labelledby', data.labelledby)
:addClass('side-box')
for i, class in ipairs(data.classes or {}) do
root:addClass(class)
end
if data.style then
root:cssText(data.style)
end
-- The "above" row
if data.above then
local above = root:newline():tag('div')
above:addClass('side-box-abovebelow')
:newline()
:wikitext(data.above)
if data.textstyle then
above:cssText(data.textstyle)
end
if data.abovestyle then
above:cssText(data.abovestyle)
end
end
-- The body row
local body = root:newline():tag('div')
body:addClass('side-box-flex')
:addClass(data.collapsible and 'mw-collapsible-content')
:newline()
if data.image then
body:tag('div')
:addClass('side-box-image')
:wikitext(data.image)
end
local text = body:newline():tag('div')
text:addClass('side-box-text')
:addClass(data.textclass or 'plainlist')
if data.textstyle then
text:cssText(data.textstyle)
end
text:wikitext(data.text)
if data.imageright then
body:newline():tag('div')
:addClass('side-box-imageright')
:wikitext(data.imageright)
end
-- The below row
if data.below then
local below = root:newline():tag('div')
below
:addClass('side-box-abovebelow')
:wikitext(data.below)
if data.textstyle then
below:cssText(data.textstyle)
end
end
root:newline()
local frame = mw.getCurrentFrame()
local templatestyles = ''
if data.templatestyles then
templatestyles = frame:extensionTag{
name = 'templatestyles', args = { src = data.templatestyles }
}
end
return frame:extensionTag{
name = 'templatestyles', args = { src = 'Module:Side box/styles.css' }
} .. templatestyles .. tostring(root)
end
function p._main(args)
local data = makeData(args)
return renderSidebox(data)
end
function p.main(frame)
local origArgs = frame:getParent().args
local args = {}
for k, v in pairs(origArgs) do
v = v:match('%s*(.-)%s*$')
if v ~= '' then
args[k] = v
end
end
return p._main(args)
end
return p
1b73hdm2hspyb6vwl1vlt2smbccio0d
Ta̱mpi̱let:Ta̱m a̱meang/testcases
10
2085
16010
2022-08-18T14:04:45Z
Kambai Akau
15
Created page with "{{testcase|id=voyage|<nowiki>{{sister project|project=voyage |text=[[Wikivoyage]] has travel information related to: '''''[[voy:Paris|Paris]]''''' }}</nowiki>|{{sister project|project=voyage |text=[[Wikivoyage]] has travel information related to: '''''[[voy:Paris|Paris]]''''' }}|{{sister project/sandbox|project=voyage |text=[[Wikivoyage]] has travel information related to: '''''[[voy:Paris|Paris]]''''' }}}} {{testcase|id=voy|<nowiki>{{sister project|project=voy |text=..."
wikitext
text/x-wiki
{{testcase|id=voyage|<nowiki>{{sister project|project=voyage
|text=[[Wikivoyage]] has travel information related to: '''''[[voy:Paris|Paris]]'''''
}}</nowiki>|{{sister project|project=voyage
|text=[[Wikivoyage]] has travel information related to: '''''[[voy:Paris|Paris]]'''''
}}|{{sister project/sandbox|project=voyage
|text=[[Wikivoyage]] has travel information related to: '''''[[voy:Paris|Paris]]'''''
}}}}
{{testcase|id=voy|<nowiki>{{sister project|project=voy
|text=[[Wikivoyage]] has travel information related to: '''''[[voy:Botswana|Botswana]]'''''
}}</nowiki>|{{sister project|project=voy
|text=[[Wikivoyage]] has travel information related to: '''''[[voy:Botswana|Botswana]]'''''
}}|{{sister project/sandbox|project=voy
|text=[[Wikivoyage]] has travel information related to: '''''[[voy:Botswana|Botswana]]'''''
}}}}
{{testcase|id=wikivoyage|<nowiki>{{sister project|project=wikivoyage
|text=[[Wikivoyage]] has travel information related to: '''''[[voy:Victoria (state)|Victoria]]'''''
}}</nowiki>|{{sister project|project=wikivoyage
|text=[[Wikivoyage]] has travel information related to: '''''[[voy:Victoria (state)|Victoria]]'''''
}}|{{sister project/sandbox|project=wikivoyage
|text=[[Wikivoyage]] has travel information related to: '''''[[voy:Victoria (state)|Victoria]]'''''
}}}}
{{testcase|id=data|<nowiki>{{sister project|project=data
|text=[[Wikidata]] has data related to: '''''[[d:Q517|Napoléon Bonaparte]]'''''
}}</nowiki>|{{sister project|project=data
|text=[[Wikidata]] has data related to: '''''[[d:Q517|Napoléon Bonaparte]]'''''
}}|{{sister project/sandbox|project=data
|text=[[Wikidata]] has data related to: '''''[[d:Q517|Napoléon Bonaparte]]'''''
}}}}
{{testcase|id=wikidata|<nowiki>{{sister project|project=wikidata
|text=[[Wikidata]] has data related to: '''''[[d:Q963|Botswana]]'''''
}}</nowiki>|{{sister project|project=wikidata
|text=[[Wikidata]] has data related to: '''''[[d:Q963|Botswana]]'''''
}}|{{sister project/sandbox|project=wikidata
|text=[[Wikidata]] has data related to: '''''[[d:Q963|Botswana]]'''''
}}}}
458pinseggjvdeb8dbcwj6j3o3uwzhq
Ta̱mpi̱let:Testcase
10
2086
16011
2022-08-18T14:05:51Z
Kambai Akau
15
Created page with "{| class="mw-collapsible {{#ifeq:{{{2|}}}|{{{3|}}}|mw-collapsed|}}" style="background-color: transparent;width:100%; border: solid silver 1px" |- ! colspan="2" style="background-color:{{#ifeq:{{{2|}}}|{{{3|}}}|lightgreen|yellow}};" | {{{title|{{{id|{{{1|}}}}}}}}} |- | colspan="2" | <pre<includeonly></includeonly> style="background:none; border:none; padding:0; margin:0; white-space: pre-wrap; word-wrap: break-word;">{{{1}}}</pre> |- | {{{2}}} {{#ifeq:{{{layout|vertical..."
wikitext
text/x-wiki
{| class="mw-collapsible {{#ifeq:{{{2|}}}|{{{3|}}}|mw-collapsed|}}" style="background-color: transparent;width:100%; border: solid silver 1px"
|-
! colspan="2" style="background-color:{{#ifeq:{{{2|}}}|{{{3|}}}|lightgreen|yellow}};" | {{{title|{{{id|{{{1|}}}}}}}}}
|-
| colspan="2" | <pre<includeonly></includeonly> style="background:none; border:none; padding:0; margin:0; white-space: pre-wrap; word-wrap: break-word;">{{{1}}}</pre>
|-
| {{{2}}}
{{#ifeq:{{{layout|vertical}}}|vertical|{{!}}-}}
| {{{3}}}
|-
| colspan="2" |
{| class="wikitable mw-collapsible mw-collapsed" style="width:100%; margin:0; padding:0;"
! Expanded code
|-
| {{#tag:syntaxhighlight|{{{2}}}|lang=html5|inline=1}}
{{#ifeq:{{{source-layout|vertical}}}|vertical|{{!}}-}}
| {{#tag:syntaxhighlight|{{{3}}}|lang=html5|inline=1}}
|}
|}<noinclude>
{{documentation}}
</noinclude>
5dm423a5ablhxg1qy1n0tih2s1h35o4
Ta̱mpi̱let:Testcase/doc
10
2087
16012
2022-08-18T14:07:23Z
Kambai Akau
15
Created page with "{{Documentation subpage}} {{Template sandbox notice}}<!--only displayed when viewed from /sandbox page--> <!-- PLEASE ADD CATEGORIES AND INTERWIKIS AT THE BOTTOM OF THIS PAGE --> {{for|an easier-to-use version of this template|Template:Test case}} == See also == Templates invoking [[Module:Template test case]]: * [[Template:Test case]] – a generalised test case template * [[Template:Testcase rows]] – for a table of test cases arranged in rows * Template:Testcase t..."
wikitext
text/x-wiki
{{Documentation subpage}}
{{Template sandbox notice}}<!--only displayed when viewed from /sandbox page-->
<!-- PLEASE ADD CATEGORIES AND INTERWIKIS AT THE BOTTOM OF THIS PAGE -->
{{for|an easier-to-use version of this template|Template:Test case}}
== See also ==
Templates invoking [[Module:Template test case]]:
* [[Template:Test case]] – a generalised test case template
* [[Template:Testcase rows]] – for a table of test cases arranged in rows
* [[Template:Testcase table]] – for a table of test cases arranged in columns
* [[Template:Inline test case]] – for test cases with small invocations and small output
* [[Template:Collapsible test case]] – for test cases collapsed by default if the results are the same
* [[Template:Test case nowiki]] – for test cases from template invocations enclosed in {{tag|nowiki}} tags
* [[Template:Nowiki template demo]] – for use in template documentation
<includeonly>{{Sandbox other||<!--
++++ PLEASE ADD CATEGORIES BELOW THIS LINE, INSIDE INCLUDEONLY TAGS, THANK YOU. -->
[[Category:Template namespace templates]]
[[Category:Template test cases| ]]
}}</includeonly>
0bfsnh54352aae39724c28lbdt0w84z
Ta̱mpi̱let:TemplateDataHeader
10
2088
16014
2022-08-18T14:14:48Z
Kambai Akau
15
Created page with "<div class="templatedata-header">{{#if:{{{noheader|}}}|<!-- noheader: -->{{Template parameter usage|based=y}}|<!-- +header: -->This is the {{#if:{{{nolink|}}}|<!-- +header, nolink TD -->TemplateData|<!-- +header, +link [[TD]]; DEFAULT: -->[[Wikipedia:TemplateData|TemplateData]]}}<!-- e.o. #if:nolink; DEFAULT: --> for this template used by [[mw:Extension:TemplateWizard|TemplateWizard]], [[Wikipedia:VisualEditor|VisualEditor]] and other tools. {{Template parame..."
wikitext
text/x-wiki
<div class="templatedata-header">{{#if:{{{noheader|}}}|<!--
noheader:
-->{{Template parameter usage|based=y}}|<!--
+header:
-->This is the {{#if:{{{nolink|}}}|<!--
+header, nolink TD
-->TemplateData|<!--
+header, +link [[TD]]; DEFAULT:
-->[[Wikipedia:TemplateData|TemplateData]]}}<!--
e.o. #if:nolink; DEFAULT:
--> for this template used by [[mw:Extension:TemplateWizard|TemplateWizard]], [[Wikipedia:VisualEditor|VisualEditor]] and other tools. {{Template parameter usage|based=y}}<!--
e.o. #if:noheader
-->}}
'''TemplateData for {{{1|{{BASEPAGENAME}}}}}'''
</div><includeonly><!--
check parameters
-->{{#invoke:Check for unknown parameters|check
|unknown={{template other|1=[[Category:Pages using TemplateData header with unknown parameters|_VALUE_]]}}
|template=Template:TemplateData header
|1 |nolink |noheader
|preview=<div class="error" style="font-weight:normal">Unknown parameter '_VALUE_' in [[Template:TemplateData header]].</div>
}}<!--
-->{{template other|{{sandbox other||
[[Category:Templates using TemplateData]]
}}}}</includeonly><!--
--><noinclude>{{Documentation}}</noinclude>
pxhfjcmyklg4yst97in9mz897nxe198
Ta̱mpi̱let:TemplateDataHeader/doc
10
2089
16015
2022-08-18T14:17:24Z
Kambai Akau
15
Created page with "{{Documentation subpage}} <!-- Add categories where indicated at the bottom of this page and interwikis at Wikidata --> {{Lua|Module:Check for unknown parameters}} The {{tlx|TemplateData header}} template inserts a brief header for the template data section, and adds the page to [[:Category:Templates using TemplateData]]. == Usage == <pre style="overflow:auto;"> ==TemplateData== {{TemplateData header}} <templatedata>{ ... }</templatedata> Note: Section headers of ==Pa..."
wikitext
text/x-wiki
{{Documentation subpage}}
<!-- Add categories where indicated at the bottom of this page and interwikis at Wikidata -->
{{Lua|Module:Check for unknown parameters}}
The {{tlx|TemplateData header}} template inserts a brief header for the template data section, and adds the page to [[:Category:Templates using TemplateData]].
== Usage ==
<pre style="overflow:auto;">
==TemplateData==
{{TemplateData header}}
<templatedata>{
...
}</templatedata>
Note: Section headers of ==Parameters== or ==Usage== may also be used.
</pre>
Use <code><nowiki>{{TemplateData header|Template name}}</nowiki></code> to display a name for the template other than the default, which is [[Help:Magic_words#Variables|<nowiki>{{BASEPAGENAME}}</nowiki>]]. Do ''not'' add namespace <code>Template:</code>
:{|
|{{TemplateData header|Template name}}
|}
Use <code><nowiki>{{TemplateData header|nolink=1}}</nowiki></code> to omit the [[Help:Link#Wikilinks|wikilink]] from the word "TemplateData" in the header text, for instances where it is already linked outside this template.
:{|
|{{TemplateData header|nolink=1}}
|}
Use <code><nowiki>{{TemplateData header|noheader=1}}</nowiki></code> to omit the first sentence of the header text.
:{|
|{{TemplateData header|noheader=1}}
|}
==Example==
:Using a collapse box for {{elc|Template:User}}:
{{nowiki template demo|code=<nowiki>
{{collapse top|title=TemplateData}}
{{TemplateData header|User}}
<templatedata>
{
"description": "This template is used to create a link to a user's user page (unless using {{Useranon}}), talk page, and contributions, and generates a special notification (aka 'ping').",
"params": {
"1": {
"label": "User name",
"type": "string",
"required": true,
"description": "The user name that you want to create links to and notify.",
"aliases":["user"]
},
"project": {
"label": "Sister project",
"type": "string",
"description": "Used to link to a sister project instead of the English Wikipedia. Use the standard interwiki prefix."
},
"lang": {
"label": "Other language project",
"type": "string",
"description": "Used to link to another language project. If used with the \"sister project\" parameter, links to another language of a sister project. Otherwise links to another language Wikipedia. Use the standard language code."
},
"separator": {
"label": "Separator",
"description": "Used to change the separator between the links. If unused, defaults to a dot."
}
}
}
</templatedata>
{{collapse bottom}}</nowiki>}}
==Parameters==
{{TemplateData header}}
<templatedata>{
"description": "Inserts a brief header for the template data section. Adds the page to [[Category:Templates using TemplateData]]",
"params": {
"1": {
"label": "Template name",
"description": "Used to display a name for the template other than the default, which is {{BASEPAGENAME}}.",
"type": "string",
"required": false
},
"nolink": {
"label": "No link",
"description": "Assigning any value to this parameter will omit cause the template to omit the wikilink from the word \"TemplateData\" in the header text, for instances where it is already linked outside this template.",
"type": "string",
"required": false
},
"noheader": {
"label": "No header",
"description": "Assigning any value to this parameter will cause the template to omit the first sentence of the header text.",
"type": "string",
"required": false
}
}
}</templatedata>
==Tracking category==
* {{clc|Category:Pages using TemplateData header with unknown parameters}}
==See also==
* {{clc|Category:Templates using TemplateData}}
* {{tl|Crude TemplateData}}
* {{tl|Template parameter usage}}
<includeonly>{{sandbox other||
<!-- Categories below this line; interwikis at Wikidata -->
{{DEFAULTSORT:Templatedata Header}}
[[Category:TemplateData|Header]]
[[Category:Documentation header templates]]
}}</includeonly>
m9w5v940f41020tkhqs2pbl3wx7n9np
Ta̱mpi̱let:Commons
10
2090
16020
16017
2022-08-18T14:25:08Z
Kambai Akau
15
wikitext
text/x-wiki
{{Sister project
| position = {{{position|}}}
| project = commons
| text = Wikimedia Commons byia̱ {{{alt-term|nyinyiit shei nkhang a̱meang ma̱ng}}} <!--
-->{{#invoke:Commons link|getGalleryOrCategory|{{{1|}}}|linktext={{{2|}}}|qid={{{qid|}}}|tracking=1|bold=1|italic=1}}.}}<noinclude>
{{documentation}}
<!-- Add categories to the /doc sub-page and interwikis to Wikidata. -->
</noinclude>
n3mlvv2lzxgu6lf53tgd2hzhy0yquab
Ta̱mpi̱let:Commons/doc
10
2091
16018
2022-08-18T14:22:36Z
Kambai Akau
15
Created page with "{{Documentation subpage}} {{tsh|common}} {{High-use}} <!-- Categories go where indicated at the bottom of this page, please; interwikis go to Wikidata (see also: [[Wikipedia:Wikidata]]). --> {{For|other uses in Wikipedia|Wikipedia:COMMON (disambiguation)}} {{Distinguish|Template:Copy to Wikimedia Commons}} {{Lua|Module:Commons link}} This template is part of Wikipedia's [[Wikipedia:Wikimedia sister projects|sister projects]]. This template links an article to a page on [..."
wikitext
text/x-wiki
{{Documentation subpage}}
{{tsh|common}}
{{High-use}}
<!-- Categories go where indicated at the bottom of this page, please; interwikis go to Wikidata (see also: [[Wikipedia:Wikidata]]). -->
{{For|other uses in Wikipedia|Wikipedia:COMMON (disambiguation)}}
{{Distinguish|Template:Copy to Wikimedia Commons}}
{{Lua|Module:Commons link}}
This template is part of Wikipedia's [[Wikipedia:Wikimedia sister projects|sister projects]]. This template links an article to a page on [[commons:|Wikimedia Commons]], containing a gallery of related media. Note that it does not link to a Commons category, which will give a larger selection of media; for that use [[Template:Commons category]].
==Usage==
::{|
|-
|{{Tlx|Commons}}||—puts link-box with current page's name.
|-
|{{Tlx|Commons|''pagename''}}||—puts link-box connecting title ''pagename''.
|-
|{{Tlx|Commons|''pagename''|''showname''}}||—puts link-box showing the title ''showname''.
|-
|{{Tlx|Commons|''pagename''|3=position=left}}||—floats link-box to the left side.
|}
To place this template on the page, type '''<nowiki>{{</nowiki>Commons|''pagename''}}''', where ''pagename'' is the name of a page on Wikimedia Commons (defaults to <small><nowiki>"{{PAGENAME}}"</nowiki></small>, the end-name of a page where used).
* The optional 2nd parameter gives the displayed link text.
* The {{Para|position}} parameter accepts one keyword, <code>left</code>, to float the box to the left instead of to the right.
* To link to a ''Category'', use the related template {{Tlx|Commons category|''catname''}}, where ''catname'' is the name of the category.
==Location==
{{Commons templates location}}
==Defaults==
The ''pagename'' defaults to wiki-variable <small><nowiki>"{{PAGENAME}}"</nowiki></small>, which is the end-name of the page where used. For a Template:Txxx, the <small><nowiki>{{PAGENAME}}</nowiki></small> would be the end-name "Txxx". For a Category:Catxxx, that page would have <small><nowiki>{{PAGENAME}}</nowiki></small> as the end-name "Catxxx".
The default positioning of the link-box is to the right-side.
==Examples==
{| style="border:1px solid #808080; padding:1px;"
|{{tlx|Commons}}
|}
produces
{{Commons}}
{{clear}}
{| style="border:1px solid #808080; padding:1px;"
|{{tlx|Commons|Reconquista}}
|}
produces
{{Commons|Reconquista}}
{{clear}}
{| style="border:1px solid #808080; padding:1px;"
|{{tlx|Commons|Category:Reconquista}}
|}
produces
{{Commons|Category:Reconquista}}
{{clear}}
{| style="border:1px solid #808080; padding:1px;"
|{{tlx|Commons|Reconquista|retaking of the Iberian Peninsula}}
|}
produces
{{Commons|Reconquista|retaking of the Iberian Peninsula}}
{{clear}}
{| style="border:1px solid #808080; padding:1px;"
|{{tlx|Commons|Reconquista|position{{=}}left}}
|}
produces
{{Commons|Reconquista|position=left}}
{{clear}}
==Template data==
{{TemplateData header}}
<templatedata>{
"description": "Creates a small box with a link to a related page on Wikimedia Commons.",
"params": {
"1": {
"label": "Pagename",
"description": "The page name on Commons. The article's page name is used as a default.",
"type": "string",
"required": false
},
"2": {
"label": "Showname",
"description": "Optional displayed link text.",
"type": "string",
"required": false
},
"position": {
"label": "Position",
"description": "Position to display the box: 'left' floats the box to the left rather than the default which is on the right.",
"type": "string",
"required": false
}
}}</templatedata>
== Tracking categories ==
=== Normal categories ===
* {{clc|Commons link from Wikidata}}
* {{clc|Commons link is on Wikidata}}
=== Maintenance categories ===
* {{clc|Commons link is defined as the pagename}}
* {{clc|Commons link is locally defined}}
* {{clc|Commons link is the pagename}}
* {{clc|Inconsistent wikidata for Commons gallery}}
==See also==
{{Commons templates see also}}
<includeonly>{{Sandbox other||
<!-- Categories go below this line, please; interwikis go to Wikidata, thank you! -->
[[Category:Interwiki link templates]]
[[Category:Wikimedia Commons templates]]
}}</includeonly>
mh0yapp8wscflcfzrty8fo0mqztp6sk
Ta̱mpi̱let:Common
10
2092
16019
2022-08-18T14:23:36Z
Kambai Akau
15
Redirected page to [[Ta̱mpi̱let:Commons]]
wikitext
text/x-wiki
#REDIRECT [[Template:Commons]]
{{ R cat shell|
{{R from alternative name}}
{{R from template short}}
}}
2zrd83qek7h08ubw100up8gps84jex1
Ta̱mpi̱let:Commons/sandbox
10
2093
16021
2022-08-18T14:26:55Z
Kambai Akau
15
Created page with "{{Sister project | position = {{{position|}}} | project = commons | text = Wikimedia Commons byia̱ {{{alt-term|nyinyiit shei nkhang a̱meang ma̱ng}}} <!-- -->{{#invoke:Commons link/sandbox|getGalleryOrCategory|{{{1|}}}|linktext={{{2|}}}|qid={{{qid|}}}|tracking=1|bold=1|italic=1}}.}}<noinclude> {{documentation}} <!-- Add categories to the /doc sub-page and interwikis to Wikidata. --> </noinclude>"
wikitext
text/x-wiki
{{Sister project
| position = {{{position|}}}
| project = commons
| text = Wikimedia Commons byia̱ {{{alt-term|nyinyiit shei nkhang a̱meang ma̱ng}}} <!--
-->{{#invoke:Commons link/sandbox|getGalleryOrCategory|{{{1|}}}|linktext={{{2|}}}|qid={{{qid|}}}|tracking=1|bold=1|italic=1}}.}}<noinclude>
{{documentation}}
<!-- Add categories to the /doc sub-page and interwikis to Wikidata. -->
</noinclude>
0kh2jtddjy45b1jigmgcyh58grwnc4l
Module:Commons link/sandbox
828
2094
16022
2022-08-18T14:29:44Z
Kambai Akau
15
Created page with "require('Module:No globals') -- Module to find commons galleries and categories based on wikidata entries local getArgs = require('Module:Arguments').getArgs local yesNo = require('Module:Yesno') local generateWarning = require('Module:If preview')._warning local p = {} -- Check if string is a valid QID -- Argument: QID to check -- Returns: valid (bool) local function _validQID(qid) return qid and mw.ustring.find(qid,"^[Qq]%d+$") end -- Check if string is a valid wik..."
Scribunto
text/plain
require('Module:No globals')
-- Module to find commons galleries and categories based on wikidata entries
local getArgs = require('Module:Arguments').getArgs
local yesNo = require('Module:Yesno')
local generateWarning = require('Module:If preview')._warning
local p = {}
-- Check if string is a valid QID
-- Argument: QID to check
-- Returns: valid (bool)
local function _validQID(qid)
return qid and mw.ustring.find(qid,"^[Qq]%d+$")
end
-- Check if string is a valid wikidata property string
-- Argument: property string to check
-- Returns: valid (bool)
local function _validProp(prop)
return prop and mw.ustring.find(prop,"^[Pp]%d+$")
end
local function _lcfirst(s)
return mw.ustring.lower(mw.ustring.sub(s,1,1))..mw.ustring.sub(s,2)
end
-- Format displayed linktext
-- Arguments:
-- s = string to display
-- formatting = formatting table:
-- formatting.linktext = if defined, override s
-- formatting.lcfirst = lower case the first letter in display
-- formatting.bold = whether to bold the display
-- formatting.italic = whether to italicize the display
-- formatting.nowrap = set nowrapping
-- Returns:
-- formatted string
local function _formatResult(s, formatting)
local resultVal = formatting.linktext or s
if formatting.lcfirst then
resultVal = _lcfirst(resultVal)
end
local style = ""
if formatting.italic then style = "font-style:italic; " end
if formatting.bold then style = style.."font-weight:bold; " end
if formatting.nowrap then style = style.."white-space:nowrap; " end
if style ~= "" then
resultVal = '<span style="'..mw.text.trim(style)..'">'..resultVal..'</span>'
end
return resultVal
end
-- Get title, namespace, and QID for current page
-- Arguments:
-- qid = testing only: get title of alternative page with QID=qid
-- nsQid = whether to return the ns of the qid page or current
-- Returns:
-- title, namespace (string), qid of current page (or test page)
local function _getTitleQID(qid,nsQid)
local titleObject = mw.title.getCurrentTitle()
-- look up qid for current page (if not testing)
local nsText = mw.ustring.gsub(titleObject.nsText,"_"," ")
if not _validQID(qid) then
qid = mw.wikibase.getEntityIdForCurrentPage()
return titleObject.text, nsText, qid
end
-- testing-only path: given a qid, determine title
-- always use namespace from current page (to suppress tracking cat)
qid = qid:upper()
local title = mw.wikibase.getSitelink(qid) or ""
-- strip any namespace from sitelink
local firstColon = mw.ustring.find(title,':',1,true)
local qidNsText = ""
if firstColon then
qidNsText = mw.ustring.sub(title,1,firstColon-1)
title = mw.ustring.sub(title,firstColon+1)
end
if nsQid then
return title, qidNsText, qid
end
return title, nsText, qid
end
-- Lookup Commons gallery in Wikidata
-- Arguments:
-- qid = QID of current article
-- fetch = whether to lookup Commons sitelink (bool)
-- commonsSitelink = default value for Commons sitelink
-- Returns:
-- categoryLink = name of Commons category, nil if nothing is found
-- consistent = multiple wikidata fields are examined: are they consistent?
-- commonsSitelink = commons sitelink for current article
local function _lookupGallery(qid,fetch,commonsSitelink)
if not _validQID(qid) then
return nil, true, nil
end
qid = qid:upper()
local galleryLink = nil
local consistent = true
-- look up commons sitelink for article, use if not category
if fetch then
commonsSitelink = mw.wikibase.getSitelink(qid,"commonswiki") or commonsSitelink
end
if commonsSitelink and mw.ustring.sub(commonsSitelink,1,9) ~= "Category:" then
galleryLink = commonsSitelink
end
-- P935 is the "commons gallery" property for this article
local P935 = mw.wikibase.getBestStatements(qid, "P935")[1]
if P935 and P935.mainsnak.datavalue then
local gallery = P935.mainsnak.datavalue.value
if galleryLink and galleryLink ~= gallery then
consistent = false
else
galleryLink = gallery
end
end
return galleryLink, consistent, commonsSitelink
end
-- Find fallback category by looking up Commons sitelink of different page
-- Arguments:
-- qid = QID for current article
-- property = property that refers to other article whose sitelink to return
-- Returns: either category-stripped name of article, or nil
local function _lookupFallback(qid,property)
if not _validQID(qid) or not _validProp(property) then
return nil
end
qid = qid:upper()
property = property:upper()
-- If property exists on current article, get value (other article qid)
local value = mw.wikibase.getBestStatements(qid, property)[1]
if value and value.mainsnak.datavalue and value.mainsnak.datavalue.value.id then
-- Look up Commons sitelink of other article
local sitelink = mw.wikibase.getSitelink(value.mainsnak.datavalue.value.id,"commonswiki")
-- Check to see if it starts with "Category:". If so, strip it and return
if sitelink and mw.ustring.sub(sitelink,1,9) == "Category:" then
return mw.ustring.sub(sitelink,10)
end
end
return nil
end
-- Find Commons category by looking in wikidata
-- Arguments:
-- qid = QID of current article
-- fetch = whether to lookup Commons sitelink (bool)
-- commonsSitelink = default value for Commons sitelink
-- Returns:
-- categoryLink = name of Commons category, nil if nothing is found
-- consistent = multiple wikidata fields are examined: are they consistent?
-- commonsSitelink = commons sitelink for current article
local function _lookupCategory(qid, fetch, commonsSitelink)
if not _validQID(qid) then
return nil, true, nil
end
qid = qid:upper()
local categoryLink = nil
local consistent = true
-- look up commons sitelink for article, use if starts with "Category:"
if fetch then
commonsSitelink = mw.wikibase.getSitelink(qid,"commonswiki") or commonsSitelink
end
if commonsSitelink and mw.ustring.sub(commonsSitelink,1,9) == "Category:" then
categoryLink = mw.ustring.sub(commonsSitelink,10)
end
-- P910 is the "topic's main category". Look for commons sitelink there
local fallback = _lookupFallback(qid,"P910")
if fallback then
if categoryLink and categoryLink ~= fallback then
consistent = false
qid = nil
else
categoryLink = fallback
end
end
-- P1754 is the "list's main category". Look for commons sitelink there
fallback = _lookupFallback(qid,"P1754")
if fallback then
if categoryLink and categoryLink ~= fallback then
consistent = false
qid = nil
else
categoryLink = fallback
end
end
-- P373 is the "commons category" property for this article. This is
-- a low-quality field, so should only be used as a last resort.
if categoryLink == nil and _validQID(qid) then
local P373 = mw.wikibase.getBestStatements(qid, "P373")[1]
if P373 and P373.mainsnak.datavalue then
categoryLink = P373.mainsnak.datavalue.value
consistent = true -- P373 is never used if anything else is available
end
end
return categoryLink, consistent, commonsSitelink
end
-- Does the article have a Commons gallery, and is it consistent?
-- Arguments:
-- qid = QID to lookup in wikidata (for testing only)
-- Returns:
-- filename at Commons, bool: is wikidata consistent for this article?
function p._hasGalleryConsistent(qid)
local wp_title, wp_ns
wp_title, wp_ns, qid = _getTitleQID(qid)
return _lookupGallery(qid,true)
end
-- Does the article have a corresponding Commons gallery?
-- Arguments:
-- qid = QID to lookup in wikidata (for testing only)
-- Returns:
-- filename at Commons if so, false if not
function p._hasGallery(qid)
local galleryLink, consistent = p._hasGalleryConsistent(qid)
return consistent and galleryLink
end
-- Does the article have a Commons category? Is wikidata consistent for that?
-- Arguments:
-- qid = QID to lookup in wikidata (for testing only)
-- prefix = whether to add "Category:" to return string (default true)
-- Returns:
-- filename at Commons, bool: consistent
function p._hasCategoryConsistent(qid,prefix)
if prefix == nil then
prefix = true
end
local wp_title, wp_ns
wp_title, wp_ns, qid = _getTitleQID(qid)
local categoryLink, consistent = _lookupCategory(qid,true)
if categoryLink and prefix then
categoryLink = "Category:"..categoryLink
end
return categoryLink, consistent
end
-- Does the article have a corresponding Commons category?
-- Arguments:
-- qid = QID to lookup in wikidata (for testing only)
-- prefix = whether to add "Category:" to return string (default true)
-- Returns:
-- filename at Commons if so, blank if not
function p._hasCategory(qid,prefix)
local categoryLink, consistent = p._hasCategoryConsistent(qid,prefix)
return consistent and categoryLink
end
-- Create Commons link corresponding to current article
-- Arguments:
-- namespace = namespace in Commons ("" for galleries)
-- default = use as Commons link, don't access wikidata
-- search = string to search for
-- fallback = string to search for if wikidata fails
-- formatting = formatting parameters
-- qid = QID to lookup in wikidata (for testing only)
-- Returns:
-- formatted wikilink to Commons in specified namespace
function p._getCommons(namespace,default,search,fallback,formatting,qid)
local nsColon
if not namespace or namespace == "" then
nsColon = ""
else
nsColon = namespace..":"
end
if default then
return "[[Commons:"..nsColon..default.."|".._formatResult(default,formatting).."]]"
end
if search then
return "[[Commons:Special:Search/"..nsColon..search.."|".._formatResult(search,formatting).."]]"
end
local wp_title, wp_ns
wp_title, wp_ns, qid = _getTitleQID(qid)
local commonsLink = nil
local consistent = true
if nsColon == "" then
commonsLink, consistent = _lookupGallery(qid,true)
elseif namespace:lower() == "category" then
commonsLink, consistent = _lookupCategory(qid,true)
end
-- use wikidata if consistent
if commonsLink and consistent then
return "[[Commons:"..nsColon..commonsLink.."|".._formatResult(commonsLink,formatting).."]]"
end
-- if not consistent, fall back to search and add to tracking cat
-- construct default result (which searches for title)
local searchResult = "[[Commons:Special:Search/"..nsColon..(fallback or wp_title)
.."|".._formatResult(fallback or wp_title,formatting).."]]"
if not consistent and wp_ns == "" then
local friendlyNS
if nsColon == "" then
friendlyNS = "gallery"
else
friendlyNS = namespace:lower()
end
searchResult = searchResult.."[[Category:Inconsistent wikidata for Commons "..friendlyNS.."]]"
end
return searchResult
end
-- Returns "best" Commons link: first look for gallery, then try category
-- Arguments:
-- default = use as Commons link, don't access wikidata
-- search = string to search for
-- fallback = string to search for if wikidata lookup fails
-- formatting = formatting parameters
-- qid = QID to lookup in wikidata (for testing only)
-- Returns:
-- formatted wikilink to Commons "best" landing page
function p._getGalleryOrCategory(default, search, fallback, formatting, qid)
if default then
return "[[Commons:"..default.."|".._formatResult(default,formatting).."]]"
end
if search then
return "[[Commons:Special:Search/"..search.."|".._formatResult(search,formatting).."]]"
end
local wp_title, wp_ns
wp_title, wp_ns, qid = _getTitleQID(qid)
local trackingCats = ""
local galleryLink, consistent, commonsSitelink = _lookupGallery(qid,true)
-- use wikidata if either sitelink or P935 exist, and they both agree
if galleryLink and consistent then
return "[[Commons:"..galleryLink.."|".._formatResult(galleryLink,formatting).."]]"
end
if not consistent and wp_ns == "" then
trackingCats = "[[Category:Inconsistent wikidata for Commons gallery]]"
end
-- if gallery is not good, fall back looking for category
local categoryLink
categoryLink, consistent = _lookupCategory(qid,false,commonsSitelink)
if categoryLink and consistent then
return "[[Commons:Category:"..categoryLink.."|".._formatResult(categoryLink,formatting).."]]"..trackingCats
end
if not consistent and wp_ns == "" then
trackingCats = trackingCats.."[[Category:Inconsistent wikidata for Commons category]]"
end
-- return search result looking for title as last attempt
return "[[Commons:Special:Search/" .. (fallback or wp_title) ..
"|" .. _formatResult(fallback or wp_title,formatting) .. "]]" .. trackingCats
end
-- Return link(s) Commons gallery, or category, or both from wikidata
-- Arguments:
-- defaultGallery = default gallery link to use, instead of wikidata
-- defaultCategory = default category link to use, instead of wikidata
-- categoryText = if both gallery and category, text to use in category link ("category" by default)
-- oneSearch = only emit one search result
-- formatting = formatting parameters
-- qid = qid of page to lookup in wikidata (testing only)
function p._getGalleryAndCategory(defaultGallery, defaultCategory,
categoryText, oneSearch, formatting, qid
)
local wp_title, wp_ns
wp_title, wp_ns, qid = _getTitleQID(qid)
categoryText = categoryText or "category"
local trackingCats = ""
local galleryLink, galleryConsistent
local commonsSitelink = nil
if defaultGallery then
galleryLink = defaultGallery
galleryConsistent = true
else
galleryLink, galleryConsistent, commonsSitelink = _lookupGallery(qid,true)
end
local galleryGood = galleryLink and galleryConsistent
if not galleryConsistent and wp_ns == "" then
trackingCats = "[[Category:Inconsistent wikidata for Commons gallery]]"
end
local categoryLink, categoryConsistent
if defaultCategory then
categoryLink = defaultCategory
categoryConsistent = true
else
categoryLink, categoryConsistent = _lookupCategory(qid,defaultGallery,commonsSitelink)
end
local categoryGood = categoryLink and categoryConsistent
if not categoryConsistent and wp_ns == "" then
trackingCats = trackingCats.."[[Category:Inconsistent wikidata for Commons category]]"
end
local firstLink
-- construct default result (which searches for title)
local searchResult = "[[Commons:Special:Search/"..wp_title.."|".._formatResult(wp_title,formatting).."]]"
if not oneSearch then
searchResult = searchResult.." ([[Commons:Special:Search/Category:"..wp_title.."|"..categoryText.."]])"
end
local linkText = nil
if galleryGood then
firstLink = galleryLink
linkText = galleryLink
elseif categoryGood then
firstLink = "Category:"..categoryLink
linkText = categoryLink
else
return searchResult..trackingCats
end
local resultVal = "[[Commons:"..firstLink.."|".._formatResult(linkText,formatting).."]]"
if galleryGood and categoryGood then
resultVal = resultVal.." ([[Commons:Category:"..categoryLink.."|"..categoryText.."]])"
end
return resultVal..trackingCats
end
-- Compare two titles with their namespaces stripped
local function titleMatch(s1,s2)
s1 = s1 or ""
s2 = s2 or ""
s1 = mw.ustring.gsub(s1,"^[^:]+:","")
s2 = mw.ustring.gsub(s2,"^[^:]+:","")
return s1 == s2
end
local galleryTrackingCats = {
commons_link_on_wikidata = '[[Category:Commons link is on Wikidata]]',
commons_link_defined_as_pagename = '[[Category:Commons link is defined as the pagename]]',
commons_link_locally_defined = '[[Category:Commons link is locally defined]]',
commons_link_from_wikidata = '[[Category:Commons link from Wikidata]]',
commons_link_is_pagename = '[[Category:Commons link is the pagename]]',
inconsistent = '[[Category:Inconsistent wikidata for Commons gallery]]'
}
local categoryTrackingCats = {
commons_link_on_wikidata = '[[Category:Commons category link is on Wikidata]]',
commons_link_defined_as_pagename = '[[Category:Commons category link is defined as the pagename]]',
commons_link_locally_defined = '[[Category:Commons category link is locally defined]]',
commons_link_from_wikidata = '[[Category:Commons category link from Wikidata]]',
commons_link_is_pagename = '[[Category:Commons category link is the pagename]]',
inconsistent = '[[Category:Inconsistent wikidata for Commons category]]'
}
local function selectTrackingCat(trackingCats,wikidata,consistent,default,title)
if not consistent then
return trackingCats.inconsistent
end
if default then
-- construct warning message
if default == wikidata then
return trackingCats.commons_link_on_wikidata
end
local warning = ""
if wikidata then
warning = generateWarning({
"Commons link does not match Wikidata – [[Template:Commons_category#Resolving_discrepancies|please check]]"
})
end
if titleMatch(default,title) then
return trackingCats.commons_link_defined_as_pagename .. warning
end
return trackingCats.commons_link_locally_defined .. warning
end
if wikidata then
return trackingCats.commons_link_from_wikidata
end
return trackingCats.commons_link_is_pagename
end
-- Figure out tracking categories and editor warnings
-- Arguments:
-- default = Commons link argument passed to template
-- fetchGallery = whether to fetch a gallery from Wikidata
-- fetchCategory = whether to fetch a category from Wikidata
-- qid = force a qid for testing
-- Returns:
-- tracking category and possible user warning
--
-- Note: the logic for the tracking is quite different than the logic
-- for generating Commons links (above). Thus, it is separated into another
-- function for code clarity and maintainability. This should not seriously
-- affect performance: server time is dominated by fetching wikidata entities,
-- and those entities should be cached and shared between the Commons generating
-- code and this tracking code.
function p._tracking(default, fetchGallery, fetchCategory, qid)
local title, wp_ns, wp_qid = _getTitleQID(qid,true)
if wp_ns ~= "" then
title = wp_ns..":"..title
end
-- only track if test or namespace=article or namespace=category
if not (qid or wp_ns == "" or wp_ns == "Category") then
return ""
end
-- determine title and namespace of wikidata and wp article
local wikidata = nil
local consistent = nil
-- Tracking code works for all 4 cases of states of fetchGallery/Category
-- fetchGallery takes precedence
if fetchGallery then
wikidata, consistent = p._hasGalleryConsistent(qid)
if default or not fetchCategory or (consistent and wikidata) then
return selectTrackingCat(galleryTrackingCats,wikidata,consistent,
default,title)
end
end
if fetchCategory then
local cat_wikidata, cat_consistent = p._hasCategoryConsistent(qid,true)
if not fetchGallery or (cat_consistent and cat_wikidata) then
return selectTrackingCat(categoryTrackingCats,cat_wikidata,
cat_consistent,default,title)
end
return selectTrackingCat(galleryTrackingCats,wikidata,consistent,
default,title)
end
return "" -- nothing fetched, nothing tracked
end
local function _createFormatting(args)
local formatting = {}
formatting.linktext = args.linktext
formatting.lcfirst = yesNo(args.lcfirst)
formatting.bold = yesNo(args.bold)
formatting.italic = yesNo(args.italic)
formatting.nowrap = yesNo(args.nowrap)
return formatting
end
-- Testing-only entry point for _getTitleQID
function p.getTitleQID(frame)
local args = getArgs(frame,{frameOnly=true,parentOnly=false,parentFirst=false})
local text, ns, qid = _getTitleQID(args[1],args[2])
return text..","..ns..","..(qid or "nil")
end
-- Testing-only entry point for _lookupFallback
function p.lookupFallback(frame)
local args = getArgs(frame,{frameOnly=true,parentOnly=false,parentFirst=false})
local fallback = _lookupFallback(args[1],args[2])
return fallback or "nil"
end
-- Find the Commons gallery page associated with article
function p.getGallery(frame)
local args = getArgs(frame,{frameOnly=true,parentOnly=false,parentFirst=false})
return p._getCommons("",args[1],args.search,args.fallback,_createFormatting(args),args.qid)
end
-- Find the Commons category page associated with article
function p.getCategory(frame)
local args = getArgs(frame,{frameOnly=true,parentOnly=false,parentFirst=false})
local retval = p._getCommons("Category", args[1],
args.search, args.fallback, _createFormatting(args), args.qid
)
if args.tracking then
local default = nil
if args[1] then
default = "Category:"..args[1]
end
retval = retval..p._tracking(default, false, true, args.qid)
end
return retval
end
function p.getGalleryOrCategory(frame)
local args = getArgs(frame,{frameOnly=true,parentOnly=false,parentFirst=false})
local retval = p._getGalleryOrCategory(
args[1], args.search, args.fallback, _createFormatting(args), args.qid
)
if args.tracking then
retval = retval..p._tracking(args[1],true,true,args.qid)
end
return retval
end
function p.hasGallery(frame)
local args = getArgs(frame,{frameOnly=true,parentOnly=false,parentFirst=false})
return p._hasGallery(args.qid) or ""
end
function p.hasCategory(frame)
local args = getArgs(frame,{frameOnly=true,parentOnly=false,parentFirst=false})
return p._hasCategory(args.qid) or ""
end
function p.hasGalleryOrCategory(frame)
local args = getArgs(frame,{frameOnly=true,parentOnly=false,parentFirst=false})
return p._hasGallery(args.qid) or p._hasCategory(args.qid) or ""
end
function p.getGalleryAndCategory(frame)
local args = getArgs(frame,{frameOnly=true,parentOnly=false,parentFirst=false})
return p._getGalleryAndCategory(args[1], args[2],
args.categoryText, args.oneSearch, _createFormatting(args), args.qid)
end
function p.tracking(frame)
local args = getArgs(frame,{frameOnly=true,parentOnly=false,parentFirst=false})
return p._tracking(args[1], args.fetchGallery, args.fetchCategory, args.qid)
end
return p
tiwwt5d4q8wb5gx6nh70z4fiqb3bkp6
Module:Commons link/sandbox/testcases
828
2095
16023
2022-08-18T14:32:09Z
Kambai Akau
15
Created page with "local p = require('Module:UnitTests') function p:testGallery() -- known link self:preprocess_equals('{{#invoke:Commons link/sandbox| getGallery | Mount Whitney}}', '[[Commons:Mount Whitney|Mount Whitney]]') -- known link with linktext self:preprocess_equals('{{#invoke:Commons link/sandbox| getGallery | Mount Whitney |linktext=Big Mountain}}', '[[Commons:Mount Whitney|Big Mountain]]') -- forced search self:preprocess_equals('{{#invoke:Commons link/sandbox| getG..."
Scribunto
text/plain
local p = require('Module:UnitTests')
function p:testGallery()
-- known link
self:preprocess_equals('{{#invoke:Commons link/sandbox| getGallery | Mount Whitney}}',
'[[Commons:Mount Whitney|Mount Whitney]]')
-- known link with linktext
self:preprocess_equals('{{#invoke:Commons link/sandbox| getGallery | Mount Whitney |linktext=Big Mountain}}',
'[[Commons:Mount Whitney|Big Mountain]]')
-- forced search
self:preprocess_equals('{{#invoke:Commons link/sandbox| getGallery | search=Mount Whitney}}',
'[[Commons:Special:Search/Mount Whitney|Mount Whitney]]')
-- forced search + linktext
self:preprocess_equals('{{#invoke:Commons link/sandbox| getGallery | search=Mount Whitney |linktext=Big Mountain}}',
'[[Commons:Special:Search/Mount Whitney|Big Mountain]]')
-- P935 matches sitelink
self:preprocess_equals('{{#invoke:Commons link/sandbox| getGallery | qid=Q2217963}}',
'[[Commons:Samuel Baker House|Samuel Baker House]]')
-- P935 matches sitelink + linktext
self:preprocess_equals('{{#invoke:Commons link/sandbox| getGallery | qid=Q2217963 |linktext=Big House}}',
'[[Commons:Samuel Baker House|Big House]]')
-- sitelink only, lcfirst
self:preprocess_equals('{{#invoke:Commons link/sandbox| getGallery | qid=Q816044 | lcfirst=1}}',
'[[Commons:Bellows Falls, Vermont|bellows Falls, Vermont]]')
-- sitelink only, bold
self:preprocess_equals('{{#invoke:Commons link/sandbox| getGallery | qid=Q816044 | bold=1}}',
'[[Commons:Bellows Falls, Vermont|<span style="font-weight:bold;">Bellows Falls, Vermont</span>]]')
-- sitelink only, italic
self:preprocess_equals('{{#invoke:Commons link/sandbox| getGallery | qid=Q816044 | italic=1}}',
'[[Commons:Bellows Falls, Vermont|<span style="font-style:italic;">Bellows Falls, Vermont</span>]]')
-- sitelink only, nowrap
self:preprocess_equals('{{#invoke:Commons link/sandbox| getGallery | qid=Q816044 | nowrap=1}}',
'[[Commons:Bellows Falls, Vermont|<span style="white-space:nowrap;">Bellows Falls, Vermont</span>]]')
-- sitelink + linktext
self:preprocess_equals('{{#invoke:Commons link/sandbox| getGallery | qid=Q816044|linktext=Little Town}}',
'[[Commons:Bellows Falls, Vermont|Little Town]]')
-- sitelink and P935 inconsistent
self:preprocess_equals('{{#invoke:Commons link/sandbox| getGallery | qid=Q139289}}',
'[[Commons:Special:Search/Boeing 737 MAX|Boeing 737 MAX]]')
-- sitelink and P935 inconsistent + linktext
self:preprocess_equals('{{#invoke:Commons link/sandbox| getGallery | qid=Q139289|linktext=Not a plane}}',
'[[Commons:Special:Search/Boeing 737 MAX|Not a plane]]')
-- no sitelink or P935
self:preprocess_equals('{{#invoke:Commons link/sandbox| getGallery | qid=Q29017978}}',
'[[Commons:Special:Search/Bell FCX-001|Bell FCX-001]]')
-- no sitelink or P935, but linktext
self:preprocess_equals('{{#invoke:Commons link/sandbox| getGallery | qid=Q29017978|linktext=Medium Helicopter}}',
'[[Commons:Special:Search/Bell FCX-001|Medium Helicopter]]')
end
function p:testCategory()
-- known link
self:preprocess_equals('{{#invoke:Commons link/sandbox| getCategory | Mount Whitney}}',
'[[Commons:Category:Mount Whitney|Mount Whitney]]')
-- known link with linktext
self:preprocess_equals('{{#invoke:Commons link/sandbox| getCategory | Mount Whitney |linktext=Big Mountain}}',
'[[Commons:Category:Mount Whitney|Big Mountain]]')
-- forced search
self:preprocess_equals('{{#invoke:Commons link/sandbox| getCategory | search=Mount Whitney}}',
'[[Commons:Special:Search/Category:Mount Whitney|Mount Whitney]]')
-- forced search + linktext
self:preprocess_equals('{{#invoke:Commons link/sandbox| getCategory | search=Mount Whitney |linktext=Big Mountain}}',
'[[Commons:Special:Search/Category:Mount Whitney|Big Mountain]]')
-- P373 matches sitelink + lcfirst
self:preprocess_equals('{{#invoke:Commons link/sandbox| getCategory | qid=Q2601154|lcfirst=1}}',
'[[Commons:Category:Agama lionotus|agama lionotus]]')
-- bold
self:preprocess_equals('{{#invoke:Commons link/sandbox| getCategory | qid=Q2601154|bold=1}}',
'[[Commons:Category:Agama lionotus|<span style="font-weight:bold;">Agama lionotus</span>]]')
-- italic
self:preprocess_equals('{{#invoke:Commons link/sandbox| getCategory | qid=Q2601154|italic=1}}',
'[[Commons:Category:Agama lionotus|<span style="font-style:italic;">Agama lionotus</span>]]')
-- nowrap
self:preprocess_equals('{{#invoke:Commons link/sandbox| getCategory | qid=Q2601154|nowrap=1}}',
'[[Commons:Category:Agama lionotus|<span style="white-space:nowrap;">Agama lionotus</span>]]')
-- P373 matches sitelink + linktext
self:preprocess_equals('{{#invoke:Commons link/sandbox| getCategory | qid=Q2601154|linktext=Small Lizard|lcfirst=1}}',
'[[Commons:Category:Agama lionotus|small Lizard]]')
-- P910 matches P373
self:preprocess_equals('{{#invoke:Commons link/sandbox| getCategory | qid=Q853037}}',
'[[Commons:Category:Bánhida|Bánhida]]')
-- P910 matches P373 + linktext
self:preprocess_equals('{{#invoke:Commons link/sandbox| getCategory | qid=Q853037|linktext=Old Neighborhood}}',
'[[Commons:Category:Bánhida|Old Neighborhood]]')
-- P1754 matches P373
self:preprocess_equals('{{#invoke:Commons link/sandbox| getCategory | qid=Q2551907}}',
'[[Commons:Category:Lakes of Turkey|Lakes of Turkey]]')
-- P1754 matches P373 + linktext
self:preprocess_equals('{{#invoke:Commons link/sandbox| getCategory | qid=Q2551907|linktext=Turkey Lakes}}',
'[[Commons:Category:Lakes of Turkey|Turkey Lakes]]')
-- inconsistency between P373 and P1754
self:preprocess_equals('{{#invoke:Commons link/sandbox| getCategory | qid=Q1002229}}',
'[[Commons:Category:Municipality of Vipava|Municipality of Vipava]]')
-- test fallback
self:preprocess_equals('{{#invoke:Commons link/sandbox| getCategory | qid=Q21032720 |fallback=Boing}}',
'[[Commons:Special:Search/Category:Boing|Boing]]')
-- inconsistency between P373 and P1754 + linktext
self:preprocess_equals('{{#invoke:Commons link/sandbox| getCategory | qid=Q1002229|linktext=Little Town}}',
'[[Commons:Category:Municipality of Vipava|Little Town]]')
-- missing data
self:preprocess_equals('{{#invoke:Commons link/sandbox| getCategory | qid=Q2963317}}',
'[[Commons:Special:Search/Category:Chicago Lawn, Chicago|Chicago Lawn, Chicago]]')
-- missing data + linktext
self:preprocess_equals('{{#invoke:Commons link/sandbox| getCategory | qid=Q2963317|linktext=Big Neighborhood}}',
'[[Commons:Special:Search/Category:Chicago Lawn, Chicago|Big Neighborhood]]')
end
function p:testGalleryOrCategory()
-- known link
self:preprocess_equals('{{#invoke:Commons link/sandbox| getGalleryOrCategory | Mount Whitney}}',
'[[Commons:Mount Whitney|Mount Whitney]]')
-- known link with linktext
self:preprocess_equals('{{#invoke:Commons link/sandbox| getGalleryOrCategory | Mount Whitney |linktext=Big Mountain}}',
'[[Commons:Mount Whitney|Big Mountain]]')
-- forced search
self:preprocess_equals('{{#invoke:Commons link/sandbox| getGalleryOrCategory | search=Mount Whitney}}',
'[[Commons:Special:Search/Mount Whitney|Mount Whitney]]')
-- forced search + linktext
self:preprocess_equals('{{#invoke:Commons link/sandbox| getGalleryOrCategory | search=Mount Whitney |linktext=Big Mountain}}',
'[[Commons:Special:Search/Mount Whitney|Big Mountain]]')
-- P935 matches sitelink
self:preprocess_equals('{{#invoke:Commons link/sandbox| getGalleryOrCategory | qid=Q2217963}}',
'[[Commons:Samuel Baker House|Samuel Baker House]]')
-- sitelink only
self:preprocess_equals('{{#invoke:Commons link/sandbox| getGalleryOrCategory | qid=Q816044}}',
'[[Commons:Bellows Falls, Vermont|Bellows Falls, Vermont]]')
-- inconsistent data, fall back to search
self:preprocess_equals('{{#invoke:Commons link/sandbox| getGalleryOrCategory | qid=Q21032720}}',
'[[Commons:Special:Search/Russian military intervention in the Syrian civil war|Russian military intervention in the Syrian civil war]]')
-- P373 matches sitelink
self:preprocess_equals('{{#invoke:Commons link/sandbox| getGalleryOrCategory | qid=Q2601154}}',
'[[Commons:Category:Agama lionotus|Agama lionotus]]')
-- P910 matches P373
self:preprocess_equals('{{#invoke:Commons link/sandbox| getGalleryOrCategory | qid=Q853037}}',
'[[Commons:Category:Bánhida|Bánhida]]')
-- P1754 matches P373
self:preprocess_equals('{{#invoke:Commons link/sandbox| getGalleryOrCategory | qid=Q2551907}}',
'[[Commons:Category:Lakes of Turkey|Lakes of Turkey]]')
-- missing gallery, inconsistent category
self:preprocess_equals('{{#invoke:Commons link/sandbox| getGalleryOrCategory | qid=Q1002229}}',
'[[Commons:Category:Municipality of Vipava|Municipality of Vipava]]')
-- test fallback
self:preprocess_equals('{{#invoke:Commons link/sandbox| getGalleryOrCategory | fallback=Boing | qid=Q21032720}}',
'[[Commons:Special:Search/Boing|Boing]]')
-- missing data
self:preprocess_equals('{{#invoke:Commons link/sandbox| getGalleryOrCategory | qid=Q2963317}}',
'[[Commons:Special:Search/Chicago Lawn, Chicago|Chicago Lawn, Chicago]]')
end
function p:testHasGallery()
-- P935 matches sitelink
self:preprocess_equals('{{#invoke:Commons link/sandbox| hasGallery | qid=Q2217963}}','Samuel Baker House')
-- sitelink only
self:preprocess_equals('{{#invoke:Commons link/sandbox| hasGallery | qid=Q816044}}','Bellows Falls, Vermont')
-- sitelink and P935 inconsistent
self:preprocess_equals('{{#invoke:Commons link/sandbox| hasGallery | qid=Q139289}}','')
-- no sitelink or P935 or category
self:preprocess_equals('{{#invoke:Commons link/sandbox| hasGallery | qid=Q29017978}}','')
-- P373 matches sitelink
self:preprocess_equals('{{#invoke:Commons link/sandbox| hasGallery | qid=Q2601154}}','')
-- P910 matches P373
self:preprocess_equals('{{#invoke:Commons link/sandbox| hasGallery | qid=Q853037}}','')
-- P1754 matches P373
self:preprocess_equals('{{#invoke:Commons link/sandbox| hasGallery | qid=Q2551907}}','')
-- missing gallery, inconsistent category
self:preprocess_equals('{{#invoke:Commons link/sandbox| hasGallery | qid=Q1002229}}','')
-- missing data
self:preprocess_equals('{{#invoke:Commons link/sandbox| hasGallery | qid=Q2963317}}','')
end
function p:testHasCategory()
-- P935 matches sitelink
self:preprocess_equals('{{#invoke:Commons link/sandbox| hasCategory | qid=Q2217963}}','')
-- sitelink only
self:preprocess_equals('{{#invoke:Commons link/sandbox| hasCategory | qid=Q816044}}','Category:Bellows Falls, Vermont')
-- sitelink and P935 inconsistent, fallback to Category instead
self:preprocess_equals('{{#invoke:Commons link/sandbox| hasCategory | qid=Q139289}}','Category:Boeing 737 MAX')
-- P373 matches sitelink
self:preprocess_equals('{{#invoke:Commons link/sandbox| hasCategory | qid=Q2601154}}','Category:Agama lionotus')
-- P910 matches P373
self:preprocess_equals('{{#invoke:Commons link/sandbox| hasCategory | qid=Q853037}}','Category:Bánhida')
-- P1754 matches P373
self:preprocess_equals('{{#invoke:Commons link/sandbox| hasCategory | qid=Q2551907}}','Category:Lakes of Turkey')
-- missing gallery, inconsistent category
self:preprocess_equals('{{#invoke:Commons link/sandbox| hasCategory | qid=Q1002229}}','Category:Municipality of Vipava')
-- missing data
self:preprocess_equals('{{#invoke:Commons link/sandbox| hasCategory | qid=Q2963317}}','')
end
function p:testHasGalleryOrCategory()
-- P935 matches sitelink
self:preprocess_equals('{{#invoke:Commons link/sandbox| hasGalleryOrCategory | qid=Q2217963}}','Samuel Baker House')
-- sitelink only
self:preprocess_equals('{{#invoke:Commons link/sandbox| hasGalleryOrCategory | qid=Q816044}}','Bellows Falls, Vermont')
-- sitelink and P935 inconsistent
self:preprocess_equals('{{#invoke:Commons link/sandbox| hasGalleryOrCategory | qid=Q139289}}','Category:Boeing 737 MAX')
-- P373 matches sitelink
self:preprocess_equals('{{#invoke:Commons link/sandbox| hasGalleryOrCategory | qid=Q2601154}}','Category:Agama lionotus')
-- P910 matches P373
self:preprocess_equals('{{#invoke:Commons link/sandbox| hasGalleryOrCategory | qid=Q853037}}','Category:Bánhida')
-- P1754 matches P373
self:preprocess_equals('{{#invoke:Commons link/sandbox| hasGalleryOrCategory | qid=Q2551907}}','Category:Lakes of Turkey')
-- missing gallery
self:preprocess_equals('{{#invoke:Commons link/sandbox| hasGalleryOrCategory | qid=Q1002229}}','Category:Municipality of Vipava')
-- missing data
self:preprocess_equals('{{#invoke:Commons link/sandbox| hasGalleryOrCategory | qid=Q2963317}}','')
-- another test
self:preprocess_equals('{{#invoke:Commons link/sandbox| hasGalleryOrCategory | qid=Q185676}}','Category:Fado')
-- inconsistent results, P373 should not be invoked here
self:preprocess_equals('{{#invoke:Commons link/sandbox| hasGalleryOrCategory | qid=Q477248}}','')
end
function p:testGalleryAndCategory()
-- known link
self:preprocess_equals('{{#invoke:Commons link/sandbox| getGalleryAndCategory | Mount Whitney}}',
'[[Commons:Mount Whitney|Mount Whitney]]')
-- known link with linktext
self:preprocess_equals('{{#invoke:Commons link/sandbox| getGalleryAndCategory | Mount Whitney |linktext=Big Mountain | italic=1}}',
'[[Commons:Mount Whitney|<span style="font-style:italic;">Big Mountain</span>]]')
-- known category
self:preprocess_equals('{{#invoke:Commons link/sandbox| getGalleryAndCategory | | Mount Whitney | bold=1}}',
'[[Commons:Category:Mount Whitney|<span style="font-weight:bold;">Mount Whitney</span>]]')
-- known category with categorytext
self:preprocess_equals('{{#invoke:Commons link/sandbox| getGalleryAndCategory | | Mount Whitney |linktext=Big Mountain|bold=1|italic=1}}',
'[[Commons:Category:Mount Whitney|<span style="font-style:italic; font-weight:bold;">Big Mountain</span>]]')
-- known link and category
self:preprocess_equals('{{#invoke:Commons link/sandbox| getGalleryAndCategory | Mount Whitney | Mount Whitney}}',
'[[Commons:Mount Whitney|Mount Whitney]] ([[Commons:Category:Mount Whitney|category]])')
-- known link and category with linktext
self:preprocess_equals('{{#invoke:Commons link/sandbox| getGalleryAndCategory | Mount Whitney | Mount Whitney | linktext=Big Mountain|bold=1|italic=1}}',
'[[Commons:Mount Whitney|<span style="font-style:italic; font-weight:bold;">Big Mountain</span>]] ([[Commons:Category:Mount Whitney|category]])')
-- only gallery exists
self:preprocess_equals('{{#invoke:Commons link/sandbox| getGalleryAndCategory | qid=Q2217963|italic=1}}',
'[[Commons:Samuel Baker House|<span style="font-style:italic;">Samuel Baker House</span>]]')
-- both gallery and category exist
self:preprocess_equals('{{#invoke:Commons link/sandbox| getGalleryAndCategory | qid=Q816044|bold=1|categoryText=cat}}',
'[[Commons:Bellows Falls, Vermont|<span style="font-weight:bold;">Bellows Falls, Vermont</span>]] ([[Commons:Category:Bellows Falls, Vermont|cat]])')
-- P373 matches sitelink, category only
self:preprocess_equals('{{#invoke:Commons link/sandbox| getGalleryAndCategory | qid=Q2601154|bold=1}}',
'[[Commons:Category:Agama lionotus|<span style="font-weight:bold;">Agama lionotus</span>]]')
-- P910 matches P373, category only
self:preprocess_equals('{{#invoke:Commons link/sandbox| getGalleryAndCategory | qid=Q853037|italic=1|bold=1}}',
'[[Commons:Category:Bánhida|<span style="font-style:italic; font-weight:bold;">Bánhida</span>]]')
-- P1754 matches P373, category only
self:preprocess_equals('{{#invoke:Commons link/sandbox| getGalleryAndCategory | qid=Q2551907}}',
'[[Commons:Category:Lakes of Turkey|Lakes of Turkey]]')
-- missing data
self:preprocess_equals('{{#invoke:Commons link/sandbox| getGalleryAndCategory | qid=Q2963317|bold=1|linktext=Chicago Lawn|oneSearch=1}}',
'[[Commons:Special:Search/Chicago Lawn, Chicago|<span style="font-weight:bold;">Chicago Lawn</span>]]')
end
function p:testTitleQID()
self:preprocess_equals('{{#invoke:Commons link/sandbox| getTitleQID }}','Commons link/sandbox/testcases,Module talk,nil')
self:preprocess_equals('{{#invoke:Commons link/sandbox| getTitleQID | Q42 | 1}}','Douglas Adams,,Q42')
self:preprocess_equals('{{#invoke:Commons link/sandbox| getTitleQID | Q15048757 | 1}}','Python (genus),Category,Q15048757')
-- no page corresponding to QID
self:preprocess_equals('{{#invoke:Commons link/sandbox| getTitleQID | Q0}}',',Module talk,Q0')
-- QID doesn't link back to en
self:preprocess_equals('{{#invoke:Commons link/sandbox| getTitleQID | Q68979196 | 1}}',',,Q68979196')
-- gibberish QID
self:preprocess_equals('{{#invoke:Commons link/sandbox| getTitleQID | 1234}}','Commons link/sandbox/testcases,Module talk,nil')
end
function p:testLookupFallback()
-- P910 doesn't exist
self:preprocess_equals('{{#invoke:Commons link/sandbox| lookupFallback | Q2217963 | P910}}','nil')
-- normal P910
self:preprocess_equals('{{#invoke:Commons link/sandbox| lookupFallback | Q853037 | P910}}','Bánhida')
-- normal P1754
self:preprocess_equals('{{#invoke:Commons link/sandbox| lookupFallback | Q2551907 | P1754}}','Lakes of Turkey')
-- gibberish prop string
self:preprocess_equals('{{#invoke:Commons link/sandbox| lookupFallback | Q2551907 | xyzzy}}','nil')
end
function p:testTracking()
local galPrefix = '[[Category:Commons link '
local catPrefix = '[[Category:Commons category link '
local onWikidata = 'is on Wikidata]]'
local definedAsPagename = 'is defined as the pagename]]'
local locallyDefined = 'is locally defined]]'
local fromWikidata = 'from Wikidata]]'
local isPagename = 'is the pagename]]'
local galInconsistent = '[[Category:Inconsistent wikidata for Commons gallery]]'
local catInconsistent = '[[Category:Inconsistent wikidata for Commons category]]'
-- default gallery is specified and is Commons gallery on wikidata
self:preprocess_equals('{{#invoke:Commons link/sandbox| tracking | Samuel Baker House | fetchGallery = 1 | fetchCategory = 1 | qid=Q2217963}}',
galPrefix..onWikidata,{nowiki=1})
-- default gallery is specified and is Commons category on wikidata
self:preprocess_equals('{{#invoke:Commons link/sandbox| tracking | Fado | fetchGallery=1 | fetchCategory=1 | qid=Q185676}}',
galPrefix..definedAsPagename,{nowiki=1})
-- default category is specified and is Commons category on wikidata
self:preprocess_equals('{{#invoke:Commons link/sandbox| tracking | Category:Fado | fetchCategory=1 | qid=Q8442543}}',
catPrefix..onWikidata,{nowiki=1})
-- inconsistent wikidata returns nil, so doesn't match title. Called from Template:Commons
self:preprocess_equals('{{#invoke:Commons link/sandbox| tracking | Municipality of Vipava | fetchGallery=1 | fetchCategory=1 | qid=Q1002229}}',
galPrefix..definedAsPagename,{nowiki=1})
-- Default string is not the same as either title or wikidata. Called from Template:Commons
self:preprocess_equals('{{#invoke:Commons link/sandbox| tracking | Bellows Falls | fetchGallery = 1 | fetchCategory=1 | qid=Q816044}}',
galPrefix..locallyDefined,{nowiki=1})
-- Default string is not the same as either title or wikidata. Called from Template:Commonscat
self:preprocess_equals('{{#invoke:Commons link/sandbox| tracking | Category:Bellows Falls | fetchCategory=1 | qid=Q816044}}',
catPrefix..locallyDefined,{nowiki=1})
-- No string. Commons gallery on Wikidata
self:preprocess_equals('{{#invoke:Commons link/sandbox| tracking || fetchGallery=1 | fetchCategory=1 | qid=Q235539}}',
galPrefix..fromWikidata,{nowiki=1})
-- No string. Commons category on Wikidata
self:preprocess_equals('{{#invoke:Commons link/sandbox| tracking || fetchCategory=1 | qid=Q121319}}',
catPrefix..fromWikidata,{nowiki=1})
-- No string. Nothing on Wikidata. Called from Template:Commons
self:preprocess_equals('{{#invoke:Commons link/sandbox| tracking | fetchGallery=1| fetchCategory=1 | qid=Q2963317}}',
galPrefix..isPagename,{nowiki=1})
-- No string. Nothing on Wikidata. Called from Template:CommonsCat
self:preprocess_equals('{{#invoke:Commons link/sandbox| tracking || fetchCategory=1 | qid=Q2963317}}',
catPrefix..isPagename,{nowiki=1})
-- Inconsistent wikidata for category
self:preprocess_equals('{{#invoke:Commons link/sandbox| tracking |fetchCategory=1|qid=Q21032720}}',
catInconsistent,{nowiki=1})
end
return p
meyntq56orpj9xjpapt705n5m28imm2
Ta̱mpi̱let:Sister project auto
10
2096
16035
2022-08-18T19:12:47Z
Kambai Akau
15
Created page with "{{#invoke:Template wrapper|wrap|_template=Sister project links|auto=1}}<noinclude> {{Documentation|Template:A̱ka̱fwuop nta̱m a̱meang jhyang/doc}} </noinclude>"
wikitext
text/x-wiki
{{#invoke:Template wrapper|wrap|_template=Sister project links|auto=1}}<noinclude>
{{Documentation|Template:A̱ka̱fwuop nta̱m a̱meang jhyang/doc}}
</noinclude>
hr8855kj2df6c6wu8nld83qoi9l078n
Ta̱mpi̱let:Sister project auto/sandbox
10
2097
16037
2022-08-18T19:15:51Z
Kambai Akau
15
Created page with "<div role="navigation" aria-labelledby="sister-projects" class="metadata plainlinks sistersitebox plainlist mbox-small{{#ifeq:{{lc:{{{position|}}}}}|left|-left}} {{#if:{{{collapsible|}}}|mw-collapsible {{#ifeq:{{{collapsible|}}}|collapsed |mw-collapsed}}}}" style="border:1px solid #aaa; padding:0; background:#f9f9f9; {{{style|}}}"><!-- --><div style="{{#if:{{{collapsible|}}}|clear: both;}} padding: 0.75em 0; text-align: center;"><!-- --><b style="display:block;">{{..."
wikitext
text/x-wiki
<div role="navigation" aria-labelledby="sister-projects" class="metadata plainlinks sistersitebox plainlist mbox-small{{#ifeq:{{lc:{{{position|}}}}}|left|-left}} {{#if:{{{collapsible|}}}|mw-collapsible {{#ifeq:{{{collapsible|}}}|collapsed |mw-collapsed}}}}" style="border:1px solid #aaa; padding:0; background:#f9f9f9; {{{style|}}}"><!--
--><div style="{{#if:{{{collapsible|}}}|clear: both;}} padding: 0.75em 0; text-align: center;"><!--
--><b style="display:block;">{{{display|{{{1|{{PAGENAME}}}}}}}}</b><!--
-->at Wikipedia's [[Wikipedia:Wikimedia sister projects|<span id="sister-projects">sister projects</span>]]<!--
--></div><!--
--><ul {{#if:{{{collapsible|}}}|class="mw-collapsible-content"}} style="border-top:1px solid #aaa; padding: 0.75em 0; width:217px; margin:0 auto;"><!--
WIKTIONARY
-->{{#if:{{{wikt|}}}{{#invoke:WikidataIB|getSiteLink|enwiktionary|qid={{{qid|}}}}}|<!--
-->{{Sister project links/One sister|{{{wikt|}}}|default=yes|logo=Wiktionary-logo-v2.svg|sister-prefix=wikt|sister-dbname=enwiktionary<!--
-->|qid={{{qid|}}}|search=Search/{{{1|{{PAGENAME}}}}}|information=Definitions|sister-name=Wiktionary}}}}<!--
COMMONS
-->{{#if:{{{c|}}}{{{commons|}}}{{#invoke:Commons link|{{#ifeq:{{yesno-no|{{{commonscat|}}}}}|yes|hasCategory|hasGalleryOrCategory}}|qid={{{qid|}}}}}|<!--
-->{{Sister project links/One sister|{{{c|{{{commons|}}}}}}|default=yes|logo=Commons-logo.svg|sister-name=Wikimedia Commons<!--
-->|link={{#invoke:Commons link|{{#ifeq:{{yesno-no|{{{commonscat|}}}}}|yes|getCategory|getGalleryOrCategory}}|<!--
-->{{yesno|{{{c|{{{commons|}}}}}}|yes=|def={{{c|{{{commons|}}}}}}}}<!--
-->|fallback={{{1|}}}|linktext=Media|qid={{{qid|}}}}}}}}}<!--
WIKINEWS
-->{{#if:{{{n|}}}{{#invoke:WikidataIB|getSiteLink|enwikinews|qid={{{qid|}}}}}|<!--
-->{{Sister project links/One sister|{{{n|}}}|default=yes|logo=Wikinews-logo.svg|sister-prefix=n|sister-dbname=enwikinews<!--
-->|qid={{{qid|}}}|search=Search/{{{1|{{PAGENAME}}}}}|information=News|sister-name=Wikinews}}}}<!--
WIKIQUOTE
-->{{#if:{{{q|}}}{{#invoke:WikidataIB|getSiteLink|enwikiquote|qid={{{qid|}}}}}|<!--
-->{{Sister project links/One sister|{{{q|}}}|default=yes|logo=Wikiquote-logo.svg|sister-prefix=q|sister-dbname=enwikiquote<!--
-->|qid={{{qid|}}}|search=Search/{{{1|{{PAGENAME}}}}}|information=Quotations|sister-name=Wikiquote}}}}<!--
WIKISOURCE
-->{{#if:{{{s|}}}{{#invoke:WikidataIB|getSiteLink|enwikisource|qid={{{qid|}}}}}|<!--
-->{{Sister project links/One sister|{{{s|}}}|default=yes|logo=Wikisource-logo.svg|sister-prefix=s|sister-dbname=enwikisource<!--
-->|qid={{{qid|}}}|search=Search/{{#ifeq:{{yesno-no|{{{author|}}}}}|yes|Author:}}{{{1|{{PAGENAME}}}}}|information=Texts|sister-name=Wikisource}}}}<!--
WIKIBOOKS
-->{{#if:{{{b|}}}{{#invoke:WikidataIB|getSiteLink|enwikibooks|qid={{{qid|}}}}}|<!--
-->{{Sister project links/One sister|{{{b|}}}|default=yes|logo=Wikibooks-logo.svg|sister-prefix=b|sister-dbname=enwikibooks<!--
-->|qid={{{qid|}}}|search=Search/{{{1|{{PAGENAME}}}}}|information=Textbooks|sister-name=Wikibooks}}}}<!--
WIKIVOYAGE
-->{{#if:{{{voy|}}}{{#invoke:WikidataIB|getSiteLink|enwikivoyage|qid={{{qid|}}}}}|<!--
-->{{Sister project links/One sister|{{{voy|}}}|default=yes|logo=Wikivoyage-Logo-v3-icon.svg|sister-prefix=voy|sister-dbname=enwikivoyage<!--
-->|qid={{{qid|}}}|search=Search/{{{1|{{PAGENAME}}}}}|information=Travel {{#if: {{{voy|}}}| guide| information}}|sister-name=Wikivoyage}}}}<!--
WIKIVERSITY
-->{{#if:{{{v|}}}{{#invoke:WikidataIB|getSiteLink|enwikiversity|qid={{{qid|}}}}}|<!--
-->{{Sister project links/One sister|{{{v|}}}|default=yes|logo=Wikiversity logo 2017.svg|sister-prefix=v|sister-dbname=enwikiversity<!--
-->|qid={{{qid|}}}|search=Search/{{{1|{{PAGENAME}}}}}|information=Resources|sister-name=Wikiversity}}}}<!--
WIKIDATA
-->{{Sister project links/One sister|{{{d|}}}|default=no|logo=Wikidata-logo.svg|sister-prefix=d|qid={{{qid|}}}<!--
-->|search=ItemByTitle/enwiki/{{{1|{{PAGENAME}}}}}|information=Data|sister-name=Wikidata}}<!--
WIKISPECIES
-->{{#if:{{{species|}}}{{#invoke:WikidataIB|getSiteLink|specieswiki|qid={{{qid|}}}}}|<!--
-->{{Sister project links/One sister|{{{species|}}}|default=yes|logo=Wikispecies-logo.svg|sister-prefix=species|sister-dbname=specieswiki<!--
-->|qid={{{qid|}}}|search=Search/{{{1|{{PAGENAME}}}}}|information=Taxonomy|sister-name=Wikispecies}}|<!--
-->{{Sister project links/One sister|{{{species_author|}}}|default=no|logo=Wikispecies-logo.svg|sister-prefix=species<!--
-->|qid={{{qid|}}}|search=Search/{{{1|{{PAGENAME}}}}}|information=Species uthor|sister-name=Wikispecies}}}}<!--
META
-->{{Sister project links/One sister|{{{m|}}}|default=no|logo=Wikimedia Community Logo.svg|sister-prefix=m|qid={{{qid|}}}<!--
-->|search=Search/{{{1|{{PAGENAME}}}}}|information=Discussion|sister-name=Meta-Wiki}}<!--
MEDIAWIKI
-->{{Sister project links/One sister|{{{mw|}}}|default=no|logo=MediaWiki-logo.svg|sister-prefix=mw|qid={{{qid|}}}<!--
-->|search=Search/{{{1|{{PAGENAME}}}}}|information=Documentation|sister-name=MediaWiki}}<!--
--></ul>
</div><noinclude>
{{Documentation}}
</noinclude>
4put8idjghq6nz6ylg81rz026qr3ca3
Ta̱mpi̱let:Sister project auto/testcases
10
2098
16038
2022-08-18T19:19:24Z
Kambai Akau
15
Created page with "{{Testcases notice <!--|toc=on-->}} {{Test case|_collapsible=yes|_showcode=yes|_title=plain Alabama|Alabama|qid=Q173}} {{Test case|_collapsible=yes|_showcode=yes|_title=full Alabama|Alabama|qid=Q173|s=Portal:Alabama|b=y|v=y}} {{Test case|_collapsible=yes|_showcode=yes|_title=plain Abraham Lincoln|Abraham Lincoln|qid=Q91}} {{Test case|_collapsible=yes|_showcode=yes|_title=full Abraham Lincoln|Abraham Lincoln|qid=Q91|author=y|d=y}} {{Test case|_collapsible=yes|_showco..."
wikitext
text/x-wiki
{{Testcases notice <!--|toc=on-->}}
{{Test case|_collapsible=yes|_showcode=yes|_title=plain Alabama|Alabama|qid=Q173}}
{{Test case|_collapsible=yes|_showcode=yes|_title=full Alabama|Alabama|qid=Q173|s=Portal:Alabama|b=y|v=y}}
{{Test case|_collapsible=yes|_showcode=yes|_title=plain Abraham Lincoln|Abraham Lincoln|qid=Q91}}
{{Test case|_collapsible=yes|_showcode=yes|_title=full Abraham Lincoln|Abraham Lincoln|qid=Q91|author=y|d=y}}
{{Test case|_collapsible=yes|_showcode=yes|_title=Polar bear|Polar bear|qid=Q33609}}
8e4q1hm2h8ofrby4dchr07utrbtahjg
Module:Protect
828
2099
16039
2022-08-18T19:21:33Z
Kambai Akau
15
Created page with "local function processResult(options, success, ...) if not success then local message = tostring(... or '(no message)') if options.removeLocation then message = string.gsub(message, '^Module:[^:]+:%d+: ', '', 1) end return string.format(options.errFormat, message) end return ... end local function protect(func, errFormat, options) if type(errFormat) == 'table' then options = options or errFormat errFormat = nil end options = mw.clone(options) or {}..."
Scribunto
text/plain
local function processResult(options, success, ...)
if not success then
local message = tostring(... or '(no message)')
if options.removeLocation then
message = string.gsub(message, '^Module:[^:]+:%d+: ', '', 1)
end
return string.format(options.errFormat, message)
end
return ...
end
local function protect(func, errFormat, options)
if type(errFormat) == 'table' then
options = options or errFormat
errFormat = nil
end
options = mw.clone(options) or {}
options.errFormat = errFormat or options.errFormat or 'Error: %s'
if not options.raw then
options.errFormat = '<strong class="error">' .. options.errFormat .. '</strong>'
end
options.removeLocation = options.removeLocation == nil or options.removeLocation
return function (...)
return processResult(options, pcall(func, ...))
end
end
return protect
lpwbveqfkihxx5w7otzmx6xlb5y323h
Module:Protect/doc
828
2100
16042
16040
2022-08-18T19:24:10Z
Kambai Akau
15
wikitext
text/x-wiki
{{Module rating|protected}}
{{used in system}}
This [[Help:Lua metamodules|metamodule]] simplifies error handling in other modules. It transforms a function, which may throw an error, into a function, which returns a specified error message in that case.
== Usage ==
<syntaxhighlight lang="lua">
local protect = require('Module:Protect')
local protectedFunc = protect(func, errFormat, options)
</syntaxhighlight>
=== Arguments ===
* ''{{code|func}}''
*: Function to be transformed.
* ''{{code|errFormat}}'' (default: {{code|'Error: %s'}})
*: Custom error message.
*: Use {{code|'%s'}} to include the message from a caught error.
* ''{{code|options}}'' – optional table with the following fields:
** {{code|raw}} (default: false)
**: If true, then ''{{code|errFormat}}'' will be used as is, otherwise it will be wrapped inside a tag <code><nowiki><strong class="error"></nowiki></code>.
** {{code|removeLocation}} (default: true)
**: If true, removes location information from caught error messages.
=== Return value ===
The resulting {{code|protectedFunc}} is a ''function'', which calls the original function ''{{code|func}}'', passing all arguments to it, and returns all its return values. If ''{{code|func}}'' throws an error, the specified error message is returned instead.
== Example ==
<syntaxhighlight lang="lua">
local protect = require('Module:Protect')
local p = {}
function p.main(frame)
if not frame.args[1] then
error('missing argument')
end
return frame.args[1]
end
p.main = protect(p.main)
return p
</syntaxhighlight>
Invoking the main function without arguments will output: <strong class="error">Error: missing argument</strong>
<includeonly>{{#ifeq:{{SUBPAGENAME}}|sandbox | |
[[Category:Error-handling modules]]
}}</includeonly>
7v1cze2hju29fx057aa8b0ta0oiecvt
Module:Protect/testcases
828
2101
16041
2022-08-18T19:22:45Z
Kambai Akau
15
Created page with "local p = require('Module:UnitTests') local protect = require('Module:Protect') local o = {} function o.f1(a) if not a then error('missing argument') end return a end function o:f2(a) if not a then error('missing argument') end return a end function p:test_protect() self:equals( 'Keep location', protect(error, {removeLocation = false})('foo', 3), self.frame:preprocess('{{Error|Error: Module:Protect/testcases:22: foo}}')..."
Scribunto
text/plain
local p = require('Module:UnitTests')
local protect = require('Module:Protect')
local o = {}
function o.f1(a)
if not a then
error('missing argument')
end
return a
end
function o:f2(a)
if not a then
error('missing argument')
end
return a
end
function p:test_protect()
self:equals(
'Keep location',
protect(error, {removeLocation = false})('foo', 3),
self.frame:preprocess('{{Error|Error: Module:Protect/testcases:22: foo}}')
)
self:equals(
'.',
protect(o.f1)('Foo'),
'Foo'
)
self:equals(
'.',
protect(o.f1)(o, 'Foo'),
o
)
self:equals(
':',
protect(o.f2)('Foo'),
self.frame:preprocess('{{Error|Error: missing argument}}')
)
self:equals(
':',
protect(o.f2)(o, 'Foo'),
'Foo'
)
protect(o.f2)
protect(o.f2)
local a = o.f2
local b = o.f2
self:equals(
'Success',
protect(mw.clone)('Foo'),
'Foo'
)
self:equals(
'Default error',
protect(error)('foo'),
self.frame:preprocess('{{Error|Error: foo}}')
)
self:equals(
'No caught message',
protect(error)(),
self.frame:preprocess('{{Error|Error: (no message)}}')
)
self:equals(
'Custom errFormat',
protect(error, 'Failure (%s)')('foo'),
self.frame:preprocess('{{Error|Failure (foo)}}')
)
self:equals(
'Raw errFormat',
protect(error, {raw = true})('foo'),
'Error: foo'
)
self:equals(
'Custom raw errFormat',
protect(error, 'Failure (%s)', {raw = true})('foo'),
'Failure (foo)'
)
self:equals(
'Remove location',
protect(error)('foo', 3),
self.frame:preprocess('{{Error|Error: foo}}')
)
end
return p
hglfxxxum7zb74qx85zg3b1vk8blncm
Sa:Ngwat na̱ nyian ta̱m ma̱ng A̱ka̱fwuop nta̱m a̱meang ma̱ng a̱kace a̱gi̱gak
14
2102
16059
16054
2022-08-18T20:11:03Z
Kambai Akau
15
wikitext
text/x-wiki
{{Unknown parameters category|A̱ka̱fwuop nta̱m a̱meang jhyang}}
[[Category:Sa kai nnia̱ mat A̱ka̱fwuop ta̱m a̱meang]]
hkds57dft5dss5xsfa22m0m8ir0n1n6
Sa:Sa kai nnia̱ mat A̱ka̱fwuop ta̱m a̱meang
14
2103
16048
2022-08-18T20:00:28Z
Kambai Akau
15
Created blank page
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Ta̱mpi̱let:Sa a̱kang a̱gi̱gak
10
2104
16055
16050
2022-08-18T20:08:06Z
Kambai Akau
15
Kambai Akau shyei wat hu [[Ta̱mpi̱let:Unknown parameters category]] nat [[Ta̱mpi̱let:Sa a̱kang a̱gi̱gak]]: Di̱n Tyap
wikitext
text/x-wiki
<includeonly>{{Possibly empty category}}
{{Maintenance category|hidden=yes|tracking=yes}}
{{Category other|
{{#if: {{{1|}}}
| {{#ifeq: {{{is_infobox|no}}} | yes
| [[Category:Infoboxes with unknown parameters|{{#if: {{{infobox_sort|}}} | {{{infobox_sort|}}} | {{#invoke:String|sub|{{{1}}}|9}} }}]]
| {{#ifeq: {{lc:{{#invoke:String|match|s={{{1}}}|^[^%s]*}}}} | infobox
| [[Category:Infoboxes with unknown parameters|{{#if: {{{infobox_sort|}}} | {{{infobox_sort|}}} | {{#invoke:String|sub|{{{1}}}|9}} }}]]
| [[Category:Unknown parameters|{{#if:{{{catsort|}}}|{{{catsort|}}}|{{ucfirst:{{trim|1={{{1|<nowiki>*</nowiki>}}}}}}}}}]]
}}
}}
| [[Category:Unknown parameters|{{#if:{{{catsort|}}}|{{{catsort|}}}|{{ucfirst:{{trim|1={{{1|<nowiki>*</nowiki>}}}}}}}}}]]
}}
}}
This category contains pages transcluding {{#if:{{{1|}}} |'''[[{{#if: {{{module|}}} | Module: | Template: }}{{ucfirst:{{{1}}}}}]]''' ([[Template talk:{{ucfirst:{{{1}}}}}|talk]])|a template}} with unknown parameters (undefined, misspelled, etc.).
Pages are typically sorted alphabetically by the unknown parameter that is used, e.g. pages using unknown parameter {{para|foo}} will be sorted under "F". The name of the page is typically used as a secondary sort key.
<small>Unknown parameters can be detected using [[Module:Check for unknown parameters]] in the template. To show the information listed here on a category page, use {{tl|Unknown parameters category}} on the category page.</small>
{{CatAutoTOC}}
{{#ifeq: {{#invoke:Is article|main|{{#if: {{{module|}}} | Module: | Template: }}{{{1|}}}}} | article || [[Category:Unknown parameters category for a deleted or redirected template| ]]}}</includeonly><!--
--><noinclude>{{Documentation}}</noinclude>
qvfid2mbutr7rnxl3cvlix3h8uqlsd5
Ta̱mpi̱let:Sa a̱kang a̱gi̱gak/doc
10
2105
16057
16052
2022-08-18T20:08:06Z
Kambai Akau
15
Kambai Akau shyei wat hu [[Ta̱mpi̱let:Unknown parameters category/doc]] nat [[Ta̱mpi̱let:Sa a̱kang a̱gi̱gak/doc]]: Di̱n Tyap
wikitext
text/x-wiki
{{Documentation subpage}}
<!-- Add categories where indicated at the bottom of this page and interwikis at Wikidata -->
== Usage ==
This template is a '''page header''' for a [[Help:Category|category]] page that is populated by [[Module:Check for unknown parameters]].
To use it, add the following to the category page:
: {{tlxi|Unknown parameters category|TEMPLATE_NAME}}
: where ''<code>TEMPLATE_NAME</code>'' is the name of the template the category is tracking.
The header displays message boxes, a table of contents, and will add the category page to [[:Category:Unknown parameters]].
When the first word of ''<code>TEMPLATE_NAME</code>'' is ''Infobox'', the template also adds the category page to [[:Category:Infoboxes with unknown parameters]].
; Full syntax
:{{tlx|Unknown parameters category|2=1={{spaces|1}}|3=catsort={{spaces|1}}|4=is_infobox={{spaces|1}}|5=infobox_sort={{spaces|1}}}}
; Parameter options
* {{para|1}} first parameter is the ''TEMPLATE_NAME''.
* {{para|catsort}} sets how the category-page is sorted in {{cl|Unknown parameters}}. Default sorting is by template name ({{para|1|}}). Example: [[:Category:Pages using Belgium data templates with unknown parameters|Category:Pages using Belgium data templates ... ]] has {{para|catsort|Belgium}} (not by template name {{tlf|Metadata Population BE}}).
* {{para|is_infobox|yes}} lists the category page in {{cl|Infoboxes with unknown parameters}}. Default listing occurs when template name starts with <code>Infobox</code>. Example: {{tlf|Chembox}}.
* {{para|infobox_sort}} sets category sorting in {{cl|Infoboxes with unknown parameters}}. Default sorting is by template name. Example: {{tlf|routemap-Infobox}}
== Example ==
<code><nowiki>{{Unknown parameters category|Infobox writer}}</nowiki></code> ''(see [[:Category:Pages using Infobox writer with unknown parameters]]):''
{{Unknown parameters category|Infobox writer}}
''(This example would also add the category page to [[:Category:Unknown parameters]] and [[:Category:Infoboxes with unknown parameters]]).''
<!-- not active yet, under construction. Sept2019
==Tracking==
* {{clc|Category:Template:Unknown parameters category errors}} -- Parameter 1 is missing
* {{clc|Category:Pages using Unknown parameters category with unknown parameters}}
-->
== See also ==
* {{clc|Unknown parameters}}
* {{clc|Infoboxes with unknown parameters}}
* [[Module:Check for unknown parameters]]
<includeonly>{{sandbox other||
<!-- Categories below this line, please; interwikis at Wikidata -->
[[Category:Category namespace templates]]
[[Category:Templates that add a tracking category]]
}}</includeonly>
jjnxj1xptxofumxm2suq1pmc1btqfnd
Ta̱mpi̱let:Unknown parameters category
10
2106
16056
2022-08-18T20:08:06Z
Kambai Akau
15
Kambai Akau shyei wat hu [[Ta̱mpi̱let:Unknown parameters category]] nat [[Ta̱mpi̱let:Sa a̱kang a̱gi̱gak]]: Di̱n Tyap
wikitext
text/x-wiki
#REDIRECT [[Ta̱mpi̱let:Sa a̱kang a̱gi̱gak]]
gy2ddvhm01gvt4k6e5ml29azcjor7ma
Ta̱mpi̱let:Unknown parameters category/doc
10
2107
16058
2022-08-18T20:08:06Z
Kambai Akau
15
Kambai Akau shyei wat hu [[Ta̱mpi̱let:Unknown parameters category/doc]] nat [[Ta̱mpi̱let:Sa a̱kang a̱gi̱gak/doc]]: Di̱n Tyap
wikitext
text/x-wiki
#REDIRECT [[Ta̱mpi̱let:Sa a̱kang a̱gi̱gak/doc]]
43sh4s8bz027sfa4d18awdcs6xdsry0
Module:A̱ka̱fwuop nta̱m a̱meang jhyang/styles.css
828
2108
16066
2022-08-18T20:32:02Z
Kambai Akau
15
Created page with "/* {{pp-template}} */ .sister-box .side-box-abovebelow { padding: 0.75em 0; text-align: center; } .sister-box .side-box-abovebelow > b { display: block; } .sister-box .side-box-text > ul { border-top: 1px solid #aaa; padding: 0.75em 0; width: 217px; margin: 0 auto; } .sister-box .side-box-text > ul > li { min-height: 31px; } .sister-logo { display: inline-block; width: 31px; line-height: 31px; vertical-align: middle; text-align: center; } .sister-lin..."
sanitized-css
text/css
/* {{pp-template}} */
.sister-box .side-box-abovebelow {
padding: 0.75em 0;
text-align: center;
}
.sister-box .side-box-abovebelow > b {
display: block;
}
.sister-box .side-box-text > ul {
border-top: 1px solid #aaa;
padding: 0.75em 0;
width: 217px;
margin: 0 auto;
}
.sister-box .side-box-text > ul > li {
min-height: 31px;
}
.sister-logo {
display: inline-block;
width: 31px;
line-height: 31px;
vertical-align: middle;
text-align: center;
}
.sister-link {
display: inline-block;
margin-left: 4px;
width: 182px;
vertical-align: middle;
}
3kna8siudt7ouh1ijx49ic5mrves5p5
Sa:Sains
14
2109
16068
2022-08-19T19:21:47Z
Kambai Akau
15
Created blank page
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1
Ta̱mpi̱let:Efn
10
2110
16072
2022-08-19T19:33:54Z
Kambai Akau
15
Created page with "<includeonly>{{#if:{{{name|}}} |{{#tag:ref|{{{1|{{{reference|{{{content|{{{text|}}}}}}}}}}}}|name={{{name|}}}|group={{#switch: {{{group|}}} | note | upper-alpha | upper-roman | lower-alpha | lower-greek | lower-roman = {{{group|}}} | #default = lower-alpha }} }} |{{#tag:ref|{{{1|{{{reference|{{{content|{{{text|}}}}}}}}}}}}|group={{#switch: {{{group|}}} | note | upper-alpha | upper-roman | lower-alpha | lower-greek..."
wikitext
text/x-wiki
<includeonly>{{#if:{{{name|}}}
|{{#tag:ref|{{{1|{{{reference|{{{content|{{{text|}}}}}}}}}}}}|name={{{name|}}}|group={{#switch: {{{group|}}}
| note
| upper-alpha
| upper-roman
| lower-alpha
| lower-greek
| lower-roman = {{{group|}}}
| #default = lower-alpha
}}
}}
|{{#tag:ref|{{{1|{{{reference|{{{content|{{{text|}}}}}}}}}}}}|group={{#switch: {{{group|}}}
| note
| upper-alpha
| upper-roman
| lower-alpha
| lower-greek
| lower-roman = {{{group|}}}
| #default = lower-alpha
}}
}}
}}</includeonly><noinclude>
{{documentation}}
</noinclude>
cy2hvj1zss95pdjzsgcbg4q4cq6tzl8
Ta̱mpi̱let:Efn/doc
10
2111
16074
16073
2022-08-19T19:36:11Z
Kambai Akau
15
wikitext
text/x-wiki
{{Documentation subpage}}
{{Transwiki guide |small=yes |text=See [[Template:Reflist/Transwiki guide|'''this information''']] on copying this template and modifying it for use on another wiki.}}
<!-- Categories and interwikis go at the bottom of this page. -->
{{High-use}}
'''Explanatory footnotes''' or '''Efn''' are footnotes which provide something other than, or more than, a reference to a [[WP:Reliable sources|source]] that supports the accompanying text. The first unnamed parameter is displayed as the content of the footnote. Note that if the note's content contains an "=" character, a reference error will be displayed; precede the content with {{para|1}} (or one of its aliases, {{para|text}}, {{para|reference}}, or {{para|content}}) to fix the error.
The following explanation is transcluded from [[Help:Footnotes#Footnotes: predefined groups]].
{{#section:Help:footnotes|pregroup}}
==Example articles==
* [[Logic Theorist]] (a short article showing basic usage)
* [[Chinese room]] (a long and complex article which uses all the features: named footnotes, list defined notes, etc.)
* [[Empire of Brazil]]
* [[John Diefenbaker]] (with name= and notes in <nowiki>{{notes}}</nowiki>)
* [[USS Monitor]]
<includeonly>{{sandbox other||
<!-- Categories and interwikis go here: -->
[[Category:Explanatory footnote templates]]
[[Category:Templates that generate named references]]
}}</includeonly>
== Template data ==
Description: <templatedata>
{
"description": "Inserts an explanatory footnote. Notes can be named and grouped.",
"params": {
"1": {
"aliases": [
"reference",
"text",
"content"
],
"label": "Note",
"description": "Text of the note",
"type": "content",
"suggested": true
},
"name": {
"label": "Ref. name",
"description": "Reference name of the note",
"type": "string",
"suggested": true
},
"group": {
"label": "Reference group",
"description": "Styled group to which the note belongs",
"type": "string",
"suggested": true,
"suggestedvalues": [
"upper-alpha",
"lower-greek",
"note",
"lower-roman",
"upper-roman"
]
}
}
}
</templatedata>
aezgzfgjy7sltcx6ryuexub0402gcye
Ta̱mpi̱let:Harvard citation no brackets
10
2112
16081
16080
2022-08-19T19:58:40Z
Kambai Akau
15
Kambai Akau shyei wat hu [[Ta̱mpi̱let:Harvnb]] nat [[Ta̱mpi̱let:Harvard citation no brackets]]
wikitext
text/x-wiki
<includeonly>{{#invoke:Footnotes|harvard_citation|template=harvnb}}</includeonly><noinclude>
{{documentation}}
<!-- Add categories to the /doc subpage, interwikis to Wikidata, not here -->
</noinclude>
rtjyyomketoec83yixes4x8swygwqvq
Ta̱mpi̱let:Harvnb
10
2113
16082
2022-08-19T19:58:40Z
Kambai Akau
15
Kambai Akau shyei wat hu [[Ta̱mpi̱let:Harvnb]] nat [[Ta̱mpi̱let:Harvard citation no brackets]]
wikitext
text/x-wiki
#REDIRECT [[Ta̱mpi̱let:Harvard citation no brackets]]
6sm1atygtngk8bbezwf3qq6jewrd8k6
Ta̱mpi̱let:Harvard citation no brackets/doc
10
2114
16086
16085
2022-08-19T20:05:23Z
Kambai Akau
15
wikitext
text/x-wiki
{{lua|Module:Footnotes}}
{{high-use|32331}}
{{Documentation subpage}}
Template '''harvnb''' creates a short [[WP:Harvard reference|author–date citation]] with a one-directional link to the first matching citation template on the same page.
{{Harvard citation documentation|harvnb}}
<includeonly>{{Sandbox other||
<!-- Categories below this line; interwikis at Wikidata -->
[[Category:Author–date citation templates]]
}}</includeonly>
<templatedata>
{
"params": {
"last1": {
"label": "Last Name 1",
"description": "surname of first author or corporate author",
"type": "string",
"required": true
},
"year": {
"label": "Year",
"description": "four-digit year; may have a lowercase disambiguation letter",
"example": "2022",
"type": "date",
"required": true
},
"last2": {
"label": "Last Name 2",
"description": "positional parameters; surnames of next three authors",
"type": "string"
},
"last3": {
"label": "Last Name 3",
"description": "positional parameters; surnames of next three authors",
"type": "string"
},
"last4": {
"label": "Last Name 4",
"description": "positional parameters; surnames of next three authors",
"type": "string"
},
"p": {
"aliases": [
"page"
],
"label": "Page Number",
"description": "specific page referenced in the source",
"example": "1",
"type": "number",
"suggested": true
},
"pp": {
"label": "Pages",
"description": "comma-separated list of individual pages and / or range(s) of pages referenced in the source",
"example": "2, 3",
"type": "number"
},
"loc": {
"aliases": [
"location"
],
"label": "Location",
"description": "in-source location when \"|p=\" and \"|pp=\" are inappropriate; may be used to supplement \"|p=\" and \"|pp=\"; information such as a section or figure number."
}
}
}
</templatedata>
==Usage==
{{{1}}} generates an "author-date" style short-cite from the following parameters:
<div style="margin-left: 2em"><code>{{#if:{{{noref|}}}||<nowiki><ref></nowiki>}}{{{{{1}}} | <{{var|last1}}*> | <{{var|last2}}> | <{{var|last3}}> | <{{var|last4}}> | <{{var|year}}*> | p= <{{var|page}}> | loc= <{{var|location}}> }}{{#if:{{{noref|}}}||<nowiki></ref></nowiki>}}</code></div>
with
* <{{var|last1}}> – required; surname of first author or corporate author
* <{{var|last2}}>–<{{var|last4}}> – positional parameters; surnames of next three authors
* <{{var|year}}> – required; four-digit year; may have a lowercase disambiguation letter
* {{para|p}} – specific page referenced in the source
* {{para|pp}} – comma-separated list of individual pages and / or range(s) of pages referenced in the source
* {{para|loc}} – in-source location when {{para|p}} and {{para|pp}} are inappropriate; may be used to supplement {{para|p}} and {{para|pp}}; information such as a section or figure number.
Typical usage is shown in the example below. The text and the footnote are connected by a bi-directional link -- clicking on the superscript takes the reader to the footnote, clicking on the footnote number takes them back to the superscript. The clicking on the short citation takes them to the full citation in the references section.
{{#if:{{{noref|}}}|
Template {{{1}}} is not placed inside {{tag|ref}} tags and generates the footnote internally. (To place {{{1}}} in a footnote, see [[#A citation inside an explanatory footnote|putting a citation inside a footnote]], below.)
{{markup|<nowiki>
Article text.{{</nowiki>{{{1}}}<nowiki>|Smith|2020|p=25}}
More article text.{{</nowiki>{{{1}}}<nowiki>|Smith|2020|p=25}}
Still more article text.{{</nowiki>{{{1}}}<nowiki>|Smith|2020|p=26}}
==Notes==
{{reflist}}
==References==
* {{cite book
| last = Smith | first = John
| date = 2020
| title = Smith's Book
}}
</nowiki>|
Article text.{{{{{1}}}|Smith|2020|p=25}}
More article text.{{{{{1}}}|Smith|2020|p=25}}
Still more article text.{{{{{1}}}|Smith|2020|p=26}}
{{fake notes and references||}}
{{cite book
| last = Smith | first = John
| date = 2020
| title = Smith's Book
}}}}|
Template {{{1}}} is placed inside {{tag|ref}} tags to create {{sfnote|lc=y}}. (Using {{{1}}} outside of {{tag|ref}} tags [[WP:PARREF|was deprecated in September 2020]]).
{{markup|<nowiki>
Article text.<ref>{{</nowiki>{{{1}}}<nowiki>|Smith|2020|p=25}}</ref>
More article text.<ref>{{</nowiki>{{{1}}}<nowiki>|Smith|2020|p=25}}</ref>
Still more article text.<ref>{{</nowiki>{{{1}}}<nowiki>|Smith|2020|p=26}}</ref>
==Notes==
{{reflist}}
==References==
* {{cite book
| last = Smith | first = John
| date = 2020
| title = Smith's Book
}}
</nowiki>|
Article text.{{#tag:ref|{{{{{1}}}|Smith|2020|p=25}}}}
More article text.{{#tag:ref|{{{{{1}}}|Smith|2020|p=25}}}}
Still more article text.{{#tag:ref|{{{{{1}}}|Smith|2020|p=26}}}}
{{fake notes and references||}}
{{cite book
| last = Smith | first = John
| date = 2020
| title = Smith's Book
}}}}
}}
===Parameters===
====Author(s) and year====
The author and the year of publication are the only required parameters. Up to four authors can be given as parameters.
The [[#Possible issues|possible issues]] section below describes workarounds for various common problems, such as [[#Large number of authors|large number of authors]], [[#No author name in citation template|no author name]], [[#More than one work in a year|multiple works in the same year]], [[#More than one author with the same last name|multiple authors with same last name]] and others.
{{#if:{{{noref|}}}|
{{markup
|<nowiki>Article text.{{</nowiki>{{{1}}}<nowiki>|Smith|2020|p=25}}</nowiki>
|Article text.{{{{{1}}}|Smith|2020|p=25}}<br />
{{reflist}}
|<nowiki>Article text.{{</nowiki>{{{1}}}<nowiki>|Smith|Jones|2020|p=25}}</nowiki>
|Article text.{{{{{1}}}|Smith|Jones|2020|p=25}}<br />
{{reflist}}
|<nowiki>Article text.{{</nowiki>{{{1}}}<nowiki>|Smith|Jones|Brown|2020|p=25}}</nowiki>
|Article text.{{{{{1}}}|Smith|Jones|Brown|2020|p=25}}<br />
{{reflist}}
|<nowiki>Article text.{{</nowiki>{{{1}}}<nowiki>|Smith|Jones|Brown|Black|2020|p=25}}</nowiki>
|Article text.{{{{{1}}}|Smith|Jones|Brown|Black|2020|p=25}}<br />
{{reflist}}
}}|{{markup
|<nowiki>Article text.<ref>{{</nowiki>{{{1}}}<nowiki>|Smith|2020|p=25}}</ref></nowiki>
|Article text.{{#tag:ref|{{{{{1}}}|Smith|2020|p=25}}}}<br />
{{reflist}}
|<nowiki>Article text.<ref>{{</nowiki>{{{1}}}<nowiki>|Smith|Jones|2020|p=25}}</ref></nowiki>
|Article text.{{#tag:ref|{{{{{1}}}|Smith|Jones|2020|p=25}}}}<br />
{{reflist}}
|<nowiki>Article text.<ref>{{</nowiki>{{{1}}}<nowiki>|Smith|Jones|Brown|2020|p=25}}</ref></nowiki>
|Article text.{{#tag:ref|{{{{{1}}}|Smith|Jones|Brown|2020|p=25}}}}<br />
{{reflist}}
|<nowiki>Article text.<ref>{{</nowiki>{{{1}}}<nowiki>|Smith|Jones|Brown|Black|2020|p=25}}</ref></nowiki>
|Article text.{{#tag:ref|{{{{{1}}}|Smith|Jones|Brown|Black|2020|p=25}}}}<br />
{{reflist}}
}}
}}
====Location in the source text====
The optional parameters {{para|p}}, {{para|pp}} and {{para|loc}} can be used to indicate the location in the source, such as page numbers. For single pages, use {{para|p}}; for multiple pages (such as ranges), use {{para|pp}}. Use of {{para|p}} for multiple pages or {{para|pp}} for single pages can cause [[Help:Cite errors/Cite error references duplicate key|cite errors]]. {{para|loc}} can be used to specify a location in the source in another way, such as section numbers or chapters. The parameters {{para|page}} and {{para|pages}} exist as aliases for {{para|p}} and {{para|pp}}, respectively.
{{#if:{{{noref|}}}|
{{markup
|<nowiki>Article text.{{</nowiki>{{{1}}}<nowiki>|Smith|2020|p=25}}</nowiki>
|Article text.{{{{{1}}}|Smith|2020|p=25}}<br />
{{reflist}}
|<nowiki>Article text.{{</nowiki>{{{1}}}<nowiki>|Smith|2020|loc=chpt. 3}}</nowiki>
|Article text.{{{{{1}}}|Smith|2020|loc=chpt. 3}}<br />
{{reflist}}
|<nowiki>{{</nowiki>{{{1}}}<nowiki>|Smith|2020|loc=section 7}}</nowiki>
|Article text.{{{{{1}}}|Smith|2020|loc=section 7}}<br />
{{reflist}}
}}
|
{{markup
|<nowiki>Article text.<ref>{{</nowiki>{{{1}}}<nowiki>|Smith|2020|p=25}}</ref></nowiki>
|Article text.{{#tag:ref|{{{{{1}}}|Smith|2020|p=25}}}}<br />
{{reflist}}
|<nowiki>Article text.<ref>{{</nowiki>{{{1}}}<nowiki>|Smith|2020|pp=25–26}}</ref></nowiki>
|Article text.{{#tag:ref|{{{{{1}}}|Smith|2020|pp=25–26}}}}<br />
{{reflist}}
|<nowiki>Article text.<ref>{{</nowiki>{{{1}}}<nowiki>|Smith|2020|loc=chpt. 3}}</ref></nowiki>
|Article text.{{#tag:ref|{{{{{1}}}|Smith|2020|loc=chpt. 3}}}}<br />
{{reflist}}
|<nowiki>Article text.<ref>{{</nowiki>{{{1}}}<nowiki>|Smith|2020|loc=section 7}}</ref></nowiki>
|Article text.{{#tag:ref|{{{{{1}}}|Smith|2020|loc=section 7}}}}<br />
{{reflist}}
}}
}}
====Additional text====
The optional parameter {{para|postscript}} or {{para|ps}} can be used to change the text which appears at the end of the note in the reference list. (See [[#Additional comments or quotes|§ Adding additional comments or quotes]] and [[#No closing period|§ No closing period]], below.) The postscript is only effective the first time {{tl2|sfn}} is used for a particular author, year and location.
====Hard-coded link names====
''Not available in {{tl2|sfn}} and similar templates.''
The optional parameter {{para|ref}} is used to create a unusually named link from the short citation to the full citation. This parameter is usually not necessary, and it is more common to use {{tl2|sfnRef}} or {{tl2|harvid}} in the reference section. If you specify {{para|ref|none}}, no hyperlink is created. However, if one does not want the link, it is always possible to simply use plain text instead of the template. The parameter {{para|Ref}} is an alias for {{para|ref}}.
==Possible issues==
{{anchor|Additional comments or quotes}}
=== Adding additional comments or quotes ===
The templates {{tl2|harvnb}} or {{tl2|harvtxt}} can be used to add quotes or additional comments into the footnote. This effect can also be achieved using {{tl2|sfn}} by adding a quote or comment to {{para|loc}}. Examples are below.
{{markup
|<nowiki>
Some information.<ref>{{harvnb|Smith|2011|p=2}}: "A quote verifying the information."</ref>
== Notes ==
{{reflist}}
</nowiki>|
Some information.<ref>{{harvnb|Smith|2011|p=2}}: "A quote verifying the information."</ref>
{{Fake heading|sub=3|Notes}}
{{reflist}}
|<nowiki>
"A quote in a secondary source."<ref>{{harvtxt|Smith|2011|p=2}} quoted in {{harvtxt|Jones|2010|p=343}}</ref>
== Notes ==
{{reflist}}
</nowiki>|
"A quote in a secondary source."<ref>{{harvtxt|Smith|2011|p=2}} quoted in {{harvtxt|Jones|2010|p=343}}</ref>
{{Fake heading|sub=3|Notes}}
{{reflist}}
|<nowiki>
Some information.{{sfn|Smith|2011|loc=p. 2: "A quote verifying the information"}}
== Notes ==
{{reflist}}
</nowiki>|
Some information.{{sfn|Smith|2011|loc=p. 2: "A quote verifying the information"}}
{{Fake heading|sub=3|Notes}}
{{reflist}}
}}
{{lang|la|Nota bene}}: In the past, the use of {{para|ps}} has been advised to hold this additional information, but it is not suitable for this purpose. Two or more {{tlc|sfn}} templates with the same authors, same year, and same page, but different {{para|ps}} will result in a {{small|{{error|Cite error: The named reference ... was defined multiple times with different content}}}} message. This message happens because the reference names that {{tlc|sfn}} creates will be the same, but the content between the {{tag|ref|params=name="FOOTNOTE..."|o}} tag and the {{tag|ref|c}} tag will be different. A workaround is to convert one or some of the {{tlc|sfn}} templates to {{tlx|harvnb}} wrapped in {{tag|ref}} tags.
===Adding a URL for the page or location===
If a specific link to the page or section is available, a [[Uniform Resource Locator|URL]] can be added to the location or page number.
{{markup
|<nowiki>{{harv|Smith|2011|loc=[http://en.wikipedia.org chpt 3]}}</nowiki>
|{{harv|Smith|2011|loc=[http://en.wikipedia.org chpt 3]}}
|<nowiki>{{harv|Smith|2011|loc=[http://en.wikipedia.org &sect;7]}}</nowiki>
|{{harv|Smith|2011|loc=[http://en.wikipedia.org §7]}}
|<nowiki>Article text.{{sfn|Smith|2011|p=[http://en.wikipedia.org 3]}}
==Notes==
{{reflist}}
==References==
* {{cite book | last = Smith | date = 2011 | title = Smith's
other book }}</nowiki>
|{{Fake notes and references
|Article text.{{sfn|Smith|2011|p=[http://en.wikipedia.org 3]}}
|* {{cite book | last = Smith | date = 2011 | title = Smith's other book }}
}}}}
===A citation inside an explanatory footnote===
Sometimes an explanatory footnote requires a citation. Templates like {{tl1|sfn}} can't be directly imbedded between {{tag|ref}} tags, because the following message will be produced: {{small|{{error|Cite error references missing group||nocat=true}}}}.
The templates {{tl1|efn}} and {{tl1|notelist}} can be used to create separate explanatory footnotes from short citations, as shown in the first example. An article that uses this technique extensively is [[Chinese Room]].
It is also possible to use the [[magic word]] <code><nowiki>{{#tag:ref|...}}</nowiki></code> and the {{tl|sfn}} template will work correctly inside the footnote, as shown in the second example.
{{markup
|<nowiki>
Interesting fact.{{efn|Clarification of interesting fact.{{sfn|Smith|2018}}}}
==Notes==
{{notelist}}
==Citations==
{{reflist}}
==References==
* {{cite book
| last = Smith
| date = 2018
| title = Smith's other book }}
</nowiki>|
Interesting fact.{{efn|Clarification of interesting fact.{{sfn|Smith|2018}}}}
{{fake heading|Notes}}
{{notelist}}
{{fake heading|Citations}}
{{reflist}}
{{fake heading|References}}
* {{cite book
| last = Smith
| date = 2018
| title = Smith's other book }}
|<nowiki>
Interesting fact.{{#tag:ref|Clarification of interesting fact.{{sfn|Smith|2017}}}}
==Citations==
{{reflist}}
==References==
* {{cite book
| last = Smith
| date = 2017
| title = Smith's other book }}
</nowiki>|
Interesting fact.{{#tag:ref|Clarification of interesting fact.{{sfn|Smith|2017}}}}
{{fake heading|Notes}}
{{reflist}}
{{fake heading|References}}
* {{cite book
| last = Smith
| date = 2017
| title = Smith's other book }}
}}
====Multiple lists of inline citations====
Sometimes there is a need to create two or more separate lists of inline footnotes. For example some family trees are contained in templates, they are transluded into several biographies, and they have their own self contained citations (see [[Template:Houston family tree]] and the article [[Margaret Lea Houston]]).
To facilitate this, while the main page uses the standard 1,2,3 footnote counting, it is common for family trees to use the efn template with a group parameter set—for example {{tlx|efn-lg}} (lower-greek). The efn templates are text templates, to link some or all of the content of the efn template to a long citation template such as {{tlx|cite book}} place {{tlx|harvnb}} or {{tlx|harv}} within the efn template.
{{markup
|<nowiki>
...by the fact itself.<ref>{{harvnb|Smith|2018|p=1}}</ref>
==Family Tree==
He's his own grandpa.{{efn-lg|{{harvnb|Latham|1947|p=9}} }}
===FT notes===
{{notelist-lg}}
===FT references===
*{{citation
|last=Latham
|first=Dwight
|date=1947
|title=The Adams family}}
==See also==
[[Ipso facto]]<ref>{{harvnb|Smith|2018|p=2}}</ref>
==Notes==
{{Reflist}}
==References==
* {{citation
|last=Smith
|date=2018
|title=Smith's other book}}
</nowiki>|
...by the fact itself.<ref>{{harvnb|Smith|2018|p=1}}</ref>
{{fake heading|Family Tree}}
He's his own grandpa.{{efn-lg|{{harvnb|Latham|1947|p=9}} }}
<small>{{fake heading|FT notes}}</small>
{{notelist-lg}}
<small>{{fake heading|FT references}}</small>
*{{citation
|last=Latham
|first=Dwight
|date=1947
|title=The Adams family}}
{{fake heading|See also}}
[[Ipso facto]]<ref>{{harvnb|Smith|2018|p=2}}</ref>
{{fake heading|Notes}}
{{Reflist}}
{{fake heading|References}}
* {{citation
|last=Smith
|date=2018
|title=Smith's other book }}
}}
===More than one work in a year===
Where there is a need to cite more than one work ''by the same author published in the same year'', the standard way to disambiguate such works is to add a letter suffix after the year element of the {{tlc|sfn}} template (e.g. {{tlc|sfn|Smith|2006a}} and {{tlc|sfn|Smith|2006b}}). Make sure to add the disambiguation letter to the matching full citation, (e.g. <code><nowiki>{{cite book|...|last=Smith|date=2006b}}</nowiki></code>).
====Templates that use Module:Citation/CS1====
When {{tlc|sfn}} is used with {{tlx|citation}} or {{cs1}} templates, a year-suffix letter may be added to {{para|date}} for all accepted date formats except year-initial numeric ({{small|YYYY-MM-DD}}). It is not necessary to include both {{para|date}} and {{para|year}} (see exception [[#NB_YEAR|below]]). If both are included, {{para|year}} is used for the <code>CITEREF</code> anchor to be compliant with legacy citations.
:{{para|date|2013a}}: simple year only dates
:{{para|date|Jan 2013b}} or {{para|date|Winter 2013b}}: month or season and year dates
:{{para|date|9 November 2013b}} or {{para|date|November 9, 2013b}}: full dates
:{{para|date|June–July 2013c}} or {{para|date|Winter–Spring 2013c}}: month or season ranges and year dates
:{{para|date|c. 2013d}}: circa year dates
:{{para|date|{{#time:Y}}–{{#time:Y|now +1 year}}f}} or {{para|date|Summer {{#time:Y}}–{{#time:y|now +1 year}}f}}: year ranges
:{{para|date|n.d.e}}: no date (n.d.)
:{{anchor|NB_YEAR}}<s>{{para|date|2013x-11-09}}</s>: not supported, the template must use {{para|year|2013x}}. If month and day should be part of the citation as well, both parameters need to be given: {{para|date|2013-11-09}} {{para|year|2013x}}. In this case, {{para|date}} is used for citation display and metadata purposes, and {{para|year}} for link disambiguation.
{{markup
|<nowiki>Article text.{{sfn|Smith|1993a|p=25}}
More text.{{sfn|Smith|1993b|p=32}}
==Notes==
{{reflist}}
==References==
* {{cite journal
|last=Smith
|first=Karen
|date=January 1993a
|title=Smith's first paper
|journal=Important Journal
}}
* {{cite journal
|last=Smith
|first=Karen
|date=Spring–Summer 1993b
|title=Smith's second paper
|journal=Another Important Journal
}}</nowiki>
|{{fake notes and references
|Article text.{{sfn|Smith|1993a|p=25}}
More text.{{sfn|Smith|1993b|p=32}}
|* {{cite journal|last=Smith|first=Karen|date=January 1993a|title=Smith's first paper|journal=Important Journal}}
* {{cite journal|last=Smith|first=Karen|date=Spring–Summer 1993b|title=Smith's second paper|journal=Another Important Journal}}
}}}}
=== More than one author with the same last name ===
The above solution to add a letter suffix after the year element also works for multiple authors with the same last name. For example, both [[Richard Bushman]] and [[Claudia Lauper Bushman]] published books in 2006. To differentiate between the two books, the first one can be given the year "2006a" and the second one "2006b".
===Large number of authors===
Only the first four authors are required by the template. Listing more is not supported. It is also possible to use the {{para|ref|{{tl|harvid}}}} in the citation template, which allows a more concise citation in the article text.
{{markup
|<nowiki>Article text.<ref>{{harv|Smith|Jones|Brown|Black|1994|p=25}}</ref>
==Notes==
{{reflist}}
==References==
* {{cite journal
| last = Smith
| last2 = Jones
| last3 = Brown
| last4 = Black
| last5 = Davis
| last6 = Martinez
| last7 = Hsu
| date = 1994
| title = Scientific paper written by
many scientists
| journal = Important Journal
}}</nowiki>
|{{fake notes and references
|Article text.<ref>{{harv|Smith|Jones|Brown|Black|1994|p=25}}</ref>
|
* {{cite journal
| last = Smith
| last2 = Jones
| last3 = Brown
| last4 = Black
| last5 = Davis
| last6 = Martinez
| last7 = Hsu
| date = 1994
| title = Scientific paper written by many scientists
| journal = Important Journal}}
}}
|<nowiki>Article text.<ref>{{harv|Smith et al.|1995|p=25}}</ref>
==Notes==
{{reflist}}
==References==
* {{cite journal
| last = Smith
| last2 = Jones
| last3 = Brown
| last4 = Black
| last5 = Davis
| last6 = Martinez
| last7 = Hsu
| date = 1995
| title = Another paper by many scientists
| journal = Important Journal
| ref = {{harvid|Smith et al.|1995}}
}}</nowiki>
|{{fake notes and references
|Article text.<ref>{{harv|Smith et al.|1995|p=25}}</ref>
|
* {{cite journal
| last = Smith
| last2 = Jones
| last3 = Brown
| last4 = Black
| last5 = Davis
| last6 = Martinez
| last7 = Hsu
| date = 1995
| title = Another paper by many scientists
| journal = Important Journal
| ref = {{harvid|Smith et al.|1995}}
}}
}}}}
===No author name in citation template===
Some sources do not have a single author with a last name, such as a magazine article or a report from a government institution. There is no consensus (in Wikipedia or among citation styles) about how to format author–date citations for works that do not have a specific author. Several choices are:
# For a newspaper or periodical, you may use the name of the paper and the date.
# For a publication by an institution, use either:
## The initials of the institution
## The name of the institution
# Alternatively, some style guides recommend using the title of the article.
# Other style guides recommend using "Anonymous" or "Anon."
An article should adopt one of these styles consistently. Using {{para|ref|{{tl|harvid}}}} in the citation template can handle these cases.
{{markup
|<nowiki>Article text.{{sfn|BGI|1996|p=429}}
==Notes==
{{reflist}}
==References==
* {{cite book
| title = Important Book
| date = 1996
| publisher = Big Government Institution
| ref = {{harvid|BGI|1996}}
}}</nowiki>
|{{fake notes and references
|Article text.{{sfn |BGI|1996|p=429}}
|* {{cite book
| title = Important Book
| date = 1996
| publisher = Big Government Institution
| ref = {{harvid|BGI|1996}}
}}}}
|<nowiki>Article text.{{sfn |''Popular Magazine''|1996|p=29}}
==Notes==
{{reflist}}
==References==
* {{cite magazine
| magazine = Popular Magazine
| title = An Article by an Anonymous Author
| date = 1996
| ref = {{harvid|Popular Magazine|1996}}
}}</nowiki>
|{{fake notes and references
|Article text.{{sfn |''Popular Magazine''|1996|p=29}}
|* {{cite magazine
| magazine = Popular Magazine
| title = An Article by an Anonymous Author
| date = 1996
| ref = {{harvid|Popular Magazine|1996}}
}}}}}}
===Citation has <code>|date=</code> and no <code>|year=</code>===
Either the {{para|date}} or {{para|year}} of a citation template can be matched—the template logic can extract the year from a full date. If the date parameter is not a full date, then the extraction will fail. If the link does not seem to work, it also possible to set both {{para|date}} and {{para|year}} parameters. The template will display the date and use the year for the anchor. These two examples show a year being successfully extracted from full date.
{{markup
|<nowiki>Article text.{{sfn|Smith|1997|p=101}}
==Notes==
{{reflist}}
==References==
* {{cite journal
| last = Smith | first = Karen
| date = 11 May 1997
| title = Smith's 1997 paper
| journal= Important Journal
}}</nowiki>
|{{fake notes and references
| Article text.{{sfn|Smith|1997|p=101}}
|* {{cite journal
| last = Smith | first = Karen
| date = 11 May 1997
| title = Smith's 1997 paper
| journal= Important Journal
}}}}
|<nowiki>Article text.{{sfn|Smith|1998|p=101}}
==Notes==
{{reflist}}
==References==
* {{cite journal
| last = Smith | first = Karen
| date = May 1998
| title = Smith's 1998 paper
| journal= Important Journal
}}</nowiki>
|{{fake notes and references
| Article text.{{sfn|Smith|1998|p=101}}
|* {{cite journal
| last = Smith | first = Karen
| date = May 1998
| title = Smith's 1998 paper
| journal= Important Journal
}}}}}}
===Using {{{1}}} with [[Template:vcite|<code><nowiki>{{vcite}}</nowiki></code>]]===
The {{vcite}} family of templates use parameter {{para|harvid}} to create an anchor for the Harvard citation templates. This must be set to a concatenation of the parameters passed to the Harvard citation template.
{{markup
|<nowiki>Article text.{{sfn|Smith|1999|p=101}}
==Notes==
{{reflist}}
==References==
* {{vcite book
| author = Smith K
| date = 1999
| title = Smith's 1999 Book
| harvid = Smith1999
}}</nowiki>
|{{fake notes and references
| Article text.{{sfn|Smith|1999|p=101}}
|* {{vcite book
| author = Smith K
| date = 1999
| title = Smith's 1999 Book
| harvid = Smith1999
}}}}}}
===Citation format does not support anchors: [[Template:wikicite|<code><nowiki>{{wikicite}}</nowiki></code>]]===
In a few very rare cases, it may be impossible for the citation templates to create an anchor. Either (1) the citation is formatted with a template that does not support the {{para|ref}} parameter or (2) the source can't be described using our citation templates at all. In these cases, it is possible to use {{tl2|wikicite}} to make the anchor. (As of November 2010, there are only approximately 100 articles that require this technique.) It is also possible that (3) local editors would prefer not to use citation templates. In this case, it is important to discuss what the local editors would like to do about the bad links. It is always possible to simply remove {{tl2|harv}} or {{tl2|sfn}}, leaving plain text without links.
{{markup
|<nowiki>Article text.{{sfn |Big Government Agency|1999}}
==Notes==
{{reflist}}
==References==
* {{wikicite
| reference = {{cite report
| title=Important Government Report
| publisher=Big Government Agency
| date=1999
}}
| ref = {{harvid|Big Government Agency|1999}}
}}
</nowiki>
|{{fake notes and references
| Article text.{{sfn |Big Government Agency|1999}}
|* {{wikicite
| reference = {{cite report
| title=Important Government Report
| publisher=Big Government Agency
| date=1999
}}
| ref = {{harvid|Big Government Agency|1999}}
}}}}
|<nowiki>Article text.{{sfn |A particularly unusual citation}}
==Notes==
{{reflist}}
==References==
* {{wikicite
| reference = A source that can't be described
using our citation templates at all.
| ref = {{harvid|A particularly unusual citation}}
}}
</nowiki>
|{{fake notes and references
| Article text.{{sfn |A particularly unusual citation}}
|* {{wikicite
| reference = A source that can't be described using our citation templates at all.
| ref = {{harvid|A particularly unusual citation}}
}}}}}}
It is also possible to use {{tag|cite|o}} to achieve the same effect, but this may not be compatible with [[HTML 5]].
===Citation has multiple authors and no date===
The templates assume that the last unnamed parameter is the year. Where there are multiple authors and no year, the template will form a correct link but will display the last author as if it were a year. To force the displayed text to show all authors as names, the following workaround may be used:
{{markup
|<nowiki>Article text.<ref>[[#{{harvid|Lane|Singh}}|Lane & Singh]]</ref>
==Notes==
{{reflist}}
==References==
* {{citation
| last = Lane
| first = Kieran
| last2 = Singh
| first2 = Karun
| title = Richard Watts
| work = Richard Watts Charities
| url = http://www.richardwatts.org.uk/richardwatts1.html
| access-date = 21 June 2012
}}
</nowiki>
|{{fake notes and references
| Article text.<ref>[[#{{harvid|Lane|Singh}}|Lane & Singh]]</ref>
|* {{citation
| last = Lane
| first = Kieran
| last2 = Singh
| first2 = Karun
| title = Richard Watts
| work = Richard Watts Charities
| url = http://www.richardwatts.org.uk/richardwatts1.html
| access-date = 21 June 2012
}}}}}}
{{anchor|No closing period}}
=== No closing period: <code>|ps=none</code> ===
Using {{para|ps|none}} in {{tl2|sfn}} removes the final period. Compare the two examples. Suppressing the default period (full stop) ensures consistency with [[Help:Citation_Style_2|Citation style 2]], as produced by {{tl2|Citation}}, which does not use a trailing period (full stop) when rendering full citations. The postscript is only effective the first time {{tl2|sfn}} is used for a particular author, year, and location. {{para|ps|}} will also suppress terminal punctuation. Follow-on editors who encounter 'empty' parameters can't know if a previous editor intended to leave that parameter blank. Using the keyword none is a positive indication of the previous editor's intent.
{{markup
|<nowiki>
Article text.{{sfn|Smith|2011|ps=none}}
== Notes ==
{{reflist}}
</nowiki>|
Article text.{{sfn|Smith|2011|ps=none}}
{{Fake heading|sub=3|Notes}}
{{reflist}}
|<nowiki>
Article text.{{sfn|Smith|2011}}
== Notes ==
{{reflist}}
</nowiki>|
Article text.{{sfn|Smith|2011}}
{{Fake heading|sub=3|Notes}}
{{reflist}}
}}
===Wikilink to citation does not work===
If an article is using this template, and nothing happens when you click on the highlighted [[wikilink]] from a Harvard style citation to a full citation at the bottom of the page, there are several possible solutions. If:
# The correct citation does ''not'' appear at the bottom of the article. '''Solution''': Find the source (it may be copied from an article on a similar subject), and check that it verifies the text. If the source can't be found, tag the citation with {{tl2|citation not found}}.
# The correct citation appears at the bottom of the article, and
## The Harvard citation uses a template (such as {{tl2|sfn}} or {{tl2|harv}}):
### The citation uses a template from the list at [[Help:Citation Style 1|Citation Style 1]]:
#### The name is spelled or capitalized differently here than in the citation. '''Solution''': check the source for the correct spelling, and use the same spelling, spacing, and capitalization in both the short and full citations.
#### The year is different here than the citation. '''Solution''': check the source for the correct year, and use the same year in both the short and full citations.
#### The template has a {{para|date}} field and no {{para|year}} field, but the format of the {{para|date}} field is unusual. '''Solution''': Try to fix the date. If the link still does not work, add {{para|year}} to the citation template. (It's okay if it has both.)
#### The citation does not have an author's, or an editor's, last name (authors take precedence over editors). '''Solution''': check that {{para|ref|{{tl|harvid|''args''}}}} is set correctly (see below).
### The citation uses a [[Help:Citation Style Vancouver|Citation Style Vancouver]] template. '''Solution''': check that {{para|harvid}} is set correctly (see below).
### The citation uses a template that does not support {{para|ref}} (See [[Wikipedia:Citation templates and reference anchors]]). '''Solution''': Consider modifying the template to support {{para|ref}}. Alternatively, an anchor can be created using <code><nowiki>{{wikicite|id={{harvid|</nowiki>''args''<nowiki>}}|reference={{</nowiki>''citation''<nowiki>}}}}</nowiki></code>.
### The full citation does not use a template:
#### It has no wikicode to create an anchor. '''Solution''': If {{cite *}} citation templates are used liberally throughout the article, then reformat the full citation with the appropriate {{cite *}} template (and set the {{para|ref}} appropriately, if necessary). Otherwise consult with local editors on the talk page about how to proceed. Either add {{cite *}} templates and {{tl2|harv}} templates, or remove all templates, depending on what local editors prefer. A few articles use {{tl2|wikicite}} to create an anchor as an alternative to standard templates.
#### It uses a {{tag|cite}} span to create an anchor. '''Solution''': remove the cite span (these are deprecated) and proceed following the recommendation immediately above.
#### It uses {{tl2|wikicite}}. '''Solution''': Check that the text in {{para|id|{{tl|harvid|''args''}}}} matches the text in {{tl2|wikicite}}.
## If the Harvard citation uses a handwritten wikilink, such as <code><nowiki>[[#Reference-Smith2006|Smith (2006)]]</nowiki></code>:
### The citation uses a citation template which supports {{para|ref}} (See [[Wikipedia:Citation templates and reference anchors]]). '''Solution''': Check that {{para|ref}} is set to a matching id.
### Otherwise, check that the reference has <code><nowiki>{{wikicite|ref=</nowiki>''id''<nowiki>|reference=</nowiki>''citation''<nowiki>}}</nowiki></code> with a matching id.
Templates that have broken [[wikilink]]s using these templates are added to the category {{cat|All articles with broken links to citations}}.
===Link works but displays a no target error===
When a short-cite template links to a full citation that is rendered by a template that wraps a CS1 template, like {{txl|cite DNB}} (which wraps {{txl|cite encyclopedia}}), a {{error-small|no target}} error may be displayed even when the short-cite template is valid and the link works. That is a "false positive" error. The error message can be suppresed by adding {{para|ignore-err|yes}} to the template.
==Other author–date citation templates==
There are several templates used to create short citations; they differ in the use and placement of parentheses, in the separator before the page or location, and in whether a terminal full stop (period) is present:
{| class="wikitable"
|+ In-text templates
! Templates !! Aliases !! Example
|-
|{{tl2|Harvard citation no brackets}} || {{tl2|harvnb}} || {{harvnb|Smith|2006|p=25}}
|-
| {{tl2|Harvard citation}} || {{tl2|harv}} || {{harv|Smith|2006|p=25}}
|-
| {{tl2|Harvard citation text}} || {{tl2|harvtxt}} || {{harvtxt|Smith|2006|p=25}}
|-
| {{tl2|Harvcoltxt}} || || {{Harvcoltxt|Smith|2006|p=25}}
|-
| {{tl2|Harvcol}} || || {{Harvcol|Smith|2006|p=25}}
|-
| {{tl2|Harvcolnb}} || || {{Harvcolnb|Smith|2006|p=25}}
|-
| {{tl2|Harvard citations}} || {{tl2|harvs}} || {{harvs|txt=yes|last=Smith|first=John|year1=2006| year2=2007|page=25}} ''(and many other forms)''.
|-
| {{tl2|Harvp}} || || {{harvp|Smith|2006|page=25}}
|-
| {{tl2|Harvc}} || {{tl2|Citec}} || (Cite several contributions/chapters in a larger work)<br />Article text.{{sfn|Stout|Johnson|1957}} More article text.{{sfn|Wadleigh|1957}} Even more article text.<ref>[[#Stefferud preface|Stefferud 1957]]</ref>
'''References'''
{{reflist}}
'''Sources'''
* {{cite book|title=Soil: The Yearbook of Agriculture 1957|editor-last=Stefferud|editor-first=Alfred|date=1957|publisher=United States Department of Agriculture|url=//archive.org/stream/yoa1957#page/n2/mode/1up|oclc=704186906}}
** {{harvc|last=Stefferud|first=A.|year=1957|id=Stefferud preface |c=Preface |url=//archive.org/stream/yoa1957#page/n7/mode/1up |in=Stefferud |ignore-err=yes}}
** {{harvc|last1=Stout|first1=P. R.|last2=Johnson|first2=C. M.|year=1957|c=Trace Elements |url=//archive.org/stream/yoa1957#page/n167/mode/1up |in=Stefferud |ignore-err=yes}}
** {{harvc|last=Wadleigh|first=C. H.|year=1957 |c=Growth of Plants |url=//archive.org/stream/yoa1957#page/n57/mode/1up |in=Stefferud |ignore-err=yes}}
|-
|{{tl2|Shortened footnote template}}|| {{tl2|sfn}} || Article text.{{sfn|Smith|2006|p=25}} <br /> {{Reflist}}
|-
|{{tl2|Sfnp}} || || Article text.{{sfnp|Smith|2006|p=25}} <br /> {{Reflist}}
|-
|{{tl2|Sfnm}} || || Article text.{{sfnm|1a1=Smith|1a2=Jones|1a3=Brown|la4=Black|1y=2005|1p=15|2a1=Smith|2y=2006|2p=50}} <br /> {{Reflist}}
|-
|{{tl2|Sfnmp}} || || Article text.{{sfnmp|1a1=Smith|1a2=Jones|1a3=Brown|la4=Black|1y=2005|1p=15|2a1=Smith|2y=2006|2p=50}} <br /> {{Reflist}}
|}
Full citations can be created manually or by templates:
* {{cs1}} templates
* {{tl2|citation}}
All of these templates have the same parameters and basic functionality. This page describes all of them except the parameters of {{tl2|sfnm}} and {{tl2|harvs}}; please see their documentation pages. Editors editing one of these templates are requested to make parallel changes to the other versions.
===Applications of these templates===
====Harvard citation: [[Template:harv|<code><nowiki>{{harv}}</nowiki></code>]]====
<!--{{see also|Wikipedia:Citing sources#Parenthetical referencing}}-->
Template {{tl2|harv}} creates a [[Wikipedia:Citing sources#Parenthetical referencing|parenthetical reference]] with a link to the full citation in the references section at the bottom of the article.
{{Markup
|<nowiki>Article text.<ref>{{harv|Smith|2006|p=25}}</ref>
==Notes==
{{reflist}}
==References==
* {{cite book
| last = Smith | first = John
| title = Smith's book
| date = 2006
}}</nowiki>
|
Article text.<ref>{{harv|Smith|2006|p=25}}</ref>
{{fake heading|sub=3|Notes}}
{{reflist}}
{{fake heading|sub=3|References}}
* {{cite book|last=Smith|first=John|title=Smith's book|date=2006}}
}}
{{anchor|Shortened footnote}}
====Shortened footnote: [[Template:sfn|<code><nowiki>{{sfn}}</nowiki></code>]] or [[Template:harvnb|<code><nowiki>{{harvnb}}</nowiki></code>]]====
{{see also|Wikipedia:Citing sources#Short citations|Help:Shortened footnotes}}
Template {{tl2|harvnb}} inside a {{tag|ref|o}} span can be used to create a [[Help:Shortened footnotes|shortened footnote]] that is linked to the full citation at the bottom of the article. Template {{tl2|sfn}} (without the use of {{tag|ref|o}}) has the same effect, automatically adds a period (full stop) after the page number, and combines identical footnotes automatically.
{{markup|<nowiki>
Article text.{{sfn|Smith|2007|p=25}}
More article text.{{sfn|Smith|2007|p=25}}
Still more article text.{{sfn|Smith|2007|p=26}}
==Notes==
{{reflist}}
==References==
* {{cite book
| last = Smith | first = John
| date = 2007
| title = Smith's Book
}}
</nowiki>|
Article text.{{sfn|Smith|2007|p=25}}
More article text.{{sfn|Smith|2007|p=25}}
Still more article text.{{sfn|Smith|2007|p=26}}
{{fake notes and references||}}
* {{cite book
| last = Smith | first = John
| date = 2007
| title = Smith's Book
}}
|<nowiki>
Article text.<ref name=Smith2008p25>{{harvnb|Smith|2008|p=25}}.</ref>
More article text.<ref name=Smith2008p25/>
Still more article text.<ref>{{harvnb|Smith|2008|p=26}}.</ref>
==Notes==
{{reflist}}
==References==
* {{cite book
| last = Smith | first = John
| date = 2008
| title = Smith's Book
}}
</nowiki>|
Article text.<ref name=Smith2007p25>{{harvnb|Smith|2008|p=25}}.</ref>
More article text.<ref name=Smith2007p25/>
Still more article text.<ref>{{harvnb|Smith|2008|p=26}}.</ref>
{{fake notes and references||}}
* {{cite book
| last = Smith | first = John
| date = 2008
| title = Smith's Book
}}
}}
====In text attribution: [[Template:harvtxt|<code><nowiki>{{harvtxt}}</nowiki></code>]]====
{{see also|Wikipedia:Citing sources#In-text attribution}}
Template {{tl2|harvtxt}} can be used to link an [[Wikipedia:Citing sources#In-text attribution|in-text attribution]] to the full citation at the bottom of the page.
{{markup
|<nowiki>According to {{harvtxt|Smith|2009|p=25}} ...
==References==
* {{citation
| last = Smith | first = John
| date = 2009
| title = Smith's Book
}}
</nowiki>
|
According to {{harvtxt|Smith|2009|p=25}} ...
{{Fake heading|sub=3|References}}
* {{citation
| last = Smith | first = John
| date = 2009
| title = Smith's Book
}}
}}
====Bundled citation: [[Template:harvnb|<code><nowiki>{{harvnb}}</nowiki></code>]] or [[Template:sfnm|<code><nowiki>{{sfnm}}</nowiki></code>]]====
{{see also|Wikipedia:Citing sources#Bundling citations}}
Template {{tl2|harvnb}} can be used to [[WP:CITE#Bundling citations|bundle citations]]. {{tl2|sfnm}} also produces bundled citations.
{{markup|<nowiki>
Article text ({{harvnb|Smith|2010|p=25}}; {{harvnb|Jones|2010}}).
</nowiki>|
Article text ({{harvnb|Smith|2010|p=25}}; {{harvnb|Jones|2010}}).
|<nowiki>
Article text.<ref>{{harvnb|Smith|2010|p=25}}; {{harvnb|Jones|2010}}</ref>
</nowiki>
|Article text.<ref>{{harvnb|Smith|2010|p=25}}; {{harvnb|Jones|2010}}</ref>
{{Fake heading|sub=3|Notes}}
<references />
|<nowiki>
Article text.{{sfnm|la1=Smith|y1=2010|p1=25|la2=Jones|y2=2010}}
</nowiki>
|Article text.<ref>{{harvnb|Smith|2010|p=25}}; {{harvnb|Jones|2010}}</ref>
{{Fake heading|sub=3|Notes}}
<references />
|<nowiki>
==References==
* {{cite book |last = Smith |first = John ... Smith's book}}
* {{cite book |last = Jones |first = Mary ... Jones' book}}
</nowiki>
|{{Fake heading|sub=3|References}}
* {{cite book |last = Smith |first = John |date = 2010 |title = Smith's book }}
* {{cite book |last = Jones |first = Mary |date = 2010 |title = Jones' book }}
}}
Note that {{tl2|sfn}} is inappropriate for bundled citations; use {{tl2|harvnb}} or {{tl2|sfnm}}.
====More exotic Harvard citations: [[Template:harvid|<code><nowiki>{{harvid}}</nowiki></code>]] or [[Template:harvs|<code><nowiki>{{harvs}}</nowiki></code>]]====
{{Main|Template:Harvard citations|Template:harvid}}
More exotic Harvard citations can be constructed using the {{tl2|harvs}} template, such as multiple papers by the same author, using both the first and last names, links to articles about the author, and others. Any kind of unusual link can also be constructed using the idiom <code><nowiki>[[#{{harvid|</nowiki></code>''parameters''<code><nowiki>}}|</nowiki></code>''link name''<code><nowiki>]]</nowiki></code>. ({{tl|citeref}} is a wrapper for {{tl|harvid}} making it easier to consistently create such internal links in small superscript<sup>[n]</sup> or plain-text label styles.)
{{markup|<nowiki>
The theory was developed by {{harvs|txt|first=F. J.|last=Murray|author1-link=F. J. Murray|first2=J.|last2=von Neumann|author2-link=John von Neumann|year=1936|year2=1937|year3=1943}}.
</nowiki>|
The theory was developed by {{harvs|txt|first=F. J.|last=Murray|author1-link=F. J. Murray|first2=J.|last2=von Neumann|author2-link=John von Neumann|year=1936|year2=1937|year3=1943}}.
|<nowiki>
The theory was developed by [[F. J. Murray]] and [[John von Neumann|J. von Neumann]] ([[#{{harvid|Murray|von Neumann|1936}}|1936]],[[#{{harvid|Murray|von Neumann|1937}}|1937]],[[#{{harvid|Murray|von Neumann|1943}}|1943]]).
</nowiki>|
The theory was developed by [[F. J. Murray]] and [[John von Neumann|J. von Neumann]] ([[#{{harvid|Murray|von Neumann|1936}}|1936]], [[#{{harvid|Murray|von Neumann|1937}}|1937]], [[#{{harvid|Murray|von Neumann|1943}}|1943]]).
|<nowiki>
== References ==
* {{citation | last1 = Murray | first1 = F. J. | date = 1936 | ...}}
* {{citation | last1 = Murray | first1 = F. J. | date = 1937 | ...}}
* {{citation | last1 = Murray | first1 = F. J. | date = 1943 | ...}}
</nowiki>|
{{fake header|sub=3|References}}
* {{citation | last=Murray | first=F. J.| last2=von Neumann | first2=John | date=1936 | title=Mathematics Paper }}
* {{citation | last=Murray | first=F. J.| last2=von Neumann | first2=John | date=1937 | title=Another Mathematics Paper }}
* {{citation | last=Murray | first=F. J.| last2=von Neumann | first2=John | date=1943 | title=Yet Another Mathematics Paper }}
}}
Some articles use this idiom <code><nowiki>[[#CITEREF</nowiki></code>''id ''|'' link name ''<code><nowiki>]]</nowiki></code>. See notes on [[#Implementation notes|implementation details]] below.
===Variations===
==== Using colon format: {{tl2|harvcol}}, {{tl2|harvcolnb}}, {{tl2|harvcoltxt}} ====
Templates {{tl2|harvcol}}, {{tl2|harvcolnb}}, and {{tl2|harvcoltxt}} use a colon to indicate the page number(s) or location.
{{markup
|<nowiki>{{harvcol|Smith|2011|p=25}}</nowiki>|{{harvcol|Smith|2011|p=25}}
|<nowiki>{{harvcolnb|Smith|2011|p=25}}</nowiki>|{{harvcolnb|Smith|2011|p=25}}
|<nowiki>{{harvcoltxt|Smith|2011|p=25}}</nowiki>|{{harvcoltxt|Smith|2011|p=25}}
|<nowiki>{{harvcol|Smith|2011|p=25–26}}</nowiki>|{{harvcol|Smith|2011|p=25–26}}
|<nowiki>{{harvcol|Smith|2011|loc=chpt. 3}}</nowiki>|{{harvcol|Smith|2011|p=chpt. 3}}}}
==== Parentheses around the year: [[Template:sfnp|<code><nowiki>{{sfnp}}</nowiki></code>]] and [[Template:harvp|<code><nowiki>{{harvp}}</nowiki></code>]] ====
Template {{tl2|sfnp}} puts parentheses around the year. Compare the two examples.
{{markup
|<nowiki>
Article text.{{sfnp|Smith|2011}}
== Notes ==
{{reflist}}
</nowiki>|
Article text.{{sfnp|Smith|2011}}
{{Fake heading|sub=3|Notes}}
{{reflist}}
|<nowiki>
Article text.{{sfn|Smith|2011}}
== Notes ==
{{reflist}}
</nowiki>|
Article text.{{sfn|Smith|2011}}
{{Fake heading|sub=3|Notes}}
{{reflist}}
}}
Similarly, in order to mimic {{cs1}} citations, template {{tl2|harvp}} puts parentheses around the year.
{{markup
|<nowiki>{{harvp|Smith|2011|p=25}}</nowiki>|{{harvp|Smith|2011|p=25}}
}}
==Tracking categories==
{{clc|Pages using sfn with unknown parameters}}<noinclude>
{{Documentation}}
</noinclude>
7ssame6e946ka3p39kjtg4tnsy4vtjt
Ta̱mpi̱let:Harvard citation documentation
10
2115
16087
2022-08-19T20:07:50Z
Kambai Akau
15
Created page with "{{tl1|{{{1}}}}} is designed to be used to create {{sfnote|lc=y}}, a citation style where there is an author-date citation in a footnote and a [[WP:HOWCITE|complete citation]] in a references section at the end of the article. (See example [[#Usage|below]].) This citation style is used to reduce clutter in the edit window and to combine identical citations. Common problems and known workarounds are given in the section [[#Possible issues|possible issues]] section below...."
wikitext
text/x-wiki
{{tl1|{{{1}}}}} is designed to be used to create {{sfnote|lc=y}}, a citation style where there is an author-date citation in a footnote and a [[WP:HOWCITE|complete citation]] in a references section at the end of the article. (See example [[#Usage|below]].) This citation style is used to reduce clutter in the edit window and to combine identical citations.
Common problems and known workarounds are given in the section [[#Possible issues|possible issues]] section below.
There are several other templates that are designed for use with shortened footnotes. They differ slightly in the way they format the author-date citation and how much of their functionality is automated. A full list of these related templates is [[#Other author–date citation templates|below]].
Note that the use (or even non-use) of these templates is an element of citation "style", and adding or removing them in articles with an established style should be consistent with that style. See [[WP:CITEVAR]].
{{#if:{{{noref|}}}||<nowiki/>
Also note that inline use of these templates, i.e. use of {{tl|harv}} without {{tag|ref}} tags around it, [[WP:PARREF|was deprecated in September 2020]].}}
lhpnav03hxdw9mjzgmx4m8ngsu91nml
Ta̱mpi̱let:Harvard citation
10
2116
16089
16088
2022-08-19T20:10:30Z
Kambai Akau
15
Kambai Akau shyei wat hu [[Ta̱mpi̱let:Harv]] nat [[Ta̱mpi̱let:Harvard citation]]
wikitext
text/x-wiki
<includeonly>{{#invoke:Footnotes|harvard_citation
|bracket_left= (
|bracket_right = )
}}</includeonly><noinclude>
{{documentation}}
<!-- Add categories to the /doc subpage, interwikis to Wikidata, not here -->
</noinclude>
nu22p5asevjuxsevxu91z5vdnzmtbmi
Ta̱mpi̱let:Harv
10
2117
16090
2022-08-19T20:10:30Z
Kambai Akau
15
Kambai Akau shyei wat hu [[Ta̱mpi̱let:Harv]] nat [[Ta̱mpi̱let:Harvard citation]]
wikitext
text/x-wiki
#REDIRECT [[Ta̱mpi̱let:Harvard citation]]
djtge8grb1bhtivnhs9hxno3r8x2fop
Ta̱mpi̱let:Harvard citation/doc
10
2118
16095
16094
2022-08-19T20:16:14Z
Kambai Akau
15
wikitext
text/x-wiki
{{documentation subpage}}{{tsh|harv}}
<!-- Add categories where indicated at the bottom of this page and interwikis at Wikidata -->
{{high-use|6200}}
{{lua|Module:Footnotes}}
The '''harv''' ("Harvard citation") template creates a ''short-cite'' in the form of "{{xt|(Smith 2007, p. 22)}}", such as might be used in a "[[WP:PAREN|parenthetical]]" system of citation.
{{Harvard citation documentation|harv}}
<includeonly>{{Sandbox other||
<!-- Categories below this line; interwikis at Wikidata -->
[[Category:Author–date citation templates]]
}}</includeonly>
==Usage==
{{{1}}} generates an "author-date" style short-cite from the following parameters:
<div style="margin-left: 2em"><code>{{#if:{{{noref|}}}||<nowiki><ref></nowiki>}}{{{{{1}}} | <{{var|last1}}*> | <{{var|last2}}> | <{{var|last3}}> | <{{var|last4}}> | <{{var|year}}*> | p= <{{var|page}}> | loc= <{{var|location}}> }}{{#if:{{{noref|}}}||<nowiki></ref></nowiki>}}</code></div>
with
* <{{var|last1}}> – required; surname of first author or corporate author
* <{{var|last2}}>–<{{var|last4}}> – positional parameters; surnames of next three authors
* <{{var|year}}> – required; four-digit year; may have a lowercase disambiguation letter
* {{para|p}} – specific page referenced in the source
* {{para|pp}} – comma-separated list of individual pages and / or range(s) of pages referenced in the source
* {{para|loc}} – in-source location when {{para|p}} and {{para|pp}} are inappropriate; may be used to supplement {{para|p}} and {{para|pp}}; information such as a section or figure number.
Typical usage is shown in the example below. The text and the footnote are connected by a bi-directional link -- clicking on the superscript takes the reader to the footnote, clicking on the footnote number takes them back to the superscript. The clicking on the short citation takes them to the full citation in the references section.
{{#if:{{{noref|}}}|
Template {{{1}}} is not placed inside {{tag|ref}} tags and generates the footnote internally. (To place {{{1}}} in a footnote, see [[#A citation inside an explanatory footnote|putting a citation inside a footnote]], below.)
{{markup|<nowiki>
Article text.{{</nowiki>{{{1}}}<nowiki>|Smith|2020|p=25}}
More article text.{{</nowiki>{{{1}}}<nowiki>|Smith|2020|p=25}}
Still more article text.{{</nowiki>{{{1}}}<nowiki>|Smith|2020|p=26}}
==Notes==
{{reflist}}
==References==
* {{cite book
| last = Smith | first = John
| date = 2020
| title = Smith's Book
}}
</nowiki>|
Article text.{{{{{1}}}|Smith|2020|p=25}}
More article text.{{{{{1}}}|Smith|2020|p=25}}
Still more article text.{{{{{1}}}|Smith|2020|p=26}}
{{fake notes and references||}}
{{cite book
| last = Smith | first = John
| date = 2020
| title = Smith's Book
}}}}|
Template {{{1}}} is placed inside {{tag|ref}} tags to create {{sfnote|lc=y}}. (Using {{{1}}} outside of {{tag|ref}} tags [[WP:PARREF|was deprecated in September 2020]]).
{{markup|<nowiki>
Article text.<ref>{{</nowiki>{{{1}}}<nowiki>|Smith|2020|p=25}}</ref>
More article text.<ref>{{</nowiki>{{{1}}}<nowiki>|Smith|2020|p=25}}</ref>
Still more article text.<ref>{{</nowiki>{{{1}}}<nowiki>|Smith|2020|p=26}}</ref>
==Notes==
{{reflist}}
==References==
* {{cite book
| last = Smith | first = John
| date = 2020
| title = Smith's Book
}}
</nowiki>|
Article text.{{#tag:ref|{{{{{1}}}|Smith|2020|p=25}}}}
More article text.{{#tag:ref|{{{{{1}}}|Smith|2020|p=25}}}}
Still more article text.{{#tag:ref|{{{{{1}}}|Smith|2020|p=26}}}}
{{fake notes and references||}}
{{cite book
| last = Smith | first = John
| date = 2020
| title = Smith's Book
}}}}
}}
===Parameters===
====Author(s) and year====
The author and the year of publication are the only required parameters. Up to four authors can be given as parameters.
The [[#Possible issues|possible issues]] section below describes workarounds for various common problems, such as [[#Large number of authors|large number of authors]], [[#No author name in citation template|no author name]], [[#More than one work in a year|multiple works in the same year]], [[#More than one author with the same last name|multiple authors with same last name]] and others.
{{#if:{{{noref|}}}|
{{markup
|<nowiki>Article text.{{</nowiki>{{{1}}}<nowiki>|Smith|2020|p=25}}</nowiki>
|Article text.{{{{{1}}}|Smith|2020|p=25}}<br />
{{reflist}}
|<nowiki>Article text.{{</nowiki>{{{1}}}<nowiki>|Smith|Jones|2020|p=25}}</nowiki>
|Article text.{{{{{1}}}|Smith|Jones|2020|p=25}}<br />
{{reflist}}
|<nowiki>Article text.{{</nowiki>{{{1}}}<nowiki>|Smith|Jones|Brown|2020|p=25}}</nowiki>
|Article text.{{{{{1}}}|Smith|Jones|Brown|2020|p=25}}<br />
{{reflist}}
|<nowiki>Article text.{{</nowiki>{{{1}}}<nowiki>|Smith|Jones|Brown|Black|2020|p=25}}</nowiki>
|Article text.{{{{{1}}}|Smith|Jones|Brown|Black|2020|p=25}}<br />
{{reflist}}
}}|{{markup
|<nowiki>Article text.<ref>{{</nowiki>{{{1}}}<nowiki>|Smith|2020|p=25}}</ref></nowiki>
|Article text.{{#tag:ref|{{{{{1}}}|Smith|2020|p=25}}}}<br />
{{reflist}}
|<nowiki>Article text.<ref>{{</nowiki>{{{1}}}<nowiki>|Smith|Jones|2020|p=25}}</ref></nowiki>
|Article text.{{#tag:ref|{{{{{1}}}|Smith|Jones|2020|p=25}}}}<br />
{{reflist}}
|<nowiki>Article text.<ref>{{</nowiki>{{{1}}}<nowiki>|Smith|Jones|Brown|2020|p=25}}</ref></nowiki>
|Article text.{{#tag:ref|{{{{{1}}}|Smith|Jones|Brown|2020|p=25}}}}<br />
{{reflist}}
|<nowiki>Article text.<ref>{{</nowiki>{{{1}}}<nowiki>|Smith|Jones|Brown|Black|2020|p=25}}</ref></nowiki>
|Article text.{{#tag:ref|{{{{{1}}}|Smith|Jones|Brown|Black|2020|p=25}}}}<br />
{{reflist}}
}}
}}
====Location in the source text====
The optional parameters {{para|p}}, {{para|pp}} and {{para|loc}} can be used to indicate the location in the source, such as page numbers. For single pages, use {{para|p}}; for multiple pages (such as ranges), use {{para|pp}}. Use of {{para|p}} for multiple pages or {{para|pp}} for single pages can cause [[Help:Cite errors/Cite error references duplicate key|cite errors]]. {{para|loc}} can be used to specify a location in the source in another way, such as section numbers or chapters. The parameters {{para|page}} and {{para|pages}} exist as aliases for {{para|p}} and {{para|pp}}, respectively.
{{#if:{{{noref|}}}|
{{markup
|<nowiki>Article text.{{</nowiki>{{{1}}}<nowiki>|Smith|2020|p=25}}</nowiki>
|Article text.{{{{{1}}}|Smith|2020|p=25}}<br />
{{reflist}}
|<nowiki>Article text.{{</nowiki>{{{1}}}<nowiki>|Smith|2020|loc=chpt. 3}}</nowiki>
|Article text.{{{{{1}}}|Smith|2020|loc=chpt. 3}}<br />
{{reflist}}
|<nowiki>{{</nowiki>{{{1}}}<nowiki>|Smith|2020|loc=section 7}}</nowiki>
|Article text.{{{{{1}}}|Smith|2020|loc=section 7}}<br />
{{reflist}}
}}
|
{{markup
|<nowiki>Article text.<ref>{{</nowiki>{{{1}}}<nowiki>|Smith|2020|p=25}}</ref></nowiki>
|Article text.{{#tag:ref|{{{{{1}}}|Smith|2020|p=25}}}}<br />
{{reflist}}
|<nowiki>Article text.<ref>{{</nowiki>{{{1}}}<nowiki>|Smith|2020|pp=25–26}}</ref></nowiki>
|Article text.{{#tag:ref|{{{{{1}}}|Smith|2020|pp=25–26}}}}<br />
{{reflist}}
|<nowiki>Article text.<ref>{{</nowiki>{{{1}}}<nowiki>|Smith|2020|loc=chpt. 3}}</ref></nowiki>
|Article text.{{#tag:ref|{{{{{1}}}|Smith|2020|loc=chpt. 3}}}}<br />
{{reflist}}
|<nowiki>Article text.<ref>{{</nowiki>{{{1}}}<nowiki>|Smith|2020|loc=section 7}}</ref></nowiki>
|Article text.{{#tag:ref|{{{{{1}}}|Smith|2020|loc=section 7}}}}<br />
{{reflist}}
}}
}}
====Additional text====
The optional parameter {{para|postscript}} or {{para|ps}} can be used to change the text which appears at the end of the note in the reference list. (See [[#Additional comments or quotes|§ Adding additional comments or quotes]] and [[#No closing period|§ No closing period]], below.) The postscript is only effective the first time {{tl2|sfn}} is used for a particular author, year and location.
====Hard-coded link names====
''Not available in {{tl2|sfn}} and similar templates.''
The optional parameter {{para|ref}} is used to create a unusually named link from the short citation to the full citation. This parameter is usually not necessary, and it is more common to use {{tl2|sfnRef}} or {{tl2|harvid}} in the reference section. If you specify {{para|ref|none}}, no hyperlink is created. However, if one does not want the link, it is always possible to simply use plain text instead of the template. The parameter {{para|Ref}} is an alias for {{para|ref}}.
==Possible issues==
{{anchor|Additional comments or quotes}}
=== Adding additional comments or quotes ===
The templates {{tl2|harvnb}} or {{tl2|harvtxt}} can be used to add quotes or additional comments into the footnote. This effect can also be achieved using {{tl2|sfn}} by adding a quote or comment to {{para|loc}}. Examples are below.
{{markup
|<nowiki>
Some information.<ref>{{harvnb|Smith|2011|p=2}}: "A quote verifying the information."</ref>
== Notes ==
{{reflist}}
</nowiki>|
Some information.<ref>{{harvnb|Smith|2011|p=2}}: "A quote verifying the information."</ref>
{{Fake heading|sub=3|Notes}}
{{reflist}}
|<nowiki>
"A quote in a secondary source."<ref>{{harvtxt|Smith|2011|p=2}} quoted in {{harvtxt|Jones|2010|p=343}}</ref>
== Notes ==
{{reflist}}
</nowiki>|
"A quote in a secondary source."<ref>{{harvtxt|Smith|2011|p=2}} quoted in {{harvtxt|Jones|2010|p=343}}</ref>
{{Fake heading|sub=3|Notes}}
{{reflist}}
|<nowiki>
Some information.{{sfn|Smith|2011|loc=p. 2: "A quote verifying the information"}}
== Notes ==
{{reflist}}
</nowiki>|
Some information.{{sfn|Smith|2011|loc=p. 2: "A quote verifying the information"}}
{{Fake heading|sub=3|Notes}}
{{reflist}}
}}
{{lang|la|Nota bene}}: In the past, the use of {{para|ps}} has been advised to hold this additional information, but it is not suitable for this purpose. Two or more {{tlc|sfn}} templates with the same authors, same year, and same page, but different {{para|ps}} will result in a {{small|{{error|Cite error: The named reference ... was defined multiple times with different content}}}} message. This message happens because the reference names that {{tlc|sfn}} creates will be the same, but the content between the {{tag|ref|params=name="FOOTNOTE..."|o}} tag and the {{tag|ref|c}} tag will be different. A workaround is to convert one or some of the {{tlc|sfn}} templates to {{tlx|harvnb}} wrapped in {{tag|ref}} tags.
===Adding a URL for the page or location===
If a specific link to the page or section is available, a [[Uniform Resource Locator|URL]] can be added to the location or page number.
{{markup
|<nowiki>{{harv|Smith|2011|loc=[http://en.wikipedia.org chpt 3]}}</nowiki>
|{{harv|Smith|2011|loc=[http://en.wikipedia.org chpt 3]}}
|<nowiki>{{harv|Smith|2011|loc=[http://en.wikipedia.org &sect;7]}}</nowiki>
|{{harv|Smith|2011|loc=[http://en.wikipedia.org §7]}}
|<nowiki>Article text.{{sfn|Smith|2011|p=[http://en.wikipedia.org 3]}}
==Notes==
{{reflist}}
==References==
* {{cite book | last = Smith | date = 2011 | title = Smith's
other book }}</nowiki>
|{{Fake notes and references
|Article text.{{sfn|Smith|2011|p=[http://en.wikipedia.org 3]}}
|* {{cite book | last = Smith | date = 2011 | title = Smith's other book }}
}}}}
===A citation inside an explanatory footnote===
Sometimes an explanatory footnote requires a citation. Templates like {{tl1|sfn}} can't be directly imbedded between {{tag|ref}} tags, because the following message will be produced: {{small|{{error|Cite error references missing group||nocat=true}}}}.
The templates {{tl1|efn}} and {{tl1|notelist}} can be used to create separate explanatory footnotes from short citations, as shown in the first example. An article that uses this technique extensively is [[Chinese Room]].
It is also possible to use the [[magic word]] <code><nowiki>{{#tag:ref|...}}</nowiki></code> and the {{tl|sfn}} template will work correctly inside the footnote, as shown in the second example.
{{markup
|<nowiki>
Interesting fact.{{efn|Clarification of interesting fact.{{sfn|Smith|2018}}}}
==Notes==
{{notelist}}
==Citations==
{{reflist}}
==References==
* {{cite book
| last = Smith
| date = 2018
| title = Smith's other book }}
</nowiki>|
Interesting fact.{{efn|Clarification of interesting fact.{{sfn|Smith|2018}}}}
{{fake heading|Notes}}
{{notelist}}
{{fake heading|Citations}}
{{reflist}}
{{fake heading|References}}
* {{cite book
| last = Smith
| date = 2018
| title = Smith's other book }}
|<nowiki>
Interesting fact.{{#tag:ref|Clarification of interesting fact.{{sfn|Smith|2017}}}}
==Citations==
{{reflist}}
==References==
* {{cite book
| last = Smith
| date = 2017
| title = Smith's other book }}
</nowiki>|
Interesting fact.{{#tag:ref|Clarification of interesting fact.{{sfn|Smith|2017}}}}
{{fake heading|Notes}}
{{reflist}}
{{fake heading|References}}
* {{cite book
| last = Smith
| date = 2017
| title = Smith's other book }}
}}
====Multiple lists of inline citations====
Sometimes there is a need to create two or more separate lists of inline footnotes. For example some family trees are contained in templates, they are transluded into several biographies, and they have their own self contained citations (see [[Template:Houston family tree]] and the article [[Margaret Lea Houston]]).
To facilitate this, while the main page uses the standard 1,2,3 footnote counting, it is common for family trees to use the efn template with a group parameter set—for example {{tlx|efn-lg}} (lower-greek). The efn templates are text templates, to link some or all of the content of the efn template to a long citation template such as {{tlx|cite book}} place {{tlx|harvnb}} or {{tlx|harv}} within the efn template.
{{markup
|<nowiki>
...by the fact itself.<ref>{{harvnb|Smith|2018|p=1}}</ref>
==Family Tree==
He's his own grandpa.{{efn-lg|{{harvnb|Latham|1947|p=9}} }}
===FT notes===
{{notelist-lg}}
===FT references===
*{{citation
|last=Latham
|first=Dwight
|date=1947
|title=The Adams family}}
==See also==
[[Ipso facto]]<ref>{{harvnb|Smith|2018|p=2}}</ref>
==Notes==
{{Reflist}}
==References==
* {{citation
|last=Smith
|date=2018
|title=Smith's other book}}
</nowiki>|
...by the fact itself.<ref>{{harvnb|Smith|2018|p=1}}</ref>
{{fake heading|Family Tree}}
He's his own grandpa.{{efn-lg|{{harvnb|Latham|1947|p=9}} }}
<small>{{fake heading|FT notes}}</small>
{{notelist-lg}}
<small>{{fake heading|FT references}}</small>
*{{citation
|last=Latham
|first=Dwight
|date=1947
|title=The Adams family}}
{{fake heading|See also}}
[[Ipso facto]]<ref>{{harvnb|Smith|2018|p=2}}</ref>
{{fake heading|Notes}}
{{Reflist}}
{{fake heading|References}}
* {{citation
|last=Smith
|date=2018
|title=Smith's other book }}
}}
===More than one work in a year===
Where there is a need to cite more than one work ''by the same author published in the same year'', the standard way to disambiguate such works is to add a letter suffix after the year element of the {{tlc|sfn}} template (e.g. {{tlc|sfn|Smith|2006a}} and {{tlc|sfn|Smith|2006b}}). Make sure to add the disambiguation letter to the matching full citation, (e.g. <code><nowiki>{{cite book|...|last=Smith|date=2006b}}</nowiki></code>).
====Templates that use Module:Citation/CS1====
When {{tlc|sfn}} is used with {{tlx|citation}} or {{cs1}} templates, a year-suffix letter may be added to {{para|date}} for all accepted date formats except year-initial numeric ({{small|YYYY-MM-DD}}). It is not necessary to include both {{para|date}} and {{para|year}} (see exception [[#NB_YEAR|below]]). If both are included, {{para|year}} is used for the <code>CITEREF</code> anchor to be compliant with legacy citations.
:{{para|date|2013a}}: simple year only dates
:{{para|date|Jan 2013b}} or {{para|date|Winter 2013b}}: month or season and year dates
:{{para|date|9 November 2013b}} or {{para|date|November 9, 2013b}}: full dates
:{{para|date|June–July 2013c}} or {{para|date|Winter–Spring 2013c}}: month or season ranges and year dates
:{{para|date|c. 2013d}}: circa year dates
:{{para|date|{{#time:Y}}–{{#time:Y|now +1 year}}f}} or {{para|date|Summer {{#time:Y}}–{{#time:y|now +1 year}}f}}: year ranges
:{{para|date|n.d.e}}: no date (n.d.)
:{{anchor|NB_YEAR}}<s>{{para|date|2013x-11-09}}</s>: not supported, the template must use {{para|year|2013x}}. If month and day should be part of the citation as well, both parameters need to be given: {{para|date|2013-11-09}} {{para|year|2013x}}. In this case, {{para|date}} is used for citation display and metadata purposes, and {{para|year}} for link disambiguation.
{{markup
|<nowiki>Article text.{{sfn|Smith|1993a|p=25}}
More text.{{sfn|Smith|1993b|p=32}}
==Notes==
{{reflist}}
==References==
* {{cite journal
|last=Smith
|first=Karen
|date=January 1993a
|title=Smith's first paper
|journal=Important Journal
}}
* {{cite journal
|last=Smith
|first=Karen
|date=Spring–Summer 1993b
|title=Smith's second paper
|journal=Another Important Journal
}}</nowiki>
|{{fake notes and references
|Article text.{{sfn|Smith|1993a|p=25}}
More text.{{sfn|Smith|1993b|p=32}}
|* {{cite journal|last=Smith|first=Karen|date=January 1993a|title=Smith's first paper|journal=Important Journal}}
* {{cite journal|last=Smith|first=Karen|date=Spring–Summer 1993b|title=Smith's second paper|journal=Another Important Journal}}
}}}}
=== More than one author with the same last name ===
The above solution to add a letter suffix after the year element also works for multiple authors with the same last name. For example, both [[Richard Bushman]] and [[Claudia Lauper Bushman]] published books in 2006. To differentiate between the two books, the first one can be given the year "2006a" and the second one "2006b".
===Large number of authors===
Only the first four authors are required by the template. Listing more is not supported. It is also possible to use the {{para|ref|{{tl|harvid}}}} in the citation template, which allows a more concise citation in the article text.
{{markup
|<nowiki>Article text.<ref>{{harv|Smith|Jones|Brown|Black|1994|p=25}}</ref>
==Notes==
{{reflist}}
==References==
* {{cite journal
| last = Smith
| last2 = Jones
| last3 = Brown
| last4 = Black
| last5 = Davis
| last6 = Martinez
| last7 = Hsu
| date = 1994
| title = Scientific paper written by
many scientists
| journal = Important Journal
}}</nowiki>
|{{fake notes and references
|Article text.<ref>{{harv|Smith|Jones|Brown|Black|1994|p=25}}</ref>
|
* {{cite journal
| last = Smith
| last2 = Jones
| last3 = Brown
| last4 = Black
| last5 = Davis
| last6 = Martinez
| last7 = Hsu
| date = 1994
| title = Scientific paper written by many scientists
| journal = Important Journal}}
}}
|<nowiki>Article text.<ref>{{harv|Smith et al.|1995|p=25}}</ref>
==Notes==
{{reflist}}
==References==
* {{cite journal
| last = Smith
| last2 = Jones
| last3 = Brown
| last4 = Black
| last5 = Davis
| last6 = Martinez
| last7 = Hsu
| date = 1995
| title = Another paper by many scientists
| journal = Important Journal
| ref = {{harvid|Smith et al.|1995}}
}}</nowiki>
|{{fake notes and references
|Article text.<ref>{{harv|Smith et al.|1995|p=25}}</ref>
|
* {{cite journal
| last = Smith
| last2 = Jones
| last3 = Brown
| last4 = Black
| last5 = Davis
| last6 = Martinez
| last7 = Hsu
| date = 1995
| title = Another paper by many scientists
| journal = Important Journal
| ref = {{harvid|Smith et al.|1995}}
}}
}}}}
===No author name in citation template===
Some sources do not have a single author with a last name, such as a magazine article or a report from a government institution. There is no consensus (in Wikipedia or among citation styles) about how to format author–date citations for works that do not have a specific author. Several choices are:
# For a newspaper or periodical, you may use the name of the paper and the date.
# For a publication by an institution, use either:
## The initials of the institution
## The name of the institution
# Alternatively, some style guides recommend using the title of the article.
# Other style guides recommend using "Anonymous" or "Anon."
An article should adopt one of these styles consistently. Using {{para|ref|{{tl|harvid}}}} in the citation template can handle these cases.
{{markup
|<nowiki>Article text.{{sfn|BGI|1996|p=429}}
==Notes==
{{reflist}}
==References==
* {{cite book
| title = Important Book
| date = 1996
| publisher = Big Government Institution
| ref = {{harvid|BGI|1996}}
}}</nowiki>
|{{fake notes and references
|Article text.{{sfn |BGI|1996|p=429}}
|* {{cite book
| title = Important Book
| date = 1996
| publisher = Big Government Institution
| ref = {{harvid|BGI|1996}}
}}}}
|<nowiki>Article text.{{sfn |''Popular Magazine''|1996|p=29}}
==Notes==
{{reflist}}
==References==
* {{cite magazine
| magazine = Popular Magazine
| title = An Article by an Anonymous Author
| date = 1996
| ref = {{harvid|Popular Magazine|1996}}
}}</nowiki>
|{{fake notes and references
|Article text.{{sfn |''Popular Magazine''|1996|p=29}}
|* {{cite magazine
| magazine = Popular Magazine
| title = An Article by an Anonymous Author
| date = 1996
| ref = {{harvid|Popular Magazine|1996}}
}}}}}}
===Citation has <code>|date=</code> and no <code>|year=</code>===
Either the {{para|date}} or {{para|year}} of a citation template can be matched—the template logic can extract the year from a full date. If the date parameter is not a full date, then the extraction will fail. If the link does not seem to work, it also possible to set both {{para|date}} and {{para|year}} parameters. The template will display the date and use the year for the anchor. These two examples show a year being successfully extracted from full date.
{{markup
|<nowiki>Article text.{{sfn|Smith|1997|p=101}}
==Notes==
{{reflist}}
==References==
* {{cite journal
| last = Smith | first = Karen
| date = 11 May 1997
| title = Smith's 1997 paper
| journal= Important Journal
}}</nowiki>
|{{fake notes and references
| Article text.{{sfn|Smith|1997|p=101}}
|* {{cite journal
| last = Smith | first = Karen
| date = 11 May 1997
| title = Smith's 1997 paper
| journal= Important Journal
}}}}
|<nowiki>Article text.{{sfn|Smith|1998|p=101}}
==Notes==
{{reflist}}
==References==
* {{cite journal
| last = Smith | first = Karen
| date = May 1998
| title = Smith's 1998 paper
| journal= Important Journal
}}</nowiki>
|{{fake notes and references
| Article text.{{sfn|Smith|1998|p=101}}
|* {{cite journal
| last = Smith | first = Karen
| date = May 1998
| title = Smith's 1998 paper
| journal= Important Journal
}}}}}}
===Using {{{1}}} with [[Template:vcite|<code><nowiki>{{vcite}}</nowiki></code>]]===
The {{vcite}} family of templates use parameter {{para|harvid}} to create an anchor for the Harvard citation templates. This must be set to a concatenation of the parameters passed to the Harvard citation template.
{{markup
|<nowiki>Article text.{{sfn|Smith|1999|p=101}}
==Notes==
{{reflist}}
==References==
* {{vcite book
| author = Smith K
| date = 1999
| title = Smith's 1999 Book
| harvid = Smith1999
}}</nowiki>
|{{fake notes and references
| Article text.{{sfn|Smith|1999|p=101}}
|* {{vcite book
| author = Smith K
| date = 1999
| title = Smith's 1999 Book
| harvid = Smith1999
}}}}}}
===Citation format does not support anchors: [[Template:wikicite|<code><nowiki>{{wikicite}}</nowiki></code>]]===
In a few very rare cases, it may be impossible for the citation templates to create an anchor. Either (1) the citation is formatted with a template that does not support the {{para|ref}} parameter or (2) the source can't be described using our citation templates at all. In these cases, it is possible to use {{tl2|wikicite}} to make the anchor. (As of November 2010, there are only approximately 100 articles that require this technique.) It is also possible that (3) local editors would prefer not to use citation templates. In this case, it is important to discuss what the local editors would like to do about the bad links. It is always possible to simply remove {{tl2|harv}} or {{tl2|sfn}}, leaving plain text without links.
{{markup
|<nowiki>Article text.{{sfn |Big Government Agency|1999}}
==Notes==
{{reflist}}
==References==
* {{wikicite
| reference = {{cite report
| title=Important Government Report
| publisher=Big Government Agency
| date=1999
}}
| ref = {{harvid|Big Government Agency|1999}}
}}
</nowiki>
|{{fake notes and references
| Article text.{{sfn |Big Government Agency|1999}}
|* {{wikicite
| reference = {{cite report
| title=Important Government Report
| publisher=Big Government Agency
| date=1999
}}
| ref = {{harvid|Big Government Agency|1999}}
}}}}
|<nowiki>Article text.{{sfn |A particularly unusual citation}}
==Notes==
{{reflist}}
==References==
* {{wikicite
| reference = A source that can't be described
using our citation templates at all.
| ref = {{harvid|A particularly unusual citation}}
}}
</nowiki>
|{{fake notes and references
| Article text.{{sfn |A particularly unusual citation}}
|* {{wikicite
| reference = A source that can't be described using our citation templates at all.
| ref = {{harvid|A particularly unusual citation}}
}}}}}}
It is also possible to use {{tag|cite|o}} to achieve the same effect, but this may not be compatible with [[HTML 5]].
===Citation has multiple authors and no date===
The templates assume that the last unnamed parameter is the year. Where there are multiple authors and no year, the template will form a correct link but will display the last author as if it were a year. To force the displayed text to show all authors as names, the following workaround may be used:
{{markup
|<nowiki>Article text.<ref>[[#{{harvid|Lane|Singh}}|Lane & Singh]]</ref>
==Notes==
{{reflist}}
==References==
* {{citation
| last = Lane
| first = Kieran
| last2 = Singh
| first2 = Karun
| title = Richard Watts
| work = Richard Watts Charities
| url = http://www.richardwatts.org.uk/richardwatts1.html
| access-date = 21 June 2012
}}
</nowiki>
|{{fake notes and references
| Article text.<ref>[[#{{harvid|Lane|Singh}}|Lane & Singh]]</ref>
|* {{citation
| last = Lane
| first = Kieran
| last2 = Singh
| first2 = Karun
| title = Richard Watts
| work = Richard Watts Charities
| url = http://www.richardwatts.org.uk/richardwatts1.html
| access-date = 21 June 2012
}}}}}}
{{anchor|No closing period}}
=== No closing period: <code>|ps=none</code> ===
Using {{para|ps|none}} in {{tl2|sfn}} removes the final period. Compare the two examples. Suppressing the default period (full stop) ensures consistency with [[Help:Citation_Style_2|Citation style 2]], as produced by {{tl2|Citation}}, which does not use a trailing period (full stop) when rendering full citations. The postscript is only effective the first time {{tl2|sfn}} is used for a particular author, year, and location. {{para|ps|}} will also suppress terminal punctuation. Follow-on editors who encounter 'empty' parameters can't know if a previous editor intended to leave that parameter blank. Using the keyword none is a positive indication of the previous editor's intent.
{{markup
|<nowiki>
Article text.{{sfn|Smith|2011|ps=none}}
== Notes ==
{{reflist}}
</nowiki>|
Article text.{{sfn|Smith|2011|ps=none}}
{{Fake heading|sub=3|Notes}}
{{reflist}}
|<nowiki>
Article text.{{sfn|Smith|2011}}
== Notes ==
{{reflist}}
</nowiki>|
Article text.{{sfn|Smith|2011}}
{{Fake heading|sub=3|Notes}}
{{reflist}}
}}
===Wikilink to citation does not work===
If an article is using this template, and nothing happens when you click on the highlighted [[wikilink]] from a Harvard style citation to a full citation at the bottom of the page, there are several possible solutions. If:
# The correct citation does ''not'' appear at the bottom of the article. '''Solution''': Find the source (it may be copied from an article on a similar subject), and check that it verifies the text. If the source can't be found, tag the citation with {{tl2|citation not found}}.
# The correct citation appears at the bottom of the article, and
## The Harvard citation uses a template (such as {{tl2|sfn}} or {{tl2|harv}}):
### The citation uses a template from the list at [[Help:Citation Style 1|Citation Style 1]]:
#### The name is spelled or capitalized differently here than in the citation. '''Solution''': check the source for the correct spelling, and use the same spelling, spacing, and capitalization in both the short and full citations.
#### The year is different here than the citation. '''Solution''': check the source for the correct year, and use the same year in both the short and full citations.
#### The template has a {{para|date}} field and no {{para|year}} field, but the format of the {{para|date}} field is unusual. '''Solution''': Try to fix the date. If the link still does not work, add {{para|year}} to the citation template. (It's okay if it has both.)
#### The citation does not have an author's, or an editor's, last name (authors take precedence over editors). '''Solution''': check that {{para|ref|{{tl|harvid|''args''}}}} is set correctly (see below).
### The citation uses a [[Help:Citation Style Vancouver|Citation Style Vancouver]] template. '''Solution''': check that {{para|harvid}} is set correctly (see below).
### The citation uses a template that does not support {{para|ref}} (See [[Wikipedia:Citation templates and reference anchors]]). '''Solution''': Consider modifying the template to support {{para|ref}}. Alternatively, an anchor can be created using <code><nowiki>{{wikicite|id={{harvid|</nowiki>''args''<nowiki>}}|reference={{</nowiki>''citation''<nowiki>}}}}</nowiki></code>.
### The full citation does not use a template:
#### It has no wikicode to create an anchor. '''Solution''': If {{cite *}} citation templates are used liberally throughout the article, then reformat the full citation with the appropriate {{cite *}} template (and set the {{para|ref}} appropriately, if necessary). Otherwise consult with local editors on the talk page about how to proceed. Either add {{cite *}} templates and {{tl2|harv}} templates, or remove all templates, depending on what local editors prefer. A few articles use {{tl2|wikicite}} to create an anchor as an alternative to standard templates.
#### It uses a {{tag|cite}} span to create an anchor. '''Solution''': remove the cite span (these are deprecated) and proceed following the recommendation immediately above.
#### It uses {{tl2|wikicite}}. '''Solution''': Check that the text in {{para|id|{{tl|harvid|''args''}}}} matches the text in {{tl2|wikicite}}.
## If the Harvard citation uses a handwritten wikilink, such as <code><nowiki>[[#Reference-Smith2006|Smith (2006)]]</nowiki></code>:
### The citation uses a citation template which supports {{para|ref}} (See [[Wikipedia:Citation templates and reference anchors]]). '''Solution''': Check that {{para|ref}} is set to a matching id.
### Otherwise, check that the reference has <code><nowiki>{{wikicite|ref=</nowiki>''id''<nowiki>|reference=</nowiki>''citation''<nowiki>}}</nowiki></code> with a matching id.
Templates that have broken [[wikilink]]s using these templates are added to the category {{cat|All articles with broken links to citations}}.
===Link works but displays a no target error===
When a short-cite template links to a full citation that is rendered by a template that wraps a CS1 template, like {{txl|cite DNB}} (which wraps {{txl|cite encyclopedia}}), a {{error-small|no target}} error may be displayed even when the short-cite template is valid and the link works. That is a "false positive" error. The error message can be suppresed by adding {{para|ignore-err|yes}} to the template.
==Other author–date citation templates==
There are several templates used to create short citations; they differ in the use and placement of parentheses, in the separator before the page or location, and in whether a terminal full stop (period) is present:
{| class="wikitable"
|+ In-text templates
! Templates !! Aliases !! Example
|-
|{{tl2|Harvard citation no brackets}} || {{tl2|harvnb}} || {{harvnb|Smith|2006|p=25}}
|-
| {{tl2|Harvard citation}} || {{tl2|harv}} || {{harv|Smith|2006|p=25}}
|-
| {{tl2|Harvard citation text}} || {{tl2|harvtxt}} || {{harvtxt|Smith|2006|p=25}}
|-
| {{tl2|Harvcoltxt}} || || {{Harvcoltxt|Smith|2006|p=25}}
|-
| {{tl2|Harvcol}} || || {{Harvcol|Smith|2006|p=25}}
|-
| {{tl2|Harvcolnb}} || || {{Harvcolnb|Smith|2006|p=25}}
|-
| {{tl2|Harvard citations}} || {{tl2|harvs}} || {{harvs|txt=yes|last=Smith|first=John|year1=2006| year2=2007|page=25}} ''(and many other forms)''.
|-
| {{tl2|Harvp}} || || {{harvp|Smith|2006|page=25}}
|-
| {{tl2|Harvc}} || {{tl2|Citec}} || (Cite several contributions/chapters in a larger work)<br />Article text.{{sfn|Stout|Johnson|1957}} More article text.{{sfn|Wadleigh|1957}} Even more article text.<ref>[[#Stefferud preface|Stefferud 1957]]</ref>
'''References'''
{{reflist}}
'''Sources'''
* {{cite book|title=Soil: The Yearbook of Agriculture 1957|editor-last=Stefferud|editor-first=Alfred|date=1957|publisher=United States Department of Agriculture|url=//archive.org/stream/yoa1957#page/n2/mode/1up|oclc=704186906}}
** {{harvc|last=Stefferud|first=A.|year=1957|id=Stefferud preface |c=Preface |url=//archive.org/stream/yoa1957#page/n7/mode/1up |in=Stefferud |ignore-err=yes}}
** {{harvc|last1=Stout|first1=P. R.|last2=Johnson|first2=C. M.|year=1957|c=Trace Elements |url=//archive.org/stream/yoa1957#page/n167/mode/1up |in=Stefferud |ignore-err=yes}}
** {{harvc|last=Wadleigh|first=C. H.|year=1957 |c=Growth of Plants |url=//archive.org/stream/yoa1957#page/n57/mode/1up |in=Stefferud |ignore-err=yes}}
|-
|{{tl2|Shortened footnote template}}|| {{tl2|sfn}} || Article text.{{sfn|Smith|2006|p=25}} <br /> {{Reflist}}
|-
|{{tl2|Sfnp}} || || Article text.{{sfnp|Smith|2006|p=25}} <br /> {{Reflist}}
|-
|{{tl2|Sfnm}} || || Article text.{{sfnm|1a1=Smith|1a2=Jones|1a3=Brown|la4=Black|1y=2005|1p=15|2a1=Smith|2y=2006|2p=50}} <br /> {{Reflist}}
|-
|{{tl2|Sfnmp}} || || Article text.{{sfnmp|1a1=Smith|1a2=Jones|1a3=Brown|la4=Black|1y=2005|1p=15|2a1=Smith|2y=2006|2p=50}} <br /> {{Reflist}}
|}
Full citations can be created manually or by templates:
* {{cs1}} templates
* {{tl2|citation}}
All of these templates have the same parameters and basic functionality. This page describes all of them except the parameters of {{tl2|sfnm}} and {{tl2|harvs}}; please see their documentation pages. Editors editing one of these templates are requested to make parallel changes to the other versions.
===Applications of these templates===
====Harvard citation: [[Template:harv|<code><nowiki>{{harv}}</nowiki></code>]]====
<!--{{see also|Wikipedia:Citing sources#Parenthetical referencing}}-->
Template {{tl2|harv}} creates a [[Wikipedia:Citing sources#Parenthetical referencing|parenthetical reference]] with a link to the full citation in the references section at the bottom of the article.
{{Markup
|<nowiki>Article text.<ref>{{harv|Smith|2006|p=25}}</ref>
==Notes==
{{reflist}}
==References==
* {{cite book
| last = Smith | first = John
| title = Smith's book
| date = 2006
}}</nowiki>
|
Article text.<ref>{{harv|Smith|2006|p=25}}</ref>
{{fake heading|sub=3|Notes}}
{{reflist}}
{{fake heading|sub=3|References}}
* {{cite book|last=Smith|first=John|title=Smith's book|date=2006}}
}}
{{anchor|Shortened footnote}}
====Shortened footnote: [[Template:sfn|<code><nowiki>{{sfn}}</nowiki></code>]] or [[Template:harvnb|<code><nowiki>{{harvnb}}</nowiki></code>]]====
{{see also|Wikipedia:Citing sources#Short citations|Help:Shortened footnotes}}
Template {{tl2|harvnb}} inside a {{tag|ref|o}} span can be used to create a [[Help:Shortened footnotes|shortened footnote]] that is linked to the full citation at the bottom of the article. Template {{tl2|sfn}} (without the use of {{tag|ref|o}}) has the same effect, automatically adds a period (full stop) after the page number, and combines identical footnotes automatically.
{{markup|<nowiki>
Article text.{{sfn|Smith|2007|p=25}}
More article text.{{sfn|Smith|2007|p=25}}
Still more article text.{{sfn|Smith|2007|p=26}}
==Notes==
{{reflist}}
==References==
* {{cite book
| last = Smith | first = John
| date = 2007
| title = Smith's Book
}}
</nowiki>|
Article text.{{sfn|Smith|2007|p=25}}
More article text.{{sfn|Smith|2007|p=25}}
Still more article text.{{sfn|Smith|2007|p=26}}
{{fake notes and references||}}
* {{cite book
| last = Smith | first = John
| date = 2007
| title = Smith's Book
}}
|<nowiki>
Article text.<ref name=Smith2008p25>{{harvnb|Smith|2008|p=25}}.</ref>
More article text.<ref name=Smith2008p25/>
Still more article text.<ref>{{harvnb|Smith|2008|p=26}}.</ref>
==Notes==
{{reflist}}
==References==
* {{cite book
| last = Smith | first = John
| date = 2008
| title = Smith's Book
}}
</nowiki>|
Article text.<ref name=Smith2007p25>{{harvnb|Smith|2008|p=25}}.</ref>
More article text.<ref name=Smith2007p25/>
Still more article text.<ref>{{harvnb|Smith|2008|p=26}}.</ref>
{{fake notes and references||}}
* {{cite book
| last = Smith | first = John
| date = 2008
| title = Smith's Book
}}
}}
====In text attribution: [[Template:harvtxt|<code><nowiki>{{harvtxt}}</nowiki></code>]]====
{{see also|Wikipedia:Citing sources#In-text attribution}}
Template {{tl2|harvtxt}} can be used to link an [[Wikipedia:Citing sources#In-text attribution|in-text attribution]] to the full citation at the bottom of the page.
{{markup
|<nowiki>According to {{harvtxt|Smith|2009|p=25}} ...
==References==
* {{citation
| last = Smith | first = John
| date = 2009
| title = Smith's Book
}}
</nowiki>
|
According to {{harvtxt|Smith|2009|p=25}} ...
{{Fake heading|sub=3|References}}
* {{citation
| last = Smith | first = John
| date = 2009
| title = Smith's Book
}}
}}
====Bundled citation: [[Template:harvnb|<code><nowiki>{{harvnb}}</nowiki></code>]] or [[Template:sfnm|<code><nowiki>{{sfnm}}</nowiki></code>]]====
{{see also|Wikipedia:Citing sources#Bundling citations}}
Template {{tl2|harvnb}} can be used to [[WP:CITE#Bundling citations|bundle citations]]. {{tl2|sfnm}} also produces bundled citations.
{{markup|<nowiki>
Article text ({{harvnb|Smith|2010|p=25}}; {{harvnb|Jones|2010}}).
</nowiki>|
Article text ({{harvnb|Smith|2010|p=25}}; {{harvnb|Jones|2010}}).
|<nowiki>
Article text.<ref>{{harvnb|Smith|2010|p=25}}; {{harvnb|Jones|2010}}</ref>
</nowiki>
|Article text.<ref>{{harvnb|Smith|2010|p=25}}; {{harvnb|Jones|2010}}</ref>
{{Fake heading|sub=3|Notes}}
<references />
|<nowiki>
Article text.{{sfnm|la1=Smith|y1=2010|p1=25|la2=Jones|y2=2010}}
</nowiki>
|Article text.<ref>{{harvnb|Smith|2010|p=25}}; {{harvnb|Jones|2010}}</ref>
{{Fake heading|sub=3|Notes}}
<references />
|<nowiki>
==References==
* {{cite book |last = Smith |first = John ... Smith's book}}
* {{cite book |last = Jones |first = Mary ... Jones' book}}
</nowiki>
|{{Fake heading|sub=3|References}}
* {{cite book |last = Smith |first = John |date = 2010 |title = Smith's book }}
* {{cite book |last = Jones |first = Mary |date = 2010 |title = Jones' book }}
}}
Note that {{tl2|sfn}} is inappropriate for bundled citations; use {{tl2|harvnb}} or {{tl2|sfnm}}.
====More exotic Harvard citations: [[Template:harvid|<code><nowiki>{{harvid}}</nowiki></code>]] or [[Template:harvs|<code><nowiki>{{harvs}}</nowiki></code>]]====
{{Main|Template:Harvard citations|Template:harvid}}
More exotic Harvard citations can be constructed using the {{tl2|harvs}} template, such as multiple papers by the same author, using both the first and last names, links to articles about the author, and others. Any kind of unusual link can also be constructed using the idiom <code><nowiki>[[#{{harvid|</nowiki></code>''parameters''<code><nowiki>}}|</nowiki></code>''link name''<code><nowiki>]]</nowiki></code>. ({{tl|citeref}} is a wrapper for {{tl|harvid}} making it easier to consistently create such internal links in small superscript<sup>[n]</sup> or plain-text label styles.)
{{markup|<nowiki>
The theory was developed by {{harvs|txt|first=F. J.|last=Murray|author1-link=F. J. Murray|first2=J.|last2=von Neumann|author2-link=John von Neumann|year=1936|year2=1937|year3=1943}}.
</nowiki>|
The theory was developed by {{harvs|txt|first=F. J.|last=Murray|author1-link=F. J. Murray|first2=J.|last2=von Neumann|author2-link=John von Neumann|year=1936|year2=1937|year3=1943}}.
|<nowiki>
The theory was developed by [[F. J. Murray]] and [[John von Neumann|J. von Neumann]] ([[#{{harvid|Murray|von Neumann|1936}}|1936]],[[#{{harvid|Murray|von Neumann|1937}}|1937]],[[#{{harvid|Murray|von Neumann|1943}}|1943]]).
</nowiki>|
The theory was developed by [[F. J. Murray]] and [[John von Neumann|J. von Neumann]] ([[#{{harvid|Murray|von Neumann|1936}}|1936]], [[#{{harvid|Murray|von Neumann|1937}}|1937]], [[#{{harvid|Murray|von Neumann|1943}}|1943]]).
|<nowiki>
== References ==
* {{citation | last1 = Murray | first1 = F. J. | date = 1936 | ...}}
* {{citation | last1 = Murray | first1 = F. J. | date = 1937 | ...}}
* {{citation | last1 = Murray | first1 = F. J. | date = 1943 | ...}}
</nowiki>|
{{fake header|sub=3|References}}
* {{citation | last=Murray | first=F. J.| last2=von Neumann | first2=John | date=1936 | title=Mathematics Paper }}
* {{citation | last=Murray | first=F. J.| last2=von Neumann | first2=John | date=1937 | title=Another Mathematics Paper }}
* {{citation | last=Murray | first=F. J.| last2=von Neumann | first2=John | date=1943 | title=Yet Another Mathematics Paper }}
}}
Some articles use this idiom <code><nowiki>[[#CITEREF</nowiki></code>''id ''|'' link name ''<code><nowiki>]]</nowiki></code>. See notes on [[#Implementation notes|implementation details]] below.
===Variations===
==== Using colon format: {{tl2|harvcol}}, {{tl2|harvcolnb}}, {{tl2|harvcoltxt}} ====
Templates {{tl2|harvcol}}, {{tl2|harvcolnb}}, and {{tl2|harvcoltxt}} use a colon to indicate the page number(s) or location.
{{markup
|<nowiki>{{harvcol|Smith|2011|p=25}}</nowiki>|{{harvcol|Smith|2011|p=25}}
|<nowiki>{{harvcolnb|Smith|2011|p=25}}</nowiki>|{{harvcolnb|Smith|2011|p=25}}
|<nowiki>{{harvcoltxt|Smith|2011|p=25}}</nowiki>|{{harvcoltxt|Smith|2011|p=25}}
|<nowiki>{{harvcol|Smith|2011|p=25–26}}</nowiki>|{{harvcol|Smith|2011|p=25–26}}
|<nowiki>{{harvcol|Smith|2011|loc=chpt. 3}}</nowiki>|{{harvcol|Smith|2011|p=chpt. 3}}}}
==== Parentheses around the year: [[Template:sfnp|<code><nowiki>{{sfnp}}</nowiki></code>]] and [[Template:harvp|<code><nowiki>{{harvp}}</nowiki></code>]] ====
Template {{tl2|sfnp}} puts parentheses around the year. Compare the two examples.
{{markup
|<nowiki>
Article text.{{sfnp|Smith|2011}}
== Notes ==
{{reflist}}
</nowiki>|
Article text.{{sfnp|Smith|2011}}
{{Fake heading|sub=3|Notes}}
{{reflist}}
|<nowiki>
Article text.{{sfn|Smith|2011}}
== Notes ==
{{reflist}}
</nowiki>|
Article text.{{sfn|Smith|2011}}
{{Fake heading|sub=3|Notes}}
{{reflist}}
}}
Similarly, in order to mimic {{cs1}} citations, template {{tl2|harvp}} puts parentheses around the year.
{{markup
|<nowiki>{{harvp|Smith|2011|p=25}}</nowiki>|{{harvp|Smith|2011|p=25}}
}}
==Implementation notes==
These templates use two elements: a [[wikilink]] in the body of the article, and an [[HTML element#Links and anchors|anchor]] in the reference section of the article. Clicking on the wikilink repositions the page at the anchor.
===Citation template [[HTML element#Links and anchors|anchor]]===
{{See also|Wikipedia:Citation templates and reference anchors}}
The most common citation templates are {{cs1}} or {{cs2}}. By default, [[Module:Citation/CS1]] creates an [[HTML element#Links and anchors|anchor]] {{tag|a|o|params=name="CITEREF"}} followed by the concatenation of the following parameters:
* '''last''' or '''last1''' or '''surname''' or '''surname1''' or '''author-last''' or '''author-last1''' or '''author1-last''' or '''author-surname''' or '''author-surname1''' or '''author1-surname''' or '''author''' or '''author1''' or '''authors''',
* '''last2''' or '''surname2''' or '''author-last2''' or '''author2-last''' or '''author-surname2''' or '''author2-surname''' or '''author2''',
* '''last3''' or '''surname3''' or '''author-last3''' or '''author3-last''' or '''author-surname3''' or '''author3-surname''' or '''author3''',
* '''last4''' or '''surname4''' or '''author-last4''' or '''author4-last''' or '''author-surname4''' or '''author4-surname''' or '''author4''',
* '''editor-last''' or '''editor-last1''' or '''editor1-last''' or '''editor-surname''' or '''editor-surname1''' or '''editor1-surname''' or '''editor1''' or '''editor''',
* '''editor-last2''' or '''editor2-last''' or '''editor-surname2''' or '''editor2-surname''' or '''editor2''',
* '''editor-last3''' or '''editor3-last''' or '''editor-surname3''' or '''editor3-surname''' or '''editor3''',
* '''editor-last4''' or '''editor4-last''' or '''editor-surname4''' or '''editor4-surname''' or '''editor4''',
* '''date''', '''year'''
This covers the most common templates. Information about all of the templates is available at [[Wikipedia:Citation templates and reference anchors]].
Use of the '''date''' parameter in place of the '''year''' parameter in citation templates is preferred.
===Harvard citation wikilink===
The Harvard citation templates create a [[wikilink]] to the anchor. For example {{tlx|Harv|Smith|2006|4=p=25}} produces the link {{code|#CITEREFSmith2006}} and {{tlx|Citation|2=last=Smith|3=first=John|4=date=27 January 2006|5=title=My Life}} produces the anchor {{code|CITEREFSmith2006}}.
===Using CITEREF directly===
A few articles create a custom ID using {{code|CITEREF}}, either in place of the Harvard citation template (e.g. <code><nowiki>[[#CITEREFSmith2006|(2006)]]</nowiki></code>) or as a value for {{para|ref}} in the citation template.
{{Refname rules|A custom ID must follow these rules:|
* If CITEREF is used, then spaces in the {{para|ref}} field must be replaced with underscores}}
Examples:
* {{tlx|sfn|{{var|cite name}}|{{var|year}}}}
* {{tlx|cite book|2=ref=CITEREF{{var|cite_nameyear}}}}
* {{tlx|cite book|2=ref={{tl|sfnref|{{var|cite_name}}|{{var|year}}}}}}
Where {{var|cite_name}} is a name such as the publisher.
To avoid the sometimes difficult to remember syntax for links to CITEREF anchors, {{tl|citeref}} can be used to create internal wikilinks with either small superscript-style labels (like this<sup>[n]</sup>) or plain free-text labels to such anchors. It can be used inside of other citations.
Note that the {{code|CITEREF}} prefix is necessary for the [[mw:Reference Tooltips|reference tooltips gadget]] ([[MediaWiki:Gadget-ReferenceTooltips.js]]) to detect that a link goes to a citation.
===[[Template:sfn|<code><nowiki>{{sfn}}</nowiki></code>]]'s [[WP:REFNAME|ref name]]===
Template {{tl2|sfn}} creates a [[WP:REFNAME|named footnote]], so that identical footnotes are combined automatically. The footnote name begins with {{code|FOOTNOTE}} followed by a concatenation of the arguments to {{tl2|sfn}}. E.g.: this template call {{tlx|sfn|Smith|2006|4=p=26}} should have exactly the same functionality as {{tag|ref|params=name="FOOTNOTESmith200626"|content={{tl|Harvnb|Smith|2006|4=p=26}}}} which, in turn, has the same functionality as {{tag|ref|params=name="FOOTNOTESmith200626"|content=<nowiki>[[#CITEREFSmith2006|Smith (2006)]], p. 26</nowiki>}}.
The ref name becomes more complicated when the page (p) parameter includes a URL, e.g. {{tlg|sfn|Joyce|1903|p{{=}}[https://archive.org/details/aconcisehistory00joycgoog/page/n226 213]|code=on}}, which, once defined, can be called by {{tag|ref|empty|params=name="FOOTNOTEJoyce1903[httpsarchiveorgdetailsaconcisehistory00joycgoogpagen226 213]"}}. The "p=" and the characters |,:,.,/,?,=; are therefore stripped out of the URL.
The call to {{tl2|harvnb}} has been [[subst]]'ed for quicker load times.
{{Wikipedia referencing}}
==Tracking categories==
{{clc|Pages using sfn with unknown parameters}}<noinclude>
{{Documentation}}
</noinclude>
0x5he19mrfd4sjmguop83i3w1bmoz7u
Module:Footnotes
828
2119
16096
2022-08-19T20:17:37Z
Kambai Akau
15
Created page with "require('Module:No globals'); local getArgs = require ('Module:Arguments').getArgs; --[[--------------------------< A R G S _ D E F A U L T >------------------------------------------------------ a table to specify initial values. ]] local args_default = { bracket_left = '', bracket_right = '', bracket_year_left = '', bracket_year_right = '', postscript = '', page = '', pages = '', location = '', page_sep = ", p. ", pages_sep = ", pp. ", ref = '..."
Scribunto
text/plain
require('Module:No globals');
local getArgs = require ('Module:Arguments').getArgs;
--[[--------------------------< A R G S _ D E F A U L T >------------------------------------------------------
a table to specify initial values.
]]
local args_default = {
bracket_left = '',
bracket_right = '',
bracket_year_left = '',
bracket_year_right = '',
postscript = '',
page = '',
pages = '',
location = '',
page_sep = ", p. ",
pages_sep = ", pp. ",
ref = '',
template = 'harv', -- if template name not provided in {{#invoke:}} use this
};
--[[--------------------------< T A R G E T _ C H E C K >------------------------------------------------------
look for anchor_id (CITEREF name-list and year or text from |ref=) in anchor_id_list
the 'no target' error may be suppressed with |ignore-err=yes when target cannot be found because target is inside
a template that wraps another template; 'multiple targets' error may not be suppressed
]]
local function target_check (anchor_id, args)
local namespace = mw.title.getCurrentTitle().namespace;
local anchor_id_list_module = mw.loadData ('Module:Footnotes/anchor_id_list');
local anchor_id_list = anchor_id_list_module.anchor_id_list;
local article_whitelist = anchor_id_list_module.article_whitelist;
local template_list = anchor_id_list_module.template_list;
local whitelist_module = mw.loadData ('Module:Footnotes/whitelist');
local whitelist = whitelist_module.whitelist;
local special_patterns = whitelist_module.special_patterns;
local DNB_special_patterns = whitelist_module.DNB_special_patterns;
local DNB_template_names = whitelist_module.DNB_template_names;
if 10 == namespace then
return ''; -- automatic form of |no-tracking=yes; TODO: is this too broad?
end
local tally = anchor_id_list[anchor_id]; -- nil when anchor_id not in list; else a tally
local msg;
local category;
if not tally then
if args.ignore then
return ''; -- if ignore is true then no message, no category
end
if article_whitelist and article_whitelist[anchor_id] then -- if an article-local whitelist and anchor ID is in it
return ''; -- done
end
local wl_anchor_id = anchor_id; -- copy to be modified to index into the whitelist
if args.year then -- for anchor IDs created by this template (not in |ref=) that have a date
if args.year:match ('%d%l$') or -- use the date value to determine if we should remove the disambiguator
args.year:match ('n%.d%.%l$') or
args.year:match ('nd%l$') then
wl_anchor_id = wl_anchor_id:gsub ('%l$', ''); -- remove the disambiguator
end
end
local t_tbl = whitelist[wl_anchor_id]; -- get list of templates associated with this anchor ID
if t_tbl then -- when anchor ID not whitelisted t_tbl is nil
for _, t in ipairs (t_tbl) do -- spin through the list of templates associated with this anchor ID
if template_list[t] then -- if associated template is found in the list of templates in the article
return ''; -- anchor ID is whitlisted and article has matching template so no error
end
end
end
for _, pattern in ipairs (special_patterns) do -- spin through the spcial patterns and try to match
if anchor_id:match (pattern) then
return '';
end
end
for _, dnb_t in ipairs (DNB_template_names or {}) do -- getting desparate now, are there any DNB templates? DNB_template_names may be nil; empty table prevents script error
if template_list[dnb_t] then -- if the article has this DNB template
for _, pattern in ipairs (DNB_special_patterns) do -- spin through the DNB-specifiec wildcard patterns
if anchor_id:match (pattern) then -- and attempt a match
return ''; -- found a match
end
end
end
end
msg = 'no target: ' .. anchor_id; -- anchor_id not found
category = '[[Category:Harv and Sfn no-target errors]]';
elseif 1 < tally then
msg = 'multiple targets (' .. tally .. '×): ' .. anchor_id; -- more than one anchor_id in this article
category = 0 == namespace and '[[Category:Harv and Sfn multiple-target errors]]' or ''; -- only categorize in article space
return '<span class="error harv-error" style="display: inline; font-size:100%"> ' .. args.template .. ' error: ' .. msg .. ' ([[:Category:Harv and Sfn template errors|help]])</span>' .. category;
end
-- category = 0 == namespace and '[[Category:Harv and Sfn template errors]]' or ''; -- only categorize in article space
category = 0 == namespace and category or ''; -- only categorize in article space
--use this version to show error messages
-- return msg and '<span class="error harv-error" style="display: inline; font-size:100%"> ' .. args.template .. ' error: ' .. msg .. ' ([[:Category:Harv and Sfn template errors|help]])</span>' .. category or '';
--use this version to hide error messages
return msg and '<span class="error harv-error" style="display: none; font-size:100%"> ' .. args.template .. ' error: ' .. msg .. ' ([[:Category:Harv and Sfn template errors|help]])</span>' .. category or '';
end
--[[--------------------------< I S _ Y E A R >----------------------------------------------------------------
evaluates param to see if it is one of these forms with or without lowercase letter disambiguator:
YYYY
n.d.
nd
c. YYYY
YYYY–YYYY (separator is endash)
YYYY–YY (separator is endash)
return true when param has a recognized form; false else
]]
local patterns_date= {
'^%d%d%d%d?%l?$',
'^n%.d%.%l?$',
'^nd%l?$',
'^c%. %d%d%d%d?%l?$',
'^%d%d%d%d–%d%d%d%d%l?$',
'^%d%d%d%d–%d%d%l?$',
}
local function is_year (param, args)
args.year = ''; -- used for harv error;
for _, pattern in ipairs (patterns_date) do
if mw.ustring.match (param, pattern) then
args.year = param; -- used for harv error;
return true;
end
end
end
--[[--------------------------< C O R E >----------------------------------------------------------------------
returns an anchor link (CITEREF) formed from one to four author names, year, and insource location (|p=, |pp=, loc=)
]]
local function core( args )
local result;
local err_msg = ''
if args.P5 ~= '' then
if is_year (args.P5, args) then
result = table.concat ({args.P1, ' et al. ', args.bracket_year_left, args.P5, args.bracket_year_right});
else
args.P5 = ''; -- when P5 not a year don't include in anchor
result = table.concat ({args.P1, ' et al.'}); -- and don't render it
end
elseif args.P4 ~= '' then
if is_year (args.P4, args) then
result = table.concat ({args.P1, ', ', args.P2, ' & ', args.P3, ' ', args.bracket_year_left, args.P4, args.bracket_year_right}); -- three names and a year
else
result = table.concat ({args.P1, ' et al.'}); -- four names
end
elseif args.P3 ~= '' then
if is_year (args.P3, args) then
result = table.concat ({args.P1, ' & ', args.P2, ' ', args.bracket_year_left, args.P3, args.bracket_year_right}); -- two names and a year
else
result = table.concat ({args.P1, ', ', args.P2, ' ', ' & ', args.P3}); -- three names
end
elseif args.P2 ~= '' then
if is_year (args.P2, args) then
result = table.concat ({args.P1, ' ', args.bracket_year_left, args.P2, args.bracket_year_right}); -- one name and year
else
result = table.concat ({args.P1, ' & ', args.P2}); -- two names
end
else
result = args.P1; -- one name
end
-- when author-date result ends with a dot (typically when the last positional parameter holds 'n.d.')
-- and when no in-source location (no |p=, |pp=, or |loc=)
-- and when the first or only character in args.postscript is a dot
-- remove the author-date result trailing dot
-- the author-date result trailing dot will be replaced later with the content of args.postscript (usually a dot)
if ('.' == result:sub(-1)) and ('.' == args.postscript:sub(1)) and ('' == args.page) and ('' == args.pages) and ('' == args.location) then
result = result:gsub ('%.$', '');
end
if args.ref ~= 'none' then
local anchor_id;
if args.ref ~= '' then
anchor_id = mw.uri.anchorEncode (args.ref);
err_msg = target_check (anchor_id, args);
result = table.concat ({'[[#', anchor_id, '|', result, ']]'});
else
anchor_id = mw.uri.anchorEncode (table.concat ({'CITEREF', args.P1, args.P2, args.P3, args.P4, args.P5}));
err_msg = target_check (anchor_id, args);
result = table.concat ({'[[#', anchor_id, '|', result, ']]'});
end
end
if args.page ~= '' then
result = table.concat ({result, args.page_sep, args.page});
elseif args.pages ~= ''then
result = table.concat ({result, args.pages_sep, args.pages});
end
if args.location ~= '' then
result = table.concat ({result, ', ', args.location});
end
result = table.concat ({args.bracket_left, result, args.bracket_right, args.postscript}):gsub ('%s+', ' '); -- strip redundant spaces
return result .. err_msg;
end
--[[--------------------------< H Y P H E N _ T O _ D A S H >--------------------------------------------------
Converts a hyphen to a dash under certain conditions. The hyphen must separate
like items; unlike items are returned unmodified. These forms are modified:
letter - letter (A - B)
digit - digit (4-5)
digit separator digit - digit separator digit (4.1-4.5 or 4-1-4-5)
letterdigit - letterdigit (A1-A5) (an optional separator between letter and
digit is supported – a.1-a.5 or a-1-a-5)
digitletter - digitletter (5a - 5d) (an optional separator between letter and
digit is supported – 5.a-5.d or 5-a-5-d)
any other forms are returned unmodified.
str may be a comma- or semicolon-separated list
This code copied from Module:Citation/CS1. The only modification is to require Module:Citation/CS1/Utilities
so that it has access to the functions is_set() and has_accept_as_written()
]]
local function hyphen_to_dash( str )
local utilities = require ('Module:Citation/CS1/Utilities'); -- only modification so that this function has access to is_set() and has_accept_as_written()
if not utilities.is_set (str) then
return str;
end
local accept; -- Boolean
str = str:gsub ('&[nm]dash;', {['–'] = '–', ['—'] = '—'}); -- replace — and – entities with their characters; semicolon mucks up the text.split
str = str:gsub ('-', '-'); -- replace HTML numeric entity with hyphen character
str = str:gsub (' ', ' '); -- replace entity with generic keyboard space character
local out = {};
local list = mw.text.split (str, '%s*[,;]%s*'); -- split str at comma or semicolon separators if there are any
for _, item in ipairs (list) do -- for each item in the list
item, accept = utilities.has_accept_as_written (item); -- remove accept-this-as-written markup when it wraps all of item
if not accept and mw.ustring.match (item, '^%w*[%.%-]?%w+%s*[%-–—]%s*%w*[%.%-]?%w+$') then -- if a hyphenated range or has endash or emdash separators
if item:match ('^%a+[%.%-]?%d+%s*%-%s*%a+[%.%-]?%d+$') or -- letterdigit hyphen letterdigit (optional separator between letter and digit)
item:match ('^%d+[%.%-]?%a+%s*%-%s*%d+[%.%-]?%a+$') or -- digitletter hyphen digitletter (optional separator between digit and letter)
item:match ('^%d+[%.%-]%d+%s*%-%s*%d+[%.%-]%d+$') or -- digit separator digit hyphen digit separator digit
item:match ('^%d+%s*%-%s*%d+$') or -- digit hyphen digit
item:match ('^%a+%s*%-%s*%a+$') then -- letter hyphen letter
item = item:gsub ('(%w*[%.%-]?%w+)%s*%-%s*(%w*[%.%-]?%w+)', '%1–%2'); -- replace hyphen, remove extraneous space characters
else
item = mw.ustring.gsub (item, '%s*[–—]%s*', '–'); -- for endash or emdash separated ranges, replace em with en, remove extraneous whitespace
end
end
table.insert (out, item); -- add the (possibly modified) item to the output table
end
local temp_str = ''; -- concatenate the output table into a comma separated string
temp_str, accept = utilities.has_accept_as_written (table.concat (out, ', ')); -- remove accept-this-as-written markup when it wraps all of concatenated out
if accept then
temp_str = utilities.has_accept_as_written (str); -- when global markup removed, return original str; do it this way to suppress boolean second return value
return temp_str;
else
return temp_str; -- else, return assembled temp_str
end
end
--[[--------------------------< A R G S _ F E T C H >---------------------------------------------------------
Because all of the templates share a common set of parameters, a single common function to fetch those parameters
from frame and parent frame.
]]
local function args_fetch (frame, ps)
local args = args_default; -- create a copy of the default table
local pframe = frame:getParent(); -- point to the template's parameter table
for k, v in pairs (frame.args) do -- override defaults with values provided in the #invoke: if any
args[k] = v;
end
args.postscript = pframe.args.postscript or pframe.args.ps or ps;
if 'none' == args.postscript then
args.postscript = '';
end
args.page = pframe.args.p or pframe.args.page or '';
args.pages = pframe.args.pp or pframe.args.pages or '';
args.pages = ('' ~= args.pages) and hyphen_to_dash (args.pages) or '';
args.location = pframe.args.loc or '';
args.ref = pframe.args.ref or pframe.args.Ref or '';
args.ignore = ('yes' == pframe.args['ignore-false-positive']) or ('yes' == pframe.args['ignore-err']);
for i, v in ipairs ({'P1', 'P2', 'P3', 'P4', 'P5'}) do -- loop through the five positional parameters and trim if set else empty string
args[v] = (pframe.args[i] and mw.text.trim (pframe.args[i])) or '';
end
if args.P5 and not is_year (args.P5, args) then
local i = 6; -- initialize the indexer to the sixth positional parameter
while pframe.args[i] do -- in case there are too many authors loop through the authors looking for a year
local v = mw.text.trim (pframe.args[i]); -- trim
if is_year (v, args) then -- if a year
args.P5 = v; -- overwrite whatever was in args.P5 with year
break; -- and abandon the search
end
i = i + 1; -- bump the indexer
end
end
return args;
end
--[[--------------------------< H A R V A R D _ C I T A T I O N >----------------------------------------------
common entry point for:
{{harvard citation}} aka {{harv}}
{{Harvard citation no brackets}} aka {{harvnb}}
{{harvcol}}
{{harvcolnb}}
{{harvcoltxt}}
{{Harvard citation text}} aka {{harvtxt}}
{{Harvp}}
Distinguishing features (brackets and page separators) are specified in this module's {{#invoke}} in the respective templates.
]]
local function harvard_citation (frame)
local args = args_fetch (frame, ''); -- get the template and invoke parameters; default postscript is empty string
return core (args);
end
--[[--------------------------< S T R I P _ U R L >------------------------------------------------------------
used by sfn() and sfnm(). This function fixes an issue with reference tooltip gadget where the tooltip is not displayed
when an insource locator (|p=, |pp=, |loc=) has an external wikilink that contains a # character
strip uri-reserved characters from urls in |p=, |pp-, and |loc= parameters The researved characters are:
!#$&'()*+,/:;=?@[]
]]
local function strip_url (pages)
local escaped_uri;
if not pages or ('' == pages) then
return pages;
end
for uri in pages:gmatch ('%[(%a[%w%+%.%-]*://%S+)') do -- for each external link get the uri
escaped_uri = uri:gsub ("([%(%)%.%%%+%-%*%?%[%^%$%]])", "%%%1" ); -- save a copy with lua pattern characters escaped
uri = uri:gsub ("[!#%$&'%(%)%*%+,/:;=%?@%[%]%.%%]", ''); -- remove reserved characters and '%' because '%20' (space character) is a lua 'invalid capture index'
pages = pages:gsub (escaped_uri, uri, 1); -- replace original uri with the stripped version
end
return pages;
end
--[[--------------------------< S F N >------------------------------------------------------------------------
entry point for {{sfn}} and {{sfnp}}
]]
local function sfn (frame)
local args = args_fetch (frame, '.'); -- get the template and invoke parameters; default postscript is a dot
local result = core (args); -- go make a CITEREF anchor
-- put it all together and then strip redundant spaces
local name = table.concat ({'FOOTNOTE', args.P1, args.P2, args.P3, args.P4, args.P5, strip_url (args.page), strip_url (args.pages), strip_url (args.location)}):gsub ('%s+', ' ');
return frame:extensionTag ({name='ref', args={name=name}, content=result});
end
--[[--------------------------< S F N M >----------------------------------------------------------------------
common entry point for {{sfnm}} and {{sfnmp}}
Distinguishing features (brackets) are specified in this module's {{#invoke}} in the respective templates.
]]
local function sfnm (frame)
local args = args_default; -- create a copy of the default table
local pframe = frame:getParent(); -- point to the template's parameter table
local n = 1; -- index of source; this is the 'n' in na1, ny, etc
local first_pnum = 1; -- first of a pair of positional parameters
local second_pnum = 2; -- second of a pair of positional parameters
local last_ps = 0; -- index of the last source with |nps= set
local last_index = 0; -- index of the last source; these used to determine which of |ps= or |nps= will terminate the whole rendering
local out = {}; -- table to hold rendered sources
local footnote = {'FOOTNOTE'}; -- all author, date, insource location stuff becomes part of the reference's footnote id; added as we go
for k, v in pairs (frame.args) do -- override defaults with values provided in the #invoke: if any
args[k] = v;
end
while true do
if not pframe.args[table.concat ({n, 'a1'})] and not pframe.args[first_pnum] then
break; -- no na1 or matching positional parameter so done
end
if pframe.args[table.concat ({n, 'a1'})] then -- does this source use named parameters?
for _, v in ipairs ({'P1', 'P2', 'P3', 'P4', 'P5'}) do -- initialize for this source
args[v] = '';
end
for i, v in ipairs ({'P1', 'P2', 'P3', 'P4', 'P5'}) do -- extract author and year parameters for this source
args[v] = pframe.args[table.concat ({n, 'a', i})] or ''; -- attempt to assign author name
if '' == args[v] then -- when there wasn't an author name
args[v] = pframe.args[table.concat ({n, 'y'})] or ''; -- attempt to assign year
break; -- done with author/date for this source
end
end
else -- this source uses positional parameters
args.P1 = mw.text.trim (pframe.args[first_pnum]); -- yes, only one author supported
args.P2 = (pframe.args[second_pnum] and mw.text.trim (pframe.args[second_pnum])) or ''; -- when positional author, year must also be positional
for _, v in ipairs ({'P3', 'P4', 'P5'}) do -- blank the rest of these for this source
args[v] = '';
end
first_pnum = first_pnum + 2; -- source must use positional author and positional year
second_pnum = first_pnum + 1; -- bump these for possible next positional source
end
args.postscript = pframe.args[table.concat ({n, 'ps'})] or '';
if 'none' == args.postscript then -- this for compatibility with other footnote templates; does nothing
args.postscript = '';
end
args.ref = pframe.args[table.concat ({n, 'ref'})] or ''; -- alternate reference for this source
args.page = pframe.args[table.concat ({n, 'p'})] or ''; -- insource locations for this source
args.pages = pframe.args[table.concat ({n, 'pp'})] or '';
args.pages = ('' ~= args.pages) and hyphen_to_dash (args.pages) or '';
args.location = pframe.args[table.concat ({n, 'loc'})] or '';
args.ignore = ('yes' == pframe.args[table.concat ({n, 'ignore-false-positive'})]) or ('yes' == pframe.args[table.concat ({n, 'ignore-err'})]);
table.insert (out, core (args)); -- save the rendering of this source
for k, v in ipairs ({'P1', 'P2', 'P3', 'P4', 'P5'}) do -- create the FOOTNOTE id
if '' ~= args[v] then
table.insert (footnote, args[v]);
end
end
for k, v in ipairs ({'page', 'pages', 'location'}) do -- these done separately so that we can strip uri-reserved characters from extlinked page numbers
if '' ~= args[v] then
table.insert (footnote, strip_url (args[v]))
end
end
last_index = n; -- flags used to select terminal postscript from nps or from end_ps
if '' ~= args.postscript then
last_ps = n;
end
n = n+1; -- bump for the next one
end
local name = table.concat (footnote):gsub ('%s+', ' '); -- put the footnote together and strip redundant space
args.end_ps = pframe.args.postscript or pframe.args.ps or '.'; -- this is the postscript for the whole not for the individual sources
if 'none' == args.end_ps then -- not an original sfnm parameter value; added for compatibility with other footnote templates
args.end_ps = '';
end
local result = table.concat ({table.concat (out, '; '), (last_index == last_ps) and '' or args.end_ps});
return frame:extensionTag ({name='ref', args={name=name}, content=result});
end
--[[--------------------------< S F N R E F >------------------------------------------------------------------
implements {{sfnref}}
]]
local function sfnref (frame)
local args = getArgs (frame);
local out = {};
for i=1, 5 do -- get the first five args if there are five args
if args[i] then
out[i] = args[i];
else
break; -- less than 5 args break out
end
end
if 5 == #out then -- when we have seen five args there may bemore
local i = 6; -- initialize the indexer to the sixth positional parameter
while args[i] do -- in case there are too many authors loop through the authors looking for a year
if is_year (args[i], args) then -- if a year
out[5] = args[i]; -- overwrite whatever was in args[5] with year
break; -- and abandon the search
end
i = i + 1; -- bump the indexer
end
end
return mw.uri.anchorEncode ('CITEREF' .. table.concat (out));
end
--[[--------------------------< E X P O R T E D F U N C T I O N S >------------------------------------------
]]
return {
harvard_citation = harvard_citation,
sfn = sfn,
sfnm = sfnm,
sfnref = sfnref,
};
2x57eg4kn4kd2u38h6p4rteov6l4211
Module:Footnotes/doc
828
2120
16097
2022-08-19T20:18:29Z
Kambai Akau
15
Created page with "{{Module rating |protected}} {{high-use|141605}} {{Lua|Module:Footnotes/anchor id list|Module:Footnotes/whitelist|Module:Arguments|Module:No globals}} Implements {{tl|sfn}}, {{tl|harvard citation}}, and variants of those templates."
wikitext
text/x-wiki
{{Module rating |protected}}
{{high-use|141605}}
{{Lua|Module:Footnotes/anchor id list|Module:Footnotes/whitelist|Module:Arguments|Module:No globals}}
Implements {{tl|sfn}}, {{tl|harvard citation}}, and variants of those templates.
d8cxuot52w28q08lv9ccb5w0hztowur
Module:Footnotes/sandbox
828
2121
16098
2022-08-19T20:19:29Z
Kambai Akau
15
Created page with "require('Module:No globals'); local getArgs = require ('Module:Arguments').getArgs; --[[--------------------------< A R G S _ D E F A U L T >------------------------------------------------------ a table to specify initial values. ]] local args_default = { bracket_left = '', bracket_right = '', bracket_year_left = '', bracket_year_right = '', postscript = '', page = '', pages = '', location = '', page_sep = ", p. ", pages_sep = ", pp. ", ref = '..."
Scribunto
text/plain
require('Module:No globals');
local getArgs = require ('Module:Arguments').getArgs;
--[[--------------------------< A R G S _ D E F A U L T >------------------------------------------------------
a table to specify initial values.
]]
local args_default = {
bracket_left = '',
bracket_right = '',
bracket_year_left = '',
bracket_year_right = '',
postscript = '',
page = '',
pages = '',
location = '',
page_sep = ", p. ",
pages_sep = ", pp. ",
ref = '',
template = 'harv', -- if template name not provided in {{#invoke:}} use this
};
--[[--------------------------< T A R G E T _ C H E C K >------------------------------------------------------
look for anchor_id (CITEREF name-list and year or text from |ref=) in anchor_id_list
the 'no target' error may be suppressed with |ignore-err=yes when target cannot be found because target is inside
a template that wraps another template; 'multiple targets' error may not be suppressed
]]
local function target_check (anchor_id, args)
local namespace = mw.title.getCurrentTitle().namespace;
local anchor_id_list_module = mw.loadData ('Module:Footnotes/anchor_id_list/sandbox');
local anchor_id_list = anchor_id_list_module.anchor_id_list;
local article_whitelist = anchor_id_list_module.article_whitelist;
local template_list = anchor_id_list_module.template_list;
local whitelist_module = mw.loadData ('Module:Footnotes/whitelist/sandbox');
local whitelist = whitelist_module.whitelist;
local special_patterns = whitelist_module.special_patterns;
local DNB_special_patterns = whitelist_module.DNB_special_patterns;
local DNB_template_names = whitelist_module.DNB_template_names;
if 10 == namespace then
return ''; -- automatic form of |no-tracking=yes; TODO: is this too broad?
end
local tally = anchor_id_list[anchor_id]; -- nil when anchor_id not in list; else a tally
local msg;
local category;
if not tally then
if args.ignore then
return ''; -- if ignore is true then no message, no category
end
if article_whitelist and article_whitelist[anchor_id] then -- if an article-local whitelist and anchor ID is in it
return ''; -- done
end
local wl_anchor_id = anchor_id; -- copy to be modified to index into the whitelist
if args.year then -- for anchor IDs created by this template (not in |ref=) that have a date
if args.year:match ('%d%l$') or -- use the date value to determine if we should remove the disambiguator
args.year:match ('n%.d%.%l$') or
args.year:match ('nd%l$') then
wl_anchor_id = wl_anchor_id:gsub ('%l$', ''); -- remove the disambiguator
end
end
local t_tbl = whitelist[wl_anchor_id]; -- get list of templates associated with this anchor ID
if t_tbl then -- when anchor ID not whitelisted t_tbl is nil
for _, t in ipairs (t_tbl) do -- spin through the list of templates associated with this anchor ID
if template_list[t] then -- if associated template is found in the list of templates in the article
return ''; -- anchor ID is whitlisted and article has matching template so no error
end
end
end
for _, pattern in ipairs (special_patterns) do -- spin through the spcial patterns and try to match
if anchor_id:match (pattern) then
return '';
end
end
for _, dnb_t in ipairs (DNB_template_names or {}) do -- getting desparate now, are there any DNB templates? DNB_template_names may be nil; empty table prevents script error
if template_list[dnb_t] then -- if the article has this DNB template
for _, pattern in ipairs (DNB_special_patterns) do -- spin through the DNB-specifiec wildcard patterns
if anchor_id:match (pattern) then -- and attempt a match
return ''; -- found a match
end
end
end
end
msg = 'no target: ' .. anchor_id; -- anchor_id not found
category = '[[Category:Harv and Sfn no-target errors]]';
elseif 1 < tally then
msg = 'multiple targets (' .. tally .. '×): ' .. anchor_id; -- more than one anchor_id in this article
category = 0 == namespace and '[[Category:Harv and Sfn multiple-target errors]]' or ''; -- only categorize in article space
return '<span class="error harv-error" style="display: inline; font-size:100%"> ' .. args.template .. ' error: ' .. msg .. ' ([[:Category:Harv and Sfn template errors|help]])</span>' .. category;
end
-- category = 0 == namespace and '[[Category:Harv and Sfn template errors]]' or ''; -- only categorize in article space
category = 0 == namespace and category or ''; -- only categorize in article space
--use this version to show error messages
-- return msg and '<span class="error harv-error" style="display: inline; font-size:100%"> ' .. args.template .. ' error: ' .. msg .. ' ([[:Category:Harv and Sfn template errors|help]])</span>' .. category or '';
--use this version to hide error messages
return msg and '<span class="error harv-error" style="display: none; font-size:100%"> ' .. args.template .. ' error: ' .. msg .. ' ([[:Category:Harv and Sfn template errors|help]])</span>' .. category or '';
end
--[[--------------------------< I S _ Y E A R >----------------------------------------------------------------
evaluates param to see if it is one of these forms with or without lowercase letter disambiguator:
YYYY
n.d.
nd
c. YYYY
YYYY–YYYY (separator is endash)
YYYY–YY (separator is endash)
return true when param has a recognized form; false else
]]
local patterns_date= {
'^%d%d%d%d?%l?$',
'^n%.d%.%l?$',
'^nd%l?$',
'^c%. %d%d%d%d?%l?$',
'^%d%d%d%d–%d%d%d%d%l?$',
'^%d%d%d%d–%d%d%l?$',
}
local function is_year (param, args)
args.year = ''; -- used for harv error;
for _, pattern in ipairs (patterns_date) do
if mw.ustring.match (param, pattern) then
args.year = param; -- used for harv error;
return true;
end
end
end
--[[--------------------------< C O R E >----------------------------------------------------------------------
returns an anchor link (CITEREF) formed from one to four author names, year, and insource location (|p=, |pp=, loc=)
]]
local function core( args )
local result;
local err_msg = ''
if args.P5 ~= '' then
if is_year (args.P5, args) then
result = table.concat ({args.P1, ' et al. ', args.bracket_year_left, args.P5, args.bracket_year_right});
else
args.P5 = ''; -- when P5 not a year don't include in anchor
result = table.concat ({args.P1, ' et al.'}); -- and don't render it
end
elseif args.P4 ~= '' then
if is_year (args.P4, args) then
result = table.concat ({args.P1, ', ', args.P2, ' & ', args.P3, ' ', args.bracket_year_left, args.P4, args.bracket_year_right}); -- three names and a year
else
result = table.concat ({args.P1, ' et al.'}); -- four names
end
elseif args.P3 ~= '' then
if is_year (args.P3, args) then
result = table.concat ({args.P1, ' & ', args.P2, ' ', args.bracket_year_left, args.P3, args.bracket_year_right}); -- two names and a year
else
result = table.concat ({args.P1, ', ', args.P2, ' ', ' & ', args.P3}); -- three names
end
elseif args.P2 ~= '' then
if is_year (args.P2, args) then
result = table.concat ({args.P1, ' ', args.bracket_year_left, args.P2, args.bracket_year_right}); -- one name and year
else
result = table.concat ({args.P1, ' & ', args.P2}); -- two names
end
else
result = args.P1; -- one name
end
-- when author-date result ends with a dot (typically when the last positional parameter holds 'n.d.')
-- and when no in-source location (no |p=, |pp=, or |loc=)
-- and when the first or only character in args.postscript is a dot
-- remove the author-date result trailing dot
-- the author-date result trailing dot will be replaced later with the content of args.postscript (usually a dot)
if ('.' == result:sub(-1)) and ('.' == args.postscript:sub(1)) and ('' == args.page) and ('' == args.pages) and ('' == args.location) then
result = result:gsub ('%.$', '');
end
if args.ref ~= 'none' then
local anchor_id;
if args.ref ~= '' then
anchor_id = mw.uri.anchorEncode (args.ref);
err_msg = target_check (anchor_id, args);
result = table.concat ({'[[#', anchor_id, '|', result, ']]'});
else
anchor_id = mw.uri.anchorEncode (table.concat ({'CITEREF', args.P1, args.P2, args.P3, args.P4, args.P5}));
err_msg = target_check (anchor_id, args);
result = table.concat ({'[[#', anchor_id, '|', result, ']]'});
end
end
if args.page ~= '' then
result = table.concat ({result, args.page_sep, args.page});
elseif args.pages ~= ''then
result = table.concat ({result, args.pages_sep, args.pages});
end
if args.location ~= '' then
result = table.concat ({result, ', ', args.location});
end
result = table.concat ({args.bracket_left, result, args.bracket_right, args.postscript}):gsub ('%s+', ' '); -- strip redundant spaces
return result .. err_msg;
end
--[[--------------------------< H Y P H E N _ T O _ D A S H >--------------------------------------------------
Converts a hyphen to a dash under certain conditions. The hyphen must separate
like items; unlike items are returned unmodified. These forms are modified:
letter - letter (A - B)
digit - digit (4-5)
digit separator digit - digit separator digit (4.1-4.5 or 4-1-4-5)
letterdigit - letterdigit (A1-A5) (an optional separator between letter and
digit is supported – a.1-a.5 or a-1-a-5)
digitletter - digitletter (5a - 5d) (an optional separator between letter and
digit is supported – 5.a-5.d or 5-a-5-d)
any other forms are returned unmodified.
str may be a comma- or semicolon-separated list
This code copied from Module:Citation/CS1. The only modification is to require Module:Citation/CS1/Utilities
so that it has access to the functions is_set() and has_accept_as_written()
]]
local function hyphen_to_dash( str )
local utilities = require ('Module:Citation/CS1/Utilities/sandbox'); -- only modification so that this function has access to is_set() and has_accept_as_written()
if not utilities.is_set (str) then
return str;
end
local accept; -- Boolean
str = str:gsub ('&[nm]dash;', {['–'] = '–', ['—'] = '—'}); -- replace — and – entities with their characters; semicolon mucks up the text.split
str = str:gsub ('-', '-'); -- replace HTML numeric entity with hyphen character
str = str:gsub (' ', ' '); -- replace entity with generic keyboard space character
local out = {};
local list = mw.text.split (str, '%s*[,;]%s*'); -- split str at comma or semicolon separators if there are any
for _, item in ipairs (list) do -- for each item in the list
item, accept = utilities.has_accept_as_written (item); -- remove accept-this-as-written markup when it wraps all of item
if not accept and mw.ustring.match (item, '^%w*[%.%-]?%w+%s*[%-–—]%s*%w*[%.%-]?%w+$') then -- if a hyphenated range or has endash or emdash separators
if item:match ('^%a+[%.%-]?%d+%s*%-%s*%a+[%.%-]?%d+$') or -- letterdigit hyphen letterdigit (optional separator between letter and digit)
item:match ('^%d+[%.%-]?%a+%s*%-%s*%d+[%.%-]?%a+$') or -- digitletter hyphen digitletter (optional separator between digit and letter)
item:match ('^%d+[%.%-]%d+%s*%-%s*%d+[%.%-]%d+$') or -- digit separator digit hyphen digit separator digit
item:match ('^%d+%s*%-%s*%d+$') or -- digit hyphen digit
item:match ('^%a+%s*%-%s*%a+$') then -- letter hyphen letter
item = item:gsub ('(%w*[%.%-]?%w+)%s*%-%s*(%w*[%.%-]?%w+)', '%1–%2'); -- replace hyphen, remove extraneous space characters
else
item = mw.ustring.gsub (item, '%s*[–—]%s*', '–'); -- for endash or emdash separated ranges, replace em with en, remove extraneous whitespace
end
end
table.insert (out, item); -- add the (possibly modified) item to the output table
end
local temp_str = ''; -- concatenate the output table into a comma separated string
temp_str, accept = utilities.has_accept_as_written (table.concat (out, ', ')); -- remove accept-this-as-written markup when it wraps all of concatenated out
if accept then
temp_str = utilities.has_accept_as_written (str); -- when global markup removed, return original str; do it this way to suppress boolean second return value
return temp_str;
else
return temp_str; -- else, return assembled temp_str
end
end
--[[--------------------------< A R G S _ F E T C H >---------------------------------------------------------
Because all of the templates share a common set of parameters, a single common function to fetch those parameters
from frame and parent frame.
]]
local function args_fetch (frame, ps)
local args = args_default; -- create a copy of the default table
local pframe = frame:getParent(); -- point to the template's parameter table
for k, v in pairs (frame.args) do -- override defaults with values provided in the #invoke: if any
args[k] = v;
end
args.postscript = pframe.args.postscript or pframe.args.ps or ps;
if 'none' == args.postscript then
args.postscript = '';
end
args.page = pframe.args.p or pframe.args.page or '';
args.pages = pframe.args.pp or pframe.args.pages or '';
args.pages = ('' ~= args.pages) and hyphen_to_dash (args.pages) or '';
args.location = pframe.args.loc or '';
args.ref = pframe.args.ref or pframe.args.Ref or '';
args.ignore = ('yes' == pframe.args['ignore-false-positive']) or ('yes' == pframe.args['ignore-err']);
for i, v in ipairs ({'P1', 'P2', 'P3', 'P4', 'P5'}) do -- loop through the five positional parameters and trim if set else empty string
args[v] = (pframe.args[i] and mw.text.trim (pframe.args[i])) or '';
end
if args.P5 and not is_year (args.P5, args) then
local i = 6; -- initialize the indexer to the sixth positional parameter
while pframe.args[i] do -- in case there are too many authors loop through the authors looking for a year
local v = mw.text.trim (pframe.args[i]); -- trim
if is_year (v, args) then -- if a year
args.P5 = v; -- overwrite whatever was in args.P5 with year
break; -- and abandon the search
end
i = i + 1; -- bump the indexer
end
end
return args;
end
--[[--------------------------< H A R V A R D _ C I T A T I O N >----------------------------------------------
common entry point for:
{{harvard citation}} aka {{harv}}
{{Harvard citation no brackets}} aka {{harvnb}}
{{harvcol}}
{{harvcolnb}}
{{harvcoltxt}}
{{Harvard citation text}} aka {{harvtxt}}
{{Harvp}}
Distinguishing features (brackets and page separators) are specified in this module's {{#invoke}} in the respective templates.
]]
local function harvard_citation (frame)
local args = args_fetch (frame, ''); -- get the template and invoke parameters; default postscript is empty string
return core (args);
end
--[[--------------------------< S T R I P _ U R L >------------------------------------------------------------
used by sfn() and sfnm(). This function fixes an issue with reference tooltip gadget where the tooltip is not displayed
when an insource locator (|p=, |pp=, |loc=) has an external wikilink that contains a # character
strip uri-reserved characters from urls in |p=, |pp-, and |loc= parameters The researved characters are:
!#$&'()*+,/:;=?@[]
]]
local function strip_url (pages)
local escaped_uri;
if not pages or ('' == pages) then
return pages;
end
for uri in pages:gmatch ('%[(%a[%w%+%.%-]*://%S+)') do -- for each external link get the uri
escaped_uri = uri:gsub ("([%(%)%.%%%+%-%*%?%[%^%$%]])", "%%%1" ); -- save a copy with lua pattern characters escaped
uri = uri:gsub ("[!#%$&'%(%)%*%+,/:;=%?@%[%]%.%%]", ''); -- remove reserved characters and '%' because '%20' (space character) is a lua 'invalid capture index'
pages = pages:gsub (escaped_uri, uri, 1); -- replace original uri with the stripped version
end
return pages;
end
--[[--------------------------< S F N >------------------------------------------------------------------------
entry point for {{sfn}} and {{sfnp}}
]]
local function sfn (frame)
local args = args_fetch (frame, '.'); -- get the template and invoke parameters; default postscript is a dot
local result = core (args); -- go make a CITEREF anchor
-- put it all together and then strip redundant spaces
local name = table.concat ({'FOOTNOTE', args.P1, args.P2, args.P3, args.P4, args.P5, strip_url (args.page), strip_url (args.pages), strip_url (args.location)}):gsub ('%s+', ' ');
return frame:extensionTag ({name='ref', args={name=name}, content=result});
end
--[[--------------------------< S F N M >----------------------------------------------------------------------
common entry point for {{sfnm}} and {{sfnmp}}
Distinguishing features (brackets) are specified in this module's {{#invoke}} in the respective templates.
]]
local function sfnm (frame)
local args = args_default; -- create a copy of the default table
local pframe = frame:getParent(); -- point to the template's parameter table
local n = 1; -- index of source; this is the 'n' in na1, ny, etc
local first_pnum = 1; -- first of a pair of positional parameters
local second_pnum = 2; -- second of a pair of positional parameters
local last_ps = 0; -- index of the last source with |nps= set
local last_index = 0; -- index of the last source; these used to determine which of |ps= or |nps= will terminate the whole rendering
local out = {}; -- table to hold rendered sources
local footnote = {'FOOTNOTE'}; -- all author, date, insource location stuff becomes part of the reference's footnote id; added as we go
for k, v in pairs (frame.args) do -- override defaults with values provided in the #invoke: if any
args[k] = v;
end
while true do
if not pframe.args[table.concat ({n, 'a1'})] and not pframe.args[first_pnum] then
break; -- no na1 or matching positional parameter so done
end
if pframe.args[table.concat ({n, 'a1'})] then -- does this source use named parameters?
for _, v in ipairs ({'P1', 'P2', 'P3', 'P4', 'P5'}) do -- initialize for this source
args[v] = '';
end
for i, v in ipairs ({'P1', 'P2', 'P3', 'P4', 'P5'}) do -- extract author and year parameters for this source
args[v] = pframe.args[table.concat ({n, 'a', i})] or ''; -- attempt to assign author name
if '' == args[v] then -- when there wasn't an author name
args[v] = pframe.args[table.concat ({n, 'y'})] or ''; -- attempt to assign year
break; -- done with author/date for this source
end
end
else -- this source uses positional parameters
args.P1 = mw.text.trim (pframe.args[first_pnum]); -- yes, only one author supported
args.P2 = (pframe.args[second_pnum] and mw.text.trim (pframe.args[second_pnum])) or ''; -- when positional author, year must also be positional
for _, v in ipairs ({'P3', 'P4', 'P5'}) do -- blank the rest of these for this source
args[v] = '';
end
first_pnum = first_pnum + 2; -- source must use positional author and positional year
second_pnum = first_pnum + 1; -- bump these for possible next positional source
end
args.postscript = pframe.args[table.concat ({n, 'ps'})] or '';
if 'none' == args.postscript then -- this for compatibility with other footnote templates; does nothing
args.postscript = '';
end
args.ref = pframe.args[table.concat ({n, 'ref'})] or ''; -- alternate reference for this source
args.page = pframe.args[table.concat ({n, 'p'})] or ''; -- insource locations for this source
args.pages = pframe.args[table.concat ({n, 'pp'})] or '';
args.pages = ('' ~= args.pages) and hyphen_to_dash (args.pages) or '';
args.location = pframe.args[table.concat ({n, 'loc'})] or '';
args.ignore = ('yes' == pframe.args[table.concat ({n, 'ignore-false-positive'})]) or ('yes' == pframe.args[table.concat ({n, 'ignore-err'})]);
table.insert (out, core (args)); -- save the rendering of this source
for k, v in ipairs ({'P1', 'P2', 'P3', 'P4', 'P5'}) do -- create the FOOTNOTE id
if '' ~= args[v] then
table.insert (footnote, args[v]);
end
end
for k, v in ipairs ({'page', 'pages', 'location'}) do -- these done separately so that we can strip uri-reserved characters from extlinked page numbers
if '' ~= args[v] then
table.insert (footnote, strip_url (args[v]))
end
end
last_index = n; -- flags used to select terminal postscript from nps or from end_ps
if '' ~= args.postscript then
last_ps = n;
end
n = n+1; -- bump for the next one
end
local name = table.concat (footnote):gsub ('%s+', ' '); -- put the footnote together and strip redundant space
args.end_ps = pframe.args.postscript or pframe.args.ps or '.'; -- this is the postscript for the whole not for the individual sources
if 'none' == args.end_ps then -- not an original sfnm parameter value; added for compatibility with other footnote templates
args.end_ps = '';
end
local result = table.concat ({table.concat (out, '; '), (last_index == last_ps) and '' or args.end_ps});
return frame:extensionTag ({name='ref', args={name=name}, content=result});
end
--[[--------------------------< S F N R E F >------------------------------------------------------------------
implements {{sfnref}}
]]
local function sfnref (frame)
local args = getArgs (frame);
local out = {};
for i=1, 5 do -- get the first five args if there are five args
if args[i] then
out[i] = args[i];
else
break; -- less than 5 args break out
end
end
if 5 == #out then -- when we have seen five args there may bemore
local i = 6; -- initialize the indexer to the sixth positional parameter
while args[i] do -- in case there are too many authors loop through the authors looking for a year
if is_year (args[i], args) then -- if a year
out[5] = args[i]; -- overwrite whatever was in args[5] with year
break; -- and abandon the search
end
i = i + 1; -- bump the indexer
end
end
return mw.uri.anchorEncode ('CITEREF' .. table.concat (out));
end
--[[--------------------------< E X P O R T E D F U N C T I O N S >------------------------------------------
]]
return {
harvard_citation = harvard_citation,
sfn = sfn,
sfnm = sfnm,
sfnref = sfnref,
};
sbmry7pnn49mwgqlpov4zcsdyvsben6
Module:Footnotes/testcases
828
2122
16099
2022-08-19T20:20:42Z
Kambai Akau
15
Created page with "-- Unit tests for [[Module:Footnotes]]. Click talk page to run tests. local p = require('Module:UnitTests') function p:test_harvnb() self:preprocess_equals_preprocess_many('{{harvard citation no brackets/sandbox|', '}}', '{{harvnb|', '}}', { {""}, { "Smith | 2004" }, { "Smith | Jones | 2004" }, { "Smith | Jones | Brown | 2004" }, { "Smith | Jones | Brown | Taylor | 2004" }, { "Smith | Jones | Brown | Taylor | King | 20..."
Scribunto
text/plain
-- Unit tests for [[Module:Footnotes]]. Click talk page to run tests.
local p = require('Module:UnitTests')
function p:test_harvnb()
self:preprocess_equals_preprocess_many('{{harvard citation no brackets/sandbox|', '}}', '{{harvnb|', '}}', {
{""},
{ "Smith | 2004" },
{ "Smith | Jones | 2004" },
{ "Smith | Jones | Brown | 2004" },
{ "Smith | Jones | Brown | Taylor | 2004" },
{ "Smith | Jones | Brown | Taylor | King | 2004" },
{ "Smith | Jones | 2004 | p=45" },
{ "Smith | Jones | 2004 | page=45" },
{ "Smith | Jones | 2004 | p=45 | page =46" },
{ "Smith | Jones | 2004 | pp=23-57" },
{ "Smith | Jones | 2004 | pages=45-78" },
{ "Smith | Jones | 2004 | pp=23-57 | pages=45-78" },
{ "Smith | Jones | 2004 | pp=23-57 | loc=45-78" },
{ "Smith | Jones | 2004 | p=23 | loc=45-78" },
{ "Smith | Jones | 2004 | p=23 | page=45 | pp=23-57 | pages=45-78| location=145-178" },
{ "Smith | Jones | 2004 | loc=Chapter 2" },
{ "Smith | Jones | Brown | 2004 | ref = none" },
{ "Smith | Jones | Brown | 2004 | ref = Cream cheese" },
{ " Smith|2011|loc=[http://en.wikipedia.org chpt 3]" },
{ " 中国 | चीन | 2004" },
{ " aiguë | Dütschlünd | 2004" },
} )
end
function p:test_sfn()
self:preprocess_equals_preprocess_many('{{sfn/sandbox|', '}}', '{{sfn|', '}}', {
{""},
{ "Smith | 2004" },
{ "Smith | Jones | 2004" },
{ "Smith | Jones | Brown | 2004" },
{ "Smith | Jones | Brown | Taylor | 2004" },
{ "Smith | Jones | Brown | Taylor | King | 2004" },
{ "Smith | Jones | 2004 | p=45" },
{ "Smith | Jones | 2004 | page=45" },
{ "Smith | Jones | 2004 | p=45 | page =46" },
{ "Smith | Jones | 2004 | pp=23-57" },
{ "Smith | Jones | 2004 | pages=45-78" },
{ "Smith | Jones | 2004 | pp=23-57 | pages=45-78" },
{ "Smith | Jones | 2004 | pp=23-57 | loc=45-78" },
{ "Smith | Jones | 2004 | p=23 | loc=45-78" },
{ "Smith | Jones | 2004 | p=23 | page=45 | pp=23-57 | pages=45-78| location=145-178" },
{ "Smith | Jones | 2004 | loc=Chapter 2" },
{ "Smith | Jones | Brown | 2004 | ref = none" },
{ "Smith | Jones | Brown | 2004 | ref = Cream cheese" },
{ " Smith|2011|loc=[http://en.wikipedia.org chpt 3]" },
{ " 中国 | चीन | 2004" },
{ " aiguë | Dütschlünd | 2004" },
} )
end
function p:test_harv()
self:preprocess_equals_preprocess_many('{{harvard citation/sandbox|', '}}', '{{harv|', '}}', {
{""},
{ "Smith | 2004" },
{ "Smith | Jones | 2004" },
{ "Smith | Jones | Brown | 2004" },
{ "Smith | Jones | Brown | Taylor | 2004" },
{ "Smith | Jones | Brown | Taylor | King | 2004" },
{ "Smith | Jones | 2004 | p=45" },
{ "Smith | Jones | 2004 | page=45" },
{ "Smith | Jones | 2004 | p=45 | page =46" },
{ "Smith | Jones | 2004 | pp=23-57" },
{ "Smith|2006| pp=25–26 | Ref=none" },
{ "Smith | Jones | 2004 | pages=45-78" },
{ "Smith | Jones | 2004 | pp=23-57 | pages=45-78" },
{ "Smith | Jones | 2004 | pp=23-57 | loc=45-78" },
{ "Smith | Jones | 2004 | p=23 | loc=45-78" },
{ "Smith | Jones | 2004 | p=23 | page=45 | pp=23-57 | pages=45-78| location=145-178" },
{ "Smith | Jones | 2004 | loc=Chapter 2" },
{ "Smith | Jones | Brown | 2004 | ref = none" },
{ "Smith | Jones | Brown | 2004 | ref = Cream cheese" },
{ " Smith|2011|loc=[http://en.wikipedia.org chpt 3]" },
{ " 中国 | चीन | 2004" },
{ " aiguë | Dütschlünd | 2004" },
} )
end
function p:test_harvard_core()
if nil then
self:preprocess_equals_preprocess_many('{{harvard citation/core/sandbox|', '}}', '{{harvard citation/core|', '}}', {
{ "" },
{ "P1 = Smith | P2 = 2004 | REF = ABC" },
{ "P1 = Smith | P2 = Jones | P3 = 2004 | REF = ABC" },
{ "P1 = Smith | P2 = Jones | P3 = Brown | P4 = 2004 | REF = ABC" },
{ "P1 = Smith | P2 = Jones | P3 = Brown | P4 = Taylor | P5 = 2004 | REF=ABC" },
{ "P1 = Smith | P2 = Jones | P3 = Brown | P4 = Taylor | P5 = King | P6 = 2004 | REF=ABC" },
{ "P1 = Smith | P2 = Jones | P3 = 2004 | Page=45 | REF=ABC | PageSep=, p. " },
{ "P1 = Smith | P2 = Jones | P3 = 2004 | Pages=23-57| REF = ABC | PagesSep=, pp. " },
{ "P1 = Smith | P2 = Jones | P3 = 2004 | Location=45-78 | REF = ABC" },
{ "P1 = Smith | P2 = Jones | P3 = 2004 | Page=23 | Location=45-78 | REF= ABC | PageSep=, p. " },
{ "P1 = Smith | P2 = Jones | P3 = 2004 | Page=45 | Pages=45-78| Location=145-178 | REF = ABC| PageSep=, p. | PagesSep=, pp. " },
{ "P1 = Smith | P2 = Jones | P3 = 2004 | Location=Chapter 2 | REF = ABC" },
{ "P1 = Smith | P2 = Jones | P3 = Brown | P4 = 2004 | REF = none" },
{ "P1 = Smith | P2 = Jones | P3 = Brown | P4 = 2004 | REF = Cream cheese" },
{ "P1=Smith| P2 = 2011 | Location=[http://en.wikipedia.org chpt 3] | REF=ABC" },
{ "P1 = Smith | P2 = Jones | P3 = 2004 | REF = ABC | BracketRight=% | BracketLeft=_ | BracketYearRight=@ | BracketYearLeft=^ | Postscript = ..." },
} )
end
end
return p;
fs90b60hel1i3uaeu3ge5j0mtnhc6bq
Module:Footnotes/anchor id list
828
2123
16100
2022-08-19T20:25:34Z
Kambai Akau
15
Created page with "require('Module:No globals'); local data = mw.loadData ('Module:Footnotes/anchor id list/data'); local whitelist = mw.loadData ('Module:Footnotes/whitelist'); local Lang_obj = mw.language.getContentLanguage(); -- used by template_list_add() to uppercase first letter of template name TODO: better way to do that? local redirects_date = { ['date'] = true, ['datetomos'] = true, ['formatdate'] = true, ['isotodmymdy'] = true, ['isotomos'] = true, } local redirect..."
Scribunto
text/plain
require('Module:No globals');
local data = mw.loadData ('Module:Footnotes/anchor id list/data');
local whitelist = mw.loadData ('Module:Footnotes/whitelist');
local Lang_obj = mw.language.getContentLanguage(); -- used by template_list_add() to uppercase first letter of template name TODO: better way to do that?
local redirects_date = {
['date'] = true,
['datetomos'] = true,
['formatdate'] = true,
['isotodmymdy'] = true,
['isotomos'] = true,
}
local redirects_patent = { -- special case cs1-like templates because uses different parameters for name and date in anchor ID
['Cite patent'] = true,
['Citeref patent'] = true,
['Ref patent'] = true,
}
local redirects_sfnref = {
['sfnref'] = true,
['harvid'] = true,
}
local aliases_author = { -- these use pseudo-patterns in the same way as cs1|2; '#' represents 1 or more enumerator digits
'last#',
'author#',
'surname#',
'author-last#',
'author#-last',
'subject#',
'host#',
}
local aliases_contributor = {
'contributor#',
'contributor-last#',
'contributor#-last',
'contributor-surname#',
'contributor#-surname',
}
local aliases_editor = {
'editor#',
'editor-last#',
'editor#-last',
'editor-surname#',
'editor#-surname',
}
local aliases_harvc_author = {
'last#',
'author#',
}
local aliases_inventor = { -- cite patent
'inventor#',
'inventor-last#',
'inventor#-last',
'inventor-surname#',
'inventor#-surname',
'invent#',
'invent-#',
}
local alias_patterns_date = { -- normal lua patterns for most cs1|2-like templates
'|%s*year%s*=%s*',
'|%s*date%s*=%s*',
'|%s*publication%-?date%s*=%s*',
'|%s*air%-?date%s*=%s*',
}
local alias_patterns_harvc_date = { -- normal lua patterns for harvc template
'|%s*anchor%-year%s*=%s*',
'|%s*year%s*=%s*',
}
local alias_patterns_patent_date = { -- normal lua patterns for cite patent templates
'|%s*issue%-date%s*=%s*',
'|%s*gdate%s*=%s*',
'|%s*publication%-date%s*=%s*',
'|%s*pubdate%s*=%s*',
}
local patterns_date = { -- normal lua patterns
'(%d%d%d%d–%d%d%d%d%l?)$', -- YYYY–YYYY four-digit year range at end (Season YYYY–YYYY); with or without dab
'^(%d%d%d%d–%d%d%l?)$', -- YYYY–YY two-digit year range; with or without dab
'^(c%. %d%d%d%d?%l?)$', -- three- or four-digit circa year; with or without dab
'(%d%d%d%d?%l?)$', -- three- or four-digit year at end of date (dmy or mdy); with or without dab
'^(%d%d%d%d?%l?)', -- three- or four-digit year at beginning of date (ymd or YYYY); with or without dab
'^(n%.d%.%l?)$', -- 'no date' with dots; with or without dab
'^(nd%l?)$', -- 'no date' without dots; with or without dab
}
local patterns_tags = {
'<nowiki>.-</nowiki>',
'<!%-%-.-%-%->',
'<pre>.-</pre>',
'<syntaxhighlight.->.-</syntaxhighlight>',
'<source.->.-</source>', -- deprecated alias of syntaxhighlight tag
}
local template_skip = { -- templates to be skipped for whatever reason; mostly because they resemble cs1-like templates
['Citation-attribution'] = true,
}
local Article_content;
local anchor_id_list = {}; -- exported tables
local template_list = {};
local article_whitelist = {};
--[[--------------------------< A R T I C L E _ C O N T E N T _ G E T >----------------------------------------
get article content, remove certain html-like tags and their content so that this code doesn't include any citation
templates inside the tags as valid tagets; they are not.
]]
local function article_content_get ()
if not Article_content then
Article_content = mw.title.getCurrentTitle():getContent() or ''; -- get the content of the article or ''; new pages edited w/ve do not have 'content' until saved; ve does not preview; phab:T221625
for _, tag in ipairs (patterns_tags) do
Article_content = Article_content:gsub (tag, ''); -- remove certain html-like tags and their content
end
end
end
--[[--------------------------< S F N R E F _ G E T >----------------------------------------------------------
make an anchor id from the contents of {{sfnref}} or {{harvid}}. this function assumes that {{sfnref}} and {{harvid}}
are correctly formed.
]]
local function sfnref_get (template)
template = template:gsub ('{{%s*(.-)%s*}}', '%1'); -- strip bounding template markup and trim
local parts = mw.text.split (template, '%s*|%s*'); -- split at the pipe and remove extraneous space characters
local anchor_id = {};
if redirects_sfnref[parts[1]:lower()] then
anchor_id[1] = 'CITEREF';
else
return nil; -- not an sfnref or harvid template
end
local i = 2; -- indexer into parts{} table
local j = 2; -- indexer into anchor_id{} table which already has 'CITEREF' at [1]
while parts[i] and 7 > j do -- loop through what should be just positional parameters for names and year (2-6 four names and a date)
if not parts[i]:find ('=') then -- look for equal sign (named paraneter in a template that doesn't support named parameters)
anchor_id[j] = parts[i]; -- positional parameters are saved
j = j+1; -- bump the anchor_id{} indexer
end
i = i+ 1; -- bump the parts{} indexer
end
return table.concat (anchor_id, '');
end
--[[--------------------------< D A T E _ G E T >--------------------------------------------------------------
extract year from one of |year=, |date=, |publicationdate=, or |publication-date in that order. Does not error
check (that is left to the cs1|2 templates to do)
also gets date from |<date alias>={{date|...}}
]]
local function date_get (template, aliases)
local date;
local rvalue;
for _, pattern in ipairs (aliases) do -- spin through the date alias patterns
rvalue = tostring(template):match (pattern); -- is this |<date alias>= used (tostring() because something makes match() think template is a table)
if rvalue then
rvalue = tostring(template):match (pattern .. '(%b{})'); -- is rvalue a template?
if rvalue then
rvalue = rvalue:gsub ('{{%s*(.-)%s*}}', '%1'); -- strip bounding template markup and trim
local parts = mw.text.split (rvalue, '%s*|%s*'); -- split at the pipe and remove extraneous space characters
if redirects_date[parts[1]:lower()] then -- if parts[1] names {{date}} or redirect
rvalue = parts[2]; -- assume that date template is properly formed, first positional parameter is the date
else
return ''; -- |date= holds some other template than {{date}} or redirect
end
else
rvalue = template:match (pattern .. '([^|}]+)');
if rvalue then -- if rvalue is something
rvalue = mw.text.trim (rvalue); -- trim it
end
if not rvalue or '' == rvalue then -- if rvale was nothing or trimed to nothing
rvalue = nil; -- ensure that it is unset so we can try the next parameter in the list
end
end
if rvalue then
for _, pattern in ipairs (patterns_date) do -- spin through the recognized date formats
date = rvalue:match (pattern); -- attempt to extract year portion according to the pattern
if date then
return date; -- matched so return;
end
end
break; -- found a date but it was malformed so abandon
end
end
end
return ''; -- no date param or date param doesn't hold a recognized date; empty string for concatenation
end
--[[--------------------------< V N A M E S _ G E T >----------------------------------------------------------
extract names from |vauthors= or |veditors=; there is no |vcontributors= parameter.
splits the v parameter value at the comma; correctly handles accept-as-witten markup when used to wrap a comma-
separated names (corporate)
]]
local function vnames_get (params, vparam)
local vnames = {}; -- first four author or editor names go here
local split = {}; -- temp table to assist in decoding accept-as-witten-markup
if params[vparam] then -- test for |vauthors= or |veditor=
split = mw.text.split (params[vparam], '%s*,%s*'); -- this will separate portions of ((Black, Brown, White, an Co.))
local i = 1; -- an indexer
while split[i] do
if split[i]:match ('^%(%(.*[^%)][^%)]$') then -- first segment of comma-separated accept-as-witten; this segment has the opening doubled parens
local name = split[i];
i=i+1; -- bump indexer to next segment
while split[i] do
name = name .. ', ' .. split[i]; -- concatenate with previous segments
if split[i]:match ('^.*%)%)$') then -- if this table member has the closing doubled parens
break; -- and done reassembling so
end
i=i+1; -- bump indexer
end
table.insert (vnames, name); -- and add accept-as-witten name to the vnames table
else
table.insert (vnames, split[i]); -- and add name to the vnames table
end
i=i+1; -- bump indexer
if 5 == i then break; end -- limit to four names
end
for i, vname in ipairs (vnames) do
if not vname:match ('%(%(.-%)%)') then -- without accept-this-value-as-written markup
vnames[i] = vname:gsub ('(.-)%s+%u+$', '%1'); -- extract and save surname(s)
end
end
for i, vname in ipairs (vnames) do -- repeat, this time for accept-this-value-as-written markup
vnames[i] = vname:gsub ('%(%((.-)%)%)', '%1'); -- remove markup if present and save the whole name
end
end
return 0 ~= #vnames and table.concat (vnames) or nil -- return a concatenation of the vnames; nil else
end
--[[--------------------------< N A M E S _ G E T >------------------------------------------------------------
cs1|2 makes anchor id from contributor, author, or editor name-lists in that order
get the names from the cs1|2 template; if there are no contributor names, try author names, then try editor names.
returns concatenated names in enumeration order when successful; nil else
empty name (nameholding parameter n is present without value) and missing name (nameholding parameter n is not
present) are included as empty string with all other names
]]
local function names_get (params, aliases_list)
local names = {}; -- first four author or editor names go here
local enum_alias; -- alias with '#' replaced with a digit
for enum=1, 4 do -- four names only
for i, alias in ipairs (aliases_list) do
if not names[enum] then -- hanven't found a previous alias with this [enum]? see if we can find this alias with this enum
enum_alias = alias:gsub ('#', enum); -- replace '#' to make 'lastn'
if 1 == enum then -- because |last= and last1= are exact aliases
if params[enum_alias] then -- test |last1= first
names[enum] = params[enum_alias]; -- found so save the value assigned to |last1=
break; -- next enum
else
enum_alias = alias:gsub ('#', ''); -- replace '#' to make 'last'
if params[enum_alias] then
names[enum] = params[enum_alias]; -- found so save the value assigned to |last=
break; -- next enum
end
end
else -- here for enum 2, 3, 4
if params[enum_alias] then
names[enum] = params[enum_alias]; -- found so save the value assigned to |lastn=
break; -- next enum
end
end
end
end
end
for enum=1, 4 do -- spin through the names table and
local name = names[enum];
if not name then -- when nameholding parameter n is not present (nil)
name = ''; -- convert to empty string for concatenation
end
name = name:gsub('%(%((.-)%)%)', '%1'); -- remove accept-as-written markup if present
names[enum] = name; -- save the modified name
end
local name_str = table.concat (names); -- concatenate the names
return '' ~= name_str and name_str or nil; -- return the concatenation if not empty string; nil else
end
--[[--------------------------< T E M P L A T E _ S T R I P >--------------------------------------------------
removes the citation or havrc template's {{ and }} markup then removes, in whole, any templates found inside the
citation or harvc template.
Templates are not allowed in parameters that are made part of COinS metadata; yet, they will appear. cs1|2 does
not see the template markup but instead sees the result of the template as html. cs1|2 strips the html which
leaves the displayed value for the anchor id. We can't do that here so, because templates aren't allowed in
parameters, we simply discard any templates found in the cs1|2 template.
this may leave a |lastn= parameter empty which will be treated as if it were really empty as cs1|2 do (three authors,
|last2= empty -> CITEREFLast1Last3YYYY (the harv and sfn render: 'Last1, & Last3 YYYY' with CITEREFLast1Last3YYYY).
]]
local function template_strip (template)
template = template:gsub ('^{{%s*', ''):gsub ('%s*}}$', '', 1); -- remove outer {{ and }} (cs1|2 template delimiters with trailing/leading whitespace)
template = template:gsub ('%b{}', ''); -- remove any templates from the cs1|2 template
return template;
end
--[[--------------------------< E S C A P E _ L U A _ M A G I C _ C H A R S >----------------------------------
Returns a string where all of lua's magic characters have been escaped. This is important because functions like
string.gsub() treat their pattern and replace strings as patterns, not literal strings.
]]
local function escape_lua_magic_chars (argument)
argument = argument:gsub("%%", "%%%%"); -- replace % with %%
argument = argument:gsub("([%^%$%(%)%.%[%]%*%+%-%?])", "%%%1"); -- replace all other lua magic pattern characters
return argument;
end
--[=[-------------------------< W I K I L I N K _ S T R I P >--------------------------------------------------
Wikilink markup does not belong in an anchor id and can / does confuse the code that parses apart citation and
harvc templates so here we remove any wiki markup:
[[link|label]] -> label
[[link]] -> link
]=]
local function wikilink_strip (template)
for wikilink in template:gmatch ('%[%b[]%]') do -- get a wikilink
template = template:gsub ('%[%b[]%]', '__57r1P__', 1); -- install a marker
if wikilink:match ('%[%[.-|(.-)%]%]') then
wikilink = wikilink:match ('%[%[.-|(.-)%]%]'); -- extract label from complex [[link|label]] wikilink
else
wikilink = wikilink:match ('%[%[(.-)%]%]'); -- extract link from simple [[link]] wikilinks
end
wikilink = escape_lua_magic_chars (wikilink); -- in case there are lua magic characters in wikilink
template = template:gsub ('__57r1P__', wikilink, 1); -- replace the marker with the appropriate text
end
return template;
end
--[[--------------------------< T E M P L A T E _ N A M E _ G E T >--------------------------------------------
return the citation or harvc template's name; convert to lower case and trim leading and trailing whitespace;
when the template is a sandbox the subpage portion of the template name is omitted from the returned template name
{{Cite book/new |...}} returns cite book
]]
local function template_name_get (template)
local template_name = template:match ('^{{%s*([^/|}]+)'); -- get template name; ignore subpages ~/new, ~/sandbox; parser functions
if not template_name or template_name:match ('^#') then -- parser functions, magic words don't count as templates
return nil; -- could not get template name from (possibly corrupt) template; extraneous opening { mid template can cause this;
end;
template_name = template_name:gsub ('%s*$', ''); -- trim trailing whitespace; leading whitespace already removed
return Lang_obj:ucfirst (template_name); -- first character in template name must be uppercase (same as canonical template name) TODO: better way to do this?
end
--[[--------------------------< T E M P L A T E _ P A R A M S _ G E T >----------------------------------------
parse apart a template's parameters and store in the params table where key is the parameter's name and value is
the parameter's value; empty parameters are not saved
]]
local function template_params_get (template, params_t)
template = wikilink_strip (template); -- because piped wikilinks confuse code that builds params_t{} and because wikilinks not allowed in an anchor id
-- strip templates after getting |ref= value because |ref={{sfnref}} and |ref={{harvid}} are allowed
template = template_strip (template); -- because template markup can confuse code that builds params_t{} and because templates in name parameters are not allowed
local temp_t = mw.text.split (template, '%s*|%s*'); --split on the pipe
for _, param in ipairs (temp_t) do
if param:find ('=', 1, true) then -- a named parameter?
local k, v = param:match ('%s*([^=]-)%s*=%s*([^|}]+)');
if v then -- there must be a value
if '' ~= v and not v:match ('^%s$') then -- skip when value is empty string or only whitespace
params_t[k] = mw.text.trim (v); -- add trimmed value else
end
end
end
end
end
--[[--------------------------< C I T E R E F _ M A K E _ H A R V C >------------------------------------------
makes anchor_id from {{harvc}} or redirects
]]
local function anchor_id_make_harvc (template)
local date = date_get (template, alias_patterns_harvc_date); -- get date; done here because might be in {{date}}; return date if valid; empty string else
local anchor_id;
local params = {}; -- table of harvc parameters
local id; -- custom anchor id for this {{harvc}} template
id = template:match ('|%s*id%s*=%s*(%b{})'); -- in case |id={{sfnref}}; done here because templates will be stripped
template_params_get (template, params); -- build a table of template parameters and their values; this strips wikilinks and templates
if id then -- when set is {{sfnref}} or {{harvid}} template
return sfnref_get (id); -- returns content of {{sfnref}} or {{harvid}}; nil else
end
if params.id then -- custom anchor for this {{harvc}} template (text)
return params.id; -- |id= value as written
end
anchor_id = names_get (params, aliases_harvc_author); -- get the harvc contributor names
if anchor_id then -- if names were gotten
return 'CITEREF' .. anchor_id .. date;
end
return nil; -- no names; no anchor_id
end
--[[--------------------------< A N C H O R _ I D _ M A K E _ W R A P P E R >----------------------------------
for wrapper templates
inspect externally visible |ref= to decide what to do:
|ref= - empty or missing: get names and date from whitelist defaults; override defaults from externally visible template parameters
|ref=harv - same as empty or missing
|ref={{SfnRef|name|name|name|name|year}} - assemble an anchor id from {{sfnref}} positional parameters
|ref={{Harvid|name|name|name|name|year}} - assemble an anchor id from {{harvid}} positional parameters
|ref=none - skip; do nothing because an anchor id intentionally suppressed; TODO: keep with a type code of '0'?
|ref=<text> - save param value because may match an anchor id override value in {{harv}} template |ref= parameter or {{harvc}} |id= parameter
]]
local function anchor_id_make_wrapper (template)
local ref; -- content of |ref=
local template_name; -- name of the template
local anchor_id; -- the assembled anchor id from this template
local date;
local name_default;
local date_default;
local vol;
local params = {}; -- table of template parameters
template_name = template_name_get (template); -- get first char uppercase trimmed template name; ignore subpages ~/new, ~/sandbox
if not template_name or template_skip[template_name] then
return nil; -- could not extract template name from (possibly corrupted) template (extraneous opening { in the template will cause this)
end
date = date_get (template, alias_patterns_date); -- get date; done here because might be in {{date}}
-- if '' == date then
-- date = whitelist.wrapper_templates[template_name][2] or ''; -- no externally visible date so get default date
-- end
ref = template:match ('|%s*ref%s*=%s*(%b{})'); -- first look for |ref={{sfnref}} or |ref={{harvid}} because we will strip templates from the wrapper template
if not ref then
if template:match ('|%s*ref%s*=([^|}]+)') then -- |ref={{template}} not found; if there is a |ref= param with an assigned value
ref = template:match ('|%s*ref%s*=([^|}]+)'); -- get the value; whitespace is a 'value'
if ref then -- nil when |ref=|... or when |ref=}} (no spaces between assignment operator and pipe or closing brace)
ref = mw.text.trim (ref); -- something, could be just whitespace, so trim leading / trailing whitespace
if '' == ref then -- trimming a string of whitespace makes an empty string
ref = nil; -- make empty ref same as missing ref
end
end
end
end
template_params_get (template, params); -- build a table of template parameters and their values
if whitelist.wrapper_templates[template_name][1] then -- is this wrapper a simple-default wrapper?
name_default = whitelist.wrapper_templates[template_name][1]; -- get the default names
date_default = whitelist.wrapper_templates[template_name][2]; -- get the default date
else
vol = params['volume'] or 'default';
if not whitelist.wrapper_templates[template_name][vol] then -- make sure this volume exists
vol = 'default'; -- doesn't exist, use default volume
end
name_default = whitelist.wrapper_templates[template_name][vol][1]; -- get the default names
date_default = whitelist.wrapper_templates[template_name][vol][2]; -- get the default date
end
if 'harv' == ref or not ref then -- |ref=harv specified or |ref= missing or empty
anchor_id = names_get (params, aliases_contributor) or -- get contributor, author, or editor names
names_get (params, aliases_author) or
vnames_get (params, 'vauthors') or -- |vauthors=
names_get (params, aliases_editor) or
vnames_get (params, 'veditors') or -- |veditors=
name_default; -- default names from whitelist
-- whitelist.wrapper_templates[template_name][1]; -- default names from whitelist
if '' == date then -- if date not provided in the template
date = date_default; -- use the default date from whitelist
end
if anchor_id then -- if names were gotten
anchor_id = 'CITEREF' .. anchor_id .. date;
end
elseif ref:match ('%b{}') then -- ref holds a template
anchor_id = sfnref_get (ref); -- returns content of {{sfnref}} or {{harvid}}; nil else
elseif 'none' == ref then -- |ref=none
return nil; -- anchor id expicitly suppressed
else
anchor_id = ref; -- |ref=<text> may match an anchor id override value in {{harv}} template |ref= parameter
end
return anchor_id; -- anchor_id text; nil else
end
--[[--------------------------< A N C H O R _ I D _ M A K E _ C S 1 2 >----------------------------------------
for cs1|2 template and cs1-like templates
inspect |ref= to decide what to do:
|ref= - empty or missing: get names and date from template parameters; all cs1|2 create CITEREF anchor IDs
|ref=harv - get names and date from template parameters
|ref={{SfnRef|name|name|name|name|year}} - assemble an anchor id from {{sfnref}} positional parameters
|ref={{Harvid|name|name|name|name|year}} - assemble an anchor id from {{harvid}} positional parameters
|ref=none - skip; do nothing because an anchor id intentionally suppressed; TODO: keep with a type code of '0'?
|ref=<text> - save param value because may match an anchor id override value in {{harv}} template |ref= parameter or {{harvc}} |id= parameter
]]
local function anchor_id_make_cs12 (template)
local ref; -- content of |ref=
local template_name; -- name of the template
local anchor_id; -- the assembled anchor id from this template
local date;
local params = {}; -- table of template parameters
template_name = template_name_get (template); -- get first char uppercase trimmed template name; ignore subpages ~/new, ~/sandbox
if not template_name or template_skip[template_name] then
return nil; -- could not extract template name from (possibly corrupted) template (extraneous opening { in the template will cause this)
end
if redirects_patent[template_name] then
date = date_get (template, alias_patterns_patent_date); -- get date; done here because might be in {{date}}
else
date = date_get (template, alias_patterns_date);
end
ref = template:match ('|%s*ref%s*=%s*(%b{})'); -- first look for |ref={{sfnref}} or |ref={{harvid}} because we will strip templates from the cs1|2 template
if not ref then
if template:match ('|%s*ref%s*=([^|}]+)') then -- |ref={{template}} not found; if there is a |ref= param with an assigned value
ref = template:match ('|%s*ref%s*=([^|}]+)'); -- get the value; whitespace is a 'value'
if ref then -- nil when |ref=|... or when |ref=}} (no spaces between assignment operator and pipe or closing brace)
ref = mw.text.trim (ref); -- something, could be just whitespace, so trim leading / trailing whitespace
if '' == ref then -- trimming a string of whitespace makes an empty string
ref = nil; -- make empty ref same as missing ref
end
end
end
end
template_params_get (template, params); -- build a table of template parameters and their values
if not ref then -- |ref= not set, might be cite LSA which doesn't support |ref=
if 'cite lsa' == template_name then
return 'CITEREF' .. (params.last or '') .. (params.year or ''); -- cite LSA always creates an anchor id using only |last= and |year= (no aliases)
end
end
if 'harv' == ref or not ref then -- |ref=harv specified or |ref= missing or empty
if redirects_patent[template_name] then -- if this is a cite patent template
anchor_id = names_get (params, aliases_inventor); -- inventor names only
else -- cs1|2 template
anchor_id = names_get (params, aliases_contributor) or -- get contributor, author, or editor names
names_get (params, aliases_author) or
vnames_get (params, 'vauthors') or -- |vauthors=
names_get (params, aliases_editor) or
vnames_get (params, 'veditors'); -- |veditors=
end
if anchor_id then -- if names were gotten
anchor_id = 'CITEREF' .. anchor_id .. date;
end
elseif ref:match ('%b{}') then -- ref holds a template
anchor_id = sfnref_get (ref); -- returns content of {{sfnref}} or {{harvid}}; nil else
elseif 'none' == ref and not redirects_patent[template_name] then -- |ref=none; not supported by cite patent
return nil; -- anchor id expicitly suppressed
else
anchor_id = ref; -- |ref=<text> may match an anchor id override value in {{harv}} template |ref= parameter
end
return anchor_id; -- anchor_id text; nil else
end
--[[--------------------------< L I S T _ A D D >--------------------------------------------------------------
adds an <item> to <list> table; for anchor IDs, the boolean <encode> argument must be set true; no return value
]]
local function list_add (item, list, encode)
if item then -- if there was an item
if encode then -- for anchor IDs ...
item = mw.uri.anchorEncode (item); -- encode to remove wikimarkup, convert spaces to underscores etc
end
if not list[item] then -- if not already saved
list[item] = 1; -- save it
else -- here when this item already saved
list[item] = list[item] + 1; -- to indicate that there are multiple items
end
end
end
--[[--------------------------< A N C H O R _ I D _ M A K E _ A N C H O R >------------------------------------
make anchor IDs from {{anchor}}; there may be more than one because {{anchor}} is not limited to the number of
anchors it may hold.
]]
local function anchor_id_make_anchor (template, anchor_id_list)
template = template:gsub ('^{{[^|]+|', ''):gsub ('}}$', '', 1); -- remove outer {{ and }} and template name
template = wikilink_strip (template); -- strip any wikilink markup (there shouldn't be any but just in case)
local params = {};
local anchor_id;
for param in template:gmatch ('%b{}') do -- loop through the template; remove and save templates (presumed to be sfnref or harvid)
table.insert (params, param); -- save it
template = template:gsub ('%b{}', '', 1); -- remove it from source template
end
for _, t in ipairs (params) do -- spin through the templates in params
anchor_id = sfnref_get (t); -- attempt to decode {{sfnref}} and {{harvid}}
if anchor_id then -- nil when not {{sfnref}} or {{harvid}}
list_add (anchor_id, anchor_id_list, true); -- add anchor ID to the list
end
end
template = template:gsub ('|%s*|', '|'); -- when pipe follows pipe with or without white space, remove extraneous pipe
template = template:gsub ('^|', ''):gsub('|$', ''); -- remove extraneous leading and trailing pipes
params = mw.text.split (template, '%s*|%s*'); -- split at the pipe and remove extraneous space characters
for _, t in ipairs (params) do -- spin through the anchor IDs
anchor_id = mw.text.trim (t); -- trim white space
if '' ~= anchor_id then -- should always have something
list_add (anchor_id, anchor_id_list, true); -- add anchor ID to the list
end
end
end
--[[--------------------------< T E M P L A T E _ L I S T _ A D D >--------------------------------------------
makes a list of templates use in the article.
]]
local function template_list_add (template)
local template = template:match ('{{%s*(.-)[|}]'); -- keep the case of the template - this is different from template_name_get()
if template and not template:match ('^#') then -- found a template or magic word; ignore magic words
template=mw.text.trim (template); -- trim whitespace
template = Lang_obj:ucfirst (template); -- first character in template name must be uppercase (same as canonical template name) TODO: better way to do this?
list_add (template, template_list); -- add to list with (unused) tally
end
end
--[[--------------------------< A N C H O R _ I D _ L I S T _ M A K E >----------------------------------------
makes a list of anchor ids from cs1|2, cs1|2-like, vcite xxx, harvc, anchor, wikicite templates
Because cs1|2 wrapper templates can, and often do, hide the author and date parameters inside the wrapper,
these parameters are not available in the article's wikisource so {{harv}}, {{sfn}}, and {{harvc}} templates that
link correctly to those wrapper templates will incorrectly show error messages. Use |ignore-err=yes in the {{harv}},
{{sfn}}, and {{harvc}} templates to supress the error message.
creates a list of templates used in the article for use with the whitelist
creates a list of article-local whitelisted anchor IDs from {{sfn whitelist}}
]]
local function anchor_id_list_make ()
article_content_get (); -- attempt to get this article's content
if '' == Article_content then -- when there is no article content
return ''; -- no point in continuing
end
local template; -- place to hold the template that we found
local template_name;
local anchor_id; -- place to hold an anchor id as it is extracted / decoded
local find_pattern = '%f[{]{{[^{]';
local tstart, tend = Article_content:find (find_pattern); -- find the first template; do not find template variables: {{{template var|}}}
while tstart do
template = Article_content:match ('%b{}', tstart); -- get the whole template
if not template then
break; -- template is nil for some reason (last template missing closing }} for example) so declare ourselves done
end
template_name = template_name_get (template); -- get first char uppercase trimmed template name; ignore subpages ~/new, ~/sandbox
template_list_add (template); -- add this template's name to the list
if data.known_templates_cs12 [template_name] then
anchor_id = anchor_id_make_cs12 (template); -- extract an anchor id from this template
list_add (anchor_id, anchor_id_list, true)
elseif data.known_templates_vcite [template_name] then
local ref = template:match ('|%s*ref%s*=%s*(%b{})'); -- first look for |ref={{sfnref}} or |ref={{harvid}} because we will strip templates from the vcite template
if ref then -- |ref={{template}}
anchor_id = sfnref_get (ref); -- returns content of {{sfnref}} or {{harvid}}; nil else
list_add (anchor_id, anchor_id_list, true);
else
local params = {};
template_params_get (template, params); -- build a table of template parameters and their values
anchor_id = params['ref']; -- when both set, vcite uses value from |ref=
if not anchor_id and params['harvid'] then
anchor_id = 'CITEREF' .. params['harvid']; -- in vcite, |harvid= auto-adds 'CITEREF' prefix to the value in |harvid=
end
list_add (anchor_id, anchor_id_list, true);
end
elseif data.known_templates_harvc [template_name] then
anchor_id = anchor_id_make_harvc (template); -- extract an anchor id from this template
list_add (anchor_id, anchor_id_list, true);
elseif data.known_templates_wikicite [template_name] then
local ref = template:match ('|%s*ref%s*=%s*(%b{})'); -- first look for |ref={{sfnref}} or |ref={{harvid}}
if ref then
anchor_id = sfnref_get (ref);
elseif template:match ('|%s*ref%s*=([^|}]+)') then
anchor_id = template:match ('|%s*ref%s*=([^|}]+)'); -- plain-text
elseif template:match ('|%s*id%s*=%s*(%b{})') then
ref = template:match ('|%s*id%s*=%s*(%b{})');
anchor_id = 'Reference-' .. sfnref_get (ref);
elseif template:match ('|%s*id%s*=([^|}]+)') then
anchor_id = 'Reference-' .. template:match ('|%s*id%s*=([^|}]+)'); -- plain-text
else
anchor_id = nil; -- no matches, ensure that anchor_id has no value
end
if anchor_id then
list_add (anchor_id, anchor_id_list, true);
end
elseif data.known_templates_anchor [template_name] then
anchor_id_make_anchor (template, anchor_id_list); -- extract anchor ids from this template if any
elseif data.known_templates_sfn_whitelist [template_name] then
template = template:gsub ('^{{[^|]+|', ''):gsub ('}}$', '', 1); -- remove outer {{ and }} and template name
template = mw.text.trim (template, '%s|'); -- trim leading trailing white space and pipes
template = mw.text.split (template, '%s*|%s*'); -- make a table of the template's parameters
for _, anchor_id in ipairs (template) do -- spin through this template's parameter
if '' ~= anchor_id and not article_whitelist[anchor_id] then
anchor_id = mw.uri.anchorEncode (anchor_id)
article_whitelist[anchor_id] = 1; -- add to the whitelist
end
end
elseif template_name and whitelist.wrapper_templates[template_name] then
anchor_id = anchor_id_make_wrapper (template); -- extract an anchor id from this template if possible
list_add (anchor_id, anchor_id_list, true);
elseif template_name and template_name:match ('^Cit[ea]') then -- not known, not known wrapper; last gasp, try as cs1-like
anchor_id = anchor_id_make_cs12 (template); -- extract an anchor id from this template if possible
list_add (anchor_id, anchor_id_list, true);
end
tstart, tend = Article_content:find (find_pattern, tend); -- search for another template; begin at end of last search
end
mw.logObject (anchor_id_list, 'anchor_id_list');
mw.logObject (template_list, 'template_list');
mw.logObject (article_whitelist, 'article_whitelist');
return anchor_id_list;
end
--[[--------------------------< E X P O R T E D _ T A B L E S >------------------------------------------------
]]
return {
anchor_id_list = anchor_id_list_make(), -- table of anchor ids available in this article
article_whitelist = article_whitelist, -- table of anchor ids with false-positive error message to be suppressed
template_list = template_list, -- table of templates used in this article
}
ibyy77ipwctiz76c90sit32pquvfgtt
Module:Footnotes/anchor id list/doc
828
2124
16101
2022-08-19T20:26:36Z
Kambai Akau
15
Created page with "{{high-use|79695}} This is an important module that is part of the larger footnotes module."
wikitext
text/x-wiki
{{high-use|79695}}
This is an important module that is part of the larger footnotes module.
eqaeabfu742z4gb3yxtbdumlzhfv06i
Module:Footnotes/anchor id list/data
828
2125
16102
2022-08-19T20:27:46Z
Kambai Akau
15
Created page with "-- copied from Module:Ref info/data - maybe overkill here? -- for this application make lists from the redirect lists and force all template names first character uppercase require('Module:No globals'); --[[--------------------------< C S 1 _ T E M P L A T E _ P A T T E R N S >------------------------------------ These are patterns for cs1 templates and their redirects. These patterns exclude redirects that are vcite-like which redirects should be deleted because vci..."
Scribunto
text/plain
-- copied from Module:Ref info/data - maybe overkill here?
-- for this application make lists from the redirect lists and force all template names first character uppercase
require('Module:No globals');
--[[--------------------------< C S 1 _ T E M P L A T E _ P A T T E R N S >------------------------------------
These are patterns for cs1 templates and their redirects. These patterns exclude redirects that are vcite-like
which redirects should be deleted because vcite is not cs1.
]]
local cs1_template_patterns = { -- lua patterns of the cannonical names and redirects
'[Cc]ite ar[Xx]iv', -- arXiv is the canonical name
'[Cc]ite ArXiv',
'[Cc]ite AV media', -- canonical
'[Cc]ite audio', '[Cc]ite AV', '[Cc]ite AV ?Media', '[Cc]ite av media',
'[Cc]ite cd', '[Cc]ite DVD', '[Cc]ite dvd', '[Cc]ite film',
'[Cc]ite image', '[Cc]ite media', '[Cc]ite movie',
'[Cc]ite music video', '[Cc]ite radio', '[Cc]ite song',
'[Cc]ite ?video', '[Cc]ite visual', '[Cc]ite You[Tt]ube',
'[Cc]ita vídeo', -- non-English redirect; TODO: tally separately?
'[Cc]ite AV media notes', -- canonical
'[Cc]ite album[ %-]notes', '[Cc]ite av media notes',
'[Cc]ite DVD[ %-]notes', '[Cc]ite dvd%-notes', '[Cc]ite liner notes',
'[Cc]ite music release notes', '[Ll]iner notes',
'[Cc]ite bio[Rr]xiv', -- bioRxiv is the canonical form
'[Cc]ite [Bb]ook', -- book is the canonical form
'[Bb]ook cite', '[Bb]ook reference', '[Bb]ook reference url',
'[Cc] book', '[Cc]it book', '[Cc]ite books', '[Cc]ite chapter',
'[Cc]ite ebook', '[Cc]ite manual', '[Cc]ite page',
'[Cc]ite publication', '[Cc]ite score',
'[Cc]ite work', '[Cc]ite%-?book',
'[Bb]okref', '[Cc]itace monografie', '[Cc]itar livro', -- non-English redirects; TODO: tally separately?
'[Cc]iteer boek', '[Oo]uvrage', '[Rr]ef%-llibre', '서적 인용',
'[Cc]ite citeseerx', -- canonical
'[Cc]ite conference', -- canonical
'[Cc]ita conferenza', '[Cc]ite proceedings', '[Cc]onference reference', -- cita conferenza is non-English; TODO: tally separately?
'[Cc]ite ?encyclopedia', -- cite encyclopedia is the canonical name
'[Cc]ite contribution', '[Cc]ite dic', '[Cc]ite dictionary',
'[Cc]ite encyclopaedia', '[Cc]ite encyclopædia', '[Ee]ncyclopedia',
'[Cc]ite [Ee]pisode', -- episode is the canonical form
'[Cc]ite show',
'[Cc]ite interview', -- canonical
'[Cc]ite ?journal', -- cite journal is the canonical form
'[Cc] journal', '[Cc]itation journal', '[Cc]ite abstract',
'[Cc]ite document', '[Cc]ite Journal', '[Cc]ite journal zh',
'[Cc]ite ?paper', '[Vv]cite2 journal',
'[Cc]ita pubblicazione', '[Cc]itace periodika', '[Cc]itar jornal', -- non-English redirects; TODO: tally separately?
'[Cc]itar publicació', '[Cc]ytuj pismo', '[Tt]idskriftsref',
'Навод из стручног часописа', '저널 인용',
'[Cc]ite [Mm]agazine', -- magazine is the canonical form
'[Cc]ite mag', '[Cc]ite magazine article', '[Cc]ite newsletter',
'[Cc]ite periodical',
'[Cc]ite mailing ?list', -- mailing list is the canonical form
'[Cc]ite list',
'[Cc]ite maps?', -- map is the canonical form
'[Cc]ite[ %-]?news', -- cite news is the canonical form
'[Cc] news', '[Cc]it news', '[Cc]itation news', '[Cc]ite article',
'[Cc]ite n', '[Cc]ite new', '[Cc]ite newspaper', '[Cc]ite News',
'[Cc]ite news%-q', '[Cc]ite news2', '[Cc]itenewsauthor', '[Cc]ute news',
'[Cc]itar notícia', '[Hh]aber kaynağı', '[Tt]idningsref', 'استشهاد بخبر', -- non-English redirects; TODO: tally separately?
'뉴스 인용',
'[Cc]ite newsgroup', -- canonical
'[Cc]ite usenet',
'[Cc]ite podcast', -- canonical
'[Cc]ite [Pp]ress release', -- press release is the canonical form
'[Cc]ite media release', '[Cc]ite news release', '[Cc]ite pr',
'[Cc]ite press', '[Cc]ite press release\.', '[Cc]ite press[%-]?release',
'[Cc]ite report', -- canonical
'[Cc]ite serial', -- canonical
'[Cc]ite sign', -- canonical
'[Cc]ite plaque',
'[Cc]ite speech', -- canonical
'[Cc]ite ssrn', -- canonical
'[Cc]ite SSRN',
'[Cc]ite tech ?report', -- techreport is the canonical form
'[Cc]ite standard', '[Cc]ite technical report', '[Tt]echrep reference',
'[Cc]ite thesis', -- canonical
'[Cc]ite dissertation',
'[Cc]itar tese', -- non-English redirect; TODO: tally separately?
'[Cc]ite [Ww]eb', -- web is the canonical form
'[Cc] web', '[Cc]it web', '[Cc]ite blog', '[Cc]ite URL', '[Cc]ite url',
'[Cc]ite w', '[Cc]ite wb', '[Cc]ite we', '[Cc]ite web\.',
'[Cc]ite webpage', '[Cc]ite website', '[Cc]ite website article',
'[Cc]ite%-?web', '[Cc]itweb', '[Cc]w', '[Rr]ef web', '[Ww]eb citation',
'[Ww]eb cite', '[Ww]eb link', '[Ww]eb[ %-]reference', '[Ww]eblink',
'[Cc]hú thích web', '[Cc]ita web', '[Cc]itace elektronické monografie', -- non-English redirects; TODO: tally separately?
'[Cc]itat web', 'مرجع ويب', 'یادکرد وب', '웹 인용',
}
--[[--------------------------< C S 2 _ T E M P L A T E _ P A T T E R N S >------------------------------------
These are patterns for cs2 templates redirects.
]]
local cs2_template_patterns = { -- lua patterns of the cannonical names and redirects
'[Cc]itation',
'[Cc]ite', '[Cc]ite citation', '[Cc]ite study',
'[Cc]ite [Tt]echnical standard',
}
--[[--------------------------< V C I T E _ T E M P L A T E _ P A T T E R N S >--------------------------------
These are patterns for Vcite-family templates and their redirects.
]]
local vcite_template_patterns = {
'[Vv]cite book', -- canonical
'[Vv]ancite book', '[Vv]ancite report', '[Vv]cite encyclopedia',
'[Vv]cite report',
'[Vv]cite journal', -- canonical
'[Cc]it journal', '[Cc]it paper', '[Vv]ancite journal', '[Vv]cite paper',
'[Vv]cite news', -- canonical
'[Vv]ancite news',
'[Vv]cite web', -- canonical
'[Vv]ancite web',
}
--[[--------------------------< H A R V C _ T E M P L A T E _ P A T T E R N S >--------------------------------
These are patterns for the harvc template and its redirects.
]]
local harvc_template_patterns = {
'[Hh]arvc', -- canonical
'[Cc]itec',
}
--[[--------------------------< C S 1 _ L I K E _ T E M P L A T E _ P A T T E R N S >--------------------------
These are patterns for miscellaneous templates and their redirects that 'look like' cs1 templates (begin with cite ...)
Because they 'look like' cs1 templates they are handled as if they were cs1 templates. These templates are NOT
wrapper templates; names and dates are always to be extracted from the article instantiation of the template.
]]
local cs1_like_template_patterns = {
'[Cc]ite LSA', -- canonical
}
--[[--------------------------< W I K I C I T E _ T E M P L A T E _ P A T T E R N S >--------------------------
These are patterns for the wikicite template and its redirects.
]]
local wikicite_template_patterns = {
'[Ww]ikicite', -- canonical
}
--[[--------------------------< A N C H O R _ T E M P L A T E _ P A T T E R N S >------------------------------
These are patterns for the anchor template and its redirects.
]]
local anchor_template_patterns = {
'[Aa]nchors?', -- anchor is canonical form
'[Aa]nchor for redirect',
'[Aa]nchro',
'[Aa]ncor',
}
--[[--------------------------< S F N _ W H I T E L I S T _ P A T T E R N S >----------------------------------
These are patterns for the anchor template and its redirects.
]]
local sfn_whitelist_patterns = {
'[Ss]fn whitelist', -- canonical
'[Hh]arv whitelist',
}
--[[--------------------------< K N O W N _ T E M P L A T E S >------------------------------------------------
These tables are created from the *_template_patterns tables. To make these tables, entries in the source tables
are evaluated to replace lua patterns with the appropriate characters to create names for the output tables.
First charqacter is always uppercase
For example:
[Cc]ite ar[Xx]iv
becomes
Cite arXiv
Cite arxiv
]]
local known_templates_cs12 = {}; -- the exported tables
local known_templates_vcite = {};
local known_templates_harvc = {};
local known_templates_wikicite = {};
local known_templates_anchor = {};
local known_templates_sfn_whitelist = {};
local function add_stripped (list, name)
if not list[name] then
list[name] = true;
end
end
local function pattern_convert (pattern, list)
local lead, tail, c, l, name;
local first_char_patterns = {
'^%[(%a)%a%]', -- leading character (usually uppercase)
'^%[%a(%a)%]', -- leading character (usually lowercase)
}
c = tostring (pattern:match ('%u')); -- tostring() required because I don't know why; lua chokes complaining that c is not a string
name = pattern:gsub ('^%[%a%a%]', c); -- replace bracketed first character [Xx] with selected character from the match
if name:match ('(.-)%[(%a)(%a)%](.*)') then -- mixed case optional letters
lead, c, l, tail = name:match ('(.-)%[(%a)(%a)%](.*)');
add_stripped (list, lead .. c .. tail); -- uppercase
add_stripped (list, lead .. l .. tail); -- lowercase
elseif name:match ('^([^%[]+)(%[ %%%-%]%?)(.+)$') then -- [ %-]?
lead, c, tail = name:match ('^([^%[]+)(%[ %%%-%]%?)(.+)$');
add_stripped (list, lead .. tail); -- neither char
add_stripped (list, lead .. ' ' .. tail); -- space
add_stripped (list, lead .. '-' .. tail); -- hyphen
elseif name:match ('^([^%[]+)(%[%%%-%]%?)(.+)$') then -- [%-]?
lead, c, tail = name:match ('^([^%[]+)(%[%%%-%]%?)(.+)$');
add_stripped (list, lead .. tail); -- no hyphen
add_stripped (list, lead .. '-' .. tail); -- hyphen
elseif name:match ('^([^%[]+)(%[ %%%-%])(.+)$') then -- [ %-]
lead, c, tail = name:match ('^([^%[]+)(%[ %%%-%])(.+)$');
add_stripped (list, lead .. ' ' .. tail); -- space
add_stripped (list, lead .. '-' .. tail); -- hyphen
elseif name:match ('^([^%?]+)(%%%-%?)(.+)$') then -- %-?
lead, c, tail = name:match ('^([^%?]+)(%%%-%?)(.+)$');
add_stripped (list, lead .. tail); -- no hyphen
add_stripped (list, lead .. '-' .. tail); -- hyphen
elseif name:match ('^(.-)(%%%-)(.+)$') then -- %-
lead, c, tail = name:match ('^(.-)(%%%-)(.+)$');
add_stripped (list, lead .. '-' .. tail); -- hyphen
elseif name:match ('^(.-)(.)%?(.*)$') then -- .?
lead, c, tail = name:match ('^(.-)(.)%?(.*)$');
add_stripped (list, lead .. tail); -- no character
add_stripped (list, lead .. c .. tail); -- character
else
add_stripped (list, name); -- no patterns so save as is
end
end
for _, t in ipairs ({
{cs1_template_patterns, known_templates_cs12},
{cs2_template_patterns, known_templates_cs12},
{cs1_like_template_patterns, known_templates_cs12},
{vcite_template_patterns, known_templates_vcite},
{harvc_template_patterns, known_templates_harvc},
{wikicite_template_patterns, known_templates_wikicite},
{anchor_template_patterns, known_templates_anchor},
{sfn_whitelist_patterns, known_templates_sfn_whitelist},
}) do
for _, pattern in ipairs (t[1]) do -- for each patern in *_template_patterns
pattern_convert (pattern, t[2]) -- convert and store in known_templates_*
end
end
--[[--------------------------< E X P O R T S >----------------------------------------------------------------
]]
return
{
known_templates_anchor = known_templates_anchor,
known_templates_cs12 = known_templates_cs12,
known_templates_harvc = known_templates_harvc,
known_templates_vcite = known_templates_vcite,
known_templates_wikicite = known_templates_wikicite,
known_templates_sfn_whitelist = known_templates_sfn_whitelist,
}
bht9pmjzuvuqajea0fn73uv88hds8sh
Module:Footnotes/whitelist
828
2126
16103
2022-08-19T20:36:54Z
Kambai Akau
15
Created page with "--[[--------------------------< W R A P P E R _ T E M P L A T E _ D E F A U L T S >---------------------------- A list of wrapper templates by their canonical names – spelling and capitalization is important. Each wrapper template has a table of two values: [1] is the wrapper's default name-list as it is used in an anchor ID; [2] is the default year. This table is indexed indirectly through the wrapper_templates table. This table is not available externally. ]] l..."
Scribunto
text/plain
--[[--------------------------< W R A P P E R _ T E M P L A T E _ D E F A U L T S >----------------------------
A list of wrapper templates by their canonical names – spelling and capitalization is important. Each wrapper
template has a table of two values: [1] is the wrapper's default name-list as it is used in an anchor ID; [2] is
the default year. This table is indexed indirectly through the wrapper_templates table.
This table is not available externally.
]]
local wrapper_template_defaults = { -- keys are canonical template names
['Americana'] = {'Rines', '1920'}, -- tables with default name and default year
['Cite EB1911'] = {'Chisholm', '1911'}, -- tables with default name and default year
['EB1911'] = {'Chisholm', '1911'},
['EI3'] = {'FleetKrämerMatringeNawas', ''},
['ODNB'] = {'', ''}, -- there is no default anchor ID; this forces evaluation of {{cite ODNB}} redirects
}
--[[--------------------------< W R A P P E R _ T E M P L A T E _ D E F A U L T S _ V O L >--------------------
For wrapper templates that use |volume= to specify default name (often editor names) and year. Wrapper templates
are indexed by their canonical names – spelling and capitalization is important. Each wrapper template has a table
of values for every volume. Volumes may be indexed by Arabic or Roman numerals. Each volume index has a table of
twp values" [1] is the wrapper's default name-list as it is used in an anchor ID; [2] is the default year. Each
wrapper template in this table must have a ['default'] key for those occasions when |volume= is omitted or empty.
This table is indexed indirectly through the wrapper_templates table.
This table is not available externally.
]]
local wrapper_template_defaults_vol = { -- primary keys are canonical template names; TODO: do these keys have to be canonical template names?
['Cite Catholic Encyclopedia'] = { -- secondary keys are volume
['1'] = {'Herbermann', '1907'},
['2'] = {'Herbermann', '1907'},
['3'] = {'Herbermann', '1908'},
['4'] = {'Herbermann', '1908'},
['5'] = {'Herbermann', '1909'},
['6'] = {'Herbermann', '1909'},
['7'] = {'Herbermann', '1910'},
['8'] = {'Herbermann', '1910'},
['9'] = {'Herbermann', '1910'},
['10'] = {'Herbermann', '1911'},
['11'] = {'Herbermann', '1911'},
['12'] = {'Herbermann', '1911'},
['13'] = {'Herbermann', '1912'},
['14'] = {'Herbermann', '1912'},
['15'] = {'Herbermann', '1912'},
['default'] = {'Herbermann', '1913'},
},
['Cite EB9'] = {
['1'] = {'Baynes', '1878'}, ['I'] = {'Baynes', '1878'},
['2'] = {'Baynes', '1878'}, ['II'] = {'Baynes', '1878'},
['3'] = {'Baynes', '1878'}, ['III'] = {'Baynes', '1878'},
['4'] = {'Baynes', '1878'}, ['IV'] = {'Baynes', '1878'},
['5'] = {'Baynes', '1878'}, ['V'] = {'Baynes', '1878'},
['6'] = {'Baynes', '1878'}, ['VI'] = {'Baynes', '1878'},
['7'] = {'Baynes', '1878'}, ['VII'] = {'Baynes', '1878'},
['8'] = {'Baynes', '1878'}, ['VIII'] = {'Baynes', '1878'},
['9'] = {'Baynes', '1879'}, ['IX'] = {'Baynes', '1879'},
['10'] = {'Baynes', '1879'}, ['X'] = {'Baynes', '1879'},
['11'] = {'BaynesSmith', '1880'}, ['XI'] = {'BaynesSmith', '1880'},
['12'] = {'BaynesSmith', '1881'}, ['XII'] = {'BaynesSmith', '1881'},
['13'] = {'BaynesSmith', '1881'}, ['XIII'] = {'BaynesSmith', '1881'},
['14'] = {'BaynesSmith', '1882'}, ['XIV'] = {'BaynesSmith', '1882'},
['15'] = {'BaynesSmith', '1883'}, ['XV'] = {'BaynesSmith', '1883'},
['16'] = {'BaynesSmith', '1883'}, ['XVI'] = {'BaynesSmith', '1883'},
['17'] = {'BaynesSmith', '1884'}, ['XVII'] = {'BaynesSmith', '1884'},
['18'] = {'BaynesSmith', '1885'}, ['XVIII'] = {'BaynesSmith', '1885'},
['19'] = {'BaynesSmith', '1885'}, ['XIX'] = {'BaynesSmith', '1885'},
['20'] = {'BaynesSmith', '1886'}, ['XX'] = {'BaynesSmith', '1886'},
['21'] = {'BaynesSmith', '1886'}, ['XXI'] = {'BaynesSmith', '1886'},
['22'] = {'BaynesSmith', '1887'}, ['XXII'] = {'BaynesSmith', '1887'},
['23'] = {'BaynesSmith', '1888'}, ['XXIII'] = {'BaynesSmith', '1888'},
['24'] = {'BaynesSmith', '1888'}, ['XXIV'] = {'BaynesSmith', '1888'},
['default'] = {'Baynes', '1875–1889'},
},
['Encyclopaedia of Islam, New Edition'] = {
['1'] = {'GibbKramersLévi-ProvençalSchacht', '1960'},
['2'] = {'LewisPellatSchacht', '1965'},
['3'] = {'LewisMénagePellatSchacht', '1971'},
['4'] = {'van_DonzelLewisPellatBosworth', '1978'},
['5'] = {'Bosworthvan_DonzelLewisPellat', '1986'},
['6'] = {'Bosworthvan_DonzelPellat', '1991'},
['7'] = {'Bosworthvan_DonzelHeinrichsPellat', '1993'},
['8'] = {'Bosworthvan_DonzelHeinrichsLecomte', '1995'},
['9'] = {'Bosworthvan_DonzelHeinrichsLecomte', '1997'},
['10'] = {'BearmanBianquisBosworthvan_Donzel', '2000'},
['11'] = {'BearmanBianquisBosworthvan_Donzel', '2002'},
['12'] = {'BearmanBianquisBosworthvan_Donzel', '2004'},
['atlas'] = {'Brice', '1981'},
['abridged'] = {'van_Donzel', '1994'},
['default'] = {'BearmanBianquisBosworthvan_Donzel', '1960–2005'},
},
['New Cambridge Medieval History'] = {
['1'] = {'Fouracre', '2005'},
['2'] = {'McKitterick', '1995'},
['3'] = {'Reuter', '2000'},
['4a'] = {'LuscombeRiley-Smith', '2004'},
['4b'] = {'LuscombeRiley-Smith', '2004'},
['5'] = {'Abulafia', '1999'},
['6'] = {'Jones', '2000'},
['7'] = {'Allmand', '1998'},
['default'] = {'', '1995–2005'},
},
['The History of al-Tabari'] = {
['1'] = {'Rosenthal', '1989'},
['2'] = {'Brinner', '1986'},
['3'] = {'Brinner', '1991'},
['4'] = {'Perlmann', '1987'},
['5'] = {'Bosworth', '1999'},
['6'] = {'WattMcDonald', '1989'},
['7'] = {'McDonald', '1987'},
['8'] = {'Fishbein', '1997'},
['9'] = {'Poonawala', '1990'},
['10'] = {'Donner', '1993'},
['11'] = {'Blankinship', '1993'},
['12'] = {'Friedmann', '1992'},
['13'] = {'Juynboll', '1989'},
['14'] = {'Smith', '1994'},
['15'] = {'Humphreys', '1990'},
['16'] = {'Brockett', '1997'},
['17'] = {'Hawting', '1996'},
['18'] = {'Morony', '1987'},
['19'] = {'Howard', '1990'},
['20'] = {'Hawting', '1989'},
['21'] = {'Fishbein', '1990'},
['22'] = {'Rowson', '1989'},
['23'] = {'Hinds', '1990'},
['24'] = {'Powers', '1989'},
['25'] = {'Blankinship', '1989'},
['26'] = {'Hillenbrand', '1989'},
['27'] = {'Williams', '1985'},
['28'] = {'McAuliffe', '1995'},
['29'] = {'Kennedy', '1990'},
['30'] = {'Bosworth', '1989'},
['31'] = {'Fishbein', '1992'},
['32'] = {'Bosworth', '1987'},
['33'] = {'Bosworth', '1991'},
['34'] = {'Kraemer', '1989'},
['35'] = {'Saliba', '1985'},
['36'] = {'Waines', '1992'},
['37'] = {'Fields', '1987'},
['38'] = {'Rosenthal', '1985'},
['39'] = {'Landau-Tasseron', '1998'},
['40'] = {'Popovkin', '2007'},
['default'] = {'Yarshater', '1985–2007'},
},
}
--[[--------------------------< W R A P P E R _ T E M P L A T E S >--------------------------------------------
A list of wrapper templates and their redirects – spelling and capitalization is important; first character is
always uppercase. Each wrapper template gets its value from a k/v pair in the wrapper_template_defaults table.
article reader queries this table to see if template_name is a wrapper template
]]
local wrapper_templates = { -- keys are names of wrapper templates and their redirects
['Americana'] = wrapper_template_defaults['Americana'], -- canonical name; this template calls Cite Americana
['Catholic Encyclopedia'] = wrapper_template_defaults_vol['Cite Catholic Encyclopedia'],
['1913Catholic'] = wrapper_template_defaults_vol['Cite Catholic Encyclopedia'],
['Catholic'] = wrapper_template_defaults_vol['Cite Catholic Encyclopedia'],
['Catholic encyclopedia'] = wrapper_template_defaults_vol['Cite Catholic Encyclopedia'],
['CatholicEncyclopedia'] = wrapper_template_defaults_vol['Cite Catholic Encyclopedia'],
['CE13'] = wrapper_template_defaults_vol['Cite Catholic Encyclopedia'],
['CE1913'] = wrapper_template_defaults_vol['Cite Catholic Encyclopedia'],
['Cite Americana'] = wrapper_template_defaults['Americana'], -- canonical name
['Cite Catholic Encyclopedia'] = wrapper_template_defaults_vol['Cite Catholic Encyclopedia'],
['CathEncy'] = wrapper_template_defaults_vol['Cite Catholic Encyclopedia'],
['Cite Catholic Encyclopædia'] = wrapper_template_defaults_vol['Cite Catholic Encyclopedia'],
['Cite CE1913'] = wrapper_template_defaults_vol['Cite Catholic Encyclopedia'],
['Cite EB1911'] = wrapper_template_defaults['Cite EB1911'], -- canonical name
['1911EB'] = wrapper_template_defaults['Cite EB1911'], -- redirects
['EB1911 cite'] = wrapper_template_defaults['Cite EB1911'],
['Wikisource1911Enc Citation'] = wrapper_template_defaults['Cite EB1911'],
['Wikisource1911Enc citation'] = wrapper_template_defaults['Cite EB1911'],
['Cite EB9'] = wrapper_template_defaults_vol['Cite EB9'], -- canonical
['Eb9'] = wrapper_template_defaults_vol['Cite EB9'],
['Cite ODNB'] = wrapper_template_defaults['ODNB'], -- canonical
['Cite odnb'] = wrapper_template_defaults['ODNB'],
['DNBweb'] = wrapper_template_defaults['ODNB'],
['OBDNweb'] = wrapper_template_defaults['ODNB'],
['ODNB'] = wrapper_template_defaults['ODNB'],
['ODNBref'] = wrapper_template_defaults['ODNB'],
['ODNBweb'] = wrapper_template_defaults['ODNB'],
['EB1911'] = wrapper_template_defaults['EB1911'], -- canonical name; this template calls Cite EB1911
['1911'] = wrapper_template_defaults['EB1911'], -- redirects
['1911s'] = wrapper_template_defaults['EB1911'],
['Britannica 1911'] = wrapper_template_defaults['EB1911'],
['Encyclopedia Britannica 1911'] = wrapper_template_defaults['EB1911'],
['Encyclopædia Britannica 1911'] = wrapper_template_defaults['EB1911'],
['EB9'] = wrapper_template_defaults_vol['Cite EB9'], -- canonical; this template calls Cite EB9
['Encyclopaedia of Islam, New Edition'] = wrapper_template_defaults_vol['Encyclopaedia of Islam, New Edition'], -- canonical
['EI2'] = wrapper_template_defaults_vol['Encyclopaedia of Islam, New Edition'],
['Encyclopaedia of Islam, THREE'] = wrapper_template_defaults['EI3'], -- canonical
['EI3'] = wrapper_template_defaults['EI3'],
['New Cambridge Medieval History'] = wrapper_template_defaults_vol['New Cambridge Medieval History'], -- canonical
['The History of al-Tabari'] = wrapper_template_defaults_vol['The History of al-Tabari'], -- canonical
['The History of Al-Tabari'] = wrapper_template_defaults_vol['The History of al-Tabari'], -- redirects
['The History of al-Ṭabarī'] = wrapper_template_defaults_vol['The History of al-Tabari'], -- redirects
}
--[[--------------------------< T E M P L A T E _ N A M E S >--------------------------------------------------
This table holds the names of templates and the names of their redirects. Template names must be written exactly
as they are named at their templatespace page. This same also applies to redirects.
The indexes in this table are not critical but should be short and concise.
]]
local template_names = {
['ADB'] = {'Allgemeine Deutsche Biographie', 'Cite ADB'},
['Butt_Stations'] = {'Butt-Stations', 'Butt-stations'},
['Cam_Hist_Iran'] = {'Cambridge History of Iran', 'The Cambridge History of Iran'},
['DNB'] = {'Cite DNB', 'DNB', 'DNB Cite', 'Cite DNBSupp', 'DNBSupp', 'Cite DNB12', 'Cite DNBIE', 'DNB12', 'DNBIE', 'DNBfirst'},
['ME-ref'] = {'ME-ref', 'Me-ref'},
['ODB'] = {'ODB', 'Oxford Dictionary of Byzantium'},
['ODLA'] = {'ODLA', 'Oxford Dictionary of Late Antiquity'},
['NDB'] = {'Cite NDB', 'NDB'},
['Iranica'] = {'Encyclopædia Iranica Online', 'Encyclopædia Iranica', 'Encyclopaedia Iranica', 'Cite Encyclopædia Iranica Online'},
}
--[[--------------------------< S P E C I A L _ P A T T E R N S >----------------------------------------------
Lua patterns. These are scanned sequentially which costs time and processing far and above the time and processing
needed to index into whitelist{}. Do not create a pattern here if a normal whitelist entry or entries can be created.
]]
local special_patterns = {
'CITEREFACAD%u%u%u?%u?%d+%u%u?', -- {{Acad}} ID appears to be 2-4 letters, then 3 numbers, then 1-2 letters
'CITEREFAHD%d+', -- {{Cite AHD}}
'CITEREFHistoric_England%d+', -- {{National Heritage List for England}} & {{PastScape}}
'CITEREFHistoric_Environment_Scotland%u%u%u?%u?%d', -- {{Historic Environment Scotland}} %u can be BTL, GLD, HMPA, LB, SM
'CITEREFQHR%d+', -- {{Cite QHR}}
'CITEREF[%d%a_%pöüäß→]+_at_Bach_Digital', -- {{BDh}}
'CITEREF[BR]GBl_[12]%d%d%d%-?I?I?%/%d+', -- {{Cite Austrian gazette}}
'CITEREFStGBl_[12]%d%d%d%/%d+', -- {{Cite Austrian gazette}}
'CITEREFGBlÖ_[12]%d%d%d%/%d+', -- {{Cite Austrian gazette}}
}
--[[--------------------------< D N B _ S P E C I A L _ P A T T E R N S >--------------------------------------
Lua patterns. Note at special_patterns applies. These for the DNB templates only; these will be tried only when
there is a DNB template in the article.
Pretty much any author name during the period 1885–1901 inclusive, and 1912.
The DNBIE was published in 1903, and Template:DNBIE says that its use is deprecated, but we do not fight that battle here.
]]
local DNB_special_patterns = {
'CITEREF%a[%a%-_\']*188[5-9]', -- 1885–1889
'CITEREF%a[%a%-_\']*189%d', -- 1890–1899
'CITEREF%a[%a%-_\']*190[0-1]', -- 1900–1901
'CITEREF%a[%a%-_\']*1903', -- 1903 IE
'CITEREF%a[%a%-_\']*1912', -- 1912 supplement
}
--[[--------------------------< W H I T E L I S T >------------------------------------------------------------
This is a list of anchor IDs known to be associated with specific wrapper templates. The anchor ID serves as an
index into the table. The assigned value is another table that lists the associated template and any redirects.
Except for year disambiguators, anchor IDs must have the same form as the anchor creator makes; must be the
anchor-encoded form. Remove the year disambiguator.
Template names must be written exactly as they are named at their templatespace page. This same also applies to
redirects. Module:Footnotes reads the template names left to right so most-commonly-used template or redirect name
should appear first. When there are more than one name and when those templates have various anchor IDs the template
namelist should be added to the template_names{} table.
Note that references to Template:EB1911 are listed under "E" in the alphabetical list below to keep them organized.
]]
local whitelist = {
----------< # >----------
['CITEREF2013_Statistical_Yearbook_of_the_Republic_of_Croatia'] = {'Croatia Yearbook 2013'},
----------< A >----------
['CITEREFAGA_1884–1897'] = {'Schubert\'s compositions (references)'},
['CITEREFATOC2009'] = {'ATOCConnectingCommunitiesReportS10'},
['CITEREFAbaevBailey1985'] = template_names['Iranica'],
['CITEREFAbbas1988'] = template_names['Iranica'],
['CITEREFAbbas1989'] = template_names['Iranica'],
['CITEREFAbramowitzStegun1983'] = {'Abramowitz Stegun ref'},
['CITEREFActa_Lipsiensium1723'] = {'Bach\'s compositions (sources)'},
['CITEREFAdamsFranzosa2009'] = {'Adams Franzosa Introduction to Topology Pure and Applied'},
['CITEREFAdaschErnstKeim1978'] = {'Adasch Topological Vector Spaces'},
['CITEREFAffleck1978'] = {'Affleck-On Track'},
['CITEREFAhlgrimm1969'] = {'Bach\'s compositions (sources)'},
['CITEREFAhmadiNegahban2013'] = {'Encyclopaedia Islamica'},
['CITEREFAhrons1927'] = {'Book-Ahrons-British Steam Railway Locomotive'},
['CITEREFAl-Kindi1912'] = {'The Governors and Judges of Egypt'},
['CITEREFAlbert_Schumann1886'] = {'Cite ADB'},
['CITEREFAlden1916'] = {'Shakespeare sonnets bibliography'},
['CITEREFAldrich1969'] = {'Aldrich-LocosGER7'},
['CITEREFAleksidze2018'] = template_names['ODLA'],
['CITEREFAlexiou2010'] = {'Cite flatiron'},
['CITEREFAlgar1983'] = template_names['Iranica'],
['CITEREFAlgar1989'] = template_names['Iranica'],
['CITEREFAlgar1990'] = template_names['Iranica'],
['CITEREFAlgar2003'] = template_names['Iranica'],
['CITEREFAlizadeh1990'] = template_names['Iranica'],
['CITEREFAllamaniPanagiotopoulou1978'] = {'Ιστορία του Ελληνικού Έθνους'},
['CITEREFAllcockDaviesle_FlemingMaskelyne1968'] = {'RCTS-LocosGWR-1'},
['CITEREFAllenBoddyBrownFry1970'] = {'RCTS-LocosLNER-8A'},
['CITEREFAllenBoddyBrownFry1971'] = {'RCTS-LocosLNER-8B'},
['CITEREFAllenBoddyBrownFry1983'] = {'RCTS-LocosLNER-8A'},
['CITEREFAmanat1998'] = template_names['Iranica'],
['CITEREFAmanat1999'] = template_names['Iranica'],
['CITEREFAmbartsumian2014'] = template_names['Iranica'],
['CITEREFAmerican_Railway_Association1922'] = {'1922 Locomotive Cyclopedia'},
['CITEREFAnderson1952'] = {'Naval Wars in the Levant 1559–1853'},
['CITEREFAndo2000'] = template_names['Iranica'],
['CITEREFAngelov2018'] = template_names['ODLA'],
['CITEREFAnwārEIr1985'] = template_names['Iranica'],
['CITEREFArkhangel'skiiPonomarev1984'] = {'Arkhangel\'skii Ponomarev Fundamentals of General Topology Problems and Exercises'},
['CITEREFArrey_von_Dommer1875'] = {'Cite ADB'},
['CITEREFAshraf2006'] = template_names['Iranica'],
['CITEREFAslanianBerberian2009'] = template_names['Iranica'],
['CITEREFAsmus1966'] = template_names['NDB'],
['CITEREFAsmussen1985'] = template_names['Iranica'],
['CITEREFAspreas1929'] = {'Great Military and Naval Encyclopaedia'},
['CITEREFAtkins2007'] = {'Shakespeare sonnets bibliography'},
['CITEREFAube2011'] = template_names['Iranica'],
['CITEREFAudiKondevWangHuang2017'] = {'NUBASE2016'},
['CITEREFAvdoyan2018'] = template_names['ODLA'],
['CITEREFAwdry1990'] = {'Awdry-RailCo', 'Carnarvonshire Railway'},
['CITEREFAzarnoosh2021'] = template_names['Iranica'],
['CITEREFRamelli2018'] = {'Oxford Dictionary of Late Antiquity'},['CITEREFA_History_of_the_Crusades'] = {'Setton-A History of the Crusades'},
----------< B >----------
['CITEREFBabinger1962'] = {'DBI', 'Dizionario Biografico degli Italiani'},
['CITEREFBabinger1978'] = {'Mehmed the Conqueror and His Time'},
['CITEREFBabinger1992'] = {'Mehmed the Conqueror and His Time'},
['CITEREFBachAgricola1754'] = {'Bach\'s compositions (sources)'},
['CITEREFBadura-SkodaBranscombe2008'] = {'Schubert\'s compositions (references)'},
['CITEREFBahramianHirtensteinGholami2013'] = {'Encyclopaedia Islamica'},
['CITEREFBalcer1990'] = template_names['Iranica'],
['CITEREFBaldwin1969'] = {'Setton-A History of the Crusades'},
['CITEREFBaldwin1985'] = {'Setton-A History of the Crusades'},
['CITEREFBaldwinKazhdan1991'] = template_names['ODB'],
['CITEREFBaldwinTalbot1991'] = template_names['ODB'],
['CITEREFBaltzer1916'] = {'Baltzer-Kolonialbahnen'},
['CITEREFBanach1932'] = {'Banach Théorie des Opérations Linéaires'},
['CITEREFBandy2021'] = template_names['Iranica'],
['CITEREFBartusis1991'] = template_names['ODB'],
['CITEREFBaxter1971'] = {'Baxter-BritishLocoCat1'},
['CITEREFBaxter1977'] = {'Baxter-BritishLocoCat1'},
['CITEREFBaxter1978'] = {'Baxter-BritishLocoCat2A'},
['CITEREFBaxter1979'] = {'Baxter-BritishLocoCat2B'},
['CITEREFBaxter1982'] = {'Baxter-BritishLocoCat3A', 'Baxter-BritishLocoCat3B'},
['CITEREFBaxter1984'] = {'Baxter-BritishLocoCat4'},
['CITEREFBaxter1986'] = {'Baxter-BritishLocoCat5A'},
['CITEREFBaxter1988'] = {'Baxter-BritishLocoCat5B'},
['CITEREFBaxter2012'] = {'Baxter-BritishLocoCat6'},
['CITEREFBeattie1986'] = template_names['Iranica'],
['CITEREFBeißwenger1991'] = {'Bach\'s compositions (sources)'},
['CITEREFBek2001'] = {'Cite Grove'},
['CITEREFBelke1996'] = {'Tabula Imperii Byzantini'},
['CITEREFBelkeMersisch1990'] = {'Tabula Imperii Byzantini'},
['CITEREFBelkeRestle1984'] = {'Tabula Imperii Byzantini'},
['CITEREFBellini2008'] = {'DBI', 'Dizionario Biografico degli Italiani'},
['CITEREFBernardini2003'] = template_names['Iranica'],
['CITEREFBernhard_von_Poten1889'] = template_names['ADB'],
['CITEREFBernhard_von_Poten1898'] = template_names['ADB'],
['CITEREFBernjian2008'] = {'Encyclopaedia Islamica'},
['CITEREFBezilla1980'] = {'Bezilla-PRR-Electric-Traction'},
['CITEREFBianquis1998'] = {'The Cambridge History of Egypt', 'Cambridge History of Egypt'},
['CITEREFBickerman1983'] = template_names['Cam_Hist_Iran'],
['CITEREFBierstedt1988'] = {'Bierstedt An Introduction to Locally Convex Inductive Limits'},
['CITEREFBiran2009'] = template_names['Iranica'],
['CITEREFBirken1976'] = {'Die Provinzen des Osmanischen Reiches'},
['CITEREFBivar1983'] = template_names['Cam_Hist_Iran'],
['CITEREFBivar2003'] = template_names['Iranica'],
['CITEREFBlair2002'] = template_names['Iranica'],
['CITEREFBlair2021'] = template_names['Iranica'],
['CITEREFBlake1966'] = {'DisraeliRef'},
['CITEREFBlanken2019'] = {'Bach\'s compositions (sources)'},
['CITEREFBlankinship1994'] = {'The End of the Jihâd State', 'The End of the Jihad State'},
['CITEREFBlautSchulze2008'] = {'Bach\'s compositions (sources)'},
['CITEREFBloom2007'] = {'Cite Routledge Broadway', 'Cite Broadway Routledge', 'Cite Routledge Guide to Broadway', 'Routledge Guide to Broadway'},
['CITEREFBock1978'] = {'Audie-bock-directors'},
['CITEREFBoddyBrownFryHennigan1968'] = {'RCTS-LocosLNER-4'},
['CITEREFBoddyBrownFryHennigan1975'] = {'RCTS-LocosLNER-2B'},
['CITEREFBoddyBrownFryHennigan1977'] = {'RCTS-LocosLNER-9A', 'RCTS-LocosLNER-9B'},
['CITEREFBoddyBrownFryHennigan1979'] = {'RCTS-LocosLNER-3A'},
['CITEREFBoddyBrownHenniganHoole1984'] = {'RCTS-LocosLNER-6C'},
['CITEREFBoddyBrownHenniganNeve1981'] = {'RCTS-LocosLNER-3B'},
['CITEREFBoddyBrownNeveYeadon1983'] = {'RCTS-LocosLNER-6B'},
['CITEREFBoddyFryHenniganHoole1990'] = {'RCTS-LocosLNER-10B'},
['CITEREFBoddyFryHenniganProud1963'] = {'RCTS-LocosLNER-1'},
['CITEREFBoddyNeveTeeYeadon1982'] = {'RCTS-LocosLNER-6A'},
['CITEREFBoddyNeveYeadon1973'] = {'RCTS-LocosLNER-2A'},
['CITEREFBody1989'] = {'Body-Railways-Vol2'},
['CITEREFBon1969'] = {'La Morée franque'},
['CITEREFBonebakker1997'] = template_names['Iranica'],
['CITEREFBonner2010'] = {'New Cambridge History of Islam'},
['CITEREFBonnett2005'] = {'Bonnett Practical Rail Engineering'},
['CITEREFBonporti1712'] = {'Bach\'s compositions (sources)'},
['CITEREFBooth2000'] = {'Shakespeare sonnets bibliography'},
['CITEREFBorsari1964'] = {'DBI', 'Dizionario Biografico degli Italiani'},
['CITEREFBossert1914'] = {'Schaff-Herzog'},
['CITEREFBosworth1968'] = template_names['Cam_Hist_Iran'],
['CITEREFBosworth1975'] = template_names['Cam_Hist_Iran'],
['CITEREFBosworth1983'] = template_names['Iranica'],
['CITEREFBosworth1984'] = template_names['Iranica'],
['CITEREFBosworth1987'] = template_names['Iranica'],
['CITEREFBosworth1988'] = template_names['Iranica'],
['CITEREFBosworth1989'] = template_names['Iranica'],
['CITEREFBosworth1994'] = template_names['Iranica'],
['CITEREFBosworth1995'] = template_names['Iranica'],
['CITEREFBosworth1997'] = template_names['Iranica'],
['CITEREFBosworth1998'] = template_names['Iranica'],
['CITEREFBosworth2000'] = template_names['Iranica'],
['CITEREFBosworth2001'] = template_names['Iranica'],
['CITEREFBosworth2002'] = template_names['Iranica'],
['CITEREFBosworth2003'] = template_names['Iranica'],
['CITEREFBosworth2008'] = template_names['Iranica'],
['CITEREFBosworth2009'] = template_names['Iranica'],
['CITEREFBosworth2010'] = template_names['Iranica'],
['CITEREFBosworth2011'] = template_names['Iranica'],
['CITEREFBosworthCrane1984'] = template_names['Iranica'],
['CITEREFBottoMitchell2002'] = {'Cite ATT Broadway', 'Cite At This Theatre Broadway', 'Cite Broadway At This Theatre', 'Cite Broadway ATT'},
['CITEREFBourbaki1987'] = {'Bourbaki Topological Vector Spaces'},
['CITEREFBourbaki1989'] = {'Bourbaki General Topology Part I Chapters 1-4', 'Bourbaki General Topology Part II Chapters 5-10', 'Bourbaki Algebra I Chapters 1-3 Springer'},
['CITEREFBourbaki1994'] = {'Bourbaki EHM'},
['CITEREFBowen1928'] = {'The Life and Times of Ali ibn Isa'},
['CITEREFBowmanCameronGarnsey2005'] = {'Cambridge Ancient History'},
['CITEREFBoyce1983'] = template_names['Iranica'],
['CITEREFBoyce1986'] = template_names['Iranica'],
['CITEREFBoyce1989'] = template_names['Iranica'],
['CITEREFBoyce2000'] = template_names['Iranica'],
['CITEREFBoyce2009'] = template_names['Iranica'],
['CITEREFBoyd1970'] = {'Boyd-MidWales'},
['CITEREFBoyd1975'] = {'Boyd-FR1'},
['CITEREFBoyd1985'] = {'Boyd-NCaerns2Penrhyn'},
['CITEREFBoyd1986'] = {'Boyd-NCaerns3Dinorwic'},
['CITEREFBoyd1988'] = {'Boyd-SCaerns1'},
['CITEREFBoyd1989'] = {'Boyd-SCaerns2'},
['CITEREFBoyd1990'] = {'Boyd-NCaerns1'},
['CITEREFBradshaw1968'] = {'Bradshaw-1910April'},
['CITEREFBradshaw1985'] = {'Bradshaw-1922July'},
['CITEREFBradshaw2011'] = {'Bradshaw-1895December'},
['CITEREFBradshaw2012'] = {'Bradshaw-1850March'},
['CITEREFBrand1968'] = {'Byzantium Confronts the West'},
['CITEREFBrand1991'] = {'DBI', 'ODB', 'Oxford Dictionary of Byzantium'},
['CITEREFBray2010'] = {'Bray-SDJR'},
['CITEREFBrett2010'] = {'New Cambridge History of Islam'},
['CITEREFBriant1985'] = template_names['Iranica'],
['CITEREFBrosius2000'] = template_names['Iranica'],
['CITEREFBrown2000'] = template_names['Iranica'],
['CITEREFBrown2008'] = {'The Cambridge History of the Byzantine Empire'},
['CITEREFBrunner1975'] = template_names['Cam_Hist_Iran'],
['CITEREFBrunner1983'] = template_names['Cam_Hist_Iran'],
['CITEREFBrunner1984'] = template_names['Iranica'],
['CITEREFBrunner1986'] = template_names['Iranica'],
['CITEREFBryan1886'] = {'Bryan (3rd edition)'},
['CITEREFBryan1889'] = {'Bryan (3rd edition)'},
['CITEREFBuhle1909'] = {'Bach\'s compositions (sources)'},
['CITEREFBulliet1984'] = template_names['Iranica'],
['CITEREFBulookbashiNegahban2008'] = {'Encyclopaedia Islamica'},
['CITEREFBunbury1857'] = {'DGRG'},
['CITEREFBurant1987'] = {'Cite DCB'},
['CITEREFBurch1911'] = {'Burch Electric Traction'},
['CITEREFBurke1866'] = {'O\'Donnell family tree'},
['CITEREFBurn1985'] = template_names['Cam_Hist_Iran'],
['CITEREFBurrowsWallace1999'] = {'Cite gotham'},
['CITEREFBury1911'] = {'The Imperial Administrative System of the Ninth Century'},
['CITEREFBusse1975'] = template_names['Cam_Hist_Iran'],
['CITEREFBusse1982'] = template_names['Iranica'],
['CITEREFButcherNicholson2018'] = template_names['ODLA'],
['CITEREFButt1995'] = template_names['Butt_Stations'],
['CITEREFBöwering1995'] = template_names['Iranica'],
['CITEREFBürgelMottahedeh1988'] = template_names['Iranica'],
----------< C >----------
['CITEREFCIC1983'] = {'CIC1983bib'},
['CITEREFCalifornia1988'] = {'CA-Rail Passenger Development Plan-1988'},
['CITEREFCalmard1988'] = template_names['Iranica'],
['CITEREFCalmard1999'] = template_names['Iranica'],
['CITEREFCaltrans1984'] = {'Countrystudy'},
['CITEREFCameronWard-PerkinsWhitby2000'] = {'Cambridge Ancient History'},
['CITEREFCanepa2018'] = template_names['ODLA'],
['CITEREFCanny2008'] = {'O\'Donnell family tree'},
['CITEREFCappelCutlerKazhdan1991'] = template_names['ODB'],
['CITEREFCarl_von_Prantl1879'] = {'Cite ADB'},
['CITEREFCarlson2010'] = {'Dlmf'},
['CITEREFCaro1974'] = {'Cite Power Broker'},
['CITEREFCarpenter1977'] = template_names['ME-ref'],
['CITEREFCarpenter1981'] = template_names['ME-ref'],
['CITEREFCarra_de_VauxHodgson1965'] = {'EI2'},
['CITEREFCarter2006'] = {'Carter-RailwaysMotivePowerArgentina'},
['CITEREFCasserley1968'] = {'Casserley-joint'},
['CITEREFCasserleyJohnston1966'] = {'Casserley-LocoGrouping3'},
['CITEREFCasserleyJohnston1974'] = {'Casserley-LocoGrouping3', 'Casserley-LocoGrouping2', '0-7110-0554-0'},
['CITEREFCasway1984'] = {'O\'Donnell family tree'},
['CITEREFCavanna_Ciappina2001'] = {'DBI'},
['CITEREFCawley2001'] = {'Medieval Lands by Charles Cawley', 'MLCC'},
['CITEREFCawley2001'] = {'Medieval Lands by Charles Cawley'},
['CITEREFCawley2010'] = {'MLCC'},
['CITEREFCawley2011'] = {'MLCC'},
['CITEREFChaléardChanson-JabeurBéranger2006'] = {'Chaléard-Le cdf en Afrique'},
['CITEREFChambers1728'] = {'Cyclopaedia 1728'},
['CITEREFChasiotis1975'] = {'Ιστορία του Ελληνικού Έθνους'},
['CITEREFChaumont1985'] = template_names['Iranica'],
['CITEREFChaumont1986'] = template_names['Iranica'],
['CITEREFChaumont1987'] = template_names['Iranica'],
['CITEREFChaumont1990'] = template_names['Iranica'],
['CITEREFChaumontSchippmann1988'] = template_names['Iranica'],
['CITEREFCheyneBlack1899'] = {'Biblica', 'Cite Biblica'},
['CITEREFCheyneBlack1899–1903'] = {'Cite Biblica'},
['CITEREFCheyneBlack1901'] = {'Cite Biblica'},
['CITEREFCheyneBlack1902'] = {'Cite Biblica'},
['CITEREFCheyneBlack1903'] = {'Cite Biblica'},
['CITEREFChisholm1922'] = {'EB1922', 'Cite EB1922'},
['CITEREFChittick1997'] = template_names['Iranica'],
['CITEREFChkeidze2001'] = template_names['Iranica'],
['CITEREFChoniates1984'] = {'O City of Byzantium'},
['CITEREFChrista_Jost1999'] = template_names['NDB'],
['CITEREFChung1994'] = {'Country study'},
['CITEREFChurchmanHurst2001'] = {'Churchman & Hurst Railways of New Zealand'},
['CITEREFChurchman_&_Hurst2001'] = {'Churchman & Hurst Railways of New Zealand'},
['CITEREFChurella2013'] = {'Churella-PRR-1'},
['CITEREFClementsMcMahon2008'] = {'ClementsMcMahon-GSR Locomotives'},
['CITEREFClinker1978'] = {'Clinker-Stations'},
['CITEREFClinker1988'] = {'Clinker-Stations'},
['CITEREFCoates1990'] = {'Coates-Reading'},
['CITEREFColbyWilliams1916'] = {'New International Encyclopedia', 'NIE'},
['CITEREFColledgeWarlow2006'] = {'Colledge', 'Cite Colledge2006'},
['CITEREFColledgeWarlow2010'] = {'Cite Colledge2010'},
['CITEREFCollins2016'] = {'Cite Collins 2016'},
['CITEREFConolly1998'] = {'IanAllan-PreGroup-Atlas1998'},
['CITEREFConway1990'] = {'Conway A Course in Functional Analysis'},
['CITEREFCosentino2008'] = {'DBI'},
['CITEREFCoulthard-Clark2002'] = {'Australian Dictionary of Biography'},
['CITEREFCousin1910'] = {'A Short Biographical Dictionary of English Literature', 'Cite SBDEL'},
['CITEREFCox1967'] = {'Cox-Upper Darby'},
['CITEREFCox2011'] = {'Cox-Dixie'},
['CITEREFCrevier1993'] = {'Crevier 1993'},
['CITEREFCrockett2007'] = {'Australian Dictionary of Biography'},
['CITEREFCroke2018'] = template_names['ODLA'],
['CITEREFCrone1980'] = {'Slaves on Horses'},
['CITEREFCronin2011'] = template_names['Iranica'],
['CITEREFCroughtonKidnerYoung1982'] = {'Croughton-PrivateStations'},
['CITEREFCruickshanks1970'] = {'HistoryofParliament'},
['CITEREFCudahy2002'] = {'Cudahy-Hudson'},
['CITEREFCudahy2003'] = {'Cudahy-Subways'},
['CITEREFCurta2006'] = {'Southeastern Europe in the Middle Ages, 500–1250'},
----------< D >----------
['CITEREFDBI'] = {'DBI', 'Dizionario Biografico degli Italiani'},
['CITEREFDZS2015'] = {'Croatia Yearbook 2015'},
['CITEREFDadelsen1957'] = {'Bach\'s compositions (sources)'},
['CITEREFDaftary1990'] = {'Daftary-The Ismailis'},
['CITEREFDaftary2003'] = template_names['Iranica'],
['CITEREFDaftary2007'] = {'Daftary-The Ismailis'},
['CITEREFDaftary2015'] = template_names['Iranica'],
['CITEREFDaiber1988'] = template_names['Iranica'],
['CITEREFDandamayevShahbaziLecoq1986'] = template_names['Iranica'],
['CITEREFDaniel2000'] = template_names['Iranica'],
['CITEREFDaniel2010'] = {'New Cambridge History of Islam'},
['CITEREFDanielsDench1963'] = {'Daniels-NoMore'},
['CITEREFDanielsDench1973'] = {'Daniels-NoMore'},
['CITEREFDanner1975'] = template_names['Cam_Hist_Iran'],
['CITEREFDarleyCanepa2018'] = {'Oxford Dictionary of Late Antiquity'},
['CITEREFDaryaee2009'] = template_names['Iranica'],
['CITEREFDaryaee2018'] = template_names['ODLA'],
['CITEREFDaryaeeCanepa2018'] = template_names['ODLA'],
['CITEREFDavid1961'] = {'Bach\'s compositions (sources)'},
['CITEREFDavidson2010'] = {'HistoryofParliament'},
['CITEREFDavidsonThrush2010'] = {'HistoryofParliament'},
['CITEREFDavies1996'] = {'Davies-PLMLocoList'},
['CITEREFDavies1997'] = {'Davies-NordLocoList'},
['CITEREFDavies2001'] = {'Davies-EstLocoList3', 'Davies-ÉtatLocoList'},
['CITEREFDavies2003'] = {'Davies-SNCFLocoList'},
['CITEREFDaviesFirthLuckingThomas1966'] = {'RCTS-LocosGWR-10'},
['CITEREFDavud2018'] = {'Encyclopaedia Islamica'},
['CITEREFDavudNazerian2008'] = {'Encyclopaedia Islamica'},
['CITEREFDe_Negri1997'] = {'DBI'},
['CITEREFDemircan2010'] = {'TDV Encyclopedia of Islam'},
['CITEREFDeutsch1951'] = {'Schubert\'s compositions (references)'},
['CITEREFDeutsch1978'] = {'Schubert\'s compositions (references)'},
['CITEREFDeutsche_Autos,_Band_2,2001'] = {'Deutsche Autos-2'},
['CITEREFDeutsche_Autos,_Band_3,2001'] = {'Deutsche Autos-3'},
['CITEREFDeutsche_Autos,_Band_4,2001'] = {'Deutsche Autos-4'},
['CITEREFDeutsche_Autos,_Band_5,2001'] = {'Deutsche Autos-5'},
['CITEREFDeutsche_Autos,_Band_6,2001'] = {'Deutsche Autos-6'},
['CITEREFDewick2005'] = {'Dewick-Atlas'},
['CITEREFDiamonstein-Spielvogel2011'] = {'Cite landmarks'},
['CITEREFDickens2018'] = template_names['ODLA'],
['CITEREFDirksen1998'] = {'Bach\'s compositions (sources)'},
['CITEREFDirksen2010'] = {'Bach\'s compositions (sources)'},
['CITEREFDirksen2016'] = {'Bach\'s compositions (sources)'},
['CITEREFDixmier1984'] = {'Dixmier General Topology'},
['CITEREFDoerfer1989'] = template_names['Iranica'],
['CITEREFDoganis1930'] = {'Great Military and Naval Encyclopaedia'},
['CITEREFDoleckiMynard2016'] = {'Dolecki Mynard Convergence Foundations Of Topology'},
['CITEREFDolkart1998'] = {'Cite morningside'},
['CITEREFDonner1995'] = template_names['Iranica'],
['CITEREFDonohue2003'] = {'The Buwayhid Dynasty in Iraq'},
['CITEREFDorin1972'] = {'Dorin-North Western'},
['CITEREFDow1962'] = {'Dow-GC2'},
['CITEREFDow1965'] = {'Dow-GC3'},
['CITEREFDow1985'] = {'Dow-GC1'},
['CITEREFDowney2007'] = {'Downey-Chicago'},
['CITEREFDrechsler2005'] = template_names['Iranica'],
['CITEREFDrummond1964'] = {'HistoryofParliament'},
['CITEREFDrury1985'] = {'Drury Historical Guide 1985'},
['CITEREFDrury1993'] = {'Drury-North American Steam'},
['CITEREFDuchesne-Guillemin1994'] = template_names['Iranica'],
['CITEREFDugundji1966'] = {'Dugundji Topology'},
['CITEREFDuke1995'] = {'Duke-Santa Fe-1'},
['CITEREFDukeKeilty1990'] = {'Duke-RDC'},
['CITEREFDumbarton_Oaks_Hagiography_Database'] = {'Dumbarton Oaks Hagiography Database'},
['CITEREFDunbar1969'] = {'Dunbar-Railroads'},
['CITEREFDuncan-Jones2010'] = {'Shakespeare sonnets bibliography'},
['CITEREFDunlop1895'] = {'O\'Donnell family tree'},
['CITEREFDunlop1985'] = template_names['Iranica'],
['CITEREFDunn2013'] = {'Dunn-Comeng-5'},
['CITEREFDurand-Guédy2008'] = template_names['Iranica'],
['CITEREFDurand-Guédy2010'] = template_names['Iranica'],
['CITEREFDurand-Guédy2013'] = {'Encyclopaedia Islamica'},
['CITEREFDurham1998'] = {'California\'s Geographic Names'},
['CITEREFDurrant1972'] = {'Durrant-Steam Locos Eastern Europe'},
['CITEREFDurrant1981'] = {'Durrant-Garratt-Rev'},
['CITEREFDurrantLewisJorgensen1981'] = {'Durrant-SteamAfrica'},
['CITEREFDömlingKohlhase1971'] = {'Bach\'s compositions (sources)'},
['CITEREFDürr1952'] = {'Bach\'s compositions (sources)'},
['CITEREFDürr1954'] = {'Bach\'s compositions (sources)'},
['CITEREFDürr1987'] = {'Bach\'s compositions (sources)'},
['CITEREFDürrJones2006'] = {'Bach\'s compositions (sources)'},
['CITEREFDürrKobayashi1998'] = {'Bach\'s compositions (sources)'},
['CITEREFde_Blois2000'] = template_names['Iranica'],
['CITEREFde_Planhol1987'] = template_names['Iranica'],
['CITEREFde_Planhol1988'] = template_names['Iranica'],
----------< E >----------
['CITEREFEIr.1994'] = template_names['Iranica'],
['CITEREFEarle2018'] = {'Gymnosperm Database'},
['CITEREFEbata2019'] = {'BDh'},
['CITEREFEbata2020'] = {'BDh'},
['CITEREFEbrahimKhodaverdian2018'] = {'Encyclopaedia Islamica'},
['CITEREFEdwards1995'] = {'Edwards Functional Analysis Theory and Applications'},
['CITEREFEichberg1976'] = {'Bach\'s compositions (sources)'},
['CITEREFEilers1983'] = template_names ['Cam_Hist_Iran'],
['CITEREFEkbal1991'] = template_names['Iranica'],
['CITEREFEl-Hibri2010'] = {'New Cambridge History of Islam'},
['CITEREFEldredgeHorenstein2014'] = {'Cite concrete'},
['CITEREFElsholz1982'] = {'Schubert\'s compositions (references)'},
['CITEREFElwell-Sutton1984'] = template_names['Iranica'],
['CITEREFEppstein1966'] = {'Bach\'s compositions (sources)'},
['CITEREFEppstein1982'] = {'Bach\'s compositions (sources)'},
['CITEREFEquasis'] = {'Csr', 'Cite ship register'},
['CITEREFEuDaly2009'] = {'Complete Book of North American Railroading'},
['CITEREFEuDalySchaferJessupBoyd2009'] = {'Complete Book of North American Railroading'},
----------< F >----------
['CITEREFFacella2021'] = template_names['Iranica'],
['CITEREFFang1943'] = {'Cite ECCP'},
['CITEREFFarinella2001'] = {'DBI'},
['CITEREFFatehi-NezhadAzarnooshNegahban2008'] = {'Encyclopaedia Islamica'},
['CITEREFFatehi-nezhadRahimi2008'] = {'Encyclopaedia Islamica'},
['CITEREFFeder1958'] = {'Bach\'s compositions (sources)'},
['CITEREFFederal_Writers'_Project1939'] = {'Cite fednyc'},
['CITEREFFelixMadelung1995'] = template_names['Iranica'],
['CITEREFFernandez1983'] = {'Fernandez1983'},
['CITEREFFesharaki2015'] = {'Encyclopaedia Islamica'},
['CITEREFFiaccadori1991'] = template_names['ODB'],
['CITEREFFikratUmar2008'] = template_names['Iranica'],
['CITEREFFine1991'] = {'The Early Medieval Balkans'},
['CITEREFFine1994'] = {'The Late Medieval Balkans'},
['CITEREFFletcher,_Great_Tank_Scandal'] = {'Book-Fletcher-Great Tank Scandal'},
['CITEREFFletcher,_Universal_Tank'] = {'Book-Fletcher-Universal Tank'},
['CITEREFFloor1992'] = template_names['Iranica'],
['CITEREFFloor2005'] = template_names['Iranica'],
['CITEREFFlora_of_North_America'] = {'EFloras'},
['CITEREFFlora_of_North_America2009'] = {'EFloras'},
['CITEREFFluckMarshallWilson1996'] = {'FluMarWil-LocRailCR'},
['CITEREFFonstad1991'] = template_names['ME-ref'],
['CITEREFForkelTerry1920'] = {'Bach\'s compositions (sources)'},
['CITEREFFornaçon,_Siegfried1957'] = template_names['NDB'],
['CITEREFForrestal1999'] = {'Forrestal-Wineries'},
['CITEREFForster1990'] = {'Cite DCB'},
['CITEREFFoss1991'] = template_names['ODB'],
['CITEREFFoster1971'] = template_names['ME-ref'],
['CITEREFFoster1996'] = {'Foster-Field Guide'},
['CITEREFFrailey2010'] = {'Frailey-Twilight'},
['CITEREFFranke1994'] = {'Cite Cambridge History of China'},
['CITEREFFranz_Schnorr_von_Carolsfeld1883'] = {'Cite ADB'},
['CITEREFFriedrich_Wilhelm_Bautz1975'] = {'BBKL'},
['CITEREFFriedrich_Wilhelm_Bautz1990'] = {'BBKL'},
['CITEREFFry1964'] = {'RCTS-LocosLNER-7'},
['CITEREFFry1966'] = {'RCTS-LocosLNER-5'},
['CITEREFFrye1975'] = template_names['Cam_Hist_Iran'],
['CITEREFFrye1983'] = template_names['Cam_Hist_Iran'],
['CITEREFFrye2004'] = template_names['Iranica'],
['CITEREFFubini2012'] = {'DBI', 'Dizionario Biografico degli Italiani'},
['CITEREFFudenbergTirole1991'] = {'Cite Fudenberg Tirole 1991'},
['CITEREFFultonHarris1991'] = {'Fulton-Harris'},
----------< G >----------
['CITEREFGarakaniBrown2013'] = {'Encyclopaedia Islamica'},
['CITEREFGardner2005'] = {'MSW3 Microbiotheria'},
['CITEREFGardoni2015'] = {'DBI', 'Dizionario Biografico degli Italiani'},
['CITEREFGareyJohnson1979'] = {'Garey-Johnson'},
['CITEREFGarsoian2000'] = template_names['Iranica'],
['CITEREFGarsoian2004'] = template_names['Iranica'],
['CITEREFGarsoian2005'] = template_names['Iranica'],
['CITEREFGarth2003'] = template_names['ME-ref'],
['CITEREFGazette34205'] = {'London Gazette'},
['CITEREFGazette34339'] = {'London Gazette'},
['CITEREFGazette34390'] = {'London Gazette'},
['CITEREFGazette34427'] = {'London Gazette'},
['CITEREFGazette34558'] = {'London Gazette'},
['CITEREFGazette34870'] = {'London Gazette'},
['CITEREFGazette34978'] = {'London Gazette'},
['CITEREFGazette34989'] = {'London Gazette'},
['CITEREFGazette35037'] = {'London Gazette'},
['CITEREFGazette35107'] = {'London Gazette'},
['CITEREFGazette35134'] = {'London Gazette'},
['CITEREFGazette35284'] = {'London Gazette'},
['CITEREFGazette37560'] = {'London Gazette'},
['CITEREFGazette37590'] = {'London Gazette'},
['CITEREFGazette37598'] = {'London Gazette'},
['CITEREFGazette37610'] = {'London Gazette'},
['CITEREFGazette38020'] = {'London Gazette'},
['CITEREFGazette38611'] = {'London Gazette'},
['CITEREFGeanakoplos1959'] = {'Emperor Michael Palaeologus and the West'},
['CITEREFGeorg_von_Dadelsen1953'] = template_names['NDB'],
['CITEREFGhanoonparvar1989'] = template_names['Iranica'],
['CITEREFGhereghlou2009'] = template_names['Iranica'],
['CITEREFGhereghlou2016'] = template_names['Iranica'],
['CITEREFGhulamiyan2015'] = template_names['Iranica'],
['CITEREFGhulamiyan2015'] = {'Encyclopaedia Islamica'},
['CITEREFGiannasi1975'] = {'DBI', 'Dizionario Biografico degli Italiani'},
['CITEREFGibb1923'] = {'The Arab Conquests in Central Asia'},
['CITEREFGignoux1983'] = template_names['Iranica'],
['CITEREFGignoux1994'] = template_names['Iranica'],
['CITEREFGil1997'] = {'A History of Palestine, 634-1099', 'A History of Palestine, 634–1099'},
['CITEREFGillham2001'] = {'Gillham-Waterloo-City'},
['CITEREFGilliland1969'] = {'Gilliland'},
['CITEREFGilliland1994'] = {'Pop Chronicles 40s'},
['CITEREFGilliverMarshallWeiner2006'] = template_names['ME-ref'],
['CITEREFGilmanPeckColby1905'] = {'Cite NIE', 'New International Encyclopedia', 'NIE'},
['CITEREFGilmanPeckColby1916'] = {'New International Encyclopedia', 'NIE'},
['CITEREFGiunashvili2016'] = template_names['Iranica'],
['CITEREFGleaves1921'] = {'Gleaves'},
['CITEREFGlischinski1997'] = {'Glischinski-Santa Fe'},
['CITEREFGlöckner1983'] = {'Bach\'s compositions (sources)'},
['CITEREFGoldberg1981'] = {'Goldberg-Amtrak'},
['CITEREFGordon2001'] = {'Gordon-The Breaking of a Thousand Swords'},
['CITEREFGraham1974'] = {'Cite DCB'},
['CITEREFGrant1994'] = {'Grant-Death'},
['CITEREFGrant2010'] = {'Grant-Twilight'},
['CITEREFGrant2017'] = {'Grant-RailCo'},
['CITEREFGrassi2018'] = template_names['Iranica'],
['CITEREFGray1986'] = template_names['Cam_Hist_Iran'],
['CITEREFGreenlaw2007'] = {'Greenlaw-Via Rail'},
['CITEREFGregory1991'] = template_names['ODB'],
['CITEREFGregoryŠevčenko1991'] = template_names['ODB'],
['CITEREFGrete_Schemann1957'] = template_names['NDB'],
['CITEREFGrey2002'] = {'Australian Dictionary of Biography'},
['CITEREFGrierson1903'] = {'Cite LSI', 'LSI', 'Linguistic Survey of India'},
['CITEREFGrierson1908'] = {'Cite LSI', 'LSI', 'Linguistic Survey of India'},
['CITEREFGrierson1919'] = {'Cite LSI', 'LSI', 'Linguistic Survey of India'},
['CITEREFGrierson1967'] = {'Cite LSI', 'LSI', 'Linguistic Survey of India'},
['CITEREFGriffith1991'] = template_names['ODB'],
['CITEREFGriffithsSmith1999'] = {'Griffiths-Sheds1'},
['CITEREFGriffithsSmith2000'] = {'Griffiths-Sheds2'},
['CITEREFGrothendieck1955'] = {'Grothendieck Produits Tensoriels Topologiques et Espaces Nucléaires'},
['CITEREFGrothendieck1973'] = {'Grothendieck Topological Vector Spaces'},
['CITEREFGrothendieckDieudonné1960'] = {'EGA'},
['CITEREFGrothendieckDieudonné1961'] = {'EGA'},
['CITEREFGrothendieckDieudonné1963'] = {'EGA'},
['CITEREFGrothendieckDieudonné1964'] = {'EGA'},
['CITEREFGrothendieckDieudonné1965'] = {'EGA'},
['CITEREFGrothendieckDieudonné1966'] = {'EGA'},
['CITEREFGrothendieckDieudonné1967'] = {'EGA'},
['CITEREFGrothendieckDieudonné1971'] = {'EGA'},
['CITEREFGroves2005'] = {'MSW3 Primates', 'MSW3 Groves'},
['CITEREFGrubb2005'] = {'MSW3 Artiodactyla'},
['CITEREFGuilland1967'] = {'Recherches sur les institutions byzantines'},
['CITEREFGulino2005'] = {'DBI', 'Dizionario Biografico degli Italiani'},
['CITEREFGunzburg1984'] = {'Gunzburg-History WAGR Steam'},
['CITEREFGurneyNabavi1993'] = template_names['Iranica'],
['CITEREFGutas1987'] = template_names['Iranica'],
['CITEREFGvakharia2001'] = template_names['Iranica'],
['CITEREFGüner1997'] = {'TDV Encyclopedia of Islam'},
----------< H >----------
['CITEREFHaarer2018'] = template_names['ODLA'],
['CITEREFHabibi2021'] = template_names['Iranica'],
['CITEREFHadidi2000'] = template_names['Iranica'],
['CITEREFHaji2008'] = template_names['Iranica'],
['CITEREFHaldon1999'] = {'Warfare, State and Society in the Byzantine World, 565–1204'},
['CITEREFHalliday1985'] = {'Halliday-AustWineCompend'},
['CITEREFHalliday2008'] = {'Halliday-JHWAtlasAust2008'},
['CITEREFHalliday2009'] = {'Halliday-AustWineEncyc'},
['CITEREFHalm1998'] = template_names['Iranica'],
['CITEREFHalpenny1990'] = {'Canadabio'},
['CITEREFHambly1990'] = template_names['Cam_Hist_Iran'],
['CITEREFHambly1991'] = template_names['Cam_Hist_Iran'],
['CITEREFHammondAnderson1993'] = template_names['ME-ref'],
['CITEREFHammondScull1995'] = template_names['ME-ref'],
['CITEREFHammondScull2005'] = template_names['ME-ref'],
['CITEREFHammondScull2006a'] = template_names['ME-ref'],
['CITEREFHammondScull2006b'] = template_names['ME-ref'],
['CITEREFHanaway1988'] = template_names['Iranica'],
['CITEREFHanaway1989'] = template_names['Iranica'],
['CITEREFHanawayLewisohn2004'] = template_names['Iranica'],
['CITEREFHans_Heinrich_Borcherdt1955'] = template_names['NDB'],
['CITEREFHans_Knudsen1972'] = template_names['NDB'],
['CITEREFHansen1988'] = {'Book-Hansen-US Nuclear Weapons'},
['CITEREFHansman1991'] = template_names['Iranica'],
['CITEREFHartshorne1977'] = {'Hartshorne AG'},
['CITEREFHassanpour1989'] = template_names['Iranica'],
['CITEREFHassanpour1995'] = template_names['Iranica'],
['CITEREFHasumi2003'] = {'Hasumi-shiguehiko-ozu-2003'},
['CITEREFHaswell-Smith2004'] = {'Haswell-Smith'},
['CITEREFHaugic1908'] = {'Schaff-Herzog'},
['CITEREFHawting1987'] = {'The First Dynasty of Islam'},
['CITEREFHawting2000'] = {'The First Dynasty of Islam'},
['CITEREFHaynes2011'] = {'RubberBible92nd'},
['CITEREFHeinichen1728'] = {'Bach\'s compositions (sources)'},
['CITEREFHeinrich_Welti1890'] = {'Cite ADB'},
['CITEREFHelgen2005'] = {'MSW3 Scandentia'},
['CITEREFHellmann1965'] = {'Bach\'s compositions (sources)'},
['CITEREFHenrici1725'] = {'Bach\'s compositions (sources)'},
['CITEREFHenryOrsmond1928'] = {'Raiatea family tree'},
['CITEREFHermann_Palm1876'] = {'Cite ADB'},
['CITEREFHerr2000'] = {'Herr-LN'},
['CITEREFHeschel2007'] = {'Encyclopaedia Judaica', 'Cite EJ', 'Cite Encyclopaedia Judaica'},
['CITEREFHewsen1988'] = template_names['Iranica'],
['CITEREFHidyHidyScottHofsummer2004'] = {'Hidy-Great Northern'},
['CITEREFHildHellenkemper1990'] = {'Tabula Imperii Byzantini'},
['CITEREFHildHellenkemper1994'] = {'Tabula Imperii Byzantini'},
['CITEREFHildRestle1981'] = {'Tabula Imperii Byzantini'},
['CITEREFHillenbrand1986'] = template_names['Iranica'],
['CITEREFHills,_Power_from_Steam'] = {'Book-Hills-Power from Steam'},
['CITEREFHills1989'] = {'Book-Hills-Power from Steam'},
['CITEREFHilmarJestremski2004'] = {'Schubert\'s compositions (references)'},
['CITEREFHilton1980'] = {'Hilton-Amtrak'},
['CITEREFHilton1990'] = {'Hilton Narrow Gauge'},
['CITEREFHiltonDue1960'] = {'Hilton-Interurban'},
['CITEREFHinton1986'] = {'HistoryofParliament'},
['CITEREFHirsch1906'] = {'Cite JE1906'},
['CITEREFHistoric_Environment_Scotland'] = {'Canmore'},
['CITEREFHistoric_Environment_Scotland1972'] = {'Historic Environment Scotland'},
['CITEREFHistoric_Environment_Scotland1976'] = {'Historic Environment Scotland'},
['CITEREFHistoric_Environment_Scotland2020'] = {'Historic Environment Scotland'},
['CITEREFHistoric_Environment_Scotland:_Rusco_Tower2020'] = {'Historic Environment Scotland'},
['CITEREFHistoric_Environment_ScotlandLB33744'] = {'Historic Environment Scotland'},
['CITEREFHistoric_Environment_ScotlandLB50114'] = {'Historic Environment Scotland'},
['CITEREFHob.'] = {'Schubert\'s compositions (references)'},
['CITEREFHoffmanSmith2005'] = {'MSW3 Lagomorpha'},
['CITEREFHoffmann1738'] = {'Bach\'s compositions (sources)'},
['CITEREFHofmann1983'] = {'Bach\'s compositions (sources)'},
['CITEREFHofmann1987'] = {'Bach\'s compositions (sources)'},
['CITEREFHofmann1999'] = {'Bach\'s compositions (sources)'},
['CITEREFHolland1972'] = {'Holland-Vol 2'},
['CITEREFHolland1988'] = {'Cite DCB'},
['CITEREFHolland2001'] = {'Holland-Classic'},
['CITEREFHollingsworth1980'] = {'Hollingsworth-Atlas-Rigby'},
['CITEREFHollingsworth1991'] = template_names['ODB'],
['CITEREFHollingsworthCutler1991'] = template_names['ODB'],
['CITEREFHolmgren2003'] = {'EFloras'},
['CITEREFHoltBiddle1986'] = {'Holt-NorthWest'},
['CITEREFHolton1989'] = {'Holton-Reading-1'},
['CITEREFHonigmann1935'] = {'Byzance et les Arabes'},
['CITEREFHopley1983'] = {'Australian Dictionary of Biography'},
['CITEREFHort1911'] = {'DCBL'},
['CITEREFHorváth1966'] = {'Horváth Topological Vector Spaces and Distributions Volume 1 1966'},
['CITEREFHosseini2017'] = template_names['Iranica'],
['CITEREFHounshell1984'] = {'Hounshell1984'},
['CITEREFHudson1997'] = {'Country study'},
['CITEREFHughes1990'] = {'Hughes-IndianLocos1'},
['CITEREFHughes1992'] = {'Hughes-IndianLocos2'},
['CITEREFHughes1994'] = {'Hughes-IndianLocos3'},
['CITEREFHughes1996'] = {'Hughes-IndianLocos4'},
['CITEREFHummel1943'] = {'Cite ECCP'},
['CITEREFHumphreys2018'] = template_names['ODLA'],
['CITEREFHunter-Crawley2018'] = template_names['ODLA'],
['CITEREFHunter2008'] = {'Country study'},
['CITEREFHutter2009'] = template_names['Iranica'],
['CITEREFHutterer2005'] = {'MSW3 Soricomorpha'},
['CITEREFHütter2012'] = {'Hütter-50bis53'},
['CITEREFHütter2015'] = {'Hütter-54bis59'},
['CITEREFHütter2021'] = {'Hütter-60bis91'},
----------< I >----------
['CITEREFIbn_Khallikan1843'] = {'Ibn Khallikan\'s Biographical Dictionary'},
['CITEREFImber2002'] = {'Imber-The Ottoman Empire, 1300–1650'},
['CITEREFInalcik1989'] = {'Setton-A History of the Crusades'},
['CITEREFIranica:_Bahrām'] = template_names['Iranica'],
['CITEREFIrvine2006'] = template_names['Iranica'],
['CITEREFIshino1998'] = {'Teishajo'},
['CITEREFIshkevariNejad2008'] = {'Encyclopaedia Islamica'},
['CITEREFIvey1919'] = {'Ivey-Marquette'},
----------< J >----------
['CITEREFJackson1908'] = {'Schaff-Herzog'},
['CITEREFJackson1988'] = template_names['Iranica'],
['CITEREFJackson1989'] = template_names['Iranica'],
['CITEREFJackson1995'] = {'Cite enc-nyc'},
['CITEREFJackson2010'] = {'Cite enc-nyc2'},
['CITEREFJacksonMelville2001'] = template_names['Iranica'],
['CITEREFJacobs1904'] = {'Cite Jewish Encyclopedia'},
['CITEREFJarchow1981'] = {'Jarchow Locally Convex Spaces'},
['CITEREFJavadiBurrill1988'] = template_names['Iranica'],
['CITEREFJohn_O'Donovan1856'] = {'Cite AFM'},
['CITEREFJohnstonWelshSchafer2001'] = {'Johnston-Streamliner'},
['CITEREFJones2011'] = {'Cite EPD'},
['CITEREFJordan2002'] = {'Jordan-WineWABest'},
['CITEREFJoshi1983'] = {'Joshi Introduction to General Topology'},
['CITEREFJoslen2003'] = {'Joslen-OOB'},
['CITEREFJowett1867'] = {'DGRBM', 'Cite DGRBM'},
['CITEREFJowett1989'] = {'Jowett-Atlas', 'Carnarvonshire Railway'},
['CITEREFJowett2000'] = {'Jowett-Nationalised'},
['CITEREFJullien2018'] = template_names['ODLA'],
['CITEREFJupp1986'] = {'HistoryofParliament'},
----------< K >----------
['CITEREFK.'] = {'Schubert\'s compositions (references)'},
['CITEREFKadinsky2016'] = {'Cite Hidden Waters NYC'},
['CITEREFKaegi1991'] = template_names['ODB'],
['CITEREFKamaly2006'] = template_names['Iranica'],
['CITEREFKamp1981'] = {'DBI', 'Dizionario Biografico degli Italiani'},
['CITEREFKang2008'] = {'Country study'},
['CITEREFKaramatiMelvin-Koushki2021'] = template_names['Iranica'],
['CITEREFKaramatiMelvin-Koushki2021'] = {'Encyclopaedia Islamica'},
['CITEREFKarimi-Hakkak1997'] = template_names['Iranica'],
['CITEREFKarimiMaghsoodi2013'] = {'Encyclopaedia Islamica'},
['CITEREFKarl_Frohnmeyer1953'] = template_names['NDB'],
['CITEREFKarnow1989'] = {'Cite-Karnow'},
['CITEREFKasheff2001'] = template_names['Iranica'],
['CITEREFKayvaniGholami2008'] = {'Encyclopaedia Islamica'},
['CITEREFKazhdan1991'] = template_names['ODB'],
['CITEREFKazhdanCutler1991'] = template_names['ODB'],
['CITEREFKazhdanJeffreys1991'] = template_names['ODB'],
['CITEREFKazhdanŠevčenko1991'] = template_names['ODB'],
['CITEREFKeall1987'] = template_names['Iranica'],
['CITEREFKeefe2006'] = {'Schubert\'s compositions (references)'},
['CITEREFKeller1937'] = {'Bach\'s compositions (sources)'},
['CITEREFKelly1988'] = {'Cite GEIL'},
['CITEREFKellyBurrage1920'] = {'Cite AMB1920'},
['CITEREFKennedy1998'] = {'The Cambridge History of Egypt', 'Cite Kennedy 1998', 'Cambridge History of Egypt'},
['CITEREFKennedy2001'] = {'Kennedy-The Armies of the Caliphs'},
['CITEREFKennedy2004'] = {'The Prophet and the Age of the Caliphates'},
['CITEREFKennedy2007'] = {'Kennedy-The Great Arab Conquests'},
['CITEREFKennedy2016'] = {'The Prophet and the Age of the Caliphates'},
['CITEREFKenyon2011'] = {'Bach\'s compositions (sources)'},
['CITEREFKerrigan1995'] = {'Shakespeare sonnets bibliography'},
['CITEREFKettenhofen1995'] = template_names['Iranica'],
['CITEREFKettenhofen2001'] = template_names['Iranica'],
['CITEREFKettenhofenBournoutianHewsen1998'] = template_names['Iranica'],
['CITEREFKhaleelulla1982'] = {'Khaleelulla Counterexamples in Topological Vector Spaces'},
['CITEREFKhaleghi-Motlagh1999'] = template_names['Iranica'],
['CITEREFKhaleghi-Motlagh2001'] = template_names['Iranica'],
['CITEREFKhan2012'] = {'Cite Banglapedia'},
['CITEREFKhatibiNegahban2013'] = {'Encyclopaedia Islamica'},
['CITEREFKim1994'] = {'Country study'},
['CITEREFKirnberger1774'] = {'Bach\'s compositions (sources)'},
['CITEREFKirnberger1780'] = {'Bach\'s compositions (sources)'},
['CITEREFKlein2006'] = {'Klein-UP-2'},
['CITEREFKlíma1988'] = template_names['Iranica'],
['CITEREFKobayashi1978'] = {'Bach\'s compositions (sources)'},
['CITEREFKoderHild1976'] = {'Tabula Imperii Byzantini'},
['CITEREFKoderSoustalKoder1998'] = {'Tabula Imperii Byzantini'},
['CITEREFKoeppel2015'] = {'Cite citygrid'},
['CITEREFKofos1977'] = {'Ιστορία του Ελληνικού Έθνους'},
['CITEREFKohler1902'] = {'Cite Jewish Encyclopedia'},
['CITEREFKolde1914'] = {'Schaff-Herzog'},
['CITEREFKoliopoulos1978'] = {'Ιστορία του Ελληνικού Έθνους'},
['CITEREFKolmogorovFomin1957'] = {'Kolmogorov Fomin Elements of the Theory of Functions and Functional Analysis'},
['CITEREFKonrad_Ameln1985'] = template_names['NDB'],
['CITEREFKoska2011'] = {'Bach\'s compositions (sources)'},
['CITEREFKratville1962'] = {'Kratville-SSL'},
['CITEREFKretzschmar1910'] = {'Bach\'s compositions (sources)'},
['CITEREFKube2009'] = {'Schubert\'s compositions (references)'},
['CITEREFKurz1983'] = template_names['Cam_Hist_Iran'],
['CITEREFKuznik2008'] = {'Bach\'s compositions (sources)'},
['CITEREFKöthe1969'] = {'Köthe Topological Vector Spaces I'},
['CITEREFKöthe1979'] = {'Köthe Topological Vector Spaces II'},
['CITEREFKöthe1983'] = {'Köthe Topological Vector Spaces I'},
['CITEREFKülzer2008'] = {'Tabula Imperii Byzantini'},
['CITEREFKüçükaşcı2001'] = {'TDV Encyclopedia of Islam'},
----------< L >----------
['CITEREFLa_Porta2018'] = template_names['ODLA'],
['CITEREFLacourcière1974'] = {'Cite DCB'},
['CITEREFLadefogedMaddieson1996'] = {'SOWL'},
['CITEREFLandau-Tasseron2010'] = {'New Cambridge History of Islam'},
['CITEREFLandauCondit1996'] = {'Cite nysky'},
['CITEREFLandmann1907'] = {'Bach\'s compositions (sources)'},
['CITEREFLang1983'] = template_names['Cam_Hist_Iran'],
['CITEREFLangaroodiCooper2008'] = {'Encyclopaedia Islamica'},
['CITEREFLangaroodiCooper2015'] = template_names['Iranica'],
['CITEREFLangaroodiCooper2015'] = {'Encyclopaedia Islamica'},
['CITEREFLangaroodiNegahban2008'] = {'Encyclopaedia Islamica'},
['CITEREFLangaroodiNegahban2015'] = template_names['Iranica'],
['CITEREFLangaroodiNegahban2015'] = {'Encyclopaedia Islamica'},
['CITEREFLangaroudi2001'] = template_names['Iranica'],
['CITEREFLatham1982–2021'] = template_names['Iranica'],
['CITEREFLazard1975'] = template_names['Cam_Hist_Iran'],
['CITEREFLaërtius1925'] = {'Cite Lives of the Eminent Philosophers', 'Cite LotEP'},
['CITEREFLeCoq1986'] = template_names['Iranica'],
['CITEREFLe_Quien1740'] = {'Oriens Christianus'},
['CITEREFLe_Strange1900'] = {'Baghdad During the Abbasid Caliphate'},
['CITEREFLe_Strange1905'] = {'Lands of the Eastern Caliphate'},
['CITEREFLe_Strange1922'] = {'Baghdad During the Abbasid Caliphate'},
['CITEREFLeblanc1979'] = {'Cite DCB'},
['CITEREFLee1903'] = {'Cite DNBIE'},
['CITEREFLee2018'] = template_names['ODLA'],
['CITEREFLeisingerWollny1993'] = {'Bach\'s compositions (sources)'},
['CITEREFLerner1988'] = template_names['Iranica'],
['CITEREFLev1999'] = {'Saladin in Egypt'},
['CITEREFLevitan2001'] = {'Springer'},
['CITEREFLewin1925'] = {'Lewin-EarlyRail'},
['CITEREFLewis1969'] = {'Setton-A History of the Crusades'},
['CITEREFLewis1986'] = {'Lewis-Shortline-1986'},
['CITEREFLewis1991'] = {'Lewis-Shortline-1991'},
['CITEREFLewis1996'] = {'Lewis-Shortline-1996'},
['CITEREFLewis2001'] = template_names['Iranica'],
['CITEREFLiederNet_Archive'] = {'Schubert\'s compositions (references)'},
['CITEREFLieu1997'] = template_names['Iranica'],
['CITEREFLighthouses_of_Australia_Inc'] = {'Cite loa'},
['CITEREFLind1986'] = {'Lind-Limiteds'},
['CITEREFLittle1974'] = {'Cite DCB'},
['CITEREFLongnon1969'] = {'Setton-A History of the Crusades'},
['CITEREFLosensky2003'] = template_names['Iranica'],
['CITEREFLoverance2018'] = template_names['ODLA'],
['CITEREFLukonin1983'] = {'Cambridge History of Iran'},
['CITEREFLurje2010'] = template_names['Iranica'],
['CITEREFLuttrell1975'] = {'Setton-A History of the Crusades'},
['CITEREFLuttrell1987'] = {'DBI'},
['CITEREFLynch2004'] = {'Lynch-Penn Central'},
['CITEREFLynch2005'] = {'Lynch-New Haven passenger'},
['CITEREFLynch2018'] = template_names['ODLA'],
['CITEREFLéger1990'] = {'Cite DCB'},
['CITEREFle_Fleming1953'] = {'RCTS-LocosGWR-8'},
['CITEREFle_Fleming1960'] = {'RCTS-LocosGWR-8'},
----------< M >----------
['CITEREFMacDermot1927'] = {'Infobox GWR'},
['CITEREFMacDermot1931'] = {'Infobox GWR'},
['CITEREFMacEoin1988'] = template_names['Iranica'],
['CITEREFMacKenzie1992'] = template_names['Iranica'],
['CITEREFMadelung1975'] = template_names['Cam_Hist_Iran'],
['CITEREFMadelung1978'] = {'EI2'},
['CITEREFMadelung1983'] = template_names['Iranica'],
['CITEREFMadelung1984'] = template_names['Iranica'],
['CITEREFMadelung1988'] = template_names['Iranica'],
['CITEREFMadelung1993'] = template_names['Iranica'],
['CITEREFMadelung2003'] = template_names['Iranica'],
['CITEREFMadelungFelix1995'] = template_names['Iranica'],
['CITEREFMaeda2009'] = template_names['Iranica'],
['CITEREFMagdalino2002'] = {'The Empire of Manuel I Komnenos'},
['CITEREFMaiken1989'] = {'Maiken-Night Trains'},
['CITEREFMailer2004'] = {'Mailer-Omaha Road'},
['CITEREFMajidiNegahban'] = {'Encyclopaedia Islamica'},
['CITEREFMalandra2009'] = template_names['Iranica'],
['CITEREFManfred_Knedlik2007'] = {'BBKL'},
['CITEREFMarshak1994'] = template_names['Iranica'],
['CITEREFMarshak2002'] = template_names['Iranica'],
['CITEREFMarshall1823'] = {'Cite RNB1823'},
['CITEREFMarshall1824'] = {'Cite RNB1823'},
['CITEREFMarshall1825'] = {'Cite RNB1823'},
['CITEREFMarshall1827'] = {'Cite RNB1823'},
['CITEREFMarshall1828'] = {'Cite RNB1823'},
['CITEREFMarshall1829'] = {'Cite RNB1823'},
['CITEREFMarshall1830'] = {'Cite RNB1823'},
['CITEREFMarshall1831'] = {'Cite RNB1823'},
['CITEREFMarshall1832'] = {'Cite RNB1823'},
['CITEREFMarshall1833'] = {'Cite RNB1823'},
['CITEREFMarshall1835'] = {'Cite RNB1823'},
['CITEREFMarshall1972'] = {'Lancashire & Yorkshire Railway 3'},
['CITEREFMarshall2001'] = {'Marshall-INGSR'},
['CITEREFMartin_Persch1992'] = {'BBKL'},
['CITEREFMartin_Persch1993'] = {'BBKL'},
['CITEREFMartin_Persch1996'] = {'BBKL'},
['CITEREFMartindale1980'] = {'Prosopography of the Later Roman Empire', 'PLRE'},
['CITEREFMartindale1992'] = {'Prosopography of the Later Roman Empire', 'PLRE'},
['CITEREFMartindaleJonesMorris1971'] = {'Prosopography of the Later Roman Empire', 'PLRE'},
['CITEREFMasoud_Jalali-Moqaddam2015'] = {'Encyclopaedia Islamica'},
['CITEREFMatini1987'] = template_names['Iranica'],
['CITEREFMatthee2008'] = template_names['Iranica'],
['CITEREFMatthee2015'] = template_names['Iranica'],
['CITEREFMaul2005'] = {'Bach\'s compositions (sources)'},
['CITEREFMayGray2006'] = {'MayGray-WAGRPassCar'},
['CITEREFMazzaoui2002'] = template_names['Iranica'],
['CITEREFMcArthurMcArthur2003'] = {'Cite ogn', 'Cite Oregon Geographic Names'},
['CITEREFMcCaffrey1990'] = template_names['Iranica'],
['CITEREFMcCorduck2004'] = {'McCorduck 2004'},
['CITEREFMcCurdyRogers1902'] = {'Cite Jewish Encyclopedia'},
['CITEREFMcDonnell2015'] = {'McDonnell-Locomotives-2nd'},
['CITEREFMcGhee2008'] = {'Cite McGhee 2008'},
['CITEREFMeiningen1704'] = {'Bach\'s compositions (sources)'},
['CITEREFMeints1992'] = {'Meints-Companies'},
['CITEREFMeints2005'] = {'Meints-Lines'},
['CITEREFMelamed1988'] = {'Bach\'s compositions (sources)'},
['CITEREFMelamed1995'] = {'Bach\'s compositions (sources)'},
['CITEREFMelville1997'] = template_names['Iranica'],
['CITEREFMelville2003'] = template_names['Iranica'],
['CITEREFMennell1892'] = {'Dictionary of Australasian Biography'},
['CITEREFMetcalfe2009'] = {'The Muslims of Medieval Italy'},
['CITEREFMiddleton1961'] = {'Middleton-Interurban'},
['CITEREFMiddleton2001'] = {'Middleton-Electrified-2nd'},
['CITEREFMiddleton2002'] = {'Middleton-PRR-Under-Wire'},
['CITEREFMiddletonSmerkDiehl2007'] = {'Encyclopedia of North American Railroads'},
['CITEREFMiles1975'] = template_names['Cam_Hist_Iran'],
['CITEREFMillar2011'] = {'NZR Steam Locomotive'},
['CITEREFMiller'] = {'Encyclopaedia Islamica'},
['CITEREFMiller1908'] = {'The Latins in the Levant', 'Latins in the Levant'},
['CITEREFMiller1921'] = {'Essays on the Latin Orient'},
['CITEREFMinnich2008'] = {'Country study'},
['CITEREFMiramar_Ship_Index'] = {'Csr', 'Cite ship register'},
['CITEREFMitchell1965'] = {'Mitchell TOC'},
['CITEREFMittermeierKonstantHawkinsLouis2006'] = {'LoM2'},
['CITEREFMittermeierLouisRichardsonSchwitzer2010'] = {'LoM3'},
['CITEREFMittermeierTattersallKonstantMeyers1994'] = {'LoM1'},
['CITEREFMoore1875'] = {'Cite CEM'},
['CITEREFMorana1993'] = {'Bach\'s compositions (sources)'},
['CITEREFMorony2009'] = template_names['Iranica'],
['CITEREFMoschonas1975'] = {'Ιστορία του Ελληνικού Έθνους'},
['CITEREFMottahedeh1975'] = template_names['Cam_Hist_Iran'],
['CITEREFMozartHaydnHaydn2008'] = {'Schubert\'s compositions (references)'},
['CITEREFMunkres1974'] = {'Munkres Topology'},
['CITEREFMunkres2000'] = {'Munkres Topology'},
['CITEREFMurray2006'] = {'Murray-Illinois Central'},
['CITEREFMusserCarleton2005'] = {'MSW3 Muroidea'},
['CITEREFMüller,_Hans-Christian1966'] = template_names['NDB'],
----------< N >----------
['CITEREFNSA_II,_15'] = {'Schubert\'s compositions (references)'},
['CITEREFNSA_scores'] = {'Schubert\'s compositions (references)'},
['CITEREFNSA_website'] = {'Schubert\'s compositions (references)'},
['CITEREFNagel1990'] = template_names['Iranica'],
['CITEREFNariciBeckenstein2011'] = {'Narici Beckenstein Topological Vector Spaces'},
['CITEREFNavāʾī1988'] = template_names['Iranica'],
['CITEREFNegahban2008'] = {'Encyclopaedia Islamica'},
['CITEREFNersessian2018'] = template_names['ODLA'],
['CITEREFNetzer1998'] = template_names['Iranica'],
['CITEREFNetzer2007'] = template_names['Iranica'],
['CITEREFNeukirch1999'] = {'Neukirch ANT'},
['CITEREFNeukirchSchmidtWingberg2000'] = {'Neukirch et al. CNF'},
['CITEREFNew_York_City_Landmarks_Preservation_CommissionDolkartPostal2009'] = {'Cite nycland'},
['CITEREFNewbould1999'] = {'Schubert\'s compositions (references)'},
['CITEREFNewman1994'] = template_names['Iranica'],
['CITEREFNicholsonCanepaDaryaee2018'] = template_names['ODLA'],
['CITEREFNicol1988'] = {'Byzantium and Venice: A Study in Diplomatic and Cultural Relations'},
['CITEREFNicol1992'] = {'The Immortal Emperor: The Life and Legend of Constantine Palaiologos, Last Emperor of the Romans'},
['CITEREFNicol1993'] = {'The Last Centuries of Byzantium, 1261–1453', 'The Last Centuries of Byzantium'},
['CITEREFNock1974'] = {'Nock-EustonGlasgow'},
----------< O >----------
['CITEREFO'Byrne1849'] = {'Cite NBD1849'},
['CITEREFO'ConnorRobertson1996'] = {'MacTutor Biography', 'MacTutor'},
['CITEREFO'ConnorRobertson2000'] = {'MacTutor Biography', 'MacTutor'},
['CITEREFO'Donoghue1897'] = {'Cite DNB'},
['CITEREFODB'] = template_names['ODB'],
['CITEREFODLA'] = template_names['ODLA'],
['CITEREFOberling1984'] = template_names['Iranica'],
['CITEREFOberling2008'] = template_names['Iranica'],
['CITEREFOberling2010'] = template_names['Iranica'],
['CITEREFOdisheli2018'] = template_names['ODLA'],
['CITEREFOfficial_Guide_of_the_Railways1950'] = {'Official Guide of the Railways'},
['CITEREFOgorek2012'] = {'Ogorek-South Shore'},
['CITEREFOikonomides1991'] = template_names['ODB'],
['CITEREFOikonomou1977'] = {'Ιστορία του Ελληνικού Έθνους'},
['CITEREFOlbrycht2021'] = template_names['Iranica'],
----------< P >----------
['CITEREFPLP'] = {'Prosopographisches Lexikon der Palaiologenzeit', 'PLP'},
['CITEREFPalmer1875'] = {'Cite ADB'},
['CITEREFPalmerStewart1965'] = {'Palmer & Stewart'},
['CITEREFPanainoAbdollahyBalland1990'] = template_names['Iranica'],
['CITEREFPandariHirtensteinNegahban2013'] = {'Encyclopaedia Islamica'},
['CITEREFParvin2003'] = template_names['Iranica'],
['CITEREFParvin2009'] = template_names['Iranica'],
['CITEREFPatience1996'] = {'Patience-SteamTwilight'},
['CITEREFPatton2005'] = {'MSW3 Geomyidae'},
['CITEREFPaul2000'] = template_names['Iranica'],
['CITEREFPaxtonBourne1985'] = {'Paxton-Bourne'},
['CITEREFPeacock2011'] = template_names['Iranica'],
['CITEREFPeck1898'] = {'HDCA'},
['CITEREFPerlis2001'] = {'Springer'},
['CITEREFPerreault2004'] = {'Bach\'s compositions (sources)'},
['CITEREFPerry1983'] = template_names['Cam_Hist_Iran'],
['CITEREFPerry1990'] = template_names['Cam_Hist_Iran'],
['CITEREFPerry1991'] = template_names['Cam_Hist_Iran'],
['CITEREFPetropoulosKoumarianou1977'] = {'Ιστορία του Ελληνικού Έθνους'},
['CITEREFPetrucci1982'] = {'DBI'},
['CITEREFPezeshk2017'] = {'Encyclopaedia Islamica'},
['CITEREFPezeshkKhaleeli2017'] = template_names['Iranica'],
['CITEREFPezeshkKhaleeli2017'] = {'Encyclopaedia Islamica'},
['CITEREFPfau2008'] = {'Bach\'s compositions (sources)'},
['CITEREFPinkepank1973'] = {'Pinkepank diesel spotters guide 2'},
['CITEREFPlantlist2016'] = {'Plantlist'},
['CITEREFPlaten1976'] = {'Bach\'s compositions (sources)'},
['CITEREFPloumidisAlexiou1974'] = {'Ιστορία του Ελληνικού Έθνους'},
['CITEREFPmbZ'] = {'Prosopographie der mittelbyzantinischen Zeit', 'PMBZ'},
['CITEREFPolemis1968'] = {'Polemis-The Doukai'},
['CITEREFPope2007'] = {'Encyclopaedia Judaica', 'Cite EJ', 'Cite Encyclopaedia Judaica'},
['CITEREFPopplewell'] = {'Popplewell-Gazetteer'},
['CITEREFPotts2018'] = template_names['ODLA'],
['CITEREFPottsCanepa2018'] = template_names['ODLA'],
['CITEREFPourshariati2017'] = {'Encyclopædia Iranica Online'},
['CITEREFPozza1992'] = {'DBI', 'Dizionario Biografico degli Italiani'},
['CITEREFPrawer1985'] = {'Setton-A History of the Crusades'},
['CITEREFPritsak1991'] = template_names['ODB'],
['CITEREFProsopographie_der_mittelbyz._Zeit'] = {'Prosopographie der mittelbyzantinischen Zeit'},
----------< Q >----------
['CITEREFQuick2009'] = {'Quick-Stations'},
['CITEREFQuick2019'] = {'Quick-stations-5'},
['CITEREFQuinn2003'] = template_names['Iranica'],
----------< R >----------
['CITEREFRaditsa1983'] = template_names['Cam_Hist_Iran'],
['CITEREFRahman1983'] = template_names['Iranica'],
['CITEREFRaja'i1987'] = template_names['Iranica'],
['CITEREFRamaer1974'] = {'Ramaer-SteamLocosEAR'},
['CITEREFRansome-Wallis1971'] = {'Ransome-Wallis 1'},
['CITEREFRateliff2007'] = template_names['ME-ref'],
['CITEREFRavegnano2000'] = {'DBI'},
['CITEREFReed1953'] = {'RCTS-LocosGWR-2'},
['CITEREFReed1975'] = {'Reed-Streamline era'},
['CITEREFReed1997'] = {'Schubert\'s compositions (references)'},
['CITEREFReinhard_Tenberg1990'] = {'BBKL'},
['CITEREFRettinghaus2020'] = {'BDh'},
['CITEREFReynolds1921'] = {'Cite Collier\'s', 'Collier\'s'},
['CITEREFReynoldsOroszi2000'] = {'Reynolds-BO'},
['CITEREFRezaHirtensteinGholami2021'] = {'Encyclopaedia Islamica'},
['CITEREFRezakhani2018'] = template_names['ODLA'],
['CITEREFRezvani2014'] = template_names['Iranica'],
['CITEREFRichter-Bernburg2003'] = template_names['Iranica'],
['CITEREFRichter2018'] = {'BDh'},
['CITEREFRigo2005'] = template_names['ODB'],
['CITEREFRipleyDana1863'] = {'New American Cyclopedia'},
['CITEREFRipleyDana1864'] = {'New American Cyclopedia'},
['CITEREFRipleyDana1879'] = {'Cite AmCyc'},
['CITEREFRistaino1988'] = {'Country study'},
['CITEREFRobert_Eitner1891'] = {'Cite ADB'},
['CITEREFRobertson1983'] = {'Robertson-OriginScot'},
['CITEREFRoe1916'] = {'Roe1916'},
['CITEREFRoe1937'] = {'Roe1937'},
['CITEREFRoemer1986'] = template_names['Cam_Hist_Iran'],
['CITEREFRoemer1989'] = template_names['Iranica'],
['CITEREFRoemer2004'] = template_names['Iranica'],
['CITEREFRolt1965'] = {'Rolt1965'},
['CITEREFRoltKichenside1982'] = {'Rolt-Red'},
['CITEREFRose1857'] = {'Cite Newgenbio'},
['CITEREFRosenfeld1974'] = template_names['NDB'],
['CITEREFRosenzweigBlackmar1992'] = {'Cite Central Park History', 'Cite Central Park history'},
['CITEREFRowledge1975'] = {'Rowledge-Engines of the LMS'},
['CITEREFRowledge1993'] = {'Rowledge-Irish Steam Register'},
['CITEREFRowlett'] = {'Cite rowlett', 'Cite Rowlett'},
['CITEREFRowlett2007'] = {'Cite rowlett', 'Cite Rowlett'},
['CITEREFRowlett2012'] = {'Cite rowlett', 'Cite Rowlett'},
['CITEREFRowlett2013'] = {'Cite rowlett', 'Cite Rowlett'},
['CITEREFRowlett2016'] = {'Cite rowlett', 'Cite Rowlett'},
['CITEREFRowlett2017'] = {'Cite rowlett', 'Cite Rowlett'},
['CITEREFRowson1998'] = template_names['Iranica'],
['CITEREFRudin1973'] = {'Rudin Walter Functional Analysis'},
['CITEREFRudin1991'] = {'Rudin Walter Functional Analysis'},
['CITEREFRunciman1951'] = {'Runciman-A History of the Crusades'},
['CITEREFRunciman1951–1954'] = {'Runciman-A History of the Crusades'},
['CITEREFRunciman1952'] = {'Runciman-A History of the Crusades'},
['CITEREFRunciman1954'] = {'Runciman-A History of the Crusades'},
['CITEREFRunciman1989'] = {'Runciman-A History of the Crusades'},
['CITEREFRussell1985'] = {'Setton-A History of the Crusades', 'Encyclopædia Iranica Online', 'Encyclopædia Iranica', 'Encyclopaedia Iranica', 'Cite Encyclopædia Iranica Online'},
['CITEREFRussell1986'] = template_names['Iranica'],
['CITEREFRussell1987'] = template_names['Iranica'],
['CITEREFRussellNorvig2003'] = {'Russell Norvig 2003'},
['CITEREFRybczynski2000'] = {'Rybczynski2000'},
['CITEREFRypka1968'] = template_names['Cam_Hist_Iran'],
----------< S >----------
['CITEREFSR_staff2013'] = {'Houston family tree'},
['CITEREFSadeghiTehrani2008'] = {'Encyclopaedia Islamica'},
['CITEREFSadıkoğlu1996'] = {'TDV Encyclopedia of Islam'},
['CITEREFSafa1987'] = template_names['Iranica'],
['CITEREFSafa1988'] = template_names['Iranica'],
['CITEREFSafa1989'] = template_names['Iranica'],
['CITEREFSafa1994'] = template_names['Iranica'],
['CITEREFSafa2003'] = template_names['Iranica'],
['CITEREFSajjadiAsatryanMelvin-Koushki'] = {'Encyclopaedia Islamica Online'},
['CITEREFSajjadiAsatryanMelvin-Koushki'] = {'Encyclopaedia Islamica'},
['CITEREFSajjadiAsatryanMelvin-Koushki2021'] = template_names['Iranica'],
['CITEREFSalbiev2021'] = template_names['Iranica'],
['CITEREFSalo2004'] = template_names['ME-ref'],
['CITEREFSamiʿiMelvin-Koushki2013'] = {'Encyclopaedia Islamica'},
['CITEREFSanders1998'] = {'The Cambridge History of Egypt', 'Cambridge History of Egypt'},
['CITEREFSanders2003'] = {'Sanders-Indiana'},
['CITEREFSanders2006'] = {'Sanders-Heartland'},
['CITEREFSanders2007'] = {'Sanders-Akron'},
['CITEREFSarikakis1974'] = {'Ιστορία του Ελληνικού Έθνους'},
['CITEREFSaunders2001'] = {'Saunders-Merging Lines'},
['CITEREFSaunders2013'] = {'Saunders-Giants of the Seas'},
['CITEREFSavadaShaw1992'] = {'Country study'},
['CITEREFSavoryKaramustafa1998'] = template_names['Iranica'],
['CITEREFScarce1986'] = template_names['Iranica'],
['CITEREFSchaeferWolff1999'] = {'Schaefer Wolff Topological Vector Spaces'},
['CITEREFSchafer1996'] = {'Schafer-Classic-Railroads-1'},
['CITEREFSchafer1998'] = {'Schafer-Vintage Diesel'},
['CITEREFSchafer2000'] = {'Schafer-More-Classic'},
['CITEREFSchafer2003'] = {'Schafer-Classic-Railroads-3'},
['CITEREFSchaferSolomon1997'] = {'Schafer-Pennsylvania'},
['CITEREFSchaferWelsh1997'] = {'Schafer-Classic'},
['CITEREFSchaferWelsh2002'] = {'Schafer-Streamliners'},
['CITEREFSchaferWelshHolland2001'] = {'Schafer-American passenger train'},
['CITEREFSchaff-Herzog'] = {'Schaff-Herzog'},
['CITEREFSchechter1996'] = {'Schechter Handbook of Analysis and Its Foundations'},
['CITEREFScheide1960'] = {'Bach\'s compositions (sources)'},
['CITEREFSchicht1805'] = {'Bach\'s compositions (sources)'},
['CITEREFSchilling1997'] = {'Schilling-pop-culture'},
['CITEREFSchindel2013'] = template_names['Iranica'],
['CITEREFSchippmann1986'] = template_names['Iranica'],
['CITEREFSchippmann1987'] = template_names['Iranica'],
['CITEREFSchlitter2005'] = {'MSW3 Tubulidentata'},
['CITEREFSchlumberger1983'] = template_names['Cam_Hist_Iran'],
['CITEREFSchmieder1950'] = {'Bach\'s compositions (sources)'},
['CITEREFSchmieder1990'] = {'Bach\'s compositions (sources)'},
['CITEREFSchmitt1986'] = template_names['Iranica'],
['CITEREFSchmitt1989'] = template_names['Iranica'],
['CITEREFSchmitt1993'] = template_names['Iranica'],
['CITEREFSchmitt1994'] = template_names['Iranica'],
['CITEREFSchmitt1995'] = template_names['Iranica'],
['CITEREFSchmitt2002'] = template_names['Iranica'],
['CITEREFSchmitt2004'] = template_names['Iranica'],
['CITEREFSchmitt2005'] = template_names['Iranica'],
['CITEREFSchmitt2018'] = template_names['Iranica'],
['CITEREFSchmittBailey1986'] = template_names['Iranica'],
['CITEREFSchmitz1870'] = {'Cite DGRBM'},
['CITEREFSchneider1907'] = {'Bach\'s compositions (sources)'},
['CITEREFSchneider1912'] = {'Bach\'s compositions (sources)'},
['CITEREFScholze1736'] = {'Bach\'s compositions (sources)'},
['CITEREFSchroeter1961'] = {'Schroeter-Eisenbahnen'},
['CITEREFSchroeterRamaer1993'] = {'Schroeter-Ramaer-Eisenbahnen'},
['CITEREFSchubert-online'] = {'Schubert\'s compositions (references)'},
['CITEREFSchubert1968'] = {'Schubert Topology'},
['CITEREFSchulenberg2010'] = {'Bach\'s compositions (sources)'},
['CITEREFSchulenberg2013'] = {'Bach\'s compositions (sources)'},
['CITEREFSchulze1980'] = {'Bach\'s compositions (sources)'},
['CITEREFSchulze1983'] = {'Bach\'s compositions (sources)'},
['CITEREFSchulze1984'] = {'Bach\'s compositions (sources)'},
['CITEREFSchwieterman2001'] = {'Schwieterman-Leaves-Eastern'},
['CITEREFScottNegus2011'] = {'Scott-Negus-Cellar Door'},
['CITEREFScribbins1970'] = {'Scribbins-Hiawatha'},
['CITEREFScribbins2008'] = {'Scribbins-400-2008', 'Scribbins-Remembered'},
['CITEREFSearle'] = {'Cite sslidx'},
['CITEREFSegal1982'] = template_names['Iranica'],
['CITEREFSellwood1983'] = template_names['Cam_Hist_Iran'],
['CITEREFSemmensGoldfinch2000'] = {'Book-Semmens-Goldfinch-How Steam Locomotives Really Work'},
['CITEREFSemsarZand2008'] = {'Encyclopaedia Islamica'},
['CITEREFSetton1975'] = {'Setton-A History of the Crusades'},
['CITEREFSetton1976'] = {'The Papacy and the Levant'},
['CITEREFSetton1978'] = {'The Papacy and the Levant'},
['CITEREFSetton1984'] = {'The Papacy and the Levant'},
['CITEREFSettonHazard1975'] = {'Setton-A History of the Crusades'},
['CITEREFSfyroeras1975'] = {'Ιστορία του Ελληνικού Έθνους'},
['CITEREFShahbazi1986'] = template_names['Iranica'],
['CITEREFShahbazi1987'] = template_names['Iranica'],
['CITEREFShahbazi1988'] = template_names['Iranica'],
['CITEREFShahbazi1989'] = template_names['Iranica'],
['CITEREFShahbazi1991'] = template_names['Iranica'],
['CITEREFShahbazi1994'] = template_names['Iranica'],
['CITEREFShahbazi2002'] = template_names['Iranica'],
['CITEREFShahbazi2003'] = template_names['Iranica'],
['CITEREFShahbazi2004'] = template_names['Iranica'],
['CITEREFShahbazi2005'] = template_names['Iranica'],
['CITEREFShahbaziBosworth1990'] = template_names['Iranica'],
['CITEREFShahbaziRichter-Bernburg2002'] = template_names['Iranica'],
['CITEREFShaki1991'] = template_names['Iranica'],
['CITEREFShaughnessy1997'] = {'Shaughnessy-DH'},
['CITEREFShaw1978'] = {'Shaw-RailroadAccidents'},
['CITEREFShayegan2004'] = template_names['Iranica'],
['CITEREFShayesteh2013'] = template_names['Iranica'],
['CITEREFSheikhsofla2018'] = {'Encyclopaedia Islamica'},
['CITEREFShindo2004'] = {'Kaneto-shindo-shinario-jinsei'},
['CITEREFShoarian-SattariRezaeeNegahban2008'] = {'Encyclopaedia Islamica'},
['CITEREFShoshani2005'] = {'MSW3 Shoshani'},
['CITEREFShtern2001'] = {'Springer', 'SpringerEOM'},
['CITEREFSiegele1957'] = {'Bach\'s compositions (sources)'},
['CITEREFSilanos2014'] = {'DBI', 'Dizionario Biografico degli Italiani'},
['CITEREFSilke2006'] = {'O\'Donnell family tree'},
['CITEREFSimmons2005'] = {'MSW3 Chiroptera'},
['CITEREFSimon1966'] = {'Simon-Wines Australia'},
['CITEREFSimonWarner2011'] = {'Amtrak By the Numbers'},
['CITEREFSinclair1911'] = {'DCBL'},
['CITEREFSinger1905'] = {'Jewish Encyclopedia'},
['CITEREFSix1934'] = {'Cite Six', 'Cite six'},
['CITEREFSkjærvø2018'] = template_names['ODLA'],
['CITEREFSkoulatos1980'] = {'Les personnages byzantins de l\'Alexiade'},
['CITEREFSloan1964'] = {'Sloan1964'},
['CITEREFSmith1854'] = {'Cite DGRG', 'DGRG'},
['CITEREFSmith1870'] = {'DGRBM', 'Cite DGRBM'},
['CITEREFSmith1873'] = {'DGRBM', 'Cite DGRBM'},
['CITEREFSmith1876'] = {'DGRBM', 'Cite DGRBM'},
['CITEREFSmith1880'] = {'DGRBM', 'Cite DGRBM'},
['CITEREFSmith2010'] = {'Smith-Cruise Ships-2010'},
['CITEREFSolomentsev2001'] = {'Springer', 'SpringerEOM'},
['CITEREFSolomon2000'] = {'Solomon-American Diesel', 'Solomon-UP'},
['CITEREFSolomon2003'] = {'Solomon-Masterpieces'},
['CITEREFSolomon2004'] = {'Solomon-Amtrak'},
['CITEREFSolomon2005'] = {'Solomon-SP-Passenger'},
['CITEREFSolomon2006'] = {'Solomon-EMD Locomotives'},
['CITEREFSolomon2011'] = {'Solomon-Modern Diesel'},
['CITEREFSolomon2014'] = {'Solomon-GE and EMD'},
['CITEREFSolomonSchafer2007'] = {'Solomon-New York Central'},
['CITEREFSolopova2009'] = template_names['ME-ref'],
['CITEREFSoucek1982'] = template_names['Iranica'],
['CITEREFSoucek1983'] = template_names['Iranica'],
['CITEREFSoustal1991'] = {'Tabula Imperii Byzantini'},
['CITEREFSoustalKoder1981'] = {'Tabula Imperii Byzantini'},
['CITEREFSpielhoff1991'] = {'Spielhoff-EL'},
['CITEREFSpitta1894'] = {'Bach\'s compositions (sources)'},
['CITEREFSpitta1899'] = {'Bach\'s compositions (sources)'},
['CITEREFSpringirth2016'] = {'Springirth-Philadelphia'},
['CITEREFSpuhler1986'] = template_names['Cam_Hist_Iran'],
['CITEREFSpuler1983'] = template_names['Iranica'],
['CITEREFSpuler1987'] = template_names['Iranica'],
['CITEREFStagner1993'] = {'Stagner-Transition'},
['CITEREFStansfield1999'] = {'Stansfield-AyrRenfrew'},
['CITEREFStatistical_Yearbook_of_the_Republic_of_Croatia_2015'] = {'Croatia Yearbook 2015'},
['CITEREFStaufer1993'] = {'Staufer-Pennsy_III'},
['CITEREFStauferPennypacker1962'] = {'Staufer-Pennsy'},
['CITEREFStauferPennypacker1968'] = {'Staufer-Pennsy Power II'},
['CITEREFStaunton1988'] = {'Australian Dictionary of Biography'},
['CITEREFSternFishmanTilove2006'] = {'Cite New York 2000', 'Cite NY2000', 'Cite ny2000', 'Cite NY 2000', 'Cite ny 2000'},
['CITEREFSternGilmartinMassengale1983'] = {'Cite New York 1900', 'Cite NY1900'},
['CITEREFSternGilmartinMellins1987'] = {'Cite New York 1930', 'Cite NY 1930', 'Cite NY1930', 'Cite ny1930', 'Cite ny 1930'},
['CITEREFSternMellinsFishman1995'] = {'Cite New York 1960', 'Cite NY1960', 'Cite NY 1960', 'Cite ny1960', 'Cite ny 1960'},
['CITEREFSternMellinsFishman1999'] = {'Cite New York 1880', 'Cite NY1880', 'Cite NY 1880', 'Cite ny1880', 'Cite ny 1880'},
['CITEREFStewart1974'] = {'When Steam Was King'},
['CITEREFStrachey1981'] = template_names['ME-ref'],
['CITEREFStrickland1983'] = {'Strickland Locomotive Directory'},
['CITEREFStähelin1909'] = {'Schaff-Herzog'},
['CITEREFSuetin2001'] = {'Springer', 'SpringerEOM'},
['CITEREFSundermann1988'] = template_names['Iranica'],
['CITEREFSusanne_Schurr1992'] = {'BBKL'},
['CITEREFSusanne_Siebert1992'] = {'BBKL'},
['CITEREFSvolopoulos1977'] = {'Ιστορία του Ελληνικού Έθνους'},
['CITEREFSwartz1992'] = {'Swartz An Introduction to Functional Analysis'},
----------< T >----------
['CITEREFLondon_Gazette'] = {'London Gazette'},
['CITEREFTaber1977'] = {'Taber-DLW-19th'},
['CITEREFTaberTaber1980'] = {'Taber-DLW-20th-1'},
['CITEREFTaberTaber1981'] = {'Taber-DLW-20th-2'},
['CITEREFTafazzoli1999'] = template_names['Iranica'],
['CITEREFTafazzoli1999'] = {'Encyclopaedia Islamica'},
['CITEREFTafazzoli2000'] = template_names['Iranica'],
['CITEREFTalbot1991'] = template_names['ODB'],
['CITEREFTalbotKazhdan1991'] = template_names['ODB'],
['CITEREFTanındı2008'] = template_names['Iranica'],
['CITEREFTao2009'] = {'Cite Cambridge History of China'},
['CITEREFTer-Ghewondyan1976'] = {'The Arab Emirates in Bagratid Armenia'},
['CITEREFThe_London_Gazette1950'] = {'London Gazette'},
['CITEREFThe_London_Gazette_26_September_1919'] = {'London Gazette'},
['CITEREFThielemann2012'] = {'Bach\'s compositions (sources)'},
['CITEREFThomas1970'] = {'HistoryofParliament'},
['CITEREFThomas1971'] = {'Thomas-History-VI'},
['CITEREFThrush2010'] = {'HistoryofParliament'},
['CITEREFTikhomirov2001'] = {'Springer'},
['CITEREFTittel1966'] = {'Bach\'s compositions (sources)'},
['CITEREFTodt1996'] = {'BBKL'},
['CITEREFTodtVest2014'] = {'Tabula Imperii Byzantini'},
['CITEREFTolkien1937'] = template_names['ME-ref'],
['CITEREFTolkien1954'] = template_names['ME-ref'],
['CITEREFTolkien1955'] = template_names['ME-ref'],
['CITEREFTolkien1964'] = template_names['ME-ref'],
['CITEREFTolkien1966'] = template_names['ME-ref'],
['CITEREFTolkien1977'] = template_names['ME-ref'],
['CITEREFTolkien1980'] = template_names['ME-ref'],
['CITEREFTolkien1982'] = template_names['ME-ref'],
['CITEREFTolkien1983'] = template_names['ME-ref'],
['CITEREFTolkien1984'] = template_names['ME-ref'],
['CITEREFTolkien1985'] = template_names['ME-ref'],
['CITEREFTolkien1986'] = template_names['ME-ref'],
['CITEREFTolkien1987'] = template_names['ME-ref'],
['CITEREFTolkien1988'] = template_names['ME-ref'],
['CITEREFTolkien1989'] = template_names['ME-ref'],
['CITEREFTolkien1990'] = template_names['ME-ref'],
['CITEREFTolkien1992'] = template_names['ME-ref'],
['CITEREFTolkien1993'] = template_names['ME-ref'],
['CITEREFTolkien1994'] = template_names['ME-ref'],
['CITEREFTolkien1996'] = template_names['ME-ref'],
['CITEREFTolkien1998'] = template_names['ME-ref'],
['CITEREFTolkien1999'] = template_names['ME-ref'],
['CITEREFTolkien2007'] = template_names['ME-ref'],
['CITEREFTolkienSwan1978'] = template_names['ME-ref'],
['CITEREFTolkienTolkien1992'] = template_names['ME-ref'],
['CITEREFTonks1988'] = {'Tonks ironstone'},
['CITEREFTonks1989'] = {'Tonks ironstone'},
['CITEREFTonks1992'] = {'Tonks ironstone'},
['CITEREFTopping1975'] = {'Setton-A History of the Crusades'},
['CITEREFTorri2013'] = {'Bach\'s compositions (sources)'},
['CITEREFTougher2018'] = template_names['ODLA'],
['CITEREFToumanoff1986'] = template_names['Iranica'],
['CITEREFToumanoff2010'] = template_names['Iranica'],
['CITEREFToumanoffChaumont1987'] = template_names['Iranica'],
['CITEREFTourret1995'] = {'Tourret-Allied Military Locomotives'},
['CITEREFTrapp1991'] = template_names['ODB'],
['CITEREFTrappBeyerSturm-Schnabl1983'] = {'Prosopographisches Lexikon der Palaiologenzeit'},
['CITEREFTrappWaltherBeyer1976'] = {'Prosopographisches Lexikon der Palaiologenzeit'},
['CITEREFTrappWaltherBeyerSturm-Schnabl1978'] = {'Prosopographisches Lexikon der Palaiologenzeit'},
['CITEREFTreadgold1988'] = {'The Byzantine Revival, 780–842'},
['CITEREFTreadgold1997'] = {'A History of the Byzantine State and Society'},
['CITEREFTrèves2006'] = {'Trèves François Topological vector spaces, distributions and kernels'},
['CITEREFTucker2009'] = {'Encyclopaedia Islamica'},
['CITEREFTurim1998'] = {'Turim-oshima'},
['CITEREFTuring1950'] = {'Turing 1950'},
----------< U >----------
['CITEREFUS-NHub_Music_Deposit_31_(Klavierbüchlein_für_W._F._Bach)_at_Bach_Digital'] = {'Bach\'s compositions (sources)'},
['CITEREFUtas2002'] = template_names['Iranica'],
['CITEREFUwe_Eckardt2001'] = {'BBKL'},
['CITEREFunknown_author1881'] = {'Cite ADB'},
['CITEREFunknown_author1882'] = {'Cite ADB'},
----------< V >----------
['CITEREFVakalopoulos1975'] = {'Ιστορία του Ελληνικού Έθνους'},
['CITEREFVan_Cleve1969'] = {'Setton-A History of the Crusades'},
['CITEREFVan_Hoorickx1971'] = {'Schubert\'s compositions (references)'},
['CITEREFVan_Hoorickx_1974–1976'] = {'Schubert\'s compositions (references)'},
['CITEREFVan_Lint2018'] = template_names['ODLA'],
['CITEREFVan_Riemsdijk,_Compound_Locomotives'] = {'Book-Van Riemsdijk-Compound Locomotives'},
['CITEREFVan_Tricht2011'] = {'The Latin Renovatio of Byzantium'},
['CITEREFVandenberghen1989'] = {'Vandenberghen-SNCB12.2'},
['CITEREFVarzos1984'] = {'Η Γενεαλογία των Κομνηνών', 'Varzos-Genealogy of the Komnenoi'},
['CITEREFVasiliev1935'] = {'Byzance et les Arabes'},
['CITEREFVasiliev1968'] = {'Byzance et les Arabes'},
['CITEREFVendler1997'] = {'Shakespeare sonnets bibliography'},
['CITEREFVenetis2012'] = template_names['Iranica'],
['CITEREFVenn1954'] = {'VennAC'},
['CITEREFVesel1999'] = template_names['Iranica'],
['CITEREFVetter1713'] = {'Bach\'s compositions (sources)'},
['CITEREFVevainaCanepa2018'] = template_names['ODLA'],
['CITEREFVeysey1958'] = {'Veysey-PE-1958'},
['CITEREFVischer1912'] = {'Schaff-Herzog'},
['CITEREFVogelsang2003'] = template_names['Iranica'],
['CITEREFVolkmer1991'] = {'Volkmer-Pennsy-Electric'},
['CITEREFvan_Leyden1956'] = {'Bach\'s compositions (sources)'},
['CITEREFvan_Lint2018'] = template_names['ODLA'],
['CITEREFvon_Prantl1879'] = {'Cite ADB'},
----------< W >----------
['CITEREFWagnerBäzoldZschechLüderitz1990'] = {'Wagner-EFA2.3.2'},
['CITEREFWalter_Asmus1966'] = template_names['NDB'],
['CITEREFWayner1972'] = {'Wayner - Car names, numbers, consists'},
['CITEREFWayner1973'] = {'Wayner-Spotter-2nd'},
['CITEREFWebb2018'] = template_names['ODLA'],
['CITEREFWeber2016'] = template_names['Iranica'],
['CITEREFWechsler1979'] = {'Cite Cambridge History of China'},
['CITEREFWegman2008'] = {'Wegman-Illustrated'},
['CITEREFWeibel1994'] = {'Weibel IHA'},
['CITEREFWeinrebHibbertKeayKeay2008'] = {'London encyclopedia'},
['CITEREFWeisbrod1991'] = {'Weisbrod-EFA1.5'},
['CITEREFWeisbrodMüllerPetznik1978'] = {'Weisbrod-EFA1.2'},
['CITEREFWeiskopf1987'] = template_names['Iranica'],
['CITEREFWeiskopf1989'] = template_names['Iranica'],
['CITEREFWeiskopf1990'] = template_names['Iranica'],
['CITEREFWeiskopf1993'] = template_names['Iranica'],
['CITEREFWellhausen1927'] = {'The Arab Kingdom and its Fall'},
['CITEREFWells1982'] = {'Accents of English'},
['CITEREFWells2008'] = {'Cite LPD'},
['CITEREFWelsh2006'] = {'Welsh-Broadway'},
['CITEREFWelsh2008'] = {'Welsh-UP'},
['CITEREFWerner_Raupp2001'] = {'BBKL'},
['CITEREFWestcott1911'] = {'DCBL'},
['CITEREFWestermayer,_Georg1882'] = {'Cite ADB'},
['CITEREFWham1997'] = {'Wham-Ayrshire'},
['CITEREFWharton1991'] = template_names['ODB'],
['CITEREFWhishaw1842'] = {'Whishaw-RailofGB-2ndEd'},
['CITEREFWhishaw1969'] = {'Whishaw-RailofGB'},
['CITEREFWhite1985'] = {'White-Passenger-1985'},
['CITEREFWhite1993'] = {'White - American railroad freight car'},
['CITEREFWhiteWillenskyLeadon2010'] = {'Cite aia5'},
['CITEREFWhitehurst1973'] = {'Whitehurst GW Engines from 1940'},
['CITEREFWhittow1996'] = {'The Making of Byzantium, 600–1025'},
['CITEREFWickman1982'] = {'Country study'},
['CITEREFWiesehöfer1986'] = template_names['Iranica'],
['CITEREFWiesehöfer2018'] = template_names['ODLA'],
['CITEREFWilansky2013'] = {'Wilansky Modern Methods in Topological Vector Spaces'},
['CITEREFWillard2004'] = {'Willard General Topology'},
['CITEREFWilliams1998'] = {'Williams-Philadelphia'},
['CITEREFWilliams2003'] = {'Bach\'s compositions (sources)'},
['CITEREFWilliams2014'] = template_names['Iranica'],
['CITEREFWillis1750'] = {'Cite Notitia Parliamentaria'},
['CITEREFWilson2017'] = {'Wilson-Guide'},
['CITEREFWilsonFiske1891'] = {'Appletons\'', 'Cite Appletons\'', 'Appletons'},
['CITEREFWilsonFiske1892'] = {'Appletons\'', 'Cite Appletons\'', 'Appletons'},
['CITEREFWilsonFiske1900'] = {'Appletons\'', 'Cite Appletons\'', 'Appletons'},
['CITEREFWiltshire2000'] = {'Lloyd-Margaret River'},
['CITEREFWinfieldLyon2004'] = {'Winfield'},
['CITEREFWinkler1883'] = template_names['ADB'],
['CITEREFWitakowski2018'] = template_names['ODLA'],
['CITEREFWolff1969'] = {'Setton-A History of the Crusades'},
['CITEREFWollny2015'] = {'Bach\'s compositions (sources)'},
['CITEREFWood1907'] = {'Cite Nuttall', 'Nuttall'},
['CITEREFWoodsKilpatrick2005'] = {'MSW3 Hystricognathi'},
['CITEREFWorden2008'] = {'Country study'},
['CITEREFWortley2010'] = {'John Skylitzes: A Synopsis of Byzantine History, 811–1057'},
['CITEREFWozencraft2005'] = {'MSW3 Carnivora'},
['CITEREFWright1979'] = {'Cite Cambridge History of China'},
['CITEREFWright2000'] = {'Bach\'s compositions (sources)'},
['CITEREFWägliJacobi2010'] = {'Schienennetz Schweiz'},
['CITEREFWürsch2013'] = template_names['Iranica'],
----------< X >----------
----------< Y >----------
['CITEREFYakubova2016'] = template_names['Iranica'],
['CITEREFYarshater1983'] = template_names['Iranica'],
['CITEREFYarshater1986'] = template_names['Cam_Hist_Iran'],
['CITEREFYarshater1988'] = template_names['Iranica'],
['CITEREFYarshater2018'] = template_names['Iranica'],
['CITEREFYarshater2021'] = template_names['Iranica'],
['CITEREFYazici2002'] = template_names['Iranica'],
['CITEREFYenne2005'] = {'Yenne-Chiefs'},
['CITEREFYildiz2004'] = template_names['Iranica'],
['CITEREFYonge1990'] = {'Quail-4'},
['CITEREFYonge1994'] = {'Quail-5'},
['CITEREFYonge2002'] = {'Quail-5'},
['CITEREFYonge2008'] = {'Quail-5'},
['CITEREFYonge2016'] = {'Quail-2-2016'},
['CITEREFYongePadgettSzwenk2013'] = {'Quail-4-Paper-3rdEd'},
['CITEREFYusofi1990'] = template_names['Iranica'],
----------< Z >----------
['CITEREFZahn1889–1893'] = {'Bach\'s compositions (sources)'},
['CITEREFZakeri2021'] = template_names['Iranica'],
['CITEREFZarrinkoubNegahban2008'] = {'Encyclopaedia Islamica'},
['CITEREFZarrinkub1975'] = template_names['Cam_Hist_Iran'],
['CITEREFZeiniWiesehöfer2018'] = template_names['ODLA'],
['CITEREFZekulich2000'] = {'Zekulich-WineWA'},
['CITEREFZimmermann2004'] = {'Zimmermann-Burlington'},
['CITEREFZimmermann2007'] = {'Zimmermann-GrandLuxe'},
['CITEREFZuccaric._1747'] = {'Bach\'s compositions (sources)'},
----------< UNSORTED >----------
['CITEREFGazette27462'] = {'London Gazette'},
['CITEREFCawley2012'] = {'Medieval Lands by Charles Cawley'},
['CITEREFCrone2003'] = {'Slaves on Horses'},
['CITEREFΙστορία_του_Ελληνικού_Έθνους'] = {'Ιστορία του Ελληνικού Έθνους'},
['CITEREFSpyropoulos1928'] = {'Great Military and Naval Encyclopaedia'},
['CITEREFPikros1977'] = {'Ιστορία του Ελληνικού Έθνους'},
['CITEREFÖz1993'] = {'TDV Encyclopedia of Islam'},
['CITEREFÖzgüdenli2008'] = template_names['Iranica'],
['CITEREFÖzaydın2002'] = {'TDV Encyclopedia of Islam'},
['CITEREFÖzaydın2006'] = {'TDV Encyclopedia of Islam'},
['CITEREFÖzkuyumcu2006'] = {'TDV Encyclopedia of Islam'},
['CITEREFÖztürk2013'] = {'TDV Encyclopedia of Islam'},
['CITEREFΜεγάλη_Στρατιωτικὴ_καὶ_Ναυτικὴ_Ἐγκυκλοπαιδεία'] = {'Great Military and Naval Encyclopaedia'},
['CITEREFŞeşen1988'] = {'TDV Encyclopedia of Islam'},
['CITEREFFranke1994'] = {'Cite Cambridge History of China', 'The Cambridge History of China'},
['CITEREFTao2009'] = {'Cite Cambridge History of China', 'The Cambridge History of China'},
['CITEREFWechsler1979'] = {'Cite Cambridge History of China', 'The Cambridge History of China'},
['CITEREFWright1979'] = {'Cite Cambridge History of China', 'The Cambridge History of China'},
['CITEREFHistoric_England_Benty_Grange'] = {'NHLE'},
['CITEREFWalter1967'] = {'DBI', 'Dizionario Biografico degli Italiani'},
['CITEREFAliprantisBorder2006'] = {'Aliprantis Border Infinite Dimensional Analysis A Hitchhiker\'s Guide Third Edition'},
['CITEREFAmanat1985'] = template_names['Iranica'],
['CITEREFBaldwin1991'] = template_names['ODB'],
['CITEREFCallwell1999'] = {'Muni Chronology'},
['CITEREFHalmos1982'] = {'Halmos A Hilbert Space Problem Book 1982'},
['CITEREFHistoric_England'] = {'NHLE', 'National Heritage List for England'},
['CITEREFHitchins2001'] = template_names['Iranica'],
['CITEREFJohnson1906'] = {'BDA1906', 'Cite BDA1906'},
['CITEREFMachinery's_Handbook1996'] = {'MachinerysHandbook25e'},
['CITEREFMatthee2012'] = template_names['Iranica'],
['CITEREFNicholson2018'] = template_names['ODLA'],
['CITEREFNicol1968'] = {'The Byzantine Family of Kantakouzenos'},
['CITEREFWilsonFiske1889'] = {'Appletons\'', 'Cite Appletons\'', 'Appletons'},
}
--[[--------------------------< E X P O R T E D T A B L E S >------------------------------------------------
]]
return {
DNB_special_patterns = DNB_special_patterns,
DNB_template_names = template_names['DNB'],
special_patterns = special_patterns,
whitelist = whitelist,
wrapper_templates = wrapper_templates,
}
33z1lpfh8l2kevgdwt2ufy0gbk4exh6
Module:Footnotes/whitelist/doc
828
2127
16104
2022-08-19T20:38:06Z
Kambai Akau
15
Created page with "{{High-risk}} This page is a formatted list of anchor IDs and associated citation wrapper-templates. Because of {{cl|Harv and Sfn template errors#Current limitations and false-positive errors|technical limitations}}, short-cite templates, via [[Module:Footnotes]], will emit [[false positive|false-positive]] error messages for citation wrapper-templates. The anchor IDs listed here instruct Module:Footnotes to suppress error messages for short-cite templates that link to..."
wikitext
text/x-wiki
{{High-risk}}
This page is a formatted list of anchor IDs and associated citation wrapper-templates. Because of {{cl|Harv and Sfn template errors#Current limitations and false-positive errors|technical limitations}}, short-cite templates, via [[Module:Footnotes]], will emit [[false positive|false-positive]] error messages for citation wrapper-templates. The anchor IDs listed here instruct Module:Footnotes to suppress error messages for short-cite templates that link to the anchor IDs listed here so long as the associated citation wrapper-template is present in the article. This is an imperfect system that will allow [[false negative|false-negatives]] because this mechanism will suppress valid error messages in the absence of a full-cite target. Adding an anchor ID and matching template to this list will suppress all {{error-small|no target}} error messages for that anchor ID / template pair.
Do not include disambiguation letters in whitelist entries. In other words, use "CITEREFSmith2018" in this whitelist even when the cite template generates "CITEREFSmith2018a".
[[Module:Footnotes/whitelist/sort]] is a tool to aid the maintenance of <code>whitelist{}</code>.
<includeonly>{{#ifeq:{{SUBPAGENAME}}|sandbox | |
<!-- Categories below this line, please; interwikis at Wikidata -->
}}</includeonly>
iuf1z33zjwa7sexsdu2g6cxjc5oqrxx
Module:Footnotes/whitelist/sandbox
828
2128
16105
2022-08-19T20:39:55Z
Kambai Akau
15
Created page with "--[[--------------------------< W R A P P E R _ T E M P L A T E _ D E F A U L T S >---------------------------- A list of wrapper templates by their canonical names – spelling and capitalization is important. Each wrapper template has a table of two values: [1] is the wrapper's default name-list as it is used in an anchor ID; [2] is the default year. This table is indexed indirectly through the wrapper_templates table. This table is not available externally. ]] l..."
Scribunto
text/plain
--[[--------------------------< W R A P P E R _ T E M P L A T E _ D E F A U L T S >----------------------------
A list of wrapper templates by their canonical names – spelling and capitalization is important. Each wrapper
template has a table of two values: [1] is the wrapper's default name-list as it is used in an anchor ID; [2] is
the default year. This table is indexed indirectly through the wrapper_templates table.
This table is not available externally.
]]
local wrapper_template_defaults = { -- keys are canonical template names
['Americana'] = {'Rines', '1920'}, -- tables with default name and default year
['Cite EB1911'] = {'Chisholm', '1911'}, -- tables with default name and default year
['EB1911'] = {'Chisholm', '1911'},
['EI3'] = {'FleetKrämerMatringeNawas', ''},
['ODNB'] = {'', ''}, -- there is no default anchor ID; this forces evaluation of {{cite ODNB}} redirects
}
--[[--------------------------< W R A P P E R _ T E M P L A T E _ D E F A U L T S _ V O L >--------------------
For wrapper templates that use |volume= to specify default name (often editor names) and year. Wrapper templates
are indexed by their canonical names – spelling and capitalization is important. Each wrapper template has a table
of values for every volume. Volumes may be indexed by Arabic or Roman numerals. Each volume index has a table of
twp values" [1] is the wrapper's default name-list as it is used in an anchor ID; [2] is the default year. Each
wrapper template in this table must have a ['default'] key for those occasions when |volume= is omitted or empty.
This table is indexed indirectly through the wrapper_templates table.
This table is not available externally.
]]
local wrapper_template_defaults_vol = { -- primary keys are canonical template names; TODO: do these keys have to be canonical template names?
['Cite Catholic Encyclopedia'] = { -- secondary keys are volume
['1'] = {'Herbermann', '1907'},
['2'] = {'Herbermann', '1907'},
['3'] = {'Herbermann', '1908'},
['4'] = {'Herbermann', '1908'},
['5'] = {'Herbermann', '1909'},
['6'] = {'Herbermann', '1909'},
['7'] = {'Herbermann', '1910'},
['8'] = {'Herbermann', '1910'},
['9'] = {'Herbermann', '1910'},
['10'] = {'Herbermann', '1911'},
['11'] = {'Herbermann', '1911'},
['12'] = {'Herbermann', '1911'},
['13'] = {'Herbermann', '1912'},
['14'] = {'Herbermann', '1912'},
['15'] = {'Herbermann', '1912'},
['default'] = {'Herbermann', '1913'},
},
['Cite EB9'] = {
['1'] = {'Baynes', '1878'}, ['I'] = {'Baynes', '1878'},
['2'] = {'Baynes', '1878'}, ['II'] = {'Baynes', '1878'},
['3'] = {'Baynes', '1878'}, ['III'] = {'Baynes', '1878'},
['4'] = {'Baynes', '1878'}, ['IV'] = {'Baynes', '1878'},
['5'] = {'Baynes', '1878'}, ['V'] = {'Baynes', '1878'},
['6'] = {'Baynes', '1878'}, ['VI'] = {'Baynes', '1878'},
['7'] = {'Baynes', '1878'}, ['VII'] = {'Baynes', '1878'},
['8'] = {'Baynes', '1878'}, ['VIII'] = {'Baynes', '1878'},
['9'] = {'Baynes', '1879'}, ['IX'] = {'Baynes', '1879'},
['10'] = {'Baynes', '1879'}, ['X'] = {'Baynes', '1879'},
['11'] = {'BaynesSmith', '1880'}, ['XI'] = {'BaynesSmith', '1880'},
['12'] = {'BaynesSmith', '1881'}, ['XII'] = {'BaynesSmith', '1881'},
['13'] = {'BaynesSmith', '1881'}, ['XIII'] = {'BaynesSmith', '1881'},
['14'] = {'BaynesSmith', '1882'}, ['XIV'] = {'BaynesSmith', '1882'},
['15'] = {'BaynesSmith', '1883'}, ['XV'] = {'BaynesSmith', '1883'},
['16'] = {'BaynesSmith', '1883'}, ['XVI'] = {'BaynesSmith', '1883'},
['17'] = {'BaynesSmith', '1884'}, ['XVII'] = {'BaynesSmith', '1884'},
['18'] = {'BaynesSmith', '1885'}, ['XVIII'] = {'BaynesSmith', '1885'},
['19'] = {'BaynesSmith', '1885'}, ['XIX'] = {'BaynesSmith', '1885'},
['20'] = {'BaynesSmith', '1886'}, ['XX'] = {'BaynesSmith', '1886'},
['21'] = {'BaynesSmith', '1886'}, ['XXI'] = {'BaynesSmith', '1886'},
['22'] = {'BaynesSmith', '1887'}, ['XXII'] = {'BaynesSmith', '1887'},
['23'] = {'BaynesSmith', '1888'}, ['XXIII'] = {'BaynesSmith', '1888'},
['24'] = {'BaynesSmith', '1888'}, ['XXIV'] = {'BaynesSmith', '1888'},
['default'] = {'Baynes', '1875–1889'},
},
['Encyclopaedia of Islam, New Edition'] = {
['1'] = {'GibbKramersLévi-ProvençalSchacht', '1960'},
['2'] = {'LewisPellatSchacht', '1965'},
['3'] = {'LewisMénagePellatSchacht', '1971'},
['4'] = {'van_DonzelLewisPellatBosworth', '1978'},
['5'] = {'Bosworthvan_DonzelLewisPellat', '1986'},
['6'] = {'Bosworthvan_DonzelPellat', '1991'},
['7'] = {'Bosworthvan_DonzelHeinrichsPellat', '1993'},
['8'] = {'Bosworthvan_DonzelHeinrichsLecomte', '1995'},
['9'] = {'Bosworthvan_DonzelHeinrichsLecomte', '1997'},
['10'] = {'BearmanBianquisBosworthvan_Donzel', '2000'},
['11'] = {'BearmanBianquisBosworthvan_Donzel', '2002'},
['12'] = {'BearmanBianquisBosworthvan_Donzel', '2004'},
['atlas'] = {'Brice', '1981'},
['abridged'] = {'van_Donzel', '1994'},
['default'] = {'BearmanBianquisBosworthvan_Donzel', '1960–2005'},
},
['New Cambridge Medieval History'] = {
['1'] = {'Fouracre', '2005'},
['2'] = {'McKitterick', '1995'},
['3'] = {'Reuter', '2000'},
['4a'] = {'LuscombeRiley-Smith', '2004'},
['4b'] = {'LuscombeRiley-Smith', '2004'},
['5'] = {'Abulafia', '1999'},
['6'] = {'Jones', '2000'},
['7'] = {'Allmand', '1998'},
['default'] = {'', '1995–2005'},
},
['The History of al-Tabari'] = {
['1'] = {'Rosenthal', '1989'},
['2'] = {'Brinner', '1986'},
['3'] = {'Brinner', '1991'},
['4'] = {'Perlmann', '1987'},
['5'] = {'Bosworth', '1999'},
['6'] = {'WattMcDonald', '1989'},
['7'] = {'McDonald', '1987'},
['8'] = {'Fishbein', '1997'},
['9'] = {'Poonawala', '1990'},
['10'] = {'Donner', '1993'},
['11'] = {'Blankinship', '1993'},
['12'] = {'Friedmann', '1992'},
['13'] = {'Juynboll', '1989'},
['14'] = {'Smith', '1994'},
['15'] = {'Humphreys', '1990'},
['16'] = {'Brockett', '1997'},
['17'] = {'Hawting', '1996'},
['18'] = {'Morony', '1987'},
['19'] = {'Howard', '1990'},
['20'] = {'Hawting', '1989'},
['21'] = {'Fishbein', '1990'},
['22'] = {'Rowson', '1989'},
['23'] = {'Hinds', '1990'},
['24'] = {'Powers', '1989'},
['25'] = {'Blankinship', '1989'},
['26'] = {'Hillenbrand', '1989'},
['27'] = {'Williams', '1985'},
['28'] = {'McAuliffe', '1995'},
['29'] = {'Kennedy', '1990'},
['30'] = {'Bosworth', '1989'},
['31'] = {'Fishbein', '1992'},
['32'] = {'Bosworth', '1987'},
['33'] = {'Bosworth', '1991'},
['34'] = {'Kraemer', '1989'},
['35'] = {'Saliba', '1985'},
['36'] = {'Waines', '1992'},
['37'] = {'Fields', '1987'},
['38'] = {'Rosenthal', '1985'},
['39'] = {'Landau-Tasseron', '1998'},
['40'] = {'Popovkin', '2007'},
['default'] = {'Yarshater', '1985–2007'},
},
}
--[[--------------------------< W R A P P E R _ T E M P L A T E S >--------------------------------------------
A list of wrapper templates and their redirects – spelling and capitalization is important; first character is
always uppercase. Each wrapper template gets its value from a k/v pair in the wrapper_template_defaults table.
article reader queries this table to see if template_name is a wrapper template
]]
local wrapper_templates = { -- keys are names of wrapper templates and their redirects
['Americana'] = wrapper_template_defaults['Americana'], -- canonical name; this template calls Cite Americana
['Catholic Encyclopedia'] = wrapper_template_defaults_vol['Cite Catholic Encyclopedia'],
['1913Catholic'] = wrapper_template_defaults_vol['Cite Catholic Encyclopedia'],
['Catholic'] = wrapper_template_defaults_vol['Cite Catholic Encyclopedia'],
['Catholic encyclopedia'] = wrapper_template_defaults_vol['Cite Catholic Encyclopedia'],
['CatholicEncyclopedia'] = wrapper_template_defaults_vol['Cite Catholic Encyclopedia'],
['CE13'] = wrapper_template_defaults_vol['Cite Catholic Encyclopedia'],
['CE1913'] = wrapper_template_defaults_vol['Cite Catholic Encyclopedia'],
['Cite Americana'] = wrapper_template_defaults['Americana'], -- canonical name
['Cite Catholic Encyclopedia'] = wrapper_template_defaults_vol['Cite Catholic Encyclopedia'],
['CathEncy'] = wrapper_template_defaults_vol['Cite Catholic Encyclopedia'],
['Cite Catholic Encyclopædia'] = wrapper_template_defaults_vol['Cite Catholic Encyclopedia'],
['Cite CE1913'] = wrapper_template_defaults_vol['Cite Catholic Encyclopedia'],
['Cite EB1911'] = wrapper_template_defaults['Cite EB1911'], -- canonical name
['1911EB'] = wrapper_template_defaults['Cite EB1911'], -- redirects
['EB1911 cite'] = wrapper_template_defaults['Cite EB1911'],
['Wikisource1911Enc Citation'] = wrapper_template_defaults['Cite EB1911'],
['Wikisource1911Enc citation'] = wrapper_template_defaults['Cite EB1911'],
['Cite EB9'] = wrapper_template_defaults_vol['Cite EB9'], -- canonical
['Eb9'] = wrapper_template_defaults_vol['Cite EB9'],
['Cite ODNB'] = wrapper_template_defaults['ODNB'], -- canonical
['Cite odnb'] = wrapper_template_defaults['ODNB'],
['DNBweb'] = wrapper_template_defaults['ODNB'],
['OBDNweb'] = wrapper_template_defaults['ODNB'],
['ODNB'] = wrapper_template_defaults['ODNB'],
['ODNBref'] = wrapper_template_defaults['ODNB'],
['ODNBweb'] = wrapper_template_defaults['ODNB'],
['EB1911'] = wrapper_template_defaults['EB1911'], -- canonical name; this template calls Cite EB1911
['1911'] = wrapper_template_defaults['EB1911'], -- redirects
['1911s'] = wrapper_template_defaults['EB1911'],
['Britannica 1911'] = wrapper_template_defaults['EB1911'],
['Encyclopedia Britannica 1911'] = wrapper_template_defaults['EB1911'],
['Encyclopædia Britannica 1911'] = wrapper_template_defaults['EB1911'],
['EB9'] = wrapper_template_defaults_vol['Cite EB9'], -- canonical; this template calls Cite EB9
['Encyclopaedia of Islam, New Edition'] = wrapper_template_defaults_vol['Encyclopaedia of Islam, New Edition'], -- canonical
['EI2'] = wrapper_template_defaults_vol['Encyclopaedia of Islam, New Edition'],
['Encyclopaedia of Islam, THREE'] = wrapper_template_defaults['EI3'], -- canonical
['EI3'] = wrapper_template_defaults['EI3'],
['New Cambridge Medieval History'] = wrapper_template_defaults_vol['New Cambridge Medieval History'], -- canonical
['The History of al-Tabari'] = wrapper_template_defaults_vol['The History of al-Tabari'], -- canonical
['The History of Al-Tabari'] = wrapper_template_defaults_vol['The History of al-Tabari'], -- redirects
['The History of al-Ṭabarī'] = wrapper_template_defaults_vol['The History of al-Tabari'], -- redirects
}
--[[--------------------------< T E M P L A T E _ N A M E S >--------------------------------------------------
This table holds the names of templates and the names of their redirects. Template names must be written exactly
as they are named at their templatespace page. This same also applies to redirects.
The indexes in this table are not critical but should be short and concise.
]]
local template_names = {
['ADB'] = {'Allgemeine Deutsche Biographie', 'Cite ADB'},
['Butt_Stations'] = {'Butt-Stations', 'Butt-stations'},
['Cam_Hist_Iran'] = {'Cambridge History of Iran', 'The Cambridge History of Iran'},
['DNB'] = {'Cite DNB', 'DNB', 'DNB Cite', 'Cite DNBSupp', 'DNBSupp', 'Cite DNB12', 'Cite DNBIE', 'DNB12', 'DNBIE'},
['ME-ref'] = {'ME-ref', 'Me-ref'},
['ODB'] = {'ODB', 'Oxford Dictionary of Byzantium'},
['ODLA'] = {'ODLA', 'Oxford Dictionary of Late Antiquity'},
['NDB'] = {'Cite NDB', 'NDB'},
}
--[[--------------------------< S P E C I A L _ P A T T E R N S >----------------------------------------------
Lua patterns. These are scanned sequentially which costs time and processing far and above the time and processing
needed to index into whitelist{}. Do not create a pattern here if a normal whitelist entry or entries can be created.
]]
local special_patterns = {
'CITEREFACAD%u%u%u?%u?%d+%u%u?', -- {{Acad}} ID appears to be 2-4 letters, then 3 numbers, then 1-2 letters
'CITEREFAHD%d+', -- {{Cite AHD}}
'CITEREFHistoric_England%d+', -- {{National Heritage List for England}} & {{PastScape}}
'CITEREFHistoric_Environment_Scotland%u%u%u?%u?%d', -- {{Historic Environment Scotland}} %u can be BTL, GLD, HMPA, LB, SM
'CITEREFQHR%d+', -- {{Cite QHR}}
'CITEREF[%d%a_%pöüäß→]+_at_Bach_Digital', -- {{BDh}}
'CITEREF[BR]GBl_[12]%d%d%d%-?I?I?%/%d+', -- {{Cite Austrian gazette}}
'CITEREFStGBl_[12]%d%d%d%/%d+', -- {{Cite Austrian gazette}}
'CITEREFGBlÖ_[12]%d%d%d%/%d+', -- {{Cite Austrian gazette}}
}
--[[--------------------------< D N B _ S P E C I A L _ P A T T E R N S >--------------------------------------
Lua patterns. Note at special_patterns applies. These for the DNB templates only; these will be tried only when
there is a DNB template in the article.
Pretty much any author name during the period 1885–1901 inclusive, and 1912.
The DNBIE was published in 1903, and Template:DNBIE says that its use is deprecated, but we do not fight that battle here.
]]
local DNB_special_patterns = {
'CITEREF%a[%a%-_\']*188[5-9]', -- 1885–1889
'CITEREF%a[%a%-_\']*189%d', -- 1890–1899
'CITEREF%a[%a%-_\']*190[0-1]', -- 1900–1901
'CITEREF%a[%a%-_\']*1903', -- 1903 IE
'CITEREF%a[%a%-_\']*1912', -- 1912 supplement
}
--[[--------------------------< W H I T E L I S T >------------------------------------------------------------
This is a list of anchor IDs known to be associated with specific wrapper templates. The anchor ID serves as an
index into the table. The assigned value is another table that lists the associated template and any redirects.
Except for year disambiguators, anchor IDs must have the same form as the anchor creator makes; must be the
anchor-encoded form. Remove the year disambiguator.
Template names must be written exactly as they are named at their templatespace page. This same also applies to
redirects. Module:Footnotes reads the template names left to right so most-commonly-used template or redirect name
should appear first. When there are more than one name and when those templates have various anchor IDs the template
namelist should be added to the template_names{} table.
Note that references to Template:EB1911 are listed under "E" in the alphabetical list below to keep them organized.
]]
local whitelist = {
----------< # >----------
['CITEREF2013_Statistical_Yearbook_of_the_Republic_of_Croatia'] = {'Croatia Yearbook 2013'},
----------< A >----------
['CITEREFAGA_1884–1897'] = {'Schubert\'s compositions (references)'},
['CITEREFATOC2009'] = {'ATOCConnectingCommunitiesReportS10'},
['CITEREFAbramowitzStegun1983'] = {'Abramowitz Stegun ref'},
['CITEREFActa_Lipsiensium1723'] = {'Bach\'s compositions (sources)'},
['CITEREFAdamsFranzosa2009'] = {'Adams Franzosa Introduction to Topology Pure and Applied'},
['CITEREFAdaschErnstKeim1978'] = {'Adasch Topological Vector Spaces'},
['CITEREFAffleck1978'] = {'Affleck-On Track'},
['CITEREFAhlgrimm1969'] = {'Bach\'s compositions (sources)'},
['CITEREFAhmadiNegahban2013'] = {'Encyclopaedia Islamica'},
['CITEREFAhrons1927'] = {'Book-Ahrons-British Steam Railway Locomotive'},
['CITEREFAl-Kindi1912'] = {'The Governors and Judges of Egypt'},
['CITEREFAlbert_Schumann1886'] = {'Cite ADB'},
['CITEREFAlden1916'] = {'Shakespeare sonnets bibliography'},
['CITEREFAldrich1969'] = {'Aldrich-LocosGER7'},
['CITEREFAleksidze2018'] = template_names['ODLA'],
['CITEREFAlexiou2010'] = {'Cite flatiron'},
['CITEREFAlgar1989'] = {'Encyclopaedia Iranica', 'Encyclopædia Iranica'},
['CITEREFAlgar1990'] = {'Encyclopædia Iranica'},
['CITEREFAllenBoddyBrownFry1970'] = {'RCTS-LocosLNER-8A'},
['CITEREFAllenBoddyBrownFry1971'] = {'RCTS-LocosLNER-8B'},
['CITEREFAllenBoddyBrownFry1983'] = {'RCTS-LocosLNER-8A'},
['CITEREFAmerican_Railway_Association1922'] = {'1922 Locomotive Cyclopedia'},
['CITEREFAnderson1952'] = {'Naval Wars in the Levant 1559–1853'},
['CITEREFArkhangel'skiiPonomarev1984'] = {'Arkhangel\'skii Ponomarev Fundamentals of General Topology Problems and Exercises'},
['CITEREFArrey_von_Dommer1875'] = {'Cite ADB'},
['CITEREFAsmus1966'] = template_names['NDB'],
['CITEREFAtkins2007'] = {'Shakespeare sonnets bibliography'},
['CITEREFAudiKondevWangHuang2017'] = {'NUBASE2016'},
['CITEREFAvdoyan2018'] = template_names['ODLA'],
['CITEREFAwdry1990'] = {'Awdry-RailCo', 'Carnarvonshire Railway'},
----------< B >----------
['CITEREFBabinger1978'] = {'Mehmed the Conqueror and His Time'},
['CITEREFBabinger1992'] = {'Mehmed the Conqueror and His Time'},
['CITEREFBachAgricola1754'] = {'Bach\'s compositions (sources)'},
['CITEREFBadura-SkodaBranscombe2008'] = {'Schubert\'s compositions (references)'},
['CITEREFBahramianHirtensteinGholami2013'] = {'Encyclopaedia Islamica'},
['CITEREFBaldwinKazhdan1991'] = template_names['ODB'],
['CITEREFBaldwinTalbot1991'] = {'Oxford Dictionary of Byzantium'},
['CITEREFBaltzer1916'] = {'Baltzer-Kolonialbahnen'},
['CITEREFBanach1932'] = {'Banach Théorie des Opérations Linéaires'},
['CITEREFBartusis1991'] = template_names['ODB'],
['CITEREFBaxter1971'] = {'Baxter-BritishLocoCat1'},
['CITEREFBaxter1977'] = {'Baxter-BritishLocoCat1'},
['CITEREFBaxter1978'] = {'Baxter-BritishLocoCat2A'},
['CITEREFBaxter1979'] = {'Baxter-BritishLocoCat2B'},
['CITEREFBaxter1982'] = {'Baxter-BritishLocoCat3A', 'Baxter-BritishLocoCat3B'},
['CITEREFBaxter1984'] = {'Baxter-BritishLocoCat4'},
['CITEREFBaxter1986'] = {'Baxter-BritishLocoCat5A'},
['CITEREFBaxter1988'] = {'Baxter-BritishLocoCat5B'},
['CITEREFBaxter2012'] = {'Baxter-BritishLocoCat6'},
['CITEREFBeißwenger1991'] = {'Bach\'s compositions (sources)'},
['CITEREFBek2001'] = {'Cite Grove'},
['CITEREFBelke1996'] = {'Tabula Imperii Byzantini'},
['CITEREFBelkeMersisch1990'] = {'Tabula Imperii Byzantini'},
['CITEREFBelkeRestle1984'] = {'Tabula Imperii Byzantini'},
['CITEREFBernhard_von_Poten1889'] = template_names['ADB'],
['CITEREFBernhard_von_Poten1898'] = template_names['ADB'],
['CITEREFBezilla1980'] = {'Bezilla-PRR-Electric-Traction'},
['CITEREFBianquis1998'] = {'The Cambridge History of Egypt'},
['CITEREFBierstedt1988'] = {'Bierstedt An Introduction to Locally Convex Inductive Limits'},
['CITEREFBirken1976'] = {'Die Provinzen des Osmanischen Reiches'},
['CITEREFBivar1983'] = template_names['Cam_Hist_Iran'],
['CITEREFBlake1966'] = {'DisraeliRef'},
['CITEREFBlanken2019'] = {'Bach\'s compositions (sources)'},
['CITEREFBlankinship1994'] = {'The End of the Jihâd State', 'The End of the Jihad State'},
['CITEREFBock1978'] = {'Audie-bock-directors'},
['CITEREFBoddyBrownFryHennigan1968'] = {'RCTS-LocosLNER-4'},
['CITEREFBoddyBrownFryHennigan1975'] = {'RCTS-LocosLNER-2B'},
['CITEREFBoddyBrownFryHennigan1977'] = {'RCTS-LocosLNER-9A', 'RCTS-LocosLNER-9B'},
['CITEREFBoddyBrownFryHennigan1979'] = {'RCTS-LocosLNER-3A'},
['CITEREFBoddyBrownHenniganHoole1984'] = {'RCTS-LocosLNER-6C'},
['CITEREFBoddyBrownHenniganNeve1981'] = {'RCTS-LocosLNER-3B'},
['CITEREFBoddyBrownNeveYeadon1983'] = {'RCTS-LocosLNER-6B'},
['CITEREFBoddyFryHenniganHoole1990'] = {'RCTS-LocosLNER-10B'},
['CITEREFBoddyFryHenniganProud1963'] = {'RCTS-LocosLNER-1'},
['CITEREFBoddyNeveTeeYeadon1982'] = {'RCTS-LocosLNER-6A'},
['CITEREFBoddyNeveYeadon1973'] = {'RCTS-LocosLNER-2A'},
['CITEREFBody1989'] = {'Body-Railways-Vol2'},
['CITEREFBon1969'] = {'La Morée franque'},
['CITEREFBonner2010'] = {'New Cambridge History of Islam'},
['CITEREFBonnett2005'] = {'Bonnett Practical Rail Engineering'},
['CITEREFBonporti1712'] = {'Bach\'s compositions (sources)'},
['CITEREFBooth2000'] = {'Shakespeare sonnets bibliography'},
['CITEREFBorsari1964'] = {'DBI', 'Dizionario Biografico degli Italiani'},
['CITEREFBossert1914'] = {'Schaff-Herzog'},
['CITEREFBosworth1968'] = template_names['Cam_Hist_Iran'],
['CITEREFBosworth1975'] = template_names['Cam_Hist_Iran'],
['CITEREFBosworth1983'] = {'Encyclopaedia Iranica', 'Encyclopædia Iranica'},
['CITEREFBosworth1984'] = {'Encyclopaedia Iranica', 'Encyclopædia Iranica'},
['CITEREFBosworth1994'] = {'Encyclopaedia Iranica', 'Encyclopædia Iranica'},
['CITEREFBosworth1998'] = {'Encyclopaedia Iranica', 'Encyclopædia Iranica'},
['CITEREFBosworth2001'] = {'Encyclopaedia Iranica', 'Encyclopædia Iranica'},
['CITEREFBosworth2002'] = {'Encyclopædia Iranica Online'},
['CITEREFBourbaki1987'] = {'Bourbaki Topological Vector Spaces'},
['CITEREFBourbaki1989'] = {'Bourbaki General Topology Part I Chapters 1-4', 'Bourbaki General Topology Part II Chapters 5-10', 'Bourbaki Algebra I Chapters 1-3 Springer'},
['CITEREFBourbaki1994'] = {'Bourbaki EHM'},
['CITEREFBowmanCameronGarnsey2005'] = {'Cambridge Ancient History'},
['CITEREFBoyd1970'] = {'Boyd-MidWales'},
['CITEREFBoyd1975'] = {'Boyd-FR1'},
['CITEREFBoyd1985'] = {'Boyd-NCaerns2Penrhyn'},
['CITEREFBoyd1986'] = {'Boyd-NCaerns3Dinorwic'},
['CITEREFBoyd1988'] = {'Boyd-SCaerns1'},
['CITEREFBoyd1989'] = {'Boyd-SCaerns2'},
['CITEREFBoyd1990'] = {'Boyd-NCaerns1'},
['CITEREFBradshaw1968'] = {'Bradshaw-1910April'},
['CITEREFBradshaw1985'] = {'Bradshaw-1922July'},
['CITEREFBradshaw2011'] = {'Bradshaw-1895December'},
['CITEREFBradshaw2012'] = {'Bradshaw-1850March'},
['CITEREFBrand1968'] = {'Byzantium Confronts the West'},
['CITEREFBrand1991'] = template_names['ODB'],
['CITEREFBrand1991'] = {'DBI'},
['CITEREFBray2010'] = {'Bray-SDJR'},
['CITEREFBrett2010'] = {'New Cambridge History of Islam'},
['CITEREFBriant1985'] = {'Encyclopaedia Iranica', 'Encyclopædia Iranica'},
['CITEREFBrosius2000'] = {'Encyclopædia Iranica'},
['CITEREFBrown2008'] = {'The Cambridge History of the Byzantine Empire'},
['CITEREFBrunner1975'] = template_names['Cam_Hist_Iran'],
['CITEREFBrunner1983'] = template_names['Cam_Hist_Iran'],
['CITEREFBrunner1984'] = {'Encyclopædia Iranica'},
['CITEREFBryan1886'] = {'Bryan (3rd edition)'},
['CITEREFBryan1889'] = {'Bryan (3rd edition)'},
['CITEREFBuhle1909'] = {'Bach\'s compositions (sources)'},
['CITEREFBunbury1857'] = {'DGRG'},
['CITEREFBurant1987'] = {'Cite DCB'},
['CITEREFBurch1911'] = {'Burch Electric Traction'},
['CITEREFBurke1866'] = {'O\'Donnell family tree'},
['CITEREFBurrowsWallace1999'] = {'Cite gotham'},
['CITEREFBury1911'] = {'The Imperial Administrative System of the Ninth Century'},
['CITEREFBusse1975'] = template_names['Cam_Hist_Iran'],
['CITEREFButcherNicholson2018'] = template_names['ODLA'],
['CITEREFButt1995'] = template_names['Butt_Stations'],
----------< C >----------
['CITEREFCIC1983'] = {'CIC1983bib'},
['CITEREFCalifornia1988'] = {'CA-Rail Passenger Development Plan-1988'},
['CITEREFCalmard1988'] = {'Encyclopaedia Iranica', 'Encyclopædia Iranica'},
['CITEREFCaltrans1984'] = {'Countrystudy'},
['CITEREFCameronWard-PerkinsWhitby2000'] = {'Cambridge Ancient History'},
['CITEREFCanepa2018'] = template_names['ODLA'],
['CITEREFCanny2008'] = {'O\'Donnell family tree'},
['CITEREFCappelCutlerKazhdan1991'] = template_names['ODB'],
['CITEREFCarl_von_Prantl1879'] = {'Cite ADB'},
['CITEREFCarlson2010'] = {'Dlmf'},
['CITEREFCaro1974'] = {'Cite Power Broker'},
['CITEREFCarpenter1977'] = template_names['ME-ref'],
['CITEREFCarpenter1981'] = template_names['ME-ref'],
['CITEREFCarra_de_VauxHodgson1965'] = {'EI2'},
['CITEREFCarter2006'] = {'Carter-RailwaysMotivePowerArgentina'},
['CITEREFCasserley1968'] = {'Casserley-joint'},
['CITEREFCasserleyJohnston1966'] = {'Casserley-LocoGrouping3'},
['CITEREFCasserleyJohnston1974'] = {'Casserley-LocoGrouping3', 'Casserley-LocoGrouping2', '0-7110-0554-0'},
['CITEREFCasway1984'] = {'O\'Donnell family tree'},
['CITEREFCawley2001'] = {'Medieval Lands by Charles Cawley'},
['CITEREFCawley2010'] = {'MLCC'},
['CITEREFCawley2011'] = {'MLCC'},
['CITEREFChaléardChanson-JabeurBéranger2006'] = {'Chaléard-Le cdf en Afrique'},
['CITEREFChasiotis1975'] = {'Ιστορία του Ελληνικού Έθνους'},
['CITEREFCheyneBlack1899'] = {'Biblica'},
['CITEREFCheyneBlack1899'] = {'Cite Biblica'},
['CITEREFCheyneBlack1899–1903'] = {'Cite Biblica'},
['CITEREFCheyneBlack1901'] = {'Cite Biblica'},
['CITEREFCheyneBlack1902'] = {'Cite Biblica'},
['CITEREFCheyneBlack1903'] = {'Cite Biblica'},
['CITEREFChisholm1922'] = {'EB1922', 'Cite EB1922'},
['CITEREFChoniates1984'] = {'O City of Byzantium'},
['CITEREFChung1994'] = {'Country study'},
['CITEREFChurchmanHurst2001'] = {'Churchman & Hurst Railways of New Zealand'},
['CITEREFChurchman_&_Hurst2001'] = {'Churchman & Hurst Railways of New Zealand'},
['CITEREFChurella2013'] = {'Churella-PRR-1'},
['CITEREFClementsMcMahon2008'] = {'ClementsMcMahon-GSR Locomotives'},
['CITEREFClinker1978'] = {'Clinker-Stations'},
['CITEREFClinker1988'] = {'Clinker-Stations'},
['CITEREFCoates1990'] = {'Coates-Reading'},
['CITEREFColbyWilliams1916'] = {'New International Encyclopedia', 'NIE'},
['CITEREFColledgeWarlow2006'] = {'Colledge', 'Cite Colledge2006'},
['CITEREFColledgeWarlow2010'] = {'Cite Colledge2010'},
['CITEREFCollins2016'] = {'Cite Collins 2016'},
['CITEREFConolly1998'] = {'IanAllan-PreGroup-Atlas1998'},
['CITEREFConway1990'] = {'Conway A Course in Functional Analysis'},
['CITEREFCoulthard-Clark2002'] = {'Australian Dictionary of Biography'},
['CITEREFCousin1910'] = {'A Short Biographical Dictionary of English Literature', 'Cite SBDEL'},
['CITEREFCox1967'] = {'Cox-Upper Darby'},
['CITEREFCox2011'] = {'Cox-Dixie'},
['CITEREFCrevier1993'] = {'Crevier 1993'},
['CITEREFCrockett2007'] = {'Australian Dictionary of Biography'},
['CITEREFCroke2018'] = template_names['ODLA'],
['CITEREFCrone1980'] = {'Slaves on Horses'},
['CITEREFCroughtonKidnerYoung1982'] = {'Croughton-PrivateStations'},
['CITEREFCruickshanks1970'] = {'HistoryofParliament'},
['CITEREFCudahy2002'] = {'Cudahy-Hudson'},
['CITEREFCudahy2003'] = {'Cudahy-Subways'},
['CITEREFCurta2006'] = {'Southeastern Europe in the Middle Ages, 500–1250'},
----------< D >----------
['CITEREFDBI'] = {'DBI', 'Dizionario Biografico degli Italiani'},
['CITEREFDZS2015'] = {'Croatia Yearbook 2015'},
['CITEREFDadelsen1957'] = {'Bach\'s compositions (sources)'},
['CITEREFDaftary1990'] = {'Daftary-The Ismailis'},
['CITEREFDaftary2007'] = {'Daftary-The Ismailis'},
['CITEREFDaiber1988'] = {'Encyclopaedia Iranica', 'Encyclopædia Iranica'},
['CITEREFDaniel2010'] = {'New Cambridge History of Islam'},
['CITEREFDanielsDench1963'] = {'Daniels-NoMore'},
['CITEREFDanielsDench1973'] = {'Daniels-NoMore'},
['CITEREFDarleyCanepa2018'] = {'Oxford Dictionary of Late Antiquity'},
['CITEREFDaryaee2018'] = template_names['ODLA'],
['CITEREFDaryaeeCanepa2018'] = template_names['ODLA'],
['CITEREFDavid1961'] = {'Bach\'s compositions (sources)'},
['CITEREFDavidson2010'] = {'HistoryofParliament'},
['CITEREFDavidsonThrush2010'] = {'HistoryofParliament'},
['CITEREFDavies1996'] = {'Davies-PLMLocoList'},
['CITEREFDavies1997'] = {'Davies-NordLocoList'},
['CITEREFDavies2001'] = {'Davies-EstLocoList3', 'Davies-ÉtatLocoList'},
['CITEREFDavies2003'] = {'Davies-SNCFLocoList'},
['CITEREFDaviesFirthLuckingThomas1966'] = {'RCTS-LocosGWR-10'},
['CITEREFDavud2018'] = {'Encyclopaedia Islamica'},
['CITEREFDavudNazerian2008'] = {'Encyclopaedia Islamica'},
['CITEREFDeutsch1951'] = {'Schubert\'s compositions (references)'},
['CITEREFDeutsch1978'] = {'Schubert\'s compositions (references)'},
['CITEREFDewick2005'] = {'Dewick-Atlas'},
['CITEREFDiamonstein-Spielvogel2011'] = {'Cite landmarks'},
['CITEREFDickens2018'] = template_names['ODLA'],
['CITEREFDirksen1998'] = {'Bach\'s compositions (sources)'},
['CITEREFDirksen2010'] = {'Bach\'s compositions (sources)'},
['CITEREFDirksen2016'] = {'Bach\'s compositions (sources)'},
['CITEREFDixmier1984'] = {'Dixmier General Topology'},
['CITEREFDoerfer1989'] = {'Encyclopaedia Iranica', 'Encyclopædia Iranica'},
['CITEREFDoleckiMynard2016'] = {'Dolecki Mynard Convergence Foundations Of Topology'},
['CITEREFDolkart1998'] = {'Cite morningside'},
['CITEREFDonohue2003'] = {'The Buwayhid Dynasty in Iraq'},
['CITEREFDorin1972'] = {'Dorin-North Western'},
['CITEREFDow1962'] = {'Dow-GC2'},
['CITEREFDow1965'] = {'Dow-GC3'},
['CITEREFDow1985'] = {'Dow-GC1'},
['CITEREFDowney2007'] = {'Downey-Chicago'},
['CITEREFDrummond1964'] = {'HistoryofParliament'},
['CITEREFDrury1985'] = {'Drury Historical Guide 1985'},
['CITEREFDrury1993'] = {'Drury-North American Steam'},
['CITEREFDugundji1966'] = {'Dugundji Topology'},
['CITEREFDuke1995'] = {'Duke-Santa Fe-1'},
['CITEREFDukeKeilty1990'] = {'Duke-RDC'},
['CITEREFDumbarton_Oaks_Hagiography_Database'] = {'Dumbarton Oaks Hagiography Database'},
['CITEREFDunbar1969'] = {'Dunbar-Railroads'},
['CITEREFDuncan-Jones2010'] = {'Shakespeare sonnets bibliography'},
['CITEREFDunlop1895'] = {'O\'Donnell family tree'},
['CITEREFDunn2013'] = {'Dunn-Comeng-5'},
['CITEREFDurand-Guédy2013'] = {'Encyclopaedia Islamica'},
['CITEREFDurham1998'] = {'California\'s Geographic Names'},
['CITEREFDurrant1972'] = {'Durrant-Steam Locos Eastern Europe'},
['CITEREFDurrant1981'] = {'Durrant-Garratt-Rev'},
['CITEREFDurrantLewisJorgensen1981'] = {'Durrant-SteamAfrica'},
['CITEREFDömlingKohlhase1971'] = {'Bach\'s compositions (sources)'},
['CITEREFDürr1952'] = {'Bach\'s compositions (sources)'},
['CITEREFDürr1954'] = {'Bach\'s compositions (sources)'},
['CITEREFDürr1987'] = {'Bach\'s compositions (sources)'},
['CITEREFDürrJones2006'] = {'Bach\'s compositions (sources)'},
['CITEREFDürrKobayashi1998'] = {'Bach\'s compositions (sources)'},
----------< E >----------
['CITEREFEarle2018'] = {'Gymnosperm Database'},
['CITEREFEbata2019'] = {'BDh'},
['CITEREFEbata2020'] = {'BDh'},
['CITEREFEdwards1995'] = {'Edwards Functional Analysis Theory and Applications'},
['CITEREFEichberg1976'] = {'Bach\'s compositions (sources)'},
['CITEREFEl-Hibri2010'] = {'New Cambridge History of Islam'},
['CITEREFEldredgeHorenstein2014'] = {'Cite concrete'},
['CITEREFElsholz1982'] = {'Schubert\'s compositions (references)'},
['CITEREFEppstein1966'] = {'Bach\'s compositions (sources)'},
['CITEREFEppstein1982'] = {'Bach\'s compositions (sources)'},
['CITEREFEquasis'] = {'Csr', 'Cite ship register'},
['CITEREFEuDaly2009'] = {'Complete Book of North American Railroading'},
['CITEREFEuDalySchaferJessupBoyd2009'] = {'Complete Book of North American Railroading'},
----------< F >----------
['CITEREFFang1943'] = {'Cite ECCP'},
['CITEREFFatehi-NezhadAzarnooshNegahban2008'] = {'Encyclopaedia Islamica'},
['CITEREFFatehi-nezhadRahimi2008'] = {'Encyclopaedia Islamica'},
['CITEREFFeder1958'] = {'Bach\'s compositions (sources)'},
['CITEREFFederal_Writers'_Project1939'] = {'Cite fednyc'},
['CITEREFFernandez1983'] = {'Fernandez1983'},
['CITEREFFiaccadori1991'] = template_names['ODB'],
['CITEREFFine1991'] = {'The Early Medieval Balkans'},
['CITEREFFine1994'] = {'The Late Medieval Balkans'},
['CITEREFFletcher,_Great_Tank_Scandal'] = {'Book-Fletcher-Great Tank Scandal'},
['CITEREFFletcher,_Universal_Tank'] = {'Book-Fletcher-Universal Tank'},
['CITEREFFlora_of_North_America'] = {'EFloras'},
['CITEREFFlora_of_North_America2009'] = {'EFloras'},
['CITEREFFluckMarshallWilson1996'] = {'FluMarWil-LocRailCR'},
['CITEREFFonstad1991'] = template_names['ME-ref'],
['CITEREFForkelTerry1920'] = {'Bach\'s compositions (sources)'},
['CITEREFFornaçon,_Siegfried1957'] = template_names['NDB'],
['CITEREFForrestal1999'] = {'Forrestal-Wineries'},
['CITEREFForster1990'] = {'Cite DCB'},
['CITEREFFoss1991'] = template_names['ODB'],
['CITEREFFoster1971'] = template_names['ME-ref'],
['CITEREFFoster1996'] = {'Foster-Field Guide'},
['CITEREFFrailey2010'] = {'Frailey-Twilight'},
['CITEREFFranz_Schnorr_von_Carolsfeld1883'] = {'Cite ADB'},
['CITEREFFriedrich_Wilhelm_Bautz1975'] = {'BBKL'},
['CITEREFFriedrich_Wilhelm_Bautz1990'] = {'BBKL'},
['CITEREFFry1964'] = {'RCTS-LocosLNER-7'},
['CITEREFFry1966'] = {'RCTS-LocosLNER-5'},
['CITEREFFrye1975'] = template_names['Cam_Hist_Iran'],
['CITEREFFrye1983'] = template_names['Cam_Hist_Iran'],
['CITEREFFudenbergTirole1991'] = {'Cite Fudenberg Tirole 1991'},
['CITEREFFultonHarris1991'] = {'Fulton-Harris'},
----------< G >----------
['CITEREFGarakaniBrown2013'] = {'Encyclopaedia Islamica'},
['CITEREFGardner2005'] = {'MSW3 Microbiotheria'},
['CITEREFGareyJohnson1979'] = {'Garey-Johnson'},
['CITEREFGarth2003'] = template_names['ME-ref'],
['CITEREFGeanakoplos1959'] = {'Emperor Michael Palaeologus and the West'},
['CITEREFGeorg_von_Dadelsen1953'] = template_names['NDB'],
['CITEREFGhereghlou2016'] = {'Encyclopædia Iranica'},
['CITEREFGiannasi1975'] = {'DBI', 'Dizionario Biografico degli Italiani'},
['CITEREFGibb1923'] = {'The Arab Conquests in Central Asia'},
['CITEREFGignoux1983'] = {'Encyclopædia Iranica'},
['CITEREFGil1997'] = {'A History of Palestine, 634-1099', 'A History of Palestine, 634–1099'},
['CITEREFGillham2001'] = {'Gillham-Waterloo-City'},
['CITEREFGilliland1969'] = {'Gilliland'},
['CITEREFGilliland1994'] = {'Pop Chronicles 40s'},
['CITEREFGilliverMarshallWeiner2006'] = template_names['ME-ref'],
['CITEREFGilmanPeckColby1905'] = {'Cite NIE', 'New International Encyclopedia', 'NIE'},
['CITEREFGilmanPeckColby1905'] = {'New International Encyclopedia', 'NIE'},
['CITEREFGilmanPeckColby1916'] = {'New International Encyclopedia', 'NIE'},
['CITEREFGleaves1921'] = {'Gleaves'},
['CITEREFGlischinski1997'] = {'Glischinski-Santa Fe'},
['CITEREFGlöckner1983'] = {'Bach\'s compositions (sources)'},
['CITEREFGoldberg1981'] = {'Goldberg-Amtrak'},
['CITEREFGordon2001'] = {'Gordon-The Breaking of a Thousand Swords'},
['CITEREFGraham1974'] = {'Cite DCB'},
['CITEREFGrant1994'] = {'Grant-Death'},
['CITEREFGrant2010'] = {'Grant-Twilight'},
['CITEREFGrant2017'] = {'Grant-RailCo'},
['CITEREFGreenlaw2007'] = {'Greenlaw-Via Rail'},
['CITEREFGregory1991'] = template_names['ODB'],
['CITEREFGregoryŠevčenko1991'] = template_names['ODB'],
['CITEREFGrete_Schemann1957'] = template_names['NDB'],
['CITEREFGrey2002'] = {'Australian Dictionary of Biography'},
['CITEREFGrierson1903'] = {'Cite LSI', 'LSI', 'Linguistic Survey of India'},
['CITEREFGrierson1908'] = {'Cite LSI', 'LSI', 'Linguistic Survey of India'},
['CITEREFGrierson1919'] = {'Cite LSI', 'LSI', 'Linguistic Survey of India'},
['CITEREFGrierson1967'] = {'Cite LSI', 'LSI', 'Linguistic Survey of India'},
['CITEREFGriffith1991'] = template_names['ODB'],
['CITEREFGriffithsSmith1999'] = {'Griffiths-Sheds1'},
['CITEREFGriffithsSmith2000'] = {'Griffiths-Sheds2'},
['CITEREFGrothendieck1955'] = {'Grothendieck Produits Tensoriels Topologiques et Espaces Nucléaires'},
['CITEREFGrothendieck1973'] = {'Grothendieck Topological Vector Spaces'},
['CITEREFGrothendieckDieudonné1960'] = {'EGA'},
['CITEREFGrothendieckDieudonné1961'] = {'EGA'},
['CITEREFGrothendieckDieudonné1963'] = {'EGA'},
['CITEREFGrothendieckDieudonné1964'] = {'EGA'},
['CITEREFGrothendieckDieudonné1965'] = {'EGA'},
['CITEREFGrothendieckDieudonné1966'] = {'EGA'},
['CITEREFGrothendieckDieudonné1967'] = {'EGA'},
['CITEREFGrothendieckDieudonné1971'] = {'EGA'},
['CITEREFGroves2005'] = {'MSW3 Primates', 'MSW3 Groves'},
['CITEREFGrubb2005'] = {'MSW3 Artiodactyla'},
['CITEREFGuilland1967'] = {'Recherches sur les institutions byzantines'},
['CITEREFGulino2005'] = {'DBI', 'Dizionario Biografico degli Italiani'},
['CITEREFGunzburg1984'] = {'Gunzburg-History WAGR Steam'},
['CITEREFGurneyNabavi1993'] = {'Encyclopaedia Iranica', 'Encyclopædia Iranica'},
['CITEREFGutas1987'] = {'Encyclopaedia Iranica', 'Encyclopædia Iranica'},
----------< H >----------
['CITEREFHaarer2018'] = template_names['ODLA'],
['CITEREFHaldon1999'] = {'Warfare, State and Society in the Byzantine World, 565–1204'},
['CITEREFHalliday1985'] = {'Halliday-AustWineCompend'},
['CITEREFHalliday2008'] = {'Halliday-JHWAtlasAust2008'},
['CITEREFHalliday2009'] = {'Halliday-AustWineEncyc'},
['CITEREFHalpenny1990'] = {'Canadabio'},
['CITEREFHambly1990'] = template_names['Cam_Hist_Iran'],
['CITEREFHammondAnderson1993'] = template_names['ME-ref'],
['CITEREFHammondScull1995'] = template_names['ME-ref'],
['CITEREFHammondScull2005'] = template_names['ME-ref'],
['CITEREFHammondScull2006a'] = template_names['ME-ref'],
['CITEREFHammondScull2006b'] = template_names['ME-ref'],
['CITEREFHanaway1989'] = {'Encyclopaedia Iranica', 'Encyclopædia Iranica'},
['CITEREFHans_Heinrich_Borcherdt1955'] = template_names['NDB'],
['CITEREFHans_Knudsen1972'] = template_names['NDB'],
['CITEREFHansen1988'] = {'Book-Hansen-US Nuclear Weapons'},
['CITEREFHartshorne1977'] = {'Hartshorne AG'},
['CITEREFHasumi2003'] = {'Hasumi-shiguehiko-ozu-2003'},
['CITEREFHaswell-Smith2004'] = {'Haswell-Smith'},
['CITEREFHaugic1908'] = {'Schaff-Herzog'},
['CITEREFHawting1987'] = {'The First Dynasty of Islam'},
['CITEREFHawting2000'] = {'The First Dynasty of Islam'},
['CITEREFHaynes2011'] = {'RubberBible92nd'},
['CITEREFHeinichen1728'] = {'Bach\'s compositions (sources)'},
['CITEREFHeinrich_Welti1890'] = {'Cite ADB'},
['CITEREFHelgen2005'] = {'MSW3 Scandentia'},
['CITEREFHellmann1965'] = {'Bach\'s compositions (sources)'},
['CITEREFHenrici1725'] = {'Bach\'s compositions (sources)'},
['CITEREFHenryOrsmond1928'] = {'Raiatea family tree'},
['CITEREFHermann_Palm1876'] = {'Cite ADB'},
['CITEREFHerr2000'] = {'Herr-LN'},
['CITEREFHidyHidyScottHofsummer2004'] = {'Hidy-Great Northern'},
['CITEREFHildHellenkemper1990'] = {'Tabula Imperii Byzantini'},
['CITEREFHildHellenkemper1994'] = {'Tabula Imperii Byzantini'},
['CITEREFHildRestle1981'] = {'Tabula Imperii Byzantini'},
['CITEREFHills,_Power_from_Steam'] = {'Book-Hills-Power from Steam'},
['CITEREFHills1989'] = {'Book-Hills-Power from Steam'},
['CITEREFHilmarJestremski2004'] = {'Schubert\'s compositions (references)'},
['CITEREFHilton1980'] = {'Hilton-Amtrak'},
['CITEREFHilton1990'] = {'Hilton Narrow Gauge'},
['CITEREFHiltonDue1960'] = {'Hilton-Interurban'},
['CITEREFHinton1986'] = {'HistoryofParliament'},
['CITEREFHirsch1906'] = {'Cite JE1906'},
['CITEREFHistoric_Environment_Scotland1972'] = {'Historic Environment Scotland'},
['CITEREFHistoric_Environment_Scotland1976'] = {'Historic Environment Scotland'},
['CITEREFHistoric_Environment_Scotland2020'] = {'Historic Environment Scotland'},
['CITEREFHistoric_Environment_Scotland:_Rusco_Tower2020'] = {'Historic Environment Scotland'},
['CITEREFHistoric_Environment_ScotlandLB33744'] = {'Historic Environment Scotland'},
['CITEREFHistoric_Environment_ScotlandLB50114'] = {'Historic Environment Scotland'},
['CITEREFHob.'] = {'Schubert\'s compositions (references)'},
['CITEREFHoffmanSmith2005'] = {'MSW3 Lagomorpha'},
['CITEREFHoffmann1738'] = {'Bach\'s compositions (sources)'},
['CITEREFHofmann1983'] = {'Bach\'s compositions (sources)'},
['CITEREFHofmann1987'] = {'Bach\'s compositions (sources)'},
['CITEREFHofmann1999'] = {'Bach\'s compositions (sources)'},
['CITEREFHolland1972'] = {'Holland-Vol 2'},
['CITEREFHolland1988'] = {'Cite DCB'},
['CITEREFHolland2001'] = {'Holland-Classic'},
['CITEREFHollingsworth1980'] = {'Hollingsworth-Atlas-Rigby'},
['CITEREFHollingsworth1991'] = template_names['ODB'],
['CITEREFHollingsworthCutler1991'] = template_names['ODB'],
['CITEREFHolmgren2003'] = {'EFloras'},
['CITEREFHoltBiddle1986'] = {'Holt-NorthWest'},
['CITEREFHolton1989'] = {'Holton-Reading-1'},
['CITEREFHopley1983'] = {'Australian Dictionary of Biography'},
['CITEREFHorváth1966'] = {'Horváth Topological Vector Spaces and Distributions Volume 1 1966'},
['CITEREFHounshell1984'] = {'Hounshell1984'},
['CITEREFHudson1997'] = {'Country study'},
['CITEREFHughes1990'] = {'Hughes-IndianLocos1'},
['CITEREFHughes1992'] = {'Hughes-IndianLocos2'},
['CITEREFHughes1994'] = {'Hughes-IndianLocos3'},
['CITEREFHughes1996'] = {'Hughes-IndianLocos4'},
['CITEREFHummel1943'] = {'Cite ECCP'},
['CITEREFHunter2008'] = {'Country study'},
['CITEREFHutterer2005'] = {'MSW3 Soricomorpha'},
['CITEREFHütter2012'] = {'Hütter-50bis53'},
['CITEREFHütter2015'] = {'Hütter-54bis59'},
['CITEREFHütter2021'] = {'Hütter-60bis91'},
----------< I >----------
['CITEREFImber2002'] = {'Imber-The Ottoman Empire, 1300–1650'},
['CITEREFInalcik1989'] = {'Setton-A History of the Crusades'},
['CITEREFIshino1998'] = {'Teishajo'},
['CITEREFIshkevariNejad2008'] = {'Encyclopaedia Islamica'},
['CITEREFIvey1919'] = {'Ivey-Marquette'},
----------< J >----------
['CITEREFJackson1908'] = {'Schaff-Herzog'},
['CITEREFJackson1988'] = {'Encyclopaedia Iranica', 'Encyclopædia Iranica'},
['CITEREFJackson1995'] = {'Cite enc-nyc'},
['CITEREFJackson2010'] = {'Cite enc-nyc2'},
['CITEREFJacobs1904'] = {'Cite Jewish Encyclopedia'},
['CITEREFJarchow1981'] = {'Jarchow Locally Convex Spaces'},
['CITEREFJohnstonWelshSchafer2001'] = {'Johnston-Streamliner'},
['CITEREFJones2011'] = {'Cite EPD'},
['CITEREFJordan2002'] = {'Jordan-WineWABest'},
['CITEREFJoshi1983'] = {'Joshi Introduction to General Topology'},
['CITEREFJoslen2003'] = {'Joslen-OOB'},
['CITEREFJowett1867'] = {'DGRBM', 'Cite DGRBM'},
['CITEREFJowett1989'] = {'Jowett-Atlas', 'Carnarvonshire Railway'},
['CITEREFJowett2000'] = {'Jowett-Nationalised'},
['CITEREFJupp1986'] = {'HistoryofParliament'},
----------< K >----------
['CITEREFK.'] = {'Schubert\'s compositions (references)'},
['CITEREFKadinsky2016'] = {'Cite Hidden Waters NYC'},
['CITEREFKaegi1991'] = template_names['ODB'],
['CITEREFKang2008'] = {'Country study'},
['CITEREFKarl_Frohnmeyer1953'] = template_names['NDB'],
['CITEREFKarnow1989'] = {'Cite-Karnow'},
['CITEREFKazhdan1991'] = template_names['ODB'],
['CITEREFKazhdanCutler1991'] = template_names['ODB'],
['CITEREFKazhdanŠevčenko1991'] = template_names['ODB'],
['CITEREFKeefe2006'] = {'Schubert\'s compositions (references)'},
['CITEREFKeller1937'] = {'Bach\'s compositions (sources)'},
['CITEREFKelly1988'] = {'Cite GEIL'},
['CITEREFKellyBurrage1920'] = {'Cite AMB1920'},
['CITEREFKennedy1998'] = {'The Cambridge History of Egypt', 'Cite Kennedy 1998'},
['CITEREFKennedy2001'] = {'Kennedy-The Armies of the Caliphs'},
['CITEREFKennedy2004'] = {'The Prophet and the Age of the Caliphates'},
['CITEREFKennedy2007'] = {'Kennedy-The Great Arab Conquests'},
['CITEREFKennedy2016'] = {'The Prophet and the Age of the Caliphates'},
['CITEREFKenyon2011'] = {'Bach\'s compositions (sources)'},
['CITEREFKerrigan1995'] = {'Shakespeare sonnets bibliography'},
['CITEREFKhaleelulla1982'] = {'Khaleelulla Counterexamples in Topological Vector Spaces'},
['CITEREFKhan2012'] = {'Cite Banglapedia'},
['CITEREFKim1994'] = {'Country study'},
['CITEREFKirnberger1774'] = {'Bach\'s compositions (sources)'},
['CITEREFKirnberger1780'] = {'Bach\'s compositions (sources)'},
['CITEREFKlein2006'] = {'Klein-UP-2'},
['CITEREFKobayashi1978'] = {'Bach\'s compositions (sources)'},
['CITEREFKoderHild1976'] = {'Tabula Imperii Byzantini'},
['CITEREFKoderSoustalKoder1998'] = {'Tabula Imperii Byzantini'},
['CITEREFKoeppel2015'] = {'Cite citygrid'},
['CITEREFKofos1977'] = {'Ιστορία του Ελληνικού Έθνους'},
['CITEREFKohler1902'] = {'Cite Jewish Encyclopedia'},
['CITEREFKolde1914'] = {'Schaff-Herzog'},
['CITEREFKoliopoulos1978'] = {'Ιστορία του Ελληνικού Έθνους'},
['CITEREFKolmogorovFomin1957'] = {'Kolmogorov Fomin Elements of the Theory of Functions and Functional Analysis'},
['CITEREFKonrad_Ameln1985'] = template_names['NDB'],
['CITEREFKoska2011'] = {'Bach\'s compositions (sources)'},
['CITEREFKratville1962'] = {'Kratville-SSL'},
['CITEREFKretzschmar1910'] = {'Bach\'s compositions (sources)'},
['CITEREFKube2009'] = {'Schubert\'s compositions (references)'},
['CITEREFKöthe1969'] = {'Köthe Topological Vector Spaces I'},
['CITEREFKülzer2008'] = {'Tabula Imperii Byzantini'},
['CITEREFKüçükaşcı2001'] = {'TDV Encyclopedia of Islam'},
----------< L >----------
['CITEREFLa_Porta2018'] = template_names['ODLA'],
['CITEREFLacourcière1974'] = {'Cite DCB'},
['CITEREFLadefogedMaddieson1996'] = {'SOWL'},
['CITEREFLandauCondit1996'] = {'Cite nysky'},
['CITEREFLandmann1907'] = {'Bach\'s compositions (sources)'},
['CITEREFLangaroodiCooper2008'] = {'Encyclopaedia Islamica'},
['CITEREFLangaroodiNegahban2008'] = {'Encyclopaedia Islamica'},
['CITEREFLaërtius1925'] = {'Cite Lives of the Eminent Philosophers', 'Cite LotEP'},
['CITEREFLe_Quien1740'] = {'Oriens Christianus'},
['CITEREFLe_Strange1900'] = {'Baghdad During the Abbasid Caliphate'},
['CITEREFLe_Strange1905'] = {'Lands of the Eastern Caliphate'},
['CITEREFLe_Strange1922'] = {'Baghdad During the Abbasid Caliphate'},
['CITEREFLeblanc1979'] = {'Cite DCB'},
['CITEREFLee1903'] = {'Cite DNBIE'},
['CITEREFLee2018'] = template_names['ODLA'],
['CITEREFLeisingerWollny1993'] = {'Bach\'s compositions (sources)'},
['CITEREFLevitan2001'] = {'Springer'},
['CITEREFLewin1925'] = {'Lewin-EarlyRail'},
['CITEREFLewis1969'] = {'Setton-A History of the Crusades'},
['CITEREFLewis1986'] = {'Lewis-Shortline-1986'},
['CITEREFLewis1991'] = {'Lewis-Shortline-1991'},
['CITEREFLewis1996'] = {'Lewis-Shortline-1996'},
['CITEREFLiederNet_Archive'] = {'Schubert\'s compositions (references)'},
['CITEREFLighthouses_of_Australia_Inc'] = {'Cite loa'},
['CITEREFLind1986'] = {'Lind-Limiteds'},
['CITEREFLongnon1969'] = {'Setton-A History of the Crusades'},
['CITEREFLuttrell1975'] = {'Setton-A History of the Crusades'},
['CITEREFLuttrell1987'] = {'DBI'},
['CITEREFLynch2004'] = {'Lynch-Penn Central'},
['CITEREFLynch2005'] = {'Lynch-New Haven passenger'},
['CITEREFLynch2018'] = template_names['ODLA'],
['CITEREFLéger1990'] = {'Cite DCB'},
['CITEREFle_Fleming1953'] = {'RCTS-LocosGWR-8'},
['CITEREFle_Fleming1960'] = {'RCTS-LocosGWR-8'},
----------< M >----------
['CITEREFMacDermot1927'] = {'Infobox GWR'},
['CITEREFMacDermot1931'] = {'Infobox GWR'},
['CITEREFMacKenzie1992'] = {'Encyclopaedia Iranica', 'Encyclopædia Iranica'},
['CITEREFMadelung1975'] = template_names['Cam_Hist_Iran'],
['CITEREFMadelung1978'] = {'EI2'},
['CITEREFMadelung1983'] = {'Encyclopaedia Iranica'},
['CITEREFMagdalino2002'] = {'The Empire of Manuel I Komnenos'},
['CITEREFMaiken1989'] = {'Maiken-Night Trains'},
['CITEREFMailer2004'] = {'Mailer-Omaha Road'},
['CITEREFManfred_Knedlik2007'] = {'BBKL'},
['CITEREFMarshall1823'] = {'Cite RNB1823'},
['CITEREFMarshall1824'] = {'Cite RNB1823'},
['CITEREFMarshall1825'] = {'Cite RNB1823'},
['CITEREFMarshall1827'] = {'Cite RNB1823'},
['CITEREFMarshall1828'] = {'Cite RNB1823'},
['CITEREFMarshall1829'] = {'Cite RNB1823'},
['CITEREFMarshall1830'] = {'Cite RNB1823'},
['CITEREFMarshall1831'] = {'Cite RNB1823'},
['CITEREFMarshall1832'] = {'Cite RNB1823'},
['CITEREFMarshall1833'] = {'Cite RNB1823'},
['CITEREFMarshall1835'] = {'Cite RNB1823'},
['CITEREFMarshall1972'] = {'Lancashire & Yorkshire Railway 3'},
['CITEREFMarshall2001'] = {'Marshall-INGSR'},
['CITEREFMartin_Persch1992'] = {'BBKL'},
['CITEREFMartin_Persch1993'] = {'BBKL'},
['CITEREFMartin_Persch1996'] = {'BBKL'},
['CITEREFMartindale1980'] = {'Prosopography of the Later Roman Empire', 'PLRE'},
['CITEREFMartindale1992'] = {'Prosopography of the Later Roman Empire', 'PLRE'},
['CITEREFMartindaleJonesMorris1971'] = {'Prosopography of the Later Roman Empire', 'PLRE'},
['CITEREFMatini1987'] = {'Encyclopaedia Iranica', 'Encyclopædia Iranica'},
['CITEREFMayGray2006'] = {'MayGray-WAGRPassCar'},
['CITEREFMcArthurMcArthur2003'] = {'Cite ogn', 'Cite Oregon Geographic Names'},
['CITEREFMcCorduck2004'] = {'McCorduck 2004'},
['CITEREFMcCurdyRogers1902'] = {'Cite Jewish Encyclopedia'},
['CITEREFMcDonnell2015'] = {'McDonnell-Locomotives-2nd'},
['CITEREFMcGhee2008'] = {'Cite McGhee 2008'},
['CITEREFMeiningen1704'] = {'Bach\'s compositions (sources)'},
['CITEREFMeints1992'] = {'Meints-Companies'},
['CITEREFMeints2005'] = {'Meints-Lines'},
['CITEREFMelamed1988'] = {'Bach\'s compositions (sources)'},
['CITEREFMelamed1995'] = {'Bach\'s compositions (sources)'},
['CITEREFMetcalfe2009'] = {'The Muslims of Medieval Italy'},
['CITEREFMiddleton1961'] = {'Middleton-Interurban'},
['CITEREFMiddleton2001'] = {'Middleton-Electrified-2nd'},
['CITEREFMiddleton2002'] = {'Middleton-PRR-Under-Wire'},
['CITEREFMiddletonSmerkDiehl2007'] = {'Encyclopedia of North American Railroads'},
['CITEREFMillar2011'] = {'NZR Steam Locomotive'},
['CITEREFMiller'] = {'Encyclopaedia Islamica'},
['CITEREFMiller1908'] = {'The Latins in the Levant', 'Latins in the Levant'},
['CITEREFMiller1921'] = {'Essays on the Latin Orient'},
['CITEREFMinnich2008'] = {'Country study'},
['CITEREFMiramar_Ship_Index'] = {'Csr', 'Cite ship register'},
['CITEREFMitchell1965'] = {'Mitchell TOC'},
['CITEREFMittermeierKonstantHawkinsLouis2006'] = {'LoM2'},
['CITEREFMittermeierLouisRichardsonSchwitzer2010'] = {'LoM3'},
['CITEREFMittermeierTattersallKonstantMeyers1994'] = {'LoM1'},
['CITEREFMoore1875'] = {'Cite CEM'},
['CITEREFMorana1993'] = {'Bach\'s compositions (sources)'},
['CITEREFMoschonas1975'] = {'Ιστορία του Ελληνικού Έθνους'},
['CITEREFMottahedeh1975'] = template_names['Cam_Hist_Iran'],
['CITEREFMozartHaydnHaydn2008'] = {'Schubert\'s compositions (references)'},
['CITEREFMunkres1974'] = {'Munkres Topology'},
['CITEREFMunkres2000'] = {'Munkres Topology'},
['CITEREFMurray2006'] = {'Murray-Illinois Central'},
['CITEREFMusserCarleton2005'] = {'MSW3 Muroidea'},
['CITEREFMüller,_Hans-Christian1966'] = template_names['NDB'],
----------< N >----------
['CITEREFNSA_II,_15'] = {'Schubert\'s compositions (references)'},
['CITEREFNSA_scores'] = {'Schubert\'s compositions (references)'},
['CITEREFNSA_website'] = {'Schubert\'s compositions (references)'},
['CITEREFNariciBeckenstein2011'] = {'Narici Beckenstein Topological Vector Spaces'},
['CITEREFNersessian2018'] = template_names['ODLA'],
['CITEREFNeukirch1999'] = {'Neukirch ANT'},
['CITEREFNeukirchSchmidtWingberg2000'] = {'Neukirch et al. CNF'},
['CITEREFNew_York_City_Landmarks_Preservation_CommissionDolkartPostal2009'] = {'Cite nycland'},
['CITEREFNewbould1999'] = {'Schubert\'s compositions (references)'},
['CITEREFNewman1994'] = {'Encyclopaedia Iranica', 'Encyclopædia Iranica'},
['CITEREFNicholsonCanepaDaryaee2018'] = template_names['ODLA'],
['CITEREFNicol1988'] = {'Byzantium and Venice: A Study in Diplomatic and Cultural Relations'},
['CITEREFNicol1993'] = {'The Last Centuries of Byzantium, 1261–1453', 'The Last Centuries of Byzantium'},
['CITEREFNock1974'] = {'Nock-EustonGlasgow'},
----------< O >----------
['CITEREFO'Byrne1849'] = {'Cite NBD1849'},
['CITEREFO'ConnorRobertson1996'] = {'MacTutor Biography', 'MacTutor'},
['CITEREFO'ConnorRobertson2000'] = {'MacTutor Biography', 'MacTutor'},
['CITEREFO'Donoghue1897'] = {'Cite DNB'},
['CITEREFODB'] = {'Oxford Dictionary of Byzantium'},
['CITEREFODLA'] = template_names['ODLA'],
['CITEREFOdisheli2018'] = template_names['ODLA'],
['CITEREFOfficial_Guide_of_the_Railways1950'] = {'Official Guide of the Railways'},
['CITEREFOgorek2012'] = {'Ogorek-South Shore'},
['CITEREFOikonomides1991'] = template_names['ODB'],
----------< P >----------
['CITEREFPLP'] = {'Prosopographisches Lexikon der Palaiologenzeit', 'PLP'},
['CITEREFPalmer1875'] = {'Cite ADB'},
['CITEREFPalmerStewart1965'] = {'Palmer & Stewart'},
['CITEREFPandariHirtensteinNegahban2013'] = {'Encyclopaedia Islamica'},
['CITEREFPatience1996'] = {'Patience-SteamTwilight'},
['CITEREFPatton2005'] = {'MSW3 Geomyidae'},
['CITEREFPaxtonBourne1985'] = {'Paxton-Bourne'},
['CITEREFPeck1898'] = {'HDCA'},
['CITEREFPerreault2004'] = {'Bach\'s compositions (sources)'},
['CITEREFPerry1990'] = template_names['Cam_Hist_Iran'],
['CITEREFPetropoulosKoumarianou1977'] = {'Ιστορία του Ελληνικού Έθνους'},
['CITEREFPfau2008'] = {'Bach\'s compositions (sources)'},
['CITEREFPinkepank1973'] = {'Pinkepank diesel spotters guide 2'},
['CITEREFPlantlist2016'] = {'Plantlist'},
['CITEREFPlaten1976'] = {'Bach\'s compositions (sources)'},
['CITEREFPloumidisAlexiou1974'] = {'Ιστορία του Ελληνικού Έθνους'},
['CITEREFPmbZ'] = {'Prosopographie der mittelbyzantinischen Zeit', 'PMBZ'},
['CITEREFPolemis1968'] = {'Polemis-The Doukai'},
['CITEREFPopplewell'] = {'Popplewell-Gazetteer'},
['CITEREFPotts2018'] = template_names['ODLA'],
['CITEREFPozza1992'] = {'DBI', 'Dizionario Biografico degli Italiani'},
['CITEREFPrawer1985'] = {'Setton-A History of the Crusades'},
['CITEREFPritsak1991'] = template_names['ODB'],
['CITEREFProsopographie_der_mittelbyz._Zeit'] = {'Prosopographie der mittelbyzantinischen Zeit'},
----------< Q >----------
['CITEREFQuick2009'] = {'Quick-Stations'},
['CITEREFQuick2019'] = {'Quick-stations-5'},
----------< R >----------
['CITEREFRamaer1974'] = {'Ramaer-SteamLocosEAR'},
['CITEREFRansome-Wallis1971'] = {'Ransome-Wallis 1'},
['CITEREFRateliff2007'] = template_names['ME-ref'],
['CITEREFRavegnano2000'] = {'DBI'},
['CITEREFReed1953'] = {'RCTS-LocosGWR-2'},
['CITEREFReed1975'] = {'Reed-Streamline era'},
['CITEREFReed1997'] = {'Schubert\'s compositions (references)'},
['CITEREFReinhard_Tenberg1990'] = {'BBKL'},
['CITEREFRettinghaus2020'] = {'BDh'},
['CITEREFReynolds1921'] = {'Cite Collier\'s', 'Collier\'s'},
['CITEREFReynoldsOroszi2000'] = {'Reynolds-BO'},
['CITEREFRezakhani2018'] = template_names['ODLA'],
['CITEREFRichter-Bernburg2003'] = {'Encyclopaedia Iranica', 'Encyclopædia Iranica'},
['CITEREFRichter2018'] = {'BDh'},
['CITEREFRigo2005'] = template_names['ODB'],
['CITEREFRipleyDana1863'] = {'New American Cyclopedia'},
['CITEREFRipleyDana1864'] = {'New American Cyclopedia'},
['CITEREFRipleyDana1879'] = {'Cite AmCyc'},
['CITEREFRistaino1988'] = {'Country study'},
['CITEREFRobert_Eitner1891'] = {'Cite ADB'},
['CITEREFRobertson1983'] = {'Robertson-OriginScot'},
['CITEREFRoemer1986'] = template_names['Cam_Hist_Iran'],
['CITEREFRoltKichenside1982'] = {'Rolt-Red'},
['CITEREFRose1857'] = {'Cite Newgenbio'},
['CITEREFRosenfeld1974'] = template_names['NDB'],
['CITEREFRosenzweigBlackmar1992'] = {'Cite Central Park History'},
['CITEREFRosenzweigBlackmar1992'] = {'Cite Central Park history'},
['CITEREFRowledge1975'] = {'Rowledge-Engines of the LMS'},
['CITEREFRowledge1993'] = {'Rowledge-Irish Steam Register'},
['CITEREFRowlett'] = {'Cite rowlett'},
['CITEREFRudin1973'] = {'Rudin Walter Functional Analysis'},
['CITEREFRudin1991'] = {'Rudin Walter Functional Analysis'},
['CITEREFRunciman1951'] = {'Runciman-A History of the Crusades'},
['CITEREFRunciman1951–1954'] = {'Runciman-A History of the Crusades'},
['CITEREFRunciman1952'] = {'Runciman-A History of the Crusades'},
['CITEREFRunciman1954'] = {'Runciman-A History of the Crusades'},
['CITEREFRunciman1989'] = {'Runciman-A History of the Crusades'},
['CITEREFRussell1985'] = {'Setton-A History of the Crusades'},
['CITEREFRussellNorvig2003'] = {'Russell Norvig 2003'},
['CITEREFRybczynski2000'] = {'Rybczynski2000'},
----------< S >----------
['CITEREFSR_staff2013'] = {'Houston family tree'},
['CITEREFSadeghiTehrani2008'] = {'Encyclopaedia Islamica'},
['CITEREFSalo2004'] = template_names['ME-ref'],
['CITEREFSamiʿiMelvin-Koushki2013'] = {'Encyclopaedia Islamica'},
['CITEREFSanders1998'] = {'The Cambridge History of Egypt', 'Cambridge History of Egypt'},
['CITEREFSanders2003'] = {'Sanders-Indiana'},
['CITEREFSanders2006'] = {'Sanders-Heartland'},
['CITEREFSanders2007'] = {'Sanders-Akron'},
['CITEREFSarikakis1974'] = {'Ιστορία του Ελληνικού Έθνους'},
['CITEREFSaunders2001'] = {'Saunders-Merging Lines'},
['CITEREFSaunders2013'] = {'Saunders-Giants of the Seas'},
['CITEREFSavadaShaw1992'] = {'Country study'},
['CITEREFSchaeferWolff1999'] = {'Schaefer Wolff Topological Vector Spaces'},
['CITEREFSchafer1996'] = {'Schafer-Classic-Railroads-1'},
['CITEREFSchafer1998'] = {'Schafer-Vintage Diesel'},
['CITEREFSchafer2000'] = {'Schafer-More-Classic'},
['CITEREFSchafer2003'] = {'Schafer-Classic-Railroads-3'},
['CITEREFSchaferSolomon1997'] = {'Schafer-Pennsylvania'},
['CITEREFSchaferWelsh1997'] = {'Schafer-Classic'},
['CITEREFSchaferWelsh2002'] = {'Schafer-Streamliners'},
['CITEREFSchaferWelshHolland2001'] = {'Schafer-American passenger train'},
['CITEREFSchaff-Herzog'] = {'Schaff-Herzog'},
['CITEREFSchechter1996'] = {'Schechter Handbook of Analysis and Its Foundations'},
['CITEREFScheide1960'] = {'Bach\'s compositions (sources)'},
['CITEREFSchicht1805'] = {'Bach\'s compositions (sources)'},
['CITEREFSchilling1997'] = {'Schilling-pop-culture'},
['CITEREFSchlitter2005'] = {'MSW3 Tubulidentata'},
['CITEREFSchmieder1950'] = {'Bach\'s compositions (sources)'},
['CITEREFSchmieder1990'] = {'Bach\'s compositions (sources)'},
['CITEREFSchneider1907'] = {'Bach\'s compositions (sources)'},
['CITEREFSchneider1912'] = {'Bach\'s compositions (sources)'},
['CITEREFScholze1736'] = {'Bach\'s compositions (sources)'},
['CITEREFSchroeter1961'] = {'Schroeter-Eisenbahnen'},
['CITEREFSchroeterRamaer1993'] = {'Schroeter-Ramaer-Eisenbahnen'},
['CITEREFSchubert-online'] = {'Schubert\'s compositions (references)'},
['CITEREFSchubert1968'] = {'Schubert Topology'},
['CITEREFSchulenberg2010'] = {'Bach\'s compositions (sources)'},
['CITEREFSchulenberg2013'] = {'Bach\'s compositions (sources)'},
['CITEREFSchulze1980'] = {'Bach\'s compositions (sources)'},
['CITEREFSchulze1983'] = {'Bach\'s compositions (sources)'},
['CITEREFSchulze1984'] = {'Bach\'s compositions (sources)'},
['CITEREFSchwieterman2001'] = {'Schwieterman-Leaves-Eastern'},
['CITEREFScottNegus2011'] = {'Scott-Negus-Cellar Door'},
['CITEREFScribbins1970'] = {'Scribbins-Hiawatha'},
['CITEREFScribbins2008'] = {'Scribbins-400-2008', 'Scribbins-Remembered'},
['CITEREFSearle'] = {'Cite sslidx'},
['CITEREFSellwood1983'] = template_names['Cam_Hist_Iran'],
['CITEREFSemmensGoldfinch2000'] = {'Book-Semmens-Goldfinch-How Steam Locomotives Really Work'},
['CITEREFSemsarZand2008'] = {'Encyclopaedia Islamica'},
['CITEREFSetton1975'] = {'Setton-A History of the Crusades'},
['CITEREFSetton1976'] = {'The Papacy and the Levant'},
['CITEREFSetton1978'] = {'The Papacy and the Levant'},
['CITEREFSetton1984'] = {'The Papacy and the Levant'},
['CITEREFSettonHazard1975'] = {'Setton-A History of the Crusades'},
['CITEREFShahbazi1988'] = {'Encyclopædia Iranica'},
['CITEREFShaughnessy1997'] = {'Shaughnessy-DH'},
['CITEREFShaw1978'] = {'Shaw-RailroadAccidents'},
['CITEREFShindo2004'] = {'Kaneto-shindo-shinario-jinsei'},
['CITEREFShoarian-SattariRezaeeNegahban2008'] = {'Encyclopaedia Islamica'},
['CITEREFShoshani2005'] = {'MSW3 Shoshani'},
['CITEREFShtern2001'] = {'Springer', 'SpringerEOM'},
['CITEREFSiegele1957'] = {'Bach\'s compositions (sources)'},
['CITEREFSilke2006'] = {'O\'Donnell family tree'},
['CITEREFSimmons2005'] = {'MSW3 Chiroptera'},
['CITEREFSimon1966'] = {'Simon-Wines Australia'},
['CITEREFSimonWarner2011'] = {'Amtrak By the Numbers'},
['CITEREFSinclair1911'] = {'DCBL'},
['CITEREFSinger1905'] = {'Jewish Encyclopedia'},
['CITEREFSkjærvø2018'] = template_names['ODLA'],
['CITEREFSkoulatos1980'] = {'Les personnages byzantins de l\'Alexiade'},
['CITEREFSloan1964'] = {'Sloan1964'},
['CITEREFSmith1854'] = {'Cite DGRG'},
['CITEREFSmith1870'] = {'DGRBM', 'Cite DGRBM'},
['CITEREFSmith1873'] = {'DGRBM', 'Cite DGRBM'},
['CITEREFSmith1876'] = {'DGRBM', 'Cite DGRBM'},
['CITEREFSmith1880'] = {'DGRBM', 'Cite DGRBM'},
['CITEREFSmith2010'] = {'Smith-Cruise Ships-2010'},
['CITEREFSolomentsev2001'] = {'Springer', 'SpringerEOM'},
['CITEREFSolomon2000'] = {'Solomon-American Diesel', 'Solomon-UP'},
['CITEREFSolomon2003'] = {'Solomon-Masterpieces'},
['CITEREFSolomon2004'] = {'Solomon-Amtrak'},
['CITEREFSolomon2005'] = {'Solomon-SP-Passenger'},
['CITEREFSolomon2006'] = {'Solomon-EMD Locomotives'},
['CITEREFSolomon2011'] = {'Solomon-Modern Diesel'},
['CITEREFSolomon2014'] = {'Solomon-GE and EMD'},
['CITEREFSolomonSchafer2007'] = {'Solomon-New York Central'},
['CITEREFSolopova2009'] = template_names['ME-ref'],
['CITEREFSoustal1991'] = {'Tabula Imperii Byzantini'},
['CITEREFSoustalKoder1981'] = {'Tabula Imperii Byzantini'},
['CITEREFSpielhoff1991'] = {'Spielhoff-EL'},
['CITEREFSpitta1894'] = {'Bach\'s compositions (sources)'},
['CITEREFSpitta1899'] = {'Bach\'s compositions (sources)'},
['CITEREFSpringirth2016'] = {'Springirth-Philadelphia'},
['CITEREFStagner1993'] = {'Stagner-Transition'},
['CITEREFStansfield1999'] = {'Stansfield-AyrRenfrew'},
['CITEREFStatistical_Yearbook_of_the_Republic_of_Croatia_2015'] = {'Croatia Yearbook 2015'},
['CITEREFStaufer1993'] = {'Staufer-Pennsy_III'},
['CITEREFStauferPennypacker1962'] = {'Staufer-Pennsy'},
['CITEREFStauferPennypacker1968'] = {'Staufer-Pennsy Power II'},
['CITEREFStaunton1988'] = {'Australian Dictionary of Biography'},
['CITEREFSternFishmanTilove2006'] = {'Cite New York 2000', 'Cite NY2000', 'Cite ny2000', 'Cite NY 2000', 'Cite ny 2000'},
['CITEREFSternGilmartinMassengale1983'] = {'Cite New York 1900', 'Cite NY1900'},
['CITEREFSternGilmartinMellins1987'] = {'Cite New York 1930', 'Cite NY 1930', 'Cite NY1930', 'Cite ny1930', 'Cite ny 1930'},
['CITEREFSternMellinsFishman1995'] = {'Cite New York 1960', 'Cite NY1960', 'Cite NY 1960', 'Cite ny1960', 'Cite ny 1960'},
['CITEREFSternMellinsFishman1999'] = {'Cite New York 1880', 'Cite NY1880', 'Cite NY 1880', 'Cite ny1880', 'Cite ny 1880'},
['CITEREFStewart1974'] = {'When Steam Was King'},
['CITEREFStrachey1981'] = template_names['ME-ref'],
['CITEREFStrickland1983'] = {'Strickland Locomotive Directory'},
['CITEREFStähelin1909'] = {'Schaff-Herzog'},
['CITEREFSuetin2001'] = {'Springer', 'SpringerEOM'},
['CITEREFSundermann1988'] = {'Encyclopædia Iranica'},
['CITEREFSusanne_Schurr1992'] = {'BBKL'},
['CITEREFSusanne_Siebert1992'] = {'BBKL'},
['CITEREFSwartz1992'] = {'Swartz An Introduction to Functional Analysis'},
----------< T >----------
['CITEREFTaber1977'] = {'Taber-DLW-19th'},
['CITEREFTaberTaber1980'] = {'Taber-DLW-20th-1'},
['CITEREFTaberTaber1981'] = {'Taber-DLW-20th-2'},
['CITEREFTalbot1991'] = template_names['ODB'],
['CITEREFTalbotKazhdan1991'] = {'Oxford Dictionary of Byzantium'},
['CITEREFTer-Ghewondyan1976'] = {'The Arab Emirates in Bagratid Armenia'},
['CITEREFLondon_Gazette'] = {'London Gazette'},
['CITEREFThe_London_Gazette1950'] = {'London Gazette'},
['CITEREFThe_London_Gazette_26_September_1919'] = {'London Gazette'},
['CITEREFThielemann2012'] = {'Bach\'s compositions (sources)'},
['CITEREFThomas1970'] = {'HistoryofParliament'},
['CITEREFThomas1971'] = {'Thomas-History-VI'},
['CITEREFThrush2010'] = {'HistoryofParliament'},
['CITEREFTikhomirov2001'] = {'Springer'},
['CITEREFTittel1966'] = {'Bach\'s compositions (sources)'},
['CITEREFTodt1996'] = {'BBKL'},
['CITEREFTodtVest2014'] = {'Tabula Imperii Byzantini'},
['CITEREFTolkien1937'] = template_names['ME-ref'],
['CITEREFTolkien1954'] = template_names['ME-ref'],
['CITEREFTolkien1955'] = template_names['ME-ref'],
['CITEREFTolkien1964'] = template_names['ME-ref'],
['CITEREFTolkien1966'] = template_names['ME-ref'],
['CITEREFTolkien1977'] = template_names['ME-ref'],
['CITEREFTolkien1980'] = template_names['ME-ref'],
['CITEREFTolkien1982'] = template_names['ME-ref'],
['CITEREFTolkien1983'] = template_names['ME-ref'],
['CITEREFTolkien1984'] = template_names['ME-ref'],
['CITEREFTolkien1985'] = template_names['ME-ref'],
['CITEREFTolkien1986'] = template_names['ME-ref'],
['CITEREFTolkien1987'] = template_names['ME-ref'],
['CITEREFTolkien1988'] = template_names['ME-ref'],
['CITEREFTolkien1989'] = template_names['ME-ref'],
['CITEREFTolkien1990'] = template_names['ME-ref'],
['CITEREFTolkien1992'] = template_names['ME-ref'],
['CITEREFTolkien1993'] = template_names['ME-ref'],
['CITEREFTolkien1994'] = template_names['ME-ref'],
['CITEREFTolkien1996'] = template_names['ME-ref'],
['CITEREFTolkien1998'] = template_names['ME-ref'],
['CITEREFTolkien1999'] = template_names['ME-ref'],
['CITEREFTolkien2007'] = template_names['ME-ref'],
['CITEREFTolkienSwan1978'] = template_names['ME-ref'],
['CITEREFTolkienTolkien1992'] = template_names['ME-ref'],
['CITEREFTonks1988'] = {'Tonks ironstone'},
['CITEREFTonks1989'] = {'Tonks ironstone'},
['CITEREFTonks1992'] = {'Tonks ironstone'},
['CITEREFTopping1975'] = {'Setton-A History of the Crusades'},
['CITEREFTorri2013'] = {'Bach\'s compositions (sources)'},
['CITEREFTourret1995'] = {'Tourret-Allied Military Locomotives'},
['CITEREFTrapp1991'] = template_names['ODB'],
['CITEREFTrappBeyerSturm-Schnabl1983'] = {'Prosopographisches Lexikon der Palaiologenzeit'},
['CITEREFTrappWaltherBeyer1976'] = {'Prosopographisches Lexikon der Palaiologenzeit'},
['CITEREFTrappWaltherBeyerSturm-Schnabl1978'] = {'Prosopographisches Lexikon der Palaiologenzeit'},
['CITEREFTreadgold1988'] = {'The Byzantine Revival, 780–842'},
['CITEREFTreadgold1997'] = {'A History of the Byzantine State and Society'},
['CITEREFTrèves2006'] = {'Trèves François Topological vector spaces, distributions and kernels'},
['CITEREFTucker2009'] = {'Encyclopaedia Islamica'},
['CITEREFTurim1998'] = {'Turim-oshima'},
----------< U >----------
['CITEREFUS-NHub_Music_Deposit_31_(Klavierbüchlein_für_W._F._Bach)_at_Bach_Digital'] = {'Bach\'s compositions (sources)'},
['CITEREFUwe_Eckardt2001'] = {'BBKL'},
['CITEREFunknown_author1881'] = {'Cite ADB'},
['CITEREFunknown_author1882'] = {'Cite ADB'},
----------< V >----------
['CITEREFVandenberghen1989'] = {'Vandenberghen-SNCB12.2'},
['CITEREFVakalopoulos1975'] = {'Ιστορία του Ελληνικού Έθνους'},
['CITEREFVan_Cleve1969'] = {'Setton-A History of the Crusades'},
['CITEREFVan_Hoorickx1971'] = {'Schubert\'s compositions (references)'},
['CITEREFVan_Hoorickx_1974–1976'] = {'Schubert\'s compositions (references)'},
['CITEREFVan_Riemsdijk,_Compound_Locomotives'] = {'Book-Van Riemsdijk-Compound Locomotives'},
['CITEREFVan_Tricht2011'] = {'The Latin Renovatio of Byzantium'},
['CITEREFVarzos1984'] = {'Η Γενεαλογία των Κομνηνών', 'Varzos-Genealogy of the Komnenoi'},
['CITEREFVasiliev1935'] = {'Byzance et les Arabes'},
['CITEREFVasiliev1968'] = {'Byzance et les Arabes'},
['CITEREFVendler1997'] = {'Shakespeare sonnets bibliography'},
['CITEREFVenn1954'] = {'VennAC'},
['CITEREFVetter1713'] = {'Bach\'s compositions (sources)'},
['CITEREFVevainaCanepa2018'] = template_names['ODLA'],
['CITEREFVeysey1958'] = {'Veysey-PE-1958'},
['CITEREFVischer1912'] = {'Schaff-Herzog'},
['CITEREFVolkmer1991'] = {'Volkmer-Pennsy-Electric'},
['CITEREFvan_Leyden1956'] = {'Bach\'s compositions (sources)'},
['CITEREFvan_Lint2018'] = template_names['ODLA'],
['CITEREFvon_Prantl1879'] = {'Cite ADB'},
----------< W >----------
['CITEREFWagnerBäzoldZschechLüderitz1990'] = {'Wagner-EFA2.3.2'},
['CITEREFWalter_Asmus1966'] = template_names['NDB'],
['CITEREFWayner1972'] = {'Wayner - Car names, numbers, consists'},
['CITEREFWayner1973'] = {'Wayner-Spotter-2nd'},
['CITEREFWebb2018'] = template_names['ODLA'],
['CITEREFWegman2008'] = {'Wegman-Illustrated'},
['CITEREFWeibel1994'] = {'Weibel IHA'},
['CITEREFWeinrebHibbertKeayKeay2008'] = {'London encyclopedia'},
['CITEREFWeisbrod1991'] = {'Weisbrod-EFA1.5'},
['CITEREFWeisbrodMüllerPetznik1978'] = {'Weisbrod-EFA1.2'},
['CITEREFWellhausen1927'] = {'The Arab Kingdom and its Fall'},
['CITEREFWells1982'] = {'Accents of English'},
['CITEREFWells2008'] = {'Cite LPD'},
['CITEREFWelsh2006'] = {'Welsh-Broadway'},
['CITEREFWelsh2008'] = {'Welsh-UP'},
['CITEREFWerner_Raupp2001'] = {'BBKL'},
['CITEREFWestcott1911'] = {'DCBL'},
['CITEREFWestermayer,_Georg1882'] = {'Cite ADB'},
['CITEREFWham1997'] = {'Wham-Ayrshire'},
['CITEREFWharton1991'] = template_names['ODB'],
['CITEREFWhishaw1842'] = {'Whishaw-RailofGB-2ndEd'},
['CITEREFWhishaw1969'] = {'Whishaw-RailofGB'},
['CITEREFWhite1985'] = {'White-Passenger-1985'},
['CITEREFWhite1993'] = {'White - American railroad freight car'},
['CITEREFWhiteWillenskyLeadon2010'] = {'Cite aia5'},
['CITEREFWhitehurst1973'] = {'Whitehurst GW Engines from 1940'},
['CITEREFWhittow1996'] = {'The Making of Byzantium, 600–1025'},
['CITEREFWickman1982'] = {'Country study'},
['CITEREFWiesehöfer2018'] = template_names['ODLA'],
['CITEREFWilansky2013'] = {'Wilansky Modern Methods in Topological Vector Spaces'},
['CITEREFWillard2004'] = {'Willard General Topology'},
['CITEREFWilliams1998'] = {'Williams-Philadelphia'},
['CITEREFWilliams2003'] = {'Bach\'s compositions (sources)'},
['CITEREFWillis1750'] = {'Cite Notitia Parliamentaria'},
['CITEREFWilson2017'] = {'Wilson-Guide'},
['CITEREFWilsonFiske1891'] = {'Appletons\'', 'Cite Appletons\'', 'Appletons'},
['CITEREFWilsonFiske1892'] = {'Appletons\'', 'Cite Appletons\'', 'Appletons'},
['CITEREFWilsonFiske1900'] = {'Appletons\'', 'Cite Appletons\'', 'Appletons'},
['CITEREFWiltshire2000'] = {'Lloyd-Margaret River'},
['CITEREFWinfieldLyon2004'] = {'Winfield'},
['CITEREFWinkler1883'] = template_names['ADB'],
['CITEREFWitakowski2018'] = template_names['ODLA'],
['CITEREFWolff1969'] = {'Setton-A History of the Crusades'},
['CITEREFWollny2015'] = {'Bach\'s compositions (sources)'},
['CITEREFWood1907'] = {'Cite Nuttall'},
['CITEREFWood1907'] = {'Nuttall'},
['CITEREFWoodsKilpatrick2005'] = {'MSW3 Hystricognathi'},
['CITEREFWorden2008'] = {'Country study'},
['CITEREFWortley2010'] = {'John Skylitzes: A Synopsis of Byzantine History, 811–1057'},
['CITEREFWozencraft2005'] = {'MSW3 Carnivora'},
['CITEREFWright2000'] = {'Bach\'s compositions (sources)'},
['CITEREFWägliJacobi2010'] = {'Schienennetz Schweiz'},
----------< X >----------
----------< Y >----------
['CITEREFYarshater1986'] = template_names['Cam_Hist_Iran'],
['CITEREFYarshater2018'] = {'Encyclopædia Iranica'},
['CITEREFYenne2005'] = {'Yenne-Chiefs'},
['CITEREFYonge1990'] = {'Quail-4'},
['CITEREFYonge1994'] = {'Quail-5'},
['CITEREFYonge2002'] = {'Quail-5'},
['CITEREFYonge2008'] = {'Quail-5'},
['CITEREFYonge2016'] = {'Quail-2-2016'},
['CITEREFYongePadgettSzwenk2013'] = {'Quail-4-Paper-3rdEd'},
----------< Z >----------
['CITEREFZahn1889–1893'] = {'Bach\'s compositions (sources)'},
['CITEREFZakeri2021'] = {'Encyclopædia Iranica Online'},
['CITEREFZarrinkoubNegahban2008'] = {'Encyclopaedia Islamica'},
['CITEREFZarrinkub1975'] = template_names['Cam_Hist_Iran'],
['CITEREFZeiniWiesehöfer2018'] = template_names['ODLA'],
['CITEREFZekulich2000'] = {'Zekulich-WineWA'},
['CITEREFZimmermann2004'] = {'Zimmermann-Burlington'},
['CITEREFZimmermann2007'] = {'Zimmermann-GrandLuxe'},
['CITEREFZuccaric._1747'] = {'Bach\'s compositions (sources)'},
----------< UNSORTED >----------
['CITEREFBianquis1998'] = {'The Cambridge History of Egypt', 'Cambridge History of Egypt'},
['CITEREFRussell1987'] = {'Encyclopaedia Iranica', 'Encyclopædia Iranica'},
['CITEREFBrunner1986'] = {'Encyclopaedia Iranica', 'Encyclopædia Iranica'},
['CITEREFDandamayevShahbaziLecoq1986'] = {'Encyclopaedia Iranica', 'Encyclopædia Iranica'},
['CITEREFLev1999'] = {'Saladin in Egypt'},
['CITEREFChaumont1986'] = {'Encyclopaedia Iranica', 'Encyclopædia Iranica'},
['CITEREFSchmittBailey1986'] = {'Encyclopaedia Iranica', 'Encyclopædia Iranica'},
['CITEREFLang1983'] = template_names['Cam_Hist_Iran'],
['CITEREFBickerman1983'] = template_names['Cam_Hist_Iran'],
['CITEREFSchippmann1986'] = {'Encyclopaedia Iranica', 'Encyclopædia Iranica'},
['CITEREFShahbazi1986'] = {'Encyclopaedia Iranica', 'Encyclopædia Iranica'},
['CITEREFBoyce1986'] = {'Encyclopaedia Iranica', 'Encyclopædia Iranica'},
['CITEREFWeiskopf1993'] = {'Encyclopaedia Iranica', 'Encyclopædia Iranica'},
['CITEREFPourshariati2017'] = {'Encyclopædia Iranica Online'},
['CITEREFToumanoffChaumont1987'] = {'Encyclopaedia Iranica', 'Encyclopædia Iranica'},
['CITEREFChkeidze2001'] = {'Encyclopaedia Iranica', 'Encyclopædia Iranica'},
['CITEREFShaki1991'] = {'Encyclopaedia Iranica', 'Encyclopædia Iranica'},
['CITEREFNicol1992'] = {'The Immortal Emperor: The Life and Legend of Constantine Palaiologos, Last Emperor of the Romans'},
['CITEREFBloom2007'] = {'Cite Routledge Broadway', 'Cite Broadway Routledge', 'Cite Routledge Guide to Broadway', 'Routledge Guide to Broadway'},
['CITEREFBottoMitchell2002'] = {'Cite ATT Broadway', 'Cite At This Theatre Broadway', 'Cite Broadway At This Theatre', 'Cite Broadway ATT'},
}
--[[--------------------------< E X P O R T E D T A B L E S >------------------------------------------------
]]
return {
DNB_special_patterns = DNB_special_patterns,
DNB_template_names = template_names['DNB'],
special_patterns = special_patterns,
whitelist = whitelist,
wrapper_templates = wrapper_templates,
}
cmtmshe1yrmdmx4lc9tcibto4eiisdh
Ta̱mpi̱let:Lang-grc
10
2129
16107
2022-08-19T20:51:32Z
Kambai Akau
15
Created page with "<includeonly>{{#invoke:lang|lang_xx_inherit |code=grc |rtl=no }}</includeonly><noinclude>{{Documentation}}</noinclude>"
wikitext
text/x-wiki
<includeonly>{{#invoke:lang|lang_xx_inherit
|code=grc
|rtl=no
}}</includeonly><noinclude>{{Documentation}}</noinclude>
ewfz26ciwivhpqe8zavc83cfuspkho5
Ta̱mpi̱let:Lang-grc/doc
10
2130
16108
2022-08-19T20:53:49Z
Kambai Akau
15
Created page with "{{Documentation subpage}} {{COinS safe|n}} {{lua|Module:lang}} {{hatnote|1='''This template is for tagging [[Ancient Greek|<span style="font-size:130%;">Ancient</span> Greek]] text only!''' – for Modern Greek, see {{tlx|lang-el}} and for Medieval Greek, see {{tlx|lang-gkm}} instead. For custom labels, no labels, or other uses, see {{tlx|lang}}.}} ==Usage== {{#invoke:Lang/documentor tool|lang_xx_settings|template={{ROOTPAGENAME}}}} The primary objective of this templat..."
wikitext
text/x-wiki
{{Documentation subpage}}
{{COinS safe|n}}
{{lua|Module:lang}}
{{hatnote|1='''This template is for tagging [[Ancient Greek|<span style="font-size:130%;">Ancient</span> Greek]] text only!''' – for Modern Greek, see {{tlx|lang-el}} and for Medieval Greek, see {{tlx|lang-gkm}} instead. For custom labels, no labels, or other uses, see {{tlx|lang}}.}}
==Usage==
{{#invoke:Lang/documentor tool|lang_xx_settings|template={{ROOTPAGENAME}}}}
The primary objective of this template (and of the other {{tlx|lang}} templates) is to tag non-English text so that ''both'' human ''and'' machine readers are able to properly interpret, display and understand non-English text as part of an effort to move towards a [[semantic web]]. To that end, proper use of these templates help web browsers to choose the correct display font, text-to-speech screen readers to select a more appropriate pronunciation, search engines to better index and relate the context of the content, translation services to properly interpret the words, spell checkers to properly allow and/or require diacritics, and so on.
===Important metadata===
''Regardless of the label that is displayed in front of the text'' (i.e.: "Ancient Greek:" vs. "Greek"), this template will ''always'' wrap the supplied Ancient Greek text inside of appropriate HTML {{tag|span}} tags – that is to say that the Ancient Greek text will be tagged using the [[ISO 639-2]] and [[ISO-639-3]] language code for '''Ancient Greek''': "'''grc'''". The following example wikicode:
::{{tlc|lang-grc|ἄτομος|átomos|indivisible, an atom}}
produces the following HTML:
::<code><nowiki><a href="/wiki/Ancient_Greek" title="Ancient Greek">Ancient Greek</a>:</nowiki><br /></code>
::<code><nowiki><span </nowiki>'''lang="grc" xml:lang="grc"'''<nowiki>>ἄτομος</span></nowiki><br /></code>
::<code><nowiki><span title="Ancient Greek transliteration" class="Unicode" style="white-space:normal; text-decoration: none"><i>átomos</i></span></nowiki><br /></code>
::<code><nowiki>"indivisible, an atom"</nowiki></code>
This [[metadata]] identifies the enclosed text as Ancient Greek for the benefit of search engines, browsers, screen readers, translators, typesetters, and so on. To these "non-human readers", Ancient Greek (encoded as "grc") has important distinctions from Modern Greek (appropriately encoded using "ell", "gre" or "grk" by other {{tlx|lang}} templates). '''For that reason, this template should never be used with Modern or Medieval or other Greek text'''.
== Parameters ==
{{#lst:Template:Lang-x/doc/parameters|lang_xx_parameters}}
==Syntax==
:'''<nowiki>{{lang-grc</nowiki>'''
::'''|{{var|Ancient Greek text}}''' – using the Greek [[polytonic]] alphabet (with [[Greek diacritics|diacritics]]). ''(mandatory) – must be the 1st field''
::'''|{{var|transliterated text}}''' – the same text, [[transliterated]] using Latin alphabet (see [[Romanization of Greek]]). '' (optional) – must be the 2nd field''
::'''|{{var|translated text}}''' – in English. ''(optional) – must be the 3rd field''
:'''<nowiki>}}</nowiki>'''
==Examples==
:{| class="wikitable"
|-
! Code
! Result
|-
| {{tlf|lang-grc|ἄτομος}}
| {{lang-grc|ἄτομος}}
|-
| {{tlf|lang-grc|ἄτομος|átomos}}
| {{lang-grc|ἄτομος|átomos}}
|-
| {{tlf|lang-grc|ἄτομος|átomos|indivisible, an atom}}
| {{lang-grc|ἄτομος|átomos|indivisible, an atom}}
|-
| {{tlf|lang-grc|ἄτομος| |indivisible, an atom (lit: 'that cannot be cut')}}
| {{lang-grc|ἄτομος||indivisible, an atom (lit: 'that cannot be cut')}}
|}
==Category==
Articles using this template are automatically placed in [[:Category:Articles containing Ancient Greek-language text]].
== TemplateData ==
{{TemplateData header}}
<templatedata>
{
"params": {
"1": {
"label": "Text",
"description": "The Greek text to be displayed",
"type": "line",
"required": true
},
"links": {
"label": "Link?",
"description": "If a link to the article Greek language is included",
"type": "boolean",
"default": "yes"
},
"lit": {
"label": "Lit",
"description": "English translation of Greek text",
"type": "string"
},
"translit": {
"label": "Transliteration",
"description": "A Latin alphabet respelling of Greek text",
"type": "string"
}
},
"description": "Insert Greek text. This template should only be used with Ancient Greek."
}
</templatedata>
== See also ==
* {{tlx|lang-el}} for Modern Greek.
* {{tlx|lang-ell}} for Modern Greek explicitly stated and linked so in the label.
* {{tlx|lang-gkm}} for Medieval Greek.
* {{tlx|lang-grc-gre}} for which the Ancient Greek description is not satisfactory or limiting.
* {{tlx|lang-grc-koi}} for Koine Greek.
* {{tlx|lang|2=el}} and {{tlx|lang|2=ell}} tags Modern Greek text, without the label (for use with custom display, and other uses).
* {{tlx|lang|2=grc}} tags Ancient Greek text, without the label (for use with custom display, and other uses).
* {{tlx|transl|2=grc}} tags text as "Ancient Greek Transliteration" (has no visible effect other than said tag when pointer is placed on text).
* [[Module:Ancient Greek]] for automatic romanization: <code><nowiki>{{#invoke:Ancient Greek|translit|Ἑλληνική}}</nowiki></code> produces: {{#invoke:Ancient Greek|translit|Ἑλληνική}}
<includeonly>{{Sandbox other||
[[Category:Greek multilingual support templates|{{PAGENAME}}]]
[[Category:Lang-x templates|grc]]
}}</includeonly>
gxwq962tqfw7fb926kd0e48b7mnb404
Module:Lang/documentor tool
828
2131
16109
2022-08-19T20:56:37Z
Kambai Akau
15
Created page with "require('Module:No globals') local p = {} --[[ -------------------------< P R I V A T E _ T A G S >------------------------------------------------------ {{#invoke:Lang/documentor tool|private_tags}} Reads the override{} table in Module:Lang/data and renders a wiki table of private tags and their associated languages ]] local function private_tags (frame) local override_t = mw.loadData ('Module:Lang/data').override; -- get the override table local private_t..."
Scribunto
text/plain
require('Module:No globals')
local p = {}
--[[ -------------------------< P R I V A T E _ T A G S >------------------------------------------------------
{{#invoke:Lang/documentor tool|private_tags}}
Reads the override{} table in Module:Lang/data and renders a wiki table of private tags and their associated languages
]]
local function private_tags (frame)
local override_t = mw.loadData ('Module:Lang/data').override; -- get the override table
local private_t = {};
for tag, lang in pairs (override_t) do
if tag:find ('%-x%-') then
table.insert (private_t, table.concat ({'\n|-\n|', lang, '||', tag}))
end
end
table.sort (private_t)
table.insert (private_t, 1, '{| class="wikitable"');
table.insert (private_t, 2, '\n|+ Supported private-use IETF language tags')
table.insert (private_t, 3, '\n! Language !! Private-use tag')
return table.concat (private_t) .. '\n|}';
-- return '<pre>' .. table.concat (private_t) .. '\n|}' .. '</pre>'
--error (mw.dumpObject (private_t))
end
--[[ -------------------------< L A N G - X X _ S E T T I N G S >----------------------------------------------
{{#invoke:Lang/documentor tool|lang_xx_settings|template={{ROOTPAGENAME}}}}
Reads the content of the template and extracts the parameters from {{#invoke:Lang|...}} for display on the template's
documentation page.
]]
local function lang_xx_settings(frame)
local page = mw.title.makeTitle('Template', frame.args['template'] or frame.args[1]) -- get a page object for this page in 'Template:' namespace
if not page then
return '' -- TODO: error message?
end
local content = page:getContent() -- get unparsed content
if not page then
return '' -- TODO: error message?
end
local out = {}
local params
local style
if content:match('{{%s*#invoke:%s*[Ll]ang%s*|[^|]+|[^}]+}}') or content:match('{{%s*#invoke:%s*[Ll]ang/sandbox%s*|[^|]+|[^}]+}}') then -- if this template uses [[Module:Lang]]
params = content:match('{{%s*#invoke:%s*[Ll]ang%s*|[^|]+(|[^}]+)}}') or content:match('{{%s*#invoke:%s*[Ll]ang/sandbox%s*|[^|]+(|[^}]+)}}') -- extract the #invoke:'s parameters
if not params then
return '' -- there should be at least one or the template/module won't work TODO: error message?
end
table.insert(out, '{| class="wikitable" style="text-align: right; float: right;"\n|+settings') -- start a wikitable
for k, v in params:gmatch('%s*|%s*([^%s=]+)%s*=%s*([^%s|]+)') do -- get the parameter names (k) and values (v)
if 'label' == k then -- special case for labels because spaces and pipes
v = params:match('label%s*=%s*(%[%[[^%]]+%]%])') or params:match('label%s*=%s*([^|\n]+)') or 'missing label'
end
table.insert(out, table.concat({k, '\n|', v})) -- make rudimentary wikitable entries
end
style = content:match('lang_xx_([^|]+)')
return table.concat({table.concat(out,'\n|-\n! scope="row" | '), '\n|-\n|colspan="2"|style: ', style, '\n|-\n|}'}) -- add inter-row markup and close the wikitable and done
else
return '' -- does not use [[Module:Lang]] so abandon quietly
end
end
--[[ -------------------------- < U S E S _ M O D U L E > --------------------------
{{#invoke:Lang/documentor tool|uses_module|template={{ROOTPAGENAME}}}}
Reads the content of the template to determine if this {{lang-xx}} template uses Module:Lang.
Returns the index of the substring '{{#invoke|lang|' in the template page content if true; empty string if false.
Used in template documentation {{#if:}} parser functions.
]]
local function uses_module(frame)
local page = mw.title.makeTitle('Template', frame.args['template'] or frame.args[1]) -- get a page object for this page in 'Template:' namespace
if not page then
return '' -- TODO: error message?
end
local content = page:getContent() -- get unparsed content
if not page then
return '' -- TODO: error message?
end
return content:find('{{%s*#invoke:[Ll]ang%s*|') or '' -- return index or empty string
end
--[[ -------------------------- < S H A R E D _ C O D E > --------------------------
- Tables:
-- language_categories
-- error_messages
-- strings
- Functions:
-- make_error(message, layout, parent_category, nocat)
-- get_language_link(language_name, language_code)
-- get_see_also_section(page_title, language_name, language_code)
-- get_hidden_category_template(frame)
-- get_top_section(frame)
-- get_bottom_section(frame, language_name, see_also_section, parent_category)
]]
local language_categories = {
["LANGUAGES_SOURCES"] = "Articles with %s-language sources (%s)",
["LANGUAGES_COLLECTIVE_SOURCES"] = "Articles with %s-collective sources (%s)",
["CS1"] = "CS1 %s-language sources (%s)",
["LANGUAGE_TEXT"] = "Articles containing %s-language text",
-- old version ["LANGUAGES_COLLECTIVE_TEXT"] = "Articles with text from the %s collective",
["LANGUAGES_COLLECTIVE_TEXT"] = "Articles with text in %s",
["ENGLISH"] = "Articles containing explicitly cited %s-language text",
}
local error_assistance = " Please see [[Template talk:Lang]] for assistance."
local error_messages = {
["ASSISTANCE"] = "Please see [[Template talk:Lang]] for assistance.",
["INCORRECT_CATEGORY_TITLE"] = "[[:%s]] is not the category being populated by the {{tlx|%s}} template. The correct category is located at: [[:%s]].",
["NO_CATEGORY_TITLE_FOUND"] = "No language category found for '''%s.'''" .. error_assistance,
["NOT_VALID_CATEGORY_FORMAT"] = "'''%s''' is not a a valid category title." .. error_assistance,
["NOT_VALID_LANGUAGE_CODE"] = "[[%s]] is not a valid ISO 639 or IETF language name." .. error_assistance,
}
local strings = {
["ERROR_CATEGORY"] = "[[Category:Lang and lang-xx template errors]]",
["ERROR_SPAN"] = '<span style="font-size: 100%%; font-style: normal;" class="error">Error: %s </span>',
["PURGE_DIV"] = '<div style="font-size: x-small;">%s</div>',
["SEE_ALSO"] = "\n==See also==",
["SEE_ALSO_ITEM"] = "* [[:%s]]",
}
--[[ -------------------------- < M A K E _ E R R O R > --------------------------
Create an error message.
Does not place page in error category if args.nocat is used.
Does not categorize in parent cateogory if used in category namespace (usually for /testcases).
]]
local function make_error(message, layout, parent_category, nocat)
table.insert(layout, string.format(strings["ERROR_SPAN"], message))
if not nocat then
table.insert(layout, strings["ERROR_CATEGORY"])
end
if mw.title.getCurrentTitle().nsText == "Category" then
table.insert(layout, parent_category)
end
return table.concat(layout)
end
--[[ -------------------------- < G E T _ L A N G U A G E _ L I N K > --------------------------
Generates a language link for the correct style.
Collective languages use the name_from_tag value,
while other languages use a display name of "x-language".
]]
local function get_language_link(language_name, language_code)
local lang_module = require('Module:Lang')
-- Is a language collective?
if language_name:find('languages') then
return lang_module.name_from_tag({language_code, link = "yes"})
else
return lang_module.name_from_tag({language_code, link = "yes", label = lang_module.name_from_tag({language_code}) .. "-language"})
end
end
--[[ -------------------------- < G E T _ S E E _ A L S O _ S E C T I O N > --------------------------
Generates a consistent style See also section for
{{Category articles containing non-English-language text}} and {{Non-English-language source category}}.
If {{CS1 language sources}} is converted, it should also use it.
]]
local function get_see_also_section(page_title, language_name, language_code)
local see_also_section = {}
for _, category_name in pairs(language_categories) do
local category = mw.title.new(string.format(category_name, language_name, language_code), 14)
if category and page_title ~= category.text and category.exists then
table.insert(see_also_section, string.format(strings["SEE_ALSO_ITEM"], category.prefixedText))
end
end
table.sort(see_also_section)
table.insert(see_also_section, 1, strings["SEE_ALSO"])
if table.getn(see_also_section) == 1 then
return ""
else
return table.concat(see_also_section, "\n")
end
end
--[[ -------------------------- < G E T _ H I D D E N _ C A T E G O R Y _ T E M P L A T E > --------------------------
Generates the Template:Hidden category template.
This function is separate from the get_top_section() function
as this should be used in both error categories and valid categories.
]]
local function get_hidden_category_template(frame)
return frame:expandTemplate{title = 'Hidden category'}
end
--[[ -------------------------- < G E T _ T O P _ S E C T I O N > --------------------------
Generates a consistent top maintenance template section which consists of:
-- Template:Possibly empty category
-- Template:Purge
]]
local function get_top_section(frame)
local top_section = {}
if mw.site.stats.pagesInCategory(mw.title.getCurrentTitle().text, "all") == 0 then
table.insert(top_section, frame:expandTemplate{title = 'Possibly empty category'})
else
table.insert(top_section, frame:expandTemplate{title = 'Possibly empty category', args = {hidden=true}})
end
local purge_module = require('Module:Purge')
table.insert(top_section, string.format(strings["PURGE_DIV"], purge_module._main({"Purge page cache"})))
return table.concat(top_section, "\n\n")
end
--[[ -------------------------- < G E T _ B O T T O M _ S E C T I O N > --------------------------
Generates a consistent non-text section which consists of:
-- Template:CatAutoTOC
-- A see also section
-- {{DEFAULTSORT}}
-- Categorization in parent category
]]
local function get_bottom_section(frame, language_name, see_also_section, parent_category)
local bottom_section = {}
table.insert(bottom_section, frame:expandTemplate{title = 'CatAutoTOC'})
table.insert(bottom_section, see_also_section)
if mw.title.getCurrentTitle().nsText == "Category" then
table.insert(bottom_section, frame:preprocess{text = "{{DEFAULTSORT:" .. language_name .. "}}"})
table.insert(bottom_section, parent_category)
end
return table.concat(bottom_section, "\n\n\n")
end
--[[ -------------------------- < N O N _ E N G L I S H _ L A N G U A G E _ T E X T _ C A T E G O R Y > --------------------------
{{#invoke:Lang/documentor tool|non_english_language_text_category}}
This function implements {{Non-English-language text category}}.
]]
local non_english_language_text_strings = {
["LINE1"] = "This category contains articles with %s%s text. The primary purpose of these categories is to facilitate manual or automated checking of text in other languages.",
["LINE2"] = "This category should only be added with the %s family of templates, never explicitly.",
["LINE3"] = 'For example %s, which wraps the text with <code><span lang="%s"></code>.%s',
["LINE3_EXTRA"] = " Also available is %s which displays as %s.",
["IN_SCRIPT"] = " (in %s)",
["EXAMPLE_DEFAULT_TEXT"] = "text in %s language here",
["PARENT_CATEGORY"] = "[[Category:Articles containing non-English-language text]]",
["TEMPLATE"] = "Lang",
}
local function non_english_language_text_category(frame)
local page = mw.title.getCurrentTitle()
local args = require('Module:Arguments').getArgs(frame)
-- args.test is used for /testcases
if args.test then
page = mw.title.new(args.test)
end
-- Naming style: Articles with text from the Berber languages collective
local page_title_modified = page.text
local split_title = "([^,]+)%%s([^,]*)"
local part1 = ""
local part2 = ""
if page_title_modified:find('Articles with text in') then
-- Naming style: Category:Articles with text from Afro-Asiatic languages (as currently implemented in Module:lang)
part1, part2 = language_categories["LANGUAGES_COLLECTIVE_TEXT"]:match(split_title)
elseif page_title_modified:find('explicitly cited') then
part1, part2 = language_categories["ENGLISH"]:match(split_title)
else
-- Naming style: Category:Articles containing French-language text
part1, part2 = language_categories["LANGUAGE_TEXT"]:match(split_title)
end
page_title_modified = page_title_modified:gsub(part1, "")
page_title_modified = page_title_modified:gsub(part2, "")
local language_name = page_title_modified
local layout = {}
table.insert(layout, get_hidden_category_template(frame))
local parent_category = non_english_language_text_strings["PARENT_CATEGORY"]
if language_name == page.text then
-- Error: Category title format not supported.
return make_error(string.format(error_messages["NOT_VALID_CATEGORY_FORMAT"], page.text), layout, parent_category, args.nocat)
end
local lang_module = require('Module:Lang')
local language_code = lang_module._tag_from_name({language_name})
if language_code:find('[Ee]rror') then
-- Error: Language code not found in database.
return make_error(string.format(error_messages["NOT_VALID_LANGUAGE_CODE"], language_name), layout, parent_category, args.nocat)
end
local correct_language_category_title = lang_module._category_from_tag({language_code})
if correct_language_category_title:find('[Ee]rror') then
-- Error: No category title found for language code.
return make_error(string.format(error_messages["NO_CATEGORY_TITLE_FOUND"], language_code), layout, parent_category, args.nocat)
end
local current_category_title = page.prefixedText
if current_category_title ~= correct_language_category_title then
-- Error: The current title used is not in the supported format. TODO: can this still be reached?
return make_error(
string.format(error_messages["INCORRECT_CATEGORY_TITLE"], current_category_title, non_english_language_text_strings["LANG"], correct_language_category_title),
layout, parent_category, args.nocat)
end
table.insert(layout, get_top_section(frame))
local script_text = ""
if args.script then
script_text = string.format(non_english_language_text_strings["IN_SCRIPT"], args.script)
end
local language_link = get_language_link(language_name, language_code)
table.insert(layout, string.format(non_english_language_text_strings["LINE1"], language_link, script_text))
local lang_template = frame:expandTemplate{title = 'Tl', args = {non_english_language_text_strings["TEMPLATE"]}}
table.insert(layout, string.format(non_english_language_text_strings["LINE2"], lang_template))
local language_code_link = lang_module._name_from_tag({language_code, link="yes", label=language_code})
local example_default_text = string.format(non_english_language_text_strings["EXAMPLE_DEFAULT_TEXT"], language_name)
local example_text = args.example or example_default_text
local lang_template_example = frame:expandTemplate{title = 'Tlx', args = {non_english_language_text_strings["TEMPLATE"], language_code_link, example_text}}
local lang_x = mw.title.makeTitle(10, "Lang-" .. language_code)
local line3_extra = ""
if lang_x.exists then
local lang_x_template_example = frame:expandTemplate{title = 'Tlx', args = {lang_x.text, example_text}}
local lang_x_template = frame:expandTemplate{title = lang_x.text, args = {example_text}}
line3_extra = string.format(non_english_language_text_strings["LINE3_EXTRA"], lang_x_template_example, lang_x_template)
end
table.insert(layout, string.format(non_english_language_text_strings["LINE3"], lang_template_example, language_code, line3_extra))
local see_also_section = get_see_also_section(page.text, language_name, language_code)
local bottom = get_bottom_section(frame, language_name, see_also_section, non_english_language_text_strings["PARENT_CATEGORY"])
return table.concat(layout, "\n\n") .. bottom
end
--[[ -------------------------- < N O N _ E N G L I S H _ L A N G U A G E _ S O U R C E S _ C A T E G O R Y > --------------------------
{{#invoke:Lang/documentor tool|non_english_language_sources_category}}
This function implements {{Non-English-language sources category}}.
]]
local non_english_language_sources_strings = {
["LINE1"] = "This is a tracking category for articles that use %s to identify %s sources.",
["PARENT_CATEGORY"] = "[[Category:Articles with non-English-language sources]]",
["TEMPLATE"] = "In lang",
}
local function non_english_language_sources_category(frame)
local page = mw.title.getCurrentTitle()
local args = require('Module:Arguments').getArgs(frame)
-- args.test is used for /testcases
if args.test then
page = mw.title.new(args.test)
end
local page_title = page.text
local language_code = page_title:match('%(([%a%-]+)%)')
local language_name = require('Module:Lang')._name_from_tag({language_code})
local layout = {}
table.insert(layout, get_hidden_category_template(frame))
local parent_category = non_english_language_sources_strings["PARENT_CATEGORY"]
local correct_language_category_title = require('Module:In lang')._in_lang({language_code, ["list-cats"]="yes"})
if correct_language_category_title == "" then
-- Error: No category title found for language code.
return make_error(string.format(error_messages["NO_CATEGORY_TITLE_FOUND"], language_code), layout, parent_category, args.nocat)
end
local current_category_title = page.prefixedText
if correct_language_category_title ~= current_category_title then
-- Error: The current title used is not in the supported format.
return make_error(
string.format(error_messages["INCORRECT_CATEGORY_TITLE"], current_category_title, non_english_language_sources_strings["TEMPLATE"], correct_language_category_title),
layout, parent_category, args.nocat)
end
local language_link = get_language_link(language_name, language_code)
local text = string.format(non_english_language_sources_strings["LINE1"], frame:expandTemplate{title = 'Tlx', args = {non_english_language_sources_strings["TEMPLATE"], language_code}}, language_link)
table.insert(layout, get_top_section(frame))
table.insert(layout, text)
local see_also_section = get_see_also_section(page_title, language_name, language_code)
local bottom = get_bottom_section(frame, language_name, see_also_section, parent_category)
return table.concat(layout, "\n\n") .. bottom
end
--[[ -------------------------- < N O N _ E N G L I S H _ L A N G U A G E _ C S 1 _ S O U R C E S _ C A T E G O R Y > --------------------------
{{#invoke:Lang/documentor tool|non_english_language_cs1_sources_category}}
This function implements {{Non-English-language CS1 sources category}}.
]]
local non_english_language_cs1_text_strings = {
["LINE1"] = "This is a tracking category for [[WP:CS1|CS1 citations]] that use the parameter %s to identify a source in [[%s language|%s]]. Pages in this category should only be added by CS1 templates and [[Module:Citation/CS1]].",
["PARENT_CATEGORY"] = "[[Category:CS1 foreign language sources]]", -- #TODO change to "Articles with non-english CS1 language sources" or "CS1 non-English language sources"
}
--"This is a tracking category for [[WP:CS1|CS1 citations]] that use the parameter %s to hold a citation title that uses %s characters and contains the language prefix <code>%s:</code>. Pages in this category should only be added by CS1 templates and [[Module:Citation/CS1]].",
--"[[Category:CS1 uses foreign language script]]",
-- "This is a tracking category for [[WP:CS1|CS1 citations]] that use the parameter %s. Pages in this category should only be added by CS1 templates and [[Module:Citation/CS1]].",
-- "to identify a source in [[%s language|%s]].",
-- "to hold a citation title that uses %s characters and contains the language prefix <code>%s:</code>.",
local function non_english_language_cs1_sources_category(frame)
local page_title_object = mw.title.getCurrentTitle()
local page_title = page_title_object.text
local language_code = page_title:match('%(([%a%-]+)%)')
local language_name = require('Module:Lang')._name_from_tag({language_code})
local layout = {}
table.insert(layout, get_hidden_category_template(frame))
local see_also_section = ""
local parameter_doc = frame:expandTemplate{title = 'para', args = {"language", language_code}}
table.insert(layout, get_top_section(frame))
table.insert(layout, string.format(non_english_language_cs1_text_strings["LINE1"], parameter_doc, language_name, language_name))
local see_also_section = get_see_also_section(page_title, language_name, language_code)
local bottom = get_bottom_section(frame, language_name, see_also_section, non_english_language_cs1_text_strings["PARENT_CATEGORY"])
return table.concat(layout, "\n\n") .. bottom
end
--[[ -------------------------- < T E S T _ C A S E S _ S H A R E D _ C O D E > --------------------------
]]
local function compare_by_keys2(a, b) -- local function used by table.sort()
return a[2] < b[2] -- ascending sort by code
end
local function compare_by_keys(a, b) -- local function used by table.sort()
return a[1] < b[1] -- ascending sort by code
end
-- Used by testcases_iso_code_to_name()
local function get_language_code_table_from_code(args)
local entry = {}
--if args.override_table[args.language_code] then
-- table.insert(entry, args.override_table[args.language_code][1]) -- :gsub(' %b()$', '') fails here
--else
table.insert(entry, args.language_code)
-- end
return entry
end
-- Used by testcases_name_from_tag()
local function get_language_code_and_name_table_from_code(args)
local entry = {}
if args.override_table[args.language_code] then
table.insert(entry, args.language_code)
local language_code, _ = args.override_table[args.language_code][1]:gsub(' %b()$', '')
table.insert(entry, language_code)
else
table.insert(entry, args.language_code)
table.insert(entry, args.language_table[args.language_code])
end
return entry
end
-- Used by testcases_category_from_tag()
local function get_language_code_and_category_table_from_code(args)
local entry = {}
table.insert(entry, args.language_code)
table.insert(entry, args.test_function({args.language_code}))
return entry
end
-- Used by testcases_iso_name_to_code() and testcases_tag_from_name()
local function get_language_name_and_code_table_from_code(args)
local entry = {}
if args.override_table[args.language_code] then
table.insert(entry, args.override_table[args.language_code][1]) -- only the first name when there are multiples
table.insert(entry, args.language_code)
else
table.insert(entry, args.language_names[1]) -- only the first name when there are multiples
table.insert(entry, args.language_code)
end
return entry
end
local function get_table(table_function, language_table, length, range, iso_number, test_function)
local table_of_language_name_and_code_tables = {}
local override_table_name = "override"
if iso_number then
override_table_name = "override_" .. iso_number
end
local override_table = require("Module:Language/data/ISO_639_override/sandbox")[override_table_name]
-- For most ISO 639s.
if range then
for language_code, language_names in pairs(language_table) do
if language_code:find(range) then
table.insert(table_of_language_name_and_code_tables, table_function({
override_table = override_table,
language_code = language_code,
language_names = language_names,
test_function = test_function,
language_table = language_table
}))
end
end
-- For ISO 639-1.
elseif length then
for language_code, language_names in pairs(language_table) do
if language_code:len() == 2 then
table.insert(table_of_language_name_and_code_tables, table_function({
override_table = override_table,
language_code = language_code,
language_names = language_names,
test_function = test_function,
language_table = language_table
}))
end
end
-- For general /testcases.
else
for language_code, language_names in pairs(language_table) do
table.insert(table_of_language_name_and_code_tables, table_function({
override_table = override_table,
language_code = language_code,
language_names = language_names,
test_function = test_function,
language_table = language_table
}))
end
end
return table_of_language_name_and_code_tables
end
local function get_undabbed_table(language_list, length, range)
local undabbed_language_table = {} -- for this test, ISO 639-3 language name disambiguators must be removed; un-dabbed names go here
for language_code, language_names in pairs(language_list) do
-- For most ISO 639s.
if range then
if language_code:find(range) then
undabbed_language_table[language_code] = language_names[1]:gsub(' %b()$', '') -- undab and save only the first name; ignore all other names assigned to a code
end
-- For ISO 639-1.
elseif length then
if language_code:len() == 2 then
undabbed_language_table[language_code] = language_names[1]:gsub(' %b()$', '') -- undab and save only the first name; ignore all other names assigned to a code
end
-- For general /testcases.
else
undabbed_language_table[language_code] = language_names[1]:gsub(' %b()$', '')
end
end
return undabbed_language_table
end
--[[ -------------------------- < T E S T C A S E S _ C A T E G O R Y _ F R O M _ T A G > --------------------------
Entry point for the various category_from_tag testcases.
Build a table of test patterns where each entry in the table is a table with two members:
{"<language_code>", "<category name according to Module:Lang>"}
- "Expected" column value is the category name according to Module:Lang.
- "Actual" column value is the result of {{#invoke:Lang/sandbox|category_from_tag|<language_code>}}.
TODO: Currently not working.
]]
local function testcases_category_from_tag(self, args)
local cat_from_tag_function = require('Module:Lang')._category_from_tag
local language_tables = get_table(get_language_code_and_category_table_from_code, args.language_list, args.length, args.range, args.iso_number, cat_from_tag_function)
table.sort(language_tables, compare_by_keys)
self:preprocess_equals_preprocess_many(
'{{#invoke:Lang/sandbox|category_from_tag|', '}}', '', '',
language_tables,
{nowiki=false}
)
end
--[[ -------------------------- < T E S T C A S E S _ N A M E _ F R O M _ T A G > --------------------------
Entry point for the various name_from_tag testcases.
Build a table of test patterns where each entry in the table is a table with two members:
{"<language_code>", "<language_name>"}
- "Expected" column value is the <language_name>.
- "Actual" column value is the result of sandbox version {{#invoke:Lang/sandbox|name_from_tag|<language_code>}}.
]]
local function testcases_name_from_tag(self, args)
local undabbed_language_table = get_undabbed_table(args.language_list, args.length, args.range, nil)
local language_tables = get_table(get_language_code_and_name_table_from_code, undabbed_language_table, args.length, args.range)
table.sort(language_tables, compare_by_keys)
self:preprocess_equals_preprocess_many(
'{{#invoke:Lang/sandbox|name_from_tag|', '}}', '', '',
language_tables,
{nowiki=false}
)
end
--[[ -------------------------- < T E S T C A S E S _ T A G _ F R O M _ N A M E > --------------------------
Entry point for the various tag_from_name testcases.
Build a table of test patterns where each entry in the table is a table with two members:
{"<language_name>", "<language_code>"}
- "Expected" column value is the <language_code>.
- "Actual" column value is the result of sandbox version {{#invoke:Lang/sandbox|tag_from_name|<language_name>}}.
TODO: Currently not working.
]]
local function testcases_tag_from_name(self, args)
local language_tables = get_table(get_language_name_and_code_table_from_code, args.language_list, args.length, args.range, args.iso_number, nil)
table.sort(language_tables, compare_by_keys2)
local ordered_table = {}
table.sort(unordered_table)
for _, key in ipairs(unordered_table) do
table.insert(ordered_table, {key, reverse_table[key]})
end
self:preprocess_equals_preprocess_many(
'{{#invoke:Lang/sandbox|tag_from_name|', '}}', '', '',
language_tables,
{nowiki=false}
)
end
--[[ -------------------------- < T E S T C A S E S _ I S O _ C O D E _ T O _ N A M E > --------------------------
Entry point for the various iso_code_to_name testcases.
Build a table of test patterns where each entry in the table is a table with one member:
{"<language_code>"}
- "Expected" column value is the result of the live version of {{#invoke:ISO 639 name|iso_639_name_to_code|<language_code>}}.
- "Actual" column value is the result of sandbox version {{#invoke:ISO 639 name/sandbox|iso_639_name_to_code|<language_code>}}.
]]
local function testcases_iso_code_to_name(self, args)
local language_tables = get_table(get_language_code_table_from_code, args.language_list, args.length, args.range, args.iso_number, nil)
table.sort(language_tables, compare_by_keys)
self:preprocess_equals_preprocess_many(
'{{#invoke:ISO 639 name/sandbox|iso_639_code_to_name|link=yes|', '}}', '{{#invoke:ISO 639 name|iso_639_code_to_name|link=yes|', '}}',
language_tables,
{nowiki=false}
)
end
--[[ -------------------------- < T E S T C A S E S _ I S O _ N A M E _ T O _ C O D E > --------------------------
Entry point for the various iso_name_to_code testcases.
Build a table of test patterns where each entry in the table is a table with two members:
{"<language_name>", "<language_code>"}
- "Expected" column value is the <language_code>.
- "Actual" column is value the result of {{#invoke:ISO 639 name/sandbox|iso_639_name_to_code|<language_name>}}.
]]
local function testcases_iso_name_to_code(self, args)
local language_tables = get_table(get_language_name_and_code_table_from_code, args.language_list, args.length, args.range, args.iso_number, nil)
table.sort(language_tables, compare_by_keys2)
self:preprocess_equals_preprocess_many(
'{{#invoke:ISO 639 name/sandbox|iso_639_name_to_code|2=' .. args.iso_number .. "|", '}}', '', '',
language_tables,
{nowiki=false}
)
end
--[[ -------------------------- < E X P O R T E D _ F U N C T I O N S > --------------------------
]]
return {
lang_xx_settings = lang_xx_settings,
uses_module = uses_module,
non_english_language_text_category = non_english_language_text_category,
non_english_language_sources_category = non_english_language_sources_category,
non_english_language_cs1_sources_category = non_english_language_cs1_sources_category,
private_tags = private_tags,
-- Module:Lang testcases
testcases_category_from_tag = testcases_category_from_tag,
testcases_name_from_tag = testcases_name_from_tag,
testcases_tag_from_name = testcases_tag_from_name,
-- Module:ISO 639 name testcases
testcases_iso_code_to_name = testcases_iso_code_to_name,
testcases_iso_name_to_code = testcases_iso_name_to_code,
}
d8eaxsd8rf2euqmvlio5lx1zsfd1q9s
Module:Lang/documentor tool/doc
828
2132
16110
2022-08-19T20:57:35Z
Kambai Akau
15
Created page with "<!-- Please place categories where indicated at the bottom of this page and interwikis at Wikidata (see [[Wikipedia:Wikidata]]) --> {{High-use}} {{Lua|Module:Arguments|Module:No globals|Module:In lang|Module:Lang|Module:Purge}} '''Module:Lang/documentor tool''' implements the following templates: * {{tl|Non-English-language text category}} * {{tl|Non-English-language sources category}} * {{tl|Lang-x/doc}} The module is also used to produce the following testcases: <!--..."
wikitext
text/x-wiki
<!-- Please place categories where indicated at the bottom of this page and interwikis at Wikidata (see [[Wikipedia:Wikidata]]) -->
{{High-use}}
{{Lua|Module:Arguments|Module:No globals|Module:In lang|Module:Lang|Module:Purge}}
'''Module:Lang/documentor tool''' implements the following templates:
* {{tl|Non-English-language text category}}
* {{tl|Non-English-language sources category}}
* {{tl|Lang-x/doc}}
The module is also used to produce the following testcases:
<!-- Currently not working with /documentor tool
* {{Mlx|Lang|category_from_tag}} – [[Module:Lang/testcases/ISO 639-1 category from tag|ISO 639-1]], [[Module:Lang/testcases/ISO 639-3-1 category from tag|ISO 639-3-1]], [[Module:Lang/testcases/ISO 639-3-2 category from tag|ISO 639-3-2]], [[Module:Lang/testcases/ISO 639-3-3 category from tag|ISO 639-3-3]], and [[Module:Lang/testcases/ISO 639 deprecated and override category from tag|ISO 639 deprecated and override]]. -->
* {{Mlx|Lang|name_from_tag}} – [[Module:Lang/testcases/ISO 639-1 name from tag|ISO 639-1]], [[Module:Lang/testcases/ISO 639-3-1 name from tag|ISO 639-3-1]], [[Module:Lang/testcases/ISO 639-3-2 name from tag|ISO 639-3-2]], and [[Module:Lang/testcases/ISO 639-3-3 name from tag|ISO 639-3-3]], and [[Module:Lang/testcases/ISO 639 deprecated and override name from tag|ISO 639 deprecated and override]].
<!-- Currently not working with /documentor tool
* {{Mlx|Lang|tag_from_name}} – [[Module:Lang/testcases/ISO 639-1 tag from name|ISO 639-1]], [[Module:Lang/testcases/ISO 639-3-1 tag from name|ISO 639-3-1]], [[Module:Lang/testcases/ISO 639-3-2 tag from name|ISO 639-3-2]], [[Module:Lang/testcases/ISO 639-3-3 tag from name|ISO 639-3-3]], and [[Module:Lang/testcases/ISO 639 deprecated and override tag from name|ISO 639 deprecated and override]]. -->
* {{Mlx|ISO 639 name|name_from_code}} – [[Module:ISO 639 name/testcases/ISO 639-1 name from code|ISO 639-1]], [[Module:ISO 639 name/testcases/ISO 639-2 name from code|ISO 639-2]], [[Module:ISO 639 name/testcases/ISO 639-3-1 name from code|ISO 639-3-1]], [[Module:ISO 639 name/testcases/ISO 639-3-2 name from code|ISO 639-3-2]], [[Module:ISO 639 name/testcases/ISO 639-3-3 name from code|ISO 639-3-3]], [[Module:ISO 639 name/testcases/ISO 639-5 name from code|ISO 639-5]], and [[Module:ISO 639 name/testcases/ISO 639 deprecated name from code|ISO 639 deprecated]].
* {{Mlx|ISO 639 name|code_from_name}} – [[Module:ISO 639 name/testcases/ISO 639-1 code from name|ISO 639-1]], [[Module:ISO 639 name/testcases/ISO 639-2 code from name|ISO 639-2]], [[Module:ISO 639 name/testcases/ISO 639-3-1 code from name|ISO 639-3-1]], [[Module:ISO 639 name/testcases/ISO 639-3-2 code from name|ISO 639-3-2]], [[Module:ISO 639 name/testcases/ISO 639-3-3 code from name|ISO 639-3-3]], [[Module:ISO 639 name/testcases/ISO 639-5 code from name|ISO 639-5]], and [[Module:ISO 639 name/testcases/ISO 639 deprecated code from name|ISO 639 deprecated]].
<includeonly>{{#ifeq:{{SUBPAGENAME}}|sandbox | |
<!-- Categories below this line, please; interwikis at Wikidata -->
[[Category:Language-related modules]]
}}</includeonly>
fqe7wthr1actw2q9x04sa6cetarvtvv
Module:Lang/documentor tool/sandbox
828
2133
16111
2022-08-19T20:59:02Z
Kambai Akau
15
Created page with "require('Module:No globals') local p = {} --[[ -------------------------- < L A N G - X X _ S E T T I N G S > -------------------------- {{#invoke:Lang/documentor tool|lang_xx_settings|template={{ROOTPAGENAME}}}} Reads the content of the template and extracts the parameters from {{#invoke:Lang|...}} for display on the template's documentation page. ]] local function lang_xx_settings(frame) local page = mw.title.makeTitle('Template', frame.args['template'] or frame..."
Scribunto
text/plain
require('Module:No globals')
local p = {}
--[[ -------------------------- < L A N G - X X _ S E T T I N G S > --------------------------
{{#invoke:Lang/documentor tool|lang_xx_settings|template={{ROOTPAGENAME}}}}
Reads the content of the template and extracts the parameters from {{#invoke:Lang|...}} for display on the template's
documentation page.
]]
local function lang_xx_settings(frame)
local page = mw.title.makeTitle('Template', frame.args['template'] or frame.args[1]) -- get a page object for this page in 'Template:' namespace
if not page then
return '' -- TODO: error message?
end
local content = page:getContent() -- get unparsed content
if not page then
return '' -- TODO: error message?
end
local out = {}
local params
local style
if content:match('{{%s*#invoke:%s*[Ll]ang%s*|[^|]+|[^}]+}}') or content:match('{{%s*#invoke:%s*[Ll]ang/sandbox%s*|[^|]+|[^}]+}}') then -- if this template uses [[Module:Lang]]
params = content:match('{{%s*#invoke:%s*[Ll]ang%s*|[^|]+(|[^}]+)}}') or content:match('{{%s*#invoke:%s*[Ll]ang/sandbox%s*|[^|]+(|[^}]+)}}') -- extract the #invoke:'s parameters
if not params then
return '' -- there should be at least one or the template/module won't work TODO: error message?
end
table.insert(out, '{| class="wikitable" style="text-align: right; float: right;"\n|+settings') -- start a wikitable
for k, v in params:gmatch('%s*|%s*([^%s=]+)%s*=%s*([^%s|]+)') do -- get the parameter names (k) and values (v)
if 'label' == k then -- special case for labels because spaces and pipes
v = params:match('label%s*=%s*(%[%[[^%]]+%]%])') or params:match('label%s*=%s*([^|\n]+)') or 'missing label'
end
table.insert(out, table.concat({k, '\n|', v})) -- make rudimentary wikitable entries
end
style = content:match('lang_xx_([^|]+)')
return table.concat({table.concat(out,'\n|-\n! scope="row" | '), '\n|-\n|colspan="2"|style: ', style, '\n|-\n|}'}) -- add inter-row markup and close the wikitable and done
else
return '' -- does not use [[Module:Lang]] so abandon quietly
end
end
--[[ -------------------------- < U S E S _ M O D U L E > --------------------------
{{#invoke:Lang/documentor tool|uses_module|template={{ROOTPAGENAME}}}}
Reads the content of the template to determine if this {{lang-xx}} template uses Module:Lang.
Returns the index of the substring '{{#invoke|lang|' in the template page content if true; empty string if false.
Used in template documentation {{#if:}} parser functions.
]]
local function uses_module(frame)
local page = mw.title.makeTitle('Template', frame.args['template'] or frame.args[1]) -- get a page object for this page in 'Template:' namespace
if not page then
return '' -- TODO: error message?
end
local content = page:getContent() -- get unparsed content
if not page then
return '' -- TODO: error message?
end
return content:find('{{%s*#invoke:[Ll]ang%s*|') or '' -- return index or empty string
end
--[[ -------------------------- < S H A R E D _ C O D E > --------------------------
- Tables:
-- language_categories
-- error_messages
-- strings
- Functions:
-- make_error(message, layout, parent_category, nocat)
-- get_language_link(language_name, language_code)
-- get_see_also_section(page_title, language_name, language_code)
-- get_hidden_category_template(frame)
-- get_top_section(frame)
-- get_bottom_section(frame, language_name, see_also_section, parent_category)
]]
local language_categories = {
["LANGUAGES_SOURCES"] = "Articles with %s-language sources (%s)",
["LANGUAGES_COLLECTIVE_SOURCES"] = "Articles with %s-collective sources (%s)",
["CS1"] = "CS1 %s-language sources (%s)",
["LANGUAGE_TEXT"] = "Articles containing %s-language text",
-- old version ["LANGUAGES_COLLECTIVE_TEXT"] = "Articles with text from the %s collective",
["LANGUAGES_COLLECTIVE_TEXT"] = "Articles with text in %s",
["ENGLISH"] = "Articles containing explicitly cited %s-language text",
}
local error_assistance = " Please see [[Template talk:Lang]] for assistance."
local error_messages = {
["ASSISTANCE"] = "Please see [[Template talk:Lang]] for assistance.",
["INCORRECT_CATEGORY_TITLE"] = "[[:%s]] is not the category being populated by the {{tlx|%s}} template. The correct category is located at: [[:%s]].",
["NO_CATEGORY_TITLE_FOUND"] = "No language category found for '''%s.'''" .. error_assistance,
["NOT_VALID_CATEGORY_FORMAT"] = "'''%s''' is not a a valid category title." .. error_assistance,
["NOT_VALID_LANGUAGE_CODE"] = "[[%s]] is not a valid ISO 639 or IETF language name." .. error_assistance,
}
local strings = {
["ERROR_CATEGORY"] = "[[Category:Lang and lang-xx template errors]]",
["ERROR_SPAN"] = '<span style="font-size: 100%%; font-style: normal;" class="error">Error: %s </span>',
["PURGE_DIV"] = '<div style="font-size: x-small;">%s</div>',
["SEE_ALSO"] = "\n==See also==",
["SEE_ALSO_ITEM"] = "* [[:%s]]",
}
--[[ -------------------------- < M A K E _ E R R O R > --------------------------
Create an error message.
Does not place page in error category if args.nocat is used.
Does not categorize in parent cateogory if used in category namespace (usually for /testcases).
]]
local function make_error(message, layout, parent_category, nocat)
table.insert(layout, string.format(strings["ERROR_SPAN"], message))
if not nocat then
table.insert(layout, strings["ERROR_CATEGORY"])
end
if mw.title.getCurrentTitle().nsText == "Category" then
table.insert(layout, parent_category)
end
return table.concat(layout)
end
--[[ -------------------------- < G E T _ L A N G U A G E _ L I N K > --------------------------
Generates a language link for the correct style.
Collective languages use the name_from_tag value,
while other languages use a display name of "x-language".
]]
local function get_language_link(language_name, language_code)
local lang_module = require('Module:Lang')
-- Is a language collective?
if language_name:find('languages') then
return lang_module.name_from_tag({language_code, link = "yes"})
else
return lang_module.name_from_tag({language_code, link = "yes", label = lang_module.name_from_tag({language_code}) .. "-language"})
end
end
--[[ -------------------------- < G E T _ S E E _ A L S O _ S E C T I O N > --------------------------
Generates a consistent style See also section for
{{Category articles containing non-English-language text}} and {{Non-English-language source category}}.
If {{CS1 language sources}} is converted, it should also use it.
]]
local function get_see_also_section(page_title, language_name, language_code)
local see_also_section = {}
for _, category_name in pairs(language_categories) do
local category = mw.title.new(string.format(category_name, language_name, language_code), 14)
if category and page_title ~= category.text and category.exists then
table.insert(see_also_section, string.format(strings["SEE_ALSO_ITEM"], category.prefixedText))
end
end
table.sort(see_also_section)
table.insert(see_also_section, 1, strings["SEE_ALSO"])
if table.getn(see_also_section) == 1 then
return ""
else
return table.concat(see_also_section, "\n")
end
end
--[[ -------------------------- < G E T _ H I D D E N _ C A T E G O R Y _ T E M P L A T E > --------------------------
Generates the Template:Hidden category template.
This function is separate from the get_top_section() function
as this should be used in both error categories and valid categories.
]]
local function get_hidden_category_template(frame)
return frame:expandTemplate{title = 'Hidden category'}
end
--[[ -------------------------- < G E T _ T O P _ S E C T I O N > --------------------------
Generates a consistent top maintenance template section which consists of:
-- Template:Possibly empty category
-- Template:Purge
]]
local function get_top_section(frame)
local top_section = {}
if mw.site.stats.pagesInCategory(mw.title.getCurrentTitle().text, "all") == 0 then
table.insert(top_section, frame:expandTemplate{title = 'Possibly empty category'})
else
table.insert(top_section, frame:expandTemplate{title = 'Possibly empty category', args = {hidden=true}})
end
local purge_module = require('Module:Purge')
table.insert(top_section, string.format(strings["PURGE_DIV"], purge_module._main({"Purge page cache"})))
return table.concat(top_section, "\n\n")
end
--[[ -------------------------- < G E T _ B O T T O M _ S E C T I O N > --------------------------
Generates a consistent non-text section which consists of:
-- Template:CatAutoTOC
-- A see also section
-- {{DEFAULTSORT}}
-- Categorization in parent category
]]
local function get_bottom_section(frame, language_name, see_also_section, parent_category)
local bottom_section = {}
table.insert(bottom_section, frame:expandTemplate{title = 'CatAutoTOC'})
table.insert(bottom_section, see_also_section)
if mw.title.getCurrentTitle().nsText == "Category" then
table.insert(bottom_section, frame:preprocess{text = "{{DEFAULTSORT:" .. language_name .. "}}"})
table.insert(bottom_section, parent_category)
end
return table.concat(bottom_section, "\n\n\n")
end
--[[ -------------------------- < N O N _ E N G L I S H _ L A N G U A G E _ T E X T _ C A T E G O R Y > --------------------------
{{#invoke:Lang/documentor tool|non_english_language_text_category}}
This function implements {{Non-English-language text category}}.
]]
local non_english_language_text_strings = {
["LINE1"] = "This category contains articles with %s%s text. The primary purpose of these categories is to facilitate manual or automated checking of text in other languages.",
["LINE2"] = "This category should only be added with the %s family of templates, never explicitly.",
["LINE3"] = 'For example %s, which wraps the text with <code><span lang="%s"></code>.%s',
["LINE3_EXTRA"] = " Also available is %s which displays as %s.",
["IN_SCRIPT"] = " (in %s)",
["EXAMPLE_DEFAULT_TEXT"] = "text in %s language here",
["PARENT_CATEGORY"] = "[[Category:Articles containing non-English-language text]]",
["TEMPLATE"] = "Lang",
}
local function non_english_language_text_category(frame)
local page = mw.title.getCurrentTitle()
local args = require('Module:Arguments').getArgs(frame)
-- args.test is used for /testcases
if args.test then
page = mw.title.new(args.test)
end
-- Naming style: Articles with text from the Berber languages collective
local page_title_modified = page.text
local split_title = "([^,]+)%%s([^,]*)"
local part1 = ""
local part2 = ""
if page_title_modified:find('Articles with text in') then
-- Naming style: Category:Articles with text from Afro-Asiatic languages (as currently implemented in Module:lang)
part1, part2 = language_categories["LANGUAGES_COLLECTIVE_TEXT"]:match(split_title)
elseif page_title_modified:find('explicitly cited') then
part1, part2 = language_categories["ENGLISH"]:match(split_title)
else
-- Naming style: Category:Articles containing French-language text
part1, part2 = language_categories["LANGUAGE_TEXT"]:match(split_title)
end
page_title_modified = page_title_modified:gsub(part1, "")
page_title_modified = page_title_modified:gsub(part2, "")
local language_name = page_title_modified
local layout = {}
table.insert(layout, get_hidden_category_template(frame))
local parent_category = non_english_language_text_strings["PARENT_CATEGORY"]
if language_name == page.text then
-- Error: Category title format not supported.
return make_error(string.format(error_messages["NOT_VALID_CATEGORY_FORMAT"], page.text), layout, parent_category, args.nocat)
end
local lang_module = require('Module:Lang')
local language_code = lang_module._tag_from_name({language_name})
if language_code:find('error') then
-- Error: Language code not found in database.
return make_error(string.format(error_messages["NOT_VALID_LANGUAGE_CODE"], language_name), layout, parent_category, args.nocat)
end
local correct_language_category_title = lang_module._category_from_tag({language_code})
if correct_language_category_title:find('error') then
-- Error: No category title found for language code.
return make_error(string.format(error_messages["NO_CATEGORY_TITLE_FOUND"], language_code), layout, parent_category, args.nocat)
end
local current_category_title = page.prefixedText
if current_category_title ~= correct_language_category_title then
-- Error: The current title used is not in the supported format. TODO: can this still be reached?
return make_error(
string.format(error_messages["INCORRECT_CATEGORY_TITLE"], current_category_title, non_english_language_text_strings["LANG"], correct_language_category_title),
layout, parent_category, args.nocat)
end
table.insert(layout, get_top_section(frame))
local script_text = ""
if args.script then
script_text = string.format(non_english_language_text_strings["IN_SCRIPT"], args.script)
end
local language_link = get_language_link(language_name, language_code)
table.insert(layout, string.format(non_english_language_text_strings["LINE1"], language_link, script_text))
local lang_template = frame:expandTemplate{title = 'Tl', args = {non_english_language_text_strings["TEMPLATE"]}}
table.insert(layout, string.format(non_english_language_text_strings["LINE2"], lang_template))
local language_code_link = lang_module._name_from_tag({language_code, link="yes", label=language_code})
local example_default_text = string.format(non_english_language_text_strings["EXAMPLE_DEFAULT_TEXT"], language_name)
local example_text = args.example or example_default_text
local lang_template_example = frame:expandTemplate{title = 'Tlx', args = {non_english_language_text_strings["TEMPLATE"], language_code_link, example_text}}
local lang_x = mw.title.makeTitle(10, "Lang-" .. language_code)
local line3_extra = ""
if lang_x.exists then
local lang_x_template_example = frame:expandTemplate{title = 'Tlx', args = {lang_x.text, example_text}}
local lang_x_template = frame:expandTemplate{title = lang_x.text, args = {example_text}}
line3_extra = string.format(non_english_language_text_strings["LINE3_EXTRA"], lang_x_template_example, lang_x_template)
end
table.insert(layout, string.format(non_english_language_text_strings["LINE3"], lang_template_example, language_code, line3_extra))
local see_also_section = get_see_also_section(page.text, language_name, language_code)
local bottom = get_bottom_section(frame, language_name, see_also_section, non_english_language_text_strings["PARENT_CATEGORY"])
return table.concat(layout, "\n\n") .. bottom
end
--[[ -------------------------- < N O N _ E N G L I S H _ L A N G U A G E _ S O U R C E S _ C A T E G O R Y > --------------------------
{{#invoke:Lang/documentor tool|non_english_language_sources_category}}
This function implements {{Non-English-language sources category}}.
]]
local non_english_language_sources_strings = {
["LINE1"] = "This is a tracking category for articles that use %s to identify %s sources.",
["PARENT_CATEGORY"] = "[[Category:Articles with non-English-language sources]]",
["TEMPLATE"] = "In lang",
}
local function non_english_language_sources_category(frame)
local page = mw.title.getCurrentTitle()
local args = require('Module:Arguments').getArgs(frame)
-- args.test is used for /testcases
if args.test then
page = mw.title.new(args.test)
end
local page_title = page.text
local language_code = page_title:match('%(([%a%-]+)%)')
local language_name = require('Module:Lang')._name_from_tag({language_code})
local layout = {}
table.insert(layout, get_hidden_category_template(frame))
local parent_category = non_english_language_sources_strings["PARENT_CATEGORY"]
local correct_language_category_title = require('Module:In lang')._in_lang({language_code, ["list-cats"]="yes"})
if correct_language_category_title == "" then
-- Error: No category title found for language code.
return make_error(string.format(error_messages["NO_CATEGORY_TITLE_FOUND"], language_code), layout, parent_category, args.nocat)
end
local current_category_title = page.prefixedText
if correct_language_category_title ~= current_category_title then
-- Error: The current title used is not in the supported format.
return make_error(
string.format(error_messages["INCORRECT_CATEGORY_TITLE"], current_category_title, non_english_language_sources_strings["TEMPLATE"], correct_language_category_title),
layout, parent_category, args.nocat)
end
local language_link = get_language_link(language_name, language_code)
local text = string.format(non_english_language_sources_strings["LINE1"], frame:expandTemplate{title = 'Tlx', args = {non_english_language_sources_strings["TEMPLATE"], language_code}}, language_link)
table.insert(layout, get_top_section(frame))
table.insert(layout, text)
local see_also_section = get_see_also_section(page_title, language_name, language_code)
local bottom = get_bottom_section(frame, language_name, see_also_section, parent_category)
return table.concat(layout, "\n\n") .. bottom
end
--[[ -------------------------- < N O N _ E N G L I S H _ L A N G U A G E _ C S 1 _ S O U R C E S _ C A T E G O R Y > --------------------------
{{#invoke:Lang/documentor tool|non_english_language_cs1_sources_category}}
This function implements {{Non-English-language CS1 sources category}}.
]]
local non_english_language_cs1_text_strings = {
["LINE1"] = "This is a tracking category for [[WP:CS1|CS1 citations]] that use the parameter %s to identify a source in [[%s language|%s]]. Pages in this category should only be added by CS1 templates and [[Module:Citation/CS1]].",
["PARENT_CATEGORY"] = "[[Category:CS1 foreign language sources]]", -- #TODO change to "Articles with non-english CS1 language sources" or "CS1 non-English language sources"
}
--"This is a tracking category for [[WP:CS1|CS1 citations]] that use the parameter %s to hold a citation title that uses %s characters and contains the language prefix <code>%s:</code>. Pages in this category should only be added by CS1 templates and [[Module:Citation/CS1]].",
--"[[Category:CS1 uses foreign language script]]",
-- "This is a tracking category for [[WP:CS1|CS1 citations]] that use the parameter %s. Pages in this category should only be added by CS1 templates and [[Module:Citation/CS1]].",
-- "to identify a source in [[%s language|%s]].",
-- "to hold a citation title that uses %s characters and contains the language prefix <code>%s:</code>.",
local function non_english_language_cs1_sources_category(frame)
local page_title_object = mw.title.getCurrentTitle()
local page_title = page_title_object.text
local language_code = page_title:match('%(([%a%-]+)%)')
local language_name = require('Module:Lang')._name_from_tag({language_code})
local layout = {}
table.insert(layout, get_hidden_category_template(frame))
local see_also_section = ""
local parameter_doc = frame:expandTemplate{title = 'para', args = {"language", language_code}}
table.insert(layout, get_top_section(frame))
table.insert(layout, string.format(non_english_language_cs1_text_strings["LINE1"], parameter_doc, language_name, language_name))
local see_also_section = get_see_also_section(page_title, language_name, language_code)
local bottom = get_bottom_section(frame, language_name, see_also_section, non_english_language_cs1_text_strings["PARENT_CATEGORY"])
return table.concat(layout, "\n\n") .. bottom
end
--[[ -------------------------- < T E S T _ C A S E S _ S H A R E D _ C O D E > --------------------------
]]
local function compare_by_keys2(a, b) -- local function used by table.sort()
return a[2] < b[2] -- ascending sort by code
end
local function compare_by_keys(a, b) -- local function used by table.sort()
return a[1] < b[1] -- ascending sort by code
end
-- Used by testcases_iso_code_to_name()
local function get_language_code_table_from_code(args)
local entry = {}
--if args.override_table[args.language_code] then
-- table.insert(entry, args.override_table[args.language_code][1]) -- :gsub(' %b()$', '') fails here
--else
table.insert(entry, args.language_code)
-- end
return entry
end
-- Used by testcases_name_from_tag()
local function get_language_code_and_name_table_from_code(args)
local entry = {}
if args.override_table[args.language_code] then
table.insert(entry, args.language_code)
local language_code, _ = args.override_table[args.language_code][1]:gsub(' %b()$', '')
table.insert(entry, language_code)
else
table.insert(entry, args.language_code)
table.insert(entry, args.language_table[args.language_code])
end
return entry
end
-- Used by testcases_category_from_tag()
local function get_language_code_and_category_table_from_code(args)
local entry = {}
table.insert(entry, args.language_code)
table.insert(entry, args.test_function({args.language_code}))
return entry
end
-- Used by testcases_iso_name_to_code() and testcases_tag_from_name()
local function get_language_name_and_code_table_from_code(args)
local entry = {}
if args.override_table[args.language_code] then
table.insert(entry, args.override_table[args.language_code][1]) -- only the first name when there are multiples
table.insert(entry, args.language_code)
else
table.insert(entry, args.language_names[1]) -- only the first name when there are multiples
table.insert(entry, args.language_code)
end
return entry
end
local function get_table(table_function, language_table, length, range, iso_number, test_function)
local table_of_language_name_and_code_tables = {}
local override_table_name = "override"
if iso_number then
override_table_name = "override_" .. iso_number
end
local override_table = require("Module:Language/data/ISO_639_override/sandbox")[override_table_name]
-- For most ISO 639s.
if range then
for language_code, language_names in pairs(language_table) do
if language_code:find(range) then
table.insert(table_of_language_name_and_code_tables, table_function({
override_table = override_table,
language_code = language_code,
language_names = language_names,
test_function = test_function,
language_table = language_table
}))
end
end
-- For ISO 639-1.
elseif length then
for language_code, language_names in pairs(language_table) do
if language_code:len() == 2 then
table.insert(table_of_language_name_and_code_tables, table_function({
override_table = override_table,
language_code = language_code,
language_names = language_names,
test_function = test_function,
language_table = language_table
}))
end
end
-- For general /testcases.
else
for language_code, language_names in pairs(language_table) do
table.insert(table_of_language_name_and_code_tables, table_function({
override_table = override_table,
language_code = language_code,
language_names = language_names,
test_function = test_function,
language_table = language_table
}))
end
end
return table_of_language_name_and_code_tables
end
local function get_undabbed_table(language_list, length, range)
local undabbed_language_table = {} -- for this test, ISO 639-3 language name disambiguators must be removed; un-dabbed names go here
for language_code, language_names in pairs(language_list) do
-- For most ISO 639s.
if range then
if language_code:find(range) then
undabbed_language_table[language_code] = language_names[1]:gsub(' %b()$', '') -- undab and save only the first name; ignore all other names assigned to a code
end
-- For ISO 639-1.
elseif length then
if language_code:len() == 2 then
undabbed_language_table[language_code] = language_names[1]:gsub(' %b()$', '') -- undab and save only the first name; ignore all other names assigned to a code
end
-- For general /testcases.
else
undabbed_language_table[language_code] = language_names[1]:gsub(' %b()$', '')
end
end
return undabbed_language_table
end
--[[ -------------------------- < T E S T C A S E S _ C A T E G O R Y _ F R O M _ T A G > --------------------------
Entry point for the various category_from_tag testcases.
Build a table of test patterns where each entry in the table is a table with two members:
{"<language_code>", "<category name according to Module:Lang>"}
- "Expected" column value is the category name according to Module:Lang.
- "Actual" column value is the result of {{#invoke:Lang/sandbox|category_from_tag|<language_code>}}.
TODO: Currently not working.
]]
local function testcases_category_from_tag(self, args)
local cat_from_tag_function = require('Module:Lang')._category_from_tag
local language_tables = get_table(get_language_code_and_category_table_from_code, args.language_list, args.length, args.range, args.iso_number, cat_from_tag_function)
table.sort(language_tables, compare_by_keys)
self:preprocess_equals_preprocess_many(
'{{#invoke:Lang/sandbox|category_from_tag|', '}}', '', '',
language_tables,
{nowiki=false}
)
end
--[[ -------------------------- < T E S T C A S E S _ N A M E _ F R O M _ T A G > --------------------------
Entry point for the various name_from_tag testcases.
Build a table of test patterns where each entry in the table is a table with two members:
{"<language_code>", "<language_name>"}
- "Expected" column value is the <language_name>.
- "Actual" column value is the result of sandbox version {{#invoke:Lang/sandbox|name_from_tag|<language_code>}}.
]]
local function testcases_name_from_tag(self, args)
local undabbed_language_table = get_undabbed_table(args.language_list, args.length, args.range, nil)
local language_tables = get_table(get_language_code_and_name_table_from_code, undabbed_language_table, args.length, args.range)
table.sort(language_tables, compare_by_keys)
self:preprocess_equals_preprocess_many(
'{{#invoke:Lang/sandbox|name_from_tag|', '}}', '', '',
language_tables,
{nowiki=false}
)
end
--[[ -------------------------- < T E S T C A S E S _ T A G _ F R O M _ N A M E > --------------------------
Entry point for the various tag_from_name testcases.
Build a table of test patterns where each entry in the table is a table with two members:
{"<language_name>", "<language_code>"}
- "Expected" column value is the <language_code>.
- "Actual" column value is the result of sandbox version {{#invoke:Lang/sandbox|tag_from_name|<language_name>}}.
TODO: Currently not working.
]]
local function testcases_tag_from_name(self, args)
local language_tables = get_table(get_language_name_and_code_table_from_code, args.language_list, args.length, args.range, args.iso_number, nil)
table.sort(language_tables, compare_by_keys2)
local ordered_table = {}
table.sort(unordered_table)
for _, key in ipairs(unordered_table) do
table.insert(ordered_table, {key, reverse_table[key]})
end
self:preprocess_equals_preprocess_many(
'{{#invoke:Lang/sandbox|tag_from_name|', '}}', '', '',
language_tables,
{nowiki=false}
)
end
--[[ -------------------------- < T E S T C A S E S _ I S O _ C O D E _ T O _ N A M E > --------------------------
Entry point for the various iso_code_to_name testcases.
Build a table of test patterns where each entry in the table is a table with one member:
{"<language_code>"}
- "Expected" column value is the result of the live version of {{#invoke:ISO 639 name|iso_639_name_to_code|<language_code>}}.
- "Actual" column value is the result of sandbox version {{#invoke:ISO 639 name/sandbox|iso_639_name_to_code|<language_code>}}.
]]
local function testcases_iso_code_to_name(self, args)
local language_tables = get_table(get_language_code_table_from_code, args.language_list, args.length, args.range, args.iso_number, nil)
table.sort(language_tables, compare_by_keys)
self:preprocess_equals_preprocess_many(
'{{#invoke:ISO 639 name/sandbox|iso_639_code_to_name|link=yes|', '}}', '{{#invoke:ISO 639 name|iso_639_code_to_name|link=yes|', '}}',
language_tables,
{nowiki=false}
)
end
--[[ -------------------------- < T E S T C A S E S _ I S O _ N A M E _ T O _ C O D E > --------------------------
Entry point for the various iso_name_to_code testcases.
Build a table of test patterns where each entry in the table is a table with two members:
{"<language_name>", "<language_code>"}
- "Expected" column value is the <language_code>.
- "Actual" column is value the result of {{#invoke:ISO 639 name/sandbox|iso_639_name_to_code|<language_name>}}.
]]
local function testcases_iso_name_to_code(self, args)
local language_tables = get_table(get_language_name_and_code_table_from_code, args.language_list, args.length, args.range, args.iso_number, nil)
table.sort(language_tables, compare_by_keys2)
self:preprocess_equals_preprocess_many(
'{{#invoke:ISO 639 name/sandbox|iso_639_name_to_code|2=' .. args.iso_number .. "|", '}}', '', '',
language_tables,
{nowiki=false}
)
end
--[[ -------------------------- < E X P O R T E D _ F U N C T I O N S > --------------------------
]]
return {
lang_xx_settings = lang_xx_settings,
uses_module = uses_module,
non_english_language_text_category = non_english_language_text_category,
non_english_language_sources_category = non_english_language_sources_category,
non_english_language_cs1_sources_category = non_english_language_cs1_sources_category,
-- Module:Lang testcases
testcases_category_from_tag = testcases_category_from_tag,
testcases_name_from_tag = testcases_name_from_tag,
testcases_tag_from_name = testcases_tag_from_name,
-- Module:ISO 639 name testcases
testcases_iso_code_to_name = testcases_iso_code_to_name,
testcases_iso_name_to_code = testcases_iso_name_to_code,
}
4umkanmp8itqmvfcpee6x4ms3hin22f
Module:Lang/documentor tool/testcases
828
2134
16112
2022-08-19T21:00:28Z
Kambai Akau
15
Created page with "-- Unit tests for [[Module:Lang/documentor tool]]. Click talk page to run tests. local p = require('Module:UnitTests') function p:test_01_non_english_language_text_category_valid() self:preprocess_equals_preprocess_many('{{#invoke:Lang/documentor_tool/sandbox|non_english_language_text_category|', '}}', '{{#invoke:Lang/documentor_tool|non_english_language_text_category|', '}}', { {'test=Category:Articles containing German-language text'}, {'test=Category:Articl..."
Scribunto
text/plain
-- Unit tests for [[Module:Lang/documentor tool]]. Click talk page to run tests.
local p = require('Module:UnitTests')
function p:test_01_non_english_language_text_category_valid()
self:preprocess_equals_preprocess_many('{{#invoke:Lang/documentor_tool/sandbox|non_english_language_text_category|', '}}', '{{#invoke:Lang/documentor_tool|non_english_language_text_category|', '}}',
{
{'test=Category:Articles containing German-language text'},
{'test=Category:Articles with text in Berber languages'},
{'test=Category:Articles containing explicitly cited English-language text'},
}, {stripmarker=true})
end
function p:test_02_non_english_language_text_category_optional_parameters()
self:preprocess_equals_preprocess_many('{{#invoke:Lang/documentor_tool/sandbox|non_english_language_text_category|', '}}', '{{#invoke:Lang/documentor_tool|non_english_language_text_category|', '}}',
{
{'test=Category:Articles containing German-language text|script=Ogham'},
{'test=Category:Articles containing German-language text|example=test example text'},
{'test=Category:Articles containing German-language text|script=Ogham|example=test example text'},
}, {stripmarker=true})
end
function p:test_03_non_english_language_text_category_errors()
self:preprocess_equals_preprocess_many('{{#invoke:Lang/documentor_tool/sandbox|non_english_language_text_category|nocat=yes|', '}}', '{{#invoke:Lang/documentor_tool|non_english_language_text_category|nocat=yes|', '}}',
{
{'test=Category:Articles with text in Artificial languages'},
{'test=Category:Articles with text from the South Slavic languages collective'},
}, {stripmarker=true})
end
function p:test_04_non_english_language_sources_category_valid()
self:preprocess_equals_preprocess_many('{{#invoke:Lang/documentor_tool/sandbox|non_english_language_sources_category|', '}}', '{{#invoke:Lang/documentor_tool|non_english_language_sources_category|', '}}',
{
{'test=Category:Articles with German-language sources (de)'},
{'test=Category:Articles with Berber languages-collective sources (ber)'},
}, {stripmarker=true})
end
function p:test_05_non_english_language_sources_category_errors()
self:preprocess_equals_preprocess_many('{{#invoke:Lang/documentor_tool/sandbox|non_english_language_sources_category|nocat=yes|', '}}', '{{#invoke:Lang/documentor_tool|non_english_language_sources_category|nocat=yes|', '}}',
{
{'test=Category:Articles with German-language sources (gem)'},
{'test=Category:Articles with Germanic languages-collective sources (zzzz)'},
}, {stripmarker=true})
end
return p
86a9kndh2wia4hvlro44iznimuh2hxz
Module:Purge
828
2135
16113
2022-08-19T21:01:34Z
Kambai Akau
15
Created page with "-- This module implements [[Template:Purge]]. local p = {} local function makeUrlLink(url, display) return string.format('[%s %s]', url, display) end function p._main(args) -- Make the URL local url do local title if args.page then title = mw.title.new(args.page) if not title then error(string.format( "'%s' is not a valid page name", args.page ), 2) end else title = mw.title.getCurrentTitle() end if args.anchor then title..."
Scribunto
text/plain
-- This module implements [[Template:Purge]].
local p = {}
local function makeUrlLink(url, display)
return string.format('[%s %s]', url, display)
end
function p._main(args)
-- Make the URL
local url
do
local title
if args.page then
title = mw.title.new(args.page)
if not title then
error(string.format(
"'%s' is not a valid page name",
args.page
), 2)
end
else
title = mw.title.getCurrentTitle()
end
if args.anchor then
title.fragment = args.anchor
end
url = title:fullUrl{action = 'purge'}
end
-- Make the display
local display
if args.page then
display = args[1] or 'Purge'
else
display = mw.html.create('span')
display
:attr('title', 'Purge this page')
:wikitext(args[1] or 'Purge')
display = tostring(display)
end
-- Output the HTML
local root = mw.html.create('span')
root
:addClass('noprint')
:addClass('plainlinks')
:addClass('purgelink')
:wikitext(makeUrlLink(url, display))
return tostring(root)
end
function p.main(frame)
local args = frame:getParent().args
return p._main(args)
end
return p
7zn4wpraqp0o2q6ovvb2j9zno19p3zp
Module:Purge/doc
828
2136
16114
2022-08-19T21:02:09Z
Kambai Akau
15
Created page with "{{Module rating|protected}} {{used in system}} This module produces a link to [[WP:PURGE|purge a page's cache]]. This is usually the current page, but can be another page."
wikitext
text/x-wiki
{{Module rating|protected}}
{{used in system}}
This module produces a link to [[WP:PURGE|purge a page's cache]]. This is usually the current page, but can be another page.
1w4h9ry2c069erwtscuee4ollpfcw1n
Module:Purge/sandbox
828
2137
16115
2022-08-19T21:02:45Z
Kambai Akau
15
Created page with "-- This module implements [[Template:Purge]]. local p = {} local function makeUrlLink(url, display) return string.format('[%s %s]', url, display) end function p._main(args) -- Make the URL local url do local title if args.page then title = mw.title.new(args.page) if not title then error(string.format( "'%s' is not a valid page name", args.page ), 2) end else title = mw.title.getCurrentTitle() end if args.anchor then title..."
Scribunto
text/plain
-- This module implements [[Template:Purge]].
local p = {}
local function makeUrlLink(url, display)
return string.format('[%s %s]', url, display)
end
function p._main(args)
-- Make the URL
local url
do
local title
if args.page then
title = mw.title.new(args.page)
if not title then
error(string.format(
"'%s' is not a valid page name",
args.page
), 2)
end
else
title = mw.title.getCurrentTitle()
end
if args.anchor then
title.fragment = args.anchor
end
url = title:fullUrl{action = 'purge'}
end
-- Make the display
local display
if args.page then
display = args[1] or 'Purge'
else
display = mw.html.create('span')
display
:attr('title', 'Purge this page')
:wikitext(args[1] or 'Purge')
display = tostring(display)
end
-- Output the HTML
local root = mw.html.create('span')
root
:addClass('noprint')
:addClass('plainlinks')
:addClass('purgelink')
:wikitext(makeUrlLink(url, display))
return tostring(root)
end
function p.main(frame)
local args = frame:getParent().args
return p._main(args)
end
return p
7zn4wpraqp0o2q6ovvb2j9zno19p3zp
Ta̱mpi̱let:Mlx
10
2138
16116
2022-08-19T21:04:27Z
Kambai Akau
15
Created page with "<code>{{{{{{{|safesubst:}}}#invoke:Separated entries|main|[[Module:{{{1}}}{{{section|}}}|#invoke:{{{1}}}]]|{{{2|''function''}}}|separator=|}}}}</code><noinclude> {{documentation}} <!-- Categories go on the /doc subpage and interwikis go on Wikidata. --> </noinclude>"
wikitext
text/x-wiki
<code>{{{{{{{|safesubst:}}}#invoke:Separated entries|main|[[Module:{{{1}}}{{{section|}}}|#invoke:{{{1}}}]]|{{{2|''function''}}}|separator=|}}}}</code><noinclude>
{{documentation}}
<!-- Categories go on the /doc subpage and interwikis go on Wikidata. -->
</noinclude>
i44jb9ksi1r2b1r01x9ixutr7h4x0fv
Ta̱mpi̱let:Mlx/doc
10
2139
16117
2022-08-19T21:06:17Z
Kambai Akau
15
Created page with "{{Documentation subpage}} {{lua|Module:Separated entries}} {{lt|mlx}} is used to display a module name as a link surrounded by braces with the {{((}}#invoke{{))}} [[WP:PF|parser function]], thus showing the module name as code rather than actually invoking it. Its primary use is in instruction and documentation where it is used to refer to a module by name without invoking it. It is also supports the definition of a function and parameters. == Examples == {| class="wi..."
wikitext
text/x-wiki
{{Documentation subpage}}
{{lua|Module:Separated entries}}
{{lt|mlx}} is used to display a module name as a link surrounded by braces with the {{((}}#invoke{{))}} [[WP:PF|parser function]], thus showing the module name as code rather than actually invoking it. Its primary use is in instruction and documentation where it is used to refer to a module by name without invoking it. It is also supports the definition of a function and parameters.
== Examples ==
{| class="wikitable"
! Code
! Result
! Notes
|-
| <code><nowiki>{{mlx|Example}}</nowiki></code>
| {{mlx|Example}}
| Usage without function name. This does not produce a usable invocation.
|-
| <code><nowiki>{{mlx|Example|hello}}</nowiki></code>
| {{mlx|Example|hello}}
| Usage with a function name.
|-
| <code><nowiki>{{mlx|Example|count_fruits|4=bananas=5|5=apples=10}}</nowiki></code>
| {{mlx|Example|count_fruits|4=bananas=5|5=apples=10}}
| Usage with a function name and parameters.
|-
| <code><nowiki>{{mlx|Example|count_fruits|bananas{{=}}5|apples{{=}}10}}</nowiki></code>
| {{mlx|Example|count_fruits|bananas{{=}}5|apples{{=}}10}}
| Usage with a function name and parameters, using {{((}}={{))}}.
|}
== TemplateData ==
{{TemplateData header}}
<templatedata>{
"description": "This template displays a module name as a link surrounded by braces with the {{#invoke}} parser function, thus showing how the module name would be used in code. Its primary use is in instruction and documentation.",
"params": {
"1": {
"label": "module name",
"description": "the module name without the namespace prefix “Module:”, which is added automatically",
"type": "string",
"required": true
},
"2": {
"label": "function name",
"description": "the function name within the module to call",
"type": "string",
"required": true
},
"3": {
"label": "parameter 1",
"description": "the name (and value) of the first parameter, use {{=}} to add an equal sign",
"type": "string"
},
"4": {
"label": "parameter 2",
"description": "the name (and value) of the second parameter, use {{=}} to add an equal sign",
"type": "string"
},
"5": {
"label": "parameter 3",
"description": "the name (and value) of the third parameter, use {{=}} to add an equal sign",
"type": "string"
}
}}</templatedata>
== See also ==
* {{tl|ml}} - Similar function but not surrounded in {{tag|code}} tags.
* {{tl|tlx}} - A version of this template for templates instead of modules.
{{Template:Template-linking templates}}
<includeonly>{{Sandbox other||
[[Category:Internal module-link templates]]
}}</includeonly>
lc1ioxg24klw2ptnnlr44c5hmsegtzu
Module:Separated entries
828
2140
16118
2022-08-19T21:07:03Z
Kambai Akau
15
Created page with "-- This module takes positional parameters as input and concatenates them with -- an optional separator. The final separator (the "conjunction") can be -- specified independently, enabling natural-language lists like -- "foo, bar, baz and qux". The starting parameter can also be specified. local compressSparseArray = require('Module:TableTools').compressSparseArray local p = {} function p._main(args) local separator = args.separator -- Decode (convert to Unicode) HT..."
Scribunto
text/plain
-- This module takes positional parameters as input and concatenates them with
-- an optional separator. The final separator (the "conjunction") can be
-- specified independently, enabling natural-language lists like
-- "foo, bar, baz and qux". The starting parameter can also be specified.
local compressSparseArray = require('Module:TableTools').compressSparseArray
local p = {}
function p._main(args)
local separator = args.separator
-- Decode (convert to Unicode) HTML escape sequences, such as " " for space.
and mw.text.decode(args.separator) or ''
local conjunction = args.conjunction and mw.text.decode(args.conjunction) or separator
-- Discard values before the starting parameter.
local start = tonumber(args.start)
if start then
for i = 1, start - 1 do args[i] = nil end
end
-- Discard named parameters.
local values = compressSparseArray(args)
return mw.text.listToText(values, separator, conjunction)
end
local function makeInvokeFunction(separator, conjunction, first)
return function (frame)
local args = require('Module:Arguments').getArgs(frame)
args.separator = separator or args.separator
args.conjunction = conjunction or args.conjunction
args.first = first or args.first
return p._main(args)
end
end
p.main = makeInvokeFunction()
p.br = makeInvokeFunction('<br />')
p.comma = makeInvokeFunction(mw.message.new('comma-separator'):plain())
return p
r3n53qz4zycs3vxyo5ms9qjo1jm32bp
Module:Separated entries/doc
828
2141
16119
2022-08-19T21:08:17Z
Kambai Akau
15
Created page with "{{Module other|{{Module rating |p}}}} {{high-risk| approximately 2050000 }} {{Lua|Module:Arguments|Module:TableTools}} <!-- Please place template categories where indicated at the bottom of this page --> == Usage == [[Module:Separated entries]] serves as a template front-end to <code>[[mw:Extension:Scribunto/Lua reference manual#mw.text.listToText|mw.text.listToText]]</code>. It takes [[variadic function|any number]] of positional parameters and concatenation|pieces t..."
wikitext
text/x-wiki
{{Module other|{{Module rating |p}}}}
{{high-risk| approximately 2050000 }}
{{Lua|Module:Arguments|Module:TableTools}}
<!-- Please place template categories where indicated at the bottom of this page -->
== Usage ==
[[Module:Separated entries]] serves as a template front-end to <code>[[mw:Extension:Scribunto/Lua reference manual#mw.text.listToText|mw.text.listToText]]</code>. It takes [[variadic function|any number]] of positional parameters and [[concatenation|pieces them together]] with {{para|separator}}. {{para|conjunction}} can be optionally defined if a different separator is desired between the last and second last items. The starting positional parameter can be specified using {{para|start}}. Leading and trailing whitespace is stripped. To add deliberate leading and trailing whitespace, use the HTML escape code <code>&#32;</code> for a space and <code>&#10;</code> for a "newline". Separated entries does not raise any errors by design.
<nowiki>{{</nowiki>#invoke:{{BASEPAGENAME}}|''main''|separator=...}}
== See also ==
* {{tl|Enum}}
<includeonly>{{Sandbox other||
<!-- Template Categories below this line, please -->
[[Category:Wikipedia metatemplates]]
}}</includeonly>
0u3911zcuzmv2w9pxwuu5e3o6al037a
Module:Separated entries/sandbox
828
2142
16120
2022-08-19T21:09:07Z
Kambai Akau
15
Created page with "-- This module takes positional parameters as input and concatenates them with -- an optional separator. The final separator (the "conjunction") can be -- specified independently, enabling natural-language lists like -- "foo, bar, baz and qux". The starting parameter can also be specified. local compressSparseArray = require('Module:TableTools').compressSparseArray local p = {} function p._main(args) local separator = args.separator -- Decode (convert to Unicode) HT..."
Scribunto
text/plain
-- This module takes positional parameters as input and concatenates them with
-- an optional separator. The final separator (the "conjunction") can be
-- specified independently, enabling natural-language lists like
-- "foo, bar, baz and qux". The starting parameter can also be specified.
local compressSparseArray = require('Module:TableTools').compressSparseArray
local p = {}
function p._main(args)
local separator = args.separator
-- Decode (convert to Unicode) HTML escape sequences, such as " " for space.
and mw.text.decode(args.separator) or ''
local conjunction = args.conjunction and mw.text.decode(args.conjunction) or separator
-- Discard values before the starting parameter.
local start = tonumber(args.start)
if start then
for i = 1, start - 1 do args[i] = nil end
end
-- Discard named parameters.
local values = compressSparseArray(args)
return mw.text.listToText(values, separator, conjunction)
end
local function makeInvokeFunction(separator, conjunction, first)
return function (frame)
local args = require('Module:Arguments').getArgs(frame)
args.separator = separator or args.separator
args.conjunction = conjunction or args.conjunction
args.first = first or args.first
return p._main(args)
end
end
p.main = makeInvokeFunction()
p.br = makeInvokeFunction('<br />')
p.comma = makeInvokeFunction(mw.message.new('comma-separator'):plain())
return p
r3n53qz4zycs3vxyo5ms9qjo1jm32bp
Module:Separated entries/testcases
828
2143
16121
2022-08-19T21:10:01Z
Kambai Akau
15
Created page with "-- Unit tests for [[Module:Separated entries]]. Click talk page to run tests. local p = require('Module:UnitTests') function p:test_main() self:preprocess_equals_many('{{#invoke:Separated entries|main|', '}}', { {'', ''}, {'A', 'A'}, {'A|B', 'AB'}, {'A||B', 'AB'}, -- empty parameter {'A|B|C', 'ABC'}, {'separator=,', ''}, {'separator=,|A', 'A'}, {'separator=,|A|B', 'A,B'}, {'separator=,|A||B', 'A,B'..."
Scribunto
text/plain
-- Unit tests for [[Module:Separated entries]]. Click talk page to run tests.
local p = require('Module:UnitTests')
function p:test_main()
self:preprocess_equals_many('{{#invoke:Separated entries|main|', '}}', {
{'', ''},
{'A', 'A'},
{'A|B', 'AB'},
{'A||B', 'AB'}, -- empty parameter
{'A|B|C', 'ABC'},
{'separator=,', ''},
{'separator=,|A', 'A'},
{'separator=,|A|B', 'A,B'},
{'separator=,|A||B', 'A,B'}, -- empty parameter
{'conjunction=;', ''},
{'conjunction=;|A', 'A'},
{'conjunction=;|A|B', 'A;B'},
{'separator=,|conjunction=;', ''},
{'separator=,|conjunction=;|A', 'A'},
{'separator=,|conjunction=;|A|B', 'A;B'},
{'separator=,|conjunction=;|A|B|C', 'A,B;C'},
{'separator=,|conjunction=;|A|B|C|D', 'A,B,C;D'},
{'start=2|separator=,|conjunction=;|A|B|C|D', 'B,C;D'},
})
end
return p
9hejp0c6mdhn05538xcomcp371lvas1
Ta̱mpi̱let:LSJ
10
2144
16122
2022-08-19T21:12:16Z
Kambai Akau
15
Created page with "{{#switch:{{{4|{{{3|{{{2|}}}}}}}}} |mLSJ = [https://www.perseus.tufts.edu/hopper/text?doc=Perseus:text:1999.04.0058:entry={{{1}}} {{#switch:{{{2|}}}|cite|ref|longref|shortref|mLSJ|={{{1}}}|{{lang|grc|{{{2}}}}}}}]{{#switch:{{{3|{{{2|}}}}}}|cite|ref=. [[Henry Liddell|Liddell, Henry George]]; [[Robert Scott (philologist)|Scott, Robert]]; ''[[A Greek–English Lexicon|An Intermediate Greek–English Lexicon]]'' at the [[Perseus Project]]|longref= in Henry Liddell|Lidd..."
wikitext
text/x-wiki
{{#switch:{{{4|{{{3|{{{2|}}}}}}}}}
|mLSJ = [https://www.perseus.tufts.edu/hopper/text?doc=Perseus:text:1999.04.0058:entry={{{1}}} {{#switch:{{{2|}}}|cite|ref|longref|shortref|mLSJ|={{{1}}}|{{lang|grc|{{{2}}}}}}}]{{#switch:{{{3|{{{2|}}}}}}|cite|ref=. [[Henry Liddell|Liddell, Henry George]]; [[Robert Scott (philologist)|Scott, Robert]]; ''[[A Greek–English Lexicon|An Intermediate Greek–English Lexicon]]'' at the [[Perseus Project]]|longref= in [[Henry Liddell|Liddell, Henry George]]; [[Robert Scott (philologist)|Scott, Robert]] (1889) ''An Intermediate Greek–English Lexicon'', Oxford. Clarendon Press. In the [[Perseus Project|Perseus Digital Library]], Tufts University.|shortref= in Middle [[Henry Liddell|Liddell]] and [[Robert Scott (philologist)|Scott]]|mLSJ={{#switch:{{{2}}}|cite|ref=. [[Henry Liddell|Liddell, Henry George]]; [[Robert Scott (philologist)|Scott, Robert]]; ''[[A Greek–English Lexicon|An Intermediate Greek–English Lexicon]]'' at the [[Perseus Project]]|longref= in [[Henry Liddell|Liddell, Henry George]]; [[Robert Scott (philologist)|Scott, Robert]] (1889) ''An Intermediate Greek–English Lexicon'', Oxford. Clarendon Press. In the [[Perseus Project|Perseus Digital Library]], Tufts University.|shortref= in Middle [[Henry Liddell|Liddell]] and [[Robert Scott (philologist)|Scott]]|}}|}}
|#default = [https://www.perseus.tufts.edu/hopper/text?doc=Perseus:text:1999.04.0057:entry={{{1}}} {{#switch:{{{2|}}}|cite|ref|longref|shortref|={{{1}}}|{{lang|grc|{{{2}}}}}}}]{{#switch:{{{3|{{{2|}}}}}}|cite|ref=. [[Henry Liddell|Liddell, Henry George]]; [[Robert Scott (philologist)|Scott, Robert]]; ''[[A Greek–English Lexicon]]'' at the [[Perseus Project]]|longref= in [[Henry Liddell|Liddell, Henry George]]; [[Robert Scott (philologist)|Scott, Robert]] (1940) ''A Greek–English Lexicon'', revised and augmented throughout by [[Henry Stuart Jones|Jones, Sir Henry Stuart]], with the assistance of McKenzie, Roderick. Oxford: Clarendon Press. In the [[Perseus Project|Perseus Digital Library]], Tufts University.|shortref= in [[Henry Liddell|Liddell]] and [[Robert Scott (philologist)|Scott]]|}}}}<noinclude>
{{Documentation}}</noinclude>
o7pnwvdfq35u9gzt1rj81nwtme2007v
Ta̱mpi̱let:LSJ/doc
10
2145
16123
2022-08-19T21:13:41Z
Kambai Akau
15
Created page with "{{documentation subpage}} Generates a link to the online [[Ancient Greek]] entry of a word in ''[[A Greek–English Lexicon]]'' by Liddell/Scott/Jones (LSJ) or in ''An Intermediate Greek–English Lexicon'' (''Middle Liddell Scott''), a condensed edition of the former, both hosted on the [[Perseus Project]]. The two editions generally overlap, as far as entries are concerned, but not fully. For instance, ἀΐσσω occurs {{LSJ|a)i/ssw|in Middle Liddell||mLSJ}}, but no..."
wikitext
text/x-wiki
{{documentation subpage}}
Generates a link to the online [[Ancient Greek]] entry of a word in ''[[A Greek–English Lexicon]]'' by Liddell/Scott/Jones (LSJ) or in ''An Intermediate Greek–English Lexicon'' (''Middle Liddell Scott''), a condensed edition of the former, both hosted on the [[Perseus Project]]. The two editions generally overlap, as far as entries are concerned, but not fully. For instance, ἀΐσσω occurs {{LSJ|a)i/ssw|in Middle Liddell||mLSJ}}, but not {{LSJ|a)i/+ssw|in the regular edition}} due to an error in the Perseus edition.
==Usage==
;Syntax
:'''{{tlx|LSJ|{{var|beta_code}}|{{var|greek_text}}|{{var|ref_type}}|{{var|use_intermediate}}}}'''
where:
:'''{{var|beta_code}}''' (required) is the [[Beta Code]] transliteration for the entry name.
:'''{{var|greek_text}}''' (optional; preferable for reference readability) is the text to display in the link, typically written using a [[polytonic Greek]] character set with full [[Ancient Greek grammar#Diacritics|Ancient Greek diacritics]].
:'''{{var|ref_type}}''' (optional) is the desired format of the reference text to be created, if any. Valid values are: '''ref''' (or '''cite'''), '''shortref''', '''longref'''.
:'''{{var|use_intermediate}}''' (optional) is the option to select the intermediate edition. The regular edition is used by default; the only valid value is '''mLSJ''' which is the necessary option in order to use the intermediate edition.
All parameters are order of input specific. All optional parameters are case sensitive.
== TemplateData ==
{{TemplateData header}}
<templatedata>{
"description": "A template to generate a link to the online Ancient Greek entry in ''A Greek-English Lexicon'' by Liddell/Scott/Jones (LSJ), hosted on the Perseus Project.",
"params": {
"1": {
"label": "Beta code",
"description": "The Beta Code transliteration for the entry name.",
"type": "string",
"required": true
},
"2": {
"label": "Greek text",
"description": "The text to display in the link, typically written using a polytonic Greek character set with full Ancient Greek diacritics.",
"type": "string",
"required": false
},
"3": {
"label": "Reference type",
"description": "Desired reference format. Valid values are: 'ref' (or 'cite'), 'shortref', 'longref'.",
"type": "string",
"required": false
},
"4": {
"label": "Use of Intermediate",
"description": "Selection of intermediate edition of the dictionary. Valid value is: 'mLSJ'.",
"type": "string",
"required": false
}
}}</templatedata>
== See also ==
* [[:Template:L&S|L&S]], a template to link to an entry in ''[[A Latin Dictionary]]'', by [[Charlton Thomas Lewis|Lewis]] and Short (L&S), or in ''An Elementary Latin Dictionary'' (''Elementary Lewis'').
<!--{{hidden end}}-->
<includeonly>{{Sandbox other||[[Category:External link templates]]
[[Category:Perseus Project templates]]
[[Category:Dictionary source templates]]
}}</includeonly>
tmmvurgddfs5jagu55wcsznqbumnlyu
Ta̱mpi̱let:Var
10
2146
16124
2022-08-19T21:15:05Z
Kambai Akau
15
Created page with "<var {{#if:{{{class|}}}|class="{{{class}}}"}} {{#if:{{{id|}}}|id="{{{id}}}"}} style="padding-right: 1px;{{{style|}}}" {{#if:{{{lang|}}}|lang="{{{lang}}}"}} {{#if:{{{title|}}}|title="{{{title}}}"}}>{{{1}}}</var><noinclude> <!--Categories and interwikis go near the bottom of the /doc page.--> {{Documentation}} </noinclude>"
wikitext
text/x-wiki
<var {{#if:{{{class|}}}|class="{{{class}}}"}} {{#if:{{{id|}}}|id="{{{id}}}"}} style="padding-right: 1px;{{{style|}}}" {{#if:{{{lang|}}}|lang="{{{lang}}}"}} {{#if:{{{title|}}}|title="{{{title}}}"}}>{{{1}}}</var><noinclude>
<!--Categories and interwikis go near the bottom of the /doc page.-->
{{Documentation}}
</noinclude>
1ph0r212s7cz1dvg2q4quotqwsozpa8
Ta̱mpi̱let:Var/doc
10
2147
16125
2022-08-19T21:16:21Z
Kambai Akau
15
Created page with "{{Documentation subpage}} {{tlr|VAR|variable}} <!-- Add categories where indicated at the bottom of this page and interwikis at Wikidata (see [[Wikipedia:Wikidata]]) --> {{high-use| 6000 }} ==Usage== This template is to help facilitate the displaying of variable names (in mathematics, computer source code, wikimarkup in template documentation, metasyntactic variables, etc.) with the [[Semantic HTML|semantically correct]] {{tag|var}} tags, which also renders the variable..."
wikitext
text/x-wiki
{{Documentation subpage}}
{{tlr|VAR|variable}}
<!-- Add categories where indicated at the bottom of this page and interwikis at Wikidata (see [[Wikipedia:Wikidata]]) -->
{{high-use| 6000 }}
==Usage==
This template is to help facilitate the displaying of variable names (in mathematics, computer source code, wikimarkup in template documentation, metasyntactic variables, etc.) with the [[Semantic HTML|semantically correct]] {{tag|var}} tags, which also renders the variable in italics, as is customary. This method is preferred to simply italicizing for many reasons, including [[WP:Accessibility|accessibility]], [[separation of presentation and content]], [[semantic Web]], and [[WP:METADATA|metadata]]; In [[XHTML]] and [[HTML]], the {{tag|var|o}} element has semantic meaning, while simple italicization does not. This template provides a tiny hint of [[kerning]] to compensate for the italicization and enhance readability.
"Variable" in this sense may include arbitrary or unknown names or terms, examples of human input, arithmetical variables in equations, etc. This template (and the underlying XHTML) are generally {{em|not}} used if MediaWiki's {{tag|math}} tags (or any other stand-alone mathematical markup) are being used.
===Examples===
; Example:
: {{block indent|{{tlxb|var|username}}}}
: outputs the following HTML:
: {{block indent|'''{{tag|var|content=username}}'''}}
:which renders as:
: {{block indent|{{var|username}}}}
Note that on the screen or in print, this renders as simple italicization, as does {{code|inline=y|<nowiki>''username''</nowiki>}} (using pairs of apostrophes) or {{tag|i|content=username}} (using HTML), yet it carries more semantic meaning than either of these methods.
At times, you may wish to use a serif font. This is especially true when attempting to render single-letter variables like "I" (upper-case "i") and "l" (lower-case "L"), since they are nearly indistinguishable (if at all). In such situations, use the {{tlx|varserif}} template instead of {{tnull|var}}, to make them more distinguishable, like these serif examples: {{varserif|I}}, {{varserif|l}}.
; More examples:
<div style="background:#FFFFFF;">
{{Markup
| <nowiki>The HTML code:
{{block indent|{{tag|var|content=username}}}}
renders as:
{{block indent|{{var|username}}}}</nowiki>
| The HTML code:
{{block indent|{{tag|var|content=username}}}}
renders as:
{{block indent|{{var|username}}}}
| <nowiki>The commandline should read: {{samp|%}} {{kbd|1=ssh {{var|hostname}}}}<br />(where {{var|hostname}} is the IP address or ...)<br />If it is correct, press {{key press|Enter}}.</nowiki>
| The commandline should read: {{samp|%}} {{kbd|1=ssh {{var|hostname}}}}<br />(where {{var|hostname}} is the IP address or ...)<br />If it is correct, press {{key press|Enter}}.
| <nowiki>in this equation, let {{var|x}}{{=}}1 and {{var|y}}{{=}}120 ...</nowiki>
| in this equation, let {{var|x}}{{=}}1 and {{var|y}}{{=}}120 ...
| <nowiki>{{para|accessdate|{{var|todays_date}}}}</nowiki>
| {{para|accessdate|{{var|todays_date}}}}
}}
</div>
==TemplateData==
{{TemplateDataHeader}}
<templatedata>
{
"params": {
"1": {
"label": "variable",
"type": "line",
"required": true
},
"class": {
"type": "string"
},
"id": {
"label": "ID",
"type": "string"
},
"style": {
"label": "CSS style",
"type": "string"
},
"lang": {
"label": "language",
"example": "c++",
"type": "string"
},
"title": {
"label": "HTML title (hovertext)",
"type": "string"
}
},
"description": "Marks text as an HTML variable"
}
</templatedata>
== See also ==
* {{tl|mvar}} which makes the argument italic and formats as mathematics
* {{tl|math}} which formats its argument as mathematics
* {{tl|bigmath}}, the same as {{tl|math}} but makes it bigger
{{Semantic markup templates|show}}
<includeonly>{{Sandbox other||
<!-- Categories below this line; interwikis at Wikidata -->
[[Category:Mathematical formatting templates]]
[[Category:Programming typing-aid templates]]
[[Category:Semantic markup templates]]
[[Category:Wikipedia XHTML tag-replacing templates]]
}}</includeonly>
9yzrczssz1yfhkxtlgiyhhn1g3cq3b4
Module:Unicode data/sandbox
828
2148
16126
2022-08-19T21:18:38Z
Kambai Akau
15
Created page with "local p = {} local floor = math.floor local function errorf(level, ...) if type(level) == "number" then return error(string.format(...), level + 1) else -- level is actually the format string. return error(string.format(level, ...), 2) end end local function binary_range_search(codepoint, ranges) local low, mid, high low, high = 1, ranges.length or require "Module:TableTools".length(ranges) while low <= high do mid = floor((low + high) / 2) local range =..."
Scribunto
text/plain
local p = {}
local floor = math.floor
local function errorf(level, ...)
if type(level) == "number" then
return error(string.format(...), level + 1)
else -- level is actually the format string.
return error(string.format(level, ...), 2)
end
end
local function binary_range_search(codepoint, ranges)
local low, mid, high
low, high = 1, ranges.length or require "Module:TableTools".length(ranges)
while low <= high do
mid = floor((low + high) / 2)
local range = ranges[mid]
if codepoint < range[1] then
high = mid - 1
elseif codepoint <= range[2] then
return range, mid
else
low = mid + 1
end
end
return nil, mid
end
p.binary_range_search = binary_range_search
--[[
local function linear_range_search(codepoint, ranges)
for i, range in ipairs(ranges) do
if range[1] <= codepoint and codepoint <= range[2] then
return range
end
end
end
--]]
-- Load a module by indexing "loader" with the name of the module minus the
-- "Module:Unicode data/" part. For instance, loader.blocks returns
-- [[Module:Unicode data/blocks]]. If a module cannot be loaded, false will be
-- returned.
local loader = setmetatable({}, {
__index = function (self, key)
local success, data = pcall(mw.loadData, "Module:Unicode data/" .. key)
if not success then
data = false
end
self[key] = data
return data
end
})
-- For the algorithm used to generate Hangul Syllable names,
-- see "Hangul Syllable Name Generation" in section 3.12 of the
-- Unicode Specification:
-- https://www.unicode.org/versions/Unicode11.0.0/ch03.pdf
local name_hooks = {
{ 0x00, 0x1F, "<control-%04X>" }, -- C0 control characters
{ 0x7F, 0x9F, "<control-%04X>" }, -- DEL and C1 control characters
{ 0x3400, 0x4DBF, "CJK UNIFIED IDEOGRAPH-%04X" }, -- CJK Ideograph Extension A
{ 0x4E00, 0x9FFF, "CJK UNIFIED IDEOGRAPH-%04X" }, -- CJK Ideograph
{ 0xAC00, 0xD7A3, function (codepoint) -- Hangul Syllables
local Hangul_data = loader.Hangul
local syllable_index = codepoint - 0xAC00
return ("HANGUL SYLLABLE %s%s%s"):format(
Hangul_data.leads[floor(syllable_index / Hangul_data.final_count)],
Hangul_data.vowels[floor((syllable_index % Hangul_data.final_count)
/ Hangul_data.trail_count)],
Hangul_data.trails[syllable_index % Hangul_data.trail_count]
)
end },
-- High Surrogates, High Private Use Surrogates, Low Surrogates
{ 0xD800, 0xDFFF, "<surrogate-%04X>" },
{ 0xE000, 0xF8FF, "<private-use-%04X>" }, -- Private Use
-- CJK Compatibility Ideographs
{ 0xF900, 0xFA6D, "CJK COMPATIBILITY IDEOGRAPH-%04X" },
{ 0xFA70, 0xFAD9, "CJK COMPATIBILITY IDEOGRAPH-%04X" },
{ 0x17000, 0x187F7, "TANGUT IDEOGRAPH-%04X" }, -- Tangut Ideograph
{ 0x18800, 0x18AFF, function (codepoint)
return ("TANGUT COMPONENT-%03d"):format(codepoint - 0x187FF)
end },
{ 0x18D00, 0x18D08, "TANGUT IDEOGRAPH-%04X" }, -- Tangut Ideograph Supplement
{ 0x1B170, 0x1B2FB, "NUSHU CHARACTER-%04X" }, -- Nushu
{ 0x20000, 0x2A6DF, "CJK UNIFIED IDEOGRAPH-%04X" }, -- CJK Ideograph Extension B
{ 0x2A700, 0x2B738, "CJK UNIFIED IDEOGRAPH-%04X" }, -- CJK Ideograph Extension C
{ 0x2B740, 0x2B81D, "CJK UNIFIED IDEOGRAPH-%04X" }, -- CJK Ideograph Extension D
{ 0x2B820, 0x2CEA1, "CJK UNIFIED IDEOGRAPH-%04X" }, -- CJK Ideograph Extension E
{ 0x2CEB0, 0x2EBE0, "CJK UNIFIED IDEOGRAPH-%04X" }, -- CJK Ideograph Extension F
-- CJK Compatibility Ideographs Supplement (Supplementary Ideographic Plane)
{ 0x2F800, 0x2FA1D, "CJK COMPATIBILITY IDEOGRAPH-%04X" },
{ 0xE0100, 0xE01EF, function (codepoint) -- Variation Selectors Supplement
return ("VARIATION SELECTOR-%d"):format(codepoint - 0xE0100 + 17)
end},
{ 0x30000, 0x3134A, "CJK UNIFIED IDEOGRAPH-%04X" }, -- CJK Ideograph Extension G
{ 0xF0000, 0xFFFFD, "<private-use-%04X>" }, -- Plane 15 Private Use
{ 0x100000, 0x10FFFD, "<private-use-%04X>" } -- Plane 16 Private Use
}
name_hooks.length = #name_hooks
local name_range_cache
local function generate_name(data, codepoint)
if type(data) == "string" then
return data:format(codepoint)
else
return data(codepoint)
end
end
--[[
-- Checks that the code point is a number and in range.
-- Does not check whether code point is an integer.
-- Not used
local function check_codepoint(funcName, argIdx, val)
require 'libraryUtil'.checkType(funcName, argIdx, val, 'number')
if codepoint < 0 or 0x10FFFF < codepoint then
errorf("Codepoint %04X out of range", codepoint)
end
end
--]]
-- https://www.unicode.org/versions/Unicode11.0.0/ch04.pdf, section 4.8
function p.lookup_name(codepoint)
-- U+FDD0-U+FDEF and all code points ending in FFFE or FFFF are Unassigned
-- (Cn) and specifically noncharacters:
-- https://www.unicode.org/faq/private_use.html#nonchar4
if 0xFDD0 <= codepoint and (codepoint <= 0xFDEF
or floor(codepoint % 0x10000) >= 0xFFFE) then
return ("<noncharacter-%04X>"):format(codepoint)
end
if name_range_cache -- Check if previously used "name hook" applies to this code point.
and codepoint >= name_range_cache[1]
and codepoint <= name_range_cache[2] then
return generate_name(name_range_cache[3], codepoint)
end
local range = binary_range_search(codepoint, name_hooks)
if range then
name_range_cache = range
return generate_name(range[3], codepoint)
end
local data = loader[('names/%03X'):format(codepoint / 0x1000)]
if data and data[codepoint] then
return data[codepoint]
-- Unassigned (Cn) consists of noncharacters and reserved characters.
-- The character has been established not to be a noncharacter,
-- and if it were assigned, its name would already been retrieved,
-- so it must be reserved.
else
return ("<reserved-%04X>"):format(codepoint)
end
end
--[[
-- No image data modules on Wikipedia yet.
function p.lookup_image(codepoint)
local data = loader[('images/%03X'):format(codepoint / 0x1000)]
if data then
return data[codepoint]
end
end
--]]
local planes = {
[ 0] = "Basic Multilingual Plane";
[ 1] = "Supplementary Multilingual Plane";
[ 2] = "Supplementary Ideographic Plane";
[ 3] = "Tertiary Ideographic Plane";
[14] = "Supplementary Special-purpose Plane";
[15] = "Supplementary Private Use Area-A";
[16] = "Supplementary Private Use Area-B";
}
-- Load [[Module:Unicode data/blocks]] if needed and assign it to this variable.
local blocks
local function block_iter(blocks, i)
i = i + 1
local data = blocks[i]
if data then
-- Unpack doesn't work on tables loaded with mw.loadData.
return i, data[1], data[2], data[3]
end
end
-- An ipairs-type iterator generator for the list of blocks.
function p.enum_blocks()
local blocks = loader.blocks
return block_iter, blocks, 0
end
function p.lookup_plane(codepoint)
local i = floor(codepoint / 0x10000)
return planes[i] or ("Plane %u"):format(i)
end
function p.lookup_block(codepoint)
local blocks = loader.blocks
local range = binary_range_search(codepoint, blocks)
if range then
return range[3]
else
return "No Block"
end
end
function p.get_block_info(name)
for i, block in ipairs(loader.blocks) do
if block[3] == name then
return block
end
end
end
function p.is_valid_pagename(pagename)
local has_nonws = false
for cp in mw.ustring.gcodepoint(pagename) do
if (cp == 0x0023) -- #
or (cp == 0x005B) -- [
or (cp == 0x005D) -- ]
or (cp == 0x007B) -- {
or (cp == 0x007C) -- |
or (cp == 0x007D) -- }
or (cp == 0x180E) -- MONGOLIAN VOWEL SEPARATOR
or ((cp >= 0x2000) and (cp <= 0x200A)) -- spaces in General Punctuation block
or (cp == 0xFFFD) -- REPLACEMENT CHARACTER
then
return false
end
local printable, result = p.is_printable(cp)
if not printable then
return false
end
if result ~= "space-separator" then
has_nonws = true
end
end
return has_nonws
end
local function manual_unpack(what, from)
if what[from + 1] == nil then
return what[from]
end
local result = {}
from = from or 1
for i, item in ipairs(what) do
if i >= from then
table.insert(result, item)
end
end
return unpack(result)
end
local function compare_ranges(range1, range2)
return range1[1] < range2[1]
end
-- Creates a function to look up data in a module that contains "singles" (a
-- code point-to-data map) and "ranges" (an array containing arrays that contain
-- the low and high code points of a range and the data associated with that
-- range).
-- "loader" loads and returns the "singles" and "ranges" tables.
-- "match_func" is passed the code point and either the data or the "dots", and
-- generates the final result of the function.
-- The varargs ("dots") describes the default data to be returned if there wasn't
-- a match.
-- In case the function is used more than once, "cache" saves ranges that have
-- already been found to match, or a range whose data is the default if there
-- was no match.
local function memo_lookup(data_module_subpage, match_func, ...)
local dots = { ... }
local cache = {}
local singles, ranges
return function (codepoint)
if not singles then
local data_module = loader[data_module_subpage]
singles, ranges = data_module.singles, data_module.ranges
end
if singles[codepoint] then
return match_func(codepoint, singles[codepoint])
end
local range = binary_range_search(codepoint, cache)
if range then
return match_func(codepoint, manual_unpack(range, 3))
end
local range, index = binary_range_search(codepoint, ranges)
if range then
table.insert(cache, range)
table.sort(cache, compare_ranges)
return match_func(codepoint, manual_unpack(range, 3))
end
if ranges[index] then
local dots_range
if codepoint > ranges[index][2] then
dots_range = {
ranges[index][2] + 1,
ranges[index + 1] and ranges[index + 1][1] - 1 or 0x10FFFF,
unpack(dots)
}
else -- codepoint < range[index][1]
dots_range = {
ranges[index - 1] and ranges[index - 1][2] + 1 or 0,
ranges[index][1] - 1,
unpack(dots)
}
end
table.sort(cache, compare_ranges)
end
return match_func(codepoint)
end
end
-- Get a code point's combining class value in [[Module:Unicode data/combining]],
-- and return whether this value is not zero. Zero is assigned as the default
-- if the combining class value is not found in this data module.
-- That is, return true if character is combining, or false if it is not.
-- See https://www.unicode.org/reports/tr44/#Canonical_Combining_Class_Values for
-- more information.
p.is_combining = memo_lookup(
"combining",
function (codepoint, combining_class)
return combining_class and combining_class ~= 0 or false
end,
0)
-- TEST 1Jun2022 Same data as is_combining, but return combining_class not T/F conversion
-- Return blank for none
-- Per https://www.unicode.org/reports/tr44/#Canonical_Combining_Class_Values
p.lookup_combiningclass = memo_lookup(
"combining",
function (codepoint, combining_class)
return combining_class
end,
99)
function p.add_dotted_circle(str)
return (mw.ustring.gsub(str, ".",
function(char)
if p.is_combining(mw.ustring.codepoint(char)) then
return '◌' .. char
end
end))
end
local lookup_control = memo_lookup(
"control",
function (codepoint, ccc)
return ccc or "assigned"
end,
"assigned")
p.lookup_control = lookup_control
function p.is_assigned(codepoint)
return lookup_control(codepoint) ~= "unassigned"
end
function p.is_printable(codepoint)
local result = lookup_control(codepoint)
return (result == "assigned") or (result == "space-separator"), result
end
function p.is_whitespace(codepoint)
local result = lookup_control(codepoint)
return (result == "space-separator"), result
end
p.lookup_category = memo_lookup(
"category",
function (codepoint, category)
return category
end,
"Cn")
local lookup_script = memo_lookup(
"scripts",
function (codepoint, script_code)
return script_code or 'Zzzz'
end,
"Zzzz")
p.lookup_script = lookup_script
function p.get_best_script(str)
-- Check type of argument, because mw.text.decode coerces numbers to strings!
require "libraryUtil".checkType("get_best_script", 1, str, "string")
-- Convert HTML character references (including named character references,
-- or character entities) to characters.
str = mw.text.decode(str, true)
local scripts = {}
for codepoint in mw.ustring.gcodepoint(str) do
local script = lookup_script(codepoint)
-- Ignore "Inherited", "Undetermined", or "Uncoded" scripts.
if not (script == "Zyyy" or script == "Zinh" or script == "Zzzz") then
scripts[script] = true
end
end
-- If scripts does not contain two or more keys,
-- return first and only key (script code) in table.
if not next(scripts, next(scripts)) then
return next(scripts)
end -- else return majority script, or else "Zzzz"?
end
function p.is_Latin(str)
require "libraryUtil".checkType("get_best_script", 1, str, "string")
str = mw.text.decode(str, true)
-- Search for the leading bytes that introduce the UTF-8 encoding of the
-- code points U+0340-U+10FFFF. If they are not found and there is at least
-- one Latin-script character, the string counts as Latin, because the rest
-- of the characters can only be Zyyy, Zinh, and Zzzz.
-- The only scripts found below U+0370 (the first code point of the Greek
-- and Coptic block) are Latn, Zyyy, Zinh, and Zzzz.
-- See the codepage in the [[UTF-8]] article.
if not str:find "[\205-\244]" then
for codepoint in mw.ustring.gcodepoint(str) do
if lookup_script(codepoint) == "Latn" then
return true
end
end
end
local Latn = false
for codepoint in mw.ustring.gcodepoint(str) do
local script = lookup_script(codepoint)
if script == "Latn" then
Latn = true
elseif not (script == "Zyyy" or script == "Zinh"
or script == "Zzzz") then
return false
end
end
return Latn
end
-- Checks that a string contains only characters belonging to right-to-left
-- scripts, or characters of ignorable scripts.
function p.is_rtl(str)
require "libraryUtil".checkType("get_best_script", 1, str, "string")
str = mw.text.decode(str, true)
-- Search for the leading bytes that introduce the UTF-8 encoding of the
-- code points U+0580-U+10FFFF. If they are not found, the string can only
-- have characters from a left-to-right script, because the first code point
-- in a right-to-left script is U+0591, in the Hebrew block.
if not str:find "[\214-\244]" then
return false
end
local result = false
local rtl = loader.scripts.rtl
for codepoint in mw.ustring.gcodepoint(str) do
local script = lookup_script(codepoint)
if rtl[script] then
result = true
elseif not (script == "Zyyy" or script == "Zinh"
or script == "Zzzz") then
return false
end
end
return result
end
local function get_codepoint(args, arg)
local codepoint_string = args[arg]
or errorf(2, "Parameter %s is required", tostring(arg))
local codepoint = tonumber(codepoint_string, 16)
or errorf(2, "Parameter %s is not a code point in hexadecimal base",
tostring(arg))
if not (0 <= codepoint and codepoint <= 0x10FFFF) then
errorf(2, "code point in parameter %s out of range", tostring(arg))
end
return codepoint
end
local function get_func(args, arg, prefix)
local suffix = args[arg]
or errorf(2, "Parameter %s is required", tostring(arg))
suffix = mw.text.trim(suffix)
local func_name = prefix .. suffix
local func = p[func_name]
or errorf(2, "There is no function '%s'", func_name)
return func
end
-- This function allows any of the "lookup" functions to be invoked. The first
-- parameter is the word after "lookup_"; the second parameter is the code point
-- in hexadecimal base.
function p.lookup(frame)
local func = get_func(frame.args, 1, "lookup_")
local codepoint = get_codepoint(frame.args, 2)
local result = func(codepoint)
if func == p.lookup_name then
-- Prevent code point labels such as <control-0000> from being
-- interpreted as HTML tags.
result = result:gsub("<", "<")
end
return result
end
function p.is(frame)
local func = get_func(frame.args, 1, "is_")
-- is_Latin and is_valid_pagename take strings.
if func == p.is_Latin or func == p.is_valid_pagename or func == p.is_rtl then
return (func(frame.args[2]))
else -- The rest take code points.
local codepoint = get_codepoint(frame.args, 2)
return (func(codepoint)) -- Adjust to one result.
end
end
return p
icmou7ssoj168ql14xu8er7rlmfibm1
Module:Unicode data/testcases
828
2149
16127
2022-08-19T21:19:52Z
Kambai Akau
15
Created page with "local p = require "Module:UnitTests" local Unicode_data = require(mw.title.getCurrentTitle().subpageText == "sandbox" and "Module:Unicode data/sandbox" or "Module:Unicode data") local U = mw.ustring.char local get_codepoint = mw.ustring.codepoint local function show(codepoint) if Unicode_data.is_printable(codepoint) then local printed_codepoint = U(codepoint) if mw.ustring.toNFC(printed_codepoint) ~= printed_codepoint then printed_codepoint = ("&#x%X;"):format(..."
Scribunto
text/plain
local p = require "Module:UnitTests"
local Unicode_data = require(mw.title.getCurrentTitle().subpageText == "sandbox"
and "Module:Unicode data/sandbox" or "Module:Unicode data")
local U = mw.ustring.char
local get_codepoint = mw.ustring.codepoint
local function show(codepoint)
if Unicode_data.is_printable(codepoint) then
local printed_codepoint = U(codepoint)
if mw.ustring.toNFC(printed_codepoint) ~= printed_codepoint then
printed_codepoint = ("&#x%X;"):format(codepoint)
end
if Unicode_data.is_combining(codepoint) then
printed_codepoint = "◌" .. printed_codepoint
end
return ("U+%04X: %s"):format(codepoint, printed_codepoint)
else
return ("U+%04X"):format(codepoint)
end
end
local function show_codepoint_and_name(codepoint)
return ("%s (%s)"):format(show(codepoint),
Unicode_data.lookup_name(codepoint))
end
function p:test_lookup_name()
local examples = {
{ 0x0000, "<control-0000>" },
{ 0x007F, "<control-007F>" },
{ 0x00C1, "LATIN CAPITAL LETTER A WITH ACUTE" },
{ 0x0300, "COMBINING GRAVE ACCENT" },
{ 0x0378, "<reserved-0378>" },
{ 0x1B44, "BALINESE ADEG ADEG" },
{ 0x1F71, "GREEK SMALL LETTER ALPHA WITH OXIA" },
{ 0x3555, "CJK UNIFIED IDEOGRAPH-3555" },
{ 0xAC01, "HANGUL SYLLABLE GAG" },
{ 0xD5FF, "HANGUL SYLLABLE HEH" },
{ 0xDC00, "<surrogate-DC00>", },
{ 0xEEEE, "<private-use-EEEE>" },
{ 0xFDD1, "<noncharacter-FDD1>", },
{ 0xFFFD, "REPLACEMENT CHARACTER" },
{ 0xFFFF, "<noncharacter-FFFF>" },
{ 0x1F4A9, "PILE OF POO" },
{ 0xE0000, "<reserved-E0000>" },
{ 0xF0F0F, "<private-use-F0F0F>" },
{ 0x10FFFF, "<noncharacter-10FFFF>" },
}
self:iterate(examples,
function (self, codepoint, name)
self:equals(show(codepoint),
Unicode_data.lookup_name(codepoint), name)
end)
end
function p:test_lookup_age()
local examples = {
{ 0x0061, "1.1" },
{ 0x0378, "NA" },
{ 0x1B44, "5.0" },
{ 0x3555, "3.0" },
{ 0xAC01, "2.0" },
{ 0xDC00, "2.0", },
{ 0xEEEE, "1.1" },
{ 0xFDD1, "3.1", },
{ 0x1F4A9, "6.0" },
{ 0xE0000, "NA" },
{ 0xF0F0F, "2.0" },
{ 0x10FFFF, "2.0" },
}
self:iterate(examples,
function (self, codepoint, age)
-- Remove pcall when this function is added to [[Module:Unicode data]].
pcall(function ()
self:equals(show(codepoint),
Unicode_data.lookup_age(codepoint), age)
end)
end)
end
function p:test_is_combining()
local examples = {
{ 0x0300, true },
{ 0x0060, false },
}
self:iterate(examples,
function (self, codepoint, expected)
self:equals(
show_codepoint_and_name(codepoint),
Unicode_data.is_combining(codepoint),
expected)
end)
end
function p:test_is_default_ignorable()
local examples = {
{ 0x0061, false },
{ 0x00AD, true },
}
self:iterate(examples,
function (self, codepoint, expected)
-- Remove pcall when this function is added to [[Module:Unicode data]].
pcall(function ()
self:equals(
show_codepoint_and_name(codepoint),
Unicode_data.is_default_ignorable(codepoint),
expected)
end)
end)
end
function p:test_lookup_script()
local examples = {
{ 0x0061, "Latn" },
{ 0x002F, "Zyyy" },
{ 0x0300, "Zinh" },
{ 0x0378, "Zzzz" },
{ 0x0398, "Grek" },
{ 0x03E2, "Copt" },
{ 0x2014, "Zyyy" },
}
self:iterate(examples,
function (self, codepoint, expected)
self:equals(
show_codepoint_and_name(codepoint),
Unicode_data.lookup_script(codepoint),
expected)
end)
end
function p:test_lookup_category()
local examples = {
{ get_codepoint "\t", "Cc" },
{ get_codepoint " ", "Zs" },
{ get_codepoint "[", "Ps" },
{ get_codepoint "]", "Pe" },
{ get_codepoint "^", "Sk" },
{ get_codepoint "A", "Lu" },
{ 0x00AD, "Cf" },
{ get_codepoint "¾", "No" },
{ get_codepoint "«", "Pi" },
{ get_codepoint "»", "Pf" },
{ 0x0300, "Mn" },
{ 0x0488, "Me" },
{ get_codepoint "٣", "Nd" },
{ get_codepoint "子", "Lo" },
{ get_codepoint "ᾮ", "Lt" },
{ 0x1B44, "Mc" },
{ get_codepoint "∈", "Sm" },
{ get_codepoint "‿", "Pc" },
{ get_codepoint "↹", "So" },
{ get_codepoint "⸗", "Pd" },
{ get_codepoint "Ⅷ", "Nl" },
{ 0x2028, "Zl" },
{ 0x2029, "Zp" },
{ get_codepoint "ゞ", "Lm" },
{ 0xD800, "Cs" },
{ get_codepoint "£", "Sc" },
{ 0xFFFF, "Cn" },
{ 0x100000, "Co" },
}
self:iterate(examples,
function (self, codepoint, expected)
self:equals(
show_codepoint_and_name(codepoint),
Unicode_data.lookup_category(codepoint),
expected)
end)
end
local fun = require "Module:Fun"
local m_table = require "Module:TableTools"
local script_to_count_mt = {
__index = function (self, key)
self[key] = 0
return 0
end,
__call = function (self, ...)
return setmetatable({}, self)
end
}
setmetatable(script_to_count_mt, script_to_count_mt)
local script_counts = setmetatable({}, {
__index = function (self, str)
if type(str) ~= "string" then return nil end
local script_to_count = script_to_count_mt()
for codepoint in mw.ustring.gcodepoint(str) do
local script = Unicode_data.lookup_script(codepoint)
script_to_count[script] = script_to_count[script] + 1
end
local printed = table.concat(
fun.mapIter(
function (count, script)
return ("%s (%d)"):format(script, count)
end,
m_table.sortedPairs(
script_to_count,
function (script1, script2)
return script_to_count[script1] > script_to_count[script2]
end)),
", ")
self[str] = printed
return printed
end,
})
local script_examples = {
-- To demonstrate that "is_Latin" doesn't treat a string of Zyyy and Zinh
-- characters as Latn.
-- This particular example only has characters below U+0340, so
-- lookup_script doesn't have to be called.
{ "%!?́", nil },
{ "’ʼ“”†‡•‰′‽⁕", nil },
{ "col·legi", "Latn" },
"HTML character references",
{ "𐘀", "Lina" },
{ "𐘀", "Lina" },
{ "–", nil },
{ "–", nil },
-- Examples from [[Template talk:Lang#Italicisation of Halkomelem]]
"Halkomelem",
{ "lá:yelhp", "Latn" },
{ "xʷməθkʷəy̓əm", nil }, -- one Greek (Grek) character
{ "hən̓q̓əmin̓əm̓", "Latn" },
"Quotes",
-- [[s:it:Divina Commedia/Inferno/Canto I]]
{
[[Tant’è amara che poco è più morte;
ma per trattar del ben ch’i’ vi trovai,
dirò de l’altre cose ch’i’ v’ ho scorte.]],
"Latn"
},
{ -- A blessing in Navajo:
--[[User talk:Stephen G. Brown/text8]]
[[Díí Késhmish biyiʼ yáʼąąshdę́ę́ʼ ląʼígóó bee nikʼihojidlíi dooleeł.
Niheechʼínáánáháhígíí biyiʼ iłhodeezyéél, iłhózhǫ́, ayóóʼóʼóʼní
bee nikʼihojidlíi dooleeł. Tʼáá sahdiigiʼ átʼéego baa hózhǫ́ǫgo
nihił hanááhoolzhiizhígí biyiʼ tʼáá ałtsojįʼ iłhózhǫ́ nííʼ dooleeł.]],
"Latn"
},
{ -- The opening of the Iliad ([[s:el:Ιλιάς/Α]]), with macrons and
-- breves added to mark the length of the monophthongs α, ι, υ:
[[Μῆνῐν ᾰ̓́ειδε, θεᾱ́, Πηληῐ̈ᾰ́δεω Ᾰ̓χῐλῆος
οὐλομένην, ἣ μῡρῐ́᾽ Ᾰ̓χαιοῖς ᾰ̓́λγε᾽ ἔθηκε,
πολλᾱ̀ς δ᾽ ῐ̓φθῑ́μους ψῡχᾱ̀ς Ἄῐ̈δῐ προῐ̈́ᾰψεν
ἡρώων, αὐτοὺς δὲ ἑλώρῐᾰ τεῦχε κῠ́νεσσιν
οἰωνοῖσῐ́ τε πᾶσῐ· Δῐὸς δ᾽ ἐτελείετο βουλή·]],
"Grek"
},
{ -- The Brothers Karamazov: [[w:ru:Братья Карамазовы (Достоевский)/Книга первая]]
[[Вот если вы не согласитесь с этим последним тезисом и
ответите: «Не так» или «не всегда так», то я, пожалуй, и
ободрюсь духом насчет значения героя моего Алексея
Федоровича. Ибо не только чудак «не всегда» частность и
обособление, а напротив, бывает так, что он-то, пожалуй,
и носит в себе иной раз сердцевину целого, а остальные
люди его эпохи — все, каким-нибудь наплывным ветром,
на время почему-то от него оторвались…]],
"Cyrl"
},
{ -- Rig Veda: [[https://sa.wikisource.org/wiki/ऋग्वेदः_सूक्तं_१.१]]
[[ॐ अग्निमीळे पुरोहितं यज्ञस्य देवमृत्विजम् ।
होतारं रत्नधातमम् ॥१॥
अग्निः पूर्वेभिरृषिभिरीड्यो नूतनैरुत ।
स देवाँ एह वक्षति ॥२॥
अग्निना रयिमश्नवत् पोषमेव दिवेदिवे ।
यशसं वीरवत्तमम् ॥३॥
अग्ने यं यज्ञमध्वरं विश्वतः परिभूरसि ।
स इद्देवेषु गच्छति ॥४॥
अग्निर्होता कविक्रतुः सत्यश्चित्रश्रवस्तमः ।
देवो देवेभिरा गमत् ॥५॥
यदङ्ग दाशुषे त्वमग्ने भद्रं करिष्यसि ।
तवेत् तत् सत्यमङ्गिरः ॥६॥
उप त्वाग्ने दिवेदिवे दोषावस्तर्धिया वयम् ।
नमो भरन्त एमसि ॥७॥
राजन्तमध्वराणां गोपामृतस्य दीदिविम् ।
वर्धमानं स्वे दमे ॥८॥
स नः पितेव सूनवेऽग्ने सूपायनो भव ।
सचस्वा नः स्वस्तये ॥९॥]],
"Deva"
},
}
local ends_in_punctuation = setmetatable({}, {
__index = function (self, key)
local val = mw.ustring.match(mw.ustring.sub(key, -1), "%p") ~= nil
self[key] = val
return val
end,
})
local function show_script_example(script_example)
local separator = ": "
-- If last character is punctuation, place script counts on their own line
-- Could use Unicode_data.lookup_category, but that is more memory-intensive.
if ends_in_punctuation[script_example] then
separator = "<br>• "
end
return script_example:gsub('\n', '<br>') .. separator
.. script_counts[script_example]
end
function p:test_get_best_script()
self:iterate(script_examples,
function (self, str, expected)
self:equals(
show_script_example(str),
Unicode_data.get_best_script(str),
expected)
end)
end
function p:test_is_Latin()
self:iterate(script_examples,
function (self, str, best_script, is_Latin)
self:equals(show_script_example(str), Unicode_data.is_Latin(str),
is_Latin or best_script == "Latn")
end)
end
function p:test_lookup_block()
local examples = {
{ 0x0064, "Basic Latin" },
{ 0x030B, "Combining Diacritical Marks" },
{ 0x03A3, "Greek and Coptic" },
{ 0x0411, "Cyrillic" },
{ 0x10E6, "Georgian" },
{ 0x3175, "Hangul Compatibility Jamo" },
{ 0xAC01, "Hangul Syllables" },
{ 0x4E0A, "CJK Unified Ideographs" },
{ 0x1F608, "Emoticons" },
{ 0x30000, "CJK Unified Ideographs Extension G"},
{ 0x10FFFF, "Supplementary Private Use Area-B" },
}
self:iterate(examples,
function (self, codepoint, block_name)
self:equals(
show(codepoint),
Unicode_data.lookup_block(codepoint),
block_name)
end)
end
function p:test_is_rtl()
local examples = {
{ "أبو عبد الله محمد بن عبد الله اللواتي الطنجي بن بطوطة", true }, -- Ibn Battuta's full name
{ "أدب القاضي Adab al-qādī", false }, -- Example of incorrect input
{ "ܛܘܼܒܲܝܗܘܿܢ ܠܐܲܝܠܹܝܢ ܕܲܕ݂ܟܹܝܢ ܒܠܸܒ̇ܗܘܿܢ܄ ܕܗܸܢ݂ܘܿܢ ܢܸܚܙܘܿܢ ܠܐܲܠܵܗܵܐ܂", true }, -- Syriac, sixth beatitude (Matthew 5:8)
{ "בְּרֵאשִׁית, בָּרָא אֱלֹהִים, אֵת הַשָּׁמַיִם, וְאֵת הָאָרֶץ.", true }, -- Hebrew: Genesis 1:1
{ "𞤀𞤣𞤤𞤢𞤥 𞤆𞤵𞤤𞤢𞤪", true }, -- Adlam: name of alphabet
{
-- Avestan: Hymn to Haoma: Yasna 10.8 ([[wikt:𐬀𐬉𐬴𐬨𐬀]])
"𐬬𐬍𐬯𐬞𐬈 ⸱ 𐬰𐬍 ⸱ 𐬀𐬥𐬌𐬌𐬉 ⸱ 𐬨𐬀𐬜𐬃𐬢𐬵𐬋 ⸱ 𐬀𐬉𐬴𐬨𐬀 ⸱ 𐬵𐬀𐬗𐬌𐬧𐬙𐬈 ⸱ 𐬑𐬭𐬎𐬎𐬍𐬨 ⸱ 𐬛𐬭𐬎𐬎𐬋 ⸱ 𐬁𐬀𐬝 ⸱ 𐬵𐬋 ⸱ 𐬫𐬋 ⸱ 𐬵𐬀𐬊𐬨𐬀𐬵𐬈 ⸱ 𐬨𐬀𐬜𐬋 ⸱ 𐬀𐬴𐬀 ⸱ 𐬵𐬀𐬗𐬀𐬌𐬙𐬈",
true
},
{ "ދިވެހި", true }, -- the word dhivehi written in Thaana script
{ "𐤀𐤓𐤍𐤟𐤆𐤐𐤏𐤋𐤟𐤀𐤕𐤁𐤏𐤋𐤟𐤁𐤍𐤀𐤇𐤓𐤌𐤟𐤌𐤋𐤊𐤂𐤁𐤋𐤟𐤋𐤀𐤇𐤓𐤌𐤟𐤀𐤁𐤄", true }, -- Phoenician: Ahiram sarcophagus ([[wikt:𐤀𐤓𐤍]])
{ "ࡌࡀࡍࡃࡀ ࡖࡄࡉࡉࡀ", true }, -- Mandaic: manda ḏ'haije ("knowledge of life"; [[wikt:ࡌࡀࡍࡃࡀ ࡖࡄࡉࡉࡀ]])
{ "ࠄࠟࠓࠂࠝࠓࠜࠉࠆࠜࠉࠌ", true }, -- Samaritan Hebrew: īargerēzēm ("Mount Gerizim"; [[wikt:Mount Gerizim]])
{ "%$!^&", false },
}
self:iterate(examples,
function (self, str, expected)
self:equals(str, Unicode_data.is_rtl(str), expected)
end)
end
-- Change function names into more readable headers for the testcases tables.
for k, v in m_table.sortedPairs(p) do
if type(k) == "string" then
local new_k = k:gsub("^test_(.+)$", "testcases for <code>%1</code>")
if new_k ~= k then
p[k] = nil
p[new_k] = v
end
end
end
return p
btqhhzt91rs5wb0elgtckxkv458zj40
Module:Unicode data/overview/doc
828
2150
16128
2022-08-19T21:20:53Z
Kambai Akau
15
Created page with "{{align|right|<small>This table:</small> {{view||edit|template=Module:Unicode data/overview/doc}}}} :<small>''Incomplete (as of March 2022)''</small> * Code points: enter hexadecimal value, for example {{mxt|1={{!}}0x0061}} or {{mxt|1={{!}}61}}; not {{!mxt|1={{!}}U+0061}}. {| class="wikitable sortable" style="font-size:90%; vertical-align:top;" |- ! Topic ! Function ! Parameter type<br/><small>(string=by character(s); c.p. by {{mono|0xHex}} value)</small> ! Example-in !..."
wikitext
text/x-wiki
{{align|right|<small>This table:</small> {{view||edit|template=Module:Unicode data/overview/doc}}}}
:<small>''Incomplete (as of March 2022)''</small>
* Code points: enter hexadecimal value, for example {{mxt|1={{!}}0x0061}} or {{mxt|1={{!}}61}}; not {{!mxt|1={{!}}U+0061}}.
{| class="wikitable sortable" style="font-size:90%; vertical-align:top;"
|-
! Topic
! Function
! Parameter type<br/><small>(string=by character(s); c.p. by {{mono|0xHex}} value)</small>
! Example-in
! Returns
! Character
<!--
LOOKUP - lookup{{!}} functions ----- ----- ----- ----- ----- ----- ----- ----- -->
|-
| Unicode character name
| {{code|1={{!}}lookup{{!}}name}}
| code point
| {{ubl
|1={{tnull|#invoke:Unicode data |lookup|name|0xA9}}
|2={{tnull|#invoke:Unicode data |lookup|name|0x0007}}
}}
| {{ubl
|1={{#invoke:Unicode data |lookup|name|0xA9}}
|2={{#invoke:Unicode data |lookup|name|0x0007}}
}}
| {{ubl
|1=©
|2=}}
|-
| [[Script (Unicode)|Scripts]]
| {{code|1={{!}}lookup{{!}}script}}
| code point
| {{tnull|#invoke:Unicode data |lookup|script|A061}}
| {{#invoke:Unicode data |lookup|script|A061}}
| {{ubl
|1=ꁡ
|2=}}
|-
| [[Block (Unicode)|Blocks]]
| {{code|1={{!}}lookup{{!}}block}}
| code point
| {{tnull|#invoke:Unicode data |lookup|block|A061}}
| {{#invoke:Unicode data |lookup|block|A061}}
| {{ubl
|1=ꁡ
|2=}}
|-
| [[Plane (Unicode)|Planes]]
| {{code|1={{!}}lookup{{!}}plane}}
| code point
| {{ubl
|1={{tnull|#invoke:Unicode data |lookup|plane|0xA9}}
|2={{tnull|#invoke:Unicode data |lookup|plane|0x1F608}}
}}
| {{ubl
|1={{#invoke:Unicode data |lookup|plane|0xA9}}
|2={{#invoke:Unicode data |lookup|plane|0x1F608}}
}}
| {{ubl
|1=©
|2=😈}}
|-
| [[Unicode_character_property#General_Category|General Category]]
| {{code|1={{!}}lookup{{!}}category}}
| code point
| {{ubl
|1={{tnull|#invoke:Unicode data |lookup|category|0xA9}}
|2={{tnull|#invoke:Unicode data |lookup|category|0x002B}}
}}
| {{ubl
|1={{#invoke:Unicode data |lookup|category|0xA9}}
|2={{#invoke:Unicode data |lookup|category|0x002B}}
}}
| {{ubl
|1=©
|2=+}}
|- style="border-bottom:2px solid grey;"
| Controls
| {{code|1={{!}}is{{!}}control}}
| code point
| {{ubl
|1={{tnull|#invoke:Unicode data |lookup|control|A9}}
|2={{tnull|#invoke:Unicode data |lookup|control|FFFF}}
}}
| {{ubl
|1={{#invoke:Unicode data |lookup|control|A9}}
|2={{#invoke:Unicode data |lookup|control|FFFF}}
}}
| {{ubl
|1=©
|2=}}
<!--
ID - is{{!}} functions ----- ----- ----- ----- ----- ----- ----- ----- -->
|-
| [[Latin script]]
|{{code|1={{!}}is{{!}}Latin}}
| string
| {{ubl
|1={{tnull|#invoke:Unicode data |is|Latin|abcŁíā̀}}
|2={{tnull|#invoke:Unicode data |is|Latin|abc文xyz}}
}}
| {{ubl
|1={{#invoke:Unicode data |is|Latin|abc}}
|2={{#invoke:Unicode data |is|Latin|abc文xyz}}
}}
|
|-
| [[Wikipedia:Article titles|WP:Article title]] <small>([[WP:NCTR]])</small>
| {{code|1={{!}}is{{!}}valid_pagename}}
| string
| {{ubli
|1={{tnull|#invoke:Unicode data |is|valid_pagename|Main_page}}
|2={{tnull|#invoke:Unicode data |is|valid_pagename|# (disambiguation)}}
}}
| {{ubl
|1={{#invoke:Unicode data |is|valid_pagename|Main_page}}
|2={{#invoke:Unicode data |is|valid_pagename|# (disambiguation)}}
}}
|
|-
| [[Bidirectional text|Bidirectionality]], right-to-left scripts
| {{code|1={{!}}is{{!}}rtl}}
| string
| {{ubl
|1={{tnull|#invoke:Unicode data |is|rtl|ش}}
|2={{tnull|#invoke:Unicode data |is|rtl|34}}
}}
| {{ubli
|1={{#invoke:Unicode data |is|rtl|ش}}
|2={{#invoke:Unicode data |is|rtl|4}}
}}
| {{ubl
|1=ش
|2=4}}
|-
| [[Combining character]]
| {{code|1={{!}}is{{!}}combining}}
| code point
| {{ubl
|1={{tnull|#invoke:Unicode data |is|combining|0300}}
|2={{tnull|#invoke:Unicode data |is|combining|64}}
}}
| {{ubl
|1={{#invoke:Unicode data |is|combining|0300}}
|2={{#invoke:Unicode data |is|combining|64}}
}}
| {{ubl
|1=̀
|2=d}}
|-
| Character assignation
| {{code|1={{!}}is{{!}}assigned}}
| code point
| {{ubl
|1={{tnull|#invoke:Unicode data |is|assigned|A061}}
|2={{tnull|#invoke:Unicode data |is|assigned|FFEF}}
}}
| {{ubl
|1={{#invoke:Unicode data |is|assigned|A061}}
|2={{#invoke:Unicode data |is|assigned|FFEF}}
}}
| {{ubl
|1=ꁡ
|2=;}}
|-
| Printable<!-- control: assigned or space-separator -->
| {{code|1={{!}}is{{!}}printable}}
| code point
| {{ubl
|1={{tnull|#invoke:Unicode data |is|printable|0061}}
|2={{tnull|#invoke:Unicode data |is|printable|0007}}
|3={{tnull|#invoke:Unicode data |is|printable|FFFF}}
}}
| {{ubl
|1=>{{#invoke:Unicode data |is|printable|0061}}<
|2=>{{#invoke:Unicode data |is|printable|0007}}<
|3=>{{#invoke:Unicode data |is|printable|FFFF}}<
}}
| {{ubl
|1=>a<
|2=><
|3=><
}}
|-
| {{slink|Whitespace_character|Unicode}}
| {{code|1={{!}}is{{!}}whitespace}}
| code point
| {{ubl
|1={{tnull|#invoke:Unicode data |is|whitespace|0x20}}
|2={{tnull|#invoke:Unicode data |is|whitespace|0xA0}}
|3={{tnull|#invoke:Unicode data |is|whitespace|0x64}}
}}
| {{ubl
|1=>{{#invoke:Unicode data |is|whitespace|0x20}}<
|2=>{{#invoke:Unicode data |is|whitespace|0xA0}}< NBSP
|3=>{{#invoke:Unicode data |is|whitespace|0x64}}<
}}
| {{ubl
|1=> <
|2=> <
|3=>d<}}<!--
UNKNOWN -- function application as yet unknown -->
|-
| [[Hangul]]
| {{code|1={{!}}Hangul}}
|
| [application unknown]
|
| {{ubl
|1=&#x;
|2=&#x;}}
|-
| [[Unicode alias names and abbreviations|Alias names]]
| {{code|1={{!}}aliases}}
|
| [application unknown]
|
| {{ubl
|1=&#x;
|2=&#x;}}
|-
| Combining class
| {{code|1={{!}}}}
|
| [application unknown]
|
| {{ubl
|1=&#x;
|2=&#x;}}
|-
| Age
| {{code|1={{!}}}}
|
| [application unknown]
|
| {{ubl
|1=
|2=}}
|-
| get_best_script
| {{code|1={{!}}get_best_script}}
|
| [application unknown]
|
| {{ubl
|1=
|2=}}
|}
e9gr1ts5np6j6kr5mfhin78cmn47h7o