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}}}.&#32;&#32;}}<!-- -->Untuk {{#if:{{{2|}}}|{{{2}}}|kegunaan lainnya}}, lihat {{#if:{{{3|}}}|[[{{{3}}}]]{{#ifeq:{{{4|}}}|and|&#32;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, ..." -->&#32;&#32;Untuk {{#ifeq:{{{4}}}|1|other uses|{{{4}}}}}, lihat {{#if:{{{5|}}}|[[{{{5}}}]]{{#ifeq:{{{6|}}}|and|&#32;dan {{#if:{{{7|}}}|[[{{{7}}}]]|[[{{PAGENAME}} (disambiguasi)]]}}}}|[[{{PAGENAME}} (disambiguasi)]]}}.}}<!-- -->{{#if:{{{6|}}}|<!-- -->{{#ifeq:{{{6|}}}|and||<!-- -->&#32;&#32;Untuk {{#ifeq:{{{6}}}|1|other uses|{{{6}}}}}, lihat {{#if:{{{7|}}}|[[{{{7}}}]]{{#ifeq:{{{8|}}}|and|&#32;dan {{#if:{{{9|}}}|[[{{{9}}}]]|[[{{PAGENAME}} (disambiguasi)]]}}}}|[[{{PAGENAME}} (disambiguasi)]]}}.}}<!-- -->{{#if:{{{8|}}}|<!-- -->{{#ifeq:{{{8|}}}|and||<!-- -->&#32;&#32;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|}}}|&nbsp;• [https://bugzilla.wikimedia.org/show_bug.cgi?id={{{2}}} {{{2}}}]}}<!-- -->{{#if:{{{3|}}}|&nbsp;• [https://bugzilla.wikimedia.org/show_bug.cgi?id={{{3}}} {{{3}}}]}}<!-- -->{{#if:{{{4|}}}|&nbsp;• [https://bugzilla.wikimedia.org/show_bug.cgi?id={{{4}}} {{{4}}}]}}<!-- -->{{#if:{{{5|}}}|&nbsp;• [https://bugzilla.wikimedia.org/show_bug.cgi?id={{{5}}} {{{5}}}]}}<!-- -->{{#if:{{{6|}}}|&nbsp;• [https://bugzilla.wikimedia.org/show_bug.cgi?id={{{6}}} {{{6}}}]}}<!-- -->{{#if:{{{7|}}}|&nbsp;• [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=&emsp;}}</del> }} |{{ #if: {{{Authorlink1|}}} |[[{{{Authorlink1}}} |{{{Surname1}}}{{ #if: {{{Given1|}}} |{{{NameSep|,&#32;}}}{{{Given1}}} }}]] |{{{Surname1}}}{{ #if: {{{Given1|}}} |{{{NameSep|,&#32;}}}{{{Given1}}} }} }} }}{{ #if: {{{Surname2|}}} |{{#ifexpr:{{{Trunc|8}}}<2 |&#32;''et al''. |{{ #iferror: {{ #expr: 1*0.0{{{AuthorMask|}}} }} |&#32;<!-- then punctuation should be included in AuthorMask --> |{{ #if: {{{Surname3|}}} |{{{AuthorSep|&#059;&#32;}}} |{{#if:{{{amp|}}}|&#32;&amp;&#32;|{{{AuthorSep|&#059;&#32;}}}}} }} }}{{ #if: {{{Authorlink2|}}} |[[{{{Authorlink2}}} |{{{Surname2}}}{{ #if: {{{Given2|}}} |{{{NameSep|,&#32;}}}{{{Given2}}} }}]] |{{{Surname2}}}{{ #if: {{{Given2|}}} |{{{NameSep|,&#32;}}}{{{Given2}}} }} }}{{ #if: {{{Surname3|}}} |{{#ifexpr:{{{Trunc|8}}}<3 |&#32;''et al''. |{{ #if: {{{Surname4|}}} |{{{AuthorSep|&#059;&#32;}}} |{{#if:{{{amp|}}}|&#32;&amp;&#32;|{{{AuthorSep|&#059;&#32;}}}}} }}{{ #if: {{{Authorlink3|}}} |[[{{{Authorlink3}}} |{{{Surname3}}}{{ #if: {{{Given3|}}} |{{{NameSep|,&#32;}}}{{{Given3}}} }}]] |{{{Surname3}}}{{ #if: {{{Given3|}}} |{{{NameSep|,&#32;}}}{{{Given3}}} }} }}{{ #if:{{{Surname4|}}} |{{#ifexpr:{{{Trunc|8}}}<4 |&#32;''et al''. |{{ #if: {{{Surname5|}}} |{{{AuthorSep|&#059;&#32;}}} |{{#if:{{{amp|}}}|&#32;&amp;&#32;|{{{AuthorSep|&#059;&#32;}}}}} }}{{ #if: {{{Authorlink4|}}} |[[{{{Authorlink4}}} |{{{Surname4}}}{{ #if: {{{Given4|}}} |{{{NameSep|,&#32;}}}{{{Given4}}} }}]] |{{{Surname4}}}{{ #if: {{{Given4|}}} |{{{NameSep|,&#32;}}}{{{Given4}}} }} }}{{ #if:{{{Surname5|}}} |{{#ifexpr:{{{Trunc|8}}}<5 |&#32;''et al''. |{{ #if: {{{Surname6|}}} |{{{AuthorSep|&#059;&#32;}}} |{{#if:{{{amp|}}}|&#32;&amp;&#32;|{{{AuthorSep|&#059;&#32;}}}}} }}{{ #if: {{{Authorlink5|}}} |[[{{{Authorlink5}}} |{{{Surname5}}}{{ #if: {{{Given5|}}} |{{{NameSep|,&#32;}}}{{{Given5}}} }}]] |{{{Surname5}}}{{ #if: {{{Given5|}}} |{{{NameSep|,&#32;}}}{{{Given5}}} }} }}{{ #if:{{{Surname6|}}} |{{#ifexpr:{{{Trunc|8}}}<6 |&#32;''et al''. |{{ #if: {{{Surname7|}}} |{{{AuthorSep|&#059;&#32;}}} |{{#if:{{{amp|}}}|&#32;&amp;&#32;|{{{AuthorSep|&#059;&#32;}}}}} }}{{ #if: {{{Authorlink6|}}} |[[{{{Authorlink6}}} |{{{Surname6}}}{{ #if: {{{Given6|}}} |{{{NameSep|,&#32;}}}{{{Given6}}} }}]] |{{{Surname6}}}{{ #if: {{{Given6|}}} |{{{NameSep|,&#32;}}}{{{Given6}}} }} }}{{ #if:{{{Surname7|}}} |{{#ifexpr:{{{Trunc|8}}}<7 |&#32;''et al''. |{{ #if: {{{Surname8|}}} |{{{AuthorSep|&#059;&#32;}}} |{{#if:{{{amp|}}}|&#32;&amp;&#32;|{{{AuthorSep|&#059;&#32;}}}}} }}{{ #if: {{{Authorlink7|}}} |[[{{{Authorlink7}}} |{{{Surname7}}}{{ #if: {{{Given7|}}} |{{{NameSep|,&#32;}}}{{{Given7}}} }}]] |{{{Surname7}}}{{ #if: {{{Given7|}}} |{{{NameSep|,&#32;}}}{{{Given7}}} }} }}{{ #if:{{{Surname8|}}} |{{#ifexpr:{{{Trunc|8}}}<8 |&#32;''et al''. |{{ #if: {{{Surname9|}}} |{{{AuthorSep|&#059;&#32;}}} |{{#if:{{{amp|}}}|&#32;&amp;&#32;|{{{AuthorSep|&#059;&#32;}}}}} }}{{ #if: {{{Authorlink8|}}} |[[{{{Authorlink8}}} |{{{Surname8}}}{{ #if: {{{Given8|}}} |{{{NameSep|,&#32;}}}{{{Given8}}} }}]] |{{{Surname8}}}{{ #if: {{{Given8|}}} |{{{NameSep|,&#32;}}}{{{Given8}}} }} }}{{ #if:{{{Surname9|}}} |&#32;''et al''. }} }} }} }} }} }} }} }} }} }} }} }} }} }} }}{{ #if: {{{Date|}}} |&#32;({{{Date}}}){{ #if:{{{YearNote|}}} |&#32;[{{{YearNote}}}] }} }} |{{<!-- ============== No author: display editors first == --> #if: {{{EditorSurname1|}}} |{{ #if: {{{Editorlink1|}}} |[[{{{Editorlink1}}} |{{{EditorSurname1}}}{{ #if: {{{EditorGiven1|}}} |, {{{EditorGiven1}}} }}]] |{{{EditorSurname1}}}{{ #if: {{{EditorGiven1|}}} |, {{{EditorGiven1}}} }} }}{{ #if: {{{EditorSurname2|}}} |{{ #if: {{{EditorSurname3|}}} |{{{AuthorSep|&#059;&#32;}}} |{{#if:{{{amp|}}}|&#32;&amp;&#32;|{{{AuthorSep|&#059;&#32;}}}}} }}{{ #if: {{{Editorlink2|}}} |[[{{{Editorlink2}}} |{{{EditorSurname2}}}{{ #if: {{{EditorGiven2|}}} |, {{{EditorGiven2}}} }}]] |{{{EditorSurname2}}}{{ #if: {{{EditorGiven2|}}} |, {{{EditorGiven2}}} }} }}{{ #if: {{{EditorSurname3|}}} |{{ #if: {{{EditorSurname4|}}} |{{{AuthorSep|&#059;&#32;}}} |{{#if:{{{amp|}}}|&#32;&amp;&#32;|{{{AuthorSep|&#059;&#32;}}}}} }}{{ #if: {{{Editorlink3|}}} |[[{{{Editorlink3}}} |{{{EditorSurname3}}}{{ #if: {{{EditorGiven3|}}} |, {{{EditorGiven3}}} }}]] |{{{EditorSurname3}}}{{ #if: {{{EditorGiven3|}}} |, {{{EditorGiven3}}} }} }}{{ #if:{{{EditorSurname4|}}} |&#32;et al. }} }} }}, ed{{#if:{{{EditorSurname2|}}}|s}}{{#ifeq:{{{Sep|,}}}|.||.}}{{ #if: {{{Date|}}} |&#32;({{{Date}}}){{ #if:{{{YearNote|}}} |&#32;[{{{YearNote}}}] }} }} }} }}{{ <!--============ Title of included work ============--> #if: {{{IncludedWorkTitle|}}}{{#if:{{{Periodical|}}}||{{#if:{{{TransItalic|}}}||{{{TransTitle|}}}}}}} |{{ #if:{{{Surname1|}}}{{{EditorSurname1|}}} |{{{Sep|,}}}&#32; }}{{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|}}} |&#32; }}&#91;{{{TransTitle}}}&#93; }}" }} }} }}{{ <!--============ Place (if different than PublicationPlace) ============--> #if: {{{Place|}}} |{{ #ifeq: {{{Place|}}} | {{{PublicationPlace|}}} | |{{ #if: {{{Surname1|}}}{{{EditorSurname1|}}}{{{IncludedWorkTitle|}}} |{{{Sep|,}}}&#32;ditulis di {{{Place}}} }} }} }}{{ <!--============ Editor of compilation ============--> #if: {{{EditorSurname1|}}} |{{ #if: {{{Surname1|}}} |{{{Sep|,}}}&#32;{{ #if: {{{IncludedWorkTitle|}}} |di dalam&#32; }}{{ #if: {{{Editorlink1|}}} |[[{{{Editorlink1}}} |{{{EditorSurname1}}}{{ #if: {{{EditorGiven1|}}} |, {{{EditorGiven1}}} }}]] |{{{EditorSurname1}}}{{ #if: {{{EditorGiven1|}}} |, {{{EditorGiven1}}} }}}}{{ #if: {{{EditorSurname2|}}} |{{ #if: {{{EditorSurname3|}}} |{{{AuthorSep|&#059;&#32;}}} |{{#if:{{{amp|}}}|&#32;&amp;&#32;|{{{AuthorSep|&#059;&#32;}}}}} }}{{ #if: {{{Editorlink2|}}} |[[{{{Editorlink2}}}|{{{EditorSurname2}}}{{ #if: {{{EditorGiven2|}}} |, {{{EditorGiven2}}} }}]] |{{{EditorSurname2}}}{{ #if: {{{EditorGiven2|}}} |, {{{EditorGiven2}}} }} }}{{ #if: {{{EditorSurname3|}}} |{{ #if: {{{EditorSurname4|}}} |&#059;&#32; |{{#if:{{{amp|}}}|&#32;&amp;&#32;|{{{AuthorSep|&#059;&#32;}}}}} }}{{ #if: {{{Editorlink3|}}} |[[{{{Editorlink3}}}|{{{EditorSurname3}}}{{ #if: {{{EditorGiven3|}}} |, {{{EditorGiven3}}} }}]] |{{{EditorSurname3}}}{{ #if: {{{EditorGiven3|}}} |, {{{EditorGiven3}}} }} }}{{ #if:{{{EditorSurname4|}}} |&#32;et al. }} }} }}{{ #if: {{{IncludedWorkTitle|}}} | |{{{Sep|,}}}&#32;ed{{#if:{{{EditorSurname2|}}}|s}}{{#ifeq:{{{Sep|,}}}|.||.}} }} }} }}{{ <!--============ Periodicals ============--> #if: {{{Periodical|}}} |{{ #if: {{{Other|}}} |{{{Sep|,}}}&#32;{{{Other|}}} }}{{ #if: {{{Surname1|}}}{{{EditorSurname1|}}}{{{IncludedWorkTitle|}}} |{{{Sep|,}}}&#32;}}{{ #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|}}} |&#32; }}&#91;{{{TransTitle}}}&#93; }}" }}{{ #if: {{{TitleNote|}}} |{{{Sep|,}}}&#32;{{{TitleNote}}} }} }} }}{{ #if: {{{language|}}} |&#32;(dalam bahasa {{{language}}}) }}{{ #if: {{{format|}}} |&#32;({{{format}}}) }}{{ #if: {{{Periodical|}}} |{{ #if:{{{IncludedWorkTitle|}}}{{{Title|}}}{{{TransTitle|}}} |{{{Sep|,}}}&#32; }}''<nowiki />{{{Periodical}}}<nowiki />''{{ #if: {{{Series|}}} |{{{Sep|,}}}&#32;{{{Series}}} }}{{ #if: {{{PublicationPlace|}}} |{{ #if: {{{Publisher|}}} |&#32;({{{PublicationPlace}}}<nowiki>: </nowiki>{{{Publisher}}}) |&#32;({{{PublicationPlace}}}) }} |{{ #if: {{{Publisher|}}} |&#32;({{{Publisher}}}) }} }}{{ #if: {{{Volume|}}} |&#32;'''<nowiki />{{{Volume}}}<nowiki />'''{{ #if: {{{Issue|}}} |&#32;({{{Issue}}}) }} |{{ #if: {{{Issue|}}} |&#32;({{{Issue}}}) }} }}{{ #if: {{{At|}}} |<nowiki>: </nowiki> {{{At}}} }} |{{ <!--============ Anything else with a title, including books ============--> #if: {{{Title|}}}{{{TransItalic|}}} |{{ #if: {{{Surname1|}}}{{{EditorSurname1|}}}{{{IncludedWorkTitle|}}}{{{Periodical|}}} |{{{Sep|,}}} }}&#32;{{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|}}}|&#32;&#91;{{{TransItalic}}}&#93; }}<nowiki />'' }} }}{{ #if: {{{TitleType|}}} |&#32;({{{TitleType}}}) }}{{ #if: {{{Series|}}} |{{{Sep|,}}}&#32;{{{Series}}} }}{{ #if: {{{Volume|}}} |{{{Sep|,}}}&#32;'''<nowiki />{{{Volume}}}<nowiki />''' }}{{ #if: {{{Other|}}} |{{{Sep|,}}}&#32;{{{Other|}}} }}{{ #if: {{{Edition|}}} |&#32;(edisi ke-{{{Edition}}}) }}{{ #if: {{{PublicationPlace|}}} |{{{Sep|,}}}&#32;{{{PublicationPlace}}} }}{{ #if: {{{Publisher|}}} |{{ #if: {{{PublicationPlace|}}} |<nowiki>:</nowiki> |{{{Sep|,}}} }}&#32;{{{Publisher}}} }} }}{{ <!--============ Date (if no author/editor) ============--> #if: {{{Surname1|}}}{{{EditorSurname1|}}} | |{{ #if: {{{Date|}}} |{{{Sep|,}}}&#32;{{#time:j F Y|{{{Date}}}}}{{ #if:{{{YearNote|}}} |&#32;[{{{YearNote}}}] }} }} }}{{ <!--============ Publication date ============--> #if: {{{PublicationDate|}}} |{{ #ifeq: {{{PublicationDate|}}} | {{#time:j F Y|{{{Date|}}}}} | |{{ #if: {{{EditorSurname1|}}} |{{ #if: {{{Surname1|}}} |{{{Sep|,}}}&#32;{{#time:j F Y|{{{PublicationDate}}}}} |&#32;(dipublikasi {{#time:j F Y|{{{PublicationDate}}}}}) }} |{{ #if: {{{Periodical|}}} |{{{Sep|,}}}&#32;{{#time:j F Y|{{{PublicationDate}}}}} |&#32;(dipublikasi {{#time:j F Y|{{{PublicationDate}}}}}) }} }} }} }}{{ <!--============ Page within included work ============--> #if: {{{Periodical|}}} | |{{ #if: {{{At|}}} |{{{Sep|,}}}&#32;{{{At}}} }} }}{{ <!--===============DOI================--> #if:{{{DOI|}}} |{{{Sep|,}}}&#32;[[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|,}}}&#32;{{{ID}}} |{{{ID}}} }} }}{{ <!--============ ISBN ============--> #if: {{{ISBN|}}} |{{{Sep|,}}}&#32;[[International Standard Book Number|ISBN]] [[Istimewa:BookSources/{{{ISBN}}}|{{{ISBN}}}]] }}{{ <!--============ ISSN ============--> #if: {{{ISSN|}}} |{{{Sep|,}}}&#32;[[International Standard Serial Number|ISSN]] [http://worldcat.org/issn/{{{ISSN}}} {{{ISSN}}}] }}{{ <!--============ OCLC ============--> #if: {{{OCLC|}}} |{{{Sep|,}}}&#32;[[Online Computer Library Center|OCLC]] [http://worldcat.org/oclc/{{urlencode:{{{OCLC}}}}} {{{OCLC}}}] }}{{ <!--============ PMID ============--> #if: {{{PMID|}}} |{{{Sep|,}}}&#32;[[PubMed Identifier|PMID]] [http://www.ncbi.nlm.nih.gov/pubmed/{{{PMID}}} {{{PMID}}}] }}{{ <!--============ PMC ============--> #if: {{{PMC|}}} |{{ #if: {{{URL|}}} |{{{Sep|,}}}&#32;[[PubMed Central|PMC]] [http://www.pubmedcentral.nih.gov/articlerender.fcgi?tool=pmcentrez&artid={{{PMC}}} {{{PMC}}}] }} }}{{ <!--============ BIBCODE ============--> #if: {{{Bibcode|}}} |{{{Sep|,}}}&#32;[[Bibcode]]:&nbsp;[http://adsabs.harvard.edu/abs/{{{Bibcode}}} {{{Bibcode}}}] }}{{ <!--============ Archive data, etc ===========--> #if: {{{Archive|}}} |{{{Sep|,}}}&#32;{{{Archive}}}[[Kategori:Pages using deprecated citation archive parameters]] |{{ #if:{{{ArchiveURL|}}}{{{ArchiveDate|}}} |{{{Sep|,}}}&#32;{{#ifeq:{{{Sep}}}|.|D|d}}iarsipkan{{ #if:{{{OriginalURL|}}}{{{IncludedWorkURL|}}} |{{#if:{{{ArchiveURL|}}}|&#32;dari {{Citation/make link|{{{OriginalURL|{{{IncludedWorkURL|}}}}}}|yang asli}}}} }}{{ #if:{{{ArchiveDate|}}} |&#32;pada {{#time:j F Y|{{{ArchiveDate}}}}} }}{{ #if:{{#if:{{{ArchiveURL|}}}||A}}{{#if:{{{OriginalURL|}}}{{{IncludedWorkURL|}}}||B}}{{#if:{{{ArchiveDate|}}}||C}} |. {{citation error |If you specify <code>&#124;{{#if:{{{ArchiveURL|}}}|archiveurl|archivedate}}&#61;</code>, you must {{#if:{{{OriginalURL|}}}{{{IncludedWorkURL|}}}| also specify <code>&#124;{{#if:{{{ArchiveURL|}}}|archivedate|archiveurl}}&#61;</code>|first specify <code>&#124;url&#61;</code>}}}} }} }} }}{{ <!--============ URL and AccessDate ============--> #if: {{{URL|}}}{{{IncludedWorkURL|}}} |{{ #if: {{{Title|}}}{{{IncludedWorkTitle|}}}{{{TransTitle|}}} |<span class="printonly">{{{Sep|,}}}&#32;{{ #if: {{{IncludedWorkURL|}}} |{{{IncludedWorkURL}}} |{{{URL}}} }}</span> |{{{Sep|,}}}&#32;{{ #if: {{{IncludedWorkURL|}}} |{{{IncludedWorkURL}}} |{{{URL}}} }} }}{{ #if: {{{AccessDate|}}} | <span class="reference-accessdate">{{#ifeq:{{{Sep|,}}}|,|,&#32;d|.&#32;D}}iakses pada {{#iferror: {{#time: j F Y|{{{accessdate}}}}} | {{{accessdate}}} | {{#time: j F Y|{{{accessdate}}}}} }}</span> }} }}{{#if:{{{laysummary|}}} |{{{Sep|,}}}&#32;[{{{laysummary}}} Lay summary]{{#if: {{{laysource|}}}|&nbsp;&ndash;&nbsp;''<nowiki />{{{laysource}}}<nowiki />''}} }}{{#if:{{{laydate|}}} | &#32;({{#time:j F Y|{{{laydate}}}}}) }}{{#if:{{{quote|}}} |{{{Sep|,}}}&#32;"{{{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|,&#32;}}}{{{Given1}}}}} }} }}{{ #if: {{{Surname2|}}} |&rft.au={{urlencode:{{{Surname2}}}}}{{ #if: {{{Given2|}}} |{{urlencode:{{{NameSep|,&#32;}}}{{{Given2}}}}} }} }}{{ #if: {{{Surname3|}}} |&rft.au={{urlencode:{{{Surname3}}}}}{{ #if: {{{Given3|}}} |{{urlencode:{{{NameSep|,&#32;}}}{{{Given3}}}}} }} }}{{ #if: {{{Surname4|}}} |&rft.au={{urlencode:{{{Surname4}}}}}{{ #if: {{{Given4|}}} |{{urlencode:{{{NameSep|,&#32;}}}{{{Given4}}}}} }} }}{{ #if: {{{Surname5|}}} |&rft.au={{urlencode:{{{Surname5}}}}}{{ #if: {{{Given5|}}} |{{urlencode:{{{NameSep|,&#32;}}}{{{Given5}}}}} }} }}{{ #if: {{{Surname6|}}} |&rft.au={{urlencode:{{{Surname6}}}}}{{ #if: {{{Given6|}}} |{{urlencode:{{{NameSep|,&#32;}}}{{{Given6}}}}} }} }}{{ #if: {{{Surname7|}}} |&rft.au={{urlencode:{{{Surname7}}}}}{{ #if: {{{Given7|}}} |{{urlencode:{{{NameSep|,&#32;}}}{{{Given7}}}}} }} }}{{ #if: {{{Surname8|}}} |&rft.au={{urlencode:{{{Surname8}}}}}{{ #if: {{{Given8|}}} |{{urlencode:{{{NameSep|,&#32;}}}{{{Given8}}}}} }} }}{{ #if: {{{Surname9|}}} |&rft.au={{urlencode:{{{Surname9}}}}}{{ #if: {{{Given9|}}} |{{urlencode:{{{NameSep|,&#32;}}}{{{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;">&nbsp;</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>&#124;title&#61;</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}}} }}}|;|&#059;|{{{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"|&nbsp;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>&nbsp;]]'''</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>&nbsp;]]'''</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">&#xfeff; / &#xfeff;</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">&#xfeff; / <span class="geo">{{{dec-lat}}}; {{{dec-long}}}</span></span>{{#if:{{{name|}}}|<span style="display:none">&#xfeff; (<span class="fn org">{{{name|}}}</span>)</span></span>|}}</span>]</span><noinclude> <!-- BE CAREFUL WITH COPY PASTING HTMLTidy moves our whitespace around. We use &#xfeff; (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>—&#8202;{{#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>&#32;<!-- -->{{#if: {{{2|}}} | <i>{{{2}}}</i>.&#32;}}<!-- -->{{#ifeq:{{{criterion}}}| NA | | <b>See [[Wikipedia:Criteria for speedy deletion#{{uc:{{{criterion}}}}}|CSD {{uc:{{{criterion}}}}}]].</b> }}<!-- -->{{#if: {{{rationale|}}} | &#32;<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>&#32;{{#if:{{{2|}}}|<i>{{{2}}}</i>.&#32;}}{{#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|}}}|&#32;<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">&#91;{{#if: {{{2|}}} | link sebelumnya mati | pranala mati}}&#93;</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|}}} |&#32;because: {{{1}}} |, but {{Red|no reason has been given}} for why it qualifies }} |2={{#if:{{{1|}}} |&#32;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] &#124; [{{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 &euro;, 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|}}} |&#32;({{#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}}}&nbsp;– {{{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|}}} |&#32;(''<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|}}} |&#32;<span class="note listing-hours">{{{hours}}}</span>. }}<!-- Checkin and checkout -->{{#if:{{{checkin|}}} |&#32;<span class="note">Check-in: <span class="listing-checkin">{{{checkin}}}</span>{{#if:{{{checkout|}}}|, check-out: <span class="listing-checkout">{{{checkout}}}</span>}}</span>. |{{#if:{{{checkout|}}} |&#32;<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|}}} |&#32;<span class="note listing-price">{{{price}}}</span>. }}<!-- Sister project icons -->{{#if:{{{wikipedia|}}}{{{wikidata|}}} | <span class="listing-sister-icons">{{#if:{{{wikipedia|}}} |&#32;[[Berkas:Wikipedia-icon.png|15px|class=listing-sister|link=w:{{{wikipedia}}}|{{{wikipedia}}} di Wikipedia]] }}{{#if:{{{wikidata|}}} |&#32;[[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">''&nbsp;(date needs updating)''</span> {{#ifeq:{{NAMESPACE}}|{{NS:0}}|[[Kategori:articles with out of date events]]}}| }}| <span style="font-size: 90%;color:gray">''&nbsp;(date needs fixing)''</span> {{#ifeq:{{NAMESPACE}}|{{NS:0}}|[[Kategori:articles with bad date events]]}} }} | <span style="font-size: 90%;color:gray">''&nbsp;(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|&nbsp;[[{{{1}}}]]|&nbsp;[[{{{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|}}}|&#32; {{{timecmt}}}}} {{<includeonly>safesubst:</includeonly>#if:{{{price|}}}|&#32; Mohon gunakan [[Wikiwisata:Mata uang|harga]] dalam format: '''{{{price}}}'''}} {{<includeonly>safesubst:</includeonly>#if:{{{not|}}}|&#32; dan bukan {{{not}}}.}} {{<includeonly>safesubst:</includeonly>#if:{{{foreign|}}}|&#32; Untuk wilayah yang menerima mata uang asing, gunakan {{{foreign}}}.}} {{<includeonly>safesubst:</includeonly>#if:{{{foreign2|}}}|&#32;atau {{{foreign2}}}}} {{<includeonly>safesubst:</includeonly>#if:{{{reason|}}}|&#32; Ini karena {{{reason}}}.}} {{<includeonly>safesubst:</includeonly>#if:{{{foreign2|}}}|&#32;atau {{{foreign2}}}}} {{<includeonly>safesubst:</includeonly>#if:{{{extraprice|}}}|&#32; {{{extraprice}}}}} {{<includeonly>safesubst:</includeonly>#if:{{{spelling|}}}|&#32; {{#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|}}}|&#32;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">&nbsp;</span><sup>{{{2}}}</sup>&frasl;<sub>{{{3}}}</sub> |{{#if:{{{2|}}} |<sup>{{{1}}}</sup>&frasl;<sub>{{{2}}}</sub> |{{#if:{{{1|}}} |<sup>1</sup>&frasl;<sub>{{{1}}}</sub> |&frasl; }} }} }}</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">[[#|&lsaquo;]]</span> <span class="jcarousel-control-next">[[#|&rsaquo;]]</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><!-- -->|&nbsp;}}<!-- 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><!-- -->|&nbsp;}}<!-- 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: &rarr; '''[[{{{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=&nbsp;<span class="error" style="font-size:88%">Invalid&nbsp;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}}}&nbsp; <!-- --><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=&region=&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">—&nbsp;&nbsp;'''<span class="category">{{{settlement_type|{{{type}}}}}}</span>'''&nbsp;&nbsp;—</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>&nbsp;-&nbsp;{{{translit_lang1_type}}}</th> <td>{{{translit_lang1_info}}}</td> </tr> }}{{#if:{{{translit_lang1_type1|}}}| <tr class="{{#if:{{{translit_lang1_type2|}}}|mergedrow|mergedbottomrow}}"> <th>&nbsp;-&nbsp;{{{translit_lang1_type1}}}</th> <td>{{{translit_lang1_info1}}}</td> </tr> }}{{#if:{{{translit_lang1_type2|}}}| <tr class="{{#if:{{{translit_lang1_type3|}}}|mergedrow|mergedbottomrow}}"> <th>&nbsp;-&nbsp;{{{translit_lang1_type2}}}</th> <td>{{{translit_lang1_info2}}}</td> </tr> {{#if:{{{translit_lang1_type3|}}}| <tr class="{{#if:{{{translit_lang1_type4|}}}|mergedrow|mergedbottomrow}}"> <th>&nbsp;-&nbsp;{{{translit_lang1_type3}}}</th> <td>{{{translit_lang1_info3}}}</td> </tr> {{#if:{{{translit_lang1_type4|}}}| <tr class="{{#if:{{{translit_lang1_type5|}}}|mergedrow|mergedbottomrow}}"> <th>&nbsp;-&nbsp;{{{translit_lang1_type4}}}</th> <td>{{{translit_lang1_info4}}}</td> </tr> {{#if:{{{translit_lang1_type5|}}}| <tr class="{{#if:{{{translit_lang1_type6|}}}|mergedrow|mergedbottomrow}}"> <th>&nbsp;-&nbsp;{{{translit_lang1_type5}}}</th> <td>{{{translit_lang1_info5}}}</td> </tr> {{#if:{{{translit_lang1_type6|}}}| <tr class="mergedbottomrow"> <th>&nbsp;-&nbsp;{{{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>&nbsp;-&nbsp;{{{translit_lang2_type}}}</th> <td>{{{translit_lang2_info}}}</td> </tr> }}{{#if:{{{translit_lang2_type1|}}}| <tr class="{{#if:{{{translit_lang2_type2|}}}|mergedrow|mergedbottomrow}}"> <th>&nbsp;-&nbsp;{{{translit_lang2_type1}}}</th> <td>{{{translit_lang2_info1}}}</td> </tr> }}{{#if:{{{translit_lang2_type2|}}}| <tr class="{{#if:{{{translit_lang2_type3|}}}|mergedrow|mergedbottomrow}}"> <th>&nbsp;-&nbsp;{{{translit_lang2_type2}}}</th> <td>{{{translit_lang2_info2}}}</td> </tr> {{#if:{{{translit_lang2_type3|}}}| <tr class="{{#if:{{{translit_lang2_type4|}}}|mergedrow|mergedbottomrow}}"> <th>&nbsp;-&nbsp;{{{translit_lang2_type3}}}</th> <td>{{{translit_lang2_info3}}}</td> </tr> {{#if:{{{translit_lang2_type4|}}}| <tr class="{{#if:{{{translit_lang2_type5|}}}|mergedrow|mergedbottomrow}}"> <th>&nbsp;-&nbsp;{{{translit_lang2_type4}}}</th> <td>{{{translit_lang2_info4}}}</td> </tr> {{#if:{{{translit_lang2_type5|}}}| <tr class="{{#if:{{{translit_lang2_type6|}}}|mergedrow|mergedbottomrow}}"> <th>&nbsp;-&nbsp;{{{translit_lang2_type5}}}</th> <td>{{{translit_lang2_info5}}}</td> </tr> {{#if:{{{translit_lang2_type6|}}}| <tr class="mergedbottomrow"> <th>&nbsp;-&nbsp;{{{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|}}}}}}|&#32;({{{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|}}}}}|&#58;&nbsp;|}}</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>&nbsp;-&nbsp;Jenis</th> <td>{{{government_type}}}</td> </tr> }}{{#if:{{{governing_body|}}}| <tr class="mergedrow"> <th>&nbsp;-&nbsp;Badan</th> <td class="agent">{{{governing_body}}}</td> </tr> }}{{#if:{{{leader_title|}}}| <tr class="mergedrow"> <th>&nbsp;-&nbsp;{{{leader_title}}}</th> <td>{{{leader_name}}} {{#if:{{{leader_party|}}}|({{Polparty|{{{subdivision_name}}}|{{{leader_party}}}}})}}</td> </tr> }}{{#if:{{{leader_title1|}}}| <tr class="mergedrow"> <th>&nbsp;-&nbsp;{{{leader_title1}}}</th> <td>{{{leader_name1}}}</td> </tr> {{#if:{{{leader_title2|}}}| <tr class="mergedrow"> <th>&nbsp;-&nbsp;{{{leader_title2}}}</th> <td>{{{leader_name2}}}</td> </tr> {{#if:{{{leader_title3|}}}| <tr class="mergedrow"> <th>&nbsp;-&nbsp;{{{leader_title3}}}</th> <td>{{{leader_name3}}}</td> </tr> {{#if:{{{leader_title4|}}}| <tr class="mergedrow"> <th>&nbsp;-&nbsp;{{{leader_title4}}}</th> <td>{{{leader_name4}}}</td> </tr> }} }} }} }} }} {{#if:{{{dau|}}}| <tr class="mergedrow"> <th>&nbsp;-&nbsp;[[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}}}|&nbsp;||colspan="2"}}>'''[[Luas]]'''{{{area_footnotes|}}}</td> {{#ifeq:{{{total_type}}}|&nbsp;||</tr>}} {{#if:{{{area_total_km2|}}}{{{area_total_sq_mi|}}}{{{area_total_dunam|}}}| {{#ifeq:{{{total_type}}}|&nbsp;||<tr class="mergedrow"> <th> &nbsp;-&nbsp;{{#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|}}}&nbsp;[[dunam]] ({{#if:{{{area_total_km2|}}}|{{{area_total_km2|}}}&nbsp;[[Kilometer persegi|km<sup>2</sup>]]|{{#expr: {{{area_total_dunam|}}} *0.001 round 1}}&nbsp;[[Kilometer persegi|km<sup>2</sup>]]}}&nbsp;'''/'''&nbsp;{{#if: {{{area_total_sq_mi|}}}|{{{area_total_sq_mi|}}}&nbsp;[[mil persegi|sq&nbsp;mi]]|{{#expr: {{{area_total_dunam|}}} *0.000386102 round 1}}&nbsp;[[mil persegi|sq&nbsp;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>&nbsp;-&nbsp;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>&nbsp;-&nbsp;Perairan</th> <td>{{infobox_settlement/areadisp|{{{unit_pref|}}}|{{{area_water_sq_mi|}}}|{{{area_water_km2|}}}|||{{{subdivision_name|}}}}} {{#if:{{{area_water_percent|}}}| &nbsp;{{{area_water_percent}}}%}}</td> </tr> }}{{#if:{{{area_urban_km2|}}}{{{area_urban_sq_mi|}}}| <tr class="mergedrow"> <th>&nbsp;-&nbsp;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>&nbsp;-&nbsp;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>&nbsp;-&nbsp;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>&nbsp;-&nbsp;Peringkat luas</th> <td>{{{area_rank}}}</td> </tr> }}{{#if:{{{area_blank1_km2|}}}{{{area_blank1_sq_mi|}}}{{{area_blank1_title|}}}| <tr class="mergedrow"> <th>&nbsp;-&nbsp;{{{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>&nbsp;-&nbsp;{{{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>&nbsp;</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&nbsp;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&nbsp;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>&nbsp;'''-&nbsp;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}}}|&nbsp;||colspan="2"}}>'''Populasi''' {{#if:{{{population_as_of|}}}|({{{population_as_of}}})}}{{{population_footnotes|}}}</td> }} {{#ifeq:{{{total_type}}}|&nbsp;||</tr>}} {{#if:{{{population_total|}}}| {{#ifeq:{{{total_type}}}|&nbsp;||<tr class="mergedrow"> <th>&nbsp;-&nbsp;{{#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>&nbsp;'''-&nbsp;Perkiraan'''&nbsp;({{{pop_est_as_of}}})</td> <td>{{formatnum:{{{population_est}}}}}</td> </tr> }}{{#if:{{{population_rank|}}}|<!-- ***Population rank*** --> <tr class="mergedrow"> <th>&nbsp;'''-&nbsp;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>&nbsp;'''-&nbsp;[[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>&nbsp;'''-&nbsp;Peringkat&nbsp;kepadatan'''</th> <td>{{{population_density_rank}}}</td> </tr> }}{{#if:{{{population_urban|}}}| <tr class="mergedrow"> <td>&nbsp;'''-&nbsp;[[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>&nbsp;'''-&nbsp;Kepadatan&nbsp;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>&nbsp;'''-&nbsp;[[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>&nbsp;'''-&nbsp;Kepadatan&nbsp;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>&nbsp;'''-&nbsp;[[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>&nbsp;'''-&nbsp;Kepadatan&nbsp;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>&nbsp;-&nbsp;{{{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>&nbsp;-&nbsp;Kepadatan&nbsp;{{{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>&nbsp;-&nbsp;{{{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>&nbsp;-&nbsp;Kepadatan&nbsp;{{{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>&nbsp;</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>&nbsp;-&nbsp;{{{demographics1_title1}}}</th> <td>{{{demographics1_info1}}}</td> </tr> }}{{#if:{{{demographics1_title2|}}}| <tr class="mergedrow"> <th>&nbsp;-&nbsp;{{{demographics1_title2}}}</th> <td>{{{demographics1_info2}}}</td> </tr> }}{{#if:{{{demographics1_title3|}}}| <tr class="mergedrow"> <th>&nbsp;-&nbsp;{{{demographics1_title3}}}</th> <td>{{{demographics1_info3}}}</td> </tr> }}{{#if:{{{demographics1_title4|}}}| <tr class="mergedrow"> <th>&nbsp;-&nbsp;{{{demographics1_title4}}}</th> <td>{{{demographics1_info4}}}</td> </tr> }}{{#if:{{{demographics1_title5|}}}| <tr class="mergedrow"> <th>&nbsp;-&nbsp;{{{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>&nbsp;-&nbsp;{{{demographics2_title1}}}</th> <td>{{{demographics2_info1}}}</td> </tr> }}{{#if:{{{demographics2_title2|}}}| <tr class="mergedrow"> <th>&nbsp;-&nbsp;{{{demographics2_title2}}}</th> <td>{{{demographics2_info2}}}</td> </tr> }}{{#if:{{{demographics2_title3|}}}| <tr class="mergedrow"> <th>&nbsp;-&nbsp;{{{demographics2_title3}}}</th> <td>{{{demographics2_info3}}}</td> </tr> }}{{#if:{{{demographics2_title4|}}}| <tr class="mergedrow"> <th>&nbsp;-&nbsp;{{{demographics2_title4}}}</th> <td>{{{demographics2_info4}}}</td> </tr> }}{{#if:{{{demographics2_title5|}}}| <tr class="mergedrow"> <th>&nbsp;-&nbsp;{{{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">&nbsp;-&nbsp;Musim panas&nbsp;([[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>&nbsp;</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>&nbsp;-&nbsp;{{{twin1}}}</th> <td>{{{twin1_country}}}</td> </tr> {{#if:{{{twin2|}}}| <tr class="mergedrow"> <th>&nbsp;-&nbsp;{{{twin2}}}</th> <td>{{{twin2_country}}}</td> </tr> }}{{#if:{{{twin3|}}}| <tr class="mergedrow"> <th>&nbsp;-&nbsp;{{{twin3}}}</th> <td>{{{twin3_country}}}</td> </tr> }}{{#if:{{{twin4|}}}| <tr class="mergedrow"> <th>&nbsp;-&nbsp;{{{twin4}}}</th> <td>{{{twin4_country}}}</td> </tr> }}{{#if:{{{twin5|}}}| <tr class="mergedrow"> <th>&nbsp;-&nbsp;{{{twin5}}}</th> <td>{{{twin5_country}}}</td> </tr> }}{{#if:{{{twin6|}}}| <tr class="mergedrow"> <th>&nbsp;-&nbsp;{{{twin6}}}</th> <td>{{{twin6_country}}}</td> </tr> }}{{#if:{{{twin7|}}}| <tr class="mergedrow"> <th>&nbsp;-&nbsp;{{{twin7}}}</th> <td>{{{twin7_country}}}</td> </tr> }}{{#if:{{{twin8|}}}| <tr class="mergedrow"> <th>&nbsp;-&nbsp;{{{twin8}}}</th> <td>{{{twin8_country}}}</td> </tr> }}{{#if:{{{twin9|}}}| <tr class="mergedrow"> <th>&nbsp;-&nbsp;{{{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 &amp;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>|&nbsp;}}</span>&nbsp;{{{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|}}} | &#32;({{#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|}}} | , }}&#32;<bdi class="adr listing-address street-address">{{{address|}}}</bdi> }}<!-- Directions -->{{#if:{{{directions|}}} | &#32;(<bdi class="listing-directions" style="font-style: italic;">{{{directions|}}}</bdi>) }}<!-- Phone -->{{#if:{{{phone|}}} | {{#if:{{{name|}}}{{{url|}}}{{{address|}}}{{{directions|}}} | , }}&#32;{{Phone|{{{phone|}}}}} }}<!-- Tollfree -->{{#if:{{{tollfree|}}} | {{#if:{{{name|}}}{{{url|}}}{{{address|}}}{{{directions|}}}{{{phone|}}} | , }}&#32;toll-free: <bdi class="tel listing-tollfree">{{#invoke:LinkPhone|LinkPhone|{{{tollfree|}}}|tollfree=yes}}</bdi> }}<!-- Fax -->{{#if:{{{fax|}}} | {{#if:{{{name|}}}{{{url|}}}{{{address|}}}{{{directions|}}}{{{phone|}}}{{{tollfree|}}} | , }}&#32;<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|}}} | , }}&#32;{{Email|{{{email|}}}}} }}{{#if:{{{inline|}}}||.}}<!-- Hours -->{{#if:{{{hours|}}} | &#32;<bdi class="note listing-hours">{{{hours|}}}</bdi>. }}<!-- Checkin and checkout -->{{#if:{{{checkin|}}} | &#32;<span class="note">Check-in: <bdi class="listing-checkin">{{{checkin|}}}</bdi><!-- -->{{#if:{{{checkout|}}} | , check-out: <bdi class="listing-checkout">{{{checkout|}}}</bdi> }}</span>. | {{#if:{{{checkout|}}} | &#32;<span class="note">Check-out: <bdi class="listing-checkout">{{{checkout|}}}</bdi></span>. }}}}<!-- General listing content -->{{#if:{{{content|{{{1|}}}}}} | &#32;<bdi class="note listing-content">{{{content|{{{1|}}}}}}</bdi> }}<!-- Price -->{{#if:{{{price|}}} | &#32;<bdi class="note listing-price">{{{price|}}}</bdi>. }}<!-- Sister project icons -->{{#if:{{{wikipedia|}}}{{{wikidata|}}} | <span class="listing-sister-icons">{{#if:{{{wikidata|}}} | &#32;[[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|}}}}} | &#32;[[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|}}}|&#32;(}}<!-- --><span class="listing-metadata-items"><!-- -->{{#if:{{{lastedit|}}} | <bdi class="listing-lastedit">diperbarui {{#time: M Y|{{{lastedit|}}}}}</bdi> | &nbsp;<!-- "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}}}}}">&#124;{{SAFESUBST:<noinclude />#if:{{{1|}}}|{{{1}}}&#61;}}{{{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 === #&nbsp;&nbsp;{{Tlx|Para|name}} #:ditampilkan sebagai #:{{Para|name}} #&nbsp;&nbsp;{{Tlx|Para|title|&lt;var&gt;book title&lt;/var&gt;}} #:ditampilkan sebagai #:{{Para|title|<var>book title</var>}} #&nbsp;&nbsp;{{Tlx|Para|3=section|2=<span style="font-size: 1pt;">&nbsp;</span>}} #:ditampilkan sebagai #:{{Para||section}} #:(perhatikan parameter yang dikosongkan sebelum parameter ''section'') #&nbsp;&nbsp;{{Tlx|Para|&lt;var&gt;parameter&lt;/var&gt;|&lt;var&gt;value&lt;/var&gt;}} #: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|}}}|&nbsp;{{{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|}}}|&nbsp;{{{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]],&nbsp;|[[Istimewa:PrefixIndex/{{FULLPAGENAME}}|beginning{{#ifeq:{{NAMESPACE}}|{{ns:0}}||&nbsp;(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|}}}|,&#32;}}[[commons:{{{commons|}}}|galeri Commons]]}}<!-- Wikicommons category link: -->{{#if:{{{commonscat|}}}|{{#if:{{{wikipedia|}}}{{{commons|}}}|,&#32;}}[[commons:Category:{{{commonscat}}}|kategori Commons]]}}<!-- Wikiquote link: -->{{#if:{{{wikiquote|}}}|{{#if:{{{wikipedia|}}}{{{commons|}}}{{{commonscat|}}}|,&#32;}}[[q:{{{wikiquote}}}|kutipan]]}}<!-- Wikinews link: -->{{#if:{{{wikinews|}}}|{{#if:{{{wikipedia|}}}{{{commons|}}}{{{commonscat|}}}{{{wikiquote|}}}|,&#32;}}[[wikinews:{{{wikinews}}}|berita]]}}<!-- Wikitionary link: -->{{#if:{{{wiktionary|}}}|{{#if:{{{wikipedia|}}}{{{commons|}}}{{{commonscat|}}}{{{wikiquote|}}}{{{wikinews|}}}|,&#32;}}[[wikt:{{{wiktionary}}}|definisi]]}}<!-- Wikibooks link: -->{{#if:{{{wikibooks|}}}|{{#if:{{{wikipedia|}}}{{{commons|}}}{{{commonscat|}}}{{{wikiquote|}}}{{{wikinews|}}}{{{wiktionary|}}}|,&#32;}}[[b:{{{wikibooks}}}|buku teks]]}}<!-- Wikiversity link: -->{{#if:{{{wikiversity|}}}|{{#if:{{{wikipedia|}}}{{{commons|}}}{{{commonscat|}}}{{{wikiquote|}}}{{{wikinews|}}}{{{wiktionary|}}}{{{wikibooks|}}}|,&#32;}}[[wikiversity:{{{wikiversity}}}|kurses]]}}<!-- Wikispecies link: -->{{#if:{{{wikispecies|}}}|{{#if:{{{wikipedia|}}}{{{commons|}}}{{{commonscat|}}}{{{wikiquote|}}}{{{wikinews|}}}{{{wiktionary|}}}{{{wikibooks|}}}{{{wikiversity|}}}|,&#32;}}[[wikispecies:{{{wikispecies}}}|taksonomi]]}}<!-- Meta link: -->{{#if:{{{meta|}}}|{{#if:{{{wikipedia|}}}{{{commons|}}}{{{commonscat|}}}{{{wikiquote|}}}{{{wikinews|}}}{{{wiktionary|}}}{{{wikibooks|}}}{{{wikiversity|}}}{{{wikispecies|}}}|,&#32;}}[[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:|বাংলা]]&nbsp;· [[voy:cs:|čeština]]&nbsp;· [[voy:de:|Deutsch]]&nbsp;· [[voy:el:|Ελληνικά]]&nbsp;· [[voy:en:|English]]&nbsp;· [[voy:eo:|Esperanto]]&nbsp;· [[voy:es:|Español]]&nbsp;· [[voy:fa:|فارسی]]&nbsp;· [[voy:fi:|Suomi]]&nbsp;· [[voy:fr:|Français]]&nbsp;· [[voy:he:|עברית]]&nbsp;· [[voy:hi:|हिन्दी]]&nbsp;· [[voy:it:|Italiano]]&nbsp;· [[voy:ja:|日本語]]&nbsp;· [[voy:nl:|Nederlands]]&nbsp;· [[voy:pl:|Polski]]&nbsp;· [[voy:ps:|پښتو]]&nbsp;· [[voy:pt:|Português]]&nbsp;· [[voy:ro:|Română]]&nbsp;· [[voy:ru:|Русский]]&nbsp;· [[voy:shn:|ၽႃႇသႃႇတႆး]]&nbsp;· [[voy:sv:|Svenska]]&nbsp;· [[voy:tr:|Türkçe]]&nbsp;· [[voy:uk:|Українська]]&nbsp;· [[voy:vi:|Tiếng Việt]]&nbsp;· [[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>—&#8202;{{#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&nbsp;– 1 Mei 2022 (''1443 AH'')}}}}<!-- -->{{#ifeq:1|{{#expr: {{CURRENTYEAR}}<=2023}}|{{#ifeq:1|{{#expr: ({{CURRENTYEAR}}+4)>2023}}|*23 Maret&nbsp;– 20 April 2023 (''1444 AH'')}}}}<!-- -->{{#ifeq:1|{{#expr: {{CURRENTYEAR}}<=2024}}|{{#ifeq:1|{{#expr: ({{CURRENTYEAR}}+4)>2024}}|*11 Maret&nbsp;– 9 April 2024 (''1445 AH'')}}}}<!-- -->{{#ifeq:1|{{#expr: {{CURRENTYEAR}}<=2025}}|{{#ifeq:1|{{#expr: ({{CURRENTYEAR}}+4)>2025}}|*1 Maret&nbsp;– 29 Maret 2025 (''1446 AH'')}}}}<!-- -->{{#ifeq:1|{{#expr: {{CURRENTYEAR}}<=2026}}|{{#ifeq:1|{{#expr: ({{CURRENTYEAR}}+4)>2026}}|*18 Februari&nbsp;– 19 Maret 2026 (''1447 AH'')}}}}<!-- -->{{#ifeq:1|{{#expr: {{CURRENTYEAR}}<=2027}}|{{#ifeq:1|{{#expr: ({{CURRENTYEAR}}+4)>2027}}|*8 Februari&nbsp;– 8 Maret 2027 (''1448 AH'')}}}}<!-- -->{{#ifeq:1|{{#expr: {{CURRENTYEAR}}<=2028}}|{{#ifeq:1|{{#expr: ({{CURRENTYEAR}}+4)>2028}}|*28 Januari&nbsp;– 25 Februari 2028 (''1449 AH'')}}}}<!-- -->{{#ifeq:1|{{#expr: {{CURRENTYEAR}}<=2029}}|{{#ifeq:1|{{#expr: ({{CURRENTYEAR}}+4)>2029}}|*16 Januari&nbsp;– 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|&#32;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, ..." -->&#32;&#32;Untuk {{#ifeq:{{{4}}}|1|kegunaan lain|{{{4}}}}}, lihat {{#if:{{{5|}}}|[[:{{{5}}}]]{{#ifeq:{{{6|}}}|and|&#32;dan {{#if:{{{7|}}}|[[:{{{7}}}]]|[[{{{4}}} (disambiguasi)]]}}}}|[[{{{4}}} (disambiguasi)]]}}.}}<!-- -->{{#if:{{{6|}}}|<!-- -->{{#ifeq:{{{6|}}}|and||<!-- -->&#32;&#32;Untuk {{#ifeq:{{{6}}}|1|kegunaan lain|{{{6}}}}}, lihat {{#if:{{{7|}}}|[[:{{{7}}}]]{{#ifeq:{{{8|}}}|and|&#32;dan {{#if:{{{9|}}}|[[:{{{9}}}]]|[[{{{6}}} (disambiguasi)]]}}}}|[[{{{6}}} (disambiguasi)]]}}.}}<!-- -->{{#if:{{{8|}}}|<!-- -->{{#ifeq:{{{8|}}}|and||<!-- -->&#32;&#32;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}}};"}} |&nbsp;||<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|}}}|&larr; {{{minorl}}}}} &larr; | style="background-color:#555555; font-size:smaller; color:white; text-align:center;" | &nbsp;'''{{{directionl}}}'''&nbsp;{{#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=]]}}&nbsp;'''{{{directionr}}}'''&nbsp; | style="font-size:smaller; text-align:left;" | &rarr; {{#if:{{{minorr|}}}|{{{minorr}}} &rarr;}} '''{{{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|}}} | &#35;{{{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|}}} | &#35;{{{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&nbsp;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&nbsp;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|}}}|&nbsp;{{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 = &#32;ini adalah sebuah '''[[Wikiwisata:Artikel garis besar|garis besar]]''' | usable = &#32;ini adalah sebuah artikel '''[[Wikiwisata:Artikel yang dapat digunakan|yang dapat digunakan]]''' | star = &#32;adalah sebuah '''[[Wikiwisata:Artikel bintang|artikel bintang]]''' | guide = &#32;adalah sebuah '''panduan''' | #default = &#32;memiliki status '''[[Wikiwisata:Artikel {{{status|}}}|{{{status|STATUS}}}]]''' }}{{#switch:{{{status|}}}{{{type|}}} | outlinedistrict | outlinecity | outlineairport | outlinepark | outlinediveguide | outlineitinerary | outlinetopic | outlineevent | outlinephrasebook = &#32;dan perlu diisi konten lagi. | outlineregion | outlinecountry | outlinecontinent = &#32;dan perlu diisi konten lagi. | outlineruralarea = &#32;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 = &#32;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 = &#32;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}} &nbsp; ([[Pembicaraan Templat:ambox|b]]) | list2 = {{Tlx|Tmbox}} &nbsp; ([[Pembicaraan Templat:tmbox|b]]) | list3 = {{Tlx|Imbox}} &nbsp; ([[Pembicaraan Templat:imbox|b]]) | list4 = {{Tlx|Cmbox}} &nbsp; ([[Pembicaraan Templat:cmbox|b]]) | list5 = {{Tlx|Ombox}} &nbsp; ([[Pembicaraan Templat:ombox|b]]) | list6 = {{Tlx|Mbox}} &nbsp; ([[Pembicaraan Templat:mbox|b]]) | list7 = {{Tlx|Fmbox}} &nbsp; ([[Pembicaraan Templat:fmbox|b]]) | list8 = {{Tlx|Dmbox}} &nbsp; ([[Pembicaraan Templat:dmbox|b]]) | list9 = {{Tlx|Pmbox}} &nbsp; ([[Pembicaraan Templat:pmbox|b]]) | list10 = {{Tlx|Asbox}} &nbsp; ([[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">&#123;{[[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|}}}| &#124;{{{2}}} }}<!-- -->{{#if:{{{3|}}}| &#124;{{{3}}} }}<!-- -->{{#if:{{{4|}}}| &#124;{{{4}}} }}<!-- -->{{#if:{{{5|}}}| &#124;{{{5}}} }}<!-- -->{{#if:{{{6|}}}| &#124;{{{6}}} }}<!-- -->{{#if:{{{7|}}}| &#124;{{{7}}} }}<!-- -->{{#if:{{{8|}}}| &#124;{{{8}}} }}<!-- -->{{#if:{{{9|}}}| &#124;{{{9}}} }}<!-- -->{{#if:{{{10|}}}| &#124;{{{10}}} }}<!-- -->{{#if:{{{11|}}}| &#124;{{{11}}} }}<!-- -->{{#if:{{{12|}}}| &#124;''...'' }}<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|}}}|&nbsp;<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:&#32;}}<!-- -->{{#if:{{{brackets|}}}|&#91;}}<!-- -->[[{{transclude|{{{1}}}}}|<span title="Lihat templat ini" style="{{{fontstyle|}}}"><!-- -->{{#if:{{{mini|}}}|l|lihat}}</span>]]<!-- -->&nbsp;<span style="font-size:80%;">•</span>&nbsp;[[{{TALKPAGENAME:{{transclude|{{{1}}}}}}}|<span title="Pembicaraan templat ini" style="{{{fontstyle|}}}">{{#if:{{{mini|}}}|d|diskusi}}</span>]]<!-- -->{{#if:{{{noedit|}}}|<!--nothing-->|<!--else: -->&nbsp;<span style="font-size:80%;">•</span>&nbsp;[{{fullurl:{{transclude|{{{1}}}}}|action=edit}}<span title="Sunting templat ini" style="{{{fontstyle|}}};">{{#if:{{{mini|}}}|s|sunting}}</span>]<!-- -->}}<!-- -->{{#if:{{{brackets|}}}|]}}<!-- -->{{#if:{{{nodiv|}}}|<!--then: --></span>&nbsp;|<!--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| &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <!--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|}}}|&nbsp;and&nbsp;{{{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 &ndash; 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;">&nbsp;·</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 '&nbsp;' 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('"', '&quot;'), 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 "&nbsp;" in combinations, so -- replace underscore, "&nbsp;", 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('&nbsp;', ' '):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&nbsp;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>&frasl;<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>&frasl;<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, '&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 '&nbsp;' or '-' -- at that position ('-' is for adjectival text). -- There is also no space if text starts with '&' -- (e.g. '&deg;' 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) == '&nbsp;') 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 == '&#32;' 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('&nbsp;', '-') end end if rtext == '–' and (options.spaced or after:sub(1, #MINUS) == MINUS) then rtext = '&nbsp;– ' 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 '&#32;' rather than ' ' to avoid the default first = ' [&nbsp;' .. first second = '&nbsp;]' .. 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 '&nbsp;' 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&nbsp;', 'US ', 'U.S.&nbsp;', 'U.S. ' } or { 'imp&nbsp;', '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 '&nbsp;' 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 = '&nbsp;' 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 = '&nbsp;' 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 "&nbsp;" in values like "12 million". info.show = info.show .. (parms.opt_adjectival and '-' or '&nbsp;') .. 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 .. '&nbsp;' 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) .. '&nbsp;' 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 = '&nbsp;' 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 .. '&nbsp;' 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 = '&nbsp;' 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&nbsp;sq&nbsp;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&nbsp;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&nbsp;ft", utype = "area", scale = 0.09290304, default = "m2", }, ["sqft"] = { name1 = "square foot", name2 = "square feet", symbol = "sq&nbsp;ft", utype = "area", scale = 0.09290304, default = "m2", }, ["sqin"] = { name1 = "square inch", name2 = "square inches", symbol = "sq&nbsp;in", utype = "area", scale = 0.00064516, default = "cm2", }, ["sqmi"] = { name1 = "square mile", symbol = "sq&nbsp;mi", utype = "area", scale = 2589988.110336, default = "km2", }, ["sqnmi"] = { name1 = "square nautical mile", symbol = "sq&nbsp;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&nbsp;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&nbsp;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&#8209;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&#8209;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&nbsp;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&nbsp;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&nbsp;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&nbsp;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&nbsp;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&thinsp;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.&nbsp;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&nbsp;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&nbsp;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&thinsp;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&nbsp;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&nbsp;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&nbsp;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&nbsp;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&#8209;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&nbsp;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&nbsp;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&nbsp;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&nbsp;ft/min", utype = "flow", scale = 0.00047194744319999999, default = "m3/min", }, ["cuft/s"] = { name1 = "cubic foot per second", name2 = "cubic feet per second", symbol = "cu&nbsp;ft/s", utype = "flow", scale = 28316846592e-12, default = "m3/s", }, ["cumi/a"] = { name1 = "cubic mile per annum", name2 = "cubic miles per annum", symbol = "cu&nbsp;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&nbsp;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&nbsp;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.&nbsp;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.&nbsp;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&nbsp;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&nbsp;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&nbsp;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&nbsp;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&nbsp;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>&#8209;imp</sub>", utype = "fuel efficiency", invert = -1, iscomplex= true, default = "L/100 km+mpgus", symlink = "[[Fuel economy in automobiles#Units of measure|mpg]]<sub>&#8209;[[Imperial units|imp]]</sub>", }, ["mpgus"] = { per = { "mi", "+USgal" }, symbol = "mpg<sub>&#8209;US</sub>", utype = "fuel efficiency", invert = -1, iscomplex= true, default = "L/100 km+mpgimp", symlink = "[[Fuel economy in automobiles#Units of measure|mpg]]<sub>&#8209;[[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>&#8209;U.S.</sub>", sp_us = true, symlink = "[[Fuel economy in automobiles#Units of measure|mpg]]<sub>&#8209;[[United States customary units|U.S.]]</sub>", }, ["mpgu.s."] = { target = "mpgus", symbol = "mpg<sub>&#8209;U.S.</sub>", sp_us = true, symlink = "[[Fuel economy in automobiles#Units of measure|mpg]]<sub>&#8209;[[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&nbsp;(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)&nbsp;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&nbsp;U.S.) nautical mile", symbol = "(pre&#8209;1954&nbsp;U.S.) nmi", utype = "length", scale = 1853.24496, default = "km mi", link = "Nautical mile", }, ["pre1954USnmi"] = { name1 = "(pre-1954&nbsp;US) nautical mile", name1_us = "(pre-1954&nbsp;U.S.) nautical mile", symbol = "(pre&#8209;1954&nbsp;US) nmi", sym_us = "(pre&#8209;1954&nbsp;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&nbsp;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&nbsp;cwt", utype = "mass", scale = 50.80234544, default = "lb kg", subdivs = { ["qtr"] = { 4, default = "kg" } }, link = "Hundredweight", }, ["long qtr"] = { name1 = "long quarter", symbol = "long&nbsp;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&nbsp;cwt", utype = "mass", scale = 45.359237, default = "lb kg", link = "Hundredweight", }, ["short qtr"] = { name1 = "short quarter", symbol = "short&nbsp;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&nbsp;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&nbsp;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&#8209;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&#8209;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&#8209;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&#8209;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&#8209;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&#8209;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&#8209;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&#8209;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&nbsp;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&nbsp;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&#8209;s/kg", symbol = "kN&#8209;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&#8209;s/kg", symbol = "N&#8209;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&nbsp;U.S.&nbsp;fl&nbsp;oz (355&nbsp;mL) serving", symbol = "12&nbsp;US&nbsp;fl&nbsp;oz (355&nbsp;mL) serving", sym_us = "12&nbsp;U.S.&nbsp;fl&nbsp;oz (355&nbsp;mL) serving", utype = "volume", scale = 0.00035488235475000004, default = "mL", link = "Beverage can#Standard sizes", }, ["-12USoz(ml)serve"] = { name1_us = "12&nbsp;U.S.&nbsp;fl&nbsp;oz (355&nbsp;ml) serving", symbol = "12&nbsp;US&nbsp;fl&nbsp;oz (355&nbsp;ml) serving", sym_us = "12&nbsp;U.S.&nbsp;fl&nbsp;oz (355&nbsp;ml) serving", utype = "volume", scale = 0.00035488235475000004, default = "ml", link = "Beverage can#Standard sizes", }, ["-12USozserve"] = { name1_us = "12&nbsp;U.S.&nbsp;fl&nbsp;oz serving", symbol = "12&nbsp;US&nbsp;fl&nbsp;oz serving", sym_us = "12&nbsp;U.S.&nbsp;fl&nbsp;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&nbsp;tbsp", utype = "volume", scale = 0.000020, default = "ml", }, ["Bcuft"] = { name1 = "billion cubic foot", name2 = "billion cubic feet", symbol = "billion cu&nbsp;ft", utype = "volume", scale = 28316846.592, default = "Gl", link = "Cubic foot", }, ["bdft"] = { name1 = "board foot", name2 = "board feet", symbol = "bd&nbsp;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&nbsp;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&nbsp;ft", utype = "volume", scale = 0.028316846592, default = "m3", }, ["cuft"] = { name1 = "cubic foot", name2 = "cubic feet", symbol = "cu&nbsp;ft", utype = "volume", scale = 0.028316846592, default = "m3", }, ["cuin"] = { name1 = "cubic inch", name2 = "cubic inches", symbol = "cu&nbsp;in", utype = "volume", scale = 0.000016387064, default = "cm3", }, ["cumi"] = { name1 = "cubic mile", symbol = "cu&nbsp;mi", utype = "volume", scale = 4168181825.440579584, default = "km3", }, ["cuyd"] = { name1 = "cubic yard", symbol = "cu&nbsp;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&nbsp;bbl", utype = "volume", scale = 0.16365924, default = "L impgal USgal", link = "Barrel (unit)", }, ["impbsh"] = { name1 = "imperial bushel", symbol = "imp&nbsp;bsh", utype = "volume", scale = 0.03636872, default = "L impgal USdrygal", }, ["impbu"] = { name1 = "imperial bushel", symbol = "imp&nbsp;bu", utype = "volume", scale = 0.03636872, default = "m3", }, ["impgal"] = { name1 = "imperial gallon", symbol = "imp&nbsp;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&nbsp;fl&nbsp;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&nbsp;pt", utype = "volume", scale = 0.00056826125, default = "L", }, ["impqt"] = { name1 = "imperial quart", symbol = "imp&nbsp;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&nbsp;gal", sym_us = "million U.S.&nbsp;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&nbsp;bbl", sym_us = "U.S.&nbsp;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&nbsp;bbl", sym_us = "U.S.&nbsp;bbl", utype = "volume", scale = 0.117347765304, default = "L USgal impgal", link = "Barrel (unit)", }, ["USbsh"] = { name1 = "US bushel", name1_us = "U.S. bushel", symbol = "US&nbsp;bsh", sym_us = "U.S.&nbsp;bsh", utype = "volume", scale = 0.03523907016688, default = "L USdrygal impgal", link = "Bushel", }, ["USbu"] = { name1 = "US bushel", name1_us = "U.S. bushel", symbol = "US&nbsp;bu", sym_us = "U.S.&nbsp;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&nbsp;dry&nbsp;bbl", sym_us = "U.S.&nbsp;dry&nbsp;bbl", utype = "volume", scale = 0.11562819898508, default = "m3", link = "Barrel (unit)", }, ["USdrygal"] = { name1 = "US dry gallon", name1_us = "U.S. dry gallon", symbol = "US&nbsp;dry&nbsp;gal", sym_us = "U.S.&nbsp;dry&nbsp;gal", utype = "volume", scale = 0.00440488377086, default = "L", link = "Gallon", }, ["USdrypt"] = { name1 = "US dry pint", name1_us = "U.S. dry pint", symbol = "US&nbsp;dry&nbsp;pt", sym_us = "U.S.&nbsp;dry&nbsp;pt", utype = "volume", scale = 0.0005506104713575, default = "ml", link = "Pint", }, ["USdryqt"] = { name1 = "US dry quart", name1_us = "U.S. dry quart", symbol = "US&nbsp;dry&nbsp;qt", sym_us = "U.S.&nbsp;dry&nbsp;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.&nbsp;fl&nbsp;gal", utype = "volume", scale = 0.003785411784, default = "L impgal", link = "Gallon", }, ["USgal"] = { name1 = "US gallon", name1_us = "U.S. gallon", symbol = "US&nbsp;gal", sym_us = "U.S.&nbsp;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&nbsp;kenning", sym_us = "U.S.&nbsp;kenning", utype = "volume", scale = 0.01761953508344, default = "L impgal", link = "Kenning (unit)", }, ["USmin"] = { name1 = "US minim", name1_us = "U.S. minim", symbol = "US&nbsp;min", sym_us = "U.S.&nbsp;min", utype = "volume", scale = 0.000000061611519921875, default = "ml", link = "Minim (unit)", }, ["USoz"] = { name1 = "US fluid ounce", name1_us = "U.S. fluid ounce", symbol = "US&nbsp;fl&nbsp;oz", sym_us = "U.S.&nbsp;fl&nbsp;oz", utype = "volume", scale = 0.0000295735295625, default = "ml", }, ["USpk"] = { name1 = "US peck", name1_us = "U.S. peck", symbol = "US&nbsp;pk", sym_us = "U.S.&nbsp;pk", utype = "volume", scale = 0.00880976754172, default = "L impgal", link = "Peck", }, ["USpt"] = { name1 = "US pint", name1_us = "U.S. pint", symbol = "US&nbsp;pt", sym_us = "U.S.&nbsp;pt", utype = "volume", scale = 0.000473176473, default = "L imppt", link = "Pint", }, ["USqt"] = { name1 = "US quart", name1_us = "U.S. quart", symbol = "US&nbsp;qt", sym_us = "U.S.&nbsp;qt", utype = "volume", scale = 0.000946352946, default = "ml", link = "Quart", customary= 1, }, ["USquart"] = { name1 = "US quart", name1_us = "U.S. quart", symbol = "US&nbsp;qt", sym_us = "U.S.&nbsp;qt", utype = "volume", scale = 0.000946352946, default = "ml impoz", link = "Quart", }, ["UStbsp"] = { name1 = "US tablespoon", name1_us = "U.S. tablespoon", symbol = "US&nbsp;tbsp", sym_us = "U.S.&nbsp;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"] = { "&nbsp;[" , "]" }, ["comma"] = { ", " , "" , ", " }, ["semicolon"] = { "; " , "" }, ["slash-sp"] = { " / " , "" , wantname = true }, ["slash-nbsp"] = { "&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". ["+"] = " + ", [","] = ",&nbsp;", [", 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 = "&nbsp;hingga ", output = "–" }, ["+/-"] = { off = "&nbsp;±&nbsp;", on = "&nbsp;±&nbsp;", adj = "&nbsp;±&nbsp;", is_range_change = true }, ["by(x)"] = { input = " x ", output = " ×&nbsp;", out_range_x = true }, ["x"] = { off = " x ", on = " ×&nbsp;", abbr_range_x = true }, ["xx"] = "&nbsp;×&nbsp;", ["*"] = "×", ["/"] = "&thinsp;/&thinsp;" -- 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" ["–"] = "-", ["&ndash;"] = "-", ["×"] = "x", ["&times;"] = "x", ["±"] = "+/-", ["&plusmn;"] = "+/-", } -- 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 "&lt;" 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 .. '&ndash;' .. 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&nbsp;dirham'}, ALL = {shortSymbol = '%s&nbsp;lek'}, ARS = {shortSymbol = 'AR$%s', uniqueSymbol = 'AR$%s'}, AUD = {shortSymbol = '$%s', uniqueSymbol = 'AU$%s'}, BAM = {shortSymbol = '%s&nbsp;KM'}, BBD = {shortSymbol = 'B$%s'}, BDT = {shortSymbol = 'Tk%s'}, BGN = {shortSymbol = '%s&nbsp;лв'}, BHD = {shortSymbol = 'BD%s'}, BOB = {shortSymbol = 'Bs.&nbsp;%s'}, BRL = {shortSymbol = 'R$%s'}, BSD = {shortSymbol = '$%s'}, BWP = {shortSymbol = 'P%s'}, CAD = {shortSymbol = '$%s', uniqueSymbol = 'CA$%s'}, CHF = {shortSymbol = 'Fr.&nbsp;%s', uniqueSymbol = 'Swiss Fr.&nbsp;%s'}, CLP = {shortSymbol = '%s&nbsp;pesos'}, CNY = {shortSymbol = '¥%s', uniqueSymbol = 'Chinese ¥%s'}, COP = {shortSymbol = 'COP$%s'}, CRC = {shortSymbol = '₡%s'}, CUP = {shortSymbol = 'CUP%s'}, CZK = {shortSymbol = '%s&nbsp;Kč'}, DKK = {shortSymbol = '%s&nbsp;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&nbsp;kn'}, HUF = {shortSymbol = '%s&nbsp;Ft', uniqueSymbol = '%s&nbsp;Ft'}, IDR = {shortSymbol = 'Rp%s'}, ILS = {shortSymbol = '₪%s'}, IQD = {shortSymbol = '%s&nbsp;dinars'}, INR = {shortSymbol = '₹%s', uniqueSymbol = 'Indian ₹%s'}, IRR = {shortSymbol = '%s&nbsp;rials'}, ISK = {shortSymbol = 'kr&nbsp;%s'}, JOD = {shortSymbol = '%s&nbsp;JD'}, JMD = {shortSymbol = 'J$%s'}, JPY = {shortSymbol = '¥%s', uniqueSymbol = 'Japanese ¥%s'}, KES = {shortSymbol = 'Ksh&nbsp;%s'}, KRW = {shortSymbol = '₩%s'}, KWD = {shortSymbol = 'KD%s'}, LBP = {shortSymbol = 'LL%s'}, LKR = {shortSymbol = 'Rs&nbsp;%s'}, LYD = {shortSymbol = 'LD%s'}, MAD = {shortSymbol = '%s&nbsp;dirham'}, MUR = {shortSymbol = 'Rs%s'}, MXN = {shortSymbol = 'M$%s'}, MYR = {shortSymbol = 'RM%s', uniqueSymbol = 'Malaysian RM%s'}, NGN = {shortSymbol = '₦%s'}, NOK = {shortSymbol = '%s&nbsp;kr'}, NZD = {shortSymbol = '$%s', uniqueSymbol = 'NZ$%s'}, OMR = {shortSymbol = 'RO&nbsp;%s'}, PEN = {shortSymbol = 'S/%s'}, PHP = {shortSymbol = '₱%s'}, PKR = {shortSymbol = 'Rs&nbsp;%s'}, PLN = {shortSymbol = '%s&nbsp;zł'}, PYG = {shortSymbol = 'GS.%s'}, QAR = {shortSymbol = 'QR%s'}, RON = {shortSymbol = '%s&nbsp;lei'}, RUB = {shortSymbol = '%s&nbsp;руб'}, SAR = {shortSymbol = 'SR%s'}, SEK = {shortSymbol = '%s&nbsp;kr'}, SGD = {shortSymbol = '$%s', uniqueSymbol = 'Singapore $%s'}, THB = {shortSymbol = '%s&nbsp;baht', uniqueSymbol = 'Thai ฿%s'}, TND = {shortSymbol = '%s&nbsp;DT'}, TRY = {shortSymbol = '%s&nbsp;TL'}, TTD = {shortSymbol = 'TT$%s'}, TWD = {shortSymbol = 'NT$%s'}, UAH = {shortSymbol = '%s&nbsp;грн'}, USD = {shortSymbol = '$%s', uniqueSymbol = 'US$%s'}, UYU = {shortSymbol = 'U$%s'}, VND = {shortSymbol = '%s&nbsp;dong', uniqueSymbol = '%s Vietnamese dong'}, XAF = {shortSymbol = 'FCFA%s'}, XCD = {shortSymbol = 'EC$%s'}, XOF = {shortSymbol = 'CFA%s'}, XPF = {shortSymbol = '%s&nbsp;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 .. ' §&nbsp;' .. 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..'">&nbsp;&nbsp;&nbsp;&nbsp;</span>]]&nbsp;' 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..']]&nbsp;' else showtext = '' end else link = k if showtext then showtext = '[['..k..']]&nbsp;' 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..']]&nbsp;'..showtext..text elseif v.icon == 'img_circle' then return '[[Berkas:LACMTA Circle '..k..'.svg|'..(args.size or 17)..'px|link='..link..'|alt='..k..'|'..k..']]&nbsp;'..showtext..text elseif v.icon == 'img_square' then return '[[Berkas:LACMTA Square '..k..'.svg|'..(args.size or 17)..'px|link='..link..'|alt='..k..'|'..k..']]&nbsp;'..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&#32;' .. word elseif p.vowelfirst(raw) then return 'de l’' .. word elseif string.sub(gender or '',1,1)=='f' then -- gender == 'feminine' return 'de la&#32;' .. word else return 'du&#32;' .. word end else if p.vowelfirst(raw) then return 'd’' .. word else return 'de&#32;' .. 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">&#32;[[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', '&#91; ', 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', ' &#93;', 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, "{", "&#x7B;") section = string.gsub(section, "}", "&#x7D;") 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 = '§&nbsp;' .. 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 = '&#8203; dan ' else conjunction = ', dan ' end ret = mw.text.listToText(ret, nil, conjunction) -- Add the intro text. local intro = '§§&nbsp;' 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, "(.*)(&nbsp;<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.."&params="..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 = "&nbsp;" .. i18n["BC"] -- prepend a non-breaking space. else bc = "&nbsp;" .. 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 = "&nbsp;" -- 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>&nbsp;') -- 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 = "&nbsp;[[" .. 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 = "&nbsp;", 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 = "&ndash;" if t:find("%s") or t:find("&nbsp;") then dsep = " &ndash; " 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("(.+)&nbsp;(.+)") 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>&nbsp;" .. 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=&nbsp;(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