Wikivoyage
idwikivoyage
https://id.wikivoyage.org/wiki/Halaman_Utama
MediaWiki 1.44.0-wmf.5
first-letter
Media
Istimewa
Pembicaraan
Pengguna
Pembicaraan Pengguna
Wikivoyage
Pembicaraan Wikivoyage
Berkas
Pembicaraan Berkas
MediaWiki
Pembicaraan MediaWiki
Templat
Pembicaraan Templat
Bantuan
Pembicaraan Bantuan
Kategori
Pembicaraan Kategori
TimedText
TimedText talk
Modul
Pembicaraan Modul
Halaman Utama
0
1
1
2024-12-02T04:39:03Z
MediaWiki default
3
1
wikitext
text/x-wiki
<div dir="ltr" lang="en" class="mw-content-ltr">
==This subdomain is reserved for the creation of a [[wikimedia:Our projects|Wikivoyage]] in '''[[w:en:Indonesian|Indonesian]]''' language==
* Please '''do not start editing''' this new site. This site has a test project on the [[incubator:|Wikimedia Incubator]] (or on the [[betawikiversity:|Beta Wikiversity]] or on the [[oldwikisource:|Old Wikisource]]) and it will be imported to here.
* If you would like to help translating the interface to this language, please do not translate here, but go to [[translatewiki:|translatewiki.net]], a special wiki for translating the interface. That way everyone can use it on every wiki using the [[mw:|same software]].
* For information about how to edit and for other general help, see [[m:Help:Contents|Help on Wikimedia's Meta-Wiki]] or [[mw:Help:Contents|Help on MediaWiki.org]].
== Sister projects ==
<span class="plainlinks">
[//www.wikipedia.org Wikipedia] |
[//www.wiktionary.org Wiktionary] |
[//www.wikibooks.org Wikibooks] |
[//www.wikinews.org Wikinews] |
[//www.wikiquote.org Wikiquote] |
[//www.wikisource.org Wikisource] |
[//www.wikiversity.org Wikiversity] |
[//www.wikivoyage.org Wikivoyage] |
[//species.wikimedia.org Wikispecies] |
[//www.wikidata.org Wikidata] |
[//www.wikifunctions.org Wikifunctions] |
[//commons.wikimedia.org Commons]
</span>
See Wikimedia's [[m:|Meta-Wiki]] for the coordination of these projects.
</div>
2w4m936zcqbf1mfy2omysz0imvdj1dr
Templat:!
10
7
8
7
2024-12-03T13:51:25Z
Jon Harald Søby
20
1 revisi diimpor
7
wikitext
text/x-wiki
<includeonly>|</includeonly><noinclude>
tbu3e0nn89dozsj2j7mudsrsdthfrww
Templat:!)
10
8
11
10
2024-12-03T13:51:26Z
Jon Harald Søby
20
2 revisi diimpor
10
wikitext
text/x-wiki
|}<noinclude>
{{INTERWIKI|Q6582555}}
</noinclude>
pqy41xfo0333djtoyu01ikwr36bjmpt
Templat:!-
10
9
14
13
2024-12-03T13:51:26Z
Jon Harald Søby
20
2 revisi diimpor
13
wikitext
text/x-wiki
|-<noinclude>
{{INTERWIKI|Q5406460}}
</noinclude>
0tnm729ukiw38fvuasbapb1ua4izehq
Templat:(!
10
10
17
16
2024-12-03T13:51:26Z
Jon Harald Søby
20
2 revisi diimpor
16
wikitext
text/x-wiki
<includeonly>{|</includeonly><noinclude><nowiki>{|</nowiki>
{{INTERWIKI|Q6582660}}
</noinclude>
7bu3hqof187ei9x4p0tai4rb4jihiyz
Templat:@
10
11
21
20
2024-12-03T13:51:26Z
Jon Harald Søby
20
3 revisi diimpor
20
wikitext
text/x-wiki
<span class="nowrap">{{{1|<noinclude>akun</noinclude>}}}[[Berkas:At sign.svg|15px|@|link=]]{{{2|<noinclude>contoh.com</noinclude>}}}</span><noinclude>
[[Kategori:Templat format dan fungsi]]
{{INTERWIKI|Q6133158}}
</noinclude>
m8h5b7yj02tzcwyl2n2ee8qvfra822r
Templat:AHN-AH
10
12
24
23
2024-12-03T13:51:26Z
Jon Harald Søby
20
2 revisi diimpor
23
wikitext
text/x-wiki
<span style="padding:1px .5em; color:#ffffff; background-color:#039; font-weight:bold;">AH {{{1}}}</span><noinclude>
{{INTERWIKI|Q6664877}}
</noinclude>
autrsg65j68no7ygrqnnzvj43iwsnw1
Templat:ARS
10
13
26
25
2024-12-03T13:51:26Z
Jon Harald Søby
20
1 revisi diimpor
25
wikitext
text/x-wiki
{{currency|ARS|{{{1|}}}}}<noinclude>
{{Individual currency template documentation}}
[[Kategori:Templat mata uang individual]]
[[en:voy:Template:ARS]]
</noinclude>
eqhsk1k639sqo2jch3lmtelgfxwy5p9
Templat:AUD
10
14
28
27
2024-12-03T13:51:26Z
Jon Harald Søby
20
1 revisi diimpor
27
wikitext
text/x-wiki
{{currency|AUD|{{{1|}}}}}<noinclude>
{{Individual currency template documentation}}
[[Kategori:Templat mata uang individual]]
[[en:voy:Template:AUD]]
</noinclude>
caskx05ehhuzdh90evt2pdiq3a6eox9
Templat:About
10
15
33
32
2024-12-03T13:51:26Z
Jon Harald Søby
20
4 revisi diimpor
32
wikitext
text/x-wiki
:''<div class="dablink"><!--
-->{{#if: {{{1|}}}|<!--
-->{{Namespace detect|main=Artikel|category=Kategori|other=Halaman}} ini membahas tentang {{{1}}}.  }}<!--
-->Untuk {{#if:{{{2|}}}|{{{2}}}|kegunaan lainnya}}, lihat {{#if:{{{3|}}}|[[{{{3}}}]]{{#ifeq:{{{4|}}}|and| dan {{#if:{{{5|}}}|[[{{{5}}}]]|[[{{PAGENAME}} (disambiguasi)]]}}}}|[[{{PAGENAME}} (disambiguasi)]].<!--
-->{{#if:{{{2|}}}|{{#if:{{{4|}}}|<!--
-->{{#ifeq:{{{4|}}}|and||<!-- "and" is a special word, don't output "For and, ..."
-->  Untuk {{#ifeq:{{{4}}}|1|other uses|{{{4}}}}}, lihat {{#if:{{{5|}}}|[[{{{5}}}]]{{#ifeq:{{{6|}}}|and| dan {{#if:{{{7|}}}|[[{{{7}}}]]|[[{{PAGENAME}} (disambiguasi)]]}}}}|[[{{PAGENAME}} (disambiguasi)]]}}.}}<!--
-->{{#if:{{{6|}}}|<!--
-->{{#ifeq:{{{6|}}}|and||<!--
-->  Untuk {{#ifeq:{{{6}}}|1|other uses|{{{6}}}}}, lihat {{#if:{{{7|}}}|[[{{{7}}}]]{{#ifeq:{{{8|}}}|and| dan {{#if:{{{9|}}}|[[{{{9}}}]]|[[{{PAGENAME}} (disambiguasi)]]}}}}|[[{{PAGENAME}} (disambiguasi)]]}}.}}<!--
-->{{#if:{{{8|}}}|<!--
-->{{#ifeq:{{{8|}}}|and||<!--
-->  Untuk {{#ifeq:{{{8}}}|1|other uses|{{{8}}}}}, lihat {{#if:{{{9|}}}|[[{{{9}}}]]|[[{{PAGENAME}} (disambiguasi)]]}}.}}<!--
-->}}<!--
-->}}<!--
-->}}}}}}<!--
-->{{#if:{{{_nocat|}}}||{{#if:{{{1|}}}{{{2|}}}||{{#if:{{{3|}}}|[[Kategori:Hatnote templates using unusual parameters|A{{PAGENAME}}]]}}}}}}</div>''<noinclude>[[Kategori:Templat hatnote]]
{{INTERWIKI|Q5766677}}
</noinclude>
7en3q1m3zuoekbe76svxr7ejmlcd904
Templat:Acre
10
16
35
34
2024-12-03T13:51:26Z
Jon Harald Søby
20
1 revisi diimpor
34
wikitext
text/x-wiki
{{convert|{{{1|12}}}|acre|hectare|abbr=on}}<noinclude>
{{documentation}}
[[Kategori:Templat format dan fungsi]]
[[en:voy:Template:Acre]]
</noinclude>
2hby4h2rh5z9t2w34mazi2wad7jpw59
Templat:Advert
10
17
41
40
2024-12-03T13:51:27Z
Jon Harald Søby
20
5 revisi diimpor
39
wikitext
text/x-wiki
{{Ambox
|type = content
|text = Artikel atau bagian ini penuh dengan '''[[Wikiwisata:Jangan berpromosi|tulisan promosi]]''' dan '''[[Wikiwisata:Kata-kata yang harus dihindari|terdengar seperti iklan]]'''. [[Wikiwisata:Libatkan diri|Libatkan diri]] dan [[Wikiwisata:Cara menyunting halaman|bantu memperbaikinya]]!
}}<includeonly>{{#ifeq:{{NAMESPACE}}|{{ns:0}}|[[Kategori:Artikel bernada promosi]]|<!-- Don't categorize when not in main (article) space. -->}}</includeonly><noinclude>
{{Documentation}}
{{INTERWIKI|Q6583806}}
</noinclude>
mq3hng296vst3q2ofqdlpwwhycppexc
Templat:Advert/doc
10
18
44
43
2024-12-03T13:51:27Z
Jon Harald Søby
20
2 revisi diimpor
43
wikitext
text/x-wiki
{{Documentation subpage}}
__NOTOC__
<!-- PLEASE ADD CATEGORIES AND INTERWIKIS AT THE BOTTOM OF THIS PAGE -->
=== Penggunaan ===
;artikel
* Untuk artikel yang memerlukan pembersihan besar-besaran, tempatkan <nowiki>{{advert}}</nowiki> di bagian atas artikel untuk mengingatkan pembaca.
;bagian
* Untuk menandai bagian tertentu alih-alih keseluruhab artikel, tempatkan <nowiki>{{advert}}</nowiki> di sebelah atas bagian.
=== Lihat juga ===
Templat ini menambahkan artikel ke [[:Category:Artikel bernada promosi]].
<includeonly>
<!-- CATEGORIES AND INTERWIKIS HERE, THANKS -->
[[Kategori:Templat pemeliharaan]]
</includeonly>
9iyyn1dgc4t66v3h9a1d11hx5c1u4ob
Templat:African Barncompass
10
19
46
45
2024-12-03T13:51:27Z
Jon Harald Søby
20
1 revisi diimpor
45
wikitext
text/x-wiki
{| style="background-color: #fdffe7; border: 1px solid #fceb92;"
|rowspan="2" style="vertical-align: middle; padding: 5px;" | [[Berkas:Barncompass-Africa.png|100px]]
|style="font-size: x-large; padding: 3px 3px 0 3px; height: 1.5em;" | '''BintangWiki Afrika'''
|-
|style="vertical-align: middle; padding: 3px;" | {{{1}}}
|}<noinclude>
[[Kategori:Templat BintangWiki]]
[[en:voy:Template:African Barncompass]]
</noinclude>
a5emoqw0he5wghiak69n9jvj55evjb0
Templat:Airport
10
20
48
47
2024-12-03T13:51:27Z
Jon Harald Søby
20
1 revisi diimpor
47
wikitext
text/x-wiki
#REDIRECT [[Templat:Airport skeleton]]
4jt91q6r8v3ssuocazk0g3uxgc8y4e1
Templat:Airport skeleton
10
21
52
51
2024-12-03T13:51:27Z
Jon Harald Søby
20
3 revisi diimpor
49
wikitext
text/x-wiki
{{pagebanner|Generic flying banner.jpg}}
'''Nama bandara''' ({{IATA|}}) berada di [[Wilayah]] dari [[Negara]].
==Pahami==
==Penerbangan==
==Transportasi darat==
==Berkeliling==
==Menunggu==
==Makan dan minum==
==Beli==
==Terhubung==
==Naungan==
==Tidur==
==Sekitaran==
{{IsPartOf|}}
{{outlineairport}}
<includeonly>{{geo||}}</includeonly>
iey78ttjg30denmiseqlih8a37a6il4
Templat:Ambox
10
22
2444
68
2024-12-03T14:15:59Z
Jon Harald Søby
20
1 revisi diimpor
67
wikitext
text/x-wiki
<templatestyles src="Template:Ambox/styles.css" />
<table class="metadata plainlinks noprint ambox {{#switch:{{{small|}}}
| left = mbox-small-left width="20%"
}} " style="{{{style|}}}margin:0 25% 1.5em;border:1px solid #AAAAAA;{{#switch:{{{type|}}}
| speedy = background:#FFDDDD;border-left:10px #B22222 solid;
| delete = background:#FBFBFB;border-left:10px #B22222 solid;
| content = background:#FBFBFB;border-left:10px #F28500 solid;
| approval = background:#FBFBFB;border-left:10px #0B610B solid;
| move = background:#FBFBFB;border-left:10px #9933CC solid;
| style = background:#FBFBFB;border-left:10px #F4C430 solid;
| protection = background:#FBFBFB;border-left:10px #BBBBAA solid;
| hierarchy = background:#FBFBFB;border-left:10px #9933CC solid;
| notice<!-- = default -->
| custom = background:#FBFBFB;border-left:10px {{{color}}} solid;
| #default = background:#FBFBFB;border-left:10px #1E90FF solid;
}}{{#if:{{{stacked|}}}|border-top:-1px;}}"><tr>
{{#switch:{{{image|}}}
| blank <!-- Kembali ke "tidak ada", karena tidak digunakan lagi. -->
| none =
<td class="mbox-empty-cell" style="width:1px;border:none;padding:0;"></td><!-- Tidak ada gambar. Sel dengan beberapa lebar atau bantalan yang diperlukan agar sel teks memiliki lebar 100%. -->
| #default =
<td class="mbox-image" style="border:none;padding:2px 0 2px 0.9em;text-align:center;">{{#switch:{{{small|}}}
| left = <!-- Jangan gunakan DIV -->
| #default = <div style="min-width:25px;">
}}{{#if:{{{image|}}}
| {{{image}}}
| {{#switch:{{{type|}}}
| speedy = [[Berkas:Ambox deletion.png|Speedy|{{#switch:{{{small|}}}|left=25x25px|#default=40x40px}}|link=]]
| delete = [[Berkas:Ambox deletion.png|Delete|{{#switch:{{{small|}}}|left=25x25px|#default=40x40px}}|link=]]
| content = [[Berkas:Ambox content.png|Content|{{#switch:{{{small|}}}|left=25x25px|#default=40x40px}}|link=]]
| approval = [[Berkas:Thumb up icon.svg|Approval|{{#switch:{{{small|}}}|left=25x25px|#default=40x40px}}|link=]]
| move = [[Berkas:Ambox_move.png|Move|{{#switch:{{{small|}}}|left=20x20px|#default=25x25px}}|link=]]
| style = [[Berkas:Edit-clear.svg|Style|{{#switch:{{{small|}}}|left=20x20px|#default=25x25px}}|link=]]
| protection = [[Berkas:Ambox protection.png|Protection|{{#switch:{{{small|}}}|left=20x20px|#default=40x40px}}|link=]]
| hierarchy = [[Berkas:Categorisation-hierarchy-top2down.svg|hHerarchy|{{#switch:{{{small|}}}|left=20x20px|#default=40x40px}}|link=]]
| notice<!-- = default -->
| #default = [[Berkas:Ambox notice.png|Information|{{#switch:{{{small|}}}|left=25x25px|#default=40x40px}}|link=]]
}}
}}{{#switch:{{{small|}}}
| left = <!-- Jangan gunakan /DIV -->
| #default = </div>
}}</td>
}}
<td class="mbox-text" style="{{{textstyle|}}}width:100%;border:none;padding:0.25em 0.9em;text-align:left;font-size:80%;line-height:1.4em;">{{#if:{{{small|}}}|<abbr title="{{{text|}}}">{{{smalltext|}}}</abbr>|<div class="mbox-text-span">{{{text|}}}{{#if:{{{fix|}}}|<span class="hide-when-compact"> {{{fix}}}</span>}}</div>}}</td>
{{#if:{{{imageright|}}}
| {{#ifeq:{{{imageright|}}}|none
| <!-- Tidak ada gambar. -->
| <td class="mbox-imageright" style="border:none;padding:2px 0.9em 2px 0;text-align:center;">{{#switch:{{{small|}}}
| left = {{{imageright|}}}
| #default = <div style="width:{{{imagerightwidth|52}}}px;">{{{imageright|}}}</div>
}}</td>
}}
}}
</tr></table><noinclude>{{Dokumentasi}}
{{INTERWIKI|Q5617634}}
</noinclude>
3bilmrhg0xdkh0xt8e02f5ryarbf2mx
Templat:Ambox/core
10
23
71
70
2024-12-03T13:51:28Z
Jon Harald Søby
20
2 revisi diimpor
70
wikitext
text/x-wiki
<table style="margin: 0px 10%; border: 1px solid #aaa; border-left: 10px solid #1e90ff; background: #fbfbfb; {{{style|}}}">
<tr>
{{#switch:{{{image|}}}
| blank <!-- Fall back to "none", since deprecated. -->
| none = <td style="border: none; padding: 0px; width: 1px;"></td> <!-- No image. Cell with some width or padding necessary for text cell to have 100% width. -->
| #default =
<td style="border: none; padding: 2px 0 2px 0.9em; text-align: center;">{{
#switch:{{{small|}}}
| left = <!-- Don't use the DIV -->
| #default = <div style="width: 52px;">
}}
{{#if:{{{image|}}}
| {{{image}}}
| [[Berkas:{{#switch:{{{type|}}}
| speedy = Ambox speedy deletion.png
| delete = Ambox deletion.png
| content = Ambox content.png
| style = Edit-clear.svg
| move = Ambox move.png
| protection = Ambox protection.png
| license = Imbox license.png
| notice <!-- notice = default -->
| #default = Ambox notice.png
}} | {{#switch:{{{small|}}}
| left = 20x20px
| #default = 40x40px
}} |link=|alt=]]
}}{{#switch:{{{small|}}}
| left = <!-- Don't use the /DIV -->
| #default = </div>
}}</td>
}}
<td style="border: none; padding: 0.25em 0.9em; width: 100%; {{{textstyle|}}}"> {{{text}}} </td>
{{#if:{{{imageright|}}}
| {{#ifeq:{{{imageright|}}}|none
| <!-- No image. -->
| <td style="border: none; padding: 2px 0.9em 2px 0; text-align: center">{{#switch:{{{small|}}}
| left = {{{imageright}}}
| #default = <div style="width: 52px;"> {{{imageright}}} </div>
}}</td>
}}
}}
</tr>
</table><noinclude>[[Kategori:Templat dasar]]</noinclude>
a4fh9a50i5ua4aht37ck4birse1gbaj
Templat:Ambox/doc
10
24
80
79
2024-12-03T13:51:28Z
Jon Harald Søby
20
8 revisi diimpor
78
wikitext
text/x-wiki
{{Subhalaman dokumentasi}}
{{Menggunakan TemplateStyles|Template:Ambox/styles.css}}
__NOTOC__
<!-- HARAP TAMBAHKAN KATEGORI DAN INTERWIKIS DI BAWAH HALAMAN INI -->
{{Templat-templat kotak pesan}}
Ini adalah templat dasar untuk '''kotak info artikel''' seperti {{Tl|Delete}} dll. Templat-meta ini menggunakan kelas CSS "ambox" di MediaWiki:Common.css <!--(yang saat ini belum diimplementasikan di id.wiki dan digantikan dengan kelas "messagebox" ''instead'')-->
== Parameter umum ==
<pre>
{{Ambox
| type =
| text =
| image =
}}
</pre>
=== Penjelasan parameter ===
==== Type ====
===== Gambar =====
* speedy = [[Berkas:Ambox deletion.png|40x40px]]
* delete = [[Berkas:Icono_aviso_borrar.svg|40x40px]]
* serious = [[Berkas:Ambox deletion.png|40x40px]]
* content = [[Berkas:Ambox content.png|40x40px]]
* style = [[Berkas:Ambox style.png|40x40px]]
* move = [[Berkas:Ambox move.png|40x40px]]
* protect = [[Berkas:Imbox protection.png|40x40px]]
* notice <!-- notice = default -->
* #default = [[Berkas:Ambox notice.png|40x40px]]
===== Warna kotak =====
{{Ambox|type= speedy|text=speedy/serious}}
{{Ambox|type= delete|text=delete}}
{{Ambox|type= content|text=content}}
{{Ambox|type= style|text=style}}
{{Ambox|type= move|text=move}}
{{Ambox|type= protect|text=protect}}
{{Ambox|type= notice|text=notice/#default}}
==== Text ====
* '''Wajib diisi!''' Parameter ini digunakan untuk menampilkan teks.
==== Image ====
* Untuk menampilkan gambar
== Contoh penggunaan ==
<pre>
{{Ambox
| type = notice
| text = Halaman ini <u>perlu diperbaiki</u>!
| small = Harap untuk diperbaiki.
}}
</pre>
Hasil :
{{Ambox
|type = notice
|text = Halaman ini <u> perlu diperbaiki</u>!
|small = Harap untuk diperbaiki.
}}
[[Kategori:Templat umum]]
[[Kategori:Templat meta Wikipedia]]
hf1kjpi16bvg4n4su87kizh785kv9pv
Templat:Ambox/styles.css
10
25
82
81
2024-12-03T13:51:28Z
Jon Harald Søby
20
1 revisi diimpor
81
sanitized-css
text/css
body.skin-minerva .ambox {
margin: 0 !important;
border: none !important;
}
body.skin-minerva .mbox-text {
font-size: 100% !important;
padding: 8px 8px 8px 32px !important;
line-height: normal;
}
0aerjyxfbv8i0iev1sgrrsufgmngdvj
Templat:Anchor
10
26
86
85
2024-12-03T13:51:29Z
Jon Harald Søby
20
3 revisi diimpor
85
wikitext
text/x-wiki
{{#if:{{{1|}}}|<span id="{{{1|}}}"></span>}}<!--
-->{{#if:{{{2|}}}|<span id="{{{2|}}}"></span>}}<!--
-->{{#if:{{{3|}}}|<span id="{{{3|}}}"></span>}}<!--
-->{{#if:{{{4|}}}|<span id="{{{4|}}}"></span>}}<!--
-->{{#if:{{{5|}}}|<span id="{{{5|}}}"></span>}}<!--
-->{{#if:{{{6|}}}|<span id="{{{6|}}}"></span>}}<!--
-->{{#if:{{{7|}}}|<span id="{{{7|}}}"></span>}}<!--
-->{{#if:{{{8|}}}|<span id="{{{8|}}}"></span>}}<!--
-->{{#if:{{{9|}}}|<span id="{{{9|}}}"></span>}}<!--
-->{{#if:{{{10|}}}|<span id="{{{10|}}}"></span>}}<!--
-->{{#if:{{{11|}}}|<span class="error">[[Templat:Anchor]]: terlalu banyak anchor, maksimal adalah 10.</span>}}<noinclude>
{{INTERWIKI|Q5412976}}
</noinclude>
jfmnna5oltogp76e4t1yc9p6ckjldkn
Templat:Artikel baru
10
27
91
90
2024-12-03T13:51:29Z
Jon Harald Søby
20
4 revisi diimpor
90
wikitext
text/x-wiki
<div style="background-color:#cedff2; color: #000; padding: 14px 16px; margin: 10px 0px; clear:both; border:1px solid #aaa; border-spacing:10px 1px;"><span style="font:bold 120% sans-serif;">'''Buat Artikel Baru'''</span><br><br>
<inputbox>
type=create
width=90
bgcolor=#cedff2
preload=Template:Standard content for new page
editintro=Template:Instructions
default=
buttonlabel=Buat Halaman Baru
</inputbox>
</div>
<noinclude>
[[Kategori:Templat]]
</noinclude>
hxb9301mbw3bu1gazg36djpwp19febx
Templat:Asian Barncompass
10
28
93
92
2024-12-03T13:51:29Z
Jon Harald Søby
20
1 revisi diimpor
92
wikitext
text/x-wiki
{| style="background-color: #fdffe7; border: 1px solid #fceb92;"
|rowspan="2" style="vertical-align: middle; padding: 5px;" | [[Berkas:Barncompass-Asia.png|100px]]
|style="font-size: x-large; padding: 3px 3px 0 3px; height: 1.5em;" | '''BintangWiki Asia'''
|-
|style="vertical-align: middle; padding: 3px;" | {{{1}}}
|}<noinclude>
[[Kategori:Templat BintangWiki]]
[[en:voy:Template:Asican Barncompass]]
</noinclude>
l8x3654siijiv6yt95b18ijl5eh6zk1
Templat:Asian cuisines
10
29
100
99
2024-12-03T13:51:29Z
Jon Harald Søby
20
6 revisi diimpor
99
wikitext
text/x-wiki
{| style="margin: 1em auto 1em auto;"
| style="text-align:center;" | '''[[Makanan dan minuman|Hidangan]] di [[Asia]] dan [[Oseania]]'''<br />[[Hidangan Australia|Australia]] • [[Hidangan Kamboja|Kamboja]] • [[Hidangan Tionghoa|Tionghoa]] • [[Hidangan Filipina|Filipina]] • [[Hidangan Indonesia|Indonesia]] • [[Hidangan Jepang|Jepang]] • [[Hidangan Korea|Korea]] • [[Hidangan Malaysia, Singapura, dan Brunei|Malaysia, Singapura, dan Brunei]] • [[Hidangan Timur Tengah|Timur Tengah]] • [[Hidangan Asia Selatan|Asia Selatan]] • [[Hidangan Thailand|Thailand]] • [[Hidangan Vietnam|Vietnam]]
|}<noinclude>[[Kategori:Templat]] {{INTERWIKI|Q115588289}}
</noinclude>
10iuxec1ybdjhjnq6pqeat6q133mt1a
Templat:Auto archiving
10
30
102
101
2024-12-03T13:51:29Z
Jon Harald Søby
20
1 revisi diimpor
101
wikitext
text/x-wiki
<noinclude>{{Dokumentasi}}</noinclude>
kew9cen9hsw309u99rg82xpndf44404
Templat:BASICPAGENAME
10
31
104
103
2024-12-03T13:51:29Z
Jon Harald Søby
20
1 revisi diimpor
103
wikitext
text/x-wiki
{{#Invoke:BASICPAGENAME|BASICPAGENAME}}
q4h9kyeqq7vr8ifr38wtzfev52oo9my
Templat:BDT
10
32
106
105
2024-12-03T13:51:29Z
Jon Harald Søby
20
1 revisi diimpor
105
wikitext
text/x-wiki
{{currency|BDT|{{{1|}}}}}<noinclude>
{{Individual currency template documentation}}
[[Kategori:Templat mata uang individual]]
[[en:voy:Template:BDT]]
</noinclude>
a0m65w2ovbivwapl368qgdq7g9ttwnh
Templat:Babels
10
33
108
107
2024-12-03T13:51:30Z
Jon Harald Søby
20
1 revisi diimpor
107
wikitext
text/x-wiki
==={{{2}}} ({{{1}}})===
{|
|<nowiki>{{</nowiki>#Babel:{{{1}}}-0<nowiki>}}</nowiki>||{{#ifeq:{{{hide0|}}}|yes||{{#Babel:{{{1}}}-0}}}}
|-
|<nowiki>{{</nowiki>#Babel:{{{1}}}-1<nowiki>}}</nowiki>||{{#ifeq:{{{hide1|}}}|yes||{{#Babel:{{{1}}}-1}}}}
|-
|<nowiki>{{</nowiki>#Babel:{{{1}}}-2<nowiki>}}</nowiki>||{{#ifeq:{{{hide2|}}}|yes||{{#Babel:{{{1}}}-2}}}}
|-
|<nowiki>{{</nowiki>#Babel:{{{1}}}-3<nowiki>}}</nowiki>||{{#ifeq:{{{hide3|}}}|yes||{{#Babel:{{{1}}}-3}}}}
|-
|<nowiki>{{</nowiki>#Babel:{{{1}}}-4<nowiki>}}</nowiki>||{{#ifeq:{{{hide4|}}}|yes||{{#Babel:{{{1}}}-4}}}}
|-
|<nowiki>{{</nowiki>#Babel:{{{1}}}<nowiki>}}</nowiki>||{{#ifeq:{{{hide|}}}|yes||{{#Babel:{{{1}}}}}}}
|}<noinclude>
{{Documentation|content=
Templat ini digunakan untuk membuat daftar kotak pengguna Babel. Parameter pertama adalah kode bahasa, dan parameter kedua adalah nama bahasa.
Contoh:
<nowiki>{{Babels|en|English}}</nowiki> menghasilkan
{{Babels|en|English}}
}}</noinclude>
8trrfpw211gjgrlz6yfmqy1hfnpu3n9
Templat:Bagus
10
34
2446
113
2024-12-03T14:15:59Z
Jon Harald Søby
20
1 revisi diimpor
112
wikitext
text/x-wiki
[[Berkas:Symbol_star_gold.svg|15px]] '''[[Wikiwisata:Artikel bintang|Bintang]]'''<noinclude>
[[en:voy:Template:Star]]
</noinclude>
rusgo5q5ivbzp8jc9liemmispd6g9wb
Templat:Bahasa
10
35
115
114
2024-12-03T13:51:30Z
Jon Harald Søby
20
1 revisi diimpor
114
wikitext
text/x-wiki
<div class="path" style="width:100%; border: 1px #ccc solid; -moz-border-radius: 5px; -webkit-border-radius: 5px; border-radius: 5px; box-shadow: 1px 1px 10px -2px rgba(0,0,0,0.5); -moz-box-shadow: 1px 1px 10px -2px rgba(0,0,0,0.5); -webkit-box-shadow: 1px 1px 10px -2px rgba(0,0,0,0.5); margin-top: 10px;">
{{HU/Blok|title=Bahasa lainnya|color=#c7f5f6}}
<div style="margin: 5px 10px;">
{{Wikivoyage}}
</div>
</div><noinclude>
[[Kategori:Templat]]
</noinclude>
qfm407wof05tirjf3cxx6kfvs4aop30
Templat:Bak pasir
10
36
118
117
2024-12-03T13:51:30Z
Jon Harald Søby
20
2 revisi diimpor
117
wikitext
text/x-wiki
{{Template:Bak pasir/top}}<!--
* Selamat datang di Bak pasir templat! *
* Silakan abaikan bagian ini *
* Jangan ragu untuk mencoba menyunting di bawah ini *
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ -->
<templatestyles src="Template:Bak pasir/styles.css" />
<div class="bannertest"></div><noinclude>
{{INTERWIKI|Q16322454}}
</noinclude>
sjs4ig80spil4empoant0lvuxvacjqw
Templat:Bak pasir/styles.css
10
37
120
119
2024-12-03T13:51:30Z
Jon Harald Søby
20
1 revisi diimpor
119
sanitized-css
text/css
@media only screen and (min-width: 800px) {
.bannertest {
width: 100%;
height: 230px;
background-image: url("https://upload.wikimedia.org/wikipedia/commons/b/b7/Wikivoyage_Photomontage_banner.jpg");
}
}
ghc84tbd46vy4xrh4lskdq4x86pji1u
Templat:Bak pasir/top
10
38
123
122
2024-12-03T13:51:30Z
Jon Harald Søby
20
2 revisi diimpor
122
wikitext
text/x-wiki
Selamat datang di '''Bak pasir templat''', tempat bagi pengguna untuk berlatih menggunakan dan/atau berkreasi [[Wikiwisata:Menggunakan templat Mediawiki|templat-templat Mediawiki]]. Untuk menyunting, silakan <span class="plainlinks">'''[{{SERVER}}{{localurl:{{NAMESPACE}}:{{PAGENAME}}|action=edit}} klik disini]'''</span> atau tab ''Sunting'' di atas. Konten di sini '''tidak''' akan disimpan secara permanen; sebab halaman ini dibersihkan secara berkala, serta bisa ditimpa oleh pengguna lainnya. '''Tolong''' dimpan hasil uji Anda di tempat lain, dan selamat [[Wikiwisata:Libatkan diri|bersenang-senang]]!
Suntinglah di bawah baris ini:
-----<noinclude>
{{INTERWIKI|Q121848394}}
</noinclude>
psr8azoi8sdeywckcj6f05ly2vi0ze0
Templat:Banner
10
39
2448
128
2024-12-03T14:15:59Z
Jon Harald Søby
20
1 revisi diimpor
127
wikitext
text/x-wiki
<templatestyles src="Banner/styles.css"/>
<div class="banner-image js-proportonal-resize">
[[Berkas:Interactive icon.svg|frameless|link=|class=nolink interactiveIcon]]
<div class="mainpage-shadowbox banner-box-2 banner-box-{{{direction}}}" {{#if:{{{width|}}}|style="width:{{{width}}}"}}>
<h2>[[{{{title}}}|{{{alt-title|{{{title}}}}}}]]</h2>
<h3>[[{{{section-link}}}|{{{section}}}]]</h3>
<div class="quote">[[{{{title}}}|{{{quote}}}]]</div>
</div>
[[Berkas:{{{image}}}|frameless|1700px|link=|{{{title}}}|class=nolink]]
[[Berkas:{{{image}}}|frameless|1700px|link={{{title}}}|{{{title}}}]]</div>
<!-- -->
<noinclude>
{{Documentation}}
{{INTERWIKI|Q15630253}}
</noinclude>
m72ehiiicocvfhlotu33o4jn6mh4n2e
Templat:Banner/styles.css
10
40
133
132
2024-12-03T13:51:31Z
Jon Harald Søby
20
4 revisi diimpor
132
sanitized-css
text/css
.mainpage-shadowbox {
color: white;
background: rgb(16,16,16);
background: rgba(0,0,0,0.3);
border-radius: 4px;
}
.mainpage-shadowbox h2, .mainpage-shadowbox h3 {
color: white;
border:none;
font-family: sans-serif;
line-height: 1.2em;
margin:0;
padding: 0; /* was previously set only for h3, and skin styles would do the same for h2. however, cannot rely on skin to do this on mobile */
}
.mainpage-shadowbox a {
color: white;
font-weight: bold;
}
.banner-image {
position: relative;
max-width: 1125px;
height: auto;
margin-bottom: .6em;
}
.banner-image img {
max-width: 100%;
height: auto;
/* width: auto\9; */ /* ie8 */
}
.banner-box-wide {
width: 80%
}
.banner-box-left,
.banner-box-right {
padding: 8px 7px;
background: rgb(16,16,16);
background: rgba(0,0,0,0.3);
border-radius: 4px;
width: 40%;
}
.banner-box-left { text-align: left; }
.banner-box-right { text-align: right; }
.banner-box-2 {
position: absolute;
z-index: 2;
min-width: 20em;
}
@media screen and ( min-width: 720px ) { /* greater than or equal to */
.banner-image img.nolink { display: none; } /* can be removed when backward compat is no longer needed */
.banner-image span[typeof~='mw:File/Frameless'].nolink { display: none; }
.mainpage-shadowbox h2 {
font-size: 190%;
}
.mainpage-shadowbox h3 {
font-size: 150%;
}
.banner-image {
overflow: hidden;
}
.banner-box-left {
left: 3%;
}
.banner-box-right {
right: 3%;
}
.banner-box-2 {
margin-top: 2em;
}
.banner-box-2 .quote {
font-size: 80%;
line-height: 1.2em;
}
}
@media screen and ( max-width: 720px ) {
.banner-image img:not(.nolink) { display: none; } /* can be removed when backward compat is no longer needed */
.banner-image span[typeof~='mw:File/Frameless'] img { display: inline-block; } /* can be removed when b/c is no longer needed */
.banner-image span[typeof~='mw:File/Frameless']:not(.nolink) { display: none; }
.banner-image > .mainpage-shadowbox {
width: inherit !important;
min-height: 100%;
margin-left: -150%;
margin-right: 150%;
opacity: 0;
background: black;
}
.mainpage-shadowbox .quote > a:after {
content: '\ATap to learn more.';
white-space: pre; /* needed to make content work. if content is disabled, this can be, too */
}
.jcarousel-item:hover .mainpage-shadowbox {
margin: unset;
opacity: 1;
transition: margin 0.5s; /* without this, problem with tap on image still activating links - speed may matter here */
bottom: 50%; /* relative vertical position; change to top to lower, negative percentages do not work as naively expected */
}
.jcarousel-control-prev, .jcarousel-control-next {
display: none;
/* hide the carousel arrows */
/* a kludge resulting from gadgets not working on mobile */
/* unforunately also targets very narrow desktops, but there can't be too many of those */
/* and besides, the number buttons still work */
}
img.interactiveIcon, /* can be removed when backward compat is no longer needed */
.interactiveIcon img {
position: absolute;
opacity: 0.4;
height: 75% !important;
width: auto;
bottom: 0;
right: 0;
}
}
amnpnu6yjnvwakhvljskwbl2wutwku1
Templat:Bea cukai
10
41
136
135
2024-12-03T13:51:31Z
Jon Harald Søby
20
2 revisi diimpor
135
wikitext
text/x-wiki
Bea cukai [[Berkas:Aiga customs.svg|25px|link=]]<noinclude>[[Kategori:Templat AIGA]][[zh:voy:海關]]</noinclude>
6uo5dev6c5oc0vg34iysnewhkvxwvps
Templat:Belajar
10
42
139
138
2024-12-03T13:51:31Z
Jon Harald Søby
20
2 revisi diimpor
138
wikitext
text/x-wiki
Belajar [[Berkas:Microsoft Tips icon.png|27px|link=]]<noinclude>[[Kategori:Templat AIGA]]</noinclude>
liw2pphgvbo9xfaab6umr7fqd5bj3w3
Templat:Beli
10
43
143
142
2024-12-03T13:51:31Z
Jon Harald Søby
20
3 revisi diimpor
142
wikitext
text/x-wiki
Beli [[Berkas:Aiga shops.svg|24px|link=]]<noinclude>[[Kategori:Templat AIGA]][[zh:voy:Template:购物]]</noinclude>
2pt7kyyg2pubqylwa5cft5iaa9sv9bh
Templat:Berkeliling
10
44
149
148
2024-12-03T13:51:31Z
Jon Harald Søby
20
5 revisi diimpor
148
wikitext
text/x-wiki
Berkeliling [[Berkas:AS-rondo-icon.svg|23px|link=]]<noinclude>[[Kategori:Templat AIGA]][[zh:voy:Template:交通]]</noinclude>
m7gzmuigok8a6araauq8fwfy751lr2b
Templat:Bersihkan
10
45
154
153
2024-12-03T13:51:31Z
Jon Harald Søby
20
4 revisi diimpor
153
wikitext
text/x-wiki
<span class="noprint plainlinks purgelink">[{{fullurl:{{{page|{{FULLPAGENAME}}}}}|action=bersihkan}}#{{#if:{{{anchor|}}}|{{urlencode:{{{anchor|}}}|WIKI}}}} <span title="Bersihkan halaman ini">{{{1|Purge}}}</span>]</span><noinclude>
{{Dokumentasi}}
[[en:voy:Template:Purge]]
</noinclude>
24inaeabyuu5f182g7ad8mz9pt0z0c2
Templat:Biaya
10
46
156
155
2024-12-03T13:51:31Z
Jon Harald Søby
20
1 revisi diimpor
155
wikitext
text/x-wiki
Biaya [[Berkas:Iconoir calculator.svg|21px|link=]]<noinclude>[[Kategori:Templat AIGA]]</noinclude>
gvapwq0izqxuzda24vauux73t8y9pnu
Templat:Bicara
10
47
158
157
2024-12-03T13:51:32Z
Jon Harald Søby
20
1 revisi diimpor
157
wikitext
text/x-wiki
Bicara [[Berkas:Icon Talking Points.svg|24px|link=]]<noinclude>[[Kategori:Templat AIGA]]</noinclude>
tnlv1n13173wqlpqtdi5fcywqog3x6k
Templat:Border style
10
48
160
159
2024-12-03T13:51:32Z
Jon Harald Søby
20
1 revisi diimpor
159
wikitext
text/x-wiki
border{{{A<includeonly>|</includeonly>}}}: {{{1|{{{T<includeonly>|</includeonly>}}}px {{{M<includeonly>|</includeonly>}}} {{{W<includeonly>|</includeonly>}}}}}}; -webkit-border-radius: {{{U<includeonly>|</includeonly>}}}px; -moz-border-radius: {{{U<includeonly>|</includeonly>}}}px; -o-border-radius: {{{U<includeonly>|</includeonly>}}}px;
asetcyl3rrrcqtvehapkwmug87n6ote
Templat:Br
10
49
163
162
2024-12-03T13:51:32Z
Jon Harald Søby
20
2 revisi diimpor
162
wikitext
text/x-wiki
<br><noinclude>
{{INTERWIKI|Q74536897}}
</noinclude>
ol100i5me0es8ffucihu5ey30isw1cx
Templat:Bugzilla
10
50
166
165
2024-12-03T13:51:32Z
Jon Harald Søby
20
2 revisi diimpor
165
wikitext
text/x-wiki
<span class="plainlinks">[https://bugzilla.wikimedia.org/ Bugzilla]: <!--
-->{{#if:{{{1|}}}|[https://bugzilla.wikimedia.org/show_bug.cgi?id={{{1}}} {{{1}}}]}}<!--
-->{{#if:{{{2|}}}| • [https://bugzilla.wikimedia.org/show_bug.cgi?id={{{2}}} {{{2}}}]}}<!--
-->{{#if:{{{3|}}}| • [https://bugzilla.wikimedia.org/show_bug.cgi?id={{{3}}} {{{3}}}]}}<!--
-->{{#if:{{{4|}}}| • [https://bugzilla.wikimedia.org/show_bug.cgi?id={{{4}}} {{{4}}}]}}<!--
-->{{#if:{{{5|}}}| • [https://bugzilla.wikimedia.org/show_bug.cgi?id={{{5}}} {{{5}}}]}}<!--
-->{{#if:{{{6|}}}| • [https://bugzilla.wikimedia.org/show_bug.cgi?id={{{6}}} {{{6}}}]}}<!--
-->{{#if:{{{7|}}}| • [https://bugzilla.wikimedia.org/show_bug.cgi?id={{{7}}} {{{7}}}]}}</span><noinclude>
{{INTERWIKI|Q6732138}}
</noinclude>
1vr6og2mc2b7n89nddhxo1in4elx1t0
Templat:Bus
10
51
168
167
2024-12-03T13:51:32Z
Jon Harald Søby
20
1 revisi diimpor
167
wikitext
text/x-wiki
Dengan bus [[Berkas:Aiga bus trans.svg|17px|link=]]<noinclude>[[Kategori:Templat AIGA]][[zh:voy:Template:客车]]</noinclude>
0dq06oty82195zfxd2a3qktu2meoue6
Templat:Buy
10
52
2460
174
2024-12-03T14:15:59Z
Jon Harald Søby
20
6 revisi diimpor
173
wikitext
text/x-wiki
<includeonly>{{Listing
| type=buy
| counter={{{counter|buy}}}
| name={{{name|}}}
| alt={{{alt|}}}
| address={{{address|}}}
| directions={{{directions|}}}
| phone={{{phone|}}}
| tollfree={{{tollfree|}}}
| email={{{email|}}}
| fax={{{fax|}}}
| url={{{url|}}}
| hours={{{hours|}}}
| price={{{price|}}}
| lat={{{lat|}}}
| long={{{long|}}}
| lastedit={{{lastedit|}}}
| content={{{content|}}}
| image={{{image|}}}
| wikipedia={{{wikipedia|}}}
| wikidata={{{wikidata|}}}
| inline={{{inline|}}}
| {{{1|}}}}}</includeonly>
<noinclude>
[[Kategori:Templat]]
{{INTERWIKI|Q14330718}}
</noinclude>
5cbz24amtaqm423x9089ymfjejc6hsu
Templat:Buy/doc
10
53
176
175
2024-12-03T13:51:32Z
Jon Harald Søby
20
1 revisi diimpor
175
wikitext
text/x-wiki
== Penggunaan ==
__NOTOC__
<pre>{{Buy
| name = | alt = | url = | email =
| address = | lat = | long = | directions =
| phone = | tollfree = | fax =
| hours = | price =
| lastedit=
| content =
}}</pre>
hdcsdl8j3p9lv98ovpvfkv61qumlrtd
Templat:CLP
10
54
178
177
2024-12-03T13:51:33Z
Jon Harald Søby
20
1 revisi diimpor
177
wikitext
text/x-wiki
{{currency|CLP|{{{1|}}}}}<noinclude>
{{Individual currency template documentation}}
[[Kategori:Templat mata uang individual]]
[[en:voy:Template:CLP]]
</noinclude>
csnuiko4f6rgfsz3gr0bc5km93lrivo
Templat:CNY
10
55
180
179
2024-12-03T13:51:33Z
Jon Harald Søby
20
1 revisi diimpor
179
wikitext
text/x-wiki
{{currency|CNY|{{{1|}}}}}<noinclude>
{{Individual currency template documentation}}
[[Kategori:Templat mata uang individual]]
[[en:voy:Template:CNY]]
</noinclude>
4hl4u4gn9vfr0hit5gkfftqo1121oju
Templat:CNYdates
10
56
182
181
2024-12-03T13:51:33Z
Jon Harald Søby
20
1 revisi diimpor
181
wikitext
text/x-wiki
#REDIRECT [[Templat:LunarNewYeardates]]
gu9eioz5p90o3mjt0osqhr09wf2faq5
Templat:COVID-19 box
10
57
186
185
2024-12-03T13:51:33Z
Jon Harald Søby
20
3 revisi diimpor
184
wikitext
text/x-wiki
<includeonly><div style="display:table; align:center; background-color:#ffffdf; border:1px solid #888822; margin:0.5em 1em 0 1em; padding:6px;" class="pp_cautionbox">
{|
|- style="vertical-align: top;"
| style="width: 56px;" rowspan="2" | [[Berkas:Exclamationdiamond_blue.svg|link=|40px|Caution]]
| <span style="font-size:130%; color:#000000;">'''{{{boldtext|Informasi [[pandemi COVID-19|COVID-19]]}}}:'''</span> {{{1}}}
{{#if:{{{lastedit|}}} | {{#ifeq:{{{lastedit|}}} | permanent | |
{{!}}-
{{!}} style="color:gray; font-size: 85%" {{!}} ''(Informasi terakhir diperbarui pada {{#time: d M Y|{{{lastedit}}}}})''
}} }}
|}
</div>{{#ifeq:{{NAMESPACE}}|{{ns:0}}|[[Kategori:Memiliki kotak COVID-19]]{{#if:{{{lastedit|}}}| {{#ifeq:{{{lastedit|}}} | permanent | |<!--
check date
-->{{#iferror: {{#ifexpr: {{#time: U | now -3 months}} > {{#time: U | {{{lastedit|}}} }} | [[Kategori:Memiliki kotak COVID-19 tanpa tanggal peringatan]]| }}| [[Kategori:Memiliki kotak COVID-19 tanpa tanggal]] }} }}<!--
no date
--> | [[Kategori:Memiliki kotak COVID-19 tanpa tanggal]]}} }}</includeonly><noinclude>
[[en:voy:Template:COVID-19 box]]
</noinclude>
iy1m7q8z4kt0q6yf57hf6gvo18rda7k
Templat:CatTOC
10
58
190
189
2024-12-03T13:51:33Z
Jon Harald Søby
20
3 revisi diimpor
189
wikitext
text/x-wiki
{| border=0 class="toccolours plainlinks" style="margin: 0 auto 0 auto;"
|-
! {{MediaWiki:Toc}}:
| [{{fullurl:{{NAMESPACE}}:{{PAGENAME}}}} Utama] – [{{SERVER}}{{localurl:{{NAMESPACE}}:{{PAGENAME}}|from=0}} 0–9] [{{fullurl:{{NAMESPACE}}:{{PAGENAME}}|from=A}} A] [{{SERVER}}{{localurl:{{NAMESPACE}}:{{PAGENAME}}|from=B}} B] [{{fullurl:{{NAMESPACE}}:{{PAGENAME}}|from=C}} C] [{{SERVER}}{{localurl:{{NAMESPACE}}:{{PAGENAME}}|from=D}} D] [{{fullurl:{{NAMESPACE}}:{{PAGENAME}}|from=E}} E] [{{SERVER}}{{localurl:{{NAMESPACE}}:{{PAGENAME}}|from=F}} F] [{{fullurl:{{NAMESPACE}}:{{PAGENAME}}|from=G}} G] [{{SERVER}}{{localurl:{{NAMESPACE}}:{{PAGENAME}}|from=H}} H] [{{fullurl:{{NAMESPACE}}:{{PAGENAME}}|from=I}} I] [{{SERVER}}{{localurl:{{NAMESPACE}}:{{PAGENAME}}|from=J}} J] [{{fullurl:{{NAMESPACE}}:{{PAGENAME}}|from=K}} K] [{{SERVER}}{{localurl:{{NAMESPACE}}:{{PAGENAME}}|from=L}} L] [{{fullurl:{{NAMESPACE}}:{{PAGENAME}}|from=M}} M] [{{SERVER}}{{localurl:{{NAMESPACE}}:{{PAGENAME}}|from=N}} N] [{{fullurl:{{NAMESPACE}}:{{PAGENAME}}|from=O}} O] [{{SERVER}}{{localurl:{{NAMESPACE}}:{{PAGENAME}}|from=P}} P] [{{fullurl:{{NAMESPACE}}:{{PAGENAME}}|from=Q}} Q] [{{SERVER}}{{localurl:{{NAMESPACE}}:{{PAGENAME}}|from=R}} R] [{{fullurl:{{NAMESPACE}}:{{PAGENAME}}|from=S}} S] [{{SERVER}}{{localurl:{{NAMESPACE}}:{{PAGENAME}}|from=T}} T] [{{fullurl:{{NAMESPACE}}:{{PAGENAME}}|from=U}} U] [{{SERVER}}{{localurl:{{NAMESPACE}}:{{PAGENAME}}|from=V}} V] [{{fullurl:{{NAMESPACE}}:{{PAGENAME}}|from=W}} W] [{{SERVER}}{{localurl:{{NAMESPACE}}:{{PAGENAME}}|from=X}} X] [{{fullurl:{{NAMESPACE}}:{{PAGENAME}}|from=Y}} Y] [{{SERVER}}{{localurl:{{NAMESPACE}}:{{PAGENAME}}|from=Z}} Z]
|}<noinclude>
[[Kategori:Templat]]
[[bn:voy:টেমপ্লেট:CatTOC]]
[[de:voy:Vorlage:Category TOC]]
[[en:voy:Template:CatTOC]]
[[fa:voy:الگو:فهرست محتویات رده]]
[[it:voy:Template:Indice categoria]]
[[zh:voy:Template:CategoryTOC]]
</noinclude>
jo6lisyezvxo81xzx2e01936r8dwiee
Templat:Catscancall
10
59
192
191
2024-12-03T13:51:33Z
Jon Harald Søby
20
1 revisi diimpor
191
wikitext
text/x-wiki
https://petscan.wmflabs.org/?language=id&project=wikivoyage
fo9tbrf2m3wdtmxu4sw0n8aahka5x3c
Templat:Cautionbox
10
60
2462
195
2024-12-03T14:15:59Z
Jon Harald Søby
20
1 revisi diimpor
194
wikitext
text/x-wiki
<includeonly><div style="display:table; align:center; background-color:#ffffdf; border:1px solid #888822; margin:0.5em 1em 0 1em; padding:6px;" class="pp_cautionbox">
{|
|- style="vertical-align: top;"
| style="width: 56px;" rowspan="2" | [[Berkas:Exclamationdiamond_blue.svg|link=|40px|Peringatan]]
| <span style="font-size:130%; color:#000000;">'''{{{boldtext|Catatan}}}:'''</span> {{{1}}}
{{#if:{{{lastedit|}}} | {{#ifeq:{{{lastedit|}}} | permanent | |
{{!}}-
{{!}} style="color:gray; font-size: 85%" {{!}} ''(Informasi diperbarui pada {{#time: d M Y|{{{lastedit}}}}})''
}} }}
|}
</div>{{#ifeq:{{NAMESPACE}}|{{ns:0}}|[[Kategori:Halaman yang memiliki caution box]]{{#if:{{{lastedit|}}}| {{#ifeq:{{{lastedit|}}} | permanent | |<!--
check date
-->{{#iferror: {{#ifexpr: {{#time: U | now -6 months}} > {{#time: U | {{{lastedit|}}} }} | [[Kategori:Halaman yang memiliki caution box tanpa tanggal peringatan]]| }}| [[Kategori:Halaman yang memiliki caution box tanpa tanggal]] }} }}<!--
no date
--> | [[Kategori:Has caution box with no date]]}} }}</includeonly><noinclude>[[en:voy:Template:Cautionbox]]</noinclude>
pabnhy5kruciiimonfo9a5i6cu2vl2o
Templat:Cc-by-sa-1.0
10
61
203
202
2024-12-03T13:51:34Z
Jon Harald Søby
20
7 revisi diimpor
202
wikitext
text/x-wiki
<!-- Creative Commons License -->{{Imbox
| type = license
| class = licensetpl
| image = [[Berkas:CC_some_rights_reserved.svg|90px|Creative Commons: Some Rights Reserved]] <br/> [[Berkas:Cc-by new white.svg|24px|BY]][[Berkas:Cc-sa white.svg|24px|SA]]
| textstyle = text-align: center;
| text = ''Karya ini dilisensikan menggunakan Lisensi [https://creativecommons.org/licenses/by-sa/1.0/ Creative Commons Atribusi-BerbagiSerupa 1.0]. {{#if:{{{1|}}}| <br/> Atribusi: {{{1|}}} }}''<span class="licensetpl_link" style="display:none;"><nowiki>https://</nowiki>creativecommons.org/licenses/by-sa/1.0/</span><span class="licensetpl_short" style="display:none;">CC-BY-SA-1.0</span><span class="licensetpl_long" style="display:none;">Creative Commons Attribution-ShareAlike 1.0</span><span class="licensetpl_link_req" style="display:none;">true</span><span class="licensetpl_attr_req" style="display:none;">true</span>
}}{{#ifeq:{{NAMESPACE}}|{{NS:6}}|[[Kategori:Berkas cc-by-sa-1.0]]}}<noinclude>
{{Documentation}}
<!-- Add categories and interwikis to the /doc subpage, not here! -->
{{INTERWIKI|Q6480992}}
</noinclude>
4m3cxms9449r0205pjvpzx2ffg6kw2o
Templat:Cc-by-sa-1.0/doc
10
62
209
208
2024-12-03T13:51:34Z
Jon Harald Søby
20
5 revisi diimpor
208
wikitext
text/x-wiki
{{Documentation subpage}}
<!--
PLEASE ADD CATEGORIES AND INTERWIKIS AT THE BOTTOM OF THIS PAGE
-->
==Penggunaan==
Untuk mengungkapkan atribusi penggunaan '''<nowiki>{{Cc-by-sa-1.0|Rincian atribusi}}</nowiki>'''. Bagi yang ingin mereproduksi karya tersebut, harus mengatribusikannya dengan cara yang ditentukan oleh pembuat karya atau pemberi lisensi (sebagai parameter "Rincian atribusi").
:''Templat Creative Commons lainnya tersedia di '''[[Wikipedia:Tag hak cipta berkas]]'''.Pastikan untuk menggunakan yang benar dan sesuai.''
==Lihat pula==
* {{tl|Cc-by-sa-2.0}}
* {{tl|Cc-by-sa-2.5}}
* {{tl|Cc-by-sa-3.0}}
* {{tl|Cc-by-sa-4.0}}
<includeonly>
[[Kategori:Templat hak cipta]]
</includeonly>
4evcdi3vuewv4vcb9uvuxx5d1s1jtkz
Templat:Cc-by-sa-2.0
10
63
212
211
2024-12-03T13:51:34Z
Jon Harald Søby
20
2 revisi diimpor
211
wikitext
text/x-wiki
<!-- Creative Commons License -->{{Imbox
| type = license
| class = licensetpl
| image = [[Berkas:CC_some_rights_reserved.svg|90px|Creative Commons: Some Rights Reserved]] <br/> [[Berkas:Cc-by new white.svg|24px|BY]][[Berkas:Cc-sa white.svg|24px|SA]]
| textstyle = text-align: center;
| text = ''Karya ini dilisensikan menggunakan Lisensi [https://creativecommons.org/licenses/by-sa/2.0/ Creative Commons Atribusi-BerbagiSerupa 2.0]. {{#if:{{{1|}}}| <br/> Atribusi: {{{1|}}} }}''<span class="licensetpl_link" style="display:none;"><nowiki>https://</nowiki>creativecommons.org/licenses/by-sa/2.0/</span><span class="licensetpl_short" style="display:none;">CC-BY-SA-2.0</span><span class="licensetpl_long" style="display:none;">Creative Commons Attribution-ShareAlike 2.0</span><span class="licensetpl_link_req" style="display:none;">true</span><span class="licensetpl_attr_req" style="display:none;">true</span>
}}{{#ifeq:{{NAMESPACE}}|{{NS:6}}|[[Kategori:Berkas cc-by-sa-2.0]]}}<noinclude>
{{Documentation}}
<!-- Add categories and interwikis to the /doc subpage, not here! -->
{{INTERWIKI|Q6058246}}
</noinclude>
4k6oiw32g11wy5v4blepuz4kqrjyqdn
Templat:Cc-by-sa-2.0/doc
10
64
215
214
2024-12-03T13:51:34Z
Jon Harald Søby
20
2 revisi diimpor
214
wikitext
text/x-wiki
{{Documentation subpage}}
<!--
PLEASE ADD CATEGORIES AND INTERWIKIS AT THE BOTTOM OF THIS PAGE
-->
==Penggunaan==
Untuk mengungkapkan atribusi penggunaan '''<nowiki>{{Cc-by-sa-2.0|Rincian atribusi}}</nowiki>'''. Bagi yang ingin mereproduksi karya tersebut, harus mengatribusikannya dengan cara yang ditentukan oleh pembuat karya atau pemberi lisensi (sebagai parameter "Rincian atribusi").
:''Templat Creative Commons lainnya tersedia di '''[[Wikipedia:Tag hak cipta berkas]]'''.Pastikan untuk menggunakan yang benar dan sesuai.''
=== Parameter ===
*dw - Gunakan <nowiki>|dw=yes</nowiki> untuk menekan kategorisasi medianya sebagai bebas, dimana ketika sebenarnya medianya tidak bebas sehingga tidak cocok untuk Wikimedia Commons.
==Lihat pula==
* {{tl|Cc-by-sa-1.0}}
* {{tl|Cc-by-sa-2.5}}
* {{tl|Cc-by-sa-3.0}}
* {{tl|Cc-by-sa-4.0}}
<includeonly>
[[Kategori:Templat hak cipta]]
</includeonly>
ph1radufsqmaiwm5ay5o9j0clk37a48
Templat:Cc-by-sa-2.5
10
65
218
217
2024-12-03T13:51:34Z
Jon Harald Søby
20
2 revisi diimpor
217
wikitext
text/x-wiki
<!-- Creative Commons License -->{{Imbox
| type = license
| class = licensetpl
| image = [[Berkas:CC_some_rights_reserved.svg|90px|Creative Commons: Some Rights Reserved]] <br/> [[Berkas:Cc-by new white.svg|24px|BY]][[Berkas:Cc-sa white.svg|24px|SA]]
| textstyle = text-align: center;
| text = ''Karya ini dilisensikan menggunakan Lisensi [https://creativecommons.org/licenses/by-sa/2.5/ Creative Commons Atribusi-BerbagiSerupa 2.5]. {{#if:{{{1|}}}| <br/> Atribusi: {{{1|}}} }}''<span class="licensetpl_link" style="display:none;"><nowiki>https://</nowiki>creativecommons.org/licenses/by-sa/2.5/</span><span class="licensetpl_short" style="display:none;">CC-BY-SA-2.5</span><span class="licensetpl_long" style="display:none;">Creative Commons Attribution-ShareAlike 2.5</span><span class="licensetpl_link_req" style="display:none;">true</span><span class="licensetpl_attr_req" style="display:none;">true</span>
}}{{#ifeq:{{NAMESPACE}}|{{NS:6}}|[[Kategori:Berkas cc-by-sa-2.5]]}}<noinclude>
{{Documentation}}
<!-- Add categories and interwikis to the /doc subpage, not here! -->
{{INTERWIKI|Q5831909}}
</noinclude>
qb4t65tpkcby5gifp7kgmm4qq95i231
Templat:Cc-by-sa-2.5/doc
10
66
222
221
2024-12-03T13:51:34Z
Jon Harald Søby
20
3 revisi diimpor
221
wikitext
text/x-wiki
{{Documentation subpage}}
<!--
PLEASE ADD CATEGORIES AND INTERWIKIS AT THE BOTTOM OF THIS PAGE
-->
==Penggunaan==
Untuk mengungkapkan atribusi penggunaan '''<nowiki>{{Cc-by-sa-2.5|Rincian atribusi}}</nowiki>'''. Bagi yang ingin mereproduksi karya tersebut, harus mengatribusikannya dengan cara yang ditentukan oleh pembuat karya atau pemberi lisensi (sebagai parameter "Rincian atribusi").
:''Templat Creative Commons lainnya tersedia di '''[[Wikipedia:Tag hak cipta berkas]]'''.Pastikan untuk menggunakan yang benar dan sesuai.''
=== Parameter ===
*dw - Gunakan <nowiki>|dw=yes</nowiki> untuk menekan kategorisasi medianya sebagai bebas, dimana ketika sebenarnya medianya tidak bebas sehingga tidak cocok untuk Wikimedia Commons.
==Lihat pula==
* {{tl|Cc-by-sa-1.0}}
* {{tl|Cc-by-sa-2.0}}
* {{tl|Cc-by-sa-3.0}}
* {{tl|Cc-by-sa-4.0}}
<includeonly>
[[Kategori:Templat hak cipta]]
</includeonly>
2g9vi7jwnxwm8vp7s807hz0k186n8z8
Templat:Cc-by-sa-3.0
10
67
225
224
2024-12-03T13:51:35Z
Jon Harald Søby
20
2 revisi diimpor
224
wikitext
text/x-wiki
<!-- Creative Commons License -->{{Imbox
| type = license
| class = licensetpl
| image = [[Berkas:CC_some_rights_reserved.svg|90px|Creative Commons: Some Rights Reserved]] <br/> [[Berkas:Cc-by new white.svg|24px|BY]][[Berkas:Cc-sa white.svg|24px|SA]]
| textstyle = text-align: center;
| text = ''Karya ini dilisensikan menggunakan Lisensi [https://creativecommons.org/licenses/by-sa/3.0/ Creative Commons Atribusi-BerbagiSerupa 3.0]. {{#if:{{{1|}}}| <br/> Atribusi: {{{1|}}} }}''<span class="licensetpl_link" style="display:none;"><nowiki>https://</nowiki>creativecommons.org/licenses/by-sa/3.0/</span><span class="licensetpl_short" style="display:none;">CC-BY-SA-3.0</span><span class="licensetpl_long" style="display:none;">Creative Commons Attribution-ShareAlike 3.0</span><span class="licensetpl_link_req" style="display:none;">true</span><span class="licensetpl_attr_req" style="display:none;">true</span>
}}{{#ifeq:{{NAMESPACE}}|{{NS:6}}|[[Kategori:Berkas cc-by-sa-3.0]]}}<noinclude>
{{Documentation}}
<!-- Add categories and interwikis to the /doc subpage, not here! -->
{{INTERWIKI|Q5614379}}
</noinclude>
ehob0od6kzkt7mvny7rlb4tyq7hxns3
Templat:Cc-by-sa-3.0/doc
10
68
227
226
2024-12-03T13:51:35Z
Jon Harald Søby
20
1 revisi diimpor
226
wikitext
text/x-wiki
{{Documentation subpage}}
<!--
PLEASE ADD CATEGORIES AND INTERWIKIS AT THE BOTTOM OF THIS PAGE
-->
==Penggunaan==
Untuk mengungkapkan atribusi penggunaan '''<nowiki>{{Cc-by-sa-2.5|Rincian atribusi}}</nowiki>'''. Bagi yang ingin mereproduksi karya tersebut, harus mengatribusikannya dengan cara yang ditentukan oleh pembuat karya atau pemberi lisensi (sebagai parameter "Rincian atribusi").
:''Templat Creative Commons lainnya tersedia di '''[[Wikipedia:Tag hak cipta berkas]]'''.Pastikan untuk menggunakan yang benar dan sesuai.''
=== Parameter ===
*dw - Gunakan <nowiki>|dw=yes</nowiki> untuk menekan kategorisasi medianya sebagai bebas, dimana ketika sebenarnya medianya tidak bebas sehingga tidak cocok untuk Wikimedia Commons.
==Lihat pula==
* {{tl|Cc-by-sa-1.0}}
* {{tl|Cc-by-sa-2.0}}
* {{tl|Cc-by-sa-2.5}}
* {{tl|Cc-by-sa-4.0}}
<includeonly>
[[Kategori:Templat hak cipta]]
</includeonly>
ppdmy4ichhqr9ficad7pb1cy78pcn7f
Templat:Cc-by-sa-4.0
10
69
231
230
2024-12-03T13:51:35Z
Jon Harald Søby
20
3 revisi diimpor
230
wikitext
text/x-wiki
<!-- Creative Commons License -->{{Imbox
| type = license
| class = licensetpl
| image = [[Berkas:CC_some_rights_reserved.svg|90px|Creative Commons: Some Rights Reserved]] <br/> [[Berkas:Cc-by new white.svg|24px|BY]][[Berkas:Cc-sa white.svg|24px|SA]]
| textstyle = text-align: center;
| text = ''Karya ini dilisensikan menggunakan Lisensi [https://creativecommons.org/licenses/by-sa/4.0/ Creative Commons Atribusi-BerbagiSerupa 4.0]. {{#if:{{{1|}}}| <br/> Atribusi: {{{1|}}} }}''<span class="licensetpl_link" style="display:none;"><nowiki>https://</nowiki>creativecommons.org/licenses/by-sa/4.0/</span><span class="licensetpl_short" style="display:none;">CC-BY-SA-4.0</span><span class="licensetpl_long" style="display:none;">Creative Commons Attribution-ShareAlike 4.0</span><span class="licensetpl_link_req" style="display:none;">true</span><span class="licensetpl_attr_req" style="display:none;">true</span>
}}{{#ifeq:{{NAMESPACE}}|{{NS:6}}|[[Kategori:Berkas cc-by-sa-4.0]]}}<noinclude>
{{Documentation}}
<!-- Add categories and interwikis to the /doc subpage, not here! -->
{{INTERWIKI|Q15243492}}
</noinclude>
k5uxd9zlglrs9wq0r3u4w61zjrjbvpo
Templat:Cc-by-sa-4.0/doc
10
70
233
232
2024-12-03T13:51:35Z
Jon Harald Søby
20
1 revisi diimpor
232
wikitext
text/x-wiki
{{Documentation subpage}}
<!--
PLEASE ADD CATEGORIES AND INTERWIKIS AT THE BOTTOM OF THIS PAGE
-->
==Penggunaan==
Untuk mengungkapkan atribusi penggunaan '''<nowiki>{{Cc-by-sa-1.0|Rincian atribusi}}</nowiki>'''. Bagi yang ingin mereproduksi karya tersebut, harus mengatribusikannya dengan cara yang ditentukan oleh pembuat karya atau pemberi lisensi (sebagai parameter "Rincian atribusi").
:''Templat Creative Commons lainnya tersedia di '''[[Wikipedia:Tag hak cipta berkas]]'''.Pastikan untuk menggunakan yang benar dan sesuai.''
==Lihat pula==
* {{tl|Cc-by-sa-1.0}}
* {{tl|Cc-by-sa-2.0}}
* {{tl|Cc-by-sa-2.5}}
* {{tl|Cc-by-sa-3.0}}
<includeonly>
[[Kategori:Templat hak cipta]]
</includeonly>
iost8dzk4y4p3gjxmemdy4huae1xavx
Templat:Celsius
10
71
235
234
2024-12-03T13:51:35Z
Jon Harald Søby
20
1 revisi diimpor
234
wikitext
text/x-wiki
{{convert|{{{1|0}}}|C|F|abbr=on}}<noinclude>
{{documentation}}
[[Kategori:Templat format dan fungsi]]
[[en:voy:Template:Celsius]]
</noinclude>
22o0pm94ccynfwhrt74k7xi6aol8lzm
Templat:Citation/core
10
72
237
236
2024-12-03T13:51:35Z
Jon Harald Søby
20
1 revisi diimpor
236
wikitext
text/x-wiki
<span class="citation {{{Citation class|{{{Citation type|}}}}}}"
{{
#switch:{{{Ref|}}}
||none =
|#default = id="{{anchorencode:{{{Ref}}}}}"
|harv = {{#if:{{{Surname1|}}}{{{EditorSurname1|}}}
|id="CITEREF{{anchorencode:{{#if:{{{Surname1|}}}
|{{{Surname1}}}{{{Surname2|}}}{{{Surname3|}}}{{{Surname4|}}}
|{{{EditorSurname1|}}}{{{EditorSurname2|}}}{{{EditorSurname3|}}}{{{EditorSurname4|}}}
}}{{{Year|{{{Date|}}}}}}}}"
}}
}}>{{
<!--============ Author or editor and date ============-->
#if:{{{Surname1|}}}
|{{
#if: {{{AuthorMask|}}}
|{{
#iferror: {{ #expr: 1*{{{AuthorMask}}} }}
|{{{AuthorMask}}}
|<del>{{loop|{{{AuthorMask}}}|2= }}</del>
}}
|{{
#if: {{{Authorlink1|}}}
|[[{{{Authorlink1}}} |{{{Surname1}}}{{
#if: {{{Given1|}}}
|{{{NameSep|, }}}{{{Given1}}}
}}]]
|{{{Surname1}}}{{
#if: {{{Given1|}}}
|{{{NameSep|, }}}{{{Given1}}}
}}
}}
}}{{
#if: {{{Surname2|}}}
|{{#ifexpr:{{{Trunc|8}}}<2
| ''et al''.
|{{
#iferror: {{ #expr: 1*0.0{{{AuthorMask|}}} }}
| <!-- then punctuation should be included in AuthorMask -->
|{{
#if: {{{Surname3|}}}
|{{{AuthorSep|; }}}
|{{#if:{{{amp|}}}| & |{{{AuthorSep|; }}}}}
}}
}}{{
#if: {{{Authorlink2|}}}
|[[{{{Authorlink2}}} |{{{Surname2}}}{{
#if: {{{Given2|}}}
|{{{NameSep|, }}}{{{Given2}}}
}}]]
|{{{Surname2}}}{{
#if: {{{Given2|}}}
|{{{NameSep|, }}}{{{Given2}}}
}}
}}{{
#if: {{{Surname3|}}}
|{{#ifexpr:{{{Trunc|8}}}<3
| ''et al''.
|{{
#if: {{{Surname4|}}}
|{{{AuthorSep|; }}}
|{{#if:{{{amp|}}}| & |{{{AuthorSep|; }}}}}
}}{{
#if: {{{Authorlink3|}}}
|[[{{{Authorlink3}}} |{{{Surname3}}}{{
#if: {{{Given3|}}}
|{{{NameSep|, }}}{{{Given3}}}
}}]]
|{{{Surname3}}}{{
#if: {{{Given3|}}}
|{{{NameSep|, }}}{{{Given3}}}
}}
}}{{
#if:{{{Surname4|}}}
|{{#ifexpr:{{{Trunc|8}}}<4
| ''et al''.
|{{
#if: {{{Surname5|}}}
|{{{AuthorSep|; }}}
|{{#if:{{{amp|}}}| & |{{{AuthorSep|; }}}}}
}}{{
#if: {{{Authorlink4|}}}
|[[{{{Authorlink4}}} |{{{Surname4}}}{{
#if: {{{Given4|}}}
|{{{NameSep|, }}}{{{Given4}}}
}}]]
|{{{Surname4}}}{{
#if: {{{Given4|}}}
|{{{NameSep|, }}}{{{Given4}}}
}}
}}{{
#if:{{{Surname5|}}}
|{{#ifexpr:{{{Trunc|8}}}<5
| ''et al''.
|{{
#if: {{{Surname6|}}}
|{{{AuthorSep|; }}}
|{{#if:{{{amp|}}}| & |{{{AuthorSep|; }}}}}
}}{{
#if: {{{Authorlink5|}}}
|[[{{{Authorlink5}}} |{{{Surname5}}}{{
#if: {{{Given5|}}}
|{{{NameSep|, }}}{{{Given5}}}
}}]]
|{{{Surname5}}}{{
#if: {{{Given5|}}}
|{{{NameSep|, }}}{{{Given5}}}
}}
}}{{
#if:{{{Surname6|}}}
|{{#ifexpr:{{{Trunc|8}}}<6
| ''et al''.
|{{
#if: {{{Surname7|}}}
|{{{AuthorSep|; }}}
|{{#if:{{{amp|}}}| & |{{{AuthorSep|; }}}}}
}}{{
#if: {{{Authorlink6|}}}
|[[{{{Authorlink6}}} |{{{Surname6}}}{{
#if: {{{Given6|}}}
|{{{NameSep|, }}}{{{Given6}}}
}}]]
|{{{Surname6}}}{{
#if: {{{Given6|}}}
|{{{NameSep|, }}}{{{Given6}}}
}}
}}{{
#if:{{{Surname7|}}}
|{{#ifexpr:{{{Trunc|8}}}<7
| ''et al''.
|{{
#if: {{{Surname8|}}}
|{{{AuthorSep|; }}}
|{{#if:{{{amp|}}}| & |{{{AuthorSep|; }}}}}
}}{{
#if: {{{Authorlink7|}}}
|[[{{{Authorlink7}}} |{{{Surname7}}}{{
#if: {{{Given7|}}}
|{{{NameSep|, }}}{{{Given7}}}
}}]]
|{{{Surname7}}}{{
#if: {{{Given7|}}}
|{{{NameSep|, }}}{{{Given7}}}
}}
}}{{
#if:{{{Surname8|}}}
|{{#ifexpr:{{{Trunc|8}}}<8
| ''et al''.
|{{
#if: {{{Surname9|}}}
|{{{AuthorSep|; }}}
|{{#if:{{{amp|}}}| & |{{{AuthorSep|; }}}}}
}}{{
#if: {{{Authorlink8|}}}
|[[{{{Authorlink8}}} |{{{Surname8}}}{{
#if: {{{Given8|}}}
|{{{NameSep|, }}}{{{Given8}}}
}}]]
|{{{Surname8}}}{{
#if: {{{Given8|}}}
|{{{NameSep|, }}}{{{Given8}}}
}}
}}{{
#if:{{{Surname9|}}}
| ''et al''.
}}
}}
}}
}}
}}
}}
}}
}}
}}
}}
}}
}}
}}
}}
}}{{
#if: {{{Date|}}}
| ({{{Date}}}){{
#if:{{{YearNote|}}}
| [{{{YearNote}}}]
}}
}}
|{{<!-- ============== No author: display editors first == -->
#if: {{{EditorSurname1|}}}
|{{
#if: {{{Editorlink1|}}}
|[[{{{Editorlink1}}} |{{{EditorSurname1}}}{{
#if: {{{EditorGiven1|}}}
|, {{{EditorGiven1}}}
}}]]
|{{{EditorSurname1}}}{{
#if: {{{EditorGiven1|}}}
|, {{{EditorGiven1}}}
}}
}}{{
#if: {{{EditorSurname2|}}}
|{{
#if: {{{EditorSurname3|}}}
|{{{AuthorSep|; }}}
|{{#if:{{{amp|}}}| & |{{{AuthorSep|; }}}}}
}}{{
#if: {{{Editorlink2|}}}
|[[{{{Editorlink2}}} |{{{EditorSurname2}}}{{
#if: {{{EditorGiven2|}}}
|, {{{EditorGiven2}}}
}}]]
|{{{EditorSurname2}}}{{
#if: {{{EditorGiven2|}}}
|, {{{EditorGiven2}}}
}}
}}{{
#if: {{{EditorSurname3|}}}
|{{
#if: {{{EditorSurname4|}}}
|{{{AuthorSep|; }}}
|{{#if:{{{amp|}}}| & |{{{AuthorSep|; }}}}}
}}{{
#if: {{{Editorlink3|}}}
|[[{{{Editorlink3}}} |{{{EditorSurname3}}}{{
#if: {{{EditorGiven3|}}}
|, {{{EditorGiven3}}}
}}]]
|{{{EditorSurname3}}}{{
#if: {{{EditorGiven3|}}}
|, {{{EditorGiven3}}}
}}
}}{{
#if:{{{EditorSurname4|}}}
| et al.
}}
}}
}}, ed{{#if:{{{EditorSurname2|}}}|s}}{{#ifeq:{{{Sep|,}}}|.||.}}{{
#if: {{{Date|}}}
| ({{{Date}}}){{
#if:{{{YearNote|}}}
| [{{{YearNote}}}]
}}
}}
}}
}}{{
<!--============ Title of included work ============-->
#if: {{{IncludedWorkTitle|}}}{{#if:{{{Periodical|}}}||{{#if:{{{TransItalic|}}}||{{{TransTitle|}}}}}}}
|{{
#if:{{{Surname1|}}}{{{EditorSurname1|}}}
|{{{Sep|,}}} 
}}{{Citation/make link
| 1={{
#if: {{{IncludedWorkURL|}}}
|{{{IncludedWorkURL}}}
|{{
#if: {{{URL|}}}
|{{{URL}}}
<!-- Only link URL if to a free full text - as at PubMedCentral (PMC)-->
|{{#ifexpr:{{#time: U}} > {{#time: U | {{{Embargo|2001-10-10}}} }}
|{{
#if: {{{PMC|}}}
|http://www.pubmedcentral.nih.gov/articlerender.fcgi?tool=pmcentrez&artid={{{PMC}}}
}}
}}
}}
}}
| 2={{
#if: {{{Periodical|}}}
|''<nowiki />{{{IncludedWorkTitle}}}<nowiki />''
|"{{{IncludedWorkTitle|}}}{{
#if: {{{TransTitle|}}}
|{{
#if: {{{IncludedWorkTitle|}}}
| 
}}[{{{TransTitle}}}]
}}"
}}
}}
}}{{
<!--============ Place (if different than PublicationPlace) ============-->
#if: {{{Place|}}}
|{{
#ifeq: {{{Place|}}} | {{{PublicationPlace|}}}
|
|{{
#if: {{{Surname1|}}}{{{EditorSurname1|}}}{{{IncludedWorkTitle|}}}
|{{{Sep|,}}} ditulis di {{{Place}}}
}}
}}
}}{{
<!--============ Editor of compilation ============-->
#if: {{{EditorSurname1|}}}
|{{
#if: {{{Surname1|}}}
|{{{Sep|,}}} {{
#if: {{{IncludedWorkTitle|}}}
|di dalam 
}}{{
#if: {{{Editorlink1|}}}
|[[{{{Editorlink1}}} |{{{EditorSurname1}}}{{
#if: {{{EditorGiven1|}}}
|, {{{EditorGiven1}}}
}}]]
|{{{EditorSurname1}}}{{
#if: {{{EditorGiven1|}}}
|, {{{EditorGiven1}}}
}}}}{{
#if: {{{EditorSurname2|}}}
|{{
#if: {{{EditorSurname3|}}}
|{{{AuthorSep|; }}}
|{{#if:{{{amp|}}}| & |{{{AuthorSep|; }}}}}
}}{{
#if: {{{Editorlink2|}}}
|[[{{{Editorlink2}}}|{{{EditorSurname2}}}{{
#if: {{{EditorGiven2|}}}
|, {{{EditorGiven2}}}
}}]]
|{{{EditorSurname2}}}{{
#if: {{{EditorGiven2|}}}
|, {{{EditorGiven2}}}
}}
}}{{
#if: {{{EditorSurname3|}}}
|{{
#if: {{{EditorSurname4|}}}
|; 
|{{#if:{{{amp|}}}| & |{{{AuthorSep|; }}}}}
}}{{
#if: {{{Editorlink3|}}}
|[[{{{Editorlink3}}}|{{{EditorSurname3}}}{{
#if: {{{EditorGiven3|}}}
|, {{{EditorGiven3}}}
}}]]
|{{{EditorSurname3}}}{{
#if: {{{EditorGiven3|}}}
|, {{{EditorGiven3}}}
}}
}}{{
#if:{{{EditorSurname4|}}}
| et al.
}}
}}
}}{{
#if: {{{IncludedWorkTitle|}}}
|
|{{{Sep|,}}} ed{{#if:{{{EditorSurname2|}}}|s}}{{#ifeq:{{{Sep|,}}}|.||.}}
}}
}}
}}{{
<!--============ Periodicals ============-->
#if: {{{Periodical|}}}
|{{
#if: {{{Other|}}}
|{{{Sep|,}}} {{{Other|}}}
}}{{
#if: {{{Surname1|}}}{{{EditorSurname1|}}}{{{IncludedWorkTitle|}}}
|{{{Sep|,}}} }}{{
#if: {{{Title|}}}{{{TransTitle|}}}
|{{Citation/make link
| 1={{
#if: {{{IncludedWorkTitle|}}}
|{{
#if: {{{IncludedWorkURL|}}}
|{{
#if: {{{URL|}}}
|{{{URL}}}
|{{
#ifexpr: {{#time: U}} > {{#time: U | {{{Embargo|2001-10-10}}} }} | {{
#if: {{{PMC|}}}
| http://www.pubmedcentral.nih.gov/articlerender.fcgi?tool=pmcentrez&artid={{{PMC}}}
}}
}}
}}
}}
|{{
#if: {{{URL|}}}
|{{{URL}}}
|{{#ifexpr:{{#time: U}} > {{#time: U | {{{Embargo|2001-10-10}}} }} |{{
#if: {{{PMC|}}}
| http://www.pubmedcentral.nih.gov/articlerender.fcgi?tool=pmcentrez&artid={{{PMC}}}
}}
}}
}}
}}
| 2="{{{Title}}}{{
#if: {{{TransTitle|}}}
|{{
#if: {{{Title|}}}
| 
}}[{{{TransTitle}}}]
}}"
}}{{
#if: {{{TitleNote|}}}
|{{{Sep|,}}} {{{TitleNote}}}
}}
}}
}}{{
#if: {{{language|}}}
| (dalam bahasa {{{language}}})
}}{{
#if: {{{format|}}}
| ({{{format}}})
}}{{
#if: {{{Periodical|}}}
|{{
#if:{{{IncludedWorkTitle|}}}{{{Title|}}}{{{TransTitle|}}}
|{{{Sep|,}}} 
}}''<nowiki />{{{Periodical}}}<nowiki />''{{
#if: {{{Series|}}}
|{{{Sep|,}}} {{{Series}}}
}}{{
#if: {{{PublicationPlace|}}}
|{{
#if: {{{Publisher|}}}
| ({{{PublicationPlace}}}<nowiki>: </nowiki>{{{Publisher}}})
| ({{{PublicationPlace}}})
}}
|{{
#if: {{{Publisher|}}}
| ({{{Publisher}}})
}}
}}{{
#if: {{{Volume|}}}
| '''<nowiki />{{{Volume}}}<nowiki />'''{{
#if: {{{Issue|}}}
| ({{{Issue}}})
}}
|{{
#if: {{{Issue|}}}
| ({{{Issue}}})
}}
}}{{
#if: {{{At|}}}
|<nowiki>: </nowiki> {{{At}}}
}}
|{{
<!--============ Anything else with a title, including books ============-->
#if: {{{Title|}}}{{{TransItalic|}}}
|{{
#if: {{{Surname1|}}}{{{EditorSurname1|}}}{{{IncludedWorkTitle|}}}{{{Periodical|}}}
|{{{Sep|,}}}
}} {{Citation/make link
| 1={{
#if: {{{IncludedWorkTitle|}}}
|{{
#if: {{{IncludedWorkURL|}}}
|{{
#if: {{{URL|}}}
|{{{URL}}}
|{{#ifexpr:{{#time: U}} > {{#time: U | {{{Embargo|2001-10-10}}} }}|{{
#if: {{{PMC|}}}
| http://www.pubmedcentral.nih.gov/articlerender.fcgi?tool=pmcentrez&artid={{{PMC}}}
}}}}
}}
}}
|{{
#if: {{{URL|}}}
|{{{URL}}}
|{{#ifexpr:{{#time: U}} > {{#time: U | {{{Embargo|2001-10-10}}} }}|{{
#if: {{{PMC|}}}
| http://www.pubmedcentral.nih.gov/articlerender.fcgi?tool=pmcentrez&artid={{{PMC}}}
}}}}
}}
}}
| 2=''<nowiki />{{{Title|}}}{{
#if:{{{TransItalic|}}}| [{{{TransItalic}}}]
}}<nowiki />''
}}
}}{{
#if: {{{TitleType|}}}
| ({{{TitleType}}})
}}{{
#if: {{{Series|}}}
|{{{Sep|,}}} {{{Series}}}
}}{{
#if: {{{Volume|}}}
|{{{Sep|,}}} '''<nowiki />{{{Volume}}}<nowiki />'''
}}{{
#if: {{{Other|}}}
|{{{Sep|,}}} {{{Other|}}}
}}{{
#if: {{{Edition|}}}
| (edisi ke-{{{Edition}}})
}}{{
#if: {{{PublicationPlace|}}}
|{{{Sep|,}}} {{{PublicationPlace}}}
}}{{
#if: {{{Publisher|}}}
|{{
#if: {{{PublicationPlace|}}}
|<nowiki>:</nowiki>
|{{{Sep|,}}}
}} {{{Publisher}}}
}}
}}{{
<!--============ Date (if no author/editor) ============-->
#if: {{{Surname1|}}}{{{EditorSurname1|}}}
|
|{{
#if: {{{Date|}}}
|{{{Sep|,}}} {{#time:j F Y|{{{Date}}}}}{{
#if:{{{YearNote|}}}
| [{{{YearNote}}}]
}}
}}
}}{{
<!--============ Publication date ============-->
#if: {{{PublicationDate|}}}
|{{
#ifeq: {{{PublicationDate|}}} | {{#time:j F Y|{{{Date|}}}}}
|
|{{
#if: {{{EditorSurname1|}}}
|{{
#if: {{{Surname1|}}}
|{{{Sep|,}}} {{#time:j F Y|{{{PublicationDate}}}}}
| (dipublikasi {{#time:j F Y|{{{PublicationDate}}}}})
}}
|{{
#if: {{{Periodical|}}}
|{{{Sep|,}}} {{#time:j F Y|{{{PublicationDate}}}}}
| (dipublikasi {{#time:j F Y|{{{PublicationDate}}}}})
}}
}}
}}
}}{{
<!--============ Page within included work ============-->
#if: {{{Periodical|}}}
|
|{{
#if: {{{At|}}}
|{{{Sep|,}}} {{{At}}}
}}
}}{{
<!--===============DOI================-->
#if:{{{DOI|}}}
|{{{Sep|,}}} [[Digital object identifier|doi]]:{{#if: {{{DoiBroken|}}}
| {{#tag:nowiki|{{{DOI}}}}} ({{{DoiBroken|}}} nonaktif) {{#ifeq: {{NAMESPACE}} | {{ns:0}} | [[Kategori:Pages with DOIs broken since {{#time: Y | {{{DoiBroken|}}} }}]] }}
| <span class="neverexpand">[http://dx.doi.org/{{urlencode:{{{DOI}}}}} {{#tag:nowiki|{{{DOI}}}}}]</span>
}}
}}{{
<!--============ Misc. Identifier ============-->
#if: {{{ID|}}}
|{{
#if: {{{Surname1|}}}{{{EditorSurname1|}}}{{{IncludedWorkTitle|}}}{{{Periodical|}}}{{{Title|}}}{{{TransItalic|}}}
|{{{Sep|,}}} {{{ID}}}
|{{{ID}}}
}}
}}{{
<!--============ ISBN ============-->
#if: {{{ISBN|}}}
|{{{Sep|,}}} [[International Standard Book Number|ISBN]] [[Istimewa:BookSources/{{{ISBN}}}|{{{ISBN}}}]]
}}{{
<!--============ ISSN ============-->
#if: {{{ISSN|}}}
|{{{Sep|,}}} [[International Standard Serial Number|ISSN]] [http://worldcat.org/issn/{{{ISSN}}} {{{ISSN}}}]
}}{{
<!--============ OCLC ============-->
#if: {{{OCLC|}}}
|{{{Sep|,}}} [[Online Computer Library Center|OCLC]] [http://worldcat.org/oclc/{{urlencode:{{{OCLC}}}}} {{{OCLC}}}]
}}{{
<!--============ PMID ============-->
#if: {{{PMID|}}}
|{{{Sep|,}}} [[PubMed Identifier|PMID]] [http://www.ncbi.nlm.nih.gov/pubmed/{{{PMID}}} {{{PMID}}}]
}}{{
<!--============ PMC ============-->
#if: {{{PMC|}}}
|{{
#if: {{{URL|}}}
|{{{Sep|,}}} [[PubMed Central|PMC]] [http://www.pubmedcentral.nih.gov/articlerender.fcgi?tool=pmcentrez&artid={{{PMC}}} {{{PMC}}}]
}}
}}{{
<!--============ BIBCODE ============-->
#if: {{{Bibcode|}}}
|{{{Sep|,}}} [[Bibcode]]: [http://adsabs.harvard.edu/abs/{{{Bibcode}}} {{{Bibcode}}}]
}}{{
<!--============ Archive data, etc ===========-->
#if: {{{Archive|}}}
|{{{Sep|,}}} {{{Archive}}}[[Kategori:Pages using deprecated citation archive parameters]]
|{{
#if:{{{ArchiveURL|}}}{{{ArchiveDate|}}}
|{{{Sep|,}}} {{#ifeq:{{{Sep}}}|.|D|d}}iarsipkan{{
#if:{{{OriginalURL|}}}{{{IncludedWorkURL|}}}
|{{#if:{{{ArchiveURL|}}}| dari {{Citation/make link|{{{OriginalURL|{{{IncludedWorkURL|}}}}}}|yang asli}}}}
}}{{
#if:{{{ArchiveDate|}}}
| pada {{#time:j F Y|{{{ArchiveDate}}}}}
}}{{
#if:{{#if:{{{ArchiveURL|}}}||A}}{{#if:{{{OriginalURL|}}}{{{IncludedWorkURL|}}}||B}}{{#if:{{{ArchiveDate|}}}||C}}
|. {{citation error
|If you specify <code>|{{#if:{{{ArchiveURL|}}}|archiveurl|archivedate}}=</code>, you must {{#if:{{{OriginalURL|}}}{{{IncludedWorkURL|}}}| also specify <code>|{{#if:{{{ArchiveURL|}}}|archivedate|archiveurl}}=</code>|first specify <code>|url=</code>}}}}
}}
}}
}}{{
<!--============ URL and AccessDate ============-->
#if: {{{URL|}}}{{{IncludedWorkURL|}}}
|{{
#if: {{{Title|}}}{{{IncludedWorkTitle|}}}{{{TransTitle|}}}
|<span class="printonly">{{{Sep|,}}} {{
#if: {{{IncludedWorkURL|}}}
|{{{IncludedWorkURL}}}
|{{{URL}}}
}}</span>
|{{{Sep|,}}} {{
#if: {{{IncludedWorkURL|}}}
|{{{IncludedWorkURL}}}
|{{{URL}}}
}}
}}{{
#if: {{{AccessDate|}}}
| <span class="reference-accessdate">{{#ifeq:{{{Sep|,}}}|,|, d|. D}}iakses pada {{#iferror: {{#time: j F Y|{{{accessdate}}}}} | {{{accessdate}}} | {{#time: j F Y|{{{accessdate}}}}} }}</span>
}}
}}{{#if:{{{laysummary|}}}
|{{{Sep|,}}} [{{{laysummary}}} Lay summary]{{#if: {{{laysource|}}}| – ''<nowiki />{{{laysource}}}<nowiki />''}}
}}{{#if:{{{laydate|}}}
|  ({{#time:j F Y|{{{laydate}}}}})
}}{{#if:{{{quote|}}}
|{{{Sep|,}}} "{{{quote}}}"
}}{{{PS|}}}</span><!--
=== This is a COinS tag (http://ocoins.info), which allows automated tools to parse the citation information: ===
--><span
class="Z3988"
title="ctx_ver=Z39.88-2004&rft_val_fmt={{urlencode:info:ofi/fmt:kev:mtx:}}{{
#if: {{{Periodical|}}}
|journal&rft.genre=article&rft.atitle={{urlencode:{{{Title|}}}}}&rft.jtitle={{urlencode:{{{Periodical|}}}}}
|book{{
#if: {{{IncludedWorkTitle|}}}
|&rft.genre=bookitem&rft.btitle={{urlencode:{{{IncludedWorkTitle|}}}}}&rft.atitle={{urlencode:{{{Title|}}}}}
|&rft.genre=book&rft.btitle={{urlencode:{{{Title|}}}}}
}}
}}{{
#if: {{{Surname1|}}} |&rft.aulast={{urlencode:{{{Surname1}}}}}{{
#if: {{{Given1|}}} |&rft.aufirst={{urlencode:{{{Given1}}}}}
}}
}}{{
#if: {{{Surname1|}}} |&rft.au={{urlencode:{{{Surname1}}}}}{{
#if: {{{Given1|}}} |{{urlencode:{{{NameSep|, }}}{{{Given1}}}}}
}}
}}{{
#if: {{{Surname2|}}} |&rft.au={{urlencode:{{{Surname2}}}}}{{
#if: {{{Given2|}}} |{{urlencode:{{{NameSep|, }}}{{{Given2}}}}}
}}
}}{{
#if: {{{Surname3|}}} |&rft.au={{urlencode:{{{Surname3}}}}}{{
#if: {{{Given3|}}} |{{urlencode:{{{NameSep|, }}}{{{Given3}}}}}
}}
}}{{
#if: {{{Surname4|}}} |&rft.au={{urlencode:{{{Surname4}}}}}{{
#if: {{{Given4|}}} |{{urlencode:{{{NameSep|, }}}{{{Given4}}}}}
}}
}}{{
#if: {{{Surname5|}}} |&rft.au={{urlencode:{{{Surname5}}}}}{{
#if: {{{Given5|}}} |{{urlencode:{{{NameSep|, }}}{{{Given5}}}}}
}}
}}{{
#if: {{{Surname6|}}} |&rft.au={{urlencode:{{{Surname6}}}}}{{
#if: {{{Given6|}}} |{{urlencode:{{{NameSep|, }}}{{{Given6}}}}}
}}
}}{{
#if: {{{Surname7|}}} |&rft.au={{urlencode:{{{Surname7}}}}}{{
#if: {{{Given7|}}} |{{urlencode:{{{NameSep|, }}}{{{Given7}}}}}
}}
}}{{
#if: {{{Surname8|}}} |&rft.au={{urlencode:{{{Surname8}}}}}{{
#if: {{{Given8|}}} |{{urlencode:{{{NameSep|, }}}{{{Given8}}}}}
}}
}}{{
#if: {{{Surname9|}}} |&rft.au={{urlencode:{{{Surname9}}}}}{{
#if: {{{Given9|}}} |{{urlencode:{{{NameSep|, }}}{{{Given9}}}}}
}}
}}{{
#if: {{{Date|}}} |&rft.date={{urlencode:{{{Date}}}}}
}}{{
#if: {{{Series|}}} |&rft.series={{urlencode:{{{Series}}}}}
}}{{
#if: {{{Volume|}}} |&rft.volume={{urlencode:{{{Volume}}}}}
}}{{
#if: {{{Issue|}}} |&rft.issue={{urlencode:{{{Issue}}}}}
}}{{
#if: {{{At|}}} |&rft.pages={{urlencode:{{{At}}}}}
}}{{
#if: {{{Edition|}}} |&rft.edition={{urlencode:{{{Edition}}}}}
}}{{
#if: {{{PublicationPlace|}}}{{{Place|}}} |&rft.place={{urlencode:{{{PublicationPlace|{{{Place}}}}}}}}
}}{{
#if: {{{Publisher|}}} |&rft.pub={{urlencode:{{{Publisher}}}}}
}}{{
#if: {{{DOI|}}} |&rft_id=info:doi/{{urlencode:{{{DOI}}}}}
}}{{
#if: {{{PMID|}}} |&rft_id=info:pmid/{{urlencode:{{{PMID}}}}}
}}{{
#if: {{{Bibcode|}}} |&rft_id=info:bibcode/{{urlencode:{{{Bibcode}}}}}
}}{{
#if: {{{OCLC|}}} |&rft_id=info:oclcnum/{{urlencode:{{{OCLC}}}}}
}}{{
#if: {{{ISBN|}}} |&rft.isbn={{urlencode:{{{ISBN}}}}}
}}{{
#if: {{{ISSN|}}} |&rft.issn={{urlencode:{{{ISSN}}}}}
}}{{
#if: {{{URL|}}}{{{IncludedWorkURL|}}} |&rft_id={{urlencode:{{{URL|{{{IncludedWorkURL|}}}}}}}}
}}&rfr_id=info:sid/en.wikipedia.org:{{FULLPAGENAMEE}}"><span style="display: none;"> </span></span><noinclude>
<!--{{Pp-template|small=yes}}-->
9u9zg1ugdi43x1fw0pcp7rb6hu9qohj
Templat:Cite web
10
73
239
238
2024-12-03T13:51:35Z
Jon Harald Søby
20
1 revisi diimpor
238
wikitext
text/x-wiki
<includeonly>{{Citation/core
|Citation class=web
|Surname1 = {{#if:{{{last|}}}
|{{{last}}}
|{{#if:{{{last1|}}}
|{{{last1}}}
|{{{author|}}}
}}
}}
|Surname2 = {{{last2|{{{surname2|{{{author2|}}}}}}}}}
|Surname3 = {{{last3|}}}
|Surname4 = {{{last4|}}}
|Surname5 = {{{last5|}}}
|Surname6 = {{{last6|}}}
|Surname7 = {{{last7|}}}
|Surname8 = {{{last8|}}}
|Surname9 = {{{last9|}}}
|Given1 = {{#if:{{{first|}}}|{{{first}}}|{{{first1|}}}}}
|Given2 = {{{first2|}}}
|Given3 = {{{first3|}}}
|Given4 = {{{first4|}}}
|Given5 = {{{first5|}}}
|Given6 = {{{first6|}}}
|Given7 = {{{first7|}}}
|Given8 = {{{first8|}}}
|Given9 = {{{first9|}}}
|Authorlink1 = {{#if:{{{authorlink|}}}|{{{authorlink}}}|{{{authorlink1|}}}}}
|Authorlink2 = {{{authorlink2|}}}
|Authorlink3 = {{{authorlink3|}}}
|Authorlink4 = {{{authorlink4|}}}
|Authorlink5 = {{{authorlink5|}}}
|Authorlink6 = {{{authorlink6|}}}
|Authorlink7 = {{{authorlink7|}}}
|Authorlink8 = {{{authorlink8|}}}
|Authorlink9 = {{{authorlink9|}}}
|Coauthors = {{{coauthor|{{{coauthors|}}}}}}
|EditorSurname1 = {{{editor-last|{{{editor-surname|{{{editor1-last|{{{editor1-surname|{{{editor1|{{{editor|{{{editors|}}}}}}}}}}}}}}}}}}}}}
|EditorSurname2 = {{{editor2-last|{{{editor2-surname|{{{editor2|}}}}}}}}}
|EditorSurname3 = {{{editor3-last|{{{editor3-surname|{{{editor3|}}}}}}}}}
|EditorSurname4 = {{{editor4-last|{{{editor4-surname|{{{editor4|}}}}}}}}}
|EditorGiven1 = {{{editor-first|{{{editor-given|{{{editor1-first|{{{editor1-given|}}}}}}}}}}}}
|EditorGiven2={{{editor2-first|{{{editor2-given|}}}}}}
|EditorGiven3={{{editor3-first|{{{editor3-given|}}}}}}
|EditorGiven4={{{editor4-first|{{{editor4-given|}}}}}}
|Editorlink1={{{editor-link|{{{editor1-link|}}}}}}
|Editorlink2={{{editor2-link|}}}
|Editorlink3={{{editor3-link|}}}
|Editorlink4={{{editor4-link|}}}
|Year={{#if:{{{year|}}}|{{{year}}} <!-- attempt to derive year from date, if possible -->
|{{#if: {{{date|}}}
|{{#iferror: {{#time:Y|{{{date|}}} }}
|{{#iferror:{{#time:Y|{{{publication-date|einval}}} }}||{{#time:Y|{{{publication-date|}}} }}}}
|{{#time:Y|{{{date|}}} }}
}}
|{{{publication-date|}}} <!-- last resort -->
}}
}}
|Date = {{#if:{{{date|}}}|{{{date}}}|{{{day|}}} {{{month|}}} {{#if:{{{year|}}}|{{{year}}}|{{{publication-date|}}}}}}}
|Title={{{work|}}}
|TransTitle={{{trans_title|}}}
|At = {{#if:{{{page|}}}|p. {{{page}}}|{{#if:{{{pages|}}}|pp. {{{pages|}}}|{{{at|}}} }} }}
|IncludedWorkTitle = {{
#if:{{{title|}}}
|{{{title}}}
|{{
#if:{{{trans_title|}}}
|
|{{Citation error|no <code>|title=</code> specified|Cite web}}
}}
}}
|IncludedWorkURL = {{#if:{{{archiveurl|}}}|{{{archiveurl|}}}|{{{url|}}}}}
|PublicationPlace = {{{location|}}}
|Publisher = {{{publisher|}}}
|language = {{{language|}}}
|format = {{{format|}}}
|DOI={{{doi|{{{DOI|}}}}}}
|AccessDate={{#if:{{{accessdate|}}}
|{{#if: {{{accessyear|}}}
|{{{accessdate}}} {{{accessyear}}}
|{{{accessdate}}}
}}
|{{{accessday|}}} {{{accessmonth|}}} {{{accessyear|}}}
}}
|DateFormat={{#if:{{{dateformat|}}}|{{{dateformat}}}|none}}
|quote = {{{quote|}}}
|Ref={{{ref|}}}
|Sep = {{#ifeq:{{{separator|{{{seperator}}} }}}|;|;|{{{separator|{{{seperator|.}}} }}} }}
|PS={{#if:{{{quote|}}}||{{{postscript|.}}}}}
|ArchiveURL = {{{archiveurl|}}}
|OriginalURL = {{{url|}}}
|ArchiveDate= {{{archivedate|}}}
|template doc demo={{{template doc demo|}}}
}}{{#if:{{{accessdaymonth|}}}{{{accessmonthday|}}}{{{accessday|}}}{{{accessmonth|}}}{{{accessyear|}}}{{{day|}}}{{{access-date|}}}{{{dateformat|}}}|[[Kategori:Pages containing cite templates with deprecated parameters|{{NAMESPACE}} {{PAGENAME}}]]}}</includeonly><noinclude>{{dokumentasi}}</noinclude>
lcwt1aaz8bmfvlz2wxdv4t1ou376w0h
Templat:Clear
10
74
243
242
2024-12-03T13:51:35Z
Jon Harald Søby
20
3 revisi diimpor
242
wikitext
text/x-wiki
<div style="clear:{{{1|both}}};"></div><noinclude>
{{INTERWIKI|Q5411705}}
</noinclude>
bvzbidy3lzoqla1vfx6l8zm46b6hr9e
Templat:Clickable button 2
10
75
245
244
2024-12-03T13:51:35Z
Jon Harald Søby
20
1 revisi diimpor
244
wikitext
text/x-wiki
{{#invoke:Clickable button 2|main}}
oh6enrp81yda90eacixqq756km9qj9c
Templat:Climate
10
76
253
252
2024-12-03T13:51:36Z
Jon Harald Søby
20
7 revisi diimpor
252
wikitext
text/x-wiki
<noinclude>
<!-- '''Template:Climate''' formats simple climate info. Give it Metric or Imperial units of measure depending which is appropriate for the location you describe.
'''Usage''' and copy-and-paste wiki markup to use this template are on the [[Pembicaraan Templat:Climate|talk page]].
Part of '''[[Wikivoyage:Climate Expedition]]'''.-->
</noinclude>
{| id="climate_table" border="0" cellpadding="1" cellspacing="1" style="width:30em; margin:1em; padding:0.5em; text-align:center; font-size:80%; border:1px solid #9EBDC7; box-shadow: 2px 2px 5px #9EBDC7; border-radius:3px; float:right; background:#f3f3ff; white-space:nowrap;"
!width="100" style="text-align:left; font-size:120%; background: #CEE0E7"| Iklim
!width="25" style="background: #CEE0E7"|Jan
!width="25" style="background: #CEE0E7"|Feb
!width="25" style="background: #CEE0E7"|Mar
!width="25" style="background: #CEE0E7"|Apr
!width="25" style="background: #CEE0E7"|Mei
!width="25" style="background: #CEE0E7"|Jun
!width="25" style="background: #CEE0E7"|Jul
!width="25" style="background: #CEE0E7"|Agu
!width="25" style="background: #CEE0E7"|Sep
!width="25" style="background: #CEE0E7"|Okt
!width="25" style="background: #CEE0E7"|Nov
!width="25" style="background: #CEE0E7"|Des
|- style="color:#e85801;"
| style="text-align:left" | {{#if:
{{{janhigh|}}}
{{{febhigh|}}}
{{{marhigh|}}}
{{{aprhigh|}}}
{{{mayhigh|}}}
{{{junhigh|}}}
{{{julhigh|}}}
{{{aughigh|}}}
{{{sephigh|}}}
{{{octhigh|}}}
{{{novhigh|}}}
{{{dechigh|}}}
| Tinggi harian [[Wikiwisata:Pengukuran|{{#ifeq:{{lc:{{{units|}}}}}|metric|(°C)|(°F)}}]] |}}
| {{{janhigh|}}} || {{{febhigh|}}} || {{{marhigh|}}} || {{{aprhigh|}}} || {{{mayhigh|}}} || {{{junhigh|}}} || {{{julhigh|}}} || {{{aughigh|}}} || {{{sephigh|}}} || {{{octhigh|}}} || {{{novhigh|}}} || {{{dechigh|}}}
|- style="color:#346388; line-height:40%;"
| style="text-align:left" | {{#if:
{{{janlow|}}}
{{{feblow|}}}
{{{marlow|}}}
{{{aprlow|}}}
{{{maylow|}}}
{{{junlow|}}}
{{{jullow|}}}
{{{auglow|}}}
{{{seplow|}}}
{{{octlow|}}}
{{{novlow|}}}
{{{declow|}}}
| Rendah malam [[Wikiwisata:Pengukuran|{{#ifeq:{{lc:{{{units|}}}}}|metric|(°C)|(°F)}}]] |}}
| {{{janlow|}}} || {{{feblow|}}} || {{{marlow|}}} || {{{aprlow|}}} || {{{maylow|}}} || {{{junlow|}}} || {{{jullow|}}} || {{{auglow|}}} || {{{seplow|}}} || {{{octlow|}}} || {{{novlow|}}} || {{{declow|}}}
|- style="white-space:nowrap"
| style="text-align:left" | {{#if:
{{{janprecip|}}}
{{{febprecip|}}}
{{{marprecip|}}}
{{{aprprecip|}}}
{{{mayprecip|}}}
{{{junprecip|}}}
{{{julprecip|}}}
{{{augprecip|}}}
{{{sepprecip|}}}
{{{octprecip|}}}
{{{novprecip|}}}
{{{decprecip|}}}
| Curah hujan [[Wikiwisata:Pengukuran|{{#ifeq:{{lc:{{{units|}}}}}|metric|(mm)|(in)}}]] |}}
| {{{janprecip|}}} || {{{febprecip|}}} || {{{marprecip|}}} || {{{aprprecip|}}} || {{{mayprecip|}}} || {{{junprecip|}}} || {{{julprecip|}}} || {{{augprecip|}}} || {{{sepprecip|}}} || {{{octprecip|}}} || {{{novprecip|}}} || {{{decprecip|}}}
|- style="white-space:nowrap"
| style="text-align:left" | {{#if:
{{{jansnow|}}}
{{{febsnow|}}}
{{{marsnow|}}}
{{{aprsnow|}}}
{{{maysnow|}}}
{{{junsnow|}}}
{{{julsnow|}}}
{{{augsnow|}}}
{{{sepsnow|}}}
{{{octsnow|}}}
{{{novsnow|}}}
{{{decsnow|}}}
| Snowfall [[Metric and Imperial equivalents|{{#ifeq:{{lc:{{{units|}}}}}|metric|(cm)|(in)}}]] |}}
| {{{jansnow|}}} || {{{febsnow|}}} || {{{marsnow|}}} || {{{aprsnow|}}} || {{{maysnow|}}} || {{{junsnow|}}} || {{{julsnow|}}} || {{{augsnow|}}} || {{{sepsnow|}}} || {{{octsnow|}}} || {{{novsnow|}}} || {{{decsnow|}}}
|- style="white-space:nowrap"
| style="text-align:left" | {{#if:
{{{jansun|}}}
{{{febsun|}}}
{{{marsun|}}}
{{{aprsun|}}}
{{{maysun|}}}
{{{junsun|}}}
{{{julsun|}}}
{{{augsun|}}}
{{{sepsun|}}}
{{{octsun|}}}
{{{novsun|}}}
{{{decsun|}}}
| Daylight (hrs/day) |}}
| {{{jansun|}}} || {{{febsun|}}} || {{{marsun|}}} || {{{aprsun|}}} || {{{maysun|}}} || {{{junsun|}}} || {{{julsun|}}} || {{{augsun|}}} || {{{sepsun|}}} || {{{octsun|}}} || {{{novsun|}}} || {{{decsun|}}}
|- style="font-style:italic"
| style="text-align:left" | {{#if:
{{{janh2o|}}}
{{{febh2o|}}}
{{{marh2o|}}}
{{{aprh2o|}}}
{{{mayh2o|}}}
{{{junh2o|}}}
{{{julh2o|}}}
{{{augh2o|}}}
{{{seph2o|}}}
{{{octh2o|}}}
{{{novh2o|}}}
{{{dech2o|}}}
| Water [[Metric and Imperial equivalents|{{#ifeq:{{lc:{{{units|}}}}}|metric|(°C)|(°F)}}]] |}}
| {{{janh2o|}}} || {{{febh2o|}}} || {{{marh2o|}}} || {{{aprh2o|}}} || {{{mayh2o|}}} || {{{junh2o|}}} || {{{julh2o|}}} || {{{augh2o|}}} || {{{seph2o|}}} || {{{octh2o|}}} || {{{novh2o|}}} || {{{dech2o|}}}
|-
|colspan="13" style="text-align:left; white-space:normal;"|{{#if:{{{description|}}}|<hr/>{{{description|}}}|}}
|}<noinclude>
{{INTERWIKI|Q99498681}}
</noinclude>
cqvjxmkdgl16i859qyjcgv3gvip2any
Templat:Clr
10
77
255
254
2024-12-03T13:51:36Z
Jon Harald Søby
20
1 revisi diimpor
254
wikitext
text/x-wiki
#REDIRECT [[Templat:Clear]]
1ye6ozxepegd9ve3ipik2mq2kge3hyq
Templat:Column-width
10
78
2464
258
2024-12-03T14:15:59Z
Jon Harald Søby
20
1 revisi diimpor
256
wikitext
text/x-wiki
<includeonly>-moz-column-width: {{{1|30em}}}; -webkit-column-width: {{{1|30em}}}; column-width: {{{1|30em}}};</includeonly>
03fidy8ddvf7fi7g0ciosbbnjpxovqe
Templat:Commons
10
79
261
260
2024-12-03T13:51:36Z
Jon Harald Søby
20
2 revisi diimpor
260
wikitext
text/x-wiki
<div align="right">
{{Sister|project=commons
|text=[[w:id:Wikimedia Commons|Wikimedia Commons]] memiliki galeri berkas berkaitan dengan:
:'''''[[commons:{{{1|Special:Search/{{PAGENAME}}}}}|{{{2|{{{1|{{PAGENAME}}}}}}}}]]'''''
}}</div>
<noinclude>
[[Kategori:Templat]]
[[en:voy:Template:Commons]]
</noinclude>
l5m05rsvhr9ar5azpspqdryhyhvlabs
Templat:Communityportal
10
80
270
269
2024-12-03T13:51:36Z
Jon Harald Søby
20
8 revisi diimpor
269
wikitext
text/x-wiki
<templatestyles src="Communityportal/styles.css" /> <!-- responsive rules -->
<templatestyles src="Communityportal/boxes.css" /> <!-- styles for rest of page -->
<div id="siteContainer">
<span class="siteItem">[[Berkas:Gnome_User_Speech.svg|link=Wikiwisata:Permohonan pendapat|84px]]<br><br>'''[[Wikiwisata:Permohonan pendapat|Permohonan<br>pendapat]]'''</span>
<span class="siteItem">[[Berkas:QA_icon_clr.svg|link=Wikiwisata:Warung Kopi|84px]]<br><br>'''[[Wikiwisata:Warung Kopi|Warung Kopi<br> ]]'''</span>
<span class="siteItem">[[Berkas:Icon delete talk.svg|link=Wikiwisata:Permohonan penghapusan halaman|84px]]<br><br>'''[[Wikiwisata:Permohonan penghapusan halaman|Penghapusan<br>halaman]]'''</span>
<span class="siteItem">[[Berkas:Wikivoyage-logo-v3-laurel.svg|link=Wikiwisata:Kandidat tujuan bulan ini|90px]]<br><br>'''[[Wikiwisata:Kandidat tujuan bulan ini|Kandidat<br>laman utama]]'''</span>
<span class="siteItem">[[Berkas:Under construction icon-blue.svg|link=Wikiwisata:Proyekwiki|84px]]<br><br>'''[[Wikiwisata:Proyekwiki|Proyekwiki<br> ]]'''</span>
<span class="siteItem">[[Berkas:Cscr-featured.svg|link=Wikiwisata:Nominasi bintang|84px]]<br><br>'''[[Wikiwisata:Nominasi bintang|Nominasi<br>bintang]]'''</span>
<span class="siteItem">[[Berkas:Crystal locale.png|link=:meta:Wikivoyage/Lounge|84px]]<br><br>'''[[:meta:Wikivoyage/Lounge|Wikiwisata<br>di Meta]]'''</span>
</div>
<noinclude>
{{Documentation}}
<!-- Add cats and interwikis links to the /doc subpage, not here! -->
{{INTERWIKI|Q82313501}}
</noinclude>
3zrsokktelobjnfp46cogz5mo8ifob2
Templat:Communityportal/boxes.css
10
81
272
271
2024-12-03T13:51:36Z
Jon Harald Søby
20
1 revisi diimpor
271
sanitized-css
text/css
.community-container {
width: 47%;
vertical-align: top;
float: left;
margin: 10px 1%;
background-color:#ffffff;
}
.community-container h4 {
padding: 0.2em 0.5em 0.2em 0.5em;
color: white;
margin-top: 0;
}
.community-container > div { margin-bottom: 1em; }
#community-rightCol {
border: 1px solid #009999;
}
.paddingBox { padding:0.4em 1em 0.3em 1em; }
.bottomLink {
text-align: right;
clear: both;
padding-top: 0.4em;
margin-top: 0.8em;
font-size:95%;
}
@media screen and ( max-width: 720px ) {
.community-container { width: 100%; }
}
rcj4yqu1bxkhdy2sy2ee2kvv3t8hnyk
Templat:Communityportal/styles.css
10
82
274
273
2024-12-03T13:51:37Z
Jon Harald Søby
20
1 revisi diimpor
273
sanitized-css
text/css
#siteContainer { text-align: center; }
.siteItem {
display: inline-block;
clear: both;
padding: 0 0.1%;
}
@media screen and ( max-width: 720px ) {
.siteItem {
padding: unset;
width: 49.5%;
margin: 2% 0;
}
.siteItem:nth-of-type(even) {
float: left;
clear: none;
}
.siteItem:nth-of-type(odd) {
float: right;
}
#siteContainer:after {
content: '';
clear: both;
display: block;
}
}
f5e176zci6ttj2ebisye7gvoid53qwb
Templat:Confused
10
83
278
277
2024-12-03T13:51:37Z
Jon Harald Søby
20
3 revisi diimpor
277
wikitext
text/x-wiki
<div class="hatnote hatnote-confused noexcerpt">
:''Jangan bingung dengan {{{1|}}}.''
</div><noinclude>
[[Kategori:Templat hatnote]]
{{INTERWIKI|Q118038211}}
</noinclude>
nnatww7cr4xdr5rkhilw3fvrg88vvef
Templat:Convert
10
84
2466
286
2024-12-03T14:15:59Z
Jon Harald Søby
20
1 revisi diimpor
285
wikitext
text/x-wiki
<includeonly>{{{{{♥|safesubst:}}}#invoke:Convert|convert}}</includeonly><noinclude>
{{INTERWIKI|Q6271187}}
</noinclude>
idfhb0k2j24p0ckeayzvziwoad5l915
Templat:Coord
10
85
290
289
2024-12-03T13:51:37Z
Jon Harald Søby
20
3 revisi diimpor
289
wikitext
text/x-wiki
{{Coord/display/{{{display|inline}}}|1={{Coord/input/{{#ifeq:{{{4|}}}||dec|{{#if:{{#switch:{{{4}}}{{{8}}}|NE|NW|SE|SW=y}}|dms|{{#if:{{#switch:{{{3}}}{{{6}}}|NE|NW|SE|SW=y}}|dm|{{#if:{{#switch:{{{2}}}{{{4}}}|NE|NW|SE|SW=y}}|d|ERROR}}}}}}}}|1={{{1|}}}|2={{{2|}}}|3={{{3|}}}|4={{{4|}}}|5={{{5|}}}|6={{{6|}}}|7={{{7|}}}|8={{{8|}}}|9={{{9|}}}|format={{{format|}}}|name={{{name|}}}}}}}
p43klnqi7bg1pofpd6ilfqm140jr3ev
Templat:Coord/display/inline
10
86
292
291
2024-12-03T13:51:37Z
Jon Harald Søby
20
1 revisi diimpor
291
wikitext
text/x-wiki
{{{1}}}
cmn9dlq4osu63jqm4mfq9mfvdt3q6zw
Templat:Coord/input/dec
10
87
294
293
2024-12-03T13:51:37Z
Jon Harald Søby
20
1 revisi diimpor
293
wikitext
text/x-wiki
{{#ifeq:{{{2}}}||{{Coord/input/error2|msg=garis bujur tidak ditemukan (format desimal)|sort_ch=#}}|{{Coord/link
|dec-lat={{{1}}}
|dec-long={{{2}}}
|dms-lat={{coord/dec2dms|{{{1}}}|LU|LS|{{coord/prec dec|{{{1}}}|{{{2}}}}}}}
|dms-long={{coord/dec2dms|{{{2}}}|BT|BB|{{coord/prec dec|{{{1}}}|{{{2}}}}}}}
|param={{{1}}}_LU_{{{2}}}_BT_{{{3}}}
|default={{#if:{{{format|}}}|{{{format}}}|dec}}
|name={{{name|}}}}}<!--
-->{{#ifexpr:0{{{1}}}>90|{{Coord/input/error2|msg=latd>90 (dec format)|sort_ch=>}}}}<!--
-->{{#ifexpr:0{{{1}}}<-90|{{Coord/input/error2|msg=latd<-90 (dec format)|sort_ch=<}}}}<!--
-->{{#ifexpr:0{{{2}}}<360||{{Coord/input/error2|msg=longd>=360 (dec format)|sort_ch=>}}}}<!--
-->{{#ifexpr:0{{{2}}}>-360||{{Coord/input/error2|msg=longd<=-360 (dec format)|sort_ch=<}}}}<!--
-->}}<!--
-->
trh47nzeb69x33fuw8d4qv9pj4wuqlt
Templat:Coord/link
10
88
296
295
2024-12-03T13:51:37Z
Jon Harald Søby
20
1 revisi diimpor
295
wikitext
text/x-wiki
<span class="plainlinks nourlexpansion">[{{Coor URL}}{{{param}}}{{#if:{{{name|}}}|&title={{urlencode:{{{name}}}}}}} <span class="{{#ifeq:{{{default|}}}|dec|geo-nondefault|geo-default}}"><span class="geo-dms" title="Peta, foto udara, dan data lain untuk lokasi ini"><span class="latitude">{{{dms-lat}}}</span> <span class="longitude">{{{dms-long}}}</span></span></span><span class="geo-multi-punct"> / </span><span class="{{#ifeq:{{{default|}}}|dec|geo-default|geo-nondefault}}">{{#if:{{{name|}}}|<span class="vcard">|}}<span class="geo-dec" title="Peta, foto udara, dan data lain untuk lokasi ini">{{{dec-lat-display|{{#ifexpr:{{{dec-lat}}}<0|{{Coord/negzeropad|{{{dec-lat}}}|{{#expr:abs{{{dec-lat}}}}}}}°LS|{{{dec-lat}}}°LU}}}}} {{{dec-long-display|{{#ifexpr:{{{dec-long}}}<0|{{Coord/negzeropad|{{{dec-long}}}|{{#expr:abs{{{dec-long}}}}}}}°BB|{{{dec-long}}}°BT}}}}}</span><span style="display:none"> / <span class="geo">{{{dec-lat}}}; {{{dec-long}}}</span></span>{{#if:{{{name|}}}|<span style="display:none"> (<span class="fn org">{{{name|}}}</span>)</span></span>|}}</span>]</span><noinclude>
<!-- BE CAREFUL WITH COPY PASTING
HTMLTidy moves our whitespace around. We use  (unicode zero width no break space/BOM) to force a space char at the end or beginning of a span to stay where it is, and this character gets lost in copypasting. This is a deprecated unicode character for these purposes, but it is the only method that works consistently around all browsers (opposed to #x2060 and #x200b).
-->
09iplnqigjwytw8dm6fkq03j3zrqf7t
Templat:Copyvio
10
89
300
299
2024-12-03T13:51:38Z
Jon Harald Søby
20
3 revisi diimpor
299
wikitext
text/x-wiki
{{Ambox
|type = delete
|image = [[Berkas:Copyvio icon.svg|40px]]
|text = '''Sebagian atau keseluruhan dari artikel ini dicurigai telah melanggar hak cipta.'''
|fix=<br>Konten yang dipermasalahkan tampaknya telah diambil dari: <span class="plainlinks">[{{{1}}}]</span>. Jika Anda adalah penulis asli konten yang dipermasalahkan, beri tahu kami bahwa kami boleh menggunakan karya Anda dengan meninggalkan catatan di [[{{NAMESPACE}} talk:{{PAGENAME}}|halaman pembicaraan]]. Silakan merujuk ke [[Wikiwisata:Copyleft|kebijakan dan pedoman]] kami untuk penjelasan megnenai konten apa saja yang bisa dan tidak bisa digunakan di situs ini.
}}<includeonly>{{#ifeq:{{FULLPAGENAME}}|Wikiwisata:Indeks templat||[[Kategori:Pelanggaran hak cipta]]}}</includeonly><noinclude>
{{Documentation}}
{{INTERWIKI|Q5849910}}
</noinclude>
frr9vnbln0hh1bmc90n7xskgcunrpz4
Templat:Copyvio/doc
10
90
304
303
2024-12-03T13:51:38Z
Jon Harald Søby
20
3 revisi diimpor
303
wikitext
text/x-wiki
{{Documentation subpage}}
<!-- PLEASE ADD CATEGORIES AND INTERWIKIS AT THE BOTTOM OF THIS PAGE -->
=== Penggunaan ===
;artikel
* Untuk artikel yang melanggar hak cipta, tempatkan <nowiki>{{copyvio|source}}</nowiki> di bagian atas artikel untuk mengingatkan pembaca. Alih-alih "sumbernya", sumber pelanggaran harus diberikan (idealnya pranala luar sumbernya).
;bagian
* Untuk menandai bagian tertentu alih-alih keseluruhan artikel, tempatkan <nowiki>{{copyvio}}</nowiki> di sebelah atas bagian.
=== Lihat juga ===
Templat ini akan menambahkan artikel tersebut ke [[:Category:Pelanggaran hak cipta]].
<includeonly>
<!-- CATEGORIES AND INTERWIKIS HERE, THANKS -->
[[Kategori:Templat pemeliharaan]]
</includeonly>
behdum6ra2xm7utrnnyw2piywpoarsh
Templat:Cotm
10
91
308
307
2024-12-03T13:51:38Z
Jon Harald Søby
20
3 revisi diimpor
307
wikitext
text/x-wiki
<div id="cotm" style="width:90%; border: 1px solid #aaa; background-color:#F3F3F3; margin: 0.5em auto; padding: 0.4em;">
[[Berkas:P writing.svg|30px|left]]
<div style="margin-left: 40px;">
Artikel ini adalah '''[[Wikiwisata:Kolaborasi bulan ini|kolaborasi bulan ini]]''' untuk '''{{{1}}}'''. [[Wikiwisata:Kolaborasi bulan ini#{{PAGENAME}}|Cari tahu]] cara meningkatkannya, dan [[Wikiwisata:Libatkan diri|libatkan diri]] untuk membuat artikel ini [[Wikiwisata:Artikel bintang| lebih baik]]!
</div>
</div><noinclude>
[[Kategori:Templat]]
{{INTERWIKI|Q18343212}}
</noinclude>
j6y4pp4xc4ps5uhbfjvkbmyyc2egsqb
Templat:Cotmpromote
10
92
311
310
2024-12-03T13:51:38Z
Jon Harald Søby
20
2 revisi diimpor
310
wikitext
text/x-wiki
==={{Current collaboration}}===
<noinclude>
{{Documentation}}
{{INTERWIKI|Q15628828}}
</noinclude>
03ivf2f8sud5hv2p52tfl90es2mxuub
Templat:CountryData2HTML
10
93
315
314
2024-12-03T13:51:38Z
Jon Harald Søby
20
3 revisi diimpor
314
wikitext
text/x-wiki
<includeonly>{{{{{|safesubst:}}}#invoke:CountryData|countryData2HTML|debug={{{debug|}}}|{{{1|}}}}}</includeonly>
<noinclude>
[[en:voy:Template:CountryData2HTML]]
</noinclude>
9nsqhxa66sb9yv30zizqt9mv2gabv83
Templat:Cquote
10
94
326
325
2024-12-03T13:51:38Z
Jon Harald Søby
20
10 revisi diimpor
325
wikitext
text/x-wiki
{{Main other
|demospace={{{demospace|}}}
|1=<!-- result if in mainspace -->{{Quote
| text={{{text|{{{content|{{{quotetext|{{{quote|{{{1|<includeonly>{{error|Error: No text given for quotation (or equals sign used in the actual argument to an unnamed parameter)}}</includeonly><noinclude>{{Lorem ipsum}}</noinclude>}}} }}} }}} }}} }}}
| author={{{author|{{{personquoted|}}} }}}
| title ={{{title|{{{quotesource|{{{4|}}} }}} }}}
| source={{{source|{{{publication|{{{5|{{#if:{{{title}}}|{{{quotesource|}}}| }} }}} }}} }}}
}}
|2=<!-- result if elsewhere -->
{{(!}} class="cquote pullquote" role="presentation" {{#if:{{{rtl|}}}|dir="rtl"}} style="{{#switch:{{{float|}}}
| left = float:left
| right = float:right
| #default = margin:auto
}}; border-collapse: collapse; border: none; background-color: {{{bgcolor|transparent}}}; width: {{#if: {{{wide|}}} | 100% | {{{width|auto}}}}}; {{#if: {{{bgcolor|}}} | border: 1px solid #AAAAAA;}}"
{{!}} style="width: 20px; vertical-align: top; border: none; color: {{{qcolor|#B2B7F2}}}; font-size: {{#switch:{{{size|{{{quotewidth|{{{width|{{{2|20px}}}}}}}}}}}}
|10px=20px
|30px=60px
|40px=80px
|50px=100px
|60px=120px
|#default=40px}}; font-family: {{#if:{{{rtl|}}}|Roman|'Times New Roman', Times}}, serif; font-weight: bold; line-height: .6em; text-align: left; padding: {{#if:{{{small|}}}|10px 2px|10px 10px}};" {{!}} {{#if:{{{rtl|}}}|”|“}}
{{!}} style="vertical-align: top; border: none;{{#if:{{{rtl|}}}|direction:rtl;}} padding: {{#if:{{{small|}}}|4px 2px|4px 10px}}; {{#ifeq:{{{quotealign|}}}|center|text-align:center;}}" {{!}} {{Trim quotes|{{{text|{{{content|{{{quotetext|{{{quote|{{{1|<includeonly>{{error|Error: No text given for quotation (or equals sign used in the actual argument to an unnamed parameter)}}</includeonly><noinclude>{{Lorem ipsum}}</noinclude>}}}}}}}}}}}}}}}}}
{{!}} style="width: 20px; vertical-align: bottom; border: none; color: {{{qcolor|#B2B7F2}}}; font-size: {{#switch:{{{size|{{{quotewidth|{{{width|{{{2|20px}}}}}}}}}}}}
|10px=20px
|30px=60px
|40px=80px
|50px=100px
|60px=120px
|#default=40px}}; font-family: {{#if:{{{rtl|}}}|Roman|'Times New Roman', Times}}, serif; font-weight: bold; line-height: .6em; text-align: right; padding: {{#if:{{{small|}}}|10px 2px|10px 10px}};" {{!}} {{#if:{{{rtl|}}}|“|”}}
{{!-}}
{{#if:{{{author|{{{personquoted|{{{source|{{{publication|{{{title|{{{quotesource|{{{4|{{{5|}}}}}}}}}}}}}}}}}}}}}}}}|{{#if:{{NAMESPACE}}||[[Kategori:Articles with attributed pull quotes]]}}
{{!}} colspan="3" class="cquotecite" style="border: none; padding-right: 4%; font-size: smaller; line-height:normal; text-align: right;" {{!}} <cite>— {{#if:{{{author|{{{personquoted|{{{4|}}}}}}}}}|{{{author|{{{personquoted|{{{4}}}}}}}}}{{#if:{{{source|{{{publication|{{{title|{{{quotesource|{{{5|}}}}}}}}}}}}}}}|, {{{source|{{{publication|{{{title|{{{quotesource|{{{5}}}}}}}}}}}}}}}}}|{{#if:{{{source|{{{publication|{{{title|{{{quotesource|{{{5|}}}}}}}}}}}}}}}|{{{source|{{{publication|{{{title|{{{quotesource|{{{5}}}}}}}}}}}}}}}}}}}</cite>
}}
{{!)}}
}}<!-- {{subst:FULLPAGENAME}} --><noinclude>
{{INTERWIKI|Q6867400}}
</noinclude>
cl2x55ufqjhn6ptc84bpdz7oli7omlc
Templat:Current collaboration
10
95
328
327
2024-12-03T13:51:38Z
Jon Harald Søby
20
1 revisi diimpor
327
wikitext
text/x-wiki
#REDIRECT [[Templat:Kolaborasi terkini]]
obkcaxe7r74brg5jp8zjoz8kyi5bv61
Templat:Db-meta
10
96
338
337
2024-12-03T13:51:39Z
Jon Harald Søby
20
9 revisi diimpor
337
wikitext
text/x-wiki
{{#ifeq: {{{raw|}}} | yes<!--
If raw=yes, include a short deletion message with no message box-->
| <b>{{ucfirst:{{{1}}}}}.</b> <!--
-->{{#if: {{{2|}}} | <i>{{{2}}}</i>. }}<!--
-->{{#ifeq:{{{criterion}}}| NA
|
| <b>See [[Wikipedia:Criteria for speedy deletion#{{uc:{{{criterion}}}}}|CSD {{uc:{{{criterion}}}}}]].</b>
}}<!--
-->{{#if: {{{rationale|}}}
|  <span style="color:red; font-weight:bold;">{{{rationale}}}</span>
}}<!--
If raw != yes, then include the full deletion template with message box -->
|{{Mbox
| class = mbox-db
| type = speedy
| image = none
| style = font-size:95%;
| text =
<b><i>This {{Pagetype|defaultns=all}} {{#if:{{{bot|}}}|was tagged by [[Pengguna:{{{bot}}}|{{{bot}}}]], because it}} may meet Wikipedia's [[Wikipedia:Criteria for speedy deletion|criteria for speedy deletion]]</i>{{{1}}}.</b> {{#if:{{{2|}}}|<i>{{{2}}}</i>. }}{{#ifeq:{{{criterion}}}|NA||<b>See [[Wikipedia:Criteria for speedy deletion#{{uc:{{{criterion}}}}}|CSD {{uc:{{{criterion}}}}}]].</b>}}<span id="delete-reason" style="display:none">{{urlencode:{{#ifeq:{{{criterion}}}|NA||[[WP:CSD#{{uc:{{{criterion}}}}}|{{uc:{{{criterion}}}}}]]:}} {{{summary|}}}}}</span><span id="delete-criterion" style="display:none">{{uc:{{{criterion}}}}}</span>{{#if:{{{rationale|}}}| <span style="color:red; font-weight:bold;">{{{rationale}}}</span>}}
<p class="verbose">If this {{Pagetype|defaultns=all}} does not meet the criteria for speedy deletion, {{#ifeq:{{{self}}}|yes|please remove this notice.<br /></p>|or you intend to fix it, please remove this notice, but '''do not remove this notice from {{#ifeq:{{NAMESPACE}}|File|files you have uploaded|pages that you have created yourself}}'''. If you {{#ifeq:{{NAMESPACE}}|File|uploaded this file|created this page}} and you disagree with the given reason for deletion, you can click the button below and leave a message explaining why you believe it should not be deleted. You can {{Talk other|check back later to see|also [[{{TALKPAGENAME}}|visit the talk page]] to check}} if you have received a response to your message.
</p>
<!-- "Contest this speedy deletion" button -->
{{#tag: inputbox |
type=commenttitle
default=Contested deletion
preload=Template:Hangon preload {{#switch:{{uc:{{{criterion|NA}}}}}|G3|G10|G11|G12|G14|A1|A2|A3|A7|A9|A10|A11|R3|F1|F2|F3|F4|F5|F6|F7|F8|F9|F11|C1={{uc:{{{criterion}}}}}|#default=generic}}
hidden=yes
page={{#titleparts:{{TALKPAGENAME}}|255}}
buttonlabel=Contest this speedy deletion
break=no
editintro=Template:Hangon preload editintro
}}
<p class="verbose">Note that this {{Pagetype|defaultns=all}} may be deleted at any time if it unquestionably meets the speedy deletion criteria, or if an explanation {{Talk other|added below this notice|posted to the talk page}} is found to be insufficient.</p><!--
-->{{#ifeq:{{{help}}}|off||
<!--
-- Text for the warning message to substitute on user talk pages --
-->{{#if: {{{temp|}}}
|
:<small>'''''Nominator''': Please consider placing the [[Bantuan:Template|template]]:''</small>
:<small><code>''<nowiki>{{subst:</nowiki>[[Templat:{{{temp}}}|{{{temp}}}]]<nowiki>|</nowiki>{{FULLPAGENAME}}<nowiki>|header=1</nowiki>{{{temp2|}}}<nowiki>}} </nowiki>{{#ifeq:{{{sig|x}}}|x|<nowiki>~~~~</nowiki>}}''</code></small>
:''<small>on the talk page of the author.</small>''
<!--
-->}}}}<!--
Add notice about using the talk page, or a notice for administrators if the talk page exists -->
{{#ifeq:{{NAMESPACE}}|{{TALKSPACE}}||{{#ifexist:{{TALKPAGENAME}}|{{Hang on/notice3}}|<div class="verbose">{{Hang on/notice2}}</div>}}}}}}
<!--Space for other notes -->
{{#if:{{{notes|}}}|{{{notes}}}<br />}}<!--
-- Message for admins --
--><small><span class="sysop-show">''Administrators: check [[Istimewa:Whatlinkshere/{{FULLPAGENAME}}|links]], [[{{TALKPAGENAME}}|talk]], [{{fullurl:{{FULLPAGENAME}}|action=history}} history] ([{{fullurl:{{FULLPAGENAME}}|diff=0}} last]), and [{{fullurl:Special:Log|page={{FULLPAGENAMEE}}}} logs] before [{{fullurl:{{FULLPAGENAME}}|wpReason={{urlencode:{{#ifeq:{{{criterion}}}|NA||[[WP:CSD#{{uc:{{{criterion}}}}}|{{uc:{{{criterion}}}}}]]:}} {{{summary|}}}}}&action=delete}} deletion]{{#if:{{{bot|}}}|, as this page was tagged by a [[Wikipedia:Bot policy|bot]]}}{{#if:{{{anote|}}}|{{{anote}}}|.}} {{#ifeq:{{{self}}}|yes||Consider [[google:{{urlencode:{{PAGENAME}}}}|checking Google]].}}''<br/></span>This page was [{{fullurl:{{FULLPAGENAME}}|diff=cur}} last edited] {{#if: {{REVISIONUSER}} | by [[{{ns:2}}:{{REVISIONUSER2}}|{{REVISIONUSER2}}]] <small>{{Toolbar|1=[[Istimewa:Contributions/{{REVISIONUSER2}}|contribs]]|2=[[Istimewa:Log/{{REVISIONUSER2}}|logs]]}}</small> }} at {{#time:H:i, j F Y (e)|{{REVISIONTIMESTAMP}}}} ([{{fullurl:{{FULLPAGENAME}}|action=purge}} {{Time ago|{{REVISIONTIMESTAMP}}}}])</small><!--
-->}}<!--
-- End main mbox code, start courtesy blanking notices and div blanking tag --
-->{{#if: {{{blanked|}}} | {{Mbox|image=none|text= {{{blanked-text|This page has been [[Wikipedia:Deletion policy#Courtesy blanking|blanked as a courtesy]].}}}}} |}}{{#if: {{{pleaseblank|}}} | {{Mbox|type=delete|text=<big>{{red|Please [[Wikipedia:Courtesy blanking|blank this page]] so that it only contains the deletion template.}}</big>}} |}}{{#if: {{{divblank|}}} | <div id="AttackPage" style="display:none"><!--do not close this div tag; it is there to ensure that any content remaining on the page does not display --> |}}
}}<!-- End if statement for "raw" parameter-->{{NOINDEX}}<noinclude>
{{Documentation}}
<!-- Add categories to the /doc subpage; interwikis go to Wikidata, thank you! -->
{{INTERWIKI|Q6535522}}
</noinclude>
n97xe28n1w9ao71c5fc9dunui4htqrl
Templat:Dead link
10
97
2475
343
2024-12-03T14:15:59Z
Jon Harald Søby
20
4 revisi diimpor
342
wikitext
text/x-wiki
<sup class="error-deadlink noprint">[{{#if: {{{2|}}} | link sebelumnya mati | pranala mati}}]</sup><includeonly>{{#ifeq: {{NAMESPACE}} | {{NS:0}} | {{#if: {{{2|}}} | [[Kategori:Artikel dengan pranala luar yang sebelumnya nonaktif]]}} [[Kategori:Artikel dengan pranala luar nonaktif]]}}</includeonly><noinclude>
{{Documentation}}
<!-- PLEASE ADD CATEGORIES AND INTERWIKIS TO THE /doc SUBPAGE, THANKS -->
</noinclude>
<noinclude>
{{INTERWIKI|Q5909236}}
</noinclude>
7a0wylbqkjk5e8n8bvw4cu1i50j810c
Templat:Deadlink
10
98
345
344
2024-12-03T13:51:39Z
Jon Harald Søby
20
1 revisi diimpor
344
wikitext
text/x-wiki
#REDIRECT [[Templat:Dead link]]
pfss742rzknli6ym791hanp0qiupxwo
Templat:Delete
10
99
352
351
2024-12-03T13:51:39Z
Jon Harald Søby
20
6 revisi diimpor
351
wikitext
text/x-wiki
{{SAFESUBST:<noinclude />#invoke:Unsubst||$B={{#ifexist:Template:db-{{lc:{{{1}}}}}|{{Delete-{{lc:{{{1}}}}}}}|
{{Db-meta
|bot={{{bot|}}}
|criterion=NA
|1={{#if:{{{1|}}}
| because: {{{1}}}
|, but {{Red|no reason has been given}} for why it qualifies
}}
|2={{#if:{{{1|}}}
| For valid criteria, see [[Wikipedia:Criteria for speedy deletion|CSD]]| Please ensure that your reason is based on one of the [[Wikipedia:Criteria for speedy deletion|speedy deletion criteria]]. Replace this tag with <code><nowiki>{{Delete|</nowiki>1=''some reason''<nowiki>}}</nowiki></code>
}}
|note=If no reason for ''speedy'' deletion exists, consider nominating this material through one of the [[Wikipedia:Deletion policy|other deletion processes]].
|temp=Db-reason-notice
|temp2={{!}}{{{1|no reason given}}}
|summary={{#if:{{{1|}}}|{{{1}}}|}}
|help={{{help|}}}
}}<includeonly>{{Category handler
| all = [[Kategori:Candidates for speedy deletion]][[Kategori:Candidates for speedy deletion for unspecified reason]]
| nocat = {{{nocat|}}}
| category2 = {{{category|¬}}}
| page = Foo <!--CIRCUMVENT BLACKLIST-->
}}</includeonly>}}}}<noinclude>
{{Documentation}}
{{INTERWIKI|Q4847311}}
</noinclude>
pk8qi3qefm13l3dk1ak8p4jsjfevt2b
Templat:Description
10
100
357
356
2024-12-03T13:51:40Z
Jon Harald Søby
20
4 revisi diimpor
355
wikitext
text/x-wiki
<!-- {{#tag:rdf|
<> dc:description "{{{1}}}" .
}} -->
[[Kategori:Templat]]
6d3s45rzsmihdhcl6ot77g5ijhnh4ej
Templat:Destarnomination
10
101
363
362
2024-12-03T13:51:40Z
Jon Harald Søby
20
5 revisi diimpor
361
wikitext
text/x-wiki
{{#ifeq:{{NAMESPACE}}|{{ns:0}}|[[Kategori:Destar article nominations]]|<!-- Don't categorize when not in main (article) space. -->}}
<div class=noprint>
{{Ombox
|image=[[Berkas:Cscr-featured-strike.svg|50px]]
|text=Artikel ini telah diusulkan untuk '''diturunkan''' ke status panduan. Agar dapat dijadikan sebagai artikel bintang, artikel tersebut harus '''komprehensif''', '''diformat secara benar''', dan '''ditulis dengan baik'''. Silakan berkomentar apakah menurut Anda artikel tersebut cocok atau tidak dengan [[Wikiwisata:Status artikel|kriteria status artikel]], di '''[[Wikiwisata:Nominasi bintang#{{PAGENAME}}|Wikiwisata:Nominasi bintang]]'''. Jika Anda mampu memperbaiki hal-hal yang kurang sebelum diturunkan, silakan [[Wikiwisata:Libatkan diri|libatkan diri]] dan membantunya [[Wikiwisata:Cara menyunting halaman|agar tetap berstatus bintang]]!
}}</div><noinclude>
[[Kategori:Templat]]
{{INTERWIKI|Q15630304}}
</noinclude>
hug5uf3vx3ty4p2pg3gne9uswp17ucx
Templat:Destinasi lainnya
10
102
365
364
2024-12-03T13:51:40Z
Jon Harald Søby
20
1 revisi diimpor
364
wikitext
text/x-wiki
Destinasi lainnya [[Berkas:MUGNIFYING GLASS ICON BY V.V ICONS.jpg|30px|link=]]<noinclude>[[Kategori:Templat AIGA]]</noinclude>
cshm466m1h74637ovuk1nlfdjvbl5nq
Templat:Dikunci mulai
10
103
370
369
2024-12-03T13:51:40Z
Jon Harald Søby
20
4 revisi diimpor
369
wikitext
text/x-wiki
<div class="boilerplate metadata vfd xfd-closed" style="background:#E6F2FF; padding:5px 10px; border:1px solid #AAA;">[[Berkas:Crystal Clear action lock.png|left|20px]] <big>'''{{{1}}}'''</big>
<noinclude>
{{dok}}
[[Kategori:Templat]]
kp29d7kuh4b5djdy667x2ed02p3p0oo
Templat:Disamb
10
104
2477
376
2024-12-03T14:15:59Z
Jon Harald Søby
20
1 revisi diimpor
375
wikitext
text/x-wiki
{| class="article-status" style="border:2px dashed lightblue;"
| style="width:48px;text-align:center;" | [[Berkas:Swedish road sign 1 5 1 4.svg|40px]]
| ''Artikel ini adalah sebuah [[Wikiwisata:Halaman disambiguasi|halaman disambiguasi]]. Jika Anda tiba di sini dengan mengklik tautan dari halaman lain, Anda bisa [[Wikiwisata:Cara membantu Wikiwisata|membantu]] dengan mengoreksinya, sehingga menunjuk ke halaman yang sesuai.''
|}{{#ifeq:{{NAMESPACE}}|{{NS:0}}|__DISAMBIG__[[Kategori:Disambiguasi]]}}<noinclude>
[[Kategori:Templat klasifikasi artikel]]
{{INTERWIKI|Q6148868}}
</noinclude>
frhgkx7hmvkqswkztsuk9ru5koiygv8
Templat:Disambig
10
105
379
378
2024-12-03T13:51:40Z
Jon Harald Søby
20
2 revisi diimpor
378
wikitext
text/x-wiki
#REDIRECT [[Templat:Disamb]]
nmpmg16rngdf0teepp7ij8op90jdq75
Templat:Disambiguasi
10
106
383
382
2024-12-03T13:51:41Z
Jon Harald Søby
20
3 revisi diimpor
382
wikitext
text/x-wiki
#redirect[[Templat:Disamb]]
of1kjphxj2ydpa8kzy6h5jca4gv24nj
Templat:Disambiguation
10
107
385
384
2024-12-03T13:51:41Z
Jon Harald Søby
20
1 revisi diimpor
384
wikitext
text/x-wiki
#REDIRECT [[Templat:Disamb]]
nmpmg16rngdf0teepp7ij8op90jdq75
Templat:Disclaimerbox
10
108
2480
389
2024-12-03T14:15:59Z
Jon Harald Søby
20
2 revisi diimpor
388
wikitext
text/x-wiki
<div style="width:95%; float:center; border: none; margin: 0.5em 0 0 1em; padding: 0.4em;">
{| cellpadding=5 cellspacing=1 border=0
|-
|align=left width=100% style="background-color:#f3fff3; border:1px solid; padding-left: 0.5em; padding-right: 0.5em"|
{{{1}}}
|}
</div>
<noinclude>
[[es:Plantilla:Aviso]]
[[Kategori:Templat]]
</noinclude>
0qjh3dqugma15babddvjy1xlg0h22z0
Templat:Discover
10
109
391
390
2024-12-03T13:51:41Z
Jon Harald Søby
20
1 revisi diimpor
390
wikitext
text/x-wiki
#REDIRECT [[Templat:Jelajahi]]
qgut7jmbqjbvb7hi7w4a9d8xjjfdi48
Templat:District
10
110
393
392
2024-12-03T13:51:41Z
Jon Harald Søby
20
1 revisi diimpor
392
wikitext
text/x-wiki
#REDIRECT [[Templat:District skeleton]]
8jqzp1iv9dv36ytwp4t2hlbjqcy0p1t
Templat:District skeleton
10
111
398
397
2024-12-03T13:51:41Z
Jon Harald Søby
20
4 revisi diimpor
397
wikitext
text/x-wiki
{{pagebanner|Pagebanner default.jpg}}
'''Nama distrik''' ada di [[Kota Besar]].
==Menuju kesini==
==Lihat==
==Lakukan==
==Beli==
==Makan==
==Minum==
==Tidur==
==Terhubung==
<includeonly>{{IsPartOf|}}
{{outlinedistrict}}
{{geo||}}</includeonly><noinclude>
{{INTERWIKI|Q14399334}}
</noinclude>
qwy8csyx1rcgpaz6rxxk6q7gesbhuct
Templat:Districts discussion
10
112
401
400
2024-12-03T13:51:41Z
Jon Harald Søby
20
2 revisi diimpor
400
wikitext
text/x-wiki
{{Ambox
|text = Diskusi '''penentuan batas-batas distrik''' untuk {{{2|{{FULLPAGENAME}}}}} sedang berlangsung.
|fix = Jika Anda tahu tentang kota ini, silakan bagikan pendapat Anda di [[{{NAMESPACE}} talk:{{{2|{{PAGENAME}}}}}#{{{1|}}}|halaman pembicaraannnya]].
|small={{{small|}}}
|smalltext=[[{{NAMESPACE}} talk:{{{2|{{PAGENAME}}}}}#{{{1|}}}|Pembicaraan]] tentang '''penentuan distrik'''
}}<includeonly>{{#ifeq:{{NAMESPACE}}|{{NS:0}}|[[Kategori:Artikel dengan diskusi distrik]]}}</includeonly><noinclude>
{{Documentation}}
{{INTERWIKI|Q15630301}}
</noinclude>
sxyl6k4z6g9a84dut6efp9jcvvzdr5b
Templat:Distrik
10
113
403
402
2024-12-03T13:51:42Z
Jon Harald Søby
20
1 revisi diimpor
402
wikitext
text/x-wiki
Distrik [[Berkas:Noun Project Jigsaw icon 1415396.svg|21px|link=]]<noinclude>[[Kategori:Templat AIGA]]</noinclude>
cbsqr2kbfv7cess8g28urelthraqyvg
Templat:Do
10
114
2483
406
2024-12-03T14:15:59Z
Jon Harald Søby
20
2 revisi diimpor
405
wikitext
text/x-wiki
<includeonly>{{Listing
| type=do
| counter={{{counter|do}}}
| name={{{name|}}}
| alt={{{alt|}}}
| address={{{address|}}}
| directions={{{directions|}}}
| phone={{{phone|}}}
| tollfree={{{tollfree|}}}
| email={{{email|}}}
| fax={{{fax|}}}
| url={{{url|}}}
| hours={{{hours|}}}
| price={{{price|}}}
| lat={{{lat|}}}
| long={{{long|}}}
| lastedit={{{lastedit|}}}
| content={{{content|}}}
| image={{{image|}}}
| wikipedia={{{wikipedia|}}}
| wikidata={{{wikidata|}}}
| inline={{{inline|}}}
| {{{1|}}}}}</includeonly><noinclude>
{{Documentation}}
</noinclude>
ip3d1n9qa2k730fusyowmjmsrq3ebs5
Templat:Do/doc
10
115
410
409
2024-12-03T13:51:42Z
Jon Harald Søby
20
3 revisi diimpor
409
wikitext
text/x-wiki
{{Documentation subpage}}
=== Penggunaan ===
__NOTOC__
<pre>{{do
| name = | alt = | url = | email =
| address = | lat = | long = | directions =
| phone = | tollfree = | fax =
| hours = | price =
| lastedit=
| content =
}}</pre>
trzg9faxarl3pcosc8h6gtqqg2203uf
Templat:Documentation
10
116
2485
424
2024-12-03T14:15:59Z
Jon Harald Søby
20
1 revisi diimpor
423
wikitext
text/x-wiki
<div style="clear:both;margin:1em 0;border:1px solid #aaa;background:#ecfcf4;padding:.5em" class="template-documentation"><!--
These are the literal class definitions in common.css:
/* For template documentation */
.template-documentation {
clear: both;
margin: 1em 0 0 0;
border: 1px solid #aaa;
background: #ecfcf4;
padding: .5em;
}
-->{{#ifeq:{{{heading|μ}}}|<!--**DEFINED BUT EMPTY**-->
|<!--**NOTHING**-->
|<div style="padding-bottom:3px;border-bottom:1px solid #aaa;margin-bottom:1ex">{{#ifeq:{{{content|μ}}}|μ
|<span class="mw-editsection plainlinks" id="doc_editlinks" style="float:right; margin-right:0.50em;">{{#ifexist:{{{1|{{Documentation/docname}}}}}
|<!--** /doc EXISTE** -->[[{{fullurl:{{{1|{{Documentation/docname}}}}}}} lihat]] [[{{fullurl:{{{1|{{Documentation/docname}}}}}|action=edit}} sunting]] [[{{fullurl:{{{1|{{Documentation/docname}}}}}|action=history}} riwayat]] {{purge|[purge]}}
|<!--**/doc NÃO EXISTE**-->[[{{fullurl:{{{1|{{Documentation/docname}}}}}|action=edit&preload=Template:Documentation/preload}} buat]]
}}</span>
}} <span style="{{#if:{{{heading-style|}}}|{{{heading-style}}}|{{#ifeq:{{NAMESPACE}}|{{ns:template}}|font-weight:bold;font-size:125%|font-size:150%}}}}">{{#if:{{{heading|}}}|{{{heading}}}|{{#ifeq:{{NAMESPACE}}|{{ns:template}}|[[Berkas:Template-info.svg|50px]] Dokumentasi templat|Documentation}}}}</span></div>
}}<!--
--><div id="template_doc_page_transcluded" class="dablink plainlinks"><!--
-->{{#ifexist:{{{1|{{Documentation/docname}}}}}
|<!--**/doc EXISTS**-->This documentation is transcluded from [[{{{1|{{Documentation/docname}}}}}]]. <small style="font-style: normal">([{{fullurl:{{{1|{{Documentation/docname}}}}}|action=edit}} sunting] | [{{fullurl:{{{1|{{Documentation/docname}}}}}|action=history}} history])<br />'''''Note to editors:''' Please don't categorize this template by editing it directly. Instead, place the category in its documentation page, in its "includeonly" section.''</small><br /><!--
-->}}<!--
-->{{#switch:{{SUBPAGENAME}}
|sandbox|testcases=<!--**DO NOT SHOW THESE LINKS ON THE SANDBOX/TESTCASES PAGES**-->
|#default=
{{#switch:{{SUBJECTSPACE}}
|{{ns:template}}
|{{ns:user}}=
{{#ifexist:{{FULLPAGENAME}}/sandbox
|This template has a [[/sandbox|sandbox]] <small style="font-style:normal">([{{fullurl:{{#rel2abs:/sandbox}}|action=edit}} sunting])</small> <!--
-->{{#ifexist:{{FULLPAGENAME}}/testcases
|and [[/testcases|testcases]] <small style="font-style:normal">([{{fullurl:{{#rel2abs:/testcases}}|action=edit}} sunting])</small>}} for editors to experiment.
|{{#ifexist: {{FULLPAGENAME}}/testcases
|This template has [[/testcases|testcases]] <small style="font-style:normal">([{{fullurl:{{#rel2abs:/testcases}}|action=edit}} sunting])</small> for editors to experiment.}}
}}}}}}
</div>
{{#if:{{{content|}}}|{{{content|}}}|{{#ifexist:{{{1|{{Documentation/docname}}}}}|{{ {{{1|{{Documentation/docname}}}}}}}}}}}
<div style="clear:both;"></div>
</div><noinclude>
<!-- Add categories and interwikis to the /doc subpage, not here! -->
{{INTERWIKI|Q4608595}}
</noinclude>
1xuzewusp85bk7l29vyl7p54u2iuv9o
Templat:Documentation/docname
10
117
426
425
2024-12-03T13:51:42Z
Jon Harald Søby
20
1 revisi diimpor
425
wikitext
text/x-wiki
{{#switch: {{SUBPAGENAME}}
|sandbox|testcases={{ #rel2abs: ../doc }}
|#default={{SUBJECTPAGENAME}}/doc
}}<noinclude>
[[Kategori:Template documentation]]
</noinclude>
gkmloz6e04r4mdltmekjlbkdrbdwslj
Templat:Documentation subpage
10
118
2487
432
2024-12-03T14:15:59Z
Jon Harald Søby
20
1 revisi diimpor
431
wikitext
text/x-wiki
<includeonly>{{#ifeq: {{lc:{{SUBPAGENAME}}}} | {{{override|doc}}}
| <!-- doc page -->
</includeonly>{{
#ifeq: {{{doc-notice|show}}} | show
| {{ombox
| type = notice
| image = [[Berkas:Edit-copy green.svg|40px]]
| text =
'''Ini adalah sebuah subhalaman dokumentasi untuk {{{1|[[:{{SUBJECTSPACE}}:{{BASEPAGENAME}}]]}}}'''.<br />Templat ini berisi informasi penggunaan, [[Wikiwisata:Kategori|kategori]] dan konten lainnya yang bukan merupakan bagian dari {{ #if: {{{text2|}}} | {{{text2}}} | {{ #if: {{{text1|}}} | {{{text1}}} | {{ #ifeq: {{SUBJECTSPACE}} | {{ns:User}} | {{lc:{{SUBJECTSPACE}}}} halaman templat| {{ #if: {{SUBJECTSPACE}} |{{lc:halaman {{SUBJECTSPACE}}}}|artikel}}}}}}}}.
}}
}}{{DEFAULTSORT:{{{defaultsort|{{PAGENAME}}}}}}}{{
#if: {{{inhibit|}}}
| <!-- skip -->
| <includeonly>{{#ifexist:{{NAMESPACE}}:{{BASEPAGENAME}}|[[Kategori:Halaman dokumentasi {{
#switch: {{SUBJECTSPACE}}
| Template = templat
| User = pengguna
| #default = Wikiwisata }}]]|[[Kategori:Subhalaman dokumentasi tanpa halaman yang berkaitan]]}}</includeonly>
}}<includeonly>
| <!-- if not on a /doc subpage, do nothing -->
}}</includeonly><noinclude>
{{documentation}}
<!-- Add categories and interwikis to the /doc subpage, not here! -->
{{INTERWIKI|Q5882248}}
</noinclude>
mkjwv495krtkaq5ym0la6nhkf46zytp
Templat:Dokumentasi
10
119
443
442
2024-12-03T13:51:43Z
Jon Harald Søby
20
10 revisi diimpor
442
wikitext
text/x-wiki
#redirect[[Templat:Documentation]]
fojeme91n4ozl9x01cmmurmem5rpf3g
Templat:Dokumentasi/doc
10
120
446
445
2024-12-03T13:51:43Z
Jon Harald Søby
20
2 revisi diimpor
445
wikitext
text/x-wiki
{{templat rumit}}
Ini adalah templat '''<nowiki>{{Dokumentasi}}</nowiki>'''.
Untuk instruksi lebih lanjut mengenai bagaimana dan kapan harus menggunakan template ini, lihat [[Wikiwisata:Dokumentasi templat]].
Templat ini menampilkan kotak doc berwarna biru seperti yang Anda lihat sekarang, dan secara otomatis memuat isi dari subhalaman /doc. Dapat juga memuat konten dari tempat lain jika diminta.
Templat ini dimaksudkan untuk mendokumentasikan templat dan halaman lain yang [[Wikipedia:Transklusi|ditransklusikan]] ke halaman lain. Dapat juga digunakan dalam [[Wikipedia:Templat ruang nama|templat ruang nama]] dan [[Wikipedia:Ruang nama|ruang nama]] lainnya.
Penggunaan templat ini memungkinkan templat untuk [[Wikipedia:Kebijakan perlindungan|dilindungi]] jika diperlukan, sambil membiarkan siapa saja untuk mengedit dokumen, kategori, dan tautan interwiki.
== Penggunaan ==
Biasanya templat ini digunakan tanpa parameter, ditempatkan di bagian bawah templat atau halaman yang didokumentasikan, dalam format <nowiki><noinclude></nowiki>:
<source lang="xml+smarty">
<!--Ini adalah baris terakhir dari kode templat Anda--><noinclude>
{{dokumentasi}}
<!-- Tambahkan kategori dan interwiki pada sub-halaman /doc, bukan di sini! -->
</noinclude>
</source>
Maka templat ini secara otomatis memuat isi dari subhalaman /doc dari templat yang digunakan.
Template ini juga dapat memuat konten dari halaman lain. Seperti ini:
<source lang="xml+smarty">
<!--Ini adalah baris terakhir dari kode templat Anda--><noinclude>
{{dokumentasi|Templat:Halaman lain/doc}}
</noinclude>
</source>
Konten juga dapat diberi input langsung sebagai teks. Seperti ini:
<source lang="xml+smarty">
<!--Ini adalah baris terakhir dari kode templat Anda--><noinclude>
{{dokumentasi
| content = Teks dokumentasi.
}}
</noinclude>
</source>
125iv90arggeyezz872xqut59p64wia
Templat:Dokumentasi/eb
10
121
450
449
2024-12-03T13:51:43Z
Jon Harald Søby
20
3 revisi diimpor
449
wikitext
text/x-wiki
{{Dokumentasi/end box
| preload = {{{preload|}}} <!--Allow custom preloads-->
| content = {{{content|}}}
| link box = {{{link box|}}} <!--So "link box=off" works-->
| 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
}}
| docname fed =
{{#if: {{{1|}}}
| yes
}}
| sandbox =
{{{docspace|{{NAMESPACE}}}}}:{{{template page|{{PAGENAME}}}}}/bak pasir
| testcases =
{{{docspace|{{NAMESPACE}}}}}:{{{template page|{{PAGENAME}}}}}/kasus uji
| template page =
{{NAMESPACE}}:{{{template page|{{PAGENAME}}}}}
}}<noinclude>
<!-- Add categories and interwikis to the /doc subpage, not here! -->
</noinclude>
mv8h8yk5azdwly65xw6u3s6b75f5n76
Templat:Done
10
122
455
454
2024-12-03T13:51:43Z
Jon Harald Søby
20
4 revisi diimpor
454
wikitext
text/x-wiki
#redirect[[Templat:Selesai]]
e5ptmkjbio8j4tr5qp6yrlh90qfixz3
Templat:Dotm
10
123
2493
466
2024-12-03T14:16:00Z
Jon Harald Søby
20
1 revisi diimpor
464
wikitext
text/x-wiki
[[Berkas:Mount_Canlaon.JPG|right|frameless|300px|link=]]
'''[[Filipina]]''' adalah salah satu negara kepulauan yang berada di [[Asia Tenggara]]. Filipina memiliki pegunungan, laut, ladang padi, dan pantai tropis yang patut dinikmati. Walaupun Dataran Tinggi Filipina terkenal karena hal ini, Dataran Rendah Filipina juga menarik. Selain itu, kota-kota di Filipina hidup dan bersahabat. Budaya Filipina sangat beragam bercampur dengan budaya Spanyol.
<small>([[Skotlandia|Selengkapnya...]])</small>
<noinclude></noinclude>
lf1s8ouam3jtyrjneqo9z1m1pf46lcf
Templat:Drink
10
124
2495
469
2024-12-03T14:16:00Z
Jon Harald Søby
20
1 revisi diimpor
468
wikitext
text/x-wiki
<includeonly>{{Listing
| type=drink
| counter={{{counter|drink}}}
| name={{{name|}}}
| alt={{{alt|}}}
| address={{{address|}}}
| directions={{{directions|}}}
| phone={{{phone|}}}
| tollfree={{{tollfree|}}}
| email={{{email|}}}
| fax={{{fax|}}}
| url={{{url|}}}
| hours={{{hours|}}}
| price={{{price|}}}
| lat={{{lat|}}}
| long={{{long|}}}
| lastedit={{{lastedit|}}}
| content={{{content|}}}
| image={{{image|}}}
| wikipedia={{{wikipedia|}}}
| wikidata={{{wikidata|}}}
| inline={{{inline|}}}
| {{{1|}}}}}</includeonly><noinclude>
{{Documentation}}</noinclude>
<noinclude>
{{INTERWIKI|Q14330724}}
</noinclude>
hp2odnu6ydg7z3vozb7fy6n4bcm3vl7
Templat:Drink/doc
10
125
471
470
2024-12-03T13:51:44Z
Jon Harald Søby
20
1 revisi diimpor
470
wikitext
text/x-wiki
=== Penggunaan ===
__NOTOC__
<pre>{{Drink
| name = | alt = | url = | email =
| address = | lat = | long = | directions =
| phone = | tollfree = | fax =
| hours = | price =
| lastedit=
| content =
}}</pre>
7s77b707wjt501qozogur4yysgvf72w
Templat:EGP
10
126
473
472
2024-12-03T13:51:44Z
Jon Harald Søby
20
1 revisi diimpor
472
wikitext
text/x-wiki
{{currency|EGP|{{{1|}}}}}<noinclude>
{{Individual currency template documentation}}
[[Kategori:Templat mata uang individual]]
[[en:voy:Template:EGP]]
</noinclude>
pl75pk22wc83r1tktct620hb3a8hgl1
Templat:EUR
10
127
475
474
2024-12-03T13:51:44Z
Jon Harald Søby
20
1 revisi diimpor
474
wikitext
text/x-wiki
{{currency|EUR|{{{1|}}}}}<noinclude>
{{Individual currency template documentation}}
[[Kategori:Templat mata uang individual]]
[[en:voy:Template:EUR]]
</noinclude>
es239iga3zvt5x0mfphxs6jxyvmwj71
Templat:Eat
10
128
2498
480
2024-12-03T14:16:00Z
Jon Harald Søby
20
2 revisi diimpor
479
wikitext
text/x-wiki
<includeonly>{{Listing
| type=eat
| counter={{{counter|eat}}}
| name={{{name|}}}
| alt={{{alt|}}}
| address={{{address|}}}
| directions={{{directions|}}}
| phone={{{phone|}}}
| tollfree={{{tollfree|}}}
| email={{{email|}}}
| fax={{{fax|}}}
| url={{{url|}}}
| hours={{{hours|}}}
| price={{{price|}}}
| lat={{{lat|}}}
| long={{{long|}}}
| lastedit={{{lastedit|}}}
| content={{{content|}}}
| image={{{image|}}}
| wikipedia={{{wikipedia|}}}
| wikidata={{{wikidata|}}}
| inline={{{inline|}}}
| {{{1|}}}}}</includeonly><noinclude>
{{Documentation}}
{{INTERWIKI|Q14330721}}
</noinclude>
cqo56qtz0epoaau1tjxx9omkgqw2nnc
Templat:Eat/doc
10
129
482
481
2024-12-03T13:51:44Z
Jon Harald Søby
20
1 revisi diimpor
481
wikitext
text/x-wiki
=== Penggunaan ===
__NOTOC__
<pre>{{Eat
| name = | alt = | url = | email =
| address = | lat = | long = | directions =
| phone = | tollfree = | fax =
| hours = | price =
| lastedit=
| content =
}}</pre>
fo230v3b4v4e93aqp1e8v0br7jhe7p5
Templat:Eatpricerange
10
130
488
487
2024-12-03T13:51:44Z
Jon Harald Søby
20
5 revisi diimpor
487
wikitext
text/x-wiki
<includeonly>{| class="pricerange-table"
|style="padding-bottom:8px" colspan=2|Berikut kisaran untuk harga {{{4|makan ''bagi satu orang'', termasuk minuman ringan}}}:
|-
| '''Murah''' || {{{1}}}
|-
| '''Menengah''' || {{{2}}}
|-
| '''Mewah''' || {{{3}}}
|}<templatestyles src="Template:Pricerange/style.css" /></includeonly><noinclude>
{{documentation}}
<templatedata>
{
"params": {
"1": {
"label": "Murah",
"type": "string",
"required": true,
"description": "Kisaran harga untuk makanan murah bagi satu orang termasuk minuman ringan di areanya artikel.",
"example": "Dibawah $10"
},
"2": {
"label": "Menengah",
"type": "string",
"required": true,
"description": "Kisaran harga untuk makanan menengah bagi satu orang termasuk minuman ringan di areanya artikel.",
"example": "$10-$20"
},
"3": {
"label": "Mewah",
"type": "string",
"required": true,
"description": "Kisaran harga untuk makanan mewah bagi satu orang termasuk minuman ringan di areanya artikel.",
"example": "Diatas $20"
},
"4": {
"description": "Teks kustom untuk rentang harga.",
"type": "string"
}
},
"description": "Templat harus ditempatkan di bagian atas bagian \"Makan\" untuk memberikan kisaran harga daftar makan berdasarkan harga di area yang dicakup oleh artikel.",
"paramOrder": [
"1",
"2",
"3",
"4"
]
}
</templatedata>
{{INTERWIKI|Q18343214}}
</noinclude>
6xk3yvmv39a24oen0tw4r8q8smolkyx
Templat:Eatpricerange/style.css
10
131
490
489
2024-12-03T13:51:45Z
Jon Harald Søby
20
1 revisi diimpor
489
sanitized-css
text/css
.pricerange-table {
border: 1px solid #ccc;
border-spacing: 0;
background: #f9f9f9;
float: right;
clear: right;
margin: 0.5em 0 0.5em 1em;
width: 30%;
padding: 8px;
}
.pricerange-table td {
padding: 0;
}
qfcmqc186lb3ko9nywhkt99yg70qhys
Templat:Eksperimental
10
132
496
495
2024-12-03T13:51:45Z
Jon Harald Søby
20
5 revisi diimpor
495
wikitext
text/x-wiki
{{Ambox
|text = {{#switch:{{NAMESPACE}}
|Templat = Templat baru ini harus didiskusikan di halaman pembicaraannya untuk menjelaskan tujuannya dan membangun konsensus untuk penggunaan di situs. Sampai ada konsensus untuk mempertahankan templat, itu tidak boleh ditambahkan ke lebih dari '''satu''' artikel dengan visibilitas rendah (sebagai contoh penggunaan). Silakan lihat [[Wikiwisata:Menggunakan templat Mediawiki|kebijakan templat]] untuk panduan tentang kapan templat sesuai.
|Wikivoyage = Halaman proyek ini adalah '''draf''' yang sedang dikembangkan untuk tujuan diskusi. Silakan minta umpan balik untuk halaman ini di [[Wikiwisata:Permintaan komentar|Permintaan komentar]] dan pastikan bahwa halaman pembicaraan menyertakan diskusi tentang tujuan halaman ini, dan mintalah umpan balik dari orang lain untuk memastikan bahwa ada konsensus untuk halaman ini sebelum menghapus template ini .
|Kategori = Kategori ini adalah '''eksperimen''' dan diisi oleh templat eksperimental atau fungsionalitas templat.
|#default = Artikel ini adalah '''eksperimen'''. Lihat [[Wikiwisata:Apa itu artikel|kriteria artikel]] untuk panduan tentang subjek apa yang biasanya diberikan artikel mereka sendiri dan gunakan halaman diskusi artikel ini untuk menjelaskan tujuan artikel dan apakah konten harus (atau tidak) digabungkan ke halaman lain.
}} Harap jangan hapus tag ini sampai [[Wikiwisata:Konsensus|konsensus]] untuk melakukannya telah tercapai di halaman diskusi artikel/templat.
}}<noinclude>
{{Dokumentasi}}
[[en:voy:Template:Experimental]]
</noinclude>
kwisrvz68du4cl2osim573hlyxzd5co
Templat:Eksperimental/doc
10
133
499
498
2024-12-03T13:51:45Z
Jon Harald Søby
20
2 revisi diimpor
498
wikitext
text/x-wiki
{{Subhalaman dokumentasi}}
__NOTOC__
<!-- HARAP TAMBAHKAN KATEGORI DAN INTERWIKIS DI BAWAH HALAMAN INI -->
Baru, dan terkadang berpengalaman, pengguna Wikivoyage terkadang membuat artikel yang tidak memenuhi [[Wikiwisata:Apa itu artikel|kriteria artikel]], atau template yang belum dibahas per [[Wikiwisata:Menggunakan template Mediawiki|Menggunakan template Mediawiki]].
Dalam kasus seperti itu, seringkali bermanfaat untuk menandai artikel/templat sebagai eksperimental sebagai cara untuk meminta pengguna mendiskusikan motivasi artikel baru dan juga mengarahkan mereka ke kebijakan yang ada.
Pendekatan ini memiliki keuntungan dalam mendorong eksperimen sekaligus memudahkan pelacakan konten yang mungkin perlu dibersihkan di lain waktu.
=== Penggunaan ===
Pemformatan berikut harus ditempatkan di bagian atas laman yang ingin ditandai oleh pengguna sebagai eksperimen:
<nowiki>
{{eksperimental}}
</nowiki>
Pesan yang sesuai konteks ditambahkan tergantung pada namespace tempat halaman eksperimental berada, jadi (misalnya) pesan yang berbeda disajikan di halaman template daripada di halaman proyek.
=== Lihat juga ===
* [[:Category:Artikel eksperimental]]
* [[:Category:Kategori eksperimental]]
* [[:Category:Templat eksperimental]]
<includeonly>
<!-- KATEGORI DAN INTERWIKIS DI SINI, TERIMA KASIH -->
[[Kategori:Templat pemeliharaan]] </includeonly>
5h76t92sxr4lx7ehzaaqx8iaz4kegzt
Templat:Email
10
134
502
501
2024-12-03T13:51:45Z
Jon Harald Søby
20
2 revisi diimpor
501
wikitext
text/x-wiki
<span class="email listing-email">{{#invoke:LinkPhone|LinkEmail|{{{1|}}}}}</span>{{#invoke:EmailTracking|EmailTracking|email={{{1|}}}}}<noinclude>
[[en:voy:Template:Email]]
</noinclude>
bj093ihb8lqscoaf60rsijkyshpe3yl
Templat:Euro
10
135
505
504
2024-12-03T13:51:45Z
Jon Harald Søby
20
2 revisi diimpor
504
wikitext
text/x-wiki
<includeonly>{{{1|{{PAGENAME}}}}}</includeonly><noinclude>Negara ini</noinclude> menggunakan '''euro''', [[Zona euro|seperti beberapa negara Eropa lainnya]]. Satu euro setara dan dapat dibagi menjadi 100 sen. Simbol resmi untuk euro adalah €, dan kode ISO-nya adalah EUR. Tapi tidak ada simbol resmi untuk sen.
Semua uang kertas dan koin dari mata uang ini adalah alat pembayaran yang sah di semua negara, kecuali koin berdenominasi rendah (satu dan dua sen) dihapuskan di beberapa negara. Uang kertas terlihat sama di seluruh negara, sementara koin memiliki desain umum standar di bagian belakang yang menunjukkan nilai, dan desain khusus negara nasional di bagian depan. Bagian depan juga digunakan untuk berbagai desain koin peringatan. Desain bagian depan tidak memengaruhi penerimaan koin.<noinclude>
[[Kategori:Templat konten]]
{{INTERWIKI|Q18534096}}
</noinclude>
dvbcitwsl2ydh1cnaxh4tdh2haa9dx6
Templat:EuropeanCuisines
10
136
514
513
2024-12-03T13:51:45Z
Jon Harald Søby
20
8 revisi diimpor
510
wikitext
text/x-wiki
{| style="margin: 1em auto 1em auto;"
| style="text-align:center;" | '''[[Makanan dan minuman|Hidangan]] dari [[Eropa]]'''<br />[[Hidangan Inggris dan Irlandia|Inggris & Irlandia]] • [[Hidangan Perancis|Perancis]] • [[Hidangan Jerman|Jerman]] ([[Hidangan Bavaria|Bavaria]] • [[Hidangan Franken|Franken]])<br />[[Hidangan Georgia|Georgia]] • [[Hidangan Yunani|Yunani]] • [[Hidangan Italia|Italia]] • [[Hidangan Nordik|Nordik]] • [[Hidangan Portugis|Portugis]] • [[Hidangan Rusia|Rusia]] • [[Hidangan Spanyol|Spanyol]]
|}<noinclude>[[Kategori:Templat]]
{{INTERWIKI|Q113310173}}
</noinclude>
kxxr8ccly0yqcj4wha9cv5hsccjwx3g
Templat:European Barncompass
10
137
516
515
2024-12-03T13:51:45Z
Jon Harald Søby
20
1 revisi diimpor
515
wikitext
text/x-wiki
{| style="background-color: #fdffe7; border: 1px solid #fceb92;"
|rowspan="2" style="vertical-align: middle; padding: 5px;" | [[Berkas:Barncompass-Europe.png|100px]]
|style="font-size: x-large; padding: 3px 3px 0 3px; height: 1.5em;" | '''BintangWiki Eropa'''
|-
|style="vertical-align: middle; padding: 3px;" | {{{1}}}
|}<noinclude>
[[Kategori:Templat BintangWiki]]
[[en:voy:Template:European Barncompass]]
</noinclude>
pbsg5cepbat4oi0cj97690pq9qgpfod
Templat:Eventlisting
10
138
521
520
2024-12-03T13:51:46Z
Jon Harald Søby
20
4 revisi diimpor
520
wikitext
text/x-wiki
<!--
Anchor -->{{#if:{{{wikidata|}}} | {{Anchor|{{{wikidata}}} }} }}<!--
Marker
-->{{Marker|type={{{type|listing}}}|name={{{name|}}}|lat={{{lat|}}}|long={{{long|}}}|image={{{image|}}}|url={{{url|}}}}}<!--
Alt
-->{{#if:{{{alt|}}}
| ({{#ifeq:{{#invoke:IsLatin|IsLatin|{{{alt}}}}}|yes|''<span class="nickname listing-alt">{{{alt}}}</span>''|<span class="nickname listing-alt">{{{alt}}}</span>}})
}}<!--
Date
-->: {{#ifeq: {{{type|}}} | event | {{#if: {{{frequency|}}} | {{{frequency}}} | {{#if: {{{endmonth|}}} | {{#ifeq: {{{endmonth}}} | {{{month}}} | {{#if: {{{enddate|}}}| {{{date}}}–{{{enddate}}} {{{month}}} |{{{date}}} {{{month}}} }} |{{{date}}} {{{month}}} – {{{enddate}}} {{{endmonth}}} }} | {{#if: {{{enddate|}}}| {{{date}}}–{{{enddate}}} {{{month}}} |{{{date}}} {{{month}}} }} }} {{#ifeq: {{{year}}} | annual | annually | {{{year}}}{{#if: {{{endyear|}}} |{{#ifeq: {{{endyear}}} | {{{year}}} | | /{{{endyear}}} }} | }} }} }} }}<!--
Location
-->{{#ifeq: {{{type|}}} | event | {{#ifeq: {{{location|}}} | {{PAGENAME}} | | {{#ifexist: {{{location}}} | <nowiki> </nowiki>[[{{{location}}}]] | }} }} }}<!--
Address
-->{{#if:{{{address|}}}
|{{#if:{{{name|}}}{{{url|}}}|, }}<span class="label listing-address">{{{address|}}}</span>
}}<!--
Directions
-->{{#if:{{{directions|}}}
| (''<span class="listing-directions">{{{directions}}}</span>'')
}}<!--
Phone
-->{{#if:{{{phone|}}}
|{{#if:{{{name|}}}{{{url|}}}{{{address|}}}{{{directions|}}}|, }}{{phone|{{{phone}}}}}
}}<!--
Tollfree
-->{{#if:{{{tollfree|}}}
|{{#if:{{{name|}}}{{{url|}}}{{{address|}}}{{{directions|}}}{{{phone|}}}|, }}toll-free: <span class="tel listing-tollfree">{{#invoke:LinkPhone|LinkPhone|{{{tollfree}}}}}</span>
}}<!--
Fax
-->{{#if:{{{fax|}}}
|{{#if:{{{name|}}}{{{url|}}}{{{address|}}}{{{directions|}}}{{{phone|}}}{{{tollfree|}}}|, }}<span class="tel"><span class="type">fax</span>: <span class="value listing-fax">{{{fax}}}</span></span>
}}<!--
E-mail
-->{{#if:{{{email|}}}
|{{#if:{{{name|}}}{{{url|}}}{{{address|}}}{{{directions|}}}{{{phone|}}}{{{tollfree|}}}{{{fax|}}}|, }}{{email|{{{email}}}}}
}}.<!--
Hours
-->{{#if:{{{hours|}}}
| <span class="note listing-hours">{{{hours}}}</span>.
}}<!--
Checkin and checkout
-->{{#if:{{{checkin|}}}
| <span class="note">Check-in: <span class="listing-checkin">{{{checkin}}}</span>{{#if:{{{checkout|}}}|, check-out: <span class="listing-checkout">{{{checkout}}}</span>}}</span>.
|{{#if:{{{checkout|}}}
| <span class="note">Check-out: <span class="listing-checkout">{{{checkout}}}</span></span>.
}}}}<!--
General listing content
--> <span class="note listing-content">{{{content|{{{1|}}}}}}</span><!--
Price
-->{{#if:{{{price|}}}
| <span class="note listing-price">{{{price}}}</span>.
}}<!--
Sister project icons
-->{{#if:{{{wikipedia|}}}{{{wikidata|}}}
| <span class="listing-sister-icons">{{#if:{{{wikipedia|}}}
| [[Berkas:Wikipedia-icon.png|15px|class=listing-sister|link=w:{{{wikipedia}}}|{{{wikipedia}}} di Wikipedia]]
}}{{#if:{{{wikidata|}}}
| [[Berkas:Wikidata-logo.svg|16px|class=listing-sister|link=d:{{{wikidata}}}|{{{wikidata}}} di Wikidata]]
}}</span>
}}<!--
-->{{#invoke:HiddenUnicode|HiddenUnicode|{{{name}}}{{{lat|}}}{{{long|}}}{{{url|}}}{{{alt|}}}{{{address|}}}{{{directions|}}}{{{phone|}}}{{{tollfree|}}}{{{fax|}}}{{{email|}}}{{{hours|}}}{{{checkin|}}}{{{checkout|}}}{{{price|}}}{{{content|}}}{{{1|}}}}}<!--
Clean-up category if date passed or no month
--><includeonly>{{#ifeq: {{{type|}}} | event | {{#if: {{{frequency|}}} | | {{#ifeq: {{{year}}} | annual | |{{#if: {{{month|}}} |{{#iferror: {{#ifexpr: {{#time: U | now }} > {{#time: U | {{#if: {{{enddate|}}} |{{{enddate}}} |{{{date|30}}} }} {{#if: {{{endmonth|}}} | {{{endmonth}}} | {{{month|}}} }} {{#if: {{{endyear|}}} | {{{endyear|}}} | {{{year|}}} }} }} | <span style="font-size: 90%;color:gray">'' (date needs updating)''</span> {{#ifeq:{{NAMESPACE}}|{{NS:0}}|[[Kategori:articles with out of date events]]}}| }}| <span style="font-size: 90%;color:gray">'' (date needs fixing)''</span> {{#ifeq:{{NAMESPACE}}|{{NS:0}}|[[Kategori:articles with bad date events]]}} }} | <span style="font-size: 90%;color:gray">'' (date needs fixing)''</span> {{#ifeq:{{NAMESPACE}}|{{NS:0}}|[[Kategori:articles with bad date events]]}} }} }} }} }}</includeonly><noinclude>
{{Documentation}}
</noinclude>
ckexqmxqu33w5ua8rowrztmklxvsvn5
Templat:Exchange rates
10
139
527
526
2024-12-03T13:51:46Z
Jon Harald Søby
20
5 revisi diimpor
526
wikitext
text/x-wiki
<includeonly>{{infobox|Nilai tukar untuk {{{currency}}}|Per tanggal {{{date}}}:<!--
-->{{#if: {{{USD|}}} |
* US$1 ≈ {{{currencyCode|}}}{{{USD}}}{{{currencyCodeAfter|}}}
}}<!--
-->{{#if: {{{EUR|}}} |
* €1 ≈ {{{currencyCode|}}}{{{EUR}}}{{{currencyCodeAfter|}}}
}}<!--
-->{{#if: {{{GBP|}}} |
* UK£1 ≈ {{{currencyCode|}}}{{{GBP}}}{{{currencyCodeAfter|}}}
}}<!--
-->{{#if: {{{AUD|}}} |
* AU$1 ≈ {{{currencyCode|}}}{{{AUD}}}{{{currencyCodeAfter|}}}
}}<!--
-->{{#if: {{{CAD|}}} |
* CA$1 ≈ {{{currencyCode|}}}{{{CAD}}}{{{currencyCodeAfter|}}}
}}<!--
-->{{#if: {{{NZD|}}} |
* NZ$1 ≈ {{{currencyCode|}}}{{{NZD}}}{{{currencyCodeAfter|}}}
}}<!--
-->{{#if: {{{JPY|}}} |
* Japanese ¥100 ≈ {{{currencyCode|}}}{{{JPY}}}{{{currencyCodeAfter|}}}
}}<!--
-->{{#if: {{{CHF|}}} |
* Swiss Fr.1 ≈ {{{currencyCode|}}}{{{CHF}}}{{{currencyCodeAfter|}}}
}}<!--
-->{{#if: {{{CNY|}}} |
* Chinese ¥1 ≈ {{{currencyCode|}}}{{{CNY}}}{{{currencyCodeAfter|}}}
}}<!--
-->{{#if: {{{INR|}}} |
* Indian ₹100 ≈ {{{currencyCode|}}}{{{INR}}}{{{currencyCodeAfter|}}}
}}<!--
-->{{#if: {{{HKD|}}} |
* Hong Kong $1 ≈ {{{currencyCode|}}}{{{HKD}}}{{{currencyCodeAfter|}}}
}}<!--
-->{{#if: {{{SGD|}}} |
* Singapore $1 ≈ {{{currencyCode|}}}{{{SGD}}}{{{currencyCodeAfter|}}}
}}<!--
-->{{#if: {{{MYR|}}} |
* RM1 Malaysia ≈ {{{currencyCode|}}}{{{MYR}}}{{{currencyCodeAfter|}}}
}}<!--
-->{{#if: {{{THB|}}} |
* ฿10 Thailand ≈ {{{currencyCode|}}}{{{THB}}}{{{currencyCodeAfter|}}}
}}<!--
-->{{#if: {{{ZAR|}}} |
* South African R1 ≈ {{{currencyCode|}}}{{{ZAR}}}{{{currencyCodeAfter|}}}
}}<!--
-->{{#if: {{{VND|}}} |
* 10000 dong Vietnam ≈ {{{currencyCode|}}}{{{VND}}}{{{currencyCodeAfter|}}}
}}<!--
-->{{#if: {{{SEK|}}} |
* 1 SEK ≈ {{{currencyCode|}}}{{{SEK}}}{{{currencyCodeAfter|}}}
}}<!--
-->{{#if: {{{DKK|}}} |
* 1 DKK ≈ {{{currencyCode|}}}{{{DKK}}}{{{currencyCodeAfter|}}}
}}<!--
-->{{#if: {{{NOK|}}} |
* 1 NOK ≈ {{{currencyCode|}}}{{{NOK}}}{{{currencyCodeAfter|}}}
}}
Nilai tukar dapat berubah sweaktu-waktu. Nilai tukar terkini untuk mata uang ini dan mata uang lainnya tersedia di {{{source}}}
}}</includeonly><noinclude>{{Documentation}}
{{INTERWIKI|Q55358999}}
</noinclude>
bmfhngvkexr4327h8iirbgubkzr2h72
Templat:Experimental
10
140
529
528
2024-12-03T13:51:46Z
Jon Harald Søby
20
1 revisi diimpor
528
wikitext
text/x-wiki
#redirect[[Templat:Eksperimental]]
s4bt7koagpqzje65vzhnosy59gwqhn5
Templat:Extraregion
10
141
2500
532
2024-12-03T14:16:00Z
Jon Harald Søby
20
1 revisi diimpor
531
wikitext
text/x-wiki
<div class=noprint>
{| class="article-status" style="border-style:dotted;border-width:2px;border-color:lightblue"
|''[[Wikiwisata:Hirarki_geografis#Wilayah|Artikel wilayah]] ini adalah '''wilayah ekstra-hirarki''' yang menggambarkan wilayah yang tidak sesuai dengan hierarki yang dipergunakan Wikiwisata untuk mengatur sebagian besar artikel. Artikel tambahan ini biasanya hanya memberikan informasi dasar dan tautan ke artikel dalam hirarki tersebut. Artikel ini dapat dikembangkan bila informasinya khusus untuk halaman tersebut; jika tidak, teks informasi tambahan umumnya harus masuk ke artikel wilayah atau kota yang sesuai.''
|}</div><includeonly>{{#ifeq:{{NAMESPACE}}|{{ns:0}}|[[Kategori:Wilayah ekstra]][[Kategori:Artikel wilayah]]|<!-- Don't categorize when not in main (article) space. -->}}{{#ifexist:Category:{{PAGENAME}}|{{#ifeq:{{{subregion|}}}|yes||[[Kategori:Wilayah ekstra dengan kategori]]}}}}</includeonly><noinclude>
{{INTERWIKI|Q15629928}}
</noinclude>
48fmaw5eumr1w9vh3qlo9zj9w57gk5l
Templat:Fahrenheit
10
142
534
533
2024-12-03T13:51:46Z
Jon Harald Søby
20
1 revisi diimpor
533
wikitext
text/x-wiki
{{convert|{{{1|32}}}|F|C|abbr=on}}<noinclude>
{{documentation}}
[[Kategori:Templat format dan fungsi]]
[[en:voy:Template:Fahrenheit]]
</noinclude>
5215vof24vyj751lofewyl3m311pc6r
Templat:FeatureNom
10
143
538
537
2024-12-03T13:51:46Z
Jon Harald Søby
20
3 revisi diimpor
537
wikitext
text/x-wiki
{| style="border:1px solid #ddddff;padding:7px"
|-
| style="vertical-align:top;" width="100%" |
'''Nama Tempat''': {{{nama tempat}}}<br />
'''Kutipan''': {{{kutipan}}} <small>''(tidak boleh lebih dari ~150 karakter)''</small><br />
'''Dinominasikan oleh''': {{{dinominasikan oleh}}}
'''Waktu untuk tampil''': {{{waktu}}}<br />
'''Ukuran Artikel''': {{{ukuran}}} <small>''(tidak boleh kurang dari 500 bita)''</small><br />
'''Comment''': {{{comment}}}
| width="33%" style="padding:10px; background-color:#ddddff;vertical-align:top;" |<div style="text-align:center; font-size:120%; margin-bottom:10px;">'''Nominasi'''</div>
{{{TWBIImage}}}
|}
2t3pwhp27g0pbd00hfggsx5ttq8u18q
Templat:Flag
10
144
540
539
2024-12-03T13:51:47Z
Jon Harald Søby
20
1 revisi diimpor
539
wikitext
text/x-wiki
[[Berkas:Flag of {{#switch:{{{1}}}
|Australian Capital Territory
|Cook Islands
|Czech Republic
|Democratic Republic of Azerbaijan
|Democratic Republic of the Congo
|District of Columbia
|Marshall Islands
|Netherlands
|Northern Mariana Islands
|Northern Territory
|Northwest Territories
|Philippines
|Republic of China
|Republic of the Congo
|Solomon Islands
|United Arab Emirates
|United States
|United Kingdom
|Vatican City=the {{{1}}}
|Georgia (US)|Georgia (state)=Georgia (U.S. state)
|Victoria|Victoria (state)=Victoria (Australia)
|Australian Antarctic Territory=the Australian Antarctic Territory (unofficial)
|#default={{{1}}}
}}.svg|frameless|20px|border|{{{1}}}|link=]]{{#if:{{{link|}}}|{{#ifeq:{{{link}}}|yes| [[{{{1}}}]]| [[{{{link}}}]]}}|}}<!-- If link parameter exists and is yes, set link to parameter 1. If exists and is anything else, set link to parameter link. --><noinclude>[[en:voy:Template:Flag]]</noinclude>
d3hsdsdxie0osg51h6d4icirodni1ki
Templat:Flatlist
10
145
543
542
2024-12-03T13:51:47Z
Jon Harald Søby
20
2 revisi diimpor
542
wikitext
text/x-wiki
<templatestyles src="Template:Flatlist/style.css" /><div class="hlist {{{class|}}}" {{#if:{{{style|}}}{{{indent|}}}|style="{{#if:{{{indent|}}}|margin-left: {{#expr:{{{indent}}}*1.6}}em;}} {{{style|}}}"}}>{{#if:{{{1|}}}|
{{{1}}}
</div>}}<noinclude></div>
{{documentation}}
[[Kategori:Templat format dan fungsi]]
{{INTERWIKI|Q5622429}}
</noinclude>
6fs3el7pyb9wfm5bp2mt6e2njn8myeg
Templat:Flatlist/style.css
10
146
545
544
2024-12-03T13:51:47Z
Jon Harald Søby
20
1 revisi diimpor
544
sanitized-css
text/css
/* Style for horizontal lists (separator following item).
@source mediawiki.org/wiki/Snippets/Horizontal_lists
@revision 9 (2016-08-10)
@author [[Pengguna:Edokter]]
*/
.hlist dl,
.hlist ol,
.hlist ul {
margin: 0;
padding: 0;
}
/* Display list items inline */
.hlist dd,
.hlist dt,
.hlist li {
margin: 0;
display: inline;
}
/* Display nested lists inline */
.hlist.inline,
.hlist.inline dl,
.hlist.inline ol,
.hlist.inline ul,
.hlist dl dl, .hlist dl ol, .hlist dl ul,
.hlist ol dl, .hlist ol ol, .hlist ol ul,
.hlist ul dl, .hlist ul ol, .hlist ul ul {
display: inline;
}
/* Hide empty list items */
.hlist .mw-empty-li,
.hlist .mw-empty-elt {
display: none;
}
/* Generate interpuncts */
.hlist dt:after {
content: ": ";
}
.hlist dd:after,
.hlist li:after {
content: " · ";
font-weight: bold;
}
.hlist dd:last-child:after,
.hlist dt:last-child:after,
.hlist li:last-child:after {
content: none;
}
/* Add parentheses around nested lists */
.hlist dd dd:first-child:before, .hlist dd dt:first-child:before, .hlist dd li:first-child:before,
.hlist dt dd:first-child:before, .hlist dt dt:first-child:before, .hlist dt li:first-child:before,
.hlist li dd:first-child:before, .hlist li dt:first-child:before, .hlist li li:first-child:before {
content: " (";
font-weight: normal;
}
.hlist dd dd:last-child:after, .hlist dd dt:last-child:after, .hlist dd li:last-child:after,
.hlist dt dd:last-child:after, .hlist dt dt:last-child:after, .hlist dt li:last-child:after,
.hlist li dd:last-child:after, .hlist li dt:last-child:after, .hlist li li:last-child:after {
content: ")";
font-weight: normal;
}
/* Put ordinals in front of ordered list items */
.hlist ol {
counter-reset: listitem;
}
.hlist ol > li {
counter-increment: listitem;
}
.hlist ol > li:before {
content: " " counter(listitem) "\a0";
}
.hlist dd ol > li:first-child:before,
.hlist dt ol > li:first-child:before,
.hlist li ol > li:first-child:before {
content: " (" counter(listitem) "\a0";
}
2v0pjw7dugrmxkaant6t4coqs8toqzr
Templat:Flyingtopics
10
147
548
547
2024-12-03T13:51:47Z
Jon Harald Søby
20
2 revisi diimpor
547
wikitext
text/x-wiki
{| style="margin: 1em auto 1em auto;"
| style="text-align:center;" | '''Topik [[penerbangan]]''': '''[[Merencanakan penerbangan Anda]] → [[Di bandara]] → [[Di pesawat]] → [[Tiba dengan pesawat]]''' <br /> [[Saran bagi penumpang yang gugup]] • [[Aliansi Maskapai Penerbangan]] • [[Aliansi Kereta Api]] • [[Tempat duduk pesawat|Tempat Duduk]] • [[Penerbangan dan kesehatan|Kesehatan]] • [[Bagasi penerbangan|Bagasi]] • [[Terbang sesuai anggaran|Anggaran]]<br />[[Penerbangan kelas satu dan bisnis|Kelas satu & bisnis]] • [[Program penerbang setia|Penerbang setia]] • [[Penerbangan umum]] • ''[[Lounge]]'' • ''[[Mabuk pascaterbang|Jet lag]]''<br />[[Artikel bandara]] • [[Terbang ke Afrika|Afrika]] • [[Terbang ke Amerika Selatan|Amerika Selatan]] • [[ Terbang di Amerika Serikat|Amerika Serikat]]
|}
<noinclude>[[Kategori:Templat konten]]</noinclude>
32z2a6db7pcom4eqai7u4dodby4u3w7
Templat:Foot
10
148
550
549
2024-12-03T13:51:47Z
Jon Harald Søby
20
1 revisi diimpor
549
wikitext
text/x-wiki
{{#switch:{{{2|}}}
| adj
| on = {{convert|{{{1|3000}}}|ft|m|adj=on}}
| off
| abbr
| #default = {{convert|{{{1|3000}}}|ft|m|abbr=on}}
}}<noinclude>
{{documentation}}
[[Kategori:Templat format dan fungsi]]
[[en:voy:Template:Foot]]
</noinclude>
k9dslzqbfz07f5ffrt2ptldxywmcwv8
Templat:ForecastNOAA
10
149
553
552
2024-12-03T13:51:47Z
Jon Harald Søby
20
2 revisi diimpor
552
wikitext
text/x-wiki
<includeonly><span class="noprint">[http://forecast.weather.gov/MapClick.php?site=fgz&smap=1&textField1={{{2}}}&textField2={{{3}}} Lihat perkiraan cuaca di {{{1}}} untuk 7 hari]</span></includeonly><noinclude>{{INTERWIKI|Q66364379}}
</noinclude>
8c80jokbor8biiyob4o2pxpyeripl5w
Templat:Formatbox
10
150
2502
570
2024-12-03T14:16:00Z
Jon Harald Søby
20
1 revisi diimpor
569
wikitext
text/x-wiki
{{Infobox|Konvensi format dan bahasa|Untuk artikel tentang {{{country|{{PAGENAME}}}}}, {{#switch: {{lc: {{{time|24}}} }}
|12=mohon gunakan '''[[Wikiwisata:Format waktu dan tanggal|format waktu 12 jam]]''' untuk menunjukkan waktu, contoh: 9AM-tengah hari dan 6PM-tengah malam.
|24=mohon gunakan '''[[Wikiwisata:Format waktu dan tanggal|format waktu 24 jam]]''' untuk menunjukkan waktu, contoh: 09:00-12:00 dan 18:00-00:00.
|canada=mohon gunakan '''[[Wikiwisata:Format waktu dan tanggal|format waktu 12 jam]]''' untuk menunjukkan waktu, contoh: 9AM-tengah hari dan 6PM-tengah malam kecuali pada artikel tentang Quebec yang menggunakan [[Wikiwisata:Format waktu dan tanggal|format waktu 24 jam]] contoh: 09:00-12:00 dan 18:00-00:00.
|uk=mohon gunakan '''[[Wikiwisata:Format waktu dan tanggal|format waktu 12 jam]]''' untuk menunjukkan waktu, contoh: 9AM-tengah hari dan 6PM-tengah malam kecuali pada artikel tentang Skotlandia yang menggunakan [[Wikiwisata:Format waktu dan tanggal|format waktu 24 jam]] contoh: 09:00-12:00 dan 18:00-00:00.
}} {{<includeonly>safesubst:</includeonly>#if:{{{timecmt|}}}|  {{{timecmt}}}}}
{{<includeonly>safesubst:</includeonly>#if:{{{price|}}}|  Mohon gunakan [[Wikiwisata:Mata uang|harga]] dalam format: '''{{{price}}}'''}} {{<includeonly>safesubst:</includeonly>#if:{{{not|}}}|  dan bukan {{{not}}}.}} {{<includeonly>safesubst:</includeonly>#if:{{{foreign|}}}|  Untuk wilayah yang menerima mata uang asing, gunakan {{{foreign}}}.}} {{<includeonly>safesubst:</includeonly>#if:{{{foreign2|}}}| atau {{{foreign2}}}}} {{<includeonly>safesubst:</includeonly>#if:{{{reason|}}}|  Ini karena {{{reason}}}.}} {{<includeonly>safesubst:</includeonly>#if:{{{foreign2|}}}| atau {{{foreign2}}}}} {{<includeonly>safesubst:</includeonly>#if:{{{extraprice|}}}|  {{{extraprice}}}}}
{{<includeonly>safesubst:</includeonly>#if:{{{spelling|}}}|  {{#switch: {{lc: {{{spelling}}} }}
|american|us=Bahasa Inggris di wilayah ini menggunakan [[Wikiwisata:Ejaan|Ejaan Amerika]] (color, labor, traveled, realize, center, analog, program). [[Kategori:Negara yang menggunakan Ejaan Inggris Amerika]]
|australian|au=Bahasa Inggris di wilayah ini menggunakan [[Wikiwisata:Ejaan|Ejaan Australia]] (colour, realise, program, centre, labour (kecuali Labor Party), analog). [[Kategori:Negara yang menggunakan Ejaan Inggris Australia]]
|british|uk|gb|singapore|sg=Bahasa Inggris di wilayah ini menggunakan [[Wikiwisata:Ejaan|Ejaan Britania]] (colour, travelled, centre, realise, analogue, programme, defence). [[Kategori:Negara yang menggunakan Ejaan Inggris Britania]]
|canadian|ca=Bahasa Inggris di wilayah ini menggunakan [[Wikiwisata:Ejaan|Ejaan Kanada]] (colour, centre, travelled, realize, analyze, program). {{{cancat|[[Kategori:Negara yang menggunakan Ejaan Inggris Kanada]]}}}
|irish|ir=Bahasa Inggris di wilayah ini menggunakan [[Wikiwisata:Ejaan|Ejaan Irlandia]] (yang sama persis dengan Ejaan Britania). <!--Alasan mengapa kami memisahkan hal ini adalah untuk menghindari perselisihan politik--> [[Kategori:Negara yang menggunakan Ejaan Inggris Britania]]
|new zealand|nz=Bahasa Inggris di wilayah ini menggunakan [[Wikiwisata:Ejaan|Ejaan Selandia Baru]] (yang mirip dengan ejaan Inggris Britania Raya, kecuali kata-kata seperti fiord, alright, jail dsb.). [[Kategori:Negara yang menggunakan Ejaan Inggris Selandia Baru]]
|philippine|ph=Bahasa Inggris di wilayah ini menggunakan [[Wikiwisata:Ejaan|Ejaan Filipina]] (color, labor, travelled, realize, center).
|south africa|sa|rsa=Bahasa Inggris di wilayah ini menggunakan [[Wikiwisata:Ejaan|Ejaan Afrika Selatan]] (yang mirip dengan ejaan Inggris Britania Raya, kecuali kata-kata seperti cafe atau coupe yang tidak beraksen). <!--There are some differences, but not so significant-->
|indonesia|id=Bahasa Inggris di wilayah ini menggunakan [[Wikiwisata:Ejaan|Ejaan Australia]] (colour, realise, program, centre, labour (kecuali Labor Party), analog, program). [[Kategori:Negara yang menggunakan Ejaan Inggris Australia]]
}}
}}
{{<includeonly>safesubst:</includeonly>#if:{{{phone|}}}| Nomor telepon harus menggunakan format {{{phone}}}.}}
}}
<noinclude>{{dok}} [[en:voy:Template:Formatbox]]</noinclude>
qfvw7jvzgzbucsezhmmg0ieowbdqlwa
Templat:Formatbox/doc
10
151
574
573
2024-12-03T13:51:48Z
Jon Harald Søby
20
3 revisi diimpor
573
wikitext
text/x-wiki
== Lihat Pula ==
* [[Wikiwisata:Format waktu dan tanggal]]
* [[Wikiwisata:Mata uang]]
* [[Wikiwisata:Ejaan]]
* [[Wikiwisata:Nomor telepon]]
sdutrxefwivtqvb3qz327m10qze3p77
Templat:Frac
10
152
577
576
2024-12-03T13:51:48Z
Jon Harald Søby
20
2 revisi diimpor
576
wikitext
text/x-wiki
<!-- zero-width space; might be removable after introduction of RemexHTML --><span class="frac nowrap">{{#if:{{{3|}}}
|{{{1}}}<span class="visualhide"> </span><sup>{{{2}}}</sup>⁄<sub>{{{3}}}</sub>
|{{#if:{{{2|}}}
|<sup>{{{1}}}</sup>⁄<sub>{{{2}}}</sub>
|{{#if:{{{1|}}}
|<sup>1</sup>⁄<sub>{{{1}}}</sub>
|⁄
}}
}}
}}</span><noinclude>
[[Kategori:Templat]]
{{INTERWIKI|Q10806324}}
</noinclude>
8qtpweillbygoy6sop6uw5tsiwetkxc
Templat:Ft2
10
153
579
578
2024-12-03T13:51:48Z
Jon Harald Søby
20
1 revisi diimpor
578
wikitext
text/x-wiki
#REDIRECT [[Templat:Squarefeet]]
hes2gaeb2y2ep24282fhuocggrowf4h
Templat:Ftt
10
154
2504
589
2024-12-03T14:16:00Z
Jon Harald Søby
20
1 revisi diimpor
587
wikitext
text/x-wiki
== Gambar pilihan ==
{{GP/2
|gambar = Mother Temple of Besakih.jpg
|deskripsi = Pura Pura Besakih di [[Bali]].
|ukuran = 800 × 533 piksel, 135 KB
|oleh = Xeviro
|lisensi = CC-BY-SA 3.0
}}
<noinclude></noinclude>
mnuvurmr70qdkr6nijmg9iq8dqr9304
Templat:Fullurl
10
155
594
593
2024-12-03T13:51:48Z
Jon Harald Søby
20
4 revisi diimpor
593
wikitext
text/x-wiki
<includeonly><span class="plainlinks">[{{Fullurl:{{{n}}}|{{{p|}}}}} {{{s|{{{n}}}}}}]</span></includeonly><noinclude>
{{Documentation}}
{{INTERWIKI|Q14444937}}
</noinclude>
iqrzprxm3clf1gf3g7rnjsm7ydsznmd
Templat:Fullurl/doc
10
156
597
596
2024-12-03T13:51:49Z
Jon Harald Søby
20
2 revisi diimpor
595
wikitext
text/x-wiki
{{Documentation subpage}}
== Penggunaan ==
Halaman ini berfungsi untuk keajaiban kata "fullurl:" - jika digunakan sebagai template bukan sebagai kata ajaib.
=== Penggunaan tambahan ===
Untuk membuat link HTML ke halaman saat ini. Pengguna dengan Subst: link ini tidak akan berubah jika teks tersebut akan dipindahkan atau diarsipkan.
Contoh: Untuk mendokumentasikan teks sebelumnya ditambahkan ke arsip yang sedang-faktor ulang (dengan subst:).
Contoh: Untuk membuat link ke halaman saat ini yang HTML scraper-cermin dapat melestarikan.
Contoh: Untuk menciptakan basis-link yang dapat diubah atau diperpanjang untuk menunjukkan sub-halaman, protokol alternatif atau halaman yang setara di wiki lainnya.
* <nowiki>https:{{fullurl}}/doc</nowiki> memberikan
* https:{{fullurl}}/doc
== Parameter ==
* <code> protocol </code>
Mis
<nowiki> {{fullurl|protocol=http}}/doc</nowiki> memberikan
* {{fullurl|protocol=http}} /doc
5n6kbt6mjkem3tltfem4av86dpjenf1
Templat:G
10
157
599
598
2024-12-03T13:51:49Z
Jon Harald Søby
20
1 revisi diimpor
598
wikitext
text/x-wiki
#REDIRECT [[Templat:Gram]]
rzxzs60ijkskh195dr17uym03betghq
Templat:GBP
10
158
601
600
2024-12-03T13:51:49Z
Jon Harald Søby
20
1 revisi diimpor
600
wikitext
text/x-wiki
{{currency|GBP|{{{1|}}}}}<noinclude>
{{Individual currency template documentation}}
[[Kategori:Templat mata uang individual]]
[[en:voy:Template:GBP]]
</noinclude>
dx6hsdqcc82qjoxazbsw85q96vhqiy0
Templat:GEL
10
159
603
602
2024-12-03T13:51:49Z
Jon Harald Søby
20
1 revisi diimpor
602
wikitext
text/x-wiki
{{currency|GEL|{{{1|}}}}}<noinclude>
{{Individual currency template documentation}}
[[Kategori:Templat mata uang individual]]
[[en:voy:Template:GEL]]
</noinclude>
oiw6wa426uapckewyb67md384z71tex
Templat:GP/2
10
160
608
607
2024-12-03T13:51:49Z
Jon Harald Søby
20
4 revisi diimpor
607
wikitext
text/x-wiki
[[Berkas:{{{gambar}}}|400px|center|border|{{{deskripsi}}}]]
<center> {{{deskripsi}}}</center>
<center><small>''(ukuran asli: {{{ukuran}}})''</small></center>
</div>
<div align="left" width="50%" style="font-size:90%">
Oleh: {{{oleh}}}</br>
Lisensi: {{{lisensi}}}
</div>
<div width="50%" style="float:right; font-size:90%">
[[Wikiwisata:Gambar pilihan|Arsip]]
</div>
<noinclude>
{{dok}}
[[Kategori:Templat]]
[[Kategori:Templat HU]]
</noinclude>
1kpiak3h7ojym151g000xpxehca3wj2
Templat:GP/2/doc
10
161
610
609
2024-12-03T13:51:49Z
Jon Harald Søby
20
1 revisi diimpor
609
wikitext
text/x-wiki
{{templat rumit}}
{{templat HU}}
Templat untuk Gambar Pilihan di Halaman Utama.
== Penggunaan ==
<source lang="xml+smarty">
{{
|gambar = <isilah dengan nama file>
|dekripsi = <isilah dengan deskripsi gambar>
|oleh = <isilah dengan nama fotografer gambar>
|lisensi = <isilah dengan lisensi>
}}
</source>
q7y3carzwa08q6ie5lvbhztkvqcpz74
Templat:GPX
10
162
612
611
2024-12-03T13:51:49Z
Jon Harald Søby
20
1 revisi diimpor
611
wikitext
text/x-wiki
<noinclude>
Diganti GeoJSON dengan peluncuran [[mw:Extension:Kartographer]].
</noinclude>
abp8v98qmi8bhdj3fgrllph594kniqq
Templat:GPX indicator
10
163
617
616
2024-12-03T13:51:49Z
Jon Harald Søby
20
4 revisi diimpor
616
wikitext
text/x-wiki
{{#switch:{{NAMESPACE}}
|{{NS:0}}|{{NS:10}}=
<indicator name="GPX">[[Berkas:GPX Document rev3-20x20.png|20px|link=http://maps.wikivoyage-ev.org/w/poi2gpx.php?print=gpx&lang={{{lang|{{CONTENTLANG}}}}}&name={{{country|{{FULLPAGENAMEE}}}}}|Reset GPX untuk halaman ini]]</indicator>}}<noinclude>{{INTERWIKI|Q27255566}} [[Kategori:Templat]]
</noinclude>
hyxf67nc52d8koor70p82ash1t4r4xn
Templat:Gambar pilihan
10
164
620
619
2024-12-03T13:51:49Z
Jon Harald Søby
20
2 revisi diimpor
619
wikitext
text/x-wiki
<div class="path" style="width:100%; margin-top: 0; border: 1px #ccc solid; -moz-border-radius: 5px; -webkit-border-radius: 5px; border-radius: 5px; box-shadow: 1px 1px 10px -2px rgba(0,0,0,0.5); -moz-box-shadow: 1px 1px 10px -2px rgba(0,0,0,0.5); -webkit-box-shadow: 1px 1px 10px -2px rgba(0,0,0,0.5);">
{{HU/Blok|title=[[Templat:HU/GP|Gambar pilihan]]|color=#FFCCCC}}
<div style="margin: 5px 10px;">
{{HU/GP}}
</div>
</div>
<noinclude>[[Kategori:Templat]]</noinclude>
94vi9kpzorhowgz0i6mmpamecjck7sm
Templat:Geo
10
165
2509
623
2024-12-03T14:16:00Z
Jon Harald Søby
20
4 revisi diimpor
622
wikitext
text/x-wiki
<includeonly>{{#if:{{{1|}}}|<div class=noprint id="geoCoord"><span style="display:none"><span id="geodata" class="geo">{{{1|}}}; {{{2|}}}</span></span>[[Berkas:Map mag.png|25px|link={{PoiMap2|{{{1|}}}|{{{2|}}}|{{{zoom|13}}}|{{{layer|O}}}}}]]</div>[[Kategori:Memiliki parameter Geo]]{{#coordinates:primary|{{{1|}}}|{{{2|}}}}}|{{#ifeq:{{NAMESPACE}}|{{NS:0}}|
[[Kategori:Artikel dengan parameter Geo]]}}}}</includeonly><noinclude>
<!--link to documentation for this template-->
{{Documentation}}
[[en:voy:Template:Geo]]
</noinclude>
j80wiyhtoefg0u7t882lpdxoz3tczxi
Templat:Go
10
166
2511
627
2024-12-03T14:16:00Z
Jon Harald Søby
20
1 revisi diimpor
626
wikitext
text/x-wiki
{{Listing
| type=go
| counter={{{counter|go}}}
| name={{{name|}}}
| alt={{{alt|}}}
| address={{{address|}}}
| directions={{{directions|}}}
| phone={{{phone|}}}
| tollfree={{{tollfree|}}}
| email={{{email|}}}
| fax={{{fax|}}}
| url={{{url|}}}
| hours={{{hours|}}}
| price={{{price|}}}
| lat={{{lat|}}}
| long={{{long|}}}
| lastedit={{{lastedit|}}}
| content={{{content|}}}
| image={{{image|}}}
| wikipedia={{{wikipedia|}}}
| wikidata={{{wikidata|}}}
| inline={{{inline|}}}
| {{{1|}}}}}<noinclude>{{Documentation}}</noinclude>
<noinclude>
{{INTERWIKI|Q62595832}}
</noinclude>
35ut7iyv2pei7wd6wns8a3h43wcz851
Templat:Go/doc
10
167
631
630
2024-12-03T13:51:50Z
Jon Harald Søby
20
3 revisi diimpor
630
wikitext
text/x-wiki
=== Penggunaan ===
__NOTOC__
<pre>{{Go
| name = | alt = | url = | email =
| address = | lat = | long = | directions =
| phone = | tollfree = | fax =
| hours = | price =
| wikipedia =
| wikidata =
| image =
| lastedit =
| content =
}}</pre>
=== Parameters ===
* '''name''': the name of the station, airport, or whatever. ''Recommended''.
* '''alt''': an alternative name, either in the local language or just an alternative. ''Optional''.
* '''address''': a street address for finding the transport infrastructure, for places where this is meaningful. ''Recommended''.
* '''directions''': additional brief directions besides the street address, such as cross streets, nearby subway or bus stations. ''Optional''
* '''phone''': a phone number for making reservations or getting more information. ''Recommended''.
* '''tollfree''': a toll-free phone number, if available. ''Optional''.
* '''email''': an email address for making reservations or getting more information. ''Optional''.
* '''fax''': a fax number. ''Optional''.
* '''url''': the URL for the official Web site for this transport infrastructure (see [[Wikivoyage:external links|external links]] for more guidelines). ''Recommended''.
* '''hours''': opening hours of the transport infrastructure, when applicable. ''Recommended''.
* '''lat''': Decimal latitude (GPS coordinates) for map output. ''Optional''.
* '''long''': Decimal longitude (GPS coordinates) for map output. ''Optional''
**Note: '''lat''' and '''long''' should have the same number of decimal places (using trailing zeroes if applicable). If one is present, so should the other be.
* '''wikipedia''': name of Wikipedia article for this transport infrastructure
* '''wikidata''': Wikidata QID for this transport infrastructure
* '''image''': a photo of the transport infrastructure
* '''lastedit''': Field indicating when the listing was last updated, or when the information in the listing was last verified. Format must be "2015-01-15" (yyyy-mm-dd). ''Optional''
elz4xdk2kpgfo87kuwabjyxutnsfq0p
Templat:Gradien
10
168
633
632
2024-12-03T13:51:50Z
Jon Harald Søby
20
1 revisi diimpor
632
wikitext
text/x-wiki
<includeonly>background-color: {{{1}}}; background-image: -moz-linear-gradient({{#switch:{{{3|}}}|vertical=top|horizontal=left|#default={{{3|left}}}}}, {{{1}}}{{#if:{{{4|}}}|, {{{4}}} {{{5|50%}}}}}, {{{2}}}); background-image: -ms-linear-gradient({{#switch:{{{3|}}}|vertical=top|horizontal=left|#default={{{3|left}}}}}, {{{1}}}{{#if:{{{4|}}}|, {{{4}}} {{{5|50%}}}}}, {{{2}}}); background-image: -o-linear-gradient({{#switch:{{{3|}}}|vertical=top|horizontal=left|#default={{{3|left}}}}}, {{{1}}}{{#if:{{{4|}}}|, {{{4}}} {{{5|50%}}}}}, {{{2}}}); background-image: -webkit-gradient(linear, {{#switch:{{{3}}}|right|bottom=right bottom|#default=left top}}, {{#switch:{{{3}}}|right|top|vertical=left bottom|#default=right top}}, from({{{1}}}), to({{{2}}}){{#if:{{{4|}}}|, color-stop({{{5|50%}}}, {{{4}}})}});</includeonly>
dblv68gwa9mctlfnek80o6bdil8yz7h
Templat:Gram
10
169
635
634
2024-12-03T13:51:50Z
Jon Harald Søby
20
1 revisi diimpor
634
wikitext
text/x-wiki
{{convert|{{{1|125}}}|g|oz|abbr=on}}<noinclude>
{{documentation}}
[[Kategori:Templat format dan fungsi]]
[[en:voy:Template:Gram]]
</noinclude>
tirqrua8a5rv918hl24t6s4ony1cm4k
Templat:Guidecity
10
170
2513
638
2024-12-03T14:16:00Z
Jon Harald Søby
20
1 revisi diimpor
636
wikitext
text/x-wiki
{{stbox|status=guide|type=city}}
3tu0atpcpsj0gujigmiw3ne7w42nox6
Templat:Guidecountry
10
171
641
640
2024-12-03T13:51:50Z
Jon Harald Søby
20
2 revisi diimpor
640
wikitext
text/x-wiki
{{Stbox|status=guide|type=country}}<noinclude>[[Kategori:Templat klasifikasi artikel]]
{{INTERWIKI|Q14395353}}
</noinclude>
218fhuqqlx9aa2r7mt0aw70810gla86
Templat:Guidedistrict
10
172
2515
644
2024-12-03T14:16:00Z
Jon Harald Søby
20
1 revisi diimpor
642
wikitext
text/x-wiki
{{stbox|status=guide|type=district}}
naakoixtzailzh3jnc7l31cxdhl7w6h
Templat:Guideitinerary
10
173
647
646
2024-12-03T13:51:51Z
Jon Harald Søby
20
2 revisi diimpor
646
wikitext
text/x-wiki
{{Stbox|status=guide|type=itinerary}}<noinclude>[[Kategori:Templat klasifikasi artikel]]
{{INTERWIKI|Q14395379}}
</noinclude>
34x5pif7q1qn9utbc319t5sqegk3rf7
Templat:Guideline
10
174
652
651
2024-12-03T13:51:51Z
Jon Harald Søby
20
4 revisi diimpor
649
wikitext
text/x-wiki
{{Ombox
|type = notice
|image = [[Berkas:Blue check.svg|30px]]
|text = '''{{#if:{{{section|}}}|Bagian|Halaman}} ini mendokumentasikan pedoman Wikiwisata.'''<br><div style="font-size: 90%;"> Ini adalah standar yang diterima secara umum yang harus diikuti oleh penyunting. Meskipun begitu, sebaiknya tetap menggunakan logika karena mungkin pengecualian sesekali harus diterapkan. Suntingan substantif apa pun di {{#if:{{{section|}}}|bagian|halaman}} ini harus mencerminkan [[Wikiwisata:Konsensus|konsensus]]. Jika ragu, diskusikan dulu di [[{{TALKPAGENAME}}|halaman pembicaraannya]].</div>
}}
<includeonly>[[Kategori:Pedoman Wikiwisata]]</includeonly><noinclude>
{{INTERWIKI|Q6056343}}
</noinclude>
kbdlofbi3vjxdjqeiyhgmgcwzmag0yw
Templat:Guidepark
10
175
655
654
2024-12-03T13:51:51Z
Jon Harald Søby
20
2 revisi diimpor
654
wikitext
text/x-wiki
{{stbox|status=guide|type=park}}<noinclude>[[Kategori:Templat klasifikasi artikel]]
{{INTERWIKI|Q14395382}}
</noinclude>
48mwnzt1jayhtvl7jsdd4yjd42t3j6k
Templat:Guidephrasebook
10
176
2517
661
2024-12-03T14:16:00Z
Jon Harald Søby
20
1 revisi diimpor
659
wikitext
text/x-wiki
{{Stbox|status=guide|type=phrasebook}}<noinclude>[[Kategori:Templat klasifikasi artikel]] [[en:voy:Template:Guidephrasebook]]</noinclude>
fdxd86wx5ipew9rm4jsc0k8j1ajcb6m
Templat:Guideregion
10
177
2519
665
2024-12-03T14:16:00Z
Jon Harald Søby
20
1 revisi diimpor
664
wikitext
text/x-wiki
{{Stbox|status=guide|type=region}}
<noinclude>
[[en:voy:Template:Guideregion]]
</noinclude>
5wq0fgn74jl3w9sa5dz5gfz42fo3rcb
Templat:Guidetopic
10
178
668
667
2024-12-03T13:51:51Z
Jon Harald Søby
20
2 revisi diimpor
667
wikitext
text/x-wiki
{{Stbox|status=guide|type=topic}}<noinclude>[[en:voy:Template:Guidetopic]]
</noinclude>
swywmltrkjwl6u1ng2v49kgmwpkeqdy
Templat:HU/Atasan
10
179
688
687
2024-12-03T13:51:52Z
Jon Harald Søby
20
19 revisi diimpor
687
wikitext
text/x-wiki
<noinclude>{| style="width: 100%; margin-top: 2px; background: transparent;"
| style="border: 1px solid #CCCCCC; background: #FFFFFF; vertical-align: top;" |
</noinclude><div style="background: white; padding: 0px; padding-left: 3em; padding-right: 3em;">
<div style="height: 130px; width: 100%; overflow: hidden; margin-left: -3em; margin-right: -3em; margin-bottom: -130px;">
<div style="margin-left: 20px; margin-top: -10px; opacity: 0.35;">[[Berkas:Wikivoyage-logo2.svg|500px|link=|alt=]]</div>
</div>
<div style="height: 130px; margin: 0px; padding: 0px;">
<!-- TULISAN UTAMA -->
<div style="float: left; width: 40%; min-width: 250px; position: relative; text-align: right; font-size: 300%;">
<div style="padding-top: 20px; padding-bottom: 5px;">[[Berkas:Wikivoyage wordmark-id-v2.png|250px|link=Halaman_Utama|alt=Wikiwisata bahasa Indonesia]]</div>
<div style="font-style: italic; font-family: Arial; padding-right: 10px;">Indonesia</div>
</div>
<!-- SAMPING -->
<div style="float: right; width: 50%; padding-top: 30px; position: relative; font-size: 100%;">
Selamat datang di Wikivoyage, situs perjalanan bebas yang dapat [[Wikivoyage:Libatkan_diri|disunting]] siapa saja.<br />
Sekarang hari {{CURRENTDAYNAME}}, tanggal {{LOCALDAY}}-{{#expr: {{LOCALMONTH}} }}-{{LOCALYEAR}}, pukul {{LOCALTIME}} (UTC)<br />
Saat ini tersedia '''[[Istimewa:Prefixindex/Wy/id|{{PAGESINCATEGORY:Wy/id}} artikel]]''' dalam bahasa Indonesia
</div></div></div><noinclude></noinclude>
qty1nsi03vjcfkizt22wpn6smdyxjjq
Templat:HU/Baca
10
180
691
690
2024-12-03T13:51:52Z
Jon Harald Søby
20
2 revisi diimpor
690
wikitext
text/x-wiki
<small>([[{{{1}}}|Selengkapnya...]])</small><noinclude></noinclude>
rva2ju38psb7ti1b8msja2iyktyvx5y
Templat:HU/Blok
10
181
693
692
2024-12-03T13:51:52Z
Jon Harald Søby
20
1 revisi diimpor
692
wikitext
text/x-wiki
<div class="titleblock" style="font-size:15px; width:100%; height: 30px; background-color: {{#if: {{{color|}}}|{{{color|}}}}}; text-align: center; margin: 0;">
<table style="height: 100%; width: 100%;"><tr style="height: 100%; width: 100%;"><td style="height: 100%; width: 100%; vertical-align: middle;">'''{{#if: {{{title|}}}|{{{title|}}}}}'''</td></tr></table>
</div>
7hc1f9do8mxyanhj0bgmm774cs1ppgv
Templat:HU/GP
10
182
697
696
2024-12-03T13:51:52Z
Jon Harald Søby
20
3 revisi diimpor
696
wikitext
text/x-wiki
[[Berkas:Jakarta Skyline Part 2.jpg|350px|center]]
<center>
''Panorama kota [[Jakarta]] di malam hari.''
</center>
bnx3u5som6fpr5z4dvzg0tu4jvg40xo
Templat:HU/Gambar
10
183
701
700
2024-12-03T13:51:52Z
Jon Harald Søby
20
3 revisi diimpor
700
wikitext
text/x-wiki
{{HU/Gambar/2}}
<noinclude></noinclude>
<!-- {{Rand|1|8}} -->
q9rlcy20l2fa72b8fmnjb3twa8ul9gf
Templat:HU/Gambar/2
10
184
704
703
2024-12-03T13:51:52Z
Jon Harald Søby
20
2 revisi diimpor
703
wikitext
text/x-wiki
{| style="width:100%; margin-top:2em; vertical-align:top; border-top:5px #ccc solid; border-bottom:5px #ccc solid; text-align:center"
|- valign="top"
|style="padding-top:1em;"| [[Berkas:Eile_Donan_Castle_September_2013.JPG|x130px]]
|style="padding-top:1em;"| [[Berkas:Coreangarden.jpg|x130px]]
|style="padding-top:1em;"| [[Berkas:PortJackson 2004 SeanMcClean.jpg|x130px]]
|- style="font-size:80%;"
|[[Skotlandia]]
|[[Jeju]]
|[[Sydney]]
|}<noinclude></noinclude>
c0uwgza3unt4ziw83fwdtyhwwu3cip1
Templat:HU/Gambar/3
10
185
706
705
2024-12-03T13:51:53Z
Jon Harald Søby
20
1 revisi diimpor
705
wikitext
text/x-wiki
{| style="width:100%; margin-top:2em; vertical-align:top; border-top:5px #ccc solid; border-bottom:5px #ccc solid; text-align:center"
|- valign="top"
|style="padding-top:1em;"| [[Berkas:Florence.jpg|x130px]]
|style="padding-top:1em;"| [[Berkas:Statue of Liberty 7.jpg|x130px]]
|style="padding-top:1em;"| [[Berkas:PortJackson 2004 SeanMcClean.jpg|x130px]]
|- style="font-size:80%;"
|[[Firenze]]
|[[New York]]
|[[Sydney]]
|}<noinclude></noinclude>
1p4la2d0mtpwt53yhn7to3lddste38k
Templat:HU/Gambar/5
10
186
708
707
2024-12-03T13:51:53Z
Jon Harald Søby
20
1 revisi diimpor
707
wikitext
text/x-wiki
{| style="width:100%; margin-top:2em; vertical-align:top; border-top:5px #ccc solid; border-bottom:5px #ccc solid; text-align:center"
|- valign="top"
|style="padding-top:1em;"| [[Berkas:Florence.jpg|x130px]]
|style="padding-top:1em;"| [[Berkas:Statue of Liberty 7.jpg|x130px]]
|style="padding-top:1em;"| [[Berkas:PortJackson 2004 SeanMcClean.jpg|x130px]]
|- style="font-size:80%;"
|[[Firenze]]
|[[New York]]
|[[Sydney]]
|}<noinclude></noinclude>
1p4la2d0mtpwt53yhn7to3lddste38k
Templat:HU/Info
10
187
711
710
2024-12-03T13:51:53Z
Jon Harald Søby
20
2 revisi diimpor
710
wikitext
text/x-wiki
<noinclude>
[[Kategori:Templat]]
</noinclude>
8bpi9ke4x145aldyahcdmvdfykq08rc
Templat:HU/Judul
10
188
713
712
2024-12-03T13:51:53Z
Jon Harald Søby
20
1 revisi diimpor
712
wikitext
text/x-wiki
<div class="plainlinks" style="border: 1px solid {{{3|orange}}}; -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.35); -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.35); box-shadow: 0 1px 3px rgba(0, 0, 0, 0.35); -moz-border-radius: 7px; -webkit-border-radius: 7px; border-radius: 7px; background: #fff; background: -moz-linear-gradient(top, #fff 75%, #F5F5F5 100%); {{Gradien|{{{1|#ffff80}}}|{{{2|gold}}}|vertical}} height:auto; {{{padding|padding-left: 7px; padding-top:5px; padding-bottom:5px;}}} margin-left:5px; margin-right:5px; {{{style|}}}"><div style="{{{style2|font-size: 120%; font-weight:bold;}}}">
<noinclude>
[[Kategori:Templat]]
</noinclude>
n7q5vyy5xqmuypeumalszg336pwxlck
Templat:HU/Konten
10
189
715
714
2024-12-03T13:51:53Z
Jon Harald Søby
20
1 revisi diimpor
714
wikitext
text/x-wiki
<div style="border:0; -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.35); -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.35); box-shadow: 0 1px 3px rgba(0, 0, 0, 0.35); -moz-border-radius: 7px; -webkit-border-radius: 7px; border-radius: 7px; background: #fff; background: -moz-linear-gradient(top, #fff 75%, #F5F5F5 100%); background: -webkit-gradient(linear, left top, left bottom, color-stop(75%,#fff), color-stop(100%,#F5F5F5)); background: -webkit-linear-gradient(top, #fff 75%,#F5F5F5 100%); background: -o-linear-gradient(top, #fff 75%,#F5F5F5 100%); background: -ms-linear-gradient(top, #fff 75%,#F5F5F5 100%); background: linear-gradient(top, #fff 75%,#fff 100%); height:auto; padding-left:10px; padding-right:10px; padding-bottom:5px; padding-top:5px; margin:5px 5px 5px 5px; {{{style|}}}">
Penggunaan HU Box Content
<div style="clear:right"></div><div class="plainlinks noprint" style="font-size:90%; float:right;">{{{line|<noinclude>baris terletak di sini</noinclude>}}}</div>
<div style="clear: both"></div>
</div>
<noinclude>
[[Kategori:Templat]]
</noinclude>
ndyj1g9kmcuody7nr4hb4uvl8gvhhy7
Templat:HU/Pesan
10
190
717
716
2024-12-03T13:51:53Z
Jon Harald Søby
20
1 revisi diimpor
716
wikitext
text/x-wiki
[[Berkas:Xmas_tree.svg|left|75px]]
[[Berkas:"_12_-_ITALY_-_fuochi_d'artificio_a_Padova_(_fireworks_Padua_)_Prà_della_Valle_2.jpg|right|100px]]
<center>'''''Kami dari Wikivoyage Indonesia mengucapkan:'''''</center>
<center><font color="blue"><big><big>'''''Selamat Natal dan Tahun Baru 2013'''''</big></big></font></center>
<center>'''''Semoga Anda tetap semangat dan terus berkontribusi di Wikivoyage'''''</center>
<noinclude>
[[Kategori:Templat]]
</noinclude>
e87c60d2gt3pju2cdghqwdbi8gwtnpu
Templat:HU/TA
10
191
720
719
2024-12-03T13:51:53Z
Jon Harald Søby
20
2 revisi diimpor
719
wikitext
text/x-wiki
* Di [[Taman Nasional Kakum]], Anda '''dapat melihat hutan hujan dari atas''', dari jembatan di ketinggian 40 meter.
* Di N Seoul Tower, [[Seoul]] Anda dapat mengunjungi '''Museum Teddy Bear''' yang melukiskan Budaya Korea dengan menggunakan karakter beruang.
* Karena [[Bali|Pulau Bali]] disebut '''pulau surga''', maka banyak wisatawan lansia yang ingin menetap di Bali sampai akhir hayatnya.
<noinclude>[[Kategori:Templat]]</noinclude>
rep6ghh2ovtasvxtrs0hj86omqxoq0n
Templat:HU/TP
10
192
725
724
2024-12-03T13:51:53Z
Jon Harald Søby
20
4 revisi diimpor
723
wikitext
text/x-wiki
[[Berkas:Den Haag Binnenhof.jpg|frameless|200px|left]]
[[Den Haag|'''Den Haag''']] (bahasa Belanda: ''Den Haag'' atau '' 's-Gravenhage'') adalah kota yang terletak di provinsi [[Belanda Selatan]] di [[Belanda]]. Saat ini Den Haag berperan sebagai pusat pemerintahan dan lokasi parlemen Belanda serta tempat tinggal Ratu Beatrix, tapi tidak sebagai ibukota negara. Ibukota negara resmi berada di [[Amsterdam]]. Kota ini berpenduduk sekitar 500.000 orang, dengan daerah metropolitannya berpenduduk sekitar satu juta orang.
<!-- {{HU/Baca|Den Haag}} -->
<noinclude>[[Kategori:Templat]]</noinclude>
6xw42whfjrmb6gnswru4wy0s8iqm7yu
Templat:HU/banner
10
193
727
726
2024-12-03T13:51:54Z
Jon Harald Søby
20
1 revisi diimpor
726
wikitext
text/x-wiki
<div class="jcarousel-wrapper" style="margin: 1em auto 1em auto;">
<div class="jcarousel">
<div class="jcarousel-list">
<div class="jcarousel-item">
{{/1}}
</div>
<div class="jcarousel-item">
{{/2}}
</div>
<div class="jcarousel-item">
{{/3}}
</div>
</div>
</div>
<span class="jcarousel-control-prev">[[#|‹]]</span>
<span class="jcarousel-control-next">[[#|›]]</span>
<p class="jcarousel-pagination"></p>
</div></div></div></div></span></p>
<noinclude>
ivpwtzyen79kbn51vgorh31wntve9mf
Templat:HU/banner/core
10
194
729
728
2024-12-03T13:51:54Z
Jon Harald Søby
20
1 revisi diimpor
728
wikitext
text/x-wiki
<div class="banner-image nomobile">
<div class="banner-box banner-box-{{{direksi|left}}}" {{#if:{{{rubak-judul|}}}|style="width:{{{rubak-judul}}}"}}>
<div class="name">[[{{{judul}}}|{{{judul-alt|{{{judul}}}}}}]]</div>
<div class="type">[[{{{pranala-bagian}}}|{{{bagian}}}]]</div><br>
<div class="quote">[[{{{judul}}}|{{{deskripsi}}}]]</div>
</div>{{#if:{{{gambar|}}}|{{CSS image crop|Image = {{{gambar|}}}|bSize = {{{ukuran|1313}}}|cWidth = {{{rubak|1313}}}|cHeight = {{{jangkung|400}}}|oTop = {{{luhur|0}}}|oLeft = {{{gigir|0}}}|Link={{{judul}}}|Alt={{{judul}}}}}|<div style="background-color:{{{fon|#CCFFCC}}};width:1313px;height:350px">}}{{#if:{{{logo|}}}|<div class="logo">[[Berkas:{{{logo}}}|link={{{judul}}}|{{{judul}}}]]</div>|</div>}}</div>
<div id="mf-section-{{{mobil-bag}}}" class="mf-mobile-only">
=={{{bagian}}}==
'''[[{{{judul}}}|{{{judul-alt|{{{judul}}}}}}]]'''
{{#if:{{{mobil|}}}|[[Berkas:{{{gambar|}}}|frameless|thumb|center|]]| }}
{{{deskripsi}}}
</div>
hra8of2qfhtjnooa16g26d2c50acvko
Templat:HUF
10
195
731
730
2024-12-03T13:51:54Z
Jon Harald Søby
20
1 revisi diimpor
730
wikitext
text/x-wiki
{{currency|HUF|{{{1|}}}}}<noinclude>
{{Individual currency template documentation}}
[[Kategori:Templat mata uang individual]]
[[en:voy:Template:HUF]]
</noinclude>
pc5cyynyhx63xurwxsl88l3mcu78ta0
Templat:Ha
10
196
733
732
2024-12-03T13:51:54Z
Jon Harald Søby
20
1 revisi diimpor
732
wikitext
text/x-wiki
#redirect[[Templat:Hectare]]
7a4kbtuskiwdut6pu6yblpd9w2wq65j
Templat:Halaman Judul
10
197
735
734
2024-12-03T13:51:54Z
Jon Harald Søby
20
1 revisi diimpor
734
wikitext
text/x-wiki
#REDIRECT [[Templat:Halaman Judul-Indeks]]
nabwoz56wtzjxwf26j4kozu28zs167s
Templat:Halaman Judul-Indeks
10
198
737
736
2024-12-03T13:51:54Z
Jon Harald Søby
20
1 revisi diimpor
736
wikitext
text/x-wiki
{{#ifeq:{{NAMESPACE}}|{{ns:0}}|[[Kategori:Judul artikel]]|<!-- Jangan mengkategorikan jika tidak berada di ruang utama (artikel). -->}}
nsu5pitfihq55k7jsr17teftcixl4iu
Templat:Hapus
10
199
740
739
2024-12-03T13:51:54Z
Jon Harald Søby
20
2 revisi diimpor
739
wikitext
text/x-wiki
{{Ambox
| type = speedy
| text = '''{{#if:{{NAMESPACE}}|{{NAMESPACE}}|Halaman}} ini [[Wikiwisata:Kebijakan dalam menghapus halaman|diusulkan untuk dihapus]]!'''
{{#if:1|1|* Dengan alasan: <big>{{{1}}}</big>}}
{{#if:{{NAMESPACE}}|{{NAMESPACE}}|Halaman}} mungkin memenuhi kriteria penghapusan cepat. Jika Anda berpikir bahwa halaman ini tidak layak untuk dihapus, silahkan ajukan permohonan di [[Pembicaraan:{{FULLPAGENAME}}|halaman diskusinya]].
<small>
* Pengurus: Lihat [[Istimewa:WhatLinksHere/{{PAGENAME}}|pranala balik]] dan [https://incubator.wikimedia.org/w/index.php?title={{FULLPAGENAME}}&action=history sejarah penyuntinganya].
</small>[[Kategori:Semua halaman yang layak dihapus]]
}}
381l0f4ypvk74gbfjv8931726gdn2rc
Templat:Hatnote
10
200
747
746
2024-12-03T13:51:54Z
Jon Harald Søby
20
6 revisi diimpor
746
wikitext
text/x-wiki
<templatestyles src="Hatnote/styles.css" /><div role="note" class="hatnote {{#ifeq:{{{searchable|}}}|yes||navigation-not-searchable}} {{{class|}}}">{{{1}}}</div><noinclude>
[[Kategori:Templat hatnote]]
{{INTERWIKI|Q5625128}}
</noinclude>
huw0sgii273jqf25zeocc9cwmof4bic
Templat:Hatnote/styles.css
10
201
749
748
2024-12-03T13:51:54Z
Jon Harald Søby
20
1 revisi diimpor
748
sanitized-css
text/css
/* Hatnotes and disambiguation notices */
.hatnote {
font-style: italic;
}
.hatnote i,
.hatnote.noitalic {
font-style: normal;
}
div.hatnote {
/* @noflip */
padding-left: 1.6em;
margin-bottom: 0.5em;
}
div.hatnote + div.hatnote {
margin-top: -0.5em;
}
8mra9zedvcvmwec2b4xclgs7e9hdvjx
Templat:Header/main block
10
202
752
751
2024-12-03T13:51:55Z
Jon Harald Søby
20
2 revisi diimpor
751
wikitext
text/x-wiki
<div <!--
-->{{#if:{{{id|}}}|id="{{{id}}}" <!--
-->class="header-mainblock {{{class|}}}"<!--
-->style="margin:4px auto 4px auto; padding: 0 3px; display:flex; align-items:center; {{{style}}}"<!--
-->><!--
-------------------------------------------------------------------------------------------------------
-->{{#if:{{{previous|}}}{{{next|}}}|<!--
--><div class="gen_header_backlink searchaux" style="flex-grow:1; display:flex; align-items:center;"><!--
-->{{#if:{{{previous|}}}|<!--
--><div>←</div><!--
--><div id="headerprevious">{{{previous}}}</div><!--
-->| }}<!--
close prev div-->
</div><!--
-->}}<!--
-------------------------------------------------------------------------------------------------------
Main central cell
--><div class="gen_header_central_cell" style="flex-grow:4; text-align:center;"><!--
This is the text at the top, like "versions of" that's not really the title
-->{{#if:{{{pretitle|}}}|<span class="gen_header_pretitle">{{{pretitle}}}</span><br/>}}<!--
This is the actual title
--><span class="gen_header_title">{{{title|}}}</span><!--
End main cell
--></div><!--
-------------------------------------------------------------------------------------------------------
Next page link
-->{{#if:{{{previous|}}}{{{next|}}}|<!--
--><div class="gen_header_forelink searchaux" style="flex-grow:1; justify-content: flex-end; display:flex; align-items:center; text-align:right;"><!--
-->{{#if:{{{next|}}}|<!--
--><div id="headernext">{{{next}}}</div><!--
--><div>→</div><!--
-->| }}<!--
close next div -->
</div><!--
-->}}<!--
-------------------------------------------------------------------------------------------------------
end of outer div
--></div><!--
--><noinclude>
[[Kategori:Templat]]
{{INTERWIKI|Q105626953}}
</noinclude>
3cwgx23v4b285u0mjd6kza9kg337vcp
Templat:Header/notes block
10
203
755
754
2024-12-03T13:51:55Z
Jon Harald Søby
20
2 revisi diimpor
754
wikitext
text/x-wiki
<includeonly><div <!--
-->{{#if:{{{id|}}}|id="{{{id}}}"}} <!--
-->class="header_notes searchaux {{{class|}}}" <!--
-->style="display: inline-block; border-collapse: collapse; border-spacing: 0; empty-cells: hide; font-size: 0.9em; line-height:1.4; margin: 0 auto 4px auto; width: 100%; {{{style|}}}" <!--
-->><!--
-->{{#if:{{{sister|}}}|{{{sister}}}}}<!--
-->{{#if:{{{shortcut|}}}|{{shortcut|{{{shortcut}}}}}}}<!--
-->{{#if:{{{content|}}}|<!--
--><div class="header_notes_content">
{{{content|}}}
</div><!--
-->}}<!--
--></div><!--
--></includeonly><noinclude>
[[Kategori:Templat]]
{{INTERWIKI|Q109955424}}
</noinclude>
bsek9qs1tnl4xufzvurgjk2ausbw8fd
Templat:Hectare
10
204
758
757
2024-12-03T13:51:55Z
Jon Harald Søby
20
2 revisi diimpor
756
wikitext
text/x-wiki
{{convert|{{{1|5}}}|hectare|acre|abbr=on}}<noinclude>
[[en:voy:Template:Hectare]]
</noinclude>
fr7bgw4z9lt26tx3kt3u4h8xrjo1m1v
Templat:Helikopter
10
205
760
759
2024-12-03T13:51:55Z
Jon Harald Søby
20
1 revisi diimpor
759
wikitext
text/x-wiki
Dengan helikopter [[Berkas:Aiga heliport.svg|25px|link=]]<noinclude>[[Kategori:Templat AIGA]][[zh:voy:Template:直升機]]</noinclude>
be613fh2aochn3mgznm9o8fdbrrcmsd
Templat:Hidden
10
206
762
761
2024-12-03T13:51:55Z
Jon Harald Søby
20
1 revisi diimpor
761
wikitext
text/x-wiki
{| class="mw-collapsible {{#ifeq: {{{state|collapsed}}} | collapsed | mw-collapsed }}" style="margin: 2px 0; background: #FFF; color: #000; width: {{{width|100%}}}; border: 1px solid #AAA; padding: 0; border-spacing: 0; border-collapse: collapse;{{{style|{{{css|}}}}}}"
|-
! style="padding: 2px;" | <div style="background:{{{bg1|#CCF}}};padding:2px 0.5em;font-weight:{{{fw1|bold}}};text-align:{{{ta1|center}}};{{{headercss|}}}">{{{header|{{{1}}}}}}</div>
|-
| style="padding: 2px; background:{{{bg2|transparent}}};font-weight:{{{fw2|normal}}};text-align:{{{ta2|left}}};{{{contentcss|}}}"|
{{{content|{{{2}}}}}}
|}
1qoi9gnw6mc5ii1i3zb72pz345hxfwa
Templat:Historical
10
207
765
764
2024-12-03T13:51:55Z
Jon Harald Søby
20
2 revisi diimpor
764
wikitext
text/x-wiki
<includeonly>{{Ombox
|image = [[Berkas:Historical.svg|30px|left|link=]]
|text = '''Halaman ini tidak lagi aktif dan tetap dipertahankan keberadaannya untuk dijadikan sebagai rujukan historis.''' Halaman ini mungkin dianggap tidak lagi relevan atau tujuannya sudah tidak jelas lagi. Jangan berasumsi bahwa konten di halaman ini masih benar atau mutakhir. {{#if:{{{1|}}}|<br>Halaman ini '''telah digantikan''' dengan: → '''[[{{{1}}}]]'''|}}
}}{{#ifeq:{{NAMESPACE}}|{{ns:0}}|[[Kategori:Halaman artikel tidak aktif]]|{{#ifeq:{{FULLPAGENAME}}|Wikiwisata:Indeks templat||[[Kategori:Halaman proyek tidak aktif]]}}}}</includeonly><noinclude>
{{documentation}}
{{INTERWIKI|Q6828527}}
</noinclude>
d8429vi1mgywe2qk27ajv6vs1vi299m
Templat:Hormati
10
208
767
766
2024-12-03T13:51:55Z
Jon Harald Søby
20
1 revisi diimpor
766
wikitext
text/x-wiki
Hormati [[Berkas:Emojione BW 1F64F.svg|20px|link=]]<noinclude>[[Kategori:Templat AIGA]]</noinclude>
l5lvqcbn6meiwubfj5nf8nxw4f9f1rj
Templat:Huruf kapital
10
209
770
769
2024-12-03T13:51:55Z
Jon Harald Søby
20
2 revisi diimpor
769
wikitext
text/x-wiki
{{#switch: {{{1|}}}
|A=[[Berkas:Font A.svg|42px|left|link={{{link|}}}|alt=A]] {{{2|}}}
|B=[[Berkas:Font B.svg|38px|left|link={{{link|}}}|alt=B]] {{{2|}}}
|C=[[Berkas:Font C.svg|38px|left|link={{{link|}}}|alt=C]] {{{2|}}}
|D=[[Berkas:Font D.svg|42px|left|link={{{link|}}}|alt=D]] {{{2|}}}
|E=[[Berkas:Font E.svg|36px|left|link={{{link|}}}|alt=E]] {{{2|}}}
|F=[[Berkas:Font F.svg|36px|left|link={{{link|}}}|alt=F]] {{{2|}}}
|G=[[Berkas:Font G.svg|40px|left|link={{{link|}}}|alt=G]] {{{2|}}}
|H=[[Berkas:Font H.svg|46px|left|link={{{link|}}}|alt=H]] {{{2|}}}
|I=[[Berkas:Font I.svg|20px|left|link={{{link|}}}|alt=I]] {{{2|}}}
|J=[[Berkas:Font J.svg|18px|left|link={{{link|}}}|alt=J]] {{{2|}}}
|K=[[Berkas:Font K.svg|42px|left|link={{{link|}}}|alt=K]] {{{2|}}}
|L=[[Berkas:Font L.svg|32px|left|link={{{link|}}}|alt=L]] {{{2|}}}
|M=[[Berkas:Font M.svg|48px|left|link={{{link|}}}|alt=M]] {{{2|}}}
|N=[[Berkas:Font N.svg|42px|left|link={{{link|}}}|alt=N]] {{{2|}}}
|O=[[Berkas:Font O.svg|42px|left|link={{{link|}}}|alt=O]] {{{2|}}}
|P=[[Berkas:Font P.svg|38px|left|link={{{link|}}}|alt=P]] {{{2|}}}
|Q=[[Berkas:Font Q.svg|32px|left|link={{{link|}}}|alt=Q]] {{{2|}}}
|R=[[Berkas:Font R.svg|42px|left|link={{{link|}}}|alt=R]] {{{2|}}}
|S=[[Berkas:Font S.svg|30px|left|link={{{link|}}}|alt=S]] {{{2|}}}
|T=[[Berkas:Font T.svg|38px|left|link={{{link|}}}|alt=T]] {{{2|}}}
|U=[[Berkas:Font U.svg|42px|left|link={{{link|}}}|alt=U]] {{{2|}}}
|V=[[Berkas:Font V.svg|42px|left|link={{{link|}}}|alt=V]] {{{2|}}}
|W=[[Berkas:Font W.svg|52px|left|link={{{link|}}}|alt=W]] {{{2|}}}
|X=[[Berkas:Font X.svg|38px|left|link={{{link|}}}|alt=X]] {{{2|}}}
|Y=[[Berkas:Font Y.svg|38px|left|link={{{link|}}}|alt=Y]] {{{2|}}}
|Z=[[Berkas:Font Z.svg|36px|left|link={{{link|}}}|alt=Z]] {{{2|}}}
|#default = [[Berkas:Wikipos.svg|100px|link=Template:Huruf kapital|alt=Wikipos]] {{{2|}}}
}}<noinclude>{{dok}}</noinclude>
id612fscr7vqoo4k8c8gld2cpppqjej
Templat:IATA
10
210
774
773
2024-12-03T13:51:55Z
Jon Harald Søby
20
3 revisi diimpor
773
wikitext
text/x-wiki
<includeonly>[[:Wikipedia:IATA|IATA]]: '''{{{1}}}'''</includeonly>
8135vcsxzrhdb7vyg31228n47xk20a3
Templat:ICAO
10
211
777
776
2024-12-03T13:51:56Z
Jon Harald Søby
20
2 revisi diimpor
776
wikitext
text/x-wiki
<includeonly>[[:Wikipedia:ICAO|ICAO]]: '''{{{1}}}'''</includeonly><noinclude>
{{Documentation|content=
[[nl:Sjabloon:ICAO]]
}}
</noinclude>
tk2umjodwoc1k14any7r5ph11lbzqy9
Templat:INR
10
212
779
778
2024-12-03T13:51:56Z
Jon Harald Søby
20
1 revisi diimpor
778
wikitext
text/x-wiki
{{currency|INR|{{{1|}}}}}<noinclude>
{{Individual currency template documentation}}
[[Kategori:Templat mata uang individual]]
[[en:voy:Template:INR]]
</noinclude>
hk0zyedcz402oem7fkzfwt51i5heqi1
Templat:IPA
10
213
782
781
2024-12-03T13:51:56Z
Jon Harald Søby
20
2 revisi diimpor
781
wikitext
text/x-wiki
{{#if:{{{noparen|}}}||(}}<small>[[:WikiPedia:International Phonetic Alphabet|IPA]]:</small> <span title="Ini adalah transkripsi pengucapan IPA. Baca “International Phonetic Alphabet”." class="IPA" style="white-space:nowrap; font-family:{{IPA/fonts}}; font-family /**/:inherit; text-decoration:none!important">{{{1}}}</span>{{#if:{{{noparen|}}}||)}}<noinclude>
{{INTERWIKI|Q5751017}}
</noinclude>
k0pzdez1q4sac4bnpfyd5ist3upb08c
Templat:ISBN
10
214
786
785
2024-12-03T13:51:56Z
Jon Harald Søby
20
3 revisi diimpor
785
wikitext
text/x-wiki
<includeonly>[[Istimewa:BookSources/{{{1}}}|ISBN {{{1}}}]]{{#invoke:check isxn|check_isbn|{{{1}}}|error= <span class="error" style="font-size:88%">Invalid ISBN</span>{{main other|[[Kategori:Halaman dengan galat ISBN]]}}}}</includeonly><noinclude>
{{dok}}
{{INTERWIKI|Q5617482}}
</noinclude>
9vytc898attmq1nm4v3ssl1xxfy4no6
Templat:ISO3166
10
215
788
787
2024-12-03T13:51:56Z
Jon Harald Søby
20
1 revisi diimpor
787
wikitext
text/x-wiki
<!-- <rdf>
# This page describes a place.
<> dcterms:spatial place:{{PAGENAMEE}} .
# That place is identified by the ISO-3166 code given in the parameter.
place:{{PAGENAMEE}} dc:identifier "{{{1}}}"^^dcterms:ISO3166 .
</rdf> -->
8zru24ncj1jznpyyal5rn1crzo4z6hb
Templat:Iklim
10
216
790
789
2024-12-03T13:51:56Z
Jon Harald Søby
20
1 revisi diimpor
789
wikitext
text/x-wiki
Iklim [[Berkas:Climate Change (8673) - The Noun Project.svg|20px|link=]]<noinclude>[[Kategori:Templat AIGA]]</noinclude>
d9oxdqj48uns34kdvo3xzetuiom7ii0
Templat:Imbox
10
217
797
796
2024-12-03T13:51:56Z
Jon Harald Søby
20
6 revisi diimpor
796
wikitext
text/x-wiki
<templatestyles src="Template:Imbox/style.css" /><table class="plainlinks imbox
{{#switch:{{{type|}}}
| speedy = imbox-speedy
| delete = imbox-delete
| content = imbox-content
| style = imbox-style
| move = imbox-move
| protection = imbox-protection
| license = imbox-license
| featured = imbox-featured
| notice <!-- notice = default -->
| #default = imbox-notice
}} {{{class|}}}" style="{{{style|}}}">
<tr>
{{#ifeq:{{{image|}}}|none
| <!-- No image. Cell with some width or padding necessary for text cell to have 100% width. --><td class="imbox-empty-cell"></td>
| <td class="imbox-image">
{{#if:{{{image|}}}
| {{{image}}}
| {{#switch:{{{type|}}}
| speedy = [[Berkas:Imbox speedy deletion.png|40x40px|alt=|link=]]
| delete = [[Berkas:Imbox deletion.png|40x40px|alt=|link=]]
| content = [[Berkas:Imbox content.png|40x40px|alt=|link=]]
| style = [[Berkas:Edit-clear.svg|40x40px|link=|alt=]]
| move = [[Berkas:Imbox move.png|40x40px|alt=|link=]]
| protection = [[Berkas:Imbox protection.png|40x40px|alt=|link=]]
| license = [[Berkas:Imbox license.png|40x40px|alt=|link=]]
| featured = [[Berkas:Imbox featured.png|40x40px]]
| notice <!-- notice = default -->
| #default = [[Berkas:Ambox notice.png|40x40px|alt=|link=]] <!-- was Imbox notice.png, this is just a placeholder -->
}}
}}</td>
}}
<td class="imbox-text" style="{{{textstyle|}}}"> {{{text}}} </td>
{{#if:{{{imageright|}}}
| <td class="imbox-imageright"> {{{imageright}}} </td>
}}
</tr>
{{#if:{{{below|}}}
| <tr><td colspan={{#if:{{{imageright|}}}|3|2}} class="imbox-text" style="{{{textstyle|}}}"> {{{below}}} </td></tr>
}}
</table><!-- Detect and report usage with faulty "type" parameter:
-->{{#switch:{{{type|}}}
| <!-- No type fed, is also valid input -->
| speedy
| delete
| content
| style
| move
| protection
| license
| featured
| notice = <!-- Do nothing, valid "type" -->
| #default = <div style="text-align: center;">This message box is using an invalid "type={{{type|}}}" parameter and needs fixing.</div>[[Kategori:Wikivoyage message box parameter needs fixing|{{main other|Main:}}{{FULLPAGENAME}}]]<!-- Sort on namespace -->
}}<!--
--><noinclude>
{{Documentation}}
{{INTERWIKI|Q5825560}}
</noinclude>
mmgrblxkyxuwu4v6ngvkob0npv48kjb
Templat:Imbox/doc
10
218
799
798
2024-12-03T13:51:56Z
Jon Harald Søby
20
1 revisi diimpor
798
wikitext
text/x-wiki
{{Documentation subpage}}
{{Uses TemplateStyles|Template:Imbox/style.css}}
== Penggunaan ==
<code>{{Tl|Imbox}}</code>
* Contoh
<pre>
{{Imbox
|text=lorem ipsum
}}
</pre>
{{Imbox|text=lorem ipsum}}
==Lihat juga==
* [[Templat:Ambox]] — kotak pesan artikel
* [[Templat:Mbox]] — kotak pesan multi ruang nama
* [[Templat:Ombox]] — kotak pesan halaman lain (mis. halaman kebijakan atau bantuan)
* [[Templat:Tmbox]] — kotak pesan halaman pembicaraan
<includeonly>
[[Kategori:Templat gambar| Imbox]]
</includeonly>
6miuupbjkgwfy9lvzia4l18f2upm2qx
Templat:Imbox/style.css
10
219
801
800
2024-12-03T13:51:57Z
Jon Harald Søby
20
1 revisi diimpor
800
sanitized-css
text/css
/* This section supports templates for the WMC migration.
* Sourced from http://en.wikipedia.org/wiki/MediaWiki:Common.css on 28 Oct 2012.
*/
th.imbox-text,td.imbox-text{border:none;width:100%;padding:.25em .9em;}
td.imbox-image{border:none;text-align:center;padding:2px 0 2px .9em;}
td.imbox-imageright{border:none;text-align:center;padding:2px .9em 2px 0;}
td.imbox-empty-cell{border:none;width:1px;padding:0;}
table.imbox{border-collapse:collapse;border:3px solid #1e90ff;background:#fbfbfb;margin:4px 10%;}
.imbox .imbox-text .imbox{display:block;margin:0 -.5em;}
.imbox-inside .imbox{margin:4px;}
table.imbox-notice{border:3px solid #1e90ff;}
table.imbox-speedy{border:3px solid #b22222;background:#fee;}
table.imbox-delete{border:3px solid #b22222;}
table.imbox-content{border:3px solid #f28500;}
table.imbox-style{border:3px solid #f4c430;}
table.imbox-move{border:3px solid #9932cc;}
table.imbox-protection{border:3px solid #bba;}
table.imbox-license{border:3px solid #88a;background:#f7f8ff;}
table.imbox-featured{border:3px solid #cba135;}
1mj8hqqabrmfybygjxamybfnlri1fvn
Templat:Inch
10
220
803
802
2024-12-03T13:51:57Z
Jon Harald Søby
20
1 revisi diimpor
802
wikitext
text/x-wiki
{{convert|{{{1|1}}}|in|mm|abbr=on}}<noinclude>
{{documentation}}
[[Kategori:Templat format dan fungsi]]
[[en:voy:Template:Inch]]
</noinclude>
k7gqt8owna96thwgde9r1whqtqkjmyi
Templat:Individual currency template documentation
10
221
807
806
2024-12-03T13:51:57Z
Jon Harald Søby
20
3 revisi diimpor
805
wikitext
text/x-wiki
<includeonly>{{documentation |1=Individual currency template documentation |content=
Template ini digunakan untuk menampilkan nilai moneter dan melihat konversi ke mata uang yang digunakan oleh negara-negara berbahasa Inggris cukup dengan menggeser tetikus.
Jumlah yang diberikan sebagai parameter dapat berupa angka tunggal atau rentang dua nilai yang dipisahkan oleh "-".
Contoh:
* "<code><nowiki>{{</nowiki>{{ROOTPAGENAME}}<nowiki>|2}}</nowiki></code>" akan menampilkan: {{currency|{{ROOTPAGENAME}}|2}}.
* "<code><nowiki>{{</nowiki>{{ROOTPAGENAME}}<nowiki>|30-40}}</nowiki></code>" akan menampilkan: {{currency|{{ROOTPAGENAME}}|30-40}}.
==TemplateData==
<templatedata>
{
"params": {
"1": {
"label": "jumlah uang",
"description": "jumlah nilai uang; juga dimungkinkan untuk memberikan rentang dua nilai yang dipisahkan oleh \"-\"",
"example": "30-40",
"type": "string",
"default": "1",
"suggested": true
}
},
"description": "Templat ini digunakan untuk menampilkan nilai moneter dan melihat konversi ke mata uang yang digunakan oleh negara-negara berbahasa Inggris dengan cukup menggeser tetikus.",
"format": "inline"
}
</templatedata>
}}</includeonly>
<noinclude>[[en:voy:Template:Individual currency template documentation]]</noinclude>
lwzyxaa8d8pxq11cu4ja2m0mx1p9hsu
Templat:Info pendakian
10
222
2521
810
2024-12-03T14:16:00Z
Jon Harald Søby
20
1 revisi diimpor
808
wikitext
text/x-wiki
{| class="pp_infobox" style="float:right; clear:right; margin-left: 1em; width:40%;" cellpadding=8 cellspacing=1 border=0
|-
|align=left width=100% style="background-color:#effafa; font-size:90%; border:1px solid #44718a; border-radius: 0.45em; padding-left: 0.5em; padding-right: 0.5em"|
Artikel atau bagian ini berisi tentang informasi jalur pendakian dari {{PAGENAME}}. Untuk panduan saat akan mendaki gunung, lihat '''[[Mendaki gunung]].
|}
ot8ccysxq0zu8x19pdpownsp39pf69z
Templat:Infobox
10
223
2524
813
2024-12-03T14:16:00Z
Jon Harald Søby
20
2 revisi diimpor
812
wikitext
text/x-wiki
{| class="pp_infobox" style="float:right; clear:right; margin-left: 1em; width:40%;" cellpadding=8 cellspacing=1 border=0
|-
|align=left width=100% style="background-color:#effafa; font-size:90%; border:1px solid #44718a; border-radius: 0.45em; padding-left: 0.5em; padding-right: 0.5em"|
'''{{{1}}}'''
{{{2}}}
|}<noinclude>
{{Documentation}}
</noinclude>
7vjycuhza9w3hkq9cizkooj278nepf6
Templat:Infobox Situs Warisan Dunia
10
224
815
814
2024-12-03T13:51:57Z
Jon Harald Søby
20
1 revisi diimpor
814
wikitext
text/x-wiki
{| class="infobox vcard" style="width:{{{infoboxwidth|20em}}};max-width:{{{maxwidth|290px}}}; font-size:90%;"
!colspan="2" style="background:#eee; padding:0.2em; line-height:110%; text-align:center; font-size:135%;"| <!--deprecated:--><span class="fn org">{{{WHS|<!---->{{{Name<includeonly>|</includeonly>}}}}}}</span>*
|-
!colspan="2" style="padding-bottom:0.4em; text-align:center; font-size:110%;"| [[Situs Warisan Dunia|Situs Warisan Dunia UNESCO]]
|-
{{#if:{{{Image<includeonly>|</includeonly>}}} |<!--then:-->
{{!}}colspan="2" align="center" style="padding-bottom:0.3em;"{{!}} <hr>{{{Image}}}
{{!-}}
}}
{{#if:{{{imagecaption<includeonly>|</includeonly>}}} |<!--then:-->
{{!}}colspan="2" align="center" style="padding-bottom:0.3em;"{{!}} {{{imagecaption}}}<hr>
{{!-}}
}}
{{#if:{{{State Party|}}} |<!--then:-->
{{!}} '''[[W:id:Tabel Situs Warisan Dunia UNESCO berdasarkan negara peserta|Negara Peserta]]'''
{{!}} {{{State_Party<includeonly>|</includeonly><!--deprecated:-->{{{State Party|}}}<!---->}}}
{{!-}}
}}
| '''Tipe'''
| {{{Type}}}
|-
| '''[[w:id:Situs Warisan Dunia|Kriteria]]'''
| {{{Criteria}}}
|-
| '''Referensi'''
| {{#if:{{{Link|}}}
|<!--then-->[{{{Link}}} {{{ID}}}]
|<!--else-->[http://whc.unesco.org/en/list/{{{ID}}} {{{ID}}}]
}}
|- class="adr"
| '''Wilayah'''†
|style="line-height:150%; white-space:nowrap;"| <span class="region">{{{Region}}}</span>
|-
{{#if:{{{Coordinates|<noinclude>-</noinclude>}}} |<!--then:-->
{{!}} '''[[W:id:Sistem koordinat geografi|Koordinat]]'''
{{!}} {{{Coordinates}}}
{{!-}}
}}
|-
|colspan="2" align="center" style="background:#eee; font-size:110%;"| '''Sejarah prasasti'''
|-
|'''Prasasti resmi'''
|style="line-height:150%;"| {{{Year}}} <!--
--><small>([[w:id:Situs Warisan Dunia|Sesi]] {{#if:{{{Session|}}}
|<!--then-->{{{Session}}}
|<!--else-->{{#switch: {{{Year}}}
| 1977=1st | 1978=2nd | 1979=3rd | 1980=4th | 1981=5th
| 1982=6th | 1983=7th | 1984=8th | 1985=9th | 1986=10th
| 1987=11th | 1988=12th | 1989=13th | 1990=14th | 1991=15th
| 1992=16th | 1993=17th | 1994=18th | 1995=19th | 1996=20th
| 1997=21st | 1998=22nd | 1999=23rd | 2000=24th | 2001=25th
| 2002=26th | 2003=27th | 2004=28th | 2005=29th | 2006=30th
| 2007=31st | 2008=32nd | 2009=33rd | 2010=34th | 2011=35th
| 2012=36th | 2013=37th | 2014=38th | 2015=39th | 2016=40th
| #default = tidak diketahui
}}
}})</small>
|-
{{#if:{{{Extension|<noinclude>-</noinclude>}}} |<!--then:-->
{{!}} '''Ekstensi'''
{{!}} {{{Extension}}}
{{!-}}
}}
|-
{{#if:{{{Danger|<noinclude>-</noinclude>}}} |<!--then:-->
{{!}} '''[[w:id:Daftar Situs Warisan Dunia UNESCO yang dalam bahaya|Terancam]]'''
{{!}} {{{Danger}}}
{{!-}}
}}
|-
{{#if:{{{locmapin<includeonly>|</includeonly>}}}|
{{!}}colspan=2 align=center{{!}}
{{#if:{{{lat_degrees|{{{latitude<includeonly>|</includeonly>}}}}}}{{{long_degrees|{{{longitude<includeonly>|</includeonly>}}}}}}|{{Location map|{{{locmapin|Indonesia}}}|lat={{{latitude|<noinclude>0</noinclude>}}}|lat_deg={{{lat_degrees|<noinclude>0</noinclude>}}}|lat_min={{{lat_minutes|0}}}|lat_sec={{{lat_seconds|0}}}|lat_dir={{{lat_direction|<noinclude>N</noinclude>}}}|long={{{longitude|<noinclude>0</noinclude>}}}|lon_deg={{{long_degrees|<noinclude>0</noinclude>}}}|lon_min={{{long_minutes|0}}}|lon_sec={{{long_seconds|0}}}|lon_dir={{{long_direction|<noinclude>W</noinclude>}}}|float=center|width={{{map_width|220}}}|caption={{#if:{{{map_caption|}}}|{{{map_caption}}}|Location of {{{name|{{PAGENAME}}}}} in {{{locmapin}}}}}
}}}}}}
|-
|colspan="2" style="line-height:150%; padding-top:0.8em; border-top: 1px #aaa solid; text-align:left; font-size:80%; font-weight:lighter;"|<span style="margin:0.5em; color:#555;">* [http://whc.unesco.org/en/list Nama resmi dalam Daftar Warisan Dunia.]<br/><span style="margin:0.5em; color:#555;">† [http://whc.unesco.org/en/list/?search=&search_by_country=&type=&media=®ion=&order=region Menurut klasifikasi resmi UNESCO.]</span>
|}<noinclude>
pfjsa9kao6lkq35xpn5jccvoiioaik9
Templat:Infobox gunung
10
225
818
817
2024-12-03T13:51:57Z
Jon Harald Søby
20
2 revisi diimpor
817
wikitext
text/x-wiki
{| cellpadding="5" cellspacing=0 class="vcard" style="border: 1px solid #999966; float: right; clear: right; margin-left: 1em; margin-bottom: 0.5em; background: #ffffff; width: 305px"
|- class="fn org"
! bgcolor=#e7dcc3 colspan=2 | {{{Name}}}
{{#if:{{{Photo|}}}|<tr><td style="border-top:1px solid #999966; text-align: center;" colspan=2>[[Berkas:{{{Photo}}}|300px]]<br />{{{Caption|}}}</td></tr>}}
|- class="note"
| style="border-top: 1px solid #999966; border-right: 1px solid #999966; background: #e7dcc3; width: 85px" | Tinggi
| style="border-top: 1px solid #999966; width: 220px" | {{{Elevation}}}
|-
{{#if:{{{Location|}}}|<tr><td style="border-top: 1px solid #999966; border-right: 1px solid #999966; background: #e7dcc3; width: 85px">Letak</td><td class="label" style="border-top: 1px solid #999966; width: 220px">{{{Location|}}}</td></tr>}}<!--
-->{{#if:{{{Range|}}}|<tr class="note"><td style="border-top: 1px solid #999966; border-right: 1px solid #999966; background: #e7dcc3; width: 85px">Rangkaian</td><td style="border-top: 1px solid #999966; width: 220px">{{{Range|}}}</td></tr>}}<!--
-->{{#if:{{{Prominence|}}}|<tr class="note"><td style="border-top: 1px solid #999966; border-right: 1px solid #999966; background: #e7dcc3; width: 85px">[[w:en:Topographic prominence|Prominence]]</td><td style="border-top: 1px solid #999966; width: 220px">{{{Prominence|}}}</td></tr>}}<!--
-->{{#if:{{{Coordinates|}}}|<tr><td style="border-top: 1px solid #999966; border-right: 1px solid #999966; background: #e7dcc3; width: 85px">[[w:id:Sistem koordinat geografi|Koordinat]]</td><td style="border-top: 1px solid #999966; width: 220px">{{{Coordinates|}}}</td></tr>}}<!--
-->{{#if:{{{Topographic map|}}}|<tr><td style="border-top: 1px solid #999966; border-right: 1px solid #999966; background: #e7dcc3; width: 85px">[[Peta topografi]]</td><td style="border-top: 1px solid #999966; width: 220px">{{{Topographic map|}}}</td></tr>}}<!--
-->{{#if:{{{Type|}}}|<tr class="note"><td style="border-top: 1px solid #999966; border-right: 1px solid #999966; background: #e7dcc3; width: 85px">[[Daftar jenis gunung|Jenis]]</td><td style="border-top: 1px solid #999966; width: 220px">{{{Type|}}}</td></tr>}}<!--
-->{{#if:{{{Volcanic_Arc/Belt|}}}|<tr class="note"><td style="border-top: 1px solid #999966; border-right: 1px solid #999966; background: #e7dcc3; width: 85px">Lengkung/sabuk vulkanik</td><td style="border-top: 1px solid #999966; width: 220px">{{{Volcanic_Arc/Belt|}}}</td></tr>}}<!--
-->{{#if:{{{Age|}}}|<tr class="note"><td style="border-top: 1px solid #999966; border-right: 1px solid #999966; background: #e7dcc3; width: 85px">[[w:id:Skala waktu geologi|Umur batuan]]</td><td style="border-top: 1px solid #999966; width: 220px">{{{Age|}}}</td></tr>}}<!--
-->{{#if:{{{Last eruption|}}}|<tr class="note"><td style="border-top: 1px solid #999966; border-right: 1px solid #999966; background: #e7dcc3; width: 85px">Letusan terakhir</td><td style="border-top: 1px solid #999966; width: 220px">{{{Last eruption|}}}</td></tr>}}<!--
-->{{#if:{{{First ascent|}}}|<tr class="note"><td style="border-top: 1px solid #999966; border-right: 1px solid #999966; background: #e7dcc3; width: 85px">[[w:en:First ascent]]</td><td style="border-top: 1px solid #999966; width: 220px">{{{First ascent|}}}</td></tr>}}<!--
-->{{#if:{{{Easiest route|}}}|<tr><td style="border-top: 1px solid #999966; border-right: 1px solid #999966; background: #e7dcc3; width: 85px">Rute pendakian termudah</td><td style="border-top: 1px solid #999966; width: 220px">{{{Easiest route|}}}</td></tr>}}<!--
-->{{#if:{{{Grid_ref_UK|}}}|<tr><td style="border-top: 1px solid #999966; border-right: 1px solid #999966; background: #e7dcc3; width: 85px">[[w:en:British national grid reference system|Referensi grid OS]]</td><td style="border-top: 1px solid #999966; width: 220px">{{gbm4ibx|{{{Grid_ref_UK|}}}}}</td></tr>}}<!--
-->{{#if:{{{Grid_ref_Ireland|}}}|<tr><td style="border-top: 1px solid #999966; border-right: 1px solid #999966; background: #e7dcc3; width: 85px">[[Irish national grid reference system|Referensi grid OSI/OSNI]]</td><td style="border-top: 1px solid #999966; width: 220px">[http://getamap.ordnancesurvey.co.uk/getamap/frames.htm?mapAction=gaz&gazName=g&gazString={{{Grid_ref_Ireland|}}} {{{Grid_ref_Ireland}}}]</td></tr>}}<!--
-->{{#if:{{{Listing|}}}|<tr><td style="border-top: 1px solid #999966; border-right: 1px solid #999966; background: #e7dcc3; width: 85px">[[Hill lists in the British Isles|Listing]]</td><td style="border-top: 1px solid #999966; width: 220px">{{{Listing|}}}</td></tr>}}<!--
-->{{#if:{{{Translation|}}}|<tr><td style="border-top: 1px solid #999966; border-right: 1px solid #999966; background: #e7dcc3; width: 85px">Terjemahan</td><td style="border-top: 1px solid #999966; width: 220px">''{{{Translation|}}}'' ({{{Language|}}})</td></tr>}}<!--
-->{{#if:{{{Pronunciation|}}}|<tr><td style="border-top: 1px solid #999966; border-right: 1px solid #999966; background: #e7dcc3; width: 85px">[[International Phonetic Alphabet|Pelafalan]]</td><td style="border-top: 1px solid #999966; width: 220px">{{IPA|[{{{Pronunciation}}}]}}</td></tr>}}
|}
gzabfee96c0x4iqhtev5yhdrbk2qxux
Templat:Infobox settlement
10
226
827
826
2024-12-03T13:51:57Z
Jon Harald Søby
20
8 revisi diimpor
826
wikitext
text/x-wiki
<table class="infobox geography vcard" style="width:23em; text-align:left">
<tr>
<th colspan="2" style="width:100%; text-align:center; font-size:1.25em; white-space:nowrap"><span class="fn org">{{#if:{{{name|}}}|{{{name}}}|{{{official_name}}}}}</span>{{#if:{{{native_name|}}}|<br /><span class="nickname" {{#if:{{{native_name_lang|}}}|lang="{{{native_name_lang}}}" xml:lang="{{{native_name_lang}}}"}}>{{{native_name}}}</span>}}{{#if:{{{other_name|}}}|<br /><span class="nickname">{{{other_name}}}</span>}}</th>
</tr>
{{#if:{{both|{{{name|}}}{{{official_name|}}}|{{{settlement_type|{{{type|}}}}}}}}|
<tr class="mergedtoprow"><!-- ***category*** -->
<td colspan="2" style="text-align:center; background-color:#cddeff">— '''<span class="category">{{{settlement_type|{{{type}}}}}}</span>''' —</td>
</tr>
}}{{#if:{{both|{{{name|}}}|{{{official_name|}}}}}|
<tr class="mergedtoprow">
<th colspan="2" style="text-align:center">{{{official_name}}}</th>
</tr>
}}{{#if:{{{translit_lang1|}}}|
<tr class="mergedtoprow"><!-- ***Transliteration language 1*** -->
<th colspan="2" style="text-align:center">Transliterasi {{{translit_lang1}}}</th>
</tr>
{{#if:{{{translit_lang1_type|}}}|
<tr class="{{#if:{{{translit_lang1_type1|}}}|mergedrow|mergedbottomrow}}">
<th> - {{{translit_lang1_type}}}</th>
<td>{{{translit_lang1_info}}}</td>
</tr>
}}{{#if:{{{translit_lang1_type1|}}}|
<tr class="{{#if:{{{translit_lang1_type2|}}}|mergedrow|mergedbottomrow}}">
<th> - {{{translit_lang1_type1}}}</th>
<td>{{{translit_lang1_info1}}}</td>
</tr>
}}{{#if:{{{translit_lang1_type2|}}}|
<tr class="{{#if:{{{translit_lang1_type3|}}}|mergedrow|mergedbottomrow}}">
<th> - {{{translit_lang1_type2}}}</th>
<td>{{{translit_lang1_info2}}}</td>
</tr>
{{#if:{{{translit_lang1_type3|}}}|
<tr class="{{#if:{{{translit_lang1_type4|}}}|mergedrow|mergedbottomrow}}">
<th> - {{{translit_lang1_type3}}}</th>
<td>{{{translit_lang1_info3}}}</td>
</tr>
{{#if:{{{translit_lang1_type4|}}}|
<tr class="{{#if:{{{translit_lang1_type5|}}}|mergedrow|mergedbottomrow}}">
<th> - {{{translit_lang1_type4}}}</th>
<td>{{{translit_lang1_info4}}}</td>
</tr>
{{#if:{{{translit_lang1_type5|}}}|
<tr class="{{#if:{{{translit_lang1_type6|}}}|mergedrow|mergedbottomrow}}">
<th> - {{{translit_lang1_type5}}}</th>
<td>{{{translit_lang1_info5}}}</td>
</tr>
{{#if:{{{translit_lang1_type6|}}}|
<tr class="mergedbottomrow">
<th> - {{{translit_lang1_type6}}}</th>
<td>{{{translit_lang1_info6}}}</td>
</tr>
}} }} }} }} }} }}
{{#if:{{{translit_lang2|}}}|
<tr class="mergedtoprow"><!-- ***Transliteration language 2*** -->
<th colspan="2" style="text-align:center">Transliterasi {{{translit_lang2}}}</th>
</tr>
{{#if:{{{translit_lang2_type|}}}|
<tr class="{{#if:{{{translit_lang2_type1|}}}|mergedrow|mergedbottomrow}}">
<th> - {{{translit_lang2_type}}}</th>
<td>{{{translit_lang2_info}}}</td>
</tr>
}}{{#if:{{{translit_lang2_type1|}}}|
<tr class="{{#if:{{{translit_lang2_type2|}}}|mergedrow|mergedbottomrow}}">
<th> - {{{translit_lang2_type1}}}</th>
<td>{{{translit_lang2_info1}}}</td>
</tr>
}}{{#if:{{{translit_lang2_type2|}}}|
<tr class="{{#if:{{{translit_lang2_type3|}}}|mergedrow|mergedbottomrow}}">
<th> - {{{translit_lang2_type2}}}</th>
<td>{{{translit_lang2_info2}}}</td>
</tr>
{{#if:{{{translit_lang2_type3|}}}|
<tr class="{{#if:{{{translit_lang2_type4|}}}|mergedrow|mergedbottomrow}}">
<th> - {{{translit_lang2_type3}}}</th>
<td>{{{translit_lang2_info3}}}</td>
</tr>
{{#if:{{{translit_lang2_type4|}}}|
<tr class="{{#if:{{{translit_lang2_type5|}}}|mergedrow|mergedbottomrow}}">
<th> - {{{translit_lang2_type4}}}</th>
<td>{{{translit_lang2_info4}}}</td>
</tr>
{{#if:{{{translit_lang2_type5|}}}|
<tr class="{{#if:{{{translit_lang2_type6|}}}|mergedrow|mergedbottomrow}}">
<th> - {{{translit_lang2_type5}}}</th>
<td>{{{translit_lang2_info5}}}</td>
</tr>
{{#if:{{{translit_lang2_type6|}}}|
<tr class="mergedbottomrow">
<th> - {{{translit_lang2_type6}}}</th>
<td>{{{translit_lang2_info6}}}</td>
</tr>
}} }} }} }} }} }}
{{#if:{{{image_skyline|}}}|
<tr style="padding:0 0 15px 0;"><!-- ***Skyline Image*** -->
<td colspan="2" style="text-align:center; margin-top: 10px;">[[Berkas:{{{image_skyline}}}|{{#if:{{{imagesize|}}}|{{{imagesize}}}|250px}}|none|alt={{{image_alt|}}}|{{{image_caption|Skyline of {{#if:{{{name|}}}|{{{name}}}|{{{official_name}}}}}}}}]]
<div style="margin: 3px 0 0 0;">{{#if:{{{image_caption|}}}|<font style="font-size: 90%;">{{{image_caption}}}</font>}}</div>
</td>
</tr>
}}{{#if:{{{image|}}}|
<tr><!-- ***Other Image*** -->
<td colspan="2" style="text-align:center; padding:0.7em 0.8em">{{{image}}}</td>
</tr>
}}{{#if:{{{image1|}}}|
<tr><!-- ***Other Image*** -->
<td colspan="2" style="text-align:center; padding:0.7em 0.8em">{{{image1}}}</td>
</tr>
}}{{#if:{{{image_flag|}}}{{{image_seal|}}}{{{image_shield|}}}{{{image_blank_emblem| }}}|
<tr class="mergedtoprow"><!-- ***Bendera, Seal, Shield and Lambang*** -->
<td class="maptable" colspan="2" style="text-align:center; padding:0.4em 0">
<table style="width:100%; background:none">
{{#ifeq:{{#expr:{{#if:{{{image_flag|}}}|1|0}}+{{#if:{{{image_seal|}}}|1|0}}+{{#if:{{{image_shield|}}}|1|0}}+{{#if:{{{image_blank_emblem| }}}|1|0}}}}|2|
<tr><td style="vertical-align:middle" align="center">{{#if:{{{image_flag|}}}|[[Berkas:{{{image_flag}}}|{{#if:{{{flag_size|}}}|{{{flag_size}}}|100px}}|border|alt={{{flag_alt|}}}|Bendera {{#if:{{{name|}}}|{{{name}}}|{{{official_name}}}}}]]<br /><small>'''{{#if:{{{flag_link|}}}|[[{{{flag_link}}}|Bendera]]|{{#ifexist:Bendera {{PAGENAME}}|[[Bendera {{PAGENAME}}|Bendera]]|{{#ifexist:Bendera {{{official_name}}}|[[Bendera {{{official_name}}}|Bendera]]|Bendera}}}}}}'''</small> |{{#if:{{{image_seal|}}}|[[Berkas:{{{image_seal|}}}|{{#if:{{{seal_size|}}}|{{{seal_size}}}|100px}}|alt={{{seal_alt|}}}|Lambang resmi {{#if:{{{name|}}}|{{{name}}}|{{{official_name}}}}}]]<br /><small>'''{{#if:{{{seal_link|}}}|[[{{{seal_link}}}|Lambang]]|{{#ifexist:Lambang {{PAGENAME}}|[[Lambang {{PAGENAME}}|Lambang]]|{{#ifexist:Lambang {{{official_name}}}|[[Lambang {{{official_name}}}|Lambang]]|Lambang}}}}}}'''</small> |{{#if:{{{image_shield|}}}|[[Berkas:{{{image_shield|}}}|{{#if:{{{shield_size|}}}|{{{shield_size}}}|100px}}|alt={{{shield_alt|}}}|Lambang {{#if:{{{name|}}}|{{{name}}}|{{{official_name}}}}}]]<br /><small>'''{{#if:{{{shield_link|}}}|[[{{{shield_link}}}|Lambang]]|{{#ifexist:Lambang {{PAGENAME}}|[[Lambang {{PAGENAME}}|Lambang]]|{{#ifexist:Lambang {{{official_name}}}|[[Lambang {{{official_name}}}|Lambang]]|Lambang}}}}}}'''</small>|{{#if:{{{image_blank_emblem| }}}|[[Berkas:{{{image_blank_emblem| }}}|{{#if:{{{blank_emblem_size| }}}|{{{blank_emblem_size| }}}|100px}}|alt={{{blank_emblem_alt|}}}|Lambang {{#if:{{{name|}}}|{{{name}}}|{{{official_name}}}}}]]<br /><small>'''{{#if:{{{blank_emblem_link| }}}|[[{{{blank_emblem_link| }}}|{{{blank_emblem_type|Logo}}}]]|{{#ifexist:Logo of {{PAGENAME}}|[[Logo {{PAGENAME}}|Logo]]|{{#ifexist:Logo {{{official_name}}}|[[Logo {{{official_name}}}|Logo]]|{{#if:{{{blank_emblem_type|}}}|{{{blank_emblem_type}}}|Logo}}}}}}}}'''</small>}}}}}}}}</td>
<td style="vertical-align:middle" align="center">{{#if:{{{image_blank_emblem| }}}|[[Berkas:{{{image_blank_emblem| }}}|{{#if:{{{blank_emblem_size| }}}|{{{blank_emblem_size| }}}|100px}}|alt={{{blank_emblem_alt|}}}|Logo resmi {{#if:{{{name|}}}|{{{name}}}|{{{official_name}}}}}]]<br /><small>'''{{#if:{{{blank_emblem_link| }}}|[[{{{blank_emblem_link| }}}|{{{blank_emblem_type|Logo}}}]]|{{#ifexist:Logo {{PAGENAME}}|[[Logo {{PAGENAME}}|Logo]]|{{#ifexist:Logo {{{official_name}}}|[[Logo {{{official_name}}}|Logo]]|{{#if:{{{blank_emblem_type|}}}|{{{blank_emblem_type}}}|Logo}}}}}}}}'''</small> |{{#if:{{{image_shield|}}}|[[Berkas:{{{image_shield|}}}|{{#if:{{{shield_size|}}}|{{{shield_size}}}|100px}}|alt={{{shield_alt|}}}|Lambang {{#if:{{{name|}}}|{{{name}}}|{{{official_name}}}}}]]<br /><small>'''{{#if:{{{shield_link|}}}|[[{{{shield_link}}}|Lambang]]|{{#ifexist:Lambang {{PAGENAME}}|[[Lambang {{PAGENAME}}|Lambang]]|{{#ifexist:Lambang {{{official_name}}}|[[Lambang {{{official_name}}}|Lambang]]|Lambang}}}}}}'''</small> |{{#if:{{{image_seal|}}}|[[Berkas:{{{image_seal|}}}|{{#if:{{{seal_size|}}}|{{{seal_size}}}|100px}}|alt={{{seal_alt|}}}|Lambang resmi {{#if:{{{name|}}}|{{{name}}}|{{{official_name}}}}}]]<br /><small>'''{{#if:{{{seal_link|}}}|[[{{{seal_link}}}|Lambang]]|{{#ifexist:Lambang {{PAGENAME}}|[[Lambang {{PAGENAME}}|Lambang]]|{{#ifexist:Lambang {{{official_name}}}|[[Lambang {{{official_name}}}|Lambang]]|Lambang}}}}}}'''</small> |{{#if:{{{image_flag|}}}|[[Berkas:{{{image_flag|}}}|{{#if:{{{flag_size|}}}|{{{flag_size}}}|100px}}|border|alt={{{flag_alt|}}}|Bendera {{#if:{{{name|}}}|{{{name}}}|{{{official_name}}}}}]]<br /><small>'''{{#if:{{{flag_link|}}}|[[{{{flag_link}}}|Bendera]]|{{#ifexist:Bendera {{PAGENAME}}|[[Bendera {{PAGENAME}}|Bendera]]|{{#ifexist:Bendera {{{official_name}}}|[[Bendera {{{official_name}}}|Bendera]]|Bendera}}}}}}'''</small>}}}}}}}}</td></tr>
|{{#if:{{{image_flag|}}}{{{image_seal|}}}|
<tr>{{#if:{{{image_flag|}}}|
<td style="vertical-align:middle" align="center" {{#if:{{{image_seal|}}}|width="50%"|colspan="2"}}> [[Berkas:{{{image_flag}}}|{{#if:{{{flag_size|}}}|{{{flag_size}}}|100px}}|border|alt={{{flag_alt|}}}|Bendera {{#if:{{{name|}}}|{{{name}}}|{{{official_name}}}}}]]<br /><small>'''{{#if:{{{flag_link|}}}|[[{{{flag_link}}}|Bendera]]|{{#ifexist:Bendera {{PAGENAME}}|[[Bendera {{PAGENAME}}|Bendera]]|{{#ifexist:Bendera {{{official_name}}}|[[Bendera {{{official_name}}}|Bendera]]|Bendera}}}}}}'''</small></td>}}{{#if:{{{image_seal|}}}|
<td style="vertical-align:middle" {{#if:{{{image_flag|}}}|width="50%"|colspan="2"}}> [[Berkas:{{{image_seal}}}|{{#if:{{{seal_size|}}}|{{{seal_size}}}|100px}}|alt={{{seal_alt|}}}|Lambang resmi {{#if:{{{name|}}}|{{{name}}}|{{{official_name}}}}}]]<br /><small>'''{{#if:{{{seal_link|}}}|[[{{{seal_link}}}|Lambang]]|{{#ifexist:Lambang {{PAGENAME}}|[[Lambang {{PAGENAME}}|Lambang]]|{{#ifexist:Lambang {{{official_name}}}|[[Lambang {{{official_name}}}|Lambang]]|Lambang}}}}}}'''</small></td>}}
</tr>
}}{{#if:{{{image_shield|}}}{{{image_blank_emblem| }}}|
<tr>{{#if:{{{image_shield|}}}|
<td style="vertical-align:middle" align="center" {{#if:{{{image_blank_emblem| }}}|width="50%"|colspan="2"}}>[[Berkas:{{{image_shield|}}}|{{#if:{{{shield_size|}}}|{{{shield_size}}}|100px}}|alt={{{shield_alt|}}}|Lambang {{#if:{{{name|}}}|{{{name}}}|{{{official_name}}}}}]]<br /><small>'''{{#if:{{{shield_link|}}}|[[{{{shield_link}}}|Lambang]]|{{#ifexist:Lambang {{PAGENAME}}|[[Lambang {{PAGENAME}}|Lambang]]|{{#ifexist:Lambang {{{official_name}}}|[[Lambang {{{official_name}}}|Lambang]]|Lambang}}}}}}'''</small></td>}}{{#if:{{{image_blank_emblem| }}}|
<td style="vertical-align:middle" align="center" {{#if:{{{image_shield|}}}|width="50%"|colspan="2"}}>[[Berkas:{{{image_blank_emblem| }}}|{{#if:{{{blank_emblem_size| }}}|{{{blank_emblem_size| }}}|100px}}|alt={{{blank_emblem_alt|}}}|Lambang {{#if:{{{name|}}}|{{{name}}}|{{{official_name}}}}}]]<br /><small>'''{{#if:{{{blank_emblem_link| }}}|[[{{{blank_emblem_link| }}}|{{{blank_emblem_type|Logo}}}]]|{{#ifexist:Logo of {{PAGENAME}}|[[Logo of {{PAGENAME}}|Logo]]|{{#ifexist:Logo of {{{official_name}}}|[[Logo of {{{official_name}}}|Logo]]|{{#if:{{{blank_emblem_type|}}}|{{{blank_emblem_type}}}|Logo}}}}}}}}'''</small></td>}}
</tr>
}}}}
</table>
</td>
</tr>
}}<!-- ***Nickname*** -->
{{#if:{{{nickname|}}}|
<tr class="mergedrow">
<td colspan="2" style="text-align:center">Nama lain: <span class="nickname">{{{nickname}}}</span></td>
</tr>
}}<!-- ***Motto*** -->
{{#if:{{{motto|}}}|
<tr class="mergedrow">
<td colspan="2" style="text-align:center">[[Moto]]: {{{motto}}}</td>
</tr>
}}<!-- ***Anthem*** -->
{{#if:{{{anthem|}}}|
<tr class="mergedrow">
<td colspan="2" style="text-align:center">[[Lagu kebangsaan]]: {{{anthem}}}</td>
</tr>
}}<!-- ***Map*** -->
{{#if:{{{image_map|}}}|
<tr style="padding: 0 0 0.2em 0;">
<td colspan="2" style="text-align:center" align="center">[[Berkas:{{{image_map}}}|{{#if:{{{mapsize|}}}|{{{mapsize}}}|250px}}|none|alt={{{map_alt|}}}|{{{map_caption|Letak {{#if:{{{name|}}}|{{{name}}}|{{{official_name}}}}}}}}]]{{#if:{{{map_caption|}}}|<small>{{{map_caption}}}</small>}}
</td>
</tr>
{{#if:{{{image_map1|}}}|
<tr style="padding: 0 0 0.2em 0;">
<td colspan="2" style="text-align:center" align="center">[[Berkas:{{{image_map1}}}|{{#if:{{{mapsize1|}}}|{{{mapsize1}}}|250px}}|none|alt={{{map_alt1|}}}|{{{map_caption1|Letak {{#if:{{{name|}}}|{{{name}}}|{{{official_name}}}}}}}}]]{{#if:{{{map_caption1|}}}|<small>{{{map_caption1}}}</small>}}
</td>
</tr>
}}}}<!--***Dot Map*** -->
{{#if:{{{image_dot_map|}}}|
<tr style="padding: 0 0 0.2em 0;">
<td colspan="2" style="text-align:center" align="center"><center>{{superimpose
|base = {{{image_dot_map|}}}
|base_width = {{px|{{{dot_mapsize|}}}|180px}}
|base_alt = {{{dot_map_base_alt|}}}
|base_caption = {{#if:{{{official_name|}}}|{{{official_name|}}}|{{{name}}}}}
|float = Red pog.svg
|float_width = 6px
|float_alt = {{{dot_map_alt|}}}
|float_caption = {{{dot_map_caption|}}}
|x = {{{dot_x|}}}
|y = {{{dot_y|}}}
}}{{#if:{{{dot_map_caption|}}}|<small>{{{dot_map_caption}}}</small>}}</center>
</td>
</tr>
}}<!-- ***Pushpin Map*** -->
{{#if:{{{pushpin_map|}}}|
<tr class="mergedrow">
<td colspan="2" style="text-align:center" align="center"><center>
{{Location map|{{{pushpin_map|}}}
|label = {{#ifeq: {{lc: {{{pushpin_label_position|}}} }} | none | | {{#if:{{{pushpin_label|}}}|{{{pushpin_label}}}|{{#if:{{{name|}}}|{{{name}}}|{{{official_name|}}}}}}} }}
|alt = {{{pushpin_map_alt|}}}
|lat = {{#if:{{{latm|}}}{{{latNS|}}}| |{{{latd|}}} }}
|long = {{#if:{{{longm|}}}{{{longEW|}}}| |{{{longd|}}} }}
|lat_deg={{#if:{{{latm|}}}{{{latNS|}}}|{{{latd|}}}| }}
|lat_min={{#if:{{{latm|}}}{{{latNS|}}}|{{{latm|}}}| }}
|lat_sec={{#if:{{{lats|}}}{{{latNS|}}}|{{{lats|}}}| }}
|lat_dir={{#if:{{{latNS|}}}|{{{latNS|}}}| }}
|lon_deg={{#if:{{{longm|}}}{{{longEW|}}}|{{{longd|}}}| }}
|lon_min={{#if:{{{longm|}}}{{{longEW|}}}|{{{longm|}}}| }}
|lon_sec={{#if:{{{longs|}}}{{{longEW|}}}|{{{longs|}}}| }}
|lon_dir={{#if:{{{longEW|}}}|{{{longEW|}}}| }}
|marksize =6
|float = none
|caption =
|border = none
|position = {{{pushpin_label_position|}}}
|width = {{#if:{{{pushpin_mapsize|}}}|{{{pushpin_mapsize|}}} | 250 }}
}}{{#if:{{{pushpin_map_caption|}}}|<small>{{{pushpin_map_caption}}}</small>|{{#if:{{{map_caption|}}}|<small>{{{map_caption}}}</small>}}}}
</center></td>
</tr>
}}
{{#if:{{{pushpin_map1|}}}|
<tr class="mergedrow">
<td colspan="2" style="text-align:center" align="center"><center>
{{Location map|{{{pushpin_map1|}}}
|label = {{#ifeq: {{lc: {{{pushpin_label_position1|}}} }} | none | | {{#if:{{{pushpin_label1|}}}|{{{pushpin_label1}}}|{{#if:{{{name|}}}|{{{name}}}|{{{official_name|}}}}}}} }}
|alt = {{{pushpin_map_alt1|}}}
|lat = {{#if:{{{latm|}}}{{{latNS|}}}| |{{{latd|}}} }}
|long = {{#if:{{{longm|}}}{{{longEW|}}}| |{{{longd|}}} }}
|lat_deg={{#if:{{{latm|}}}{{{latNS|}}}|{{{latd|}}}| }}
|lat_min={{#if:{{{latm|}}}{{{latNS|}}}|{{{latm|}}}| }}
|lat_sec={{#if:{{{lats|}}}{{{latNS|}}}|{{{lats|}}}| }}
|lat_dir={{#if:{{{latNS|}}}|{{{latNS|}}}| }}
|lon_deg={{#if:{{{longm|}}}{{{longEW|}}}|{{{longd|}}}| }}
|lon_min={{#if:{{{longm|}}}{{{longEW|}}}|{{{longm|}}}| }}
|lon_sec={{#if:{{{longs|}}}{{{longEW|}}}|{{{longs|}}}| }}
|lon_dir={{#if:{{{longEW|}}}|{{{longEW|}}}| }}
|marksize =6
|float = none
|caption =
|border = none
|position = {{{pushpin_label_position1|}}}
|width = {{#if:{{{pushpin_mapsize1|}}}|{{{pushpin_mapsize1|}}} | 250 }}
}}{{#if:{{{pushpin_map_caption1|}}}|<small>{{{pushpin_map_caption1|}}}</small>|{{#if:{{{map_caption|}}}|<small>{{{map_caption}}}</small>}}}}
</center></td>
</tr>
}}<!-- ***Coordinates*** -->
{{#if:{{both|{{{latd|}}}|{{{longd|}}}}}|
<tr class="mergedbottomrow">
<td colspan="2" style="text-align:center; padding-bottom:0.7em">Koordinat{{#if:{{{coor_pinpoint|{{{coor_type|}}}}}}| ({{{coor_pinpoint|{{{coor_type|}}}}}})|}}: {{Geobox coor|{{{latd|}}}|{{{latm|}}}|{{{lats|}}}|{{{latNS|}}}|{{{longd|}}}|{{{longm|}}}|{{{longs|}}}|{{{longEW|}}}|{{{coordinates_type|type:city{{#if:{{{population_total|}}}|{{#iferror:{{#expr:{{formatnum:{{{population_total}}}|R}}+1}}||({{formatnum:{{{population_total}}}|R}})}}|}}{{#if:{{{coordinates_region|}}}{{{subdivision_name|}}}|_region:{{{coordinates_region|{{CountryAbbr|{{{subdivision_name|}}}|{{{subdivision_name1|}}}}}}}}}}}}}|{{#if:{{{coordinates_display|}}}|title|μ}}={{{coordinates_display|}}}|{{#if:{{{coordinates_format|}}}|format|μ}}={{{coordinates_format|}}}}}{{{coordinates_footnotes|}}}
<!-- ***Glocodes.com*** -->
{{#if:{{{glocode|}}}|{{br}}Glocode: [http://glocode.com/{{{glocode}}} {{{glocode}}}]}}</td>
</tr>
}}<!-- ***Subdivisions*** -->
{{#if:{{{subdivision_type|}}}|
<tr class="mergedtoprow">
<th>{{{subdivision_type}}}</th>
<td>{{{subdivision_name}}}</td>
</tr>
}}{{#if:{{{subdivision_type1|}}}|
<tr class="mergedrow">
<th>{{{subdivision_type1}}}</th>
<td>{{{subdivision_name1}}}</td>
</tr>
}}{{#if:{{{subdivision_type2|}}}|
<tr class="mergedrow">
<th>{{{subdivision_type2}}}</th>
<td>{{{subdivision_name2}}}</td>
</tr>
}}{{#if:{{{subdivision_type3|}}}|
<tr class="mergedrow">
<th>{{{subdivision_type3}}}</th>
<td>{{{subdivision_name3}}}</td>
</tr>
}}{{#if:{{{subdivision_type4|}}}|
<tr class="mergedrow">
<th>{{{subdivision_type4}}}</th>
<td>{{{subdivision_name4}}}</td>
</tr>
}}
{{#if:{{{subdivision_type5|}}}|
<tr class="mergedrow">
<th>{{{subdivision_type5}}}</th>
<td>{{{subdivision_name5}}}</td>
</tr>
}}{{#if:{{{subdivision_type6|}}}|
<tr class="mergedrow">
<th>{{{subdivision_type6}}}</th>
<td>{{{subdivision_name6}}}</td>
</tr>
}}<!--***Established*** -->
{{#if:{{{established_title|}}}|
<tr class="mergedrow">
<th>{{{established_title}}}</th>
<td>{{{established_date}}}</td>
</tr>
}}{{#if:{{{established_title1|}}}|
<tr class="mergedrow">
<th>{{{established_title1}}}</th>
<td>{{{established_date1}}}</td>
</tr>
}}{{#if:{{{established_title2|}}}|
<tr class="mergedrow">
<th>{{{established_title2}}}</th>
<td>{{{established_date2}}}</td>
</tr>
}}{{#if:{{{established_title3|}}}|
<tr class="mergedrow">
<th>{{{established_title3}}}</th>
<td>{{{established_date3}}}</td>
</tr>
}}{{#if:{{{extinct_title|}}}|
<tr class="mergedrow">
<th>{{{extinct_title}}}</th>
<td>{{{extinct_date}}}</td>
</tr>
}}{{#if:{{{founder|}}}|
<tr class="mergedrow">
<th>Pendiri</th>
<td>{{{founder}}}</td>
</tr>
}}{{#if:{{{named_for|}}}|
<tr class="mergedrow">
<th>[[Senama|Asal nama]]</th>
<td>{{{named_for}}}</td>
</tr>
}}<!-- ***Seat of government and subdivisions within the settlement*** -->{{#if:{{{seat|}}}|
<tr class="mergedtoprow">
<th>{{#if:{{{seat_type|}}}|{{{seat_type}}}|Pusat pemerintahan}}</th>
<td>{{{seat}}}</td>
</tr>
}}{{#if:{{{parts|}}}{{{p1|}}}|
<tr class={{#if:{{{seat|}}}|"mergedrow"|"mergedtoprow"}}>
<th>{{#if:{{{parts_type|}}}|{{{parts_type}}}|Borough}}</th>
<td>{{#ifeq:{{{parts_style|}}}|para|<b>{{{parts|}}}{{#if:{{both|{{{parts|}}}|{{{p1|}}}}}|: |}}</b>{{#if:{{{p1|}}}|{{{p1}}}{{#if:{{{p2|}}}|, {{{p2}}}{{#if:{{{p3|}}}|, {{{p3}}}{{#if:{{{p4|}}}|, {{{p4}}}{{#if:{{{p5|}}}|, {{{p5}}}{{#if:{{{p6|}}}|, {{{p6}}}{{#if:{{{p7|}}}|, {{{p7}}}{{#if:{{{p8|}}}|, {{{p8}}}{{#if:{{{p9|}}}|, {{{p9}}}{{#if:{{{p10|}}}|, {{{p10}}}{{#if:{{{p11|}}}|, {{{p11}}}{{#if:{{{p12|}}}|, {{{p12}}}{{#if:{{{p13|}}}|, {{{p13}}}{{#if:{{{p14|}}}|, {{{p14}}}{{#if:{{{p15|}}}|, {{{p15}}}{{#if:{{{p16|}}}|, {{{p16}}}{{#if:{{{p17|}}}|, {{{p17}}}{{#if:{{{p18|}}}|, {{{p18}}}{{#if:{{{p19|}}}|, {{{p19}}}{{#if:{{{p20|}}}|, {{{p20}}}{{#if:{{{p21|}}}|, {{{p21}}}{{#if:{{{p22|}}}|, {{{p22}}}{{#if:{{{p23|}}}|, {{{p23}}}{{#if:{{{p24|}}}|, {{{p24}}}{{#if:{{{p25|}}}|, {{{p25}}}{{#if:{{{p26|}}}|, {{{p26}}}{{#if:{{{p27|}}}|, {{{p27}}}{{#if:{{{p28|}}}|, {{{p28}}}{{#if:{{{p29|}}}|, {{{p29}}}{{#if:{{{p30|}}}|, {{{p30}}}{{#if:{{{p31|}}}|, {{{p31}}}{{#if:{{{p32|}}}|, {{{p32}}}{{#if:{{{p33|}}}|, {{{p33}}}{{#if:{{{p34|}}}|, {{{p34}}}{{#if:{{{p35|}}}|, {{{p35}}}{{#if:{{{p36|}}}|, {{{p36}}}{{#if:{{{p37|}}}|, {{{p37}}}{{#if:{{{p38|}}}|, {{{p38}}}{{#if:{{{p39|}}}|, {{{p39}}}{{#if:{{{p40|}}}|, {{{p40}}}{{#if:{{{p41|}}}|, {{{p41}}}{{#if:{{{p42|}}}|, {{{p42}}}{{#if:{{{p43|}}}|, {{{p43}}}{{#if:{{{p44|}}}|, {{{p44}}}{{#if:{{{p45|}}}|, {{{p45}}}{{#if:{{{p46|}}}|, {{{p46}}}{{#if:{{{p47|}}}|, {{{p47}}}{{#if:{{{p48|}}}|, {{{p48}}}{{#if:{{{p49|}}}|, {{{p49}}}{{#if:{{{p50|}}}|, {{{p50}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}|{{#if:{{{p1|}}}|{{Collapsible list|title={{{parts|}}}|expand={{#switch:{{{parts_style|}}}|coll=|list=y|{{#if:{{{p6|}}}||y}}}}|1={{{p1|}}}|2={{{p2|}}}|3={{{p3|}}}|4={{{p4|}}}|5={{{p5|}}}|6={{{p6|}}}|7={{{p7|}}}|8={{{p8|}}}|9={{{p9|}}}|10={{{p10|}}}|11={{{p11|}}}|12={{{p12|}}}|13={{{p13|}}}|14={{{p14|}}}|15={{{p15|}}}|16={{{p16|}}}|17={{{p17|}}}|18={{{p18|}}}|19={{{p19|}}}|20={{{p20|}}}|21={{{p21|}}}|22={{{p22|}}}|23={{{p23|}}}|24={{{p24|}}}|25={{{p25|}}}|26={{{p26|}}}|27={{{p27|}}}|28={{{p28|}}}|29={{{p29|}}}|30={{{p30|}}}|31={{{p31|}}}|32={{{p32|}}}|33={{{p33|}}}|34={{{p34|}}}|35={{{p35|}}}|36={{{p36|}}}|37={{{p37|}}}|38={{{p38|}}}|39={{{p39|}}}|40={{{p40|}}}|41={{{p41|}}}|42={{{p42|}}}|43={{{p43|}}}|44={{{p44|}}}|45={{{p45|}}}|46={{{p46|}}}|47={{{p47|}}}|48={{{p48|}}}|49={{{p49|}}}|50={{{p50|}}}}}|{{{parts}}}}}}}</td>
</tr>
}}<!-- ***Government type and Leader*** -->
{{#if:{{{government_type|}}}{{{governing_body|}}}{{{leader_title|}}}|
<tr class="mergedtoprow"><!-- ***Government*** -->
<td colspan="2">'''Pemerintahan'''{{{government_footnotes|}}}</td>
</tr>
{{#if:{{{government_type|}}}|
<tr class="mergedrow">
<th> - Jenis</th>
<td>{{{government_type}}}</td>
</tr>
}}{{#if:{{{governing_body|}}}|
<tr class="mergedrow">
<th> - Badan</th>
<td class="agent">{{{governing_body}}}</td>
</tr>
}}{{#if:{{{leader_title|}}}|
<tr class="mergedrow">
<th> - {{{leader_title}}}</th>
<td>{{{leader_name}}} {{#if:{{{leader_party|}}}|({{Polparty|{{{subdivision_name}}}|{{{leader_party}}}}})}}</td>
</tr>
}}{{#if:{{{leader_title1|}}}|
<tr class="mergedrow">
<th> - {{{leader_title1}}}</th>
<td>{{{leader_name1}}}</td>
</tr>
{{#if:{{{leader_title2|}}}|
<tr class="mergedrow">
<th> - {{{leader_title2}}}</th>
<td>{{{leader_name2}}}</td>
</tr>
{{#if:{{{leader_title3|}}}|
<tr class="mergedrow">
<th> - {{{leader_title3}}}</th>
<td>{{{leader_name3}}}</td>
</tr>
{{#if:{{{leader_title4|}}}|
<tr class="mergedrow">
<th> - {{{leader_title4}}}</th>
<td>{{{leader_name4}}}</td>
</tr>
}} }} }} }} }}
{{#if:{{{dau|}}}|
<tr class="mergedrow">
<th> - [[Dana Alokasi Umum|DAU]]</th>
<td>{{{dau}}} {{#if:{{{dau|}}}|{{#if:{{{dauref|}}}|<sup>{{{dauref|}}}</sup>}}}}</td></tr>}}
<!-- ***Geographical characteristics*** -->
{{#if:{{{area_total_km2|}}}{{{area_total_sq_mi|}}}{{{area_total_dunam|}}}{{{area_land_km2|}}}{{{area_land_sq_mi|}}}{{{area_water_km2|}}}{{{area_water_sq_mi|}}}{{{area_urban_km2|}}}{{{area_urban_sq_mi|}}}{{{area_rural_sq_mi|}}}{{{area_rural_km2|}}}{{{area_metro_km2|}}}{{{area_blank1_km2|}}}{{{area_metro_sq_mi|}}}{{{area_blank1_sq_mi|}}}|
<tr class="mergedtoprow"><!-- ***Area*** -->
<td {{#ifeq:{{{total_type}}}| ||colspan="2"}}>'''[[Luas]]'''{{{area_footnotes|}}}</td>
{{#ifeq:{{{total_type}}}| ||</tr>}}
{{#if:{{{area_total_km2|}}}{{{area_total_sq_mi|}}}{{{area_total_dunam|}}}|
{{#ifeq:{{{total_type}}}| ||<tr class="mergedrow">
<th> - {{#if:{{{total_type|}}}|{{{total_type}}}|{{#if:{{{area_metro_km2|}}}{{{area_metro_sq_mi|}}}{{{area_urban_km2|}}}{{{area_urban_sq_mi|}}}{{{area_rural_km2|}}}{{{area_rural_sq_mi|}}}{{{population_metro|}}}{{{population_urban|}}}{{{population_rural|}}}|{{#if:{{{settlement_type|{{{type|}}}}}}|{{{settlement_type|{{{type}}}}}}|Kota}}|Total}}}}</th>}}
<td>{{#if:{{both|{{among|{{{unit_pref|}}}|dunam|Dunam}}|{{{area_total_dunam|}}}}}|{{formatnum:{{{area_total_dunam|}}} [[dunam]] ({{#if:{{{area_total_km2|}}}|{{{area_total_km2|}}} [[Kilometer persegi|km<sup>2</sup>]]|{{#expr: {{{area_total_dunam|}}} *0.001 round 1}} [[Kilometer persegi|km<sup>2</sup>]]}} '''/''' {{#if: {{{area_total_sq_mi|}}}|{{{area_total_sq_mi|}}} [[mil persegi|sq mi]]|{{#expr: {{{area_total_dunam|}}} *0.000386102 round 1}} [[mil persegi|sq mil]]}})}}|{{infobox_settlement/areadisp|{{{unit_pref|}}}|{{{area_total_sq_mi|}}}|{{{area_total_km2|}}}|{{{area_magnitude|}}}||{{{subdivision_name|}}}}}}}</td>
</tr>
}}{{#if:{{{area_land_km2|}}}{{{area_land_sq_mi|}}}|
<tr class="mergedrow">
<th> - Daratan</th>
<td>{{infobox_settlement/areadisp|{{{unit_pref|}}}|{{{area_land_sq_mi|}}}|{{{area_land_km2|}}}|||{{{subdivision_name|}}}}}</td>
</tr>
}}{{#if:{{{area_water_km2|}}}{{{area_water_sq_mi|}}}|
<tr class="mergedrow">
<th> - Perairan</th>
<td>{{infobox_settlement/areadisp|{{{unit_pref|}}}|{{{area_water_sq_mi|}}}|{{{area_water_km2|}}}|||{{{subdivision_name|}}}}} {{#if:{{{area_water_percent|}}}| {{{area_water_percent}}}%}}</td>
</tr>
}}{{#if:{{{area_urban_km2|}}}{{{area_urban_sq_mi|}}}|
<tr class="mergedrow">
<th> - Perkotaan{{{area_urban_footnotes|}}}</th>
<td>{{infobox_settlement/areadisp|{{{unit_pref|}}}|{{{area_urban_sq_mi|}}}|{{{area_urban_km2|}}}|||{{{subdivision_name|}}}}}</td>
</tr>
}}{{#if:{{{area_rural_km2|}}}{{{area_rural_sq_mi|}}}|
<tr class="mergedrow">
<th> - Pedesaan{{{area_rural_footnotes|}}}</th>
<td>{{infobox_settlement/areadisp|{{{unit_pref|}}}|{{{area_rural_sq_mi|}}}|{{{area_rural_km2|}}}|||{{{subdivision_name|}}}}}</td>
</tr>
}}{{#if:{{{area_metro_km2|}}}{{{area_metro_sq_mi|}}}|
<tr class="mergedrow">
<th> - Metro{{{area_metro_footnotes|}}}</th>
<td>{{infobox_settlement/areadisp|{{{unit_pref|}}}|{{{area_metro_sq_mi|}}}|{{{area_metro_km2|}}}|||{{{subdivision_name|}}}}}</td>
</tr>
}}<!-- ***Area rank*** -->
{{#if:{{{area_rank|}}}|
<tr class="mergedrow">
<th> - Peringkat luas</th>
<td>{{{area_rank}}}</td>
</tr>
}}{{#if:{{{area_blank1_km2|}}}{{{area_blank1_sq_mi|}}}{{{area_blank1_title|}}}|
<tr class="mergedrow">
<th> - {{{area_blank1_title}}}</th>
<td>{{infobox_settlement/areadisp|{{{unit_pref|}}}|{{{area_blank1_sq_mi|}}}|{{{area_blank1_km2|}}}|||{{{subdivision_name|}}}}}</td>
</tr>
}}{{#if:{{{area_blank2_km2|}}}{{{area_blank2_sq_mi|}}}{{{area_blank2_title|}}}|
<tr class="mergedrow">
<th> - {{{area_blank2_title}}}</th>
<td>{{infobox_settlement/areadisp|{{{unit_pref|}}}|{{{area_blank2_sq_mi|}}}|{{{area_blank2_km2|}}}|||{{{subdivision_name|}}}}}</td>
</tr>
}}{{#if:{{{area_note|}}}|
<tr class="mergedrow">
<td> </td>
<td><small>{{{area_note}}}</small></td>
</tr>
}} }}<!-- ***Elevation*** -->
{{#if:{{{elevation_m|}}}{{{elevation_ft|}}}|
<tr class="mergedtoprow">
<td>'''[[Ketinggian]]'''{{{elevation_footnotes|}}}</td>
<td>{{infobox_settlement/lengthdisp|{{{unit_pref|}}}|{{{elevation_ft|}}}|{{{elevation_m|}}}||{{{subdivision_name|}}}}}</td>
</tr>
}}{{#if:{{{elevation_max_m|}}}{{{elevation_max_ft|}}}|
<tr class="mergedtoprow">
<th>Ketinggian tertinggi{{{elevation_max_footnotes|}}}</th>
<td>{{infobox_settlement/lengthdisp|{{{unit_pref|}}}|{{{elevation_max_ft|}}}|{{{elevation_max_m|}}}||{{{subdivision_name|}}}}}</td>
</tr>
}}{{#if:{{{elevation_min_m|}}}{{{elevation_min_ft|}}}|
<tr class="{{#if:{{{elevation_min_rank|}}}|mergedrow|mergedbottomrow}}">
<th>Ketinggian terendah{{{elevation_min_footnotes|}}}</th>
<td>{{infobox_settlement/lengthdisp|{{{unit_pref|}}}|{{{elevation_min_ft|}}}|{{{elevation_min_m|}}}||{{{subdivision_name|}}}}}</td>
</tr>
{{#if:{{{elevation_min_rank|}}}|<!-- ***Elevation min rank*** -->
<tr class="mergedbottomrow">
<th> '''- Rank'''</th>
<td>{{{elevation_min_rank}}}</td>
</tr>}}
}}<!-- ***Population*** -->
{{#if:{{{population|}}}{{{population_total|}}}{{{population_urban|}}}{{{population_rural|}}}{{{population_metro|}}}{{{population_blank1|}}}{{{population_blank2|}}}{{{population_est|}}}|
<tr class="mergedtoprow">
{{#if:{{{population|}}}|
<td>'''Penduduk''' {{#if:{{{population_as_of|}}}|({{{population_as_of}}})}}{{{population_footnotes|}}}</td>
<td>{{formatnum:{{{population}}}}}</td>
|<td {{#ifeq:{{{total_type}}}| ||colspan="2"}}>'''Populasi''' {{#if:{{{population_as_of|}}}|({{{population_as_of}}})}}{{{population_footnotes|}}}</td>
}}
{{#ifeq:{{{total_type}}}| ||</tr>}}
{{#if:{{{population_total|}}}|
{{#ifeq:{{{total_type}}}| ||<tr class="mergedrow">
<th> - {{#if:{{{total_type|}}}|{{{total_type}}}|{{#if:{{{population_metro|}}}{{{population_urban|}}}{{{population_rural|}}}{{{area_metro_km2|}}}{{{area_metro_sq_mi|}}}{{{area_urban_km2|}}}{{{area_urban_sq_mi|}}}{{{area_rural_km2|}}}{{{area_rural_sq_mi|}}}|{{#if:{{{settlement_type|{{{type|}}}}}}|{{{settlement_type|{{{type}}}}}}|Kota}}|Total}}}}</th>}}
<td>{{formatnum:{{{population_total}}}}}</td>
</tr>
}}{{#if:{{{population_est|}}}|
<tr class="mergedrow">
<td> '''- Perkiraan''' ({{{pop_est_as_of}}})</td>
<td>{{formatnum:{{{population_est}}}}}</td>
</tr>
}}{{#if:{{{population_rank|}}}|<!-- ***Population rank*** -->
<tr class="mergedrow">
<th> '''- Peringkat'''</th>
<td>{{{population_rank}}}</td>
</tr>
}}{{#if:{{infobox_settlement/checkauto|{{{population_density_sq_mi|}}}|{{{population_total|}}}|{{{area_total_sq_mi|}}}}}{{infobox_settlement/checkauto|{{{population_density_km2|}}}|{{{population_total|}}}|{{{area_total_km2|}}}}}|
<tr class="mergedrow">
<td> '''- [[Kepadatan]]'''</td>
<td>{{infobox_settlement/densdisp|{{{unit_pref|}}}|{{{population_density_sq_mi|}}}|{{{population_density_km2|}}}|{{{population_total|}}}|{{{area_total_sq_mi|}}}|{{{area_total_km2|}}}|{{{subdivision_name|}}}}}</td>
</tr>
}}{{#if:{{{population_density_rank|}}}|<!-- ***Population density rank*** -->
<tr class="mergedrow">
<th> '''- Peringkat kepadatan'''</th>
<td>{{{population_density_rank}}}</td>
</tr>
}}{{#if:{{{population_urban|}}}|
<tr class="mergedrow">
<td> '''- [[Wilayah perkotaan|Perkotaan]]'''{{{population_urban_footnotes|}}}</td>
<td>{{formatnum:{{{population_urban}}}}}</td>
</tr>
}}{{#if:{{infobox_settlement/checkauto|{{{population_density_urban_sq_mi|}}}|{{{population_urban|}}}|{{{area_urban_sq_mi|}}}}}{{infobox_settlement/checkauto|{{{population_density_urban_km2|}}}|{{{population_urban|}}}|{{{area_urban_km2|}}}}}|
<tr class="mergedrow">
<td> '''- Kepadatan perkotaan'''</td>
<td>{{infobox_settlement/densdisp|{{{unit_pref|}}}|{{{population_density_urban_sq_mi|}}}|{{{population_density_urban_km2|}}}|{{{population_urban|}}}|{{{area_urban_sq_mi|}}}|{{{area_urban_km2|}}}|{{{subdivision_name|}}}}}</td>
</tr>
}}{{#if:{{{population_rural|}}}|
<tr class="mergedrow">
<td> '''- [[Wilayah pedesaan|Pedesaan]]'''{{{population_rural_footnotes|}}}</td>
<td>{{formatnum:{{{population_rural}}}}}</td>
</tr>
}}{{#if:{{infobox_settlement/checkauto|{{{population_density_rural_sq_mi|}}}|{{{population_rural|}}}|{{{area_rural_sq_mi|}}}}}{{infobox_settlement/checkauto|{{{population_density_rural_km2|}}}|{{{population_rural|}}}|{{{area_rural_km2|}}}}}|
<tr class="mergedrow">
<td> '''- Kepadatan pedesaan'''</td>
<td>{{infobox_settlement/densdisp|{{{unit_pref|}}}|{{{population_density_rural_sq_mi|}}}|{{{population_density_rural_km2|}}}|{{{population_rural|}}}|{{{area_rural_sq_mi|}}}|{{{area_rural_km2|}}}|{{{subdivision_name|}}}}}</td>
</tr>
}}{{#if:{{{population_metro|}}}|
<tr class="mergedrow">
<td> '''- [[Wilayah metropolitan|Metro]]'''{{{population_metro_footnotes|}}}</td>
<td>{{formatnum:{{{population_metro}}}}}</td>
</tr>
}}{{#if:{{infobox_settlement/checkauto|{{{population_density_metro_sq_mi|}}}|{{{population_metro|}}}|{{{area_metro_sq_mi|}}}}}{{infobox_settlement/checkauto|{{{population_density_metro_km2|}}}|{{{population_metro|}}}|{{{area_metro_km2|}}}}}|
<tr class="mergedrow">
<td> '''- Kepadatan metro'''</td>
<td>{{infobox_settlement/densdisp|{{{unit_pref|}}}|{{{population_density_metro_sq_mi|}}}|{{{population_density_metro_km2|}}}|{{{population_metro|}}}|{{{area_metro_sq_mi|}}}|{{{area_metro_km2|}}}|{{{subdivision_name|}}}}}</td>
</tr>
}}{{#if:{{{population_blank1|}}}|
<tr class="mergedrow">
<th> - {{{population_blank1_title|}}}{{{population_blank1_footnotes|}}}</th>
<td>{{formatnum:{{{population_blank1}}}}}</td>
</tr>
}}{{#if:{{infobox_settlement/checkauto|{{{population_density_blank1_sq_mi|}}}|{{{population_blank1|}}}|{{{area_blank1_sq_mi|}}}}}{{infobox_settlement/checkauto|{{{population_density_blank1_km2|}}}|{{{population_blank1|}}}|{{{area_blank1_km2|}}}}}|
<tr class="mergedrow">
<th> - Kepadatan {{{population_blank1_title|}}}</th>
<td>{{infobox_settlement/densdisp|{{{unit_pref|}}}|{{{population_density_blank1_sq_mi|}}}|{{{population_density_blank1_km2|}}}|{{{population_blank1|}}}|{{{area_blank1_sq_mi|}}}|{{{area_blank1_km2|}}}|{{{subdivision_name|}}}}}</td>
</tr>
}}{{#if:{{{population_blank2|}}}|
<tr class="mergedrow">
<th> - {{{population_blank2_title|}}}{{{population_blank2_footnotes|}}}</th>
<td>{{formatnum:{{{population_blank2}}}}}</td>
</tr>
}}{{#if:{{infobox_settlement/checkauto|{{{population_density_blank2_sq_mi|}}}|{{{population_blank2|}}}|{{{area_blank2_sq_mi|}}}}}{{infobox_settlement/checkauto|{{{population_density_blank2_km2|}}}|{{{population_blank2|}}}|{{{area_blank2_km2|}}}}}|
<tr class="mergedrow">
<th> - Kepadatan {{{population_blank2_title|}}}</th>
<td>{{infobox_settlement/densdisp|{{{unit_pref|}}}|{{{population_density_blank2_sq_mi|}}}|{{{population_density_blank2_km2|}}}|{{{population_blank2|}}}|{{{area_blank2_sq_mi|}}}|{{{area_blank2_km2|}}}|{{{subdivision_name|}}}}}</td>
</tr>
}}{{#if:{{{population_note|}}}|
<tr class="mergedrow">
<td> </td>
<td><small>{{{population_note}}}</small></td>
</tr>
}}{{#if:{{{population_demonym|}}}|
<tr class="mergedtoprow">
<td>'''[[Demonim]]'''</td>
<td>{{{population_demonym}}}</td>
</tr>
}}{{#if:{{{demographics_type1|}}}|
<tr class="mergedrow"><!-- ***Demographics 1*** -->
<td colspan="2">'''{{{demographics_type1}}}'''{{{demographics1_footnotes|}}}</td>
</tr>
{{#if:{{{demographics1_title1|}}}|
<tr class="mergedrow">
<th> - {{{demographics1_title1}}}</th>
<td>{{{demographics1_info1}}}</td>
</tr>
}}{{#if:{{{demographics1_title2|}}}|
<tr class="mergedrow">
<th> - {{{demographics1_title2}}}</th>
<td>{{{demographics1_info2}}}</td>
</tr>
}}{{#if:{{{demographics1_title3|}}}|
<tr class="mergedrow">
<th> - {{{demographics1_title3}}}</th>
<td>{{{demographics1_info3}}}</td>
</tr>
}}{{#if:{{{demographics1_title4|}}}|
<tr class="mergedrow">
<th> - {{{demographics1_title4}}}</th>
<td>{{{demographics1_info4}}}</td>
</tr>
}}{{#if:{{{demographics1_title5|}}}|
<tr class="mergedrow">
<th> - {{{demographics1_title5}}}</th>
<td>{{{demographics1_info5}}}</td>
</tr>
}}{{#if:{{{demographics_type2|}}}|
<tr class="mergedrow"><!-- ***Demographics 2*** -->
<td colspan="2">'''{{{demographics_type2}}}'''{{{demographics2_footnotes|}}}</td>
</tr>
{{#if:{{{demographics2_title1|}}}|
<tr class="mergedrow">
<th> - {{{demographics2_title1}}}</th>
<td>{{{demographics2_info1}}}</td>
</tr>
}}{{#if:{{{demographics2_title2|}}}|
<tr class="mergedrow">
<th> - {{{demographics2_title2}}}</th>
<td>{{{demographics2_info2}}}</td>
</tr>
}}{{#if:{{{demographics2_title3|}}}|
<tr class="mergedrow">
<th> - {{{demographics2_title3}}}</th>
<td>{{{demographics2_info3}}}</td>
</tr>
}}{{#if:{{{demographics2_title4|}}}|
<tr class="mergedrow">
<th> - {{{demographics2_title4}}}</th>
<td>{{{demographics2_info4}}}</td>
</tr>
}}{{#if:{{{demographics2_title5|}}}|
<tr class="mergedrow">
<th> - {{{demographics2_title5}}}</th>
<td>{{{demographics2_info5}}}</td>
</tr>
}} }}}}}}<!-- ***Kecamatan*** -->
{{#if:{{{kecamatan|}}}|
<tr class="mergedtoprow">
<th>Kecamatan</th>
<td>{{{kecamatan}}}</td>
</tr>
}}<!-- ***Kelurahan*** -->
{{#if:{{{kelurahan|}}}|
<tr class="mergedtoprow">
<th>Kelurahan</th>
<td>{{{kelurahan}}}</td>
</tr>
}}<!-- ***Desa*** -->
{{#if:{{{desa|}}}|
<tr class="mergedtoprow">
<th>Desa</th>
<td>{{{desa}}}</td>
</tr>
}}<!-- ***Time Zones*** -->
{{#if:{{{timezone1|{{{timezone|}}}}}}|
<tr class="mergedtoprow">
<th>[[Zona waktu]]</th>
<td>{{{timezone1|{{{timezone}}}}}} {{#if:{{{utc_offset1|{{{utc_offset|}}} }}}|([[UTC{{{utc_offset1|{{{utc_offset}}}}}}]])}}</td>{{#if:{{{timezone2|}}}|</tr>
<tr class="mergedrow">
<th> </th>
<td>{{{timezone2}}} {{#if:{{{utc_offset2|{{{utc_offset2|}}} }}}|([[UTC{{{utc_offset2|{{{utc_offset2}}}}}}]])}}</td>}}
</tr>
{{#if:{{{timezone1_DST|{{{timezone_DST|}}}}}}|
<tr class="mergedrow">
<th style="white-space:nowrap"> - Musim panas ([[Waktu Musim Panas|DST]])</th>
<td>{{{timezone1_DST|{{{timezone_DST|}}}}}} ([[UTC{{{utc_offset1_DST|{{{utc_offset_DST|}}}}}}]])</td>{{#if:{{{timezone2_DST|}}}|</tr>
<tr class="mergedbottomrow">
<th> </th>
<td>{{{timezone2_DST}}} ([[UTC{{{utc_offset2_DST}}}]])</td>}}
</tr>
}} }}<!-- ***Postal Code(s)*** -->
{{#if:{{{postal_code_type|}}}|
<tr class="mergedtoprow">
<th>{{{postal_code_type}}}</th>
<td class="adr"><span class="postal-code">{{{postal_code}}}</span></td>
</tr>
{{#if:{{{postal2_code_type|}}}|
<tr class="mergedbottomrow">
<th>{{{postal2_code_type}}}</th>
<td class="adr"><span class="postal-code">{{{postal2_code}}}</span></td>
</tr>
}} }}<!-- ***Area Code(s)*** -->
{{#if:{{{area_code|}}}|
<tr class="mergedrow">
<th>{{#if:{{{area_code_type|}}}|{{{area_code_type}}}|[[Kode telepon|Kode area telepon]]}}</th>
<td>{{{area_code}}}</td>
</tr>
}}<!-- ***Nomor Polisi (Pelat kendaraan) Indonesia*** -->
{{#if:{{{nomor_polisi|{{{tnkb|}}}}}}|
<tr class="mergedrow">
<th>[[Tanda nomor kendaraan bermotor|TNKB]]</th>
<td>{{{nomor_polisi|{{{tnkb}}}}}}</td>
</tr>
}}<!-- Geocode-->
{{#if:{{{geocode|}}}|
<tr class="mergedrow">
<th>[[Kode geo]]</th>
<td class="nickname">{{{geocode}}}</td>
</tr>
}}<!-- ISO Code-->
{{#if:{{{iso_code|}}}|
<tr class="mergedrow">
<th>[[ISO 3166|Kode ISO 3166]]</th>
<td class="nickname">{{{iso_code}}}</td>
</tr>
}}<!-- SNI Code-->
{{#if:{{{SNI_code|}}}|
<tr class="mergedrow">
<th>[[SNI|SNI 7657:2010]]</th>
<td class="nickname">{{{SNI_code}}}</td>
</tr>
}}<!-- Vehicle registration plate-->
{{#if:{{{registration_plate|}}}|
<tr class="mergedrow">
<th>[[Plat nomor|Plat registrasi kendaraan]]</th>
<td>{{{registration_plate}}}</td>
</tr>
}}<!-- Other code-->
{{#if:{{{other_code|}}}|
<tr class="mergedrow">
<th>{{{other_code_type}}}</th>
<td>{{{other_code}}}</td>
</tr>
}}<!-- ***Twin Cities*** -->
{{#if:{{{twin1|}}}|
<tr class="mergedtoprow">
<th colspan="2">[[Daftar kota kembar|Kota kembar]]</td>
</tr>
<tr class="mergedrow">
<th> - {{{twin1}}}</th>
<td>{{{twin1_country}}}</td>
</tr>
{{#if:{{{twin2|}}}|
<tr class="mergedrow">
<th> - {{{twin2}}}</th>
<td>{{{twin2_country}}}</td>
</tr>
}}{{#if:{{{twin3|}}}|
<tr class="mergedrow">
<th> - {{{twin3}}}</th>
<td>{{{twin3_country}}}</td>
</tr>
}}{{#if:{{{twin4|}}}|
<tr class="mergedrow">
<th> - {{{twin4}}}</th>
<td>{{{twin4_country}}}</td>
</tr>
}}{{#if:{{{twin5|}}}|
<tr class="mergedrow">
<th> - {{{twin5}}}</th>
<td>{{{twin5_country}}}</td>
</tr>
}}{{#if:{{{twin6|}}}|
<tr class="mergedrow">
<th> - {{{twin6}}}</th>
<td>{{{twin6_country}}}</td>
</tr>
}}{{#if:{{{twin7|}}}|
<tr class="mergedrow">
<th> - {{{twin7}}}</th>
<td>{{{twin7_country}}}</td>
</tr>
}}{{#if:{{{twin8|}}}|
<tr class="mergedrow">
<th> - {{{twin8}}}</th>
<td>{{{twin8_country}}}</td>
</tr>
}}{{#if:{{{twin9|}}}|
<tr class="mergedrow">
<th> - {{{twin9}}}</th>
<td>{{{twin9_country}}}</td>
</tr>
}}}}<!-- ***Blank Fields (two sections)*** -->
{{#if:{{{blank_name_sec1|{{{blank_name|}}}}}}|
<tr class="mergedtoprow">
<th>{{{blank_name_sec1|{{{blank_name|}}}}}}</th>
<td>{{{blank_info_sec1|{{{blank_info|}}}}}}</td>
</tr>}}
{{#if:{{{blank1_name_sec1|{{{blank1_name|}}}}}}|
<tr class="mergedrow">
<th>{{{blank1_name_sec1|{{{blank1_name|}}}}}}</th>
<td>{{{blank1_info_sec1|{{{blank1_info|}}}}}}</td>
</tr>}}
{{#if:{{{blank2_name_sec1|{{{blank2_name|}}}}}}|
<tr class="mergedrow">
<th>{{{blank2_name_sec1|{{{blank2_name|}}}}}}</th>
<td>{{{blank2_info_sec1|{{{blank2_info|}}}}}}</td>
</tr>}}
{{#if:{{{blank3_name_sec1|{{{blank3_name|}}}}}}|
<tr class="mergedrow">
<th>{{{blank3_name_sec1|{{{blank3_name}}}}}}</th>
<td>{{{blank3_info_sec1|{{{blank3_info}}}}}}</td>
</tr>}}
{{#if:{{{blank4_name_sec1|{{{blank4_name|}}}}}}|
<tr class="mergedrow">
<th>{{{blank4_name_sec1|{{{blank4_name|}}}}}}</th>
<td>{{{blank4_info_sec1|{{{blank4_info|}}}}}}</td>
</tr>}}
{{#if:{{{blank5_name_sec1|{{{blank5_name|}}}}}}|
<tr class="mergedrow">
<th>{{{blank5_name_sec1|{{{blank5_name|}}}}}}</th>
<td>{{{blank5_info_sec1|{{{blank5_info|}}}}}}</td>
</tr>}}
{{#if:{{{blank6_name_sec1|{{{blank6_name|}}}}}}|
<tr class="mergedrow">
<th>{{{blank6_name_sec1|{{{blank6_name|}}}}}}</th>
<td>{{{blank6_info_sec1|{{{blank6_info|}}}}}}</td>
</tr>}}
{{#if:{{{blank7_name_sec1|{{{blank7_name|}}}}}}|
<tr class="mergedrow">
<th>{{{blank7_name_sec1|{{{blank7_name|}}}}}}</th>
<td>{{{blank7_info_sec1|{{{blank7_info|}}}}}}</td>
</tr>}}
{{#if:{{{blank_name_sec2|}}}|
<tr class="mergedtoprow">
<th>{{{blank_name_sec2}}}</th>
<td>{{{blank_info_sec2|}}}</td>
</tr>}}
{{#if:{{{blank1_name_sec2|}}}|
<tr class="mergedrow">
<th>{{{blank1_name_sec2}}}</th>
<td>{{{blank1_info_sec2|}}}</td>
</tr>}}
{{#if:{{{blank2_name_sec2|}}}|
<tr class="mergedrow">
<th>{{{blank2_name_sec2}}}</th>
<td>{{{blank2_info_sec2|}}}</td>
</tr>}}
{{#if:{{{blank3_name_sec2|}}}|
<tr class="mergedrow">
<th>{{{blank3_name_sec2}}}</th>
<td>{{{blank3_info_sec2|}}}</td>
</tr>}}
{{#if:{{{blank4_name_sec2|}}}|
<tr class="mergedrow">
<th>{{{blank4_name_sec2}}}</th>
<td>{{{blank4_info_sec2|}}}</td>
</tr>}}
{{#if:{{{blank5_name_sec2|}}}|
<tr class="mergedrow">
<th>{{{blank5_name_sec2}}}</th>
<td>{{{blank5_info_sec2|}}}</td>
</tr>}}
{{#if:{{{blank6_name_sec2|}}}|
<tr class="mergedrow">
<th>{{{blank6_name_sec2}}}</th>
<td>{{{blank6_info_sec2|}}}</td>
</tr>}}
{{#if:{{{blank7_name_sec2|}}}|
<tr class="mergedrow">
<th>{{{blank7_name_sec2}}}</th>
<td>{{{blank7_info_sec2|}}}</td>
</tr>
}}<!-- ***Website*** -->
{{#if:{{{website|}}}|
<tr class="mergedtoprow">
<th>Situs web</th>
<td>{{{website}}}</td>
</tr>
}}<!-- ***Footnotes*** -->
{{#if:{{{footnotes|}}}|
<tr class="mergedtoprow">
<td colspan="2" style="text-align:left; font-size:smaller">{{{footnotes}}}</td>
</tr>
}}
</table><!--For deprecated parameter names--><includeonly>{{#if:{{{coor_type|}}}{{{city_logo|}}}{{{area_total|}}}{{{area_land|}}}{{{area_water|}}}{{{TotalArea_sq_mi|}}}{{{LandArea_sq_mi|}}} {{{WaterArea_sq_mi|}}}{{{area_urban|}}}{{{UrbanArea_sq_mi|}}}{{{area_metro|}}}{{{MetroArea_sq_mi|}}} {{{elevation|}}}{{{population_density|}}}{{{population_density_mi2|}}} {{{population_density_metro_mi2|}}} {{{population_density_urban_mi2|}}}|[[Kategori:Artikel permukiman yang membutuhkan perawatan]]}}{{#ifeq:{{NAMESPACE}}||{{#ifeq:{{{subdivision_name}}}|Amerika Serikat|{{#if:{{{latd|}}}|<!--[[Kategori:Perawatan Infobox Settlement US]]-->|<!--[[Kategori:Perawatan Infobox US]]-->}}|}}{{#ifeq:{{{subdivision_name}}}|[[Amerika Serikat]]|{{#if:{{{latd|}}}|<!--[[Kategori:Perawatan Infobox Settlement US]]-->|<!--[[Kategori:Perawatan Infobox US]]-->}}|}}}}{{#switch:{{{coordinates_region|}}}|CA-X|US-X|IN-X=[[Kategori:Infobox settlement yang menggunakan kode wilayah tidak sah]]}}
<noinclude>
{{dok}}
{{INTERWIKI|Q20895860}}
</noinclude>
5tzwv7opdwnvjkkckt59vcxqxj7t49m
Templat:Infobox settlement/doc
10
227
832
831
2024-12-03T13:51:58Z
Jon Harald Søby
20
4 revisi diimpor
831
wikitext
text/x-wiki
<!-- TAMBAHKAN KATEGORI DAN PRANALA ANTARBAHASA DI BAGIAN PALING BAWAH HALAMAN INI -->
{{#ifeq:{{FULLPAGENAME}}|Template:Infobox settlement|{{high-risk| 495883 |info=}}}}
== Penggunaan ==
<pre style="overflow: auto">
{{Infobox settlement
<!-- See Template:Infobox settlement for additional fields and descriptions -->
| name = <!-- at least one of the first two fields must be filled in -->
| official_name =
| native_name = <!-- if different from the English name -->
| native_name_lang = <!-- ISO 639-2 code e.g. "fr" for French. If more than one, use {{lang}} instead -->
| other_name =
| settlement_type = <!-- such as Town, Village, City, Borough etc. -->
<!-- transliteration(s) -------->
| translit_lang1 =
| translit_lang1_type =
| translit_lang1_info =
| translit_lang1_type1 =
| translit_lang1_info1 =
| translit_lang1_type2 =
| translit_lang1_info2 = <!-- etc., up to translit_lang1_type6 / translit_lang1_info6 -->
| translit_lang2 =
| translit_lang2_type =
| translit_lang2_info =
| translit_lang2_type1 =
| translit_lang2_info1 =
| translit_lang2_type2 =
| translit_lang2_info2 =
| translit_lang2_info2 = <!-- etc., up to translit_lang2_type6 / translit_lang2_info6 -->
<!-- images, nickname, motto --->
| image_skyline =
| imagesize =
| image_alt =
| image_caption =
| image = <!-- other image (specify File: or Image: namespace) -->
| image_flag =
| emblem =
| emblem_type =
| emblem_size =
| flag_size =
| flag_alt =
| flag_link =
| image_seal =
| seal_size =
| seal_alt =
| seal_link =
| image_shield =
| shield_size =
| shield_alt =
| shield_link =
| image_blank_emblem =
| blank_emblem_type = <!-- defaults to Logo -->
| blank_emblem_size =
| blank_emblem_alt =
| blank_emblem_link =
| nickname =
| motto =
| anthem =
<!-- maps and coordinates ------>
| image_map =
| mapsize =
| map_alt =
| map_caption =
| image_map1 =
| mapsize1 =
| map_alt1 =
| map_caption1 =
| image_dot_map =
| dot_mapsize =
| dot_map_base_alt =
| dot_map_alt =
| dot_map_caption =
| dot_x = |dot_y =
| pushpin_map = <!-- name of a location map as per Template:Location_map -->
| pushpin_label_position = <!-- position of the pushpin label: left, right, top, bottom, none -->
| pushpin_label = <!-- only necessary if "name" or "official_name" are too long -->
| pushpin_map_alt =
| pushpin_mapsize =
| pushpin_map_caption =
| pushpin_map1 =
| pushpin_label_position1 =
| pushpin_label1 = <!-- only necessary if "name" or "official_name" are too long -->
| pushpin_map_alt1 =
| pushpin_mapsize1 =
| pushpin_map_caption1 =
| latd = |latm = |lats = |latNS =
| longd = |longm = |longs = |longEW =
| coor_pinpoint = <!-- to specify exact location of coordinates (was coor_type) -->
| coordinates_region = <!-- ISO 3166-1 alpha-2 or ISO 3166-2 code for country/region containing the coordinates -->
| coordinates_type = <!-- parameter list passed to Coord template, overrides coordinates_region -->
| coordinates_display = inline,title
| coordinates_format = dms
| coordinates_footnotes = <!-- for references: use <ref> tags -->
<!-- location ------------------>
| subdivision_type = <!--[[List of sovereign states|Country]]-->
| subdivision_name = <!-- the name of the country -->
| subdivision_type1 =
| subdivision_name1 =
| subdivision_type2 =
| subdivision_name2 = <!-- etc., subdivision_type6 / subdivision_name6 -->
<!-- established --------------->
| established_title = <!-- Settled -->
| established_date =
| established_title1 = <!-- Incorporated (town) -->
| established_date1 =
| established_title2 = <!-- Incorporated (city) -->
| established_date2 =
| established_title3 =
| established_date3 =
| extinct_title =
| extinct_date =
| founder =
| named_for =
<!-- seat, smaller parts ------->
| seat_type = <!-- defaults to: Seat -->
| seat =
| parts_type = <!-- defaults to: Boroughs -->
| parts_style = <!-- list, coll (collapsed list), para (paragraph format) -->
| parts = <!-- parts text, or header for parts list -->
| p1 =
| p2 = <!-- etc., up to p50: for separate parts to be listed-->
<!-- government type, leaders -->
| government_footnotes = <!-- for references: use <ref> tags -->
| government_type =
| governing_body =
| leader_party =
| leader_title =
| leader_name = <!-- add &nbsp; (no-break space) to disable automatic links -->
| leader_title1 =
| leader_name1 = <!-- etc., up to leader_title4 / leader_name4 -->
<!-- display settings --------->
| total_type = <!-- to set a non-standard label for total area and population rows -->
| unit_pref = <!-- enter: Imperial, to display imperial before metric -->
<!-- area ---------------------->
| area_footnotes = <!-- for references: use <ref> tags -->
| area_magnitude = <!-- use only to set a special wikilink -->
| area_total_km2 = <!-- ALL fields with measurements have automatic unit conversion -->
| area_total_sq_mi = <!-- see table @ Template:Infobox settlement for details -->
| area_total_dunam = <!-- used in Middle East articles only -->
| area_land_km2 =
| area_land_sq_mi =
| area_water_km2 =
| area_water_sq_mi =
| area_water_percent =
| area_urban_footnotes = <!-- for references: use <ref> tags -->
| area_urban_km2 =
| area_urban_sq_mi =
| area_rural_footnotes = <!-- for references: use <ref> tags -->
| area_rural_km2 =
| area_rural_sq_mi =
| area_metro_footnotes = <!-- for references: use <ref> tags -->
| area_metro_km2 =
| area_metro_sq_mi =
| area_rank =
| area_blank1_title =
| area_blank1_km2 =
| area_blank1_sq_mi =
| area_blank2_title =
| area_blank2_km2 =
| area_blank2_sq_mi =
| area_note =
<!-- elevation ----------------->
| elevation_footnotes = <!-- for references: use <ref> tags -->
| elevation_m =
| elevation_ft =
| elevation_max_footnotes = <!-- for references: use <ref> tags -->
| elevation_max_m =
| elevation_max_ft =
| elevation_min_footnotes = <!-- for references: use <ref> tags -->
| elevation_min_m =
| elevation_min_ft =
<!-- population ---------------->
| population_footnotes = <!-- for references: use <ref> tags -->
| population_total =
| population_as_of =
| population_rank =
| population_density_km2 = <!-- for automatic calculation of any density field, use: auto -->
| population_density_sq_mi=
| population_est =
| pop_est_as_of =
| population_urban =
| population_density_urban_km2 =
| population_density_urban_sq_mi =
| population_rural =
| population_density_rural_km2 =
| population_density_rural_sq_mi =
| population_metro =
| population_density_metro_km2 =
| population_density_metro_sq_mi =
| population_density =
| population_density_rank =
| population_blank1_title =
| population_blank1 =
| population_density_blank1_km2 =
| population_density_blank1_sq_mi=
| population_blank2_title =
| population_blank2 =
| population_density_blank2_km2 =
| population_density_blank2_sq_mi=
| population_demonym = <!-- demonym, ie. Liverpudlian for someone from Liverpool -->
| population_note =
<!-- demographics (section 1) -->
| demographics_type1 =
| demographics1_footnotes = <!-- for references: use <ref> tags -->
| demographics1_title1 =
| demographics1_info1 = <!-- etc., up to demographics1_title5 / demographics1_info5 -->
<!-- demographics (section 2) -->
| demographics_type2 =
| demographics2_footnotes = <!-- for references: use <ref> tags -->
| demographics2_title1 =
| demographics2_info1 = <!-- etc., up to demographics2_title5 / demographics2_info5 -->
<!-- time zone(s) -------------->
| timezone1 =
| utc_offset1 =
| timezone1_DST =
| utc_offset1_DST =
| timezone2 =
| utc_offset2 =
| timezone2_DST =
| utc_offset2_DST =
<!-- postal codes, area code --->
| postal_code_type = <!-- enter ZIP code, Postcode, Post code, Postal code... -->
| postal_code =
| postal2_code_type = <!-- enter ZIP code, Postcode, Post code, Postal code... -->
| postal2_code =
| area_code_type = <!-- defaults to: Area code(s) -->
| area_code =
| geocode =
| iso_code =
| registration_plate =
<!-- twin cities --------------->
| twin1 =
| twin1_country =
| twin2 =
| twin2_country = <!-- etc., up to twin9 / twin9_country -->
<!-- blank fields (section 1) -->
| blank_name_sec1 =
| blank_info_sec1 =
| blank1_name_sec1 =
| blank1_info_sec1 =
| blank2_name_sec1 =
| blank2_info_sec1 = <!-- etc., up to blank7_name_sec1 / blank7_info_sec1 -->
<!-- blank fields (section 2) -->
| blank_name_sec2 =
| blank_info_sec2 =
| blank1_name_sec2 =
| blank1_info_sec2 =
| blank2_name_sec2 =
| blank2_info_sec2 = <!-- etc., up to blank7_name_sec2 / blank7_info_sec2 -->
<!-- website, footnotes -------->
| website = <!-- {{URL|example.com}} -->
| footnotes =
}}
</pre>
== Contoh ==
<!--NOTE: This differs from the actual Chicago infobox in order to provide examples.-->
{{Infobox settlement
| name = Chicago
| settlement_type = [[Kota]]
| image_skyline = Chicago montage.jpg
| imagesize = 275px <!--default is 250px-->
| image_caption = Searah jarum jam: [[Downtown Chicago]], [[Chicago Theatre]], [[Chicago 'L']], [[Navy Pier]], [[Millennium Park]], [[Field Museum]], dan [[Willis Tower]]
| image_flag = Flag of Chicago, Illinois.svg
| image_seal = Seal of Chicago, Illinois.svg
| nickname = [[Asal usul nama "Windy City"|The Windy City]], The Second City, Chi-Town, Chi-City, Hog Butcher for the World, City of the Big Shoulders, The City That Works, dan lain-lain
| motto = {{Lang-la|Urbs in Horto}} (''City in a Garden''), Make Big Plans (Make No Small Plans), I Will
| image_map = US-IL-Chicago.png
| map_caption = Lokasi di [[wilayah metropolitan Chicago]] dan Illinois
| pushpin_map = USA2
| pushpin_map_caption = Lokasi di Amerika Serikat
| latd = 41 | latm = 50 | lats = 15 | latNS = N
| longd = 87 | longm = 40 | longs = 55 | longEW = W
| coordinates_region = <!-- US-IL (not required, determined by infobox) -->
| coordinates_display = <!-- yes (any value to also display in title area -->
| coordinates_footnotes = <ref name="USCB Gazetteer 2010"/>
| subdivision_type = [[Daftar negara|Negara]]
| subdivision_name = [[Amerika Serikat]]
| subdivision_type1 = [[Negara bagian A.S|Negara bagian]]
| subdivision_name1 = [[Illinois]]
| subdivision_type2 = [[Daftar county di Illinois|County]]
| subdivision_name2 = [[Cook County, Illinois|Cook]], [[DuPage County, Illinois|DuPage]]
| established_title = Dihuni
| established_date = 1770-an
| established_title2 = [[Penggabungan munisipal|Ditetapkan]]
| established_date2 = 4 Maret 1837
| founder =
| named_for = {{Lang-mia|shikaakwa}}<br /> ("Bawang putih liar")
| government_type = [[Pemerintahan wali kota–dewan|Wali kota–dewan]]
| leader_title = [[Wali kota Chicago|Wali kota]]
| leader_name = [[Rahm Emanuel]] ([[Partai Demokrat (Amerika Serikat)|D]])
| leader_title1 = [[Dewan kota|Dewan]]
| leader_name1 = [[Chicago City Council]]
| unit_pref = Imperial
| area_footnotes = <ref name="USCB Gazetteer 2010">{{Cite web | url = http://www.census.gov/geo/www/gazetteer/files/Gaz_places_national.txt | title = 2010 United States Census Gazetteer for Places: January 1, 2010 | format = text | work = 2010 United States Census | publisher = [[United States Census Bureau]] | date = April 2010 | accessdate = August 1, 2012}}</ref>
| area_magnitude = 1 E+8
| area_total_sq_mi = 234.114
| area_land_sq_mi = 227.635
| area_water_sq_mi = 6.479
| area_water_percent = 3
| area_urban_sq_mi = 2123
| area_metro_sq_mi = 10874
| elevation_footnotes = <ref name="GNIS"/>
| elevation_ft = 594
| elevation_m = 181
| population_footnotes = <ref name="USCB PopEstCities 2011">{{Cite web | url = http://www.census.gov/popest/data/cities/totals/2011/tables/SUB-EST2011-01.csv | title = Annual Estimates of the Resident Population for Incorporated Places Over 50,000, Ranked by July 1, 2011 Population | format = [[comma-separated values|CSV]] | work = 2011 Population Estimates | publisher = [[United States Census Bureau]], Population Division | date = June 2012 | accessdate = August 1, 2012}}</ref><ref name="USCB Metro 2010">{{Cite web | url=http://www.census.gov/prod/cen2010/briefs/c2010br-01.pdf | title = Population Change for the Ten Most Populous and Fastest Growing Metropolitan Statiscal Areas: 2000 to 2010 | date = March 2011 | publisher = [[U.S. Census Bureau]] | page = 6 |accessdate = April 12, 2011}}</ref>
| population_as_of = [[Sensus Amerika Serikat 2010|2010]]
| population_total = 2.695.598
| pop_est_as_of = 2011
| population_est = 2.707.120
| population_rank = [[Daftar kota di Amerika Serikat menurut jumlah penduduk|ke-3 di AS]]
| population_density_sq_mi = 11.892,4<!-- 2011 population_est / area_land_sq_mi -->
| population_urban = 8711000
| population_density_urban_sq_mi = auto
| population_metro = 9461105
| population_density_metro_sq_mi = auto
| population_demonym = Chicagoan
| timezone = [[Waktu Standar Tengah|CST]]
| utc_offset = −06:00
| timezone_DST = [[Waktu Musim Panas Tengah|CDT]]
| utc_offset_DST = −05:00
| area_code_type = [[North American Numbering Plan|Kode wilayah]]
| area_code = [[Kode wilayah 312|312]], [[Kode wilayah 773|773]], [[Kode wilayah 872|872]]
| website = {{URL|www.cityofchicago.org}}
| footnotes = <ref name="GNIS">{{Cite GNIS|428803|City of Chicago|April 12, 2011}}</ref>
}}
<pre style="overflow:auto;">
<!--NOTE: This differs from the actual Chicago infobox in order to provide examples.-->
{{Infobox settlement
| name = Chicago
| settlement_type = [[Kota]]
| image_skyline = Chicago montage.jpg
| imagesize = 275px <!--default is 250px-->
| image_caption = Searah jarum jam: [[Downtown Chicago]], [[Chicago Theatre]], [[Chicago 'L']], [[Navy Pier]], [[Millennium Park]], [[Field Museum]], dan [[Willis Tower]]
| image_flag = Flag of Chicago, Illinois.svg
| image_seal = Seal of Chicago, Illinois.svg
| nickname = [[Asal usul nama "Windy City"|The Windy City]], The Second City, Chi-Town, Chi-City, Hog Butcher for the World, City of the Big Shoulders, The City That Works, dan lain-lain
| motto = {{Lang-la|Urbs in Horto}} (''City in a Garden''), Make Big Plans (Make No Small Plans), I Will
| image_map = US-IL-Chicago.png
| map_caption = Lokasi di [[wilayah metropolitan Chicago]] dan Illinois
| pushpin_map = USA2
| pushpin_map_caption = Lokasi di Amerika Serikat
| latd = 41 | latm = 50 | lats = 15 | latNS = N
| longd = 87 | longm = 40 | longs = 55 | longEW = W
| coordinates_region = <!-- US-IL (not required, determined by infobox) -->
| coordinates_display = <!-- yes (any value to also display in title area -->
| coordinates_footnotes = <ref name="USCB Gazetteer 2010"/>
| subdivision_type = [[Daftar negara|Negara]]
| subdivision_name = [[Amerika Serikat]]
| subdivision_type1 = [[Negara bagian A.S|Negara bagian]]
| subdivision_name1 = [[Illinois]]
| subdivision_type2 = [[Daftar county di Illinois|County]]
| subdivision_name2 = [[Cook County, Illinois|Cook]], [[DuPage County, Illinois|DuPage]]
| established_title = Dihuni
| established_date = 1770-an
| established_title2 = [[Penggabungan munisipal|Ditetapkan]]
| established_date2 = 4 Maret 1837
| founder =
| named_for = {{Lang-mia|shikaakwa}}<br /> ("Bawang putih liar")
| government_type = [[Pemerintahan wali kota–dewan|Wali kota–dewan]]
| leader_title = [[Wali kota Chicago|Wali kota]]
| leader_name = [[Rahm Emanuel]] ([[Partai Demokrat (Amerika Serikat)|D]])
| leader_title1 = [[Dewan kota|Dewan]]
| leader_name1 = [[Chicago City Council]]
| unit_pref = Imperial
| area_footnotes = <ref name="USCB Gazetteer 2010">{{Cite web | url = http://www.census.gov/geo/www/gazetteer/files/Gaz_places_national.txt | title = 2010 United States Census Gazetteer for Places: January 1, 2010 | format = text | work = 2010 United States Census | publisher = [[United States Census Bureau]] | date = April 2010 | accessdate = August 1, 2012}}</ref>
| area_magnitude = 1 E+8
| area_total_sq_mi = 234.114
| area_land_sq_mi = 227.635
| area_water_sq_mi = 6.479
| area_water_percent = 3
| area_urban_sq_mi = 2123
| area_metro_sq_mi = 10874
| elevation_footnotes = <ref name="GNIS"/>
| elevation_ft = 594
| elevation_m = 181
| population_footnotes = <ref name="USCB PopEstCities 2011">{{Cite web | url = http://www.census.gov/popest/data/cities/totals/2011/tables/SUB-EST2011-01.csv | title = Annual Estimates of the Resident Population for Incorporated Places Over 50,000, Ranked by July 1, 2011 Population | format = [[comma-separated values|CSV]] | work = 2011 Population Estimates | publisher = [[United States Census Bureau]], Population Division | date = June 2012 | accessdate = August 1, 2012}}</ref><ref name="USCB Metro 2010">{{Cite web | url=http://www.census.gov/prod/cen2010/briefs/c2010br-01.pdf | title = Population Change for the Ten Most Populous and Fastest Growing Metropolitan Statiscal Areas: 2000 to 2010 | date = March 2011 | publisher = [[U.S. Census Bureau]] | page = 6 |accessdate = April 12, 2011}}</ref>
| population_as_of = [[Sensus Amerika Serikat 2010|2010]]
| population_total = 2.695.598
| pop_est_as_of = 2011
| population_est = 2.707.120
| population_rank = [[Daftar kota di Amerika Serikat menurut jumlah penduduk|ke-3 di AS]]
| population_density_sq_mi = 11.892,4<!-- 2011 population_est / area_land_sq_mi -->
| population_urban = 8711000
| population_density_urban_sq_mi = auto
| population_metro = 9461105
| population_density_metro_sq_mi = auto
| population_demonym = Chicagoan
| timezone = [[Waktu Standar Tengah|CST]]
| utc_offset = −06:00
| timezone_DST = [[Waktu Musim Panas Tengah|CDT]]
| utc_offset_DST = −05:00
| area_code_type = [[North American Numbering Plan|Kode wilayah]]
| area_code = [[Kode wilayah 312|312]], [[Kode wilayah 773|773]], [[Kode wilayah 872|872]]
| website = {{URL|www.cityofchicago.org}}
| footnotes = <ref name="GNIS">{{Cite GNIS|428803|City of Chicago|April 12, 2011}}</ref>
}}
</pre>
=== Referensi ===
{{Clear}}
== sea also ==
<includeonly>
<!-- KATEGORI DAN PRANALA ANTARBAHASA DILETAKKAN DI SINI -->
[[Kategori:Templat kotak info wilayah]]
<!-- Add interwikis below-->
[[am:መለጠፊያ:የቦታ መረጃ]]
[[ar:قالب:Infobox Settlement]]
[[ast:Plantía:Ciudá]]
[[az:Şablon:Şəhər]]
[[bg:Шаблон:Селище]]
[[bn:টেমপ্লেট:Infobox Department of France]]
[[ca:Plantilla:Infotaula de municipi]]
[[da:Skabelon:Infoboks bebyggelse]]
[[dsb:Pśedłoga:Infokašćik Město]]
[[en:Template:Infobox settlement]]
[[es:Plantilla:Ficha de entidad subnacional]]
[[et:Mall:Linn]]
[[fa:الگو:جعبه حوزه فرانسه]]
[[gd:Teamplaid:Baile]]
[[gl:Modelo:Primeira entidade subestatal]]
[[hr:Predložak:Infookvir naselje]]
[[hsb:Předłoha:Město]]
[[hu:Sablon:Település infobox]]
[[hy:Կաղապար:Տեղեկաքարտ Բնակավայր]]
[[ia:Patrono:Infobox Settlement]]
[[it:Template:Divisione amministrativa]]
[[ka:თარგი:ინფოდაფა საფრანგეთის დეპარტამენტი]]
[[kk:Үлгі:Франция департаменті]]
[[ko:틀:도시 정보]]
[[lv:Veidne:Infobox Settlement]]
[[ml:ഫലകം:Infobox settlement]]
[[mr:साचा:माहितीचौकट शहर]]
[[ms:Templat:Infobox settlement]]
[[no:Mal:Infoboks geografi]]
[[os:Хуызæг:НП]]
[[pam:Template:Infobox Department of France]]
[[pdc:Moddel:Infobox Ort]]
[[pt:Predefinição:Info/Assentamento]]
[[ro:Format:Infocaseta Așezare]]
[[si:සැකිල්ල:තොරතුරුකොටුව ජනාවාසය]]
[[simple:Template:Infobox City]]
[[sq:Stampa:Infobox vendbanim]]
[[szl:Muster:Mjasto infobox]]
[[th:แม่แบบ:กล่องข้อมูล จังหวัดของฝรั่งเศส]]
[[tpi:Templet:Infobokis Setelmen]]
[[tr:Şablon:Yerleşim bilgi kutusu]]
[[ur:سانچہ:Infobox settlement]]
</includeonly>
nv168qve4bczhjmgarsqonro295xmno
Templat:Internet
10
228
834
833
2024-12-03T13:51:58Z
Jon Harald Søby
20
1 revisi diimpor
833
wikitext
text/x-wiki
Internet [[Berkas:Internet-icon.svg|25px|link=]]<noinclude>[[Kategori:Templat AIGA]]</noinclude>
6gkgrl0caymyppwczm7771w0wroebzm
Templat:Interwiki
10
229
841
840
2024-12-03T13:51:58Z
Jon Harald Søby
20
6 revisi diimpor
840
wikitext
text/x-wiki
{| style="background-color: #FFFFFF; border: medium ridge #5e7692; border-collapse: collapse;" align="center" cell-padding="4px"
|-
| colspan="6" style="text-align:center;background-color:#CAD2FF" | Akun-akun [[foundation:Home|Wikimedia]] milik '''{{BASEPAGENAME}}'''':
|- align="center"
| style=" padding: 4px 8px;" | [[Berkas:Commons-logo.svg|56px|link=:Commons:User:{{BASEPAGENAME}}]]
| style=" padding: 4px 8px;" | [[Berkas:Wikipedia-logo.svg|56px|link=W:id:User:{{BASEPAGENAME}}]]
| style=" padding: 4px 8px;" | [[Berkas:Wiktionary-logo-v2.svg|56px|link=Wiktionary:id:User:{{BASEPAGENAME}}]]
| style=" padding: 4px 8px;" | [[Berkas:Wikibooks-logo.svg|56px|link=B:id:User:{{BASEPAGENAME}}]]
| style=" padding: 4px 8px;" | [[Berkas:Wikinews-logo.svg|56px|link=n:id:User:{{BASEPAGENAME}}]]
| style=" padding: 4px 8px;" | [[Berkas:Wikivoyage-Logo-v3-icon.svg|56px|link=]]
|- style="text-align:center;background-color:#CAD2FF;font-size:small;"
| style=" padding: 4px 8px;" | [[:Commons:User:{{BASEPAGENAME}}|Commons]]
| style=" padding: 4px 8px;" | [[W:id:User:{{BASEPAGENAME}}|Wikipedia]]
| style=" padding: 4px 8px;" | [[Wiktionary:id:User:{{BASEPAGENAME}}|Wikikamus]]
| style=" padding: 4px 8px;" | [[B:id:User:{{BASEPAGENAME}}|Wikibuku]]
| style=" padding: 4px 8px;" | [[n:id:User:{{BASEPAGENAME}}|Wikiberita]]
| style=" padding: 4px 8px;" | '''Wikiwisata'''
|- style="text-align:center; padding: 4px 8px;"
| style=" padding: 4px 8px;" | [[Berkas:Wikisource-logo.svg|56px|link=Wikisource:id:User:{{BASEPAGENAME}}]]
| style=" padding: 4px 8px;" | [[Berkas:Wikiquote-logo.svg|56px|link=Q:id:User:{{BASEPAGENAME}}]]
| style=" padding: 4px 8px;" | [[Berkas:Wikiversity-logo.svg|56px|link=v:id:User:{{BASEPAGENAME}}]]
| style=" padding: 4px 8px;" | [[Berkas:Wikispecies-logo.svg|56px|link=Wikispecies:User:{{BASEPAGENAME}}]]
| style=" padding: 4px 8px;" | [[Berkas:Wikimedia-logo-meta.svg|56px|link=Meta:User:{{BASEPAGENAME}}]]
| style=" padding: 4px 8px;" | [[Berkas:Wikimedia logo text grayscale.svg|56px|link=Foundation:User:{{BASEPAGENAME}}]]
|- style="text-align:center;background-color:#CAD2FF;font-size:small;"
| style=" padding: 4px 8px;" | [[Wikisource:id:User:{{BASEPAGENAME}}|Wikisumber]]
| style=" padding: 4px 8px;" | [[Q:id:User:{{BASEPAGENAME}}|Wikikutip]]
| style=" padding: 4px 8px;" | [[v:id:User:{{BASEPAGENAME}}|Wikiversitas]]
| style=" padding: 4px 8px;" | [[Wikispecies:User:{{BASEPAGENAME}}|Wikispesies]]
| style=" padding: 4px 8px;" | [[Meta:User:{{BASEPAGENAME}}|Meta]]
| style=" padding: 4px 8px;" | [[Foundation:User:{{BASEPAGENAME}}|Foundation]]
|}<noinclude>
{{Documentation}}
{{INTERWIKI|Q15664772}}
</noinclude>
gjf8bukgzv1ljs09mizhm1fq8r917ib
Templat:Interwiki/doc
10
230
845
844
2024-12-03T13:51:58Z
Jon Harald Søby
20
3 revisi diimpor
844
wikitext
text/x-wiki
{{documentation subpage}}
<templatedata>
{
"params": {},
"description": "Menampilkan tabel dengan tautan menuju halaman pengguna Wikiwisata pada proyek saudari Yayasan Wikimedia lainnya",
"format": "inline"
}
</templatedata>
<includeonly>
[[Kategori:Templat ruang nama pengguna]]
</includeonly>
4blo9j4hqlqkywq5td7bmbpmg754ost
Templat:Introkopi
10
231
849
848
2024-12-03T13:51:58Z
Jon Harald Søby
20
3 revisi diimpor
848
wikitext
text/x-wiki
{| style="padding: 5px; border: 1px solid #999; background:#fcfcfc; {{Border-radius|5px}}"
|-
|
<big>'''Selamat datang di Warung Kopi!'''</big>
[[Berkas:Warung Kopi.jpg|180px|left|Warung kopi]]
[[Berkas:Nuvola apps kteatime.png|right|55px]]
Ini adalah kumpulan dari halaman-halaman yang digunakan untuk membicarakan masalah kebijakan, teknis, bahasa, dan operasi dari '''[[w:id:Wikivoyage|Wikiwisata Bahasa Indonesia]]'''. Untuk mengungkapkan segala komentar, saran, dan ''uneg-uneg'' sehubungan dengan Wikiwisata, Anda dapat mengunjungi halaman ini. Untuk masalah yang lebih pelik, Anda dapat menghubungi para '''[[Wikiwisata:Pengurus|pengurus Wikiwisata]]''' secara langsung.
Jangan lupa '''memberikan tanda tangan dan tanggal''' pada akhir pesan Anda (dengan cara mengetikkan <nowiki>~~~~</nowiki> atau mengklik tombol "''tanda tangan''" di ''toolbar penyuntingan'').
''Hi! Welcome to Indonesian Wikivoyage's Village Pump. You don't speak Indonesian? You can visit our [[/Kedutaan|Embassy]] page and leave a note!''
|}
<noinclude>
[[Kategori:Templat]]
{{INTERWIKI|Q13518362}}
</noinclude>
5eddtd6igqdedi5vc7w1x9qehseagnx
Templat:IsPartOf
10
232
2528
859
2024-12-03T14:16:00Z
Jon Harald Søby
20
3 revisi diimpor
858
wikitext
text/x-wiki
<includeonly>{{#if:{{{1}}} |{{#isin:{{{1}}}}}
{{#ifexist:Category:{{{1}}}|[[Kategori:{{{1}}}]]|[[Berkas:Categorisation-hierarchy-top2down.svg|alt=Create category|15px|link=http://id.wikivoyage.org/w/index.php?title={{urlencode:Category:{{{1}}}}}&action=edit&preload=Template:IsPartOf/preload]] [[Kategori:Tempat di seluruh dunia]]}}|[[Kategori:Tempat yang terhubung dengan IsPartOf]]}}</includeonly>
<noinclude>
[[Kategori:Templat]]
{{INTERWIKI|Q14205332}}
</noinclude>
pxhn7y25lv0728e8yfbiwdx4kr5864g
Templat:IsPartOf/preload
10
233
861
860
2024-12-03T13:51:59Z
Jon Harald Søby
20
1 revisi diimpor
860
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|<!-- insert name of next region level up here -->}}
<!-- From article LocationA that has Breadcrumb : > CountryD > RegionC > SubRegionB > LocationA, you are now creating Category:SubRegionB -->
<!-- replace the comment in IsPartOf above with what is the correct name of RegionC -->
3c2ykc7vglk06d13a8a5us814ax7mdv
Templat:Ispartof
10
234
863
862
2024-12-03T13:51:59Z
Jon Harald Søby
20
1 revisi diimpor
862
wikitext
text/x-wiki
#redirect[[Templat:IsPartOf]]
ojvnzazzccwalpxe1j66vl5g49gqgpd
Templat:Iw
10
235
866
865
2024-12-03T13:51:59Z
Jon Harald Søby
20
2 revisi diimpor
865
wikitext
text/x-wiki
<includeonly>{{#if: {{{1}}}
| {{#invoke:Interwiki|interwiki|qid={{{1}}}}}
| '''ERROR: Parameter 1 tak terdeteksi'''
}}</includeonly>
daj6cgvgubrfuw6umnu9qdjjwufayva
Templat:JPY
10
236
868
867
2024-12-03T13:51:59Z
Jon Harald Søby
20
1 revisi diimpor
867
wikitext
text/x-wiki
{{currency|JPY|{{{1|}}}}}<noinclude>
{{Individual currency template documentation}}
[[Kategori:Templat mata uang individual]]
[[en:voy:Template:JPY]]
</noinclude>
icexjvvq7fxu5wwlriizwibqt0ukgwj
Templat:Jelajahi
10
237
895
894
2024-12-03T13:51:59Z
Jon Harald Søby
20
26 revisi diimpor
893
wikitext
text/x-wiki
[[Berkas:Marlborough Sounds Snout.jpg|200px|right|alt=Marlborough Sounds]]
*[[Claremont (California)|Claremont, California]] terkenal dengan pepohonan yang berjajar di jalan-jalannya dan sebagai rumah bagi Claremont Colleges yang elit, yang bersama-sama memberinya julukan "Kota Pepohonan dan PhD".
*Marlborough Sounds adalah pesta visual dari interaksi antara daratan, laut, alam dan cahaya dan dibagi menjadi Pelorus Sound dan Queen Charlotte Sound.
*Pengunjung datang ke [[Paris]], Tennessee untuk melihat replika Menara Eiffel setinggi 70 kaki (21 m) dan untuk "Ikan Goreng Terbesar di Dunia".
<noinclude>
{{Disclaimerbox|Mohon '''jangan''' tambahkan sesuatu ke templat ini; justru lihat [[Wikiwisata:Jelajahi]].}}
[[en:voy:Template:Discover]]
</noinclude>
mfj8fkpzqok0rf14b41ubjzsog8phhh
Templat:Joke
10
238
899
898
2024-12-03T13:52:00Z
Jon Harald Søby
20
3 revisi diimpor
898
wikitext
text/x-wiki
{{Ambox
|type = move
|image = [[Berkas:Ambox humor.svg|50px]]
|text = ''Ini adalah '''[[Wikiwisata:Artikel humor|artikel humor]]''' untuk Hari April Mop. Kami sangat terhibur dalam membuatnya. Mohon tidak terlalu fokus ke sini, dan [[Wikiwisata:Libatkan diri|kembangkanlah artikel yang asli]]!''}}<includeonly>
{{#ifeq:{{FULLPAGENAME}}|Wikiwisata:Indeks templat||[[Kategori:Artikel humor]]}}
</includeonly><noinclude>
[[Kategori:Templat]]
{{INTERWIKI|Q14443038}}
</noinclude>
a2e32cgw32y0n0mfi64hjihwhx1uk69
Templat:Kapal
10
239
902
901
2024-12-03T13:52:00Z
Jon Harald Søby
20
2 revisi diimpor
901
wikitext
text/x-wiki
Dengan kapal [[Berkas:Aiga watertransportation.svg|17px|link=]]<noinclude>[[Kategori:Templat AIGA]][[zh:voy:Template:客轮]]</noinclude>
m574711clj1r8i9olpglxhpl4nh6hoz
Templat:Kategori
10
240
906
905
2024-12-03T13:52:00Z
Jon Harald Søby
20
3 revisi diimpor
905
wikitext
text/x-wiki
{{Ambox
| text = Halaman ini berisi halaman-halaman yang memiliki tautan kategori ke {{PAGENAME}}. Artikel utama untuk kategori ini adalah [[{{{1|'''<span style="color:red"> ERROR: Parameter 1 tidak diisi! </span>''' [[Kategori:Format rusak]]}}}|{{{1}}}]]
}}
39u5olcs1vw02kn73nyp8l9cg96uydw
Templat:Kebijakan resmi
10
241
910
909
2024-12-03T13:52:00Z
Jon Harald Søby
20
3 revisi diimpor
909
wikitext
text/x-wiki
{{Ambox
|image= [[Berkas:Yes check.svg|50px]]
|text='''Halaman ini merupakan kebijakan resmi di Wikiwisata'''
Isinya telah diterima luas oleh para pengguna dan dianggap sebagai standar yang normalnya harus diikuti oleh semua pengguna. Perubahan yang dibuat harus mendapatkan konsensus terlebih dahulu.
}}
<noinclude>
[[Kategori:Templat]]
</noinclude>
e7d74x9q3gwmtiwztpvkdtvpwcm0vmp
Templat:Kembangkan
10
242
2530
914
2024-12-03T14:16:00Z
Jon Harald Søby
20
1 revisi diimpor
912
wikitext
text/x-wiki
{{Ambox
|type = content
|text = '''Halaman ini belum atau baru sebagian ditulis.'''</br>
Anda dapat membantu Wikiwisata dengan mengembangkannya. Jika tidak dikembangkan selama 30 hari, maka halaman ini <u>akan dihapus</u> <small>([[Pembicaraan:{{PAGENAME}}|Pengurus:Diskusikan!]])</small>
|small = Jika artikel telah mimiliki minimal 800+ bita, maka pertimbangkan untuk mengganti templat ini dengan {{Tl|Stub}}.
}}[[Kategori:Halaman yang tidak dikembangkan]][[Kategori:Permintaan perhatian pengurus]]
74mgx16iyvql9d22x5aqkgtnyi2h8la
Templat:Kereta
10
243
919
918
2024-12-03T13:52:00Z
Jon Harald Søby
20
4 revisi diimpor
918
wikitext
text/x-wiki
Dengan kereta [[Berkas:aiga railtransportation 25.svg|20px|link=]]<noinclude>[[Kategori:Templat AIGA]][[zh:voy:Template:铁路]]</noinclude>
5w5tqliqw3p9hzs3iwc9n0frdd5jaau
Templat:Kerja
10
244
921
920
2024-12-03T13:52:00Z
Jon Harald Søby
20
1 revisi diimpor
920
wikitext
text/x-wiki
Kerja [[Berkas:UOEBeryllium.png|32px|link=]]<noinclude>[[Kategori:Templat AIGA]]</noinclude>
4rihi9xflotj8wismjvk99kft51r3q6
Templat:Kg
10
245
923
922
2024-12-03T13:52:00Z
Jon Harald Søby
20
1 revisi diimpor
922
wikitext
text/x-wiki
#REDIRECT [[Templat:Kilogram]]
kj4houribka6fci0i2sj0mpd96dnild
Templat:Kilogram
10
246
926
925
2024-12-03T13:52:00Z
Jon Harald Søby
20
2 revisi diimpor
925
wikitext
text/x-wiki
{{convert|{{{1|10}}}|kg|lb|abbr=on}}<noinclude>
{{documentation}}
[[Kategori:Templat format dan fungsi]]
[[en:voy:Template:Kilogram]]
</noinclude>
bn30w44j3dx4s1rreul7b23jzk8cggl
Templat:Kilometer
10
247
929
928
2024-12-03T13:52:01Z
Jon Harald Søby
20
2 revisi diimpor
928
wikitext
text/x-wiki
{{#switch:{{{2|}}}
| adj
| on = {{Convert|{{{1|80}}}|km|mi|adj=on}}
| off
| abbr
| #default = {{Convert|{{{1|80}}}|km|mi|abbr=on}}
}}<noinclude>
{{INTERWIKI|Q107170627}}
</noinclude>
boeyfsgfaca2xwzn7ge5ge8yrethvqa
Templat:KilometerPerHour
10
248
931
930
2024-12-03T13:52:01Z
Jon Harald Søby
20
1 revisi diimpor
930
wikitext
text/x-wiki
{{convert|{{{1|80}}}|km/h|mph|abbr=on}}<noinclude>
{{documentation}}
[[Kategori:Templat format dan fungsi]]
[[en:voy:Template:KilometerPerHour]]
</noinclude>
2qpno9ia4pgmwgb8am4oc1ec6popd05
Templat:Km
10
249
936
935
2024-12-03T13:52:01Z
Jon Harald Søby
20
4 revisi diimpor
935
wikitext
text/x-wiki
#redirect[[Templat:Kilometer]]
2cje267xqn6r5bltfzue3yb3zpow127
Templat:Km2
10
250
939
938
2024-12-03T13:52:01Z
Jon Harald Søby
20
2 revisi diimpor
938
wikitext
text/x-wiki
{{Convert|{{{1|15}}}|km2|mi2|abbr=on}}<noinclude>
[[en:voy:Template:Squarekilometer]]
</noinclude>
drzy1qmvyw6w6pc3fau0gsbrm19hpp8
Templat:Kmh
10
251
942
941
2024-12-03T13:52:01Z
Jon Harald Søby
20
2 revisi diimpor
940
wikitext
text/x-wiki
#redirect[[Templat:KilometerPerHour]]
7pg4i3yukh0utyjbr7ubbwipj4gjfmc
Templat:Kolaborasi terkini
10
252
951
950
2024-12-03T13:52:01Z
Jon Harald Søby
20
8 revisi diimpor
949
wikitext
text/x-wiki
[[Wikiwisata:Kolaborasi bulan ini|Sunting/perbarui artikel tentang templat artikel]]
<noinclude>
[[Kategori:Templat]]
{{INTERWIKI|Q14326487}}
</noinclude>
1arzorw9bvy9r7mjjrr68v5pwi401yb
Templat:Kota
10
253
953
952
2024-12-03T13:52:01Z
Jon Harald Søby
20
1 revisi diimpor
952
wikitext
text/x-wiki
Kota [[Berkas:City icon (Noun Project).svg|21px|link=]]<noinclude>[[Kategori:Templat AIGA]]</noinclude>
rpacixzye4fbf2cw5ip75d691hbes72
Templat:Kotak arsip
10
254
955
954
2024-12-03T13:52:01Z
Jon Harald Søby
20
1 revisi diimpor
954
wikitext
text/x-wiki
{| class="infobox plainlinks" style="width: {{{box-width|238px}}}"
|<div style="padding-top: 4px; text-align: center">{{{image|[[Berkas:Replacement filing cabinet.svg|{{{image-width|40px}}}|Archive]]}}}<br/>'''Arsip'''
</div>
----
{{{1|}}}
|}
fpv6kwocfb1020v6jp13z9kfd5vsnzr
Templat:Kotak info nomor darurat
10
255
959
958
2024-12-03T13:52:02Z
Jon Harald Søby
20
3 revisi diimpor
958
wikitext
text/x-wiki
<div style="display: table; border-radius: 6px; background-color: #fef4f4; border: 1px solid #FF0000; margin: 0.5em 1em 0.5em 1em; padding: 6px; box-shadow: 0px 0px 5px #aaa; width:30%; float:right;" class="pp_warningbox" >
{|
|- style="vertical-align: top;"
| style="width: 56px;"|[[Berkas:SymbolPhone.svg|link=|50px|Avertissement de voyage]]
|<span style="font-size: 130%; color: #FF0000">'''Nomor gawat darurat:'''</span><!--
-->{{ #if:{{{general|}}}|<br />'''Nomor umum:''' <span style="color: #FF0000;">'''{{{general}}}'''</span> <span style="font-size: 90%;">{{#if:{{{info general|}}}|{{{info general}}}|}}</span>|}}<!--
-->{{ #if:{{{police|}}}|<br />'''Polisi:''' <span style="color: #FF0000;">'''{{{police}}}'''</span> <span style="font-size: 90%;">{{#if:{{{info police|}}}|{{{info police}}}|}}</span>|}}<!--
-->{{ #if:{{{ambulance|}}}|<br />'''Ambulan:''' <span style="color: #FF0000;">'''{{{ambulance}}}'''</span> <span style="font-size: 90%;">{{#if:{{{info ambulance|}}}|{{{info ambulance}}}|}}</span>|}}<!--
-->{{ #if:{{{firefigther|}}}|<br />'''Pemadam kebakaran:''' <span style="color: #FF0000;">'''{{{firefigther}}}'''</span> <span style="font-size: 90%;">{{#if:{{{info firefigther|}}}|{{{info firefigther}}}|}}</span>|}}<!--
-->{{ #if:{{{other1|}}}|<br />'''{{{othername1}}} :''' <span style="color: #FF0000;">'''{{{other1|}}}'''</span> <span style="font-size: 90%;">{{#if:{{{info other1|}}}|{{{info other1}}}|}}</span>|}}<!--
-->{{ #if:{{{other2|}}}|<br />'''{{{othername2}}} :''' <span style="color: #FF0000;">'''{{{other2|}}}'''</span> <span style="font-size: 90%;">{{#if:{{{info other2|}}}|{{{info other2}}}|}}</span>|}}<!--
-->{{ #if:{{{other3|}}}|<br />'''{{{othername3}}} :''' <span style="color: #FF0000;">'''{{{other3|}}}'''</span> <span style="font-size: 90%;">{{#if:{{{info other3|}}}|{{{info other3}}}|}}</span>|}}<!--
-->{{ #if:{{{other4|}}}|<br />'''{{{othername4}}} :''' <span style="color: #FF0000;">'''{{{other4|}}}'''</span> <span style="font-size: 90%;">{{#if:{{{info other4|}}}|{{{info other4}}}|}}</span>|}}<!--
-->{{ #if:{{{other5|}}}|<br />'''{{{othername5}}} :''' <span style="color: #FF0000;">'''{{{other5|}}}'''</span> <span style="font-size: 90%;">{{#if:{{{info other5|}}}|{{{info other5}}}|}}</span>|}}
|}</div><noinclude>
[[Kategori:Templat]]
{{INTERWIKI|Q15539149}}
</noinclude>
4ghdgdw75xhdtkmvm3szcarwcvm6739
Templat:Lakukan
10
256
962
961
2024-12-03T13:52:02Z
Jon Harald Søby
20
2 revisi diimpor
961
wikitext
text/x-wiki
Lakukan [[Berkas:Font Awesome 5 solid child.svg|20px|link=]]<noinclude>[[Kategori:Templat AIGA]]</noinclude>
737kjqia2bsyoszdaolfyyezp5v466z
Templat:Lang
10
257
966
965
2024-12-03T14:14:52Z
Jon Harald Søby
20
3 revisi diimpor
964
wikitext
text/x-wiki
<includeonly>{{#invoke:lang|lang}}</includeonly><noinclude>
{{INTERWIKI|Q6610935}}
</noinclude>
i6j809solo2e4ootxfs24msoj87de9o
Templat:Lang-ja
10
258
968
967
2024-12-03T14:14:52Z
Jon Harald Søby
20
1 revisi diimpor
967
wikitext
text/x-wiki
[[Japanese language|Japanese:]] ''<span lang=ja">{{{1}}}</span>''<noinclude>
[[Kategori:Language templates|ja]]
</noinclude>
nykoifsy336kno0o4so56yo2cjzgcgz
Templat:Layers
10
259
970
969
2024-12-03T14:14:52Z
Jon Harald Søby
20
1 revisi diimpor
969
wikitext
text/x-wiki
<includeonly>{{#invoke:Layers|Filter}}</includeonly>
21snqv5b7f4tkfflwhe0r1zi9pcavf6
Templat:Lb
10
260
972
971
2024-12-03T14:14:52Z
Jon Harald Søby
20
1 revisi diimpor
971
wikitext
text/x-wiki
#redirect[[Templat:Pound]]
rtx4flv0xuapypblt095pcfrc0gj2wa
Templat:Legend
10
261
975
974
2024-12-03T14:14:52Z
Jon Harald Søby
20
2 revisi diimpor
974
wikitext
text/x-wiki
<includeonly><div class="legend"><span class="legend-color" style="display:inline-block; width:1.5em; height:1.5em; margin:1px 0; border:{{{border|1px solid {{{outline|black}}}}}}; background-color:{{{1|transparent}}}; color:{{{textcolor|black}}}; font-size:{{{size|100%}}}; text-align:center;">{{#if:{{{text|}}}|<span class="legend-text">{{{text}}}</span>| }}</span> {{{2|}}}</div></includeonly><noinclude>
{{INTERWIKI|Q5636063}}
</noinclude>
ktwp9mk6g9mj7lyvaa60y50pi2lj37b
Templat:Libur
10
262
977
976
2024-12-03T14:14:53Z
Jon Harald Søby
20
1 revisi diimpor
976
wikitext
text/x-wiki
Libur [[Berkas:Simpleicons Business calendar-remove-button.svg|24px|link=]]<noinclude>[[Kategori:Templat AIGA]]</noinclude>
at8nid6a45aarw7ey76uopwrh1mnxf6
Templat:Lihat
10
263
979
978
2024-12-03T14:14:53Z
Jon Harald Søby
20
1 revisi diimpor
978
wikitext
text/x-wiki
Lihat [[Berkas:Font Awesome 5 solid eye.svg|30px|link=]]<noinclude>[[Kategori:Templat AIGA]]</noinclude>
fjfpcrfoczy8pwonh2m2k5yrswbqdbw
Templat:Listing
10
264
2536
999
2024-12-03T14:16:00Z
Jon Harald Søby
20
5 revisi diimpor
998
wikitext
text/x-wiki
<includeonly><bdi class="vcard"><!-- This is a microformat container class.
Anchor
-->{{#if:{{{wikidata|}}}
| {{Anchor|{{{wikidata|}}}}}
}}<!--
Marker
-->{{Marker
|counter={{{counter|{{{type|listing}}}}}}
|type={{{type|listing}}}
|name={{{name|}}}
|lat={{{lat|}}}
|long={{{long|}}}
|image={{{image|}}}
|url={{{url|}}}
|islisting=yes
|wikidata={{{wikidata|}}}
}}<!--
Alt
-->{{#if:{{{alt|}}}
|  ({{#ifeq:{{#invoke:IsLatin|IsLatin|{{{alt|}}}}}|yes
| <bdi class="nickname listing-alt" style="font-style: italic;">{{{alt|}}}</bdi>
| <bdi class="nickname listing-alt">{{{alt|}}}</bdi>}})
}}<!--
Address
-->{{#if:{{{address|}}}
| {{#if:{{{name|}}}{{{url|}}}
| ,
}} <bdi class="adr listing-address street-address">{{{address|}}}</bdi>
}}<!--
Directions
-->{{#if:{{{directions|}}}
|  (<bdi class="listing-directions" style="font-style: italic;">{{{directions|}}}</bdi>)
}}<!--
Phone
-->{{#if:{{{phone|}}}
| {{#if:{{{name|}}}{{{url|}}}{{{address|}}}{{{directions|}}}
| ,
}} {{Phone|{{{phone|}}}}}
}}<!--
Tollfree
-->{{#if:{{{tollfree|}}}
| {{#if:{{{name|}}}{{{url|}}}{{{address|}}}{{{directions|}}}{{{phone|}}}
| ,
}} toll-free: <bdi class="tel listing-tollfree">{{#invoke:LinkPhone|LinkPhone|{{{tollfree|}}}|tollfree=yes}}</bdi>
}}<!--
Fax
-->{{#if:{{{fax|}}}
| {{#if:{{{name|}}}{{{url|}}}{{{address|}}}{{{directions|}}}{{{phone|}}}{{{tollfree|}}}
| ,
}} <span class="tel"><span class="type">fax</span>: <bdi class="value listing-fax">{{#invoke:LinkPhone|LinkPhone|{{{fax|}}}|fax=true}}</bdi></span>
}}<!--
E-mail
-->{{#if:{{{email|}}}
| {{#if:{{{name|}}}{{{url|}}}{{{address|}}}{{{directions|}}}{{{phone|}}}{{{tollfree|}}}{{{fax|}}}
| ,
}} {{Email|{{{email|}}}}}
}}{{#if:{{{inline|}}}||.}}<!--
Hours
-->{{#if:{{{hours|}}}
|  <bdi class="note listing-hours">{{{hours|}}}</bdi>.
}}<!--
Checkin and checkout
-->{{#if:{{{checkin|}}}
|  <span class="note">Check-in: <bdi class="listing-checkin">{{{checkin|}}}</bdi><!--
-->{{#if:{{{checkout|}}}
| , check-out: <bdi class="listing-checkout">{{{checkout|}}}</bdi>
}}</span>.
| {{#if:{{{checkout|}}}
|  <span class="note">Check-out: <bdi class="listing-checkout">{{{checkout|}}}</bdi></span>.
}}}}<!--
General listing content
-->{{#if:{{{content|{{{1|}}}}}}
|  <bdi class="note listing-content">{{{content|{{{1|}}}}}}</bdi>
}}<!--
Price
-->{{#if:{{{price|}}}
|  <bdi class="note listing-price">{{{price|}}}</bdi>.
}}<!--
Sister project icons
-->{{#if:{{{wikipedia|}}}{{{wikidata|}}}
| <span class="listing-sister-icons">{{#if:{{{wikidata|}}}
|  [[Berkas:Wikidata-logo.svg|16px|class=listing-sister|link=d:{{{wikidata|}}}|{{#invoke:Wikibase|label|{{{wikidata|}}}}} ({{{wikidata|}}}) di Wikidata]]
}}{{#ifeq:{{{wikipedia}}}|NA||{{#if:{{{wikipedia|}}}{{#invoke:WikidataIB|getSiteLink|wiki=idwiki|qid={{{wikidata|}}}}}
|  [[Berkas:Antu wikipedia.svg|16px|class=listing-sister|link=w:id:{{#if:{{{wikipedia|}}}|{{{wikipedia|}}}|{{#invoke:WikidataIB|getSiteLink|wiki=idwiki|qid={{{wikidata|}}}}}}}|<bdi>{{#if:{{{wikipedia|}}}|{{{wikipedia|}}}|{{#invoke:WikidataIB|getSiteLink|wiki=idwiki|qid={{{wikidata|}}}}}}}</bdi> di Wikipedia]]
}}}}</span>
}}<!--
Metadata - last edit date, "edit" link, etc.
Note: an additional edit link will be inserted by Javacript at end of this required "listing-metadata-items" span.
--><span class="listing-metadata"><!--
-->{{#if:{{{lastedit|}}}| (}}<!--
--><span class="listing-metadata-items"><!--
-->{{#if:{{{lastedit|}}}
| <bdi class="listing-lastedit">diperbarui {{#time: M Y|{{{lastedit|}}}}}</bdi>
| <!-- "listing-metadata-items" must NOT be empty, otherwise the "edit" link (not generated but inserted by javascript) will be missing -->
}}<!--
--></span><!--
-->{{#if:{{{lastedit|}}}|)}}<!--
--></span><!--
-->{{#invoke:HiddenUnicode|HiddenUnicode|{{{name}}}{{{lat|}}}{{{long|}}}{{{url|}}}{{{alt|}}}{{{address|}}}{{{directions|}}}{{{phone|}}}{{{tollfree|}}}{{{fax|}}}{{{email|}}}{{{hours|}}}{{{checkin|}}}{{{checkout|}}}{{{price|}}}{{{content|{{{1|}}}}}}}}<!--
--></bdi>{{#if:{{{wikipedia|}}}| {{#if:{{{wikidata|}}}| | {{#ifeq:{{#invoke:String|find|{{{wikipedia|}}}|#}}|0|[[Kategori:Senarai dengan pranala Wikipedia yang tidak ada di Wikidata]]|}} }} |}}</includeonly>
<noinclude>
{{INTERWIKI|Q14330485}}
</noinclude>
ds30dmhpxut6ubj8w6vq6w20fgjdlba
Templat:Listing/doc
10
265
1002
1001
2024-12-03T14:14:53Z
Jon Harald Søby
20
2 revisi diimpor
1001
wikitext
text/x-wiki
== Penggunaan ==
<source>
* {{Listing
| type=TYPE OF LISTING (see, do, buy, eat, drink, sleep)
| name=NAME OF LISTING (normally required)
| alt=ALTERNATE NAME (possibly name in a local language)
| wikidata=WIKIDATA QID IDENTIFIER OF THE LISTING
| wikipedia=WIKIPEDIA ARTICLE NAME OF THE LISTING
| url=FULL URL OF LISTING'S WEBSITE (including '''''http[s]://''''' at the start)
| email=EMAIL ADDRESS OF LISTING
| address=PHYSICAL ADDRESS OF LISTING
| lat=LATITUDINAL POSITION OF THE LISTING (positive in the northern hemisphere)
| long=LONGITUDINAL POSITION OF THE LISTING (positive in the eastern hemisphere)
| image=NAME OF IMAGE (for thumbnail displayed when the map marker is clicked – "Image:" or "File:" prefix omitted)
| directions=SHORT DESCRIPTION OF HOW TO GET TO LISTING
| phone=PHONE NUMBER (in international format: +countrycode areacode number)
| tollfree=TOLL-FREE OR FREEPHONE NUMBER (in international format, unless unreachable from abroad)
| fax=FAX NUMBER (in international format)
| hours=OPERATING HOURS OF LISTING
| price=ADMISSION PRICE (range for attractions, one main course for restaurants or one night double occupancy for inns)
| checkin=CHECKIN TIME (sleep listings only)
| checkout=CHECKOUT TIME (sleep listings only)
| lastedit=DATE OF LAST EDIT (in ISO standard format "yyyy-mm-dd", leave this blank if importing info from the venue's website or a secondary source)
| content=BRIEF DESCRIPTION OF THE LISTING
}}
</source>
== Contoh ==
* {{Listing
| name=Exploratorium | url=http://www.exploratorium.edu/ | email=
| address=Pier 15, 698 The Embarcadero | lat=37.8013 | long=-122.3988 | directions=at Green St
| phone=+1 415 528-4360 | tollfree= | fax=
| hours=Tu-Su 10AM-5PM; open W until 10PM, closed M
| price=Adults: $25, Students/seniors/youth: $19, Children age 5 and under: Free
| image=Giant Mirror at the Exploratorium.jpeg | wikipedia=Exploratorium | wikidata=Q206518
| lastedit=2015-01-15
| content=A great kid friendly option, with lots of interactive exhibits teaching about science, with intriguing displays about the mind, natural systems, sound, sight, and much much more.
}}
Dengan kode:
<source>
* {{Listing
| name=Exploratorium | url=http://www.exploratorium.edu/ | email=
| address=Pier 15, 698 The Embarcadero | lat=37.8013 | long=-122.3988 | directions=at Green St
| phone=+1 415 528-4360 | tollfree= | fax=
| hours=Tu-Su 10AM-5PM; open W until 10PM, closed M
| price=Adults: $25, Students/seniors/youth: $19, Children age 5 and under: Free
| image=Giant Mirror at the Exploratorium.jpeg | wikipedia=Exploratorium | wikidata=Q206518
| lastedit=2015-01-15
| content=A great kid friendly option, with lots of interactive exhibits teaching about science, with intriguing displays about the mind, natural systems, sound, sight, and much much more.
}}
</source>
<noinclude>
</noinclude>
kk4lyvyjuhr3riqfl8i33wbucypoue1
Templat:Lorem ipsum
10
266
1006
1005
2024-12-03T14:14:53Z
Jon Harald Søby
20
3 revisi diimpor
1004
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|}}}}}<noinclude>
{{INTERWIKI|Q5965401}}
</noinclude>
f3xj31sdtfun7stqn959vguhkca72gs
Templat:Lorem ipsum/P1
10
267
1009
1008
2024-12-03T14:14:53Z
Jon Harald Søby
20
2 revisi diimpor
1008
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>
{{INTERWIKI|Q108524446}}
</noinclude>
miewdf5b9lrhaama6hnaoosqnt5m1vt
Templat:Lorem ipsum/P5
10
268
1013
1012
2024-12-03T14:14:53Z
Jon Harald Søby
20
3 revisi diimpor
1012
wikitext
text/x-wiki
Aliquam vehicula sem ut pede. Cras purus lectus, egestas eu, vehicula at, imperdiet sed, nibh. Morbi consectetuer luctus felis. Donec vitae nisi. Aliquam tincidunt feugiat elit. Duis sed elit ut turpis ullamcorper feugiat. Praesent pretium, mauris sed fermentum hendrerit, nulla lorem iaculis magna, pulvinar scelerisque urna tellus a justo. Suspendisse pulvinar massa in metus. Duis quis quam. Proin justo. Curabitur ac sapien. Nam erat. Praesent ut quam.[[en:Template:Lorem ipsum/P5]]
6hpe10s56dhzl5z7k0y81e6eikqvvch
Templat:Lorem ipsum/p-cond
10
269
1017
1016
2024-12-03T14:14:53Z
Jon Harald Søby
20
3 revisi diimpor
1016
wikitext
text/x-wiki
{{#ifeq: {{{2|{{{join|no}}}}}} | yes
|
| {{#switch: {{#invoke:String|sub|x{{{1|}}}|2|2}}
| : | # | * =
| #default = <p><!--
-->}}
}}</p><noinclude>
{{INTERWIKI|Q108524440}}
</noinclude>
6c0pkmhmj958oqcvlt81wb7toszc3of
Templat:Lorem ipsum/p-end-cond
10
270
1021
1020
2024-12-03T14:14:54Z
Jon Harald Søby
20
3 revisi diimpor
1020
wikitext
text/x-wiki
{{#ifeq: {{{2|{{{join|no}}}}}} | yes
|
| {{#switch: {{#invoke:String|sub|x{{{1|}}}|2|2}}
| : | # | * =
| #default = </p><!--
-->}}
}}<noinclude>
{{INTERWIKI|Q108521354}}
</noinclude>
inmm7yo3rjhrl0bzeu8uimkqtrxu9yv
Templat:LunarNewYeardates
10
271
1024
1023
2024-12-03T14:14:54Z
Jon Harald Søby
20
2 revisi diimpor
1023
wikitext
text/x-wiki
{{Infobox|Tanggal Tahun Baru Imlek|Tahun "Kelinci" dimulai pada 4 Februari 2023 pukul 10:33, dan Tahun Baru Imlek jatuh pada 22 Jan 2023
*Tahun "Naga" akan dimulai pada 4 Februari 2024 pukul 16:25, dan Tahun Baru Imlek akan jatuh pada 10 Februari 2024
*Tahun "Ular" akan dimulai pada 3 Februari 2025 pukul 22:10, dan Tahun Baru Imlek akan jatuh pada 29 Januari 2025
Berlawanan dengan kepercayaan populer, perubahan zodiak tidak terjadi pada hari pertama Tahun Baru Imlek, melainkan terjadi pada Li Chun (立春 ''lì chūn''), awal musim semi tradisional Tionghoa.}}<noinclude>
Untuk informasi perayaan yang secara budaya bukan bahasa Tionghoa (dalam bahasa mereka sendiri), lihat daftar tanggal berikut yang lebih lengkap:
* [[:vi:Tết Nguyên Đán|Vietnam]]
* [[:mn:Цагаан сар|Mongolia]]
* [[:ko:한국의 설날|Korea]]
[[Kategori:Templat waktu, tanggal dan kalender]]
{{INTERWIKI|Q15630337}}
</noinclude>
33n9v2epui458ank1xrqxgs4xaxic43
Templat:M
10
272
1026
1025
2024-12-03T14:14:54Z
Jon Harald Søby
20
1 revisi diimpor
1025
wikitext
text/x-wiki
#REDIRECT [[Templat:Meter]]
1x9whq88zuh5s0o40rksht77p0wdliu
Templat:Main
10
273
1034
1033
2024-12-03T14:14:54Z
Jon Harald Søby
20
7 revisi diimpor
1033
wikitext
text/x-wiki
''Artikel utama: [[{{{1}}}|{{{1}}}]]''<noinclude>
[[Kategori:Templat hatnote]]
{{INTERWIKI|Q6797933}}
</noinclude>
hxztjg1du6r61qxn6vq0naphqce8gnd
Templat:Main other
10
274
2539
1037
2024-12-03T14:16:00Z
Jon Harald Søby
20
2 revisi diimpor
1036
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>
{{INTERWIKI|Q5627213}}
</noinclude>
7i5kyvxitipirmhhlc6vr6v3zfxsz10
Templat:Makan
10
275
1042
1041
2024-12-03T14:14:54Z
Jon Harald Søby
20
4 revisi diimpor
1041
wikitext
text/x-wiki
Makan [[Berkas:Aiga restaurant.svg|12px|link=]]<noinclude>[[Kategori:Templat AIGA]][[zh:voy:Template:用餐]]</noinclude>
hii6mjh7anpku3c0kswk034emal6k7k
Templat:Makan dan minum
10
276
1044
1043
2024-12-03T14:14:54Z
Jon Harald Søby
20
1 revisi diimpor
1043
wikitext
text/x-wiki
Makan dan minum [[Berkas:Map icons by Scott de Jonge - food.svg|27px|link=]]<noinclude>[[Kategori:Templat AIGA]]</noinclude>
5r95i9f7zkvr1vr8rgifrqferjlrgoo
Templat:Mapbanner
10
277
1068
1067
2024-12-03T14:14:55Z
Jon Harald Søby
20
23 revisi diimpor
1067
wikitext
text/x-wiki
<templatestyles src="Mapbanner/styles.css"/>
<div id="mapbanner-container">
<div id="mainpage-map" class="js-proportonal-resize">
<div class="mainpage-shadowbox" id="mainpage-maptext">
<h2>{{{judul}}}</h2>
<p id="mainpage-tagline">{{{slogan}}}</p>
<div id="mainpage-searchinput">
<inputbox>
placeholder=Ke mana Anda ingin pergi?
type=search2
prefix=
width=20%
buttonlabel=Cari!
break=no
</inputbox>
</div>
<p id="mainpage-touristoffice">{{{teks tambahan}}}</p>
</div>
<div id="mainpage-maplinks">
<p>{{{pranala lain}}}</p>
</div>
<imagemap>
File:20130122214736!Bluemarble banner.jpg|frameless|1125px
poly 4092 1132 3816 1077 2406 1050 1686 1152 1500 1188 4092 1188 [[Antartika]]
poly 3665 879 3638 758 3711 738 3768 686 3796 665 3852 677 3936 491 4092 520 4092 826 4092 988 [[Oseania]]
poly 3186 253 3042 346 3140 511 3223 483 3365 595 3525 600 3604 669 3765 692 3791 670 3850 677 3892 599 3942 473 3937 276 4086 141 4081 40 4000 20 3182 0 [[Asia]]
poly 2973 891 3193 796 3301 746 3223 482 3139 511 3045 344 2868 309 2697 348 2650 374 2653 516 2932 874 [[Afrika]]
poly 2696 42 2597 113 2703 240 2730 338 2871 309 2979 331 3045 344 3184 253 3181 0[[Eropa]]
poly 1437 2 1541 231 1560 454 1795 614 2084 640 2232 507 2311 436 2319 273 2423 247 2613 95 2674 49 2673 0 1434 0 [[Amerika Utara]]
poly 2084 641 2250 490 2565 637 2527 783 2410 975 2338 1031 2236 1028 2206 741 2152 695 [[Amerika Selatan]]
desc none
</imagemap>
</div>
<div id="mobile-mapbanner">
[[Berkas:Wikivoyage-logo.svg|65px|alt=|link=]]<strong>[[Wikiwisata:Selamat datang, orang baru|Selamat datang]] di [[Wikiwisata:Tentang|Wikiwisata]]</strong>
Panduan perjalanan global yang ''[[Wikiwisata:Libatkan diri|dapat Anda sunting]]'' secara [[Wikiwisata:Copyleft|bebas dan gratis]].
<imagemap>
image:Continents_colour2.png|center|300px
desc none
poly 659 363 656 363 654 362 649 362 642 361 639 361 637 360 634 360 631 359 629 357 626 357 624 355 621 355 617 354 610 354 606 353 604 352 603 350 601 349 598 348 595 348 592 347 588 346 580 346 577 344 538 344 535 343 529 343 526 342 523 342 521 341 486 341 481 342 461 342 459 343 449 343 447 344 444 344 434 349 433 358 431 359 417 359 415 358 411 358 409 357 381 357 378 358 373 358 369 357 332 357 329 358 311 358 309 357 289 357 286 356 268 356 264 357 261 357 257 359 237 359 235 358 228 358 224 359 222 361 218 361 215 362 211 363 208 364 204 366 201 366 199 368 194 369 187 369 184 370 175 370 172 371 163 371 160 372 158 373 157 375 156 378 154 382 154 386 152 388 151 390 152 392 154 394 155 397 155 400 157 404 159 405 659 405 659 401 660 398 660 395 661 393 661 387 662 385 662 367 660 366 660 363 [[Antartika]]
poly 616 249 619 249 625 246 626 244 629 242 631 241 634 240 640 240 642 239 648 239 658 234 660 232 666 229 669 229 671 228 686 228 687 226 689 225 690 223 690 217 689 215 689 200 688 198 688 195 687 193 687 184 686 181 685 177 685 171 684 168 684 155 685 153 685 150 686 148 688 145 691 139 691 130 692 128 694 126 696 122 697 119 699 118 705 116 708 116 711 115 715 115 717 114 720 113 732 113 738 115 747 115 751 116 754 117 758 119 764 119 767 120 771 120 777 123 781 127 782 129 784 130 790 132 792 133 794 137 795 140 796 142 796 151 797 154 797 182 798 184 798 193 799 195 799 256 798 259 797 261 796 266 796 269 794 270 793 272 793 275 792 278 787 288 787 295 786 297 786 300 785 302 785 305 784 307 780 309 775 309 772 310 770 311 767 311 764 312 760 314 760 320 758 324 756 325 755 327 753 328 752 330 750 332 748 333 745 333 743 334 740 335 734 338 731 339 728 339 724 340 718 340 716 341 710 341 704 339 703 337 701 336 698 336 696 335 679 335 675 333 672 333 668 332 665 332 662 331 660 330 658 328 656 327 653 326 650 326 648 325 645 324 643 325 639 324 635 320 629 317 625 316 623 315 619 311 616 310 614 309 613 307 612 304 607 294 607 291 605 289 605 286 607 282 611 280 610 276 610 258 611 255 613 253 615 252 618 252 617 250 [[Oseania]]
poly 431 108 432 110 436 112 443 112 445 113 451 113 452 115 452 127 453 129 453 132 455 136 455 139 459 147 461 148 463 152 465 153 469 161 469 164 471 168 473 169 474 171 478 171 480 172 486 172 488 171 490 172 492 174 494 175 500 175 502 176 505 176 507 177 508 179 510 180 511 182 517 185 518 187 521 187 524 189 528 193 529 196 530 198 530 210 531 212 531 215 532 217 538 220 541 221 543 222 546 224 547 226 548 229 549 231 551 232 554 233 556 234 561 235 564 236 566 237 570 236 574 236 579 235 586 235 588 237 589 239 592 241 624 241 628 240 630 239 637 239 640 238 644 236 647 235 650 235 651 233 653 232 656 231 660 231 662 230 665 230 669 228 672 228 674 229 689 229 689 226 691 222 690 220 690 211 689 209 689 194 688 192 688 189 687 187 685 186 685 183 684 181 683 178 683 160 684 157 686 154 692 136 693 134 693 130 694 128 694 125 695 121 695 116 696 113 696 110 697 107 697 104 699 102 700 100 700 91 701 87 703 83 703 80 704 76 706 74 706 71 707 69 707 66 708 64 708 57 707 55 707 40 705 36 701 34 698 34 695 33 694 31 692 30 691 28 685 28 682 27 673 27 671 26 655 26 653 25 650 24 647 24 643 23 640 22 632 18 629 17 625 17 621 15 607 15 604 14 600 12 593 12 589 10 586 10 583 9 567 9 565 8 553 8 552 10 550 11 544 11 543 9 539 7 536 6 527 6 524 5 518 5 516 4 509 4 507 5 501 7 499 8 496 14 492 16 491 18 489 19 489 22 488 24 488 27 487 29 487 32 488 34 492 36 493 38 493 41 491 42 490 44 490 50 491 52 491 55 490 57 490 60 489 62 489 78 486 84 482 86 479 92 479 95 481 96 483 100 482 102 476 102 472 100 470 98 468 97 459 97 457 96 454 96 452 95 446 95 444 96 443 98 440 98 432 102 431 104 431 110 435 112 441 112 443 113 449 113 451 114 451 120 452 122 [[Asia]]
poly 333 127 331 131 331 135 329 137 328 139 328 157 329 159 330 162 330 165 331 167 331 170 332 172 332 175 334 179 335 183 336 185 336 198 337 201 338 203 340 205 341 207 347 213 349 219 349 225 350 228 350 231 351 233 351 237 352 240 352 246 355 255 359 263 359 266 361 270 361 273 364 279 366 281 368 284 369 286 371 287 372 289 374 291 374 294 376 295 379 295 381 296 387 296 389 297 392 297 395 298 397 299 401 300 411 300 413 301 429 301 431 302 437 302 439 301 452 301 454 300 466 300 468 299 472 299 474 298 477 297 481 296 487 293 491 289 499 285 500 283 503 281 507 277 507 274 508 272 510 271 512 268 513 266 513 263 514 261 516 259 518 256 521 254 522 251 525 249 526 247 526 244 527 240 527 231 526 229 526 226 524 224 523 222 522 219 520 215 520 209 519 207 519 201 518 199 517 196 516 194 514 192 510 190 507 189 505 188 503 186 501 185 498 179 498 176 494 174 492 170 490 169 486 169 484 170 481 171 479 172 476 172 470 169 470 166 468 165 465 159 465 156 464 153 463 151 461 150 457 142 455 141 453 137 453 134 452 132 452 123 451 121 448 121 446 120 431 120 429 119 428 117 416 117 414 116 411 116 407 114 406 112 404 111 403 109 401 108 388 108 386 107 384 108 381 109 379 110 376 110 372 112 356 112 354 113 350 114 348 115 346 117 345 119 339 121 335 123 333 127 [[Afrika]]
poly 358 113 364 113 366 112 375 112 383 108 398 108 400 107 402 109 403 111 407 113 413 113 419 116 426 116 429 117 432 117 436 119 449 119 451 118 452 116 451 114 449 112 447 113 445 112 439 112 431 108 430 106 431 104 431 101 433 102 439 99 441 97 445 95 454 95 456 96 459 96 461 97 467 97 468 99 471 99 472 101 476 103 478 102 481 102 483 101 483 98 481 97 479 93 479 90 482 84 484 83 486 79 488 77 488 61 487 59 487 56 488 54 488 51 489 49 489 34 486 28 486 22 488 21 489 19 489 16 491 12 489 8 485 6 484 4 482 3 479 3 477 2 456 2 453 1 438 1 435 2 410 2 407 3 395 9 393 11 391 14 389 15 382 15 378 17 377 19 377 22 375 23 374 25 372 26 371 28 369 29 368 31 365 32 361 34 358 34 354 36 351 36 347 38 344 38 340 40 338 44 336 45 336 48 334 52 332 54 332 57 330 58 329 60 326 61 324 63 322 64 320 66 318 67 318 70 317 72 315 75 314 77 314 80 313 83 313 95 314 97 314 103 315 105 315 108 316 110 316 113 318 117 318 120 320 124 322 123 324 121 327 121 333 119 335 118 337 116 339 115 343 115 346 114 348 113 351 113 353 112 355 113 [[Eropa]]
poly 44 87 46 83 47 80 49 78 50 76 52 75 53 73 55 72 56 69 58 65 60 63 62 62 65 61 69 60 71 59 75 55 77 51 79 49 79 46 81 44 82 42 84 40 85 38 88 37 90 35 93 34 94 32 96 31 99 29 103 28 105 27 108 25 112 24 118 21 123 21 123 8 142 8 145 7 148 7 151 6 154 6 156 5 159 5 161 4 167 4 169 5 191 5 193 4 196 4 198 3 208 3 210 2 228 2 232 0 256 0 258 2 262 0 328 0 332 2 338 2 340 3 342 2 355 2 357 1 360 1 362 2 365 2 367 3 369 5 378 5 383 6 383 9 384 11 381 13 377 15 376 17 374 18 374 21 372 22 371 24 363 28 362 30 354 34 348 34 346 35 343 35 342 37 339 37 337 39 335 40 334 42 332 43 330 45 328 46 327 48 325 49 324 51 320 55 318 56 317 58 316 61 313 62 309 64 304 65 300 66 292 70 292 73 291 75 291 88 288 90 285 90 284 92 280 93 277 93 271 95 268 95 262 98 261 100 259 102 257 106 255 107 253 110 249 112 246 112 244 113 239 114 237 115 231 117 230 119 228 120 226 124 226 130 234 130 238 132 240 134 246 146 246 149 244 152 242 153 242 156 240 160 236 162 233 162 231 163 224 163 222 164 219 164 217 165 214 165 210 166 208 167 208 170 207 173 207 182 206 184 203 185 199 187 196 187 194 188 177 188 167 193 166 195 164 196 161 196 159 197 149 197 147 196 140 196 136 194 130 194 127 193 124 193 122 191 119 190 84 190 82 189 68 189 64 188 53 188 49 186 46 186 45 189 45 180 44 178 42 177 41 174 38 173 35 173 27 165 24 165 23 162 22 160 22 157 24 156 28 155 29 153 31 152 32 149 34 146 35 143 35 137 37 133 37 130 38 126 38 123 39 119 43 111 45 109 45 106 46 102 48 101 48 86 46 85 [[Amerika Utara]]
poly 219 342 220 345 224 347 228 347 231 348 243 348 245 349 248 349 250 350 286 350 288 349 291 345 296 335 299 333 299 320 301 318 306 308 309 306 311 302 311 298 312 293 312 287 314 283 314 280 315 278 315 271 316 269 316 266 317 264 317 258 318 256 318 244 319 242 319 226 324 224 324 213 322 212 322 209 318 206 314 204 311 202 309 201 308 199 306 196 304 192 302 190 300 189 299 187 297 186 296 184 294 183 288 177 287 175 279 171 272 171 270 170 267 170 265 169 262 169 260 168 257 168 255 167 252 167 250 166 218 166 216 167 213 168 210 168 208 169 206 173 206 182 198 186 193 186 191 187 188 187 184 189 181 189 179 190 176 191 173 191 170 192 167 192 166 194 160 194 159 196 153 199 150 199 148 201 145 201 143 202 140 203 138 204 135 204 129 207 126 207 122 209 121 211 121 224 115 227 113 230 112 233 112 240 111 242 111 255 112 258 114 262 115 265 115 269 116 273 117 276 119 277 122 279 126 280 129 283 135 287 136 290 140 294 142 295 144 298 146 300 150 302 152 306 159 313 160 315 163 315 164 317 166 318 170 319 185 324 187 328 191 330 192 332 200 336 206 338 209 338 211 339 215 339 217 340 220 341 [[Amerika Selatan]]
</imagemap>
{{Clickable button 2|style=margin:5px; width:40%;|link=Eropa|Eropa|class=mw-ui-progressive}}
{{Clickable button 2|style=margin:5px; width:40%;|link=Afrika|Afrika|class=mw-ui-progressive}}</br>
{{Clickable button 2|style=margin:5px; width:40%;|link=Asia|Asia|class=mw-ui-progressive}}
{{Clickable button 2|style=margin:5px; width:40%;|link=Oseania|Oseania|class=mw-ui-progressive}}</br>
{{Clickable button 2|style=margin:5px; width:40%;|link=Amerika_Utara|Amerika Utara|class=mw-ui-progressive}}
{{Clickable button 2|style=margin:5px; width:40%;|link=Amerika_Selatan|Amerika Selatan|class=mw-ui-progressive}}</br>
{{Clickable button 2|style=margin:5px; width:40%;|link=Antartika|Antartika|class=mw-ui-progressive}}
{{Clickable button 2|style=margin:5px; width:40%;|link=Destinasi_lainnya|Destinasi lainnya|class=mw-ui-progressive}}</br>
<span>[[#siteContainer|Situs saudari]] resmi Wikipedia non-komersial mengenai topik tamasya, aktivitas, masakan, dan akomodasi di seluruh dunia; dengan {{NUMBEROFARTICLES}} artikel dalam bahasa Indonesia yang ditulis oleh wisatawan seperti ''Anda''.</span>
Baca tentang tempat '''[[Istimewa:Nearby|disekitar Anda]]'''.
<p id="mainpage-touristoffice">Punya pertanyaan spesifik?<br> ''[[Wikiwisata:Warung Kopi|Tanyakan di warung kopi]]''</p>
{{Clickable button 2|style=margin:5px; width:40%;|link=Destinasi_wisata|Destinasi|class=mw-ui-progressive}}
{{Clickable button 2|style=margin:5px; width:40%;|link=Rencana_perjalanan|Rencana perjalanan|class=mw-ui-progressive}}</br>
{{Clickable button 2|style=margin:5px; width:40%;|link=Buku_frase|Buku frase|class=mw-ui-progressive}}
{{Clickable button 2|style=margin:5px; width:40%;|link=Topik_wisata|Topik wisata|class=mw-ui-progressive}}</br>
</div>
</div>
<noinclude>
[[en:Template:Mapbanner]]</noinclude>
9g62optbvrwwj3wb3cwyhzend4eni19
Templat:Mapbanner/Sandbox
10
278
1070
1069
2024-12-03T14:14:55Z
Jon Harald Søby
20
1 revisi diimpor
1069
wikitext
text/x-wiki
#REDIRECT [[Templat:Spanduk Peta/Kotak Pasir]]
b5t2n0k6ljtw1d0nya9l4h8dlccjbx4
Templat:Mapbanner/styles.css
10
279
1076
1075
2024-12-03T14:14:55Z
Jon Harald Søby
20
5 revisi diimpor
1075
sanitized-css
text/css
#mainpage-searchinput .mw-ui-button[name="fulltext"] { display: none; } /* hide full text search box, which cannot currently be disabled */
#mainpage-map {
background-color: #0B0A34;
position: relative;
overflow: hidden;
height: auto;
margin-bottom: .6em;
max-width: 1125px;
}
#mainpage-maptext {
position: absolute;
top: 1em;
left: 1em;
width: 41%; /* 40% too small on some webkit browsers at 720p resolutions */
z-index: 2;
text-align: center;
padding: 0.5em 0.5em 0 0.5em;
}
#mainpage-tagline {
margin: 0;
}
#mainpage-searchinput {
padding:0;
}
#mainpage-searchinput label {
font-size: 85%;
font-style: italic;
}
#mainpage-searchinput input[type="text"] {
margin-right: 0.5em;
}
#mainpage-maplinks {
position:absolute;
bottom: 0;
left: 1em;
color: white;
padding:0 0.5em;
}
#mainpage-maplinks a {
color: white;
font-weight: bold;
}
#mainpage-maptext.mainpage-shadowbox {
color: white;
background: rgb(16,16,16);
background: rgba(0,0,0,0.3);
border-radius: 4px;
}
#mapbanner-container { width: 100%; }
/* The following is mobile kludge code. It is temporary and to be removed */
#mobile-mapbanner { display: none; }
@media (max-width: 720px) {
#mainpage-map { display: none; }
#mobile-mapbanner { display: block !important; }
}
lz6a55oe6o88ufk27ihbwp65z9pzet2
Templat:Mapframe
10
280
2541
1099
2024-12-03T14:16:00Z
Jon Harald Søby
20
1 revisi diimpor
1098
wikitext
text/x-wiki
<includeonly>{{#invoke:Map
| tag
| type=mapframe
| zoom={{{zoom|auto}}}
| align = {{{align|right}}}
| show={{{show | {{Maplayers}} }}}
| latitude={{{1|}}}
| longitude={{{2|}}}
| text = {{#switch: {{{zoom|}}}
| 17 | 16 | 15 | 14 |13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1
| 0 = <div class="magnify" title="Enlarge map">{{Maplink|{{{1|0}}}|{{{2|0}}}|zoom={{#expr: {{{zoom|}}} + 1 }} |class=no-icon}}</div>
}}{{{name|Map of {{SUBPAGENAME}}}}}<!--
-->{{#ifexist: Template:GPX/{{PAGENAME}} | <small id="GPX-track"> [[Templat:GPX/{{PAGENAME}}|(Edit GPX)]]</small>{{GPX indicator}} }}<!--
-->{{#if: {{{staticmap|}}} | <div class="wv-staticMap">[[Berkas:{{{staticmap|}}}|{{#expr: {{{width|400}}} - 2 }}px|border|{{{name|Map of {{SUBPAGENAME}}}}}]]</div> }}
}}{{#ifeq: {{NAMESPACE}} | {{ns:0}}
| [[Kategori:Has mapframe]]<!--
-->{{#if: {{{staticmap|}}} | [[Kategori:Maps with static images]] }}<!--
-->{{#if: {{{align|}}} | [[Kategori:Maps with non-default alignment]] }}<!--
-->{{#if: {{{height|}}}{{{width|}}} | [[Kategori:Maps with non-default size]] }}<!--
-->{{#ifexist: Template:GPX/{{PAGENAME}} | [[Kategori:Maps with GPX indicator]] }}
}}</includeonly><noinclude>{{Documentation}}
{{INTERWIKI|Q14395215}}
</noinclude>
916tgmvowiw3a20ti8tlb0yl0bu3avl
Templat:Mapgroup
10
281
1103
1102
2024-12-03T14:14:56Z
Jon Harald Søby
20
3 revisi diimpor
1102
wikitext
text/x-wiki
<includeonly><!-- mapframe to contain all of the areas -->{{Mapframe
| {{{lat}}}
| {{{long}}}
| zoom={{{zoom|}}}
| name={{{name|}}}
| show={{{group|mapgroup}}}
| width={{{width|400}}}
| height={{{height|400}}}
}}<!-- mapshape for the target area -->{{#if: {{{target|}}}
| {{wy/syl/Mapshape
| wikidata={{{target}}}
| group={{{group|mapgroup}}}
| type=geoshape
| fill={{{fill|#5a6da5}}}
}}
}}</includeonly><noinclude>[[en:voy:Template:Mapgroup]]</noinclude>
40e33228hw2ub2yi5fq9g1zyjttrcq8
Templat:Maplayers
10
282
1108
1107
2024-12-03T14:14:56Z
Jon Harald Søby
20
4 revisi diimpor
1107
wikitext
text/x-wiki
<includeonly>mask,around,buy,city,do,event,drink,eat,go,listing,other,see,sleep,vicinity,view,black,blue,brown,chocolate,forestgreen,gold,gray,grey,lime,magenta,maroon,mediumaquamarine,navy,red,royalblue,orange,silver,steelblue,teal,fuchsia,route1,route2,route3,route4,route5</includeonly><noinclude>
{{INTERWIKI|Q41306706}}{{Documentation}}
</noinclude>
ij7gz2m570t16dajr0c2dqwtqrisv1m
Templat:Maplink
10
283
1114
1113
2024-12-03T14:14:56Z
Jon Harald Søby
20
5 revisi diimpor
1113
wikitext
text/x-wiki
<includeonly>{{#invoke:Map
| tag
| type = maplink
| zoom = {{{zoom|auto}}}
| show = {{{show | {{Maplayers}} }}}
| latitude = {{{1|}}}
| longitude = {{{2|}}}
| text = {{{name|}}}
| class = {{{class|}}}
}}</includeonly><noinclude>{{documentation}}
{{INTERWIKI|Q22821562}}
</noinclude>
c6itmio1d1w9nzhlu3e5g6mhubwqhsj
Templat:Mapmask
10
284
2543
1118
2024-12-03T14:16:00Z
Jon Harald Søby
20
1 revisi diimpor
1117
wikitext
text/x-wiki
<includeonly>{{#invoke:Map
| tag
| text=""
| type=maplink
| geotype=Polygon
| group={{{group|mask}}}
| data={{#ifeq:{{{mask|}}}|{{{mask}}}| values | world;;values }}
| fill={{{fill|#555555}}}
| fill-opacity={{{fill-opacity|0.5}}}
| stroke={{{stroke|#000000}}}
| stroke-width={{{stroke-width|1}}}
| stroke-opacity={{{stroke-opacity|1}}}
| title={{{title|}}}
| latitude=0
| longitude=0
| zoom=0
}}</includeonly><noinclude>{{INTERWIKI|Q18644238}}
</noinclude>
qyndfxaj0gnwv04gc3g045du1vtqj6k
Templat:Mapshape
10
285
2545
1124
2024-12-03T14:16:00Z
Jon Harald Søby
20
1 revisi diimpor
1123
wikitext
text/x-wiki
<includeonly>{{Mapshape/Inner
| wikidata={{{wikidata|{{#invoke:Wikidata|pageId}}}}}
| wikicommons={{{wikicommons|}}}
| type={{{type|geomask}}}
| group={{{group|mask}}}
| fill={{{fill|#555555}}}
| opacity={{{opacity|0.5}}}
| stroke={{{stroke|#000000}}}
| stroke-width={{{stroke-width|1}}}
| stroke-opacity={{{stroke-opacity|1}}}
| title={{{title|}}}
}}</includeonly><noinclude>{{Documentation}}
{{INTERWIKI|Q27921454}}
</noinclude>
rmgco5tpmiv63ck90cd6a2de7lu8b44
Templat:Mapshape/Inner
10
286
1131
1130
2024-12-03T14:14:56Z
Jon Harald Søby
20
6 revisi diimpor
1130
wikitext
text/x-wiki
<includeonly>{{#tag:maplink
|
{
"type": "ExternalData",
"service": "{{{type}}}",
"ids": "{{{wikidata}}}",
"title": "{{{wikicommons|}}}",
"properties": {
"fill": "{{{fill}}}",
"fill-opacity": {{{opacity}}},
"stroke": "{{{stroke}}}",
"stroke-width": {{{stroke-width}}},
"stroke-opacity": {{{stroke-opacity}}},
"title": "{{{title|}}}"
}
}
| text=""
| group={{{group}}}
| class=no-icon
}}</includeonly><noinclude>[[Kategori:Dynamic map templates]]
{{INTERWIKI|Q27996611}}
</noinclude>
avb7x3k13156c232bxo9i6vymmgl5r2
Templat:Mapshapes
10
287
2547
1135
2024-12-03T14:16:00Z
Jon Harald Søby
20
1 revisi diimpor
1134
wikitext
text/x-wiki
<includeonly>{{#invoke:Mapshapes|show|{{{1}}}|{{{2|}}}|{{{3|}}}|{{{4|}}}|{{{5|}}}|{{{6|}}}|{{{7|}}}|{{{8|}}}|{{{9|}}}|{{{10|}}}|stroke-width={{{stroke-width|5}}}|stroke-opacity={{{stroke-opacity|0.8}}}|default-color={{{default-color|000000}}}|group={{{group|mask}}}}}</includeonly><noinclude>
[[bn:voy:টেমপ্লেট:Mapshapes]]
[[de:voy:Vorlage:Mapshapes]]
[[el:voy:Πρότυπο:Mapshapes]]
[[en:voy:Template:Mapshapes]]
[[fr:voy:Modèle:Carte-Lignes]]
[[he:voy:תבנית:Mapshapes]]
[[it:voy:Template:Mapshapes]]
[[ja:voy:テンプレート:Mapshapes]]
[[pt:voy:Predefinição:Mapshapes]]
[[zh:voy:Template:Mapshapes]]</noinclude>
nxewvqnp91dleqf87k1y557yi234kwv
Templat:Marker
10
288
2550
1143
2024-12-03T14:16:00Z
Jon Harald Søby
20
2 revisi diimpor
1142
wikitext
text/x-wiki
<includeonly>{{#invoke:Marker|MarkerTemplate}}</includeonly><noinclude>{{INTERWIKI|Q15222336}}{{Documentation}}
</noinclude>
tm50tiryeb1rkah1so3ip9qb9mawkef
Templat:Masyarakat
10
289
1145
1144
2024-12-03T14:14:57Z
Jon Harald Søby
20
1 revisi diimpor
1144
wikitext
text/x-wiki
Masyarakat [[Berkas:Noun Project people icon 3376085.svg|35px|link=]]<noinclude>[[Kategori:Templat AIGA]]</noinclude>
3j5epjdogap4zrt660ibnsjxcc3h4cd
Templat:Mbox
10
290
1151
1150
2024-12-03T14:14:57Z
Jon Harald Søby
20
5 revisi diimpor
1150
wikitext
text/x-wiki
{{
{{namespace detect
| demospace = {{{demospace|}}}
| main =Ambox
| talk =Tmbox
| file =Imbox
| category =Ombox
| other =Ombox
}}
| type = {{{type|}}}
| image = {{{image|}}}
| imageright = {{{imageright|}}}
| class = {{{class|}}}
| style = {{{style|}}}
| textstyle = {{{textstyle|}}}
| text = {{{text}}}
| small = {{{small|}}}
| smallimage = {{{smallimage|}}}
| smallimageright = {{{smallimageright|}}}
| smalltext = {{{smalltext|}}}
| subst = {{{subst|}}}
| date = {{{date|}}}
| name = {{{name|}}}
}}
<noinclude>{{Documentation}}{{INTERWIKI|Q6063221}}
</noinclude>
sddfh5vtgygnxedv3apj8udg1xrtnhb
Templat:Mbox/doc
10
291
1154
1153
2024-12-03T14:14:57Z
Jon Harald Søby
20
2 revisi diimpor
1153
wikitext
text/x-wiki
{{Documentation subpage}}
__NOTOC__
<!-- PLEASE ADD CATEGORIES AND INTERWIKIS AT THE BOTTOM OF THIS PAGE -->
Ini adalah templat meta <nowiki>{{mbox}}</nowiki> atau '''kotak pesan multi ruang namea'''.
Templat meta ini digunakan untuk membangun templat kotak pesan yang digunakan pada beberapa jenis halaman dan karenanya perlu mengubah gaya tergantung pada halaman apa yang digunakan. Berdasarkan jenis laman yang terdeteksi, templat ini akan menggunakan salah satu dari <nowiki>{{ambox}}, {{tmbox}}, {{imbox}}, dan {{ombox}}</nowiki>.
Ingat bahwa templat ini hanya boleh digunakan untuk kotak pesan yang benar-benar perlu disesuaikan gayanya. Sebagian besar pesan kotak tidak memerlukan ini dan harus menggunakan salah satu dari <nowiki>{{ambox}}, {{tmbox}}, {{imbox}} atau {{ombox}}</nowiki>. Menggunakan templat tersebut secara langsung berarti bahwa templat Anda akan terlihat sama di halaman templatnya dan di tempat lain yang Anda tampilkan, sehingga memperjelas halaman seperti apa yang seharusnya menggunakan templat itu. Ini juga memberi Anda akses ke fitur tambahan apa pun yang ditawarkan templat tersebut, dan menghemat beberapa beban server.
==Lihat juga==
* [[Templat:Ambox]] — kotak pesan artikel
* [[Templat:Imbox]] — kotak pesan gambar
* [[Templat:Ombox]] — kotak pesan halaman lain (mis. halaman kebijakan atau bantuan)
* [[Templat:Tmbox]] — kotak pesan halaman pembicaraan
<includeonly>
<!-- CATEGORIES AND INTERWIKIS HERE, THANKS -->
[[Kategori:Templat]]
</includeonly>
8whl2f5zaw4jq5qo7i9gw8zts9f0r4p
Templat:MediaWiki:Editnotice-1-Main Page
10
292
1158
1157
2024-12-03T14:14:57Z
Jon Harald Søby
20
3 revisi diimpor
1156
wikitext
text/x-wiki
{{Singkatnya|'''Halaman ini hanya untuk diskusi ''[[Halaman Utama]] . Ini bukan tempat untuk mengajukan pertanyaan umum.'''<br/>
Jika kueri Anda tidak benar-benar terkait langsung dengan Halaman Utama, pertimbangkan untuk menggunakan [[Proyek:Pub Wisatawan|pub wisatawan]] untuk membahas Wikivoyage secara umum.}}
[[en:voy:MediaWiki:Editnotice-1-Main Page]]
p4p45gm6bszw5fjna34ia6a40dzxtf8
Templat:MediaWiki:Pemberitahuan edit-1-Halaman Utama
10
293
1160
1159
2024-12-03T14:14:57Z
Jon Harald Søby
20
1 revisi diimpor
1159
wikitext
text/x-wiki
#REDIRECT [[Templat:MediaWiki:Editnotice-1-Main Page]]
7gh50mdyb9y1bnwh690xp5dsy30nnnn
Templat:Menggunakan TemplateStyles
10
294
1164
1163
2024-12-03T14:14:57Z
Jon Harald Søby
20
3 revisi diimpor
1163
wikitext
text/x-wiki
#REDIRECT [[Templat:Uses TemplateStyles]]
pm8q6blitv4o62xc91z0efka932gzsd
Templat:Menuju ke sini
10
295
1168
1167
2024-12-03T14:14:57Z
Jon Harald Søby
20
3 revisi diimpor
1166
wikitext
text/x-wiki
Menuju ke sini [[Berkas:Pin point location SVG black.svg|20px|link=]]<noinclude>[[Kategori:Templat AIGA]]</noinclude>
lfo0egxu1e86wisotr5j3fa9qc84hp4
Templat:Menunggu
10
296
1171
1170
2024-12-03T14:14:57Z
Jon Harald Søby
20
2 revisi diimpor
1170
wikitext
text/x-wiki
Menunggu [[Berkas:Font Awesome 5 solid hourglass-half.svg|19px|link=]]<noinclude>[[Kategori:Templat AIGA]]</noinclude>
muwriu9mmx8drn18awce1afmlaagbu7
Templat:Merge from
10
297
1177
1176
2024-12-03T14:14:57Z
Jon Harald Søby
20
5 revisi diimpor
1176
wikitext
text/x-wiki
<includeonly>{{Ambox
| type = move
| image = [[Berkas:Mergefrom.svg|50px]]
| text = {{#if:{{{2|}}}|Ada usul agar artikel ini digabungkan ke: [[{{{1}}}]]{{#ifexist:{{{1}}}||[[Kategori:Pages with merge tag errors]]}}, [[{{{2}}}]]{{#ifexist:{{{2}}}||[[Kategori:Pages with merge tag errors]]}}{{#if:{{{3|}}}|, [[{{{3}}}]]{{#ifexist:{{{3}}}||[[Kategori:Pages with merge tag errors]]}}}}{{#if:{{{4|}}}|, [[{{{4}}}]]{{#ifexist:{{{4}}}||[[Kategori:Pages with merge tag errors]]}}}}{{#if:{{{5|}}}|, [[{{{5}}}]]{{#ifexist:{{{5}}}||[[Kategori:Pages with merge tag errors]]}}}}|Ada usul agar [[{{{1}}}]] digabung ke artikel ini.{{#if:{{{1|}}}|{{#ifexist:{{{1}}}||[[Kategori:Pages with merge tag errors]]}}}}}}
}}{{#ifeq:{{NAMESPACE}}|{{ns:0}}|[[Kategori:Target penggabungan]]|<!-- Don't categorize when not in main (article) space. -->}}</includeonly><noinclude>
{{Documentation}}
{{INTERWIKI|Q6041546}}
</noinclude>
9v33tkme7hstq7u1tge7fv46k13sv9f
Templat:Merge from/doc
10
298
1180
1179
2024-12-03T14:14:57Z
Jon Harald Søby
20
2 revisi diimpor
1179
wikitext
text/x-wiki
{{Documentation subpage}}
__NOTOC__
<!-- TOLONG TAMBAHKAN KATEGORI DAN INTERWIKI DI BAWAH HALAMAN INI -->
==Penggunaan==
Tempatkan templat ini, dengan nama artikel yang akan digabungkan ke sini setelah tanda pipa (atau simbol batang vertikal):<br />
<code><nowiki>{{merge from|</nowiki>''nama'' artikel yang akan digabungkan ke dalam artikel atau bagian ini<nowiki>}}</nowiki></code><br />
pada barisnya sendiri di akhir artikel (atau bagian artikel) yang kontennya perlu dipindahkan dari artikel lain yang lebih kecil.
==Tujuan==
Terkadang kami mendapatkan artikel yatim piatu baru atau bertopik terbengkalai tentang tempat atau topik yang sama. Meskipun artikel baru atau rintisan lama diberi tag untuk digabungkan ke dalam artikel ini, relatif sedikit penyunting yang menemukannya. Lebih banyak penyunting akan mengunjungi artikel (atau bagian) yang ditautkan dengan lebih baik di mana template ini ditempatkan, yang mungkin tetap tidak mengetahui artikel (duplikat/berlebihan) yang harus digabungkan ke dalamnya.
<includeonly>
<!-- CATEGORIES AND INTERWIKIS HERE, THANKS -->
[[Kategori:Templat pemeliharaan]]
</includeonly>
4hewq5piuqp3mkiessbgadon02qim93
Templat:Meter
10
299
1182
1181
2024-12-03T14:14:58Z
Jon Harald Søby
20
1 revisi diimpor
1181
wikitext
text/x-wiki
{{#switch:{{{2|}}}
| adj
| on = {{convert|{{{1|10}}}|m|ft|adj=on}}
| off
| abbr
| #default = {{convert|{{{1|10}}}|m|ft|abbr=on}}
}}<noinclude>
{{documentation}}
[[Kategori:Templat format dan fungsi]]
[[en:voy:Template:Meter]]
</noinclude>
9ulyrd8gbfmjmjbmbk4e63zft1qn8mv
Templat:Mi
10
300
1184
1183
2024-12-03T14:14:58Z
Jon Harald Søby
20
1 revisi diimpor
1183
wikitext
text/x-wiki
#redirect[[Templat:Mile]]
aw73m2yxf36bxj9173zq62u78068qxh
Templat:Mile
10
301
1186
1185
2024-12-03T14:14:58Z
Jon Harald Søby
20
1 revisi diimpor
1185
wikitext
text/x-wiki
{{#switch:{{{2|}}}
| adj
| on = {{convert|{{{1|50}}}|mi|km|adj=on}}
| off
| abbr
| #default = {{convert|{{{1|50}}}|mi|km|abbr=on}}
}}<noinclude>
{{documentation}}
[[Kategori:Templat format dan fungsi]]
[[en:voy:Template:Mile]]
</noinclude>
b7qxrdh33o78665o4pc7pb7ml4luj31
Templat:MilesPerHour
10
302
1188
1187
2024-12-03T14:14:58Z
Jon Harald Søby
20
1 revisi diimpor
1187
wikitext
text/x-wiki
{{convert|{{{1|50}}}|mph|km/h|abbr=on}}<noinclude>
{{documentation}}
[[Kategori:Templat format dan fungsi]]
[[en:voy:Template:MilesPerHour]]
</noinclude>
q9mw19pxug3x0xy500y0r0vzwtl8tzn
Templat:Millimeter
10
303
1190
1189
2024-12-03T14:14:58Z
Jon Harald Søby
20
1 revisi diimpor
1189
wikitext
text/x-wiki
{{convert|{{{1|25}}}|mm|in|abbr=on}}<noinclude>
{{documentation}}
[[Kategori:Templat format dan fungsi]]
[[en:voy:Template:Millimeter]]
</noinclude>
h6bja9nf1av9zmg37tg8dgrpp0dz9c2
Templat:Minum
10
304
1192
1191
2024-12-03T14:14:58Z
Jon Harald Søby
20
1 revisi diimpor
1191
wikitext
text/x-wiki
Minum [[Berkas:Aiga bar.svg|25px|link=]]<noinclude>[[Kategori:Templat AIGA]][[zh:voy:酒吧]]</noinclude>
cw154qmum5v3wiudeq70qehpwy33fhi
Templat:Mobil
10
305
1196
1195
2024-12-03T14:14:58Z
Jon Harald Søby
20
3 revisi diimpor
1195
wikitext
text/x-wiki
Dengan mobil [[Berkas:PKW_aus_Zusatzzeichen_1048-10.svg|35px|link=]]<noinclude>[[Kategori:Templat AIGA]][[zh:voy:Template:汽车]]</noinclude>
539b0zftq6ynbitylxaoywljl2z7r5v
Templat:Mobil sewaan
10
306
1198
1197
2024-12-03T14:14:58Z
Jon Harald Søby
20
1 revisi diimpor
1197
wikitext
text/x-wiki
Dengan mobil sewaan [[Berkas:Aiga carrental.svg|20px|link=]]<noinclude>[[Kategori:Templat AIGA]][[zh:voy:Template:自驾]]</noinclude>
gth2cm51xfq2f7ayl6pymrvm0k3y4cd
Templat:Module
10
307
1200
1199
2024-12-03T14:14:58Z
Jon Harald Søby
20
1 revisi diimpor
1199
wikitext
text/x-wiki
<includeonly>{{{{{subst|}}}#ifexpr:({{{2}}})=0|{{{{{subst|}}}#expr:{{{1}}}}}|{{{{{subst|}}}#ifexpr:({{{1}}})/({{{2}}})=(({{{1}}})/({{{2}}})round 0)|0|{{{{{subst|}}}#ifexpr:({{{1}}})/({{{2}}})>0 and({{{1}}})/({{{2}}})<1|{{{{{subst|}}}#expr:{{{1}}}}}|{{{{{subst|}}}#expr:({{{1}}})-(({{{1}}})/({{{2}}})-0.5 round 0)*({{{2}}})}}}}}}}}</includeonly><noinclude>
</noinclude>
<noinclude></noinclude>
2whxue5n6ttsj1iw7i8to3gahcyloi1
Templat:Moreinfo
10
308
1205
1204
2024-12-03T14:14:58Z
Jon Harald Søby
20
4 revisi diimpor
1204
wikitext
text/x-wiki
:''Untuk informasi lebih lanjut tentang {{{1}}}, lihat artikel [[{{{2}}}|{{{2}}}]].''<noinclude>
[[Kategori:Templat hatnote]]
{{INTERWIKI|Q13566377}}
</noinclude>
0dj9rc3dfovmy7b8m2vwgfg5pl4wpgu
Templat:Motor
10
309
1208
1207
2024-12-03T14:14:58Z
Jon Harald Søby
20
2 revisi diimpor
1207
wikitext
text/x-wiki
Dengan motor [[Berkas:Font Awesome 5 solid motorcycle.svg|23px|link=]]<noinclude>[[Kategori:Templat AIGA]]</noinclude>
b1jgqx9q31n7z3hefkt26zkiwxlt9w9
Templat:Movetocity
10
310
1211
1210
2024-12-03T14:14:58Z
Jon Harald Søby
20
2 revisi diimpor
1210
wikitext
text/x-wiki
{{Ambox
|type = content
|image = [[Berkas:Ambox globe content.svg|40px]]
|text = Ini adalah sebuah '''[[Wikiwisata:Templat artikel wilayah|artikel wilayah]]'''; senarai yang lebih rinci harusnya dipindah ke '''[[Wikiwisata:Templat artikel kota kecil|artikel kota]]''', '''[[Wikiwisata:Templat artikel distrik|artikel distrik]]''', '''[[Wikiwisata:Templat artikel daerah pinggiran|artikel daerah pinggiran]]''' atau '''[[Wikiwisata:Templat artikel taman|artikel taman (nasional)]]'''. Artikel ini seharusnya hanya memberikan gambaran singkat.}}<includeonly>{{#ifeq:{{NAMESPACE}}|{{ns:0}}|[[Kategori:Pindahkan senarai ke kota]]|<!-- Don't categorize when not in main (article) space. -->}}</includeonly><noinclude>
{{Documentation}}
{{INTERWIKI|Q15630348}}
</noinclude>
n5m8fzxjtkcnthw859nmlo796lo2ime
Templat:Movetodistrict
10
311
1214
1213
2024-12-03T14:14:58Z
Jon Harald Søby
20
2 revisi diimpor
1213
wikitext
text/x-wiki
{{Ambox
|type = content
|image = [[Berkas:Ambox globe content.svg|40px|link=]]
|text = Ini adalah sebuah '''[[Wikiwisata:Templat artikel kota besar|artikel kota besar]]''', jadi senarai yang lebih rinci harusnya dipindah ke '''[[#Distrik|artikel distriknya]]'''. Halaman ini seharusnya hanya memberikan gambaran singkat.}}<includeonly>{{#ifeq:{{NAMESPACE}}|{{ns:0}}|[[Kategori:Pindahkan senarai ke distrik]]|<!-- Don't categorize when not in main (article) space. -->}}</includeonly><noinclude>
{{Documentation}}
{{INTERWIKI|Q15630349}}
</noinclude>
0dluduoie3lnsc2k5hcaljfjlc0j8ki
Templat:Mph
10
312
1216
1215
2024-12-03T14:14:59Z
Jon Harald Søby
20
1 revisi diimpor
1215
wikitext
text/x-wiki
#REDIRECT [[Templat:MilesPerHour]]
ogto5tipq37wir7iung8pijl1se3t0j
Templat:NTD
10
313
1218
1217
2024-12-03T14:14:59Z
Jon Harald Søby
20
1 revisi diimpor
1217
wikitext
text/x-wiki
{{currency|NTD|{{{1|}}}}}<noinclude>
{{Individual currency template documentation}}
[[Kategori:Templat mata uang individual]]
[[en:voy:Template:NTD]]
</noinclude>
nte02k9w74bqcgczbvvzjarx7pcnj9g
Templat:NUMBEROFARTICLES
10
314
1221
1220
2024-12-03T14:14:59Z
Jon Harald Søby
20
2 revisi diimpor
1220
wikitext
text/x-wiki
[[Istimewa:Prefixindex/Wy/id|{{PAGESINCATEGORY:Wy/id}}]]<noinclude></noinclude>
jtlqwkgprajho14in7grog0wkvabo9p
Templat:Namespace detect
10
315
2556
1224
2024-12-03T14:16:01Z
Jon Harald Søby
20
2 revisi diimpor
1223
wikitext
text/x-wiki
{{#switch:
{{lc: <!--Lower case the result-->
<!--If no or empty "demospace" parameter then detect namespace-->
{{#if:{{{demospace|}}}
| {{{demospace}}}
| {{#if:{{{page|}}}
| <!--Detect the namespace in the "page" parameter-->
{{#ifeq:{{NAMESPACE:{{{page}}} }}|{{TALKSPACE:{{{page}}} }}
| talk
| {{SUBJECTSPACE:{{{page}}} }}
}}
| <!--No "demospace" or "page" parameters, so detect actual namespace-->
{{#ifeq:{{NAMESPACE}}|{{TALKSPACE}}
| talk
| {{SUBJECTSPACE}}
}}
}}
}}
}}
<!-- Only one of the lines below will be executed -->
<!-- Respecting empty parameters on purpose -->
| main <!--"demospace=main" or {{SUBJECTSPACE}}={{ns:0}}=""-->
| = {{{main| {{{other|}}} }}}
| talk = {{{talk| {{{other|}}} }}}
| user = {{{user| {{{other|}}} }}}
| wikivoyage = {{{wikivoyage| {{{other|}}} }}}
| file
| image = {{{file| {{{image| {{{other|}}} }}} }}}
| mediawiki = {{{mediawiki| {{{other|}}} }}}
| template = {{{template| {{{other|}}} }}}
| help = {{{help| {{{other|}}} }}}
| category = {{{category| {{{other|}}} }}}
| other
| #default = {{{other|}}} <!--"demospace=other" or a new namespace-->
}}<!--End switch--><noinclude>{{INTERWIKI|Q5837022}}
</noinclude>
46cl762sicktvu80h5d6x710xrj0y0e
Templat:Naungan
10
316
1226
1225
2024-12-03T14:14:59Z
Jon Harald Søby
20
1 revisi diimpor
1225
wikitext
text/x-wiki
Naungan [[Berkas:AIGA information.svg|25px|link=]]<noinclude>[[Kategori:Templat AIGA]][[zh:voy:Template:服務]]</noinclude>
l3wel8fg7moi2875celzjfq8lfxiyiy
Templat:Navbox
10
317
1232
1231
2024-12-03T14:14:59Z
Jon Harald Søby
20
5 revisi diimpor
1231
wikitext
text/x-wiki
<!--
Please do not edit without discussion first as this is a VERY complex template.
-->{{Navbox/core
|name = {{{name<noinclude>|{{FULLPAGENAME}}</noinclude>}}}
|navbar = {{{navbar|}}}
|state = {{{state|autocollapse}}}
|title = {{{title|}}}
|image = {{{image|}}}
|imageleft = {{{imageleft|}}}
|imagespan = {{#expr:{{#if:{{{body|}}}{{{list1|}}}|1|0}} +{{#if:{{{list2|}}}|1|0}} +{{#if:{{{list3|}}}|1|0}} +{{#if:{{{list4|}}}|1|0}} +{{#if:{{{list5|}}}|1|0}} +{{#if:{{{list6|}}}|1|0}} +{{#if:{{{list7|}}}|1|0}} +{{#if:{{{list8|}}}|1|0}} +{{#if:{{{list9|}}}|1|0}} +{{#if:{{{list10|}}}|1|0}} +{{#if:{{{list11|}}}|1|0}} +{{#if:{{{list12|}}}|1|0}} +{{#if:{{{list13|}}}|1|0}} +{{#if:{{{list14|}}}|1|0}} +{{#if:{{{list15|}}}|1|0}} +{{#if:{{{list16|}}}|1|0}} +{{#if:{{{list17|}}}|1|0}} +{{#if:{{{list18|}}}|1|0}} +{{#if:{{{list19|}}}|1|0}} +{{#if:{{{list20|}}}|1|0}}}}
|span = {{#if:{{{group1|}}}{{{group2|}}}{{{group3|}}}{{{group4|}}}{{{group5|}}}{{{group6|}}}{{{group7|}}}{{{group8|}}}{{{group9|}}}{{{group10|}}}{{{group11|}}}{{{group12|}}}{{{group13|}}}{{{group14|}}}{{{group15|}}}{{{group16|}}}{{{group17|}}}{{{group18|}}}{{{group19|}}}{{{group20|}}}{{{imageleft|}}}|{{#if:{{{image|}}}|3|2}}|{{#if:{{{image|}}}|2|1}}}}
|nogroups = {{#if:{{{group1|}}}{{{group2|}}}{{{group3|}}}{{{group4|}}}{{{group5|}}}{{{group6|}}}{{{group7|}}}{{{group8|}}}{{{group9|}}}{{{group10|}}}{{{group11|}}}{{{group12|}}}{{{group13|}}}{{{group14|}}}{{{group15|}}}{{{group16|}}}{{{group17|}}}{{{group18|}}}{{{group19|}}}{{{group20|}}}|false|true}}
|bodystyle = {{{style|}}}{{{bodystyle|}}}
|titlestyle = {{{titlestyle|}}}
|abovestyle = background:#ddddff;{{{abovestyle|}}}
|belowstyle = background:#ddddff;{{{belowstyle|}}}
|above = {{{above|}}}
|below = {{{below|}}}
|gs = white-space:nowrap;background:#ddddff;text-align:right;vertical-align:top;{{{groupstyle|}}}
|os = width:100%;font-size:95%;{{{liststyle|}}}{{{oddstyle|}}}
|es = width:100%;font-size:95%;background:#f7f7f7;{{{liststyle|}}}{{{evenstyle|}}}
|g1 = {{{group1|}}}
|g2 = {{{group2|}}}
|g3 = {{{group3|}}}
|g4 = {{{group4|}}}
|g5 = {{{group5|}}}
|g6 = {{{group6|}}}
|g7 = {{{group7|}}}
|g8 = {{{group8|}}}
|g9 = {{{group9|}}}
|g10 = {{{group10|}}}
|g11 = {{{group11|}}}
|g12 = {{{group12|}}}
|g13 = {{{group13|}}}
|g14 = {{{group14|}}}
|g15 = {{{group15|}}}
|g16 = {{{group16|}}}
|g17 = {{{group17|}}}
|g18 = {{{group18|}}}
|g19 = {{{group19|}}}
|g20 = {{{group20|}}}
|l1 = {{{body|}}}{{{list1|}}}{{{category|}}}
|l2 = {{{list2|}}}
|l3 = {{{list3|}}}
|l4 = {{{list4|}}}
|l5 = {{{list5|}}}
|l6 = {{{list6|}}}
|l7 = {{{list7|}}}
|l8 = {{{list8|}}}
|l9 = {{{list9|}}}
|l10 = {{{list10|}}}
|l11 = {{{list11|}}}
|l12 = {{{list12|}}}
|l13 = {{{list13|}}}
|l14 = {{{list14|}}}
|l15 = {{{list15|}}}
|l16 = {{{list16|}}}
|l17 = {{{list17|}}}
|l18 = {{{list18|}}}
|l19 = {{{list19|}}}
|l20 = {{{list20|}}}
}}
<noinclude>
{{Documentation}}
<!-- Add categories and interwikis to the /doc subpage, not here! -->
</noinclude>
dsxi3pmjen1pjjvd06touo0vb25ve8s
Templat:Navbox/core
10
318
1235
1234
2024-12-03T14:14:59Z
Jon Harald Søby
20
2 revisi diimpor
1233
wikitext
text/x-wiki
<table class="navbox collapsible {{{state|autocollapse}}} nowraplinks" style="margin:auto;{{#ifeq:{{{nogroups|}}}|true||background:white;}}{{#if:{{{l1|}}}|{{#if:{{{l2|}}}|background:white;}}}}{{{bodystyle|}}}"><!--
---Titlebar---
--><tr><th colspan="{{{span|1}}}" style="text-align:center;width:100%;{{{titlestyle|}}}"><!--
--><div style="float:left; width:6em; text-align:left;">{{#ifeq:{{{navbar|}}}|plain||{{Tnavbar|{{{name<noinclude>|Navbox</noinclude>}}}|mini=1}}}}</div><span style="font-size:110%;">{{{title}}}</span></th></tr><!--
---Above (optional)---
-->{{#if:{{{above|}}}|<tr><td style="text-align;center;{{{abovestyle|}}}" colspan="{{{span|1}}}">{{{above|}}}</td></tr>}}<!--
---First group and image(s)---
-->{{#if:{{{l1|}}}|<tr><!--
-->{{#if:{{{imageleft|}}}|{{#ifeq:{{{nogroups|}}}|true|<td rowspan="{{{imagespan|}}}" style="vertical-align:middle; padding-right:7px; width:0%;">{{{imageleft}}}</td>}}}}<!--
-->{{#if:{{{g1|}}}|<th style="{{{gs|}}}">{{{g1|}}}</th>}}<td colspan="{{#if:{{{g1|}}}|1|{{#ifeq:{{{nogroups|}}}|true|1|2}}}}" style="text-align:{{#if:{{{g1|}}}|left|center}};{{{os|}}}">{{{l1|}}}</td><!--
-->{{#if:{{{image|}}}|<td rowspan="{{{imagespan|}}}" style="vertical-align:middle; padding-left:7px; width:0%;">{{{image}}}</td>}}<!--
--></tr>}}<!--
---Remaining groups---
-->{{#if:{{{l2|}}}|<tr>{{#if:{{{g2|}}}|<th style="{{{gs|}}}">{{{g2|}}}</th>}}<td colspan="{{#if:{{{g2|}}}|1|{{#ifeq:{{{nogroups|}}}|true|1|2}}}}" style="text-align:{{#if:{{{g2|}}}|left|center}};{{{es|}}}">{{{l2|}}}</td></tr>}}<!--
-->{{#if:{{{l3|}}}|<tr>{{#if:{{{g3|}}}|<th style="{{{gs|}}}">{{{g3|}}}</th>}}<td colspan="{{#if:{{{g3|}}}|1|{{#ifeq:{{{nogroups|}}}|true|1|2}}}}" style="text-align:{{#if:{{{g3|}}}|left|center}};{{{os|}}}">{{{l3|}}}</td></tr>}}<!--
-->{{#if:{{{l4|}}}|<tr>{{#if:{{{g4|}}}|<th style="{{{gs|}}}">{{{g4|}}}</th>}}<td colspan="{{#if:{{{g4|}}}|1|{{#ifeq:{{{nogroups|}}}|true|1|2}}}}" style="text-align:{{#if:{{{g4|}}}|left|center}};{{{es|}}}">{{{l4|}}}</td></tr>}}<!--
-->{{#if:{{{l5|}}}|<tr>{{#if:{{{g5|}}}|<th style="{{{gs|}}}">{{{g5|}}}</th>}}<td colspan="{{#if:{{{g5|}}}|1|{{#ifeq:{{{nogroups|}}}|true|1|2}}}}" style="text-align:{{#if:{{{g5|}}}|left|center}};{{{os|}}}">{{{l5|}}}</td></tr>}}<!--
-->{{#if:{{{l6|}}}|<tr>{{#if:{{{g6|}}}|<th style="{{{gs|}}}">{{{g6|}}}</th>}}<td colspan="{{#if:{{{g6|}}}|1|{{#ifeq:{{{nogroups|}}}|true|1|2}}}}" style="text-align:{{#if:{{{g6|}}}|left|center}};{{{es|}}}">{{{l6|}}}</td></tr>}}<!--
-->{{#if:{{{l7|}}}|<tr>{{#if:{{{g7|}}}|<th style="{{{gs|}}}">{{{g7|}}}</th>}}<td colspan="{{#if:{{{g7|}}}|1|{{#ifeq:{{{nogroups|}}}|true|1|2}}}}" style="text-align:{{#if:{{{g7|}}}|left|center}};{{{os|}}}">{{{l7|}}}</td></tr>}}<!--
-->{{#if:{{{l8|}}}|<tr>{{#if:{{{g8|}}}|<th style="{{{gs|}}}">{{{g8|}}}</th>}}<td colspan="{{#if:{{{g8|}}}|1|{{#ifeq:{{{nogroups|}}}|true|1|2}}}}" style="text-align:{{#if:{{{g8|}}}|left|center}};{{{es|}}}">{{{l8|}}}</td></tr>}}<!--
-->{{#if:{{{l9|}}}|<tr>{{#if:{{{g9|}}}|<th style="{{{gs|}}}">{{{g9|}}}</th>}}<td colspan="{{#if:{{{g9|}}}|1|{{#ifeq:{{{nogroups|}}}|true|1|2}}}}" style="text-align:{{#if:{{{g9|}}}|left|center}};{{{os|}}}">{{{l9|}}}</td></tr>}}<!--
-->{{#if:{{{l10|}}}|<tr>{{#if:{{{g10|}}}|<th style="{{{gs|}}}">{{{g10|}}}</th>}}<td colspan="{{#if:{{{g10|}}}|1|{{#ifeq:{{{nogroups|}}}|true|1|2}}}}" style="text-align:{{#if:{{{g10|}}}|left|center}};{{{es|}}}">{{{l10|}}}</td></tr>}}<!--
-->{{#if:{{{l11|}}}|<tr>{{#if:{{{g11|}}}|<th style="{{{gs|}}}">{{{g11|}}}</th>}}<td colspan="{{#if:{{{g11|}}}|1|{{#ifeq:{{{nogroups|}}}|true|1|2}}}}" style="text-align:{{#if:{{{g11|}}}|left|center}};{{{os|}}}">{{{l11|}}}</td></tr>}}<!--
-->{{#if:{{{l12|}}}|<tr>{{#if:{{{g12|}}}|<th style="{{{gs|}}}">{{{g12|}}}</th>}}<td colspan="{{#if:{{{g12|}}}|1|{{#ifeq:{{{nogroups|}}}|true|1|2}}}}" style="text-align:{{#if:{{{g12|}}}|left|center}};{{{es|}}}">{{{l12|}}}</td></tr>}}<!--
-->{{#if:{{{l13|}}}|<tr>{{#if:{{{g13|}}}|<th style="{{{gs|}}}">{{{g13|}}}</th>}}<td colspan="{{#if:{{{g13|}}}|1|{{#ifeq:{{{nogroups|}}}|true|1|2}}}}" style="text-align:{{#if:{{{g13|}}}|left|center}};{{{os|}}}">{{{l13|}}}</td></tr>}}<!--
-->{{#if:{{{l14|}}}|<tr>{{#if:{{{g14|}}}|<th style="{{{gs|}}}">{{{g14|}}}</th>}}<td colspan="{{#if:{{{g14|}}}|1|{{#ifeq:{{{nogroups|}}}|true|1|2}}}}" style="text-align:{{#if:{{{g14|}}}|left|center}};{{{es|}}}">{{{l14|}}}</td></tr>}}<!--
-->{{#if:{{{l15|}}}|<tr>{{#if:{{{g15|}}}|<th style="{{{gs|}}}">{{{g15|}}}</th>}}<td colspan="{{#if:{{{g15|}}}|1|{{#ifeq:{{{nogroups|}}}|true|1|2}}}}" style="text-align:{{#if:{{{g15|}}}|left|center}};{{{os|}}}">{{{l15|}}}</td></tr>}}<!--
-->{{#if:{{{l16|}}}|<tr>{{#if:{{{g16|}}}|<th style="{{{gs|}}}">{{{g16|}}}</th>}}<td colspan="{{#if:{{{g16|}}}|1|{{#ifeq:{{{nogroups|}}}|true|1|2}}}}" style="text-align:{{#if:{{{g16|}}}|left|center}};{{{es|}}}">{{{l16|}}}</td></tr>}}<!--
-->{{#if:{{{l17|}}}|<tr>{{#if:{{{g17|}}}|<th style="{{{gs|}}}">{{{g17|}}}</th>}}<td colspan="{{#if:{{{g17|}}}|1|{{#ifeq:{{{nogroups|}}}|true|1|2}}}}" style="text-align:{{#if:{{{g17|}}}|left|center}};{{{os|}}}">{{{l17|}}}</td></tr>}}<!--
-->{{#if:{{{l18|}}}|<tr>{{#if:{{{g18|}}}|<th style="{{{gs|}}}">{{{g18|}}}</th>}}<td colspan="{{#if:{{{g18|}}}|1|{{#ifeq:{{{nogroups|}}}|true|1|2}}}}" style="text-align:{{#if:{{{g18|}}}|left|center}};{{{es|}}}">{{{l18|}}}</td></tr>}}<!--
-->{{#if:{{{l19|}}}|<tr>{{#if:{{{g19|}}}|<th style="{{{gs|}}}">{{{g19|}}}</th>}}<td colspan="{{#if:{{{g19|}}}|1|{{#ifeq:{{{nogroups|}}}|true|1|2}}}}" style="text-align:{{#if:{{{g19|}}}|left|center}};{{{os|}}}">{{{l19|}}}</td></tr>}}<!--
-->{{#if:{{{l20|}}}|<tr>{{#if:{{{g20|}}}|<th style="{{{gs|}}}">{{{g20|}}}</th>}}<td colspan="{{#if:{{{g20|}}}|1|{{#ifeq:{{{nogroups|}}}|true|1|2}}}}" style="text-align:{{#if:{{{g20|}}}|left|center}};{{{es|}}}">{{{l20|}}}</td></tr>}}<!--
---Below (optional)---
-->{{#if:{{{below|}}}|<tr><td style="text-align:center;{{{belowstyle|}}}" colspan="{{{span|1}}}">{{{below|}}}</td></tr>}}<!--
--></table>
hdfyo61hi5018nekcdryplzxz2eizv0
Templat:Nihongo
10
319
1238
1237
2024-12-03T14:14:59Z
Jon Harald Søby
20
2 revisi diimpor
1237
wikitext
text/x-wiki
<includeonly>{{#invoke:Nihongo|nihongo}}</includeonly><noinclude>
{{Documentation}}
<!-- Add categories to the /doc subpage and interwikis to Wikidata. -->
</noinclude>
85ai02hzcxrj1whe08v0mug5iexcfvb
Templat:North American Barncompass
10
320
1242
1241
2024-12-03T14:14:59Z
Jon Harald Søby
20
3 revisi diimpor
1241
wikitext
text/x-wiki
{| style="background-color: #fdffe7; border: 1px solid #fceb92;"
|rowspan="2" style="vertical-align: middle; padding: 5px;" | [[Berkas:Barncompass-North_America.png|100px]]
|style="font-size: x-large; padding: 3px 3px 0 3px; height: 1.5em;" | '''BintangWiki Amerika Utara'''
|-
|style="vertical-align: middle; padding: 3px;" | {{{1}}}
|}<noinclude>
[[Kategori:Templat BintangWiki]]
[[en:voy:Template:North American Barncompass]]
</noinclude>
n07d0615wj9ia9j7a4fkfo33kdomk2e
Templat:Notice
10
321
1246
1245
2024-12-03T14:14:59Z
Jon Harald Søby
20
3 revisi diimpor
1245
wikitext
text/x-wiki
{{Mbox
| name = Notice
| style = {{{style|}}}
| textstyle = {{{textstyle|}}}
| subst = <includeonly>{{subst:substcheck}}</includeonly>
| demospace = {{{demospace|}}}
| image = {{{image|}}}
| small = {{{small|}}}
| smallimage = {{#if:{{{image|}}}|[[Berkas:{{{image}}}|30px|Notice]]}}
| text = {{#if:{{{header|}}}|<div style="text-align: center">'''{{{header}}}'''</div>}}{{{text|{{{1}}}}}}
}}<noinclude>{{INTERWIKI|Q5646225}}
</noinclude>
ftbachxrkb469enjv4fccj1wv6bo9mo
Templat:Nowrap
10
322
1249
1248
2024-12-03T14:15:00Z
Jon Harald Søby
20
2 revisi diimpor
1248
wikitext
text/x-wiki
<templatestyles src="Nowrap/core.css"/><span class="nowrap">{{{1}}}</span><noinclude>
{{Documentation}}
<!--interwikis/categories go inside doc-->
{{INTERWIKI|Q5412454}}
</noinclude>
aex8x3h87djumgmug0mesnz4w9uorzy
Templat:Nowrap/core.css
10
323
1251
1250
2024-12-03T14:15:00Z
Jon Harald Søby
20
1 revisi diimpor
1250
sanitized-css
text/css
.nowrap,
.nowrap a:before,
.nowrap .selflink:before {
white-space: nowrap;
}
mac6w7xrwsyyjl059kvsin0tuz2yqbc
Templat:Nutshell
10
324
1255
1254
2024-12-03T14:15:00Z
Jon Harald Søby
20
3 revisi diimpor
1254
wikitext
text/x-wiki
{{Ombox
|image=[[Berkas:Nutshell{{#ifeq:{{NAMESPACE}}|{{TALKSPACE}}|-talk}}.png|30px]]
|text='''Ringkasan {{{title|halaman ini}}}:''' {{#if:{{{2|}}}|*{{{1}}}
*{{{2}}}{{#if:{{{3|}}}|
*{{{3}}}}}|{{{1}}}}}
}}<noinclude>
[[en:voy:Template:Nutshell]]
</noinclude>
i1v586x3zq6ch7ctbeip030378a7o44
Templat:Oceanian Barncompass
10
325
1257
1256
2024-12-03T14:15:00Z
Jon Harald Søby
20
1 revisi diimpor
1256
wikitext
text/x-wiki
{| style="background-color: #fdffe7; border: 1px solid #fceb92;"
|rowspan="2" style="vertical-align: middle; padding: 5px;" | [[Berkas:Barncompass-Australia & Oceania.png|100px]]
|style="font-size: x-large; padding: 3px 3px 0 3px; height: 1.5em;" | '''BintangWiki Oseania'''
|-
|style="vertical-align: middle; padding: 3px;" | {{{1}}}
|}<noinclude>
[[Kategori:Templat BintangWiki]]
[[en:voy:Template:Oceanian Barncompass]]
</noinclude>
hub23purdo8hli1ky1nyn1xrk4wahzw
Templat:Ombox
10
326
2559
1265
2024-12-03T14:16:01Z
Jon Harald Søby
20
2 revisi diimpor
1264
wikitext
text/x-wiki
<table class="metadata plainlinks ombox {{#switch:{{{small|}}}
| left = mbox-small-left
}} " style="{{{style|}}}margin:0 10% 1.5em;border:1px solid #AAAAAA;{{#switch:{{{type|}}}
| speedy = background:#FFDDDD;border-left:1px #BBBBAA solid;
| delete = background:#FBFBFB;border-left:1px #BBBBAA solid;
| content = background:#FBFBFB;border-left:1px #BBBBAA solid;
| approval = background:#FBFBFB;border-left:1px #BBBBAA solid;
| move = background:#FBFBFB;border-left:1px #BBBBAA solid;
| style = background:#FBFBFB;border-left:1px #BBBBAA solid;
| protection = background:#FBFBFB;border-left:1px #BBBBAA solid;
| notice<!-- = default -->
| #default = background:#FBFBFB;border-left:1px #BBBBAA solid;
}}{{#if:{{{stacked|}}}|border-top:-1px;}}"><tr>
{{#switch:{{{image|}}}
| blank <!-- Fall back to "none", since deprecated. -->
| none =
<td class="mbox-empty-cell" style="width:1px;border:none;padding:0;"></td><!-- No image. Cell with some width or padding necessary for text cell to have 100% width. -->
| #default =
<td class="mbox-image" style="border:none;padding:2px 0 2px 0.9em;text-align:center;">{{#switch:{{{small|}}}
| left = <!-- Don't use the DIV -->
| #default = <div style="width:52px;">
}}{{#if:{{{image|}}}
| {{{image}}}
| {{#switch:{{{type|}}}
| speedy = [[Berkas:Ambox speedy deletion.png|Speedy|{{#switch:{{{small|}}}|left=20x20px|#default=40x40px}}|link=]]
| delete = [[Berkas:Ambox deletion.png|Delete|{{#switch:{{{small|}}}|left=20x20px|#default=40x40px}}|link=]]
| content = [[Berkas:Ambox content.png|Content|{{#switch:{{{small|}}}|left=20x20px|#default=40x40px}}|link=]]
| approval = [[Berkas:Thumb up icon.svg|Approval|{{#switch:{{{small|}}}|left=20x20px|#default=40x40px}}|link=]]
| move = [[Berkas:Ambox_move.png|Move|{{#switch:{{{small|}}}|left=20x20px|#default=40x40px}}|link=]]
| style = [[Berkas:Edit-clear.svg|Style|{{#switch:{{{small|}}}|left=20x20px|#default=40x40px}}|link=]]
| protection = [[Berkas:Ambox protection.png|Protection|{{#switch:{{{small|}}}|left=20x20px|#default=40x40px}}|link=]]
| notice<!-- = default -->
| #default = [[Berkas:Ambox notice.png|Information|{{#switch:{{{small|}}}|left=20x20px|#default=40x40px}}|link=]]
}}
}}{{#switch:{{{small|}}}
| left = <!-- Don't use the /DIV -->
| #default = </div>
}}</td>
}}
<td class="mbox-text" style="{{{textstyle|}}}width:100%;border:none;padding:0.25em 0.9em;text-align:left;">{{{text|}}}</td>
{{#if:{{{imageright|}}}
| {{#ifeq:{{{imageright|}}}|none
| <!-- No image. -->
| <td class="mbox-imageright" style="border:none;padding:2px 0.9em 2px 0;text-align:center;">{{#switch:{{{small|}}}
| left = {{{imageright|}}}
| #default = <div style="width:{{{imagerightwidth|52}}}px;">{{{imageright|}}}</div>
}}</td>
}}
}}
</tr></table><noinclude>{{Documentation}}</noinclude>
pd88qq0nnkb2vlu691b7mgzbogup8w7
Templat:Ombox/doc
10
327
1268
1267
2024-12-03T14:15:00Z
Jon Harald Søby
20
2 revisi diimpor
1267
wikitext
text/x-wiki
{{Documentation subpage}}
__NOTOC__
<!-- PLEASE ADD CATEGORIES AND INTERWIKIS AT THE BOTTOM OF THIS PAGE -->
==Pemakaian==
Contoh, untuk menampilkan pemberitahuan:
<syntaxhighlight lang="wikitext">
{{Ombox
| text = Halo dunia!
}}
</syntaxhighlight>
Kode di atas akan menghasilkan:
{{Ombox
| text = Halo dunia!
}}
===Mengubah gambar===
Anda dapat mengubah gambar dengan menggunakan parameter <code>| image</code> . Misalnya, Anda dapat menambahkan <nowiki>[[Berkas:Historical.svg|30px|left]]</nowiki> untuk mengubah ikon menjadi ikon arsip.
==Lihat juga==
* [[Templat:Ambox]] — kotak pesan artikel
* [[Templat:Imbox]] — kotak pesan gambar
* [[Templat:Mbox]] — kotak pesan multi ruang nama
* [[Templat:Tmbox]] — kotak pesan halaman pembicaraan
<includeonly>
<!-- CATEGORIES AND INTERWIKIS HERE, THANKS -->
[[Kategori:Templat]]
</includeonly>
6hy3fgkxyvyjxpk1zkcd3i4y9ibyyn4
Templat:Otbp
10
328
2561
1276
2024-12-03T14:16:01Z
Jon Harald Søby
20
1 revisi diimpor
1274
wikitext
text/x-wiki
[[Berkas:Breidamerkurjoekull.jpg|right|frameless|300px|link=]]
'''[[Islandia]]''' adalah sebuah negara yang terletak di Samudra Atlantik utara. Negara ini berada di antara Eropa dan Amerika Utara, Walaupun bukan merupakan bagian dari daratan Eropa, negara ini sering dianggap sebagai negara Eropa. Negara ini merupakan negara yang indah dan cocok untuk wisatawan yang senang menikmati bentang alam. Selain itu, pada musim dingin pengunjung jika beruntung dapat menyaksikan langsung fenomena [[:id:Aurora|aurora borealis]]. {{HU/Baca|Islandia}}
<noinclude></noinclude>
85q886n0626or5g8dszakyitfrssl40
Templat:Other uses
10
329
2563
1279
2024-12-03T14:16:01Z
Jon Harald Søby
20
1 revisi diimpor
1278
wikitext
text/x-wiki
#REDIRECT[[Templat:Otheruses]]
lpe3blo407x4b1doy2mk7p6ic2howdn
Templat:Otheruses
10
330
2565
1287
2024-12-03T14:16:01Z
Jon Harald Søby
20
1 revisi diimpor
1284
wikitext
text/x-wiki
:<span class="noexcerpt">''Untuk kegunaan lain, lihat [[{{{1|{{PAGENAME}}}}} (disambiguasi)]].''</span>
<noinclude>[[Kategori:Templat hatnote]]
{{INTERWIKI|Q5758947}}
</noinclude>
7lmoae0enioosk7gxthb7qdzh5ywbik
Templat:Ounce
10
331
1292
1291
2024-12-03T14:15:01Z
Jon Harald Søby
20
4 revisi diimpor
1291
wikitext
text/x-wiki
{{convert|{{{1|4}}}|oz|g|abbr=on}}<noinclude>
[[Kategori:Formatting and function templates]]
{{INTERWIKI|Q111697075}}
</noinclude>
bazxlqw2tzw3sfs0e1aaul3lsuydzzr
Templat:Outline
10
332
1298
1297
2024-12-03T14:15:01Z
Jon Harald Søby
20
5 revisi diimpor
1297
wikitext
text/x-wiki
[[Berkas:Start-icon.svg|15px]] '''[[Wikivoyage:artikel garis besar|Garis besar]]'''<noinclude></noinclude>
7ms2z71n4qkvvovp18mg6unb9g1ypqu
Templat:Outlineairport
10
333
2567
1301
2024-12-03T14:16:01Z
Jon Harald Søby
20
1 revisi diimpor
1299
wikitext
text/x-wiki
{{stbox|status=outline|type=airport}}<noinclude>[[Kategori:Templat klasifikasi artikel]]{{INTERWIKI|Q15630357}}</noinclude>
p3liurywkmqwqovze6gddtdoi7987s6
Templat:Outlinecity
10
334
2569
1306
2024-12-03T14:16:01Z
Jon Harald Søby
20
1 revisi diimpor
1305
wikitext
text/x-wiki
{{Stbox|status=outline|type=city}}<noinclude>[[Kategori:Templat klasifikasi artikel]]{{INTERWIKI|Q14943467}}</noinclude>
h6fpb4i7u76vxw15synssoc1w0sswv2
Templat:Outlinecontinent
10
335
2571
1309
2024-12-03T14:16:01Z
Jon Harald Søby
20
1 revisi diimpor
1308
wikitext
text/x-wiki
{{Stbox|status=outline|type=continent}}{{#ifeq:{{NAMESPACE}}|{{ns:0}}|[[Kategori:All destination articles]]|<!-- Don't categorize when not in main (article) space. -->}}<noinclude>[[Kategori:Templat klasifikasi artikel]]{{INTERWIKI|Q15630360}}</noinclude>
n1s55vtpnln4qwtvrwf980dllok1z7g
Templat:Outlinecountry
10
336
2573
1317
2024-12-03T14:16:01Z
Jon Harald Søby
20
1 revisi diimpor
1316
wikitext
text/x-wiki
{{stbox|status=outline|type=country}}<noinclude>[[Kategori:Templat klasifikasi artikel]] {{INTERWIKI|Q14326175}}</noinclude>
f9rwodqjkq5g95m16lg0wnoymbzcpcj
Templat:Outlinedistrict
10
337
2575
1320
2024-12-03T14:16:01Z
Jon Harald Søby
20
1 revisi diimpor
1318
wikitext
text/x-wiki
{{stbox|status=outline|type=district}}
mxgm4v0zeu0ao2mmtmzijnitjeddx2u
Templat:Outlineitinerary
10
338
1323
1322
2024-12-03T14:15:01Z
Jon Harald Søby
20
2 revisi diimpor
1322
wikitext
text/x-wiki
{{Stbox|status=outline|type=itinerary}}<noinclude>[[Kategori:Templat klasifikasi artikel]]
{{INTERWIKI|Q14943470}}
</noinclude>
cg7036qdceevfyp22xr63m0ixet7tfi
Templat:Outlinepark
10
339
2577
1327
2024-12-03T14:16:01Z
Jon Harald Søby
20
1 revisi diimpor
1326
wikitext
text/x-wiki
{{stbox|status=outline|type=park}}<noinclude>[[Kategori:Templat klasifikasi artikel]]</noinclude>
p48e16cqx4ahg5uuyqgkcjfzaymki53
Templat:Outlinephrasebook
10
340
2581
1331
2024-12-03T14:16:01Z
Jon Harald Søby
20
3 revisi diimpor
1330
wikitext
text/x-wiki
{{stbox|status=outline|type=phrasebook}}<noinclude>[[Kategori:Templat klasifikasi artikel]]
{{INTERWIKI|Q14943468}}
</noinclude>
cmtie1rfotsejx5nt43wjqdjmqac14n
Templat:Outlineregion
10
341
2583
1336
2024-12-03T14:16:01Z
Jon Harald Søby
20
1 revisi diimpor
1334
wikitext
text/x-wiki
{{Stbox|status=outline|type=region}}<noinclude>[[Kategori:templat klasifikasi artikel]]</noinclude>
6mcdextfos4mhkvq4m7swomlb7g9i6y
Templat:Outlineruralarea
10
342
2585
1338
2024-12-03T14:16:01Z
Jon Harald Søby
20
1 revisi diimpor
1337
wikitext
text/x-wiki
{{stbox|status=outline|type=ruralarea}}<noinclude>[[Kategori:Templat klasifikasi artikel]][[en:voy:Template:Outlineruralarea]]</noinclude>
ehyil5oq2xhhefy7w91jza1q7pb05ep
Templat:Outlinetopic
10
343
1342
1341
2024-12-03T14:15:02Z
Jon Harald Søby
20
3 revisi diimpor
1341
wikitext
text/x-wiki
{{stbox|status=outline|type=topic}}<noinclude>[[Kategori:Templat klasifikasi artikel]]
[[en:voy:Template:Outlinetopic]]</noinclude>
364jmtmcku21tl059j11e4t07vvx3cv
Templat:Overseasjobscam
10
344
1348
1347
2024-12-03T14:15:02Z
Jon Harald Søby
20
5 revisi diimpor
1347
wikitext
text/x-wiki
<includeonly>{{Warningbox
| '''Penipuan pekerjaan di luar negeri''' marak terjadi di {{#if:{{{1|}}}|{{{1}}}|{{BASEPAGENAME}}}}. Orang-orang akan dibujuk dengan tawaran pekerjaan bergaji tinggi dengan sedikit atau tanpa butuh pengalaman atau tanpa harus membuat visa kerja, kemudian disandera dengan ancaman kekerasan lalu dipaksa bekerja di pusat panggilan, perjudian daring, dll. Lihat [[Bekerja di luar negeri#Perdagangan manusia dan perbudakan modern|Perdagangan manusia]] untuk detilnya. '''Penutur bahasa Mandarin''' adalah yang paling sering menjadi sasaran, tetapi penutur bahasa lain juga pernah terjebak. Jika Anda atau seseorang yang Anda kenal telah terperangkap dalam penipuan ini, hubungi [[misi diplomatik]] negara Anda{{#if:{{{2|}}}|, atau aparat setempat di: {{{2|}}}|.}}
|hk=https://www.sb.gov.hk/eng/ota/info-overseasjobscam.html
}}
</includeonly><noinclude>{{Documentation}}
{{INTERWIKI|Q114839238}}
</noinclude>
04bh93s9ntospc9t4lnhghdf1252jre
Templat:Oz
10
345
1350
1349
2024-12-03T14:15:02Z
Jon Harald Søby
20
1 revisi diimpor
1349
wikitext
text/x-wiki
#REDIRECT [[Templat:Ounce]]
l1mhooybajea41ya55sxnsd6wcijxdf
Templat:PHP
10
346
1352
1351
2024-12-03T14:15:02Z
Jon Harald Søby
20
1 revisi diimpor
1351
wikitext
text/x-wiki
{{currency|PHP|{{{1|}}}}}<noinclude>
{{Individual currency template documentation}}
[[Kategori:Templat mata uang individual]]
[[en:voy:Template:PHP]]
</noinclude>
nv4ta7hrw8yox9reuvx96hqo0g8k6ze
Templat:Page-banner
10
347
1373
1372
2024-12-03T14:15:03Z
Jon Harald Søby
20
20 revisi diimpor
1372
wikitext
text/x-wiki
#redirect [[Templat:Pagebanner]]
lvxaog27gthmns1rki7g0l5kt0uxs17
Templat:Pagebanner
10
348
2589
1396
2024-12-03T14:16:01Z
Jon Harald Søby
20
3 revisi diimpor
1395
wikitext
text/x-wiki
<templatestyles src="Pagebanner/styles.css"/>{{#ifeq: {{NAMESPACE}} | {{ns:User}} | {{Userpagebanner}} }}<!--
-->{{CountryData2HTML}}{{GPX indicator}}
<div class="noprint">
<div id="mf-pagebanner">
<div class="topbanner" style="position: relative; overflow: hidden; max-width: 1800px; height: auto;"><div style="position: absolute; z-index: 2; margin: 0.6em 0 0 0.4em; padding: 8px 7px; font-size: 2.2em; font-weight: bold; background: rgb(16,16,16); background: rgba(0,0,0,0.3); border-radius: 4px; color: white; white-space: nowrap; line-height: 0.9em;">
<span style="display:none" id="banner-drapeau">{{#ifexist:media:{{#property:p41}}|[[Berkas:{{#property:p41}}{{!}}35px{{!}}{{#if: {{{PAGENAME|}}}|Bendera {{{PAGENAME}}}|Bendera {{PAGENAME}}}}]]|{{#ifexist:media:{{#property:p94}}|[[FIle:{{#property:p94}}{{!}}35px{{!}}{{#if: {{{PAGENAME|}}}|Lambang {{{PAGENAME}}}|Lambang {{PAGENAME}}}}]]|}}}}{{#if: {{{lambang|}}} | [[Berkas:{{{lambang}}}{{!}}35px{{!}}{{#if: {{{PAGENAME|}}}|Lambang {{{PAGENAME}}}|Lambang {{PAGENAME}}}}]] }}</span>
<span style="font-size:30%;">{{#titleparts:{{PAGENAME}}|2}}/</span>{{{pgname|{{SUBPAGENAME}}}}}</div><div class="iconbox">
</div>
{{#switch: {{{1|}}}
| none = [[Berkas:Pagebanner default.jpg|frameless|1800px]]
| = [[Berkas:Pagebanner default.jpg|frameless|1800px]]
| Europe = [[Berkas:Pagebanner default.jpg|frameless|1800px]]
| North America = [[Berkas:Pagebanner default.jpg|frameless|1800px]]
| Middle East = [[Berkas:Mena-asia_default_banner.jpg|1800px]]
| ME = [[Berkas:Mena-asia_default_banner.jpg|1800px]]
| North Africa = [[Berkas:Mena-asia_default_banner.jpg|1800px]]
| Asia = [[Berkas:Mena-asia_default_banner.jpg|1800px]]
| South America = [[Berkas:S-amer africa default banner.jpg|1800px]]
| SA = [[Berkas:S-amer africa default banner.jpg|1800px]]
| Africa = [[Berkas:S-amer africa default banner.jpg|1800px]]
| Caribbean = [[Berkas:Caribbean default banner.jpg|1800px]]
| Australia = [[Berkas:Australia-oceania default banner.jpg|1800px]]
| Oceania = [[Berkas:Australia-oceania default banner.jpg|1800px]]
| New Zealand = [[Berkas:NZ default banner.jpg|1800px]]
| NZ = [[Berkas:NZ default banner.jpg|1800px]]
| Travel topic = [[Berkas:TT Banner.jpg|1800px]]
| Topic = [[Berkas:TT Banner.jpg|1800px]]
| TT = [[Berkas:TT Banner.jpg|1800px]]
| Flying = [[Berkas:Generic flying banner.jpg|1800px]]
| Dive guide = [[Berkas:Default Scuba diving banner.JPG|1800px]]
| Dive = [[Berkas:Default Scuba diving banner.JPG|1800px]]
| Diving = [[Berkas:Default Scuba diving banner.JPG|1800px]]
| Itinerary = [[Berkas:Itinerary banner.jpg|1800px]]
| #default = [[Berkas:{{{1|}}}|frameless|1800px|{{{caption|}}}]]}}
<!--<div style="position: absolute; bottom: 6px; left: 0; z-index: 3; width:100%;">
{{#ifeq:{{{notoc|}}}|true||<div class="hlist" style="display: inline; white-space: nowrap;"<div style="width: 100%; max-width: 170em; color: black;"><div style="width: 100%; max-width: 170em; margin: 0; padding: 0; line-height: 1.1em; color: white; background: rgb(16,16,16); background: rgba(0,0,0,0.3); border: none;">__TOC__</div></div></div>}}
</div>-->
{{#if: {{{disambig|}}}
| {{#switch: {{{disambig|}}}
| yes={{Other uses}}
| #default ={{Other uses|{{{disambig}}}}}
}}}}
</div></div></div>
<noinclude>
{{documentation}}
{{INTERWIKI|Q14288116}}
</noinclude>
np9uovj2egvdql0lnjkk9skao8dznku
Templat:Pagebanner/doc
10
349
1398
1397
2024-12-03T14:15:03Z
Jon Harald Søby
20
1 revisi diimpor
1397
wikitext
text/x-wiki
{{Uses TemplateStyles|Template:Pagebanner/styles.css}}
53panywgskhm7mvqeh48kfowm6bul3z
Templat:Pagebanner/styles.css
10
350
1401
1400
2024-12-03T14:15:03Z
Jon Harald Søby
20
2 revisi diimpor
1400
sanitized-css
text/css
.oo-ui-icon-unesco {
background-image: url('https://upload.wikimedia.org/wikipedia/commons/b/b1/WorldHeritageBlanc.svg');
}
.oo-ui-icon-star {
background-image: url('https://upload.wikimedia.org/wikipedia/commons/e/e7/Cscr-featured.svg');
}
.oo-ui-icon-ftt {
background-image: url('https://upload.wikimedia.org/wikipedia/commons/thumb/b/b0/Writing_Circle.svg/25px-Writing_Circle.svg.png');
}
.oo-ui-icon-dotm {
background-image: url('https://upload.wikimedia.org/wikipedia/commons/thumb/5/50/Yes_Check_Circle.svg/25px-Yes_Check_Circle.svg.png');
}
.oo-ui-icon-otbp {
background-image: url('https://upload.wikimedia.org/wikipedia/commons/thumb/6/6e/Right_turn_icon_blue.svg/25px-Right_turn_icon_blue.svg.png');
}
ms9mcqffb9izi634mqy4xgbyq3fi7pn
Templat:Pagebanner2
10
351
1411
1410
2024-12-03T14:15:03Z
Jon Harald Søby
20
9 revisi diimpor
1410
wikitext
text/x-wiki
<templatestyles src="Pagebanner2/styles.css"/>
<includeonly>{{#ifeq: {{NAMESPACE}} | {{ns:User}} }}<!--
-->{{#switch: {{{1|}}}
| none = [[Berkas:Pagebanner default.jpg|frameless|1800px]]
| = [[Berkas:Pagebanner default.jpg|frameless|1800px]]
| Europe = [[Berkas:Pagebanner default.jpg|frameless|1800px]]
| North America = [[Berkas:Pagebanner default.jpg|frameless|1800px]]
| Middle East = [[Berkas:Mena-asia_default_banner.jpg|1800px]]
| ME = [[Berkas:Mena-asia_default_banner.jpg|1800px]]
| North Africa = [[Berkas:Mena-asia_default_banner.jpg|1800px]]
| Asia = [[Berkas:Mena-asia_default_banner.jpg|1800px]]
| South America = [[Berkas:S-amer africa default banner.jpg|1800px]]
| SA = [[Berkas:S-amer africa default banner.jpg|1800px]]
| Africa = [[Berkas:S-amer africa default banner.jpg|1800px]]
| Caribbean = [[Berkas:Caribbean default banner.jpg|1800px]]
| Australia = [[Berkas:Australia-oceania default banner.jpg|1800px]]
| Oceania = [[Berkas:Australia-oceania default banner.jpg|1800px]]
| New Zealand = [[Berkas:NZ default banner.jpg|1800px]]
| NZ = [[Berkas:NZ default banner.jpg|1800px]]
| Travel topic = [[Berkas:TT Banner.jpg|1800px]]
| Topic = [[Berkas:TT Banner.jpg|1800px]]
| TT = [[Berkas:TT Banner.jpg|1800px]]
| Flying = [[Berkas:Generic flying banner.jpg|1800px]]
| Dive guide = [[Berkas:Default Scuba diving banner.JPG|1800px]]
| Dive = [[Berkas:Default Scuba diving banner.JPG|1800px]]
| Diving = [[Berkas:Default Scuba diving banner.JPG|1800px]]
| Itinerary = [[Berkas:Itinerary banner.jpg|1800px]]
| #default = [[Berkas:{{{1|}}}|frameless|1800px|{{{caption|}}}]]
}}
| {{#if: {{{caption|}}} | tooltip={{{caption|}}} }}
| {{#if: {{{pgname|}}} | pgname={{{pgname|}}} }}
| {{#if: {{{origin|}}} | origin={{{origin|}}} }}
| {{#if: {{{unesco|}}} | icon-unesco=UNESCO_World_Heritage_List }}
| {{#if: {{{star|}}} | icon-star=Star_article }}
| {{#if: {{{otbp|}}} | icon-otbp=Previously_Off_the_beaten_path }}
| {{#if: {{{dotm|}}} | icon-dotm=Previous_Destinations_of_the_month }}
| {{#if: {{{ftt|}}} | icon-ftt=Previous_Featured_travel_topics }}
| toc={{#ifeq: {{{notoc|}}} | true | no | yes }}
}}
]]<!--
-->{{#if: {{{disambig|}}}
| {{#switch: {{{disambig|}}}
| yes={{other uses}}
| #default ={{other uses|{{{disambig}}}}}
}}
|
}}<!-- Banner categories
-->{{#if: {{{unesco|}}} | [[Kategori:UNESCO World Heritage Sites]] }} {{#if: {{{otbp|}}} | [[Kategori:Previously Off the beaten path]] }} {{#if: {{{dotm|}}} | [[Kategori:Previous Destinations of the month]] }} {{#if: {{{ftt|}}} | [[Kategori:Previous Featured travel topics]] }}<!--
-->{{#ifeq:{{NAMESPACE}}|{{NS:0}}|{{#if:{{#invoke:Wikidata|getSiteLink|enwiki}}||[[Kategori:Articles without Wikipedia links (via Wikidata)]]}}}}<!--
-->{{#ifeq: {{{1|}}} | Disambiguation banner.png
| {{#ifeq: {{NAMESPACE}}
| {{NS:0}}
| [[Kategori:Has standard banner]]
}}
| {{#if: {{#property:P948}}
| {{#ifeq: {{{index|}}} | yes
|
| [[Kategori:Has custom banner]]
}}
| {{#ifeq: {{NAMESPACE}} | {{ns:}}
| {{#switch: {{{1|}}}
| = {{#ifeq: {{{index|}}} | yes
|
| [[Kategori:Has default banner]]
}}
| Pagebanner default.jpg
| Pagebanner_default.jpg
| Mena-asia default banner.jpg
| Mena-asia_default_banner.jpg
| S-amer africa default banner.jpg
| S-amer_africa_default_banner.jpg
| Caribbean default banner.jpg
| Caribbean_default_banner.jpg
| Australia-oceania default banner.jpg
| Australia-oceania_default_banner.jpg
| TT Banner.jpg
| TT_Banner.jpg
| Generic flying banner.jpg
| Generic_flying_banner.jpg
| Default Scuba diving banner.JPG
| Default_Scuba_diving_banner.JPG
| Itinerary banner.jpg
| Itinerary_banner.jpg
| Welcome_banner.jpg
| Welcome banner.jpg
| Europe
| North America
| Middle East
| ME
| North Africa
| Asia
| South America
| SA
| Africa
| Caribbean
| Australia
| Oceania
| New Zealand
| NZ
| Travel topic
| Topic
| TT
| Flying
| Dive guide
| Dive
| Diving
| Itinerary
| Phrasebook
| NZ default banner.jpg
| = {{#ifeq: {{{index|}}} | yes
|
| [[Kategori:Has default banner]]
}}
| #default = {{#ifeq: {{{index|}}} | yes
|
| [[Kategori:Has custom banner]]
}}
{{#ifeq: {{NAMESPACE}} | {{ns:0}}
| {{#ifeq: {{{fop|}}} | yes
|
| [[Kategori:Banner missing from Wikidata]]
}}
}}
}}
}}
}}
}}</includeonly><noinclude>{{Documentation}}</noinclude>
f3dn7hyromjigg4zmadq4ckr0uuhcm6
Templat:Pagebanner2/styles.css
10
352
1413
1412
2024-12-03T14:15:04Z
Jon Harald Søby
20
1 revisi diimpor
1412
sanitized-css
text/css
.oo-ui-icon-unesco {
background-image: url('https://upload.wikimedia.org/wikipedia/commons/b/b1/WorldHeritageBlanc.svg');
}
.oo-ui-icon-star {
background-image: url('https://upload.wikimedia.org/wikipedia/commons/e/e7/Cscr-featured.svg');
}
.oo-ui-icon-ftt {
background-image: url('https://upload.wikimedia.org/wikipedia/commons/thumb/b/b0/Writing_Circle.svg/25px-Writing_Circle.svg.png');
}
.oo-ui-icon-dotm, .oo-ui-icon-otbp {
background-image: url('https://upload.wikimedia.org/wikipedia/commons/thumb/5/50/Yes_Check_Circle.svg/25px-Yes_Check_Circle.svg.png');
}
ogxppnbadx2pajordtu6ts9ivwqlte0
Templat:Pagetype
10
353
1415
1414
2024-12-03T14:15:04Z
Jon Harald Søby
20
1 revisi diimpor
1414
wikitext
text/x-wiki
{{#switch:{{NAMESPACE:{{#if:{{{page|}}}
|{{{page}}}
|{{#ifeq:{{{subjectspace|}}}|yes
|{{TALKPAGENAME}}
|{{FULLPAGENAME}}
}}
}}
}}
|{{ns:Talk}} = {{#switch:{{lc:{{{1|}}}}}
|disambiguation|disambig|disamb|dab
|redirect|redir
|na = page
|#default = article}}
|{{ns:User talk}}
|{{ns:MediaWiki talk}}
|{{ns:Help talk}}
|{{ns: Portal talk}}
|{{ns:Project talk}} = page
|{{ns:File talk}} = file
|{{ns:Template talk}} = template
|{{ns:Category talk}} = category
|#default = {{#switch:{{lc:{{{1|}}}}}
|portal
|project
|disambig|disamb|dab
|redirect|redir
|na = page
|image|file = file
|template|temp|templ = template
|category|cat|categ = category
|#default = article}}
}}<noinclude>
{{DEFAULTSORT:{{PAGENAME}}}}
{{INTERWIKI|Q6071237}}
</noinclude>
tamdcccre97ar4fj738m3mpt3m70e8e
Templat:Pahami
10
354
1420
1419
2024-12-03T14:15:04Z
Jon Harald Søby
20
4 revisi diimpor
1419
wikitext
text/x-wiki
Pahami [[Berkas:Icon Information.svg|20px|link=]]<noinclude>[[Kategori:Templat AIGA]]</noinclude>
tdofcpu8af2wlxly2g2diz88dgc49s2
Templat:Para
10
355
1423
1422
2024-12-03T14:15:04Z
Jon Harald Søby
20
2 revisi diimpor
1422
wikitext
text/x-wiki
<code class="tpl-para" style="word-break:break-word;{{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.-->
{{INTERWIKI|Q6163803}}
</noinclude>
pzon2v6mnbqu18ysnj123gaxu671si9
Templat:Para/doc
10
356
1432
1431
2024-12-03T14:15:04Z
Jon Harald Søby
20
8 revisi diimpor
1431
wikitext
text/x-wiki
{{Documentation subpage}}
== Penggunaan ==
Templat ini dipakai dokumentasi templat ketika memberi contoh penyetelan templat.
=== Contoh ===
# {{Tlx|Para|name}}
#:ditampilkan sebagai
#:{{Para|name}}
# {{Tlx|Para|title|<var>book title</var>}}
#:ditampilkan sebagai
#:{{Para|title|<var>book title</var>}}
# {{Tlx|Para|3=section|2=<span style="font-size: 1pt;"> </span>}}
#:ditampilkan sebagai
#:{{Para||section}}
#:(perhatikan parameter yang dikosongkan sebelum parameter ''section'')
# {{Tlx|Para|<var>parameter</var>|<var>value</var>}}
#:ditampilkan sebagai
#:{{Para|<var>parameter</var>|<var>value</var>}}
<includeonly>
{{DEFAULTSORT:{{PAGENAME}}}}
[[Kategori:Templat]]
</includeonly>
rtr27zavu6vsz7w9qy8nhp2s8niyim0
Templat:PartOfItinerary
10
357
1437
1436
2024-12-03T14:15:04Z
Jon Harald Søby
20
4 revisi diimpor
1436
wikitext
text/x-wiki
<includeonly>{{#switch:{{NAMESPACE}}|{{ns:0}}|{{ns:14}}={{#if: {{{1|}}} |{{#isin:{{{1}}}}}{{#ifexist:Category:{{{1}}}|[[Kategori:{{{1}}}]]|[[Berkas:Categorisation-hierarchy-top2down.svg|alt=Buat kategori|15px|link=//en.wikivoyage.org/w/index.php?title={{urlencode:Category:{{{1}}}}}&action=edit&preload=Template:PartOfItinerary/preload]] [[Kategori:Itinerary needing category]]}}|:''Artikel ini adalah sebuah '''[[rencana perjalanan]]'''''.[[Kategori:Itinerary lacking parameter]]}}
{{#if: {{{2|}}} |{{#ifexist:Category:{{{2}}} Itinerary|[[Kategori:{{{2}}} Itinerary]]|[[Berkas:Categorisation-hierarchy-top2down.svg|alt=Create category|15px|link=//en.wikivoyage.org/w/index.php?title={{urlencode:Category:{{{2}}} Itinerary}}&action=edit&preload=Template:PartOfItinerary/preloadin]] [[Kategori:Itinerary needing category]]}}| }}[[Kategori:Rencana perjalanan]]| #default =<!-- Don't categorize when not in main (article) space or a category. -->}}{{#ifeq:{{#invoke:Wikibase|disambig}}|false||[[Kategori:Pages linked to a data item for a disambiguation]]}}</includeonly>
<noinclude>
[[en:voy:Template:PartOfItinerary]]
</noinclude>
aeoca4ptiqngm98dm73njbcl1vwcp6g
Templat:PartOfPhrasebook
10
358
1440
1439
2024-12-03T14:15:04Z
Jon Harald Søby
20
2 revisi diimpor
1439
wikitext
text/x-wiki
<includeonly>{{#switch:{{NAMESPACE}}|{{ns:0}}|{{ns:14}}={{#if: {{{1|}}} |{{#isin:Phrasebooks}}{{#ifexist:Category:Buku frase bahasa {{{1}}}|[[Kategori:Buku frase bahasa {{{1}}}]]|[[Berkas:Categorisation-hierarchy-top2down.svg|alt=Create category|15px|link=//en.wikivoyage.org/w/index.php?title={{urlencode:Category:Buku frase bahasa {{{1}}}}}&action=edit&preload=Template:PartOfPhrasebook/preload]] [[Kategori:Buku frase memerlukan kategori]]}}|:[[Kategori:Buku frase tanpa parameter]]}}
{{#if: {{{2|}}} |{{#ifexist:Category:Buku frase bahasa {{{2}}}|[[Kategori:Buku frase bahasa {{{2}}}]]|[[Berkas:Categorisation-hierarchy-top2down.svg|alt=Create category|15px|link=//en.wikivoyage.org/w/index.php?title={{urlencode:Category:Buku frase bahasa {{{2}}}}}&action=edit&preload=Template:PartOfPhrasebook/preloadin]] [[Kategori:Phrasebook needing category]]}}| }}{{#if: {{{3|}}} |{{#ifexist:Category:Buku frase bahasa {{{3}}}|[[Kategori:Buku frase bahasa {{{3}}}]]|[[Berkas:Categorisation-hierarchy-top2down.svg|alt=Create category|15px|link=//en.wikivoyage.org/w/index.php?title={{urlencode:Category:Buku frase bahasa {{{3}}}}}&action=edit&preload=Template:PartOfPhrasebook/preloadin]] [[Kategori:Phrasebook needing category]]}}| }}{{#if: {{{4|}}} |{{#ifexist:Category:Buku frase bahasa {{{4}}}|[[Kategori:Buku frase bahasa {{{4}}}]]|[[Berkas:Categorisation-hierarchy-top2down.svg|alt=Create category|15px|link=//en.wikivoyage.org/w/index.php?title={{urlencode:Category:Buku frase bahasa {{{4}}}}}&action=edit&preload=Template:PartOfPhrasebook/preloadin]] [[Kategori:Phrasebook needing category]]}}| }}{{#if: {{{5|}}} |{{#ifexist:Category:Buku frase bahasa {{{5}}}|[[Kategori:Buku frase bahasa {{{5}}}]]|[[Berkas:Categorisation-hierarchy-top2down.svg|alt=Create category|15px|link=//en.wikivoyage.org/w/index.php?title={{urlencode:Category:Buku frase bahasa {{{5}}}}}&action=edit&preload=Template:PartOfPhrasebook/preloadin]] [[Kategori:Phrasebook needing category]]}}| }}{{#if: {{{6|}}} |{{#ifexist:Category:Buku frase bahasa {{{6}}}|[[Kategori:Buku frase bahasa {{{6}}}]]|[[Berkas:Categorisation-hierarchy-top2down.svg|alt=Create category|15px|link=//en.wikivoyage.org/w/index.php?title={{urlencode:Category:Buku frase bahasa {{{6}}}}}&action=edit&preload=Template:PartOfPhrasebook/preloadin]] [[Kategori:Phrasebook needing category]]}}| }}{{{cat|[[Kategori:Phrasebooks]]}}}| #default =<!-- Don't categorise when not in main (article) space or a category. -->}}{{#ifeq:{{#invoke:wikibase|disambig}}|false||[[Kategori:Pages linked to a data item for a disambiguation]]}}</includeonly>
<noinclude>
{{documentation}}
{{INTERWIKI|Q114673937}}
</noinclude>
2mvct4ba8bcdbjh94db790hh4drdddr
Templat:PartOfTopic
10
359
1452
1451
2024-12-03T14:15:04Z
Jon Harald Søby
20
11 revisi diimpor
1451
wikitext
text/x-wiki
<includeonly>{{#switch:{{NAMESPACE}}|{{ns:0}}|{{ns:14}}={{#if: {{{1|}}} |{{#isin:{{{1}}}}}{{#ifexist:Category:{{{1}}}|[[Kategori:{{{1}}}]]|[[Berkas:Categorisation-hierarchy-top2down.svg|alt=Buat kategori|15px|link=//id.wikivoyage.org/w/index.php?title={{urlencode:Category:{{{1}}}}}&action=edit&preload=Template:PartOfTopic/preload]] [[Kategori:Topik wisata yang memerlukan kategori]]}}|:''Artikel ini adalah sebuah '''[[Topik wisata]]'''''.[[Kategori:Topik wisata tanpa parameter]]}}
{{#if: {{{2|}}} |{{#ifexist:Category:Topik tentang {{{2}}}|[[Kategori:Topik tentang {{{2}}}]]|[[Berkas:Categorisation-hierarchy-top2down.svg|alt=Buat kategori|15px|link=//id.wikivoyage.org/w/index.php?title={{urlencode:Category:Topik tentang {{{2}}}}}&action=edit&preload=Template:PartOfTopic/preloadin]] [[Kategori:Topik wisata yang memerlukan kategori]]}}| }}[[Kategori:Artikel topik]]| #default =<!-- Don't categorize when not in main (article) space or a category. -->}}{{#ifeq:{{#invoke:wikibase|disambig}}|false||[[Kategori:Halaman yang ditautkan ke butir data disambiguasi]]}}</includeonly>
<noinclude>
{{INTERWIKI|Q14326302}}
</noinclude>
4nmivcxosglusqc33gwik6jr8lqxhsl
Templat:Pcotm
10
360
1456
1455
2024-12-03T14:15:05Z
Jon Harald Søby
20
3 revisi diimpor
1455
wikitext
text/x-wiki
{{Tmbox
|image=[[Berkas:HFH_Toronto_logo_cat-Peoples.png|50px]]
|text=Artikel ini adalah hasil [[Wikiwisata:Kolaborasi sebelumnya#{{{1}}}|Kolaborasi bulanan]] pada '''{{{1}}}'''.}}<noinclude>
[[Kategori:Templat]]
{{INTERWIKI|Q15630368}}
</noinclude>
q5cxwwkn5j0y1d436ftgwl2swei0n7j
Templat:Pcotw
10
361
1461
1460
2024-12-03T14:15:05Z
Jon Harald Søby
20
4 revisi diimpor
1460
wikitext
text/x-wiki
{{Tmbox
|image=[[Berkas:HFH_Toronto_logo_cat-Peoples.png|50px]]
|text=Artikel ini adalah hasil [[Wikiwisata:Kolaborasi minggu sebelumnya#{{{1}}} - {{{2}}}|Kolaborasi mingguan]] dari '''{{{1}}}''' sampai '''{{{2}}}'''.}}<noinclude>
[[Kategori:Templat]]
{{INTERWIKI|Q15630369}}
</noinclude>
all4bpab6ryf7w2igjk4alcfi35qlwc
Templat:Pedalaman
10
362
1465
1464
2024-12-03T14:15:05Z
Jon Harald Søby
20
3 revisi diimpor
1464
wikitext
text/x-wiki
Pedalaman [[Berkas:Font Awesome 5 solid tree.svg|16px|link=]]<noinclude>[[Kategori:Templat AIGA]]</noinclude>
ablvwer43nimpkpzofd9v28femrj9f4
Templat:PemberitahuanHU
10
363
1472
1471
2024-12-03T14:15:05Z
Jon Harald Søby
20
6 revisi diimpor
1471
wikitext
text/x-wiki
<center><!--
<big> </big>
--></center>
<noinclude>
{{dok}}
</noinclude>
ttmfq3l14dwak93hdhth1ai0oekehjq
Templat:Penerbangan
10
364
1474
1473
2024-12-03T14:15:05Z
Jon Harald Søby
20
1 revisi diimpor
1473
wikitext
text/x-wiki
Penerbangan [[Berkas:Ic flight 48px.svg|27px|link=]]<noinclude>[[Kategori:Templat AIGA]]</noinclude>
19lb66x9xs7r0o2bec28q746049kwne
Templat:Pengguna Wikiwisata/Pengurus
10
365
1483
1482
2024-12-03T14:15:05Z
Jon Harald Søby
20
8 revisi diimpor
1482
wikitext
text/x-wiki
<div style="float: left; border: solid #bbb 1px; margin: 1px;">
{| cellspacing="0" style="width: 238px; background: #f6f6f6"
| style="width: 45px; height: 45px; background: #fff; text-align: center; font-size: 14pt; color: #fff" | [[Berkas:Wikivoyage sysop.svg|40px]]
| style="font-size: 8pt; padding: 4pt; line-height: 1.25em;" |[[:voy:id:Pengguna:{{PAGENAME}}|Pengguna ini]] adalah '''[[voy:id:Wikivoyage:Pengurus|pengurus]]''' di '''{{{1|[[:voy:id:Halaman Utama|Wikiwisata bahasa Indonesia]]}}}'''. {{#if:{{{1|}}}|<span style="font-size:0.9em;" class="plainlinks">([{{fullurl:voy:id:{{{lang_code|id}}}:Special:ListUsers|limit=1&username={{urlencode:{{{username|{{BASEPAGENAME}}}}}}}&uselang=id}} <span style="color:#5871C6;">verify{{#if:{{{lang_code|}}}| {{{lang_code}}}|}}</span>])</span>|<span style="font-size:0.9em;" class="plainlinks">([{{fullurl:voy:id:Special:ListUsers|limit=1&username={{urlencode:{{{username|{{BASEPAGENAME}}}}}}}}} <span style="color:#5871C6;">verifikasi</span>])</span>}}
|}</div>
<includeonly>[[Kategori:Pengurus di Wikiwisata bahasa Indonesia]]</includeonly>
<noinclude>[[Kategori:Kotak pengguna peran di Wikiwisata]][[en:voy:Template:User wikivoyage/Administrator]]</noinclude>
tr4t8daj0l4xq1evw6aa05buofndspt
Templat:Pengguna Wikiwisata/Penyunting templat
10
366
1491
1490
2024-12-03T14:15:05Z
Jon Harald Søby
20
7 revisi diimpor
1490
wikitext
text/x-wiki
<div style="float: left; border: solid #bbb 1px; margin: 1px;">
{| cellspacing="0" style="width: 238px; background: #f6f6f6"
| style="width: 45px; height: 45px; background: #fff; text-align: center; font-size: 14pt; color: #fff" | [[Berkas:Wikivoyage template editor logo.svg|40px]]
| style="font-size: 8pt; padding: 4pt; line-height: 1.25em;" |<includeonly>[[:voy:id:Pengguna:{{PAGENAME}}|Pengguna ini]]</includeonly><noinclude>Pengguna ini</noinclude> adalah '''[[voy:id:Wikiwisata:Penyunting templat|Penyunting templat]]''' di '''{{{1|[[:voy:id:Halaman Utama|Wikiwisata
bahasa Indonesia]]}}}'''. {{#if:{{{1|}}}|<span style="font-size:0.9em;" class="plainlinks">([{{fullurl:voy:id:{{{lang_code|id}}}:Special:ListUsers|limit=1&username={{urlencode:{{{username|{{BASEPAGENAME}}}}}}}&uselang=id}} <span style="color:#5871C6;">verify{{#if:{{{lang_code|}}}| {{{lang_code}}}|}}</span>])</span>|<span style="font-size:0.9em;" class="plainlinks">([{{fullurl:voy:id:Special:ListUsers|limit=1&username={{urlencode:{{{username|{{BASEPAGENAME}}}}}}}}} <span style="color:#5871C6;">verifikasi</span>])</span>}}
|}</div>
<includeonly>[[Kategori:Penyunting templat di Wikiwisata bahasa Indonesia]]</includeonly>
<noinclude>[[Kategori:Kotak pengguna peran di Wikiwisata]][[en:voy:Template:User wikivoyage/Template editor]]</noinclude>
bh4xj294jygsx6ixgwq30fw32s67nxh
Templat:Penghubung
10
367
1493
1492
2024-12-03T14:15:06Z
Jon Harald Søby
20
1 revisi diimpor
1492
wikitext
text/x-wiki
'''{{{1|{{{PAGENAME}}}}}}''' dapat mengacu pada beberapa hal berikut:
k9rsnt9bo1bvjnpyy6jjo1yxtex3sf3
Templat:Penginapan
10
368
1497
1496
2024-12-03T14:15:06Z
Jon Harald Søby
20
3 revisi diimpor
1496
wikitext
text/x-wiki
Penginapan [[Berkas:Mökkimajoitus 732 tunnusosa.svg|30px|link=]]<noinclude>[[Kategori:Templat AIGA]]</noinclude>
15n5av5k2s9qyyiz7a6qiupljp19c3l
Templat:Penukaran uang
10
369
1500
1499
2024-12-03T14:15:06Z
Jon Harald Søby
20
2 revisi diimpor
1499
wikitext
text/x-wiki
Penukaran uang [[Berkas:Aiga currencyexchange.svg|25px|link=]]<noinclude>[[Kategori:Templat AIGA]]</noinclude>
5vt3x73y3jb60qhdtatrqtpkbnuygjd
Templat:Periksa terjemahan
10
370
1502
1501
2024-12-03T14:15:06Z
Jon Harald Søby
20
1 revisi diimpor
1501
wikitext
text/x-wiki
{{Ambox
| name = Periksaterjemahan
|type=content
| class = ambox-rough_translation
| image = [[Berkas:Translation to english arrow.svg|50x40px|Translation arrow icon]]
| text = Artikel atau bagian dari artikel ini diterjemahkan dari ''[[:{{{1|en}}}:{{{2|{{PAGENAME}}}}}|{{{2|{{PAGENAME}}}}}]]'' di {{{1|en}}}.wikivoyage.org. '''Isinya memiliki ketidakakuratan'''. Selain itu beberapa bagian yang diterjemahkan masih memerlukan penyempurnaan. [[:Category:user id|Pengguna]] yang mahir dengan [[:Category:user {{{1|en}}}-3|bahasa yang bersangkutan]] dipersilakan untuk menelusuri referensinya dan menyempurnakan terjemahan ini.<br>
<small>(Pesan ini dapat dihapus jika terjemahan dirasa sudah cukup tepat.)</small>
[[Kategori:Artikel yang dimintakan pemeriksaan atas penerjemahannya]]
{{#if:{{{kat|}}}||<includeonly>[[Kategori:Artikel yang diterjemahkan secara kasar]]</includeonly>}}
}}
ihldboji7aze7y1rl2ru18wub13we0p
Templat:Perkemahan
10
371
1509
1508
2024-12-03T14:15:06Z
Jon Harald Søby
20
6 revisi diimpor
1508
wikitext
text/x-wiki
Perkemahan [[Berkas:Font Awesome 5 solid campground.svg|24px|link=]]<noinclude>[[Kategori:Templat AIGA]]</noinclude>
qizju3jd3wn31brzje7h56kd60utmkg
Templat:Perlistrikan
10
372
1512
1511
2024-12-03T14:15:06Z
Jon Harald Søby
20
2 revisi diimpor
1511
wikitext
text/x-wiki
Perlistrikan [[Berkas:Bolt font awesome.svg|23px|link=]]<noinclude>[[Kategori:Templat AIGA]]</noinclude>
iea8dyf10ksew13r8gvb1gt90it9zz9
Templat:Pesawat
10
373
1515
1514
2024-12-03T14:15:06Z
Jon Harald Søby
20
2 revisi diimpor
1513
wikitext
text/x-wiki
Dengan pesawat [[Berkas:1a2.svg|20px|link=]]<noinclude>[[Kategori:Templat AIGA]][[zh:voy:Template:航空]]</noinclude>
feyumyq482c2mkikd93vh0gn825b9qu
Templat:Peserta Wikilatih WikiEdang Toba
10
374
1517
1516
2024-12-03T14:15:06Z
Jon Harald Søby
20
1 revisi diimpor
1516
wikitext
text/x-wiki
<div style="float:right">{{userbox|white|lightgray|[[Berkas:Toba Lake from Sipinsur.jpg|45px|link=]]|Pengguna ini adalah peserta pelatihan menulis Wikiwisata pada proyek '''WikiEdang Toba'''|border-color=lightgrey}}<includeonly>{{#ifexist: [[Kategori:Pengguna peserta WikiLatih WikiEdang Toba]]}}</includeonly></div>
<noinclude>[[Kategori:Kotak pengguna]]</noinclude>
kngch50ucor1rc8b100vy12xwky5vhe
Templat:Peta dunia
10
375
1524
1523
2024-12-03T14:15:06Z
Jon Harald Søby
20
6 revisi diimpor
1523
wikitext
text/x-wiki
<imagemap>
File:Continents_colour.svg|center|400px|Peta dunia
poly 366 112 339 143 339 174 358 196 390 199 403 246 415 292 443 293 484 269 492 234 493 169 477 175 451 124 404 116 402 108 [[Afrika]]
poly 62 69 104 63 129 61 123 104 139 153 172 172 193 145 208 138 222 113 246 100 281 86 307 56 346 36 377 6 183 3 114 30 [[Amerika Utara]]
poly 217 169 205 185 196 211 206 242 222 249 226 301 232 327 260 346 254 308 294 261 304 215 260 185 238 174 [[Amerika Selatan]]
poly 432 29 458 79 456 89 465 98 482 106 507 111 514 141 546 182 562 190 576 155 586 188 609 221 645 233 690 227 692 206 661 186 653 151 679 116 689 76 704 40 667 25 590 14 513 4 463 10 [[Asia]]
poly 343 40 347 50 359 73 359 112 381 110 407 112 436 111 437 98 461 83 435 27 425 12 402 9 [[Eropa]]
poly 435 101 436 110 452 124 476 171 507 158 513 143 507 110 496 107 478 104 465 100 450 95 [[Timur Tengah]]
poly 623 255 620 293 675 315 720 326 757 300 795 230 691 199 691 226 667 232 651 237 [[Oseania]]
</imagemap>
<noinclude>
[[Kategori:Peta dunia]]
{{dok}}
{{INTERWIKI|Q8087707}}
</noinclude>
j0rb8h0vb53qg3mjjoxb6dpt86r5g1g
Templat:Peta dunia/Afrika
10
376
1527
1526
2024-12-03T14:15:06Z
Jon Harald Søby
20
2 revisi diimpor
1526
wikitext
text/x-wiki
<imagemap>
File:Map-Africa-Regions-Islands.png|thumb|right|471px
desc none
poly 970 482 966 484 965 487 964 489 962 490 961 492 959 494 957 498 956 502 954 504 953 506 951 507 948 510 945 512 940 515 938 518 935 519 935 522 932 525 930 529 927 531 926 533 925 536 925 539 924 541 923 544 921 548 921 557 920 562 920 590 919 592 915 596 908 609 907 612 906 614 906 633 904 639 904 652 906 655 906 658 908 664 909 668 912 669 911 671 916 674 920 677 920 680 922 683 924 687 928 691 930 692 934 696 936 697 938 701 941 704 942 707 943 709 946 711 947 713 950 716 950 719 953 722 954 725 954 732 950 735 950 751 949 756 947 760 947 772 945 776 944 779 943 781 942 786 942 790 940 794 938 797 937 800 936 804 933 807 932 810 928 818 927 823 926 827 926 830 924 834 918 843 916 850 913 850 911 852 912 854 916 869 917 878 919 887 920 891 921 898 923 905 924 910 924 914 925 917 925 920 927 924 930 925 932 926 937 926 939 927 963 927 967 926 974 926 976 924 980 924 983 923 987 923 990 922 990 476 [[Pulau di Samudra Hindia]]
poly 802 851 802 854 805 855 809 857 812 862 813 867 817 869 818 871 822 875 828 875 830 878 832 882 834 883 840 883 843 884 868 884 872 883 873 881 875 880 876 877 880 875 882 873 883 868 884 864 888 860 891 859 895 857 898 848 898 843 899 840 903 832 903 824 904 822 906 820 908 819 910 816 911 814 913 813 914 809 914 804 915 801 916 799 918 797 919 795 919 791 920 789 920 786 922 782 922 779 924 775 924 769 925 766 925 756 930 746 931 743 935 741 934 738 932 736 932 733 931 728 929 727 928 725 928 722 926 720 926 715 925 712 925 696 922 694 912 689 909 689 907 688 905 689 904 692 903 694 901 695 899 697 897 698 896 700 893 701 889 703 888 705 884 707 882 709 878 711 877 713 869 717 866 718 843 718 841 717 840 715 840 711 839 709 837 703 837 700 835 694 835 679 834 677 834 674 835 672 835 644 833 638 832 636 832 605 834 604 836 602 837 600 837 597 838 593 839 590 843 582 845 579 846 577 846 574 853 567 854 562 854 558 856 552 857 550 858 547 860 543 862 540 863 538 865 537 867 535 873 532 874 530 876 528 876 525 879 524 882 520 886 519 888 518 892 517 898 511 900 507 903 506 908 504 908 501 913 500 917 498 920 494 922 492 923 490 927 484 929 480 930 476 931 474 932 471 933 469 933 466 935 460 939 455 939 451 942 448 943 445 947 444 951 442 955 441 956 439 957 436 957 432 955 312 948 312 946 311 943 311 941 310 938 309 936 308 930 308 928 307 926 305 924 304 905 304 902 302 900 301 890 301 887 300 883 299 877 297 810 297 806 296 805 294 801 294 799 292 798 288 788 288 784 286 772 286 770 287 769 289 767 290 765 294 761 296 757 300 755 301 755 304 754 306 754 309 753 311 753 315 751 317 749 318 748 320 749 323 749 329 747 330 747 346 745 347 744 349 744 352 742 356 742 359 740 363 738 364 738 367 739 369 737 373 735 374 734 377 734 380 733 383 732 385 722 385 720 389 720 401 721 403 722 406 722 409 721 411 719 412 718 414 716 415 715 417 713 418 711 422 712 425 714 426 717 426 723 429 726 430 730 432 732 435 735 441 735 444 737 445 739 447 741 448 742 450 743 453 744 455 746 457 746 460 747 462 747 465 745 466 738 466 736 467 730 467 728 468 725 468 723 472 721 474 719 475 717 479 708 479 706 480 694 480 691 479 688 479 684 477 682 478 682 491 684 492 687 498 682 502 679 505 675 510 671 514 667 523 668 530 668 536 669 538 669 544 663 547 662 549 661 553 660 555 660 558 658 559 657 561 655 562 658 562 660 563 660 572 661 574 661 590 662 592 662 608 667 618 669 619 670 621 670 624 671 626 675 628 677 630 679 631 680 633 684 635 686 639 686 643 688 644 691 644 694 645 696 646 697 648 705 652 708 653 710 654 713 654 715 655 718 655 720 656 723 656 721 654 722 657 722 660 723 662 723 665 724 667 724 670 728 678 730 679 732 682 734 683 737 682 741 680 744 681 747 681 748 683 751 683 753 684 759 684 761 683 764 683 766 681 769 680 772 680 778 678 781 678 783 677 785 678 790 677 792 674 794 673 797 673 799 672 803 672 805 671 807 669 810 669 811 667 813 666 825 666 828 672 828 799 822 799 820 800 817 800 814 806 812 812 812 815 811 817 810 820 808 824 807 827 807 830 806 832 806 839 804 841 804 850 803 852 [[Afrika Timur]]
poly 398 780 401 779 403 778 406 776 409 773 410 771 413 770 415 766 417 765 418 763 420 762 421 760 423 758 424 755 428 753 431 753 435 751 438 751 441 750 444 750 447 749 450 749 452 750 455 756 457 757 460 758 463 758 466 756 470 756 473 755 480 754 490 754 492 753 497 753 499 752 509 752 511 753 514 754 521 754 522 756 524 757 526 759 532 762 535 762 537 761 541 761 543 762 560 762 562 760 565 759 567 757 573 757 575 753 573 752 571 748 569 747 566 746 563 740 564 738 564 735 565 733 565 697 567 698 573 698 575 699 587 699 589 698 590 696 590 690 591 686 591 676 592 674 592 671 594 667 595 669 595 672 596 674 598 675 600 674 603 674 606 675 608 676 612 677 616 679 619 679 621 680 622 682 624 681 626 682 629 682 631 683 632 685 634 686 635 688 637 689 640 689 642 690 644 694 652 698 655 698 659 700 662 700 664 699 664 687 662 686 659 686 655 684 652 684 650 683 649 681 651 675 652 673 655 672 655 657 654 654 654 642 656 641 662 641 664 640 670 640 672 639 675 639 679 637 681 641 684 642 690 645 693 651 697 653 700 653 702 654 720 654 721 656 721 662 722 664 722 670 724 674 724 680 725 682 727 683 730 683 735 681 738 680 741 680 746 681 748 682 751 682 753 683 759 683 765 680 771 680 773 679 780 679 783 678 789 678 793 676 794 674 800 671 803 671 805 670 820 670 821 672 821 691 820 693 820 696 818 702 818 706 817 710 817 732 816 735 815 737 814 740 810 746 810 756 809 758 809 761 808 763 807 767 807 770 806 774 803 777 802 780 800 782 799 784 796 787 795 790 794 794 791 799 786 804 785 808 782 810 782 815 781 821 780 825 778 827 777 830 776 834 775 837 775 841 774 845 771 854 769 855 765 862 765 869 763 874 762 880 758 887 754 899 749 905 742 911 737 919 735 928 731 933 729 936 728 938 725 940 724 943 723 947 720 953 718 959 717 961 714 963 714 966 711 970 711 974 709 978 708 981 705 982 700 986 696 988 693 989 692 992 686 996 683 997 675 1001 672 1001 666 1003 644 1003 640 1004 617 1004 613 1005 608 1007 608 1011 605 1012 565 1012 561 1011 541 1011 533 1010 505 1010 494 1009 488 1008 484 1006 478 1006 475 1005 472 1005 469 1003 469 999 465 998 464 996 460 993 455 991 447 984 433 966 422 955 415 940 411 924 403 901 400 881 398 869 391 855 390 836 387 824 386 814 384 802 389 787 390 789 392 787 398 784 399 782 399 779 [[Afrika bagian selatan]]
poly 378 678 378 685 379 690 380 696 380 706 382 711 382 724 383 726 386 728 388 729 391 730 397 734 400 735 404 739 405 742 405 745 407 746 408 748 411 748 413 749 416 750 423 750 425 751 426 753 429 753 433 751 436 750 438 749 441 749 443 748 449 748 451 749 452 751 460 755 463 755 465 756 466 754 500 754 502 753 508 753 510 754 513 755 514 757 518 759 521 759 524 760 534 760 538 762 559 762 567 758 576 758 578 757 576 756 574 754 570 752 564 740 564 719 563 716 563 709 562 706 561 704 561 700 563 698 564 696 568 696 570 697 574 698 586 698 588 697 588 684 590 680 590 668 594 670 594 674 596 675 599 675 603 673 604 675 606 676 609 676 613 678 615 680 617 681 620 681 622 682 629 682 632 684 634 688 638 690 641 690 647 693 650 694 653 694 654 696 656 698 659 698 660 700 664 702 664 693 662 692 662 689 660 687 658 686 654 686 648 683 648 680 652 678 652 675 653 673 653 658 652 656 652 650 650 646 652 645 653 643 655 642 656 640 659 640 660 638 666 638 670 636 673 636 675 635 678 635 680 634 678 628 676 627 675 624 673 620 670 620 666 618 666 615 665 613 663 610 662 608 662 586 661 584 661 572 662 570 662 567 661 564 659 562 658 560 656 559 655 557 657 555 658 553 660 552 662 546 666 544 669 538 669 535 668 533 666 532 666 526 668 522 670 521 674 513 676 511 679 505 681 504 684 498 686 497 686 494 680 491 683 485 683 479 684 476 688 478 709 478 713 476 714 474 724 474 725 472 728 471 729 468 733 466 743 466 749 463 750 460 748 459 747 456 744 455 741 455 740 453 738 452 738 446 737 444 735 442 733 441 731 438 730 436 720 431 718 427 716 426 714 422 708 422 711 416 713 415 715 416 718 416 722 408 722 402 720 400 717 400 715 399 717 397 719 393 719 390 710 390 710 384 711 382 711 379 712 377 712 371 709 365 707 364 704 364 702 365 702 368 700 369 698 373 698 376 699 378 699 381 698 384 696 388 694 390 690 392 688 396 686 397 684 395 683 393 681 392 677 394 674 394 673 392 671 391 668 391 666 392 665 394 662 394 660 395 660 398 658 397 657 395 654 395 651 396 648 396 644 394 641 394 640 396 640 402 636 400 619 400 617 398 616 396 612 394 609 394 605 396 604 398 602 399 599 405 593 408 592 410 588 412 584 410 584 404 583 401 583 398 578 388 576 386 573 386 571 385 565 385 563 386 560 386 558 390 558 393 550 397 550 400 548 406 535 406 531 408 528 408 528 411 525 417 523 419 520 419 518 420 512 420 510 421 509 423 503 426 500 426 498 427 494 427 491 428 488 428 486 430 484 431 480 429 478 430 474 422 472 414 469 410 462 406 461 399 463 396 474 395 472 384 470 375 468 360 456 348 460 356 463 371 454 380 447 391 445 400 440 413 434 421 426 441 418 438 405 435 394 444 390 457 385 461 385 466 390 480 354 516 350 518 348 520 342 523 338 524 336 526 328 530 324 530 322 532 319 533 317 534 314 535 312 536 308 537 306 538 302 542 302 545 300 549 298 551 298 570 299 574 301 578 302 581 304 582 306 584 307 582 308 579 308 582 307 584 309 590 313 596 338 626 344 640 348 647 349 649 351 650 352 652 354 653 357 659 359 660 362 661 366 663 365 665 369 667 370 669 372 670 374 674 376 675 [[Afrika bagian tengah]]
poly 5 289 5 335 4 340 4 379 1 384 0 386 0 415 2 416 3 418 16 427 28 432 36 436 42 440 46 445 53 450 62 454 72 457 77 458 81 459 84 461 88 462 90 464 91 467 94 469 102 472 115 476 124 484 133 495 142 502 154 507 168 510 177 512 182 514 188 517 191 518 206 521 216 522 223 524 228 526 231 526 235 527 252 527 256 525 260 520 264 520 266 518 280 518 286 517 312 517 314 516 322 516 324 514 325 512 328 510 332 508 334 506 338 504 344 504 346 503 349 503 352 502 356 500 362 500 364 498 367 497 369 495 372 494 373 492 375 491 377 487 377 478 380 472 382 471 384 469 384 460 387 459 391 457 391 454 390 452 391 449 392 447 394 446 396 442 399 442 400 440 402 439 402 436 403 434 405 433 407 434 408 436 414 436 420 439 423 439 425 440 428 440 428 431 430 430 433 424 435 423 437 419 438 416 438 413 442 411 443 409 443 403 446 397 446 394 448 393 448 390 449 388 451 387 454 381 454 378 458 376 459 374 461 373 462 371 462 368 464 364 460 362 460 356 459 354 459 351 457 350 451 350 449 348 445 350 442 350 441 352 437 354 435 356 432 356 430 352 406 352 405 354 400 354 400 357 397 358 390 358 386 356 383 356 382 354 379 354 377 353 375 354 372 355 370 357 368 356 367 354 361 354 357 352 354 352 352 348 352 345 350 344 347 344 346 346 344 347 341 348 338 348 337 350 331 350 329 352 329 359 326 360 322 362 320 366 318 367 315 364 309 364 307 363 304 362 303 360 296 360 294 359 294 356 293 354 291 353 290 351 288 350 286 348 285 346 285 343 283 342 282 340 279 340 276 334 276 330 275 328 272 328 270 330 269 332 266 332 266 335 264 336 263 338 251 338 250 340 248 341 247 344 244 345 242 347 240 348 239 350 230 350 228 351 225 351 223 352 223 355 222 357 222 360 220 364 218 365 216 367 215 369 215 372 213 376 213 382 212 384 208 386 202 386 198 388 196 384 193 384 185 388 179 388 177 387 173 389 169 387 168 385 168 378 167 376 164 376 165 374 164 371 162 370 161 367 160 365 160 362 157 356 156 358 154 359 153 361 151 362 145 362 141 364 138 364 134 363 134 360 132 358 130 362 129 360 129 354 130 352 130 343 126 341 126 332 122 330 120 328 118 327 118 321 116 320 114 316 112 315 110 312 110 309 108 305 94 298 88 298 84 297 78 297 76 296 72 298 47 298 46 296 42 296 41 294 39 293 35 292 33 290 [[Afria Barat]]
poly 66 276 66 273 65 270 65 267 66 265 66 262 68 261 69 258 72 252 72 248 73 244 74 242 74 239 76 235 76 232 79 232 83 234 89 234 91 233 94 232 109 232 112 233 114 234 124 234 126 233 126 230 124 226 124 216 126 212 130 210 134 210 138 208 140 204 140 185 141 183 142 180 144 176 148 174 152 174 155 175 157 176 166 176 169 175 175 175 178 174 182 174 185 175 186 173 186 159 188 160 188 164 190 165 191 167 194 168 198 170 204 172 206 174 207 176 209 178 211 179 215 180 217 181 220 182 222 183 224 185 226 189 228 191 230 195 232 196 235 197 237 198 240 199 244 201 246 204 247 206 249 208 259 213 261 216 263 220 267 224 269 225 272 226 273 228 275 230 278 231 281 233 285 235 287 237 289 238 292 239 294 241 296 244 296 247 298 248 299 250 301 251 302 253 306 255 308 259 312 261 315 261 317 262 320 262 322 266 322 272 323 274 335 274 337 275 343 275 346 274 348 273 349 270 351 268 355 266 358 264 362 263 365 263 368 262 372 260 374 258 375 256 378 254 380 253 382 251 385 251 387 250 390 250 394 248 398 240 402 240 406 238 409 237 413 235 416 233 417 231 419 228 420 226 422 225 424 223 427 223 429 222 432 222 436 220 439 219 451 219 454 220 460 220 462 221 465 221 467 222 470 228 472 227 474 223 476 222 489 222 491 223 492 226 500 230 503 231 506 231 508 232 511 234 513 235 516 236 518 238 522 240 525 240 527 242 530 242 534 244 535 246 538 247 540 248 546 250 554 254 556 258 560 260 563 260 568 262 574 262 576 264 579 264 582 270 586 272 588 271 588 264 589 262 592 262 594 263 598 263 600 264 602 263 600 261 598 257 598 248 599 245 599 239 600 237 602 236 602 239 605 239 607 240 610 240 613 241 626 241 630 239 638 239 640 238 666 238 669 237 682 237 684 236 698 236 701 235 710 235 714 233 717 232 720 232 723 230 726 229 728 227 728 221 730 220 733 217 734 215 736 214 738 212 742 212 745 210 748 210 749 212 750 215 752 218 752 222 754 223 754 226 758 234 759 238 762 239 765 239 766 242 768 245 769 248 772 251 774 254 775 256 775 281 774 283 768 286 767 288 766 291 766 294 765 296 757 300 756 302 754 304 754 310 751 316 749 318 748 320 748 323 744 325 744 331 745 334 745 337 748 343 748 349 746 353 745 356 744 358 742 359 741 361 739 364 739 367 738 369 737 372 735 373 733 375 732 378 730 382 728 384 722 384 721 386 721 389 722 391 722 400 721 402 718 402 716 401 716 398 717 396 717 393 716 391 714 390 711 390 709 389 710 387 710 368 708 364 705 364 702 365 700 366 698 370 696 371 696 374 698 375 698 382 694 390 692 392 689 398 687 399 685 398 684 395 682 394 678 394 674 393 670 391 667 391 663 393 662 396 662 399 661 401 658 401 656 400 656 394 638 394 642 396 641 398 629 398 627 399 618 399 618 396 617 393 602 393 600 395 600 398 598 400 591 414 588 414 582 411 580 407 581 405 583 404 585 400 585 394 583 393 582 391 581 388 580 386 576 384 570 384 568 383 566 384 563 385 561 386 560 388 560 391 558 392 557 394 554 394 552 395 550 399 550 402 542 406 536 406 532 408 529 408 528 410 526 411 525 413 524 416 523 418 520 418 518 419 514 419 512 420 510 422 506 424 503 424 501 425 495 427 492 427 490 428 477 428 475 427 475 421 474 419 472 418 471 416 469 414 468 411 466 407 464 406 463 404 460 404 460 401 461 398 462 396 475 396 476 394 474 393 474 390 473 387 473 384 471 382 470 380 470 362 468 360 467 358 465 357 464 355 461 354 459 352 456 352 455 350 452 350 451 348 448 348 446 349 445 351 439 354 436 354 435 352 426 352 424 351 422 352 409 352 405 354 404 356 401 356 399 360 396 360 395 358 393 357 390 357 384 354 375 354 371 356 365 352 355 347 348 347 346 346 333 346 331 348 329 352 329 358 327 362 325 364 324 366 324 369 322 370 320 368 313 368 311 367 308 367 306 366 306 360 305 358 302 359 300 360 296 358 295 356 291 354 288 354 286 352 286 349 284 348 284 345 283 343 282 340 282 334 280 333 280 330 278 326 276 327 275 329 273 330 271 332 265 332 257 336 256 338 254 339 252 343 246 346 243 346 242 348 239 349 233 349 231 350 228 356 226 357 224 359 222 363 220 365 219 367 213 370 210 376 210 380 211 382 213 384 212 386 208 388 207 386 204 386 200 388 196 388 200 386 200 382 195 382 192 383 190 384 189 386 185 388 181 386 178 386 176 387 175 389 173 388 172 386 170 384 169 380 168 378 165 379 164 377 166 376 167 374 166 372 162 370 161 368 161 359 157 357 155 361 151 363 149 361 146 361 143 362 140 362 138 363 138 360 137 358 135 362 132 362 131 360 131 354 132 352 132 349 130 348 126 340 124 339 123 337 123 331 122 329 122 326 117 316 115 314 114 312 112 311 111 308 110 306 106 304 105 306 103 305 103 302 99 300 96 299 94 298 60 298 57 297 [[Sahel]]
poly 49 245 52 245 55 244 61 244 63 243 66 243 68 242 71 242 73 241 75 239 76 237 76 234 78 233 80 234 102 234 104 235 113 235 116 236 122 236 124 235 122 229 122 226 126 224 126 215 128 213 134 210 137 210 138 208 138 204 140 200 142 194 142 188 144 186 144 177 146 173 148 174 174 174 176 175 179 175 181 176 188 176 188 173 187 171 187 165 188 162 192 164 196 172 198 173 199 175 205 178 206 180 209 182 212 182 213 184 216 184 220 186 222 188 228 191 230 193 231 195 237 198 240 198 244 200 246 202 251 212 254 214 256 218 260 220 263 220 265 222 268 222 272 224 274 226 274 230 276 231 277 234 279 235 282 236 286 236 290 238 293 239 295 241 299 249 301 250 303 252 306 258 308 260 311 260 313 261 316 262 322 262 324 264 324 276 339 276 342 275 345 275 351 273 353 269 355 267 359 265 363 264 366 264 368 262 371 261 373 260 376 254 380 252 382 250 386 248 389 248 390 246 393 245 395 244 396 242 400 240 401 238 405 236 407 234 411 233 413 232 415 230 418 224 421 224 423 223 429 221 431 220 462 220 464 221 465 223 467 225 468 227 472 227 472 224 476 223 478 222 484 222 488 224 489 226 491 228 495 230 502 230 505 232 508 232 511 233 513 234 516 236 518 239 524 242 527 242 531 244 536 246 540 248 544 249 546 251 548 252 551 252 559 256 562 257 574 263 577 264 579 265 580 267 586 270 587 268 587 262 589 266 592 266 595 265 597 264 600 264 600 261 598 260 597 258 597 249 598 247 599 244 600 242 600 239 604 240 606 239 609 239 611 238 617 238 621 236 624 236 626 235 656 235 658 234 676 234 679 235 687 235 689 236 692 236 694 237 709 237 711 236 712 234 712 228 716 228 719 229 722 229 723 227 723 224 725 220 728 219 730 215 734 213 735 211 735 197 736 189 740 180 743 171 744 157 750 149 752 143 752 134 753 130 752 128 750 126 748 125 746 123 744 120 741 119 739 118 734 117 732 116 728 116 724 114 721 113 719 112 716 111 712 110 708 108 704 105 698 99 693 95 689 93 684 91 668 85 662 80 658 75 654 72 646 68 640 66 632 62 625 56 621 52 617 50 614 49 610 48 605 46 601 44 598 42 595 39 591 37 581 37 577 36 566 36 562 35 526 35 522 34 518 34 512 33 504 33 492 31 486 28 483 28 480 26 474 24 472 23 469 22 465 20 460 19 458 18 456 20 436 20 428 19 381 19 372 20 363 20 355 22 346 23 340 23 334 25 328 25 324 26 304 26 299 24 293 22 291 21 289 22 280 23 267 23 263 24 257 24 246 25 237 26 232 27 228 28 224 30 219 32 205 38 194 40 182 42 178 43 175 44 172 46 171 48 166 52 163 53 160 55 158 56 154 60 152 61 150 63 149 66 145 70 145 74 142 77 137 80 134 82 122 93 115 102 107 110 99 119 88 132 80 136 76 139 74 143 72 145 71 147 69 148 [[Afrika Utara]]
</imagemap><noinclude>
[[Kategori:Peta dunia]]
{{dok}}
{{INTERWIKI|Q16909463}}
</noinclude>
e0o8i16k7ejrwrbjrpvvay7ef30ablt
Templat:Peta dunia/Antartika
10
377
1531
1530
2024-12-03T14:15:07Z
Jon Harald Søby
20
3 revisi diimpor
1530
wikitext
text/x-wiki
<imagemap>
File:Antarctica regions map.png|right|700px
desc none
poly 984 104 986 1028 1006 1040 1027 1049 1035 1052 1035 1064 1055 1074 1070 1083 1073 1101 1083 1118 1092 1132 1103 1141 1106 1146 1109 1189 1093 1207 1102 1226 1107 1240 1125 1258 1143 1308 1137 1354 1127 1385 1119 1402 1105 1406 1105 1414 1110 1420 1099 1426 1087 1424 1084 1440 1079 1464 1288 1569 1772 1538 1928 960 1902 260 1414 112 984 70 [[Antartika Timur]]
poly 398 723 402 722 405 720 409 716 410 713 412 711 413 709 415 707 416 705 417 702 420 699 423 698 425 696 429 695 432 695 433 693 442 690 443 687 446 685 449 679 451 678 452 676 454 674 455 671 456 669 457 666 458 662 461 662 464 656 466 654 469 654 473 652 476 651 479 649 483 647 484 643 486 640 489 637 490 634 494 630 495 626 496 619 499 614 500 611 503 609 505 597 508 590 508 584 509 582 511 581 512 579 516 579 517 576 520 576 521 574 525 573 526 571 528 570 530 568 531 565 536 561 536 555 534 553 534 550 531 547 528 541 520 531 517 529 505 514 498 507 495 503 492 501 490 500 484 496 479 492 471 486 455 480 443 476 436 471 430 467 426 459 423 452 422 449 420 445 416 444 414 443 410 442 407 439 403 438 393 432 387 428 380 418 370 410 362 405 357 402 352 398 350 394 344 384 343 380 341 377 340 375 339 371 335 365 334 358 330 353 328 350 327 348 324 346 322 342 319 340 317 337 314 336 313 334 310 333 306 332 306 327 304 324 301 322 298 321 296 320 292 319 288 317 282 315 278 312 274 310 273 308 265 306 259 302 256 301 254 299 251 298 248 296 245 295 238 295 235 293 230 290 229 288 225 286 222 286 220 285 217 285 213 288 207 290 205 291 202 292 199 292 197 293 196 295 191 297 192 300 190 302 190 305 189 308 188 310 188 322 187 325 187 328 186 331 184 335 184 355 182 361 182 370 180 374 180 380 179 383 179 386 178 388 178 391 177 394 175 398 173 400 173 407 172 409 172 416 171 418 169 424 169 433 168 436 168 450 165 455 165 490 167 503 167 513 168 518 168 521 170 527 170 531 171 537 172 541 173 544 174 546 174 550 175 553 176 559 177 564 178 567 180 570 180 573 184 575 186 579 189 582 190 586 191 589 199 593 202 594 206 597 212 600 218 604 226 612 228 615 230 616 235 621 236 623 238 626 239 629 241 630 242 633 245 634 250 635 254 636 257 637 261 638 263 639 264 641 268 642 269 645 268 647 270 649 288 655 296 660 302 665 306 670 311 676 312 679 315 679 318 681 323 684 325 685 328 687 330 688 334 688 338 690 342 691 345 693 349 695 352 696 353 698 356 701 360 703 361 705 363 706 364 708 366 709 371 714 381 719 384 720 386 723 388 724 391 724 [[Semenanjung Antartika]]
poly 204 126 207 126 220 127 230 129 235 129 244 132 247 132 251 133 278 133 280 131 281 129 284 124 285 121 288 121 289 117 289 114 291 111 292 106 292 89 283 80 280 78 279 76 276 75 275 72 272 70 271 68 269 65 268 62 262 58 258 55 256 49 254 47 249 46 246 46 233 43 227 39 225 35 222 32 221 29 219 28 218 26 216 25 214 23 173 23 169 24 160 24 157 25 152 25 148 26 146 29 142 33 140 36 138 40 138 52 139 55 139 59 140 61 140 93 139 96 139 118 141 119 150 119 160 121 165 121 169 122 172 122 174 124 178 126 182 127 185 128 189 130 195 130 198 131 211 131 213 130 [[South Orkney Islands]]
poly 131 402 133 404 140 404 144 405 165 405 167 404 169 402 169 399 170 396 170 393 171 391 171 384 172 382 172 372 173 370 173 364 174 361 174 348 175 346 175 310 176 308 176 300 177 297 177 294 179 288 179 282 180 280 180 277 181 273 182 270 183 268 183 263 184 257 186 255 191 254 191 251 190 247 190 242 188 236 185 231 185 224 183 217 182 214 179 212 174 209 170 207 167 206 163 204 160 201 154 199 153 197 150 196 147 194 119 194 116 196 115 198 113 199 110 201 106 203 94 203 87 200 81 197 72 197 71 200 67 203 64 205 60 206 57 207 54 207 53 209 50 210 49 212 47 215 46 218 44 221 40 225 37 231 36 236 35 238 33 240 32 242 28 244 27 247 25 248 24 250 23 253 20 255 20 258 19 260 17 262 16 264 16 267 15 270 15 279 16 282 19 283 20 285 23 288 21 290 21 338 25 342 26 345 29 347 34 348 37 350 42 351 46 352 50 354 53 356 57 362 61 367 65 371 69 373 72 374 76 374 79 375 86 375 89 376 92 376 96 377 97 379 100 380 103 382 107 385 108 387 111 389 113 390 114 392 117 394 119 395 122 395 124 396 127 397 131 399 [[South Shetland Islands]]
poly 1193 1558 1190 1557 1187 1557 1181 1555 1177 1554 1169 1550 1163 1545 1155 1539 1143 1534 1128 1529 1123 1529 1118 1527 1114 1526 1111 1524 1107 1522 1102 1520 1097 1515 1093 1513 1090 1509 1089 1507 1086 1505 1082 1503 1082 1499 1081 1497 1078 1488 1077 1483 1073 1475 1072 1472 1072 1465 1071 1463 1073 1461 1074 1459 1074 1453 1076 1449 1080 1447 1081 1444 1081 1431 1082 1429 1084 1427 1086 1424 1087 1422 1093 1422 1095 1423 1101 1423 1104 1425 1107 1425 1109 1424 1109 1418 1106 1417 1100 1414 1100 1411 1099 1409 1099 1406 1100 1403 1109 1403 1113 1401 1116 1401 1117 1399 1121 1397 1122 1395 1122 1388 1124 1384 1124 1381 1126 1380 1126 1374 1127 1372 1127 1369 1128 1366 1129 1364 1131 1363 1134 1357 1134 1353 1135 1350 1135 1346 1137 1342 1139 1340 1140 1338 1140 1335 1141 1332 1141 1326 1142 1324 1142 1321 1143 1319 1143 1308 1142 1306 1141 1303 1137 1295 1137 1292 1131 1280 1131 1277 1128 1271 1126 1270 1125 1268 1126 1266 1124 1260 1124 1257 1122 1253 1119 1251 1116 1251 1108 1247 1107 1245 1105 1242 1104 1240 1104 1237 1102 1236 1100 1232 1100 1222 1099 1218 1098 1216 1096 1215 1093 1215 1091 1214 1091 1211 1092 1209 1093 1206 1095 1205 1097 1201 1099 1199 1103 1191 1105 1190 1106 1188 1106 1182 1107 1180 1107 1162 1105 1160 1105 1156 1104 1154 1104 1148 1103 1146 1103 1143 1101 1141 1099 1140 1098 1138 1096 1137 1093 1135 1091 1133 1088 1131 1087 1129 1086 1125 1085 1123 1083 1122 1076 1105 1073 1105 1071 1104 1069 1102 1069 1091 1068 1089 1068 1083 1067 1081 1064 1081 1062 1080 1062 1077 1059 1078 1056 1078 1053 1077 1052 1075 1052 1072 1050 1071 1048 1069 1046 1068 1043 1068 1035 1064 1033 1060 1033 1050 1029 1048 1025 1050 1023 1049 1021 1047 1017 1045 1013 1045 1011 1044 1009 1042 1006 1041 1000 1038 995 1033 994 1031 990 1027 989 1025 987 1024 975 1024 973 1023 970 1022 966 1020 963 1020 959 1018 956 1012 954 1011 953 1008 952 1006 950 1004 948 1003 947 1001 941 998 939 996 937 995 935 991 934 988 934 985 933 983 931 982 929 980 926 980 922 978 921 976 920 973 917 967 913 965 910 965 908 964 907 967 905 969 903 970 902 972 900 973 898 975 895 975 894 977 895 980 898 980 900 981 902 985 904 986 905 988 907 989 910 989 912 993 914 994 915 996 919 998 921 1000 927 1003 929 1005 930 1007 932 1009 933 1011 935 1012 936 1014 934 1015 925 1015 922 1014 921 1016 921 1020 923 1021 924 1024 926 1025 927 1027 928 1030 930 1034 930 1040 927 1040 925 1041 922 1041 919 1040 917 1039 914 1039 912 1038 909 1038 908 1041 909 1043 909 1046 908 1048 905 1048 904 1050 902 1051 904 1055 904 1066 903 1068 903 1071 902 1073 900 1074 897 1074 895 1073 894 1071 893 1068 893 1064 892 1062 892 1055 891 1053 887 1051 884 1051 882 1053 879 1053 877 1054 874 1054 873 1056 870 1056 864 1059 863 1061 863 1067 864 1069 867 1070 869 1072 870 1074 870 1077 869 1079 867 1080 866 1082 862 1080 861 1078 859 1077 858 1079 858 1085 857 1087 857 1090 858 1092 861 1094 863 1096 866 1102 866 1105 867 1107 866 1109 856 1109 854 1108 853 1106 851 1105 850 1102 848 1098 838 1093 832 1093 828 1095 828 1098 827 1100 825 1102 824 1104 823 1107 821 1108 821 1111 819 1115 819 1123 817 1124 815 1126 813 1127 811 1131 808 1131 807 1133 805 1134 805 1138 807 1139 810 1139 812 1140 812 1151 811 1153 811 1156 812 1159 814 1160 817 1166 819 1167 819 1170 820 1173 820 1176 824 1184 818 1184 814 1186 812 1190 812 1196 813 1198 815 1199 818 1199 821 1200 823 1201 827 1209 829 1210 830 1213 832 1215 832 1215 830 1217 831 1219 833 1221 837 1227 837 1233 838 1236 840 1240 841 1243 841 1248 842 1250 843 1253 844 1257 845 1259 844 1262 843 1266 842 1271 841 1273 840 1276 834 1280 827 1283 808 1302 790 1319 783 1329 781 1334 780 1338 777 1343 775 1345 772 1345 770 1349 768 1350 765 1352 761 1354 756 1355 753 1359 751 1360 751 1484 753 1488 754 1495 762 1500 772 1505 789 1512 801 1523 810 1528 818 1533 826 1533 836 1534 851 1535 861 1535 868 1536 872 1536 875 1538 881 1540 883 1542 885 1543 886 1546 890 1550 895 1553 898 1554 902 1556 903 1558 906 1557 911 1558 924 1560 941 1563 955 1568 971 1574 1041 1598 1064 1609 1089 1614 1100 1617 1106 1617 1109 1618 1114 1618 1122 1617 1129 1615 1136 1615 1139 1614 1168 1614 1172 1617 1176 1617 1183 1620 1205 1624 1210 1626 1215 1627 1216 1629 1219 1630 1221 1631 1225 1632 1237 1632 1241 1631 1244 1631 1247 1629 1248 1626 1250 1625 1252 1618 1252 1615 1250 1611 1249 1606 1247 1604 1246 1601 1244 1600 1241 1598 1236 1597 1232 1595 1229 1593 1227 1589 1224 1586 1223 1583 1221 1582 1220 1580 1216 1578 1213 1577 1211 1575 1208 1573 1206 1571 1205 1566 1203 1563 1202 1561 1200 1560 1199 1558 [[McMurdo Station]]
poly 370 750 548 530 704 474 744 140 918 78 986 72 982 1050 856 1254 716 1294 368 1246 182 874 204 790 362 762 364 758 [[West Antarctica]]
</imagemap>
<noinclude>
[[Kategori:Peta dunia]]
{{INTERWIKI|Q18699777}}
</noinclude>
6bq6htf8zkprhu859ndf42ogu61485y
Templat:Peta dunia/Asia
10
378
1539
1538
2024-12-03T14:15:07Z
Jon Harald Søby
20
7 revisi diimpor
1538
wikitext
text/x-wiki
<imagemap>
File:Map of Asia.png|thumb|500px|Klik wilayah untuk menelusuri!
desc none
poly 939 89 941 90 944 91 946 92 947 94 950 95 952 99 954 102 956 103 957 105 961 107 962 109 964 110 964 141 962 145 958 147 955 147 951 148 949 149 946 149 945 151 943 152 941 156 937 158 935 162 933 164 931 165 930 167 930 180 931 183 933 184 935 188 937 190 940 191 941 193 945 195 946 199 948 201 948 204 950 206 952 210 952 224 950 225 949 227 945 230 944 233 942 234 941 236 939 237 936 238 934 240 933 242 930 243 928 247 926 248 924 254 923 256 921 258 919 259 916 261 912 263 909 264 908 267 908 270 907 275 905 278 903 280 901 281 898 283 895 284 893 286 889 287 887 289 886 291 884 292 882 294 880 297 879 299 876 299 873 300 871 301 868 301 866 302 857 302 855 301 852 301 848 299 847 296 847 288 846 286 822 286 820 285 805 285 803 286 800 292 800 296 798 300 796 301 793 301 789 303 786 303 784 304 783 306 780 307 780 313 777 313 773 315 770 315 758 309 757 306 757 303 755 302 752 302 750 301 748 297 748 291 749 289 752 289 756 291 757 294 758 292 760 290 761 288 761 285 762 283 762 280 760 279 757 278 755 277 755 274 754 272 755 270 757 269 757 266 756 264 752 263 746 263 744 267 744 270 742 272 739 271 736 265 733 265 730 264 726 262 725 260 723 259 722 257 717 256 715 255 712 254 705 254 703 253 700 253 699 251 689 246 688 244 686 243 684 239 682 236 680 235 679 233 675 231 674 229 671 228 668 228 660 224 657 224 654 223 651 223 647 221 641 221 638 222 636 223 635 225 635 228 638 228 640 229 640 244 639 246 639 249 637 251 635 252 632 252 630 251 623 251 621 250 615 250 612 249 603 249 597 252 595 254 592 254 588 256 579 256 576 257 572 255 571 253 565 250 562 250 560 249 557 249 555 248 545 248 543 247 539 247 537 246 530 246 528 245 525 245 519 242 517 238 515 237 514 235 512 234 509 234 505 233 503 232 500 232 497 231 495 232 493 234 491 235 490 237 490 240 492 241 501 241 501 250 497 252 490 252 488 254 486 255 483 255 482 253 481 250 479 246 477 245 471 245 469 244 457 244 455 243 455 247 451 249 448 249 444 250 441 252 439 254 436 255 434 256 431 256 430 253 428 251 426 250 423 251 420 251 418 250 415 249 413 248 407 246 404 246 396 242 394 243 391 242 389 240 386 240 385 238 379 238 377 239 376 241 371 240 371 237 370 235 368 233 366 232 363 230 362 228 359 228 358 226 356 225 353 222 352 219 351 217 348 216 346 215 340 215 337 214 335 215 333 219 330 219 328 218 326 216 322 214 319 214 318 216 312 214 304 210 302 208 299 208 295 206 292 206 290 205 287 205 285 204 283 205 280 205 278 206 277 208 275 209 269 209 268 211 258 211 255 212 249 215 246 215 245 217 245 229 244 231 245 233 249 235 250 237 250 243 249 245 247 243 247 240 244 241 242 242 240 246 237 246 231 243 228 242 226 241 220 241 216 243 213 244 211 245 209 242 208 240 200 236 197 236 195 235 192 235 190 234 186 236 185 238 182 238 181 236 179 234 177 235 176 237 174 238 171 239 165 242 168 242 172 244 171 247 169 248 167 250 164 249 162 247 160 246 158 247 157 249 156 252 156 255 157 257 159 258 159 264 162 265 165 271 166 269 176 274 176 280 178 281 178 287 177 289 176 292 176 303 177 305 179 307 180 310 180 313 181 315 181 321 180 323 174 323 173 321 171 319 168 318 165 318 163 317 160 317 156 315 154 311 152 310 146 310 144 309 140 308 136 306 130 306 124 303 102 303 98 301 97 299 95 298 95 295 93 294 93 291 91 287 92 285 94 284 95 282 99 280 99 277 101 274 104 272 105 270 109 268 111 266 112 263 112 252 108 250 102 250 98 248 95 247 82 247 80 246 77 246 74 242 72 241 72 238 71 236 69 235 68 233 66 232 64 230 62 229 60 230 54 230 51 224 51 221 53 220 53 214 52 212 49 212 48 210 45 209 42 209 40 205 38 202 37 200 32 199 30 198 27 198 26 196 24 195 23 192 23 189 19 181 19 172 24 162 24 156 25 154 27 153 30 151 31 149 34 149 36 147 37 145 37 142 36 140 34 139 33 137 31 136 30 134 30 128 29 126 29 123 28 121 27 118 27 115 25 114 24 112 21 112 19 111 20 108 21 106 21 101 20 99 17 97 16 95 17 93 23 90 26 90 26 86 27 84 29 83 30 81 35 79 39 77 40 75 41 72 44 70 44 63 43 61 40 60 39 58 39 55 38 53 38 47 40 45 41 43 41 30 43 24 45 23 47 19 51 16 56 11 59 10 62 8 67 6 69 5 72 3 75 2 76 0 642 0 647 1 651 1 656 5 664 17 670 25 675 30 676 32 679 35 682 37 686 38 691 39 696 42 702 45 707 47 708 49 711 50 714 50 717 51 719 53 722 53 724 54 727 55 730 55 736 57 744 59 751 62 753 63 756 65 759 66 760 69 762 70 764 72 766 73 769 74 775 74 777 75 783 75 785 76 789 77 792 77 794 78 821 78 822 75 824 74 828 76 829 78 838 78 839 76 843 76 845 75 848 75 851 74 863 74 864 76 867 76 868 78 871 78 873 79 879 80 890 80 892 79 897 79 902 80 906 81 909 81 915 83 918 83 921 84 924 84 930 87 [[Rusia]]
poly 0 381 11 376 14 375 22 371 24 367 24 361 26 360 25 358 23 357 22 355 20 354 19 352 18 349 18 346 17 344 16 341 15 339 15 333 16 331 18 332 18 329 22 327 23 325 31 321 34 320 36 319 42 317 46 315 48 313 49 311 51 310 52 312 52 309 53 307 59 304 62 303 65 303 69 302 75 302 79 301 81 300 84 300 88 298 93 297 95 296 96 294 98 293 98 289 95 288 94 286 94 280 96 279 97 277 99 276 100 274 102 272 104 268 106 267 111 257 109 253 107 252 104 251 101 249 97 247 94 247 92 245 83 245 83 248 80 248 78 247 76 243 74 241 71 240 67 236 65 232 64 229 61 229 58 230 57 232 54 232 52 231 51 229 49 228 49 225 53 223 55 219 54 216 53 214 51 212 48 212 42 209 41 207 41 204 39 200 36 200 33 199 29 197 26 197 24 196 23 194 21 193 20 188 20 178 19 176 19 169 20 167 23 166 24 164 26 163 30 165 31 167 31 163 29 162 26 162 20 159 23 159 25 155 26 152 30 150 31 148 34 148 36 146 40 144 37 143 33 141 30 141 28 140 27 138 27 129 24 123 24 119 22 115 20 114 17 114 15 113 16 111 19 111 21 110 22 108 22 105 21 103 19 102 13 102 10 100 9 98 10 96 12 95 15 95 17 94 20 94 22 93 28 81 28 78 27 75 23 74 20 72 15 72 10 70 8 68 6 67 3 67 2 65 0 64 0 61 2 60 11 57 14 57 17 56 20 56 22 54 22 41 23 37 24 35 24 31 25 29 25 23 26 21 26 15 24 14 21 13 19 12 14 10 11 9 8 7 4 5 1 5 0 3 [[Eropa]]
poly 688 520 687 522 684 522 680 524 679 526 677 527 671 527 669 528 666 529 664 530 662 529 662 526 660 522 657 522 657 519 656 517 656 514 655 512 655 509 654 506 653 504 653 498 652 496 646 496 645 494 642 494 640 493 639 490 637 486 631 483 628 483 626 484 625 486 615 486 613 487 604 487 602 491 604 492 606 496 605 498 596 498 594 497 591 497 589 496 583 484 579 482 579 479 577 478 577 475 574 475 572 476 569 476 567 475 567 472 566 469 566 466 567 464 571 462 574 461 576 460 574 458 572 454 572 447 571 445 570 442 568 440 567 438 563 436 561 438 558 438 554 436 553 434 550 433 544 430 538 430 536 432 532 434 530 438 528 440 525 440 523 441 520 441 518 442 515 442 514 439 512 438 511 436 510 438 506 440 485 440 483 439 473 439 471 438 470 436 454 428 448 428 442 425 440 421 438 420 437 418 434 418 432 416 430 417 427 417 425 416 422 416 419 415 418 413 416 411 411 401 413 400 416 400 418 401 419 399 418 397 416 396 415 393 414 391 414 388 411 382 408 381 402 378 401 376 397 374 396 372 390 369 384 369 382 368 383 366 382 364 379 364 377 363 376 361 376 358 378 357 378 354 376 350 374 349 372 347 368 345 368 339 366 335 367 332 368 330 369 332 375 332 377 333 380 333 382 331 383 329 385 328 386 326 389 326 393 324 397 320 401 318 404 316 402 315 402 306 403 304 402 302 402 298 400 294 397 294 393 292 394 290 400 290 404 288 410 288 411 286 410 284 408 282 406 278 407 276 409 275 412 275 414 274 418 276 422 274 422 271 424 270 424 267 426 263 428 262 429 260 431 259 429 258 432 258 434 257 436 255 438 251 441 251 447 248 450 248 452 247 455 247 461 244 470 244 473 245 476 245 478 246 481 247 483 248 486 250 489 250 490 252 492 251 495 251 497 250 498 248 501 248 500 246 497 246 494 240 494 237 495 235 497 234 498 232 499 234 503 235 506 235 509 236 518 236 520 240 528 244 529 246 532 246 536 248 542 248 546 246 549 246 551 247 558 247 561 248 564 250 576 256 580 257 587 257 589 256 592 256 600 252 606 252 608 251 610 249 611 247 614 247 615 249 618 252 636 252 638 251 640 247 640 241 638 240 638 237 640 235 641 233 642 230 640 228 638 227 635 227 633 226 633 223 635 222 638 222 644 219 647 219 651 221 657 221 660 222 662 224 668 224 670 226 672 227 673 229 675 230 677 232 681 240 685 242 688 242 697 245 699 246 700 248 702 249 705 250 709 252 711 254 712 256 716 258 717 260 720 261 722 262 725 264 728 264 730 265 734 266 735 268 737 269 740 269 750 264 759 264 759 270 757 272 757 276 760 282 764 284 760 292 758 293 756 290 755 288 754 290 752 291 752 300 754 304 756 305 758 309 758 312 757 314 759 316 780 316 782 314 784 313 785 311 789 309 792 308 796 306 799 305 801 304 806 294 807 291 808 289 814 286 834 286 836 288 838 289 841 290 846 292 847 290 850 296 850 299 852 300 853 302 862 302 862 299 864 298 864 301 866 305 866 345 867 347 869 348 872 354 874 362 873 364 872 373 871 380 870 384 870 388 868 390 867 394 866 396 864 397 864 400 862 404 862 407 860 409 859 412 858 416 856 417 854 420 852 422 847 425 843 430 841 431 838 434 837 436 834 439 832 440 830 444 828 446 822 449 819 450 815 452 812 456 809 456 808 458 804 459 798 462 792 468 791 470 789 472 786 473 784 474 782 477 778 479 776 481 774 482 772 484 770 485 769 487 766 490 765 492 763 494 760 494 757 495 755 496 751 496 749 497 746 497 742 499 738 499 738 502 732 502 728 503 725 503 722 504 718 504 716 506 714 507 713 509 711 510 709 512 708 514 704 516 694 516 693 518 690 519 689 521 687 522 [[Asia Timur]]
poly 787 496 788 498 790 499 790 502 792 503 794 505 795 507 796 510 798 512 799 515 801 519 803 521 803 524 804 526 806 528 807 530 810 532 814 534 820 540 822 543 825 546 830 548 833 550 836 551 838 552 840 554 841 557 841 560 842 562 842 565 844 568 844 571 845 573 845 576 846 578 846 588 851 593 852 595 854 596 854 599 856 602 857 604 858 608 859 610 859 613 860 615 860 621 861 623 860 626 861 630 863 632 867 634 870 636 872 638 875 640 878 641 880 642 884 642 888 644 891 644 893 645 896 645 899 646 908 646 912 648 915 649 917 650 919 652 922 654 925 655 927 656 934 656 936 655 948 652 955 651 960 650 963 650 967 651 973 651 973 421 972 418 962 418 958 419 955 420 950 420 948 422 943 424 940 424 933 426 921 426 914 423 912 422 909 421 896 421 894 422 892 424 891 426 889 428 888 430 886 431 884 434 881 441 880 447 877 449 877 452 876 454 874 456 872 457 865 460 854 462 836 462 826 466 821 466 818 467 816 469 814 470 810 474 807 475 802 477 797 477 794 478 792 479 791 481 792 483 792 489 790 490 789 492 [[Oseania]]
poly 922 697 922 719 921 724 921 734 919 738 917 739 917 742 916 744 916 763 917 765 919 766 922 766 923 768 932 768 934 769 937 769 941 771 944 771 945 773 948 773 962 780 965 780 967 781 970 781 972 782 973 784 973 694 964 694 962 695 958 695 956 694 950 694 948 695 942 695 938 697 932 697 930 696 920 696 918 697 [[Papua Nugini]]
poly 812 792 816 790 820 782 822 781 826 781 828 780 856 780 858 779 870 779 872 778 898 778 900 779 906 779 909 778 912 778 915 777 917 776 918 774 920 772 924 770 927 770 937 775 940 776 942 778 944 779 946 778 952 781 953 783 955 784 958 784 962 786 965 788 967 790 973 793 972 795 810 795 [[Australia]]
poly 541 652 542 650 543 646 545 644 548 644 554 641 556 637 557 634 558 632 560 631 560 628 562 626 563 622 566 616 566 612 567 610 567 607 570 605 576 602 574 599 574 596 572 592 572 589 571 586 571 575 570 573 569 570 568 568 564 564 563 562 560 562 558 560 552 557 551 555 551 552 549 550 546 548 542 540 542 534 541 532 540 528 540 525 538 523 537 520 536 518 536 514 535 512 535 509 534 506 532 502 532 496 533 494 539 491 537 489 536 487 536 484 540 476 542 475 543 473 543 470 544 468 544 465 546 463 548 459 547 457 545 456 543 454 544 452 547 452 549 451 552 450 558 447 558 444 560 440 560 437 562 436 564 437 565 439 566 442 568 446 571 446 573 447 575 449 576 451 576 454 574 458 574 461 572 462 571 464 568 464 568 473 569 475 572 475 574 476 576 475 578 476 579 478 580 481 581 483 584 483 584 492 587 492 589 496 598 496 600 495 601 497 604 498 607 498 606 496 604 495 602 491 602 488 604 487 607 488 613 488 617 486 626 486 632 483 634 484 636 486 639 486 640 488 640 491 641 493 644 494 650 494 653 500 652 503 652 518 653 521 654 523 656 524 657 526 659 528 660 530 663 531 665 532 668 533 677 533 680 534 687 534 689 533 692 532 696 529 699 527 701 526 702 524 706 522 707 520 710 519 712 518 716 514 719 514 721 513 725 512 728 510 732 508 734 506 746 506 754 502 758 502 760 501 764 501 766 502 766 505 769 506 771 507 774 507 776 508 780 508 788 512 790 516 791 519 794 524 798 529 804 540 814 549 822 554 828 562 832 572 834 576 837 579 838 582 836 584 836 605 837 607 840 608 840 611 842 613 843 615 845 618 846 620 849 622 851 626 852 631 854 632 857 634 860 634 861 636 864 640 866 643 870 646 873 649 874 651 876 654 876 658 880 662 883 663 885 664 887 666 891 668 892 670 894 669 895 671 898 674 898 678 900 680 901 683 903 686 907 686 912 688 913 690 916 691 918 694 920 698 920 710 921 712 921 721 920 723 920 729 919 731 918 734 917 736 917 745 918 748 919 750 919 756 918 759 917 761 917 764 916 766 916 769 912 771 908 770 906 771 903 771 900 772 898 773 894 773 889 774 818 774 816 775 813 776 807 780 804 780 802 782 799 782 796 783 794 784 786 784 782 785 778 787 774 788 746 788 744 787 732 787 728 786 694 786 689 785 684 785 668 783 664 782 658 779 658 776 655 776 651 775 647 772 643 770 635 765 626 760 614 753 610 750 606 746 604 742 601 738 597 736 582 730 574 718 571 711 570 709 569 705 568 703 567 699 564 697 563 694 560 688 556 687 554 686 552 684 550 680 549 677 547 673 546 670 546 667 544 663 544 660 [[Asia Tenggara]]
poly 226 638 226 634 227 631 227 624 228 621 228 600 229 598 229 589 227 586 226 584 224 583 222 579 218 577 216 578 215 580 211 582 208 582 206 583 196 583 194 582 190 582 186 580 184 581 177 581 171 579 169 578 166 578 162 576 160 574 158 573 157 570 154 564 152 558 152 554 149 554 147 550 141 547 139 545 134 535 132 534 132 531 130 527 130 524 127 518 127 515 124 509 124 506 120 498 119 495 117 491 112 486 110 485 106 481 107 478 106 476 104 475 103 472 102 470 102 467 100 463 96 459 95 456 93 454 92 452 92 440 91 437 91 419 90 417 88 416 88 412 87 410 84 410 82 408 81 406 78 403 77 401 71 399 69 398 66 398 63 397 59 397 55 395 52 395 50 394 44 394 41 393 34 393 32 392 0 392 0 794 3 795 226 795 228 794 228 776 227 772 226 770 225 764 248 773 250 767 256 756 270 726 255 696 242 676 [[Afrika]]
poly 27 368 28 371 30 372 31 374 33 375 36 376 38 377 42 377 44 378 66 378 72 375 73 373 76 373 78 372 87 372 90 373 91 376 91 379 90 382 88 386 88 389 86 393 86 403 88 407 88 410 89 412 89 415 92 421 92 430 91 432 91 435 90 437 90 440 91 442 95 444 96 446 96 449 97 451 98 454 98 457 100 461 102 462 103 464 103 467 104 469 104 472 106 473 110 477 111 480 112 482 114 483 115 485 117 486 120 487 122 490 122 502 124 504 125 506 127 508 128 510 130 511 130 514 136 526 136 529 138 530 139 533 139 536 140 538 142 541 144 542 145 544 148 544 149 546 151 548 152 550 152 554 156 562 159 563 161 565 162 567 163 570 163 573 164 575 170 578 173 578 175 579 184 579 186 578 198 578 200 577 203 577 209 574 221 574 223 576 226 576 227 578 227 581 229 582 230 584 247 584 249 583 252 583 254 582 256 578 264 574 267 573 269 572 271 570 273 566 274 562 274 555 275 553 276 550 278 548 282 542 284 536 286 532 288 526 288 522 289 520 289 513 290 511 290 502 292 498 292 490 293 488 293 485 294 483 294 474 295 472 296 469 296 463 295 461 296 458 300 456 301 454 304 454 306 450 306 447 305 444 304 442 302 441 302 438 300 437 297 437 293 435 292 433 292 427 288 425 287 422 286 420 286 417 290 415 291 413 287 411 286 409 286 406 284 402 284 399 282 398 282 395 281 393 280 390 280 372 279 370 279 367 278 364 275 364 273 363 269 362 265 360 262 360 261 358 259 357 258 355 256 354 253 353 249 351 246 351 244 352 238 352 236 353 232 353 226 356 225 358 223 359 220 359 218 358 217 356 202 356 199 355 197 354 194 354 191 353 189 352 188 350 187 347 184 347 182 346 182 343 180 342 178 338 177 340 173 342 170 342 169 344 166 344 164 345 161 345 161 342 160 340 157 340 156 338 152 336 151 334 148 334 147 332 145 330 144 328 142 327 142 324 140 323 139 321 137 322 131 322 128 321 125 321 123 322 120 322 116 324 112 322 106 322 105 320 102 320 100 319 97 318 88 318 84 316 82 317 80 316 44 316 42 317 36 317 34 318 28 318 27 321 24 327 21 327 17 329 16 331 15 334 14 336 12 338 15 344 15 348 17 352 19 353 21 355 25 363 27 364 [[Timur Tengah]]
poly 300 481 299 479 298 476 298 469 297 467 297 464 295 460 295 457 296 455 302 452 304 450 306 449 307 447 306 445 304 444 304 441 303 438 300 438 296 436 294 434 292 433 292 430 290 429 290 426 288 425 293 425 295 426 301 428 307 428 311 426 320 426 322 425 325 425 327 424 325 420 325 415 326 412 332 412 333 414 336 408 340 410 343 410 346 409 350 407 349 405 348 402 347 400 347 397 348 395 352 393 350 389 348 387 346 386 345 384 348 384 353 386 356 386 357 384 357 381 356 379 356 372 355 370 356 368 360 366 363 366 364 364 370 361 372 362 381 362 382 364 386 365 387 367 391 369 392 371 394 372 394 375 396 376 398 378 400 379 403 379 405 380 408 381 412 383 413 385 413 392 417 394 419 398 419 402 417 403 416 400 414 399 413 402 413 405 414 407 414 410 418 412 422 412 426 414 429 414 430 416 432 417 434 421 436 422 437 420 440 420 441 422 444 422 445 424 448 424 450 428 458 432 467 432 471 434 472 436 476 438 479 439 481 440 484 440 487 441 489 442 492 442 490 440 502 440 505 439 507 438 510 438 518 442 521 442 523 441 526 441 528 440 529 438 531 437 532 435 534 434 534 430 538 428 540 432 542 431 543 429 545 428 548 428 550 429 551 432 555 434 556 436 559 437 560 440 560 446 559 448 556 448 553 447 549 449 547 451 545 455 546 457 548 458 548 464 544 466 544 475 543 477 540 477 538 476 538 488 534 496 534 499 533 501 531 502 531 511 530 513 530 516 532 517 532 520 538 532 538 535 540 537 540 540 541 543 541 546 540 550 542 551 544 555 547 564 548 566 550 567 551 569 554 572 555 574 558 574 560 576 562 580 562 584 561 586 561 618 560 620 560 623 558 624 553 634 550 635 546 636 538 636 536 637 532 638 526 640 520 640 518 642 514 644 504 646 501 648 477 648 474 649 458 649 456 648 448 648 446 647 442 646 439 645 437 644 434 644 426 640 422 639 420 637 418 636 414 635 411 636 405 639 402 639 396 642 394 646 382 652 379 653 377 654 374 654 370 656 364 656 358 654 333 654 331 653 329 651 329 629 327 623 327 620 326 618 326 586 327 584 327 576 326 574 322 562 317 552 315 546 311 541 310 534 306 529 306 522 304 516 304 512 303 508 302 506 303 504 302 502 302 498 300 496 300 492 299 489 299 477 [[Asia Selatan]]
poly 206 335 207 338 207 341 208 344 208 347 209 349 211 350 213 354 219 357 225 357 227 358 231 356 232 354 234 353 240 353 242 352 248 352 249 354 253 356 262 356 272 361 275 361 277 362 278 364 280 365 280 368 279 371 279 377 280 379 279 381 279 399 281 400 282 403 285 409 289 409 291 410 292 412 292 415 290 419 286 421 286 424 290 426 293 426 295 427 298 428 307 428 309 427 312 427 314 426 320 426 322 425 325 425 327 423 325 419 325 416 326 414 330 412 333 412 335 411 337 407 340 409 342 410 344 409 346 405 346 396 347 394 350 393 349 391 347 388 348 386 354 386 356 385 355 382 355 376 357 375 353 373 352 371 353 369 355 368 357 364 361 362 364 362 366 363 370 363 372 364 373 362 377 360 378 358 378 355 376 351 374 350 373 348 371 347 368 347 366 343 366 337 365 335 367 331 369 330 372 330 374 331 377 332 380 332 381 330 385 328 388 328 390 327 391 325 393 324 394 321 398 319 401 319 405 317 403 316 402 314 402 311 403 309 403 306 400 300 400 297 398 296 397 293 394 293 392 292 393 290 396 290 398 289 404 289 406 290 410 290 412 289 410 288 407 288 406 286 406 277 407 275 409 274 413 276 419 276 425 273 425 270 423 266 423 263 424 261 428 259 429 257 429 254 428 252 425 252 423 251 421 252 409 252 405 250 404 248 404 245 402 243 398 241 395 241 393 242 386 242 382 240 380 238 378 239 377 241 374 241 368 238 367 236 366 233 365 231 359 228 357 224 351 221 348 221 346 220 344 218 343 216 340 216 339 213 336 213 335 215 329 218 323 218 321 219 317 215 315 214 312 214 310 213 304 213 302 212 301 209 299 205 290 205 288 204 285 204 283 205 280 205 278 206 277 208 275 210 269 210 263 213 260 213 257 214 251 214 249 215 247 217 244 217 242 216 239 216 245 219 246 221 248 222 248 225 246 226 244 225 244 228 240 230 239 232 241 233 242 235 248 238 249 240 249 243 248 245 246 244 245 242 239 242 235 244 231 240 225 240 223 241 217 241 216 243 214 244 210 242 207 242 205 241 206 243 202 242 200 238 198 237 197 235 194 236 191 236 190 234 187 234 185 236 183 237 180 235 178 234 176 235 174 239 170 241 169 243 169 249 167 250 165 249 162 249 158 247 158 244 156 243 156 249 157 251 157 254 160 254 160 257 159 259 156 259 154 260 157 261 160 261 160 264 161 266 161 269 164 269 167 270 175 274 174 276 176 277 178 279 178 282 177 284 177 287 178 289 180 291 183 297 185 299 191 302 193 304 196 310 197 313 199 315 202 316 205 318 205 321 208 327 208 333 [[Asia Tengah]]
poly 113 308 117 306 118 304 120 305 129 305 132 306 136 308 139 308 141 309 147 309 149 310 152 310 154 311 155 313 163 317 169 317 170 319 172 320 174 324 176 323 177 321 179 320 182 320 184 319 190 319 191 321 195 323 196 326 196 329 198 333 198 342 197 344 197 347 191 350 185 350 183 346 181 345 181 339 178 339 174 341 173 343 171 344 170 346 167 347 164 347 162 346 161 343 160 341 152 337 150 333 148 332 145 326 141 324 138 324 136 323 133 323 131 322 128 322 126 321 114 321 [[Kaukasus]]
</imagemap>
<noinclude>
[[Kategori:Peta dunia]]
{{INTERWIKI|Q16909465}}
</noinclude>
kjn25dvvo9xdnbfo36v81k2ic4watta
Templat:Peta dunia/Eropa
10
379
1551
1550
2024-12-03T14:15:07Z
Jon Harald Søby
20
11 revisi diimpor
1550
wikitext
text/x-wiki
<imagemap>
File:Europe regions minimal cities.png|thumb|500px|Klik wilayah atau kota untuk menelusuri!
desc none
rect 1031 569 1108 591 [[Moskow]]
rect 674 874 740 895 [[Vienna]]
rect 482 901 551 920 [[Munich]]
rect 634 823 702 840 [[Praha]]
rect 523 844 608 862 [[Wy/id|Frankfurt|Frankfurt]]
rect 730 913 818 932 [[Budapest]]
rect 748 823 820 842 [[Krakow]]
rect 1438 875 1491 894 [[Baku]]
rect 881 1181 948 1200 [[Athena]]
rect 984 1045 1062 1064 [[Istanbul]]
rect 897 967 992 984 [[Bukares]]
rect 772 996 857 1015 [[Belgrade]]
rect 530 976 583 995 [[Milan]]
rect 536 1105 592 1124 [[Roma]]
rect 12 1151 77 1171 [[Lisboa]]
rect 247 1119 313 1139 [[Madrid]]
rect 357 1103 451 1122 [[Barcelona]]
rect 325 1028 410 1048 [[Marseille]]
rect 452 772 559 789 [[Amsterdam]]
rect 942 750 990 771 [[Kiev]]
rect 752 738 827 759 [[Warsaw]]
rect 525 735 581 754 [[Berlin]]
rect 590 669 703 690 [[CopenhagenCopenhagen]]
rect 860 493 1012 517 [[Saint Petersburg]]
rect 667 554 764 573 [[Stockholm]]
rect 485 531 535 552 [[Oslo]]
rect 313 634 408 656 [[Edinburgh]]
rect 238 696 308 718 [[Dublin]]
rect 268 787 339 808 [[London]]
rect 322 866 378 886 [[Paris]]
poly 722 675 726 677 728 676 731 676 733 675 736 675 738 674 742 674 748 677 751 677 753 676 756 676 758 677 758 680 764 680 766 681 764 685 764 692 766 696 776 696 777 698 779 699 780 702 780 705 782 706 784 710 787 710 791 712 814 712 818 711 823 711 825 710 829 710 831 709 832 707 833 704 834 702 838 698 841 692 843 689 844 687 848 683 849 680 850 678 850 675 851 673 852 670 852 664 853 662 853 656 854 652 854 643 853 641 853 638 850 632 848 630 848 627 846 623 846 620 847 618 846 616 846 613 844 612 843 610 840 609 839 607 838 604 837 602 834 602 834 596 832 595 832 588 830 584 828 583 824 585 822 584 821 582 818 582 819 580 821 579 822 577 823 574 825 573 826 571 824 569 824 566 820 566 819 564 819 561 815 559 816 557 818 556 816 552 812 548 810 544 812 542 814 541 814 538 816 537 817 535 818 532 818 526 819 524 818 522 812 519 809 518 800 518 798 517 777 517 771 520 770 523 768 524 767 526 763 528 760 528 754 531 750 532 749 534 747 535 746 537 744 538 743 540 740 541 736 543 732 544 730 545 727 546 725 547 720 552 718 553 716 557 714 560 712 564 712 584 711 586 711 615 712 617 712 638 713 640 713 644 716 650 716 657 717 659 718 662 718 675 721 681 [[Baltik]]
poly 1102 1208 1105 1206 1109 1204 1112 1203 1114 1202 1115 1200 1121 1198 1124 1196 1126 1194 1138 1188 1144 1186 1148 1184 1151 1182 1154 1181 1156 1180 1159 1180 1160 1182 1160 1185 1162 1186 1162 1199 1161 1202 1160 1204 1160 1210 1156 1218 1155 1222 1154 1224 1150 1228 1144 1230 1141 1236 1137 1240 1134 1240 1132 1241 1124 1241 1120 1242 1117 1242 1114 1243 1097 1243 1095 1242 1092 1242 1088 1240 1086 1238 1084 1234 1084 1230 1083 1228 1084 1225 1086 1222 1087 1220 1089 1219 1092 1218 1094 1216 1098 1215 1100 1214 1103 1212 1104 1210 1106 1208 [[Siprus]]
poly 641 1291 645 1293 651 1293 653 1292 655 1288 655 1279 651 1277 649 1275 640 1275 638 1276 637 1279 637 1282 638 1286 640 1288 641 1290 [[Malta]]
circle 933 769 14 [[Kiev]]
circle 739 756 14 [[Warsaw]]
circle 738 841 13 [[Krakow|Kraków]]
circle 666 895 14 [[Vienna]]
circle 719 919 14 [[Budapest]]
circle 764 998 14 [[Belgrade]]
circle 887 979 13 [[Bukares]]
circle 874 1193 11 [[Athena]]
circle 979 1066 16 [[Istanbul]]
circle 1435 896 13 [[Baku]]
circle 597 1101 15 [[Roma]]
circle 522 995 13 [[Milan]]
circle 558 907 13 [[Munich]]
circle 627 843 16 [[Praha]]
circle 589 759 15 [[Berlin]]
circle 516 843 14 [[Frankfurt]]
circle 440 780 14 [[Amsterdam]]
circle 389 872 13 [[Paris]]
circle 420 1050 13 [[Marseille]]
circle 348 1108 14 [[Barcelona]]
circle 235 1124 15 [[Madrid]]
circle 79 1148 16 [[Lisboa]]
circle 1022 572 17 [[Moskow]]
circle 849 500 14 [[Saint Petersburg]]
circle 663 556 17 [[Stockholm]]
circle 543 547 14 [[Oslo]]
circle 579 673 14 [[Copenhagen]]
circle 347 790 15 [[London]]
circle 242 709 14 [[Dublin]]
circle 308 648 13 [[Edinburgh]]
poly 143 680 144 678 145 674 146 671 148 668 150 660 152 658 154 655 157 654 161 651 169 642 177 627 182 622 183 619 185 615 186 612 187 608 188 605 188 602 190 598 191 594 191 589 192 586 194 582 196 581 199 579 202 578 207 576 218 574 222 574 222 564 223 561 225 559 229 557 233 554 239 551 242 550 245 548 248 548 251 545 254 544 257 541 258 538 259 536 261 534 262 532 266 528 272 526 276 524 279 524 283 523 289 520 292 519 293 517 296 516 298 513 300 512 303 510 307 509 310 509 315 507 318 507 320 506 322 504 329 502 333 502 336 500 346 500 349 499 374 499 377 500 379 501 382 504 383 506 390 513 394 519 394 529 395 536 397 539 397 546 391 546 391 553 396 564 407 573 416 589 421 601 423 606 425 610 426 613 427 615 429 617 430 619 430 636 429 642 427 646 425 649 424 652 423 657 423 660 421 666 419 670 418 673 418 677 413 687 413 704 412 706 410 708 410 715 409 723 408 727 407 730 406 732 406 735 405 738 404 742 403 744 398 747 397 749 395 755 394 757 394 760 393 762 391 768 390 770 390 773 389 775 389 793 388 796 388 799 386 800 383 801 381 802 379 804 377 805 376 807 374 809 373 812 371 813 370 815 368 816 367 818 364 818 362 820 360 821 357 821 353 823 349 823 346 824 338 824 335 825 329 825 326 826 322 826 320 827 317 827 313 828 310 829 306 831 288 831 286 830 274 830 272 831 271 833 269 834 255 834 252 833 236 833 233 832 231 831 227 831 225 827 221 825 219 823 217 822 215 820 212 820 209 819 206 817 197 814 195 812 191 810 190 808 189 805 187 803 183 800 180 799 174 798 171 797 168 797 165 795 162 794 159 791 156 789 155 787 152 786 152 783 149 777 147 769 147 765 146 762 145 760 144 757 144 754 143 750 141 744 141 740 143 738 145 735 145 732 146 730 146 726 147 722 147 707 146 705 144 702 144 682 [[Britania dan Irlandia]]
poly 232 912 231 909 230 907 229 904 228 902 226 900 223 898 220 894 216 890 215 888 215 869 218 866 222 864 226 861 227 859 229 857 230 855 231 852 235 850 238 847 249 847 254 846 256 845 260 844 263 843 268 840 273 833 280 833 283 832 321 832 324 831 327 831 329 830 335 830 339 828 342 827 344 825 347 824 348 822 350 821 356 821 364 817 369 817 377 813 380 811 381 809 385 807 387 808 387 812 388 814 392 818 393 820 395 821 396 823 399 823 401 822 402 824 403 827 409 830 411 832 415 834 417 838 423 838 423 850 425 851 428 851 428 844 434 844 436 845 436 857 438 858 444 858 446 859 446 862 447 864 449 865 455 865 452 861 454 863 456 864 458 866 460 869 466 869 469 868 472 870 473 872 473 875 475 876 478 876 482 878 485 878 489 880 492 881 495 881 501 883 500 886 498 887 497 889 495 891 492 897 492 906 491 908 490 911 490 914 488 918 488 925 487 927 487 930 486 932 483 932 481 931 480 929 477 929 475 928 472 928 471 930 471 936 470 939 468 940 466 944 464 945 462 947 460 948 459 950 459 953 457 954 456 956 456 966 454 967 457 966 457 963 461 961 463 962 466 963 467 965 469 967 469 970 475 973 475 976 473 977 471 981 469 982 468 984 472 988 474 992 474 999 472 1000 466 1000 465 1002 466 1004 469 1004 472 1010 472 1016 471 1018 469 1019 469 1025 471 1026 475 1030 478 1031 482 1033 483 1035 483 1038 482 1040 482 1046 481 1048 481 1052 480 1056 480 1062 478 1063 477 1065 475 1066 481 1062 490 1062 494 1061 497 1061 499 1060 506 1060 508 1059 512 1059 517 1061 518 1063 520 1064 533 1064 535 1065 535 1094 533 1095 532 1097 532 1112 531 1114 529 1116 526 1116 525 1118 523 1119 521 1123 519 1125 508 1125 504 1124 492 1124 489 1123 489 1120 486 1114 484 1112 484 1109 483 1105 482 1103 481 1099 475 1097 473 1096 457 1096 455 1095 453 1093 451 1092 448 1091 446 1090 442 1089 423 1089 422 1087 420 1085 417 1085 416 1090 413 1090 412 1088 409 1088 403 1085 400 1085 398 1084 395 1084 391 1082 382 1082 381 1080 372 1080 370 1081 364 1078 355 1078 353 1077 353 1074 349 1072 346 1072 344 1071 341 1071 340 1069 338 1068 337 1066 335 1065 332 1065 330 1064 329 1062 326 1062 326 1065 323 1065 317 1062 308 1062 306 1061 304 1057 295 1057 293 1056 293 1049 291 1048 289 1049 286 1049 285 1047 281 1045 280 1043 280 1040 274 1037 273 1034 271 1032 270 1029 266 1021 266 1018 264 1012 261 1011 261 1008 259 1007 258 1004 258 997 257 992 256 990 254 987 252 983 252 979 251 974 250 972 250 968 249 966 248 963 248 957 247 954 245 950 242 949 238 949 234 948 231 945 230 941 229 939 229 935 228 933 226 931 224 928 222 929 223 927 227 925 229 923 230 921 229 919 [[Perancis]]
poly 413 766 415 765 416 763 418 761 419 758 420 756 422 754 423 752 426 750 429 749 431 747 434 747 437 745 440 745 446 742 449 741 450 739 452 737 454 734 456 733 459 733 462 732 471 732 473 733 475 737 477 738 478 740 480 742 483 743 484 745 488 747 488 750 482 762 480 763 480 766 478 767 474 767 472 768 474 769 475 771 477 772 480 773 483 773 484 775 484 778 482 782 480 783 477 783 477 789 475 790 472 790 471 792 467 794 466 791 463 792 462 795 461 797 461 800 463 802 464 804 464 807 462 811 462 820 460 821 460 824 462 825 463 827 463 834 465 836 466 838 466 842 463 848 463 851 467 853 470 853 471 855 471 858 469 859 467 861 463 869 461 870 460 872 460 875 456 879 443 879 437 876 435 874 431 872 428 871 427 869 422 867 421 865 419 864 418 862 416 860 415 858 413 855 412 852 411 850 409 849 407 847 403 845 400 843 397 842 393 841 387 838 386 836 384 833 383 831 381 830 380 828 380 822 381 819 382 817 382 814 383 812 387 810 388 808 390 806 396 802 398 799 399 797 403 795 404 792 406 791 410 783 410 780 412 776 412 773 413 771 414 768 414 765 [[Benelux]]
poly 55 1114 56 1117 56 1120 57 1123 57 1145 53 1147 51 1146 51 1158 52 1161 54 1165 54 1191 51 1196 50 1199 49 1201 49 1204 51 1205 54 1206 57 1210 58 1212 60 1215 63 1221 67 1223 70 1223 71 1225 78 1225 82 1226 88 1226 89 1228 92 1229 95 1229 96 1231 102 1234 105 1234 106 1237 108 1238 109 1240 112 1240 114 1241 138 1241 140 1242 141 1244 143 1245 143 1248 144 1250 144 1253 146 1252 149 1252 153 1254 168 1254 171 1255 173 1256 186 1256 188 1257 188 1260 189 1262 191 1263 192 1266 194 1270 197 1270 199 1274 203 1276 206 1277 209 1277 213 1279 218 1279 221 1278 231 1273 234 1272 238 1270 241 1270 243 1268 246 1268 249 1265 252 1265 255 1264 256 1262 258 1261 260 1259 263 1257 265 1255 269 1253 272 1252 273 1250 276 1249 278 1247 281 1247 284 1243 288 1241 293 1239 296 1237 298 1235 299 1233 301 1231 303 1230 306 1230 310 1228 312 1225 318 1225 319 1223 327 1223 331 1222 333 1221 337 1221 340 1220 342 1219 344 1217 347 1217 350 1216 353 1216 355 1214 360 1214 363 1213 368 1210 372 1207 374 1206 375 1204 378 1204 379 1202 383 1200 384 1198 386 1197 387 1194 389 1193 392 1193 393 1191 395 1189 396 1187 399 1187 407 1180 409 1179 410 1177 412 1176 416 1172 417 1169 420 1163 420 1160 422 1156 422 1144 420 1138 416 1136 413 1135 404 1129 404 1126 402 1124 401 1122 401 1119 399 1117 396 1111 394 1105 393 1103 393 1097 391 1095 390 1093 390 1083 389 1081 389 1078 388 1076 386 1070 385 1068 384 1065 383 1063 381 1060 380 1057 378 1054 376 1050 373 1048 371 1047 366 1046 362 1046 358 1044 353 1044 349 1042 345 1041 342 1040 338 1036 334 1035 331 1033 325 1033 317 1031 313 1031 308 1030 305 1030 303 1029 300 1028 296 1026 293 1024 290 1021 286 1020 283 1019 279 1018 277 1017 274 1016 273 1014 267 1014 265 1013 262 1013 260 1012 257 1012 254 1010 249 1009 246 1009 240 1007 237 1007 234 1006 230 1005 224 1001 220 999 217 998 215 997 212 997 212 1001 207 1001 201 1000 197 998 193 997 190 995 187 995 184 994 176 992 172 990 152 990 149 989 147 988 144 987 140 983 134 980 128 980 125 981 117 981 112 982 104 984 102 986 96 988 94 989 91 990 86 991 82 992 79 994 75 1000 74 1003 73 1007 72 1010 71 1012 69 1015 69 1020 67 1024 67 1028 65 1032 65 1086 64 1088 64 1100 60 1108 60 1111 59 1113 59 1119 58 1117 [[Iberia]]
poly 480 1152 481 1150 481 1128 480 1124 480 1100 479 1098 479 1092 478 1088 478 1070 479 1068 479 1062 480 1060 480 1047 481 1045 481 1042 484 1042 479 1041 468 1041 464 1039 463 1036 462 1034 460 1031 458 1025 455 1022 453 1018 452 1015 452 1007 451 1005 448 1003 445 1003 442 1002 443 999 443 995 444 993 446 992 448 989 450 988 451 986 455 984 457 982 460 982 461 980 469 980 473 978 476 978 478 979 484 976 490 979 498 975 499 973 499 970 497 969 496 967 496 964 499 964 503 963 506 962 507 964 507 973 511 975 512 977 514 979 516 980 517 978 517 975 521 967 521 964 522 962 524 963 525 965 529 967 532 967 534 966 537 966 538 969 541 969 543 970 544 968 544 965 538 962 539 960 545 960 547 959 547 956 546 953 545 951 554 951 555 949 557 950 557 956 559 953 560 951 562 949 563 947 565 946 567 947 570 948 576 948 584 944 584 953 585 955 588 955 590 956 593 956 596 957 614 957 616 958 616 961 613 961 612 963 613 965 615 966 616 968 615 970 613 971 613 975 614 977 616 979 618 980 619 982 618 984 616 985 613 991 613 994 612 996 610 998 608 1002 603 1009 605 1013 608 1013 612 1014 616 1016 618 1018 621 1020 625 1022 626 1025 628 1027 630 1031 632 1032 633 1035 635 1039 637 1047 639 1049 640 1051 642 1052 644 1054 648 1056 649 1059 651 1060 653 1062 654 1064 659 1067 661 1070 663 1071 666 1071 667 1073 670 1073 674 1075 678 1075 682 1077 683 1079 684 1082 686 1083 688 1085 689 1087 691 1089 694 1091 697 1092 698 1094 701 1098 703 1101 706 1102 709 1105 712 1105 714 1106 717 1106 720 1109 722 1110 725 1111 727 1113 728 1115 729 1119 731 1120 732 1123 734 1126 738 1128 740 1130 742 1131 743 1133 745 1134 746 1136 748 1139 749 1141 749 1144 750 1146 750 1162 749 1164 749 1167 748 1170 748 1173 751 1175 751 1181 750 1183 749 1186 748 1190 746 1194 744 1200 744 1203 741 1209 739 1210 737 1212 735 1213 733 1215 732 1217 732 1221 731 1224 731 1227 728 1230 728 1246 727 1250 726 1253 726 1256 724 1257 721 1257 720 1259 716 1260 712 1262 709 1263 703 1266 700 1267 695 1267 693 1268 688 1269 686 1270 683 1270 680 1271 671 1271 669 1270 663 1270 661 1269 646 1269 644 1268 641 1267 638 1267 636 1266 634 1264 633 1261 632 1259 630 1258 628 1256 626 1255 625 1253 623 1252 618 1251 615 1250 612 1250 610 1249 606 1248 604 1247 601 1246 599 1245 596 1245 593 1242 590 1240 587 1239 584 1237 582 1235 579 1234 575 1232 569 1232 567 1231 564 1230 562 1229 559 1229 557 1228 554 1228 552 1227 549 1226 534 1226 531 1224 529 1222 526 1221 520 1218 517 1217 515 1216 511 1216 509 1215 505 1214 503 1213 500 1212 499 1210 495 1208 495 1205 491 1203 487 1195 487 1189 485 1185 485 1179 484 1177 484 1174 [[Italia]]
poly 583 1304 583 1298 582 1295 581 1293 581 1289 580 1284 579 1281 577 1277 576 1274 575 1272 574 1266 573 1262 572 1260 571 1257 570 1255 569 1252 567 1249 567 1245 570 1249 567 1248 563 1246 560 1244 556 1242 553 1241 552 1238 549 1237 541 1235 535 1235 532 1234 529 1234 525 1233 521 1231 497 1231 495 1230 492 1230 489 1229 480 1229 472 1227 465 1227 463 1228 461 1230 377 1230 371 1232 367 1232 364 1233 361 1233 352 1234 349 1235 345 1236 341 1236 337 1237 334 1237 330 1238 326 1240 323 1240 321 1241 316 1241 315 1243 310 1243 309 1241 308 1244 308 1248 305 1248 303 1249 300 1248 281 1248 277 1249 272 1249 268 1250 265 1250 259 1248 249 1246 235 1244 230 1244 226 1243 223 1243 219 1241 216 1240 213 1238 195 1238 191 1237 181 1237 178 1238 156 1238 152 1237 118 1237 116 1238 112 1245 105 1247 102 1247 96 1248 88 1250 85 1250 82 1252 79 1252 78 1254 75 1255 74 1257 71 1258 69 1261 60 1264 59 1266 57 1267 55 1269 54 1271 51 1271 50 1274 49 1276 49 1279 48 1282 45 1288 43 1290 41 1294 41 1301 39 1305 [[Afrika Utara]]
poly 778 1213 777 1211 776 1208 774 1206 773 1203 772 1198 771 1196 770 1193 770 1187 769 1184 769 1175 767 1171 767 1168 770 1162 772 1161 772 1158 771 1156 773 1155 782 1155 784 1154 785 1152 785 1149 783 1147 782 1145 782 1142 785 1142 789 1140 791 1136 791 1130 792 1128 796 1126 796 1117 798 1116 800 1114 810 1114 811 1112 813 1111 817 1103 821 1101 834 1101 835 1099 835 1093 837 1094 841 1092 844 1092 845 1090 855 1090 857 1089 860 1089 866 1086 868 1082 872 1080 873 1082 876 1082 878 1084 882 1083 884 1082 887 1082 888 1084 890 1085 893 1085 895 1084 896 1082 898 1084 902 1082 906 1081 908 1080 912 1080 913 1077 915 1076 916 1074 910 1074 906 1072 906 1065 912 1065 915 1066 917 1068 920 1068 922 1072 922 1075 920 1076 917 1082 917 1085 918 1087 918 1094 914 1096 911 1097 909 1098 907 1100 906 1102 906 1130 907 1132 907 1135 908 1139 908 1142 909 1145 909 1152 910 1154 910 1157 912 1160 914 1164 914 1168 912 1176 912 1180 913 1182 916 1186 916 1192 918 1196 918 1199 919 1201 920 1204 920 1208 922 1212 923 1216 924 1219 925 1221 927 1222 930 1223 932 1224 934 1226 938 1228 940 1232 943 1236 946 1237 950 1239 953 1240 956 1246 957 1249 958 1251 962 1253 963 1255 963 1258 962 1260 962 1277 960 1281 958 1282 954 1283 952 1284 949 1284 947 1285 939 1285 937 1286 936 1288 933 1290 930 1290 927 1292 924 1292 920 1293 913 1294 907 1296 899 1296 896 1295 892 1294 886 1291 884 1289 875 1286 872 1286 868 1285 866 1284 863 1284 860 1283 858 1282 854 1281 854 1278 851 1280 844 1280 839 1279 836 1278 834 1277 830 1276 826 1274 821 1273 819 1271 818 1267 816 1264 814 1260 813 1254 812 1252 810 1246 809 1244 808 1240 806 1236 803 1236 797 1234 794 1232 793 1230 790 1226 786 1222 781 1212 778 1212 776 1211 [[Yunani]]
poly 903 1098 912 1096 910 1092 910 1083 912 1082 913 1080 915 1079 916 1077 916 1071 914 1067 914 1064 915 1062 917 1061 919 1057 925 1057 927 1055 928 1053 930 1052 931 1050 933 1051 934 1053 936 1054 939 1054 940 1052 948 1048 960 1048 963 1047 966 1047 968 1048 982 1048 985 1047 986 1044 987 1040 990 1039 992 1038 998 1036 1004 1035 1008 1034 1011 1032 1013 1030 1015 1029 1016 1027 1018 1025 1020 1024 1022 1022 1028 1019 1031 1017 1036 1014 1039 1011 1042 1010 1050 1006 1053 1006 1057 1005 1060 1004 1063 1004 1065 1002 1068 1002 1070 1000 1074 998 1076 995 1076 992 1078 991 1081 990 1086 989 1093 988 1098 987 1106 985 1112 983 1122 982 1133 982 1138 981 1142 980 1145 980 1146 978 1158 974 1163 974 1166 973 1174 973 1178 971 1188 971 1191 970 1196 969 1199 969 1202 968 1206 968 1208 967 1212 967 1214 966 1217 966 1219 964 1222 964 1228 962 1232 960 1236 960 1238 959 1241 959 1243 958 1245 956 1252 956 1256 954 1259 954 1260 952 1262 951 1268 951 1269 949 1270 946 1272 942 1274 943 1274 946 1278 944 1287 944 1288 946 1284 948 1290 948 1292 947 1298 950 1299 952 1302 952 1303 954 1305 956 1306 958 1306 964 1307 968 1308 970 1310 971 1310 974 1312 973 1314 974 1320 972 1322 970 1324 969 1327 969 1329 970 1332 971 1336 973 1335 975 1333 976 1332 978 1333 981 1334 983 1334 986 1333 988 1330 988 1328 992 1330 996 1332 995 1333 997 1333 1000 1335 1001 1336 1003 1337 1001 1334 1002 1337 1002 1338 1004 1340 1005 1342 1007 1343 1010 1344 1012 1348 1014 1351 1014 1349 1020 1349 1029 1350 1031 1352 1032 1358 1032 1359 1035 1360 1037 1360 1040 1363 1040 1367 1042 1369 1044 1370 1046 1364 1049 1364 1055 1361 1055 1359 1051 1357 1050 1354 1048 1348 1051 1348 1054 1347 1056 1341 1056 1338 1057 1335 1057 1334 1059 1328 1062 1325 1062 1323 1066 1323 1072 1321 1073 1318 1073 1316 1072 1314 1068 1312 1069 1311 1071 1311 1074 1307 1076 1306 1078 1302 1080 1300 1084 1296 1086 1293 1086 1290 1087 1288 1088 1285 1088 1283 1089 1281 1093 1279 1094 1276 1100 1274 1101 1274 1104 1272 1108 1264 1112 1261 1112 1259 1114 1256 1114 1254 1118 1246 1122 1225 1122 1220 1132 1217 1132 1214 1134 1208 1134 1212 1135 1210 1136 1208 1138 1202 1141 1202 1138 1190 1138 1188 1140 1188 1143 1187 1145 1190 1145 1194 1146 1196 1150 1196 1159 1194 1160 1191 1161 1190 1163 1188 1164 1188 1171 1187 1173 1185 1172 1179 1172 1174 1173 1172 1174 1168 1178 1160 1182 1158 1184 1154 1186 1151 1187 1149 1189 1147 1190 1146 1192 1144 1193 1141 1194 1137 1196 1136 1198 1133 1200 1129 1202 1126 1203 1124 1205 1121 1205 1119 1206 1113 1208 1110 1208 1104 1210 1101 1210 1099 1212 1097 1213 1094 1214 1091 1214 1090 1216 1087 1216 1086 1218 1082 1218 1077 1220 1074 1220 1066 1222 1056 1222 1053 1224 987 1224 985 1225 985 1228 982 1229 980 1228 974 1228 971 1227 964 1227 961 1226 958 1226 955 1224 945 1224 943 1223 940 1223 939 1221 937 1219 936 1217 933 1214 930 1213 928 1212 924 1212 921 1210 918 1210 916 1209 914 1207 914 1204 913 1201 911 1200 910 1198 905 1192 903 1189 902 1187 902 1184 901 1182 900 1176 900 1172 899 1170 898 1164 898 1158 897 1153 896 1150 894 1145 894 1128 893 1126 893 1123 894 1121 895 1118 896 1116 896 1108 897 1106 897 1103 899 1102 [[Turki]]
poly 1164 1290 1163 1292 1163 1296 1165 1298 1166 1300 1168 1302 1168 1306 1499 1306 1499 966 1498 962 1495 962 1492 963 1489 962 1487 960 1481 960 1477 961 1474 961 1471 960 1465 960 1463 959 1460 959 1458 960 1455 960 1453 962 1450 962 1448 963 1445 963 1443 964 1437 964 1435 965 1434 963 1432 962 1430 963 1424 960 1422 961 1420 960 1420 956 1422 952 1414 948 1414 944 1418 942 1410 938 1407 938 1403 940 1402 942 1402 945 1400 949 1396 951 1395 953 1393 954 1392 956 1392 959 1391 961 1393 962 1394 964 1390 966 1390 969 1389 971 1389 974 1388 976 1384 978 1381 984 1377 986 1371 986 1369 987 1368 985 1362 982 1358 984 1354 984 1346 980 1344 978 1334 973 1332 974 1326 974 1324 975 1321 977 1319 979 1317 980 1315 982 1312 988 1306 992 1302 996 1300 999 1297 1001 1296 1003 1292 1005 1291 1007 1289 1009 1288 1012 1285 1014 1283 1018 1283 1022 1282 1024 1276 1026 1272 1028 1268 1031 1263 1036 1258 1040 1254 1044 1252 1047 1251 1050 1249 1052 1248 1055 1242 1059 1237 1062 1231 1065 1226 1070 1223 1074 1220 1076 1217 1080 1216 1084 1214 1086 1214 1090 1212 1092 1211 1094 1207 1096 1205 1098 1203 1102 1201 1105 1200 1107 1196 1109 1196 1112 1195 1115 1192 1121 1190 1122 1190 1125 1188 1128 1186 1130 1180 1134 1178 1138 1177 1142 1176 1144 1174 1145 1173 1147 1172 1150 1170 1154 1170 1157 [[Timur Tengah]]
poly 1220 942 1223 943 1230 950 1233 952 1235 954 1236 956 1238 957 1239 961 1241 964 1242 967 1243 969 1245 972 1249 976 1251 977 1254 978 1256 980 1260 980 1264 981 1267 982 1271 984 1274 986 1276 988 1279 988 1282 989 1285 989 1288 990 1291 990 1294 991 1302 993 1310 993 1314 994 1327 994 1329 995 1332 995 1334 996 1337 996 1339 997 1362 997 1365 996 1382 996 1384 995 1387 995 1390 994 1393 994 1397 992 1403 990 1408 986 1409 984 1412 984 1414 983 1418 983 1421 982 1424 982 1426 981 1430 980 1434 978 1437 976 1440 975 1450 970 1452 968 1454 967 1453 964 1453 961 1452 959 1452 929 1454 927 1454 917 1456 914 1456 890 1455 888 1455 885 1453 883 1450 881 1448 879 1445 878 1441 874 1437 873 1435 872 1433 870 1431 869 1428 868 1426 866 1418 862 1391 862 1390 864 1388 865 1388 874 1385 880 1385 884 1384 886 1384 892 1382 893 1382 896 1381 898 1377 900 1371 900 1369 899 1368 897 1368 897 1366 898 1362 896 1356 896 1352 894 1351 892 1348 892 1344 894 1322 894 1321 892 1321 886 1320 884 1316 886 1315 888 1313 889 1311 888 1310 886 1306 884 1302 886 1302 892 1296 888 1292 890 1292 893 1290 894 1289 897 1288 899 1288 902 1286 903 1283 903 1281 904 1280 902 1280 899 1278 898 1272 898 1268 900 1262 900 1260 896 1257 896 1255 900 1249 900 1247 899 1244 899 1240 901 1239 903 1235 905 1233 907 1231 908 1230 906 1221 906 1219 907 1216 907 1214 908 1213 910 1212 908 1209 908 1205 906 1204 908 1200 910 1194 910 1196 914 1196 923 1198 925 1201 925 1203 926 1204 928 1206 930 1208 934 1210 935 1216 935 [[Kaukasus]]
poly 758 1148 755 1148 751 1146 745 1140 742 1140 738 1138 730 1138 727 1136 721 1134 720 1132 718 1131 716 1129 714 1126 710 1124 706 1123 702 1121 698 1120 688 1110 684 1107 679 1105 673 1104 667 1102 663 1100 660 1096 658 1094 656 1093 653 1091 652 1089 649 1088 647 1086 646 1084 643 1084 640 1083 632 1073 628 1070 624 1066 621 1061 618 1054 615 1051 611 1048 608 1046 607 1043 604 1039 604 1036 603 1033 600 1032 598 1028 598 1025 596 1021 596 1018 595 1016 595 1007 596 1004 602 1001 603 999 603 996 604 994 606 992 610 990 611 992 620 992 624 990 630 990 634 988 636 984 636 987 640 989 644 989 646 988 649 988 652 989 654 988 652 984 654 983 654 980 653 978 656 978 658 976 660 975 660 969 658 965 666 961 672 961 674 960 672 956 670 955 670 952 676 952 680 954 680 957 681 959 685 961 686 963 690 965 691 967 693 969 695 970 696 972 708 972 709 974 721 974 723 973 724 970 724 967 728 965 731 965 733 964 736 964 740 962 742 958 744 957 746 958 758 958 759 956 762 956 764 952 770 952 774 950 776 946 776 942 778 938 780 937 780 934 782 931 782 928 784 927 784 920 786 916 788 915 788 906 789 904 791 902 799 898 800 896 800 893 802 892 803 890 805 889 808 888 810 887 812 888 815 889 818 889 820 888 832 888 834 887 840 887 844 888 848 890 851 884 852 886 853 884 856 884 858 883 865 883 871 880 874 874 874 868 875 866 877 867 879 863 881 862 887 862 888 860 894 857 900 857 903 858 906 858 909 859 911 858 912 860 916 862 917 860 920 860 924 862 927 862 928 864 929 862 932 862 932 871 933 873 932 875 934 876 936 880 940 882 942 880 944 881 947 887 949 888 950 890 953 890 955 894 955 897 956 899 958 900 959 902 959 908 957 904 954 904 954 910 952 909 951 906 948 906 946 907 946 910 943 909 943 906 942 904 940 903 938 904 938 910 940 914 940 920 938 924 938 931 936 932 935 934 935 937 933 938 932 940 932 946 941 946 943 947 945 946 947 944 949 943 950 940 954 938 957 938 960 940 966 940 968 941 971 941 973 942 976 942 976 952 975 956 974 959 972 963 972 966 971 968 971 972 970 974 970 977 969 979 968 982 968 997 969 1000 970 1002 969 1004 969 1007 968 1009 968 1012 966 1016 965 1019 964 1021 964 1024 963 1026 963 1038 959 1046 955 1050 954 1052 952 1054 952 1057 950 1059 948 1060 946 1064 944 1070 940 1074 936 1075 933 1076 931 1078 928 1079 926 1081 922 1083 920 1085 914 1088 910 1088 906 1090 903 1091 902 1094 900 1096 899 1098 895 1098 891 1099 886 1100 882 1101 880 1102 876 1103 872 1105 870 1107 868 1110 866 1111 863 1112 861 1114 857 1115 855 1116 853 1118 850 1120 849 1122 846 1124 844 1126 840 1127 838 1128 835 1129 831 1130 828 1132 827 1134 823 1136 822 1138 819 1140 816 1140 812 1142 809 1144 806 1148 804 1151 800 1153 797 1154 795 1155 791 1156 789 1157 786 1159 785 1162 784 1164 781 1164 777 1162 774 1160 771 1160 770 1158 766 1157 763 1156 761 1155 760 1152 759 1150 [[Balkan]]
poly 1004 968 973 968 970 967 946 967 940 966 934 966 928 964 920 963 905 963 900 962 897 962 894 961 892 960 888 957 886 954 884 952 880 952 876 950 875 948 872 947 870 946 868 944 866 941 862 938 856 936 850 932 844 927 840 921 836 918 834 916 830 915 828 914 826 912 816 907 814 904 810 902 808 900 806 899 805 896 804 894 804 891 796 887 794 883 790 881 788 879 786 878 786 875 788 874 788 870 789 868 789 862 790 860 792 859 794 860 795 858 795 855 793 854 793 851 792 848 792 839 794 838 794 835 795 832 795 829 796 827 798 826 800 822 800 819 802 815 804 814 808 814 810 813 813 813 815 812 816 810 816 807 814 806 813 804 811 803 809 801 809 798 812 797 802 792 798 784 798 781 797 779 797 776 800 776 802 777 803 774 805 770 809 768 813 768 815 767 818 766 821 766 822 764 825 764 827 763 830 763 832 762 835 762 836 760 843 760 847 758 850 759 852 760 858 760 860 759 866 762 872 762 872 762 874 763 876 762 877 760 880 760 881 758 882 760 885 760 886 758 892 758 894 759 896 758 898 756 900 752 902 756 904 758 907 758 907 755 910 755 912 756 914 754 920 751 922 752 923 754 927 756 929 755 930 753 930 750 928 746 928 734 930 733 931 731 933 730 936 730 938 729 938 725 942 723 944 724 950 724 952 720 952 717 953 715 955 714 961 714 963 713 966 713 967 711 967 708 968 706 972 708 978 705 984 708 984 714 993 714 994 716 992 720 992 723 994 724 994 727 996 728 997 730 997 733 998 735 1000 734 1003 734 1007 732 1010 732 1012 731 1014 732 1017 732 1020 738 1022 739 1026 743 1028 747 1030 748 1031 750 1034 750 1038 748 1048 748 1050 746 1053 746 1055 745 1059 737 1061 736 1067 736 1068 738 1068 742 1072 744 1078 744 1082 746 1082 740 1084 739 1088 741 1091 741 1093 740 1096 740 1097 742 1099 743 1102 743 1104 742 1104 739 1105 741 1107 742 1109 738 1112 738 1112 742 1114 743 1116 742 1120 741 1122 740 1123 738 1124 740 1124 746 1126 747 1127 749 1127 758 1124 758 1120 760 1122 761 1128 761 1127 764 1124 764 1127 770 1130 770 1130 773 1132 774 1136 782 1136 788 1137 790 1137 793 1133 795 1127 795 1121 798 1120 800 1118 801 1118 804 1120 805 1119 808 1118 810 1116 811 1116 814 1115 816 1115 825 1116 827 1116 836 1115 838 1113 840 1109 842 1106 843 1104 847 1104 850 1103 852 1103 873 1104 876 1104 883 1105 885 1102 889 1104 893 1104 899 1105 901 1105 919 1103 920 1102 922 1100 924 1096 926 1094 928 1091 929 1089 930 1086 931 1082 933 1081 936 1077 937 1068 946 1066 947 1063 949 1061 950 1058 950 1048 955 1046 959 1044 960 [[Ukraina]]
poly 781 708 782 710 783 713 787 721 788 724 789 726 793 728 796 734 796 740 794 744 794 747 792 748 789 748 787 749 785 753 785 759 787 760 791 760 793 762 794 764 794 768 795 770 793 772 796 774 798 775 802 779 805 780 807 781 810 782 814 783 849 783 852 782 862 782 864 781 874 781 881 782 894 782 892 781 894 780 897 779 904 775 908 772 912 771 914 770 918 769 921 768 923 767 927 766 931 766 934 765 938 763 940 761 941 759 950 750 952 749 953 747 956 745 956 742 958 740 956 736 953 735 951 734 949 732 947 728 945 726 943 722 941 721 940 719 940 713 938 712 936 708 936 705 934 704 932 700 928 698 925 698 926 696 930 694 932 690 938 693 942 691 942 688 945 682 947 681 948 679 948 676 945 676 944 674 944 670 942 669 940 670 938 672 937 674 928 674 926 675 926 666 924 665 921 665 919 664 918 662 916 661 914 657 912 656 910 652 907 652 905 651 902 651 900 650 900 644 901 642 903 641 901 639 899 638 898 636 898 625 896 624 890 624 886 622 880 622 878 623 878 626 876 630 870 630 870 624 869 622 866 622 864 621 861 622 855 622 852 620 849 620 848 622 844 624 843 626 843 629 842 631 842 634 838 636 832 636 830 638 828 642 828 646 826 647 826 650 825 652 827 651 829 652 830 655 830 658 829 660 825 662 822 662 822 665 820 666 820 670 818 671 817 673 818 675 818 684 814 686 816 687 819 687 820 690 820 693 817 693 815 692 813 688 811 689 808 695 804 697 804 700 801 706 800 704 794 704 793 706 789 708 788 706 782 706 778 708 778 711 786 715 786 718 788 722 789 725 790 727 792 729 792 732 794 733 796 736 796 746 795 748 792 748 788 750 787 752 785 754 784 756 784 760 793 760 794 762 794 768 [[Belarus]]
poly 208 200 205 200 201 201 187 201 184 202 174 204 170 205 165 208 163 210 159 210 159 213 155 214 152 215 148 217 143 218 139 218 135 219 133 220 129 221 126 224 124 227 122 228 120 231 119 233 117 234 116 236 114 237 105 243 104 246 101 247 100 250 100 253 97 254 96 257 93 259 92 261 90 263 89 268 89 272 88 275 88 301 89 308 92 320 92 333 93 343 93 348 94 351 95 356 96 360 97 366 98 369 99 373 100 376 101 378 104 381 104 385 105 389 107 391 108 393 117 396 127 399 135 402 140 403 144 406 147 409 157 413 163 415 167 415 171 417 177 421 189 431 200 437 210 445 217 457 226 466 235 471 241 474 245 475 247 476 250 477 252 478 253 480 257 482 261 483 262 485 265 486 269 487 272 488 276 490 285 490 288 491 294 491 296 492 312 492 315 490 324 490 328 488 331 487 334 487 340 484 346 482 353 482 357 483 361 482 371 483 377 484 381 484 384 486 387 486 388 488 391 489 393 493 395 495 397 496 399 498 402 499 403 501 406 503 408 505 409 507 412 508 413 510 417 514 419 518 421 519 423 521 425 522 426 524 429 525 430 527 430 535 431 539 432 541 436 546 439 554 440 559 443 562 444 564 447 566 447 579 449 583 450 587 451 589 451 596 452 599 452 602 453 606 453 618 454 621 455 623 456 627 456 630 457 633 458 635 458 642 459 646 460 648 462 651 463 654 465 656 465 659 467 665 469 668 470 670 472 672 476 673 477 676 479 678 479 682 481 684 485 686 487 688 488 690 492 692 494 694 495 697 498 697 499 699 503 701 519 701 521 702 530 702 532 703 535 703 543 707 546 708 550 710 551 712 555 712 557 713 562 713 566 715 569 715 571 714 572 711 580 707 583 707 587 705 592 704 596 704 598 703 601 703 605 702 608 702 610 701 613 701 615 700 619 699 628 699 631 698 634 696 637 693 639 692 641 690 643 689 645 687 649 685 652 685 657 684 660 683 664 682 665 680 668 680 669 678 671 677 672 674 674 672 675 669 676 667 680 665 681 662 684 662 687 660 687 657 689 656 690 653 692 651 695 650 697 649 698 646 698 625 700 624 700 611 704 603 706 601 706 598 707 596 712 591 717 589 720 588 724 587 728 585 731 584 733 583 737 579 739 578 741 572 742 570 744 569 745 567 748 567 750 566 752 564 758 561 761 559 762 557 764 555 765 553 769 551 771 547 773 546 774 544 776 541 777 538 778 536 780 534 783 528 785 527 786 525 788 522 792 520 793 518 795 516 797 515 801 511 803 510 805 508 807 507 809 503 811 502 811 499 809 498 806 492 806 483 810 475 812 474 813 472 815 471 816 469 818 468 819 466 835 418 835 409 837 408 836 406 834 405 833 403 831 402 830 400 828 399 809 387 809 380 811 374 813 373 813 370 804 370 802 369 805 368 803 364 803 361 801 360 801 357 794 357 790 355 789 352 787 351 789 350 790 348 792 347 790 345 788 344 786 342 785 340 787 336 789 335 790 333 792 332 790 331 789 329 790 327 789 324 777 310 773 304 769 300 768 299 766 298 766 294 766 293 764 291 766 288 770 287 769 284 768 280 770 276 771 272 770 270 768 268 767 266 761 266 759 265 757 259 753 257 751 258 749 257 748 255 746 254 745 252 745 248 743 244 743 241 739 239 741 237 742 235 746 234 748 228 750 226 751 224 751 215 754 215 756 214 762 212 759 211 757 209 756 207 756 204 755 202 755 193 757 189 759 187 761 184 762 180 762 177 760 39 759 37 758 34 757 32 756 29 754 26 753 24 751 23 749 21 746 20 743 20 740 19 737 19 734 18 730 15 729 12 726 10 725 8 722 7 718 5 716 3 714 2 709 1 706 1 704 0 542 0 538 2 533 7 527 11 523 14 520 14 512 18 510 20 509 23 507 24 505 28 503 29 501 31 497 33 [[Skandinavia]]
poly 1301 719 1303 721 1304 723 1307 723 1309 725 1311 726 1320 726 1322 727 1323 729 1321 733 1315 736 1315 739 1317 740 1320 740 1322 739 1337 739 1341 741 1344 741 1347 740 1349 738 1353 736 1353 732 1356 732 1358 730 1368 725 1370 723 1372 722 1375 722 1376 724 1376 734 1375 736 1375 740 1373 744 1371 745 1371 770 1370 772 1370 782 1372 790 1376 796 1378 802 1383 807 1387 808 1389 809 1394 810 1397 810 1400 811 1404 812 1407 812 1409 813 1413 814 1415 816 1425 816 1427 817 1430 818 1433 818 1435 819 1436 821 1439 822 1442 828 1443 831 1445 835 1449 836 1453 839 1456 840 1459 842 1463 845 1464 847 1467 848 1468 850 1471 850 1473 851 1474 853 1476 855 1478 856 1479 858 1479 862 1481 866 1483 867 1486 868 1489 868 1492 869 1496 870 1499 871 1499 251 1497 252 1496 254 1497 256 1499 257 1498 259 1495 259 1494 257 1494 263 1491 263 1489 262 1488 260 1488 257 1484 255 1484 252 1480 250 1478 251 1475 251 1472 250 1466 247 1460 247 1459 249 1460 251 1460 254 1459 256 1457 257 1455 259 1453 260 1447 260 1446 262 1444 263 1441 263 1440 265 1438 266 1438 278 1436 282 1438 283 1438 292 1435 298 1433 300 1430 300 1429 302 1429 311 1427 315 1425 317 1423 318 1423 324 1422 327 1422 338 1421 340 1418 340 1415 342 1412 342 1410 343 1408 347 1407 350 1407 356 1406 358 1406 361 1404 362 1403 364 1403 367 1402 370 1400 374 1400 377 1397 383 1388 383 1388 389 1387 391 1385 392 1376 392 1372 394 1376 396 1378 398 1378 405 1381 405 1383 404 1383 413 1387 411 1389 407 1390 409 1390 412 1394 414 1395 412 1397 410 1398 408 1404 408 1407 409 1408 411 1408 414 1406 415 1404 417 1402 421 1399 423 1397 424 1396 426 1397 428 1399 429 1399 432 1397 433 1397 436 1406 436 1409 437 1411 438 1412 440 1412 446 1410 447 1408 451 1405 451 1405 461 1406 463 1409 463 1413 461 1414 463 1417 463 1420 462 1422 461 1426 463 1428 462 1431 462 1433 461 1434 459 1436 458 1438 456 1440 455 1443 455 1443 462 1444 464 1448 466 1449 468 1449 477 1447 478 1446 480 1444 482 1440 484 1439 487 1438 489 1436 490 1432 488 1430 489 1430 492 1431 494 1431 497 1429 501 1429 504 1425 506 1424 508 1423 505 1423 502 1422 505 1421 507 1417 509 1414 509 1412 510 1406 507 1405 504 1403 505 1402 507 1398 509 1397 512 1394 513 1392 512 1391 514 1392 516 1396 518 1392 519 1388 521 1382 521 1378 523 1378 526 1376 530 1376 533 1375 535 1375 538 1374 540 1372 541 1372 547 1371 549 1371 552 1365 552 1359 549 1357 550 1354 551 1352 552 1349 553 1347 554 1348 556 1350 557 1350 564 1349 562 1347 560 1346 558 1343 558 1341 559 1338 559 1337 557 1333 555 1331 556 1328 557 1326 558 1324 557 1323 555 1317 555 1315 556 1313 560 1309 562 1308 564 1305 564 1303 565 1300 565 1299 563 1298 560 1295 561 1295 564 1294 566 1292 567 1292 574 1289 574 1287 576 1287 579 1285 580 1285 576 1284 574 1282 573 1279 574 1278 576 1274 578 1272 582 1273 584 1273 590 1269 598 1269 601 1267 605 1267 608 1264 607 1262 606 1262 621 1261 624 1260 626 1257 626 1256 628 1253 628 1255 629 1258 629 1261 635 1262 638 1262 641 1264 642 1266 641 1267 643 1269 645 1270 647 1269 649 1265 651 1259 651 1253 648 1252 646 1250 645 1244 645 1242 649 1240 650 1239 652 1242 658 1242 665 1239 671 1239 674 1240 676 1240 679 1242 683 1246 685 1249 685 1251 687 1250 689 1250 702 1253 708 1257 710 1266 710 1267 712 1267 716 1268 718 1269 721 1272 721 1278 724 1278 721 1279 719 1281 718 1282 716 1288 713 1294 713 1296 714 1298 716 1302 718 1303 720 1305 721 [[Asia Tengah]]
poly 802 20 804 14 805 12 809 10 813 7 815 5 818 5 819 3 822 2 827 1 830 0 1498 0 1499 14 1499 620 1497 617 1495 615 1494 613 1495 611 1489 734 1486 734 1484 732 1482 731 1479 731 1473 729 1470 727 1469 725 1466 724 1465 721 1461 720 1458 720 1452 718 1442 718 1440 717 1338 788 1439 897 1438 899 1437 902 1434 902 1431 904 1421 904 1419 905 1412 905 1410 906 1384 906 1382 907 1364 907 1362 915 1360 917 1353 917 1350 916 1338 916 1335 915 1329 914 1326 913 1322 911 1318 911 1316 910 1305 910 1303 911 1299 911 1298 913 1295 913 1292 914 1283 914 1280 912 1274 912 1272 972 1269 970 1263 970 1261 968 1258 968 1255 967 1251 967 1248 965 1244 965 1242 964 1239 964 1231 962 1229 961 1225 961 1222 959 1220 958 1219 954 1218 951 1218 948 1216 947 1213 947 1208 946 1205 945 1201 944 1197 944 1194 943 1190 943 1189 941 1185 937 1184 935 1183 932 1179 928 1172 928 1166 926 1161 925 1158 923 1154 921 1151 919 1147 918 1142 916 1139 916 1135 914 1131 913 1126 912 1123 912 1121 911 1119 909 1117 908 1114 908 1110 906 1109 904 1104 900 1101 899 1096 897 1090 895 1086 895 1083 894 1079 893 1078 891 1075 888 1073 883 1069 877 1061 869 1058 865 1054 860 1050 856 1046 853 1038 849 1035 849 1031 847 1030 845 1028 843 1027 841 1023 840 1010 840 1005 838 1001 837 997 834 992 826 986 817 980 812 975 809 969 807 962 804 954 800 947 795 940 787 934 781 924 773 919 768 918 763 912 758 907 754 902 754 899 750 895 749 891 746 887 740 884 733 883 731 880 729 879 727 877 728 874 728 871 727 868 724 865 720 863 712 857 707 855 705 850 703 848 701 845 700 842 696 839 690 836 686 834 682 826 674 824 668 819 661 818 656 817 653 814 650 813 648 810 643 809 638 808 634 807 631 804 625 801 622 800 620 796 619 795 616 792 614 794 613 801 614 800 611 798 607 796 605 795 603 793 602 791 598 791 593 790 590 789 588 788 584 787 581 786 575 786 564 785 560 783 550 783 543 782 541 781 538 779 537 778 535 778 525 777 523 776 520 775 516 775 513 774 511 773 507 771 503 767 494 765 487 763 482 762 480 761 477 758 475 755 474 752 472 750 471 750 468 749 288 745 286 744 283 741 282 740 280 736 280 735 278 733 277 731 275 731 268 730 265 730 262 729 260 729 254 726 248 725 245 724 241 724 51 727 48 728 46 730 45 736 45 739 44 743 44 745 43 749 42 752 42 754 41 757 41 761 38 763 36 769 32 772 31 775 31 777 30 780 30 782 29 [[Rusia]]
poly 704 691 704 697 710 700 719 700 721 701 728 701 730 702 736 702 738 703 750 703 754 701 757 701 759 700 762 700 764 699 767 699 769 698 772 697 778 694 779 692 779 679 777 675 773 669 770 667 765 667 762 666 760 664 753 664 751 663 745 663 742 664 739 664 738 666 735 666 731 668 728 669 726 671 723 671 717 674 715 676 713 677 713 680 711 681 711 684 [[Rusia]]
poly 474 720 472 723 469 729 468 732 468 735 467 737 464 740 463 742 461 743 459 746 458 749 457 753 455 759 454 761 454 764 453 766 453 769 452 772 452 777 451 780 451 787 450 789 450 792 449 795 447 799 447 807 446 811 446 818 443 821 443 876 441 880 441 883 440 886 440 891 439 893 438 896 437 898 437 913 436 916 436 919 439 920 437 924 437 988 440 988 445 990 448 992 450 996 452 997 454 999 456 1000 461 1000 464 999 478 999 482 998 505 998 507 997 509 993 545 993 551 992 554 992 556 991 565 991 566 989 568 988 571 988 573 987 579 987 582 986 585 984 587 983 590 982 593 982 596 983 598 984 599 986 611 992 614 993 616 994 621 995 624 995 626 996 629 996 631 997 634 997 636 998 661 998 665 997 667 996 669 994 675 993 683 993 688 992 692 992 695 991 696 989 699 989 702 987 705 986 708 986 709 984 712 984 714 983 720 981 735 981 737 980 740 980 742 979 746 978 749 978 750 976 756 974 759 974 762 973 766 971 769 969 773 968 777 966 780 965 781 963 787 961 790 961 799 958 802 949 802 946 803 943 805 940 806 938 808 937 811 931 812 927 813 925 813 922 816 921 818 914 818 898 819 895 819 892 822 889 822 885 823 883 825 881 827 878 827 871 829 868 832 862 832 851 831 849 831 835 830 833 830 821 829 817 829 812 828 809 828 801 827 799 827 785 826 783 826 777 825 774 825 766 824 764 824 757 823 755 823 751 821 743 821 734 818 732 817 729 813 727 812 723 809 714 807 710 805 709 803 707 801 703 799 701 797 700 796 698 793 698 792 696 789 696 788 694 785 694 784 692 777 692 769 688 764 689 758 689 756 690 753 691 751 692 719 692 717 691 714 691 706 687 686 687 684 686 681 686 680 684 677 684 675 683 642 683 639 684 636 684 633 686 627 686 625 687 622 687 619 688 617 689 614 689 612 690 582 690 579 689 575 689 572 690 559 690 557 691 529 691 525 690 523 689 507 689 504 688 498 688 496 686 [[Eropa Tengah]]
</imagemap>
<noinclude>
[[Kategori:Peta dunia]]
{{Worldimagemap/subpagedoc}}
{{INTERWIKI|Q18699815}}
</noinclude>
gpj1qvog0v49zk3lyv4t8w6s7ha25st
Templat:Peta dunia/Oseania
10
380
1556
1555
2024-12-03T14:15:07Z
Jon Harald Søby
20
4 revisi diimpor
1555
wikitext
text/x-wiki
<imagemap>
File:Oceania regions map.png|thumb|500px|Klik gambar untuk menelusuri!
desc none
rect 2858 1466 2958 1546 [[Pulau Paskah]]
poly 968 196 292 196 288 118 326 50 378 2 966 0 [[Jepang]]
poly 222 194 232 192 246 192 248 190 254 188 266 188 268 190 270 184 270 180 274 176 274 162 278 162 286 154 286 150 284 146 284 116 288 112 288 108 290 104 290 88 288 86 284 84 276 84 272 88 270 92 268 94 266 98 262 102 258 104 256 106 252 106 248 110 244 112 242 114 238 114 234 118 226 118 226 122 222 122 220 124 220 128 218 130 218 134 214 138 214 142 210 146 208 150 208 158 206 160 206 182 208 184 208 188 210 190 218 190 224 196 [[Taiwan]]
poly 20 312 0 312 0 0 300 0 298 2 298 30 296 36 292 44 290 46 288 54 286 56 284 60 284 64 280 64 276 68 274 72 272 74 272 78 270 82 270 86 260 96 256 98 252 98 250 100 246 102 242 102 230 114 230 118 226 122 226 126 224 130 218 136 216 140 210 146 210 150 206 152 206 156 204 160 200 162 198 166 194 170 190 170 186 172 178 174 174 174 170 176 166 176 164 178 160 178 154 180 148 186 144 186 140 190 138 194 136 196 136 200 130 206 128 210 124 214 120 216 116 220 112 220 110 224 104 228 102 230 98 230 96 236 94 240 86 246 72 260 72 268 70 270 66 278 56 288 52 290 48 290 [[Tiongkok]]
poly 540 476 542 748 1142 748 1142 558 1072 558 1072 476 [[Mikronesia]]
rect 696 206 792 390 [[Pulau Marianan Utara]]
rect 1124 200 1214 294 [[Pulau Wake]]
poly 1144 622 1340 624 1336 382 1080 384 1080 556 1140 558 [[Kepulauan Marshall]]
poly 2046 48 1560 48 1562 240 1730 238 1730 264 2048 266 [[Hawaii]]
rect 1450 0 1556 90 [[PulauMidway]]
rect 1628 238 1728 338 [[Johnston Atoll]]
rect 2426 1350 2584 1460 [[Pulau Pitcairn]]
poly 2422 960 2424 1510 1972 1508 1970 1072 2124 1074 2122 960 [[French Polynesia]]
poly 1666 1152 1664 1078 1648 1080 1648 1034 1746 1034 1744 1154 [[Samoa Amerika]]
rect 1477 745 1616 794 [[Pulau Baker]]
rect 1476 684 1618 742 [[Pulau Howland ]]
rect 1880 726 1982 806 [[Pulau Jarvis]]
poly 2120 628 2122 1072 1968 1070 1966 1004 1742 1002 1744 948 1508 946 1508 884 1236 878 1234 626 [[Kiribati]]
rect 1808 532 1920 618 [[Palmyra Atoll]]
rect 696 400 786 464 [[Guam]]
rect 422 530 538 694 [[Palau]]
rect 1144 736 1234 802 [[Nauru]]
rect 1598 946 1710 1030 [[Tokelau]]
rect 1368 880 1508 1054 [[Tuvalu]]
rect 1496 1056 1584 1148 [[Wallis dan Futuna]]
rect 1584 1078 1664 1154 [[Samoa]]
rect 1746 1002 1968 1348 [[Pulau Cook]]
rect 1644 1220 1714 1290 [[Niue]]
rect 1528 1152 1620 1354 [[Tonga]]
poly 1338 1060 1338 1332 1528 1332 1526 1152 1496 1152 1498 1056 [[Fiji]]
poly 1256 896 1254 1086 952 1086 954 936 978 938 978 922 1006 924 1006 896 [[Kepulauan Solomon]]
poly 1186 1086 1308 1088 1310 1290 1238 1292 1186 1224 [[Vanuatu]]
poly 1176 1212 1248 1308 1246 1374 990 1374 992 1212 [[New Caledonia]]
poly 138 562 204 562 206 630 382 632 382 200 140 200 [[Filipina]]
poly 78 630 82 632 84 636 92 636 94 638 98 638 100 640 100 644 108 644 112 640 112 636 114 634 114 622 110 620 78 620 [[Brunei]]
poly 2 722 4 726 6 728 6 734 8 736 12 736 18 730 42 730 44 728 48 728 48 720 52 720 54 718 58 718 60 716 64 716 66 718 70 718 72 722 76 720 80 720 82 718 90 718 92 716 96 716 100 712 100 706 108 698 110 692 114 688 114 684 112 682 116 678 120 676 124 672 124 648 132 640 134 642 186 642 186 630 190 626 194 624 196 622 196 610 186 600 184 596 184 590 182 584 182 580 180 578 178 574 178 570 176 568 168 568 164 564 130 564 128 568 124 568 122 572 122 576 118 578 118 602 116 604 116 608 112 612 112 628 116 628 116 644 112 648 100 648 92 640 34 640 30 642 20 642 18 644 14 644 12 646 0 646 [[Malaysia]]
poly 14 734 24 730 44 728 46 718 60 712 68 720 79 724 87 718 97 717 102 709 102 699 110 693 108 680 118 676 120 651 127 644 161 647 184 643 184 632 422 632 424 698 540 700 542 748 654 748 656 1004 410 1006 410 1060 0 1062 0 722 [[Indonesia]]
poly 658 788 658 1004 776 1004 780 1058 954 1060 954 938 978 936 978 922 1008 924 1010 922 1010 896 1066 896 1064 788 [[Papua Nugini]]
poly 1520 1470 1520 2140 1028 2140 1026 1550 1442 1548 1440 1470 [[Selandia Baru]]
rect 1134 1460 1284 1544 [[Pulau Norfolk]]
poly 0 1062 410 1060 412 1004 778 1004 778 1058 954 1060 954 1210 992 1212 992 1376 1026 1376 1026 2186 0 2188 [[Australia]]
</imagemap><noinclude>
[[Kategori:Peta dunia]]
{{dok}}
{{INTERWIKI|Q18699847}}
</noinclude>
23ya1n8hcgpza925usk9z1p2k299roq
Templat:Phone
10
381
1572
1571
2024-12-03T14:15:08Z
Jon Harald Søby
20
15 revisi diimpor
1571
wikitext
text/x-wiki
<abbr title="phone" style="text-decoration:none">☏</abbr> <bdi class="tel listing-phone">{{#invoke:LinkPhone|LinkPhone|{{{1|}}}}}</bdi><noinclude>
{{INTERWIKI|Q71235599}}</noinclude>
3hyvjbydzp6mn9yo9aenm3wm4uxbnba
Templat:Phrase
10
382
1576
1575
2024-12-03T14:15:08Z
Jon Harald Søby
20
3 revisi diimpor
1575
wikitext
text/x-wiki
''Beberapa [[Wikiwisata:Templat buku frase|frase]] di [[Wikiwisata:Proyekwiki buku frase|buku frase]] ini masih perlu diterjemahkan. Jika Anda memahami bahasa ini, Anda dapat [[Wikiwisata:Cara membantu Wikiwisata|turut membantu]] dengan [[Wikiwisata:Libatkan diri|terjun langsung]] dan [[Wikiwisata:Cara menyunting halaman|menerjemahkan sebuah frase]].''<noinclude>
[[Kategori:Templat hatnote]]
{{INTERWIKI|Q20331165}}
</noinclude>
hkbkasxg9eszbf4w1rfjlk1pma20dax
Templat:Phrasebook-status
10
383
1578
1577
2024-12-03T14:15:08Z
Jon Harald Søby
20
1 revisi diimpor
1577
wikitext
text/x-wiki
{{#switch:{{lc:{{{1|}}}}}
|stub=[[Berkas:Symbol plain grey.svg|15px|link=|alt=Stub icon|Stub status]]
|outline=[[Berkas:Start-icon.svg|15px|link=|alt=Outline icon|Outline status]]
|usable=[[Berkas:Symbol keep vote.svg|15px|link=|alt=Usable icon|Usable status]]
|guide=[[Berkas:Symbol support vote.svg|15px|link=|alt=Guide icon|Guide status]]
|star=[[Berkas:Symbol star gold.svg|15px|link=|alt=Star icon|Star status]]
|#default=
}}
j049we4liafzkdoud3ep36eejxly5e4
Templat:Phrasebookguide
10
384
1580
1579
2024-12-03T14:15:08Z
Jon Harald Søby
20
1 revisi diimpor
1579
wikitext
text/x-wiki
#redirect[[Templat:Guidephrasebook]]
pu67vr9ceacvfdxynnmta44w6sj17vw
Templat:Ping
10
385
1583
1582
2024-12-03T14:15:08Z
Jon Harald Søby
20
2 revisi diimpor
1582
wikitext
text/x-wiki
{{<includeonly>safesubst:</includeonly>#if:{{{1|<noinclude>$</noinclude>}}}
|@[[:User:{{<includeonly>safesubst:</includeonly>BASEPAGENAME:{{{1|Example}}}}}|{{<includeonly>safesubst:</includeonly>BASEPAGENAME:{{{1|Example}}}}}]]{{<includeonly>safesubst:</includeonly>#if:{{{2|}}}
|, [[:User:{{<includeonly>safesubst:</includeonly>BASEPAGENAME:{{{2|Example}}}}}|{{<includeonly>safesubst:</includeonly>BASEPAGENAME:{{{2|Example}}}}}]]{{<includeonly>safesubst:</includeonly>#if:{{{3|}}}
|, [[:User:{{<includeonly>safesubst:</includeonly>BASEPAGENAME:{{{3|Example}}}}}|{{<includeonly>safesubst:</includeonly>BASEPAGENAME:{{{3|Example}}}}}]]{{<includeonly>safesubst:</includeonly>#if:{{{4|}}}
|, [[:User:{{<includeonly>safesubst:</includeonly>BASEPAGENAME:{{{4|Example}}}}}|{{<includeonly>safesubst:</includeonly>BASEPAGENAME:{{{4|Example}}}}}]]{{<includeonly>safesubst:</includeonly>#if:{{{5|}}}
|, [[:User:{{<includeonly>safesubst:</includeonly>BASEPAGENAME:{{{5|Example}}}}}|{{<includeonly>safesubst:</includeonly>BASEPAGENAME:{{{5|Example}}}}}]]{{<includeonly>safesubst:</includeonly>#if:{{{6|}}}
|, [[:User:{{<includeonly>safesubst:</includeonly>BASEPAGENAME:{{{6|Example}}}}}|{{<includeonly>safesubst:</includeonly>BASEPAGENAME:{{{6|Example}}}}}]]{{<includeonly>safesubst:</includeonly>#if:{{{7|}}}
|, [[:User:{{<includeonly>safesubst:</includeonly>BASEPAGENAME:{{{7|Example}}}}}|{{<includeonly>safesubst:</includeonly>BASEPAGENAME:{{{7|Example}}}}}]]
}}
}}
}}
}}
}}
}}{{{p|:}}}
|{{<includeonly>safesubst:</includeonly>error|Error in [[Templat:Replyto]]: Username not given.}}
}}
baipt2tazincag4muznpbl8pape6m1s
Templat:Plain sister
10
386
1586
1585
2024-12-03T14:15:08Z
Jon Harald Søby
20
2 revisi diimpor
1585
wikitext
text/x-wiki
<includeonly><!--
Only show the box if at least one parameter is called
-->{{#if:{{{wikipedia|}}}{{{commons|}}}{{{commonscat|}}}{{{wikiquote|}}}{{{wikinews|}}}{{{wiktionary|}}}{{{wikibooks|}}}{{{wikiversity|}}}{{{wikispecies|}}}{{{meta|}}}{{{portal|}}}{{{related_author|}}}{{{disambiguation|}}}
|<div border="0" class="noprint" style="clear:right; border:solid #AAA 1px; margin: 0 0 1em 1em; background:#clear; padding:2px; text-align:left; float:right; font-size:90%;"><!--
Only show disambiguation text if the disambiguation parameter is called
-->{{#if:{{{disambiguation|}}}
|<!--
Search text for disambiguation pages begins
-->[[Berkas:Disambiguation.svg|17px]] Search for titles {{intitle|"{{PAGENAME}}"|containing}} or {{#ifeq:{{NAMESPACE}}|Category|[[Istimewa:Categories/{{PAGENAME}}|beginning]], |[[Istimewa:PrefixIndex/{{FULLPAGENAME}}|beginning{{#ifeq:{{NAMESPACE}}|{{ns:0}}|| (in {{NAMESPACE}}s)}}]]}} with: "{{PAGENAME}}."<!--
Add line break in the case of other parameters being called
-->{{#if:{{{portal|}}}{{{related_author|}}}{{{wikipedia|}}}{{{commons|}}}{{{commonscat|}}}{{{wikiquote|}}}{{{wikinews|}}}{{{wiktionary|}}}{{{wikibooks|}}}{{{wikiversity|}}}{{{wikispecies|}}}{{{meta|}}}
|<br /><!--
End of line break #if
-->}}<!--
End of disambiguation #if
-->}}<!--
Only show portals if the portal parameter is called
-->{{#if:{{{portal|}}}
|<!--
Begin portal content
-->[[Berkas:Wikisource-logo.svg|17px]] [[Portal:Portal|portal terkait]]: <!--
1st link:
-->{{#if:{{#titleparts:{{{portal|}}}|1|1}}|[[Portal:{{#titleparts:{{{portal|}}}|1|1}}|{{#titleparts:{{{portal|}}}|1|1}}]]}}<!--
2nd link:
-->{{#if:{{#titleparts:{{{portal|}}}|1|2}}|, [[Portal:{{#titleparts:{{{portal|}}}|1|2}}|{{#titleparts:{{{portal|}}}|1|2}}]]}}<!--
3rd link:
-->{{#if:{{#titleparts:{{{portal|}}}|1|3}}|, [[Portal:{{#titleparts:{{{portal|}}}|1|3}}|{{#titleparts:{{{portal|}}}|1|3}}]]}}<!--
-->.<!--
Add line break in the case of sisters
-->{{#if:{{{related_author|}}}{{{wikipedia|}}}{{{commons|}}}{{{commonscat|}}}{{{wikiquote|}}}{{{wikinews|}}}{{{wiktionary|}}}{{{wikibooks|}}}{{{wikiversity|}}}{{{wikispecies|}}}{{{meta|}}}
|<br /><!--
End of line break #if
-->}}<!--
End of portal #if
-->}}<!--
Only show authors if the author parameter is called
-->{{#if:{{{related_author|}}}
|<!--
Begin author content
-->[[Berkas:Emblem-person-blue.svg|17px]] [[Wikisource:Pengarang|pengarang terkait]]: <!--
1st link:
-->{{#if:{{#titleparts:{{{related_author|}}}|1|1}}|[[Author:{{#titleparts:{{{related_author|}}}|1|1}}|{{#titleparts:{{{related_author|}}}|1|1}}]]}}<!--
2nd link:
-->{{#if:{{#titleparts:{{{related_author|}}}|1|2}}|, [[Author:{{#titleparts:{{{related_author|}}}|1|2}}|{{#titleparts:{{{related_author|}}}|1|2}}]]}}<!--
3rd link:
-->{{#if:{{#titleparts:{{{related_author|}}}|1|3}}|, [[Author:{{#titleparts:{{{related_author|}}}|1|3}}|{{#titleparts:{{{related_author|}}}|1|3}}]]}}<!--
-->.<!--
Add line break in the case of sisters
-->{{#if:{{{wikipedia|}}}{{{commons|}}}{{{commonscat|}}}{{{wikiquote|}}}{{{wikinews|}}}{{{wiktionary|}}}{{{wikibooks|}}}{{{wikiversity|}}}{{{wikispecies|}}}{{{meta|}}}
|<br /><!--
End of line break #if
-->}}<!--
End of author #if
-->}}<!--
Show sisters, if any
-->{{#if:{{{wikipedia|}}}{{{commons|}}}{{{commonscat|}}}{{{wikiquote|}}}{{{wikinews|}}}{{{wiktionary|}}}{{{wikibooks|}}}{{{wikiversity|}}}{{{wikispecies|}}}{{{meta|}}}
|<!--
Begin sister content
-->[[Berkas:Wikimedia-logo.svg|17px]] [[Istimewa:Matriks situs|proyek saudara]]: <!--
Wikipedia link:
-->{{#if:{{{wikipedia|}}}|[[w:{{{wikipedia}}}|artikel Wikipedia]]}}<!--
Wikicommons link:
-->{{#if:{{{commons|}}}|{{#if:{{{wikipedia|}}}|, }}[[commons:{{{commons|}}}|galeri Commons]]}}<!--
Wikicommons category link:
-->{{#if:{{{commonscat|}}}|{{#if:{{{wikipedia|}}}{{{commons|}}}|, }}[[commons:Category:{{{commonscat}}}|kategori Commons]]}}<!--
Wikiquote link:
-->{{#if:{{{wikiquote|}}}|{{#if:{{{wikipedia|}}}{{{commons|}}}{{{commonscat|}}}|, }}[[q:{{{wikiquote}}}|kutipan]]}}<!--
Wikinews link:
-->{{#if:{{{wikinews|}}}|{{#if:{{{wikipedia|}}}{{{commons|}}}{{{commonscat|}}}{{{wikiquote|}}}|, }}[[wikinews:{{{wikinews}}}|berita]]}}<!--
Wikitionary link:
-->{{#if:{{{wiktionary|}}}|{{#if:{{{wikipedia|}}}{{{commons|}}}{{{commonscat|}}}{{{wikiquote|}}}{{{wikinews|}}}|, }}[[wikt:{{{wiktionary}}}|definisi]]}}<!--
Wikibooks link:
-->{{#if:{{{wikibooks|}}}|{{#if:{{{wikipedia|}}}{{{commons|}}}{{{commonscat|}}}{{{wikiquote|}}}{{{wikinews|}}}{{{wiktionary|}}}|, }}[[b:{{{wikibooks}}}|buku teks]]}}<!--
Wikiversity link:
-->{{#if:{{{wikiversity|}}}|{{#if:{{{wikipedia|}}}{{{commons|}}}{{{commonscat|}}}{{{wikiquote|}}}{{{wikinews|}}}{{{wiktionary|}}}{{{wikibooks|}}}|, }}[[wikiversity:{{{wikiversity}}}|kurses]]}}<!--
Wikispecies link:
-->{{#if:{{{wikispecies|}}}|{{#if:{{{wikipedia|}}}{{{commons|}}}{{{commonscat|}}}{{{wikiquote|}}}{{{wikinews|}}}{{{wiktionary|}}}{{{wikibooks|}}}{{{wikiversity|}}}|, }}[[wikispecies:{{{wikispecies}}}|taksonomi]]}}<!--
Meta link:
-->{{#if:{{{meta|}}}|{{#if:{{{wikipedia|}}}{{{commons|}}}{{{commonscat|}}}{{{wikiquote|}}}{{{wikinews|}}}{{{wiktionary|}}}{{{wikibooks|}}}{{{wikiversity|}}}{{{wikispecies|}}}|, }}[[meta:{{{meta}}}|meta]]}}.<!--
--><!--
End of sister #if
-->}}<!--
End of overall #if
--></div>}}</includeonly><noinclude>
[[Kategori:Templat]]
{{INTERWIKI|Q5830969}}
</noinclude>
jbenmkmtkqsnd9t71yi4qun5rdkmg0p
Templat:Plainlist
10
387
1589
1588
2024-12-03T14:15:08Z
Jon Harald Søby
20
2 revisi diimpor
1587
wikitext
text/x-wiki
<templatestyles src="Template:Plainlist/style.css" /><div class="plainlist {{{class|}}}" {{#if:{{{style|}}}{{{indent|}}}|style="{{#if:{{{indent|}}}|margin-left: {{#expr:{{{indent}}}*1.6}}em;}} {{{style|}}}"}}>{{#if:{{{1|}}}|
{{{1}}}
</div>}}<noinclude></div>
[[Kategori:Formatting and function templates]]
</noinclude>
9kfapuqak5fu92c981kbvt4y11h3gik
Templat:Plainlist/style.css
10
388
1591
1590
2024-12-03T14:15:08Z
Jon Harald Søby
20
1 revisi diimpor
1590
sanitized-css
text/css
/* Unbulleted lists */
.plainlist ol,
.plainlist ul {
line-height: inherit;
list-style: none none;
margin: 0;
}
.plainlist ol li,
.plainlist ul li {
margin-bottom: 0;
}
s3r7sc6tv84zm9isqlfge8u5pb9my0a
Templat:PoiMap2
10
389
1596
1595
2024-12-03T14:15:08Z
Jon Harald Søby
20
4 revisi diimpor
1595
wikitext
text/x-wiki
<includeonly>//wikivoyage.toolforge.org/w/poimap2.php?lat={{{1|51.47766}}}&lon={{{2|-0.00115}}}&zoom={{{3|15}}}&layer={{Layers|{{{4|}}}}}&lang={{CONTENTLANG}}&name={{FULLPAGENAMEE}}</includeonly><noinclude>{{Documentation}}
{{INTERWIKI|Q14370333}}
</noinclude>
4fotpnh1ef3ranqxlqn75fidg6f2mlp
Templat:PoiMap2/doc
10
390
1598
1597
2024-12-03T14:15:08Z
Jon Harald Søby
20
1 revisi diimpor
1597
wikitext
text/x-wiki
{{Documentation subpage}}
__NOTOC__ __NOEDITSECTION__
<!-- PLEASE ADD CATEGORIES AND INTERWIKIS AT THE BOTTOM OF THIS PAGE -->
* '''Fungsi:''' Templat ini menghasilkan URL untuk menampilkan peta.
* '''Penggunaan:''' <code><nowiki>{{PoiMap2|1|2|3|4}}</nowiki></code>
* '''Parameter wajib:'''
: <code> |1 </code> garis lintang pusat peta, rentang yang valid: -90.0 to 90.0
: <code> |2 </code> garis bujur pusat peta, rentang yang valid: -180.0 to 180.0
* '''Parameter opsional:'''
: <code> |3 </code> zoom level, default=15, valid range: 1 to 18 (1=Earth, 18=city block)
: <code> |4 </code> layers, default=M, valid: M= '''M'''apnik (OSM), W='''W'''ikivoyage, N= Traffic line '''N'''etwork, O= Mapquest '''O'''pen, A= Mapquest '''A'''erial, P= '''P'''ois of Interest, L= '''L'''abels, H= '''H'''iking, S= hill '''S'''hading, C= '''C'''ycling, D= '''D'''estinations. Kombinasi acak juga dimungkinkan.
* '''Contoh:'''
: <code><nowiki> {{PoiMap2|52.15261|9.95336}} </nowiki></code>
: <code><nowiki> {{PoiMap2|52.15261|9.95336|16}} </nowiki></code>
: <code><nowiki> {{PoiMap2|52.15261|9.95336|17|MCH}} </nowiki></code>
* '''Petunjuk:'''
: [https://wikivoyage.toolforge.org/w/geomap.php Peta ini] dapat digunakan untuk "mengklik & menyalin" panggilan template lengkap.<includeonly>
<!-- CATEGORIES AND INTERWIKIS HERE, THANKS -->
[[Kategori:Templat peta dinamis]]
</includeonly>
lrh731ok42ez39yh192z6t1dfknv88n
Templat:PoiMap2detail
10
391
1601
1600
2024-12-03T14:15:08Z
Jon Harald Søby
20
2 revisi diimpor
1600
wikitext
text/x-wiki
<includeonly>{| class="wikitable" align="right"
! [[Berkas:Map mag16.png|link=]] Peta detil
|-
| <div class=noprint>[{{PoiMap2|{{{1}}}|{{{2}}}|{{{3}}}|{{{4}}}}} {{{5}}}]</div>
|}</includeonly><noinclude>{{Documentation}}
{{INTERWIKI|Q111851182}}
</noinclude>
05ykr602ukgz8afqem4xec25doosfpc
Templat:PoiMap2detail/doc
10
392
1604
1603
2024-12-03T14:15:08Z
Jon Harald Søby
20
2 revisi diimpor
1603
wikitext
text/x-wiki
{{Documentation subpage}}
Menampilkan teks dengan pranala untuk membuka peta (bukan menampilkan peta). Mengizinkan pembuatan peta untuk bagian artikel.
Lihat {{Tl|PoiMap2}}, parameter yang sama ditambah deskripsi lokasi.
<includeonly>
[[Kategori:Templat peta dinamis]]
</includeonly>
cax37q3xt7sd4aj0e1fe8nxhjlinkpo
Templat:PoliticsDiscussionAvoid
10
393
1606
1605
2024-12-03T14:15:09Z
Jon Harald Søby
20
1 revisi diimpor
1605
wikitext
text/x-wiki
{{Disclaimerbox|Ini bukanlah forum politik; tolong batasi semua pembicaraan di sini untuk diskusi tentang cara terbaik untuk meningkatkan artikel [[:{{{1|{{PAGENAME}}}}}]]. Debat di luar topik, kata-kata kasar politik, bualan omong kosong, dan sebagainya akan dihapus cepat. '''Wikiwisata adalah panduan perjalanan''' dan perselisihan politik sama sekali tidak relevan kecuali bila secara langsung [[Wikiwisata:Utamakan pelancong|berefek pada pelancong]]. Lihat [[Wikiwisata:Bersikap adil#Sengketa_politik]] untuk pedoman lebih lanjut.}}
<noinclude>
{{Documentation}}
</noinclude>
5g48g7wryqyiqmqualddykjfcz677et
Templat:PoliticsDiscussionAvoid/doc
10
394
1609
1608
2024-12-03T14:15:09Z
Jon Harald Søby
20
2 revisi diimpor
1607
wikitext
text/x-wiki
{{Documentation subpage}}
__NOTOC__
===Penggunaan===
Templat ini digunakan untuk halaman diskusi destinasi yang memiliki potensi menjadi lahan argumen politik.
Harap ingat bahwa templat ini tidak dimaksudkan untuk dipakai pada sebagian besar halaman diskusi.
Templat dapat menangani satu parameter. Parameter pertama yang bisa ditambahkan adalah nama lengkap artikel destinasi terkait.
Singkatnya, gunakan sintaks berikut:
:<nowiki>{{PoliticsDiscussionAvoid|Swiss}}</nowiki>
hasilnya:
{{PoliticsDiscussionAvoid|Swiss}}
<includeonly>
[[Kategori:Templat]]
[[en:voy:Template:PoliticsDiscussionAvoid]]
</includeonly>
d5jr1r8lk1imwf1d9slmyyj0qyzygd4
Templat:Pos
10
395
1614
1613
2024-12-03T14:15:09Z
Jon Harald Søby
20
4 revisi diimpor
1613
wikitext
text/x-wiki
Pos [[Berkas:Aiga mail.svg|20px|link=]]<noinclude>[[Kategori:Templat AIGA]]</noinclude>
lefkpog2j4oyrmyy7u7p66f1ovwn71g
Templat:Pound
10
396
1616
1615
2024-12-03T14:15:09Z
Jon Harald Søby
20
1 revisi diimpor
1615
wikitext
text/x-wiki
{{convert|{{{1|10}}}|lb|kg|abbr=on}}<noinclude>
{{documentation}}
[[Kategori:Templat format dan fungsi]]
[[en:voy:Template:Pound]]
</noinclude>
fdqk3okyz8c74rkotjl5grkk1dxcpwc
Templat:Pranala seinduk
10
397
1619
1618
2024-12-03T14:15:09Z
Jon Harald Søby
20
2 revisi diimpor
1618
wikitext
text/x-wiki
{{Wn/id/Seinduk/6|default=wikipedia|specified={{Wn/id/Seinduk/parse|}}||||||||||||}}
fqsjp1x1rji2z1c2mkl1a1tzejvwcjd
Templat:Pricerange/style.css
10
398
1622
1621
2024-12-03T14:15:09Z
Jon Harald Søby
20
2 revisi diimpor
1620
sanitized-css
text/css
.pricerange-table {
border: 1px solid #ccc;
border-spacing: 0;
background: #f9f9f9;
float: right;
clear: right;
margin: 0.5em 0 0.5em 1em;
width: 30%;
padding: 8px;
}
.pricerange-table td {
padding: 0;
}
qfcmqc186lb3ko9nywhkt99yg70qhys
Templat:PrintDistricts
10
399
2591
1631
2024-12-03T14:16:01Z
Jon Harald Søby
20
1 revisi diimpor
1630
wikitext
text/x-wiki
:<div id="print-districts" class=noprint>''{{BASICPAGENAME}} adalah sebuah [[Wikiwisata:Templat artikel kota besar|{{{type|kota besar}}}]] dengan beberapa artikel [[#Distrik|distrik]] yang berisi informasi tentang tempat wisata, restoran, dan akomodasinya masing-masing.''</div>{{#ifeq:{{NAMESPACE}}|{{NS:0}}|[[Kategori:Artikel kota besar]]{{#ifeq:{{PAGESINCAT:{{PAGENAME}}|subcats}}|0||[[Kategori:Kota besar dengan hierarki distrik multi-tingkat]]}}{{#ifexpr:{{PAGESINCAT:{{PAGENAME}}|subcat}}>10|[[Kategori:Kota-kota besar dengan lebih dari 10 distrik]]}}}}<noinclude>
[[Kategori:Templat hatnote]]
{{INTERWIKI|Q14330252}}
</noinclude>
d2gzwdugse910v2h0lah0qn0vpfc1et
Templat:Process header
10
400
1637
1636
2024-12-03T14:15:09Z
Jon Harald Søby
20
5 revisi diimpor
1634
wikitext
text/x-wiki
<div id="headerContainer" class="ws-noexport {{{class|}}}"><!--
-->{{Header/main block
| style = border:1px solid #966; margin:4px auto 4px auto; background-color:#DCA;
| id = navigationHeader
| class = processheadertemplate
| previous = {{{previous|}}}
| next = {{{next|}}}
| title = <span style="font-weight: bold;">{{{title|{{SUBPAGENAME}}}}}</span> {{{section|}}}<!--
end of header/main block
-->}}<!--
-->
{{Header/notes block
| style = border-bottom: 1px solid #A88; background-color: #FFFBFC;
| class = process_notes
| shortcut = {{{shortcut|}}}
| sister = <!--
check if page is connected to Wikidata (#ifeq)
-->{{#ifeq:{{#invoke:WikidataIB|pageId}}|<!--
if page is not connected to Wikidata, only show plain sister if at least one of its parameters is filled in
-->|{{#if:<!--
-->{{{disambiguation|}}}<!--
-->{{{edition|}}}<!--
-->{{{portal|}}}<!--
-->{{{related_author|}}}<!--
-->{{{wikipedia|}}}<!--
-->{{{commons|}}}<!--
-->{{{commonscat|}}}<!--
-->{{{wikiquote|}}}<!--
-->{{{wikinews|}}}<!--
-->{{{wiktionary|}}}<!--
-->{{{wikibooks|}}}<!--
-->{{{wikidata|}}}<!--
-->{{{wikivoyage|}}}<!--
-->{{{wikiversity|}}}<!--
-->{{{wikispecies|}}}<!--
-->{{{meta|}}}<!--
-->|<!--
-->{{Plain sister<!--
-->| disambiguation = {{{disambiguation|}}}<!--
-->| edition = {{{edition|}}}<!--
-->| portal = {{{portal|}}}<!--
-->| related_author = {{{related_author|}}}<!--
-->| wikipedia = {{{wikipedia|}}}<!--
-->| commons = {{{commons|}}}<!--
-->| commonscat = {{{commonscat|}}}<!--
-->| wikiquote = {{{wikiquote|}}}<!--
-->| wikinews = {{{wikinews|}}}<!--
-->| wiktionary = {{{wiktionary|}}}<!--
-->| wikibooks = {{{wikibooks|}}}<!--
-->| wikidata = {{{wikidata|}}}<!--
-->| wikivoyage = {{{wikivoyage|}}}<!--
-->| wikiversity = {{{wikiversity|}}}<!--
-->| wikispecies = {{{wikispecies|}}}<!--
-->| meta = {{{meta|}}}<!--
-->}}<!--
-->}}<!--
if page is connected to Wikidata, always show plain sister
-->|{{Plain sister<!--
-->| disambiguation = {{{disambiguation|}}}<!--
-->| edition = {{{edition|}}}<!--
-->| portal = {{{portal|}}}<!--
-->| related_author = {{{related_author|}}}<!--
-->| wikipedia = {{{wikipedia|}}}<!--
-->| commons = {{{commons|}}}<!--
-->| commonscat = {{{commonscat|}}}<!--
-->| wikiquote = {{{wikiquote|}}}<!--
-->| wikinews = {{{wikinews|}}}<!--
-->| wiktionary = {{{wiktionary|}}}<!--
-->| wikibooks = {{{wikibooks|}}}<!--
-->| wikidata = {{{wikidata|}}}<!--
-->| wikivoyage = {{{wikivoyage|}}}<!--
-->| wikiversity = {{{wikiversity|}}}<!--
-->| wikispecies = {{{wikispecies|}}}<!--
-->| meta = {{{meta|}}}<!--
-->}}<!--
end #ifeq
-->}}
| content = {{{notes|}}}
}}<!--
# end wrapper div
--></div><noinclude>
[[Kategori:Templat]]
{{INTERWIKI|Q6866309}}
</noinclude>
rtlmgnpg22mqis37s6fefgs7c3vfl3v
Templat:Proyek
10
401
1656
1655
2024-12-03T14:15:10Z
Jon Harald Søby
20
18 revisi diimpor
1655
wikitext
text/x-wiki
<noinclude>{| style="width: 100%; margin-top: 2px; background: none"
| style="background: #ffffff; vertical-align:top; color:#000000;" |
</noinclude>'''Wikiwisata bahasa Indonesia''' disediakan secara gratis oleh '''Yayasan Wikimedia''', sebuah organisasi nirlaba, yang juga mengoperasikan sejumlah [[m:Complete list of Wikimedia projects|proyek multibahasa]] lainnya:
{| class="plainlinks" align="center" width="100%" style="text-align: center; font-size: 90%; background: transparent; margin-top: 6px;"
| width="13%" class="show-image" align="right" style="padding-right: 16px" | [[Berkas:Wikipedia-logo-v2.svg|35px|link=id:|Wikipedia]]
| width="20%" align="left" | [[:id:|'''Wikipedia''']]<br />Ensiklopedia bebas
| width="13%" class="show-image" align="right" style="padding-right: 16px" | [[Berkas:Wiktsister en.png|35px|link=wikt:id:|Wikikamus]]
| width="20%" align="left" |[[wikt:id:|'''Wikikamus''']]<br />Kamus bebas
| width="13%" class="show-image show-link" align="right" style="padding-right: 16px" | [[Berkas:Wikibooks-logo.svg|35px|link=b:id:|Wikibuku]]
| width="20%" class="show-link" align="left" | [[b:id:|'''Wikibuku''']]<br />Buku bebas
|-
| class="show-image show-link" align="right" style="padding-right: 16px" | [[Berkas:Wikisource-logo.svg|35px|link=s:id:|Wikisumber]]
| class="show-link" align="left" | [[s:id:|'''Wikisumber''']]<br />Sumber bebas
| class="show-image" align="right" style="padding-right: 16px" | [[Berkas:Wikiquote-logo.svg|35px|link=q:id:|Wikikutip]]
| align="left" | [[q:id:|'''Wikikutip''']]<br />Kutipan bebas
| class="show-image" align="right" style="padding-right: 16px" | [[Berkas:Wikispecies-logo.svg|35px|link=species:Halaman Utama|Wikispesies]]
| align="left" | [[species:Halaman Utama|'''Wikispesies''']]<br />Spesies
|-
| class="show-image show-link" align="right" style="padding-right: 6px" | [[Berkas:Wikinews-logo.svg|58px|link=Wn/id/Halaman Utama|Wikiberita]]
| class="show-link" align="left" | [[Wn/id/Halaman Utama|'''Wikiberita''' Beta]]<br />Sumber berita
| class="show-image show-link" align="right" style="padding-right: 16px" | [[Berkas:Wikiversity-logo.svg|35px|link=v:mul:Halaman_Utama|Wikiversitas]]
| class="show-link" align="left" | [[v:mul:Halaman_Utama|'''Wikiversitas''' Beta]]<br />Materi belajar
| class="show-image show-link" align="right" style="padding-right: 6px" | [[Berkas:Wikidata-logo.svg|58px|link=d:Wikidata:Halaman_Utama|Wikidata]]
| class="show-link" align="left" | [[d:Wikidata:Halaman_Utama|'''Wikidata''']]<br />Interwiki
|-
| class="show-image show-link" align="right" style="padding-right: 16px" | [[Berkas:Commons-logo.svg|32px|link=c:Halaman_Utama|Commons]]
| class="show-link" align="left" | [[c:Halaman_Utama|'''Commons''']]<br />Media
| class="show-image show-link" align="right" style="padding-right: 16px" | [[Berkas:Wikimedia Community Logo.svg|35px|link=meta:Main_Page/id|Meta-Wiki]]
| class="show-link" align="left" | [[meta:Main_Page/id|'''Meta-Wiki''']]<br />Koordinasi proyek
| class="show-image show-link" align="right" style="padding-right: 6px" | [[Berkas:MediaWiki-2020-icon.svg|45px|link=mw:MediaWiki/id|MediaWiki]]
| class="show-link" align="left" | [[mw:MediaWiki/id|'''MediaWiki''']]<br />Koordinasi software
|}
----
<div class="center">'''Wikiwisata dalam bahasa lain:''' [[voy:bn:|বাংলা]] · [[voy:cs:|čeština]] · [[voy:de:|Deutsch]] · [[voy:el:|Ελληνικά]] · [[voy:en:|English]] · [[voy:eo:|Esperanto]] · [[voy:es:|Español]] · [[voy:fa:|فارسی]] · [[voy:fi:|Suomi]] · [[voy:fr:|Français]] · [[voy:he:|עברית]] · [[voy:hi:|हिन्दी]] · [[voy:it:|Italiano]] · [[voy:ja:|日本語]] · [[voy:nl:|Nederlands]] · [[voy:pl:|Polski]] · [[voy:ps:|پښتو]] · [[voy:pt:|Português]] · [[voy:ro:|Română]] · [[voy:ru:|Русский]] · [[voy:shn:|ၽႃႇသႃႇတႆး]] · [[voy:sv:|Svenska]] · [[voy:tr:|Türkçe]] · [[voy:uk:|Українська]] · [[voy:vi:|Tiếng Việt]] · [[voy:zh:|中文]]</div>
<noinclude>[[Kategori:Templat]]
{{INTERWIKI|Q96187313}}
</noinclude>
rclk1uast8932ukzq42pqazlnmxupxj
Templat:Proyek lainnya
10
402
1672
1671
2024-12-03T14:15:10Z
Jon Harald Søby
20
15 revisi diimpor
1671
wikitext
text/x-wiki
#REDIRECT [[Templat:Proyek]]
a4kuawwe3f44phmqmn3h5vx77n40u20
Templat:Purge
10
403
2594
1677
2024-12-03T14:16:01Z
Jon Harald Søby
20
2 revisi diimpor
1676
wikitext
text/x-wiki
<span class="noprint plainlinks purgelink">[{{fullurl:{{{page|{{FULLPAGENAME}}}}}|action=purge}}#{{#if:{{{anchor|}}}|{{urlencode:{{{anchor|}}}|WIKI}}}} <span title="Hapus singgahan halaman ini">{{{1|Hapus singgahan}}}</span>]</span><noinclude>
{{dok}}
</noinclude>
{{INTERWIKI|Q5900735}}
</noinclude>
61jyzws5278zz5fw9xoabcvrycmsvv6
Templat:Q
10
404
1680
1679
2024-12-03T14:15:10Z
Jon Harald Søby
20
2 revisi diimpor
1679
wikitext
text/x-wiki
[{{#if:{{{1|}}}|{{#switch:{{uc:{{padleft:|1|{{#if:1|{{{1|}}}}}}}}}
|Q|P={{#invoke:Wikibase|wdurl|{{{1}}}}} {{#invoke:Wikibase|label|{{{1}}}}} <small>({{#if:1|{{{1|}}}}})</small>
|#default={{#invoke:Wikibase|wdurl|Q{{#if:1|{{{1|}}}}}}} {{#invoke:Wikibase|label|Q{{#if:1|{{{1|}}}}}}} <small>(Q{{#if:1|{{{1|}}}}})</small>
}}|{{#invoke:Wikibase|wdurl}} {{#invoke:Wikibase|label}} <small>({{#invoke:Wikibase|id}})</small>}}]
<noinclude>
{{dok|content=Templat ini untuk membuat pranala ke Wikidata.
== Contoh ==
<pre>{{Q|1}}</pre>
Hasilnya akan seperti :
{{Q|1}}
}}
</noinclude>
68wl8h9ikn2crbroxyulqqih1d03xhv
Templat:Q/doc
10
405
1682
1681
2024-12-03T14:15:10Z
Jon Harald Søby
20
1 revisi diimpor
1681
wikitext
text/x-wiki
Templat ini untuk membuat pranala ke Wikidata.
== Contoh ==
<pre>{{Q|1}}</pre>
Hasilnya akan seperti :
{{Q|1}}
[[Kategori:Templat]]
dyyua1ovl29x2zd62wee00zvwpyk7yd
Templat:Quickbar
10
406
2596
1694
2024-12-03T14:16:01Z
Jon Harald Søby
20
1 revisi diimpor
1693
wikitext
text/x-wiki
{{#invoke:Quickbar|quickbar}}
<noinclude>
<templatedata>
{
"params": {
"location": {
"type": "wiki-file-name",
"suggested": false,
"autovalue": "[[:d:Property:P242|P242]]",
"label": "Location Map ",
"description": "Extracted from country's Wikidata page. Shows outline of the country on a map in relationship to the remainder of the word."
},
"capital": {
"suggested": false,
"type": "wiki-page-name",
"autovalue": "[[:d:Property:P36|P36]]",
"label": "Capital city",
"description": "Extracted from country's Wikidata page. Identifies capital city of the country including link to that capital city's article"
},
"currency": {
"suggested": true,
"autovalue": "[[:d:Property:P38|P38]]",
"label": "Currency",
"description": "Extracted from country's Wikidata page. The currency or currencies officially recognized for use within the country. If no official currency, then specify the de facto currency in use.",
"example": "Euro",
"type": "string"
},
"population": {
"suggested": true,
"autovalue": "[[:d:Property:P1082|P1082]]",
"label": "Population",
"description": "Extracted from country's Wikidata page. Specifies the population of the country including year that the population number is based upon.",
"type": "string"
},
"electricity": {
"suggested": false,
"autovalue": "[[:d:Property:P2884|P2884]], [[:d:Property:P2853|P2853]]",
"label": "Electricity",
"description": "Extracted from country's Wikidata page. Specifies the voltage and hertz used in the country. Specify the electrical plug styles used in the country.",
"type": "string"
},
"callingcode": {
"suggested": false,
"autovalue": "[[:d:Property:P474|P474]]",
"label": "Calling Code",
"description": "Extracted from country's Wikidata page. Identifies the country's calling code for making phone calls.",
"type": "string"
},
"timezone": {
"suggested": false,
"autovalue": "[[:d:Property:P421|P421]]",
"label": "Time Zone",
"description": "Extracted from country's Wikidata page. Applicable time zone(s) within the country.",
"type": "string"
},
"emergencies": {
"suggested": false,
"autovalue": "[[:d:Property:P2852|P2852]]",
"label": "Emergencies phone number",
"description": "Extracted from country's Wikidata page. Phone number to call in the event of an emergency to call for first responders.",
"type": "string"
},
"driving side": {
"autovalue": "[[:d:Property:P1622|P1622]]",
"label": "Driving Side",
"description": "Extracted from country's Wikidata page. Identifies if drivers drive on the left hand side or right hand side of the road.",
"type": "string"
}
},
"description": "Displays a short summary of standard information for countries based on data contained on the country's Wikidata page. This template is only intended to be added within country articles."
}
</templatedata>
</noinclude><noinclude>
[[Kategori:Templat]]
{{INTERWIKI|Q5621162}}
</noinclude>
gyo7f2euib3y7uj1ucwekj9dbxbjvw0
Templat:Quickbar/styles.css
10
407
1696
1695
2024-12-03T14:15:11Z
Jon Harald Søby
20
1 revisi diimpor
1695
sanitized-css
text/css
@media all and (max-width:640px) {
.wv-quickbar {
clear:none !important;
float:none !important;
margin:0 !important;
width:100% !important;
}
}
.wv-quickbar table {
font-size:85%;
background-color:#f9f9f9;
border:1px solid #ccc;
width:250px;
}
.wv-quickbar .info {
vertical-align:top;
padding:0 5px;
white-space:nowrap;
}
.wv-quickbar .footer {
margin-top:5px;
border-top:1px solid #ccc;
text-align:right;
}
ojah2isswgfkl5nm15ws6l9hdvf4dde
Templat:Quickbar empty
10
408
1698
1697
2024-12-03T14:15:11Z
Jon Harald Søby
20
1 revisi diimpor
1697
wikitext
text/x-wiki
|-
| colspan="2" style="height:1px;" |
<noinclude>[[Kategori:Templat]]</noinclude>
7u7xt7g0b1jctw3fn4wft8mf9vrwe9n
Templat:Quickbar item
10
409
1700
1699
2024-12-03T14:15:11Z
Jon Harald Søby
20
1 revisi diimpor
1699
wikitext
text/x-wiki
|-
| valign="top" style="padding-left:5px; padding-right:5px; white-space:nowrap;" | '''{{{heading}}}'''
| {{{value|}}}<noinclude>[[Kategori:Templat]]</noinclude>
kz1t7l0vojeeqwb6w8xq5qp59aziksr
Templat:Quote
10
410
1708
1707
2024-12-03T14:15:11Z
Jon Harald Søby
20
7 revisi diimpor
1707
wikitext
text/x-wiki
{| class="cquote pullquote" role="presentation" {{#if:{{{rtl|}}}|dir="rtl"}} style="{{#switch:{{{float|}}}
| left = float:left
| right = float:right
| #default = margin:auto
}}; border-collapse: collapse; border: none; background-color: {{{bgcolor|transparent}}}; width: {{#if: {{{wide|}}} | 100% | {{{width|auto}}}}}; {{#if: {{{bgcolor|}}} | border: 1px solid #AAAAAA;}}"
| style="width: 20px; vertical-align: top; border: none; color: {{{qcolor|#B2B7F2}}}; font-size: {{#switch:{{{size|{{{quotewidth|{{{width|{{{2|20px}}}}}}}}}}}}
|10px=20px
|30px=60px
|40px=80px
|50px=100px
|60px=120px
|#default=40px}}; font-family: {{#if:{{{rtl|}}}|Roman|'Times New Roman', Times}}, serif; font-weight: bold; line-height: .6em; text-align: left; padding: {{#if:{{{small|}}}|10px 2px|10px 10px}};" | {{#if:{{{rtl|}}}|”|“}}
| style="vertical-align: top; border: none;{{#if:{{{rtl|}}}|direction:rtl;}} padding: {{#if:{{{small|}}}|4px 2px|4px 10px}}; {{#ifeq:{{{quotealign|}}}|center|text-align:center;}}" | {{{text|{{{quotetext|{{{1|<includeonly>{{Error|Error: Tidak ada teks untuk kutipan (atau tanda 'sama dengan' digunakan dalam argumen yang sebenarnya untuk parameter tanpa nama)}}</includeonly><noinclude>{{Lorem ipsum}}</noinclude>}}}}}}}}}
| style="width: 20px; vertical-align: bottom; border: none; color: {{{qcolor|#B2B7F2}}}; font-size: {{#switch:{{{size|{{{quotewidth|{{{width|{{{2|20px}}}}}}}}}}}}
|10px=20px
|30px=60px
|40px=80px
|50px=100px
|60px=120px
|#default=40px}}; font-family: {{#if:{{{rtl|}}}|Roman|'Times New Roman', Times}}, serif; font-weight: bold; line-height: .6em; text-align: right; padding: {{#if:{{{small|}}}|10px 2px|10px 10px}};" | {{#if:{{{rtl|}}}|“|”}}
|-
{{#if:{{{author|{{{personquoted|{{{source|{{{publication|{{{title|{{{quotesource|{{{4|{{{5|}}}}}}}}}}}}}}}}}}}}}}}}|
{{!}} colspan="3" class="cquotecite" style="border: none; padding-right: 4%; font-size: smaller; line-height:normal; text-align: right;" {{!}} <cite>— {{#if:{{{author|{{{personquoted|{{{4|}}}}}}}}}|{{{author|{{{personquoted|{{{4}}}}}}}}}{{#if:{{{source|{{{publication|{{{title|{{{quotesource|{{{5|}}}}}}}}}}}}}}}|, {{{source|{{{publication|{{{title|{{{quotesource|{{{5}}}}}}}}}}}}}}}}}|{{#if:{{{source|{{{publication|{{{title|{{{quotesource|{{{5|}}}}}}}}}}}}}}}|{{{source|{{{publication|{{{title|{{{quotesource|{{{5}}}}}}}}}}}}}}}}}}}</cite>
}}
|}<!-- {{subst:FULLPAGENAME}} --><noinclude>
[[Kategori:Templat]]
{{INTERWIKI|Q3918978}}
</noinclude>
903xdx5jbaofr5xx4qxj248g7c59zix
Templat:RUB
10
411
1710
1709
2024-12-03T14:15:11Z
Jon Harald Søby
20
1 revisi diimpor
1709
wikitext
text/x-wiki
{{currency|RUB|{{{1|}}}}}<noinclude>
{{Individual currency template documentation}}
[[Kategori:Templat mata uang individual]]
[[en:voy:Template:RUB]]
</noinclude>
i02oagro861k6jffokve48ljrcpbn4g
Templat:Rail-interchange
10
412
1713
1712
2024-12-03T14:15:11Z
Jon Harald Søby
20
2 revisi diimpor
1711
wikitext
text/x-wiki
<!-- PLEASE INSERT NEW ENTRIES IN ALPHABETICAL ORDER -->{{#switch: {{lc: {{{1}}} }}
<!-- CITIES -->
| aalborg={{RbE|Nærbane|#c30a27|mo=Aalborg Nærbane (Lindholm - Skørping)}}
| alicante=[[Berkas:TRAM - Metropolitano de Alicante -T-.svg|{{{size|16}}}px|link=]]
| aubagne={{RbE|T|#ff290e|r=e|mo=Tramway d'Aubagne (Gare - Le Charrel)}}
| bart=[[Berkas:Bart-logo.svg|{{{size|18}}}px|link=]]
| blackpool=[[Berkas:Blackpool Transport simple logo.png|{{{size|x20}}}px|link=]]
| cahsr=[[Berkas:California High Speed Rail.svg|{{{size|16}}}px|link=]]
| caltrain=[[Berkas:Caltrain roundel.svg|{{{size|16}}}px|link=]]
| cleveland=[[Berkas:Cleveland RTA logo.svg|{{{size|20}}}px|link=]]
| coasttram|kusttram={{RbE|Kusttram|#bb0022|r=e|mo=Kusttram (Knokke - De Panne)}}
| ctfastrak=[[Berkas:CTfastrak symbol.svg|{{{size|16}}}px|link=]]
| dart=[[Berkas:Dallas Area Rapid Transit flogo.svg|{{{size|13}}}px|link=]]
| glasgow=[[Berkas:Glasgow Subway.svg|{{{size|13}}}px|link=]]
| granada=[[Berkas:Símbolo del Metro de Granada.svg|{{{size|13}}}px|link=]]
| hblr=[[Berkas:BSicon TRAM.svg|{{{size|16}}}px|link=]]
| isfahan=[[Berkas:Esfahan Metro Logo.png|{{{size|25}}}px|link=]]
| jaipur={{RbE|Pink|#FFCBDB|black}}
| kermanshah=[[Berkas:Kermanshah Metro Logo.png|{{{size|25}}}px|link=]]
| kuala_lumpur=[[Berkas:Keretapi Tanah Melayu Berhad Logo.svg|{{{size|15}}}px|link=]]
| miami=[[Berkas:Logo Miami-Dade County.svg|{{{size|16}}}px|link=]]
| newcastle=[[Berkas:TWMetro logo no text.PNG|{{{size|10}}}px|link=]]
| newark=[[Berkas:BSicon TRAM.svg|{{{size|16}}}px|link=]]
| nictd=[[Berkas:BSicon South Shore Line.svg|{{{size|20}}}px|link=]]
| njt=[[Berkas:NJT logo.svg|{{{size|18}}}px|link=]]
| odense={{RbE|L|green|mo=Odense Letbane}}
| path=[[Berkas:PATH logo.svg|{{{size|18}}}px|link=]]
| pittsburgh=[[Berkas:Pittsburgh Light Rail (logo).svg|{{{size|16}}}px|link=]]
| portland=[[Berkas:TriMet logo simplified.svg|{{{size|18}}}px|link=]]
| sacramento=[[Berkas:Sacramento_Regional_Transit.svg|{{{size|15}}}px|link=]]
| santaclara=[[Berkas:BSicon LOGO SCvta.svg|{{{size|18}}}px|link=]]
| septa = [[Berkas:SEPTA.svg|{{{size|16}}}px|link=]]
| shoreline=[[Berkas:SLE logo.svg|{{{size|16}}}px|link=]]
| smart=[[Berkas:Sonoma-Marin Area Rail Transit logo.svg|{{{size|20}}}px|link=]]
| sunrail=[[Berkas:SunRail logo.png|{{{size|18}}}px|link=]]
| trirail=[[Berkas:Tri-Rail logo.svg|{{{size|44}}}px|link=]]
| vre=[[Berkas:Virginia Railway Express.svg|{{{size|18}}}px|link=]]<!--
CITIES WITH VARIABLES — PLEASE INSERT NEW ENTRIES IN ALPHABETICAL ORDER
-->
| aarhus|arhus={{#switch: {{lc: {{{2}}} }}
|l1|1={{RbE|L1|#2d4863|mo=Aarhus Letbane 1: Grenaa - Odder}}
|l2|2={{RbE|L2|#2d4863|mo=Aarhus Letbane 2: Lystrup Lisbjerg - Odder}}
}}
| abudhabi={{#switch: {{lc: {{{2}}} }}
| l1={{RbE|L1|#DC241F|black}}
| l2={{RbE|L2|#0354A6|black}}
| l3={{RbE|L3|#009530|black}}
| l4={{RbE|L4|#FFD700|black}}
}}
| adelaide={{#switch: {{lc: {{{2}}} }}
| belair={{RbE|B|#009900|mo=Adelaide Metro: Belair line}}
| gawler={{RbE|G|#9C2727|mo=Adelaide Metro: Gawler line}}
| grange={{RbE|G|#0072c6|mo=Adelaide Metro: Grange line}}
| outerharbor|outer harbor={{RbE|OH|#0072c6|mo=Adelaide Metro: Outer Harbor line}}
| seaford={{RbE|S|#ff7f00|black|mo=Adelaide Metro: Seaford line}}
| tonsley={{RbE|T|#ff7f00|mo=Adelaide Metro: Tonsley line}}
| glenelg|grah={{RbE|G-RAH|#eb2127|mo=Genelg Tram: Glenelg - Royal Adelaide Hospital}}
| ecbg={{RbE|EC-BG|#ffa500|mo=Glenelg Tram: Entertainment Centre - Botanic Gardens}}
| gfp={{RbE|G-FP|#4169e1|mo=Glenelg Tram: Glenelg - Festival Plaza}}
}}
| ahvaz | ahwaz={{#switch: {{lc: {{{2}}} }}
| 1={{RbE|1|#170173}}
| 2={{RbE|2|#17D700}}
| 3={{RbE|3|#F6F91C}}
| 4={{RbE|4|#F472FC}}
}}
| athens={{#switch: {{lc: {{{2}}} }}
| m1={{RbE|M1|#00792C}}
| m2={{RbE|M2|#E32119}}
| m3={{RbE|M3|#0098D4}}
| m4={{RbE|M4|#F39800}}
| m5={{RbE|M5|#003888}}
| m6={{RbE|M6|#F3A9BB}}
| m7={{RbE|M7|#FFD300|black}}
| m8={{RbE|M8|#B36408}}
| t3={{RbE|T3|#003888}}
| t4={{RbE|T4|#E32119}}
| t5={{RbE|T5|#00792C}}
}}
| amsterdam={{#switch: {{lc: {{{2}}} }}
| 1 ={{RbE|1|#CD9800|mo=Amsterdam tramline 1 (Muiderpoortstation - Osdorp de Akker)}}
| 2 ={{RbE|2|#E6A700|mo=Amsterdam tramline 2 (Amsterdam CS - Nieuw Sloten)}}
| 3 ={{RbE|3|#955D1C|mo=Amsterdam tramline 3 (Zoutkeetsgracht - Flevopark)}}
| 4 ={{RbE|4|#CB0000|mo=Amsterdam tramline 4 (Amsterdam CS - Station RAI)}}
| 5 ={{RbE|5|#FFBE00|mo=Amsterdam tramline 5 (Westergasfabriek - Amstelveen Stadshart)}}
| 6 ={{RbE|6|#00AEEF|mo=Amsterdam tramline 6 (Station Zuid - Amstelveen Stadshart)}}
| 7 ={{RbE|7|#FF7900|mo=Amsterdam tramline 7 (Slotermeer - Azartplein)}}
<!-- | 9 ={{RbE|9|#FF0000|mo=Amsterdam tramline 9 (Amsterdam CS - Diemen Sniep)}}
| 10={{RbE|10|#DA6C00|mo=Amsterdam tramline 10 (Westergasfabriek - Azartplein)}}-->
| 12={{RbE|12|#7F5B31|mo=Amsterdam tramline 12 (Amsterdam CS - Amstelstation)}}
| 13={{RbE|13|#0081FF|mo=Amsterdam tramline 13 (Amsterdam CS - Geuzenveld)}}
| 14={{RbE|14|#AB06D2|mo=Amsterdam tramline 14 (Amsterdam CS - Flevopark)}}
<!-- | 16={{RbE|16|#009738|mo=Amsterdam tramline 16 (Amsterdam CS - VU Medisch Centrum)}}-->
| 17={{RbE|17|#4992D9|mo=Amsterdam tramline 17 (Amsterdam CS - Osdorp Dijkgraafplein)}}
| 19 {{RbE|19|#ff7f00|mo=Amsterdam tramline 19 (Station Sloterdijk - Diemen Sniep)}}
| 24={{RbE|24|#00601F|mo=Amsterdam tramline 24 (Amsterdam CS - VU Medisch Centrm)}}
| 26={{RbE|26|#FF61CB|mo=Amsterdam tramline 26 (Amsterdam CS - IJburg)}}
| 50={{RbE|50|#28903a|mo=Amsterdam metro line 50 (Isolatorweg - Gein)}}
| 51={{RbE|51|#f26522|mo=Amsterdam metro line 51 (Amsterdam CS - Isolatorweg)}}
| 52={{RbE|52|#00adef|mo=Amsterdam metro line 52 (Noord - Station Zuid)}}
| 53={{RbE|53|#ed1c24|mo=Amsterdam metro line 53 (Amsterdam CS - Gaasperplas)}}
| 54={{RbE|54|#ffc20e|mo=Amsterdam metro line 54 (Amsterdam CS - Gein)}}
}}
| angers={{#switch: {{lc: {{{2}}} }}
|a={{RbE|A|#e2001a|mo=Tramway d'Angers, Ligne A (Avrillé-Ardenne - Roseraie)}}
|b={{RbE|B|#ffb024|mo=Tramway d'Angers, Ligne B (Belle-Beille - Monplaisir)}}
|c={{RbE|C|#e2001a|mo=Tramway d'Angers, Ligne C (Belle-Beille - Roseraie)}}
}}
| antwerp|antwerpen={{#switch: {{lc: {{{2}}} }}
|1={{RbE|1|#8539a0|r=e|mo=Antwerp Tram Line 1 (Luchtbal - Zuid)}}
|2={{RbE|2|#36b64b|r=e|mo=Antwerp Tram line 2 (Merksem - Hoboken )}}
|3={{RbE|3|#ffc734|black|r=e|mo=Antwerp Tram line 3 (Melsele - Merksem )}}
|4={{RbE|4|#009ddd|black|r=e|mo=Antwerp Tram line 4 (Hoboken - Silsburg)}}
|5={{RbE|5|#80283c|r=e|mo=Antwerp Tram line 5 (Wijnegem - Linkeroever)}}
|6={{RbE|6|#fb3099|black|r=e|mo=Antwerp Tram line 6 (Olympiade - Luchtbal)}}
|7={{RbE|7|#0064b6|r=e|mo=Antwerp Tram line 7 (Mortstel - Eilandje)}}
|8={{RbE|8|#fc9bc9|black|r=e|mo=Antwerp Tram line 8 (Astrid - Wommelgem)}}
|9={{RbE|9|#ff7d23|black|r=e|mo=Antwerp Tram line 9 (Linkeroever - Eksterlaar)}}
|10={{RbE|10|#bdd542|black|r=e|mo=Antwerp Tram line 10 (Schoonselhof - Wijnegem)}}
|11={{RbE|11|white|#80283c|b=t|r=e|mo=Antwerp Tram line 11 (Melkmarkt - Antwerpen-Berchem)}}
|12={{RbE|12|#ff2d23|r=e|mo=Antwerp Tram line 12 (Sportpaleis - Centraal Station)}}
|15={{RbE|15|white|#3f4f23|b=t|r=e|mo=Antwerp Tram line 15 (Linkeroever - Boechout)}}
|24={{RbE|24|#5dccb1|black|r=e|mo=Antwerp Tram line 24 (Silsburg - Havensluis)}}
}}
| arnhem={{#switch: {{lc: {{{2}}} }}
|1 ={{RbE|1|#F6EB13|black|mo=Arnhem Trolleybus 1 (Oosterbeek - Velp)}}
|2 ={{RbE|2|#0E509B|mo=Arnhem Trolleybus 2 (De Laar West - Arnhem CS)}}
|3 ={{RbE|3|#60BB46|mo=Arnhem Trolleybus 3 (Burgers' Zoo - Het Duifje)}}
|4 ={{RbE|4|#00AEEF|mo=Stadsdienst Arnhem lijn 4 (Arnhem CS - Kronenburg)}}
|5 ={{RbE|5|#ED1F24|mo=Arnhem Trolleybus 5 (Schuytgraaf - Presikhaaf)}}
|6 ={{RbE|6|#000000|mo=Arnhem Trolleybus 6 (De Laar West - Elsweide/HAN)}}
|7 ={{RbE|7|#866BA5|mo=Arnhem Trolleybus 7 (Geitenkamp - Rijkerswoerd)}}
|8 ={{RbE|8|#BEACD3|mo=Stadsdienst Arnhem lijn 8 (Arnhem CS - Velp)}}
|9 ={{RbE|9|#F170AB|mo=Stadsdienst Arnhem lijn 9 (Arnhem CS - Schaarsbergen)}}
|10={{RbE|10|#AED136|black|mo=Stadsdienst Arnhem lijn 10 (Arnhem CS - Sportcentrum Papendal)}}
|11={{RbE|11|#81003F|mo=Stadsdienst Arnhem lijn 11 (Station Zuid - Het Duifje)}}
|12={{RbE|12|#DF8419|mo=Stadsdienst Arnhem lijn 12 (Arnhem CS - IJsseloord 2)}}
|13={{RbE|13|#00AEEF|mo=Stadsdienst Arnhem lijn 13 (Arnhem CS - Klarendal)}}
}}
| auckland={{#switch: {{lc: {{{2}}} }}
|e|eastern={{RbE|E|#ffbb05|mo=AT Metro: Eastern Line (Britomart - Manukau)}}
|s|southern={{RbE|S|#ce0808|mo=AT Metro: Southern Line (Britomart - Papakura)}}
|ss|shuttle={{RbE|Ss|#ce0808|mo=AT Metro: Southern Shuttle (Papakura - Pukeekohe)}}
|w|western={{RbE|W|#33cc00|mo=AT Metro: Western Line (Britomart - Swanson)}}
|o|onehunga={{RbE|O|#00bfff|mo=AT Metro: Onehunga Line (Britomart - Onehunga)}}
|citylink|city={{RbE|City|red|mo=AT Metro: CityLink (Wynyard Quarter - Karangahape Road)}}
|innerlink|inner={{RbE|Inner|green|mo=AT Metro: InnerLink}}
|outerlink|outer={{RbE|Outer|#FFBF00|mo=AT Metro: OuterLink}}
|tamakilink|tamaki={{RbE|Tāmaki|blue|mo=AT Metro: TāmakiLink (Britomart - Glen Innes)}}
|waihekelink|waiheke={{RbE|City|teal|mo=AT Metro: WaihekeLink}}
}}
| avignon={{#switch: {{lc: {{{2}}} }}
|1|t1={{RbE|T1|#696969|mo=Tramway d'Avignon, Ligne T1 (Saint-Roch/Jean Jaurès - Saint-Chamand)}}
|2|t2={{RbE|T2|#ffd700|black|mo=Tramway d'Avignon, Ligne T2 (Île Piot - Saint-Lazare)}}
}}
| basel={{#switch: {{lc: {{{2}}} }}
| 1|s1={{RbE|S1|#61AA57}}
| 3|s3={{RbE|S3|#2D68B2}}
| 4|re={{RbE|RE|#E9983E}}
| 5|s5={{RbE|S5|#B39AC3}}
| 6|s6={{RbE|S6|#DB3832}}
| 7|rb={{RbE|RB|#F6CE47|black}}
| 8|wb={{RbE|WB|#CE6CA3}}
| 9|s9={{RbE|S9|#5D4194}}
| S|s-bahn=[[Berkas:Logo_Regio_S-Bahn_Basel.svg|{{{size|16}}}px|link=]]
}}
| baltimore={{#switch: {{lc: {{{2}}} }}
| metro={{RbE|Metro|#00833E}}
| raillink={{RbE|RailLink|#005D84}}
}}
| bangkok={{#switch: {{lc: {{{2}}} }}
| blue={{RbE|Blue|#1964B7}}
| purple={{RbE|Purple|#800080}}
| orange={{RbE|Orange|#FF6601}}
| brown={{RbE|Brown|#964B00}}
| arl|airportraillink={{RbE|ARL|#761f21}}
| lightred={{RbE|L.Red|#FD5353|black}}
| darkred={{RbE|D.Red|#E10506}}
| pink={{RbE|Pink|#FF69B4|black}}
| yellow={{RbE|Yellow|#FFCC33|black}}
| sukhumvit={{RbE|Sukhumvit|#77CC00|black}}
| silom={{RbE|Silom|#246B5B}}
| grey={{RbE|Grey|#808080}}
| lightblue={{RbE|L.Blue|#87CEFA|black}}
| gold={{RbE|Gold|#D4AF37}}
| lopburi={{RbE|Lopburi|#0000FF}}
| kaengkhoi={{RbE|Kaeng Khoi|#008000}}
| prachinburi={{RbE|Prachinburi|#FFA500}}
| ratchaburi={{RbE|Ratchaburi|#FF0000}}
| suphanburi={{RbE|Suphanburi|#FF0000}}
}}
| barcelona={{#switch: {{lc: {{{2}}} }}
| bus=[[Berkas:Bus Barcelona.svg|{{{size|11}}}px|link=]]
| fmontjuic=[[Berkas:Fmontjuic.svg|{{{size|11}}}px|link=]]
| l1={{RbE|L1|#E1393E}}
| l2={{RbE|L2|#9D439B}}
| l3={{RbE|L3|#53B955}}
| l4={{RbE|L4|#FEBD10|black}}
| l5={{RbE|L5|#317BC8}}
| l6={{RbE|L6|#847DC6}}
| l7={{RbE|L7|#AE6118}}
| l8={{RbE|L8|#E659B4}}
| l9={{RbE|L9|#F68429}}
| l10={{RbE|L10|#00ADEF}}
| l11={{RbE|L11|#A8D164|black}}
| l12={{RbE|L12|#B7B4E2|black}}
| metro=[[Berkas:Barcelona Metro Logo.svg|{{{size|13}}}px|link=]]
| nxb=[[Berkas:Nou Bus.svg|{{{size|11}}}px|link=]]
| tb=[[Berkas:Tramvia Blau.svg|{{{size|11}}}px|link=]]
| trambaix=[[Berkas:Tramvia metropolita.svg|{{{size|11}}}px|link=]]
| trambesos=[[Berkas:Tramvia metropolita.svg|{{{size|11}}}px|link=]]
| t1={{RbE|T1|#008D78}}
| t2={{RbE|T2|#008D78}}
| t3={{RbE|T3|#008D78}}
| t4={{RbE|T4|#008D78}}
| t5={{RbE|T5|#008D78}}
| t6={{RbE|T6|#008D78}}
}}
| bari={{#switch: {{lc: {{{2}}} }}
| fm1={{RbE|FM1|#EE1E26}}
| fm2={{RbE|FM2|#FFBE2E}}
| fr1={{RbE|FR1|#00ADEF}}
| fr2={{RbE|FR1|#A0A0A0}}
}}
| beijing={{#switch: {{lc: {{{2}}} }}
| #default=[[Beijing Subway logo.svg|{{size|20}}px|link=]]
| 1={{RbE|1|#A4343A}}
| 2={{RbE|2|#00529B}}
| 4={{RbE|4|#008C95}}
| 5={{RbE|5|#AE005F}}
| 6={{RbE|6|#BB8900}}
| 7={{RbE|7|#FFC66E}}
| 8={{RbE|8|#00997A}}
| 9={{RbE|9|#87D300}}
| 10={{RbE|10|#0092C7}}
| 12={{RbE|12|#9C4F01}}
| 13={{RbE|13|#F5D312|black}}
| 14={{RbE|14|#D4A7A1}}
| 15={{RbE|15|#6A1D44}}
| 16={{RbE|16|#6BA53A}}
| 17|r2={{RbE|17|#00ABAB}}
| 18|r1={{RbE|18}}
| 19|r3={{RbE|19}}
| 20|r4={{RbE|20}}
| 28|cbd={{RbE|28}}
| airport|pek|capitalairport={{RbE|Capital Airport Express|#9B91B1}}
| batong={{RbE|Batong|#A4343A}}
| changping={{RbE|Changping|#D986BA}}
| daxing={{RbE|Daxing|#008C95}}
| daxingairport|pkx={{RbE|Daxing Airport Express|#0049A5}}
| fangshan={{RbE|Fangshan|#D85F26}}
| pinggu|22={{RbE|Pinggu}}
| s1={{RbE|S1|#A65A2A}}
| yanfang={{RbE|Yanfang|#D85F26}}
| yizhuang={{RbE|Yizhuang|#D61572}}
| xijiao={{RbE|Xijiao|#e1261c}}
<!-- Beijing Suburban Railway -->
| sc|sub-central={{RbE|BCR Sub-Central|#002FA7}}
| s2={{RbE|BCR S2|#002FA7}}
| s5|huaimi={{RbE|BCR Huaimi|#F65275}}
| tongmi={{RbE|BCR Tongmi|#002FA7}}
}}
| bergamo|albino={{RbE|T1|yellow|black|mo=Tranvia Bergamo-Albino (Bergamo FS - Albino)}}
| berlin={{#switch: {{lc: {{{2}}} }}
| m1 ={{RbE|M1|#63B9E9|mo=Straßenbahn Berlin, Linie M1 (Mitte, Am Kupfergraben - Niederschönhausen, Schillerstraße / Rosenthal Nord)}}
| m2 ={{RbE|M2|#7AB929|mo=Straßenbahn Berlin, Linie M2 (S+U Alexanderplatz/Dircksenstraße - Heinersdorf)}}
| m4 ={{RbE|M4|#CA1214|mo=Straßenbahn Berlin, Linie M4 (S Hackescher Markt - Falkenberg / Hohenschönhausen, Zingster Straße)}}
| m5 ={{RbE|M5|#C8893B|mo=Straßenbahn Berlin, Linie M5 (Moabit, Lüneburger Straße - Hohenschönhausen, Zingster Straße)}}
| m6 ={{RbE|M6|#005695|mo=Straßenbahn Berlin, Linie M6 (S Hackescher Markt - Hellersdorf, Riesaer Straße)}}
| m8 ={{RbE|M8|#EE7203|mo=Straßenbahn Berlin, Linie M8 (Moabit, Lüneburger Straße - Ahrensfelde/Stadtgrenze)}}
| m10={{RbE|M10|#007B3D|mo=Straßenbahn Berlin, Linie M10 (Moabit, Lüneburger Straße - S+U Warschauer Straße)}}
| m13={{RbE|M13|#00A092|mo=Straßenbahn Berlin, Linie M13 (Wedding, Virchow-Klinikum - S Warschauer Straße)}}
| m17={{RbE|M17|#A6422A|mo=Straßenbahn Berlin, Linie M17 (Falkenberg - S Schöneweide)}}
| s1 ={{RbE|S1|#DE4DA4|r=c|mo=S-Bahn Berlin, Linie S1 (Oranienburg - Frohnau - Wannsee)}}
| s2 ={{RbE|S2|#005F27|r=c|mo=S-Bahn Berlin, Linie S2 (Bernau - Buch - Lichtenrade - Blankenfelde)}}
| s3 ={{RbE|S3|#0A4C99|r=c|mo=S-Bahn Berlin, Linie S3 (Spandau - Ostbahnhof - Friedrichshagen - Erkner)}}
| s5 ={{RbE|S5|#FF5900|r=c|mo=S-Bahn Berlin, Linie S5 (Westkreuz - Mahlsdorf - Strausberg Nord)}}
| s7 ={{RbE|S7|#6F4E9C|r=c|mo=S-Bahn Berlin, Linie S7 (Potsdam Hauptbahnhof - Wannsee - Ahrensfelde)}}
| s8 ={{RbE|S8|#55A822|r=c|mo=S-Bahn Berlin, Linie S8 (Birkenwerder - Grünau - Zeuthen)}}
| s9 ={{RbE|S9|#8A0E30|r=c|mo=S-Bahn Berlin, Linie S9 (Spandau - Berlin-Schönefeld Flughafen)}}
| s25={{RbE|S25|#005F27|r=c|mo=S-Bahn Berlin, Linie S25 (Henningsdorf - Heiligensee - Lichterfelde Süd - Teltow Stadt)}}
| s26={{RbE|S26|#005F27|r=c|mo=S-Bahn Berlin, Linie S26 (Waidmannslust - Potsdammer Platz - Teltow Stadt)}}
| s41={{RbE|S41|#A23B1E|r=c|mo=S-Bahn Berlin, Linie S41 (Gesundbrunnen ↻)}}
| s42={{RbE|S42|#C26A36|r=c|mo=S-Bahn Berlin, Linie S42 (Gesundbrunnen ↺)}}
| s45={{RbE|S45|#C38737|r=c|mo=S-Bahn Berlin, Linie S45 (Südkreuz - Berlin-Schönefeld Flughafen)}}
| s46={{RbE|S46|#C38737|r=c|mo=S-Bahn Berlin, Linie S46 (Gesundbrunnen - Westend - Königs Wusterhafen)}}
| s47={{RbE|S47|#C58A3C|r=c|mo=S-Bahn Berlin, Linie S47 (Hermannstraße - Spindlersfeld)}}
| s75={{RbE|S75|#6F4E9C|r=c|mo=S-Bahn Berlin, Linie S75 (Warschauer Straße - Wartenberg)}}
| s85={{RbE|S85|#55A822|r=c|mo=S-Bahn Berlin, Linie S85 (Pankow - Schöneweide - Grünau)}}
| 12|t12={{RbE|12|#8870AB|mo=Straßenbahn Berlin, Linie 12 (Mitte, Am Kupfergraben - Weißensee, Pasedagplatz)}}
| 16|t16={{RbE|16|#007FAB|mo=Straßenbahn Berlin, Linie 16 (S+U Frankfurterallee - Ahrenfelde/Stadtgrenze)}}
| 18|t18={{RbE|18|#D6AD00|mo=Straßenbahn Berlin, Linie 18 (S Springpfuhl - Hellersdorf, Riesaer Straße)}}
| 21|t21={{RbE|21|#BC90C1|mo=Straßenbahn Berlin, Linie 21 (S+U Lichtenberg/Gudrunstraße - S Schöneweide)}}
| 27|t27={{RbE|27|#CB621A|mo=Straßenbahn Berlin, Linie 27 (Krankenhaus Köpenick, Südseite - Weißensee, Pasedagplatz)}}
| 37|t37={{RbE|37|#A6422A|mo=Straßenbahn Berlin, Linie 37 (S+U Lichtenberg/Gudrunstraße - S Schöneweide)}}
| 50|t50={{RbE|50|#EB9000|mo=Straßenbahn Berlin, Linie 50 (Wedding, Virchow-Klinikum - Französisch Buchholz, Guyotstraße)}}
| 60|t60={{RbE|60|#009BD9|mo=Straßenbahn Berlin, Linie 60 (Johannisthal, Haeckelstraße - Friedrichshagen, Altes Wasserwerk)}}
| 61|t61={{RbE|61|#E30613|mo=Straßenbahn Berlin, Linie 61 (Adlershof, Karl-Ziegler-Straße - Rahnsdorf/Waldschänke)}}
| 62|t62={{RbE|62|#00512D|mo=Straßenbahn Berlin, Linie 62 (Wendenschloß - S Mahlsdorf)}}
| 63|t63={{RbE|63|#EE7203|mo=Straßenbahn Berlin, Linie 63 (Adlershof, Karl-Ziegler-Straße - Mahlsdorf, Rahnsdorfer Straße)}}
| 67|t67={{RbE|67|#DD6CA6|mo=Straßenbahn Berlin, Linie 67 (Krankenhaus Köpenick, Südseite - S Schöneweide)}}
| 68|t68={{RbE|68|#65B32E|mo=Straßenbahn Berlin, Linie 68 (S Köpenick - Alt-Schmöckwitz)}}
| u1 ={{RbE|U1|#57A925|mo=U-Bahn Berlin, Linie U1 (Uhlandstraße - Warschauer Straße)}}
| u2 ={{RbE|U2|#FF3300|mo=U-Bahn Berlin, Linie U2 (Pankow - Ruhleben)}}
| u3 ={{RbE|U3|#019377|mo=U-Bahn Berlin, Linie U3 (Warschauwer Straße - Krumme Lanke)}}
| u4 ={{RbE|U4|#FFD900|black|mo=U-Bahn Berlin, Linie U4 (Nollendorfplatz - Innsbrucker Platz)}}
| u5 ={{RbE|U5|#672F17|mo=U-Bahn Berlin, Linie U5 (Alexanderplatz - Hönow)}}
| u6 ={{RbE|U6|#6F4E9C|mo=U-Bahn Berlin, Linie U6 (Alt-Tegel - Alt-Mariendorf)}}
| u7 ={{RbE|U7|#3690C0|mo=U-Bahn Berlin, Linie U7 (Rathaus Spandau - Rudow)}}
| u8 ={{RbE|U8|#0D3E86|mo=U-Bahn Berlin, Linie U8 (Wittenau - Hermannstraße)}}
| u9 ={{RbE|U9|#FF7300|mo=U-Bahn Berlin, Linie U9 (Rauthaus Steglitz - Osloerstraße)}}
| u10={{RbE|U10|#7F7F7F|mo=U-Bahn Berlin, Linie U10 (Weißensee - Drakestraße)}}
| u11={{RbE|U11|#7F7F7F|mo=U-Bahn Berlin, Linie U11 (Hauptbahnhof - Glambecker Ring)}}
}}
| bescancon={{#switch: {{lc: {{{2}}} }}
|1|t1={{RbE|T1|#00abc4|r=e|mo=Tramway de Bescançon, Ligne T1 (Hauts de Chazal - Chalezeule)}}
|2|t2={{RbE|T2|#006c78|r=e|mo=Tramway de Bescançon, Ligne T2 (Hauts de Chazal - Gare Viotte)}}
}}
| bilbao={{#switch: {{lc: {{{2}}} }}
| metro=[[Berkas:Símbolo del Metro de Bilbao.svg|{{{size|16}}}px|link=]]
| l1|1 ={{RbE|L1|#F1592A}}
| l2|2 ={{RbE|L2|#1F1E21}}
| l3|3 ={{RbE|L3|#E2007A}}
| l4|4 ={{RbE|L4|#00309A}}
| l5|5 ={{RbE|L5|#FFAF00}}
}}
| bordeaux={{#switch: {{lc: {{{2}}} }}
|a={{RbE|A|#802990|r=c|mo=Tramway de Bordeaux, Ligne A (Le Haillan Rostand - La Gardette Bassens Carbon-Blanc/Floriac Dravemont)}}
|b={{RbE|B|#ed164b|r=c|mo=Tramway de Bordeaux, Ligne B (Berges de la Garonne - Pessac France Alouette/Pessac Centre)}}
|c={{RbE|C|#cf56a0|r=c|mo=Tramway de Bordeaux, Ligne C (Parc des Expositions/Garde de Blanquefort - Villenave Pyrénées)}}
|d={{RbE|D|#8650a9|r=c|mo=Tramway de Bordeaux, Ligne D (Marie du Bouscat - Carle Vernet)}}
}}
| boston={{#switch: {{lc: {{{2}}} }}
| subway=[[Berkas:BSicon SUBWAY.svg|{{{size|16}}}px|link=]]
| blue ={{RbE|Blue|#2F5DA6}}
| orange={{RbE|Orange|#FD8A03|black}}
| red ={{RbE|Red|#FA2D27|black}}
| green ={{RbE|Green|#008150}}
| silver={{RbE|Silver|#9A9C9D|black}}
| boat ={{RbE|Boat|#0066FF}}
| bus ={{RbE|Bus|#FFFF00|black}}
}}
| brampton={{#switch: {{lc: {{{2}}} }}
| 501|queen={{RbE|501|#EE3A44}}
| 502|main={{RbE|502|#EE3A44}}
| 505|bovaird={{RbE|505|#EE3A44}}
| 511|steeles={{RbE|511|#EE3A44}}
| 561|queenwest={{RbE|561|#EE3A44}}
}}
| bratislava={{#switch: {{lc: {{{2}}} }}
|1 ={{RbE|1|#f37021|mo=Bratislava Tramway, Line 1 (Nám Ľ. Štúra - Hlavná stanica)}}
|3 ={{RbE|3|#ee1d23|mo=Bratislava Tramway, Line 3 (Rača, Komisárky - Petržalka, Jungmannova)}}
|4 ={{RbE|4|#6c8bc6|mo=Bratislava Tramway, Line 4 (Náměstí Míru - Depo Písnice)}}
|7 ={{RbE|7|#fff101|black|mo=Bratislava Tramway, Line 7 (Hlavná stanica - Stn. Vinohrady / Rača, Komisárky)}}
|9 ={{RbE|9|#a6ce39|mo=Bratislava Tramway, Line 9 (Ružinov, Astronomická - Karlova Ves, Kútiky)}}
}}
| bresica={{RbE|M|#0276ad|mo=Metropolitana di Bresica (Prealpino - Sant'Eufemia Buffalora)}}
| brest={{#switch: {{lc: {{{2}}} }}
|a={{RbE|A|#e2078d|r=e|mo=Tramway de Brest, Ligne A (Plouzané - Gouesnou/Guipavas}}
|b={{RbE|B|r=e|mo=Tramway de Brest, Ligne B}}
}}
| brisbane={{#switch: {{lc: {{{2}}} }}
| airport={{RbE|Airport|#FFFF00|black}}
| clt|caboolture={{RbE|CLT|#00FF00|black|mo=Caboolture}}
| dmb|doomben={{RbE|DMB|#800080|mo=Doomben}}
| fgr|fernygrove={{RbE|FGR|#FF0000|mo=Ferny Grove}}
| rcp|redcliffepeninsula={{RbE|RCP|#08E8DE|black|mo=Redcliffe Peninsula}}
| scl|shorncliffe={{RbE|SCL|#00008B|mo=Shorncliffe}}
| ssc|sunshinecoast={{RbE|SSC|#008000|mo=Sunshine Coast}}
| bnl|beenleigh={{RbE|BNL|#FF0000|mo=Beenleigh}}
| cld|cleveland={{RbE|CLD|#00008B|mo=Cleveland}}
| gc|goldcoast={{RbE|GC|#ffc425|black|mo=Gold Coast}}
| i&r|ipswich&rosewood={{RbE|I&R|#00FF00|black|mo=Ipswich & Rosewood}}
| spr|springfield={{RbE|SPR|#08E8DE|black|mo=Springfield}}
| exh|exhibition={{RbE|EXH|#C0C0C0|black|mo=Exhibition}}
| crr|crossriver={{RbE|CRR|#003c69|#f39410|mo=Cross River Rail}}
| mrd|maroochydore={{RbE|MRD|mo=Maroochydore}}
| bds|beaudesert={{RbE|BDS|mo=Beaudesert}}
| gca|goldcoastairport={{RbE|GCA|#ffc425|black|mo=Gold Coast Airport}}
| rbp|redbankplains={{RbE|RBP|#1578be|mo=Redbank Plains}}
}}
| brno={{#switch: {{lc: {{{2}}} }}
|1 ={{RbE|1|red|mo=Brno Tramline 1 (Řečkovice - Bystrc, Ečerova)}}
|2 ={{RbE|2|red|mo=Brno Tramline 2 (Židenice, Stará Osada - Modřice, smyčka)}}
|3 ={{RbE|3|red|mo=Brno Tramilne 3 (Židenice, Stará Osada - Bystrc, Rakovecká)}}
|4 ={{RbE|4|red|mo=Brno Tramline 4 (Masarykova čtvrť, náměstí Míru - Obřany, Babická)}}
|5 ={{RbE|5|red|mo=Brno Tramline 5 (Štefánikova čtvrť - Ústřední hřbitov, smyčka)}}
|6 ={{RbE|6|red|mo=Brno Tramline 6 (Královo Pole, nádraží - Starý Lískovec, smyčka)}}
|8 ={{RbE|8|red|mo=Brno Tramline 8 (Líšeň, Mifkova - Starý Lískovec, smyčka)}}
|9 ={{RbE|9|red|mo=Brno Tramline 9 (Lesná, Čertova rokle - Juliánov)}}
|10={{RbE|10|red|mo=Brno Tramline 10 (Bohunice, Švermova / Nové sady, smyčka - Stránská skála)}}
|11={{RbE|11|red|mo=Brno Tramline 11 (Lesná, Čertova rokle - Bystrc, Rakovecká)}}
|12={{RbE|12|red|mo=Brno Tramline 12 (Technologický park - Komárov)}}
}}
| brussels={{#switch: {{lc: {{{2}}} }}
|1 ={{RbE|1 |#b91893|mo=metro}}
|2 ={{RbE|2 |#f57925|mo=metro}}
|3 ={{RbE|3 |#b9d110|black|mo=premetro}}
|4 ={{RbE|4 |#f24d90|black|mo=premetro}}
|5 ={{RbE|5 |#fab20b|mo=metro}}
|6 ={{RbE|6 |#017aaf|mo=metro}}
|7 ={{RbE|7 |#fdf44e|black|mo=tram}}
|12 ={{RbE|12|#409629|mo=bus}}
|13 ={{RbE|13|#a6cff0|black|mo=bus}}
|14 ={{RbE|14|#f89cc6|black|mo=bus}}
|15 ={{RbE|15|#174e94|mo=bus}}
|17 ={{RbE|17|#f1491c|mo=bus}}
|19 ={{RbE|19|#f1491c|mo=tram}}
|20 ={{RbE|20|#fccb06|black|mo=bus}}
|21 ={{RbE|21|#fff200|black|mo=bus}}
|22 ={{RbE|22|#b9d110|black|mo=bus}}
|25 ={{RbE|25|#aa0c31|mo=tram}}
|27 ={{RbE|27|#a6cff0|black|mo=bus}}
|28 ={{RbE|28|#f1491c|mo=bus}}
|29 ={{RbE|29|#f79121|mo=bus}}
|32 ={{RbE|32|#fff200|black|mo=tram}}
|34 ={{RbE|34|#fccb06|black|mo=bus}}
|36 ={{RbE|36|#a6cff0|black|mo=bus}}
|38 ={{RbE|38|#b982c7|mo=bus}}
|39 ={{RbE|39|#f1491c|mo=tram}}
|40 ={{RbE|40|#f1491c|mo=bus}}
|41 ={{RbE|41|#a6cff0|black|mo=bus}}
|42 ={{RbE|42|#409629|mo=bus}}
|43 ={{RbE|43|#a76709|mo=bus}}
|44 ={{RbE|44|#fccb06|black|mo=tram}}
|45 ={{RbE|45|#b982c7|mo=bus}}
|46 ={{RbE|46|#f1491c|mo=bus}}
|47 ={{RbE|47|#b982c7|mo=bus}}
|48 ={{RbE|48|#409629|mo=bus}}
|49 ={{RbE|49|#174e94|mo=bus}}
|50 ={{RbE|50|#b9d110|black|mo=bus}}
|51 ={{RbE|51|#fccb06|black|mo=tram}}
|52 ={{RbE|52|#a6cff0|mo=bus}}
|53 ={{RbE|53|#409629|mo=bus}}
|54 ={{RbE|54|#f1491c|mo=bus}}
|55 ={{RbE|55|#fccb06|black|mo=tram}}
|57 ={{RbE|57|#f1491c|mo=bus}}
|58 ={{RbE|58|#409629|mo=bus}}
|59 ={{RbE|59|#a76709|mo=bus}}
|60 ={{RbE|60|#f89cc6|black|mo=bus}}
|61 ={{RbE|61|#fff200|black|mo=bus}}
|62 ={{RbE|62|#f89cc6|black|mo=tram}}
|63 ={{RbE|63|#a6cff0|black|mo=bus}}
|64 ={{RbE|64|#f1491c|mo=bus}}
|65 ={{RbE|65|#fccb06|black|mo=bus}}
|66 ={{RbE|66|#174e94|mo=bus}}
|69 ={{RbE|69|#f79121|mo=bus}}
|70 ={{RbE|70|#b9d110|black|mo=bus}}
|71 ={{RbE|71|#409629|mo=bus}}
|72 ={{RbE|72|#f89cc6|black|mo=bus}}
|75 ={{RbE|75|#fff200|black|mo=bus}}
|76 ={{RbE|76|#fff200|black|mo=bus}}
|77 ={{RbE|77|#409629|mo=bus}}
|78 ={{RbE|78|#b982c7|mo=bus}}
|79 ={{RbE|79|#174e94|mo=bus}}
|80 ={{RbE|80|#409629|mo=bus}}
|81 ={{RbE|81|#409629|mo=tram}}
|82 ={{RbE|82|#a6cff0|black|mo=tram}}
|84 ={{RbE|84|#fff200|black|mo=bus}}
|86 ={{RbE|86|#409629|mo=bus}}
|87 ={{RbE|87|#409629|mo=bus}}
|88 ={{RbE|88|#aa0c31|mo=bus}}
|89 ={{RbE|89|#f79121|mo=bus}}
|92 ={{RbE|92|#f1491c|mo=tram}}
|93 ={{RbE|93|#f79121|mo=tram}}
|94 ={{RbE|94|#fff200|black|mo=tram}}
|95 ={{RbE|95|#174e94|mo=bus}}
|97 ={{RbE|97|#aa0c31|mo=bus}}
|98 ={{RbE|98|#f79121|mo=bus}}
|metro=[[Berkas:Brussels Metro-simplified.svg|{{{size|13}}}px|link=]]
|n04 ={{RbE|N04|#d75394|mo=Noctis bus}}
|n05 ={{RbE|N05|#c196c0|mo=Noctis bus}}
|n06 ={{RbE|N06|#0f97d2|mo=Noctis bus}}
|n08 ={{RbE|N08|#b0d1e9|black|mo=Noctis bus}}
|n09 ={{RbE|N09|#d75394|mo=Noctis bus}}
|n10 ={{RbE|N10|#d2de88|black|mo=Noctis bus}}
|n11 ={{RbE|N11|#ae7930|mo=Noctis bus}}
|n12 ={{RbE|N12|#f09e27|mo=Noctis bus}}
|n13 ={{RbE|N13|#ab2737|mo=Noctis bus}}
|n16 ={{RbE|N16|#7fc19c|mo=Noctis bus}}
|n18 ={{RbE|N18|#28a24b|mo=Noctis bus}}
|s1 ={{RbE|S1|#025f33|r=c|mo=Brussels RER, line S1 (Nivelles - Antwerp)}}
|s2 ={{RbE|S2|#f26122|r=c|mo=Brussels RER, line S2 (Braine-le-Comte - Leuven)}}
|s3 ={{RbE|S3|#212876|r=c|mo=Brussels RER, line S3 (Zottegem - Dendermonde)}}
|s4 ={{RbE|S4|#ce2127|r=c|mo=Brussels RER, line S4 (Aalst - Vilvoorde)}}
|s5 ={{RbE|S5|#fecc09|r=c|mo=Brussels RER, line S5 (Geraardsbergen - Mechelen)}}
|s6 ={{RbE|S6|#965f26|r=c|mo=Brussels RER, line S6 (Schaarbeek - Denderleeuw)}}
|s7 ={{RbE|S7|#581759|r=c|mo=Brussels RER, line S7 (Halle - Mechelen)}}
|s8 ={{RbE|S8|#0d96cd|r=c|mo=Brussels RER, line S8 (Louvain-la-Neuve - Brussels South)}}
|s81={{RbE|S81|#6a4d9f|r=c|mo=Brussels RER, line S81 (Ottignies - Schaarbeek)}}
|s9 ={{RbE|S9|#67bc45|r=c|mo=Brussels RER, line S9 (Braine-l'Alleud - Leuven)}}
|s10={{RbE|S10|#ff1f20|r=c|mo=Brussels RER, line S10 (Aalst - Dendermonde)}}
|s20={{RbE|S20|#059797|r=c|mo=Brussels RER, line S20 (Ottignies - Leuven)}}
}}
| bucharest={{#switch: {{lc: {{{2}}} }}
| m1={{RbE|M1|#FCDD00|black}}
| m2={{RbE|M2|#4B5799}}
| m3={{RbE|M3|#DC2017}}
| m4={{RbE|M4|#46996C}}
| m5={{RbE|M5|#FF8040}}
| m6={{RbE|M6|#B784B0}}
}}
| budapest={{#switch: {{lc: {{{2}}} }}
| m1={{RbE|M1|#feda04|black|r=c|mo=Budapest Metro Line M1}}
| m2={{RbE|M2|#ca161c|r=c|mo=Budapest Metro Line M2}}
| m3={{RbE|M3|#025694|r=c|mo=Budapest Metro Line M3}}
| m4={{RbE|M4|#44aa44|r=c|mo=Budapest Metro Line M4}}
| h5={{RbE|H5|#821066|r=c|mo=Budapest Suburban Railway Line H5}}
| h6={{RbE|H6|#824b00|r=c|mo=Budapest Suburban Railway Line H6}}
| h7={{RbE|H7|#ee7203|r=c|mo=Budapest Suburban Railway Line H7}}
| h8={{RbE|H8|#ed677e|r=c|mo=Budapest Suburban Railway Line H8}}
| h9={{RbE|H9|#ed677e|r=c|mo=Budapest Suburban Railway Line H9}}
| d2={{RbE|D2|#ca161c|r=c|mo=Budapest Boat Line D2}}
| d11={{RbE|D11|#ff0070|r=c|mo=Budapest Boat Line D11}}
| d12={{RbE|D12|#ab010b|r=c|mo=Budapest Boat Line D12}}
| d14={{RbE|D14|#eb2d5b|r=c|mo=Budapest Boat Line D14}}
| s10|s12|s21|s25|s30|s35|s36|s40|s42|s50|s51|s60|s70|s71|s72|s76|s80|s150|s210|s220|s250|s431|s432|s440|s450|s750|s780|s790|s820={{RbE|{{uc: {{{2}}} }}|#00a0e3|r=e|mo=Local Train {{uc: {{{2}}} }}}}
| g10|g43|g60|g70|g71|g72|g80={{RbE|{{uc: {{{2}}} }}|#b0cb1f|r=e|mo=Semi-fast Train {{uc: {{{2}}} }}}}
| z30|z50|z60|z70|z72|z80={{RbE|{{uc: {{{2}}} }}|#fecc00|black|r=e|mo=Semi-express Train {{uc: {{{2}}} }}}}
| 1|2|3|4|6|12|14|17|19|24|28|28a|37|37a|41|42|47|47b|48|49|50|51|51a|52|56|56a|59|59a|59b|60|61|62|62a|69={{RbE|{{uc: {{{2}}} }}|#ffd800|black|r=e|mo=Budapest Tram Line {{uc: {{{2}}} }}}}
| 70|72|73|74|74a|75|76|77|78|79|80|80a|81|82|83={{RbE|{{uc: {{{2}}} }}|#ff1609|r=e|mo=Budapest Trolleybus Line {{uc: {{{2}}} }}}}
| {{RbE|{{uc: {{{2}}} }}|#009fe3|r=e|mo=Budapest Bus Line {{uc: {{{2}}} }}}}
}}
| buenos aires | buenosaires={{#switch: {{lc: {{{2}}} }}
| a= {{RbE|A|#00AEDA}}
| b= {{RbE|B|#EE4035}}
| c= {{RbE|C|#0067B2}}
| d= {{RbE|D|#008067}}
| e= {{RbE|E|#6C2180}}
| f= {{RbE|F|#B21E39}}
| g= {{RbE|G|#F386A2|black}}
| h= {{RbE|H|#FFDE00|black}}
| i= {{RbE|I|#F47734|black}}
| premetro|e2= {{RbE|P|#FBAC23|black}}
}}
| busan={{#switch: {{lc: {{{2}}} }}
| 1|l1= {{RbE|1|#F06A00}}
| 2|l2= {{RbE|2|#81BF48}}
| 3|l3= {{RbE|3|#BB8C00}}
| 4|l4= {{RbE|4|#217DCB}}
| bgl= {{RbE|BGL|#8451A0}}
| donghae= {{RbE|Donghae|#0066B3}}
}}
| bydgoszcz={{#switch: {{lc: {{{2}}} }}
| 1={{RbE|1|mo=Bydgoszcz Tramway, Line 1 (Las Gdański - Wilczak)}}
| 2={{RbE|2|mo=Bydgoszcz Tramway, Line 2 (Las Gdański - Rondo Kujawskie)}}
| 3={{RbE|3|mo=Bydgoszcz Tramway, Line 3 (Wilczak - Loskon)}}
| 4={{RbE|4|mo=Bydgoszcz Tramway, Line 4 (Bielawy - Glinki)}}
| 5={{RbE|5|mo=Bydgoszcz Tramway, Line 5 (Glinki - Rycerska)}}
| 6={{RbE|6|mo=Bydgoszcz Tramway, Line 6 (Bielawy - Łęgnowo)}}
| 7={{RbE|7|mo=Bydgoszcz Tramway, Line 7 (Wyścigowa - Kapuściska)}}
| 8={{RbE|8|mo=Bydgoszcz Tramway, Line 8 (Wilczak - Kapuściska)}}
}}
| caen={{#switch: {{lc: {{{2}}} }}
|1|t1={{RbE|T1|#23b24b|r=e|mo=Tramway de Caen, Ligne T1 (Hérouville-Saint-Clair - Ifs Jean-Villar)}}
|2|t2={{RbE|T2|#ee3d3c|r=e|mo=Tramway de Caen, Ligne T2 (Campus 2 - Prequ'île)}}
|3|t3={{RbE|T3|#00a7e9|r=e|mo=Tramway de Caen, Ligne T3 (Château-Quatrans - Fleury Hauts-de-l'Orne)}}
}}
| cagliari={{#switch: {{lc: {{{2}}} }}
| 1={{RbE|1|red|mo=Metrocagliari, linea 1 (Reubblica - Policlinico/Università)}}
| 2={{RbE|2|blue|mo=Metrocagliari, linea 2 (Gottardo - Settimo San Pietro)}}
}}
| canberra={{#switch: {{lc: {{{2}}} }}
|gungahlin={{RbE|G|red|mo=Canberra LRT: Gungalin - City}}
|parliamentary|triangle={{RbE|Pᐃ|mo=Canberra LRT: Parliamentary Triangle}}
|woden={{RbE|W|mo=Canberra LRT: Woden - City}}
|athllon={{RbE|A|mo=Canberra LRT: Athllon Corridor}}
|eastern={{RbE|E|mo=Canberra LRT: Eastern Connections}}
|belconnen={{RbE|B|mo=Canberra LRT: Belconnen - City}}
|molonglo={{RbE|M|mo=Canberra LRT: Molonglo - City}}
}}
| catalonia={{#switch: {{lc: {{{2}}} }}
| fgc=[[Berkas:FGC.svg|{{{size|11}}}px|link=]]
| fvallvidrera=[[Berkas:fvallvidrera.svg|{{{size|11}}}px|link=]]
| nuria=[[Berkas:Cremallera de Núria.svg|{{{size|11}}}px|link=]]
| rdc=[[Berkas:Rodalies de Catalunya.svg|{{{size|11}}}px|link=]]
| r1={{RbE|R1|#4699D4}}
| r2={{RbE|R2|#009900}}
| r2n={{RbE|R2<small>NORD</small>|#99CC00}}
| r2s={{RbE|R2<small>SUD</small>|#339966}}
| r3={{RbE|R3|#FF131A}}
| r4={{RbE|R4|#FF9221}}
| r5={{RbE|R5|#4FC4BB}}
| r50={{RbE|R50|#007D9B}}
| r6={{RbE|R6|#9EA1A6}}
| r60={{RbE|R60|#585A63}}
| r7={{RbE|R7|#BD7DB5}}
| r8={{RbE|R8|#9A2587}}
| r10={{RbE|R10|#930030}}
| rg1={{RbE|RG1|#037FC3}}
| rt1={{RbE|RT1|#37BDB3}}
| rt2={{RbE|RT2|#DB87B9}}
| r11={{RbE|R11|#0064A5}}
| r12={{RbE|R12|#FFDC00|black}}
| r13={{RbE|R13|#E52E87}}
| r14={{RbE|R14|#675199}}
| r15={{RbE|R15|#9A8A76}}
| r16={{RbE|R16|#AF0036}}
| s1={{RbE|S1|#F47216}}
| s2={{RbE|S2|#59C134}}
| s3={{RbE|S3|#4B868D}}
| s4={{RbE|S4|#8E7F21}}
| s5={{RbE|S5|#4F99D9}}
| s6={{RbE|S6|#E40143}}
| s7={{RbE|S7|#A22140}}
| s8={{RbE|S8|#4DC4DB}}
| s9={{RbE|S9|#E73D5E}}
| s33={{RbE|S33|#E659B4}}
| s55={{RbE|S55|#4F99D9}}
| tpc=[[Berkas:TPC.svg|{{{size|11}}}px|link=]]
}}
| catania={{RbE|M|red|mo=Metropolitana di Catania (Monte Po - Palestro/Porto)}}
| changchun={{#switch: {{lc: {{{2}}} }}
| 1={{RbE|1|#A12830}}
| 2={{RbE|2|#00529B}}
| 3={{RbE|3|#008542}}
| 4={{RbE|4|#5F259F}}
| beihu={{RbE|Beihu|#008193}}
}}
| changsha={{#switch: {{lc: {{{2}}} }}
| 1={{RbE|1|#A12830}}
| 2={{RbE|2|#00AAE8}}
| 3={{RbE|3|#A9CB05}}
| 4={{RbE|4|#870281}}
| 5={{RbE|5|#FEE100}}
| 6={{RbE|6|#004DA2}}
}}
| charleroi={{#switch: {{lc: {{{2}}} }}
|m1|1={{RbE|1|#E51937|r=e|mo=Charleroi Metro line 1 (Anderlues-Monument)}}
|m2|2={{RbE|2|#90C73E|r=e|mo=Charleroi Metro line 2 (Pétria)}}
|m3|3={{RbE|3|#FCA91F|r=e|mo=Charleroi Metro line 3 (Gosselies-Fabourg de Bruxelles)}}
|m4|4={{RbE|4|#0080EE|r=e|mo=Charleroi Metro line 4 (Soleilmont)}}
}}
| chengdu={{#switch: {{lc: {{{2}}} }}
| 1={{RbE|1|#10069F}}
| 2={{RbE|2|#FF5C39}}
| 3={{RbE|3|#D40F7D}}
| 4={{RbE|4|#44AF52}}
| 5={{RbE|5|#BB29BB}}
| 6={{RbE|6|#B36924}}
| 7={{RbE|7|#6AD1E3}}
| 8={{RbE|8|#B7D400}}
| 9={{RbE|9|#F1AC00}}
| 10={{RbE|10|#003DA5}}
| 11={{RbE|11|#846E28}}
| 12={{RbE|12|#6C1473}}
| 13={{RbE|13|#CBAE00}}
| 14={{RbE|14|#7F2740}}
| 15={{RbE|15|#ECAECE}}
| 16={{RbE|16|#0092D2}}
| 17={{RbE|17|#6ADDA3}}
| 18={{RbE|18|#115E67}}
| 19={{RbE|19|#95A2E3}}
| 20={{RbE|20|#B8520A}}
| metro|subway=[[Berkas:Chengdu_Metro_icon.svg|{{{size|25}}}px|link=]]
}}
| chicago={{#switch: {{lc: {{{2}}} }}
|red|north side main|state street|dan ryan={{RbE|Red|#F9000C}}
|blue|o'hare|milwaukee-dearborn|congress={{RbE|Blue|#009CE3}}
|brown|ravenswood={{RbE|Brown|#7D3F00}}
|green|lake street|south side main|ashland and east 63rd={{RbE|Green|#00B248}}
|orange|midway={{RbE|Orange|#FF6D00}}
|purple|evanston={{RbE|Purple|#521598}}
|pink|douglas|paulina={{RbE|Pink|#FF7DB0}}
|yellow|skokie={{RbE|Yellow|#FFEE00|black}}
}}
| chongqing={{#switch: {{lc: {{{2}}} }}
| 1={{RbE|1|#E4002B}}
| 2={{RbE|2|#007A33}}
| 3={{RbE|3|#003DA5}}
| 4={{RbE|4|#DC8633}}
| 5={{RbE|5|#00A3E0}}
| 6={{RbE|6|#F67599}}
| 7={{RbE|7|#008C95}}
| 8={{RbE|8|#7A9A01}}
| 9={{RbE|9|#861F41}}
| 10={{RbE|10|#5F259F}}
| 11={{RbE|11|#D986BA}}
| 12={{RbE|12|#D2D755}}
| 13={{RbE|13|#B89D18}}
| 14={{RbE|14|#B94700}}
| 15={{RbE|15|#0057B8}}
| 16={{RbE|16|#B04A5A}}
| 17={{RbE|17|#0057B8}}
| loop={{RbE|Loop|#A89968}}
}}
| christchurch={{#switch: {{lc: {{{2}}} }}
|or={{RbE|Or|#79bc43|mo=Christchurch Metro: Orbiter}}
|b ={{RbE|B|#3ebced|mo=Christchurch Metro: Blue Line (Princess Margaret Hospital - Rangiora)}}
|p ={{RbE|P|#554588|mo=Christchurch Metro: Purple Line (Airport - Sumner)}}
|y ={{RbE|Y|#ffc20e|mo=Christchurch Metro: Yellow Line (Rolleston - New Brighton)}}
|o ={{RbE|O|#f37021|mo=Christchurch Metro: Orange Line (Halswell - Queenspark)}}
|17 ={{RbE|17|#042870|mo=Christchurch City Connector 17 (Sheffield Crescent - Huntsbury)}}
|28 ={{RbE|28|#042870|mo=Christchurch City Connector 28 (Casebrook - Lyttelton Wharf/Rapaki)}}
|29 ={{RbE|29|#042870|mo=Christchurch City Connector 29 (Central Station - Airport)}}
|44 ={{RbE|44|#042870|mo=Christchurch City Connector 44 (Dallington - Central Station)}}
|45 ={{RbE|45|#042870|mo=Christchurch City Connector 45 (Westmorland - Bus Interchange)}}
|60 ={{RbE|60|#042870|mo=Christchurch City Connector 60 (Aidanfield - Southshore)}}
|80 ={{RbE|80|#042870|mo=Christchurch City Connector 80 (Lincoln University - Parklands)}}
|85 ={{RbE|85|#042870|mo=Christchurch City Connector 85 (Rolleston - Ara Institute)}}
|86 ={{RbE|86|#042870|mo=Christchurch City Connector 86 (Darfield - Manchester Street Superstop)}}
|87 ={{RbE|87|#042870|mo=Christchurch City Connector 87 (Southbridge - Manchester Street Superstop)}}
|95 ={{RbE|95|#042870|mo=Christchurch City Connector 95 (Waikuku - Ara Institute)}}
|100={{RbE|100|#f2932e|mo=Christchurch Suburban Link 100 (Halswell - The Palms Mall)}}
|107={{RbE|107|#f2932e|mo=Christchurch Suburban Link 107 (Northwood Supa Centa - Northlands Mall)}}
|120={{RbE|120|#f2932e|mo=Christchurch Suburban Link 120 (Sheffield Crescent - Barrington Mall)}}
|125={{RbE|125|#f2932e|mo=Christchurch Suburban Link 125 (Redwood - Halswell)}}
|130={{RbE|130|#f2932e|mo=Christchurch Suburban Link 130 (Hornby Hub - Burnside High School)}}
|135={{RbE|135|#f2932e|mo=Christchurch Suburban Link 135 (The Palms - New Brighton)}}
|140={{RbE|140|#f2932e|mo=Christchurch Suburban Link 140 (Hornby Hub - Mt Pleasant)}}
|155={{RbE|155|#f2932e|mo=Christchurch Suburban Link 155 (Lyttleton Wharf - Eastgate Mall)}}
|820={{RbE|820|#f2932e|mo=Christchurch Suburban Link 820 (Burnham - Lincoln)}}
}}
| clermontferrand={{#switch: {{lc: {{{2}}} }}
|a ={{RbE|A|#bf2119|mo=Ligne de Tram A (Les Vergnes - La Pardieu Gare)}}
|b ={{RbE|B|#02bce5|mo=Ligne B de T2C (Royat - Place Allard - Stade Marcel Michelin)}}
|c ={{RbE|C|#f49fc5|black|mo=Ligne C de T2C (Tamaris - Cournon - Toulaits)}}
|3 ={{RbE|3|#f68e1e|mo=Ligne 3 de T2C (Stade G. Montpied/Les Vignes/Iliane - Gergovia)}}
|4 ={{RbE|4|#ed028c|mo=Ligne 4 de T2C (Trémonteix Charcot - Pradeaux)}}
|5 ={{RbE|5|#9e6512|mo=Ligne 5 de T2C (Gaillard - Royat - Pépinière)}}
|7 ={{RbE|7|#c7e0f3|black|mo=Ligne 7 de T2C (Les Côtes/Maison des Sports - Tillon)}}
|8 ={{RbE|8|#ffdc01|black|mo=Ligne 8 de T2C (Matussat - Maison de la Culture/Vallières)}}
|9 ={{RbE|9|#c78510|mo=Ligne 9 de T2C (Trémonteix Eychart - Jean Moulin/Brézet/Georges Besse)}}
|10={{RbE|10|#c7a0c9|black|mo=Ligne 10 de T2C (Durtol - Aulnat - Saint-Exupéry)}}
|12={{RbE|12|#9460a8|mo=Ligne 12 de T2C (Delille Montlosier - Quartier Chambon)}}
|13={{RbE|13|#9facd6|black|mo=Ligne 13 de T2C (Hauts de Chamalières - Les Horts)}}
}}
| cologne={{#switch: {{lc: {{{2}}} }}
| s11={{RbE|S 11|#ef7c00|mo=Cologne S-Bahn, Linie 11 (Düsseldorf Flughafen Terminal - Bergisch Gladbach)}}
| s12={{RbE|S 12|#61af20|mo=Cologne S-Bahn, Linie 12 (Horrem - Köln - Au)}}
| s13={{RbE|S 13|#2d6c7e|mo=Cologne S-Bahn, Linie 13 (Aachen - Düren - Troisdorf)}}
| s19={{RbE|S 19|#2d6c7e|mo=Cologne S-Bahn, Linie 19 (Düren - Au)}}
| s23={{RbE|S 23|#8b3c59|mo=Cologne S-Bahn, Linie 23 (Euskirchen - Bonn)}}
}}
| copenhagen={{#switch: {{lc: {{{2}}} }}
|1|m1 = {{RbE|M1|#397C5D|r=c|mo=Copenhagen Metro M1 (Vanløse - Vestamager)}}
|2|m2 = {{RbE|M2|#EBD043|black|r=c|mo=Copenhagen Metro M2 (Vanløse - Lufthavn)}}
|3|m3 = {{RbE|M3|#007DC4|r=c|mo=Copenhagen Metro M3 (Circular)}}
|4|m4 = {{RbE|M4|#F8901E|black|r=c|mo=Copenhagen Metro M4 (Ny Ellebjerg - Orientkaj)}}
|a|sa = {{RbE|A|#15A4DD|r=e|mo=Copenhagen S-tog A (Køgebugtbanen - Nordbanen)}}
|b|sb = {{RbE|B|#4BAA47|r=e|mo=Copenhagen S-tog B (Hareskovbanen - Farum)}}
|bx|sbx= {{RbE|Bx|#77C044|r=e|mo=Copenhagen S-tog Bx (Hareskovbanen - Farum)}}
|c|sc = {{RbE|C|#F68620|r=e|mo=Copenhagen S-tog C (Klampenborg - Frederikssund)}}
|e|se = {{RbE|E|#6B67AF|r=e|mo=Copenhagen S-tog E (Køge - Hillerød)}}
|f|sf = {{RbE|F|#FFC225|r=e|mo=Copenhagen S-tog F (Hellerup - Ny Ellebjerg)}}
|h|sh = {{RbE|H|#EF4236|r=e|mo=Copenhagen S-tog H (Østerport - Frederikssund)}}
|letbane={{RbE|Letbane|#6ec382|mo=Hovstadens Letbane (Ishøj - Lundtofte)}}
}}
| czestochowa|częstochowa={{#switch:{{lc: {{{2}}} }}
| 1={{RbE|1|red|mo=Częstochowa Tramway, Line 1 (Fieldorfa-Nila - Kucelin Szpital)}}
| 2={{RbE|2|blue|mo=Częstochowa Tramway, Line 2 (Fieldorfa-Nila - Raków PKP)}}
| 3={{RbE|3|green|mo=Częstochowa Tramway, Line 3 (Fieldorfa-Nila - Stadion Raków)}}
}}
| daegu={{#switch: {{lc: {{{2}}} }}
| 1={{RbE|1호선|#D93F5C}}
| 2={{RbE|2호선|#00AA80}}
| 3={{RbE|3호선|#FFB100}}
}}
| dalian={{#switch: {{lc: {{{2}}} }}
|1={{RbE|1|#008542}}
|2={{RbE|2|#0066A1}}
|3={{RbE|3|#E91A38}}
|5={{RbE|5|#400040}}
|6={{RbE|6|#BBBBBB}}
|7={{RbE|7|#BBBBBB}}
|8={{RbE|8|#BBBBBB}}
|9={{RbE|9|#BBBBBB}}
|10={{RbE|10|#BBBBBB}}
|11={{RbE|11|#BBBBBB}}
|12={{RbE|12|#5F259F}}
|13={{RbE|13|#9B91B1}}
|14={{RbE|14|#BBBBBB}}
|15={{RbE|15|#BBBBBB}}
|16={{RbE|16|#BBBBBB}}
|17={{RbE|17|#BBBBBB}}
|18={{RbE|18|#BBBBBB}}
|19={{RbE|19|#BBBBBB}}
|20={{RbE|20|#BBBBBB}}
|t201={{RbE|201|#008542}}
|t202={{RbE|202|#008542}}
}}
| dammam={{#switch: {{lc: {{{2}}} }}
| 1={{RbE|1|#748477}}
| 2={{RbE|2|#748477}}
}}
| debrecen={{#switch: {{lc: {{{2}}} }}
| 1|2={{RbE|{{uc: {{{2}}} }}|#fadf66|black|r=e|mo=Debrecen Tram Line {{uc: {{{2}}} }}}}
| 3|3a|4|5|5a={{RbE|{{uc: {{{2}}} }}|#5aac5e|r=e|mo=Debrecen Trolleybus Line {{uc: {{{2}}} }}}}
| {{RbE|{{uc: {{{2}}} }}|#00539e|r=e|mo=Debrecen Bus Line {{uc: {{{2}}} }}}}
}}
| delhi={{#switch: {{lc: {{{2}}} }}
| red|1={{RbE|1|#FF3333}}
| yellow|2={{RbE|2|#FFCC00|black}}
| blue|3|4={{RbE|3/4|#0099CC}}
| green|5={{RbE|5|#339900}}
| violet|6={{RbE|6|#9400D3}}
| orange|airport express|10={{RbE|AE|#F7943A}}
| pink|inner ring road|7={{RbE|7|#FFCBDB|black}}
| magenta|outer ring road|8={{RbE|8|#FF00FF}}
| gray|9={{RbE|9|#000080}}
| moss={{RbE|10|#000080}}
}}
| denhaag|thehague={{#switch: {{lc: {{{2}}} }}
| 1={{RbE|1|#EE2E22|mo=Haage Tram line 1 (Scheveningen Noorderstrand - Delft Tanthof)}}
| 2={{RbE|2|#FEC422|black|mo=Haage Tram line 2 (Kraayenstein - Leidschendam Leidsenhage)}}
| 3={{RbE|3|#A9218E|mo=RandstadRail line 3 (Den Haag Loosduinen - Zoetermeer Centrum-West)}}
| 4={{RbE|4|#F4901D|mo=RandstadRail line 4 (Den Haag De Uithof - Zoetermeer Javalaan)}}
| 6={{RbE|6|#00AEEF|mo=Haage Tram line 6 (Leyenburg - Leidschendam Noord)}}
| 9={{RbE|9|#8BC63E|mo=Haage Tram line 9 (Scheveningen Noorderstrand - Vrederust)}}
|11={{RbE|11|#B88B73|mo=Haage Tram line 11 (Scheveningen Haven - Den Haag HS)}}
|12={{RbE|12|#EFB7D3|black|mo=Haage Tram line 12 (Duindorp - Den Haag HS)}}
|15={{RbE|15|#7D81E6|mo=Haage Tram line 15 (Nootdorp - Den Haag CS)}}
|16={{RbE|16|#7C351E|mo=Haage Tram line 16 (Statenkwartier - Wateringen)}}
|17={{RbE|17|#01529A|mo=Haage Tram line 17 (Den Haag CS - Wateringen)}}
|19={{RbE|19|#00A78F|mo=Haage Tram line 19 (Leidschendam Leidsenhage - Delft Station)}}
}}
| denver={{#switch: {{lc: {{{2}}} }}
|a={{RbE|A|#57C0E8}}
|b={{RbE|B|#4D9C2D}}
|c={{RbE|C|#F79239}}
|d={{RbE|D|#008348}}
|e={{RbE|E|#552683}}
|f={{RbE|F|#EE3E33}}
|g={{RbE|G|#F6B221}}
|h={{RbE|H|#0075BF}}
|l={{RbE|L|#FFCD00}}
|n={{RbE|N|#9F26B4}}
|r={{RbE|R|#C3D500}}
|w={{RbE|W|#37B5A5}}
}}
| detroit={{#switch: {{lc: {{{2}}} }}
| dpm|detroit people mover={{RbE|DPM|#455F83}}
| qline|m-1={{RbE|QLINE|white|#EB1D00}}
}}
| dijon={{#switch: {{lc: {{{2}}} }}
|t1|1={{RbE|T 1|#d20e8c|mo=Dijon Tramway, Ligne 1 (DIJON Gare - QUETIGNY Centre)}}
|t2|2={{RbE|T 2|#d20e8c|mo=Dijon Tramway, Ligne 2 (DIJON Valmy - CHENÔVE Centre)}}
|l3|3={{RbE|L 3|#d20e8c|mo=Dijon, Liane 3 (Fontaine d'Ouche - Épirey Cap Nord)}}
|l4|4={{RbE|L 4|#d20e8c|mo=Dijon, Liane 4 (Marsanny Acti-Sud - Nation par Fontaine)}}
|l5|5={{RbE|L 5|#d20e8c|mo=Dijon, Liane 5 (Université - TALANT Dullin)}}
|l6|6={{RbE|L 6|#d20e8c|mo=Dijon, Liane 6 (Toison d'Or - Longvic)}}
|l7|7={{RbE|L 7|#d20e8c|mo=Dijon, Liane 7 (QUETIGNY Europe - CHEVIGNY)}}
}}
| dongguan={{#switch: {{lc: {{{2}}} }}
| 1={{RbE|1|#034EA2}}
| 2={{RbE|2|#ED1C24}}
| 3={{RbE|3|#FAA61A}}
| 4={{RbE|4|#00AB4E}}
}}
| donostialdea={{#switch: {{lc: {{{2}}} }}
| principal={{RbE|Principal|#22B3CE}}
| ramal a altza={{RbE|Ramal a Altza|#B3E61B}}
| donostia-bilbao euskotren={{RbE|Donostia-Bilbao|#0607DE}}
}}
| dortmund={{#switch: {{lc: {{{2}}} }}
| u41={{RbE|41|#FFE700|#A18080|mo=Stadtbahn Dortmund, Linie 41 (Brambauer Verkehrshof - Dortmund, Clarenberg)}}
| u42={{RbE|42|#FCB913|mo=Stadtbahn Dortmund, Linie 42 (DO-Grevel - Grotenbachstraße)}}
| u43={{RbE|43|#409387|mo=Stadtbahn Dortmund, Linie 43 (DO-Dorstfeld Betriebshof - DO-Wickede)}}
| u44={{RbE|44|#66A3B1|mo=Stadtbahn Dortmund, Linie 44 (Walbertstraße/Schulmuseum - Westfalenhütte)}}
| u45={{RbE|45|#EE1C23|mo=Stadtbahn Dortmund, Linie 45 (Fredenbaum - Westfalenhallen)}}
| u46={{RbE|46|#756FB3|mo=Stadtbahn Dortmund, Linie 46 (Brunnenstraße - Westfalenhallen)}}
| u47={{RbE|47|#8DC63E|mo=Stadtbahn Dortmund, Linie 47 (DO-Wilderfilde - DO-Aplerbeck)}}
| u49={{RbE|49|#F7ACBC|mo=Stadtbahn Dortmund, Linie 49 (Hafen - DO-Hacheney)}}
| h-bahn={{RbE|Hängebahn|#8A2223}}
}}
| dresden={{#switch: {{lc: {{{2}}} }}
|s1={{RbE|S1|#F36421|r=c|mo=S-Bahn Dresden, Linie 1 (Meißen-Triebischtal - Schöna}}
|s2={{RbE|S2|#B8282E|r=c|mo=S-Bahn Dresden, Linie 2 (Dresden Flughafen - Dresden Hbf - Pirna)}}
|s3={{RbE|S3|#ED0172|r=c|mo=S-Bahn Dresden, Linie 3 (Dresden Hbf - Tharandt - Freiberg)}}
|1|t1={{RbE|1|#E5002D|mo=Straßenbahn Dresden, Linie 1 (Prohlis - Leutewitz)}}
|2|t2={{RbE|2|#EA6032|mo=Straßenbahn Dresden, Linie 2 (Kleinzschachwitz - Gorblitz)}}
|3|t3={{RbE|3|#D9055A|mo=Straßenbahn Dresden, Linie 3 (Coschütz - Wilder Mann)}}
|4|t4={{RbE|4|#CA0226|mo=Straßenbahn Dresden, Linie 4 (Laubegast - Weinböhla)}}
|6|t6={{RbE|6|#FEDB03|black|mo=Straßenbahn Dresden, Linie 6 (Niedersedlitz - Wölfnitz)}}
|7|t7={{RbE|7|#A4023B|mo=Straßenbahn Dresden, Linie 7 (Weixdorf - Pennrich)}}
|8|t8={{RbE|8|#2B8D28|mo=Straßenbahn Dresden, Linie 8 (Hellerau - Südvorstadt)}}
|9|t9={{RbE|9|#99C053|black|mo=Straßenbahn Dresden, Linie 9 (Prohlis - Kaditz)}}
|10|t10={{RbE|10|#F5B500|black|mo=Straßenbahn Dresden, Linie 10 (Striesen - Messe Dresden)}}
|11|t11={{RbE|11|#BDD7A7|mo=Straßenbahn Dresden, Linie 11 (Bühlau - Zschertnitz)}}
|12|t12={{RbE|12|#00663E|black|mo=Straßenbahn Dresden, Linie 12 (Striesen - Leutewitz)}}
|13|t13={{RbE|13|#FCC400|black|mo=Straßenbahn Dresden, Linie 13 (Prohlis - Mickten - Kaditz)}}
|20|t20={{RbE|20|black|white|mo=Straßenbahn Dresden, Linie 20 (Messe Dresden (Ring))}}
|dsr|dresden suspention railway|schwebebahn={{RbE|Schwebebahn|#EAF1DF|black}}
|dfr|dresden funicular railway|standseilbahn={{RbE|Standseilbahn|#D8C96E|black}}
}}
| dublin={{#switch: {{lc: {{{2}}} }}
| north|n= {{RbE|N|#346b18|white|mo=Dublin Northern Commuter (Pearse - Dundalk)}}
| southeast|se= {{RbE|SE|#346b18|white|mo=Dublin Southeastern Commuter (Connolly - Wexford/Rosslare)}}
| southwest|sw= {{RbE|SW|#346b18|white|mo=Dublin Southwestern Commuter (Heuston - Kildare)}}
| west|w= {{RbE|W|#346b18|white|mo=Dublin Western Commuter (Pearse/Docklands - Longford)}}
| dart= {{RbE|DART|#f08900|white|mo=Dublin Area Rapid Transit (Greystones - Howth/Malahide)}}
| red= {{RbE|Red|red|mo=LUAS, Red Line (Tallaght - The Point | Saggart - Connolly)}}
| green= {{RbE|Green|green|mo=LUAS, Green Line (Broombridge - Bride's Glen)}}
| metrolink= {{RbE|Link|#1e90ff|white|mo=Dublin, MetroLink (Estuary - Charlemont)}}
}}
| dubai={{#switch: {{lc: {{{2}}} }}
| m1|red={{RbE|M1|#DC241F|black}}
| m2|green={{RbE|M2|#009530|black}}
| m3|purple={{RbE|M3|#9016B2|black}}
| m4|blue={{RbE|M4|#0354A6|black}}
| l1={{RbE|L1|#748477|black}}
| t1={{RbE|T1|#01a0b1|black}}
| t2={{RbE|T2|#800000|black}}
}}
| duisburg={{#switch: {{lc: {{{2}}} }}
| u79={{RbE|U79|#008080|mo=Stadtbahn Düsseldorf, Linie 79 (DU-Meiderich Bf - Duissern - Düsseldorf Hbf - D-Universität Ost/Botanischer Garten)}} <!--Should be equal to Dusseldorf|u79-->
| 901={{RbE|901|#009adf|mo=Stadtbahn Duisburg, Linie 901 (DU-Obermarxloh - Mülheim Hbf)}}
| 903={{RbE|903|#009adf|mo=Stadtbahn Duisburg, Linie 903 (Dinslaken Bf - Hüttenheim)}}
}}
| dusseldorf|duesseldorf={{#switch: {{lc: {{{2}}} }}
| u70={{RbE|U70|#00FFFF|mo=Stadtbahn Düsseldorf, Linie 70 (Hauptbahnhof - Krefeld Rheinstraße)}}
| u71={{RbE|U71|#00008B|mo=Stadtbahn Düsseldorf, Linie 71 (Rath - Benrath Betriebshof)}}
| u72={{RbE|U72|#00228B|mo=Stadtbahn Düsseldorf, Linie 72 (Ratingen Mitte - Hellriegelstraße)}}
| u73={{RbE|U73|#00448B|mo=Stadtbahn Düsseldorf, Linie 73 (Gerresheim - Universität Ost/Botanischer Garten)}}
| u74={{RbE|U74|#191970|mo=Stadtbahn Düsseldorf, Linie 74 (Holthausen - Lörick - Görgesheide)}}
| u75={{RbE|U75|#008B8B|mo=Stadtbahn Düsseldorf, Linie 75 (Eller - Neuss Hbf)}}
| u76={{RbE|U76|#4682B4|mo=Stadtbahn Düsseldorf, Linie 76 (Handelszentrum/Moskauer Straße - Krefeld)}}
| u77={{RbE|U77|#B0C4DE|mo=Stadtbahn Düsseldorf, Linie 77 (Holthausen - Am Seestern)}}
| u78={{RbE|U78|#66CDAA|mo=Stadtbahn Düsseldorf, Linie 78 (Hauptbahnhof - Merkur Spiel-Arena/Messe Nord)}}
| u79={{RbE|U79|#008080|mo=Stadtbahn Düsseldorf, Linie 79 (DU-Meiderich Bf - Duissern - Düsseldorf Hbf - D-Universität Ost/Botanischer Garten)}} <!--Should be equal to Duisburg|u79-->
| u80={{RbE|U80|#C0C0C0|mo=Stadtbahn Düsseldorf, Linie 80 (Hauptbahnhof - Merkur Spiel-Arena/Messe Nord)}}
| u81={{RbE|U81|#C0C0C0|mo=Stadtbahn Düsseldorf, Linie 81 (Neuss Hbf - Ratingen-West)}}
| u82={{RbE|U82|#C0C0C0|mo=Stadtbahn Düsseldorf, Linie 82 (Hauptbahnhof - Flughafen Terminal)}}
| u83={{RbE|U83|#00668B|mo=Stadtbahn Düsseldorf, Linie 83 (Gerresheim Krankenhaus - Benrath Betriebshof)}}
| dars|skytrain|h-bahn|hängebahn={{RbE|Hängebahn|#006E34}}
| 701={{RbE|701|#F2B30C|mo=Straßenbahn Düsseldorf, Linie 701 (DOME/Am Hülserhof - Merowingerstraße)}}
| 704={{RbE|704|#ED7418|mo=Straßenbahn Düsseldorf, Linie 704 (Merziger Straße - Universität Ost/Botanischer Garten)}}
| 705={{RbE|705|#9B2920|mo=Straßenbahn Düsseldorf, Linie 705 (Düsseldorf-Unterrath - Vennhauser Allee)}}
| 706={{RbE|706|#DC0F0F|mo=Straßenbahn Düsseldorf, Linie 706 (Düsseldorf-Hamm - Merowingerstraße)}}
| 707={{RbE|707|#EB0C8C|mo=Straßenbahn Düsseldorf, Linie 707 (Düsseldorf-Unterrath - Kesselstraße)}}
| 708={{RbE|708|#E51E5E|mo=Straßenbahn Düsseldorf, Linie 708 (Heinrichstraße - Polizeipräsidium)}}
| 709={{RbE|709|#A41189|mo=Straßenbahn Düsseldorf, Linie 709 (Gerresheim Krankenhaus - Theodor-Heuss-Platz)}}
}}
| edinburgh={{#switch: {{lc: {{{2|}}} }}
|1={{RbE|1|#8e0a25|mo=Edinburgh Trams, Line 1 (Newhaven - Edinburg Airport)}}
}}
| edmonton={{#switch: {{lc: {{{2|}}} }}
| capital={{RbE|Capital Line|#3A59A9}}
| metro={{RbE|Metro Line|#FC6357}}
| valley={{RbE|Valley Line|#009158}}
}}
| elblag|elbląg={{#switch:{{lc: {{{2}}} }}
|1={{RbE|1|#aa0000|mo=Elbląg Tramway, Line 1 (Druska - Ogólna)}}
|2={{RbE|2|#aa8800|mo=Elbląg Tramway, Line 2 (Druska - Marymoncka)}}
|3={{RbE|3|#552200|mo=Elbląg Tramway, Line 3 (Saperów - Ogólna)}}
|4={{RbE|4|#225500|mo=Elbląg Tramway, Line 4 (Druska - Ogólna)}}
|5={{RbE|5|#006680|mo=Elbląg Tramway, Line 5 (Saperów - Ogólna)}}
}}
| essen={{#switch: {{lc: {{{2}}} }}
| u11={{RbE|U11|#26247b|mo=Stadtbahn Essen, Linie 11 (GE-Horst, Buerer Straße - Essen, Messe West/Süd/Gruga)}}
| u17={{RbE|U17|#26247b|mo=Stadtbahn Essen, Linie 17 (Essen-Altenessen - Essen-Margarethenhöhe)}}
| u18={{RbE|U18|#26247b|mo=Stadtbahn Essen, Linie 18 (Essen - Mülheim/Ruhr Hbf)}}
| 101={{RbE|101|#00519E|mo=Straßenbahn Essen, Linie 101 (Borbeck Germaniaplatz - Helenenstraße)}}
| 103={{RbE|103|#00519E|mo=Straßenbahn Essen, Linie 103 (Dellwig Wertstraße - Essen Hbf - Steele)}}
| 104={{RbE|104|#00519E|mo=Straßenbahn Essen, Linie 104 (MH-Hauptfriedhof - Essen-Schönebeck)}}
| 105={{RbE|105|#00519E|mo=Straßenbahn Essen, Linie 105 (Frintrop Unterstraße - Rellinghausen Finefraustraße)}}
| 106={{RbE|106|#00519E|mo=Straßenbahn Essen, Linie 106 (Helenenstraße - Borbeck Germaniaplatz)}}
| 107={{RbE|107|#00519E|mo=Straßenbahn Essen, Linie 107 (Gelsenkirchen Hbf - E-Katernberg - Essen Hbf - Bredeney)}}
| 108={{RbE|109|#00519E|mo=Straßenbahn Essen, Linie 108 (Bredeney - Altenessen Bf)}}
| 109={{RbE|109|#00519E|mo=Straßenbahn Essen, Linie 109 (Frohnhausen Breilsort - Stelle)}}
}}
| euskotren={{#switch: {{lc: {{{2}}} }}
| e1={{RbE|E1|#2A7DB7}}
| 1d={{RbE|1D|#27A9E1}}
| 1k={{RbE|1K|#FFC10B}}
| 1t={{RbE|1T|#403F99}}
| e2={{RbE|E2|#BCBE00}}
| e3={{RbE|E3|#00A0E4}}
| e4={{RbE|E4|#2C2664}}
| e5={{RbE|E5|#9B8A7F}}
| fe={{RbE|FE|#000000}}
| e6={{RbE|E6|#DE2F31}}
| l3={{RbE|L3|#E2007A}}
| bilbao={{RbE|Bilbao|#7CC242|black}}
| ibaiondo={{RbE|Ibaiondo|#7CC242|black}}
| abetxuko={{RbE|Abetxuko|#C0C0C0|black}}
}}
| florence={{#switch: {{lc: {{{2}}} }}
| 1={{RbE|T1|red|mo=Firenze rete tranviaria, linea 1 (Villa Costanza - Careggi)}}
| 2={{RbE|T2|red|mo=Firenze rete tranviaria, linea 2 (Peretola Aeroporto - Unità)}}
}}
| foshan={{#switch: {{lc: {{{2}}} }}
| 1|guangfo={{RbE|Guangfo|#BED600}}
| 2={{RbE|2|#009900}}
| 3={{RbE|3|#0000FF}}
| nanhai={{RbE|Nanhai}}
| 4={{RbE|4|#FF00FF}}
| 5={{RbE|5|#FF6600}}
| 6={{RbE|6|#FFB81D}}
| 7={{RbE|7}}
| 8={{RbE|8}}
| 9={{RbE|9|#A25EB5}}
| 10={{RbE|10}}
| 11={{RbE|11|#6600CC}}
}}
| frankfurt|frankfurt am main={{#switch: {{lc: {{{2}}} }}
| 1|u1={{RbE|U1|#943439|mo=U-Bahn Frankfurt/Main, Linie 1 (Ginnheim - Südbahnhof)}}
| 2|u2={{RbE|U2|#5AAA52|mo=U-Bahn Frankfurt/Main, Linie 2 (Bad Homburg-Gonzenheim - Südbahnhof)}}
| 3|u3={{RbE|U3|#635DA5|mo=U-Bahn Frankfurt/Main, Linie 3 (Oberursel-Hohemark - Südbahnhof)}}
| 4|u4={{RbE|U4|#D669A5|mo=U-Bahn Frankfurt/Main, Linie 4 (Enkheim - Bockenheimer Warte)}}
| 5|u5={{RbE|U5|#4A794A|mo=U-Bahn Frankfurt/Main, Linie 5 (Preungesheim - Hauptbahnhof)}}
| 6|u6={{RbE|U6|#5286C6|mo=U-Bahn Frankfurt/Main, Linie 6 (Hausen - Ostbahnhof)}}
| 7|u7={{RbE|U7|#D69A39|mo=U-Bahn Frankfurt/Main, Linie 7 (Enkheim - Praunheim Heerstraße)}}
| 8|u8={{RbE|U8|#C77EB6|mo=U-Bahn Frankfurt/Main, Linie 8 (Riedbert - Südbahnhof)}}
| 9|u9={{RbE|U9|#FFDD00|black|mo=U-Bahn Frankfurt, Linie 9 (Ginnheim - Nieder-Eschbach)}}
| s1={{RbE|S1|#1888C0|r=c|mo=S-Bahn Rhein-Main, Linie 1 (Wiesbaden Hbf - Rödermark-Ober-Roden)}}
| s2={{RbE|S2|#BA282E|r=c|mo=S-Bahn Rhein-Main, Linie 2 (Niedernhausen (Taunus) - Dietzenbach Bhf)}}
| s3={{RbE|S3|#309C86|r=c|mo=S-Bahn Rhein-Main, Linie 3 (Bad Soden (Taunus) - Darmstadt Hbf)}}
| s4={{RbE|S4|#EBC53B|black|r=c|mo=S-Bahn Rhein-Main, Linie 4 (Kronberg (Taunus) - Langen - Dramstadt Hbf)}}
| s5={{RbE|S5|#79553B|r=c|mo=S-Bahn Rhein-Main, Linie 5 (Friedrichsdorf (Taunus) - Frankfurt Süd)}}
| s6={{RbE|S6|#CB7033|r=c|mo=S-Bahn Rhein-Main, Linie 6 (Friedberg (Hessen) - Frankfurt Süd)}}
| s7={{RbE|S7|#364C3E|r=c|mo=S-Bahn Rhein-Main, Linie 7 (Riedstadt-Goddelau - Frankfurt Hbf)}}
| s8={{RbE|S8|#97BD4D|r=c|mo=S-Bahn Rhein-Main, Linie 8 (Wiesbaden Hbf - Mainz Hbf - Offenbach Ost - Hanau Hbf)}}
| s9={{RbE|S9|#703079|r=c|mo=S-Bahn Rhein-Main, Linie 9 (Wiesbaden Hbf - Mainz-Kastel - Hanau Hbf)}}
| 11={{RbE|11|white|black|r=c|b=c|bcolor=#ff0000|mo=Straßenbahn Frankfurt/Main, Linie 11 (Höchst Zuckscherdtstraße - Fechenheim Schießhüttenstraße)}}
| 12={{RbE|12|white|black|r=c|b=c|bcolor=#ff0000|mo=Straßenbahn Frankfurt/Main, Linie 12 (Schwanheim Rheinlandstraße - Fechenheim Hugo-Junkers-Straße)}}
| 14={{RbE|14|white|black|r=c|b=c|bcolor=#ff0000|mo=Straßenbahn Frankfurt/Main, Linie 14 (Gallus Mönchhofstraße - Bornheim Ernst-May-Platz)}}
| 15={{RbE|15|white|black|r=c|b=c|bcolor=#ff0000|mo=Straßenbahn Frankfurt/Main, Linie 15 (Niederrad Haardtwaldplatz - Offenbach Stadtgrenze)}}
| 16={{RbE|16|white|black|r=c|b=c|bcolor=#ff0000|mo=Straßenbahn Frankfurt/Main, Linie 16 (Ginnheim - Offenbach Stadtgrenze)}}
| 17={{RbE|17|white|black|r=c|b=c|bcolor=#ff0000|mo=Straßenbahn Frankfurt/Main, Linie 17 (Rebstockbad - Neu-Isenburg Stadtgrenze)}}
| 18={{RbE|18|white|black|r=c|b=c|bcolor=#ff0000|mo=Straßenbahn Frankfurt/Main, Linie 18 (Preungesheim Gravensteiner Platz - Sachsenhausen Louisa Bahnhof)}}
| 19={{RbE|19|white|black|r=c|b=t|mo=Straßenbahn Frankfurt/Main, Linie 19 (Schwanheim Rheinlandstraße - Sachsenhausen Louisa Bahnhof)}}
| 20={{RbE|20|white|black|r=c|b=t|mo=Straßenbahn Frankfurt/Main, Linie 20 (Hauptbahnhof - Stadion Straßenbahn)}}
| 21={{RbE|21|white|black|r=c|b=c|bcolor=#ff0000|mo=Straßenbahn Frankfurt/Main, Linie 21 (Nied Kirche - Stadion Straßenbahn)}}
| ee={{RbE|EE|white|black|r=c|b=c|bcolor=#ff0000|mo=Straßenbahn Frankfurt/Main, Ebbelwei-Expreß (Zoo - Zoo)}}
}}
| fuzhou={{#switch: {{lc: {{{2}}} }}
| 1={{RbE|1|#EB212F}}
| 2={{RbE|2|#00643A}}
| 3={{RbE|3}}
| 4={{RbE|4}}
| 5={{RbE|5}}
| 6={{RbE|6|#34B345}}
| 7={{RbE|7}}
| 8={{RbE|8}}
| 9={{RbE|9}}
}}
| gdansk|danzig={{#switch:{{lc: {{{2}}} }}
| 2={{RbE|2|#aec905|r=e|mo=Gdansk Tramway, Line 2 (Łostowice Świętokrzyska - Oliwa)}}
| 3={{RbE|3|#e4007d|r=e|mo=Gdansk Tramway, Line 3 (Brzeźno - Chełm Witosa)}}
| 4={{RbE|4|#a51380|r=e|mo=Gdansk Tramway, Line 4 (Jelitkowo - Łostowice Świętokrzyska)}}
| 5={{RbE|5|#edb300|r=e|mo=Gdansk Tramway, Line 5 (Jelitkowo - Nowy Port (Oliwska))}}
| 6={{RbE|6|#009de2|r=e|mo=Gdansk Tramway, Line 6 (Łostowice Świętokrzyska - Jelitkowo)}}
| 7={{RbE|7|#937d61|r=e|mo=Gdansk Tramway, Line 7 (Łostowice Świętokrzyska - Nowy Port (Oliwska))}}
| 8={{RbE|8|#e2000f|r=e|mo=Gdansk Tramway, Line 8 (Jelitkowo - Stogi Pasanil / Stogi Plaża)}}
| 9={{RbE|9|#1e4c8e|r=e|mo=Gdansk Tramway, Line 9 (Strzyża PKM - Przeróbka )}}
|10={{RbE|10|#4b371b|r=e|mo=Gdansk Tramway, Line 10 (Brętowo PKM - Zajezdnia Nowy Port / Nowy Port (Góreckiego)}}
|11={{RbE|11|#a82322|r=e|mo=Gdansk Tramway, Line 11 (Chełm Witosa - Strzyża PKM)}}
|12={{RbE|12|#ee7c00|r=e|mo=Gdansk Tramway, Line 12 (Lawendowe Wzgórze - Oliwa)}}
}}
| geneva={{#switch: {{lc: {{{2}}} }}
| 2={{RbE|2|#D6E63A|black}}
| 3={{RbE|3|#A13B96}}
| 6={{RbE|6|#4392D6}}
| 7={{RbE|7|#3BAA1B}}
| 10={{RbE|10|#1C753C}}
| 12={{RbE|12|#FF8B00|black}}
| 14={{RbE|14|#0B2161}}
| 15={{RbE|15|#996633}}
| 18={{RbE|18|#A901DB}}
| 19={{RbE|19|#F6ED00|black}}
}}
| genoa|genova={{RbE|M|red|mo=Metropolitana di Genova (Brin - Brignole)}}
| ghent={{#switch: {{lc: {{{2}}} }}
|1={{RbE|1|#ff291e|r=e|mo=Ghent tram line 1 (Flanders Expo - Evergem Brielken)}}
|2={{RbE|2|#ffc734|black|r=e|mo=Ghent tram line 2 (Zwijnaarde Bibliotheek - Melle Leeuw)}}
|4={{RbE|4|#36b64b|r=e|mo=Ghent tram line 4 (UZ Gent - Gentbrugge Moscou)}}
}}
| gmunden={{#switch: {{lc: {{{2}}} }}
|#default|g={{RbE|G|#0049FF}}
}}
| goldcoast= {{#switch: {{lc: {{{2}}} }}
|railway={{RbE|GC|#ffc425|black|mo=Gold Coast railway line}}
|glink={{RbE|G:link|#ffcd1e|black|mo=G:link Gold Coast Light Rail}}
|sunshinecoast={{RbE|SC|mo=Sunshine Coast Light Rail}}
}}
| gorzowwielkopolski|gorzówwielkopolski={{#switch:{{lc: {{{2}}} }}
|1={{RbE|1|red|r=e|mo=Gorzów Wielkopolski Tramway, Line 1 (Wieprzyce - Silwana)}}
|2={{RbE|2|red|r=e|mo=Gorzów Wielkopolski Tramway, Line 2 (Wieprzyce - Piaski}}
|3={{RbE|3|red|r=e|mo=Gorzów Wielkopolski Tramway, Line 3 (Piaski - Silwana)}}
|4={{RbE|4|red|r=e|mo=Gorzów Wielkopolski Tramway, Line 4 (Dworzec Głowny - Silwana)}}
|5={{RbE|5|red|r=e|mo=Gorzów Wielkopolski Tramway, Line 5 (Dworzec Głowny - Piaski)}}
}}
| gotransit|got={{#switch: {{lc: {{{2}}} }}
| lakeshorewest={{RbE|Lakeshore West|#98002E}}
| milton={{RbE|Milton|#F58025}}
| kitchener={{RbE|Kitchener|#00853F}}
| barrie={{RbE|Barrie|#003768}}
| richmondhill={{RbE|Richmond Hill|#009AC7}}
| stouffville={{RbE|Stouffville|#794400}}
| lakeshoreeast={{RbE|Lakeshore East|#EE3124}}
| union pearson express|upe={{RbE|Union Pearson Express|#948A4C}}
}}
| graz={{#switch: {{lc: {{{2}}} }}
| 1={{RbE|1|#009fdd|mo=Graz Straßenbahnlinie 1: Eggenberg/UKH - Mariatrost}}
| 3={{RbE|3|#73b324|mo=Graz Straßenbahnlinie 3: Laudongasse - Krenngasse}}
| 4={{RbE|4|#dda32c|mo=Graz Straßenbahnlinie 4: Andritz - Liebenau/Murpark}}
| 5={{RbE|5|#89492b|mo=Graz Straßenbahnlinie 5: Andritz - Puntigam}}
| 6={{RbE|6|#005d35|mo=Graz Straßenbahnlinie 6: Laundongasse - St. Peter}}
| 7={{RbE|7|#f39300|mo=Graz Straßenbahnlinie 7: Wetzeldorf - LKH Med Uni/Klinikum Nord}}
|13={{RbE|13|#a660a4|mo=Graz Straßenbahnlinie 13: Krenngasse - Liebenau/Murpark}}
|20={{RbE|20|#ff2924|mo=Graz Straßenbahnlinie 20: Jakominiplatz - Laudongasse}}
|26={{RbE|26|#ce1013|mo=Graz Straßenbahnlinie 26: Jakominiplatz - St. Peter}}
}}
| grenoble={{#switch: {{lc: {{{2}}} }}
| a={{RbE|A|#137dbf|r=c|mo=Tramway de Grenoble, Ligne A (Fontaine, La Poya - Pont-de-Claix, L'Étoile)}}
| b={{RbE|B|#00a84f|r=c|mo=Tramway de Grenoble, Ligne B (Oxford - Gières, Plaine des Sports)}}
| c={{RbE|C|#d75496|r=c|mo=Tramway de Grenoble, Ligne C (Seyssins, Le Prisme - Saint-Martin-d'Hères, Condilac/Universités)}}
| d={{RbE|D|#f49e00|r=c|mo=Tramway de Grenoble, Ligne D (Saint-Martin-d'Hères, Les Taillées/Universités - Saint-Martin-d'Hères, Étienne Grappe)}}
| e={{RbE|E|#5c358c|r=c|mo=Tramway de Grenoble, Ligne E (Fontanil-Cornilon, Palluel - Louise Michel)}}
|c1={{RbE|C1|#fff101|black|mo=Genoble Chrono, Ligne 1 (Cité Jean Macé - Meylan, Maupertuis)}}
|c2={{RbE|C2|#ffd148|black|mo=Genoble Chrono, Ligne 2 (Louise Michel - Claix, Pont Rouge)}}
|c3={{RbE|C3|#f79727|black|mo=Genoble Chrono, Ligne 3 (Échirolles, Centre de Graphisme - Victor Hugo)}}
|c4={{RbE|C4|#fed105|black|mo=Genoble Chrono, Ligne 4 (Eybens, Le Verderet - Victor Hugo)}}
|c5={{RbE|C5|#fbb033|black|mo=Genoble Chrono, Ligne 5 (Gières, Universités - Palais de Justice-Gare)}}
|c6={{RbE|C6|#fff101|black|mo=Genoble Chrono, Ligne 6 (Saint-Martin-d'Hères, Henri Wallon - Oxford)}}
|c7={{RbE|C7|#fadd02|black|mo=Genoble Chrono, Ligne 7 (Échirolles, Comboire - Gières, Universités)}}
|12={{RbE|12|#00a94e|mo=Genoble Proximo, Ligne 12 (Eybens, Maisons Neuves - Saint-Martin-d'Hères, Les Alloves)}}
|13={{RbE|13|#1dbcb8|mo=Genoble Proximo, Ligne 13 (Poisat, Prémol, Meylan, Lycée du Grésivaudan)}}
|14={{RbE|14|#bdcc26|mo=Genoble Proximo, Ligne 14 (Chavant - Gières, Gare-Universités)}}
|15={{RbE|15|#61c29c|mo=Genoble Proximo, Ligne 15 (Verdun-Préfecture - Domène, Les Arnauds/Domène)}}
|16={{RbE|16|#679ac8|mo=Genoble Proximo, Ligne 16 (Pont-de-Claix, Gendarmerie - Corenc, Montfluery)}}
|19={{RbE|19|#679ac8|mo=Genoble Proximo, Ligne 19 (Syssinet-Pariset, Village - Sassenage, L'Ovalie)}}
|20={{RbE|20|#2cbdd8|mo=Genoble Proximo, Ligne 20 (Syssinet-Pariset, Hôtel de Ville - Veurey-Voroize, La Rive)}}
|21={{RbE|21|#2cbdd8|mo=Genoble Proximo, Ligne 21 (Claix, Pont Rouge - Seyssins, Le Prisme)}}
|22={{RbE|22|#2cbdd8|mo=Genoble Proximo, Ligne 22 (Saint-Égrève, Gare - Oxford)}}
|23={{RbE|23|#009ede|mo=Genoble Proximo, Ligne 23 (Saint-Martin-d'Hères, Sciences Sociales - Vizille, Le Péage)}}
|25={{RbE|25|#95c11f|mo=Genoble Proximo, Ligne 25 (Le Gua, les Saillants - Colonel Dumont)}}
|26={{RbE|26|#329fc7|mo=Genoble Proximo, Ligne 26 (Le Gua, Les Saillants - Gares)}}
}}
| grudziądz|grudziadz={{#switch:{{lc: {{{2}}} }}
|1={{RbE|1|red|r=e|mo=Grudziądz Tramway, Line 1 (Dworzec Kolejowy - Tarpno)}}
|2={{RbE|2|yellow|black|r=e|mo=Grudziądz Tramway, Line 2 (Tarpno - Rządz)}}
|3={{RbE|3|blue|black|r=e|mo=Grudziądz Tramway, Line 3 (Dworzec kolejowy - Rządz)}}
}}
| gothenburg|göteborg={{#switch: {{lc: {{{2}}} }}
| 1 ={{RbE|1|white|#01abe9|r=e|mo=Gothenburg tram 1: Tynnered - Östra Sjukhuset}}
| 2 ={{RbE|2|#fedc00|#01abe9|r=e|mo=Gothenburg tram 2: Högsbotorp - Mölndal}}
| 3 ={{RbE|3|#006eb9|r=e|mo=Gothenburg tram 3: Marklandsgatan - Kålltorp}}
| 4 ={{RbE|4|#029254|r=e|mo=Gothenburg tram 4: Mölndal - Angered}}
| 5 ={{RbE|5|#e82835|r=e|mo=Gothenburg tram 5: Östra Sjukhuset - Länmansgården}}
| 6 ={{RbE|6|#f49408|#01abe9|r=e|mo=Gothenburg tram 6: Länsmansgården - Kortedala}}
| 7 ={{RbE|7|#9e5600|r=e|mo=Gothenburg tram 7: Tynnered - Bergsjön}}
| 8 ={{RbE|8|#a9378e|r=e|mo=Gothenburg tram 8: Frölunda - Angered}}
| 9 ={{RbE|9|#80cdf4|#01abe9|r=e|mo=Gothenburg tram 9: Kungssten - Angered}}
| 10={{RbE|10|#d0de87|#01abe9|r=e|mo=Gothenburg tram 10: Guldheden - Eketrägatan/Biskopsgården}}
| 11={{RbE|11|#1b1a18|r=e|mo=Gothenburg tram 11: Saltholmen - Bergsjön}}
| 12={{RbE|12|#b3b3b3|#01abe9|r=e|mo=Gothenburg tram 12: Norra älvstranden}}
| 13={{RbE|13|#fdcf9d|#01abe9|r=e|mo=Gothenburg tram 13: Sahlgrenska - Brämaregården}}
| liseberg={{RbE|Liseberg|red|white|r=e|mo=Liseberg Line: Central Station - Liseberg - S:t Sigridsplan}}
| alependeln={{RbE|Ale|#27417a|mo=Alependeln: Gothenburg - Älvängen}}
| alingsaspendeln={{RbE|Alingsås|#27417a|mo=Alingsåspendeln: Gothenburg - Alingsås}}
| kungsbackapendeln={{RbE|Kungsbacka|#27417a|mo=Kungsbackapendeln: Gothenburg - Kungsbacka}}
}}
| guangzhou={{#switch: {{lc: {{{2}}} }}
| 1={{RbE|1|#F3CF45}}
| 2={{RbE|2|#0066A1}}
| 3={{RbE|3|#E9994A}}
| 4={{RbE|4|#008542}}
| 5={{RbE|5|#C30045}}
| 6={{RbE|6|#772059}}
| 7={{RbE|7|#77BC1F}}
| 8={{RbE|8|#008B95}}
| 9={{RbE|9|#6ECB98}}
| 10={{RbE|14|#85332D}}
| 12={{RbE|14|#85332D}}
| 13={{RbE|13|#918C10}}
| 14={{RbE|14|#85332D}}
| 15={{RbE|15|#B28978}}
| 16={{RbE|16|#A1662C}}
| 17={{RbE|17|#8C84D6}}
| 19={{RbE|19|#C227B9}}
| 20={{RbE|20|#D31176}}
| 23={{RbE|23}}
| guangfo={{RbE|Guangfo|#BED600}}
| apm={{RbE|APM|#00B9E4}}
}}
| guiyang={{#switch: {{lc: {{{2}}} }}
| 1={{RbE|1|#259B24}}
| 2={{RbE|2}}
| 3={{RbE|3}}
| 4={{RbE|4}}
}}
| hamburg={{#switch: {{lc: {{{2}}} }}
| u1={{RbE|U1|#0066FF|mo=U-Bahn Hamburg, Linie 1 (Norderstedt - Volksdorf / Ohlstedt / Großhansdorf)}}
| u2={{RbE|U2|#D71910|mo=U-Bahn Hamburg, Linie 2 (Niendorf Nord - Mümmelmannsberg)}}
| u3={{RbE|U3|#FFFF00|black|mo=U-Bahn Hamburg, Linie 3 (Barnmbek - Wandsbek-Gartenstadt)}}
| u4={{RbE|U4|#029189|mo=U-Bahn Hamburg, Linie 4 (Elbbrücken - Horner Rennbahn / Billstedt)}}
| s1={{RbE|S1|#009728|r=c|mo=S-Bahn Hamburg, Linie 1 (Wedel - Hamburg Airport / Poppenbüttel)}}
| s11={{RbE|S11|white|#009728|r=c|b=t|mo=S-Bahn Hamburg, Linie 11 (Blankenese - Ohlsdorf - Poppenbüttel)}}
| s2={{RbE|S2|white|#B50C36|r=c|b=t|mo=S-Bahn Hamburg, Linie 2 (Altona - Bergedorf)}}
| s21={{RbE|S21|#B50C36|r=c|mo=S-Bahn Hamburg, Linie 21 (Elbgaustraße - Aumühle)}}
| s3={{RbE|S3|#531b6e|r=c|mo=S-Bahn Hamburg, Linie 3 (Pinneberg - Stade)}}
| s31={{RbE|S31|#531b6e|r=c|mo=S-Bahn Hamburg, Linie 31 (Altona - Berliner Tor / Harburg-Rathaus - Neugraben)}}
}}
| hamilton|blast={{#switch: {{lc: {{{2}}} }}
| hsr=[[Berkas:BSicon BUS1.svg|{{{size|12}}}px|link=]]
| b={{RbE|B|#3DA315}}
| l={{RbE|L|#FF9032}}
| a={{RbE|A|#0197FF}}
| s={{RbE|S|#01327F}}
| t={{RbE|T|#B6230A}}
}}
| hangzhou={{#switch: {{lc: {{{2}}} }}
| 1={{RbE|1|#FF0000}}
| 2={{RbE|2|#FF9900}}
| 3={{RbE|3|#FFCD05}}
| 4={{RbE|4|#00D800}}
| 5={{RbE|5|#0B7C9B}}
| 6={{RbE|6|#0000C0}}
| 7={{RbE|7|#63006C}}
| 8={{RbE|8|#E60012}}
| 9={{RbE|9|#CC6600}}
| 10={{RbE|10|#CCCC33}}
| 11={{RbE|11}}
| 12={{RbE|12}}
| 13={{RbE|13}}
| 14={{RbE|14}}
| lin'an={{RbE|Lin'an}}
| fuyang={{RbE|Fuyang}}
| shaoxing={{RbE|Shaoxing}}
}}
| hanover|hannover={{#switch: {{lc: {{{2}}} }}
|s1 ={{RbE|S1|#977AAE|r=c|mo=S-Bahn Hannover, Linie 1 (Minden - Haste)}}
|s2 ={{RbE|S2|#008439|r=c|mo=S-Bahn Hannover, Linie 2 (Nienburg - Haste)}}
|s21={{RbE|S21|#008439|r=c|mo=S-Bahn Hannover, Linie 21 (Hannover - Barsinghausen)}}
|s3 ={{RbE|S3|#E27FAB|r=c|mo=S-Bahn Hannover, Linie 3 (Hildesheim - Hannover)}}
|s4 ={{RbE|S4|#CD1076|r=c|mo=S-Bahn Hannover, Linie 4 (Hildesheim - Hannover - Bennemühlen)}}
|s5 ={{RbE|S5|#EFA100|r=c|mo=S-Bahn Hannover, Linie 5 (Paderborn - Hameln - Hannover Flughafen)}}
|s51={{RbE|S51|#EFA100|r=c|mo=S-Bahn Hannover, Linie 51 (Hameln - Seelze)}}
|s6 ={{RbE|S6|#0000CD|r=c|mo=S-Bahn Hannover, Linie 6 (Celle - Hannover)}}
|s7 ={{RbE|S7|#BCEE68|r=c|mo=S-Bahn Hannover, Linie 7 (Celle - Hannover)}}
|s8 ={{RbE|S8|#87CEFF|r=c|mo=S-Bahn Hannover, Linie 8 (Hannover Flughafen - Hannover Messe/Laatzen)}}
|1 ={{RbE|1|white|black|b=c|bcolor=#ff0000|mo=Stadtbahn Hannover, Linie 1 (Langenhagen - Sarstedt)}}
|2 ={{RbE|2|white|black|b=c|bcolor=#ff0000|mo=Stadtbahn Hannover, Linie 2 (Alte Heide - Rethen)}}
|3 ={{RbE|3|white|black|b=c|bcolor=#0000ff|mo=Stadtbahn Hannover, Linie 3 (Altwarmbüchen - Wettbergen)}}
|4 ={{RbE|4|white|black|b=c|bcolor=#ffa500|mo=Stadtbahn Hannover, Linie 4 (Garbsen - Roderbruch)}}
|5 ={{RbE|5|white|black|b=c|bcolor=#ffa500|mo=Stadtbahn Hannover, Linie 5 (Stöcken - Anderten)}}
|6 ={{RbE|6|white|black|b=c|bcolor=#ffa500|mo=Stadtbahn Hannover, Linie 6 (Nordhafen - Messe/Ost)}}
|7 ={{RbE|7|white|black|b=c|bcolor=#0000ff|mo=Stadtbahn Hannover, Linie 7 (Misburg - Wettbergen)}}
|8 ={{RbE|8|white|black|b=c|bcolor=#ff0000|mo=Stadtbahn Hannover, Linie 8 (Dragonerstraße - Hauptbahnhof - Messe/Nord)}}
|9 ={{RbE|9|white|black|b=c|bcolor=#0000ff|mo=Stadtbahn Hannover, Linie 9 (Fasanenkrug - Empelde)}}
|10={{RbE|10|white|black|b=c|bcolor=#008000|mo=Stadtbahn Hannover, Linie 10 (Ahlem - Hauptbahnhof)}}
|10b={{RbE|<s>10</s>|white|black|b=c|bcolor=#008000|mo=Stadtbahn Hannover, Linie 10B (Ahlem - Hauptbahnhof)}}
|11={{RbE|11|white|black|b=c|bcolor=#ffa500|mo=Stadtbahn Hannover, Linie 11 (Haltenhoffstraße - Zoo)}}
|16={{RbE|16|#c0c0c0|black|b=c|bcolor=#ffa500|mo=Stadtbahn Hannover, Linie 16 (Königsworther Platz - Messe/Ost)}}
|17={{RbE|17|white|black|b=c|bcolor=#008000|mo=Stadtbahn Hannover, Linie 17 (Hauptbahnhof/DOB - Wallensteinstraße)}}
|18={{RbE|18|#c0c0c0|black|b=c|bcolor=#ff0000|mo=Stadtbahn Hannover, Linie 18 (Hauptbahnhof - Messe/Nord)}}
}}
| harbin={{#switch: {{lc: {{{2}}} }}
| 1={{RbE|1|#E61515}}
| 2={{RbE|2|#660099}}
| 3={{RbE|3|#FFAA00}}
| 4={{RbE|4|#339966}}
| 5={{RbE|5|#0099CC}}
| 6={{RbE|6}}
| 7={{RbE|7}}
| 8={{RbE|8}}
| 9={{RbE|9}}
| 10={{RbE|10|#003366}}
}}
| hefei={{#switch: {{lc: {{{2}}} }}
| 1={{RbE|1|#FF0000}}
| 2={{RbE|2|#3366FF}}
| 3={{RbE|3|#008000}}
| 4={{RbE|4|#FF8C00}}
| 5={{RbE|5|#ADFF2F}}
}}
| helsinki|tampere={{#switch: {{lc: {{{2}}} }}
|m1 ={{RbE|M1|#ff6600|mo=Helsinki Metro, Line M1 (Vuosaari – Matinkylä)}}
|m2 ={{RbE|M2|#ff6600|mo=Helsinki Metro, Line M2 (Mellunmäki – Tapiola)}}
|m2m={{RbE|M2M|#ff6600|mo=Helsinki Metro, Line M2M (Mellunmäki – Matinkylä)}}
|1 ={{RbE|1|#00b4e5|mo=Helsinki Tramline 1 (Eira - Käpylä)}}
|2 ={{RbE|2|#65b32e|mo=Helsinki Tramline 2 (Olympia Terminal - Pasila)}}
|3 ={{RbE|3|#007fc1|mo=Helsinki Tramline 3 (Olympia Terminal - Meilahti)}}
|4 ={{RbE|4|#e61657|mo=Helsinki Tramline 4 (Katajanokka - Munkkiniemi)}}
|5 ={{RbE|5|#706f6f|mo=Helsinki Tramline 5 (Katajanokka Ferry Terminal - Central Station)}}
|6 ={{RbE|6|#009757|mo=Helsinki Tramline 6 (Hietalahti - Arabia)}}
|6t={{RbE|6T|#009757|mo=Helsinki Tramline 6T (West Harbour - Arabia)}}
|7 ={{RbE|7|#d5007f|mo=Helsinki Tramline 7 (West Harbour - Pasila)}}
|8 ={{RbE|8|#7f5ca3|mo=Helsinki Tramline 8 (Jätkäsaari - Arabia)}}
|9 ={{RbE|9|#f19ec4|mo=Helsinki Tramline 9 (Jätkäsaari - Pasila Station)}}
|10={{RbE|10|#fbb800|mo=Helsinki Tramline 10 (Kirurgi - Pikku Huopalahti)}}
|a={{RbE|A|#018a0a|r=c|mo=Helsinki commuter rail, line A (Helsinki - Leppävaara)}}
|d={{RbE|D|#035eb9|r=c|mo=Helsinki commuter rail, line D (Helsinki - Riihimäki)}}
|e={{RbE|E|#018a0a|r=c|mo=Helsinki commuter rail, line E (Helsinki - Masala)}}
|g={{RbE|G|#035eb9|r=c|mo=Helsinki commuter rail, line G (Riihimäki - Lahti)}}
|i|p={{RbE|I/P|#fea622|r=c|mo=Helsinki commuter rail, line I/P (Helsiki - Helsinki)}}
|k={{RbE|K|#035eb9|r=c|mo=Helsinki commuter rail, line K (Helsinki - Kerava)}}
|l={{RbE|L|#018a0a|r=c|mo=Helsinki commuter rail, line L (Helsinki - Kirkkonummi)}}
|m={{RbE|M|#fea622|r=c|mo=Tampere commuter rail, line M (Nokia - Tampere - Toijala)}}
|n={{RbE|N|#035eb9|r=c|mo=Helsinki commuter rail, line N (Helsinki - Kerava)}}
|r={{RbE|R|#035eb9|r=c|mo=Helsinki commuter rail, line R (Helsinki - Tampere)}}
|t={{RbE|T|#035eb9|r=c|mo=Helsinki commuter rail, line T (Helsinki - Riihimäki)}}
|u={{RbE|U|#018a0a|r=c|mo=Helsinki commuter rail, line U (Helsinki - Kirkkonummi)}}
|y={{RbE|Y|#018a0a|r=c|mo=Helsinki commuter rail, line Y (Helsinki - Siuntio)}}
|z={{RbE|Z|#e0071c|r=c|mo=Helsinki commuter rail, line Z (Helsinki - Lahti)}}
}}
| hongkong={{#switch: {{lc: {{{2}}} }}
|er|east rail={{RbE|East|#53b7e8|mo=Hong Kong MTR, East Rail line (Hung Hom - Lo Wu / Lok Ma Chau)}}
|mos|wr|tm|tuen ma={{RbE|Tuen Ma|#923011|mo=Hong Kong MTR, Tuen Ma line (Wu Kai Sha - Tuen Mun)}}
|tc|tung chung={{RbE|Tung Chung|#f7943e|mo=Hong Kong MTR, Tung Chung line (Hong Kong - Tung Chung)}}
|kt|kwun tong={{RbE|Kwun Tong|#00ab4e|mo=Hong Kong MTR, Kwun Tong line (Whampoa - Tiu Keng Leng)}}
|tw|tsuen wan={{RbE|Tsuen Wan|#ed1d24|mo=Hong Kong MTR, Tsuen Wan line (Central - Tsuen Wan)}}
|i|island={{RbE|Island|#007dc5|mo=Hong Kong MTR, Island line (Kennedy Town - Chai Wan)}}
|tko|tk|tseung kwan o={{RbE|Tseung Kwan O|#7d499d|mo=Hong Kong MTR, Tseung Kwan O line (North Point - Po Lam / LOHAS Park)}}
|dr|disneyland resort={{RbE|Disney|#f173ac|mo=Hong Kong MTR, Disneyland Resort line (Sunny Bay - Disneyland Resort)}}
|si|south island={{RbE|South Island|#c1cd23|mo=Hong Kong MTR, South Island line (Admirality - South Horizons)}}
|ae|airport express={{RbE|Airport|#00888a|mo=Hong Kong MTR, Airport Express (Hong Kong - AsiaWorld-Expo)}}
|505={{RbE|505|#ff0000|mo=Hong Kong MTR Light Rail, line 505 (Sam Shing - Siu Hong)}}
|507={{RbE|507|#008000|mo=Hong Kong MTR Light Rail, line 507 (Tuen Mun Ferry Pier - Tin King)}}
|610={{RbE|610|#a52a2a|mo=Hong Kong MTR Light Rail, line 610 (Tuen Mun Ferry Pier - Yuen Long)}}
|614={{RbE|614|#00bfff|mo=Hong Kong MTR Light Rail, line 614 (Tuen Mun Ferry Pier - Yuen Long)}}
|615={{RbE|615|#ffff00|black|mo=Hong Kong MTR Light Rail, line 615 (Tuen Mun Ferry Pier - Yuen Long)}}
|705={{RbE|705|#9acd32|mo=Hong Kong MTR Light Rail, line 705 (Tin Shui Wai circle, anti-clockwise)}}
|706={{RbE|706|#d8bfd8|mo=Hong Kong MTR Light Rail, line 706 (Tin Shui Wai circle, clockwise)}}
|751={{RbE|751|#ffa500|mo=Hong Kong MTR Light Rail, line 751 (Yau Oi - Tin Yat)}}
|tram={{RbE|HKT|#c60000|mo=Hong Kong Tramways}}
|peak={{RbE|Peak Tram|#63b800|mo=Hong Kong Peak Tram (Garden Road - The Peak)}}
}}
| houston={{#switch: {{lc: {{{2}}} }}
|red={{RbE|N|#F9102E}}
|purple={{RbE|SE|#764268}}
|green={{RbE|EE|#72932B}}
|university|uni={{RbE|University|#11679A}}
|uptown={{RbE|Uptown|#B99764}}
}}
| innsbruck|insbruck={{#switch: {{lc: {{{2}}} }}
| a= {{RbE|A|#0067a6|mo=bus}}
| b= {{RbE|B|#a9a300|mo=bus}}
| c= {{RbE|C|#65c9ee|mo=bus}}
| f= {{RbE|F|#81168c|mo=bus}}
| h= {{RbE|H|#71a296|mo=bus}}
| j= {{RbE|J|#aa579b|mo=bus}}
| ld= {{RbE|LK|#c4aec6|mo=bus}}
| m= {{RbE|M|#d57a2f|mo=bus}}
| o= {{RbE|O|#663a00|mo=bus}}
| r= {{RbE|R|#ee6700|mo=bus}}
| t= {{RbE|T|#67a71a|mo=bus}}
| w= {{RbE|W|#059237|mo=bus}}
| 501={{RbE|501|#f4e405|mo=bus}}
| 502={{RbE|502|#f4e405|mo=bus}}
| 503={{RbE|503|#f4e405|mo=bus}}
| 504={{RbE|504|#f4e405|mo=bus}}
| 505={{RbE|505|#f4e405|mo=bus}}
| 590={{RbE|590|#f4e405|mo=bus}}
| 1= {{RbE|1|#a97e82|mo=Straßenbahnlinie 1: Bergisel - Mühlauer Brücke}}
| 2= {{RbE|2|#b44e69|mo=Straßenbahnlinie 2: J.-Kerschbaumer-Straße - Technik}}
| 3= {{RbE|3|#9e545f|mo=Straßenbahnlinie 3: Amras - Bürgerstraße - Amras}}
| 5= {{RbE|5|#845165|mo=Straßenbahnlinie 5: Schützenstraße - Technik West}}
| 6= {{RbE|6|#600721|mo=Straßenbahnlinie 6: Bergisel - Igls Bahnhof}}
| hbb={{RbE|HBB|#f27eaf|mo=Nordkettenbahn}}
| ts= {{RbE|TS|#eb030f|mo=Sightseer}}
| stb={{RbE|STB|#390412|mo=Stubaitalbahn: Fulpmes - Anichstraße}}
}}
| isleofwight={{#switch: {{lc: {{{2}}} }}
| vectis=[[Berkas:Southern Vectis diamond logo.PNG|{{{size|10}}}px|link=]]
| islandline={{RbE|Island|#1E90FF}}
}}
| istanbul={{#switch: {{lc: {{{2}}} }}
| marmaray={{RbE|Marmaray|#f9ff00|black|r=c|mo=Istanbul Suburban Railway, Marmaray line}}
| m1a={{RbE|M1<small>A</small>|#EF1C24|r=c|mo=Istanbul Metro, Line M1A (Yenikapı - Atatürk Airport)}}
| m1b={{RbE|M1<small>B</small>|#EF1C24|r=c|mo=Istanbul Metro, Line M1B (Yenikapı - Kirazlı}}
| m2={{RbE|M2|#0FA156|r=c|mo=Istanbul Metro, Line M2 (Yenikapı - Hacıosman)}}
| m3={{RbE|M3|#04A7E0|r=c|mo=Istanbul Metro, Line M3 (Kirazlı - Başakşehir)}}
| m4={{RbE|M4|#E91878|r=c|mo=Istanbul Metro, Line M4 (Kadıköy - Tavşantepe)}}
| m5={{RbE|M5|#682D66|r=c|mo=Istanbul Metro, Line M5 (Üsküdar - Çekmeköy)}}
| m6={{RbE|M6|#CAAB7A|r=c|mo=Istanbul Metro, Line M6 (Levent - Hisarüstü/Boğaziçi Üniversitesi)}}
| m7={{RbE|M7|#F490B2|r=c|mo=Istanbul Metro, Line M7 (Kabataş - Mahmutbey)}}
| m8={{RbE|M8|#3F7CC0|r=c|mo=Istanbul Metro, Line M8 (Bostancı - Dudullu)}}
| m9={{RbE|M9|#FCD205|r=c|mo=Istanbul Metro, Line M9 (Ataköy - Olimpiyat)}}
| m10={{RbE|M10|#60C9D9|r=c|mo=Istanbul Metro, Line M10 (Pendik - Sabiha Gökçen Airport)}}
| m11={{RbE|M11|#AC72A7|r=c|mo=Istanbul Metro, Line M11 (Gayrettepe - İstanbul Airport - Halkalı)}}
| m12={{RbE|M12|#D0D347|r=c|mo=Istanbul Metro, Line M12 (Göztepe - Ataşehir - Ümraniye)}}
| m13={{RbE|M13|#04AA4F|r=c|mo=Istanbul Metro, Line M13 (Hastane - Yenidoğan)}}
| t1={{RbE|T1|#004788|r=c|mo=Istanbul Tram, Line 1 (Kabataş - Bağcılar)}}
| t2={{RbE|T2|#91ada1|r=c|mo=Istanbul Historic Tram, Line2 (Taksim - Tünel)}}
| t3={{RbE|T3|#9c5427|r=c|mo=Istanbul Historic Tram, Line 3 (Kadıköy - Moda)}}
| t4={{RbE|T4|#ff803e|r=c|mo=Istanbul Tram, Line 4 (Topkapı - Mescid-i Selam)}}
| t5={{RbE|T5|#7d73b4|r=c|mo=Istanbul Tram, Line 5 (Eminönü - Alibeyköy Cep Otogarı)}}
| f1={{RbE|F1|#7B755A|r=c}}
| f2={{RbE|F2|#7B755A|r=c}}
| f3={{RbE|F3|#7B755A|r=c}}
| f4={{RbE|F4|#7B755A|r=c}}
| tf={{RbE|Tf|#349199|r=c}}
| 34|metrobus={{RbE|34|#21337a|mo=Istanbul Metrobus (Söğütlüçeşme - Beylikdüzü Sondurak)}}
}}
| ismir={{#switch: {{lc: {{{2}}} }}
| m1={{RbE|M1|#1e3b85|mo=Ismir Metro, line 1 (Evka 3 - Fahrettin Altay)}}
| m2={{RbE|M2|#1e3b85|mo=Ismir Metro, line 2 (Üçyol - Çamlıkule)}}
| t1={{RbE|T1|#e20000|mo=Ismir Tramway, line 1 (Karşıyaka - Mavişehir)}}
| t2={{RbE|T2|#e20000|mo=Ismir Tramway, line 2 (Halkapınar - Fahrettin Altay)}}
| t3={{RbE|T3|#e20000|mo=Ismir Tramway, line 3 (Ataşehir - Pelit Sitesi)}}
| izbanac={{RbE|IZBAN (AC)|#11b200|mo=Istanbul Suburban Railway (IZBAN), Aliağa-Cumaovası railway}}
| izbanmt={{RbE|IZBAN (MT)|#11b200|mo=Istanbul Suburban Railway (IZBAN), Menemen-Tepeköy railway}}
| izbants={{RbE|IZBAN (TS)|#11b200|mo=Istanbul Suburban Railway (IZBAN), Tepeköy-Selçuk railway}}
| izbanch|izbançh={{RbE|IZBAN (ÇH)|#11b200|mo=Istanbul Suburban Railway (IZBAN), Çiğli-Halkapınar railway}}
}}
| jakarta={{#switch: {{lc: {{{2}}} }}
| mrt1|m1={{RbE|M1|#0354A6}}
| mrt2|m2={{RbE|M2|#009530}}
| lrt1|l1={{RbE|L1|#FF0000}}
| lrt2|l2={{RbE|L2|#9016B2}}
| lrt3|l3={{RbE|L3}}
| lrt4|l4={{RbE|L4}}
| lrt5|l5={{RbE|L5}}
| lrt6|l6={{RbE|L6}}
| lrt7|l7={{RbE|L7}}
| jakarta-bogor|jb={{RbE|Jakarta - Bogor|#FE1516}}
| loopline|ll={{RbE|Jakarta Loopline|#FFDF5B}}
| tanah abang-rangkasbitung|tar={{RbE|Tanah Abaing - Rangkasbitung|#81CC23}}
| jakarta-bekasi|jb={{RbE|Jakarta - Bekasi|#0066FF}}
| duri-tangerang|dt={{RbE|Duri - Tangerang|#803300}}
| tanjung priok|tp={{RbE|Tanjung Priok Line|#FFABAB}}
}}
| jeddah={{#switch: {{lc: {{{2}}} }}
| 1={{RbE|1|#0354A6}}
| 2={{RbE|2|#FF9A00}}
| 3={{RbE|3|#DC241F}}
}}
| kaohsiung={{#switch: {{lc: {{{2}}} }}
| red={{RbE|Red Line|#EA0437}}
| orange={{RbE|Orange Line|#FF8800}}
| circular={{RbE|Circular Light Rail|#00B14F}}
}}
| karlovy vary={{#switch: {{lc: {{{2}}} }}
| 1={{RbE|1|#3b3388|b=c|bcolor=black|mo=Karlovy Vary Bus Line 1: Globus - Lázně III}}
| 13={{RbE|13|#da181d|b=c|bcolor=black|mo=Karlovy Vary Bus Line 13: Stará Role Sídliště - Lanovka Imperial}}
| 18={{RbE|18|#c56e35|b=c|bcolor=black|mo=Karlovy Vary Bus Line 18: Dolní nádraží-Terminál - Garáže MHD}}
| 23={{RbE|23|#e0536d|b=c|bcolor=black|mo=Karlovy Vary Bus Line 23: Loket - Tržnice}}
| 3={{RbE|3|#a79dcf|b=c|bcolor=black|mo=Karlovy Vary Bus Line 3: Stará Role - Stará Kysibelská}}
| 6={{RbE|6|#2e9742|b=c|bcolor=black|mo=Karlovy Vary Bus Line 6: Doubí - Stará Kysibelská}}
}}
| karlsruhe={{#switch: {{lc: {{{2}}} }}
|s1 ={{RbE|S1|#00a76d|r=c|mo=Stadtbahn Karlsruhe, Linie 1 (Hochstetten - Bad Herrenalb)}}
|s11={{RbE|S11|#00a76d|r=c|mo=Stadtbahn Karlsruhe, Linie 11 (Hochstetten - Ittersbach)}}
|s2 ={{RbE|S2|#A065AB|r=c|mo=Stadtbahn Karlsruhe, Linie 2 (Spöck - Rheinstetten)}}
|s31={{RbE|S31|#04AA9C|r=c|mo=Stadtbahn Karlsruhe, Linie 31 (Karlsruhe Hbf - Odenheim)}}
|s32={{RbE|S32|#04AA9C|r=c|mo=Stadtbahn Karlsruhe, Linie 32 (Karlsruhe Hbf - Menzingen)}}
|s4 ={{RbE|S4|#9E184D|r=c|mo=Stadtbahn Karlsruhe, Linie 4 (Karlsruhe Hbf - Öhringen-Cappel)}}
|s41={{RbE|S41|#BED730|r=c|mo=Stadtbahn Karlsruhe, Linie 41 (Heilbronn - Mosbach)}}
|s42={{RbE|S42|#009EE0|r=c|mo=Stadtbahn Karlsruhe, Linie 42 (Heilbronn - Sinsheim)}}
|s5 ={{RbE|S5|#F69897|black|r=c|mo=Stadtbahn Karlsruhe, Linie 5 (Wörth Badepark - Pforzheim Hbf)}}
|s51={{RbE|S51|#F69897|black|r=c|mo=Stadtbahn Karlsruhe, Linie 51 (Germersheim - Pforzheim Hbf)}}
|s52={{RbE|S52|#F69897|black|r=c|mo=Stadtbahn Karlsruhe, Linie 52 (Germersheim - Karlsruhe Tullastraße)}}
|s6 ={{RbE|S6|#301747|r=c|mo=Stadtbahn Karlsruhe, Linie 6 (Pforzheim - Bad Wildbad)}}
|s7 ={{RbE|S7|#FFF200|black|r=c|mo=Stadtbahn Karlsruhe, Linie 7 (Achern - Karlsruhe Tullastraße)}}
|s71={{RbE|S71|#FFF200|black|r=c|mo=Stadtbahn Karlsruhe, Linie 71 (Achern - Karlsruhe Tullastraße)}}
|s8= {{RbE|S8|#6E692A|r=c|mo=Stadtbahn Karlsruhe, Linie 8 (Bondorf - Karlsruhe Tullastraße)}}
|s81={{RbE|S81|#6E692A|r=c|mo=Stadtbahn Karlsruhe, Linie 81 (Freudenstadt - Karlsruhe Hbf)}}
|s9 ={{RbE|S9|#FAB39B|black|r=c|mo=Stadtbahn Karlsruhe, Linie 9 (Bruchsal - Bretten)}}
|1|t1={{RbE|1|#ff0000|mo=Straßenbahn Karlsruhe, Linie 1 (Durlach Turmberg - Oberreut Badeniaplatz)}}
|2|t2={{RbE|2|#4169e1|mo=Straßenbahn Karlsruhe, Linie 2 (Wolfartsweier - Lasallestraße)}}
|3|t3={{RbE|3|#8b4513|mo=Straßenbahn Karlsruhe, Linie 3 (Tivoli - Neureut-Heide)}}
|4|t4={{RbE|4|#ffd700|black|mo=Straßenbahn Karlsruhe, Linie 4 (Europaviertel - Tivoli)}}
|5|t5={{RbE|5|#00bfff|mo=Straßenbahn Karlsruhe, Linie 5 (Rintheim - Rheinhafen)}}
|6|t6={{RbE|6|#9acd32|mo=Straßenbahn Karlsruhe, Linie 6 (Hirtenweg/Technologiepark - Daxlanden - Rappenwört)}}
|8|t8={{RbE|8|#ffa500|black|mo=Straßenbahn Karlsruhe, Linie 8 (Wolfartsweier - Durlach)}}
}}
| karnten|kärnten|cartinthia={{#switch: {{lc: {{{2}}} }}
|s1 |1 ={{RbE|S1|#0060b0|r=e|mo=Kärnten S-Bahnlinie 1: Lienz - Friesach}}
|s2 |2 ={{RbE|S2|#388577|r=e|mo=Kärnten S-Bahnlinie 2: Rosenbach - St. Veit an der Glan}}
|s3 |3 ={{RbE|S3|#f5831a|r=e|mo=Kärnten S-Bahnlinie 3: Weizelsdorf - Wolfsberg}}
|s4 |4 ={{RbE|S4|#ee1330|r=e|mo=Kärnten S-Bahnlinie 4: Villach - Hermagor}}
|s21|21={{RbE|S21|#388577|r=e|mo=Kärnten S-Bahnlinie 21: Jesenice - Villach}}
|s41|41={{RbE|S41|#ee1330|r=e|mo=Kärnten S-Bahnlinie 41: Villach - Boscoverde}}
}}
| katowice|uppersilesia={{#switch:{{lc: {{{2}}} }}
| 0={{RbE|0|mo=Konurbacja Górnośląska Tramways, Line 0 (Chorzów Stadion Śląski Pętla Zachodnia - Katowice Plac Wolności)}}
| 1={{RbE|1|#00d5ab|black|mo=Konurbacja Górnośląska Tramways, Line 1 (Gliwice Zajezdnia - Chebzie Pętla)}}
| 3={{RbE|3|#ffcd00|mo=Konurbacja Górnośląska Tramways, Line 3 (Makoszowy Pętla - Mikulczyce Pętla)}}
| 4={{RbE|4|#008166|mo=Konurbacja Górnośląska Tramways, Line 4 (Gliwice - Zajezdnia Zaborze Pętla (- Ruda Klary))}}
| 5={{RbE|5|#ff25d5|mo=Konurbacja Górnośląska Tramways, Line 5 (Zaborze Pętla - Bytom Plac Sikorskiego)}}
| 6={{RbE|6|#abdf88|black|mo=Konurbacja Górnośląska Tramways, Line 6 (Brynów Pętla - Bytom Szkoła Medyczna)}}
| 7={{RbE|7|#ff6600|mo=Konurbacja Górnośląska Tramways, Line 7 (Zawodzie Pętla - Bytom Plac Sikorskiego)}}
| 9={{RbE|9|#ff0000|mo=Konurbacja Górnośląska Tramways, Line 9 (Chorzów Rynek - Bytom Plac Sikorskiego)}}
|11={{RbE|11|#25ff25|black|mo=Konurbacja Górnośląska Tramways, Line 11 (Chebzie Pętla - Katowice Plac Miarki)}}
|13={{RbE|13|#0000d5|mo=Konurbacja Górnośląska Tramways, Line 13 (Katowice Plac Wolności - Siemianowice Plac Skargi)}}
|14={{RbE|14|#66ff00|black|mo=Konurbacja Górnośląska Tramways, Line 14 (Brynów Pętla - Mysłowice Dworzec PKP)}}
|15={{RbE|15|#d5ff25|mo=Konurbacja Górnośląska Tramways, Line 15 (Katowice Plac Wolności - Zagórze Pętla)}}
|16={{RbE|16|#1b7942|mo=Konurbacja Górnośląska Tramways, Line 16 (Brynów Pętla - Wełnowiec Plac Alfreda)}}
|17={{RbE|17|#8900ab|mo=Konurbacja Górnośląska Tramways, Line 17 (Chorzów Rynek - Chebzie Pętla)}}
|19={{RbE|19|#00ac42|mo=Konurbacja Górnośląska Tramways, Line 19 (Katowice Plac Wolności - Stroszek Zajezdnia)}}
|20={{RbE|20|#d5ac00|black|mo=Konurbacja Górnośląska Tramways, Line 20 (Chorzów Rynek - Szopienice Pętla)}}
|21={{RbE|21|#ffd525|black|mo=Konurbacja Górnośląska Tramways, Line 21 (Tworzeń Huta Katowice - Milowice Pętla)}}
|22={{RbE|22|#54d500|mo=Konurbacja Górnośląska Tramways, Line 22 (Czeladź Kombatantów - Tworzeń Huta Katowice)}}
|23={{RbE|23|mo=Konurbacja Górnośląska Tramways, Line 23 (Chorzów Stadion Śląski Pętla Zachodnia - Zawodzie Zajezdnia)}}
|24={{RbE|24|#d50000|mo=Konurbacja Górnośląska Tramways, Line 24 (Konstantynów Okrzei - Sosnowiec Dworzec PKP)}}
|26={{RbE|26|#ac4200|mo=Konurbacja Górnośląska Tramways, Line 26 (Mysłowice Dworzec PKP - Milowice Pętla)}}
|27={{RbE|27|#ac00d5|mo=Konurbacja Górnośląska Tramways, Line 27 (Pogoń Akademiki - Kazimierz Górniczy Pętla)}}
|28={{RbE|28|#0000ff|mo=Konurbacja Górnośląska Tramways, Line 28 (Osiedle Zamkowe Pętla - Gołonóg Podstacja Pętla)}}
|30={{RbE|30|#ac0089|mo=Konurbacja Górnośląska Tramways, Line 30 (Bytom Plac Sikorskiego - Biskupice Pętla)}}
|33={{RbE|33|mo=Konurbacja Górnośląska Tramways, Line 33 (Chorzów Stadion Śląski Pętla Zachodnia - Koszutka Słoneczna Pętla)}}
|36={{RbE|36|#42ac00|mo=Konurbacja Górnośląska Tramways, Line 36 (Brynów Pętla - Zawodzie Pętla)}}
|38={{RbE|38|#0054d5|mo=Konurbacja Górnośląska Tramways, Line 38 (Bytom Powstańców Śląskich - Bytom Kościół św. Trójcy)}}
|43={{RbE|43|#ac00d5|mo=Konurbacja Górnośląska Tramways, Line 43 (Koszutka Słoneczna Pętla - Chorzów Batory Zajezdnia)}}
|49={{RbE|49|#00541c|mo=Konurbacja Górnośląska Tramways, Line 49 (Bytom Plac Sikorskiego - Stroszek Zajezdnia)}}
}}
| kiev={{#switch: {{lc: {{{2}}} }}
| m1={{RbE|M1|#DD2515}}
| m2={{RbE|M2|#2581C4}}
| m3={{RbE|M3|#35AB52}}
| m4={{RbE|M4|#F0AB00}}
| m5={{RbE|M5|#00BFFF}}
| 1={{RbE|KLR 1|#EE1E26}}
| 2={{RbE|KLR 2|#FFBE2E}}
| unicular|фунікулер=[[Berkas:Kiev_Funicular_logo.svg|{{{size|16}}}px|link=]]
}}
| krakow|krakau={{#switch:{{lc: {{{2}}} }}
|1={{RbE|1|blue|mo=Krakow Tramway, Line 1 (Wzgórza Krzesławickie - Salwator)}}
|2={{RbE|2|blue|mo=Krakow Tramway, Line 2 (Salwator - Cmentarz Rakowicki)}}
|3={{RbE|3|blue|mo=Krakow Tramway, Line 3 (Nowy Bieżanów P+R - Krowodrza Górka)}}
|4={{RbE|4|blue|mo=Krakow Tramway, Line 4 (Wzgórza Krzesławickie - Bronowice Małe)}}
|5={{RbE|5|blue|mo=Krakow Tramway, Line 5 (Wzgórza Krzesławickie - Krowodrza Górka)}}
|6={{RbE|6|blue|mo=Krakow Tramway, Line 6 (Kurdwanów P+R - Cichy Wzgórza Krzesławickie)}}
|8={{RbE|8|blue|mo=Krakow Tramway, Line 8 (Borek Fałęcki - Bronowice Małe)}}
|9={{RbE|9|blue|mo=Krakow Tramway, Line 9 (Mistrzejowice - Nowy Bieżanów P+R)}}
|10={{RbE|10|blue|mo=Krakow Tramway, Line 10 (Pleszów - Łagiewniki)}}
|11={{RbE|11|blue|mo=Krakow Tramway, Line 11 (Mały Płaszów - Czerwone Maki P+R)}}
|13={{RbE|13|blue|mo=Krakow Tramway, Line 13 (Nowy Bieżanów - Bronowice)}}
|14={{RbE|14|blue|mo=Krakow Tramway, Line 14 (Mistrzejowice - Bronowice)}}
|16={{RbE|16|blue|mo=Krakow Tramway, Line 16 (Mistrzejowice - Bardosa)}}
|18={{RbE|18|blue|mo=Krakow Tramway, Line 18 (Czerwone Maki P+R - Krowodrza Górka)}}
|19={{RbE|19|blue|mo=Krakow Tramway, Line 19 (Borek Fałęcki - Dworzec Towarowy)}}
|20={{RbE|20|blue|mo=Krakow Tramway, Line 20 (Cichy Kącik - Mały Płaszów)}}
|21={{RbE|21|blue|mo=Krakow Tramway, Line 21 (Pleszów - Osiedle Piastów)}}
|22={{RbE|22|blue|mo=Krakow Tramway, Line 22 (Borek Fałęcki - Kopiec Wandy)}}
|24={{RbE|24|blue|mo=Krakow Tramway, Line 24 (Kurdwanów - Bronowice Małe)}}
|49={{RbE|49|blue|mo=Krakow Tramway, Line 49 (Nowy Bieżanów P+R - TAURON Arena Kraków Wieczysta)}}
|50={{RbE|50|red|mo=Krakow Fast Tram, Line 50 (Krowodrza Górka - Kurdwanów)}}
|52={{RbE|52|red|mo=Krakow Fast Tram, Line 52 (Czerwone Maki P+R - Osiedle Piastów)}}
}}
| kunming={{#switch: {{lc: {{{2}}} }}
| 1= {{RbE|1|#DB372B}}
| 2= {{RbE|2|#0000FF}}
| 3= {{RbE|3|#FE4998}}
| 6= {{RbE|6|#2C8195}}
}}
| kyoto={{#switch: {{lc: {{{2}}} }}
| k|karasuma|green={{RbE|K|#3CB371}}
| t|tozai|vermilion={{RbE|T|#FF4500}}
}}
| landskrona={{#switch: {{lc: {{{2}}} }}
|1={{RbE|1|#0eff0e|mo=Stadsbusslinje 1: Skeppsbron - Koppargården}}
|2={{RbE|2|#00b2ee|mo=Stadsbusslinje 2: V. Fäladen - Guldängen}}
|3={{RbE|3|#ff0e0e|mo=Stadsbusslinje 3: Stationen - Skeppsbron}}
|4={{RbE|4|black|mo=Stadsbusslinje 4: Borstahusen - Stationen}}
|5={{RbE|5|#ff8c00|mo=Stadsbusslinje 5: Borstahusen - Handelsområdet - Stationen}}
}}
| lehavre={{#switch: {{lc: {{{2}}} }}
|a={{RbE|A|#e41e25|mo=Tramway du Havre, Ligne A (La Plage - Hôpital Estuaire)}}
|b={{RbE|B|#00984e|mo=Tramway du Havre, Ligne B (La Plage - Pré Fleuri)}}
|1={{RbE|1|#318ce7|mo=Le Havre, Ligne Phare 1 (Sainte-Adresse - Montivilliers Gare)}}
|c2|2={{RbE|C2|#ed0000|mo=Le Havre, Chronolia (C2) (Perrey - Harfleur Place D'armes)}}
|3={{RbE|3|#1fa055|Le Havre, Ligne Phare 3 (Grand Hameau - Graville)}}
|4={{RbE|4|#ed7f10|Le Havre, Ligne 4 (Place Jenner - Perrey)}}
|5={{RbE|5|#d70c8c|Le Havre, Ligne 5 (Sainte-Adresse - Graville)}}
|6={{RbE|6|#ffff00|black|Le Havre, Ligne 6 (Grand Hameau - Gares)}}
|7={{RbE|7|#0131b4|Le Havre, Ligne 7 (Notre Dame - Parc de l'Estuaire)}}
|8={{RbE|8|#ed7f10|Le Havre, Ligne 8 (Gares - Soquence)}}
|9={{RbE|9|#9fc536|Le Havre, Ligne 9 (Gares - Montivilliers Gare)}}
|10={{RbE|10|#87e990|black|Le Havre, Ligne 10 (Montivilliers - Parc de l'Estuaire)}}
}}
| lemans={{#switch: {{lc: {{{2}}} }}
|t1|1={{RbE|T1|#e7342e|mo=Tramway du Mans, Ligne T1 (Université - Antarès-MMArena)}}
|t2|2={{RbE|T2|#1063ae|mo=Tramway du Mans, Ligne T2 (Bellevue-Hauts de Coulaines - Espal-Arche de la Nature)}}
|t3|3={{RbE|T3|#5eb349|mo=Le Mans, Ligne T3 (Gares - Alonnes-Bois Jolie)}}
|4={{RbE|4|#20a651|mo=Le Mans, Ligne 4 (Saint-Joseph/Saint-Georges - Bellevue-Hauts de Coulaines)}}
|5={{RbE|5|#fcbc06|black|mo=Le Mans, Ligne 5 (Gazonfier - Oasis-Centre des Expositions)}}
|6={{RbE|6|#c3057f|mo=Le Mans, Ligne 6 (Saint Martin - République)}}
|7={{RbE|7|#f07d1b|black|mo=Le Mans, Ligne 7 (Éperon Circulaire)}}
}}
| lille={{#switch: {{lc: {{{2}}} }}
|m1={{RbE|M1|#FFCD09|r=c|mo=Métro de Lille, Ligne 1 (CHR B. Calmette - Quatre Cantons)}}
|m2={{RbE|M2|#E30000|r=c|mo=Métro de Lille, Ligne 2 (Saint-Philibert - CH Dron)}}
|r ={{RbE|R|#00AE6D|r=c|mo=Tramway de Lille, Ligne R (Gare Lille Flandres - Roubaix Eurotéleport)}}
|t ={{RbE|T|#F79256|black|r=c|mo=Tramway de Lille, Ligne T (Gare Lille Flandres - Tourcoing-Centre)}}
|l1|1={{RbE|L1|#0066cc|mo=Lille, Liane 1 (Wambrechies Petit Paradis - Faches Centre Commercial)}}
|l2|2={{RbE|L2|#3399ff|mo=Lille, Liane 1 (Loos Les Oliveaux - Wattignies Centre Commercial)}}
|l3|3={{RbE|L3|#000066|mo=Lille, Liane 1 (Leers La Plaine - Wattrelos Quartier Beaulieu)}}
|l4|4={{RbE|L4|#0066cc|mo=Lille, Liane 1 (Hem Blanchisserie - Haullin Gounod)}}
|l6|6={{RbE|L6|#0066cc|mo=Lille, Liane 1 (Fort de Mons - Villeneuve d'Ascq Contrescarpe)}}
|l7|7={{RbE|L7|#000066|mo=Lille, Liane 1 (Porte des Postes - Faches Centre Commercial)}}
|l8|8={{RbE|L8|#3399ff|mo=Lille, Liane 1 (Tourcoing Risquons-Tout - Leers Centre Commercial)}}
}}
| linz={{#switch: {{lc: {{{2}}} }}
| 1={{RbE|1|#0000FF|mo=Linz Straßenbahnlinie 1: Universität - Auwiesen}}
| 2={{RbE|2|#810081|mo=Linz Straßenbahnlinie 2: Universität - solarCity}}
| 3={{RbE|3|#FF6600|mo=Linz Straßenbahnlinie 3: Landgutstraße - Trauner Kreuzung}}
| 4={{RbE|4|#FF0000|mo=Linz Straßenbahnlinie 4: Landgutstraße - Schloss Traun}}
|50={{RbE|50|#008000|mo=Linz Straßenbahnlinie 50: Hauptplatz - Pöstlingberg}}
}}
| lisboa |lisbon={{#switch: {{lc: {{{2}}} }}
| 12e|12={{RbE|12E|#ff7e00|r=c|mo=Lisbon Tramline 12 (Praça da Figueira - Miradouro de Santa Luzia)}}
| 15e|15={{RbE|15E|#ff0077|r=c|mo=Lisbon Tramline 15 (Praça da Figueira - Belém - Algés)}}
| 18e|018={{RbE|18E|#ff0077|r=c|mo=Lisbon Tramline 18 (Cais do Sodré - Cemitério da Ajuda)}}
| 24e|24={{RbE|24E|#ff7e00|r=c|mo=Lisbon Tramline 24 (Praça Luís de Camões - Campolide)}}
| 25e|25={{RbE|25E|#ff7e00|r=c|mo=Lisbon Tramline 25 (Rua Alfândega - Campo de Ourique)}}
| 28e|28={{RbE|28E|#ff7e00|r=c|mo=Lisbon Tramline 28 (Praça Martim Moniz - Graça - Estrela - Campo de Ourique)}}
| 51e={{RbE|51E|#ffd214|black|r=c}}
| 52e={{RbE|52E|#ffd214|black|r=c}}
| 53e={{RbE|53E|#ffd214|black|r=c}}
| 54e={{RbE|54E|#ffd214|black|r=c}}
| azul|blue={{RbE|Azul|#4E84C4|mo=Lisbon Metro, Linha Azul (Santa Apolónia - Reboleira)}}
| amarela|yellow={{RbE|Amarela|#FDB913|mo=Lisbon Metro, Linha Amarela (Rato - Odivelas)}}
| verde|green={{RbE|Verde|#00AAA6|mo=Lisbon Metro, Linha Verde (Cais do Sodré - Telheiras)}}
| vermelha|red={{RbE|Vermelha|#EE2B74|mo=Lisbon Metro, Linha Vermelha (São Sebastião - Aeroporto)}}
}}
| lodz={{#switch:{{lc: {{{2}}} }}
|1={{RbE|1|#7f2f8c|mo=Łódź Tramway, Line 1 (Dworzec Łódź Chojny – Doły)}}
|2={{RbE|2|#faa540|black|mo=Łódź Tramway, Line 2 (Dworzec Łódź Dąbrowa – Teofilów)}}
|3={{RbE|3|#faa540|black|mo=Łódź Tramway, Line 3 (Widzew Augustów – Marysin Warszawska)}}
|4={{RbE|4|#72bd51|mo=Łódź Tramway, Line 4 (Dworzec Łódź Dąbrowa – Helenówek)}}
|5={{RbE|5|#7f2f8c|mo=Łódź Tramway, Line 5 (Dworzec Łódź Żabieniec – Kurczaki)}}
|6={{RbE|6|#faa540|black|mo=Łódź Tramway, Line 6 (Kurczaki – Doły)}}
|7={{RbE|7|#faa540|black|mo=Łódź Tramway, Line 7 (Koziny - Cm. Zarzew)}}
|8={{RbE|8|#00abea|black|mo=Łódź Tramway, Line 8 (Cm. Zarzew – Kochanówka)}}
|9a={{RbE|9A|#72bd51|mo=Łódź Tramway, Line 9A (Olechów – Legionów)}}
|9b={{RbE|9B|#72bd51|mo=Łódź Tramway, Line 9B (Olechów – Zdrowie)}}
|10a={{RbE|10A|#00abea|black|mo=Łódź Tramway, Line 10A (Retkinia – Augustów)}}
|10b={{RbE|10B|#00abea|black|mo=Łódź Tramway, Line 10B (Retkinia – Olechów)}}
|11a={{RbE|11A|#faa540|black|mo=Łódź Tramway, Line 11A (Plac Niepodległości – Helenówek)}}
|11b={{RbE|11B|#faa540|black|mo=Łódź Tramway, Line 11B (Chocianowice-IKEA – Helenówek)}}
|12={{RbE|12|#72bd51|mo=Łódź Tramway, Line 12 (Retkinia – Stoki)}}
|13={{RbE|13|#72bd51|mo=Łódź Tramway, Line 13 (Dąbrowa Niższa – Teofilów)}}
|14={{RbE|14|#00abea|black|mo=Łódź Tramway, Line 14 (Karolew – Dworzec Łódź Dąbrowa)}}
|15={{RbE|15|#eb158a|mo=Łódź Tramway, Line 15 (Chojny Kurczaki – Stoki)}}
|16={{RbE|16|#eb158a|mo=Łódź Tramway, Line 16 (Chojny Kurczaki – Teofilów)}}
|17={{RbE|17|#eb158a|mo=Łódź Tramway, Line 17 (Telefoniczna Zajezdnia – Chocianowice-IKEA)}}
|18={{RbE|18|#72bd51|mo=Łódź Tramway, Line 18 (Telefoniczna Zajezdnia – Retkinia)}}
|41={{RbE|41|#eb158a|mo=Łódź Tramway, Line 41 (Plac Niepodległości – Pabianice)}}
|43a={{RbE|43A|#eb158a|mo=Łódź Tramway, Line 43A (Północna – Konstantynów Łódzki)}}
|43b={{RbE|43B|#eb158a|mo=Łódź Tramway, Line 43B (Północna – Lutomiersk)}}
|45={{RbE|45|#eb158a|mo=Łódź Tramway, Line 45 (Telefoniczna – Zgierz, Plac Kilińskiego)}}
|46={{RbE|46|#eb158a|mo=Łódź Tramway, Line 46 (Stoki – Ozorków)}}
}}
| london={{#switch: {{lc: {{{2}}} }}
| bakerloo={{RbE|BAK|#A45A2A|r=c|mo=London Underground: Bakerloo Line}}
| central={{RbE|CEN|#DA291C|r=c|mo=London Underground: Central Line}}
| circle={{RbE|CIR|#FFCD00|black|r=c|mo=London Underground: Circle Line}}
| district={{RbE|DIS|#007A33|r=c|mo=London Underground: District Line}}
| dlr={{RbE|DLR|#00B2A9|r=c|mo=Docklands Light Railway (DLR)}}
| hammersmith&city|h&c={{RbE|H&C|#E89CAE|black|r=c|mo=London Underground: Hammersmith and City Line}}
| jubilee={{RbE|JUB|#7C878E|r=c|mo=London Underground: Jubilee Line}}
| metropolitan={{RbE|MET|#840B55|r=c|mo=London Underground: Metropolitan Line}}
| northern={{RbE|NOR|#2D2926|r=c|mo=London Underground: Northern Line}}
| overground={{RbE|OGD|#E87722|r=c|mo=London Overground}}
| piccadilly={{RbE|PIC|#10069F|r=c|mo=London Underground: Piccadilly Line}}
| victoria={{RbE|VIC|#00A3E0|r=c|mo=London Underground: Victoria Line}}
| waterloo&city|w&c={{RbE|W&C|#6ECEB2|r=c|mo=London Underground: Waterloo and City Line}}
| roundel=[[Berkas:Underground.svg|{{{size|16}}}px|link=]]
| elmersend={{RbE|ELMS|#7CC242|r=c|mo=London tramline to Elmers' End}}
| beckenhamjunct={{RbE|BJCT|#7CC242|r=c|mo=London tramline to Beckenham Junction}}
| newaddington={{RbE|NADT|#3B7224|black|r=c|mo=London tramline to New Addington}}
| northlondon|north={{RbE|NLL|#EF7E08|black|r=c|mo=London Overground: North London Line}}
| westlondon|west={{RbE|WLL|#EF7E08|black|r=c|mo=London Overground: West London Line}}
| eastlondon|east={{RbE|ELL|#EF7E08|black|r=c|mo=London Overground: East London Line}}
| southlondon|south={{RbE|SLL|#EF7E08|black|r=c|mo=London Overground: South London Line}}
| watforddc={{RbE|WDC|#EF7E08|black|r=c|mo=London Overground: Watford DC Line}}
| gospeloakbarking={{RbE|GOB|#EF7E08|black|r=c|mo=London Overground: Gospel Oak to Barking Line}}
| crossrail={{RbE|Crossrail|#753BBD|r=c|mo=Crossrail}}
}}
| losangeles={{#switch: {{lc: {{{2}}} }}
| red={{RbE|Red|#ED151F}}
| purple={{RbE|Purple|#A05DA5}}
| blue={{RbE|Blue|#0072BC}}
| expo={{RbE|Expo|#23C1E9|black}}
| green={{RbE|Green|#6DC067}}
| gold={{RbE|Gold|#FCB90B}}
| orange={{RbE|Orange|#FF6600}}
| silver={{RbE|Silver|#CCCCCC|black}}
| crenshaw|lax={{RbE|Crenshaw/LAX|#0019A8}}
| 91|perris valley={{RbE|91|#56A0D3|black}}
| antelope valley={{RbE|Antelope Valley|#6CB33F}}
| ieoc={{RbE|IEOC|#DE396E|mo=Inland Empire–Orange County}}
| orange county={{RbE|Orange County|#F08B1D}}
| riverside={{RbE|Riverside|#652D89}}
| san bernardino={{RbE|San Bernardino|#893001}}
| ventura county={{RbE|Ventura County|#EEB111}}
| getty centre|monorail={{RbE|Monorail|white|black}}
}}
| lyon={{#switch: {{lc: {{{2}}} }}
|a ={{RbE|A|#ee3898|mo=Métro de Lyon, Ligne A (Perrache - Vaulx-en-Velin La Soie)}}
|b ={{RbE|B|#007dc5|mo=Métro de Lyon, Ligne B (Gare d'Oullins - Charpennes Charles Hernu)}}
|c ={{RbE|C|#f99d1d|mo=Métro de Lyon, Ligne C (Hôtel de Ville-Louis Pradel - Cuire)}}
|d ={{RbE|D|#00ac4d|mo=Métro de Lyon, Ligne D (Gare de Vaise - Gare de Vénissieux)}}
|f1 ={{RbE|F1|#8bc752|mo=Lyon, Funiculaire de Saint-Just}}
|f2 ={{RbE|F2|#8bc752|mo=Lyon, Funiculaire de Fourvière}}
|t1 ={{RbE|T1|#873f98|mo=Tramway de Lyon, Ligne T1 (Debourg - IUT-Feyssine)}}
|t2 ={{RbE|T2|#873f98|mo=Tramway de Lyon, Ligne T2 (Perrache - Saint-Priest Bel-Air)}}
|t3 ={{RbE|T3|#873f98|mo=Tramway de Lyon, Ligne T3 (Gare Part-Dieu - Les Panettes)}}
|t4 ={{RbE|T4|#873f98|mo=Tramway de Lyon, Ligne T4 (Hôpital Feyzin Vénissieux - La Doua Gaston Berger)}}
|t5 ={{RbE|T5|#873f98|mo=Tramway de Lyon, Ligne T5 (Grange Blanche - Parc du Chêne)}}
|t6 ={{RbE|T6|#873f98|mo=Tramway de Lyon, Ligne T6 (Debourg - Hôpital Est-Pinel)}}
|rhonexpress|rhoneexpress={{RbE|RX|#981a34|mo=Tramway de Lyon, Rhônexpress ()}}
|ter={{RbE|TER|white|#034EA2}}
|c1 ={{RbE|C1|#707070|mo=Trolleybus de Lyon, Ligne C1 (Gare Part-Dieu Vivier Merle - Cuire)}}
|c2 ={{RbE|C2|#707070|mo=Trolleybus de Lyon, Ligne C2 (Gare Part-Dieu Vivier Merle - Rillieux Semailles)}}
|c3 ={{RbE|C3|#707070|mo=Trolleybus de Lyon, Ligne C3 (Gare Saint-Paul - Vaulx-en-Velin La Grappinière)}}
|c4 ={{RbE|C4|#707070|mo=Trolleybus de Lyon, Ligne C4 (Cité Internationale - Centre de Congrès/Jean Macé)}}
|c5 ={{RbE|C5|#707070|mo=Bus majeure de Lyon, Ligne C5 (Cordeliers Rilleux - Semailles)}}
|c6 ={{RbE|C6|#707070|mo=Bus majeure de Lyon, Ligne C6 (Gare Part-Dieu Vivier Merle - Écully Le Pérollier)}}
|c7 ={{RbE|C7|#707070|mo=Bus majeure de Lyon, Ligne C7 (Gare Part-Dieu Vivier Merle - Hôpital Lyon Sud)}}
|c8 ={{RbE|C8|#707070|mo=Bus majeure de Lyon, Ligne C8 (Grange Blanche - Vaulx-en-Velin Résistance)}}
|c9 ={{RbE|C9|#707070|mo=Bus majeure de Lyon, Ligne C9 (Bellecour Antonin Poncet - Hôpital Est)}}
|c10={{RbE|C10|#707070|mo=Bus majeure de Lyon, Ligne C10 (Bellecour Antonin Poncet - Saint-Genis Barolles)}}
|c11={{RbE|C11|#707070|mo=Trolleybus de Lyon, Ligne C11 (Saxe Gambetta - Laurent Bonnevay-Astroballe)}}
|c12={{RbE|C12|#707070|mo=Bus majeure de Lyon, Ligne C12 (Bellecour Antonin Poncet - Hôpital Feyzin Vénissieux)}}
|c13={{RbE|C13|#707070|mo=Trolleybus de Lyon, Ligne C13 (Grange Blanche - Montessuy-Gutenberg)}}
|c14={{RbE|C14|#707070|mo=Trolleybus de Lyon, Ligne C14 (Jean Macé - Les Sources)}}
|c15={{RbE|C15|#707070|mo=Bus majeure de Lyon, Ligne C15 (Bachut Mairie du huitième - Laurent Bonnevay-Astroballe)}}
|c15e={{RbE|C15E|#707070|mo=Bus majeure de Lyon, Ligne C15E (Mermoz Pinel - Parrily Université Hippodrome)}}
|c16={{RbE|C16|#707070|mo=Bus majeure de Lyon, Ligne C16 (Charpennes Charles Hernu - Surville Route de Vienne)}}
|c17={{RbE|C17|#707070|mo=Bus majeure de Lyon, Ligne C17 (Charpennes Charles Hernu - Porte des Alpes)}}
|c18={{RbE|C18|#707070|mo=Trolleybus de Lyon, Ligne C18 (Hôtel de Ville-Louis Pradel - Croix-Rousse Nord)}}
|c19={{RbE|C19|#707070|mo=Bus majeure de Lyon, Ligne C19 (Perrache - Francheville Taffignon)}}
|c20={{RbE|C20|#707070|mo=Bus majeure de Lyon, Ligne C20 (Bellecour Le Viste - Francheville Taffignon)}}
|c20e={{RbE|C20E|#707070|mo=Bus majeure de Lyon, Ligne C20E (Bellecour Le Viste - Fort du Bruissin)}}
|c21={{RbE|C21|#707070|mo=Bus majeure de Lyon, Ligne C21 (Perrache - Gorge de Loup)}}
|c24={{RbE|C24|#707070|mo=Bus majeure de Lyon, Ligne C24 (Gorge de Loup - Craponne Val d'Yzeron)}}
|c24e={{RbE|C24E|#707070|mo=Bus majeure de Lyon, Ligne C24E (Gorge de Loup - Gymnase Eugène Catalon)}}
|c25={{RbE|C25|#707070|mo=Bus majeure de Lyon, Ligne C25 (Gare Part-Dieu Vivier Merle - Saint-Priest Plaine de Saythe)}}
|c26={{RbE|C26|#707070|mo=Bus majeure de Lyon, Ligne C26 (Cité Internationale Transbordeur - Grange Blanche)}}
|s1 ={{RbE|S1|white|#ee1c25|b=t|mo=Bus spécifique de Lyon, Ligne S1 (Gare Saint-Paul - Confluence Rambaud)}}
|s2 ={{RbE|S2|white|#ee1c25|b=t|mo=Bus spécifique de Lyon, Ligne S2 (La Tour de Salvagny Mairie Circulaire)}}
|s3 ={{RbE|S3|white|#ee1c25|b=t|mo=Bus spécifique de Lyon, Ligne S3 (Collonges Gare - Champagne Allée des Hêtres)}}
|s4 ={{RbE|S4|white|#ee1c25|b=t|mo=Bus spécifique de Lyon, Ligne S4 (Croix-Rousse Circulaire)}}
|s5 ={{RbE|S5|white|#ee1c25|b=t|mo=Bus spécifique de Lyon, Ligne S5 (Caluire Bords de Saône - Vieux Crépieux)}}
|s6 ={{RbE|S6|white|#ee1c25|b=t|mo=Trolleybus de Lyon, Ligne S6 (Hôtel de Ville Louis Pradel - Croix-Rousse)}}
|s7 ={{RbE|S7|white|#ee1c25|b=t|mo=Bus spécifique de Lyon, Ligne S7 (La Chaux École de Champlong Circulaire)}}
|s8 ={{RbE|S8|white|#ee1c25|b=t|mo=Bus spécifique de Lyon, Ligne S8 (Rillieux Victor Hugo - Crépieux Les Brosses)}}
|s9 ={{RbE|S9|white|#ee1c25|b=t|mo=Bus spécifique de Lyon, Ligne S9 (Saint-Genis Jean Giono - Moly)}}
|s10={{RbE|S10|white|#ee1c25|b=t|mo=Bus spécifique de Lyon, Ligne S10 (Joannès Carret - Lycée Jean Perrin)}}
|s11={{RbE|S11|white|#ee1c25|b=t|mo=Bus spécifique de Lyon, Ligne S11 (Gare de Vaise - Le Château Duchère)}}
|s12={{RbE|S12|white|#ee1c25|b=t|mo=Bus spécifique de Lyon, Ligne S12 (Hôtel de Ville Louis Pradel - Croix-Rousse)}}
|s14={{RbE|S14|white|#ee1c25|b=t|mo=Bus spécifique de Lyon, Ligne S14 (Neuville Circulaire)}}
|s15={{RbE|S15|white|#ee1c25|b=t|mo=Bus spécifique de Lyon, Ligne S15 (Écully Le Trouillat - Les Sources)}}
|s16={{RbE|S16|white|#ee1c25|b=t|mo=Bus spécifique de Lyon, Ligne S16 (Collonges Gare - Écully Le Pérollier)}}
|ge2={{RbE|GE2|white|#005496|b=t|mo=Lyon Gar'Express, Ligne 2 (Feyzin Gare - Solaize CRES)}}
|ge4={{RbE|GE4|white|#005496|b=t|mo=Lyon Gar'Express, Ligne 4 (La Tour de Salvagny Gare - Trechlid le Tronchon)}}
|ge6={{RbE|GE6|white|#005496|b=t|mo=Lyon Gar'Express, Ligne 6 (Charbonnières Gare Circulaire)}}
}}
| madrid={{#switch: {{lc: {{{2}}} }}
| 1={{RbE|1|#7CC4E9|mo=Metro line 1: Pinar de Chamartín - Valdecarros}}
| 2={{RbE|2|#FF0000|mo=Metro line 2: Las Rosas - Cuatro Caminos}}
| 3={{RbE|3|#FFE114|black|mo=Metro line 3: Villaverde Alto - Moncloa}}
| 4={{RbE|4|#814109|mo=Metro line 4: Argüelles - Pinar de Chamartín}}
| 5={{RbE|5|#96BF0D|mo=Metro line 5: Alameda de Osuna - Casa de Campo}}
| 6={{RbE|6|#9A9999|mo=Metro line 6: Circular}}
| 7={{RbE|7|#F96611|mo=Metro line 7: Hospital del Henares - Estadio Metropolitano - Pitis}}
| 8={{RbE|8|#F373B7|mo=Metro line 8: Nuevo Ministerios - Aeropuerto T4}}
| 9={{RbE|9|#990D66|mo=Metro line 9: Paco de Lucía - Puerta de Arganda - Arganda del Rey}}
| 10={{RbE|10|#1B0C80|mo=Metro line 10: Hospital Infanta Sofía - Tres Olivos - Puerta del Sur}}
| 11={{RbE|11|#136926|mo=Metro line 11: Plaza Elíptica - La Fortuna}}
| 12={{RbE|12|#999933|mo=Metro line 12: MetroSur}}
| ramal|r={{RbE|R|white|#2E208A|b=t|mo=Ramal: Ópera - Príncipe Pío}}
| ml1={{RbE|1|white|#3a7dda|b=t|mo=Metro Ligero 1: Pinar de Chamartín - Las Tablas}}
| ml2={{RbE|2|white|#b8339d|b=t|mo=Metro Ligero 2: Colonia Jardín - Estación de Aravaca}}
| ml3={{RbE|3|white|#ed1d25|b=t|mo=Metro Ligero 3: Colonia Jardín - Puerta de Boadilla}}
| ml4={{RbE|4|white|#107500|b=t|mo=Metro Ligero 4: Parla Tram}}
| c1={{RbE|C-1|white|#2D98BB|mo=Cercanías 1: Príncipe Pío - Aeropuerto T4}}
| c2={{RbE|C-2|white|#266923|mo=Cercanías 2: Chamartín - Guadalajara}}
| c3={{RbE|C-3|white|#D3187D|mo=Cercanías 3: Chamartín - Aranjuez}}
| c3a={{RbE|C-3a|white|#ff66cc|mo=Cercanías 3a: Santa María de la Alameda - Aranjuez}}
| c4={{RbE|C-4|white|#1E0C7D|mo=Cercanías 4: Alcobendas-San Sebastían de los Reyes/Colmenar Viejo - Parla}}
| c5={{RbE|C-5|white|#FDD017|mo=Cercanías 5: Móstoles-El Soto - Humanes}}
| c7={{RbE|C-7|white|#FB0F0C|mo=Cercanías 7: Príncipe Pío - Alcalá de Henares}}
| c8={{RbE|C-8|white|#266923|mo=Cercanías 8: Cercedilla - Guadalajara}}
| c9={{RbE|C-9|white|#F46515|mo=Cercanías 9: Cercedilla - Cotos}}
| c10={{RbE|C-10|white|#BAC12D|mo=Cercanías 10: Villalba - Aeropuerto T4}}
}}
| malaga|málaga={{#switch: {{lc: {{{2}}} }}
| 1={{RbE|1|#E60000}}
| 2={{RbE|2|#173BA0}}
| 3={{RbE|3}}
| 4={{RbE|4}}
}}
| manchester={{#switch: {{lc: {{{2}}} }}
|altbur|green={{RbE|Alt-Bur|#318c2c|mo=Manchester Metrolink, Altrincham - Bury service}}
|altpic|purple={{RbE|Alt-Pic|#7b2082|mo=Manchester Metrolink, Altrincham - Piccadilly service}}
|ashecc|lightblue={{RbE|Ash-Ecc|#59c6f2|mo=Manchester Metrolink, Ashton-under-Lyne - Eccles service}}
|ashmed|lime={{RbE|Ash-Med|#f18800|mo=Manchester Metrolink, Ashton-under-Lyne - MediaCityUK service}}
|burpic|yellow={{RbE|Bur-Pic|#efbb00|mo=Manchester Metrolink, Bury - Piccadilly service}}
|didroc|salmon={{RbE|Did-Roc|#fe79b0|mo=Manchester Metrolink, East Didsbury - Rochdale Town Centre service}}
|didsha|pink={{RbE|Did-Sha|#82735e|mo=Manchester Metrolink, East Didsbury - Shaw and Crompton service}}
|intcor|red={{RbE|Int-Cor|#e70310|mo=Manchester Metrolink, Intu Trafford Centre - Cornbrook service}}
|airvic={{RbE|Air-Vic|#0069b4|mo=Manchester Metrolink, Manchester Airport - Victoria service}}
|airdea={{RbE|Air-Dea|#0069b4|mo=Manchester Metrolink, Manchester Airport - Deansgate-Castlefield service}}
}}
| manila={{#switch: {{lc: {{{2}}} }}
| 1={{RbE|1|#01844B}}
| 2={{RbE|2|#324A9C}}
| 3={{RbE|3|#FFCC00|black}}
| 4={{RbE|4|#F07D05}}
| 6={{RbE|6}}
| 7={{RbE|7}}
| mcl|mscs={{RbE|Metro Commuter|#FF9900}}
}}
| marseille={{#switch: {{lc: {{{2}}} }}
|m1={{RbE|M1|#5380af|r=c|mo=Métro de Marseille, Ligne 1 (La Rose - La Fourragère)}}
|m2={{RbE|M2|#f36650|r=c|mo=Métro de Marseille, Ligne 2 (Gèze - Sainte-Marguerite Dromel)}}
|t1={{RbE|T1|#f18e00|r=c|mo=Tramway de Marseille, Ligne 1 (Noailles - Les Caillols)}}
|t2={{RbE|T2|#feda11|r=c|mo=Tramway de Marseille, Ligne 1 (Arenc-Le Silo - La Blancarde)}}
|t3={{RbE|T3|#8ac865|r=c|mo=Tramway de Marseille, Ligne 1 (Arenc-Le Silo - Castellane)}}
|b1 ={{RbE|B1|#00a651|r=c|mo=Marseille, Trés Grand Bus, Ligne 1 (Castellane - Luminy)}}
|b2 ={{RbE|B2|#5c2d91|r=c|mo=Marseille, Trés Grand Bus, Ligne 2 (Gèze - Vallon des Tuves)}}
|b3 ={{RbE|B3|#ee5ba8|r=c|mo=Marseille, Trés Grand Bus, Ligne 3 (Saint-Jérôme Parking Relais - Technopôle de Château-Gombert)}}
|b3a={{RbE|B3A|#ee5ba8|r=c|mo=Marseille, Trés Grand Bus, Ligne 3A (Saint-Jérôme Parking Relais - Malpassé)}}
|b3b={{RbE|B3B|#ee5ba8|r=c|mo=Marseille, Trés Grand Bus, Ligne 3B (Technopôle de Château-Gombert - La Rose)}}
|b4 ={{RbE|B4|#0099ff|r=c|mo=Marseille, Trés Grand Bus, Ligne 4 (Cap Pinède - Frais Vallon)}}
|b5 ={{RbE|B5|#990033|r=c|mo=Marseille, Trés Grand Bus, Ligne 5 (Frais Vallon - Pointe Rouge)}}
|1|1s={{RbE|1|#00bcf2|r=c|mo=Marseille, Ligne Autobus 1 (La Rose - Château-Gombert/La Parade)}}
|2 ={{RbE|2|#00bcf2|r=c|mo=Marseille, Ligne Autobus 2 (La Rose - Cité la Marie Haute)}}
|3 ={{RbE|3|#00bcf2|r=c|mo=Marseille, Ligne Autobus 3 (La Rose - Hauts de Sainte-Marthe)}}
|4|4b={{RbE|4|#00bcf2|r=c|mo=Marseille, Ligne Autobus 4 (La Rose - La Valentine Centres Commerciaux/Les Trois-Lucs)}}
|5 ={{RbE|5|#00bcf2|r=c|mo=Marseille, Ligne Autobus 5 (La Rose - La Parade)}}
|6 ={{RbE|6|#faa524|r=c|mo=Marseille, Ligne Autobus 6 (Foch Cinq-Avenues - Bois-Lemaître)}}
|7|7b|7t={{RbE|7|#ffc310|r=c|mo=Marseille, Ligne Autobus 7 (Foch Cinq-Avenues - Les Trois-Lucs Enco de Botte/Bois-Lemaître/Barbaraou)}}
|9 ={{RbE|9|#1caf72|r=c|mo=Marseille, Ligne Autobus 9 (Les Caillols Centre Urbain - Saint-Julien)}}
|10={{RbE|10|#f67051|r=c|mo=Marseille, Ligne Autobus 10 (La Fourragère - Louis Armand)}}
|11={{RbE|11|#6d3da0|r=c|mo=Marseille, Ligne Autobus 11 (La Rose - Plateau de la Croix Rouge)}}
|12|12b|12s={{RbE|12|#0096d4|r=c|mo=Marseille, Ligne Autobus 12 (La Timone - Éoures/Les Camoins/La Treille)}}
|15|15s={{RbE|15|#ce3a3b|r=c|mo=Marseille, Ligne Autobus 15 (Sainte-Marguerite Dromel - Les Escourtines/La Valentelle)}}
|16|16s|16t={{RbE|16|#ce3a3b|r=c|mo=Marseille, Ligne Autobus 16 (Sainte-Marguerite Dromel - Centre Commercial Saint-Loup/Lycée Jean Perrin/Collège Gyptis)}}
|17={{RbE|17|#ce3a3b|r=c|mo=Marseille, Ligne Autobus 17 (Sainte-Marguerite Dromel - Parc des Bruyères)}}
|18={{RbE|18|#7043a2|r=c|mo=Marseille, Ligne Autobus 18 (Castellane - Le Bosquet)}}
|19={{RbE|19|#ec5ba8|r=c|mo=Marseille, Ligne Autobus 19 (Castellane - Madrague de Montredon)}}
|20={{RbE|20|#703995|r=c|mo=Marseille, Ligne Autobus 20 (Madrague de Montredon - Callelongue)}}
}}
| mashhad ={{#switch: {{lc: {{{2}}} }}
| 1={{RbE|1|#002695}}
| 2={{RbE|2|#5CB8A1}}
}}
| mecca={{#switch: {{lc: {{{2}}} }}
| a={{RbE|A|#FFD700}}
| b={{RbE|B|#009530}}
| c={{RbE|C|#DC241F}}
| d={{RbE|D|#0354A6}}
| s|shuttle={{RbE|S|#FFC0CB|black}}
}}
| medina={{#switch: {{lc: {{{2}}} }}
| 1={{RbE|1|#009530}}
| 2={{RbE|2|#0354A6}}
| 3={{RbE|3|#DC241F}}
}}
| melbourne={{#switch: {{lc: {{{2}}} }}
|1 ={{RbE|1|#b5c426|mo=Melbourne Tramline 1: East Coburg - South Melbourne Beach}}
|3 ={{RbE|3|#88d1f0|mo=Melbourne Tramline 3: Melbourne University - Balaclava - East Malvern}}
|3a ={{RbE|3a|#88d1f0|mo=Melbourne Tramline 3a: Merbourne University - St Kilda - East Malvern}}
|5 ={{RbE|5|#e04038|mo=Melbourne Tramline 5: Melbourne University - Malvern}}
|5a ={{RbE|5a|#e04038|mo=Melbourne Tramline 5a: Orrong & Dandenong Rds - Malvern}}
|6 ={{RbE|6|#004c6c|mo=Melbourne Tramline 6: Moreland - Glen Iris}}
|11 ={{RbE|11|#86c5a2|mo=Melbourne Tramline 11: West Preston - Victoria Harbour Docklands}}
|12 ={{RbE|12|#008995|mo=Melbourne Tramline 12: Victoria Gardens - St Kilda}}
|16 ={{RbE|16|#ffda66|mo=Melbourne Tramline 16: Melbourne University - Kew}}
|19 ={{RbE|19|#8f4a78|mo=Melbourne Tramline 19: North Coburg - Flinders Street Stadium}}
|30 ={{RbE|30|#4f4a9f|mo=Melbourne Tramline 30: St Vincent's Plaza - Ethiad Stadium Docklands}}
|35 ={{RbE|35|#723b1f|mo=Melbourne Tramline 35: Waterfront City Docklands - City - Waterfront City Docklands}}
|48 ={{RbE|48|#434244|mo=Melbourne Tramline 48: North Balwyn - Victoria Harbour Docklands}}
|57 ={{RbE|57|#33bdca|mo=Melbourne Tramline 57: West Maribyrnong - Flinders Street Station}}
|58 ={{RbE|58|#83898f|mo=Melbourne Tramline 58: West Coburg - Toorak}}
|59 ={{RbE|59|#49805b|mo=Melbourne Tramline 59: Airport West - Flinders Street Station}}
|64 ={{RbE|64|#1aaa6f|mo=Melbourne Tramline 64: Melbourne University - East Brighton}}
|67 ={{RbE|67|#ac7963|mo=Melbourne Tramline 67: Melbourne University - Carnegie}}
|70 ={{RbE|70|#f38bb9|mo=Melbourne Tramline 70: Wattle Park/Surrey Hills - Waterfront City Docklands}}
|72 ={{RbE|72|#9eb4a5|mo=Melbourne Tramline 72: Melbourne University - Camberwell}}
|75 ={{RbE|75|#009fda|mo=Melbourne Tramline 75: Vermont South - Ethiad Stadium Docklands}}
|78 ={{RbE|78|#897cb9|mo=Melbourne Tramline 78: North Richmond - Balaclava}}
|82 ={{RbE|82|#bed639|mo=Melbourne Tramline 82: Footscray - Moonee Ponds}}
|86 ={{RbE|86|#feba10|mo=Melbourne Tramline 86: Bundoora RMIT - Waterfront City Docklands}}
|86a ={{RbE|86a|#feba10|mo=Melbourne Tramline 86a: Melbourne Museum - La Trobe Street/Spencer Street}}
|96 ={{RbE|96|#e33385|mo=Melbourne Tramline 96: East Brunswick - St Kilda Beach}}
|109={{RbE|109|#f58122|mo=Melbourne Tramline 109: Box Hill - Port Melbourne}}
|alamein={{RbE|A|#003fc2|mo=Melbourne Metro: Alamein Line}}
|belgrave={{RbE|B|#003fc2|mo=Melbourne Metro: Belgrave Line}}
|glenwaverley={{RbE|GW|#003fc2|mo=Melbourne Metro: Glen Waverley Line}}
|lilydale={{RbE|L|#003fc2|mo=Melbourne Metro: Lilydale Line}}
|cranbourne={{RbE|CN|#00a3ff|mo=Melbourne Metro: Cranbourne Line}}
|pakenham={{RbE|P|#00a3ff|mo=Melbourne Metro: Pakenham Line}}
|hurstbridge={{RbE|H|#c8102e|mo=Melbourne Metro: Hurstbridge Line}}
|mernda={{RbE|M|#c8102e|mo=Melbourne Metro: Mernda Line}}
|craigieburn={{RbE|CG|#f9be16|black|b=t|mo=Melbourne Metro: Craigieburn Line}}
|sunbury={{RbE|SB|#f9be16|black|b=t|mo=Melbourne Metro: Sunbury Line}}
|upfield={{RbE|U|#f9be16|black|b=t|mo=Melbourne Metro: Upfield Line}}
|frankston={{RbE|F|#009639|mo=Melbourne Metro: Frankton Line}}
|werribee={{RbE|WB|#009639|mo=Melbourne Metro: Werribee Line}}
|williamstown={{RbE|WT|#009639|mo=Melbourne Metro: Williamstown Line}}
|stonypoint={{RbE|SP|white|#5f9639|b=t|mo=Melbourne Metro: Stonypoint Line}}
|sandringham={{RbE|SH|#f57eb6|mo=Melbourne Metro: Sandringham Line}}
|flemington={{RbE|FR|white|#828282|b=t|mo=Melbourne Metro: Flemington Racecourse Line}}
|albury|al|v1={{RbE|V/al|#e4801b|white|mo=Victoria, V/Line Albury Line}}
|ararat|ar|v2={{RbE|V/ar|#008da8|white|mo=Victoria, V/Line Ararat Line}}
|bairnsdale|br|v3={{RbE|V/br|#566c0f|white|mo=Victoria, V/Line Bairnsdale Line}}
|ballarat|ba|v4={{RbE|V/ba|#008da8|white|mo=Victoria, V/Line Ballarat Line}}
|bendigo|be|v5={{RbE|V/be|#deb406|white|mo=Victoria, V/Line Bendigo Line}}
|echuca|ec|v6={{RbE|V/ec|#deb406|white|mo=Victoria, V/Line Echuca Line}}
|geelong|ge|v7={{RbE|V/ge|#0397d7|white|mo=Victoria, V/Line Geelong Line}}
|maryborough|ma|v8={{RbE|V/ma|#008da8|white|mo=Victoria, V/Line Maryborough Line}}
|seymour|se|v9={{RbE|V/se|#e4801b|white|mo=Victoria, V/Line Seymour Line}}
|shepparton|sh|v10={{RbE|V/sh|#e4801b|white|mo=Victoria, V/Line Shepparton Line}}
|swanhill|sw|v11={{RbE|V/sw|#deb406|white|mo=Victoria, V/Line Swan Hill Line}}
|traralgon|tr|v12={{RbE|V/tr|#566c0f|white|mo=Victoria, V/Line Traralgon Line}}
|warrnambool|wa|v13={{RbE|V/wa|#0397d7|white|mo=Victoria, V/Line Warrnambool Line}}
}}
| messina={{RbE|28|red|mo=Tranvia di Messina (Gazzi - Annunziata)}}
| mestre|venice|venezia={{#switch: {{lc: {{{2}}} }}
| 1={{RbE|T1|#005722|white|mo=Tranvia di Venezia, linea 1 (Salmonio - Monte Celo)}}
| 2={{RbE|T2|#005722|white|mo=Tranvia di Venezia, linea 2 (Mestre Centro - Venezia)}}
}}
| metz={{#switch: {{lc: {{{2}}} }}
|a|ma={{RbE|M A|#f7931d|mo=Metz Mettis, Ligne A (Saint-Éloy, P+R Woippy - Borny, Jules Michelet)}}
|b|mb={{RbE|M B|#f7931d|mo=Metz Mettis, Ligne B (Salcy, Cité U - Hôpital Mercy, Maternité)}}
|1 ={{RbE|L1|#b53d81|mo=Metz, Ligne Structurante 1 (La Corchade, Œillets - Moulins, Tournebride)}}
|2 ={{RbE|L2|#b53d81|mo=Metz, Ligne Structurante 2 (Marly - République)}}
|3 ={{RbE|L3|#b53d81|mo=Metz, Ligne Structurante 3 (Montigny, Saint-Privat - Woippy, Les Patis)}}
|4 ={{RbE|L4|#b53d81|mo=Metz, Ligne Structurante 4 (Grange-aux-Bois, Le Lac - Devant-les-Ponts, Félix Maréchal/Plappeville, Près Saint-Jacques)}}
|5 ={{RbE|L5|#b53d81|mo=Metz, Ligne Structurante 5 (Maison Neuve - Magny, Aubépine)}}
|11={{RbE|C11|#0eacc4|mo=Metz, Ligne Complémentaire 11 (St-Julien-lès-Metz - Devant-les-Ponts)}}
|12={{RbE|C12|#0eacc4|mo=Metz, Ligne Complémentaire 12 (République - Grange-aux-Bois)}}
|13={{RbE|C13|#0eacc4|mo=Metz, Ligne Complémentaire 13 (Mey-lès-Vignes - Marly-Frescaty, Costes et Bellonte)}}
|14={{RbE|C14|#0eacc4|mo=Metz, Ligne Complémentaire 14 (Hôpital Schuman - Moulins Mairie)}}
|15={{RbE|C15|#0eacc4|mo=Metz, Ligne Complémentaire 15 (Plappeville - Montigny Blory)}}
|16={{RbE|C16|#0eacc4|mo=Metz, Ligne Complémentaire 16 (Woippy, Place de France - Metz, Intendants Joba)}}
|17={{RbE|C17|#0eacc4|mo=Metz, Ligne Complémentaire 17 (Hôpital Schuman - Moulins Tournebride)}}
|18={{RbE|N18|#8b4f22|mo=Metz, Navette 18 (Saint-Julien, Fort - Square de Luxembourg)}}
|19={{RbE|N19|#8b4f22|mo=Metz, Navette 19 (Palais des Sports - Longeville, Leclerc)}}
}}
| mexicocity={{#switch: {{lc: {{{2}}} }}
| 1={{RbE|1|#E86495}}
| 2={{RbE|2|#0164A8}}
| 3={{RbE|3|#AE9D27}}
| 4={{RbE|4|#6FB6AE}}
| 5={{RbE|5|#FDC100}}
| 6={{RbE|6|#CC0033}}
| 7={{RbE|7|#E46724}}
| 8={{RbE|8|#009C6D}}
| 9={{RbE|9|#5C2C2A}}
| 12={{RbE|12|#B89D4E}}
| a={{RbE|A|#A3277F}}
| b={{RbE|B|#B9BAB5}}
}}
| milan={{#switch: {{lc: {{{2}}} }}
| 1 ={{RbE|1|red|mo=Milano rete tranviaria, linea 1 (Greco - Roserio)}}
| 2 ={{RbE|2|red|mo=Milano rete tranviaria, linea 2 (Piazza Bausan - Piazzale Negrelli)}}
| 3 ={{RbE|3|red|mo=Milano rete tranviaria, linea 3 (Duomo - Gratosoglio)}}
| 4 ={{RbE|4|red|mo=Milano rete tranviaria, linea 4 (Piazza Castello - Niguarda)}}
| 5 ={{RbE|5|red|mo=Milano rete tranviaria, linea 5 (Ortica - Ospedale Niguarda)}}
| 7 ={{RbE|7|red|mo=Milano rete tranviaria, linea 7 (P.le Lagosta - Precotto)}}
| 9 ={{RbE|9|red|mo=Milano rete tranviaria, linea 9 (Staz. Centrale - Staz. Genova)}}
|10 ={{RbE|10|red|mo=Milano rete tranviaria, linea 10 (Viale Lunigiana - Piazza XXIV Maggio)}}
|12 ={{RbE|12|red|mo=Milano rete tranviaria, linea 12 (Roserio - Viale Molise)}}
|14 ={{RbE|14|red|mo=Milano rete tranviaria, linea 14 (Cim. Maggiore - Lorenteggio)}}
|15 ={{RbE|15|red|mo=Milano rete tranviaria, linea 15 (Duomo - Rozzano)}}
|16 ={{RbE|16|red|mo=Milano rete tranviaria, linea 16 (San Siro Stadium - Via Monte Velino)}}
|19 ={{RbE|19|red|mo=Milano rete tranviaria, linea 19 (Lambrate - Piazza Castelli)}}
|24 ={{RbE|24|red|mo=Milano rete tranviaria, linea 24 (Piazza Fontana - Vigentino)}}
|27 ={{RbE|27|red|mo=Milano rete tranviaria, linea 27 (Piazza Fontana - Viale Ungheria)}}
|31 ={{RbE|31|red|mo=Milano rete tranviaria, linea 31 (Bicocca - Cinisello)}}
|33 ={{RbE|33|red|mo=Milano rete tranviaria, linea 33 (P.le Lagosta - Viale Rimembranze di Lambrate)}}
|179={{RbE|179|blue|mo=Milano rete tranviaria, linea extraurbane 179 (Comasina - Limbiate)}}
|m1 ={{RbE|M1|#ee2e24|white|mo=Metropolitana di Milano, linea 1 (Rho Fiera / Bisceglie - Sesto 1 Maggio)}}
|m2 ={{RbE|M2|#5d9732|white|mo=Metropolitana di Milano, linea 2 (Assago Milanofiori Forum/Abbiategrasso - Cologno Nord/Gessate)}}
|m3 ={{RbE|M3|#fdb813|white|mo=Metropolitana di Milano, linea 3 (Comasina - San Donato)}}
|m4 ={{RbE|M4|#0283be|white|mo=Metropolitana di Milano, linea 4 (San Cristoforo - Linate Aeroporto)}}
|m5 ={{RbE|M5|#9a8fc5|white|mo=Metropolitana di Milano, linea 5 (San Siro Stadio - Bignami)}}
|s1 ={{RbE|S1|#df3b2c|white|mo=Milano, Servizio ferroviario suburbano, linea 1 (Saronno - Lodi)}}
|s2 ={{RbE|S2|#009579|white|mo=Milano, Servizio ferroviario suburbano, linea 2 (Mariano Comense - Rogoredo)}}
|s3 ={{RbE|S3|#951b35|white|mo=Milano, Servizio ferroviario suburbano, linea 3 (Saronno - Cadorna)}}
|s4 ={{RbE|S4|#58b62c|white|mo=Milano, Servizio ferroviario suburbano, linea 4 (Camnago-Lentate - Cadorna)}}
|s5 ={{RbE|S5|#ec8835|black|mo=Milano, Servizio ferroviario suburbano, linea 5 (Varese - Treviglio)}}
|s6 ={{RbE|S6|#eccd00|black|mo=Milano, Servizio ferroviario suburbano, linea 6 (Novara - Pioltello)}}
|s7 ={{RbE|S7|#d50054|white|mo=Milano, Servizio ferroviario suburbano, linea 7 (Lecco - Porta Garibaldi)}}
|s8 ={{RbE|S8|#f09fa2|black|mo=Milano, Servizio ferroviario suburbano, linea 8 (Lecco - Porta Garibaldi)}}
|s9 ={{RbE|S9|#8d3383|white|mo=Milano, Servizio ferroviario suburbano, linea 9 (Saronno - Albairate Vermezzo)}}
|s11={{RbE|S11|#8888bb|white|mo=Milano, Servizio ferroviario suburbano, linea 11 (Chiasso - Rho)}}
|s12={{RbE|S12|#233435|white|mo=Milano, Servizio ferroviario suburbano, linea 12 (Melegnano - Bovisa)}}
|s13={{RbE|S13|#794e1f|white|mo=Milano, Servizio ferroviario suburbano, linea 13 (Bovisa - Pavia)}}
}}
| merseyrail|liverpool={{#switch: {{lc: {{{2}}} }}
|c|city={{RbE|City|#ef1620|mo=Merseyrail City Line (Local heavy rail services)}}
|n|northern={{RbE|Northern|#1e5198|mo=Merseyrail Northern Line (Hunts Cross / Central - Southport / Ormskirk / Kirkby)}}
|w|wirral={{RbE|Wirral|#2e8536|mo=Merseyrail Wirral Line (Lime Street - New Brighton / West Kirkby / Chester / Ellesmere Port)}}
}}
| miskolc={{#switch: {{lc: {{{2}}} }}
| 1v={{RbE|{{uc: {{{2}}} }}|#fff500|black|r=e|mo=Miskolc Tram Line {{uc: {{{2}}} }}}}
| 2v={{RbE|{{uc: {{{2}}} }}|#f7c200|black|r=e|mo=Miskolc Tram Line {{uc: {{{2}}} }}}}
| {{RbE|{{uc: {{{2}}} }}|#57a639|r=e|mo=Miskolc Bus Line {{uc: {{{2}}} }}}}
}}
| mitteldeutschland|mittelde={{#switch: {{lc: {{{2}}} }}
|s1 ={{RbE|S1|#FFFF00|black|r=c|mo=S-Bahn Mitteldeutschland, Linie 1 (Leipzig Miltitzer Allee - Leipzig Stötteritz)}}
|s2 ={{RbE|S2|#009BD4|r=c|mo=S-Bahn Mitteldeutschland, Linie 2 (Dessau Hbf / Jüterbog - Leipzig Stötteritz)}}
|s3 ={{RbE|S3|#E10000|r=c|mo=S-Bahn Mitteldeutschland, Linie 3 (Halle Trotha - Oschatz)}}
|s4 ={{RbE|S4|#018243|r=c|mo=S-Bahn Mitteldeutschland, Linie 4 (Hoyerswerda - Markkleeberg-Gaschwitz)}}
|s5 ={{RbE|S5|#FFA500|r=c|mo=S-Bahn Mitteldeutschland, Linie 5 (Halle Hbf - Zwickau Hbf)}}
|s5x={{RbE|S5X|#ebbd00|black|r=c|mo=S-Bahn Mitteldeutschland, Linie 5X (Halle Hbf - Zwickau Hbf)}}
|s6 ={{RbE|S6|#952D4F|r=c|mo=S-Bahn Mitteldeutschland, Linie 6 (Leipzig Messe - Geithain)}}
|s7 ={{RbE|S7|#004F9E|r=c|mo=S-Bahn Mitteldeutschland, Linie 7 (Halle-Nietleben - Halle Hbf)}}
|s8 ={{RbE|S8|#5E6DB3|r=c|mo=S-Bahn Mitteldeutschland, Linie 8 (Dessau Hbf / Jüterbog - Halle Hbf)}}
|s9 ={{RbE|S9|#A3238E|r=c|mo=S-Bahn Mitteldeutschland, Linie 9 (Halle Hbf - Ellenburg)}}
}}
| montreal={{#switch: {{lc: {{{2}}} }}
| green={{RbE|Green|#00A651}}
| orange={{RbE|Orange|#F58221}}
| yellow={{RbE|Yellow|#FFDD00|black}}
| blue={{RbE|Blue|#0067B3}}
| pink={{RbE|Pink|#FF00AC}}
| rem={{RbE|REM|#004435|#83C000}}
}}
| moscow={{#switch: {{lc: {{{2}}} }}
|1|sokolnicheskaya={{RbE|1|#D92B2C|r=c|mo=Sokolnicheskaya}}
|2|zamoskvoretskaya={{RbE|2|#44B85C|r=c|mo=Zamoskvoretskaya}}
|3|arbatsko-pokrovskaya={{RbE|3|#0078BF|r=c|mo=Arbatsko-Pokrovskaya}}
|4|filyovskaya={{RbE|4|#19C1F3|r=c|mo=Filyovskaya}}
|5|koltsevaya|circle={{RbE|5|#894E35|r=c|mo=Koltsevaya (Circle)}}
|6|kaluzhsko-rizhskaya={{RbE|6|#F58631|r=c|mo=Kaluzhsko-Rizhskaya}}
|7|tagansko-krasnopresnenskaya={{RbE|7|#8E479C|r=c|mo=Tagansko-Krasnopresnenskaya}}
|8|kalininskaya={{RbE|8|#FFCB31|r=c|mo=Kalininskaya}}
|8a|solntsevskaya={{RbE|8a|#FFCB31|r=c|mo=Solntsevskaya}}
|9|serpukhovsko-timiryazevskaya={{RbE|9|#A1A2A3|r=c|mo=Serpukhovsko-Timiryazevskaya}}
|10|lyublinsko-dmitrovskaya={{RbE|10|#B3D445|r=c|mo=Lyublinsko-Dmitrovskaya}}
|11|sokolnicheskaya={{RbE|11|#79CDCD|r=c|mo=Sokolnicheskaya}}
|11a|kakhovskaya={{RbE|11a|#79CDCD|r=c|mo=Kakhovskaya}}
|12|butovskaya={{RbE|12|#B0BFE7|r=c|mo=Butovskaya}}
|13|m1|monorail|moscow monorail={{RbE|13|#2C75C4|r=c|mo=Moscow Monorail}}
|14|mcc|central circle|moscow central circle={{RbE|14|#D92B2C|r=c|mo=Moscow Central Circle}}
}}
| montpellier={{#switch: {{lc: {{{2}}} }}
|1 ={{RbE|1|#0058a2|r=c|mo=Tramway de Montpellier, Ligne 1 (Odysseum - Mosson)}}
|2 ={{RbE|2|#f28c00|r=c|mo=Tramway de Montpellier, Ligne 2 (Jacou - Saint-Jean-de-Védas Centre)}}
|3 ={{RbE|3|#cad400|r=c|mo=Tramway de Montpellier, Ligne 3 (Juvignac - Pérols-Étang de l'Or/Lattes Centre)}}
|4 ={{RbE|4|#4b2a0e|r=c|mo=Tramway de Montpellier, Ligne 4 (Garcia Lorca Circulaire)}}
|5 ={{RbE|5|#811453|r=c|mo=Tramway de Montpellier, Ligne 5 (Prades-le-Lez Le Mandarine - Lavérune)}}
|t6={{RbE|6|#8b6c42|r=c|mo=Tramway de Montpellier, Ligne 6 (Place de l'Europe - Notre-Dame de Sablassou)}}
|6 ={{RbE|6|#e6418e|r=c|mo=Autobus de Montpellier, Ligne 6 (Pas du Loup - Euromédecine)}}
|7 ={{RbE|7|#a778ae|r=c|mo=Autobus de Montpellier, Ligne 7 (Hôtel du Département - La Martelle/Les Bouisses)}}
|8 ={{RbE|8|#ffdd00|black|r=c|mo=Autobus de Montpellier, Ligne 8 (Cité de l'Arme - Gare Saint-Roch)}}
|9 ={{RbE|9|#97bf0d|r=c|mo=Autobus de Montpellier, Ligne 9 (Place de France Circulaire)}}
|10={{RbE|10|#fabb00|black|r=c|mo=Autobus de Montpellier, Ligne 10 (Aiguelongue (Jussieu) - Celleneuve)}}
|11={{RbE|11|#62c4dd|black|r=c|mo=Autobus de Montpellier, Ligne 11 (Les Bouisses - Tournezy)}}
|12={{RbE|12|#ef93ba|black|r=c|mo=Autobus de Montpellier, Ligne 12 (Catalpas - Gare Saint-Roch)}}
|13={{RbE|13|#93117e|r=c|mo=Autobus de Montpellier, Ligne 13 (Universités des Sciences et Lettres Circulaire)}}
|14={{RbE|14|#f3a18b|black|r=c|mo=Autobus de Montpellier, Ligne 14 (La Pompignane (Les Lacs) - Léon Blum)}}
|15={{RbE|15|#c00418|r=c|mo=Autobus de Montpellier, Ligne 15 (Odysseum - Sabines)}}
|16={{RbE|16|black|r=c|mo=Autobus de Montpellier, Ligne 16 (Charles de Gaulle - Port Marianne)}}
|17={{RbE|17|#ddc900|black|r=c|mo=Autobus de Montpellier, Ligne 17 (Lavandin - Sabines)}}
|19={{RbE|19|#ffd400|black|r=c|mo=Autobus de Montpellier, Ligne 19 (Hôtel du Département - Pierre de Coubertin)}}
|51={{RbE|51|black|r=c|mo=Autobus de Montpellier, Ligne 51 (Notre-Dame de Sablassou - Place de l'Europe)}}
|52={{RbE|52|white|black|b=t|r=c|mo=Autobus de Montpellier, Ligne 52 (Grammont - Place de France)}}
|ng={{RbE|NG|white|black|b=t|r=c|mo=Autobus de Montpellier, Ligne NG (Place de France - Gare Montpellier Sud de France)}}
}}
| mulhouse={{#switch: {{lc: {{{2}}} }}
|1 ={{RbE|1|#bf1729|mo=Tramway de Mulhouse, Ligne 1 (Châtaignier - Care Centrale)}}
|2 ={{RbE|2|#ffcd00|black|mo=Tramway de Mulhouse, Ligne 2 (Coteaux - Nouveau Bassin)}}
|3 ={{RbE|3|#00973f|mo=Tramway de Mulhouse, Ligne 3 (Lutterbach Gare - Gare Centrale)}}
|4 ={{RbE|C4|#be1d2d|mo=Mulhouse Chrono, Ligne 4 (Wittenheim, Sainte-Barbe - Châtaignier)}}
|5 ={{RbE|C5|#f39200|mo=Mulhouse Chrono, Ligne 5 (Illzach, Jonquilles Circulaire)}}
|6 ={{RbE|C6|#e6007d|mo=Mulhouse Chrono, Ligne 6 (Morschwiller-le-Bas Collines IKEA - Illzach, Carrefour Île Napoléon)}}
|7 ={{RbE|C7|#2dafe6|mo=Mulhouse Chrono, Ligne 7 (Brustlein - Hôpital E. Muller)}}
|8 ={{RbE|8|#ffe900|black|mo=Mulhouse, Ligne Principale 8 (Lutterbach, Chevreuils - Wittenheim, Pôle 430/Place de Thiers)}}
|9 ={{RbE|9|#018f3f|mo=Mulhouse, Ligne Principale 9 (Rixheim, Saint-Jean/Rotonde - Kingersheim, Usines)}}
|10={{RbE|10|#8b6eaf|mo=Mulhouse, Ligne Principale 10 (Brunstatt-Didenheim, Vignerons - Riedisheim, Sainte-Ursule)}}
|11={{RbE|11|#664631|mo=Mulhouse, Ligne Principale 11 (Rixheim-Habsheim, Centre Nautique Île Napoléon - Gare Centrale)}}
|12={{RbE|12|#f39fc5|black|mo=Mulhouse, Ligne Principale 12 (Wittelsheim, Hohmatten/Pfastatt, Étang Saint-Pierre - Lefebvre)}}
|13={{RbE|13|#abb617|mo=Mulhouse, Ligne Principale 13 (Hôpital E. Muller - Morschwiller-le-Bas, Source)}}
|14={{RbE|14|#cd8353|mo=Mulhouse, Ligne Principale 14 (Brunstatt-Didenheim, Didenheim Mairie - Lutterbach, Gare)}}
|15={{RbE|15|#1ea2dd|mo=Mulhouse, Ligne Principale 15 (Lefebvre - Sausheim, Mairie/Wittenheim, Sainte-Barbe)}}
|16={{RbE|16|#3d3f91|mo=Mulhouse, Ligne Principale 16 (Illzach, Osenbach - Mer Rouge)}}
}}
| mumbai={{#switch: {{lc: {{{2}}} }}
| central={{RbE|Central|#10A038}}
| western={{RbE|Western|#E05838|black}}
| harbour={{RbE|Harbour|#303888}}
| trans-harbour={{RbE|Trans-harbour|#F0D808|black}}
| nerul-uran={{RbE|Nerul-Uran|#F0D808|#602525}}
| 1|m1={{RbE|1|#0096d6}}
| 2|m2={{RbE|2|#d11242}}
| 3|m3={{RbE|3}}
| 4|m4={{RbE|4}}
| 5|m5={{RbE|5}}
| 6|m6={{RbE|6}}
| 7|m7={{RbE|7}}
| 8|m8={{RbE|8}}
| monorail={{RbE|Monorail|#123EFD}}
}}
| munich|muenchen={{#switch: {{lc: {{{2}}} }}
|s1={{RbE|S1|#40C0FF|r=c|mo=S-Bahn München, Linie 1 (Freising / Flughafen - Leuchtenbergring)}}
|s2={{RbE|S2|#71BF44|r=c|mo=S-Bahn München, Linie 2 (Altomünster / Petershausen - Erding)}}
|s3={{RbE|S3|#7B107D|r=c|mo=S-Bahn München, Linie 3 (Mammendorf - Ostbahnhof - Holzkirchen)}}
|s4={{RbE|S4|#FF2020|r=c|mo=S-Bahn München, Linie 4 (Geltendorf - Ebersberg)}}
|s6={{RbE|S6|#00A76D|r=c|mo=S-Bahn München, Linie 6 (Tutzing - Ebersberg)}}
|s7={{RbE|S7|#963834|r=c|mo=S-Bahn München, Linie 7 (Wolfratshausen - Kreuzstaße)}}
|s8={{RbE|S8|#000000|yellow|r=c|mo=S-Bahn München, Linie 8 (Flughafen - Herrsching)}}
|s20={{RbE|S20|#FFAAAA|r=c|mo=S-Bahn München, Linie 20 (Pasing - Höllriegelskreuth)}}
|u1={{RbE|U1|#3A712B|mo=U-Bahn München, Line 1 (Olympia-Einkaufszentrum - Mangfallplatz)}}
|u2={{RbE|U2|#A80227|mo=U-Bahn München, Line 2 (Feldmoching - Messestadt Ost)}}
|u3={{RbE|U3|#E96322|mo=U-Bahn München, Line 3 (Moosach - Fürstenried West)}}
|u4={{RbE|U4|#13A87B|mo=U-Bahn München, Line 4 (Westendstraße - Arabellapark)}}
|u5={{RbE|U5|#A56316|mo=U-Bahn München, Line 5 (Laimer Platz - Neuperlach Süd)}}
|u6={{RbE|U6|#005CAC|mo=U-Bahn München, Line 6 (Garching Forschungszentrum - Klinikum Großhadern)}}
|u7={{RbE|U7|#BD132F|mo=U-Bahn München, Line 7 (Olympia-Einkaufszentrum - Neuperlach Zentrum)}}
|u8={{RbE|U8|#E96322|mo=U-Bahn München, Line 8 (Olympiazentrum - Neuperlach Zentrum)}}
|u9={{RbE|U9|#83237f|mo=U-Bahn München, Line 9 (Martinsried - Garching-Forschungszentrum)}}
|u29={{RbE|U29|#83237f|mo=U-Bahn München, Line 29 (Klinikum Großhadern - Harthof)}}
|12|t12={{RbE|12|#903F97|mo=Straßenbahn München, Line 12 (Scheidplatz - Romanplatz)}}
|15|t15={{RbE|15|white|#F48F99|b=t|mo=Straßenbahn München, Line 15 (Max-Weber-Platz - Großhesseloher Brücke)}}
|16|t16={{RbE|16|#006CB3|mo=Straßenbahn München, Line 16 (Romanplatz - Effnerplatz - St. Emmeram)}}
|17|t17={{RbE|17|#875A46|mo=Straßenbahn München, Line 17 (Amalienburgstraße - St. Emmeram)}}
|18|t18={{RbE|18|#20B14A|mo=Straßenbahn München, Line 18 (Grondrellplatz - Schwanseestraße)}}
|19|t19={{RbE|19|#EE1C25|mo=Straßenbahn München, Line 19 (Pasing Bf - Berg am Laim Bf)}}
|20|t20={{RbE|20|#16C0E9|mo=Straßenbahn München, Line 20 (Moosach Bf - Karlsplatz)}}
|21|t21={{RbE|21|#16C0E9|mo=Straßenbahn München, Line 21 (Westfriedhof - St.Veit-Straße)}}
|23|t23={{RbE|23|#B3D235|mo=Straßenbahn München, Line 23 (Münchner Freiheit - Schwabing Nord)}}
|25|t25={{RbE|25|#F48F99|mo=Straßenbahn München, Line 25 (Max-Weber-Platz - Derbolfinger Platz)}}
|27|t27={{RbE|27|#FBA61C|mo=Straßenbahn München, Line 27 (Petuelring - Sendlinger Tor)}}
|28|t28={{RbE|28|white|#FBA61C|b=t|mo=Straßenbahn München, Line 28 (Scheidplatz - Sendlinger Tor)}}
|29|t29={{RbE|29|white|#ec121e|b=t|mo=Straßenbahn München, Line 29 (Willibaldplatz - Hochschule München)}}
|e7={{RbE|E7|mo=Straßenbahn München, Line E7 (MVG Museum - Max-Weber-Platz)}}
}}
| nagoya={{#switch: {{lc: {{{2}}} }}
| h|1|higashiyama={{RbE|東山線|#FFB700|black}}
| m|2|4|meijo={{RbE|名城線|#8F76D6}}
| e|meiko={{RbE|名港線|#8F76D6}}
| iy|meitetsu inuyama={{RbE|名鉄犬山線|#009BBF}}
| t|3|tsurumai={{RbE|鶴舞線|#009BBF}}
| tt|meitetsu toyota={{RbE|名鉄豊田線|#009BBF}}
| my|meitetsu mikawa={{RbE|名鉄三河線|#009BBF}}
| s|6|sakura-dori={{RbE|桜通線|#BD342C}}
| km|meitetsu komaki={{RbE|名鉄小牧線|#E77B9F}}
| k|7|kamiiida={{RbE|上飯田線|#E77B9F}}
}}
| nanchang={{#switch: {{lc: {{{2}}} }}
| 1={{RbE|1|#EA1746}}
| 2={{RbE|2|#FFD52F|black}}
| 3={{RbE|3|#0080C6}}
| 4={{RbE|4|#08AF6A}}
| 5={{RbE|5|#F58233}}
}}
| nancy={{#switch: {{lc: {{{2}}} }}
|1|t1={{RbE|T1|#c83734|mo=Nancy Tramway, Ligne 1 (Vandœuvre CHU Brabois - Essey Mouzimpré)}}
|2|t2={{RbE|T2|#0566a0|mo=Nancy, Tempo 2 (Laxou Sapinière - Laneuveville Centre)}}
|3|t3={{RbE|T3|#009551|mo=Nancy, Tempo 3 (Villers Campus Sciences - Seichamps Haie Cerlin)}}
|4|t4={{RbE|T4|#ffe000|black|mo=Nancy, Tempo 4 (Laxou Champ-le-Boeuf - Houdemont Porte Sud)}}
|c1={{RbE|C1|#610702|mo=Nancy, Ligne Corol 1 (Plateau de Haye)}}
|c2={{RbE|C2|#610702|mo=Nancy, Ligne Corol 2 (Plateau de Haye)}}
|11={{RbE|11|#d4db4a|black|mo=Nancy, Ligne Urbaine 11 (Tomblaine Maria Deraismes/Saulxures Lorraine - Vandœuvre Roberval/Nancy ARTEM Vauban)}}
|12={{RbE|12|#8cc849|mo=Nancy, Ligne Urbaine 12 (Malzéville Savlons - Heillecourt)}}
|13={{RbE|13|#2b513a|mo=Nancy, Ligne Urbaine 13 (Maxéville Ecoparc - Dommartemont)}}
|14={{RbE|14|#33ac76|mo=Nancy, Ligne Urbaine 14 (Nancy Gare - Ludres)}}
|15={{RbE|15|#64d1d4|mo=Nancy, Ligne Urbaine 15 (Nancy Gare - Essey Porte Verte)}}
|16={{RbE|16|#2c9cd1|mo=Nancy, Ligne Urbaine 16 (Villers Clairlieu - Malzéville/Margeville/Pixérécourt)}}
|17={{RbE|17|#2b5f8d|mo=Nancy, Ligne Urbaine 17 (Villers Campus Sciences - Ludres)}}
|20={{RbE|20|#3c3fa0|mo=Nancy, Ligne Urbaine 20 (Nancy Gare - Art-sur-Meurthe)}}
|21={{RbE|21|#8342a2|mo=Nancy, Ligne Urbaine 21 (Nancy Gare - Fléville/Ludres Marvingt)}}
|22={{RbE|22|#d748a3|mo=Nancy, Ligne Urbaine 22 (Essey Porte Verte - Saint Max Gérard Barrois)}}
}}
| nanjing={{#switch: {{lc: {{{2}}} }}
| 1={{RbE|1|#00A2DF}}
| 2={{RbE|2|#C7003F}}
| 3={{RbE|3|#009651}}
| 4={{RbE|4|#A513C0}}
|10={{RbE|10|#EAC384}}
|s1={{RbE|S1|#4BBBB4}}
|s3={{RbE|S3|#DA60CD}}
|s8={{RbE|S8|#ECA153}}
|s9={{RbE|S9|#F1BC1A}}
}}
| nanning={{#switch: {{lc: {{{2}}} }}
| 1={{RbE|1|#00B04F}}
| 2={{RbE|2|#EB3D1A}}
}}
| nantes={{#switch: {{lc: {{{2}}} }}
|1={{RbE|1|#009036|mo=Nantes Tramway, Ligne 1 (François Mitterand/Jamet - Ranzay/Beaujoire)}}
|2={{RbE|2|#e2001a|mo=Nantes Tramway, Ligne 2 (Orvault-Grand Val - Gare de Pont-Rousseau)}}
|3={{RbE|3|#0077bb|mo=Nantes Tramway, Ligne 3 (Marcel Paul - Neustrie)}}
|4={{RbE|4|#fdcc00|black|mo=Nantes Busway, Ligne 4 (Foch-Cathédrale - Porte de Vertou)}}
|5={{RbE|5|#22baea|mo=Nantes Busway, Ligne 5 (Commerce - Hangar à Bananes)}}
|10={{RbE|10|#fff100|black|mo=Nantes, Ligne de Bus 10 (Gare de Chantenay - Boulevard de Doulon)}}
|11={{RbE|11|#e4b477|black|mo=Nantes, Ligne de Bus 11 (Tertre - Perray)}}
|12={{RbE|12|#8dd8f8|black|mo=Nantes, Ligne de Bus 12 (Beauséjour - Jules Verne)}}
|26={{RbE|26|#00a651|mo=Nantes, Ligne de Bus 26 (Hôtel de Région - Jonelière)}}
|27={{RbE|27|#8dd8f8|black|mo=Nantes, Ligne de Bus 27 (Pirmil - La Herdrie)}}
|28={{RbE|28|#8dd8f8|black|mo=Nantes, Ligne de Bus 28 (Pirmil - Vertou)}}
|30={{RbE|30|#fff100|black|mo=Nantes, Ligne de Bus 30 (Trentemoult - Joliverie/Îles de Loire)}}
|40={{RbE|40|#fff100|black|mo=Nantes, Ligne de Bus 40 (Neustrie - Mendès-France Bellevue)}}
|50={{RbE|50|#fff100|black|mo=Nantes, Ligne de Bus 50 (Basse-Indre - Porte de la Chapelle)}}
|60={{RbE|60|#fff100|black|mo=Nantes, Ligne de Bus 60 (Vertou - Quintaine)}}
|80={{RbE|80|#fff100|black|mo=Nantes, Ligne de Bus 80 (Fac de Droit - Chassay/Bellevue)}}
|c1 ={{RbE|C1|#22baea|mo=Nantes, Chronobus 1 (Gare de Chantenay - Haluchère-Batignolles)}}
|c2 ={{RbE|C2|#eb6a4a|mo=Nantes, Chronobus 2 (Le Cardo - Gare Sud)}}
|c3 ={{RbE|C3|#fba61c|black|mo=Nantes, Chronobus 3 (Armor - Boulevard de Doulon)}}
|c4 ={{RbE|C4|#71bf44|mo=Nantes, Chronobus 4 (Gréneraie - Les Sorinières)}}
|c6 ={{RbE|C6|#b19ac9|mo=Nantes, Chronobus 6 (Chantrerie, Grandes Écoles - Hermeland)}}
|c7 ={{RbE|C7|#bfd630|mo=Nantes, Chronobus 7 (Trianon/Clairais - Souillarderie)}}
|c9 ={{RbE|C9|#f6adcc|black|mo=Nantes, Chronobus 9 (Pirmil - Basse-Goulaine/Chalonges)}}
|c10={{RbE|C10|#fff100|black|mo=Nantes, Chronobus 10 (Boulevard de Doulon - Gare de Chantenay)}}
|c20={{RbE|C20|#fff100|black|mo=Nantes, Chronobus 20 (Gare de Chantenay - École Centrale Audencia)}}
|e1={{RbE|E1|#e2001a|Nantes, Ligne Express 1 (Gare Maritime - Couëron Océan)}}
|e4={{RbE|E4|#e2001a|Nantes, Ligne Express 4 (Porte de Vertou - Vertou)}}
|e5={{RbE|E5|#e2001a|Nantes, Ligne Express 5 (Fac de Droit - Carquefou)}}
|e8={{RbE|E8|#e2001a|Nantes, Ligne Express 8 (Gréneraie - Le Pellerin)}}
|aero|aeroport|na={{RbE|Aéro|#22baea|mo=Nantes, Navette Aéroport (Commerce - Nantes-Atlantique)}}
}}
| naples|napoli={{#switch: {{lc: {{{2}}} }}
|1={{RbE|1|red|mo=Napoli rete tranviaria, linea 1 (Emiciclo di Poggioreale - Port)}}
|2={{RbE|2|red|mo=Napoli rete tranviaria, linea 2 (Piazza Nazionale - San Giovanni a Teduccio)}}
|4={{RbE|4|red|mo=Napoli rete tranviaria, linea 4 (San Giovanni a Teduccio - Port)}}
|m1={{RbE|linea 1|#f6e415|#2e6d99|mo=Metropolitana di Napoli, linea 1}}
|m6={{RbE|linea 6|#aacfe3|#2e6d99|mo=Metropolitana di Napoli, linea 6 (Municipo - Mostra)}}
|aversa|rainbow={{RbE|Aversa|red|white|mo=Metropolitana di Napoli, linea Napoli - Aversa}}
|centrale={{RbE|Centrale|r=c|#F58220}}
|chiaia={{RbE|Chiaia|r=c|#F58220}}
|mergellina={{RbE|Mergellina|r=c|#F58220}}
|montesanto={{RbE|Montesanto|r=c|#F58220}}
|acerra={{RbE|Napoli-Acerra|#FFD403}}
|baiano={{RbE|Napoli-Baiano|#FFD403}}
|poggiomarino={{RbE|Napoli-Poggiomarino|#339900}}
|sangiorgio={{RbE|Napoli-San Giorgio|#F9A81B}}
|sarno={{RbE|Napoli-Sarno|#DC241F}}
|sorrento={{RbE|Napoli-Sorrento|#007DC4}}
|circumflegrea={{RbE|Circumflegrea|#00792C}}
|cumana={{RbE|Cumana|#008D78}}
}}| newcaledonia|nc={{#switch: {{lc: {{{2}}} }}
| 1 ={{RbE|1|white|#a1057d|r=c|b=t|mo=Tanéo Bus, Néobus (Médipôle - Place Moselle)}}
| 2 ={{RbE|2|white|#6dbfa9|r=c|b=t|mo=Tanéo Bus, Ligne 2 (Lycée du Mont-Dore - Promenade de Koutio)}}
| 3 ={{RbE|3|white|#f08026|r=c|b=t|mo=Tanéo Bus, Ligne 3 (Kuendu Beach - Ouen Toro)}}
| 4 ={{RbE|4|white|#6b8d8e|r=c|b=t|mo=Tanéo Bus, Ligne 4 (Dumbéa Centre - Collège Baudoux)}}
| 5 ={{RbE|5|white|#c8ce00|r=c|b=t|mo=Tanéo Bus, Ligne 5 (Dillenseger - Collège Baudoux)}}
| 6 ={{RbE|6|white|#0d2e84|r=c|b=t|mo=Tanéo Bus, Ligne 6 (Tindu - Bousquet)}}
| 7 ={{RbE|7|white|#786854|r=c|b=t|mo=Tanéo Bus, Ligne 7 (Païta Centre - Place Moselle}}
| 8 ={{RbE|8|white|#bd0826|r=c|b=t|mo=Tanéo Bus, Ligne 8 (La Coulée - Place Moselle)}}
| 10={{RbE|10|white|#88c946|r=c|b=t|mo=Karuïa Bus, Ligne 10 (Kuendu Beach - Ouen Toro)}}
| 11={{RbE|11|#88c946|r=c|mo=Karuïa Bus, Ligne 11 (CHS A. Bousquet - Anse Vata)}}
| 12={{RbE|12|#669631|r=c|mo=Karuïa Bus, Ligne 12 (Anse Vata - Place Rolland)}}
| 20={{RbE|20|white|#007cc6|r=c|b=t|mo=Karuïa Bus, Ligne 20 (Saint-Quentin - Place Rolland)}}
| 22={{RbE|22|#007cc6|r=c|mo=Karuïa Bus, Ligne 22 (Saint-Quentin - Place Rolland)}}
| 30={{RbE|30|white|#55554d|r=c|b=t|mo=Karuïa Bus, Ligne 30 (Tina-Mainguet - CHS A. Bousquet)}}
| 31={{RbE|31|#55554d|r=c|mo=Karuïa Bus, Ligne 31 (Collège de Normandie - CHS A. Bousquet)}}
| 32={{RbE|32|#707176|r=c|mo=Karuïa Bus, Ligne 32 (Collège de Normandie - Place de la Marne)}}
| 40={{RbE|40|white|#f956a9|r=c|b=t|mo=Karuïa Bus, Ligne 40 (Centre Culturel Tjibaou - Place Rolland)}}
| 41={{RbE|41|#d0458c|r=c|mo=Karuïa Bus, Ligne 41 (Parc Forestier - Place Rolland)}}
| 42={{RbE|42|#85217c|r=c|mo=Karuïa Bus, Ligne 42 (Marie Havet / Pointe aux Longs Cous - Place Rolland)}}
| 50={{RbE|50|white|#a96519|r=c|b=t|mo=Karuïa Bus, Ligne 50 (Z.I. Numbo - Place Rolland)}}
| 51={{RbE|51|#a96519|r=c|mo=Karuïa Bus, Ligne 51 (Dillensenger - Place Rolland)}}
| 60={{RbE|60|white|#ffce36|r=c|b=t|mo=Karuïa Bus, Ligne 60 (Bonaparte - Tuband)}}
| 61={{RbE|61|#ffce36|r=c|mo=Karuïa Bus, Ligne 61 (Bonaparte - Tuband)}}
| 62={{RbE|62|#ffb530|r=c|mo=Karuïa Bus, Ligne 62 (Bonaparte - Tuband)}}
| 70={{RbE|70|white|#ff8535|r=c|b=t|mo=Karuïa Bus, Ligne 70 (Salle Veyret - Kauma)}}
| 71={{RbE|71|#ff8535|r=c|mo=Karuïa Bus, Ligne 71 (Chapelle R.S. - Anse Vata)}}
| 80={{RbE|80|white|#43c6b6|r=c|b=t|mo=Karuïa Bus, Ligne 80 (Audrain 1 - 18 Juin)}}
| 81={{RbE|81|#43c6b6|r=c|mo=Karuïa Bus, Ligne 81 (Audrain 1 - 18 Juin)}}
| 90={{RbE|90|white|#b4a79c|r=c|b=t|mo=Karuïa Bus, Ligne 90 (Naisseline - Aquarium)}}
| 91={{RbE|91|#b4a79c|r=c|mo=Karuïa Bus, Ligne 91 (Naisseline - Collège Baudoux)}}
| 92={{RbE|92|#b4a79c|r=c|mo=Karuïa Bus, Ligne 92 (Tindu 1 - Collège Baudoux)}}
| n1={{RbE|N1|#6ebfaa|r=c|mo=Tanéo Bus, Ligne N1 (Val Plaisance - Havet)}}
| n2={{RbE|N2|#0f8289|r=c|mo=Tanéo Bus, Ligne N2 (Kowi Bouillant / Place Moselle - Centre Culturel Tjibaou)}}
| n3={{RbE|N3|#95bc20|r=c|mo=Tanéo Bus, Ligne N3 (Receiving - Place Moselle)}}
| n4={{RbE|N4|#35a861|r=c|mo=Tanéo Bus, Ligne N4 (Numbo - Kauma / Centre Nautique)}}
| n5={{RbE|N5|#233979|r=c|mo=Tanéo Bus, Ligne N5 (Ducos Nord - Tina)}}
| n6={{RbE|N6|#9fc7e0|r=c|mo=Tanéo Bus, Ligne N6 (Nobel / Rond-Point Bonaparte - Verlaine)}}
| d1={{RbE|D1|#6dbfa9|r=c|mo=Tanéo Bus, Ligne D1 (Centre Aquatique - Promenade de Koutio)}}
| d2={{RbE|D2|#008f39|r=c|mo=Tanéo Bus, Ligne D2 (ZAC Panda - Dumbéa-sur-Mer)}}
| d3={{RbE|D3|#0f73b6|r=c|mo=Tanéo Bus, Ligne D3 (Saint-Quentin - Promenade de Koutio)}}
| d4={{RbE|D4|#0f9cd8|r=c|mo=Tanéo Bus, Ligne D4 (Dumbéa-sur-Mer - Centre)}}
| d5={{RbE|D5|#09642e|r=c|mo=Tanéo Bus, Ligne D5 (Val Suzon - Mairie du Nord)}}
| d6={{RbE|D6|#f9b567|r=c|mo=Tanéo Bus, Ligne D6 (Haute-Couvelée - Mairie du Nord)}}
| d7={{RbE|D7|#911c7f|r=c|mo=Tanéo Bus, Ligne D7 (Koé - Mairie du Nord)}}
| m1={{RbE|M1|#000000|r=c|mo=Tanéo Bus, Ligne M1 (Saint-Michel - Robinson)}}
| m2={{RbE|M2|#e1081c|r=c|mo=Tanéo Bus, Ligne M2 (Saint-Louis - Promenade de Koutio)}}
| m3={{RbE|M3|#e85f0c|r=c|mo=Tanéo Bus, Ligne M3 (La Coulée - Mouirange - Collège de Plum)}}
| m4={{RbE|M4|#cc69a6|r=c|mo=Tanéo Bus, Ligne M4 (Béatitudes - Place Moselle)}}
| p1={{RbE|P1|#f09402|r=c|mo=Tanéo Bus, Ligne P1 (Lycée Jean 23 - Promenade de Koutio)}}
| p2={{RbE|P2|#c11e3a|r=c|mo=Tanéo Bus, Ligne P2 (Païta Centre - Savannah)}}
| p3={{RbE|P3|#e85f0c|r=c|mo=Tanéo Bus, Ligne P3 (Naniouni - Cosinus)}}
| p4={{RbE|P4|#803689|r=c|mo=Tanéo Bus, Ligne P4 (Aéroport - Place Moselle)}}
}}
| neworleans={{#switch: {{lc: {{{2}}} }}
| canal={{RbE|Canal|#FF0000|#90EE90}}
| rampart-stclaude={{RbE|Rampart-St.Claude|#FFD700}}
| riverfront={{RbE|Riverfront|#0000FF}}
| stcharles={{RbE|St.Charles|#008000}}
}}
| newplymouth={{#switch: {{lc: {{{2}}} }}
|1 ={{RbE|1|#985c44|mo=New Plymouth CityLink 1 (City - Moturoa)}}
|2 ={{RbE|2|#a8ce45|mo=New Plymouth CityLink 2 (City - Whalers Gate)}}
|3 ={{RbE|3|#fecc2d|mo=New Plymouth CityLink 3 (City - Lynmouth/Marfell)}}
|4 ={{RbE|4|#008052|mo=New Plymouth CityLink 4 (City - Westown/Hurdon)}}
|5 ={{RbE|5|#0079cc|mo=New Plymouth CityLink 5 (City - Frankleigh Park/Ferndale)}}
|6 ={{RbE|6|#f48735|mo=New Plymouth CityLink 6 (City - Vogeltown/Brooklands)}}
|7 ={{RbE|7|#f09cbe|mo=New Plymouth CityLink 7 (City - Welbourn/Highlands Park)}}
|8 ={{RbE|8|#a53692|mo=New Plymouth CityLink 8 (City - Merrilands/Highlands Park)}}
|9 ={{RbE|9|#4ec7f2|mo=New Plymouth CityLink 9 (City - Fitzroy/The Valley/Glen Avon)}}
|20={{RbE|20|#6966ad|mo=New Plymouth CityLink 20 (City - Bell Block/Waitara)}}
|40={{RbE|40|#3cb3b1|mo=New Plymouth CityLink 40 (City - Oākura)}}
}}
| newyork | newyorkcity | nycs={{#switch: {{lc: {{{2}}} }}
| a ={{RbE|A|#0039a6|r=c|mo=New York Subway, Eighth Avenue Line, A service}}
| c ={{RbE|C|#0039a6|r=c|mo=New York Subway, Eighth Avenue Line, C service}}
| e ={{RbE|E|#0039a6|r=c|mo=New York Subway, Eighth Avenue Line, E service}}
| b ={{RbE|B|#ff6319|r=c|mo=New York Subway, Sixth Avenue Line, B service}}
| d ={{RbE|D|#ff6319|r=c|mo=New York Subway, Sixth Avenue Line, D service}}
| f ={{RbE|F|#ff6319|r=c|mo=New York Subway, Sixth Avenue Line, F service}}
| fd={{RbE|F|#ff6319|mo=New York Subway, Sixth Avenue Line, Fd service}}
| m ={{RbE|M|#ff6319|r=c|mo=New York Subway, Sixth Avenue Line, M service}}
| g ={{RbE|G|#6cbe45|r=c|mo=New York Subway, Crosstown Line, G service}}
| l ={{RbE|L|#a7a9ac|r=c|mo=New York Subway, Canarsie Line, L service}}
| j ={{RbE|J|#996633|r=c|mo=New York Subway, Nassau Street Line, J service}}
| z ={{RbE|Z|#996633|r=c|mo=New York Subway, Nassau Street Line, Z service}}
| n ={{RbE|N|#fccc0a|black|r=c|mo=New York Subway, Broadway Line, N service}}
| q ={{RbE|Q|#fccc0a|black|r=c|mo=New York Subway, Broadway Line, Q service}}
| r ={{RbE|R|#fccc0a|black|r=c|mo=New York Subway, Broadway Line, R service}}
| w ={{RbE|W|#fccc0a|black|r=c|mo=New York Subway, Broadway Line, W service}}
| 1 ={{RbE|1|#ee352e|r=c|mo=New York Subway, Broadway-Seventh Avenue Line, 1 service}}
| 2 ={{RbE|2|#ee352e|r=c|mo=New York Subway, Broadway-Seventh Avenue Line, 2 service}}
| 3 ={{RbE|3|#ee352e|r=c|mo=New York Subway, Broadway-Seventh Avenue Line, 3 service}}
| 4 ={{RbE|4|#00933c|r=c|mo=New York Subway, Lexington Avenue Line, 4 service}}
| 5 ={{RbE|5|#00933c|r=c|mo=New York Subway, Lexington Avenue Line, 5 service}}
| 6 ={{RbE|6|#00933c|r=c|mo=New York Subway, Lexington Avenue Line, 6 service}}
| 6d={{RbE|6|#00933c|mo=New York Subway, Lexington Avenue Line, 6d service}}
| 7 ={{RbE|7|#b933ad|r=c|mo=New York Subway, Flushing Line, 7 service}}
| 7d={{RbE|7|#b933ad|mo=New York Subway, Flushing Line, 7d service}}
| t ={{RbE|T|#00add0|r=c|mo=New York Subway, Second Avenue Line, T service}}
| s ={{RbE|S|#808183|r=c|mo=New York Subway, Shuttles}}
|ast={{RbE|AST|#ff6a00|b=c|bcolor=black|mo=NYC Ferry, Astoria}}
| er={{RbE|ER|#008199|b=c|bcolor=black|mo=NYC Ferry, East River}}
| rw={{RbE|RW|#b219aa|b=c|bcolor=black|mo=NYC Ferry, Rockaway}}
| sv={{RbE|SV|#4f008c|b=c|bcolor=black|mo=NYC Ferry, Soundview}}
| sb={{RbE|SB|#ffd000|black|b=t|mo=NYC Ferry, South Brooklyn}}
| gi={{RbE|GI|#c2c2c2|b=c|bcolor=black|mo=NYC Ferry, Governors Island}}
| sg={{RbE|SG|#d7006e|b=c|bcolor=black|mo=NYC Ferry, St. George}}
| ci={{RbE|CI|#01a786|b=c|bcolor=black|mo=NYC Ferry, Coney Island}}
}}
| nice={{#switch: {{lc: {{{2}}} }}
|1 ={{RbE|1|#d10019|mo=Tramway de Nice, Ligne 1 (Henri Sappia - Hôpital Pasteur)}}
|2 ={{RbE|2|#1c78bb|mo=Tramway de Nice, Ligne 2 (Port Lympia - Centre Administratif/Aéroport Terminal 2)}}
|3 ={{RbE|3|#1c78bb|mo=Tramway de Nice, Ligne 3 (Aéroport Terminal 2 - Saint-Isidore)}}
|4 ={{RbE|4|#fff44e|black|mo=Tramway de Nice, Ligne 4 (Saint-Augustin - Fernand Sastre)}}
|5 ={{RbE|5|#8ca5d6|mo=Nice, Ligne 5 (Rimiez Les Sources/Saint-Georges - Deloye Dubouchage)}}
|6 ={{RbE|6|#6fbd84|mo=Nice, Ligne 6 (La Madeleine - Croix de Berra)}}
|7 ={{RbE|7|#a84d98|mo=Nice, Ligne 7 (Port Lympia - Ariane/Général Saramito)}}
|8 ={{RbE|8|#ffed00|black|mo=Nice, Ligne 8 (Hôpital Pasteur - Las Planas/Sappia)}}
|9 ={{RbE|9|#f29955|mo=Nice, Ligne 9 (Parc Phœnix - Cagnes-sur-Mer, Le Gué/Vence, Halte Routière de l'Ara)}}
|11={{RbE|11|#a84d98|mo=Nice, Ligne 11 (Square Daudet - Vallon des Fleurs/Bella Vista)}}
|12={{RbE|12|#a877b2|mo=Nice, Ligne 12 (Saint-Laurent-du-Var, Cap 3000 - Promenade des Arts)}}
|14={{RbE|14|#eb690b|mo=Nice, Ligne 14 (La Trinité, Les Chênes Verts - Vauban)}}
|15={{RbE|15|#6fbd84|mo=Nice, Ligne 15 (Promenade des Arts - Saint-Jean-Cap-Ferrat, Port de Saint-Jean}}
|16={{RbE|16|#59c6f2|mo=Nice, Ligne 16 (Cimiez Hôpital - Col de Bast/Saint-Sylvestre)}}
|17={{RbE|17|#245aa6|mo=Nice, Ligne 17 (STAPS/Arboras - Ferber)}}
|18={{RbE|18|#a79dcc|mo=Nice, Ligne 18 (Riquier - Saint-Sylvestre)}}
|19={{RbE|19|#b74e95|mo=Nice, Ligne 19 (Vauban - Levens, Village)}}
|20={{RbE|20|#ec6708|mo=Nice, Ligne 20 (Saint-Laurent-du-Var, Giono/Les Pugets - STAPS/Arboras)}}
|21={{RbE|21|#71bb70|mo=Nice, Ligne 21 (Grand Arénas - Cagnes-sur-Mer, La Gué/Polygone Riviera)}}
|22={{RbE|22|#5b7bbc|mo=Nice, Ligne 22 (CADAM - Carros, Pagnol)}}
}}
| ningbo={{#switch: {{lc: {{{2}}} }}
| 1={{RbE|1|#1590ca}}
| 2={{RbE|2|#d60e19}}
| 3={{RbE|3|#f39800}}
| 4={{RbE|4|#abcd03}}
| 5={{RbE|5|#1d2088}}
| 6={{RbE|6|#800000}}
| 7={{RbE|7|#e00080}}
| 8={{RbE|8|#cccccc}}
}}
| nizhny | nizhny novgorod={{#switch: {{lc: {{{2}}} }}
| 1={{RbE|1|#F11114}}
| 2={{RbE|2|#137CB5}}
| 3={{RbE|3}}
}}
| norrkoping={{#switch: {{lc: {{{2}}} }}
| 1={{RbE|1|white|black|mo=Norrköpings Museilinje (Line 1)}}
| 2={{RbE|2|red|mo=Norrköping Tram 2: Fridvalla - Kvbarnberget}}
| 3={{RbE|3|green|mo=Norrköping Tram 3: Vidablick - Klockaretorpet}}
}}
| nottingham={{#switch: {{lc: {{{2}}} }}
|1={{RbE|1|#3faf57|mo=Nottingham Express Transit, line 1 (Toton Lane - Hucknall)}}
|2={{RbE|2|#552e89|mo=Nottingham Express Transit, line 2 (Clifton - Phoenix Park)}}
}}
| nuremberg={{#switch: {{lc: {{{2}}} }}
|s1={{RbE|S1|#962E34|r=c|mo=Nuremberg S-Bahn, line 1 (Bamberg - Hartmannshof)}}
|s2={{RbE|S2|#65B949|r=c|mo=Nuremberg S-Bahn, line 2 (Roth - Altdorf)}}
|s3={{RbE|S3|#F05C3D|r=c|mo=Nuremberg S-Bahn, line 3 (Nürnberg Hbf - Neumarkt Oberpfalz)}}
|s4={{RbE|S4|#2E3E82|r=c|mo=Nuremberg S-Bahn, line 4 (Nürnberg Hbf - Dombühl)}}
|t4|4={{RbE|4|#F3858E|r=c|mo=Straßenbahn Nürnberg, Linie 4 (Gibitzenhof - Am Wegfeld)}}
|t5|5={{RbE|5|#9052A1|r=c|mo=Straßenbahn Nürnberg, Linie 5 (Tiergarten - Südfriedhof)}}
|t6|6={{RbE|6|#FFF300|black|r=c|mo=Straßenbahn Nürnberg, Linie 6 (Doku-Zentrum - Westfriedhof)}}
|t7|7={{RbE|7|#667bb4|r=c|mo=Straßenbahn Nürnberg, Linie 7 (Nuremberg Hbf - Tristanstraße)}}
|t8|8={{RbE|8|#00B9F2|r=c|mo=Straßenbahn Nürnberg, Linie 8 (Doku-Zentrum - Erlenstegen)}}
|d={{RbE|D|#8a8a8a|r=c|mo=Straßenbahn Nürnberg, Linie D (Betriebshoffahrten - Frankenstraße)}}
|u1={{RbE|U1|#181953|mo=Nuremberg U-Bahn, line 1 (Fürth Hardhöhe - Langwasser Süd)}}
|u2={{RbE|U2|#D71910|mo=Nuremberg U-Bahn, line 2 (Flughafen - Röthenbach)}}
|u3={{RbE|U3|#2F989A|mo=Nuremberg U-Bahn, line 3 (Gustav-Adolf-Straße - Nordwestring)}}
}}
| oberösterreich|oberosterreich={{#switch: {{lc: {{{2}}} }}
|s1|1={{RbE|S1|#f5831a|r=e|mo=Oberösterreich S-Bahnlinie 1: Linz - Garsten}}
|s2|2={{RbE|S2|#00acae|r=e|mo=Oberösterreich S-Bahnlinie 2: Linz - Salzburg/Freilassing}}
|s3|3={{RbE|S3|#3c2c90|r=e|mo=Oberösterreich S-Bahnlinie 3: Linz - Pregarten}}
|s4|4={{RbE|S4|#97bd30|r=e|mo=Oberösterreich S-Bahnlinie 4: Linz - Kirchdorf an der Krems}}
|s5|5={{RbE|S5|#ee008d|r=e|mo=Oberösterreich S-Bahnlinie 5: Linz - Eferding}}
|s6|6={{RbE|S6|#005579|r=e|mo=Oberösterreich S-Bahnlinie 6: Linz - Kleinzell}}
|s7|7={{RbE|S7|#64a0c4|r=e|mo=Oberösterreich S-Bahnlinie 7: Linz - Pregarten}}
}}
| olsztyn={{#switch:{{lc: {{{2}}} }}
|1={{RbE|1|blue|mo=Olsztyn Tramway, Line 1 (Wysoka Brama - Kanta)}}
|2={{RbE|2|blue|mo=Olsztyn Tramway, Line 2 (Dworzec Główny - Kanta)}}
|3={{RbE|3|blue|mo=Olsztyn Tramway, Line 3 (Dworzec Główny - Uniwersytet-Prawocheńskiego)}}
}}
| orleans|orléans={{#switch: {{lc: {{{2}}} }}
|a ={{RbE|A|#e2001a|mo=Tramway d'Orléans, Ligne A (Jules Verne - Hôpital de la Source)}}
|b ={{RbE|B|#72277b|mo=Tramway d'Orléans, Ligne B (Gorges Pompidou - Clos du Hameau)}}
|1 ={{RbE|1|#e92d8b|mo=Orléans, Ligne Structurante 1 (Saran, Piscine - Ardon, Limère)}}
|2 ={{RbE|2|#00763c|mo=Orléans, Ligne Structurante 2 (La Chapelle-Saint-Mesmin, G. Eiffel - Saint-Jean-de-Braye, Sainte-Marie)}}
|3 ={{RbE|3|#495da4|mo=Orléans, Ligne Structurante 3 (Ormes, Gourville - Orléans, Belneuf)}}
|4 ={{RbE|4|#ee7c00|mo=Orléans, Ligne Structurante 4 (Saint-Jean-de-Braye, Petite Espère, Fleury-les-Aubrais , Bicharderies)}}
|5 ={{RbE|5|#48bcbc|mo=Orléans, Ligne Structurante 5 (Saint-Pryvé-Saint-Mesmin, Quinze Pierres - Saint-Dennis-en-Val, Les Auvernats)}}
|6 ={{RbE|6|#1895d5|mo=Orléans, Ligne Structurante 6 (Saran, Les Rives du Lac - Orléans, Gare d'Orléans)}}
|7 ={{RbE|7|#62b33a|mo=Orléans, Ligne Structurante 7 (Orléans-la-Source, Chèques Postaux - Orléans, Gare d'Orléans)}}
|8 ={{RbE|8|#b80d7f|mo=Orléans, Ligne Structurante 8 (Saint-Jean-de-Braye, L. Blum - Mardié, Le Mersier)}}
|9 ={{RbE|9|#a23a2f|mo=Orléans, Ligne Structurante 9 (Semoy, Herveline - Orléans, Gare d'Orléans)}}
|11={{RbE|11|#8ac9ae|black|mo=Orléans, Ligne Standard 11 (Ormes, Paradis - Orléans, Gare d'Orléans)}}
|12={{RbE|12|#db89b9|black|mo=Orléans, Ligne Standard 12 (Boigny-sur-Bionne, Grand Bouland - Fleury-les-Aubrais, Gare des Aubrais)}}
|13={{RbE|13|#f39ec5|black|mo=Orléans, Ligne Standard 13 (Olivet, Lycée Hôtelier - Saint-Cyr-en-Val, L'Orme)}}
|15={{RbE|15|#fdd444|black|mo=Orléans, Ligne Standard 15 (Boigny-sur-Bionne, Rue aux Loups - Chécy, Guignardière)}}
|16={{RbE|16|#f0986a|black|mo=Orléans, Ligne Standard 16 (Saint-Hillaire-Saint-Mesmin, Croix aux Chats - Saint-Dennis-en-Val, Collège Val de Loire)}}
|17={{RbE|17|#cfa9d0|black|mo=Orléans, Ligne Standard 17 (Ingré, M. Genevoix - Olivet, Zénith)}}
|18={{RbE|18|#a9dcf1|black|mo=Orléans, Ligne Standard 18 (Saran, Cap Saran - Orléans, Gare d'Orléans)}}
|19={{RbE|19|#f08482|black|mo=Orléans, Ligne Standard 19 (Ingré, M. Genevoix - Saran, Bruères (- Fleury-les-Aubrais, Gare des Aubrais))}}
|20={{RbE|20|#9f0057|mo=Orléans, Ligne de Proximité 20 (La Chapelle-Saint-Mesmin, Cotteron - Saint-Jean-de-la-Ruelle, Trois Fontaines)}}
|21={{RbE|21|#9f0057|mo=Orléans, Ligne de Proximité 21 (Fleury-les-Aubrais, Gare des Aubrais - Fleury-les-Aubrais, Lamballe)}}
|22={{RbE|22|#9f0057|mo=Orléans, Ligne de Proximité 22 (Orléans, Zenith Circulaire)}}
|23={{RbE|23|#9f0057|mo=Orléans, Ligne de Proximité 23 (Olivet, C. Rivière - Foch (- Quatre Vents))}}
|25={{RbE|25|#9f0057|mo=Orléans, Ligne de Proximité 25 (Pont de l'Europe - Ambert)}}
|26={{RbE|26|#f1bd74|black|mo=Orléans, Ligne de Proximité 26 (Saint-Cyr-en-Val, Saint-Cyr Gare - Olivet, Les Aulnaies)}}
|27={{RbE|27|#f1bd74|black|mo=Orléans, Ligne de Proximité 27 (Saint-Jean-de-Braye, Gaudier-Brzeska - Semoy, L. de Vinci)}}
|28={{RbE|28|#9f0057|mo=Orléans, Ligne de Proximité 28 (Saint-Cyr-en-Val, Saint-Cyr Gare - Orléans-la-Source, Chèques Postaux)}}
|l ={{RbE|L|#f1bd74|black|mo=Orléans, Libellule (Pont de l'Europe - Chemin de Halage)}}
|o ={{RbE|O|#877465|mo=Orléans, Navette Électrique Centre-Ville (Orléans, De Gaulle Circulaire)}}
}}
| osaka={{#switch: {{lc: {{{2}}} }}
| 1|m={{RbE|M|#E61019}}
| 2|t={{RbE|T|#512387}}
| 3|y={{RbE|Y|#0079BB}}
| 4|c={{RbE|C|#009B66}}
| 5|s={{RbE|S|#E54C94}}
| 6|k={{RbE|K|#83471D}}
| 7|n={{RbE|N|#AACD50}}
| 8|i={{RbE|I|#00A1DF}}
| newtram|p={{RbE|P|#00A1DF}}
}}
| ottawa={{#switch: {{lc: {{{2}}} }}
| o1|confederation={{RbE|Confederation|#D62937}}
| o2|trillium={{RbE|Trillium|#7AC047}}
| 61={{RbE|61|#EE1A2C}}
| 62={{RbE|62|#EE1A2C}}
| 63={{RbE|63|#EE1A2C}}
| 64={{RbE|64|#EE1A2C}}
| 91={{RbE|91|#EE1A2C}}
| 94={{RbE|94|#EE1A2C}}
| 95={{RbE|95|#EE1A2C}}
| 97={{RbE|97|#EE1A2C}}
| 98={{RbE|98|#EE1A2C}}
| 99={{RbE|99|#EE1A2C}}
}}
| padua={{RbE|T|#005aab|white|mo=Tranvia di Padova (Capolinea sud - Pontevigodarzere)}}
| palermo={{#switch: {{lc: {{{2}}} }}
|1={{RbE|1|#99258a|white|b=c|bcolor=black|mo=Tranvia di Palermo, linea 1 (Stazione Centrale - Roccella)}}
|2={{RbE|2|#eb8343|white|b=c|bcolor=black|mo=Tranvia di Palermo, linea 2 (Notarbartolo - Piazza Armerina)}}
|3={{RbE|3|#0e9549|white|b=c|bcolor=black|mo=Tranvia di Palermo, linea 3 (Notarbartolo - CEP)}}
|4={{RbE|4|#14659c|white|b=c|bcolor=black|mo=Tranvia di Palermo, linea 4 (Notarbartolo - Pagano/La Loggia)}}
}}
| palma={{#switch: {{lc: {{{2}}} }}
| m1={{RbE|M1|#F1B03E}}
| m2={{RbE|M2|#E93324}}
}}
| panamacity={{#switch: {{lc: {{{2}}} }}
| 1={{RbE|1|#FF0000}}
| 2={{RbE|2|#00FF00}}
}}
| paris={{#switch: {{lc: {{{2}}} }}
|1={{RbE|1|#FFBF00|black|r=c|mo=Paris Métro, Line 1 (La Défense - Château de Vincennes)}}
|2={{RbE|2|#0054C9|r=c|mo=Paris Métro, Line 2 (Porte Dauphine - Nation)}}
|3={{RbE|3|#6E6E00|r=c|mo=Paris Métro, Line 3 (Pont de Levallois - Gallieni)}}
|3bis={{RbE|3<small>bis</small>|#83C9E7|black|r=c|mo=Paris Métro, Line 3bis (Gambetta - Porte des Lilas)}}
|4={{RbE|4|#A1006E|r=c|mo=Paris Métro, Line 4 (Porte de Clignancourt - Mairie de Montrouge)}}
|5={{RbE|5|#FF5A00|black|r=c|mo=Paris Métro, Line 5 (Bobigny-Pablo Picasso - Place d'Italie)}}
|6={{RbE|6|#83DD74|black|r=c|mo=Paris Métro, Line 6 (Charles de Gaule-Étoile - Nation)}}
|7={{RbE|7|#FF83B5|black|r=c|mo=Paris Métro, Line 7 (La Courneuve-8 Mai 1945 - Villejuif-Louis Aragon/Mairie d'Ivry)}}
|7bis={{RbE|7<small>bis</small>|#83DD74|black|r=c|mo=Paris Métro, Line 7bis (Louis Blanc - Pré-Saint-Gervais)}}
|8={{RbE|8|#D383BF|black|r=c|mo=Paris Métro, Line 8 (Ballard - Pointe du Lac)}}
|9={{RbE|9|#D4D403|black|r=c|mo=Paris Métro, Line 9 (Pont de Sèvres - Mairie de Montreuil)}}
|10={{RbE|10|#DD9700|black|r=c|mo=Paris Métro, Line 10 (Boulogne-Pont de Saint-Cloud - Gare d'Austerlitz)}}
|11={{RbE|11|#6E4718|r=c|mo=Paris Métro, Line 11 (Châtelet - Mairie des Lilas)}}
|12={{RbE|12|#006439|r=c|mo=Paris Métro, Line 12 (Front Populaire - Mairie d'Issy)}}
|13={{RbE|13|#83C9E7|black|r=c|mo=Paris Métro, Line 13 (Les Courtilles/Saint-Denis-Université - Châtillon-Montrouge)}}
|14={{RbE|14|#640083|r=c|mo=Paris Métro, Line 14 (Saint-Lazare - Olympiades)}}
|15={{RbE|15|#A90F32|r=c|mo=Paris Métro, Line 15 (Pont de Sèvres - Noisy-Champs)}}
|16={{RbE|16|#427B7B|r=c|mo=Paris Métro, Line 16 (Saint-Dennis Pleyel - Noisy-Champs)}}
|17={{RbE|17|#EC7CAE|r=c|mo=Paris Métro, Line 17 (Saint-Dennis Pleyel - Le Mesnil-Amelot)}}
|18={{RbE|18|#95BF32|r=c|mo=Paris Métro, Line 18 (Aéroport d'Orly - Versailles-Chantiers)}}
|p={{RbE|P|white|#F5D05C|r=e|b=t|mo=Transilien, Paris Est}}
|h={{RbE|H|white|#8E5E56|r=e|b=t|mo=Transilien, Paris Nord}}
|k={{RbE|K|white|#D0BF29|r=e|b=t|mo=Transilien, Paris Nord}}
|j={{RbE|J|white|#DADA41|r=e|b=t|mo=Transilien, Paris Saint-Lazare}}
|l={{RbE|L|white|#8D99C8|r=e|b=t|mo=Transilien, Paris Saint-Lazare}}
|u={{RbE|U|white|#DD2B74|r=e|b=t|mo=Transilien, Paris La Défense}}
|n={{RbE|N|white|#00A092|r=e|b=t|mo=Transilien, Paris Montparnasse}}
|r={{RbE|R|white|#E9C1D9|r=e|b=t|mo=Transilien, Paris Sud-Est}}
|t1={{RbE|1|white|#0054C9|r=c|b=t|mo=Paris Tramway, Line 1 (Asnières-Quatre Routes – Noisy-le-Sec)}}
|t2={{RbE|2|white|#A1006E|r=c|b=t|mo=Paris Tramway, Line 2 (Pont de Bezons – Porte de Versailles)}}
|t3a={{RbE|3a|white|#FF6D18|r=c|b=t|mo=Paris Tramway, Line 3a (Pont du Garigliano – Porte de Vincennes)}}
|t3b={{RbE|3b|white|#009942|r=c|b=t|mo=Paris Tramway, Line 3b (Porte de Vincennes - Porte d'Asnières)}}
|t4={{RbE|4|white|#F3B512|r=c|b=t|mo=Paris Tramway, Line 4 (Aulnay-sous-Bois/Arboretum – Bondy)}}
|t5={{RbE|5|white|#640083|r=c|b=t|mo=Paris Tramway, Line 5 (Saint-Denis – Garges-Sarcelles)}}
|t6={{RbE|6|white|#FF3C2A|r=c|b=t|mo=Paris Tramway, Line 6 (Châtillon – Viroflay)}}
|t7={{RbE|7|white|#6E4718|r=c|b=t|mo=Paris Tramway, Line 7 (Villejuif – Athis-Mons)}}
|t8={{RbE|8|white|#6F6F00|r=c|b=t|mo=Paris Tramway, Line 8 (Saint-Denis – Épinay-sur-Seine/Villetaneuse)}}
|t9={{RbE|9|white|#30B6CE|r=c|b=t|mo=Paris Tramway, Line 9 (Porte de Choisy - Orly)}}
|t10={{RbE|10|white|#C4D887|r=c|b=t|mo=Paris Tramway, Line 10 (Antony - Clamart)}}
|t11={{RbE|11|white|#E41111|r=c|b=t|mo=Paris Tramway, Line 11 (Épinay-sur-Seine - Le Bourget)}}
|t12={{RbE|12|white|#A0283C|r=c|b=t|mo=Paris Tramway, Line 12 (Massy-Palaiseau - Évry-Courcouronnes)}}
|t13={{RbE|13|white|#6E4722|r=c|b=t|mo=Paris Tramway, Line 13 (Saint-Cyr - Achères-Ville)}}
|a|rera={{RbE|A|white|#FE372E|r=c|b=t|mo=Réseau Express Régional Line A}}
|b|rerb={{RbE|B|white|#4799DE|r=c|b=t|mo=Réseau Express Régional Line B}}
|c|rerc={{RbE|C|white|#FCD946|r=c|b=t|mo=Réseau Express Régional Line C}}
|d|rerd={{RbE|D|white|#75A540|r=c|b=t|mo=Réseau Express Régional Line D}}
|e|rere={{RbE|E|white|#BD76A1|r=c|b=t|mo=Réseau Express Régional Line E}}
}}
| perth={{#switch: {{lc: {{{2}}} }}
|circle={{RbE|998/999|#009E58}}
|cat|centralareatransit={{RbE|CAT|black}}
|central={{RbE|Central|#A6AA12}}
|northern={{RbE|Northern|#A90056}}
|eastern={{RbE|Eastern|#005A9C}}
|western={{RbE|Western|#FEBE10}}
|southeastern={{RbE|South Eastern|#E06F1D}}
|southern={{RbE|Southern}}
|armadale|thornlie|at={{RbE|AT|#febe10|black|mo=Armadale/Thornlie Line}}
|fremantle|fr={{RbE|FR|#005a9c|mo=Fremantle Line}}
|joondalup|jd={{RbE|JD|#a6aa12|mo=Joondalup Line}}
|mandurah|mn={{RbE|MN|#e06f1d|mo=Mandurah Line}}
|midland|md={{RbE|MD|#a90056|mo=Midland Line}}
}}
| porto={{#switch: {{lc: {{{2}}} }}
| a={{RbE|A|#0083D7|r=c|mo=Porto Metro, Line A (Estádio do Dragão - Senhor de Matosinhos)}}
| b={{RbE|B|#E62621|r=c|mo=Porto Metro, Line B (Estádio do Dragão - Póvoa de Varzim)}}
| c={{RbE|C|#6EAB24|r=c|mo=Porto Metro, Line C (Campanhã - ISMAI)}}
| d={{RbE|D|#FFA700|r=c|mo=Porto Metro, Line D (Hospital São João - Santo Ovídio)}}
| e={{RbE|E|#645A95|r=c|mo=Porto Metro, Line E (Trindade - Aeroporto)}}
| f={{RbE|F|#F96915|r=c|mo=Porto Metro, Line F (Fânzeres - Senhora de Hora)}}
| g={{RbE|G|r=c|mo=Porto Metro, Line G (Casa da Música - São Bento)}}
| funicular={{RbE|Guindais|#9d8f82|mo=Porto Metro, Guindais Funicular (Ribeira - Batalha)}}
| 1={{RbE|1|black|mo=Porto, Tramline 1 (Passeio Alegre - Infante)}}
|18={{RbE|18|black|mo=Porto, Tramline 18 (Massarelos - Carmo)}}
|22={{RbE|22|black|mo=Porto, Tramline 22 (Carmo - Batalha)}}
}}
| poznań|poznan={{#switch:{{lc: {{{2}}} }}
|h={{RbE|H|#0d7b49|#fcfdfd|r=c|mo=Poznań Tramway, Line H (Plac Wielkopolski - Stare Zoo)}}
|0={{RbE|0|#0d7b49|#fcfdfd|r=c|mo=Poznań Tramway, Line 0 (Zajezdnia Madalińskiego circle line)}}
|1={{RbE|1|#de1f64|#fcfdfd|r=c|mo=Poznań Tramway, Line 1 (Junikowo - Franowo)}}
|3={{RbE|3|#8e364c|#fcfdfd|r=c|mo=Poznań Tramway, Line 3 (Lechicka/Naramowicka - Ogrody)}}
|5={{RbE|5|#92be38|#2b2b28|r=c|mo=Poznań Tramway, Line 5 (Górczyn - Unii Lubelskiej)}}
|6={{RbE|6|#32a044|#fcfdfd|r=c|mo=Poznań Tramway, Line 6 (Miłostowo - Junikowo)}}
|7={{RbE|7|#2d4695|#fcfdfd|r=c|mo=Poznań Tramway, Line 7 (Zawady - Ogrody)}}
|8={{RbE|8|#e0292b|#fcfdfd|r=c|mo=Poznań Tramway, Line 8 (Górczyn PKM - Miłostowo)}}
|9={{RbE|9|#e95529|#2b2b28|r=c|mo=Poznań Tramway, Line 9 (Starołęka Mała - Piątkowska)}}
|10={{RbE|10|#f5b931|#2b2b28|r=c|mo=Poznań Tramway, Line 10 (Połabska - Dębiec PKM)}}
|11={{RbE|11|#60bca5|#2b2b28|r=c|mo=Poznań Tramway, Line 11(Piątkowska - Dębiec PKM)}}
|12={{RbE|12|#cdaccf|#2b2b28|r=c|mo=Poznań Tramway, Line 12 (Starołęka PKM - Os. Sobieskiego)}}
|13={{RbE|13|#e0292b|#fcfdfd|r=c|mo=Poznań Tramway, Line 13 (Junikowo - Unii Lubelskiej)}}
|14={{RbE|14|#e0292b|#fcfdfd|r=c|mo=Poznań Tramway, Line 14 (Os. Sobieskiego - Górczyn PKM)}}
|15={{RbE|15|#60bca5|#2b2b28|r=c|mo=Poznań Tramway, Line 15 (Budziszyńska - Os. Sobieskiego)}}
|16={{RbE|16|#e0292b|#fcfdfd|r=c|mo=Poznań Tramway, Line 16 (Franowo - Os. Sobieskiego)}}
|17={{RbE|17|#e0292b|#fcfdfd|r=c|mo=Poznań Tramway, Line 17 (Starołęka PKM - Ogrody)}}
|18={{RbE|18|#60bca5|#2b2b28|r=c|mo=Poznań Tramway, Line 18 (Ogrody - Rynek Wildecki)}}
|39={{RbE|39|#fcfdfd|#2b2b28|r=c|b=t|mo=Poznań Tramway, Line 39 (Junikowo - Dębiec PKM)}}
}}
| prague={{#switch: {{lc: {{{2}}} }}
|a ={{RbE|A|green|mo=Prague Metro, Line A (Nemocnice Motol - Depo Hostivař)}}
|b ={{RbE|B|yellow|black|mo=Prague Metro, Line B (Zličín - Černý Most)}}
|c ={{RbE|C|red|mo=Prague Metro, Line C (Letňany - Háje)}}
|d ={{RbE|D|blue|mo=Prague Metro, Line D (Náměstí Míru - Depo Písnice)}}
|r49={{RbE|R49|white|black|b=c|bcolor=#cde76e|mo=Esko Prague Line R49: Prague - Benešov u/P}}
|s9={{RbE|S9|white|black|b=c|bcolor=#64cbcd|mo=Esko Prague Line S9: Benešov u/P - Prague - Lysá n/L}}
|1 ={{RbE|1|red|mo=Prague Tramline 1 (Sídliště Petřiny – Spojovací)}}
|2 ={{RbE|2|red|mo=Prague Tramline 2 (Sídliště Petřiny – Nádraží Braník)}}
|3 ={{RbE|3|red|mo=Prague Tramline 3 (Nádraží Braník − Kobylisy / Březiněveská)}}
|4 ={{RbE|4|red|mo=Prague Tramline 4 (Sídliště Barrandov – Čechovo náměstí)}}
|5 ={{RbE|5|red|mo=Prague Tramline 5 (Ústřední dílny DP – Sídliště Barrandov)}}
|6 ={{RbE|6|red|mo=Prague Tramline 6 (Palmovka – Kubánské náměstí)}}
|7 ={{RbE|7|red|mo=Prague Tramline 7 (Rádlická – Černokostelecká)}}
|8 ={{RbE|8|red|mo=Prague Tramline 8 (Nádraží Podbaba – Starý Hloubětín)}}
|9 ={{RbE|9|red|mo=Prague Tramline 9 (Sídliště Řepy – Spojovací)}}
|10={{RbE|10|red|mo=Prague Tramline 10 (Sídliště Řepy – Sídliště Ďáblice)}}
|11={{RbE|11|red|mo=Prague Tramline 11 (Spořilov – Spojovací)}}
|12={{RbE|12|red|mo=Prague Tramline 12 (Sídliště Barrandov – Výstaviště Holešovice)}}
|13={{RbE|13|red|mo=Prague Tramline 13 (Náměstí Bratří Synků – Černokostelecká)}}
|14={{RbE|14|red|mo=Prague Tramline 14 (Spořilov – Nádraží Vysočany / Vysočanská)}}
|15={{RbE|15|red|mo=Prague Tramline 15 (Kotlářka – Olšanské hřbitovy)}}
|16={{RbE|16|red|mo=Prague Tramline 16 (Lehovec – Kotlářka)}}
|17={{RbE|17|red|mo=Prague Tramline 17 (Sídliště Modřany / Levského – Výstaviště Holešovice)}}
|18={{RbE|18|red|mo=Prague Tramline 18 (Nádraží Podbaba – Vozovna Pankrác)}}
|20={{RbE|20|red|mo=Prague Tramline 20 (Sídliště Barrandov – Divoká Šárka)}}
|21={{RbE|21|red|mo=Prague Tramline 21 (Sídliště Modřany / Levského – Kotlářka)}}
|22={{RbE|22|red|mo=Prague Tramline 22 (Vypich – Nádraží Strašnice / Radošovická)}}
|23={{RbE|23|red|mo=Prague Tramline 23 (Královka - Zvonařka)}}
|24={{RbE|24|red|mo=Prague Tramline 24 (Kubánské náměstí – Kobylisy / Březiněveská)}}
|25={{RbE|25|red|mo=Prague Tramline 25 (Bílá Hora – Lehovec)}}
|26={{RbE|26|red|mo=Prague Tramline 26 (Divoká Šárka – Nádraží Hostivař)}}
|41={{RbE|41|red|mo=Prague Tramline 41 (Vozovna Střešovice – Výstaviště)}}
|bus={{RbE|{{{3}}}|white|#0095d9|b=t}}
}}
| qingdao={{#switch: {{lc: {{{2}}} }}
| 1={{RbE|1|#FFE100}}
| 2={{RbE|2|#C32A05}}
| 3={{RbE|3|#006DBB}}
| 4={{RbE|4|#00763C}}
| 5={{RbE|5|#9E1A96}}
| 6={{RbE|6|#6CA3D8}}
| 7={{RbE|7|#F08400}}
| 8={{RbE|8|#E74893}}
| 9={{RbE|9|#62A60A}}
|10={{RbE|10|#B46E00}}
|11={{RbE|11|#304299}}
|12={{RbE|12|#8446AC}}
|13={{RbE|13|#009C86}}
|14={{RbE|14|#FF5859}}
|15={{RbE|15|#F3A9B3}}
|16={{RbE|16|#8E8400}}
}}
| qom={{#switch: {{lc: {{{2}}} }}
| a={{RbE|A}}
| m={{RbE|M}}
}}
| reims={{#switch: {{lc: {{{2}}} }}
|a ={{RbE| A|#e30613|mo=Tramway de Reims, Ligne A (Neufchâtel - Hôpital Debré)}}
|b ={{RbE| B|#009fe3|mo=Tramway de Reims, Ligne B (Neufchâtel - Gare Champagne TGV)}}
|1 ={{RbE| 1|#009e44|mo=Reims, Ligne 1 (Boutréaux - Centre Commercial)}}
|2 ={{RbE| 2|#ed6b06|mo=Reims, Ligne 2 (Gare Centre - Cormontreuil)}}
|3 ={{RbE| 3|#d74c95|mo=Reims, Ligne 3 (Maurencienne - Moulin de la Housse)}}
|4 ={{RbE| 4|#ffdd00|black|mo=Reims, Ligne 4 (Orgeval - Hôpital Debré)}}
|5 ={{RbE| 5|#e83843|mo=Reims, Ligne 5 (Route de Witry - Champfleury (- C. Cial))}}
|6 ={{RbE| 6|#c1a6d0|black|mo=Reims, Ligne 6 (Gare Centre - - Croix Blandin)}}
|7 ={{RbE| 7|#6e57a1|mo=Reims, Ligne 7 (Gare Centre - Apollinaire)}}
|8 ={{RbE| 8|#00a0dd|mo=Reims, Ligne 8 (La Couturelle - Champ Paveau)}}
|9 ={{RbE| 9|#a03122|mo=Reims, Ligne 9 (Victoire - Blancs Monts)}}
|11={{RbE| 11|#b37b80|mo=Reims, Ligne 11 (Gare Centre - Croix du Sud)}}
|12={{RbE| 12|#76b529|mo=Reims, Ligne 12 (Champagne TGV - Cormontreuil)}}
|13={{RbE| 13|#f6a014|mo=Reims, Ligne 13 (Champagne TGV - Saint-Brice-Courcelles)}}
|14={{RbE| 14|#c2d100|black|mo=Reims, Ligne 14 (La Neuvillette - Sébastopol)}}
|15={{RbE| 15|#008b96|mo=Reims, Ligne 15 (Méliès - Coubertin)}}
|16={{RbE| 16|#009e92|mo=Reims, Ligne 16 (Prunay - Opéra-Cathédrale)}}
|17={{RbE| 17|#658d2e|mo=Reims, Ligne 17 (Z.I. Pompelle - Saint-Timothée)}}
|18={{RbE| 18|#9daeab|mo=Reims, Ligne 18 (Saint-Brice-Courcelles - Trois Fontaines)}}
|c={{RbE|CityBus|#a2c62f|mo=Reims, Ligne C1 (Reims - Care Centre)}}
}}
| rennes={{#switch: {{lc: {{{2}}} }}
|a={{RbE|a|white|#ee1d23|r=c|b=t|mo=Rennes Métro, Ligne A (J.F. Kennedy - La Poterie)}}
|b={{RbE|b|white|#1ca85a|r=c|b=t|mo=Rennes Métro, Ligne B (Saint-Jacques-Gaîté - Cesson-Viasilva)}}
|c1={{RbE|C1|#95c11e|black|mo=Rennes, Chronostar Ligne C1 (Cesson-Sévigné, Champs Blancs - Chantepie, R. Parks)}}
|c2={{RbE|C2|#008bd2|mo=Rennes, Chronostar Ligne C2 (Saint-Grégoire, Champ Daguet - Haut-Sancé)}}
|c3={{RbE|C3|#00893e|mo=Rennes, Chronostar Ligne C3 (Saint-Laurent - Henri Fréville)}}
|c4={{RbE|C4|#6f2282|mo=Rennes, Chronostar Ligne C4 (Saint-Grégoire, Grand Quartier - Z.A. Saint-Sulpice)}}
|c5={{RbE|C5|#f39200|black|mo=Rennes, Chronostar Ligne C5 (Patton - Lycée Bréquigny)}}
|c6={{RbE|C6|#61c3d9|mo=Rennes, Chronostar Ligne C6 (Cesson-Sévigné, Rigourdière - Saint-Jacques, Aéroport)}}
|9 ={{RbE|9|#004f9e|mo=Rennes, Ligne Urbain 9 (Saint-Laurent - Cleunay)}}
|11={{RbE|11|#ef859d|black|mo=Rennes, Ligne Urbain 11 (Vezin-le-Coquet, Z.I. Ouest - La Poterie)}}
|12={{RbE|12|#ba65a5|mo=Rennes, Ligne Urbain 12 (Villejean-Université - La Poterie)}}
|13={{RbE|13|#6f2282|mo=Rennes, Ligne Urbain 13 (Saint-Jacques, Gautrais/Cleunay - Chantepie, Cucé)}}
|14={{RbE|14|#a96f23|mo=Rennes, Ligne Urbain 14 (Roazhon Park - Beaulieu-Atalante)}}
|31={{RbE|31|#fff164|#e20035|mo=Rennes, Ligne Inter-quartier 31 (Villejean-Churchill - Cesson-Sévigné, Stade Dézerseul)}}
|32={{RbE|32|#fff164|#e20035|mo=Rennes, Ligne Inter-quartier 32 (Triangle - Beaulieu-Atalante)}}
|34={{RbE|34|#fff164|#e20035|mo=Rennes, Ligne Inter-quartier 34 (Z.A. Saint-Sulpice - Chantepie, R. Parks)}}
|35={{RbE|35|#fff164|#e20035|mo=Rennes, Ligne Inter-quartier 35 (Cesson-Sévigné, Champs Blancs - Cesson-Sévigné, Gare)}}
|36={{RbE|36|#fff164|#e20035|mo=Rennes, Ligne Inter-quartier 36 (Place Hoche - Saint-Grégoire, Edonia)}}
|37={{RbE|37|#fff164|#e20035|mo=Rennes, Ligne Inter-quartier 37 (Henri Fréville - Saint-Jacques, Morinais)}}
|38={{RbE|38|#fff164|#e20035|mo=Rennes, Ligne Inter-quartier 38 (Cesson-Sévigné, Ménouriais - Cesson-Sévigné, Morinais)}}
|40={{RbE|40|#ffdd00|black|mo=Rennes, Ligne Express 40 (République - Beaulieu-Atalante)}}
|41|41ex={{RbE|41ex|#ffdd00|black|mo=Rennes, Ligne Express 41ex (Gares - Beaulieu-Atalante)}}
|44={{RbE|44|#ffdd00|black|mo=Rennes, Ligne Express 44 (République - Joliot Curie)}}
}}
| riyadh={{#switch: {{lc: {{{2}}} }}
| 1={{RbE|1|#0354A6|mo=Line 1 (Riyadh Metro)}}
| 2={{RbE|2|#DC241F|mo=Line 2 (Riyadh Metro)}}
| 3={{RbE|3|#FF9A00|mo=Line 3 (Riyadh Metro)}}
| 4={{RbE|4|#FFD700|mo=Line 4 (Riyadh Metro)}}
| 5={{RbE|5|#009530|mo=Line 5 (Riyadh Metro)}}
| 6={{RbE|6|#9016B2|mo=Line 6 (Riyadh Metro)}}
}}
| riodejaneiro={{#switch: {{lc: {{{2}}} }}
| 1|orange={{RbE|1|#F7630B}}
| 2|green={{RbE|2|#269E34}}
| 4|yellow={{RbE|4|#FFCC29}}
}}
| rome|roma={{#switch: {{lc: {{{2}}} }}
|2 ={{RbE|2|red|mo=Tranvia di Roma, linea 2 (Piazzale Flaminio - Piazza Mancini)}}
|3 ={{RbE|3|red|mo=Tranvia di Roma, linea 3 (Piazza Thorvaldsen - Stazione Trastevere)}}
|5 ={{RbE|5|red|mo=Tranvia di Roma, linea 5 (Stazione Termini - Piazza dei Gerani)}}
|8 ={{RbE|8|red|mo=Tranvia di Roma, linea 8 (Piazza Venezia - Via del Castaletto)}}
|14={{RbE|14|red|mo=Tranvia di Roma, linea 14 (Stazione Termini - Viale Palmiro Togliatti)}}
|19={{RbE|19|red|mo=Tranvia di Roma, linea 19 (Piazza Risorgimento - Piazza dei Gerani)}}
|a|ma ={{RbE|A|#f36c1b|mo=Metropolitana di Roma, linea A (Battstini - Anagnina)}}
|b|mb ={{RbE|B|#0072bc|mo=Metropolitana di Roma, linea B (Laurentina - Rebibbia)}}
|b1|mb1={{RbE|B1|#0072bc|mo=Metropolitana di Roma, linea B1 (Laurentina - Jonio)}}
|c|mc ={{RbE|C|#008850|mo=Metropolitana di Roma, linea C (Monte Compatri-Pantano - San Giovanni)}}
|d|md ={{RbE|D|#fbc500|mo=Metropolitana di Roma, linea D (Ojetti - Agricoltura)}}
|e|me ={{RbE|E|#06a0e2|mo=Metropolitana di Roma, linea E (Colombo - Piramide)}}
|f|mf ={{RbE|F|#7b7ab4|mo=Metropolitana di Roma, linea F (Framinio - Montebello)}}
|g|mg ={{RbE|G|#fbd200|mo=Metropolitana di Roma, linea G (Termini - Università Tor Vergata)}}
|fl1={{RbE|FL1|#007662|mo=Ferrovie Laziali, linea 1 (Orte - Fiumicino Aeroporto)}}
|fl2={{RbE|FL2|#003973|mo=Ferrovie Laziali, linea 2 (Tivoli - Roma Tiburtina)}}
|fl3={{RbE|FL3|#88ab9f|mo=Ferrovie Laziali, linea 3 (Viterbo Porta Fiorentina - Roma Ostiense)}}
|fl4={{RbE|FL4|#8f620e|mo=Ferrovie Laziali, linea 4 (Roma Termini - Fracati/Laziale/Velletri)}}
|fl5={{RbE|FL5|#d1d500|mo=Ferrovie Laziali, linea 5 (Civitavecchia - Roma Termini)}}
|fl6={{RbE|FL6|#d777b2|mo=Ferrovie Laziali, linea 6 (Roma Termini - Cassino)}}
|fl7={{RbE|FL7|#92d466|mo=Ferrovie Laziali, linea 7 (Roma Termini - Formia-Gaeta)}}
|fl8={{RbE|FL8|#65c56a|mo=Ferrovie Laziali, linea 8 (Roma Termini - Nettuno)}}
}}
| rostock={{#switch: {{lc: {{{2}}} }}
|s1={{RbE|S1|#00A895|r=c|mo=S-Bahn Rostock, Linie 1 (Warnemünde - Hauptbahnhof)}}
|s2={{RbE|S2|#A3248D|r=c|mo=S-Bahn Rostock, Linie 2 (Warnemünde - Schwaan - Güstrow)}}
|s3={{RbE|S3|#A66641|r=c|mo=S-Bahn Rostock, Linie 3 (Warnemünde - Laage - Güstrow)}}
|1|t1={{RbE|1|#712090|mo=Straßenbahn Rostock, Linie 1 (Lichtenhagen - Lütten Klein, Rügener Straße - Toitenwinkel, Hafenallee)}}
|2|t2={{RbE|2|#f47216|mo=Straßenbahn Rostock, Linie 2 (Reutershagen - Kurt-Schumacher-Ring)}}
|3|t3={{RbE|3|#870e12|mo=Straßenbahn Rostock, Linie 3 (Neuer Friedhof - Platz der Jugend - Dierkower Allee)}}
|4|t4={{RbE|4|#d136a3|mo=Straßenbahn Rostock, Linie 4 (Campus Südstadt - Dierkower Allee)}}
|5|t5={{RbE|5|#ed1c24|mo=Straßenbahn Rostock, Linie 5 (Lichthagen, Mecklenburger Allee - Südblick)}}
|6|t6={{RbE|6|#fab20b|mo=Straßenbahn Rostock, Linie 6 (Neuer Friedhof - Campus Südstadt)}}
}}
| rotterdam={{#switch: {{lc: {{{2}}} }}
| a ={{RbE|A|green}}
| b ={{RbE|B|yellow|black}}
| c ={{RbE|C|red}}
| d ={{RbE|D|lightblue}}
| e ={{RbE|E|navy}}
| 2 ={{RbE|2|#90130C|mo=Rotterdam tramline 2 (Charlois - Keizerswaard)}}
| 4 ={{RbE|4|#A4107F|mo=Rotterdam tramline 4 (Molenlaan - Marconiplein)}}
| 7 ={{RbE|7|#008030|mo=Rotterdam tramline 7 (Woudestein - Willemsplein)}}
| 8 ={{RbE|8|#DE589B|mo=Rotterdam tramline 8 (Kleiweg - Spangen)}}
| 10={{RbE|10|#119549|mo=Rotterdam tramline 10 (Citytour)}}
| 12={{RbE|12|#99A99A|mo=Rotterdam tramline 12 (Rotterdam CS - Beverwaard)}}
| 20={{RbE|20|#E3000B|mo=Rotterdam tramline 20 (Lombardijen - Rotterdam CS)}}
| 21={{RbE|21|#53346C|mo=Rotterdam tramline 21 (De Esch - Schiedam Woudhoek)}}
| 23={{RbE|23|#66BA86|mo=Rotterdam tramline 23 (Beverwaard - Marconiplein)}}
| 24={{RbE|24|#53346C|mo=Rotterdam tramline 24 (De Esch - Vlaardingen Holy)}}
| 25={{RbE|25|#F7A300|mo=Rotterdam tramline 25 (Carnisselande - Schiebroek)}}
}}
| rouen={{#switch: {{lc: {{{2}}} }}
|m|metro={{RbE|Métro|#000070|mo=Rouen «Métro» (Boulingrin - Technopôle/Georges Braque)}}
|t1={{RbE|T1|#e4312b|r=c|b=t|mo=Rouen TEOR T1 (CHU Charles Nicolle - Mont aux Malades)}}
|t2={{RbE|T2|#008a57|r=c|b=t|mo=Rouen TEOR T2 (Marie. V. Schoelcher - Tamarelle)}}
|t3={{RbE|T3|#6a1973|r=c|b=t|mo=Rouen TEOR T3 (Derécu-Lavoisier - Monet)}}
|t4={{RbE|T4|#f2c209|black|r=c|b=t|mo=Rouen TEOR T4 (Boulingrin - Zénith Parc-Expo)}}
|f1={{RbE|F1|#e2007a|r=c|b=t|mo=Rouen FAST F1 (Plaine de la Ronce - Stade Diochon)}}
|f2={{RbE|F2|#a05598|r=c|b=t|mo=Rouen FAST F2 (Centre Commercial La Vatine I Parc de la Vatine - Tamarelle)}}
|f3={{RbE|F3|#ffdd00|black|r=c|b=t|mo=Rouen FAST F3 (Théâtre des Arts - Pôle Multimodal)}}
|f4={{RbE|F4|#ea670c|r=c|b=t|mo=Rouen FAST F4 (Hameau de Frévaux - Mont-Riboudet Kindarena)}}
|f5={{RbE|F5|#b1c800|black|r=c|b=t|mo=Rouen FAST F5 (Théâtre des Arts - Lycée Galilée)}}
|5 ={{RbE|5|#0090d4|mo=Rouen Ligne Régulière 5 (Collège Jules Verne - Martainville)}}
|6 ={{RbE|6|#00abe0|mo=Rouen Ligne Régulière 6 (Les Bouttières - Beauvoisine)}}
|8 ={{RbE|8|#ffdd00|black|mo=Rouen Ligne Régulière 8 (Île Lacroix - Longs Vallons I Ecole Moulin)}}
|9 ={{RbE|9|#9cd5e0|black|mo=Rouen Ligne Régulière 9 (E. Lacroix - Chapelle Saint-Siméon)}}
|11={{RbE|11|#77b758|black|mo=Rouen Ligne Régulière 11 (Collège Léonard de Vinci - Grand Val)}}
|13={{RbE|13|#f7af4c|black|mo=Rouen Ligne Régulière 13 (Hôtel de Ville - Mairie Belbeuf/Ecole de Musique)}}
|20={{RbE|20|#c19fc7|black|mo=Rouen Ligne Régulière 20 (Le Chapitre - Rue de l'Église/Mairie Saint-Aubin-Épinay)}}
|22={{RbE|22|#f2a4ad|black|mo=Rouen Ligne Régulière 22 (Bois Tisoin - Boulingrin)}}
|26={{RbE|26|#006ab3|mo=Rouen Ligne Régulière 26 (Salle des Fêtes - Mont-Riboudet Kindarena)}}
|27={{RbE|27|#77b758|black|mo=Rouen Ligne Régulière 27 (Gare Saint-Étienne-du-Rouvray - Bel-Air)}}
|29={{RbE|29|#9cd5e0|black|mo=Rouen Ligne Régulière 29 (Route de Montville - Halte Routière)}}
|30={{RbE|30|#d10019|mo=Rouen Ligne Régulière 30 (Quai/Mairie Le Trait - Halte Routière)}}
|32={{RbE|32|#248bcb|mo=Rouen Ligne Régulière 32 (Champ de Foire - Théâtre des Arts)}}
|33={{RbE|33|#248bcb|mo=Rouen Ligne Régulière 33 (Pont de la Chapelle - Théâtre des Arts)}}
|34={{RbE|34|#00a984|mo=Rouen Ligne Régulière 34 (Théâtre des Arts - Vesta)}}
|38={{RbE|38|#9cd5e0|black|mo=Rouen Ligne Régulière 38 (Louise-Michel/Mairie Montmain - Mont Pilon)}}
|39={{RbE|39|#f7af4c|black|mo=Rouen Ligne Régulière 39 (Rue du Bac - Lycée Fernand Léger)}}
|40={{RbE|40|#f7af4c|black|mo=Rouen Ligne Régulière 40 (Boulingrin - La Varenne)}}
|41={{RbE|41|#f7af4c|black|mo=Rouen Ligne Régulière 41 (La Bastille - Ancienne Mare)}}
|42={{RbE|42|#a05598|mo=Rouen Ligne Régulière 42 (La Houssière - Centre Routier)}}
|43={{RbE|43|#9cd5e0|black|mo=Rouen Ligne Régulière 43 (Bois des Dames - Place du Vivier)}}
|88={{RbE|88|#d3d200|black|mo=Rouen Ligne Régulière 88 (Lycée Fernand Léger - Centre Coiffier)}}
|a ={{RbE|A|#cd0e25|mo=Rouen Ligne Régulière A (Mairie de Saint-Pierre - Mairie de Cléon)}}
|b ={{RbE|B|#234292|mo=Rouen Ligne Régulière B (Parc Saint-Cyr - Le Buquet l'Epine/Ecole de La Londe)}}
|c ={{RbE|C|#9d2884|mo=Rouen Ligne Régulière C (Bosc Tard - Les Arches)}}
|e ={{RbE|E|#009f61|mo=Rouen Ligne Régulière E (Mairie de Cléon - Moulin Saint-Etienne)}}
|f ={{RbE|F|#ea6992|mo=Rouen Ligne Régulière F (Z.I. L'Oison - Pôle Multimodal)}}
|d1={{RbE|D1|#744627|mo=Rouen Ligne Régulière D1 (Parc Saint-Cyr - Mairie de Cléon)}}
|d2={{RbE|D2|#9ac00a|black|mo=Rouen Ligne Régulière D2 (Mairie de Saint-Pierre - Pôle Multimodal)}}
}}
| saintetienne={{#switch: {{lc: {{{2}}} }}
|t1={{RbE|T1|#e3002d|mo=Tramway de Saint-Étienne, Ligne 1 (Hôptial Nord - Solaure)}}
|t2={{RbE|T2|#fbe500|black|mo=Tramway de Saint-Étienne, Ligne 2 (Cité du Design - Châteaucreux Gare)}}
|t3={{RbE|T3|#a2d81f|mo=Tramway de Saint-Étienne, Ligne 3 (Bellevue - Terrasse)}}
|m1={{RbE|M1|#0059aa|mo=Saint-Étienne, Ligne Métropole 1 (Bellevue - Église Corbusier)}}
|m2={{RbE|M2|#7c3fa2|mo=Saint-Étienne, Ligne Métropole 2 (Métare - Gare Firminy)}}
|m3={{RbE|M3|#f26e20|mo=Saint-Étienne, Ligne Métropole 3 (Cotonne - Terrenoire)}}
|m4={{RbE|M4|#f17091|mo=Saint-Étienne, Ligne Métropole 4 (Bellevue - Châteaucreux)}}
|m5={{RbE|M5|#38b983|mo=Saint-Étienne, Ligne Métropole 5 (Square Violette - Place Chipier)}}
|m6={{RbE|M6|#9fc536|black|mo=Saint-Étienne, Ligne Métropole 6 (Square Violette - IUT)}}
|m7={{RbE|M7|#965340|mo=Saint-Étienne, Ligne Métropole 7 (Bellevue - Michon)}}
|m9={{RbE|M9|#00aeef|mo=Saint-Étienne, Ligne Métropole 9 (Place Carnot - Montreynaud)}}
}}
| salzburg={{#switch: {{lc: {{{2}}} }}
|s1={{RbE|S1|#b7233f|r=e|mo=Salzburg S-Bahnlinie 1: Salzburg - Lamprechtshausen}}
|s11={{RbE|S11|#b7233f|r=e|mo=Salzburg S-Bahnlinie 11: Salzburg - Bürmoos - Ostermiething}}
|s2={{RbE|S2|#0073bd|r=e|mo=Salzburg S-Bahnlinie 2: Freilassing - Straßwalchen}}
|s3={{RbE|S3|#1cb449|r=e|mo=Salzburg S-Bahnlinie 3: Saalfelden - Schwarzach-St. Veit - Bad Reichenhall}}
|s4={{RbE|S4|#a165ab|r=e|mo=Salzburg S-Bahnlinie 4: Freilassing - Brechtesgaden}}
|t1|1={{RbE|T1|red|mo=Obuslinie 1: Kleßheim - Europark - Messe}}
|t2|2={{RbE|T2|red|mo=Obuslinie 2: Walserfeld - Obergnigl}}
|t3|3={{RbE|T3|red|mo=Obuslinie 3: Salzburg Süd - Salzburg Nord}}
|t4|4={{RbE|T4|red|mo=Obuslinie 4: Mayrwies - Liefering}}
|t5|5={{RbE|T5|red|mo=Obuslinie 5: Grödig - Birkendsiedlung - Hauptbahnhof - Itzling Planzmann}}
|t6|6={{RbE|T6|red|mo=Obuslinie 6: Parsch -Itzling West}}
|t7|7={{RbE|T7|red|mo=Obuslinie 7: Salzburg Süd - Salzachsee}}
|t8|8={{RbE|T8|red|mo=Obuslinie 8: Messe - Salzburg Süd}}
|t9|9={{RbE|T9|red|mo=Obuslinie 9: Europark - Justizgebäude - Kommunalfriedhof}}
|t10|10={{RbE|T10|red|mo=Obuslinie 10: Sam - Himmelreich - Walserfeld}}
|t12|12={{RbE|T12|red|mo=Obuslinie 12: Josefiau - Europark}}
|t14|14={{RbE|T14|red|mo=Obuslinie 14: Polizeidirektion - Liefering}}
}}
| sandiego={{#switch: {{lc: {{{2}}} }}
| blue={{RbE|Blue|white|#0071BC}}
| green={{RbE|Green|white|#00A650}}
| orange={{RbE|Orange|white|#F7931E}}
| silver={{RbE|Silver|white|#777777}}
| sprinter={{RbE|SPRINTER|white|#0055A4}}
| coaster={{RbE|COASTER|white|#0055A4}}
| bus=[[Berkas:MTS Bus icon.svg|{{{size|18}}}px|link=|]]
}}
| sanfrancisco={{#switch: {{lc: {{{2}}} }}
| j={{RbE|J|#FAA732|mo=Church}}
| k={{RbE|K|#529DBF|mo=Ingleside}}
| l={{RbE|L|#92228E|mo=Taraval}}
| m={{RbE|M|#008851|mo=Ocean View}}
| n={{RbE|N|#00519B|mo=Judah}}
| t={{RbE|T|#D30A43|mo=Third Street}}
| s={{RbE|S|#FFCD00|black|mo=Shuttle}}
| e={{RbE|E|#666666|mo=Embarcadero}}
| f={{RbE|F|#F0E78D|black|mo=Market and Wharves}}
| trolleybus|tb={{RbE|Tb|white|black|mo=Trolleybus}}
| streetcar={{RbE|Sc|white|black|mo=San Francisco Streetcar}}
| cablecarsystem={{RbE|CCS|white|black|mo=Cable Car System}}
}}
| santiago={{#switch: {{lc: {{{2}}} }}
| 1={{RbE|1|#EF1520}}
| 2={{RbE|2|#F79517}}
| 3={{RbE|3|#692B1E}}
| 4={{RbE|4|#2C2D93}}
| 4a={{RbE|4A|#00AEEF}}
| 5={{RbE|5|#049542}}
| 6={{RbE|6|#A45DB6}}
| 7={{RbE|7|#808080}}
| metrotren={{RbE|Metrotrén|#FF8816|#004CA1}}
| u1={{RbE|U1|#00A5DB|black}}
| u2={{RbE|U2|#09028F}}
| u3={{RbE|U3|#01C18E}}
| u4={{RbE|U4|#FF6200}}
| u5={{RbE|U5|#00B2B2}}
| u6={{RbE|U6|#D50202}}
| u7={{RbE|U7|#FFC900|black}}
}}
| santodomingo={{#switch: {{lc: {{{2}}} }}
| 1={{RbE|1|#0000ff}}
| 2={{RbE|2|#ff0000}}
| teleferico={{RbE|Teleferico|#341A2B}}
}}
| saopaulo={{#switch: {{lc: {{{2}}} }}
| 1={{RbE|1|#1a5ba3}}
| 2={{RbE|2|#008569}}
| 3={{RbE|3|#f04d43}}
| 4={{RbE|4|#ffd527}}
| 5={{RbE|5|#a84f9c}}
| 6={{RbE|6|#f47936}}
| 7={{RbE|7|#B81D64}}
| 8={{RbE|8|#8A8988}}
| 9={{RbE|9|#009496}}
| 10={{RbE|10|#0088B0}}
| 11={{RbE|11|#E87A65}}
| 12={{RbE|12|#1C2D72}}
| 13={{RbE|13|#00A150}}
| 14={{RbE|14|#0A1013}}
| 15={{RbE|15|#899194}}
| 16={{RbE|16|#8F00FF}}
| 17={{RbE|17|#f89734}}
| 18={{RbE|18|#964b00}}
| 19={{RbE|19|#0099cc}}
| 20={{RbE|20|#ff3366}}
}}
| sapporo={{#switch: {{lc: {{{2}}} }}
| n|namboku={{RbE|Namboku|#008000}}
| t|tozai|tōzai={{RbE|Tōzai|#FFA500}}
| h|toho|tōhō={{RbE|Tōhō|#0080FF}}
}}
| sarajevo={{#switch: {{lc: {{{2}}} }}
| 1 ={{RbE|1|#9feff1|mo=Sarajevo Tramline 1 (Željeznička stanica – Baščaršija)}}
| 2 ={{RbE|2|#14aca9|mo=Sarajevo Tramline 2 (Čengić Vila – Baščaršija)}}
| 3 ={{RbE|3|#0000FF|mo=Sarajevo Tramline 3 (Ilidža – Baščaršija)}}
| 4 ={{RbE|4|#015730|mo=Sarajevo Tramline 4 (Ilidža – Željeznička stanica)}}
| 5 ={{RbE|5|#0c7e93|mo=Sarajevo Tramline 5 (Nedžarići – Baščaršija)}}
| 6 ={{RbE|6|#1a5f5d|mo=Sarajevo Tramline 6 (Ilidža – Skenderija)}}
| 7 ={{RbE|7|#1a5f5d|mo=Sarajevo Tramline 7 (Nedžarići – Skenderija)}}
}}
| sassari={{RbE|T|red|mo=Metrosassari (Santa Maria di Pisa - Emiciclo Garibaldi)}}
| seattle={{#switch: {{lc: {{{2}}} }}
| a={{RbE|A|white|#B50939}}
| b={{RbE|B|white|#B50939}}
| c={{RbE|C|white|#B50939}}
| d={{RbE|D|white|#B50939}}
| e={{RbE|E|white|#B50939}}
| f={{RbE|F|white|#B50939}}
| g={{RbE|G|white|#B50939}}
| h={{RbE|H|white|#B50939}}
| streetcar={{RbE|Seattle Streetcar|white|#EC4025}}
| monorail={{RbE|Monorail|black|#00AEEF}}
| central={{RbE|Central Link|#F05946}}
| tacoma={{RbE|Tacoma Link|#F7BF15}}
| sounder|sdrx={{RbE|SDRX|white|#003E7E}}
}}
| seoul={{#switch: {{lc: {{{2}}} }}
| s1={{RbE|1|#053393}}
| s2={{RbE|2|#30A33A}}
| s3={{RbE|3|#FE5B07}}
| s4={{RbE|4|#2EA2C9}}
| s5={{RbE|5|#8C4FA5}}
| s6={{RbE|6|#C75F1B}}
| s7={{RbE|7|#536405}}
| s8={{RbE|8|#F50B61}}
| s9={{RbE|0|#AB9973}}
| i1={{RbE|1호선|#8CADCB}}
| i2={{RbE|2호선|#F06A00}}
| ui={{RbE|Ui LRT|#FEF104|black}}
| everline={{RbE|EverLine|#4EA346}}
| u={{RbE|U|#FE9700}}
| arex={{RbE|AREX|#006D9D}}
| gyeonggang={{RbE|Gyeonggang|#0066BC}}
| shinbundang={{RbE|Shinbundang|#C82127}}
| suin={{RbE|Suin|#FFB300}}
| bundang={{RbE|Bundang|#E0A134}}
| gyeongchun={{RbE|Gyeongchun|#2ABFD0}}
| gyeongui-jungang={{RbE|Gyeongui-jungang|#2ABFD0}}
}}
| sevilla|seville={{#switch: {{lc: {{{2}}} }}
| 1={{RbE|1|#01820B}}
| 2={{RbE|2|#1275AA}}
| 3={{RbE|3|#C9013B}}
| 4={{RbE|4|#E5B024}}
| c1={{RbE|C1|#2999BC}}
| c2={{RbE|C2|#21691E}}
| c3={{RbE|C3|#FF0000}}
| c4={{RbE|C4|#810081}}
| c5={{RbE|C5|#1E0C7D}}
}}
| shanghai={{#switch: {{lc: {{{2}}} }}
| 1={{RbE|1|#E4002B}}
| 2={{RbE|2|#97D700|black}}
| 3={{RbE|3|#FFD100|black}}
| 4={{RbE|4|#5F259F}}
| 5={{RbE|5|#AC4FC6}}
| 6={{RbE|6|#D71671}}
| 7={{RbE|7|#FF6900|black}}
| 8={{RbE|8|#00C9F6}}
| 9={{RbE|9|#71C5E8|black}}
| 10={{RbE|10|#C1A7E2|black}}
| 11={{RbE|11|#76232F}}
| 12={{RbE|12|#007B5F}}
| 13={{RbE|13|#EF95CF|black}}
| 14={{RbE|14|#827A04}}
| 15={{RbE|15|#BCA887}}
| 16={{RbE|16|#2CD5C4|black}}
| 17={{RbE|17|#C09C83}}
| 18={{RbE|18|#D6A461}}
| 19={{RbE|19|#DA70D6|black}}
| 20={{RbE|20|#97CFAA|black}}
| 21={{RbE|21|#91A40C}}
| 22={{RbE|22}}
| 23={{RbE|23}}
| 24={{RbE|24}}
| 25={{RbE|25}}
| pujiang={{RbE|Pujiang|#999999}}
| jinshan={{RbE|Jinshan|#11385B}}
| airportlink={{RbE|Airport Link}}
| airportexpress={{RbE|Airport Express}}
| chongming={{RbE|Chongming}}
| jiamin={{RbE|Jiamin}}
| fengpu={{RbE|Fengpu}}
| jiaqingsongjin={{RbE|Jiaqingsongjin}}
| chuannanfeng={{RbE|Chuannanfeng}}
| baojia={{RbE|Baojia}}
| nangang={{RbE|Nangang}}
| eastwest={{RbE|East West Link}}
| pudonglingang={{RbE|Pudong-Lingang}}
}}
| sheffield={{#switch: {{lc: {{{2}}} }}
|yellow|y={{RbE|Y|#ecb739|mo=Sheffield Supertram, Yellow Route (Middlewood - Meadowhall Interchange)}}
|blue|b={{RbE|B|#2d83c0|mo=Sheffield Supertram, Blue Route (Malin Bridge - Halfway)}}
|purple|p={{RbE|P|#5f195e|mo=Sheffield Supertram, Purple Route (Herdings Park - Cathedral)}}
|tramtrain|t={{RbE|T|black|mo=Sheffield Supertram, Tram-train (Rotherham Parkgate - Cathedral)}}
}}
| shenyang={{#switch: {{lc: {{{2}}} }}
| 1={{RbE|1|#CA252B}}
| 2={{RbE|2|#FFF000|black}}
| 3={{RbE|3}}
| 4={{RbE|4|#4B0082}}
| 5={{RbE|5}}
| 6={{RbE|6}}
| 7={{RbE|7}}
| 8={{RbE|8}}
| 9={{RbE|9|#0021DB}}
| 10={{RbE|10|#00CD00}}
| t1={{RbE|T1}}
| t2={{RbE|T2}}
| t3={{RbE|T3}}
| t5={{RbE|T5}}
| brt={{RbE|BRT}}
}}
| shenzhen={{#switch: {{lc: {{{2}}} }}
| 1={{RbE|1|#00AB39}}
| 2={{RbE|2|#DB6D1C}}
| 3={{RbE|3|#00A2E1}}
| 4={{RbE|4|#DC241F}}
| 5={{RbE|5|#9950B2}}
| 6={{RbE|6|#3ABCA8}}
| 7={{RbE|7|#0035AD}}
| 8={{RbE|8|#E653BC}}
| 9={{RbE|9|#846E74}}
| 10={{RbE|10|#F8779E}}
| 11={{RbE|11|#6A1D44}}
| 12={{RbE|12|#A392B7}}
| 13={{RbE|13|#E47F00}}
| 14={{RbE|14|#99A3A6}}
| 15={{RbE|15|#76B900}}
| 16={{RbE|16|#0092C7}}
| 17={{RbE|17}}
| 18={{RbE|18}}
| 19={{RbE|19}}
| 20={{RbE|20|#FFD700}}
| T1={{RbE|T1|#93CC44}}
| T2={{RbE|T2|#00491F}}
| happyline={{RbE|Happy Line}}
| windowoftheworld={{RbE|Window of the World}}
}}
| shijiazhuang={{#switch: {{lc: {{{2}}} }}
| 1={{RbE|1|#E60012}}
| 2={{RbE|2|#FF6900}}
| 3={{RbE|3|#00AFEC}}
| 4={{RbE|4}}
| 5={{RbE|5}}
| 6={{RbE|6}}
| brt={{RbE|BRT}}
}}
| shiraz={{#switch: {{lc: {{{2}}} }}
| 1={{RbE|1|#EE3C3C}}
| 2={{RbE|2|#229954}}
| 3={{RbE|3|#EE3C3C}}
| 4={{RbE|4|#FFD502}}
| 5={{RbE|5|#F39C12}}
| 6={{RbE|6|#C39BD3}}
}}
| sofia={{#switch: {{lc: {{{2}}} }}
|m1={{RbE|M1|#ff0000|mo=Sofia Metro, line 1 (Slivnitsa - Business Park)}}
|m2={{RbE|M2|#0066cc|mo=Sofia Metro, line 2 (Obelya - Vitosha)}}
|m3={{RbE|M3|#00cc66|black|mo=Sofia Metro, line 3 (Gorna Banya - Vladimir Vazov)}}
| 1={{RbE|1|mo=Sofia Tramway, line 1 (Ivan Vazov - Kn. M. Luiza)}}
| 3={{RbE|3|mo=Sofia Tramway, line 3 (Zaharna Fabrika - Orlandovtsi)}}
| 4={{RbE|4|mo=Sofia Tramway, line 4 (Nikola Petkov - Orlandovtsi)}}
| 5={{RbE|5|mo=Sofia Tramway, line 5 (Knyazhevo - Sofia Court House)}}
| 6={{RbE|6|mo=Sofia Tramway, line 6 (Ivan Vazov - Obelya)}}
| 7={{RbE|7|mo=Sofia Tramway, line 7 (Borovo - Han Kurbrat)}}
| 8={{RbE|8|mo=Sofia Tramway, line 8 (Lyulin-5 - Sofia Court House)}}
|10={{RbE|10|mo=Sofia Tramway, line 10 (Zapaden Park - Vitosha)}}
|11={{RbE|11|mo=Sofia Tramway, line 11 (Knyazhevo - Iliyantsi)}}
|12={{RbE|12|mo=Sofia Tramway, line 12 (Iliyantsi - Journalist sq.)}}
|18={{RbE|18|mo=Sofia Tramway, line 18 (Orlandovtsi - Journalist sq.)}}
|20={{RbE|20|mo=Sofia Tramway, line 20 (Iskar Depot - Opalchenska)}}
|22={{RbE|22|mo=Sofia Tramway, line 22 (East station - Krasna polyana Depot)}}
|23={{RbE|23|mo=Sofia Tramway, line 23 (Geo Milev - Obikolna Street)}}
}}
| stockholm={{#switch: {{lc: {{{2}}} }}
| 1={{RbE|1|#003e9a|mo=Blåbusslinjen 1: Stora Essingen - Frihamnen}}
| 2={{RbE|2|#003e9a|mo=Blåbusslinjen 2: Sofia - Norrtull}}
| 3={{RbE|3|#003e9a|mo=Blåbusslinjen 3: Södersjukhuset - Karolinska sjukhuset}}
| 4={{RbE|4|#003e9a|mo=Blåbusslinjen 4: Gullmarsplan - Radiohuset}}
| 6={{RbE|6|#003e9a|mo=Blåbusslinjen 6: Karolinska Institutet - Ropsten}}
| 7|sparvagcity={{RbE|7|#999999|black|mo=Spårväg City (7): Sergels Torg - Waldemarsudde}}
| 7n|djurgardslinjen={{RbE|7N|#7ec0ee|mo=Djurgårdslinjen (7N): Narrmalmstorg - Skansen}}
| 10|t10={{RbE|10|#0A9CDA|mo=Blå linjen (10): Kungsträdgården - Hjulsta}}
| 11|t11={{RbE|11|#0A9CDA|mo=Blå linjen (11): Kungsträdgården - Akalla}}
| 12|nockebybanan={{RbE|12|#FFA500|mo=Nockebybanan (12): Nockeby - Alvik}}
| 13|t13={{RbE|13|#FF0000|mo=Röda linjen (13): Norsborg - Ropsten}}
| 14|t14={{RbE|14|#FF0000|mo=Röda linjen (14): Fruängen - Mörby Centrum}}
| 17|t17={{RbE|17|#008000|mo=Gröna linjen (17): Åkeshov - Odenplan - Skarpnäck}}
| 18|t18={{RbE|18|#008000|mo=Gröna linjen (18): Vällingby - Alvik - Farsta strand}}
| 19|t19={{RbE|19|#008000|mo=Gröna linjen (19): Hässelby strand - Hagsätra}}
| 21|lidingobanan={{RbE|21|#B8860B|mo=Lindingöbanan (21): Ropsten - Gåshaga brygga}}
| 22|tvarbanan={{RbE|22|#8B4513|mo=Tvärbanan (22): Sickla - Alvik - Solna Station}}
| 25={{RbE|25|#00a09b|mo=Saltsjöbanan (25): Slussen - Saltsjöbaden}}
| 26={{RbE|26|#00a09b|mo=Saltsjöbanan (26): Igelboda - Solsidan}}
| 27={{RbE|27|#935692|mo=Roslagsbanan (27): Stockholms östra - Kårsta}}
| 28={{RbE|28|#935692|mo=Roslagsbanan (28): Stockholms östra - Österskär}}
| 29={{RbE|29|#935692|mo=Roslagsbanan (29): Stockholms östra - Näsbypark}}
| 40={{RbE|40|#d05d99|mo=Pendeltåg 40: Uppsala C - Södertälje centrum}}
| 41={{RbE|41|#d05d99|mo=Pendeltåg 41: Märsta - Södertälje centrum}}
| 41x={{RbE|41X|#d05d99|mo=Pendeltåg 41X: Märsta - Tumba - Södertälje centrum}}
| 42x={{RbE|42X|#d05d99|mo=Pendeltåg 42X: Märsta - Älvsjö - Nynäshamn}}
| 43={{RbE|43|#d05d99|mo=Pendeltåg 43: Bålsta - Nynäshamn}}
| 43x={{RbE|43X|#d05d99|mo=Pendeltåg 43X: Kallhäll - Nynäshamn}}
| 44={{RbE|44|#d05d99|mo=Pendeltåg 44: Bro - Kallhäll - Älvsjö}}
| 48={{RbE|48|#d05d99|mo=Pendeltåg 48: Södertälje centrum - Gnesta}}
}}
| steiermark={{#switch: {{lc: {{{2}}} }}
|s1|1={{RbE|S1|#04942c|r=e|mo=Steiermark S-Bahnlinie 1: }}
|s3|3={{RbE|S3|#e5007b|r=e|mo=Steiermark S-Bahnlinie 3: }}
|s5|5={{RbE|S5|#8d0c80|r=e|mo=Steiermark S-Bahnlinie 5: }}
|s6|6={{RbE|S6|#f79e00|r=e|mo=Steiermark S-Bahnlinie 6: }}
|s7|7={{RbE|S7|#bf0221|r=e|mo=Steiermark S-Bahnlinie 7: }}
|s8|8={{RbE|S8|#58c1d0|r=e|mo=Steiermark S-Bahnlinie 8: }}
|s9|9={{RbE|S9|#9083ba|r=e|mo=Steiermark S-Bahnlinie 9: }}
|s11|11={{RbE|S11|#04942c|r=e|mo=Steiermark S-Bahnlinie 11: }}
|s31|31={{RbE|S31|#e5007b|r=e|mo=Steiermark S-Bahnlinie 31: }}
|s51|51={{RbE|S51|#8d0c80|r=e|mo=Steiermark S-Bahnlinie 51: }}
|s61|61={{RbE|S61|#f79e00|r=e|mo=Steiermark S-Bahnlinie 61: }}
}}
| strasbourg={{#switch: {{lc: {{{2}}} }}
|a={{RbE|A|#ee1d23|mo=Tramway de Strasbourg, Ligne A (Parc des Sports - Illkirch Graffenstaden)}}
|b={{RbE|B|#00aeef|mo=Tramway de Strasbourg, Ligne B (Lingolsheim Tiergaertel - Hoenheim Gare)}}
|c={{RbE|C|#f7931d|mo=Tramway de Strasbourg, Ligne C (Gare Centrale - Neuhof Rodolphe Reuss)}}
|d={{RbE|D|#00ab4d|mo=Tramway de Strasbourg, Ligne D (Poteries - Kehl Rathaus)}}
|e={{RbE|E|#8781bd|mo=Tramway de Strasbourg, Ligne E (Campus d'Illkirch - Robertsau L'Escale)}}
|f={{RbE|F|#8bc63e|mo=Tramway de Strasbourg, Ligne F (Elsau - Place d' Islande)}}
|g={{RbE|G|#0d4da1|mo=Strasbourg BHNS, Ligne G (Gare Centrale - Espace Européen de l'Enterprise)}}
|h={{RbE|H|#a62341|mo=Strasbourg BHNS, Ligne H (Gare Centrale - Parlement Européen)}}
|l1={{RbE|L1|#0154a6|mo=Strasbourg, Ligne Structurante L1 (Lingolsheim, Alouettes - Robertsau, Lamproie)}}
|l3={{RbE|L3|#95c93d|mo=Strasbourg, Ligne Structurante L3 (Hoenheim, Gare - Les Halles-Pont de Saverne)}}
|l6={{RbE|L6|#7960aa|mo=Strasbourg, Ligne Structurante L6 (Robertsau, Pont Phario - Hoenheim, Gare)}}
|2 ={{RbE|2|#ee1d23|mo=Strasbourg, Ligne 2 (Elmerforst - Jardin des Deux Rives)}}
|4 ={{RbE|4|#d1232a|mo=Strasbourg, Ligne 4 (Wolfisheim, Stade/Poteries - Les Halles-Pont de Saverne)}}
|10={{RbE|10|#fcb814|black|mo=Strasbourg, Ligne 10 (Gare Centrale Circulaire)}}
|12={{RbE|12|#77ccd0|black|mo=Strasbourg, Ligne 12 (Entzheim, Ouest - Lingolsheim, Alouettes)}}
|13={{RbE|13|#f7c1d9|black|mo=Strasbourg, Ligne 13 (Lingolsheim, Gare - Illkirch, Fort Uhrich)}}
|14={{RbE|14|#77ccd0|black|mo=Strasbourg, Ligne 14 (Ancienne Douane - Neuhof, Lorient)}}
|15={{RbE|15|#77ccd0|black|mo=Strasbourg, Ligne 15 (République - Boecklin)}}
|17={{RbE|17|#f7c1d9|black|mo=Strasbourg, Ligne 17 (Mittelhausbergen - Mittelberg, Rotonde)}}
|19={{RbE|19|#f7c1d9|black|mo=Strasbourg, Ligne 19 (Rotonde - Arago)}}
|22={{RbE|22|#77ccd0|black|mo=Strasbourg, Ligne 22 (Holtzheim, Ouest - Lingolsheim, Alouettes)}}
|24={{RbE|24|#77ccd0|black|mo=Strasbourg, Ligne 24 (Ancienne Douane - Neuhof, Stéphanie)}}
|27={{RbE|27|#94c83c|black|mo=Strasbourg, Ligne 27 (Baggersee - Port Autonome Sud (- Neuhof, Lorient))}}
|29={{RbE|29|#00a54f|mo=Strasbourg, Ligne 29 (Schnokeloch - Schiltigheim, Campus)}}
}}
| stuttgart={{#switch: {{lc: {{{2}}} }}
|s1 ={{RbE|S1|#5c8e3c|r=c|mo=S-Bahn Stuttgart, Linie 1 (Kirchheim unter Teck - Herrenberg)}}
|s11={{RbE|S11|#5c8e3c|r=c|mo=S-Bahn Stuttgart, Linie 11 (Stuttgart Neckarpark - Herrenberg)}}
|s2 ={{RbE|S2|#DC022C|r=c|mo=S-Bahn Stuttgart, Linie 2 (Schorndorf - Filderstadt)}}
|s3 ={{RbE|S3|#F4AA04|r=c|mo=S-Bahn Stuttgart, Linie 3 (Backnang - Flughafen/Messe)}}
|s4 ={{RbE|S4|#0C66B4|r=c|mo=S-Bahn Stuttgart, Linie 4 (Schwabstraße - Backnang)}}
|s5 ={{RbE|S5|#04AAE4|r=c|mo=S-Bahn Stuttgart, Linie 5 (Schwabstraße - Bietigheim)}}
|s6 ={{RbE|S6|#8C6204|r=c|mo=S-Bahn Stuttgart, Linie 6 (Schwabstraße - Weil der Stadt)}}
|s60={{RbE|S60|#748E20|r=c|mo=S-Bahn Stuttgart, Linie 60 (Schwabstraße - Böblingen)}}
|u1 ={{RbE|U1|#e3a160|black|mo=U-Bahn Stuttgart, Linie 1 (Fellbach Lutherkirche - Vaihingen)}}
|u2 ={{RbE|U2|#F58220|mo=U-Bahn Stuttgart, Linie 2 (Neugereut - Botnang)}}
|u3 ={{RbE|U3|#946341|mo=U-Bahn Stuttgart, Linie 3 (Plieningen - Vaihingen)}}
|u4 ={{RbE|U4|#7967AE|mo=U-Bahn Stuttgart, Linie 4 (Untertürkheim - Hölderlinplatz)}}
|u5 ={{RbE|U5|#00BAF1|black|mo=U-Bahn Stuttgart, Linie 5 (Killesberg - Leinfelden)}}
|u6 ={{RbE|U6|#ED008C|mo=U-Bahn Stuttgart, Linie 6 (Gerlingen - Fasanenhof)}}
|u7 ={{RbE|U7|#0BB38D|black|mo=U-Bahn Stuttgart, Linie 7 (Mönchfeld - Ostfildern)}}
|u8 ={{RbE|U8|#C0B678|mo=U-Bahn Stuttgart, Linie 8 (Vaihingen - Ostfildern)}}
|u9 ={{RbE|U9|#FFD403|mo=U-Bahn Stuttgart, Linie 9 (Hedelfingen - Heslach)}}
|u11={{RbE|''U11''|#A0A0A0|mo=U-Bahn Stuttgart, Linie 11 (Hauptbahnhof - Neckarpark/Stadion)}}
|u12={{RbE|U12|#66CCCC|black|mo=U-Bahn Stuttgart, Linie 12 (Remseck - Dürrlewang)}}
|u13={{RbE|U13|#F69EB2|mo=U-Bahn Stuttgart, Linie 13 (Feuerbach - Hedelfingen)}}
|u14={{RbE|U14|#5DB544|black|mo=U-Bahn Stuttgart, Linie 14 (Mühlhausen - Hauptbahnhof)}}
|u15={{RbE|U15|#000099|mo=U-Bahn Stuttgart, Linie 15 (Stammheim - Ruhbank/Fernsehturm - Heumaden)}}
|u16={{RbE|U16|#bac219|black|mo=U-Bahn Stuttgart, Linie 16 (Giebel - Fellbach Lutherkirche)}}
|u19={{RbE|U19|#FAB902|black|mo=U-Bahn Stuttgart, Linie 19 (Neugereut - Neckarpark/Stadion)}}
|u25={{RbE|''U25''|#a0a0a0|mo=U-Bahn Stuttgart, Linie 26 (Möhringen Bf - Degerloch Albstraße - Killesberg)}}
|u29={{RbE|U29|#ffd403|black|mo=U-Bahn Stuttgart, Linie 29 (Botnang - Vogelsang - Hauptbahnhof)}}
|u34={{RbE|U34|#5db544|black|mo=U-Bahn Stuttgart, Linie 34 (Südheimer Platz - Vogelsang)}}
}}
| suzhou={{#switch: {{lc: {{{2}}} }}
| 1={{RbE|1|#00CC00}}
| 2={{RbE|2|#FF0000}}
| 3={{RbE|3|#8800FF}}
| 4={{RbE|4|#1B76CC}}
| 5={{RbE|5|#FF9F40}}
| 6={{RbE|6}}
| 7={{RbE|7|#5FBEFF}}
| 8={{RbE|8}}
| 9={{RbE|9}}
}}
| sydney={{#switch: {{lc: {{{2}}} }}
| m={{RbE|M|#32B5BF|mo=Sydney Suburban: North West Metro Line}}
| m1={{RbE|M1|#32B5BF|mo=Sydney Suburban: North West Metro Line}}
| m2={{RbE|M2|#32B5BF|mo=Sydney Suburban: Westen Metro Line}}
| m3={{RbE|M3|#32B5BF|mo=Sydney Suburban: City and South West Metro Line}}
| m4={{RbE|M4|#32B5BF|mo=Sydney Suburban: Western Sydney Aerotropolis Metro Line}}
| t1={{RbE|T1|#FF9929|mo=Sydney Suburban: North Shore & Western Line}}
| t2={{RbE|T2|#00A0D2|mo=Sydney Suburban: Inner West & Leppington Line}}
| t3={{RbE|T3|#F6461B|mo=Sydney Suburban: Bankstown Line}}
| t4={{RbE|T4|#085BAA|mo=Sydney Suburban: Eastern Suburbs & Illawarra Line}}
| t5={{RbE|T5|#CA339A|mo=Sydney Suburban: Cumberland Line}}
| t7={{RbE|T7|#638590|mo=Sydney Suburban: Olympic Park Line}}
| t8={{RbE|T8|#286240|mo=Sydney Suburban: Airport & South Line}}
| t9={{RbE|T9|#EC4016|mo=Sydney Suburban: Northern Line}}
| c&sw|city&southwest={{RbE|C&SW|#09628A}}
| nw|northwest={{RbE|NW|#3B6C2E}}
| w|west={{RbE|W|#3B6C2E}}
| l1|dulwichhill={{RbE|L1|#8B0000|mo=Sydney LRT: Dulwich Hill Line}}
| l2|randwick={{RbE|L2|#8B0000|mo=Sydney LRT: Randwick Line}}
| l3|kingsford={{RbE|L3|#8B0000|mo=Sydney LRT: Kingsford Line}}
| l4|parramatta={{RbE|L4|#8B0000|mo=Sydney LRT: Parramatta Line}}
| nlr|newcastle={{RbE|NLR|#8B0000|mo=Sydney LRT: Newcastle Line}}
| t6|parramatta={{RbE|PM|mo=Parramatta Light Rail}}
| f1={{RbE|F1|#077949|mo=Sydney Ferry F1: Manly}}
| f2={{RbE|F2|#1B4632|mo=Sydney Ferry F2: Taronga Zoo}}
| f3={{RbE|F3|#92CB45|mo=Sydney Ferry F3: Parramatta River}}
| f4={{RbE|F4|#099B48|mo=Sydney Ferry F4: Pyrmont Bay}}
| f5={{RbE|F5|#286240|mo=Sydney Ferry F5: Neutral Bay}}
| f6={{RbE|F6|#19B052|mo=Sydney Ferry F6: Mosman Bay}}
| f7={{RbE|F7|#23B88A|mo=Sydney Ferry F7: Double Bay}}
| f8={{RbE|F8|#009D4C|mo=Sydney Ferry F8: Cockatoo Island}}
| f9={{RbE|F9|#71E25D|mo=Sydney Ferry F9: Watsons Bay}}
| b1={{RbE|B1|#F4D03F|mo=Sydney Buses: B1 B-line bus service}}
| 100={{RbE|100|#5DADE2|mo=Sydney Buses: Metropolitan Sydney bus services}}
| 101={{RbE|101|#5DADE2|mo=Sydney Buses: Metropolitan Sydney bus services}}
| 111={{RbE|111|#5DADE2|mo=Sydney Buses: Metropolitan Sydney bus services}}
| 161={{RbE|161|#5DADE2|mo=Sydney Buses: Metropolitan Sydney bus services}}
| 333={{RbE|333|#5DADE2|mo=Sydney Buses: Metropolitan Sydney bus services}}
| 190x={{RbE|190X|#5DADE2|mo=Sydney Buses: Metropolitan Sydney bus services}}
| t80={{RbE|T80|#5DADE2|mo=Sydney Buses: Metropolitan Sydney bus services}}
}}
| szczecin|stettin={{#switch:{{lc: {{{2}}} }}
|1={{RbE|1|#ff9233|mo=Szczecin Tramway, line 1 (Głębokie - Potulicka )}}
|2={{RbE|2|#0000ff|mo=Szczecin Tramway, line 2 (Dworzec Niebuszewo - Turkusowa)}}
|3={{RbE|3|#9c341a|mo=Szczecin Tramway, line 3 (Las Arkoński - Pomorzany)}}
|4={{RbE|4|#ded143|mo=Szczecin Tramway, line 4 (Krzekowo - Pomorzany)}}
|5={{RbE|5|#ff3920|mo=Szczecin Tramway, line 5 (Krzekowo - Stocznia Szczecińska)}}
|6={{RbE|6|#2c8c3e|mo=Szczecin Tramway, line 6 (Gocław - Pomorzany)}}
|7={{RbE|7|#aa56ab|mo=Szczecin Tramway, line 7 (Krzekowo - Turkusowa)}}
|8={{RbE|8|#214ca8|mo=Szczecin Tramway, line 8 (Gumieńce - Turkusowa)}}
|9={{RbE|9|#44cff6|mo=Szczecin Tramway, line 9 (Głębokie - Potulicka)}}
|10={{RbE|10|#a797cb|mo=Szczecin Tramway, line 10 (Las Arkoński - Gumieńce)}}
|11={{RbE|11|#23399e|mo=Szczecin Tramway, line 11 (Ludowa - Pomorzany)}}
|12={{RbE|12|#7cc967|mo=Szczecin Tramway, line 12 (Dworzec Niebuszewo - Pomorzany)}}
}}
| szeged={{#switch: {{lc: {{{2}}} }}
| 1|2|3|3f|4={{RbE|{{uc: {{{2}}} }}|#fed265|black|mo=Szeged Tram Line {{uc: {{{2}}} }}}}
| 5|7|7a|8|9|10|19={{RbE|{{uc: {{{2}}} }}|#2ba22c|mo=Szeged Trolleybus Line {{uc: {{{2}}} }}}}
| {{RbE|{{uc: {{{2}}} }}|#1f5b93|mo=Szeged Bus Line {{uc: {{{2}}} }}}}
}}
| tabriz={{#switch: {{lc: {{{2}}} }}
| 1={{RbE|1|white|#008B95|r=e|b=t}}
| 2={{RbE|2|white|#882D17|r=e|b=t}}
| 3={{RbE|3|white|#EE3C3C|r=e|b=t}}
| 4={{RbE|4|white|#90278E|r=e|b=t}}
| 5={{RbE|5|white|#FDD305|r=e|b=t}}
}}
| taichung={{#switch: {{lc: {{{2}}} }}
| g={{RbE|G|green}}
| r={{RbE|R|red}}
| b={{RbE|B|blue}}
| o={{RbE|O|orange|black}}
}}
| taipei={{#switch: {{lc: {{{2}}} }}
| br={{RbE|Br|#A1662C}}
| r={{RbE|R|#D42F34}}
| g={{RbE|G|#007647}}
| o={{RbE|O|#FFA500|black}}
| bl={{RbE|Bl|#005CBA}}
| y={{RbE|Y|#FEDB00|black}}
| lg={{RbE|LG|#A1D884}}
}}
| tallinn={{#switch: {{lc: {{{2}}} }}
|1={{RbE|1|#0056b9|mo=Tallinn Tramline 1 (Kopli - Kadriorg)}}
|2={{RbE|2|#c4001a|mo=Tallinn Tramline 2 (Kopli - Suur-Paala)}}
|3={{RbE|3|#006832|mo=Tallinn Tramline 3 (Tondi - Kadriorg)}}
|4={{RbE|4|#f5bf00|black|mo=Tallinn Tramline 4 (Tondi - Lennujaam)}}
|aeg|aegviidu={{RbE|Tal-Aeg|#ff6319|mo=Elektriraudtee, Tallinn - Aegviidu line}}
|tur|turba|pal|paldiski={{RbE|Tal-Tur/Pal|#ff6319|mo=Elektriraudtee, Tallinn - Turba/Paldiski line}}
}}
| taoyuan={{#switch: {{lc: {{{2}}} }}
| a={{RbE|A|#8E47AD}}
| g={{RbE|G|#05752B}}
| o={{RbE|O|#FCB134|black}}
| br={{RbE|BR|#BC813B}}
}}
| tehran={{#switch: {{lc: {{{2}}} }}
| 1={{RbE|1|#D40000}}
| 2={{RbE|2|#003380}}
| 3={{RbE|3|#00AAD4}}
| 4={{RbE|4|#FFCC00}}
| 5={{RbE|5|#008033}}
| 7={{RbE|7|#AA00D4}}
| 8={{RbE|8|#0ECA0E}}
}}
| tianjin={{#switch: {{lc: {{{2}}} }}
| 1={{RbE|1|#BD0016}}
| 2={{RbE|2|#ECE114|black}}
| 3={{RbE|3|#128BBE}}
| 4={{RbE|4|#1C7736}}
| 5={{RbE|5|#FB6F14}}
| 6={{RbE|6|#9F216F}}
| 7={{RbE|7|#B17833}}
| 8={{RbE|8|#602E7C}}
| 9={{RbE|9|#063A91}}
|10={{RbE|10|#ED0066}}
|11={{RbE|11|#B9CF09}}
|12={{RbE|12|#3B008C}}
|13={{RbE|13|#DEF148|black}}
|b1={{RbE|B1|#E13C4B}}
|b2={{RbE|B2|#FBF053|black}}
|b3={{RbE|B3|#75C2C9}}
|b4={{RbE|B4|#5CB35D}}
|b5={{RbE|B5|#F6AC5B}}
|b6={{RbE|B6|#EB76BD}}
|b7={{RbE|B7|#D8AD71}}
|b8={{RbE|B8|#D8AD71}}
|c1={{RbE|C1|#D1CE69}}
|c2={{RbE|C2|#DD8DAE}}
|c3={{RbE|C3|#769C62}}
|c4={{RbE|C4|#5C480F}}
|z1={{RbE|Z1|#626DA7}}
|z2={{RbE|Z2|#1D6B9A}}
|z3={{RbE|Z3|#BD5832}}
|z4={{RbE|Z4|#9574AC}}
|teda={{RbE|TEDA|#8FC31F}}
}}
| tokyo={{#switch: {{lc: {{{2}}} }}
| ginza|g={{RbE|G|#F7931D}}
| marunouchi|m={{RbE|M|#ED1C24}}
| marunouchibranch|mb={{RbE|Mb|#ED1C24}}
| hibiya|h={{RbE|H|#8BA2AE}}
| tozai|t={{RbE|T|#00B2DD}}
| chiyoda|c={{RbE|C|#00A650}}
| yurakucho|y={{RbE|Y|#BB8B38}}
| hanzomon|z={{RbE|Z|#937CB9}}
| namboku|n={{RbE|N|#00B5AD}}
| fukutoshin|f={{RbE|F|#BA6831}} <!--END OF TOKYO METRO-->
| yamanote|jy={{RbE|JY|white|black|r=e|b=c|bcolor=#B2CC36|mo=Yamanote}}
| keihin-tohoku|jk={{RbE|JK|white|black|r=e|b=c|bcolor=#1DAED1|mo=Keihin-Tōhoku}}
| negishi={{RbE|JK|white|black|r=e|b=c|bcolor=#1DAED1|mo=Negishi}}
| chuo-sobu local|jb={{RbE|JB|white|black|r=e|b=c|bcolor=#F2D01F|mo=Chūō-Sōbu}}
| chuo rapid|jc={{RbE|JC|white|black|r=e|b=c|bcolor=#DD6935|mo=Chūō Rapid}}
| yokosuka|sobu rapid|jo={{RbE|JO|white|black|r=e|b=c|bcolor=#1069B4|mo=Yokosuka/Sōbu Rapid}}
| utsunomiya|takasaki|ju={{RbE|JU|white|black|r=e|b=c|bcolor=#F18E41|mo=Utsunomiya & Takasaki}}
| tokaido|jt={{RbE|JT|white|black|r=e|b=c|bcolor=#F0862B|mo=Tōkaidō Main}}
| saikyo|ja={{RbE|JA|white|black|r=e|b=c|bcolor=#14A676|mo=Saikyō}}
| shonan-shinjuku|js={{RbE|JS|white|black|r=e|b=c|bcolor=#DB2027|mo=Shōnan–Shinjuku}}
| joban rapid|jj={{RbE|JJ|white|black|r=e|b=c|bcolor=#1DAF7E|mo=Jōban Rapid}}
| joban local|jl={{RbE|JL|white|black|r=e|b=c|bcolor=#868587|mo=Jōban Local}}
| keiyo|je={{RbE|JE|white|black|r=e|b=c|bcolor=#D01827|mo=Keiyō}}
| musashino|jm={{RbE|JM|white|black|r=e|b=c|bcolor=#EB5A28|mo=Musashino}}
| yokohama|jh={{RbE|JH|white|black|r=e|b=c|bcolor=#B1CB39|mo=Yokohama}}
| nambu|jn={{RbE|JN|white|black|r=e|b=c|bcolor=#F2D01F|mo=Nambu}}
| tsurumi|ji={{RbE|JI|white|black|r=e|b=c|bcolor=#F2D01F|mo=Tsurumi}}<!--END OF JR EAST-->
| keikyu main|kk={{RbE|KK|#65D1EB|black}}<!--END OF KEIKYU-->
| keio|ko={{RbE|KO|#E563B1}}
| inokashira|in={{RbE|IN|#758AAF}}<!--END OF KEIO-->
| keisei main|ksmain={{RbE|KS Main|#4A8AC3}}
| narita sky access|kssky={{RbE|KS Sky|#FFA75E}}<!--END OF KEISEI-->
| odawara|oh={{RbE|OH|#1F8BCB}}
| enoshima|oe={{RbE|OE|#0085CE}}
| tama|ot={{RbE|OT|#1B92D3}}<!--END OF ODAKYU-->
| ikebukuro|si={{RbE|SI|#EF7A00}}
| seibu|ss={{RbE|SS|#00A7C0}}
| kokubunji|sk={{RbE|SK|#38B35C}}
| tamagawa|sw={{RbE|SW|#F17C24}}
| tamako|st={{RbE|ST|#F7AA2C}}<!--END OF SEIBU-->
| sotetsu main|so={{RbE|SO|#0071C1}}<!--END OF SOTETSU-->
| skytree|ts={{RbE|TS|#006CBA}}
| isesaki|ti={{RbE|TI|#E61919}}
| nikko|tn={{RbE|TN|#F5A200}}
| urban park|td={{RbE|TD|#40B4E5}}
| tojo|tj={{RbE|TJ|#00428E}}<!--END OF TOBU-->
| den-en-toshi|dt={{RbE|DT|#00AA8D}}
| ikegami|ik={{RbE|IK|#EE86A8}}
| meguro|mg={{RbE|MG|#009CD3}}
| oimachi|om={{RbE|OM|#F18C43}}
| tokyu tamagawa|tm={{RbE|TM|#AE0079}}
| toyoko|ty={{RbE|TY|#DA0042}}
| kodomonokuni|kd={{RbE|KD|#0071BE}}<!--END OF TOKYU-->
| chiba mono={{RbE|Chiba Monorail|#3C6BE2}}
| disney mono={{RbE|Disney Monorail|black}}
| shonan mono={{RbE|Shōnan Monorail|#646464}}
| tama mono={{RbE|Tama Monorail|#E97118|#FCF3B7}}
| tokyo mono={{RbE|Tokyo Monorail|#212E6A}}<!--END OF MONORAILS-->
| new shuttle|ns={{RbE|NS|#ED80AD}}
| seaside={{RbE|Seaside|#004EA2}}
| nippori-toneri|nt={{RbE|NT|#D73B7B}}
| seibu yamaguchi|sy={{RbE|SY|#EC4840}}
| yukarigaoka|yg={{RbE|Yūkarigaoka|#157E53}}
| yurikamome|u={{RbE|u|#1662B8}}<!--END OF PEOPLE MOVERS-->
| enoden|en={{RbE|EN|#C8C780}}
| setagaya|sg={{RbE|SG|#FCC800|black}}
| arakawa|sa={{RbE|SA|#E388A3}}<!--END OF TRAMS-->
}}
| toronto={{#switch: {{lc: {{{2}}} }}
| 1={{RbE|1|#FFCB0C|black}}
| 2={{RbE|2|#22AB5C}}
| 3={{RbE|3|#1F99D5}}
| 4={{RbE|4|#B32078}}
| 5={{RbE|5|#F87005}}
| link={{RbE|LINK|#336699}}
| 501|queen={{RbE|501|#892E35}}
| 502|downtowner={{RbE|502|#892E35}}
| 503|kingston rd={{RbE|503|#892E35}}
| 504|king={{RbE|504|#892E35}}
| 505|dundas={{RbE|505|#892E35}}
| 506|carlton={{RbE|506|#892E35}}
| 509|harbourfront={{RbE|509|#892E35}}
| 510|spadina={{RbE|510|#892E35}}
| 511|bathurst={{RbE|511|#892E35}}
| 512|stclair={{RbE|512|#892E35}}
| 514|cherry={{RbE|514|#892E35}}
}}
| torun|toruń={{#switch:{{lc: {{{2}}} }}
|1={{RbE|1|mo=Toruń Tramway, line 1 (Uniwersytet - Olimpijska}}
|2={{RbE|2|mo=Toruń Tramway, line 2 (Motoarena - Elana B)}}
|3={{RbE|3|mo=Toruń Tramway, line 3 (Reja - Wschodnia)}}
|4={{RbE|4|mo=Toruń Tramway, line 4 (Uniwersytet - Elana B)}}
|5={{RbE|5|mo=Toruń Tramway, line 5 (Motoarena - Olimpijska)}}
|8={{RbE|8|mo=Toruń Tramway, line 8 (Motoarena - Aleja Solidarności - Motoarena)}}
}}
| toulouse={{#switch: {{lc: {{{2}}} }}
|a={{RbE|A|#e6222b|mo=Métro de Toulouse, Ligne A (Basso Cambo - Gramont)}}
|b={{RbE|B|#fdde00|black|mo=Métro de Toulouse, Ligne B (Borderouge - Ramonville)}}
|tae={{RbE|TAE|#d55400|mo=Toulouse Aerospace Express (Colomiers, Gare - Labège La Cadène)}}
|c={{RbE|C|#f9a720|mo=Réseau Ferroviaire de Toulouse, Ligne C (Arènes - Colomiers)}}
|d={{RbE|D|#41b7ab|mo=Réseau Ferroviaire de Toulouse, Ligne D (Matabiau - Muret)}}
|f={{RbE|F|#0017a4|mo=Réseau Ferroviaire de Toulouse, Ligne F (Matabiau - Escalquens)}}
|t1={{RbE|T1|#1c4b90|mo=Tramway de Toulouse, Ligne T1 (Palais-de-Justice - Aéroconstellation)}}
|t2={{RbE|T2|#409adb|mo=Tramway de Toulouse, Ligne T2 (Palais-de-Justice - Aéroport)}}
|l1 ={{RbE|L1|#f06526|mo=Linéo de Toulouse, L1 (Sept Deniers - Entiore)}}
|l2 ={{RbE|L2|#f06526|mo=Linéo de Toulouse, L2 (Arènes - Colomiers Lycée International)}}
|l3 ={{RbE|L3|#f06526|mo=Linéo de Toulouse, L3 (Arènes - Tournefeulle - Plaisance Monestié)}}
|l4 ={{RbE|L4|#f06526|mo=Linéo de Toulouse, L4 (Basso Cambo - Cours Dillon)}}
|l5 ={{RbE|L5|#f06526|mo=Linéo de Toulouse, L5 (Empalot - Portret-Gare SNCF)}}
|l6 ={{RbE|L6|#f06526|mo=Linéo de Toulouse, L6 (Ramonville - Auzeville-Tolosane - Castanet-Tolosan)}}
|l7 ={{RbE|L7|#f06526|mo=Linéo de Toulouse, L7 (Cours Dillon - Saint-Orens Centre Commercial)}}
|l8 ={{RbE|L8|#f06526|mo=Linéo de Toulouse, L8 (Marengo, SNCF - Gonin)}}
|l9 ={{RbE|L9|#f06526|mo=Linéo de Toulouse, L9 (Empalot - L'Union Grande Halle)}}
|l10={{RbE|L10|#f06526|mo=Linéo de Toulouse, L10 (La Vache - Aucamville - Fenoullet)}}
|l11={{RbE|L11|#f06526|mo=Linéo de Toulouse, L11 (Basso Cambo - Villeneuve-Tolosane - Frouzins)}}
|l12={{RbE|L12|#f06526|mo=Linéo de Toulouse, L12 (Montaudran, Gare - Borderouge)}}
|l13={{RbE|L13|#f06526|mo=Linéo de Toulouse, L13 (Borderouge - Launaguet - Bruguières)}}
|l14={{RbE|L14|#f06526|mo=Linéo de Toulouse, L14 (Marengo, SNCF - Basso Cambo)}}
|l15={{RbE|L15|#f06526|mo=Linéo de Toulouse, L15 (Arènes - Ramonville)}}
}}
| tours={{#switch: {{lc: {{{2}}} }}
|a={{RbE|A|#a61d46|mo=Tramway de Tours, Ligne A (Vaucanson - Lycée Jean Monnet)}}
|2={{RbE|2|white|#543e92|mo=Tours, Ligne 2 Tempo (Chambray, CHU Trousseau - Tours, Les Douets)}}
|3={{RbE|3|#e7591d|mo=Tours, Ligne 3A/B (La Riche, La Pléiade - Saint-Avertin, Onze Arpents/Chambray, Chambray 2)}}
|4={{RbE|4|#dacd00|black|mo=Tours, Ligne 4 (Tours, Rempart - Saint-Pierre, Atlantes)}}
|5={{RbE|5|#009239|mo=Tours, Ligne 5 (Saint-Pierre, Gare - Tours, Parc Grandmont)}}
|10={{RbE|10|#2d3e92|mo=Tours, Ligne 10 (Tours, Beffroi - Saint-Avertin, P. Doumer)}}
|11={{RbE|11|#8b4154|mo=Tours, Ligne 11 (Saint-Pierre, Justices - Fondettes, Mareuil)}}
|12={{RbE|12|#f0831b|mo=Tours, Ligne 12 (Tours, Petite Arche - Tours, Porte de Loire)}}
|14={{RbE|14|#7a438f|mo=Tours, Ligne 14 (Chambray, Grand Sud - Saint-Cyr, Santé Alliance)}}
|15={{RbE|15|#ca5483|mo=Tours, Ligne 15 (La Riche, Soleil - Joué, Blotterie)}}
|16={{RbE|16|#9f7525|mo=Tours, Ligne 16 (Saint-Pierre, J. Decour - Joué, Gare)}}
|17={{RbE|17|#9e7a76|mo=Tours, Ligne 17 (Saint-Cyr, Mairie - Saint-Cyr, Santé Alliance)}}
|18={{RbE|18|#6dbee6|black|mo=Tours, Ligne 18 (Saint-Cyr, Croix Chidaine/Marie - Tours, Petite Arche)}}
|19={{RbE|19|#74bf43|black|mo=Tours, Ligne 19 (Saint-Avertin, Richemont - Tours, Gare)}}
|35={{RbE|35|#6dbee6|black|mo=Tours, Ligne 35 (Tours, Parc Grandmont - Saint-Avertin, Onze Arpents)}}
|36={{RbE|36|#ffbe31|black|mo=Tours, Ligne 36 (Tours, Lycée Grandmont - Saint-Avertin, Onze Arpents)}}
}}
| trieste|opicina={{RbE|T|red|mo=Tranvia Trieste-Opicina (Piazza Oberdan - Villa Opicina)}}
| turin|torino={{#switch: {{lc: {{{2}}} }}
|3 ={{RbE|3|#006000|mo=Torino rete tranviaria, linea 3 (Corso Tortona - Piazzale Vallette)}}
|4 ={{RbE|4|#006000|mo=Torino rete tranviaria, linea 4 (Strada del Drosso - Via delle Querce)}}
|7 ={{RbE|7|#006000|mo=Torino rete tranviaria, linea 7 storica (Piazza Castello - Porta Nuova)}}
|9 ={{RbE|9|#006000|mo=Torino rete tranviaria, linea 9 (Piazza Stampalia - Croso Massimo D'Azeglio)}}
|9/={{RbE|9/|#006000|mo=Torino rete tranviaria, linea 9/ (Piazza Bernini - Juventus Stadium)}}
|10={{RbE|10|#006000|mo=Torino rete tranviaria, linea 10 feriale (Piazza Statuto - Corso Settembrini)}}
|13={{RbE|13|#006000|mo=Torino rete tranviaria, linea 13 feriale (Piazza Campanella - Piazza Gran Madre)}}
|15={{RbE|15|#006000|mo=Torino rete tranviaria, linea 15 (Via Brissogne - Piazza Coriolano)}}
|16cs={{RbE|16 CS|#006000|mo=Torino rete tranviaria, linea 16CS (Piazza Sabotino circular)}}
|16cd={{RbE|16 CD|#006000|mo=Torino rete tranviaria, linea 16CD (Piazza Sabotino circular)}}
|79={{RbE|79|#006000|mo=Torino rete tranviaria, linea 79 (Piazza Gustavo Modena - Basilica di Superga)}}
|m1={{RbE|M1|green|mo=Metropolitana di Torino, linea 1 (Cascine Vica - Bengasi)}}
|m2={{RbE|M2|blue|mo=Metropolitana di Torino, linea 2 (Orbassano Centro - Rebaudengo/Pescarito)}}
}}
| tyneandwear|tyne|wear={{#switch: {{lc: {{{2}}} }}
|g|green={{RbE|G|#1b873b|mo=Tyne and Wear Metro, Green line (Airport - South Hylton)}}
|y|yellow={{RbE|Y|#feb300|black|mo=Tyne and Wear Metro, Yellow line (St. James - South Shields)}}
}}
| tyrol|tirol={{#switch: {{lc: {{{2}}} }}
|s1|1={{RbE|S1|#c2cc19|r=e|mo=Tirol S-Bahnlinie 1: Kufstein - Pfraffenhofen - Landech-Zams}}
|s2|2={{RbE|S2|#4d9a70|r=e|mo=Tirol S-Bahnlinie 2: Ötztal - Jenbach}}
|s3|3={{RbE|S3|#874186|r=e|mo=Tirol S-Bahnlinie 3: Steinach in Tirol - Hall in Tirol}}
|s4|4={{RbE|S4|#9d939b|r=e|mo=Tirol S-Bahnlinie 4: Brenner - Innsbruck}}
|s5|5={{RbE|S5|#c289a4|r=e|mo=Tirol S-Bahnlinie 5: Innsbruck - Scharnitz}}
|s6|6={{RbE|S6|#177da8|r=e|mo=Tirol S-Bahnlinie 6: Wörg; Hauptbahnhof = Saalfelden}}
}}
| utrecht={{#switch: {{lc: {{{2}}} }}
|sunij|sun={{RbE|SUN|yellow|black|mo=Sneltram Utrecht - Nieuwegein/IJsselstein}}
|uithof={{RbE|Uithof|yellow|black|mo=Uithoflijn (Centraal-Jaarbeursplein - P+R De Uithof)}}
}}
| valencia={{#switch: {{lc: {{{2}}} }}
| metro=[[Berkas:Isotip de Metrovalència.svg|{{{size|14}}}px|link=]]
| 1={{RbE|1|#FCC42D}}
| 2={{RbE|2|#E51794}}
| 3={{RbE|3|#DB0F31}}
| 4={{RbE|4|#094C97}}
| 5={{RbE|5|#138E70}}
| 6={{RbE|6|#8886BD}}
| 7={{RbE|7|#F08B23}}
| 8={{RbE|8|#85CEE4}}
| 9={{RbE|9|#B68153}}
|c1={{RbE|C-1|#6495ED}}
|c2={{RbE|C-2|#FAB700|black}}
|c3={{RbE|C-3|#870099}}
|c4={{RbE|C-4|#FF0000}}
|c5={{RbE|C-5|#008A29}}
|c6={{RbE|C-6|#002D9A}}
}}
| valenciennes={{#switch: {{lc: {{{2}}} }}
|t1={{RbE|T1|#ee144f|mo=Tramway de Valenciennes, Ligne 1 (Espace Villars - Université)}}
|t2={{RbE|T2|#f15966|mo=Tramway de Valenciennes, Ligne 2 (Gare - Vieux-Conde)}}
|1 ={{RbE|1|#009796|mo=Valenciennes, Ligne Essentielle 1 (Saultain, Château d'Eau - Petite-Forêt, Centre Commercial)}}
|2 ={{RbE|2|#318ce7|mo=Valenciennes, Ligne Essentielle 2 (Petite-Forêt, Centre Commercial - La Sentinelle, Terminus)}}
|3 ={{RbE|3|#357ab7|mo=Valenciennes, Ligne Essentielle 3 (Escaudain, Maroc - Haulchin, Racine)}}
|4 ={{RbE|4|#1e7fcb|mo=Valenciennes, Ligne Essentielle 4 (Roeulx, Roquebrune/Neuville, Cimetière - Douchy, Collège É. Littré)}}
|5 ={{RbE|5|#8ea2c6|mo=Valenciennes, Ligne Essentielle 5 (Valenciennes, Gare - Quiévrechain, Mairie/Crespin, Ancienne Mairie/Quiévrechain, Gare)}}
|6 ={{RbE|6|#357ab7|mo=Valenciennes, Ligne Essentielle 6 (Valenciennes, Gare - Fresnes, Cachin)}}
|l ={{RbE|L|#00008b|#b7ff31|mo=Valenciennes, Luciole (Valenciennes, Gare - Famars, Université)}}
|12={{RbE|12|#3a9d23|mo=Valenciennes, Ligne Principale 12 (Anzin, Hôtel de Ville - Saint-Amand, Elnon)}}
|13={{RbE|13|#7fdd4c|mo=Valenciennes, Ligne Principale 13 (Anzin, Hôtel de Ville - Beuvrages, Rue du Droit)}}
|14={{RbE|14|#9efd38|mo=Valenciennes, Ligne Principale 14 (Vieux-Condé, Mont de Péruwelz - Péruwelz, Gare)}}
|30={{RbE|30|#9fe855|mo=Valenciennes, Ligne Principale 30 (Saint-Catherine - Denain, Espace Villars)}}
|s1={{RbE|S1|#82c46c|mo=Valenciennes, Ligne Principale S1 (Bruay, Place - Vosges)}}
|s2={{RbE|S2|#82c46c|mo=Valenciennes, Ligne Principale S2 (Bruay, Place - Anzin, Hôtel de Ville)}}
}}
| vancouver={{#switch: {{lc: {{{2}}} }}
| expo={{RbE|Expo|#0060A9}}
| millennium={{RbE|Millennium|#FFD520|black}}
| canada={{RbE|Canada|#009AC8}}
| seabus={{RbE|SeaBus|#87746A}}
| westcoastexpress={{RbE|West Coast Express|#77278B}}
| 91b={{RbE|91|#FF6600}}
| 95b={{RbE|95|#FF6600}}
| 96b={{RbE|96|#FF6600}}
| 99b={{RbE|99|#FF6600}}
}}
| vienna={{#switch: {{lc: {{{2}}} }}
| u1={{RbE|U1|#E20613}}
| u2={{RbE|U2|#A762A3}}
| u3={{RbE|U3|#EF830C}}
| u4={{RbE|U4|#009540}}
| u5={{RbE|U5}}
| u6={{RbE|U6|#9D6930}}
| s1={{RbE|S1|#139DD9|r=e|mo=Wien S-Bahnlinie 1: Meidling - Gänserndorf}}
| s2={{RbE|S2|#139DD9|r=e|mo=Wien S-Bahnlinie 2: Mödling - Mistelbach - Laa an der Thaya}}
| s3={{RbE|S3|#139DD9|r=e|mo=Wien S-Bahnlinie 3: Wiener Neustadt Hbf - Hollabrunn}}
| s4={{RbE|S4|#139DD9|r=e|mo=Wien S-Bahnlinie 4: Wiener Neustadt Hbf - Absdorf-Hippersdorf - Tullnerfeld}}
| s7={{RbE|S7|#139DD9|r=e|mo=Wien S-Bahnlinie 7: Wolfsthal - Mistelbach - Laa an der Thaya}}
| s40={{RbE|S40|#139DD9|r=e|mo=Wien S-Bahnlinie 40: Franz-Josefs-Bahnhof - St. Pölten Hbf}}
| s45={{RbE|S45|#BBD975|r=e|mo=Wien S-Bahnlinie 45: Handelskai - Hütteldorf}}
| s50={{RbE|S50|#139DD9|r=e|mo=Wien S-Bahnlinie 50: Westbahnhof - Neulengbach}}
| s60={{RbE|S60|#139DD9|r=e|mo=Wien S-Bahnlinie 60: Bruck an der Leitha - Wiener Neustadt Hbf}}
| s80={{RbE|S80|#139DD9|r=e|mo=Wien S-Bahnlinie 80: Aspern Nord - Hütteldorf}}
| d ={{RbE|D|#e4001b|mo=Vienna Tramline D (Absverggasse - Nußdorf, Beethovengang)}}
| o ={{RbE|O|#e4001b|mo=Vienna Tramline O (Raxtraße - Praterstern)}}
| 1 ={{RbE|1|#e4001b|mo=Vienna Tramline 1 (Stefan-Fadinger-Platz - Prater Hauptallee)}}
| 2 ={{RbE|2|#e4001b|mo=Vienna Tramline 2 (Friedrich-Engels-Platz - Dornbach)}}
| 5 ={{RbE|5|#e4001b|mo=Vienna Tramline 5 (Praterstern - Westbahnhof)}}
| 6 ={{RbE|6|#e4001b|mo=Vienna Tramline 6 (Burggasse-Stadthalle - Geiereckstraße)}}
| 9 ={{RbE|9|#e4001b|mo=Vienna Tramline 9 (Wallrißstraße - Westbahnhof)}}
| 10={{RbE|10|#e4001b|mo=Vienna Tramline 10 (Dornbach - Sunter-St.-Veit, Hummelgasse)}}
| 11={{RbE|11|#e4001b|mo=Vienna Tramline 11 (Kaiserebersdorf, Zinnergasse - Otto-Probst-Platz)}}
| 18={{RbE|18|#e4001b|mo=Vienna Tramline 18 (Burggasse-Stadthalle - Schlachthausgasse)}}
| 25={{RbE|25|#e4001b|mo=Vienna Tramline 25 (Aspern, Oberdorfstraße - Floridsdorf)}}
| 26={{RbE|26|#e4001b|mo=Vienna Tramline 26 (Hausfeldstraße - Strebersdorf, Edmund-Hawranek-Platz)}}
| 30={{RbE|30|#e4001b|mo=Vienna Tramline 30 (Floridsdorf - Stammersdorf)}}
| 31={{RbE|31|#e4001b|mo=Vienna Tramline 31 (Schottenring - Stammersdorf)}}
| 33={{RbE|33|#e4001b|mo=Vienna Tramline 33 (Josefstädter Straße - Friedrich-Engels-Platz)}}
| 37={{RbE|37|#e4001b|mo=Vienna Tramline 37 (Schottentor - Hohe Warte)}}
| 38={{RbE|38|#e4001b|mo=Vienna Tramline 38 (Schottentor - Grinzing)}}
| 40={{RbE|40|#e4001b|mo=Vienna Tramline 40 (Schottentor - Gersthof, Herbeckstraße)}}
| 41={{RbE|41|#e4001b|mo=Vienna Tramline 41 (Schottentor - Pötzleinsdorf)}}
| 42={{RbE|42|#e4001b|mo=Vienna Tramline 42 (Schottentor - Antonigasse)}}
| 43={{RbE|43|#e4001b|mo=Vienna Tramline 43 (Schottentor - Neuwaldegg)}}
| 44={{RbE|44|#e4001b|mo=Vienna Tramline 44 (Schottentor - Ottakring, Maroltingergasse)}}
| 46={{RbE|46|#e4001b|mo=Vienna Tramline 46 (Ring, Volkstheater - Joachimsthalerplatz)}}
| 49={{RbE|49|#e4001b|mo=Vienna Tramline 49 (Ring, Volkstheater - Hütteldorf, Bujattigasse)}}
| 52={{RbE|52|#e4001b|mo=Vienna Tramline 52 (Westbahnhof - Baumgarten)}}
| 60={{RbE|60|#e4001b|mo=Vienna Tramline 60 (Westbahnhof - Rodaun)}}
| 62={{RbE|62|#e4001b|mo=Vienna Tramline 62 (Oper, Karlsplatz - Lainz, Wolkersbergenstaße)}}
| 71={{RbE|71|#e4001b|mo=Vienna Tramline 71 (Börse - Kaiserebersdorf, Zinnergasse)}}
}}
| vorarlberg={{#switch: {{lc: {{{2}}} }}
|s1|1={{RbE|S1|#cf0000|r=e|mo=Vorarlberg S-Bahnlinie 1: Lindau - Bludenz}}
|s3|3={{RbE|S3|#7d8c2a|r=e|mo=Vorarlberg S-Bahnlinie 2: Bregenz - Margrethen}}
|s4|4={{RbE|S4|#eddf15|black|r=e|mo=Vorarlberg S-Bahnlinie 4: Bludenz - Schruns}}
}}
| warszawa|warsaw={{#switch:{{lc: {{{2}}} }}
| m1={{RbE|M1|#0057B8|mo=Warsaw Metro, line 1 (Kabaty - Młociny)}}
| m2={{RbE|M2|#C8102E|mo=Warsaw Metro, line 2 (Księcia Janusza - Trocka)}}
| m3={{RbE|M3|#008000}}
| 1={{RbE|1|#ea001f|mo=Warsaw Tramway, line 1 (Annopol - Banacha)}}
| 2={{RbE|2|#ea001f|mo=Warsaw Tramway, line 2 (Metro Młociny - Tarchomin Kościelny)}}
| 3={{RbE|3|#ea001f|mo=Warsaw Tramway, line 3 (Annopol - Gocławek)}}
| 4={{RbE|4|#ea001f|mo=Warsaw Tramway, line 4 (Wyścigi - Żerań Wschodni)}}
| 6={{RbE|6|#ea001f|mo=Warsaw Tramway, line 6 (Gocławek - Metro Młociny)}}
| 7={{RbE|7|#ea001f|mo=Warsaw Tramway, line 7 (Kawęczyńska-Bazylika - P+R Aleja Krakowska)}}
| 9={{RbE|9|#ea001f|mo=Warsaw Tramway, line 9 (Gocławek - P+R Aleja Krakowska)}}
|10={{RbE|10|#ea001f|mo=Warsaw Tramway, line 10 (Osiedle Górczewska - Wyścigi)}}
|11={{RbE|11|#ea001f|mo=Warsaw Tramway, line 11 (Plac Narutowicza - Metro Młociny)}}
|13={{RbE|13|#ea001f|mo=Warsaw Tramway, line 13 (Kawęczyńska-Bazylika - Cmentarz Wolski)}}
|14={{RbE|14|#ea001f|mo=Warsaw Tramway, line 14 (Banacha - Metro Wilanowska)}}
|15={{RbE|15|#ea001f|mo=Warsaw Tramway, line 15 (Marymont-Potok - P+R Aleja Krakowska)}}
|17={{RbE|17|#ea001f|mo=Warsaw Tramway, line 17 (Tarchomin Kościelny - Służewiec)}}
|18={{RbE|18|#ea001f|mo=Warsaw Tramway, line 18 (Służewiec - Żerań FSO)}}
|20={{RbE|20|#ea001f|mo=Warsaw Tramway, line 20 (Boernerowo - Żerań FSO)}}
|22={{RbE|22|#ea001f|mo=Warsaw Tramway, line 22 (Wiatraczna - Piaski)}}
|23={{RbE|23|#ea001f|mo=Warsaw Tramway, line 23 (Czynszowa - Nowe Bemowo)}}
|24={{RbE|24|#ea001f|mo=Warsaw Tramway, line 24 (Gocławek - Nowe Bemowo)}}
|25={{RbE|25|#ea001f|mo=Warsaw Tramway, line 25 (Annopol - Banacha)}}
|26={{RbE|26|#ea001f|mo=Warsaw Tramway, line 26 (Osiedle Górczewska - Wiatraczna)}}
|27={{RbE|27|#ea001f|mo=Warsaw Tramway, line 27 (Cmentarz Wolski - Metro Marymont)}}
|28={{RbE|28|#ea001f|mo=Warsaw Tramway, line 28 (Dworzec Wschodni (Kijowska) - Osiedle Górczewska)}}
|31={{RbE|31|#ea001f|mo=Warsaw Tramway, line 31 (Metro Wilanowska - Służewiec)}}
|33={{RbE|33|#ea001f|mo=Warsaw Tramway, line 33 (Kielecka - Metro Młociny)}}
|35={{RbE|35|#ea001f|mo=Warsaw Tramway, line 35 (Nowe Bemowo - Wyścigi)}}
|tram={{RbE|tram|#EA001F}}
|bus={{RbE|bus|#89007D}}
|skm={{RbE|skm|#008E4F}}
}}
| washington={{#switch: {{lc: {{{2}}} }}
| rd|red={{RbE|RD|#E31233}}
| bl|blue={{RbE|BL|#268BC9}}
| or|orange={{RbE|OR|#F69318|black}}
| yl|yellow={{RbE|YL|#FFD300|black}}
| gr|green={{RbE|GR|#00A94E|black}}
| sv|silver={{RbE|SV|#A2A3A2|black}}
| pr|purple={{RbE|PR|#800080}}
| metroway={{RbE|Metroway|#1162A5}}
| dcstreetcar={{RbE|DC Streetcar|#EF2E31|#7B7979}}
}}
| wellington={{#switch: {{lc: {{{2}}} }}
|jvl={{RbE|JVL|#6699cc|mo=MetLink: Johnsonville Branch}}
|kpl={{RbE|KPL|#33cc00|mo=MetLink: Kapiti Line}}
|hvl={{RbE|HVL|#ce0808|mo=MetLink: Hutt Valley Line}}
|mel={{RbE|MEL|#ff6600|mo=MetLink: Melling Branch}}
|wrl={{RbE|WRL|#ffcc00|mo=MetLink: Wairapa Connection}}
}}
| west midlands|westmidlands|wolverhampton|birmingham={{#switch: {{lc: {{{2}}} }}
|1={{RbE|1|#0075bf|mo=West Midlands Metro, Line 1 (Wolverhampton - Library (-Edgbaston))}}
|2={{RbE|2|#0075bf|mo=West Midlands Metro, Line 2 (Stourbridge Town - Curzon Street)}}
}}
| wroclaw|wrocław|breslau={{#switch: {{lc: {{{2}}} }}
| 0={{RbE|0|yellow|black|mo=Wrocław Tramway, Line 0L/P (Dw. Nadodrze - Dw. Główny circle)}}
| 1={{RbE|1|yellow|black|mo=Wrocław Tramway, Line 1 (Biskupin - Poświętne)}}
| 2={{RbE|2|yellow|black|mo=Wrocław Tramway, Line 2 (Biskupin - Krzyki)}}
| 3={{RbE|3|yellow|black|mo=Wrocław Tramway, Line 3 (Leśnica - Księże Małe)}}
| 4={{RbE|4|yellow|black|mo=Wrocław Tramway, Line 4 (Biskupin - Oporów)}}
| 5={{RbE|5|yellow|black|mo=Wrocław Tramway, Line 5 (Oporów - Księże Małe)}}
| 6={{RbE|6|yellow|black|mo=Wrocław Tramway, Line 6 (Kowale - Krzyki)}}
| 7={{RbE|7|yellow|black|mo=Wrocław Tramway, Line 7 (Poświętne - Krzyki)}}
| 8={{RbE|8|yellow|black|mo=Wrocław Tramway, Line 8 (Zawalna - Tarnogaj)}}
| 9={{RbE|9|yellow|black|mo=Wrocław Tramway, Line 9 (Sępolno - Park Południowy)}}
|10={{RbE|10|yellow|black|mo=Wrocław Tramway, Line 10 (Leśnica - Biskupin)}}
|11={{RbE|11|yellow|black|mo=Wrocław Tramway, Line 11 (Kromera - Cmentarz)}}
|14={{RbE|14|yellow|black|mo=Wrocław Tramway, Line 14 (Osobowice - FAT - Osobowice)}}
|15={{RbE|15|yellow|black|mo=Wrocław Tramway, Line 15 (Poświętne - Park Południowy)}}
|17={{RbE|17|yellow|black|mo=Wrocław Tramway, Line 17 (Sępolno - Klecina)}}
|20={{RbE|20|yellow|black|mo=Wrocław Tramway, Line 20 (Leśnica - Oporów)}}
|23={{RbE|23|yellow|black|mo=Wrocław Tramway, Line 23 (Kromera - Wrocławski Park Przemysłowy)}}
|24={{RbE|24|yellow|black|mo=Wrocław Tramway, Line 24 (Osobowice - FAT - Osobowice)}}
|31={{RbE|31|yellow|black|mo=Wrocław Tramway, Line 31 (Stadion Wrocław - Gaj)}}
|32={{RbE|32|yellow|black|mo=Wrocław Tramway, Line 32 (Kozanów - Gaj)}}
|33={{RbE|33|yellow|black|mo=Wrocław Tramway, Line 33 (Pilczyce - Stadion Olimpijski)}}
}}
| wuhan={{#switch: {{lc: {{{2}}} }}
| 1={{RbE|1|#0067A4}}
| 2={{RbE|2|#E99BC1}}
| 3={{RbE|3|#DAB866}}
| 4={{RbE|4|#B8D200}}
| 5={{RbE|5|#E45D50}}
| 6={{RbE|6|#007733}}
| 7={{RbE|7|#EE7800}}
| 8={{RbE|8|#9AAEAD}}
| 9={{RbE|9|#A5D4AD}}
|10={{RbE|10|#925F52}}
|11={{RbE|11|#FDD000}}
|12={{RbE|12|#00A3E9}}
|24={{RbE|24}}
|26={{RbE|26}}
|27={{RbE|27}}
|28={{RbE|28}}
|yangluo|{{RbE|Yangluo|#B60081}}
}}
| wurzburg|würzburg= {{#switch: {{lc: {{{2}}} }}
|t1|1={{RbE|1|#ffbb00|mo=Straßenbahn Würzburg, Linie 1 (Grombühl Uni-Kliniken - Sanderau)}}
|t2|2={{RbE|2|#ff0000|mo=Straßenbahn Würzburg, Linie 2 (Würzburg Hbf - Zellerau)}}
|t3|3={{RbE|3|#0066ff|mo=Straßenbahn Würzburg, Linie 3 (Würzburg Hbf - Heuchelhof)}}
|t4|4={{RbE|4|#008000|mo=Straßenbahn Würzburg, Linie 4 (Sanderau - Zellerau)}}
|t5|5={{RbE|5|#800080|mo=Straßenbahn Würzburg, Linie 5 (Grombühl Uni-Kliniken - Rottenbauer)}}
}}
| wuxi={{#switch: {{lc: {{{2}}} }}
| 1={{RbE|1|#EE3E41}}
| 2={{RbE|2|#05AA44}}
| 3={{RbE|3|#0000EE}}
| 4={{RbE|4|#800080}}
| 5={{RbE|5|#FFCC00}}
| 6={{RbE|6}}
| 7={{RbE|7}}
| 8={{RbE|8}}
| 9={{RbE|9}}
}}
| xi'an={{#switch: {{lc: {{{2}}} }}
| 1={{RbE|1|#007FFF}}
| 2={{RbE|2|#FF0000}}
| 3={{RbE|3|#FF00FF}}
| 4={{RbE|4|#66FF00}}
| 5={{RbE|5|#00A15C}}
| 6={{RbE|6|#9932CC}}
| lintong={{RbE|Lintong}}
}}
| xiamen={{#switch: {{lc: {{{2}}} }}
| 1={{RbE|1|#FF7300}}
| 2={{RbE|2|#008900}}
| 3={{RbE|3|#529FC9}}
| 4={{RbE|4|#3D5295}}
| 5={{RbE|5}}
| 6={{RbE|6}}
| 7={{RbE|7}}
| 8={{RbE|8}}
| 9={{RbE|9}}
|10={{RbE|10}}
|11={{RbE|11}}
}}
| yokohama={{#switch: {{lc: {{{2}}} }}
| blue|b|1|3={{RbE|B|#2F56A5}}
| green|g|4={{RbE|G|#28846E}}
}}
| zaragoza={{#switch: {{lc: {{{2}}} }}
| 1={{RbE|1|#27404E}}
| 2={{RbE|2|#BE2D2C}}
| 3={{RbE|3}}
}}
| zhengzhou={{#switch: {{lc: {{{2}}} }}
| 1={{RbE|1|#FF0000}}
| 2={{RbE|2|#FED600}}
| 3={{RbE|3|#1D2088}}
| 4={{RbE|4|#006E1D}}
| 5={{RbE|5|#7A5398}}
| 6={{RbE|6|#BA769B}}
| 7={{RbE|7|#AB5C3E}}
| 8={{RbE|8}}
| 9={{RbE|9}}
|10={{RbE|10}}
|11={{RbE|11}}
|14={{RbE|14}}
|chengjiao={{RbE|Chengjiao|#FED600}}
}}
| zurich={{#switch: {{lc: {{{2}}} }}
| s2 ={{RbE|S2|#7dc242|r=c}}
| s3 ={{RbE|S3|#587ac2|r=c}}
| s4 ={{RbE|S4|#ee7267|r=c}}
| s5 ={{RbE|S5|#57b4ce|r=c}}
| s6 ={{RbE|S6|#734b89|r=c}}
| s7 ={{RbE|S7|#fbb402|r=c}}
| s8 ={{RbE|S8|#62198f|r=c}}
| s9 ={{RbE|S9|#069a5d|r=c}}
| s10={{RbE|S10|#fbcf02|r=c}}
| s11={{RbE|S11|#ad9ace|r=c}}
| s12={{RbE|S12|#ef0503|r=c}}
| s13={{RbE|S13|#ba8c53|r=c}}
| s14={{RbE|S14|#ac6547|r=c}}
| s15={{RbE|S15|#bb9977|r=c}}
| s16={{RbE|S16|#4fad82|r=c}}
| s17={{RbE|S17|#0f89ab|r=c}}
| s18={{RbE|S18|#ef0503|r=c}}
| s19={{RbE|S19|#f08513|r=c}}
| s24={{RbE|S24|#ba8c53|r=c}}
| s25={{RbE|S25|#0088ad|r=c}}
| s26={{RbE|S26|#0f89ab|r=c}}
| s29={{RbE|S29|#069a5d|r=c}}
| s30={{RbE|S30|#0b5a9c|r=c}}
| s33={{RbE|S33|#7c93ce|r=c}}
| s35={{RbE|S35|#acbce7|r=c}}
| s40={{RbE|S40|#b793c9|r=c}}
| s41={{RbE|S41|#f2b49b|r=c}}
}}<!--
GENERIC
-->
| air=[[Berkas:BSicon FLUG.svg|{{{size|13}}}px|link=]]
| airfield=[[Berkas:Airplane GA Black.svg|{{{size|16}}}px|link={]]
| bike|bicycle=[[Berkas:BSicon BICYCLE.svg|{{{size|17}}}px|link=]]
| rapid|brt=[[Berkas:BSicon BUS3.svg|{{{size|16}}}px|link=]]
| bus=[[Berkas:Bus-logo.svg|{{{size|{{#ifeq:{{{2|}}}|1|14|18}}}}}px|link=]]
| cable=[[Berkas:BSicon AETRAM.svg|{{{size|16}}}px|link=]]
| evcharger={{EVCharger-icon}}
| express=[[Berkas:BSicon LDER.svg|{{{size|16}}}px|link=]]
| ferry=[[Berkas:Ferry symbol.svg|{{{size|16}}}px|link=]]
| food={{Food-icon}}
| fuel={{Fuel-icon}}
| funicular|incline=[[Berkas:BSicon FUNI.svg|{{{size|18}}}px|link=]]
| heliport=[[Berkas:Aiga heliport.svg|{{{size|16}}}px|link=]]
| heritagerail=[[Berkas:BSicon lDAMPF.svg|{{{size|16}}}px|link=]]
| heritagetram=[[Berkas:BSicon BRILL.svg|{{{size|18}}}px|link=]]
| lodging|lodge={{Lodging-icon}}
| metro|subway|underground=[[Berkas:BSicon SUBWAY.svg|{{{size|16}}}px|link=]]
| mono|monorail=[[Berkas:BSicon_MONO.svg|{{{size|16}}}px|link=]]
| park|parking=[[Berkas:Parking.svg|{{{size|18}}}px|link=]]
| passport=[[Berkas:Aiga immigration.svg|{{{size|16}}}px|link=|alt=passport control|passport control]]
| rail=[[Berkas:BSicon BAHN.svg|{{{size|16}}}px|link=]]
| store={{Store-icon}}
| toilet={{Toilet-icon}}
| tram|light rail=[[Berkas:BSicon TRAM.svg|{{{size|16}}}px|link=]]
| trolley|trolleybus|tb=[[Berkas:BSicon OBUS.svg|{{{size|14}}}px|link=}]]
| wheelchair|handicap={{Handicap-icon}}
<!--
COUNTRIES
-->
| at|austria={{#switch: {{lc: {{{2}}} }}
| öbb|obb = [[Berkas:Logo ÖBB.svg|{{{size|32px}}}|link=]]
| westbahn = [[Berkas:Westbahn-logo-pantone.svg|{{{size|32px}}}|link=]]
}}
| be|belgium={{#switch: {{lc: {{{2}}} }}
| rail=[[Berkas:SNCB logo.svg|{{{size|15}}}px|link=]]
}}
| bg|bulgaria={{#switch: {{lc: {{{2}}} }}
| rail=[[Berkas:National Railways.jpg|{{{size|20}}}px|link=]]
}}
| ca|canada={{#switch: {{lc: {{{2}}} }}
| cn=[[Berkas:CN Railway logo.svg|{{{size|16}}}px|link=]]
| cp=[[Berkas:CP Multimark.svg|{{{size|12}}}px|link=]]
| rail|via=[[Berkas:VIA Rail Canada simplified.svg|{{{size|24}}}px|link=]]
}}
| ch|switzerland={{#switch: {{lc: {{{2}}} }}
| bls=[[Berkas:BLS AG logo.svg|{{{size|32}}}px|link=]]
| rhb={{RbE|RhB|#FF0000}}
| mgb={{RbE|MGB|#ED1C24}}
}}
| cn|china={{#switch: {{lc: {{{2}}} }}
| rail=[[Berkas:China Railways.svg|{{{size|x16}}}px|link=]]
| crh=[[Berkas:ChinaRailwayHighspeed-notext.svg|{{{size|x16}}}px|link=]]
| metro=[[Berkas:BSicon SUBWAY-CHN.svg|{{{size|x16}}}px|link=]]
| mono=[[Berkas:BSicon CHN-Mono.svg|{{{size|x16}}}px|link=]]
}}
| cz|czechrepublic|czechia={{#switch: {{lc: {{{2}}} }}
| arriva={{RbE|arriva|white|#00BFCD}}
| cd=[[Berkas:ČD logo.svg|{{{size|20}}}px|link=]]
| esko=[[Berkas:Prag Esko Logo.svg|{{{size|20}}}px|link=]]
| ex1={{RbE|Ex1|#14649e|r=e|mo=ČD long-distance train line Ex1: Prague - Pardubice - Olomouc - Ostrava - Poland/Slovakia}}
| ex2={{RbE|Ex2|#1c9bd7|r=e|mo=ČD long-distance train line Ex2: Prague - Pardubice - Olomouc - Slovakia}}
| ex3={{RbE|Ex3|#cc323f|r=e|mo=ČD long-distance train line Ex3: Germany - Ústí n/L - Prague - Brno - Austria/Slovakia}}
| ex4={{RbE|Ex4|#85b149|r=e|mo=ČD long-distance train line Ex4: Poland - Ostrava - Austria/Slovakia}}
| ex6={{RbE|Ex6|#74cedd|r=e|mo=ČD long-distance train line Ex6: Prague - Pilsen - Germany}}
| ex7={{RbE|Ex7|#ef7a58|r=e|mo=ČD long-distance train line Ex7: Prague - České Budějovice - Austria}}
| leo={{RbE|LEO<small>EXPRESS</small>|white|black}}
| r29={{RbE|R29|#48478e|r=e|mo=ČD long-distance train line R29: Cheb - Nuremberg}}
| r5={{RbE|R5|#759f48|r=e|mo=ČD long-distance train line R5: Prague - Ústí n/L - Cheb}}
| regiojet={{RbE|REGIO|white|#D40000}}{{RbE|JET|white|#1A1AFE}}
| scp={{RbE|SCP|#f59726|r=e|mo=ČD long-distance train line SCP: Prague - Pardubice - Olomouc - Ostrava - Slovakia}}
}}
| de|germany={{#switch: {{lc: {{{2}}} }}
| rail=[[Berkas:Logo_Deutsche_Bahn.svg|{{{size|12}}}px|link=]]
| u-bahn=[[Berkas:U-Bahn.svg|{{{size|10}}}px|link=]]
| stadtbahn=[[Berkas:Stadtbahn.svg|{{{size|10}}}px|link=]]
| s|s-bahn={{RbE|S{{{3}}}|#006F32|r=c}}
}}
| es|spain={{#switch: {{lc: {{{2}}} }}
| rail=[[Berkas:Lgotipo de Renfe Operadora.svg|{{{size|20}}}px|link=]]
| cercanias=[[Berkas:Cercanias Logo.svg|{{{size|12}}}px|link=]]
| feve=[[Berkas:Símbolo Renfe Feve.svg|{{{size|12}}}px|link=]]
| eusko|euskotren={{RbE|euskotren|white|#6D6D6D}}
| fgc={{RbE|FGC|#EA661E|black}}
| fgv={{RbE|FGV|#FFB20F|black}}
}}
| fr|france={{#switch: {{lc: {{{2}}} }}
| rail=[[Berkas:SNCF no text.png|{{{size|15}}}px|link=]]
| ter=[[Berkas:Ter.svg|{{{size|15}}}px|link=]]
| tgv=[[Berkas:TGV.svg|{{{size|20}}}px|link=]]
}}
| gb|greatbritain={{#switch: {{lc: {{{2}}} }}
| rail=[[Berkas:BR logo.svg|{{{size|25}}}px|link=|National Rail]]
| bus=[[Berkas:BSicon BUS.svg|{{{size|18}}}px|link=]]
| calmac=[[Berkas:Ferry symbol.svg|{{{size|15}}}px|link=]]
}}
| hu|hungary={{#switch: {{lc: {{{2}}} }}
| rail=[[Berkas:BSicon MAV.svg|{{{size|20}}}px|link=|alt=railway|railway]]
| tram=[[Berkas:KRESZ villamos.svg|{{{size|34}}}px|sub|link=|alt=tram|tram]]
| trolleybus=[[Berkas:KRESZ troli.svg|{{{size|25}}}px|sub|link=|alt=trolleybus|trolleybus]]
| bus=[[Berkas:KRESZ busz.svg|{{{size|24}}}px|sub|link=|alt=bus|bus]]
}}
| ie|ireland={{#switch: {{lc: {{{2}}} }}
| rail=[[Berkas:Irish Rail logo.svg|{{{size|13}}}px|link=]]
}}
| jp|ja|japan={{#switch: {{lc: {{{2}}} }}
| jrh=[[Berkas:JR_logo_(hokkaido).svg|{{{size|19}}}px|link=]]
| jre=[[Berkas:JR_logo_(east).svg|{{{size|19}}}px|link=]]
| jrc=[[Berkas:JR_logo_(central).svg|{{{size|19}}}px|link=]]
| jrw=[[Berkas:JR_logo_(west).svg|{{{size|19}}}px|link=]]
| jrs=[[Berkas:JR_logo_(shikoku).svg|{{{size|19}}}px|link=]]
| jrk=[[Berkas:JR_logo_(kyushu).svg|{{{size|19}}}px|link=]]
| jrf=[[Berkas:JR_logo_(freight).svg|{{{size|19}}}px|link=]]
| shintokaido={{RbE|Tokaido|#0000CD}}
| shinsanyo={{RbE|San'yō|#0073BC}}
| shintohoku={{RbE|Tōhoku|#008000}}
| shinjoetsu={{RbE|Jōetsu|#008000}}
| shinhokuriku={{RbE|Hokuriku|#1E90FF}}
| shinkyushu={{RbE|Kyushu|#FF0000}}
| shinhokkaido={{RbE|Hokkaido|#2CB431}}
| shinyamagata={{RbE|Yamagata|#FF8000}}
| shinakita={{RbE|Akita|#FF0080}}
| shinchuo={{RbE|Chūō|#E6C210}}
}}
| kr|southkorea={{#switch: {{lc: {{{2}}} }}
| rail=[[Berkas:Korail logo.svg|{{{size|12}}}px|link=]]
| ktx=[[Berkas:KTX logo.svg|{{{size|12}}}px|link=]]
}}
| ni|northernireland={{#switch: {{lc: {{{2}}} }}
| rail=[[Berkas:NIR logo.svg|{{{size|15}}}px|link=]]
| bangor=[[Berkas:NIRsymbol_Bangor.svg|{{{size|10}}}px|link=]]
| derry=[[Berkas:NIRsymbol_DLD.svg|{{{size|10}}}px|link=]]
| larne=[[Berkas:NIRsymbol_Larne.svg|{{{size|10}}}px|link=]]
| londonderry=[[Berkas:NIRsymbol_DLD.svg|{{{size|10}}}px|link=]]
| newry=[[Berkas:NIRsymbol_Newry.svg|{{{size|10}}}px|link=]]
| portrush=[[Berkas:NIRsymbol_Portrush.svg|{{{size|10}}}px|link=]]
}}
| nl|netherlands={{#switch: {{lc: {{{2}}} }}
| nsreizigers|nsr={{RbE|NS|#003082|r=e|mo=Trains serviced by NS.}}
| nssprinter|spr={{RbE|SPR|#003082|r=e|mo=Sprinter (stopping train) serviced by NS.}}
| nsintercity|ic={{RbE|IC|#003082|r=e|mo=Intercity (fast train) serviced by NS.}}
| nsintercitydirect|icd={{RbE|ICD|#003082|r=e|mo=Intercity Direct serviced by NS.}}
| nsintercityexpress|ice={{RbE|ICE|#B4B4B4|r=e|mo=InterCity Express serviced by Deutsche Bahn or NS.}}
| thalys={{RbE|TLY|#BC2F3F|r=e}}
| eurostar={{RbE|EUS|#06183D|#FADB00|r=e}}
| regionalexpress|re={{RbE|RE|red|black|r=e|mo=Regional Express (to Germany).}}
| regionalbahn|rb={{RbE|RB|red|black|r=e|mo=Regionalbahn (to Germany).}}
| arriva|arr={{RbE|ARR|#DF1313|r=e|mo=Serviced by Arriva.}}
| breng|brg={{RbE|BRG|#E2007A|r=e|mo=Serviced by Breng.}}
| connexxion|cxx={{RbE|CXX|#0EA4B5|#CDDC29|r=e|mo=Serviced by Connexxion.}}
| gvb={{RbE|GVB|transparent|#009fe3|r=e|b=t|mo=Serviced by GVB}}
| keolis|keo={{RbE|KEO|#00AAC3|r=e|mo=Serviced by Keolis.}}
| qbuzz={{RbE|Qbuzz|transparent|#ff7d00|b=t|r=e|mo=Serviced by Qbuzz}}
| rnet|r-net={{RbE|{{RbE|<big><big>R</big></big>|transparent|#e30613}}NET|transparent|#4e585d|mo=Serviced by R-Net}}
| ret={{RbE|RET|transparent|#d82331|b=t|r=e|mo=Serviced by RET}}
| twents={{RbE|TWE|#E60003|r=e|mo=Serviced by Keolis Twents.}}
| uov|u-ov={{RbE|<big><big>{{RbE|U|white|#f17e01|r=e|b=t|mo=Serviced by U-OV}}</big></big> OV|transparent|#f17e01|mo=Serviced by U-OV}}
| blauwnet={{RbE|BLW|#228DC3|r=e|mo=Blauwnet serviced by Arriva and Keolis.}}
}}
| my|malaysia={{#switch: {{lc: {{{2}}} }}
| ets={{RbE|ETS|#FFD700|black}}
| easternoriental={{RbE|Eastern & Oriental Express|#535353}}
| ktmwestcoast={{RbE|KTM West Coast|#BE2D2C}}
| ktmeastcoast={{RbE|KTM East Coast|#BE2D2C}}
| ktmintercity={{RbE|KTM Intercity|#535353}}
| westernsabah={{RbE|Western Line|#BE2D2C}}
| padangrengas={{RbE|Padang Rengas|#1964B7}}
| padangbesar={{RbE|Padang Besar|#008000}}
| srtinternational={{RbE|SRT International Express}}
| seremban|1={{RbE|1|#1964B7}}
| portklang|2={{RbE|2|#DC241F}}
| ampang|3={{RbE|3|#FE8E10}}
| sripetaling|4={{RbE|4|#721422}}
| kelanajaya|5={{RbE|5|#E0115F}}
| kliaekspres|6={{RbE|6|#800080}}
| kliatransit|7={{RbE|7|#139593}}
| klmono|8={{RbE|8|#7DBA00}}
| sungaibulohkajang|9={{RbE|9|#008000}}
| skypark|10={{RbE|10|#964B00}}
| utamaklang|11={{RbE|11|#00AAE4}}
| bulohserdangputrajaya|12={{RbE|12|#FFCC00|black}}
| circle|13={{RbE|13|#808080}}
| putrajayamono|14={{RbE|14|#808000}}
| aerotrain={{RbE|Aerotrain}}
| ecr={{RbE|ECR|#1964B7}}
| rts={{RbE|RTS|#87CEEB|black}}
| hsr={{RbE|HSR|#DC241F}}
}}
| pl|poland={{#switch: {{lc: {{{2}}} }}
| eic={{RbE|EIC|#898989}}
| eip={{RbE|EIP|#002664}}
| ic={{RbE|IC|#f25e18}}
| reg={{RbE|REG|#e50000}}
| tlk={{RbE|TLK|#8505a3}}
}}
| pt|portugal={{#switch: {{lc: {{{2}}} }}
| rail=[[Berkas:Logo CP 2.svg|{{{size|18}}}px|link=]]
}}
| qt|qatar={{#switch: {{lc: {{{2}}} }}
| m1={{RbE|M1|#DC241F}}
| m2={{RbE|M2|#009530}}
| m3={{RbE|M3|#FFD700}}
| m4={{RbE|M4|#0354A6}}
| l1={{RbE|L1|#DC241F}}
| l2={{RbE|L2|#009530}}
| l3={{RbE|L3|#9016B2}}
| l4={{RbE|L4|#FFD700}}
}}
| ru|russia={{#switch: {{lc: {{{2}}} }}
| rail=[[Berkas:Russian Railways Logo.svg|{{{size|25}}}px|link=]]
| kaliningrad={{RbE|Kaliningrad|#C4151C}}
| october={{RbE|October|#C4151C}}
| moscow={{RbE|Moscow|#C4151C}}
| gorky={{RbE|Gorky|#C4151C}}
| southeastern={{RbE|South Eastern|#C4151C}}
| northcaucasus={{RbE|North Caucasus|#C4151C}}
| volga={{RbE|Volga|#C4151C}}
| kuybyshev={{RbE|Kuybyshev|#C4151C}}
| southurals={{RbE|South Urals|#C4151C}}
| northernsverdlovsk={{RbE|Northern Sverdlovsk|#C4151C}}
| yamal={{RbE|Yamal|#C4151C}}
| norilsk={{RbE|Norilsk|#C4151C}}
| westsiberian={{RbE|West Siberian|#C4151C}}
| krasnoyarsk={{RbE|Krasnoyarsk|#C4151C}}
| eastsiberian={{RbE|East Siberian|#C4151C}}
| transbaikal={{RbE|Trans-Baikal|#C4151C}}
| yakutian={{RbE|Yakutian|#C4151C}}
| fareastern={{RbE|Far Eastern|#C4151C}}
| abkhazian={{RbE|Abkhazian|#C4151C}}
| southcaucasus={{RbE|South Caucasus|#C4151C}}
| tuvan={{RbE|Tuvan|#C4151C}}
}}
| sg|singapore={{#switch: {{lc: {{{2}}} }}
| nsl={{RbE|NSL|#DC241F}}
| ewl={{RbE|EWL|#009530}}
| nel={{RbE|NEL|#9016B2}}
| ccl={{RbE|CCL|#FF9A00}}
| dtl={{RbE|DTL|#0354A6}}
| tel={{RbE|TEL|#734538}}
| jrl={{RbE|JRL|#FFCC00|black}}
| crl={{RbE|CRL|#01A0B1}}
| bplrt={{RbE|BPLRT|#748477}}
| sklrt={{RbE|SKLRT|#748477}}
| pglrt={{RbE|PGLRT|#748477}}
| caas={{RbE|CAAS}}
| sdc={{RbE|SDC}}
}}
| tw|taiwan={{#switch: {{lc: {{{2}}} }}
| tra|rail=[[Berkas:TRA Logo.svg|{{{size|18}}}px|link=]]
| thsr=[[Berkas:Taiwan High Speed Rail Logo(Log Only).svg|{{{size|18}}}px|link=]]
| airport=[[Berkas:Taoyuan Metro Line Airport.svg|{{{size|18}}}px|link=]]
| cbrt=[[Berkas:Chiayi Bus Rapid Transit Logo(Logo Only).svg|{{{size|18}}}px|link=]]
| gondola=[[Berkas:Maokong Gondola Logo(Logo Only).svg|{{{size|18}}}px|link=]]
| kmrt=[[Berkas:Kaohsiung Mass Rapid Transit Logo(Logo Only).svg|{{{size|18}}}px|link=]]
| trts=[[Berkas:Taipei Metro Logo(Logo Only).svg|{{{size|18}}}px|link=]]
| tym=[[Berkas:Taoyuan Metro logo seal only.svg|{{{size|18}}}px|link=]]
}}
| ae|unitedarabemirates|emirates={{#switch: {{lc: {{{2}}} }}
| er={{RbE|ER|#E31836}}
}}
| us|unitedstates|usa={{#switch: {{lc: {{{2}}} }}
| rail=[[Berkas:BSicon TRAIN3.svg|{{{size|16}}}px|link=]]
| amtrak=[[Berkas:BSicon LOGO Amtrak2.svg|{{{size|20}}}px|link=]]
| amtrakbus=[[Berkas:BSicon LOGO Amtrak2.svg|{{{size|20}}}px|link=]]
| csx | csxt =[[Berkas:CSX transp logo.svg|{{{size|x14}}}px|link=]]
| greyhound=[[Berkas:BSicon BUS3.svg|{{{size|20}}}px|link=]]
| am-acela={{RbE|Axela Express|#007397}}
| am-adirondack={{RbE|Adirondack|#007397}}
| am-cascades={{RbE|Amtrak Cascades|#007397}}
| am-autotrain={{RbE|Auto Train|#007397}}
| am-bluewater={{RbE|Blue Water|#007397}}
| am-californiazephyr={{RbE|California Zephyr|#007397}}
| am-capitolcorridor={{RbE|Capitol Corridor|#007397}}
| am-capitollimited={{RbE|Capitol Ltd|#007397}}
| am-cardinal={{RbE|Cardinal|#007397}}
| am-carlsandburg={{RbE|Carl Sandburg|#007397}}
| am-carolinian={{RbE|Carolinian|#007397}}
| am-cityofneworleans={{RbE|City of New Orleans|#007397}}
| am-coaststarlight={{RbE|Coast Starlight|#007397}}
| am-crescent={{RbE|Crescent|#007397}}
| am-downeastern={{RbE|Downeastern|#007397}}
| am-empirebuilder={{RbE|Empire Builder|#007397}}
| am-empireservice={{RbE|Empire Service|#007397}}
| am-ethanallen={{RbE|Ethan Allen Express|#007397}}
| am-heartland={{RbE|Heartland Flyer|#007397}}
| am-hiawatha={{RbE|Hiawatha Service|#007397}}
| am-hoosier={{RbE|Hoosier State|#007397}}
| am-illini={{RbE|Illini|#007397}}
| am-illinoiszephyr={{RbE|Illinois Zephyr|#007397}}
| am-keystone={{RbE|Keystone Service|#007397}}
| am-lakeshore={{RbE|Lakeshore Ltd|#007397}}
| am-lincoln={{RbE|Lincoln Service|#007397}}
| am-mapleleaf={{RbE|Maple Leaf|#007397}}
| am-missouririver={{RbE|Missouri River Runner|#007397}}
| am-northeastregional={{RbE|Northeast Regional|#007397}}
| am-pacificsurf={{RbE|Pacific Surfliner|#007397}}
| am-palmetto={{RbE|Palmetto|#007397}}
| am-pennsylvanian={{RbE|Pennsylvanian|#007397}}
| am-peremerquette={{RbE|Pere Merquette|#007397}}
| am-piedmont={{RbE|Piedmont|#007397}}
| am-saluki={{RbE|Saluki|#007397}}
| am-sanjoaquins={{RbE|San Joaquins|#007397}}
| am-shuttle={{RbE|Shuttle|#007397}}
| am-silvermeteor={{RbE|Silver Meteor|#007397}}
| am-silverstar={{RbE|Silver Star|#007397}}
| am-southwestchief={{RbE|Southwest Chief|#007397}}
| am-sunsetlimited={{RbE|Sunset Ltd|#007397}}
| am-texaseagle={{RbE|Texas Eagle|#007397}}
| am-vermonter={{RbE|Vermonter|#007397}}
| am-wolverine={{RbE|Wolverine|#007397}}
}}
<!-- NOINCLUDE-->
}}<noinclude>
[[de:voy:Vorlage:Rail-interchange]]
[[en:voy:Template:Rail-interchange]]
[[shn:voy:ထႅမ်းပလဵၵ်ႉ:Rail-interchange]]
[[vi:voy:Bản mẫu:Rail-interchange]]
[[zh:voy:Template:Rail-interchange]]
</noinclude>
r8crut7xc57nnfq339sf4x525jp9f81
Templat:Ramadan
10
413
1723
1722
2024-12-03T14:15:41Z
Jon Harald Søby
20
9 revisi diimpor
1722
wikitext
text/x-wiki
<includeonly>{{Infobox|Ramadan|Ramadan adalah bulan ke-9 dalam kalender Islam dan merupakan yang paling suci. Umat Muslim berpuasa setiap hari selama 29-30 hari dengan durasi bervariasi, sebagian besar restoran akan tutup hingga berbuka puasa saat senja. Tidak ada apa pun (termasuk air dan rokok) yang boleh masuk ke mulut, dari fajar hingga matahari terbenam. Non-Muslim dibebaskan dari kewajiban ini, tetapi mereka tetap harus menahan diri dari makan atau minum di depan umum karena dianggap sangat tidak sopan. Jam kerja kantoran juga dikurangi.
Tanggal pasti Ramadhan tergantung pada pengamatan astronomi lokal dan mungkin agak berbeda dari satu negara dan negara lainnya. Ramadhan diakhiri dengan festival ''Idul Fitri'', yang biasanya berlangsung tiga hari di sebagian besar negara.{{#ifeq:1|{{#expr: {{CURRENTYEAR}}<=2022}}|{{#ifeq:1|{{#expr: ({{CURRENTYEAR}}+4)>2022}}|*2 April – 1 Mei 2022 (''1443 AH'')}}}}<!--
-->{{#ifeq:1|{{#expr: {{CURRENTYEAR}}<=2023}}|{{#ifeq:1|{{#expr: ({{CURRENTYEAR}}+4)>2023}}|*23 Maret – 20 April 2023 (''1444 AH'')}}}}<!--
-->{{#ifeq:1|{{#expr: {{CURRENTYEAR}}<=2024}}|{{#ifeq:1|{{#expr: ({{CURRENTYEAR}}+4)>2024}}|*11 Maret – 9 April 2024 (''1445 AH'')}}}}<!--
-->{{#ifeq:1|{{#expr: {{CURRENTYEAR}}<=2025}}|{{#ifeq:1|{{#expr: ({{CURRENTYEAR}}+4)>2025}}|*1 Maret – 29 Maret 2025 (''1446 AH'')}}}}<!--
-->{{#ifeq:1|{{#expr: {{CURRENTYEAR}}<=2026}}|{{#ifeq:1|{{#expr: ({{CURRENTYEAR}}+4)>2026}}|*18 Februari – 19 Maret 2026 (''1447 AH'')}}}}<!--
-->{{#ifeq:1|{{#expr: {{CURRENTYEAR}}<=2027}}|{{#ifeq:1|{{#expr: ({{CURRENTYEAR}}+4)>2027}}|*8 Februari – 8 Maret 2027 (''1448 AH'')}}}}<!--
-->{{#ifeq:1|{{#expr: {{CURRENTYEAR}}<=2028}}|{{#ifeq:1|{{#expr: ({{CURRENTYEAR}}+4)>2028}}|*28 Januari – 25 Februari 2028 (''1449 AH'')}}}}<!--
-->{{#ifeq:1|{{#expr: {{CURRENTYEAR}}<=2029}}|{{#ifeq:1|{{#expr: ({{CURRENTYEAR}}+4)>2029}}|*16 Januari – 12 Februari 2029 (''1450 AH'')}}}}
{{#if:{{{suppressTravelLink|}}}
|
| <p>Jika Anda berencana untuk pergi ke {{#if:{{{suppressPageName|}}}|sebuah wilayah muslim|{{BASEPAGENAME}}}} selama Ramadan, pertimbangkan untuk membaca [[Bepergian selama Ramadan]].</p>}}}}</includeonly><noinclude>{{INTERWIKI|Q13777425}} [[Kategori:Templat waktu, tanggal dan kalender]]
</noinclude>
<!--http://www.staff.science.uu.nl/~gent0113/islam/ummalqura_principal.htm adalah sumber yang bagus untuk memperbarui tanggal Ramadan-->
1uqr1spilhla4zap4bum2rsb2zh4zzd
Templat:Ramadandates
10
414
1725
1724
2024-12-03T14:15:41Z
Jon Harald Søby
20
1 revisi diimpor
1724
wikitext
text/x-wiki
#redirect[[Templat:Ramadan]]
lio8z1pgquvvjacusw7i7my4tu6meb1
Templat:Rand
10
415
1727
1726
2024-12-03T14:15:41Z
Jon Harald Søby
20
1 revisi diimpor
1726
wikitext
text/x-wiki
<includeonly>{{#expr:{{Module|(((({{{3|7}}})*({{{4|67}}})+{{#time:U}})*({{{4|67}}})+{{NUMBEROFARTICLES:R}})*({{{4|67}}})+{{NUMBEROFUSERS:R}})*({{{4|67}}})+{{NUMBEROFFILES:R}}|({{{2|99}}})-({{{1|0}}})+1}}+({{{1|0}}})}}</includeonly>
<noinclude></noinclude>
jtxv1fufzjmyrosupnmr5fd4mzvcs11
Templat:RbE
10
416
1729
1728
2024-12-03T14:15:41Z
Jon Harald Søby
20
1 revisi diimpor
1728
wikitext
text/x-wiki
#redirect[[Templat:Routebox entry]]
6p4o4jfnb4980q1jxjviogbtmdzl88d
Templat:Re
10
417
1732
1731
2024-12-03T14:15:41Z
Jon Harald Søby
20
2 revisi diimpor
1731
wikitext
text/x-wiki
<includeonly>{{{{{|safesubst:}}}#if:{{{1|<noinclude>$</noinclude>}}}
|@[[Pengguna:{{{1|Example}}}|{{{1|Example}}}]]{{{{{|safesubst:}}}#if:{{{2|}}}
|, [[Pengguna:{{{2}}}|{{{2}}}]]{{{{{|safesubst:}}}#if:{{{3|}}}
|, [[Pengguna:{{{3}}}|{{{3}}}]]{{{{{|safesubst:}}}#if:{{{4|}}}
|, [[Pengguna:{{{4}}}|{{{4}}}]]{{{{{|safesubst:}}}#if:{{{5|}}}
|, [[Pengguna:{{{5}}}|{{{5}}}]]{{{{{|safesubst:}}}#if:{{{6|}}}
|, [[Pengguna:{{{6}}}|{{{6}}}]]{{{{{|safesubst:}}}#if:{{{7|}}}
|, [[Pengguna:{{{7}}}|{{{7}}}]]{{{{{|safesubst:}}}#if:{{{8|}}}
|, [[Pengguna:{{{8}}}|{{{8}}}]]{{{{{|safesubst:}}}#if:{{{9|}}}
|, [[Pengguna:{{{9}}}|{{{9}}}]]{{{{{|safesubst:}}}#if:{{{10|}}}
|, [[Pengguna:{{{10}}}|{{{10}}}]]{{{{{|safesubst:}}}#if:{{{11|}}}
|, [[Pengguna:{{{11}}}|{{{11}}}]]{{{{{|safesubst:}}}#if:{{{12|}}}
|, [[Pengguna:{{{12}}}|{{{12}}}]]{{{{{|safesubst:}}}#if:{{{13|}}}
|, [[Pengguna:{{{13}}}|{{{13}}}]]{{{{{|safesubst:}}}#if:{{{14|}}}
|, [[Pengguna:{{{14}}}|{{{14}}}]]{{{{{|safesubst:}}}#if:{{{15|}}}
|, [[Pengguna:{{{15}}}|{{{15}}}]]{{{{{|safesubst:}}}#if:{{{16|}}}
|, [[Pengguna:{{{16}}}|{{{16}}}]]{{{{{|safesubst:}}}#if:{{{17|}}}
|, [[Pengguna:{{{17}}}|{{{17}}}]]{{{{{|safesubst:}}}#if:{{{18|}}}
|, [[Pengguna:{{{18}}}|{{{18}}}]]{{{{{|safesubst:}}}#if:{{{19|}}}
|, [[Pengguna:{{{19}}}|{{{19}}}]]{{{{{|safesubst:}}}#if:{{{20|}}}
|, [[Pengguna:{{{20}}}|{{{20}}}]]{{{{{|safesubst:}}}#if:{{{21|}}}
|, [[Pengguna:{{{21}}}|{{{21}}}]]
}}
}}
}}
}}
}}
}}
}}
}}
}}
}}
}}
}}
}}
}}
}}
}}
}}
}}
}}
}}:
|{{error|Error in replyto template: Username not given. See [[Templat:Ping]] for usage.}}
}}</includeonly><noinclude>
{{Dokumentasi}}
{{INTERWIKI|Q14635514}}
</noinclude>
6ebp4lq1f5fngnerk112wc4az8w575h
Templat:Red
10
418
1734
1733
2024-12-03T14:15:41Z
Jon Harald Søby
20
1 revisi diimpor
1733
wikitext
text/x-wiki
<span style="color: red;">{{{1}}}</span><noinclude>
<!-- Add categories to the /doc subpage, not here! -->
{{Documentation}}
</noinclude>
t31acmyfw9ocbl5tvv1i3jvzpzos8k7
Templat:Redirect
10
419
1741
1740
2024-12-03T14:15:41Z
Jon Harald Søby
20
6 revisi diimpor
1740
wikitext
text/x-wiki
<div class="dablink" style="font-style: italic; margin-left: 2em;"><!--
-->"{{{1}}}" beralih ke sini. Untuk {{#if:{{{2|}}}|{{{2}}}|kegunaan lain}}, lihat {{#if:{{{3|}}}|[[:{{{3}}}]]{{#ifeq:{{{4|}}}|and| dan {{#if:{{{5|}}}|[[:{{{5}}}]]|[[{{{1}}} (disambiguasi)]]}}}}|[[{{{1}}} (disambiguasi)]].<!--
-->{{#if:{{{2|}}}|{{#if:{{{4|}}}|<!--
-->{{#ifeq:{{{4|}}}|and||<!-- "and" is a special word, don't output "For and, ..."
-->  Untuk {{#ifeq:{{{4}}}|1|kegunaan lain|{{{4}}}}}, lihat {{#if:{{{5|}}}|[[:{{{5}}}]]{{#ifeq:{{{6|}}}|and| dan {{#if:{{{7|}}}|[[:{{{7}}}]]|[[{{{4}}} (disambiguasi)]]}}}}|[[{{{4}}} (disambiguasi)]]}}.}}<!--
-->{{#if:{{{6|}}}|<!--
-->{{#ifeq:{{{6|}}}|and||<!--
-->  Untuk {{#ifeq:{{{6}}}|1|kegunaan lain|{{{6}}}}}, lihat {{#if:{{{7|}}}|[[:{{{7}}}]]{{#ifeq:{{{8|}}}|and| dan {{#if:{{{9|}}}|[[:{{{9}}}]]|[[{{{6}}} (disambiguasi)]]}}}}|[[{{{6}}} (disambiguasi)]]}}.}}<!--
-->{{#if:{{{8|}}}|<!--
-->{{#ifeq:{{{8|}}}|and||<!--
-->  Untuk {{#ifeq:{{{8}}}|1|kegunaan lain|{{{8}}}}}, lihat {{#if:{{{9|}}}|[[:{{{9}}}]]|[[{{{8}}} (disambiguasi)]]}}.}}<!--
-->}}<!--
-->}}<!--
-->}}}}}}{{#switch:{{{1<noinclude>|REDIRECT</noinclude>}}}|REDIRECT|REDIRECT1|REDIRECT2|REDIRECT3|TERM = | #default = {{#ifexist:{{{1}}}||{{main other|[[Kategori:Pengalihan rusak]]}}}}}}</div><noinclude>
{{documentation}}
[[Kategori:Templat hatnote]]
{{INTERWIKI|Q6042392}}
</noinclude>
sgp67a0wrjyzf429wvftccsvmcn7s6l
Templat:RegionCat
10
420
1748
1747
2024-12-03T14:15:42Z
Jon Harald Søby
20
6 revisi diimpor
1747
wikitext
text/x-wiki
<includeonly>Artikel dan sub-wilayah dari [[{{PAGENAME}}]].
{{WarningForPageRedirect|type=region}}{{#ifeq:{{NAMESPACE}}|{{ns:14}}|{{#ifeq:{{PAGESINCAT:{{PAGENAME}}|subcats}}|0|[[Kategori:Kategori wilayah tingkat bawah]]}}}}</includeonly>
<noinclude>
{{Documentation}}
{{INTERWIKI|Q15630381}}
</noinclude>
b7350i7fx3ooddtqtwig0uzlutkie4a
Templat:RegionCat/doc
10
421
1752
1751
2024-12-03T14:15:42Z
Jon Harald Søby
20
3 revisi diimpor
1751
wikitext
text/x-wiki
{{Documentation subpage}}
Tajuk untuk kategori wilayah. Digunakan saat pramuat dari fungsi ''Buat kategori'' {{Tl|isPartOf}}.
<includeonly>
[[Kategori:Templat]]
</includeonly>
jr89tpgmfshi7fmb1rgpuns8wv3gpyh
Templat:Regionlist
10
422
1768
1767
2024-12-03T14:15:42Z
Jon Harald Søby
20
15 revisi diimpor
1767
wikitext
text/x-wiki
<div id="region_list"><!--
-->{{ #if: {{{regionmap|}}} | {{ #if: {{{regionInteractiveMap|}}} |<div class="mw-collapsible nomobile" id="mw-customcollapsible-{{{regionInteractiveMap|}}}">[[Berkas:{{{regionmap}}}|thumb|{{{regionmapsize|350px}}}|{{{regionmapalign|right}}}|{{{regionmaptext|Wilayah di {{PAGENAME}} - Peta dengan kode warna}}} — <span class="mw-customtoggle-{{{regionInteractiveMap|}}}" style="color: #0645ad;">'''beralih ke peta statis'''</span>]]<!--
--></div><!--
--><div style="display: none" class="mw-collapsible mw-collapsed nomobile" id="mw-customcollapsible-{{{regionInteractiveMap|}}}">
{{Mapframe
|{{{regionmapLat|}}}
|{{{regionmapLong|}}}
|zoom={{{regionmapZoom|auto}}}
|width={{#expr:{{Wy/syl/Str sub|{{{regionmapsize|350px}}}|0|{{#expr:{{Wy/syl/Str find|{{{regionmapsize|350px}}}|px}} -1}}}}+2}}
|height={{Wy/syl/ImageHeight|{{{regionmap|}}}|{{#expr:{{Wy/syl/Str sub|{{{regionmapsize|350px}}}|0|{{#expr:{{Wy/syl/Str find|{{{regionmapsize|350px}}}|px}} -1}}}}+2}}}}
|group={{{regionInteractiveMap|}}}
|name={{{regionmaptext|Wilayah di {{PAGENAME}} - Peta dengan kode warna}}} — <span class="mw-customtoggle-{{{regionInteractiveMap|}}}" style="color: #0645ad;">'''beralih ke peta statis'''</span>
|align={{{regionmapalign|right}}}
}}<!--
--></div><div class="mf-mobile-only"><span style="float: right; text-align:left">[[Berkas:{{{regionmap}}}|thumb|{{{regionmobilemapsize|{{{regionmapsize|350px}}}}}}|{{{regionmapalign|right}}}|{{{regionmaptext|Wilayah di {{PAGENAME}} - Peta dengan kode warna}}}]]</span></div><!--
-->|<span style="float: right; text-align:left">[[Berkas:{{{regionmap}}}|thumb|{{{regionmapsize|350px}}}|{{{regionmapalign|right}}}|{{{regionmaptext|Wilayah di {{PAGENAME}} - Peta dengan kode warna}}}]]</span>}}}}<!--
-->{{ #if: {{{region1name|}}} | {{Regionlist/item|{{{region1color}}}|{{{region1name}}}|{{{region1items|}}}|{{{region1description}}} }} }}<!--
-->{{ #if: {{{region2name|}}} | {{Regionlist/item|{{{region2color}}}|{{{region2name}}}|{{{region2items|}}}|{{{region2description}}} }} }}<!--
-->{{ #if: {{{region3name|}}} | {{Regionlist/item|{{{region3color}}}|{{{region3name}}}|{{{region3items|}}}|{{{region3description}}} }} }}<!--
-->{{ #if: {{{region4name|}}} | {{Regionlist/item|{{{region4color}}}|{{{region4name}}}|{{{region4items|}}}|{{{region4description}}} }} }}<!--
-->{{ #if: {{{region5name|}}} | {{Regionlist/item|{{{region5color}}}|{{{region5name}}}|{{{region5items|}}}|{{{region5description}}} }} }}<!--
-->{{ #if: {{{region6name|}}} | {{Regionlist/item|{{{region6color}}}|{{{region6name}}}|{{{region6items|}}}|{{{region6description}}} }} }}<!--
-->{{ #if: {{{region7name|}}} | {{Regionlist/item|{{{region7color}}}|{{{region7name}}}|{{{region7items|}}}|{{{region7description}}} }} }}<!--
-->{{ #if: {{{region8name|}}} | {{Regionlist/item|{{{region8color}}}|{{{region8name}}}|{{{region8items|}}}|{{{region8description}}} }} }}<!--
-->{{ #if: {{{region9name|}}} | {{Regionlist/item|{{{region9color}}}|{{{region9name}}}|{{{region9items|}}}|{{{region9description}}} }} }}<!--
-->{{ #if: {{{region10name|}}} | {{Regionlist/item|{{{region10color}}}|{{{region10name}}}|{{{region10items|}}}|{{{region10description}}} }} }}<!--
-->{{ #if: {{{region11name|}}} | {{Regionlist/item|{{{region11color}}}|{{{region11name}}}|{{{region11items|}}}|{{{region11description}}} }} }}<!--
-->{{ #if: {{{region12name|}}} | {{Regionlist/item|{{{region12color}}}|{{{region12name}}}|{{{region12items|}}}|{{{region12description}}} }} }}<!--
-->{{ #if: {{{region13name|}}} | {{Regionlist/item|{{{region13color}}}|{{{region13name}}}|{{{region13items|}}}|{{{region13description}}} }} }}<!--
-->{{ #if: {{{region14name|}}} | {{Regionlist/item|{{{region14color}}}|{{{region14name}}}|{{{region14items|}}}|{{{region14description}}} }} }}<!--
-->{{ #if: {{{region15name|}}} | {{Regionlist/item|{{{region15color}}}|{{{region15name}}}|{{{region15items|}}}|{{{region15description}}} }} }}<!--
-->{{ #if: {{{region16name|}}} | {{Regionlist/item|{{{region16color}}}|{{{region16name}}}|{{{region16items|}}}|{{{region16description}}} }} }}<!--
-->{{ #if: {{{region17name|}}} | {{Regionlist/item|{{{region17color}}}|{{{region17name}}}|{{{region17items|}}}|{{{region17description}}} }} }}<!--
-->{{ #if: {{{region18name|}}} | {{Regionlist/item|{{{region18color}}}|{{{region18name}}}|{{{region18items|}}}|{{{region18description}}} }} }}<!--
-->{{ #if: {{{region19name|}}} | {{Regionlist/item|{{{region19color}}}|{{{region19name}}}|{{{region19items|}}}|{{{region19description}}} }} }}<!--
-->{{ #if: {{{region20name|}}} | {{Regionlist/item|{{{region20color}}}|{{{region20name}}}|{{{region20items|}}}|{{{region20description}}} }} }}
</div><noinclude>
{{INTERWIKI|Q14326148}}
</noinclude>
9umcd9twhcrh37xtd08ve7hd5mw0921
Templat:Regionlist/item
10
423
1771
1770
2024-12-03T14:15:42Z
Jon Harald Søby
20
2 revisi diimpor
1770
wikitext
text/x-wiki
{| style="border-collapse: separate; border-spacing: 2px;"
| {{#if:{{{nocolor|}}} | |style="width:32px;background-color:{{{1}}};"}} | ||<b>{{{2}}}</b> {{ #if: {{{3|}}} |({{{3}}})}}<br />{{{4}}}
|}<noinclude>
{{INTERWIKI|Q15139210}}
</noinclude>
d1xds0ke2badvbb2bi0ijdn7lixfb8m
Templat:Regions discussion
10
424
1773
1772
2024-12-03T14:15:42Z
Jon Harald Søby
20
1 revisi diimpor
1772
wikitext
text/x-wiki
{{Ambox
|text = Diskusi '''penentuan batas-batas wilayah''' untuk {{{2|{{FULLPAGENAME}}}}} sedang berlangsung.
|fix = Jika Anda tahu tentang area ini, silakan bagikan pendapat Anda di [[{{NAMESPACE}} talk:{{{2|{{PAGENAME}}}}}#{{{1|}}}|halaman pembicaraannnya]].
|small={{{small|}}}
|smalltext=[[{{NAMESPACE}} talk:{{{2|{{PAGENAME}}}}}#{{{1|}}}|Pembicaraan]] tentang '''penentuan wilayah'''
}}<includeonly>{{#ifeq:{{NAMESPACE}}|{{NS:0}}|[[Kategori:Artikel dengan diskusi wilayah]]}}</includeonly><noinclude>
{{Documentation}}
{{INTERWIKI|Q15630382}}
</noinclude>
h8my9dw2t1k9pgdpmtionm9s886tm02
Templat:Related
10
425
1776
1775
2024-12-03T14:15:42Z
Jon Harald Søby
20
2 revisi diimpor
1775
wikitext
text/x-wiki
<includeonly>{{#related:{{{1}}}}}</includeonly><noinclude>
[[en:voy:Template:Related]]
</noinclude>
dil0dbr0d08egnyfes90r0hz2ui0dv9
Templat:RelatedCommonsCat
10
426
1780
1779
2024-12-03T14:15:42Z
Jon Harald Søby
20
3 revisi diimpor
1779
wikitext
text/x-wiki
{{#ifeq: {{{rel}}} | y |
{{{!}} class="wikitable floatright"
{{!}} [[Berkas:Commons-icon.svg|25px|left]] [[c:Category:{{{1}}}|{{{1}}}]]
{{!}}}[[Kategori:Articles with Commons links related to but different to article]]|<!--
-->{{#ifeq:{{NAMESPACE}}|{{NS:0}}|{{#ifeq:{{#invoke:Wikidata|getValue|P373|FETCH_WIKIDATA}}|{{#invoke:Underscore to Space|replace|source={{{1}}}}}|<!--
same as other project sidebar link
-->[[Kategori:Articles with Related Commons category same as Wikidata]]|<!--
different as, or no, other project sidebar link
{{Ombox|text=Commons page on this subject [[c:category:{{{1}}}|{{{1}}}]]}}
move comment end to add text box commons link
-->[[Commons:Category:{{{1}}}]][[Kategori:Articles with Commons category links different to Wikidata]]}}}}<!--
-->}}<noinclude>
{{documentation}}
<templatedata>
{
"params": {
"1": {
"label": "Commons category name",
"example": "United States",
"type": "string",
"required": true
}
}
}
</templatedata>
{{INTERWIKI|Q63348865}}
</noinclude>
9vo16ovk8eq8ezikc7vkuzs0kggg0n5
Templat:RelatedWikipedia
10
427
1783
1782
2024-12-03T14:15:42Z
Jon Harald Søby
20
2 revisi diimpor
1782
wikitext
text/x-wiki
{{#ifeq: {{{rel}}} | y |
{{{!}} class="wikitable floatright"
{{!}} [[Berkas:Nuvola wikipedia icon.png|25px|left]] [[w:{{{1}}}|{{{1}}}]]
{{!}}}[[Kategori:Articles with Wikipedia links related to but different to article]]|<!--
-->{{#ifeq:{{NAMESPACE}}|{{NS:0}}|{{#ifeq:{{#invoke:Wikidata|getSiteLink|enwiki}}|{{#invoke:Underscore to Space|replace|source={{{1}}}}}|<!--
same as other project sidebar link
-->[[Kategori:Articles with Related Wikipedia same as Wikidata]]|<!--
different as, or no, other project sidebar link
{{Ombox|text=Wikipedia page on this subject [[w:{{{1}}}|{{{1}}}]]}}
move comment end to add text box wikipedia link
-->[[Wikipedia:{{{1}}}]]{{#if:{{#invoke:Wikidata|getSiteLink|enwiki}}|[[Kategori:Articles with Wikipedia links different to Wikidata]]|[[Kategori:Articles with Wikipedia links and none on Wikidata]]}}}}}}<!--
-->}}<noinclude>
{{documentation}}
<templatedata>
{
"params": {
"1": {
"label": "Wikipedia page name",
"example": "United States",
"type": "string",
"required": true
}
}
}
</templatedata>
{{INTERWIKI|Q47491347}}
</noinclude>
fl3srpa1lse62z9x0s9790eugfn9s8x
Templat:Rencana perjalanan
10
428
1786
1785
2024-12-03T14:15:43Z
Jon Harald Søby
20
2 revisi diimpor
1785
wikitext
text/x-wiki
Rencana perjalanan [[Berkas:Font Awesome 5 solid route.svg|25px|link=]]<noinclude>[[Kategori:Templat AIGA]]</noinclude>
p20nhz1ic4wnymv7hz52tzsu7yi6z8r
Templat:Ringkasan
10
429
1793
1792
2024-12-03T14:15:43Z
Jon Harald Søby
20
6 revisi diimpor
1792
wikitext
text/x-wiki
{{ombox
|image=[[Berkas:Nutshell{{#ifeq:{{NAMESPACE}}|{{TALKSPACE}}|-talk}}.png|30px]]
|text='''Ringkasan {{{title|halaman ini}}}:''' {{#if:{{{2|}}}|*{{{1}}}
*{{{2}}}{{#if:{{{3|}}}|
*{{{3}}}}}|{{{1}}}}}
}}<noinclude>
{{documentation}}
{{INTERWIKI|Q5204163}}
</noinclude>
l8mkk141ogp9mnv791hah1m2f6zitfw
Templat:Rint
10
430
2599
1795
2024-12-03T14:16:01Z
Jon Harald Søby
20
2 revisi diimpor
1794
wikitext
text/x-wiki
#redirect[[Templat:Rail-interchange]]
7quv89iij0yu7wkxr43os1ghblmfwpt
Templat:Routebox
10
431
2601
1801
2024-12-03T14:16:01Z
Jon Harald Søby
20
1 revisi diimpor
1800
wikitext
text/x-wiki
{| class="routeBox"
|-
|'''Rute melalui {{{placename|{{BASICPAGENAME}}}}}'''
|-
|}
{| class="routeBox" style="border: 1px solid #555555;"
{{#if:{{{majorl1|}}} |
{{Routebox/row
| image = {{{image1|}}} | imagesize = {{{imagesize1|}}} | link = {{{link1|}}} | caption = {{{caption1|}}}
| imagea = {{{image1a|}}} | imagesizea = {{{imagesize1a|}}}
| imageb = {{{image1b|}}} | imagesizeb = {{{imagesize1b|}}}
| imagec = {{{image1c|}}} | imagesizec = {{{imagesize1c|}}}
| directionl = {{{directionl1|}}} | majorl = {{{majorl1|}}} | minorl = {{{minorl1|}}}
| directionr = {{{directionr1|}}} | majorr = {{{majorr1|}}} | minorr = {{{minorr1|}}}
}}
}}<!--
-->{{#if:{{{majorl2|}}} |
{{Routebox/row
| image = {{{image2|}}} | imagesize = {{{imagesize2|}}} | link = {{{link2|}}} | caption = {{{caption2|}}}
| imagea = {{{image2a|}}} | imagesizea = {{{imagesize2a|}}}
| imageb = {{{image2b|}}} | imagesizeb = {{{imagesize2b|}}}
| imagec = {{{image2c|}}} | imagesizec = {{{imagesize2c|}}}
| directionl = {{{directionl2|}}} | majorl = {{{majorl2|}}} | minorl = {{{minorl2|}}}
| directionr = {{{directionr2|}}} | majorr = {{{majorr2|}}} | minorr = {{{minorr2|}}}
}}
}}<!--
-->{{#if:{{{majorl3|}}} |
{{Routebox/row
| image = {{{image3|}}} | imagesize = {{{imagesize3|}}} | link = {{{link3|}}} | caption = {{{caption3|}}}
| imagea = {{{image3a|}}} | imagesizea = {{{imagesize3a|}}}
| imageb = {{{image3b|}}} | imagesizeb = {{{imagesize3b|}}}
| imagec = {{{image3c|}}} | imagesizec = {{{imagesize3c|}}}
| directionl = {{{directionl3|}}} | majorl = {{{majorl3|}}} | minorl = {{{minorl3|}}}
| directionr = {{{directionr3|}}} | majorr = {{{majorr3|}}} | minorr = {{{minorr3|}}}
}}
}}<!--
-->{{#if:{{{majorl4|}}} |
{{Routebox/row
| image = {{{image4|}}} | imagesize = {{{imagesize4|}}} | link = {{{link4|}}} | caption = {{{caption4|}}}
| imagea = {{{image4a|}}} | imagesizea = {{{imagesize4a|}}}
| imageb = {{{image4b|}}} | imagesizeb = {{{imagesize4b|}}}
| imagec = {{{image4c|}}} | imagesizec = {{{imagesize4c|}}}
| directionl = {{{directionl4|}}} | majorl = {{{majorl4|}}} | minorl = {{{minorl4|}}}
| directionr = {{{directionr4|}}} | majorr = {{{majorr4|}}} | minorr = {{{minorr4|}}}
}}
}}<!--
-->{{#if:{{{majorl5|}}} |
{{Routebox/row
| image = {{{image5|}}} | imagesize = {{{imagesize5|}}} | link = {{{link5|}}} | caption = {{{caption5|}}}
| imagea = {{{image5a|}}} | imagesizea = {{{imagesize5a|}}}
| imageb = {{{image5b|}}} | imagesizeb = {{{imagesize5b|}}}
| imagec = {{{image5c|}}} | imagesizec = {{{imagesize5c|}}}
| directionl = {{{directionl5|}}} | majorl = {{{majorl5|}}} | minorl = {{{minorl5|}}}
| directionr = {{{directionr5|}}} | majorr = {{{majorr5|}}} | minorr = {{{minorr5|}}}
}}
}}<!--
-->{{#if:{{{majorl6|}}} |
{{Routebox/row
| image = {{{image6|}}} | imagesize = {{{imagesize6|}}} | link = {{{link6|}}} | caption = {{{caption6|}}}
| imagea = {{{image6a|}}} | imagesizea = {{{imagesize6a|}}}
| imageb = {{{image6b|}}} | imagesizeb = {{{imagesize6b|}}}
| imagec = {{{image6c|}}} | imagesizec = {{{imagesize6c|}}}
| directionl = {{{directionl6|}}} | majorl = {{{majorl6|}}} | minorl = {{{minorl6|}}}
| directionr = {{{directionr6|}}} | majorr = {{{majorr6|}}} | minorr = {{{minorr6|}}}
}}
}}<!--
-->{{#if:{{{majorl7|}}} |
{{Routebox/row
| image = {{{image7|}}} | imagesize = {{{imagesize7|}}} | link = {{{link7|}}} | caption = {{{caption7|}}}
| imagea = {{{image7a|}}} | imagesizea = {{{imagesize7a|}}}
| imageb = {{{image7b|}}} | imagesizeb = {{{imagesize7b|}}}
| imagec = {{{image7c|}}} | imagesizec = {{{imagesize7c|}}}
| directionl = {{{directionl7|}}} | majorl = {{{majorl7|}}} | minorl = {{{minorl7|}}}
| directionr = {{{directionr7|}}} | majorr = {{{majorr7|}}} | minorr = {{{minorr7|}}}
}}
}}<!--
-->{{#if:{{{majorl8|}}} |
{{Routebox/row
| image = {{{image8|}}} | imagesize = {{{imagesize8|}}} | link = {{{link8|}}} | caption = {{{caption8|}}}
| imagea = {{{image8a|}}} | imagesizea = {{{imagesize8a|}}}
| imageb = {{{image8b|}}} | imagesizeb = {{{imagesize8b|}}}
| imagec = {{{image8c|}}} | imagesizec = {{{imagesize8c|}}}
| directionl = {{{directionl8|}}} | majorl = {{{majorl8|}}} | minorl = {{{minorl8|}}}
| directionr = {{{directionr8|}}} | majorr = {{{majorr8|}}} | minorr = {{{minorr8|}}}
}}
}}<!--
-->{{#if:{{{majorl9|}}} |
{{Routebox/row
| image = {{{image9|}}} | imagesize = {{{imagesize9|}}} | link = {{{link9|}}} | caption = {{{caption9|}}}
| imagea = {{{image9a|}}} | imagesizea = {{{imagesize9a|}}}
| imageb = {{{image9b|}}} | imagesizeb = {{{imagesize9b|}}}
| imagec = {{{image9c|}}} | imagesizec = {{{imagesize9c|}}}
| directionl = {{{directionl9|}}} | majorl = {{{majorl9|}}} | minorl = {{{minorl9|}}}
| directionr = {{{directionr9|}}} | majorr = {{{majorr9|}}} | minorr = {{{minorr9|}}}
}}
}}<!--
-->{{#if:{{{majorl10|}}} |
{{Routebox/row
| image = {{{image10|}}} | imagesize = {{{imagesize10|}}} | link = {{{link10|}}} | caption = {{{caption10|}}}
| imagea = {{{image10a|}}} | imagesizea = {{{imagesize10a|}}}
| imageb = {{{image10b|}}} | imagesizeb = {{{imagesize10b|}}}
| imagec = {{{image10c|}}} | imagesizec = {{{imagesize10c|}}}
| directionl = {{{directionl10|}}} | majorl = {{{majorl10|}}} | minorl = {{{minorl10|}}}
| directionr = {{{directionr10|}}} | majorr = {{{majorr10|}}} | minorr = {{{minorr10|}}}
}}
}}
|}<templatestyles src="Template:Routebox/style.css" />{{#ifeq:{{NAMESPACE}}|{{ns:0}}|[[Kategori:Memiliki kotak rute]]}}
<br /><noinclude>{{Documentation|content=
See [[Wikivoyage:Routebox navigation]] for usage of this template.
[[Templat:Routebox/Cut and paste|Quick cut and paste]]
[[Templat:Routebox/Cut and paste concurrency|Quick cut and paste with concurrencies]]
}}
{{INTERWIKI|Q14626862}}
</noinclude>
son7wp7lhyb53hv0omphuwq7ht3jovt
Templat:Routebox/row
10
432
1803
1802
2024-12-03T14:15:43Z
Jon Harald Søby
20
1 revisi diimpor
1802
wikitext
text/x-wiki
<noinclude>{|
|</noinclude>
<nowiki></nowiki><!-- force a newline -->
|-
| style="font-size:smaller; text-align:right;" | '''{{{majorl|?}}}''' {{#if:{{{minorl|}}}|← {{{minorl}}}}} ←
| style="background-color:#555555; font-size:smaller; color:white; text-align:center;" | '''{{{directionl}}}''' {{#ifexist: Media:{{{image}}} | [[Berkas:{{{image}}}|{{#if:{{{imagesize|}}}|{{{imagesize|}}}|22}}px|link={{{link|}}}|{{{caption|}}}]]| [[Berkas:US blank wide.svg|22px|link={{{link|}}}|{{{caption|}}}]] <includeonly>[[Kategori:Routeboxes needing image]]</includeonly> }}{{#if:{{{imagea|}}}|[[Berkas:{{{imagea}}}|{{#if:{{{imagesize|}}}|{{{imagesize|}}}|22}}px|link=]]}}{{#if:{{{imageb|}}}|[[Berkas:{{{imageb}}}|{{#if:{{{imagesize|}}}|{{{imagesize|}}}|22}}px|link=]]}}{{#if:{{{imagec|}}}|[[Berkas:{{{imagec}}}|{{#if:{{{imagesize|}}}|{{{imagesize|}}}|22}}px|link=]]}} '''{{{directionr}}}'''
| style="font-size:smaller; text-align:left;" | → {{#if:{{{minorr|}}}|{{{minorr}}} →}} '''{{{majorr|?}}}'''
<noinclude>|}</noinclude>
lakb1w4nsglywifn5s4cx7dmip2ut5y
Templat:Routebox/style.css
10
433
1805
1804
2024-12-03T14:15:43Z
Jon Harald Søby
20
1 revisi diimpor
1804
sanitized-css
text/css
.routeBox {
font-size: small;
border-style: none;
border-spacing: 0 0;
border-collapse: collapse;
margin: 0 auto;
}
.routeBox td {
padding: 1px 2px;
}
f54tj7f9ba19mfwihsu4zuz4cdr7m45
Templat:Routebox entry
10
434
1807
1806
2024-12-03T14:15:43Z
Jon Harald Søby
20
1 revisi diimpor
1806
wikitext
text/x-wiki
<span {{#if: {{{mo|}}} | title="{{{mo}}}" | }} style="background-color:{{{2|#BBBBBB}}}; border:2px solid {{#switch: {{{b}}} |text|t={{{3|white}}} |#default|none|n|bg={{#if: {{{2|}}} | {{{2}}} | #BBBBBB}} |custom|c={{{bcolor}}} }}; border-radius:{{#switch: {{{r}}} |#default|cube|n|none=0px |e|edge=5px |c|circle=50px}}; font-size:70%;"> <span style="color:{{{3|white}}}; font-weight:bold;white-space:nowrap;">{{{1}}}</span> </span><noinclude>[[en:voy:Template:Routebox entry]]
[[vi:voy:Bản mẫu:Routebox entry]]
[[zh:voy:Template:Routebox entry]]
</noinclude>
sn8wqeul1q5gx35ei06rfbjul7rbkvu
Templat:Ruralarea
10
435
1809
1808
2024-12-03T14:15:43Z
Jon Harald Søby
20
1 revisi diimpor
1808
wikitext
text/x-wiki
#REDIRECT [[Templat:Ruralarea skeleton]]
ruw9w3cip84d9hno8cdwmab8x2ssdsl
Templat:Ruralarea skeleton
10
436
1815
1814
2024-12-03T14:15:43Z
Jon Harald Søby
20
5 revisi diimpor
1814
wikitext
text/x-wiki
{{pagebanner|Pagebanner default.jpg}}
'''Nama daerah pinggiran''' ada di [[Nama daerah]].
==Pahami==
==Menuju kesini==
==Berkeliling==
===Dengan mobil===
===Dengan perahu===
===Dengan angkutan umum===
==Lihat==
==Lakukan==
==Beli==
==Makan==
==Minum==
==Tidur==
===Penginapan===
===Berkemah===
===Pedalaman===
==Tujuan berikutnya==
{{IsPartOf|}}
{{Outlineruralarea}}
<includeonly>{{geo||}}</includeonly>
<noinclude>[[en:voy:Template:Ruralarea skeleton]]</noinclude>
2tcjoiyhlo23qdu1l3mpzs9j00a2yoo
Templat:Sec link/normal link
10
437
2603
1818
2024-12-03T14:16:01Z
Jon Harald Søby
20
1 revisi diimpor
1816
wikitext
text/x-wiki
{{#if: {{{project|}}}
| {{{project}}}:{{#if: {{{lang|}}}
| {{{lang}}}:
}}{{{pagename|}}}
| <!--No project, so a local link-->
{{#if: {{{pagename|}}}
| {{{pagename}}}
| {{MediaWiki:Mainpage}} <!--Main page name at the local project-->
}}
}}{{#if: {{{anchor|}}}
| #{{{anchor}}}
}}
qdpive8cws5u23wiaoks9q3xosw4ua7
Templat:Sec link/text
10
438
2605
1821
2024-12-03T14:16:01Z
Jon Harald Søby
20
1 revisi diimpor
1819
wikitext
text/x-wiki
{{#if: {{{text|}}}
| {{{text}}}
| {{#if: {{{project|}}}
| {{{project}}}:{{#if: {{{lang|}}}
| {{{lang}}}:
}}{{{pagename|}}}
| <!--No project, so a local link-->
{{#if: {{{pagename|}}}
| {{{pagename}}}
| {{MediaWiki:Mainpage}} <!--Main page name at the local project-->
}}
}}{{
#if: {{{query|}}}
| ?{{{query|}}}
| {{#if: {{{anchor|}}}
| #{{{anchor}}}
}}
}}
}}
10gxz99hwhp5nees2c8ad3zw0vyjnxe
Templat:Sec link auto
10
439
2607
1825
2024-12-03T14:16:01Z
Jon Harald Søby
20
1 revisi diimpor
1822
wikitext
text/x-wiki
{{#ifeq: {{SERVERNAME}} | secure.wikimedia.org
| {{#switch: {{lc: {{{padlock|}}} }}
| yes <!--Supress CSS icon, to not get double icon-->
| no = <span class="plainlinks">
}}[{{sec link/secure url
| project = {{{1|}}}
| pagename = {{{2|}}}
| lang = {{{lang|}}}
| query = {{{query|}}}
| anchor = {{{anchor|}}}
}} {{sec link/text
| project = {{{1|}}}
| pagename = {{{2|}}}
| text = {{{3|}}}
| lang = {{{lang|}}}
| query = {{{query|}}}
| anchor = {{{anchor|}}}
}}]{{#switch: {{lc: {{{padlock|}}} }}
| no = </span>
| yes = </span>[[Berkas:Lock icon blue.gif|16x13px|link=]]
}}
| <!--Not on the secure server, make a normal link-->
{{#if: {{{query|}}} {{{lang|}}}
| <!--Make a full url link, needed when query or lang-->
<span class="plainlinks">[{{sec link/normal url
| project = {{{1|}}}
| pagename = {{{2|}}}
| lang = {{{lang|}}}
| query = {{{query|}}}
| anchor = {{{anchor|}}}
}} {{sec link/text
| project = {{{1|}}}
| pagename = {{{2|}}}
| text = {{{3|}}}
| lang = {{{lang|}}}
| query = {{{query|}}}
| anchor = {{{anchor|}}}
}}]</span>
| <!--Make a normal link-->
[[:{{sec link/normal link
| project = {{{1|}}}
| pagename = {{{2|}}}
| anchor = {{{anchor|}}}
}}|{{sec link/text
| project = {{{1|}}}
| pagename = {{{2|}}}
| text = {{{3|}}}
| anchor = {{{anchor|}}}
}}]]
}}
}}
5r1tbjlz4n3dv7tdz67u94z56hp95uc
Templat:Sectionlink
10
440
1827
1826
2024-12-03T14:15:44Z
Jon Harald Søby
20
1 revisi diimpor
1826
wikitext
text/x-wiki
{{#invoke:Section link|main}}<noinclude>
[[en:voy:Template:Section link]]</noinclude>
gsyt319qyj8lej3iqiyno9gitspxxkz
Templat:See
10
441
2609
1835
2024-12-03T14:16:02Z
Jon Harald Søby
20
1 revisi diimpor
1834
wikitext
text/x-wiki
<includeonly>{{listing
| counter={{{counter|see}}}
| type=see
| name={{{name|}}}
| alt={{{alt|}}}
| address={{{address|}}}
| directions={{{directions|}}}
| phone={{{phone|}}}
| tollfree={{{tollfree|}}}
| email={{{email|}}}
| fax={{{fax|}}}
| url={{{url|}}}
| hours={{{hours|}}}
| price={{{price|}}}
| lat={{{lat|}}}
| long={{{long|}}}
| lastedit={{{lastedit|}}}
| content={{{content|}}}
| image={{{image|}}}
| wikipedia={{{wikipedia|}}}
| wikidata={{{wikidata|}}}
| inline={{{inline|}}}
| {{{1|}}}}}</includeonly>
<noinclude>
{{INTERWIKI|Q14330711}}
</noinclude>
jmxdkxgojndsfvx29km05hb2vgjn15n
Templat:See/doc
10
442
1839
1838
2024-12-03T14:15:44Z
Jon Harald Søby
20
3 revisi diimpor
1838
wikitext
text/x-wiki
{{Documentation subpage}}
=== Penggunaan ===
__NOTOC__
<pre>{{See
| name = | alt = | url = | email =
| address = | lat = | long = | directions =
| phone = | tollfree = | fax =
| hours = | price =
| wikipedia =
| wikidata =
| image =
| lastedit =
| content =
}}</pre>
1stxw7mwvuorwiwagv3qcs03nnf5v2x
Templat:SeeDistricts
10
443
1845
1844
2024-12-03T14:15:44Z
Jon Harald Søby
20
5 revisi diimpor
1844
wikitext
text/x-wiki
:''Daftar terperinci dapat dilihat pada artikel masing-masing [[#Distrik|distrik]]nya {{PAGENAME}}''<noinclude>[[Kategori:Templat hatnote]]
{{INTERWIKI|Q18558363}}
</noinclude>
q3uigcf83r4y201t5vd9yy15yp6ycjk
Templat:See also
10
444
1847
1846
2024-12-03T14:15:44Z
Jon Harald Søby
20
1 revisi diimpor
1846
wikitext
text/x-wiki
#redirect[[Templat:Seealso]]
mzbescqkmn0v1uyzna8s72wiis88xr6
Templat:Seealso
10
445
1852
1851
2024-12-03T14:15:44Z
Jon Harald Søby
20
4 revisi diimpor
1851
wikitext
text/x-wiki
: ''Lihat pula: [[{{{1}}}]]{{#if:{{{2|}}}|, [[{{{2}}}]]}}{{#if:{{{3|}}}|, [[{{{3}}}]]}}{{#if:{{{4|}}}|, [[{{{4}}}]]}}''<noinclude>[[Kategori:Templat hatnote]] {{INTERWIKI|Q5538331}}
</noinclude>
iws2gejut9a7qhi2a4yx8fyp02eof0r
Templat:Sejarah
10
446
1854
1853
2024-12-03T14:15:44Z
Jon Harald Søby
20
1 revisi diimpor
1853
wikitext
text/x-wiki
Sejarah [[Berkas:OOjs UI icon history.svg|20px|link=]]<noinclude>[[Kategori:Templat AIGA]]</noinclude>
or5rvzsjqy3vxkf9073npkrcqofia2v
Templat:Sekitaran
10
447
1856
1855
2024-12-03T14:15:44Z
Jon Harald Søby
20
1 revisi diimpor
1855
wikitext
text/x-wiki
Sekitaran [[Berkas:Font Awesome 5 solid compass.svg|20px|link=]]<noinclude>[[Kategori:Templat AIGA]]</noinclude>
ha25qu7cie70mdulyg0xvqzliyr6ppn
Templat:Selesai
10
448
1860
1859
2024-12-03T14:15:44Z
Jon Harald Søby
20
3 revisi diimpor
1859
wikitext
text/x-wiki
[[Berkas:Yes check.svg|12px|alt=Yes|link=]] '''{{{{{|safesubst:}}}ucfirst:{{{1|Selesai}}}}}'''<!--templat:selesai--><noinclude>
{{Dokumentasi}}
[[en:voy:Template:Done]]
</noinclude>
g0ykuws1gkv0xqg441liif1hy9fui4r
Templat:Sepeda
10
449
1862
1861
2024-12-03T14:15:45Z
Jon Harald Søby
20
1 revisi diimpor
1861
wikitext
text/x-wiki
Dengan sepeda [[Berkas:Sinnbild Radfahrer, StVO 1992.svg|30px|link=]]<noinclude>[[Kategori:Templat AIGA]]</noinclude>
e3usn5ztu4ewfjcgoak52su6iljpuuf
Templat:Shortcut
10
450
1872
1871
2024-12-03T14:15:45Z
Jon Harald Søby
20
9 revisi diimpor
1871
wikitext
text/x-wiki
<div id="shortcut" style="border: 1px solid #aaaaff; margin: 0em 1em 0em 1em; text-align: center; padding:5px; float: right; clear: right; background-color: #f4f4ff;">
[[Wikiwisata:Pintasan|Pintasan{{#if:{{{2|}}}|s}}:]]{{#if:{{{1|}}}|<br />'''{{{1}}}'''
}}{{#if:{{{2|}}}|<br />'''{{{2}}}'''
}}{{#if:{{{3|}}}|<br />'''{{{3}}}'''
}}{{#if:{{{4|}}}|<br />'''{{{4}}}'''
}}{{#if:{{{5|}}}|<br />'''{{{5}}}'''
}}{{#if:{{{6|}}}|<br />'''{{{6}}}'''
}}{{#if:{{{7|}}}|<br />'''{{{7}}}'''
}}{{#if:{{{8|}}}|<br />'''{{{8}}}'''
}}{{#if:{{{9|}}}|<br />'''{{{9}}}'''
}}{{#if:{{{10|}}}|<br />'''{{{10}}}'''
}}{{#if:{{{11|}}}|<br />'''{{{11}}}'''
}}</div><noinclude>{{Documentation}}
{{INTERWIKI|Q5070586}}
</noinclude>
aon0842phiwp16rcotcycm8hi7uno07
Templat:Shortcut/doc
10
451
1876
1875
2024-12-03T14:15:45Z
Jon Harald Søby
20
3 revisi diimpor
1875
wikitext
text/x-wiki
{{Documentation subpage}}
Ini merupakan templat '''Pintasan'''. Memiliki fungsi sebagai kotak yang berisi pintasan menuju halaman tertentu. Dapat digunakan sebagai kotak arsip.
== Penggunaan ==
<code>
<nowiki>
{{Shortcut|<nama pintasan>}}
</nowiki>
</code>
=== Catatan ===
* '''Parameter 1''': Wajib diisi
* '''Parameter 1 & 2''': Opsional
<includeonly>
[[Kategori:Templat]]
</includeonly>
68lrl1wkbuab3kmug8plcyh927t6xjr
Templat:Side box
10
452
1878
1877
2024-12-03T14:15:45Z
Jon Harald Søby
20
1 revisi diimpor
1877
wikitext
text/x-wiki
<table class="metadata mbox-small{{#ifeq:{{lc:{{{position|}}}}}|left|-left}} {{{class|}}}" style="border:1px solid #aaa; background-color:#f9f9f9; {{{style|}}}">
<tr>
{{#switch:{{{image|}}}
|<!--BLANK-->|none={{Td}}
|#default=<td class="mbox-image">{{{image}}}</td>
}}
<td class="mbox-text" style="{{{textstyle|}}}"> {{{text}}} </td>
{{#if:{{{imageright|}}}
| <td class="mbox-imageright">{{{imageright}}}</td>
}}
</tr>
{{#if:{{{below|}}}
| <tr><td colspan={{#if:{{{imageright|}}}|3|2}} class="mbox-text" style="{{{textstyle|}}}"> {{{below}}} </td></tr>
}}
</table><noinclude>
[[Kategori:Templat]]
</noinclude>
8vrnaw62h37i9r9l1jpfr3msgqtbco3
Templat:Singkatnya
10
453
1883
1882
2024-12-03T14:15:45Z
Jon Harald Søby
20
4 revisi diimpor
1882
wikitext
text/x-wiki
#redirect[[Templat:Ringkasan]]
8xhfyqm35ivlywxscqd10w0n1dco76d
Templat:Sister
10
454
1888
1887
2024-12-03T14:15:45Z
Jon Harald Søby
20
4 revisi diimpor
1887
wikitext
text/x-wiki
<div class="noprint" style="clear: right; border: solid #aaa 1px; margin: 1em 0 1em 1em; font-size: 90%; background: #f9f9f9; width: 250px; padding: 4px; spacing: 0px; text-align: left; float: right;">
<div style="float: left;">{{{image|
[[Berkas:{{#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-en.svg
| wikipedia|wp|w = Wikipedia-logo-v2.svg
| wikisource|source|ws|s = Wikisource-logo.svg
| wiktionary|wkt|wdy|d = Wiktsister en.png
| wikinews|news|wnw|n = Wikinews-logo.svg
| wikispecies|species = Wikispecies-logo.svg
| wikiversity|wvy|v = Wikiversity-logo.svg
| wikivoyage|voyage|voy = Wikivoyage-logo.svg
| mediawiki|mw = Mediawiki.png
| outreachwiki|outreach = Wikimedia Outreach.png
| incubator = Incubator-notext.svg
| #default = Wikimedia-logo.svg
}}|50px|link=|alt=
]]}}}</div>
<div style="margin-left: 60px;">{{{text}}}
</div></div></div>
<noinclude>[[Kategori:Templat]]</noinclude>
kkbymlrduho3fq2dq5qtq3v63fb9yvo
Templat:Sisterlink
10
455
1896
1895
2024-12-03T14:15:45Z
Jon Harald Søby
20
7 revisi diimpor
1895
wikitext
text/x-wiki
<div align="right">
{| class="metadata plainlinks mbox-small{{#ifeq:{{lc:{{{position|}}}}}|left|-left}}" style="border:1px solid #aaa; background-color:#f9f9f9;padding:3px; {{{style|}}}"
|- style="height:25px;"
| colspan=2 style="margin: auto; text-align: center;padding-bottom:5px;" | '''Cari tahu mengenai {{{1|{{PAGENAME}}}}} pada proyek-proyek Wikimedia lainnya:'''
|- style="height:25px;"
{{#ifeq:{{{wikt}}}|no||<!--
-->{{!}} [[Berkas:Wiktionary-logo-id.svg|25x25px|link={{sec link image|wikt|Special:Search/{{{wikt|{{{1|{{PAGENAME}}}}}}}}}}|alt=|Cari di Wiktionary]] {{!}}{{!}} {{sec link auto|wikt|Special:Search/{{{wikt|{{{1|{{PAGENAME}}}}}}}}|Definisi dan terjemahan}} dari Wiktionary<br />}}
|- style="height:25px;"
{{#ifeq:{{{commons}}}|no||<!--
-->{{!}} [[Berkas:Commons-logo.svg|25x25px|link={{sec link image|commons|Special:Search/{{{commons|{{{1|{{PAGENAME}}}}}}}}}}|alt=|Cari di Commons]] {{!}}{{!}} {{sec link auto|commons|Special:Search/{{{commons|{{{1|{{PAGENAME}}}}}}}}|Gambar dan media}} dari Commons<br />}}
|- style="height:25px;"
{{#ifeq:{{{n|{{{wn|{{{news}}}}}}}}}|no||<!--
-->{{!}} [[Berkas:Wikinews-logo.svg|25x25px|link={{sec link image|n|Special:Search/{{{n|{{{1|{{PAGENAME}}}}}}}}}}|alt=|Cari di Wikinews]] {{!}}{{!}} {{sec link auto|n|Special:Search/{{{n|{{{1|{{PAGENAME}}}}}}}}|Berita}} dari Wikinews<br />}}
|- style="height:25px;"
{{#ifeq:{{{q}}}|no||<!--
-->{{!}} [[Berkas:Wikiquote-logo.svg|25x25px|link={{sec link image|q|Special:Search/{{{q|{{{1|{{PAGENAME}}}}}}}}}}|alt=|Cari di Wikiquote]] {{!}}{{!}} {{sec link auto|q|Special:Search/{{{q|{{{1|{{PAGENAME}}}}}}}}|Kutipan}} dari Wikiquote<br />}}
|- style="height:25px;"
{{#ifeq:{{{s}}}|no||{{#ifeq:{{{author|no}}}|yes|<!--
-->{{!}} [[Berkas:Wikisource-logo.svg|25x25px|link={{sec link image|s|Special:Search/Author:{{{s|{{{1|{{PAGENAME}}}}}}}}}}|alt=|Cari di Wikisource]] {{!}}{{!}} {{sec link auto|s|Special:Search/Author:{{{s|{{{1|{{PAGENAME}}}}}}}}|Teks sumber}} dari Wikisource<br />|<!--
-->{{!}} [[Berkas:Wikisource-logo.svg|25x25px|link={{sec link image|s|Special:Search/{{{s|{{{1|{{PAGENAME}}}}}}}}}}|alt=|Cari di Wikisource]] {{!}}{{!}} {{sec link auto|s|Special:Search/{{{s|{{{1|{{PAGENAME}}}}}}}}|Teks sumber}} dari Wikisource<br />}}}}
|- style="height:25px;"
{{#ifeq:{{{b}}}|no||<!--
-->{{!}} [[Berkas:Wikibooks-logo.svg|25x25px|link={{sec link image|b|Special:Search/{{{b|{{{1|{{PAGENAME}}}}}}}}}}|alt=|Cari di Wikibuku]] {{!}}{{!}} {{sec link auto|b|Special:Search/{{{b|{{{1|{{PAGENAME}}}}}}}}|Buku}} dari Wikibuku<br />}}
|- style="height:25px;"
{{#ifeq:{{{d<includeonly>|no</includeonly>}}}|no |
| {{!}} [[Berkas:Wikidata-logo.svg|25x25px|link={{fullurl:d:Special:Search/{{{d<noinclude>|{{{1|{{PAGENAME}}}}}</noinclude>}}}}}|alt=|Cari di Wikidata]]
{{!}} [[d:Special:Search/{{{d<noinclude>|{{{1|{{PAGENAME}}}}}</noinclude>}}}|Entri basisdata #{{{d<noinclude>|</noinclude>}}}]] di Wikidata
}}
|- style="height:25px;"
{{#ifeq:{{{wp<includeonly>|no</includeonly>}}}|no |
| {{!}} [[Berkas:Wikipedia-logo-v2.svg|25x25px|link={{fullurl:wp:Special:Search/{{{wp<noinclude>|{{{1|{{PAGENAME}}}}}</noinclude>}}}}}|alt=|Cari di Wikipedia]]
{{!}} [[w:Special:Search/{{{wp<noinclude>|{{{1|{{PAGENAME}}}}}</noinclude>}}}|Ensiklopedia tentang {{{wp<noinclude>|</noinclude>}}}]] di Wikipedia
}}
|- style="height:25px;"
{{#ifeq:{{{species<includeonly>|no</includeonly>}}}|no |
| {{!}} [[Berkas:Wikispecies-logo.svg|25x25px|link={{fullurl:species:Special:Search/{{{species<noinclude>|{{{1|{{PAGENAME}}}}}</noinclude>}}}}}|alt=|Cari di Wikispecies]]
{{!}} [[species:Special:Search/{{{species<noinclude>|{{{1|{{PAGENAME}}}}}</noinclude>}}}|Direktori spesies {{{species<noinclude>|</noinclude>}}}]] dari Wikispecies
}}
|}
</div><noinclude>
{{dok}}
[[Kategori:Templat]]
</noinclude>
awrw54jpmtwhgcmlmlhbeemkzn0qych
Templat:Sleep
10
456
2611
1904
2024-12-03T14:16:02Z
Jon Harald Søby
20
1 revisi diimpor
1903
wikitext
text/x-wiki
{{Listing
|type=sleep
|counter={{{counter|sleep}}}
|name={{{name|}}}
|alt={{{alt|}}}
|address={{{address|}}}
|directions={{{directions|}}}
|phone={{{phone|}}}
|tollfree={{{tollfree|}}}
|email={{{email|}}}
|fax={{{fax|}}}
|url={{{url|}}}
|hours={{{hours|}}}
|checkin={{{checkin|}}}
|checkout={{{checkout|}}}
|price={{{price|}}}
|lat={{{lat|}}}
|long={{{long|}}}
|lastedit={{{lastedit|}}}
|content={{{content|{{{1|}}}}}}
|image={{{image|}}}
|wikipedia={{{wikipedia|}}}
|wikidata={{{wikidata|}}}
|inline={{{inline|}}}
}}<noinclude>
{{Documentation}}
{{INTERWIKI|Q14330740}}
</noinclude>
6f7yf67a83gkfo9wwsl8meiua5nzrb4
Templat:Sleep/doc
10
457
1906
1905
2024-12-03T14:15:46Z
Jon Harald Søby
20
1 revisi diimpor
1905
wikitext
text/x-wiki
=== Penggunaan ===
__NOTOC__
<pre>{{Sleep
| name = | alt = | url = | email =
| address = | lat = | long = | directions =
| phone = | tollfree = | fax =
| checkin = | checkout = | price =
| lastedit=
| content =
}}</pre>
o95ab6glasd44c1ujwelq4zp9pnlp0v
Templat:Sleeppricerange
10
458
1911
1910
2024-12-03T14:15:46Z
Jon Harald Søby
20
4 revisi diimpor
1910
wikitext
text/x-wiki
<includeonly>{| class="pricerange-table"
|style="padding-bottom: 8px" colspan=2|Panduan ini menggunakan kisaran harga berikut untuk harga {{{4|sebuah kamar beranjang ''ganda'' yang standar}}}:
|-
| '''Murah''' || {{{1}}}
|-
| '''Menengah''' || {{{2}}}
|-
| '''Mahal''' || {{{3}}}
|}<templatestyles src="Template:Pricerange/style.css" /></includeonly><noinclude>
<templatedata>
{
"params": {
"1": {
"description": "Untuk menunjukkan harga ''Murah.'' Terkecuali bila \"Description of room\" diubah, ini menunjukkan harga kamar standar ganda (yaitu kamar dengan satu tempat tidur yang cukup besar untuk dua orang)",
"required": true,
"type": "string",
"label": "Murah",
"example": "Dibawah $50"
},
"2": {
"description": "Untuk menunjukkan harga ''Menengah''. Terkecuali bila \"Description of room\" diubah, ini menunjukkan harga kamar standar ganda (yaitu kamar dengan satu tempat tidur yang cukup besar untuk dua orang)",
"required": true,
"type": "string",
"label": "Menengah",
"example": "$50-$100"
},
"3": {
"description": "Untuk menunjukkan harga ''Mahal''. Terkecuali bila \"Description of room\" diubah, ini menunjukkan harga kamar standar ganda (yaitu kamar dengan satu tempat tidur yang cukup besar untuk dua orang)",
"required": true,
"type": "string",
"label": "Mahal",
"example": "Over $100"
},
"4": {
"description": "If text is entered here, it will replace \"a standard double room\" with the specified text in this field.",
"type": "string",
"example": "a standard single room",
"label": "Description of room"
}
},
"description": "The template is intended to be placed at the top of the \"Sleep\" section in articles to give provide an indication of what price ranges are represented by the \"Budget\", \"Mid-range\" and \"Splurge\" sub-sections based on prices in the area covered by the article.",
"paramOrder": [
"1",
"2",
"3",
"4"
]
}
</templatedata>
[[en:voy:Template:Sleeppricerange]]
</noinclude>
5gc47ggjowjdc1dso9y226u92psxhpb
Templat:Smallcity
10
459
1913
1912
2024-12-03T14:15:46Z
Jon Harald Søby
20
1 revisi diimpor
1912
wikitext
text/x-wiki
#REDIRECT [[Templat:Smallcity skeleton]]
7f1qjq41w154zg9z3jzzzskzrhpwk2k
Templat:Smallcity skeleton
10
460
1920
1919
2024-12-03T14:15:46Z
Jon Harald Søby
20
6 revisi diimpor
1919
wikitext
text/x-wiki
{{pagebanner|Pagebanner default.jpg}}
'''{{<includeonly>subst:</includeonly>PAGENAME}}''' ada di [[Nama wilayah]].
==Pahami==
==Menuju ke sini==
==Berkeliling==
==Lihat==
==Lakukan==
==Beli==
==Makan==
==Minum==
==Tidur==
==Terhubung==
==Tujuan berikutnya==
{{IsPartOf|}}
{{outlinecity}}
<includeonly>{{geo||}}</includeonly><noinclude>
{{INTERWIKI|Q14399327}}
</noinclude>
p16qaerz1dwnouhhpv1fafl1p2xqvog
Templat:Soft redirect
10
461
1923
1922
2024-12-03T14:15:46Z
Jon Harald Søby
20
2 revisi diimpor
1922
wikitext
text/x-wiki
[[Berkas:Redirect arrow without text.svg|#REDIRECT|link=]]<span class="redirectText" id="softredirect" style="font-size: 140%">[[:{{{1}}}|{{{2|{{{1}}}}}}]]</span><br /><span style="font-size:85%; padding-left:48px;">Halaman ini adalah [[m:Soft redirect|pengalihan lunak]].</span><noinclude>
{{Dokumentasi}}
[[en:voy:Template:Soft redirect]]
</noinclude>
c0do9ls16wfddakynoynb0k9wod8yu3
Templat:Softredirect
10
462
1926
1925
2024-12-03T14:15:46Z
Jon Harald Søby
20
2 revisi diimpor
1924
wikitext
text/x-wiki
#redirect[[Templat:Soft redirect]]
8l52s5x5de2naqg307j17gnt1yzbmhv
Templat:South American Barncompass
10
463
1929
1928
2024-12-03T14:15:46Z
Jon Harald Søby
20
2 revisi diimpor
1928
wikitext
text/x-wiki
{| style="background-color: #fdffe7; border: 1px solid #fceb92;"
|rowspan="2" style="vertical-align: middle; padding: 5px;" | [[Berkas:Barncompass-South_America.png|100px]]
|style="font-size: x-large; padding: 3px 3px 0 3px; height: 1.5em;" | '''BintangWiki Amerika Selatan'''
|-
|style="vertical-align: middle; padding: 3px;" | {{{1}}}
|}<noinclude>
[[Kategori:Templat BintangWiki]]
[[en:voy:Template:South American Barncompass]]
</noinclude>
nfnh8mdckd3nt7k4hvsmx337jopsdb8
Templat:Spanduk
10
464
1932
1931
2024-12-03T14:15:46Z
Jon Harald Søby
20
2 revisi diimpor
1931
wikitext
text/x-wiki
#redirect[[Templat:Banner]]
pmud00c2hltyqh0ggv0yb7h6pz9qj55
Templat:Spanduk/doc
10
465
1936
1935
2024-12-03T14:15:46Z
Jon Harald Søby
20
3 revisi diimpor
1935
wikitext
text/x-wiki
{{Subhalaman dokumentasi}}
{{Menggunakan TemplateStyles|Template:Spanduk/styles.css}}
__NOTOC__
<!-- HARAP TAMBAHKAN KATEGORI DAN INTERWIKIS DI BAWAH HALAMAN INI -->
==Dokumentasi==
Template ini digunakan untuk menghasilkan banner yang digunakan di [[Halaman Utama|halaman utama]] .
== Penggunaan ==
<pre style="white-space:pre-wrap">
{{Spanduk
|arah=
|lebar=
|title=
|section=
|section-link=
|image=
|quote=
}}
</per>
in3kwarcegbwcnfphu0m5lyppd2af39
Templat:Spanduk Peta/Kota Pasir/styles.css
10
466
1938
1937
2024-12-03T14:15:46Z
Jon Harald Søby
20
1 revisi diimpor
1937
sanitized-css
text/css
#mainpage-searchinput .mw-ui-button[name="fulltext"] { display: none; } /* sembunyikan kotak pencarian teks lengkap, yang saat ini tidak dapat dinonaktifkan */
#mainpage-map {
background-color: #0B0A34;
position: relative;
overflow: hidden;
height: auto;
margin-bottom: .6em;
max-width: 1125px;
}
#mainpage-maptext {
z-index: 2;
text-align: center;
padding: 0.5em 0.5em 0 0.5em;
}
#mainpage-tagline {
margin: 0;
}
#mainpage-searchinput {
padding:0;
}
#mainpage-searchinput label {
font-size: 85%;
font-style: italic;
}
#mainpage-searchinput input[type="text"] {
margin-right: 0.5em;
}
#mainpage-maplinks {
position:absolute;
bottom: 0;
left: 1em;
color: white;
padding:0 0.5em;
}
#mainpage-maplinks a {
color: white;
font-weight: bold;
}
#mainpage-maptext.mainpage-shadowbox { color: white; }
#mapbanner-container { width: 100%; }
@media screen and (min-width: 720px) {
#mainpage-maptext {
position: absolute;
top: 1em;
left: 1em;
width: 41%; /* 40% terlalu kecil di beberapa browser webkit pada resolusi 720p */
}
#mainpage-maptext.mainpage-shadowbox {
background: rgb(16,16,16);
background: rgba(0,0,0,0.3);
border-radius: 4px;
}
}
@media (max-width: 720px) {
#mainpage-map img { margin-left: -415px; }
#mainpage-maptext {
width: 100%;
background: #0b0a34; /* warna latar belakang gambar peta */
}
#mainpage-maptext :last-child { margin: 0; }
}
4qdrc7r6qqcp1qrxplbv31zca0hm86q
Templat:Spanduk Peta/Kotak Pasir
10
467
1943
1942
2024-12-03T14:15:46Z
Jon Harald Søby
20
4 revisi diimpor
1939
wikitext
text/x-wiki
<templatestyles src="Spanduk Peta/Kota Pasir/styles.css"/>
<div id="mapbanner-container">
<div id="mainpage-map" class="js-proportonal-resize">
<div class="mainpage-shadowbox" id="mainpage-maptext">
<h2>{{{title}}}</h2>
<p id="mainpage-tagline">{{{tagline}}}</p>
<div id="mainpage-searchinput">
<inputbox>
placeholder=Where would you like to travel?
type=search
width=28
buttonlabel=Go
break=no
</inputbox>
</div>
<p id="mainpage-touristoffice">{{{touristoffice}}}</p>
</div>
<div id="mainpage-maplinks">
<p>{{{morelinks}}}</p>
</div>
<imagemap>
File:Bluemarble banner WV.jpg|frameless|1125px
poly 4092 1132 3816 1077 2406 1050 1686 1152 1500 1188 4092 1188 [[Antarctica]]
poly 3665 879 3638 758 3711 738 3768 686 3796 665 3852 677 3936 491 4092 520 4092 826 4092 988 [[Oceania]]
poly 3186 253 3042 346 3140 511 3223 483 3365 595 3525 600 3604 669 3765 692 3791 670 3850 677 3892 599 3942 473 3937 276 4086 141 4081 40 3641 20 3182 0 [[Asia]]
poly 2973 891 3193 796 3301 746 3223 482 3139 511 3045 344 2868 309 2697 348 2650 374 2653 516 2932 874 [[Africa]]
poly 2696 42 2597 113 2703 240 2730 338 2871 309 2979 331 3045 344 3184 253 3181 0[[Europe]]
poly 1437 2 1541 231 1560 454 1795 614 2084 640 2232 507 2311 436 2319 273 2423 247 2613 95 2674 49 2673 0 1434 0 [[North America]]
poly 2084 641 2313 436 2565 637 2527 783 2410 975 2338 1031 2236 1028 2206 741 2152 695 [[South America]]
desc none
</imagemap>
</div>
</div>
j5lfegdqwxj4iwpsc62bfbl0jbbs5vv
Templat:Squarefeet
10
468
1948
1947
2024-12-03T14:15:47Z
Jon Harald Søby
20
4 revisi diimpor
1944
wikitext
text/x-wiki
{{#invoke:String|replace|{{convert|{{{1|3000}}}|ft2|m2|abbr=on}}|sq ft|ft²}}<noinclude>
[[en:voy:Template:Squarefeet]]
</noinclude>
ocf9atc8w0q211mhp9b2d0gt1dwpnxt
Templat:Squarekilometer
10
469
1950
1949
2024-12-03T14:15:47Z
Jon Harald Søby
20
1 revisi diimpor
1949
wikitext
text/x-wiki
{{convert|{{{1|15}}}|km2|mi2|abbr=on}}<noinclude>
{{documentation}}
[[Kategori:Templat format dan fungsi]]
[[en:voy:Template:Squarekilometer]]
</noinclude>
2arpnnpfcww7anaxgjt3xf3icwambxe
Templat:Squaremeter
10
470
1953
1952
2024-12-03T14:15:47Z
Jon Harald Søby
20
2 revisi diimpor
1951
wikitext
text/x-wiki
{{#invoke:String|replace|{{convert|{{{1|3000}}}|m2|ft2|abbr=on}}|sq ft|ft²}}<noinclude>
{{documentation}}
[[Kategori:Templat format dan fungsi]]
[[en:voy:Template:Squaremeter]]
</noinclude>
pq4flfc265iuehnft0wn4s2s9siuabf
Templat:Squaremile
10
471
1955
1954
2024-12-03T14:15:47Z
Jon Harald Søby
20
1 revisi diimpor
1954
wikitext
text/x-wiki
{{convert|{{{1|6}}}|mi2|km2|abbr=on}}<noinclude>
{{documentation}}
[[Kategori:Templat format dan fungsi]]
[[en:voy:Template:Squaremile]]
</noinclude>
rcyp75hlh5eye2r4gwxrr9wk6s2unh9
Templat:Starcity
10
472
1958
1957
2024-12-03T14:15:47Z
Jon Harald Søby
20
2 revisi diimpor
1957
wikitext
text/x-wiki
{{Stbox|status=star|type=city}}<noinclude>[[Kategori:Templat klasifikasi artikel]]
{{INTERWIKI|Q14943476}}
</noinclude>
lmr1parr1ypon5g8njfhs80m91t2hjd
Templat:Starcountry
10
473
1961
1960
2024-12-03T14:15:47Z
Jon Harald Søby
20
2 revisi diimpor
1960
wikitext
text/x-wiki
{{Stbox|status=star|type=country}}<noinclude>[[Kategori:Templat klasifikasi artikel]]
{{INTERWIKI|Q14943479}}
</noinclude>
pcwrgp6rfd2xq5mmeewgx08rcp6oo5s
Templat:Staritinerary
10
474
1963
1962
2024-12-03T14:15:47Z
Jon Harald Søby
20
1 revisi diimpor
1962
wikitext
text/x-wiki
{{Stbox|status=star|type=itinerary}}<noinclude>[[Kategori:Templat klasifikasi artikel]]</noinclude>
gkw5oggnefqz1bn7naiocbt2wd7ne9e
Templat:Starnomination
10
475
1966
1965
2024-12-03T14:15:47Z
Jon Harald Søby
20
2 revisi diimpor
1965
wikitext
text/x-wiki
{{#ifeq:{{NAMESPACE}}|{{ns:0}}|[[Kategori:Nominasi artikel bintang]]|<!-- Don't categorize when not in main (article) space. -->}}
<div class=noprint>
{{Ombox
|image=[[Berkas:Featured article candidate.svg|50px]]
|text=Artikel ini sedang diusulkan menjadi "'''[[Wikiwisata:Artikel bintang|artikel bintang]]'''". Agar dapat dijadikan sebagai artikel bintang, artikel tersebut harus '''komprehensif''', '''diformat secara benar''', dan '''ditulis dengan baik'''. Silakan berkomentar apakah menurut Anda artikel tersebut cocok atau tidak dengan [[Wikiwisata:Status artikel|kriteria status artikel]], di '''[[Wikiwisata:Nominasi bintang#{{PAGENAME}}|Wikiwisata:Nominasi bintang]]'''. Dan jika menurut Anda artikelnya belum siap, silakan [[Wikiwisata:Libatkan diri|libatkan diri]] dan membantunya [[Wikiwisata:Cara menyunting halaman|menjadi lebih baik]]!
}}
</div><noinclude>
{{INTERWIKI|Q14943474}}
</noinclude>
9bh9lrmmpq28eela97p8dbnfyfrpgc6
Templat:Starpark
10
476
1969
1968
2024-12-03T14:15:47Z
Jon Harald Søby
20
2 revisi diimpor
1968
wikitext
text/x-wiki
{{Stbox|status=star|type=park}}<noinclude>[[Kategori:Templat klasifikasi artikel]]
{{INTERWIKI|Q14943480}}
</noinclude>
ilceq5tn8jnrct21nbe1c5t687y7zus
Templat:Starphrasebook
10
477
1972
1971
2024-12-03T14:15:47Z
Jon Harald Søby
20
2 revisi diimpor
1971
wikitext
text/x-wiki
{{Stbox|status=star|type=phrasebook}}<noinclude>[[Kategori:Templat klasifikasi artikel]]
{{INTERWIKI|Q14943477}}
</noinclude>
d582szqtlj8v9uan6sbnlnjm4l2zznk
Templat:Starpotential
10
478
1979
1978
2024-12-03T14:15:47Z
Jon Harald Søby
20
6 revisi diimpor
1977
wikitext
text/x-wiki
{{Tmbox
| image = [[Berkas:Articles for improvement star.svg|50px]]
| text = Artikel ini berpotensi menjadi '''Artikel bintang'''. Artikel sudah ditulis secara baik dengan informasi yang bagus. Namun, untuk mendapat status '''[[Wikiwisata:Status artikel|Bintang]]''' artikel harus "lengkap" dan "cocok" dengan [[Wikiwisata:Pedoman gaya|pedoman gaya]]. Jika Anda melihat ada yang dapat ditingkatkan, silakan [[Wikiwisata:Libatkan diri|libatkan diri]] atau beritahu pada halaman pembicaraannya.}}<includeonly>
{{#ifeq:{{FULLPAGENAME}}|Wikiwisata:Indeks templat||[[Kategori:Calon bintang]]}}</includeonly><noinclude>
[[Kategori:Templat]]
{{INTERWIKI|Q15630398}}
</noinclude>
py5vwzhn32785nhc0iprgdtl1u2526n
Templat:Starregion
10
479
1982
1981
2024-12-03T14:15:47Z
Jon Harald Søby
20
2 revisi diimpor
1981
wikitext
text/x-wiki
{{Stbox|status=star|type=region}}<noinclude>[[Kategori:Templat klasifikasi artikel]]
{{INTERWIKI|Q15630399}}
</noinclude>
badhj5skh73adjvd8b1mop4jsa1mitc
Templat:Startopic
10
480
1985
1984
2024-12-03T14:15:48Z
Jon Harald Søby
20
2 revisi diimpor
1984
wikitext
text/x-wiki
{{Stbox|status=star|type=topic}}<noinclude>[[Kategori:Templat klasifikasi artikel]]
{{INTERWIKI|Q14943473}}
</noinclude>
ly25mrs8st5zrk5bla11xmbxeryv2ha
Templat:Station
10
481
2613
1988
2024-12-03T14:16:02Z
Jon Harald Søby
20
1 revisi diimpor
1986
wikitext
text/x-wiki
<includeonly><span style="white-space: nowrap; background: #fbfbfb; border-left: 1px solid #f5f5f5; border-right: 1px solid #f5f5f5; border-top: 1px solid #f0f0f0; border-bottom: 1px solid #f0f0f0;">{{{1}}}{{#if: {{{2|}}}| {{rint|{{#if: {{{city|}}}|{{{city}}}|{{lc: {{#titleparts: {{PAGENAME}} | 1 | 1}}}}}}|{{{2}}}}} }}{{#if: {{{3|}}}|{{rint|{{#if: {{{city|}}}|{{{city}}}|{{lc: {{#titleparts: {{PAGENAME}} | 1 | 1}}}}}}|{{{3}}}}} }}{{#if: {{{4|}}}|{{rint|{{#if: {{{city|}}}|{{{city}}}|{{lc: {{#titleparts: {{PAGENAME}} | 1 | 1}}}}}}|{{{4}}}}} }}{{#if: {{{5|}}}|{{rint|{{#if: {{{city|}}}|{{{city}}}|{{lc: {{#titleparts: {{PAGENAME}} | 1 | 1}}}}}}|{{{5}}}}} }}{{#if: {{{6|}}}|{{rint|{{#if: {{{city|}}}|{{{city}}}|{{lc: {{#titleparts: {{PAGENAME}} | 1 | 1}}}}}}|{{{6}}}}} }}{{#if: {{{7|}}}|{{rint|{{#if: {{{city|}}}|{{{city}}}|{{lc: {{#titleparts: {{PAGENAME}} | 1 | 1}}}}}}|{{{7}}}}} }}{{#if: {{{8|}}}|{{rint|{{#if: {{{city|}}}|{{{city}}}|{{lc: {{#titleparts: {{PAGENAME}} | 1 | 1}}}}}}|{{{8}}}}} }}{{#if: {{{9|}}}|{{rint|{{#if: {{{city|}}}|{{{city}}}|{{lc: {{#titleparts: {{PAGENAME}} | 1 | 1}}}}}}|{{{9}}}}} }}{{#if: {{{10|}}}|{{rint|{{#if: {{{city|}}}|{{{city}}}|{{lc: {{#titleparts: {{PAGENAME}} | 1 | 1}}}}}}|{{{10}}}}} }}{{#if: {{{11|}}}|{{rint|{{#if: {{{city|}}}|{{{city}}}|{{lc: {{#titleparts: {{PAGENAME}} | 1 | 1}}}}}}|{{{11}}}}} }}{{#if: {{{12|}}}|{{rint|{{#if: {{{city|}}}|{{{city}}}|{{lc: {{#titleparts: {{PAGENAME}} | 1 | 1}}}}}}|{{{12}}}}} }}</span></includeonly><noinclude>[[en:voy:Template:Station]]
[[uk:voy:Шаблон:Station]]
[[vi:voy:Bản mẫu:Station]]
[[zh:voy:Template:Station]]</noinclude>
cf1l3oh1x2kzwwx819fq5vb8fiagyou
Templat:Stbox
10
482
2615
2064
2024-12-03T14:16:02Z
Jon Harald Søby
20
1 revisi diimpor
2063
wikitext
text/x-wiki
<div class="noprint">
{| id="{{{status|}}}_{{{type|}}}" class="article-status" {{#switch:{{{status|}}}
| outline = style="border-style:dotted;"
| usable = style="border-style:dashed;"
| guide = style="border-style:solid;"
| star = style="border-style:double;border-width:6px;"
| #default = style="border-style:solid;"
}}
|{{#ifeq: {{{status|}}} | star | [[Berkas:Cscr-featured.svg|100px]] | }}
|Panduan {{#switch:{{{type|}}}
| district = perjalanan untuk [[Wikiwisata:Hirarki_geografis#Distrik|distrik]]
| city = perjalanan ke [[Wikiwisata:Hirarki_geografis#Kota|kota]]
| airport = mengenai [[Wikiwisata:Hirarki_geografis#Bandara|bandara]]
| park = perjalanan ke [[Wikiwisata:templat artikel taman|taman]]
| diveguide = perjalanan ke [[Wikiwisata:What is a dive guide?|tempat menyelam]]
| region = perjalanan ke [[Wikiwisata:Hirarki_geografis#wilayah|wilayah]]
| country = perjalanan ke [[Wikiwisata:Hirarki_geografis#Negara|negara]]
| continent = perjalanan ke [[Wikiwisata:Hirarki_geografis#Benua|benua]]
| itinerary = [[Wikiwisata:Rencana perjalanan|rencana perjalanan]] ke
| topic = [[topik wisata]] mengenai
| ruralarea = perjalanan ke [[Wikiwisata:Hirarki_geografis#Divisi lainnya|area pinggiran]]
| event = menuju [[Wikiwisata:Artikel acara|acara]]
| phrasebook =
| #default = TYPE
}} '''{{BASICPAGENAME}}'''{{#switch:{{{status|}}}
| outline =  ini adalah sebuah '''[[Wikiwisata:Artikel garis besar|garis besar]]'''
| usable =  ini adalah sebuah artikel '''[[Wikiwisata:Artikel yang dapat digunakan|yang dapat digunakan]]'''
| star =  adalah sebuah '''[[Wikiwisata:Artikel bintang|artikel bintang]]'''
| guide =  adalah sebuah '''panduan'''
| #default =  memiliki status '''[[Wikiwisata:Artikel {{{status|}}}|{{{status|STATUS}}}]]'''
}}{{#switch:{{{status|}}}{{{type|}}}
| outlinedistrict
| outlinecity
| outlineairport
| outlinepark
| outlinediveguide
| outlineitinerary
| outlinetopic
| outlineevent
| outlinephrasebook =  dan perlu diisi konten lagi.
| outlineregion
| outlinecountry
| outlinecontinent =  dan perlu diisi konten lagi.
| outlineruralarea =  dan perlu diisi konten lagi.
| usablecity = . Laman ini memiliki informasi tentang cara menuju ke tempat itu, dan tentang restoran serta hotel.
| usableairport = . Laman ini memiliki informasi tentang [[Wikiwisata:Artikel_templat_bandara#Penerbangan|penerbangan]] dan [[Wikiwisata:Artikel_templat_bandara#transportasi_darat|transportasi darat]] beserta beberapa entri lengkap untuk pilihan makanan dan minuman di bandara.
| usablepark = . Laman ini memiliki informasi tentang taman, bagaimana cara masuknya, selayang pandang atraksi, dan akomodasi di taman tersebut.
| usablediveguide = . Laman ini memiliki informasi mengenai lokasi dan perlengkapan yang dibutuhkan disana serta beberapa entri lengkap tentang apa yang harus dilihat.
| usabledistrict = . Laman ini memiliki informasi mengenai cara masuk serta beberapa entri lengkap untuk restoran dan hotel.
| usablecountry = . Laman ini memiliki informasi mengenai sebuah negara dan cara menuju kesana, serta pranala menuju beberapa destinasi wisata.
| usablecontinent = . Laman ini memiliki informasi tentang benua, serta pranala yang menuju beberapa tujuan.
| usableitinerary = . Laman ini menjelaskan bagaimana menuju ke sana dan menyentuh semua poin utama di sepanjang jalan.
| usabletopic = . Laman ini menyentuh semua area utama dalam topik.
| usableevent = . Laman ini menyentuh semua aspek utama pada suatu acara.
| usablephrasebook = . Laman ini menjelaskan cara pengucapan dan esensi dalam komunikasi untuk perjalanan.
| usableregion = . Laman ini memberikan gambaran yang baik tentang wilayah tersebut, pemandangannya, cara masuknya, serta xara menuju ke tempat menarik, yang artikelnya juga dikembangkan dengan baik.
| usableruralarea = . Laman ini memiliki informasi tentang cara menuju ke tempat itu, dan tentang restoran serta hotel.
| guidedistrict = . Laman ini memiliki berbagai informasi yang baik dan berkualitas termasuk hotel, restoran, atraksi dan info kedatangan.
| guidecity = . Laman ini memiliki berbagai informasi yang baik dan berkualitas termasuk hotel, restoran, atraksi dan trincian perjalanan.
| guideairport = . Laman ini memiliki berbagai informasi yang baik dan berkualitas termasuk penerbangan, transportasi darat, restoran, serta info kedatangan/keberangkatan.
| guidepark = . Laman ini memiliki berbagai informasi yang baik dan berkualitas tentang taman, termasuk atraksi, kegiatan, penginapan, perkemahan, restoran, dan info kedatangan/keberangkatan.
| guidediveguide = . Laman ini memiliki berbagai informasi yang baik dan berkualitas termasuk lokasi, kondisi, perlengkapan, dan info tentang kehidupan laut serta pemandangan lainnya.
| guideregion = . Laman ini memiliki berbagai informasi yang baik secara keseluruhan, dan begitu pula untuk artikel tempat yang ada di wilayah ini
| guidecountry = . Laman ini memiliki berbagai informasi yang bagus dan berkualitas tentang suatu negara, termasuk cara menuju ke tempat menarik, atraksi, serta info kedatangan dan keberangkatan.
| guidecontinent = . Laman ini memiliki berbagai informasi yang baik dan berkualitas termasuk hotel, restoran, atraksi, serta info kedatangan dan keberangkatan.
| guideitinerary = . Laman ini memiliki informasi yang bagus dan rinci yang meliputi keseluruhan rute.
| guidetopic = . Laman ini memiliki informasi yang bagus dan rinci yang meliputi keseluruhan topik.
| guideevent = . Laman ini memiliki informasi yang bagus dan rinci mengenai suatu acara.
| guidephrasebook = . Buku ini mencakup semua topik utama untuk bepergian tanpa harus menggunakan bahasa Inggris.
| guideruralarea = . Laman ini memiliki berbagai informasi yang baik dan berkualitas termasuk hotel, restoran, atraksi dan rincian perjalanan.
| stardistrict
| starcity
| starairport
| starpark
| stardiveguide
| starregion
| starcountry
| starcontinent = . Ini adalah artikel berkualitas tinggi, lengkap dengan peta, foto, dan informasi bagus.
| staritinerary = . Membahas rute lengkap dengan informasi dan visual yang luar biasa.
| startopic = . Membahas topik lengkap dengan informasi dan visual yang luar biasa.
| starevent = . Membahas acara lengkap dengan informasi dan visual yang luar biasa.
| starphrasebook = . Artikel ini mencakup semua topik percakapan dalam perjalanan, dengan informasi dan visual yang bagus.
| starruralarea = . Ini adalah artikel berkualitas tinggi, lengkap dengan peta, foto, dan informasi yang luas.
| #default =  TEXT1
}} {{#switch:{{{status|}}}
| outline = Walau sudah ada [[Wikiwisata:Templat kerangka artikel|kerangka]]nya, tapi [[Wikiwisata:Dimana Anda dapat meletakannya|informasi]]nya belum memadai. {{#switch: {{{type|}}}
| region
| country= Jika ada [[Wikiwisata:Status artikel kota|Kota]] dan '''Destinasi lainnya''' yang tertulis, tidak semuanya berstatus '''dapat digunakan''' atau bahkan tidak memiliki [[Wikiwisata:Status artikel negara|struktur regional yang valid]] dan bagian "Menuju ke sini" untuk memaparkan cara-cara menuju ke negara ini.
| continent= Jika ada tertulis [[Wikiwisata:Status artikel kota|Kota]], '''Negara''' dan '''Destinasi lainnya''', beberapa diantaranya mungkin belum dapat '''digunakan'''.
| itinerary= }} Ayo [[Wikiwisata:Libatkan diri|berpartisipasi]] dan [[Wikiwisata:Bagaimana menyunting halaman|bantulah mengembangkannya]]!
| usable = Orang dengan jiwa petualang bisa menggunakan artikel ini, [[Wikiwisata:Libatkan diri|silakan mengembangkannya]] dengan [[Wikiwisata:Bagaimana menyunting halaman|menyunting halaman ini]].
| guide = [[Wikiwisata:Libatkan diri|Mohon berkontribusi]] dan bantu kami menjadikannya sebuah '''[[Wikiwisata:Artikel bintang|artikel bintang]]'''!
| star = Jika Anda mengetahui sesuatu yang telah berubah, silakan [[Wikiwisata:Libatkan diri|libatkan diri]] dan [[Wikiwisata:Bagaimana menyunting halaman|bantulah mengembangkannya]]!
| #default = TEXT2
}}
|}</div><includeonly>{{#ifeq:{{NAMESPACE}}|{{ns:0}}|<!--
-->[[Kategori:{{#switch:{{{status|}}}{{{type|}}}
| outlinedistrict = Garis besar distrik
| outlinecity = Garis besar kota
| outlineairport= Garis besar bandara
| outlinepark = Garis besar taman
| outlinediveguide = Garis besar panduan menyelam
| outlineitinerary= Garis besar rencana perjalanan
| outlinetopic = Garis besar topik wisata
| outlineevent = Garis besar acara
| outlinephrasebook = Garis besar buku frase
| outlineregion = Garis besar wilayah
| outlinecountry = Garis besar negara
| outlinecontinent = Garis besar benua
| outlineruralarea = Garis besar daerah pinggiran
| usablecity = Artikel kota yang dapat digunakan
| usableairport = Artikel bandara yang dapat digunakan
| usablepark = Artikel taman yang dapat digunakan
| usablediveguide = Artikel panduan menyelam yang dapat digunakan
| usabledistrict = Artikel distrik yang dapat digunakan
| usablecountry = Artikel negara yang dapat digunakan
| usablecontinent = Artikel benua yang dapat digunakan
| usableitinerary = Artikel rencana perjalanan yang dapat digunakan
| usabletopic = Artikel topik wisata yang dapat digunakan
| usableevent = Artikel acara yang dapat digunakan
| usablephrasebook = Artikel buku frase yang dapat digunakan
| usableregion = Artikel wilayah yang dapat digunakan
| usableruralarea = Artikel daerah pinggiran yang dapat digunakan
| guidedistrict = Panduan distrik
| guidecity = Panduan kota
| guideairport = Panduan bandara
| guidepark = Panduan taman
| guidediveguide = Panduan dalam menyelam
| guideregion = Panduan wilayah
| guidecountry = Panduan negara
| guidecontinent = Panduan benua
| guideitinerary = Panduan rencana perjalanan
| guidetopic = Panduan topik wisata
| guideevent = Panduan acara
| guidephrasebook = Panduan buku frase
| guideruralarea = Panduan daerah pinggiran
| stardistrict = Artikel distrik bintang
| starcity= Artikel kota bintang
| starairport= Artikel bandara bintang
| starpark= Artikel taman bintang
| stardiveguide= Artikel panduan menyelam bintang
| starregion= Artikel wilayah bintang
| starcountry= Artikel negara bintang
| starcontinent = Artikel benua bintang
| staritinerary = Artikel rencana perjalanan bintang
| startopic = Artikel topik wisata bintang
| starevent = Artikel acara bintang
| starphrasebook = Artikel buku frase bintang
| starruralarea = Artikel daerah pinggiran bintang
| #default =  TEXT1
}}]]<!--
-->[[Kategori:Artikel {{#switch:{{{status|}}}
| outline = garis besar
| usable = yang dapat digunakan
| star = bintang
| guide = panduan
| #default = STATUS
}}]]<!--
-->{{#switch:{{{type|}}}
| city = [[Kategori:Artikel kota]]
| country = [[Kategori:Artikel negara]]
| diveguide = [[Kategori:Artikel panduan menyelam]]
| itinerary = <!-- itineraries -->
| phrasebook = <!-- phrasebooks -->
| topic = <!-- topic articles -->
| ruralarea =[[Kategori:Artikel daerah pinggiran]]
| event = [[Kategori:Artikel acara]]
| #default = [[Kategori:Artikel {{#switch:{{{type|}}}
| district = distrik
| city = kota
| airport = bandara
| park = taman
| diveguide = tempat menyelam
| region = wilayah
| country = negara
| continent = benua
| itinerary = rencana perjalanan
| topic = topik wisata
| ruralarea = area pinggiran
| event = acara
| phrasebook = buku frase
| #default = TYPE
}}]]
}}<!--
-->{{#ifeq:{{{type|}}}|region|<!--
-->{{#ifexpr:{{PAGESINCATEGORY:{{#titleparts:{{PAGENAME}}}}|R}}=0|[[Kategori:Wilayah kosong]]}}<!--
-->{{#ifexist:Category:{{#titleparts:{{PAGENAME}}}}||[[Kategori:Wilayah tanpa kategori]]}}<!--
-->{{#ifeq:{{PAGESINCAT:{{#titleparts:{{PAGENAME}}}}|subcats}}|0|[[Kategori:Wilayah tingkat bawah]]}}<!--
-->{{#ifexpr:{{PAGESINCAT:{{#titleparts:{{PAGENAME}}}}|pages}}>25|[[Kategori:Wilayah dengan lebih dari 25 subhalaman]]}}<!--
-->{{#ifexpr:{{PAGESINCAT:{{#titleparts:{{PAGENAME}}}}|pages}}>40|[[Kategori:Wilayah dengan lebih dari 40 subhalaman]]}}<!--
-->{{#ifexpr:{{PAGESINCAT:{{#titleparts:{{PAGENAME}}}}|subcats}}>9|[[Kategori:Wilayah dengan lebih dari 9 subwilayah]]}}<!--
-->|<!--
-->{{#ifexist:Category:{{#titleparts:{{PAGENAME}}}}|{{#switch:{{{type|}}}
| city = [[Kategori:Kota dengan kategori]]
| topic
| continent
| country =
| event =
| diveguide = [[Kategori:Panduan menyelam dengan kategori]]
| itinerary = [[Kategori:Rencana perjalanan dengan kategori]]
| #default = [[Kategori:{{{type|}}} dengan kategori]]
}}}}<!--
-->}}<!--
-->|<!-- Don't categorize when not in main (article) space. -->}}<!--
Record assessments via PageAssessments extension -->{{#assessment:{{{type|}}}|{{{status|}}}}}<!--
--></includeonly>
<noinclude> {{INTERWIKI|Q18192892}}
</noinclude>
b199roedttvg3eot2m1af2kp8tdbvjh
Templat:StdColor
10
483
2066
2065
2024-12-03T14:15:49Z
Jon Harald Søby
20
1 revisi diimpor
2065
wikitext
text/x-wiki
<includeonly>{{#switch:{{lc: {{{1}}} }}
| t1 = #ac5c91
| t2 = #d5dc76
| t3 = #b5d29f
| t4 = #b383b3
| t5 = #71b37b
| t6 = #8a84a3
| t7 = #d09440
| t8 = #578e86
| t9 = #d56d76
| t10 = #4f93c0
| t11 = #69999f
}}</includeonly><noinclude>
[[en:voy:Template:StdColor]]
</noinclude>
t6jl29ej7l2gvszs9yo8zzrdzre66kl
Templat:Stub
10
484
2617
2074
2024-12-03T14:16:02Z
Jon Harald Søby
20
1 revisi diimpor
2073
wikitext
text/x-wiki
<div class=noprint>
{| class="article-status" style="border-style:dotted;border-width:1px;border-color:lightblue;font-size:90%;"
|''Laman ini masih merupakan sebuah '''[[Wikiwisata:Artikel rintisan|rintisan]]''' dan membutuhkan perhatian Anda, karena laman ini tidak memiliki [[Wikiwisata:Templat kerangka artikel|kerangka artikel]]. Anda dapat membantu Wikiwisata dengan [[Wikiwisata:Libatkan diri|mengembangkan]] laman ini [[Wikiwisata:Cara menyunting halaman|hingga sempurna]]!''
|}
</div>
<includeonly>
{{#ifeq:{{NAMESPACE}}|{{ns:0}}|[[Kategori:Artikel rintisan]]|<!-- Don't categorize when not in main (article) space. -->}}
</includeonly>
<noinclude>[[Kategori:Templat klasifikasi artikel]]
{{INTERWIKI|Q5529697}}
</noinclude>
ms0t97j7ltr3iyr13ia04b6co0ubfnk
Templat:Subhalaman dokumentasi
10
485
2076
2075
2024-12-03T14:15:49Z
Jon Harald Søby
20
1 revisi diimpor
2075
wikitext
text/x-wiki
<includeonly>{{#ifeq: {{lc:{{SUBPAGENAME}}}} | {{{override|doc}}}
| <!-- doc page -->
</includeonly>{{
#ifeq: {{{doc-notice|show}}} | show
| {{Ombox
| type = notice
| image = [[Berkas:Edit-copy green.svg|40px]]
| text =
'''Ini adalah subhalaman dokumentasi untuk {{{1|[[:{{SUBJECTSPACE}}:{{BASEPAGENAME}}]]}}}'''.<br />Ini berisi informasi penggunaan, [[Wikivoyage:Kategori|kategori]] dan konten lain yang bukan bagian dari aslinya {{ #if: {{{text2|}}} | {{{text2}}} | {{ #if: {{{text1|}}} | {{{text1}}} | {{ #ifeq: {{SUBJECTSPACE}} | {{ns:User}} | {{lc:{{SUBJECTSPACE}}}} halaman template | {{ #if: {{SUBJECTSPACE}} |{{lc:{{SUBJECTSPACE}}}} page|article}}}}}}}}.
}}
}}{{DEFAULTSORT:{{{defaultsort|{{PAGENAME}}}}}}}{{
#if: {{{inhibit|}}}
| <!-- skip -->
| <includeonly>{{#ifexist:{{NAMESPACE}}:{{BASEPAGENAME}}|[[Kategori:{{
#switch: {{SUBJECTSPACE}}
| Template = Template
| Pengguna = Pengguna
| #default = Wikivoyage
}} halaman dokumentasi]]|[[Kategori:Subhalaman dokumentasi tanpa halaman yang sesuai]]}}</includeonly>
}}<includeonly>
| <!-- jika tidak ada di subhalaman /doc, jangan lakukan apa-apa -->
}}</includeonly><noinclude>
{{Dokumentasi}}
<!-- Tambahkan kategori dan interwiki ke subhalaman /doc, bukan di sini! -->
</noinclude>
2cvuvhd97gszbt32gt3drvj3q7bbej4
Templat:Surat
10
486
2078
2077
2024-12-03T14:15:49Z
Jon Harald Søby
20
1 revisi diimpor
2077
wikitext
text/x-wiki
#REDIRECT [[Templat:Pos]]
rix0bmven3qa317jfseqf0yea9eurq5
Templat:TWP
10
487
2081
2080
2024-12-03T14:15:49Z
Jon Harald Søby
20
2 revisi diimpor
2080
wikitext
text/x-wiki
{{Top icon
| imagename = cscr-featured.svg
| wikilink = Wikipedia:Artikel pilihan
| description = Ini adalah artikel pilihan. Klik di sini untuk informasi lebih lanjut.
| id = featured-star
}}
m67x4qfxt3944p7ck3djodd3w2nhe0y
Templat:TWP nav
10
488
2084
2083
2024-12-03T14:15:49Z
Jon Harald Søby
20
2 revisi diimpor
2083
wikitext
text/x-wiki
{{Hidden
|1= [[Tujuan wisata pilihan]]
|2= <center> [[Tujuan wisata pilihan/Usulan|Usulan]] — [[Tujuan wisata pilihan/Pencabutan|Pencabutan]] — [[Wikiwisata:Kriteria tujuan wisata pilihan|Kriteria]]
</center>
}}
algbl0mdvoctah0pt5g31zy5jqygj8d
Templat:Tahukah Anda
10
489
2086
2085
2024-12-03T14:15:49Z
Jon Harald Søby
20
1 revisi diimpor
2085
wikitext
text/x-wiki
<div class="inter" style="width:100%; border: 1px #ccc solid; -moz-border-radius: 5px; -webkit-border-radius: 5px; border-radius: 5px; margin-top: 10px; box-shadow: 1px 1px 10px -2px rgba(0,0,0,0.5); -moz-box-shadow: 1px 1px 10px -2px rgba(0,0,0,0.5); -webkit-box-shadow: 1px 1px 10px -2px rgba(0,0,0,0.5);">
{{HU/Blok|title=[[Templat:HU/TA|Tahukah Anda]]|color=#ffdabc}}
<div style="margin: 5px 10px;">
{{HU/TA}}
</div>
</div>
hx05yhcl3t476gjloqwf4ct0t7yupuj
Templat:Taksi
10
490
2088
2087
2024-12-03T14:15:50Z
Jon Harald Søby
20
1 revisi diimpor
2087
wikitext
text/x-wiki
Dengan taksi [[Berkas:Aiga taxi.png|25px|link=]]<noinclude>[[Kategori:Templat AIGA]][[zh:voy:Template:计程车]]</noinclude>
jik8tir0qd2gg5ds6r1koqdzvishrvw
Templat:Talk other
10
491
2091
2090
2024-12-03T14:15:50Z
Jon Harald Søby
20
2 revisi diimpor
2090
wikitext
text/x-wiki
{{#switch:
<!--If no or empty "demospace" parameter then detect namespace-->
{{#if:{{{demospace|}}}
| {{lc: {{{demospace}}} }} <!--Use lower case "demospace"-->
| {{#ifeq:{{NAMESPACE}}|{{TALKSPACE}}
| talk
| other
}}
}}
| talk = {{{1|}}}
| other
| #default = {{{2|}}}
}}<!--End switch--><noinclude>
{{Documentation}}
<!-- Add categories and interwikis to the /doc subpage, not here! -->
</noinclude>
6j7681wh74mhw64q0ur5c19grp5y7od
Templat:Tantangan kolaborasi
10
492
2093
2092
2024-12-03T14:15:50Z
Jon Harald Søby
20
1 revisi diimpor
2092
wikitext
text/x-wiki
<small>
# [[Banyumas]]
# [[Ngawi]]
# [[Madura]]
# [[Gunung Rinjani]]
# [[Gunung Merbabu]]
</small>
acwz878mph3ums50vmjb46fco4xuipj
Templat:Td
10
493
2095
2094
2024-12-03T14:15:50Z
Jon Harald Søby
20
1 revisi diimpor
2094
wikitext
text/x-wiki
<includeonly><td style="width:1px;"></td></includeonly>
<noinclude>[[Kategori:Templat]]</noinclude>
q2o4xb7vjtv2jm1ztfi4f941lk7d0wq
Templat:Telepon
10
494
2099
2098
2024-12-03T14:15:50Z
Jon Harald Søby
20
3 revisi diimpor
2098
wikitext
text/x-wiki
Telepon [[Berkas:Aiga telephone.svg|8px|link=]]<noinclude>[[Kategori:Templat AIGA]]</noinclude>
cblar5za1yvwiu57eajon67spmg8sdl
Templat:Templat-templat kotak pesan
10
495
2105
2104
2024-12-03T14:15:50Z
Jon Harald Søby
20
5 revisi diimpor
2104
wikitext
text/x-wiki
{{Navbox
| navbar = off
| name = Templat-templat kotak pesan
| state = off
| style = width: auto; float: right; margin: 0em 0em 0em 1em;
| title = Templat-templat<br />kotak pesan
| list1 = {{Tlx|Ambox}} ([[Pembicaraan Templat:ambox|b]])
| list2 = {{Tlx|Tmbox}} ([[Pembicaraan Templat:tmbox|b]])
| list3 = {{Tlx|Imbox}} ([[Pembicaraan Templat:imbox|b]])
| list4 = {{Tlx|Cmbox}} ([[Pembicaraan Templat:cmbox|b]])
| list5 = {{Tlx|Ombox}} ([[Pembicaraan Templat:ombox|b]])
| list6 = {{Tlx|Mbox}} ([[Pembicaraan Templat:mbox|b]])
| list7 = {{Tlx|Fmbox}} ([[Pembicaraan Templat:fmbox|b]])
| list8 = {{Tlx|Dmbox}} ([[Pembicaraan Templat:dmbox|b]])
| list9 = {{Tlx|Pmbox}} ([[Pembicaraan Templat:pmbox|b]])
| list10 = {{Tlx|Asbox}} ([[Pembicaraan Templat:asbox|b]])
}}<noinclude>
[[Kategori:Templat meta Wikivoyage| ]]
</noinclude>
57yiwuk4wxl0othepniatbwng38faql
Templat:Templat HU
10
496
2621
2108
2024-12-03T14:16:02Z
Jon Harald Søby
20
1 revisi diimpor
2106
wikitext
text/x-wiki
{{Ombox
|type=warning
|text= '''Templat ini digunakan di [[Halaman Utama]].''' Hati-hati dalam menyunting halaman ini! Gunakan [[/bak pasir|bak pasir templat]] untuk uji coba.
}}
<noinclude>
{{dok}}
</noinclude>
ae40rn6f1rds8uqch9ktyv53jtea62w
Templat:Templat rumit
10
497
2623
2115
2024-12-03T14:16:02Z
Jon Harald Søby
20
1 revisi diimpor
2114
wikitext
text/x-wiki
{{Ambox
| type = speedy
| text = Templat ini termasuk dalam '''[[:Category:Templat rumit|templat rumit]]'''. Templat ini hanya dapat disunting oleh para pengguna yang ahli dan berpengalaman dalam pengkodean templat. Apabila disunting oleh pengguna yang kurang berpengalaman, kemungkinan akan terjadi ''error'' situs. Jika ada kesalahan atau ''error'', silahkan beritahukan ke halaman pembicaraan templat ini.<inputbox>
type=comment
hidden=yes
default=Talk:{{FULLPAGENAME}}
buttonlabel=Laporkan masalah!
width=88
</inputbox>
''Jika Anda menekan tombol diatas, Anda akan dibawa ke halaman pembicaraan templat ini.''
}}
[[Kategori:Templat rumit]]<noinclude>
{{INTERWIKI|Q5610412}}
</noinclude>
rejm3qdf3fl06n7ijc5mghpox12t1rd
Templat:Terhubung
10
498
2117
2116
2024-12-03T14:15:50Z
Jon Harald Søby
20
1 revisi diimpor
2116
wikitext
text/x-wiki
Terhubung [[Berkas:Noun Project Atlantic Ocean black icon 188780 cc.svg|25px|link=]]<noinclude>[[Kategori:Templat AIGA]]</noinclude>
2dlvb5clpd6zn7cj45wfn8mhngoakws
Templat:Tetap aman
10
499
2120
2119
2024-12-03T14:15:50Z
Jon Harald Søby
20
2 revisi diimpor
2119
wikitext
text/x-wiki
Tetap aman [[Berkas:ISO 7000 - Ref-No 0434B.svg|28px|link=]]<noinclude>[[Kategori:Templat AIGA]]</noinclude>
g71679i28wwxeimh86epmuwtwfpg82j
Templat:Tetap sehat
10
500
2122
2121
2024-12-03T14:15:50Z
Jon Harald Søby
20
1 revisi diimpor
2121
wikitext
text/x-wiki
Tetap sehat [[Berkas:Aiga firstaid.svg|25px|link=]]<noinclude>[[Kategori:Templat AIGA]][[zh:voy:Template:醫療]]</noinclude>
afoxlyd8i33ch3rrz0hc92uv2tkyr29
Templat:Tick
10
501
2126
2125
2024-12-03T14:15:51Z
Jon Harald Søby
20
3 revisi diimpor
2125
wikitext
text/x-wiki
[[Berkas:Yes check.svg|18px|alt=Yes|link=]]<noinclude>
{{Documentation}}
{{INTERWIKI|Q6154014}}
</noinclude>
nz0oejqkpksv0vvu3lamm0bxuszdt6t
Templat:Tick/doc
10
502
2130
2129
2024-12-03T14:15:51Z
Jon Harald Søby
20
3 revisi diimpor
2128
wikitext
text/x-wiki
{{Documentation subpage}}
;Penggunaan
<code><nowiki>{{tick}}</nowiki></code>
;Keluaran
{{Tick}}
;Lihat juga
[[Templat:Done]]
<includeonly>
[[Kategori:Templat]]
</includeonly>
q41b4n9667bbztiggb6bnvgw66xtqtx
Templat:Ticker
10
503
2133
2132
2024-12-03T14:15:51Z
Jon Harald Søby
20
2 revisi diimpor
2132
wikitext
text/x-wiki
<div class="nomobile" style="margin-top:14px;">
<span class="inicio-ticker">'''WARTA WISATA'''</span>
<div class="ticker-container">
<div class="ticker-text">
{{Template:Ticker/Core}}
</div>
</div>
</div><noinclude>
{{INTERWIKI|Q105037413}}
</noinclude>
jw0m8dbaqy3jmk7qm7ywqtg9gtgrah5
Templat:Ticker/Core
10
504
2147
2146
2024-12-03T14:15:51Z
Jon Harald Søby
20
13 revisi diimpor
2145
wikitext
text/x-wiki
{{Template:Ticker/Data|data=16 Juli 2024|text=Kebakaran hutan terjadi di sekitar [[Danau Toba]] dan menghanguskan 40 hektar lahan.}}
{{Template:Ticker/Data|data=27 Mei 2024|text=Badai tornado menerjang [[Mississippi]], [[Ohio]], dan [[Tennessee]], hingga menewaskan 18 orang.}}
{{Template:Ticker/Data|data=27 Mei 2024|text=Tanah longsor di [[Papua Nugini]] menimbun lebih dari dua ribu orang.}}
{{Template:Ticker/Data|data=26 Mei 2024|text=Badai siklon menghantam [[Bangladesh]] dan [[India]].}}
{{Template:Ticker/Data|data=17 Mei 2024|text=Terjadi kerusuhan di [[Bishkek]], [[Kirgizstan]].}}
{{Template:Ticker/Data|data=16 Apr 2024|text=Banjir terjadi di [[Turki]] akibat hujan deras yang setara satu tahun.}}
{{Template:Ticker/Data|data=3 Apr 2024|text=Gempa bumi 7,4 skala Ritcher mengguncang [[Taiwan]], sedikitnya 9 orang tewas dan ratusan orang luka-luka.}}<noinclude>
{{INTERWIKI|Q122918526}}
</noinclude>
ij2uce9h5ionzaz99wyf7a16jkn7b0e
Templat:Ticker/Data
10
505
2150
2149
2024-12-03T14:15:51Z
Jon Harald Søby
20
2 revisi diimpor
2149
wikitext
text/x-wiki
<span style="margin:0px 0px 0px 30px">
<span style="background:#0b0a34; color:#ffffff; -moz-border-radius:3px; -webkit-border-radius:3px; border-radius:3px; padding:3px 5px; margin-right:5px;">{{{data|}}}</span><span style="margin-left:10px;">{{{text|}}}</span></span><noinclude>
{{INTERWIKI|Q122918528}}
</noinclude>
ijhuy99i5mvnugplfwcepvj2kcbw89b
Templat:Tidur
10
506
2153
2152
2024-12-03T14:15:51Z
Jon Harald Søby
20
2 revisi diimpor
2152
wikitext
text/x-wiki
Tidur [[Berkas:Font Awesome 5 solid bed.svg|25px|link=]]<noinclude>[[Kategori:Templat AIGA]][[zh:voy:Template:住宿]]</noinclude>
9kgrvfc99fx66n5rd2ng1ia93hllhg3
Templat:Tip
10
507
2155
2154
2024-12-03T14:15:51Z
Jon Harald Søby
20
1 revisi diimpor
2154
wikitext
text/x-wiki
Tip [[Berkas:Font Awesome 5 solid hand-holding-usd.svg|20px|link=]]<noinclude>[[Kategori:Templat AIGA]]</noinclude>
niowsn957s45w2s25965aa8my54an99
Templat:Title-Index page
10
508
2158
2157
2024-12-03T14:15:51Z
Jon Harald Søby
20
2 revisi diimpor
2157
wikitext
text/x-wiki
{{#ifeq:{{NAMESPACE}}|{{ns:0}}|[[Kategori:Artikel judul]]|<!-- Don't categorize when not in main (article) space. -->}}<noinclude>
{{INTERWIKI|Q15629813}}
</noinclude>
l35ddav8j0o9r7rn441g2j2qp92bpm5
Templat:Tl
10
509
2625
2165
2024-12-03T14:16:02Z
Jon Harald Søby
20
1 revisi diimpor
2164
wikitext
text/x-wiki
<includeonly><span style="font-family: monospace">{{[[Templat:{{{1}}}|{{{1}}}]]}}</span></includeonly><noinclude>{{Documentation}} {{INTERWIKI|Q3926051}}
</noinclude>
hsknej4i1zhw7qjxygg0j2b3236sysl
Templat:Tl/doc
10
510
2167
2166
2024-12-03T14:15:51Z
Jon Harald Søby
20
1 revisi diimpor
2166
wikitext
text/x-wiki
{{Documentation subpage}}
====Contoh pemakaian====
<tt><nowiki>{{Tl|hapus}}</nowiki></tt> menghasilkan {{Tl|hapus}}
<includeonly>
[[Kategori:Templat]]
</includeonly>
h7jb6pycrnj5lgcdl7stasmsm7ldqnn
Templat:Tlx
10
511
2627
2171
2024-12-03T14:16:02Z
Jon Harald Søby
20
1 revisi diimpor
2170
wikitext
text/x-wiki
<includeonly><tt><nowiki>{{</nowiki>{{#if:{{{subst|}}}|[[Bantuan:Substitusi|subst]]:}}[[{{{LANG|}}}{{{SISTER|}}}{{ns:Template}}:{{{1|}}}|{{{1|}}}]]<!--
-->{{#if:{{{2|}}}|
|{{{2}}}
}}<!--
-->{{#if:{{{3|}}}|
|{{{3}}}
}}<!--
-->{{#if:{{{4|}}}|
|{{{4}}}
}}<!--
-->{{#if:{{{5|}}}|
|{{{5}}}
}}<!--
-->{{#if:{{{6|}}}|
|{{{6}}}
}}<!--
-->{{#if:{{{7|}}}|
|{{{7}}}
}}<!--
-->{{#if:{{{8|}}}|
|{{{8}}}
}}<!--
-->{{#if:{{{9|}}}|
|{{{9}}}
}}<!--
-->{{#if:{{{10|}}}|
|{{{10}}}
}}<!--
-->{{#if:{{{11|}}}|
|{{{11}}}
}}<!--
-->{{#if:{{{12|}}}|
|''...''
}}<nowiki>}}</nowiki></span></includeonly><noinclude>
[[Kategori:Templat]]
{{INTERWIKI|Q5896717}}
</noinclude>
r4xtskabd0a32jzuhakzffecvd2fzsw
Templat:Tmbox
10
512
2629
2174
2024-12-03T14:16:02Z
Jon Harald Søby
20
1 revisi diimpor
2173
wikitext
text/x-wiki
<table class="metadata plainlinks ambox {{#switch:{{{small|}}}
| left = mbox-small-left
}} " style="{{{style|}}}margin:0 10% 1.5em;border:1px solid #AAAAAA;{{#switch:{{{type|}}}
| speedy = background:#FFDDDD;border-left:1px #BBBBAA solid;border:2px #B22222 solid;
| delete = background:#f8eaba;border-left:1px #BBBBAA solid;border:2px #B22222 solid;
| content = background:#f8eaba;border-left:1px #BBBBAA solid;border:2px #F28500 solid;
| approval = background:#f8eaba;border-left:1px #BBBBAA solid;border:2px #0B610B solid;
| move = background:#f8eaba;border-left:1px #BBBBAA solid;border:2px #9933CC solid;
| style = background:#f8eaba;border-left:1px #BBBBAA solid;border:2px #F4C430 solid;
| protection = background:#f8eaba;border-left:1px #BBBBAA solid;border:2px #BBBBAA solid;
| notice<!-- = default -->
| #default = background:#f8eaba;border-left:1px #BBBBAA solid;
}}{{#if:{{{stacked|}}}|border-top:-1px;}}"><tr>
{{#switch:{{{image|}}}
| blank <!-- Fall back to "none", since deprecated. -->
| none =
<td class="mbox-empty-cell" style="width:1px;border:none;padding:0;"></td><!-- No image. Cell with some width or padding necessary for text cell to have 100% width. -->
| #default =
<td class="mbox-image" style="border:none;padding:2px 0 2px 0.9em;text-align:center;">{{#switch:{{{small|}}}
| left = <!-- Don't use the DIV -->
| #default = <div style="width:52px;">
}}{{#if:{{{image|}}}
| {{{image}}}
| {{#switch:{{{type|}}}
| speedy = [[Berkas:Ambox deletion.png|Speedy|{{#switch:{{{small|}}}|left=20x20px|#default=40x40px}}|link=]]
| delete = [[Berkas:Ambox deletion.png|Delete|{{#switch:{{{small|}}}|left=20x20px|#default=40x40px}}|link=]]
| content = [[Berkas:Ambox content.png|Content|{{#switch:{{{small|}}}|left=20x20px|#default=40x40px}}|link=]]
| approval = [[Berkas:Thumb up icon.svg|Approval|{{#switch:{{{small|}}}|left=20x20px|#default=40x40px}}|link=]]
| move = [[Berkas:Ambox_move.png|Move|{{#switch:{{{small|}}}|left=20x20px|#default=40x40px}}|link=]]
| style = [[Berkas:Edit-clear.svg|Style|{{#switch:{{{small|}}}|left=20x20px|#default=40x40px}}|link=]]
| protection = [[Berkas:Ambox protection.png|Protection|{{#switch:{{{small|}}}|left=20x20px|#default=40x40px}}|link=]]
| notice<!-- = default -->
| #default = [[Berkas:Ambox notice.png|Information|{{#switch:{{{small|}}}|left=20x20px|#default=40x40px}}|link=]]
}}
}}{{#switch:{{{small|}}}
| left = <!-- Don't use the /DIV -->
| #default = </div>
}}</td>
}}
<td class="mbox-text" style="{{{textstyle|}}}width:100%;border:none;padding:0.25em 0.9em;text-align:left;">{{{text|}}}</td>
{{#if:{{{imageright|}}}
| {{#ifeq:{{{imageright|}}}|none
| <!-- No image. -->
| <td class="mbox-imageright" style="border:none;padding:2px 0.9em 2px 0;text-align:center;">{{#switch:{{{small|}}}
| left = {{{imageright|}}}
| #default = <div style="width:{{{imagerightwidth|52}}}px;">{{{imageright|}}}</div>
}}</td>
}}
}}
</tr></table><noinclude>{{Documentation}}
{{INTERWIKI|Q5623701}}
</noinclude>
2o98sp8bb8922kye4jfaw5saxpj6z5g
Templat:Tnavbar
10
513
2178
2177
2024-12-03T14:15:52Z
Jon Harald Søby
20
3 revisi diimpor
2175
wikitext
text/x-wiki
{{#if:{{{nodiv|}}}| <span|<div}} class="noprint plainlinks navbar" style="background:none; padding:0; font-weight:normal;{{{fontstyle|}}}; font-size:xx-small; {{{style|}}}"><!--
-->{{#if:{{{mini|}}}{{{plain|}}}|<!--nothing-->|<!--else:
-->Kotak ini: }}<!--
-->{{#if:{{{brackets|}}}|[}}<!--
-->[[{{transclude|{{{1}}}}}|<span title="Lihat templat ini" style="{{{fontstyle|}}}"><!--
-->{{#if:{{{mini|}}}|l|lihat}}</span>]]<!--
--> <span style="font-size:80%;">•</span> [[{{TALKPAGENAME:{{transclude|{{{1}}}}}}}|<span title="Pembicaraan templat ini" style="{{{fontstyle|}}}">{{#if:{{{mini|}}}|d|diskusi}}</span>]]<!--
-->{{#if:{{{noedit|}}}|<!--nothing-->|<!--else:
--> <span style="font-size:80%;">•</span> [{{fullurl:{{transclude|{{{1}}}}}|action=edit}}<span title="Sunting templat ini" style="{{{fontstyle|}}};">{{#if:{{{mini|}}}|s|sunting}}</span>]<!--
-->}}<!--
-->{{#if:{{{brackets|}}}|]}}<!--
-->{{#if:{{{nodiv|}}}|<!--then:
--></span> |<!--else:
--></div>}}<noinclude>
{{dok}}
[[Kategori:Templat navigasi| ]]
[[en:Template:Navbar]]
</noinclude>
rhhcjrl5ug9gh6co0bvtpwz0arb4r2w
Templat:Tol-icon
10
514
2180
2179
2024-12-03T14:15:52Z
Jon Harald Søby
20
1 revisi diimpor
2179
wikitext
text/x-wiki
[[Berkas:Motorway CZ.svg|20px|link=]]
mr320mhs1h4chjvlrhmbwm7xirpsdsm
Templat:Top icon
10
515
2182
2181
2024-12-03T14:15:52Z
Jon Harald Søby
20
1 revisi diimpor
2181
wikitext
text/x-wiki
{{#switch: {{NAMESPACE}}
| {{ns:0}}
| {{ns:2}}
| {{ns:3}}
| {{ns:10}} = <div style="display:none; right:{{#expr: {{{number|{{{icon_nr|0}}}}}}*(2+{{{width|15}}})+10+{{{offset|{{{extra_offset|0}}}}}} }}px; {{{style|}}}" class="metadata topicon nopopups {{{class|}}}" {{#if:{{{id|}}}|id="{{{id}}}"}}>[[Berkas:{{{image|{{{imagename}}}}}}|{{{width|15}}}px|{{#if:{{{link|}}}{{{wikilink|}}}|link={{{link|{{{wikilink|}}}}}}}}|{{{text|{{{description}}}}}}]]</div>
| #default = <span class="error">{{tlx|Top icon}} cannot be used outside of the User, Template, or User talk namespaces. {{#ifeq:{{NAMESPACE}}|{{ns:0}}|Try {{tlx|Spoken Wikipedia}} or {{tlx|Featured article}} instead.</span>}}}}<noinclude>
{{dok}} [[en:Template:Top icon]]</noinclude>
f6n0i1ez03k43yr7twil2d3uww3v6v8
Templat:TopicCat
10
516
2186
2185
2024-12-03T14:15:52Z
Jon Harald Søby
20
3 revisi diimpor
2185
wikitext
text/x-wiki
__HIDDENCAT__
Topik dan sub-topik dari [[{{PAGENAME}}]].
<includeonly>{{WarningForPageRedirect|type=topic}}</includeonly>
<noinclude>
[[en:voy:Template:TopicCat]]<!-- -->
</noinclude>
iimnlhlmsea9pw3icgkyzk8zu9f2z3n
Templat:Topicbox
10
517
2194
2193
2024-12-03T14:15:52Z
Jon Harald Søby
20
7 revisi diimpor
2193
wikitext
text/x-wiki
<templatestyles src="Topicbox/style.css"/>
{| class="pp_infobox"
| |
{{#ifexist:{{{link}}}|'''[[{{{link}}}|{{{title}}}]]'''|'''{{{title}}}'''}}
|-
| |
[[Berkas:{{{image|Wikivoyage-Logo-v3-icon.svg}}}|200x100px|right]]
{{{text|Text about the topic.}}} {{#ifexist:{{{link}}}|<small>[[{{{link}}}| more...]]</small>|}} {{{padding| <!--Padding of alternating spaces and no-break spaces to make topic box display at consistent size on wide screens.-->}}}
|-
| |
{{#tag: categorytree| {{{link}}}|depth=0|mode=pages}}
|}
eu0inyb82tg8orlnfjjtx9ttnba3n38
Templat:Topicbox/doc
10
518
2196
2195
2024-12-03T14:15:52Z
Jon Harald Søby
20
1 revisi diimpor
2195
wikitext
text/x-wiki
Topicbox
jxfvqjswmkaiibozzjeu14wstrjxygp
Templat:Topicbox/style.css
10
519
2198
2197
2024-12-03T14:15:52Z
Jon Harald Søby
20
1 revisi diimpor
2197
sanitized-css
text/css
.pp_infobox {
border:1px solid #44718a;
border-radius: 0.45em;
background-color: #CEE0F2;
width: 100%;
margin-bottom: 1em;
}
.pp_infobox tbody > tr:not(:nth-child(3)) td {
text-align: left;
width: 90%;
}
.pp_infobox tbody > tr:nth-child(2) > td { background-color:#F5FAFF; }
.pp_infobox tbody > tr:nth-child(3) > td { background-color:#FAFAFF; }
kylwlq5pgi3tr88mdl6tdd113q0kh7x
Templat:Topicbox/styles.css
10
520
2200
2199
2024-12-03T14:15:52Z
Jon Harald Søby
20
1 revisi diimpor
2199
sanitized-css
text/css
.pp_infobox {
border:1px solid #44718a;
border-radius: 0.45em;
background-color: #CEE0F2;
width: 100%;
margin-bottom: 1em;
}
.pp_infobox tbody > tr:not(:nth-child(3)) td {
text-align: left;
width: 90%;
}
.pp_infobox tbody > tr:nth-child(2) > td { background-color:#F5FAFF; }
.pp_infobox tbody > tr:nth-child(3) > td { background-color:#FAFAFF; }
kylwlq5pgi3tr88mdl6tdd113q0kh7x
Templat:TopicinCat
10
521
2203
2202
2024-12-03T14:15:52Z
Jon Harald Søby
20
2 revisi diimpor
2202
wikitext
text/x-wiki
__HIDDENCAT__
<noinclude>
{{documentation}}
{{INTERWIKI|Q108337486}}
</noinclude>
ec1wm0r4qz6ahkdccvehyxdq1p4z54a
Templat:Topicsin
10
522
2206
2205
2024-12-03T14:15:53Z
Jon Harald Søby
20
2 revisi diimpor
2205
wikitext
text/x-wiki
<noinclude>{{experimental}}</noinclude><includeonly>{| <!--style="border:1px solid grey; padding: 0 10px 0 5px;" -->
|<h3 > Topik terkait {{{1}}} </h3>{{#tag: categorytree|Topik {{{1}}} |depth={{{2|1}}}|mode=pages|hideroot=on}}
|}<includeonly><noinclude>
{{INTERWIKI|Q15629931}}
</noinclude>
82hw7zten3yq27il0czlil0glp37jix
Templat:Tout
10
523
2209
2208
2024-12-03T14:15:53Z
Jon Harald Søby
20
2 revisi diimpor
2208
wikitext
text/x-wiki
Halo, <includeonly>{{subst:PAGENAME}}</includeonly>! Terima kasih telah berkontribusi di Wikiwisata. Satu atau lebih suntingan terbaru Anda telah dikembalikan karena tampaknya merupakan upaya untuk menggunakan situs ini sebagai tempat beriklan atau mempromosikan bisnis atau jasa. Wikiwisata dibuat oleh pelancong dan ''untuk'' pelancong. Walau [[Wikiwisata:Selamat datang, pemilik bisnis|pemilik bisnis dan karyawan]] dipersilakan untuk berkontribusi, memakai situs ini untuk tujuan promosi tidak diperbolehkan.
Jika Anda merasa suntingan Anda disalahartikan sebagai promosi, '''silakan baca [[Wikiwisata:Jangan berpromosi|pedoman untuk mengidentifikasi suntingan promosi Wikiwisata]]'''. Jika setelah membaca pedoman itu, Anda ''masih'' merasa suntingan Anda salah hapus, harap gunakan [[Wikiwisata:Menggunakan halaman pembicaraan|halaman pembicaraan Anda]] atau halaman pembicaraan artikel dimana suntingan Anda dihapus untuk memberi penjelasan mengapa suntingan Anda bukanlah bentuk promosi. Sangat penting bagi Anda untuk mendiskusikan perubahan yang Anda usulkan '''sebelum''' menambahkannya kembali karena suntingan promosi yang berulang dapat menyebabkan pemblokiran sementara pada akun Anda; dan dalam kasus yang serius, bisnis yang bersangkutan mungkin masuk daftar hitam Wikiwisata.<noinclude>{{Documentation}}
{{INTERWIKI|Q6245436}}
</noinclude>
i5wsj6ywj54tq54iwbktcu14drm2ln7
Templat:Tout/doc
10
524
2211
2210
2024-12-03T14:15:53Z
Jon Harald Søby
20
1 revisi diimpor
2210
wikitext
text/x-wiki
{{Documentation subpage}}
__NOTOC__
==Penggunaan==
Templat ini dapat ditempatkan pada halaman pembicaraan pengguna ketika pengguna tersebut melakukan satu atau beberapa kali suntingan yang dianggap sebagai [[Wikiwisata:Jangan berpromosi|promosi]]. Templat dipanggil sebagai berikut:
<nowiki>{{subst:tout}}</nowiki>
Dalam kebanyakan kasus, templat harus ditempatkan di bagiannya sendiri pada halaman pembicaraan pengguna dan kiriman harus ditandatangani:
==Suntingan Anda baru-baru ini==
<nowiki>{{subst:tout}} -- ~~~~</nowiki>
<includeonly>
[[Kategori:Templat halaman pembicaraan pengguna]]
</includeonly>
k6ip2glc60fa93vu39ka8jonuw0t31h
Templat:Transclude
10
525
2631
2215
2024-12-03T14:16:02Z
Jon Harald Søby
20
1 revisi diimpor
2213
wikitext
text/x-wiki
{{#switch: {{NAMESPACE: {{{1}}} }}
|#default = {{FULLPAGENAME: {{{1}}} }} <!-- eg "User:Foo" -->
|{{ns:0}} =
{{#ifeq: {{NAMESPACE: {{{1}}} }} | {{NAMESPACE: Template{{{1}}} }}
| Template:{{{1}}} <!-- no leading colon, eg "Foo" -->
| {{PAGENAME: {{{1}}} }} <!-- leading colon, eg ":Foo", so we want the article -->
}}
}}<noinclude>
[[Kategori:Templat umum]]
[[en:Template:Transclude]]
</noinclude>
4vynxwhjzyv6vq5wvnkqbvc4x91azpe
Templat:Translate
10
526
2219
2218
2024-12-03T14:15:53Z
Jon Harald Søby
20
3 revisi diimpor
2218
wikitext
text/x-wiki
{{Ambox
|image = [[Berkas:Translation Latin Alphabet margin.svg|38px]]
|text = Artikel atau bagian ini mungkin dapat dikembangkan dengan penerjemahan artikel dari '''[[:{{{1}}}:{{{2|{{FULLPAGENAME}}}}}|Wikiwisata bahasa {{#switch: {{{1}}}
| bn=Bengali | de = Jerman|en=Inggris | fr = Perancis | el = Yunani | es = Spanyol | fr = Perancis | fi = Finlandia | he = Ibrani | hi = Hindi | it = Italia | ja = Jepang | nl = Belanda | pl = Polandia | pt = Portugis | ro = Rumania | ru = Rusia | sv = Swedia | uk = Ukraina | vi = Vietnam | zh = Tionghoa }}''']]. Jika Anda dapat menerjemahkan, silakan membantu!
|small={{{small|}}}
|smalltext='''Terjemahkan''' dari [[:{{{1}}}:{{{2|{{FULLPAGENAME}}}}}|{{{1}}}]]
}}<includeonly>{{#ifeq:{{NAMESPACE}}|{{NS:0}}|[[Kategori:Artikel yang perlu diterjemahkan dari bahasa {{#switch: {{{1}}}
| bn=Bengali | de = Jerman|en=Inggris | fr = Perancis | el = Yunani | es = Spanyol | fr = Perancis | fi = Finlandia | he = Ibrani | hi = Hindi | it = Italia | ja = Jepang | nl = Belanda | pl = Polandia | pt = Portugis | ro = Rumania | ru = Rusia | sv = Swedia | uk = Ukraina | vi = Vietnam | zh = Tionghoa }}]]
}}</includeonly><noinclude>
{{Documentation}}
</noinclude>
edjiyr464aq536btjankbzczrufr3zc
Templat:Translate/doc
10
527
2222
2221
2024-12-03T14:15:53Z
Jon Harald Søby
20
2 revisi diimpor
2221
wikitext
text/x-wiki
{{Documentation subpage}}
__NOTOC__
===Penggunaan===
Tempatkan templat ini di bagian bawah artikel untuk menunjukaan ada halaman yang lebih baik dalam versi bahasa Wikiwisata lainnya, dan karenanya harus diterjemahkan dari bahasa itu ke dalam bahasa Indonesia.
Templat dapat menampung dua parameter. Parameter pertama yang harus ditambahkan adalah kode bahasa. Kode bahasa berikut tersedia:
* bn = Bengali
* de = Jerman
* en = Inggris
* el = Yunani
* es = Spanyol
* fi = Finlandia
* fr = Perancis
* he = Ibrani
* hi = Hindi
* it = Italia
* nl = Belanda
* pl = Polandia
* pt = Portugis
* ro = Rumania
* ru = Rusia
* sv = Swedia
* uk = Ukraina
* vi = Vietnam
* zh = Tionghoa
Parameter kedua harus memberikan nama artikel dari versi bahasa yang Anda maksud. Misalnya, artikel [[Perancis]] disebut ''France'' di Wikiwisata Inggris, sehingga "France" harus diisi sebagai parameter kedua. Jika nama artikel sama di kedua versi bahasa, parameter kedua tidak diperlukan (mis. Amsterdam).
Singkatnya, gunakan pemformatan berikut:
:<nowiki>{{translate|en|France}}</nowiki>
...menghasilkan:
{{Translate|en|France}}
Jika tag ini hanya dengan satu parameter (lihat pranala di bawah judul yang dicetak tebal), menghasilkan:
{{Translate|en}}
Selalu gunakan monimal satu parameter untuk templat ini.
=== Lihat juga ===
Templat ini menambahkan artikel ke subkategori bahasa tertentu dari [[:Category:Artikel yang perlu diterjemahkan]].
Setelah menerjemahkan artikel dan menghapus templat ini dari artikel, pertimbangkan untuk menambahkan templat [[Templat:Translated|Diterjemahkan]] yang sesuai ke bagian atas halaman pembicaraan artikel untuk mencatat bahwa terjemahan terjadi pada tanggal tertentu.
<includeonly>
<!-- categories and interwiki links -->
[[Kategori:Templat pemeliharaan]]
</includeonly>
fikp9apr95stz328zvgmjsbtb7rywl3
Templat:Transportasi darat
10
528
2224
2223
2024-12-03T14:15:53Z
Jon Harald Søby
20
1 revisi diimpor
2223
wikitext
text/x-wiki
Transportasi darat [[Berkas:Aiga groundtransportation.png|25px|link=]]<noinclude>[[Kategori:Templat AIGA]]</noinclude>
l2ux61xkszoqqhw1dm0zc49h6em00s4
Templat:Trim quotes
10
529
2227
2226
2024-12-03T14:15:53Z
Jon Harald Søby
20
2 revisi diimpor
2226
wikitext
text/x-wiki
{{{{{|safesubst:}}}#invoke:Trim quotes|trim|s={{{s|{{{1|}}}}}}}}<noinclude>
{{INTERWIKI|Q48959168}}
</noinclude>
ceub74g5lra2so6ugspehaj2ikycd1w
Templat:Tugas
10
530
2234
2233
2024-12-03T14:15:53Z
Jon Harald Søby
20
6 revisi diimpor
2233
wikitext
text/x-wiki
{| class="wikitable"
|-
|
<div class="center"><big><big>'''Kembangkan Wikivoyage hingga diterima oleh Meta-Wiki!'''</big></big></div>
<div class="center">'''[[Wikivoyage:Libatkan diri|Libatkan diri Anda]]''' di '''[[Wikiwisata:ProyekWiki kembangkan Wikivoyage|ProyekWiki kembangkan Wikivoyage]]'''!</div>
|}
<noinclude></noinclude>
gotztygipm69p7zzifmhzcxw9o7tn4w
Templat:Tujuan berikutnya
10
531
2236
2235
2024-12-03T14:15:53Z
Jon Harald Søby
20
1 revisi diimpor
2235
wikitext
text/x-wiki
Tujuan berikutnya [[Berkas:Diff-next.png|29px|link=]]<noinclude>[[Kategori:Templat AIGA]]</noinclude>
8bxejya7gjibqr9g36m1yxiim3474az
Templat:Twbi
10
532
2248
2247
2024-12-03T14:15:53Z
Jon Harald Søby
20
11 revisi diimpor
2247
wikitext
text/x-wiki
<center>[[Berkas:View of the Seine in Paris in september 2006.jpg|Paris, Perancis|265px]]</center>
'''[[Paris]]''' adalah area kosmopolitan sekaligus ibukota Perancis, dengan penduduk sebesar 2,2 juta orang tinggal di pusat kota dan hampir 12 juta orang pada kawasan metropolitannya - salah satu yang terbesar di [[Wy/is/Eropa|Eropa]]. Paris terletak di bagian utara Perancis dan dialiri sungai Seine, reputasinya telah mendunia sebagai kota yang romantis yang juga berperan sebagai pusat mode, budaya, fashion, makanan, dan budaya dunia.
<noinclude>
[[Kategori:Templat]]
</noinclude>
nrxs0ui4jau2p4pmlemizlam6rwdph5
Templat:Twp
10
533
2252
2251
2024-12-03T14:15:54Z
Jon Harald Søby
20
3 revisi diimpor
2251
wikitext
text/x-wiki
[[Berkas:Camara_hpE327_155.jpg|center|265px]]
Banyak orang saat ini '''[[pensiun|menjalani pensiun]]''' di luar negeri. Mereka yang berasal dari daerah yang dingin berduyun-duyun ke Mediterania, Karibia, Asia Tenggara dan Laut Selatan, baik untuk menikmati iklim hangat maupun karena biaya hidup yang lebih rendah.
<noinclude>
[[Kategori:Templat]]
</noinclude>
at39peu02byodqeoe1xvefkgpbpkhtd
Templat:Twu
10
534
2258
2257
2024-12-03T14:15:54Z
Jon Harald Søby
20
5 revisi diimpor
2257
wikitext
text/x-wiki
[[Berkas:Cuc.Phuong.National.Park.jpg|265px|center]]
'''[[Taman Nasional Cuc Phuong]]''' adalah taman nasional pertama dan terbesar di Vietnam dan juga sebagai rumah bagi ratusan spesies flora dan fauna, salah satu tempat paling penting bagi keanekaragaman hayati di negeri tersebut.
<noinclude>
[[Kategori:Templat]]
</noinclude>
fh6i8qzljc8b1f9xr2y3899kkakbchw
Templat:TypeToColor
10
535
2262
2261
2024-12-03T14:15:54Z
Jon Harald Søby
20
3 revisi diimpor
2261
wikitext
text/x-wiki
<includeonly>{{#invoke:TypeToColor|convert|{{{1|}}}}}</includeonly><noinclude>{{INTERWIKI|Q15057617}}
</noinclude>
l4va7oflay5pwg2ublqrjb2v3an7ptf
Templat:UNESCO
10
536
2266
2265
2024-12-03T14:15:54Z
Jon Harald Søby
20
3 revisi diimpor
2264
wikitext
text/x-wiki
[[Berkas:WV-Unesco-icon-small.svg|15px|link=Daftar Situs Warisan Dunia]] {{{1|[[Daftar Situs Warisan Dunia|Daftar Situs Warisan Dunia UNESCO]]}}}<noinclude>
Jalan pintas sederhana.
[[Kategori:Templat]]
{{INTERWIKI|Q62673505}}
</noinclude>
nj1dm3h61uc10ul5lo50yoxkxzatfv1
Templat:USD
10
537
2268
2267
2024-12-03T14:15:54Z
Jon Harald Søby
20
1 revisi diimpor
2267
wikitext
text/x-wiki
{{currency|USD|{{{1|}}}}}<noinclude>
{{Individual currency template documentation}}
[[Kategori:Templat mata uang individual]]
[[en:voy:Template:USD]]
</noinclude>
cmqkqmwx1crsv6s0qg7kclbsyvm3fck
Templat:Usablecity
10
538
2633
2270
2024-12-03T14:16:02Z
Jon Harald Søby
20
1 revisi diimpor
2269
wikitext
text/x-wiki
{{Stbox|status=usable|type=city}}
98b2p3sqrlc9fw4b7lgrww3tn15qj6b
Templat:Usablecountry
10
539
2274
2273
2024-12-03T14:15:54Z
Jon Harald Søby
20
3 revisi diimpor
2272
wikitext
text/x-wiki
{{Stbox|status=usable|type=country}}<noinclude>[[Kategori:Templat klasifikasi artikel]]
{{INTERWIKI|Q14943463}}
</noinclude>
09d5b9srdnvly14u2uggu2m56hge5ac
Templat:Usabledistrict
10
540
2635
2276
2024-12-03T14:16:02Z
Jon Harald Søby
20
1 revisi diimpor
2275
wikitext
text/x-wiki
{{stbox|status=usable|type=district}}
mavk562q8c7rj10fzv6epobc0u3rj59
Templat:Usableitinerary
10
541
2279
2278
2024-12-03T14:15:54Z
Jon Harald Søby
20
2 revisi diimpor
2278
wikitext
text/x-wiki
{{Stbox|status=usable|type=itinerary}}<noinclude>[[Kategori:Templat klasifikasi artikel]]
{{INTERWIKI|Q14943462}}
</noinclude>
26wjtcz3qfwp86294hgs7hxh6fp16jz
Templat:Usablepark
10
542
2637
2281
2024-12-03T14:16:02Z
Jon Harald Søby
20
1 revisi diimpor
2280
wikitext
text/x-wiki
{{Stbox|status=usable|type=park}}<noinclude>[[en:voy:Template:Usablepark]]
[[fa:voy:الگو:پارک قابل استفاده]]
[[pt:voy:Predefinição:Parque usável]]
[[zh:voy:Template:Usablepark]]</noinclude>
gnkjgnyvaka0ng1tx3ir5gklwvhbwu4
Templat:Usablephrasebook
10
543
2284
2283
2024-12-03T14:15:54Z
Jon Harald Søby
20
2 revisi diimpor
2283
wikitext
text/x-wiki
{{Stbox|status=usable|type=phrasebook}}<noinclude>[[Kategori:Templat klasifikasi artikel]]
{{INTERWIKI|Q14943460}}
</noinclude>
0mbt8s0wv32ehi3thn2kllo9p35nkmz
Templat:Usableregion
10
544
2639
2288
2024-12-03T14:16:02Z
Jon Harald Søby
20
1 revisi diimpor
2287
wikitext
text/x-wiki
{{Stbox|status=usable|type=region}}<noinclude>[[Kategori:Templat klasifikasi artikel]] [[en:voy:Template:Usableregion]]</noinclude>
r2dza2xpgaq3er9nl0zv087ecqf4daf
Templat:Usableruralarea
10
545
2292
2291
2024-12-03T14:15:55Z
Jon Harald Søby
20
3 revisi diimpor
2291
wikitext
text/x-wiki
{{Stbox|status=usable|type=ruralarea}}<noinclude>[[Kategori:Templat klasifikasi artikel]][[en:voy:Template:Usableruralarea]]</noinclude>
4ptbj5re0crs4k0fkeuola9hwi30guu
Templat:Usabletopic
10
546
2641
2294
2024-12-03T14:16:02Z
Jon Harald Søby
20
1 revisi diimpor
2293
wikitext
text/x-wiki
{{stbox|status=usable|type=topic}}
cwmcuppoyf7ixbf6g5wng4m31b3ow6p
Templat:User Docent
10
547
2296
2295
2024-12-03T14:15:55Z
Jon Harald Søby
20
1 revisi diimpor
2295
wikitext
text/x-wiki
<div style="float:right;border:solid grey 1px;margin:1px">
{| cellspacing="0" style="width:238px;background:silver"
| style="width:50px;height:50px;background:grey" | [[Berkas:Welcome carpet.jpg|alt=A welcome mat|50px]]
| style="padding:4pt;line-height:1.25em" | Pengguna ini adalah seorang [[Wikiwisata:Dosen|dosen]] untuk {{{1}}}
|} </div>
<noinclude>
<br clear=all>
Untuk menggunakannya, cukup masukkan kode berikut: <nowiki>{{User Docent|NAMA_TEMPAT}}</nowiki>. Parameter itu dapat pula menerima markah wiki, sehingga Anda dapat menyertakan pranala ke lebih dari satu destinasi.
[[Kategori:Kotak pengguna]]
</noinclude>
83kh1h0dx2mhan3cm3u6q5m7u7rzbos
Templat:User page
10
548
2299
2298
2024-12-03T14:15:55Z
Jon Harald Søby
20
2 revisi diimpor
2298
wikitext
text/x-wiki
{| style="text-align:center; border:1px solid #ffc9c9; background-color:#FFFFF3;"
|- padding:1em;padding-top:0.5em;"
|style="font-size: 85%"|'''Ini adalah halaman pengguna Wikiwisata.'''
Jika Anda menemukan halaman ini pada situs selain Wikiwisata, artinya Anda sedang membuka sebuah situs salinan (''mirror site''). Halaman ini bisa saja sudah lama tidak diperbarui, dan bahwa pengguna halaman ini tidak punya hubungan khusus dengan situs lain selain Wikiwisata itu sendiri. Halaman asli berada di alamat <span style="white-space: nowrap">[https://id.wiki<!---->voyage.org/wiki/{{FULLPAGENAMEE}} <span>https://id.wiki</span><!----><span>voyage.org/wi</span><span>ki/{{FULLPAGENAMEE}}</span>].</span>
|[[Berkas:{{{img|Wikivoyage-logo-id-new.svg}}}|link=|60px|none|Yayasan Wiki<!---->media]]
|}
<!-- Tambahkan kategori dan interwiki pada sub-halaman /doc, bukan di sini! -->
<noinclude>
{{documentation}}
{{INTERWIKI|Q5911909}}
</noinclude>
knvu94sh5mu96h9nj3gxiwgpj5qwsy1
Templat:User page/doc
10
549
2307
2306
2024-12-03T14:15:55Z
Jon Harald Søby
20
7 revisi diimpor
2306
wikitext
text/x-wiki
{{documentation subpage}}
=== Penggunaan ===
Templat ini boleh dipasang di [[Wikiwisata:Bantuan halaman pengguna|halaman pengguna]] dengan tujuan untuk membedakan halaman pengguna dengan halaman Wikiwisata yang mengandung informasi wisata. Templat ini disarankan digunakan dengan menyertakan <code><nowiki>{{subst:user page}}</nowiki></code> agar tetap dapat ditampilkan bahkan pada situs-situs cermin (''mirror sites'') yang tidak menggunakan templat ini.
=== Parameter-parameter ===
* {{Tnull|User page|2=logo=yes|3=noindex=yes}}
** {{Para|logo|<var>yes</var>}} – Menampilkan logo Wiki'''''wisata''''' di sisi kiri (''default'': {{Var|hidden}})
** {{Para|logo2|<var>yes</var>}} – Menampilkan logo Wiki'''''media''''' di sisi kanan (''default'': {{Var|hidden}})
*** ({{Para|logo|<var>right</var>}} juga menampilkan logo Wiki'''''media''''' di sisi kanan; parameter {{Para|logo2}} ditambahkan agar kedua logo dapat ditampilkan bersamaan)
** {{Para|noindex|<var>yes</var>}} – ketika digunakan pada halaman selain di ruang nama Pengguna, akan mencegah mesin pencari eksternal mengindeks halaman tersebut (''default'': {{Var|no}}).
** {{Para|rounded|<var>yes</var>}} – Mengubah bentuk border (batas) kontainer menjadi bundar (''default'': {{Var|no}})
** {{Para|border-radius|<var>15px</var>}} – Mengubah radius border, hanya jika <code>rounded={{Var|yes}}</code> digunakan (''default'': {{var|15px}})
** {{Para|border-s|<var>1</var>}} – Ukuran border (''default'': {{Var|1}})
** {{Para|border-c|<var>#ffc9c9</var>}} – Warna border (''default'': {{Var|#ffc9c9}})
** {{Para|background|<var>#fffff3</var>}} – Warna latar kontainer (''default'': {{Var|#fffff3}})
** {{Para|style|no}} – Membuat gaya tampilan sama seperti gaya {{Tl|Ombox}} standar
** {{Para|short|yes}} – Membuat templat lebih kecil dan rata tengah
<includeonly>
[[Kategori:Templat ruang nama pengguna]]
</includeonly>
lf26dhgxm5pg3f0rjt8tmbzsjbmjdpu
Templat:Userboxbottom
10
550
2310
2309
2024-12-03T14:15:55Z
Jon Harald Søby
20
2 revisi diimpor
2309
wikitext
text/x-wiki
<includeonly>|}</includeonly><noinclude>
[[Kategori:Kotak pengguna|~]]
{{INTERWIKI|Q5619665}}
</noinclude>
qy677im3mnu6en8e5ezqadzbwxk0dx4
Templat:Userboxbreak
10
551
2313
2312
2024-12-03T14:15:55Z
Jon Harald Søby
20
2 revisi diimpor
2312
wikitext
text/x-wiki
<noinclude>{{Userboxtop}}</noinclude>
|-
| <div style="text-align: center; font-size: 120%; font-weight: bold;">{{{1|{{{toptext|[[Wikiwisata:Kotak pengguna|<hr />]]}}}}}}</div>
|-
|<noinclude>
{{Userboxbottom}}
{{Dokumentasi}}
hg79irk6slfpzr731ge4al6crardxqq
Templat:Userboxbreak/doc
10
552
2315
2314
2024-12-03T14:15:55Z
Jon Harald Søby
20
1 revisi diimpor
2314
wikitext
text/x-wiki
<noinclude>
[[Kategori:Kotak pengguna|~]]
</noinclude>
pml5vmn339xcq1wyg309e2gz7gvzar8
Templat:Userboxtop
10
553
2318
2317
2024-12-03T14:15:55Z
Jon Harald Søby
20
2 revisi diimpor
2317
wikitext
text/x-wiki
{|class="userboxes" style="margin-left: {{{left|1}}}em;; margin-bottom: 0.5em; width: 248px; border: {{{bordercolor|#99B3FF}}} solid 1px; background-color: {{{backgroundcolor|#FFFFFF}}}; color: {{{textcolor|#000000}}}; float: {{{2|{{{align|right}}}}}}; {{{extra-css|}}}"
|<div style="text-align: center; font-size: 120%; font-weight: bold;">{{{1|{{{toptext|[[Wikiwisata:Kotak pengguna|Kotak pengguna]]}}}}}}</div><includeonly>{{ns0|[[Kategori:Artikel yang secara tidak benar menggunakan templat kotak pengguna]]}}</includeonly><noinclude>
|}
<!--
PLEASE DO NOT ADD DOCUMENTATION/CATEGORIES/INTERWIKIS HERE
-->
{{Documentation}}
<!--
MAKE ADDITIONS TO THE /doc SUBPAGE INSTEAD, THANKS
-->
{{INTERWIKI|Q5622814}}
</noinclude>
4zc8e378r28w8fpmgwgyftrp2hdyewu
Templat:Userboxtop/doc
10
554
2320
2319
2024-12-03T14:15:55Z
Jon Harald Søby
20
1 revisi diimpor
2319
wikitext
text/x-wiki
{{Documentation subpage}}
<includeonly>
[[Kategori:Kotak pengguna|~]]
</includeonly>
1zm0uupndzjikfq4g5p422zceenodpq
Templat:Uses TemplateStyles
10
555
2323
2322
2024-12-03T14:15:55Z
Jon Harald Søby
20
2 revisi diimpor
2322
wikitext
text/x-wiki
<table class="mbox" role="presentation" style="float:right;margin:4px 0 4px 1em;width:258px;font-size:88%;border:1px solid #a2a9b1;background-color:#f8f9fa;box-sizing:border-box;line-height:1.25em;"><tr>
<td class="mbox-image">[[Berkas:Farm-Fresh css add.svg|32px|alt=CSS]]</td>
<td class="mbox-text">Templat ini menggunakan TemplateStyles:
*[[{{{1}}}]]
</td>
</tr></table><noinclude>
[[Kategori:Templat]]
{{INTERWIKI|Q55653305}}
</noinclude>
1w7bxfysskgap33u339k5km2mfyztkz
Templat:Utama
10
556
2325
2324
2024-12-03T14:15:56Z
Jon Harald Søby
20
1 revisi diimpor
2324
wikitext
text/x-wiki
#REDIRECT [[Templat:Main]]
6whtj0qp2cqivcch888ct7nwued0jrt
Templat:Visa
10
557
2330
2329
2024-12-03T14:15:56Z
Jon Harald Søby
20
4 revisi diimpor
2329
wikitext
text/x-wiki
Visa [[Berkas:Aiga immigration.svg|20px|link=]]<noinclude>[[Kategori:Templat AIGA]][[zh:voy:Template:出入境]]</noinclude>
ipaazrkibi9w1cifdubwe14yrldwwys
Templat:VisaRestriction
10
558
2335
2334
2024-12-03T14:15:56Z
Jon Harald Søby
20
4 revisi diimpor
2334
wikitext
text/x-wiki
<includeonly><div style="display: table; background-color: #faf0ff; border: 1px solid #507; margin: 0.5em 1em 0.5em 1em; padding: 6px;" class="pp_warningbox">
{|
|- style="vertical-align: top;"
| style="width: 56px;" rowspan="2" |[[Berkas:Aiga immigration inv.svg|link=|50px|Travel Warning]]
|<span style="font-size: 130%; color: #507">'''Pembatasan visa:'''</span>
<div style="font-size: 100%">{{{1}}}</div>
{{#if:{{{lastedit|}}} | {{#ifeq:{{{lastedit|}}} | permanent | |
{{!}}-
{{!}} style="color:gray; font-size: 85%" {{!}} ''(Informasi terakhir diperbarui pada {{#time: M Y|{{{lastedit}}}}})''
}} }}
|}
</div>{{#ifeq:{{NAMESPACE}}|{{ns:0}}|[[Kategori:Memiliki kotak VisaRestriction]]{{#if:{{{lastedit|}}}| {{#ifeq:{{{lastedit|}}} | permanent | |<!--
check date
-->{{#iferror: {{#ifexpr: {{#time: U | now -6 months}} > {{#time: U | {{{lastedit|}}} }} | [[Kategori:Memiliki kotak VisaRestriction yang kedaluwarsa]]| }}| [[Kategori:Memiliki kotak VisaRestriction tanpa tanggal]] }} }}<!--
no date
--> | [[Kategori:Memiliki kotak VisaRestriction tanpa tanggal]]}} }}</includeonly><noinclude>
{{Documentation}}
<templatedata>
{
"params": {
"1": {
"type": "string",
"required": true,
"label": "Visa restriction text"
}
}
}
</templatedata>
{{INTERWIKI|Q14326954}}
</noinclude>
kclakg2jqdjeosr8c95kh6zane68yei
Templat:W
10
559
2643
2339
2024-12-03T14:16:03Z
Jon Harald Søby
20
1 revisi diimpor
2337
wikitext
text/x-wiki
[[w:{{#if:{{{3|}}}|{{{3}}}:|id:}}{{{1}}}|{{#if: {{{2|}}} |{{{2}}}|{{{1}}}}}]]<noinclude>{{dok}}</noinclude>
99sxhstanim3lb0w7yehxurk4rxuk3n
Templat:WMFLEGAL Disclaimer
10
560
2344
2343
2024-12-03T14:15:56Z
Jon Harald Søby
20
4 revisi diimpor
2343
wikitext
text/x-wiki
Yayasan Wikimedia yakin ada cukup ruang untuk berbagai situs perjalanan dapat eksis berdampingan, serta ruang bagi anggota komunitas untuk berkontribusi pada situs-situs yang membahas topik tersebut.
[[:en:voy:Template:WMFLEGAL Disclaimer]]
m7w0buyz53a4beb0dtyb62k63zontqw
Templat:Warning
10
561
2350
2349
2024-12-03T14:15:56Z
Jon Harald Søby
20
5 revisi diimpor
2349
wikitext
text/x-wiki
#REDIRECT [[Templat:Warningbox]]
lpywyi4hpzn9gpee5xlnfdu9fj93dij
Templat:WarningForPageRedirect
10
562
2354
2353
2024-12-03T14:15:56Z
Jon Harald Søby
20
3 revisi diimpor
2353
wikitext
text/x-wiki
{{#ifeq:{{#invoke:IsRedirect|IsRedirect|{{{1|{{PAGENAME}}}}}}}|yes|
{{ombox
| type = move
| text = '''[[{{{1|{{PAGENAME}}}}}]]''' is a redirect, probably due to a page move. {{#ifexpr:{{PAGESINCATEGORY:{{{1|{{PAGENAME}}}}}}}>0|The subpages of this category may need updating to be part of the new category. Look for the {{#ifeq:{{{type|}}}|topic|PartOfTopic|IsPartOf}} template at the end of the articles and change to the new value.[[Kategori:Categories with articles needing breadcrumbs fixing after page move]]}}
}}[[Kategori:Categories where article is a redirect]]
}}<noinclude>
{{INTERWIKI|Q15729546}}
</noinclude>
3qbkkl7ygh2vhe9u2dbl5nvymzj62sx
Templat:Warningbox
10
563
2645
2370
2024-12-03T14:16:03Z
Jon Harald Søby
20
1 revisi diimpor
2369
wikitext
text/x-wiki
<includeonly><div style="display: table; border-radius: 6px; background-color: #fff3f3; border: 1px solid #a00; margin: 0.5em 1em 0 1em; padding: 6px; box-shadow: 0px 0px 5px #aaa;" class="pp_warningbox">
{|
|- style="vertical-align: top;"
| style="width: 56px;"|[[Berkas:Ambox warning pn.svg|link=|50px|Peringatan]]
|<span style="font-size: 130%; color: #a00">'''PERINGATAN:'''</span> {{{1}}}
|-
|
| {{#if: {{{australia|}}}{{{canada|}}}{{{india|}}}{{{nz|}}}{{{southafrica|}}}{{{uk|}}}{{{us|}}} |
<span style="font-size: 75%">'''Anjuran perjalanan dari pemerintah:''' {{#if: {{{australia|}}} |[{{{australia}}} Australia]|}} {{#if: {{{canada|}}} | • [{{{canada}}} Kanada]|}} {{#if: {{{india|}}} | • [{{{india}}} India]|}} {{#if: {{{nz|}}} | • [{{{nz}}} Selandia Baru]|}} {{#if: {{{southafrica|}}} | • [{{{southafrica}}} Afrika Selatan]|}} {{#if: {{{uk|}}} | • [{{{uk}}} Britania Raya]|}} {{#if: {{{us|}}} | • [{{{us|}}} Amerika Serikat]|}}</span>
}}
|}
</div>{{#ifeq:{{NAMESPACE}}|{{ns:0}}|[[Kategori:Memiliki kotak peringatan]]{{#if:{{{lastedit|}}}| {{#ifeq:{{{lastedit|}}} | permanent | |<!--
check date
-->{{#iferror: {{#ifexpr: {{#time: U | now -6 months}} > {{#time: U | {{{lastedit|}}} }} | [[Kategori:Memiliki kotak peringatan yang kedaluwarsa]]| }}| [[Kategori:Memiliki kotak peringatan tanpa tanggal]] }} }}<!--
no date
--> | [[Kategori:Memiliki kotak peringatan tanpa tanggal]]}} }}</includeonly><noinclude>
{{Documentation}}
<templatedata>
{
"params": {
"1": {
"required": true,
"label": "Warning text",
"type": "string"
},
"australia": {
"aliases": ["au"],
"type": "url"
},
"be": {
"type": "url"
},
"canada": {
"aliases": ["ca"],
"type": "url"
},
"de": {
"type": "url"
},
"fr": {
"type": "url"
},
"india": {
"aliases": ["in"],
"type": "url"
},
"nz": {
"type": "url"
},
"nl": {
"type": "url"
},
"southafrica": {
"aliases": ["za"],
"type": "url"
},
"uk": {
"type": "url"
},
"us": {
"type": "url"
},
"ie": {
"type": "url"
},
"prc": {
"type": "url"
},
"hk": {
"type": "url"
},
"lastedit": {
"label": "Lastedit",
"description": "Date the information was last updated in YYYY-MM-DD format",
"type": "date",
"suggested": true
}
},
"description": "Non-obvious dangers to life and limb."
}
</templatedata>
[[Kategori:Templat]]
{{INTERWIKI|Q5528794}}
</noinclude>
tcfz5jo5kibsuc4l1wilpt59u8xgpwh
Templat:Wikidata
10
564
2373
2372
2024-12-03T14:15:57Z
Jon Harald Søby
20
2 revisi diimpor
2372
wikitext
text/x-wiki
<includeonly>{{safesubst:#invoke:Wd|main}}</includeonly><noinclude>
{{INTERWIKI|Q8478926}}
</noinclude>
lkjffld69dfr2vw087syp932eb35k4m
Templat:Wikipedia
10
565
2388
2387
2024-12-03T14:15:57Z
Jon Harald Søby
20
14 revisi diimpor
2387
wikitext
text/x-wiki
<includeonly>{{#ifeq:{{NAMESPACE}} | {{NS:0}} | [[Kategori:Pages with script errors]] |
<table><tr width="100%" align="center" style="border: 1px solid #c7c7c7; margin: 3px 0;">
<td><small>Artikel ini berisi konten yang diimpor dari artikel [[w:id:|Wikipedia]] {{#if:{{{2|}}}|s}} berjudul [[w:id:{{#if:{{{1|}}}|{{{1|}}}|{{BASEPAGENAME}}}} | {{#if:{{{1|}}}|{{{1|}}}|{{BASEPAGENAME}}}}]]{{#if:{{{2|}}}| and {{{2|}}}}}. Lihat riwayat revisi halaman untuk melihat daftar penulisnya.</small>
</td></tr></table>}}</includeonly><noinclude>
Templat ini menyediakan atribusi untuk materi yang bersumber dari Wikipedia, yang diperlukan untuk mematuhi [[Wikiwisata:Copyleft|persyaratan lisensi]] dibawah [https://creativecommons.org/licenses/by-sa/3.0/deed.en Creative Commons Attribution-ShareAlike 3.0] yang digunakan oleh Wikiwisata dan Wikipedia. '''Templat ini harus ditempatkan pada halaman pembicaraan artikel yang relevan, BUKAN di ruang nama artikel utama.'''
<br><span style="font-family:monospace;"><nowiki>{{Wikipedia|Paris}}</nowiki></span> akan menghasilkan:
{| width="100%" align="center" style="border: 1px solid #c7c7c7; margin: 3px 0;"
|<small>Artikel ini berisi konten yang diimpor dari artikel [[w:id:|Wikipedia]] berjudul [[w:id:Paris|Paris]]. Lihat riwayat revisi halaman untuk melihat daftar penulisnya.</small>
|}
<br>Jika artikel memiliki judul yang sama, mengetikkan nama artikelnya bisa dilakukan – tetapi jika tidak, judul akan secara otomatis terisi nama artikel saat ini. Misalnya, di halaman ini, <span style="font-family:monospace;"><nowiki>{{Wikipedia}}</nowiki></span> akan menghasilkan:
{| width="100%" align="center" style="border: 1px solid #c7c7c7; margin: 3px 0;"
|<small>Artikel ini berisi konten yang diimpor dari artikel [[w:Main Page|Wikipedia]] di [[w:Wikipedia|Wikipedia]]. Lihat riwayat revisi halaman untuk melihat daftar penulisnya.</small>
|}
[[Kategori:Templat]]
{{INTERWIKI|Q6275256}}
</noinclude>
m0qjwmumoz2h8u8gudbfhkzu14jzpn2
Templat:Wikivoyage
10
566
2390
2389
2024-12-03T14:15:57Z
Jon Harald Søby
20
1 revisi diimpor
2389
wikitext
text/x-wiki
#REDIRECT [[Templat:Wikivoyagelang]]
qrxh5spcmkq9ghxiglv41ohfwutrs2d
Templat:WikivoyageDoc
10
567
2397
2396
2024-12-03T14:15:57Z
Jon Harald Søby
20
6 revisi diimpor
2396
wikitext
text/x-wiki
<includeonly>{{#switch: {{NAMESPACE}}
| {{ns:4}}
| {{ns:8}} =
{{#switch: {{{1}}}
| administration = [[Kategori:Administrasi Wikiwisata|{{{2|{{PAGENAME}}}}}]]
| collaboration = [[Kategori:Kolaborasi Wikiwisata|{{{2|{{PAGENAME}}}}}]]
| collaboration/archive = [[Kategori:Arsip kolaborasi Wikiwisata|{{{2|{{PAGENAME}}}}}]]
| expeditions = [[Kategori:ProyekWiki Wikiwisata|{{{2|{{PAGENAME}}}}}]]
| expeditions/language = [[Kategori:ProyekWiki bahasa Wikiwisata|{{{2|{{PAGENAME}}}}}]]
| help = [[Kategori:Bantuan Wikiwisata|{{{2|{{PAGENAME}}}}}]]
| help/archive = [[Kategori:Arsip bantuan Wikiwisata|{{{2|{{PAGENAME}}}}}]]
| logs = [[Kategori:Arsip log Wikiwisata|{{{2|{{PAGENAME}}}}}]]
| policies = [[Kategori:Kebijakan Wikiwisata|{{{2|{{PAGENAME}}}}}]]
| proposals = [[Kategori:Proposal dan draf Wikiwisata|{{{2|{{PAGENAME}}}}}]]
| site = [[Kategori:Situs Wikiwisata|{{{2|{{PAGENAME}}}}}]]
| #default = '''Argumen tidak valid untuk Templat:WikivoyageDoc. Tolong lihat [[:Template:WikivoyageDoc]] untuk petunjuk penggunaannya.'''
}}
}}</includeonly><noinclude>
{{INTERWIKI|Q14325011}}
</noinclude>
rvr0us687fogza6oe2x7shzjfe4gwtn
Templat:Wikivoyagelang
10
568
2414
2413
2024-12-03T14:15:58Z
Jon Harald Søby
20
16 revisi diimpor
2413
wikitext
text/x-wiki
<templatestyles src="Template:Flatlist/style.css" /><div class="hlist" style="text-align:center">
* '''Wikiwisata dalam bahasa lain''': [[:bn:|বাংলা]]
* [[:de:|Deutsch]]
* [[:el:|Ελληνικά]]
* [[:eo:|Esperanto]]
* [[:es:|Español]]
* [[:fa:|فارسی]]
* [[:fi:|Suomi]]
* [[:fr:|Français]]
* [[:he:|עברית]]
* [[:hi:|हिन्दी]]
* [[:ja:|日本語]]
* [[:it:|Italiano]]
* [[:nl:|Nederlands]]
* [[:pl:|Polski]]
* [[:ps:|پښتو]]
* [[:pt:|Português]]
* [[:ro:|Română]]
* [[:ru:|Русский]]
* [[:shn:|ၵႂၢမ်းတႆးလူင်]]
* [[:sv:|Svenska]]
* [[:tr:|Türkçe]]
* [[:uk:|Українська]]
* [[:vi:|Tiếng Việt]]
* [[:zh:|中文]]<br/>
<span style="white-space:nowrap;">[[Istimewa:IncubatorFirstSteps|''Mulai merintis bahasa lainnya!'']]</span></div>
<noinclude>
{{documentation}}
[[Kategori:Templat|Wikivoyage]]
{{INTERWIKI|Q4021091}}
</noinclude>
ly8vclkuf7ga8goxqt5p37rii2o6qi6
Templat:Wikivoyagelang/doc
10
569
2419
2418
2024-12-03T14:15:58Z
Jon Harald Søby
20
4 revisi diimpor
2418
wikitext
text/x-wiki
{{documentation subpage}}
Templat ini menampilkan tabel pranala ke versi bahasa lain dari Wikiwisata, sehingga memungkinkan penggunaan kembali data yang sama di banyak halaman. Templat ini digunakan di [[Halaman Utama]], jadi harap sunting dengan hati-hati.
<includeonly>[[Kategori:Templat]]</includeonly>
ofw73tc97cmvfyzypnaf947y29mnv1o
Templat:Wilayah
10
570
2421
2420
2024-12-03T14:15:58Z
Jon Harald Søby
20
1 revisi diimpor
2420
wikitext
text/x-wiki
Wilayah [[Berkas:Font Awesome 5 solid atlas.svg|20px|link=]]<noinclude>[[Kategori:Templat AIGA]]</noinclude>
68rf5ye5zq7ynmpurppsjvqu4okbdnk
Templat:Worldimagemap
10
571
2424
2423
2024-12-03T14:15:58Z
Jon Harald Søby
20
2 revisi diimpor
2423
wikitext
text/x-wiki
#redirect [[Templat:Peta dunia]]
51l6chwvc11fzcrqbyjs7lsx3lobqyv
Templat:Worldimagemap/Africaimagemap
10
572
2427
2426
2024-12-03T14:15:58Z
Jon Harald Søby
20
2 revisi diimpor
2426
wikitext
text/x-wiki
<imagemap>
File:Map-Africa-Regions.png|right|471px
desc none
poly 970 482 966 484 965 487 964 489 962 490 961 492 959 494 957 498 956 502 954 504 953 506 951 507 948 510 945 512 940 515 938 518 935 519 935 522 932 525 930 529 927 531 926 533 925 536 925 539 924 541 923 544 921 548 921 557 920 562 920 590 919 592 915 596 908 609 907 612 906 614 906 633 904 639 904 652 906 655 906 658 908 664 909 668 912 669 911 671 916 674 920 677 920 680 922 683 924 687 928 691 930 692 934 696 936 697 938 701 941 704 942 707 943 709 946 711 947 713 950 716 950 719 953 722 954 725 954 732 950 735 950 751 949 756 947 760 947 772 945 776 944 779 943 781 942 786 942 790 940 794 938 797 937 800 936 804 933 807 932 810 928 818 927 823 926 827 926 830 924 834 918 843 916 850 913 850 911 852 912 854 916 869 917 878 919 887 920 891 921 898 923 905 924 910 924 914 925 917 925 920 927 924 930 925 932 926 937 926 939 927 963 927 967 926 974 926 976 924 980 924 983 923 987 923 990 922 990 476 [[Kepulauan di Samudra Hindia]]
poly 802 851 802 854 805 855 809 857 812 862 813 867 817 869 818 871 822 875 828 875 830 878 832 882 834 883 840 883 843 884 868 884 872 883 873 881 875 880 876 877 880 875 882 873 883 868 884 864 888 860 891 859 895 857 898 848 898 843 899 840 903 832 903 824 904 822 906 820 908 819 910 816 911 814 913 813 914 809 914 804 915 801 916 799 918 797 919 795 919 791 920 789 920 786 922 782 922 779 924 775 924 769 925 766 925 756 930 746 931 743 935 741 934 738 932 736 932 733 931 728 929 727 928 725 928 722 926 720 926 715 925 712 925 696 922 694 912 689 909 689 907 688 905 689 904 692 903 694 901 695 899 697 897 698 896 700 893 701 889 703 888 705 884 707 882 709 878 711 877 713 869 717 866 718 843 718 841 717 840 715 840 711 839 709 837 703 837 700 835 694 835 679 834 677 834 674 835 672 835 644 833 638 832 636 832 605 834 604 836 602 837 600 837 597 838 593 839 590 843 582 845 579 846 577 846 574 853 567 854 562 854 558 856 552 857 550 858 547 860 543 862 540 863 538 865 537 867 535 873 532 874 530 876 528 876 525 879 524 882 520 886 519 888 518 892 517 898 511 900 507 903 506 908 504 908 501 913 500 917 498 920 494 922 492 923 490 927 484 929 480 930 476 931 474 932 471 933 469 933 466 935 460 939 455 939 451 942 448 943 445 947 444 951 442 955 441 956 439 957 436 957 432 955 312 948 312 946 311 943 311 941 310 938 309 936 308 930 308 928 307 926 305 924 304 905 304 902 302 900 301 890 301 887 300 883 299 877 297 810 297 806 296 805 294 801 294 799 292 798 288 788 288 784 286 772 286 770 287 769 289 767 290 765 294 761 296 757 300 755 301 755 304 754 306 754 309 753 311 753 315 751 317 749 318 748 320 749 323 749 329 747 330 747 346 745 347 744 349 744 352 742 356 742 359 740 363 738 364 738 367 739 369 737 373 735 374 734 377 734 380 733 383 732 385 722 385 720 389 720 401 721 403 722 406 722 409 721 411 719 412 718 414 716 415 715 417 713 418 711 422 712 425 714 426 717 426 723 429 726 430 730 432 732 435 735 441 735 444 737 445 739 447 741 448 742 450 743 453 744 455 746 457 746 460 747 462 747 465 745 466 738 466 736 467 730 467 728 468 725 468 723 472 721 474 719 475 717 479 708 479 706 480 694 480 691 479 688 479 684 477 682 478 682 491 684 492 687 498 682 502 679 505 675 510 671 514 667 523 668 530 668 536 669 538 669 544 663 547 662 549 661 553 660 555 660 558 658 559 657 561 655 562 658 562 660 563 660 572 661 574 661 590 662 592 662 608 667 618 669 619 670 621 670 624 671 626 675 628 677 630 679 631 680 633 684 635 686 639 686 643 688 644 691 644 694 645 696 646 697 648 705 652 708 653 710 654 713 654 715 655 718 655 720 656 723 656 721 654 722 657 722 660 723 662 723 665 724 667 724 670 728 678 730 679 732 682 734 683 737 682 741 680 744 681 747 681 748 683 751 683 753 684 759 684 761 683 764 683 766 681 769 680 772 680 778 678 781 678 783 677 785 678 790 677 792 674 794 673 797 673 799 672 803 672 805 671 807 669 810 669 811 667 813 666 825 666 828 672 828 799 822 799 820 800 817 800 814 806 812 812 812 815 811 817 810 820 808 824 807 827 807 830 806 832 806 839 804 841 804 850 803 852 [[Afrika Timur]]
poly 398 780 401 779 403 778 406 776 409 773 410 771 413 770 415 766 417 765 418 763 420 762 421 760 423 758 424 755 428 753 431 753 435 751 438 751 441 750 444 750 447 749 450 749 452 750 455 756 457 757 460 758 463 758 466 756 470 756 473 755 480 754 490 754 492 753 497 753 499 752 509 752 511 753 514 754 521 754 522 756 524 757 526 759 532 762 535 762 537 761 541 761 543 762 560 762 562 760 565 759 567 757 573 757 575 753 573 752 571 748 569 747 566 746 563 740 564 738 564 735 565 733 565 697 567 698 573 698 575 699 587 699 589 698 590 696 590 690 591 686 591 676 592 674 592 671 594 667 595 669 595 672 596 674 598 675 600 674 603 674 606 675 608 676 612 677 616 679 619 679 621 680 622 682 624 681 626 682 629 682 631 683 632 685 634 686 635 688 637 689 640 689 642 690 644 694 652 698 655 698 659 700 662 700 664 699 664 687 662 686 659 686 655 684 652 684 650 683 649 681 651 675 652 673 655 672 655 657 654 654 654 642 656 641 662 641 664 640 670 640 672 639 675 639 679 637 681 641 684 642 690 645 693 651 697 653 700 653 702 654 720 654 721 656 721 662 722 664 722 670 724 674 724 680 725 682 727 683 730 683 735 681 738 680 741 680 746 681 748 682 751 682 753 683 759 683 765 680 771 680 773 679 780 679 783 678 789 678 793 676 794 674 800 671 803 671 805 670 820 670 821 672 821 691 820 693 820 696 818 702 818 706 817 710 817 732 816 735 815 737 814 740 810 746 810 756 809 758 809 761 808 763 807 767 807 770 806 774 803 777 802 780 800 782 799 784 796 787 795 790 794 794 791 799 786 804 785 808 782 810 782 815 781 821 780 825 778 827 777 830 776 834 775 837 775 841 774 845 771 854 769 855 765 862 765 869 763 874 762 880 758 887 754 899 749 905 742 911 737 919 735 928 731 933 729 936 728 938 725 940 724 943 723 947 720 953 718 959 717 961 714 963 714 966 711 970 711 974 709 978 708 981 705 982 700 986 696 988 693 989 692 992 686 996 683 997 675 1001 672 1001 666 1003 644 1003 640 1004 617 1004 613 1005 608 1007 608 1011 605 1012 565 1012 561 1011 541 1011 533 1010 505 1010 494 1009 488 1008 484 1006 478 1006 475 1005 472 1005 469 1003 469 999 465 998 464 996 460 993 455 991 447 984 433 966 422 955 415 940 411 924 403 901 400 881 398 869 391 855 390 836 387 824 386 814 384 802 389 787 390 789 392 787 398 784 399 782 399 779 [[Afrika bagian Selatan]]
poly 378 678 378 685 379 690 380 696 380 706 382 711 382 724 383 726 386 728 388 729 391 730 397 734 400 735 404 739 405 742 405 745 407 746 408 748 411 748 413 749 416 750 423 750 425 751 426 753 429 753 433 751 436 750 438 749 441 749 443 748 449 748 451 749 452 751 460 755 463 755 465 756 466 754 500 754 502 753 508 753 510 754 513 755 514 757 518 759 521 759 524 760 534 760 538 762 559 762 567 758 576 758 578 757 576 756 574 754 570 752 564 740 564 719 563 716 563 709 562 706 561 704 561 700 563 698 564 696 568 696 570 697 574 698 586 698 588 697 588 684 590 680 590 668 594 670 594 674 596 675 599 675 603 673 604 675 606 676 609 676 613 678 615 680 617 681 620 681 622 682 629 682 632 684 634 688 638 690 641 690 647 693 650 694 653 694 654 696 656 698 659 698 660 700 664 702 664 693 662 692 662 689 660 687 658 686 654 686 648 683 648 680 652 678 652 675 653 673 653 658 652 656 652 650 650 646 652 645 653 643 655 642 656 640 659 640 660 638 666 638 670 636 673 636 675 635 678 635 680 634 678 628 676 627 675 624 673 620 670 620 666 618 666 615 665 613 663 610 662 608 662 586 661 584 661 572 662 570 662 567 661 564 659 562 658 560 656 559 655 557 657 555 658 553 660 552 662 546 666 544 669 538 669 535 668 533 666 532 666 526 668 522 670 521 674 513 676 511 679 505 681 504 684 498 686 497 686 494 680 491 683 485 683 479 684 476 688 478 709 478 713 476 714 474 724 474 725 472 728 471 729 468 733 466 743 466 749 463 750 460 748 459 747 456 744 455 741 455 740 453 738 452 738 446 737 444 735 442 733 441 731 438 730 436 720 431 718 427 716 426 714 422 708 422 711 416 713 415 715 416 718 416 722 408 722 402 720 400 717 400 715 399 717 397 719 393 719 390 710 390 710 384 711 382 711 379 712 377 712 371 709 365 707 364 704 364 702 365 702 368 700 369 698 373 698 376 699 378 699 381 698 384 696 388 694 390 690 392 688 396 686 397 684 395 683 393 681 392 677 394 674 394 673 392 671 391 668 391 666 392 665 394 662 394 660 395 660 398 658 397 657 395 654 395 651 396 648 396 644 394 641 394 640 396 640 402 636 400 619 400 617 398 616 396 612 394 609 394 605 396 604 398 602 399 599 405 593 408 592 410 588 412 584 410 584 404 583 401 583 398 578 388 576 386 573 386 571 385 565 385 563 386 560 386 558 390 558 393 550 397 550 400 548 406 535 406 531 408 528 408 528 411 525 417 523 419 520 419 518 420 512 420 510 421 509 423 503 426 500 426 498 427 494 427 491 428 488 428 486 430 484 431 480 429 478 430 474 422 472 414 469 410 462 406 461 399 463 396 474 395 472 384 470 375 468 360 456 348 460 356 463 371 454 380 447 391 445 400 440 413 434 421 426 441 418 438 405 435 394 444 390 457 385 461 385 466 390 480 354 516 350 518 348 520 342 523 338 524 336 526 328 530 324 530 322 532 319 533 317 534 314 535 312 536 308 537 306 538 302 542 302 545 300 549 298 551 298 570 299 574 301 578 302 581 304 582 306 584 307 582 308 579 308 582 307 584 309 590 313 596 338 626 344 640 348 647 349 649 351 650 352 652 354 653 357 659 359 660 362 661 366 663 365 665 369 667 370 669 372 670 374 674 376 675 [[Afrika Tengah]]
poly 5 289 5 335 4 340 4 379 1 384 0 386 0 415 2 416 3 418 16 427 28 432 36 436 42 440 46 445 53 450 62 454 72 457 77 458 81 459 84 461 88 462 90 464 91 467 94 469 102 472 115 476 124 484 133 495 142 502 154 507 168 510 177 512 182 514 188 517 191 518 206 521 216 522 223 524 228 526 231 526 235 527 252 527 256 525 260 520 264 520 266 518 280 518 286 517 312 517 314 516 322 516 324 514 325 512 328 510 332 508 334 506 338 504 344 504 346 503 349 503 352 502 356 500 362 500 364 498 367 497 369 495 372 494 373 492 375 491 377 487 377 478 380 472 382 471 384 469 384 460 387 459 391 457 391 454 390 452 391 449 392 447 394 446 396 442 399 442 400 440 402 439 402 436 403 434 405 433 407 434 408 436 414 436 420 439 423 439 425 440 428 440 428 431 430 430 433 424 435 423 437 419 438 416 438 413 442 411 443 409 443 403 446 397 446 394 448 393 448 390 449 388 451 387 454 381 454 378 458 376 459 374 461 373 462 371 462 368 464 364 460 362 460 356 459 354 459 351 457 350 451 350 449 348 445 350 442 350 441 352 437 354 435 356 432 356 430 352 406 352 405 354 400 354 400 357 397 358 390 358 386 356 383 356 382 354 379 354 377 353 375 354 372 355 370 357 368 356 367 354 361 354 357 352 354 352 352 348 352 345 350 344 347 344 346 346 344 347 341 348 338 348 337 350 331 350 329 352 329 359 326 360 322 362 320 366 318 367 315 364 309 364 307 363 304 362 303 360 296 360 294 359 294 356 293 354 291 353 290 351 288 350 286 348 285 346 285 343 283 342 282 340 279 340 276 334 276 330 275 328 272 328 270 330 269 332 266 332 266 335 264 336 263 338 251 338 250 340 248 341 247 344 244 345 242 347 240 348 239 350 230 350 228 351 225 351 223 352 223 355 222 357 222 360 220 364 218 365 216 367 215 369 215 372 213 376 213 382 212 384 208 386 202 386 198 388 196 384 193 384 185 388 179 388 177 387 173 389 169 387 168 385 168 378 167 376 164 376 165 374 164 371 162 370 161 367 160 365 160 362 157 356 156 358 154 359 153 361 151 362 145 362 141 364 138 364 134 363 134 360 132 358 130 362 129 360 129 354 130 352 130 343 126 341 126 332 122 330 120 328 118 327 118 321 116 320 114 316 112 315 110 312 110 309 108 305 94 298 88 298 84 297 78 297 76 296 72 298 47 298 46 296 42 296 41 294 39 293 35 292 33 290 [[Afrika Barat]]
poly 66 276 66 273 65 270 65 267 66 265 66 262 68 261 69 258 72 252 72 248 73 244 74 242 74 239 76 235 76 232 79 232 83 234 89 234 91 233 94 232 109 232 112 233 114 234 124 234 126 233 126 230 124 226 124 216 126 212 130 210 134 210 138 208 140 204 140 185 141 183 142 180 144 176 148 174 152 174 155 175 157 176 166 176 169 175 175 175 178 174 182 174 185 175 186 173 186 159 188 160 188 164 190 165 191 167 194 168 198 170 204 172 206 174 207 176 209 178 211 179 215 180 217 181 220 182 222 183 224 185 226 189 228 191 230 195 232 196 235 197 237 198 240 199 244 201 246 204 247 206 249 208 259 213 261 216 263 220 267 224 269 225 272 226 273 228 275 230 278 231 281 233 285 235 287 237 289 238 292 239 294 241 296 244 296 247 298 248 299 250 301 251 302 253 306 255 308 259 312 261 315 261 317 262 320 262 322 266 322 272 323 274 335 274 337 275 343 275 346 274 348 273 349 270 351 268 355 266 358 264 362 263 365 263 368 262 372 260 374 258 375 256 378 254 380 253 382 251 385 251 387 250 390 250 394 248 398 240 402 240 406 238 409 237 413 235 416 233 417 231 419 228 420 226 422 225 424 223 427 223 429 222 432 222 436 220 439 219 451 219 454 220 460 220 462 221 465 221 467 222 470 228 472 227 474 223 476 222 489 222 491 223 492 226 500 230 503 231 506 231 508 232 511 234 513 235 516 236 518 238 522 240 525 240 527 242 530 242 534 244 535 246 538 247 540 248 546 250 554 254 556 258 560 260 563 260 568 262 574 262 576 264 579 264 582 270 586 272 588 271 588 264 589 262 592 262 594 263 598 263 600 264 602 263 600 261 598 257 598 248 599 245 599 239 600 237 602 236 602 239 605 239 607 240 610 240 613 241 626 241 630 239 638 239 640 238 666 238 669 237 682 237 684 236 698 236 701 235 710 235 714 233 717 232 720 232 723 230 726 229 728 227 728 221 730 220 733 217 734 215 736 214 738 212 742 212 745 210 748 210 749 212 750 215 752 218 752 222 754 223 754 226 758 234 759 238 762 239 765 239 766 242 768 245 769 248 772 251 774 254 775 256 775 281 774 283 768 286 767 288 766 291 766 294 765 296 757 300 756 302 754 304 754 310 751 316 749 318 748 320 748 323 744 325 744 331 745 334 745 337 748 343 748 349 746 353 745 356 744 358 742 359 741 361 739 364 739 367 738 369 737 372 735 373 733 375 732 378 730 382 728 384 722 384 721 386 721 389 722 391 722 400 721 402 718 402 716 401 716 398 717 396 717 393 716 391 714 390 711 390 709 389 710 387 710 368 708 364 705 364 702 365 700 366 698 370 696 371 696 374 698 375 698 382 694 390 692 392 689 398 687 399 685 398 684 395 682 394 678 394 674 393 670 391 667 391 663 393 662 396 662 399 661 401 658 401 656 400 656 394 638 394 642 396 641 398 629 398 627 399 618 399 618 396 617 393 602 393 600 395 600 398 598 400 591 414 588 414 582 411 580 407 581 405 583 404 585 400 585 394 583 393 582 391 581 388 580 386 576 384 570 384 568 383 566 384 563 385 561 386 560 388 560 391 558 392 557 394 554 394 552 395 550 399 550 402 542 406 536 406 532 408 529 408 528 410 526 411 525 413 524 416 523 418 520 418 518 419 514 419 512 420 510 422 506 424 503 424 501 425 495 427 492 427 490 428 477 428 475 427 475 421 474 419 472 418 471 416 469 414 468 411 466 407 464 406 463 404 460 404 460 401 461 398 462 396 475 396 476 394 474 393 474 390 473 387 473 384 471 382 470 380 470 362 468 360 467 358 465 357 464 355 461 354 459 352 456 352 455 350 452 350 451 348 448 348 446 349 445 351 439 354 436 354 435 352 426 352 424 351 422 352 409 352 405 354 404 356 401 356 399 360 396 360 395 358 393 357 390 357 384 354 375 354 371 356 365 352 355 347 348 347 346 346 333 346 331 348 329 352 329 358 327 362 325 364 324 366 324 369 322 370 320 368 313 368 311 367 308 367 306 366 306 360 305 358 302 359 300 360 296 358 295 356 291 354 288 354 286 352 286 349 284 348 284 345 283 343 282 340 282 334 280 333 280 330 278 326 276 327 275 329 273 330 271 332 265 332 257 336 256 338 254 339 252 343 246 346 243 346 242 348 239 349 233 349 231 350 228 356 226 357 224 359 222 363 220 365 219 367 213 370 210 376 210 380 211 382 213 384 212 386 208 388 207 386 204 386 200 388 196 388 200 386 200 382 195 382 192 383 190 384 189 386 185 388 181 386 178 386 176 387 175 389 173 388 172 386 170 384 169 380 168 378 165 379 164 377 166 376 167 374 166 372 162 370 161 368 161 359 157 357 155 361 151 363 149 361 146 361 143 362 140 362 138 363 138 360 137 358 135 362 132 362 131 360 131 354 132 352 132 349 130 348 126 340 124 339 123 337 123 331 122 329 122 326 117 316 115 314 114 312 112 311 111 308 110 306 106 304 105 306 103 305 103 302 99 300 96 299 94 298 60 298 57 297 [[Sahel]]
poly 49 245 52 245 55 244 61 244 63 243 66 243 68 242 71 242 73 241 75 239 76 237 76 234 78 233 80 234 102 234 104 235 113 235 116 236 122 236 124 235 122 229 122 226 126 224 126 215 128 213 134 210 137 210 138 208 138 204 140 200 142 194 142 188 144 186 144 177 146 173 148 174 174 174 176 175 179 175 181 176 188 176 188 173 187 171 187 165 188 162 192 164 196 172 198 173 199 175 205 178 206 180 209 182 212 182 213 184 216 184 220 186 222 188 228 191 230 193 231 195 237 198 240 198 244 200 246 202 251 212 254 214 256 218 260 220 263 220 265 222 268 222 272 224 274 226 274 230 276 231 277 234 279 235 282 236 286 236 290 238 293 239 295 241 299 249 301 250 303 252 306 258 308 260 311 260 313 261 316 262 322 262 324 264 324 276 339 276 342 275 345 275 351 273 353 269 355 267 359 265 363 264 366 264 368 262 371 261 373 260 376 254 380 252 382 250 386 248 389 248 390 246 393 245 395 244 396 242 400 240 401 238 405 236 407 234 411 233 413 232 415 230 418 224 421 224 423 223 429 221 431 220 462 220 464 221 465 223 467 225 468 227 472 227 472 224 476 223 478 222 484 222 488 224 489 226 491 228 495 230 502 230 505 232 508 232 511 233 513 234 516 236 518 239 524 242 527 242 531 244 536 246 540 248 544 249 546 251 548 252 551 252 559 256 562 257 574 263 577 264 579 265 580 267 586 270 587 268 587 262 589 266 592 266 595 265 597 264 600 264 600 261 598 260 597 258 597 249 598 247 599 244 600 242 600 239 604 240 606 239 609 239 611 238 617 238 621 236 624 236 626 235 656 235 658 234 676 234 679 235 687 235 689 236 692 236 694 237 709 237 711 236 712 234 712 228 716 228 719 229 722 229 723 227 723 224 725 220 728 219 730 215 734 213 735 211 735 197 736 189 740 180 743 171 744 157 750 149 752 143 752 134 753 130 752 128 750 126 748 125 746 123 744 120 741 119 739 118 734 117 732 116 728 116 724 114 721 113 719 112 716 111 712 110 708 108 704 105 698 99 693 95 689 93 684 91 668 85 662 80 658 75 654 72 646 68 640 66 632 62 625 56 621 52 617 50 614 49 610 48 605 46 601 44 598 42 595 39 591 37 581 37 577 36 566 36 562 35 526 35 522 34 518 34 512 33 504 33 492 31 486 28 483 28 480 26 474 24 472 23 469 22 465 20 460 19 458 18 456 20 436 20 428 19 381 19 372 20 363 20 355 22 346 23 340 23 334 25 328 25 324 26 304 26 299 24 293 22 291 21 289 22 280 23 267 23 263 24 257 24 246 25 237 26 232 27 228 28 224 30 219 32 205 38 194 40 182 42 178 43 175 44 172 46 171 48 166 52 163 53 160 55 158 56 154 60 152 61 150 63 149 66 145 70 145 74 142 77 137 80 134 82 122 93 115 102 107 110 99 119 88 132 80 136 76 139 74 143 72 145 71 147 69 148 [[Afrika Utara]]
</imagemap><noinclude>
[[Kategori:Peta]]
{{Worldimagemap/subpagedoc}}
</noinclude>
2ps85oge1iadwv3yrx4by1rtryrd9g1
Templat:Worldimagemap/Asiaimagemap
10
573
2429
2428
2024-12-03T14:15:58Z
Jon Harald Søby
20
1 revisi diimpor
2428
wikitext
text/x-wiki
#REDIRECT [[Templat:Peta dunia/Asia]]
5pgp6a1k0dgws36107njhv3b3so0bjs
Templat:Worldimagemap/Eropa
10
574
2431
2430
2024-12-03T14:15:58Z
Jon Harald Søby
20
1 revisi diimpor
2430
wikitext
text/x-wiki
#REDIRECT [[Templat:Peta dunia/Eropa]]
gjgefvrc67t6cqecbka0wuoci05xq7u
Templat:Worldimagemap/Europeimagemap
10
575
2434
2433
2024-12-03T14:15:58Z
Jon Harald Søby
20
2 revisi diimpor
2433
wikitext
text/x-wiki
#REDIRECT [[Templat:Peta dunia/Eropa]]
gjgefvrc67t6cqecbka0wuoci05xq7u
Templat:Worldimagemap/Northamericaimagemap
10
576
2436
2435
2024-12-03T14:15:58Z
Jon Harald Søby
20
1 revisi diimpor
2435
wikitext
text/x-wiki
<imagemap>
File:Map of North America.png|right|400px
desc none
poly 727 648 724 648 719 646 719 643 713 639 709 637 706 635 704 634 702 632 701 630 698 628 696 627 695 625 689 622 688 620 685 617 683 616 684 614 682 613 679 612 676 612 674 611 673 609 671 608 670 610 668 611 665 611 663 612 654 612 645 609 643 608 641 606 635 603 632 603 630 602 627 602 625 601 622 601 620 600 621 598 615 595 612 595 606 598 603 598 599 600 593 600 591 601 590 603 588 604 586 607 585 609 583 611 581 615 579 617 579 627 578 629 578 632 576 636 574 637 569 647 567 648 566 650 723 650 [[Amerika Selatan]]
poly 309 465 311 467 313 470 315 471 317 475 317 481 318 483 320 485 320 495 322 497 324 498 327 500 332 506 335 511 338 515 338 518 341 522 343 527 349 531 362 544 368 549 370 552 371 555 373 556 380 558 383 559 387 561 393 569 397 572 403 574 410 576 415 576 421 580 423 582 425 580 431 581 437 583 439 585 442 585 444 586 457 586 463 584 465 583 468 583 470 582 471 580 475 578 476 576 478 575 480 571 483 570 489 570 487 568 488 567 487 565 484 563 485 561 491 558 492 556 494 555 498 557 500 555 504 553 508 553 511 554 513 553 516 553 517 551 518 548 520 546 521 544 525 542 526 540 524 538 523 536 523 524 522 522 520 520 520 517 518 515 516 514 510 514 506 513 503 513 499 512 493 510 492 508 486 508 482 506 481 504 478 502 476 500 474 499 471 498 470 496 466 496 463 495 459 493 456 493 454 492 451 492 451 489 441 484 440 482 440 479 439 477 438 474 437 472 436 469 434 465 430 463 424 463 423 465 421 466 415 466 413 465 412 463 411 460 409 456 409 453 408 450 406 448 404 447 401 446 400 444 397 444 394 445 388 448 377 448 375 449 372 449 368 447 366 445 363 445 357 442 354 442 348 439 345 439 339 437 335 437 331 439 328 440 324 442 321 442 317 444 311 450 [[Meksiko]]
poly 565 643 566 641 568 640 569 638 571 637 574 637 578 635 576 631 576 622 577 619 577 616 575 614 575 611 574 609 570 605 570 602 567 596 565 590 563 588 562 586 560 584 559 581 557 580 556 578 554 577 553 575 550 573 548 572 547 570 543 569 540 569 538 568 531 568 529 567 527 565 526 563 520 560 517 559 511 556 508 555 504 553 502 557 498 555 492 555 486 558 484 562 486 563 487 564 488 565 488 567 488 570 485 569 479 572 478 574 478 577 477 579 475 580 474 582 472 584 471 586 470 589 469 591 471 592 471 601 473 605 473 608 475 611 475 614 477 618 479 620 481 621 482 623 484 625 490 628 493 628 496 629 499 629 501 630 503 632 506 634 508 636 512 638 518 640 520 641 523 641 526 642 529 642 531 644 535 646 539 646 541 647 555 647 557 646 560 646 561 644 [[Amerika Tengah]]
poly 622 599 626 601 629 601 631 602 634 602 638 604 640 606 643 607 651 611 654 612 656 613 662 613 666 611 667 609 671 607 674 607 675 609 684 609 686 610 687 612 685 613 683 617 684 619 687 619 691 621 694 621 696 620 698 618 700 617 701 615 705 613 706 611 708 610 708 607 709 605 709 596 710 594 710 575 708 573 707 570 705 566 697 562 695 558 695 555 693 553 691 552 690 549 686 546 684 545 681 545 679 544 676 538 670 535 666 534 663 531 664 529 665 528 665 527 665 524 663 520 657 516 649 517 643 517 641 515 638 515 636 513 635 511 637 512 636 510 634 509 632 507 630 504 628 502 625 500 617 496 613 492 610 491 609 488 605 486 603 484 601 483 595 481 593 480 590 480 588 479 587 477 585 478 583 482 579 484 577 488 577 491 576 493 576 500 575 502 569 502 567 503 564 503 562 504 549 504 547 505 543 506 540 507 539 509 536 511 534 512 534 515 532 518 529 524 527 526 527 529 526 531 527 533 532 532 530 533 530 558 531 560 532 563 533 565 536 565 538 566 550 570 562 576 565 577 566 579 572 585 574 586 577 587 579 588 586 588 589 589 599 589 601 590 602 592 606 594 609 596 612 596 615 597 618 597 621 598 [[Kepulauan Karibia]]
poly 896 73 895 75 893 76 892 79 890 80 889 82 886 82 878 86 872 86 868 88 865 88 863 89 857 89 855 90 852 91 846 94 843 94 840 95 838 96 837 98 834 98 830 100 817 100 814 101 811 101 810 103 810 106 809 108 809 111 805 119 805 125 804 127 806 133 806 136 808 140 808 143 811 152 812 154 812 160 814 161 817 162 820 164 822 165 823 168 824 170 824 173 825 175 826 178 826 193 825 195 824 198 822 197 821 199 821 245 822 247 822 259 821 261 820 264 820 311 818 315 818 321 817 323 815 325 814 327 812 328 810 330 808 333 806 335 803 337 801 338 800 341 798 342 794 342 790 343 787 344 784 346 778 348 772 354 769 356 766 357 764 358 760 359 758 360 755 360 753 361 750 363 748 364 745 364 742 365 729 365 725 364 723 363 720 363 718 362 715 362 711 360 708 360 702 354 700 350 700 346 702 344 703 342 703 339 701 338 700 335 700 332 703 326 703 320 699 322 693 322 691 326 688 326 686 327 685 329 684 332 682 336 680 337 677 337 673 339 666 339 664 340 658 340 656 339 653 339 651 340 650 342 646 344 645 346 641 348 638 348 636 349 633 349 631 350 625 350 621 352 618 358 616 360 608 360 598 365 595 365 593 364 590 364 588 363 590 362 593 362 597 360 604 346 604 340 603 338 601 336 597 334 597 330 598 328 597 326 594 326 590 324 589 320 587 318 586 316 583 316 581 315 572 315 570 316 567 316 563 314 554 314 552 313 549 313 548 311 546 310 543 310 542 308 540 307 538 308 503 308 500 309 473 309 471 308 468 308 464 310 442 310 438 309 434 309 432 308 422 308 420 307 417 307 414 308 410 308 408 307 402 308 398 309 392 309 390 310 371 310 370 312 367 312 365 314 362 314 358 315 356 316 350 313 347 312 344 312 343 310 340 310 339 308 338 304 337 301 336 299 335 296 334 294 334 291 332 287 332 280 330 279 330 270 332 269 333 267 335 266 336 264 338 265 340 269 346 269 348 268 354 268 358 266 361 266 363 265 364 263 368 261 371 259 373 258 373 252 372 250 369 250 368 248 368 230 366 229 364 230 358 230 356 231 352 229 352 226 348 224 342 224 343 222 346 222 348 220 352 218 352 215 354 214 356 210 364 206 365 204 368 202 372 200 374 198 380 195 383 189 384 186 392 182 395 182 398 181 400 180 402 176 403 173 405 169 407 168 410 166 414 162 417 160 421 158 423 156 425 155 426 152 428 148 430 146 431 144 434 143 434 140 431 142 432 140 436 140 438 138 441 138 446 136 452 135 456 133 458 130 460 128 466 125 470 124 475 124 479 123 482 123 484 122 486 120 489 118 490 116 494 114 498 113 503 112 506 112 510 110 513 108 517 107 522 105 526 102 532 100 536 99 538 98 540 96 550 96 553 94 556 94 559 92 564 92 578 90 582 90 586 89 588 88 592 88 594 86 604 86 606 85 609 84 611 82 614 82 618 81 621 80 626 80 631 79 634 79 640 78 649 78 652 77 658 77 663 76 669 76 672 73 697 73 699 72 719 72 721 71 724 71 726 70 730 70 732 69 739 69 741 68 745 68 748 70 768 70 771 69 778 69 780 68 810 68 816 66 822 67 836 67 839 68 884 68 885 70 888 71 889 73 [[Kanada]]
poly 426 151 424 150 420 150 416 149 394 149 390 147 387 147 385 148 381 147 379 146 372 146 370 145 364 145 362 144 358 143 354 143 352 142 349 142 348 140 342 140 336 136 322 136 320 138 316 138 309 139 306 139 304 140 300 141 298 142 295 142 289 144 287 146 283 147 280 148 278 149 274 150 265 152 257 153 250 154 244 155 234 156 225 156 218 157 215 158 209 162 205 165 199 170 185 177 173 182 166 184 164 185 160 191 160 194 152 198 146 202 145 206 144 208 146 209 140 212 137 213 131 219 130 221 128 222 124 226 120 228 112 236 107 238 105 241 102 248 100 256 99 259 99 262 98 266 98 286 96 287 94 289 94 292 90 295 90 298 89 300 87 302 86 307 86 314 83 320 82 326 82 330 80 333 78 338 78 348 76 352 76 358 75 364 74 368 73 371 72 373 71 376 70 378 70 384 69 388 68 391 63 404 56 414 46 423 36 436 32 445 30 448 28 452 27 458 25 460 24 463 22 464 20 468 20 475 19 477 19 481 18 487 18 490 16 492 16 495 14 496 12 498 12 502 11 506 10 508 8 510 5 512 4 514 4 529 7 530 11 532 14 533 18 535 18 538 20 539 21 541 22 544 24 546 30 546 34 548 40 548 44 550 47 551 53 551 55 552 61 552 62 550 68 548 73 546 78 542 83 533 87 528 90 525 94 520 102 513 114 508 120 504 125 500 129 493 134 487 139 483 145 481 150 478 158 476 170 468 175 464 178 463 181 461 184 460 186 459 191 459 198 457 208 455 215 452 224 444 230 442 238 440 246 440 252 438 275 438 278 436 324 436 328 437 334 437 338 439 355 439 357 440 359 442 360 444 363 445 365 447 367 448 370 448 373 449 375 450 378 450 380 449 383 449 385 448 388 448 390 446 392 445 394 446 397 446 401 444 404 444 406 448 408 449 408 452 412 454 414 456 414 462 416 464 426 464 427 462 430 462 432 464 434 463 435 465 435 468 438 474 439 477 440 479 441 482 442 484 444 486 447 486 448 488 450 489 453 489 455 490 456 492 460 494 463 494 466 495 482 495 484 496 487 496 489 497 492 497 496 498 534 498 538 496 541 497 545 498 548 498 550 499 553 499 554 501 560 504 569 504 573 502 574 500 577 500 577 488 578 486 578 483 579 481 579 478 580 475 582 474 583 472 586 470 588 468 592 466 594 464 597 463 598 461 600 460 601 457 604 456 608 454 614 448 616 445 618 443 621 442 622 440 624 438 626 434 628 432 631 430 634 429 636 428 638 426 640 425 644 418 645 415 646 413 650 411 650 408 652 407 653 404 657 401 658 396 660 392 662 389 664 387 665 384 666 380 668 376 670 374 672 373 674 370 676 366 679 365 681 364 683 362 686 361 688 360 690 358 691 355 693 354 694 352 694 349 697 343 699 342 700 340 702 339 703 336 702 334 702 322 701 320 699 324 696 324 690 327 687 327 685 328 680 338 676 338 672 340 663 340 659 338 652 338 650 339 647 340 645 341 642 347 638 348 632 348 630 349 624 349 623 351 621 352 620 354 618 355 617 357 611 360 605 362 599 362 595 364 588 364 592 362 595 362 596 360 596 356 598 352 600 351 603 345 603 342 598 332 598 329 594 327 593 325 590 324 587 318 585 317 582 316 570 316 567 315 564 315 562 314 556 314 555 312 552 312 548 311 545 311 543 310 537 310 535 309 532 309 530 308 527 308 524 309 522 308 513 308 511 309 508 309 506 310 502 310 500 309 498 310 481 310 479 309 459 309 457 310 454 310 452 312 449 311 445 311 443 310 429 310 427 308 424 307 422 306 413 306 411 308 404 308 403 310 400 310 396 309 395 311 391 313 388 313 386 312 367 312 366 314 354 314 352 313 347 313 345 312 341 308 338 302 336 300 334 296 334 293 333 290 332 288 329 286 327 282 327 279 328 277 328 274 333 264 336 264 339 270 348 270 352 268 354 266 358 264 361 264 363 263 366 263 368 262 371 262 372 260 372 256 374 252 373 250 370 250 368 248 368 242 367 240 367 227 360 227 359 229 357 230 354 230 352 226 348 224 345 224 344 222 346 221 349 215 351 214 353 212 359 212 363 210 364 208 366 207 366 204 372 198 376 196 377 194 379 192 381 191 382 189 390 185 391 182 395 180 398 174 402 172 405 171 407 170 410 170 414 168 419 158 421 157 422 155 424 154 424 150 [[Amerika Serikat]]
poly 999 65 999 185 998 187 994 188 991 189 975 189 972 190 970 191 966 191 964 192 961 193 957 195 953 196 949 200 945 202 943 204 942 207 939 207 936 208 932 209 928 211 925 213 923 216 922 218 920 219 918 221 915 222 911 223 908 224 906 225 905 227 902 228 899 228 897 229 882 229 880 231 878 232 875 234 871 233 869 232 865 232 863 231 860 231 856 229 856 222 855 220 853 218 851 217 850 212 848 209 846 208 843 204 841 201 841 198 839 197 838 195 838 188 835 182 835 178 834 176 831 173 828 169 823 165 821 163 818 158 818 154 816 152 812 144 811 140 809 136 808 132 808 129 807 127 808 125 807 122 805 118 805 115 809 107 811 106 811 103 813 101 817 99 823 99 825 98 834 98 837 97 840 97 848 93 851 93 852 91 856 89 859 89 863 87 867 87 869 86 872 86 874 85 880 85 884 83 890 83 892 82 895 81 897 80 903 80 906 79 908 76 912 74 915 74 917 73 920 73 922 72 931 72 933 71 951 71 954 70 984 70 986 69 998 69 [[Greenland]]
</imagemap><noinclude>
[[Kategori:Peta]]
{{Worldimagemap/subpagedoc}}
</noinclude>
p6mplcyx3pbp5o6kj6tng4bpbbdegou
Templat:Worldimagemap/Southamericaimagemap
10
577
2438
2437
2024-12-03T14:15:58Z
Jon Harald Søby
20
1 revisi diimpor
2437
wikitext
text/x-wiki
<imagemap>
File:Map of South America.png|right|350px
desc none
poly 49 62 52 60 53 58 55 57 58 57 64 54 66 50 66 41 62 39 56 37 54 36 52 32 37 32 33 30 30 29 28 28 25 28 22 27 18 26 16 22 12 20 11 18 9 17 8 19 8 41 9 43 10 46 10 58 12 59 12 65 14 64 36 64 37 62 40 62 42 61 46 60 49 60 [[Amerika Tengah]]
poly 266 545 270 543 274 542 278 542 280 541 291 541 294 540 323 540 325 541 330 541 333 542 340 542 344 544 346 546 348 547 349 550 349 553 350 555 350 568 320 568 316 567 312 567 308 566 304 566 300 564 296 564 288 562 274 562 272 563 269 564 261 564 258 563 255 563 253 562 252 559 252 553 260 549 262 547 266 545 [[Kepulauan Falkland]]
poly 278 408 272 405 271 403 269 402 266 401 266 398 264 397 263 395 262 392 262 389 258 387 256 383 250 383 247 382 245 381 243 377 241 376 240 374 234 371 233 369 235 367 238 361 242 359 244 356 252 352 253 350 253 347 254 345 255 342 255 339 251 337 249 331 249 322 247 321 244 321 243 318 241 314 237 312 234 310 233 308 231 307 229 308 223 308 221 307 219 303 219 294 218 292 218 289 216 285 216 282 217 280 217 277 219 276 218 274 219 272 217 268 215 266 213 265 212 263 212 260 211 258 209 257 203 257 199 255 197 251 195 250 195 244 196 242 195 239 193 238 192 236 186 233 183 233 180 232 176 230 174 226 171 225 163 223 161 220 159 218 155 214 155 202 154 200 153 202 151 203 145 203 141 205 140 207 138 208 136 212 134 213 131 212 119 212 117 213 115 209 115 203 116 201 114 200 108 203 106 202 105 200 103 199 99 195 95 193 93 189 93 186 91 182 91 176 93 175 96 175 96 172 99 166 99 163 100 161 108 157 114 157 119 147 120 144 122 140 122 125 119 123 119 120 119 118 119 115 121 114 123 110 119 107 120 104 126 105 132 105 136 103 138 101 139 99 140 101 140 104 143 110 146 110 147 112 149 111 152 111 154 112 158 110 160 106 163 106 166 105 167 103 169 102 167 100 165 99 166 97 164 93 162 92 158 84 158 81 162 85 164 86 167 86 171 88 174 88 175 86 181 83 184 83 186 82 188 80 189 78 190 80 192 81 193 83 195 84 198 84 196 88 194 89 193 91 193 95 194 97 196 103 197 105 199 106 200 108 203 108 209 105 218 105 220 104 221 102 223 101 224 99 226 98 235 98 236 100 239 99 241 98 243 99 244 101 247 100 247 97 253 94 258 84 258 78 261 78 263 77 265 79 267 80 269 82 272 84 274 85 278 85 282 87 282 90 283 92 285 97 291 101 300 104 310 109 319 119 322 121 326 123 330 123 336 126 342 130 345 131 351 132 361 134 365 136 368 138 370 141 373 143 376 144 378 145 384 147 387 151 390 157 392 160 390 161 390 208 387 209 387 248 386 251 386 262 385 266 380 267 380 286 379 290 379 293 378 298 374 306 374 309 371 314 369 315 366 317 364 319 360 325 358 326 355 328 354 330 352 331 351 333 349 334 348 336 347 339 339 343 336 344 333 344 329 346 327 348 323 349 320 349 318 350 317 352 314 353 313 383 311 384 308 384 305 386 303 387 302 389 300 390 298 392 295 394 289 397 287 401 283 403 282 405 278 407 [[Brasil]]
poly 219 306 219 294 218 292 217 289 207 284 206 282 204 281 202 282 201 284 198 284 196 285 189 285 187 289 187 292 185 296 185 308 188 314 192 316 193 318 195 320 198 320 206 324 207 326 209 327 212 328 216 330 219 330 223 332 224 334 224 343 223 345 223 348 221 349 223 350 226 350 229 351 232 351 234 352 237 352 241 350 244 350 248 348 248 345 250 341 250 335 249 333 249 330 248 328 248 322 246 321 244 322 242 321 239 315 238 312 237 310 233 308 230 308 228 307 225 307 224 305 218 305 [[Paraguay]]
poly 156 204 156 219 158 223 160 224 163 224 165 225 168 225 174 228 175 230 179 232 182 232 186 234 189 235 195 238 196 240 197 243 197 246 195 250 198 256 200 258 209 258 212 264 213 267 214 269 216 270 219 276 219 279 217 283 217 286 216 288 215 286 213 284 212 282 210 281 207 281 205 280 202 281 199 281 197 282 196 284 194 285 193 287 187 290 186 292 186 298 185 300 185 303 184 305 181 305 173 309 172 311 170 309 166 307 163 307 161 306 158 306 156 307 152 311 151 313 150 311 148 310 143 300 143 297 142 295 140 294 140 291 138 287 138 284 137 282 135 280 134 278 134 272 133 270 131 269 131 266 130 264 130 261 132 259 133 257 130 251 130 248 129 246 129 240 131 239 131 233 130 231 130 225 132 221 128 219 127 217 127 214 125 212 128 213 131 213 134 212 135 210 138 210 142 208 142 205 143 203 146 203 148 202 151 202 153 201 156 201 [[Bolivia]]
poly 253 418 251 417 248 417 247 415 243 413 237 413 235 412 233 410 233 407 231 406 231 394 229 390 229 384 231 380 231 377 233 376 239 376 241 377 243 381 245 382 248 383 250 384 253 384 259 387 262 393 264 394 265 396 267 398 267 404 269 405 272 406 274 407 274 410 273 412 271 414 269 415 266 415 256 420 252 418 [[Uruguay]]
poly 252 586 246 583 242 583 240 582 237 581 231 581 227 579 226 577 216 572 216 569 214 567 213 565 211 564 210 562 208 561 206 557 204 556 197 556 193 558 190 558 185 548 181 546 178 545 176 544 175 542 173 541 171 537 171 534 172 532 173 534 176 528 176 525 174 521 174 515 173 511 173 508 171 504 170 501 168 497 171 497 170 495 168 494 166 490 166 487 162 485 160 483 160 477 159 475 158 472 157 470 157 467 155 463 155 460 154 458 154 452 153 450 154 448 154 445 155 443 153 442 152 440 152 437 149 431 149 428 151 424 151 418 150 416 150 410 151 407 151 401 149 400 148 398 148 395 145 389 140 387 138 386 141 385 142 383 142 373 141 371 141 359 144 353 144 350 145 348 149 346 147 342 147 336 146 334 146 325 152 325 154 322 155 320 155 317 152 316 151 314 153 310 155 309 156 307 158 306 161 306 163 307 166 307 170 309 171 311 173 312 173 309 177 307 186 307 188 311 190 312 191 315 193 316 194 318 197 318 199 319 200 321 216 329 219 329 220 331 222 332 225 338 223 342 223 345 221 349 225 351 228 351 232 353 235 353 238 352 248 347 249 345 248 343 249 336 254 337 255 339 255 345 254 348 248 351 248 354 242 357 241 359 239 360 239 363 236 369 236 372 235 374 232 374 232 377 231 380 230 382 230 391 232 395 232 407 233 409 235 410 236 412 240 414 243 414 245 415 246 417 248 418 249 420 251 421 257 433 257 439 256 441 254 443 254 446 253 448 247 451 244 451 242 453 239 454 237 456 233 458 230 458 226 460 224 464 224 476 223 478 222 481 221 483 217 485 216 487 216 490 215 492 215 504 217 506 218 508 219 511 221 513 224 514 226 516 226 519 227 521 227 524 229 526 228 528 228 537 227 539 227 545 225 546 225 549 224 551 224 554 226 558 230 560 232 562 233 564 235 565 236 567 238 568 241 569 244 569 248 571 251 577 251 580 [[Argentina]]
poly 194 590 203 590 205 591 208 591 210 592 213 592 215 593 218 593 220 594 238 594 239 592 239 589 240 587 240 584 239 582 237 581 235 582 233 581 230 581 224 578 222 574 220 571 219 569 217 568 215 564 212 562 210 561 209 559 207 558 204 558 202 557 196 557 194 558 191 558 190 556 188 554 187 552 187 549 186 547 180 547 178 546 177 544 176 541 175 539 173 538 172 536 172 533 174 532 175 530 175 524 173 523 175 519 175 513 172 513 172 510 171 508 171 502 172 500 170 499 167 499 166 497 172 497 170 496 169 494 166 493 166 490 165 488 162 487 160 486 159 484 159 481 157 477 157 474 158 472 158 469 161 469 159 468 155 460 155 457 154 455 153 452 153 440 151 439 151 433 149 429 149 426 151 425 152 423 152 420 150 419 150 410 151 408 151 402 150 400 148 399 148 396 147 393 147 390 143 388 142 386 142 377 143 375 143 372 141 368 141 365 143 361 143 355 144 353 144 350 148 348 148 345 147 343 147 337 146 335 146 326 147 324 150 324 152 323 153 321 155 320 154 318 152 317 151 315 151 312 149 311 146 305 146 302 144 300 139 290 137 283 134 274 134 271 130 269 128 270 127 272 125 273 123 277 123 280 121 286 121 292 120 294 120 297 118 298 118 308 117 318 113 328 113 335 112 345 112 350 109 365 109 368 108 370 107 373 107 376 106 378 106 381 108 382 109 385 111 386 113 388 114 390 114 417 113 419 113 422 112 424 110 425 108 427 108 519 109 522 112 528 114 530 116 531 118 535 120 537 123 538 126 540 128 541 131 544 132 547 134 550 138 552 141 555 143 559 145 561 147 562 149 564 151 565 156 567 157 569 169 575 173 576 176 577 180 579 183 585 187 587 190 587 194 589 [[Chili]]
poly 261 79 259 80 257 84 253 86 251 90 251 93 248 99 246 100 243 100 241 99 232 99 234 97 236 96 236 93 237 91 237 88 235 84 235 75 237 71 239 70 242 64 [[Guiana Perancis]]
poly 219 63 221 62 223 63 233 63 235 64 238 64 238 73 236 74 235 76 235 79 237 83 237 98 234 98 232 99 229 98 226 98 224 99 223 101 223 104 222 102 214 98 212 94 212 91 210 90 209 88 209 84 210 82 210 79 214 77 216 73 216 70 217 68 217 65 218 63 [[Suriname]]
poly 202 44 201 46 199 47 196 47 193 53 193 56 190 62 188 63 186 67 186 73 188 74 189 76 189 79 190 81 196 81 198 85 198 88 194 90 193 92 193 101 197 103 197 106 201 108 203 107 204 105 207 105 209 104 219 104 221 103 217 101 216 100 215 97 213 93 212 91 210 90 209 88 209 79 212 77 214 76 216 72 216 60 217 58 216 55 215 53 207 49 206 47 [[Guyana]]
poly 116 278 120 276 126 276 128 272 130 270 130 261 132 257 132 254 129 248 129 242 131 238 131 232 130 230 130 221 129 219 127 218 125 216 123 212 121 211 119 212 118 214 117 212 117 209 116 207 116 204 115 202 115 202 113 203 112 205 108 203 105 203 102 197 99 197 97 198 97 192 95 188 93 185 92 183 92 177 96 175 97 173 97 170 96 167 97 164 100 164 104 162 104 159 105 157 112 157 114 156 115 154 113 150 113 147 115 146 116 144 114 143 113 141 111 140 109 138 106 138 104 139 101 139 99 140 95 138 94 136 92 135 92 132 91 129 90 127 86 125 85 123 79 120 76 120 80 122 80 125 78 129 76 130 75 132 73 133 70 139 66 141 61 145 59 149 58 151 55 152 52 158 50 159 48 155 46 154 43 154 43 151 41 150 40 148 38 147 37 149 29 153 28 155 27 158 27 168 28 170 29 173 30 175 30 179 29 181 29 184 30 186 32 192 33 194 33 198 34 202 34 205 35 207 37 208 38 213 39 217 42 221 43 223 44 227 46 229 49 235 51 240 54 246 62 250 66 253 68 256 70 260 72 261 76 262 79 263 84 264 87 266 95 270 97 272 99 273 102 272 105 272 109 274 110 276 112 277 115 277 [[Peru]]
poly 12 116 18 114 20 113 23 113 26 112 28 111 35 111 38 110 41 110 43 109 59 109 63 111 65 115 69 117 75 117 79 118 81 119 81 122 79 124 78 127 77 129 75 130 73 134 71 136 70 138 68 139 63 142 58 147 57 149 57 152 55 156 53 158 52 160 50 159 50 156 47 155 41 155 40 153 40 147 38 146 37 144 34 143 23 143 19 142 13 140 11 139 11 136 10 133 10 130 9 128 9 122 10 119 12 115 [[Ekuador]]
poly 58 60 60 59 65 49 65 46 66 44 68 42 70 38 71 40 71 37 73 33 76 32 78 31 79 29 81 28 82 26 86 24 89 18 91 17 93 15 98 15 100 14 103 14 111 10 114 9 116 10 117 12 117 15 116 17 114 19 111 25 110 23 108 22 106 23 104 27 102 28 100 32 100 35 98 39 98 42 100 46 100 52 101 54 103 55 105 59 107 60 116 60 117 62 121 64 124 64 128 66 131 66 135 68 136 70 136 76 137 78 137 96 140 97 143 97 137 100 135 104 126 104 124 105 117 105 119 106 120 108 122 109 123 111 122 113 119 113 118 115 118 118 119 120 119 123 121 124 122 126 122 141 117 151 113 153 113 150 115 146 117 145 116 143 112 141 111 139 109 138 106 138 105 140 99 140 95 138 94 136 92 135 92 132 90 128 86 126 85 124 83 123 81 119 79 118 76 118 74 117 71 117 69 116 67 117 61 114 60 112 54 109 52 107 51 105 49 104 48 102 48 90 49 88 50 85 52 84 54 80 56 79 54 78 54 75 55 73 55 70 56 68 58 67 60 63 60 60 [[Kolombia]]
poly 120 11 119 13 119 16 109 21 106 22 104 23 100 31 100 34 98 38 98 41 101 47 101 50 102 54 103 56 106 56 108 57 111 57 113 58 112 60 115 60 117 61 118 63 124 66 127 66 129 67 135 67 136 70 136 76 138 78 139 80 137 84 137 87 139 91 135 93 136 95 140 97 140 109 146 112 149 112 151 111 153 112 159 109 160 107 162 106 163 104 165 103 168 103 169 101 167 100 164 100 164 91 163 89 161 88 159 84 159 81 160 83 162 84 163 86 165 87 168 87 170 88 173 88 175 87 178 81 184 81 188 79 189 77 189 74 188 72 186 71 186 65 188 64 191 58 191 55 192 53 194 52 195 50 199 48 200 46 200 43 194 40 193 38 189 36 186 36 184 35 182 31 182 28 181 26 179 25 163 25 161 24 151 24 149 23 146 23 144 22 141 22 139 21 136 21 130 18 128 16 122 13 [[Venezuela]]
</imagemap><noinclude>
[[Kategori:Peta]]
{{Worldimagemap/subpagedoc}}
</noinclude>
6smyqg5da3i6myw163d2drry3rzhg46
Templat:Yard
10
578
2440
2439
2024-12-03T14:15:59Z
Jon Harald Søby
20
1 revisi diimpor
2439
wikitext
text/x-wiki
{{convert|{{{1|3}}}|yard|m|abbr=on}}<noinclude>
{{documentation}}
[[Kategori:Templat format dan fungsi]]
[[en:voy:Template:Yard]]
</noinclude>
9qhyumdpwivtsiyqjdntfwoof7gsw9b
Templat:ZAR
10
579
2442
2441
2024-12-03T14:15:59Z
Jon Harald Søby
20
1 revisi diimpor
2441
wikitext
text/x-wiki
{{currency|ZAR|{{{1|}}}}}<noinclude>
{{Individual currency template documentation}}
[[Kategori:Templat mata uang individual]]
[[en:voy:Template:ZAR]]
</noinclude>
od609pstj973p2xat398aaspci4qpsz
Templat:Bot
10
580
2453
2452
2024-12-03T14:15:59Z
Jon Harald Søby
20
4 revisi diimpor
2452
wikitext
text/x-wiki
{{Ombox
|image = [[Berkas:Crystal Clear action run.png|50px]]
|text = '''Akun pengguna ini adalah bot yang dioperasikan oleh [[:{{{site|id}}}:Pengguna:{{{1}}}|{{{1}}}]] ([[:{{{site|id}}}:Pembicaraan pengguna:{{{1}}}|bicara]]).'''
Ini bukan boneka kaus kaki, melainkan akun otomatis atau semi-otomatis untuk melakukan pengeditan berulang yang akan sangat membosankan jika dilakukan secara manual. Bot disetujui dan saat ini aktif.
<br />
<small>''Administrator: jika bot ini tidak berfungsi atau menyebabkan kerusakan, tolong [{{fullurl:Special:Blockip|wpBlockAddress={{PAGENAMEE}}&wpBlockExpiry=indefinite&wpAnonOnly=0&wpEnableAutoblock=0&wpCreateAccount=0&wpBlockReason=Bot%20malfunctioning:%20}} Blokir itu].''</small>
}}{{{category|<includeonly>[[Kategori:Bot Wikiwisata]]</includeonly>}}}<noinclude>{{Dokumentasi}}
{{INTERWIKI|Q4299475}}
</noinclude>
ocar85ihdu00ym6ep5snjl2tgeszw19
Templat:Currency
10
581
2470
2469
2024-12-03T14:15:59Z
Jon Harald Søby
20
3 revisi diimpor
2467
wikitext
text/x-wiki
{{#invoke:Exchangerate |currencyWithConversions |currency={{{1|}}} |amount={{{2|}}}}}<noinclude>[[en:voy:Template:Currency]]</noinclude>
ctxgktl85eu542dvow1beh969qzmk32
Templat:Dok
10
582
2491
2490
2024-12-03T14:15:59Z
Jon Harald Søby
20
3 revisi diimpor
2490
wikitext
text/x-wiki
#REDIRECT [[Templat:Documentation]]
tc5m0865s58fs306zoic5gzkracpb48
Templat:Mbok
10
583
2553
2552
2024-12-03T14:16:00Z
Jon Harald Søby
20
2 revisi diimpor
2552
wikitext
text/x-wiki
{{
{{namespace detect
| demospace = {{{demospace|}}}
| main =ambox
| talk =tmbox
| file =imbox
| category =ombox
| other =ombox
}}
| type = {{{type|}}}
| image = {{{image|}}}
| imageright = {{{imageright|}}}
| class = {{{class|}}}
| style = {{{style|}}}
| textstyle = {{{textstyle|}}}
| text = {{{text}}}
| small = {{{small|}}}
| smallimage = {{{smallimage|}}}
| smallimageright = {{{smallimageright|}}}
| smalltext = {{{smalltext|}}}
| subst = {{{subst|}}}
| date = {{{date|}}}
| name = {{{name|}}}
}}
<noinclude>{{Dokumentasi}}</noinclude>
t4y6j6nrd93e5mknjwfecenp5cglyh6
Templat:Talk archive
10
584
2619
2618
2024-12-03T14:16:02Z
Jon Harald Søby
20
1 revisi diimpor
2618
wikitext
text/x-wiki
{{tmbox
| image = [[Berkas:Replacement filing cabinet.svg|50x40px|link=]]
| text = Ini adalah '''arsip''' diskusi sebelumnya. '''Jangan mengedit konten halaman ini.''' Jika Anda ingin memulai diskusi baru atau menghidupkan kembali diskusi lama, silakan lakukan di halaman pembicaraan saat ini.
}}<noinclude>{{Dokumentasi}}</noinclude>
bvab0nsncxseu6kpkyy24cx15hbblxn
Templat:·
10
585
2647
2646
2024-12-03T14:16:03Z
Jon Harald Søby
20
1 revisi diimpor
2646
wikitext
text/x-wiki
<span style="font-weight:bold;"> ·</span>
n9zgv934xhh2oa91t79pzjun3qbv935
Templat:INTERWIKI
10
586
2656
2655
2024-12-03T14:16:31Z
Jon Harald Søby
20
8 revisi diimpor
2655
wikitext
text/x-wiki
<includeonly>__EXPECTED_UNCONNECTED_PAGE__<p id="wminc-interwiki" data-wikidata-id="{{{1|{{{qid|}}}}}}">{{#invoke:IncubatorInterwiki{{#ifeq:{{SERVERNAME}}|incubator.wikimedia.org||EXPORT}}|interwiki|qid={{{1|{{{qid|}}}}}}}}</p></includeonly><noinclude>
{{documentation}}
</noinclude>
8lcerbshhnt6eq9bvcfpd9jyjwy31ht
Modul:Arguments
828
589
2664
2663
2024-12-03T14:16:32Z
Jon Harald Søby
20
2 revisi diimpor
2663
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(
"nilai yang salah pada opsi '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(
'tidak dapat menulis pada tabel inti argumen "'
.. 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
9h22dv65ooxvaquxjafiak6gpbtcr5a
Modul:BASICPAGENAME
828
590
2666
2665
2024-12-03T14:16:32Z
Jon Harald Søby
20
1 revisi diimpor
2665
Scribunto
text/plain
local i = {}
function i.BASICPAGENAME(frame)
local basicpagename = frame:getParent().args[1] or '';
if basicpagename == '' then
basicpagename = mw.title.getCurrentTitle().subpageText;
end
basicpagename = mw.ustring.gsub(basicpagename, '%s%(.*%)', '');
basicpagename = mw.ustring.gsub(basicpagename, '.*%/', '');
return basicpagename;
end
return i;
pus57krto2my2l13uw1kivvn14f9wlh
Modul:Calendar
828
591
2668
2667
2024-12-03T14:16:32Z
Jon Harald Søby
20
1 revisi diimpor
2667
Scribunto
text/plain
--[[
__ __ _ _ ____ _ _
| \/ | ___ __| |_ _| | ___ _ / ___|__ _| | ___ _ __ __| | __ _ _ __
| |\/| |/ _ \ / _` | | | | |/ _ (_) | / _` | |/ _ \ '_ \ / _` |/ _` | '__|
| | | | (_) | (_| | |_| | | __/_| |__| (_| | | __/ | | | (_| | (_| | |
|_| |_|\___/ \__,_|\__,_|_|\___(_)\____\__,_|_|\___|_| |_|\__,_|\__,_|_|
Maintainers:
* Jarekt
]]
local p = {}
-- Convert "Julian day number" (jdn) to a calendar date
-- "gregorian" is a 1 for gregorian calendar and 0 for Julian
-- based on https://en.wikipedia.org/wiki/Julian_day#Converting_Julian_or_Gregorian_calendar_date_to_Julian_day_number
function p._jdn2date(jdn, gregorian)
local f, e, g, h, year, month, day
f = jdn + 1401
if gregorian>0 then
f = f + math.floor((math.floor((4*jdn + 274277) / 146097) * 3) / 4) - 38
end
e = 4*f + 3
g = math.floor(math.fmod(e, 1461) / 4)
h = 5*g + 2
day = math.floor(math.fmod (h,153) / 5) + 1
month = math.fmod (math.floor(h/153) + 2, 12) + 1
year = math.floor(e/1461) - 4716 + math.floor((14 - month) / 12)
-- If year is less than 1, subtract one to convert from a zero based date system to the
-- common era system in which the year -1 (1 B.C.E) is followed by year 1 (1 C.E.).
if year < 1 then
year = year - 1
end
return string.format('%04i-%02i-%02i', year, month, day)
end
-- Convert calendar date to "Julian day number" (jdn)
-- "gregorian" is a 1 for gregorian calendar and 0 for Julian
-- based on https://en.wikipedia.org/wiki/Julian_day#Converting_Julian_or_Gregorian_calendar_date_to_Julian_day_number
-- explanation based on http://www.cs.utsa.edu/~cs1063/projects/Spring2011/Project1/project1.html
function p._date2jdn(ISOdate, gregorian)
local year, month, day = ISOdate:match( "(-?%d%d%d%d)-(%d%d)-(%d%d)" )
if not year then
return nil
elseif tonumber(year) < 0 then
-- If year is less than 0, add one to convert from the common era system in which
-- the year -1 (1 B.C.E) is followed by year 1 (1 C.E.) to a zero based date system
year = year + 1
end
local a, b, c, d, y, m
a = math.floor((14-month) / 12) -- will be 1 for January and February, and 0 for other months.
y = year + 4800 - a -- years since year –4800
m = month + 12*a - 3 -- month number where 10 for January, 11 for February, 0 for March, 1 for April
c = math.floor((153*m + 2)/5) -- number of days since March 1
if gregorian>0 then
b = math.floor(y/4) - math.floor(y/100) + math.floor(y/400) -- number of leap years since y==0 (year –4800)
d = 32045 -- offset so the result will be 0 for January 1, 4713 BCE
else
b = math.floor(y/4) -- number of leap years since y==0 (year –4800)
d = 32083 -- offset so the result will be 0 for January 1, 4713 BCE
end
return day + c + 365*y + b - d
end
-- Convert a date from Gregorian to Julian calendar
function p.Gregorian2Julian(frame)
local JDN = p._date2jdn(frame.args[1], 1)
if JDN then
return p._jdn2date(JDN, 0)
else
return "Error parsing input date: " .. frame.args[1]
end
end
-- Convert a date from Julian to Gregorian calendar
function p.Julian2Gregorian(frame)
local JDN = p._date2jdn(frame.args[1], 0)
if JDN then
return p._jdn2date(JDN, 1)
else
return "Error parsing input date: " .. frame.args[1]
end
end
-- Return day of week based on gregorian date. Mon->1, Tue->2, ..., Sun->7
function p.DayOfWeek(frame)
local JDN = p._date2jdn(frame.args[1], 1)
local day = math.fmod(JDN, 7) + 1
if day then
local LUT = { "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday" }
return LUT[day]
else
return "Error parsing input date: " .. frame.args[1]
end
end
-- Convert calendar date to "Julian day number" (jdn)
function p.date2jdn(frame)
return p._date2jdn(frame.args[1] or os.date('%F'), frame.args[2] or 1)
end
return p
bsl2o34pcufr1n8bqsp1faqns4m5t17
Modul:Clickable button 2
828
592
2672
2671
2024-12-03T14:16:32Z
Jon Harald Søby
20
3 revisi diimpor
2670
Scribunto
text/plain
-- This module implements {{Clickable button 2}}.
local yesno = require('Module:Yesno')
local p = {}
function p.main(frame)
local args = require('Module:Arguments').getArgs(frame, {
wrappers = 'Template:Clickable button 2'
})
return p.luaMain(args)
end
function p.luaMain(args)
if not args[1] and not args.url then
return ''
end
local data = p.makeLinkData(args)
local link = p.renderLink(data)
local trackingCategories = p.renderTrackingCategories(args)
return link .. trackingCategories
end
function p.makeLinkData(args)
local data = {}
-- Get the link and display values, and find whether we are outputting a
-- wikilink or a URL.
if args.url then
data.isUrl = true
data.link = args.url
if args[1] then
data.display = args[1]
else
data.display = args.url
end
else
data.isUrl = false
data.link = args[1]
if args[2] then
data.display = args[2]
else
data.display = args[1]
end
end
-- Classes
local class = args.class and args.class:lower()
data.classes = {}
if class == 'ui-button-green'
or class == 'ui-button-blue'
or class == 'ui-button-red'
then
table.insert(
data.classes,
'submit ui-button ui-widget ui-state-default ui-corner-all'
.. ' ui-button-text-only ui-button-text'
)
else
table.insert(data.classes, 'mw-ui-button')
end
if class then
table.insert(data.classes, class)
end
-- Styles
do
--[[
-- Check whether we are on the same page as we have specified in
-- args[1], but not if we are using a URL link, as then args[1] is only
-- a display value. If we are currently on the page specified in
-- args[1] make the button colour darker so that it stands out from
-- other buttons on the page.
--]]
local success, linkTitle, currentTitle
if not data.isUrl then
currentTitle = mw.title.getCurrentTitle()
success, linkTitle = pcall(mw.title.new, args[1])
end
if success
and linkTitle
and mw.title.equals(currentTitle, linkTitle)
then
if class == 'ui-button-blue'
or class == 'mw-ui-progressive'
or class == 'mw-ui-constructive'
then
data.backgroundColor = '#2962CB'
elseif class == 'ui-button-green' then
data.backgroundColor = '#008B6D'
elseif class == 'ui-button-red' or class == 'mw-ui-destructive' then
data.backgroundColor = '#A6170F'
else
data.backgroundColor = '#CCC'
data.color = '#666'
end
end
-- Add user-specified styles.
data.style = args.style
end
return data
end
function p.renderLink(data)
-- Render the display span tag.
local display
do
local displaySpan = mw.html.create('span')
for i, class in ipairs(data.classes or {}) do
displaySpan:addClass(class)
end
displaySpan
:css{
['background-color'] = data.backgroundColor,
color = data.color
}
if data.style then
displaySpan:cssText(data.style)
end
displaySpan:wikitext(data.display)
display = tostring(displaySpan)
end
-- Render the link
local link
if data.isUrl then
link = string.format('[%s %s]', data.link, display)
else
link = string.format('[[%s|%s]]', data.link, display)
end
return string.format('<span class="plainlinks">%s</span>', link)
end
function p.renderTrackingCategories(args)
if yesno(args.category) == false then
return ''
end
local class = args.class and args.class:lower()
if class == 'ui-button-green'
or class == 'ui-button-blue'
or class == 'ui-button-red'
then
return '[[Kategori:Pages using old style ui-button-color]]'
else
return ''
end
end
return p
rh84chf0ck4whfeazt6hk64559s0u21
Modul:Climate data
828
593
2675
2674
2024-12-03T14:16:32Z
Jon Harald Søby
20
2 revisi diimpor
2673
Scribunto
text/plain
-- Implement [[Templat:Climate data]].
local precision = require('Module:Math')._precision
local function stripToNil(text)
-- If text is a non-empty string, return its trimmed content.
-- Otherwise, return nothing (text is an empty string or is not a string).
if type(text) == 'string' then
return text:match('(%S.-)%s*$')
end
end
local function isAny(args, suffix)
local months = { 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec' }
for _, month in ipairs(months) do
if stripToNil(args[month .. suffix]) then
return true
end
end
end
local function makeLabel(args, is_first, base, what)
local first
if isAny(args, ' ' .. what .. ' cm') then
first = 'cm'
else
if isAny(args, ' ' .. what .. ' mm') then
first = 'mm'
else
first = (what == 'snow' or
precision(args['Jan ' .. what .. ' inch'] or '0') < 1)
and 'cm'
or 'mm'
end
end
local second = 'inches'
if not stripToNil(args['metric first']) then
first, second = second, first
end
if is_first then
if stripToNil(args['single line']) then
first = first .. ' (' .. second .. ')'
end
else
first = second
end
return base .. ' ' .. first
end
local function makeSources(frame, args)
local source1 = stripToNil(args.source) or stripToNil(args['source 1'])
local source2 = stripToNil(args['source 2']) or stripToNil(args['source2'])
local result = '|-\n|colspan="14" style="text-align:center;font-size:95%;"|'
local text
if source1 or source2 then
if source1 and source2 then
text = 'Source #1: ' .. source1 .. '\n' .. result .. 'Source #2: ' .. source2
else
text = 'Source: ' .. (source1 and source1 or source2)
end
else
text = frame:expandTemplate({ title = 'citation needed', args = {date = stripToNil(args.date)} })
end
return result .. text .. '\n|}'
end
local function getDefinitions(frame, args)
-- Return a list of tables or strings that define each row.
local navbar = require('Module:Navbar')._navbar
local function _if(parm, a, b)
return stripToNil(args[parm]) and a or b or ''
end
local function _ifset(parm, a)
return stripToNil(args[parm]) and args[parm] or a
end
local function _ifany(suffix)
return isAny(args, suffix)
end
return {
----------- HEADER ----------
'{| class="wikitable ' .. _if('open', '', 'mw-collapsible' .. _if('collapsed', ' mw-collapsed')) ..
'" style="text-align: center; line-height: 1.2em; width: auto; margin:' ..
_ifset('margin', 'auto') .. ';"' ..
_if('open',
'\n|+Climate data',
'\n|-' ..
'\n!colspan="14" style="height: 1.6em; width: 70%;" | ' ..
_if('name',
navbar({'Climate data', args.name, collapsible=1}),
'Climate data'
)
) ..
[=[
|-
!style="width: 16%; height: 1.4em;" |Month
!scope="col" style="width: 4%;" |Jan
!scope="col" style="width: 4%;" |Feb
!scope="col" style="width: 4%;" |Mar
!scope="col" style="width: 4%;" |Apr
!scope="col" style="width: 4%;" |May
!scope="col" style="width: 4%;" |Jun
!scope="col" style="width: 4%;" |Jul
!scope="col" style="width: 4%;" |Aug
!scope="col" style="width: 4%;" |Sep
!scope="col" style="width: 4%;" |Oct
!scope="col" style="width: 4%;" |Nov
!scope="col" style="width: 4%;" |Dec
!scope="col" style="width: 6%; border-left-width:medium" |Year
]=],
{---------- FIRST LINE MAXIMUM HUMIDEX ----------
WANTROW = _ifany(' maximum humidex') and (_ifset('metric first') or _ifset('single line')),
mode = 'basic',
group_name = 'maximum humidex',
color_scheme = _ifset('temperature colour', 't'),
scale_factor = '1',
label = 'Record high humidex',
annual_mode = 'max',
},
{---------- FIRST LINE RECORD HIGH TEMPERATURES ----------
WANTROW = _ifany(' record high C') or _ifany(' record high F'),
mode = 'temperature',
group_name = 'record high',
color_scheme = _ifset('temperature colour', 't'),
scale_factor = '1',
label = 'Record high °' .. _if('metric first', 'C', 'F') .. _if('single line', ' (°' .. _if('metric first', 'F', 'C') .. ')'),
annual_mode = 'max',
},
{---------- FIRST-SECOND LINE AVG MONTHLY MAXIMUM TEMPERATURES ----------
WANTROW = _ifany(' avg record high C') or _ifany(' avg record high F'),
mode = 'temperature',
group_name = 'avg record high',
color_scheme = _ifset('temperature colour', 't'),
scale_factor = '1',
label = 'Mean maximum °' .. _if('metric first', 'C', 'F') .. _if('single line', ' (°' .. _if('metric first', 'F', 'C') .. ')'),
annual_mode = 'max',
},
{---------- FIRST LINE AVERAGE HIGH TEMPERATURES ----------
WANTROW = _ifany(' high C') or _ifany(' high F'),
mode = 'temperature',
group_name = 'high',
color_scheme = _ifset('temperature colour', 't'),
scale_factor = '1',
label = 'Average high °' .. _if('metric first', 'C', 'F') .. _if('single line', ' (°' .. _if('metric first', 'F', 'C') .. ')'),
annual_mode = 'avg',
},
{---------- FIRST LINE DAILY MEAN TEMPERATURES ----------
WANTROW = _ifany(' mean C') or _ifany(' mean F'),
mode = 'temperature',
group_name = 'mean',
color_scheme = _ifset('temperature colour', 't'),
scale_factor = '1',
label = 'Daily mean °' .. _if('metric first', 'C', 'F') .. _if('single line', ' (°' .. _if('metric first', 'F', 'C') .. ')'),
annual_mode = 'avg',
},
{---------- FIRST LINE AVERAGE LOW TEMPERATURES ----------
WANTROW = _ifany(' low C') or _ifany(' low F'),
mode = 'temperature',
group_name = 'low',
color_scheme = _ifset('temperature colour', 't'),
scale_factor = '1',
label = 'Average low °' .. _if('metric first', 'C', 'F') .. _if('single line', ' (°' .. _if('metric first', 'F', 'C') .. ')'),
annual_mode = 'avg',
},
{---------- FIRST-SECOND LINE AVG MONTHLY MINIMUM TEMPERATURES ----------
WANTROW = _ifany(' avg record low C') or _ifany(' avg record low F'),
mode = 'temperature',
group_name = 'avg record low',
color_scheme = _ifset('temperature colour', 't'),
scale_factor = '1',
label = 'Mean minimum °' .. _if('metric first', 'C', 'F') .. _if('single line', ' (°' .. _if('metric first', 'F', 'C') .. ')'),
annual_mode = 'min',
},
{---------- FIRST LINE RECORD LOW TEMPERATURES ----------
WANTROW = _ifany(' record low C') or _ifany(' record low F'),
mode = 'temperature',
group_name = 'record low',
color_scheme = _ifset('temperature colour', 't'),
scale_factor = '1',
label = 'Record low °' .. _if('metric first', 'C', 'F') .. _if('single line', ' (°' .. _if('metric first', 'F', 'C') .. ')'),
annual_mode = 'min',
},
{---------- FIRST LINE MINIMUM WIND CHILL ----------
WANTROW = _ifany(' chill') and (_ifset('metric first') or _ifset('single line')),
mode = 'basic',
group_name = 'chill',
color_scheme = _ifset('temperature colour', 't'),
scale_factor = '1',
label = 'Record low wind chill',
annual_mode = 'min',
},
{---------- FIRST LINE TOTAL PRECIPITATION ----------
WANTROW = _ifany(' precipitation cm') or _ifany(' precipitation mm') or _ifany(' precipitation inch'),
mode = 'precipitation',
group_name = 'precipitation',
color_scheme = _ifset('precipitation colour', 'p'),
date_mode = true,
scale_factor = '1',
prefer_cm = precision(_ifset('Jan precipitation inch', '0')) < 1,
label = makeLabel(args, true, 'Average precipitation', 'precipitation'),
annual_mode = 'sum',
},
{---------- FIRST LINE RAINFALL ----------
WANTROW = _ifany(' rain cm') or _ifany(' rain mm') or _ifany(' rain inch'),
mode = 'precipitation',
group_name = 'rain',
color_scheme = _ifset('rain colour', 'p'),
date_mode = true,
scale_factor = '1',
prefer_cm = precision(_ifset('Jan rain inch', '0')) < 1,
label = makeLabel(args, true, 'Average rainfall', 'rain'),
annual_mode = 'sum',
},
{---------- FIRST LINE SNOWFALL ----------
WANTROW = _ifany(' snow cm') or _ifany(' snow mm') or _ifany(' snow inch'),
mode = 'precipitation',
group_name = 'snow',
prefer_cm = true,
color_scheme = _ifset('snow colour', 'p'),
date_mode = true,
scale_factor = '1',
label = makeLabel(args, true, 'Average snowfall', 'snow'),
annual_mode = 'sum',
},
{---------- SECOND LINE MAXIMUM HUMIDEX ----------
WANTROW = not _ifset('single line') and _ifany(' maximum humidex'),
mode = 'basic',
group_name = 'maximum humidex',
color_scheme = _ifset('temperature colour', 't'),
scale_factor = '1',
label = 'Humidex',
annual_mode = 'max',
second_line = true,
},
{---------- SECOND LINE RECORD HIGH TEMPERATURES ----------
WANTROW = not _ifset('single line') and (_ifany(' record high C') or _ifany(' record high F')),
mode = 'temperature',
group_name = 'record high',
second_line = true,
color_scheme = _ifset('temperature colour', 't'),
scale_factor = '1',
label = 'Record high °' .. _if('metric first', 'F', 'C'),
annual_mode = 'max',
},
{---------- SECOND LINE AVERAGE HIGH TEMPERATURES ----------
WANTROW = not _ifset('single line') and (_ifany(' high C') or _ifany(' high F')),
mode = 'temperature',
group_name = 'high',
second_line = true,
color_scheme = _ifset('temperature colour', 't'),
scale_factor = '1',
label = 'Average high °' .. _if('metric first', 'F', 'C'),
annual_mode = 'avg',
},
{---------- SECOND LINE DAILY MEAN TEMPERATURES ----------
WANTROW = not _ifset('single line') and (_ifany(' mean C') or _ifany(' mean F')),
mode = 'temperature',
group_name = 'mean',
second_line = true,
color_scheme = _ifset('temperature colour', 't'),
scale_factor = '1',
label = 'Daily mean °' .. _if('metric first', 'F', 'C'),
show = _if('metric first', '2', '1'),
annual_mode = 'avg',
},
{---------- SECOND LINE AVERAGE LOW TEMPERATURES ----------
WANTROW = not _ifset('single line') and (_ifany(' low C') or _ifany(' low F')),
mode = 'temperature',
group_name = 'low',
second_line = true,
color_scheme = _ifset('temperature colour', 't'),
scale_factor = '1',
label = 'Average low °' .. _if('metric first', 'F', 'C'),
show = _if('metric first', '2', '1'),
annual_mode = 'avg',
},
{---------- SECOND LINE RECORD LOW TEMPERATURES ----------
WANTROW = not _ifset('single line') and (_ifany(' record low C') or _ifany(' record low F')),
mode = 'temperature',
group_name = 'record low',
second_line = true,
color_scheme = _ifset('temperature colour', 't'),
scale_factor = '1',
label = 'Record low °' .. _if('metric first', 'F', 'C'),
show = _if('metric first', '2', '1'),
annual_mode = 'min',
},
{---------- SECOND LINE MINIMUM WIND CHILL ----------
WANTROW = not _ifset('single line') and (_ifany(' chill') and _if('metric first')),
mode = 'basic',
group_name = 'chill',
color_scheme = _ifset('temperature colour', 't'),
scale_factor = '1',
label = 'Wind chill',
annual_mode = 'min',
},
{---------- SECOND LINE TOTAL PRECIPITATION ----------
WANTROW = not _ifset('single line') and (_ifany(' precipitation cm') or _ifany(' precipitation mm') or _ifany(' precipitation inch')),
mode = 'precipitation',
group_name = 'precipitation',
second_line = true,
color_scheme = _ifset('precipitation colour', 'p'),
date_mode = true,
scale_factor = '1',
prefer_cm = precision(_ifset('Jan precipitation inch', '0')) < 1,
label = makeLabel(args, false, 'Average precipitation', 'precipitation'),
annual_mode = 'sum',
},
{---------- SECOND LINE RAINFALL ----------
WANTROW = not _ifset('single line') and (_ifany(' rain cm') or _ifany(' rain mm') or _ifany(' rain inch')),
mode = 'precipitation',
group_name = 'rain',
second_line = true,
color_scheme = _ifset('rain colour', 'p'),
date_mode = true,
scale_factor = '1',
prefer_cm = precision(_ifset('Jan rain inch', '0')) < 1,
label = makeLabel(args, false, 'Average rainfall', 'rain'),
annual_mode = 'sum',
},
{---------- SECOND LINE SNOWFALL ----------
WANTROW = not _ifset('single line') and (_ifany(' snow cm') or _ifany(' snow mm') or _ifany(' snow inch')),
mode = 'precipitation',
group_name = 'snow',
second_line = true,
prefer_cm = true,
color_scheme = _ifset('snow colour', 'p'),
date_mode = true,
scale_factor = '1',
label = makeLabel(args, false, 'Average snowfall', 'snow'),
annual_mode = 'sum',
},
{---------- PRECIPITATION DAYS ----------
WANTROW = _ifany(' precipitation days'),
mode = 'basic',
group_name = 'precipitation days',
color_scheme = _ifset('precip days colour', 'd'),
date_mode = true,
scale_factor = '1',
label = 'Average precipitation days' .. _if('unit precipitation days', ' <span style="font-size:90%;" class="nowrap">(≥ ' .. _ifset('unit precipitation days', '') .. ')</span>'),
annual_mode = 'sum',
},
{---------- RAINY DAYS ----------
WANTROW = _ifany(' rain days'),
mode = 'basic',
group_name = 'rain days',
color_scheme = _ifset('precip days colour', 'd'),
date_mode = true,
scale_factor = '1',
label = 'Average rainy days' .. _if('unit rain days', ' <span style="font-size:90%;" class="nowrap">(≥ ' .. _ifset('unit rain days', '') .. ')</span>'),
annual_mode = 'sum',
},
{---------- SNOWY DAYS ----------
WANTROW = _ifany(' snow days'),
mode = 'basic',
group_name = 'snow days',
color_scheme = _ifset('precip days colour', 'd'),
date_mode = true,
scale_factor = '1',
label = 'Average snowy days' .. _if('unit snow days', ' <span style="font-size:90%;" class="nowrap">(≥ ' .. _ifset('unit snow days', '') .. ')</span>'),
annual_mode = 'sum',
},
{---------- PERCENT RELATIVE HUMIDITY ----------
WANTROW = _ifany(' humidity'),
mode = 'basic',
group_name = 'humidity',
color_scheme = _ifset('humidity colour', 'h'),
scale_factor = '1',
label = 'Average relative humidity (%)' ..
_if('time day', ' <span style="font-size:90%;" class="nowrap">(at {{{time day}}})</span>') ..
_if('daily', ' <span style="font-size:90%;" class="nowrap">(daily average)</span>'),
annual_mode = 'avg',
},
{---------- AFTERNOON PERCENT RELATIVE HUMIDITY ----------
WANTROW = _ifany(' afthumidity'),
mode = 'basic',
group_name = 'afthumidity',
color_scheme = _ifset('humidity colour', 'h'),
scale_factor = '1',
label = 'Average afternoon relative humidity (%)' ..
_if('time day', ' <span style="font-size:90%;" class="nowrap">(at {{{time day}}})</span>') ..
_if('daily', ' <span style="font-size:90%;" class="nowrap">(daily average)</span>'),
annual_mode = 'avg',
},
{---------- FIRST LINE AVERAGE DEW POINT ----------
WANTROW = _ifany(' dew point C') or _ifany(' dew point F'),
mode = 'temperature',
group_name = 'dew point',
color_scheme = _ifset('temperature colour', 't'),
scale_factor = '1',
label = 'Average dew point °' .. _if('metric first', 'C', 'F') .. _if('single line', ' (°' .. _if('metric first', 'F', 'C') .. ')'),
annual_mode = 'avg',
},
{---------- SECOND LINE AVERAGE DEW POINT----------
WANTROW = not _ifset('single line') and (_ifany(' dew point C') or _ifany(' dew point F')),
mode = 'temperature',
group_name = 'dew point',
second_line = true,
color_scheme = _ifset('temperature colour', 't'),
scale_factor = '1',
label = 'Average dew point °' .. _if('metric first', 'F', 'C'),
show = _if('metric first', '2', '1'),
annual_mode = 'avg',
},
{---------- MONTHLY SUNSHINE HOURS ----------
WANTROW = _ifany(' sun'),
mode = 'basic',
group_name = 'sun',
color_scheme = _ifset('sun colour', 's'),
date_mode = true,
scale_factor = '1',
label = 'Mean monthly sunshine hours',
annual_mode = 'sum',
},
{---------- DAILY SUNSHINE HOURS ----------
WANTROW = _ifany('d sun'),
mode = 'basic',
group_name = 'd sun',
color_scheme = _ifset('sun colour', 's'),
include_space = false,
scale_factor = '30.44',
label = 'Mean daily sunshine hours',
annual_mode = 'avg',
},
{---------- DAILY DAYLIGHT HOURS ----------
WANTROW = _ifany(' light'),
mode = 'basic',
group_name = ' light',
color_scheme = _ifset('sun colour', 's'),
include_space = false,
scale_factor = '30.44',
label = 'Mean daily daylight hours',
annual_mode = 'avg',
},
{---------- PERCENT SUNSHINE ----------
WANTROW = _ifany(' percentsun'),
mode = 'basic',
group_name = 'percentsun',
color_scheme = _ifset('sun colour', 's'),
scale_factor = '7.2',
label = 'Percent possible sunshine',
annual_mode = 'avg',
},
{---------- ULTRAVIOLET INDEX ----------
WANTROW = _ifany(' uv'),
mode = 'basic',
group_name = 'uv',
color_scheme = _ifset('uv colour', 'u'),
scale_factor = '1',
label = 'Average ultraviolet index',
annual_mode = 'avg',
},
----------- SOURCES ----------
makeSources(frame, args),
}
end
local function makeFrame(self_args, parent_args)
-- Kludge to pass arguments for a single row to buildRow.
-- Later: Refactor buildRow so this is not needed.
return {
args = self_args,
getParent = function (self) return makeFrame(parent_args, nil) end,
}
end
local function main(frame)
local buildRow = require('Module:Climate data/row').buildRow
local args = frame:getParent().args
local results = {}
for i, def in ipairs(getDefinitions(frame, args)) do
local row
if type(def) == 'string' then
row = def
elseif def.WANTROW then
row = buildRow(makeFrame(def, args))
else
row = ''
end
results[i] = row
end
return '<div>\n'..table.concat(results)..'\n</div>' -- prevent Scribunto from inserting a blank line before the table
end
return {
main = main,
}
tk1yefevlqlq5hincve40nsjy4gse39
Modul:Climate data/colors
828
594
2678
2677
2024-12-03T14:16:33Z
Jon Harald Søby
20
2 revisi diimpor
2676
Scribunto
text/plain
local w = {}
local math_mod = require('Module:Math')
local function hex( value )
return string.format("%02X", value)
end
local function format_line( background, text_color )
return "background: #" .. background .. "; color:#" .. text_color .. ";"
end
local function range_pos( value, start, stop )
if start < stop then
if value < start then
return 0
elseif value > stop then
return 1
else
return (value - start) / (stop - start)
end
else
if value < stop then
return 1
elseif value > start then
return 0
else
return (start - value) / (start - stop)
end
end
end
function w.color_d( frame )
local val = math_mod._cleanNumber( frame.args[1] )
return w._days_color( val )
end
function w.color_pastel( frame )
local val = math_mod._cleanNumber( frame.args[1] )
return w._pastel_color( val )
end
function w.color_t( frame )
local val = math_mod._cleanNumber( frame.args[1] )
return w._temperature_color( val )
end
function w.color_green( frame )
local val = math_mod._cleanNumber( frame.args[1] )
return w._green_color( val )
end
function w.color_s( frame )
local val = math_mod._cleanNumber( frame.args[1] )
return w._sunshine_color( val )
end
function w.color_h( frame )
local val = math_mod._cleanNumber( frame.args[1] )
return w._humidity_color( val )
end
function w.color_p( frame )
local val = math_mod._cleanNumber( frame.args[1] )
return w._precipitation_color( val )
end
function w.color_u( frame )
local val = math_mod._cleanNumber( frame.args[1] )
return w._uv_color( val )
end
function w._days_color( val )
local item, background, text_color
if val == nil then
return format_line( "FFFFFF", "000000" )
end
item = hex( range_pos( val, 20, 0 )*255 )
background = item .. item
item = hex( range_pos( val, 40, 20 )*255 )
background = background .. item
if val >= 12 then
text_color = "FFFFFF"
else
text_color = "000000"
end
return format_line( background, text_color )
end
function w._green_color( val )
local item1, item2, background, text_color
if val == nil then
return format_line( "FFFFFF", "000000" )
end
item1 = hex( range_pos( val, 165.6, 0 )*255 )
item2 = hex( range_pos( val, 300, 165.61 )*207 + 48 )
background = item1 .. item2 .. item1
if val >= 200 then
text_color = "FFFFFF"
else
text_color = "000000"
end
return format_line( background, text_color )
end
function w._temperature_color( val )
local item, background, text_color
if val == nil then
return format_line( "FFFFFF", "000000" )
end
if val < 4.5 then
item = range_pos( val, -42.75, 4.5 )*255
background = hex( item )
else
item = range_pos( val, 60, 41.5 )*255
background = hex( item )
end
if val <= 4.5 then
item = range_pos( val, -42.75, 4.5 )*255
background = background .. hex( item )
else
item = range_pos( val, 41.5, 4.5 )*255
background = background .. hex( item )
end
if val < -42.78 then
item = range_pos( val, -90, -42.78 )*255
background = background .. hex( item )
else
item = range_pos( val, 23, 4.5 )*255
background = background .. hex( item )
end
if val < -23.3 or val >= 37.8 then
text_color = "FFFFFF"
else
text_color = "000000"
end
return format_line( background, text_color )
end
function w._precipitation_color( val )
local item, background, text_color
if val == nil then
return format_line( "FFFFFF", "000000" )
end
item = hex( range_pos( val, 165.6, 0 )*255 )
background = item .. item
item = hex( range_pos( val, 300, 165.61 )*207 + 48 )
background = background .. item
if val > 90 then
text_color = "FFFFFF"
else
text_color = "000000"
end
return format_line( background, text_color )
end
function w._humidity_color( val )
local item, background, text_color
if val == nil then
return format_line( "FFFFFF", "000000" )
end
item = hex( range_pos( val, 66.67, 0 )*255 )
background = item .. item
item = hex( range_pos( val, 133.33, 66.667 )*255 )
background = background .. item
if val >= 40 then
text_color = "FFFFFF"
else
text_color = "000000"
end
return format_line( background, text_color )
end
function w._sunshine_color( val )
local item, background, text_color
if val == nil then
return format_line( "FFFFFF", "000000" )
end
if val < 90 then
item = hex( range_pos( val, 0, 90 )*170 )
elseif val < 180 then
item = hex( range_pos( val, 90, 180 )*42.5 + 170 )
else
item = hex( range_pos( val, 180, 360 )*42.5 + 212.5 )
end
background = item .. item
if val < 90 then
item = hex( range_pos( val, 0, 90 )*170 )
elseif val < 270 then
item = hex( range_pos( val, 150, 90 )*170 )
else
item = hex( range_pos( val, 270, 720 )*255 )
end
background = background .. item
if val < 80 then
text_color = "FFFFFF"
else
text_color = "000000"
end
return format_line( background, text_color )
end
function w._pastel_color( val )
local background, text_color
if val == nil then
return format_line( "FFFFFF", "000000" )
end
if val < -15 or val >= 39 then
text_color = "FFFFFF"
else
text_color = "000000"
end
if val >= 51 then
background = 'EE2200'
else
val = math_mod._round( (val + 25.5)/3, 0 )
if val == 1 then
background = 'BB00CC'
elseif val == 2 then
background = 'CC00EE'
elseif val == 3 then
background = 'CC33EE'
elseif val == 4 then
background = 'CC55EE'
elseif val == 5 then
background = 'DD66EE'
elseif val == 6 then
background = 'DD77EE'
elseif val == 7 then
background = 'DD99EE'
elseif val == 8 then
background = 'DDAAEE'
elseif val == 9 then
background = 'DDBBEE'
elseif val == 10 then
background = 'EECCFF'
elseif val == 11 then
background = 'FFDDFF'
elseif val == 12 then
background = 'F1F1F1'
elseif val == 13 then
background = 'FFEEBB'
elseif val == 14 then
background = 'FFFFCC'
elseif val == 15 then
background = 'FFFFBB'
elseif val == 16 then
background = 'FFFFAA'
elseif val == 17 then
background = 'FFFF88'
elseif val == 18 then
background = 'FFCC33'
elseif val == 19 then
background = 'FFBB33'
elseif val == 20 then
background = 'FF9900'
elseif val == 21 then
background = 'FF8844'
elseif val == 22 then
background = 'FF6633'
elseif val == 23 then
background = 'FF5522'
elseif val == 24 then
background = 'FF4422'
elseif val == 25 then
background = 'EE4400'
else
background = 'AA00AA'
end
end
return format_line( background, text_color )
end
function w._uv_color( val )
local background, text_color
if val == nil then
return format_line( "FFFFFF", "000000" )
end
if val < 3 then
background = "3EA72D"
elseif val >= 3 and val < 6 then
background = "FFF300"
elseif val >= 6 and val < 8 then
background = "F18B00"
elseif val >= 8 and val < 11 then
background = "E53210"
else
background = "B567A4"
end
if val < 3 then
text_color = "FFFFFF"
elseif val >= 3 and val < 8 then
text_color = "000000"
else
text_color = "FFFFFF"
end
return format_line( background, text_color )
end
function w._none_color()
return format_line( "FAFAFA", "000000" )
end
function w.interpret_color_code( code )
code = code:lower()
if code == 't' then
return w._temperature_color
elseif code == 'pastel' then
return w._pastel_color
elseif code == 'green' then
return w._green_color
elseif code == 'h' then
return w._humidity_color
elseif code == 's' then
return w._sunshine_color
elseif code == 'p' then
return w._precipitation_color
elseif code == 'd' then
return w._days_color
elseif code == 'u' then
return w._uv_color
elseif code == 'none' then
return w._none_color
else
error( 'Unknown color scheme option' )
end
end
return w
hjts55l5dwqk6hrruk7i3i9l99ts6ne
Modul:Complex date
828
595
2682
2681
2024-12-03T14:16:33Z
Jon Harald Søby
20
3 revisi diimpor
2679
Scribunto
text/plain
--[[
__ __ _ _ ____ _ _ _
| \/ | ___ __| |_ _| | ___ _ / ___|___ _ __ ___ _ __ | | _____ __ __| | __ _| |_ ___
| |\/| |/ _ \ / _` | | | | |/ _ (_) | / _ \| '_ ` _ \| '_ \| |/ _ \ \/ / / _` |/ _` | __/ _ \
| | | | (_) | (_| | |_| | | __/_| |__| (_) | | | | | | |_) | | __/> < | (_| | (_| | || __/
|_| |_|\___/ \__,_|\__,_|_|\___(_)\____\___/|_| |_| |_| .__/|_|\___/_/\_\ \__,_|\__,_|\__\___|
|_|
This module is intended for creation of complex date phrases in variety of languages.
Once deployed, please do not modify this code without applying the changes first at Module:Complex date/sandbox and testing
at Module:Complex date/sandbox/testcases.
Authors and maintainers:
* User:Sn1per - first draft of the original version
* User:Jarekt - corrections and expansion of the original version
]]
-- List of external modules and functions
local p = {Error = nil}
local i18n = require('Module:i18n/complex date') -- used for translations of date related phrases
local ISOdate = require('Module:ISOdate')._ISOdate -- used for parsing dates in YYYY-MM-DD and related formats
local formatnum = require('Module:Formatnum').formatNum -- used for translation into other alphabets
local Calendar = require('Module:Calendar') -- used for conversions between Julian and Gregorian calendar dates
-- ==================================================
-- === Internal functions ===========================
-- ==================================================
local function langSwitch(list,lang)
local langList = mw.language.getFallbacksFor(lang)
table.insert(langList,1,lang)
table.insert(langList,math.max(#langList,2),'default')
for i,language in ipairs(langList) do
if list[language] then
return list[language]
end
end
end
local function formatnum1(numStr, lang)
-- mostly require('Module:Formatnum').formatNum function used to translate a number to use different numeral characters,
-- except that it it does not call that function unless the language is on the list "LList"
local LList = {bn=1,bpy=1,kn=1,hi=1,mr=1,new=1,pa=1,gu=1,fa=1,glk=1,mzn=1,ur=1,ar=1,ckb=1,ks=1,lo=1,['or']=1,bo=1,['ml-old']=1,mn=1,te=1,th=1}
if LList[lang] then -- call only when the language is on the list
numStr = formatnum(numStr, lang, 1)
end
return numStr
end
local function getISODate(datestr, datetype, lang, num, case)
-- translate dates in the format YYYY, YYYY-MM, and YYYY-MM-DD
if not case and i18n.Translations[datetype] then
-- look up the grammatical case needed and call ISOdate module
local rec = langSwitch(i18n.Translations[datetype], lang)
if type(rec)=='table' then
case = rec.case[num]
end
end
return ISOdate(datestr, lang, case, '', 1)
end
local function translatePhrase(date1, date2, operation, lang, state)
-- use tables in Module:i18n/complex date to translate a phrase
if not i18n.Translations[operation] then
p.Error = string.format('<span style="background-color:red;">Error in [[Modul:Complex date]]: input parameter "%s" is not recognized.</span>', operation or 'nil')
return ''
end
local dateStr = langSwitch(i18n.Translations[operation], lang)
if type(dateStr)=='table' then
dateStr = dateStr[1]
end
if type(dateStr)=='function' then
local success
local nDates = i18n.Translations[operation]['nDates']
if nDates==2 then -- 2 date phrase
success, dateStr = pcall(dateStr, date1, date2, state)
else -- 1 date phrase
success, dateStr = pcall(dateStr, date1, state)
end
end
if type(dateStr)=='string' then
-- replace parts of the string '$date1' and '$date2' with date1 and date2 strings
dateStr = mw.ustring.gsub(dateStr, '$date1', date1)
dateStr = mw.ustring.gsub(dateStr, '$date2', date2)
else
-- Special case of more complex phrases that can be build out of simple phrases
-- If complex case is not translated to "lang" than build it out of simpler ones
local x = dateStr
dateStr = p._complex_date(x.conj, x.adj1, date1, x.units1, x.era1, x.adj2, date2, x.units2, x.era2, lang, 2)
end
return dateStr
end
local function oneDatePhrase(dateStr, adj, era, units, lang, num, case, state)
-- translate a single date phrase
if num==2 then
state.adj, state.era, state.units, state.precision = state.adj2, state.era2, state.units2, state.precision2
end
-- dateStr can have many forms: ISO date, year or a number for
-- decade, century or millennium
if units == '' then -- unit is "year", "month", "day"
dateStr = getISODate(dateStr, adj, lang, num, case)
else -- units is "decade", "century", "millennium''
dateStr = translatePhrase(dateStr, '', units, lang, state)
end
-- add adjective ("early", "mid", etc.) or preposition ("before", "after",
-- "circa", etc.) to the date
if adj ~= '' then
dateStr = translatePhrase(dateStr, '', adj, lang, state)
else -- only era?
dateStr = formatnum1(dateStr, lang)
end
-- add era
if era ~= '' then
dateStr = translatePhrase(dateStr, '', era, lang, state)
end
return dateStr
end
local function twoDatePhrase(date1, date2, state, lang)
-- translate a double date phrase
local dateStr, case
local era=''
if state.era1 == state.era2 then
-- if both eras are the same than add it only once
era = state.era1
state.era1 = ''
state.era2 = ''
end
case = {nil, nil}
if i18n.Translations[state.conj] then
local rec = langSwitch(i18n.Translations[state.conj], lang)
if type(rec)=='table' then
case = rec.case
end
end
date1 = oneDatePhrase(date1, state.adj1, state.era1, state.units1, lang, 1, case[1], state)
date2 = oneDatePhrase(date2, state.adj2, state.era2, state.units2, lang, 2, case[2], state)
dateStr = translatePhrase(date1, date2, state.conj, lang, state)
if era ~= '' then
dateStr = translatePhrase(dateStr, '', era, lang, state)
end
return dateStr
end
local function otherPhrases(date1, date2, operation, era, lang, state)
-- translate specialized phrases
local dateStr = ''
if operation == 'islamic' then
if date2=='' then date2 = mw.getCurrentFrame():callParserFunction('#time', 'xmY', date1) end
date1 = getISODate(date1, operation, lang, 1, nil)
date2 = getISODate(date2, operation, lang, 2, nil)
if era == '' then era = 'ad' end
dateStr = translatePhrase(date1, '', era, lang, state) .. ' (' .. translatePhrase(date2, '', 'ah', lang, state) .. ')'
era = ''
elseif operation == 'julian' then
if not date2 and date1 then -- Convert from Julian to Gregorian calendar date
local JDN = Calendar._date2jdn(date1, 0)
if JDN then
date2 = date1 -- first date is assumed to be Julian
date1 = Calendar._jdn2date(JDN, 1)
end
end
date1 = getISODate(date1, operation, lang, 1, nil)
date2 = getISODate(date2, operation, lang, 2, nil)
dateStr = translatePhrase(date1, date2, operation, lang, state)
dateStr = mw.ustring.gsub(mw.ustring.gsub(dateStr, '%( ', '('), ' %)', ')') -- in case date2 is empty
elseif operation == 'turn of the year' or operation == 'turn of the decade' or operation == 'turn of the century' then
if operation == 'turn of the decade' then dt=10 else dt=1 end
if not date2 or date2=='' then date2=tostring(tonumber(date1)-dt) end
if era~='bp' and era~='bc' then date1, date2 = date2, date1 end
if operation == 'turn of the year' then
date1 = ISOdate(date1, lang, '', '', 1)
date2 = ISOdate(date2, lang, '', '', 1)
else
date1 = formatnum1(date1, lang)
date2 = formatnum1(date2, lang)
end
dateStr = translatePhrase(date1, date2, operation, lang, state)
elseif operation == 'year unknown' then
dateStr = translatePhrase('', '', operation, lang, state) .. '<div style="display: none;">Unknown date</div>'
elseif operation == 'unknown' then
dateStr = tostring(mw.message.new( "exif-unknowndate" ):inLanguage( lang )) .. '<div style="display: none;">Unknown date</div>'
end
-- add era
if era ~= '' then
dateStr = translatePhrase(dateStr, '', era, lang, state)
end
return dateStr
end
local function checkAliases(str1, str2, sType)
-- some inputs have many aliases - reconcile them and ensure string is playing a proper role
local out = ''
if str1 and str1~='' then
local a = i18n.Synonyms[str1] -- look up synonyms of "str1"
if a then
out = a[1]
else
p.Error = string.format('<span style="background-color:red;">Error in [[Modul:Complex date]]: %s is not recognized.</span>', str1)
end
elseif str2 and str2~='' then -- if "str1" of type "sType" is empty than maybe ...
local a = i18n.Synonyms[str2] -- ..."str2" is of the same type and is not empty
if a and a[2]==sType then
out = a[1]
str2 = ''
end
end
return out, str2
end
local function datePrecision(dateStr, units)
-- "in this module "Units" is a string like millennium, century, or decade
-- "precision" is wikibase compatible date precision number: 6=millennium, 7=century, 8=decade, 9=year, 10=month, 11=day
-- based on string or numeric input calculate "Units" and "precision"
local precision
local dateNum = tonumber(dateStr);
if type(units)=='number' then
precision = units
if precision>11 then precision=11 end -- clip the range of precision values
if precision==6 then units='millennium'
elseif precision==7 then units='century'
elseif precision==8 then units='decade'
else units = ''
end
elseif type(units)=='string' then
units = string.lower(units);
if units=='millennium' then precision=6
elseif units=='century' then precision=7
elseif units=='decade' then precision=8
else precision=9
end
end
if units=='' or precision==9 then
local sLen = mw.ustring.len(dateStr)
if sLen<= 4 then precision=9
elseif sLen== 7 then precision=10
elseif sLen>=10 then precision=11
end
units=''
end
if precision==6 and dateStr.match( dateStr, '%d000' )~=nil then
dateStr = tostring(math.floor(tonumber(dateStr)/1000) +1)
elseif precision==7 and mw.ustring.match( dateStr, '%d%d00' )~=nil then
dateStr = tostring(math.floor(tonumber(dateStr)/100) +1)
end
return dateStr, units, precision
end
local function isodate2timestamp(dateStr, precision, era)
-- convert date string to timestamps used by Quick Statements
local tStamp = nil
if era == 'ah' or precision<6 then
return nil
elseif era ~= '' then
local eraLUT = {ad='+', bc='-', bp='-' }
era = eraLUT[era]
else
era='+'
end
-- convert isodate to timestamp used by quick statements
if precision>=9 then
if string.match(dateStr,"^%d%d%d%d$") then -- if YYYY format
tStamp = era .. dateStr .. '-00-00T00:00:00Z/9'
elseif string.match(dateStr,"^%d%d%d%d%-%d%d$") then -- if YYYY-MM format
tStamp = era .. dateStr .. '-00T00:00:00Z/10'
elseif string.match(dateStr,"^%d%d%d%d%-%d%d%-%d%d$") then -- if YYYY-MM-DD format
tStamp = era .. dateStr .. 'T00:00:00Z/11'
end
elseif precision==8 then -- decade
tStamp = era .. dateStr .. '-00-00T00:00:00Z/8'
elseif precision==7 then -- century
local d = tostring(tonumber(dateStr)-1)
tStamp = era .. d .. '50-00-00T00:00:00Z/7'
elseif precision==6 then
local d = tostring(tonumber(dateStr)-1)
tStamp = era .. d .. '500-00-00T00:00:00Z/6'
end
return tStamp
end
local function oneDateQScode(dateStr, adj, era, precision)
-- create QuickStatements string for "one date" dates
local outputStr = ''
local d = isodate2timestamp(dateStr, precision, era)
if not d then
return ''
end
local rLUT = { early='Q40719727' , mid='Q40719748', late='Q40719766',
['1quarter']='Q40690303' , ['2quarter']='Q40719649' , ['3quarter']='Q40719662', ['4quarter']='Q40719674',
spring='Q40720559' , summer='Q40720564' , autumn='Q40720568' , winter='Q40720553',
firsthalf='Q40719687', secondhalf='Q40719707' }
local qLUT = {['from']='P580', ['until']='P582', ['after']='P1319', ['before']='P1326', ['by']='P1326'}
local refine = rLUT[adj]
local qualitier = qLUT[adj]
if adj=='' then
outputStr = d
elseif adj=='circa' then
outputStr = d..",P1480,Q5727902"
elseif refine then
outputStr = d..",P4241,"..refine
elseif precision>7 and qualitier then
local century = string.gsub(d, 'Z%/%d+', 'Z/7')
outputStr = century ..",".. qualitier ..","..d
end
return outputStr
end
local function twoDateQScode(date1, date2, state)
-- create QuickStatements string for "two date" dates
if state.adj1~='' or state.adj2~='' or state.era1~=state.era2 then
return '' -- QuickStatements string are not generated for two date phrases with adjectives
end
local outputStr = ''
local d1 = isodate2timestamp(date1, state.precision1, state.era1)
local d2 = isodate2timestamp(date2, state.precision2, state.era2)
if (not d1) or (not d2) then
return ''
end
-- find date with lower precision in common to both dates
local cd
local year1 = tonumber(string.sub(d1,2,5))
local year2 = tonumber(string.sub(d2,2,5))
local k = 0
for i = 1,10,1 do
if string.sub(d1,1,i)==string.sub(d2,1,i) then
k = i -- find last matching letter
end
end
if k>=9 then -- same month, since "+YYYY-MM-" is in common
cd = isodate2timestamp(string.sub(d1,2,8), 10, state.era1)
elseif k>=6 and k<9 then -- same year, since "+YYYY-" is in common
cd = isodate2timestamp(tostring(year1), 9, state.era1)
elseif k==4 then -- same decade(k=4, precision=8), since "+YYY" is in common
cd = isodate2timestamp(tostring(year1), 8, state.era1)
elseif k==3 then -- same century(k=3, precision=7) since "+YY" is in common
local d = tostring(math.floor(year1/100) +1) -- convert 1999 -> 20
cd = isodate2timestamp( d, 7, state.era1)
elseif k==2 then -- same millennium (k=2, precision=6), since "+Y" is in common
local d = tostring(math.floor(year1/1000) +1) -- convert 1999 -> 2
cd = isodate2timestamp( d, 6, state.era1)
end
if not cd then
return ''
end
--if not cd then
-- return ' <br/>error: ' .. d1.." / " .. d2.." / ".. (cd or '') .." / ".. string.sub(d1,2,5).." / " .. string.sub(d2,2,5).." / " .. tostring(k)
--end
--
if (state.conj=='from-until') or (state.conj=='and' and year1==year2-1) then
outputStr = cd ..",P580,".. d1 ..",P582,".. d2
elseif (state.conj=='between') or (state.conj=='or' and year1==year2-1) then
outputStr = cd ..",P1319,".. d1 ..",P1326,".. d2
elseif state.conj=='circa2' then
outputStr = cd ..",P1319,".. d1 ..",P1326,".. d2 ..",P1480,Q5727902"
end
return outputStr
end
-- ==================================================
-- === External functions ===========================
-- ==================================================
function p.Era(frame)
-- process inputs
local dateStr
local args = frame.args
if not (args.lang and mw.language.isSupportedLanguage(args.lang)) then
args.lang = frame:callParserFunction( "int", "lang" ) -- get user's chosen language
end
local lang = args['lang']
local dateStr = args['date'] or ''
local eraType = string.lower(args['era'] or '')
dateStr = ISOdate(dateStr, lang, '', '', 1)
if eraType then
eraType = checkAliases(eraType ,'','e')
dateStr = translatePhrase(dateStr, '', eraType, lang, {})
end
return dateStr
end
function p._complex_date(conj, adj1, date1, units1, era1, adj2, date2, units2, era2, lang, passNr)
local Output=''
-- process inputs and save date in state array
local state = {}
state.conj = string.lower(conj or '')
state.adj1 = string.lower(adj1 or '')
state.adj2 = string.lower(adj2 or '')
state.era1 = string.lower(era1 or '')
state.era2 = string.lower(era2 or '')
state.units1 = string.lower(units1 or '')
state.units2 = string.lower(units2 or '')
-- if date 1 is missing but date 2 is provided than swap them
if date1 == '' and date2 ~= '' then
date1 = date2
date2 = ''
state = {adj1 = state.adj2, era1 = state.era2, units1 = state.units2,
adj2 = '', era2 = '', units2 = '', conj=state.conj, num=1}
end
if date2 ~= '' then state.nDates = 2
elseif date1 ~= '' then state.nDates = 1
else state.nDates = 0
end
-- reconcile alternative names for text inputs
local conj = checkAliases(state.conj ,'' ,'j')
state.adj1 ,conj = checkAliases(state.adj1 ,conj,'a')
state.units1,conj = checkAliases(state.units1,conj,'p')
state.era1 ,conj = checkAliases(state.era1 ,conj,'e')
state.special,conj = checkAliases('',conj,'c')
state.adj2 = checkAliases(state.adj2 ,'','a')
state.units2 = checkAliases(state.units2,'','p')
state.era2 = checkAliases(state.era2 ,'','e')
state.conj = conj
state.lang = lang
if p.Error~=nil then
return nil
end
-- calculate date precision value
date1, state.units1, state.precision1 = datePrecision(date1, state.units1)
date2, state.units2, state.precision2 = datePrecision(date2, state.units2)
-- Handle special cases
-- Some complex phrases can be created out of simpler ones. Therefore on pass # 1 we try to create
-- the phrase using complex phrase and if that is not found than on the second pass we try to build
-- the phrase out of the simpler ones
if passNr==1 then
if state.adj1=='circa' and state.nDates == 2 then
state.conj = 'circa2'
state.adj1 = ''
state.adj2 = ''
end
if state.nDates == 2 and state.adj1=='late' and state.adj2=='early' and state.conj=='and'
and state.units1==state.units2 and state.era1==state.era2 then
if state.units1=='century' then
state.conj='turn of the century'
elseif state.units1=='decade' then
state.conj='turn of the decade'
elseif state.units1=='' then
state.conj='turn of the year'
end
state.adj1 = ''
state.adj2 = ''
state.units1 = ''
state.units2 = ''
end
end
local errorStr = string.format(
'\n*conj=%s, adj1=%s, era1=%s, unit1=%s, prec1=%i, adj2=%s, era2=%s, unit2=%s, prec2=%i, special=%s',
state.conj, state.adj1, state.era1, state.units1, state.precision1,
state.adj2, state.era2, state.units2, state.precision2, state.special)
state.adj, state.era, state.units, state.precision = state.adj1, state.era1, state.units1, state.precision1
-- call specialized functions
local QScode = ''
if state.special~='' then
Output = otherPhrases(date1, date2, state.special, state.era1, lang, state)
elseif state.conj~='' then
QScode = twoDateQScode(date1, date2, state)
Output = twoDatePhrase(date1, date2, state, lang)
elseif state.adj1~='' or state.era1~='' or state.units1~='' then
Output = oneDatePhrase(date1, state.adj1, state.era1, state.units1, lang, 1, nil, state)
QScode = oneDateQScode(date1, state.adj1, state.era1, state.precision1)
elseif date1~='' then
Output = ISOdate(date1, lang, '', 'dtstart', '100-999')
end
if p.Error~=nil then
return errorStr
end
-- if there is any wikicode in the string than execute it
if mw.ustring.find(Output, '{') then
Output = mw.getCurrentFrame():preprocess(Output)
end
if QScode and #QScode>0 then
QScode = ' <div style="display: none;">date QS:P,' .. QScode .. '</div>'
end
return Output .. QScode
end
function p._complex_date_cer(conj, adj1, date1, units1, era1, adj2, date2, units2, era2, certainty, lang)
-- same as p._complex_date but with extra parameter for certainty: probably, possibly, presumably, etc.
local dateStr = p._complex_date(conj, adj1, date1, units1, era1, adj2, date2, units2, era2, lang, 1)
certainty = checkAliases(certainty, conj, 'r')
local LUT = {probably='Q56644435', presumably='Q18122778', possibly='Q30230067', circa='Q5727902' }
if certainty and LUT[certainty] then
dateStr = translatePhrase(dateStr, '', certainty, lang, {})
dateStr = string.gsub(dateStr, '(%<div style="display: none;"%>date QS:P,[^%<]+)(%</div%>)', '%1,P1480,' .. LUT[certainty] .. '%2' )
-- if str1 and str2
-- dateStr = str1 .. ',P1480,' .. LUT[certainty] .. str2
-- end
end
return dateStr
end
function p.complex_date(frame)
-- process inputs
local dateStr, Error
local args = frame.args
if not (args.lang and mw.language.isSupportedLanguage(args.lang)) then
args.lang = frame:callParserFunction( "int", "lang" ) -- get user's chosen language
end
local date1 = args['date1'] or args['2'] or args['date'] or ''
local date2 = args['date2'] or args['3'] or ''
local conj = args['conj'] or args['1'] or ''
local adj1 = args['adj1'] or args['adj'] or ''
local adj2 = args['adj2'] or ''
local units1 = args['precision1'] or args['precision'] or ''
local units2 = args['precision2'] or args['precision'] or ''
local era1 = args['era1'] or args['era'] or ''
local era2 = args['era2'] or args['era'] or ''
local certainty = args['certainty']
local lang = args['lang']
dateStr = p._complex_date_cer(conj, adj1, date1, units1, era1, adj2, date2, units2, era2, certainty, lang)
if p.Error~=nil then
dateStr = p.Error .. '[[Kategori:Pages using Complex date template with incorrect parameter]]'
end
return dateStr
end
return p
fkh1as4o37yc32wvqhbfsmryxee3a38
Modul:ConcatArgs
828
596
2684
2683
2024-12-03T14:16:33Z
Jon Harald Søby
20
1 revisi diimpor
2683
Scribunto
text/plain
local p = {}
function table.slice(tbl, first, last, step)
local sliced = {}
for i = first or 1, last or #tbl, step or 1 do
sliced[#sliced+1] = tbl[i]
end
return sliced
end
p.slice = table.slice
local function count_args(table)
local nargs = 0
for num, _ in ipairs(table) do
nargs = math.max(num, nargs)
end
return nargs
end
function p.ConcatArgs(frame)
local pargs = frame:getParent().args
local init = tonumber(frame.args["init"]) or frame.args["init"]
local slice = table.slice(
pargs,
tostring(frame.args["min"]),
count_args(pargs)
)
table.insert(slice, 1, pargs[init])
return table.concat(slice, "|")
end
return p
jhipvizmrz3awgzr5ggd7tq4x3c485u
Modul:Convert
828
597
2688
2687
2024-12-03T14:16:33Z
Jon Harald Søby
20
3 revisi diimpor
2687
Scribunto
text/plain
-- Convert a value from one unit of measurement to another.
-- Example: {{convert|123|lb|kg}} --> 123 pounds (56 kg)
-- See [[:en:Template:Convert/Transwiki guide]] if copying to another wiki.
local MINUS = '−' -- Unicode U+2212 MINUS SIGN (UTF-8: e2 88 92)
local abs = math.abs
local floor = math.floor
local format = string.format
local log10 = math.log10
local ustring = mw.ustring
local ulen = ustring.len
local usub = ustring.sub
-- Configuration options to keep magic values in one location.
-- Conversion data and message text are defined in separate modules.
local config, maxsigfig
local numdot -- must be '.' or ',' or a character which works in a regex
local numsep, numsep_remove, numsep_remove2
local data_code, all_units
local text_code
local varname -- can be a code to use variable names that depend on value
local from_en_table -- to translate an output string of en digits to local language
local to_en_table -- to translate an input string of digits in local language to en
-- Use translation_table in convert/text to change the following.
local en_default -- true uses lang=en unless convert has lang=local or local digits
local group_method = 3 -- code for how many digits are in a group
local per_word = 'per' -- for units like "liters per kilometer"
local plural_suffix = 's' -- only other useful value is probably '' to disable plural unit names
local omitsep -- true to omit separator before local symbol/name
-- All units should be defined in the data module. However, to cater for quick changes
-- and experiments, any unknown unit is looked up in an extra data module, if it exists.
-- That module would be transcluded in only a small number of pages, so there should be
-- little server overhead from making changes, and changes should propagate quickly.
local extra_module -- name of module with extra units
local extra_units -- nil or table of extra units from extra_module
-- Some options in the invoking template can set variables used later in the module.
local currency_text -- for a user-defined currency symbol: {{convert|12|$/ha|$=€}} (euro replaces dollar)
local function from_en(text)
-- Input is a string representing a number in en digits with '.' decimal mark,
-- without digit grouping (which is done just after calling this).
-- Return the translation of the string with numdot and digits in local language.
if numdot ~= '.' then
text = text:gsub('%.', numdot)
end
if from_en_table then
text = text:gsub('%d', from_en_table)
end
return text
end
local function to_en(text)
-- Input is a string representing a number in the local language with
-- an optional numdot decimal mark and numsep digit grouping.
-- Return the translation of the string with '.' mark and en digits,
-- and no separators (they have to be removed here to handle cases like
-- numsep = '.' and numdot = ',' with input "1.234.567,8").
if to_en_table then
text = ustring.gsub(text, '%d', to_en_table)
end
if numsep_remove then
text = text:gsub(numsep_remove, '')
end
if numsep_remove2 then
text = text:gsub(numsep_remove2, '')
end
if numdot ~= '.' then
text = text:gsub(numdot, '.')
end
return text
end
local function decimal_mark(text)
-- Return ',' if text probably is using comma for decimal mark, or has no decimal mark.
-- Return '.' if text probably is using dot for decimal mark.
-- Otherwise return nothing (decimal mark not known).
if not text:find('[.,]') then return ',' end
text = text:gsub('^%-', ''):gsub('%+%d+/%d+$', ''):gsub('[Ee]%-?%d+$', '')
local decimal =
text:match('^0?([.,])%d+$') or
text:match('%d([.,])%d?%d?$') or
text:match('%d([.,])%d%d%d%d+$')
if decimal then return decimal end
if text:match('%.%d+%.') then return ',' end
if text:match('%,%d+,') then return '.' end
end
local add_warning, with_separator -- forward declarations
local function to_en_with_check(text, parms)
-- Version of to_en() for a wiki using numdot = ',' and numsep = '.' to check
-- text (an input number as a string) which might have been copied from enwiki.
-- For example, in '1.234' the '.' could be a decimal mark or a group separator.
-- From viwiki.
if to_en_table then
text = ustring.gsub(text, '%d', to_en_table)
end
if decimal_mark(text) == '.' then
local original = text
text = text:gsub(',', '') -- for example, interpret "1,234.5" as an enwiki value
if parms then
add_warning(parms, 0, 'cvt_enwiki_num', original, with_separator({}, text))
end
else
if numsep_remove then
text = text:gsub(numsep_remove, '')
end
if numsep_remove2 then
text = text:gsub(numsep_remove2, '')
end
if numdot ~= '.' then
text = text:gsub(numdot, '.')
end
end
return text
end
local function omit_separator(id)
-- Return true if there should be no separator before id (a unit symbol or name).
-- For zhwiki, there should be no separator if id uses local characters.
-- The following kludge should be a sufficient test.
if omitsep then
if id:sub(1, 2) == '-{' then -- for "-{...}-" content language variant
return true
end
if id:byte() > 127 then
local first = usub(id, 1, 1)
if first ~= 'Å' and first ~= '°' and first ~= 'µ' then
return true
end
end
end
return id:sub(1, 1) == '/' -- no separator before units like "/ha"
end
local spell_module -- name of module that can spell numbers
local speller -- function from that module to handle spelling (set if needed)
local wikidata_module, wikidata_data_module -- names of Wikidata modules
local wikidata_code, wikidata_data -- exported tables from those modules (set if needed)
local function set_config(args)
-- Set configuration options from template #invoke or defaults.
config = args
maxsigfig = config.maxsigfig or 14 -- maximum number of significant figures
local data_module, text_module
local sandbox = config.sandbox and ('/' .. config.sandbox) or ''
data_module = "Module:Convert/data" .. sandbox
text_module = "Module:Convert/text" .. sandbox
extra_module = "Module:Convert/extra" .. sandbox
wikidata_module = "Module:Convert/wikidata" .. sandbox
wikidata_data_module = "Module:Convert/wikidata/data" .. sandbox
spell_module = "Module:ConvertNumeric"
data_code = mw.loadData(data_module)
text_code = mw.loadData(text_module)
all_units = data_code.all_units
local translation = text_code.translation_table
if translation then
numdot = translation.numdot
numsep = translation.numsep
if numdot == ',' and numsep == '.' then
if text_code.all_messages.cvt_enwiki_num then
to_en = to_en_with_check
end
end
if translation.group then
group_method = translation.group
end
if translation.per_word then
per_word = translation.per_word
end
if translation.plural_suffix then
plural_suffix = translation.plural_suffix
end
varname = translation.varname
from_en_table = translation.from_en
local use_workaround = true
if use_workaround then
-- 2013-07-05 workaround bug by making a copy of the required table.
-- mw.ustring.gsub fails with a table (to_en_table) as the replacement,
-- if the table is accessed via mw.loadData.
local source = translation.to_en
if source then
to_en_table = {}
for k, v in pairs(source) do
to_en_table[k] = v
end
end
else
to_en_table = translation.to_en
end
if translation.lang == 'en default' then
en_default = true -- for hiwiki
end
omitsep = translation.omitsep -- for zhwiki
end
numdot = config.numdot or numdot or '.' -- decimal mark before fractional digits
numsep = config.numsep or numsep or ',' -- group separator for numbers
-- numsep should be ',' or '.' or '' or ' ' or a Unicode character.
-- numsep_remove must work in a regex to identify separators to be removed.
if numsep ~= '' then
numsep_remove = (numsep == '.') and '%.' or numsep
end
if numsep ~= ',' and numdot ~= ',' then
numsep_remove2 = ',' -- so numbers copied from enwiki will work
end
end
local function collection()
-- Return a table to hold items.
return {
n = 0,
add = function (self, item)
self.n = self.n + 1
self[self.n] = item
end,
}
end
local function divide(numerator, denominator)
-- Return integers quotient, remainder resulting from dividing the two
-- given numbers, which should be unsigned integers.
local quotient, remainder = floor(numerator / denominator), numerator % denominator
if not (0 <= remainder and remainder < denominator) then
-- Floating point limits may need this, as in {{convert|160.02|Ym|ydftin}}.
remainder = 0
end
return quotient, remainder
end
local function split(text, delimiter)
-- Return a numbered table with fields from splitting text.
-- The delimiter is used in a regex without escaping (for example, '.' would fail).
-- Each field has any leading/trailing whitespace removed.
local t = {}
text = text .. delimiter -- to get last item
for item in text:gmatch('%s*(.-)%s*' .. delimiter) do
table.insert(t, item)
end
return t
end
local function strip(text)
-- If text is a string, return its content with no leading/trailing
-- whitespace. Otherwise return nil (a nil argument gives a nil result).
if type(text) == 'string' then
return text:match("^%s*(.-)%s*$")
end
end
local function table_len(t)
-- Return length (<100) of a numbered table to replace #t which is
-- documented to not work if t is accessed via mw.loadData().
for i = 1, 100 do
if t[i] == nil then
return i - 1
end
end
end
local function wanted_category(catkey, catsort, want_warning)
-- Return message category if it is wanted in current namespace,
-- otherwise return ''.
local cat
local title = mw.title.getCurrentTitle()
if title then
local nsdefault = '0' -- default namespace: '0' = article; '0,10' = article and template
local namespace = title.namespace
for _, v in ipairs(split(config.nscat or nsdefault, ',')) do
if namespace == tonumber(v) then
cat = text_code.all_categories[want_warning and 'warning' or catkey]
if catsort and catsort ~= '' and cat:sub(-2) == ']]' then
cat = cat:sub(1, -3) .. '|' .. mw.text.nowiki(usub(catsort, 1, 20)) .. ']]'
end
break
end
end
end
return cat or ''
end
local function message(parms, mcode, is_warning)
-- Return wikitext for an error message, including category if specified
-- for the message type.
-- mcode = numbered table specifying the message:
-- mcode[1] = 'cvt_xxx' (string used as a key to get message info)
-- mcode[2] = 'parm1' (string to replace '$1' if any in message)
-- mcode[3] = 'parm2' (string to replace '$2' if any in message)
-- mcode[4] = 'parm3' (string to replace '$3' if any in message)
local msg
if type(mcode) == 'table' then
if mcode[1] == 'cvt_no_output' then
-- Some errors should cause convert to output an empty string,
-- for example, for an optional field in an infobox.
return ''
end
msg = text_code.all_messages[mcode[1]]
end
parms.have_problem = true
local function subparm(fmt, ...)
local rep = {}
for i, v in ipairs({...}) do
rep['$' .. i] = v
end
return (fmt:gsub('$%d+', rep))
end
if msg then
local parts = {}
local regex, replace = msg.regex, msg.replace
for i = 1, 3 do
local limit = 40
local s = mcode[i + 1]
if s then
if regex and replace then
s = s:gsub(regex, replace)
limit = nil -- allow long "should be" messages
end
-- Escape user input so it does not break the message.
-- To avoid tags (like {{convert|1<math>23</math>|m}}) breaking
-- the mouseover title, any strip marker starting with char(127) is
-- replaced with '...' (text not needing i18n).
local append
local pos = s:find(string.char(127), 1, true)
if pos then
append = '...'
s = s:sub(1, pos - 1)
end
if limit and ulen(s) > limit then
s = usub(s, 1, limit)
append = '...'
end
s = mw.text.nowiki(s) .. (append or '')
else
s = '?'
end
parts['$' .. i] = s
end
local function ispreview()
-- Return true if a prominent message should be shown.
if parms.test == 'preview' or parms.test == 'nopreview' then
-- For testing, can preview a real message or simulate a preview
-- when running automated tests.
return parms.test == 'preview'
end
local success, revid = pcall(function ()
return (parms.frame):preprocess('{{REVISIONID}}') end)
return success and (revid == '')
end
local want_warning = is_warning and
not config.warnings and -- show unobtrusive warnings if config.warnings not configured
not msg.nowarn -- but use msg settings, not standard warning, if specified
local title = string.gsub(msg[1] or 'Missing message', '$%d+', parts)
local text = want_warning and '*' or msg[2] or 'Missing message'
local cat = wanted_category(msg[3], mcode[2], want_warning)
local anchor = msg[4] or ''
local fmtkey = ispreview() and 'cvt_format_preview' or
(want_warning and 'cvt_format2' or msg.format or 'cvt_format')
local fmt = text_code.all_messages[fmtkey] or 'convert: bug'
return subparm(fmt, title:gsub('"', '"'), text, cat, anchor)
end
return 'Convert internal error: unknown message'
end
function add_warning(parms, level, key, text1, text2) -- for forward declaration above
-- If enabled, add a warning that will be displayed after the convert result.
-- A higher level is more verbose: more kinds of warnings are displayed.
-- To reduce output noise, only the first warning is displayed.
if level <= (tonumber(config.warnings) or 1) then
if parms.warnings == nil then
parms.warnings = message(parms, { key, text1, text2 }, true)
end
end
end
local function spell_number(parms, inout, number, numerator, denominator)
-- Return result of spelling (number, numerator, denominator), or
-- return nil if spelling is not available or not supported for given text.
-- Examples (each value must be a string or nil):
-- number numerator denominator output
-- ------ --------- ----------- -------------------
-- "1.23" nil nil one point two three
-- "1" "2" "3" one and two thirds
-- nil "2" "3" two thirds
if not speller then
local function get_speller(module)
return require(module).spell_number
end
local success
success, speller = pcall(get_speller, spell_module)
if not success or type(speller) ~= 'function' then
add_warning(parms, 1, 'cvt_no_spell', 'spell')
return nil
end
end
local case
if parms.spell_upper == inout then
case = true
parms.spell_upper = nil -- only uppercase first word in a multiple unit
end
local sp = not parms.opt_sp_us
local adj = parms.opt_adjectival
return speller(number, numerator, denominator, case, sp, adj)
end
------------------------------------------------------------------------
-- BEGIN: Code required only for built-in units.
-- LATER: If need much more code, move to another module to simplify this module.
local function speed_of_sound(altitude)
-- This is for the Mach built-in unit of speed.
-- Return speed of sound in metres per second at given altitude in feet.
-- If no altitude given, use default (zero altitude = sea level).
-- Table gives speed of sound in miles per hour at various altitudes:
-- altitude = -17,499 to 402,499 feet
-- mach_table[a + 4] = s where
-- a = (altitude / 5000) rounded to nearest integer (-3 to 80)
-- s = speed of sound (mph) at that altitude
-- LATER: Should calculate result from an interpolation between the next
-- lower and higher altitudes in table, rather than rounding to nearest.
-- From: http://www.aerospaceweb.org/question/atmosphere/q0112.shtml
local mach_table = { -- a =
799.5, 787.0, 774.2, 761.207051, -- -3 to 0
748.0, 734.6, 721.0, 707.0, 692.8, 678.3, 663.5, 660.1, 660.1, 660.1, -- 1 to 10
660.1, 660.1, 660.1, 662.0, 664.3, 666.5, 668.9, 671.1, 673.4, 675.6, -- 11 to 20
677.9, 683.7, 689.9, 696.0, 702.1, 708.1, 714.0, 719.9, 725.8, 731.6, -- 21 to 30
737.3, 737.7, 737.7, 736.2, 730.5, 724.6, 718.8, 712.9, 707.0, 701.0, -- 31 to 40
695.0, 688.9, 682.8, 676.6, 670.4, 664.1, 657.8, 652.9, 648.3, 643.7, -- 41 to 50
639.1, 634.4, 629.6, 624.8, 620.0, 615.2, 613.2, 613.2, 613.2, 613.5, -- 51 to 60
614.4, 615.3, 616.7, 619.8, 623.4, 629.7, 635.0, 641.1, 650.6, 660.0, -- 61 to 70
672.5, 674.3, 676.1, 677.9, 679.7, 681.5, 683.3, 685.1, 686.8, 688.6, -- 71 to 80
}
altitude = altitude or 0
local a = (altitude < 0) and -altitude or altitude
a = floor(a / 5000 + 0.5)
if altitude < 0 then
a = -a
end
if a < -3 then
a = -3
elseif a > 80 then
a = 80
end
return mach_table[a + 4] * 0.44704 -- mph converted to m/s
end
-- END: Code required only for built-in units.
------------------------------------------------------------------------
local function add_style(parms, class)
-- Add selected template style to parms if not already present.
parms.templatestyles = parms.templatestyles or {}
if not parms.templatestyles[class] then
parms.templatestyles[class] = parms.frame:extensionTag({
name = 'templatestyles', args = { src = text_code.titles[class] }
})
end
end
local function get_styles(parms)
-- Return string of required template styles, empty if none.
if parms.templatestyles then
local t = {}
for _, v in pairs(parms.templatestyles) do
table.insert(t, v)
end
return table.concat(t)
end
return ''
end
local function get_range(word)
-- Return a range (string or table) corresponding to word (like "to"),
-- or return nil if not a range word.
local ranges = text_code.ranges
return ranges.types[word] or ranges.types[ranges.aliases[word]]
end
local function check_mismatch(unit1, unit2)
-- If unit1 cannot be converted to unit2, return an error message table.
-- This allows conversion between units of the same type, and between
-- Nm (normally torque) and ftlb (energy), as in gun-related articles.
-- This works because Nm is the base unit (scale = 1) for both the
-- primary type (torque), and the alternate type (energy, where Nm = J).
-- A match occurs if the primary types are the same, or if unit1 matches
-- the alternate type of unit2, and vice versa. That provides a whitelist
-- of which conversions are permitted between normally incompatible types.
if unit1.utype == unit2.utype or
(unit1.utype == unit2.alttype and unit1.alttype == unit2.utype) then
return nil
end
return { 'cvt_mismatch', unit1.utype, unit2.utype }
end
local function override_from(out_table, in_table, fields)
-- Copy the specified fields from in_table to out_table, but do not
-- copy nil fields (keep any corresponding field in out_table).
for _, field in ipairs(fields) do
if in_table[field] then
out_table[field] = in_table[field]
end
end
end
local function shallow_copy(t)
-- Return a shallow copy of table t.
-- Do not need the features and overhead of the Scribunto mw.clone().
local result = {}
for k, v in pairs(t) do
result[k] = v
end
return result
end
local unit_mt = {
-- Metatable to get missing values for a unit that does not accept SI prefixes.
-- Warning: The boolean value 'false' is returned for any missing field
-- so __index is not called twice for the same field in a given unit.
__index = function (self, key)
local value
if key == 'name1' or key == 'sym_us' then
value = self.symbol
elseif key == 'name2' then
value = self.name1 .. plural_suffix
elseif key == 'name1_us' then
value = self.name1
if not rawget(self, 'name2_us') then
-- If name1_us is 'foot', do not make name2_us by appending plural_suffix.
self.name2_us = self.name2
end
elseif key == 'name2_us' then
local raw1_us = rawget(self, 'name1_us')
if raw1_us then
value = raw1_us .. plural_suffix
else
value = self.name2
end
elseif key == 'link' then
value = self.name1
else
value = false
end
rawset(self, key, value)
return value
end
}
local function prefixed_name(unit, name, index)
-- Return unit name with SI prefix inserted at correct position.
-- index = 1 (name1), 2 (name2), 3 (name1_us), 4 (name2_us).
-- The position is a byte (not character) index, so use Lua's sub().
local pos = rawget(unit, 'prefix_position')
if type(pos) == 'string' then
pos = tonumber(split(pos, ',')[index])
end
if pos then
return name:sub(1, pos - 1) .. unit.si_name .. name:sub(pos)
end
return unit.si_name .. name
end
local unit_prefixed_mt = {
-- Metatable to get missing values for a unit that accepts SI prefixes.
-- Before use, fields si_name, si_prefix must be defined.
-- The unit must define _symbol, _name1 and
-- may define _sym_us, _name1_us, _name2_us
-- (_sym_us, _name2_us may be defined for a language using sp=us
-- to refer to a variant unrelated to U.S. units).
__index = function (self, key)
local value
if key == 'symbol' then
value = self.si_prefix .. self._symbol
if value == 'l' then value = 'L' end
elseif key == 'sym_us' then
value = rawget(self, '_sym_us')
if value then
value = self.si_prefix .. value
else
value = self.symbol
end
elseif key == 'name1' then
value = prefixed_name(self, self._name1, 1)
elseif key == 'name2' then
value = rawget(self, '_name2')
if value then
value = prefixed_name(self, value, 2)
else
value = self.name1 .. plural_suffix
end
elseif key == 'name1_us' then
value = rawget(self, '_name1_us')
if value then
value = prefixed_name(self, value, 3)
else
value = self.name1
end
elseif key == 'name2_us' then
value = rawget(self, '_name2_us')
if value then
value = prefixed_name(self, value, 4)
elseif rawget(self, '_name1_us') then
value = self.name1_us .. plural_suffix
else
value = self.name2
end
elseif key == 'link' then
value = self.name1
else
value = false
end
rawset(self, key, value)
return value
end
}
local unit_per_mt = {
-- Metatable to get values for a per unit of form "x/y".
-- This is never called to determine a unit name or link because per units
-- are handled as a special case.
-- Similarly, the default output is handled elsewhere, and for a symbol
-- this is only called from get_default() for default_exceptions.
__index = function (self, key)
local value
if key == 'symbol' then
local per = self.per
local unit1, unit2 = per[1], per[2]
if unit1 then
value = unit1[key] .. '/' .. unit2[key]
else
value = '/' .. unit2[key]
end
elseif key == 'sym_us' then
value = self.symbol
elseif key == 'scale' then
local per = self.per
local unit1, unit2 = per[1], per[2]
value = (unit1 and unit1.scale or 1) * self.scalemultiplier / unit2.scale
else
value = false
end
rawset(self, key, value)
return value
end
}
local function make_per(unitcode, unit_table, ulookup)
-- Return true, t where t is a per unit with unit codes expanded to unit tables,
-- or return false, t where t is an error message table.
local result = {
unitcode = unitcode,
utype = unit_table.utype,
per = {}
}
override_from(result, unit_table, { 'invert', 'iscomplex', 'default', 'link', 'symbol', 'symlink' })
result.symbol_raw = (result.symbol or false) -- to distinguish between a defined exception and a metatable calculation
local prefix
for i, v in ipairs(unit_table.per) do
if i == 1 and v == '' then
-- First unit symbol can be empty; that gives a nil first unit table.
elseif i == 1 and text_code.currency[v] then
prefix = currency_text or v
else
local success, t = ulookup(v)
if not success then return false, t end
result.per[i] = t
end
end
local multiplier = unit_table.multiplier
if not result.utype then
-- Creating an automatic per unit.
local unit1 = result.per[1]
local utype = (unit1 and unit1.utype or prefix or '') .. '/' .. result.per[2].utype
local t = data_code.per_unit_fixups[utype]
if t then
if type(t) == 'table' then
utype = t.utype or utype
result.link = result.link or t.link
multiplier = multiplier or t.multiplier
else
utype = t
end
end
result.utype = utype
end
result.scalemultiplier = multiplier or 1
result.vprefix = prefix or false -- set to non-nil to avoid calling __index
return true, setmetatable(result, unit_per_mt)
end
local function lookup(parms, unitcode, what, utable, fails, depth)
-- Return true, t where t is a copy of the unit's converter table,
-- or return false, t where t is an error message table.
-- Parameter 'what' determines whether combination units are accepted:
-- 'no_combination' : single unit only
-- 'any_combination' : single unit or combination or output multiple
-- 'only_multiple' : single unit or output multiple only
-- Parameter unitcode is a symbol (like 'g'), with an optional SI prefix (like 'kg').
-- If, for example, 'kg' is in this table, that entry is used;
-- otherwise the prefix ('k') is applied to the base unit ('g').
-- If unitcode is a known combination code (and if allowed by what),
-- a table of output multiple unit tables is included in the result.
-- For compatibility with the old template, an underscore in a unitcode is
-- replaced with a space so usage like {{convert|350|board_feet}} works.
-- Wikignomes may also put two spaces or " " in combinations, so
-- replace underscore, " ", and multiple spaces with a single space.
utable = utable or parms.unittable or all_units
fails = fails or {}
depth = depth and depth + 1 or 1
if depth > 9 then
-- There are ways to mistakenly define units which result in infinite
-- recursion when lookup() is called. That gives a long delay and very
-- confusing error messages, so the depth parameter is used as a guard.
return false, { 'cvt_lookup', unitcode }
end
if unitcode == nil or unitcode == '' then
return false, { 'cvt_no_unit' }
end
unitcode = unitcode:gsub('_', ' '):gsub(' ', ' '):gsub(' +', ' ')
local function call_make_per(t)
return make_per(unitcode, t,
function (ucode) return lookup(parms, ucode, 'no_combination', utable, fails, depth) end
)
end
local t = utable[unitcode]
if t then
if t.shouldbe then
return false, { 'cvt_should_be', t.shouldbe }
end
if t.sp_us then
parms.opt_sp_us = true
end
local target = t.target -- nil, or unitcode is an alias for this target
if target then
local success, result = lookup(parms, target, what, utable, fails, depth)
if not success then return false, result end
override_from(result, t, { 'customary', 'default', 'link', 'symbol', 'symlink' })
local multiplier = t.multiplier
if multiplier then
result.multiplier = tostring(multiplier)
result.scale = result.scale * multiplier
end
return true, result
end
if t.per then
return call_make_per(t)
end
local combo = t.combination -- nil or a table of unitcodes
if combo then
local multiple = t.multiple
if what == 'no_combination' or (what == 'only_multiple' and not multiple) then
return false, { 'cvt_bad_unit', unitcode }
end
-- Recursively create a combination table containing the
-- converter table of each unitcode.
local result = { utype = t.utype, multiple = multiple, combination = {} }
local cvt = result.combination
for i, v in ipairs(combo) do
local success, t = lookup(parms, v, multiple and 'no_combination' or 'only_multiple', utable, fails, depth)
if not success then return false, t end
cvt[i] = t
end
return true, result
end
local result = shallow_copy(t)
result.unitcode = unitcode
if result.prefixes then
result.si_name = ''
result.si_prefix = ''
return true, setmetatable(result, unit_prefixed_mt)
end
return true, setmetatable(result, unit_mt)
end
local SIprefixes = text_code.SIprefixes
for plen = SIprefixes[1] or 2, 1, -1 do
-- Look for an SI prefix; should never occur with an alias.
-- Check for longer prefix first ('dam' is decametre).
-- SIprefixes[1] = prefix maximum #characters (as seen by mw.ustring.sub).
local prefix = usub(unitcode, 1, plen)
local si = SIprefixes[prefix]
if si then
local t = utable[usub(unitcode, plen+1)]
if t and t.prefixes then
local result = shallow_copy(t)
result.unitcode = unitcode
result.si_name = parms.opt_sp_us and si.name_us or si.name
result.si_prefix = si.prefix or prefix
result.scale = t.scale * 10 ^ (si.exponent * t.prefixes)
return true, setmetatable(result, unit_prefixed_mt)
end
end
end
-- Accept user-defined combinations like "acre+m2+ha" or "acre m2 ha" for output.
-- If '+' is used, each unit code can include a space, and any error is fatal.
-- If ' ' is used and if each space-separated word is a unit code, it is a combo,
-- but errors are not fatal so the unit code can be looked up as an extra unit.
local err_is_fatal
local combo = collection()
if unitcode:find('+', 1, true) then
err_is_fatal = true
for item in (unitcode .. '+'):gmatch('%s*(.-)%s*%+') do
if item ~= '' then
combo:add(item)
end
end
elseif unitcode:find('%s') then
for item in unitcode:gmatch('%S+') do
combo:add(item)
end
end
if combo.n > 1 then
local function lookup_combo()
if what == 'no_combination' or what == 'only_multiple' then
return false, { 'cvt_bad_unit', unitcode }
end
local result = { combination = {} }
local cvt = result.combination
for i, v in ipairs(combo) do
local success, t = lookup(parms, v, 'only_multiple', utable, fails, depth)
if not success then return false, t end
if i == 1 then
result.utype = t.utype
else
local mismatch = check_mismatch(result, t)
if mismatch then
return false, mismatch
end
end
cvt[i] = t
end
return true, result
end
local success, result = lookup_combo()
if success or err_is_fatal then
return success, result
end
end
-- Accept any unit with an engineering notation prefix like "e6cuft"
-- (million cubic feet), but not chained prefixes like "e3e6cuft",
-- and not if the unit is a combination or multiple,
-- and not if the unit has an offset or is a built-in.
-- Only en digits are accepted.
local exponent, baseunit = unitcode:match('^e(%d+)(.*)')
if exponent then
local engscale = text_code.eng_scales[exponent]
if engscale then
local success, result = lookup(parms, baseunit, 'no_combination', utable, fails, depth)
if success and not (result.offset or result.builtin or result.engscale) then
result.unitcode = unitcode -- 'e6cuft' not 'cuft'
result.defkey = unitcode -- key to lookup default exception
result.engscale = engscale
result.scale = result.scale * 10 ^ tonumber(exponent)
return true, result
end
end
end
-- Look for x/y; split on right-most slash to get scale correct (x/y/z is x/y per z).
local top, bottom = unitcode:match('^(.-)/([^/]+)$')
if top and not unitcode:find('e%d') then
-- If valid, create an automatic per unit for an "x/y" unit code.
-- The unitcode must not include extraneous spaces.
-- Engineering notation (apart from at start and which has been stripped before here),
-- is not supported so do not make a per unit if find text like 'e3' in unitcode.
local success, result = call_make_per({ per = {top, bottom} })
if success then
return true, result
end
end
if not parms.opt_ignore_error and not get_range(unitcode) then
-- Want the "what links here" list for the extra_module to show only cases
-- where an extra unit is used, so do not require it if invoked from {{val}}
-- or if looking up a range word which cannot be a unit.
if not extra_units then
local success, extra = pcall(function () return require(extra_module).extra_units end)
if success and type(extra) == 'table' then
extra_units = extra
end
end
if extra_units then
-- A unit in one data table might refer to a unit in the other table, so
-- switch between them, relying on fails or depth to terminate loops.
if not fails[unitcode] then
fails[unitcode] = true
local other = (utable == all_units) and extra_units or all_units
local success, result = lookup(parms, unitcode, what, other, fails, depth)
if success then
return true, result
end
end
end
end
if to_en_table then
-- At fawiki it is common to translate all digits so a unit like "km2" becomes "km۲".
local en_code = ustring.gsub(unitcode, '%d', to_en_table)
if en_code ~= unitcode then
return lookup(parms, en_code, what, utable, fails, depth)
end
end
return false, { 'cvt_unknown', unitcode }
end
local function valid_number(num)
-- Return true if num is a valid number.
-- In Scribunto (different from some standard Lua), when expressed as a string,
-- overflow or other problems are indicated with text like "inf" or "nan"
-- which are regarded as invalid here (each contains "n").
if type(num) == 'number' and tostring(num):find('n', 1, true) == nil then
return true
end
end
local function hyphenated(name, parts)
-- Return a hyphenated form of given name (for adjectival usage).
-- The name may be linked and the target of the link must not be changed.
-- Hypothetical examples:
-- [[long ton|ton]] → [[long ton|ton]] (no change)
-- [[tonne|long ton]] → [[tonne|long-ton]]
-- [[metric ton|long ton]] → [[metric ton|long-ton]]
-- [[long ton]] → [[long ton|long-ton]]
-- Input can also have multiple links in a single name like:
-- [[United States customary units|U.S.]] [[US gallon|gallon]]
-- [[mile]]s per [[United States customary units|U.S.]] [[quart]]
-- [[long ton]]s per [[short ton]]
-- Assume that links cannot be nested (never like "[[abc[[def]]ghi]]").
-- This uses a simple and efficient procedure that works for most cases.
-- Some units (if used) would require more, and can later think about
-- adding a method to handle exceptions.
-- The procedure is to replace each space with a hyphen, but
-- not a space after ')' [for "(pre-1954 US) nautical mile"], and
-- not spaces immediately before '(' or in '(...)' [for cases like
-- "British thermal unit (ISO)" and "Calorie (International Steam Table)"].
if name:find(' ', 1, true) then
if parts then
local pos
if name:sub(1, 1) == '(' then
pos = name:find(')', 1, true)
if pos then
return name:sub(1, pos+1) .. name:sub(pos+2):gsub(' ', '-')
end
elseif name:sub(-1) == ')' then
pos = name:find('(', 1, true)
if pos then
return name:sub(1, pos-2):gsub(' ', '-') .. name:sub(pos-1)
end
end
return name:gsub(' ', '-')
end
parts = collection()
for before, item, after in name:gmatch('([^[]*)(%[%[[^[]*%]%])([^[]*)') do
if item:find(' ', 1, true) then
local prefix
local plen = item:find('|', 1, true)
if plen then
prefix = item:sub(1, plen)
item = item:sub(plen + 1, -3)
else
prefix = item:sub(1, -3) .. '|'
item = item:sub(3, -3)
end
item = prefix .. hyphenated(item, parts) .. ']]'
end
parts:add(before:gsub(' ', '-') .. item .. after:gsub(' ', '-'))
end
if parts.n == 0 then
-- No link like "[[...]]" was found in the original name.
parts:add(hyphenated(name, parts))
end
return table.concat(parts)
end
return name
end
local function hyphenated_maybe(parms, want_name, sep, id, inout)
-- Return s, f where
-- s = id, possibly modified
-- f = true if hyphenated
-- Possible modifications: hyphenate; prepend '-'; append mid text.
if id == nil or id == '' then
return ''
end
local mid = (inout == (parms.opt_flip and 'out' or 'in')) and parms.mid or ''
if want_name then
if parms.opt_adjectival then
return '-' .. hyphenated(id) .. mid, true
end
if parms.opt_add_s and id:sub(-1) ~= 's' then
id = id .. 's' -- for nowiki
end
end
return sep .. id .. mid
end
local function use_minus(text)
-- Return text with Unicode minus instead of '-', if present.
if text:sub(1, 1) == '-' then
return MINUS .. text:sub(2)
end
return text
end
local function digit_groups(parms, text, method)
-- Return a numbered table of groups of digits (left-to-right, in local language).
-- Parameter method is a number or nil:
-- 3 for 3-digit grouping (default), or
-- 2 for 3-then-2 grouping (only for digits before decimal mark).
local len_right
local len_left = text:find('.', 1, true)
if len_left then
len_right = #text - len_left
len_left = len_left - 1
else
len_left = #text
end
local twos = method == 2 and len_left > 5
local groups = collection()
local run = len_left
local n
if run < 4 or (run == 4 and parms.opt_comma5) then
if parms.opt_gaps then
n = run
else
n = #text
end
elseif twos then
n = run % 2 == 0 and 1 or 2
else
n = run % 3 == 0 and 3 or run % 3
end
while run > 0 do
groups:add(n)
run = run - n
n = (twos and run > 3) and 2 or 3
end
if len_right then
if groups.n == 0 then
groups:add(0)
end
if parms.opt_gaps and len_right > 3 then
local want4 = not parms.opt_gaps3 -- true gives no gap before trailing single digit
local isfirst = true
run = len_right
while run > 0 do
n = (want4 and run == 4) and 4 or (run > 3 and 3 or run)
if isfirst then
isfirst = false
groups[groups.n] = groups[groups.n] + 1 + n
else
groups:add(n)
end
run = run - n
end
else
groups[groups.n] = groups[groups.n] + 1 + len_right
end
end
local pos = 1
for i, length in ipairs(groups) do
groups[i] = from_en(text:sub(pos, pos + length - 1))
pos = pos + length
end
return groups
end
function with_separator(parms, text) -- for forward declaration above
-- Input text is a number in en digits with optional '.' decimal mark.
-- Return an equivalent, formatted for display:
-- with a custom decimal mark instead of '.', if wanted
-- with thousand separators inserted, if wanted
-- digits in local language
-- The given text is like '123' or '123.' or '12345.6789'.
-- The text has no sign (caller inserts that later, if necessary).
-- When using gaps, they are inserted before and after the decimal mark.
-- Separators are inserted only before the decimal mark.
-- A trailing dot (as in '123.') is removed because their use appears to
-- be accidental, and such a number should be shown as '123' or '123.0'.
-- It is useful for convert to suppress the dot so, for example, '4000.'
-- is a simple way of indicating that all the digits are significant.
if text:sub(-1) == '.' then
text = text:sub(1, -2)
end
if #text < 4 or parms.opt_nocomma or numsep == '' then
return from_en(text)
end
local groups = digit_groups(parms, text, group_method)
if parms.opt_gaps then
if groups.n <= 1 then
return groups[1] or ''
end
local nowrap = '<span style="white-space: nowrap">'
local gap = '<span style="margin-left: 0.25em">'
local close = '</span>'
return nowrap .. groups[1] .. gap .. table.concat(groups, close .. gap, 2, groups.n) .. close .. close
end
return table.concat(groups, numsep)
end
-- An input value like 1.23e12 is displayed using scientific notation (1.23×10¹²).
-- That also makes the output use scientific notation, except for small values.
-- In addition, very small or very large output values use scientific notation.
-- Use format(fmtpower, significand, '10', exponent) where each argument is a string.
local fmtpower = '%s<span style="margin:0 .15em 0 .25em">×</span>%s<sup>%s</sup>'
local function with_exponent(parms, show, exponent)
-- Return wikitext to display the implied value in scientific notation.
-- Input uses en digits; output uses digits in local language.
return format(fmtpower, with_separator(parms, show), from_en('10'), use_minus(from_en(tostring(exponent))))
end
local function make_sigfig(value, sigfig)
-- Return show, exponent that are equivalent to the result of
-- converting the number 'value' (where value >= 0) to a string,
-- rounded to 'sigfig' significant figures.
-- The returned items are:
-- show: a string of digits; no sign and no dot;
-- there is an implied dot before show.
-- exponent: a number (an integer) to shift the implied dot.
-- Resulting value = tonumber('.' .. show) * 10^exponent.
-- Examples:
-- make_sigfig(23.456, 3) returns '235', 2 (.235 * 10^2).
-- make_sigfig(0.0023456, 3) returns '235', -2 (.235 * 10^-2).
-- make_sigfig(0, 3) returns '000', 1 (.000 * 10^1).
if sigfig <= 0 then
sigfig = 1
elseif sigfig > maxsigfig then
sigfig = maxsigfig
end
if value == 0 then
return string.rep('0', sigfig), 1
end
local exp, fracpart = math.modf(log10(value))
if fracpart >= 0 then
fracpart = fracpart - 1
exp = exp + 1
end
local digits = format('%.0f', 10^(fracpart + sigfig))
if #digits > sigfig then
-- Overflow (for sigfig=3: like 0.9999 rounding to "1000"; need "100").
digits = digits:sub(1, sigfig)
exp = exp + 1
end
assert(#digits == sigfig, 'Bug: rounded number has wrong length')
return digits, exp
end
-- Fraction output format.
local fracfmt = {
{ -- Like {{frac}} (fraction slash).
'<span class="frac" role="math">{SIGN}<span class="num">{NUM}</span>⁄<span class="den">{DEN}</span></span>', -- 1/2
'<span class="frac" role="math">{SIGN}{WHOLE}<span class="sr-only">+</span><span class="num">{NUM}</span>⁄<span class="den">{DEN}</span></span>', -- 1+2/3
style = 'frac',
},
{ -- Like {{sfrac}} (stacked fraction, that is, horizontal bar).
'<span class="sfrac tion" role="math">{SIGN}<span class="num">{NUM}</span><span class="sr-only">/</span><span class="den">{DEN}</span></span>', -- 1//2
'<span class="sfrac" role="math">{SIGN}{WHOLE}<span class="sr-only">+</span><span class="tion"><span class="num">{NUM}</span><span class="sr-only">/</span><span class="den">{DEN}</span></span></span>', -- 1+2//3
style = 'sfrac',
},
}
local function format_fraction(parms, inout, negative, wholestr, numstr, denstr, do_spell, style)
-- Return wikitext for a fraction, possibly spelled.
-- Inputs use en digits and have no sign; output uses digits in local language.
local wikitext
if not style then
style = parms.opt_fraction_horizontal and 2 or 1
end
if wholestr == '' then
wholestr = nil
end
local substitute = {
SIGN = negative and MINUS or '',
WHOLE = wholestr and with_separator(parms, wholestr),
NUM = from_en(numstr),
DEN = from_en(denstr),
}
wikitext = fracfmt[style][wholestr and 2 or 1]:gsub('{(%u+)}', substitute)
if do_spell then
if negative then
if wholestr then
wholestr = '-' .. wholestr
else
numstr = '-' .. numstr
end
end
local s = spell_number(parms, inout, wholestr, numstr, denstr)
if s then
return s
end
end
add_style(parms, fracfmt[style].style)
return wikitext
end
local function format_number(parms, show, exponent, isnegative)
-- Parameter show is a string or a table containing strings.
-- Each string is a formatted number in en digits and optional '.' decimal mark.
-- A table represents a fraction: integer, numerator, denominator;
-- if a table is given, exponent must be nil.
-- Return t where t is a table with fields:
-- show = wikitext formatted to display implied value
-- (digits in local language)
-- is_scientific = true if show uses scientific notation
-- clean = unformatted show (possibly adjusted and with inserted '.')
-- (en digits)
-- sign = '' or MINUS
-- exponent = exponent (possibly adjusted)
-- The clean and exponent fields can be used to calculate the
-- rounded absolute value, if needed.
--
-- The value implied by the arguments is found from:
-- exponent is nil; and
-- show is a string of digits (no sign), with an optional dot;
-- show = '123.4' is value 123.4, '1234' is value 1234.0;
-- or:
-- exponent is an integer indicating where dot should be;
-- show is a string of digits (no sign and no dot);
-- there is an implied dot before show;
-- show does not start with '0';
-- show = '1234', exponent = 3 is value 0.1234*10^3 = 123.4.
--
-- The formatted result:
-- * Is for an output value and is spelled if wanted and possible.
-- * Includes a Unicode minus if isnegative and not spelled.
-- * Uses a custom decimal mark, if wanted.
-- * Has digits grouped where necessary, if wanted.
-- * Uses scientific notation if requested, or for very small or large values
-- (which forces result to not be spelled).
-- * Has no more than maxsigfig significant digits
-- (same as old template and {{#expr}}).
local xhi, xlo -- these control when scientific notation (exponent) is used
if parms.opt_scientific then
xhi, xlo = 4, 2 -- default for output if input uses e-notation
elseif parms.opt_scientific_always then
xhi, xlo = 0, 0 -- always use scientific notation (experimental)
else
xhi, xlo = 10, 4 -- default
end
local sign = isnegative and MINUS or ''
local maxlen = maxsigfig
local tfrac
if type(show) == 'table' then
tfrac = show
show = tfrac.wholestr
assert(exponent == nil, 'Bug: exponent given with fraction')
end
if not tfrac and not exponent then
local integer, dot, decimals = show:match('^(%d*)(%.?)(.*)')
if integer == '0' or integer == '' then
local zeros, figs = decimals:match('^(0*)([^0]?.*)')
if #figs == 0 then
if #zeros > maxlen then
show = '0.' .. zeros:sub(1, maxlen)
end
elseif #zeros >= xlo then
show = figs
exponent = -#zeros
elseif #figs > maxlen then
show = '0.' .. zeros .. figs:sub(1, maxlen)
end
elseif #integer >= xhi then
show = integer .. decimals
exponent = #integer
else
maxlen = maxlen + #dot
if #show > maxlen then
show = show:sub(1, maxlen)
end
end
end
if exponent then
local function zeros(n)
return string.rep('0', n)
end
if #show > maxlen then
show = show:sub(1, maxlen)
end
if exponent > xhi or exponent <= -xlo or (exponent == xhi and show ~= '1' .. zeros(xhi - 1)) then
-- When xhi, xlo = 10, 4 (the default), scientific notation is used if the
-- rounded value satisfies: value >= 1e9 or value < 1e-4 (1e9 = 0.1e10),
-- except if show is '1000000000' (1e9), for example:
-- {{convert|1000000000|m|m|sigfig=10}} → 1,000,000,000 metres (1,000,000,000 m)
local significand
if #show > 1 then
significand = show:sub(1, 1) .. '.' .. show:sub(2)
else
significand = show
end
return {
clean = '.' .. show,
exponent = exponent,
sign = sign,
show = sign .. with_exponent(parms, significand, exponent-1),
is_scientific = true,
}
end
if exponent >= #show then
show = show .. zeros(exponent - #show) -- result has no dot
elseif exponent <= 0 then
show = '0.' .. zeros(-exponent) .. show
else
show = show:sub(1, exponent) .. '.' .. show:sub(exponent+1)
end
end
local formatted_show
if tfrac then
show = tostring(tfrac.value) -- to set clean in returned table
formatted_show = format_fraction(parms, 'out', isnegative, tfrac.wholestr, tfrac.numstr, tfrac.denstr, parms.opt_spell_out)
else
if isnegative and show:match('^0.?0*$') then
sign = '' -- don't show minus if result is negative but rounds to zero
end
formatted_show = sign .. with_separator(parms, show)
if parms.opt_spell_out then
formatted_show = spell_number(parms, 'out', sign .. show) or formatted_show
end
end
return {
clean = show,
sign = sign,
show = formatted_show,
is_scientific = false, -- to avoid calling __index
}
end
local function extract_fraction(parms, text, negative)
-- If text represents a fraction, return
-- value, altvalue, show, denominator
-- where
-- value is a number (value of the fraction in argument text)
-- altvalue is an alternate interpretation of any fraction for the hands
-- unit where "12.1+3/4" means 12 hands 1.75 inches
-- show is a string (formatted text for display of an input value,
-- and is spelled if wanted and possible)
-- denominator is value of the denominator in the fraction
-- Otherwise, return nil.
-- Input uses en digits and '.' decimal mark (input has been translated).
-- Output uses digits in local language and local decimal mark, if any.
------------------------------------------------------------------------
-- Originally this function accepted x+y/z where x, y, z were any valid
-- numbers, possibly with a sign. For example '1.23e+2+1.2/2.4' = 123.5,
-- and '2-3/8' = 1.625. However, such usages were found to be errors or
-- misunderstandings, so since August 2014 the following restrictions apply:
-- x (if present) is an integer or has a single digit after decimal mark
-- y and z are unsigned integers
-- e-notation is not accepted
-- The overall number can start with '+' or '-' (so '12+3/4' and '+12+3/4'
-- and '-12-3/4' are valid).
-- Any leading negative sign is removed by the caller, so only inputs
-- like the following are accepted here (may have whitespace):
-- negative = false false true (there was a leading '-')
-- text = '2/3' '+2/3' '2/3'
-- text = '1+2/3' '+1+2/3' '1-2/3'
-- text = '12.3+1/2' '+12.3+1/2' '12.3-1/2'
-- Values like '12.3+1/2' are accepted, but are intended only for use
-- with the hands unit (not worth adding code to enforce that).
------------------------------------------------------------------------
local leading_plus, prefix, numstr, slashes, denstr =
text:match('^%s*(%+?)%s*(.-)%s*(%d+)%s*(/+)%s*(%d+)%s*$')
if not leading_plus then
-- Accept a single U+2044 fraction slash because that may be pasted.
leading_plus, prefix, numstr, denstr =
text:match('^%s*(%+?)%s*(.-)%s*(%d+)%s*⁄%s*(%d+)%s*$')
slashes = '/'
end
local numerator = tonumber(numstr)
local denominator = tonumber(denstr)
if numerator == nil or denominator == nil or (negative and leading_plus ~= '') then
return nil
end
local whole, wholestr
if prefix == '' then
wholestr = ''
whole = 0
else
-- Any prefix must be like '12+' or '12-' (whole number and fraction sign);
-- '12.3+' and '12.3-' are also accepted (single digit after decimal point)
-- because '12.3+1/2 hands' is valid (12 hands 3½ inches).
local num1, num2, frac_sign = prefix:match('^(%d+)(%.?%d?)%s*([+%-])$')
if num1 == nil then return nil end
if num2 == '' then -- num2 must be '' or like '.1' but not '.' or '.12'
wholestr = num1
else
if #num2 ~= 2 then return nil end
wholestr = num1 .. num2
end
if frac_sign ~= (negative and '-' or '+') then return nil end
whole = tonumber(wholestr)
if whole == nil then return nil end
end
local value = whole + numerator / denominator
if not valid_number(value) then return nil end
local altvalue = whole + numerator / (denominator * 10)
local style = #slashes -- kludge: 1 or 2 slashes can be used to select style
if style > 2 then style = 2 end
local wikitext = format_fraction(parms, 'in', negative, leading_plus .. wholestr, numstr, denstr, parms.opt_spell_in, style)
return value, altvalue, wikitext, denominator
end
local function extract_number(parms, text, another, no_fraction)
-- Return true, info if can extract a number from text,
-- where info is a table with the result,
-- or return false, t where t is an error message table.
-- Input can use en digits or digits in local language and can
-- have references at the end. Accepting references is intended
-- for use in infoboxes with a field for a value passed to convert.
-- Parameter another = true if the expected value is not the first.
-- Before processing, the input text is cleaned:
-- * Any thousand separators (valid or not) are removed.
-- * Any sign is replaced with '-' (if negative) or '' (otherwise).
-- That replaces Unicode minus with '-'.
-- If successful, the returned info table contains named fields:
-- value = a valid number
-- altvalue = a valid number, usually same as value but different
-- if fraction used (for hands unit)
-- singular = true if value is 1 or -1 (to use singular form of units)
-- clean = cleaned text with any separators and sign removed
-- (en digits and '.' decimal mark)
-- show = text formatted for output, possibly with ref strip markers
-- (digits in local language and custom decimal mark)
-- The resulting show:
-- * Is for an input value and is spelled if wanted and possible.
-- * Has a rounded value, if wanted.
-- * Has digits grouped where necessary, if wanted.
-- * If negative, a Unicode minus is used; otherwise the sign is
-- '+' (if the input text used '+'), or is '' (if no sign in input).
text = strip(text or '')
local reference
local pos = text:find('\127', 1, true)
if pos then
local before = text:sub(1, pos - 1)
local remainder = text:sub(pos)
local refs = {}
while #remainder > 0 do
local ref, spaces
ref, spaces, remainder = remainder:match('^(\127[^\127]*UNIQ[^\127]*%-ref[^\127]*\127)(%s*)(.*)')
if ref then
table.insert(refs, ref)
else
refs = {}
break
end
end
if #refs > 0 then
text = strip(before)
reference = table.concat(refs)
end
end
local clean = to_en(text, parms)
if clean == '' then
return false, { another and 'cvt_no_num2' or 'cvt_no_num' }
end
local isnegative, propersign = false, '' -- most common case
local singular, show, denominator
local value = tonumber(clean)
local altvalue
if value then
local sign = clean:sub(1, 1)
if sign == '+' or sign == '-' then
propersign = (sign == '+') and '+' or MINUS
clean = clean:sub(2)
end
if value < 0 then
isnegative = true
value = -value
end
else
local valstr
for _, prefix in ipairs({ '-', MINUS, '−' }) do
-- Including '-' sets isnegative in case input is a fraction like '-2-3/4'.
local plen = #prefix
if clean:sub(1, plen) == prefix then
valstr = clean:sub(plen + 1)
if valstr:match('^%s') then -- "- 1" is invalid but "-1 - 1/2" is ok
return false, { 'cvt_bad_num', text }
end
break
end
end
if valstr then
isnegative = true
propersign = MINUS
clean = valstr
value = tonumber(clean)
end
if value == nil then
if not no_fraction then
value, altvalue, show, denominator = extract_fraction(parms, clean, isnegative)
end
if value == nil then
return false, { 'cvt_bad_num', text }
end
if value <= 1 then
singular = true -- for example, "½ mile" or "one half mile" (singular unit)
end
end
end
if not valid_number(value) then -- for example, "1e310" may overflow
return false, { 'cvt_invalid_num' }
end
if show == nil then
-- clean is a non-empty string with no spaces, and does not represent a fraction,
-- and value = tonumber(clean) is a number >= 0.
-- If the input uses e-notation, show will be displayed using a power of ten, but
-- we use the number as given so it might not be normalized scientific notation.
-- The input value is spelled if specified so any e-notation is ignored;
-- that allows input like 2e6 to be spelled as "two million" which works
-- because the spell module converts '2e6' to '2000000' before spelling.
local function rounded(value, default, exponent)
local precision = parms.opt_ri
if precision then
local fmt = '%.' .. format('%d', precision) .. 'f'
local result = fmt:format(tonumber(value) + 2e-14) -- fudge for some common cases of bad rounding
if not exponent then
singular = (tonumber(result) == 1)
end
return result
end
return default
end
singular = (value == 1)
local scientific
local significand, exponent = clean:match('^([%d.]+)[Ee]([+%-]?%d+)')
if significand then
show = with_exponent(parms, rounded(significand, significand, exponent), exponent)
scientific = true
else
show = with_separator(parms, rounded(value, clean))
end
show = propersign .. show
if parms.opt_spell_in then
show = spell_number(parms, 'in', propersign .. rounded(value, clean)) or show
scientific = false
end
if scientific then
parms.opt_scientific = true
end
end
if isnegative and (value ~= 0) then
value = -value
altvalue = -(altvalue or value)
end
return true, {
value = value,
altvalue = altvalue or value,
singular = singular,
clean = clean,
show = show .. (reference or ''),
denominator = denominator,
}
end
local function get_number(text)
-- Return v, f where:
-- v = nil (text is not a number)
-- or
-- v = value of text (text is a number)
-- f = true if value is an integer
-- Input can use en digits or digits in local language or separators,
-- but no Unicode minus, and no fraction.
if text then
local number = tonumber(to_en(text))
if number then
local _, fracpart = math.modf(number)
return number, (fracpart == 0)
end
end
end
local function gcd(a, b)
-- Return the greatest common denominator for the given values,
-- which are known to be positive integers.
if a > b then
a, b = b, a
end
if a <= 0 then
return b
end
local r = b % a
if r <= 0 then
return a
end
if r == 1 then
return 1
end
return gcd(r, a)
end
local function fraction_table(value, denominator)
-- Return value as a string or a table:
-- * If result is a string, there is no fraction, and the result
-- is value formatted as a string of en digits.
-- * If result is a table, it represents a fraction with named fields:
-- wholestr, numstr, denstr (strings of en digits for integer, numerator, denominator).
-- The result is rounded to the nearest multiple of (1/denominator).
-- If the multiple is zero, no fraction is included.
-- No fraction is included if value is very large as the fraction would
-- be unhelpful, particularly if scientific notation is required.
-- Input value is a non-negative number.
-- Input denominator is a positive integer for the desired fraction.
if value <= 0 then
return '0'
end
if denominator <= 0 or value > 1e8 then
return format('%.2f', value)
end
local integer, decimals = math.modf(value)
local numerator = floor((decimals * denominator) +
0.5 + 2e-14) -- add fudge for some common cases of bad rounding
if numerator >= denominator then
integer = integer + 1
numerator = 0
end
local wholestr = tostring(integer)
if numerator > 0 then
local div = gcd(numerator, denominator)
if div > 1 then
numerator = numerator / div
denominator = denominator / div
end
return {
wholestr = (integer > 0) and wholestr or '',
numstr = tostring(numerator),
denstr = tostring(denominator),
value = value,
}
end
return wholestr
end
local function preunits(count, preunit1, preunit2)
-- If count is 1:
-- ignore preunit2
-- return p1
-- else:
-- preunit1 is used for preunit2 if the latter is empty
-- return p1, p2
-- where:
-- p1 is text to insert before the input unit
-- p2 is text to insert before the output unit
-- p1 or p2 may be nil to mean "no preunit"
-- Using '+' gives output like "5+ feet" (no space before, but space after).
local function withspace(text, wantboth)
-- Return text with space before and, if wantboth, after.
-- However, no space is added if there is a space or ' ' or '-'
-- at that position ('-' is for adjectival text).
-- There is also no space if text starts with '&'
-- (e.g. '°' would display a degree symbol with no preceding space).
local char = text:sub(1, 1)
if char == '&' then
return text -- an html entity can be used to specify the exact display
end
if not (char == ' ' or char == '-' or char == '+') then
text = ' ' .. text
end
if wantboth then
char = text:sub(-1, -1)
if not (char == ' ' or char == '-' or text:sub(-6, -1) == ' ') then
text = text .. ' '
end
end
return text
end
local PLUS = '+ '
preunit1 = preunit1 or ''
local trim1 = strip(preunit1)
if count == 1 then
if trim1 == '' then
return nil
end
if trim1 == '+' then
return PLUS
end
return withspace(preunit1, true)
end
preunit1 = withspace(preunit1)
preunit2 = preunit2 or ''
local trim2 = strip(preunit2)
if trim1 == '+' then
if trim2 == '' or trim2 == '+' then
return PLUS, PLUS
end
preunit1 = PLUS
end
if trim2 == '' then
if trim1 == '' then
return nil, nil
end
preunit2 = preunit1
elseif trim2 == '+' then
preunit2 = PLUS
elseif trim2 == ' ' then -- trick to make preunit2 empty
preunit2 = nil
else
preunit2 = withspace(preunit2)
end
return preunit1, preunit2
end
local function range_text(range, want_name, parms, before, after, inout, options)
-- Return before .. rtext .. after
-- where rtext is the text that separates two values in a range.
local rtext, adj_text, exception
options = options or {}
if type(range) == 'table' then
-- Table must specify range text for ('off' and 'on') or ('input' and 'output'),
-- and may specify range text for 'adj=on',
-- and may specify exception = true.
rtext = range[want_name and 'off' or 'on'] or
range[((inout == 'in') == (parms.opt_flip == true)) and 'output' or 'input']
adj_text = range['adj']
exception = range['exception']
else
rtext = range
end
if parms.opt_adjectival then
if want_name or (exception and parms.abbr_org == 'on') then
rtext = adj_text or rtext:gsub(' ', '-'):gsub(' ', '-')
end
end
if rtext == '–' and (options.spaced or after:sub(1, #MINUS) == MINUS) then
rtext = ' – '
end
return before .. rtext .. after
end
local function get_composite(parms, iparm, in_unit_table)
-- Look for a composite input unit. For example, {{convert|1|yd|2|ft|3|in}}
-- would result in a call to this function with
-- iparm = 3 (parms[iparm] = "2", just after the first unit)
-- in_unit_table = (unit table for "yd"; contains value 1 for number of yards)
-- Return true, iparm, unit where
-- iparm = index just after the composite units (7 in above example)
-- unit = composite unit table holding all input units,
-- or return true if no composite unit is present in parms,
-- or return false, t where t is an error message table.
local default, subinfo
local composite_units, count = { in_unit_table }, 1
local fixups = {}
local total = in_unit_table.valinfo[1].value
local subunit = in_unit_table
while subunit.subdivs do -- subdivs is nil or a table of allowed subdivisions
local subcode = strip(parms[iparm+1])
local subdiv = subunit.subdivs[subcode] or subunit.subdivs[(all_units[subcode] or {}).target]
if not subdiv then
break
end
local success
success, subunit = lookup(parms, subcode, 'no_combination')
if not success then return false, subunit end -- should never occur
success, subinfo = extract_number(parms, parms[iparm])
if not success then return false, subinfo end
iparm = iparm + 2
subunit.inout = 'in'
subunit.valinfo = { subinfo }
-- Recalculate total as a number of subdivisions.
-- subdiv[1] = number of subdivisions per previous unit (integer > 1).
total = total * subdiv[1] + subinfo.value
if not default then -- set by the first subdiv with a default defined
default = subdiv.default
end
count = count + 1
composite_units[count] = subunit
if subdiv.unit or subdiv.name then
fixups[count] = { unit = subdiv.unit, name = subdiv.name, valinfo = subunit.valinfo }
end
end
if count == 1 then
return true -- no error and no composite unit
end
for i, fixup in pairs(fixups) do
local unit = fixup.unit
local name = fixup.name
if not unit or (count > 2 and name) then
composite_units[i].fixed_name = name
else
local success, alternate = lookup(parms, unit, 'no_combination')
if not success then return false, alternate end -- should never occur
alternate.inout = 'in'
alternate.valinfo = fixup.valinfo
composite_units[i] = alternate
end
end
return true, iparm, {
utype = in_unit_table.utype,
scale = subunit.scale, -- scale of last (least significant) unit
valinfo = { { value = total, clean = subinfo.clean, denominator = subinfo.denominator } },
composite = composite_units,
default = default or in_unit_table.default
}
end
local function translate_parms(parms, kv_pairs)
-- Update fields in parms by translating each key:value in kv_pairs to terms
-- used by this module (may involve translating from local language to English).
-- Also, checks are performed which may display warnings, if enabled.
-- Return true if successful or return false, t where t is an error message table.
currency_text = nil -- local testing can hold module in memory; must clear globals
if kv_pairs.adj and kv_pairs.sing then
-- For enwiki (before translation), warn if attempt to use adj and sing
-- as the latter is a deprecated alias for the former.
if kv_pairs.adj ~= kv_pairs.sing and kv_pairs.sing ~= '' then
add_warning(parms, 1, 'cvt_unknown_option', 'sing=' .. kv_pairs.sing)
end
kv_pairs.sing = nil
end
kv_pairs.comma = kv_pairs.comma or config.comma -- for plwiki who want default comma=5
for loc_name, loc_value in pairs(kv_pairs) do
local en_name = text_code.en_option_name[loc_name]
if en_name then
local en_value = text_code.en_option_value[en_name]
if en_value == 'INTEGER' then -- altitude_ft, altitude_m, frac, sigfig
en_value = nil
if loc_value == '' then
add_warning(parms, 2, 'cvt_empty_option', loc_name)
else
local minimum
local number, is_integer = get_number(loc_value)
if en_name == 'sigfig' then
minimum = 1
elseif en_name == 'frac' then
minimum = 2
if number and number < 0 then
parms.opt_fraction_horizontal = true
number = -number
end
else
minimum = -1e6
end
if number and is_integer and number >= minimum then
en_value = number
else
local m
if en_name == 'frac' then
m = 'cvt_bad_frac'
elseif en_name == 'sigfig' then
m = 'cvt_bad_sigfig'
else
m = 'cvt_bad_altitude'
end
add_warning(parms, 1, m, loc_name .. '=' .. loc_value)
end
end
elseif en_value == 'TEXT' then -- $, input, qid, qual, stylein, styleout, tracking
en_value = loc_value ~= '' and loc_value or nil -- accept non-empty user text with no validation
if not en_value and (en_name == '$' or en_name == 'qid' or en_name == 'qual') then
add_warning(parms, 2, 'cvt_empty_option', loc_name)
elseif en_name == '$' then
-- Value should be a single character like "€" for the euro currency symbol, but anything is accepted.
currency_text = (loc_value == 'euro') and '€' or loc_value
elseif en_name == 'input' then
-- May have something like {{convert|input=}} (empty input) if source is an infobox
-- with optional fields. In that case, want to output nothing rather than an error.
parms.input_text = loc_value -- keep input because parms.input is nil if loc_value == ''
end
else
en_value = en_value[loc_value]
if en_value and en_value:sub(-1) == '?' then
en_value = en_value:sub(1, -2)
add_warning(parms, -1, 'cvt_deprecated', loc_name .. '=' .. loc_value)
end
if en_value == nil then
if loc_value == '' then
add_warning(parms, 2, 'cvt_empty_option', loc_name)
else
add_warning(parms, 1, 'cvt_unknown_option', loc_name .. '=' .. loc_value)
end
elseif en_value == '' then
en_value = nil -- an ignored option like adj=off
elseif type(en_value) == 'string' and en_value:sub(1, 4) == 'opt_' then
for _, v in ipairs(split(en_value, ',')) do
local lhs, rhs = v:match('^(.-)=(.+)$')
if rhs then
parms[lhs] = tonumber(rhs) or rhs
else
parms[v] = true
end
end
en_value = nil
end
end
parms[en_name] = en_value
else
add_warning(parms, 1, 'cvt_unknown_option', loc_name .. '=' .. loc_value)
end
end
local abbr_entered = parms.abbr
local cfg_abbr = config.abbr
if cfg_abbr then
-- Don't warn if invalid because every convert would show that warning.
if cfg_abbr == 'on always' then
parms.abbr = 'on'
elseif cfg_abbr == 'off always' then
parms.abbr = 'off'
elseif parms.abbr == nil then
if cfg_abbr == 'on default' then
parms.abbr = 'on'
elseif cfg_abbr == 'off default' then
parms.abbr = 'off'
end
end
end
if parms.abbr then
if parms.abbr == 'unit' then
parms.abbr = 'on'
parms.number_word = true
end
parms.abbr_org = parms.abbr -- original abbr, before any flip
elseif parms.opt_hand_hh then
parms.abbr_org = 'on'
parms.abbr = 'on'
else
parms.abbr = 'out' -- default is to abbreviate output only (use symbol, not name)
end
if parms.opt_order_out then
-- Disable options that do not work in a useful way with order=out.
parms.opt_flip = nil -- override adj=flip
parms.opt_spell_in = nil
parms.opt_spell_out = nil
parms.opt_spell_upper = nil
end
if parms.opt_spell_out and not abbr_entered then
parms.abbr = 'off' -- should show unit name when spelling the output value
end
if parms.opt_flip then
local function swap_in_out(option)
local value = parms[option]
if value == 'in' then
parms[option] = 'out'
elseif value == 'out' then
parms[option] = 'in'
end
end
swap_in_out('abbr')
swap_in_out('lk')
if parms.opt_spell_in and not parms.opt_spell_out then
-- For simplicity, and because it does not appear to be needed,
-- user cannot set an option to spell the output only.
parms.opt_spell_in = nil
parms.opt_spell_out = true
end
end
if parms.opt_spell_upper then
parms.spell_upper = parms.opt_flip and 'out' or 'in'
end
if parms.opt_table or parms.opt_tablecen then
if abbr_entered == nil and parms.lk == nil then
parms.opt_values = true
end
parms.table_align = parms.opt_table and 'right' or 'center'
end
if parms.table_align or parms.opt_sortable_on then
parms.need_table_or_sort = true
end
local disp_joins = text_code.disp_joins
local default_joins = disp_joins['b']
parms.join_between = default_joins[3] or '; '
local disp = parms.disp
if disp == nil then -- special case for the most common setting
parms.joins = default_joins
elseif disp == 'x' then
-- Later, parms.joins is set from the input parameters.
else
-- Old template does this.
local abbr = parms.abbr
if disp == 'slash' then
if abbr_entered == nil then
disp = 'slash-nbsp'
elseif abbr == 'in' or abbr == 'out' then
disp = 'slash-sp'
else
disp = 'slash-nosp'
end
elseif disp == 'sqbr' then
if abbr == 'on' then
disp = 'sqbr-nbsp'
else
disp = 'sqbr-sp'
end
end
parms.joins = disp_joins[disp] or default_joins
parms.join_between = parms.joins[3] or parms.join_between
parms.wantname = parms.joins.wantname
end
if (en_default and not parms.opt_lang_local and (parms[1] or ''):find('%d')) or parms.opt_lang_en then
from_en_table = nil
end
if en_default and from_en_table then
-- For hiwiki: localized symbol/name is defined with the US symbol/name field,
-- and is used if output uses localized numbers.
parms.opt_sp_us = true
end
return true
end
local function get_values(parms)
-- If successful, update parms and return true, v, i where
-- v = table of input values
-- i = index to next entry in parms after those processed here
-- or return false, t where t is an error message table.
local valinfo = collection() -- numbered table of input values
local range = collection() -- numbered table of range items (having, for example, 2 range items requires 3 input values)
local had_nocomma -- true if removed "nocomma" kludge from second parameter (like "tonocomma")
local parm2 = strip(parms[2])
if parm2 and parm2:sub(-7, -1) == 'nocomma' then
parms[2] = strip(parm2:sub(1, -8))
parms.opt_nocomma = true
had_nocomma = true
end
local function extractor(i)
-- If the parameter is not a value, try unpacking it as a range ("1-23" for "1 to 23").
-- However, "-1-2/3" is a negative fraction (-1⅔), so it must be extracted first.
-- Do not unpack a parameter if it is like "3-1/2" which is sometimes incorrectly
-- used instead of "3+1/2" (and which should not be interpreted as "3 to ½").
-- Unpacked items are inserted into the parms table.
-- The tail recursion allows combinations like "1x2 to 3x4".
local valstr = strip(parms[i]) -- trim so any '-' as a negative sign will be at start
local success, result = extract_number(parms, valstr, i > 1)
if not success and valstr and i < 20 then -- check i to limit abuse
local lhs, sep, rhs = valstr:match('^(%S+)%s+(%S+)%s+(%S.*)')
if lhs and not (sep == '-' and rhs:match('/')) then
if sep:find('%d') then
return success, result -- to reject {{convert|1 234 567|m}} with a decent message (en only)
end
parms[i] = rhs
table.insert(parms, i, sep)
table.insert(parms, i, lhs)
return extractor(i)
end
if not valstr:match('%-.*/') then
for _, sep in ipairs(text_code.ranges.words) do
local start, stop = valstr:find(sep, 2, true) -- start at 2 to skip any negative sign for range '-'
if start then
parms[i] = valstr:sub(stop + 1)
table.insert(parms, i, sep)
table.insert(parms, i, valstr:sub(1, start - 1))
return extractor(i)
end
end
end
end
return success, result
end
local i = 1
local is_change
while true do
local success, info = extractor(i) -- need to set parms.opt_nocomma before calling this
if not success then return false, info end
i = i + 1
if is_change then
info.is_change = true -- value is after "±" and so is a change (significant for range like {{convert|5|±|5|°C}})
is_change = nil
end
valinfo:add(info)
local range_item = get_range(strip(parms[i]))
if not range_item then
break
end
i = i + 1
range:add(range_item)
if type(range_item) == 'table' then
-- For range "x", if append unit to some values, append it to all.
parms.in_range_x = parms.in_range_x or range_item.in_range_x
parms.out_range_x = parms.out_range_x or range_item.out_range_x
parms.abbr_range_x = parms.abbr_range_x or range_item.abbr_range_x
is_change = range_item.is_range_change
end
end
if range.n > 0 then
if range.n > 30 then -- limit abuse, although 4 is a more likely upper limit
return false, { 'cvt_invalid_num' } -- misleading message but it will do
end
parms.range = range
elseif had_nocomma then
return false, { 'cvt_unknown', parm2 }
end
return true, valinfo, i
end
local function simple_get_values(parms)
-- If input is like "{{convert|valid_value|valid_unit|...}}",
-- return true, i, in_unit, in_unit_table
-- i = index in parms of what follows valid_unit, if anything.
-- The valid_value is not negative and does not use a fraction, and
-- no options requiring further processing of the input are used.
-- Otherwise, return nothing or return false, parm1 for caller to interpret.
-- Testing shows this function is successful for 96% of converts in articles,
-- and that on average it speeds up converts by 8%.
local clean = to_en(strip(parms[1] or ''), parms)
if parms.opt_ri or parms.opt_spell_in or #clean > 10 or not clean:match('^[0-9.]+$') then
return false, clean
end
local value = tonumber(clean)
if not value then return end
local info = {
value = value,
altvalue = value,
singular = (value == 1),
clean = clean,
show = with_separator(parms, clean),
}
local in_unit = strip(parms[2])
local success, in_unit_table = lookup(parms, in_unit, 'no_combination')
if not success then return end
in_unit_table.valinfo = { info }
return true, 3, in_unit, in_unit_table
end
local function wikidata_call(parms, operation, ...)
-- Return true, s where s is the result of a Wikidata operation,
-- or return false, t where t is an error message table.
local function worker(...)
wikidata_code = wikidata_code or require(wikidata_module)
wikidata_data = wikidata_data or mw.loadData(wikidata_data_module)
return wikidata_code[operation](wikidata_data, ...)
end
local success, status, result = pcall(worker, ...)
if success then
return status, result
end
if parms.opt_sortable_debug then
-- Use debug=yes to crash if an error while accessing Wikidata.
error('Error accessing Wikidata: ' .. status, 0)
end
return false, { 'cvt_wd_fail' }
end
local function get_parms(parms, args)
-- If successful, update parms and return true, unit where
-- parms is a table of all arguments passed to the template
-- converted to named arguments, and
-- unit is the input unit table;
-- or return false, t where t is an error message table.
-- For special processing (not a convert), can also return
-- true, wikitext where wikitext is the final result.
-- The returned input unit table may be for a fake unit using the specified
-- unit code as the symbol and name, and with bad_mcode = message code table.
-- MediaWiki removes leading and trailing whitespace from the values of
-- named arguments. However, the values of numbered arguments include any
-- whitespace entered in the template, and whitespace is used by some
-- parameters (example: the numbered parameters associated with "disp=x").
local kv_pairs = {} -- table of input key:value pairs where key is a name; needed because cannot iterate parms and add new fields to it
for k, v in pairs(args) do
if type(k) == 'number' or k == 'test' then -- parameter "test" is reserved for testing and is not translated
parms[k] = v
else
kv_pairs[k] = v
end
end
if parms.test == 'wikidata' then
local ulookup = function (ucode)
-- Use empty table for parms so it does not accumulate results when used repeatedly.
return lookup({}, ucode, 'no_combination')
end
return wikidata_call(parms, '_listunits', ulookup)
end
local success, msg = translate_parms(parms, kv_pairs)
if not success then return false, msg end
if parms.input then
success, msg = wikidata_call(parms, '_adjustparameters', parms, 1)
if not success then return false, msg end
end
local success, i, in_unit, in_unit_table = simple_get_values(parms)
if not success then
if type(i) == 'string' and i:match('^NNN+$') then
-- Some infoboxes have examples like {{convert|NNN|m}} (3 or more "N").
-- Output an empty string for these.
return false, { 'cvt_no_output' }
end
local valinfo
success, valinfo, i = get_values(parms)
if not success then return false, valinfo end
in_unit = strip(parms[i])
i = i + 1
success, in_unit_table = lookup(parms, in_unit, 'no_combination')
if not success then
in_unit = in_unit or ''
if parms.opt_ignore_error then -- display given unit code with no error (for use with {{val}})
in_unit_table = '' -- suppress error message and prevent processing of output unit
end
in_unit_table = setmetatable({
symbol = in_unit, name2 = in_unit, utype = in_unit,
scale = 1, default = '', defkey = '', linkey = '',
bad_mcode = in_unit_table }, unit_mt)
end
in_unit_table.valinfo = valinfo
end
if parms.test == 'msg' then
-- Am testing the messages produced when no output unit is specified, and
-- the input unit has a missing or invalid default.
-- Set two units for testing that.
-- LATER: Remove this code.
if in_unit == 'chain' then
in_unit_table.default = nil -- no default
elseif in_unit == 'rd' then
in_unit_table.default = "ft!X!m" -- an invalid expression
end
end
in_unit_table.inout = 'in' -- this is an input unit
if not parms.range then
local success, inext, composite_unit = get_composite(parms, i, in_unit_table)
if not success then return false, inext end
if composite_unit then
in_unit_table = composite_unit
i = inext
end
end
if in_unit_table.builtin == 'mach' then
-- As with old template, a number following Mach as the input unit is the altitude.
-- That is deprecated: should use altitude_ft=NUMBER or altitude_m=NUMBER.
local success, info
success = tonumber(parms[i]) -- this will often work and will give correct result for values like 2e4 without forcing output scientific notation
if success then
info = { value = success }
else
success, info = extract_number(parms, parms[i], false, true)
end
if success then
i = i + 1
in_unit_table.altitude = info.value
end
end
local word = strip(parms[i])
i = i + 1
local precision, is_bad_precision
local function set_precision(text)
local number, is_integer = get_number(text)
if number then
if is_integer then
precision = number
else
precision = text
is_bad_precision = true
end
return true -- text was used for precision, good or bad
end
end
if word and not set_precision(word) then
parms.out_unit = parms.out_unit or word
if set_precision(strip(parms[i])) then
i = i + 1
end
end
if parms.opt_adj_mid then
word = parms[i]
i = i + 1
if word then -- mid-text words
if word:sub(1, 1) == '-' then
parms.mid = word
else
parms.mid = ' ' .. word
end
end
end
if parms.opt_one_preunit then
parms[parms.opt_flip and 'preunit2' or 'preunit1'] = preunits(1, parms[i])
i = i + 1
end
if parms.disp == 'x' then
-- Following is reasonably compatible with the old template.
local first = parms[i] or ''
local second = parms[i+1] or ''
i = i + 2
if strip(first) == '' then -- user can enter ' ' rather than ' ' to avoid the default
first = ' [ ' .. first
second = ' ]' .. second
end
parms.joins = { first, second }
elseif parms.opt_two_preunits then
local p1, p2 = preunits(2, parms[i], parms[i+1])
i = i + 2
if parms.preunit1 then
-- To simplify documentation, allow unlikely use of adj=pre with disp=preunit
-- (however, an output unit must be specified with adj=pre and with disp=preunit).
parms.preunit1 = parms.preunit1 .. p1
parms.preunit2 = p2
else
parms.preunit1, parms.preunit2 = p1, p2
end
end
if precision == nil then
if set_precision(strip(parms[i])) then
i = i + 1
end
end
if is_bad_precision then
add_warning(parms, 1, 'cvt_bad_prec', precision)
else
parms.precision = precision
end
for j = i, i + 3 do
local parm = parms[j] -- warn if find a non-empty extraneous parameter
if parm and parm:match('%S') then
add_warning(parms, 1, 'cvt_unknown_option', parm)
break
end
end
return true, in_unit_table
end
local function record_default_precision(parms, out_current, precision)
-- If necessary, adjust parameters and return a possibly adjusted precision.
-- When converting a range of values where a default precision is required,
-- that default is calculated for each value because the result sometimes
-- depends on the precise input and output values. This function may cause
-- the entire convert process to be repeated in order to ensure that the
-- same default precision is used for each individual convert.
-- If that were not done, a range like 1000 to 1000.4 may give poor results
-- because the first output could be heavily rounded, while the second is not.
-- For range 1000.4 to 1000, this function can give the second convert the
-- same default precision that was used for the first.
if not parms.opt_round_each then
local maxdef = out_current.max_default_precision
if maxdef then
if maxdef < precision then
parms.do_convert_again = true
out_current.max_default_precision = precision
else
precision = out_current.max_default_precision
end
else
out_current.max_default_precision = precision
end
end
return precision
end
local function default_precision(parms, invalue, inclean, denominator, outvalue, in_current, out_current, extra)
-- Return a default value for precision (an integer like 2, 0, -2).
-- If denominator is not nil, it is the value of the denominator in inclean.
-- Code follows procedures used in old template.
local fudge = 1e-14 -- {{Order of magnitude}} adds this, so we do too
local prec, minprec, adjust
local subunit_ignore_trailing_zero
local subunit_more_precision -- kludge for "in" used in input like "|2|ft|6|in"
local composite = in_current.composite
if composite then
subunit_ignore_trailing_zero = true -- input "|2|st|10|lb" has precision 0, not -1
if composite[#composite].exception == 'subunit_more_precision' then
subunit_more_precision = true -- do not use standard precision with input like "|2|ft|6|in"
end
end
if denominator and denominator > 0 then
prec = math.max(log10(denominator), 1)
else
-- Count digits after decimal mark, handling cases like '12.345e6'.
local exponent
local integer, dot, decimals, expstr = inclean:match('^(%d*)(%.?)(%d*)(.*)')
local e = expstr:sub(1, 1)
if e == 'e' or e == 'E' then
exponent = tonumber(expstr:sub(2))
end
if dot == '' then
prec = subunit_ignore_trailing_zero and 0 or -integer:match('0*$'):len()
else
prec = #decimals
end
if exponent then
-- So '1230' and '1.23e3' both give prec = -1, and '0.00123' and '1.23e-3' give 5.
prec = prec - exponent
end
end
if in_current.istemperature and out_current.istemperature then
-- Converting between common temperatures (°C, °F, °R, K); not keVT.
-- Kelvin value can be almost zero, or small but negative due to precision problems.
-- Also, an input value like -300 C (below absolute zero) gives negative kelvins.
-- Calculate minimum precision from absolute value.
adjust = 0
local kelvin = abs((invalue - in_current.offset) * in_current.scale)
if kelvin < 1e-8 then -- assume nonzero due to input or calculation precision problem
minprec = 2
else
minprec = 2 - floor(log10(kelvin) + fudge) -- 3 sigfigs in kelvin
end
else
if invalue == 0 or outvalue <= 0 then
-- We are never called with a negative outvalue, but it might be zero.
-- This is special-cased to avoid calculation exceptions.
return record_default_precision(parms, out_current, 0)
end
if out_current.exception == 'integer_more_precision' and floor(invalue) == invalue then
-- With certain output units that sometimes give poor results
-- with default rounding, use more precision when the input
-- value is equal to an integer. An example of a poor result
-- is when input 50 gives a smaller output than input 49.5.
-- Experiment shows this helps, but it does not eliminate all
-- surprises because it is not clear whether "50" should be
-- interpreted as "from 45 to 55" or "from 49.5 to 50.5".
adjust = -log10(in_current.scale)
elseif subunit_more_precision then
-- Conversion like "{{convert|6|ft|1|in|cm}}" (where subunit is "in")
-- has a non-standard adjust value, to give more output precision.
adjust = log10(out_current.scale) + 2
else
adjust = log10(abs(invalue / outvalue))
end
adjust = adjust + log10(2)
-- Ensure that the output has at least two significant figures.
minprec = 1 - floor(log10(outvalue) + fudge)
end
if extra then
adjust = extra.adjust or adjust
minprec = extra.minprec or minprec
end
return record_default_precision(parms, out_current, math.max(floor(prec + adjust), minprec))
end
local function convert(parms, invalue, info, in_current, out_current)
-- Convert given input value from one unit to another.
-- Return output_value (a number) if a simple convert, or
-- return f, t where
-- f = true, t = table of information with results, or
-- f = false, t = error message table.
local inscale = in_current.scale
local outscale = out_current.scale
if not in_current.iscomplex and not out_current.iscomplex then
return invalue * (inscale / outscale) -- minimize overhead for most common case
end
if in_current.invert or out_current.invert then
-- Inverted units, such as inverse length, inverse time, or
-- fuel efficiency. Built-in units do not have invert set.
if (in_current.invert or 1) * (out_current.invert or 1) < 0 then
return 1 / (invalue * inscale * outscale)
end
return invalue * (inscale / outscale)
elseif in_current.offset then
-- Temperature (there are no built-ins for this type of unit).
if info.is_change then
return invalue * (inscale / outscale)
end
return (invalue - in_current.offset) * (inscale / outscale) + out_current.offset
else
-- Built-in unit.
local in_builtin = in_current.builtin
local out_builtin = out_current.builtin
if in_builtin and out_builtin then
if in_builtin == out_builtin then
return invalue
end
-- There are no cases (yet) where need to convert from one
-- built-in unit to another, so this should never occur.
return false, { 'cvt_bug_convert' }
end
if in_builtin == 'mach' or out_builtin == 'mach' then
-- Should check that only one altitude is given but am planning to remove
-- in_current.altitude (which can only occur when Mach is the input unit),
-- and out_current.altitude cannot occur.
local alt = parms.altitude_ft or in_current.altitude
if not alt and parms.altitude_m then
alt = parms.altitude_m / 0.3048 -- 1 ft = 0.3048 m
end
local spd = speed_of_sound(alt)
if in_builtin == 'mach' then
inscale = spd
return invalue * (inscale / outscale)
end
outscale = spd
local adjust = 0.1 / inscale
return true, {
outvalue = invalue * (inscale / outscale),
adjust = log10(adjust) + log10(2),
}
elseif in_builtin == 'hand' then
-- 1 hand = 4 inches; 1.2 hands = 6 inches.
-- Decimals of a hand are only defined for the first digit, and
-- the first fractional digit should be a number of inches (1, 2 or 3).
-- However, this code interprets the entire fractional part as the number
-- of inches / 10 (so 1.75 inches would be 0.175 hands).
-- A value like 12.3 hands is exactly 12*4 + 3 inches; base default precision on that.
local integer, fracpart = math.modf(invalue)
local inch_value = 4 * integer + 10 * fracpart -- equivalent number of inches
local factor = inscale / outscale
if factor == 4 then
-- Am converting to inches: show exact result, and use "inches" not "in" by default.
if parms.abbr_org == nil then
out_current.usename = true
end
local show = format('%g', abs(inch_value)) -- show and clean are unsigned
if not show:find('e', 1, true) then
return true, {
invalue = inch_value,
outvalue = inch_value,
clean = show,
show = show,
}
end
end
local outvalue = (integer + 2.5 * fracpart) * factor
local fracstr = info.clean:match('%.(.*)') or ''
local fmt
if fracstr == '' then
fmt = '%.0f'
else
fmt = '%.' .. format('%d', #fracstr - 1) .. 'f'
end
return true, {
invalue = inch_value,
clean = format(fmt, inch_value),
outvalue = outvalue,
minprec = 0,
}
end
end
return false, { 'cvt_bug_convert' } -- should never occur
end
local function user_style(parms, i)
-- Return text for a user-specified style for a table cell, or '' if none,
-- given i = 1 (input style) or 2 (output style).
local style = parms[(i == 1) and 'stylein' or 'styleout']
if style then
style = style:gsub('"', '')
if style ~= '' then
if style:sub(-1) ~= ';' then
style = style .. ';'
end
return style
end
end
return ''
end
local function make_table_or_sort(parms, invalue, info, in_current, scaled_top)
-- Set options to handle output for a table or a sort key, or both.
-- The text sort key is based on the value resulting from converting
-- the input to a fake base unit with scale = 1, and other properties
-- required for a conversion derived from the input unit.
-- For other modules, return the sort key in a hidden span element, and
-- the scaled value used to generate the sort key.
-- If scaled_top is set, it is the scaled value of the numerator of a per unit
-- to be combined with this unit (the denominator) to make the sort key.
-- Scaling only works with units that convert with a factor (not temperature).
local sortkey, scaled_value
if parms.opt_sortable_on then
local base = { -- a fake unit with enough fields for a valid convert
scale = 1,
invert = in_current.invert and 1,
iscomplex = in_current.iscomplex,
offset = in_current.offset and 0,
}
local outvalue, extra = convert(parms, invalue, info, in_current, base)
if extra then
outvalue = extra.outvalue
end
if in_current.istemperature then
-- Have converted to kelvin; assume numbers close to zero have a
-- rounding error and should be zero.
if abs(outvalue) < 1e-12 then
outvalue = 0
end
end
if scaled_top and outvalue ~= 0 then
outvalue = scaled_top / outvalue
end
scaled_value = outvalue
if not valid_number(outvalue) then
if outvalue < 0 then
sortkey = '1000000000000000000'
else
sortkey = '9000000000000000000'
end
elseif outvalue == 0 then
sortkey = '5000000000000000000'
else
local mag = floor(log10(abs(outvalue)) + 1e-14)
local prefix
if outvalue > 0 then
prefix = 7000 + mag
else
prefix = 2999 - mag
outvalue = outvalue + 10^(mag+1)
end
sortkey = format('%d', prefix) .. format('%015.0f', floor(outvalue * 10^(14-mag)))
end
end
local sortspan
if sortkey and not parms.table_align then
sortspan = parms.opt_sortable_debug and
'<span data-sort-value="' .. sortkey .. '♠"><span style="border:1px solid">' .. sortkey .. '♠</span></span>' or
'<span data-sort-value="' .. sortkey .. '♠"></span>'
parms.join_before = sortspan
end
if parms.table_align then
local sort
if sortkey then
sort = ' data-sort-value="' .. sortkey .. '"'
if parms.opt_sortable_debug then
parms.join_before = '<span style="border:1px solid">' .. sortkey .. '</span>'
end
else
sort = ''
end
local style = 'style="text-align:' .. parms.table_align .. ';'
local joins = {}
for i = 1, 2 do
joins[i] = (i == 1 and '' or '\n|') .. style .. user_style(parms, i) .. '"' .. sort .. '|'
end
parms.table_joins = joins
end
return sortspan, scaled_value
end
local cvt_to_hand
local function cvtround(parms, info, in_current, out_current)
-- Return true, t where t is a table with the conversion results; fields:
-- show = rounded, formatted string with the result of converting value in info,
-- using the rounding specified in parms.
-- singular = true if result (after rounding and ignoring any negative sign)
-- is "1", or like "1.00", or is a fraction with value < 1;
-- (and more fields shown below, and a calculated 'absvalue' field).
-- or return false, t where t is an error message table.
-- Input info.clean uses en digits (it has been translated, if necessary).
-- Output show uses en or non-en digits as appropriate, or can be spelled.
if out_current.builtin == 'hand' then
return cvt_to_hand(parms, info, in_current, out_current)
end
local invalue = in_current.builtin == 'hand' and info.altvalue or info.value
local outvalue, extra = convert(parms, invalue, info, in_current, out_current)
if parms.need_table_or_sort then
parms.need_table_or_sort = nil -- process using first input value only
make_table_or_sort(parms, invalue, info, in_current)
end
if extra then
if not outvalue then return false, extra end
invalue = extra.invalue or invalue
outvalue = extra.outvalue
end
if not valid_number(outvalue) then
return false, { 'cvt_invalid_num' }
end
local isnegative
if outvalue < 0 then
isnegative = true
outvalue = -outvalue
end
local precision, show, exponent
local denominator = out_current.frac
if denominator then
show = fraction_table(outvalue, denominator)
else
precision = parms.precision
if not precision then
if parms.sigfig then
show, exponent = make_sigfig(outvalue, parms.sigfig)
elseif parms.opt_round then
local n = parms.opt_round
if n == 0.5 then
local integer, fracpart = math.modf(floor(2 * outvalue + 0.5) / 2)
if fracpart == 0 then
show = format('%.0f', integer)
else
show = format('%.1f', integer + fracpart)
end
else
show = format('%.0f', floor((outvalue / n) + 0.5) * n)
end
elseif in_current.builtin == 'mach' then
local sigfig = info.clean:gsub('^[0.]+', ''):gsub('%.', ''):len() + 1
show, exponent = make_sigfig(outvalue, sigfig)
else
local inclean = info.clean
if extra then
inclean = extra.clean or inclean
show = extra.show
end
if not show then
precision = default_precision(parms, invalue, inclean, info.denominator, outvalue, in_current, out_current, extra)
end
end
end
end
if precision then
if precision >= 0 then
local fudge
if precision <= 8 then
-- Add a fudge to handle common cases of bad rounding due to inability
-- to precisely represent some values. This makes the following work:
-- {{convert|-100.1|C|K}} and {{convert|5555000|um|m|2}}.
-- Old template uses #expr round, which invokes PHP round().
-- LATER: Investigate how PHP round() works.
fudge = 2e-14
else
fudge = 0
end
local fmt = '%.' .. format('%d', precision) .. 'f'
local success
success, show = pcall(format, fmt, outvalue + fudge)
if not success then
return false, { 'cvt_big_prec', tostring(precision) }
end
else
precision = -precision -- #digits to zero (in addition to any digits after dot)
local shift = 10 ^ precision
show = format('%.0f', outvalue/shift)
if show ~= '0' then
exponent = #show + precision
end
end
end
local t = format_number(parms, show, exponent, isnegative)
if type(show) == 'string' then
-- Set singular using match because on some systems 0.99999999999999999 is 1.0.
if exponent then
t.singular = (exponent == 1 and show:match('^10*$'))
else
t.singular = (show == '1' or show:match('^1%.0*$'))
end
else
t.fraction_table = show
t.singular = (outvalue <= 1) -- cannot have 'fraction == 1', but if it were possible it would be singular
end
t.raw_absvalue = outvalue -- absolute value before rounding
return true, setmetatable(t, {
__index = function (self, key)
if key == 'absvalue' then
-- Calculate absolute value after rounding, if needed.
local clean, exponent = rawget(self, 'clean'), rawget(self, 'exponent')
local value = tonumber(clean) -- absolute value (any negative sign has been ignored)
if exponent then
value = value * 10^exponent
end
rawset(self, key, value)
return value
end
end })
end
function cvt_to_hand(parms, info, in_current, out_current)
-- Convert input to hands, inches.
-- Return true, t where t is a table with the conversion results;
-- or return false, t where t is an error message table.
if parms.abbr_org == nil then
out_current.usename = true -- default is to show name not symbol
end
local precision = parms.precision
local frac = out_current.frac
if not frac and precision and precision > 1 then
frac = (precision == 2) and 2 or 4
end
local out_next = out_current.out_next
if out_next then
-- Use magic knowledge to determine whether the next unit is inches without requiring i18n.
-- The following ensures that when the output combination "hand in" is used, the inches
-- value is rounded to match the hands value. Also, displaying say "61½" instead of 61.5
-- is better as 61.5 implies the value is not 61.4.
if out_next.exception == 'subunit_more_precision' then
out_next.frac = frac
end
end
-- Convert to inches; calculate hands from that.
local dummy_unit_table = { scale = out_current.scale / 4, frac = frac }
local success, outinfo = cvtround(parms, info, in_current, dummy_unit_table)
if not success then return false, outinfo end
local tfrac = outinfo.fraction_table
local inches = outinfo.raw_absvalue
if tfrac then
inches = floor(inches) -- integer part only; fraction added later
else
inches = floor(inches + 0.5) -- a hands measurement never shows decimals of an inch
end
local hands, inches = divide(inches, 4)
outinfo.absvalue = hands + inches/4 -- supposed to be the absolute rounded value, but this is close enough
local inchstr = tostring(inches) -- '0', '1', '2' or '3'
if precision and precision <= 0 then -- using negative or 0 for precision rounds to nearest hand
hands = floor(outinfo.raw_absvalue/4 + 0.5)
inchstr = ''
elseif tfrac then
-- Always show an integer before fraction (like "15.0½") because "15½" means 15-and-a-half hands.
inchstr = numdot .. format_fraction(parms, 'out', false, inchstr, tfrac.numstr, tfrac.denstr)
else
inchstr = numdot .. from_en(inchstr)
end
outinfo.show = outinfo.sign .. with_separator(parms, format('%.0f', hands)) .. inchstr
return true, outinfo
end
local function evaluate_condition(value, condition)
-- Return true or false from applying a conditional expression to value,
-- or throw an error if invalid.
-- A very limited set of expressions is supported:
-- v < 9
-- v * 9 < 9
-- where
-- 'v' is replaced with value
-- 9 is any number (as defined by Lua tonumber)
-- only en digits are accepted
-- '<' can also be '<=' or '>' or '>='
-- In addition, the following form is supported:
-- LHS and RHS
-- where
-- LHS, RHS = any of above expressions.
local function compare(value, text)
local arithop, factor, compop, limit = text:match('^%s*v%s*([*]?)(.-)([<>]=?)(.*)$')
if arithop == nil then
error('Invalid default expression', 0)
elseif arithop == '*' then
factor = tonumber(factor)
if factor == nil then
error('Invalid default expression', 0)
end
value = value * factor
end
limit = tonumber(limit)
if limit == nil then
error('Invalid default expression', 0)
end
if compop == '<' then
return value < limit
elseif compop == '<=' then
return value <= limit
elseif compop == '>' then
return value > limit
elseif compop == '>=' then
return value >= limit
end
error('Invalid default expression', 0) -- should not occur
end
local lhs, rhs = condition:match('^(.-%W)and(%W.*)')
if lhs == nil then
return compare(value, condition)
end
return compare(value, lhs) and compare(value, rhs)
end
local function get_default(value, unit_table)
-- Return true, s where s = name of unit's default output unit,
-- or return false, t where t is an error message table.
-- Some units have a default that depends on the input value
-- (the first value if a range of values is used).
-- If '!' is in the default, the first bang-delimited field is an
-- expression that uses 'v' to represent the input value.
-- Example: 'v < 120 ! small ! big ! suffix' (suffix is optional)
-- evaluates 'v < 120' as a boolean with result
-- 'smallsuffix' if (value < 120), or 'bigsuffix' otherwise.
-- Input must use en digits and '.' decimal mark.
local default = data_code.default_exceptions[unit_table.defkey or unit_table.symbol] or unit_table.default
if not default then
local per = unit_table.per
if per then
local function a_default(v, u)
local success, ucode = get_default(v, u)
if not success then
return '?' -- an unlikely error has occurred; will cause lookup of default to fail
end
-- Attempt to use only the first unit if a combination or output multiple.
-- This is not bulletproof but should work for most cases.
-- Where it does not work, the convert will need to specify the wanted output unit.
local t = all_units[ucode]
if t then
local combo = t.combination
if combo then
-- For a multiple like ftin, the "first" unit (ft) is last in the combination.
local i = t.multiple and table_len(combo) or 1
ucode = combo[i]
end
else
-- Try for an automatically generated combination.
local item = ucode:match('^(.-)%+') or ucode:match('^(%S+)%s')
if all_units[item] then
return item
end
end
return ucode
end
local unit1, unit2 = per[1], per[2]
local def1 = (unit1 and a_default(value, unit1) or unit_table.vprefix or '')
local def2 = a_default(1, unit2) -- 1 because per unit of denominator
return true, def1 .. '/' .. def2
end
return false, { 'cvt_no_default', unit_table.symbol }
end
if default:find('!', 1, true) == nil then
return true, default
end
local t = split(default, '!')
if #t == 3 or #t == 4 then
local success, result = pcall(evaluate_condition, value, t[1])
if success then
default = result and t[2] or t[3]
if #t == 4 then
default = default .. t[4]
end
return true, default
end
end
return false, { 'cvt_bad_default', unit_table.symbol }
end
local linked_pages -- to record linked pages so will not link to the same page more than once
local function unlink(unit_table)
-- Forget that the given unit has previously been linked (if it has).
-- That is needed when processing a range of inputs or outputs when an id
-- for the first range value may have been evaluated, but only an id for
-- the last value is displayed, and that id may need to be linked.
linked_pages[unit_table.unitcode or unit_table] = nil
end
local function make_link(link, id, unit_table)
-- Return wikilink "[[link|id]]", possibly abbreviated as in examples:
-- [[mile]] --> [[mile]]
-- [[mile]]s --> [[mile]]s
-- However, just id is returned if:
-- * no link given (so caller does not need to check if a link was defined); or
-- * link has previously been used during the current convert (to avoid overlinking).
local link_key
if unit_table then
link_key = unit_table.unitcode or unit_table
else
link_key = link
end
if not link or link == '' or linked_pages[link_key] then
return id
end
linked_pages[link_key] = true
-- Following only works for language en, but it should be safe on other wikis,
-- and overhead of doing it generally does not seem worthwhile.
local l = link:sub(1, 1):lower() .. link:sub(2)
if link == id or l == id then
return '[[' .. id .. ']]'
elseif link .. 's' == id or l .. 's' == id then
return '[[' .. id:sub(1, -2) .. ']]s'
else
return '[[' .. link .. '|' .. id .. ']]'
end
end
local function variable_name(clean, unit_table)
-- For slwiki, a unit name depends on the value.
-- Parameter clean is the unsigned rounded value in en digits, as a string.
-- Value Source Example for "m"
-- integer 1: name1 meter (also is the name of the unit)
-- integer 2: var{1} metra
-- integer 3 and 4: var{2} metri
-- integer else: var{3} metrov (0 and 5 or more)
-- real/fraction: var{4} metra
-- var{i} means the i'th field in unit_table.varname if it exists and has
-- an i'th field, otherwise name2.
-- Fields are separated with "!" and are not empty.
-- A field for a unit using an SI prefix has the prefix name inserted,
-- replacing '#' if found, or before the field otherwise.
local vname
if clean == '1' then
vname = unit_table.name1
elseif unit_table.varname then
local i
if clean == '2' then
i = 1
elseif clean == '3' or clean == '4' then
i = 2
elseif clean:find('.', 1, true) then
i = 4
else
i = 3
end
if i > 1 and varname == 'pl' then
i = i - 1
end
vname = split(unit_table.varname, '!')[i]
end
if vname then
local si_name = rawget(unit_table, 'si_name') or ''
local pos = vname:find('#', 1, true)
if pos then
vname = vname:sub(1, pos - 1) .. si_name .. vname:sub(pos + 1)
else
vname = si_name .. vname
end
return vname
end
return unit_table.name2
end
local function linked_id(parms, unit_table, key_id, want_link, clean)
-- Return final unit id (symbol or name), optionally with a wikilink,
-- and update unit_table.sep if required.
-- key_id is one of: 'symbol', 'sym_us', 'name1', 'name1_us', 'name2', 'name2_us'.
local abbr_on = (key_id == 'symbol' or key_id == 'sym_us')
if abbr_on and want_link then
local symlink = rawget(unit_table, 'symlink')
if symlink then
return symlink -- for exceptions that have the linked symbol built-in
end
end
local multiplier = rawget(unit_table, 'multiplier')
local per = unit_table.per
if per then
local paren1, paren2 = '', '' -- possible parentheses around bottom unit
local unit1 = per[1] -- top unit_table, or nil
local unit2 = per[2] -- bottom unit_table
if abbr_on then
if not unit1 then
unit_table.sep = '' -- no separator in "$2/acre"
end
if not want_link then
local symbol = unit_table.symbol_raw
if symbol then
return symbol -- for exceptions that have the symbol built-in
end
end
if (unit2.symbol):find('⋅', 1, true) then
paren1, paren2 = '(', ')'
end
end
local key_id2 -- unit2 is always singular
if key_id == 'name2' then
key_id2 = 'name1'
elseif key_id == 'name2_us' then
key_id2 = 'name1_us'
else
key_id2 = key_id
end
local result
if abbr_on then
result = '/'
elseif omitsep then
result = per_word
elseif unit1 then
result = ' ' .. per_word .. ' '
else
result = per_word .. ' '
end
if want_link and unit_table.link then
if abbr_on or not varname then
result = (unit1 and linked_id(parms, unit1, key_id, false, clean) or '') .. result .. linked_id(parms, unit2, key_id2, false, '1')
else
result = (unit1 and variable_name(clean, unit1) or '') .. result .. variable_name('1', unit2)
end
if omit_separator(result) then
unit_table.sep = ''
end
return make_link(unit_table.link, result, unit_table)
end
if unit1 then
result = linked_id(parms, unit1, key_id, want_link, clean) .. result
if unit1.sep then
unit_table.sep = unit1.sep
end
elseif omitsep then
unit_table.sep = ''
end
return result .. paren1 .. linked_id(parms, unit2, key_id2, want_link, '1') .. paren2
end
if multiplier then
-- A multiplier (like "100" in "100km") forces the unit to be plural.
multiplier = from_en(multiplier)
if not omitsep then
multiplier = multiplier .. (abbr_on and ' ' or ' ')
end
if not abbr_on then
if key_id == 'name1' then
key_id = 'name2'
elseif key_id == 'name1_us' then
key_id = 'name2_us'
end
end
else
multiplier = ''
end
local id = unit_table.fixed_name or ((varname and not abbr_on) and variable_name(clean, unit_table) or unit_table[key_id])
if omit_separator(id) then
unit_table.sep = ''
end
if want_link then
local link = data_code.link_exceptions[unit_table.linkey or unit_table.symbol] or unit_table.link
if link then
local before = ''
local i = unit_table.customary
if i == 1 and parms.opt_sp_us then
i = 2 -- show "U.S." not "US"
end
if i == 3 and abbr_on then
i = 4 -- abbreviate "imperial" to "imp"
end
local customary = text_code.customary_units[i]
if customary then
-- LATER: This works for language en only, but it's esoteric so ignore for now.
local pertext
if id:sub(1, 1) == '/' then
-- Want unit "/USgal" to display as "/U.S. gal", not "U.S. /gal".
pertext = '/'
id = id:sub(2)
elseif id:sub(1, 4) == 'per ' then
-- Similarly want "per U.S. gallon", not "U.S. per gallon" (but in practice this is unlikely to be used).
pertext = 'per '
id = id:sub(5)
else
pertext = ''
end
-- Omit any "US"/"U.S."/"imp"/"imperial" from start of id since that will be inserted.
local removes = (i < 3) and { 'US ', 'US ', 'U.S. ', 'U.S. ' } or { 'imp ', 'imp ', 'imperial ' }
for _, prefix in ipairs(removes) do
local plen = #prefix
if id:sub(1, plen) == prefix then
id = id:sub(plen + 1)
break
end
end
before = pertext .. make_link(customary.link, customary[1]) .. ' '
end
id = before .. make_link(link, id, unit_table)
end
end
return multiplier .. id
end
local function make_id(parms, which, unit_table)
-- Return id, f where
-- id = unit name or symbol, possibly modified
-- f = true if id is a name, or false if id is a symbol
-- using the value for index 'which', and for 'in' or 'out' (unit_table.inout).
-- Result is '' if no symbol/name is to be used.
-- In addition, set unit_table.sep = ' ' or ' ' or ''
-- (the separator that caller will normally insert before the id).
if parms.opt_values then
unit_table.sep = ''
return ''
end
local inout = unit_table.inout
local info = unit_table.valinfo[which]
local abbr_org = parms.abbr_org
local adjectival = parms.opt_adjectival
local lk = parms.lk
local want_link = (lk == 'on' or lk == inout)
local usename = unit_table.usename
local singular = info.singular
local want_name
if usename then
want_name = true
else
if abbr_org == nil then
if parms.wantname then
want_name = true
end
if unit_table.usesymbol then
want_name = false
end
end
if want_name == nil then
local abbr = parms.abbr
if abbr == 'on' or abbr == inout or (abbr == 'mos' and inout == 'out') then
want_name = false
else
want_name = true
end
end
end
local key
if want_name then
if lk == nil and unit_table.builtin == 'hand' then
want_link = true
end
if parms.opt_use_nbsp then
unit_table.sep = ' '
else
unit_table.sep = ' '
end
if parms.opt_singular then
local value
if inout == 'in' then
value = info.value
else
value = info.absvalue
end
if value then -- some unusual units do not always set value field
value = abs(value)
singular = (0 < value and value < 1.0001)
end
end
if unit_table.engscale then
-- engscale: so "|1|e3kg" gives "1 thousand kilograms" (plural)
singular = false
end
key = (adjectival or singular) and 'name1' or 'name2'
if parms.opt_sp_us then
key = key .. '_us'
end
else
if unit_table.builtin == 'hand' then
if parms.opt_hand_hh then
unit_table.symbol = 'hh' -- LATER: might want i18n applied to this
end
end
unit_table.sep = ' '
key = parms.opt_sp_us and 'sym_us' or 'symbol'
end
return linked_id(parms, unit_table, key, want_link, info.clean), want_name
end
local function decorate_value(parms, unit_table, which, number_word)
-- If needed, update unit_table so values will be shown with extra information.
-- For consistency with the old template (but different from fmtpower),
-- the style to display powers of 10 includes "display:none" to allow some
-- browsers to copy, for example, "10³" as "10^3", rather than as "103".
local info
local engscale = unit_table.engscale
local prefix = unit_table.vprefix
if engscale or prefix then
info = unit_table.valinfo[which]
if info.decorated then
return -- do not redecorate if repeating convert
end
info.decorated = true
if engscale then
local inout = unit_table.inout
local abbr = parms.abbr
if (abbr == 'on' or abbr == inout) and not parms.number_word then
info.show = info.show ..
'<span style="margin-left:0.2em">×<span style="margin-left:0.1em">' ..
from_en('10') ..
'</span></span><s style="display:none">^</s><sup>' ..
from_en(tostring(engscale.exponent)) .. '</sup>'
elseif number_word then
local number_id
local lk = parms.lk
if lk == 'on' or lk == inout then
number_id = make_link(engscale.link, engscale[1])
else
number_id = engscale[1]
end
-- WP:NUMERAL recommends " " in values like "12 million".
info.show = info.show .. (parms.opt_adjectival and '-' or ' ') .. number_id
end
end
if prefix then
info.show = prefix .. info.show
end
end
end
local function process_input(parms, in_current)
-- Processing required once per conversion.
-- Return block of text to represent input (value/unit).
if parms.opt_output_only or parms.opt_output_number_only or parms.opt_output_unit_only then
parms.joins = { '', '' }
return ''
end
local first_unit
local composite = in_current.composite -- nil or table of units
if composite then
first_unit = composite[1]
else
first_unit = in_current
end
local id1, want_name = make_id(parms, 1, first_unit)
local sep = first_unit.sep -- separator between value and unit, set by make_id
local preunit = parms.preunit1
if preunit then
sep = '' -- any separator is included in preunit
else
preunit = ''
end
if parms.opt_input_unit_only then
parms.joins = { '', '' }
if composite then
local parts = { id1 }
for i, unit in ipairs(composite) do
if i > 1 then
table.insert(parts, (make_id(parms, 1, unit)))
end
end
id1 = table.concat(parts, ' ')
end
if want_name and parms.opt_adjectival then
return preunit .. hyphenated(id1)
end
return preunit .. id1
end
if parms.opt_also_symbol and not composite and not parms.opt_flip then
local join1 = parms.joins[1]
if join1 == ' (' or join1 == ' [' then
parms.joins = { ' [' .. first_unit[parms.opt_sp_us and 'sym_us' or 'symbol'] .. ']' .. join1 , parms.joins[2] }
end
end
if in_current.builtin == 'mach' and first_unit.sep ~= '' then -- '' means omitsep with non-enwiki name
local prefix = id1 .. ' '
local range = parms.range
local valinfo = first_unit.valinfo
local result = prefix .. valinfo[1].show
if range then
-- For simplicity and because more not needed, handle one range item only.
local prefix2 = make_id(parms, 2, first_unit) .. ' '
result = range_text(range[1], want_name, parms, result, prefix2 .. valinfo[2].show, 'in', {spaced=true})
end
return preunit .. result
end
if composite then
-- Simplify: assume there is no range, and no decoration.
local mid = (not parms.opt_flip) and parms.mid or ''
local sep1 = ' '
local sep2 = ' '
if parms.opt_adjectival and want_name then
sep1 = '-'
sep2 = '-'
end
if omitsep and sep == '' then
-- Testing the id of the most significant unit should be sufficient.
sep1 = ''
sep2 = ''
end
local parts = { first_unit.valinfo[1].show .. sep1 .. id1 }
for i, unit in ipairs(composite) do
if i > 1 then
table.insert(parts, unit.valinfo[1].show .. sep1 .. (make_id(parms, 1, unit)))
end
end
return table.concat(parts, sep2) .. mid
end
local add_unit = (parms.abbr == 'mos') or
parms[parms.opt_flip and 'out_range_x' or 'in_range_x'] or
(not want_name and parms.abbr_range_x)
local range = parms.range
if range and not add_unit then
unlink(first_unit)
end
local id = range and make_id(parms, range.n + 1, first_unit) or id1
local extra, was_hyphenated = hyphenated_maybe(parms, want_name, sep, id, 'in')
if was_hyphenated then
add_unit = false
end
local result
local valinfo = first_unit.valinfo
if range then
for i = 0, range.n do
local number_word
if i == range.n then
add_unit = false
number_word = true
end
decorate_value(parms, first_unit, i+1, number_word)
local show = valinfo[i+1].show
if add_unit then
show = show .. first_unit.sep .. (i == 0 and id1 or make_id(parms, i+1, first_unit))
end
if i == 0 then
result = show
else
result = range_text(range[i], want_name, parms, result, show, 'in')
end
end
else
decorate_value(parms, first_unit, 1, true)
result = valinfo[1].show
end
return result .. preunit .. extra
end
local function process_one_output(parms, out_current)
-- Processing required for each output unit.
-- Return block of text to represent output (value/unit).
local inout = out_current.inout -- normally 'out' but can be 'in' for order=out
local id1, want_name = make_id(parms, 1, out_current)
local sep = out_current.sep -- set by make_id
local preunit = parms.preunit2
if preunit then
sep = '' -- any separator is included in preunit
else
preunit = ''
end
if parms.opt_output_unit_only then
if want_name and parms.opt_adjectival then
return preunit .. hyphenated(id1)
end
return preunit .. id1
end
if out_current.builtin == 'mach' and out_current.sep ~= '' then -- '' means omitsep with non-enwiki name
local prefix = id1 .. ' '
local range = parms.range
local valinfo = out_current.valinfo
local result = prefix .. valinfo[1].show
if range then
-- For simplicity and because more not needed, handle one range item only.
result = range_text(range[1], want_name, parms, result, prefix .. valinfo[2].show, inout, {spaced=true})
end
return preunit .. result
end
local add_unit = (parms[parms.opt_flip and 'in_range_x' or 'out_range_x'] or
(not want_name and parms.abbr_range_x)) and
not parms.opt_output_number_only
local range = parms.range
if range and not add_unit then
unlink(out_current)
end
local id = range and make_id(parms, range.n + 1, out_current) or id1
local extra, was_hyphenated = hyphenated_maybe(parms, want_name, sep, id, inout)
if was_hyphenated then
add_unit = false
end
local result
local valinfo = out_current.valinfo
if range then
for i = 0, range.n do
local number_word
if i == range.n then
add_unit = false
number_word = true
end
decorate_value(parms, out_current, i+1, number_word)
local show = valinfo[i+1].show
if add_unit then
show = show .. out_current.sep .. (i == 0 and id1 or make_id(parms, i+1, out_current))
end
if i == 0 then
result = show
else
result = range_text(range[i], want_name, parms, result, show, inout)
end
end
else
decorate_value(parms, out_current, 1, true)
result = valinfo[1].show
end
if parms.opt_output_number_only then
return result
end
return result .. preunit .. extra
end
local function make_output_single(parms, in_unit_table, out_unit_table)
-- Return true, item where item = wikitext of the conversion result
-- for a single output (which is not a combination or a multiple);
-- or return false, t where t is an error message table.
if parms.opt_order_out and in_unit_table.unitcode == out_unit_table.unitcode then
out_unit_table.valinfo = in_unit_table.valinfo
else
out_unit_table.valinfo = collection()
for _, v in ipairs(in_unit_table.valinfo) do
local success, info = cvtround(parms, v, in_unit_table, out_unit_table)
if not success then return false, info end
out_unit_table.valinfo:add(info)
end
end
return true, process_one_output(parms, out_unit_table)
end
local function make_output_multiple(parms, in_unit_table, out_unit_table)
-- Return true, item where item = wikitext of the conversion result
-- for an output which is a multiple (like 'ftin');
-- or return false, t where t is an error message table.
local inout = out_unit_table.inout -- normally 'out' but can be 'in' for order=out
local multiple = out_unit_table.multiple -- table of scaling factors (will not be nil)
local combos = out_unit_table.combination -- table of unit tables (will not be nil)
local abbr = parms.abbr
local abbr_org = parms.abbr_org
local disp = parms.disp
local want_name = (abbr_org == nil and (disp == 'or' or disp == 'slash')) or
not (abbr == 'on' or abbr == inout or abbr == 'mos')
local want_link = (parms.lk == 'on' or parms.lk == inout)
local mid = parms.opt_flip and parms.mid or ''
local sep1 = ' '
local sep2 = ' '
if parms.opt_adjectival and want_name then
sep1 = '-'
sep2 = '-'
end
local do_spell = parms.opt_spell_out
parms.opt_spell_out = nil -- so the call to cvtround does not spell the value
local function make_result(info, isfirst)
local fmt, outvalue, sign
local results = {}
for i = 1, #combos do
local tfrac, thisvalue, strforce
local out_current = combos[i]
out_current.inout = inout
local scale = multiple[i]
if i == 1 then -- least significant unit ('in' from 'ftin')
local decimals
out_current.frac = out_unit_table.frac
local success, outinfo = cvtround(parms, info, in_unit_table, out_current)
if not success then return false, outinfo end
if isfirst then
out_unit_table.valinfo = { outinfo } -- in case output value of first least significant unit is needed
end
sign = outinfo.sign
tfrac = outinfo.fraction_table
if outinfo.is_scientific then
strforce = outinfo.show
decimals = ''
elseif tfrac then
decimals = ''
else
local show = outinfo.show -- number as a string in local language
local p1, p2 = show:find(numdot, 1, true)
decimals = p1 and show:sub(p2 + 1) or '' -- text after numdot, if any
end
fmt = '%.' .. ulen(decimals) .. 'f' -- to reproduce precision
if decimals == '' then
if tfrac then
outvalue = floor(outinfo.raw_absvalue) -- integer part only; fraction added later
else
outvalue = floor(outinfo.raw_absvalue + 0.5) -- keep all integer digits of least significant unit
end
else
outvalue = outinfo.absvalue
end
end
if scale then
outvalue, thisvalue = divide(outvalue, scale)
else
thisvalue = outvalue
end
local id
if want_name then
if varname then
local clean
if strforce or tfrac then
clean = '.1' -- dummy value to force name for floating point
else
clean = format(fmt, thisvalue)
end
id = variable_name(clean, out_current)
else
local key = 'name2'
if parms.opt_adjectival then
key = 'name1'
elseif tfrac then
if thisvalue == 0 then
key = 'name1'
end
elseif parms.opt_singular then
if 0 < thisvalue and thisvalue < 1.0001 then
key = 'name1'
end
else
if thisvalue == 1 then
key = 'name1'
end
end
id = out_current[key]
end
else
id = out_current['symbol']
end
if i == 1 and omit_separator(id) then
-- Testing the id of the least significant unit should be sufficient.
sep1 = ''
sep2 = ''
end
if want_link then
local link = out_current.link
if link then
id = make_link(link, id, out_current)
end
end
local strval
local spell_inout = (i == #combos or outvalue == 0) and inout or '' -- trick so the last value processed (first displayed) has uppercase, if requested
if strforce and outvalue == 0 then
sign = '' -- any sign is in strforce
strval = strforce -- show small values in scientific notation; will only use least significant unit
elseif tfrac then
local wholestr = (thisvalue > 0) and tostring(thisvalue) or nil
strval = format_fraction(parms, spell_inout, false, wholestr, tfrac.numstr, tfrac.denstr, do_spell)
else
strval = (thisvalue == 0) and from_en('0') or with_separator(parms, format(fmt, thisvalue))
if do_spell then
strval = spell_number(parms, spell_inout, strval) or strval
end
end
table.insert(results, strval .. sep1 .. id)
if outvalue == 0 then
break
end
fmt = '%.0f' -- only least significant unit can have a non-integral value
end
local reversed, count = {}, #results
for i = 1, count do
reversed[i] = results[count + 1 - i]
end
return true, sign .. table.concat(reversed, sep2)
end
local valinfo = in_unit_table.valinfo
local success, result = make_result(valinfo[1], true)
if not success then return false, result end
local range = parms.range
if range then
for i = 1, range.n do
local success, result2 = make_result(valinfo[i+1])
if not success then return false, result2 end
result = range_text(range[i], want_name, parms, result, result2, inout, {spaced=true})
end
end
return true, result .. mid
end
local function process(parms, in_unit_table, out_unit_table)
-- Return true, s, outunit where s = final wikitext result,
-- or return false, t where t is an error message table.
linked_pages = {}
local success, bad_output
local bad_input_mcode = in_unit_table.bad_mcode -- nil if input unit is a valid convert unit
local out_unit = parms.out_unit
if out_unit == nil or out_unit == '' or type(out_unit) == 'function' then
if bad_input_mcode or parms.opt_input_unit_only then
bad_output = ''
else
local getdef = type(out_unit) == 'function' and out_unit or get_default
success, out_unit = getdef(in_unit_table.valinfo[1].value, in_unit_table)
parms.out_unit = out_unit
if not success then
bad_output = out_unit
end
end
end
if not bad_output and not out_unit_table then
success, out_unit_table = lookup(parms, out_unit, 'any_combination')
if success then
local mismatch = check_mismatch(in_unit_table, out_unit_table)
if mismatch then
bad_output = mismatch
end
else
bad_output = out_unit_table
end
end
local lhs, rhs
local flipped = parms.opt_flip and not bad_input_mcode
if bad_output then
rhs = (bad_output == '') and '' or message(parms, bad_output)
elseif parms.opt_input_unit_only then
rhs = ''
else
local combos -- nil (for 'ft' or 'ftin'), or table of unit tables (for 'm ft')
if not out_unit_table.multiple then -- nil/false ('ft' or 'm ft'), or table of factors ('ftin')
combos = out_unit_table.combination
end
local frac = parms.frac -- nil or denominator of fraction for output values
if frac then
-- Apply fraction to the unit (if only one), or to non-SI units (if a combination),
-- except that if a precision is also specified, the fraction only applies to
-- the hand unit; that allows the following result:
-- {{convert|156|cm|in hand|1|frac=2}} → 156 centimetres (61.4 in; 15.1½ hands)
-- However, the following is handled elsewhere as a special case:
-- {{convert|156|cm|hand in|1|frac=2}} → 156 centimetres (15.1½ hands; 61½ in)
if combos then
local precision = parms.precision
for _, unit in ipairs(combos) do
if unit.builtin == 'hand' or (not precision and not unit.prefixes) then
unit.frac = frac
end
end
else
out_unit_table.frac = frac
end
end
local outputs = {}
local imax = combos and #combos or 1 -- 1 (single unit) or number of unit tables
if imax == 1 then
parms.opt_order_out = nil -- only useful with an output combination
end
if not flipped and not parms.opt_order_out then
-- Process left side first so any duplicate links (from lk=on) are suppressed
-- on right. Example: {{convert|28|e9pc|e9ly|abbr=off|lk=on}}
lhs = process_input(parms, in_unit_table)
end
for i = 1, imax do
local success, item
local out_current = combos and combos[i] or out_unit_table
out_current.inout = 'out'
if i == 1 then
if imax > 1 and out_current.builtin == 'hand' then
out_current.out_next = combos[2] -- built-in hand can influence next unit in a combination
end
if parms.opt_order_out then
out_current.inout = 'in'
end
end
if out_current.multiple then
success, item = make_output_multiple(parms, in_unit_table, out_current)
else
success, item = make_output_single(parms, in_unit_table, out_current)
end
if not success then return false, item end
outputs[i] = item
end
if parms.opt_order_out then
lhs = outputs[1]
table.remove(outputs, 1)
end
local sep = parms.table_joins and parms.table_joins[2] or parms.join_between
rhs = table.concat(outputs, sep)
end
if flipped or not lhs then
local input = process_input(parms, in_unit_table)
if flipped then
lhs = rhs
rhs = input
else
lhs = input
end
end
if parms.join_before then
lhs = parms.join_before .. lhs
end
local wikitext
if bad_input_mcode then
if bad_input_mcode == '' then
wikitext = lhs
else
wikitext = lhs .. message(parms, bad_input_mcode)
end
elseif parms.table_joins then
wikitext = parms.table_joins[1] .. lhs .. parms.table_joins[2] .. rhs
else
wikitext = lhs .. parms.joins[1] .. rhs .. parms.joins[2]
end
if parms.warnings and not bad_input_mcode then
wikitext = wikitext .. parms.warnings
end
return true, get_styles(parms) .. wikitext, out_unit_table
end
local function main_convert(frame)
-- Do convert, and if needed, do it again with higher default precision.
local parms = { frame = frame } -- will hold template arguments, after translation
set_config(frame.args)
local success, result = get_parms(parms, frame:getParent().args)
if success then
if type(result) ~= 'table' then
return tostring(result)
end
local in_unit_table = result
local out_unit_table
for _ = 1, 2 do -- use counter so cannot get stuck repeating convert
success, result, out_unit_table = process(parms, in_unit_table, out_unit_table)
if success and parms.do_convert_again then
parms.do_convert_again = false
else
break
end
end
end
-- If input=x gives a problem, the result should be just the user input
-- (if x is a property like P123 it has been replaced with '').
-- An unknown input unit would display the input and an error message
-- with success == true at this point.
-- Also, can have success == false with a message that outputs an empty string.
if parms.input_text then
if success and not parms.have_problem then
return result
end
local cat
if parms.tracking then
-- Add a tracking category using the given text as the category sort key.
-- There is currently only one type of tracking, but in principle multiple
-- items could be tracked, using different sort keys for convenience.
cat = wanted_category('tracking', parms.tracking)
end
return parms.input_text .. (cat or '')
end
return success and result or message(parms, result)
end
local function _unit(unitcode, options)
-- Helper function for Module:Val to look up a unit.
-- Parameter unitcode must be a string to identify the wanted unit.
-- Parameter options must be nil or a table with optional fields:
-- value = number (for sort key; default value is 1)
-- scaled_top = nil for a normal unit, or a number for a unit which is
-- the denominator of a per unit (for sort key)
-- si = { 'symbol', 'link' }
-- (a table with two strings) to make an SI unit
-- that will be used for the look up
-- link = true if result should be [[linked]]
-- sort = 'on' or 'debug' if result should include a sort key in a
-- span element ('debug' makes the key visible)
-- name = true for the name of the unit instead of the symbol
-- us = true for the US spelling of the unit, if any
-- Return nil if unitcode is not a non-empty string.
-- Otherwise return a table with fields:
-- text = requested symbol or name of unit, optionally linked
-- scaled_value = input value adjusted by unit scale; used for sort key
-- sortspan = span element with sort key like that provided by {{ntsh}},
-- calculated from the result of converting value
-- to a base unit with scale 1.
-- unknown = true if the unitcode was not known
unitcode = strip(unitcode)
if unitcode == nil or unitcode == '' then
return nil
end
set_config({})
linked_pages = {}
options = options or {}
local parms = {
abbr = options.name and 'off' or 'on',
lk = options.link and 'on' or nil,
opt_sp_us = options.us and true or nil,
opt_ignore_error = true, -- do not add pages using this function to 'what links here' for Module:Convert/extra
opt_sortable_on = options.sort == 'on' or options.sort == 'debug',
opt_sortable_debug = options.sort == 'debug',
}
if options.si then
-- Make a dummy table of units (just one unit) for lookup to use.
-- This makes lookup recognize any SI prefix in the unitcode.
local symbol = options.si[1] or '?'
parms.unittable = { [symbol] = {
_name1 = symbol,
_name2 = symbol,
_symbol = symbol,
utype = symbol,
scale = symbol == 'g' and 0.001 or 1,
prefixes = 1,
default = symbol,
link = options.si[2],
}}
end
local success, unit_table = lookup(parms, unitcode, 'no_combination')
if not success then
unit_table = setmetatable({
symbol = unitcode, name2 = unitcode, utype = unitcode,
scale = 1, default = '', defkey = '', linkey = '' }, unit_mt)
end
local value = tonumber(options.value) or 1
local clean = tostring(abs(value))
local info = {
value = value,
altvalue = value,
singular = (clean == '1'),
clean = clean,
show = clean,
}
unit_table.inout = 'in'
unit_table.valinfo = { info }
local sortspan, scaled_value
if options.sort then
sortspan, scaled_value = make_table_or_sort(parms, value, info, unit_table, options.scaled_top)
end
return {
text = make_id(parms, 1, unit_table),
sortspan = sortspan,
scaled_value = scaled_value,
unknown = not success and true or nil,
}
end
return { convert = main_convert, _unit = _unit }
lh3b5yxbownw382vst8dwy5ungn7knn
Modul:Convert/data
828
598
2695
2694
2024-12-03T14:16:33Z
Jon Harald Søby
20
6 revisi diimpor
2694
Scribunto
text/plain
-- Conversion data used by [[Modul:Convert]] which uses mw.loadData() for
-- read-only access to this module so that it is loaded only once per page.
-- See [[:en:Template:Convert/Transwiki guide]] if copying to another wiki.
--
-- These data tables follow:
-- all_units all properties for a unit, including default output
-- default_exceptions exceptions for default output ('kg' and 'g' have different defaults)
-- link_exceptions exceptions for links ('kg' and 'g' have different links)
--
-- These tables are generated by a script which reads the wikitext of a page that
-- documents the required properties of each unit; see [[:en:Module:Convert/doc]].
---------------------------------------------------------------------------
-- Do not change the data in this table because it is created by running --
-- a script that reads the wikitext from a wiki page (see note above). --
---------------------------------------------------------------------------
local all_units = {
["Gy"] = {
_name1 = "gray",
_symbol = "Gy",
utype = "absorbed radiation dose",
scale = 1,
prefixes = 1,
default = "rad",
link = "Gray (unit)",
},
["rad"] = {
_name1 = "rad",
_symbol = "rad",
utype = "absorbed radiation dose",
scale = 0.01,
prefixes = 1,
default = "Gy",
link = "Rad (unit)",
},
["cm/s2"] = {
name1 = "centimetre per second squared",
name1_us = "centimeter per second squared",
name2 = "centimetres per second squared",
name2_us = "centimeters per second squared",
symbol = "cm/s<sup>2</sup>",
utype = "acceleration",
scale = 0.01,
default = "ft/s2",
link = "Gal (unit)",
},
["ft/s2"] = {
name1 = "foot per second squared",
name2 = "feet per second squared",
symbol = "ft/s<sup>2</sup>",
utype = "acceleration",
scale = 0.3048,
default = "m/s2",
},
["g0"] = {
name1 = "standard gravity",
name2 = "standard gravities",
symbol = "''g''<sub>0</sub>",
utype = "acceleration",
scale = 9.80665,
default = "m/s2",
},
["g-force"] = {
name2 = "''g''",
symbol = "''g''",
utype = "acceleration",
scale = 9.80665,
default = "m/s2",
link = "g-force",
},
["km/hs"] = {
name1 = "kilometer per jam per detik",
name1_us = "kilometer per jam per detik",
name2 = "kilometer per jam per detik",
name2_us = "kilometer per jam per detik",
symbol = "km/(h⋅s)",
utype = "acceleration",
scale = 0.27777777777777779,
default = "mph/s",
link = "Percepatan",
},
["km/s2"] = {
name1 = "kilometer per detik persegi",
name1_us = "kilometer per detik persegi",
name2 = "kilometer per detik persegi",
name2_us = "kilometer per detik persegi",
symbol = "km/s<sup>2</sup>",
utype = "acceleration",
scale = 1000,
default = "mph/s",
link = "Percepatan",
},
["m/s2"] = {
name1 = "metre per second squared",
name1_us = "meter per second squared",
name2 = "metres per second squared",
name2_us = "meters per second squared",
symbol = "m/s<sup>2</sup>",
utype = "acceleration",
scale = 1,
default = "ft/s2",
},
["mph/s"] = {
name1 = "mile per hour per second",
name2 = "miles per hour per second",
symbol = "mph/s",
utype = "acceleration",
scale = 0.44704,
default = "km/hs",
link = "Acceleration",
},
["km/h/s"] = {
target = "km/hs",
},
["standard gravity"] = {
target = "g0",
},
["1000sqft"] = {
name1 = "thousand square feet",
name2 = "thousand square feet",
symbol = "1000 sq ft",
utype = "area",
scale = 92.90304,
default = "m2",
link = "Kaki persegi",
},
["a"] = {
_name1 = "are",
_symbol = "a",
utype = "area",
scale = 100,
prefixes = 1,
default = "sqft",
link = "Hectare#Are",
},
["acre"] = {
symbol = "ekar",
usename = 1,
utype = "area",
scale = 4046.8564224,
default = "ha",
subdivs = { ["rood"] = { 4, default = "ha" }, ["sqperch"] = { 160, default = "ha" } },
},
["acre-sing"] = {
target = "ekar",
},
["arpent"] = {
symbol = "arpent",
usename = 1,
utype = "area",
scale = 3418.89,
default = "ha",
},
["cda"] = {
name1 = "cuerda",
symbol = "cda",
utype = "area",
scale = 3930.395625,
default = "ha acre",
},
["daa"] = {
name1 = "decare",
symbol = "daa",
utype = "area",
scale = 1000,
default = "km2 sqmi",
},
["dunam"] = {
symbol = "dunam",
usename = 1,
utype = "area",
scale = 1000,
default = "km2 sqmi",
},
["dunum"] = {
symbol = "dunum",
usename = 1,
utype = "area",
scale = 1000,
default = "km2 sqmi",
link = "Dunam",
},
["ha"] = {
name1 = "hectare",
symbol = "ha",
utype = "area",
scale = 10000,
default = "acre",
},
["hectare"] = {
name1 = "hectare",
symbol = "ha",
usename = 1,
utype = "area",
scale = 10000,
default = "acre",
},
["Irish acre"] = {
name1 = "Irish acre",
symbol = "Irish acres",
utype = "area",
scale = 6555.2385024,
default = "ha",
link = "Acre (Irish)",
},
["m2"] = {
_name1 = "square metre",
_name1_us= "square meter",
_symbol = "m<sup>2</sup>",
prefix_position= 8,
utype = "area",
scale = 1,
prefixes = 2,
default = "sqft",
link = "Square metre",
},
["pondemaat"] = {
name1 = "pondemaat",
name2 = "pondemaat",
symbol = "pond",
utype = "area",
scale = 3674.363358816,
default = "m2",
link = ":nl:pondemaat",
},
["pyeong"] = {
name2 = "pyeong",
symbol = "pyeong",
usename = 1,
utype = "area",
scale = 3.3057851239669422,
default = "m2",
},
["rai"] = {
name2 = "rai",
symbol = "rai",
utype = "area",
scale = 1600,
default = "m2",
link = "Rai (unit)",
},
["rood"] = {
symbol = "rood",
usename = 1,
utype = "area",
scale = 1011.7141056,
default = "sqft m2",
subdivs = { ["sqperch"] = { 40, default = "m2" } },
link = "Rood (unit)",
},
["sqfoot"] = {
name1 = "square foot",
name2 = "square foot",
symbol = "sq ft",
utype = "area",
scale = 0.09290304,
default = "m2",
},
["sqft"] = {
name1 = "square foot",
name2 = "square feet",
symbol = "sq ft",
utype = "area",
scale = 0.09290304,
default = "m2",
},
["sqin"] = {
name1 = "square inch",
name2 = "square inches",
symbol = "sq in",
utype = "area",
scale = 0.00064516,
default = "cm2",
},
["sqmi"] = {
name1 = "square mile",
symbol = "sq mi",
utype = "area",
scale = 2589988.110336,
default = "km2",
},
["sqnmi"] = {
name1 = "square nautical mile",
symbol = "sq nmi",
utype = "area",
scale = 3429904,
default = "km2 sqmi",
link = "Nautical mile",
},
["sqperch"] = {
name2 = "perches",
symbol = "perch",
usename = 1,
utype = "area",
scale = 25.29285264,
default = "m2",
link = "Rod (unit)#Area and volume",
},
["sqverst"] = {
symbol = "square verst",
usename = 1,
utype = "area",
scale = 1138062.24,
default = "km2 sqmi",
link = "Verst",
},
["sqyd"] = {
name1 = "square yard",
symbol = "sq yd",
utype = "area",
scale = 0.83612736,
default = "m2",
},
["tsubo"] = {
name2 = "tsubo",
symbol = "tsubo",
usename = 1,
utype = "area",
scale = 3.3057851239669422,
default = "m2",
link = "Japanese units of measurement#Area",
},
["acres"] = {
target = "acre",
},
["are"] = {
target = "a",
},
["decare"] = {
target = "daa",
},
["foot2"] = {
target = "sqfoot",
},
["ft2"] = {
target = "sqft",
},
["in2"] = {
target = "sqin",
symbol = "in<sup>2</sup>",
},
["km²"] = {
target = "km2",
},
["mi2"] = {
target = "sqmi",
},
["million acre"] = {
target = "e6acre",
},
["million acres"] = {
target = "e6acre",
},
["million hectares"] = {
target = "e6ha",
},
["m²"] = {
target = "m2",
},
["nmi2"] = {
target = "sqnmi",
},
["pond"] = {
target = "pondemaat",
},
["sq arp"] = {
target = "arpent",
},
["sqkm"] = {
target = "km2",
},
["sqm"] = {
target = "m2",
},
["square verst"] = {
target = "sqverst",
},
["verst2"] = {
target = "sqverst",
},
["yd2"] = {
target = "sqyd",
},
["m2/ha"] = {
name1 = "square metre per hectare",
name1_us = "square meter per hectare",
name2 = "square metres per hectare",
name2_us = "square meters per hectare",
symbol = "m<sup>2</sup>/ha",
utype = "area per unit area",
scale = 0.0001,
default = "sqft/acre",
link = "Basal area",
},
["sqft/acre"] = {
name1 = "square foot per acre",
name2 = "square feet per acre",
symbol = "sq ft/acre",
utype = "area per unit area",
scale = 2.295684113865932e-5,
default = "m2/ha",
link = "Basal area",
},
["cent"] = {
name1 = "cent",
symbol = "¢",
utype = "cent",
scale = 1,
default = "cent",
link = "Cent (currency)",
},
["¢"] = {
target = "cent",
},
["A.h"] = {
name1 = "ampere hour",
symbol = "A⋅h",
utype = "charge",
scale = 3600,
default = "coulomb",
},
["coulomb"] = {
_name1 = "coulomb",
_symbol = "C",
utype = "charge",
scale = 1,
prefixes = 1,
default = "e",
link = "Coulomb",
},
["e"] = {
name1 = "elementary charge",
symbol = "''e''",
utype = "charge",
scale = 1.602176487e-19,
default = "coulomb",
},
["g-mol"] = {
name1 = "gram-mole",
symbol = "g‑mol",
utype = "chemical amount",
scale = 1,
default = "lbmol",
link = "Mole (unit)",
},
["gmol"] = {
name1 = "gram-mole",
symbol = "gmol",
utype = "chemical amount",
scale = 1,
default = "lbmol",
link = "Mole (unit)",
},
["kmol"] = {
name1 = "kilomole",
symbol = "kmol",
utype = "chemical amount",
scale = 1000,
default = "lbmol",
link = "Mole (unit)",
},
["lb-mol"] = {
name1 = "pound-mole",
symbol = "lb‑mol",
utype = "chemical amount",
scale = 453.59237,
default = "mol",
},
["lbmol"] = {
name1 = "pound-mole",
symbol = "lbmol",
utype = "chemical amount",
scale = 453.59237,
default = "mol",
},
["mol"] = {
name1 = "mole",
symbol = "mol",
utype = "chemical amount",
scale = 1,
default = "lbmol",
link = "Mole (unit)",
},
["kgCO2/L"] = {
name1 = "kilogram per litre",
name1_us = "kilogram per liter",
name2 = "kilograms per litre",
name2_us = "kilograms per liter",
symbol = "kg(CO<sub>2</sub>)/L",
utype = "co2 per unit volume",
scale = 1000,
default = "lbCO2/USgal",
link = "Exhaust gas",
},
["lbCO2/USgal"] = {
name1 = "pound per US gallon",
name2 = "pounds per US gallon",
symbol = "lbCO2/US gal",
utype = "co2 per unit volume",
scale = 119.82642731689663,
default = "kgCO2/L",
link = "Exhaust gas",
},
["oz/lb"] = {
per = { "oz", "lb" },
utype = "concentration",
default = "mg/kg",
},
["mg/kg"] = {
per = { "mg", "kg" },
utype = "concentration",
default = "oz/lb",
},
["g/dm3"] = {
name1 = "gram per cubic decimetre",
name1_us = "gram per cubic decimeter",
name2 = "grams per cubic decimetre",
name2_us = "grams per cubic decimeter",
symbol = "g/dm<sup>3</sup>",
utype = "density",
scale = 1,
default = "kg/m3",
link = "Density",
},
["g/L"] = {
name1 = "gram per litre",
name1_us = "gram per liter",
name2 = "grams per litre",
name2_us = "grams per liter",
symbol = "g/L",
utype = "density",
scale = 1,
default = "lb/cuin",
link = "Density",
},
["g/mL"] = {
name1 = "gram per millilitre",
name1_us = "gram per milliliter",
name2 = "grams per millilitre",
name2_us = "grams per milliliter",
symbol = "g/mL",
utype = "density",
scale = 1000,
default = "lb/cuin",
link = "Density",
},
["g/ml"] = {
name1 = "gram per millilitre",
name1_us = "gram per milliliter",
name2 = "grams per millilitre",
name2_us = "grams per milliliter",
symbol = "g/ml",
utype = "density",
scale = 1000,
default = "lb/cuin",
link = "Density",
},
["kg/dm3"] = {
name1 = "kilogram per cubic decimetre",
name1_us = "kilogram per cubic decimeter",
name2 = "kilograms per cubic decimetre",
name2_us = "kilograms per cubic decimeter",
symbol = "kg/dm<sup>3</sup>",
utype = "density",
scale = 1000,
default = "lb/cuft",
link = "Density",
},
["kg/L"] = {
name1 = "kilogram per litre",
name1_us = "kilogram per liter",
name2 = "kilograms per litre",
name2_us = "kilograms per liter",
symbol = "kg/L",
utype = "density",
scale = 1000,
default = "lb/USgal",
link = "Density",
},
["kg/l"] = {
name1 = "kilogram per litre",
name1_us = "kilogram per liter",
name2 = "kilograms per litre",
name2_us = "kilograms per liter",
symbol = "kg/l",
utype = "density",
scale = 1000,
default = "lb/USgal",
link = "Density",
},
["kg/m3"] = {
name1 = "kilogram per cubic metre",
name1_us = "kilogram per cubic meter",
name2 = "kilograms per cubic metre",
name2_us = "kilograms per cubic meter",
symbol = "kg/m<sup>3</sup>",
utype = "density",
scale = 1,
default = "lb/cuyd",
link = "Density",
},
["lb/cuft"] = {
name1 = "pound per cubic foot",
name2 = "pounds per cubic foot",
symbol = "lb/cu ft",
utype = "density",
scale = 16.018463373960142,
default = "g/cm3",
link = "Density",
},
["lb/cuin"] = {
name1 = "pound per cubic inch",
name2 = "pounds per cubic inch",
symbol = "lb/cu in",
utype = "density",
scale = 27679.904710203122,
default = "g/cm3",
link = "Density",
},
["lb/cuyd"] = {
name1 = "pound per cubic yard",
name2 = "pounds per cubic yard",
symbol = "lb/cu yd",
utype = "density",
scale = 0.5932764212577829,
default = "kg/m3",
link = "Density",
},
["lb/impgal"] = {
name1 = "pound per imperial gallon",
name2 = "pounds per imperial gallon",
symbol = "lb/imp gal",
utype = "density",
scale = 99.776372663101697,
default = "kg/L",
link = "Density",
},
["lb/in3"] = {
name1 = "pound per cubic inch",
name2 = "pounds per cubic inch",
symbol = "lb/cu in",
utype = "density",
scale = 27679.904710203122,
default = "g/cm3",
link = "Density",
},
["lb/U.S.gal"] = {
name1 = "pound per U.S. gallon",
name2 = "pounds per U.S. gallon",
symbol = "lb/U.S. gal",
utype = "density",
scale = 119.82642731689663,
default = "kg/L",
link = "Density",
},
["lb/USbu"] = {
name1 = "pound per US bushel",
name2 = "pounds per US bushel",
symbol = "lb/US bu",
utype = "density",
scale = 12.871859780974471,
default = "kg/m3",
link = "Bushel",
},
["lb/USgal"] = {
name1 = "pound per US gallon",
name2 = "pounds per US gallon",
symbol = "lb/US gal",
utype = "density",
scale = 119.82642731689663,
default = "kg/L",
link = "Density",
},
["lbm/cuin"] = {
name1 = "pound mass per cubic inch",
name2 = "pounds mass per cubic inch",
symbol = "lbm/cu in",
utype = "density",
scale = 27679.904710203122,
default = "g/cm3",
link = "Density",
},
["mg/L"] = {
name1 = "milligram per litre",
name1_us = "milligram per liter",
name2 = "milligrams per litre",
name2_us = "milligrams per liter",
symbol = "mg/L",
utype = "density",
scale = 0.001,
default = "lb/cuin",
link = "Density",
},
["oz/cuin"] = {
name1 = "ounce per cubic inch",
name2 = "ounces per cubic inch",
symbol = "oz/cu in",
utype = "density",
scale = 1729.9940443876951,
default = "g/cm3",
link = "Density",
},
["g/cm3"] = {
per = { "g", "cm3" },
utype = "density",
default = "lb/cuin",
},
["g/m3"] = {
per = { "g", "m3" },
utype = "density",
default = "lb/cuyd",
link = "Density",
},
["Mg/m3"] = {
per = { "Mg", "m3" },
utype = "density",
default = "lb/cuft",
},
["mg/l"] = {
per = { "mg", "ll" },
utype = "density",
default = "oz/cuin",
},
["μg/dL"] = {
per = { "μg", "dL" },
utype = "density",
default = "lb/cuin",
},
["μg/l"] = {
per = { "μg", "ll" },
utype = "density",
default = "oz/cuin",
},
["lb/ft3"] = {
target = "lb/cuft",
},
["lb/yd3"] = {
target = "lb/cuyd",
},
["lbm/in3"] = {
target = "lbm/cuin",
},
["mcg/dL"] = {
target = "μg/dL",
},
["oz/in3"] = {
target = "oz/cuin",
},
["ug/dL"] = {
target = "μg/dL",
},
["ug/l"] = {
target = "μg/l",
},
["B.O.T.U."] = {
name1 = "Board of Trade Unit",
symbol = "B.O.T.U.",
utype = "energy",
scale = 3600000,
default = "MJ",
link = "Kilowatt-hour",
},
["bboe"] = {
name1 = "barrel of oil equivalent",
name2 = "barrels of oil equivalent",
symbol = "bboe",
utype = "energy",
scale = 6117863200,
default = "GJ",
},
["BOE"] = {
name1 = "barrel of oil equivalent",
name2 = "barrels of oil equivalent",
symbol = "BOE",
utype = "energy",
scale = 6117863200,
default = "GJ",
},
["BTU"] = {
name1 = "British thermal unit",
symbol = "BTU",
utype = "energy",
scale = 1055.05585262,
default = "kJ",
},
["Btu"] = {
name1 = "British thermal unit",
symbol = "Btu",
utype = "energy",
scale = 1055.05585262,
default = "kJ",
},
["BTU-39F"] = {
name1 = "British thermal unit (39°F)",
name2 = "British thermal units (39°F)",
symbol = "BTU<sub>39°F</sub>",
utype = "energy",
scale = 1059.67,
default = "kJ",
link = "British thermal unit",
},
["Btu-39F"] = {
name1 = "British thermal unit (39°F)",
name2 = "British thermal units (39°F)",
symbol = "Btu<sub>39°F</sub>",
utype = "energy",
scale = 1059.67,
default = "kJ",
link = "British thermal unit",
},
["BTU-59F"] = {
name1 = "British thermal unit (59°F)",
name2 = "British thermal units (59°F)",
symbol = "BTU<sub>59°F</sub>",
utype = "energy",
scale = 1054.804,
default = "kJ",
link = "British thermal unit",
},
["Btu-59F"] = {
name1 = "British thermal unit (59°F)",
name2 = "British thermal units (59°F)",
symbol = "Btu<sub>59°F</sub>",
utype = "energy",
scale = 1054.804,
default = "kJ",
link = "British thermal unit",
},
["BTU-60F"] = {
name1 = "British thermal unit (60°F)",
name2 = "British thermal units (60°F)",
symbol = "BTU<sub>60°F</sub>",
utype = "energy",
scale = 1054.68,
default = "kJ",
link = "British thermal unit",
},
["Btu-60F"] = {
name1 = "British thermal unit (60°F)",
name2 = "British thermal units (60°F)",
symbol = "Btu<sub>60°F</sub>",
utype = "energy",
scale = 1054.68,
default = "kJ",
link = "British thermal unit",
},
["BTU-63F"] = {
name1 = "British thermal unit (63°F)",
name2 = "British thermal units (63°F)",
symbol = "BTU<sub>63°F</sub>",
utype = "energy",
scale = 1054.6,
default = "kJ",
link = "British thermal unit",
},
["Btu-63F"] = {
name1 = "British thermal unit (63°F)",
name2 = "British thermal units (63°F)",
symbol = "Btu<sub>63°F</sub>",
utype = "energy",
scale = 1054.6,
default = "kJ",
link = "British thermal unit",
},
["BTU-ISO"] = {
name1 = "British thermal unit (ISO)",
name2 = "British thermal units (ISO)",
symbol = "BTU<sub>ISO</sub>",
utype = "energy",
scale = 1055.056,
default = "kJ",
link = "British thermal unit",
},
["Btu-ISO"] = {
target = "BTU-ISO",
},
["BTU-IT"] = {
name1 = "British thermal unit (IT)",
name2 = "British thermal units (IT)",
symbol = "BTU<sub>IT</sub>",
utype = "energy",
scale = 1055.05585262,
default = "kJ",
link = "British thermal unit",
},
["Btu-IT"] = {
name1 = "British thermal unit (IT)",
name2 = "British thermal units (IT)",
symbol = "Btu<sub>IT</sub>",
utype = "energy",
scale = 1055.05585262,
default = "kJ",
link = "British thermal unit",
},
["BTU-mean"] = {
name1 = "British thermal unit (mean)",
name2 = "British thermal units (mean)",
symbol = "BTU<sub>mean</sub>",
utype = "energy",
scale = 1055.87,
default = "kJ",
link = "British thermal unit",
},
["Btu-mean"] = {
name1 = "British thermal unit (mean)",
name2 = "British thermal units (mean)",
symbol = "Btu<sub>mean</sub>",
utype = "energy",
scale = 1055.87,
default = "kJ",
link = "British thermal unit",
},
["BTU-th"] = {
name1 = "British thermal unit (thermochemical)",
name2 = "British thermal units (thermochemical)",
symbol = "BTU<sub>th</sub>",
utype = "energy",
scale = 1054.35026444,
default = "kJ",
link = "British thermal unit",
},
["Btu-th"] = {
name1 = "British thermal unit (thermochemical)",
name2 = "British thermal units (thermochemical)",
symbol = "Btu<sub>th</sub>",
utype = "energy",
scale = 1054.35026444,
default = "kJ",
link = "British thermal unit",
},
["Cal"] = {
name1 = "calorie",
symbol = "Cal",
utype = "energy",
scale = 4184,
default = "kJ",
},
["cal"] = {
name1 = "calorie",
symbol = "cal",
utype = "energy",
scale = 4.184,
default = "J",
},
["Cal-15"] = {
name1 = "Calorie (15°C)",
name2 = "Calories (15°C)",
symbol = "Cal<sub>15</sub>",
utype = "energy",
scale = 4185.8,
default = "kJ",
link = "Calorie",
},
["cal-15"] = {
name1 = "calorie (15°C)",
name2 = "calories (15°C)",
symbol = "cal<sub>15</sub>",
utype = "energy",
scale = 4.1858,
default = "J",
link = "Calorie",
},
["Cal-IT"] = {
name1 = "Calorie (International Steam Table)",
name2 = "Calories (International Steam Table)",
symbol = "Cal<sub>IT</sub>",
utype = "energy",
scale = 4186.8,
default = "kJ",
link = "Calorie",
},
["cal-IT"] = {
name1 = "calorie (International Steam Table)",
name2 = "calories (International Steam Table)",
symbol = "cal<sub>IT</sub>",
utype = "energy",
scale = 4.1868,
default = "J",
link = "Calorie",
},
["Cal-th"] = {
name1 = "Calorie (thermochemical)",
name2 = "Calories (thermochemical)",
symbol = "Cal<sub>th</sub>",
utype = "energy",
scale = 4184,
default = "kJ",
link = "Calorie",
},
["cal-th"] = {
name1 = "calorie (thermochemical)",
name2 = "calories (thermochemical)",
symbol = "cal<sub>th</sub>",
utype = "energy",
scale = 4.184,
default = "J",
link = "Calorie",
},
["CHU-IT"] = {
name1 = "Celsius heat unit (International Table)",
name2 = "Celsius heat units (International Table)",
symbol = "CHU<sub>IT</sub>",
utype = "energy",
scale = 1899.100534716,
default = "kJ",
link = "Conversion of units#Energy",
},
["cufootnaturalgas"] = {
name1 = "cubic foot of natural gas",
name2 = "cubic foot of natural gas",
symbol = "cuftnaturalgas",
usename = 1,
utype = "energy",
scale = 1055055.85262,
default = "MJ",
link = "Conversion of units#Energy",
},
["cuftnaturalgas"] = {
name1 = "cubic foot of natural gas",
name2 = "cubic feet of natural gas",
symbol = "cuftnaturalgas",
usename = 1,
utype = "energy",
scale = 1055055.85262,
default = "MJ",
link = "Conversion of units#Energy",
},
["Eh"] = {
name1 = "Hartree",
symbol = "''E''<sub>h</sub>",
utype = "energy",
scale = 4.35974417e-18,
default = "eV",
},
["erg"] = {
symbol = "erg",
utype = "energy",
scale = 0.0000001,
default = "μJ",
},
["eV"] = {
name1 = "electronvolt",
symbol = "eV",
utype = "energy",
scale = 1.602176487e-19,
default = "aJ",
},
["feV"] = {
name1 = "femtoelectronvolt",
symbol = "feV",
utype = "energy",
scale = 1.602176487e-34,
default = "yJ",
link = "Electronvolt",
},
["foe"] = {
symbol = "foe",
utype = "energy",
scale = 1e44,
default = "YJ",
link = "Foe (unit)",
},
["ftlb"] = {
name1 = "foot-pound",
symbol = "ft⋅lb",
utype = "energy",
alttype = "torque",
scale = 1.3558179483314004,
default = "J",
link = "Foot-pound (energy)",
},
["ftlb-f"] = {
name1 = "foot-pound force",
name2 = "foot-pounds force",
symbol = "ft⋅lb<sub>f</sub>",
utype = "energy",
alttype = "torque",
scale = 1.3558179483314004,
default = "J",
link = "Foot-pound (energy)",
},
["ftlbf"] = {
name1 = "foot-pound force",
name2 = "foot-pounds force",
symbol = "ft⋅lbf",
utype = "energy",
alttype = "torque",
scale = 1.3558179483314004,
default = "J",
link = "Foot-pound (energy)",
},
["ftpdl"] = {
name1 = "foot-poundal",
symbol = "ft⋅pdl",
utype = "energy",
scale = 0.0421401100938048,
default = "J",
},
["GeV"] = {
name1 = "gigaelectronvolt",
symbol = "GeV",
utype = "energy",
scale = 1.602176487e-10,
default = "nJ",
link = "Electronvolt",
},
["gTNT"] = {
name2 = "grams of TNT",
symbol = "gram of TNT",
usename = 1,
utype = "energy",
scale = 4184,
default = "kJ",
link = "TNT equivalent",
},
["Gtoe"] = {
name1 = "gigatonne of oil equivalent",
name2 = "gigatonnes of oil equivalent",
symbol = "Gtoe",
utype = "energy",
scale = 4.1868e19,
default = "EJ",
link = "Tonne of oil equivalent",
},
["GtonTNT"] = {
name2 = "gigatons of TNT",
symbol = "gigaton of TNT",
usename = 1,
utype = "energy",
scale = 4.184e18,
default = "EJ",
link = "TNT equivalent",
},
["GtTNT"] = {
name2 = "gigatonnes of TNT",
symbol = "gigatonne of TNT",
usename = 1,
utype = "energy",
scale = 4.184e18,
default = "EJ",
link = "TNT equivalent",
},
["GW.h"] = {
name1 = "gigawatt-hour",
symbol = "GW⋅h",
utype = "energy",
scale = 3.6e12,
default = "TJ",
link = "Kilowatt-hour",
},
["GWh"] = {
name1 = "gigawatt-hour",
symbol = "GWh",
utype = "energy",
scale = 3.6e12,
default = "TJ",
link = "Kilowatt-hour",
},
["hph"] = {
name1 = "horsepower-hour",
symbol = "hp⋅h",
utype = "energy",
scale = 2684519.537696172792,
default = "kWh",
link = "Horsepower",
},
["inlb"] = {
name1 = "inch-pound",
symbol = "in⋅lb",
utype = "energy",
alttype = "torque",
scale = 0.1129848290276167,
default = "mJ",
link = "Foot-pound (energy)",
},
["inlb-f"] = {
name1 = "inch-pound force",
name2 = "inch-pounds force",
symbol = "in⋅lb<sub>f</sub>",
utype = "energy",
alttype = "torque",
scale = 0.1129848290276167,
default = "mJ",
link = "Foot-pound (energy)",
},
["inlbf"] = {
name1 = "inch-pound force",
name2 = "inch-pounds force",
symbol = "in⋅lbf",
utype = "energy",
alttype = "torque",
scale = 0.1129848290276167,
default = "mJ",
link = "Foot-pound (energy)",
},
["inoz-f"] = {
name1 = "inch-ounce force",
name2 = "inch-ounces force",
symbol = "in⋅oz<sub>f</sub>",
utype = "energy",
alttype = "torque",
scale = 0.00706155181422604375,
default = "mJ",
link = "Foot-pound (energy)",
},
["inozf"] = {
name1 = "inch-ounce force",
name2 = "inch-ounces force",
symbol = "in⋅ozf",
utype = "energy",
alttype = "torque",
scale = 0.00706155181422604375,
default = "mJ",
link = "Foot-pound (energy)",
},
["J"] = {
_name1 = "joule",
_symbol = "J",
utype = "energy",
scale = 1,
prefixes = 1,
default = "cal",
link = "Joule",
},
["kBOE"] = {
name1 = "kilo barrel of oil equivalent",
name2 = "kilo barrels of oil equivalent",
symbol = "kBOE",
utype = "energy",
scale = 6.1178632e12,
default = "TJ",
link = "Barrel of oil equivalent",
},
["kcal"] = {
name1 = "kilocalorie",
symbol = "kcal",
utype = "energy",
scale = 4184,
default = "kJ",
link = "Calorie",
},
["kcal-15"] = {
name1 = "kilocalorie (15°C)",
name2 = "kilocalories (15°C)",
symbol = "kcal<sub>15</sub>",
utype = "energy",
scale = 4185.8,
default = "kJ",
link = "Calorie",
},
["kcal-IT"] = {
name1 = "kilocalorie (International Steam Table)",
name2 = "kilocalories (International Steam Table)",
symbol = "kcal<sub>IT</sub>",
utype = "energy",
scale = 4186.8,
default = "kJ",
link = "Calorie",
},
["kcal-th"] = {
name1 = "kilocalorie (thermochemical)",
name2 = "kilocalories (thermochemical)",
symbol = "kcal<sub>th</sub>",
utype = "energy",
scale = 4184,
default = "kJ",
link = "Calorie",
},
["kerg"] = {
name1 = "kiloerg",
symbol = "kerg",
utype = "energy",
scale = 0.0001,
default = "mJ",
link = "Erg",
},
["keV"] = {
name1 = "kiloelectronvolt",
symbol = "keV",
utype = "energy",
scale = 1.602176487e-16,
default = "fJ",
link = "Electronvolt",
},
["kgTNT"] = {
name2 = "kilograms of TNT",
symbol = "kilogram of TNT",
usename = 1,
utype = "energy",
scale = 4184000,
default = "MJ",
link = "TNT equivalent",
},
["kt(TNT)"] = {
name1 = "kilotonne",
name1_us = "kiloton",
symbol = "kt",
utype = "energy",
scale = 4.184e12,
default = "TJ",
link = "TNT equivalent",
},
["ktoe"] = {
name1 = "kilotonne of oil equivalent",
name2 = "kilotonnes of oil equivalent",
symbol = "ktoe",
utype = "energy",
scale = 4.1868e13,
default = "TJ",
link = "Tonne of oil equivalent",
},
["ktonTNT"] = {
name1 = "kiloton of TNT",
name2 = "kilotons of TNT",
symbol = "kt",
utype = "energy",
scale = 4.184e12,
default = "TJ",
link = "TNT equivalent",
},
["ktTNT"] = {
name2 = "kilotonnes of TNT",
symbol = "kilotonne of TNT",
usename = 1,
utype = "energy",
scale = 4.184e12,
default = "TJ",
link = "TNT equivalent",
},
["kW.h"] = {
name1 = "kilowatt-hour",
symbol = "kW⋅h",
utype = "energy",
scale = 3600000,
default = "MJ",
},
["kWh"] = {
name1 = "kilowatt-hour",
symbol = "kWh",
utype = "energy",
scale = 3600000,
default = "MJ",
},
["Mcal"] = {
name1 = "megacalorie",
symbol = "Mcal",
utype = "energy",
scale = 4184000,
default = "MJ",
link = "Calorie",
},
["mcal"] = {
name1 = "millicalorie",
symbol = "mcal",
utype = "energy",
scale = 0.004184,
default = "mJ",
link = "Calorie",
},
["Mcal-15"] = {
name1 = "megacalorie (15°C)",
name2 = "megacalories (15°C)",
symbol = "Mcal<sub>15</sub>",
utype = "energy",
scale = 4185800,
default = "MJ",
link = "Calorie",
},
["mcal-15"] = {
name1 = "millicalorie (15°C)",
name2 = "millicalories (15°C)",
symbol = "mcal<sub>15</sub>",
utype = "energy",
scale = 0.0041858,
default = "mJ",
link = "Calorie",
},
["Mcal-IT"] = {
name1 = "megacalorie (International Steam Table)",
name2 = "megacalories (International Steam Table)",
symbol = "Mcal<sub>IT</sub>",
utype = "energy",
scale = 4186800,
default = "MJ",
link = "Calorie",
},
["mcal-IT"] = {
name1 = "millicalorie (International Steam Table)",
name2 = "millicalories (International Steam Table)",
symbol = "mcal<sub>IT</sub>",
utype = "energy",
scale = 0.0041868,
default = "mJ",
link = "Calorie",
},
["Mcal-th"] = {
name1 = "megacalorie (thermochemical)",
name2 = "megacalories (thermochemical)",
symbol = "Mcal<sub>th</sub>",
utype = "energy",
scale = 4184000,
default = "MJ",
link = "Calorie",
},
["mcal-th"] = {
name1 = "millicalorie (thermochemical)",
name2 = "millicalories (thermochemical)",
symbol = "mcal<sub>th</sub>",
utype = "energy",
scale = 0.004184,
default = "mJ",
link = "Calorie",
},
["Merg"] = {
name1 = "megaerg",
symbol = "Merg",
utype = "energy",
scale = 0.1,
default = "J",
link = "Erg",
},
["merg"] = {
name1 = "millierg",
symbol = "merg",
utype = "energy",
scale = 0.0000000001,
default = "μJ",
link = "Erg",
},
["MeV"] = {
name1 = "megaelectronvolt",
symbol = "MeV",
utype = "energy",
scale = 1.602176487e-13,
default = "pJ",
link = "Electronvolt",
},
["meV"] = {
name1 = "millielectronvolt",
symbol = "meV",
utype = "energy",
scale = 1.602176487e-22,
default = "zJ",
link = "Electronvolt",
},
["MMBtu"] = {
name1 = "million British thermal units",
name2 = "million British thermal units",
symbol = "MMBtu",
utype = "energy",
scale = 1055055852.62,
default = "GJ",
link = "British thermal unit",
},
["Mt(TNT)"] = {
name1 = "megatonne",
name1_us = "megaton",
symbol = "Mt",
utype = "energy",
scale = 4.184e15,
default = "PJ",
link = "TNT equivalent",
},
["Mtoe"] = {
name1 = "megatonne of oil equivalent",
name2 = "megatonnes of oil equivalent",
symbol = "Mtoe",
utype = "energy",
scale = 4.1868e16,
default = "PJ",
link = "Tonne of oil equivalent",
},
["MtonTNT"] = {
name1 = "megaton of TNT",
name2 = "megatons of TNT",
symbol = "Mt",
utype = "energy",
scale = 4.184e15,
default = "PJ",
link = "TNT equivalent",
},
["mtonTNT"] = {
name2 = "millitons of TNT",
symbol = "milliton of TNT",
usename = 1,
utype = "energy",
scale = 4184000,
default = "MJ",
link = "TNT equivalent",
},
["MtTNT"] = {
name2 = "megatonnes of TNT",
symbol = "megatonne of TNT",
usename = 1,
utype = "energy",
scale = 4.184e15,
default = "PJ",
link = "TNT equivalent",
},
["mtTNT"] = {
name2 = "millitonnes of TNT",
symbol = "millitonne of TNT",
usename = 1,
utype = "energy",
scale = 4184000,
default = "MJ",
link = "TNT equivalent",
},
["MW.h"] = {
name1 = "megawatt-hour",
symbol = "MW⋅h",
utype = "energy",
scale = 3600000000,
default = "GJ",
link = "Kilowatt-hour",
},
["mW.h"] = {
name1 = "milliwatt-hour",
symbol = "mW⋅h",
utype = "energy",
scale = 3.6,
default = "J",
link = "Kilowatt-hour",
},
["MWh"] = {
name1 = "megawatt-hour",
symbol = "MWh",
utype = "energy",
scale = 3600000000,
default = "GJ",
link = "Kilowatt-hour",
},
["mWh"] = {
name1 = "milliwatt-hour",
symbol = "mWh",
utype = "energy",
scale = 3.6,
default = "J",
link = "Kilowatt-hour",
},
["neV"] = {
name1 = "nanoelectronvolt",
symbol = "neV",
utype = "energy",
scale = 1.602176487e-28,
default = "yJ",
link = "Electronvolt",
},
["PeV"] = {
name1 = "petaelectronvolt",
symbol = "PeV",
utype = "energy",
scale = 0.0001602176487,
default = "mJ",
link = "Electronvolt",
},
["peV"] = {
name1 = "picoelectronvolt",
symbol = "peV",
utype = "energy",
scale = 1.602176487e-31,
default = "yJ",
link = "Electronvolt",
},
["PSh"] = {
name1 = "Pferdestärkenstunde",
symbol = "PSh",
utype = "energy",
scale = 2647795.5,
default = "kWh",
},
["quad"] = {
name1 = "quadrillion British thermal units",
name2 = "quadrillion British thermal units",
symbol = "quad",
utype = "energy",
scale = 1.054804e18,
default = "EJ",
link = "Quad (unit)",
},
["Ry"] = {
name1 = "rydberg",
symbol = "Ry",
utype = "energy",
scale = 2.1798741e-18,
default = "eV",
link = "Rydberg constant",
},
["scf"] = {
name1 = "standard cubic foot",
name2 = "standard cubic feet",
symbol = "scf",
utype = "energy",
scale = 2869.2044809344,
default = "kJ",
},
["scfoot"] = {
name1 = "standard cubic foot",
name2 = "standard cubic foot",
symbol = "scf",
utype = "energy",
scale = 2869.2044809344,
default = "kJ",
},
["t(TNT)"] = {
name1 = "tonne",
name1_us = "ton",
symbol = "t",
utype = "energy",
scale = 4184000000,
default = "GJ",
link = "TNT equivalent",
},
["TeV"] = {
name1 = "teraelectronvolt",
symbol = "TeV",
utype = "energy",
scale = 1.602176487e-7,
default = "μJ",
link = "Electronvolt",
},
["th"] = {
name1 = "thermie",
symbol = "th",
utype = "energy",
scale = 4186800,
default = "MJ",
link = "Conversion of units#Energy",
},
["thm-EC"] = {
name1 = "therm (EC)",
name2 = "therms (EC)",
symbol = "thm (EC)",
utype = "energy",
scale = 105506000,
default = "MJ",
link = "Therm",
},
["thm-UK"] = {
name1 = "therm (UK)",
name2 = "therms (UK)",
symbol = "thm (UK)",
utype = "energy",
scale = 105505585.257348,
default = "MJ",
link = "Therm",
},
["thm-US"] = {
name1 = "therm (US)",
name1_us = "therm (U.S.)",
name2 = "therms (US)",
name2_us = "therms (U.S.)",
symbol = "thm (US)",
sym_us = "thm (U.S.)",
utype = "energy",
scale = 105480400,
default = "MJ",
link = "Therm",
},
["toe"] = {
name1 = "tonne of oil equivalent",
name2 = "tonnes of oil equivalent",
symbol = "toe",
utype = "energy",
scale = 41868000000,
default = "GJ",
},
["tonTNT"] = {
name2 = "tons of TNT",
symbol = "ton of TNT",
usename = 1,
utype = "energy",
scale = 4184000000,
default = "GJ",
link = "TNT equivalent",
},
["tTNT"] = {
name2 = "tonnes of TNT",
symbol = "tonne of TNT",
usename = 1,
utype = "energy",
scale = 4184000000,
default = "GJ",
link = "TNT equivalent",
},
["TtonTNT"] = {
name2 = "teratons of TNT",
symbol = "teraton of TNT",
usename = 1,
utype = "energy",
scale = 4.184e21,
default = "ZJ",
link = "TNT equivalent",
},
["TtTNT"] = {
name2 = "teratonnes of TNT",
symbol = "teratonne of TNT",
usename = 1,
utype = "energy",
scale = 4.184e21,
default = "ZJ",
link = "TNT equivalent",
},
["TW.h"] = {
name1 = "terawatt-hour",
symbol = "TW⋅h",
utype = "energy",
scale = 3.6e15,
default = "PJ",
link = "Kilowatt-hour",
},
["TWh"] = {
name1 = "terawatt-hour",
symbol = "TWh",
utype = "energy",
scale = 3.6e15,
default = "PJ",
link = "Kilowatt-hour",
},
["W.h"] = {
name1 = "watt-hour",
symbol = "W⋅h",
utype = "energy",
scale = 3600,
default = "kJ",
link = "Kilowatt-hour",
},
["Wh"] = {
name1 = "watt-hour",
symbol = "Wh",
utype = "energy",
scale = 3600,
default = "kJ",
link = "Kilowatt-hour",
},
["μerg"] = {
name1 = "microerg",
symbol = "μerg",
utype = "energy",
scale = 1e-13,
default = "nJ",
link = "Erg",
},
["μeV"] = {
name1 = "microelectronvolt",
symbol = "μeV",
utype = "energy",
scale = 1.602176487e-25,
default = "yJ",
link = "Electronvolt",
},
["μW.h"] = {
name1 = "microwatt-hour",
symbol = "μW⋅h",
utype = "energy",
scale = 0.0036,
default = "mJ",
link = "Kilowatt-hour",
},
["μWh"] = {
name1 = "microwatt-hour",
symbol = "μWh",
utype = "energy",
scale = 0.0036,
default = "mJ",
link = "Kilowatt-hour",
},
["-kW.h"] = {
target = "kW.h",
link = "Kilowatt hour",
},
["btu"] = {
target = "BTU",
},
["Calorie"] = {
target = "Cal",
},
["ft.lbf"] = {
target = "ftlbf",
},
["ft·lbf"] = {
target = "ftlbf",
},
["g-cal-15"] = {
target = "cal-15",
},
["g-cal-IT"] = {
target = "cal-IT",
},
["g-cal-th"] = {
target = "cal-th",
},
["g-kcal-15"] = {
target = "kcal-15",
},
["g-kcal-IT"] = {
target = "kcal-IT",
},
["g-kcal-th"] = {
target = "kcal-th",
},
["g-Mcal-15"] = {
target = "Mcal-15",
},
["g-mcal-15"] = {
target = "mcal-15",
},
["g-Mcal-IT"] = {
target = "Mcal-IT",
},
["g-mcal-IT"] = {
target = "mcal-IT",
},
["g-Mcal-th"] = {
target = "Mcal-th",
},
["g-mcal-th"] = {
target = "mcal-th",
},
["GW-h"] = {
target = "GW.h",
},
["GW·h"] = {
target = "GW.h",
},
["Hartree"] = {
target = "Eh",
},
["hp.h"] = {
target = "hph",
},
["in.lb-f"] = {
target = "inlb-f",
},
["in.lbf"] = {
target = "inlbf",
},
["in.oz-f"] = {
target = "inoz-f",
},
["in.ozf"] = {
target = "inozf",
},
["kbboe"] = {
target = "kBOE",
symbol = "kbboe",
},
["kg-cal-15"] = {
target = "Cal-15",
},
["kg-cal-IT"] = {
target = "Cal-IT",
},
["kg-cal-th"] = {
target = "Cal-th",
},
["kW-h"] = {
target = "kW.h",
},
["kW·h"] = {
target = "kW.h",
},
["MW-h"] = {
target = "MW.h",
},
["mW-h"] = {
target = "mW.h",
},
["MW·h"] = {
target = "MW.h",
},
["TW-h"] = {
target = "TW.h",
},
["uerg"] = {
target = "μerg",
},
["ueV"] = {
target = "μeV",
},
["uW-h"] = {
target = "μW.h",
},
["uW.h"] = {
target = "μW.h",
},
["uWh"] = {
target = "μWh",
},
["W-h"] = {
target = "W.h",
},
["eVpar"] = {
_name1 = "electronvolt",
_symbol = "eV",
utype = "energy per chemical amount",
scale = 96485.329522144166,
prefixes = 1,
default = "kcal/mol",
link = "Electronvolt",
},
["kcal/mol"] = {
per = { "kcal", "mol" },
utype = "energy per chemical amount",
default = "kJ/mol",
link = "Kilocalorie per mole",
},
["kJ/mol"] = {
per = { "kJ", "mol" },
utype = "energy per chemical amount",
default = "kcal/mol",
link = "Joule per mole",
},
["kWh/100 km"] = {
name1 = "kilowatt-hour per 100 kilometres",
name1_us = "kilowatt-hour per 100 kilometers",
name2 = "kilowatt-hours per 100 kilometres",
name2_us = "kilowatt-hours per 100 kilometers",
symbol = "kW⋅h/100 km",
utype = "energy per unit length",
scale = 36,
default = "MJ/km kWh/mi",
link = "Kilowatt-hour",
},
["kWh/100 mi"] = {
name1 = "kilowatt-hour per 100 miles",
name2 = "kilowatt-hours per 100 miles",
symbol = "kW⋅h/100 mi",
utype = "energy per unit length",
scale = 22.3694,
default = "mpge",
link = "Miles per gallon gasoline equivalent",
},
["MJ/100 km"] = {
name1 = "megajoule per 100 kilometres",
name1_us = "megajoule per 100 kilometers",
name2 = "megajoules per 100 kilometres",
name2_us = "megajoules per 100 kilometers",
symbol = "MJ/100 km",
utype = "energy per unit length",
scale = 10,
default = "BTU/mi",
link = "British thermal unit",
},
["mpge"] = {
name1 = "mile per gallon gasoline equivalent",
name2 = "miles per gallon gasoline equivalent",
symbol = "mpg‑e",
utype = "energy per unit length",
scale = 1.3263314048360777e-5,
invert = -1,
iscomplex= true,
default = "kWh/100 mi",
link = "Miles per gallon gasoline equivalent",
},
["BTU/mi"] = {
per = { "BTU", "mi" },
utype = "energy per unit length",
default = "v > 1525 ! M ! k ! J/km",
},
["kJ/km"] = {
per = { "kJ", "km" },
utype = "energy per unit length",
default = "BTU/mi",
},
["kWh/km"] = {
per = { "-kW.h", "km" },
utype = "energy per unit length",
default = "MJ/km kWh/mi",
},
["kWh/mi"] = {
per = { "-kW.h", "mi" },
utype = "energy per unit length",
default = "kWh/km MJ/km",
},
["MJ/km"] = {
per = { "MJ", "km" },
utype = "energy per unit length",
default = "BTU/mi",
},
["mpg-e"] = {
target = "mpge",
},
["BTU/lb"] = {
name1 = "British thermal unit per pound",
name2 = "British thermal units per pound",
symbol = "BTU/lb",
utype = "energy per unit mass",
scale = 2326,
default = "kJ/kg",
link = "British thermal unit",
},
["cal/g"] = {
name1 = "calorie per gram",
name2 = "calories per gram",
symbol = "cal/g",
utype = "energy per unit mass",
scale = 4184,
default = "J/g",
},
["GJ/kg"] = {
name1 = "gigajoule per kilogram",
name2 = "gigajoules per kilogram",
symbol = "GJ/kg",
utype = "energy per unit mass",
scale = 1e9,
default = "ktTNT/t",
link = "Specific energy",
},
["J/g"] = {
name1 = "joule per gram",
name2 = "joules per gram",
symbol = "J/g",
utype = "energy per unit mass",
scale = 1000,
default = "kcal/g",
link = "Specific energy",
},
["kcal/g"] = {
name1 = "kilocalorie per gram",
name2 = "kilocalories per gram",
symbol = "kcal/g",
utype = "energy per unit mass",
scale = 4184000,
default = "kJ/g",
},
["kJ/g"] = {
name1 = "kilojoule per gram",
name2 = "kilojoules per gram",
symbol = "kJ/g",
utype = "energy per unit mass",
scale = 1000000,
default = "kcal/g",
link = "Specific energy",
},
["kJ/kg"] = {
name1 = "kilojoule per kilogram",
name2 = "kilojoules per kilogram",
symbol = "kJ/kg",
utype = "energy per unit mass",
scale = 1000,
default = "BTU/lb",
link = "Specific energy",
},
["ktonTNT/MT"] = {
name2 = "kilotons of TNT per metric ton",
symbol = "kiloton of TNT per metric ton",
usename = 1,
utype = "energy per unit mass",
scale = 4184000000,
default = "GJ/kg",
link = "TNT equivalent",
},
["ktTNT/t"] = {
name2 = "kilotonnes of TNT per tonne",
symbol = "kilotonne of TNT per tonne",
usename = 1,
utype = "energy per unit mass",
scale = 4184000000,
default = "GJ/kg",
link = "TNT equivalent",
},
["MtonTNT/MT"] = {
name2 = "megatons of TNT per metric ton",
symbol = "megaton of TNT per metric ton",
usename = 1,
utype = "energy per unit mass",
scale = 4.184e12,
default = "TJ/kg",
link = "TNT equivalent",
},
["MtTNT/MT"] = {
name2 = "megatonnes of TNT per tonne",
symbol = "megatonne of TNT per tonne",
usename = 1,
utype = "energy per unit mass",
scale = 4.184e12,
default = "TJ/kg",
link = "TNT equivalent",
},
["TJ/kg"] = {
name1 = "terajoule per kilogram",
name2 = "terajoules per kilogram",
symbol = "TJ/kg",
utype = "energy per unit mass",
scale = 1e12,
default = "MtTNT/MT",
link = "Specific energy",
},
["Cal/g"] = {
per = { "Cal", "g" },
utype = "energy per unit mass",
default = "kJ/g",
},
["BTU/cuft"] = {
per = { "BTU", "cuft" },
utype = "energy per unit volume",
default = "kJ/L",
},
["Cal/12USoz(mL)serve"] = {
per = { "Cal", "-12USoz(mL)serve" },
utype = "energy per unit volume",
default = "kJ/L",
},
["Cal/12USoz(ml)serve"] = {
per = { "Cal", "-12USoz(ml)serve" },
utype = "energy per unit volume",
default = "kJ/l",
},
["Cal/12USozserve"] = {
per = { "Cal", "-12USozserve" },
utype = "energy per unit volume",
default = "kJ/L",
},
["Cal/USoz"] = {
per = { "Cal", "USoz" },
utype = "energy per unit volume",
default = "kJ/ml",
},
["kJ/L"] = {
per = { "kJ", "L" },
utype = "energy per unit volume",
default = "BTU/cuft",
},
["kJ/l"] = {
per = { "kJ", "ll" },
utype = "energy per unit volume",
default = "BTU/cuft",
},
["kJ/ml"] = {
per = { "kJ", "ml" },
utype = "energy per unit volume",
default = "Cal/USoz",
},
["MJ/m3"] = {
per = { "MJ", "m3" },
utype = "energy per unit volume",
default = "BTU/cuft",
},
["Sv"] = {
_name1 = "sievert",
_symbol = "Sv",
utype = "equivalent radiation dose",
scale = 1,
prefixes = 1,
default = "rem",
link = "Sievert",
},
["rem"] = {
_name1 = "rem",
_symbol = "rem",
utype = "equivalent radiation dose",
scale = 0.01,
prefixes = 1,
default = "Sv",
link = "Roentgen equivalent man",
},
["g/km"] = {
name1 = "gram per kilometre",
name1_us = "gram per kilometer",
name2 = "grams per kilometre",
name2_us = "grams per kilometer",
symbol = "g/km",
utype = "exhaust emission",
scale = 1e-6,
default = "oz/mi",
link = "Exhaust gas",
},
["g/mi"] = {
name1 = "gram per mile",
name2 = "grams per mile",
symbol = "g/mi",
utype = "exhaust emission",
scale = 6.2137119223733397e-7,
default = "g/km",
link = "Exhaust gas",
},
["gCO2/km"] = {
name1 = "gram of CO<sub>2</sub> per kilometre",
name1_us = "gram of CO<sub>2</sub> per kilometer",
name2 = "grams of CO<sub>2</sub> per kilometre",
name2_us = "grams of CO<sub>2</sub> per kilometer",
symbol = "g(CO<sub>2</sub>)/km",
utype = "exhaust emission",
scale = 1e-6,
default = "ozCO2/mi",
link = "Exhaust gas",
},
["gCO2/mi"] = {
name1 = "gram of CO<sub>2</sub> per mile",
name2 = "grams of CO<sub>2</sub> per mile",
symbol = "g(CO<sub>2</sub>)/mi",
utype = "exhaust emission",
scale = 6.2137119223733397e-7,
default = "gCO2/km",
link = "Exhaust gas",
},
["kg/km"] = {
name1 = "kilogram per kilometre",
name1_us = "kilogram per kilometer",
name2 = "kilograms per kilometre",
name2_us = "kilograms per kilometer",
symbol = "kg/km",
utype = "exhaust emission",
scale = 0.001,
default = "lb/mi",
link = "Exhaust gas",
},
["kgCO2/km"] = {
name1 = "kilogram of CO<sub>2</sub> per kilometre",
name1_us = "kilogram of CO<sub>2</sub> per kilometer",
name2 = "kilograms of CO<sub>2</sub> per kilometre",
name2_us = "kilograms of CO<sub>2</sub> per kilometer",
symbol = "kg(CO<sub>2</sub>)/km",
utype = "exhaust emission",
scale = 0.001,
default = "lbCO2/mi",
link = "Exhaust gas",
},
["lb/mi"] = {
name1 = "pound per mile",
name2 = "pounds per mile",
symbol = "lb/mi",
utype = "exhaust emission",
scale = 0.00028184923173665794,
default = "kg/km",
link = "Exhaust gas",
},
["lbCO2/mi"] = {
name1 = "pound of CO<sub>2</sub> per mile",
name2 = "pounds of CO<sub>2</sub> per mile",
symbol = "lb(CO<sub>2</sub>)/mi",
utype = "exhaust emission",
scale = 0.00028184923173665794,
default = "kgCO2/km",
link = "Exhaust gas",
},
["oz/mi"] = {
name1 = "ounce per mile",
name2 = "ounces per mile",
symbol = "oz/mi",
utype = "exhaust emission",
scale = 1.7615576983541121e-5,
default = "g/km",
link = "Exhaust gas",
},
["ozCO2/mi"] = {
name1 = "ounce of CO<sub>2</sub> per mile",
name2 = "ounces of CO<sub>2</sub> per mile",
symbol = "oz(CO<sub>2</sub>)/mi",
utype = "exhaust emission",
scale = 1.7615576983541121e-5,
default = "gCO2/km",
link = "Exhaust gas",
},
["cuft/a"] = {
name1 = "cubic foot per annum",
name2 = "cubic feet per annum",
symbol = "cu ft/a",
utype = "flow",
scale = 8.9730672142368242e-10,
default = "m3/a",
link = "Cubic foot per second",
},
["cuft/d"] = {
name1 = "cubic foot per day",
name2 = "cubic feet per day",
symbol = "cu ft/d",
utype = "flow",
scale = 3.2774128000000003e-7,
default = "m3/d",
link = "Cubic foot per second",
},
["cuft/h"] = {
name1 = "cubic foot per hour",
name2 = "cubic feet per hour",
symbol = "cu ft/h",
utype = "flow",
scale = 7.8657907200000004e-6,
default = "m3/h",
link = "Cubic foot per second",
},
["cuft/min"] = {
name1 = "cubic foot per minute",
name2 = "cubic feet per minute",
symbol = "cu ft/min",
utype = "flow",
scale = 0.00047194744319999999,
default = "m3/min",
},
["cuft/s"] = {
name1 = "cubic foot per second",
name2 = "cubic feet per second",
symbol = "cu ft/s",
utype = "flow",
scale = 28316846592e-12,
default = "m3/s",
},
["cumi/a"] = {
name1 = "cubic mile per annum",
name2 = "cubic miles per annum",
symbol = "cu mi/a",
utype = "flow",
scale = 132.08171170940057,
default = "km3/a",
link = "Cubic foot per second",
},
["cuyd/h"] = {
name1 = "cubic yard per hour",
name2 = "cubic yards per hour",
symbol = "cuyd/h",
utype = "flow",
scale = 0.00021237634944000001,
default = "m3/h",
link = "Cubic foot per second",
},
["cuyd/s"] = {
name1 = "cubic yard per second",
name2 = "cubic yards per second",
symbol = "cu yd/s",
utype = "flow",
scale = 0.76455485798400002,
default = "m3/s",
},
["Goilbbl/a"] = {
name1 = "billion barrels per year",
name2 = "billion barrels per year",
symbol = "Gbbl/a",
utype = "flow",
scale = 5.0380033629933836,
default = "v * 1.58987294928 < 10 ! e6 ! e9 ! m3/a",
link = "Barrel per day",
},
["impgal/h"] = {
name1 = "imperial gallon per hour",
name2 = "imperial gallons per hour",
symbol = "imp gal/h",
utype = "flow",
scale = 1.2628027777777779e-6,
default = "m3/h",
link = "Gallon",
},
["impgal/min"] = {
name1 = "imperial gallon per minute",
name2 = "imperial gallons per minute",
symbol = "imp gal/min",
utype = "flow",
scale = 7.5768166666666671e-5,
default = "m3/s",
link = "Gallon",
},
["impgal/s"] = {
name1 = "imperial gallon per second",
name2 = "imperial gallons per second",
symbol = "impgal/s",
utype = "flow",
scale = 0.00454609,
default = "m3/s",
link = "Imperial gallons per second",
},
["km3/a"] = {
name1 = "cubic kilometre per annum",
name1_us = "cubic kilometer per annum",
name2 = "cubic kilometres per annum",
name2_us = "cubic kilometers per annum",
symbol = "km<sup>3</sup>/a",
utype = "flow",
scale = 31.68808781402895,
default = "cumi/a",
link = "Cubic metre per second",
},
["km3/d"] = {
name1 = "cubic kilometre per day",
name1_us = "cubic kilometer per day",
name2 = "cubic kilometres per day",
name2_us = "cubic kilometers per day",
symbol = "km<sup>3</sup>/d",
utype = "flow",
scale = 11574.074074074075,
default = "cuft/d",
link = "Cubic metre per second",
},
["koilbbl/a"] = {
name1 = "thousand barrels per year",
name2 = "thousand barrels per year",
symbol = "kbbl/a",
utype = "flow",
scale = 5.0380033629933841e-6,
default = "v * 1.58987294928 < 10 ! ! e3 ! m3/a",
link = "Barrel per day",
},
["koilbbl/d"] = {
name1 = "thousand barrels per day",
name2 = "thousand barrels per day",
symbol = "kbbl/d",
utype = "flow",
scale = 0.0018401307283333335,
default = "v * 1.58987294928 < 10 ! ! e3 ! m3/d",
link = "Barrel per day",
},
["L/h"] = {
name1 = "litre per hour",
name1_us = "liter per hour",
name2 = "litres per hour",
name2_us = "liters per hour",
symbol = "L/h",
utype = "flow",
scale = 2.7777777777777776e-7,
default = "impgal/h USgal/h",
link = "Cubic metre per second",
},
["L/min"] = {
name1 = "litre per minute",
name1_us = "liter per minute",
name2 = "litres per minute",
name2_us = "liters per minute",
symbol = "L/min",
utype = "flow",
scale = 1.6666666666666667e-5,
default = "impgal/min USgal/min",
link = "Cubic metre per second",
},
["L/s"] = {
name1 = "litre per second",
name1_us = "liter per second",
name2 = "litres per second",
name2_us = "liters per second",
symbol = "L/s",
utype = "flow",
scale = 0.001,
default = "cuft/s",
link = "Cubic metre per second",
},
["m3/a"] = {
name1 = "cubic metre per annum",
name1_us = "cubic meter per annum",
name2 = "cubic metres per annum",
name2_us = "cubic meters per annum",
symbol = "m<sup>3</sup>/a",
utype = "flow",
scale = 3.1688087814028947e-8,
default = "cuft/a",
link = "Cubic metre per second",
},
["m3/d"] = {
name1 = "cubic metre per day",
name1_us = "cubic meter per day",
name2 = "cubic metres per day",
name2_us = "cubic meters per day",
symbol = "m<sup>3</sup>/d",
utype = "flow",
scale = 1.1574074074074073e-5,
default = "cuft/d",
link = "Cubic metre per second",
},
["m3/h"] = {
name1 = "cubic metre per hour",
name1_us = "cubic meter per hour",
name2 = "cubic metres per hour",
name2_us = "cubic meters per hour",
symbol = "m<sup>3</sup>/h",
utype = "flow",
scale = 0.00027777777777777778,
default = "cuft/h",
link = "Cubic metre per second",
},
["m3/min"] = {
name1 = "cubic metre per minute",
name1_us = "cubic meter per minute",
name2 = "cubic metres per minute",
name2_us = "cubic meters per minute",
symbol = "m<sup>3</sup>/min",
utype = "flow",
scale = 0.016666666666666666,
default = "cuft/min",
link = "Cubic metre per second",
},
["m3/s"] = {
name1 = "cubic metre per second",
name1_us = "cubic meter per second",
name2 = "cubic metres per second",
name2_us = "cubic meters per second",
symbol = "m<sup>3</sup>/s",
utype = "flow",
scale = 1,
default = "cuft/s",
},
["Moilbbl/a"] = {
name1 = "million barrels per year",
name2 = "million barrels per year",
symbol = "Mbbl/a",
utype = "flow",
scale = 0.0050380033629933837,
default = "v * 1.58987294928 < 10 ! e3 ! e6 ! m3/a",
link = "Barrel per day",
},
["Moilbbl/d"] = {
name1 = "million barrels per day",
name2 = "million barrels per day",
symbol = "Mbbl/d",
utype = "flow",
scale = 1.8401307283333335,
default = "v * 1.58987294928 < 10 ! e3 ! e6 ! m3/d",
link = "Barrel per day",
},
["oilbbl/a"] = {
name1 = "barrel per year",
name2 = "barrels per year",
symbol = "bbl/a",
utype = "flow",
scale = 5.0380033629933841e-9,
default = "m3/a",
link = "Barrel per day",
},
["oilbbl/d"] = {
name1 = "barrel per day",
name2 = "barrels per day",
symbol = "bbl/d",
utype = "flow",
scale = 1.8401307283333336e-6,
default = "m3/d",
},
["Toilbbl/a"] = {
name1 = "trillion barrels per year",
name2 = "trillion barrels per year",
symbol = "Tbbl/a",
utype = "flow",
scale = 5038.0033629933832,
default = "v * 1.58987294928 < 10 ! e9 ! e12 ! m3/a",
link = "Barrel per day",
},
["U.S.gal/d"] = {
name1 = "U.S. gallon per day",
name2 = "U.S. gallons per day",
symbol = "U.S. gal/d",
utype = "flow",
scale = 4.3812636388888893e-8,
default = "m3/s",
customary= 1,
},
["U.S.gal/h"] = {
name1 = "gallon per hour",
name2 = "gallons per hour",
symbol = "gal/h",
utype = "flow",
scale = 1.0515032733333334e-6,
default = "m3/h",
link = "Gallon",
customary= 2,
},
["U.S.gal/min"] = {
name1 = "U.S. gallon per minute",
name2 = "U.S. gallons per minute",
symbol = "U.S. gal/min",
utype = "flow",
scale = 6.3090196400000003e-5,
default = "m3/s",
link = "Gallon",
},
["USgal/a"] = {
name1 = "US gallon per year",
name2 = "US gallons per year",
symbol = "US gal/a",
utype = "flow",
scale = 1.1995246102365199e-10,
default = "m3/s",
},
["USgal/d"] = {
name1 = "US gallon per day",
name2 = "US gallons per day",
symbol = "US gal/d",
utype = "flow",
scale = 4.3812636388888893e-8,
default = "m3/s",
},
["USgal/h"] = {
name1 = "gallon per hour",
name2 = "gallons per hour",
symbol = "gal/h",
utype = "flow",
scale = 1.0515032733333334e-6,
default = "m3/h",
link = "Gallon",
customary= 1,
},
["USgal/min"] = {
name1 = "US gallon per minute",
name2 = "US gallons per minute",
symbol = "US gal/min",
utype = "flow",
scale = 6.3090196400000003e-5,
default = "m3/s",
link = "Gallon",
},
["USgal/s"] = {
name1 = "US gallon per second",
name1_us = "U.S. gallon per second",
name2 = "US gallons per second",
name2_us = "U.S. gallons per second",
symbol = "USgal/s",
utype = "flow",
scale = 0.003785411784,
default = "m3/s",
link = "US gallons per second",
},
["ft3/a"] = {
target = "cuft/a",
},
["ft3/d"] = {
target = "cuft/d",
},
["ft3/h"] = {
target = "cuft/h",
},
["ft3/s"] = {
target = "cuft/s",
},
["Gcuft/a"] = {
target = "e9cuft/a",
},
["Gcuft/d"] = {
target = "e9cuft/d",
},
["kcuft/a"] = {
target = "e3cuft/a",
},
["kcuft/d"] = {
target = "e3cuft/d",
},
["kcuft/s"] = {
target = "e3cuft/s",
},
["Mcuft/a"] = {
target = "e6cuft/a",
},
["Mcuft/d"] = {
target = "e6cuft/d",
},
["Mcuft/s"] = {
target = "e6cuft/s",
},
["m³/s"] = {
target = "m3/s",
},
["Tcuft/a"] = {
target = "e12cuft/a",
},
["Tcuft/d"] = {
target = "e12cuft/d",
},
["u.s.gal/min"] = {
target = "U.S.gal/min",
},
["usgal/min"] = {
target = "USgal/min",
},
["-LTf"] = {
name1 = "long ton-force",
name2 = "long tons-force",
symbol = "LTf",
utype = "force",
scale = 9964.01641818352,
default = "kN",
},
["-STf"] = {
name1 = "short ton-force",
name2 = "short tons-force",
symbol = "STf",
utype = "force",
scale = 8896.443230521,
default = "kN",
},
["dyn"] = {
name1 = "dyne",
symbol = "dyn",
utype = "force",
scale = 0.00001,
default = "gr-f",
},
["g-f"] = {
name1 = "gram-force",
name2 = "grams-force",
symbol = "g<sub>f</sub>",
utype = "force",
scale = 0.00980665,
default = "mN oz-f",
link = "Kilogram-force",
},
["gf"] = {
name1 = "gram-force",
name2 = "grams-force",
symbol = "gf",
utype = "force",
scale = 0.00980665,
default = "mN ozf",
link = "Kilogram-force",
},
["gr-f"] = {
name1 = "grain-force",
name2 = "grains-force",
symbol = "gr<sub>f</sub>",
utype = "force",
scale = 0.0006354602307515,
default = "μN",
link = "Pound (force)",
},
["grf"] = {
name1 = "grain-force",
name2 = "grains-force",
symbol = "grf",
utype = "force",
scale = 0.0006354602307515,
default = "μN",
link = "Pound (force)",
},
["kdyn"] = {
name1 = "kilodyne",
symbol = "kdyn",
utype = "force",
scale = 0.01,
default = "oz-f",
link = "Dyne",
},
["kg-f"] = {
name1 = "kilogram-force",
name2 = "kilograms-force",
symbol = "kg<sub>f</sub>",
utype = "force",
scale = 9.80665,
default = "N lb-f",
},
["kgf"] = {
name1 = "kilogram-force",
name2 = "kilograms-force",
symbol = "kgf",
utype = "force",
scale = 9.80665,
default = "N lbf",
},
["kp"] = {
name1 = "kilopond",
symbol = "kp",
utype = "force",
scale = 9.80665,
default = "N lb-f",
link = "Kilogram-force",
},
["L/T-f"] = {
name1 = "long ton-force",
name2 = "long tons-force",
symbol = "L/T<sub>f</sub>",
utype = "force",
scale = 9964.01641818352,
default = "kN",
},
["L/Tf"] = {
name1 = "long ton-force",
name2 = "long tons-force",
symbol = "L/Tf",
utype = "force",
scale = 9964.01641818352,
default = "kN",
},
["lb-f"] = {
name1 = "pound-force",
name2 = "pounds-force",
symbol = "lb<sub>f</sub>",
utype = "force",
scale = 4.4482216152605,
default = "N",
link = "Pound (force)",
},
["lbf"] = {
name1 = "pound-force",
name2 = "pounds-force",
symbol = "lbf",
utype = "force",
scale = 4.4482216152605,
default = "N",
link = "Pound (force)",
},
["lb(f)"] = {
name1 = "pound",
symbol = "lb",
utype = "force",
scale = 4.4482216152605,
default = "N",
link = "Pound (force)",
},
["LT-f"] = {
name1 = "long ton-force",
name2 = "long tons-force",
symbol = "LT<sub>f</sub>",
utype = "force",
scale = 9964.01641818352,
default = "kN",
},
["LTf"] = {
name1 = "long ton-force",
name2 = "long tons-force",
symbol = "LTf",
usename = 1,
utype = "force",
scale = 9964.01641818352,
default = "kN",
},
["Mdyn"] = {
name1 = "megadyne",
symbol = "Mdyn",
utype = "force",
scale = 10,
default = "lb-f",
link = "Dyne",
},
["mdyn"] = {
name1 = "millidyne",
symbol = "mdyn",
utype = "force",
scale = 0.00000001,
default = "gr-f",
link = "Dyne",
},
["mg-f"] = {
name1 = "milligram-force",
name2 = "milligrams-force",
symbol = "mg<sub>f</sub>",
utype = "force",
scale = 0.00000980665,
default = "μN gr-f",
link = "Kilogram-force",
},
["mgf"] = {
name1 = "milligram-force",
name2 = "milligrams-force",
symbol = "mgf",
utype = "force",
scale = 0.00000980665,
default = "μN grf",
link = "Kilogram-force",
},
["Mp"] = {
name1 = "megapond",
symbol = "Mp",
utype = "force",
scale = 9806.65,
default = "kN LT-f ST-f",
link = "Kilogram-force",
},
["mp"] = {
name1 = "millipond",
symbol = "mp",
utype = "force",
scale = 0.00000980665,
default = "μN gr-f",
link = "Kilogram-force",
},
["N"] = {
_name1 = "newton",
_symbol = "N",
utype = "force",
scale = 1,
prefixes = 1,
default = "lb-f",
link = "Newton (unit)",
},
["oz-f"] = {
name1 = "ounce-force",
name2 = "ounces-force",
symbol = "oz<sub>f</sub>",
utype = "force",
scale = 0.2780138203095378125,
default = "mN",
link = "Pound (force)",
},
["ozf"] = {
name1 = "ounce-force",
name2 = "ounces-force",
symbol = "ozf",
utype = "force",
scale = 0.2780138203095378125,
default = "mN",
link = "Pound (force)",
},
["p"] = {
name1 = "pond",
symbol = "p",
utype = "force",
scale = 0.00980665,
default = "mN oz-f",
link = "Kilogram-force",
},
["pdl"] = {
name1 = "poundal",
symbol = "pdl",
utype = "force",
scale = 0.138254954376,
default = "N",
},
["S/T-f"] = {
name1 = "short ton-force",
name2 = "short tons-force",
symbol = "S/T<sub>f</sub>",
utype = "force",
scale = 8896.443230521,
default = "kN",
},
["S/Tf"] = {
name1 = "short ton-force",
name2 = "short tons-force",
symbol = "S/Tf",
utype = "force",
scale = 8896.443230521,
default = "kN",
},
["ST-f"] = {
name1 = "short ton-force",
name2 = "short tons-force",
symbol = "ST<sub>f</sub>",
utype = "force",
scale = 8896.443230521,
default = "kN",
},
["STf"] = {
name1 = "short ton-force",
name2 = "short tons-force",
symbol = "STf",
usename = 1,
utype = "force",
scale = 8896.443230521,
default = "kN",
},
["t-f"] = {
name1 = "tonne-force",
name2 = "tonnes-force",
symbol = "t<sub>f</sub>",
utype = "force",
scale = 9806.65,
default = "kN LT-f ST-f",
link = "Ton-force#Tonne-force",
},
["tf"] = {
name1 = "tonne-force",
name2 = "tonnes-force",
symbol = "tf",
utype = "force",
scale = 9806.65,
default = "kN LTf STf",
link = "Ton-force#Tonne-force",
},
["dyne"] = {
target = "dyn",
},
["newtons"] = {
target = "N",
},
["poundal"] = {
target = "pdl",
},
["tonne-force"] = {
target = "tf",
},
["impgal/mi"] = {
per = { "@impgal", "mi" },
utype = "fuel efficiency",
invert = 1,
iscomplex= true,
default = "L/km USgal/mi",
},
["km/L"] = {
per = { "km", "L" },
utype = "fuel efficiency",
invert = -1,
iscomplex= true,
default = "mpgimp mpgus",
},
["km/l"] = {
per = { "km", "ll" },
utype = "fuel efficiency",
invert = -1,
iscomplex= true,
default = "mpgimp mpgus",
},
["L/100 km"] = {
per = { "L", "100km" },
utype = "fuel efficiency",
invert = 1,
iscomplex= true,
default = "mpgimp mpgus",
symlink = "[[Fuel economy in automobiles#Units of measure|L/100 km]]",
},
["l/100 km"] = {
per = { "ll", "100km" },
utype = "fuel efficiency",
invert = 1,
iscomplex= true,
default = "mpgimp mpgus",
symlink = "[[Fuel economy in automobiles#Units of measure|l/100 km]]",
},
["L/km"] = {
per = { "L", "km" },
utype = "fuel efficiency",
invert = 1,
iscomplex= true,
default = "mpgimp mpgus",
},
["l/km"] = {
per = { "ll", "km" },
utype = "fuel efficiency",
invert = 1,
iscomplex= true,
default = "mpgimp mpgus",
},
["mi/impqt"] = {
per = { "mi", "impqt" },
utype = "fuel efficiency",
invert = -1,
iscomplex= true,
default = "km/L",
},
["mi/U.S.qt"] = {
per = { "mi", "U.S.qt" },
utype = "fuel efficiency",
invert = -1,
iscomplex= true,
default = "km/L",
},
["mi/USqt"] = {
per = { "mi", "USqt" },
utype = "fuel efficiency",
invert = -1,
iscomplex= true,
default = "km/L",
},
["mi/usqt"] = {
per = { "mi", "usqt" },
utype = "fuel efficiency",
invert = -1,
iscomplex= true,
default = "km/L",
},
["mpgimp"] = {
per = { "mi", "@impgal" },
symbol = "mpg<sub>‑imp</sub>",
utype = "fuel efficiency",
invert = -1,
iscomplex= true,
default = "L/100 km+mpgus",
symlink = "[[Fuel economy in automobiles#Units of measure|mpg]]<sub>‑[[Imperial units|imp]]</sub>",
},
["mpgus"] = {
per = { "mi", "+USgal" },
symbol = "mpg<sub>‑US</sub>",
utype = "fuel efficiency",
invert = -1,
iscomplex= true,
default = "L/100 km+mpgimp",
symlink = "[[Fuel economy in automobiles#Units of measure|mpg]]<sub>‑[[United States customary units|US]]</sub>",
},
["U.S.gal/mi"] = {
per = { "*U.S.gal", "mi" },
sp_us = true,
utype = "fuel efficiency",
invert = 1,
iscomplex= true,
default = "L/km impgal/mi",
},
["usgal/mi"] = {
per = { "+USgal", "mi" },
utype = "fuel efficiency",
invert = 1,
iscomplex= true,
default = "L/km impgal/mi",
},
["L/100km"] = {
target = "L/100 km",
},
["l/100km"] = {
target = "l/100 km",
},
["mpg"] = {
shouldbe = "Use %{mpgus%} for miles per US gallon or %{mpgimp%} for miles per imperial gallon (not %{mpg%})",
},
["mpgU.S."] = {
target = "mpgus",
symbol = "mpg<sub>‑U.S.</sub>",
sp_us = true,
symlink = "[[Fuel economy in automobiles#Units of measure|mpg]]<sub>‑[[United States customary units|U.S.]]</sub>",
},
["mpgu.s."] = {
target = "mpgus",
symbol = "mpg<sub>‑U.S.</sub>",
sp_us = true,
symlink = "[[Fuel economy in automobiles#Units of measure|mpg]]<sub>‑[[United States customary units|U.S.]]</sub>",
},
["mpgUS"] = {
target = "mpgus",
},
["USgal/mi"] = {
target = "usgal/mi",
},
["kPa/m"] = {
per = { "kPa", "-m-frac" },
utype = "fracture gradient",
default = "psi/ft",
},
["psi/ft"] = {
per = { "psi", "-ft-frac" },
utype = "fracture gradient",
default = "kPa/m",
},
["cm/km"] = {
name1 = "centimetre per kilometre",
name1_us = "centimeter per kilometer",
name2 = "centimetres per kilometre",
name2_us = "centimeters per kilometer",
symbol = "cm/km",
utype = "gradient",
scale = 0.00001,
default = "ft/mi",
link = "Grade (slope)",
},
["ft/mi"] = {
name1 = "foot per mile",
name2 = "feet per mile",
symbol = "ft/mi",
utype = "gradient",
scale = 0.00018939393939393939,
default = "v < 5.28 ! c ! ! m/km",
link = "Grade (slope)",
},
["ft/nmi"] = {
name1 = "foot per nautical mile",
name2 = "feet per nautical mile",
symbol = "ft/nmi",
utype = "gradient",
scale = 0.00016457883369330455,
default = "v < 6.076 ! c ! ! m/km",
link = "Grade (slope)",
},
["in/ft"] = {
name1 = "inch per foot",
name2 = "inches per foot",
symbol = "in/ft",
utype = "gradient",
scale = 0.083333333333333329,
default = "mm/m",
link = "Grade (slope)",
},
["in/mi"] = {
name1 = "inch per mile",
name2 = "inches per mile",
symbol = "in/mi",
utype = "gradient",
scale = 1.5782828282828283e-5,
default = "v < 0.6336 ! m ! c ! m/km",
link = "Grade (slope)",
},
["m/km"] = {
name1 = "metre per kilometre",
name1_us = "meter per kilometer",
name2 = "metres per kilometre",
name2_us = "meters per kilometer",
symbol = "m/km",
utype = "gradient",
scale = 0.001,
default = "ft/mi",
link = "Grade (slope)",
},
["mm/km"] = {
name1 = "millimetre per kilometre",
name1_us = "millimeter per kilometer",
name2 = "millimetres per kilometre",
name2_us = "millimeters per kilometer",
symbol = "mm/km",
utype = "gradient",
scale = 0.000001,
default = "in/mi",
link = "Grade (slope)",
},
["mm/m"] = {
name1 = "millimetre per metre",
name1_us = "millimeter per meter",
name2 = "millimetres per metre",
name2_us = "millimeters per meter",
symbol = "mm/m",
utype = "gradient",
scale = 0.001,
default = "in/ft",
link = "Grade (slope)",
},
["admi"] = {
name1 = "admiralty mile",
symbol = "nmi (admiralty)",
utype = "length",
scale = 1853.184,
default = "km mi",
link = "Nautical mile",
},
["AU"] = {
name1 = "astronomical unit",
symbol = "AU",
utype = "length",
scale = 149597870700,
default = "km mi",
},
["Brnmi"] = {
name1 = "British nautical mile",
symbol = "(Brit) nmi",
utype = "length",
scale = 1853.184,
default = "km mi",
link = "Nautical mile",
},
["bu"] = {
name2 = "bu",
symbol = "bu",
usename = 1,
utype = "length",
scale = 0.0030303030303030303,
default = "mm",
link = "Japanese units of measurement#Length",
},
["ch"] = {
name1 = "chain",
symbol = "ch",
utype = "length",
scale = 20.1168,
default = "ft m",
subdivs = { ["ft"] = { 66, default = "m" }, ["yd"] = { 22, default = "m" } },
link = "Chain (unit)",
},
["chlk"] = {
name1 = "[[Chain (unit)|chain]]",
symbol = "[[Chain (unit)|ch]]",
utype = "length",
scale = 20.1168,
default = "ft m",
link = "",
},
["chain"] = {
symbol = "chain",
usename = 1,
utype = "length",
scale = 20.1168,
default = "ft m",
subdivs = { ["ft"] = { 66, default = "m" }, ["yd"] = { 22, default = "m" } },
link = "Chain (unit)",
},
["chainlk"] = {
symbol = "[[Chain (unit)|chain]]",
usename = 1,
utype = "length",
scale = 20.1168,
default = "ft m",
link = "",
},
["dpcm"] = {
name2 = "dot/cm",
symbol = "dot/cm",
utype = "length",
scale = 100,
invert = -1,
iscomplex= true,
default = "dpi",
link = "Dots per inch",
},
["dpi"] = {
name2 = "DPI",
symbol = "DPI",
utype = "length",
scale = 39.370078740157481,
invert = -1,
iscomplex= true,
default = "pitch",
link = "Dots per inch",
},
["fathom"] = {
symbol = "fathom",
usename = 1,
utype = "length",
scale = 1.8288,
default = "ft m",
},
["foot"] = {
name1 = "foot",
name2 = "foot",
symbol = "ft",
utype = "length",
scale = 0.3048,
default = "m",
subdivs = { ["in"] = { 12, default = "m" } },
link = "Foot (unit)",
},
["ft"] = {
name1 = "foot",
name2 = "feet",
symbol = "ft",
utype = "length",
scale = 0.3048,
exception= "integer_more_precision",
default = "m",
subdivs = { ["in"] = { 12, default = "m" } },
link = "Foot (unit)",
},
["furlong"] = {
symbol = "furlong",
usename = 1,
utype = "length",
scale = 201.168,
default = "ft m",
},
["Gly"] = {
name1 = "gigalight-year",
symbol = "Gly",
utype = "length",
scale = 9.4607304725808e24,
default = "Mpc",
link = "Light-year#Definitions",
},
["Gpc"] = {
name1 = "gigaparsec",
symbol = "Gpc",
utype = "length",
scale = 3.0856775814671916e25,
default = "Gly",
link = "Parsec#Megaparsecs and gigaparsecs",
},
["hand"] = {
name1 = "hand",
symbol = "h",
utype = "length",
builtin = "hand",
scale = 0.1016,
iscomplex= true,
default = "in cm",
link = "Hand (unit)",
},
["in"] = {
name1 = "inch",
name2 = "inches",
symbol = "in",
utype = "length",
scale = 0.0254,
exception= "subunit_more_precision",
default = "mm",
},
["inabbreviated"] = {
name2 = "in",
symbol = "in",
utype = "length",
scale = 0.0254,
default = "mm",
link = "Inch",
},
["kly"] = {
name1 = "kilolight-year",
symbol = "kly",
utype = "length",
scale = 9.4607304725808e18,
default = "pc",
link = "Light-year#Definitions",
},
["kpc"] = {
name1 = "kiloparsec",
symbol = "kpc",
utype = "length",
scale = 3.0856775814671916e19,
default = "kly",
link = "Parsec#Parsecs and kiloparsecs",
},
["LD"] = {
name1 = "lunar distance",
symbol = "LD",
utype = "length",
scale = 384403000,
default = "km mi",
link = "Lunar distance (astronomy)",
},
["league"] = {
symbol = "league",
usename = 1,
utype = "length",
scale = 4828.032,
default = "km",
link = "League (unit)",
},
["ly"] = {
name1 = "light-year",
symbol = "ly",
utype = "length",
scale = 9.4607304725808e15,
default = "AU",
},
["m"] = {
_name1 = "metre",
_name1_us= "meter",
_symbol = "m",
utype = "length",
scale = 1,
prefixes = 1,
default = "v > 0 and v < 3 ! ftin ! ft",
link = "Metre",
},
["mi"] = {
name1 = "mile",
symbol = "mi",
utype = "length",
scale = 1609.344,
default = "km",
subdivs = { ["ch"] = { 80, default = "km" }, ["chlk"] = { 80, default = "km" }, ["chain"] = { 80, default = "km" }, ["chainlk"] = { 80, default = "km" }, ["ft"] = { 5280, default = "km" }, ["furlong"] = { 8, default = "km" }, ["yd"] = { 1760, default = "km" } },
},
["mil"] = {
symbol = "mil",
usename = 1,
utype = "length",
scale = 0.0000254,
default = "mm",
link = "Thousandth of an inch",
},
["Mly"] = {
name1 = "megalight-year",
symbol = "Mly",
utype = "length",
scale = 9.4607304725808e21,
default = "kpc",
link = "Light-year#Definitions",
},
["Mpc"] = {
name1 = "megaparsec",
symbol = "Mpc",
utype = "length",
scale = 3.0856775814671916e22,
default = "Mly",
link = "Parsec#Megaparsecs and gigaparsecs",
},
["NM"] = {
name1 = "nautical mile",
symbol = "NM",
utype = "length",
scale = 1852,
default = "km mi",
},
["nmi"] = {
name1 = "nautical mile",
symbol = "nmi",
utype = "length",
scale = 1852,
default = "km mi",
},
["oldUKnmi"] = {
name1 = "nautical mile",
symbol = "nmi",
utype = "length",
scale = 1853.184,
default = "km mi",
},
["oldUSnmi"] = {
name1 = "nautical mile",
symbol = "nmi",
utype = "length",
scale = 1853.24496,
default = "km mi",
},
["pc"] = {
name1 = "parsec",
symbol = "pc",
utype = "length",
scale = 3.0856775814671916e16,
default = "ly",
},
["perch"] = {
name2 = "perches",
symbol = "perch",
usename = 1,
utype = "length",
scale = 5.0292,
default = "ft m",
link = "Rod (unit)",
},
["pitch"] = {
name2 = "μm",
symbol = "μm",
utype = "length",
scale = 1e-6,
default = "dpi",
defkey = "pitch",
linkey = "pitch",
link = "Dots per inch",
},
["pole"] = {
symbol = "pole",
usename = 1,
utype = "length",
scale = 5.0292,
default = "ft m",
link = "Rod (unit)",
},
["pre1954U.S.nmi"] = {
name1 = "(pre-1954 U.S.) nautical mile",
symbol = "(pre‑1954 U.S.) nmi",
utype = "length",
scale = 1853.24496,
default = "km mi",
link = "Nautical mile",
},
["pre1954USnmi"] = {
name1 = "(pre-1954 US) nautical mile",
name1_us = "(pre-1954 U.S.) nautical mile",
symbol = "(pre‑1954 US) nmi",
sym_us = "(pre‑1954 U.S.) nmi",
utype = "length",
scale = 1853.24496,
default = "km mi",
link = "Nautical mile",
},
["rd"] = {
name1 = "rod",
symbol = "rd",
utype = "length",
scale = 5.0292,
default = "ft m",
link = "Rod (unit)",
},
["royal cubit"] = {
name1 = "royal cubit",
symbol = "cu",
utype = "length",
scale = 0.524,
default = "mm",
},
["rtkm"] = {
name1 = "route kilometre",
name1_us = "route kilometer",
symbol = "km",
utype = "length",
scale = 1000,
default = "mi",
link = "Kilometre",
},
["rtmi"] = {
name1 = "route mile",
symbol = "mi",
utype = "length",
scale = 1609.344,
default = "km",
link = "Mile",
},
["shaku"] = {
name2 = "shaku",
symbol = "shaku",
usename = 1,
utype = "length",
scale = 0.30303030303030304,
default = "m",
link = "Shaku (unit)",
},
["sm"] = {
name1 = "smoot",
symbol = "sm",
utype = "length",
scale = 1.70180,
default = "m",
link = "Smoot (unit)",
},
["smi"] = {
name1 = "statute mile",
symbol = "mi",
utype = "length",
scale = 1609.344,
default = "km",
subdivs = { ["chain"] = { 80, default = "km" } },
},
["solar radius"] = {
name1 = "solar radius",
name2 = "solar radii",
symbol = "''R''<sub>☉</sub>",
utype = "length",
scale = 695700e3,
default = "km",
},
["sun"] = {
name2 = "sun",
symbol = "sun",
usename = 1,
utype = "length",
scale = 0.030303030303030304,
default = "mm",
link = "Japanese units of measurement#Length",
},
["thou"] = {
name2 = "thou",
symbol = "thou",
usename = 1,
utype = "length",
scale = 0.0000254,
default = "mm",
link = "Thousandth of an inch",
},
["verst"] = {
symbol = "verst",
usename = 1,
utype = "length",
scale = 1066.8,
default = "km mi",
},
["yd"] = {
name1 = "yard",
symbol = "yd",
utype = "length",
scale = 0.9144,
default = "m",
subdivs = { ["ft"] = { 3, default = "m" } },
},
["μin"] = {
name1 = "microinch",
name2 = "microinches",
symbol = "μin",
utype = "length",
scale = 0.0000000254,
default = "nm",
link = "SI prefix#Non-metric units",
},
["Å"] = {
name1 = "ångström",
symbol = "Å",
utype = "length",
scale = 0.0000000001,
default = "in",
},
["Hz"] = {
_name1 = "hertz",
_name2 = "hertz",
_symbol = "Hz",
utype = "length",
scale = 3.3356409519815204e-9,
invert = -1,
iscomplex= true,
prefixes = 1,
default = "m",
link = "Hertz",
},
["rpm"] = {
name1 = "revolution per minute",
name2 = "revolutions per minute",
symbol = "rpm",
utype = "length",
scale = 5.5594015866358675e-11,
invert = -1,
iscomplex= true,
default = "Hz",
link = "Revolutions per minute",
},
["-ft-frac"] = {
target = "ft",
link = "Fracture gradient",
},
["-in-stiff"] = {
target = "in",
link = "Stiffness",
},
["-m-frac"] = {
target = "m",
link = "Fracture gradient",
},
["-m-stiff"] = {
target = "m",
link = "Stiffness",
},
["100km"] = {
target = "km",
multiplier= 100,
},
["100mi"] = {
target = "mi",
multiplier= 100,
},
["100miles"] = {
target = "mi",
symbol = "miles",
multiplier= 100,
},
["admiralty nmi"] = {
target = "oldUKnmi",
},
["angstrom"] = {
target = "Å",
},
["au"] = {
target = "AU",
symbol = "au",
},
["feet"] = {
target = "ft",
},
["hands"] = {
target = "hand",
},
["inch"] = {
target = "in",
},
["inches"] = {
target = "in",
},
["light-year"] = {
target = "ly",
},
["meter"] = {
target = "m",
sp_us = true,
},
["meters"] = {
target = "m",
sp_us = true,
},
["metre"] = {
target = "m",
},
["metres"] = {
target = "m",
},
["micrometre"] = {
target = "μm",
},
["micron"] = {
target = "μm",
default = "μin",
},
["mile"] = {
target = "mi",
},
["miles"] = {
target = "mi",
},
["parsec"] = {
target = "pc",
},
["rod"] = {
target = "rd",
},
["smoot"] = {
target = "sm",
},
["uin"] = {
target = "μin",
},
["yard"] = {
target = "yd",
},
["yards"] = {
target = "yd",
},
["yds"] = {
target = "yd",
},
["dtex"] = {
name1 = "decitex",
name2 = "decitex",
symbol = "dtex",
utype = "linear density",
scale = 1e-7,
default = "lb/yd",
link = "Units of textile measurement#Units",
},
["kg/cm"] = {
name1 = "kilogram per centimetre",
name1_us = "kilogram per centimeter",
name2 = "kilograms per centimetre",
name2_us = "kilograms per centimeter",
symbol = "kg/cm",
utype = "linear density",
scale = 100,
default = "lb/yd",
link = "Linear density",
},
["kg/m"] = {
name1 = "kilogram per metre",
name1_us = "kilogram per meter",
name2 = "kilograms per metre",
name2_us = "kilograms per meter",
symbol = "kg/m",
utype = "linear density",
scale = 1,
default = "lb/yd",
link = "Linear density",
},
["lb/ft"] = {
name1 = "pound per foot",
name2 = "pounds per foot",
symbol = "lb/ft",
utype = "linear density",
scale = 1.4881639435695539,
default = "kg/m",
link = "Linear density",
},
["lb/yd"] = {
name1 = "pound per yard",
name2 = "pounds per yard",
symbol = "lb/yd",
utype = "linear density",
scale = 0.49605464785651798,
default = "kg/m",
link = "Linear density",
},
["G"] = {
_name1 = "gauss",
_name2 = "gauss",
_symbol = "G",
utype = "magnetic field strength",
scale = 0.0001,
prefixes = 1,
default = "T",
link = "Gauss (unit)",
},
["T"] = {
_name1 = "tesla",
_symbol = "T",
utype = "magnetic field strength",
scale = 1,
prefixes = 1,
default = "G",
link = "Tesla (unit)",
},
["A/m"] = {
name1 = "ampere per metre",
name1_us = "ampere per meter",
name2 = "amperes per metre",
name2_us = "amperes per meter",
symbol = "A/m",
utype = "magnetizing field",
scale = 1,
default = "Oe",
},
["kA/m"] = {
name1 = "kiloampere per metre",
name1_us = "kiloampere per meter",
name2 = "kiloamperes per metre",
name2_us = "kiloamperes per meter",
symbol = "kA/m",
utype = "magnetizing field",
scale = 1000,
default = "kOe",
link = "Ampere per metre",
},
["MA/m"] = {
name1 = "megaampere per metre",
name1_us = "megaampere per meter",
name2 = "megaamperes per metre",
name2_us = "megaamperes per meter",
symbol = "MA/m",
utype = "magnetizing field",
scale = 1e6,
default = "kOe",
link = "Ampere per metre",
},
["Oe"] = {
_name1 = "oersted",
_symbol = "Oe",
utype = "magnetizing field",
scale = 79.5774715,
prefixes = 1,
default = "kA/m",
link = "Oersted",
},
["-Lcwt"] = {
name1 = "hundredweight",
name2 = "hundredweight",
symbol = "cwt",
utype = "mass",
scale = 50.80234544,
default = "lb",
},
["-Scwt"] = {
name1 = "hundredweight",
name2 = "hundredweight",
symbol = "cwt",
utype = "mass",
scale = 45.359237,
default = "lb",
},
["-ST"] = {
name1 = "short ton",
symbol = "ST",
utype = "mass",
scale = 907.18474,
default = "t",
},
["carat"] = {
symbol = "carat",
usename = 1,
utype = "mass",
scale = 0.0002,
default = "g",
link = "Carat (mass)",
},
["drachm"] = {
name1_us = "dram",
symbol = "drachm",
usename = 1,
utype = "mass",
scale = 0.001771845195,
default = "g",
link = "Dram (unit)",
},
["dram"] = {
target = "drachm",
},
["dwt"] = {
name1 = "pennyweight",
symbol = "dwt",
utype = "mass",
scale = 0.00155517384,
default = "oz g",
},
["DWton"] = {
symbol = "deadweight ton",
usename = 1,
utype = "mass",
scale = 1016.0469088,
default = "DWtonne",
link = "Deadweight tonnage",
},
["DWtonne"] = {
name1_us = "deadweight metric ton",
symbol = "deadweight tonne",
sym_us = "~deadweight metric ton",
usename = 1,
utype = "mass",
scale = 1000,
default = "DWton",
link = "Deadweight tonnage",
},
["g"] = {
_name1 = "gram",
_symbol = "g",
utype = "mass",
scale = 0.001,
prefixes = 1,
default = "oz",
link = "Gram",
},
["gr"] = {
name1 = "grain",
symbol = "gr",
utype = "mass",
scale = 0.00006479891,
default = "g",
link = "Grain (unit)",
},
["Gt"] = {
name1 = "gigatonne",
symbol = "Gt",
utype = "mass",
scale = 1000000000000,
default = "LT ST",
link = "Tonne",
},
["impgalh2o"] = {
name1 = "imperial gallon of water",
name2 = "imperial gallons of water",
symbol = "imp gal H<sub>2</sub>O",
utype = "mass",
scale = 4.5359236999999499,
default = "lb kg",
link = "Imperial gallon",
},
["kt"] = {
name1 = "kilotonne",
symbol = "kt",
utype = "mass",
scale = 1000000,
default = "LT ST",
link = "Tonne",
},
["lb"] = {
name1 = "pound",
symbol = "lb",
utype = "mass",
scale = 0.45359237,
exception= "integer_more_precision",
default = "kg",
subdivs = { ["oz"] = { 16, default = "kg" } },
link = "Pound (mass)",
},
["Lcwt"] = {
name1 = "long hundredweight",
name2 = "long hundredweight",
symbol = "Lcwt",
usename = 1,
utype = "mass",
scale = 50.80234544,
default = "lb",
subdivs = { ["qtr"] = { 4, default = "kg" }, ["st"] = { 8, default = "kg" } },
link = "Hundredweight",
},
["long cwt"] = {
name1 = "long hundredweight",
name2 = "long hundredweight",
symbol = "long cwt",
utype = "mass",
scale = 50.80234544,
default = "lb kg",
subdivs = { ["qtr"] = { 4, default = "kg" } },
link = "Hundredweight",
},
["long qtr"] = {
name1 = "long quarter",
symbol = "long qtr",
utype = "mass",
scale = 12.70058636,
default = "lb kg",
},
["LT"] = {
symbol = "long ton",
usename = 1,
utype = "mass",
scale = 1016.0469088,
default = "t",
subdivs = { ["Lcwt"] = { 20, default = "t", unit = "-Lcwt" } },
},
["lt"] = {
name1 = "long ton",
symbol = "LT",
utype = "mass",
scale = 1016.0469088,
default = "t",
subdivs = { ["Lcwt"] = { 20, default = "t", unit = "-Lcwt" } },
},
["metric ton"] = {
symbol = "metric ton",
usename = 1,
utype = "mass",
scale = 1000,
default = "long ton",
link = "Tonne",
},
["MT"] = {
name1 = "metric ton",
symbol = "t",
utype = "mass",
scale = 1000,
default = "LT ST",
link = "Tonne",
},
["Mt"] = {
name1 = "megatonne",
symbol = "Mt",
utype = "mass",
scale = 1000000000,
default = "LT ST",
link = "Tonne",
},
["oz"] = {
name1 = "ounce",
symbol = "oz",
utype = "mass",
scale = 0.028349523125,
default = "g",
},
["ozt"] = {
name1 = "troy ounce",
symbol = "ozt",
utype = "mass",
scale = 0.0311034768,
default = "oz g",
},
["pdr"] = {
name1 = "pounder",
symbol = "pdr",
utype = "mass",
scale = 0.45359237,
default = "kg",
link = "Pound (mass)",
},
["qtr"] = {
name1 = "quarter",
symbol = "qtr",
utype = "mass",
scale = 12.70058636,
default = "lb kg",
subdivs = { ["lb"] = { 28, default = "kg" } },
link = "Long quarter",
},
["Scwt"] = {
name1 = "short hundredweight",
name2 = "short hundredweight",
symbol = "Scwt",
usename = 1,
utype = "mass",
scale = 45.359237,
default = "lb",
link = "Hundredweight",
},
["short cwt"] = {
name1 = "short hundredweight",
name2 = "short hundredweight",
symbol = "short cwt",
utype = "mass",
scale = 45.359237,
default = "lb kg",
link = "Hundredweight",
},
["short qtr"] = {
name1 = "short quarter",
symbol = "short qtr",
utype = "mass",
scale = 11.33980925,
default = "lb kg",
},
["ST"] = {
symbol = "short ton",
usename = 1,
utype = "mass",
scale = 907.18474,
default = "t",
subdivs = { ["Scwt"] = { 20, default = "t", unit = "-Scwt" } },
},
["shtn"] = {
name1 = "short ton",
symbol = "sh tn",
utype = "mass",
scale = 907.18474,
default = "t",
},
["shton"] = {
symbol = "ton",
usename = 1,
utype = "mass",
scale = 907.18474,
default = "t",
},
["solar mass"] = {
name1 = "solar mass",
name2 = "solar masses",
symbol = "''M''<sub>☉</sub>",
utype = "mass",
scale = 1.98855e30,
default = "kg",
},
["st"] = {
name1 = "stone",
name2 = "stone",
symbol = "st",
utype = "mass",
scale = 6.35029318,
default = "lb kg",
subdivs = { ["lb"] = { 14, default = "kg lb" } },
link = "Stone (unit)",
},
["t"] = {
name1 = "tonne",
name1_us = "metric ton",
symbol = "t",
utype = "mass",
scale = 1000,
default = "LT ST",
},
["tonne"] = {
name1 = "tonne",
name1_us = "metric ton",
symbol = "t",
utype = "mass",
scale = 1000,
default = "shton",
},
["troy pound"] = {
symbol = "troy pound",
usename = 1,
utype = "mass",
scale = 0.3732417216,
default = "lb kg",
link = "Troy weight",
},
["usgalh2o"] = {
name1 = "US gallon of water",
name1_us = "U.S. gallon of water",
name2 = "US gallons of water",
name2_us = "U.S. gallons of water",
symbol = "US gal H<sub>2</sub>O",
utype = "mass",
scale = 3.7776215836051126,
default = "lb kg",
link = "United States customary units#Fluid volume",
},
["viss"] = {
name2 = "viss",
symbol = "viss",
utype = "mass",
scale = 1.632932532,
default = "kg",
link = "Myanmar units of measurement#Mass",
},
["billion tonne"] = {
target = "e9t",
},
["kilogram"] = {
target = "kg",
},
["kilotonne"] = {
target = "kt",
},
["lbs"] = {
target = "lb",
},
["lbt"] = {
target = "troy pound",
},
["lcwt"] = {
target = "Lcwt",
},
["long ton"] = {
target = "LT",
},
["mcg"] = {
target = "μg",
},
["million tonne"] = {
target = "e6t",
},
["scwt"] = {
target = "Scwt",
},
["short ton"] = {
target = "ST",
},
["stone"] = {
target = "st",
},
["thousand tonne"] = {
target = "e3t",
},
["tonnes"] = {
target = "t",
},
["kg/kW"] = {
name1 = "kilogram per kilowatt",
name2 = "kilograms per kilowatt",
symbol = "kg/kW",
utype = "mass per unit power",
scale = 0.001,
default = "lb/hp",
link = "Kilowatt",
},
["lb/hp"] = {
name1 = "pound per horsepower",
name2 = "pounds per horsepower",
symbol = "lb/hp",
utype = "mass per unit power",
scale = 0.00060827738784176115,
default = "kg/kW",
link = "Horsepower",
},
["kg/h"] = {
per = { "kg", "h" },
utype = "mass per unit time",
default = "lb/h",
},
["lb/h"] = {
per = { "lb", "h" },
utype = "mass per unit time",
default = "kg/h",
},
["g-mol/d"] = {
name1 = "gram-mole per day",
name2 = "gram-moles per day",
symbol = "g‑mol/d",
utype = "molar rate",
scale = 1.1574074074074073e-5,
default = "μmol/s",
link = "Mole (unit)",
},
["g-mol/h"] = {
name1 = "gram-mole per hour",
name2 = "gram-moles per hour",
symbol = "g‑mol/h",
utype = "molar rate",
scale = 0.00027777777777777778,
default = "mmol/s",
link = "Mole (unit)",
},
["g-mol/min"] = {
name1 = "gram-mole per minute",
name2 = "gram-moles per minute",
symbol = "g‑mol/min",
utype = "molar rate",
scale = 0.016666666666666666,
default = "g-mol/s",
link = "Mole (unit)",
},
["g-mol/s"] = {
name1 = "gram-mole per second",
name2 = "gram-moles per second",
symbol = "g‑mol/s",
utype = "molar rate",
scale = 1,
default = "lb-mol/min",
link = "Mole (unit)",
},
["gmol/d"] = {
name1 = "gram-mole per day",
name2 = "gram-moles per day",
symbol = "gmol/d",
utype = "molar rate",
scale = 1.1574074074074073e-5,
default = "μmol/s",
link = "Mole (unit)",
},
["gmol/h"] = {
name1 = "gram-mole per hour",
name2 = "gram-moles per hour",
symbol = "gmol/h",
utype = "molar rate",
scale = 0.00027777777777777778,
default = "mmol/s",
link = "Mole (unit)",
},
["gmol/min"] = {
name1 = "gram-mole per minute",
name2 = "gram-moles per minute",
symbol = "gmol/min",
utype = "molar rate",
scale = 0.016666666666666666,
default = "gmol/s",
link = "Mole (unit)",
},
["gmol/s"] = {
name1 = "gram-mole per second",
name2 = "gram-moles per second",
symbol = "gmol/s",
utype = "molar rate",
scale = 1,
default = "lbmol/min",
link = "Mole (unit)",
},
["kmol/d"] = {
name1 = "kilomole per day",
name2 = "kilomoles per day",
symbol = "kmol/d",
utype = "molar rate",
scale = 0.011574074074074073,
default = "mmol/s",
link = "Mole (unit)",
},
["kmol/h"] = {
name1 = "kilomole per hour",
name2 = "kilomoles per hour",
symbol = "kmol/h",
utype = "molar rate",
scale = 0.27777777777777779,
default = "mol/s",
link = "Mole (unit)",
},
["kmol/min"] = {
name1 = "kilomole per minute",
name2 = "kilomoles per minute",
symbol = "kmol/min",
utype = "molar rate",
scale = 16.666666666666668,
default = "mol/s",
link = "Kilomole (unit)",
},
["kmol/s"] = {
name1 = "kilomole per second",
name2 = "kilomoles per second",
symbol = "kmol/s",
utype = "molar rate",
scale = 1000,
default = "lb-mol/s",
link = "Mole (unit)",
},
["lb-mol/d"] = {
name1 = "pound-mole per day",
name2 = "pound-moles per day",
symbol = "lb‑mol/d",
utype = "molar rate",
scale = 0.0052499116898148141,
default = "mmol/s",
link = "Pound-mole",
},
["lb-mol/h"] = {
name1 = "pound-mole per hour",
name2 = "pound-moles per hour",
symbol = "lb‑mol/h",
utype = "molar rate",
scale = 0.12599788055555555,
default = "mol/s",
link = "Pound-mole",
},
["lb-mol/min"] = {
name1 = "pound-mole per minute",
name2 = "pound-moles per minute",
symbol = "lb‑mol/min",
utype = "molar rate",
scale = 7.5598728333333334,
default = "mol/s",
link = "Pound-mole",
},
["lb-mol/s"] = {
name1 = "pound-mole per second",
name2 = "pound-moles per second",
symbol = "lb‑mol/s",
utype = "molar rate",
scale = 453.59237,
default = "kmol/s",
link = "Pound-mole",
},
["lbmol/d"] = {
name1 = "pound-mole per day",
name2 = "pound-moles per day",
symbol = "lbmol/d",
utype = "molar rate",
scale = 0.0052499116898148141,
default = "mmol/s",
link = "Pound-mole",
},
["lbmol/h"] = {
name1 = "pound-mole per hour",
name2 = "pound-moles per hour",
symbol = "lbmol/h",
utype = "molar rate",
scale = 0.12599788055555555,
default = "mol/s",
link = "Pound-mole",
},
["lbmol/min"] = {
name1 = "pound-mole per minute",
name2 = "pound-moles per minute",
symbol = "lbmol/min",
utype = "molar rate",
scale = 7.5598728333333334,
default = "mol/s",
link = "Pound-mole",
},
["lbmol/s"] = {
name1 = "pound-mole per second",
name2 = "pound-moles per second",
symbol = "lbmol/s",
utype = "molar rate",
scale = 453.59237,
default = "kmol/s",
link = "Pound-mole",
},
["mmol/s"] = {
name1 = "millimole per second",
name2 = "millimoles per second",
symbol = "mmol/s",
utype = "molar rate",
scale = 0.001,
default = "lb-mol/d",
link = "Mole (unit)",
},
["mol/d"] = {
name1 = "mole per day",
name2 = "moles per day",
symbol = "mol/d",
utype = "molar rate",
scale = 1.1574074074074073e-5,
default = "μmol/s",
link = "Mole (unit)",
},
["mol/h"] = {
name1 = "mole per hour",
name2 = "moles per hour",
symbol = "mol/h",
utype = "molar rate",
scale = 0.00027777777777777778,
default = "mmol/s",
link = "Mole (unit)",
},
["mol/min"] = {
name1 = "mole per minute",
name2 = "moles per minute",
symbol = "mol/min",
utype = "molar rate",
scale = 0.016666666666666666,
default = "mol/s",
link = "Mole (unit)",
},
["mol/s"] = {
name1 = "mole per second",
name2 = "moles per second",
symbol = "mol/s",
utype = "molar rate",
scale = 1,
default = "lb-mol/min",
link = "Mole (unit)",
},
["μmol/s"] = {
name1 = "micromole per second",
name2 = "micromoles per second",
symbol = "μmol/s",
utype = "molar rate",
scale = 0.000001,
default = "lb-mol/d",
link = "Mole (unit)",
},
["umol/s"] = {
target = "μmol/s",
},
["/acre"] = {
name1 = "per acre",
name2 = "per acre",
symbol = "/acre",
utype = "per unit area",
scale = 0.00024710538146716532,
default = "/ha",
link = "Acre",
},
["/ha"] = {
name1 = "per hectare",
name2 = "per hectare",
symbol = "/ha",
utype = "per unit area",
scale = 100e-6,
default = "/acre",
link = "Hectare",
},
["/sqcm"] = {
name1 = "per square centimetre",
name1_us = "per square centimeter",
name2 = "per square centimetre",
name2_us = "per square centimeter",
symbol = "/cm<sup>2</sup>",
utype = "per unit area",
scale = 1e4,
default = "/sqin",
link = "Square centimetre",
},
["/sqin"] = {
name1 = "per square inch",
name2 = "per square inch",
symbol = "/in<sup>2</sup>",
utype = "per unit area",
scale = 1550.0031000062002,
default = "/sqcm",
link = "Square inch",
},
["/sqkm"] = {
name1 = "per square kilometre",
name1_us = "per square kilometer",
name2 = "per square kilometre",
name2_us = "per square kilometer",
symbol = "/km<sup>2</sup>",
utype = "per unit area",
scale = 1e-6,
default = "/sqmi",
link = "Square kilometre",
},
["/sqmi"] = {
name1 = "per square mile",
name2 = "per square mile",
symbol = "/sq mi",
utype = "per unit area",
scale = 3.8610215854244582e-7,
default = "/sqkm",
link = "Square mile",
},
["PD/acre"] = {
name1 = "inhabitant per acre",
name2 = "inhabitants per acre",
symbol = "/acre",
utype = "per unit area",
scale = 0.00024710538146716532,
default = "PD/ha",
link = "Acre",
},
["PD/ha"] = {
name1 = "inhabitant per hectare",
name2 = "inhabitants per hectare",
symbol = "/ha",
utype = "per unit area",
scale = 100e-6,
default = "PD/acre",
link = "Hectare",
},
["PD/sqkm"] = {
name1 = "inhabitant per square kilometre",
name1_us = "inhabitant per square kilometer",
name2 = "inhabitants per square kilometre",
name2_us = "inhabitants per square kilometer",
symbol = "/km<sup>2</sup>",
utype = "per unit area",
scale = 1e-6,
default = "PD/sqmi",
link = "Square kilometre",
},
["PD/sqmi"] = {
name1 = "inhabitant per square mile",
name2 = "inhabitants per square mile",
symbol = "/sq mi",
utype = "per unit area",
scale = 3.8610215854244582e-7,
default = "PD/sqkm",
link = "Square mile",
},
["/cm2"] = {
target = "/sqcm",
},
["/in2"] = {
target = "/sqin",
},
["/km2"] = {
target = "/sqkm",
},
["pd/acre"] = {
target = "PD/acre",
},
["pd/ha"] = {
target = "PD/ha",
},
["PD/km2"] = {
target = "PD/sqkm",
},
["pd/km2"] = {
target = "PD/sqkm",
},
["PD/km²"] = {
target = "PD/sqkm",
},
["pd/sqkm"] = {
target = "PD/sqkm",
},
["pd/sqmi"] = {
target = "PD/sqmi",
},
["/l"] = {
name1 = "per litre",
name1_us = "per liter",
name2 = "per litre",
name2_us = "per liter",
symbol = "/l",
utype = "per unit volume",
scale = 1000,
default = "/usgal",
link = "Litre",
},
["/L"] = {
name1 = "per litre",
name1_us = "per liter",
name2 = "per litre",
name2_us = "per liter",
symbol = "/L",
utype = "per unit volume",
scale = 1000,
default = "/usgal",
link = "Litre",
},
["/USgal"] = {
name1 = "per gallon",
name2 = "per gallon",
symbol = "/gal",
utype = "per unit volume",
scale = 264.172052,
default = "/L",
link = "US gallon",
customary= 2,
},
["/usgal"] = {
target = "/USgal",
},
["bhp"] = {
name1 = "brake horsepower",
name2 = "brake horsepower",
symbol = "bhp",
utype = "power",
scale = 745.69987158227022,
default = "kW",
link = "Horsepower#Brake horsepower",
},
["Cal/d"] = {
name1 = "large calorie per day",
name2 = "large calories per day",
symbol = "Cal/d",
utype = "power",
scale = 0.048425925925925928,
default = "kJ/d",
link = "Calorie",
},
["Cal/h"] = {
name1 = "large calorie per hour",
name2 = "large calories per hour",
symbol = "Cal/h",
utype = "power",
scale = 1.1622222222222223,
default = "kJ/h",
link = "Calorie",
},
["cal/h"] = {
name1 = "calorie per hour",
name2 = "calories per hour",
symbol = "cal/h",
utype = "power",
scale = 0.0011622222222222223,
default = "W",
link = "Calorie",
},
["CV"] = {
name1 = "metric horsepower",
name2 = "metric horsepower",
symbol = "CV",
utype = "power",
scale = 735.49875,
default = "kW",
},
["hk"] = {
name1 = "metric horsepower",
name2 = "metric horsepower",
symbol = "hk",
utype = "power",
scale = 735.49875,
default = "kW",
},
["hp"] = {
name1 = "horsepower",
name2 = "horsepower",
symbol = "hp",
utype = "power",
scale = 745.69987158227022,
default = "kW",
},
["hp-electric"] = {
name1 = "electric horsepower",
name2 = "electric horsepower",
symbol = "hp",
utype = "power",
scale = 746,
default = "kW",
link = "Horsepower#Electrical horsepower",
},
["hp-electrical"] = {
name1 = "electrical horsepower",
name2 = "electrical horsepower",
symbol = "hp",
utype = "power",
scale = 746,
default = "kW",
link = "Horsepower#Electrical horsepower",
},
["hp-metric"] = {
name1 = "metric horsepower",
name2 = "metric horsepower",
symbol = "hp",
utype = "power",
scale = 735.49875,
default = "kW",
},
["ihp"] = {
name1 = "indicated horsepower",
name2 = "indicated horsepower",
symbol = "ihp",
utype = "power",
scale = 745.69987158227022,
default = "kW",
link = "Horsepower#Indicated horsepower",
},
["kcal/h"] = {
name1 = "kilocalorie per hour",
name2 = "kilocalories per hour",
symbol = "kcal/h",
utype = "power",
scale = 1.1622222222222223,
default = "kW",
link = "Calorie",
},
["kJ/d"] = {
name1 = "kilojoule per day",
name2 = "kilojoules per day",
symbol = "kJ/d",
utype = "power",
scale = 0.011574074074074073,
default = "Cal/d",
link = "Kilojoule",
},
["kJ/h"] = {
name1 = "kilojoule per hour",
name2 = "kilojoules per hour",
symbol = "kJ/h",
utype = "power",
scale = 0.27777777777777779,
default = "W",
link = "Kilojoule",
},
["PS"] = {
name1 = "metric horsepower",
name2 = "metric horsepower",
symbol = "PS",
utype = "power",
scale = 735.49875,
default = "kW",
},
["shp"] = {
name1 = "shaft horsepower",
name2 = "shaft horsepower",
symbol = "shp",
utype = "power",
scale = 745.69987158227022,
default = "kW",
link = "Horsepower#Shaft horsepower",
},
["W"] = {
_name1 = "watt",
_symbol = "W",
utype = "power",
scale = 1,
prefixes = 1,
default = "hp",
link = "Watt",
},
["BTU/h"] = {
per = { "BTU", "h" },
utype = "power",
default = "W",
},
["Btu/h"] = {
per = { "Btu", "h" },
utype = "power",
default = "W",
},
["BHP"] = {
target = "bhp",
},
["btu/h"] = {
target = "BTU/h",
},
["HP"] = {
target = "hp",
},
["Hp"] = {
target = "hp",
},
["hp-mechanical"] = {
target = "hp",
},
["IHP"] = {
target = "ihp",
},
["SHP"] = {
target = "shp",
},
["whp"] = {
target = "hp",
},
["hp/lb"] = {
name1 = "horsepower per pound",
name2 = "horsepower per pound",
symbol = "hp/lb",
utype = "power per unit mass",
scale = 1643.986806,
default = "kW/kg",
link = "Power-to-weight ratio",
},
["hp/LT"] = {
name1 = "horsepower per long ton",
name2 = "horsepower per long ton",
symbol = "hp/LT",
utype = "power per unit mass",
scale = 0.73392268125000004,
default = "kW/t",
link = "Power-to-weight ratio",
},
["hp/ST"] = {
name1 = "horsepower per short ton",
name2 = "horsepower per short ton",
symbol = "hp/ST",
utype = "power per unit mass",
scale = 0.821993403,
default = "kW/t",
link = "Power-to-weight ratio",
},
["hp/t"] = {
name1 = "horsepower per tonne",
name2 = "horsepower per tonne",
symbol = "hp/t",
utype = "power per unit mass",
scale = 0.74569987158227022,
default = "kW/t",
link = "Power-to-weight ratio",
},
["kW/kg"] = {
name1 = "kilowatt per kilogram",
name2 = "kilowatts per kilogram",
symbol = "kW/kg",
utype = "power per unit mass",
scale = 1000,
default = "hp/lb",
link = "Power-to-weight ratio",
},
["kW/t"] = {
name1 = "kilowatt per tonne",
name2 = "kilowatts per tonne",
symbol = "kW/t",
utype = "power per unit mass",
scale = 1,
default = "PS/t",
link = "Power-to-weight ratio",
},
["PS/t"] = {
name1 = "metric horsepower per tonne",
name2 = "metric horsepower per tonne",
symbol = "PS/t",
utype = "power per unit mass",
scale = 0.73549875,
default = "kW/t",
link = "Power-to-weight ratio",
},
["shp/lb"] = {
name1 = "shaft horsepower per pound",
name2 = "shaft horsepower per pound",
symbol = "shp/lb",
utype = "power per unit mass",
scale = 1643.986806,
default = "kW/kg",
link = "Power-to-weight ratio",
},
["hp/tonne"] = {
target = "hp/t",
symbol = "hp/tonne",
default = "kW/tonne",
},
["kW/tonne"] = {
target = "kW/t",
symbol = "kW/tonne",
},
["-lb/in2"] = {
name1 = "pound per square inch",
name2 = "pounds per square inch",
symbol = "lb/in<sup>2</sup>",
utype = "pressure",
scale = 6894.7572931683608,
default = "kPa kgf/cm2",
},
["atm"] = {
name1 = "standard atmosphere",
symbol = "atm",
utype = "pressure",
scale = 101325,
default = "kPa",
link = "Atmosphere (unit)",
},
["Ba"] = {
name1 = "barye",
symbol = "Ba",
utype = "pressure",
scale = 0.1,
default = "Pa",
},
["bar"] = {
symbol = "bar",
utype = "pressure",
scale = 100000,
default = "kPa",
link = "Bar (unit)",
},
["dbar"] = {
name1 = "decibar",
symbol = "dbar",
utype = "pressure",
scale = 10000,
default = "kPa",
link = "Bar (unit)",
},
["inHg"] = {
name1 = "inch of mercury",
name2 = "inches of mercury",
symbol = "inHg",
utype = "pressure",
scale = 3386.388640341,
default = "kPa",
},
["kBa"] = {
name1 = "kilobarye",
symbol = "kBa",
utype = "pressure",
scale = 100,
default = "hPa",
link = "Barye",
},
["kg-f/cm2"] = {
name1 = "kilogram-force per square centimetre",
name1_us = "kilogram-force per square centimeter",
name2 = "kilograms-force per square centimetre",
name2_us = "kilograms-force per square centimeter",
symbol = "kg<sub>f</sub>/cm<sup>2</sup>",
utype = "pressure",
scale = 98066.5,
default = "psi",
link = "Kilogram-force",
},
["kg/cm2"] = {
name1 = "kilogram per square centimetre",
name1_us = "kilogram per square centimeter",
name2 = "kilograms per square centimetre",
name2_us = "kilograms per square centimeter",
symbol = "kg/cm<sup>2</sup>",
utype = "pressure",
scale = 98066.5,
default = "psi",
link = "Kilogram-force",
},
["kgf/cm2"] = {
name1 = "kilogram-force per square centimetre",
name1_us = "kilogram-force per square centimeter",
name2 = "kilograms-force per square centimetre",
name2_us = "kilograms-force per square centimeter",
symbol = "kgf/cm<sup>2</sup>",
utype = "pressure",
scale = 98066.5,
default = "psi",
link = "Kilogram-force",
},
["ksi"] = {
name1 = "kilopound per square inch",
name2 = "kilopounds per square inch",
symbol = "ksi",
utype = "pressure",
scale = 6894757.2931683613,
default = "MPa",
link = "Pound per square inch",
},
["lbf/in2"] = {
name1 = "pound-force per square inch",
name2 = "pounds-force per square inch",
symbol = "lbf/in<sup>2</sup>",
utype = "pressure",
scale = 6894.7572931683608,
default = "kPa kgf/cm2",
},
["mb"] = {
name1 = "millibar",
symbol = "mb",
utype = "pressure",
scale = 100,
default = "hPa",
link = "Bar (unit)",
},
["mbar"] = {
name1 = "millibar",
symbol = "mbar",
utype = "pressure",
scale = 100,
default = "hPa",
link = "Bar (unit)",
},
["mmHg"] = {
name1 = "millimetre of mercury",
name1_us = "millimeter of mercury",
name2 = "millimetres of mercury",
name2_us = "millimeters of mercury",
symbol = "mmHg",
utype = "pressure",
scale = 133.322387415,
default = "kPa",
},
["Pa"] = {
_name1 = "pascal",
_symbol = "Pa",
utype = "pressure",
scale = 1,
prefixes = 1,
default = "psi",
link = "Pascal (unit)",
},
["psf"] = {
name1 = "pound per square foot",
name2 = "pounds per square foot",
symbol = "psf",
utype = "pressure",
scale = 47.880258980335839,
default = "kPa",
link = "Pound per square inch",
},
["psi"] = {
name1 = "pound per square inch",
name2 = "pounds per square inch",
symbol = "psi",
utype = "pressure",
scale = 6894.7572931683608,
default = "kPa",
},
["Torr"] = {
name1 = "torr",
symbol = "Torr",
utype = "pressure",
scale = 133.32236842105263,
default = "kPa",
},
["N/cm2"] = {
per = { "N", "cm2" },
utype = "pressure",
default = "psi",
},
["N/m2"] = {
per = { "N", "m2" },
utype = "pressure",
default = "psi",
},
["g/cm2"] = {
per = { "g", "cm2" },
utype = "pressure",
default = "lb/sqft",
multiplier= 9.80665,
},
["g/m2"] = {
per = { "g", "m2" },
utype = "pressure",
default = "lb/sqft",
multiplier= 9.80665,
},
["kg/ha"] = {
per = { "kg", "ha" },
utype = "pressure",
default = "lb/acre",
multiplier= 9.80665,
},
["kg/m2"] = {
per = { "kg", "m2" },
utype = "pressure",
default = "lb/sqft",
multiplier= 9.80665,
},
["lb/1000sqft"] = {
per = { "lb", "1000sqft" },
utype = "pressure",
default = "g/m2",
multiplier= 9.80665,
},
["lb/acre"] = {
per = { "lb", "acre" },
utype = "pressure",
default = "kg/ha",
multiplier= 9.80665,
},
["lb/sqft"] = {
per = { "lb", "sqft" },
utype = "pressure",
default = "kg/m2",
multiplier= 9.80665,
},
["lb/sqyd"] = {
per = { "lb", "sqyd" },
utype = "pressure",
default = "kg/m2",
multiplier= 9.80665,
},
["LT/acre"] = {
per = { "LT", "acre" },
utype = "pressure",
default = "t/ha",
multiplier= 9.80665,
},
["MT/ha"] = {
per = { "MT", "ha" },
utype = "pressure",
default = "LT/acre ST/acre",
multiplier= 9.80665,
},
["oz/sqft"] = {
per = { "oz", "sqft" },
utype = "pressure",
default = "g/m2",
multiplier= 9.80665,
},
["oz/sqyd"] = {
per = { "oz", "sqyd" },
utype = "pressure",
default = "g/m2",
multiplier= 9.80665,
},
["ST/acre"] = {
per = { "ST", "acre" },
utype = "pressure",
default = "t/ha",
multiplier= 9.80665,
},
["t/ha"] = {
per = { "t", "ha" },
utype = "pressure",
default = "LT/acre ST/acre",
multiplier= 9.80665,
},
["tonne/acre"] = {
per = { "tonne", "acre" },
utype = "pressure",
default = "tonne/ha",
multiplier= 9.80665,
},
["tonne/ha"] = {
per = { "tonne", "ha" },
utype = "pressure",
default = "tonne/acre",
multiplier= 9.80665,
},
["kgfpsqcm"] = {
target = "kgf/cm2",
},
["kgpsqcm"] = {
target = "kg/cm2",
},
["kN/m2"] = {
target = "kPa",
},
["lb/in2"] = {
target = "lbf/in2",
},
["torr"] = {
target = "Torr",
},
["Bq"] = {
_name1 = "becquerel",
_symbol = "Bq",
utype = "radioactivity",
scale = 1,
prefixes = 1,
default = "pCi",
link = "Becquerel",
},
["Ci"] = {
_name1 = "curie",
_symbol = "Ci",
utype = "radioactivity",
scale = 3.7e10,
prefixes = 1,
default = "GBq",
link = "Curie (unit)",
},
["Rd"] = {
_name1 = "rutherford",
_symbol = "Rd",
utype = "radioactivity",
scale = 1e6,
prefixes = 1,
default = "MBq",
link = "Rutherford (unit)",
},
["cm/h"] = {
name1 = "centimetre per hour",
name1_us = "centimeter per hour",
name2 = "centimetres per hour",
name2_us = "centimeters per hour",
symbol = "cm/h",
utype = "speed",
scale = 2.7777777777777775e-6,
default = "in/h",
link = "Metre per second",
},
["cm/s"] = {
name1 = "centimetre per second",
name1_us = "centimeter per second",
name2 = "centimetres per second",
name2_us = "centimeters per second",
symbol = "cm/s",
utype = "speed",
scale = 0.01,
default = "in/s",
link = "Metre per second",
},
["cm/year"] = {
name1 = "centimetre per year",
name1_us = "centimeter per year",
name2 = "centimetres per year",
name2_us = "centimeters per year",
symbol = "cm/year",
utype = "speed",
scale = 3.168873850681143e-10,
default = "in/year",
link = "Orders of magnitude (speed)",
},
["foot/s"] = {
name1 = "foot per second",
name2 = "foot per second",
symbol = "ft/s",
utype = "speed",
scale = 0.3048,
default = "m/s",
},
["ft/min"] = {
name1 = "foot per minute",
name2 = "feet per minute",
symbol = "ft/min",
utype = "speed",
scale = 0.00508,
default = "m/min",
link = "Feet per second",
},
["ft/s"] = {
name1 = "foot per second",
name2 = "feet per second",
symbol = "ft/s",
utype = "speed",
scale = 0.3048,
default = "m/s",
link = "Feet per second",
},
["furlong per fortnight"] = {
name2 = "furlongs per fortnight",
symbol = "furlong per fortnight",
usename = 1,
utype = "speed",
scale = 0.00016630952380952381,
default = "km/h mph",
link = "FFF system",
},
["in/h"] = {
name1 = "inch per hour",
name2 = "inches per hour",
symbol = "in/h",
utype = "speed",
scale = 7.0555555555555559e-6,
default = "cm/h",
link = "Inch",
},
["in/s"] = {
name1 = "inch per second",
name2 = "inches per second",
symbol = "in/s",
utype = "speed",
scale = 0.0254,
default = "cm/s",
link = "Inch",
},
["in/year"] = {
name1 = "inch per year",
name2 = "inches per year",
symbol = "in/year",
utype = "speed",
scale = 8.0489395807301024e-10,
default = "cm/year",
link = "Orders of magnitude (speed)",
},
["isp"] = {
name1 = "second",
symbol = "s",
utype = "speed",
scale = 9.80665,
default = "km/s",
link = "Specific impulse",
},
["km/d"] = {
name1 = "kilometre per day",
name1_us = "kilometer per day",
name2 = "kilometres per day",
name2_us = "kilometers per day",
symbol = "km/d",
utype = "speed",
scale = 1.1574074074074074e-2,
default = "mi/d",
link = "Orders of magnitude (speed)",
},
["km/h"] = {
name1 = "kilometre per hour",
name1_us = "kilometer per hour",
name2 = "kilometres per hour",
name2_us = "kilometers per hour",
symbol = "km/h",
utype = "speed",
scale = 0.27777777777777779,
default = "mph",
link = "Kilometres per hour",
},
["km/s"] = {
name1 = "kilometre per second",
name1_us = "kilometer per second",
name2 = "kilometres per second",
name2_us = "kilometers per second",
symbol = "km/s",
utype = "speed",
scale = 1000,
default = "mi/s",
link = "Metre per second",
},
["kn"] = {
name1 = "knot",
symbol = "kn",
utype = "speed",
scale = 0.51444444444444448,
default = "km/h mph",
link = "Knot (unit)",
},
["kNs/kg"] = {
name2 = "kN‑s/kg",
symbol = "kN‑s/kg",
utype = "speed",
scale = 1000,
default = "isp",
link = "Specific impulse",
},
["m/min"] = {
name1 = "metre per minute",
name1_us = "meter per minute",
name2 = "metres per minute",
name2_us = "meters per minute",
symbol = "m/min",
utype = "speed",
scale = 0.016666666666666666,
default = "ft/min",
link = "Metre per second",
},
["m/s"] = {
name1 = "metre per second",
name1_us = "meter per second",
name2 = "metres per second",
name2_us = "meters per second",
symbol = "m/s",
utype = "speed",
scale = 1,
default = "ft/s",
},
["Mach"] = {
name2 = "Mach",
symbol = "Mach",
utype = "speed",
builtin = "mach",
scale = 0,
iscomplex= true,
default = "km/h mph",
link = "Mach number",
},
["mi/d"] = {
name1 = "mile per day",
name2 = "miles per day",
symbol = "mi/d",
utype = "speed",
scale = 1.8626666666666667e-2,
default = "km/d",
link = "Orders of magnitude (speed)",
},
["mi/s"] = {
name1 = "mile per second",
name2 = "miles per second",
symbol = "mi/s",
utype = "speed",
scale = 1609.344,
default = "km/s",
link = "Mile",
},
["mm/h"] = {
name1 = "millimetre per hour",
name1_us = "millimeter per hour",
name2 = "millimetres per hour",
name2_us = "millimeters per hour",
symbol = "mm/h",
utype = "speed",
scale = 2.7777777777777781e-7,
default = "in/h",
link = "Metre per second",
},
["mph"] = {
name1 = "mile per hour",
name2 = "miles per hour",
symbol = "mph",
utype = "speed",
scale = 0.44704,
default = "km/h",
link = "Miles per hour",
},
["Ns/kg"] = {
name2 = "N‑s/kg",
symbol = "N‑s/kg",
utype = "speed",
scale = 1,
default = "isp",
link = "Specific impulse",
},
["si tsfc"] = {
name2 = "g/(kN⋅s)",
symbol = "g/(kN⋅s)",
utype = "speed",
scale = 9.9999628621379242e-7,
invert = -1,
iscomplex= true,
default = "tsfc",
link = "Thrust specific fuel consumption",
},
["tsfc"] = {
name2 = "lb/(lbf⋅h)",
symbol = "lb/(lbf⋅h)",
utype = "speed",
scale = 2.832545036049801e-5,
invert = -1,
iscomplex= true,
default = "si tsfc",
link = "Thrust specific fuel consumption",
},
["cm/y"] = {
target = "cm/year",
},
["cm/yr"] = {
target = "cm/year",
},
["in/y"] = {
target = "in/year",
},
["in/yr"] = {
target = "in/year",
},
["knot"] = {
target = "kn",
},
["knots"] = {
target = "kn",
},
["kph"] = {
target = "km/h",
},
["mi/h"] = {
target = "mph",
},
["mm/s"] = {
per = { "mm", "s" },
utype = "speed",
default = "in/s",
link = "Metre per second",
},
["C"] = {
name1 = "degree Celsius",
name2 = "degrees Celsius",
symbol = "°C",
usesymbol= 1,
utype = "temperature",
scale = 1,
offset = -273.15,
iscomplex= true,
istemperature= true,
default = "F",
link = "Celsius",
},
["F"] = {
name1 = "degree Fahrenheit",
name2 = "degrees Fahrenheit",
symbol = "°F",
usesymbol= 1,
utype = "temperature",
scale = 0.55555555555555558,
offset = 32-273.15*(9/5),
iscomplex= true,
istemperature= true,
default = "C",
link = "Fahrenheit",
},
["K"] = {
_name1 = "kelvin",
_symbol = "K",
usesymbol= 1,
utype = "temperature",
scale = 1,
offset = 0,
iscomplex= true,
istemperature= true,
prefixes = 1,
default = "C F",
link = "Kelvin",
},
["keVT"] = {
name1 = "kiloelectronvolt",
symbol = "keV",
utype = "temperature",
scale = 11.604505e6,
offset = 0,
iscomplex= true,
default = "MK",
link = "Electronvolt",
},
["R"] = {
name1 = "degree Rankine",
name2 = "degrees Rankine",
symbol = "°R",
usesymbol= 1,
utype = "temperature",
scale = 0.55555555555555558,
offset = 0,
iscomplex= true,
istemperature= true,
default = "K F C",
link = "Rankine scale",
},
["Celsius"] = {
target = "C",
},
["°C"] = {
target = "C",
},
["°F"] = {
target = "F",
},
["°R"] = {
target = "R",
},
["C-change"] = {
name1 = "degree Celsius change",
name2 = "degrees Celsius change",
symbol = "°C",
usesymbol= 1,
utype = "temperature change",
scale = 1,
default = "F-change",
link = "Celsius",
},
["F-change"] = {
name1 = "degree Fahrenheit change",
name2 = "degrees Fahrenheit change",
symbol = "°F",
usesymbol= 1,
utype = "temperature change",
scale = 0.55555555555555558,
default = "C-change",
link = "Fahrenheit",
},
["K-change"] = {
name1 = "kelvin change",
name2 = "kelvins change",
symbol = "K",
usesymbol= 1,
utype = "temperature change",
scale = 1,
default = "F-change",
link = "Kelvin",
},
["°C-change"] = {
target = "C-change",
},
["°F-change"] = {
target = "F-change",
},
["century"] = {
name1 = "century",
name2 = "centuries",
symbol = "ha",
utype = "time",
scale = 3155760000,
default = "Gs",
},
["d"] = {
name1 = "day",
symbol = "d",
utype = "time",
scale = 86400,
default = "ks",
},
["decade"] = {
name1 = "decade",
symbol = "daa",
utype = "time",
scale = 315576000,
default = "Ms",
},
["dog year"] = {
name1 = "dog year",
symbol = "dog yr",
utype = "time",
scale = 220903200,
default = "years",
link = "List of unusual units of measurement#Dog year",
},
["fortnight"] = {
symbol = "fortnight",
usename = 1,
utype = "time",
scale = 1209600,
default = "week",
},
["h"] = {
name1 = "hour",
symbol = "h",
utype = "time",
scale = 3600,
default = "ks",
},
["long billion year"] = {
name1 = "billion years",
name2 = "billion years",
symbol = "Ta",
utype = "time",
scale = 31557600000000000000,
default = "Es",
link = "Annum",
},
["millennium"] = {
name1 = "millennium",
name2 = "millennia",
symbol = "ka",
utype = "time",
scale = 31557600000,
default = "Gs",
},
["milliard year"] = {
name1 = "milliard years",
name2 = "milliard years",
symbol = "Ga",
utype = "time",
scale = 31557600000000000,
default = "Ps",
link = "Annum",
},
["million year"] = {
name1 = "million years",
name2 = "million years",
symbol = "Ma",
utype = "time",
scale = 31557600000000,
default = "Ts",
link = "Annum",
},
["min"] = {
name1 = "minute",
symbol = "min",
utype = "time",
scale = 60,
default = "s",
},
["month"] = {
symbol = "month",
usename = 1,
utype = "time",
scale = 2629800,
default = "Ms",
},
["months"] = {
name1 = "month",
symbol = "mo",
utype = "time",
scale = 2629800,
default = "year",
},
["s"] = {
_name1 = "second",
_symbol = "s",
utype = "time",
scale = 1,
prefixes = 1,
default = "v < 7200 ! min ! h",
link = "Second",
},
["short billion year"] = {
name1 = "billion years",
name2 = "billion years",
symbol = "Ga",
utype = "time",
scale = 31557600000000000,
default = "Ps",
link = "Annum",
},
["short trillion year"] = {
name1 = "trillion years",
name2 = "trillion years",
symbol = "Ta",
utype = "time",
scale = 31557600000000000000,
default = "Es",
link = "Annum",
},
["thousand million year"] = {
name1 = "thousand million years",
name2 = "thousand million years",
symbol = "Ga",
utype = "time",
scale = 31557600000000000,
default = "Ps",
link = "Annum",
},
["wk"] = {
symbol = "week",
usename = 1,
utype = "time",
scale = 604800,
default = "Ms",
},
["year"] = {
name1 = "year",
symbol = "a",
utype = "time",
scale = 31557600,
default = "Ms",
link = "Annum",
},
["years"] = {
name1 = "year",
symbol = "yr",
utype = "time",
scale = 31557600,
default = "Ms",
link = "Annum",
},
["byr"] = {
target = "short billion year",
},
["day"] = {
target = "d",
},
["days"] = {
target = "d",
},
["dog yr"] = {
target = "dog year",
},
["Gyr"] = {
target = "thousand million year",
},
["hour"] = {
target = "h",
},
["hours"] = {
target = "h",
},
["kMyr"] = {
target = "thousand million year",
},
["kmyr"] = {
target = "thousand million year",
},
["kyr"] = {
target = "millennium",
},
["long byr"] = {
target = "long billion year",
},
["minute"] = {
target = "min",
},
["minutes"] = {
target = "min",
},
["mth"] = {
target = "month",
},
["Myr"] = {
target = "million year",
},
["myr"] = {
target = "million year",
},
["sec"] = {
target = "s",
},
["second"] = {
target = "s",
},
["seconds"] = {
target = "s",
},
["tmyr"] = {
target = "thousand million year",
},
["tryr"] = {
target = "short trillion year",
},
["tyr"] = {
target = "millennium",
},
["week"] = {
target = "wk",
},
["weeks"] = {
target = "wk",
},
["yr"] = {
target = "year",
},
["kg.m"] = {
name1 = "kilogram metre",
name1_us = "kilogram meter",
symbol = "kg⋅m",
utype = "torque",
scale = 9.80665,
default = "Nm lbft",
link = "Kilogram metre (torque)",
},
["kgf.m"] = {
name1 = "kilogram force-metre",
name1_us = "kilogram force-meter",
symbol = "kgf⋅m",
utype = "torque",
scale = 9.80665,
default = "Nm lbfft",
link = "Kilogram metre (torque)",
},
["kgm"] = {
name1 = "kilogram metre",
name1_us = "kilogram meter",
symbol = "kg⋅m",
utype = "torque",
scale = 9.80665,
default = "Nm lbfft",
link = "Kilogram metre (torque)",
},
["kpm"] = {
name1 = "kilopond metre",
name1_us = "kilopond meter",
symbol = "kp⋅m",
utype = "torque",
scale = 9.80665,
default = "Nm lbft",
link = "Kilogram metre (torque)",
},
["lb-fft"] = {
name1 = "pound force-foot",
name2 = "pound force-feet",
symbol = "ft⋅lb<sub>f</sub>",
utype = "torque",
scale = 1.3558179483314004,
default = "Nm",
link = "Pound-foot (torque)",
},
["lb.ft"] = {
name1 = "pound force-foot",
name2 = "pound force-feet",
symbol = "lb⋅ft",
utype = "torque",
scale = 1.3558179483314004,
default = "Nm",
link = "Pound-foot (torque)",
},
["lb.in"] = {
name1 = "pound force-inch",
symbol = "lb⋅in",
utype = "torque",
scale = 0.1129848290276167,
default = "mN.m",
link = "Pound-foot (torque)",
},
["lbfft"] = {
name1 = "pound force-foot",
name2 = "pound force-feet",
symbol = "lbf⋅ft",
utype = "torque",
scale = 1.3558179483314004,
default = "Nm",
link = "Pound-foot (torque)",
},
["lbft"] = {
name1 = "pound-foot",
name2 = "pound-feet",
symbol = "lb⋅ft",
utype = "torque",
scale = 1.3558179483314004,
default = "Nm",
link = "Pound-foot (torque)",
},
["m.kg-f"] = {
name1 = "metre kilogram-force",
name1_us = "meter kilogram-force",
name2 = "metre kilograms-force",
name2_us = "meter kilograms-force",
symbol = "m⋅kg<sub>f</sub>",
utype = "torque",
scale = 9.80665,
default = "Nm lbfft",
link = "Kilogram metre (torque)",
},
["m.kgf"] = {
name1 = "metre kilogram-force",
name1_us = "meter kilogram-force",
name2 = "metre kilograms-force",
name2_us = "meter kilograms-force",
symbol = "m⋅kgf",
utype = "torque",
scale = 9.80665,
default = "Nm lbfft",
link = "Kilogram metre (torque)",
},
["mN.m"] = {
name1 = "millinewton-metre",
name1_us = "millinewton-meter",
symbol = "mN⋅m",
utype = "torque",
scale = 0.001,
default = "lb.in",
link = "Newton-metre",
},
["Nm"] = {
_name1 = "newton-metre",
_name1_us= "newton-meter",
_symbol = "N⋅m",
utype = "torque",
alttype = "energy",
scale = 1,
prefixes = 1,
default = "lbfft",
link = "Newton-metre",
},
["kN/m"] = {
per = { "kN", "-m-stiff" },
utype = "torque",
default = "lbf/in",
},
["lbf/in"] = {
per = { "lbf", "-in-stiff" },
utype = "torque",
default = "kN/m",
},
["lb-f.ft"] = {
target = "lb-fft",
},
["lbf.ft"] = {
target = "lbfft",
},
["lbf·ft"] = {
target = "lbfft",
},
["lb·ft"] = {
target = "lb.ft",
},
["mkg-f"] = {
target = "m.kg-f",
},
["mkgf"] = {
target = "m.kgf",
},
["N.m"] = {
target = "Nm",
},
["N·m"] = {
target = "Nm",
},
["ton-mile"] = {
symbol = "ton-mile",
usename = 1,
utype = "transportation",
scale = 1.4599723182105602,
default = "tkm",
},
["tkm"] = {
name1 = "tonne-kilometre",
name1_us = "tonne-kilometer",
symbol = "tkm",
utype = "transportation",
scale = 1,
default = "ton-mile",
},
["-12USoz(mL)serve"] = {
name1_us = "12 U.S. fl oz (355 mL) serving",
symbol = "12 US fl oz (355 mL) serving",
sym_us = "12 U.S. fl oz (355 mL) serving",
utype = "volume",
scale = 0.00035488235475000004,
default = "mL",
link = "Beverage can#Standard sizes",
},
["-12USoz(ml)serve"] = {
name1_us = "12 U.S. fl oz (355 ml) serving",
symbol = "12 US fl oz (355 ml) serving",
sym_us = "12 U.S. fl oz (355 ml) serving",
utype = "volume",
scale = 0.00035488235475000004,
default = "ml",
link = "Beverage can#Standard sizes",
},
["-12USozserve"] = {
name1_us = "12 U.S. fl oz serving",
symbol = "12 US fl oz serving",
sym_us = "12 U.S. fl oz serving",
utype = "volume",
scale = 0.00035488235475000004,
default = "mL",
link = "Beverage can#Standard sizes",
},
["acre-foot"] = {
name1 = "acre-foot",
name2 = "acre-foot",
symbol = "acre⋅ft",
utype = "volume",
scale = 1233.48183754752,
default = "m3",
},
["acre-ft"] = {
name1 = "acre-foot",
name2 = "acre-feet",
symbol = "acre⋅ft",
utype = "volume",
scale = 1233.48183754752,
default = "m3",
},
["AUtbsp"] = {
name1 = "Australian tablespoon",
symbol = "AU tbsp",
utype = "volume",
scale = 0.000020,
default = "ml",
},
["Bcuft"] = {
name1 = "billion cubic foot",
name2 = "billion cubic feet",
symbol = "billion cu ft",
utype = "volume",
scale = 28316846.592,
default = "Gl",
link = "Cubic foot",
},
["bdft"] = {
name1 = "board foot",
name2 = "board feet",
symbol = "bd ft",
utype = "volume",
scale = 0.0023597372167,
default = "m3",
},
["board feet"] = {
name2 = "board feet",
symbol = "board foot",
usename = 1,
utype = "volume",
scale = 0.0023597372167,
default = "m3",
},
["board foot"] = {
name2 = "board foot",
symbol = "board foot",
usename = 1,
utype = "volume",
scale = 0.0023597372167,
default = "m3",
},
["cc"] = {
name1 = "cubic centimetre",
name1_us = "cubic centimeter",
symbol = "cc",
utype = "volume",
scale = 0.000001,
default = "cuin",
},
["CID"] = {
name1 = "cubic inch",
name2 = "cubic inches",
symbol = "cu in",
utype = "volume",
scale = 0.000016387064,
default = "cc",
link = "Cubic inch#Engine displacement",
},
["cord"] = {
symbol = "cord",
utype = "volume",
scale = 3.624556363776,
default = "m3",
link = "Cord (unit)",
},
["cufoot"] = {
name1 = "cubic foot",
name2 = "cubic foot",
symbol = "cu ft",
utype = "volume",
scale = 0.028316846592,
default = "m3",
},
["cuft"] = {
name1 = "cubic foot",
name2 = "cubic feet",
symbol = "cu ft",
utype = "volume",
scale = 0.028316846592,
default = "m3",
},
["cuin"] = {
name1 = "cubic inch",
name2 = "cubic inches",
symbol = "cu in",
utype = "volume",
scale = 0.000016387064,
default = "cm3",
},
["cumi"] = {
name1 = "cubic mile",
symbol = "cu mi",
utype = "volume",
scale = 4168181825.440579584,
default = "km3",
},
["cuyd"] = {
name1 = "cubic yard",
symbol = "cu yd",
utype = "volume",
scale = 0.764554857984,
default = "m3",
},
["firkin"] = {
symbol = "firkin",
usename = 1,
utype = "volume",
scale = 0.04091481,
default = "L impgal USgal",
link = "Firkin (unit)",
},
["foot3"] = {
target = "cufoot",
},
["Goilbbl"] = {
name1 = "billion barrels",
name2 = "billion barrels",
symbol = "Gbbl",
utype = "volume",
scale = 158987294.928,
default = "v * 1.58987294928 < 10 ! e6 ! e9 ! m3",
link = "Barrel (unit)#Oil barrel",
},
["gr water"] = {
name1 = "grains water",
name2 = "grains water",
symbol = "gr H<sub>2</sub>O",
utype = "volume",
scale = 0.00000006479891,
default = "cm3",
link = "Grain (unit)",
},
["grt"] = {
name1 = "gross register ton",
symbol = "grt",
utype = "volume",
scale = 2.8316846592,
default = "m3",
link = "Gross register tonnage",
},
["impbbl"] = {
name1 = "imperial barrel",
symbol = "imp bbl",
utype = "volume",
scale = 0.16365924,
default = "L impgal USgal",
link = "Barrel (unit)",
},
["impbsh"] = {
name1 = "imperial bushel",
symbol = "imp bsh",
utype = "volume",
scale = 0.03636872,
default = "L impgal USdrygal",
},
["impbu"] = {
name1 = "imperial bushel",
symbol = "imp bu",
utype = "volume",
scale = 0.03636872,
default = "m3",
},
["impgal"] = {
name1 = "imperial gallon",
symbol = "imp gal",
utype = "volume",
scale = 0.00454609,
default = "L USgal",
},
["impgi"] = {
name1 = "gill",
symbol = "gi",
utype = "volume",
scale = 0.0001420653125,
default = "ml USoz",
link = "Gill (unit)",
},
["impkenning"] = {
name1 = "imperial kenning",
symbol = "kenning",
utype = "volume",
scale = 0.01818436,
default = "L USdrygal",
link = "Kenning (unit)",
},
["impoz"] = {
name1 = "imperial fluid ounce",
symbol = "imp fl oz",
utype = "volume",
scale = 0.0000284130625,
default = "ml USoz",
},
["imppk"] = {
name1 = "imperial peck",
symbol = "pk",
utype = "volume",
scale = 0.00909218,
default = "L USdrygal",
link = "Peck",
},
["imppt"] = {
name1 = "imperial pint",
symbol = "imp pt",
utype = "volume",
scale = 0.00056826125,
default = "L",
},
["impqt"] = {
name1 = "imperial quart",
symbol = "imp qt",
utype = "volume",
scale = 0.0011365225,
default = "ml USoz",
customary= 3,
},
["kilderkin"] = {
symbol = "kilderkin",
usename = 1,
utype = "volume",
scale = 0.08182962,
default = "L impgal USgal",
},
["koilbbl"] = {
name1 = "thousand barrels",
name2 = "thousand barrels",
symbol = "kbbl",
utype = "volume",
scale = 158.987294928,
default = "v * 1.58987294928 < 10 ! ! e3 ! m3",
link = "Barrel (unit)#Oil barrel",
},
["L"] = {
_name1 = "litre",
_name1_us= "liter",
_symbol = "L",
utype = "volume",
scale = 0.001,
prefixes = 1,
default = "impgal USgal",
link = "Litre",
},
["l"] = {
_name1 = "litre",
_name1_us= "liter",
_symbol = "l",
utype = "volume",
scale = 0.001,
prefixes = 1,
default = "impgal USgal",
link = "Litre",
},
["ll"] = {
name1 = "litre",
name1_us = "liter",
symbol = "l",
utype = "volume",
scale = 0.001,
default = "impgal USgal",
},
["m3"] = {
_name1 = "cubic metre",
_name1_us= "cubic meter",
_symbol = "m<sup>3</sup>",
prefix_position= 7,
utype = "volume",
scale = 1,
prefixes = 3,
default = "cuft",
link = "Cubic metre",
},
["Mbbl"] = {
name1 = "thousand barrels",
name2 = "thousand barrels",
symbol = "Mbbl",
utype = "volume",
scale = 158.987294928,
default = "v * 1.58987294928 < 10 ! e3 ! ! m3",
link = "Barrel (unit)#Oil barrel",
},
["MMoilbbl"] = {
name1 = "million barrels",
name2 = "million barrels",
symbol = "MMbbl",
utype = "volume",
scale = 158987.294928,
default = "v * 1.58987294928 < 10 ! e3 ! e6 ! m3",
link = "Barrel (unit)#Oil barrel",
},
["Moilbbl"] = {
name1 = "million barrels",
name2 = "million barrels",
symbol = "Mbbl",
utype = "volume",
scale = 158987.294928,
default = "v * 1.58987294928 < 10 ! e3 ! e6 ! m3",
link = "Barrel (unit)#Oil barrel",
},
["MTON"] = {
name1 = "measurement ton",
symbol = "MTON",
utype = "volume",
scale = 1.13267386368,
default = "m3",
},
["MUSgal"] = {
name1 = "million US gallons",
name1_us = "million U.S. gallons",
name2 = "million US gallons",
name2_us = "million U.S. gallons",
symbol = "million US gal",
sym_us = "million U.S. gal",
utype = "volume",
scale = 3785.411784,
default = "Ml",
link = "US gallon",
},
["oilbbl"] = {
name1 = "barrel",
symbol = "bbl",
utype = "volume",
scale = 0.158987294928,
default = "m3",
link = "Barrel (unit)#Oil barrel",
},
["stere"] = {
symbol = "stere",
usename = 1,
utype = "volume",
scale = 1,
default = "cuft",
},
["Toilbbl"] = {
name1 = "trillion barrels",
name2 = "trillion barrels",
symbol = "Tbbl",
utype = "volume",
scale = 158987294928,
default = "v * 1.58987294928 < 10 ! e9 ! e12 ! m3",
link = "Barrel (unit)#Oil barrel",
},
["USbbl"] = {
name1 = "US barrel",
name1_us = "U.S. barrel",
symbol = "US bbl",
sym_us = "U.S. bbl",
utype = "volume",
scale = 0.119240471196,
default = "L USgal impgal",
link = "Barrel (unit)",
},
["USbeerbbl"] = {
name1 = "US beer barrel",
name1_us = "U.S. beer barrel",
symbol = "US bbl",
sym_us = "U.S. bbl",
utype = "volume",
scale = 0.117347765304,
default = "L USgal impgal",
link = "Barrel (unit)",
},
["USbsh"] = {
name1 = "US bushel",
name1_us = "U.S. bushel",
symbol = "US bsh",
sym_us = "U.S. bsh",
utype = "volume",
scale = 0.03523907016688,
default = "L USdrygal impgal",
link = "Bushel",
},
["USbu"] = {
name1 = "US bushel",
name1_us = "U.S. bushel",
symbol = "US bu",
sym_us = "U.S. bu",
utype = "volume",
scale = 0.03523907016688,
default = "L USdrygal impgal",
link = "Bushel",
},
["USdrybbl"] = {
name1 = "US dry barrel",
name1_us = "U.S. dry barrel",
symbol = "US dry bbl",
sym_us = "U.S. dry bbl",
utype = "volume",
scale = 0.11562819898508,
default = "m3",
link = "Barrel (unit)",
},
["USdrygal"] = {
name1 = "US dry gallon",
name1_us = "U.S. dry gallon",
symbol = "US dry gal",
sym_us = "U.S. dry gal",
utype = "volume",
scale = 0.00440488377086,
default = "L",
link = "Gallon",
},
["USdrypt"] = {
name1 = "US dry pint",
name1_us = "U.S. dry pint",
symbol = "US dry pt",
sym_us = "U.S. dry pt",
utype = "volume",
scale = 0.0005506104713575,
default = "ml",
link = "Pint",
},
["USdryqt"] = {
name1 = "US dry quart",
name1_us = "U.S. dry quart",
symbol = "US dry qt",
sym_us = "U.S. dry qt",
utype = "volume",
scale = 0.001101220942715,
default = "ml",
link = "Quart",
},
["USflgal"] = {
name1 = "US gallon",
name1_us = "U.S. gallon",
symbol = "US fl gal",
sym_us = "U.S. fl gal",
utype = "volume",
scale = 0.003785411784,
default = "L impgal",
link = "Gallon",
},
["USgal"] = {
name1 = "US gallon",
name1_us = "U.S. gallon",
symbol = "US gal",
sym_us = "U.S. gal",
utype = "volume",
scale = 0.003785411784,
default = "L impgal",
},
["USgi"] = {
name1 = "gill",
symbol = "gi",
utype = "volume",
scale = 0.0001182941183,
default = "ml impoz",
link = "Gill (unit)",
},
["USkenning"] = {
name1 = "US kenning",
name1_us = "U.S. kenning",
symbol = "US kenning",
sym_us = "U.S. kenning",
utype = "volume",
scale = 0.01761953508344,
default = "L impgal",
link = "Kenning (unit)",
},
["USmin"] = {
name1 = "US minim",
name1_us = "U.S. minim",
symbol = "US min",
sym_us = "U.S. min",
utype = "volume",
scale = 0.000000061611519921875,
default = "ml",
link = "Minim (unit)",
},
["USoz"] = {
name1 = "US fluid ounce",
name1_us = "U.S. fluid ounce",
symbol = "US fl oz",
sym_us = "U.S. fl oz",
utype = "volume",
scale = 0.0000295735295625,
default = "ml",
},
["USpk"] = {
name1 = "US peck",
name1_us = "U.S. peck",
symbol = "US pk",
sym_us = "U.S. pk",
utype = "volume",
scale = 0.00880976754172,
default = "L impgal",
link = "Peck",
},
["USpt"] = {
name1 = "US pint",
name1_us = "U.S. pint",
symbol = "US pt",
sym_us = "U.S. pt",
utype = "volume",
scale = 0.000473176473,
default = "L imppt",
link = "Pint",
},
["USqt"] = {
name1 = "US quart",
name1_us = "U.S. quart",
symbol = "US qt",
sym_us = "U.S. qt",
utype = "volume",
scale = 0.000946352946,
default = "ml",
link = "Quart",
customary= 1,
},
["USquart"] = {
name1 = "US quart",
name1_us = "U.S. quart",
symbol = "US qt",
sym_us = "U.S. qt",
utype = "volume",
scale = 0.000946352946,
default = "ml impoz",
link = "Quart",
},
["UStbsp"] = {
name1 = "US tablespoon",
name1_us = "U.S. tablespoon",
symbol = "US tbsp",
sym_us = "U.S. tbsp",
utype = "volume",
scale = 1.4786764781250001e-5,
default = "ml",
},
["winecase"] = {
symbol = "case",
usename = 1,
utype = "volume",
scale = 0.009,
default = "L",
link = "Case (goods)",
},
["*U.S.drygal"] = {
target = "USdrygal",
sp_us = true,
customary= 2,
},
["*U.S.gal"] = {
target = "USgal",
sp_us = true,
customary= 2,
},
["+USdrygal"] = {
target = "USdrygal",
customary= 1,
},
["+usfloz"] = {
target = "USoz",
link = "Fluid ounce",
customary= 1,
},
["+USgal"] = {
target = "USgal",
customary= 1,
},
["+USoz"] = {
target = "USoz",
customary= 1,
},
["@impgal"] = {
target = "impgal",
link = "Gallon",
customary= 3,
},
["acre feet"] = {
target = "acre-ft",
},
["acre foot"] = {
target = "acre-foot",
},
["acre ft"] = {
target = "acre-ft",
},
["acre-feet"] = {
target = "acre-ft",
},
["acre.foot"] = {
target = "acre-foot",
},
["acre.ft"] = {
target = "acre-ft",
},
["acre·ft"] = {
target = "acre-ft",
},
["bushels"] = {
target = "USbsh",
},
["cid"] = {
target = "CID",
},
["ft3"] = {
target = "cuft",
},
["gal"] = {
target = "USgal",
},
["gallon"] = {
shouldbe = "Use %{USgal%} for US gallons or %{impgal%} for imperial gallons (not %{gallon%})",
},
["gallons"] = {
shouldbe = "Use %{USgal%} for US gallons or %{impgal%} for imperial gallons (not %{gallons%})",
},
["Gcuft"] = {
target = "e9cuft",
},
["impfloz"] = {
target = "impoz",
},
["Impgal"] = {
target = "impgal",
},
["in3"] = {
target = "cuin",
symbol = "in<sup>3</sup>",
},
["hm³"] = {
target = "hm3",
},
["kcuft"] = {
target = "e3cuft",
},
["kcum"] = {
target = "e3m3",
},
["km³"] = {
target = "km3",
},
["liter"] = {
target = "L",
sp_us = true,
},
["liters"] = {
target = "L",
sp_us = true,
},
["litre"] = {
target = "L",
},
["litres"] = {
target = "L",
},
["Mcuft"] = {
target = "e6cuft",
},
["Mcum"] = {
target = "e6m3",
},
["Mft3"] = {
target = "e6cuft",
},
["mi3"] = {
target = "cumi",
},
["m³"] = {
target = "m3",
},
["Pcuft"] = {
target = "e15cuft",
},
["pt"] = {
shouldbe = "Use %{USpt%} for US pints or %{imppt%} for imperial pints (not %{pt%})",
},
["qt"] = {
shouldbe = "Use %{USqt%} for US quarts or %{impqt%} for imperial quarts (not %{qt%})",
},
["Tcuft"] = {
target = "e12cuft",
},
["Tft3"] = {
target = "e12cuft",
},
["U.S.bbl"] = {
target = "USbbl",
sp_us = true,
default = "L U.S.gal impgal",
},
["U.S.beerbbl"] = {
target = "USbeerbbl",
sp_us = true,
default = "L U.S.gal impgal",
},
["U.S.bsh"] = {
target = "USbsh",
sp_us = true,
default = "L U.S.drygal impgal",
},
["U.S.bu"] = {
target = "USbu",
sp_us = true,
default = "L U.S.drygal impgal",
},
["U.S.drybbl"] = {
target = "USdrybbl",
sp_us = true,
},
["U.S.drygal"] = {
target = "USdrygal",
sp_us = true,
},
["U.S.drypt"] = {
target = "USdrypt",
sp_us = true,
},
["U.S.dryqt"] = {
target = "USdryqt",
sp_us = true,
},
["U.S.flgal"] = {
target = "USflgal",
sp_us = true,
},
["U.S.floz"] = {
target = "USoz",
sp_us = true,
},
["U.S.gal"] = {
target = "USgal",
sp_us = true,
link = "U.S. gallon",
},
["u.s.gal"] = {
target = "USgal",
sp_us = true,
link = "U.S. gallon",
},
["U.S.gi"] = {
target = "USgi",
sp_us = true,
},
["U.S.kenning"] = {
target = "USkenning",
sp_us = true,
},
["U.S.oz"] = {
target = "USoz",
sp_us = true,
},
["U.S.pk"] = {
target = "USpk",
sp_us = true,
},
["U.S.pt"] = {
target = "USpt",
sp_us = true,
},
["U.S.qt"] = {
target = "USqt",
sp_us = true,
default = "L impqt",
customary= 2,
},
["usbbl"] = {
target = "USbbl",
},
["usbeerbbl"] = {
target = "USbeerbbl",
},
["usbsh"] = {
target = "USbsh",
},
["usbu"] = {
target = "USbu",
},
["usdrybbl"] = {
target = "USdrybbl",
},
["usdrygal"] = {
target = "USdrygal",
},
["usdrypt"] = {
target = "USdrypt",
},
["usdryqt"] = {
target = "USdryqt",
},
["USfloz"] = {
target = "USoz",
},
["usfloz"] = {
target = "USoz",
},
["USGAL"] = {
target = "USgal",
},
["usgal"] = {
target = "USgal",
},
["usgi"] = {
target = "USgi",
},
["uskenning"] = {
target = "USkenning",
},
["usoz"] = {
target = "USoz",
},
["uspk"] = {
target = "USpk",
},
["uspt"] = {
target = "USpt",
},
["usqt"] = {
target = "USqt",
},
["yd3"] = {
target = "cuyd",
},
["cuft/sqmi"] = {
per = { "cuft", "sqmi" },
utype = "volume per unit area",
default = "m3/km2",
},
["m3/ha"] = {
name1 = "cubic metre per hectare",
name1_us = "cubic meter per hectare",
name2 = "cubic metres per hectare",
name2_us = "cubic meters per hectare",
symbol = "m<sup>3</sup>/ha",
utype = "volume per unit area",
scale = 0.0001,
default = "USbu/acre",
link = "Hectare",
},
["m3/km2"] = {
per = { "m3", "km2" },
utype = "volume per unit area",
default = "cuft/sqmi",
},
["U.S.gal/acre"] = {
per = { "U.S.gal", "acre" },
utype = "volume per unit area",
default = "m3/km2",
},
["USbu/acre"] = {
name2 = "US bushels per acre",
symbol = "US bushel per acre",
usename = 1,
utype = "volume per unit area",
scale = 8.7077638761350888e-6,
default = "m3/ha",
link = "Bushel",
},
["USgal/acre"] = {
per = { "USgal", "acre" },
utype = "volume per unit area",
default = "m3/km2",
},
["cuyd/mi"] = {
per = { "cuyd", "mi" },
utype = "volume per unit length",
default = "m3/km",
},
["m3/km"] = {
per = { "m3", "km" },
utype = "volume per unit length",
default = "cuyd/mi",
},
["mich"] = {
combination= { "ch", "mi" },
multiple = { 80 },
utype = "length",
},
["michlk"] = {
combination= { "chlk", "mi" },
multiple = { 80 },
utype = "length",
},
["michainlk"] = {
combination= { "chainlk", "mi" },
multiple = { 80 },
utype = "length",
},
["miyd"] = {
combination= { "yd", "mi" },
multiple = { 1760 },
utype = "length",
},
["miydftin"] = {
combination= { "in", "ft", "yd", "mi" },
multiple = { 12, 3, 1760 },
utype = "length",
},
["mift"] = {
combination= { "ft", "mi" },
multiple = { 5280 },
utype = "length",
},
["ydftin"] = {
combination= { "in", "ft", "yd" },
multiple = { 12, 3 },
utype = "length",
},
["ydft"] = {
combination= { "ft", "yd" },
multiple = { 3 },
utype = "length",
},
["ftin"] = {
combination= { "in", "ft" },
multiple = { 12 },
utype = "length",
},
["footin"] = {
combination= { "in", "foot" },
multiple = { 12 },
utype = "length",
},
["handin"] = {
combination= { "in", "hand" },
multiple = { 4 },
utype = "length",
},
["lboz"] = {
combination= { "oz", "lb" },
multiple = { 16 },
utype = "mass",
},
["stlb"] = {
combination= { "lb", "st" },
multiple = { 14 },
utype = "mass",
},
["stlboz"] = {
combination= { "oz", "lb", "st" },
multiple = { 16, 14 },
utype = "mass",
},
["st and lb"] = {
combination= { "lb", "st" },
multiple = { 14 },
utype = "mass",
},
["GN LTf"] = {
combination= { "GN", "-LTf" },
utype = "force",
},
["GN LTf STf"] = {
combination= { "GN", "-LTf", "-STf" },
utype = "force",
},
["GN STf"] = {
combination= { "GN", "-STf" },
utype = "force",
},
["GN STf LTf"] = {
combination= { "GN", "-STf", "-LTf" },
utype = "force",
},
["kN LTf"] = {
combination= { "kN", "-LTf" },
utype = "force",
},
["kN LTf STf"] = {
combination= { "kN", "-LTf", "-STf" },
utype = "force",
},
["kN STf"] = {
combination= { "kN", "-STf" },
utype = "force",
},
["kN STf LTf"] = {
combination= { "kN", "-STf", "-LTf" },
utype = "force",
},
["LTf STf"] = {
combination= { "-LTf", "-STf" },
utype = "force",
},
["MN LTf"] = {
combination= { "MN", "-LTf" },
utype = "force",
},
["MN LTf STf"] = {
combination= { "MN", "-LTf", "-STf" },
utype = "force",
},
["MN STf"] = {
combination= { "MN", "-STf" },
utype = "force",
},
["MN STf LTf"] = {
combination= { "MN", "-STf", "-LTf" },
utype = "force",
},
["STf LTf"] = {
combination= { "-STf", "-LTf" },
utype = "force",
},
["L/100 km mpgimp"] = {
combination= { "L/100 km", "mpgimp" },
utype = "fuel efficiency",
},
["l/100 km mpgimp"] = {
combination= { "l/100 km", "mpgimp" },
utype = "fuel efficiency",
},
["L/100 km mpgUS"] = {
combination= { "L/100 km", "mpgus" },
utype = "fuel efficiency",
},
["L/100 km mpgus"] = {
combination= { "L/100 km", "mpgus" },
utype = "fuel efficiency",
},
["l/100 km mpgus"] = {
combination= { "l/100 km", "mpgus" },
utype = "fuel efficiency",
},
["mpgimp L/100 km"] = {
combination= { "mpgimp", "L/100 km" },
utype = "fuel efficiency",
},
["LT ST t"] = {
combination= { "lt", "-ST", "t" },
utype = "mass",
},
["LT t ST"] = {
combination= { "lt", "t", "-ST" },
utype = "mass",
},
["ST LT t"] = {
combination= { "-ST", "lt", "t" },
utype = "mass",
},
["ST t LT"] = {
combination= { "-ST", "t", "lt" },
utype = "mass",
},
["t LT ST"] = {
combination= { "t", "lt", "-ST" },
utype = "mass",
},
["ton"] = {
combination= { "LT", "ST" },
utype = "mass",
},
["kPa kg/cm2"] = {
combination= { "kPa", "kgf/cm2" },
utype = "pressure",
},
["kPa lb/in2"] = {
combination= { "kPa", "-lb/in2" },
utype = "pressure",
},
["floz"] = {
combination= { "impoz", "USoz" },
utype = "volume",
},
}
---------------------------------------------------------------------------
-- Do not change the data in this table because it is created by running --
-- a script that reads the wikitext from a wiki page (see note above). --
---------------------------------------------------------------------------
local default_exceptions = {
-- Prefixed units with a default different from that of the base unit.
-- Each key item is a prefixed symbol (unitcode for engineering notation).
["cm<sup>2</sup>"] = "sqin",
["dm<sup>2</sup>"] = "sqin",
["e3acre"] = "km2",
["e3m2"] = "e6sqft",
["e6acre"] = "km2",
["e6ha"] = "e6acre",
["e6km2"] = "e6sqmi",
["e6m2"] = "e6sqft",
["e6sqft"] = "v * 9.290304 < 100 ! e3 ! e6 ! m2",
["e6sqmi"] = "e6km2",
["hm<sup>2</sup>"] = "acre",
["km<sup>2</sup>"] = "sqmi",
["mm<sup>2</sup>"] = "sqin",
["aJ"] = "eV",
["e3BTU"] = "MJ",
["e6BTU"] = "GJ",
["EJ"] = "kWh",
["fJ"] = "keV",
["GJ"] = "kWh",
["MJ"] = "kWh",
["PJ"] = "kWh",
["pJ"] = "MeV",
["TJ"] = "kWh",
["YJ"] = "kWh",
["yJ"] = "μeV",
["ZJ"] = "kWh",
["zJ"] = "meV",
["e12cuft/a"] = "v * 2.8316846592 < 100 ! e9 ! e12 ! m3/a",
["e12cuft/d"] = "v * 2.8316846592 < 100 ! e9 ! e12 ! m3/d",
["e12m3/a"] = "Tcuft/a",
["e12m3/d"] = "Tcuft/d",
["e3cuft/a"] = "v * 2.8316846592 < 100 ! ! e3 ! m3/a",
["e3cuft/d"] = "v * 2.8316846592 < 100 ! ! e3 ! m3/d",
["e3cuft/s"] = "v * 2.8316846592 < 100 ! ! e3 ! m3/s",
["e3m3/a"] = "v < 28.316846592 ! k ! M ! cuft/a",
["e3m3/d"] = "v < 28.316846592 ! k ! M ! cuft/d",
["e3m3/s"] = "v < 28.316846592 ! k ! M ! cuft/s",
["e3USgal/a"] = "v * 3.785411784 < 1000 ! ! e3 ! m3/a",
["e6cuft/a"] = "v * 2.8316846592 < 100 ! e3 ! e6 ! m3/a",
["e6cuft/d"] = "v * 2.8316846592 < 100 ! e3 ! e6 ! m3/d",
["e6cuft/s"] = "v * 2.8316846592 < 100 ! e3 ! e6 ! m3/s",
["e6m3/a"] = "v < 28.316846592 ! M ! G ! cuft/a",
["e6m3/d"] = "v < 28.316846592 ! M ! G ! cuft/d",
["e6m3/s"] = "v < 28.316846592 ! e6 ! e9 ! cuft/s",
["e6USgal/a"] = "v * 3.785411784 < 1000 ! e3 ! e6 ! m3/a",
["e9cuft/a"] = "m3/a",
["e9cuft/d"] = "v * 2.8316846592 < 100 ! e6 ! e9 ! m3/d",
["e9m3/a"] = "v < 28.316846592 ! G ! T ! cuft/a",
["e9m3/d"] = "v < 28.316846592 ! G ! T ! cuft/d",
["e9m3/s"] = "v < 28.316846592 ! e9 ! e12 ! cuft/s",
["e9USgal/a"] = "v * 3.785411784 < 1000 ! e6 ! e9 ! m3/a",
["e9USgal/s"] = "v * 3.785411784 < 1000 ! e6 ! e9 ! m3/s",
["nN"] = "gr-f",
["μN"] = "gr-f",
["mN"] = "oz-f",
["am"] = "in",
["cm"] = "in",
["dam"] = "ft",
["dm"] = "in",
["e12km"] = "e12mi",
["e12mi"] = "e12km",
["e3AU"] = "ly",
["e3km"] = "e3mi",
["e3mi"] = "e3km",
["e6km"] = "e6mi",
["e6mi"] = "e6km",
["e9km"] = "AU",
["e9mi"] = "e9km",
["Em"] = "mi",
["fm"] = "in",
["Gm"] = "mi",
["hm"] = "ft",
["km"] = "mi",
["mm"] = "in",
["Mm"] = "mi",
["nm"] = "in",
["Pm"] = "mi",
["pm"] = "in",
["Tm"] = "mi",
["Ym"] = "mi",
["ym"] = "in",
["Zm"] = "mi",
["zm"] = "in",
["μm"] = "in",
["e12lb"] = "v * 4.5359237 < 10 ! Mt ! Gt",
["e3lb"] = "v * 4.5359237 < 10 ! kg ! t",
["e3ozt"] = "v * 0.311034768 < 10 ! kg ! t",
["e3t"] = "LT ST",
["e6carat"] = "t",
["e6lb"] = "v * 4.5359237 < 10 ! t ! kilotonne",
["e6ozt"] = "lb kg",
["e6ST"] = "Mt",
["e6t"] = "LT ST",
["e9lb"] = "v * 4.5359237 < 10 ! kilotonne ! Mt",
["e9t"] = "LT ST",
["Gg"] = "lb",
["kg"] = "lb",
["mg"] = "gr",
["Mg"] = "LT ST",
["ng"] = "gr",
["μg"] = "gr",
["mBq"] = "fCi",
["kBq"] = "nCi",
["MBq"] = "μCi",
["GBq"] = "mCi",
["TBq"] = "Ci",
["PBq"] = "kCi",
["EBq"] = "kCi",
["fCi"] = "mBq",
["pCi"] = "Bq",
["nCi"] = "Bq",
["μCi"] = "kBq",
["mCi"] = "MBq",
["kCi"] = "TBq",
["MCi"] = "PBq",
["ns"] = "μs",
["μs"] = "ms",
["ms"] = "s",
["ks"] = "h",
["Ms"] = "week",
["Gs"] = "decade",
["Ts"] = "millennium",
["Ps"] = "million year",
["Es"] = "thousand million year",
["MK"] = "keVT",
["cL"] = "impoz usoz",
["cl"] = "impoz usoz",
["cm<sup>3</sup>"] = "cuin",
["dL"] = "impoz usoz",
["dl"] = "impoz usoz",
["mm<sup>3</sup>"] = "cuin",
["dm<sup>3</sup>"] = "cuin",
["e12cuft"] = "v * 2.8316846592 < 100 ! e9 ! e12 ! m3",
["e12impgal"] = "v * 4.54609 < 1000 ! T ! P ! l",
["e12m3"] = "v < 28.316846592 ! T ! P ! cuft",
["e12U.S.gal"] = "v * 3.785411784 < 1000 ! T ! P ! l",
["e12USgal"] = "v * 3.785411784 < 1000 ! T ! P ! l",
["e15cuft"] = "v * 2.8316846592 < 100 ! e12 ! e15 ! m3",
["e15m3"] = "Pcuft",
["e3bdft"] = "v * 0.23597372167 < 100 ! e3 ! e6 ! m3",
["e3cuft"] = "v * 2.8316846592 < 100 ! ! e3 ! m3",
["e3impgal"] = "v * 4.54609 < 1000 ! k ! M ! l",
["e3m3"] = "v < 28.316846592 ! k ! M ! cuft",
["e3U.S.gal"] = "v * 3.785411784 < 1000 ! k ! M ! l",
["e3USgal"] = "v * 3.785411784 < 1000 ! k ! M ! l",
["e6bdft"] = "v * 0.23597372167 < 100 ! e3 ! e6 ! m3",
["e6cuft"] = "v * 2.8316846592 < 100 ! e3 ! e6 ! m3",
["e6cuyd"] = "v * 7.64554857984 < 10 ! e3 ! e6 ! m3",
["e6impgal"] = "v * 4.54609 < 1000 ! M ! G ! l",
["e6L"] = "USgal",
["e6m3"] = "v < 28.316846592 ! M ! G ! cuft",
["e6U.S.gal"] = "v * 3.785411784 < 1000 ! M ! G ! l",
["e6USgal"] = "v * 3.785411784 < 1000 ! M ! G ! l",
["e9bdft"] = "v * 0.23597372167 < 100 ! e6 ! e9 ! m3",
["e9cuft"] = "v * 2.8316846592 < 100 ! e6 ! e9 ! m3",
["e9impgal"] = "v * 4.54609 < 1000 ! G ! T ! l",
["e9m3"] = "v < 28.316846592 ! G ! T ! cuft",
["e9U.S.gal"] = "v * 3.785411784 < 1000 ! G ! T ! l",
["e9USgal"] = "v * 3.785411784 < 1000 ! G ! T ! l",
["GL"] = "cuft",
["Gl"] = "cuft",
["kL"] = "cuft",
["kl"] = "cuft",
["km<sup>3</sup>"] = "cumi",
["mL"] = "impoz usoz",
["ml"] = "impoz usoz",
["Ml"] = "v < 28.316846592 ! e3 ! e6 ! cuft",
["ML"] = "v < 28.316846592 ! e3 ! e6 ! cuft",
["TL"] = "cumi",
["Tl"] = "cumi",
["μL"] = "cuin",
["μl"] = "cuin",
}
---------------------------------------------------------------------------
-- Do not change the data in this table because it is created by running --
-- a script that reads the wikitext from a wiki page (see note above). --
---------------------------------------------------------------------------
local link_exceptions = {
-- Prefixed units with a linked article different from that of the base unit.
-- Each key item is a prefixed symbol (not unitcode).
["mm<sup>2</sup>"] = "Square millimetre",
["cm<sup>2</sup>"] = "Square centimetre",
["dm<sup>2</sup>"] = "Square decimetre",
["km<sup>2</sup>"] = "Square kilometre",
["kJ"] = "Kilojoule",
["MJ"] = "Megajoule",
["GJ"] = "Gigajoule",
["TJ"] = "Terajoule",
["fm"] = "Femtometre",
["pm"] = "Picometre",
["nm"] = "Nanometre",
["μm"] = "Micrometre",
["mm"] = "Millimetre",
["cm"] = "Centimetre",
["dm"] = "Decimetre",
["dam"] = "Decametre",
["hm"] = "Hectometre",
["km"] = "Kilometre",
["Mm"] = "Megametre",
["Gm"] = "Gigametre",
["Tm"] = "Terametre",
["Pm"] = "Petametre",
["Em"] = "Exametre",
["Zm"] = "Zettametre",
["Ym"] = "Yottametre",
["μg"] = "Microgram",
["mg"] = "Milligram",
["kg"] = "Kilogram",
["Mg"] = "Tonne",
["yW"] = "Yoctowatt",
["zW"] = "Zeptowatt",
["aW"] = "Attowatt",
["fW"] = "Femtowatt",
["pW"] = "Picowatt",
["nW"] = "Nanowatt",
["μW"] = "Microwatt",
["mW"] = "Milliwatt",
["kW"] = "Kilowatt",
["MW"] = "Megawatt",
["GW"] = "Gigawatt",
["TW"] = "Terawatt",
["PW"] = "Petawatt",
["EW"] = "Exawatt",
["ZW"] = "Zettawatt",
["YW"] = "Yottawatt",
["as"] = "Attosecond",
["fs"] = "Femtosecond",
["ps"] = "Picosecond",
["ns"] = "Nanosecond",
["μs"] = "Microsecond",
["ms"] = "Millisecond",
["ks"] = "Kilosecond",
["Ms"] = "Megasecond",
["Gs"] = "Gigasecond",
["Ts"] = "Terasecond",
["Ps"] = "Petasecond",
["Es"] = "Exasecond",
["Zs"] = "Zettasecond",
["Ys"] = "Yottasecond",
["mm<sup>3</sup>"] = "Cubic millimetre",
["cm<sup>3</sup>"] = "Cubic centimetre",
["dm<sup>3</sup>"] = "Cubic decimetre",
["dam<sup>3</sup>"] = "Cubic decametre",
["km<sup>3</sup>"] = "Cubic kilometre",
["μL"] = "Microlitre",
["μl"] = "Microlitre",
["mL"] = "Millilitre",
["ml"] = "Millilitre",
["cL"] = "Centilitre",
["cl"] = "Centilitre",
["dL"] = "Decilitre",
["dl"] = "Decilitre",
["daL"] = "Decalitre",
["dal"] = "Decalitre",
["hL"] = "Hectolitre",
["hl"] = "Hectolitre",
["kL"] = "Kilolitre",
["kl"] = "Kilolitre",
["ML"] = "Megalitre",
["Ml"] = "Megalitre",
["GL"] = "Gigalitre",
["Gl"] = "Gigalitre",
["TL"] = "Teralitre",
["Tl"] = "Teralitre",
["PL"] = "Petalitre",
["Pl"] = "Petalitre",
}
---------------------------------------------------------------------------
-- Do not change the data in this table because it is created by running --
-- a script that reads the wikitext from a wiki page (see note above). --
---------------------------------------------------------------------------
local per_unit_fixups = {
-- Automatically created per units of form "x/y" may have their unit type
-- changed, for example, "length/time" is changed to "speed".
-- Other adjustments can also be specified.
["/area"] = "per unit area",
["/volume"] = "per unit volume",
["area/area"] = "area per unit area",
["energy/length"] = "energy per unit length",
["energy/mass"] = "energy per unit mass",
["energy/time"] = { utype = "power", link = "Power (physics)" },
["energy/volume"] = "energy per unit volume",
["force/area"] = { utype = "pressure", link = "Pressure" },
["length/length"] = { utype = "gradient", link = "Grade (slope)" },
["length/time"] = { utype = "speed", link = "Speed" },
["length/time/time"] = { utype = "acceleration", link = "Acceleration" },
["mass/area"] = { utype = "pressure", multiplier = 9.80665 },
["mass/length"] = "linear density",
["mass/mass"] = "concentration",
["mass/power"] = "mass per unit power",
["mass/time"] = "mass per unit time",
["mass/volume"] = { utype = "density", link = "Density" },
["power/mass"] = "power per unit mass",
["power/volume"] = { link = "Power density" },
["pressure/length"] = "fracture gradient",
["speed/time"] = { utype = "acceleration", link = "Acceleration" },
["volume/area"] = "volume per unit area",
["volume/length"] = "volume per unit length",
["volume/time"] = "flow",
}
return {
all_units = all_units,
default_exceptions = default_exceptions,
link_exceptions = link_exceptions,
per_unit_fixups = per_unit_fixups,
}
nr27xaxle2nj6a3t6el6b912ar4k9qi
Modul:Convert/text
828
599
2699
2698
2024-12-03T14:16:33Z
Jon Harald Søby
20
3 revisi diimpor
2698
Scribunto
text/plain
-- Text used by Module:Convert for enwiki.
-- This is a separate module to simplify translation for use on another wiki.
-- See [[:en:Template:Convert/Transwiki guide]] if copying to another wiki.
-- Some units accept an SI prefix before the unit code, such as "kg" for kilogram.
local SIprefixes = {
-- The prefix field is what the prefix should be, if different from the prefix used.
['Q'] = { exponent = 30, name = 'quetta', },
['R'] = { exponent = 27, name = 'ronna', },
['Y'] = { exponent = 24, name = 'yota' , name_us = 'yotta' },
['Z'] = { exponent = 21, name = 'zeta' , name_us = 'zetta' },
['E'] = { exponent = 18, name = 'eksa' , name_us = 'exa' },
['P'] = { exponent = 15, name = 'peta' , },
['T'] = { exponent = 12, name = 'tera' , },
['G'] = { exponent = 9, name = 'giga' , },
['M'] = { exponent = 6, name = 'mega' , },
['k'] = { exponent = 3, name = 'kilo' , },
['h'] = { exponent = 2, name = 'hekto' , name_us = 'hecto' },
['da']= { exponent = 1, name = 'deka' , name_us = 'deca' },
['d'] = { exponent = -1, name = 'desi' , name_us = 'deci' },
['c'] = { exponent = -2, name = 'senti' , name_us = 'centi' },
['m'] = { exponent = -3, name = 'mili' , name_us = 'milli' },
['μ'] = { exponent = -6, name = 'mikro' , name_us = 'micro' }, -- key = 'GREEK SMALL LETTER MU' (U+03BC) utf-8 CE BC
['µ'] = { exponent = -6, name = 'micro', prefix = 'μ' }, -- key = 'MICRO SIGN' (U+00B5) utf-8 C2 B5
['u'] = { exponent = -6, name = 'micro', prefix = 'μ' }, -- not an SI prefix, but allow for people typing this
['n'] = { exponent = -9, name = 'nano' , },
['p'] = { exponent =-12, name = 'piko' , name_us = 'pico' },
['f'] = { exponent =-15, name = 'femto', },
['a'] = { exponent =-18, name = 'atto' , },
['z'] = { exponent =-21, name = 'zepto' , },
['y'] = { exponent =-24, name = 'yokto' , name_us = 'yocto'},
['r'] = { exponent =-27, name = 'ronto', },
['q'] = { exponent =-30, name = 'quecto', },
}
-- Some units can be qualified with one of the following prefixes, when linked.
local customary_units = {
{ "US", link = "United States customary units" },
{ "U.S.", link = "United States customary units" },
{ "imperial", link = "Imperial units" },
{ "imp", link = "Imperial units" },
}
-- Names when using engineering notation (a prefix of "eN" where N is a number; example "e6km").
-- key = { "name", link = "article title", exponent = numeric_key_value }
-- If lk=on and link is defined, the name of the number will appear as a link.
local eng_scales = {
["3"] = { "thousand", exponent = 3 },
["6"] = { "million", exponent = 6 },
["9"] = { "billion", link = "1000000000 (number)", exponent = 9 },
["12"] = { "trillion", link = "1000000000000 (number)", exponent = 12 },
["15"] = { "quadrillion", link = "1000000000000000 (number)", exponent = 15 },
}
local all_categories = {
unit = "[[Kategori:Convert errors]]",
option = "[[Kategori:Convert errors]]",
warning = '[[Kategori:Convert invalid options]]',
tracking = '[[Kategori:Convert tracking]]',
}
-- For some error messages, the following puts the wanted style around
-- each unit code marked like '...%{ft%}...'.
local unitcode_regex = '%%([{}])'
local unitcode_replace = { ['{'] = '"', ['}'] = '"' } -- no longer need the more elaborate substitute used before 2013-09-28
-- All messages that may be displayed if a problem occurs.
local all_messages = {
-- Message format string: $1=title, $2=text, $3=category, $4=anchor.
-- Each displayed message starts with "Convert:" so can easily locate by searching article.
cvt_format = '<sup class="noprint Inline-Template" style="white-space:nowrap;">[<i>[[Bantuan:Convert messages#$4|<span title="Convert: $1">convert: $2</span>]]</i>]</sup>$3<span class="error"></span>',
cvt_format2 = '<sup class="noprint Inline-Template" style="white-space:nowrap;">[[Bantuan:Convert messages#$4|<span title="Convert: $1">$2</span>]]</sup>$3<span class="error"></span>',
cvt_format_preview = '<strong class="error">Error in convert: $1 [[Bantuan:Convert messages#$4|(help)]]</strong>$3',
-- Each of following messages is a table:
-- { [1] = 'title', -- mouseover title text
-- [2] = 'text', -- link text displayed in article
-- [3] = 'category key', -- key to lookup category in all_categories
-- [4] = 'anchor', -- anchor for link to relevant section on help page
-- regex = gsub_regex,
-- replace = gsub_table,
-- } Mouseover title text Link text CatKey Anchor
cvt_bad_input = { 'input "$1" must be a number and unit' , 'invalid input' , 'option', 'invalid_input' },
cvt_bad_num = { 'Value "$1" must be a number' , 'invalid number' , 'option', 'invalid_number' },
cvt_big_prec = { 'Precision "$1" is too large' , 'precision too large' , 'option', 'precision_too_large' },
cvt_invalid_num = { 'Number has overflowed' , 'number overflow' , 'option', 'number_overflow' },
cvt_no_num = { 'Needs the number to be converted' , 'needs a number' , 'option', 'needs_number' },
cvt_no_num2 = { 'Needs another number for a range' , 'needs another number', 'option', 'needs_another_number' },
cvt_bad_altitude = { '"$1" needs an integer' , 'invalid altitude' , 'option', 'invalid_altitude' },
cvt_bad_frac = { '"$1" needs an integer above 1' , 'invalid fraction' , 'option', 'invalid_fraction' },
cvt_bad_prec = { 'Precision "$1" must be an integer' , 'invalid precision' , 'option', 'invalid_precision' },
cvt_bad_sigfig = { '"$1" needs a positive integer' , 'invalid sigfig' , 'option', 'invalid_sigfig' },
cvt_empty_option = { 'Ignored empty option "$1"' , 'empty option' , 'option', 'empty_option' },
cvt_deprecated = { 'Option "$1" is deprecated' , '*' , 'option', 'deprecated_option', format = 'cvt_format2', nowarn = true },
cvt_no_spell = { 'Spelling is not available' , 'bug, ask for help' , 'option', 'ask_for_help' },
cvt_unknown_option = { 'Ignored invalid option "$1"' , 'invalid option' , 'option', 'invalid_option' },
cvt_wd_fail = { 'Unable to access Wikidata' , 'wikidata problem' , 'option', 'wikidata_problem' },
cvt_bad_default = { 'Unit "$1" has an invalid default' , 'bug, ask for help' , 'unit' , 'ask_for_help' },
cvt_bad_unit = { 'Unit "$1" is invalid here' , 'unit invalid here' , 'unit' , 'unit_invalid_here' },
cvt_no_default = { 'Unit "$1" has no default output unit' , 'bug, ask for help' , 'unit' , 'ask_for_help' },
cvt_no_unit = { 'Needs name of unit' , 'needs unit name' , 'unit' , 'needs_unit_name' },
cvt_unknown = { 'Unit name "$1" is not known' , 'unknown unit' , 'unit' , 'unknown_unit' },
cvt_should_be = { '$1' , 'ambiguous unit' , 'unit' , 'ambiguous_unit', regex = unitcode_regex, replace = unitcode_replace },
cvt_mismatch = { 'Cannot convert "$1" to "$2"' , 'unit mismatch' , 'unit' , 'unit_mismatch' },
cvt_bug_convert = { 'Bug: Cannot convert between specified units', 'bug, ask for help' , 'unit' , 'ask_for_help' },
cvt_lookup = { 'Unit "$1" is incorrectly defined' , 'bug, ask for help' , 'unit' , 'ask_for_help' },
}
-- Text to join input value/unit with output value/unit.
local disp_joins = {
-- [1]=before output, [2]=after output, [3]=between outputs in a combination; default "; "
-- [wantname] gives default abbr=off
["or"] = { " or " , "" , " or ", wantname = true },
["sqbr-sp"] = { " [" , "]" },
["sqbr-nbsp"] = { " [" , "]" },
["comma"] = { ", " , "" , ", " },
["semicolon"] = { "; " , "" },
["slash-sp"] = { " / " , "" , wantname = true },
["slash-nbsp"] = { " / ", "" , wantname = true },
["slash-nosp"] = { "/" , "" , wantname = true },
["b"] = { " (" , ")" },
["(or)"] = { " (" , ")", " or " },
["br"] = { "<br />" , "" , wantname = true },
["br()"] = { "<br />(" , ")", wantname = true },
}
-- Text to separate values in a range.
local range_types = {
-- Specifying a table requires either:
-- * "off" and "on" values (for "abbr=off" and "abbr=on"), or
-- * "input" and "output" values (for LHS and RHS);
-- other fields are optional.
-- When "adj=on|abbr=off" applies, spaces in range text are replaced with hyphens.
-- With "exception = true", that also occurs with "adj=on|abbr=on".
-- If "adj" is defined here, that text (unchanged) is used with "adj=on".
["+"] = " + ",
[","] = ", ",
[", and"] = ", dan ",
[", or"] = ", atau ",
["by"] = " x ",
["-"] = "–",
["to about"] = " hingga sekitar ",
["and"] = { off = " dan ", on = " dan ", exception = true },
["and(-)"] = { input = " dan ", output = "–" },
["or"] = { off = " atau " , on = " atau " , exception = true },
["to"] = { off = " hingga " , on = " hingga " , exception = true },
["to(-)"] = { input = " hingga ", output = "–" },
["+/-"] = { off = " ± ", on = " ± ", adj = " ± ", is_range_change = true },
["by(x)"] = { input = " x ", output = " × ", out_range_x = true },
["x"] = { off = " x ", on = " × ", abbr_range_x = true },
["xx"] = " × ",
["*"] = "×",
["/"] = " / " -- for a table of high/low temperatures with {{convert|83|/|63|F|disp=br()|abbr=values}}
}
local range_aliases = {
-- ["alternative name for a range"] = "standard range name"
["–"] = "-",
["–"] = "-",
["×"] = "x",
["×"] = "x",
["±"] = "+/-",
["±"] = "+/-",
}
-- Convert accepts range text delimited with whitespace, for example, {{convert|1 to 2|ft}}.
-- In addition, the following "words" are accepted without spaces, for example, {{convert|1-2|ft}}.
-- Words must be in correct order for searching, for example, 'x' after 'xx'.
local range_words = { '-', '–', 'xx', 'x', '*' }
local ranges = {
types = range_types,
aliases = range_aliases,
words = range_words,
}
-- Valid option names.
local en_option_name = {
-- ["local text for option name"] = "en name used in this module"
["$"] = "$",
["abbr"] = "abbr",
["adj"] = "adj",
["altitude_ft"] = "altitude_ft",
["altitude_m"] = "altitude_m",
["comma"] = "comma",
["debug"] = "debug",
["disp"] = "disp",
["frac"] = "frac",
["input"] = "input",
["lang"] = "lang",
["lk"] = "lk",
["order"] = "order",
["qid"] = "qid",
["qual"] = "qual",
["qualifier"] = "qual",
["round"] = "round",
["sigfig"] = "sigfig",
["sing"] = "adj", -- "sing" is an old alias for "adj"
["sortable"] = "sortable",
["sp"] = "sp",
["spell"] = "spell",
["stylein"] = "stylein",
["styleout"] = "styleout",
["tracking"] = "tracking",
}
-- Valid option values.
-- Convention: parms.opt_xxx refers to an option that is set here
-- (not intended to be set by the template which invokes this module).
-- Example: At enwiki, "abbr" includes:
-- ["values"] = "opt_values"
-- As a result, if the template uses abbr=values, Module:Convert sets:
-- parms["opt_values"] = true
-- parms["abbr"] = nil
-- Therefore parms.abbr will be nil, or will have one of the listed values
-- that do not start with "opt_".
-- An option value of form "xxx?" is the same as "xxx" but shows the input as deprecated.
local en_option_value = {
["$"] = 'TEXT', -- TEXT should be a currency symbol that will be used instead of "$"
["abbr"] = {
-- ["local text for option value"] = "en value used in this module"
["def"] = "", -- ignored (some wrapper templates call convert with "abbr=def" to mean "default abbreviation")
["h"] = "on", -- abbr=on + use "h" for hand unit (default)
["hh"] = "opt_hand_hh", -- abbr=on + use "hh" for hand unit
["in"] = "in", -- use symbol for LHS unit
["none"] = "off", -- old name for "off"
["off"] = "off", -- use name for all units
["on"] = "on", -- use symbol for all units
["out"] = "out", -- use symbol for RHS unit (default)
["unit"] = "unit", -- abbr=on but abbreviate units only: e6km → million km (not ×10⁶ km)
["values"] = "opt_values", -- show only input and output numbers, not units
["~"] = "opt_also_symbol", -- show input unit symbol as well as name
},
["adj"] = {
["mid"] = "opt_adjectival, opt_adj_mid", -- adj=on with user-specified text after input unit (between input and output)
["off"] = "", -- ignored (off is the default)
["on"] = "opt_adjectival", -- unit name is singular and hyphenated
["pre"] = "opt_one_preunit", -- user-specified text before input unit
["ri0"] = "opt_ri=0", -- round input with precision = 0
["ri1"] = "opt_ri=1", -- round input with precision = 1
["ri2"] = "opt_ri=2", -- round input with precision = 2
["ri3"] = "opt_ri=3", -- round input with precision = 3
},
["altitude_ft"] = 'INTEGER',
["altitude_m"] = 'INTEGER',
["comma"] = {
["5"] = "opt_comma5", -- only use numsep grouping if 5 or more digits
["gaps"] = "opt_gaps", -- use gaps, not numsep, to separate groups of digits
["gaps3"] = "opt_gaps, opt_gaps3", -- group only in threes rather than default of no gap before a single digit after decimal mark
["off"] = "opt_nocomma", -- no numsep in input or output numbers
},
["debug"] = {
["yes"] = "opt_sortable_debug", -- make the normally hidden sort key visible
},
["disp"] = {
["5"] = "opt_round=5?", -- round output value to nearest 5
["b"] = "b", -- join: '(...)'
["(or)"] = "(or)", -- join: '(...)' with 'or' between outputs in a combination
["br"] = "br", -- join: '<br />'
["br()"] = "br()", -- join: '<br />(...)'
["comma"] = "comma", -- join: ','
["flip"] = "opt_flip", -- reverse order of input/output
["number"] = "opt_output_number_only", -- display output value (not input, and not output symbol/name)
["or"] = "or", -- join: 'or'
["out"] = "opt_output_only",
["output number only"] = "opt_output_number_only",
["output only"] = "opt_output_only",
["preunit"] = "opt_two_preunits", -- user-specified text before input and output units
["semicolon"] = "semicolon", -- join: ';'
["sqbr"] = "sqbr", -- join: '[...]'
["table"] = "opt_table", -- output is suitable for a table cell with align="right"
["tablecen"] = "opt_tablecen", -- output is suitable for a table cell with align="center"
["unit"] = "opt_input_unit_only", -- display input symbol/name (not output, and not input value)
["unit or text"] = "opt_input_unit_only, opt_ignore_error", -- display input symbol/name, or given unit code if not known
["unit2"] = "opt_output_unit_only",
["x"] = "x", -- join: <first>...<second> (user-specified text)
},
["frac"] = 'INTEGER',
["input"] = 'TEXT', -- TEXT should be value><space><unitcode> or <wikidata-property-id>
["lang"] = { -- language for output digits (both en and local digits are always accepted for input)
["en"] = "opt_lang_en", -- use en digits for numbers, regardless of local language
["local"] = "opt_lang_local", -- use local digits for numbers (default, although config can change default to en)
},
["lk"] = {
["in"] = "in", -- link LHS unit name or symbol
["off"] = "off", -- do not link: same as default except for hand unit
["on"] = "on", -- link all unit names or symbols (but not twice for the same unit)
["out"] = "out", -- link RHS unit name or symbol
},
["order"] = {
["flip"] = "opt_flip", -- reverse order of input/output
["out"] = "opt_order_out", -- do not show input; instead, use order in output combination, with the first output shown as the input
},
["qid"] = 'TEXT', -- TEXT should be a Wikidata Q item identifier
["qual"] = 'TEXT', -- TEXT should be a Wikidata Q item identifier
["round"] = {
["0.5"] = "opt_round=0.5", -- round output value to nearest 0.5
["5"] = "opt_round=5", -- round output value to nearest 5
["10"] = "opt_round=10", -- round output value to nearest 10 (same as but clearer than "|-1")
["25"] = "opt_round=25", -- round output value to nearest 25
["50"] = "opt_round=50", -- round output value to nearest 50
["each"] = "opt_round_each", -- using default precision in a range, round each output separately (default uses highest precision of each item in range)
},
["sigfig"] = 'INTEGER',
["sortable"] = {
["off"] = "", -- ignored (off is the default)
["on"] = "opt_sortable_on", -- output sort key for use in a sortable table, based on value from converting to a standard base unit
["debug"] = "opt_sortable_on, opt_sortable_debug", -- |sortable=debug is the same as |sortable=on|debug=yes
},
["sp"] = {
["us"] = "opt_sp_us", -- use U.S. spelling (like "meter" instead of default "metre")
},
["spell"] = { -- only English spelling is supported; not scientific notation; only some fractions
["in"] = "opt_spell_in", -- spell input value in words
["In"] = "opt_spell_in, opt_spell_upper", -- spell input value in words with first letter uppercase
["on"] = "opt_spell_in, opt_spell_out", -- spell input and output values in words
["On"] = "opt_spell_in, opt_spell_out, opt_spell_upper", -- same, with first letter of first word in result uppercase
["us"] = "opt_sp_us", -- use U.S. spelling; same as sp=us so spell=us also works
},
["stylein"] = 'TEXT',
["styleout"] = 'TEXT',
["tracking"] = 'TEXT',
}
local titles = {
["frac"] = "Fraction/styles.css",
["sfrac"] = "Sfrac/styles.css",
}
return {
SIprefixes = SIprefixes,
all_categories = all_categories,
all_messages = all_messages,
currency = { ['$'] = true, ['£'] = true, ['€'] = true, ['₱'] = true, ['₽'] = true, ['¥'] = true },
customary_units = customary_units,
disp_joins = disp_joins,
en_option_name = en_option_name,
en_option_value = en_option_value,
eng_scales = eng_scales,
ranges = ranges,
titles = titles,
}
47ujciidyg5vbbxf3bvp6dpbx0692ft
Modul:ConvertNumeric
828
600
2701
2700
2024-12-03T14:16:33Z
Jon Harald Søby
20
1 revisi diimpor
2700
Scribunto
text/plain
-- Module for converting between different representations of numbers. See talk page for user documentation.
-- For unit tests see: [[Modul:ConvertNumeric/testcases]]
-- When editing, preview with: [[Pembicaraan Modul:ConvertNumeric/testcases]]
-- First, edit [[Modul:ConvertNumeric/sandbox]], then preview with [[Pembicaraan Modul:ConvertNumeric/sandbox/testcases]]
require('strict')
local ones_position = {
[0] = 'nol',
[1] = 'satu',
[2] = 'dua',
[3] = 'tiga',
[4] = 'empat',
[5] = 'lima',
[6] = 'enam',
[7] = 'tujuh',
[8] = 'delapan',
[9] = 'sembilan',
[10] = 'sepuluh',
[11] = 'sebelas',
[12] = 'dua belas',
[13] = 'tiga belas',
[14] = 'empat belas',
[15] = 'lima belas',
[16] = 'enam belas',
[17] = 'tujuh belas',
[18] = 'delapan belas',
[19] = 'sembilan belas'
}
local ones_position_ord = {
[0] = 'ke-nol',
[1] = 'kesatu',
[2] = 'kedua',
[3] = 'ketiga',
[4] = 'keempat',
[5] = 'kelima',
[6] = 'keenam',
[7] = 'ketujuh',
[8] = 'kedelapan',
[9] = 'kesembilan',
[10] = 'kesepuluh',
[11] = 'kesebelas',
[12] = 'kedua belas',
[13] = 'ketiga belas',
[14] = 'keempat belas',
[15] = 'kelima belas',
[16] = 'keenam belas',
[17] = 'ketujuh belas',
[18] = 'kedelapan belas',
[19] = 'kesembilan belas'
}
local ones_position_plural = {
[0] = 'nolan',
[1] = 'satuan',
[2] = 'duaan',
[3] = 'tigaan',
[4] = 'empatan',
[5] = 'limaan',
[6] = 'enaman',
[7] = 'tujuhan',
[8] = 'delapanan',
[9] = 'sembilanan',
[10] = 'sepuluhan',
[11] = 'sebelasan',
[12] = 'dua belasan',
[13] = 'tiga belasan',
[14] = 'empat belasan',
[15] = 'lima belasan',
[16] = 'enam belasan',
[17] = 'tujuh belasan',
[18] = 'delapan belasan',
[19] = 'sembilan belasan'
}
local tens_position = {
[2] = 'dua puluh',
[3] = 'tiga puluh',
[4] = 'empat puluh',
[5] = 'lima puluh',
[6] = 'enam puluh',
[7] = 'tujuh puluh',
[8] = 'delapan puluh',
[9] = 'sembilan puluh',
}
local tens_position_ord = {
[2] = 'kedua puluh',
[3] = 'ketiga puluh',
[4] = 'keempat puluh',
[5] = 'kelimah puluh',
[6] = 'keenam puluh',
[7] = 'ketujuh puluh',
[8] = 'kedelapan puluh',
[9] = 'kesembilan puluh'
}
local tens_position_plural = {
[2] = 'dua puluhan',
[3] = 'tiga puluhan',
[4] = 'empat puluhan',
[5] = 'lima puluhan',
[6] = 'enam puluhan',
[7] = 'tujuh puluhan',
[8] = 'delapan puluhan',
[9] = 'sembilan puluhan'
}
local groups = {
[1] = 'ribu',
[2] = 'juta',
[3] = 'milyar',
[4] = 'triliun',
[5] = 'quadriliun',
[6] = 'quintiliun',
[7] = 'sekstiliun',
[8] = 'septiliun',
[9] = 'oktiliun',
[10] = 'noniliun',
[11] = 'desiliun',
[12] = 'undesiliun',
[13] = 'duodesiliun',
[14] = 'tredesiliun',
[15] = 'quattuordesiliun',
[16] = 'quindesiliun',
[17] = 'seksdesiliun',
[18] = 'septendesiliun',
[19] = 'oktodesiliun',
[20] = 'novemdesiliun',
[21] = 'vigintiliun',
[22] = 'unvigintiliun',
[23] = 'duovigintiliun',
[24] = 'tresvigintiliun',
[25] = 'quattuorvigintiliun',
[26] = 'quinquavigintiliun',
[27] = 'sesvigintiliun',
[28] = 'septemvigintiliun',
[29] = 'octovigintiliun',
[30] = 'novemvigintiliun',
[31] = 'trigintiliun',
[32] = 'untrigintiliun',
[33] = 'duotrigintiliun',
[34] = 'trestrigintiliun',
[35] = 'quattuortrigintiliun',
[36] = 'quinquatrigintiliun',
[37] = 'sestrigintiliun',
[38] = 'septentrigintiliun',
[39] = 'octotrigintiliun',
[40] = 'noventrigintiliun',
[41] = 'quadragintiliun',
[51] = 'quinquagintiliun',
[61] = 'sexagintiliun',
[71] = 'septuagintiliun',
[81] = 'octogintiliun',
[91] = 'nonagintiliun',
[101] = 'sentiliun',
[102] = 'unsentiliun',
[103] = 'duosentillion',
[104] = 'tresentiliun',
[111] = 'desisentiliun',
[112] = 'undesisentiliun',
[121] = 'vigintisentiliun',
[122] = 'unvigintisentiliun',
[131] = 'trigintasentiliun',
[141] = 'quadragintasentiliun',
[151] = 'quinquagintasentiliun',
[161] = 'sexagintasentiliun',
[171] = 'septuagintasentiliun',
[181] = 'octogintasentiliun',
[191] = 'nonagintasentiliun',
[201] = 'ducentillion',
[301] = 'trecentillion',
[401] = 'quadringentillion',
[501] = 'quingentillion',
[601] = 'sescentillion',
[701] = 'septingentillion',
[801] = 'octingentillion',
[901] = 'nongentillion',
[1001] = 'millinillion',
}
local roman_numerals = {
I = 1,
V = 5,
X = 10,
L = 50,
C = 100,
D = 500,
M = 1000
}
local indord_tens_end = {
['kedua puluh'] = 20,
['ketiga puluh'] = 30,
['keempat puluh'] = 40,
['kelima puluh'] = 50,
['keenam puluh'] = 60,
['ketujuh puluh'] = 70,
['kedelapan puluh'] = 80,
['kesembilan puluh'] = 90,
}
local ind_tens_cont = {
['dua puluh'] = 20,
['tiga puluh'] = 30,
['empat puluh'] = 40,
['lima puluh'] = 50,
['enam puluh'] = 60,
['tujuh puluh'] = 70,
['delapan puluh'] = 80,
['sembilan puluh'] = 90,
}
-- Mengubah suatu angka Romawi valid (atau beberapa yang invalid) menjadi suatu angka. Memberikan -1, errorstring kalau error
local function roman_to_numeral(roman)
if type(roman) ~= "string" then return -1, "angka Romawi bukan suatu string" end
local rev = roman:reverse()
local raising = true
local last = 0
local result = 0
for i = 1, #rev do
local c = rev:sub(i, i)
local next = roman_numerals[c]
if next == nil then return -1, "angka Romawi memuat kesalahan karakter" .. c end
if next > last then
result = result + next
raising = true
elseif next < last then
result = result - next
raising = false
elseif raising then
result = result + next
else
result = result - next
end
last = next
end
return result
end
-- Mengubah suatu bilangan bulat antara 0 dan 100 ke dalam bahasa Indonesia (misalnya 47 -> empat puluh tujuh)
local function numeral_to_indonesian_less_100(num, ordinal, plural, zero)
local terminal_ones, terminal_tens
if ordinal then
terminal_ones = ones_position_ord
terminal_tens = tens_position_ord
elseif plural then
terminal_ones = ones_position_plural
terminal_tens = tens_position_plural
else
terminal_ones = ones_position
terminal_tens = tens_position
end
if num == 0 and zero ~= nil then
return zero
elseif num < 20 then
return terminal_ones[num]
elseif num % 10 == 0 then
return terminal_tens[num / 10]
else
return tens_position[math.floor(num / 10)] .. '-' .. terminal_ones[num % 10]
end
end
local function standard_suffix(ordinal, plural)
if ordinal then return 'th' end
if plural then return 's' end
return ''
end
-- Mengubah suatu bilangan bulat (dalam bentuk kata-kata) antara 0 dan 1000 ke dalam bahasa Indonesia (misalnya 47 -> empat puluh tujuh)
local function numeral_to_indonesian_less_1000(num, use_and, ordinal, plural, zero)
num = tonumber(num)
if num < 100 then
return numeral_to_indonesian_less_100(num, ordinal, plural, zero)
elseif num % 100 == 0 then
return ones_position[num/100] .. ' hundred' .. standard_suffix(ordinal, plural)
else
return ones_position[math.floor(num/100)] .. ' hundred ' .. (use_and and 'and ' or '') .. numeral_to_indonesian_less_100(num % 100, ordinal, plural, zero)
end
end
-- Converts an ordinal in indonesian text from 'zeroth' to 'ninety-ninth' inclusive to a number [0–99], else -1.
local function indonesian_to_ordinal(indonesian)
local ind = string.lower(indonesian or '')
local indord_lt20 = {} -- ones_position_ord{} keys & values swapped
for k, v in pairs( ones_position_ord ) do
indord_lt20[v] = k
end
if indord_lt20[ind] then
return indord_lt20[ind] -- e.g. first -> 1
elseif indord_tens_end[ind] then
return indord_tens_end[ind] -- e.g. ninetieth -> 90
else
local tens, ones = string.match(ind, '^([a-z]+)[%s%-]+([a-z]+)$')
if tens and ones then
local tens_cont = ind_tens_cont[tens]
local ones_end = indord_lt20[ones]
if tens_cont and ones_end then
return tens_cont + ones_end -- e.g. ninety-ninth -> 99
end
end
end
return -1 -- Failed
end
-- Mengubah angka ke dalam bahasa Indonesia mulai 'nol' hingga 'sembilan puluh sembilan' [0–99], sebaliknya -1.
local function indonesian_to_numeral(indonesian)
local ind = string.lower(indonesian or '')
local ind_lt20 = { ['single'] = 1 } -- ones_position{} keys & values swapped
for k, v in pairs( ones_position ) do
ind_lt20[v] = k
end
if ind_lt20[ind] then
return ind_lt20[ind] -- e.g. one -> 1
elseif ind_tens_cont[ind] then
return ind_tens_cont[ind] -- e.g. ninety -> 90
else
local tens, ones = string.match(ind, '^([a-z]+)[%s%-]+([a-z]+)$')
if tens and ones then
local tens_cont = ind_tens_cont[tens]
local ones_end = ind_lt20[ones]
if tens_cont and ones_end then
return tens_cont + ones_end -- e.g. ninety-nine -> 99
end
end
end
return -1 -- Failed
end
-- Converts a number expressed as a string in scientific notation to a string in standard decimal notation
-- e.g. 1.23E5 -> 123000, 1.23E-5 = .0000123. Conversion is exact, no rounding is performed.
local function scientific_notation_to_decimal(num)
local exponent, subs = num:gsub("^%-?%d*%.?%d*%-?[Ee]([+%-]?%d+)$", "%1")
if subs == 0 then return num end -- Input bukan dalam notasi ilmiah, tidak ada perubahan
exponent = tonumber(exponent)
local negative = num:find("^%-")
local _, decimal_pos = num:find("%.")
-- Mantissa will consist of all decimal digits with no decimal point
local mantissa = num:gsub("^%-?(%d*)%.?(%d*)%-?[Ee][+%-]?%d+$", "%1%2")
if negative and decimal_pos then decimal_pos = decimal_pos - 1 end
if not decimal_pos then decimal_pos = #mantissa + 1 end
-- Remove leading zeros unless decimal point is in first position
while decimal_pos > 1 and mantissa:sub(1,1) == '0' do
mantissa = mantissa:sub(2)
decimal_pos = decimal_pos - 1
end
-- Shift decimal point right for exponent > 0
while exponent > 0 do
decimal_pos = decimal_pos + 1
exponent = exponent - 1
if decimal_pos > #mantissa + 1 then mantissa = mantissa .. '0' end
-- Remove leading zeros unless decimal point is in first position
while decimal_pos > 1 and mantissa:sub(1,1) == '0' do
mantissa = mantissa:sub(2)
decimal_pos = decimal_pos - 1
end
end
-- Shift decimal point left for exponent < 0
while exponent < 0 do
if decimal_pos == 1 then
mantissa = '0' .. mantissa
else
decimal_pos = decimal_pos - 1
end
exponent = exponent + 1
end
-- Insert decimal point in correct position and return
return (negative and '-' or '') .. mantissa:sub(1, decimal_pos - 1) .. '.' .. mantissa:sub(decimal_pos)
end
-- Rounds a number to the nearest integer (NOT USED)
local function round_num(x)
if x%1 >= 0.5 then
return math.ceil(x)
else
return math.floor(x)
end
end
-- Rounds a number to the nearest two-word number (round = up, down, or "on" for round to nearest).
-- Numbers with two digits before the decimal will be rounded to an integer as specified by round.
-- Larger numbers will be rounded to a number with only one nonzero digit in front and all other digits zero.
-- Negative sign is preserved and does not count towards word limit.
local function round_for_indonesian(num, round)
-- If an integer with at most two digits, just return
if num:find("^%-?%d?%d%.?$") then return num end
local negative = num:find("^%-")
if negative then
-- We're rounding magnitude so flip it
if round == 'up' then round = 'down' elseif round == 'down' then round = 'up' end
end
-- If at most two digits before decimal, round to integer and return
local _, _, small_int, trailing_digits, round_digit = num:find("^%-?(%d?%d?)%.((%d)%d*)$")
if small_int then
if small_int == '' then small_int = '0' end
if (round == 'up' and trailing_digits:find('[1-9]')) or (round == 'on' and tonumber(round_digit) >= 5) then
small_int = tostring(tonumber(small_int) + 1)
end
return (negative and '-' or '') .. small_int
end
-- When rounding up, any number with > 1 nonzero digit will round up (e.g. 1000000.001 rounds up to 2000000)
local nonzero_digits = 0
for digit in num:gfind("[1-9]") do
nonzero_digits = nonzero_digits + 1
end
num = num:gsub("%.%d*$", "") -- Remove decimal part
-- Second digit used to determine which way to round lead digit
local _, _, lead_digit, round_digit, round_digit_2, rest = num:find("^%-?(%d)(%d)(%d)(%d*)$")
if tonumber(lead_digit .. round_digit) < 20 and (1 + #rest) % 3 == 0 then
-- In indonesian numbers < 20 are one word so put 2 digits in lead and round based on 3rd
lead_digit = lead_digit .. round_digit
round_digit = round_digit_2
else
rest = round_digit_2 .. rest
end
if (round == 'up' and nonzero_digits > 1) or (round == 'on' and tonumber(round_digit) >= 5) then
lead_digit = tostring(tonumber(lead_digit) + 1)
end
-- All digits but lead digit will turn to zero
rest = rest:gsub("%d", "0")
return (negative and '-' or '') .. lead_digit .. '0' .. rest
end
local denominators = {
[2] = { 'perdua' },
[3] = { 'pertiga' },
[4] = { 'perempat' },
[5] = { 'perlima' },
[6] = { 'perenam' },
[8] = { 'pertujuh' },
[9] = { 'persembilan' },
[10] = { 'persepuluh' },
[16] = { 'perenambelas' },
}
-- Return status, fraction where:
-- status is a string:
-- "finished" if there is a fraction with no whole number;
-- "ok" if fraction is empty or valid;
-- "unsupported" if bad fraction;
-- fraction is a string giving (numerator / denominator) as indonesian text, or is "".
-- Only unsigned fractions with a very limited range of values are supported,
-- except that if whole is empty, the numerator can use "-" to indicate negative.
-- whole (string or nil): nil or "" if no number before the fraction
-- numerator (string or nil): numerator, if any (default = 1 if a denominator is given)
-- denominator (string or nil): denominator, if any
-- sp_us (boolean): true if sp=us
-- negative_word (string): word to use for negative sign, if whole is empty
-- use_one (boolean): false: 2+1/2 → "two and a half"; true: "two and one-half"
local function fraction_to_indonesian(whole, numerator, denominator, sp_us, negative_word, use_one)
if numerator or denominator then
local finished = (whole == nil or whole == '')
local sign = ''
if numerator then
if finished and numerator:sub(1, 1) == '-' then
numerator = numerator:sub(2)
sign = negative_word .. ' '
end
else
numerator = '1'
end
if not numerator:match('^%d+$') or not denominator or not denominator:match('^%d+$') then
return 'unsupported', ''
end
numerator = tonumber(numerator)
denominator = tonumber(denominator)
local dendata = denominators[denominator]
if not (dendata and 1 <= numerator and numerator <= 99) then
return 'unsupported', ''
end
local numstr, denstr
local sep = '-'
if numerator == 1 then
denstr = sp_us and dendata.us or dendata[1]
if finished or use_one then
numstr = 'one'
elseif denstr:match('^[aeiou]') then
numstr = 'an'
sep = ' '
else
numstr = 'a'
sep = ' '
end
else
numstr = numeral_to_indonesian_less_100(numerator)
denstr = dendata.plural
if not denstr then
denstr = (sp_us and dendata.us or dendata[1]) .. 's'
end
end
if finished then
return 'finished', sign .. numstr .. sep .. denstr
end
return 'ok', ' and ' .. numstr .. sep .. denstr
end
return 'ok', ''
end
-- Takes a decimal number and converts it to indonesian text.
-- Return nil if a fraction cannot be converted (only some numbers are supported for fractions).
-- num (string or nil): the number to convert.
-- Can be an arbitrarily large decimal, such as "-123456789123456789.345", and
-- can use scientific notation (e.g. "1.23E5").
-- May fail for very large numbers not listed in "groups" such as "1E4000".
-- num is nil if there is no whole number before a fraction.
-- numerator (string or nil): numerator of fraction (nil if no fraction)
-- denominator (string or nil): denominator of fraction (nil if no fraction)
-- capitalize (boolean): whether to capitalize the result (e.g. 'One' instead of 'one')
-- use_and (boolean): whether to use the word 'and' between tens/ones place and higher places
-- hyphenate (boolean): whether to hyphenate all words in the result, useful as an adjective
-- ordinal (boolean): whether to produce an ordinal (e.g. 'first' instead of 'one')
-- plural (boolean): whether to pluralize the resulting number
-- links: nil: do not add any links; 'on': link "billion" and larger to Orders of magnitude article;
-- any other text: list of numbers to link (e.g. "billion,quadrillion")
-- negative_word: word to use for negative sign (typically 'negative' or 'minus'; nil to use default)
-- round: nil or '': no rounding; 'on': round to nearest two-word number; 'up'/'down': round up/down to two-word number
-- zero: word to use for value '0' (nil to use default)
-- use_one (boolean): false: 2+1/2 → "two and a half"; true: "two and one-half"
local function _numeral_to_indonesian(num, numerator, denominator, capitalize, use_and, hyphenate, ordinal, plural, links, negative_word, round, zero, use_one)
if not negative_word then
if use_and then
-- TODO Should 'minus' be used when do not have sp=us?
-- If so, need to update testcases, and need to fix "minus zero".
-- negative_word = 'minus'
negative_word = 'negative'
else
negative_word = 'negative'
end
end
local status, fraction_text = fraction_to_indonesian(num, numerator, denominator, not use_and, negative_word, use_one)
if status == 'unsupported' then
return nil
end
if status == 'finished' then
-- Input is a fraction with no whole number.
-- Hack to avoid executing stuff that depends on num being a number.
local s = fraction_text
if hyphenate then s = s:gsub("%s", "-") end
if capitalize then s = s:gsub("^%l", string.upper) end
return s
end
num = scientific_notation_to_decimal(num)
if round and round ~= '' then
if round ~= 'on' and round ~= 'up' and round ~= 'down' then
error("Invalid rounding mode")
end
num = round_for_indonesian(num, round)
end
-- Separate into negative sign, num (digits before decimal), decimal_places (digits after decimal)
local MINUS = '−' -- Unicode U+2212 MINUS SIGN (may be in values from [[Modul:Convert]])
if num:sub(1, #MINUS) == MINUS then
num = '-' .. num:sub(#MINUS + 1) -- replace MINUS with '-'
elseif num:sub(1, 1) == '+' then
num = num:sub(2) -- ignore any '+'
end
local negative = num:find("^%-")
local decimal_places, subs = num:gsub("^%-?%d*%.(%d+)$", "%1")
if subs == 0 then decimal_places = nil end
num, subs = num:gsub("^%-?(%d*)%.?%d*$", "%1")
if num == '' and decimal_places then num = '0' end
if subs == 0 or num == '' then error("Invalid decimal numeral") end
-- For each group of 3 digits except the last one, print with appropriate group name (e.g. million)
local s = ''
while #num > 3 do
if s ~= '' then s = s .. ' ' end
local group_num = math.floor((#num - 1) / 3)
local group = groups[group_num]
local group_digits = #num - group_num*3
s = s .. numeral_to_indonesian_less_1000(num:sub(1, group_digits), false, false, false, zero) .. ' '
if links and (((links == 'on' and group_num >= 3) or links:find(group)) and group_num <= 13) then
s = s .. '[[Orders_of_magnitude_(numbers)#10' .. group_num*3 .. '|' .. group .. ']]'
else
s = s .. group
end
num = num:sub(1 + group_digits)
num = num:gsub("^0*", "") -- Trim leading zeros
end
-- Handle final three digits of integer part
if s ~= '' and num ~= '' then
if #num <= 2 and use_and then
s = s .. ' and '
else
s = s .. ' '
end
end
if s == '' or num ~= '' then
s = s .. numeral_to_indonesian_less_1000(num, use_and, ordinal, plural, zero)
elseif ordinal or plural then
-- Round numbers like "one million" take standard suffixes for ordinal/plural
s = s .. standard_suffix(ordinal, plural)
end
-- For decimal places (if any) output "point" followed by spelling out digit by digit
if decimal_places then
s = s .. ' point'
for i = 1, #decimal_places do
s = s .. ' ' .. ones_position[tonumber(decimal_places:sub(i,i))]
end
end
s = s:gsub("^%s*(.-)%s*$", "%1") -- Trim whitespace
if ordinal and plural then s = s .. 's' end -- s suffix works for all ordinals
if negative and s ~= zero then s = negative_word .. ' ' .. s end
s = s:gsub("negative zero", "zero")
s = s .. fraction_text
if hyphenate then s = s:gsub("%s", "-") end
if capitalize then s = s:gsub("^%l", string.upper) end
return s
end
local function _numeral_to_indonesian2(args)
local num = tostring(args.num)
num = num:gsub("^%s*(.-)%s*$", "%1") -- Trim whitespace
num = num:gsub(",", "") -- Remove commas
num = num:gsub("^<span[^<>]*></span>", "") -- Generated by Template:age
if num ~= '' then -- a fraction may have an empty whole number
if not num:find("^%-?%d*%.?%d*%-?[Ee]?[+%-]?%d*$") then
-- Input not in a valid format, try to eval it as an expr to see
-- if that produces a number (e.g. "3 + 5" will become "8").
local noerr, result = pcall(mw.ext.ParserFunctions.expr, num)
if noerr then
num = result
end
end
end
-- Pass args from frame to helper function
return _numeral_to_indonesian(
num,
args['numerator'],
args['denominator'],
args['capitalize'],
args['use_and'],
args['hyphenate'],
args['ordinal'],
args['plural'],
args['links'],
args['negative_word'],
args['round'],
args['zero'],
args['use_one']
) or ''
end
local p = { -- Functions that can be called from another module
roman_to_numeral = roman_to_numeral,
spell_number = _numeral_to_indonesian,
spell_number2 = _numeral_to_indonesian2,
indonesian_to_ordinal = indonesian_to_ordinal,
indonesian_to_numeral = indonesian_to_numeral,
}
function p._roman_to_numeral(frame) -- Callable via {{#invoke:ConvertNumeric|_roman_to_numeral|VI}}
return roman_to_numeral(frame.args[1])
end
function p._indonesian_to_ordinal(frame) -- callable via {{#invoke:ConvertNumeric|_indonesian_to_ordinal|First}}
return indonesian_to_ordinal(frame.args[1])
end
function p._indonesian_to_numeral(frame) -- callable via {{#invoke:ConvertNumeric|_indonesian_to_numeral|One}}
return indonesian_to_numeral(frame.args[1])
end
function p.numeral_to_indonesian(frame)
local args = frame.args
-- Tail call to helper function passing args from frame
return _numeral_to_indonesian2{
['num'] = args[1],
['numerator'] = args['numerator'],
['denominator'] = args['denominator'],
['capitalize'] = args['case'] == 'U' or args['case'] == 'u',
['use_and'] = args['sp'] ~= 'us',
['hyphenate'] = args['adj'] == 'on',
['ordinal'] = args['ord'] == 'on',
['plural'] = args['pl'] == 'on',
['links'] = args['lk'],
['negative_word'] = args['negative'],
['round'] = args['round'],
['zero'] = args['zero'],
['use_one'] = args['one'] == 'one' -- experiment: using '|one=one' makes fraction 2+1/2 give "two and one-half" instead of "two and a half"
}
end
---- recursive function for p.decToHex
local function decToHexDigit(dec)
local dig = {"0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F"}
local div = math.floor(dec/16)
local mod = dec-(16*div)
if div >= 1 then return decToHexDigit(div)..dig[mod+1] else return dig[mod+1] end
end -- I think this is supposed to be done with a tail call but first I want something that works at all
---- finds all the decimal numbers in the input text and hexes each of them
function p.decToHex(frame)
local args=frame.args
local parent=frame.getParent(frame)
local pargs={}
if parent then pargs=parent.args end
local text=args[1] or pargs[1] or ""
local minlength=args.minlength or pargs.minlength or 1
minlength=tonumber(minlength)
local prowl=mw.ustring.gmatch(text,"(.-)(%d+)")
local output=""
repeat
local chaff,dec=prowl()
if not(dec) then break end
local hex=decToHexDigit(dec)
while (mw.ustring.len(hex)<minlength) do hex="0"..hex end
output=output..chaff..hex
until false
local chaff=mw.ustring.match(text,"(%D+)$") or ""
return output..chaff
end
return p
isea5dz8n1iyxo7uwgau9ghlqbbkqmm
Modul:Coordinates
828
601
2705
2704
2024-12-03T14:16:34Z
Jon Harald Søby
20
3 revisi diimpor
2703
Scribunto
text/plain
-- Coordinate conversion procedures
-- This module is intended to replace the functionality of MapSources extension
-- designed for use both in modules and for direct invoking
-- functions for use in modules
-- toDec( coord, aDir, prec )
-- returns a decimal coordinate from decimal or deg-min-sec-letter strings
-- getDMSString( coord, prec, aDir, plus, minus, aFormat )
-- formats a decimal/dms coordinate to a deg-min-sec-letter string
-- getGeoLink( pattern, lat, long, plusLat, plusLong, minusLat, minusLong, prec, aFormat )
-- converts a complete dms geographic coordinate without reapplying the toDec function
-- getDecGeoLink( pattern, lat, long, prec )
-- converts a complete decimal geographic coordinate without reapplying the toDec function
-- Invokable functions
-- dec2dms( frame )
-- dms2dec( frame )
-- geoLink( frame )
-- documentation
local Coordinates = {
suite = 'Coordinates',
serial = '2020-08-18',
item = 7348344
}
-- module import
local ci = require( 'Module:Coordinates/i18n' )
-- module variable
local cd = {}
-- helper function getErrorMsg
-- returns error message by error number which
local function getErrorMsg( which )
if which == 'noError' or which == 0 then
return ci.errorMsg.noError
elseif which > #ci.errorMsg then
return ci.errorMsg.unknown
else
return ci.errorMsg[ which ]
end
end
-- helper function round
-- num: value to round
-- idp: number of digits after the decimal point
local function round( n, idp )
local m = 10^( idp or 0 )
if n >= 0 then
return math.floor( n * m + 0.5 ) / m
else
return math.ceil( n * m - 0.5 ) / m
end
end
-- helper function getPrecision
-- returns integer precision number
-- possible values: numbers, D, DM, DMS
-- default result: 4
local function getPrecision( prec )
local p = tonumber( prec )
if p then
p = round( p, 0 )
if p < -1 then
p = -1
elseif p > 8 then -- maximum 8 decimals
p = 8
end
return p
else
p = prec and prec:upper() or 'DMS'
if p == 'D' then
return 0
elseif p == 'DM' then
return 2
else
return 4 -- DMS = default
end
end
end
-- helper function toDMS
-- splits a decimal coordinate dec to degree, minute and second depending on the
-- precision. prec <= 0 means only degree, prec < 3 degree and minute, and so on
-- returns a result array
local function toDMS( dec, prec )
local result = { dec = 0, deg = 0, min = 0, sec = 0, sign = 1,
NS = 'N', EW = 'E', prec = getPrecision( prec ) }
local p = result.prec
result.dec = round( dec, 8 )
if result.dec < 0 then
result.sign = -1
result.NS = 'S'
result.EW = 'W'
end
local angle = math.abs( round( result.dec, p ) )
result.deg = math.floor( angle )
result.min = ( angle - result.deg ) * 60
if p > 4 then
result.sec = round( ( result.min - math.floor( result.min ) ) * 60, p - 4 )
else
result.sec = round( ( result.min - math.floor( result.min ) ) * 60 )
end
result.min = math.floor( result.min )
if result.sec >= 60 then
result.sec = result.sec - 60
result.min = result.min + 1
end
if p < 3 and result.sec >= 30 then
result.min = result.min + 1
end
if p < 3 then
result.sec = 0
end
if result.min >= 60 then
result.min = result.min - 60
result.deg = result.deg + 1
end
if p < 1 and result.min >= 30 then
result.deg = result.deg + 1
end
if p < 1 then
result.min = 0
end
return result
end
-- toDec converts decimal and hexagesimal DMS formatted coordinates to decimal
-- coordinates
-- input
-- dec: coordinate
-- prec: number of digits after the decimal point
-- aDir: lat/long directions
-- returns a result array
-- output
-- dec: decimal value
-- error: error number
-- parts: number of DMS parts, usually 1 (already decimal) ... 4
function cd.toDec( coord, aDir, prec )
local result = { dec = 0, error = 0, parts = 1 }
local s = mw.text.trim( coord )
if s == '' then
result.error = 1
return result
end
-- pretest if already a decimal
local dir = aDir or ''
local r = tonumber( s )
if r then
if dir == 'lat' and ( r < -90 or r > 90 ) then
result.error = 13
return result
elseif r <= -180 or r > 180 then
result.error = 5
return result
end
result.dec = round( r, getPrecision ( prec ) )
return result
end
s = mw.ustring.gsub( s, '[‘’′´`]', "'" )
s = s:gsub( "''", '"' )
s = mw.ustring.gsub( s, '[“”″]', '"' )
s = mw.ustring.gsub( s, '[−–—]', '-' )
s = mw.ustring.upper( mw.ustring.gsub( s, '[_/%c%s%z]', ' ' ) )
local mStr = '^[ %.%-°\'"0-9' -- string to match, illegal characters?
for key, value in pairs( ci.inputLetters ) do
mStr = mStr .. key
end
mStr = mStr .. ']+$'
if not mw.ustring.match( s, mStr ) then
result.error = 3
return result
end
s = mw.ustring.gsub( s, '(%u)', ' %1' )
s = mw.ustring.gsub( s, '%s*([°"\'])', '%1 ' )
s = mw.text.split( s, '%s' )
for i = #s, 1, -1 do
if mw.text.trim( s[ i ] ) == '' then
table.remove( s, i )
end
end
result.parts = #s
if #s < 1 or #s > 4 then
result.error = 2
return result
end
local units = { '°', "'", '"', ' ' }
local res = { 0, 0, 0, 1 } -- 1 = positive direction
local v
local l
for i = 1, #s, 1 do
v = mw.ustring.gsub( s[ i ], units[ i ], '' )
if tonumber( v ) then
if i > 3 then -- this position is for direction letter, not for number
result.error = 4
return result
end
v = tonumber( v )
if i == 1 then
if v <= -180 or v > 180 then
result.error = 5
return result
end
res[ 1 ] = v
elseif i == 2 or i == 3 then
if v < 0 or v >= 60 then
result.error = 2 + 2 * i
return result
end
if res[ i - 1 ] ~= round( res[ i - 1 ], 0 ) then
result.error = 3 + 2 * i
return result
end
res[ i ] = v
end
else -- no number
if i ~= #s then -- allowed only at the last position
result.error = 10
return result
end
if res[ 1 ] < 0 then
result.error = 11
return result
end
l = ci.inputLetters[ v ]
if mw.ustring.len( v ) ~= 1 or not l then
result.error = 3
return result
end
-- l[1]: factor
-- l[2]: lat/long
if ( dir == 'long' and l[ 2 ] ~= 'long' ) or
( dir == 'lat' and l[ 2 ] ~= 'lat' ) then
result.error = 12
return result
else
dir = l[ 2 ]
end
res[ 4 ] = l[ 1 ]
end
end
if dir == 'lat' and ( res[ 1 ] < -90 or res[ 1 ] > 90 ) then
result.error = 13
return result
end
if res[ 1 ] >= 0 then
result.dec = ( res[ 1 ] + res[ 2 ] / 60 + res[ 3 ] / 3600 ) * res[ 4 ]
else
result.dec = ( res[ 1 ] - res[ 2 ] / 60 - res[ 3 ] / 3600 ) * res[ 4 ]
end
result.dec = round( result.dec, getPrecision ( prec ) )
return result
end
-- getDMSString formats a degree-minute-second string for output in accordance
-- to a given format specification
-- input
-- coord: decimal or hexagesimal DMS coordinate
-- prec: precion of the coorninate string: D, DM, DMS
-- aDir: lat/long direction to add correct direction letters
-- plus: alternative direction string for positive directions
-- minus: alternative direction string for negative directions
-- aFormat: format array with delimiter and leadZeros values or a predefined
-- dmsFormats key. Default format key is f1.
-- outputs 3 results
-- 1: formatted string or error message for display
-- 2: decimal coordinate
-- 3: absolute decimal coordinate including the direction letter like 51.2323_N
function cd.getDMSString( coord, prec, aDir, aPlus, aMinus, aFormat )
local d = aDir or ''
local p = aPlus or ''
local m = aMinus or ''
-- format
local f = aFormat or 'f1'
if type( f ) ~= 'table' then
f = ci.dmsFormats[ f ]
end
local del = f.delimiter or ' '
local lz = f.leadZeros or false
local c = { dec = tonumber( coord ), error = 0, parts = 1 }
if not c.dec then
c = cd.toDec( coord, d, 8 )
elseif c.dec <= -180 or c.dec > 180 then
c.error = 5
elseif d == 'lat' and ( c.dec < -90 or c.dec > 90 ) then
c.error = 5
end
local l = ''
local wp = ''
local result = ''
if c.error == 0 then
local dms = toDMS( c.dec, prec )
if dms.dec < 0 and d == '' and m == '' then
dms.deg = -dms.deg
end
if lz and dms.min < 10 then
dms.min = '0' .. dms.min
end
if lz and dms.sec < 10 then
dms.sec = '0' .. dms.sec
end
result = dms.deg .. '°'
if dms.prec > 0 then
if ((dms.sec ~= '00') and (dms.sec ~= '0') and (dms.sec ~= 0)) or ((dms.min ~= '00') and (dms.min ~= '0') and (dms.min ~= 0)) then
result = result .. del .. dms.min .. '′'
end
end
if dms.prec > 2 and dms.prec < 5 then
if (dms.sec ~= '00') and (dms.sec ~= '0') and (dms.sec ~= 0) then
result = result .. del .. dms.sec .. '″'
end
end
if dms.prec > 4 then
-- enforce sec decimal digits even if zero
local s = string.format( "%." .. dms.prec - 4 .. "f″", dms.sec )
if ci.decimalPoint ~= '.' then
s = mw.ustring.gsub( s, '%.', ci.decimalPoint )
end
result = result .. del .. s
end
if d == 'lat' then
wp = dms.NS
elseif d == 'long' then
wp = dms.EW
end
if dms.dec >= 0 and p ~= '' then
l = p
elseif dms.dec < 0 and m ~= '' then
l = m
else
l = ci.outputLetters[ wp ]
end
if l and l ~= '' then
result = result .. del .. l
end
if c.parts > 1 then
result = result .. ci.categories.dms
end
return result--, dms.dec, math.abs( dms.dec ) .. '_' .. wp
else
if d == 'lat' then
wp = 'N'
elseif d == 'long' then
wp = 'E'
end
result = '<span class="error" title="' .. getErrorMsg( c.error ) ..'">'
.. ci.errorMsg.faulty .. '</span>' .. ci.categories.faulty
return result, '0', '0_' .. wp
end
return result
end
-- getGeoLink returns complete dms geographic coordinate without reapplying the toDec
-- and toDMS functions. Pattern can contain placeholders $1 ... $6
-- $1: latitude in Wikipedia syntax including the direction letter like 51.2323_N
-- $2: longitude in Wikipedia syntax including the direction letter like 51.2323_E
-- $3: latitude in degree, minute and second format considering the strings for
-- the cardinal directions and the precision
-- $4: longitude in degree, minute and second format considering the strings
-- for the cardinal directions and the precision
-- $5: latitude
-- $6: longitude
-- aFormat: format array with delimiter and leadZeros values or a predefined
-- dmsFormats key. Default format key is f1.
-- outputs 3 results
-- 1: formatted string or error message for display
-- 2: decimal latitude
-- 3: decimal longitude
function cd.getGeoLink( pattern, lat, long, plusLat, plusLong, minusLat,
minusLong, prec, aFormat )
local lat_s, lat_dec, lat_wp =
cd.getDMSString( lat, prec, 'lat', plusLat, minusLat, aFormat )
local long_s, long_dec, long_wp =
cd.getDMSString( long, prec, 'long', plusLong, minusLong, aFormat )
local s = pattern
s = mw.ustring.gsub( s, '($1)', lat_wp )
s = mw.ustring.gsub( s, '($2)', long_wp )
s = mw.ustring.gsub( s, '($3)', lat_s )
s = mw.ustring.gsub( s, '($4)', long_s )
s = mw.ustring.gsub( s, '($5)', lat_dec )
s = mw.ustring.gsub( s, '($6)', long_dec )
return s, lat_dec, long_dec
end
-- getDecGeoLink returns complete decimal geographic coordinate without reapplying
-- the toDec function. Pattern can contain placeholders $1 ... $4
function cd.getDecGeoLink( pattern, lat, long, prec )
local function getDec( coord, prec, aDir, aPlus, aMinus )
local l = aPlus
local c = cd.toDec( coord, aDir, 8 )
if c.error == 0 then
if c.dec < 0 then
l = aMinus
end
local d = round( c.dec, prec ) .. ''
if ci.decimalPoint ~= '.' then
d = mw.ustring.gsub( d, '%.', ci.decimalPoint )
end
return d, math.abs( c.dec ) .. '_' .. l
else
c.dec = '<span class="error" title="' .. getErrorMsg( c.error ) ..'">'
.. ci.errorMsg.faulty .. '</span>' .. ci.categories.faulty
return c.dec, '0_' .. l
end
end
local lat_dec, lat_wp = getDec( lat, prec, 'lat', 'N', 'S' )
local long_dec, long_wp = getDec( long, prec, 'long', 'E', 'W' )
local s = pattern
s = mw.ustring.gsub( s, '($1)', lat_wp)
s = mw.ustring.gsub( s, '($2)', long_wp)
s = mw.ustring.gsub( s, '($3)', lat_dec)
s = mw.ustring.gsub( s, '($4)', long_dec)
return s, lat_dec, long_dec
end
-- Invokable functions
-- identical to MapSources #dd2dms tag
-- frame input
-- 1 or coord: decimal or hexagesimal coordinate
-- precision: precion of the coorninate string: D, DM, DMS
-- plus: alternative direction string for positive directions
-- minus: alternative direction string for negative directions
-- format: Predefined dmsFormats key. Default format key is f1.
function cd.dec2dms( frame )
local args = frame:getParent().args
args.coord = args[ 1 ] or args.coord or ''
args.precision = args[ 2 ] or args.precision or ''
return cd.getDMSString( args.coord, args.precision, '',
args.plus, args.minus, args.format )
end
-- identical to MapSources #deg2dd tag
function cd.dms2dec( frame )
local args = frame:getParent().args
args.coord = args[ 1 ] or args.coord or ''
args.precision = args[ 2 ] or args.precision or ''
local r = cd.toDec( args.coord, '', args.precision )
local s = r.dec
if r.error ~= 0 then
if args.coord == '' then
s = ci.categories.faulty
else
s = '<span class="error" title="' .. getErrorMsg( r.error ) ..'">'
.. ci.errorMsg.faulty .. '</span>' .. ci.categories.faulty
end
end
return s
end
-- identical to MapSources #geoLink tag
-- This function can be extended to add Extension:GeoData #coordinates because
-- cd.getGeoLink returns lat and long, too
function cd.geoLink( frame )
local args = frame:getParent().args
args.pattern = args[ 1 ] or args.pattern or ''
if args.pattern == '' then
return errorMsg[ 14 ]
end
return cd.getGeoLink( args.pattern, args.lat, args.long,
args.plusLat, args.plusLong, args.minusLat, args.minusLong,
args.precision, args.format )
end
return cd
mgwnakun0tcgwda4z6jbju3nbzycyer
Modul:Coordinates/i18n
828
602
2708
2707
2024-12-03T14:16:34Z
Jon Harald Søby
20
2 revisi diimpor
2707
Scribunto
text/plain
-- Separating code from internationalization
return {
-- internationalisation
errorMsg = {
'No parameter(s)', -- 1: no parameter(s)
'Too many parameters', -- 2: too many parameters
'Illegal characters', -- 3: illegal characters
'More than 3 numeric dms parameters', -- 4: more than 3 numeric dms parameters
'Degree out of range', -- 5: degree out of range
'Minute out of range', -- 6: minute out of range
'Degree no integer', -- 7: degree no integer
'Second out of range', -- 8: second out of range
'Minute no integer', -- 9: minute no integer
'Direction not last parameter', -- 10: direction not last parameter
'Invalid negative value', -- 11: invalid negative value
'Wrong lat/long direction', -- 12: wrong lat/long direction
'Latitude out of range', -- 13: latitude out of range
'No pattern given', -- 14: no pattern given
noError = 'No Error', -- no Error
unknown = 'Unknown error', -- unknown error
faulty = 'Faulty coordinate' -- faulty coordinate
},
-- maintenance categories
categories = {
faulty = '[[Kategori:Halaman dengan format tag koordinat yang salah]]',
-- faulty coordinate
-- same as defined in [[MediaWiki:Geodata-broken-tags-category]]
dms = ''--'[[Kategori:DMS coordinate]]'
-- coordinate given as dms, not as decimal
},
-- for input
-- de: O = E -> +1
-- it, fr: O = W -> -1
inputLetters = {
N = { 1, 'lat' },
S = { -1, 'lat' },
E = { 1, 'long' },
W = { -1, 'long' },
},
-- for output
outputLetters = { N = 'N', S = 'S', E = 'E', W = 'W' },
decimalPoint = '.',
-- predefined deg-min-sec output formats
dmsFormats = {
f1 = { delimiter = ' ', leadZeros = false }, -- default
f2 = { delimiter = ' ', leadZeros = true },
f3 = { delimiter = '', leadZeros = false },
f4 = { delimiter = '', leadZeros = true }
}
}
29qe3114tczz25qnfo9hlr5vi6d1pce
Modul:CountryData
828
603
2710
2709
2024-12-03T14:16:34Z
Jon Harald Søby
20
1 revisi diimpor
2709
Scribunto
text/plain
--[[
Source script: https://it.wikivoyage.org/wiki/Modulo:CountryData
Maintainer: Andyrom75
]]
local fw = require( 'Module:FastWikidata' )
local getArgs = require('Module:Arguments').getArgs
local debugMode = ''
local cents = { -- known cents symbols
['ALL'] = 'q',
['AUD'] = 'c',
['BTN'] = 'Ch.',
['CAD'] = '¢',
['CZK'] = 'h',
['EGP'] = 'pt.',
['EUR'] = 'c',
['GBP'] = 'p',
['HRK'] = 'lp',
['MXN'] = '¢',
['NZD'] = 'c',
['PLN'] = 'gr',
['TOP'] = '¢',
['USD'] = '¢',
['XOF'] = 'c',
['ZAR'] = 'c'
}
local function _is_defined(s)
if s and s ~= '' then return s end
return nil
end
local function _getAdministrativeEntity( entity )
local id = nil
local i, w
if entity then
-- located in the administrative territorial entity
-- IMPORTANT NOTE: evaulate a recursive function to find the exact territorial entity (maybe with a deep limit)
w = fw.getBestStatements( entity, 'P131' )
if #w > 0 then
for i = 1, #w, 1 do
if w[ i ].mainsnak.snaktype == 'value' then
id = w[ i ].mainsnak.datavalue.value.id
end
end
end
end
return id
end
local function _getCountryEntity( entity )
local id = nil
local i, w
if entity then
w = fw.getValues( entity, 'P17', nil ) -- country
if #w > 0 then
for i = 1, #w, 1 do
id = w[ i ].id
end
end
end
return id
end
function _getEntityData( currentEntity )
local entityData = {
id = '',
iso_3166 = '',
cc = '',
lc = '',
currency = '',
currency_symbol = ''
}
-- getting data from country entity
if currentEntity then
entityData.cc = fw.getValue( currentEntity, 'P474' ) -- country calling code
local currencyEntity = fw.getId( currentEntity, 'P38' ) -- currency id
if not _is_defined(entityData.cc) or not _is_defined(currencyEntity) then
return entityData
end
if currencyEntity ~= '' then
entityData.currency = fw.getValue( currencyEntity, 'P498' ):upper() -- ISO 4217
entityData.currency_symbol = fw.getValuesWithLanguages( currencyEntity, 'P5061' ) --
entityData.currency_symbol = entityData.currency_symbol['mul']
end
entityData.iso_3166 = fw.getValue( currentEntity, 'P297' ):upper() --three-letter country identifier
else
return entityData
end
entityData.id = currentEntity
return entityData
end
function _getCountryData( entity )
local entityData = {}
entityData = _getEntityData(entity) --current or requested EntityData
if entityData.id == '' then
entityData = _getEntityData(_getAdministrativeEntity(entity)) --administrativeEntityData
if entityData.id == '' then
entityData = _getEntityData(_getCountryEntity(entity)) --countryEntityData
end
end
entityData.lc = fw.getValue( entity, 'P473' ) -- local dialing code
return entityData
end
local p = {}
function p._countryData2HTML( entity )
if entity == nil then --check externally requested entity
entity = mw.wikibase.getEntityIdForCurrentPage() --current entity
if entity == nil then
return nil
end
end
mw.log('entity: ' .. entity)
local countryData = _getCountryData( entity )
local currency = countryData.currency
if( countryData.currency_symbol ) then
if( currency and #currency>0 ) then
currency = currency .. ', '
end
currency = currency .. countryData.currency_symbol
end
if( cents[countryData.currency] ) then
if( currency and #currency>0 ) then
currency = currency .. ', '
end
currency = currency .. cents[countryData.currency]
end
return (debugMode == "YES" and "<" or "<") .. 'span class="countryData" data-country-calling-code="'.. countryData.cc ..'" data-local-dialing-code="'.. countryData.lc ..'" data-currency="'.. currency ..'" style="display:none;"></span>'
end
function p.countryData2HTML( frame )
local args = getArgs(frame)
local entity = args[1]
debugMode = args['debug']
return p._countryData2HTML(entity)
end
return p
e7ezjm3nvhk7g48czjlks4erezcl5k7
Modul:Date
828
604
2712
2711
2024-12-03T14:16:34Z
Jon Harald Søby
20
1 revisi diimpor
2711
Scribunto
text/plain
--[[
This module is intended for processing of date strings.
Please do not modify this code without applying the changes first at Module:Date/sandbox and testing
at Module:Date/sandbox/testcases and Module talk:Date/sandbox/testcases.
Authors and maintainers:
* User:Parent5446 - original version of the function mimicking template:ISOdate
* User:Jarekt - original version of the functions mimicking template:Date and template:ISOyear
]]
local p = {}
-- =======================================
-- === Dependencies ======================
-- =======================================
local i18n = require('Module:I18n/date') -- get localized translations of date formats
local yesno = require('Module:Yesno')
local function langSwitch(list,lang)
local langList = mw.language.getFallbacksFor(lang)
table.insert(langList,1,lang)
for i,language in ipairs(langList) do
if list[language] then
return list[language]
end
end
end
--[[
Date
This function is the core part of the ISOdate template.
Usage:
{{#invoke:Date|Date|year=|month=|day=|hour=|minute=|second=|tzhour=|tzmin=|lang=en}}
Parameters:
year,month,day,hour,minute,second: broken down date-time component strings
tzhour, tzmin: timezone offset from UTC, hours and minutes
lang: The language to display it in
case: Language format (genitive, etc.) for some languages
class: CSS class for the <time> node, use "" for no metadata at all
Error Handling:
]]
function p.Date(frame)
local args = frame.args
if not (args.lang and mw.language.isSupportedLanguage(args.lang)) then
args.lang = frame:callParserFunction( "int", "lang" ) -- get user's chosen language
end
return p._Date(
{
args.year or '',
args.month or '',
args.day or '',
args.hour or '',
args.minute or '',
args.second or '',
args.tzhour or '',
args.tzmin or ''
},
args.lang, -- language
args.case or '', -- allows to specify grammatical case for the month for languages that use them
args.class or 'dtstart', -- allows to set the html class of the time node where the date is included. This is useful for microformats.
args.trim_year or '100-999' -- by default pad one and 2 digit years to be 4 digit long, while keeping 3 digit years as is
)
end
function p._Date(datevec, lang, case, class, trim_year)
-- make sure inputs are in the right format
for i = #datevec + 1, 8 do
datevec[i] = ''
end
if not case then case = '' end
if not class then class = '' end
if not trim_year then trim_year = '100-999' end
-- if language is not provided than look up users language
-- WARNING: This step should be done by the template as it does not seem to work as well here (cache issues?)
if not lang or not mw.language.isValidCode( lang ) then
lang = 'en'
end
-- Just in case someone broke the internationalization code than fix the english defaults
if i18n.DateLang['en'] == nil then
i18n.DateLang['en'] = 'en-form'
end
if i18n.DateFormat['en-form'] == nil then
i18n.DateFormat['en-form'] = {YMDHMS='j F Y, H:i:s', YMDHM='j F Y, H:i', YMD='j F Y', YM='F Y', MD='j F', Y='Y'}
end
-- create datecode based on which variables are provided and check for out of bound values
local maxval = {9999, 12, 31, 23, 59, 60, 23, 59} -- max values for year, month, ...
local c = {'Y', 'M', 'D', 'H', 'M', 'S', '', ''}
local datecode = '' -- a string signifying which combination of variables was provided
local datenum = {} -- date-time encoded as a vector = [year, month, ... , second]
for i, v in ipairs( datevec ) do
if v~=nil and v~='' then
datecode = datecode .. c[i]
datenum[i] = tonumber(v)
if datenum[i]==nil and i==2 then
-- month is not a number -> check if it is a month name in English
v = mw.language.new('en'):formatDate( "n", v)
datenum[i] = tonumber(v)
end
if datenum[i]==nil or datenum[i]>maxval[i] then
-- Some numbers are out of range -> abort and return the empty string
return ''
end
end
end
-- create time stamp string (for example 2000-02-20 02:20:20) based on which variables were provided
local timeStamp
if datecode == 'YMDHMS' then
timeStamp = string.format('%04i-%02i-%02i %02i:%02i:%02i', datenum[1], datenum[2], datenum[3], datenum[4], datenum[5], datenum[6] )
elseif datecode == 'YMDHM' then
timeStamp = string.format('%04i-%02i-%02i %02i:%02i', datenum[1], datenum[2], datenum[3], datenum[4], datenum[5] )
elseif datecode:sub(1,3)=='YMD' then
timeStamp = string.format('%04i-%02i-%02i', datenum[1], datenum[2], datenum[3] )
datecode = 'YMD' -- 'YMD', 'YMDHMS' and 'YMDHM' are the only supported format starting with 'YMD'. All others will be converted to 'YMD'
elseif datecode == 'YM' then
timeStamp = string.format('%04i-%02i', datenum[1], datenum[2] )
elseif datecode:sub(1,1)=='Y' then
timeStamp = string.format('%04i', datenum[1] )
datecode = 'Y'
elseif datecode == 'M' then
timeStamp = string.format('%04i-%02i-%02i', 2000, datenum[2], 1 )
class = '' -- date not complete -> no html formating or micro-tagging of date string
elseif datecode == 'MD' then
timeStamp = string.format('%04i-%02i-%02i', 2000, datenum[2], datenum[3] )
class = '' -- date not complete -> no html formating or micro-tagging of date string
else
return '' -- format not supported
end
-- ==========================================================
-- === Create Date String using in chosen language
-- ==========================================================
-- which form should the date take?
-- Use langSwitch to pick formating for each language
local langDateForm = langSwitch(i18n.DateLang, lang)
-- special case of French and Gallic dates, which require different date format for the 1st day of the month
if datenum[3]==1 and (langDateForm=='fr-form' or langDateForm=='ga-form' or langDateForm=='ca-form') then
langDateForm = langDateForm .. '1' -- ordinal form for the first day of the month
end
-- special case of Basque dates, which require different date format for the 1st, 11th, 21st and 31st day of the month
if langDateForm=='eu-form' then
if (datenum[3]==1 or datenum[3]==21) then
langDateForm = 'eu-form01'
elseif (datenum[3]==11 or datenum[3]==31) then
langDateForm = 'eu-form11'
end
end
-- Look up country specific format input to {{#time}} function
local dFormat = i18n.DateFormat[langDateForm][datecode]
-- overwrite default grammatical case of the month (applies mostly to Slavic languages)
if (case=='gen') then
-- CAUTION: at the moment i18n.DateFormat uses "F" only as month name, but this might change and this operation does not check if 'F' is in "" brackets or not, so if some language starts using 'F' in "" than this will not work for that language
dFormat = dFormat:gsub("F", "xg");
end
if (case=='nom') then
-- CAUTION: at the moment i18n.DateFormat uses "xg" only as month name, but this might change and this operation does not check if 'xg' is in "" brackets or not, so if some language starts using 'xg' in "" than this will not work for that language
dFormat = dFormat:gsub("xg", "F");
end
if ((lang=='ru' or lang=='pl' or lang=='cs' or lang=='sl' or lang=='sk') and (case=='loc' or case=='ins')) or
(lang=='fi' and (case=='ptv' or case=='ine'or case=='ela'or case=='ill') ) then
local monthEn = mw.language.new('en'):formatDate( "F", timeStamp) -- month name in English
-- month name using proper case and language. It relies on messages stored in MediaWiki namespace for some cases and languages
-- That is why this IF statement uses "lang" not "langDateForm" variable to decide
local monthMsg = mw.message.new( string.format('%s-%s', monthEn, case ) ):inLanguage( lang )
if not monthMsg:isDisabled() then -- make sure it exists
local month=monthMsg:plain()
dFormat = dFormat:gsub('F', '"'..month..'"'); -- replace default month with month name we already looked up
dFormat = dFormat:gsub('xg', '"'..month..'"');
end
end
-- Special case related to Quechua and Kichwa languages
-- see https://commons.wikimedia.org/wiki/Template_talk:Date#Quechua from 2014
if (lang=='qu' or lang=='qug') and case=='nom' then
dFormat = dFormat:gsub('F"pi"', 'F');
end
-- Lua only date formating using {{#time}} parser function (new)
-- prefered call which gives "Lua error: too many language codes requested." on the [[Pembicaraan Modul:Date/sandbox/testcases]] page
--local datestr = mw.language.new(lang):formatDate( dFormat, timeStamp)
local datestr = mw.getCurrentFrame():callParserFunction( "#time", { dFormat, timeStamp, lang } )
-- Another special case related to Thai solar calendar
if lang=='th' and datenum[1]~= nil and datenum[1]<=1940 then
-- As of 2014 {{#time}} parser function did not resolve those cases properly
-- See https://en.wikipedia.org/wiki/Thai_solar_calendar#New_year for reference
-- Disable once https://bugzilla.wikimedia.org/show_bug.cgi?id=66648 is fixed
if datecode=='Y' then -- date is ambiguous
datestr = string.format('%04i หรือ %04i', datenum[1]+542, datenum[1]+543 )
elseif datenum[2]<=3 then -- year is wrong (one too many)
datestr = datestr:gsub( string.format('%04i', datenum[1]+543), string.format('%04i', datenum[1]+542 ) )
end
end
-- If year<1000 than either keep it padded to the length of 4 digits or trim it
-- decide if the year will stay padded with zeros (for years in 0-999 range)
if datenum[1]~= nil and datenum[1]<1000 then
local trim = yesno(trim_year,nil)
if trim == nil then
local YMin, YMax = trim_year:match( '(%d+)-(%d+)' )
trim = (YMin~=nil and datenum[1]>=tonumber(YMin) and datenum[1]<=tonumber(YMax))
end
-- If the date form isn't the Thai solar calendar, don't zero pad years in the range of 100-999.
-- If at some point support for Islamic/Hebrew/Japanese years is added, they may need to be skipped as well.
if trim then
--local yearStr1 = mw.language.new(lang):formatDate( 'Y', timeStamp)
local yearStr1 = mw.getCurrentFrame():callParserFunction( "#time", { 'Y', timeStamp, lang } )
--local yearStr1 = datestr:match( '%d%d%d%d' ) -- 4 digits in a row (in any language) - that must be a year
local yearStr2 = yearStr1
local zeroStr = mw.ustring.sub(yearStr1,1,1)
for i=1,3 do -- trim leading zeros
if mw.ustring.sub(yearStr2,1,1)==zeroStr then
yearStr2 = mw.ustring.sub(yearStr2, 2, 5-i)
else
break
end
end
datestr = datestr:gsub( yearStr1, yearStr2 )
--datestr = string.format('%s (%s, %s)', datestr, yearStr1, yearStr2 )
end
end
-- append timezone if present
if datevec[7] ~= '' and (datecode == 'YMDHMS' or datecode == 'YMDHM') then
local tzstr, tzhournum = '', tonumber(datevec[7])
if tzhournum < 0 then tzstr = '−' else tzstr = '+' end
tzstr = tzstr..string.format("%02d", math.abs(tzhournum))..':'
if datevec[8] ~= '' then tzstr = tzstr..datevec[8] else tzstr = tzstr..'00' end
datestr = datestr..' '..tzstr
end
-- html formating and tagging of date string
if class ~= '' then
local DateHtmlTags = '<span style="white-space:nowrap"><time class="%s" datetime="%s">%s</time></span>'
datestr = DateHtmlTags:format(class, timeStamp, datestr)
end
return datestr
end
return p
newmgss3izjy02r9yf38dxqtnkmbogr
Modul:Delink
828
605
2715
2714
2024-12-03T14:16:34Z
Jon Harald Søby
20
2 revisi diimpor
2714
Scribunto
text/plain
-- This module de-links most wikitext.
require("strict")
local p = {}
local getArgs
local function delinkReversePipeTrick(s)
if s:match("^%[%[|.*[|\n]") then -- Check for newlines or multiple pipes.
return s
end
return s:match("%[%[|(.*)%]%]")
end
local function delinkPipeTrick(s)
-- We need to deal with colons, brackets, and commas, per [[Bantuan:Pipe trick]].
-- First, remove the text before the first colon, if any.
if s:match(":") then
s = s:match("%[%[.-:(.*)|%]%]")
-- If there are no colons, grab all of the text apart from the square brackets and the pipe.
else
s = s:match("%[%[(.*)|%]%]")
end
-- Next up, brackets and commas.
if s:match("%(.-%)$") then -- Brackets trump commas.
s = s:match("(.-) ?%(.-%)$")
elseif s:match(",") then -- If there are no brackets, display only the text before the first comma.
s = s:match("(.-),.*$")
end
return s
end
-- Return wikilink target |wikilinks=target
local function getDelinkedTarget(s)
local result = s
-- Deal with the reverse pipe trick.
if result:match("%[%[|") then
return delinkReversePipeTrick(result)
end
result = mw.uri.decode(result, "PATH") -- decode percent-encoded entities. Leave underscores and plus signs.
result = mw.text.decode(result, true) -- decode HTML entities.
-- Check for bad titles. To do this we need to find the
-- title area of the link, i.e. the part before any pipes.
local target_area
if result:match("|") then -- Find if we're dealing with a piped link.
target_area = result:match("^%[%[(.-)|.*%]%]")
else
target_area = result:match("^%[%[(.-)%]%]")
end
-- Check for bad characters.
if mw.ustring.match(target_area, "[%[%]<>{}%%%c\n]") and mw.ustring.match(target_area, "[%[%]<>{}%%%c\n]") ~= "?" then
return s
end
return target_area
end
local function getDelinkedLabel(s)
local result = s
-- Deal with the reverse pipe trick.
if result:match("%[%[|") then
return delinkReversePipeTrick(result)
end
result = mw.uri.decode(result, "PATH") -- decode percent-encoded entities. Leave underscores and plus signs.
result = mw.text.decode(result, true) -- decode HTML entities.
-- Check for bad titles. To do this we need to find the
-- title area of the link, i.e. the part before any pipes.
local target_area
if result:match("|") then -- Find if we're dealing with a piped link.
target_area = result:match("^%[%[(.-)|.*%]%]")
else
target_area = result:match("^%[%[(.-)%]%]")
end
-- Check for bad characters.
if mw.ustring.match(target_area, "[%[%]<>{}%%%c\n]") and mw.ustring.match(target_area, "[%[%]<>{}%%%c\n]") ~= "?" then
return s
end
-- Check for categories, interwikis, and files.
local colon_prefix = result:match("%[%[(.-):.*%]%]") or "" -- Get the text before the first colon.
local ns = mw.site.namespaces[colon_prefix] -- see if this is a known namespace
if mw.language.isKnownLanguageTag(colon_prefix) or (ns and (ns.canonicalName == "File" or ns.canonicalName == "Category")) then
return ""
end
-- Remove the colon if the link is using the [[Bantuan:Colon trick]].
if result:match("%[%[:") then
result = "[[" .. result:match("%[%[:(.*%]%])")
end
-- Deal with links using the [[Bantuan:Pipe trick]].
if mw.ustring.match(result, "^%[%[[^|]*|%]%]") then
return delinkPipeTrick(result)
end
-- Find the display area of the wikilink
if result:match("|") then -- Find if we're dealing with a piped link.
result = result:match("^%[%[.-|(.+)%]%]")
-- Remove new lines from the display of multiline piped links,
-- where the pipe is before the first new line.
result = result:gsub("\n", "")
else
result = result:match("^%[%[(.-)%]%]")
end
return result
end
local function delinkURL(s)
-- Assume we have already delinked internal wikilinks, and that
-- we have been passed some text between two square brackets [foo].
-- If the text contains a line break it is not formatted as a URL, regardless of other content.
if s:match("\n") then
return s
end
-- Check if the text has a valid URL prefix and at least one valid URL character.
local valid_url_prefixes = {"//", "http://", "https://", "ftp://", "gopher://", "mailto:", "news:", "irc://"}
local url_prefix
for _ ,v in ipairs(valid_url_prefixes) do
if mw.ustring.match(s, '^%[' .. v ..'[^"%s].*%]' ) then
url_prefix = v
break
end
end
-- Get display text
if not url_prefix then
return s
end
s = s:match("^%[" .. url_prefix .. "(.*)%]") -- Grab all of the text after the URL prefix and before the final square bracket.
s = s:match('^.-(["<> ].*)') or "" -- Grab all of the text after the first URL separator character ("<> ).
s = mw.ustring.match(s, "^%s*(%S.*)$") or "" -- If the separating character was a space, trim it off.
local s_decoded = mw.text.decode(s, true)
if mw.ustring.match(s_decoded, "%c") then
return s
end
return s_decoded
end
local function delinkLinkClass(text, pattern, delinkFunction)
if type(text) ~= "string" then
error("Attempt to de-link non-string input.", 2)
end
if type(pattern) ~= "string" or mw.ustring.sub(pattern, 1, 1) ~= "^" then
error('Invalid pattern detected. Patterns must begin with "^".', 2)
end
-- Iterate over the text string, and replace any matched text. using the
-- delink function. We need to iterate character by character rather
-- than just use gsub, otherwise nested links aren't detected properly.
local result = ""
while text ~= "" do
-- Replace text using one iteration of gsub.
text = mw.ustring.gsub(text, pattern, delinkFunction, 1)
-- Append the left-most character to the result string.
result = result .. mw.ustring.sub(text, 1, 1)
text = mw.ustring.sub(text, 2, -1)
end
return result
end
function p._delink(args)
local text = args[1] or ""
if args.refs == "yes" then
-- Remove any [[Bantuan:Strip markers]] representing ref tags. In most situations
-- this is not a good idea - only use it if you know what you are doing!
text = mw.ustring.gsub(text, "UNIQ%w*%-ref%-%d*%-QINU", "")
end
if args.comments ~= "no" then
text = text:gsub("<!%-%-.-%-%->", "") -- Remove html comments.
end
if args.wikilinks ~= "no" and args.wikilinks ~= "target" then
-- De-link wikilinks and return the label portion of the wikilink.
text = delinkLinkClass(text, "^%[%[.-%]%]", getDelinkedLabel)
elseif args.wikilinks == "target" then
-- De-link wikilinks and return the target portions of the wikilink.
text = delinkLinkClass(text, "^%[%[.-%]%]", getDelinkedTarget)
end
if args.urls ~= "no" then
text = delinkLinkClass(text, "^%[.-%]", delinkURL) -- De-link URLs.
end
if args.whitespace ~= "no" then
-- Replace single new lines with a single space, but leave double new lines
-- and new lines only containing spaces or tabs before a second new line.
text = mw.ustring.gsub(text, "([^\n \t][ \t]*)\n([ \t]*[^\n \t])", "%1 %2")
text = text:gsub("[ \t]+", " ") -- Remove extra tabs and spaces.
end
return text
end
function p.delink(frame)
if not getArgs then
getArgs = require('Module:Arguments').getArgs
end
return p._delink(getArgs(frame, {wrappers = 'Template:Delink'}))
end
return p
c1u7jpi6o43f9bmprjiqw7kfm0whb0y
Modul:EditAtWikidata
828
606
2717
2716
2024-12-03T14:16:34Z
Jon Harald Søby
20
1 revisi diimpor
2716
Scribunto
text/plain
-- Module to display an icon with a tooltip such as "Edit this at Wikidata".
-- Icon will be linked to the Wikidata entry for the article where this is placed.
-- This message is only displayed if a local_parameter is not supplied
-- i.e. when called from a template, it can be coded not to display the message
-- when a local parameter is in use, preventing the value form Wikidata being fetched.
-- The qid of a Wikidata entry can optionally be supplied for testing outside the article.
-- Usage:
-- {{#invoke:EditAtWikidata|showMessage|local_parameter}}
-- {{#invoke:EditAtWikidata|showMessage|qid=<ArticleID>|local_parameter}}
local p = {}
local i18n =
{
["message"] = "Edit this at Wikidata"
}
p.showMessage = function(frame)
-- There may be a local parameter supplied, if it's blank, set it to nil
local local_parm = mw.text.trim(frame.args[1] or "")
if local_parm and (local_parm == "") then local_parm = nil end
-- If there is a local parameter used, we don't want to display the message
if local_parm then return nil end
-- Can take a named parameter |qid which is the Wikidata ID for the article.
-- This will not normally be used except for testing outside the article.
local qid = frame.args.qid
if qid and (qid == "") then qid = nil end
-- The module can take a parameter pid=
-- which will create a link to that property in the Wikidata entry for the article
local propertyID = mw.text.trim(frame.args.pid or "")
-- Get the object containing all the claims for the article
local entity = mw.wikibase.getEntityObject(qid)
if entity then
local thisQid
if qid then thisQid = qid else thisQid = entity.id end
return
" [[Berkas:Blue pencil.svg |frameless |text-top |10px |alt=" ..
i18n.message ..
" |link=https://www.wikidata.org/wiki/" ..
thisQid ..
(propertyID == "" and "" or ("#" .. propertyID)) ..
"|" .. i18n.message .. "]]"
end
end
return p
tizlojafmwafj0gitv74uqbb5nkome7
Modul:EmailTracking
828
607
2720
2719
2024-12-03T14:16:34Z
Jon Harald Søby
20
2 revisi diimpor
2719
Scribunto
text/plain
--[[
Source script: https://it.wikivoyage.org/wiki/Module:EmailTracking
Maintainer: Andyrom75
]]
local p = {}
function p.EmailTracking(frame)
return frame.args and p.EmailTrackingValue( frame.args.email ) or ''
end
function p.EmailTrackingValue( email, demo )
if mw.ustring.match(email or '','@.*@') then
return '[[' .. (mw.title.getCurrentTitle().namespace == 0 and '' or ':' ) .. 'Category:Daftar dengan banyak alamat surel]]<span class="phoneinfo" style="display:none;">MULTIPLE-EMAIL</span>'
end
return ''
end
return p
2iihasg4kg9slk69mbdxg8igtc9kb25
Modul:Exchangerate
828
608
2723
2722
2024-12-03T14:16:34Z
Jon Harald Søby
20
2 revisi diimpor
2721
Scribunto
text/plain
local errormsg = ('[[Kategori:Articles that use unexpected currency]]'
.. '<span class="exchangeinfo" style="display:none;" '
.. 'title="Exchange rate not found">Unexpected currency</span>'
.. 'rate not found')
local function countSigificantDigits(number)
number = string.gsub(number, '%.', '', 1)
number = mw.text.trim(number, '0')
return #number
end
local function round(num, numSigificantDigits)
local numDecimalPlaces = numSigificantDigits - math.floor(math.log10(num)) - 1
local mult = 10^(numDecimalPlaces or 0)
return math.floor(num * mult + 0.5) / mult
end
local function getTabularDataFieldNames(tabularData)
local fields = {}
for _,field in pairs(tabularData.schema.fields) do
table.insert(fields, field.name)
end
return fields
end
local function getColumnIndices(fields)
local rowCurrencyIndex, dateIndex
local targetCurrencyIndices = {}
local sourceCurrencyIndices = {}
for i,v in pairs(fields) do
if v == 'currency' then
rowCurrencyIndex = i
elseif v == 'date' then
dateIndex = i
elseif string.match(v, '^%u%u%u$') then
sourceCurrencyIndices[v] = i
elseif string.match(v, '^_%u%u%u$') then
targetCurrencyIndices[string.sub(v,2)] = i
end
end
return rowCurrencyIndex, dateIndex, sourceCurrencyIndices, targetCurrencyIndices
end
local function getConversionTable(dataPageName)
local tabularData = mw.ext.data.get(dataPageName)
if not tabularData then return nil end
local fields = getTabularDataFieldNames(tabularData)
local rowCurrencyIndex, dateIndex, sourceCurrencyIndices, targetCurrencyIndices = getColumnIndices(fields)
local conversionTable = {}
if rowCurrencyIndex then
for _,row in pairs(tabularData.data) do
for sourceCurrency,index in pairs(sourceCurrencyIndices) do
if not conversionTable[sourceCurrency] then
conversionTable[sourceCurrency] = {}
end
conversionTable[sourceCurrency][row[rowCurrencyIndex]] = {rate = row[index], revisionTime = row[dateIndex]}
end
for targetCurrency,index in pairs(targetCurrencyIndices) do
if not conversionTable[row[rowCurrencyIndex]] then
conversionTable[row[rowCurrencyIndex]] = {}
end
conversionTable[row[rowCurrencyIndex]][targetCurrency] = {rate = row[index], revisionTime = row[dateIndex]}
end
end
end
return conversionTable
end
local function getDataFromRateDataPage(dataPageName, source, target)
local conversionTable = getConversionTable(dataPageName)
if not conversionTable then return nil end
local rate, revisionTime
if conversionTable[source] and conversionTable[source][target] then
rate = conversionTable[source][target]['rate']
rateSignificantDigits = countSigificantDigits(rate)
revisionTime = conversionTable[source][target]['revisionTime']
elseif conversionTable[target] and conversionTable[target][source] then
local targetToSourceRate = conversionTable[target][source]['rate']
rate = targetToSourceRate^-1
rateSignificantDigits = countSigificantDigits(targetToSourceRate)
revisionTime = conversionTable[target][source]['revisionTime']
end
return rate, rateSignificantDigits, revisionTime
end
local p = {}
function p._rate(source, target, rounded)
local dataPageNames = {
'ECB euro foreign exchange reference rates.tab',
'Xe.com exchange rates.tab'}
local rate, revisionTime, rateSignificantDigits
for _,name in pairs(dataPageNames) do
rate, rateSignificantDigits, revisionTime = getDataFromRateDataPage(name, source, target)
if not rate or not revisionTime then
for _,name in pairs(dataPageNames) do
local USDtoTargetRate, UtoTSigDig, UtoTRevTime = getDataFromRateDataPage(name, 'USD', target)
local USDtoSourceRate, UtoSSigDig, UtoSRevTime = getDataFromRateDataPage(name, 'USD', source)
if USDtoTargetRate and USDtoSourceRate then
rate = USDtoTargetRate/USDtoSourceRate
revisionTime = UtoTRevTime < UtoSRevTime and UtoTRevTime or UtoSRevTime
rateSignificantDigits = UtoTSigDig < UtoSSigDig and UtoTSigDig or UtoSSigDig
end
end
end
if rate and revisionTime then
break
end
end
if rate and revisionTime then
if rounded then
rate = round(rate, rateSignificantDigits)
end
return rate, revisionTime
end
end
function p._convert(source, target, amount)
local rate = p._rate(source, target)
if rate then
local amountSigificantDigitsCount = countSigificantDigits(amount)
return round(amount * rate, amountSigificantDigitsCount + 1)
end
end
function p._convertSingelOrRange(source, target, amounts)
local amounts = string.gsub(amounts, ',', '')
local splitOffset = mw.ustring.find(amounts, '-')
local converted
if splitOffset then
local firstAmount = mw.ustring.sub(amounts, 0, splitOffset -1)
local secondAmount = mw.ustring.sub(amounts, splitOffset + 1)
local first = p._convert(source, target, firstAmount)
local second = p._convert(source, target, secondAmount)
converted = first and second and first .. '–' .. second
else
converted = p._convert(source, target, amounts)
end
return converted
end
function p.rate(frame)
local args = frame.args
local rate = p._rate(args.source, args.target, true)
local result = rate or args.verbose and errormsg
return result
end
function p.revisionTime(frame)
local args = frame.args
local _,revisionTime = p._rate(args.source, args.target)
local result = revisionTime or args.verbose and errormsg
return result
end
function p.convert(frame)
local args = frame.args
local amount = string.gsub(args.amount, ',', '')
local convertedAmount = p._convert(args.source, args.target, amount)
local result = convertedAmount or args.verbose and errormsg
return result
end
function p.convertSingelOrRange(frame)
local args = frame.args
local convertedAmounts = p._convertSingelOrRange(
args.source, args.target, args.amounts)
local result = convertedAmounts or args.verbose and errormsg
return result
end
local function currencyWithSymbol(currency, symbolFormat, amount)
local currencyWithSymbol = (
symbolFormat and string.format(symbolFormat, amount)
or currency .. amount)
return currencyWithSymbol
end
function p.currencyWithConversions(frame)
local args = frame.args
local amount = (args.amount and args.amount ~= '') and args.amount or 1
local i18n = mw.loadData('Module:Exchangerate/i18n')
local currencySymbols = i18n.symbols[args.currency]
local shortSymbol = currencySymbols and currencySymbols.shortSymbol
local currencyWithShortSymbol = currencyWithSymbol(
args.currency, shortSymbol, amount)
local uniqueSymbol = currencySymbols and currencySymbols.uniqueSymbol
local currencyWithUniqueSymbol = currencyWithSymbol(
args.currency, uniqueSymbol, amount)
local conversionCurrencies = i18n.defaultConversions or {'USD', 'EUR'}
local convertedStrings = {}
for _,convCurrency in ipairs(conversionCurrencies) do
if args.currency ~= convCurrency then
local convertedAmount = p._convertSingelOrRange(
args.currency, convCurrency, amount)
local convCurrencyUniqueSymbol = (i18n.symbols[convCurrency]
and i18n.symbols[convCurrency].uniqueSymbol)
local convCurrencyWithSymbol = convertedAmount and currencyWithSymbol(
convCurrency, convCurrencyUniqueSymbol, convertedAmount)
table.insert(convertedStrings, convCurrencyWithSymbol)
end
end
local comma = mw.message.new('comma-separator'):plain()
local allConvertedStrings = table.concat(convertedStrings, comma)
local conversions = (allConvertedStrings ~= '') and ' ≈ ' .. allConvertedStrings or ''
local resultFormat = '<abbr title="%s%s">%s</abbr>'
local result = string.format(resultFormat, currencyWithUniqueSymbol,
conversions, currencyWithShortSymbol)
return result
end
return p
9mfjfnhdpu8m3vwxj3bd07w3ww3x1kx
Modul:Exchangerate/i18n
828
609
2725
2724
2024-12-03T14:16:34Z
Jon Harald Søby
20
1 revisi diimpor
2724
Scribunto
text/plain
local p = {}
p.defaultConversions = {'USD', 'GBP', 'CAD', 'AUD', 'EUR', 'NZD'}
-- currencies used by English-speaking countries
-- sorted by number of population of the English-speaking country the currency is used by
p.symbols = {
-- taken from https://en.wikivoyage.org/w/index.php?title=Template:Exchange_rates&oldid=4412019
-- with some adjustment, e.g. for CHF from talk page of country article recommendation
AED = {shortSymbol = '%s dirham'},
ALL = {shortSymbol = '%s lek'},
ARS = {shortSymbol = 'AR$%s', uniqueSymbol = 'AR$%s'},
AUD = {shortSymbol = '$%s', uniqueSymbol = 'AU$%s'},
BAM = {shortSymbol = '%s KM'},
BBD = {shortSymbol = 'B$%s'},
BDT = {shortSymbol = 'Tk%s'},
BGN = {shortSymbol = '%s лв'},
BHD = {shortSymbol = 'BD%s'},
BOB = {shortSymbol = 'Bs. %s'},
BRL = {shortSymbol = 'R$%s'},
BSD = {shortSymbol = '$%s'},
BWP = {shortSymbol = 'P%s'},
CAD = {shortSymbol = '$%s', uniqueSymbol = 'CA$%s'},
CHF = {shortSymbol = 'Fr. %s', uniqueSymbol = 'Swiss Fr. %s'},
CLP = {shortSymbol = '%s pesos'},
CNY = {shortSymbol = '¥%s', uniqueSymbol = 'Chinese ¥%s'},
COP = {shortSymbol = 'COP$%s'},
CRC = {shortSymbol = '₡%s'},
CUP = {shortSymbol = 'CUP%s'},
CZK = {shortSymbol = '%s Kč'},
DKK = {shortSymbol = '%s kr'},
DOP = {shortSymbol = 'RD$%s'},
DZD = {shortSymbol = 'DA%s'},
EGP = {shortSymbol = 'LE%s'},
EUR = {shortSymbol = '€%s', uniqueSymbol = '€%s'},
FJD = {shortSymbol = '$%s'},
GBP = {shortSymbol = '£%s', uniqueSymbol = 'UK£%s'},
GTQ = {shortSymbol = 'Q%s'},
HKD = {shortSymbol = '$%s', uniqueSymbol = 'Hong Kong $%s'},
HRK = {shortSymbol = '%s kn'},
HUF = {shortSymbol = '%s Ft', uniqueSymbol = '%s Ft'},
IDR = {shortSymbol = 'Rp%s'},
ILS = {shortSymbol = '₪%s'},
IQD = {shortSymbol = '%s dinars'},
INR = {shortSymbol = '₹%s', uniqueSymbol = 'Indian ₹%s'},
IRR = {shortSymbol = '%s rials'},
ISK = {shortSymbol = 'kr %s'},
JOD = {shortSymbol = '%s JD'},
JMD = {shortSymbol = 'J$%s'},
JPY = {shortSymbol = '¥%s', uniqueSymbol = 'Japanese ¥%s'},
KES = {shortSymbol = 'Ksh %s'},
KRW = {shortSymbol = '₩%s'},
KWD = {shortSymbol = 'KD%s'},
LBP = {shortSymbol = 'LL%s'},
LKR = {shortSymbol = 'Rs %s'},
LYD = {shortSymbol = 'LD%s'},
MAD = {shortSymbol = '%s dirham'},
MUR = {shortSymbol = 'Rs%s'},
MXN = {shortSymbol = 'M$%s'},
MYR = {shortSymbol = 'RM%s', uniqueSymbol = 'Malaysian RM%s'},
NGN = {shortSymbol = '₦%s'},
NOK = {shortSymbol = '%s kr'},
NZD = {shortSymbol = '$%s', uniqueSymbol = 'NZ$%s'},
OMR = {shortSymbol = 'RO %s'},
PEN = {shortSymbol = 'S/%s'},
PHP = {shortSymbol = '₱%s'},
PKR = {shortSymbol = 'Rs %s'},
PLN = {shortSymbol = '%s zł'},
PYG = {shortSymbol = 'GS.%s'},
QAR = {shortSymbol = 'QR%s'},
RON = {shortSymbol = '%s lei'},
RUB = {shortSymbol = '%s руб'},
SAR = {shortSymbol = 'SR%s'},
SEK = {shortSymbol = '%s kr'},
SGD = {shortSymbol = '$%s', uniqueSymbol = 'Singapore $%s'},
THB = {shortSymbol = '%s baht', uniqueSymbol = 'Thai ฿%s'},
TND = {shortSymbol = '%s DT'},
TRY = {shortSymbol = '%s TL'},
TTD = {shortSymbol = 'TT$%s'},
TWD = {shortSymbol = 'NT$%s'},
UAH = {shortSymbol = '%s грн'},
USD = {shortSymbol = '$%s', uniqueSymbol = 'US$%s'},
UYU = {shortSymbol = 'U$%s'},
VND = {shortSymbol = '%s dong', uniqueSymbol = '%s Vietnamese dong'},
XAF = {shortSymbol = 'FCFA%s'},
XCD = {shortSymbol = 'EC$%s'},
XOF = {shortSymbol = 'CFA%s'},
XPF = {shortSymbol = '%s F'},
ZAR = {shortSymbol = 'R%s', uniqueSymbol = 'South African R%s'},
ZMW = {shortSymbol = 'ZK$%s'},
}
return p
qsqgy4lv2z8zsn68ztag46hwcrpu0nr
Modul:FastWikidata
828
610
2727
2726
2024-12-03T14:16:34Z
Jon Harald Søby
20
1 revisi diimpor
2726
Scribunto
text/plain
--[[
Source script: https://de.wikivoyage.org/wiki/Modul:FastWikidata
Maintainer: RolandUnger
]]
local fw = {}
function fw.getEntity( id )
local wrongQualifier = false
local entity = nil
if not id or id == '' then
return '', entity, wrongQualifier
end
if mw.wikibase.isValidEntityId( id ) then
-- expensive function call
-- redirect ids marked false, too
entity = mw.wikibase.getEntity( id )
end
if not entity then
id = ''
wrongQualifier = true
end
return id, entity, wrongQualifier
end
local function getFirstValue( statements )
if #statements == 0 then
return nil
end
for i = 1, #statements, 1 do
if statements[i].mainsnak.snaktype == 'value' then
return statements[i].mainsnak.datavalue.value
end
end
return nil
end
local function getNValues( statements, count )
local ar = {}
if count > #statements then count = #statements end
if ( #statements == 0 ) or ( count <= 0 ) then
return ar
end
local i = 0
repeat
i = i + 1
if statements[i].mainsnak.snaktype == 'value' then
table.insert( ar, statements[i].mainsnak.datavalue.value )
end
until ( i >= #statements ) or ( #ar >= count )
return ar
end
function fw.getBestStatements( entity, p )
if type( entity ) == 'string' then
return mw.wikibase.getBestStatements( entity, p )
else
return entity:getBestStatements( p )
end
end
function fw.getStatements( entity, p, count )
local ar = {}
if ( not entity ) or ( entity == '' ) then
return ar
end
local statements = fw.getBestStatements( entity, p )
count = count or #statements
if count > #statements then count = #statements end
if ( #statements == 0 ) or ( count <= 0 ) then
return ar
end
local i = 0
repeat
i = i + 1
if statements[i].mainsnak.snaktype == 'value' then
table.insert( ar, statements[i] )
end
until ( i >= #statements ) or ( #ar >= count )
return ar
end
function fw.getValue( entity, p, catArray )
local value = ''
if entity and entity ~= '' and p and p ~= '' then
value = getFirstValue( fw.getBestStatements( entity, p ) )
if value and catArray then
catArray[ p ] = ''
end
value = value or ''
end
if catArray then
return value, catArray
else
return value
end
end
function fw.getId( entity, p, catArray )
local value = ''
if entity and entity ~= '' and p and p ~= '' then
value = getFirstValue( fw.getBestStatements( entity, p ) )
if value then
if catArray then catArray[ p ] = '' end
value = value.id
else
value = ''
end
end
if catArray then
return value, catArray
else
return value
end
end
function fw.getValues( entity, p, count, catArray )
local values = '', statements
if entity and entity ~= '' and p and p ~= '' then
statements = fw.getBestStatements( entity, p )
values = getNValues( statements, count or #statements )
if catArray and #values > 0 then catArray[ p ] = '' end
end
if catArray then
return values, catArray
else
return values
end
end
function fw.getValuesByLang( entity, p, count, lang, catArray )
local ar = '', statements, i, value
if entity and entity ~= '' and p and p ~= '' then
statements = fw.getBestStatements( entity, p )
ar = {}
count = count or #statements
if #statements > 0 and count > 0 then
i = 0
repeat
i = i + 1
if statements[ i ].mainsnak.snaktype == 'value' then
value = statements[ i ].mainsnak.datavalue.value
if value.language and lang == value.language then
table.insert( ar, statements[ i ].mainsnak.datavalue.value.text )
end
end
until ( i >= #statements ) or ( #ar >= count )
end
if catArray and #ar > 0 then catArray[ p ] = '' end
end
if catArray then
return ar, catArray
else
return ar
end
end
function fw.getValuesWithQualifierIds( entity, p, qualifierP, defaultId, catArray )
local result = {}, statements, value, id, i, j
if entity and entity ~= '' and p and p ~= '' and qualifierP and qualifierP ~= '' then
statements = fw.getStatements( entity, p, nil )
if #statements > 0 then
-- defaultId is used if a qualifier is missing
if not defaultId or defaultId == '' or type( defaultId ) ~= 'string' then
defaultId = 'unknown'
end
if catArray then catArray[ p ] = '' end
for i = 1, #statements, 1 do
value = statements[ i ].mainsnak.datavalue.value
id = defaultId
if statements[ i ].qualifiers and statements[ i ].qualifiers[ qualifierP ]
and ( #statements[ i ].qualifiers[ qualifierP ] > 0 ) then
for j = 1, #statements[ i ].qualifiers[ qualifierP ], 1 do
if statements[ i ].qualifiers[ qualifierP ][ j ].snaktype == 'value' then
id = statements[ i ].qualifiers[ qualifierP ][ j ].datavalue.value.id
break
end
end
end
result[ id ] = value
end
end
end
if catArray then
return result, catArray
else
return result
end
end
-- get values array for monolingual text
function fw.getValuesWithLanguages( entity, p, catArray )
local result = {}, statements, hyphen, i, lng, value
if entity and entity ~= '' and p and p ~= '' then
statements = fw.getStatements( entity, p, nil )
if #statements > 0 and statements[ 1 ].mainsnak.datatype == 'monolingualtext' then
if catArray then catArray[ p ] = '' end
for i = 1, #statements, 1 do
value = statements[i].mainsnak.datavalue.value
lng = value.language
hyphen = lng:find( '-' )
if hyphen then
lng = lng:sub( 1, hyphen - 1 )
end
if not result[ lng ] then result[ lng ] = value.text end
end
end
end
if catArray then
return result, catArray
else
return result
end
end
local function getValueFromDatavalue( datavalue )
local v = datavalue.value
local t = datavalue.type
if type( v ) == 'table' then
-- items which can be reduced to a string
if t == 'wikibase-entityid' then v = v.id
elseif t == 'time' then v = v.time
end
end
return v, t
end
-- The following function is an experimental one, not for extensive use
function fw.getValuesWithQualifiers( entity, p, qualifiers, count )
local result = {}
local statements = fw.getStatements( entity, p, count )
if #statements == 0 then return result end
if qualifiers and ( type( qualifiers ) == 'string' ) then
qualifiers = { qualifiers }
end
local array, key, value, i, j
for i = 1, #statements, 1 do
array = { value = statements[i].mainsnak.datavalue.value,
['value-type'] = statements[i].mainsnak.datavalue.type }
if statements[i].qualifiers then
if not qualifiers then -- all qualifier properties
for key, value in pairs( statements[i].qualifiers ) do
if #value > 0 then
for j = 1, #value, 1 do
if value[ j ].snaktype == 'value' then
array[ key ], array[ key .. '-type' ] =
getValueFromDatavalue( value[ j ].datavalue )
break
end
end
end
end
else -- table of selected qualifier properties
for key, value in pairs( qualifiers ) do
if statements[i].qualifiers[ value ] and
( #statements[i].qualifiers[ value ] > 0 ) then
for j = 1, #statements[i].qualifiers[ value ], 1 do
if statements[i].qualifiers[ value ][ j ].snaktype == 'value' then
array[ value ], array[ value .. '-type' ] =
getValueFromgetValueFromDatavalue( statements[i].qualifiers[ value ][ j ].datavalue )
break
end
end
end
end
end
end
table.insert( result, array )
end
return result
end
function fw.typeSearch( p31, list, limit, catArray )
-- p31: array of Wikidata values
-- list: indexed array of q id - types relations
-- limit: maximum levels to analyse
if not list or not p31 or #p31 == 0 then
return 'error', catArray
end
local function compareIds( ar )
local i, t
for i = 1, #ar, 1 do
t = list[ ar[ i ].id ]
if t then
return t
end
end
return nil
end
local aType, i, id, ids, j
aType = compareIds( p31 ) -- check p31 ids first, maybe step 2 is not nessary
if aType then
return aType, catArray
end
-- now functions becomes expensive because of multiple fw.getValues calls
for i = 1, #p31, 1 do -- step 2: analyse P279 chains of first ids
id = p31[ i ].id -- start id
j = 0
repeat
ids, catArray = fw.getValues( id, 'P279', nil, catArray )
if #ids > 0 then
id = ids[ 1 ].id
aType = compareIds( ids )
if aType then
return aType, catArray
end
end
j = j + 1
until j >= limit or #ids == 0
end
return 'error', catArray
end
function fw.getCategories( catArray, formatStr )
result = ''
if not catArray then return result end
if not formatStr or formatStr == '' then
formatStr = '[[Kategori:%s]]'
end
for key, value in pairs( catArray ) do
result = result .. string.format( formatStr, key )
end
return result
end
return fw
i392e8jezx7vxazmkue5e72twlzturk
Modul:Formatnum
828
611
2729
2728
2024-12-03T14:16:34Z
Jon Harald Søby
20
1 revisi diimpor
2728
Scribunto
text/plain
-- This module is intended to replace the functionality of Template:Formatnum and related templates.
local p = {}
function p.main(frame)
local args = frame:getParent().args
local prec = args.prec or ''
local sep = args.sep or ''
local number = args[1] or args.number or ''
local lang = args[2] or args.lang or ''
-- validate the language parameter within MediaWiki's caller frame
if lang == "arabic-indic" then -- only for back-compatibility ("arabic-indic" is not a SupportedLanguage)
lang = "fa" -- better support than "ks"
elseif lang == '' or not mw.language.isSupportedLanguage(lang) then
-- Note that 'SupportedLanguages' are not necessarily 'BuiltinValidCodes', and so they are not necessarily
-- 'KnownLanguages' (with a language name defined at least in the default localisation of the local wiki).
-- But they all are ValidLanguageCodes (suitable as Wiki subpages or identifiers: no slash, colon, HTML tags, or entities)
-- In addition, they do not contain any capital letter in order to be unique in page titles (restriction inexistant in BCP47),
-- but they may violate the standard format of BCP47 language tags for specific needs in MediaWiki.
-- Empty/unspecified and unsupported languages are treated here in Commons using the user's language,
-- instead of the local 'ContentLanguage' of the Wiki.
lang = frame:callParserFunction( "int", "lang" ) -- get user's chosen language
end
return p.formatNum(number, lang, prec, sep ~= '')
end
local digit = { -- substitution of decimal digits for languages not supported by mw.language:formatNum() in core Lua libraries for MediaWiki
["ml-old"] = { '൦', '൧', '൨', '൩', '൪', '൫', '൬', '൭', '൮', '൯' },
["mn"] = { '᠐', '᠑', '᠒', '᠓', '᠔', '᠕', '᠖', '᠗', '᠘', '᠙'},
["ta"] = { '௦', '௧', '௨', '௩', '௪', '௫', '௬', '௭', '௮', '௯'},
["te"] = { '౦', '౧', '౨', '౩', '౪', '౫', '౬', '౭', '౮', '౯'},
["th"] = { '๐', '๑', '๒', '๓', '๔', '๕', '๖', '๗', '๘', '๙'}
}
function p.formatNum(number, lang, prec, compact)
-- Do not alter the specified value when it is not a valid number, return it as is
local value = tonumber(number)
if value == nil then
return number
end
-- Basic ASCII-only formatting (without paddings)
number = tostring(value)
-- Check the presence of an exponent (incorrectly managed in mw.language:FormatNum() and even forgotten due to an internal bug, e.g. in Hindi)
local exponent
local pos = string.find(number, '[Ee]')
if pos ~= nil then
exponent = string.sub(number, pos + 1, string.len(number))
number = string.sub(number, 1, pos - 1)
else
exponent = ''
end
-- Check the minimum precision requested
prec = tonumber(prec) -- nil if not specified as a true number
if prec ~= nil then
prec = math.floor(prec)
if prec < 0 then
prec = nil -- discard an incorrect precision (not a positive integer)
elseif prec > 14 then
prec = 14 -- maximum precision supported by tostring(number)
end
end
-- Preprocess the minimum precision in the ASCII string
local dot
if (prec or 0) > 0 then
pos = string.find(number, '.', 1, true) -- plain search, no regexp
if pos ~= nil then
prec = pos + prec - string.len(number) -- effective number of trailing decimals to add or remove
dot = '' -- already present
else
dot = '.' -- must be added
end
else
dot = '' -- don't add dot
prec = 0 -- don't alter the precision
end
if lang ~= nil and mw.language.isKnownLanguageTag(lang) == true then
-- Convert number to localized digits, decimal separator, and group separators
local language = mw.getLanguage(lang)
if compact then
number = language:formatNum(tonumber(number), { noCommafy = 'y' }) -- caveat: can load localized resources for up to 20 languages
else
number = language:formatNum(tonumber(number)) -- caveat: can load localized resources for up to 20 languages
end
-- Postprocessing the precision
if prec > 0 then
local zero = language:formatNum(0)
number = number .. dot .. mw.ustring.rep(zero, prec)
elseif prec < 0 then
-- TODO: rounding of last decimal; here only truncate decimals in excess
number = mw.ustring.sub(number, 1, mw.ustring.len(number) + prec)
end
-- Append the localized base-10 exponent without grouping separators (there's no reliable way to detect a localized leading symbol 'E')
if exponent ~= '' then
number = number .. 'E' .. language:formatNum(tonumber(exponent),{noCommafy=true})
end
else -- not localized, ASCII only
-- Postprocessing the precision
if prec > 0 then
number = number .. dot .. mw.string.rep('0', prec)
elseif prec < 0 then
-- TODO: rounding of last decimal; here only truncate decimals in excess
number = mw.string.sub(number, 1, mw.string.len(number) + prec)
end
-- Append the base-10 exponent
if exponent ~= '' then
number = number .. 'E' .. exponent
end
end
-- Special cases for substitution of ASCII digits (missing support in Lua core libraries for some languages)
if digit[lang] then
for i, v in ipairs(digit[lang]) do
number = mw.ustring.gsub(number, tostring(i - 1), v)
end
end
return number
end
return p
ea5lmau3n3g443z268nz79espe8b4sj
Modul:Hatnote
828
612
2734
2733
2024-12-03T14:16:35Z
Jon Harald Søby
20
4 revisi diimpor
2733
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 mArguments -- lazily initialise [[Modul:Arguments]]
local yesno -- lazily initialise [[Modul: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
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.formatPages(...)
-- Formats a list of pages using formatLink and returns it as an array. Nil
-- values are not allowed.
local pages = {...}
local ret = {}
for i, page in ipairs(pages) do
ret[i] = p._formatLink(page)
end
return ret
end
function p.formatPageTables(...)
-- Takes a list of page/display tables and returns it as a list of
-- formatted links. Nil values are not allowed.
local pages = {...}
local links = {}
for i, t in ipairs(pages) do
checkType('formatPageTables', i, t, 'table')
local link = t[1]
local display = t[2]
links[i] = p._formatLink(link, display)
end
return links
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
-- [[Modul: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 and yesno(addTrackingCategory) ~= false then
category = 'Templat hatnote yang mengandung galat'
category = string.format(
'[[%s:%s]]',
mw.site.namespaces[14].name,
category
)
else
category = ''
end
return string.format(
'<strong class="error">Galat: %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 'disambiguasi'
return string.format('%s (%s)', page, disambiguator)
end
--------------------------------------------------------------------------------
-- 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 hatnote link}} template.
--------------------------------------------------------------------------------
function p.formatLink(frame)
local args = getArgs(frame)
local link = args[1]
local display = args[2]
if not link then
return p.makeWikitextError(
'tautan tidak ditentukan',
'Template:Format hatnote link#Galat',
args.category
)
end
return p._formatLink(link, display)
end
function p._formatLink(link, display)
checkType('_formatLink', 1, link, 'string')
checkType('_formatLink', 2, display, 'string', true)
-- Remove the initial colon for links where it was specified manually.
link = removeInitialColon(link)
-- Find whether a faux display value has been added with the {{!}} magic
-- word.
if not display then
local prePipe, postPipe = link:match('^(.-)|(.*)$')
link = prePipe or link
display = postPipe
end
-- Find the display value.
if not display then
local page, section = link:match('^(.-)#(.*)$')
if page then
display = page .. ' § ' .. section
end
end
-- Assemble the link.
if display then
return string.format(
'[[:%s|%s]]',
string.gsub(link, '|(.*)$', ''), --display overwrites manual piping
display
)
else
return string.format('[[:%s]]', link)
end
end
--------------------------------------------------------------------------------
-- Hatnote
--
-- Produces standard hatnote text. Implements the {{hatnote}} template.
--------------------------------------------------------------------------------
function p.hatnote(frame)
local args = getArgs(frame)
local s = args[1]
local options = {}
if not s then
return p.makeWikitextError(
'no text specified',
'Template:Hatnote#Errors',
args.category
)
end
options.extraclasses = args.extraclasses
options.selfref = args.selfref
return p._hatnote(s, options)
end
function p._hatnote(s, options)
checkType('_hatnote', 1, s, 'string')
checkType('_hatnote', 2, options, 'table', true)
options = options or {}
local classes = {'hatnote', 'navigation-not-searchable'}
local extraclasses = options.extraclasses
local selfref = options.selfref
if type(extraclasses) == 'string' then
classes[#classes + 1] = extraclasses
end
if selfref then
classes[#classes + 1] = 'selfref'
end
return string.format(
'<div role="note" class="%s">%s</div>',
table.concat(classes, ' '),
s
)
end
return p
gq5lphlgmqy9aqlyo3euheg3nhe9yw8
Modul:HiddenUnicode
828
613
2737
2736
2024-12-03T14:16:35Z
Jon Harald Søby
20
2 revisi diimpor
2735
Scribunto
text/plain
--[[
Source script: https://it.wikivoyage.org/wiki/Modulo:HiddenUnicode
Maintainer: Andyrom75
]]
function _hiddenUnicode( value )
-- Note the quote ("") below is not empty and actually contains a hidden unicode character.
return mw.ustring.match(value or '',"") and ('[[Kategori:Listing with hidden unicode character]]') or ''
end
local p = {}
function p.HiddenUnicodeValue( value )
return _hiddenUnicode( value )
end
function p.HiddenUnicode( frame )
return _hiddenUnicode( frame and frame.args and frame.args[1] )
end
return p
m2ol0swshxnt8g0x2gb2zdubk1pfom2
Modul:I18n/date
828
614
2739
2738
2024-12-03T14:16:35Z
Jon Harald Søby
20
1 revisi diimpor
2738
Scribunto
text/plain
--[[
__ __ _ _ ___ _ ___ __ _ _
| \/ | ___ __| |_ _| | ___ _|_ _/ |( _ ) _ __ / /_| | __ _| |_ ___
| |\/| |/ _ \ / _` | | | | |/ _ (_)| || |/ _ \| '_ \ / / _` |/ _` | __/ _ \
| | | | (_) | (_| | |_| | | __/_ | || | (_) | | | |/ / (_| | (_| | || __/
|_| |_|\___/ \__,_|\__,_|_|\___(_)___|_|\___/|_| |_/_/ \__,_|\__,_|\__\___|
This Module handles per language customization of dates
Authors and Maintainers:
* Jarekt
]]
local p = {}
--[[ Different languages use different date formats, and many formats are shared among whole families of languages.
"DateLang" picks a cluster of languages associated with a single date format, based on the language to be used.
All unlisted languages default to English form. Languages like "de-formal" follows regular language fallback chain
and would default to German, and only if that does not exist then to English.
]]
p.DateLang = {
['be'] = 'ru-form', -- Belarusian
['be-tarsk'] = 'ru-form', -- Belarusian (Tara۫ievica)
['bn'] = 'en-form', -- Bengali
['bpy'] = 'bpy-form', -- Bishnupuriya Manipuri
['ca'] = 'ca-form', -- Catalan
['ce'] = 'ce-form', -- Chechen
['cs'] = 'cs-form', -- Czech
['da'] = 'de-form', -- Danish
['de'] = 'de-form', -- German
['el'] = 'ru-form', -- Greek
['en'] = 'en-form', -- English
['eo'] = 'eo-form', -- Esperanto
['es'] = 'es-form', -- Spanish
['et'] = 'de-form', -- Estonian
['eu'] = 'eu-form', -- Basque
['fa'] = 'he-form', -- Persian
['fi'] = 'fi-form', -- Finnish
['fr'] = 'fr-form', -- French
['ga'] = 'ga-form', -- Gallic
['gl'] = 'es-form', -- Galician based on https://translatewiki.net/wiki/MediaWiki:Pagetriage-info-timestamp-date-format/gl
['hi'] = 'en-form', -- Hindi
['he'] = 'he-form', -- Hebrew
['hr'] = 'hr-form', -- Croatian
['hu'] = 'hu-form', -- Hungarian
['hsb'] = 'cs-form', -- Upper Sorbian
['ia'] = 'ia-form', -- Interlingua
['is'] = 'de-form', -- Icelandic
['ja'] = 'zh-form', -- Japanese
['kn'] = 'kn-form', -- Kannada
['ko'] = 'ko-form', -- Korean
['lt'] = 'lt-form', -- Lithuanian
['lv'] = 'lv-form', -- Latvian
['mk'] = 'en-form', -- Macedonian
['ml'] = 'ml-form', -- Malayalam
['mr'] = 'mr-form', -- Marathi
['new'] = 'new-form', -- Newari
['nn'] = 'de-form', -- Norwegian Nynorsk
['no'] = 'de-form', -- Norwegian (bokm欩
['oc'] = 'oc-form', -- Occitan
['pa'] = 'en-form', -- Punjabi
['pl'] = 'ru-form', -- Polish
['pt'] = 'es-form', -- Portuguese
['qu'] = 'qu-form', -- Quechua based on https://translatewiki.net/wiki/MediaWiki:Pagetriage-info-timestamp-date-format/qu
['qug'] = 'qug-form', -- Kichwa based on Template_talk:Date#Kichwa_.5Bqug.5D
['ru'] = 'ru-form', -- Russian
['sk'] = 'cs-form', -- Slovakian
['sl'] = 'sl-form', -- Slovene
['sr'] = 'hr-form', -- Serbian
['th'] = 'th-form', -- Thai solar calendar
['uk'] = 'ru-form', -- Ukrainian
['vi'] = 'vi-form', -- Vietnamese
['zh-hans'] = 'zh-form', -- Chinese
}
--[[ Date format parameter which will be passed to {{#time:}} parser function.
It depends on the language and which parts of the date need to be displayed.
Different forms are:
* YMDHMS = stands for YYYY:MM:DD, HH:MM:SS format or equivalent
* YMDHM = stands for YYYY:MM:DD, HH:MM format or equivalent
* YMD = stands for YYYY:MM:DD format or equivalent
* YM = stands for YYYY:MM (year-month) format or equivalent
* MD = stands for MM:DD (month-day) format or equivalent
* Y = stands for YYYY (year only) format or equivalent
* M = stands for month name only
The left hand side follows encoding used by {{#time}} parser function ,
see https://www.mediawiki.org/wiki/Help:Extension:ParserFunctions#.23time for documentation.
To summerize:
* Y - 4-digit year, like "2017"
* y - 2-digit year, like "17"
* M - An abbreviation of the month name, in the site language, like "Mar"
* F - The full month name in the site language, like "March"
* xg - Output the full month name in the genitive form for site languages that distinguish
between genitive and nominative forms. This option is useful for many Slavic languages
like Polish, Russian, Belarusian, Czech, Slovak, Slovene, Ukrainian, etc.
* j - Day of the month, not zero-padded, like "1"
* d - Day of the month, zero-padded, like "01"
* a - "am" during the morning (00:00:00 → 11:59:59), "pm" otherwise (12:00:00 → 23:59:59).
* A - Uppercase version of a above.
* g - Hour in 12-hour format, not zero-padded.
* h - Hour in 12-hour format, zero-padded.
* G - Hour in 24-hour format, not zero-padded.
* H - Hour in 24-hour format, zero-padded.
* i - Minutes past the hour, zero-padded.
* s - Seconds past the minute, zero-padded.
Original set was developed to match the output of the pre-Lua {{date}} template, preserved as {{date/old}}
]]
p.DateFormat = {
-- day/month/year languages
['ca-form'] = {
YMDHMS='j xg "de" Y, H:i:s',
YMDHM ='j xg "de" Y, H:i',
YMD ='j xg "de" Y',
YM ='F "de" Y',
MD ='j xg',
Y ='Y',
M ='F'
},
['en-form'] = {
YMDHMS='j F Y, H:i:s',
YMDHM ='j F Y, H:i',
YMD ='j F Y',
YM ='F Y',
MD ='j F',
Y ='Y',
M ='F'
},
['de-form'] = {
YMDHMS='j. F Y, H:i:s',
YMDHM ='j. F Y, H:i',
YMD ='j. F Y',
YM ='F Y',
MD ='j. F',
Y ='Y',
M ='F'
},
['hr-form'] = {
YMDHMS='j. F Y., H:i:s',
YMDHM ='j. F Y., H:i',
YMD ='j. F Y.',
YM ='F Y.',
MD ='j. F',
Y ='Y.',
M ='F'
},
['ml-form'] = {
YMDHMS='j F Y, H:i:s',
YMDHM ='j F Y, H:i',
YMD ='j F Y',
YM ='F Y',
MD ='F j',
Y ='Y',
M ='F'
},
['th-form'] = {
YMDHMS='j F "พ.ศ." xkY, H:i:s',
YMDHM ='j F "พ.ศ." xkY, H:i',
YMD ='j F "พ.ศ." xkY',
YM ='F "พ.ศ." xkY',
MD ='j F',
Y ='"พ.ศ." xkY',
M ='F'
},
['fi-form'] = {
YMDHMS='j. F"ta" Y, H:i:s',
YMDHM ='j. F"ta" Y, H:i',
YMD ='j. F"ta" Y',
YM ='F Y',
MD ='j. F"ta"',
Y ='Y',
M ='F'
},
['es-form'] = {
YMDHMS='j "de" F "de" Y, H:i:s',
YMDHM ='j "de" F "de" Y, H:i',
YMD ='j "de" F "de" Y',
YM ='F "de" Y',
MD ='j "de" F',
Y ='Y',
M ='F'
},
['oc-form'] = {
YMDHMS='j F "de" Y, H:i:s',
YMDHM ='j F "de" Y, H:i',
YMD ='j F "de" Y',
YM ='F "de" Y',
MD ='j F',
Y ='Y',
M ='F'
},
['ia-form'] = {
YMDHMS='j "de" F Y, H:i:s',
YMDHM ='j "de" F Y, H:i',
YMD ='j "de" F Y',
YM ='F Y',
MD ='j "de" F',
Y ='Y',
M ='F'
},
['eo-form'] = {
YMDHMS='"la" j"-a de" F Y, H:i:s',
YMDHM ='"la" j"-a de" F Y, H:i',
YMD ='"la" j"-a de" F Y',
YM ='F Y',
MD ='"la" j"-a de" F',
Y ='Y',
M ='F'
},
['vi-form'] = {
YMDHMS='j F "năm" Y "lúc" H:i:s',
YMDHM ='j F "năm" Y "lúc" H:i',
YMD ='j F "năm" Y',
YM ='F "năm" Y',
MD ='j F',
Y ='Y',
M ='F'
},
['qu-form'] = {
YMDHMS='j "ñiqin" F"pi" Y "watapi", H:i:s',
YMDHM ='j "ñiqin" F"pi" Y "watapi", H:i',
YMD ='j "ñiqin" F"pi" Y "watapi"',
YM ='F"pi" Y "watapi"',
MD ='j "ñiqin" F"pi"',
Y ='Y',
M ='F'
},
['qug-form'] = {
YMDHMS='j "niki" F"pi" Y "watapi", H:i:s',
YMDHM ='j "niki" F"pi" Y "watapi", H:i',
YMD ='j "niki" F"pi" Y "watapi"',
YM ='F"pi" Y "watapi"',
MD ='j "niki" F"pi"',
Y ='Y',
M ='F'
},
['he-form'] = {
YMDHMS='"<span dir=rtl>"j xg Y"</span>", H:i:s',
YMDHM ='"<span dir=rtl>"j xg Y"</span>", H:i',
YMD ='"<span dir=rtl>"j xg Y"</span>"',
YM ='"<span dir=rtl>"F Y"</span>"',
MD ='"<span dir=rtl>"j xg"</span>"',
Y ='Y',
M ='"<span dir=rtl>"F"</span>"'
},
-- French and Gallic languages require different form for first day of the month and
-- different for the other days
['fr-form'] = {
YMDHMS='j F Y, H:i:s',
YMDHM ='j F Y, H:i',
YMD ='j F Y',
YM ='F Y',
MD ='j F',
Y ='Y',
M ='F'
},
['ga-form'] = {
YMDHMS='j F Y, H:i:s',
YMDHM ='j F Y, H:i',
YMD ='j F Y',
YM ='F Y',
MD ='j F',
Y ='Y',
M ='F'
},
['ca-form1'] = { -- 1st of the month form
YMDHMS='j"r" xg "de" Y, H:i:s',
YMDHM ='j"r" xg "de" Y, H:i',
YMD ='j"r" xg "de" Y',
YM ='F "de" Y',
MD ='j"r" xg',
Y ='Y',
M ='F'
},
['fr-form1'] = { -- 1st of the month form
YMDHMS='j"<sup>er</sup>" F Y, H:i:s',
YMDHM ='j"<sup>er</sup>" F Y, H:i',
YMD ='j"<sup>er</sup>" F Y',
YM ='F Y',
MD ='j"<sup>er</sup>" F',
Y ='Y',
M ='F'
},
['ga-form1'] = { -- 1st of the month form
YMDHMS='j"<sup>ú</sup>" F Y, H:i:s',
YMDHM ='j"<sup>ú</sup>" F Y, H:i',
YMD ='j"<sup>ú</sup>" F Y',
YM ='F Y',
MD ='j"<sup>ú</sup>" F',
Y ='Y',
M ='F'
},
-- day/month/year Slavic languages
['ru-form'] = {
YMDHMS='j xg Y, H:i:s',
YMDHM ='j xg Y, H:i',
YMD ='j xg Y',
YM ='F Y',
MD ='j xg',
Y ='Y',
M ='F'
},
['cs-form'] = {
YMDHMS='j. xg Y, H:i:s',
YMDHM ='j. xg Y, H:i',
YMD ='j. xg Y',
YM ='F Y',
MD ='j. xg',
Y ='Y',
M ='F'
},
['sl-form'] = {
YMDHMS='j. xg Y "ob" H:i:s',
YMDHM ='j. xg Y "ob" H:i',
YMD ='j. xg Y',
YM ='F Y',
MD ='j. xg',
Y ='Y',
M ='F'
},
-- year/month/day languages
['zh-form'] = {
YMDHMS='Y年Fj日, H:i:s',
YMDHM ='Y年Fj日, H:i',
YMD ='Y年Fj日',
YM ='Y年F',
MD ='Fj日',
Y ='Y年',
M ='F'
},
['ko-form'] = {
YMDHMS='Y년 F j일, H:i:s',
YMDHM ='Y년 F j일, H:i',
YMD ='Y년 F j일',
YM ='Y년 F',
MD ='F j일',
Y ='Y년',
M ='F'
},
['hu-form'] = {
YMDHMS='Y. F j., H:i:s',
YMDHM ='Y. F j., H:i',
YMD ='Y. F j.',
YM ='Y. F',
MD ='F j.',
Y ='Y',
M ='F'
},
['lt-form'] = {
YMDHMS='Y "m". F j "d"., H:i:s',
YMDHM ='Y "m". F j "d"., H:i',
YMD ='Y "m". F j "d".',
YM ='Y "m". F',
MD ='F j "d".',
Y ='Y "m".',
M ='F'
},
['eu-form'] = {
YMDHMS='Y"ko" F"ren" j"a", H:i:s',
YMDHM ='Y"ko" F"ren" j"a", H:i',
YMD ='Y"ko" F"ren" j"a"',
YM ='Y"ko" F',
MD ='F"ren" j"a"',
Y ='Y',
M ='F'
},
['eu-form01'] = { -- 1st and 21st of the month uses different form
YMDHMS='Y"ko" F"ren" j"ea", H:i:s',
YMDHM ='Y"ko" F"ren" j"ea", H:i',
YMD ='Y"ko" F"ren" j"ea"',
YM ='Y"ko" F',
MD ='F"ren" j"ea"',
Y ='Y',
M ='F'
},
['eu-form11'] = { -- 11th and 31st of the month uses different form
YMDHMS='Y"ko" F"ren" j, H:i:s',
YMDHM ='Y"ko" F"ren" j, H:i',
YMD ='Y"ko" F"ren" j',
YM ='Y"ko" F',
MD ='F"ren" j',
Y ='Y',
M ='F'
},
['ce-form'] = {
YMDHMS='Y "шаран" j F, H:i:s',
YMDHM ='Y "шаран" j F, H:i',
YMD ='Y "шаран" j F',
YM ='Y "шаран" F',
MD ='j F',
Y ='Y "шо"',
M ='F'
},
-- year/day/month languages
['lv-form'] = {
YMDHMS='Y". gada" j. F, H:i:s',
YMDHM ='Y". gada" j. F, H:i',
YMD ='Y". gada" j. F',
YM ='Y". gada" F',
MD ='j. F',
Y ='Y". gada"',
M ='F'
},
-- month/day/year languages
['kn-form'] = {
YMDHMS='F j, Y, H:i:s',
YMDHM ='F j, Y, H:i',
YMD ='F j, Y',
YM ='F, Y',
MD ='F j',
Y ='Y',
M ='F'
},
['bpy-form']= {
YMDHMS='F j, মারি Y, H:i:s',
YMDHM ='F j, মারি Y, H:i',
YMD ='F j, মারি Y',
YM ='F, মারি Y',
MD ='F j',
Y ='মারি Y',
M ='F'
},
['mr-form'] = {
YMDHMS='F j, इ.स. Y, H:i:s',
YMDHM ='F j, इ.स. Y, H:i',
YMD ='F j, इ.स. Y',
YM ='F, इ.स. Y',
MD ='F j',
Y ='इ.स. Y',
M ='F'
},
['new-form']= {
YMDHMS='F j, ई सं Y, H:i:s',
YMDHM ='F j, ई सं Y, H:i',
YMD ='F j, ई सं Y',
YM ='F, ई सं Y',
MD ='F j',
Y ='ई सं Y',
M ='F'
},
}
return p
h3nl2o5p10d2zgftkzbo2mvv6vlm41f
Modul:I18n/ordinal
828
615
2743
2742
2024-12-03T14:16:35Z
Jon Harald Søby
20
3 revisi diimpor
2740
Scribunto
text/plain
local p = {}
--[[ Different languages use different schemes for ordinals, and some of these schemes are shared between languages.
"SchemeFromLang" picks an ordinal scheme based on a specified language.
All unlisted languages default to the "period-scheme", i.e. "104." is the ordinal for the value "104".
Languages will follow the regular language fallback chain. For example, "de-formal" would fallback to scheme for "de",
and only if that does not exist would the "period-scheme" be used.
]]
p.SchemeFromLang = {
['ast'] = 'ast-scheme', -- Asturian
['bn'] = 'bn-scheme', -- Bengali
['br'] = 'br-scheme', -- Breton
['ca'] = 'ca-scheme', -- Catalan
['cs'] = 'period-scheme', -- Czech
['da'] = 'period-scheme', -- Danish
['de'] = 'period-scheme', -- German
['el'] = 'el-scheme', -- Greek
['en-gb'] = 'en-scheme', -- British English
['en-ca'] = 'en-scheme', -- Canadian English
['en'] = 'en-scheme', -- English
['eo'] = 'eo-scheme', -- Esperanto
['es'] = 'es-scheme', -- Spanish
['et'] = 'period-scheme', -- Estonian
['eu'] = 'roman-scheme', -- Basque
['fa'] = 'fa-scheme', -- Persian
['fi'] = 'period-scheme', -- Finnish
['fr'] = 'fr-scheme', -- French
['hr'] = 'period-scheme', -- Croatian
['hu'] = 'period-scheme', -- Hungarian
['hy'] = 'hy-scheme', -- Armenian
['ia'] = 'ia-scheme', -- Interlingua
['it'] = 'romance-scheme', -- Italian
['ja'] = 'ja-scheme', -- Japanese
['km'] = 'km-scheme', -- Khmer
['ko'] = 'ko-scheme', -- Korean
['la'] = 'la-scheme', -- Latin
['lo'] = 'lo-scheme', -- Laothian
['mk'] = 'mk-scheme', -- Macedonian
['ml'] = 'ml-scheme', -- Malayalam
['ms'] = 'ms-scheme', -- Malay
['nds'] = 'period-scheme', -- Low German
['nb'] = 'period-scheme', -- Norwegian Bokmål
['nl'] = 'nl-scheme', -- Dutch
['nn'] = 'period-scheme', -- Norwegian Nynorsk
['no'] = 'period-scheme', -- Norwegian
['pl'] = 'pl-scheme', -- Polish
['pt'] = 'romance-scheme', -- Portuguese
['ru'] = 'ru-scheme', -- Russian
['sk'] = 'period-scheme', -- Slovak
['sl'] = 'period-scheme', -- Slovene
['sv'] = 'sv-scheme', -- Swedish
['ta'] = 'ta-scheme', -- Tamil
['th'] = 'th-scheme', -- Thai
['uk'] = 'uk-scheme', -- Ukrainian
['vi'] = 'vi-scheme', -- Vietnamese
['zh-hans'] = 'zh-scheme', -- Simplified Chinese
['zh-hant'] = 'zh-scheme', -- Traditional Chinese
}
--[[ Text used to internationalize the various schemes.
Styles are supported by suffixing "/style" to key.
Styles that are superscripted set "superscript" to true (this style can be disabled, e.g. in category and page names not supporting HTML styling tags).
Scheme set was developed to match the output of the pre-Lua {{Ordinal}} template, preserved as {{Ordinal/old}}
]]
p.Scheme = {
-- the null scheme, i.e. just the number (normally not used except in technical contexts expecting only numbers)
['null-scheme'] = {
},
-- the period scheme, i.e. "<value>." used for at least: cs, de, fi, hu
['period-scheme'] = {
rules = 'suffix',
suffix = '.'
},
-- Roman (Basque, Galician, Italian, and Classical Latin)
['roman-scheme'] = {
period = false,
superscript = false,
formatlang = 'roman'
},
-- Romance (Italian, Portuguese)
['romance-scheme'] = {
rules = 'gendered-suffix',
superscript = true,
period = false,
suffix = 'o',
suffix_m = 'o',
suffix_f = 'a',
suffix_n = 'o',
},
-- Asturian
['ast-scheme'] = {
rules = 'gendered-suffix',
superscript = true,
period = false,
suffix = 'u',
suffix_m = 'u',
suffix_f = 'a',
suffix_n = 'o',
},
-- Bengali (reference: https://www.bissoy.com/701365/)
['bn-scheme'] = {
rules = 'suffix',
suffix = 'তম',
suffix_0 = 'ম',
suffix_1 = 'ম',
suffix_2 = 'য়',
suffix_3 = 'য়',
suffix_4 = 'র্থ়',
suffix_5 = 'ম',
suffix_6 = 'ষ্ঠ',
suffix_7 = 'ম',
suffix_8 = 'ম',
suffix_9 = 'ম',
},
-- Breton
['br-scheme'] = {
-- non-breaking hyphen ("‑", U+2011) is used below
rules = 'suffix',
suffix = '‑vet',
formatlang = 'eo' -- pre-Lua {{Ordinal}} template used "eo" number formatting for "br" ordinals (???FIXME???)
},
-- Catalan
['ca-scheme'] = {
rules = 'gendered-suffix-n',
superscript = false,
period = false,
suffix = 'è',
suffix_f = 'a',
suffix_1 = 'r',
suffix_1_f = 'a',
suffix_2 = 'n',
suffix_2_f = 'a',
suffix_3 = 'r',
suffix_3_f = 'a',
suffix_4 = 't',
suffix_4_f = 'a'
},
-- Greek
['el-scheme'] = {
rules = 'gendered-suffix',
suffix = 'ος',
suffix_m = 'ος',
suffix_f = 'η',
suffix_n = 'ο',
},
-- the English scheme, i.e. "1st", "2nd", "3rd", "4th".
['en-scheme'] = {
rules = 'skip-tens',
superscript = true,
suffix = 'th',
suffix_1 = 'st',
suffix_2 = 'nd',
suffix_3 = 'rd',
},
-- the English scheme using the "d" style, i.e. "23d".
['en-scheme/d'] = {
rules = 'suffix',
suffix = 'd'
},
-- Esperanto
['eo-scheme'] = {
rules = 'suffix',
-- non-breaking hyphen ("‑", U+2011) is used below
suffix = '‑a',
},
-- Spanish (period plus Romance)
['es-scheme'] = {
rules = 'gendered-suffix',
superscript = true,
period = true,
suffix = 'o',
suffix_m = 'o',
suffix_f = 'a',
suffix_n = 'o',
},
-- Persian
['fa-scheme'] = {
rules = 'suffix',
suffix = 'م',
},
-- French
['fr-scheme'] = {
rules = 'gendered-suffix-one',
superscript = true,
suffix = 'e',
suffix_1 = 'e', -- there's NO neutral gender in French (this is only for unspecified gender)
suffix_1_m = 'er',
suffix_1_f = 're',
},
-- French alternate specific style for 2nd (used only when the 2nd is also the *last* one in a pair, including World Wars)
['fr-scheme/pair'] = {
rules = 'gendered-suffix-n',
superscript = true,
suffix = 'e',
suffix_1 = 'e',
suffix_1_m = 'er',
suffix_1_f = 're',
suffix_2 = 'e',
suffix_2_m = 'nd',
suffix_2_f = 'de',
},
-- the French scheme using the "roman" style ("roman year" is a supported alias for "roman")
['fr-scheme/roman'] = {
rules = 'gendered-suffix-one',
superscript = true,
suffix = 'e',
suffix_1 = 'e',
suffix_1_m = 'er',
suffix_1_f = 're',
formatlang = 'roman' -- styled normally in small capitals (except milleniums using big capitals)
},
-- French specific roman ordinal style after names of personal titles (kings/queens/popes…) and of book chapters (suffixed only for 1st)
['fr-scheme/roman-title'] = {
rules = 'gendered-suffix-one',
superscript = true,
suffix = '', -- no suffix except for 1st
suffix_1 = 'e',
suffix_1_m = 'er',
suffix_1_f = 're',
suffix_1_n = 'е',
formatlang = 'roman' -- style using only big capitals
},
-- Armenian
['hy-scheme'] = {
rules = 'suffix-one',
-- non-breaking hyphens ("‑", U+2011) are used below
suffix = '‑րդ',
suffix_1 = '‑ին',
},
-- Interlingua
['ia-scheme'] = {
rules = 'mod10-suffix',
superscript = true,
suffix_0 = 'te',
suffix_1 = 'me',
suffix_2 = 'nde',
suffix_3 = 'tie',
suffix_4 = 'te',
suffix_5 = 'te',
suffix_6 = 'te',
suffix_7 = 'me',
suffix_8 = 've',
suffix_9 = 'ne',
},
-- Japanese
-- this is for the adjective in undetermined order before noun; otherwise Japanese use: <cardinal number><noun>目
['ja-scheme'] = {
rules = 'prefix',
prefix = '第',
},
-- Khmer
['km-scheme'] = {
rules = 'prefix',
prefix = 'ទ',
},
-- Korean
['ko-scheme'] = {
rules = 'suffix',
suffix = '째',
},
-- Latin
['la-scheme'] = {
rules = 'suffix',
superscript = true,
suffix = 'o',
formatlang = 'roman'
},
-- Laothian
['lo-scheme'] = {
rules = 'prefix',
prefix = 'ທີ່',
},
-- Macedonian
['mk-scheme'] = {
rules = 'mod10-suffix',
-- non-breaking hyphens ("‑", U+2011) are used below
suffix_0 = '‑тиот',
suffix_1 = '‑виот',
suffix_2 = '‑риот',
suffix_3 = '‑иот',
suffix_4 = '‑иот',
suffix_5 = '‑тиот',
suffix_6 = '‑иот',
suffix_7 = '‑миот',
suffix_8 = '‑миот',
suffix_9 = '‑тиот',
},
-- Malayalam
['ml-scheme'] = {
rules = 'suffix',
-- non-breaking hyphen ("‑", U+2011) is used below
suffix = '‑മത്തെ',
},
-- Malay
['ms-scheme'] = {
rules = 'prefix',
-- non-breaking hyphen ("‑", U+2011) is used below
prefix = 'ke‑',
},
-- Dutch
['nl-scheme'] = {
rules = 'suffix',
suffix = 'e',
},
-- Polish
['pl-scheme'] = {
rules = 'mod10-gendered-suffix-skip-tens',
-- non-breaking hyphens ("‑", U+2011) are used below
suffix = '‑ty',
suffix_f = '‑ta',
suffix_n = '‑te',
suffix_1 = '‑szy',
suffix_1_f = '‑sza',
suffix_1_n = '‑sze',
suffix_2 = '‑gi',
suffix_2_f = '‑ga',
suffix_2_n = '‑gie',
suffix_3 = '‑ci',
suffix_3_f = '‑cia',
suffix_3_n = '‑cie',
suffix_7 = '‑my',
suffix_7_f = '‑ma',
suffix_7_n = '‑me',
suffix_8 = '‑my',
suffix_8_f = '‑ma',
suffix_8_n = '‑me',
},
-- Russian
['ru-scheme'] = {
rules = 'gendered-suffix',
-- non-breaking hyphens ("‑", U+2011) are used below
suffix = '‑й',
suffix_m = '‑й',
suffix_f = '‑я',
suffix_n = '‑е',
},
-- Swedish
['sv-scheme'] = {
rules = 'skip-tens',
suffix = ':e',
suffix_1 = ':a',
suffix_2 = ':a',
},
-- Thai
['th-scheme'] = {
rules = 'prefix',
prefix = 'ที่',
},
-- Modern Tamil (using European digits for all numbers, with a hyphen before the suffix)
['ta-scheme'] = {
rules = 'suffix',
-- non-breaking hyphen ("‑", U+2011) is used below
suffix = '‑ஆம்',
formatlang = 'en',
},
-- Traditional Tamil (using Tamil digits without any hyphen before the suffix, but a distinct prefix and suffix for 1st)
['ta-scheme/trad'] = {
rules = 'suffix-one',
suffix = 'ஆம்',
prefix_1 = 'மு',
suffix_1 = 'லாம்',
},
-- Ukrainian: see [[:uk:Вікіпедія:Стиль/Нарощення порядкових числівників#Нарощення]] and [[:uk:Шаблон:-й]]
-- FIXME: 0?
['uk-scheme'] = {
rules = 'uk-rules',
-- non-breaking hyphens ("‑", U+2011) are used below
suffix = '‑й',
suffix_f = '‑та',
suffix_n = '‑те',
suffix_1_f = '‑ша',
suffix_1_n = '‑ше',
suffix_2_f = '‑га',
suffix_2_n = '‑ге',
suffix_3_f = '‑тя',
suffix_3_n = '‑тє',
suffix_7_f = '‑ма',
suffix_7_n = '‑ме',
suffix_8_f = '‑ма',
suffix_8_n = '‑ме',
suffix_40_f = '‑ва',
suffix_40_n = '‑ве',
suffix_1000_f = '‑на',
suffix_1000_n = '‑не',
},
-- Vietnamese
['vi-scheme'] = {
rules = 'prefix',
prefix = 'thứ ',
},
-- Chinese
['zh-scheme'] = {
rules = 'prefix',
prefix = '第',
},
}
return p
hp9srvnekndp7rb84n8a7t3a81gr9w7
Modul:ISOdate
828
616
2746
2745
2024-12-03T14:16:35Z
Jon Harald Søby
20
2 revisi diimpor
2744
Scribunto
text/plain
--[[
This module is intended for processing of date strings.
Please do not modify this code without applying the changes first at Module:ISOdate/sandbox and testing
at Module:ISOdate/sandbox/testcases and Module talk:ISOdate/sandbox/testcases.
Authors and maintainers:
* User:Parent5446 - original version of the function mimicking template:ISOdate
* User:Jarekt - original version of the functions mimicking template:Date and template:ISOyear
]]
local p = {}
-- =======================================
-- === Dependencies ======================
-- =======================================
local D = require('Module:Date')
--[[
ISOyear
This function returns year part of date string.
Usage:
{{#invoke:ISOdate|ISOyear|target_string}}
Parameters
1: The date string
Error Handling:
If the string does not look like it contain the year than the function will not return anything.
That is the preferred treatment for the template:Creator which is the main (only?) template calling it.
]]
function p.ISOyear( frame )
return p._ISOyear( frame.args[1] )
end
function p._ISOyear( input )
if not input then
return ''
end
input = mw.text.trim( input )
-- if empty string then return it
if input == "" then
return input
end
-- if number then return it
if tonumber( input ) then
return mw.ustring.format( '%04i', input )
end
-- otherwise use regular expression match
input = mw.ustring.match( input, '^+?(-?%d%d?%d?%d?)-' )
if input and tonumber( input ) then
return mw.ustring.format( '%04i', input )
else
return ''
end
end
--[[
ISOdate
This function is the core part of the ISOdate template.
Usage:
{{#invoke:ISOdate|ISOdate|target_string|lang=}}
Parameters:
1: The date string
lang: The language to display it in
form: Language format (genitive, etc.) for some languages
class: CSS class for the <time> node
Error Handling:
If the string does not look like it contain the proper ISO date than the function will return the original string.
That is the preferred treatment for the template:Information (and similar templates) which calling it.
]]
function p.ISOdate(frame)
local datestr, succeded
local args = frame.args
if not (args.lang and mw.language.isSupportedLanguage(args.lang)) then
args.lang = frame:callParserFunction( "int", "lang" ) -- get user's chosen language
end
datestr, succeded = p._ISOdate(
mw.text.trim(args[1]),
args.lang, -- language
args.case or '', -- allows to specify grammatical case for the month for languages that use them
args.class or 'dtstart', -- allows to set the html class of the time node where the date is included.
args.trim_year or '100-999' -- by default pad one and 2 digit years to be 4 digit long, while keeping 3 digit years as is
)
return datestr
end
function p._ISOdate(datestr, lang, case, class, trim_year)
-- pattern: regexp - regular expresion to test; dlen - number of date elements; tail = which element is a "tail" if any
-- regexp hints:
-- 1) Strings starting with "^" and ending with "$" indicate whole string match
-- 2) optional tail part copied as-is and following the main parsed part of the date have to be separated from the date by a whitespace, so "(\s.+)?"
local patterns = {
-- strings starting with YYYY-MM-DD HH:MM:SS. Year 4 digits (if we know seconds than it was within the last 100 years), the rest 1-2
-- date and time can be separated by space or "T" and there could be a "Z" on the end indicating "Zulu" time zone
{dlen=6, tail=7, regexp="^+?(%d%d%d%d)-(%d%d?)-(%d%d?)[ T](%d%d?):(%d%d?):(%d%d?)Z?(%s.*)"},
{dlen=6, tail=0, regexp="^+?(%d%d%d%d)-(%d%d?)-(%d%d?)[ T](%d%d?):(%d%d?):(%d%d?)Z?$"},
-- strings starting with YYYY-MM-DD HH:MM. Year 4 digits, the rest 1-2
-- (if one knows hour and minute than it was probably after a year 1000)
{dlen=5, tail=6, regexp="^+?(%d%d%d%d)-(%d%d?)-(%d%d?)[ T](%d%d?):(%d%d?)(%s.+)"},
{dlen=5, tail=0, regexp="^+?(%d%d%d%d)-(%d%d?)-(%d%d?)[ T](%d%d?):(%d%d?)$"},
-- strings starting with YYYY-MM-DD. Year 1-4 digits, the rest 1-2
{dlen=3, tail=4, regexp="^+?(%d%d?%d?%d?)-(%d%d?)-(%d%d?)(%s.+)"},
{dlen=3, tail=0, regexp="^+?(%d%d?%d?%d?)-(%d%d?)-(%d%d?)$"},
-- strings starting with YYYY-MM. Year 3-4 digits, month 2 digits
-- (want to avoit converting to dates strings like 10-5 = 5
{dlen=2, tail=3, regexp="^+?(%d%d%d%d?)-(%d%d)(%s.+)"},
-- if whole string is in YYYY-MM form: If Year 1-4 digits, month 1-2 digits
{dlen=2, tail=0, regexp="^+?(%d%d?%d?%d?)-(%d%d?)$"},
-- string starts with a number -> it has to be 3 or 4 digit long to be a year
{dlen=1, tail=2, regexp="^+?(%d%d%d%d?)(%s.+)"},
-- if whole string is a number (1-4 digit long) than it will be interpreted as a year
{dlen=1, tail=0, regexp="^+?(%d%d?%d?%d?)$"},
}
-- create datevec based on which variables are provided
local datevec, tail, formatNum
datevec, tail, formatNum = p.test_date_formats(datestr or '', patterns)
if datevec[1]=='' or datevec[1]==nil then
-- quickly return if datestr does not look like date (it could be a template)
return datestr, false
end
-- call p._Date function to format date string
local succeded, datestr2
succeded, datestr2 = pcall( D._Date, datevec, lang, case, class, trim_year)
if succeded and datestr2~='' then
return mw.text.trim( datestr2 .. tail), true
else -- in case of errors return the original string
return datestr, false
end
end
function p.ISOdate_extended(frame)
-- pattern: regexp - regular expresion to test; dlen - number of date elements; tail = which element is a "tail" if any
-- regexp hints:
-- 1) Strings starting with "^" and ending with "$" indicate whole string match
-- 2) optional tail part copied as-is and following the main parsed part of the date have to be separated from the date by a whitespace, so "(\s.+)?"
local datestr, succeded
local args = frame.args
if not (args.lang and mw.language.isSupportedLanguage(args.lang)) then
args.lang = frame:callParserFunction( "int", "lang" ) -- get user's chosen language
end
datestr, succeded = p._ISOdate(
mw.text.trim(args[1]),
args.lang, -- language
args.case or '', -- allows to specify grammatical case for the month for languages that use them
args.class or 'dtstart', -- allows to set the html class of the time node where the date is included.
args.trim_year or '100-999' -- by default pad one and 2 digit years to be 4 digit long, while keeping 3 digit years as is
)
if succeded then
return datestr
end
local patterns = {
-- Exended set of recognized formats: like MM/DD/YYYY
{dlen=3, tail=4, regexp="^(%d%d?)[-./](%d%d?)[-./](%d%d%d%d)(%s.+)"},
{dlen=3, tail=0, regexp="^(%d%d?)[-./](%d%d?)[-./](%d%d%d%d)$"},
{dlen=3, tail=0, regexp="^(%d%d?)%s(%w+)%s(%d%d%d%d)$"},
{dlen=3, tail=0, regexp="^(%w+)%s(%d%d?),%s(%d%d%d%d)$"},
}
local datevec, tail, formatNum, category = ''
datevec, tail, formatNum = p.test_date_formats(frame.args[1], patterns)
if formatNum==1 or formatNum==2 then
vec = datevec;
if tonumber(datevec[1])>12 then
frame.args[1] = string.format('%04i-%02i-%02i', datevec[3], datevec[2], datevec[1] )
category = '[[Kategori:Date in DD/MM/YYYY format]]'
return mw.text.trim( p.ISOdate(frame) .. tail);
elseif tonumber(datevec[2])>12 then
frame.args[1] = string.format('%04i-%02i-%02i', datevec[3], datevec[1], datevec[2] )
category = '[[Kategori:Date in MM/DD/YYYY format]]'
return mw.text.trim( p.ISOdate(frame) .. tail);
end
elseif (formatNum==3 or formatNum==4) and (datevec[3]=='' or datevec[3]~=nil) then
local str = mw.getCurrentFrame():callParserFunction( "#time", { 'Y-m-d', datestr} )
local vec = {str:match( "^(%d%d?%d?%d?)-(%d%d?)-(%d%d?)$" )}
if vec and vec[1]~=nil then
frame.args[1] = string.format('%04i-%02i-%02i', vec[1], vec[2], vec[3] )
category = '[[Kategori:Date in word format]]'
return p.ISOdate(frame);
end
end
return datestr
end
function p.test_date_formats(datestr, patterns)
-- pattern: regexp - regular expresion to test; dlen - number of date elements; tail = which element is a "tail" if any
local datevec = {'','','','','',''}
local tail = ''
local vec, pat
local formatNum = 0
for i, pat in ipairs( patterns ) do
vec = {datestr:match( pat.regexp )}
if vec and vec[1]~=nil then
for j=1,pat.dlen do
datevec[j] = vec[j]
end
if pat.tail>0 and vec[pat.tail]~=nil then
tail = mw.ustring.gsub(' ' .. vec[pat.tail], ' +', ' ')
end
formatNum = i
break
end
end
return datevec, tail, formatNum
end
return p
gn4dob6o50qk3mkdm852i0sl5owt1mb
Modul:Image
828
617
2748
2747
2024-12-03T14:16:35Z
Jon Harald Søby
20
1 revisi diimpor
2747
Scribunto
text/plain
local p = {}
--=====================================================
-- Ritorna le dimensioni dell'immagine (larghezza x altezza)
-- Se queste non sono passate dai parametri tenta di recuperarle
-- dalle informazioni del file immagine, altrimenti ricade su
-- una larghezza pari a 350 e un'altezza pari alla larghezza
--=====================================================
local function get_dimensions(name)
local page = mw.title.new(name, 'Media')
width = page.file and page.file.width or 350
height = page.file and page.file.height or wr
return width, height
end
--interfacce
function p.get_dimensions( frame )
local getArgs = require('Module:Arguments').getArgs
local args = getArgs(frame)
local filename = args[1] or args['filename'] or ""
local width, height = get_dimensions(filename)
return width .. "x" .. height
end
function p.get_width( frame )
local getArgs = require('Module:Arguments').getArgs
local args = getArgs(frame)
local filename = args[1] or args['filename'] or ""
local width, height = get_dimensions(filename)
local requestedHeight = args[2] or args['height'] or ''
if requestedHeight ~= '' then
width = math.floor(width * requestedHeight / height +0.5) --round function do not exist in LUA
end
return width
end
function p.get_height( frame )
local getArgs = require('Module:Arguments').getArgs
local args = getArgs(frame)
local filename = args[1] or args['filename'] or ""
local width, height = get_dimensions(filename)
local requestedWidth = args[2] or args['width'] or ''
if requestedWidth ~= '' then
height = math.floor(height * requestedWidth / width +0.5) --round function do not exist in LUA
end
return height
end
return p
853pyart1x3qhgl3q7w7bb9gs8sr6px
Modul:Interwiki
828
618
2750
2749
2024-12-03T14:16:35Z
Jon Harald Søby
20
1 revisi diimpor
2749
Scribunto
text/plain
-- This module provides functions and objects for dealing with interwiki links.
-- di adaptasi dari [[Modul:Wy/eo/Interwiki]]
local checkType = require('libraryUtil').checkType
local interwikiData = mw.loadData('Module:Interwiki/data')
--------------------------------------------------------------------------------
-- Prefix class
--------------------------------------------------------------------------------
local Prefix = {}
Prefix.__index = Prefix
function Prefix.new(code)
checkType('Prefix.new', 1, code, 'string')
local obj = setmetatable({}, Prefix)
local data = interwikiData.prefixes[code]
if not data then
return nil
end
for k, v in pairs(data) do
obj[k] = v
end
return obj
end
function Prefix:makeUrl(page)
checkType('makeUrl', 1, page, 'string')
-- In MediaWiki, interlanguage links are wiki-encoded (spaces are encoded
-- as underscores), even if the site is not a wiki and underscores don't
-- make sense. So we do the same here.
page = mw.uri.encode(page, 'WIKI')
return mw.message.newRawMessage(self.url, page):plain()
end
function Prefix:isValidUrl(url)
checkType('isValidUrl', 1, url, 'string')
local obj1 = mw.uri.new(self.url)
local obj2 = mw.uri.new(url)
if not obj2 then
return false
elseif obj1.protocol and obj1.protocol ~= obj2.protocol then
-- Protocols only have to match if the prefix URL isn't protocol-relative
return false
elseif obj1.host ~= obj2.host then
return false
end
local function makePathQuery(obj)
return obj.path .. (obj.queryString or '')
end
local pathQuery1 = makePathQuery(obj1)
local pathQuery2 = makePathQuery(obj2)
-- Turn pathQuery1 into a string pattern by escaping all punctuation, then
-- replacing the "$1" parameter (which will have become "%$1") with ".*"
local pattern = pathQuery1:gsub('%p', '%%%0'):gsub('%%$1', '.*')
pattern = '^' .. pattern .. '$'
return pathQuery2:find(pattern) ~= nil
end
local langcode = {
['bat_smg'] = 'bat-smg',
['be_x_old'] = 'be-x-old',
['cbk_zam'] = 'cbk-zam',
['fiu_vro'] = 'fiu-vro',
['map_bms'] = 'map-bms',
['nds_nl'] = 'nds-nl',
['roa_rup'] = 'roa-rup',
['roa_tara'] = 'roa-tara',
['zh_classical'] = 'zh-classical',
['zh_min_nan'] = 'zh-min-nan', -- a comma have to be added when new lines are added
['zh_yue'] = 'zh-yue'
}
p460 = function(entity) -- access the first valid value of P460
if entity and entity.claims and entity.claims["P460"] then
for i, j in pairs(entity:getBestStatements( "P460" )) do
if j.mainsnak.snaktype == 'value' then
return 'Q' .. j.mainsnak.datavalue.value['numeric-id']
end
end
end
return nil
end
Prefix.interwiki = function(frame)
local s = {}
local entity = mw.wikibase.getEntity()
local qid = frame.args.qid or frame:getParent().args.qid or p460(entity) -- uses parameter qid of the module if it exists, otherwise follow P460
if frame.args.qid == '' or frame:getParent().args.qid == '' then
qid = p460(entity)
end
if qid then
local entity2 = mw.wikibase.getEntity(qid)
if entity2 and entity2.sitelinks then
for i, j in pairs(entity2.sitelinks) do
if mw.ustring.sub( j.site, -mw.ustring.len('voyage') ) == 'voyage' then -- lasas nur Vikivojaĝojn kaj forigas ĉiujn aliajn projektojn
local lang = langcode[mw.ustring.sub( j.site, 1, mw.ustring.len(j.site) - mw.ustring.len('wikivoyage') )] or mw.ustring.sub( j.site, 1, mw.ustring.len(j.site) - mw.ustring.len('wikivoyage') ) -- de la retejnomo prenas la lingvan kodon tiel, ke forigas lastaj parton "wikivoyage"
if (entity and not entity.sitelinks[j.site]) or not entity then -- excludes interwiki to projects that already have sitelinks in the present page
table.insert(s, '[[' .. lang .. ':voy:' .. j.title .. ']]' ) -- put together a interwiki-link to other projects
end
end
end
end
end
if #s > 0 then
table.insert(s, "[[Kategori:Artikel dengan interwiki]]")
end
return table.concat(s, '')
end
return Prefix
1t960ted52hkag9ceqz4k0ommybb52k
Modul:Interwiki/data
828
619
2752
2751
2024-12-03T14:16:35Z
Jon Harald Søby
20
1 revisi diimpor
2751
Scribunto
text/plain
-- This module processes data from mw.site.interwikiMap for use with
-- [[Modul:Interwiki]]. By loading the data with mw.loadData we ensure that
-- this is only done once per page parse.
-- di salin-tempel dari [[Modul:Wp/avk/Interwiki/data]]
local prefixes, urls, hosts = {}, {}, {}
local function makeCountedData(t, storeKey, counterKey, itemKey, item)
t = t or {}
t[storeKey] = t[storeKey] or {}
t[storeKey][itemKey] = item
t[counterKey] = t[counterKey] and t[counterKey] + 1 or 1
return t
end
for prefix, data in pairs(mw.site.interwikiMap()) do
local prefixData = {}
for k, v in pairs(data) do
prefixData[k] = v
end
prefixes[prefix] = prefixData
local urlData = makeCountedData(
urls[urlText],
'prefixes',
'nPrefixes',
prefix,
prefixData
)
urlData.url = prefixData.url
urls[urlData.url] = urlData
end
for url, urlData in pairs(urls) do
local urlObj = mw.uri.new(url) -- We can't output URI objects as they have metatables
if not urlObj or not urlObj.host then
error(string.format(
"could not find a host in URL '%s'; " ..
"please check your wiki's interwiki data",
tostring(url)
))
end
local hostData = makeCountedData(
hosts[urlObj.host],
'urls',
'nUrls',
url,
urlData
)
hostData.host = urlObj.host
hosts[urlObj.host] = hostData
end
return {
prefixes = prefixes,
urls = urls,
hosts = hosts
}
hih61gacqhi0455t7d21c7xkuqp9s46
Modul:LACMTA
828
620
2755
2754
2024-12-03T14:16:35Z
Jon Harald Søby
20
2 revisi diimpor
2753
Scribunto
text/plain
local getArgs = require('Module:Arguments').getArgs
local p = {}
local function makeInvokeFunction(funcName)
-- makes a function that can be returned from #invoke, using
-- [[Modul:Arguments]].
return function (frame)
local args = getArgs(frame, {parentOnly = true})
return p[funcName](args)
end
end
local function colorbox(color,text,link)
return '[['..link..'|<span style="border:1px solid darkgray;background-color:'..color..'" title="'..text..'"> </span>]] '
end
local t1 = {
['Harbor Transitway'] = { 'harbor transitway', 'harbor', color='#B8860B', icon='colorbox', },
['El Monte Busway'] = { 'el monte busway', 'el monte', color='#B8AD93', icon='colorbox', },
['Regional Connector Transit Corridor'] = { 'regional connector transit corridor', 'regional connector', 'regional', color='#604020', icon='colorbox', },
['Orange Line'] = { 'orange line', 'orange', icon='img_square', dab=true, },
['Red Line'] = { 'red line', 'red', icon='img_circle', dab=true, },
['Purple Line'] = { 'purple line', 'purple', icon='img_circle', dab=true, },
['Blue Line'] = { 'blue line', 'blue', icon='img_circle', dab=true, },
['Expo Line'] = { 'expo line', 'expo', icon='img_circle', dab=true, },
['Green Line'] = { 'green line', 'green', icon='img_circle', dab=true, },
['Gold Line'] = { 'gold line', 'gold', icon='img_circle', dab=true, },
['Crenshaw/LAX Line'] = { 'crenshaw/lax line', 'crenshaw/lax', 'crenshaw line', 'crenshaw', icon='crenshaw', },
['Silver Line'] = { 'silver line', 'silver', icon='img_square', dab=true, },
}
p.icon = makeInvokeFunction('_icon')
function p._icon(args)
local link
local code = args[1] or ''
local text = args[2]
if text then text = '('..text..')' else text = '' end
local showtext = args.showtext
for k, v in pairs(t1) do
for _, name in ipairs(v) do
if mw.ustring.lower(code) == name then
if v.dab == true then
link = k..' (Los Angeles Metro)'
if showtext then showtext = '[['..link..'|'..k..']] ' else showtext = '' end
else
link = k
if showtext then showtext = '[['..k..']] ' else showtext = '' end
end
if v.icon == 'colorbox' then
return colorbox(v.color,k,k)..showtext..text
elseif v.icon == 'crenshaw' then
return '[[Berkas:LACMTA Circle Crenshaw Line.svg|'..(args.size or 17)..'px|link='..link..'|alt='..k..'|'..k..']] '..showtext..text
elseif v.icon == 'img_circle' then
return '[[Berkas:LACMTA Circle '..k..'.svg|'..(args.size or 17)..'px|link='..link..'|alt='..k..'|'..k..']] '..showtext..text
elseif v.icon == 'img_square' then
return '[[Berkas:LACMTA Square '..k..'.svg|'..(args.size or 17)..'px|link='..link..'|alt='..k..'|'..k..']] '..showtext..text
end
end
end
end
return colorbox('#fff',code..' Line',code..' Line (Los Angeles Metro)')..text
end
return p
m05n5ipwsdjeu2yljd49m3wkw48yatk
Modul:LangSwitch
828
621
2757
2756
2024-12-03T14:16:35Z
Jon Harald Søby
20
1 revisi diimpor
2756
Scribunto
text/plain
--[[
__ __ _ _ _ ____ _ _ _
| \/ | ___ __| |_ _| | ___ _| | __ _ _ __ __ _/ ___|_ _(_) |_ ___| |__
| |\/| |/ _ \ / _` | | | | |/ _ (_) | / _` | '_ \ / _` \___ \ \ /\ / / | __/ __| '_ \
| | | | (_) | (_| | |_| | | __/_| |__| (_| | | | | (_| |___) \ V V /| | || (__| | | |
|_| |_|\___/ \__,_|\__,_|_|\___(_)_____\__,_|_| |_|\__, |____/ \_/\_/ |_|\__\___|_| |_|
|___/
Authors and maintainers:
* User:Zolo - original version in Module:Fallback
* User:Jarekt
]]
local p = {}
--[[
_langSwitch
This function is the core part of the LangSwitch template.
Example usage from Lua:
text = _langSwitch({en='text in english', pl='tekst po polsku'}, lang)
Parameters:
args - table with translations by language
lang - desired language (often user's native language)
Error Handling:
]]
local function defaultCheck(args)
if not args.en and not args.default then
local err = '<b class="error">LangSwitch Error: no default</b>'
if args.nocat == '1' then
return err
else
return err .. '[[Kategori:LangSwitch template without default version]]'
end
end
return false
end
local function quickSwitch(args, arg)
local err = defaultCheck(args)
if err then
return err
end
if arg == '~' then
arg = ''
end
return arg
end
function p._langSwitch(args, lang) -- args: table of translations
-- Return error if there is not default and no english version
local err = defaultCheck(args)
if err then
return err
end
-- get the list of accepetable language (lang + those in lang's fallback chain) and check their content
assert(lang, 'LangSwitch Error: no lang')
--local langList = {lang}
--if not args[lang] then
local langList = mw.language.getFallbacksFor(lang)
table.insert(langList, 1, lang)
table.insert(langList, math.max(#langList, 2), 'default')
--end
for _, language in ipairs(langList) do
lang = args[language]
if lang == '~' then
return ''
elseif lang and lang ~= '' then
return lang
end
end
end
--[[
langSwitch
This function is the core part of the LangSwitch template.
Example Usage from a template:
{{#invoke:fallback|langSwitch|en=text in english|pl=tekst po polsku|lang={{int:lang}} }}
Parameters:
frame.args - table with translations by language
frame.args.lang - desired language (often user's native language)
Error Handling:
]]
function p.langSwitch(frame) -- version to be used from wikitext
local args = frame.args
-- if no expected args provided than check parent template/module args
if args.en == nil and args.default == nil and args.nocat == nil then
args = mw.getCurrentFrame():getParent().args
end
local lang = args.lang
if not lang or not mw.language.isSupportedLanguage(lang) then
lang = frame:callParserFunction("int", "lang") -- get user's chosen language
end
-- Try quick switch
local args1 = args[lang]
if args1 and args1 ~= '' then
return quickSwitch(args, args1)
end
-- Allow input in format: {{LangSwitch|de=Grün|es/it/pt=Verde|fr=Vert|en=Green |lang=en}}
-- with multiple languages mapping to a single value
args1 = {}
for name, value in pairs(args) do
if value ~= '' and type(name) == 'string' then
-- split multi keys
for str in string.gmatch(name, "([^/]+)") do
args1[str] = value
end
end
end
return p._langSwitch(args1, lang)
end
return p
5aniooamhpa1pzcmohi6x6lr9z2omgx
Modul:Layers
828
622
2760
2759
2024-12-03T14:16:36Z
Jon Harald Søby
20
2 revisi diimpor
2759
Scribunto
text/plain
local p = {}
local getArgs = require('Module:Arguments').getArgs
function p.Filter(frame)
local args = getArgs(frame)
local layers = args[1] or ''
local filteredLayers = 'W' -- Wikivoyage (i.e. OpenStreetMap) layer is the default one.
--filteredLayers = extract(layers,'M') --Working alternatives: M (Mapnik) & R (Relief). Remove comment in case of temporary W server issue
-- Add additional & acceptable layer parameters
filteredLayers = filteredLayers
.. extract(layers,'G') -- GPX file from Wikivoyage
.. extract(layers,'P') -- POI from Wikivoyage NOT displayed
.. extract(layers,'E') -- add search box inside the map
.. extract(layers,'D') -- destination from Wikivoyage
--[[| Disabling parameters that share user info (e.g. IP) with third parties
.. extract(layers,'S') -- hill shading from WM server
.. extract(layers,'H') -- hiking
.. extract(layers,'C') -- cycling
.. extract(layers,'B') -- border
.. extract(layers,'N') -- traffic network
]]
return filteredLayers
end
function extract(layers, layer)
if string.match(layers, layer) ~= nil then
return string.match(layers, layer)
else
return ''
end
end
return p
nin1oiu8ytnffyznpzylrkf49jaq0c8
Modul:Linguistic
828
623
2763
2762
2024-12-03T14:16:36Z
Jon Harald Søby
20
2 revisi diimpor
2761
Scribunto
text/plain
--[[
__ __ _ _ _ _ _ _ _
| \/ | ___ __| |_ _| | ___ _| | (_)_ __ __ _ _ _(_)___| |_(_) ___
| |\/| |/ _ \ / _` | | | | |/ _ (_) | | | '_ \ / _` | | | | / __| __| |/ __|
| | | | (_) | (_| | |_| | | __/_| |___| | | | | (_| | |_| | \__ \ |_| | (__
|_| |_|\___/ \__,_|\__,_|_|\___(_)_____|_|_| |_|\__, |\__,_|_|___/\__|_|\___|
|___/
Simple internationalization functions that can be called by other modules.
This Module was copied from Wikimedia Commons, so please request changes there.
Maintainers:
* Zolo - original version
* Jarekt
Dependencies:
* Module:I18n/or
* Module:Delink
* Module:Yesno
]]
-- ==================================================
-- === Internal functions ===========================
-- ==================================================
local function langSwitch(list,lang)
local langList = mw.language.getFallbacksFor(lang)
table.insert(langList,1,lang)
for i,language in ipairs(langList) do
if list[language] then
return list[language]
end
end
return nil
end
-- ==================================================
-- === External functions ===========================
-- ==================================================
local p = {}
function p.vowelfirst (str)
if str then
local vowels = 'aeiouyąăẵằẳặȃắâẫấầẩậãäǟāáàȁǎảẚåǻḁạǡæǣǽĕȇêễếềểệḙẽḛëēḕéḗèȅěẻẹęȩḝǝĭȋîĩḭïḯīíìȉǐỉịįıŏȏôỗốồổộõṏṍöōṑóṓòȍǒỏọǫǭơỡớờởợøǿŭȗûṷũṻṹṵüǖǘǜǚṳūúùȕǔủůụųưữứừửựŷỹÿȳýỳỷẙỵ'
str = mw.ustring.lower(mw.ustring.sub(str,1,1))
return mw.ustring.find(vowels, str, 1, true )
end
end
function p.inparentheses(str)
if (not str) or (str == "") then
return nil
end
return "(".. str .. ")" -- same in all languages ?
end
function p.of(word, lang, raw, gender, number, determiner) -- rough translation of "of" in various languages
-- note that the cases when on "of" is employed varies a lot among languages, so it is more prudent to call this from lang specific function only
if not raw or mw.text.trim(raw) == "" then
local args = {}
local Delink = require('Module:Delink')._delink
args[1] = word
raw = mw.ustring.lower(Delink(args))
end
-- raw is the string without the Wikiformatting so that it correctly analyses the string that is [[:fr:Italie|Italie]] -> 'italie'
-- any way to automate this ?
if lang == 'fr' then
local yesno = require('Module:Yesno')
determiner = yesno(determiner,false)
if determiner then
if string.sub(number or '',1,1)=='p' then -- number == 'plural'
return 'des ' .. word
elseif p.vowelfirst(raw) then
return 'de l’' .. word
elseif string.sub(gender or '',1,1)=='f' then -- gender == 'feminine'
return 'de la ' .. word
else
return 'du ' .. word
end
else
if p.vowelfirst(raw) then
return 'd’' .. word
else
return 'de ' .. word
end
end
elseif lang == 'ca' then
-- implement [[Templat:Of/ca]] or https://ca.wikipedia.org/wiki/Plantilla:Deod%27/base for case where "{{{context}}}" is "en" (default on Commons)
if ( p.vowelfirst(raw) and not mw.ustring.find( 'ia|ià|ie|io|iu|ua|ue|ui|uí|uï|uo|ya|ye|yi|yo|yu|', mw.ustring.sub(raw,1,2) .. '|')) then
return 'd\'' .. word
else
return 'de ' .. word
end
end
end
function p.offromwiki(frame)
args = frame.args
return p.of(args.word, args.lang, args.raw, args.gender, args.number, args.determiner)
end
function p.noungroup(noun, adj, lang)
if not noun or noun == '' then
return nil -- not '' so that it is not counted as a string by mw.listToText
end
if not adj or adj == ''
then return noun
end
local wordsep = mw.message.new( "Word-separator" ):inLanguage(lang):plain()
local LUT = { de=1, en=1, pl=1, zh=1, fr=2, es=2, it=2}
local case = langSwitch(LUT, lang)
if case==1 then -- adjective before the noun
return adj .. wordsep .. noun
elseif case==2 then -- adjective after the noun
return noun .. wordsep .. adj
else -- order unknown
return noun ' (' .. adj .. ')'
end
end
function p.conj(args, lang, conjtype)
local comma = mw.message.new( "comma-separator"):inLanguage(lang):plain()
local wordsep = mw.message.new( "Word-separator" ):inLanguage(lang):plain()
local andtable = { ar=' و', he=' ו', ja='および', pl=' i '} -- languages with a problem with the MediaWiki:And
if conjtype == 'comma' then
return mw.text.listToText(args, comma, comma)
elseif conjtype == 'or' then
local wordor = langSwitch(require('Module:I18n/or'), lang)
return mw.text.listToText(args, comma, wordor .. wordsep)
elseif conjtype == 'explicit or' then -- adds "or" betwen all words when the context can be confusing
local wordor = langSwitch(require('Module:I18n/or'), lang)
return mw.text.listToText(args, wordor .. wordsep, wordor .. wordsep)
elseif conjtype and conjtype ~= 'and' and conjtype ~= '' then
return mw.text.listToText(args, conjtype, conjtype)
elseif andtable[lang] then
return mw.text.listToText(args, comma, andtable[lang])
else
local wordand = mw.message.new( "and" ):inLanguage(lang):plain()
return mw.text.listToText(args, comma, wordand .. wordsep)
end
end
function p.conjfromWiki(frame)
args = frame.args
if not args or not args[1] then
args = frame:getParent().args
end
local lang = args.lang
if not lang or mw.text.trim(lang) == '' then
lang = frame:callParserFunction( "int", "lang" )
end
newargs = {} -- transform args metatable into a table so it can be concetenated
for i, j in pairs(args) do
if type(i) == 'number' then
j = mw.text.trim(j)
if j ~= '' then
table.insert(newargs, j)
end
else
if i ~= 'type' and i ~= 'lang' then
return 'error: bad parameter in template:Conj: ' .. i .. '[[Kategori:Pages with incorrect template usage/Conj]]'
end
end
end
return p.conj(newargs, lang, args.type)
end
return p
bblgydxyqfjhphtav3jmu21w1v5faq7
Modul:LinkPhone
828
624
2768
2767
2024-12-03T14:16:36Z
Jon Harald Søby
20
4 revisi diimpor
2766
Scribunto
text/plain
local i = {}
function i.LinkOnePhone(txt, demo, fax, tollfree)
local link = txt;
local othertxt = "";
local catprefix = '';
local catMissingCountryCode = '';
local catFormatIssue = '';
local output;
if demo == 'true' then
catprefix = ':';
end
-- any other text in brackets at the end is stored separately and ignored for the dialing number
if mw.ustring.gsub(txt, "(.*)( %(.*%))$", "%2") ~= txt then
othertxt = mw.ustring.gsub(txt, "(.*)( %(.*%))$", "%2");
txt = mw.ustring.gsub(txt, "(.*)( %(.*%))$", "%1");
end
-- Don't include "ext NNNN" in the link
link = mw.ustring.gsub(txt, " +[Ee][Xx][Tt] +%d+$", "");
-- Don't include " xNNNN" in the link
link = mw.ustring.gsub(link, " +x%d+$", "");
link = mw.ustring.gsub(link, " ", "");
link = mw.ustring.gsub(link, "'", "");
if link == "" then
return "";
end
if mw.ustring.sub(link, 1, 1) ~= '+' and mw.ustring.len(link) > 4 then
catMissingCountryCode = '[[' .. catprefix .. 'Category:Senarai dengan kode negara telepon yang kurang]]<span class="phoneinfo" style="display:none;" title="Phone number does not have country code">NOCC</span>';
if tollfree == 'yes' and mw.ustring.sub(link, 1, 3) == '800' then
catMissingCountryCode = '';
end
if tollfree == 'yes' and mw.ustring.sub(link, 1, 4) == '0508' then
catMissingCountryCode = '';
end
if tollfree == 'yes' and mw.ustring.sub(link, 1, 4) == '0800' then
catMissingCountryCode = '';
end
if tollfree == 'yes' and mw.ustring.sub(link, 1, 4) == '1300' then
catMissingCountryCode = '';
end
if tollfree == 'yes' and mw.ustring.sub(link, 1, 4) == '1800' then
catMissingCountryCode = '';
end
if tollfree == 'yes' and mw.ustring.sub(link, 1, 5) == '01800' then
catMissingCountryCode = '';
end
if mw.ustring.match(mw.ustring.lower(othertxt),"high cost") ~= nil then
catMissingCountryCode = '';
end
if mw.ustring.match(mw.ustring.lower(othertxt),"extra charge") ~= nil then
catMissingCountryCode = '';
end
if mw.ustring.match(mw.ustring.lower(othertxt),"premium") ~= nil then
catMissingCountryCode = '';
end
if mw.ustring.match(mw.ustring.lower(othertxt),"local rate") ~= nil then
catMissingCountryCode = '';
end
if mw.ustring.match(mw.ustring.lower(othertxt),"in country only") ~= nil then
catMissingCountryCode = '';
end
if mw.ustring.match(mw.ustring.lower(othertxt),"domestic") ~= nil then
catMissingCountryCode = '';
end
if mw.ustring.match(mw.ustring.lower(othertxt),"emergency") ~= nil then
catMissingCountryCode = '';
end
if mw.ustring.match(mw.ustring.lower(othertxt),"non%-emergency") ~= nil then
catMissingCountryCode = '';
end
if mw.ustring.match(mw.ustring.lower(othertxt),"non%-geographic number") ~= nil then
catMissingCountryCode = '';
end
end
if mw.ustring.match(link,"^%+[%d-() ]+$") ~= nil then
output = '<span class="plainlinks nourlexpansion">';
if fax == 'true' then
output = output .. txt .. '</span>' .. othertxt;
else
output = output .. '[tel:' .. link .. ' ' .. txt .. ']</span>' .. othertxt;
end
elseif mw.ustring.match(link,"^%+[%d%u- ]+$") ~= nil then
local extra = mw.ustring.match(link, "%u[%d%u- ]+")
link = mw.ustring.gsub(link, "[A-C]", "2");
link = mw.ustring.gsub(link, "[D-F]", "3");
link = mw.ustring.gsub(link, "[G-I]", "4");
link = mw.ustring.gsub(link, "[J-L]", "5");
link = mw.ustring.gsub(link, "[M-O]", "6");
link = mw.ustring.gsub(link, "[P-S]", "7");
link = mw.ustring.gsub(link, "[T-V]", "8");
link = mw.ustring.gsub(link, "[W-Z]", "9");
extra = mw.ustring.gsub(extra, "[A-C]", "2");
extra = mw.ustring.gsub(extra, "[D-F]", "3");
extra = mw.ustring.gsub(extra, "[G-I]", "4");
extra = mw.ustring.gsub(extra, "[J-L]", "5");
extra = mw.ustring.gsub(extra, "[M-O]", "6");
extra = mw.ustring.gsub(extra, "[P-S]", "7");
extra = mw.ustring.gsub(extra, "[T-V]", "8");
extra = mw.ustring.gsub(extra, "[W-Z]", "9");
output = '<span class="plainlinks nourlexpansion">';
if fax == 'true' then
output = output .. txt .. ' (' .. extra .. ')' .. '</span>' .. othertxt;
else
output = output .. '[tel:' .. link .. ' ' .. txt .. ' (' .. extra .. ')' .. ']</span>' .. othertxt;
end
else
output = txt .. othertxt;
if mw.ustring.match('+' .. link,"^%+[%d-() ]+$") == nil then
catFormatIssue = '[[' .. catprefix .. 'Category:Senarai dengan masalah format telepon]]<span class="phoneinfo" style="display:none;" title="Phone number has formatting issue">FORMAT</span>';
end
end
if mw.ustring.match(link,"%(0%)") ~= nil then
catFormatIssue = '[[' .. catprefix .. 'Category:Senarai dengan masalah format telepon]]<span class="phoneinfo" style="display:none;" title="Phone number has formatting issue">FORMAT</span>';
end
if mw.title.getCurrentTitle().namespace == 0 or demo == 'true' then
output = output .. catFormatIssue .. catMissingCountryCode;
end
return output;
end
function i.LinkPhone(frame)
local demo = frame.args["demo"] or '';
local fax = frame.args["fax"] or '';
local txtall = frame.args[1] or '' .. ',';
local tollfree = frame.args["tollfree"] or '';
local txt = "";
local result = "";
-- replace or / and with comma
txtall = mw.ustring.gsub(txtall, " or %+", ", +");
txtall = mw.ustring.gsub(txtall, " and %+", ", +");
for txt in mw.ustring.gmatch(txtall, "([^,]+)") do
result = result .. ", " .. i.LinkOnePhone(txt, demo, fax, tollfree)
end
result = mw.ustring.sub(result, 3, mw.ustring.len(result) );
return result;
end
function i.LinkOneEmail(txt, demo)
local othertxt = "";
local catprefix = '';
local catFormatIssue = '';
local output;
if demo == 'true' then
catprefix = ':';
end
-- any other text in brackets at the end is stored separately and ignored for the dialing number
if mw.ustring.gsub(txt, "(.*)( %(.*%))$", "%2") ~= txt then
othertxt = mw.ustring.gsub(txt, "(.*)( %(.*%))$", "%2");
txt = mw.ustring.gsub(txt, "(.*)( %(.*%))$", "%1");
end
txt = mw.ustring.gsub(txt, " ", "");
output = '[mailto:' .. txt .. ' ' .. txt .. ']' .. othertxt;
if mw.ustring.match(txt,"@.+@") ~= nil then
catFormatIssue = '[[' .. catprefix .. 'Category:Senarai dengan masalah format surel]]<span class="phoneinfo" style="display:none;" title="Email has formatting issue">FORMAT</span>';
end
if mw.ustring.match(txt,"@[^.]+%.%.") ~= nil then
catFormatIssue = '[[' .. catprefix .. 'Category:Senarai dengan masalah format surel]]<span class="phoneinfo" style="display:none;" title="Email has formatting issue">FORMAT</span>';
end
if mw.ustring.match(txt,"@") == nil then
catFormatIssue = '[[' .. catprefix .. 'Category:Senarai dengan masalah format surel]]<span class="phoneinfo" style="display:none;" title="Email has formatting issue">FORMAT</span>';
end
if mw.ustring.match(txt,"@[^.]+%.[^.]+") == nil then
catFormatIssue = '[[' .. catprefix .. 'Category:Senarai dengan masalah format surel]]<span class="phoneinfo" style="display:none;" title="Email has formatting issue">FORMAT</span>';
end
if mw.title.getCurrentTitle().namespace == 0 or demo == 'true' then
output = output .. catFormatIssue;
end
return output;
end
function i.LinkEmail(frame)
local demo = frame.args["demo"] or '';
local txtall = frame.args[1] or '' .. ',';
local txt = "";
local result = "";
-- replace semicolon with comma
txtall = mw.ustring.gsub(txtall, "; ", ", ");
for txt in mw.ustring.gmatch(txtall, "([^,]+)") do
result = result .. ", " .. i.LinkOneEmail(txt, demo)
end
result = mw.ustring.sub(result, 3, mw.ustring.len(result) );
return result;
end
return i;
0boahq1afsvq34zke8ezavp9sd0pvgy
Modul:Map
828
625
2773
2772
2024-12-03T14:16:36Z
Jon Harald Søby
20
4 revisi diimpor
2772
Scribunto
text/plain
local getArgs = require('Module:Arguments').getArgs
local p = {}
function dbg(v, msg)
mw.log((msg or '') .. mw.text.jsonEncode(v))
end
-- Parse all unnamed string parameters in a form of "latitude, longitude" into the real number pairs
function getSequence(args)
local coords = {}
for ind, val in pairs( args ) do
if type(ind) == "number" then
local valid = false
local val2 = mw.text.split( val, ',', true )
-- allow for elevation
if #val2 >= 2 and #val2 <= 3 then
local lat = tonumber(val2[1])
local lon = tonumber(val2[2])
if lat ~= nil and lon ~= nil then
table.insert(coords, { lon, lat } )
valid = true
end
end
if not valid then error('Unnamed parameter #' .. ind .. ' "' .. val .. '" is not recognized as a valid "latitude,longitude" value') end
end
end
return coords
end
-- See http://geojson.org/geojson-spec.html
-- Convert a comma and semicolon separated numbers into geojson coordinate arrays
-- Each geotype expects a certain array depth:
-- Point - [ lon, lat ] All other types use point as the basic type
-- MultiPoint - array of points: [ point, ... ]
-- LineString - array of 2 or more points: [ point, point, ... ]
-- MultiLineString - array of LineStrings: [ [ point, point, ... ], ... ]
-- Polygon - [ [ point, point, point, point, ... ], ... ]
-- each LinearRing is an array of 4 or more points, where first and last must be the same
-- first LinearRing is the exterior ring, subsequent rings are holes in it
-- MultiPolygon - array of Polygons: [ [ [ point, point, point, point, ... ], ... ], ... ]
--
-- For example, for the LineString, data "p1;p2;p3" would be converted to [p1,p2,p3] (each "p" is a [lon,lat] value)
-- LineString has the depth of "1" -- array of points (each point being a two value array)
-- For Polygon, the same sequence "p1;p2;p3" would be converted to [[p1,p2,p3]]
-- Which is an array of array of points. But sometimes we need to specify two subarrays of points:
-- [[p1,p2],[p3]] (last point is in a separate array), and we do it with "p1;p2;;p3"
-- Similarly, for MultiPolygon, "p1;p2;;;p3" would generate [[[p1,p2]],[[p3]]]
--
function p.parseGeoSequence(args)
local result = p._parseGeoSequence(args)
if type(result) == 'string' then error(result) end
return result
end
function p._parseGeoSequence(args)
local allTypes = {
-- how many nested array levels until we get to the Point,
-- second is the minimum number of values each Points array must have
Point = { 1, 1 },
MultiPoint = { 1, 0 },
LineString = { 1, 2 },
MultiLineString = { 2, 2 },
Polygon = { 2, 4 },
MultiPolygon = { 3, 4 },
}
if not allTypes[args.geotype] then return ('Unknown geotype ' .. args.geotype) end
local levels, min = unpack(allTypes[args.geotype])
local result
result = {}
for i = 1, levels do result[i] = {} end
local gap = 0
-- Example for levels==3, converting "p1 ; p2 ; ; ; p3 ; ; p4" => [[[p1, p2]], [[p3],[p4]]]
-- This function will be called after each gap, and all values are done, so the above will call:
-- before p3: gap=2, [],[],[p1,p2] => [[[p1,p2]]],[],[]
-- before p4: gap=1, [[[p1,p2]]],[],[p3] => [[[p1,p2]]],[[p3]]],[]
-- the end, gap=2, [[[p1,p2]]],[[p3]]],[p4] => [[[p1,p2]],[[p3],[p4]]],[],[]
-- Here, convert at "p1 ; ; " from [[],[p1]]
local closeArrays = function (gap)
if #result[levels] < min then
error('Each points array must be at least ' .. min .. ' values')
elseif min == 1 and #result[levels] ~= 1 then
-- Point
error('Point must have exactly one data point')
end
-- attach arrays in reverse order to the higher order ones
for i = levels, levels-gap+1, -1 do
table.insert(result[i-1], result[i])
result[i] = {}
end
return 0
end
local usedSequence = false
for val in mw.text.gsplit(args.data, ';', true) do
local val2 = mw.text.split(val, ',', true)
-- allow for elevation
if #val2 >= 2 and #val2 <= 3 and not usedSequence then
if gap > 0 then gap = closeArrays(gap) end
local lat = tonumber(val2[1])
local lon = tonumber(val2[2])
if lat == nil or lon == nil then return ('Bad data value "' .. val .. '"') end
table.insert(result[levels], { lon, lat } )
else
val = mw.text.trim(val)
if val == '' then
usedSequence = false
gap = gap + 1
if (gap >= levels) then return ('Data must not skip more than ' .. levels-1 .. ' values') end
elseif usedSequence then
return ('Coordinates may not be added right after the named sequence')
else
if gap > 0 then
gap = closeArrays(gap)
elseif #result[levels] > 0 then
return ('Named sequence "' .. val .. '" cannot be used in the middle of the sequence')
end
-- Parse value as a sequence name. Eventually we can load data from external data sources
if val == 'values' then
val = getSequence(args)
elseif min == 4 and val == 'world' then
val = {{36000,-180}, {36000,180}, {-36000,180}, {-36000,-180}, {36000,-180}}
elseif tonumber(val) ~= nil then
return ('Not a valid coordinate or a sequence name: ' .. val)
else
return ('Sequence "' .. val .. '" is not known. Try "values" or "world" (for Polygons), or specify values as lat,lon;lat,lon;... pairs')
end
result[levels] = val
usedSequence = true
end
end
end
-- allow one empty last value (some might close the list with an extra semicolon)
if (gap > 1) then return ('Data values must not have blanks at the end') end
closeArrays(levels-1)
return args.geotype == 'Point' and result[1][1] or result[1]
end
-- Run this function to check that the above works ok
function p.parseGeoSequenceTest()
local testSeq = function(data, expected)
local result = getSequence(data)
if type(result) == 'table' then
local actual = mw.text.jsonEncode(result)
result = actual ~= expected and 'data="' .. mw.text.jsonEncode(data) .. '", actual="' .. actual .. '", expected="' .. expected .. '"<br>\n' or ''
else
result = result .. '<br>\n'
end
return result
end
local test = function(geotype, data, expected, values)
values = values or {}
values.geotype = geotype;
values.data = data;
local result = p._parseGeoSequence(values)
if type(result) == 'table' then
local actual = mw.text.jsonEncode(result)
result = actual ~= expected and 'geotype="' .. geotype .. '", data="' .. data .. '", actual="' .. actual .. '", expected="' .. expected .. '"<br>\n' or ''
else
result = 'geotype="' .. geotype .. '", data="' .. data .. '", error="' .. result .. '<br>\n'
end
return result
end
local values = {' 9 , 8 ','7,6'}
local result = '' ..
testSeq({}, '[]') ..
testSeq({'\t\n 1 \r,-10'}, '[[-10,1]]') ..
testSeq(values, '[[8,9],[6,7]]') ..
test('Point', '1,2', '[2,1]') ..
test('MultiPoint', '1,2;3,4;5,6', '[[2,1],[4,3],[6,5]]') ..
test('LineString', '1,2;3,4', '[[2,1],[4,3]]') ..
test('MultiLineString', '1,2;3,4', '[[[2,1],[4,3]]]') ..
test('MultiLineString', '1,2;3,4;;5,6;7,8', '[[[2,1],[4,3]],[[6,5],[8,7]]]') ..
test('Polygon', '1,2;3,4;5,6;1,2', '[[[2,1],[4,3],[6,5],[2,1]]]') ..
test('MultiPolygon', '1,2;3,4;5,6;1,2', '[[[[2,1],[4,3],[6,5],[2,1]]]]') ..
test('MultiPolygon', '1,2;3,4;5,6;1,2;;11,12;13,14;15,16;11,12', '[[[[2,1],[4,3],[6,5],[2,1]],[[12,11],[14,13],[16,15],[12,11]]]]') ..
test('MultiPolygon', '1,2;3,4;5,6;1,2;;;11,12;13,14;15,16;11,12', '[[[[2,1],[4,3],[6,5],[2,1]]],[[[12,11],[14,13],[16,15],[12,11]]]]') ..
test('MultiPolygon', '1,2;3,4;5,6;1,2;;;11,12;13,14;15,16;11,12;;21,22;23,24;25,26;21,22', '[[[[2,1],[4,3],[6,5],[2,1]]],[[[12,11],[14,13],[16,15],[12,11]],[[22,21],[24,23],[26,25],[22,21]]]]') ..
test('MultiLineString', 'values;;1,2;3,4', '[[[8,9],[6,7]],[[2,1],[4,3]]]', values) ..
test('Polygon', 'world;;world', '[[[36000,-180],[36000,180],[-36000,180],[-36000,-180],[36000,-180]],[[36000,-180],[36000,180],[-36000,180],[-36000,-180],[36000,-180]]]') ..
''
return result ~= '' and result or 'Tests passed'
end
function p._tag(args)
local tagname = args.type or 'maplink'
if tagname ~= 'maplink' and tagname ~= 'mapframe' then error('unknown type "' .. tagname .. '"') end
local geojson
local tagArgs = {
text = args.text,
zoom = tonumber(args.zoom),
latitude = tonumber(args.latitude),
longitude = tonumber(args.longitude),
group = args.group,
show = args.show,
class = args.class,
}
if tagname == 'mapframe' then
tagArgs.width = args.width == nil and 420 or args.width
tagArgs.height = args.height == nil and 420 or args.height
tagArgs.align = args.align == nil and 'right' or args.align
elseif not args.class and (args.text == '' or args.text == '""') then
-- Hide pushpin icon in front of an empty text link
tagArgs.class = 'no-icon'
end
if args.data == '' then args.data = nil end
if (not args.geotype) ~= (not args.data) then
-- one is given, but not the other
if args.data then
error('Parameter "data" is given, but "geotype" is not set. Use one of these: Point, MultiPoint, LineString, MultiLineString, Polygon, MultiPolygon')
elseif args.geotype == "Point" and tagArgs.latitude ~= nil and tagArgs.longitude ~= nil then
-- For Point geotype, it is enough to set latitude and logitude, and data will be set up automatically
args.data = tagArgs.latitude .. ',' .. tagArgs.longitude
else
error('Parameter data must be set. Use "values" to use all unnamed parameters as coordinates (lat,lon|lat,lon|...), "world" for the whole world, a combination to make a mask, e.g. "world;;values", or direct values "lat,lon;lat,lon..." with ";" as value separator')
end
end
-- Kartographer can now automatically calculate needed zoom & lat/long based on the data provided
-- Current version ignores mapmasks, but that will also be fixed soon. Leaving this for now, but can be removed if all is good.
-- tagArgs.zoom = tagArgs.zoom == nil and 14 or tagArgs.zoom
-- tagArgs.latitude = tagArgs.latitude == nil and 51.47766 or tagArgs.latitude
-- tagArgs.longitude = tagArgs.longitude == nil and -0.00115 or tagArgs.longitude
if args.image then
args.description = (args.description or '') .. '[[Berkas:' .. args.image .. '|300px]]'
end
if args.geotype then
geojson = {
type = "Feature",
properties = {
title = args.title,
description = args.description,
['marker-size'] = args['marker-size'],
['marker-symbol'] = args['marker-symbol'],
['marker-color'] = args['marker-color'],
stroke = args.stroke,
['stroke-opacity'] = tonumber(args['stroke-opacity']),
['stroke-width'] = tonumber(args['stroke-width']),
fill = args.fill,
['fill-opacity'] = tonumber(args['fill-opacity']),
},
geometry = {
type = args.geotype,
coordinates = p.parseGeoSequence(args)
}
}
end
if args.debug ~= nil then
local html = mw.html.create(tagname, not geojson and {selfClosing=true} or nil)
:attr(tagArgs)
if geojson then
html:wikitext( mw.text.jsonEncode(geojson, mw.text.JSON_PRETTY) )
end
return 'syntaxhighlight', tostring(html) .. mw.text.jsonEncode(args, mw.text.JSON_PRETTY), { lang = 'json' }
end
return tagname, geojson and mw.text.jsonEncode(geojson) or '', tagArgs
end
function p.tag(frame)
local args = getArgs(frame)
local tag, geojson, tagArgs = p._tag(args)
return frame:extensionTag(tag, geojson, tagArgs)
end
return p
77rnzz8j7qpnry19tjl44f29rvc2psc
Modul:Mapdraw
828
626
2775
2774
2024-12-03T14:16:36Z
Jon Harald Søby
20
1 revisi diimpor
2774
Scribunto
text/plain
-- keeping original shape for a circle -- Matroc
-- other shapes etc. moved to a Sandbox
local p = {}
local function newlat(a)
-- newlat = math.log(math.tan((90 + a) * math.pi / 360)) / (math.pi / 180) -- worked this code elsewhere in function can remove
newlatitude = 180/math.pi * (2 * math.atan(math.exp( a * math.pi/180)) - math.pi/2 )
if newlatitude > 89.5 then point = 89.5 end -- END if -- straight line at top of map
if newlatitude < -89.5 then point = -89.5 end -- END if -- straight line at bottom of map
return newlatitude
end
local function checkhex(fill,stroke)
if string.len(fill) ~= 7 then error("Incorrect length for argument fill!") end
if string.gsub(fill,"#[0-9A-Fa-f][0-9A-Fa-f][0-9A-Fa-f][0-9A-Fa-f][0-9A-Fa-f][0-9A-Fa-f]","") ~= "" then
error("Incorrect hexidecimal format for argument fill!") end
if string.len(stroke) ~= 7 then error("Incorrect length for argument stroke!") end
if string.gsub(stroke,"#[0-9A-Fa-f][0-9A-Fa-f][0-9A-Fa-f][0-9A-Fa-f][0-9A-Fa-f][0-9A-Fa-f]","") ~= "" then
error("Incorrect hexidecimal format for argument stroke!") end
end
local function checkid(id)
id = string.gsub(id,"q","Q")
id = string.gsub(id,"%s+","")
if string.gsub(id,"^[Q]%d+$","") ~= "" then error("Bad format for parameter id!") end
return id
end
-- GET LATITUDE
local function latitude(wikidata)
local latitude = ""
local entity = mw.wikibase.getEntityObject(wikidata)
if entity == nil then error("Wikidata ID " .. wikidata .. " not found!") end
local claims = entity.claims
if claims == nil then error("Wikidata ID found No Data!") end
if claims.P625 ~= nil then
latitude = entity.claims.P625[1].mainsnak.datavalue.value.latitude
return latitude
end
if latitude == "" then error("Latitude not found in Wikidata!") end
return latitude
end
-- GET LONGITUDE -- P625
local function longitude(wikidata)
local longitude = ""
local entity = mw.wikibase.getEntityObject(wikidata)
if entity == nil then error("Wikidata ID " .. wikidata .. " not found!") end
local claims = entity.claims
if claims == nil then error("Wikidata ID found No Data!") end
if claims.P625 ~= nil then
longitude = entity.claims.P625[1].mainsnak.datavalue.value.longitude
return longitude
end
if longitude == "" then error("Longitude not found in Wikidata!") end
return longitude
end
local function parts(lat,long,group,title,description,fill,stroke)
local part1a = '<maplink class="no-icon" text="" latitude="' .. lat .. '" longitude="' .. long .. '" '
local part1a = part1a .. 'zoom="5" group="' .. group .. '">\n{"type": "Feature","geometry":\t{"coordinates":\n'
local part2a = '\n\t\t"type":"LineString"},\n\t"properties":{\n\t\t"title": "' .. title .. '",\n'
local part2a = part2a .. '\t\t"description": "' .. description .. '",\n'
local part2a = part2a .. '\t\t"stroke":"' .. stroke .. '",\n\t\t"stroke-width":1\n}}\n</maplink>\n'
local part1b = '<maplink class="no-icon" text="" latitude="' .. lat .. '" longitude="' .. long .. '" '
local part1b = part1b .. 'zoom="5" group="' .. group .. '">\n{"type": "Feature","geometry":\t{"coordinates":\n'
local part2b = '\n\t\t"type":"Polygon"},\n\t"properties":{\n\t\t"title": "' .. title .. '",\n'
local part2b = part2b .. '\t\t"description": "' .. description .. '",\n\t\t"fill": "' .. fill .. '",\n'
local part2b = part2b .. '\t\t"stroke":"' .. stroke .. '",\n\t\t"stroke-width":1\n}}\n</maplink>\n'
local part1c = '<mapframe text="" latitude="' .. lat .. '" longitude="' .. long .. '" '
local part1c = part1c .. 'zoom="5" group="' .. group .. '" width="600" height="400" >\n{"type": "FeatureCollection",\n\t"features": [\n\t\t{\n\t\t"type": "Feature",\n\t\t"geometry": {"coordinates":\n'
local part2ca = '\n\t\t"type":"LineString"},\n\t"properties":{\n\t\t"title": "' .. title .. '",\n'
local part2ca = part2ca .. '\t\t"description": "' .. description .. '",\n\t\t"fill": "' .. fill .. '",\n'
local part2ca = part2ca .. '\t\t"stroke":"' .. stroke .. '",\n\t\t"stroke-width":1\n}\n}]}\n</mapframe>\n'
local part2cb = '\n\t\t"type":"Polygon"},\n\t"properties":{\n\t\t"title": "' .. title .. '",\n'
local part2cb = part2cb .. '\t\t"description": "' .. description .. '",\n\t\t"fill": "' .. fill .. '",\n'
local part2cb = part2cb .. '\t\t"stroke":"' .. stroke .. '",\n\t\t"stroke-width":1\n}\n}]}\n</mapframe>\n'
return part1a,part2a,part1b,part2b,part1c,part2ca,part2cb
end
-- CIRCLE
function p.circle(frame)
local shape = "circle"
local id = frame.args['id'] or ""
local lat,long = "",""
local x,y = 0,0
if id == nil or id == "" then
if frame.args['lat'] == nil then error("Missing argument lat!") end
if frame.args['long'] == nil then error("Missing argument long!") end
lat = frame.args['lat']
long = frame.args['long']
if tonumber(frame.args['lat']) > 90 or tonumber(frame.args['lat']) < -90 then
error("Latitude must be between 90 and -90!") end
if tonumber(frame.args['long']) > 180 or tonumber(frame.args['long']) < -180 then
error("Longitude must be between 180 and -180!") end
else
id = checkid(id)
lat = latitude(id)
long = longitude(id)
end
x = string.format("%.6f",lat)
y = string.format("%.6f",long)
local marker = frame.args['marker'] or "no"
if marker == nil or marker == "" then marker = "no" end
local mapframe = frame.args['mapframe'] or "no"
if mapframe == nill or mapframe == "" then mapframe = "no" end -- FUTURE USE
if tonumber(lat) > 85.35 or tonumber(lat) < -85.35 then
error("Latitude must be between 85.35 and -85.35!") end -- END if
-- I set this as a default - function will not handle the polar circles yet will still handle areas within the majority of a map
if tonumber(long) > 180 or tonumber(long) < -180 then
error("Longitude must be between 180 and -180!") end -- END if
-- this will draw a full circle at 0 lat and 180 long
local group = frame.args['group'] or 'circle'
local title = frame.args['title'] or 'A circle'
local description = frame.args['desc'] or ''
local r = frame.args['radius'] or ".5" -- default
-- radius of 10 is approx. 500 km - futz with sizes - below 3 would probably be adequate
-- .1 is about 20km - .0001 is about 30 m
r = tonumber(r)
if r > 10 then error("10 for radius is MAX") end -- END if - my default
if r <= 0 then error("radius has to be greater than 0") end -- END if
local fill = frame.args['fill'] or "#ccef64"
local stroke = frame.args['stroke'] or "#0000ff"
checkhex(fill,stroke)
local data = {}
local coordinates = ""
local ptx,pty,angle = 0,0,0
local type = frame.args['type'] or "line" -- default line for LineString
if type ~= "line" then
type = "poly"
end -- END if
local part1a,part2a,part1b,part2b,part1c,part2ca,part2cb = parts(lat,long,group,title,description,fill,stroke)
if tonumber(x) >= 10.5 then
x = math.log(math.tan((90 + x) * math.pi/360)) / (math.pi/180)
elseif tonumber(x) <= -10.5 then
x = math.log(math.tan((90 + x) * math.pi/360)) / (math.pi/180)
end -- END if ELSEIF
for i = 1, 360 do
angle = i * math.pi / 180
ptx = x + r * math.cos( angle )
pty = y + r * math.sin( angle )
-- ptx, pty = x + r * math.cos( angle ), y + r * math.sin( angle ) -- original code split for readability above
if tonumber(x) >= 10.5 then
ptx = newlat(ptx) -- makes correction to make circle show up on map - upper latitudes
end -- END if
if tonumber(x) <= -10.5 then
ptx = newlat(ptx) -- makes correction to make circle show up on map - lower latitudes
end -- END if
data[i] = '[' .. string.format("%.6f",pty) .. "," .. string.format("%.6f",ptx) .. ']'
end -- END for
for i = 5,359, 5 do
data[i] = data[i] .. "@@@@@"
end -- END for
-- cycle through array and build single string of all coordinates to be output
for i = 1,360, 1 do
coordinates = coordinates .. data[i]
end -- END for
coordinates = coordinates.gsub(coordinates,'%]%[','],[')
coordinates = coordinates.gsub(coordinates,'%]@@@@@%[','],\n[')
coordinates = "[" .. coordinates .. ',' .. data[1] .. "]," -- close the circle extra precautionary measure
if mapframe == "y" or mapframe == "yes" then
if type == "poly" then
coordinates = string.gsub(coordinates,'%]%,$',']],')
coordinates = part1c .. string.gsub(coordinates,'^%[','[[') .. part2cb
else
coordinates = part1c .. coordinates .. part2ca
end -- END if
else
if type == "poly" then
coordinates = string.gsub(coordinates,'%]%,$',']],')
coordinates = part1b .. string.gsub(coordinates,'^%[','[[') .. part2b
else
coordinates = part1a .. coordinates .. part2a
end -- END if
end
if marker == "yes" or marker == "y" then
coordinates = coordinates .. '\n* {{marker|type=vicinity|name=Center Circle|lat=' .. lat .. "|long=" .. long .. '}}\n'
end
return coordinates
end
-- END MODULE
return p
izappp90iodiq4oujiixm243nax5u44
Modul:Mapshapes
828
627
2778
2777
2024-12-03T14:16:36Z
Jon Harald Søby
20
2 revisi diimpor
2776
Scribunto
text/plain
-- This fetches referenced wikidata entries (P527 - has part, or
-- P2670 - has parts of the class ) and adds mapshapes, with colors acc. to
-- P465 (sRGB color hex triplet) or P462 (color)
-- TODO: Ideally, this could be merged into Module:map (incl. the Template:Mapshapes)
-- test code:
-- frame={["args"]={["default-color"] = "#ff0000"}, ["expandTemplate"] =function(a,b) mw.logObject(b); end}
-- p.showOne(frame, "Q2400801", {})
local p = {}
local function matches_filter(args, id)
if (args[2] == "") then
return true
end
local idx = 2
while (args[idx] ~= "") do
if id == args[idx] then
return true
end
idx = idx + 1
end
return false
end
p.showOne = function(frame, subentityID, out)
local subentity = mw.wikibase.getEntity(subentityID)
if subentity.claims == nil then
mw.log("empty mapshape " .. subentityID .. "!")
return out
end
local label = subentity:getLabel()
if label == nil then label = '' end
local rgb
if subentity.claims.P465 ~= nil then
for k, v in pairs(subentity.claims.P465) do
if v.rank ~= "deprecated" then
rgb = subentity.claims.P465[k].mainsnak.datavalue.value
break
end
end
end
if rgb == nil or rgb == "" then
mw.log("no rgb")
if subentity.claims["P462"] == nil then
mw.log("no color")
rgb = frame.args["default-color"]
else
if subentity.claims.P462[1].qualifiers ~= nil and subentity.claims.P462[1].qualifiers.P465 ~= nil then
rgb = subentity.claims.P462[1].qualifiers.P465[1].datavalue.value
mw.logObject(rgb)
else
colorID = subentity.claims.P462[1].mainsnak.datavalue.value.id
color = mw.wikibase.getEntity(colorID)
rgb = color.claims.P465[1].mainsnak.datavalue.value
mw.logObject(rgb)
end
end
end
arguments = {
wikidata=subentityID,
type="geoline",
stroke="#"..rgb,
}
arguments["stroke-width"] = frame.args["stroke-width"]
arguments["stroke-opacity"] = frame.args["stroke-opacity"]
arguments["group"] = frame.args["group"]
arguments["title"] = string.gsub(string.gsub(label, '"', '\\"'), "'", "\'")
out[#out + 1] = frame:expandTemplate{title='Mapshape', args=arguments}
return out
end
p.show = function(frame)
local itemID = mw.text.trim(frame.args[1] or "")
local entity = mw.wikibase.getEntity(itemID)
local claims = entity.claims.P527
if claims == nil then claims = entity.claims.P2670 end
if claims then
if (claims[1] and claims[1].mainsnak.snaktype == "value" and claims[1].mainsnak.datavalue.type == "wikibase-entityid") then
local out = {}
for k, v in pairs(claims) do
local subentityID = v.mainsnak.datavalue.value.id
if matches_filter(frame.args, subentityID) then
out = p.showOne(frame, subentityID, out)
end
end
return table.concat(out, "")
end
else
return ""
end
end
return p
kp34fdva9erp6wg8bqnxlwqjxlcq980
Modul:Marker
828
628
2789
2788
2024-12-03T14:16:36Z
Jon Harald Søby
20
10 revisi diimpor
2787
Scribunto
text/plain
--[[
Source script: https://it.wikivoyage.org/wiki/Modulo:Marker
Maintainer: Andyrom75
Lazy loads:
require('Module:WikidataIB').getSiteLink
]]
local coord2Dec = require('Module:Coordinates').toDec
local type2color = require('Module:TypeToColor').convertImpl
local function _isDefined(s)
return s ~= '' and s
end
local function _makeMarkerSymbol( args, frame )
local image4map = _isDefined(args.image) and ('[[Berkas:' .. args.image .. '|300px]]') or ''
local tagArgs = {
zoom = tonumber( args.zoom ),
latitude = tonumber( args.lat ),
longitude = tonumber( args.long ),
show = args.show,
group = args.group,
description = (_isDefined(args.description) or '') .. image4map
}
if _isDefined( args.text ) then
tagArgs.text = args.text
if not args.useIcon then
tagArgs.class = 'no-icon'
end
end
local geoJson = {
type = 'Feature',
geometry = {
type = 'Point',
coordinates = { tagArgs.longitude, tagArgs.latitude }
},
properties = {
title = args.name,
description = tagArgs.description,
['marker-symbol'] = args.symbol,
['marker-color'] = args.color,
['marker-size'] = 'medium',
}
}
-- frame:extensionTag is expensive
return frame:extensionTag( 'maplink', mw.text.jsonEncode( geoJson ), tagArgs )
end
local function _Marker(frame)
local args = frame.args
local imageErrMsg = ''
--shortcut variable
local nome = args.name or ''
local tag = ((args.islisting ~= 'yes') and mw.html.create( 'span' ):addClass( 'vcard' )) or mw.html.create()
local anchor = ''
if _isDefined( args.wikidata ) then
-- Se manca una delle due coordinate, provo a estrarle entrambe da Wikidata
if not _isDefined(args.lat) or not _isDefined(args.long) then
local coords = mw.wikibase.getBestStatements( args.wikidata, 'P625')
if coords[1] then
args.lat = coords[1].mainsnak.datavalue.value.latitude
args.long = coords[1].mainsnak.datavalue.value.longitude
end
end
-- Se non è stata fornita l'immagine, provo a estrarla da Wikidata
if not _isDefined(args.image) then
local image = mw.wikibase.getBestStatements( args.wikidata, 'P18')
args.image = image[1] and image[1].mainsnak.datavalue.value
end
end
-- Se sono presenti le coordinate creo il marker tag
if args.lat ~= 'NA' and args.long ~= 'NA' then
if _isDefined(args.lat) and _isDefined(args.long) then
-- arguments setup
args.lat = coord2Dec(args.lat or 0, '', 6).dec
args.long = coord2Dec(args.long or 0, '', 6).dec
args.type = _isDefined(args.type) or 'listing'
args.zoom = _isDefined(args.zoom) or '17'
args.group = _isDefined(args.group) or args.type
args.symbol = '-number-' .. ( args.counter or args.type or 'listing' )
args.color = type2color( args.type )
args.show = args.show or 'mask,around,buy,city,do,drink,eat,go,listing,other,see,sleep,vicinity,view'
local mapTagOutput = _makeMarkerSymbol( args, frame )
tag:tag( 'span' )
:addClass( 'noprint listing-coordinates' )
:css('display','none')
:tag( 'span' )
:addClass( 'geo' )
:tag( 'abbr' )
:addClass( 'latitude' )
:wikitext( args.lat )
:done()
:tag( 'abbr' )
:addClass( 'longitude' )
:wikitext( args.long )
:allDone()
:tag( 'span' )
:attr( 'title', 'See this element on the map' )
:wikitext( mapTagOutput )
else
local listingTypes = {see=true, eat=true, buy=true, drink=true, sleep=true, ['do']=true, go=true, city=true, vicinity=true}
if mw.title.getCurrentTitle().namespace == 0 and args.type and listingTypes[string.lower(args.type)] then
anchor = anchor .. "[[Kategori:Butir " .. string.lower(args.type) .. " tanpa koordinat]]"
end
end
end
-- costruisco l'ancora sul nome ed eventualmente gli associo il sitoweb
if nome ~= '' then
local anchor2 = ''
anchor2 = '<span id="' .. mw.uri.anchorEncode( nome ) .. '" class="fn org listing-name" style="font-weight:bold;">' .. nome .. '</span>'
-- se includo un sito web il nome deve essere puramente testuale
if _isDefined(args.url) then
anchor2 = string.match(nome, '%[%[') and ('[[Kategori:Listing without plain text name]]' .. anchor2)
or ('[' .. args.url .. ' ' .. anchor2 .. ']')
end
anchor = anchor .. anchor2
end
if mw.title.getCurrentTitle().namespace == 0 then
anchor = anchor .. '[[Kategori:Memiliki penanda peta]]'
end
-- Se l'immagine fornita non esiste genero un messaggio di errore
if _isDefined( args.image ) then
local image = 'Media:' .. args.image
if mw.title.new( image ) and mw.title.new( image ).exists == true then
args.description = '[[' .. image .. '|100x100px|' .. nome .. ']]'
else
imageErrMsg = mw.html.create( 'span' )
:addClass('imageinfo debuginfo')
:css('display','none')
:wikitext( 'NOT EXISTING LISTING IMAGE' )
end
end
if (args.islisting ~= 'yes') and _isDefined( args.wikidata ) then
local getSiteLink = require('Module:WikidataIB').getSiteLink
if _isDefined( getSiteLink{args={wiki='idwikivoyage', qid=args.wikidata}} ) then
anchor = anchor .. (string.match(nome, '%[%[') and '' or '[[Kategori:Marker with Wikivoyage article but no wikilink]]')
else
local wpLink = _isDefined( getSiteLink{args={wiki='idwiki', qid=args.wikidata}} )
anchor = anchor .. (wpLink and '<span class="listing-sister-icons"> [[Berkas:Antu wikipedia.svg|15px|class=listing-sister|link=id:' .. wpLink .. '|<span>' .. wpLink .. '</span> di Wikipedia]]</span>' or '')
end
end
return tostring(tag:node(imageErrMsg):wikitext(' ' .. anchor))
end
--Interfacce del modulo
local p = {}
function p.MarkerTemplate(frame)
return _Marker(frame:getParent())
end
function p.MarkerInvoke(frame)
return _Marker(frame)
end
function p.MarkerModule(frame)
local Cframe = mw.getCurrentFrame()
Cframe.args = frame.args
return _Marker(Cframe)
end
return p
47olwnyux0a4s7bdjyljhcyxrhyzh4m
Modul:Math
828
629
2793
2792
2024-12-03T14:16:37Z
Jon Harald Søby
20
3 revisi diimpor
2792
Scribunto
text/plain
--[[
This module provides a number of basic mathematical operations.
]]
local yesno, getArgs -- lazily initialized
local p = {} -- Holds functions to be returned from #invoke, and functions to make available to other Lua modules.
local wrap = {} -- Holds wrapper functions that process arguments from #invoke. These act as intemediary between functions meant for #invoke and functions meant for Lua.
--[[
Helper functions used to avoid redundant code.
]]
local function err(msg)
-- Generates wikitext error messages.
return mw.ustring.format('<strong class="error">Formatting error: %s</strong>', msg)
end
local function unpackNumberArgs(args)
-- Returns an unpacked list of arguments specified with numerical keys.
local ret = {}
for k, v in pairs(args) do
if type(k) == 'number' then
table.insert(ret, v)
end
end
return unpack(ret)
end
local function makeArgArray(...)
-- Makes an array of arguments from a list of arguments that might include nils.
local args = {...} -- Table of arguments. It might contain nils or non-number values, so we can't use ipairs.
local nums = {} -- Stores the numbers of valid numerical arguments.
local ret = {}
for k, v in pairs(args) do
v = p._cleanNumber(v)
if v then
nums[#nums + 1] = k
args[k] = v
end
end
table.sort(nums)
for i, num in ipairs(nums) do
ret[#ret + 1] = args[num]
end
return ret
end
local function fold(func, ...)
-- Use a function on all supplied arguments, and return the result. The function must accept two numbers as parameters,
-- and must return a number as an output. This number is then supplied as input to the next function call.
local vals = makeArgArray(...)
local count = #vals -- The number of valid arguments
if count == 0 then return
-- Exit if we have no valid args, otherwise removing the first arg would cause an error.
nil, 0
end
local ret = table.remove(vals, 1)
for _, val in ipairs(vals) do
ret = func(ret, val)
end
return ret, count
end
--[[
Fold arguments by selectively choosing values (func should return when to choose the current "dominant" value).
]]
local function binary_fold(func, ...)
local value = fold((function(a, b) if func(a, b) then return a else return b end end), ...)
return value
end
--[[
random
Generate a random number
Usage:
{{#invoke:Math | random }}
{{#invoke:Math | random | maximum value }}
{{#invoke:Math | random | minimum value | maximum value }}
]]
function wrap.random(args)
local first = p._cleanNumber(args[1])
local second = p._cleanNumber(args[2])
return p._random(first, second)
end
function p._random(first, second)
math.randomseed(mw.site.stats.edits + mw.site.stats.pages + os.time() + math.floor(os.clock() * 1000000000))
-- math.random will throw an error if given an explicit nil parameter, so we need to use if statements to check the params.
if first and second then
if first <= second then -- math.random doesn't allow the first number to be greater than the second.
return math.random(first, second)
end
elseif first then
return math.random(first)
else
return math.random()
end
end
--[[
order
Determine order of magnitude of a number
Usage:
{{#invoke:Math | order | value }}
]]
function wrap.order(args)
local input_string = (args[1] or args.x or '0');
local input_number = p._cleanNumber(input_string);
if input_number == nil then
return err('order of magnitude input appears non-numeric')
else
return p._order(input_number)
end
end
function p._order(x)
if x == 0 then return 0 end
return math.floor(math.log10(math.abs(x)))
end
--[[
precision
Detemines the precision of a number using the string representation
Usage:
{{ #invoke:Math | precision | value }}
]]
function wrap.precision(args)
local input_string = (args[1] or args.x or '0');
local trap_fraction = args.check_fraction;
local input_number;
if not yesno then
yesno = require('Module:Yesno')
end
if yesno(trap_fraction, true) then -- Returns true for all input except nil, false, "no", "n", "0" and a few others. See [[Modul:Yesno]].
local pos = string.find(input_string, '/', 1, true);
if pos ~= nil then
if string.find(input_string, '/', pos + 1, true) == nil then
local denominator = string.sub(input_string, pos+1, -1);
local denom_value = tonumber(denominator);
if denom_value ~= nil then
return math.log10(denom_value);
end
end
end
end
input_number, input_string = p._cleanNumber(input_string);
if input_string == nil then
return err('precision input appears non-numeric')
else
return p._precision(input_string)
end
end
function p._precision(x)
if type(x) == 'number' then
x = tostring(x)
end
x = string.upper(x)
local decimal = x:find('%.')
local exponent_pos = x:find('E')
local result = 0;
if exponent_pos ~= nil then
local exponent = string.sub(x, exponent_pos + 1)
x = string.sub(x, 1, exponent_pos - 1)
result = result - tonumber(exponent)
end
if decimal ~= nil then
result = result + string.len(x) - decimal
return result
end
local pos = string.len(x);
while x:byte(pos) == string.byte('0') do
pos = pos - 1
result = result - 1
if pos <= 0 then
return 0
end
end
return result
end
--[[
max
Finds the maximum argument
Usage:
{{#invoke:Math| max | value1 | value2 | ... }}
Note, any values that do not evaluate to numbers are ignored.
]]
function wrap.max(args)
return p._max(unpackNumberArgs(args))
end
function p._max(...)
local max_value = binary_fold((function(a, b) return a > b end), ...)
if max_value then
return max_value
end
end
--[[
median
Find the median of set of numbers
Usage:
{{#invoke:Math | median | number1 | number2 | ...}}
OR
{{#invoke:Math | median }}
]]
function wrap.median(args)
return p._median(unpackNumberArgs(args))
end
function p._median(...)
local vals = makeArgArray(...)
local count = #vals
table.sort(vals)
if count == 0 then
return 0
end
if p._mod(count, 2) == 0 then
return (vals[count/2] + vals[count/2+1])/2
else
return vals[math.ceil(count/2)]
end
end
--[[
min
Finds the minimum argument
Usage:
{{#invoke:Math| min | value1 | value2 | ... }}
OR
{{#invoke:Math| min }}
When used with no arguments, it takes its input from the parent
frame. Note, any values that do not evaluate to numbers are ignored.
]]
function wrap.min(args)
return p._min(unpackNumberArgs(args))
end
function p._min(...)
local min_value = binary_fold((function(a, b) return a < b end), ...)
if min_value then
return min_value
end
end
--[[
sum
Finds the sum
Usage:
{{#invoke:Math| sum | value1 | value2 | ... }}
OR
{{#invoke:Math| sum }}
Note, any values that do not evaluate to numbers are ignored.
]]
function wrap.sum(args)
return p._sum(unpackNumberArgs(args))
end
function p._sum(...)
local sums, count = fold((function(a, b) return a + b end), ...)
if not sums then
return 0
else
return sums
end
end
--[[
average
Finds the average
Usage:
{{#invoke:Math| average | value1 | value2 | ... }}
OR
{{#invoke:Math| average }}
Note, any values that do not evaluate to numbers are ignored.
]]
function wrap.average(args)
return p._average(unpackNumberArgs(args))
end
function p._average(...)
local sum, count = fold((function(a, b) return a + b end), ...)
if not sum then
return 0
else
return sum / count
end
end
--[[
round
Rounds a number to specified precision
Usage:
{{#invoke:Math | round | value | precision }}
--]]
function wrap.round(args)
local value = p._cleanNumber(args[1] or args.value or 0)
local precision = p._cleanNumber(args[2] or args.precision or 0)
if value == nil or precision == nil then
return err('round input appears non-numeric')
else
return p._round(value, precision)
end
end
function p._round(value, precision)
local rescale = math.pow(10, precision or 0);
return math.floor(value * rescale + 0.5) / rescale;
end
--[[
log10
returns the log (base 10) of a number
Usage:
{{#invoke:Math | log10 | x }}
]]
function wrap.log10(args)
return math.log10(args[1])
end
--[[
mod
Implements the modulo operator
Usage:
{{#invoke:Math | mod | x | y }}
--]]
function wrap.mod(args)
local x = p._cleanNumber(args[1])
local y = p._cleanNumber(args[2])
if not x then
return err('first argument to mod appears non-numeric')
elseif not y then
return err('second argument to mod appears non-numeric')
else
return p._mod(x, y)
end
end
function p._mod(x, y)
local ret = x % y
if not (0 <= ret and ret < y) then
ret = 0
end
return ret
end
--[[
gcd
Calculates the greatest common divisor of multiple numbers
Usage:
{{#invoke:Math | gcd | value 1 | value 2 | value 3 | ... }}
--]]
function wrap.gcd(args)
return p._gcd(unpackNumberArgs(args))
end
function p._gcd(...)
local function findGcd(a, b)
local r = b
local oldr = a
while r ~= 0 do
local quotient = math.floor(oldr / r)
oldr, r = r, oldr - quotient * r
end
if oldr < 0 then
oldr = oldr * -1
end
return oldr
end
local result, count = fold(findGcd, ...)
return result
end
--[[
precision_format
Rounds a number to the specified precision and formats according to rules
originally used for {{template:Rnd}}. Output is a string.
Usage:
{{#invoke: Math | precision_format | number | precision }}
]]
function wrap.precision_format(args)
local value_string = args[1] or 0
local precision = args[2] or 0
return p._precision_format(value_string, precision)
end
function p._precision_format(value_string, precision)
-- For access to Mediawiki built-in formatter.
local lang = mw.getContentLanguage();
local value
value, value_string = p._cleanNumber(value_string)
precision = p._cleanNumber(precision)
-- Check for non-numeric input
if value == nil or precision == nil then
return err('invalid input when rounding')
end
local current_precision = p._precision(value)
local order = p._order(value)
-- Due to round-off effects it is neccesary to limit the returned precision under
-- some circumstances because the terminal digits will be inaccurately reported.
if order + precision >= 14 then
orig_precision = p._precision(value_string)
if order + orig_precision >= 14 then
precision = 13 - order;
end
end
-- If rounding off, truncate extra digits
if precision < current_precision then
value = p._round(value, precision)
current_precision = p._precision(value)
end
local formatted_num = lang:formatNum(math.abs(value))
local sign
-- Use proper unary minus sign rather than ASCII default
if value < 0 then
sign = '−'
else
sign = ''
end
-- Handle cases requiring scientific notation
if string.find(formatted_num, 'E', 1, true) ~= nil or math.abs(order) >= 9 then
value = value * math.pow(10, -order)
current_precision = current_precision + order
precision = precision + order
formatted_num = lang:formatNum(math.abs(value))
else
order = 0;
end
formatted_num = sign .. formatted_num
-- Pad with zeros, if needed
if current_precision < precision then
local padding
if current_precision <= 0 then
if precision > 0 then
local zero_sep = lang:formatNum(1.1)
formatted_num = formatted_num .. zero_sep:sub(2,2)
padding = precision
if padding > 20 then
padding = 20
end
formatted_num = formatted_num .. string.rep('0', padding)
end
else
padding = precision - current_precision
if padding > 20 then
padding = 20
end
formatted_num = formatted_num .. string.rep('0', padding)
end
end
-- Add exponential notation, if necessary.
if order ~= 0 then
-- Use proper unary minus sign rather than ASCII default
if order < 0 then
order = '−' .. lang:formatNum(math.abs(order))
else
order = lang:formatNum(order)
end
formatted_num = formatted_num .. '<span style="margin:0 .15em 0 .25em">×</span>10<sup>' .. order .. '</sup>'
end
return formatted_num
end
--[[
Helper function that interprets the input numerically. If the
input does not appear to be a number, attempts evaluating it as
a parser functions expression.
]]
function p._cleanNumber(number_string)
if type(number_string) == 'number' then
-- We were passed a number, so we don't need to do any processing.
return number_string, tostring(number_string)
elseif type(number_string) ~= 'string' or not number_string:find('%S') then
-- We were passed a non-string or a blank string, so exit.
return nil, nil;
end
-- Attempt basic conversion
local number = tonumber(number_string)
-- If failed, attempt to evaluate input as an expression
if number == nil then
local success, result = pcall(mw.ext.ParserFunctions.expr, number_string)
if success then
number = tonumber(result)
number_string = tostring(number)
else
number = nil
number_string = nil
end
else
number_string = number_string:match("^%s*(.-)%s*$") -- String is valid but may contain padding, clean it.
number_string = number_string:match("^%+(.*)$") or number_string -- Trim any leading + signs.
if number_string:find('^%-?0[xX]') then
-- Number is using 0xnnn notation to indicate base 16; use the number that Lua detected instead.
number_string = tostring(number)
end
end
return number, number_string
end
--[[
Wrapper function that does basic argument processing. This ensures that all functions from #invoke can use either the current
frame or the parent frame, and it also trims whitespace for all arguments and removes blank arguments.
]]
local mt = { __index = function(t, k)
return function(frame)
if not getArgs then
getArgs = require('Module:Arguments').getArgs
end
return wrap[k](getArgs(frame)) -- Argument processing is left to Module:Arguments. Whitespace is trimmed and blank arguments are removed.
end
end }
return setmetatable(p, mt)
em3x1c6rgny0n59qkj3abfh84n03055
Modul:Navbox
828
630
2796
2795
2024-12-03T14:16:37Z
Jon Harald Søby
20
2 revisi diimpor
2794
Scribunto
text/plain
local p = {}
local getArgs
local ul
function p.addItem (mini, full, link, descrip, args, url)
local l
if url then
l = {'[', '', ']'}
else
l = {'[[', '|', ']]'}
end
ul:tag('li')
:addClass('nv-'..full)
:wikitext(l[1] .. link .. l[2])
:tag(args.mini and 'abbr' or 'span')
:attr('title', descrip..' templat ini')
:cssText(args.fontstyle)
:wikitext(args.mini and mini or full)
:done()
:wikitext(l[3])
end
function p.brackets (position, c, args, div)
if args.brackets then
div
:tag('span')
:css('margin-'..position, '-0.125em')
:cssText(args.fontstyle)
:wikitext(c)
end
end
function p._navbar(args)
local show = {true, true, true, false, false, false}
local titleArg = 1
if args.collapsible then
titleArg = 2
if not args.plain then args.mini = 1 end
if args.fontcolor then
args.fontstyle = 'color:' .. args.fontcolor .. ';'
end
args.style = 'float:left; text-align:left'
end
if args.template then
titleArg = 'template'
show = {true, false, false, false, false, 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}
for k,v in ipairs(require ('Module:TableTools').compressSparseArray(args)) do
local num = index[v]
if num then show[num] = true end
end
end
if args.noedit then show[3] = false end
local titleText = args[titleArg] or (':' .. mw.getCurrentFrame():getParent():getTitle())
local title = mw.title.new(mw.text.trim(titleText), 'Templat')
if not title then
error('Judul tidak valid ' .. titleText)
end
local talkpage = title.talkPageTitle and title.talkPageTitle.fullText or ''
local div = mw.html.create():tag('div')
div
:addClass('plainlinks')
:addClass('hlist')
:addClass('navbar')
:cssText(args.style)
if args.mini then div:addClass('mini') end
if not (args.mini or args.plain) then
div
:tag('span')
:css('word-spacing', 0)
:cssText(args.fontstyle)
:wikitext(args.text or 'Kotak ini:')
:wikitext(' ')
end
p.brackets('right', '[ ', args, div)
ul = div:tag('ul')
if show[1] then p.addItem('l', 'lihat', title.fullText, 'Lihat', args) end
if show[2] then p.addItem('b', 'bicara', talkpage, 'Diskusikan', args) end
if show[3] then p.addItem('s', 'sunting', title:fullUrl('action=edit'), 'Sunting', args, true) end
if show[4] then p.addItem('v', 'versi', title:fullUrl('action=history'), 'Sejarah', args, true) end
if show[5] then
local move = mw.title.new ('Special:Movepage')
p.addItem('m', 'move', move:fullUrl('target='..title.fullText), 'Pindahkan', args, true) end
if show[6] then p.addItem('w', 'watch', title:fullUrl('action=watch'), 'Pantau', args, true) end
p.brackets('left', ' ]', args, div)
if args.collapsible then
div
:done()
:tag('div')
:css('font-size', '114%')
:css('margin', args.mini and '0 4em' or '0 7em')
:cssText(args.fontstyle)
:wikitext(args[1])
end
return tostring(div:done())
end
function p.navbar(frame)
if not getArgs then
getArgs = require('Module:Arguments').getArgs
end
return p._navbar(getArgs(frame))
end
return p
q90vayujrljt609ynrsevtjvdbx3wmm
Modul:No globals
828
631
2798
2797
2024-12-03T14:16:37Z
Jon Harald Søby
20
1 revisi diimpor
2797
Scribunto
text/plain
local mt = getmetatable(_G) or {}
function mt.__index (t, k)
if k ~= 'arg' then
error('Argumen kosong ' .. tostring(k), 2)
end
return nil
end
function mt.__newindex(t, k, v)
if k ~= 'arg' then
error('Argumen kosong ' .. tostring(k), 2)
end
rawset(t, k, v)
end
setmetatable(_G, mt)
lau94p3rq6wmw7fgycf7uwko9tdpgmj
Modul:NumberSpell
828
632
2801
2800
2024-12-03T14:16:37Z
Jon Harald Søby
20
2 revisi diimpor
2799
Scribunto
text/plain
-- This module converts a number into its written English form.
-- For example, "2" becomes "two", and "79" becomes "seventy-nine".
local getArgs = require('Module:Arguments').getArgs
local p = {}
local max = 100 -- The maximum number that can be parsed.
local ones = {
[0] = 'kosong',
[1] = 'satu',
[2] = 'dua',
[3] = 'tiga',
[4] = 'empat',
[5] = 'lima',
[6] = 'enam',
[7] = 'tujuh',
[8] = 'delapan',
[9] = 'sembilan'
}
local specials = {
[10] = 'sepuluh',
[11] = 'sebelas',
[12] = 'dua belas',
[13] = 'tiga belas',
[15] = 'lima belas',
[18] = 'delapan belas',
[20] = 'dua puluh',
[30] = 'tiga puluh',
[40] = 'empat puluh',
[50] = 'lima puluh',
[60] = 'enam puluh',
[70] = 'tujuh puluh',
[80] = 'delapan puluh',
[90] = 'sembilan puluh',
[100] = 'seratus'
}
local formatRules = {
{num = 90, rule = 'sembilan puluh-%s'},
{num = 80, rule = 'delapan puluh-%s'},
{num = 70, rule = 'tujuh puluh-%s'},
{num = 60, rule = 'enam puluh-%s'},
{num = 50, rule = 'lima puluh-%s'},
{num = 40, rule = 'empat puluh-%s'},
{num = 30, rule = 'tiga puluh-%s'},
{num = 20, rule = 'dua puluh-%s'},
{num = 10, rule = '%sbelas'}
}
function p.main(frame)
local args = getArgs(frame)
local num = tonumber(args[1])
local success, result = pcall(p._main, num)
if success then
return result
else
return string.format('<strong class="error">Error: %s</strong>', result) -- "result" is the error message.
end
return p._main(num)
end
function p._main(num)
if type(num) ~= 'number' or math.floor(num) ~= num or num < 0 or num > max then
error('input must be an integer between 0 and ' .. tostring(max), 2)
end
-- Check for numbers from 0 to 9.
local onesVal = ones[num]
if onesVal then
return onesVal
end
-- Check for special numbers.
local specialVal = specials[num]
if specialVal then
return specialVal
end
-- Construct the number from its format rule.
onesVal = ones[num % 10]
if not onesVal then
error('Unexpected error parsing input ' .. tostring(num))
end
for i, t in ipairs(formatRules) do
if num >= t.num then
return string.format(t.rule, onesVal)
end
end
error('No format rule found for input ' .. tostring(num))
end
return p
o7zm98end5u5fwvo0zp79fgl3laqubf
Modul:Ordinal
828
633
2804
2803
2024-12-03T14:16:37Z
Jon Harald Søby
20
2 revisi diimpor
2802
Scribunto
text/plain
--[[
This template will add the appropriate ordinal suffix to a given integer.
Please do not modify this code without applying the changes first at Module:Ordinal/sandbox and testing
at Module:Ordinal/sandbox/testcases and Module talk:Ordinal/sandbox/testcases.
Authors and maintainers:
* User:RP88
]]
-- =======================================
-- === Dependencies ======================
-- =======================================
local i18n = require('Module:I18n/ordinal') -- get localized translations of ordinals
local LangSwitch = require('Module:LangSwitch') -- get LangSwitch function
local yesno = require('Module:Yesno') -- boolean value interpretation
local formatnum = require('Module:Formatnum') -- number formatting
local roman = require('Module:Roman') -- roman numeral conversion (primarily for French)
-- =======================================
-- === Private Functions =================
-- =======================================
--[[
Helper function to generate superscripted content
]]
local function Superscript( str, superscript, nosup, period )
if superscript and (not nosup) and (str ~= '') then
return period .. '<sup>' .. str .. '</sup>'
else
return str
end
end
--[[
Helper function to call Formatnum.
]]
local function FormatNum( value, lang )
if lang == 'roman' then
return roman._Numeral(value)
else
return formatnum.formatNum(value, lang)
end
end
--[[
Helper function to add append a category to a message.
]]
local function output_cat( message, category )
return message .. '[[Kategori:' .. category .. ']]'
end
--[[
Helper function to handle error messages.
]]
local function output_error( error_str, value )
error_str = '<strong class="error"><span title="Error: ' .. error_str .. '">' .. value .. '</span></strong>'
return output_cat(error_str, 'Errors reported by Module Ordinal');
end
--[[
This function is the core functionality for adding the appropriate ordinal suffix to a given integer.
]]
local function OrdinalCore( value, lang, style, gender, nosup )
-- Just in case someone breaks the internationalization code, fix the english scheme
if i18n.SchemeFromLang['en'] == nil then
i18n.SchemeFromLang['en'] = 'en-scheme'
end
if i18n.Scheme['en-scheme'] == nil then
i18n.Scheme['en-scheme'] = {rules = 'skip-tens', superscript = true, suffix = 'th', suffix_1 = 'st', suffix_2 = 'nd', suffix_3 = 'rd'}
end
-- Add the default scheme (i.e. "<value>.")
if i18n.SchemeFromLang['default'] == nil then
i18n.SchemeFromLang['default'] = 'period-scheme'
end
if i18n.Scheme['period-scheme'] == nil then
i18n.Scheme['period-scheme'] = {rules = 'suffix', suffix = '.'}
end
-- which scheme should we use to format the ordinal value?
-- Use Fallback module to handle languages groups that map to a supported language
local schemeSpecifier = LangSwitch._langSwitch(i18n.SchemeFromLang, lang)
-- Look up scheme based on scheme specifier (and possibly style)
local scheme = i18n.Scheme[schemeSpecifier .. '/' .. style] or i18n.Scheme[schemeSpecifier]
-- process scheme by applying rules identified by Scheme
local output = ''
local period = (scheme.period and '.') or ''
local rules = scheme.rules
if rules == 'skip-tens' then
local suffix
local mod100 = math.floor(math.abs(value)) % 100
if (mod100 >= 10) and (mod100 <= 19) then
suffix = scheme.suffix or ''
else
local mod10 = math.floor(math.abs(value)) % 10
suffix = scheme['suffix_'..mod10] or scheme.suffix or ''
end
output = FormatNum(value, scheme.formatlang or lang) .. Superscript( suffix, scheme.superscript, nosup, period)
elseif rules == 'suffix' then
output = FormatNum(value, scheme.formatlang or lang) .. Superscript( scheme.suffix or '', scheme.superscript, nosup, period)
elseif rules == 'prefix' then
output = (scheme.prefix or '') .. FormatNum(value, scheme.formatlang or lang)
elseif rules == 'mod10-suffix' then
local index = math.floor(math.abs(value)) % 10
local suffix = scheme['suffix_'..index] or scheme.suffix or ''
output = FormatNum(value, scheme.formatlang or lang) .. Superscript( suffix, scheme.superscript, nosup, period)
elseif rules == 'gendered-suffix' then
local suffix = scheme['suffix_'..gender] or scheme.suffix or ''
output = FormatNum(value, scheme.formatlang or lang) .. Superscript( suffix, scheme.superscript, nosup, period)
elseif rules == 'gendered-suffix-one' then
local suffix
if value == 1 then
suffix = scheme['suffix_1_'..gender] or scheme['suffix_1'] or scheme.suffix or ''
else
suffix = scheme['suffix_'..gender] or scheme.suffix or ''
end
output = FormatNum(value, scheme.formatlang or lang) .. Superscript( suffix, scheme.superscript, nosup, period)
elseif rules == 'gendered-suffix-n' then
local suffix
if value <= 9 then
suffix = scheme['suffix_'..value..'_'..gender] or scheme['suffix_'..value] or scheme['suffix_'..gender] or scheme.suffix or ''
else
suffix = scheme['suffix_'..gender] or scheme.suffix or ''
end
output = FormatNum(value, scheme.formatlang or lang) .. Superscript( suffix, scheme.superscript, nosup, period)
elseif rules == 'suffix-one' then
local prefix, suffix
if value == 1 then
prefix = scheme['prefix_1'] or scheme.prefix or ''
suffix = scheme['suffix_1'] or scheme.suffix or ''
else
prefix = scheme.prefix or ''
suffix = scheme.suffix or ''
end
output = prefix .. FormatNum(value, scheme.formatlang or lang) .. Superscript( suffix, scheme.superscript, nosup, period)
elseif rules == 'mod10-gendered-suffix-skip-tens' then
local suffix
local mod100 = math.floor(math.abs(value)) % 100
if (mod100 >= 10) and (mod100 <= 19) then
suffix = scheme['suffix_'..gender] or scheme.suffix or ''
else
local mod10 = math.floor(math.abs(value)) % 10
suffix = scheme['suffix_'..mod10..'_'..gender] or scheme['suffix_'..mod10] or scheme['suffix_'..gender] or scheme.suffix or ''
end
output = FormatNum(value, scheme.formatlang or lang) .. Superscript( suffix, scheme.superscript, nosup, period)
elseif rules == 'uk-rules' then
local suffix
local mod100 = math.floor(math.abs(value)) % 100
local mod1000 = math.floor(math.abs(value)) % 1000
if (mod1000 == 0) then
suffix = scheme['suffix_1000_'..gender] or scheme.suffix or ''
elseif (mod100 == 40) then
suffix = scheme['suffix_40_'..gender] or scheme.suffix or ''
elseif (mod100 >= 10) and (mod100 <= 19) then
suffix = scheme['suffix_'..gender] or scheme.suffix or ''
else
local mod10 = math.floor(math.abs(value)) % 10
suffix = scheme['suffix_'..mod10..'_'..gender] or scheme['suffix_'..mod10] or scheme['suffix_'..gender] or scheme.suffix or ''
end
output = FormatNum(value, scheme.formatlang or lang) .. Superscript( suffix, scheme.superscript, nosup, period)
else
output = FormatNum(value, lang)
end
return output
end
-- =======================================
-- === Public Functions ==================
-- =======================================
local p = {}
--[[
Ordinal
This function converts an integer value into a numeral followed by ordinal indicator. The output string might
contain HTML tags unless you set nosup=y.
Usage:
{{#invoke:Ordinal|Ordinal|1=|lang=|style=|gender=|nosup=|debug=}}
{{#invoke:Ordinal|Ordinal}} - uses the caller's parameters
Parameters
1: Positive integer number.
lang: language
style: Presentation style. Different options for different languages. In English there is "style=d" adding -d suffixes to all numbers.
gender: Gender is used in French and Polish language versions. Genders: m for male, f for female and n for neuter.
nosup: Set nosup=y to display the ordinals without superscript.
debug: Set debug=y to output error messages.
Error Handling:
Unless debug=y, any error results in parameter 1 being echoed to the output. This reproduces the behavior of the original Ordinal template.
]]
function p.Ordinal( frame )
-- if no argument provided than check parent template/module args
local args = frame.args
if args[1]==nil then
args = frame:getParent().args
end
-- if we don't have a specified language, attempt to use the user's language
local lang = args.lang
if not lang or lang == '' or not mw.language.isValidCode( lang ) then
lang = frame:preprocess('{{int:lang}}')
end
local nosup = yesno(args["nosup"] or '', false) -- nosup can be true or false
local debugging = yesno(args["debug"], false) -- debugging can be nil, true, or false
-- also enable debugging if debug is unspecified, and "nosup" is false
debugging = debugging or ((debugging == nil) and not nosup)
local output = p._Ordinal(
args[1], -- positive integer number
lang, -- language
args["style"], -- allows to set presentation style
args["gender"], -- allows to specify gender (m, f, or n)
nosup, -- set nosup to "y" to suppress superscripts
debugging -- Set debug=y to output error messages
)
-- Add maintenance category
if (i18n.SchemeFromLang[lang] == nil) and debugging then
output = output_cat(output, 'Pages with calls to Module Ordinal using an unsupported language')
end
return output
end
--[[
This function will add the appropriate ordinal suffix to a given integer.
Parameters
input: Numeral as a positive integer or string.
lang: Language code as a string (e.g. 'en', 'de', etc.).
style: Presentation style as a string (e.g. 'd', 'roman', etc.).
gender: Gender as a string ('m', 'f', 'n'). Use empty string '' to leave gender unspecified.
nosup: Boolean, set to true to force the ordinals to display without superscript.
debug: Boolean, set to true to output error messages.
Error Handling:
Unless debug is true, any error results in value being echoed to the output.
]]
function p._Ordinal( input, lang, style, gender, nosup, debugging )
local output = input
if input then
local value = tonumber(input)
if value and (value > 0) then
-- Normalize style, the style 'roman year' is an alias for 'roman'
style = string.lower(style or '')
if style == 'roman year' then
style = 'roman'
end
-- Normalize gender parameter
gender = string.lower(gender or '')
if (gender ~= 'm') and (gender ~= 'f') and (gender ~= 'n') then
gender = ''
end
-- if no language is specified, default to english (caller might want to get user's language)
if not lang or lang == '' then
lang = 'en';
end
output = OrdinalCore( value, lang, style, gender, nosup )
else
if debugging then
output = output_error( "not a number", input )
end
end
else
if debugging then
output = output_error( "not a number", '' )
end
end
return output
end
return p
ivrzo0rynsequlfzn50ueb8urnewfds
Modul:Quickbar
828
634
2810
2809
2024-12-03T14:16:37Z
Jon Harald Søby
20
5 revisi diimpor
2809
Scribunto
text/plain
local function starts_with(str, start)
return str:sub(1, #start) == start
end
local function renderRow(heading, value)
return '|-\n| class="info" | \'\'\'' .. heading .. '\'\'\'\n| style="padding-right:5px;" | ' .. value .. '\n'
end
local function renderLinkedClaim(id)
local linkTarget = mw.wikibase.sitelink(id)
local linkName = mw.wikibase.label(id)
if linkTarget == nil then
return linkName
else
return '[[' .. linkTarget .. '|' .. linkName .. ']]'
end
end
local function rSimple(item, property)
return item:formatPropertyValues( property ).value
end
local lang = mw.language.getContentLanguage()
local thousands = {'', 'thousand', 'million', 'billion'}
local function sigfigs(num)
local digits = math.floor(math.log10(num) / 3)
if digits <= 0 then
return lang:formatNum(num)
end
num = math.floor(num / math.pow(10, 3 * digits -1)) / 10
local result = lang:formatNum(num)
result = result .. ' ' .. thousands[digits+1]
-- if num ~= 1 then
-- result = result .. 's'
-- end
return result
end
local function rPopulation(item, property, frame)
local s = item:getBestStatements( property )[1]
local result = sigfigs( tonumber(s.mainsnak.datavalue.value.amount) )
if s.qualifiers ~= nil and s.qualifiers['P585'] ~= nil and #s.qualifiers['P585'] > 0 then
result = result .. ' (' .. string.match(s.qualifiers['P585'][1].datavalue.value.time, '0*([1-9][0-9]+)\-', 1) .. ')'
end
return result
end
local function rElectricity(item, property)
local claims = item:getBestStatements( property )
local voltage = {}
for _,s in pairs(claims) do
local v = mw.wikibase.renderSnak( s.mainsnak )
if s.qualifiers ~= nil and s.qualifiers['P2144'] ~= nil and #s.qualifiers['P2144'] > 0 then
v = v .. ' / ' .. mw.wikibase.renderSnak(s.qualifiers['P2144'][1])
end
table.insert(voltage, v)
end
local result = table.concat(voltage, ' and ')
if #item:getBestStatements('P2853') > 0 then
result = result .. ' (' .. item:formatPropertyValues( 'P2853' ).value .. ')'
end
return result
end
local function claimOrLabel(id, property)
local item = mw.wikibase.getEntity( id )
if #item:getBestStatements( property ) > 0 and item:getBestStatements( property )[1].mainsnak.datavalue ~= nil then
return mw.wikibase.renderSnak( item:getBestStatements( property )[1].mainsnak )
end
return item:getLabel()
end
local function rCurrency(item, property)
local claims = item:getBestStatements(property)
local result = {}
for _, claim in pairs(claims) do
local id = 'Q' .. claim.mainsnak.datavalue.value['numeric-id']
local currency = mw.wikibase.getEntity( id )
local subresult = currency:getLabel()
local symbol = claimOrLabel( id, 'P498' )
if symbol ~= currency:getLabel() then
subresult = subresult .. ' (' .. symbol .. ')'
end
-- if #currency:getBestStatements('P2284') > 0 then
-- for _, price in pairs(currency:getBestStatements('P2284')) do
-- if tonumber(price.mainsnak.datavalue.value.amount) ~= 0 then
-- subresult = subresult .. '<br/>1 '..symbol..' = '.. string.format('%.4f', price.mainsnak.datavalue.value.amount ) .. ' ' .. claimOrLabel(string.match(price.mainsnak.datavalue.value.unit , 'Q%d+$'), 'P498')
-- end
-- end
-- end
table.insert(result, subresult)
end
return table.concat(result, '<br/>')
end
local function rEmergency(item, property)
local claims = item:getBestStatements( property )
local result = {}
for _, claim in pairs(claims) do
local id = 'Q' .. claim.mainsnak.datavalue.value['numeric-id']
local res = claimOrLabel(id, 'P1329')
if claim.qualifiers ~= nil and claim.qualifiers['P366'] ~= nil and #claim.qualifiers['P366'] > 0 then
local usage = {}
for _, qual in pairs(claim.qualifiers['P366']) do
table.insert( usage, mw.wikibase.renderSnak(qual) )
end
res = res .. ' (' .. table.concat(usage, ', ') .. ')'
end
table.insert(result, res)
end
return table.concat(result, ', ')
end
local function rTimezones(item, property)
local claims = item:getBestStatements( property )
if #claims > 3 then
local minEntity = nil
local maxEntity = nil
local minOffset = 20
local maxOffset = -20
local unknownTZs = {}
for _, claim in pairs(claims) do
local e = mw.wikibase.getEntity('Q' .. claim.mainsnak.datavalue.value['numeric-id'] )
if #e:getBestStatements( 'P2907' ) == 1 then
local val = tonumber( e:getBestStatements( 'P2907' )[1].mainsnak.datavalue.value.amount )
if val < minOffset then
minOffset = val
minEntity = e
end
if val > maxOffset then
maxOffset = val
maxEntity = e
end
else
table.insert(unknownTZs, e:getLabel())
end
end
if minEntity ~= nil and maxEntity ~= nil and minOffset ~= maxOffset then
local r = minEntity:getLabel() .. ' to ' .. maxEntity:getLabel()
if #unknownTZs > 0 then
r = r .. ' and ' .. table.concat(unknownTZs, ', ')
end
return r
end
end
return rSimple(item, property)
end
local function rSingleLinked(item, property)
if item:getBestStatements( property )[1].mainsnak.datavalue ~= nil then
return renderLinkedClaim('Q'..item:getBestStatements( property )[1].mainsnak.datavalue.value['numeric-id'])
else
return nil
end
end
local function rLinked(item, property)
local claims = item.claims[property]
local result = {}
for _, claim in pairs(claims) do
local id = 'Q' .. claim.mainsnak.datavalue.value['numeric-id']
table.insert(result, renderLinkedClaim(id))
end
return table.concat(result, ', ')
end
local conf = {
{'capital', 'Ibukota', 36, rSingleLinked},
{'currency', 'Mata uang', 38, rCurrency},
{'population', 'Populasi', 1082, rPopulation},
{'electricity', '[[Electrical systems|Electricity]]', 2884, rElectricity},
{'callingcode', '[[Daftar kode telepon negara di dunia|Country code]]', 474, rSimple},
{'timezone', '[[Time zones|Time zone]]', 421, rTimezones},
{'emergencies', 'Emergencies', 2852, rEmergency},
{'driving side', 'Driving side', 1622, rSimple}
}
local p = {}
function p.quickbar( frame )
local parentArgs = frame:getParent().args
local elements = {}
local item = mw.wikibase.getEntity( )
local useWikidata = (item ~= nil and item.claims ~= nil)
local missingInfo = false
local locationMap = parentArgs['location']
if (locationMap and starts_with(locationMap, '#Q')) then
item = mw.wikibase.getEntity(locationMap:gsub("#", ""))
locationMap = nil
end
if (locationMap ~= nil and locationMap ~= '') or (useWikidata and item.claims['P242'] ~= nil and item.claims['P242'][1] ~= nil) then
if useWikidata and (locationMap == nil or locationMap == '') then
locationMap = mw.wikibase.renderSnak( item:getBestStatements('P242')[1].mainsnak )
end
table.insert(elements, '| colspan="2" style="text-align:center; padding:0" | [[Berkas:' .. locationMap .. '|250px]]\n' )
else
missingInfo = true
end
item = mw.wikibase.getEntity( )
for _, params in pairs( conf ) do
if params[3] ~= 0 then
local val = parentArgs[params[1]]
if (val and starts_with(val, '#Q')) then
item = mw.wikibase.getEntity(val:gsub("#", ""))
val = nil
end
if val == '' or val == nil then
if useWikidata and #item:getBestStatements('P' .. params[3]) > 0 then
val = params[4]( item, 'P' .. params[3], frame)
if val ~= nil then
table.insert( elements, renderRow(params[2], val) )
else
missingInfo = true
end
else
missingInfo = true
end
else
table.insert(elements, renderRow(params[2], val) )
end
end
item = mw.wikibase.getEntity( )
end
local editRow = ''
if item ~= nil then
editRow = '|-\n| colspan="2" class="info footer" |[[:d:'.. item.id .. '|sunting di Wikidata]]\n'
end
if #elements > 0 then
if missingInfo == true and mw.title.getCurrentTitle().namespace == 0 then
table.insert(elements, '[[Kategori:Quickbar yang kekurangan informasi]]\n')
end
return frame:extensionTag {name = 'templatestyles', args = {src = 'Quickbar/styles.css'}} .. '<div id="quickbar" class="wv-quickbar floatright">\n{| cellpadding="0" cellspacing="0"\n|-\n' ..
table.concat(elements) ..
'\n'.. editRow.. '|}</div>'
else
if mw.title.getCurrentTitle().namespace == 0 then
return '[[Kategori:Quickbar with missing information]]\n'
end
return ''
end
end
return p
1fzgyvp2hfpl3svqz6bjdjduql5qpo2
Modul:Roman
828
635
2813
2812
2024-12-03T14:16:37Z
Jon Harald Søby
20
2 revisi diimpor
2811
Scribunto
text/plain
--[[
This module converts Arabic numerals into Roman numerals.
It currently works for any non-negative integer below 5 billions (up to 4 999 999 999).
Zero is represented as "N" (from Classical Latin adverbs "nec" or "non"), like in standard CLDR data.
For numbers starting at 4 thousands, this version no longer generates any HTML+CSS, but only plain-text:
standard Unicode combining diacritics are used for overlines (U+0305 for the first level,
then U+0304 for the second level, but both are treated equivalently when parsing Roman numbers).
For numbers starting at 4 billions, it still uses 4 letters M with double overlines because
triple overlines are not supported in plain-text (this is acceptable, just like "MMMM" is also
acceptable for representing 4000 but this version chooses the shorter "IV" with a single overline).
The Roman number parser will accept all valid notations (except apostrophic/Claudian/lunate notations
using reversed C), more than what it generates, and will correctly convert them to Arabic numbers.
Please do not modify this code without applying the changes first at Module:Roman/sandbox and testing
at Module:Roman/sandbox/testcases and Module talk:Roman/sandbox/testcases.
Authors and maintainers:
* User:RP88, User:Verdy_p
]]
local p = {}
--[============[
Private data
--]============]
-- See CLDR data /common/rbnf/root.xml for "roman-upper" rules. However we still don't
-- use the rarely supported Roman extension digits after 'M' (in U+2160..2188), but use
-- the more common notation with diacritical overlines ('ↁ'='V̅', 'ↂ'='X̅', etc.).
-- Please avoid using HTML with "text-decoration:overline" style, but use plain-text
-- combining characters (U+0304 and/or U+0305).
local decimalRomans = {
d0 = { [0] = '', 'I', 'II', 'III', 'IV', 'V', 'VI', 'VII', 'VIII', 'IX' },
d1 = { [0] = '', 'X', 'XX', 'XXX', 'XL', 'L', 'LX', 'LXX', 'LXXX', 'XC' },
d2 = { [0] = '', 'C', 'CC', 'CCC', 'CD', 'D', 'DC', 'DCC', 'DCCC', 'CM' },
d3 = { [0] = '', 'M', 'MM', 'MMM', 'I̅V̅', 'V̅', 'V̅I̅', 'V̅I̅I̅', 'V̅I̅I̅I̅', 'I̅X̅' },
d4 = { [0] = '', 'X̅', 'X̅X̅', 'X̅X̅X̅', 'X̅L̅', 'L̅', 'L̅X̅', 'L̅X̅X̅', 'L̅X̅X̅X̅', 'X̅C̅' },
d5 = { [0] = '', 'C̅', 'C̅C̅', 'C̅C̅C̅', 'C̅D̅', 'D̅', 'D̅C̅', 'D̅C̅C̅', 'D̅C̅C̅C̅', 'C̅M̅' },
d6 = { [0] = '', 'M̅', 'M̅M̅', 'M̅M̅M̅', 'I̿V̿', 'V̿', 'V̿I̿', 'V̿I̿I̿', 'V̿I̿I̿I̿', 'I̿X̿' },
d7 = { [0] = '', 'X̿', 'X̿X̿', 'X̿X̿X̿', 'X̿L̿', 'L̿', 'L̿X̿', 'L̿X̿X̿', 'L̿X̿X̿X̿', 'X̿C̿' },
d8 = { [0] = '', 'C̿', 'C̿C̿', 'C̿C̿C̿', 'C̿D̿', 'D̿', 'D̿C̿', 'D̿C̿C̿', 'D̿C̿C̿C̿', 'C̿M̿' },
d9 = { [0] = '', 'M̿', 'M̿M̿', 'M̿M̿M̿', 'M̿M̿M̿M̿' },
}
local romanDecimals = {
-- Basic Latin capital letters
N = 0, -- abbreviated "nec" or "non" adverb in Classical Latin
I = 1, V = 5, X = 10, L = 50, C = 100,
D = 500,-- TODO: add Medieval "apostrophic/Claudian/lunate" notations like "IƆ"
M = 1000,
-- Basic Latin small letters (not used in Classical Latin, but added in Medieval Latin)
n = 0, -- abbreviated "nec" or "non" adverb in Classical Latin
i = 1, v = 5, x = 10, l = 50, c = 100,
d = 500,-- TODO: add Medieval "apostrophic/Claudian/lunate" notations like "IƆ"
m = 1000,
-- U+0304 .. U+0305 : COMBINING (MACRON|OVERLINE)
['\204\132'] = -1000, -- (0xCC,0x84 in UTF-8) multiplier (thousand)
['\204\133'] = -1000, -- (0xCC,0x85 in UTF-8) multiplier (thousand), considered equivalent here
-- U+033F : COMBINING DOUBLE OVERLINE
['\204\191'] = -1000000, -- (0xCC,0xBF in UTF-8) multiplier (million)
-- U+012A
['Ī'] = 1000, ['ī'] = 1000, -- LATIN LETTER WITH COMBINING MACRON, canonically equivalent to 'I' and U+0304
-- U+2160 .. U+216F : Roman capital digit symbols (compatibility, monospaced in CJK fonts)
['Ⅰ'] = 1, ['Ⅱ'] = 2, ['Ⅲ'] = 3, ['Ⅳ'] = 4, ['Ⅴ'] = 5, ['Ⅵ'] = 6,
['Ⅶ'] = 7, ['Ⅷ'] = 8, ['Ⅸ'] = 9, ['Ⅹ'] = 10, ['Ⅺ'] = 11, ['Ⅻ'] = 12,
['Ⅼ'] = 50, ['Ⅽ'] = 100, ['Ⅾ'] = 500, ['Ⅿ'] = 1000,
-- U+2170 .. U+217F : Roman lowercase digit symbols (compatibility, monospaced in CJK fonts)
['ⅰ'] = 1, ['ⅱ'] = 2, ['ⅲ'] = 3, ['ⅳ'] = 4, ['ⅴ'] = 5, ['ⅵ'] = 6,
['ⅶ'] = 7, ['ⅷ'] = 8, ['ⅸ'] = 9, ['ⅹ'] = 10, ['ⅺ'] = 11, ['ⅻ'] = 12,
['ⅼ'] = 50, ['ⅽ'] = 100, ['ⅾ'] = 500, ['ⅿ'] = 1000,
-- U+2180 .. U+2182 : Old Roman symbols (these have no case pairs)
['ↀ'] = 1000, -- = 'I̅' = 'M'. TODO: add Medieval "apostrophic/Claudian/lunate" notations like "CIƆ"; do not confuse it with "CD" (400)
['ↁ'] = 5000, -- = 'V̅'. TODO: add Medieval "apostrophic/Claudian/lunate" notations like "DƆ" and "IƆƆ"
['ↂ'] = 10000, -- = 'X̅'. TODO: add Medieval "apostrophic/Claudian/lunate" notations like "CCIƆƆ"
-- U+2183..U+2184 : ROMAN DIGIT (CAPITAL|LOWER) REVERSED C. TODO: add for "apostrophic/Claudian/lunate" notations (and support "Ɔ" OPEN O as aliases)
-- The reversed "C" is a trailing multiplier by 10 but if it is not paired by a leading "C", the surrounded value will be divided by 2:
-- * "I" = 1, but if followed by followed by "Ɔ", it takes the value 100:
-- * when followed by a first "Ɔ" it multiplies it by 10 giving 1000 (assuming "CIƆ"), but if not prefixed by a pairing "C", gives 500 for "IƆ" = "D".
-- * when followed by a second "Ɔ" it multiplies it by 10 giving 1000 (assuming "CCIƆƆ"), but if not prefixed by a pairing "C", gives 5000 for "IƆƆ" = "DƆ".
-- * for higher multiples, using overlines is highly preferred for noting multipliers by 1000.
-- U+2185: ROMAN NUMERAL SIX LATE FORM
['ↅ'] = 6, -- = 'VI' (overstriked letters)
-- U+2186: ROMAN NUMERAL FIFTY EARLY FORM (Borrowed in Latin in capital form, from Greek Final sigma, similar to "C" with a leg meaning "half")
['ↆ'] = 50, -- = 'L'
-- U+2187 .. U+2188: ROMAN NUMERAL (ONE HUNDRED|FIFTY) THOUSAND (Archaic, rarely supported in fonts)
['ↇ'] = 50000, -- = 'L̅'. TODO: add Medieval "apostrophic/Claudian/lunate" notations like "DƆƆ" and "IƆƆƆ"
['ↈ'] = 100000, -- = 'C̅'. TODO: add Medieval "apostrophic/Claudian/lunate" notations like "CCCDƆƆ" and "CCCIƆƆƆ"
}
--[=================[
Private functions
--]=================]
--[==[
This function returns a string containing the input value formatted as a Roman numeral.
It works for non-negative integers lower than 5 billions (up to 4 999 999 999: this covers
all unsigned 32-bit integers), otherwise it returns the number formatted using Latin
digits. The result string will be an UTF-8-encoded plain-text alphabetic string.
]==]--
local function convertArabicToRoman(value)
if value >= 1 and value <= 4999999999 and value == math.floor(value) then
local d0, d1, d2, d3, d4, d5, d6, d7, d8
d0, value = value % 10, math.floor(value / 10)
d1, value = value % 10, math.floor(value / 10)
d2, value = value % 10, math.floor(value / 10)
d3, value = value % 10, math.floor(value / 10)
d4, value = value % 10, math.floor(value / 10)
d5, value = value % 10, math.floor(value / 10)
d6, value = value % 10, math.floor(value / 10)
d7, value = value % 10, math.floor(value / 10)
d8, value = value % 10, math.floor(value / 10)
return table.concat({
decimalRomans.d9[value],
decimalRomans.d8[d8],
decimalRomans.d7[d7],
decimalRomans.d6[d6],
decimalRomans.d5[d5],
decimalRomans.d4[d4],
decimalRomans.d3[d3],
decimalRomans.d2[d2],
decimalRomans.d1[d1],
decimalRomans.d0[d0],
})
elseif value == 0 then
return 'N' -- for adverbs "nec" or "non" in Classical Latin (which had no zero)
end
return tostring(value)
end
--[==[
This function converts a plain-text string containing a Roman numeral to an integer.
It works for values between 0 (N) and 4 999 999 999 (M̿M̿M̿M̿C̿M̿X̿C̿I̿X̿C̅M̅X̅C̅I̅X̅CMXCIX).
]==]--
local function convertRomanToArabic(roman)
if roman == '' then return nil end
local result, prevRomanDecimal, multiplier = 0, 0, 1
for i = mw.ustring.len(roman), 1, -1 do
local currentRomanDecimal = romanDecimals[mw.ustring.sub(roman, i, i)]
if currentRomanDecimal == nil then
return nil
elseif currentRomanDecimal < 0 then
multiplier = multiplier * -currentRomanDecimal
else
currentRomanDecimal, multiplier = currentRomanDecimal * multiplier, 1
if currentRomanDecimal < prevRomanDecimal then
result = result - currentRomanDecimal
else
result = result + currentRomanDecimal
prevRomanDecimal = currentRomanDecimal
end
end
end
return result
end
--[==[
This function converts a string containing a Roman numeral to an integer.
It works for values between 0 and 4999999999.
The input string may contain HTML tags using style="text-decoration:overline" (not recommended).
]==]--
local function convertRomanHTMLToArabic(roman)
local result = convertRomanToArabic(roman)
if result == nil then
result = tonumber(roman)
end
return result
[==[ DISABLED FOR NOW, NOT REALLY NEEDED AND NOT CORRECTLY TESTED
local result = 0
local overline_start_len = mw.ustring.len(overline_start)
if mw.ustring.sub(roman, 1, overline_start_len) == overline_start then
local end_tag_start, end_tag_end = mw.ustring.find(roman, overline_end, overline_start_len, true)
if end_tag_start ~= nil then
local roman_high = mw.ustring.sub(roman, overline_start_len + 1, end_tag_start - 1)
local roman_low = mw.ustring.sub(roman, end_tag_end + 1, mw.ustring.len(roman)) or ''
if (mw.ustring.find(roman_high, "^[mdclxvi]+$") ~= nil) and (mw.ustring.find(roman_low, "^[mdclxvi]*$") ~= nil) then
result = convertRomanToArabic(roman_high) * 1000 + convertRomanToArabic(roman_low)
end
end
end
return result
]==]
end
--[==[
Helper function to handle error messages.
]==]--
local function outputError(message)
return table.concat({
'<strong class="error">Roman Module Error: ', message,
'</strong>[[Kategori:Errors reported by Module Roman]]'
})
end
--[================[
Public functions
--]================]
--[==[
isRoman
Tests if the trimmed input is a valid Roman numeral. Returns true if so, false if not.
For the purposes of this function, the empty string (after trimming whitespaces) is not a Roman numeral.
Parameters
s: string to test if it is a valid Roman numeral
Error Handling:
If the input is not a valid Roman numeral this function returns false.
]==]--
function p.isRoman(s)
return type(s) == 'string' and convertRomanToArabic(mw.text.trim(s)) ~= nil
end
--[==[
toArabic
This function converts a Roman numeral into an Arabic numeral.
It works for values between 0 and 4999999999.
'N' is converted to 0 and the empty string is converted to nil.
Parameters
roman: string containing value to convert into an Arabic numeral
Error Handling:
If the input is not a valid Roman numeral this function returns nil.
]==]--
function p.toArabic(roman)
if type(roman) == 'string' then
roman = mw.text.trim(roman)
local result = convertRomanToArabic(roman)
if result == nil then
result = tonumber(roman)
end
return result
elseif type(roman) == 'number' then
return roman
else
return nil
end
end
--[==[
_Numeral
This function returns a string containing the input value formatted as a Roman numeral.
It works for values between 0 and 4999999999.
Parameters
value: integer or string containing value to convert into a Roman numeral
Error Handling:
If the input does not look like it contains a number or the number is outside of the
supported range an error message is returned.
]==]--
function p._Numeral(value)
if value == nil then
return outputError('missing value')
end
if type(value) == 'string' then
value = tonumber(value)
elseif type(value) ~= 'number' then
return outputError('unsupported value')
end
return convertArabicToRoman(value)
end
--[==[
Numeral
This function for MediaWiki converts an Arabic numeral into a Roman numeral.
It works for values between 0 and 4999999999 (includes the whole range of unsigned 32-bit integers).
Arabic numeral zero is output as 'N' (for Latin negation adverbs "nec" or "non").
Usage:
{{#invoke:Roman|Numeral|<value>}}
{{#invoke:Roman|Numeral}} - uses the caller's parameters
Parameters
1: Value to convert into a Roman numeral. Must be at least 0 and less than 5,000,000.
Error Handling:
If the input does not look like it contains a number or the number is outside of the
supported range an error message is returned.
]==]--
function p.Numeral(frame)
-- if no argument provided than check parent template/module args
local args = frame.args
if args[1] == nil then
args = frame:getParent().args
end
return p._Numeral(args[1])
end
return p
3v8bousw7o2jjglxs4xvfhkcemg4cxd
Modul:Section link
828
636
2817
2816
2024-12-03T14:16:37Z
Jon Harald Søby
20
3 revisi diimpor
2815
Scribunto
text/plain
-- This module implements {{section link}}.
require('Module:No globals');
local checkType = require('libraryUtil').checkType
local p = {}
local function makeSectionLink(page, section, display)
display = display or section
page = page or ''
-- MediaWiki doesn't allow these in `page`, so only need to do for `section`
if type(section) == 'string' then
section = string.gsub(section, "{", "{")
section = string.gsub(section, "}", "}")
end
return string.format('[[%s#%s|%s]]', page, section, display)
end
local function normalizeTitle(title)
title = mw.ustring.gsub(mw.ustring.gsub(title, "'", ""), '"', '')
title = mw.ustring.gsub(title, "%b<>", "")
return mw.title.new(title).prefixedText
end
function p._main(page, sections, options, title)
-- Validate input.
checkType('_main', 1, page, 'string', true)
checkType('_main', 3, options, 'table', true)
if sections == nil then
sections = {}
elseif type(sections) == 'string' then
sections = {sections}
elseif type(sections) ~= 'table' then
error(string.format(
"type error in argument #2 to '_main' " ..
"(string, table or nil expected, got %s)",
type(sections)
), 2)
end
options = options or {}
title = title or mw.title.getCurrentTitle()
-- Deal with blank page names elegantly
if page and not page:find('%S') then
page = nil
options.nopage = true
end
-- Make the link(s).
local isShowingPage = not options.nopage
if #sections <= 1 then
local linkPage = page or ''
local section = sections[1] or 'Notes'
local display = '§ ' .. section
if isShowingPage then
page = page or title.prefixedText
if options.display and options.display ~= '' then
if normalizeTitle(options.display) == normalizeTitle(page) then
display = options.display .. ' ' .. display
else
error(string.format(
'Display title "%s" was ignored since it is ' ..
"not equivalent to the page's actual title",
options.display
), 0)
end
else
display = page .. ' ' .. display
end
end
return makeSectionLink(linkPage, section, display)
else
-- Multiple sections. First, make a list of the links to display.
local ret = {}
for i, section in ipairs(sections) do
ret[i] = makeSectionLink(page, section)
end
-- Assemble the list of links into a string with mw.text.listToText.
-- We use the default separator for mw.text.listToText, but a custom
-- conjunction. There is also a special case conjunction if we only
-- have two links.
local conjunction
if #sections == 2 then
conjunction = '​ dan '
else
conjunction = ', dan '
end
ret = mw.text.listToText(ret, nil, conjunction)
-- Add the intro text.
local intro = '§§ '
if isShowingPage then
intro = (page or title.prefixedText) .. ' ' .. intro
end
ret = intro .. ret
return ret
end
end
function p.main(frame)
local yesno = require('Module:Yesno')
local args = require('Module:Arguments').getArgs(frame, {
wrappers = 'Template:Section link',
valueFunc = function (key, value)
value = value:match('^%s*(.-)%s*$') -- Trim whitespace
-- Allow blank first parameters, as the wikitext template does this.
if value ~= '' or key == 1 then
return value
end
end
})
for k, v in pairs(args) do -- replace underscores in the positional parameter values
if 'number' == type(k) then
if not yesno (args['keep-underscores']) then -- unless |keep-underscores=yes
args[k] = mw.uri.decode (v, 'WIKI'); -- percent-decode; replace underscores with space characters
else
args[k] = mw.uri.decode (v, 'PATH'); -- percent-decode; retain underscores
end
end
end
-- Sort the arguments.
local page
local sections, options = {}, {}
for k, v in pairs(args) do
if k == 1 then
-- Doing this in the loop because of a bug in [[Modul:Arguments]]
-- when using pairs with deleted arguments.
page = mw.text.decode(v, true)
elseif type(k) == 'number' then
sections[k] = v
else
options[k] = v
end
end
options.nopage = yesno (options.nopage); -- make boolean
-- Extract section from page, if present
if page then
local p, s = page:match('^(.-)#(.*)$')
if p then page, sections[1] = p, s end
end
-- Compress the sections array.
local function compressArray(t)
local nums, ret = {}, {}
for num in pairs(t) do
nums[#nums + 1] = num
end
table.sort(nums)
for i, num in ipairs(nums) do
ret[i] = t[num]
end
return ret
end
sections = compressArray(sections)
return p._main(page, sections, options)
end
return p
qk1ut0jtin6myz4h9blhoc8xmxgoncd
Modul:String
828
637
2819
2818
2024-12-03T14:16:37Z
Jon Harald Søby
20
1 revisi diimpor
2818
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.
Usage:
{{#invoke:String|match|source_string|pattern_string|start_index|match_number|plain_flag|nomatch_output}}
OR
{{#invoke:String|pos|s=source_string|pattern=pattern_string|start=start_index
|match=match_number|plain=plain_flag|nomatch=nomatch_output}}
Parameters
s: The string to search
pattern: The pattern or string to find within the string
start: The index within the source string to start the search. The first
character of the string has index 1. Defaults to 1.
match: In some cases it may be possible to make multiple matches on a single
string. This specifies which match to return, where the first match is
match= 1. If a negative number is specified then a match is returned
counting from the last match. Hence match = -1 is the same as requesting
the last match. Defaults to 1.
plain: A flag indicating that the pattern should be understood as plain
text. Defaults to false.
nomatch: If no match is found, output the "nomatch" value rather than an error.
If invoked using named parameters, Mediawiki will automatically remove any leading or
trailing whitespace from each string. In some circumstances this is desirable, in
other cases one may want to preserve the whitespace.
If the match_number or start_index are out of range for the string being queried, then
this function generates an error. An error is also generated if no match is found.
If one adds the parameter ignore_errors=true, then the error will be suppressed and
an empty string will be returned on any failure.
For information on constructing Lua patterns, a form of [regular expression], see:
* http://www.lua.org/manual/5.1/manual.html#5.4.1
* http://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual#Patterns
* http://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual#Ustring_patterns
]]
-- This sub-routine is exported for use in other modules
function 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
-- 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 = '[[Kategori:' .. 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
lghi9n6b7jf093z23khxx57gbk5u2ux
Modul:String/doc
828
638
2822
2821
2024-12-03T14:16:38Z
Jon Harald Søby
20
2 revisi diimpor
2821
wikitext
text/x-wiki
{{Documentation subpage}}
Lihat [[w:en:Module:String/doc]] untuk dokumentasi terkini.
gyjjlu6be0b089i1cwnvmlvg6jhk1yc
Modul:TableTools
828
639
2824
2823
2024-12-03T14:16:38Z
Jon Harald Søby
20
1 revisi diimpor
2823
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)
if type(v) == 'number' and v >= 1 and floor(v) == v and v < infinity then
return true
else
return false
end
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)
if type(v) == 'number' and tostring(v) == '-nan' then
return true
else
return false
end
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)
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(t)
checkType('removeDuplicates', 1, t, 'table')
local isNan = p.isNan
local ret, exists = {}, {}
for i, v in ipairs(t) 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, v 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.
s = s:gsub('([%(%)%%%.%[%]%*%+%-%?%^%$])', '%%%1')
return s
end
prefix = prefix or ''
suffix = suffix or ''
prefix = cleanPattern(prefix)
suffix = cleanPattern(suffix)
local pattern = '^' .. prefix .. '([1-9]%d*)' .. suffix .. '$'
local nums = {}
for k, v 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 k 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
else -- This will fail with table, boolean, function.
return item1 < item2
end
end
--[[
Returns a list 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 list = {}
local index = 1
for key, value in pairs(t) do
list[index] = key
index = index + 1
end
if keySort ~= false then
keySort = type(keySort) == 'function' and keySort or defaultKeySort
table.sort(list, keySort)
end
return list
end
--[[
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 list = p.keysToList(t, keySort, true)
local i = 0
return function()
i = i + 1
local key = list[i]
if key ~= nil then
return key, t[key]
else
return nil, nil
end
end
end
--[[
Returns true if all keys in the table are consecutive integers starting at 1.
--]]
function p.isArray(t)
checkType("isArray", 1, t, "table")
local i = 0
for k, v in pairs(t) do
i = i + 1
if t[i] == nil then
return false
end
end
return true
end
-- { "a", "b", "c" } -> { a = 1, b = 2, c = 3 }
function p.invert(array)
checkType("invert", 1, array, "table")
local map = {}
for i, v in ipairs(array) do
map[v] = i
end
return map
end
--[[
{ "a", "b", "c" } -> { ["a"] = true, ["b"] = true, ["c"] = true }
--]]
function p.listToSet(t)
checkType("listToSet", 1, t, "table")
local set = {}
for _, item in ipairs(t) do
set[item] = true
end
return set
end
--[[
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
--[[
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 list = {}
local list_i = 0
for _, v in p.sparseIpairs(t) do
list_i = list_i + 1
list[list_i] = v
end
return table.concat(list, sep, i, j)
end
--[[
-- This returns the length of a table, or the first integer key n counting from
-- 1 such that t[n + 1] is nil. 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)
local i = 1
while t[i] ~= nil do
i = i + 1
end
return i - 1
end
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
0lnjkid7u2pbr4qd3ax7npvc8fithkp
Modul:Trim quotes
828
640
2826
2825
2024-12-03T14:16:38Z
Jon Harald Søby
20
1 revisi diimpor
2825
Scribunto
text/plain
local p = {}
function p._trim(s)
if s then
if s:match([[^(['"]).*%1$]]) then return p._trim(string.sub(s,2,-2)) else return s end
else
return ""
end
end
function p.trim(frame)
local s = (frame.args['s'] or frame.args[1]) or (frame:getParent().args['s'] or frame:getParent().args[1])
return p._trim(s)
end
return p
s3q0pg1nqmwo84ax2ivegivqa64dwfk
Modul:TypeToColor
828
641
2828
2827
2024-12-03T14:16:38Z
Jon Harald Søby
20
1 revisi diimpor
2827
Scribunto
text/plain
local p = {}
function p.convert( frame )
return p.convertImpl(frame.args[1])
end
function p.convertImpl(type)
type = type:lower()
local types = {
['do'] = '808080',
around = '800080',
buy = '008080',
city = '0000FF',
drink = '000000',
eat = 'D2691E',
go = 'A52A2A',
listing = '228B22',
other = '228B22',
see = '4682B4',
sleep = '000080',
vicinity = '800000',
view = '4169E1',
launchsite = 'FF8C00',
}
local result = types[type]
if result then
return result
end
-- Deprecated usage - trace it
types = {
black = '000000',
blue = '0000FF',
brown = 'A52A2A',
chocolate = 'D2691E',
forestgreen = '228B22',
gold = 'FFD700',
gray = '808080',
grey = '808080',
lime = 'BFFF00',
magenta = 'FF00FF',
maroon = '800000',
mediumaquamarine = '66CDAA',
navy = '000080',
orange = 'FFA500',
plum = 'DDA0DD',
purple = '800080',
red = 'FF0000',
royalblue = '4169E1',
silver = 'C0C0C0',
steelblue = '4682B4',
teal = '008080',
}
local result = types[type]
if result then
return result -- .. '[[Kategori:Fixme TypeToColor]]'
end
return 'C0C0C0' -- .. '[[Kategori:Fixme TypeToColor Unknown]]'
end
return p
cmfkash5lb2sdg6pqosx60sgluk7hq4
Modul:URL
828
642
2831
2830
2024-12-03T14:16:38Z
Jon Harald Søby
20
2 revisi diimpor
2830
Scribunto
text/plain
--
-- This module implements {{URL}}
--
-- See unit tests at [[Modul:URL/testcases]]
local p = {}
local function safeUri(s)
local success, uri = pcall(function()
return mw.uri.new(s)
end)
if success then
return uri
end
end
local function extractUrl(args)
for name, val in pairs(args) do
if name ~= 2 and name ~= "msg" then
local url = name .. "=" .. val;
url = mw.ustring.gsub(url, '^[Hh][Tt][Tt][Pp]([Ss]?):(/?)([^/])', 'http%1://%3')
local uri = safeUri(url);
if uri and uri.host then
return url
end
end
end
end
function p._url(url, text, msg)
url = mw.text.trim(url or '')
text = mw.text.trim(text or '')
local nomsg = (msg or ''):sub(1,1):lower() == "n" or msg == 'false' -- boolean: true if msg is "false" or starts with n or N
if url == '' then
if text == '' then
if nomsg then
return nil
else
return mw.getCurrentFrame():expandTemplate{ title = 'tlx', args = { 'URL', "''example.com''", "''optional display text''" } }
end
else
return text
end
end
-- If the URL contains any unencoded spaces, encode them, because MediaWiki will otherwise interpret a space as the end of the URL.
url = mw.ustring.gsub(url, '%s', function(s) return mw.uri.encode(s, 'PATH') end)
-- If there is an empty query string or fragment id, remove it as it will cause mw.uri.new to throw an error
url = mw.ustring.gsub(url, '#$', '')
url = mw.ustring.gsub(url, '%?$', '')
-- If it's an HTTP[S] URL without the double slash, fix it.
url = mw.ustring.gsub(url, '^[Hh][Tt][Tt][Pp]([Ss]?):(/?)([^/])', 'http%1://%3')
local uri = safeUri(url)
-- Handle URL's without a protocol and URL's that are protocol-relative,
-- e.g. www.example.com/foo or www.example.com:8080/foo, and //www.example.com/foo
if uri and (not uri.protocol or (uri.protocol and not uri.host)) and url:sub(1, 2) ~= '//' then
url = 'http://' .. url
uri = safeUri(url)
end
if text == '' then
if uri then
if uri.path == '/' then uri.path = '' end
local port = ''
if uri.port then port = ':' .. uri.port end
text = mw.ustring.lower(uri.host or '') .. port .. (uri.relativePath or '')
-- Add <wbr> before _/.-# sequences
text = mw.ustring.gsub(text,"(/+)","<wbr/>%1") -- This entry MUST be the first. "<wbr/>" has a "/" in it, you know.
text = mw.ustring.gsub(text,"(%.+)","<wbr/>%1")
-- text = mw.ustring.gsub(text,"(%-+)","<wbr/>%1") -- DISABLED for now
text = mw.ustring.gsub(text,"(%#+)","<wbr/>%1")
text = mw.ustring.gsub(text,"(_+)","<wbr/>%1")
else -- URL is badly-formed, so just display whatever was passed in
text = url
end
end
return mw.ustring.format('<span class="url">[%s %s]</span>', url, text)
end
--[[
The main entry point for calling from Template:URL.
--]]
function p.url(frame)
local templateArgs = frame.args
local parentArgs = frame:getParent().args
local url = templateArgs[1] or parentArgs[1]
local text = templateArgs[2] or parentArgs[2] or ''
local msg = templateArgs.msg or parentArgs.msg or ''
url = url or extractUrl(templateArgs) or extractUrl(parentArgs) or ''
return p._url(url, text, msg)
end
--[[
The entry point for calling from the forked Template:URL2.
This function returns no message by default.
It strips out wiki-link markup, html tags, and everything after a space.
--]]
function p.url2(frame)
local templateArgs = frame.args
local parentArgs = frame:getParent().args
local url = templateArgs[1] or parentArgs[1]
local text = templateArgs[2] or parentArgs[2] or ''
-- default to no message
local msg = templateArgs.msg or parentArgs.msg or 'no'
url = url or extractUrl(templateArgs) or extractUrl(parentArgs) or ''
-- if the url came from a Wikidata call, it might have a pen icon appended
-- we want to keep that and add it back at the end.
local u1, penicon = mw.ustring.match( url, "(.*)( <span class='penicon.*)" )
if penicon then url = u1 end
-- strip out html tags and [ ] from url
url = (url or ''):gsub("<[^>]*>", ""):gsub("[%[%]]", "")
-- truncate anything after a space
url = url:gsub("%%20", " "):gsub(" .*", "")
return (p._url(url, text, msg) or "") .. (penicon or "")
end
return p
fmec20rfwvaanybmeoq3c46ge7c4wmv
Modul:Unsubst
828
643
2834
2833
2024-12-03T14:16:38Z
Jon Harald Søby
20
2 revisi diimpor
2832
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
Modul:Wd
828
644
2836
2835
2024-12-03T14:16:38Z
Jon Harald Søby
20
1 revisi diimpor
2835
Scribunto
text/plain
-- Original module located at [[:en:Module:Wd]], [[:en:Module:Wd/i18n]] and [[:en:Module:Wd/aliasesP]].
local p = {}
local arg = ...
local i18n
function loadSubmodules(frame)
local title
if frame then
-- current module invoked by page/template, get its title from frame
title = frame:getTitle()
else
-- current module included by other module, get its title from ...
title = arg
end
i18n = i18n or require(title .. "/i18n")
p.aliasesP = p.aliasesP or mw.loadData(title .. "/aliasesP")
end
p.claimCommands = {
property = "property",
properties = "properties",
qualifier = "qualifier",
qualifiers = "qualifiers",
reference = "reference",
references = "references"
}
p.generalCommands = {
label = "label",
title = "title",
alias = "alias",
aliases = "aliases",
badge = "badge",
badges = "badges"
}
p.flags = {
linked = "linked",
short = "short",
raw = "raw",
multilanguage = "multilanguage",
unit = "unit",
-------------
preferred = "preferred",
normal = "normal",
deprecated = "deprecated",
best = "best",
future = "future",
current = "current",
former = "former",
edit = "edit",
editAtEnd = "edit@end",
mdy = "mdy",
single = "single",
sourced = "sourced"
}
p.args = {
eid = "eid"
}
local aliasesQ = {
percentage = "Q11229",
prolepticJulianCalendar = "Q1985786",
citeWeb = "Q5637226",
citeQ = "Q22321052"
}
local parameters = {
property = "%p",
qualifier = "%q",
reference = "%r",
alias = "%a",
badge = "%b",
separator = "%s",
general = "%x"
}
local formats = {
property = "%p[%s][%r]",
qualifier = "%q[%s][%r]",
reference = "%r",
propertyWithQualifier = "%p[ <span style=\"font-size:85%\">(%q)</span>][%s][%r]",
alias = "%a[%s]",
badge = "%b[%s]"
}
local hookNames = { -- {level_1, level_2}
[parameters.property] = {"getProperty"},
[parameters.reference] = {"getReferences", "getReference"},
[parameters.qualifier] = {"getAllQualifiers"},
[parameters.qualifier.."\\d"] = {"getQualifiers", "getQualifier"},
[parameters.alias] = {"getAlias"},
[parameters.badge] = {"getBadge"}
}
-- default value objects, should NOT be mutated but instead copied
local defaultSeparators = {
["sep"] = {" "},
["sep%s"] = {","},
["sep%q"] = {"; "},
["sep%q\\d"] = {", "},
["sep%r"] = nil, -- none
["punc"] = nil -- none
}
local rankTable = {
["preferred"] = 1,
["normal"] = 2,
["deprecated"] = 3
}
local Config = {}
Config.__index = Config
-- allows for recursive calls
function Config.new()
local cfg = {}
setmetatable(cfg, Config)
cfg.separators = {
-- single value objects wrapped in arrays so that we can pass by reference
["sep"] = {copyTable(defaultSeparators["sep"])},
["sep%s"] = {copyTable(defaultSeparators["sep%s"])},
["sep%q"] = {copyTable(defaultSeparators["sep%q"])},
["sep%r"] = {copyTable(defaultSeparators["sep%r"])},
["punc"] = {copyTable(defaultSeparators["punc"])}
}
cfg.entity = nil
cfg.entityID = nil
cfg.propertyID = nil
cfg.propertyValue = nil
cfg.qualifierIDs = {}
cfg.qualifierIDsAndValues = {}
cfg.bestRank = true
cfg.ranks = {true, true, false} -- preferred = true, normal = true, deprecated = false
cfg.foundRank = #cfg.ranks
cfg.flagBest = false
cfg.flagRank = false
cfg.periods = {true, true, true} -- future = true, current = true, former = true
cfg.flagPeriod = false
cfg.mdyDate = false
cfg.singleClaim = false
cfg.sourcedOnly = false
cfg.editable = false
cfg.editAtEnd = false
cfg.inSitelinks = false
cfg.langCode = mw.language.getContentLanguage().code
cfg.langName = mw.language.fetchLanguageName(cfg.langCode, cfg.langCode)
cfg.langObj = mw.language.new(cfg.langCode)
-- somewhat reliable way of determining global site ID in the absence of a library function, targeting the Wikipedia project (i.e. appending "wiki")
cfg.siteID = (function() for i,v in pairs(mw.site.interwikiMap("local")) do if v.isCurrentWiki and i~="w" then return mw.ustring.gsub(i,"-","_").."wiki" end end end)()
cfg.states = {}
cfg.states.qualifiersCount = 0
cfg.curState = nil
cfg.prefetchedRefs = nil
return cfg
end
local State = {}
State.__index = State
function State.new(cfg)
local stt = {}
setmetatable(stt, State)
stt.conf = cfg
stt.results = {}
stt.parsedFormat = {}
stt.separator = {}
stt.movSeparator = {}
stt.puncMark = {}
stt.linked = false
stt.rawValue = false
stt.shortName = false
stt.anyLanguage = false
stt.unitOnly = false
stt.singleValue = false
return stt
end
function replaceAlias(id)
if p.aliasesP[id] then
id = p.aliasesP[id]
end
return id
end
function errorText(code, param)
local text = i18n["errors"][code]
if param then text = mw.ustring.gsub(text, "$1", param) end
return text
end
function throwError(errorMessage, param)
error(errorText(errorMessage, param))
end
function replaceDecimalMark(num)
return mw.ustring.gsub(num, "[.]", i18n['numeric']['decimal-mark'], 1)
end
function padZeros(num, numDigits)
local numZeros
local negative = false
if num < 0 then
negative = true
num = num * -1
end
num = tostring(num)
numZeros = numDigits - num:len()
for i = 1, numZeros do
num = "0"..num
end
if negative then
num = "-"..num
end
return num
end
function replaceSpecialChar(chr)
if chr == '_' then
-- replace underscores with spaces
return ' '
else
return chr
end
end
function replaceSpecialChars(str)
local chr
local esc = false
local strOut = ""
for i = 1, #str do
chr = str:sub(i,i)
if not esc then
if chr == '\\' then
esc = true
else
strOut = strOut .. replaceSpecialChar(chr)
end
else
strOut = strOut .. chr
esc = false
end
end
return strOut
end
function buildWikilink(target, label)
if not label or target == label then
return "[[" .. target .. "]]"
else
return "[[" .. target .. "|" .. label .. "]]"
end
end
-- used to make frame.args mutable, to replace #frame.args (which is always 0)
-- with the actual amount and to simply copy tables
function copyTable(tIn)
if not tIn then
return nil
end
local tOut = {}
for i, v in pairs(tIn) do
tOut[i] = v
end
return tOut
end
-- used to merge output arrays together;
-- note that it currently mutates the first input array
function mergeArrays(a1, a2)
for i = 1, #a2 do
a1[#a1 + 1] = a2[i]
end
return a1
end
function split(str, del)
local out = {}
local i, j = str:find(del)
if i and j then
out[1] = str:sub(1, i - 1)
out[2] = str:sub(j + 1)
else
out[1] = str
end
return out
end
function parseWikidataURL(url)
local id
if url:match('^http[s]?://') then
id = split(url, "Q")
if id[2] then
return "Q" .. id[2]
end
end
return nil
end
function parseDate(dateStr, precision)
precision = precision or "d"
local i, j, index, ptr
local parts = {nil, nil, nil}
if dateStr == nil then
return parts[1], parts[2], parts[3] -- year, month, day
end
-- 'T' for snak values, '/' for outputs with '/Julian' attached
i, j = dateStr:find("[T/]")
if i then
dateStr = dateStr:sub(1, i-1)
end
local from = 1
if dateStr:sub(1,1) == "-" then
-- this is a negative number, look further ahead
from = 2
end
index = 1
ptr = 1
i, j = dateStr:find("-", from)
if i then
-- year
parts[index] = tonumber(mw.ustring.gsub(dateStr:sub(ptr, i-1), "^\+(.+)$", "%1"), 10) -- remove '+' sign (explicitly give base 10 to prevent error)
if parts[index] == -0 then
parts[index] = tonumber("0") -- for some reason, 'parts[index] = 0' may actually store '-0', so parse from string instead
end
if precision == "y" then
-- we're done
return parts[1], parts[2], parts[3] -- year, month, day
end
index = index + 1
ptr = i + 1
i, j = dateStr:find("-", ptr)
if i then
-- month
parts[index] = tonumber(dateStr:sub(ptr, i-1), 10)
if precision == "m" then
-- we're done
return parts[1], parts[2], parts[3] -- year, month, day
end
index = index + 1
ptr = i + 1
end
end
if dateStr:sub(ptr) ~= "" then
-- day if we have month, month if we have year, or year
parts[index] = tonumber(dateStr:sub(ptr), 10)
end
return parts[1], parts[2], parts[3] -- year, month, day
end
function datePrecedesDate(aY, aM, aD, bY, bM, bD)
if aY == nil or bY == nil then
return nil
end
aM = aM or 1
aD = aD or 1
bM = bM or 1
bD = bD or 1
if aY < bY then
return true
end
if aY > bY then
return false
end
if aM < bM then
return true
end
if aM > bM then
return false
end
if aD < bD then
return true
end
return false
end
function getHookName(param, index)
if hookNames[param] then
return hookNames[param][index]
elseif param:len() > 2 then
return hookNames[param:sub(1, 2).."\\d"][index]
else
return nil
end
end
function alwaysTrue()
return true
end
-- The following function parses a format string.
--
-- The example below shows how a parsed string is structured in memory.
-- Variables other than 'str' and 'child' are left out for clarity's sake.
--
-- Example:
-- "A %p B [%s[%q1]] C [%r] D"
--
-- Structure:
-- [
-- {
-- str = "A "
-- },
-- {
-- str = "%p"
-- },
-- {
-- str = " B ",
-- child =
-- [
-- {
-- str = "%s",
-- child =
-- [
-- {
-- str = "%q1"
-- }
-- ]
-- }
-- ]
-- },
-- {
-- str = " C ",
-- child =
-- [
-- {
-- str = "%r"
-- }
-- ]
-- },
-- {
-- str = " D"
-- }
-- ]
--
function parseFormat(str)
local chr, esc, param, root, cur, prev, new
local params = {}
local function newObject(array)
local obj = {} -- new object
obj.str = ""
array[#array + 1] = obj -- array{object}
obj.parent = array
return obj
end
local function endParam()
if param > 0 then
if cur.str ~= "" then
cur.str = "%"..cur.str
cur.param = true
params[cur.str] = true
cur.parent.req[cur.str] = true
prev = cur
cur = newObject(cur.parent)
end
param = 0
end
end
root = {} -- array
root.req = {}
cur = newObject(root)
prev = nil
esc = false
param = 0
for i = 1, #str do
chr = str:sub(i,i)
if not esc then
if chr == '\\' then
endParam()
esc = true
elseif chr == '%' then
endParam()
if cur.str ~= "" then
cur = newObject(cur.parent)
end
param = 2
elseif chr == '[' then
endParam()
if prev and cur.str == "" then
table.remove(cur.parent)
cur = prev
end
cur.child = {} -- new array
cur.child.req = {}
cur.child.parent = cur
cur = newObject(cur.child)
elseif chr == ']' then
endParam()
if cur.parent.parent then
new = newObject(cur.parent.parent.parent)
if cur.str == "" then
table.remove(cur.parent)
end
cur = new
end
else
if param > 1 then
param = param - 1
elseif param == 1 then
if not chr:match('%d') then
endParam()
end
end
cur.str = cur.str .. replaceSpecialChar(chr)
end
else
cur.str = cur.str .. chr
esc = false
end
prev = nil
end
endParam()
-- make sure that at least one required parameter has been defined
if not next(root.req) then
throwError("missing-required-parameter")
end
-- make sure that the separator parameter "%s" is not amongst the required parameters
if root.req[parameters.separator] then
throwError("extra-required-parameter", parameters.separator)
end
return root, params
end
function sortOnRank(claims)
local rankPos
local ranks = {{}, {}, {}, {}} -- preferred, normal, deprecated, (default)
local sorted = {}
for i, v in ipairs(claims) do
rankPos = rankTable[v.rank] or 4
ranks[rankPos][#ranks[rankPos] + 1] = v
end
sorted = ranks[1]
sorted = mergeArrays(sorted, ranks[2])
sorted = mergeArrays(sorted, ranks[3])
return sorted
end
-- if id == nil then item connected to current page is used
function Config:getLabel(id, raw, link, short)
local label = nil
local title = nil
local prefix= ""
local lang
if not id then
id = mw.wikibase.getEntityIdForCurrentPage()
if not id then
return ""
end
end
id = id:upper() -- just to be sure
if raw then
-- check if given id actually exists
if mw.wikibase.getEntity(id) then
label = id
if id:sub(1,1) == "P" then
prefix = "Property:"
end
end
prefix = "d:" .. prefix
title = label -- may be nil
else
-- try short name first if requested
if short then
label = p._property({p.aliasesP.shortName, [p.args.eid] = id}) -- get short name
if label == "" then
label = nil
end
end
-- get label
if not label then
label, lang = mw.wikibase.getLabelWithLang(id)
-- don't allow language fallback
if lang ~= self.langCode then
label = nil
end
end
end
if not label then
label = ""
elseif link then
-- build a link if requested
if not title then
if id:sub(1,1) == "Q" then
title = mw.wikibase.sitelink(id)
elseif id:sub(1,1) == "P" then
-- properties have no sitelink, link to Wikidata instead
title = id
prefix = "d:Property:"
end
end
if title then
label = buildWikilink(prefix .. title, label)
end
end
return label
end
function Config:getEditIcon()
local value = ""
local prefix = ""
local front = " "
local back = ""
if self.entityID:sub(1,1) == "P" then
prefix = "Property:"
end
if self.editAtEnd then
front = '<span style="float:'
if self.langObj:isRTL() then
front = front .. 'left'
else
front = front .. 'right'
end
front = front .. '">'
back = '</span>'
end
value = "[[Berkas:Blue pencil.svg|frameless|text-top|10px|alt=" .. i18n['info']['edit-on-wikidata'] .. "|link=https://www.wikidata.org/wiki/" .. prefix .. self.entityID .. "?uselang=" .. self.langCode
if self.propertyID then
value = value .. "#" .. self.propertyID
elseif self.inSitelinks then
value = value .. "#sitelinks-wikipedia"
end
value = value .. "|" .. i18n['info']['edit-on-wikidata'] .. "]]"
return front .. value .. back
end
-- used to create the final output string when it's all done, so that for references the
-- function extensionTag("ref", ...) is only called when they really ended up in the final output
function Config:concatValues(valuesArray)
local outString = ""
local j, skip
for i = 1, #valuesArray do
-- check if this is a reference
if valuesArray[i].refHash then
j = i - 1
skip = false
-- skip this reference if it is part of a continuous row of references that already contains the exact same reference
while valuesArray[j] and valuesArray[j].refHash do
if valuesArray[i].refHash == valuesArray[j].refHash then
skip = true
break
end
j = j - 1
end
if not skip then
-- add <ref> tag with the reference's hash as its name (to deduplicate references)
outString = outString .. mw.getCurrentFrame():extensionTag("ref", valuesArray[i][1], {name = "wikidata-" .. valuesArray[i].refHash .. "-v" .. i18n['cite']['version']})
end
else
outString = outString .. valuesArray[i][1]
end
end
return outString
end
function Config:convertUnit(unit, raw, link, short, unitOnly)
local space = " "
local label = ""
if unit == "" or unit == "1" then
return nil
end
if unitOnly then
space = ""
end
itemID = parseWikidataURL(unit)
if itemID then
if itemID == aliasesQ.percentage then
return "%"
else
label = self:getLabel(itemID, raw, link, short)
if label ~= "" then
return space .. label
end
end
end
return ""
end
function Config:getValue(snak, raw, link, short, anyLang, unitOnly, noSpecial)
if snak.snaktype == 'value' then
local datatype = snak.datavalue.type
local subtype = snak.datatype
local datavalue = snak.datavalue.value
if datatype == 'string' then
if subtype == 'url' and link then
-- create link explicitly
if raw then
-- will render as a linked number like [1]
return "[" .. datavalue .. "]"
else
return "[" .. datavalue .. " " .. datavalue .. "]"
end
elseif subtype == 'commonsMedia' then
if link then
return buildWikilink("c:File:" .. datavalue, datavalue)
elseif not raw then
return "[[Berkas:" .. datavalue .. "]]"
else
return datavalue
end
elseif subtype == 'geo-shape' and link then
return buildWikilink("c:" .. datavalue, datavalue)
elseif subtype == 'math' and not raw then
return mw.getCurrentFrame():extensionTag("math", datavalue)
elseif subtype == 'external-id' and link then
local url = p._property({p.aliasesP.formatterURL, [p.args.eid] = snak.property}) -- get formatter URL
if url ~= "" then
url = mw.ustring.gsub(url, "$1", datavalue)
return "[" .. url .. " " .. datavalue .. "]"
else
return datavalue
end
else
return datavalue
end
elseif datatype == 'monolingualtext' then
if anyLang then
return datavalue['text'], datavalue['language']
elseif datavalue['language'] == self.langCode then
return datavalue['text']
else
return nil
end
elseif datatype == 'quantity' then
local value = ""
local unit
if not unitOnly then
-- get value and strip + signs from front
value = mw.ustring.gsub(datavalue['amount'], "^\+(.+)$", "%1")
if raw then
return value
end
-- replace decimal mark based on locale
value = replaceDecimalMark(value)
-- add delimiters for readability
value = i18n.addDelimiters(value)
end
unit = self:convertUnit(datavalue['unit'], raw, link, short, unitOnly)
if unit then
value = value .. unit
end
return value
elseif datatype == 'time' then
local y, m, d, p, yDiv, yRound, yFull, value, calendarID, dateStr
local yFactor = 1
local sign = 1
local prefix = ""
local suffix = ""
local mayAddCalendar = false
local calendar = ""
local precision = datavalue['precision']
if precision == 11 then
p = "d"
elseif precision == 10 then
p = "m"
else
p = "y"
yFactor = 10^(9-precision)
end
y, m, d = parseDate(datavalue['time'], p)
if y < 0 then
sign = -1
y = y * sign
end
-- if precision is tens/hundreds/thousands/millions/billions of years
if precision <= 8 then
yDiv = y / yFactor
-- if precision is tens/hundreds/thousands of years
if precision >= 6 then
mayAddCalendar = true
if precision <= 7 then
-- round centuries/millenniums up (e.g. 20th century or 3rd millennium)
yRound = math.ceil(yDiv)
if not raw then
if precision == 6 then
suffix = i18n['datetime']['suffixes']['millennium']
else
suffix = i18n['datetime']['suffixes']['century']
end
suffix = i18n.getOrdinalSuffix(yRound) .. suffix
else
-- if not verbose, take the first year of the century/millennium
-- (e.g. 1901 for 20th century or 2001 for 3rd millennium)
yRound = (yRound - 1) * yFactor + 1
end
else
-- precision == 8
-- round decades down (e.g. 2010s)
yRound = math.floor(yDiv) * yFactor
if not raw then
prefix = i18n['datetime']['prefixes']['decade-period']
suffix = i18n['datetime']['suffixes']['decade-period']
end
end
if raw and sign < 0 then
-- if BCE then compensate for "counting backwards"
-- (e.g. -2019 for 2010s BCE, -2000 for 20th century BCE or -3000 for 3rd millennium BCE)
yRound = yRound + yFactor - 1
end
else
local yReFactor, yReDiv, yReRound
-- round to nearest for tens of thousands of years or more
yRound = math.floor(yDiv + 0.5)
if yRound == 0 then
if precision <= 2 and y ~= 0 then
yReFactor = 1e6
yReDiv = y / yReFactor
yReRound = math.floor(yReDiv + 0.5)
if yReDiv == yReRound then
-- change precision to millions of years only if we have a whole number of them
precision = 3
yFactor = yReFactor
yRound = yReRound
end
end
if yRound == 0 then
-- otherwise, take the unrounded (original) number of years
precision = 5
yFactor = 1
yRound = y
mayAddCalendar = true
end
end
if precision >= 1 and y ~= 0 then
yFull = yRound * yFactor
yReFactor = 1e9
yReDiv = yFull / yReFactor
yReRound = math.floor(yReDiv + 0.5)
if yReDiv == yReRound then
-- change precision to billions of years if we're in that range
precision = 0
yFactor = yReFactor
yRound = yReRound
else
yReFactor = 1e6
yReDiv = yFull / yReFactor
yReRound = math.floor(yReDiv + 0.5)
if yReDiv == yReRound then
-- change precision to millions of years if we're in that range
precision = 3
yFactor = yReFactor
yRound = yReRound
end
end
end
if not raw then
if precision == 3 then
suffix = i18n['datetime']['suffixes']['million-years']
elseif precision == 0 then
suffix = i18n['datetime']['suffixes']['billion-years']
else
yRound = yRound * yFactor
if yRound == 1 then
suffix = i18n['datetime']['suffixes']['year']
else
suffix = i18n['datetime']['suffixes']['years']
end
end
else
yRound = yRound * yFactor
end
end
else
yRound = y
mayAddCalendar = true
end
if mayAddCalendar then
calendarID = parseWikidataURL(datavalue['calendarmodel'])
if calendarID and calendarID == aliasesQ.prolepticJulianCalendar then
if not raw then
if link then
calendar = " ("..buildWikilink(i18n['datetime']['julian-calendar'], i18n['datetime']['julian'])..")"
else
calendar = " ("..i18n['datetime']['julian']..")"
end
else
calendar = "/"..i18n['datetime']['julian']
end
end
end
if not raw then
local ce = nil
if sign < 0 then
ce = i18n['datetime']['BCE']
elseif precision <= 5 then
ce = i18n['datetime']['CE']
end
if ce then
if link then
ce = buildWikilink(i18n['datetime']['common-era'], ce)
end
suffix = suffix .. " " .. ce
end
value = tostring(yRound)
if m then
dateStr = self.langObj:formatDate("F", "1-"..m.."-1")
if d then
if self.mdyDate then
dateStr = dateStr .. " " .. d .. ","
else
dateStr = d .. " " .. dateStr
end
end
value = dateStr .. " " .. value
end
value = prefix .. value .. suffix .. calendar
else
value = padZeros(yRound * sign, 4)
if m then
value = value .. "-" .. padZeros(m, 2)
if d then
value = value .. "-" .. padZeros(d, 2)
end
end
value = value .. calendar
end
return value
elseif datatype == 'globecoordinate' then
-- logic from https://github.com/DataValues/Geo
local precision, numDigits, strFormat, value, globe
local latValue, latitude, latDegrees, latMinutes, latSeconds
local lonValue, longitude, lonDegrees, lonMinutes, lonSeconds
local latDirection, latDirectionN, latDirectionS, latDirectionEN
local lonDirection, lonDirectionE, lonDirectionW, lonDirectionEN
local latDirectionEN_N = "N"
local latDirectionEN_S = "S"
local lonDirectionEN_E = "E"
local lonDirectionEN_W = "W"
if not raw then
latDirectionN = i18n['coord']['latitude-north']
latDirectionS = i18n['coord']['latitude-south']
lonDirectionE = i18n['coord']['longitude-east']
lonDirectionW = i18n['coord']['longitude-west']
degSymbol = i18n['coord']['degrees']
minSymbol = i18n['coord']['minutes']
secSymbol = i18n['coord']['seconds']
separator = i18n['coord']['separator']
else
latDirectionN = latDirectionEN_N
latDirectionS = latDirectionEN_S
lonDirectionE = lonDirectionEN_E
lonDirectionW = lonDirectionEN_W
degSymbol = "/"
minSymbol = "/"
secSymbol = "/"
separator = "/"
end
latitude = datavalue['latitude']
longitude = datavalue['longitude']
if latitude < 0 then
latDirection = latDirectionS
latDirectionEN = latDirectionEN_S
latitude = math.abs(latitude)
else
latDirection = latDirectionN
latDirectionEN = latDirectionEN_N
end
if longitude < 0 then
lonDirection = lonDirectionW
lonDirectionEN = lonDirectionEN_W
longitude = math.abs(longitude)
else
lonDirection = lonDirectionE
lonDirectionEN = lonDirectionEN_E
end
precision = datavalue['precision']
if not precision or precision == 0 then
precision = 1 / 3600 -- precision unspecified, set to arcsecond
end
latitude = math.floor(latitude / precision + 0.5) * precision
longitude = math.floor(longitude / precision + 0.5) * precision
numDigits = math.ceil(-math.log10(3600 * precision))
if numDigits < 0 or numDigits == -0 then
numDigits = tonumber("0") -- for some reason, 'numDigits = 0' may actually store '-0', so parse from string instead
end
strFormat = "%." .. numDigits .. "f"
-- use string.format() to strip decimal point followed by a zero (.0) for whole numbers
latSeconds = tonumber(strFormat:format(math.floor(latitude * 3600 * 10^numDigits + 0.5) / 10^numDigits))
lonSeconds = tonumber(strFormat:format(math.floor(longitude * 3600 * 10^numDigits + 0.5) / 10^numDigits))
latMinutes = math.floor(latSeconds / 60)
lonMinutes = math.floor(lonSeconds / 60)
latSeconds = latSeconds - (latMinutes * 60)
lonSeconds = lonSeconds - (lonMinutes * 60)
latDegrees = math.floor(latMinutes / 60)
lonDegrees = math.floor(lonMinutes / 60)
latMinutes = latMinutes - (latDegrees * 60)
lonMinutes = lonMinutes - (lonDegrees * 60)
latValue = latDegrees .. degSymbol
lonValue = lonDegrees .. degSymbol
if precision < 1 then
latValue = latValue .. latMinutes .. minSymbol
lonValue = lonValue .. lonMinutes .. minSymbol
end
if precision < (1 / 60) then
latSeconds = strFormat:format(latSeconds)
lonSeconds = strFormat:format(lonSeconds)
if not raw then
-- replace decimal marks based on locale
latSeconds = replaceDecimalMark(latSeconds)
lonSeconds = replaceDecimalMark(lonSeconds)
end
latValue = latValue .. latSeconds .. secSymbol
lonValue = lonValue .. lonSeconds .. secSymbol
end
latValue = latValue .. latDirection
lonValue = lonValue .. lonDirection
value = latValue .. separator .. lonValue
if link then
globe = parseWikidataURL(datavalue['globe'])
if globe then
globe = mw.wikibase.getEntity(globe):getLabel("en"):lower()
else
globe = "earth"
end
value = "[https://geohack.toolforge.org/geohack.php?language="..self.langCode.."¶ms="..latitude.."_"..latDirectionEN.."_"..longitude.."_"..lonDirectionEN.."_globe:"..globe.." "..value.."]"
end
return value
elseif datatype == 'wikibase-entityid' then
local label
local itemID = datavalue['numeric-id']
if subtype == 'wikibase-item' then
itemID = "Q" .. itemID
elseif subtype == 'wikibase-property' then
itemID = "P" .. itemID
else
return '<strong class="error">' .. errorText('unknown-data-type', subtype) .. '</strong>'
end
label = self:getLabel(itemID, raw, link, short)
if label == "" then
label = nil
end
return label
else
return '<strong class="error">' .. errorText('unknown-data-type', datatype) .. '</strong>'
end
elseif snak.snaktype == 'somevalue' and not noSpecial then
if raw then
return " " -- single space represents 'somevalue'
else
return i18n['values']['unknown']
end
elseif snak.snaktype == 'novalue' and not noSpecial then
if raw then
return "" -- empty string represents 'novalue'
else
return i18n['values']['none']
end
else
return nil
end
end
function Config:getSingleRawQualifier(claim, qualifierID)
local qualifiers
if claim.qualifiers then qualifiers = claim.qualifiers[qualifierID] end
if qualifiers and qualifiers[1] then
return self:getValue(qualifiers[1], true) -- raw = true
else
return nil
end
end
function Config:snakEqualsValue(snak, value)
local snakValue = self:getValue(snak, true) -- raw = true
if snakValue and snak.snaktype == 'value' and snak.datavalue.type == 'wikibase-entityid' then value = value:upper() end
return snakValue == value
end
function Config:setRank(rank)
local rankPos
if rank == p.flags.best then
self.bestRank = true
self.flagBest = true -- mark that 'best' flag was given
return
end
if rank:sub(1,9) == p.flags.preferred then
rankPos = 1
elseif rank:sub(1,6) == p.flags.normal then
rankPos = 2
elseif rank:sub(1,10) == p.flags.deprecated then
rankPos = 3
else
return
end
-- one of the rank flags was given, check if another one was given before
if not self.flagRank then
self.ranks = {false, false, false} -- no other rank flag given before, so unset ranks
self.bestRank = self.flagBest -- unsets bestRank only if 'best' flag was not given before
self.flagRank = true -- mark that a rank flag was given
end
if rank:sub(-1) == "+" then
for i = rankPos, 1, -1 do
self.ranks[i] = true
end
elseif rank:sub(-1) == "-" then
for i = rankPos, #self.ranks do
self.ranks[i] = true
end
else
self.ranks[rankPos] = true
end
end
function Config:setPeriod(period)
local periodPos
if period == p.flags.future then
periodPos = 1
elseif period == p.flags.current then
periodPos = 2
elseif period == p.flags.former then
periodPos = 3
else
return
end
-- one of the period flags was given, check if another one was given before
if not self.flagPeriod then
self.periods = {false, false, false} -- no other period flag given before, so unset periods
self.flagPeriod = true -- mark that a period flag was given
end
self.periods[periodPos] = true
end
function Config:qualifierMatches(claim, id, value)
local qualifiers
if claim.qualifiers then qualifiers = claim.qualifiers[id] end
if qualifiers then
for i, v in pairs(qualifiers) do
if self:snakEqualsValue(v, value) then
return true
end
end
elseif value == "" then
-- if the qualifier is not present then treat it the same as the special value 'novalue'
return true
end
return false
end
function Config:rankMatches(rankPos)
if self.bestRank then
return (self.ranks[rankPos] and self.foundRank >= rankPos)
else
return self.ranks[rankPos]
end
end
function Config:timeMatches(claim)
local startTime = nil
local startTimeY = nil
local startTimeM = nil
local startTimeD = nil
local endTime = nil
local endTimeY = nil
local endTimeM = nil
local endTimeD = nil
if self.periods[1] and self.periods[2] and self.periods[3] then
-- any time
return true
end
local now = os.date('!*t')
startTime = self:getSingleRawQualifier(claim, p.aliasesP.startTime)
if startTime and startTime ~= "" and startTime ~= " " then
startTimeY, startTimeM, startTimeD = parseDate(startTime)
end
endTime = self:getSingleRawQualifier(claim, p.aliasesP.endTime)
if endTime and endTime ~= "" and endTime ~= " " then
endTimeY, endTimeM, endTimeD = parseDate(endTime)
elseif endTime == " " then
-- end time is 'unknown', assume it is somewhere in the past;
-- we can do this by taking the current date as a placeholder for the end time
endTimeY = now['year']
endTimeM = now['month']
endTimeD = now['day']
end
if startTimeY ~= nil and endTimeY ~= nil and datePrecedesDate(endTimeY, endTimeM, endTimeD, startTimeY, startTimeM, startTimeD) then
-- invalidate end time if it precedes start time
endTimeY = nil
endTimeM = nil
endTimeD = nil
end
if self.periods[1] then
-- future
if startTimeY and datePrecedesDate(now['year'], now['month'], now['day'], startTimeY, startTimeM, startTimeD) then
return true
end
end
if self.periods[2] then
-- current
if (startTimeY == nil or not datePrecedesDate(now['year'], now['month'], now['day'], startTimeY, startTimeM, startTimeD)) and
(endTimeY == nil or datePrecedesDate(now['year'], now['month'], now['day'], endTimeY, endTimeM, endTimeD)) then
return true
end
end
if self.periods[3] then
-- former
if endTimeY and not datePrecedesDate(now['year'], now['month'], now['day'], endTimeY, endTimeM, endTimeD) then
return true
end
end
return false
end
function Config:processFlag(flag)
if not flag then
return false
else
flag = mw.text.trim(flag)
end
if flag == p.flags.linked then
self.curState.linked = true
return true
elseif flag == p.flags.raw then
self.curState.rawValue = true
if self.curState == self.states[parameters.reference] then
-- raw reference values end with periods and require a separator (other than none)
self.separators["sep%r"][1] = {" "}
end
return true
elseif flag == p.flags.short then
self.curState.shortName = true
return true
elseif flag == p.flags.multilanguage then
self.curState.anyLanguage = true
return true
elseif flag == p.flags.unit then
self.curState.unitOnly = true
return true
elseif flag == p.flags.mdy then
self.mdyDate = true
return true
elseif flag == p.flags.single then
self.singleClaim = true
return true
elseif flag == p.flags.sourced then
self.sourcedOnly = true
return true
elseif flag == p.flags.edit then
self.editable = true
return true
elseif flag == p.flags.editAtEnd then
self.editable = true
self.editAtEnd = true
return true
elseif flag == p.flags.best or flag:match('^'..p.flags.preferred..'[+-]?$') or flag:match('^'..p.flags.normal..'[+-]?$') or flag:match('^'..p.flags.deprecated..'[+-]?$') then
self:setRank(flag)
return true
elseif flag == p.flags.future or flag == p.flags.current or flag == p.flags.former then
self:setPeriod(flag)
return true
elseif flag == "" then
-- ignore empty flags and carry on
return true
else
return false
end
end
function Config:processFlagOrCommand(flag)
local param = ""
if not flag then
return false
else
flag = mw.text.trim(flag)
end
if flag == p.claimCommands.property or flag == p.claimCommands.properties then
param = parameters.property
elseif flag == p.claimCommands.qualifier or flag == p.claimCommands.qualifiers then
self.states.qualifiersCount = self.states.qualifiersCount + 1
param = parameters.qualifier .. self.states.qualifiersCount
self.separators["sep"..param] = {copyTable(defaultSeparators["sep%q\\d"])}
elseif flag == p.claimCommands.reference or flag == p.claimCommands.references then
param = parameters.reference
else
return self:processFlag(flag)
end
if self.states[param] then
return false
end
-- create a new state for each command
self.states[param] = State.new(self)
-- use "%x" as the general parameter name
self.states[param].parsedFormat = parseFormat(parameters.general) -- will be overwritten for param=="%p"
-- set the separator
self.states[param].separator = self.separators["sep"..param] -- will be nil for param=="%p", which will be set separately
if flag:sub(-1) ~= 's' then
self.states[param].singleValue = true
end
self.curState = self.states[param]
return true
end
function Config:processSeparators(args)
local sep
for i, v in pairs(self.separators) do
if args[i] then
sep = replaceSpecialChars(args[i])
if sep ~= "" then
self.separators[i][1] = {sep}
else
self.separators[i][1] = nil
end
end
end
end
function Config:setFormatAndSeparators(state, parsedFormat)
state.parsedFormat = parsedFormat
state.separator = self.separators["sep"]
state.movSeparator = self.separators["sep"..parameters.separator]
state.puncMark = self.separators["punc"]
end
-- determines if a claim has references by prefetching them from the claim using getReferences,
-- which applies some filtering that determines if a reference is actually returned,
-- and caches the references for later use
function State:isSourced(claim)
self.conf.prefetchedRefs = self:getReferences(claim)
return (#self.conf.prefetchedRefs > 0)
end
function State:resetCaches()
-- any prefetched references of the previous claim must not be used
self.conf.prefetchedRefs = nil
end
function State:claimMatches(claim)
local matches, rankPos
-- first of all, reset any cached values used for the previous claim
self:resetCaches()
-- if a property value was given, check if it matches the claim's property value
if self.conf.propertyValue then
matches = self.conf:snakEqualsValue(claim.mainsnak, self.conf.propertyValue)
else
matches = true
end
-- if any qualifier values were given, check if each matches one of the claim's qualifier values
for i, v in pairs(self.conf.qualifierIDsAndValues) do
matches = (matches and self.conf:qualifierMatches(claim, i, v))
end
-- check if the claim's rank and time period match
rankPos = rankTable[claim.rank] or 4
matches = (matches and self.conf:rankMatches(rankPos) and self.conf:timeMatches(claim))
-- if only claims with references must be returned, check if this one has any
if self.conf.sourcedOnly then
matches = (matches and self:isSourced(claim)) -- prefetches and caches references
end
return matches, rankPos
end
function State:out()
local result -- collection of arrays with value objects
local valuesArray -- array with value objects
local sep = nil -- value object
local out = {} -- array with value objects
local function walk(formatTable, result)
local valuesArray = {} -- array with value objects
for i, v in pairs(formatTable.req) do
if not result[i] or not result[i][1] then
-- we've got no result for a parameter that is required on this level,
-- so skip this level (and its children) by returning an empty result
return {}
end
end
for i, v in ipairs(formatTable) do
if v.param then
valuesArray = mergeArrays(valuesArray, result[v.str])
elseif v.str ~= "" then
valuesArray[#valuesArray + 1] = {v.str}
end
if v.child then
valuesArray = mergeArrays(valuesArray, walk(v.child, result))
end
end
return valuesArray
end
-- iterate through the results from back to front, so that we know when to add separators
for i = #self.results, 1, -1 do
result = self.results[i]
-- if there is already some output, then add the separators
if #out > 0 then
sep = self.separator[1] -- fixed separator
result[parameters.separator] = {self.movSeparator[1]} -- movable separator
else
sep = nil
result[parameters.separator] = {self.puncMark[1]} -- optional punctuation mark
end
valuesArray = walk(self.parsedFormat, result)
if #valuesArray > 0 then
if sep then
valuesArray[#valuesArray + 1] = sep
end
out = mergeArrays(valuesArray, out)
end
end
-- reset state before next iteration
self.results = {}
return out
end
-- level 1 hook
function State:getProperty(claim)
local value = {self.conf:getValue(claim.mainsnak, self.rawValue, self.linked, self.shortName, self.anyLanguage, self.unitOnly)} -- create one value object
if #value > 0 then
return {value} -- wrap the value object in an array and return it
else
return {} -- return empty array if there was no value
end
end
-- level 1 hook
function State:getQualifiers(claim, param)
local qualifiers
if claim.qualifiers then qualifiers = claim.qualifiers[self.conf.qualifierIDs[param]] end
if qualifiers then
-- iterate through claim's qualifier statements to collect their values;
-- return array with multiple value objects
return self.conf.states[param]:iterate(qualifiers, {[parameters.general] = hookNames[parameters.qualifier.."\\d"][2], count = 1}) -- pass qualifier state with level 2 hook
else
return {} -- return empty array
end
end
-- level 2 hook
function State:getQualifier(snak)
local value = {self.conf:getValue(snak, self.rawValue, self.linked, self.shortName, self.anyLanguage, self.unitOnly)} -- create one value object
if #value > 0 then
return {value} -- wrap the value object in an array and return it
else
return {} -- return empty array if there was no value
end
end
-- level 1 hook
function State:getAllQualifiers(claim, param, result, hooks)
local out = {} -- array with value objects
local sep = self.conf.separators["sep"..parameters.qualifier][1] -- value object
-- iterate through the output of the separate "qualifier(s)" commands
for i = 1, self.conf.states.qualifiersCount do
-- if a hook has not been called yet, call it now
if not result[parameters.qualifier..i] then
self:callHook(parameters.qualifier..i, hooks, claim, result)
end
-- if there is output for this particular "qualifier(s)" command, then add it
if result[parameters.qualifier..i] and result[parameters.qualifier..i][1] then
-- if there is already some output, then add the separator
if #out > 0 and sep then
out[#out + 1] = sep
end
out = mergeArrays(out, result[parameters.qualifier..i])
end
end
return out
end
-- level 1 hook
function State:getReferences(claim)
if self.conf.prefetchedRefs then
-- return references that have been prefetched by isSourced
return self.conf.prefetchedRefs
end
if claim.references then
-- iterate through claim's reference statements to collect their values;
-- return array with multiple value objects
return self.conf.states[parameters.reference]:iterate(claim.references, {[parameters.general] = hookNames[parameters.reference][2], count = 1}) -- pass reference state with level 2 hook
else
return {} -- return empty array
end
end
-- level 2 hook
function State:getReference(statement)
local key, citeWeb, citeQ, label
local params = {}
local citeParams = {['web'] = {}, ['q'] = {}}
local citeMismatch = {}
local useCite = nil
local useParams = nil
local value = ""
local ref = {}
if statement.snaks then
-- don't include "imported from", which is added by a bot
if statement.snaks[p.aliasesP.importedFrom] then
statement.snaks[p.aliasesP.importedFrom] = nil
end
-- don't include "language" if it is equal to the local one
if self:getReferenceDetail(statement.snaks, p.aliasesP.language) == self.conf.langName then
statement.snaks[p.aliasesP.language] = nil
end
-- retrieve all the parameters
for i in pairs(statement.snaks) do
label = ""
-- multiple authors may be given
if i == p.aliasesP.author then
params[i] = self:getReferenceDetails(statement.snaks, i, false, self.linked, true) -- link = true/false, anyLang = true
else
params[i] = {self:getReferenceDetail(statement.snaks, i, false, (self.linked or (i == p.aliasesP.statedIn)) and (statement.snaks[i][1].datatype ~= 'url'), true)} -- link = true/false, anyLang = true
end
if #params[i] == 0 then
params[i] = nil
else
if statement.snaks[i][1].datatype == 'external-id' then
key = "external-id"
label = self.conf:getLabel(i)
if label ~= "" then
label = label .. " "
end
else
key = i
end
-- add the parameter to each matching type of citation
for j in pairs(citeParams) do
-- do so if there was no mismatch with a previous parameter
if not citeMismatch[j] then
-- check if this parameter is not mismatching itself
if i18n['cite'][j][key] then
-- continue if an option is available in the corresponding cite template
if i18n['cite'][j][key] ~= "" then
citeParams[j][i18n['cite'][j][key]] = label .. params[i][1]
-- if there are multiple parameter values (authors), add those too
for k=2, #params[i] do
citeParams[j][i18n['cite'][j][key]..k] = label .. params[i][k]
end
end
else
citeMismatch[j] = true
end
end
end
end
end
-- get title of general template for citing web references
citeWeb = split(mw.wikibase.sitelink(aliasesQ.citeWeb) or "", ":")[2] -- split off namespace from front
-- get title of template that expands stated-in references into citations
citeQ = split(mw.wikibase.sitelink(aliasesQ.citeQ) or "", ":")[2] -- split off namespace from front
-- (1) use the general template for citing web references if there is a match and if at least both "reference URL" and "title" are present
if citeWeb and not citeMismatch['web'] and citeParams['web'][i18n['cite']['web'][p.aliasesP.referenceURL]] and citeParams['web'][i18n['cite']['web'][p.aliasesP.title]] then
useCite = citeWeb
useParams = citeParams['web']
-- (2) use the template that expands stated-in references into citations if there is a match and if at least "stated in" is present
elseif citeQ and not citeMismatch['q'] and citeParams['q'][i18n['cite']['q'][p.aliasesP.statedIn]] then
-- we need the raw "stated in" Q-identifier for the this template
citeParams['q'][i18n['cite']['q'][p.aliasesP.statedIn]] = self:getReferenceDetail(statement.snaks, p.aliasesP.statedIn, true) -- raw = true
useCite = citeQ
useParams = citeParams['q']
end
if useCite and useParams then
-- if this module is being substituted then build a regular template call, otherwise expand the template
if mw.isSubsting() then
for i, v in pairs(useParams) do
value = value .. "|" .. i .. "=" .. v
end
value = "{{" .. useCite .. value .. "}}"
else
value = mw.getCurrentFrame():expandTemplate{title=useCite, args=useParams}
end
-- (3) else, do some default rendering of name-value pairs, but only if at least "stated in", "reference URL" or "title" is present
elseif params[p.aliasesP.statedIn] or params[p.aliasesP.referenceURL] or params[p.aliasesP.title] then
citeParams['default'] = {}
-- start by adding authors up front
if params[p.aliasesP.author] and #params[p.aliasesP.author] > 0 then
citeParams['default'][#citeParams['default'] + 1] = table.concat(params[p.aliasesP.author], " & ")
end
-- combine "reference URL" and "title" into one link if both are present
if params[p.aliasesP.referenceURL] and params[p.aliasesP.title] then
citeParams['default'][#citeParams['default'] + 1] = '[' .. params[p.aliasesP.referenceURL][1] .. ' "' .. params[p.aliasesP.title][1] .. '"]'
elseif params[p.aliasesP.referenceURL] then
citeParams['default'][#citeParams['default'] + 1] = params[p.aliasesP.referenceURL][1]
elseif params[p.aliasesP.title] then
citeParams['default'][#citeParams['default'] + 1] = '"' .. params[p.aliasesP.title][1] .. '"'
end
-- then add "stated in"
if params[p.aliasesP.statedIn] then
citeParams['default'][#citeParams['default'] + 1] = "''" .. params[p.aliasesP.statedIn][1] .. "''"
end
-- remove previously added parameters so that they won't be added a second time
params[p.aliasesP.author] = nil
params[p.aliasesP.referenceURL] = nil
params[p.aliasesP.title] = nil
params[p.aliasesP.statedIn] = nil
-- add the rest of the parameters
for i, v in pairs(params) do
i = self.conf:getLabel(i)
if i ~= "" then
citeParams['default'][#citeParams['default'] + 1] = i .. ": " .. v[1]
end
end
value = table.concat(citeParams['default'], "; ")
if value ~= "" then
value = value .. "."
end
end
if value ~= "" then
value = {value} -- create one value object
if not self.rawValue then
-- this should become a <ref> tag, so safe the reference's hash for later
value.refHash = statement.hash
end
ref = {value} -- wrap the value object in an array
end
end
return ref
end
-- gets a detail of one particular type for a reference
function State:getReferenceDetail(snaks, dType, raw, link, anyLang)
local switchLang = anyLang
local value = nil
if not snaks[dType] then
return nil
end
-- if anyLang, first try the local language and otherwise any language
repeat
for i, v in ipairs(snaks[dType]) do
value = self.conf:getValue(v, raw, link, false, anyLang and not switchLang, false, true) -- noSpecial = true
if value then
break
end
end
if value or not anyLang then
break
end
switchLang = not switchLang
until anyLang and switchLang
return value
end
-- gets the details of one particular type for a reference
function State:getReferenceDetails(snaks, dType, raw, link, anyLang)
local values = {}
if not snaks[dType] then
return {}
end
for i, v in ipairs(snaks[dType]) do
-- if nil is returned then it will not be added to the table
values[#values + 1] = self.conf:getValue(v, raw, link, false, anyLang, false, true) -- noSpecial = true
end
return values
end
-- level 1 hook
function State:getAlias(object)
local value = object.value
local title = nil
if value and self.linked then
if self.conf.entityID:sub(1,1) == "Q" then
title = mw.wikibase.sitelink(self.conf.entityID)
elseif self.conf.entityID:sub(1,1) == "P" then
title = "d:Property:" .. self.conf.entityID
end
if title then
value = buildWikilink(title, value)
end
end
value = {value} -- create one value object
if #value > 0 then
return {value} -- wrap the value object in an array and return it
else
return {} -- return empty array if there was no value
end
end
-- level 1 hook
function State:getBadge(value)
value = self.conf:getLabel(value, self.rawValue, self.linked, self.shortName)
if value == "" then
value = nil
end
value = {value} -- create one value object
if #value > 0 then
return {value} -- wrap the value object in an array and return it
else
return {} -- return empty array if there was no value
end
end
function State:callHook(param, hooks, statement, result)
local valuesArray, refHash
-- call a parameter's hook if it has been defined and if it has not been called before
if not result[param] and hooks[param] then
valuesArray = self[hooks[param]](self, statement, param, result, hooks) -- array with value objects
-- add to the result
if #valuesArray > 0 then
result[param] = valuesArray
result.count = result.count + 1
else
result[param] = {} -- an empty array to indicate that we've tried this hook already
return true -- miss == true
end
end
return false
end
-- iterate through claims, claim's qualifiers or claim's references to collect values
function State:iterate(statements, hooks, matchHook)
matchHook = matchHook or alwaysTrue
local matches = false
local rankPos = nil
local result, gotRequired
for i, v in ipairs(statements) do
-- rankPos will be nil for non-claim statements (e.g. qualifiers, references, etc.)
matches, rankPos = matchHook(self, v)
if matches then
result = {count = 0} -- collection of arrays with value objects
local function walk(formatTable)
local miss
for i2, v2 in pairs(formatTable.req) do
-- call a hook, adding its return value to the result
miss = self:callHook(i2, hooks, v, result)
if miss then
-- we miss a required value for this level, so return false
return false
end
if result.count == hooks.count then
-- we're done if all hooks have been called;
-- returning at this point breaks the loop
return true
end
end
for i2, v2 in ipairs(formatTable) do
if result.count == hooks.count then
-- we're done if all hooks have been called;
-- returning at this point prevents further childs from being processed
return true
end
if v2.child then
walk(v2.child)
end
end
return true
end
gotRequired = walk(self.parsedFormat)
-- only append the result if we got values for all required parameters on the root level
if gotRequired then
-- if we have a rankPos (only with matchHook() for complete claims), then update the foundRank
if rankPos and self.conf.foundRank > rankPos then
self.conf.foundRank = rankPos
end
-- append the result
self.results[#self.results + 1] = result
-- break if we only need a single value
if self.singleValue then
break
end
end
end
end
return self:out()
end
function extractEntityFromInput(id, allowOmitPropPrefix)
if id:sub(1,1):upper() == "Q" then
return id:upper() -- entity ID of an item was given
elseif id:sub(1,9):lower() == "property:" then
return replaceAlias(mw.text.trim(id:sub(10))):upper() -- entity ID of a property was given
elseif allowOmitPropPrefix and id ~= "" then
return replaceAlias(id):upper() -- could be an entity ID of a property without "Property:" prefix
else
return nil
end
end
function extractEntityFromArgs(args, nextIndex, allowOmitPropPrefix)
local id, eidArg
if args[nextIndex] then
args[nextIndex] = mw.text.trim(args[nextIndex])
else
args[nextIndex] = ""
end
id = extractEntityFromInput(args[nextIndex], allowOmitPropPrefix)
eidArg = args[p.args.eid]
if id then
return id, nextIndex + 1
elseif eidArg then
return extractEntityFromInput(eidArg, true), nextIndex -- if no positional id was found but eid was given, use eid without a default
else
return mw.wikibase.getEntityIdForCurrentPage(), nextIndex -- by default, use item-entity connected to current page
end
end
function claimCommand(args, funcName)
local _ = Config.new()
_:processFlagOrCommand(funcName) -- process first command (== function name)
local parsedFormat, formatParams, claims, value
local hooks = {count = 0}
local nextIndex = 1
-- process flags and commands
while _:processFlagOrCommand(args[nextIndex]) do
nextIndex = nextIndex + 1
end
_.entityID, nextIndex = extractEntityFromArgs(args, nextIndex, false)
-- if eid was explicitly set to empty, then this returns an empty string
if _.entityID == nil then
return ""
end
_.entity = mw.wikibase.getEntity(_.entityID)
_.propertyID = replaceAlias(args[nextIndex]):upper()
nextIndex = nextIndex + 1
if _.states.qualifiersCount > 0 then
-- do further processing if "qualifier(s)" command was given
if #args - nextIndex + 1 > _.states.qualifiersCount then
-- claim ID or literal value has been given
_.propertyValue = mw.text.trim(args[nextIndex])
nextIndex = nextIndex + 1
end
for i = 1, _.states.qualifiersCount do
-- check if given qualifier ID is an alias and add it
_.qualifierIDs[parameters.qualifier..i] = replaceAlias(mw.text.trim(args[nextIndex] or "")):upper()
nextIndex = nextIndex + 1
end
elseif _.states[parameters.reference] then
-- do further processing if "reference(s)" command was given
if args[nextIndex] then
_.propertyValue = mw.text.trim(args[nextIndex])
end
-- not incrementing nextIndex because it is never used after this
end
-- check for special property value 'somevalue' or 'novalue'
if _.propertyValue then
_.propertyValue = replaceSpecialChars(_.propertyValue)
if _.propertyValue ~= "" and mw.text.trim(_.propertyValue) == "" then
_.propertyValue = " " -- single space represents 'somevalue', whereas empty string represents 'novalue'
else
_.propertyValue = mw.text.trim(_.propertyValue)
end
end
-- parse the desired format, or choose an appropriate format
if args["format"] then
parsedFormat, formatParams = parseFormat(args["format"])
elseif _.states.qualifiersCount > 0 then -- "qualifier(s)" command given
if _.states[parameters.property] then -- "propert(y|ies)" command given
parsedFormat, formatParams = parseFormat(formats.propertyWithQualifier)
else
parsedFormat, formatParams = parseFormat(formats.qualifier)
end
elseif _.states[parameters.property] then -- "propert(y|ies)" command given
parsedFormat, formatParams = parseFormat(formats.property)
else -- "reference(s)" command given
parsedFormat, formatParams = parseFormat(formats.reference)
end
-- if a "qualifier(s)" command and no "propert(y|ies)" command has been given, make the movable separator a semicolon
if _.states.qualifiersCount > 0 and not _.states[parameters.property] then
_.separators["sep"..parameters.separator][1] = {";"}
end
-- if only "reference(s)" has been given, set the default separator to none (except when raw)
if _.states[parameters.reference] and not _.states[parameters.property] and _.states.qualifiersCount == 0
and not _.states[parameters.reference].rawValue then
_.separators["sep"][1] = nil
end
-- if exactly one "qualifier(s)" command has been given, make "sep%q" point to "sep%q1" to make them equivalent
if _.states.qualifiersCount == 1 then
_.separators["sep"..parameters.qualifier] = _.separators["sep"..parameters.qualifier.."1"]
end
-- process overridden separator values;
-- must come AFTER tweaking the default separators
_:processSeparators(args)
-- define the hooks that should be called (getProperty, getQualifiers, getReferences);
-- only define a hook if both its command ("propert(y|ies)", "reference(s)", "qualifier(s)") and its parameter ("%p", "%r", "%q1", "%q2", "%q3") have been given
for i, v in pairs(_.states) do
-- e.g. 'formatParams["%q1"] or formatParams["%q"]' to define hook even if "%q1" was not defined to be able to build a complete value for "%q"
if formatParams[i] or formatParams[i:sub(1, 2)] then
hooks[i] = getHookName(i, 1)
hooks.count = hooks.count + 1
end
end
-- the "%q" parameter is not attached to a state, but is a collection of the results of multiple states (attached to "%q1", "%q2", "%q3", ...);
-- so if this parameter is given then this hook must be defined separately, but only if at least one "qualifier(s)" command has been given
if formatParams[parameters.qualifier] and _.states.qualifiersCount > 0 then
hooks[parameters.qualifier] = getHookName(parameters.qualifier, 1)
hooks.count = hooks.count + 1
end
-- create a state for "properties" if it doesn't exist yet, which will be used as a base configuration for each claim iteration;
-- must come AFTER defining the hooks
if not _.states[parameters.property] then
_.states[parameters.property] = State.new(_)
-- if the "single" flag has been given then this state should be equivalent to "property" (singular)
if _.singleClaim then
_.states[parameters.property].singleValue = true
end
end
-- if the "sourced" flag has been given then create a state for "reference" if it doesn't exist yet, using default values,
-- which must exist in order to be able to determine if a claim has any references;
-- must come AFTER defining the hooks
if _.sourcedOnly and not _.states[parameters.reference] then
_:processFlagOrCommand(p.claimCommands.reference) -- use singular "reference" to minimize overhead
end
-- set the parsed format and the separators (and optional punctuation mark);
-- must come AFTER creating the additonal states
_:setFormatAndSeparators(_.states[parameters.property], parsedFormat)
-- process qualifier matching values, analogous to _.propertyValue
for i, v in pairs(args) do
i = tostring(i)
if i:match('^[Pp]%d+$') or p.aliasesP[i] then
v = replaceSpecialChars(v)
-- check for special qualifier value 'somevalue'
if v ~= "" and mw.text.trim(v) == "" then
v = " " -- single space represents 'somevalue'
end
_.qualifierIDsAndValues[replaceAlias(i):upper()] = v
end
end
if _.entity and _.entity.claims then claims = _.entity.claims[_.propertyID] end
if claims then
-- first sort the claims on rank to pre-define the order of output (preferred first, then normal, then deprecated)
claims = sortOnRank(claims)
-- then iterate through the claims to collect values
value = _:concatValues(_.states[parameters.property]:iterate(claims, hooks, State.claimMatches)) -- pass property state with level 1 hooks and matchHook
-- if desired, add a clickable icon that may be used to edit the returned values on Wikidata
if _.editable and value ~= "" then
value = value .. _:getEditIcon()
end
return value
else
return ""
end
end
function generalCommand(args, funcName)
local _ = Config.new()
_.curState = State.new(_)
local value = nil
local nextIndex = 1
while _:processFlag(args[nextIndex]) do
nextIndex = nextIndex + 1
end
_.entityID, nextIndex = extractEntityFromArgs(args, nextIndex, true)
-- if eid was explicitly set to empty, then this returns an empty string
if _.entityID == nil then
return ""
end
-- serve according to the given command
if funcName == p.generalCommands.label then
value = _:getLabel(_.entityID, _.curState.rawValue, _.curState.linked, _.curState.shortName)
elseif funcName == p.generalCommands.title then
_.inSitelinks = true
if _.entityID:sub(1,1) == "Q" then
value = mw.wikibase.sitelink(_.entityID)
end
if _.curState.linked and value then
value = buildWikilink(value)
end
else
local parsedFormat, formatParams
local hooks = {count = 0}
if funcName == p.generalCommands.alias or funcName == p.generalCommands.badge then
_.curState.singleValue = true
end
_.entity = mw.wikibase.getEntity(_.entityID)
if funcName == p.generalCommands.alias or funcName == p.generalCommands.aliases then
local aliases
-- parse the desired format, or parse the default aliases format
if args["format"] then
parsedFormat, formatParams = parseFormat(args["format"])
else
parsedFormat, formatParams = parseFormat(formats.alias)
end
-- process overridden separator values;
-- must come AFTER tweaking the default separators
_:processSeparators(args)
-- define the hook that should be called (getAlias);
-- only define the hook if the parameter ("%a") has been given
if formatParams[parameters.alias] then
hooks[parameters.alias] = getHookName(parameters.alias, 1)
hooks.count = hooks.count + 1
end
-- set the parsed format and the separators (and optional punctuation mark)
_:setFormatAndSeparators(_.curState, parsedFormat)
if _.entity and _.entity.aliases then aliases = _.entity.aliases[_.langCode] end
if aliases then
value = _:concatValues(_.curState:iterate(aliases, hooks))
end
elseif funcName == p.generalCommands.badge or funcName == p.generalCommands.badges then
_.inSitelinks = true
local badges
-- parse the desired format, or parse the default aliases format
if args["format"] then
parsedFormat, formatParams = parseFormat(args["format"])
else
parsedFormat, formatParams = parseFormat(formats.badge)
end
-- process overridden separator values;
-- must come AFTER tweaking the default separators
_:processSeparators(args)
-- define the hook that should be called (getBadge);
-- only define the hook if the parameter ("%b") has been given
if formatParams[parameters.badge] then
hooks[parameters.badge] = getHookName(parameters.badge, 1)
hooks.count = hooks.count + 1
end
-- set the parsed format and the separators (and optional punctuation mark)
_:setFormatAndSeparators(_.curState, parsedFormat)
if _.entity and _.entity.sitelinks and _.entity.sitelinks[_.siteID] then badges = _.entity.sitelinks[_.siteID].badges end
if badges then
value = _:concatValues(_.curState:iterate(badges, hooks))
end
end
end
value = value or ""
if _.editable and value ~= "" then
-- if desired, add a clickable icon that may be used to edit the returned value on Wikidata
value = value .. _:getEditIcon()
end
return value
end
-- modules that include this module should call the functions with an underscore prepended, e.g.: p._property(args)
function establishCommands(commandList, commandFunc)
for commandIndex, commandName in pairs(commandList) do
local function wikitextWrapper(frame)
loadSubmodules(frame)
return commandFunc(copyTable(frame.args), commandName)
end
p[commandName] = wikitextWrapper
local function luaWrapper(args)
loadSubmodules()
return commandFunc(args, commandName)
end
p["_" .. commandName] = luaWrapper
end
end
establishCommands(p.claimCommands, claimCommand)
establishCommands(p.generalCommands, generalCommand)
-- main function that is supposed to be used by wrapper templates
function p.main(frame)
local f, args, i, v
loadSubmodules(frame)
-- get the parent frame to take the arguments that were passed to the wrapper template
frame = frame:getParent() or frame
if not frame.args[1] then
throwError("no-function-specified")
end
f = mw.text.trim(frame.args[1])
if f == "main" then
throwError("main-called-twice")
end
assert(p["_"..f], errorText('no-such-function', f))
-- copy arguments from immutable to mutable table
args = copyTable(frame.args)
-- remove the function name from the list
table.remove(args, 1)
return p["_"..f](args)
end
return p
0592ufi9sfoiv14wfzxdv2rurt1mdhs
Modul:Wikibase
828
645
2839
2838
2024-12-03T14:16:38Z
Jon Harald Søby
20
2 revisi diimpor
2837
Scribunto
text/plain
---------- Module:Wikibase ----------------
local p = {}
-- Return the item ID of the item linked to the current page.
function p.id(frame)
if not mw.wikibase then
return "no mw.wikibase"
end
entity = mw.wikibase.getEntityObject()
if entity == nil then
return "no entity"
end
return entity.id
end
-- Return the WD entity URL of a given data item, or of connected page
-- if no argument is provided to this method.
function p.wdurl(frame)
if frame.args[1] == nil then
entity = mw.wikibase.getEntityObject()
if not entity then return nil end
id = entity.id
else
id = mw.text.trim(frame.args[1])
end
return mw.wikibase.getEntityUrl( id )
end
-- Return the label of a given data item, or of connected page
-- if no argument is provided to this method.
function p.label(frame)
if frame.args[1] == nil then
entity = mw.wikibase.getEntityObject()
if not entity then return nil end
id = entity.id
else
id = mw.text.trim(frame.args[1])
end
return mw.wikibase.label( id )
end
-- Return the description of a given data item, or of connected page
-- if no argument is provided to this method.
function p.description(frame)
if frame.args[1] == nil then
entity = mw.wikibase.getEntityObject()
if not entity then return nil end
id = entity.id
else
id = mw.text.trim(frame.args[1])
end
return mw.wikibase.description( id )
end
-- Return the local page about a given data item, or of connected page
-- if id is not specified.
function p.page(frame)
if frame.args[1] == nil then
entity = mw.wikibase.getEntityObject()
if not entity then return nil end
id = entity.id
else
id = mw.text.trim(frame.args[1])
end
return mw.wikibase.sitelink( id )
end
-- Return the data type of a property
function p.datatype(frame)
if frame.args[1] and string.find(frame.args[1], "Property:P") then
if mw.wikibase.getEntityObject(string.gsub(frame.args[1], "Property:P", "P")) then
return mw.wikibase.getEntityObject(string.gsub(frame.args[1], "Property:P", "P") ).datatype
end
elseif frame.args[1] and string.find(frame.args[1], "P") then
if mw.wikibase.getEntityObject(frame.args[1]) then
return mw.wikibase.getEntityObject(frame.args[1]).datatype
end
end
end
-- Returns true if property datavalue is found excluding novalue/somevalue and deprecated rank
function p.validProperty(frame)
local property = mw.text.trim(frame.args[1])
local item = frame.args.item or frame.args.from; if item == '' then item = nil end
if item == nil then item = mw.wikibase.getEntityIdForCurrentPage() end
if item == nil then return end
local properties = mw.wikibase.getBestStatements(item, property)
if #properties == 0 then return end
return properties[1].mainsnak.datavalue and true or nil
end
return p
b0e2wixb6qf8c73vsa37pjmch7q212v
Modul:Wikidata
828
646
2841
2840
2024-12-03T14:16:38Z
Jon Harald Søby
20
1 revisi diimpor
2840
Scribunto
text/plain
-- vim: set noexpandtab ft=lua ts=4 sw=4:
require('Module:No globals')
local p = {}
local debug = false
------------------------------------------------------------------------------
-- module local variables and functions
local wiki =
{
langcode = mw.language.getContentLanguage().code
}
-- internationalisation
local i18n =
{
["errors"] =
{
["property-not-found"] = "Property not found.",
["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.",
["unknown-datetime-format"] = "Unknown datetime format.",
["local-article-not-found"] = "Article is not yet available in this wiki."
},
["datetime"] =
{
-- $1 is a placeholder for the actual number
[0] = "$1 billion years", -- precision: billion years
[1] = "$100 million years", -- precision: hundred million years
[2] = "$10 million years", -- precision: ten million years
[3] = "$1 million years", -- precision: million years
[4] = "$100,000 years", -- precision: hundred thousand years
[5] = "$10,000 years", -- precision: ten thousand years
[6] = "$1 millennium", -- precision: millennium
[7] = "$1 century", -- precision: century
[8] = "$1s", -- precision: decade
-- the following use the format of #time parser function
[9] = "Y", -- precision: year,
[10] = "F Y", -- precision: month
[11] = "F j, Y", -- precision: day
[12] = "F j, Y ga", -- precision: hour
[13] = "F j, Y g:ia", -- precision: minute
[14] = "F j, Y g:i:sa", -- precision: second
["beforenow"] = "$1 BCE", -- how to format negative numbers for precisions 0 to 5
["afternow"] = "$1 CE", -- how to format positive numbers for precisions 0 to 5
["bc"] = '$1 "BCE"', -- how print negative years
["ad"] = "$1", -- how print positive years
-- the following are for function getDateValue() and getQualifierDateValue()
["default-format"] = "dmy", -- default value of the #3 (getDateValue) or
-- #4 (getQualifierDateValue) argument
["default-addon"] = "BC", -- default value of the #4 (getDateValue) or
-- #5 (getQualifierDateValue) argument
["prefix-addon"] = false, -- set to true for languages put "BC" in front of the
-- datetime string; or the addon will be suffixed
["addon-sep"] = " ", -- separator between datetime string and addon (or inverse)
["format"] = -- options of the 3rd argument
{
["mdy"] = "F j, Y",
["my"] = "F Y",
["y"] = "Y",
["dmy"] = "j F Y",
["ymd"] = "Y-m-d",
["ym"] = "Y-m"
}
},
["monolingualtext"] = '<span lang="%language">%text</span>',
["warnDump"] = "[[Kategori:Called function 'Dump' from module Wikidata]]",
["ordinal"] =
{
[1] = "st",
[2] = "nd",
[3] = "rd",
["default"] = "th"
}
}
-- Credit to http://stackoverflow.com/a/1283608/2644759
-- cc-by-sa 3.0
local function tableMerge(t1, t2)
for k,v in pairs(t2) do
if type(v) == "table" then
if type(t1[k] or false) == "table" then
tableMerge(t1[k] or {}, t2[k] or {})
else
t1[k] = v
end
else
t1[k] = v
end
end
return t1
end
local function loadI18n()
local exist, res = pcall(require, "Module:Wikidata/i18n")
if exist and next(res) ~= nil then
tableMerge(i18n, res.i18n)
end
end
-- Function below not needed at the moment
-- loadI18n()
-- this function needs to be internationalised along with the above:
-- takes cardinal numer as a numeric and returns the ordinal as a string
-- we need three exceptions in English for 1st, 2nd, 3rd, 21st, .. 31st, etc.
local function makeOrdinal (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
local function printError(code)
return '<span class="error">' .. (i18n.errors[code] or code) .. '</span>'
end
local function parseDateValue(timestamp, date_format, date_addon)
local prefix_addon = i18n["datetime"]["prefix-addon"]
local addon_sep = i18n["datetime"]["addon-sep"]
local addon = ""
-- check for negative date
if string.sub(timestamp, 1, 1) == '-' then
timestamp = '+' .. string.sub(timestamp, 2)
addon = date_addon
end
local function d(f)
local year_suffix
local tstr = ""
local lang_obj = mw.language.new(wiki.langcode)
local f_parts = mw.text.split(f, 'Y', true)
for idx, f_part in pairs(f_parts) do
year_suffix = ''
if string.match(f_part, "x[mijkot]$") then
-- for non-Gregorian year
f_part = f_part .. 'Y'
elseif idx < #f_parts then
-- supress leading zeros in year
year_suffix = lang_obj:formatDate('Y', timestamp)
year_suffix = string.gsub(year_suffix, '^0+', '', 1)
end
tstr = tstr .. lang_obj:formatDate(f_part, timestamp) .. year_suffix
end
if addon ~= "" and prefix_addon then
return addon .. addon_sep .. tstr
elseif addon ~= "" then
return tstr .. addon_sep .. addon
else
return tstr
end
end
local _date_format = i18n["datetime"]["format"][date_format]
if _date_format ~= nil then
return d(_date_format)
else
return printError("unknown-datetime-format")
end
end
-- This local function combines the year/month/day/BC/BCE handling of parseDateValue{}
-- with the millennium/century/decade handling of formatDate()
local function parseDateFull(timestamp, precision, date_format, date_addon)
local prefix_addon = i18n["datetime"]["prefix-addon"]
local addon_sep = i18n["datetime"]["addon-sep"]
local addon = ""
-- check for negative date
if string.sub(timestamp, 1, 1) == '-' then
timestamp = '+' .. string.sub(timestamp, 2)
addon = date_addon
end
-- get the next four characters after the + (should be the year now in all cases)
-- ok, so this is dirty, but let's get it working first
local intyear = tonumber(string.sub(timestamp, 2, 5))
if intyear == 0 and precision <= 9 then
return ""
end
-- precision is 10000 years or more
if precision <= 5 then
local factor = 10 ^ ((5 - precision) + 4)
local y2 = math.ceil(math.abs(intyear) / factor)
local relative = mw.ustring.gsub(i18n.datetime[precision], "$1", tostring(y2))
if addon ~= "" then
-- negative date
relative = mw.ustring.gsub(i18n.datetime.beforenow, "$1", relative)
else
relative = mw.ustring.gsub(i18n.datetime.afternow, "$1", relative)
end
return relative
end
-- precision is decades (8), centuries (7) and millennia (6)
local era, card
if precision == 6 then
card = math.floor((intyear - 1) / 1000) + 1
era = mw.ustring.gsub(i18n.datetime[6], "$1", makeOrdinal(card))
end
if precision == 7 then
card = math.floor((intyear - 1) / 100) + 1
era = mw.ustring.gsub(i18n.datetime[7], "$1", makeOrdinal(card))
end
if precision == 8 then
era = mw.ustring.gsub(i18n.datetime[8], "$1", tostring(math.floor(math.abs(intyear) / 10) * 10))
end
if era then
if addon ~= "" then
era = mw.ustring.gsub(mw.ustring.gsub(i18n.datetime.bc, '"', ""), "$1", era)
else
era = mw.ustring.gsub(mw.ustring.gsub(i18n.datetime.ad, '"', ""), "$1", era)
end
return era
end
local _date_format = i18n["datetime"]["format"][date_format]
if _date_format ~= nil then
-- check for precision is year and override supplied date_format
if precision == 9 then
_date_format = i18n["datetime"][9]
end
local year_suffix
local tstr = ""
local lang_obj = mw.language.new(wiki.langcode)
local f_parts = mw.text.split(_date_format, 'Y', true)
for idx, f_part in pairs(f_parts) do
year_suffix = ''
if string.match(f_part, "x[mijkot]$") then
-- for non-Gregorian year
f_part = f_part .. 'Y'
elseif idx < #f_parts then
-- supress leading zeros in year
year_suffix = lang_obj:formatDate('Y', timestamp)
year_suffix = string.gsub(year_suffix, '^0+', '', 1)
end
tstr = tstr .. lang_obj:formatDate(f_part, timestamp) .. year_suffix
end
local fdate
if addon ~= "" and prefix_addon then
fdate = addon .. addon_sep .. tstr
elseif addon ~= "" then
fdate = tstr .. addon_sep .. addon
else
fdate = tstr
end
return fdate
else
return printError("unknown-datetime-format")
end
end
-- the "qualifiers" and "snaks" field have a respective "qualifiers-order" and "snaks-order" field
-- use these as the second parameter and this function instead of the built-in "pairs" function
-- to iterate over all qualifiers and snaks in the intended order.
local function orderedpairs(array, order)
if not order then return pairs(array) end
-- return iterator function
local i = 0
return function()
i = i + 1
if order[i] then
return order[i], array[order[i]]
end
end
end
-- precision: 0 - billion years, 1 - hundred million years, ..., 6 - millennia, 7 - century, 8 - decade, 9 - year, 10 - month, 11 - day, 12 - hour, 13 - minute, 14 - second
local function normalizeDate(date)
date = mw.text.trim(date, "+")
-- extract year
local yearstr = mw.ustring.match(date, "^\-?%d+")
local year = tonumber(yearstr)
-- remove leading zeros of year
return year .. mw.ustring.sub(date, #yearstr + 1), year
end
local function formatDate(date, precision, timezone)
precision = precision or 11
local date, year = normalizeDate(date)
if year == 0 and precision <= 9 then return "" end
-- precision is 10000 years or more
if precision <= 5 then
local factor = 10 ^ ((5 - precision) + 4)
local y2 = math.ceil(math.abs(year) / factor)
local relative = mw.ustring.gsub(i18n.datetime[precision], "$1", tostring(y2))
if year < 0 then
relative = mw.ustring.gsub(i18n.datetime.beforenow, "$1", relative)
else
relative = mw.ustring.gsub(i18n.datetime.afternow, "$1", relative)
end
return relative
end
-- precision is decades, centuries and millennia
local era
if precision == 6 then era = mw.ustring.gsub(i18n.datetime[6], "$1", tostring(math.floor((math.abs(year) - 1) / 1000) + 1)) end
if precision == 7 then era = mw.ustring.gsub(i18n.datetime[7], "$1", tostring(math.floor((math.abs(year) - 1) / 100) + 1)) end
if precision == 8 then era = mw.ustring.gsub(i18n.datetime[8], "$1", tostring(math.floor(math.abs(year) / 10) * 10)) end
if era then
if year < 0 then era = mw.ustring.gsub(mw.ustring.gsub(i18n.datetime.bc, '"', ""), "$1", era)
elseif year > 0 then era = mw.ustring.gsub(mw.ustring.gsub(i18n.datetime.ad, '"', ""), "$1", era) end
return era
end
-- precision is year
if precision == 9 then
return year
end
-- precision is less than years
if precision > 9 then
--[[ the following code replaces the UTC suffix with the given negated timezone to convert the global time to the given local time
timezone = tonumber(timezone)
if timezone and timezone ~= 0 then
timezone = -timezone
timezone = string.format("%.2d%.2d", timezone / 60, timezone % 60)
if timezone[1] ~= '-' then timezone = "+" .. timezone end
date = mw.text.trim(date, "Z") .. " " .. timezone
end
]]--
local formatstr = i18n.datetime[precision]
if year == 0 then formatstr = mw.ustring.gsub(formatstr, i18n.datetime[9], "")
elseif year < 0 then
-- Mediawiki formatDate doesn't support negative years
date = mw.ustring.sub(date, 2)
formatstr = mw.ustring.gsub(formatstr, i18n.datetime[9], mw.ustring.gsub(i18n.datetime.bc, "$1", i18n.datetime[9]))
elseif year > 0 and i18n.datetime.ad ~= "$1" then
formatstr = mw.ustring.gsub(formatstr, i18n.datetime[9], mw.ustring.gsub(i18n.datetime.ad, "$1", i18n.datetime[9]))
end
return mw.language.new(wiki.langcode):formatDate(formatstr, date)
end
end
local function printDatavalueEntity(data, parameter)
-- data fields: entity-type [string], numeric-id [int, Wikidata id]
local id
if data["entity-type"] == "item" then id = "Q" .. data["numeric-id"]
elseif data["entity-type"] == "property" then id = "P" .. data["numeric-id"]
else return printError("unknown-entity-type")
end
if parameter then
if parameter == "link" then
local linkTarget = mw.wikibase.sitelink(id)
local linkName = mw.wikibase.label(id)
if linkTarget then
-- if there is a local Wikipedia article link to it using the label or the article title
return "[[" .. linkTarget .. "|" .. (linkName or linkTarget) .. "]]"
else
-- if there is no local Wikipedia article output the label or link to the Wikidata object to let the user input a proper label
if linkName then return linkName else return "[[:d:" .. id .. "|" .. id .. "]]" end
end
else
return data[parameter]
end
else
return mw.wikibase.label(id) or id
end
end
local function printDatavalueTime(data, parameter)
-- data fields: time [ISO 8601 time], timezone [int in minutes], before [int], after [int], precision [int], calendarmodel [wikidata URI]
-- precision: 0 - billion years, 1 - hundred million years, ..., 6 - millennia, 7 - century, 8 - decade, 9 - year, 10 - month, 11 - day, 12 - hour, 13 - minute, 14 - second
-- calendarmodel: e.g. http://www.wikidata.org/entity/Q1985727 for the proleptic Gregorian calendar or http://www.wikidata.org/wiki/Q11184 for the Julian calendar]
if parameter then
if parameter == "calendarmodel" then data.calendarmodel = mw.ustring.match(data.calendarmodel, "Q%d+") -- extract entity id from the calendar model URI
elseif parameter == "time" then data.time = normalizeDate(data.time) end
return data[parameter]
else
return formatDate(data.time, data.precision, data.timezone)
end
end
local function printDatavalueMonolingualText(data, parameter)
-- data fields: language [string], text [string]
if parameter then
return data[parameter]
else
local result = mw.ustring.gsub(mw.ustring.gsub(i18n.monolingualtext, "%%language", data["language"]), "%%text", data["text"])
return result
end
end
local function findClaims(entity, property)
if not property or not entity or not entity.claims then return end
if mw.ustring.match(property, "^P%d+$") then
-- if the property is given by an id (P..) access the claim list by this id
return entity.claims[property]
else
property = mw.wikibase.resolvePropertyId(property)
if not property then return end
return entity.claims[property]
end
end
local function getSnakValue(snak, parameter)
if snak.snaktype == "value" then
-- call the respective snak parser
if snak.datavalue.type == "string" then return snak.datavalue.value
elseif snak.datavalue.type == "globecoordinate" then return printDatavalueCoordinate(snak.datavalue.value, parameter)
elseif snak.datavalue.type == "quantity" then return printDatavalueQuantity(snak.datavalue.value, parameter)
elseif snak.datavalue.type == "time" then return printDatavalueTime(snak.datavalue.value, parameter)
elseif snak.datavalue.type == "wikibase-entityid" then return printDatavalueEntity(snak.datavalue.value, parameter)
elseif snak.datavalue.type == "monolingualtext" then return printDatavalueMonolingualText(snak.datavalue.value, parameter)
end
end
return mw.wikibase.renderSnak(snak)
end
local function getQualifierSnak(claim, qualifierId)
-- a "snak" is Wikidata terminology for a typed key/value pair
-- a claim consists of a main snak holding the main information of this claim,
-- as well as a list of attribute snaks and a list of references snaks
if qualifierId then
-- search the attribute snak with the given qualifier as key
if claim.qualifiers then
local qualifier = claim.qualifiers[qualifierId]
if qualifier then return qualifier[1] end
end
return nil, printError("qualifier-not-found")
else
-- otherwise return the main snak
return claim.mainsnak
end
end
local function getValueOfClaim(claim, qualifierId, parameter)
local error
local snak
snak, error = getQualifierSnak(claim, qualifierId)
if snak then
return getSnakValue(snak, parameter)
else
return nil, error
end
end
local function getReferences(frame, claim)
local result = ""
-- traverse through all references
for ref in pairs(claim.references or {}) do
local refparts
-- traverse through all parts of the current reference
for snakkey, snakval in orderedpairs(claim.references[ref].snaks or {}, claim.references[ref]["snaks-order"]) do
if refparts then refparts = refparts .. ", " else refparts = "" end
-- output the label of the property of the reference part, e.g. "imported from" for P143
refparts = refparts .. tostring(mw.wikibase.label(snakkey)) .. ": "
-- output all values of this reference part, e.g. "German Wikipedia" and "English Wikipedia" if the referenced claim was imported from both sites
for snakidx = 1, #snakval do
if snakidx > 1 then refparts = refparts .. ", " end
refparts = refparts .. getSnakValue(snakval[snakidx])
end
end
if refparts then result = result .. frame:extensionTag("ref", refparts) end
end
return result
end
------------------------------------------------------------------------------
-- module global functions
if debug then
function p.inspectI18n(frame)
local val = i18n
for _, key in pairs(frame.args) do
key = mw.text.trim(key)
val = val[key]
end
return val
end
end
function p.descriptionIn(frame)
local langcode = frame.args[1]
local id = frame.args[2] -- "id" must be nil, as access to other Wikidata objects is disabled in Mediawiki configuration
-- return description of a Wikidata entity in the given language or the default language of this Wikipedia site
return mw.wikibase.getEntityObject(id).descriptions[langcode or wiki.langcode].value
end
function p.labelIn(frame)
local langcode = frame.args[1]
local id = frame.args[2] -- "id" must be nil, as access to other Wikidata objects is disabled in Mediawiki configuration
-- return label of a Wikidata entity in the given language or the default language of this Wikipedia site
return mw.wikibase.getEntityObject(id).labels[langcode or wiki.langcode].value
end
-- This is used to get a value, or a comma separated list of them if multiple values exist
p.getValue = function(frame)
local propertyID = mw.text.trim(frame.args[1] or "")
local input_parm = mw.text.trim(frame.args[2] or "")
if input_parm == "FETCH_WIKIDATA" then
local entity = mw.wikibase.getEntityObject()
local claims
if entity and entity.claims then
claims = entity.claims[propertyID]
end
if claims then
-- if wiki-linked value output as link if possible
if (claims[1] and claims[1].mainsnak.snaktype == "value" and claims[1].mainsnak.datavalue.type == "wikibase-entityid") then
local out = {}
for k, v in pairs(claims) do
local sitelink = mw.wikibase.sitelink("Q" .. v.mainsnak.datavalue.value["numeric-id"])
local label = mw.wikibase.label("Q" .. v.mainsnak.datavalue.value["numeric-id"])
if label == nil then label = "Q" .. v.mainsnak.datavalue.value["numeric-id"] end
if sitelink then
out[#out + 1] = "[[" .. sitelink .. "|" .. label .. "]]"
else
out[#out + 1] = "[[:d:Q" .. v.mainsnak.datavalue.value["numeric-id"] .. "|" .. label .. "]]<abbr title='" .. i18n["errors"]["local-article-not-found"] .. "'>[*]</abbr>"
end
end
return table.concat(out, ", ")
else
-- just return best values
return entity:formatPropertyValues(propertyID).value
end
else
return ""
end
else
return input_parm
end
end
-- Same as above, but uses the short name property for label if available.
p.getValueShortName = function(frame)
local propertyID = mw.text.trim(frame.args[1] or "")
local input_parm = mw.text.trim(frame.args[2] or "")
if input_parm == "FETCH_WIKIDATA" then
local entity = mw.wikibase.getEntityObject()
local claims
if entity and entity.claims then
claims = entity.claims[propertyID]
end
if claims then
-- if wiki-linked value output as link if possible
if (claims[1] and claims[1].mainsnak.snaktype == "value" and claims[1].mainsnak.datavalue.type == "wikibase-entityid") then
local out = {}
for k, v in pairs(claims) do
local sitelink = mw.wikibase.sitelink("Q" .. v.mainsnak.datavalue.value["numeric-id"])
local label
local claimEntity = mw.wikibase.getEntity("Q" .. v.mainsnak.datavalue.value["numeric-id"])
if claimEntity ~= nil then
if claimEntity.claims.P1813 then
for k2, v2 in pairs(claimEntity.claims.P1813) do
if v2.mainsnak.datavalue.value.language == "en" then
label = v2.mainsnak.datavalue.value.text
end
end
end
end
if label == nil or label == "" then label = mw.wikibase.label("Q" .. v.mainsnak.datavalue.value["numeric-id"]) end
if label == nil then label = "Q" .. v.mainsnak.datavalue.value["numeric-id"] end
if sitelink then
out[#out + 1] = "[[" .. sitelink .. "|" .. label .. "]]"
else
out[#out + 1] = "[[:d:Q" .. v.mainsnak.datavalue.value["numeric-id"] .. "|" .. label .. "]]<abbr title='" .. i18n["errors"]["local-article-not-found"] .. "'>[*]</abbr>"
end
end
return table.concat(out, ", ")
else
-- just return best values
return entity:formatPropertyValues(propertyID).value
end
else
return ""
end
else
return input_parm
end
end
-- This is used to get a value, or a comma separated list of them if multiple values exist
-- from an arbitrary entry by using its QID.
-- Use : {{#invoke:Wikidata|getValueFromID|<ID>|<Property>|FETCH_WIKIDATA}}
-- E.g.: {{#invoke:Wikidata|getValueFromID|Q151973|P26|FETCH_WIKIDATA}} - to fetch value of 'spouse' (P26) from 'Richard Burton' (Q151973)
-- Please use sparingly - this is an *expensive call*.
p.getValueFromID = function(frame)
local itemID = mw.text.trim(frame.args[1] or "")
local propertyID = mw.text.trim(frame.args[2] or "")
local input_parm = mw.text.trim(frame.args[3] or "")
if input_parm == "FETCH_WIKIDATA" then
local entity = mw.wikibase.getEntity(itemID)
local claims = entity.claims[propertyID]
if claims then
-- if wiki-linked value output as link if possible
if (claims[1] and claims[1].mainsnak.snaktype == "value" and claims[1].mainsnak.datavalue.type == "wikibase-entityid") then
local out = {}
for k, v in pairs(claims) do
local sitelink = mw.wikibase.sitelink("Q" .. v.mainsnak.datavalue.value["numeric-id"])
local label = mw.wikibase.label("Q" .. v.mainsnak.datavalue.value["numeric-id"])
if label == nil then label = "Q" .. v.mainsnak.datavalue.value["numeric-id"] end
if sitelink then
out[#out + 1] = "[[" .. sitelink .. "|" .. label .. "]]"
else
out[#out + 1] = "[[:d:Q" .. v.mainsnak.datavalue.value["numeric-id"] .. "|" .. label .. "]]<abbr title='" .. i18n["errors"]["local-article-not-found"] .. "'>[*]</abbr>"
end
end
return table.concat(out, ", ")
else
return entity:formatPropertyValues(propertyID).value
end
else
return ""
end
else
return input_parm
end
end
p.getQualifierValue = function(frame)
local propertyID = mw.text.trim(frame.args[1] or "")
local qualifierID = mw.text.trim(frame.args[2] or "")
local input_parm = mw.text.trim(frame.args[3] or "")
if input_parm == "FETCH_WIKIDATA" then
local entity = mw.wikibase.getEntityObject()
if entity.claims[propertyID] ~= nil then
local out = {}
for k, v in pairs(entity.claims[propertyID]) do
for k2, v2 in pairs(v.qualifiers[qualifierID]) do
if v2.snaktype == 'value' then
if (mw.wikibase.sitelink("Q" .. v2.datavalue.value["numeric-id"])) then
out[#out + 1] = "[[" .. mw.wikibase.sitelink("Q" .. v2.datavalue.value["numeric-id"]) .. "]]"
else
out[#out + 1] = "[[:d:Q" .. v2.datavalue.value["numeric-id"] .. "|" .. mw.wikibase.label("Q" .. v2.datavalue.value["numeric-id"]) .. "]]<abbr title='" .. i18n["errors"]["local-article-not-found"] .. "'>[*]</abbr>"
end
end
end
end
return table.concat(out, ", ")
else
return ""
end
else
return input_parm
end
end
-- This is used to get a value like 'male' (for property p21) which won't be linked and numbers without the thousand separators
p.getRawValue = function(frame)
local propertyID = mw.text.trim(frame.args[1] or "")
local input_parm = mw.text.trim(frame.args[2] or "")
if input_parm == "FETCH_WIKIDATA" then
local entity = mw.wikibase.getEntityObject()
local claims
if entity and entity.claims then claims = entity.claims[propertyID] end
if claims then
local result = entity:formatPropertyValues(propertyID, mw.wikibase.entity.claimRanks).value
-- if number type: remove thousand separators, bounds and units
if (claims[1] and claims[1].mainsnak.snaktype == "value" and claims[1].mainsnak.datavalue.type == "quantity") then
result = mw.ustring.gsub(result, "(%d),(%d)", "%1%2")
result = mw.ustring.gsub(result, "(%d)±.*", "%1")
end
return result
else
return ""
end
else
return input_parm
end
end
-- This is used to get the unit name for the numeric value returned by getRawValue
p.getUnits = function(frame)
local propertyID = mw.text.trim(frame.args[1] or "")
local input_parm = mw.text.trim(frame.args[2] or "")
if input_parm == "FETCH_WIKIDATA" then
local entity = mw.wikibase.getEntityObject()
local claims
if entity and entity.claims then claims = entity.claims[propertyID] end
if claims then
local result = entity:formatPropertyValues(propertyID, mw.wikibase.entity.claimRanks).value
if (claims[1] and claims[1].mainsnak.snaktype == "value" and claims[1].mainsnak.datavalue.type == "quantity") then
result = mw.ustring.sub(result, mw.ustring.find(result, " ")+1, -1)
end
return result
else
return ""
end
else
return input_parm
end
end
-- This is used to get the unit's QID to use with the numeric value returned by getRawValue
p.getUnitID = function(frame)
local propertyID = mw.text.trim(frame.args[1] or "")
local input_parm = mw.text.trim(frame.args[2] or "")
if input_parm == "FETCH_WIKIDATA" then
local entity = mw.wikibase.getEntityObject()
local claims
if entity and entity.claims then claims = entity.claims[propertyID] end
if claims then
local result
if (claims[1] and claims[1].mainsnak.snaktype == "value" and claims[1].mainsnak.datavalue.type == "quantity") then
-- get the url for the unit entry on Wikidata:
result = claims[1].mainsnak.datavalue.value.unit
-- and just reurn the last bit from "Q" to the end (which is the QID):
result = mw.ustring.sub(result, mw.ustring.find(result, "Q"), -1)
end
return result
else
return ""
end
else
return input_parm
end
end
p.getRawQualifierValue = function(frame)
local propertyID = mw.text.trim(frame.args[1] or "")
local qualifierID = mw.text.trim(frame.args[2] or "")
local input_parm = mw.text.trim(frame.args[3] or "")
if input_parm == "FETCH_WIKIDATA" then
local entity = mw.wikibase.getEntityObject()
if entity.claims[propertyID] ~= nil then
local out = {}
for k, v in pairs(entity.claims[propertyID]) do
for k2, v2 in pairs(v.qualifiers[qualifierID]) do
if v2.snaktype == 'value' then
if v2.datavalue.value["numeric-id"] then
out[#out + 1] = mw.wikibase.label("Q" .. v2.datavalue.value["numeric-id"])
else
out[#out + 1] = v2.datavalue.value
end
end
end
end
local ret = table.concat(out, ", ")
return string.upper(string.sub(ret, 1, 1)) .. string.sub(ret, 2)
else
return ""
end
else
return input_parm
end
end
-- This is used to get a date value for date_of_birth (P569), etc. which won't be linked
-- Dates and times are stored in ISO 8601 format (sort of).
-- At present the local formatDate(date, precision, timezone) function doesn't handle timezone
-- So I'll just supply "Z" in the call to formatDate below:
p.getDateValue = function(frame)
local propertyID = mw.text.trim(frame.args[1] or "")
local input_parm = mw.text.trim(frame.args[2] or "")
local date_format = mw.text.trim(frame.args[3] or i18n["datetime"]["default-format"])
local date_addon = mw.text.trim(frame.args[4] or i18n["datetime"]["default-addon"])
if input_parm == "FETCH_WIKIDATA" then
local entity = mw.wikibase.getEntityObject()
if entity.claims[propertyID] ~= nil then
local out = {}
for k, v in pairs(entity.claims[propertyID]) do
if v.mainsnak.datavalue.type == 'time' then
local timestamp = v.mainsnak.datavalue.value.time
local dateprecision = v.mainsnak.datavalue.value.precision
out[#out + 1] = parseDateFull(timestamp, dateprecision, date_format, date_addon)
end
end
return table.concat(out, ", ")
else
return ""
end
else
return input_parm
end
end
p.getQualifierDateValue = function(frame)
local propertyID = mw.text.trim(frame.args[1] or "")
local qualifierID = mw.text.trim(frame.args[2] or "")
local input_parm = mw.text.trim(frame.args[3] or "")
local date_format = mw.text.trim(frame.args[4] or i18n["datetime"]["default-format"])
local date_addon = mw.text.trim(frame.args[5] or i18n["datetime"]["default-addon"])
if input_parm == "FETCH_WIKIDATA" then
local entity = mw.wikibase.getEntityObject()
if entity.claims[propertyID] ~= nil then
local out = {}
for k, v in pairs(entity.claims[propertyID]) do
for k2, v2 in pairs(v.qualifiers[qualifierID]) do
if v2.snaktype == 'value' then
local timestamp = v2.datavalue.value.time
out[#out + 1] = parseDateValue(timestamp, date_format, date_addon)
end
end
end
return table.concat(out, ", ")
else
return ""
end
else
return input_parm
end
end
-- This is used to fetch all of the images with a particular property, e.g. image (P18), Gene Atlas Image (P692), etc.
-- Parameters are | propertyID | value / FETCH_WIKIDATA / nil | separator (default=space) | size (default=frameless)
-- It will return a standard wiki-markup [[Berkas:Filename | size]] for each image with a selectable size and separator (which may be html)
-- e.g. {{#invoke:Wikidata|getImages|P18|FETCH_WIKIDATA}}
-- e.g. {{#invoke:Wikidata|getImages|P18|FETCH_WIKIDATA|<br>|250px}}
-- If a property is chosen that is not of type "commonsMedia", it will return empty text.
p.getImages = function(frame)
local propertyID = mw.text.trim(frame.args[1] or "")
local input_parm = mw.text.trim(frame.args[2] or "")
local sep = mw.text.trim(frame.args[3] or " ")
local imgsize = mw.text.trim(frame.args[4] or "frameless")
if input_parm == "FETCH_WIKIDATA" then
local entity = mw.wikibase.getEntityObject()
local claims
if entity and entity.claims then
claims = entity.claims[propertyID]
end
if claims then
if (claims[1] and claims[1].mainsnak.datatype == "commonsMedia") then
local out = {}
for k, v in pairs(claims) do
local filename = v.mainsnak.datavalue.value
out[#out + 1] = "[[Berkas:" .. filename .. "|" .. imgsize .. "]]"
end
return table.concat(out, sep)
else
return ""
end
else
return ""
end
else
return input_parm
end
end
-- This is used to get the TA98 (Terminologia Anatomica first edition 1998) values like 'A01.1.00.005' (property P1323)
-- which are then linked to http://www.unifr.ch/ifaa/Public/EntryPage/TA98%20Tree/Entity%20TA98%20EN/01.1.00.005%20Entity%20TA98%20EN.htm
-- uses the newer mw.wikibase calls instead of directly using the snaks
-- formatPropertyValues returns a table with the P1323 values concatenated with ", " so we have to split them out into a table in order to construct the return string
p.getTAValue = function(frame)
local ent = mw.wikibase.getEntityObject()
local props = ent:formatPropertyValues('P1323')
local out = {}
local t = {}
for k, v in pairs(props) do
if k == 'value' then
t = mw.text.split( v, ", ")
for k2, v2 in pairs(t) do
out[#out + 1] = "[http://www.unifr.ch/ifaa/Public/EntryPage/TA98%20Tree/Entity%20TA98%20EN/" .. string.sub(v2, 2) .. "%20Entity%20TA98%20EN.htm " .. v2 .. "]"
end
end
end
local ret = table.concat(out, "<br> ")
if #ret == 0 then
ret = "Invalid TA"
end
return ret
end
--[[
This is used to return an image legend from Wikidata
image is property P18
image legend is property P2096
Call as {{#invoke:Wikidata |getImageLegend | <PARAMETER> | lang=<ISO-639code> |id=<QID>}}
Returns PARAMETER, unless it is equal to "FETCH_WIKIDATA", from Item QID (expensive call)
If QID is omitted or blank, the current article is used (not an expensive call)
If lang is omitted, it uses the local wiki language, otherwise it uses the provided ISO-639 language code
ISO-639: https://docs.oracle.com/cd/E13214_01/wli/docs92/xref/xqisocodes.html#wp1252447
Ranks are: 'preferred' > 'normal'
This returns the label from the first image with 'preferred' rank
Or the label from the first image with 'normal' rank if preferred returns nothing
Ranks: https://www.mediawiki.org/wiki/Extension:Wikibase_Client/Lua
]]
p.getImageLegend = function(frame)
-- look for named parameter id; if it's blank make it nil
local id = frame.args.id
if id and (#id == 0) then
id = nil
end
-- look for named parameter lang
-- it should contain a two-character ISO-639 language code
-- if it's blank fetch the language of the local wiki
local lang = frame.args.lang
if (not lang) or (#lang < 2) then
lang = mw.language.getContentLanguage().code
end
-- first unnamed parameter is the local parameter, if supplied
local input_parm = mw.text.trim(frame.args[1] or "")
if input_parm == "FETCH_WIKIDATA" then
local ent = mw.wikibase.getEntityObject(id)
local imgs
if ent and ent.claims then
imgs = ent.claims.P18
end
local imglbl
if imgs then
-- look for an image with 'preferred' rank
for k1, v1 in pairs(imgs) do
if v1.rank == "preferred" and v1.qualifiers and v1.qualifiers.P2096 then
local imglbls = v1.qualifiers.P2096
for k2, v2 in pairs(imglbls) do
if v2.datavalue.value.language == lang then
imglbl = v2.datavalue.value.text
break
end
end
end
end
-- if we don't find one, look for an image with 'normal' rank
if (not imglbl) then
for k1, v1 in pairs(imgs) do
if v1.rank == "normal" and v1.qualifiers and v1.qualifiers.P2096 then
local imglbls = v1.qualifiers.P2096
for k2, v2 in pairs(imglbls) do
if v2.datavalue.value.language == lang then
imglbl = v2.datavalue.value.text
break
end
end
end
end
end
end
return imglbl
else
return input_parm
end
end
-- This is used to get the QIDs of all of the values of a property, as a comma separated list if multiple values exist
-- Usage: {{#invoke:Wikidata |getPropertyIDs |<PropertyID> |FETCH_WIKIDATA}}
-- Usage: {{#invoke:Wikidata |getPropertyIDs |<PropertyID> |<InputParameter> |qid=<QID>}}
p.getPropertyIDs = function(frame)
local propertyID = mw.text.trim(frame.args[1] or "")
local input_parm = mw.text.trim(frame.args[2] or "")
-- can take a named parameter |qid which is the Wikidata ID for the article. This will not normally be used.
local qid = frame.args.qid
if qid and (#qid == 0) then qid = nil end
if input_parm == "FETCH_WIKIDATA" then
local entity = mw.wikibase.getEntityObject(qid)
local propclaims
if entity and entity.claims then
propclaims = entity.claims[propertyID]
end
if propclaims then
-- if wiki-linked value collect the QID in a table
if (propclaims[1] and propclaims[1].mainsnak.snaktype == "value" and propclaims[1].mainsnak.datavalue.type == "wikibase-entityid") then
local out = {}
for k, v in pairs(propclaims) do
out[#out + 1] = "Q" .. v.mainsnak.datavalue.value["numeric-id"]
end
return table.concat(out, ", ")
else
-- not a wikibase-entityid, so return empty
return ""
end
else
-- no claim, so return empty
return ""
end
else
return input_parm
end
end
-- returns the page id (Q...) of the current page or nothing of the page is not connected to Wikidata
function p.pageId(frame)
local entity = mw.wikibase.getEntityObject()
if not entity then return nil else return entity.id end
end
function p.claim(frame)
local property = frame.args[1] or ""
local id = frame.args["id"] -- "id" must be nil, as access to other Wikidata objects is disabled in Mediawiki configuration
local qualifierId = frame.args["qualifier"]
local parameter = frame.args["parameter"]
local list = frame.args["list"]
local references = frame.args["references"]
local showerrors = frame.args["showerrors"]
local default = frame.args["default"]
if default then showerrors = nil end
-- get wikidata entity
local entity = mw.wikibase.getEntityObject(id)
if not entity then
if showerrors then return printError("entity-not-found") else return default end
end
-- fetch the first claim of satisfying the given property
local claims = findClaims(entity, property)
if not claims or not claims[1] then
if showerrors then return printError("property-not-found") else return default end
end
-- get initial sort indices
local sortindices = {}
for idx in pairs(claims) do
sortindices[#sortindices + 1] = idx
end
-- sort by claim rank
local comparator = function(a, b)
local rankmap = { deprecated = 2, normal = 1, preferred = 0 }
local ranka = rankmap[claims[a].rank or "normal"] .. string.format("%08d", a)
local rankb = rankmap[claims[b].rank or "normal"] .. string.format("%08d", b)
return ranka < rankb
end
table.sort(sortindices, comparator)
local result
local error
if list then
local value
-- iterate over all elements and return their value (if existing)
result = {}
for idx in pairs(claims) do
local claim = claims[sortindices[idx]]
value, error = getValueOfClaim(claim, qualifierId, parameter)
if not value and showerrors then value = error end
if value and references then value = value .. getReferences(frame, claim) end
result[#result + 1] = value
end
result = table.concat(result, list)
else
-- return first element
local claim = claims[sortindices[1]]
result, error = getValueOfClaim(claim, qualifierId, parameter)
if result and references then result = result .. getReferences(frame, claim) end
end
if result then return result else
if showerrors then return error else return default end
end
end
-- look into entity object
function p.ViewSomething(frame)
local f = (frame.args[1] or frame.args.id) and frame or frame:getParent()
local id = f.args.id
if id and (#id == 0) then
id = nil
end
local data = mw.wikibase.getEntityObject(id)
if not data then
return nil
end
local i = 1
while true do
local index = f.args[i]
if not index then
if type(data) == "table" then
return mw.text.jsonEncode(data, mw.text.JSON_PRESERVE_KEYS + mw.text.JSON_PRETTY)
else
return tostring(data)
end
end
data = data[index] or data[tonumber(index)]
if not data then
return
end
i = i + 1
end
end
-- getting sitelink of a given wiki
function p.getSiteLink(frame)
local qid = frame.args.qid
if qid == "" then qid = nil end
local f = mw.text.trim( frame.args[1] or "")
local entity = mw.wikibase.getEntity(qid)
if not entity then
return
end
local link = entity:getSitelink( f )
if not link then
return
end
return link
end
function p.Dump(frame)
local f = (frame.args[1] or frame.args.id) and frame or frame:getParent()
local data = mw.wikibase.getEntityObject(f.args.id)
if not data then
return i18n.warnDump
end
local i = 1
while true do
local index = f.args[i]
if not index then
return "<pre>"..mw.dumpObject(data).."</pre>".. i18n.warnDump
end
data = data[index] or data[tonumber(index)]
if not data then
return i18n.warnDump
end
i = i + 1
end
end
return p
c8bfbg9hvlemg9i4nt9t22t5md1f9yi
Modul:Wikidata/i18n
828
647
2843
2842
2024-12-03T16:05:39Z
Jon Harald Søby
20
1 revisi diimpor
2842
Scribunto
text/plain
return {
}
902rac2jbx6q4ghmlz4kd8f4aoo7nh4
Modul:WikidataIB
828
648
2848
2847
2024-12-03T16:05:40Z
Jon Harald Søby
20
4 revisi diimpor
2846
Scribunto
text/plain
-- 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 = require("Module:Complex date")._complex_date
-- [[Modul:Complex date]] has the following dependencies:
-- Module:I18n/complex date, Module:ISOdate, Module:DateI18n (alternative for Module:Date),
-- Module:Formatnum, Module:I18n/date, Module:Yesno, Module:Linguistic, Module:Calendar
-- 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. "[[Kategori:Articles with missing Wikidata information]]", or "" to disable:
["missinginfocat"] = "[[Kategori: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 a 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
-------------------------------------------------------------------------------
-- Private functions
-------------------------------------------------------------------------------
--
-------------------------------------------------------------------------------
-- makeOrdinal needs to be internationalised along with the above:
-- takes cardinal numer 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 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
-------------------------------------------------------------------------------
-- 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 cirumstances"/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)
-- 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")
-- output formatting according to preferences (y/dmy/mdy)
df = (df or ""):lower()
-- 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
local fdate = cdate("", 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("<[^>]*>", "")
-- 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.
-------------------------------------------------------------------------------
-- Dependencies: none
-------------------------------------------------------------------------------
local parseParam = function(param, default)
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 return nil end
wiki = wiki or ""
local sitelink
if wiki == "" then
sitelink = mw.wikibase.sitelink(qid)
else
sitelink = mw.wikibase.sitelink(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 linked Wikidata item;
-- the Commons sitelink of the topic's main category of the linked Wikidata item;
-- the Commons category.
-- If the optional parameter onlycat is true/yes/1 then only categories are returned
-- defaults to 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)
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.value.id
sitelink = _getSitelink(tmcid, "commonswiki")
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.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)
local label = mw.wikibase.label(id)
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
-------------------------------------------------------------------------------
-- Dependencies: labelOrId()
-------------------------------------------------------------------------------
local linkedItem = function(id, lprefix, lpostfix, prefix, postfix, dtxt)
lprefix = lprefix or "" -- toughen against nil values passed
lpostfix = lpostfix or ""
prefix = prefix or ""
postfix = postfix or ""
local disp
local sitelink = mw.wikibase.sitelink(id)
local label, islabel
if dtxt then
label, islabel = dtxt, true
else
label, islabel = labelOrId(id)
end
if mw.site.siteName ~= "Wikimedia Commons" then
if sitelink then
if not dtxt then
-- strip any namespace or dab from the sitelink and use that as label
local pos = sitelink:find(":") or 0
label = sitelink:sub(pos+1):gsub("%s%(.+%)$", ""):gsub(",.+$", "")
end
if donotlink[label] then
disp = prefix .. label .. postfix
else
disp = "[[" .. lprefix .. sitelink .. lpostfix .. "|" .. prefix .. label .. postfix .. "]]"
end
elseif islabel then
-- no sitelink, label exists, so check if a redirect with that title exists
local artitle = mw.title.new(label, 0)
if artitle and artitle.redirectTarget and not donotlink[label] then
-- there's a redirect with the same title as the label, so let's link to that
disp = "[[".. lprefix .. label .. lpostfix .. "|" .. prefix .. label .. postfix .. "]]"
else
-- no sitelink, label exists, not redirect (or donotlink) so output plain label
disp = prefix .. label .. postfix
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 [[Kategori:Articles with missing Wikidata information]]
disp = prefix .. label .. postfix .. i18n.missinginfocat
end
else
local ccat = mw.wikibase.getBestStatements(id, "P373")[1]
if ccat 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 counts how many references are sourced to something not containing the word "wikipedia"
-- it returns a boolean = true if there are any sourced references.
-------------------------------------------------------------------------------
-- 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("Wikipedia") 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
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
-- The whitelist is passed in named parameter |fetchwikidata
local whitelist = args.fetchwikidata or args.fwd
if not whitelist or 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 not fieldname or 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.
-------------------------------------------------------------------------------
-- Dependencies: i18n[];
-------------------------------------------------------------------------------
local createicon = function(langcode, entityID, propertyID)
local icon = " [[" .. i18n["filespace"]
icon = icon .. ":Blue pencil.svg |frameless |text-top |10px |alt="
icon = icon .. i18n["editonwikidata"]
icon = icon .. "|link=https://www.wikidata.org/wiki/" .. entityID
icon = icon .. "?uselang=" .. langcode
if propertyID then icon = icon .. "#" .. propertyID end
icon = icon .. "|" .. i18n["editonwikidata"] .. "]]"
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 needs the entityID and 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
-- 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 a pen icon is wanted add it the end of the last value
if not noic 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
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 ""
local dtxt = args.displaytext or args.dt
if dtxt == "" then dtxt = nil end
local snak = propval.mainsnak or propval
local dv = snak.datavalue
local dtype = propval.datatype or propval.mainsnak.datatype
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, lpre, lpost, pre, post, dtxt)
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
val = dateFormat(dv.time, dv.precision, args.df, args.bc, args.pd, propval.qualifiers, args.lang)
------------------------------------
-- 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
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
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.getAllStatements(unitqid, "P5061")
-- construct fallback table
local fbtbl = mw.language.getFallbacksFor( args.lang )
table.insert( fbtbl, 1, args.lang )
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 and usym ~= "" then
if range == "" then
val = mw.getCurrentFrame():expandTemplate{title = "cvt", args = {amount, usym}}
else
val = mw.getCurrentFrame():expandTemplate{title = "cvt", args = {lowb, "to", upb, usym}}
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
--
-- show parameter allows just the latitude or longitude to be shown
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
local lang = args.lang
-- 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 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
elseif qualsonly and qualID then
-- no value: it isn't sourced when only qualifiers are requested
else
out[#out+1], mlt[#out+1] = rendersnak(v, args, linked, lprefix, lpostfix, prefix, postfix, uabbr)
end
-- See if qualifiers are to be returned:
local snak = v.mainsnak or v
if hasvalue and v.qualifiers and qualID and snak.snaktype=="value" then
local qsep = (args.qsep or ""):gsub('"', '')
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"] = args.qsorted,
["noicon"] = "true",
["list"] = args.qlist,
["sep"] = qsep,
["langobj"] = args.langobj,
["lang"] = args.langobj.code,
}
local qlist = {}
local t1, t2 = "", ""
-- see if we want all qualifiers
if qualID == "ALL" then
if v["qualifiers-order"] then
-- the values in the order table are the keys for the qualifiers table:
for k1, v1 in ipairs(v["qualifiers-order"]) do
if v1 == "P1326" then
local ts = v.qualifiers[v1][1].datavalue.value.time
local dp = v.qualifiers[v1][1].datavalue.value.precision
qlist[#qlist + 1] = dateFormat(ts, dp, args.df, args.bc, pd, "", lang, "before")
else
qlist[#qlist + 1] = assembleoutput(propertyvalueandquals(v.qualifiers[v1], qargs), qargs)
end
end
else
local ql = propertyvalueandquals(v.qualifiers, qargs)
for k1, v1 in ipairs(ql) do
if k1 == "P1326" then
local ts = v1[1].datavalue.value.time
local dp = v1[1].datavalue.value.precision
qlist[#qlist + 1] = dateFormat(ts, dp, args.df, args.bc, pd, "", lang, "before")
else
qlist[#qlist + 1] = v1
end
end
end
-- see if we want date/range
elseif qualID == "DATES" then
qargs.maxvals = 1
for k1, v1 in pairs(v.qualifiers) do
if k1 == "P580" then -- P580 is "start time"
t1 = propertyvalueandquals(v1, qargs)[1] or ""
elseif k1 == "P582" then -- P582 is "end time"
t2 = propertyvalueandquals(v1, qargs)[1] or ""
end
end
-- otherwise process qualID as a list of qualifiers
else
for q in mw.text.gsplit(qualID, "%p") do -- split at punctuation and iterate
q = mw.text.trim(q):upper() -- remove whitespace and capitalise
if q == "P1326" then
-- latest date, so supply 'before' as well. Assume one date value.
for k1, v1 in pairs(v.qualifiers) do
if k1 == "P1326" then
local ts = v1[1].datavalue.value.time
local dp = v1[1].datavalue.value.precision
qlist[#qlist + 1] = dateFormat(ts, dp, args.df, args.bc, pd, "", lang, "before")
end
end
else
for k1, v1 in pairs(v.qualifiers) do
if k1 == q then
local ql = propertyvalueandquals(v1, qargs)
for k2, v2 in ipairs(ql) do
qlist[#qlist + 1] = v2
end
end
end
end
end -- of loop through list of qualifiers in qualID
end -- of testing for what qualID is
local t = t1 .. t2
-- *** internationalise date separators later ***
local dsep = "–"
if t:find("%s") or t:find(" ") then dsep = " – " end
if #qlist > 0 then
local qstr = assembleoutput(qlist, qargs)
if qualsonly then
out[#out+1] = qstr
else
out[#out] = out[#out] .. " (" .. qstr .. ")"
end
elseif t > "" then
if qualsonly then
out[#out+1] = t1 .. dsep .. t2
else
out[#out] = out[#out] .. " (" .. t1 .. dsep .. t2 .. ")"
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
local langcode = args.langobj.code
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 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()
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 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
end
end -- of check for sourced
end -- of check for matching required value and has qualifiers
else
return nil
end -- of check for string
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 P131 (located in the administrative territorial entity)
-- or P276 (location) 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 out = {}
local langcode = findLang():getCode()
local finished = false
local count = 0
repeat
local prop = mw.wikibase.getBestStatements(qid, "P131")[1] or mw.wikibase.getBestStatements(qid, "P276")[1] or mw.wikibase.getBestStatements(qid, "P706")[1]
-- check if it's an instance of (P31) a country (Q6256) 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.value.id
-- stop if it's a country (or a country within the United Kingdom if skip is true)
if instid == "Q6256" or (skip and instid == "Q3336843") then
prop = nil -- this will ensure this is treated as top-level location
break
end
end
end
if prop and prop.mainsnak.datavalue then
if not skip or count == 0 then
out[#out+1] = linkedItem(qid, ":", "", "", "") -- get a linked value if we can
end
qid = prop.mainsnak.datavalue.value.id
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
if not first then table.remove(out, 1) end
return out
end
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
-- Public functions
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
-- 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: setRanks; parseInput; propertyvalueandquals; assembleoutput; parseParam; sourced;
-- labelOrId; i18n.latestdatequalifier; format_Date; makeOrdinal; roundto; decimalPrecision; decimalToDMS;
-------------------------------------------------------------------------------
p.getValue = function(frame)
if not frame.args[1] then
frame.args = frame:getParent().args
if not frame.args[1] then return i18n.errors["No property supplied"] end
end
-- parameter sets for commonly used groups of parameters
local paraset = tonumber(frame.args.ps or frame.args.parameterset or 0)
if paraset == 1 then
frame.args.rank = "best"
frame.args.fetchwikidata = "ALL"
frame.args.onlysourced = "no"
frame.args.noicon = "true"
elseif paraset == 2 then
-- second set goes here
end
local propertyID = mw.text.trim(frame.args[1] or "")
frame.args.reqranks = setRanks(frame.args.rank)
local entityid, props = parseInput(frame, frame.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(frame.args.qual or ""):upper()
if qualID == "" then qualID = nil end
-- 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
-- table 'out' stores the return value(s):
local out = propertyvalueandquals(props, frame.args, qualID)
-- format the table of values and return it as a string:
return assembleoutput(out, frame.args, entityid, propertyID)
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 "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 "inline, title"
local disp = frame.args.display or ""
if disp == "" then
disp = "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
-- 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 in the frame.args table
frame.args.langobj = findLang(frame.args.lang)
-- 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 find the value(s) of the qualifier we want
local quals = v1.qualifiers[qualifierID]
if quals then
-- can't reference qualifer, so set onlysourced = "no" (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 -- 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
-------------------------------------------------------------------------------
-- 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)
-- the Wikibase-entity ID of a value for that qualifier (qvalue=Qzzz)
-- 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 = frame.args.lang or ""
if langcode == "" then
langcode = frame:callParserFunction{ name = "int", args = "lang" }
end
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 code.
-- 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
-------------------------------------------------------------------------------
-- 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(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
local pid1 = args.prop1 or args.pid1 or ""
local pid2 = args.prop2 or args.pid2 or ""
local localval = mw.text.trim(args[1] or "")
if pid1 == "" or pid2 == "" then return nil end
local qid1, statements1 = parseInput(frame, localval, pid1)
if not qid1 then return localval 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] 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
-------------------------------------------------------------------------------
-- 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.sitelink(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.label(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.sitelink(qid3)
sitelink = sitelink or mw.wikibase.label(qid3)
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
-------------------------------------------------------------------------------
-- 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.sitelink(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 label = labelOrId(itemID)
return label
end
-------------------------------------------------------------------------------
-- 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.
-- If there is no sitelink, 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.sitelink(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.description(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 = mw.text.trim(args.qid or "")
if qid == "" then qid = nil end
local entity = mw.wikibase.getEntity(qid)
if not entity then return nil end
local aliases = entity.aliases
if not aliases then return nil end
if not qid then qid= mw.wikibase.getEntityIdForCurrentPage() 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
-------------------------------------------------------------------------------
-- Dependencies: _location();
-------------------------------------------------------------------------------
p.location = function(frame)
local qid = mw.text.trim(frame.args.qid or frame.args[1] or ""):upper()
if qid == "" then return "No id supplied" 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)
local label = labelOrId( frame.args.qid or frame.args[1] )
return label
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
-------------------------------------------------------------------------------
-- 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 asociated with the curent 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 two optional parameters: qid and props
-- 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.
-- If props is not given, the qid is returned.
-------------------------------------------------------------------------------
-- Dependencies: none
-------------------------------------------------------------------------------
p.followQid = function(frame)
local qid = (frame.args.qid or ""):upper()
if qid == "" then
qid = mw.wikibase.getEntityIdForCurrentPage()
end
if not qid then return nil end
local props = (frame.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
return linkedid
end
end -- loop through values of property to follow
end -- loop through list of properties to follow
end
return qid
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
if pid:sub(1,1) ~= "P" then return "No property supplied" end
if qid:sub(1,1) ~= "Q" 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.
-- 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 stats = mw.wikibase.getAllStatements( qid, pid )
if not stats[1] then return nil end
if stats[1].mainsnak.datatype == "wikibase-item" then
for k, v in pairs( stats ) do
if v.mainsnak.snaktype == "value" and v.mainsnak.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
local url, icon = txt:match("(.+) (.+)")
url = url or txt
icon = icon or ""
local prot, addr = url:match("(http[s]*://)(.+)")
prot = prot or url
addr = addr or ""
local disp, n = addr: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
if qid == "" then qid = nil end
local entity = mw.wikibase.getEntity(qid)
if not entity then return i18n["entity-not-found"] end
local labels = entity.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
if qid == "" then qid = nil end
local entity = mw.wikibase.getEntity(qid)
if not entity then return i18n["entity-not-found"] end
local descriptions = entity.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
if qid == "" then qid = nil end
local entity = mw.wikibase.getEntity(qid)
if not entity then return i18n["entity-not-found"] end
local aliases = entity.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
return p
-------------------------------------------------------------------------------
-- List of exported functions
-------------------------------------------------------------------------------
-- getValue
-- getPreferredValue
-- getCoords
-- getQualifierValue
-- getValueByQual
-- getValueByLang
-- getLink
-- getLabel
-- getAT
-- getDescription
-- getAliases
-- pageId
-- formatDate
-- location
-- checkBlacklist
-- emptyor
-- labelorid
-- getLang
-- findLanguage
-- getQID
-- followQid
-- siteID
-- projID
-- formatNumber
-- examine
-- checkvalue
-- url2
-- getWebsite
-- getAllLabels
-- getAllDescriptions
-- getAllAliases
-------------------------------------------------------------------------------
ftq177tam1d9scn9x44zacn6vr6cwmc
Modul:WikidataWV
828
649
2850
2849
2024-12-03T16:05:40Z
Jon Harald Søby
20
1 revisi diimpor
2849
Scribunto
text/plain
-- vim: set noexpandtab ft=lua ts=4 sw=4:
require('strict')
local p = {}
local debug = false
------------------------------------------------------------------------------
--[[
This is used to return a banner legend from Wikidata
image is property P948
image legend is property P2096
Call as {{#invoke:WikidataWV |getImageLegend | <PARAMETER> | lang=<ISO-639code> |id=<QID>}}
Returns PARAMETER, unless it is equal to "FETCH_WIKIDATA", from Item QID (expensive call)
If QID is omitted or blank, the current article is used (not an expensive call)
If lang is omitted, it uses the local wiki language, otherwise it uses the provided ISO-639 language code
ISO-639: https://docs.oracle.com/cd/E13214_01/wli/docs92/xref/xqisocodes.html#wp1252447
Ranks are: 'preferred' > 'normal'
This returns the label from the first image with 'preferred' rank
Or the label from the first image with 'normal' rank if preferred returns nothing
Ranks: https://www.mediawiki.org/wiki/Extension:Wikibase_Client/Lua
]]
p.getBannerLegend = function(frame)
-- look for named parameter id; if it's blank make it nil
local id = frame.args.id
if id and (#id == 0) then
id = nil
end
-- look for named parameter lang
-- it should contain a two-character ISO-639 language code
-- if it's blank fetch the language of the local wiki
local lang = frame.args.lang
if (not lang) or (#lang < 2) then
lang = mw.language.getContentLanguage().code
end
-- first unnamed parameter is the local parameter, if supplied
local input_parm = mw.text.trim(frame.args[1] or "")
if input_parm == "FETCH_WIKIDATA" then
local ent = mw.wikibase.getEntityObject(id)
local imgs
if ent and ent.claims then
imgs = ent.claims.P948
end
local imglbl
if imgs then
-- look for an image with 'preferred' rank
for k1, v1 in pairs(imgs) do
if v1.rank == "preferred" and v1.qualifiers and v1.qualifiers.P2096 then
local imglbls = v1.qualifiers.P2096
for k2, v2 in pairs(imglbls) do
if v2.datavalue.value.language == lang then
imglbl = v2.datavalue.value.text
break
end
end
end
end
-- if we don't find one, look for an image with 'normal' rank
if (not imglbl) then
for k1, v1 in pairs(imgs) do
if v1.rank == "normal" and v1.qualifiers and v1.qualifiers.P2096 then
local imglbls = v1.qualifiers.P2096
for k2, v2 in pairs(imglbls) do
if v2.datavalue.value.language == lang then
imglbl = v2.datavalue.value.text
break
end
end
end
end
end
end
return imglbl
else
return input_parm
end
end
return p
gdvq1yfbcur3sscsr5zfqh87dmxov3k
Modul:Yesno
828
650
2852
2851
2024-12-03T16:05:40Z
Jon Harald Søby
20
1 revisi diimpor
2851
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
Modul:I18n/complex date
828
651
2855
2854
2024-12-03T16:05:41Z
Jon Harald Søby
20
2 revisi diimpor
2853
Scribunto
text/plain
--[[
__ __ _ _ ___ _ ___ __ _ _ _
| \/ | ___ __| |_ _| | ___ _|_ _/ |( _ ) _ __ / /__ ___ _ __ ___ _ __ | | _____ __ __| | __ _| |_ ___
| |\/| |/ _ \ / _` | | | | |/ _ (_)| || |/ _ \| '_ \ / / __/ _ \| '_ ` _ \| '_ \| |/ _ \ \/ / / _` |/ _` | __/ _ \
| | | | (_) | (_| | |_| | | __/_ | || | (_) | | | |/ / (_| (_) | | | | | | |_) | | __/> < | (_| | (_| | || __/
|_| |_|\___/ \__,_|\__,_|_|\___(_)___|_|\___/|_| |_/_/ \___\___/|_| |_| |_| .__/|_|\___/_/\_\ \__,_|\__,_|\__\___|
|_|
This code was copied from Commons please request changes there.
Maintainers:
*Jarekt
]]
local Ordinal = require('Module:Ordinal')._Ordinal
local Roman = require('Module:Roman')._Numeral
local linguistic = require('Module:Linguistic')
-- ==========================================================================
-- === Local Helper functions ==============================================
-- ==========================================================================
-- form of French "of" based on "precision", which is wikibase compatible date precision format:
-- 6=millennium, 7=century, 8=decade, 9=year, 10=month, 11=day
-- 1 2 3 4 5 mill cent deca year month day
local frOf = {'du','du','du','du','du', 'du', 'du', 'de', 'de', 'de', 'du'}
local function decYear(state,lang,case)
--Declension of word "year" in several languages
if state.precision == 9 then
yearCase = {
fi={xxx='vuosien', gen='vuoden', ill='vuoteen', ptv='vuotta', ela='vuodesta', ine='vuonna'},
sl={insP='letoma', ins='letom', gen='leta', loc='letu'},
hsb={insP='lětami', ins='lětom', gen='lěta', loc='lěće'}
}
return yearCase[lang][case] .. ' '
else
return ''
end
end
local function decCentury(lang,case)
--Declension of word "century" in several languages
centuryCase = {
pl={nom='wiek', gen='wieku', ins='wiekiem', loc='wieku', default = 'wiek'},
hsb={nom='lětstotk', gen='lětstotka', ins='lětstotkom', loc='lětstotku', default = 'lětstotk'}
}
return centuryCase[lang][case] or centuryCase[lang]['default']
end
local function decMillennium(lang,case)
--Declension of word "century" in several languages
millenniumCase = {
pl={nom='tysiąclecie', gen='tysiąclecia', ins='tysiącleciem', loc='tysiącleciu', default = 'tysiąclecie'},
hsb={nom='lěttysac', gen='lěttysaca', ins='lěttysacom', loc='lěttysacu', default = 'lěttysac'}
}
return millenniumCase[lang][case] or millenniumCase[lang]['default']
end
-- ==========================================================================
-- === Output data structure ===============================================
-- ==========================================================================
local p = {}
--[[
Multiple formats are possible:
1) string with key words "$date1" and "$date2" which will be replaced later by the date strings
2) function which can be used to create output string
* Function INPUTS:
- date1 and date2 string with date strings. "$date1" and "$date2" can also be used which will be replaced latter
- state is a table with full description of the phrase we are trying to construct. It includes state.precision1 (and 2)
which is wikibase compatible date precision format: 6=millennium, 7=century, 8=decade, 9=year, 10=month, 11=day
3) table with following fields:
* table[1] is either string or a function
* table.case is a 2 element table with Grammatical cases used by given language to alter
month name or other adjective related to date # 1 and 2
]]
p.Translations = {
-- ==========================================
-- === Two date phrases =====================
-- ==========================================
['from-until'] = {
nDates = 2,
ar='من $date1 إلى $date2',
['be-tarask']={'з $date1 да $date2', case={'gen','gen'}},
bn='$date1 থেকে $date2 পর্যন্ত',
ca='$date1 fins $date2',
cs='$date1 až $date2',
da='fra $date1 til $date2',
de='$date1 bis $date2',
el='από $date1 έως $date2',
en='from $date1 until $date2',
['en-gb']='from $date1 until $date2',
['en-ca']='from $date1 until $date2',
eo='de $date1 al $date2',
es='de $date1 a $date2',
et='$date1 kuni $date2',
fa='از $date1 تا $date2',
fi='$date1–$date2', -- välisenä aikana
fr=function(date1, date2, state) -- could actually be better should be "d'octobre à mars 2013' not "de octore 2013 à mars 2013"
if state.precision > 10 then -- precision > month
return 'du $date1 au $date2'
else -- "DE septebmbre" / "D'octobre"
return linguistic.of(date1, 'fr') .. " à $date2"
end
end,
gl='de $date1 a $date2', --Template:From until used 'desde $date1 ata $date2'
he='מ- $date1 עד $date2',
hr='od $date1 do $date2',
hsb={'wot $date1 do $date2', case={'gen','gen'}},
hu='$date1 – $date2',
it='dal $date1 al $date2',
ja='$date1から$date2まで',
mk='од $date1 до $date2',
ml='$date1 മുതൽ $date2 വരെ',
nb='fra $date1 til $date2',
nds='$date1 bet $date2',
nn='fra $date1 til $date2',
nl='$date1 tot $date2',
no='fra $date1 til $date2',
pl={'od $date1 do $date2', case={'gen','gen'}},
ro='din $date1 până în $date2',
pt='de $date1 a $date2',
qu="$date1 p'unchawmanta $date2 p\'unchawkama",
ru={'с $date1 по $date2', case={'gen','gen'}},
sk={'od $date1 do $date2', case={'gen','gen'}},
sl={'od $date1 do $date2', case={'gen','gen'}},
sv='från $date1 till $date2',
uk={'з $date1 до $date2', case={'gen','gen'}},
ur='از $date1 تا $date2',
vi='từ $date1 đến $date2',
['zh-hans']='从$date1到$date2',
['zh-hant']='從$date1到$date2',
default='<span style="color:red">$date1 - $date2</span>',
},
['between']={
nDates = 2,
ar='بين $date1 و $date2',
['be-tarask']={'між $date1 і $date2', case={'ins','ins'}},
bn='$date1 এবং $date2-এর মাঝামাঝি',
ca='entre $date1 i $date2',
cs={'mezi $date1 a $date2', case={'ins','ins'}},
da='mellem $date1 og $date2',
de='zwischen $date1 und $date2',
el='μεταξύ $date1 και $date2',
en='between $date1 and $date2',
['en-gb']='between $date1 and $date2',
['en-ca']='between $date1 and $date2',
eo='inter $date1 kaj $date2',
es='entre $date1 y $date2',
et='$date1 ja $date2 vahel',
fa='بین $date1 و $date2',
fi={function(date1, date2, state) return decYear(state,'fi','xxx') .. '$date1 ja $date2 välisenä aikana' end, case={'gen','gen'}},
fr='entre $date1 et $date2',
gl='entre $date1 e $date2',
he='בין $date1 ו- $date2',
hr='između $date1 i $date2',
hsb={'mjez $date1 a $date2', case={'ins','ins'}},
hu='$date1 és $date2 között',
hi='$date1 और $date2 के बीच',
it='tra il $date1 e il $date2',
ja='$date1と$date2の間',
mk='помеѓу $date1 и $date2',
ml='$date1, $date2 എന്നിവയ്ക്കിടയ്ക്ക്',
nb='mellom $date1 og $date2',
nds='twischen $date1 un $date2',
nn='mellom $date1 og $date2',
nl='tussen $date1 en $date2',
no='mellom $date1 og $date2',
pl={'między $date1 a $date2', case={'ins','ins'}},
ro='între $date1 și $date2',
pt='entre $date1 e $date2',
qu="$date1 p'unchawpa $date2 p'unchawpapas chawpin",
ru={'между $date1 и $date2', case={'ins','ins'}},
sk={'medzi $date1 a $date2', case={'ins','ins'}},
sl={function(date1, date2, state) return 'med ' .. decYear(state,'sl','insP') .. '$date1 in $date2' end, case={'ins','ins'}},
sv='mellan $date1 och $date2',
uk={'між $date1 та $date2', case={'ins','ins'}},
ur='بین $date1 و $date2',
vec='tra el $date1 e el $date2',
vi='giữa $date1 và $date2',
['zh-hans']='在$date1到$date2之间',
['zh-hant']='在$date1到$date2之間',
default='<span style="color:red">$date1 - $date2</span>',
},
['or'] = {
nDates = 2,
ar='$date1 أو $date2',
['be-tarask']='$date1 ці $date2',
bn='$date1 অথবা $date2',
ca='$date1 o $date2',
cs='$date1 nebo $date2',
da='$date1 eller $date2',
de='$date1 oder $date2',
el='$date1 ή $date2',
en='$date1 or $date2',
['en-gb']='$date1 or $date2',
['en-ca']='$date1 or $date2',
eo='$date1 aŭ $date2',
es='$date1 o $date2',
et='$date1 või $date2',
fa='$date1 یا $date2',
fi='$date1 tai $date2',
fr='$date1 ou $date2',
gl='$date1 ou $date2',
he='$date1 או $date2',
hr='$date1 ili $date2',
hsb='$date1 abo $date2',
hu='$date1 vagy $date2',
it='$date1 o $date2',
ja='$date1または$date2',
mk='$date1 или $date2',
ml='$date1 അഥവാ $date2',
nb='$date1 eller $date2',
nn='$date1 eller $date2',
nds='$date1 oder $date2',
nl='$date1 of $date2',
no='$date1 eller $date2',
pl='$date1 lub $date2',
pt='$date1 ou $date2',
qu='$date1 icha $date2',
ro='$date1 sau $date2',
ru='$date1 или $date2',
sk='$date1 alebo $date2',
sl='$date1 ali $date2',
sv='$date1 eller $date2',
uk='$date1 або $date2',
ur='$date1 یا $date2',
th='$date1 หรือ $date2',
vi='$date1 hoặc $date2',
['zh-hans']='$date1或$date2',
['zh-hant']='$date1或$date2',
default=function(date1, date2, state) return linguistic.conj({date1, date2}, state.lang, 'or') end,
},
['and'] = {
nDates = 2,
ar='$date1 و $date2',
['be-tarask']='$date1 і $date2',
bn='$date1 এবং $date2',
ca='$date1 i $date2',
cs='$date1 a $date2',
da='$date1 og $date2',
de='$date1 und $date2',
el='$date1 και $date2',
en='$date1 and $date2',
['en-gb']='$date1 and $date2',
['en-ca']='$date1 and $date2',
eo='$date1 kaj $date2',
es='$date1 y $date2',
et='$date1 ja $date2',
fa='$date1 و $date2',
fi='$date1 ja $date2',
fr='$date1 et $date2',
gl='$date1 e $date2',
he='$date1 ו- $date2',
hu='$date1 és $date2',
hsb='$date1 a $date2',
it='$date1 e $date2',
ja='$date1および$date2',
mk='$date1 и $date2',
ml='$date1 ഒപ്പം $date2',
nb='$date1 og $date2',
nn='$date1 og $date2',
nds='$date1 un $date2',
nl='$date1 en $date2',
no='$date1 og $date2',
pl='$date1 i $date2',
pt='$date1 e $date2',
qu='$date1wan $date2pas',
ro='$date1 și $date2',
ru='$date1 и $date2',
sk='$date1 a $date2',
sl='$date1 in $date2',
sv='$date1 och $date2',
uk='$date1 та $date2',
ur='$date1 و $date2',
vi='$date1 và $date2',
['zh-hans']='$date1和$date2',
['zh-hant']='$date1和$date2',
default=function(date1, date2, state) return linguistic.conj({date1, date2}, state.lang, 'and') end,
},
-- ==========================================
-- === Prepositions =========================
-- ==========================================
['by'] = {
nDates = 1,
ar='حوالي $date1',
['be-tarask']={'да $date1', case={'gen',''}},
bn='$date1 কর্তৃক',
ca='vers $date1',
cs={'kolem $date1', case={'gen',''}},
da='mod $date1',
de='spätestens $date1',
el='έως $date1',
en='by $date1',
['en-gb']='by $date1',
['en-ca']='by $date1',
eo='ne post $date1',
es='para $date1',
et='hiljemalt $date1',
fa='توسط $date1',
fi={function(date1, state) return decYear(state,'fi','ill') .. '$date1 mennessä' end, case={'ill',''}},
fr='$date1 (au plus tard)',
gl='cara a $date1',
he='עד $date1',
hr='do $date1',
hsb={'do $date1', case={'gen',''}},
it='entro il $date1',
ja='$date1まで',
mk='кон $date1',
ml='$date1-ൽ',
nb='innen $date1',
nn='innan $date1',
nds='$date1 oder vördem al',
nl='tegen $date1',
no='innen $date1',
pl={'przed $date1', case={'ins',''}},
pt='por $date1',
qu="$date1 p'unchawkama",
ro='de $date1',
ru={'к $date1', case={'dat',''}},
sk={'okolo $date1', case={'gen',''}},
sl={function(date1, state) return 'najpozneje ' .. decYear(state,'sl','gen') .. ' $date1' end, case={'gen',''}},
sv='senast $date1',
uk={'до $date1', case={'dat',''}},
ur='توسط $date1',
vi='vào $date1', -- need to insert "đã" somewhere later in the sentence -->
['zh-hans']='$date1前后',
['zh-hant']='$date1前后',
default='<span style="color:red">by $date1</span>',
},
['before'] = {
nDates = 1,
ar='قبل $date1',
['be-tarask']={'перад $date1', case={'ins',''}},
bn='$date1-এর আগে',
bg='Преди $date1',
ca='abans $date1',
cs={'před $date1', case={'ins',''}},
da='før $date1',
de='vor $date1',
el='πριν από $date1',
en='before $date1',
['en-gb']='before $date1',
['en-ca']='before $date1',
eo='antaŭ $date1',
es='antes de $date1',
et='enne $date1',
fa='پیش از $date1',
fi={function(date1, state) return 'ennen ' .. decYear(state,'fi','ptv') .. '$date1' end, case={'ptv',''}},
fr='avant $date1',
gl='antes do $date1',
he='לפני $date1',
hr='prije $date1',
hsb={'do $date1', case={'gen',''}},
hu='$date1 előtt',
it='prima del $date1',
ja='$date1より前',
mk='пред $date1',
ml='$date1-നു മുമ്പ്',
nb='før $date1',
nn='før $date1',
nds='vör $date1',
nl='voor $date1',
no='før $date1',
pl={'przed $date1', case={'ins',''}},
pt='antes de $date1',
qu="$date1 p'unchaw ñawpan",
ro='înainte de $date1',
ru={'ранее $date1', case={'gen',''}},
sk={'pred $date1', case={'ins',''}},
sl={function(date1, state) return 'pred ' .. decYear(state,'sl','ins') .. ' $date1' end, case={'ins',''}},
sv='före $date1',
uk={'до $date1', case={'gen',''}},
ur='قبل $date1',
vi='trước $date1',
['zh-hans']='在$date1之前',
['zh-hant']='在$date1之前',
default='<span style="color:red">before $date1</span>',
},
['from'] = {
nDates = 1,
ar='من $date1',
['be-tarask']={'з $date1', case={'gen',''}},
bn='$date1 থেকে',
cs={'od $date1', case={'gen',''}},
de='Seit $date1',
el='από $date1',
en='from $date1',
['en-gb']='from $date1',
['en-ca']='from $date1',
eo='ekde $date1',
es='desde $date1',
et='alates $date1',
fa='از $date1',
fi={function(date1, state) return decYear(state,'fi','ela') .. '$date1 alkaen' end, case={'ela',''}},
fr= function(date1, state) return 'à partir '.. frOf[state.precision] ..' $date1' end,
gl='desde o $date1',
he='מ- $date1',
hr='od $date1',
hsb={'wot $date1', case={'gen',''}},
it='dal $date1',
ja='$date1から',
nds='vonaf $date1',
mk='од $date1',
nb='fra $date1',
nn='frå $date1',
ml='$date1 മുതൽ',
nl='vanaf $date1',
no='fra $date1',
pl={'od $date1', case={'gen',''}},
qu="$date1 p'unchawmanta",
ro='din $date1',
ru={'С $date1', case={'gen',''}},
sk={'od $date1', case={'gen',''}},
sl={function(date1, state) return 'od ' .. decYear(state,'sl','gen') .. ' $date1' end, case={'gen',''}},
sv='från $date1',
uk={'з $date1', case={'gen',''}},
ur='از $date1',
vi='từ $date1',
['zh-hans']='自$date1',
['zh-hant']='自$date1',
default='<span style="color:red">from $date1</span>',
},
['until'] = {
nDates = 1,
['be-tarask']={'усутыч да $date1', case={'gen',''}},
bn='$date1 পর্যন্ত',
cs={'do $date1', case={'gen', ''}},
de='bis $date1',
en='until $date1',
['en-gb']='until $date1',
['en-ca']='until $date1',
eo='ĝis $date1',
es='hasta $date1',
fr=function(date1, state)
if state.precision > 10 then -- precision > month
return "jusqu'au $date1"
else
return "jusqu'à $date1"
end
end,
hr='do $date1',
hsb={'do $date1', case={'gen',''}},
it='al $date1',
nb='til $date1',
nl='tot $date1',
nn='til $date1',
ml='$date1 വരെ',
pl={'do $date1', case={'gen',''}},
ru={'вплоть до $date1', case={'gen',''}},
sk={'do $date1', case={'gen', ''}},
uk={'аж до $date1', case={'gen',''}},
ur='تک $date1',
['zh-hans']='直到$date1',
['zh-hant']='直到$date1',
default='<span style="color:red">until $date1</span>',
},
['after'] = {
nDates = 1,
ar='بعد $date1',
['be-tarask']={'пасьля $date1', case={'gen',''}},
bn='$date1-এর পরে',
ca='desprès $date1',
cs={'po $date1', case={'loc',''}},
de='nach $date1',
da='efter $date1',
el='μετά από $date1',
en='after $date1',
['en-gb']='after $date1',
['en-ca']='after $date1',
eo='post $date1',
es='después de $date1',
et='pärast $date1',
fa='پس از $date1',
fi={function(date1, state) return decYear(state,'fi','gen') .. '$date1 jälkeen' end, case={'gen',''}},
fr='après $date1',
gl='despois do $date1',
he='לאחר $date1',
hr='nakon $date1',
hu='$date1 után',
hsb={'po $date1', case={'loc',''}},
it='dopo il $date1',
ja='$date1より後',
mk='по $date1',
ml='$date1-നു ശേഷം',
nb='etter $date1',
nn='etter $date1',
nds='na $date1',
nl='na $date1',
no='etter $date1',
pl={'po $date1', case={'loc',''}},
pt='após $date1',
qu="$date1 p'unchaw qhipan",
ro='după $date1',
ru={'после $date1', case={'gen',''}},
sk={'po $date1', case={'loc',''}},
sl={function(date1, state) return 'po ' .. decYear(state,'sl','loc') .. ' $date1' end, case={'loc',''}},
sv='efter $date1',
uk={'після $date1', case={'gen',''}},
ur='بعد $date1',
vi='sau $date1',
['zh-hans']='在$date1之后',
['zh-hant']='在$date1之後',
default='<span style="color:red">after $date1</span>',
},
-- ==========================================
-- === Adjectives ===========================
-- ==========================================
['early'] = {
nDates = 1,
ar='بداية $date1',
['be-tarask']={'пачатак $date1', case={'gen',''}},
bn='$date1-এর শুরুতে',
ca='al principi de $date1',
cs={'začátek $date1', case={'gen',''}},
da='tidlig $date1',
de='Anfang $date1',
el='αρχές του $date1',
en='early $date1',
['en-gb']='early $date1',
['en-ca']='early $date1',
eo='komence de $date1',
es='a principios de $date1',
et='$date1 algus',
fa='اوایل $date1',
fi={function(date1, state) return decYear(state,'fi','gen') .. '$date1 alku' end, case={'gen',''}},
fr='début $date1',
gl='a principios de $date1',
he='תחילת $date1',
hr='početak $date1',
hsb={'spočatk $date1', case={'gen',''}},
hu='$date1 elején',
it='inizio del $date1',
ja='$date1初頭',
mk='почеток на $date1',
ml='$date1 ആദ്യപാദം',
nb='tidlig $date1',
nn='tidleg $date1',
nds='Anfang $date1',
nl='begin $date1',
no='tidlig $date1',
pl={'początek $date1', case={'gen',''}},
pt='a princípios de $date1',
qu="$date1 ñawpaq p'unchawkunapi",
ro='începând cu $date1',
ru={'начало $date1', case={'gen',''}},
sk={'začiatok $date1', case={'gen',''}},
sl=function(date1, state)-- could actually be better should be "d'octobre à mars 2013' not "de octore 2013 à mars 2013"
if state.precision == 9 then -- precision > month
return 'zgodnje leto $date1'
else -- "DE septebmbre" / "D'octobre"
return 'zgodnji $date1'
end
end,
sv='början av $date1',
uk={'початок $date1', case={'gen',''}},
ur='ابتدا $date1',
vi='đầu năm $date1',
['zh-hans']='$date1早期',
['zh-hant']='$date1早期',
default='<span style="color:red">early $date1</span>',
},
['mid'] = {
nDates = 1,
ar='منتصف $date1',
['be-tarask']={'сярэдзіна $date1', case={'gen',''}},
bn='$date1-এর মাঝামাঝি',
ca='a mitjan $date1',
cs={'polovina $date1', case={'gen',''}},
da='midten af $date1',
de='Mitte $date1',
el='μέσα του $date1',
en='mid $date1',
['en-gb']='mid $date1',
['en-ca']='mid $date1',
eo='meze de $date1',
es='a mediados de $date1',
et='$date1 keskel',
fa='اواسط $date1',
fi={function(date1, state) return decYear(state,'fi','gen') .. '$date1 puoliväli' end, case={'gen',''}},
fr='mi $date1',
gl='a mediados de $date1',
he='אמצע $date1',
hr='sredina $date1',
hsb={'srjedź $date1', case={'gen',''}},
hu='$date1 közepén',
it='metà del $date1',
ja='$date1半ば',
mk='средина на $date1',
ml='$date1 മദ്ധ്യം',
nb='midten av $date1',
nn='midten av $date1',
nds='Midd $date1',
nl='midden $date1',
no='midten av $date1',
pl={'środek $date1', case={'gen',''}},
pt='meados de $date1',
qu="$date1 chawpin p'unchawkunapi",
ro='mijlocul lui $date1',
ru={'середина $date1', case={'gen',''}},
sk={'polovica $date1', case={'gen',''}},
sl={function(date1, state) return 'sredina ' .. decYear(state,'sl','gen') .. ' $date1' end, case={'gen',''}},
sv='mitten av $date1',
uk={'середина $date1', case={'gen',''}},
ur='وسط $date1',
vi='giữa năm $date1',
['zh-hans']='$date1中期',
['zh-hant']='$date1中期',
default='<span style="color:red">mid $date1</span>',
},
['late'] = {
nDates = 1,
ar='نهاية $date1',
bn='$date1-এর শেষে',
['be-tarask']={'канец $date1', case={'gen',''}},
ca='al final de $date1',
cs='konec $date1',
da='sen $date1',
de='Ende $date1',
el='τέλη του $date1',
en='late $date1',
['en-gb']='late $date1',
['en-ca']='late $date1',
eo='fine de $date1',
es='a fines de $date1',
et='$date1 lõpp',
fa='اواخر $date1',
fi={function(date1, state) return decYear(state,'fi','gen') .. '$date1 loppu' end, case={'gen',''}},
fr='fin $date1',
gl='a finais de $date1',
he='סוף $date1',
hr='kraj $date1',
hsb={'kónc $date1', case={'gen',''}},
hu='$date1 végén',
it='fine del $date1',
ja='$date1末',
mk='крајот на $date1',
ml='$date1 അന്ത്യപാദം',
nb='sent $date1',
no='seint $date1',
nds='Enn $date1',
nl='eind $date1',
no='sent $date1',
pl={'koniec $date1', case={'gen',''}},
pt='ao final de $date1',
qu="$date1 qhipaq p'unchawkunapi",
ro='sfârșitul lui $date1',
ru={'конец $date1', case={'gen',''}},
sk={'koniec $date1', case={'gen',''}},
sl={function(date1, state) return 'pozno ' .. decYear(state,'sl','gen') .. ' $date1' end, case={'gen',''}},
sv='slutet av $date1',
uk={'кінець $date1', case={'gen',''}},
ur='اخیر $date1',
vi='cuối năm $date1',
['zh-hans']='$date1晚期',
['zh-hant']='$date1晚期',
default='<span style="color:red">late $date1</span>',
},
['circa'] = {
nDates = 1,
ar='حوالي $date1',
['be-tarask']={'каля $date1', case={'gen',''}},
bn='প্রায় $date1',
ca='cap a $date1',
cs='cca $date1',
da='ca. $date1',
de='etwa $date1',
el='περ. $date1',
en='circa $date1',
['en-gb']='circa $date1',
['en-ca']='circa $date1',
eo='ĉirkaŭ $date1',
es='hacia $date1', -- suggestion use "hacia"/"hacia el" or leave the latin circa or ca.
et='ca. $date1',
fa='حوالی $date1', -- template:Circa used 'حدود $date1'
fi={function(date1, state) return 'suunnilleen ' .. decYear(state,'fi','ine') .. '$date1' end, case={'ine',''}}, -- template:Circa used 'noin $date1'
fr=function(date1, state)
if state.precision >= 11 then -- precision >= day
return 'vers le $date1'
else
return 'vers $date1'
end
end,
gl='entre $date1', -- template:Circa used 'cara a $date1'
he='בסביבות $date1',
hr='oko $date1',
hsb={'wokoło $date1', case={'gen',''}},
hu='$date1 körül',
it='$date1 circa',
ja='$date1頃',
ko='$date1경',
mk='~ $date1', -- template:Circa used 'o. $date1'
ml= 'ഉദ്ദേശം $date1',
nb='ca. $date1',
nn='ca. $date1',
nds='üm un bi $date1',
nl='ca. $date1',
no='ca. $date1',
pl={'około $date1', case={'gen',''}},
pt='cerca de $date1',
qu='$date1chá',
ro='circa $date1',
ru={'около $date1', case={'gen',''}},
sk='cca $date1',
sl={function(date1, state) return 'ok. ' .. decYear(state,'sl','gen') .. ' $date1' end, case={'gen',''}},
sv='c:a $date1', -- template:Circa used 'ca $date1'
uk={'близько $date1', case={'gen', ''}},
ur='قریباً $date1',
vi='vào khoảng $date1',
['zh-hans']='约$date1',
['zh-hant']='約$date1',
default='<span style="color:red">circa $date1</span>',
},
['uncertain'] = {
nDates = 1,
['zh-hans']='$date1(?)',
['zh-hant']='$date1(?)',
default='$date1 (?)',
},
probably = { -- see Q56644435
nDates = 1,
ast = 'probablemente $date1',
bn = 'সম্ভবত $date1',
ca = 'probablement $date1',
cs = 'pravděpodobně $date1',
de = 'wahrscheinlich $date1',
el = 'πιθανόν $date1',
en = 'probably $date1',
['en-gb']='probably $date1',
['en-ca']='probably $date1',
eo = 'probable $date1',
es = 'probable $date1',
fa = 'احتمالاً $date1',
fr = 'probablement $date1',
he = 'כפי הנראה $date1',
hu = 'feltehetőleg $date1',
it = 'probabile $date1',
mk = 'веројатно $date1',
ml = 'ഒരുപക്ഷേ $date1',
nl = 'waarschijnlijk $date1',
pl = 'prawdopodobnie $date1',
pt = 'provavelmente $date1',
ru = 'вероятно $date1',
sv = 'antagligen $date1',
default='<span style="color:red">probably $date1</span>',
},
possibly = { -- see Q30230067
nDates = 1,
ast = 'posiblemente $date1',
bn = 'যথাসম্ভব $date1',
cs = 'možná $date1',
de = 'möglicherweise $date1',
en = 'possibly $date1',
['en-gb']='possibly $date1',
['en-ca']='possibly $date1',
eo = 'eble $date1',
el = 'πιθανόν $date1',
fa = 'احتمالاً $date1',
fr = 'peut-être $date1',
hu = 'talán $date1',
mk = 'можеби $date1',
ml = 'മിക്കവാറും $date1',
nl = 'mogelijk $date1',
pl = 'być może $date1',
pt = 'possivelmente $date1',
ro = 'poate $date1',
ru = 'возможно $date1',
sv = 'möjligen $date1',
default='<span style="color:red">possibly $date1</span>',
},
presumably = { -- see Q18122778
nDates = 1,
ast = 'presumiblemente $date1',
de = 'vermutlich $date1',
en = 'presumably $date1',
['en-gb']='presumably $date1',
['en-ca']='presumably $date1',
fr = 'présumé $date1',
it = 'presumibilmente $date1',
ml = 'ഊഹപ്രകാരം $date1',
ru = 'предположительно $date1',
pl = 'przypuszczalnie $date1',
default='<span style="color:red">presumably $date1</span>',
},
['year unknown']= {
nDates = 0,
ca='Any desconegut',
['be-tarask']='Год невядомы',
bn='অজানা বছর',
cs='neznámý rok',
de='Jahr unbekannt',
el='άγνωστο έτος',
en='year unknown',
['en-gb']='year unknown',
['en-ca']='year unknown',
eo='jaro nesciata',
es='Año desconocido',
fa='سال نامعلوم',
fi='tuntematon vuosi',
fr='Année inconnue',
he='שנה לא ידועה',
hsb='lěto njeznate',
hr='nepoznata godina',
it='anno sconosciuto',
ja='年代不明',
la='Sine anno',
ml='വർഷം ലഭ്യമല്ല',
mk='непозната година',
nb='ukjent år',
nn='ukjent år',
nl='zonder jaar',
no='ukjent år',
pl='rok nieznany',
qu='Mana riqsisqa wata',
ru='Год неизвестен',
sk='neznámy rok',
sl='neznano leto',
sv='Okänt år',
uk='рік невідомий',
ur='سال نامعلوم',
vi='không rõ năm',
['zh-hans']='年份未知',
['zh-hant']='年份未知',
default='<span style="color:red">year unknown</span>',
},
-- ==========================================
-- === Parts of a whole =====================
-- ==========================================
['firsthalf'] = {
nDates = 1,
ar='النصف الأول من $date1',
['be-tarask']={'першая палова $date1', case={'gen',''}},
bn='$date1-এর প্রথমার্ধ',
ca='1a meitat de $date1',
cs={'1. polovina $date1', case={'gen',''}},
da='1. halvdel af $date1',
de='1. Hälfte $date1',
el='πρώτο μισό του $date1',
en='first half of $date1',
['en-gb']='first half of $date1',
['en-ca']='first half of $date1',
eo='unua duono de $date1',
es='primera mitad de $date1',
et='$date1 esimene pool',
fa='نیمهٔ نخست $date1',
fi={function(date1, state) return decYear(state,'fi','gen') .. '$date1 alkupuolisko' end, case={'gen',''}},
fr='1<sup>re</sup> moitié de $date1',
gl='primeira metade de $date1',
he='במחצית הראשונה של $date1',
hsb={'prěnja połojca $date1', case={'gen',''}},
hu='$date1 első felében',
hr='prva polovina $date1',
it='prima metà del $date1',
ja='$date1上半期',
mk='прва половина на $date1',
ml='$date1 ആദ്യപകുതി',
nb='første halvdel av $date1',
nn='fyrste halvdelen av $date1',
nds='1. Helft $date1',
nl='eerste helft $date1',
no='første halvdel av $date1',
pl={'pierwsza połowa $date1', case={'gen',''}},
pt='primeira metade de $date1',
qu='$date1 ñawpaq kuskanpi',
ro='prima jumătate a lui $date1',
ru={'первая половина $date1', case={'gen',''}},
sk={'1. polovica $date1', case={'gen',''}},
sl={function(date1, state) return 'prva polovica ' .. decYear(state,'sl','gen') .. ' $date1' end, case={'gen',''}},
sv='första halvan av $date1',
uk={'перша половина $date1', case={'gen',''}},
ur='نصف اول $date1',
vi='nửa đầu năm $date1',
['zh-hans']='$date1上半期',
['zh-hant']='$date1上半期',
default='<span style="color:red">first half of $date1</span>',
},
['secondhalf'] = {
nDates = 1,
ar='النصف الثاني من $date1',
['be-tarask']={'другая палова $date1', case={'gen',''}},
bn='$date1-এর দ্বিতীয়ার্ধ',
ca='2a meitat de $date1',
cs={'2. polovina $date1', case={'gen',''}},
da='2. halvdel af $date1',
de='2. Hälfte $date1',
el='δεύτερο μισό του $date1',
en='second half of $date1',
['en-gb']='second half of $date1',
['en-ca']='second half of $date1',
eo='dua duono de $date1',
es='segunda mitad de $date1',
et='$date1 teine pool',
fa='نیمهٔ دوم $date1',
fi={function(date1, state) return decYear(state,'fi','gen') .. '$date1 loppupuolisko' end, case={'gen',''}},
fr='2<sup>e</sup> moitié de $date1',
gl='segunda metade de $date1',
he='במחצית השנייה של $date1',
hsb={'druha połojca $date1', case={'gen',''}},
hr='druga polovina $date1',
hu='$date1 második felében',
it='seconda metà del $date1',
ja='$date1下半期',
mk='втора половина на $date1',
ml='$date1 രണ്ടാം പകുതി',
nb='andre halvdel av $date1',
nn='andre halvdelen av $date1',
nds='2. Helft vun $date1',
nl='tweede helft $date1',
no='andre halvdel av $date1',
pl={'druga połowa $date1', case={'gen',''}},
pt='segunda metade de $date1',
qu='$date1 qhipaq kuskanpi',
ro='a doua jumătate a lui $date1',
ru={'вторая половина $date1', case={'gen',''}},
sk={'2. polovica $date1', case={'gen',''}},
sl={'druga polovica {{IfNum | $date0 | leta}} $date1', case={'gen',''}},
sv='andra halvan av $date1',
uk={'друга половина $date1', case={'gen',''}},
ur='نصف آخر $date1',
vi='nửa cuối năm $date1',
['zh-hans']='$date1下半期',
['zh-hant']='$date1下半期',
default='<span style="color:red">second half of $date1</span>',
},
['1quarter']= {
nDates = 1,
bn='$date1-এর প্রথম ত্রৈমাসিক',
['be-tarask']={'першая чвэрць $date1', case={'gen',''}},
cs={'1. čtvrtina $date1', case={'gen',''}},
de='erstes Viertel $date1',
en='first quarter of $date1',
['en-gb']='first quarter of $date1',
['en-ca']='first quarter of $date1',
eo='unua kvarono de $date1',
es='primer cuarto del $date1',
fa='ربع نخست $date1',
fi={function(date1, state) return decYear(state,'fi','gen') .. '$date1 ensimmäinen neljännes' end, case={'gen',''}},
fr= function(date1, state) return 'premier quart '.. frOf[state.precision] ..' $date1' end,
he='רבעון ראשון של $date1',
hsb={'prěnja štwórćina $date1', case={'gen',''}},
hr='prva četvrtina $date1',
it='primo quarto del $date1',
ja='$date1第1四半期',
ml='$date1 ഒന്നാം ത്രൈമാസം',
nb='første kvartal av $date1',
nl='eerste kwart $date1',
nn='fyrste kvartalet av $date1',
no='første kvartal av $date1',
pl={'pierwsza ćwiartka $date1', case={'gen',''}},
qu='$date1 ñawpaq ñiqin tawa phatmanpi',
ru={'первая четверть $date1', case={'gen',''}},
sk={'1. štvrtina $date1', case={'gen',''}},
sl={'prva četrtina {{IfNum | $date0 | leta}} $date1', case={'gen',''}},
sl={function(date1, state) return 'prva četrtina ' .. decYear(state,'sl','gen') .. ' $date1' end, case={'gen',''}},
sv='första kvartalet av $date1',
uk={'1-ша чверть $date1', case={'gen',''}},
ur='پہلی سہ ماہی $date1',
vi='quý 1 năm $date1',
['zh-hans']='$date1第一季度',
['zh-hant']='$date1第一季度',
default='<span style="color:red">first quarter of $date1</span>',
},
['2quarter']= {
nDates = 1,
['be-tarask']={'другая чвэрць $date1', case={'gen',''}},
bn='$date1-এর দ্বিতীয় ত্রৈমাসিক',
cs={'2. čtvrtina $date1', case={'gen',''}},
de='zweites Viertel $date1',
en='second quarter of $date1',
['en-gb']='second quarter of $date1',
['en-ca']='second quarter of $date1',
eo='dua kvarono de $date1',
es='segundo cuarto del $date1',
fa='ربع دوم $date1',
fi={function(date1, state) return decYear(state,'fi','gen') .. '$date1 toinen neljännes' end, case={'gen',''}},
fr= function(date1, state) return 'deuxième quart '.. frOf[state.precision] ..' $date1' end,
he='רבעון שני של $date1',
hsb={'druha štwórćina $date1', case={'gen',''}},
hr='druga četvrtina $date1',
it='secondo quarto del $date1',
ja='$date1第2四半期',
ml='$date1 രണ്ടാം ത്രൈമാസം',
nb='andre kvartal av $date1',
nl='tweede kwart $date1',
nn='andre kvartalet av $date1',
no='andre kvartal av $date1',
pl={'druga ćwiartka $date1', case={'gen',''}},
qu='$date1 iskay ñiqin tawa phatmanpi',
ru={'вторая четверть $date1', case={'gen',''}},
sk={'2. štvrtina $date1', case={'gen',''}},
sl={function(date1, state) return 'druga četrtina ' .. decYear(state,'sl','gen') .. ' $date1' end, case={'gen',''}},
sv='andra kvartalet av $date1',
uk={'2-га чверть $date1', case={'gen',''}},
ur='دوسری سہ ماہی $date1',
vi='quý 2 năm $date1',
['zh-hans']='$date1第二季度',
['zh-hant']='$date1第二季度',
default='<span style="color:red">second quarter of $date1</span>',
},
['3quarter']= {
nDates = 1,
['be-tarask']={'трэцяя чвэрць $date1', case={'gen',''}},
bn='$date1-এর তৃতীয় ত্রৈমাসিক',
cs={'3. čtvrtina $date1', case={'gen',''}},
de='drittes Viertel $date1',
en='third quarter of $date1',
['en-gb']='third quarter of $date1',
['en-ca']='third quarter of $date1',
eo='tria kvarono de $date1',
es='tercer cuarto del $date1',
fa='ربع سوم $date1',
fi={function(date1, state) return decYear(state,'fi','gen') .. '$date1 kolmas neljännes' end, case={'gen',''}},
fr= function(date1, state) return 'troisième quart '.. frOf[state.precision] ..' $date1' end,
he='רבעון שלישי של $date1',
hsb={'třeća štwórćina $date1', case={'gen',''}},
hr='treća četvrtina $date1',
it='terzo quarto del $date1',
ja='$date1第3四半期',
ml='$date1 മൂന്നാം ത്രൈമാസം',
nb='tredje kvartal av $date1',
nl='derde kwart $date1',
nn='tredje kvartalet av $date1',
no='tredje kvartal av $date1',
pl={'trzecia ćwiartka $date1', case={'gen',''}},
qu='$date1 kimsa ñiqin tawa phatmanpi',
sk={'3. štvrtina $date1', case={'gen',''}},
sl={function(date1, state) return 'tretja četrtina ' .. decYear(state,'sl','gen') .. ' $date1' end, case={'gen',''}},
ru={'третья четверть $date1', case={'gen',''}},
sv='tredje kvartalet av $date1',
uk={'3-тя чверть $date1', case={'gen',''}},
ur='تیسری سہ ماہی $date1',
vi='quý 3 năm $date1',
['zh-hans']='$date1第三季度',
['zh-hant']='$date1第三季度',
default='<span style="color:red">third quarter of $date1</span>',
},
['4quarter']= {
nDates = 1,
['be-tarask']={'чацьвёртая чвэрць $date1', case={'gen',''}},
bn='$date1-এর চতুর্থ ত্রৈমাসিক',
cs={'4. čtvrtina $date1', case={'gen',''}},
de='letztes Viertel $date1',
en='fourth quarter of $date1',
['en-gb']='fourth quarter of $date1',
['en-ca']='fourth quarter of $date1',
eo='kvara kvarono de $date1',
es='último cuarto del $date1',
fa='ربع چهارم $date1',
fi={function(date1, state) return decYear(state,'fi','gen') .. '$date1 viimeinen neljännes' end, case={'gen',''}},
fr= function(date1, state) return 'quatrième quart '.. frOf[state.precision] ..' $date1' end,
he='רבעון רביעי של $date1',
hsb={'poslednja štwórćina $date1', case={'gen',''}},
hr='četvrta četvrtina $date1',
it='quarto quarto del $date1',
ja='$date1第4四半期',
ml='$date1 നാലാം ത്രൈമാസം',
nb='fjerde kvartal av $date1',
nl='vierde kwart $date1',
nn='tredje kvartalet av $date1',
no='fjerde kvartal av $date1',
pl={'czwarta ćwiartka $date1', case={'gen',''}},
qu='$date1 qhipaq ñiqin tawa phatmanpi',
ru={'последняя четверть $date1', case={'gen',''}},
sk={'4. štvrtina $date1', case={'gen',''}},
sl={function(date1, state) return 'zadnja četrtina ' .. decYear(state,'sl','gen') .. ' $date1' end, case={'gen',''}},
sv='fjärde kvartalet av $date1',
uk={'4-та чверть $date1', case={'gen',''}},
ur='چوتھی سہ ماہی $date1',
vi='quý 4 năm $date1',
['zh-hans']='$date1第四季度',
['zh-hant']='$date1第四季度',
default='<span style="color:red">forth quarter of $date1</span>',
},
-- ==========================================
-- === Seasons ==============================
-- ==========================================
['spring'] = {
nDates = 1,
ar='ربيع $date1',
['be-tarask']='вясна $date1',
bn='বসন্তকাল $date1',
ca='primavera $date1',
cs={'jaro $date1', case={'gen', ''}},
da='Forår $date1',
de='Frühling $date1',
en='Spring $date1',
['en-gb']='Spring $date1',
['en-ca']='Spring $date1',
eo='printempo $date1',
es='primavera de $date1',
et='$date1 kevad',
fa='بهار $date1',
fi='Kevät $date1',
fr='printemps $date1',
gl='primavera $date1',
he='אביב $date1',
hr='proljeće $date1',
hsb='nalěćo $date1',
hu='$date1 tavasza',
it='primavera $date1',
ja='{{#if:$date1|$date1年}}春',
mk='пролет $date1',
ml='$date1 വസന്തം',
nb='våren $date1',
nds='Vörjohr $date1',
nn='våren $date1',
nl='voorjaar $date1',
no='våren $date1',
pl='wiosna $date1',
pt='primavera de $date1',
ro='primăvara lui $date1',
ru='весна $date1',
sk={'jar $date1', case={'gen', ''}},
sl='pomlad $date1',
sv='våren $date1',
uk='весна $date1',
ur='بہار $date1',
vi='mùa đông năm $date1',
['zh-hans']='{{#if:$date1|$date1年}}春季',
['zh-hant']='{{#if:$date1|$date1年}}春季',
default='<span style="color:red">Spring $date1</span>',
},
['summer'] = {
nDates = 1,
ar='صيف $date1',
['be-tarask']='лета $date1',
bn='গ্রীষ্মকাল $date1',
ca='estiu $date1',
cs={'léto $date1', case={'gen', ''}},
da='Sommer $date1',
de='Sommer $date1',
en='Summer $date1',
['en-gb']='Summer $date1',
['en-ca']='Summer $date1',
eo='somero $date1',
es='verano de $date1',
et='$date1 suvi',
fa='تابستان $date1',
fi='Kesä $date1',
fr='été $date1',
gl='verán $date1',
he='קיץ $date1',
hr='ljeto $date1',
hsb='lěćo $date1',
hu='$date1 nyara',
it='estate $date1',
ja='{{#if:$date1|$date1年}}夏',
mk='лето $date1',
ml='$date1 വേനൽ',
nb='sommeren $date1',
nds='Sommer $date1',
nn='sumaren $date1',
nl='zomer $date1',
no='sommeren $date1',
pl='lato $date1',
pt='verão de $date1',
ro='vara lui $date1',
ru='лето $date1',
sk={'leto $date1', case={'gen', ''}},
sl='poletje $date1',
sv='sommaren $date1',
uk='літо $date1',
ur='گرما $date1',
vi='mùa hè năm $date1',
['zh-hans']='{{#if:$date1|$date1年}}夏季',
['zh-hant']='{{#if:$date1|$date1年}}夏季',
default='<span style="color:red">Summer $date1</span>',
},
['autumn'] = {
nDates = 1,
ar='خريف $date1',
['be-tarask']='восень $date1',
bn='শরত্কাল $date1',
ca='tardor $date1',
cs={'podzim $date1', case={'gen', ''}},
da='Efterår $date1',
de='Herbst $date1',
en='Autumn $date1',
['en-gb']='Autumn $date1',
['en-ca']='Autumn $date1',
eo='aŭtuno $date1',
es='otoño de $date1',
et='$date1 sügis',
fa='پاییز $date1',
fi='Syksy $date1',
fr='automne $date1',
gl='outono $date1',
he='סתיו $date1',
hr='jesen $date1',
hsb='nazyma $date1',
hu='$date1 ősze',
it='autunno $date1',
ja='{{#if:$date1|$date1年}}秋',
mk='есен $date1',
ml='$date1 ശരത്കാലം',
nb='høsten $date1',
nds='Harvst $date1',
nn='hausten $date1',
nl='herfst $date1',
no='høsten $date1',
pl='jesień $date1',
pt='outono de $date1',
ro='toamna lui $date1',
ru='осень $date1',
sk={'jeseň $date1', case={'gen', ''}},
sl='jesen $date1',
sv='hösten $date1',
uk='осінь $date1',
ur='خزاں $date1',
vi='mùa thu năm $date1',
['zh-hans']='{{#if:$date1|$date1年}}秋季',
['zh-hant']='{{#if:$date1|$date1年}}秋季',
default='<span style="color:red">Autumn $date1</span>',
},
['winter'] = {
nDates = 1,
ar='شتاء $date1',
['be-tarask']='зіма $date1',
bn='শীতকাল $date1',
ca='hivern $date1',
cs={'zima $date1', case={'gen', ''}},
da='Vinter $date1',
de='Winter $date1',
en='Winter $date1',
['en-gb']='Winter $date1',
['en-ca']='Winter $date1',
eo='vintro $date1',
es='invierno de $date1',
et='$date1 talv',
fa='زمستان $date1',
fi='Talvi $date1',
fr='hiver $date1',
gl='inverno $date1',
he='חורף $date1',
hr='zima $date1',
hsb='zyma $date1',
hu='$date1 tele',
it='inverno $date1',
ja='{{#if:$date1|$date1年}}冬',
mk='зима $date1',
ml='$date1 ശൈത്യകാലം',
nds='Winter $date1',
nl='winter $date1',
nb='vinteren $date1',
nn='vinteren $date1',
no='vinteren $date1',
pl='zima $date1',
pt='inverno de $date1',
ro='iarna lui $date1',
ru='зима $date1',
sk={'zima $date1', case={'gen', ''}},
sl='zima $date1',
sv='vintern $date1',
uk='зима $date1',
ur='سرما $date1',
vi='mùa đông năm $date1',
['zh-hans']='{{#if:$date1|$date1年}}冬季',
['zh-hant']='{{#if:$date1|$date1年}}冬季',
default='<span style="color:red">Winter $date1</span>',
},
-- ==========================================
-- === Decade/Century/Millennium ============
-- ==========================================
['decade'] = {
nDates = 1,
ar='أعوام $date1',
['be-tarask']='$date1-я гады',
bn='$date1-এর দশক',
ca='dècada del $date1',
cs=function(date1, state) return ((date1 % 100 == 0) and 'první dekáda' or ((date1 % 100) .. '. léta')) .. ' ' .. (math.floor(date1 / 100) + 1) .. '. století' end,
da="$date1'erne",
de='$date1er-Jahre',
el='δεκαετία του $date1',
en='$date1s',
['en-gb']='$date1s',
['en-ca']='$date1s',
eo='$date1-aj jaroj',
es='años $date1',
et='$date1ndad',
fa='دههٔ $date1',
fi='$date1-luvulla',
fr='années $date1',
gl='anos $date1',
he='שנות ה-$date1',
hr='$date1-ih',
hsb='$date1te lěta',
hu='$date1-s évek',
it="{{#ifexpr: $date1 mod 100 = 0 | primo decennio del {{Roman|{{#expr: ($date1 / 100) + 1}}}} sec. | anni '{{#expr: $date1 mod 100 }} del {{Roman|{{#expr: floor($date1 / 100) + 1}}}} sec.}}",
ja='$date1年代',
mk='$date1-ти',
ml='ദശകം $date1-ൽ',
nb='$date1-årene',
nn='$date1-åra',
nds='Johren $date1',
nl='jaren $date1',
no='$date1-årene',
pl=function(date1, state)
local str = 'lata '..(date1 % 100)..'. '
if (date1 % 100 == 0) then
str = 'pierwsza dekada '
elseif (date1 % 100 == 10) then
str = 'druga dekada '
end
return str .. Roman(math.floor(date1 / 100) + 1) .. ' wieku'
end,
pt='década de $date1',
qu='$date1 watakuna',
ro='anii $date1',
ru='$date1-е годы',
sk=function(date1, state) return ((date1 % 100 == 0) and 'prvé desaťročie' or ((date1 % 100) .. '. roky')) .. ' ' .. (math.floor(date1 / 100) + 1) .. '. storočia' end,
sl='$date1-ta leta',
sv='$date1-talet{{#switch:$date1|1300|1400|1500|1600|1700|1800|1900|2000|2100= (decennium)}}',
uk='$date1-ті роки',
ur='دہائی $date1',
vi='thập niên $date1',
['zh-hans']='$date1年代',
['zh-hant']='$date1年代',
default='<span style="color:red">$date1s</span>',
},
['century'] = {
nDates = 1,
ar='القرن $date1',
['be-tarask']=function(date1, state) return Ordinal(date1, 'be-tarask') .. ' стагодзьдзе' end,
bn=function(date1, state) return Ordinal(date1, 'bn') .. ' শতাব্দী' end,
ca='segle {{small-caps|{{lc:{{Roman year|$date1}}}}}}',
cs='$date1. století',
da='$date1. århundrede',
de='$date1. Jahrhundert',
el='$date1ος αιώνας',
en=function(date1, state) return Ordinal(date1, 'en') .. ' century' end,
['en-gb']=function(date1, state) return Ordinal(date1, 'en-gb') .. ' century' end,
['en-ca']=function(date1, state) return Ordinal(date1, 'en-ca') .. ' century' end,
eo='$date1-a jarcento',
es=function(date1, state) return 'siglo ' .. Roman(date1) end,
et='$date1. sajand',
fa='سدهٔ $date1',
fi='{{#expr: ($date1 - 1) * 100}}-luvulla',
fr=function(date1, state) return Ordinal(date1, 'fr', 'roman', 'm') .. ' siècle' end,
gl=function(date1, state) return 'século ' .. Roman(date1) end,
he='המאה ה-$date1',
hr='$date1. stoljeće',
hsb='$date1. lětstotk',
hu='$date1. évszázad',
it=function(date1, state) return Roman(date1) .. ' sec.' end,
ja='$date1世紀',
la='saeculum $date1',
mk=function(date1, state) return Roman(date1) .. ' век' end,
ml='$date1-ആം നൂറ്റാണ്ട്',
nb=function(date1, state) return Ordinal(date1, 'nb') .. ' århundre' end,
nn=function(date1, state) return 'det ' .. Ordinal(date1, 'no') .. ' århundre' end,
nds='$date1. Johrhunnert',
nl='$date1e eeuw',
no=function(date1, state) return Ordinal(date1, 'no') .. ' århundre' end,
pl=function(date1, state) return Roman(date1) .. ' ' .. decCentury('pl',state.case) end,
pt=function(date1, state) return 'século ' .. Roman(date1) end,
qu='$date1 ñiqin pachakwata',
ro='secolul al $date1-lea',
ru=function(date1, state) return Roman(date1) .. ' век' end,
sk='$date1. storočie',
sl=function(date1, state) return Ordinal(date1, 'sl') .. '. stoletje' end,
sv='{{#expr:$date1 - 1}}00-talet',
tt=function(date1, state) return Roman(date1) .. ' гасыр' end,
uk=function(date1, state) return Roman(date1) .. ' ст.' end,
ur='صدی $date1',
vi='thế kỷ $date1',
['zh-hans']='$date1世纪',
['zh-hant']='$date1世紀',
default='<span style="color:red">$date1 century</span>',
},
['millennium'] = {
nDates = 1,
['be-tarask']=function(date1, state) return Ordinal(date1, 'be-tarask') .. ' тысячагодзьдзе' end,
bn=function(date1, state) return Ordinal(date1, 'bn') .. ' সহস্রাব্দ' end,
cs='$date1. tisíciletí',
de='$date1. Jahrtausend',
en=function(date1, state) return Ordinal(date1, 'en') .. ' millennium' end,
['en-gb']=function(date1, state) return Ordinal(date1, 'en-gb') .. ' millennium' end,
['en-ca']=function(date1, state) return Ordinal(date1, 'en-ca') .. ' millennium' end,
eo='$date1-a jarmilo',
es=function(date1, state) return Roman(date1) .. ' milenio' end,
fa=function(date1, state) return 'هزارهٔ ' .. Ordinal(date1, 'fa') end,
fr=function(date1, state) return Ordinal(date1, 'fr', 'roman', 'm') .. ' millénaire' end,
hr='$date1. tisućljeće',
hsb='$date1. lěttysac',
it=function(date1, state) return Roman(date1) .. ' millennio' end,
ja='$date1千年紀',
la='millennium $date1',
ml='$date1-മത്തെ സഹസ്രാബ്ദം',
nb=function(date1, state) return Ordinal(date1, 'nb') .. ' årtusen' end,
nn=function(date1, state) return Ordinal(date1, 'no') .. ' tusenår' end,
nl='$date1e millennium',
no=function(date1, state) return Ordinal(date1, 'no') .. ' årtusen' end,
pl=function(date1, state) return Roman(date1) .. ' ' .. decMillennium('pl',state.case) end,
pt=function(date1, state) return Roman(date1) .. ' milénio' end,
qu='$date1 ñiqin waranqawata',
ru=function(date1, state) return Roman(date1) .. ' тысячелетие' end,
sk='$date1. tisícročie',
sl=function(date1, state) return Ordinal(date1, 'sl') .. '. tisočletje' end,
sv=function(date1, state) return Ordinal(date1, 'sv') .. ' årtusendet' end,
uk=function(date1, state) return Roman(date1) .. ' тис.' end,
ur=function(date1, state) return 'ہزارہ ' .. Ordinal(date1, 'ur') end,
vi='thiên niên kỷ $date1',
['zh-hans']=function(date1, state) return Ordinal(date1, 'zh-hans') .. '千年' end,
['zh-hant']=function(date1, state) return Ordinal(date1, 'zh-hant') .. '千年' end,
--default='{{Please translate|$date1 millennium|Module:I18n/complex date}}',
default='<span style="color:red">$date1 millennium</span>',
},
['million'] = {
de = '$date1 Millionen Jahre',
en = '$date1 million years',
['en-gb'] = '$date1 million years',
['en-ca'] = '$date1 million years',
eo = '$date1 milionoj da jaroj',
es = '$date1 millones de años',
nl = '$date1e miljoen jaar',
fr = '$date1 millions d’années',
it = '$date1 milioni di anni',
ml = function(date1, state)
if date1 >= 10 then
return (date1 / 10) .. ' കോടി വർഷങ്ങൾ' -- 100 lakh = 1 crore
else
return (date1 * 10) .. ' ലക്ഷം വർഷങ്ങൾ'
end
end,
nb = '$date1 millioner år',
nl = '$date1 miljoen jaar',
nn = '$date1 millionar år',
pl = '$date1 milionów lat',
pt = '$date1 milhões de anos',
ru = '$date1 миллиона лет',
uk = '$date1 мільйони років',
ur = '$date1 ملین سال',
['zh-hans'] = '$date1百万年',
['zh-hant'] = '$date1百万年',
default='<span style="color:red">$date1 million years</span>',
nDates = 1,
},
['billion'] = {
de = '$date1 Milliarden Jahre',
en = '$date1 billion years',
['en-gb'] = '$date1 billion years',
['en-ca'] = '$date1 billion years',
es = '$date1 mil millones de años',
nl = '$date1e miljard jaar',
fr = '$date1 milliard d’années',
it = '$date1 miliardi di anni',
ml = function(date1, state) return (date1 * 10) .. ' കോടി വർഷങ്ങൾ' end,
nb = '$date1 milliarder år',
nl = '$date1 miljard jaar',
nn = '$date1 milliardar år',
pl = '$date1 miliardów lat',
pt = '$date1 mil milhões de anos',
ru = '$date1 миллиардов лет',
uk = '$date1 мільярдів років',
ur = '$date1 بلین سال',
['zh-hans'] = '$date1十亿年',
['zh-hant'] = '$date1十億年',
default='<span style="color:red$date1 billion years</span>',
nDates = 1,
},
-- ==========================================
-- === Complex phrases ======================
-- ==========================================
-- Phrases which for some languages can be build out of simpler phrases
-- Their "default" state, used when no translation in the requested language was found, returns a "state" like
-- table which is used to call the function again and built the phrase out of simple phrases
-- $date1 - original date - 1
-- $date2 - original date
-- if era is BC than $date1 and $date2 are swapped
['turn of the century'] = {
nDates = 2,
['be-tarask']=function(date1, date2, state) return 'канец ' .. Roman(date1) ..' — пачатак ' .. Roman(date2) ..' стагодзьдзя' end,
bn=function(date1, date2, state) return '$date1/' .. Ordinal(date2, 'bn') .. ' শতাব্দীর পালাবদলে' end,
cs='přelom $date1. a $date2. století',
de=function(date1, date2, state) return 'Jahrhundertwende $date1/' .. Ordinal(date2, 'de') end,
en=function(date1, date2, state) return 'turn of the $date1/' .. Ordinal(date2, 'en') .. ' century' end,
['en-gb']=function(date1, date2, state) return 'turn of the $date1/' .. Ordinal(date2, 'en-gb') .. ' century' end,
['en-ca']=function(date1, date2, state) return 'turn of the $date1/' .. Ordinal(date2, 'en-ca') .. ' century' end,
eo='ŝanĝo de la $date1-a al la $date2-a jarcentoj',
es=function(date1, date2, state) return 'hacia finales del siglo ' .. Roman(date1) .. ' y principios del siglo ' .. Roman(date2) .. '' end,
fi='{{#expr: $date1 * 100-100}}-luvun loppu ja {{#expr: $date2 * 100-100}}-luvun alku',
fr=function(date1, date2, state) return 'fin du ' .. Ordinal(date1, 'fr', 'roman', 'm') .. ' siècle / début du ' .. Ordinal(date2, 'fr', 'roman', 'm') end,
hr='kraj $date1. i početak $date2. stoljeća',
hsb=function(date1, date2, state) return 'přechod ' .. Roman(date1) ..' do ' .. Roman(date2) ..' lětstotka' end,
it=function(date1, date2, state) return 'fine del ' .. Roman(date1) .. ' sec. e inizio del ' .. Roman(date2) .. ' sec.' end,
ja='$date1世紀から$date2世紀への変わり目',
ml='$date1 നൂറ്റാണ്ട് അവസാനവും $date2 നൂറ്റാണ്ട് ആദ്യവും',
nb=function(date1, date2, state) return 'slutten av det ' .. Ordinal(date1, 'nb') .. ' århundre/begynnelsen av det ' .. Ordinal(date2, 'nb') .. ' århundre' end,
nl=function(date1, date2, state) return 'eind $date1e/begin $date2e eeuw' end,
nn=function(date1, date2, state) return 'slutten av det ' .. Ordinal(date1, 'nn') .. ' hundreåret/byrjinga av det ' .. Ordinal(date2, 'nn') .. ' hundreåret' end,
pl=function(date1, date2, state) return 'przełom ' .. Roman(date1) ..' i ' .. Roman(date2) ..' wieku' end,
qu="$date1 ñiqin waranqawatamanta $date2 ñiqin waranqawataman t'ikrasqanpi",
ru=function(date1, date2, state) return 'конец ' .. Roman(date1) ..' — начало ' .. Roman(date2) ..' века' end,
sk='prelom $date1. a $date2. storočia',
sl=function(date1, date2, state) return 'pozno ' .. Ordinal(date1, 'sl') .. '. in zgodnje ' .. Ordinal(date2, 'sl') .. '. stoletje' end,
sv=function(date1, date2, state) return '$date1/' .. Ordinal(date2, 'sv') .. ' årtusendets sekelskifte' end,
uk=function(date1, date2, state) return 'кін. ' .. Roman(date1) ..' ст. — поч. ' .. Roman(date2) ..' ст.' end,
vi='bước sang thế kỷ $date2',
['zh-hans']=function(date1, date2, state) return '$date1世纪末' .. Ordinal(date2, 'zh-hans') .. '世纪初' end,
['zh-hant']=function(date1, date2, state) return '$date1世紀末' .. Ordinal(date2, 'zh-hant') .. '世紀初' end,
default=function(date1, date2, state) return {conj='and', adj1 = 'late', unit1='century', era1=state.era1, adj2 = 'early', unit2='century', era2=state.era2} end,
},
-- $date1 - original date - 10
-- $date2 - original date
-- if era is BC than $date1 and $date2 are swapped
['turn of the decade']={
nDates = 2,
['be-tarask']='канец $date1-х — пачатак $date2-х гг.',
bn='$date1-এর দশকের শেষে এবং $date2-এর দশকের শুরুতে',
cs=function(date1, date2, state)
local decade1 = math.floor((date1 % 100) / 10)
local decade2 = math.floor((date2 % 100) / 10)
local century1 = math.floor( date1 / 100) + 1
local century2 = math.floor( date2 / 100) + 1
if decade1 == 0 and date1 < date2 then
return "přelom 1. a 2. dekády " .. century1 .. ". století"
elseif decade2 == 0 and date2 < date1 then
return "přelom 9. a 10. dekády " .. century1 .. ". století"
elseif (decade1 == 9 and date1 < date2) or (decade2 == 9 and date2 < date1) then
return "přelom " .. century1 .. ". a " .. century2 .. ". století"
else
return "přelom " .. decade1 .. "0. a " .. decade2 .. "0. let " .. century1 .. ". století"
end
end,
de='späte $date1er und frühe $date2er',
en='late $date1s and early $date2s',
['en-gb']='late $date1s and early $date2s',
['en-ca']='late $date1s and early $date2s',
eo='ŝanĝo de la $date1-a al la $date2-a jardekoj',
es='finales de los años $date1 y principios de los años $date2',
fa='اواخر دههٔ $date1 و اوایل دههٔ $date2',
fi='$date1-luvun loppu ja $date2-luvun alku',
fr='fin des années $date1 / début des années $date2',
hr='kraj $date1-ih i početak $date2-ih',
hsb='pózdnje $date1te a zažne $date2te lěta',
it='fine degli anni $date1 / inizio degli anni $date2',
ja='$date1年代末から$date2年代初頭',
ml='$date1കൾ അവസാനവും $date2കൾ ആദ്യവും',
nb = 'sent på $date1-tallet og tidlig på $date2-tallet',
nl = 'eind $date1e/begin $date2e decennium',
nn = 'seint på $date1-talet og tidleg på $date2-talet',
pl=function(date1, date2, state)
local decade1 = math.floor(date1 % 100)
local decade2 = math.floor(date2 % 100)
local century1 = Roman(math.floor( date1 / 100) + 1)
local century2 = Roman(math.floor( date2 / 100) + 1)
if decade1 == 0 and date1 < date2 then
return "przełom pierwszej i drugiej dekady " .. century1 .. " wieku"
elseif decade1 == 10 and date1 < date2 then
return "przełom drugiej dekady i lat 20. " .. century1 .. " wieku"
elseif decade1 == 90 and decade2 == 0 then
return "przełom ostatniej dekady " .. century1 .. " i pierwszej dekady " .. century2 .. " wieku"
else
return "przełom lat " .. decade1 .. ". i " .. decade2 .. ". " .. century1 .. " wieku"
end
end,
qu='qhipaq $date1 watakuna ñawpaq $date2 watakunapas',
ru='конец $date1-х — начало $date2-х гг.',
sv='sena $date1-talet och tidiga $date2-talet',
sk=function(date1, date2, state)
local decade1 = math.floor((date1 % 100) / 10)
local decade2 = math.floor((date2 % 100) / 10)
local century1 = math.floor( date1 / 100) + 1
local century2 = math.floor( date2 / 100) + 1
if decade1 == 0 and date1 < date2 then
return "prelom 1. a 2. desaťročia " .. century1 .. ". storočia"
elseif decade2 == 0 and date2 < date1 then
return "prelom 9. a 10. desaťročia " .. century1 .. ". storočia"
elseif (decade1 == 9 and date1 < date2) or (decade2 == 9 and date2 < date1) then
return "prelom " .. century1 .. ". a " .. century2 .. ". storočia"
else
return "prelom " .. decade1 .. "0. a " .. decade2 .. "0. rokov " .. century1 .. ". storočia"
end
end,
sl='pozna $date1-ta in zgodnja $date2-ta leta',
uk='кінець $date1-х — початок $date2-х рр.',
ur='اخیر دہائی $date1 و ابتدا دہائی $date2',
vi='bước sang thập niên $date2',
['zh-hans']='$date1年代末$date2年代初',
['zh-hant']='$date1年代末$date2年代初',
default=function(date1, date2, state) return {conj='and', adj1 = 'late', unit1='decade', era1=state.era1, adj2 = 'early', unit2='decade', era2=state.era2} end,
},
-- $date1 - original date - 1
-- $date2 - original date
-- if era is BC than $date1 and $date2 are swapped
['turn of the year']={
nDates = 2,
['be-tarask']='канец $date1 — пачатак $date2 г.',
bn='$date1-এর শেষে এবং $date2-এর শুরুতে',
cs='přelom roku $date1/$date2',
de='Jahreswechsel $date1/$date2',
en='late $date1 and early $date2',
['en-gb']='late $date1 and early $date2',
['en-ca']='late $date1 and early $date2',
eo='jarŝanĝo $date1 / $date2',
es='finales de $date1 y principios de $date2',
fa='اواخر $date1 و اوایل $date2',
fi='vuoden $date1 loppu ja vuoden $date2 alku',
fr='fin $date1 / début $date2',
hsb='kónc $date1/spočatk $date2',
ja='$date1年末から$date2年初め',
ml='$date1 അവസാനവും $date2 ആദ്യവും',
nb='årsskiftet $date1/$date2',
nl='eind $date1 en begin $date2',
nn='årsskiftet $date1/$date2',
pl='koniec $date1 i początek $date2 roku',
qu="$date1 qhipaq p'unchawkuna $date2 ñawpaq p'unchawkunapas",
ru='конец $date1 — начало $date2 г.',
sk='prelom rokov $date1/$date2',
sl='konec leta $date1 in začetek $date2',
sv='sena $date1 och tidiga $date2',
uk='кінець $date1 — початок $date2 р.',
ur='اخیر $date1 و ابتدا $date2',
vi='bước sang năm $date2',
['zh-hans']='$date1年末$date2年初',
['zh-hant']='$date1年末$date2年初',
default=function(date1, date2, state) return {conj='and', adj1 = 'late', unit1='year', era1=state.era1, adj2 = 'early', unit2='year', era2=state.era2} end,
},
['circa2'] = {
nDates = 2,
ar='حوالي $date1 – $date2',
['be-tarask']={'прыкладна з $date1 да прыкладна $date2', case={'gen','gen'}},
bn='প্রায় $date1 এবং প্রায় $date2-এর মাঝামাঝি',
ca='cap a $date1 o $date2',
cs='cca $date1 až $date2',
da='ca. mellem $date1 og $date2',
de='etwa $date1 bis $date2',
el='περίπου μεταξύ $date1 και $date2',
en='between circa $date1 and circa $date2',
['en-gb']='between circa $date1 and circa $date2',
['en-ca']='between circa $date1 and circa $date2',
eo='proksimume de $date1 ĝis $date2',
es='hacia $date1 o $date2',
et='ca. $date1 ja $date2 vahel',
fa='حدوداً بین $date1 و $date2',
fi={function(date1, date2, state) return 'suunnilleen ' .. decYear(state,'fi','xxx') .. '$date1 ja $date2 välisenä aikana' end, case={'gen','gen'}},
fr='vers $date1-$date2',
gl='entre $date1 e $date2',
he='בסביבות ה- $date1 עד $date2',
hr='oko između $date1 i $date2',
hsb={'wot něhdźe $date1 do něhdźe $date2', case={'gen','gen'}},
hu='$date1 és $date2 között',
it='tra il $date1 e il $date2 circa',
ja='$date1頃と$date2頃の間',
mk='~ помеѓу $date1 и $date2',
ml='ഉദ്ദേശം $date1-നും ഉദ്ദേശം $date2-നും ഇടയ്ക്ക്',
nb='ca. mellom $date1 og $date2',
nn='ca. mellom $date1 og $date2',
nds='üm un bi $date1 bet $date2',
nl='ca. $date1 tot $date2',
no='ca. mellom $date1 og $date2',
pl={'od około $date1 do około $date2', case={'gen','gen'}},
pt='cerca de $date1 a $date2',
qu="$date1 p'unchawmantachá $date2 p'unchawkamachá",
ro='circa $date1 – $date2',
ru={'с около $date1 до, примерно, $date2', case={'gen','gen'}},
sk='cca $date1 až $date2',
sl={function(date1, date2, state) return 'ok. ' .. decYear(state,'sl','gen') .. ' $date1 do $date2' end, case={'gen','gen'}},
sv='c:a $date1 till $date2',
uk={'з близько $date1 до, приблизно, $date2', case={'gen','gen'}},
ur='قریباً بین $date1 و $date2',
vi='giữa vào khoảng $date1 và vào khoảng $date2',
['zh-hans']='约$date1~$date2间',
['zh-hant']='約$date1~$date2間',
default=function(date1, date2, state) return {conj='between', adj1 = 'circa', unit1=state.unit1, era1=state.era1, adj2 = 'circa', unit2=state.unit2, era2=state.era2} end,
},
-- ==========================================
-- === Eras and calendars ===================
-- ==========================================
['julian'] = {
nDates = 2,
ar='$date1 ($date2 حسب [[w:ar:التقويم اليولياني|تقويم يولياني]])',
['be-tarask']='$date1 ($date2 паводле [[w:be-tarask:Юліянскі каляндар|ст. ст.]]',
bn='$date1 (জুলিয়ান ক্যালেন্ডারে $date2)',
ca='$date1 ($date2 segons el [[w:ca:Calendari julià|calendari julià]])',
cs='$date1 ($date2 podle [[w:cs:Juliánský kalendář|juliánského kalendáře]])',
da='$date1 ($date2 [[w:da:Julianske kalender|Julianske kalender]])',
de='$date1 ($date2 [[w:de:Julianischer Kalender|Julianischer Kalender]])',
el='$date1 ($date2 με το [[w:el:Ιουλιανό ημερολόγιο|Ιουλιανό ημερολόγιο]])',
en='$date1 ($date2 in [[w:Old Style and New Style dates|Julian calendar]])',
['en-gb']='$date1 ($date2 in [[w:Old Style and New Style dates|Julian calendar]])',
['en-ca']='$date1 ($date2 in [[w:Old Style and New Style dates|Julian calendar]])',
fa='$date1 ($date2 در [[w:fa:Old Style and New Style dates|تقویم جولیان]])',
eo='$date1 ($date2 laŭ la [[w:eo:Julia kalendaro|Julia Kalendaro]])',
es='$date1 ($date2 según el [[w:es:Calendario juliano|calendario juliano]])',
et='$date1 ($date2 [[w:et:Juliuse kalender|Juliuse kalendris]])',
fi='$date1 ($date2 [[w:fi:juliaaninen kalenteri|juliaanisen kalenterin]] mukaan)',
fr='$date1 ($date2 dans le [[w:fr:calendrier julien|calendrier julien]])',
gl='$date1 ($date2 segundo o [[w:gl:Calendario xuliano|calendario xuliano]])',
hu='$date1 ($date2 a [[w:hu:Julianus-naptár|Julián naptárban]])',
hr='$date1 ($date2 prema [[w:hr:Julijanski kalendar|julijanskom kalendaru]])',
he='$date1 ($date2 ב[[w:he:לוח היוליאני|הלוח היוליאני]])',
hsb='$date1 ($date2 po julianiskej protyce)',
it='$date1 ($date2 secondo il [[w:it:Calendario giuliano|calendario giuliano]])',
ja='$date1([[w:ja:ユリウス暦|ユリウス暦]] $date2)',
mk='$date1 ($date2 по [[w:mk:Јулијански календар|Јулијанскиот календар]])',
ml='$date1 ([[w:ml:ജൂലിയൻ കാലഗണനാരീതി|ജൂലിയൻ വർഷത്തിൽ]] $date2)',
ml='$date1 ([[w:Old Style and New Style dates|ജൂലിയൻ കാലഗണനാരീതിയിൽ]] $date2)',
nds='$date1 ($date2 na’n [[w:nds:Juliaansch Klenner|Juliaanschen Klenner]])',
nb='$date1 ($date2 etter [[w:no:Juliansk kalender|den julianske kalenderen]])',
nn='$date1 ($date2 etter [[w:no:Juliansk kalender|den julianske kalenderen]])',
nl='$date1 ($date2 volgens de [[w:nl:Juliaanse kalender|Juliaanse kalender]])',
no='$date1 ($date2 etter [[w:no:Juliansk kalender|den julianske kalender]])',
pl='$date1 ($date2 wedle [[w:pl:Daty nowego i starego porządku|kalendarza juliańskiego]])',
pt='$date1 ($date2 no [[w:pt:Mudança para o calendário gregoriano|calendário juliano]])',
qu='$date1 ($date2 [[w:qu:Hulyanu kalindaryu|Hulyanu kalindaryupi]])',
ro='$date1 ($date2 în [[w:ro:calendarul iulian|calendarul iulian]])',
ru='$date1 ($date2 [[w:ru:Юлианский календарь|по ст. ст.]])',
sk='$date1 ($date2 podľa [[w:sk:Juliánsky kalendár|juliánskeho kalendára]])',
sl='$date1 ($date2 po [[w:sl:Julijanski koledar|julijanskem koledarju]])',
sv='$date1 ($date2 [[w:sv:Gamla stilen|gamla stilen]])',
uk='$date1 ($date2 [[w:uk:Юліанський календар|Юліанський календар]])',
ur='$date1 ($date2 حسب [[w:ur:نئے اور پانے انداز کی تاریخ|جولین تقویم]])',
vi='$date1 ($date2 trong [[w:vi:Lịch Julius|lịch Juliêng]])',
['zh-hans']='$date1([[w:Old Style and New Style dates|格里历]]$date2)',
['zh-hant']='$date1([[w:Old Style and New Style dates|格里曆]]$date2)',
default='<span style="color:red">$date1 ($date2 in [[w:Old Style and New Style dates|Julian calendar]])</span>',
},
['ad'] = {
nDates = 1,
['be-tarask']='$date1 [[w:be-tarask:ад Нараджэньня Хрыста|пасьля Н. Х.]]',
bn ='$date1 খ্রিস্টাব্দ',
ca ='$date1 dC',
cs ='$date1 n. l.',
de ='$date1 n. Chr.',
el ='$date1 μ.Χ.',
en ='$date1 [[w:en:Anno Domini|AD]]',
['en-gb'] ='$date1 [[w:en:Anno Domini|AD]]',
['en-ca'] ='$date1 [[w:en:Anno Domini|AD]]',
eo ='$date1 pK',
es ='$date1 [[w:es:Anno Dómini|d. C.]]',
fa ='$date1 م.',
fi ='$date1 jaa.',
fr ='$date1 ap. J.-C.',
gl ='$date1 d.C.',
he ='$date1 לספירה',
hu ='i. sz. $date1',
hr ='$date1 p. Kr.',
hsb='$date1 po Chr.',
it ='$date1 d.C.',
ja ='西暦$date1',
mk ='$date1 н.е.',
ml ='ക്രി.വ. $date1',
nb ='$date1 e.Kr.',
nl ='$date1 n.Chr.',
nn ='$date1 e.Kr.',
no ='$date1 e.Kr.',
pl ='$date1 [[w:pl:naszej ery|n.e.]]',
ro ='$date1 d.Hr.',
ru ='$date1 н. э.',
sk ='$date1 po Kr.',
sl ='$date1 n. št.',
sv ='$date1 [[w:sv:Efter Kristus|e.Kr.]]',
uk ='$date1 н. е.',
ur ='$date1 ء',
vi ='$date1 [[w:vi:Công Nguyên|CN]]',
['zh-hans'] ='[[w:zh:基督纪年|公元]]$date1',
['zh-hant'] ='[[w:zh:基督纪年|公元]]$date1',
default='<span style="color:red">$date1 [[w:en:Anno Domini|AD]]</span>',
},
['ah'] = {
nDates = 1,
['be-tarask']='$date1 [[w:be-tarask:Ісламскі каляндар|хіджры]]',
bn ='$date1 [[w:bn:ইসলামি বর্ষপঞ্জি|হিজরী]]',
cs ='$date1 [[w:cs:Anno Hegirae|AH]]',
en ='$date1 [[w:en:Hijri year|AH]]',
['en-gb'] ='$date1 [[w:en:Hijri year|AH]]',
['en-ca'] ='$date1 [[w:en:Hijri year|AH]]',
eo ='$date1 post la [[w:eo:Heĝiro|Heĝiro]]',
fa ='$date1 ه.ق.',
fr ='$date1 [[w:fr:Calendrier musulman|A.H.]]',
he ="$date1 [[w:he:הלוח המוסלמי|להג'רה]]",
hr ='$date1 god. hidžre',
ja ='[[w:ja:ヒジュラ暦|ヒジュラ暦]]$date1',
ml ='$date1 [[w:ml:ഇസ്ലാമിക കലണ്ടർ|ഹിജ്റ]]',
nb ='$date1 [[w:no:Den muslimske kalenderen|A.H.]]',
nn ='$date1 [[w:nn:Den muslimske kalenderen|A.H.]]',
pl ='$date1 [[w:pl:Kalendarz muzułmański|A.H.]]',
ru ='$date1 [[w:ru:Исламский календарь|хиджры]]',
sk ='$date1 [[w:sk:A. H.|A. H.]]',
sv ='$date1 [[w:sv:Muslimska kalendern|A.H.]]',
uk ='$date1 [[w:uk:Мусульманський календар|хіджри]]',
ur ='$date1 ھ',
vi ='$date1 [[w:vi:Lịch Hồi giáo|AH]]',
['zh-hans'] ='[[w:en:Hijri year|Hijri历]]$date1',
['zh-hant'] ='[[w:en:Hijri year|Hijri曆]]$date1',
default='<span style="color:red">$date1 [[w:en:Hijri year|AH]]</span>',
},
['bc'] = {
nDates = 1,
ar ='$date1 ق.م.',
['be-tarask']='$date1 [[w:be-tarask:да Нараджэньня Хрыста|да Н. Х.]]',
bn ='খ্রিস্টপূর্ব $date1',
ca ='$date1 [[w:ca:Abans de Crist|aC]]',
cs ='$date1 [[w:cs:Př. n. l.|př. n. l.]]',
de ='$date1 [[w:de:v. Chr.|v. Chr.]]',
el ='$date1 π.Χ.',
en ='$date1 [[w:en:Ante Christum Natum|BC]]',
['en-gb'] ='$date1 [[w:en:Ante Christum Natum|BC]]',
['en-ca'] ='$date1 [[w:en:Ante Christum Natum|BC]]',
eo ='$date1 aK',
es ='$date1 [[w:es:Antes de Cristo|a. C.]]',
fa ='$date1 پ.م.',
fi ='$date1 eaa.',
fr ='$date1 av. J.-C.',
gl ='$date1 [[w:gl:Antes de Cristo|a.C.]]',
he ='$date1 לפני הספירה',
hr ='$date1 [[w:hr:Pr. Kr.|pr. Kr.]]',
hsb='$date1 do Chr.',
hu ='i. e. $date1',
it ='$date1 [[w:it:Avanti Cristo|a.C.]]',
ja ='[[w:ja:紀元前|紀元前]]$date1',
mk ='$date1 п.н.е.',
ml ='ക്രി.മു. $date1',
nds='$date1 vör uns Tied',
nb ='$date1 f.Kr.',
nl ='$date1 v.Chr.',
nn ='$date1 f.Kr.',
no ='$date1 f.Kr.',
pl ='$date1 [[w:pl:przed naszą erą|p.n.e.]]',
ro ='$date1 î.Hr.',
ru ='$date1 до н. э.',
sk ='$date1 [[w:sk:Pred Kristom|pred Kr.]]',
sl ='$date1 pr. n. št.',
sv ='$date1 [[w:sv:Före Kristus|f.Kr.]]',
uk ='$date1 до н. е.',
ur ='$date1 ق م',
vi ='$date1 [[w:vi:Trước Công Nguyên|TCN]]',
['zh-hans'] ='[[w:zh:基督纪年|公元前]]$date1',
['zh-hant'] ='[[w:zh:基督纪年|公元前]]$date1',
default='<span style="color:red">$date1 [[w:en:Ante Christum Natum|BC]]</span>',
},
['bp'] = {
nDates = 1,
ar ='$date1 [[w:ar:قبل الحاضر|قبل الحاضر]]',
be ='$date1 [[w:be-tarask:Да нашых дзён|Да нашых дзён]]',
['be-tarask']='$date1 [[w:be-tarask:Да нашых дзён|Да нашых дзён]]',
bn ='বর্তমানের আগে $date1',
ca ='$date1 [[w:ca:BP (unitat de temps)|BP]]',
cs ='$date1 [[w:cs:B. P.|B. P.]]',
de ='$date1 [[w:de:Before Present|BP]]',
el ='$date1 [[w:en:Before Present|BP]]',
en ='$date1 [[w:en:Before Present|BP]]',
['en-gb'] ='$date1 [[w:en:Before Present|BP]]',
['en-ca'] ='$date1 [[w:en:Before Present|BP]]',
eo='$date1 [[w:eo:Before Present|BP]]',
es ='$date1 [[w:es:Before Present|BP]]',
et ='$date1 [[w:et:Before Present|BP]]',
fa ='$date1 پیش از اکنون',
fi ='$date1 [[w:fi:BP (ajanlasku)|BP]]',
fr ='$date1 [[w:fr:Avant le présent|avant le présent]]',
hr ='$date1 [[w:hr:BP|prije današnjice]]',
it ='$date1 [[w:it:Before Present|BP]]',
ja ='$date1 [[w:ja:BP (年代測定)|BP]]',
lv ='$date1 [[w:lv:Pirms mūsdienām|Pirms mūsdienām]]',
mk ='$date1 [[w:mk:Пред сегашноста|п.с.]]',
ml ='[[w:en:Before Present|ഇന്നത്തെ കാലത്തിനു മുമ്പ്]] $date1',
nb ='$date1 [[w:no:Before Present|BP]]',
nn ='$date1 [[w:nn:Before Present|BP]]',
nl ='$date1 [[w:nl:Before Present|BP]]',
no ='$date1 [[w:no:Before Present|BP]]',
pl ='$date1 [[w:pl:Before Present|BP]]',
pt ='$date1 [[w:pt:Antes do Presente|Antes do Presente]]',
ru ='$date1 [[w:ru:До настоящего времени|до н. в.]]',
sk ='$date1 [[w:sk:BP (čas)|BP]]',
sl ='$date1 [[w:sl:pred sedanjostjo|p. s.]]',
sr ='$date1 [[w:sr:Прије садашњости|Прије садашњости]]',
sv ='$date1 [[w:sv:B.P.|B.P.]]',
uk ='$date1 [[w:uk:Років тому|Років тому]]',
ur ='$date1 قبل حاضر',
vi ='$date1 [[w:en:Before Present|trước ngày nay]]',
['zh-hans'] ='[[w:zh:距今|距今]]$date1',
['zh-hant'] ='[[w:zh:距今|距今]]$date1',
default='<span style="color:red">$date1 [[w:en:Before Present|BP]]</span>',
},
}
-- List of possible string inputs to "adj", "junction", "era", and "precision" fields
-- Each term is matched to its synonym and the role: a - adjective, e - era
-- p - precision, c - calendar and combos, r - certainty and j - conjunction
p.Synonyms = {
-- adjectives and prepositions
['quarter1']={'1quarter','a'},
['1stquarter']={'1quarter','a'},
['1st quarter']={'1quarter','a'},
['first quarter']={'1quarter','a'},
['1quarter']={'1quarter','a'},
['quarter2']={'2quarter','a'},
['2ndquarter']={'2quarter','a'},
['2nd quarter']={'2quarter','a'},
['second quarter']={'2quarter','a'},
['2quarter']={'2quarter','a'},
['quarter3']={'3quarter','a'},
['3rdquarter']={'3quarter','a'},
['3rd quarter']={'3quarter','a'},
['third quarter']={'3quarter','a'},
['3quarter']={'3quarter','a'},
['quarter4']={'4quarter','a'},
['4thquarter']={'4quarter','a'},
['4th quarter']={'4quarter','a'},
['fourth quarter']={'4quarter','a'},
['4quarter']={'4quarter','a'},
['spring']={'spring','a'},
['summer']={'summer','a'},
['fall']={'autumn','a'},
['autumn']={'autumn','a'},
['winter']={'winter','a'},
['beginning']={'early','a'},
['early']={'early','a'},
['1half']={'firsthalf','a'},
['1sthalf']={'firsthalf','a'},
['1st half']={'firsthalf','a'},
['firsthalf']={'firsthalf','a'},
['first half']={'firsthalf','a'},
['end']={'late','a'},
['late']={'late','a'},
['middle']={'mid','a'},
['mid']={'mid','a'},
['2half']={'secondhalf','a'},
['2ndhalf']={'secondhalf','a'},
['2nd half']={'secondhalf','a'},
['secondhalf']={'secondhalf','a'},
['second half']={'secondhalf','a'},
['<']={'before','a'},
['b']={'before','a'},
['before']={'before','a'},
['>']={'after','a'},
['a']={'after','a'},
['after']={'after','a'},
['~']={'circa','a'},
['c']={'circa','a'},
['ca']={'circa','a'},
['circa']={'circa','a'},
['by']={'by','a'},
['from']={'from','a'},
['until']={'until','a'},
['uncertain']={'uncertain','r'},
['possibly']={'possibly','r'},
['probably']={'probably','r'},
['presumably']={'presumably','r'},
-- eras
['bc']={'bc','e'},
['bce']={'bc','e'},
['before present']={'bp','e'},
['bp']={'bp','e'},
['ce']={'ad','e'},
['ad']={'ad','e'},
['ah']={'ah','e'},
-- conjunctions
['&']={'and','j'},
['and']={'and','j'},
['or']={'or','j'},
['-']={'from-until','j'},
['–']={'from-until','j'},
['from-until']={'from-until','j'},
['between']={'between','j'},
['circa2']={'circa2','a'},
-- precision
['day']={'day','p'},
['month']={'month','p'},
['year']={'year','p'},
['s']={'decade','p'},
['decade']={'decade','p'},
['century']={'century','p'},
['millennium']={'millennium','p'},
['million']={'million','p'},
['billion']={'billion','p'},
-- calendar
['julian']={'julian','c'},
['islamic']={'islamic','c'},
['hijri']={'islamic','c'},
-- "Turn of the ..." options are a combos which will be handled in similar way as calendars
['turn of the century']={'turn of the century','c'},
['century turn']={'turn of the century','c'},
['turn of the decade']={'turn of the decade','c'},
['decade turn']={'turn of the decade','c'},
['turn of the year']={'turn of the year','c'},
['year turn']={'turn of the year','c'},
-- other dates which will be handled in similar way as calendars
['?']={'unknown','c'},
['unknown']={'unknown','c'},
['unknown year']={'year unknown','c'},
['year unknown']={'year unknown','c'},
}
return p
eo5gntcrofku6hlrc6x1kktv4wkkxvc
Modul:IncubatorInterwikiEXPORT
828
652
2860
2859
2024-12-03T16:05:41Z
Jon Harald Søby
20
4 revisi diimpor
2859
Scribunto
text/plain
-- This module should remained unused in the Wikimedia Incubator.
-- It is meant to be exported to newly created wikis and be used there
-- with the {{INTERWIKI}} template until Wikidata support is enabled
-- for the wiki, and the template and module can be removed and deleted.
local p = {}
-- language codes with underscore '_', have to be translated to '-', to be readable for MediaWiki
local langcode = {
['bat_smg'] = 'bat-smg',
['be_x_old'] = 'be-x-old',
['cbk_zam'] = 'cbk-zam',
['fiu_vro'] = 'fiu-vro',
['map_bms'] = 'map-bms',
['nds_nl'] = 'nds-nl',
['roa_rup'] = 'roa-rup',
['roa_tara'] = 'roa-tara',
['zh_classical'] = 'zh-classical',
['zh_min_nan'] = 'zh-min-nan', -- a comma has to be added when new lines are added
['zh_yue'] = 'zh-yue'
}
local function endsWith(str, ending)
return ending == '' or str:sub(-#ending) == ending
end
local function getProjectAndLanguage()
local server = mw.ustring.gsub(mw.site.server, '//', '')
local serversplit = mw.text.split(server, '%.')
local lang = serversplit[1]
local project = mw.ustring.gsub(serversplit[2], 'wikipedia', 'wiki')
return {lang, project}
end
p.interwiki = function(frame)
local s = {}
-- If the page is connected to Wikidata, this module should do nothing.
if mw.wikibase.getEntityIdForCurrentPage() then
return ''
end
local qid = frame.args.qid or frame:getParent().args[1] or frame:getParent().args.qid or ''
local thislang = getProjectAndLanguage()[1]
local thisproject = getProjectAndLanguage()[2]
thislang = mw.ustring.gsub(thislang, '-', '_')
thislang = mw.ustring.gsub(thislang, 'be_tarask', 'be_x_old')
if not mw.ustring.match( qid, '^[Qq][1-9]%d*$' ) then
return ''
else
if qid then
local entity = mw.wikibase.getEntity(qid)
if entity and entity.sitelinks then
for i, j in pairs(entity.sitelinks) do
if endsWith(j.site, thisproject) then
local lang = mw.ustring.gsub(j.site, thisproject, '')
if (langcode[lang] or #lang <= 3) and lang ~= thislang then
-- Special case for the Norwegian Bokmål Wikipedia;
-- use 'nb' instead of 'no' for that one site
if j.site == 'nowiki' then
lang = 'nb'
end
lang = langcode[lang] or lang
local iwtext = '[[' .. lang .. ':' .. j.title .. ']]'
table.insert(s, iwtext)
end
end
end
end
end
end
return table.concat(s, '\n')
end
return p
fyq0scgsenehwap3fdrmq6oqlwswhgn
MediaWiki:Common.css
8
653
2862
2861
2024-12-03T16:05:41Z
Jon Harald Søby
20
1 revisi diimpor
2861
css
text/css
/** CSS placed here will be applied to all skins */
/*** styles and counter for mapping listings ***/
@media screen {
.printonly { display:none !important; }
}
@media screen, print {
span.listing-map {
color: white;
font-size: 0.85em;
font-family: Arial,Verdana,sans-serif;
padding: 0pt 0.1em 0pt 0.35em;
-webkit-print-color-adjust: exact; /* force printing on safari and chrome */
}
h2 { counter-reset: mapnumber; }
span.listing-map:before {
content: counter(mapnumber);
counter-increment: mapnumber;
}
body { counter-reset: generalnumber; }
span.listing-map.listing-general:before {
content: counter(generalnumber);
counter-increment: generalnumber;
}
}
/* Hide sitenotice on Main Page */
body.page-Main_Page #siteNotice {
display:none;
}
/* Don't display some stuff on Main Page */
body.page-Main_Page #deleteconfirm,
body.page-Main_Page #t-cite,
body.page-Main_Page #footer-info-lastmod,
body.page-Main_Page.action-view #siteSub,
body.page-Main_Page.action-view #contentSub,
body.page-Main_Page.action-view h1.firstHeading {
display: none !important;
}
/* Styling for Abuse Filter tags */
.mw-tag-markers {
font-family:sans-serif;
font-style:italic;
font-size:90%;
}
/* Hide page title on Wikivoyage:Tourist Office */
body.page-Wikivoyage_Tourist_Office h1#firstHeading { display:none;
}
#DoM {
background: transparent;
padding: 0;
}
/* This section supports templates for the WMC migration.
* Sourced from http://en.wikipedia.org/wiki/MediaWiki:Common.css on 28 Oct 2012.
* Should not need to be copied later, and can be removed after migration is complete.
*/
th.mbox-text,td.mbox-text{border:none;width:100%;padding:.25em .9em;}
td.mbox-image{border:none;text-align:center;padding:2px 0 2px .9em;}
td.mbox-imageright{border:none;text-align:center;padding:2px .9em 2px 0;}
td.mbox-empty-cell{border:none;width:1px;padding:0;}
.mbox-text{display:block;margin:0 -.5em;}
.mbox-inside{margin:4px;}
/* Suppress numbering of items in TOC */
.tocnumber { display: none; }
/* Main page */
.portal-column-left {
width: 40%;
text-align: center;
}
/* Hide title on Main Page */
body.page-Main_Page h1.firstHeading {
display: none;
}
/* Travellers' pub TOC, widen */
body.page-Wikivoyage_Travellers_pub div#toctitle {
width:30em;
}
#mobileworld img {
max-width: 100%;
height: auto;
width: auto\9; /* ie8 */
}
/* DEMO: for Main_Page/Sandbox */
body.page-Main_Page_Sandbox #deleteconfirm,
body.page-Main_Page_Sandbox #t-cite,
body.page-Main_Page_Sandbox #footer-info-lastmod,
body.page-Main_Page_Sandbox.action-view #siteSub,
body.page-Main_Page_Sandbox.action-view #contentSub,
body.page-Main_Page_Sandbox.action-view h1.firstHeading {
display: none !important;
}
#toc > ul {padding-left: 2em;}
.mf-mobile-only {
display: none;
}
/* BEGIN styles for pagebanner extension */
.oo-ui-icon-unesco {
background-image: url('https://upload.wikimedia.org/wikipedia/commons/b/b1/WorldHeritageBlanc.svg');
}
.oo-ui-icon-star {
background-image: url('https://upload.wikimedia.org/wikipedia/commons/e/e7/Cscr-featured.svg');
}
.oo-ui-icon-ftt {
background-image: url('https://upload.wikimedia.org/wikipedia/commons/thumb/b/b0/Writing_Circle.svg/25px-Writing_Circle.svg.png');
}
.oo-ui-icon-dotm {
background-image: url('https://upload.wikimedia.org/wikipedia/commons/thumb/5/50/Yes_Check_Circle.svg/25px-Yes_Check_Circle.svg.png');
}
.oo-ui-icon-otbp {
background-image: url('https://upload.wikimedia.org/wikipedia/commons/thumb/6/6e/Right_turn_icon_blue.svg/25px-Right_turn_icon_blue.svg.png');
}
.ext-wpb-pagebanner li.toclevel-1 {
padding: 0 0 0 0.4em;
}
.ext-wpb-pagebanner li.toclevel-1 > a:after {
content: " ·";
font-weight: bold;
padding: 0 0 0 0.1em;
}
.ext-wpb-pagebanner li.toclevel-1:last-child > a:after {
content: none;
}
.ext-wpb-pagebanner h1.wpb-name {
font-family: sans-serif;
border-bottom: none;
}
.ext-wpb-pagebanner {
clear: both;
}
.wpb-banner-toc .toctext { display: inline; }
/* END styles for pagebanner extension */
/* Infobox templates */
.infobox {
border: 1px solid #aaa;
background-color: #f9f9f9;
color: black;
margin-bottom: 0.5em;
margin-left: 1em;
padding: 0.2em;
float: right;
clear: right;
}
.infobox td,
.infobox th {
vertical-align: middle;
}
.infobox caption {
font-size: larger;
margin-left: inherit;
}
.infobox.bordered {
border-collapse: collapse;
}
.infobox.bordered td,
.infobox.bordered th {
border: 1px solid #aaa;
}
.infobox.bordered .borderless td,
.infobox.bordered .borderless th {
border: 0 solid #aaa;
}
/* CSS for black text external links / blue text on hover */
body.ns-0 #content a.external,
body.ns-0 #content a.external:visited,
body.page-Wikivoyage_External_links #content a.external,
body.page-Wikivoyage_External_links #content a.external:visited,
body.page-Wikivoyage_talk_External_links #content a.external,
body.page-Wikivoyage_talk_External_links #content a.external:visited,
body.page-Wikivoyage_Listings #content a.external,
body.page-Wikivoyage_Listings #content a.external:visited,
body.page-Wikivoyage_talk_Listings #content a.external,
body.page-Wikivoyage_talk_Listings #content a.external:visited,
body.page-Wikivoyage_talk_Attraction_listings #content a.external,
body.page-Wikivoyage_talk_Attraction_listings #content a.external:visited,
body.page-Wikivoyage_talk_Activity_listings #content a.external,
body.page-Wikivoyage_talk_Activity_listings #content a.external:visited,
body.page-Wikivoyage_talk_Restaurant_listings #content a.external,
body.page-Wikivoyage_talk_Restaurant_listings #content a.external:visited,
body.page-Wikivoyage_talk_Bar_listings #content a.external,
body.page-Wikivoyage_talk_Bar_listings #content a.external:visited,
body.page-Wikivoyage_talk_Shopping_listings #content a.external,
body.page-Wikivoyage_talk_Shopping_listings #content a.external:visited,
body.page-Wikivoyage_talk_Accommodation_listings #content a.external,
body.page-Wikivoyage_talk_Accommodation_listings #content a.external:visited,
body.page-Wikivoyage_Don_t_tout #content a.external,
body.page-Wikivoyage_Don_t_tout #content a.external:visited
{
color: #252525;
}
body.ns-0 #content a.external:hover,
body.ns-0 #content a.external:focus,
body.page-Wikivoyage_External_links #content a.external:hover,
body.page-Wikivoyage_External_links #content a.external:focus,
body.page-Wikivoyage_talk_External_links #content a.external:hover,
body.page-Wikivoyage_talk_External_links #content a.external:focus,
body.page-Wikivoyage_Listings #content a.external:hover,
body.page-Wikivoyage_Listings #content a.external:focus,
body.page-Wikivoyage_talk_Listings #content a.external:hover,
body.page-Wikivoyage_talk_Listings #content a.external:focus,
body.page-Wikivoyage_talk_Attraction_listings #content a.external:hover,
body.page-Wikivoyage_talk_Attraction_listings #content a.external:focus,
body.page-Wikivoyage_talk_Activity_listings #content a.external:hover,
body.page-Wikivoyage_talk_Activity_listings #content a.external:focus,
body.page-Wikivoyage_talk_Shopping_listings #content a.external:hover,
body.page-Wikivoyage_talk_Shopping_listings #content a.external:focus,
body.page-Wikivoyage_talk_Restaurant_listings #content a.external:hover,
body.page-Wikivoyage_talk_Restaurant_listings #content a.external:focus,
body.page-Wikivoyage_talk_Bar_listings #content a.external:hover,
body.page-Wikivoyage_talk_Bar_listings #content a.external:focus,
body.page-Wikivoyage_talk_Accommodation_listings #content a.external:hover,
body.page-Wikivoyage_talk_Accommodation_listings #content a.external:focus,
body.page-Wikivoyage_Don_t_tout #content a.external:hover,
body.page-Wikivoyage_Don_t_tout #content a.external:focus
{
color: #0645ad;
}
/* BEGIN Map caption - used with MapExpander JS */
.map-expand-link {
float: right;
margin-left: 1.5em;
}
/* BEGIN Template:Listing CSS */
.listing-metadata {
font-size: 0.8em;
}
/* this style should match span.vcard-edit-button a */
.listing-lastedit {
color: rgb(150,150,150);
}
/* END Template:Listing CSS */
/* BEGIN: style used on the Destinations page */
.rounded-blue-section-heading {
background-color: #cedff2;
border-radius: 15px;
clear:both;
color: black;
font-weight: bold;
margin: 0 8% 1em;
padding: .5em 1em;
text-align: center;
vertical-align: middle;
}
/* END: style used on the Destinations page */
/* CSS for article status templates, eg Usablecity, Guidepark */
.article-status {
width: 60%;
background: #fff;
margin: 0 auto;
border: solid 2px lightblue;
text-align: center;
font-size:90%;
font-style:italic;
}
/* BEGIN: CSS for Template:Dead link (display managed via the ErrorHighlighter gadget) */
.error-deadlink {
color: red;
background: yellow;
display: none;
white-space: nowrap;
}
/* END: CSS for Template:Dead link */
#mw-indicator-GPX { display: none; }
/* BEGIN: User:Wrh2/Sandbox test */
.page-User_Wrh2_Sandbox .ext-wpb-pagebanner .wpb-topbanner .wpb-name {
width: 35%;
font-size: 2.5vw;
}
@media screen and (min-width: 768px) {
.page-User_Wrh2_Sandbox .wpb-banner-toc {
padding: 0.1vw 1vw;
}
}
/* END: User:Wrh2/Sandbox test */
/* Additional Kartographer styles */
.mw-kartographer-container.thumb:not(.mw-kartographer-full) .thumbinner > .mw-kartographer-map {
border: 1px solid #ccc;
box-sizing: border-box;
}
.wv-staticMap {
position: relative;
left: -3px;
margin-top: 3px;
}
/* Fix problem with banner overlay */
div.toctitle {display:none;}
/* Push indicators to the front */
.mw-indicators {
z-index: 2;
}
/* Estilos para [[Plantilla:Portada:Ticker]], [[Plantilla:Portada:Ticker/Core]] y [[Plantilla:Portada:Ticker/Data]] */
.ticker-container {
height: 36px;
overflow: hidden;
border:1px solid #A9A9A9;
border-left:none;
border-radius:0 3px 3px 0;
}
.ticker-text {
height: 150%;
white-space:nowrap;
display:inline-block;
}
.inicio-ticker {
text-align: center;
float: left;
font-size: 100%;
color: white;
background: #808080;
padding: 3px 10px;
-moz-border-radius: 3px;
-webkit-border-radius: 3px;
border-radius: 3px 0 0 3px;
height: 32px;
display:table;
}
.inicio-ticker b {
display: table-cell;
vertical-align: middle;
}
c1fizyzka1cw2ysa8592ify406mxaep
MediaWiki:Common.js
8
654
2864
2863
2024-12-03T16:05:41Z
Jon Harald Søby
20
1 revisi diimpor
2863
javascript
text/javascript
/**
* Keep code in MediaWiki:Common.js to a minimum as it is unconditionally
* loaded for all users on every wiki page. If possible create a gadget that is
* enabled by default instead of adding it here (since gadgets are fully.
* optimized ResourceLoader modules with possibility to add dependencies etc.)
*
* Since Common.js isn't a gadget, there is no place to declare its
* dependencies, so we have to lazy load them with mw.loader.using on demand and
* then execute the rest in the callback. In most cases these dependencies will
* be loaded (or loading) already and the callback will not be delayed. In case a
* dependency hasn't arrived yet it'll make sure those are loaded before this.
*/
/* global mw, $, importStylesheet, importScript */
/* jshint strict:false, browser:true */
mw.loader.using( ['mediawiki.util', 'jquery.client'], function () {
/* Begin of mw.loader.using callback */
/*
* rwdImageMaps jQuery plugin v1.4
*
* Allows image maps to be used in a responsive design by recalculating the area coordinates to match the actual image size on load and window.resize
*
* Copyright (c) 2012 Matt Stow
* https://github.com/stowball/jQuery-rwdImageMaps
* http://mattstow.com
* Licensed under the MIT license
*/
;(function(a){a.fn.rwdImageMaps=function(){var d=this,c=parseFloat(a.fn.jquery);var b=function(){d.each(function(){if(typeof(a(this).attr("usemap"))=="undefined"){return}var f=this,e=a(f);a("<img />").on('load',function(){var o,k,i="width",n="height";if(c<1.6){o=f.getAttribute(i),k=f.getAttribute(n)}else{o=e.attr(i),k=e.attr(n)}if(!o||!k){var p=new Image();p.src=e.attr("src");if(!o){o=p.width}if(!k){k=p.height}}var g=e.width()/100,l=e.height()/100,j=e.attr("usemap").replace("#",""),m="coords";a('map[name="'+j+'"]').find("area").each(function(){var s=a(this);if(!s.data(m)){s.data(m,s.attr(m))}var r=s.data(m).split(","),q=new Array(r.length);for(var h=0;h<q.length;++h){if(h%2===0){q[h]=parseInt(((r[h]/o)*100)*g)}else{q[h]=parseInt(((r[h]/k)*100)*l)}}s.attr(m,q.toString())})}).attr("src",e.attr("src"))})};a(window).resize(b).trigger("resize");return this}})(jQuery);
// This method will resize elements that have a class name of "js-proportional-resize" by
// changing the font-size (%) based on a viewing area width of 900px being the baseline,
// i.e. 450px width=font size 50%, 900px width=font size 100%, 1800px width=font size 200%.
function proportionalResize() {
var EXPECTED_PAGE_WIDTH = 900.00;
$('.js-proportonal-resize').each(function() {
var fontSizeCss= (($(this).width() / EXPECTED_PAGE_WIDTH) * 100.00) + '%';
$(this).css("font-size", fontSizeCss);
});
}
$(document).ready(function(e) {
$('img[usemap]').rwdImageMaps();
proportionalResize();
});
$(window).on('load', function() {
// the main page carousel text boxes aren't being initialized to the
// correct size on IE, so add a second resize post-DOM-ready
proportionalResize();
});
$(window).resize(function(e) {
proportionalResize();
});
// Add listing buttons in edit toolbar
var customizeToolbar = function() {
$( function() {
if ( typeof $.fn.wikiEditor != 'undefined' ) {
$( '#wpTextbox1' ).wikiEditor( 'removeFromToolbar', {
'section': 'main',
'group': 'insert',
'tool': 'reference'
});
}
});
$( '#wpTextbox1' ).wikiEditor( 'addToToolbar', {
'section': 'main',
'groups': {
'listings': {
'label': 'Listings' // or use labelMsg for a localized label, see above
}
}
} );
function currentLastEditDate() {
// return the date as "2015-01-15"
var d = new Date();
var year = d.getFullYear();
// Date.getMonth() returns 0-11
var month = d.getMonth() + 1;
if (month < 10) month = '0' + month;
var day = d.getDate();
if (day < 10) day = '0' + day;
return year + '-' + month + '-' + day;
}
var CURRENT_LAST_EDIT_DATE = currentLastEditDate();
var LISTING_TOOLBAR_ITEMS = {
'see': {
label: 'See listing', // or use labelMsg for a localized label, see above
icon: '//upload.wikimedia.org/wikipedia/commons/thumb/b/b7/Italian_traffic_signs_-_icona_museo.svg/22px-Italian_traffic_signs_-_icona_museo.svg.png',
options: {
pre: '* \{\{see\n| name=',
post: ' | alt= | url= | email=\n| address= | lat= | long= | directions=\n| phone= | tollfree=\n| hours= | price=\n| wikidata=\n| lastedit=' + CURRENT_LAST_EDIT_DATE + '\n| content=\n}}' // text to be inserted
}
},
'do': {
label: 'Do listing', // or use labelMsg for a localized label, see above
icon: '//upload.wikimedia.org/wikipedia/commons/thumb/3/30/Pictograms-nps-bicycle_trail-2.svg/22px-Pictograms-nps-bicycle_trail-2.svg.png',
options: {
pre: '* \{\{do\n| name=',
post: ' | alt= | url= | email=\n| address= | lat= | long= | directions=\n| phone= | tollfree=\n| hours= | price=\n| wikidata=\n| lastedit=' + CURRENT_LAST_EDIT_DATE + '\n| content=\n}}' // text to be inserted
}
},
'buy': {
label: 'Buy listing', // or use labelMsg for a localized label, see above
icon: '//upload.wikimedia.org/wikipedia/commons/thumb/a/a1/Italian_traffic_signs_-_icona_supermercato.svg/22px-Italian_traffic_signs_-_icona_supermercato.svg.png',
options: {
pre: '* \{\{buy\n| name=',
post: ' | alt= | url= | email=\n| address= | lat= | long= | directions=\n| phone= | tollfree=\n| hours= | price=\n| wikidata=\n| lastedit=' + CURRENT_LAST_EDIT_DATE + '\n| content=\n}}' // text to be inserted
}
},
'eat': {
label: 'Eat listing', // or use labelMsg for a localized label, see above
icon: '//upload.wikimedia.org/wikipedia/commons/thumb/2/2c/Italian_traffic_signs_-_icona_ristorante.svg/22px-Italian_traffic_signs_-_icona_ristorante.svg.png',
options: {
pre: '* \{\{eat\n| name=',
post: ' | alt= | url= | email=\n| address= | lat= | long= | directions=\n| phone= | tollfree=\n| hours= | price=\n| wikidata=\n| lastedit=' + CURRENT_LAST_EDIT_DATE + '\n| content=\n}}' // text to be inserted
}
},
'drink': {
label: 'Drink listing', // or use labelMsg for a localized label, see above
icon: '//upload.wikimedia.org/wikipedia/commons/thumb/a/a5/Verre_cocktail.svg/22px-Verre_cocktail.svg.png',
options: {
pre: '* \{\{drink\n| name=',
post: ' | alt= | url= | email=\n| address= | lat= | long= | directions=\n| phone= | tollfree=\n| hours= | price=\n| wikidata=\n| lastedit=' + CURRENT_LAST_EDIT_DATE + '\n| content=\n}}' // text to be inserted
}
},
'sleep': {
label: 'Sleep listing', // or use labelMsg for a localized label, see above
icon: '//upload.wikimedia.org/wikipedia/commons/thumb/2/25/Pictograms-nps-lodging.svg/22px-Pictograms-nps-lodging.svg.png',
options: {
pre: '* \{\{sleep\n| name=',
post: ' | alt= | url= | email=\n| address= | lat= | long= | directions=\n| phone= | tollfree= | fax=\n| checkin= | checkout= | price=\n| wikidata=\n| lastedit=' + CURRENT_LAST_EDIT_DATE + '\n| content=\n}}' // text to be inserted
}
},
'go': {
label: 'Go listing', // or use labelMsg for a localized label, see above
icon: '//upload.wikimedia.org/wikipedia/commons/thumb/a/ae/Pictograms-nps-airport.svg/22px-Pictograms-nps-airport.svg.png',
options: {
pre: '* \{\{go\n| name=',
post: ' | alt= | url= | email=\n| address= | lat= | long= | directions=\n| phone= | tollfree=\n| hours= | price=\n| wikidata=\n| lastedit=' + CURRENT_LAST_EDIT_DATE + '\n| content=\n}}' // text to be inserted
}
},
'listing': {
label: 'Other listing', // or use labelMsg for a localized label, see above
icon: '//upload.wikimedia.org/wikipedia/commons/thumb/7/7e/Italian_traffic_signs_-_icona_informazioni.svg/22px-Italian_traffic_signs_-_icona_informazioni.svg.png',
options: {
pre: '* \{\{listing\n| name=',
post: ' | alt= | url= | email=\n| address= | lat= | long= | directions=\n| phone= | tollfree=\n| hours= | price=\n| wikidata=\n| lastedit=' + CURRENT_LAST_EDIT_DATE + '\n| content=\n}}' // text to be inserted
}
}
};
$.each(LISTING_TOOLBAR_ITEMS, function(index, element) {
$( '#wpTextbox1' ).wikiEditor( 'addToToolbar', {
'section': 'main',
'group': 'listings',
'tools': {
'Listings': {
label: element.label,
type: 'button',
icon: element.icon,
action: {
type: 'encapsulate',
options: element.options
}
}
}
} );
});
};
/* Check if view is in edit mode and that the required modules are available. Then, customize the toolbar . . . */
if ( $.inArray( mw.config.get( 'wgAction' ), ['edit', 'submit'] ) !== -1 ) {
mw.loader.using( 'user.options', function () {
if ( mw.user.options.get('usebetatoolbar') ) {
mw.loader.using( 'ext.wikiEditor', function () {
$(document).ready( customizeToolbar );
} );
}
} );
}
/**
* Import more specific scripts if necessary
*/
if ( mw.config.get( 'wgCanonicalSpecialPageName' ) === 'Watchlist' ) {
/* watchlist scripts */
importScript( 'MediaWiki:Common.js/watchlist.js' );
}
// Include [[Templat:GPX indicator]] on all pages, but only make it visible if there are geo listings.
var hasListing = $('.geo, #GPX-track').length;
if (hasListing) $('#mw-indicator-GPX').css('display','inline-block');
//Ticker de la portada
var width = $('.ticker-text').width(),
containerwidth = $('.ticker-container').width(),
left = containerwidth;
$(document).ready(function(e){
function tick() {
if(--left < -width){
left = containerwidth;
}
$(".ticker-text").css("margin-left", left + "px");
setTimeout(tick, 8); //El número indica la velocitat (Més petit més ràpid)
}
tick();
});
//END Ticker de la portada
/* End of mw.loader.using callback */
} );
/* DO NOT ADD CODE BELOW THIS LINE */
jglds448c82wunnvp7py55enhum2y3x
Kategori:Abuja
14
655
2866
2865
2024-12-03T16:05:41Z
Jon Harald Søby
20
1 revisi diimpor
2865
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Wilayah Ibu Kota Federal}}
[[en:voy:Category:Abuja]]
ojm8z56gr8yy3eymr164vxq6umrnz2b
Kategori:Aceh
14
656
2869
2868
2024-12-03T16:05:41Z
Jon Harald Søby
20
2 revisi diimpor
2868
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Sumatera}}
{{INTERWIKI|Q7213622}}
s2eesl6yycnvhg8ovnd2d3rcvh2ojie
Kategori:Administrasi Wikiwisata
14
657
2872
2871
2024-12-03T16:05:42Z
Jon Harald Søby
20
2 revisi diimpor
2871
wikitext
text/x-wiki
[[Kategori:Proyek]]
{{INTERWIKI|Q28757210}}
jtc746q05bzm2yl2a1yfhy3fzdb8tng
Kategori:Afghanistan
14
658
2875
2874
2024-12-03T16:05:42Z
Jon Harald Søby
20
2 revisi diimpor
2874
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Asia Tengah}}
{{INTERWIKI|Q1455325}}
l374qlnfkjiypg9ps06vvgpxoaqux9e
Kategori:Afghanistan Barat
14
659
2878
2877
2024-12-03T16:05:42Z
Jon Harald Søby
20
2 revisi diimpor
2877
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Afghanistan}}
{{INTERWIKI|Q19000292}}
hcfsp72gjop9ulezckhu489520nb1ol
Kategori:Afrika
14
660
2882
2881
2024-12-03T16:05:42Z
Jon Harald Søby
20
3 revisi diimpor
2881
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Kategori benua}}
{{INTERWIKI|Q5460710}}
blyaxkyavx19msp8705w66c3ty32yau
Kategori:Afrika Barat
14
661
2885
2884
2024-12-03T16:05:42Z
Jon Harald Søby
20
2 revisi diimpor
2884
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Afrika}}
{{INTERWIKI|Q7215239}}
4a503lhu9b9covuci4jtlj2j9mi6kxw
Kategori:Afrika Timur
14
662
2888
2887
2024-12-03T16:05:42Z
Jon Harald Søby
20
2 revisi diimpor
2887
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Afrika}}
{{INTERWIKI|Q7215244}}
5ha9ucvriqhuondhd4yxjkcsbmjg3op
Kategori:Afrika Utara
14
663
2891
2890
2024-12-03T16:05:43Z
Jon Harald Søby
20
2 revisi diimpor
2890
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Afrika}}
{{INTERWIKI|Q7215240}}
cv607nz2n7mn9h1i0q1pl9fxwkkr6m0
Kategori:Afrika bagian Selatan
14
664
2894
2893
2024-12-03T16:05:43Z
Jon Harald Søby
20
2 revisi diimpor
2893
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Afrika}}
{{INTERWIKI|Q7215236}}
bcv6hsgrqqc8j47cyrfyxtlounz4aju
Kategori:Aichi
14
665
2897
2896
2024-12-03T16:05:43Z
Jon Harald Søby
20
2 revisi diimpor
2896
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Chubu}}
{{INTERWIKI|Q6425682}}
ed4z7zlpbp4gdd8a97kgalblb88njbt
Kategori:Alabama
14
666
2900
2899
2024-12-03T16:05:43Z
Jon Harald Søby
20
2 revisi diimpor
2899
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Amerika Serikat bagian Selatan}}
{{INTERWIKI|Q6808599}}
5mzqwsegpjpoy8puiywbrxyqvsrk7lt
Kategori:Amerika Selatan
14
667
2905
2904
2024-12-03T16:05:43Z
Jon Harald Søby
20
4 revisi diimpor
2904
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Kategori benua}}
s00irzp5gy64k07olyuwzm00yzngebu
Kategori:Amerika Tengah
14
668
2908
2907
2024-12-03T16:05:43Z
Jon Harald Søby
20
2 revisi diimpor
2907
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Amerika Utara}}
{{INTERWIKI|Q7213820}}
bzds9dju1tilbc6jokhyf62r1nspcmk
Kategori:Amerika Utara
14
669
2911
2910
2024-12-03T16:05:43Z
Jon Harald Søby
20
2 revisi diimpor
2910
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Kategori benua}}
{{INTERWIKI|Q7217301}}
pdkc6csqf462y0pj2487rwhck6l5067
Kategori:Amstelland
14
670
2914
2913
2024-12-03T16:05:44Z
Jon Harald Søby
20
2 revisi diimpor
2913
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Belanda Utara}}
{{INTERWIKI|Q28464365}}
pmmav8c9io0kg31tm58x6xoycc59cr5
Kategori:Area Metropolitan Banjarmasin
14
671
2917
2916
2024-12-03T16:05:44Z
Jon Harald Søby
20
2 revisi diimpor
2916
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Kalimantan Selatan}}
[[en:voy:Category:Banjarmasin Metropolitan Area]]
ky1uq78d3zys69f48nuyyg3ais5hf2j
Kategori:Arktik
14
672
2920
2919
2024-12-03T16:05:44Z
Jon Harald Søby
20
2 revisi diimpor
2919
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Destinasi lainnya}}
{{INTERWIKI|Q8261338}}
1wf1ccmmj7w6hfv3aw8v7gxde6ukimt
Kategori:Artikel bandara
14
673
2924
2923
2024-12-03T16:05:44Z
Jon Harald Søby
20
3 revisi diimpor
2923
wikitext
text/x-wiki
Halaman ini berisi daftar artikel yang telah dirancang sebagai '''bandara'''.
[[Kategori:Artikel menurut jenis]]
__HIDDENCAT__
{{INTERWIKI|Q7037170}}
sxfa0h8mjnd3d581n1rupv9v5uwgaqc
Kategori:Artikel benua
14
674
2927
2926
2024-12-03T16:05:44Z
Jon Harald Søby
20
2 revisi diimpor
2926
wikitext
text/x-wiki
Halaman ini untuk daftar artikel yang berjenis sebagai '''benua'''.
[[Kategori:Artikel menurut jenis]]
__HIDDENCAT__
{{INTERWIKI|Q2945667}}
jqlcwdoo5ck4ft9h68wnth10asy4fz5
Kategori:Artikel bernada promosi
14
675
2931
2930
2024-12-03T16:05:44Z
Jon Harald Søby
20
3 revisi diimpor
2930
wikitext
text/x-wiki
Artikel dalam kategori ini berisi bagian yang penuh dengan [[Wikiwisata:Jangan berpromosi|promosi]] dan [[Wikiwisata:Kata-kata yang harus dihindari|terdengar seperti iklan]]. Silakan [[Wikiwisata:Libatkan diri|libatkan diri]] dan [[Wikiwisata:Cara menyunting halaman|membantu memperbaikinya]]!
Untuk menambahkan artikel ke kategori, gunakan templat {{Tl|Advert}} .
[[Kategori:Artikel yang membutuhkan perhatian]]
__HIDDENCAT__
{{INTERWIKI|Q7664552}}
6rqfhejo6d6euppaxrhvrm8onglcs89
Kategori:Artikel daerah pinggiran
14
676
2933
2932
2024-12-03T16:05:44Z
Jon Harald Søby
20
1 revisi diimpor
2932
wikitext
text/x-wiki
Halaman ini merupakan daftar artikel yang telah dirancang sebagai '''daerah pinggiran'''.
{{CatTOC}}
[[Kategori:Artikel menurut jenis]]
__HIDDENCAT__
{{INTERWIKI|Q122602529}}
p08uv1vqi5mgnlfrf7jpz1kv896rhht
Kategori:Artikel dengan parameter Geo
14
677
2936
2935
2024-12-03T16:05:45Z
Jon Harald Søby
20
2 revisi diimpor
2935
wikitext
text/x-wiki
Artikel yang memiliki templat {{Tl|Geo}} untuk koordinat geografisnya.
__HIDDENCAT__
[[Kategori:Proyek]]
{{INTERWIKI|Q15181275}}
2na7tdzhuimue4nyai28jyuwrpm73di
Kategori:Artikel dengan pranala luar nonaktif
14
678
2939
2938
2024-12-03T16:05:45Z
Jon Harald Søby
20
2 revisi diimpor
2938
wikitext
text/x-wiki
Kategori ini berisi artikel yang telah ditandai memiliki setidaknya satu pranala luar yang tidak sah. Biasanya pranala akan ditandai melalui bot yang akan menambahkan {{Tl|dead link}} di sebelah pranala yang rusak.
{{CatTOC}}
__HIDDENCAT__
[[Kategori:Artikel yang perlu diperhatikan]]
{{INTERWIKI|Q7045997}}
meskq0vkctrxv3qgo1hhuwnz364vuwz
Kategori:Artikel distrik
14
679
2942
2941
2024-12-03T16:05:45Z
Jon Harald Søby
20
2 revisi diimpor
2941
wikitext
text/x-wiki
Halaman ini merupakan daftar artikel yang telah dirancang sebagai '''distrik'''.
{{CatTOC}}
[[Kategori:Artikel menurut jenis]]
__HIDDENCAT__
{{INTERWIKI|Q9009334}}
s5f2d93j05r8tf55agx7a26axbcm2q8
Kategori:Artikel distrik yang dapat digunakan
14
680
2948
2947
2024-12-03T16:05:45Z
Jon Harald Søby
20
5 revisi diimpor
2947
wikitext
text/x-wiki
Halaman ini berisi distrik yang [[Wikiwisata:Status artikel|berstatus]] '''dapat digunakan''' . Artikel dalam kategori ini diberi tag {{Tl|usabledistrict}}.
{{CatTOC}}
__HIDDENCAT__
[[Kategori:Status artikel|dapat digunakan]]
{{INTERWIKI|Q15633664}}
irgcwv8ppk9x99od2w8qaxdynku2j28
Kategori:Artikel garis besar
14
681
2954
2953
2024-12-03T16:05:45Z
Jon Harald Søby
20
5 revisi diimpor
2953
wikitext
text/x-wiki
Halaman ini merupakan daftar artikel yang memiliki [[Wikiwisata:Status artikel|status]] '''Garis Besar'''. Artikel-artikel ini setidaknya memiliki paragraf pengantar dan kerangka yang tertata. Beberapa bagian templat mungkin memiliki konten, tetapi tidak semuanya ada. Anda akan tahu di mana letak tujuannya, atau setidaknya di negara mana. '''Tapi''' artikel tersebut tidak memiliki informasi yang cukup untuk membawa Anda ke tujuan dan membuat Anda tetap hidup.
Untuk menandai artikel sebagai '''Garis Besar''', gunakan salah satu teks berikut sesuai jenis artikelnya:
:'''<nowiki>{{Outline}}, {{outlinecity}}, {{outlinepark}}, {{outlineregion}}, {{outlinecountry}}, {{outlinetopic}}, {{outlinephrasebook}}, {{outlineitinerary}}</nowiki>'''
dan tambahkan pada bagian bawah halaman
Jelas, jika Anda melihat artikel yang perlu diperbaiki, Anda harus [[Wikiwisata:Libatkan diri|silakan terjun langsung]] dan [[Wikiwisata:Cara menyunting halaman|sunting halamannya]]. Jika artikel memenuhi kriteria untuk ditandai [[Wikiwisata:Artikel yang dapat digunakan|dapat digunakan]], cukup naikkan statusnya saja. Kami menghargai bantuan apa pun, bahkan jika itu hanya mensugesti apa tambahan perlu dilakukan.
{{CatTOC}}
[[Kategori:Status artikel|Garis besar]]
__HIDDENCAT__
{{INTERWIKI|Q14374719}}
s8xzez839m4yc47jttw866b7jq0tgc9
Kategori:Artikel judul
14
682
2956
2955
2024-12-03T16:05:45Z
Jon Harald Søby
20
1 revisi diimpor
2955
wikitext
text/x-wiki
Halaman artikel yang merupakan halaman judul atau indeks.
[[Kategori:Artikel menurut jenis]]
__HIDDENCAT__
h4d4yf3fqww91zp0f3yg9sb4npfv7gt
Kategori:Artikel kota
14
683
2959
2958
2024-12-03T16:05:46Z
Jon Harald Søby
20
2 revisi diimpor
2958
wikitext
text/x-wiki
Halaman ini merupakan daftar artikel yang telah dirancang sebagai '''kota'''.
{{CatTOC}}
[[Kategori:Artikel menurut jenis]]
__HIDDENCAT__
{{INTERWIKI|Q9126476}}
3bkvlviag29pkp8tp673rreh70la4yi
Kategori:Artikel kota yang dapat digunakan
14
684
2964
2963
2024-12-03T16:05:46Z
Jon Harald Søby
20
4 revisi diimpor
2963
wikitext
text/x-wiki
Halaman ini berisi daftar kota yang [[Wikiwisata:Status artikel|berstatus]] '''dapat digunakan''' . Artikel dalam kategori ini diberi tag {{Tl|usablecity}}.
{{CatTOC}}
__HIDDENCAT__
[[Kategori:Status artikel|dapat digunakan]]
{{INTERWIKI|Q15138786}}
og2kgn8m21uva3z7zf203od6iw9sob3
Kategori:Artikel menurut jenis
14
685
2967
2966
2024-12-03T16:05:46Z
Jon Harald Søby
20
2 revisi diimpor
2966
wikitext
text/x-wiki
Artikel menurut jenis yang diidentifikasi oleh templat.
[[Kategori:Proyek]]
{{INTERWIKI|Q15111206}}
16plle9gww8ifg5w1qsl9fcme4l2cy3
Kategori:Artikel negara
14
686
2971
2970
2024-12-03T16:05:46Z
Jon Harald Søby
20
3 revisi diimpor
2970
wikitext
text/x-wiki
Halaman ini merupakan daftar artikel yang telah ditetapkan sebagai '''negara'''.
{{CatTOC}}
[[Kategori:Artikel menurut jenis]]
__HIDDENCAT__
{{INTERWIKI|Q4026570}}
ret7jl5jpto5ggzx0xkirbm2j8al46e
Kategori:Artikel panduan
14
687
2976
2975
2024-12-03T16:05:46Z
Jon Harald Søby
20
4 revisi diimpor
2975
wikitext
text/x-wiki
Halaman ini merupakan daftar artikel yang memiliki [[Wikiwisata:Status artikel|status]] '''Panduan'''. Artikel-artikel ini pada umumnya akan berguna bagi pelancong, menawarkan alternatif (jika berlaku) mengenai tempat menginap dan makan, apa yang harus dilihat dan dilakukan, cara masuk dan keluar, dll. Artikel ini memberikan informasi yang cukup untuk setidaknya beberapa hari di sana, '''tapi''' ada beberapa hal yang hilang untuk menjadikan artikel ini berstatus bintang.
Untuk menandai artikel sebagai '''Panduan''', gunakan salah satu teks berikut sesuai jenis artikelnya:
:'''<nowiki>{{guide}}, {{guidecity}}, {{guidepark}}, {{guideregion}}, {{guidecountry}}, {{guidetopic}}, {{guidephrasebook}}, {{guideitinerary}}</nowiki>'''
dan tambahkan pada bagian bawah halaman
Jelas, jika Anda melihat artikel yang perlu diperbaiki, Anda harus [[Wikiwisata:Libatkan diri|silakan terjun langsung]] dan [[Wikiwisata:Cara menyunting halaman|sunting halamannya]]. Jika artikel memenuhi kriteria untuk ditandai [[Wikiwisata:Artikel yang dapat digunakan|dapat digunakan]], cukup naikkan statusnya saja. Kami menghargai bantuan apa pun, bahkan jika itu hanya mensugesti apa tambahan perlu dilakukan.
{{CatTOC}}
[[Kategori:Status artikel|Panduan]]
__HIDDENCAT__
{{INTERWIKI|Q14374808}}
eivzg0x66snp8lmzwcrcctxlm3t0j7w
Kategori:Artikel rintisan
14
688
2979
2978
2024-12-03T16:05:46Z
Jon Harald Søby
20
2 revisi diimpor
2978
wikitext
text/x-wiki
[[Wikiwisata:Artikel rintisan|Artikel-artikel rintisan]] berikut ini membutuhkan perhatian dari Anda sekalian.
Sebuah artikel rintisan dapat ditambahkan ke daftar ini dengan menambahkan markah wiki berikut ke bagian bawah halaman artikel:
:'''<nowiki>{{stub}}</nowiki>'''
Atau lakukan yang lebih baik lagi, [[Wikiwisata:Libatkan diri|terjun langsung]] dan kembangkan artikelnya! [[Wikiwisata:Templat kerangka artikel|Templat kerangka artikel]] dapat mempermudah pengembangan artikel rintisan. Kategori dapat sewaktu-waktu kosong.
[[Kategori:Status artikel]]
[[Kategori:Artikel yang membutuhkan perhatian]]
__HIDDENCAT__
{{INTERWIKI|Q2944440}}
ged9t800hx7ec7k49nzawwtel6tcpbo
Kategori:Artikel taman
14
689
2982
2981
2024-12-03T16:05:47Z
Jon Harald Søby
20
2 revisi diimpor
2981
wikitext
text/x-wiki
Halaman ini merupakan daftar artikel yang telah dirancang sebagai '''taman'''.
{{CatTOC}}
[[Kategori:Artikel menurut jenis]]
__HIDDENCAT__
{{INTERWIKI|Q7140947}}
0b4dgblv9nj355oe9eskohp9c5ye7yo
Kategori:Artikel taman yang dapat digunakan
14
690
2986
2985
2024-12-03T16:05:47Z
Jon Harald Søby
20
3 revisi diimpor
2985
wikitext
text/x-wiki
Halaman ini berisi daftar taman yang [[Wikiwisata:Status artikel|berstatus]] '''dapat digunakan''' . Artikel dalam kategori ini diberi tag {{Tl|usablepark}}.
{{CatTOC}}
__HIDDENCAT__
[[Kategori:Status artikel|dapat digunakan]]
{{INTERWIKI|Q15633661}}
j9cwnyxqv17xj5v99orf0k6ntx1yszc
Kategori:Artikel topik
14
691
2992
2991
2024-12-03T16:05:47Z
Jon Harald Søby
20
5 revisi diimpor
2990
wikitext
text/x-wiki
Halaman ini merupakan daftar artikel yang telah dirancang sebagai '''topik'''. Halaman ini berisi semua artikel Topik Perjalanan.
Konten akan ditambahkan oleh templat utam {{Tl|stbox}} melalui templat turunan berikut: {{Tl|Outlinetopic}}, {{Tl|Usabletopic}}, {{Tl|Guidetopic}} dan {{Tl|Startopic}}.
Kategori ini digunakan pada perhitungan di halaman [[Wikiwisata:Panel pemeliharaan]]. (total artikel di semua subkategori [[:Category:Topik perjalanan]] harus cocok dengan total artikel di level teratas kategori ini, jika tidak, mungkin templat tidak eksis).
{{CatTOC}}
[[Kategori:Artikel menurut jenis]]
__HIDDENCAT__
{{INTERWIKI|Q14206084}}
7pdp87fxmmxco0ppzcjmgtljykrih1r
Kategori:Artikel topik wisata yang dapat digunakan
14
692
2995
2994
2024-12-03T16:05:47Z
Jon Harald Søby
20
2 revisi diimpor
2994
wikitext
text/x-wiki
Halaman ini berisi artikel yang telah [[Wikiwisata:Status artikel|dinilai]] sebagai '''Dapat Digunakan''' dan memerlukan perhatian. Lihat [[Wikiwisata:Status artikel]] untuk penjelasan tentang apa yang membuat sebuah artikel dapat memenuhi syarat untuk diberi status ini.
Silakan gunakan templat berikut ini untuk menilai halaman sebagai topik yang dapat digunakan: '''<nowiki>{{{Usabletopic}}</nowiki>'''
Tentu saja, jika Anda melihat sebuah artikel perlu diperbaiki, langsung [[Wikiwisata:Libatkan diri|terjun saja]] dan [[Wikiwisata:Cara menyunting halaman|menyunting halamannya]]. Jika memenuhi kriteria artikel [[Wikiwisata:Artikel panduan|panduan]], cukup naikkan statusnya. Kami menghargai bantuan apa pun, meskipun itu hanya mengidentifikasi apa yang perlu dilakukan.
[[Kategori:Status artikel]]
__HIDDENCAT__
{{INTERWIKI|Q15632270}}
p5xycb5yvsptawqpi8xhehyktxg5vlt
Kategori:Artikel wilayah
14
693
2997
2996
2024-12-03T16:05:47Z
Jon Harald Søby
20
1 revisi diimpor
2996
wikitext
text/x-wiki
Halaman ini merupakan daftar artikel yang telah dirancang sebagai '''wilayah'''.
{{CatTOC}}
[[Kategori:Artikel menurut jenis]]
__HIDDENCAT__
{{INTERWIKI|Q7483211}}
s8ofesjhokawj6vsa34upuil7w6nr67
Kategori:Artikel yang dapat digunakan
14
694
3001
3000
2024-12-03T16:05:48Z
Jon Harald Søby
20
3 revisi diimpor
3000
wikitext
text/x-wiki
Halaman ini merupakan daftar artikel yang memiliki [[Wikiwisata:Status artikel|status]] yang '''Dapat digunakan''' dan butuh perhatian. Lihat [[Wikiwisata:Status artikel]] untuk deskripsi tentang apa yang dibutuhkan sebuah artikel untuk menyandang status ini.
Untuk menandai artikel sebagai '''Dapat Digunakan''', gunakan salah satu teks berikut sesuai jenis artikelnya: '''<nowiki>{{Usablecity}} {{Usableregion}} {{Usablecountry}} {{Usableitinerary}} {{Usabletopic}} {{Usablephrasebook}}</nowiki>'''
Jelas, jika Anda melihat artikel yang perlu diperbaiki, Anda harus [[Wikiwisata:Libatkan diri|silakan terjun langsung]] dan [[Wikiwisata:Cara menyunting halaman|sunting halamannya]]. Jika artikel memenuhi kriteria untuk menjadi artikel [[Wikiwisata:Artikel panduan|panduan]], cukup naikkan statusnya saja. Kami menghargai bantuan apa pun, bahkan jika itu hanya mensugesti apa tambahan perlu dilakukan.
{{CatTOC}}
[[Kategori:Status artikel|Dapat digunakan]]
__HIDDENCAT__
{{INTERWIKI|Q14374780}}
3nnycyf4w9q0dsp357zq8imvo21xevx
Kategori:Artikel yang membutuhkan perhatian
14
695
3004
3003
2024-12-03T16:05:48Z
Jon Harald Søby
20
2 revisi diimpor
3003
wikitext
text/x-wiki
Artikel dalam kategori berikut membutuhkan bantuan Anda. Tolong [[Wikiwisata:Libatkan diri|libatkan diri]] dan bantu mereka untuk berkembang!
__HIDDENCAT__
[[Kategori:Proyek]]
{{INTERWIKI|Q7477390}}
m0ewlfw3p58kj6i95736wxaq8o7peoz
Kategori:Asia
14
696
3010
3009
2024-12-03T16:05:48Z
Jon Harald Søby
20
5 revisi diimpor
3009
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Kategori benua}}
{{INTERWIKI|Q5610083}}
immg8wh0j25b03oku78gmt0utk61bp9
Kategori:Asia Selatan
14
697
3013
3012
2024-12-03T16:05:48Z
Jon Harald Søby
20
2 revisi diimpor
3012
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Asia}}
{{INTERWIKI|Q7214980}}
npcjlmd2m0ta2b5vqtb3ygvvs71yt8k
Kategori:Asia Tengah
14
698
3016
3015
2024-12-03T16:05:48Z
Jon Harald Søby
20
2 revisi diimpor
3015
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Asia}}
{{INTERWIKI|Q7214964}}
0fvcu6bbx5t4qvjmqphnv2eejrodkeb
Kategori:Asia Tenggara
14
699
3019
3018
2024-12-03T16:05:48Z
Jon Harald Søby
20
2 revisi diimpor
3018
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Asia}}
{{INTERWIKI|Q7214981}}
qzat4jk80hr24lz2b3qd1uaak8ce5on
Kategori:Asia Timur
14
700
3022
3021
2024-12-03T16:05:48Z
Jon Harald Søby
20
2 revisi diimpor
3021
wikitext
text/x-wiki
[[Kategori:Asia]]
{{INTERWIKI|Q8396862}}
b78of2s5p9f5dtcw4skumjvs87g4mp2
Kategori:Atraksi alam
14
701
3025
3024
2024-12-03T16:05:49Z
Jon Harald Søby
20
2 revisi diimpor
3024
wikitext
text/x-wiki
{{TopicCat}}
{{PartOfTopic|Topik wisata}}
{{INTERWIKI|Q105987932}}
sfuentocm3r60lcz1njp71ggcf6i03q
Kategori:Atraksi budaya
14
702
3027
3026
2024-12-03T16:05:49Z
Jon Harald Søby
20
1 revisi diimpor
3026
wikitext
text/x-wiki
{{TopicCat}}
{{PartOfTopic|Topik perjalanan}}
[[en:voy:Category:Cultural attractions]]
dicbomjozccpnn4ognt7hout7ivot1m
Kategori:Attica
14
703
3030
3029
2024-12-03T16:05:49Z
Jon Harald Søby
20
2 revisi diimpor
3029
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Yunani Tengah}}
{{INTERWIKI|Q122443}}
qofxkza9c8g4a4g0q7awrjipmyt3erq
Kategori:Bali
14
704
3034
3033
2024-12-03T16:05:49Z
Jon Harald Søby
20
3 revisi diimpor
3033
wikitext
text/x-wiki
<!-- Untuk kota/kabupaten di Provinsi Bali -->
[[Kategori:Indonesia]]
{{INTERWIKI|Q7216681}}
bj13akidpfudsosw909jea3z39hn2j2
Kategori:Bali Barat
14
705
3036
3035
2024-12-03T16:05:49Z
Jon Harald Søby
20
1 revisi diimpor
3035
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Bali}}
[[en:voy:Category:West Bali]]
hzakrz3f55jakiebiwy0e1duyy8gl0h
Kategori:Bali Timur
14
706
3039
3038
2024-12-03T16:05:49Z
Jon Harald Søby
20
2 revisi diimpor
3038
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Bali}}
[[en:voy:Category:East Bali]]
4rd2pbp9tqqq8hdg39dpkdqu8u0azwj
Kategori:Balkan
14
707
3042
3041
2024-12-03T16:05:49Z
Jon Harald Søby
20
2 revisi diimpor
3041
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Eropa}}
{{INTERWIKI|Q7447288}}
lt0q614nkkasd8ub8zgvmfsauqrg0qt
Kategori:Bandung
14
708
3045
3044
2024-12-03T16:05:50Z
Jon Harald Søby
20
2 revisi diimpor
3044
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Parahyangan}}
{{INTERWIKI|Q8287845}}
an3atdpuxvdn7v9qkw1dqmcg03d27ty
Kategori:Bangka-Belitung
14
709
3047
3046
2024-12-03T16:05:50Z
Jon Harald Søby
20
1 revisi diimpor
3046
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Sumatera}}
[[en:voy:Category:Bangka-Belitung]]
ar9khh1e12x99oqs1qdauoa9bgpo0vk
Kategori:Banten
14
710
3050
3049
2024-12-03T16:05:50Z
Jon Harald Søby
20
2 revisi diimpor
3049
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Jawa Barat}}
{{INTERWIKI|Q7026535}}
13dvpahzcsylmv8wh35caxna24lsr74
Kategori:Bantuan Wikivoyage
14
711
3052
3051
2024-12-03T16:05:50Z
Jon Harald Søby
20
1 revisi diimpor
3051
wikitext
text/x-wiki
#REDIRECT [[:Category:Bantuan Wikiwisata]]
819p7vbgusvxgl7gjsh2mstrovoumf4
Kategori:Bantuan Wikiwisata
14
712
3060
3059
2024-12-03T16:05:50Z
Jon Harald Søby
20
7 revisi diimpor
3059
wikitext
text/x-wiki
Kategori ini memuat halaman bantuan dan dokumen tata cara.
[[Kategori:Proyek]]
{{INTERWIKI|Q4588883}}
6zwm0tspxi0zr6coy3v9noag961ya4y
Kategori:Barbuda
14
713
3063
3062
2024-12-03T16:05:51Z
Jon Harald Søby
20
2 revisi diimpor
3062
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Antigua dan Barbuda}}
{{INTERWIKI|Q8289784}}
fxx7d6k20khs3jpkl79nl11tew7rfcs
Kategori:Batam
14
714
3066
3065
2024-12-03T16:05:51Z
Jon Harald Søby
20
2 revisi diimpor
3065
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Kepulauan Riau}}
{{INTERWIKI|Q8292573}}
7bh4cz313f42y9x0og39w7h602zdbzr
Kategori:Belanda Barat
14
715
3069
3068
2024-12-03T16:05:51Z
Jon Harald Søby
20
2 revisi diimpor
3068
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Belanda}}
{{INTERWIKI|Q19975489}}
jjtmnoprl0sgc3nc6sywtm7x41w8syr
Kategori:Benin Utara
14
716
3072
3071
2024-12-03T16:05:51Z
Jon Harald Søby
20
2 revisi diimpor
3071
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Benin}}
{{INTERWIKI|Q22337872}}
g2o3ldmvmjjpyhlufb6k46hcth4h1si
Kategori:Berlin
14
717
3075
3074
2024-12-03T16:05:51Z
Jon Harald Søby
20
2 revisi diimpor
3074
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Jerman}}
{{INTERWIKI|Q4579913}}
iqhr6mktymycijkt653o7c0p8qsxotm
Kategori:Bisayak
14
718
3079
3078
2024-12-03T16:05:51Z
Jon Harald Søby
20
3 revisi diimpor
3077
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Filipina}}
{{INTERWIKI|Q7143134}}
3m8y7et6ktu2ru931me53np8203ln1h
Kategori:Bogor Raya
14
719
3081
3080
2024-12-03T16:05:51Z
Jon Harald Søby
20
1 revisi diimpor
3080
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Jawa Barat}}
[[en:voy:Category:Bogor Raya]]
ja19xwwyerv805dlll63ali6ysbjukx
Kategori:Bot Wikivoyage
14
720
3083
3082
2024-12-03T16:05:52Z
Jon Harald Søby
20
1 revisi diimpor
3082
wikitext
text/x-wiki
Kategori ini berisi beberapa bot yang saat ini aktif di Wikivoyage. Setiap akun pengguna yang merupakan bot dapat ditambahkan ke kategori ini dengan menambahkan {{Tl|bot}} ke halaman pengguna.
[[Kategori:Pengguna|bot]]
9e4liu150jqwn21ja64u147coajnwr8
Kategori:Britania Raya
14
721
3086
3085
2024-12-03T16:05:52Z
Jon Harald Søby
20
2 revisi diimpor
3085
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Britania dan Irlandia}}
{{INTERWIKI|Q1411125}}
g6edgzrg3c7pj4ql4tywoyz764hmy8q
Kategori:Buku frase
14
722
3091
3090
2024-12-03T16:05:52Z
Jon Harald Søby
20
4 revisi diimpor
3090
wikitext
text/x-wiki
Buku Frase: Pengelompokan daftar frase dalam berbagai bahasa
Lihat juga:
*[[Buku frase]]
*[[Bicara]]
__HIDDENCAT__
[[Kategori:Artikel menurut jenis]]
{{INTERWIKI|Q14206712}}
8v1k5042h64ay9whh0362c8yhtj7iw1
Kategori:Cekungan Chao Phraya
14
723
3094
3093
2024-12-03T16:05:52Z
Jon Harald Søby
20
2 revisi diimpor
3093
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Thailand Tengah}}
{{INTERWIKI|Q8955847}}
lrzl2oh7opez1y1z93fl4c2blmms229
Kategori:Chubu
14
724
3096
3095
2024-12-03T16:05:52Z
Jon Harald Søby
20
1 revisi diimpor
3095
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Jepang}}
[[en:voy;Chubu]]
cjbhnl9x2tflro7a8stgxsmugdduq8q
Kategori:Daerah Istimewa Yogyakarta
14
725
3099
3098
2024-12-03T16:05:52Z
Jon Harald Søby
20
2 revisi diimpor
3098
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Jawa Tengah}}
{{INTERWIKI|Q3741}}
4cv7fb69fntzde55i69jdgyqr4at52h
Kategori:Danau Toba
14
726
3102
3101
2024-12-03T16:05:52Z
Jon Harald Søby
20
2 revisi diimpor
3101
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Sumatera Utara}}
{{INTERWIKI|Q8580284}}
cuzzjplta1wp9iewyjgcb0slr61poja
Kategori:Dataran Wallachia
14
727
3105
3104
2024-12-03T16:05:53Z
Jon Harald Søby
20
2 revisi diimpor
3104
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Muntenia}}
[[en:voy:Category:Wallachian Plain]]
qmgm2gab6cjux78vztuw71ni76o3l1v
Kategori:Delta Sungai Mutiara
14
728
3108
3107
2024-12-03T16:05:53Z
Jon Harald Søby
20
2 revisi diimpor
3107
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Guangdong}}
{{INTERWIKI|Q8719165}}
b21injxmm99r2ehq5sk1l709oor867f
Kategori:Disambiguasi
14
729
3113
3112
2024-12-03T16:05:53Z
Jon Harald Søby
20
4 revisi diimpor
3112
wikitext
text/x-wiki
Ini adalah daftar artikel yang berisi pemberitahuan disambiguasi menggunakan {{Tl|Disamb}}
{{CatTOC}}
[[Kategori:Artikel menurut jenis]]
__HIDDENCAT__
{{INTERWIKI|Q1982926}}
epge07w29fmsvz17ae6dze1ewgvadnt
Kategori:Drenthe
14
730
3116
3115
2024-12-03T16:05:53Z
Jon Harald Søby
20
2 revisi diimpor
3115
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Belanda Utara}}
{{INTERWIKI|Q7027666}}
3wejj0wu566v6tadu98lw4fpzk85517
Kategori:Eropa
14
731
3120
3119
2024-12-03T16:05:53Z
Jon Harald Søby
20
3 revisi diimpor
3119
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Kategori benua}}
{{INTERWIKI|Q4587662}}
1dtwhybrb5e027oihv5iyapnf5nvfer
Kategori:Eropa Tengah
14
732
3123
3122
2024-12-03T16:05:53Z
Jon Harald Søby
20
2 revisi diimpor
3122
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Eropa}}
{{INTERWIKI|Q8937945}}
gpox94i5repmi2pzx1rp3ygbqpp0lt0
Kategori:Eropa Timur
14
733
3126
3125
2024-12-03T16:05:54Z
Jon Harald Søby
20
2 revisi diimpor
3125
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Eropa}}
{{INTERWIKI|Q6581403}}
qn46h9m3lxw4n07bekaxwyelj1ywxxj
Kategori:Filipina
14
734
3129
3128
2024-12-03T16:05:54Z
Jon Harald Søby
20
2 revisi diimpor
3128
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Asia Tenggara}}
{{INTERWIKI|Q6999772}}
eoze1dznlhk4drmt7f86avwgxh3lurq
Kategori:Flores (Indonesia)
14
735
3131
3130
2024-12-03T16:05:54Z
Jon Harald Søby
20
1 revisi diimpor
3130
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Nusa Tenggara}}
[[en:voy:Category:Flores (Indonesia)]]
phh4t18xekt1zyvri3mplptczg6z3t3
Kategori:Gansu
14
736
3134
3133
2024-12-03T16:05:54Z
Jon Harald Søby
20
2 revisi diimpor
3133
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Tiongkok Barat Laut}}
{{INTERWIKI|Q6418878}}
aktygsfripgnz9vmzefgkj2vt75quzx
Kategori:Garis besar bandara
14
737
3139
3138
2024-12-03T16:05:54Z
Jon Harald Søby
20
4 revisi diimpor
3138
wikitext
text/x-wiki
Halaman ini berisi bandara yang [[Wikiwisata:Status artikel|berstatus]] '''garis besar''' . Artikel dalam kategori ini diberi tag {{Tl|outlineairport}}.
{{CatTOC}}
__HIDDENCAT__
[[Kategori:Status artikel]]
{{INTERWIKI|Q15633449}}
skwbaq8411cmba3ve1j1509lbwzq785
Kategori:Garis besar benua
14
738
3142
3141
2024-12-03T16:05:54Z
Jon Harald Søby
20
2 revisi diimpor
3141
wikitext
text/x-wiki
Halaman ini berisi daftar benua yang [[Wikiwisata:Status artikel|berstatus]] '''garis besar'''. Artikel dalam kategori ini diberi tag {{Tl|outlinecontinent}}.
{{CatTOC}}
__HIDDENCAT__
[[Kategori:Status artikel]]
{{INTERWIKI|Q14942470}}
0v8p0iqdczur9uk3zpn9qjjesphq7lg
Kategori:Garis besar buku frase
14
739
3145
3144
2024-12-03T16:05:54Z
Jon Harald Søby
20
2 revisi diimpor
3144
wikitext
text/x-wiki
Halaman ini berisi daftar buku frase yang [[Wikiwisata:Status artikel|berstatus]] '''garis besar''' . Artikel dalam kategori ini diberi tag {{Tl|outlinephrasebook}}.
{{CatTOC}}
__HIDDENCAT__
[[Kategori:Status artikel]]
ejsfqspk0r2tmblldtxg0av7bsswtbi
Kategori:Garis besar daerah pinggiran
14
740
3147
3146
2024-12-03T16:05:55Z
Jon Harald Søby
20
1 revisi diimpor
3146
wikitext
text/x-wiki
Halaman ini berisi daftar daerah pinggiran yang [[Wikiwisata:Status artikel|berstatus]] '''garis besar'''. Artikel dalam kategori ini diberi tag {{Tl|outlineruralarea}}.
{{CatTOC}}
__HIDDENCAT__
[[Kategori:Status artikel]]
{{INTERWIKI|Q122409801}}
rgf6gnmax0vxc3k13et5mfj5ktfb3yx
Kategori:Garis besar kota
14
741
3151
3150
2024-12-03T16:05:55Z
Jon Harald Søby
20
3 revisi diimpor
3149
wikitext
text/x-wiki
Halaman ini berisi daftar kota yang [[Wikiwisata:Status artikel|berstatus]] '''garis besar''' . Artikel dalam kategori ini diberi tag {{Tl|outlinecity}}.
{{CatTOC}}
__HIDDENCAT__
[[Kategori:Status artikel]]
{{INTERWIKI|Q14942467}}
oeej6a926kwtp73axzrapbsm6xy7fl0
Kategori:Garis besar negara
14
742
3154
3153
2024-12-03T16:05:55Z
Jon Harald Søby
20
2 revisi diimpor
3153
wikitext
text/x-wiki
Halaman ini berisi daftar negara yang [[Wikiwisata:Status artikel|berstatus]] '''garis besar'''. Artikel dalam kategori ini diberi tag {{Tl|outlinecountry}}.
{{CatTOC}}
__HIDDENCAT__
[[Kategori:Status artikel]]
{{INTERWIKI|Q14942474}}
q05dhvarjcxt6gr7w3zghq2efwxfyri
Kategori:Garis besar taman
14
743
3158
3157
2024-12-03T16:05:55Z
Jon Harald Søby
20
3 revisi diimpor
3157
wikitext
text/x-wiki
Halaman ini berisi daftar taman yang [[Wikiwisata:Status artikel|berstatus]] '''garis besar'''. Artikel dalam kategori ini diberi tag {{Tl|outlinepark}}.
{{CatTOC}}
__HIDDENCAT__
[[Kategori:Status artikel]]
{{INTERWIKI|Q14942478}}
sx25r3sgbzivg8gv3bqtzmxh7dagx17
Kategori:Garis besar topik
14
744
3160
3159
2024-12-03T16:05:55Z
Jon Harald Søby
20
1 revisi diimpor
3159
wikitext
text/x-wiki
#REDIRECT [[:Category:Garis besar topik wisata]]
lwybee6jioovlkvq4rcd1j5smzzjeax
Kategori:Garis besar topik wisata
14
745
3164
3163
2024-12-03T16:05:55Z
Jon Harald Søby
20
3 revisi diimpor
3162
wikitext
text/x-wiki
Halaman ini berisi daftar [[topik wisata]] yang [[Wikiwisata:Status artikel|berstatus]] '''garis besar'''. Artikel topik harus dikembangkan lebih lanjut, digabungkan menjadi artikel topik yang lebih umum, atau jika tidak ada target penggabungan yang sesuai maka topik tersebut akan '''dihapus''' jika tidak dikembangkan selama satu tahun.
{{CatTOC}}
__HIDDENCAT__
[[Kategori:Status artikel]]
{{INTERWIKI|Q14942482}}
c8ohkp2x6h8nd921itg2bjtatag1502
Kategori:Garis besar wilayah
14
746
3169
3168
2024-12-03T16:05:55Z
Jon Harald Søby
20
4 revisi diimpor
3168
wikitext
text/x-wiki
Halaman ini berisi daftar wilayah yang [[Wikiwisata:Status artikel|berstatus]] '''garis besar'''. Artikel dalam kategori ini diberi tag {{Tl|outlineregion}}.
{{CatTOC}}
__HIDDENCAT__
[[Kategori:Status artikel]]
{{INTERWIKI|Q14942480}}
ttbfqlw7luuljpkeftnz4sdat7s1buo
Kategori:Guangdong
14
747
3172
3171
2024-12-03T16:05:56Z
Jon Harald Søby
20
2 revisi diimpor
3171
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Tiongkok Selatan}}
{{INTERWIKI|Q6526598}}
903b2e9iaz7djdyhqxwmflgjh412lci
Kategori:Gyeonggi
14
748
3175
3174
2024-12-03T16:05:56Z
Jon Harald Søby
20
2 revisi diimpor
3174
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Korea Selatan}}
{{INTERWIKI|Q6526109}}
d7mifapichk0l10zuhp96i4mqn8q06j
Kategori:Hak kelompok pengguna
14
749
3178
3177
2024-12-03T16:05:56Z
Jon Harald Søby
20
2 revisi diimpor
3177
wikitext
text/x-wiki
[[Kategori:Bantuan Wikiwisata]]
{{INTERWIKI|Q6408649}}
e1cu9t6fjzqinb4pndj1zho7iy3fb3b
Kategori:Halaman dokumentasi templat
14
750
3181
3180
2024-12-03T16:05:56Z
Jon Harald Søby
20
2 revisi diimpor
3180
wikitext
text/x-wiki
[[Kategori:Templat]]
{{INTERWIKI|Q6330737}}
2kwhzq5e2y8tffompe5e7q7i4tamgtc
Kategori:Heilongjiang
14
751
3184
3183
2024-12-03T16:05:56Z
Jon Harald Søby
20
2 revisi diimpor
3183
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Tiongkok Timur Laut}}
[[en:voy:Category:Heilongjiang]]
mlmh4jc0k0zw1wiimmn2gp3dc4bvuqw
Kategori:Henan
14
752
3187
3186
2024-12-03T16:05:56Z
Jon Harald Søby
20
2 revisi diimpor
3186
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Tiongkok Utara}}
{{INTERWIKI|Q6600566}}
icyv3r8yf3xrkgpefbrwhprodc1av7r
Kategori:Henan Timur
14
753
3189
3188
2024-12-03T16:05:56Z
Jon Harald Søby
20
1 revisi diimpor
3188
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Henan}}
[[en:voy:Category:East Henan]]
739yl6sn3xd2argdkfadwogvfzawvud
Kategori:Hokkaido
14
754
3192
3191
2024-12-03T16:05:57Z
Jon Harald Søby
20
2 revisi diimpor
3191
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Jepang}}
{{INTERWIKI|Q6526565}}
l6eeki1ocq5arl71uw0weg1pv5xn06o
Kategori:Horehronie
14
755
3194
3193
2024-12-03T16:05:57Z
Jon Harald Søby
20
1 revisi diimpor
3193
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Slowakia Tengah}}
[[en:voy:Category:Horehronie]]
1yzmgnut3i69nktrw5pc4xbrkx94lep
Kategori:Hwanghae
14
756
3197
3196
2024-12-03T16:05:57Z
Jon Harald Søby
20
2 revisi diimpor
3196
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Korea Utara}}
{{INTERWIKI|Q18735989}}
9akilijdsdvt7zi9pf673csug69q2wm
Kategori:Hyogo
14
757
3200
3199
2024-12-03T16:05:57Z
Jon Harald Søby
20
2 revisi diimpor
3199
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Kansai}}
{{INTERWIKI|Q6526895}}
ia39qnbl2e6h7y0y93xt85bf0wdud90
Kategori:Indonesia
14
758
3205
3204
2024-12-03T16:05:57Z
Jon Harald Søby
20
4 revisi diimpor
3204
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Asia Tenggara}}
{{INTERWIKI|Q1455625}}
98r47erpity1hcb5fmxgqv2azmqp097
Kategori:Isaan
14
759
3207
3206
2024-12-03T16:05:57Z
Jon Harald Søby
20
1 revisi diimpor
3206
wikitext
text/x-wiki
#REDIRECT [[:Category:Isan]]
odmqumrgqtkogkilsezzm8861n490pk
Kategori:Isaan Utara
14
760
3209
3208
2024-12-03T16:05:57Z
Jon Harald Søby
20
1 revisi diimpor
3208
wikitext
text/x-wiki
#REDIRECT [[:Category:Isan Utara]]
jvz7trrx3p3egqu68mlx34jzm7fl9zr
Kategori:Isan
14
761
3213
3212
2024-12-03T16:05:58Z
Jon Harald Søby
20
3 revisi diimpor
3211
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Thailand}}
{{INTERWIKI|Q7139735}}
tbwfqq4536vw24ltp1p4cugosr7ipxv
Kategori:Isan Utara
14
762
3217
3216
2024-12-03T16:05:58Z
Jon Harald Søby
20
3 revisi diimpor
3215
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Isaan}}
{{INTERWIKI|Q115732741}}
tme4mr7cr2c672vmq0btkyne262to78
Kategori:Israel
14
763
3220
3219
2024-12-03T16:05:58Z
Jon Harald Søby
20
2 revisi diimpor
3219
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Timur Tengah}}
{{INTERWIKI|Q1411497}}
3884cs17sut4f0yfjwrbjmh82zvqftv
Kategori:Italia
14
764
3223
3222
2024-12-03T16:05:58Z
Jon Harald Søby
20
2 revisi diimpor
3222
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Eropa}}
{{INTERWIKI|Q1410903}}
5o3bjufrx9doi4erb4kywpmxgjllk5a
Kategori:Italia Tengah
14
765
3226
3225
2024-12-03T16:05:58Z
Jon Harald Søby
20
2 revisi diimpor
3225
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Italia}}
{{INTERWIKI|Q14281317}}
h0zwf38p3mi0qtnqggbqc56ul6llpdp
Kategori:Jakarta
14
766
3230
3229
2024-12-03T16:05:58Z
Jon Harald Søby
20
3 revisi diimpor
3229
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Jakarta Raya}}
[[Kategori:Indonesia]]
{{INTERWIKI|Q5612653}}
cqcppu3dmnnudsolm49ssp0rdtsh0wh
Kategori:Jakarta Raya
14
767
3233
3232
2024-12-03T16:05:58Z
Jon Harald Søby
20
2 revisi diimpor
3232
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Jawa Barat}}
{{INTERWIKI|Q27187311}}
8yvxsrqrmcnkxd0tpmnjkp0nip1vztb
Kategori:Jawa
14
768
3236
3235
2024-12-03T16:05:59Z
Jon Harald Søby
20
2 revisi diimpor
3235
wikitext
text/x-wiki
<!-- Untuk provinsi -->
[[Kategori:Indonesia]]
{{INTERWIKI|Q9976949}}
5m1cejwrmkcd2vr7rf61jbqsqdcfm6e
Kategori:Jawa Barat
14
769
3239
3238
2024-12-03T16:05:59Z
Jon Harald Søby
20
2 revisi diimpor
3238
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Jawa}}
{{INTERWIKI|Q3724}}
7vkqu5ma36b6unzu1bdz7bwfxozgagw
Kategori:Jawa Tengah
14
770
3244
3243
2024-12-03T16:05:59Z
Jon Harald Søby
20
4 revisi diimpor
3243
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Jawa}}
{{INTERWIKI|Q7026046}}
szlkbbwga1yuyd02vbvjr9zwv225i9y
Kategori:Jawa Timur
14
771
3247
3246
2024-12-03T16:05:59Z
Jon Harald Søby
20
2 revisi diimpor
3246
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Jawa}}
{{INTERWIKI|Q7026048}}
mazoau8pqbw6sld1jk4wyo4cf8q4o5e
Kategori:Jepang
14
772
3252
3251
2024-12-03T16:05:59Z
Jon Harald Søby
20
4 revisi diimpor
3251
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Asia Timur}}
{{INTERWIKI|Q17}}
0r3yg0w1x5ods4t9x615axbybics1qb
Kategori:Jerman
14
773
3254
3253
2024-12-03T16:05:59Z
Jon Harald Søby
20
1 revisi diimpor
3253
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Eropa tengah}}
[[en:voy:Category:Germany]]
ld98wzh61lxlcdm5jotx0xpsl2qaa15
Kategori:Jiangxi
14
774
3257
3256
2024-12-03T16:05:59Z
Jon Harald Søby
20
2 revisi diimpor
3256
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Tiongkok Selatan Tengah}}
{{INTERWIKI|Q6526950}}
el3cr8v3xmn48vv7j5n13i39nfytuyr
Kategori:Kalimantan
14
775
3260
3259
2024-12-03T16:06:00Z
Jon Harald Søby
20
2 revisi diimpor
3259
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Indonesia}}
{{INTERWIKI|Q6405187}}
c021ov0n9bhs4glecr77xgng534agoy
Kategori:Kalimantan Barat
14
776
3263
3262
2024-12-03T16:06:00Z
Jon Harald Søby
20
2 revisi diimpor
3262
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Kalimantan}}
{{INTERWIKI|Q7025674}}
8sxybbnfnudz8hntbf39i7f4kgbmt6m
Kategori:Kalimantan Selatan
14
777
3266
3265
2024-12-03T16:06:00Z
Jon Harald Søby
20
2 revisi diimpor
3265
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Kalimantan}}
{{INTERWIKI|Q6404896}}
h7mvmj5pliq7ytw6a9apnx9sjfgo4x3
Kategori:Kalimantan Tengah
14
778
3269
3268
2024-12-03T16:06:00Z
Jon Harald Søby
20
2 revisi diimpor
3268
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Kalimantan}}
{{INTERWIKI|Q7025667}}
b1b7cri92pplw3uk0dg8cbtksheq5p5
Kategori:Kalimantan Timur
14
779
3271
3270
2024-12-03T16:06:00Z
Jon Harald Søby
20
1 revisi diimpor
3270
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Kalimantan}}
[[en:voy:Category:East Kalimantan]]
qkm9a88x4k1hrnjuwa41as27zr9kosa
Kategori:Kategori benua
14
780
3276
3275
2024-12-03T16:06:00Z
Jon Harald Søby
20
4 revisi diimpor
3275
wikitext
text/x-wiki
Kategori yang direferensikan oleh {{Tl|isPartOf}}
Lihat [[Wikiwisata:Kategori benua]] untuk detilnya.
[[Kategori:Proyek]]
{{INTERWIKI|Q6581383}}
2jphwvnjd54he6sfoy37nf429sk6kxc
Kategori:Kategori eksperimental
14
781
3278
3277
2024-12-03T16:06:00Z
Jon Harald Søby
20
1 revisi diimpor
3277
wikitext
text/x-wiki
__HIDDENCAT__
Kategori dalam kategori ini adalah bagian dari inisiatif eksperimental. Secara umum, mereka diisi oleh [[Kategori:Templat eksperimental|templat eksperimental]] atau templat yang ada dengan fungsi eksperimental baru, dan status eksperimentalnya bergantung pada templat yang sesuai.
[[Kategori:Artikel yang perlu diperhatikan]]
rv55fnmxl5zg8pfiujse9o5kygbjvum
Kategori:Kaukasus
14
782
3281
3280
2024-12-03T16:06:01Z
Jon Harald Søby
20
2 revisi diimpor
3280
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Eropa}}
{{INTERWIKI|Q7462779}}
5y8g63z838x2mmi0f1vjwz4m404fvz5
Kategori:Kebijakan Wikiwisata
14
783
3284
3283
2024-12-03T16:06:01Z
Jon Harald Søby
20
2 revisi diimpor
3283
wikitext
text/x-wiki
[[Kategori:Proyek]]
{{INTERWIKI|Q4582366}}
pr2yrtnjhibh6wk256u363jvy6nt13s
Kategori:Kekhawatiran
14
784
3287
3286
2024-12-03T16:06:01Z
Jon Harald Søby
20
2 revisi diimpor
3286
wikitext
text/x-wiki
{{TopicCat}}
{{PartOfTopic|Topik wisata}}
{{INTERWIKI|Q56476118}}
ed4pvzd1x6xscthb4o4o8a227chnjn9
Kategori:Kepulauan Aegea Timur
14
785
3289
3288
2024-12-03T16:06:01Z
Jon Harald Søby
20
1 revisi diimpor
3288
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Kepulauan Yunani}}
[[en:voy:Category:East Aegean Islands]]
35wghsm9lib8w464wwlve3yalxp5yih
Kategori:Kepulauan Afrika Timur
14
786
3292
3291
2024-12-03T16:06:01Z
Jon Harald Søby
20
2 revisi diimpor
3291
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Afrika}}
[[en:voy:Category:East African Islands]]
9vf3l9xocsgpl4nj4ysb3o1fz4y4lpn
Kategori:Kepulauan Cook Selatan
14
787
3294
3293
2024-12-03T16:06:01Z
Jon Harald Søby
20
1 revisi diimpor
3293
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Kepulauan Cook}}
[[en:voy:Category:Southern_Cook_Islands]]
5gun5u7tu7qr68i6rwz106hhiatt1ga
Kategori:Kepulauan Gili
14
788
3296
3295
2024-12-03T16:06:01Z
Jon Harald Søby
20
1 revisi diimpor
3295
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Lombok}}
[[en:voy:Category:Gili Islands]]
9gn05vpju55uuabc28twh4g41rh8lnq
Kategori:Korea Selatan
14
789
3299
3298
2024-12-03T16:06:01Z
Jon Harald Søby
20
2 revisi diimpor
3298
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Asia Timur}}
{{INTERWIKI|Q1456095}}
tl9cx3dfioukm9zya8yufr1s2jrod8x
Kategori:Korea Utara
14
790
3302
3301
2024-12-03T16:06:02Z
Jon Harald Søby
20
2 revisi diimpor
3301
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Asia Timur}}
{{INTERWIKI|Q7059785}}
ptyieaqkq52flvwevehle3d3x3z9ycl
Kategori:Kotak pengguna
14
791
3307
3306
2024-12-03T16:06:02Z
Jon Harald Søby
20
4 revisi diimpor
3304
wikitext
text/x-wiki
{{Main|Wikiwisata:Kotak pengguna}}
[[Kategori:Templat]]
{{INTERWIKI|Q8307767}}
jfif0nztrtilff1ttyigkbjj8mb4zu9
Kategori:Kotak pengguna peran di Wikiwisata
14
792
3313
3312
2024-12-03T16:06:02Z
Jon Harald Søby
20
5 revisi diimpor
3312
wikitext
text/x-wiki
Ini hanyalah daftar kotak pengguna peran yang dapat diletakkan di halaman pengguna.
[[Kategori:Kotak pengguna]]
{{INTERWIKI|Q113025543}}
e5sjphsa6hcel4khe7m4xjmc29jmlg3
Kategori:Kroasia Tengah
14
793
3315
3314
2024-12-03T16:06:02Z
Jon Harald Søby
20
1 revisi diimpor
3314
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Kroasia}}
[[en:voy:Category:Central Croatia]]
grlc5xjqvwi5llnmewpkvtlectvv8u4
Kategori:Lakes and Gardens
14
794
3318
3317
2024-12-03T16:06:02Z
Jon Harald Søby
20
2 revisi diimpor
3317
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Dakota Utara}}
[[en:voy:Category:Lakes and Gardens]]
9ytegyvnzw52jltv5vxy5v0vaoqbz0e
Kategori:Lazio
14
795
3321
3320
2024-12-03T16:06:02Z
Jon Harald Søby
20
2 revisi diimpor
3320
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Italia Tengah}}
{{INTERWIKI|Q7215077}}
fgip8ul7zh7i6558zi4og3afa6pj48b
Kategori:Liaoning
14
796
3324
3323
2024-12-03T16:06:03Z
Jon Harald Søby
20
2 revisi diimpor
3323
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Tiongkok Timur Laut}}
{{INTERWIKI|Q6526924}}
mmkekpoajdqu5p6x7fftuq59q7602k1
Kategori:Libya
14
797
3327
3326
2024-12-03T16:06:03Z
Jon Harald Søby
20
2 revisi diimpor
3326
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Afrika Utara}}
{{INTERWIKI|Q6891421}}
g2v9z6hfd44o052n94h9pp2zmfnsdvr
Kategori:Lombok
14
798
3330
3329
2024-12-03T16:06:03Z
Jon Harald Søby
20
2 revisi diimpor
3329
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Nusa Tenggara}}
{{INTERWIKI|Q8601621}}
rc2zpfn6cro4b3w03yo0v2kg19t1udo
Kategori:Lombok Barat
14
799
3332
3331
2024-12-03T16:06:03Z
Jon Harald Søby
20
1 revisi diimpor
3331
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Lombok}}
[[en:voy:Category:West Lombok]]
r4g65gza2zso4znuc2hy29zyu4885be
Kategori:Luzon
14
800
3335
3334
2024-12-03T16:06:03Z
Jon Harald Søby
20
2 revisi diimpor
3334
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Filippina}}
{{INTERWIKI|Q7213899}}
5fa0w04q84xwlzccphiozyza6um7ft6
Kategori:Madura
14
801
3337
3336
2024-12-03T16:06:03Z
Jon Harald Søby
20
1 revisi diimpor
3336
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Jawa Timur}}
{{INTERWIKI|Q7485286}}
mikfmnfro4d0zz139kujd4td6h8z9dl
Kategori:Makanan dan minuman
14
802
3340
3339
2024-12-03T16:06:03Z
Jon Harald Søby
20
2 revisi diimpor
3339
wikitext
text/x-wiki
{{TopicCat}}
{{PartOfTopic|Topik perjalanan}}
{{INTERWIKI|Q5645580}}
p124l8edzllntr37r803xmkcr4hn7qr
Kategori:Malawi Tengah
14
803
3343
3342
2024-12-03T16:06:03Z
Jon Harald Søby
20
2 revisi diimpor
3342
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Malawi}}
{{INTERWIKI|Q8353676}}
edy47bkvi0zywkfiewbtxq59d6qhg2v
Kategori:Malaysia
14
804
3348
3347
2024-12-03T16:06:04Z
Jon Harald Søby
20
4 revisi diimpor
3346
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Asia Tenggara}}
{{INTERWIKI|Q5611001}}
cnzov389zvd1ydw5oq97fz58hnxbkkw
Kategori:Maluku
14
805
3351
3350
2024-12-03T16:06:04Z
Jon Harald Søby
20
2 revisi diimpor
3350
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Indonesia}}
{{INTERWIKI|Q7163631}}
2dk6otmiynctuik6j6vfw28l0xqamvv
Kategori:Memiliki bingkai peta
14
806
3355
3354
2024-12-03T16:06:04Z
Jon Harald Søby
20
3 revisi diimpor
3354
wikitext
text/x-wiki
{{Experimental}}
{{CatTOC}}
__HIDDENCAT__
Kategori ini berisi artikel yang memiliki templat {{Tl|mapframe}}.
[[Kategori:Peta dinamis]]
{{INTERWIKI|Q23893248}}
1hws8bdlx3j4hqrq5dttt1f7j730erv
Kategori:Memiliki kotak peringatan
14
807
3357
3356
2024-12-03T16:06:04Z
Jon Harald Søby
20
1 revisi diimpor
3356
wikitext
text/x-wiki
__HIDDENCAT__
Halaman dalam kategori ini memiliki kotak peringatan. Kotak peringatan harus ditinjau dari waktu ke waktu untuk memastikannya agar tetap mutakhir - lihat [[:Category:Memiliki kotak peringatan dengan peringatan kedaluwarsa]] untuk halaman tempat Anda dapat menghapus atau memperbarui peringatan usang.
[[Kategori:Artikel yang membutuhkan perhatian]]
rnbju6irpq1188vs0k7xk9snl2k6azf
Kategori:Memiliki kotak peringatan yang kedaluwarsa
14
808
3360
3359
2024-12-03T16:06:04Z
Jon Harald Søby
20
2 revisi diimpor
3359
wikitext
text/x-wiki
__HIDDENCAT__
Halaman dalam kategori ini memiliki kotak peringatan dengan tanggal suntingan terakhirnya lebih dari 6 bulan. Kotak peringatan harus ditinjau dari waktu ke waktu untuk memastikan kotak peringatan tersebut tetap mutakhir.
Lihat juga [[:Category:Memiliki kotak peringatan tanpa tanggal]]
[[Kategori:Artikel yang membutuhkan perhatian]]
[[en:voy:Category:Has warning box with out of date warning]]
5ks3j4rad4herjv2e8b8rbriaj2vnyt
Kategori:Memiliki kotak rute
14
809
3363
3362
2024-12-03T16:06:05Z
Jon Harald Søby
20
2 revisi diimpor
3362
wikitext
text/x-wiki
{{CatTOC}}
__HIDDENCAT__
[[Kategori:Proyek]]
{{INTERWIKI|Q18193299}}
k9a2b0k8t4h8kgv8zz3wds1fdd7eha9
Kategori:Memiliki parameter Geo
14
810
3367
3366
2024-12-03T16:06:05Z
Jon Harald Søby
20
3 revisi diimpor
3366
wikitext
text/x-wiki
Artikel yang memiliki templat {{Tl|Geo}} untuk koordinat geografisnya.
__HIDDENCAT__
[[Kategori:Proyek]]
{{INTERWIKI|Q15181275}}
5rgucd2cvfz24h7z2aixaohj6lh9nws
Kategori:Memiliki penanda peta
14
811
3371
3370
2024-12-03T16:06:05Z
Jon Harald Søby
20
3 revisi diimpor
3370
wikitext
text/x-wiki
{{CatTOC}}
__HIDDENCAT__
Artikel dalam kategori ini memiliki setidaknya satu templat {{Tl|listing}} atau {{Tl|marker}} yang menempatkan penanda pada peta dinamis.
Untuk artikel tanpa peta, pertimbangkan untuk menambahkan {{Tl|mapframe}}. Temukan artikel dengan penanda yang memilikinya '''[http://tools.wmflabs.org/catscan2/catscan2.php?project=wikivoyage&categories=Has+map+markers&templates_no=mapframe&doit=1 disini]'''.
{{INTERWIKI|Q23893248}}
m9kwv08c1vd765ncgyazs9pz76gry1q
Kategori:Metropolitan Roma
14
812
3375
3374
2024-12-03T16:06:05Z
Jon Harald Søby
20
3 revisi diimpor
3374
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Lazio}}
{{INTERWIKI|Q20933370}}
f30ihkx0wvpwomq615fcr77ws0un9t4
Kategori:Muntenia
14
813
3378
3377
2024-12-03T16:06:05Z
Jon Harald Søby
20
2 revisi diimpor
3377
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Rumania}}
{{INTERWIKI|Q13273816}}
egpntsb3qvkx7as7x768294optm7v64
Kategori:Nagano (prefektur)
14
814
3381
3380
2024-12-03T16:06:05Z
Jon Harald Søby
20
2 revisi diimpor
3380
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Chubu}}
{{INTERWIKI|Q6526261}}
me9a7q680bhzjq6lekanqorkrv1znpi
Kategori:Negara Baltik
14
815
3384
3383
2024-12-03T16:06:05Z
Jon Harald Søby
20
2 revisi diimpor
3383
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Category:Eropa}}
{{INTERWIKI|Q8287485}}
nfgo7u7x52tlh6gq45bc2u27ynwmpy3
Kategori:Negara yang menggunakan Ejaan Inggris Amerika
14
816
3386
3385
2024-12-03T16:06:06Z
Jon Harald Søby
20
1 revisi diimpor
3385
wikitext
text/x-wiki
__HIDDENCAT__
[[Kategori:Administrasi Wikiwisata]]
[[en:voy:Category:Countries where Wikivoyage uses American spelling]]
qqoblkeqdort68e4k7s02srku4ct1j7
Kategori:Negara yang menggunakan Ejaan Inggris Australia
14
817
3388
3387
2024-12-03T16:06:06Z
Jon Harald Søby
20
1 revisi diimpor
3387
wikitext
text/x-wiki
__HIDDENCAT__
[[Kategori:Administrasi Wikiwisata]]
[[en:voy:Category:Countries where Wikivoyage uses Australian spelling]]
gbahdjs0atksa4xoxh169f8m7trl15e
Kategori:Negara yang menggunakan Ejaan Inggris Britania
14
818
3391
3390
2024-12-03T16:06:06Z
Jon Harald Søby
20
2 revisi diimpor
3390
wikitext
text/x-wiki
__HIDDENCAT__
[[Kategori:Administrasi Wikiwisata]]
[[en:voy:Category:Countries where Wikivoyage uses British spelling]]
b70kx4nvjpbtbls943uzmuc7fcf2n4e
Kategori:Nigeria
14
819
3394
3393
2024-12-03T16:06:06Z
Jon Harald Søby
20
2 revisi diimpor
3393
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Afrika Barat}}
{{INTERWIKI|Q1455797}}
givkgc693wxx4fupu319vgzgiq6umsl
Kategori:Norwegia
14
820
3398
3397
2024-12-03T16:06:06Z
Jon Harald Søby
20
3 revisi diimpor
3397
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Negara Nordik}}
{{INTERWIKI|Q7130670}}
tmasw3xrqzdentbe1kdk6tsozp3cvr6
Kategori:Nunavut
14
821
3401
3400
2024-12-03T16:06:06Z
Jon Harald Søby
20
2 revisi diimpor
3400
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Kanada Utara}}
{{INTERWIKI|Q7045635}}
dxmgkzhzuo6pat6vv12cgyyow3r606v
Kategori:Nusa Tenggara
14
822
3404
3403
2024-12-03T16:06:06Z
Jon Harald Søby
20
2 revisi diimpor
3403
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Indonesia}}
{{INTERWIKI|Q56570972}}
00jepuwt1kzarrtgc5olfrsqi8paqtc
Kategori:Oseania
14
823
3414
3413
2024-12-03T16:06:07Z
Jon Harald Søby
20
9 revisi diimpor
3413
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Kategori benua}}
{{INTERWIKI|Q9421926}}
kcfsu6opgfirdkc9g6269waayfooj7n
Kategori:Ostrobothnia Selatan
14
824
3417
3416
2024-12-03T16:06:07Z
Jon Harald Søby
20
2 revisi diimpor
3416
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Pantai Barat (Finlandia)}}
{{INTERWIKI|Q8782016}}
ep73ehovpauypvtt1h05qsrq4rk4nia
Kategori:Panduan distrik
14
825
3420
3419
2024-12-03T16:06:07Z
Jon Harald Søby
20
2 revisi diimpor
3419
wikitext
text/x-wiki
Halaman ini berisi daftar distrik yang [[Wikiwisata:Status artikel|berstatus]] '''panduan''' . Artikel dalam kategori ini diberi tag {{Tl|guidedistrict}}.
{{CatTOC}}
__HIDDENCAT__
[[Kategori:Status artikel]]
{{INTERWIKI|Q14941459}}
mzbh6xshiwgbophnt9s8lbqmeuqawn9
Kategori:Panduan wilayah
14
826
3423
3422
2024-12-03T16:06:07Z
Jon Harald Søby
20
2 revisi diimpor
3421
wikitext
text/x-wiki
Halaman ini berisi daftar wilayah yang [[Wikiwisata:Status artikel|berstatus]] '''panduan''' . Artikel dalam kategori ini diberi tag {{Tl|guideregion}}.
{{CatTOC}}
__HIDDENCAT__
[[Kategori:Status artikel]]
{{INTERWIKI|Q14941465}}
iwgt3ahxixpq875jwg11kvdxh6fdjpq
Kategori:Papua
14
827
3426
3425
2024-12-03T16:06:07Z
Jon Harald Søby
20
2 revisi diimpor
3425
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Indonesia}}
{{INTERWIKI|Q7026620}}
b76o0mfgz8rxogg8l46o7te9ao5rl9j
Kategori:Parahyangan
14
828
3428
3427
2024-12-03T16:06:07Z
Jon Harald Søby
20
1 revisi diimpor
3427
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Jawa Barat}}
[[en:voy:Category:Parahyangan]]
4jjknf1kscjq6up8fv70zv66u9cqwg0
Kategori:Parahyangan Timur
14
829
3430
3429
2024-12-03T16:06:08Z
Jon Harald Søby
20
1 revisi diimpor
3429
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Jawa Barat}}
[[en:voy:Category:East Parahyangan]]
2plwvc3jmamymir3jcqrf2eth41r9ja
Kategori:Paris
14
830
3433
3432
2024-12-03T16:06:08Z
Jon Harald Søby
20
2 revisi diimpor
3432
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Île-de-France}}
{{INTERWIKI|Q5626403}}
dfml4n9zh8oxy5wdkf9lcrmcxrqcpm5
Kategori:Pedoman Wikiwisata
14
831
3436
3435
2024-12-03T16:06:08Z
Jon Harald Søby
20
2 revisi diimpor
3435
wikitext
text/x-wiki
[[Kategori:Proyek]]
{{INTERWIKI|Q4656417}}
n08rgiv8akaybw6ty31emkisdxx2qmw
Kategori:Pelanggaran hak cipta
14
832
3440
3439
2024-12-03T16:06:08Z
Jon Harald Søby
20
3 revisi diimpor
3439
wikitext
text/x-wiki
[[Kategori:Artikel yang membutuhkan perhatian]]
Kategori ini berisi artikel yang telah diberi tag {{Tl|Copyvio}}.
__HIDDENCAT__
{{INTERWIKI|Q4616504}}
ows1cxa5hmab1ct4bn8bqjl7o4t2ij7
Kategori:Pengguna
14
833
3442
3441
2024-12-03T16:06:08Z
Jon Harald Søby
20
1 revisi diimpor
3441
wikitext
text/x-wiki
[[Kategori:Proyek]]
79dvg8oqcqgsyf2vrvcv4c9p8mn19eq
Kategori:Perak
14
834
3445
3444
2024-12-03T16:06:08Z
Jon Harald Søby
20
2 revisi diimpor
3444
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Pantai Barat (Malaysia)}}
{{INTERWIKI|Q6806480}}
i4ypk86pfu0o974v9bvfj18y4z4iesx
Kategori:Perancis
14
835
3448
3447
2024-12-03T16:06:08Z
Jon Harald Søby
20
2 revisi diimpor
3447
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Eropa}}
{{INTERWIKI|Q8249}}
80pcfrk9u1zvm3cxe8xjphgcqg8duqa
Kategori:Perserikatan Bangsa-Bangsa
14
836
3451
3450
2024-12-03T16:06:09Z
Jon Harald Søby
20
2 revisi diimpor
3450
wikitext
text/x-wiki
{{TopicCat}}
{{PartOfTopic|Atraksi budaya}}
{{INTERWIKI|Q1458160}}
8cnt6sfbu1q6dbdmlvt869prsy76lvm
Kategori:Peta dengan gambar statis
14
837
3454
3453
2024-12-03T16:06:09Z
Jon Harald Søby
20
2 revisi diimpor
3453
wikitext
text/x-wiki
Artikel ini memiliki peta dinamis dengan gambar statis.
{{Experimental}}
__HIDDENCAT__
[[Kategori:Peta dinamis]]
{{INTERWIKI|Q27996053}}
7qa6r5bqdkfjrvqqpswg6mui0poghpc
Kategori:Peta dengan perataan non-tetapan
14
838
3457
3456
2024-12-03T16:06:09Z
Jon Harald Søby
20
2 revisi diimpor
3456
wikitext
text/x-wiki
laman-laman berikut memiliki peta dinamis dengan perataan non-tetapan.
{{Experimental}}
__HIDDENCAT__
[[Kategori:Peta dinamis]]
{{INTERWIKI|Q17579819}}
no9igcuypd9fcn25uyt3w9pg6vmk734
Kategori:Peta dengan ukuran non-tetapan
14
839
3460
3459
2024-12-03T16:06:09Z
Jon Harald Søby
20
2 revisi diimpor
3459
wikitext
text/x-wiki
Kategori ini berisi laman dengan peta dinamis dengan ukuran non-tetapan.
{{Experimental}}
__HIDDENCAT__
[[Kategori:Peta dinamis]]
{{INTERWIKI|Q17579808}}
8xmmablof8ekxvf43gna0a3n2du1cr9
Kategori:Peta dinamis
14
840
3463
3462
2024-12-03T16:06:09Z
Jon Harald Søby
20
2 revisi diimpor
3462
wikitext
text/x-wiki
__HIDDENCAT__
[[Kategori:Proyek]]
{{INTERWIKI|Q47515003}}
6f9hvfy6vxjsv55uh8yupq2pr240oj6
Kategori:Peta dunia
14
841
3466
3465
2024-12-03T16:06:09Z
Jon Harald Søby
20
2 revisi diimpor
3465
wikitext
text/x-wiki
[[Kategori:Templat]]
{{INTERWIKI|Q16021539}}
flgfivu8pth1ipz2t1qdgkkd5r73u2h
Kategori:Pohnpei
14
842
3469
3468
2024-12-03T16:06:09Z
Jon Harald Søby
20
2 revisi diimpor
3468
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Negara Federasi Mikronesia}}
{{INTERWIKI|Q8767638}}
bih58gocgrt15a8za9jfy0ykz45ztsd
Kategori:Proyek
14
843
3474
3473
2024-12-03T16:06:10Z
Jon Harald Søby
20
4 revisi diimpor
3473
wikitext
text/x-wiki
Ini adalah kategori akar yang digunakan untuk mengatur [[Proyek:Kategori|hierarki kategori]] Wikiwisata . Kategori tingkat atas yang terdapat dalam kategori ini meliputi:
*'''Administrasi Wikiwisata''' - Digunakan untuk halaman infrastruktur yang mengelola atau mengubah perilaku perangkat lunak Mediawiki, seperti [[Proyek:Daftar hitam spam lokal|daftar hitam spam lokal]] atau [[Proyek:Tautan ke halaman disambiguasi|tautan ke halaman yang disambiguasi]].
*'''Kolaborasi Wikiwisata''' - Digunakan untuk halaman pemungutan suara, nominasi, dan kolaborasi seperti [[Proyek:Suara untuk dihapus|Suara untuk dihapus]] dan [[Proyek:Nominasi bintang]].
*'''Draf dan proposal Wikiwisata''' - Diskusi tentang bagaimana menerapkan tugas yang diusulkan, draft bantuan, halaman kebijakan atau pedoman yang belum selesai atau yang sedang menunggu konsensus; halaman proyek apa pun yang diberi tag {{Tl|Eksperimental}} kemungkinan berada di sini.
*'''Ekspedisi Wikiwisata''' - Digunakan untuk [[Proyek:Ekspedisi|halaman ekspedisi]] .
*'''Bantuan Wikiwisata''' - Digunakan untuk halaman bantuan/HOWTO seperti [[Proyek:Bantuan halaman pengguna]] atau [[Proyek:Cara membuat akun]] .
{{INTERWIKI|Q1281}}
l0agekyvgoista8puu9n26eu1l5p3ac
Kategori:Pyongan
14
844
3476
3475
2024-12-03T16:06:10Z
Jon Harald Søby
20
1 revisi diimpor
3475
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Korea Utara}}
[[en:voy:Category:Pyongan]]
07uxlguymcs4kdf6y4xxcqoczf2w1fs
Kategori:Quickbar yang kekurangan informasi
14
845
3479
3478
2024-12-03T16:06:10Z
Jon Harald Søby
20
2 revisi diimpor
3478
wikitext
text/x-wiki
Kategori ini berisi halaman dengan {{Tl|Quickbar}} yang informasinya kurang. Silakan tambahkan informasi baru yang kurang ke Wikidata.
''Lihat pula:'' [[:d:Wikidata:Wikivoyage/Lists/Quickbar]]
== Kueri ==
* [{{Catscancall}}&categories=Quickbar%20with%20missing%20information&ns%5B0%5D=1&wikidata_prop_item_use=P36&wpiu=none&interface_language=id&active_tab=&doit= Kurang info ibukota]
* [{{Catscancall}}&categories=Quickbar%20with%20missing%20information&ns%5B0%5D=1&wikidata_prop_item_use=P38&wpiu=none&interface_language=id&active_tab=&doit= Kurang info mata uang]
* [{{Catscancall}}&categories=Quickbar%20with%20missing%20information&ns%5B0%5D=1&wikidata_prop_item_use=P1082&wpiu=none&interface_language=id&active_tab=&doit= Kurang info populasi]
* [{{Catscancall}}&categories=Quickbar%20with%20missing%20information&ns%5B0%5D=1&wikidata_prop_item_use=P2884&wpiu=none&interface_language=id&active_tab=&doit= Kurang info kelistrikan]
* [{{Catscancall}}&categories=Quickbar%20with%20missing%20information&ns%5B0%5D=1&wikidata_prop_item_use=P474&wpiu=none&interface_language=id&active_tab=&doit= Kurang info kode negara]
* [{{Catscancall}}&categories=Quickbar%20with%20missing%20information&ns%5B0%5D=1&wikidata_prop_item_use=P421&wpiu=none&interface_language=id&active_tab=&doit= Kurang info zona waktu]
* [{{Catscancall}}&categories=Quickbar%20with%20missing%20information&ns%5B0%5D=1&wikidata_prop_item_use=P2852&wpiu=none&interface_language=id&active_tab=&doit= Kurang info nomor darurat]
* [{{Catscancall}}&categories=Quickbar%20with%20missing%20information&ns%5B0%5D=1&wikidata_prop_item_use=P1622&wpiu=none&interface_language=id&active_tab=&doit= Kurang info sisi lalu lintas]
* [{{Catscancall}}&categories=Quickbar%20with%20missing%20information&ns%5B0%5D=1&wikidata_prop_item_use=P242&wpiu=none&interface_language=id&active_tab=&doit= Kurang gambar peta lokasi]
* [{{Catscancall}}&categories=Quickbar%20with%20missing%20information&ns%5B0%5D=1&wikidata_prop_item_use=P2853&wpiu=none&interface_language=id&active_tab=&doit= Kurang info jenis colokan]
__HIDDENCAT__
[[Kategori:Artikel yang membutuhkan perhatian]]
[[en:voy:Category:Quickbar with missing information]]
t3uwcmcgxvc8c56b78q8duf4v98gobo
Kategori:Rencana perjalanan
14
846
3483
3482
2024-12-03T16:06:10Z
Jon Harald Søby
20
3 revisi diimpor
3482
wikitext
text/x-wiki
Kategori ini berisi '''Rencana perjalanan'''.
[[Kategori:Artikel menurut jenis]]
__HIDDENCAT__
{{INTERWIKI|Q8683270}}
0hd5371rj9t69z8lg1r0olt7zhku84g
Kategori:Riau
14
847
3485
3484
2024-12-03T16:06:10Z
Jon Harald Søby
20
1 revisi diimpor
3484
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Sumatera}}
{{INTERWIKI|Q7216780}}
ki5utk6fyw6fdp7npea3jwthejyb6ej
Kategori:River Heritage
14
848
3488
3487
2024-12-03T16:06:10Z
Jon Harald Søby
20
2 revisi diimpor
3487
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Alabama}}
{{INTERWIKI|Q22343532}}
fth185wmg2sixe3y491qqfagnp7uw7g
Kategori:Roma
14
849
3491
3490
2024-12-03T16:06:11Z
Jon Harald Søby
20
2 revisi diimpor
3490
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Metropolitan Roma}}
{{INTERWIKI|Q8682052}}
h9sjoeskqce3ewz7wxec062f1gwaiz3
Kategori:Sarawak
14
850
3493
3492
2024-12-03T16:06:11Z
Jon Harald Søby
20
1 revisi diimpor
3492
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Malaysia}}
[[en:vpy:Category:Sarawak]]
f05tq1uziyvl6oprs568vm3cui6zz3v
Kategori:Saskatchewan
14
851
3496
3495
2024-12-03T16:06:11Z
Jon Harald Søby
20
2 revisi diimpor
3495
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Prairies}}
{{INTERWIKI|Q7146046}}
lws5tb12bj4e6tutz81rf5ui1ify47j
Kategori:Selangor
14
852
3500
3499
2024-12-03T16:06:11Z
Jon Harald Søby
20
3 revisi diimpor
3499
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Pesisir Barat (Malaysia)}}
{{INTERWIKI|Q6954431}}
3pu429mod6d91wnfazfwv8ld5r26skf
Kategori:Shaanxi
14
853
3503
3502
2024-12-03T16:06:11Z
Jon Harald Søby
20
2 revisi diimpor
3502
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Tiongkok Barat Laut}}
{{INTERWIKI|Q6526938}}
9d7xet4mv6tqes2ik1k894q3o8xs4mg
Kategori:Shandong
14
854
3506
3505
2024-12-03T16:06:11Z
Jon Harald Søby
20
2 revisi diimpor
3505
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Tiongkok Utara}}
{{INTERWIKI|Q6600303}}
6hvqx43ggj82gwthxjejnhwf2glm1mj
Kategori:Shanxi
14
855
3509
3508
2024-12-03T16:06:11Z
Jon Harald Søby
20
2 revisi diimpor
3508
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Tiongkok Utara}}
{{INTERWIKI|Q6526621}}
qgbapkwwbwtpslkypj1inmr02zyvnlg
Kategori:Shiga
14
856
3512
3511
2024-12-03T16:06:11Z
Jon Harald Søby
20
2 revisi diimpor
3511
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Kansai}}
{{INTERWIKI|Q6526500}}
masr9x6a7vc5tswgn0gw7rpi412mwbd
Kategori:Sichuan
14
857
3515
3514
2024-12-03T16:06:12Z
Jon Harald Søby
20
2 revisi diimpor
3514
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Tiongkok Barat Daya}}
{{INTERWIKI|Q6526629}}
d3u7l1m637ym3qh6r2jd0aizfp66sgz
Kategori:Singapura
14
858
3518
3517
2024-12-03T16:06:12Z
Jon Harald Søby
20
2 revisi diimpor
3517
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Asia Tenggara}}
{{INTERWIKI|Q1456051}}
iaz3ervdzx6xxkezoqqnmwgp0527dlv
Kategori:Sirkuit Pusat
14
859
3521
3520
2024-12-03T16:06:12Z
Jon Harald Søby
20
2 revisi diimpor
3520
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Hokkaido}}
{{INTERWIKI|Q18740354}}
e2poqcd6o91kdxmbd6syshuejso1yzg
Kategori:Sirkuit Timur
14
860
3523
3522
2024-12-03T16:06:12Z
Jon Harald Søby
20
1 revisi diimpor
3522
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Hokkaido}}
[[en:voy:Category:Eastern Circuit]]
l6dp8sfz4a09mz6rpfalr7g5hdab1nw
Kategori:Sirkuit Utara
14
861
3525
3524
2024-12-03T16:06:12Z
Jon Harald Søby
20
1 revisi diimpor
3524
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Hokkaido}}
[[en:voy:Category:Northern Circuit]]
roycrh1fahme0kk5pei3nafi7gzjdlb
Kategori:Situs Wikiwisata
14
862
3528
3527
2024-12-03T16:06:12Z
Jon Harald Søby
20
2 revisi diimpor
3527
wikitext
text/x-wiki
Kategori ini berisi halaman tentang situs Wikiwisata, seperti penghargaan yang dimenangkan atau acara Wikiwisata.
[[Kategori:Proyek]]
{{INTERWIKI|Q15726281}}
6hidc7icpw71ml1g96bu89dip01043x
Kategori:Slowakia
14
863
3531
3530
2024-12-03T16:06:12Z
Jon Harald Søby
20
2 revisi diimpor
3530
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Eropa Tengah}}
{{INTERWIKI|Q4368526}}
44px0nmcpy4axr2rhihe1kv6vv9srfc
Kategori:Slowakia Tengah
14
864
3533
3532
2024-12-03T16:06:13Z
Jon Harald Søby
20
1 revisi diimpor
3532
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Slowakia}}
[[en:voy:Category:Central Slovakia]]
rkddbc8r8a53ks5jh7bi7gqz4lb0hma
Kategori:Småland
14
865
3536
3535
2024-12-03T16:06:13Z
Jon Harald Søby
20
2 revisi diimpor
3535
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Götaland}}
{{INTERWIKI|Q8755386}}
s5xopxcynzojc70fsappnld4epmrkqw
Kategori:Status artikel
14
866
3539
3538
2024-12-03T16:06:13Z
Jon Harald Søby
20
2 revisi diimpor
3538
wikitext
text/x-wiki
Kategori ini berisi kategori untuk tiap [[Wikiwisata:Status artikel|status artikel]].
[[Kategori:Proyek]]
{{INTERWIKI|Q1281}}
juxiiag4ghykzw8x0q1mykvmd7l6r79
Kategori:Sulawesi
14
867
3542
3541
2024-12-03T16:06:13Z
Jon Harald Søby
20
2 revisi diimpor
3541
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Indonesia}}
{{INTERWIKI|Q7213898}}
lyu6wrmlxox1u88stde6bmjdcx9zghu
Kategori:Sulawesi Selatan
14
868
3545
3544
2024-12-03T16:06:13Z
Jon Harald Søby
20
2 revisi diimpor
3544
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Sulawesi}}
{{INTERWIKI|Q7026290}}
608vorxwxi1pnyh6cxswdopl29wf31r
Kategori:Sulawesi Tengah
14
869
3548
3547
2024-12-03T16:06:13Z
Jon Harald Søby
20
2 revisi diimpor
3547
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Sulawesi}}
{{INTERWIKI|Q7026272}}
09iycxet6omynhd5pr876msuwqgw76i
Kategori:Sulawesi Tenggara
14
870
3550
3549
2024-12-03T16:06:13Z
Jon Harald Søby
20
1 revisi diimpor
3549
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Sulawesi}}
[[en:voy:Category:Southeast Sulawesi]]
3hhmit2awqjwao2b3yvx6hmovefwqrx
Kategori:Sulawesi Utara
14
871
3552
3551
2024-12-03T16:06:14Z
Jon Harald Søby
20
1 revisi diimpor
3551
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Sulawesi}}
[[en:voy:Category:Northern Sulawesi]]
has0h6jv4o85vk53ejj6o4d1tnyiemd
Kategori:Sumatera
14
872
3555
3554
2024-12-03T16:06:14Z
Jon Harald Søby
20
2 revisi diimpor
3554
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Indonesia}}
{{INTERWIKI|Q7213906}}
3baa6tmc7g3ikp0q3lxixjxib531bhz
Kategori:Sumatera Barat
14
873
3558
3557
2024-12-03T16:06:14Z
Jon Harald Søby
20
2 revisi diimpor
3557
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Sumatera}}
{{INTERWIKI|Q7027283}}
qmomtl581l6bbdtk9yspb52woj6xfve
Kategori:Sumatera Utara
14
874
3561
3560
2024-12-03T16:06:14Z
Jon Harald Søby
20
2 revisi diimpor
3560
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Sumatera}}
{{INTERWIKI|Q7027279}}
qmvxrdbegergvntmhgnlbm1qcoa8w9u
Kategori:Surakarta
14
875
3563
3562
2024-12-03T16:06:14Z
Jon Harald Søby
20
1 revisi diimpor
3562
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Jawa Tengah}}
[[en:voy:Category:Surakarta]]
c2pfc182r2cwbuc5q2432fu0vi4owcx
Kategori:Taman nasional
14
876
3566
3565
2024-12-03T16:06:14Z
Jon Harald Søby
20
2 revisi diimpor
3565
wikitext
text/x-wiki
{{TopicCat}}
{{PartOfTopic|Atraksi alam}}
{{INTERWIKI|Q7213753}}
4n9azn5pcwzvme1hrs7lv4yoaajlrsh
Kategori:Tapal Kuda
14
877
3569
3568
2024-12-03T16:06:14Z
Jon Harald Søby
20
2 revisi diimpor
3568
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Jawa Timur}}
[[en:voy:Category:The Horseshoe]]
6esfg4y3h2swtgxrr9u74hzbhqi9tzw
Kategori:Tempat di seluruh dunia
14
878
3577
3576
2024-12-03T16:06:15Z
Jon Harald Søby
20
7 revisi diimpor
3574
wikitext
text/x-wiki
Ini adalah pranala tempat dari seluruh dunia, yang menggunakan {{Tl|isPartOf}}
{{CatTOC}}
__HIDDENCAT__
[[Kategori:Proyek]]
{{INTERWIKI|Q14932817}}
2b8ojzb25kzu5jf84k03t2cxn9d58ao
Kategori:Templat
14
879
3580
3579
2024-12-03T16:06:15Z
Jon Harald Søby
20
2 revisi diimpor
3579
wikitext
text/x-wiki
{{INTERWIKI|Q3740}}
50rcuwo149c04f5ztk14yr713rwxiuu
Kategori:Templat AIGA
14
880
3583
3582
2024-12-03T16:06:15Z
Jon Harald Søby
20
2 revisi diimpor
3582
wikitext
text/x-wiki
Templat yang digunakan dalam halaman-halaman [[Wikiwisata:Templat kerangka artikel|kerangka artikel]].
[[Kategori:Templat]]
[[zh:voy:Category:AIGA模板]]
cj404lrw0ij7wt0eijnz1vsfz6oxkx2
Kategori:Templat BintangWiki
14
881
3585
3584
2024-12-03T16:06:15Z
Jon Harald Søby
20
1 revisi diimpor
3584
wikitext
text/x-wiki
[[Kategori:Templat]]
[[en:voy:Category:Barncompass templates]]
6bvhnt7ewf9axgzfkp3iwgek3csk807
Kategori:Templat format dan fungsi
14
882
3588
3587
2024-12-03T16:06:15Z
Jon Harald Søby
20
2 revisi diimpor
3587
wikitext
text/x-wiki
[[Kategori:Templat]]
{{INTERWIKI|Q5409992}}
oc4nilufqwz22rprx3jymhquok4hw98
Kategori:Templat gambar
14
883
3591
3590
2024-12-03T16:06:15Z
Jon Harald Søby
20
2 revisi diimpor
3590
wikitext
text/x-wiki
[[Kategori:Templat]]
{{INTERWIKI|Q9704766}}
r35e78jqem88b58po25uhc9uul7xrne
Kategori:Templat hak cipta
14
884
3594
3593
2024-12-03T16:06:15Z
Jon Harald Søby
20
2 revisi diimpor
3593
wikitext
text/x-wiki
[[Kategori:Templat]]
{{INTERWIKI|Q7020897}}
ftnzo0c9jpo7cmjlagc6urkv7mmnly8
Kategori:Templat hatnote
14
885
3597
3596
2024-12-03T16:06:16Z
Jon Harald Søby
20
2 revisi diimpor
3596
wikitext
text/x-wiki
[[Kategori:Templat]]
{{INTERWIKI|Q8506127}}
o4urkdudorn97izgqxrmczgje30k66s
Kategori:Templat klasifikasi artikel
14
886
3599
3598
2024-12-03T16:06:16Z
Jon Harald Søby
20
1 revisi diimpor
3598
wikitext
text/x-wiki
Untuk rincian lebih lanjut tentang penggunaan templat dalam kategori ini, lihat [[Wikiwisata:Status artikel]].
[[Kategori:Templat]]
{{INTERWIKI|Q15632017}}
9igpw3mdloq5jre55v4gjsnan8y0r87
Kategori:Templat mata uang individual
14
887
3603
3602
2024-12-03T16:06:16Z
Jon Harald Søby
20
3 revisi diimpor
3602
wikitext
text/x-wiki
[[Kategori:Templat mata uang]]
{{INTERWIKI|Q113040293}}
qphh11as9ik0at3qrstzxd7fh3617nh
Kategori:Templat pemeliharaan
14
888
3606
3605
2024-12-03T16:06:16Z
Jon Harald Søby
20
2 revisi diimpor
3605
wikitext
text/x-wiki
[[Kategori:Templat]]
{{INTERWIKI|Q5610208}}
ebmoqd9vqosd7u5xl1jejtx3zmd5kwk
Kategori:Templat peta dinamis
14
889
3609
3608
2024-12-03T16:06:16Z
Jon Harald Søby
20
2 revisi diimpor
3608
wikitext
text/x-wiki
[[Kategori:Templat]]
{{INTERWIKI|Q6802403}}
h43t06chyli1txrf6j0fdh0625bgj5w
Kategori:Templat ruang nama pengguna
14
890
3612
3611
2024-12-03T16:06:16Z
Jon Harald Søby
20
2 revisi diimpor
3611
wikitext
text/x-wiki
[[Kategori:Templat]]
{{INTERWIKI|Q6115642}}
s01z7nv9yd8z1e9k0xx0pumqyb7g39v
Kategori:Templat rumit
14
891
3617
3616
2024-12-03T16:06:17Z
Jon Harald Søby
20
4 revisi diimpor
3616
wikitext
text/x-wiki
{{Ombox
|text = '''Pengurus, ada banyak halaman yang butuh diurus disini!'''
Mohon perhatiannya untuk ini.
}}
Di Wikiwisata, '''Templat rumit''' merupakan templat yang terdiri dari kode-kode rumit. Templat ini '''''hanya boleh''''' disunting oleh pengguna yang ahli atau berpengalaman. Jika disunting oleh pengguna yang kurang berpengalaman, bisa terjadi galat. Untuk itu halaman yang termasuk kategori ini, sebaiknya dilindungi pengurus.
{{INTERWIKI|Q7105337}}
gows569nncwksym0pwqdfbdth51z0wf
Kategori:Templat waktu, tanggal dan kalender
14
892
3620
3619
2024-12-03T16:06:17Z
Jon Harald Søby
20
2 revisi diimpor
3619
wikitext
text/x-wiki
[[Kategori:Templat]]
{{INTERWIKI|Q3855}}
22o1w7jjin99t7ec9rww8z88a5nl20p
Kategori:Template
14
893
3624
3623
2024-12-03T16:06:17Z
Jon Harald Søby
20
3 revisi diimpor
3623
wikitext
text/x-wiki
#redirect[[Kategori:Templat]]
o3xplz8bfqjfowzudaz9vwmtbch0ppq
Kategori:Tennessee Timur
14
894
3626
3625
2024-12-03T16:06:17Z
Jon Harald Søby
20
1 revisi diimpor
3625
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Tennessee}}
[[en:voy:Category:Eastern_Tennessee]]
piuv89extc1kdiyxcz6fjogiwquelhe
Kategori:Tetap sehat
14
895
3629
3628
2024-12-03T16:06:17Z
Jon Harald Søby
20
2 revisi diimpor
3628
wikitext
text/x-wiki
{{TopicCat}}
{{PartOfTopic|Topik wisata}}
{{INTERWIKI|Q18155940}}
lxdnehwmyinx0orxkqxh0njac1um0xi
Kategori:Thailand
14
896
3632
3631
2024-12-03T16:06:17Z
Jon Harald Søby
20
2 revisi diimpor
3631
wikitext
text/x-wiki
{{RegionCat}}
{{IsPartOf|Asia Tenggara}}
{{INTERWIKI|Q1456388}}
q5ob5u0zhhg0f9goas11w8vcb987hzr