Wikikamus
idwiktionary
https://id.wiktionary.org/wiki/Wikikamus:Halaman_Utama
MediaWiki 1.46.0-wmf.23
case-sensitive
Media
Istimewa
Pembicaraan
Pengguna
Pembicaraan Pengguna
Wikikamus
Pembicaraan Wikikamus
Berkas
Pembicaraan Berkas
MediaWiki
Pembicaraan MediaWiki
Templat
Pembicaraan Templat
Bantuan
Pembicaraan Bantuan
Kategori
Pembicaraan Kategori
Indeks
Pembicaraan Indeks
Lampiran
Pembicaraan Lampiran
TimedText
TimedText talk
Modul
Pembicaraan Modul
Acara
Pembicaraan Acara
abang
0
2134
1349827
1344892
2026-04-14T12:36:32Z
Anggabuana
27723
/* {{bahasa|ban}} */
1349827
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id|num=1|homid=saudara}}
: {{pemenggalan|id|abang}} {{AFI|id|/abaŋ/}} {{suara|id|LL-Q9240 (ind)-Dvnfit-abang.wav}}
{{-n-|id}}
# [[saudara]] [[laki-laki]] yang lebih [[tua]]
#: {{contoh|id|'''Abang''' saya lahir tiga tahun lebih dulu.}}
#* {{RQ:Pengawal Tambang Emas
|chapter=Perantau dari Kolang
|text=Keluarga dekat satu-satunya hanyalah '''abangnya''' itu. Itupun ibu yang sama tetapi ayahnya berlainan.
|page=2
|url=https://id.wikisource.org/wiki/Halaman:ADH_0008_A._Damhoeri_-_Pengawal_Tambang_Emas.pdf/6#:~:text=Keluarga%20dekat%20satu%2Dsatunya%20hanyalah%20abangnya%20itu.%20Itupun%20ibu%20yang%20sama%20tetapi%20ayahnya%20berlainan.
}}
# {{non-gloss|bentuk [[panggilan]] bagi laki-laki}}
## {{non-gloss|panggilan bagi [[kakak]] laki-laki}}
## {{non-gloss|panggilan bagi [[suami]]}}
## {{non-gloss|panggilan bagi laki-laki [[muda]] hingga [[paruh baya]], yang tidak [[dikenal]] ataupun tidak terlalu [[dekat]]}}
{{-turunan-|id}}
{{kepala|id|num=2|homid=warna}}
{{-adj-|id}}
# {{label|id|Jawa}} warna [[merah]]
{{-bacaan-}}
* {{R:KBBI Daring}}
=={{bahasa|ban}}==
{{kepala|ban}}
{{-adj-|ban}}
# [[merah]]
#:''I Madé ngelah cicing mawarna '''abang'''.''
#::Si Made punya anjing berwarna '''merah'''.
=={{bahasa|bjn}}==
{{kepala|bjn}}
{{-n-|bjn}}
# {{l|id|abang}} {{gloss|[[kakak]] [[laki-laki]]}}
# {{l|id|abang}} {{gloss|panggilan kepada [[suami]]}}
# {{l|id|abang}} {{gloss|panggilan kepada [[laki-laki]] yang belum lama [[dikenal]]}}
=={{bahasa|lod}}==
{{kepala|lod}}
{{-n-|lod}}
# [[jendela]]
=={{bahasa|bew}}==
{{kepala|bew|num=1|homid=kakak laki-laki}}
{{-n-|bew}}
# {{l|id|abang}} {{gloss|[[kakak]] [[laki-laki]]}}
# {{l|id|abang}} {{gloss|[[panggilan]] kepada [[laki-laki]] yang lebih [[tua]]}}
{{kepala|bew|num=2|homid=warna}}
{{-adj-|bew}}
# warna [[merah]]
{{kepala|bew|num=3}}
{{-n-|bew}}
# ''lihat'' '''{{pranala|bew|abangan}}'''
{{-bacaan-}}
* {{R:Abdul Chaer Juni 2009|page=1}}
=={{bahasa|beu}}==
{{kepala|beu}}
{{-n-|beu}}
# [[desa]]; [[kampung]]
=={{bahasa|jv}}==
{{kepala|jv|alt=ꦲꦧꦁ}}
: {{pemenggalan|id|abang}} {{AFI|id|/abaŋ/}}
:* {{suara|jv|LL-Q33549 (jav)-Menyusurisudutnegeri-abang.wav|q=Banyumas}}
:* {{suara|jv|LL-Q33549 (jav)-Rizkako30-abang.wav|q=Kedu}}
:* {{suara|jv|LL-Q33549 (jav)-Farizor-abang.wav|q=Malang}}
:* {{suara|jv|LL-Q33549 (jav)-Tetheow-abang.wav|q=Surabaya}}
{{-etimologi-}}
:Dari {{Inh-w|jv|kaw|abaṅ}} (ekuivalen dengan {{kat-afiks|jv|''[[bang]]'' + ''[[a-]]''}}), dari {{Inh-w|jv|kaw|baṅ|bāṅ}}, mungkin dari {{Der*|jv|mkh-pro|rɔɔŋ}}, {{Der^|mkh-pro|ɟrɔɔŋ|t=merah}}.
{{-adj-|jv}}
# [[merah]]
#: {{syn|jv|abrit|q1=krama}}
#: {{contoh|jv|Aku tuku klambi '''abang'''.|t=Aku beli baju warna '''merah'''.}}
{{-turunan-}}
* [[abangan]]
{{-lihat-}}
{{tabel:warna/jv}}
=={{bahasa|mak}}==
{{kepala|mak}}
:{{suara|mak|LL-Q33643 (mak)-Noefieya NFY-abang.wav|q=Turatea}}
{{-n-|mak}}
# {{label|mak|Lakiung|Turatea}} [[dahi]]
{{-bacaan-}}
* Arief, A. (1995). ''[https://repositori.kemendikdasmen.go.id/2931/1/kamus%20makassar%20-%20indonesia%20%20%20-%20%20%20479h.pdf Kamus Makassar - Indonesia]''. Ujung Pandang: Yayasan YAPIK DDI.
[[Kategori:WikiTutur 3.0 - Makassar]]
[[Kategori:Kopdar WikiTutur 3.0 Jakarta 2026-01-26]]
=={{bahasa|ms}}==
{{kepala|ms}}
{{-n-|ms}}
# {{l|id|abang}} {{gloss|[[kakak]] [[laki-laki]]}}
=={{bahasa|jax}}==
{{kepala|jax}}
: {{suara|jax|LL-Q3915769 (jax)-Sultan Toktik-abang.wav|q=Jambi Seberang}}
{{-pronomina-|jax}}
# {{l|jax|abang}} {{gloss|[[kakak]] [[laki-laki]]}}
=={{bahasa|min}}==
{{kepala|min|num=1}}
: {{suara|min|LL-Q13324 (min)-Maronsita-abang.wav}}
{{-etimologi-}}
: Seasal dengan bahasa Melayu {{sebut|ms|abang}}.
{{-n-|min}}
# {{l|id|abang}} {{gloss|kakak laki-laki}}
# {{l|id|abang}} {{gloss|panggilan kepada suami}}
#: {{sinonim|min|uda|ajo|uwan|uwen|ombak}}
#: {{contoh|min|Lai tau, '''abang'''?|t='''Abang''', apakah kamu tahu?}}<!--LL-Q13324 (min)-Maronsita-lai tau abang?.wav-->
{{kepala|min|num=2}}
{{-ragam-}}
* {{l|min|obang}}
{{-etimologi-}}
: Pinjaman dari bahasa Melayu {{sebut|ms|ebang}}, {{sebut|ms|bang}}, dari bahasa Farsi {{sebut|fa|بانگ|tr=bâng|t=suara, sahutan, panggilan}}.
{{-n-|min}}
# [[azan]]
#: {{contoh|min|Urang lah '''abang''' di surau, sumbayang awak lai!|t=Orang sudah '''azan''' di masjid, mari kita pergi salat dulu!}}
{{-turunan-}}
* {{l|min|baabangan}}
* {{l|min|maabangan}}
=={{bahasa|mui}}==
{{kepala|mui}}
{{-adj-|mui}}
# [[merah]]
{{-turunan-}}
* {{l|mui|abang bibo}}
=={{bahasa|mui-plm}}==
{{kepala|mui-plm}}
: {{AFI|mui-plm|/abaŋ/}} {{suara|mui-plm|LL-Q12497929 (mis)-Miraa26-abang.wav}}
{{-etimologi-}}
: Pinjaman dari bahasa Jawa {{sebut|jv|abang|t=merah}}.
{{-adj-|mui-plm}}
# [[merah]]
#: {{contoh|mui-plm|'''Abang''' nian rai kau.|t='''Merah''' sekali wajahmu.}}
{{-turunan-}}
{{kotak|mui-plm
|abang bibir
|abang ijó
|abang kué
|ngabang
|telo' abang
|uma' abang
}}
=={{bahasa|pey}}==
{{kepala|pey}}
: {{suara|pey|LL-Q940486 (pey)-Bangrapip-abang.wav}}
{{-etimologi-}}
: Dari {{der|pey|bew|abang|t=abang}} dari {{der|pey|ms|abang|t=abang}}.
{{-n-|pey}}
# {{l|id|abang}}
=={{bahasa|bts}}==
{{kepala|bts}}
{{-n-|bts}}
# {{l|id|abang}}
=={{bahasa|tes}}==
{{kepala|tes}}
: {{suara|tes|LL-Q33549 (jav)-Bu Hariyati (Ruvika de)-abang.wav}}
{{-adj-|tes}}
# [[merah]]
#: {{contoh|tes|Klambine lare iku werna '''abang'''.|t=Baju anak itu berwarna '''merah'''.}}
[[Kategori:Rapat Komunitas Wiktionary Indonesia 2025-11-13]]
[[Kategori:WikiTutur - Jawa]]
[[Kategori:WikiTutur Daring Umum 11 Februari 2024]]
[[Kategori:WikiTutur 2.0 - Minangkabau]]
[[Kategori:WikiTutur 2.0 Padang 22 Oktober 2024]]
[[Kategori:WikiTutur - Palembang]]
[[Kategori:WikiTutur Palembang 18 Februari 2024]]
[[Kategori:WikiTutur - Peco]]
[[Kategori:WikiTutur Jakarta 3 Februari 2024]]
[[Kategori:Kopdar WikiTutur 2.0 Jakarta 20 April 2025]]
[[Kategori:WikiTutur 2.0 - Tengger]]
=={{bahasa|osi}}==
{{kepala|osi}}
: {{suara|osi|LL-Q2701322 (osi)-Nurholipah (Dinda Anggun)-Abang.wav}}
{{-a-|osi}}
# [[merah]]
[[Kategori:Edit-a-thon WikiKathā Maret 2026]]
m7mjsys702taq1mo2f41qixjuphyfjz
1349835
1349827
2026-04-14T12:43:47Z
Swarabakti
18192
/* {{bahasa|ban}} */
1349835
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id|num=1|homid=saudara}}
: {{pemenggalan|id|abang}} {{AFI|id|/abaŋ/}} {{suara|id|LL-Q9240 (ind)-Dvnfit-abang.wav}}
{{-n-|id}}
# [[saudara]] [[laki-laki]] yang lebih [[tua]]
#: {{contoh|id|'''Abang''' saya lahir tiga tahun lebih dulu.}}
#* {{RQ:Pengawal Tambang Emas
|chapter=Perantau dari Kolang
|text=Keluarga dekat satu-satunya hanyalah '''abangnya''' itu. Itupun ibu yang sama tetapi ayahnya berlainan.
|page=2
|url=https://id.wikisource.org/wiki/Halaman:ADH_0008_A._Damhoeri_-_Pengawal_Tambang_Emas.pdf/6#:~:text=Keluarga%20dekat%20satu%2Dsatunya%20hanyalah%20abangnya%20itu.%20Itupun%20ibu%20yang%20sama%20tetapi%20ayahnya%20berlainan.
}}
# {{non-gloss|bentuk [[panggilan]] bagi laki-laki}}
## {{non-gloss|panggilan bagi [[kakak]] laki-laki}}
## {{non-gloss|panggilan bagi [[suami]]}}
## {{non-gloss|panggilan bagi laki-laki [[muda]] hingga [[paruh baya]], yang tidak [[dikenal]] ataupun tidak terlalu [[dekat]]}}
{{-turunan-|id}}
{{kepala|id|num=2|homid=warna}}
{{-adj-|id}}
# {{label|id|Jawa}} warna [[merah]]
{{-bacaan-}}
* {{R:KBBI Daring}}
=={{bahasa|ban}}==
{{kepala|ban}}
{{-adj-|ban}}
# [[merah]]
#: {{contoh|ban|I Madé ngelah cicing mawarna '''abang'''.|Si Made punya anjing berwarna '''merah'''.}}
=={{bahasa|bjn}}==
{{kepala|bjn}}
{{-n-|bjn}}
# {{l|id|abang}} {{gloss|[[kakak]] [[laki-laki]]}}
# {{l|id|abang}} {{gloss|panggilan kepada [[suami]]}}
# {{l|id|abang}} {{gloss|panggilan kepada [[laki-laki]] yang belum lama [[dikenal]]}}
=={{bahasa|lod}}==
{{kepala|lod}}
{{-n-|lod}}
# [[jendela]]
=={{bahasa|bew}}==
{{kepala|bew|num=1|homid=kakak laki-laki}}
{{-n-|bew}}
# {{l|id|abang}} {{gloss|[[kakak]] [[laki-laki]]}}
# {{l|id|abang}} {{gloss|[[panggilan]] kepada [[laki-laki]] yang lebih [[tua]]}}
{{kepala|bew|num=2|homid=warna}}
{{-adj-|bew}}
# warna [[merah]]
{{kepala|bew|num=3}}
{{-n-|bew}}
# ''lihat'' '''{{pranala|bew|abangan}}'''
{{-bacaan-}}
* {{R:Abdul Chaer Juni 2009|page=1}}
=={{bahasa|beu}}==
{{kepala|beu}}
{{-n-|beu}}
# [[desa]]; [[kampung]]
=={{bahasa|jv}}==
{{kepala|jv|alt=ꦲꦧꦁ}}
: {{pemenggalan|id|abang}} {{AFI|id|/abaŋ/}}
:* {{suara|jv|LL-Q33549 (jav)-Menyusurisudutnegeri-abang.wav|q=Banyumas}}
:* {{suara|jv|LL-Q33549 (jav)-Rizkako30-abang.wav|q=Kedu}}
:* {{suara|jv|LL-Q33549 (jav)-Farizor-abang.wav|q=Malang}}
:* {{suara|jv|LL-Q33549 (jav)-Tetheow-abang.wav|q=Surabaya}}
{{-etimologi-}}
:Dari {{Inh-w|jv|kaw|abaṅ}} (ekuivalen dengan {{kat-afiks|jv|''[[bang]]'' + ''[[a-]]''}}), dari {{Inh-w|jv|kaw|baṅ|bāṅ}}, mungkin dari {{Der*|jv|mkh-pro|rɔɔŋ}}, {{Der^|mkh-pro|ɟrɔɔŋ|t=merah}}.
{{-adj-|jv}}
# [[merah]]
#: {{syn|jv|abrit|q1=krama}}
#: {{contoh|jv|Aku tuku klambi '''abang'''.|t=Aku beli baju warna '''merah'''.}}
{{-turunan-}}
* [[abangan]]
{{-lihat-}}
{{tabel:warna/jv}}
=={{bahasa|mak}}==
{{kepala|mak}}
:{{suara|mak|LL-Q33643 (mak)-Noefieya NFY-abang.wav|q=Turatea}}
{{-n-|mak}}
# {{label|mak|Lakiung|Turatea}} [[dahi]]
{{-bacaan-}}
* Arief, A. (1995). ''[https://repositori.kemendikdasmen.go.id/2931/1/kamus%20makassar%20-%20indonesia%20%20%20-%20%20%20479h.pdf Kamus Makassar - Indonesia]''. Ujung Pandang: Yayasan YAPIK DDI.
[[Kategori:WikiTutur 3.0 - Makassar]]
[[Kategori:Kopdar WikiTutur 3.0 Jakarta 2026-01-26]]
=={{bahasa|ms}}==
{{kepala|ms}}
{{-n-|ms}}
# {{l|id|abang}} {{gloss|[[kakak]] [[laki-laki]]}}
=={{bahasa|jax}}==
{{kepala|jax}}
: {{suara|jax|LL-Q3915769 (jax)-Sultan Toktik-abang.wav|q=Jambi Seberang}}
{{-pronomina-|jax}}
# {{l|jax|abang}} {{gloss|[[kakak]] [[laki-laki]]}}
=={{bahasa|min}}==
{{kepala|min|num=1}}
: {{suara|min|LL-Q13324 (min)-Maronsita-abang.wav}}
{{-etimologi-}}
: Seasal dengan bahasa Melayu {{sebut|ms|abang}}.
{{-n-|min}}
# {{l|id|abang}} {{gloss|kakak laki-laki}}
# {{l|id|abang}} {{gloss|panggilan kepada suami}}
#: {{sinonim|min|uda|ajo|uwan|uwen|ombak}}
#: {{contoh|min|Lai tau, '''abang'''?|t='''Abang''', apakah kamu tahu?}}<!--LL-Q13324 (min)-Maronsita-lai tau abang?.wav-->
{{kepala|min|num=2}}
{{-ragam-}}
* {{l|min|obang}}
{{-etimologi-}}
: Pinjaman dari bahasa Melayu {{sebut|ms|ebang}}, {{sebut|ms|bang}}, dari bahasa Farsi {{sebut|fa|بانگ|tr=bâng|t=suara, sahutan, panggilan}}.
{{-n-|min}}
# [[azan]]
#: {{contoh|min|Urang lah '''abang''' di surau, sumbayang awak lai!|t=Orang sudah '''azan''' di masjid, mari kita pergi salat dulu!}}
{{-turunan-}}
* {{l|min|baabangan}}
* {{l|min|maabangan}}
=={{bahasa|mui}}==
{{kepala|mui}}
{{-adj-|mui}}
# [[merah]]
{{-turunan-}}
* {{l|mui|abang bibo}}
=={{bahasa|mui-plm}}==
{{kepala|mui-plm}}
: {{AFI|mui-plm|/abaŋ/}} {{suara|mui-plm|LL-Q12497929 (mis)-Miraa26-abang.wav}}
{{-etimologi-}}
: Pinjaman dari bahasa Jawa {{sebut|jv|abang|t=merah}}.
{{-adj-|mui-plm}}
# [[merah]]
#: {{contoh|mui-plm|'''Abang''' nian rai kau.|t='''Merah''' sekali wajahmu.}}
{{-turunan-}}
{{kotak|mui-plm
|abang bibir
|abang ijó
|abang kué
|ngabang
|telo' abang
|uma' abang
}}
=={{bahasa|pey}}==
{{kepala|pey}}
: {{suara|pey|LL-Q940486 (pey)-Bangrapip-abang.wav}}
{{-etimologi-}}
: Dari {{der|pey|bew|abang|t=abang}} dari {{der|pey|ms|abang|t=abang}}.
{{-n-|pey}}
# {{l|id|abang}}
=={{bahasa|bts}}==
{{kepala|bts}}
{{-n-|bts}}
# {{l|id|abang}}
=={{bahasa|tes}}==
{{kepala|tes}}
: {{suara|tes|LL-Q33549 (jav)-Bu Hariyati (Ruvika de)-abang.wav}}
{{-adj-|tes}}
# [[merah]]
#: {{contoh|tes|Klambine lare iku werna '''abang'''.|t=Baju anak itu berwarna '''merah'''.}}
[[Kategori:Rapat Komunitas Wiktionary Indonesia 2025-11-13]]
[[Kategori:WikiTutur - Jawa]]
[[Kategori:WikiTutur Daring Umum 11 Februari 2024]]
[[Kategori:WikiTutur 2.0 - Minangkabau]]
[[Kategori:WikiTutur 2.0 Padang 22 Oktober 2024]]
[[Kategori:WikiTutur - Palembang]]
[[Kategori:WikiTutur Palembang 18 Februari 2024]]
[[Kategori:WikiTutur - Peco]]
[[Kategori:WikiTutur Jakarta 3 Februari 2024]]
[[Kategori:Kopdar WikiTutur 2.0 Jakarta 20 April 2025]]
[[Kategori:WikiTutur 2.0 - Tengger]]
=={{bahasa|osi}}==
{{kepala|osi}}
: {{suara|osi|LL-Q2701322 (osi)-Nurholipah (Dinda Anggun)-Abang.wav}}
{{-a-|osi}}
# [[merah]]
[[Kategori:Edit-a-thon WikiKathā Maret 2026]]
b56lsbw99qt95ogo1aqb9ahmdk8blp7
modern
0
3493
1349980
1279794
2026-04-15T08:42:45Z
Iripseudocorus
40083
rekam1
1349980
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id}}
{{-a-|id}}
# terbaru; mutakhir:<br />'' pasukan diperlengkapi dengan senjata-senjata modern''
#* {{RQ:20 Mei Pelopor 17 Agustus
|page=13-14
|text=Tjita-tjita I.P. ialah: Indonesia merdeka dan berdaulat, kewarga-negaraan setjara '''modern''' (tak mengingati asal-kebangsaan apa, asalkan mengakui Indonesia sebagai negara dan kebangsaannja).
|norm=Cita-cita I.P. ialah: Indonesia merdeka dan berdaulat, kewarganegaraan secara '''modern''' (tak mengingati asal-kebangsaan apa, asalkan mengakui Indonesia sebagai negara dan kebangsaannya)
|url=https://id.wikisource.org/wiki/20_Mei_Pelopor_17_Agustus#:~:text=Tjita%2Dtjita%20I.P.%20ialah%3A%20Indonesia%20merdeka%20dan%20berdaulat%2C%20kewarga%2Dnegaraan%20setjara%20modern%20(tak%20mengingati%20asal%2Dkebangsaan%20apa%2C%20asalkan%20mengakui%20Indonesia%20sebagai%20negara%20dan%20kebangsaannja)%2C
}}
{{-a-|id}}
# sikap dan cara berpikir serta cara bertindak sesuai dengan tuntutan zaman
{{-turunan-|id}}
{{-ragam-}}
* [[moderen]]
{{-terjemahan-}}
{{t-atas}}
{{t-bawah}}
{{-bacaan-}}
* {{R:KBBI Daring}}
{{rfv|id|impor dari KBBI}}
[[Kategori:id:Penyerapan utuh]]
=={{bahasa|nl}}==
{{kepala|nl}}
{{-n-|nl}}
#[[modern]]
c3r9wi4ij4zjqx1o5l1w6j5dixiia7m
1349981
1349980
2026-04-15T08:43:41Z
Iripseudocorus
40083
rekam1
1349981
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id}}
: {{pemenggalan|id|mo|dern}} {{suara|id|LL-Q9240 (ind)-Iripseudocorus-modern.wav}}
{{-a-|id}}
# terbaru; mutakhir:<br />'' pasukan diperlengkapi dengan senjata-senjata modern''
#* {{RQ:20 Mei Pelopor 17 Agustus
|page=13-14
|text=Tjita-tjita I.P. ialah: Indonesia merdeka dan berdaulat, kewarga-negaraan setjara '''modern''' (tak mengingati asal-kebangsaan apa, asalkan mengakui Indonesia sebagai negara dan kebangsaannja).
|norm=Cita-cita I.P. ialah: Indonesia merdeka dan berdaulat, kewarganegaraan secara '''modern''' (tak mengingati asal-kebangsaan apa, asalkan mengakui Indonesia sebagai negara dan kebangsaannya)
|url=https://id.wikisource.org/wiki/20_Mei_Pelopor_17_Agustus#:~:text=Tjita%2Dtjita%20I.P.%20ialah%3A%20Indonesia%20merdeka%20dan%20berdaulat%2C%20kewarga%2Dnegaraan%20setjara%20modern%20(tak%20mengingati%20asal%2Dkebangsaan%20apa%2C%20asalkan%20mengakui%20Indonesia%20sebagai%20negara%20dan%20kebangsaannja)%2C
}}
{{-a-|id}}
# sikap dan cara berpikir serta cara bertindak sesuai dengan tuntutan zaman
{{-turunan-|id}}
{{-ragam-}}
* [[moderen]]
{{-terjemahan-}}
{{t-atas}}
{{t-bawah}}
{{-bacaan-}}
* {{R:KBBI Daring}}
{{rfv|id|impor dari KBBI}}
[[Kategori:id:Penyerapan utuh]]
=={{bahasa|nl}}==
{{kepala|nl}}
{{-n-|nl}}
#[[modern]]
2ubbyipn1yxub5690nbkqjqu5bgtjut
periode
0
3589
1349962
1280891
2026-04-15T08:09:40Z
Iripseudocorus
40083
rekam1
1349962
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id}}
: {{pemenggalan|id|pe|ri|o|de}} {{suara|id|LL-Q9240 (ind)-Iripseudocorus-periode.wav}}
{{-n-|id}}
#[[periode]], masa [[waktu]]
#* {{RQ:20 Mei Pelopor 17 Agustus
|page=17
|text=Pada '''periode''' itu djuga mulai tersebarnja benih-benih socialisme dengan aksinja jang hebat dan berpusat di Semarang.
|norm=Pada '''periode''' itu juga mulai tersebarnya benih-benih sosialisme dengan aksinya yang hebat dan berpusat di Semarang.
|url=https://id.wikisource.org/wiki/Halaman%3A20_Mei_Pelopor_17_Agustus_-_Museum_Dewantara_Kirti_Griya.pdf/16#:~:text=Pada%20periode%20itu%20djuga%20mulai%20tersebarnja%20benih%2Dbenih%20socialisme%20dengan%20aksinja%20jang%20hebat%20dan%20berpusat%20di%20Semarang.
}}
=={{bahasa|nl}}==
{{kepala|nl}}
{{-n-|nl}}
#[[periode]], masa [[waktu]]
c380eshjvkyedph7l8r8l9m8u71f3cp
Templat:it-conj-are
10
13190
1349907
820538
2026-04-15T06:43:17Z
DelintBot
47600
Replacing [[mw:Help:Lint errors/obsolete-tag|obsolete tags]]
1349907
wikitext
text/x-wiki
<!--Conjugation of regular Italian verbs in -are-->
<!--Use first parameter for the stem, second parameter for the auxiliary verb (Avere or Essere)-->
<!--Copied, with modifications, from English Wiktionary-->
<div style="text-align: center;">
{| style="background:#F0F0F0"
|-
! colspan="2" style="background:#e2e4c0" |
! colspan="3" style="background:#e2e4c0" | sederhana
! colspan="3" style="background:#e2e4c0" | komposit
|-
! colspan="2" style="background:#e2e4c0" | infinitif
| colspan="3" | {{{1}}}are
| colspan="3" | {{{2}}} {{{1}}}ato
|-
! colspan="2" style="background:#e2e4c0" | gerund
| colspan="3" | {{{1}}}ando
| colspan="3" | gunakan gerund ''{{{2}}}'' dan {{{1}}}ato
|-
! colspan="2" style="background:#e2e4c0" | partisip kini
| colspan="3" | [[{{{1}}}ante]]
|-
! colspan="2" style="background:#e2e4c0" | partisip lampau
| colspan="3" | [[{{{1}}}ato]]
|-
! colspan="2" rowspan="2" style="background:#C0C0C0" | orang
! colspan="3" style="background:#C0C0C0" | tunggal
! colspan="3" style="background:#C0C0C0" | jamak
|-
! style="background:#C0C0C0;width:12.5%" | pertama
! style="background:#C0C0C0;width:12.5%" | kedua
! style="background:#C0C0C0;width:12.5%" | ketiga
! style="background:#C0C0C0;width:12.5%" | pertama
! style="background:#C0C0C0;width:12.5%" | kedua
! style="background:#C0C0C0;width:12.5%" | ketiga
|-
! style="background:#c0cfe4" colspan="2" | indikatif
! style="background:#c0cfe4" | io
! style="background:#c0cfe4" | tu
! style="background:#c0cfe4" | lui/lei
! style="background:#c0cfe4" | noi
! style="background:#c0cfe4" | voi
! style="background:#c0cfe4" | loro
|-
! rowspan="5" style="background:#c0cfe4" | bentuk waktu<br>sederhana
! style="height:3em;background:#c0cfe4" | kini
| {{{1}}}o
| {{{1}}}i
| {{{1}}}a
| {{{1}}}iamo
| {{{1}}}ate
| {{{1}}}ano
|-
! style="height:3em;background:#c0cfe4" | imperfek
| {{{1}}}avo
| {{{1}}}avi
| {{{1}}}ava
| {{{1}}}avamo
| {{{1}}}avate
| {{{1}}}avano
|-
! style="height:3em;background:#c0cfe4" | passato remoto
| {{{1}}}ai
| {{{1}}}asti
| {{{1}}}ò
| {{{1}}}ammo
| {{{1}}}aste
| {{{1}}}arono
|-
! style="height:3em;background:#c0cfe4" | futur
| {{{1}}}erò
| {{{1}}}erai
| {{{1}}}erà
| {{{1}}}eremo
| {{{1}}}erete
| {{{1}}}eranno
|-
! style="height:3em;background:#c0cfe4" | kondisional
| {{{1}}}erei
| {{{1}}}eresti
| {{{1}}}erebbe
| {{{1}}}eremmo
| {{{1}}}ereste
| {{{1}}}erebbero
|-
! rowspan="5" style="background:#c0cfe4" | bentuk waktu<br>komposit
! style="height:3em;background:#c0cfe4" | passato prossimo
! colspan="6" style="background:#C0C0C0" | gunakan bentuk kini dari ''{{{2}}}'' dan partisip lampau
|-
! style="height:3em;background:#c0cfe4" | trapassato prossimo
! colspan="6" style="background:#C0C0C0" | gunakan bentuk imperfek dari ''{{{2}}}'' dan partisip lampau
|-
! style="height:3em;background:#c0cfe4" | trapassato remoto
! colspan="6" style="background:#C0C0C0" | gunakan betuk passato remoto dari ''{{{2}}}'' dan partisip lampau
|-
! style="height:3em;background:#c0cfe4" | futuro anteriore
! colspan="6" style="background:#C0C0C0" | gunakan bentuk futur dari ''{{{2}}}'' dan partisip lampau
|-
! style="height:3em;background:#c0cfe4" | condizionale passato
! colspan="6" style="background:#C0C0C0" | gunakan bentuk kondisional dari ''{{{2}}}'' dan partisip lampau
|-
! style="background:#c0e4c0" colspan="2" | subjungtif
! style="background:#c0e4c0" | che io
! style="background:#c0e4c0" | che tu
! style="background:#c0e4c0" | che lui/che lei
! style="background:#c0e4c0" | che noi
! style="background:#c0e4c0" | che voi
! style="background:#c0e4c0" | che loro
|-
! rowspan="2" style="background:#c0e4c0" | bentuk waktu<br>sederhana
! style="height:3em;background:#c0e4c0" | kini
| {{{1}}}i
| {{{1}}}i
| {{{1}}}i
| {{{1}}}iamo
| {{{1}}}iate
| {{{1}}}ino
|-
! style="height:3em;background:#c0e4c0" rowspan="1" | imperfek
| {{{1}}}assi
| {{{1}}}assi
| {{{1}}}asse
| {{{1}}}assimo
| {{{1}}}aste
| {{{1}}}assero
|-
! rowspan="2" style="background:#c0e4c0" | bentuk waktu<br>komposit
! style="height:3em;background:#c0e4c0" | passato
! colspan="6" style="background:#C0C0C0" | gunakan subjungtif kini dari ''{{{2}}}'' dan partisip lampau
|-
! rowspan="1" style="height:3em;background:#c0e4c0" | trapassato
! colspan="6" style="background:#C0C0C0" | gunakan subjungtif imperfek dari ''{{{2}}}'' dan partisip lampau
|-
! colspan="2" rowspan="2" style="height:3em;background:#e4d4c0" | imperatif
! style="background:#e4d4c0" | -
! style="background:#e4d4c0" | tu
! style="background:#e4d4c0" | lui/lei
! style="background:#e4d4c0" | noi
! style="background:#e4d4c0" | voi
! style="background:#e4d4c0" | loro
|-
|
| {{{1}}}a
| {{{1}}}i
| {{{1}}}iamo
| {{{1}}}ate
| {{{1}}}ino
|}
</div><noinclude>
[[Kategori:Templat {{it}}]]
[[kategori:Templat konjugasi]]</noinclude>
97lbmb9fsf3146b0ousd4ib5b45ubzv
Templat:es-conj-ar
10
14101
1349906
820542
2026-04-15T06:43:17Z
DelintBot
47600
Replacing [[mw:Help:Lint errors/obsolete-tag|obsolete tags]]
1349906
wikitext
text/x-wiki
<div style="text-align: center;">
{| style="background:#F0F0F0"
|-
! colspan="3" style="background:#e2e4c0" | infinitif
| colspan="5" | {{{1}}}ar
|-
! colspan="3" style="background:#e2e4c0" | gerund
| colspan="5" | {{{1}}}ando
|-
! colspan="3" style="background:#e2e4c0" | partisip lampau
| colspan="5" | [[{{{1}}}ado]]
|-
! colspan="2" rowspan="2" style="background:#C0C0C0" | orang
! colspan="3" style="background:#C0C0C0" | tunggal
! colspan="3" style="background:#C0C0C0" | jamak
|-
! style="background:#C0C0C0;width:12.5%" | pertama
! style="background:#C0C0C0;width:12.5%" | kedua
! style="background:#C0C0C0;width:12.5%" | ketiga
! style="background:#C0C0C0;width:12.5%" | pertama
! style="background:#C0C0C0;width:12.5%" | kedua
! style="background:#C0C0C0;width:12.5%" | ketiga
|-
! rowspan="6" style="background:#c0cfe4" | indikatif
! style="background:#c0cfe4" colspan="1" |
! style="background:#c0cfe4" | yo
! style="background:#c0cfe4" | tú
! style="background:#c0cfe4" | usted
! style="background:#c0cfe4" | nosotros
! style="background:#c0cfe4" | vosotros
! style="background:#c0cfe4" | ustedes
|-
! style="height:3em;background:#c0cfe4" | kini
| {{{1}}}o
| {{{1}}}as
| {{{1}}}a
| {{{1}}}amos
| {{{1}}}áis
| {{{1}}}an
|-
! style="height:3em;background:#c0cfe4" | imperfek
| {{{1}}}aba
| {{{1}}}abas
| {{{1}}}aba
| {{{1}}}ábamos
| {{{1}}}abais
| {{{1}}}aban
|-
! style="height:3em;background:#c0cfe4" | preterite
| {{{1}}}é
| {{{1}}}aste
| {{{1}}}ó
| {{{1}}}amos
| {{{1}}}asteis
| {{{1}}}aron
|-
! style="height:3em;background:#c0cfe4" | futur
| {{{1}}}aré
| {{{1}}}arás
| {{{1}}}ará
| {{{1}}}aremos
| {{{1}}}aréis
| {{{1}}}arán
|-
! style="height:3em;background:#c0cfe4" | kondisional
| {{{1}}}aría
| {{{1}}}arías
| {{{1}}}aría
| {{{1}}}aríamos
| {{{1}}}aríais
| {{{1}}}arían
|-
! rowspan="5" style="background:#c0e4c0" | subjungtif
! style="background:#c0e4c0" |
! style="background:#c0e4c0" | yo
! style="background:#c0e4c0" | tú
! style="background:#c0e4c0" | usted
! style="background:#c0e4c0" | nosotros
! style="background:#c0e4c0" | vosotros
! style="background:#c0e4c0" | ustedes
|-
! style="height:3em;background:#c0e4c0" | kini
| {{{1}}}e
| {{{1}}}es
| {{{1}}}e
| {{{1}}}emos
| {{{1}}}éis
| {{{1}}}en
|-
! style="height:3em;background:#c0e4c0" rowspan="1" | imperfek<br>(ra)
| {{{1}}}ara
| {{{1}}}aras
| {{{1}}}ara
| {{{1}}}áramos
| {{{1}}}arais
| {{{1}}}aran
|-
! style="height:3em;background:#c0e4c0" rowspan="1" | imperfek<br>(se)
| {{{1}}}ase
| {{{1}}}ases
| {{{1}}}ase
| {{{1}}}ásemos
| {{{1}}}aseis
| {{{1}}}asen
|-
! style="height:3em;background:#c0e4c0" rowspan="1" | futur
| {{{1}}}are
| {{{1}}}ares
| {{{1}}}are
| {{{1}}}áremos
| {{{1}}}areis
| {{{1}}}aren
|-
! colspan="2" rowspan="2" style="height:3em;background:#e4d4c0" | imperatif
! style="background:#e4d4c0" | -
! style="background:#e4d4c0" | tú
! style="background:#e4d4c0" | usted
! style="background:#e4d4c0" | nosotros
! style="background:#e4d4c0" | vosotros
! style="background:#e4d4c0" | ustedes
|-
|
| {{{1}}}a
| {{{1}}}e
| {{{1}}}emos
| {{{1}}}ad
| {{{1}}}en
|}
</div><noinclude>
[[Kategori:Templat {{es}}]]
[[category:Templat konjugasi]]</noinclude>
ovdprw8a0sui4zgihha3rkdjxjo7qp2
Templat:it-conj-ire
10
14107
1349908
820539
2026-04-15T06:43:18Z
DelintBot
47600
Replacing [[mw:Help:Lint errors/obsolete-tag|obsolete tags]]
1349908
wikitext
text/x-wiki
<!--Conjugation of regular Italian verbs in -ire-->
<!--Use verb stem as first parameter, and either Avere or Essere as second parameter-->
<div style="text-align: center;">
{| style="background:#F0F0F0"
|-
! colspan="3" style="background:#e2e4c0" | infinitif
| colspan="5" | {{{1}}}ire
|-
! colspan="3" style="background:#e2e4c0" | gerund
| colspan="5" | {{{1}}}endo
|-
! colspan="3" style="background:#e2e4c0" | partisip kini
| colspan="5" | [[{{{1}}}ente]]
|-
! colspan="3" style="background:#e2e4c0" | partisip lampau
| colspan="5" | [[{{{1}}}ito]]
|-
! colspan="2" rowspan="2" style="background:#C0C0C0" | orang
! colspan="3" style="background:#C0C0C0" | tunggal
! colspan="3" style="background:#C0C0C0" | jamak
|-
! style="background:#C0C0C0;width:12.5%" | pertama
! style="background:#C0C0C0;width:12.5%" | kedua
! style="background:#C0C0C0;width:12.5%" | ketiga
! style="background:#C0C0C0;width:12.5%" | pertama
! style="background:#C0C0C0;width:12.5%" | kedua
! style="background:#C0C0C0;width:12.5%" | ketiga
|-
! style="background:#c0cfe4" rowspan="6" | indikatif
! style="background:#c0cfe4" |
! style="background:#c0cfe4" | io
! style="background:#c0cfe4" | tu
! style="background:#c0cfe4" | lui/lei
! style="background:#c0cfe4" | noi
! style="background:#c0cfe4" | voi
! style="background:#c0cfe4" | loro
|-
! style="height:3em;background:#c0cfe4" | present
| {{{1}}}o
| {{{1}}}i
| {{{1}}}e
| {{{1}}}iamo
| {{{1}}}ite
| {{{1}}}ono
|-
! style="height:3em;background:#c0cfe4" | imperfect
| {{{1}}}ivo
| {{{1}}}ivi
| {{{1}}}iva
| {{{1}}}ivamo
| {{{1}}}ivate
| {{{1}}}ivano
|-
! style="height:3em;background:#c0cfe4" | passato remoto
| {{{1}}}ii
| {{{1}}}isti
| {{{1}}}ì
| {{{1}}}immo
| {{{1}}}iste
| {{{1}}}irono
|-
! style="height:3em;background:#c0cfe4" | future
| {{{1}}}irò
| {{{1}}}irai
| {{{1}}}irà
| {{{1}}}iremo
| {{{1}}}irete
| {{{1}}}iranno
|-
! style="height:3em;background:#c0cfe4" | conditional
| {{{1}}}irei
| {{{1}}}iresti
| {{{1}}}irebbe
| {{{1}}}iremmo
| {{{1}}}ireste
| {{{1}}}irebbero
|-
! style="background:#c0e4c0" rowspan="3" | subjunctive
! style="background:#c0e4c0" |
! style="background:#c0e4c0" | che io
! style="background:#c0e4c0" | che tu
! style="background:#c0e4c0" | che lui/che lei
! style="background:#c0e4c0" | che noi
! style="background:#c0e4c0" | che voi
! style="background:#c0e4c0" | che loro
|-
! style="height:3em;background:#c0e4c0" | present
| {{{1}}}a
| {{{1}}}a
| {{{1}}}a
| {{{1}}}iamo
| {{{1}}}iate
| {{{1}}}ano
|-
! style="height:3em;background:#c0e4c0" rowspan="1" | imperfect
| {{{1}}}issi
| {{{1}}}issi
| {{{1}}}isse
| {{{1}}}issimo
| {{{1}}}iste
| {{{1}}}issero
|-
! colspan="2" rowspan="2" style="height:3em;background:#e4d4c0" | imperative
! style="background:#e4d4c0" | -
! style="background:#e4d4c0" | tu
! style="background:#e4d4c0" | lui/lei
! style="background:#e4d4c0" | noi
! style="background:#e4d4c0" | voi
! style="background:#e4d4c0" | loro
|-
|
| {{{1}}}i
| {{{1}}}a
| {{{1}}}iamo
| {{{1}}}ite
| {{{1}}}ano
|}
</div><noinclude>
[[Kategori:Templat {{it}}]]
[[category:Templat konjugasi]]</noinclude>
k578hmwlgu0bepk77actxyk7edgx0br
api
0
21373
1350007
1327360
2026-04-15T10:02:35Z
Alfiyah Rizzy Afdiquni
40651
WikiRiksa
1350007
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id}}
{{suara|id|LL-Q9240 (ind)-Alfiyah Rizzy Afdiquni-api.wav}}
{{-n-|id}}
# panas dan cahaya yang berasal dari sesuatu yang terbakar; nyala: <br />''di dekat api itu tampak beberapa orang berdiang''
#* {{RQ:Mustikarasa
|page=1134
|text=Setelah dibungkus dengan daun pisang kemudian dibakar atau dipanggang dengan '''api''' sampai masak.
|url=https://id.wikisource.org/wiki/Halaman:Mustikarasa.pdf/1142#:~:text=Setelah%20dibungkus%20dengan%20daun%20pisang%20kemudian%20dibakar%20atau%20dipanggang%20dengan%20api%20sampai%20masak.
}}
# kebakaran: <br />''bahaya api sering terjadi di kota-kota besar''
# {{ki}} perasaan yang menggelora (tentang cinta, perjuangan); semangat: <br />''kita harus terus mengobarkan api perjuangan menentang penjajahan; api revolusi; api asmara''
{{-etimologi-}}
*Dari {{inh|id|poz-mly-pro|*api}}, dari {{inh|id|poz-pro|*hapuy}}, dari {{inh|id|map-pro|*Sapuy}}.
{{-terjemahan-}}
{{t-atas}}
* {{ar}} : {{trad-|ar|النار}}
* {{nl}} : {{trad-|nl|vuur}}
* {{bug}} : {{trad-|bug|api}}
* {{day}} : {{trad-|day|apui}}
*{{en}}: {{t+|en|fire}}
*{{fr}}: {{t+|fr|feu}}, {{t+|fr|flamme}}
*{{ru}}: {{t+|ru|огонь}}
*{{sv}}: {{t+|sv|eld}}
*{{th}}: {{t+|th|ไฟ}}
{{t-bawah}}
{{rfv|id|impor dari KBBI}}
=={{bahasa|bew}}==
{{kepala|bew}}
{{-lafal-}}
* {{suara|bew|LL-Q33014 (bew)-Yahya Andi Saputra (Bangrapip)-api.wav}}
{{-n-|bew}}
# {{l|id|api}}
[[Kategori:WikiTutur 2.0 - Betawi]]
[[Kategori:Kolaborasi Tim WikiTutur 2.0]]
=={{bahasa|bug}}==
{{kepala|bug}}
{{-n-|bug}}
# [[panas]] dan [[cahaya]] yang berasal dari sesuatu yang ter[[bakar]]
#: ''Ajja mukarawa api e''
#:Jangan sentuh apinya
{{-lafal-|bug}}
* {{suara|bug|LL-Q33190 (bug)-Iripseudocorus-Api.wav }}
=={{bahasa|jv}}==
{{kepala|jv}}
{{rfv|jv}}
{{-etimologi-}}
:{{Inh+|jv|kaw|apuy|t=api}}, dari {{Inh*|jv|PMP|hapuy|t=api}}, dari {{Inh*|jv|PAN|Sapuy|t=api}}. Untuk terjemahan kata "api" itu sendiri dalam bahasa Jawa sudah digantikan oleh istilah {{sebut|jv|geni}} yang diserap dari bahasa Sanskerta.
{{-n-|jv}}
# [[uap]]
{{-rujukan-}}
* {{R:map:ACD|*Sapuy|id=28117|type=c}}
=={{bahasa|knx}}==
{{kepala|knx}}
{{-lafal-}}
* {{suara|knx|LL-Q6388963 (knx)-Yua yaiba-api.wav}}
{{-adv-|knx}}
# {{l|id|api}}
[[Kategori:WikiTutur 2.0 - Kanayatn]]
=={{bahasa|knl}}==
{{kepala|knl}}
{{-lafal-}}
* {{suara|knl|LL-Q6389309 (knl)-Mario Manggit (Neyana999)-api.wav}}
{{-n-|knl}}
# {{l|id|api}}
[[Kategori:WikiTutur 2.0 - Keninjal]]
[[Kategori:Kolaborasi Tim WikiTutur 2.0]]
=={{bahasa|kge}}==
{{kepala|kge}}
{{-pron-|kge}}
# [[apa]]
{{-pron-|kge}}
# [[apa]]
{{-turunan-}}
{{col3|kge
|apida
|apilagi
|apiya
|apiyona
|ngapi
|ngapida}}
{{col3|kge
|api bakna
|api haga
|api pocakna}}
==== Rujukan ====
* Jakoeb, Ahmad Firdaus; Ben, Rakfat (2011). ''Kamus Bahasa Indonesia-Kumoring/Kumoring-Indonesia''.
=={{bahasa|ljp}}==
{{kepala|ljp}}
{{-pron-|ljp}}
# [[apa]]
#: ''Lagi '''api'''?''
#:Lagi '''apa'''?
{{-lafal-|ljp}}
* {{suara|ljp|LL-Q49215 (ljp)-Isa Saburai-Api.wav}}
=={{bahasa|mqy}}==
{{kepala|mqy}}
{{-n-|mqy}}
# {{l|id|api}}
=={{bahasa|ms}}==
{{kepala|ms}}
{{-adj-|ms}}
# [[api#bahasa Indonesia|api]]
{{-lafal-|ms}}
* {{suara|ms|LL-Q9237 (msa)-Caca (Muhammad Rifqi Saputra)-api.wav|q=''Sambas''}}
[[Category:WikiTutur 2.0 - Melayu Sambas]]
[[Category:Kopdar WikiTutur 2.0 Jakarta 20 April 2025]]
=={{bahasa|jax}}==
{{kepala|jax}}
{{-lafal-}}
*{{suara|jax|LL-Q3915769 (jax)-Hihida Abdillah 1997-api.wav|q=''Jambi Seberang''}}
{{-n-|jax}}
# ("Jambi Seberang") api:
#: ''panas nian api e..''
#:: apinya sangat panas..
=={{bahasa|mui-plm}}==
{{kepala|mui-plm}}
{{-n-|mui-plm}}
# {{l|id|api}}
=={{bahasa|rej}}==
{{kepala|rej}}
{{suara|pey|LL-Q3056339 (rej)-PiscesLeo-api.wav}}
{{-pron-|rej}}
# [[siapa]]
=={{bahasa|szy}}==
{{kepala|szy}}
{{-n-|szy}}
# [[kembar]]
=={{bahasa|rob}}==
{{kepala|rob}}
{{-n-|rob}}
# {{l|id|api}}
[[Kategori:WikiTutur Daring Umum 11 Februari 2024]]
[[Kategori:WikiTutur - Lampung Api]]
[[Kategori:WikiTutur Yogyakarta 18 Februari 2024]]
[[Kategori:WikiTutur - Bugis]]
[[Kategori:WikiTutur Kopdar Jakarta 27 April 2024]]
[[Kategori:WikiTutur - Betawi]]
[[Kategori: Kata bahasa Rejang]]
[[Kategori:WikiTutur Kopdar Jakarta 22 Juni 2024]]
[[Kategori:WikiTutur - Rejang]]
=={{bahasa|bbc}}==
{{kepala|bbc}}
{{-n-|bbc}}
# [[api]]
#: unang marmeam '''api''' ho
#: jangan bermain '''api''' kau
[[Kategori:Kopdar Wiki Medan 22 Februari 2026]]
tcarcm7qj2a8ki4t8tedy1smu28oz5a
pisang
0
21710
1349896
1330806
2026-04-15T06:31:35Z
Alfiyah Rizzy Afdiquni
40651
WikiRiksa
1349896
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id}}
{{suara|id|LL-Q9240 (ind)-Alfiyah Rizzy Afdiquni-pisang.wav}}
{{-n-|id}}
#suatu jenis buah genus ''Musa''
#suatu jenis tanaman buah tersebut
#* {{RQ:Mustikarasa
|page=1143
|text=Sedapan jang tjotjok dihidangkan dengan ini, ialah '''pisang''' rebus/ katjang tanah rebus.
|norm=Sedapan yang cocok dihidangkan dengan ini ialah '''pisang''' rebus atau kacang tanah rebus.
|url=https://id.wikisource.org/wiki/Halaman:Mustikarasa.pdf/1151#:~:text=Sedapan%20jang%20tjotjok%20dihidangkan%20dengan%20ini%2C%20ialah%20pisang%20rebus/%20katjang%20tanah%20rebus.
}}
=={{bahasa|ace}}==
{{kepala|ace}}
{{-lafal-|ace}}
* {{suara|ace|LL-Q27683 (ace)-Muislate-pisang.wav}}
{{-n-|ace}}
# pisang
{{-terjemahan-}}
{{t-atas}}
*{{ms}}: {{t+|ms|pisang}} {{t+|ms|ڤيسڠ}}
*{{bjn}}: {{t+|bjn|pisang}}
*{{gor}}: {{t+|gor|lambi}}
*{{en}}: {{t+|en|banana}}
*{{fr}}: {{t+|fr|banane}}
*{{fi}}: {{t+|fi|banaani}}
*{{ru}}: {{t+|ru|банан}}
*{{th}}: {{t+|th|กล้วย}}
{{t-bawah}}
{{id-cat|Fruit}}
=={{bahasa|ms}}==
{{kepala|ms}}
{{ms-orth|r=pisang|j=ڤيسڠ}}
{{ms-nm}}
#{{lang|id|pisang}}
{{ms-cat|Fruit}}
=={{bahasa|min}}==
{{kepala|min}}
{{-n-|min}}
# pisang
[[Kategori:WikiMaknyus Mataram]]
[[Kategori:WikiMaknyus]]
=={{bahasa|nij}}==
{{kepala|nij}}
{{-n-|nij}}
# pisang
#: ''Pisang te jadi mamusu''
#:: Pisang itu sudah muncul tongkolnya
{{-lafal-|kode bahasa}}
* {{suara|nij|LL-Q2992872 (nij)-Ilham Mufti Laksono-pisang.wav}}
[[Kategori:WikiTutur - Ngaju]]
[[Kategori:WikiTutur Kopdar Banjarmasin 30 Juni 2024]]
[[Kategori:WikiTutur 3.0 - Aceh]]
[[Kategori:WikiTutur 3.0 Kopdar Medan 2025-11-02]]
=={{bahasa|kvb}}==
{{kepala|kvb}}
: {{suara|kvb|LL-Q6441341 (kvb)-Mustafa (Qil123)-pisang.wav}}
{{-n-|kvb}}
# {{l|kvb|pisang}}
[[Kategori:Edit-a-thon WikiKathā Maret 2026]]
=={{bahasa|xmm}}==
{{kepala|xmm}}
: {{suara|xmm|LL-Q1068112 (xmm)-TerebinthTree-Pisang.wav}}
{{-n-|xmm}}
# pisang
[[Category:WikiMaknyus Manado]]
[[Category:WikiMaknyus]]
=={{bahasa|bjn}}==
{{kepala|bjn}}
{{-lafal-|bjn}}
* {{suara|bjn|LL-Q33151 (bjn)-Wadaihangit-pisang.wav}}
{{-n-|bjn}}
# pisang (buah)
#: {{ux|bjn|Pais ni nyamannya nang pais pisang pang|Kue pais ini enak yang rasa pisang}}
[[Kategori:WikiTutur 3.0 - Banjar]]
[[Kategori:WikiTutur 3.0 Banjarmasin 15 Februari 2026]]
ahs0wrun60hrkugp06ztyj31u8t26wg
botol
0
21793
1349922
1279296
2026-04-15T07:01:40Z
Alfiyah Rizzy Afdiquni
40651
WikiRiksa
1349922
wikitext
text/x-wiki
[[File:Botol.webm|thumb|250px|start=1|end=4|Bahasa isyarat kata "Botol" ]]
=={{bahasa|id}}==
{{kepala|id}}
{{suara|id|LL-Q9240 (ind)-Alfiyah Rizzy Afdiquni-botol.wav}}
{{-n-|id}}
# wadah untuk benda cair, yang berleher sempit dan biasanya dibuat dari kaca atau plastik: <br>''Ia mengisi botol minumnya dengan air segar sebelum berangkat ke sekolah.''
#* {{RQ:Mustikarasa
|page=1151
|text=Crème ini dapat disimpan dalam '''botol''' dan tahan kira² 1 minggu.
|url=https://id.wikisource.org/wiki/Halaman:Mustikarasa.pdf/1159#:~:text=Cr%C3%A8me%20ini%20dapat%20disimpan%20dalam%20botol%20dan%20tahan%20kira%C2%B2%201%20minggu.
}}
{{-pengejaan-|id}}
/bo·tol/
{{-turunan-|id}}
{{-terjemahan-}}
{{t-atas}}
* {{id}} : {{t+|id|botol}}
* {{gor}} : {{t+|gor|buutulu}}
* {{nl}} : {{trad-|nl|fles|f|m}}
* {{en}} : {{trad-|en|bottle}}
* {{de}} : {{trad-|de|Flasche|f}}
* {{fr}} : {{trad-|fr|bouteille}}
{{t-bawah}}
{{-rujukan-}}
{{-bacaan-}}
* {{R:KBBI Daring}}
{{rfv|id|impor dari KBBI}}
fs40v0cmk48x2gobn2mkd8f8i1iydu2
roti
0
21798
1349918
1347656
2026-04-15T06:59:08Z
Alfiyah Rizzy Afdiquni
40651
WikiRiksa
1349918
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id}}
{{suara|id|LL-Q9240 (ind)-Alfiyah Rizzy Afdiquni-roti.wav}}
{{-etimologi-}}
{{ubor|id|sa|रोटी}}.
{{-cog-|id}}
Kognatif dengan {{cog|hi|रोटी}} dan {{cog|ur|روٹی}}.
{{-n-|id}}
# makanan yang dibuat dari bahan pokok tepung terigu, banyak macamnya
#* {{RQ:Mustikarasa
|page=1150
|text=Wedang dihidangkan dalam mangkuk, dimasukkan 2 sendok makan bidji delima, 2 sendok katjang, beberapa potong '''roti'''.
|norm=Wedang dihidangkan dalam mangkuk, dimasukkan 2 sendok makan bidji delima, 2 sendok kacang, beberapa potong '''roti'''.
|url=https://id.wikisource.org/wiki/Halaman:Mustikarasa.pdf/1158#:~:text=Wedang%20dihidangkan%20dalam%20mangkuk%2C%20dimasukkan%202%20sendok%20makan%20bidji%20delima%2C%202%20sendok%20katjang%2C%20beberapa%20potong%20roti.}}
}}
{{-rujukan-}}
{{R:KBBI}}
{{-terjemahan-}}
{{t-atas}}
* {{af}}: {{t+|af|brood}}
* {{en}}: {{t+|en|bread}}
* bahasa Esperanto: {{t+|eo|pano}}
* bahasa Finlandia: {{t+|fi|leipä}}
* {{ms}}: {{t+|ms|roti}}
* {{fr}}: {{t+|fr|pain}}
* {{pt}}: {{t+|pt|pão|m}}
* bahasa Rusia: {{t+|ru|хлеб|m|sc=Cyrl}}
* bahasa Spanyol: {{t+|es|pan|m}}
* bahasa Swedia: {{t+|sv|bröd}}
* bahasa Turki: {{t+|tr|ekmek}}
{{t-bawah}}
=={{bahasa|bew}}==
{{kepala|bew}}
: {{suara|sas|LL-Q33014_(bew)-Hzu_Hzu-roti.wav }}
{{-n-|bew}}
# makanan yang mengandung ragi
=={{bahasa|min}}==
{{kepala|min}}
: {{suara|sas|LL-Q33014_(bew)-Hzu_Hzu-roti.wav }}
{{-n-|min}}
# makanan yang mengandung ragi
[[Kategori:WikiMaknyus Mataram]]
[[Kategori:WikiMaknyus]]
=={{bahasa|osi}}==
{{kepala|osi}}
: {{pemenggalan|osi|ro|ti}}
{{-n-|osi}}
# {{l|id|roti}}
{{-rujukan-}}
* Ali, Hasan. (2002). ''[https://web.archive.org/web/20260115111844/https://ebookbanyuwangi.id/assets/2022/kamus_using.pdf Kamus Bahasa Daerah Using-Indonesia]''. Banyuwangi: Pemerintah Kabupaten Banyuwangi.
[[Kategori:Edit-a-thon WikiKathā Maret 2026]]
4a1jo6r5ue80jbxdx8au9nqi1tbq7sh
kue
0
21804
1349895
1279326
2026-04-15T06:28:17Z
Alfiyah Rizzy Afdiquni
40651
WikiRiksa
1349895
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id}}
{{suara|id|LL-Q9240 (ind)-Alfiyah Rizzy Afdiquni-kue.wav}}
{{-n-|id}}
# penganan dari bahan yang bermacam-macam, ada yang dikukus, digoreng, dipanggang
#* {{RQ:Mustikarasa
|page=1137
|text='''Kue''' tadi dimasukkan kedalam gula, diaduk sampai rata (dibesta).
|url=https://id.wikisource.org/wiki/Halaman:Mustikarasa.pdf/1145#:~:text=Kue%20tadi%20dimasukkan%20kedalam%20gula%2C%20diaduk%20sampai%20rata%20(dibesta).
}}
{{e|id}}
* 糕 gao
{{-terjemahan-}}
{{t-atas}}
* {{bjn}} : {{trad-|bjn|wadai}}
* {{en}} : {{trad-|en|cake}}
* {{fr}} : {{trad-|fr|gâteau}}
{{t-bawah}}
=={{bahasa|mui-plm}}==
{{kepala|mui-plm}}
# kue; [[lontong]] tradisional
#: ''Beli talok untuk oleh-oleh''
#:: Beli talok untuk oleh-oleh
nmxl1cn6zohkl3l9a9oroj1r7nizuhx
pendidikan
0
21871
1349992
1279823
2026-04-15T08:59:40Z
Iripseudocorus
40083
rekam1
1349992
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id}}
: {{pemenggalan|id|pen|di|di|kan}} {{suara|id|LL-Q9240 (ind)-Iripseudocorus-pendidikan.wav}}
{{imbuhan peng-an|didik|kelas=n}}
# proses pengubahan sikap dan tata laku seseorang atau kelompok orang dalam usaha mendewasakan manusia melalui upaya pengajaran dan pelatihan; proses, cara, perbuatan mendidik
#* {{RQ:20 Mei Pelopor 17 Agustus
|page=n.d
|text=Dalam soal usaha '''pendidikan''' jang berdasar kebudajaan bangsa jang paling terkenal ialah Taman Siswa dengan systimnja '''pendidikan''' dan organisasi jang istimewa.
|norm=Dalam soal usaha '''pendidikan''' yang berdasar kebudayaan bangsa yang paling terkenal ialah Taman Siswa dengan sistemnya '''pendidikan''' dan organisasi yang istimewa.
|url=https://id.wikisource.org/wiki/Halaman%3A20_Mei_Pelopor_17_Agustus_-_Museum_Dewantara_Kirti_Griya.pdf/15#:~:text=Dalam%20soal%20usaha%20pendidikan%20jang%20berdasar%20kebudajaan%20bangsa%20jang%20paling%20terkenal%20ialah%20Taman%20Siswa%20dengan%20systimnja%20pendidikan%20dan%20organisasi%20jang%20istimewa%2C%20didirikan%20pada%203%20Juli%201922%20di%20Jogjakarta%20oleh%20Suwardi%20Suryaningrat%2C%20jang%20sedjak%208%20Mei%201928%20bernama%20Ki%20Hadjar%20Dewantoro.
}}
{{-terjemahan-}}
{{t-atas}}
* {{en}} : {{trad-|en|education}}
* {{fr}} : {{trad-|fr|éducation}}
{{t-bawah}}
{{-bacaan-}}
* {{R:KBBI Daring}}
{{rfv|id|impor dari KBBI}}
mfb74o1xh31fcld5g01uokm8f75p0ni
jeruk nipis
0
22653
1349924
1279290
2026-04-15T07:03:17Z
Alfiyah Rizzy Afdiquni
40651
WikiRiksa
1349924
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id}}
{{suara|id|LL-Q9240 (ind)-Alfiyah Rizzy Afdiquni-buah jeruk nipis.wav}}
{{-n-|id}}
# buah jeruk nipis
#* {{RQ:Mustikarasa
|page=1151
|text=Telur dikotjok selama 5 menit sampai naik betul, ditjampur dengan gula pasir halus dan air '''djeruk nipis.'''
|norm=Telur dikocok selama 5 menit sampai naik betul, dicampur dengan gula pasir halus dan air '''jeruk nipis.'''
|url=https://id.wikisource.org/wiki/Halaman:Mustikarasa.pdf/1159#:~:text=Telur%20dikotjok%20selama%205%20menit%20sampai%20naik%20betul%2C%20ditjampur%20dengan%20gula%20pasir%20halus%20dan%20air%20djeruk%20nipis.
}}
{{-sinonim-}}
* [[limau]]
{{-terjemahan-}}
{{t-atas}}
* {{en}} : {{trad-|en|lemon}}
* {{fr}} : {{trad-|fr|citron}}
{{t-bawah}}
[[Kategori:id:Buah]]
lt5h7449ehnc7hihqcm486g5bpol7gs
penyakit
0
22950
1349964
1283205
2026-04-15T08:12:32Z
Iripseudocorus
40083
rekam1
1349964
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id}}
: {{pemenggalan|id|pe|nya|kit}} {{suara|id|LL-Q9240 (ind)-Iripseudocorus-penyakit.wav}}
{{imbuhan peng-|sakit|kelas=n}}
# sesuatu yang menyebabkan terjadinya gangguan pada makhluk hidup
# gangguan kesehatan yang disebabkan oleh bakteri, virus, atau kelainan sistem faal atau jaringan pada organ tubuh (pada makhluk hidup)
#* {{RQ:20 Mei Pelopor 17 Agustus
|page=10
|text=Ketua Panitya adalah marhum dr. Tumbelaka, jang waktu itu tinggal dinegeri Belanda untuk menjiapkan diri sebagai specialist dalam ilmu '''penjakit''' urat-sjaraf.
|norm=Ketua Panitia adalah marhum dr. Tumbelaka, yang waktu itu tinggal di negeri Belanda untuk menyiapkan diri sebagai spesialis dalam ilmu '''penyakit''' urat-saraf.
|url=https://id.wikisource.org/wiki/Halaman%3A20_Mei_Pelopor_17_Agustus_-_Museum_Dewantara_Kirti_Griya.pdf/9#:~:text=Ketua%20Panitya%20adalah%20marhum%20dr.%20Tumbelaka%2C%20jang%20waktu%20itu%20tinggal%20dinegeri%20Belanda%20untuk%20menjiapkan%20diri%20sebagai%20%E2%80%9Especialist%E2%80%9D%20dalam%20ilmu%20penjakit%20urat%2Dsjaraf.
}}
# {{ki}} kebiasaan yang buruk; sesuatu yang mendatangkan keburukan: <br />''suka membual itulah yang menjadi penyakitnya; mobil ini banyak penyakitnya''
# {{label|id|kasar}} kurang ajar (kata afektif dalam makian); bangsat: <br />''penyakit , pergi kau''
{{-terjemahan-}}
{{t-atas}}
* {{en}} : {{trad-|en|disease}}
* {{fr}} : {{trad-|fr|maladie}}
{{t-bawah}}
{{-bacaan-}}
* {{R:KBBI Daring}}
{{rfv|id|impor dari KBBI}}
azbg62lrf70pg7a8j1ydff38galja38
gula
0
23056
1349941
1349299
2026-04-15T07:31:31Z
Alfiyah Rizzy Afdiquni
40651
WikiRiksa
1349941
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id}}
: {{pemenggalan|id|gu|la}} {{IPA|id|/gu.la/}}
* {{suara|id|LL-Q9240 (ind)-Alfiyah Rizzy Afdiquni-gula.wav}}
{{-etimologi-}}
: Sanskerta ''guḍa'' (गुड)
{{-n-|id}}
# bahan [[pemanis]] dalam bentuk [[padatan]] atau [[butiran]] yang dibuat dari air [[tebu]], [[aren]], atau [[kelapa]]
#* {{RQ:Mustikarasa
|page= 58
|text= '''Gula''' ini dibuat dari sari tebu, jang setelah disaring lalu dikristalkan dengan dimasak
|norm= '''Gula''' ini dibuat dari sari tebu, yang setelah disaring lalu dikristalkan dengan dimasak
|url= https://id.wikisource.org/wiki/Halaman:Mustikarasa.pdf/66#:~:text=Gula%20ini%20dibuat%20dari%20sari%20tebu%2C%20jang%20setelah%20disaring%20lalu%20dikristalkan%20dengan%20dimasak
}}
{{-terjemahan-}}
{{t-atas}}
* {{bhs|de}}: {{t|de|Zucker}}
* {{bhs|en}}: {{t|en|sugar}}
* {{bhs|fr}}: {{t|fr|sucre}}
* {{bhs|th}}: {{t|th|น้ำตาล}}
{{t-bawah}}
{{id-cat|Food}}
=={{bahasa|jv}}==
{{kepala|jv}}
{{-n-|jv}}
# [[Gula]]
#: ''Nggawa '''gula''' sak kilo'
#:Membawa gula satu kilo
{{-lafal-|jv}}
* {{suara|jv|LL-Q33549 (jav)-Tetheow-gula.wav}}
[[Kategori:WikiTutur Daring Umum 11 Februari 2024]]
[[Kategori:WikiTutur - Jawa]]
=={{bahasa|tes}}==
{{kepala|tes}}
{{-n-|tes}}
# {{l|id|gula}}
{{-lafal-|tes}}
* {{suara|tes|LL-Q12473479 (tes)-Resmi (Bangrapip)-gula.wav}}
[[Kategori:Kopdar WikiTutur 2.0 Jakarta 20 April 2025]]
[[Kategori:WikiTutur 2.0 - Tengger]]
[[Category:WikiMaknyus Manado]]
[[Category:WikiMaknyus]]
=={{bahasa|xmm}}==
{{kepala|xmm}}
: {{suara|xmm|LL-Q9240 (ind)-Manadonese-Gula.wav}}
{{-n-|xmm}}
# gula, bahan pemanis
[[Category:WikiMaknyus Manado]]
[[Category:WikiMaknyus]]
0nn7lcv7h1vwtnin5p9hrtsrxcscepn
lada
0
23381
1349912
1286387
2026-04-15T06:47:07Z
Alfiyah Rizzy Afdiquni
40651
1349912
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id}}
{{-n-|id}}
# buah lada
#* {{RQ:Mustikarasa
|page=1149
|text='''Lada''', pala, tjengkeh, djae ditumbuk sampai halus.
|norm='''Lada''', pala, cengkeh, jahee ditumbuk sampai halus.
|url=https://id.wikisource.org/wiki/Halaman:Mustikarasa.pdf/1157#:~:text=Lada%2C%20pala%2C%20tjengkeh%2C%20djae%20ditumbuk%20sampai%20halus.
}}
#: {{syn|id|merica|sahang}}
#* {{RQ:Mustikarasa
|page= 59
|text= '''Lada''' berbentuk butir ketjil2 bundar, ada jang hitam, asal dari Lampung dan ada pula jang putih asal dari Bangka. Rasa pedas disebabkan oleh piperin. Lada hitam lebih banjak mengadung zat ini daripada lada putih.
|norm= '''Lada''' berbentuk butir kecil-kecil bundar, ada yang hitam, asal dari Lampung dan ada pula yang putih asal dari Bangka. Rasa pedas disebabkan oleh piperin. Lada hitam lebih banyak mengandung zat ini daripada lada putih.
|url= https://id.wikisource.org/wiki/Halaman:Mustikarasa.pdf/67#:~:text=Lada%20berbentuk%20butir%20ketjil2%20bundar%2C%20ada%20jang%20hitam%2C%20asal%20dari%20Lampung%20dan%20ada%20pula%20jang%20putih%20asal%20dari%20Bangka.%20Rasa%20pedas%20disebabkan%20oleh%20piperin.%20Lada%20hitam%20lebih%20banjak%20mengadung%20zat%20ini%20daripada%20lada%20putih.
}}
{{-terjemahan-}}
{{t-atas}}
* {{bhs|fi}}: {{t|fi|pippuri}}
* {{bhs|en}}: {{t|en|pepper}}
* {{bhs|fr}}: {{t|fr|poivre}}
{{t-bawah}}
=={{bahasa|ace}}==
{{kepala|ace}}
{{-n-|ace}}
# {{l|id|lada}}; [[merica]]
[[Kategori:WikiTutur 3.0 - Aceh]]
[[Kategori:WikiTutur 3.0 - 02 November 2025]]
=={{bahasa|mak}}==
{{kepala|mak}}
{{-n-|mak}}
# {{l|id|lada}}
=={{bahasa|nia}}==
{{kepala|nia}}
{{-n-|nia}}
# [[cabe]]
=={{bahasa|su}}==
{{kepala|su}}
: {{suara|su|LL-Q34002 (sun)-Griselda Orion-lada.wav}} {{suara|su|LL-Q34002 (sun)-Serigalakampus-lada.wav}}
{{-adj-|su}}
# [[pedas]]
#: {{contoh|su|Seblak kuring lada pisan.|Seblak saya pedas sekali.}}
[[Kategori:WikiTutur - Sunda]]
[[Kategori:WikiTutur Bandung 25 Februari 2024]]
[[Kategori:WikiTutur Kopdar Bandung 01 Juni 2024]]
[[Category:WikiMaknyus Manado]]
[[Category:WikiMaknyus]]
=={{bahasa|jv}}==
{{kepala|jv}}
{{-n-|jv}}
# [[lada]]
[[Kategori:WikiMaknyus]]
[[Kategori:WikiMaknyus Banjarnegara]]
4os6c63qasd3vf9em6d2y1z429oqwsb
1349913
1349912
2026-04-15T06:48:27Z
Alfiyah Rizzy Afdiquni
40651
WikiRiksa
1349913
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id}}
{{suara|id|LL-Q9240 (ind)-Alfiyah Rizzy Afdiquni-lada.wav}}
{{-n-|id}}
# buah lada
#* {{RQ:Mustikarasa
|page=1149
|text='''Lada''', pala, tjengkeh, djae ditumbuk sampai halus.
|norm='''Lada''', pala, cengkeh, jahee ditumbuk sampai halus.
|url=https://id.wikisource.org/wiki/Halaman:Mustikarasa.pdf/1157#:~:text=Lada%2C%20pala%2C%20tjengkeh%2C%20djae%20ditumbuk%20sampai%20halus.
}}
#: {{syn|id|merica|sahang}}
#* {{RQ:Mustikarasa
|page= 59
|text= '''Lada''' berbentuk butir ketjil2 bundar, ada jang hitam, asal dari Lampung dan ada pula jang putih asal dari Bangka. Rasa pedas disebabkan oleh piperin. Lada hitam lebih banjak mengadung zat ini daripada lada putih.
|norm= '''Lada''' berbentuk butir kecil-kecil bundar, ada yang hitam, asal dari Lampung dan ada pula yang putih asal dari Bangka. Rasa pedas disebabkan oleh piperin. Lada hitam lebih banyak mengandung zat ini daripada lada putih.
|url= https://id.wikisource.org/wiki/Halaman:Mustikarasa.pdf/67#:~:text=Lada%20berbentuk%20butir%20ketjil2%20bundar%2C%20ada%20jang%20hitam%2C%20asal%20dari%20Lampung%20dan%20ada%20pula%20jang%20putih%20asal%20dari%20Bangka.%20Rasa%20pedas%20disebabkan%20oleh%20piperin.%20Lada%20hitam%20lebih%20banjak%20mengadung%20zat%20ini%20daripada%20lada%20putih.
}}
{{-terjemahan-}}
{{t-atas}}
* {{bhs|fi}}: {{t|fi|pippuri}}
* {{bhs|en}}: {{t|en|pepper}}
* {{bhs|fr}}: {{t|fr|poivre}}
{{t-bawah}}
=={{bahasa|ace}}==
{{kepala|ace}}
{{-n-|ace}}
# {{l|id|lada}}; [[merica]]
[[Kategori:WikiTutur 3.0 - Aceh]]
[[Kategori:WikiTutur 3.0 - 02 November 2025]]
=={{bahasa|mak}}==
{{kepala|mak}}
{{-n-|mak}}
# {{l|id|lada}}
=={{bahasa|nia}}==
{{kepala|nia}}
{{-n-|nia}}
# [[cabe]]
=={{bahasa|su}}==
{{kepala|su}}
: {{suara|su|LL-Q34002 (sun)-Griselda Orion-lada.wav}} {{suara|su|LL-Q34002 (sun)-Serigalakampus-lada.wav}}
{{-adj-|su}}
# [[pedas]]
#: {{contoh|su|Seblak kuring lada pisan.|Seblak saya pedas sekali.}}
[[Kategori:WikiTutur - Sunda]]
[[Kategori:WikiTutur Bandung 25 Februari 2024]]
[[Kategori:WikiTutur Kopdar Bandung 01 Juni 2024]]
[[Category:WikiMaknyus Manado]]
[[Category:WikiMaknyus]]
=={{bahasa|jv}}==
{{kepala|jv}}
{{-n-|jv}}
# [[lada]]
[[Kategori:WikiMaknyus]]
[[Kategori:WikiMaknyus Banjarnegara]]
0zimq55too1tydcz6gd1smv9msi8niq
gerakan
0
23437
1349935
1279406
2026-04-15T07:19:30Z
Iripseudocorus
40083
rekam1
1349935
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id}}
: {{pemenggalan|id|ge|ra|kan}} {{suara|id|LL-Q9240 (ind)-Iripseudocorus-gerakan.wav}}
{{imbuhan -an|gerak|kelas=n}}
# perbuatan atau keadaan bergerak (air, laut, mesin)
# pergerakan, usaha, atau kegiatan dalam lapangan sosial (politik dsb): <br />''gerakan kaum buruh''
#* {{RQ:20 Mei Pelopor 17 Agustus
|page=
|text=Bukankah hingga kini masih ada perhimpunan-perhimpunan Pasundan, '''Gerakan''' Rakjat Indonesia Sunda Ketjil, Pemuda Indonesia Maluku, Kebaktian Rakjat Indonesia Sulawesi dll. sebagainja?
|norm=Bukankah hingga kini masih ada perhimpunan-perhimpunan Pasundan, '''Gerakan''' Rakyat Indonesia Sunda Kecil, Pemuda Indonesia Maluku, Kebaktian Rakyat Indonesia Sulawesi dan lain sebagainya?
|url=https://id.wikisource.org/wiki/Halaman%3A20_Mei_Pelopor_17_Agustus_-_Museum_Dewantara_Kirti_Griya.pdf/11#:~:text=Bukankah%20hingga%20kini%20masih%20ada%20perhimpunan%2Dperhimpunan%20%E2%80%9EPasundan%E2%80%9D%2C%20Gerakan%20Rakjat%20Indonesia%20Sunda%20Ketjil%2C%20Pemuda%20Indonesia%20Maluku%2C%20Kebaktian%20Rakjat%20Indonesia%20Sulawesi%20dll.%20sebagainja%3F}}
{{-terjemahan-}}
{{t-atas}}
* {{en}} : {{trad-|en|motion}}
* {{fr}} : {{trad-|fr|mouvement}}
{{t-bawah}}
{{-bacaan-}}
* {{R:KBBI Daring}}
{{rfv|id|impor dari KBBI}}
dfb13jt9zaq1qnf6b6lely17bg6o3db
hati
0
23450
1349944
1341578
2026-04-15T07:43:26Z
Alfiyah Rizzy Afdiquni
40651
WikiRiksa
1349944
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id}}
{{suara|id|LL-Q9240 (ind)-Alfiyah Rizzy Afdiquni-hati.wav}}
{{-n-|id}}
# {{Anat}} [[organ|Organ]] badan yang berwarna kemerah-merahan di bagian kanan atas [[rongga perut]], gunanya untuk mengambil [[sari-sari]] makanan di dalam [[darah]] dan menghasilkan [[empedu]]; [[lever]].
# [[Daging]] dari hati sebagai bahan makanan (terutama dari binatang [[sembelihan]]):
#: ''masakan [[sambal goreng]] hati''
# [[jantung|Jantung]]:
#: '''''Hati'''nya [[berdebar-debar]].''
# Sesuatu yang ada di dalam tubuh manusia yang dianggap sebagai tempat segala [[perasaan]] [[batin]] dan tempat menyimpan [[pengertian]] ([[perasaan]] dsb.):
#: ''membaca dalam '''hati'''''
#: ''berbicara dari '''hati''' ke '''hati''
#* {{RQ:Mustikarasa
|page=1116
|text=Setelah kering ketan dilepaskan dari daun, di-potong² sesuka '''hati''', didjemur hingga kering betul.
|norm=Setelah kering ketan dilepaskan dari daun, di-potong² sesuka '''hati''', di jemur hingga kering betul.
|url=https://id.wikisource.org/wiki/Halaman:Mustikarasa.pdf/1124#:~:text=Setelah%20kering%20ketan%20dilepaskan%20dari%20daun%2C%20di%2Dpotong%C2%B2%20sesuka%20hati%2C%20didjemur%20hingga%20kering%20betul.
}}
# Bagian yang di dalam sekali (tentang [[buah]], [[batang]], [[tumbuhan]] dsb.)
#: '''''hati''' buah [[nangka]]''
#: '''''hati''' batang [[pisang]]''
# [[sifat|Sifat]] ([[tabiat]]) batin manusia:
#: ''Orang itu baik '''hati'''nya.''
# Apa yang terasa dalam batin:
#: ''Sedih '''hati'''ku memikirkan nasib kawanku itu.''
{{-turunan-|id}}
{{-terjemahan-}}
{{t-atas|organ tubuh}}
* bahasa Inggris: {{trad-|en|liver}}
* bahasa Perancis: {{trad-|fr|foie}}
{{t-bawah}}
{{t-atas|emosi atau perasaan}}
* bahasa Inggris: {{trad-|en|heart}}
* bahasa Perancis: {{trad-|fr|coeur}}
{{t-bawah}}
{{t-atas|simbol}}
* bahasa Inggris: {{trad-|en|heart}}
* bahasa Perancis: {{trad-|fr|coeur}}
{{t-bawah}}
{{-bacaan-}}
* {{R:KBBI Daring}}
{{rfv|id|impor dari KBBI}}
[[Kategori:id:Anatomi manusia]]
=={{bahasa|mqg}}==
{{kepala|mqg}}
{{-n-|mqg}}
# {{label|mqg|Kutai Adat Lawas}} {{l|id|hati}}
[[Kategori:Edit-a-thon WikiKathā Maret 2026]]
=={{bahasa|min}}==
{{kepala|min}}
{{-n-|min}}
# {{aneuk jamee}} hati; [[lever]]
{{-lafal-|min}}
* {{suara|min| LL-Q13324 (min)-Agent20november-hati.wav }}
{{-ragam-}}
* [[ati]]
[[Kategori:WikiTutur - Aneuk Jamee]]
[[Kategori:WikiTutur Jakarta 3 Februari 2024]]
nvh1mkhoehxqvbratmgtgaw7sgmrvue
gelas
0
23695
1349938
1279279
2026-04-15T07:22:03Z
Alfiyah Rizzy Afdiquni
40651
WikiRiksa
1349938
wikitext
text/x-wiki
[[File:Gelas.webm|thumb|250px|start=1|end=4|Bahasa isyarat kata "Gelas" ]]
=={{bahasa|id}}==
{{kepala|id}}
{{suara|id|LL-Q9240 (ind)-Alfiyah Rizzy Afdiquni-gelas.wav}}
{{-n-|id}}
# tempat untuk minum, berbentuk tabung terbuat dari kaca dan sebagainya.
#* {{RQ:Mustikarasa
|page=1152
|text=Minuman ini biasanja untuk orang sakit panas. Dihidangkan dalam '''gelas'''.
|norm=Minuman ini biasanya untuk orang sakit panas. Dihidangkan dalam gelas.
|url=https://id.wikisource.org/wiki/Halaman:Mustikarasa.pdf/1160#:~:text=Minuman%20ini%20biasanja%20untuk%20orang%20sakit%20panas.%20Dihidangkan%20dalam%20gelas.
}}
{{-etimologi-}}
* Dari {{nl}} [[glas]]
{{-terjemahan-}}
{{t-atas}}
*{{id}}: {{t+|id|gelas}}
*{{gor}}: {{t+|gor|halati}}
*{{en}} : {{trad-|en|glass}}
*{{fr}} : {{trad-|fr|verre}}
{{t-bawah}}
[[Kategori:id:Zat]]
s97sjcwez5764qac1f8zlg690bxd8di
jerapah
0
24488
1349958
1330388
2026-04-15T08:07:54Z
DelintBot
47600
Removing [[mw:Help:Lint errors/bogus-image-options|bogus image options]]
1349958
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id}}
: {{pemenggalan|id|je|ra|pah}} {{AFI|id|/d͡ʒəˈrapah/}}
[[File:Giraffa camelopardalis reticulata Nürnberg.jpg|Netzgiraffen (Giraffa camelopardalis reticulata) im Tiergarten Nürnberg|thumb|250px]]
{{-n-|id}}
# mamalia berkuku genap, berkaki panjang, kaki depan lebih panjang dari kaki belakang sehingga punggungnya menurun ke belakang, leher sangat panjang, kepalanya dapat mencapai ketinggian 5–6 m dari tanah; {{Species|Giraffa camelopardalis}}
{{-etimologi-}}
* serapan dari kata bahasa Arab "زَرَافَةٌ" ''zarāfah''.<ref>Jones, Russell. 2008. ''Loan-words in Indonesian and Malay''. Jakarta: Yayasan Obor Indonesia.</ref><ref>Ibn Manẓūr. 1431 H. ''Lisān al-ʿArab''. Cairo: Dār al-Maʿārif.</ref>
{{-rujukan-}}
<references/>
{{-bacaan-}}
* {{R:KBBI Daring}}
{{-sinonim-}}
* [[zarafah]]
{{-terjemahan-}}
{{t-atas}}
* {{en}} : {{trad-|en|giraffe}}
* {{fr}} : {{trad-|fr|girafe}}
{{t-bawah}}
[[Kategori:id:Mamalia]]
deg3i4fasoeyd5ve00s4ckbb1xtyfp6
bukti
0
24511
1349937
1279410
2026-04-15T07:20:42Z
Iripseudocorus
40083
rekam1
1349937
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id}}
: {{pemenggalan|id|buk|ti}} {{suara|id|LL-Q9240 (ind)-Iripseudocorus-bukti.wav}}
{{-n-|id}}
# sesuatu yang menyatakan kebenaran suatu peristiwa
#* {{RQ:20 Mei Pelopor 17 Agustus
|page=n.d
|text='''Bukti''' jang njata tentang sifat B. U. jang tidak ''provincialistis'' itu ialah berfusinja B. U. dengan P.B.I. mendjadi Parindra.
|norm='''Bukti''' yang nyata tentang sifat B. U. yang tidak ''provincialistis'' itu ialah berfusinya B. U. dengan P.B.I. menjadi Parindra.
|url=https://id.wikisource.org/wiki/Halaman%3A20_Mei_Pelopor_17_Agustus_-_Museum_Dewantara_Kirti_Griya.pdf/11#:~:text=Bukti%20jang%20njata%20tentang%20sifat%20B.%20U.%20jang%20tidak%20provincialistis%20itu%20ialah%20berfusinja%20B.%20U.%20dengan%20P.B.I.%20mendjadi%20%E2%80%9EParindra%E2%80%9D.
}}
# keterangan nyata
# [[tanda]]
{{-turunan-|id}}
* [[dibuktikan]]
* [[membuktikan]]
* [[pembuktian]]
{{-terjemahan-}}
{{t-atas}}
*{{de}}: {{t+|de|Beweis}}
*{{nl}}: {{t+|nl|bewijs}}
*{{en}}: {{t+|en|evidence}}, {{t+|en|proof}}
*{{fr}}: {{t+|fr|preuve}}
*{{ru}}: {{t+|ru|доказательство}}
{{t-bawah}}
6i3tz3mkky5dvlsdau7g43050kjxiaa
sendok
0
24637
1349940
1279274
2026-04-15T07:27:00Z
Alfiyah Rizzy Afdiquni
40651
WikiRiksa
1349940
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id}}
{{suara|id|LL-Q9240 (ind)-Alfiyah Rizzy Afdiquni-sendok.wav}}
{{-n-|id}}
# [[sendok]]
# bentuk tidak baku: senduk
# alat yang digunakan sebagai pengganti tangan dalam mengambil sesuatu (seperti nasi), bentuknya bulat, cekung, dan bertangkai (ada bermacam-macam, misalnya centong, sudip)
#* {{RQ:Mustikarasa
|page=1153
|text=Menghidangkannja tiga '''sendok''' makan gula
|norm=Menghidangkan tiga '''sendok''' makan gula
|url=https://id.wikisource.org/wiki/Halaman:Mustikarasa.pdf/1161#:~:text=Menghidangkannja%20tiga%20sendok%20makan%20gula
}}
{{-terjemahan-}}
{{t-atas}}
* {{nl}} : {{trad-|nl|lepel}}
* {{bug}} : {{trad-|bug|ᨔᨗᨋᨘ}}
* {{en}} : {{trad-|en|spoon}}
* {{fr}} : {{trad-|fr|cuillère}}
{{t-bawah}}
[[Kategori:Kbbi]]
[[Kategori:Kamus besar bahasa Indonesia]]
=={{bahasa|jax}}==
{{kepala|jax}}
{{-n-|jax}}
# [[sudu]] alat makan
#: Awak makan biasonyo pake '''sudu'''
#: saya makan biasanya pakai '''sendok'''
=={{bahasa|su}}==
{{kepala|su}}
{{-n-|su}}
# [[sendok]] alat makan
#: Ami mun dahar biasana tara make '''sendok'''
#: Ami kalau makan biasanya tidak pakai '''sendok'''
lcb2ml7655y70hycr2m824yo3z1sdt5
Wikikamus:Bot
4
24886
1349971
1349761
2026-04-15T08:20:34Z
Redmin
44783
/* DelintBot */ Balas
1349971
wikitext
text/x-wiki
* '''id''': '''Bot''' adalah program komputer yang dijalankan di lingkungan {{SITENAME}} yang khusus dibuat untuk melakukan pekerjaan-pekerjaan otomatis seperti menambahkan interwiki, melakukan pengosongan halaman kotak pasir setiap beberapa waktu dan lain-lain. Suntingan dari pengguna-pengguna bot secara default tidak muncul di halaman [[Istimewa:PerubahanTerbaru|perubahan terbaru]]. Seperti kebanyakan program komputer pada umumnya, bot tidak lepas dari kekutu, tetapi kebanyakan bot ditulis oleh pemrogram yang sudah ahli dan sudah melewati serangkaian uji coba yang panjang. Kebanyakan bot juga beroperasi di {{SITENAME}} lainnya yang sudah mendapatkan persetujuan untuk status bot. Lihat halaman [[:w:Wikipedia:Bot|Wikipedia:Bot]] di [[:w:|Wikipedia Indonesia]] untuk penjelasan detil mengenai Bot di proyek-proyek Wikimedia dalam bahasa Indonesia.
* <small>'''en:''' Requests for the [[m:bot|bot]] flag should be made on this page (see also the [[Wiktionary:Warung kopi|community discussion page]]). This wiki uses the [[m:bot policy|standard bot policy]], and allows [[m:bot policy#Global_bots|global bots]] and [[m:bot policy#Automatic_approval|automatic approval of certain types of bots]]. Other bots should apply below.</small>
[[Kategori:Halaman ruang nama proyek]]
== Daftar otomatis ==
* [[Istimewa:Daftar_pengguna/bot|Daftar bot secara otomatis]]
* [https://meta.toolforge.org/stewardry/idwiktionary?bot=1 Aktivitas bot secara otomatis]
* [{{fullurl:Istimewa:Catatan|type=rights}} Catatan perubahan hak akses]
== Persetujuan untuk status bot ==
Bagian di bawah ini ditujukan sebagai tempat menaruh permintaan persetujuan status bot dari komunitas. Gunakan templat di bawah ini untuk mengajukan permohonan Anda.
'''en''': ''Put your request for bot status here. Run your bot for a couple of days before request bot status. Inactive bot will be revoked. Use this template below.''
<pre>===[[User:''botname''|''botname'']]===
Responsible owner: [[xx:User:''ownername''|''ownername'']] (''bot owner username on main Wikimedia projects'')
Bot functions:
Already used with bot status on:
~~~~</pre>
===[[User:IvanBot|IvanBot]]===
<div style="background:#E3F9DF; padding:0 10px; border:1px solid #AAA;">
* Responsible owner: [[:w:User:IvanLanin|IvanLanin]].
* Bot functions: Various maintenance functions, but (probably) not interwiki.
* Already used with bot status on: [[:w:|id.wikipedia]]
--[[Pengguna:IvanLanin|IvanLanin]] 04:30, 17 Mei 2007 (UTC)
:Bot status granted on 18 Mei 2007 [[User:Borgx|<font face="Copperplate Gothic Bold" color="#1F85FF">borgx</font>]] <sup>([[User_talk:Borgx|<font color="#003366">kirim pesan</font>]])</sup> 00:07, 26 Mei 2007 (UTC)
{{done}}
</div>
===[[User:SpaceBirdyBot|SpaceBirdyBot]]===
<div style="background:#E3F9DF; padding:0 10px; border:1px solid #AAA;">
Hello, I am running my Bot [[User:SpaceBirdyBot]] as interwikibot on [[:is:Special:Contributions/SpaceBirdyBot|is.wikt]] (and de,es,pt,ga,af,fo,nah,scn,nl,sv,ro) lately because not all links are catched by the current active bots there. If You are interested I can set my bot to run here also.
I am using SVN pywikipedia (latest) and run it using <pre>interwiki.py -wiktionary -autonomous -force -noauto -nobacklink -noshownew -neverlink:fur,ilo,nov,sco</pre>
* Botmaster: [[:is:Notandi:Spacebirdy]]
* Bot's name:[[User:SpaceBirdyBot]]
* List of bot flags on other Wiktionarys:af,ar,co,ca,oc,da,de,el,es,it,is,pt,ga,gd,af,fo,nah,scn,nl,sv,ro,yi,zh-min-nan,...
* Purpose:interwiki
* Technical details:svn pywikipediabot, latest versions
Best regards, --[[Pengguna:Spacebirdy|Spacebirdy]] 09:06, 22 Juni 2008 (UTC)
{{done}}<!-- but not in the current bot list?-->
</div>
===[[User:SzajciBot|SzajciBot]]===
<div style="background:#E3F9DF; padding:0 10px; border:1px solid #AAA;">
* Botmaster: [[:hu:Szerkesztő:Szajci]]
* List of bot flags on other Wiktionarys: hu, uk
* Purpose:interwiki
* Technical details:svn pywikipediabot
{{not done}}
</div>
===[[User:Luckas-bot|Luckas-bot]]===
<div style="background:#E3F9DF; padding:0 10px; border:1px solid #AAA;">
*Responsible owner: [[:pt:User:Luckas Blade|Luckas Blade]]
*Bot functions: interwiki
*Already used with bot status on: pt, and waiting in others
--[[Pengguna:Luckas Blade|Luckas Blade]] 17:34, 20 November 2008 (UTC)
{{done}}
</div>
===[[User:Interwicket|Interwicket]]===
<div style="background:#E3F9DF; padding:0 10px; border:1px solid #AAA;">
* Responsible owner: [[:en:User:Robert Ullmann|Robert Ullmann]]
* Bot functions: interwiki
* Already used with bot status on: please see [[:en:User:Interwicket/FL status]]
Thanks, [[Pengguna:Robert Ullmann|Robert Ullmann]] 12:49, 17 April 2009 (UTC)
:Granted. •• [[User:IvanLanin|ivanlanin]] [[User Talk:IvanLanin|♫]] 18:59, 17 April 2009 (UTC)
{{done}}
</div>
===[[User:VolkovBot|VolkovBot]]===
<div style="background:#E3F9DF; padding:0 10px; border:1px solid #AAA;">
Hi! This interwiki bot owned by [[:w:ru:User:Volkov]] (sysop @ ru.wiki) has a global bot flag and is active on many wikimedia projects. Please grant a bot flag locally to avoid flooding recent changes. In case of any issue the bot owner can be reached at [[:w:ru:User talk:Volkov|Russian wikipedia]]. Thanks. --[[Pengguna:Volkov|Volkov]] 08:50, 20 April 2009 (UTC)
:Granted. •• [[User:IvanLanin|ivanlanin]] [[User Talk:IvanLanin|♫]] 09:48, 20 April 2009 (UTC)
:: Thanks! --[[Pengguna:Volkov|Volkov]] 10:12, 20 April 2009 (UTC)
{{done}}
</div>
===[[User:ArthurBot|ArthurBot]]===
<div style="background:#E3F9DF; padding:0 10px; border:1px solid #AAA;">
* Responsible owner: [[:cs:User:Mercy]]
* Bot functions: interwiki linking, mainly in the main namespace
* Already used with bot status on: please see [[sulutil:ArthurBot]]
Thanks! --[[Pengguna:Mercy|Mercy]] 19:49, 3 Desember 2010 (UTC)
I've done some test edits. Feel free to review them. The bot is now stopped. --[[Pengguna:Mercy|Mercy]] 22:25, 3 Desember 2010 (UTC)
: A local bot flag is no longer needed; this is a [[m:bot policy|global bot]], and this wiki recently enabled global bots. —<small>[[m:User:Pathoschild|Pathoschild]] 01:52:07, 04 November 2011 (UTC)</small>
</div>
===[[User:CarsracBot|CarsracBot]]===
<div style="background:#E3F9DF; padding:0 10px; border:1px solid #AAA;">
* Responsible owner: [[:nl:User:Carsrac]]
* Bot functions: interwiki linking, mainly in the main namespace
* Already used with bot status on: please see [[sulutil:CarsracBot]]. The Bot has also a globalbotstatus. [[Pengguna:Carsrac|Carsrac]] 17:41, 10 Juni 2011 (UTC)
: A local bot flag is no longer needed; this is a [[m:bot policy|global bot]], and this wiki recently enabled global bots. —<small>[[m:User:Pathoschild|Pathoschild]] 01:52:24, 04 November 2011 (UTC)</small>
</div>
===[[User:OrophinBot|OrophinBot]]===
<div style="background:#E3F9DF; padding:0 10px; border:1px solid #AAA;">
* Responsible owner: [[Pengguna:Bennylin]]
* Bot functions: terutama rekategorisasi, supaya tidak memenuhi Perubahan Terbaru
* Already used with bot status on: please see [[sulutil:OrophinBot]].<small><br />[[Pembicaraan Pengguna:Bennylin|✒]] [[Pengguna:Bennylin|Bennylin]]</small> 9 Oktober 2011 14.28 (UTC)
: Please make a request at [[m:Steward requests/Bot status]]. —<small>[[m:User:Pathoschild|Pathoschild]] 01:55:57, 04 November 2011 (UTC)</small>
:Done. [[Pengguna:Meursault2004|Meursault2004]] 4 November 2011 14.23 (UTC)
</div>
===[[user:GedawyBot|GedawyBot]]===
<div style="background:#E3F9DF; padding:0 10px; border:1px solid #AAA;">
* Botmaster: [[w:ar:نقاش المستخدم:محمد الجداوي|محمد الجداوي]]
* Bot's name: [[User:GedawyBot]]
* List of bot flags on other Wiktionaries: [http://toolserver.org/~vvv/sulutil.php?user=GedawyBot list]
* Purpose: interwiki
* Technical details: pywikipediabot, latest versions
Thanks in advance.--[[Pengguna:محمد الجداوي|محمد الجداوي]] 27 Oktober 2011 14.15 (UTC)
:The 'crats haven't visited this wiki in a while. In a moment the global bot policy will be applied to this wiki. Please refrain to do more edits to this wiki until that time. The community will appreciate it. <small><br />[[Pembicaraan Pengguna:Bennylin|✒]] [[Pengguna:Bennylin|Bennylin]]</small> 27 Oktober 2011 14.59 (UTC)
::Ok; I'll be waiting.--[[Pengguna:محمد الجداوي|محمد الجداوي]] 28 Oktober 2011 06.54 (UTC)
::: Already [{{fullurl:m:Special:Log|page=User:GedawyBot@idwiktionary}} done]. —<small>[[m:User:Pathoschild|Pathoschild]] 01:57:31, 04 November 2011 (UTC)</small>
</div>
=== [[user:Botrie|Botrie]] ===
* Responsible owner: [[w:id:user:Riemogerz|Riemogerz]] (bot owner username on main Wikimedia projects)
* Bot functions: interwiki
* Already used with bot status on: id, jv, bug, map-bms, bjn (wikipedia)
Saya harap dapat diterima. Salam. [[User:Riemogerz|'''<span style="text-decoration:blink;"><font face="Lucida Handwriting" color="darkgray" size="6">Riemogerz</font></span>''']] <sup>[[File:Icons-flag-ps.png]] [[User talk:riemogerz|bay de way]]</sup> 30 Mei 2012 19.37 (UTC)
=== [[user:Bot-Jagwar|Bot-Jagwar]] ===
* Responsible owner: [[w:mg:user:Jagwar|Jagwar]]
* Bot functions: interwiki
* Already used with bot status on: fr, mg
--[[Pengguna:Jagwar|Jagwar]] ([[Pembicaraan Pengguna:Jagwar|bicara]]) 7 Juni 2012 15.18 (UTC)
===[[User:YS-Bot|YS-Bot]]===
*Responsible owner: [[:de:User:Yoursmile|Yoursmile]]
*Bot functions: interwiki
*Already used with bot status on: de, en, fr, es...: [http://toolserver.org/~quentinv57/sulinfo/YS-Bot List]
Best regards --[[Pengguna:Yoursmile|Yoursmile]] ([[Pembicaraan Pengguna:Yoursmile|bicara]]) 6 September 2012 07.50 (UTC)
:Done. Your bot has been approved. Please consider to fill the profile page. <small><br />[[Pembicaraan Pengguna:Bennylin|✒]] [[Pengguna:Bennylin|Bennylin]]</small> 8 September 2012 15.18 (UTC)
===[[Pengguna:Taylorbot|Taylorbot]]===
<div style="background:#E3F9DF; padding:0 10px; border:1px solid #AAA;">
* Responsible operator / pengoperasi: [[User:Taylor 49|Taylor 49]] (''bot owner username on main Wikipedia'')
* Pengembang kode bot: [[User:Taylor 49|Taylor 49]]
* Bot functions: mengubah templat, memperbaiki spasi putih
* Already used with bot status on: [https://id.wikipedia.org/wiki/Wikipedia:Bot/Permohonan ID pedia]
*: [[Pengguna:Taylor 49|Taylor 49]] ([[Pembicaraan Pengguna:Taylor 49|bicara]]) 30 Januari 2019 11.49 (UTC)
*: [[Pengguna:Taylor 49|Taylor 49]] ([[Pembicaraan Pengguna:Taylor 49|bicara]]) 1 Maret 2019 10.29 (UTC)
*:: 12 Maret 2019 00.53 [[Pengguna:Meursault2004|Meursault2004]] [https://id.wiktionary.org/wiki/Istimewa:Catatan/rights mengubah keanggotaan grup] Taylorbot dari (tidak ada) ke bot ... terima kasih. [[Pengguna:Taylor 49|Taylor 49]] ([[Pembicaraan Pengguna:Taylor 49|bicara]]) 13 Maret 2019 16.33 (UTC)
</div>
===[[User:HasifBot|HasifBot]]===
<div style="background:#E3F9DF; padding:0 10px; border:1px solid #AAA;">
* Responsible owner: [[User:Hasif Naufal Ramadan]] -> [[:m:Special:CentralAuth/Hasif1981]]
* Bot functions: Membuat dan merapikan halaman serta mengubah bagian halaman yang tidak benar
* Already used with bot status on: no wiki
:: [[User:Hasif Naufal Ramadan]] 2023-05-17 06:54:22
::: '''Ditutup''', bendera bot tidak diberikan, permohonan tidak jelas cukup, pengguna diblokir di satu wiki. [[Pengguna:Taylor 49|Taylor 49]] ([[Pembicaraan Pengguna:Taylor 49|bicara]]) 22 Juli 2025 13.56 (UTC)
</div>
===[[User:SwarabaktiBot|SwarabaktiBot]]===
<div style="background:#E3F9DF; padding:0 10px; border:1px solid #AAA;">
* Responsible owner / Penanggung jawab: [[Pengguna:Swarabakti|Swarabakti]] (''bot owner username on main Wikimedia projects'')
* Bot functions / Kegunaan bot: memutakhirkan tampilan tata letak lama ke tata letak baru (per [[Wikikamus:Pemungutan suara/Penetapan kebijakan tata letak entri 2025-12-09|konsensus]]) serta membuat halaman kategori untuk keperluan pemeliharaan
* Already used with bot status on / Sudah digunakan dengan status bot di: minwikt, bjnwikt
* Additional comments / Komentar tambahan: Juga digunakan tanpa status bot khusus di bewwikt (karena edisi tersebut belum mengadopsi kebijakan standar bot).
: — [[Pembicaraan pengguna:Swarabakti|<span title="ngobrol">'''<span style="color:#008080">swarabakti<sup>💬</sup></span>'''</span>]] 24 Desember 2025 02.50 (UTC)
::Halo, silakan dicoba jalankan dulu (test run) di beberapa halaman, 10-100 boleh. <small><br />[[Pembicaraan Pengguna:Bennylin|✒]] [[Pengguna:Bennylin|Bennylin]]</small> 24 Desember 2025 04.35 (UTC)
:::Sudah saya coba [[Special:Contributions/SwarabaktiBot|jalankan ya]]. Ada beberapa pengulangan suntingan untuk menyesuaikan dengan format yang berbeda-beda di beberapa halaman, tetapi untuk beberapa suntingan terakhir saya batasi pada penggantian dan penambahan templat saja. — [[Pembicaraan pengguna:Swarabakti|<span title="ngobrol">'''<span style="color:#008080">swarabakti<sup>💬</sup></span>'''</span>]] 24 Desember 2025 17.14 (UTC)
::::Sudah oke. Sudah diangkat menjadi bot. Selamat merapikan artikel. <small><br />[[Pembicaraan Pengguna:Bennylin|✒]] [[Pengguna:Bennylin|Bennylin]]</small> 26 Desember 2025 04.56 (UTC)
</div>
===[[m:User:DelintBot|DelintBot]]===
Responsible owner: [[m:User:Redmin|Redmin]]<br />
Bot functions: Fixing [[Special:LintErrors|lint errors]] on this wiki (some of which have made some entries partially unreadable in dark mode (see [[Lampung]] and [[⯚]], for example)<br />
Already used with bot status on: Bengali Wiktionary, Wikidata and Croatian Wiktionary
Please let me know if you want me to make test edits. Thank you. [[Pengguna:Redmin|Redmin]] ([[Pembicaraan Pengguna:Redmin|bicara]]) 3 April 2026 00.17 (UTC)
:Hello @[[Pengguna:Bennylin|Bennylin]], could you please take a look at this? [[Pengguna:Redmin|Redmin]] ([[Pembicaraan Pengguna:Redmin|bicara]]) 11 April 2026 15.33 (UTC)
::Hi, sorry I just saw this. Could you run some tests with your bot first (10-50 will do). Thank you. <small><br />[[Pembicaraan Pengguna:Bennylin|✒]] [[Pengguna:Bennylin|Bennylin]]</small> 14 April 2026 08.21 (UTC)
:::Hi, thank you for your reply, @[[Pengguna:Bennylin|Bennylin]]. The bot has made some test edits. Please note that in a number of edits when the bot tries to fix 'night-mode-unaware-background-color' errors, an edit may be made that adds missing quotes around attribute values but does not add the missing color due to a bug (the bug causes it to not see the existing background-color rule). This is something I want to [[phab:T420294|work on]] in [[m:Grants:Programs/Wikimedia Community Fund/Rapid Fund/Making DelintBot able to reliably fix more lint categories (ID: 23811013)|the future]] but this should not happen when fixing any other type of error. The bot tried to fix all 'bogus-image-options' errors and I cleaned up the rest manually. Hope this helps. [[Pengguna:Redmin|Redmin]] ([[Pembicaraan Pengguna:Redmin|bicara]]) 15 April 2026 08.20 (UTC)
0viull5h6wowgywevxbf01t8l625ked
1349996
1349971
2026-04-15T09:05:34Z
Bennylin
723
/* DelintBot */
1349996
wikitext
text/x-wiki
* '''id''': '''Bot''' adalah program komputer yang dijalankan di lingkungan {{SITENAME}} yang khusus dibuat untuk melakukan pekerjaan-pekerjaan otomatis seperti menambahkan interwiki, melakukan pengosongan halaman kotak pasir setiap beberapa waktu dan lain-lain. Suntingan dari pengguna-pengguna bot secara default tidak muncul di halaman [[Istimewa:PerubahanTerbaru|perubahan terbaru]]. Seperti kebanyakan program komputer pada umumnya, bot tidak lepas dari kekutu, tetapi kebanyakan bot ditulis oleh pemrogram yang sudah ahli dan sudah melewati serangkaian uji coba yang panjang. Kebanyakan bot juga beroperasi di {{SITENAME}} lainnya yang sudah mendapatkan persetujuan untuk status bot. Lihat halaman [[:w:Wikipedia:Bot|Wikipedia:Bot]] di [[:w:|Wikipedia Indonesia]] untuk penjelasan detil mengenai Bot di proyek-proyek Wikimedia dalam bahasa Indonesia.
* <small>'''en:''' Requests for the [[m:bot|bot]] flag should be made on this page (see also the [[Wiktionary:Warung kopi|community discussion page]]). This wiki uses the [[m:bot policy|standard bot policy]], and allows [[m:bot policy#Global_bots|global bots]] and [[m:bot policy#Automatic_approval|automatic approval of certain types of bots]]. Other bots should apply below.</small>
[[Kategori:Halaman ruang nama proyek]]
== Daftar otomatis ==
* [[Istimewa:Daftar_pengguna/bot|Daftar bot secara otomatis]]
* [https://meta.toolforge.org/stewardry/idwiktionary?bot=1 Aktivitas bot secara otomatis]
* [{{fullurl:Istimewa:Catatan|type=rights}} Catatan perubahan hak akses]
== Persetujuan untuk status bot ==
Bagian di bawah ini ditujukan sebagai tempat menaruh permintaan persetujuan status bot dari komunitas. Gunakan templat di bawah ini untuk mengajukan permohonan Anda.
'''en''': ''Put your request for bot status here. Run your bot for a couple of days before request bot status. Inactive bot will be revoked. Use this template below.''
<pre>===[[User:''botname''|''botname'']]===
Responsible owner: [[xx:User:''ownername''|''ownername'']] (''bot owner username on main Wikimedia projects'')
Bot functions:
Already used with bot status on:
~~~~</pre>
===[[User:IvanBot|IvanBot]]===
<div style="background:#E3F9DF; padding:0 10px; border:1px solid #AAA;">
* Responsible owner: [[:w:User:IvanLanin|IvanLanin]].
* Bot functions: Various maintenance functions, but (probably) not interwiki.
* Already used with bot status on: [[:w:|id.wikipedia]]
--[[Pengguna:IvanLanin|IvanLanin]] 04:30, 17 Mei 2007 (UTC)
:Bot status granted on 18 Mei 2007 [[User:Borgx|<font face="Copperplate Gothic Bold" color="#1F85FF">borgx</font>]] <sup>([[User_talk:Borgx|<font color="#003366">kirim pesan</font>]])</sup> 00:07, 26 Mei 2007 (UTC)
{{done}}
</div>
===[[User:SpaceBirdyBot|SpaceBirdyBot]]===
<div style="background:#E3F9DF; padding:0 10px; border:1px solid #AAA;">
Hello, I am running my Bot [[User:SpaceBirdyBot]] as interwikibot on [[:is:Special:Contributions/SpaceBirdyBot|is.wikt]] (and de,es,pt,ga,af,fo,nah,scn,nl,sv,ro) lately because not all links are catched by the current active bots there. If You are interested I can set my bot to run here also.
I am using SVN pywikipedia (latest) and run it using <pre>interwiki.py -wiktionary -autonomous -force -noauto -nobacklink -noshownew -neverlink:fur,ilo,nov,sco</pre>
* Botmaster: [[:is:Notandi:Spacebirdy]]
* Bot's name:[[User:SpaceBirdyBot]]
* List of bot flags on other Wiktionarys:af,ar,co,ca,oc,da,de,el,es,it,is,pt,ga,gd,af,fo,nah,scn,nl,sv,ro,yi,zh-min-nan,...
* Purpose:interwiki
* Technical details:svn pywikipediabot, latest versions
Best regards, --[[Pengguna:Spacebirdy|Spacebirdy]] 09:06, 22 Juni 2008 (UTC)
{{done}}<!-- but not in the current bot list?-->
</div>
===[[User:SzajciBot|SzajciBot]]===
<div style="background:#E3F9DF; padding:0 10px; border:1px solid #AAA;">
* Botmaster: [[:hu:Szerkesztő:Szajci]]
* List of bot flags on other Wiktionarys: hu, uk
* Purpose:interwiki
* Technical details:svn pywikipediabot
{{not done}}
</div>
===[[User:Luckas-bot|Luckas-bot]]===
<div style="background:#E3F9DF; padding:0 10px; border:1px solid #AAA;">
*Responsible owner: [[:pt:User:Luckas Blade|Luckas Blade]]
*Bot functions: interwiki
*Already used with bot status on: pt, and waiting in others
--[[Pengguna:Luckas Blade|Luckas Blade]] 17:34, 20 November 2008 (UTC)
{{done}}
</div>
===[[User:Interwicket|Interwicket]]===
<div style="background:#E3F9DF; padding:0 10px; border:1px solid #AAA;">
* Responsible owner: [[:en:User:Robert Ullmann|Robert Ullmann]]
* Bot functions: interwiki
* Already used with bot status on: please see [[:en:User:Interwicket/FL status]]
Thanks, [[Pengguna:Robert Ullmann|Robert Ullmann]] 12:49, 17 April 2009 (UTC)
:Granted. •• [[User:IvanLanin|ivanlanin]] [[User Talk:IvanLanin|♫]] 18:59, 17 April 2009 (UTC)
{{done}}
</div>
===[[User:VolkovBot|VolkovBot]]===
<div style="background:#E3F9DF; padding:0 10px; border:1px solid #AAA;">
Hi! This interwiki bot owned by [[:w:ru:User:Volkov]] (sysop @ ru.wiki) has a global bot flag and is active on many wikimedia projects. Please grant a bot flag locally to avoid flooding recent changes. In case of any issue the bot owner can be reached at [[:w:ru:User talk:Volkov|Russian wikipedia]]. Thanks. --[[Pengguna:Volkov|Volkov]] 08:50, 20 April 2009 (UTC)
:Granted. •• [[User:IvanLanin|ivanlanin]] [[User Talk:IvanLanin|♫]] 09:48, 20 April 2009 (UTC)
:: Thanks! --[[Pengguna:Volkov|Volkov]] 10:12, 20 April 2009 (UTC)
{{done}}
</div>
===[[User:ArthurBot|ArthurBot]]===
<div style="background:#E3F9DF; padding:0 10px; border:1px solid #AAA;">
* Responsible owner: [[:cs:User:Mercy]]
* Bot functions: interwiki linking, mainly in the main namespace
* Already used with bot status on: please see [[sulutil:ArthurBot]]
Thanks! --[[Pengguna:Mercy|Mercy]] 19:49, 3 Desember 2010 (UTC)
I've done some test edits. Feel free to review them. The bot is now stopped. --[[Pengguna:Mercy|Mercy]] 22:25, 3 Desember 2010 (UTC)
: A local bot flag is no longer needed; this is a [[m:bot policy|global bot]], and this wiki recently enabled global bots. —<small>[[m:User:Pathoschild|Pathoschild]] 01:52:07, 04 November 2011 (UTC)</small>
</div>
===[[User:CarsracBot|CarsracBot]]===
<div style="background:#E3F9DF; padding:0 10px; border:1px solid #AAA;">
* Responsible owner: [[:nl:User:Carsrac]]
* Bot functions: interwiki linking, mainly in the main namespace
* Already used with bot status on: please see [[sulutil:CarsracBot]]. The Bot has also a globalbotstatus. [[Pengguna:Carsrac|Carsrac]] 17:41, 10 Juni 2011 (UTC)
: A local bot flag is no longer needed; this is a [[m:bot policy|global bot]], and this wiki recently enabled global bots. —<small>[[m:User:Pathoschild|Pathoschild]] 01:52:24, 04 November 2011 (UTC)</small>
</div>
===[[User:OrophinBot|OrophinBot]]===
<div style="background:#E3F9DF; padding:0 10px; border:1px solid #AAA;">
* Responsible owner: [[Pengguna:Bennylin]]
* Bot functions: terutama rekategorisasi, supaya tidak memenuhi Perubahan Terbaru
* Already used with bot status on: please see [[sulutil:OrophinBot]].<small><br />[[Pembicaraan Pengguna:Bennylin|✒]] [[Pengguna:Bennylin|Bennylin]]</small> 9 Oktober 2011 14.28 (UTC)
: Please make a request at [[m:Steward requests/Bot status]]. —<small>[[m:User:Pathoschild|Pathoschild]] 01:55:57, 04 November 2011 (UTC)</small>
:Done. [[Pengguna:Meursault2004|Meursault2004]] 4 November 2011 14.23 (UTC)
</div>
===[[user:GedawyBot|GedawyBot]]===
<div style="background:#E3F9DF; padding:0 10px; border:1px solid #AAA;">
* Botmaster: [[w:ar:نقاش المستخدم:محمد الجداوي|محمد الجداوي]]
* Bot's name: [[User:GedawyBot]]
* List of bot flags on other Wiktionaries: [http://toolserver.org/~vvv/sulutil.php?user=GedawyBot list]
* Purpose: interwiki
* Technical details: pywikipediabot, latest versions
Thanks in advance.--[[Pengguna:محمد الجداوي|محمد الجداوي]] 27 Oktober 2011 14.15 (UTC)
:The 'crats haven't visited this wiki in a while. In a moment the global bot policy will be applied to this wiki. Please refrain to do more edits to this wiki until that time. The community will appreciate it. <small><br />[[Pembicaraan Pengguna:Bennylin|✒]] [[Pengguna:Bennylin|Bennylin]]</small> 27 Oktober 2011 14.59 (UTC)
::Ok; I'll be waiting.--[[Pengguna:محمد الجداوي|محمد الجداوي]] 28 Oktober 2011 06.54 (UTC)
::: Already [{{fullurl:m:Special:Log|page=User:GedawyBot@idwiktionary}} done]. —<small>[[m:User:Pathoschild|Pathoschild]] 01:57:31, 04 November 2011 (UTC)</small>
</div>
=== [[user:Botrie|Botrie]] ===
* Responsible owner: [[w:id:user:Riemogerz|Riemogerz]] (bot owner username on main Wikimedia projects)
* Bot functions: interwiki
* Already used with bot status on: id, jv, bug, map-bms, bjn (wikipedia)
Saya harap dapat diterima. Salam. [[User:Riemogerz|'''<span style="text-decoration:blink;"><font face="Lucida Handwriting" color="darkgray" size="6">Riemogerz</font></span>''']] <sup>[[File:Icons-flag-ps.png]] [[User talk:riemogerz|bay de way]]</sup> 30 Mei 2012 19.37 (UTC)
=== [[user:Bot-Jagwar|Bot-Jagwar]] ===
* Responsible owner: [[w:mg:user:Jagwar|Jagwar]]
* Bot functions: interwiki
* Already used with bot status on: fr, mg
--[[Pengguna:Jagwar|Jagwar]] ([[Pembicaraan Pengguna:Jagwar|bicara]]) 7 Juni 2012 15.18 (UTC)
===[[User:YS-Bot|YS-Bot]]===
*Responsible owner: [[:de:User:Yoursmile|Yoursmile]]
*Bot functions: interwiki
*Already used with bot status on: de, en, fr, es...: [http://toolserver.org/~quentinv57/sulinfo/YS-Bot List]
Best regards --[[Pengguna:Yoursmile|Yoursmile]] ([[Pembicaraan Pengguna:Yoursmile|bicara]]) 6 September 2012 07.50 (UTC)
:Done. Your bot has been approved. Please consider to fill the profile page. <small><br />[[Pembicaraan Pengguna:Bennylin|✒]] [[Pengguna:Bennylin|Bennylin]]</small> 8 September 2012 15.18 (UTC)
===[[Pengguna:Taylorbot|Taylorbot]]===
<div style="background:#E3F9DF; padding:0 10px; border:1px solid #AAA;">
* Responsible operator / pengoperasi: [[User:Taylor 49|Taylor 49]] (''bot owner username on main Wikipedia'')
* Pengembang kode bot: [[User:Taylor 49|Taylor 49]]
* Bot functions: mengubah templat, memperbaiki spasi putih
* Already used with bot status on: [https://id.wikipedia.org/wiki/Wikipedia:Bot/Permohonan ID pedia]
*: [[Pengguna:Taylor 49|Taylor 49]] ([[Pembicaraan Pengguna:Taylor 49|bicara]]) 30 Januari 2019 11.49 (UTC)
*: [[Pengguna:Taylor 49|Taylor 49]] ([[Pembicaraan Pengguna:Taylor 49|bicara]]) 1 Maret 2019 10.29 (UTC)
*:: 12 Maret 2019 00.53 [[Pengguna:Meursault2004|Meursault2004]] [https://id.wiktionary.org/wiki/Istimewa:Catatan/rights mengubah keanggotaan grup] Taylorbot dari (tidak ada) ke bot ... terima kasih. [[Pengguna:Taylor 49|Taylor 49]] ([[Pembicaraan Pengguna:Taylor 49|bicara]]) 13 Maret 2019 16.33 (UTC)
</div>
===[[User:HasifBot|HasifBot]]===
<div style="background:#E3F9DF; padding:0 10px; border:1px solid #AAA;">
* Responsible owner: [[User:Hasif Naufal Ramadan]] -> [[:m:Special:CentralAuth/Hasif1981]]
* Bot functions: Membuat dan merapikan halaman serta mengubah bagian halaman yang tidak benar
* Already used with bot status on: no wiki
:: [[User:Hasif Naufal Ramadan]] 2023-05-17 06:54:22
::: '''Ditutup''', bendera bot tidak diberikan, permohonan tidak jelas cukup, pengguna diblokir di satu wiki. [[Pengguna:Taylor 49|Taylor 49]] ([[Pembicaraan Pengguna:Taylor 49|bicara]]) 22 Juli 2025 13.56 (UTC)
</div>
===[[User:SwarabaktiBot|SwarabaktiBot]]===
<div style="background:#E3F9DF; padding:0 10px; border:1px solid #AAA;">
* Responsible owner / Penanggung jawab: [[Pengguna:Swarabakti|Swarabakti]] (''bot owner username on main Wikimedia projects'')
* Bot functions / Kegunaan bot: memutakhirkan tampilan tata letak lama ke tata letak baru (per [[Wikikamus:Pemungutan suara/Penetapan kebijakan tata letak entri 2025-12-09|konsensus]]) serta membuat halaman kategori untuk keperluan pemeliharaan
* Already used with bot status on / Sudah digunakan dengan status bot di: minwikt, bjnwikt
* Additional comments / Komentar tambahan: Juga digunakan tanpa status bot khusus di bewwikt (karena edisi tersebut belum mengadopsi kebijakan standar bot).
: — [[Pembicaraan pengguna:Swarabakti|<span title="ngobrol">'''<span style="color:#008080">swarabakti<sup>💬</sup></span>'''</span>]] 24 Desember 2025 02.50 (UTC)
::Halo, silakan dicoba jalankan dulu (test run) di beberapa halaman, 10-100 boleh. <small><br />[[Pembicaraan Pengguna:Bennylin|✒]] [[Pengguna:Bennylin|Bennylin]]</small> 24 Desember 2025 04.35 (UTC)
:::Sudah saya coba [[Special:Contributions/SwarabaktiBot|jalankan ya]]. Ada beberapa pengulangan suntingan untuk menyesuaikan dengan format yang berbeda-beda di beberapa halaman, tetapi untuk beberapa suntingan terakhir saya batasi pada penggantian dan penambahan templat saja. — [[Pembicaraan pengguna:Swarabakti|<span title="ngobrol">'''<span style="color:#008080">swarabakti<sup>💬</sup></span>'''</span>]] 24 Desember 2025 17.14 (UTC)
::::Sudah oke. Sudah diangkat menjadi bot. Selamat merapikan artikel. <small><br />[[Pembicaraan Pengguna:Bennylin|✒]] [[Pengguna:Bennylin|Bennylin]]</small> 26 Desember 2025 04.56 (UTC)
</div>
===[[User:DelintBot|DelintBot]]===
Responsible owner: [[m:User:Redmin|Redmin]]<br />
Bot functions: Fixing [[Special:LintErrors|lint errors]] on this wiki (some of which have made some entries partially unreadable in dark mode (see [[Lampung]] and [[⯚]], for example)<br />
Already used with bot status on: Bengali Wiktionary, Wikidata and Croatian Wiktionary
Please let me know if you want me to make test edits. Thank you. [[Pengguna:Redmin|Redmin]] ([[Pembicaraan Pengguna:Redmin|bicara]]) 3 April 2026 00.17 (UTC)
:Hello @[[Pengguna:Bennylin|Bennylin]], could you please take a look at this? [[Pengguna:Redmin|Redmin]] ([[Pembicaraan Pengguna:Redmin|bicara]]) 11 April 2026 15.33 (UTC)
::Hi, sorry I just saw this. Could you run some tests with your bot first (10-50 will do). Thank you. <small><br />[[Pembicaraan Pengguna:Bennylin|✒]] [[Pengguna:Bennylin|Bennylin]]</small> 14 April 2026 08.21 (UTC)
:::Hi, thank you for your reply, @[[Pengguna:Bennylin|Bennylin]]. The bot has made some test edits. Please note that in a number of edits when the bot tries to fix 'night-mode-unaware-background-color' errors, an edit may be made that adds missing quotes around attribute values but does not add the missing color due to a bug (the bug causes it to not see the existing background-color rule). This is something I want to [[phab:T420294|work on]] in [[m:Grants:Programs/Wikimedia Community Fund/Rapid Fund/Making DelintBot able to reliably fix more lint categories (ID: 23811013)|the future]] but this should not happen when fixing any other type of error. The bot tried to fix all 'bogus-image-options' errors and I cleaned up the rest manually. Hope this helps. [[Pengguna:Redmin|Redmin]] ([[Pembicaraan Pengguna:Redmin|bicara]]) 15 April 2026 08.20 (UTC)
0z2zrmct307jh7jf5rzgeoiapuvufo1
1349998
1349996
2026-04-15T09:06:49Z
Bennylin
723
/* DelintBot */ Balas
1349998
wikitext
text/x-wiki
* '''id''': '''Bot''' adalah program komputer yang dijalankan di lingkungan {{SITENAME}} yang khusus dibuat untuk melakukan pekerjaan-pekerjaan otomatis seperti menambahkan interwiki, melakukan pengosongan halaman kotak pasir setiap beberapa waktu dan lain-lain. Suntingan dari pengguna-pengguna bot secara default tidak muncul di halaman [[Istimewa:PerubahanTerbaru|perubahan terbaru]]. Seperti kebanyakan program komputer pada umumnya, bot tidak lepas dari kekutu, tetapi kebanyakan bot ditulis oleh pemrogram yang sudah ahli dan sudah melewati serangkaian uji coba yang panjang. Kebanyakan bot juga beroperasi di {{SITENAME}} lainnya yang sudah mendapatkan persetujuan untuk status bot. Lihat halaman [[:w:Wikipedia:Bot|Wikipedia:Bot]] di [[:w:|Wikipedia Indonesia]] untuk penjelasan detil mengenai Bot di proyek-proyek Wikimedia dalam bahasa Indonesia.
* <small>'''en:''' Requests for the [[m:bot|bot]] flag should be made on this page (see also the [[Wiktionary:Warung kopi|community discussion page]]). This wiki uses the [[m:bot policy|standard bot policy]], and allows [[m:bot policy#Global_bots|global bots]] and [[m:bot policy#Automatic_approval|automatic approval of certain types of bots]]. Other bots should apply below.</small>
[[Kategori:Halaman ruang nama proyek]]
== Daftar otomatis ==
* [[Istimewa:Daftar_pengguna/bot|Daftar bot secara otomatis]]
* [https://meta.toolforge.org/stewardry/idwiktionary?bot=1 Aktivitas bot secara otomatis]
* [{{fullurl:Istimewa:Catatan|type=rights}} Catatan perubahan hak akses]
== Persetujuan untuk status bot ==
Bagian di bawah ini ditujukan sebagai tempat menaruh permintaan persetujuan status bot dari komunitas. Gunakan templat di bawah ini untuk mengajukan permohonan Anda.
'''en''': ''Put your request for bot status here. Run your bot for a couple of days before request bot status. Inactive bot will be revoked. Use this template below.''
<pre>===[[User:''botname''|''botname'']]===
Responsible owner: [[xx:User:''ownername''|''ownername'']] (''bot owner username on main Wikimedia projects'')
Bot functions:
Already used with bot status on:
~~~~</pre>
===[[User:IvanBot|IvanBot]]===
<div style="background:#E3F9DF; padding:0 10px; border:1px solid #AAA;">
* Responsible owner: [[:w:User:IvanLanin|IvanLanin]].
* Bot functions: Various maintenance functions, but (probably) not interwiki.
* Already used with bot status on: [[:w:|id.wikipedia]]
--[[Pengguna:IvanLanin|IvanLanin]] 04:30, 17 Mei 2007 (UTC)
:Bot status granted on 18 Mei 2007 [[User:Borgx|<font face="Copperplate Gothic Bold" color="#1F85FF">borgx</font>]] <sup>([[User_talk:Borgx|<font color="#003366">kirim pesan</font>]])</sup> 00:07, 26 Mei 2007 (UTC)
{{done}}
</div>
===[[User:SpaceBirdyBot|SpaceBirdyBot]]===
<div style="background:#E3F9DF; padding:0 10px; border:1px solid #AAA;">
Hello, I am running my Bot [[User:SpaceBirdyBot]] as interwikibot on [[:is:Special:Contributions/SpaceBirdyBot|is.wikt]] (and de,es,pt,ga,af,fo,nah,scn,nl,sv,ro) lately because not all links are catched by the current active bots there. If You are interested I can set my bot to run here also.
I am using SVN pywikipedia (latest) and run it using <pre>interwiki.py -wiktionary -autonomous -force -noauto -nobacklink -noshownew -neverlink:fur,ilo,nov,sco</pre>
* Botmaster: [[:is:Notandi:Spacebirdy]]
* Bot's name:[[User:SpaceBirdyBot]]
* List of bot flags on other Wiktionarys:af,ar,co,ca,oc,da,de,el,es,it,is,pt,ga,gd,af,fo,nah,scn,nl,sv,ro,yi,zh-min-nan,...
* Purpose:interwiki
* Technical details:svn pywikipediabot, latest versions
Best regards, --[[Pengguna:Spacebirdy|Spacebirdy]] 09:06, 22 Juni 2008 (UTC)
{{done}}<!-- but not in the current bot list?-->
</div>
===[[User:SzajciBot|SzajciBot]]===
<div style="background:#E3F9DF; padding:0 10px; border:1px solid #AAA;">
* Botmaster: [[:hu:Szerkesztő:Szajci]]
* List of bot flags on other Wiktionarys: hu, uk
* Purpose:interwiki
* Technical details:svn pywikipediabot
{{not done}}
</div>
===[[User:Luckas-bot|Luckas-bot]]===
<div style="background:#E3F9DF; padding:0 10px; border:1px solid #AAA;">
*Responsible owner: [[:pt:User:Luckas Blade|Luckas Blade]]
*Bot functions: interwiki
*Already used with bot status on: pt, and waiting in others
--[[Pengguna:Luckas Blade|Luckas Blade]] 17:34, 20 November 2008 (UTC)
{{done}}
</div>
===[[User:Interwicket|Interwicket]]===
<div style="background:#E3F9DF; padding:0 10px; border:1px solid #AAA;">
* Responsible owner: [[:en:User:Robert Ullmann|Robert Ullmann]]
* Bot functions: interwiki
* Already used with bot status on: please see [[:en:User:Interwicket/FL status]]
Thanks, [[Pengguna:Robert Ullmann|Robert Ullmann]] 12:49, 17 April 2009 (UTC)
:Granted. •• [[User:IvanLanin|ivanlanin]] [[User Talk:IvanLanin|♫]] 18:59, 17 April 2009 (UTC)
{{done}}
</div>
===[[User:VolkovBot|VolkovBot]]===
<div style="background:#E3F9DF; padding:0 10px; border:1px solid #AAA;">
Hi! This interwiki bot owned by [[:w:ru:User:Volkov]] (sysop @ ru.wiki) has a global bot flag and is active on many wikimedia projects. Please grant a bot flag locally to avoid flooding recent changes. In case of any issue the bot owner can be reached at [[:w:ru:User talk:Volkov|Russian wikipedia]]. Thanks. --[[Pengguna:Volkov|Volkov]] 08:50, 20 April 2009 (UTC)
:Granted. •• [[User:IvanLanin|ivanlanin]] [[User Talk:IvanLanin|♫]] 09:48, 20 April 2009 (UTC)
:: Thanks! --[[Pengguna:Volkov|Volkov]] 10:12, 20 April 2009 (UTC)
{{done}}
</div>
===[[User:ArthurBot|ArthurBot]]===
<div style="background:#E3F9DF; padding:0 10px; border:1px solid #AAA;">
* Responsible owner: [[:cs:User:Mercy]]
* Bot functions: interwiki linking, mainly in the main namespace
* Already used with bot status on: please see [[sulutil:ArthurBot]]
Thanks! --[[Pengguna:Mercy|Mercy]] 19:49, 3 Desember 2010 (UTC)
I've done some test edits. Feel free to review them. The bot is now stopped. --[[Pengguna:Mercy|Mercy]] 22:25, 3 Desember 2010 (UTC)
: A local bot flag is no longer needed; this is a [[m:bot policy|global bot]], and this wiki recently enabled global bots. —<small>[[m:User:Pathoschild|Pathoschild]] 01:52:07, 04 November 2011 (UTC)</small>
</div>
===[[User:CarsracBot|CarsracBot]]===
<div style="background:#E3F9DF; padding:0 10px; border:1px solid #AAA;">
* Responsible owner: [[:nl:User:Carsrac]]
* Bot functions: interwiki linking, mainly in the main namespace
* Already used with bot status on: please see [[sulutil:CarsracBot]]. The Bot has also a globalbotstatus. [[Pengguna:Carsrac|Carsrac]] 17:41, 10 Juni 2011 (UTC)
: A local bot flag is no longer needed; this is a [[m:bot policy|global bot]], and this wiki recently enabled global bots. —<small>[[m:User:Pathoschild|Pathoschild]] 01:52:24, 04 November 2011 (UTC)</small>
</div>
===[[User:OrophinBot|OrophinBot]]===
<div style="background:#E3F9DF; padding:0 10px; border:1px solid #AAA;">
* Responsible owner: [[Pengguna:Bennylin]]
* Bot functions: terutama rekategorisasi, supaya tidak memenuhi Perubahan Terbaru
* Already used with bot status on: please see [[sulutil:OrophinBot]].<small><br />[[Pembicaraan Pengguna:Bennylin|✒]] [[Pengguna:Bennylin|Bennylin]]</small> 9 Oktober 2011 14.28 (UTC)
: Please make a request at [[m:Steward requests/Bot status]]. —<small>[[m:User:Pathoschild|Pathoschild]] 01:55:57, 04 November 2011 (UTC)</small>
:Done. [[Pengguna:Meursault2004|Meursault2004]] 4 November 2011 14.23 (UTC)
</div>
===[[user:GedawyBot|GedawyBot]]===
<div style="background:#E3F9DF; padding:0 10px; border:1px solid #AAA;">
* Botmaster: [[w:ar:نقاش المستخدم:محمد الجداوي|محمد الجداوي]]
* Bot's name: [[User:GedawyBot]]
* List of bot flags on other Wiktionaries: [http://toolserver.org/~vvv/sulutil.php?user=GedawyBot list]
* Purpose: interwiki
* Technical details: pywikipediabot, latest versions
Thanks in advance.--[[Pengguna:محمد الجداوي|محمد الجداوي]] 27 Oktober 2011 14.15 (UTC)
:The 'crats haven't visited this wiki in a while. In a moment the global bot policy will be applied to this wiki. Please refrain to do more edits to this wiki until that time. The community will appreciate it. <small><br />[[Pembicaraan Pengguna:Bennylin|✒]] [[Pengguna:Bennylin|Bennylin]]</small> 27 Oktober 2011 14.59 (UTC)
::Ok; I'll be waiting.--[[Pengguna:محمد الجداوي|محمد الجداوي]] 28 Oktober 2011 06.54 (UTC)
::: Already [{{fullurl:m:Special:Log|page=User:GedawyBot@idwiktionary}} done]. —<small>[[m:User:Pathoschild|Pathoschild]] 01:57:31, 04 November 2011 (UTC)</small>
</div>
=== [[user:Botrie|Botrie]] ===
* Responsible owner: [[w:id:user:Riemogerz|Riemogerz]] (bot owner username on main Wikimedia projects)
* Bot functions: interwiki
* Already used with bot status on: id, jv, bug, map-bms, bjn (wikipedia)
Saya harap dapat diterima. Salam. [[User:Riemogerz|'''<span style="text-decoration:blink;"><font face="Lucida Handwriting" color="darkgray" size="6">Riemogerz</font></span>''']] <sup>[[File:Icons-flag-ps.png]] [[User talk:riemogerz|bay de way]]</sup> 30 Mei 2012 19.37 (UTC)
=== [[user:Bot-Jagwar|Bot-Jagwar]] ===
* Responsible owner: [[w:mg:user:Jagwar|Jagwar]]
* Bot functions: interwiki
* Already used with bot status on: fr, mg
--[[Pengguna:Jagwar|Jagwar]] ([[Pembicaraan Pengguna:Jagwar|bicara]]) 7 Juni 2012 15.18 (UTC)
===[[User:YS-Bot|YS-Bot]]===
*Responsible owner: [[:de:User:Yoursmile|Yoursmile]]
*Bot functions: interwiki
*Already used with bot status on: de, en, fr, es...: [http://toolserver.org/~quentinv57/sulinfo/YS-Bot List]
Best regards --[[Pengguna:Yoursmile|Yoursmile]] ([[Pembicaraan Pengguna:Yoursmile|bicara]]) 6 September 2012 07.50 (UTC)
:Done. Your bot has been approved. Please consider to fill the profile page. <small><br />[[Pembicaraan Pengguna:Bennylin|✒]] [[Pengguna:Bennylin|Bennylin]]</small> 8 September 2012 15.18 (UTC)
===[[Pengguna:Taylorbot|Taylorbot]]===
<div style="background:#E3F9DF; padding:0 10px; border:1px solid #AAA;">
* Responsible operator / pengoperasi: [[User:Taylor 49|Taylor 49]] (''bot owner username on main Wikipedia'')
* Pengembang kode bot: [[User:Taylor 49|Taylor 49]]
* Bot functions: mengubah templat, memperbaiki spasi putih
* Already used with bot status on: [https://id.wikipedia.org/wiki/Wikipedia:Bot/Permohonan ID pedia]
*: [[Pengguna:Taylor 49|Taylor 49]] ([[Pembicaraan Pengguna:Taylor 49|bicara]]) 30 Januari 2019 11.49 (UTC)
*: [[Pengguna:Taylor 49|Taylor 49]] ([[Pembicaraan Pengguna:Taylor 49|bicara]]) 1 Maret 2019 10.29 (UTC)
*:: 12 Maret 2019 00.53 [[Pengguna:Meursault2004|Meursault2004]] [https://id.wiktionary.org/wiki/Istimewa:Catatan/rights mengubah keanggotaan grup] Taylorbot dari (tidak ada) ke bot ... terima kasih. [[Pengguna:Taylor 49|Taylor 49]] ([[Pembicaraan Pengguna:Taylor 49|bicara]]) 13 Maret 2019 16.33 (UTC)
</div>
===[[User:HasifBot|HasifBot]]===
<div style="background:#E3F9DF; padding:0 10px; border:1px solid #AAA;">
* Responsible owner: [[User:Hasif Naufal Ramadan]] -> [[:m:Special:CentralAuth/Hasif1981]]
* Bot functions: Membuat dan merapikan halaman serta mengubah bagian halaman yang tidak benar
* Already used with bot status on: no wiki
:: [[User:Hasif Naufal Ramadan]] 2023-05-17 06:54:22
::: '''Ditutup''', bendera bot tidak diberikan, permohonan tidak jelas cukup, pengguna diblokir di satu wiki. [[Pengguna:Taylor 49|Taylor 49]] ([[Pembicaraan Pengguna:Taylor 49|bicara]]) 22 Juli 2025 13.56 (UTC)
</div>
===[[User:SwarabaktiBot|SwarabaktiBot]]===
<div style="background:#E3F9DF; padding:0 10px; border:1px solid #AAA;">
* Responsible owner / Penanggung jawab: [[Pengguna:Swarabakti|Swarabakti]] (''bot owner username on main Wikimedia projects'')
* Bot functions / Kegunaan bot: memutakhirkan tampilan tata letak lama ke tata letak baru (per [[Wikikamus:Pemungutan suara/Penetapan kebijakan tata letak entri 2025-12-09|konsensus]]) serta membuat halaman kategori untuk keperluan pemeliharaan
* Already used with bot status on / Sudah digunakan dengan status bot di: minwikt, bjnwikt
* Additional comments / Komentar tambahan: Juga digunakan tanpa status bot khusus di bewwikt (karena edisi tersebut belum mengadopsi kebijakan standar bot).
: — [[Pembicaraan pengguna:Swarabakti|<span title="ngobrol">'''<span style="color:#008080">swarabakti<sup>💬</sup></span>'''</span>]] 24 Desember 2025 02.50 (UTC)
::Halo, silakan dicoba jalankan dulu (test run) di beberapa halaman, 10-100 boleh. <small><br />[[Pembicaraan Pengguna:Bennylin|✒]] [[Pengguna:Bennylin|Bennylin]]</small> 24 Desember 2025 04.35 (UTC)
:::Sudah saya coba [[Special:Contributions/SwarabaktiBot|jalankan ya]]. Ada beberapa pengulangan suntingan untuk menyesuaikan dengan format yang berbeda-beda di beberapa halaman, tetapi untuk beberapa suntingan terakhir saya batasi pada penggantian dan penambahan templat saja. — [[Pembicaraan pengguna:Swarabakti|<span title="ngobrol">'''<span style="color:#008080">swarabakti<sup>💬</sup></span>'''</span>]] 24 Desember 2025 17.14 (UTC)
::::Sudah oke. Sudah diangkat menjadi bot. Selamat merapikan artikel. <small><br />[[Pembicaraan Pengguna:Bennylin|✒]] [[Pengguna:Bennylin|Bennylin]]</small> 26 Desember 2025 04.56 (UTC)
</div>
===[[User:DelintBot|DelintBot]]===
Responsible owner: [[m:User:Redmin|Redmin]]<br />
Bot functions: Fixing [[Special:LintErrors|lint errors]] on this wiki (some of which have made some entries partially unreadable in dark mode (see [[Lampung]] and [[⯚]], for example)<br />
Already used with bot status on: Bengali Wiktionary, Wikidata and Croatian Wiktionary
Please let me know if you want me to make test edits. Thank you. [[Pengguna:Redmin|Redmin]] ([[Pembicaraan Pengguna:Redmin|bicara]]) 3 April 2026 00.17 (UTC)
:Hello @[[Pengguna:Bennylin|Bennylin]], could you please take a look at this? [[Pengguna:Redmin|Redmin]] ([[Pembicaraan Pengguna:Redmin|bicara]]) 11 April 2026 15.33 (UTC)
::Hi, sorry I just saw this. Could you run some tests with your bot first (10-50 will do). Thank you. <small><br />[[Pembicaraan Pengguna:Bennylin|✒]] [[Pengguna:Bennylin|Bennylin]]</small> 14 April 2026 08.21 (UTC)
:::Hi, thank you for your reply, @[[Pengguna:Bennylin|Bennylin]]. The bot has made some test edits. Please note that in a number of edits when the bot tries to fix 'night-mode-unaware-background-color' errors, an edit may be made that adds missing quotes around attribute values but does not add the missing color due to a bug (the bug causes it to not see the existing background-color rule). This is something I want to [[phab:T420294|work on]] in [[m:Grants:Programs/Wikimedia Community Fund/Rapid Fund/Making DelintBot able to reliably fix more lint categories (ID: 23811013)|the future]] but this should not happen when fixing any other type of error. The bot tried to fix all 'bogus-image-options' errors and I cleaned up the rest manually. Hope this helps. [[Pengguna:Redmin|Redmin]] ([[Pembicaraan Pengguna:Redmin|bicara]]) 15 April 2026 08.20 (UTC)
::::LGTM. Thank you for your work. <small><br />[[Pembicaraan Pengguna:Bennylin|✒]] [[Pengguna:Bennylin|Bennylin]]</small> 15 April 2026 09.06 (UTC)
pl89kgx8mbxjyyo12u5s8odd03nwwsh
radikal
0
26935
1350001
1279834
2026-04-15T09:10:36Z
Iripseudocorus
40083
rekam1
1350001
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id}}
: {{pemenggalan|id|ra|di|kal}} {{suara|id|LL-Q9240 (ind)-Iripseudocorus-radikal.wav}}
{{-a-|id}}
{{majemuk-indonesia|radius|al}}
# secara mendasar (sampai kepada hal prinsip): ''perubahan yang radikal''
# {{Pol}} amat keras menuntut perubahan (undang-undang pemerintahan)
# maju dalam berpikir atau bertindak
#* {{RQ:20 Mei Pelopor 17 Agustus
|page=17
|text=Mereka jang merasa lebih '''radikal''' dari pada kaum moderate jang masuk kedalam Parindra, mendirikan partij baru jang semata-mata mementingkan perdjoangan politik.
|norm=Mereka yang merasa lebih '''radikal''' dari pada kaum moderat yang masuk kedalam Parindra, mendirikan partai baru yang semata-mata mementingkan perjuangan politik.
|url=https://id.wikisource.org/wiki/Halaman%3A20_Mei_Pelopor_17_Agustus_-_Museum_Dewantara_Kirti_Griya.pdf/16#:~:text=Mereka%20jang%20merasa%20lebih%20radikal%20dari%20pada%20kaum%20%E2%80%9Emoderate%E2%80%9D%20jang%20masuk%20kedalam%20PArindra%2C%20mendirikan%20partij%20baru%20jang%20semata%2Dmata%20mementingkan%20perdjoangan%20politik.
}}
{{-turunan-|id}}
{{-n-|id}}
# {{Kim}} gugus atom yang dapat masuk ke dalam berbagai reaksi sebagai satu satuan, yang bereaksi seakan-akan satu unsur saja, misalnya [[metil]], [[etil]], [[sulfat]]
{{-terjemahan-}}
{{t-atas}}
{{t-bawah}}
{{-bacaan-}}
* {{R:KBBI Daring}}
{{rfv|id|impor dari KBBI}}
gonbygbg19bi88wlc1rb6r6otg7sqdr
pesat
0
27039
1349991
1279821
2026-04-15T08:58:09Z
Iripseudocorus
40083
rekam1
1349991
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id}}
: {{pemenggalan|id|pe|sat}} {{suara|id|LL-Q9240 (ind)-Iripseudocorus-pesat.wav}}
{{-adj-|id}}
# cepat sekali
# maju (berkembang) dengan cepat
#* {{RQ:20 Mei Pelopor 17 Agustus
|page=16
|text=Perhimpunan-perhimpunan sosial senantiasa '''pesat''' kemadjuannja.
|norm=Perhimpunan-perhimpunan sosial senantiasa '''pesat''' kemajuannya.
|url=https://id.wikisource.org/wiki/Halaman%3A20_Mei_Pelopor_17_Agustus_-_Museum_Dewantara_Kirti_Griya.pdf/15#:~:text=Perhimpunan%2Dperhimpunan%20sosial%20senantiasa%20pesat%20kemadjuannja.
}}
{{-etimologi-}}
* Dari ''[[Jawa Kuno]]'' '''''pěsat''''' ['terbang (kabur); melesat ke udara']
{{-rujukan-}}
*Zoetmulder, P.J., dan Robson, S.O. (2006). Kamus Jawa Kuna-Indonesia. (Darusuprapta dan Sumarti Suprayitna, Penerjemah). Jakarta: Gramedia Pustaka Utama.
*{{R:KBBI Daring}}
{{-turunan-}}
* [[kepesatan]]
{{-terjemahan-}}
{{t-atas}}
* {{en}} : {{trad-|en|very fast}}
* {{fr}} : {{trad-|fr|très rapide}}
{{t-bawah}}
=={{bahasa|jv}}==
{{kepala|jv}}
{{-a-|jv}}
# pêsat
o0tdw5xzqjpft2pwsq729168bpqj61y
menarik
0
33146
1349887
1344902
2026-04-14T15:56:18Z
~2026-23098-39
47593
1349887
wikitext
text/x-wiki
1...000
=={{bahasa|id}}==
{{kepala|id}}
{{imbuhan me-|tarik}}
# menghela (supaya dekat, maju, ke atas, ke luar, dsb): <br />''anak perempuan itu menarik tangan kawannya''
#: {{antonim|id|mendorong}}
# membawa (mengambil dsb) ke luar; mengeluarkan dsb
{{imbuhan me-|tarik|kelas=adj}}
# menyenangkan (menggirangkan, menyukakan hati karena indahnya, cantiknya, bagusnya dsb)
#* {{RQ:Mustikarasa
|page=4
|text=Orang suka membeli beras giling, karena warnanja lebih '''menarik'''.
|url=https://id.wikisource.org/wiki/Halaman:Mustikarasa.pdf/12#:~:text=Orang%20suka%20membeli%20beras%20giling%2C%20karena%20warnanja%20lebih%20menarik.
}}
# membangkitkan rasa kasih (sayang, suka, ingin, dsb)
# mempengaruhi atau membangkitkan hasrat untuk memperhatikan (mengindahkan dsb)
{{-terjemahan-}}
{{t-atas|(kata kerja) membawa dekat}}
*{{en}}: {{t+|en|pull}}
*{{de}}: {{t+|de|ziehen}}
*{{fr}}: {{t+|fr|tirer}}
*{{ja}}: {{t+|ja|引く}}
*{{ru}}: {{t+|ru|тянуть}}, {{t+|ru|тащить}}
*{{zh}}: {{t+|zh|拖拉}}, {{t+|zh|拉}}, {{t+|zh|引}}
{{t-bawah}}
{{t-atas|(kata sifat) menyenangkan}}
*{{en}}: {{t+|en|interesting}}, {{t+|en|attractive}}
*{{sv}}: {{t+|sv|intressant}}
{{t-bawah}}
{{-turunan-}}
{{-sinonim-}}
* [[menarik kembali]]
* [[menarik kesimpulan]]
* [[menarik otot]]
{{-bacaan-}}
* {{R:KBBI Daring}}
{{rfv|id|impor dari KBBI}}
1mrlfmwr7cq7qcdecuhhbq96shaiqnl
pemimpin
0
38844
1349926
1279387
2026-04-15T07:05:02Z
Iripseudocorus
40083
rekam1
1349926
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id}}
: {{pemenggalan|id|pe|mim|pin}} {{suara|id|LL-Q9240 (ind)-Iripseudocorus-pemimpin.wav}}
{{imbuhan peng-|pimpin|kelas=n}}
# orang yang memimpin: <br />''ia ditunjuk menjadi pemimpin organisasi itu''
#* {{RQ:20 Mei Pelopor 17 Agustus
|page=8
|text=Kongres para '''pemimpin''', jang diadakan di Jogjakarta pada bulan-liburan Puasa tahun 1908, jang waktu itu disebut ''Eerste Jong-Javanen-congres.''
|norm=Kongres para '''pemimpin''', yang diadakan di Yogyakarta pada bulan-liburan Puasa tahun 1908, yang waktu itu disebut ''Eerste Jong-Javanen-congres.''
|url=https://id.wikisource.org/wiki/Halaman%3A20_Mei_Pelopor_17_Agustus_-_Museum_Dewantara_Kirti_Griya.pdf/7#:~:text=Kongres%20para%20pemimpin%2C%20jang%20diadakan%20di%20Jogjakarta%20pada%20bulan%2Dliburan%20Puasa%20tahun%201908%2C%20jang%20waktu%20itu%20disebut%20%E2%80%9EEerste%20Jong%2DJavanen%2Dcongres%E2%80%9D%2C%20sangat%20menarik%20perhatian%20umum.
}}
# petunjuk; buku petunjuk (pedoman): <br />''buku pemimpin montir mobil''
{{-terjemahan-}}
{{t-atas}}
* {{fr}} : {{trad-|fr|dirigeant}}, {{trad-|fr|chef}}, {{trad-|fr|commandant}}
{{t-bawah}}
{{-bacaan-}}
* {{R:KBBI Daring}}
{{rfv|id|impor dari KBBI}}
i7favhsi41fv2l1i5gpyuoez7brfn7d
1349930
1349926
2026-04-15T07:10:52Z
Iripseudocorus
40083
.
1349930
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id}}
: {{pemenggalan|id|pe|mim|pin}} {{suara|id|LL-Q9240 (ind)-Iripseudocorus-pemimpin.wav}}
{{imbuhan peng-|pimpin|kelas=n}}
# orang yang memimpin: <br />''ia ditunjuk menjadi pemimpin organisasi itu''
#* {{RQ:20 Mei Pelopor 17 Agustus
|page=8
|text= Tetapi kemudian beliau toh menerima kedudukan wakil-ketua; jang mendjadi '''pemimpin''' pertama ialah marhum bupati Karanganjar Tirtokusumo.
|norm= Tetapi kemudian beliau toh menerima kedudukan wakil-ketua; yang menjadi '''pemimpin''' pertama ialah marhum bupati Karanganjar Tirtokusumo.
|url=https://id.wikisource.org/wiki/Halaman:20_Mei_Pelopor_17_Agustus_-_Museum_Dewantara_Kirti_Griya.pdf/7#:~:text=Tetapi%20kemudian%20beliau%20toh%20menerima%20kedudukan%20wakil%2Dketua%3B%20jang%20mendjadi%20pemimpin%20pertama%20ialah%20marhum%20bupati%20Karanganjar%20Tirtokusumo.
}}
# petunjuk; buku petunjuk (pedoman): <br />''buku pemimpin montir mobil''
{{-terjemahan-}}
{{t-atas}}
* {{fr}} : {{trad-|fr|dirigeant}}, {{trad-|fr|chef}}, {{trad-|fr|commandant}}
{{t-bawah}}
{{-bacaan-}}
* {{R:KBBI Daring}}
{{rfv|id|impor dari KBBI}}
2yolafa0sm8d5mtzafz2afgphduf31k
wanita
0
38938
1349961
1279428
2026-04-15T08:08:07Z
Iripseudocorus
40083
rekam1
1349961
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id}}
: {{pemenggalan|id|wa|ni|ta}} {{suara|id|LL-Q9240 (ind)-Iripseudocorus-wanita.wav}}
{{-n-|id}}
# perempuan dewasa
#* {{RQ:20 Mei Pelopor 17 Agustus
|page=n.d
|text=Para '''wanita''' ta’ suka ketinggalan; banjak organisasi-organisasi wanita berdiri (diantaranja „Wanito-Utomo” dengan pimpinan-pimpinannja jang terkenal; Njonjah-njonjah Sukanto, Abdulkadir, Gondoatmodjo dll. di Jogjakarta).
|norm=Para '''wanita''' tak suka ketinggalan; banyak organisasi-organisasi wanita berdiri (diantaranya Wanito-Utomo dengan pimpinan-pimpinannja yang terkenal; Nyonya-nyonya Sukanto, Abdulkadir, Gondoatmojo dll di Yogyakarta).
|url=https://id.wikisource.org/wiki/Halaman%3A20_Mei_Pelopor_17_Agustus_-_Museum_Dewantara_Kirti_Griya.pdf/15#:~:text=Para%20wanita%20ta%E2%80%99%20suka%20ketinggalan%3B%20banjak%20organisasi%2Dorganisasi%20wanita%20berdiri%20(diantaranja%20%E2%80%9EWanito%2DUtomo%E2%80%9D%20dengan%20pimpinan%2Dpimpinannja%20jang%20terkenal%3B%20Njonjah%2Dnjonjah%20Sukanto%2C%20Abdulkadir%2C%20Gondoatmodjo%20dll.
}}
{{-turunan-|id}}
* [[kewanitaan]]
* [[kewanita-wanitaan]]
* [[wanita penghibur]]
{{-sinonim-}}
*[[perempuan]]
{{-antonim-|id}}
*[[pria]], [[laki-laki]]
*[[kaum wanita]]: kaum putri (dewasa)
{{-terjemahan-}}
{{t-atas}}
* {{en}}: {{trad-|en|woman}}
* {{de}}: {{trad-|de|Frau}}
* {{fr}}: {{trad-|fr|femme}}
* {{es}}: {{trad-|de|mujer}}
* bahasa Turki: {{t+|tr|kadın}}
{{t-bawah}}
{{-bacaan-}}
* {{R:KBBI Daring}}
{{rfv|id|impor dari KBBI}}
[[Kategori:id:Nomina (feminin)]]
nglaopali5ikm13p7pw4kdabx7ak1gz
kepulauan
0
38950
1349934
1279405
2026-04-15T07:17:59Z
Iripseudocorus
40083
rekam1
1349934
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id}}
: {{pemenggalan|id|ke|pu|lau|an}} {{suara|id|LL-Q9240 (ind)-Iripseudocorus-kepulauan.wav}}
{{imbuhan ke-an|pulau|kelas=n}}
# gugusan beberapa buah pulau; kumpulan pulau:
#* {{RQ:20 Mei Pelopor 17 Agustus
|page=12
|text=Ini terbukti dengan adanja hubungan jang sangat baik dengan perhimpunan didaerah2 diseluruh kepulauan Indonesia, jang kemudian menusul.
|norm=Ini terbukti dengan adanya hubungan yang sangat baik dengan perhimpunan di daerah-daerah di seluruh kepulauan Indonesia, yang kemudian menyusul.
|url=https://id.wikisource.org/wiki/Halaman:20_Mei_Pelopor_17_Agustus_-_Museum_Dewantara_Kirti_Griya.pdf/11#:~:text=Ini%20terbukti%20dengan%20adanja%20hubungan%20jang%20sangat%20baik%20dengan%20perhimpunan%20didaerah2%20diseluruh%20kepulauan%20Indonesia%2C%20jang%20kemudian%20menusul.
}}
{{-terjemahan-}}
{{t-atas}}
* {{de}} : {{trad-|de|Archipel}}
* {{en}} : {{trad-|en|archipelago}}
* {{fi}} : {{trad-|fi|saaristo}}
* {{fr}} : {{trad-|fr|archipel}}
{{t-bawah}}
{{-bacaan-}}
* {{R:KBBI Daring}}
{{rfv|id|impor dari KBBI}}
ju2lhq4yj3cvdugbux4jf346n935bi4
saya
0
39795
1349882
1348829
2026-04-14T14:17:37Z
Swarabakti
18192
/* {{bahasa|id}} */
1349882
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id}}
: {{AFI|id|/saja/}} {{suara|id|LL-Q9240 (ind)-Swarabakti-saya.wav}}
{{-etimologi-}}
: Dari {{der|id|sa|सहाय|t=hamba, budak}}.
{{-pron-|id}}
# orang yang berbicara atau menulis {{q|dalam ragam resmi ataupun biasa}}; [[aku]]
# ya;<br /> '''''saya''', Tuan!''
{{-terjemahan-}}
{{t-atas}}
* {{bhs|inl}}: {{t|inl|file=Saya.webm}}
* {{bhs|en}}: {{t|en|me}}
* {{bhs|mad}}: {{t|mad|kaulâ}}
* {{bhs|ar}}: {{t|ar|أنا}}
{{t-bawah}}
{{-bacaan-}}
* {{R:KBBI Daring}}
{{rfv|id|impor dari KBBI}}
=={{bahasa|ban}}==
{{kepala|ban}}
{{-n-|ban}}
# petugas {{q|biasanya di pura}};
#: ''ia tusing enu dadi '''saya''' di pura''
#:: dia tidak lagi menjadi petugas di pura
# juri {{q|biasanya dalam sabung ayam}};
#: ''tajén di pura tusing nganggo '''saya'''''
#:: sabung ayam di pura tidak menggunakan juri
{{-ragam-}}
{{ban-varian|c=ᬲᬬ|r={{l|ban|saya}} {{q|baku}}, {{l|ban|saja}} {{q|ejaan Belanda}}}}
{{-etimologi-}}
Dari {{inh|ban|ban-old|sahaya|t=pengabdi, petugas}}, dari {{der|ban|sa|सहाय|t=hamba, budak, abdi}}
{{-rujukan-}}
* {{R:KBB}}
=={{bahasa|bew}}==
{{kepala|bew}}
: {{suara|bew|LL-Q33014 (bew)-nengpenti (Princessfenty)-saya.wav }}
{{-pron-|bew}}
# saya, aku
#: '''''Saya''' gawé di Mèstèr.''
#: Saya kerja di Jatinegara.
=={{bahasa|jv}}==
{{kepala|jv|num=1}}
{{-ragam-}}
{{jv-varian|c={{J|sa|ya}}|r={{l|jv|saya}} {{q|baku}}, {{l|jv|saja}} {{q|ejaan Belanda}}}}
{{-etimologi-}}
: {{clipping|jv|sangsaya|tr={{l|jv|ꦱꦁꦱꦪ|tr=-}}|t=bertambah}}, {{der|jv|kaw|saṅsaya|t=semakin}}.
{{-adv-|jv}}
# kian bertambah; [[semakin]];
#: ''gandhèng gerahé Bu Sriyatun ora '''saya''' mendha, mula Bu Sindu digawa menyang rumah sakit''
#:: karena sakit Bu Sriyatun semakin parah, maka Bu Sindu dibawa ke rumah sakit
{{-ptcl-|jv}}
# lebih-lebih
{{kepala|jv|num=2}}
{{-etimologi-}}
: {{clipping|jv|sahaya|tr={{l|jv|{{J|sa|ha|ya}}|tr=-}}|t=teman, hamba}}, dari {{der|jv|kaw|sahaya|t=hamba, teman}}, dari {{der|jv|sa|सहाय|t=hamba, budak, abdi}}.
{{-n-|jv}}
# [[teman]]
# [[hamba]]
{{kepala|jv|num=3}}
{{-etimologi-}}
: Dari {{inh|jv|kaw|saya|tr={{l|kaw|{{ruby|{{Kawi|[[File:Aksara Kawi sa.svg|14px]]}}|sa}}{{ruby|{{Kawi|[[File:Aksara Kawi ya.svg|15px]]}}|ya}}|tr=-}}|t=mengumpulkan}}.
{{-n-|id}}
# perahu pencari ikan
{{kepala|jv|num=4}}
{{-etimologi-}}
: {{clipping|jv|sraya|tr={{l|jv|{{J|sra|ya}}|tr=-}}|t=bantuan; pertolongan; bersama}}, dari {{der|jv|kaw|śraya}}, dari {{der|id|sa|श्राय|=tempat berlindung, perlindungan, suaka}}.
{{-p-|jv}}
# sambil; serta; [[seraya]]
{{-v-|jv}}
# meminta bantuan
=={{bahasa|osi}}==
{{kepala|osi}}
:{{suara|osi|LL-Q2701322 (osi)-Kenthus (Jorghirona herdiawan)-saya.wav}}
{{-adv-|osi}}
# [[makin]]
[[Kategori:WikiTutur Kopdar Jakarta 27 April 2024]]
4ieedvx6lyf5lgkmvnq75ay3n2xe44d
1349883
1349882
2026-04-14T14:20:42Z
Swarabakti
18192
/* {{bahasa|ban}} */
1349883
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id}}
: {{AFI|id|/saja/}} {{suara|id|LL-Q9240 (ind)-Swarabakti-saya.wav}}
{{-etimologi-}}
: Dari {{der|id|sa|सहाय|t=hamba, budak}}.
{{-pron-|id}}
# orang yang berbicara atau menulis {{q|dalam ragam resmi ataupun biasa}}; [[aku]]
# ya;<br /> '''''saya''', Tuan!''
{{-terjemahan-}}
{{t-atas}}
* {{bhs|inl}}: {{t|inl|file=Saya.webm}}
* {{bhs|en}}: {{t|en|me}}
* {{bhs|mad}}: {{t|mad|kaulâ}}
* {{bhs|ar}}: {{t|ar|أنا}}
{{t-bawah}}
{{-bacaan-}}
* {{R:KBBI Daring}}
{{rfv|id|impor dari KBBI}}
=={{bahasa|ban}}==
{{kepala|ban|alt=ᬲᬬ}}
{{-ragam-}}
* {{ragam|ban|saja||ejaan lama}}
{{-etimologi-}}
: Dari {{der|ban|sa|सहाय|t=hamba, budak, abdi}}
{{-n-|ban}}
# petugas {{q|biasanya di pura}};
#: {{contoh|ban|Ia tusing enu dadi '''saya''' di pura.|Dia tidak lagi menjadi petugas di pura.}}
# juri {{q|biasanya dalam sabung ayam}};
#: {{contoh|ban|Tajén di pura tusing nganggo '''saya'''.|Sabung ayam di pura tidak menggunakan juri.}}
{{-rujukan-}}
* {{R:KBB}}
=={{bahasa|bew}}==
{{kepala|bew}}
: {{suara|bew|LL-Q33014 (bew)-nengpenti (Princessfenty)-saya.wav }}
{{-pron-|bew}}
# saya, aku
#: '''''Saya''' gawé di Mèstèr.''
#: Saya kerja di Jatinegara.
=={{bahasa|jv}}==
{{kepala|jv|num=1}}
{{-ragam-}}
{{jv-varian|c={{J|sa|ya}}|r={{l|jv|saya}} {{q|baku}}, {{l|jv|saja}} {{q|ejaan Belanda}}}}
{{-etimologi-}}
: {{clipping|jv|sangsaya|tr={{l|jv|ꦱꦁꦱꦪ|tr=-}}|t=bertambah}}, {{der|jv|kaw|saṅsaya|t=semakin}}.
{{-adv-|jv}}
# kian bertambah; [[semakin]];
#: ''gandhèng gerahé Bu Sriyatun ora '''saya''' mendha, mula Bu Sindu digawa menyang rumah sakit''
#:: karena sakit Bu Sriyatun semakin parah, maka Bu Sindu dibawa ke rumah sakit
{{-ptcl-|jv}}
# lebih-lebih
{{kepala|jv|num=2}}
{{-etimologi-}}
: {{clipping|jv|sahaya|tr={{l|jv|{{J|sa|ha|ya}}|tr=-}}|t=teman, hamba}}, dari {{der|jv|kaw|sahaya|t=hamba, teman}}, dari {{der|jv|sa|सहाय|t=hamba, budak, abdi}}.
{{-n-|jv}}
# [[teman]]
# [[hamba]]
{{kepala|jv|num=3}}
{{-etimologi-}}
: Dari {{inh|jv|kaw|saya|tr={{l|kaw|{{ruby|{{Kawi|[[File:Aksara Kawi sa.svg|14px]]}}|sa}}{{ruby|{{Kawi|[[File:Aksara Kawi ya.svg|15px]]}}|ya}}|tr=-}}|t=mengumpulkan}}.
{{-n-|id}}
# perahu pencari ikan
{{kepala|jv|num=4}}
{{-etimologi-}}
: {{clipping|jv|sraya|tr={{l|jv|{{J|sra|ya}}|tr=-}}|t=bantuan; pertolongan; bersama}}, dari {{der|jv|kaw|śraya}}, dari {{der|id|sa|श्राय|=tempat berlindung, perlindungan, suaka}}.
{{-p-|jv}}
# sambil; serta; [[seraya]]
{{-v-|jv}}
# meminta bantuan
=={{bahasa|osi}}==
{{kepala|osi}}
:{{suara|osi|LL-Q2701322 (osi)-Kenthus (Jorghirona herdiawan)-saya.wav}}
{{-adv-|osi}}
# [[makin]]
[[Kategori:WikiTutur Kopdar Jakarta 27 April 2024]]
92juoee236fcy2er2hi66dif10aly8s
1349884
1349883
2026-04-14T14:21:37Z
Swarabakti
18192
/* {{bahasa|ban}} */
1349884
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id}}
: {{AFI|id|/saja/}} {{suara|id|LL-Q9240 (ind)-Swarabakti-saya.wav}}
{{-etimologi-}}
: Dari {{der|id|sa|सहाय|t=hamba, budak}}.
{{-pron-|id}}
# orang yang berbicara atau menulis {{q|dalam ragam resmi ataupun biasa}}; [[aku]]
# ya;<br /> '''''saya''', Tuan!''
{{-terjemahan-}}
{{t-atas}}
* {{bhs|inl}}: {{t|inl|file=Saya.webm}}
* {{bhs|en}}: {{t|en|me}}
* {{bhs|mad}}: {{t|mad|kaulâ}}
* {{bhs|ar}}: {{t|ar|أنا}}
{{t-bawah}}
{{-bacaan-}}
* {{R:KBBI Daring}}
{{rfv|id|impor dari KBBI}}
=={{bahasa|ban}}==
{{kepala|ban|alt=ᬲᬬ}}
{{-ragam-}}
* {{ragam|ban|saja||ejaan lama}}
{{-etimologi-}}
: Dari {{der|ban|sa|सहाय|t=hamba, budak, abdi}}
{{-n-|ban}}
# petugas {{glos|di pura}};
#: {{contoh|ban|Ia tusing enu dadi '''saya''' di pura.|Dia tidak lagi menjadi petugas di pura.}}
# juri {{glos|dalam sabung ayam}};
#: {{contoh|ban|Tajén di pura tusing nganggo '''saya'''.|Sabung ayam di pura tidak menggunakan juri.}}
{{-rujukan-}}
* {{R:KBB}}
=={{bahasa|bew}}==
{{kepala|bew}}
: {{suara|bew|LL-Q33014 (bew)-nengpenti (Princessfenty)-saya.wav }}
{{-pron-|bew}}
# saya, aku
#: '''''Saya''' gawé di Mèstèr.''
#: Saya kerja di Jatinegara.
=={{bahasa|jv}}==
{{kepala|jv|num=1}}
{{-ragam-}}
{{jv-varian|c={{J|sa|ya}}|r={{l|jv|saya}} {{q|baku}}, {{l|jv|saja}} {{q|ejaan Belanda}}}}
{{-etimologi-}}
: {{clipping|jv|sangsaya|tr={{l|jv|ꦱꦁꦱꦪ|tr=-}}|t=bertambah}}, {{der|jv|kaw|saṅsaya|t=semakin}}.
{{-adv-|jv}}
# kian bertambah; [[semakin]];
#: ''gandhèng gerahé Bu Sriyatun ora '''saya''' mendha, mula Bu Sindu digawa menyang rumah sakit''
#:: karena sakit Bu Sriyatun semakin parah, maka Bu Sindu dibawa ke rumah sakit
{{-ptcl-|jv}}
# lebih-lebih
{{kepala|jv|num=2}}
{{-etimologi-}}
: {{clipping|jv|sahaya|tr={{l|jv|{{J|sa|ha|ya}}|tr=-}}|t=teman, hamba}}, dari {{der|jv|kaw|sahaya|t=hamba, teman}}, dari {{der|jv|sa|सहाय|t=hamba, budak, abdi}}.
{{-n-|jv}}
# [[teman]]
# [[hamba]]
{{kepala|jv|num=3}}
{{-etimologi-}}
: Dari {{inh|jv|kaw|saya|tr={{l|kaw|{{ruby|{{Kawi|[[File:Aksara Kawi sa.svg|14px]]}}|sa}}{{ruby|{{Kawi|[[File:Aksara Kawi ya.svg|15px]]}}|ya}}|tr=-}}|t=mengumpulkan}}.
{{-n-|id}}
# perahu pencari ikan
{{kepala|jv|num=4}}
{{-etimologi-}}
: {{clipping|jv|sraya|tr={{l|jv|{{J|sra|ya}}|tr=-}}|t=bantuan; pertolongan; bersama}}, dari {{der|jv|kaw|śraya}}, dari {{der|id|sa|श्राय|=tempat berlindung, perlindungan, suaka}}.
{{-p-|jv}}
# sambil; serta; [[seraya]]
{{-v-|jv}}
# meminta bantuan
=={{bahasa|osi}}==
{{kepala|osi}}
:{{suara|osi|LL-Q2701322 (osi)-Kenthus (Jorghirona herdiawan)-saya.wav}}
{{-adv-|osi}}
# [[makin]]
[[Kategori:WikiTutur Kopdar Jakarta 27 April 2024]]
3z2cefsgtckigu4z30sgww1byt0xigs
1349885
1349884
2026-04-14T14:21:58Z
Swarabakti
18192
/* {{bahasa|ban}} */
1349885
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id}}
: {{AFI|id|/saja/}} {{suara|id|LL-Q9240 (ind)-Swarabakti-saya.wav}}
{{-etimologi-}}
: Dari {{der|id|sa|सहाय|t=hamba, budak}}.
{{-pron-|id}}
# orang yang berbicara atau menulis {{q|dalam ragam resmi ataupun biasa}}; [[aku]]
# ya;<br /> '''''saya''', Tuan!''
{{-terjemahan-}}
{{t-atas}}
* {{bhs|inl}}: {{t|inl|file=Saya.webm}}
* {{bhs|en}}: {{t|en|me}}
* {{bhs|mad}}: {{t|mad|kaulâ}}
* {{bhs|ar}}: {{t|ar|أنا}}
{{t-bawah}}
{{-bacaan-}}
* {{R:KBBI Daring}}
{{rfv|id|impor dari KBBI}}
=={{bahasa|ban}}==
{{kepala|ban|alt=ᬲᬬ}}
{{-ragam-}}
* {{ragam|ban|saja||ejaan lama}}
{{-etimologi-}}
: Dari {{der|ban|sa|सहाय|t=hamba, budak, abdi}}
{{-n-|ban}}
# [[petugas]] {{glos|di pura}};
#: {{contoh|ban|Ia tusing enu dadi '''saya''' di pura.|Dia tidak lagi menjadi petugas di pura.}}
# [[juri]] {{glos|dalam sabung ayam}};
#: {{contoh|ban|Tajén di pura tusing nganggo '''saya'''.|Sabung ayam di pura tidak menggunakan juri.}}
{{-rujukan-}}
* {{R:KBB}}
=={{bahasa|bew}}==
{{kepala|bew}}
: {{suara|bew|LL-Q33014 (bew)-nengpenti (Princessfenty)-saya.wav }}
{{-pron-|bew}}
# saya, aku
#: '''''Saya''' gawé di Mèstèr.''
#: Saya kerja di Jatinegara.
=={{bahasa|jv}}==
{{kepala|jv|num=1}}
{{-ragam-}}
{{jv-varian|c={{J|sa|ya}}|r={{l|jv|saya}} {{q|baku}}, {{l|jv|saja}} {{q|ejaan Belanda}}}}
{{-etimologi-}}
: {{clipping|jv|sangsaya|tr={{l|jv|ꦱꦁꦱꦪ|tr=-}}|t=bertambah}}, {{der|jv|kaw|saṅsaya|t=semakin}}.
{{-adv-|jv}}
# kian bertambah; [[semakin]];
#: ''gandhèng gerahé Bu Sriyatun ora '''saya''' mendha, mula Bu Sindu digawa menyang rumah sakit''
#:: karena sakit Bu Sriyatun semakin parah, maka Bu Sindu dibawa ke rumah sakit
{{-ptcl-|jv}}
# lebih-lebih
{{kepala|jv|num=2}}
{{-etimologi-}}
: {{clipping|jv|sahaya|tr={{l|jv|{{J|sa|ha|ya}}|tr=-}}|t=teman, hamba}}, dari {{der|jv|kaw|sahaya|t=hamba, teman}}, dari {{der|jv|sa|सहाय|t=hamba, budak, abdi}}.
{{-n-|jv}}
# [[teman]]
# [[hamba]]
{{kepala|jv|num=3}}
{{-etimologi-}}
: Dari {{inh|jv|kaw|saya|tr={{l|kaw|{{ruby|{{Kawi|[[File:Aksara Kawi sa.svg|14px]]}}|sa}}{{ruby|{{Kawi|[[File:Aksara Kawi ya.svg|15px]]}}|ya}}|tr=-}}|t=mengumpulkan}}.
{{-n-|id}}
# perahu pencari ikan
{{kepala|jv|num=4}}
{{-etimologi-}}
: {{clipping|jv|sraya|tr={{l|jv|{{J|sra|ya}}|tr=-}}|t=bantuan; pertolongan; bersama}}, dari {{der|jv|kaw|śraya}}, dari {{der|id|sa|श्राय|=tempat berlindung, perlindungan, suaka}}.
{{-p-|jv}}
# sambil; serta; [[seraya]]
{{-v-|jv}}
# meminta bantuan
=={{bahasa|osi}}==
{{kepala|osi}}
:{{suara|osi|LL-Q2701322 (osi)-Kenthus (Jorghirona herdiawan)-saya.wav}}
{{-adv-|osi}}
# [[makin]]
[[Kategori:WikiTutur Kopdar Jakarta 27 April 2024]]
9exe946n73dhcn5jxh23rehnyhdetmf
1349886
1349885
2026-04-14T14:22:25Z
Swarabakti
18192
/* {{bahasa|ban}} */
1349886
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id}}
: {{AFI|id|/saja/}} {{suara|id|LL-Q9240 (ind)-Swarabakti-saya.wav}}
{{-etimologi-}}
: Dari {{der|id|sa|सहाय|t=hamba, budak}}.
{{-pron-|id}}
# orang yang berbicara atau menulis {{q|dalam ragam resmi ataupun biasa}}; [[aku]]
# ya;<br /> '''''saya''', Tuan!''
{{-terjemahan-}}
{{t-atas}}
* {{bhs|inl}}: {{t|inl|file=Saya.webm}}
* {{bhs|en}}: {{t|en|me}}
* {{bhs|mad}}: {{t|mad|kaulâ}}
* {{bhs|ar}}: {{t|ar|أنا}}
{{t-bawah}}
{{-bacaan-}}
* {{R:KBBI Daring}}
{{rfv|id|impor dari KBBI}}
=={{bahasa|ban}}==
{{kepala|ban|alt=ᬲᬬ}}
{{-ragam-}}
* {{ragam|ban|saja||ejaan lama}}
{{-etimologi-}}
: Dari {{der|ban|sa|सहाय|t=hamba, budak, abdi}}
{{-n-|ban}}
# [[petugas]] {{glos|di pura}}
#: {{contoh|ban|Ia tusing enu dadi '''saya''' di pura.|Dia tidak lagi menjadi '''petugas''' di pura.}}
# [[juri]] {{glos|dalam sabung ayam}}
#: {{contoh|ban|Tajén di pura tusing nganggo '''saya'''.|Sabung ayam di pura tidak menggunakan '''juri'''.}}
{{-rujukan-}}
* {{R:KBB}}
=={{bahasa|bew}}==
{{kepala|bew}}
: {{suara|bew|LL-Q33014 (bew)-nengpenti (Princessfenty)-saya.wav }}
{{-pron-|bew}}
# saya, aku
#: '''''Saya''' gawé di Mèstèr.''
#: Saya kerja di Jatinegara.
=={{bahasa|jv}}==
{{kepala|jv|num=1}}
{{-ragam-}}
{{jv-varian|c={{J|sa|ya}}|r={{l|jv|saya}} {{q|baku}}, {{l|jv|saja}} {{q|ejaan Belanda}}}}
{{-etimologi-}}
: {{clipping|jv|sangsaya|tr={{l|jv|ꦱꦁꦱꦪ|tr=-}}|t=bertambah}}, {{der|jv|kaw|saṅsaya|t=semakin}}.
{{-adv-|jv}}
# kian bertambah; [[semakin]];
#: ''gandhèng gerahé Bu Sriyatun ora '''saya''' mendha, mula Bu Sindu digawa menyang rumah sakit''
#:: karena sakit Bu Sriyatun semakin parah, maka Bu Sindu dibawa ke rumah sakit
{{-ptcl-|jv}}
# lebih-lebih
{{kepala|jv|num=2}}
{{-etimologi-}}
: {{clipping|jv|sahaya|tr={{l|jv|{{J|sa|ha|ya}}|tr=-}}|t=teman, hamba}}, dari {{der|jv|kaw|sahaya|t=hamba, teman}}, dari {{der|jv|sa|सहाय|t=hamba, budak, abdi}}.
{{-n-|jv}}
# [[teman]]
# [[hamba]]
{{kepala|jv|num=3}}
{{-etimologi-}}
: Dari {{inh|jv|kaw|saya|tr={{l|kaw|{{ruby|{{Kawi|[[File:Aksara Kawi sa.svg|14px]]}}|sa}}{{ruby|{{Kawi|[[File:Aksara Kawi ya.svg|15px]]}}|ya}}|tr=-}}|t=mengumpulkan}}.
{{-n-|id}}
# perahu pencari ikan
{{kepala|jv|num=4}}
{{-etimologi-}}
: {{clipping|jv|sraya|tr={{l|jv|{{J|sra|ya}}|tr=-}}|t=bantuan; pertolongan; bersama}}, dari {{der|jv|kaw|śraya}}, dari {{der|id|sa|श्राय|=tempat berlindung, perlindungan, suaka}}.
{{-p-|jv}}
# sambil; serta; [[seraya]]
{{-v-|jv}}
# meminta bantuan
=={{bahasa|osi}}==
{{kepala|osi}}
:{{suara|osi|LL-Q2701322 (osi)-Kenthus (Jorghirona herdiawan)-saya.wav}}
{{-adv-|osi}}
# [[makin]]
[[Kategori:WikiTutur Kopdar Jakarta 27 April 2024]]
2m31gr1ep0ur26zn39dvnq05dg4e2j2
Pembicaraan:takut
1
39956
1350027
142115
2026-04-15T11:27:30Z
DelintBot
47600
Replacing [[mw:Help:Lint errors/obsolete-tag|obsolete tags]]
1350027
wikitext
text/x-wiki
{{it}} paura: Kata <s>''sifat''</s>
[[Pengguna:Jcwf|Jcwf]] 02:54, 2 Juli 2008 (UTC)
:it's from [[:en:afraid|en:]], you can change it <span style="border:1px solid #003333;padding:1px;">[[User talk:Azmi1995|<span style="color:white;background:#008000;">''' Azmi '''</span><span style="color:white;background:#008000;">''' Bicara '''</span>]]</span> 04:50, 13 Juli 2008 (UTC)
sk53u3nv25723tmw301600yxvkq83tq
Portal:Bahasa Indonesia
0
40283
1350030
801831
2026-04-15T11:29:28Z
DelintBot
47600
Replacing [[mw:Help:Lint errors/obsolete-tag|obsolete tags]]
1350030
wikitext
text/x-wiki
<!-- TABLEAU PRINCIPAL -->
{| cellspacing=15 cellpadding=15 style="border-top:2px solid #bbbbbc; border-left:2px solid #bbbbbc; border-bottom:1px solid #dddddf; border-right:1px solid #dddddf;" align="center"
| bgcolor="#fbfbff" valign=top style="border: 1px solid #aaaaff; border-bottom:2px solid #8888ff; border-right:2px solid #9999ff;" width="50%" align=left |
<!--DÉBUT DU CADRE DE GAUCHE-->
== <div style="text-align: center;">[[Berkas:Nuvola_apps_bookcase.svg|35px|contribuer]]Kosa Kata</div> ==
* [[:Kategori:Kata Bahasa Indonesia|semua artikel bahasa Indonesia]]
== <div style="text-align: center;">[[Berkas:Quill-Nuvola.svg|35px|projets]]Jenis Kata</div> ==
* [[:Kategori:Kata sifat Bahasa Indonesia|Kata sifat]]
* [[:Kategori:Kata keterangan Bahasa Indonesia|Kata keterangan]]
* [[:Kategori:Kata benda Bahasa Indonesia|Kata benda]]
* [[:Kategori:Kata kerja Bahasa Indonesia|Kata kerja]]
[[Kategori:Portal]]
n1g4k9hgby99itjzuu6xbnz1l154q2q
buah
0
40363
1349911
1349137
2026-04-15T06:44:05Z
Alfiyah Rizzy Afdiquni
40651
WikiRiksa
1349911
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id}}
{{suara|id|LL-Q9240 (ind)-Alfiyah Rizzy Afdiquni-buah.wav}}
{{-n-|id}}
# hasil dari [[bunga]]
#* {{RQ:Mustikarasa
|page=58
|text=Asam kandis jang banjak dipakai di Sumatera tengah, berasal dari '''buah''' jang sekeluarga dengan manggis
|norm=Asam kandis yang banjak dipakai di Sumatera tengah, berasal dari '''buah''' yang sekeluarga dengan manggis
|url=https://id.wikisource.org/wiki/Halaman:Mustikarasa.pdf/66#:~:text=Asam%20kandis%20jang%20banjak%20dipakai%20di%20Sumatera%20tengah%2C%20berasal%20dari%20buah%20jang%20sekeluarga%20dengan%20manggis
}}
=={{bahasa|bkr}}==
{{kepala|bkr}}
{{-n-|bkr}}
# {{l|id|buah}}
[[Kategori:WikiTutur - Bakumpai]]
[[Kategori:WikiTutur Kopdar Banjarmasin 30 Juni 2024]]
=={{bahasa|knl}}==
{{kepala|knl}}
{{-lafal-}}
* {{suara|knl|LL-Q6389309 (knl)-Mario Manggit (Neyana999)-buah.wav}}
{{-n-|knl}}
# {{l|id|buah}}
[[Kategori:WikiTutur 2.0 - Keninjal]]
[[Kategori:Kolaborasi Tim WikiTutur 2.0]]
=={{bahasa|mui}}==
{{kepala|mui}}
{{-n-|mui}}
# {{l|id|buah}}
#: {{ux|mui|'''buah''' rambutan|'''buah''' rambutan}}
{{-lafal-|mui}}
* {{suara|mui|LL-Q615660 (mui)-Dpratiwi-buah.wav }}
[[Kategori:WikiTutur - Musi]]
[[Kategori:WikiTutur Kopdar Palembang 19 Mei 2024]]
=={{bahasa|kvb}}==
{{kepala|kvb}}
: {{suara|kvb|LL-Q6441341_(kvb)-Nugraha_(Djordi_Andai)-buah.wav}}
{{-nomina-|kvb}}
# {{l|id|asal}}
# [[buah]]
{{-n-|kvb}}
# '''buah belaki'''= angin yang datang setelah musim hujan sebelum musim kemarau, biasanya membantu penyerbukan
# '''buah belakong'''= ginjal
# '''buah botiy'''= betis bagian belakang
# '''buah kepalo'''= buah batu yang berdaging kuning muda kehijau-hijauan untuk dibuat manisan, berbentuk bulat lonjong, dan beralur memanjang, bijinya dibuat bumbu penyedap atau ramuan obat
# '''buah sebelik sumpah'''= buah yang dapat dijadikan penangkal berbentuk kalung atau gelang
[[Kategori:Edit-a-thon WikiKathā Maret 2026]]
=={{bahasa|su}}==
{{kepala|su}}
{{-n-|su}}
# [[mangga.]]
# [[buah.]]
{{-terjemahan-}}
{{t-atas}}
* {{en}} : {{trad-|en|fruit}}
* {{fr}} : {{trad-|fr|fruit}} {{m}}
{{t-bawah}}
=={{bahasa|bjn}}==
{{kepala|bjn}}
{{-lafal-|bjn}}
* {{suara|bjn| LL-Q33151 (bjn)-Wadaihangit-buah.wav}}
{{-n-|bjn}}
# {{l|id|buah}}
#: {{ux|bjn|''Pabila jar musim buah kuini di banua?''|Kapan kah kira-kira musim buah Kweni di Kalimantan Selatan?}}
[[Kategori:WikiTutur 3.0 - Banjar]]
[[Kategori:WikiTutur 3.0 Banjarmasin 15 Februari 2026]]
7x2zof7pwcrch4q6iwafl9841l33rfy
aben
0
40983
1350035
1109149
2026-04-15T11:33:33Z
Swarabakti
18192
/* {{bahasa|su}} */
1350035
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id}}
: {{suara|id|LL-Q9240 (ind)-Dvnfit-aben.wav}}
{{-v-|id}}
#''bentuk [[dasar]] dan [[imperatif]] dari [[mengaben]]''
{{lihat v}}
{{-bacaan-}}
* {{R:KBBI Daring}}
{{rfv|id|impor dari KBBI}}
=={{bahasa|ban}}==
{{kepala|ban}}
{{-v-|ban}}
# [[mengaben]]
# [[pengabenan]]
=={{bahasa|su}}==
{{kepala|su}}
{{-n-|su}}
{{suword|h=[[aben]]|l=[[adu]]}}
# {{label|su|lemes}} [[adu]]
gc2d9h2pwu6huq0y8vqr1a72hek291v
1350036
1350035
2026-04-15T11:34:05Z
Swarabakti
18192
1350036
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id}}
: {{suara|id|LL-Q9240 (ind)-Dvnfit-aben.wav}}
{{-v-|id}}
#''bentuk [[dasar]] dan [[imperatif]] dari [[mengaben]]''
{{lihat v}}
{{-bacaan-}}
* {{R:KBBI Daring}}
{{rfv|id|impor dari KBBI}}
=={{bahasa|ban}}==
{{kepala|ban}}
{{-v-|ban}}
# [[mengaben]]
# [[pengabenan]]
=={{bahasa|su}}==
{{kepala|su}}
{{-n-|su}}
# {{lemes}} [[adu]]
2qxriuydbr6568qgj0c1prsu9k82bxg
Templat:ja-forms
10
41242
1349909
193287
2026-04-15T06:43:18Z
DelintBot
47600
Replacing [[mw:Help:Lint errors/obsolete-tag|obsolete tags]]
1349909
wikitext
text/x-wiki
{| class="floatright" border=1 cellpadding="5" cellspacing="0"
|- valign="center"
| bgcolor="#dfefff"|
'''[[shinjitai]]'''
|<span lang="ja" style="font-size: 18pt;">{{{1}}}</span>
|- valign="center"
| bgcolor="#dfefff"|
'''[[Hanzi yang Disederhanakan|sederhana]]'''
|<span lang="zh-cn" style="font-size: 18pt;">{{{2}}}</span>
|- valign="center"
| bgcolor="#dfefff"|
'''[[Hanzi Tradisional|tradisional]]'''
|<span lang="zh-tw" style="font-size: 18pt;">{{{3}}}</span>
|}<noinclude>
=== Lihat pula ===
* [[Templat:ja-kanjitab]]
[[Kategori:Templat bahasa Jepang]]
[[en:Template:ja-kanjitab]]
</noinclude>
20a18m82ia8u6b7jtok5li32p7jyot1
Kategori:id:Pronomina
14
43843
1350002
1012159
2026-04-15T09:51:12Z
~2026-23378-65
47602
1350002
wikitext
text/x-wiki
{{kat:Pronomina|id}}
'''Pronomina''' atau '''kata ganti''' adalah kata yang dipakai untuk mengganti nama orang atau benda, seperti ''aku'', ''en
gkau'', ''dia''. Dalam bahasa Indonesia ada tiga jenis pronomina, yaitu pronomina persona, pronomina penunjuk, dan pronomina penanya.
== Pronomina persona ==
{| class="wikitable"
|-
! rowspan=2 | Persona
! rowspan=2 | Tunggal
! colspan=3 | Jamak
|-
! Netral
! Eksklusif
! Inklusif
|-
| Pertama
| saya, aku, daku, beta, ku-, -ku
| -
| kami
| kita
|-
| Kedua
| kau, engkau, kamu, Anda, dikau, kau-, mu-
| kalian, kamu sekalian, Anda sekalian
| -
| -
|-
| Ketiga
| ia, dia, beliau, -nya
| mereka
| -
| -
|}
[http://id.wikibooks.org/w/index.php?title=Bahasa_Indonesia/Pronomina&oldid=12540 sumber]
[[Kategori:Kelas kata bahasa Indonesia|Pronomina]]
fp8neom150evcefe5qrbgd91y1n9o6s
dilarang
0
45033
1349990
1319593
2026-04-15T08:56:43Z
Iripseudocorus
40083
rekam1
1349990
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id}}
: {{pemenggalan|id|di|la|rang}} {{suara|id|LL-Q9240 (ind)-Iripseudocorus-dilarang.wav}}
{{imbuhan di-|larang}}
# tidak diizinkan
#* {{RQ:20 Mei Pelopor 17 Agustus
|page=14-15
|text=''Indische Partij'' : kemudian '''dilarang''', lalu semua anggauta masuk kedalam organisasi jang telah mempunjai hak „rechtspersoon”.
|norm=''Indische Partij'' : kemudian '''dilarang''', lalu semua anggota masuk ke dalam organisasi yang telah mempunyai hak ''rechtspersoon.''
|url=https://id.wikisource.org/wiki/20_Mei_Pelopor_17_Agustus#:~:text=%E2%80%9EIndische%20Partij%E2%80%9D%C2%A0%3A%20kemudian%20dilarang%2C%20lalu%20semua%20%E2%80%8Banggauta%20masuk%20kedalam%20organisasi%20jang%20telah%20mempunjai%20hak%20%E2%80%9Erechtspersoon%E2%80%9D
}}
{{-terjemahan-}}
{{t-atas}}
*{{gor}}: {{t+|gor|entelalo}}
{{t-bawah}}
34h5xkxh55cqaagd3l5k892drq0icyz
mendirikan
0
45090
1350000
1279831
2026-04-15T09:08:48Z
Iripseudocorus
40083
rekam1
1350000
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id}}
: {{pemenggalan|id|men|di|ri|kan}} {{suara|id|LL-Q9240 (ind)-Iripseudocorus-mendirikan.wav}}
{{imbuhan me-kan|diri}}
# memasang (meletakkan) berdiri; menegakkan: <br />''mendirikan tiang listrik (telepon, bendera)
# membuat atau membangun (rumah, pabrik, dan sebagainya): <br />''pemerintah mendirikan pasar darurat untuk menampung pedagang kaki lima
# mengadakan (perkumpulan, yayasan, koperasi, dan sebagainya): <br />''mereka berhasil mendirikan koperasi di kampungnya
#* {{RQ:20 Mei Pelopor 17 Agustus
|page=17
|text=Di Surabaja marhum dr. Sutomo c.s. '''mendirikan''' ''Studieclub'' jang sebenarnja adalah suatu bibit partij politik.
|norm=Di Surabaya marhum dr. Sutomo c.s. '''mendirikan''' ''Studieclub'' yang sebenarnya adalah suatu bibit partai politik.
|url=https://id.wikisource.org/wiki/Halaman%3A20_Mei_Pelopor_17_Agustus_-_Museum_Dewantara_Kirti_Griya.pdf/16#:~:text=Di%20Surabaja%20marhum%20dr.%20Sutomo%20c.s.%20mendirikan%20%E2%80%9EStudieclub%E2%80%9D%20jang%20sebenarnja%20adalah%20suatu%20bibit%20partij%20politik.
}}
# {{Isl}} menjalankan; melaksanakan; mengerjakan (kewajiban dan sebagainya): <br />''sesudah mendirikan salat, ia membaca ayat-ayat suci Alquran
{{-terjemahan-}}
{{t-atas}}
{{t-bawah}}
{{-bacaan-}}
* {{R:KBBI Daring}}
{{rfv|id|impor dari KBBI}}
[[fr:mendirikan]]
[[zh:mendirikan]]
io55hkyv8v19u3zwi6b76afwtht1nr4
kedudukan
0
45446
1349931
1279400
2026-04-15T07:12:26Z
Iripseudocorus
40083
rekam1
1349931
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id}}
: {{pemenggalan|id|ke|du|du|kan}} {{suara|id|LL-Q9240 (ind)-Iripseudocorus-kedudukan.wav}}
{{imbuhan ke-an|duduk|kelas=n}}
# tempat kediaman
# tempat pegawai (pengurus perkumpulan dsb) tinggal untuk melakukan pekerjaan atau jabatannya
# letak atau tempat suatu benda
#:''gerhana matahari terjadi pada waktu '''kedudukan''' bulan tepat di antara bumi dan matahari''
# tingkatan atau martabat
#:'''''kedudukan''' duta besar sama dengan menteri''
#* {{RQ:20 Mei Pelopor 17 Agustus
|page=n.d
|text=Tetapi kemudian beliau toh menerima '''kedudukan''' wakil-ketua; jang mendjadi pemimpin pertama ialah marhum bupati Karanganjar Tirtokusumo.
|norm=Tetapi kemudian beliau toh menerima '''kedudukan''' wakil-ketua; yang menjadi pemimpin pertama ialah marhum bupati Karanganjar Tirtokusumo.
|url=https://id.wikisource.org/wiki/Halaman%3A20_Mei_Pelopor_17_Agustus_-_Museum_Dewantara_Kirti_Griya.pdf/7#:~:text=Tetapi%20kemudian%20beliau%20toh%20menerima%20kedudukan%20wakil%2Dketua%3B%20jang%20mendjadi%20pemimpin%20pertama%20ialah%20marhum%20bupati%20Karanganjar%20Tirtokusumo.
}}
# keadaan yang sebenarnya (tentang perkara dsb)
#:''hingga sekarang '''kedudukan''' perkara manipulasi uang proyek itu masih gelap''
# status (keadaan atau tingkatan orang, badan atau negara, dsb)
''di sana '''kedudukan''' Saudara sebagai apa?''
{{-terjemahan-}}
{{t-atas}}
{{t-bawah}}
{{-bacaan-}}
* {{R:KBBI Daring}}
{{rfv|id|impor dari KBBI}}
7mpf7fklxte7xtskx833umbvm6z7t5u
kepentingan
0
45583
1349999
1349185
2026-04-15T09:07:41Z
Iripseudocorus
40083
rekam1
1349999
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id}}
: {{pemenggalan|id|ke|pen|ti|ngan}} {{suara|id|LL-Q9240 (ind)-Iripseudocorus-kepentingan.wav}}
{{imbuhan ke-an|penting|kelas=n}}
# keperluan; kebutuhan: <br />''mendahulukan kepentingan umum''
#* {{RQ:Permainan Rakyat Daerah Kalimantan Selatan
|page= 46
|text= Tetapi karena peranannya kecil sekali untuk '''kepentingan''' perkembangan permainan atau pendidikan pada umumnya, maka masyarakat tampaknya tidak merasa dirugikan kalau permainan ini tidak berkembang lagi.
|url= https://id.wikisource.org/wiki/Halaman%3APermainan_rakyat_daerah_Kalimantan_Selatan.pdf/50#:~:text=Tetapi%20karena%20peranannya%20kecil%20sekali%20untuk%20kepentingan%20perkembangan%20permainan%20atau%20pendidikan%20pada%20umumnya%2C%20maka%20masyarakat%20tampaknya%20tidak%20merasa%20dirugikan%20kalau%20permainan%20ini%20tidak%20berkembang%20lagi.
}}
# interes
{{-terjemahan-}}
{{t-atas}}
{{t-bawah}}
{{-bacaan-}}
* {{R:KBBI Daring}}
{{rfv|id|impor dari KBBI}}
r2s6gmf2qrkd6hgxsybcykfrv5kwz2u
sekolah
0
46101
1350012
1293485
2026-04-15T10:32:01Z
Alfiyah Rizzy Afdiquni
40651
WikiRiksa
1350012
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id}}
{{suara|id|LL-Q9240 (ind)-Alfiyah Rizzy Afdiquni-sekolah.wav}}
{{-etimologi-}}
: Dari {{pt}} [[escola]].
{{-n-|id}}
# bangunan atau lembaga untuk belajar dan mengajar serta tempat menerima dan memberi pelajaran (menurut tingkatannya, ada) -- dasar, -- lanjutan, -- tinggi; (menurut jurusannya, ada) -- dagang, -- guru, -- teknik, -- pertanian, dan sebagainya
#* {{RQ:Permainan Rakyat Daerah Kalimantan Selatan
|page=476
|text=Dalam rangka proses sosialisasi, terutama dalam usaha menanamkan sikap dan ketrampilan yang tidak mungkin diperoleh di bangku '''sekolah''' maupun pendidikan formal lainnya, permainan rakyat merupakan salah satu sarana yang sangat baik.
|url=https://id.wikisource.org/wiki/Halaman:Permainan_rakyat_daerah_Kalimantan_Selatan.pdf/10#:~:text=Dalam%20rangka%20proses%20sosialisasi%2C%20terutama%20dalam%20usaha%20menanamkan%20sikap%20dan%20ketrampilan%20yang%20tidak%20mungkin%20diperoleh%20di%20bangku%20sekolah%20maupun%20pendidikan%20formal%20lainnya%2C%20permainan%20rakyat%20merupakan%20salah%20satu%20sarana%20yang%20sangat%20baik.
}}
{{-terjemahan-}}
{{t-atas}}
* {{bhs|en}}: {{t|en|school}}
* {{bhs|inl}}: {{t|inl|file=Sekolah - Sekolah.webm}}
* {{bhs|fr}}: {{t|fr|école}}
{{t-bawah}}
{{rfv|id|impor dari KBBI}}
dusogij23vonwuoppxr9oh5lf7lk91r
Kategori:ab:Nomina
14
46716
1350050
899113
2026-04-15T11:38:45Z
Swarabakti
18192
1350050
wikitext
text/x-wiki
{{kategori otomatis}}
tka0fgn87px6unlh07hbwnzmlebon2d
wedang
0
47477
1349920
1340023
2026-04-15T07:00:17Z
Alfiyah Rizzy Afdiquni
40651
WikiRiksa
1349920
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id}}
{{suara|id|LL-Q9240 (ind)-Alfiyah Rizzy Afdiquni-wedang.wav}}
{{-etimologi-}}
: Pinjaman dari bahasa Jawa ''wédang'' 'minuman panas; air matang (panas) untuk membuat minuman', dari bahasa Jawa Kuno ''wedaṅ'' 'air mendidih'.
{{-n-|id}}
# minuman dari bahan gula dan kopi (teh, jahe, dsb) yang biasanya disedu dengan air panas, biasanya dapat menghangatkan tubuh:
#* {{RQ:Mustikarasa
|page=1150
|text='''Wedang''' dihidangkan dalam mangkuk
|url=https://id.wikisource.org/wiki/Halaman:Mustikarasa.pdf/1158#:~:text=Wedang%20dihidangkan%20dalam%20mangkuk
}}
{{-rujukan-}}
* {{R:KBBI Daring}}
{{rfv|id|impor dari KBBI}}
=={{bahasa|mui-plm}}==
{{kepala|mui-plm}}
{{-etimologi-}}
: {{dipinjam dari+|mui-plm|jv|wédang|t=air minum, air rebusan}}.
{{-n-|mui-plm}}
# {{label|mui-plm|lama}} air minum matang
=={{bahasa|osi}}==
{{kepala|osi|entry=wèdang}}
{{-n-|osi}}
# [[air]] [[panas]]
{{-turunan-|osi}}
# '''kewèdangen'''= rasa panas pada tangan/ kulit karena bersinggungan dengan cabai
[[Kategori:Edit-a-thon WikiKathā Maret 2026]]
kz6a9yqjztrqo7o83mrxah86f3jdrwc
santan
0
48081
1349942
1279259
2026-04-15T07:33:08Z
Alfiyah Rizzy Afdiquni
40651
WikiRiksa
1349942
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id}}
{{suara|id|LL-Q9240 (ind)-Alfiyah Rizzy Afdiquni-santan.wav}}
{{-n-|id}}
# air perahan kelapa yang sudah dikukur
#* {{RQ:Mustikarasa
|page=1156
|text=Setelah masak, '''santan''' kental dimasukkan, diaduk sampai mendidih.
|url=https://id.wikisource.org/wiki/Halaman:Mustikarasa.pdf/1164#:~:text=Setelah%20masak%2C%20santan%20kental%20dimasukkan%2C%20diaduk%20sampai%20mendidih.
}}
{{-turunan-|id}}
{{-terjemahan-}}
<!--Anda dapat menyalin templat {{t-atas}} -- {{t-bawah}} di bawah berulang kali untuk masing masing arti kata, masing-masing dibedakan melalui parameter pertamanya (misalkan {{t-atas|arti 1}} dan {{t-atas|arti 2}} dst). Lihat [[Wiktionary:Terjemahan]] untuk panduan membuat lebih dari satu kolom terjemahan-->
{{t-atas}}
{{t-bawah}}
{{-bacaan-}}
* {{R:KBBI Daring}}
{{rfv|id|impor dari KBBI}}
=={{bahasa|jax}}==
{{kepala|jax}}
: {{suara|jax|LL-Q3915769 (jax)-yogi (Pitchrigi)-santan.wav}}
{{-n-|jax}}
# santan
[[Kategori:WikiMaknyus Jambi]]
[[Kategori:WikiMaknyus]]
=={{bahasa|min}}==
{{kepala|min}}
{{-n-|min}}
# santan
[[Kategori:WikiMaknyus Mataram]]
[[Kategori:WikiMaknyus]]
j7qzd0sn12dh73l0zurgx82b9fnoe74
singkong
0
49330
1350004
1279714
2026-04-15T09:57:22Z
Alfiyah Rizzy Afdiquni
40651
WikiRiksa
1350004
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id}}
{{suara|id|LL-Q9240 (ind)-Alfiyah Rizzy Afdiquni-singkong.wav}}
[[Berkas:Iwata kenichi cassava.jpg|jmpl|singkong]]
{{-etimologi-}}
Dari {{bor|id|nan|樹葛|t=singkong}}
{{-n-|id}}
# tanaman yang hidup di daerah tropis, umbinya ada yang manis dan ada pula yang pahit, daunnya banyak mengandung protein biasa disayur atau direbus sebagai lalap; ubi kayu; ''[[:species:Manihot esculenta|Manihot esculenta]]''
#* {{RQ:Mustikarasa
|page=1129
|text='''Singkong''' direbus, ditumbuk halus, dibentuk bulat².
|url=https://id.wikisource.org/wiki/Halaman:Mustikarasa.pdf/1137#:~:text=Singkong%20direbus%2C%20ditumbuk%20halus%2C%20dibentuk%20bulat%C2%B2
}}
# daun singkong
{{-turunan-|id}}
{{-terjemahan-}}
{{t-atas}}
{{t-bawah}}
{{-bacaan-}}
* {{R:KBBI Daring}}
{{rfv|id|impor dari KBBI}}
g3wqkhyu1wfva7zsys9lkt18a0dfyix
sirsak
0
49436
1349901
1294019
2026-04-15T06:39:57Z
Alfiyah Rizzy Afdiquni
40651
WikiRiksa
1349901
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id}}
{{suara|id|LL-Q9240 (ind)-Alfiyah Rizzy Afdiquni-sirsak.wav}}
{{-n-|id}}
# pohon yang tingginya mencapai 8 m, kulit buahnya berduri-duri pendek dan lunak, isinya berwarna putih serta berbiji banyak, berwarna hitam, rasanya masam-masam ma-nis; nangka belanda; "[[:species:Annona muricata|Annona muricata]]"
# buah sirsak
#* {{RQ:Mustikarasa
|page=1146
|text=Susu, gula dan panili dimasak sampai mendidih, sesudah itu ditjampurkan air '''sirsak''' jang sudah ditjampur dengan tepung sedikit² kedalamnja.
|norm=Susu, gula dan panili dimasak sampai mendidih, sesudah itu dicampurkan air '''sirsak''' yang sudah dicampur dengan tepung sedikit-sedikit ke dalamnya.
|url=https://id.wikisource.org/wiki/Halaman:Mustikarasa.pdf/1154#:~:text=Susu%2C%20gula%20dan%20panili%20dimasak%20sampai%20mendidih%2C%20sesudah%20itu%20ditjampurkan%20air%20sirsak%20jang%20sudah%20ditjampur%20dengan%20tepung%20sedikit%C2%B2%20kedalamnja.
}}
{{-turunan-|id}}
{{-terjemahan-}}
{{t-atas}}
{{t-bawah}}
{{-bacaan-}}
* {{R:KBBI Daring}}
{{rfv|id|impor dari KBBI}}
[[Kategori:id:Buah]]
bg929usv4s0jz8yr44zwb70z9gmc1df
soda
0
49552
1349894
1294196
2026-04-15T06:24:42Z
Alfiyah Rizzy Afdiquni
40651
WikiRiksa
1349894
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id}}
{{suara|id|LL-Q9240 (ind)-Alfiyah Rizzy Afdiquni-soda.wav}}
{{-n-|id}}
# bahan kimia yang digunakan pembuatan sabun dsb.
# pengembang makanan
#* {{RQ:Mustikarasa
|page=1135
|text=Tepung terigu, tepung singkong, '''soda''', susu kental manis dan panili dimasukkan.
|url=https://id.wikisource.org/wiki/Halaman:Mustikarasa.pdf/1143#:~:text=Tepung%20terigu%2C%20tepung%20singkong%2C%20soda%2C%20susu%20kental%20manis%20dan%20panili%20dimasukkan.
}}
{{-turunan-|id}}
{{-terjemahan-}}
{{t-atas}}
{{t-bawah}}
{{-bacaan-}}
* {{R:KBBI Daring}}
{{rfv|id|impor dari KBBI}}
lpnmqygxcjob49pjjktun6ygiff8fq9
sosialisasi
0
49659
1350015
1294381
2026-04-15T10:36:01Z
Alfiyah Rizzy Afdiquni
40651
WikiRiksa
1350015
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id}}
{{suara|id|LL-Q9240 (ind)-Alfiyah Rizzy Afdiquni-sosialisasi.wav}}
{{-n-|id}}
# usaha untuk mengubah milik perseorangan menjadi milik umum (milik negara): <br>''tradisi tidak memperlancar proses sosialisasi perusahaan milik keluarga''
# proses belajar seorang anggota masyarakat untuk mengenal dan menghayati kebudayaan masyarakat dalam lingkungannya: <br>''tingkat-tingkat permulaan dari proses sosialisasi manusia itu terjadi dalam lingkungan keluarga''
# upaya memasyarakatkan sesuatu sehingga men-jadi dikenal, dipahami, dihayati oleh masyarakat; pemasyarakatan
#* {{RQ:Permainan Rakyat Daerah Kalimantan Selatan
|page=2
|text=Dalam rangka proses '''sosialisasi,''' terutama dalam usaha menanamkan sikap dan ketrampilan yang tidak mungkin diperoleh di bangku sekolah maupun pendidikan formal lainnya, permainan rakyat merupakan salah satu sarana yang sangat baik.
|url=https://id.wikisource.org/wiki/Halaman:Permainan_rakyat_daerah_Kalimantan_Selatan.pdf/10#:~:text=Dalam%20rangka%20proses%20sosialisasi%2C%20terutama%20dalam%20usaha%20menanamkan%20sikap%20dan%20ketrampilan%20yang%20tidak%20mungkin%20diperoleh%20di%20bangku%20sekolah%20maupun%20pendidikan%20formal%20lainnya%2C%20permainan%20rakyat%20merupakan%20salah%20satu%20sarana%20yang%20sangat%20baik.
}}
{{-turunan-|id}}
{{-terjemahan-}}
{{t-atas}}
{{t-bawah}}
{{-bacaan-}}
* {{R:KBBI Daring}}
{{rfv|id|impor dari KBBI}}
04npmh4nvy1rkhvxy55a5j3sot2mrmy
spesialis
0
49717
1349923
1294465
2026-04-15T07:01:49Z
Iripseudocorus
40083
rekam1
1349923
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id}}
: {{pemenggalan|id|spe|sia|lis}} {{suara|id|LL-Q9240 (ind)-Iripseudocorus-spesialis.wav}}
{{-n-|id}}
# orang yang ahli dalam suatu cabang ilmu atau keterampilan: <br>''dia adalah pemain spesialis ganda; dokter spesialis jantung''
#* {{RQ:20 Mei Pelopor 17 Agustus
|page=10
|text=Ketua Panitya adalah marhum dr. Tumbelaka, jang waktu itu tinggal dinegeri Belanda untuk menjiapkan diri sebagai ''specialist'' dalam ilmu penjakit urat-sjaraf.
|norm=Ketua Panitia adalah marhum dr. Tumbelaka, yang waktu itu tinggal di negeri Belanda untuk menyiapkan diri sebagai '''spesialis''' dalam ilmu penyakit urat-syaraf.
|url=https://id.wikisource.org/wiki/Halaman%3A20_Mei_Pelopor_17_Agustus_-_Museum_Dewantara_Kirti_Griya.pdf/9#:~:text=Ketua%20Panitya%20adalah%20marhum%20dr.%20Tumbelaka%2C%20jang%20waktu%20itu%20tinggal%20dinegeri%20Belanda%20untuk%20menjiapkan%20diri%20sebagai%20%E2%80%9Especialist%E2%80%9D%20dalam%20ilmu%20penjakit%20urat%2Dsjaraf.}}
{{-turunan-|id}}
{{-terjemahan-}}
{{t-atas}}
{{t-bawah}}
{{-bacaan-}}
* {{R:KBBI Daring}}
{{rfv|id|impor dari KBBI}}
98kcxh1ncmkt25tzfuqggjxseeyq8h4
sukun
0
50025
1350003
1333173
2026-04-15T09:54:51Z
Alfiyah Rizzy Afdiquni
40651
WikiRiksa
1350003
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id}}
{{suara|id|LL-Q9240 (ind)-Alfiyah Rizzy Afdiquni-soda.sukun}}
{{-v-|id}}
# tidak bergigi (tentang gusi)
# tidak berbiji (untuk buah-buahan yang biasanya berbiji):<br>''jambu sukun''
#* {{RQ:Mustikarasa
|page=1128
|text=Sesudah masak '''sukun''' tersebut dimasukkan.
|url=https://id.wikisource.org/wiki/Halaman:Mustikarasa.pdf/1136#:~:text=Sesudah%20masak%20sukun%20tersebut%20dimasukkan.
}}
{{-n-|id}}
# penanda hilangnya vokal dalam ejaan bahasa Arab yang diletakkan di atas konsonan
{{-etimologi-}}
* Dari ''[[Arab]]'' '''''سُكُوْنٌ sukūn''''' ['ketenangan;' dari ''[[Arab]]'' '''''سَكَنَ sakana''''' 'menenang; berdiam']
{{-rujukan-}}
*Russell Jones, Loan-words in Indonesian and Malay, (Jakarta: Yayasan Obor Indonesia, 2008)
*Ibn Manẓūr, Lisan al-'Arab, (Cairo: Dār al-Ma‘ārif, 1431 H)
{{-n-|id}}
# pohon seperti keluih yang buahnya tidak berbiji; "[[:species:Artocarpus incissus|Artocarpus incissus]]"
{{-turunan-|id}}
{{-terjemahan-}}
<!--Anda dapat menyalin templat {{kotak awal}} -- {{t-bawah}} di bawah berulang kali untuk masing masing arti kata, masing-masing dibedakan melalui parameter pertamanya (misalkan {{kotak awal|arti 1}} dan {{kotak awal|arti 2}} dst). Lihat [[Wiktionary:Terjemahan]] untuk panduan membuat lebih dari satu kolom terjemahan-->
{{t-atas}}
{{t-bawah}}
{{-bacaan-}}
* {{R:KBBI Daring}}
{{rfv|id|impor dari KBBI}}
=={{bahasa|bjn}}==
{{kepala|bjn}}
{{-lafal-|bjn}}
* {{suara|bjn|LL-Q33151 (bjn)-Wadaihangit-sukun.wav}}
{{-n-|bjn}}
# sukun
#: {{ux|bjn|hujan kayani rasuk banar lawan sukun basanga|Saat hujan cocok banget dengan sukun goreng}}
[[Kategori:WikiTutur 3.0 - Banjar]]
[[Kategori:WikiTutur 3.0 Banjarmasin 15 Februari 2026]]
=={{bahasa|bqr}}==
{{kepala|bqr}}
:{{suara|bqr|LL-Q5001028 (bqr)-Jhoni imbut (ijung) (Lilink1234)-sukun.wav}}
{{-n-|bqr}}
# {{l|id|sukun}}
[[Kategori:Edit-a-thon WikiKathā Maret 2026]]
=={{bahasa|jv}}==
{{kepala|jv}}
{{-etimologi-}}
:{{Inh+|r=y|jv|PMP|sukun}}.
{{-n-|jv}}
# pohon seperti keluih yang buahnya tidak berbiji; "[[:species:Artocarpus incissus|Artocarpus incissus]]"
{{-rujukan-}}
* {{R:map:ACD|*sukun|id=31214|type=c}}
=={{bahasa|mqg}}==
{{kepala|mqg}}
{{-n-|mqg}}
# {{l|id|sukun}}
0avmrmmq4e8yclr190rmfkr2dpufvfh
tiwul
0
66137
1350005
1296682
2026-04-15T09:58:15Z
Alfiyah Rizzy Afdiquni
40651
WikiRiksa
1350005
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id}}
{{suara|id|LL-Q9240 (ind)-Alfiyah Rizzy Afdiquni-tiwul.wav}}
{{-n-|id}}
# penganan yang dibuat dari tepung gaplek, diberi gula sedikit, kemudian dikukus, dapat dimakan bersama kelapa parut yang telah diberi garam sedikit
#* {{RQ:Mustikarasa
|page=1131
|text=Pendjualan dibungkus dengan daun pisang dan diberi kelapa parut, seperti '''tiwul'''.
|norm=Penjualan dibungkus dengan daun pisang dan diberi kelapa parut, seperti '''tiwul'''.
|url=https://id.wikisource.org/wiki/Halaman:Mustikarasa.pdf/1139#:~:text=Pendjualan%20dibungkus%20dengan%20daun%20pisang%20dan%20diberi%20kelapa%20parut%2C%20seperti%20tiwul.
}}
{{-turunan-|id}}
{{-sinonim-}}
{{t-atas}}
{{t-bawah}}
{{-bacaan-}}
* {{R:KBBI Daring}}
{{rfv|id|impor dari KBBI}}
oiuek6uqwoc74miezov1ftc0wb6fu98
Halaman Utama/Mei 2010
0
90286
1350029
1060870
2026-04-15T11:29:27Z
DelintBot
47600
Replacing [[mw:Help:Lint errors/obsolete-tag|obsolete tags]]
1350029
wikitext
text/x-wiki
<!-- Pengantar -->
<div style="text-align: center; border:1px solid #cccccc; -moz-border-radius: 10px; padding: 10px; margin: 30px 0px 10px 0px; background: #f0f0f0;">
<div style="font-size:120%;">Selamat datang di '''[[Wiktionary:Perihal|Wiktionary]] Indonesia''', kamus bebas berbahasa Indonesia</div>
<div style="font-size:90%;">Saat ini ada '''35500''' artikel dengan '''{{NUMBEROFUSERS}}''' pengguna terdaftar</div>
<inputbox>
type=search
placeholder=Cari…
width=40
break=no
bgcolor=#f0f0f0
buttonlabel=Cari judul
searchbuttonlabel=Cari isi
</inputbox><div style="font-size:90%;"><!-- remark dulu
[[Wikipedia:Pengantar|Memulai]] ·
[[Wikipedia:Keuntungan mempunyai akun|Mendaftar]] ·
[[Wikipedia:Menyunting sebuah halaman|Menyunting ]] ·
'''[[Portal:Komunitas|Komunitas]]''' ·
[[Wikipedia:Warung kopi|Warung kopi]] ·
[[Wikipedia:Meja referensi|Meja referensi]] ·
[[Bantuan:Isi|Bantuan]]-->
</div>
<div style="font-size:90%; margin-top:-5px"><!-- remark dulu [[Wikipedia:Babel/id-0|You don't speak Indonesian?]]--></div>
</div>
<!-- Kotak Isian Pilihan -->
{| style="background:#fff5f5" align="center"
|! style="background: #ffe2e2; border:#ffe2e2 1px solid; padding-top: 0.1em; padding-bottom: 0.1em; text-align: center; font-size: larger;"|'''Halaman Pilihan'''
|-
|valign="top" align="right"|'''[[Istimewa:Halaman baru|Lema baru]]''' – '''[[Istimewa:Artikel lama|Lema lama]]''' – '''[[Istimewa:Halaman sembarang|Halaman sembarang]]'''
|}
{| style="padding:8px;"
|! style="background: #e2e2ff; padding-top: 0.1em; padding-bottom: 0.1em; text-align: center; font-size: larger;"|'''Telusuri KamusWiki'''
|! style="background: #faf9b2; padding-top: 0.1em; padding-bottom: 0.1em; text-align: center; font-size: larger;"|'''[[Wiktionary:Indeks Cepat|Indeks Cepat]]'''
|-
|style="background:#f8f8ff"|
<big>''' Artikel-Artikel '''</big><br /><br />
[[:Category:Bahasa|Menurut Bahasa]] -
[[Wiktionary:Jenis Kata|Jenis Kata]] -
[[Wiktionary:Indeks Bahasa|Indeks Bahasa]] -
[[Wiktionary:Daftar akronim dan singkatan|Daftar akronim dan singkatan]] -
[[Wiktionary:Penjelasan tataletak entri|'''Penjelasan tataletak isian''']] -
[[Wiktionary:Klasifikasi Tesaurus|Menurut Klasifikasi Tesaurus]] -
[[:category:WikiSaurus|WikiSaurus (daftar sinonim)]]
<br /><br />
<big>''' Lampiran '''</big><br /><br />
[[Lampiran Wiktionary:Bilangan|Bilangan / Angka]] -
[[Lampiran Wiktionary:Daftar istilah linguistik|Daftar istilah linguistik]] -
[[Lampiran Wiktionary:Ejaan Yang Disempurnakan|EYD]] -
[[Lampiran Wiktionary:Imbuhan|Imbuhan]] -
[[Lampiran Wiktionary:Majas|Majas]]<!-- -
[[Wiktionary:Singkatan|Singkatan yang digunakan di KamusWiki]] -
[[Wiktionary:Index Cangjie Tiongkok|Index Cangjie Tiongkok]] -
[[Wiktionary:Index pinyin Tiongkok|Index Pinyin Tiongkok]] -
[[Wiktionary:Daftar abjad|Menurut abjad]] -
[[Lampiran Wiktionary:Sistem penulisan dan abjad|Sistem penulisan dan abjad]] -
-->
<br /><br />
<big>''' [[Wiktionary:Sasaran kami|Sasaran kami]] '''</big><br /><br />
Hal-hal yang kami targetkan untuk dikerjakan di waktu mendatang.
<!-- Kotak Index Cepat -->
|class="plainlinks" valign="top" align="right" style="background:#ffffec"|
Kata yang berawalan: <br />
<div style="text-align: center;"><small><b>
[http://id.wiktionary.org/w/wiki.phtml?title=Special:Allpages&from=A A]
[http://id.wiktionary.org/w/wiki.phtml?title=Special:Allpages&from=B B]
[http://id.wiktionary.org/w/wiki.phtml?title=Special:Allpages&from=C C]
[http://id.wiktionary.org/w/wiki.phtml?title=Special:Allpages&from=D D]
[http://id.wiktionary.org/w/wiki.phtml?title=Special:Allpages&from=E E]
[http://id.wiktionary.org/w/wiki.phtml?title=Special:Allpages&from=F F]
[http://id.wiktionary.org/w/wiki.phtml?title=Special:Allpages&from=G G]
[http://id.wiktionary.org/w/wiki.phtml?title=Special:Allpages&from=H H]
[http://id.wiktionary.org/w/wiki.phtml?title=Special:Allpages&from=I I]
[http://id.wiktionary.org/w/wiki.phtml?title=Special:Allpages&from=J J]
[http://id.wiktionary.org/w/wiki.phtml?title=Special:Allpages&from=K K]
[http://id.wiktionary.org/w/wiki.phtml?title=Special:Allpages&from=L L]
[http://id.wiktionary.org/w/wiki.phtml?title=Special:Allpages&from=M M]
[http://id.wiktionary.org/w/wiki.phtml?title=Special:Allpages&from=N N]
[http://id.wiktionary.org/w/wiki.phtml?title=Special:Allpages&from=O O]
[http://id.wiktionary.org/w/wiki.phtml?title=Special:Allpages&from=P P]
[http://id.wiktionary.org/w/wiki.phtml?title=Special:Allpages&from=Q Q]
[http://id.wiktionary.org/w/wiki.phtml?title=Special:Allpages&from=R R]
[http://id.wiktionary.org/w/wiki.phtml?title=Special:Allpages&from=S S]
[http://id.wiktionary.org/w/wiki.phtml?title=Special:Allpages&from=T T]
[http://id.wiktionary.org/w/wiki.phtml?title=Special:Allpages&from=U U]
[http://id.wiktionary.org/w/wiki.phtml?title=Special:Allpages&from=V V]
[http://id.wiktionary.org/w/wiki.phtml?title=Special:Allpages&from=W W]
[http://id.wiktionary.org/w/wiki.phtml?title=Special:Allpages&from=X X]
[http://id.wiktionary.org/w/wiki.phtml?title=Special:Allpages&from=Y Y]
[http://id.wiktionary.org/w/wiki.phtml?title=Special:Allpages&from=Z Z]
</b><br /></small></div>
Kata yang berawalan dengan huruf non-Latin: <br />
[http://id.wiktionary.org/w/wiki.phtml?title=Special:Allpages&from=א א]
[http://id.wiktionary.org/w/wiki.phtml?title=Special:Allpages&from=أ أ]
[http://id.wiktionary.org/w/wiki.phtml?title=Special:Allpages&from=अ अ]
[http://id.wiktionary.org/w/wiki.phtml?title=Special:Allpages&from=ო ო]
[http://id.wiktionary.org/w/wiki.phtml?title=Special:Allpages&from=あ あ]
[http://id.wiktionary.org/w/wiki.phtml?title=Special:Allpages&from=む む]
[http://id.wiktionary.org/w/wiki.phtml?title=Special:Allpages&from=亍 亍]
[http://id.wiktionary.org/w/wiki.phtml?title=Special:Allpages&from=偣 偣]
[http://id.wiktionary.org/w/wiki.phtml?title=Special:Allpages&from=恣 恣]
[http://id.wiktionary.org/w/wiki.phtml?title=Special:Allpages&from=灣 灣]
[http://id.wiktionary.org/w/wiki.phtml?title=Special:Allpages&from=나 나]
[http://id.wiktionary.org/w/wiki.phtml?title=Special:Allpages&from=♠ ♠]
[http://id.wiktionary.org/w/wiki.phtml?title=Special:Allpages&from=அ அ]
[http://id.wiktionary.org/w/wiki.phtml?title=Special:Allpages&from=Đ Đ]
[http://id.wiktionary.org/w/wiki.phtml?title=Special:Allpages&from=ก ก]
</div></div>
|}
<!-- Proyek Wikimedia lain -->
<div style="background:#ffc9c9; color: #000; border:0px solid #ccc; font:bold 120% sans-serif; padding: 3px 5px; margin: 10px 0px; -moz-border-radius: 5px;">[[Berkas:Wikimedia-logo.svg|20px]] Proyek Wikimedia lain</div>
{{ProyekWiki}}
<!-- Wiktionary dalam bahasa lain -->
<div style="background:#dedede; color: #000; border:0px solid #ccc; font:bold 120% sans-serif; padding: 3px 5px; margin: 10px 0px; -moz-border-radius: 5px;">[[Berkas:Wiktionary.png|20px]] {{ns:project}} dalam bahasa lain</div>
<div style="font-size:105%;">
'''Lebih dari 1.000.000 lema:'''<br />
[[:en:|English]]
</div>
<div style="font-size:95%;">
'''Lebih dari 100.000 lema:'''<br />
[[:zh:|中文]] •
[[:fi:|Suomi]] •
[[:fr:|Français]] •
[[:de:|Deutsch]] •
[[:el:|Ελληνικά]] •
[[:hu:|Magyar]] •
[[:io:|Ido]] •
[[:it:|Italiano]] •
[[:lt:|Lietuvių]] •
[[:no:|Norsk Bokmål]] •
[[:pl:|Polski]] •
[[:pt:|Português)]] •
[[:ru:|Русский]] •
[[:sv:|Svenska]] •
[[:ta:|தமிழ்]] •
[[:tr:|Türkçe]] •
[[:vi:|Tiếng Việt]]
</div>
<div style="font-size:90%;">
'''Lebih dari 10.000 lema:'''<br />
[[:af:|Afrikaans]] •
[[:ar:|العربية]] •
[[:br:|Brezhoneg]] •
[[:bg:|Български]] •
[[:ca:|Català ]] •
[[:cs:|Český]] •
[[:nl:|Nederlands]] •
[[:et:|Eesti]] •
[[:fy:|Frysk ]] •
[[:gl:|Galego]] •
[[:he:|עברית]] •
[[:is:|Íslenska]] •
[[:ja:日本語]] •
[[:kn:|ಕನ್ನಡ]] •
[[:ko:|한국어]] •
[[:ku:|Kurdî / كوردی]] •
[[:lo:|ລາວ]] •
[[:li:|Limburgs]] •
[[:ml:|മലയാളം]] •
[[:oc:|Occitan]] •
[[:fa:|فارسى]] •
[[:ro:|Română]] •
[[:sr:|Српски]] •
[[:scn:|Sicilianu]] •
[[:simple:|Simple English]] •
[[:es:|Español]] •
[[:te:|తెలుగు]] •
[[:th:|ไทย]] •
[[:uk:|Українська]] •
[[:vo:|Volapük]]
</div>
<div style="font-size:85%;">
Lebih dari 1.000 lema:<br />
[[:sq:|Shqip]] •
[[:hy:|Հայերեն]] •
[[:ast:|Asturianu]] •
[[:az:|Azərbaycan]] •
[[:co:|Corsu]] •
[[:hr:|Hrvatski]] •
[[:da:|Dansk]] •
[[:eo:|Esperanto]] •
[[:ka:|ქართული]] •
[[:kl:|Kalaallisut]] •
[[:gn:|Avañe'ẽ]] •
[[:hi:|हिन्दी]] •
[[:ia:|Interlingua]] •
[[:ga:|Gaeilge]] •
[[:csb:|Kaszëbsczi]] •
[[:kk:|қазақша]] •
[[:ky:|Кыргызча]] •
[[:la:|Latina]] •
[[:lv:|Latviešu]] •
[[:ms:|Bahasa Melayu]] •
[[:zh-min-nan:|Bân-lâm-gú]] •
[[:ne:|नेपाली]] •
[[:ang:|Englisc]] •
[[:nds:|Plattdüütsch]] •
[[:sk:|Slovenčina]] •
[[:sl:|Slovenščina]] •
[[:hsb:|Hornjoserbsce]] •
[[:st:|seSotho]] •
[[:sw:|Kiswahili]] •
[[:tt:|Tatarça / Татарча]] •
[[:tk:|تركمن ]] •
[[:ur:|اردو]] •
[[:cy:|Cymraeg]]
</div>
<div style="font-size:75%;">
Lebih dari 100 lema:<br />
[[:am:|አማርኛ]] •
[[:an:|Aragonés]] •
[[:roa-rup:|Armãneashce]] •
[[:eu:|Euskara]] •
[[:be:|Беларуская]] •
[[:bn:|বাংলা]] •
[[:bs:|Bosanski]] •
[[:my:|မြန်မာဘာသာ]] •
[[:km:|ភាសាខ្មែរ]] •
[[:chr:|ᏣᎳᎩ]] •
[[:kw:|Kernewek/Karnuack]] •
[[:dv:|ދިވެހިބަސް]] •
[[:fo:|Føroyskt]] •
[[:gu:|ગુજરાતી]] •
[[:ie:|Interlingue]] •
[[:iu:|ᐃᓄᒃᑎᑐᑦ]] •
[[:rw:|Ikinyarwanda]] •
[[:mk:|Македонски]] •
[[:mg:|Malagasy]] •
[[:mt:|Malti]] •
[[:gv:|Gaelg]] •
[[:mr:|मराठी]] •
[[:mn:|Монгол]] •
[[:nah:|Nahuatl]] •
[[:nn:|Nynorsk]] •
[[:om:|Oromoo]] •
[[:pa:|ਪੰਜਾਬੀ]] •
[[:qu:|Runa Simi]] •
[[:sg:|Sängö]] •
[[:gd:|Gàidhlig]] •
[[:sh:|Srpskohrvatski]] •
[[:sd:|سنڌي]] •
[[:si:|සිංහල]] •
[[:su:|Basa Sunda]] •
[[:tl:|Tagalog]] •
[[:tg:|Тоҷикӣ]] •
[[:ti:|ትግር]] •
[[:tpi:|Tok Pisin]] •
[[:ts:|Xitsonga)]] •
[[:ug:|Uyghurche / ئۇيغۇرچە]] •
[[:wa:|Walon)]] •
[[:wo:|Wollof]] •
[[:yi:|ייִדיש]] •
[[:zu:|isiZulu]]
</div>__NOTOC__ __NOEDITSECTION__
<!-- INTERWIKI -->
[[Kategori:Utama| ]]
e42jejid8kd64z2xny86bmgogai5zu7
usaha
0
90825
1350013
1280245
2026-04-15T10:33:04Z
Alfiyah Rizzy Afdiquni
40651
WikiRiksa
1350013
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id}}
{{suara|id|LL-Q9240 (ind)-Alfiyah Rizzy Afdiquni-usaha.wav}}
{{-n-|id}}
# kegiatan dengan mengerahkan tenaga, pikiran, atau badan untuk mencapai suatu maksud; pekerjaan (perbuatan, prakarsa, ikhtiar, daya upaya) untuk mencapai sesuatu: <br />''bermacam-macam usaha telah ditempuhnya untuk mencukupi kebutuhan hidup; usaha meningkatkan mutu pendidikan''
#* {{RQ:Permainan Rakyat Daerah Kalimantan Selatan
|page=2
|text='''Usaha''' tersebut di samping penting artinya bagi pelestarian dan mengembangkan kembali sarana sosialisasi, juga sekaligus penting artinya bagi pembinaan dan pengembangan kebudayaan Nasional secara keseluruhan.
|url=https://id.wikisource.org/wiki/Halaman:Permainan_rakyat_daerah_Kalimantan_Selatan.pdf/10#:~:text=Usaha%20tersebut%20di%20samping%20penting%20artinya%20bagi%20pelestarian%20dan%20mengembangkan%20kembali%20sarana%20sosialisasi%2C%20juga%20sekaligus%20penting%20artinya%20bagi%20pembinaan%20dan%20pengembangan%20kebudayaan%20Nasional%20secara%20keseluruhan.
}}
# kegiatan di bidang perdagangan (dengan maksud mencari untung); perdagangan; perusahaan: <br />''Usaha perkayuan mengalami kemajuan; usahanya di bidang tenun ikat berkembang pesat''
{{-etimologi-}}
* dari bahasa Sanskerta "उत्साह utsāha" ['antusiasme, dorongan, kekuatan, energi, ketekunan, usaha']
{{-rujukan-}}
* Russell Jones, Loan-words in Indonesian and Malay, (Jakarta: Yayasan Obor Indonesia, 2008)
* Sir Monier Monier-Williams, M.A., K.C.I.E (1899) Sanskrit-English Dictionary Etymologically and Philologically Arranged with Special Reference to Cognate Indo-European Languages. Oxford: University Press
* Arthur Anthony Macdonell (1929) A Practical Sanskrit Dictionary With Transliteration, Accentuation, and Etymological Analysis Throughout. London: Oxford University Press
* {{R:KBBI Daring}}
{{-turunan-|id}}
{{-sinonim-}}
{{t-atas|<!--bagian ini seharusnya diisi dengan sebagian dari definisi kata yang bersangkutan-->}}
*{{gor}}: {{t+|gor|bule}}
{{t-bawah}}
{{-bacaan-}}
* {{R:KBBI Daring}}
{{rfv|id|impor dari KBBI}}
13t012jtv8yjxpb5negug0m1f9bcg5z
rempeyek
0
91363
1350006
1291258
2026-04-15T09:59:19Z
Alfiyah Rizzy Afdiquni
40651
WikiRiksa
1350006
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id}}
{{suara|id|LL-Q9240 (ind)-Alfiyah Rizzy Afdiquni-rempeyek.wav}}
{{gamkan|Rempeyek kacang tanah dan ikan bilis 20230421 120821.jpg}}
{{-n-|id}}
# penganan (lauk) terbuat dari tepung dengan kacang (udang, dsb.), digoreng dalam bentuk pipih
#* {{RQ:Mustikarasa
|page=1132
|text=Adonan digoreng tipis² seperti '''rempejek''' hingga kering.
|norm=Adonan digoreng tipis² seperti '''rempeyek''' hingga kering.
|url=https://id.wikisource.org/wiki/Halaman:Mustikarasa.pdf/1140#:~:text=Adonan%20digoreng%20tipis%C2%B2%20seperti%20rempejek%20hingga%20kering.
}}
{{-turunan-|id}}
{{-sinonim-}}
{{t-atas|<!--bagian ini seharusnya diisi dengan sebagian dari definisi kata yang bersangkutan-->}}
{{t-bawah}}
{{-bacaan-}}
* {{R:KBBI Daring}}
{{rfv|id|impor dari KBBI}}
rhywslpg8rafnd4oscf1tdvjg54kbru
parut
0
92340
1349943
1343919
2026-04-15T07:41:49Z
Alfiyah Rizzy Afdiquni
40651
salah kutipan
1349943
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id}}
{{-n-|id}}
# alat untuk mengukur kelapa, keju, wortel, dsb. dibuat dari papan, logam, dsb. berpaku kawat banyak; kukur
# bekas luka pada kulit (karena tergores dsb.); barut
{{-turunan-|id}}
{{-sinonim-}}
{{t-atas|<!--bagian ini seharusnya diisi dengan sebagian dari definisi kata yang bersangkutan-->}}
{{t-bawah}}
{{-bacaan-}}
* {{R:KBBI Daring}}
{{rfv|id|impor dari KBBI}}
=={{bahasa|bjn}}==
{{kepala|bjn}}
{{-n-|bjn}}
# perut
#: ''parut asa kada nyaman''
#: perut terasa tidak enak
{{-lafal-|bjn}}
* {{suara|bjn|LL-Q33151 (bjn)-Roniyronron-parut.wav }}
[[Kategori:WikiTutur - Banjar]]
[[Kategori:WikiTutur Daring 24 Maret 2024]]
=={{bahasa|mqg}}==
{{kepala|mqg}}
:{{suara|mqg|LL-Q12952778 (mqg)-Novi (Nur rahmah24)-Parut.wav}}
{{-v-|mqg}}
# {{label|mqg|Kutai Adat Lawas}} [[memarut]]
[[Kategori:Edit-a-thon WikiKathā Maret 2026]]
=={{bahasa|kvb}}==
{{kepala|kvb}}
:{{pemenggalan|kvb|pa|rut}}
{{-v-|kvb}}
# [[memarut]]
[[Kategori:Edit-a-thon WikiKathā Maret 2026]]
742ozg4bup5b9w9qcgyg77h1e2y356s
peristiwa
0
92946
1349983
1288628
2026-04-15T08:45:57Z
Iripseudocorus
40083
rekam1
1349983
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id}}
: {{pemenggalan|id|pe|ris|ti|wa}} {{suara|id|LL-Q9240 (ind)-Iripseudocorus-peristiwa.wav}}
{{-n-|id}}
# kejadian (hal, perkara, dsb.); kejadian yang luar biasa (menarik perhatian dsb.); yang benar-benar terjadi: <br />''Memperingati peristiwa penting dalam sejarah''
#* {{RQ:20 Mei Pelopor 17 Agustus
|page=14
|text=Disinilah terdjadi '''peristiwa''' jang sangat mengharukan. Anggauta-anggauta B. U. dan Sarikat Islam, menganggap korban-korban jang pertama (sedjak 1908) itu, sebagai pengorbanan mereka sendiri
|norm=Disinilah terjadi '''peristiwa''' yang sangat mengharukan. Anggota-anggota B. U. dan Sarikat Islam, menganggap korban-korban yang pertama (sejak 1908) itu, sebagai pengorbanan mereka sendiri
|url=https://id.wikisource.org/wiki/Halaman%3A20_Mei_Pelopor_17_Agustus_-_Museum_Dewantara_Kirti_Griya.pdf/13#:~:text=Disinilah%20terdjadi%20peristiwa%20jang%20sangat%20mengharukan.%20Anggauta%2Danggauta%20B.%20U.%20dan%20Sarikat%20Islam%2C%20menganggap%20korban%2Dkorban%20jang%20pertama%20(sedjak%201908)%20itu%2C%20sebagai%20pengorbanan%20mereka%20sendiri.
}}
# pada suatu kejadian (kerap kali dipakai untuk memulai cerita): <br />''Sekali peristiwa''
{{-turunan-|id}}
{{-sinonim-}}
{{t-atas}}
{{t-bawah}}
{{-bacaan-}}
* {{R:KBBI Daring}}
{{rfv|id|impor dari KBBI}}
oh8lws2nhgykbhfjk75ic0umt9z5kit
politik
0
93509
1349889
1289624
2026-04-15T02:26:35Z
Iripseudocorus
40083
/* Bahasa Indonesia */Perbaikan url
1349889
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id}}
{{-n-|id}}
# (pengetahuan) mengenai ketatanegaraan atau kenegaraan (seperti tentang sistem pemerintahan, dasar pemerintahan): <br />''Bersekolah di akademi politik''
# segala urusan dan tindakan (kebijakan, siasat, dsb.) mengenai pemerintahan negara atau terhadap negara lain: <br />''Politik dalam dan luar negeri; kedua negara itu bekerja sama dalam bidang politik, ekonomi, dan kebudayaan; partai politik; organisasi politik''
# cara bertindak (dalam menghadapi atau menangani suatu masalah); kebijaksanaan: <br />''Politik dagang; politik bahasa nasional''
#* {{RQ:20 Mei Pelopor 17 Agustus
|page=10
|text=Sesudah kita tahu, bahwa Budi-Utomo sebagai organisasi setjara modern jang pertama, sudah bertjorak '''politik''' (meskipun sifatnja ''cultureel''), lagi pula mendjadi pangkalan pertama dari pada tjalon-tjalon nasionalis-revolusioner, maka tepatlah saat berdirinja B.U. pada hari 20 Mei 1908 itu kini dianggap hari nasional.
|norm=Sesudah kita tahu, bahwa Budi-Utomo sebagai organisasi secara modern yang pertama, sudah bercorak '''politik''' (meskipun sifatnya kultural), lagi pula menjadi pangkalan pertama dari pada calon-calon nasionalis-revolusioner, maka tepatlah saat berdirinya B.U. pada hari 20 Mei 1908 itu kini dianggap hari nasional.
|url=https://id.wikisource.org/wiki/Halaman:20_Mei_Pelopor_17_Agustus_-_Museum_Dewantara_Kirti_Griya.pdf/9#:~:text=Sesudah%20kita%20tahu,dianggap%20%E2%80%9Ehari%20nasional%E2%80%9D%2C
}}
#* {{RQ:Massa Actie
|page= 6
|text= Tjita-tjita '''politik''' bordjoeasi jalah demokrasi dan parlementarisme
|norm= Cita-cita '''politik''' borjuasi ialah demokrasi dan parlementarisme
|url= https://id.wikisource.org/wiki/Halaman:Massa_actie.pdf/10#:~:text=Tjita%2Dtjita%20politik%20bordjoeasi%20jalah%20demokrasi%20dan%20parlementarisme
}}
{{-turunan-|id}}
{{-sinonim-}}
{{t-atas}}
{{t-bawah}}
{{-bacaan-}}
* {{R:KBBI Daring}}
{{rfv|id|impor dari KBBI}}
1epj507hjghnxhkn0pfq5sbd10fj2bc
1349915
1349889
2026-04-15T06:55:00Z
Iripseudocorus
40083
rekam1
1349915
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id}}
: {{pemenggalan|id|po|li|tik}} {{suara|id|LL-Q9240 (ind)-Iripseudocorus-politik.wav}}
{{-n-|id}}
# (pengetahuan) mengenai ketatanegaraan atau kenegaraan (seperti tentang sistem pemerintahan, dasar pemerintahan): <br />''Bersekolah di akademi politik''
# segala urusan dan tindakan (kebijakan, siasat, dsb.) mengenai pemerintahan negara atau terhadap negara lain: <br />''Politik dalam dan luar negeri; kedua negara itu bekerja sama dalam bidang politik, ekonomi, dan kebudayaan; partai politik; organisasi politik''
# cara bertindak (dalam menghadapi atau menangani suatu masalah); kebijaksanaan: <br />''Politik dagang; politik bahasa nasional''
#* {{RQ:20 Mei Pelopor 17 Agustus
|page=10
|text=Sesudah kita tahu, bahwa Budi-Utomo sebagai organisasi setjara modern jang pertama, sudah bertjorak '''politik''' (meskipun sifatnja ''cultureel''), lagi pula mendjadi pangkalan pertama dari pada tjalon-tjalon nasionalis-revolusioner, maka tepatlah saat berdirinja B.U. pada hari 20 Mei 1908 itu kini dianggap hari nasional.
|norm=Sesudah kita tahu, bahwa Budi-Utomo sebagai organisasi secara modern yang pertama, sudah bercorak '''politik''' (meskipun sifatnya kultural), lagi pula menjadi pangkalan pertama dari pada calon-calon nasionalis-revolusioner, maka tepatlah saat berdirinya B.U. pada hari 20 Mei 1908 itu kini dianggap hari nasional.
|url=https://id.wikisource.org/wiki/Halaman:20_Mei_Pelopor_17_Agustus_-_Museum_Dewantara_Kirti_Griya.pdf/9#:~:text=Sesudah%20kita%20tahu,dianggap%20%E2%80%9Ehari%20nasional%E2%80%9D%2C
}}
#* {{RQ:Massa Actie
|page= 6
|text= Tjita-tjita '''politik''' bordjoeasi jalah demokrasi dan parlementarisme
|norm= Cita-cita '''politik''' borjuasi ialah demokrasi dan parlementarisme
|url= https://id.wikisource.org/wiki/Halaman:Massa_actie.pdf/10#:~:text=Tjita%2Dtjita%20politik%20bordjoeasi%20jalah%20demokrasi%20dan%20parlementarisme
}}
{{-turunan-|id}}
{{-sinonim-}}
{{t-atas}}
{{t-bawah}}
{{-bacaan-}}
* {{R:KBBI Daring}}
{{rfv|id|impor dari KBBI}}
jdjn47c0l5fcfawqkm14b1aufe3bhao
porno
0
93571
1349861
1345276
2026-04-14T13:53:34Z
~2026-22964-34
47592
1349861
wikitext
text/x-wiki
Takut
=={{bahasa|id}}==
{{kepala|id}}
{{-n-|id}}
{{gamkan|Erotikk-sjokk.jpg|XXX P icon.svg}}
# {{cak}} {{kependekan}} [[pornografi]]
{{-adj-|id}}
# cabul
{{-turunan-|id}}
{{-terjemahan-}}
{{t-atas}}
{{t-bawah}}
{{-bacaan-}}
* {{R:KBBI Daring}}
{{rfv|id|impor dari KBBI}}
9pid3m2y2ai07t5hpthmzprh79dnnro
pulang
0
94034
1349952
1348608
2026-04-15T08:00:45Z
Iripseudocorus
40083
rekam1
1349952
wikitext
text/x-wiki
[[File:Pulang.webm|thumb|250px|start=1|end=4|Bahasa isyarat kata "Pulang" ]]
=={{bahasa|id}}==
{{kepala|id}}
: {{pemenggalan|id|pu|lang}} {{suara|id|LL-Q9240 (ind)-Iripseudocorus-pulang.wav}}
{{-v-|id}}
# pergi ke rumah atau ke tempat asalnya; kembali (ke); balik (ke): <br />''Bila engkau pulang ke Semarang?; sudah tengah malam ia belum juga pulang''
#* {{RQ:20 Mei Pelopor 17 Agustus
|page=n.d
|text=Setelah dr. Tjipto dibolehkan '''pulang''' kembali pada tahun 1914 (karena sakit), maka dibentuk organisasi baru dengan nama N.I.P. ''(Nasional Indische Partij)'', partij mana pada tahun 1922 dilarang lagi oleh pemerintah kolonial.
|norm=Setelah dr. Cipto dibolehkan '''pulang''' kembali pada tahun 1914 (karena sakit), maka dibentuk organisasi baru dengan nama N.I.P. ''(Nasional Indische Partij)'', partai mana pada tahun 1922 dilarang lagi oleh pemerintah kolonial.
|url=https://id.wikisource.org/wiki/Halaman%3A20_Mei_Pelopor_17_Agustus_-_Museum_Dewantara_Kirti_Griya.pdf/14#:~:text=Setelah%20dr.%20Tjipto%20dibolehkan%20pulang%20kembali%20pada%20tahun%201914%20(karena%20sakit)%2C%20maka%20dibentuk%20organisasi%20baru%20dengan%20nama%20N.I.P.%20(Nasional%20Indische%20Partij)%2C%20partij%20mana%20pada%20tahun%201922%20dilarang%20lagi%20oleh%20pemerintah%20kolonial.
}}
{{-turunan-|id}}
{{-sinonim-}}
* [[pulang kepada istri pertama]], rujuk dengan istrinya yang pertama
{{t-atas}}
{{t-bawah}}
{{-bacaan-}}
* {{R:KBBI Daring}}
{{rfv|id|impor dari KBBI}}
=={{bahasa|bew}}==
{{kepala|bew}}
{{-v-|bew}}
# pulang
#: ''Abis babé nengel, emak jadi sering tilpun ampé malem ke gué punya kakak nyuruh '''pulang'''.''
#: Setelah ayah meninggal, ibu jadi sering menelepon sampai malam ke kakak saya menyuruh '''pulang'''.
{{-lafal-|bew}}
* {{suara|bew|LL-Q33014 (bew)-Pitchrigi-pulang.wav}}
[[Kategori:WikiTutur Kopdar Jakarta 22 Juni 2024]]
[[Kategori:WikiTutur - Betawi]]
lk3k6s9022o8u7tvdst1t7bdghv5chp
organisasi
0
94448
1349953
1279417
2026-04-15T08:03:31Z
Iripseudocorus
40083
rekam1
1349953
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id}}
: {{pemenggalan|id|or|ga|ni|sa|si}} {{suara|id|LL-Q9240 (ind)-Iripseudocorus-organisasi.wav}}
{{-n-|id}}
{{majemuk-indonesia|organ|isasi}}
'''organisasi'''
# kesatuan (susunan dsb.) yang terdiri atas bagian-bagian (orang dsb.) dalam perkumpulan dsb. untuk tujuan tertentu
# kelompok kerja sama antara orang-orang yang diadakan untuk mencapai tujuan bersama
#* {{RQ:20 Mei Pelopor 17 Agustus
|page=n.d
|text=Dalam soal usaha pendidikan jang berdasar kebudajaan bangsa jang paling terkenal ialah Taman Siswa dengan systimnja pendidikan dan '''organisasi''' jang istimewa, didirikan pada 3 Juli 1922 di Jogjakarta oleh Suwardi Suryaningrat.
|norm=Dalam soal usaha pendidikan yang berdasar kebudayaan bangsa yang paling terkenal ialah Taman Siswa dengan sistemnya pendidikan dan '''organisasi''' yang istimewa, didirikan pada 3 Juli 1922 di Yogyakarta oleh Suwardi Suryaningrat.
|url=https://id.wikisource.org/wiki/Halaman%3A20_Mei_Pelopor_17_Agustus_-_Museum_Dewantara_Kirti_Griya.pdf/15#:~:text=Dalam%20soal%20usaha%20pendidikan%20jang%20berdasar%20kebudajaan%20bangsa%20jang%20paling%20terkenal%20ialah%20Taman%20Siswa%20dengan%20systimnja%20pendidikan%20dan%20organisasi%20jang%20istimewa%2C%20didirikan%20pada%203%20Juli%201922%20di%20Jogjakarta%20oleh%20Suwardi%20Suryaningrat%2C%20jang%20sedjak%208%20Mei%201928%20bernama%20Ki%20Hadjar%20Dewantoro.
}}
{{-turunan-|id}}
{{-sinonim-}}
{{t-atas}}
{{t-bawah}}
{{-bacaan-}}
* {{R:KBBI Daring}}
{{rfv|id|impor dari KBBI}}
cha68kzknhqzdfnr5ua4hfnthn3566h
1349955
1349953
2026-04-15T08:05:28Z
Iripseudocorus
40083
1349955
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id}}
: {{pemenggalan|id|or|ga|ni|sa|si}} {{suara|id|LL-Q9240 (ind)-Iripseudocorus-organisasi.wav}}
{{-n-|id}}
{{majemuk-indonesia|organ|isasi}}
'''organisasi'''
# kesatuan (susunan dsb.) yang terdiri atas bagian-bagian (orang dsb.) dalam perkumpulan dsb. untuk tujuan tertentu
# kelompok kerja sama antara orang-orang yang diadakan untuk mencapai tujuan bersama
#* {{RQ:20 Mei Pelopor 17 Agustus
|page=16
|text=Dalam soal usaha pendidikan jang berdasar kebudajaan bangsa jang paling terkenal ialah Taman Siswa dengan systimnja pendidikan dan '''organisasi''' jang istimewa, didirikan pada 3 Juli 1922 di Jogjakarta oleh Suwardi Suryaningrat.
|norm=Dalam soal usaha pendidikan yang berdasar kebudayaan bangsa yang paling terkenal ialah Taman Siswa dengan sistemnya pendidikan dan '''organisasi''' yang istimewa, didirikan pada 3 Juli 1922 di Yogyakarta oleh Suwardi Suryaningrat.
|url=https://id.wikisource.org/wiki/Halaman%3A20_Mei_Pelopor_17_Agustus_-_Museum_Dewantara_Kirti_Griya.pdf/15#:~:text=Dalam%20soal%20usaha%20pendidikan%20jang%20berdasar%20kebudajaan%20bangsa%20jang%20paling%20terkenal%20ialah%20Taman%20Siswa%20dengan%20systimnja%20pendidikan%20dan%20organisasi%20jang%20istimewa%2C%20didirikan%20pada%203%20Juli%201922%20di%20Jogjakarta%20oleh%20Suwardi%20Suryaningrat%2C%20jang%20sedjak%208%20Mei%201928%20bernama%20Ki%20Hadjar%20Dewantoro.
}}
{{-turunan-|id}}
{{-sinonim-}}
{{t-atas}}
{{t-bawah}}
{{-bacaan-}}
* {{R:KBBI Daring}}
{{rfv|id|impor dari KBBI}}
9r6by2gjnnvrdrg958m4p39gsvlqr9o
nangka
0
94630
1350008
1284080
2026-04-15T10:03:49Z
Alfiyah Rizzy Afdiquni
40651
WikiRiksa
1350008
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id}}
{{suara|id|LL-Q9240 (ind)-Alfiyah Rizzy Afdiquni-nangka.wav}}
{{-n-|id}}
# pohon yang mencapai tinggi 10-15 m, kayunya berwarna kuning dan berkulit hitam, daunnya kaku agak bundar sebesar tapak tangan orang dewasa dan berwarna hijau tua, kulit buahnya penuh duri yang tidak tajam dan bergetah, buah yang muda untuk sayur, sedangkan yang masak dimakan sebagai buah; "[[:species:Artocarpus heterophyllus|Artocarpus heterophyllus]]"
# buah nangka
#* {{RQ:Mustikarasa
|page=1134
|text=Adonan ini boleh djuga diberi '''nangka''' jang di-iris² ketjil².
|norm=Adonan ini boleh juga diberi '''nangka''' yang diiris kecil-kecil.
|url=https://id.wikisource.org/wiki/Halaman:Mustikarasa.pdf/1142#:~:text=Adonan%20ini%20boleh%20djuga%20diberi%20nangka%20jang%20di%2Diris%C2%B2%20ketjil%C2%B2.
}}
# daging buah nangka, berbiji, kalau masak berwarna kuning tua
{{-turunan-|id}}
{{-sinonim-}}
{{t-atas}}
*{{id}}: {{t+|id|nangka}}
*{{gor}}: {{t+|gor|langge}}
{{t-bawah}}
{{-bacaan-}}
* {{R:KBBI Daring}}
{{rfv|id|impor dari KBBI}}
[[Kategori:id:Buah]]
=={{bahasa|xmm}}==
{{kepala|xmm}}
: {{suara|xmm|LL-Q9240 (ind)-Samudra Silent-nangka.wav}}
{{-n-|xmm}}
# nangka
[[Category:WikiMaknyus Manado]]
[[Category:WikiMaknyus]]
qlm2xeqwhljy8ugwclmo3i9id1dh09a
nasionalis
0
94672
1349947
1279413
2026-04-15T07:53:42Z
Iripseudocorus
40083
rekam1
1349947
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id}}
: {{pemenggalan|id|na|si|o|na|lis}} {{suara|id|LL-Q9240 (ind)-Iripseudocorus-nasionalis.wav}}
{{-n-|id}}
{{majemuk-indonesia||is|nasional}}
# pencinta nusa dan bangsa sendiri
# orang yang memperjuangkan kepentingan bangsanya; patriot: <br />''Ia adalah seorang pejuang nasionalis sejati''
#* {{RQ:20 Mei Pelopor 17 Agustus
|page=13
|text=Marhum Umar Said Tjokroaminoto jang berdjiwa '''nasionalis'''-islam-revolusioner, sesudah bertemu dengan Hadji Samanhudi (jang waktu itu mempunjai perserikatan dagang, jang bernama _ „Sarikat Dagang Islam”, dan mempunjai tjorak Islam dan revolusioner djuga) dapat membentuk badan baru, jaitu „sarikat Islam”
|norm=Marhum Umar Said Cokroaminoto yang berjiwa '''nasionalis'''-islam-revolusioner, sesudah bertemu dengan Haji Samanhudi (yang waktu itu mempunyai perserikatan dagang, yang bernama _ „Sarikat Dagang Islam”, dan mempunjai corak Islam dan revolusioner djuga) dapat membentuk badan baru, yaitu „sarikat Islam”
|url=https://id.wikisource.org/wiki/Halaman:20_Mei_Pelopor_17_Agustus_-_Museum_Dewantara_Kirti_Griya.pdf/12#:~:text=Marhum%20Umar%20Said,jaitu%20%E2%80%9Esarikat%20Islam%E2%80%9D
}}
{{-etimologi-}}
*''[[nasional]]'' + ''[[-is]]''
{{-turunan-|id}}
{{-sinonim-}}
{{t-atas}}
{{t-bawah}}
{{-bacaan-}}
* {{R:KBBI Daring}}
{{rfv|id|impor dari KBBI}}
sbs4s5d73q0vhxcpfeuxypxl2qct5ok
mangkuk
0
95463
1349898
1331774
2026-04-15T06:35:02Z
Alfiyah Rizzy Afdiquni
40651
WikiRiksa
1349898
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id}}
{{suara|id|LL-Q9240 (ind)-Alfiyah Rizzy Afdiquni-mangkuk.wav}}
{{-n-|id}}
# cangkir; cawan
# tempat untuk makanan yang berkuah, tidak bertelinga, cekung, bundar, bagian permukaannya lebih luas daripada bagian alasnya, terbuat dari porselen atau bahan lain; pinggan
#* {{RQ:Mustikarasa
|page=476
|text=Dihidangkan panas² dalam '''mangkuk''' dan dialas dengan piring tjeper ketjil, disebelah kanannja diletakkan sendok teh.
|norm=Dihidangkan panas-panas dalam '''mangkuk''' dan dialas dengan piring ceper kecil, di sebelah kanannya diletakkan sendok teh.
|url=https://id.wikisource.org/wiki/Halaman:Mustikarasa.pdf/1151#:~:text=Dihidangkan%20panas%C2%B2%20dalam%20mangkuk%20dan%20dialas%20dengan%20piring%20tjeper%20ketjil%2C%20disebelah%20kanannja%20diletakkan%20sendok%20teh.
}}
# {{Tek}} komponen alat gali muat untuk menggali atau wadah material hasil galian yang akan dipindahkan untuk dimuat pada alat angkut atau tempat lain
{{-turunan-|id}}
{{-sinonim-}}
{{t-atas}}
{{t-bawah}}
{{-bacaan-}}
* {{R:KBBI Daring}}
{{rfv|id|impor dari KBBI}}
=={{bahasa|kvb}}==
{{kepala|kvb}}
: {{pemenggalan|kvb|mang|kuk}}
{{-v-|kvb}}
# [[cawan]]
[[Kategori:Edit-a-thon WikiKathā Maret 2026]]
bx3309q6dnmoilicf2boihok50hpl7m
gelisah
0
97102
1349975
1325634
2026-04-15T08:36:46Z
Iripseudocorus
40083
rekam1
1349975
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id}}
: {{pemenggalan|id|ge|li|sah}} {{suara|id|LL-Q9240 (ind)-Iripseudocorus-gelisah.wav}}
{{-a-|id}}
# tidak tenteram, selalu merasa khawatir (tentang suasana hati); tidak tenang (tentang tidur); tidak sabar lagi dalam menanti dsb.; cemas: ''Semua penduduk gelisah mendengar desas-desus bahwa rumah mereka akan digusur''
#* {{RQ:20 Mei Pelopor 17 Agustus
|page=13
|text=Pemerintah kolonial sangat '''gelisah'''.Disamping penjelundupan atau „infiltrasi” biasa, pemerintah kolonial mengirimkan dr. A. Rinkes-nja (pembantu adviseur voor inlandsche zaken) kedalam lingkungan S.I. (Sarikat Islam).
|norm=Pemerintah kolonial sangat '''gelisah'''. Di samping penyelundupan atau „infiltrasi” biasa, pemerintah kolonial mengirimkan dr. A. Rinkes-nja (pembantu adviseur voor inlandsche zaken) ke dalam lingkungan S.I. (Sarikat Islam).
|url=https://id.wikisource.org/wiki/20_Mei_Pelopor_17_Agustus#:~:text=Pemerintah%20kolonial%20sangat%20gelisah.%20Disamping%20penjelundupan%20atau%20%E2%80%9Einfiltrasi%E2%80%9D%20biasa%2C%20pemerintah%20kolonial%20mengirimkan%20dr.%20A.%20Rinkes%2Dnja%20(pembantu%20adviseur%20voor%20inlandsche%20zaken)%20kedalam%20lingkungan%20S.I.%20(Sarikat%20Islam)}}
{{-turunan-|id}}
{{-sinonim-}}
* [[susah hati]]
{{-terjemahan-}}
{{t-atas}}
{{t-bawah}}
{{-bacaan-}}
* {{R:KBBI Daring}}
{{rfv|id|impor dari KBBI}}
=={{bahasa|mg}}==
{{kepala|mg}}
{{-n-|mg}}
# [[pisau]]
40fiic1c49240c36ooetzvgvo9un90z
lokasi
0
101314
1350010
1280261
2026-04-15T10:25:25Z
Alfiyah Rizzy Afdiquni
40651
WikiRiksa
1350010
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id}}
{{suara|id|LL-Q9240 (ind)-Alfiyah Rizzy Afdiquni-lokasi.wav}}
{{-n-|id}}
{{majemuk-indonesia||si}}
# letak: <br />''Lokasi kantor itu''
# tempat: <br />''Pembangunan kampus sedapat mungkin diarahkan kepada pemusatan semua sarana di satu lokasi''
#* {{RQ:Permainan Rakyat Daerah Kalimantan Selatan
|page=3
|text=Penjajagan pendahuluan ke '''lokasi''' penelitian dan inventarisasi nama - nama informan
|norm=Penjagaan pendahuluan ke lokasi penelitian dan inventarisasi nama - nama informan
|url=https://id.wikisource.org/wiki/Halaman:Permainan_rakyat_daerah_Kalimantan_Selatan.pdf/11#:~:text=Penjajagan%20pendahuluan%20ke%20lokasi%20penelitian%20dan%20inventarisasi%20nama%20%2D%20nama%20informan
}}
{{-turunan-|id}}
{{-terjemahan-}}
{{t-atas}}
{{t-bawah}}
{{-bacaan-}}
* {{R:KBBI Daring}}
{{rfv|id|impor dari KBBI}}
kvpsa5ala18eehmv2slnsmsiazjrqf2
kelak
0
102350
1349979
1279792
2026-04-15T08:40:06Z
Iripseudocorus
40083
rekam1
1349979
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id}}
: {{pemenggalan|id|ke|lak}} {{suara|id|LL-Q9240 (ind)-Iripseudocorus-kelak.wav}}
{{-n-|id}}
# yang akan datang; kemudian hari: <br />''Diharapkan agar anak ini kelak menjadi orang yang berguna bagi nusa dan bangsa''
#* {{RQ:20 Mei Pelopor 17 Agustus
|page=n.d
|text='''Kelak''' S.I. hanja dibolehkan berdiri setempat-setempat (lokal), jang tidak boleh saling berhubungan setjara ''organisatories''.
|norm='''Kelak''' S.I. hanya dibolehkan berdiri setempat-setempat (lokal), yang tidak boleh saling berhubungan secara ''organisatories''.
|url=https://id.wikisource.org/wiki/Halaman%3A20_Mei_Pelopor_17_Agustus_-_Museum_Dewantara_Kirti_Griya.pdf/12#:~:text=Kelak%20S.I.%20hanja%20dibolehkan%20berdiri%20setempat%2Dsetempat%20(lokal)%2C%20jang%20tidak%20boleh%20saling%20berhubungan%20setjara%20%E2%80%9Eorganisatories%E2%80%9D.}}
# jenis tekukur; ''[[:species:Macrophygia assimilis|Macrophygia assimilis]]''
{{-n-|id}}
# {{lihat|kelah}}
{{-turunan-|id}}
{{-terjemahan-}}
{{t-atas}}
{{t-bawah}}
{{-bacaan-}}
* {{R:KBBI Daring}}
{{rfv|id|impor dari KBBI}}
[[Kategori:id:Burung]]
=={{bahasa|bke}}==
{{kepala|bke}}
{{-n-|bke}}
# waktu yang tidak lama dari sekarang; nanti
{{-adv-|bke}}
# akan
=={{bahasa|min}}==
{{kepala|min}}
{{-adj-|min}}
# {{tapan}} [[nanti]]
#: ''kelak aban bling sapatung?''
#:: nanti kamu beli sepatu?
cg5p7ghhj70yv2ok9q8yuysueredybj
kolonial
0
103621
1349987
1279810
2026-04-15T08:50:53Z
Iripseudocorus
40083
rekam1
1349987
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id}}
: {{pemenggalan|id|ko|lo|ni|al}} {{suara|id|LL-Q9240 (ind)-Iripseudocorus-kolonial.wav}}
{{-a-|id}}
{{majemuk-indonesia|koloni|al}}
# berhubungan dengan sifat jajahan: <br>''Pemerintah kolonial mendirikan benteng dan menguasai jalur pelayaran di kepulauan itu''
#* {{RQ:20 Mei Pelopor 17 Agustus
|page=n.d
|text=Jang mendjadi sebab pemerintah '''kolonial''' menggunakan ''exorbitant-recht''-nja ialah karena Suwardi Suryaningrat menulis brosurnja ''Als ik Nederlander was!'' untuk memprotes akan diadakannja perajaan kemerdekaan ''Nederland'' 100 tahun.
|norm=Yang menjadi sebab pemerintah '''kolonial''' menggunakan ''exorbitant-recht''-nja ialah karena Suwardi Suryaningrat menulis brosurnya ''Als ik Nederlander was!'' untuk memprotes akan diadakannya perayaan kemerdekaan ''Nederland'' 100 tahun.
|url=https://id.wikisource.org/wiki/Halaman%3A20_Mei_Pelopor_17_Agustus_-_Museum_Dewantara_Kirti_Griya.pdf/13#:~:text=Jang%20mendjadi%20sebab%20pemerintah%20kolonial%20menggunakan%20%E2%80%9Eexorbitant%2Drecht%E2%80%9D%2Dnja%20ialah%20karena%20Suwardi%20Suryaningrat%20menulis%20brosurnja%20%E2%80%9EAls%20ik%20Nederlander%20was!%E2%80%9D%20untuk%20memprotes%20akan%20diadakannja%20perajaan%20kemerdekaan%20Nederland%20100%20tahun}}
{{-turunan-|id}}
{{-terjemahan-}}
{{t-atas}}
{{t-bawah}}
{{-bacaan-}}
* {{R:KBBI Daring}}
{{rfv|id|impor dari KBBI}}
sxog328068xa1bff3d554t82dtedokb
1349988
1349987
2026-04-15T08:51:36Z
Iripseudocorus
40083
1349988
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id}}
: {{pemenggalan|id|ko|lo|ni|al}} {{suara|id|LL-Q9240 (ind)-Iripseudocorus-kolonial.wav}}
{{-a-|id}}
{{majemuk-indonesia|koloni|al}}
# berhubungan dengan sifat jajahan: <br>''Pemerintah kolonial mendirikan benteng dan menguasai jalur pelayaran di kepulauan itu''
#* {{RQ:20 Mei Pelopor 17 Agustus
|page=14
|text=Jang mendjadi sebab pemerintah '''kolonial''' menggunakan ''exorbitant-recht''-nja ialah karena Suwardi Suryaningrat menulis brosurnja ''Als ik Nederlander was!'' untuk memprotes akan diadakannja perajaan kemerdekaan ''Nederland'' 100 tahun.
|norm=Yang menjadi sebab pemerintah '''kolonial''' menggunakan ''exorbitant-recht''-nja ialah karena Suwardi Suryaningrat menulis brosurnya ''Als ik Nederlander was!'' untuk memprotes akan diadakannya perayaan kemerdekaan ''Nederland'' 100 tahun.
|url=https://id.wikisource.org/wiki/Halaman%3A20_Mei_Pelopor_17_Agustus_-_Museum_Dewantara_Kirti_Griya.pdf/13#:~:text=Jang%20mendjadi%20sebab%20pemerintah%20kolonial%20menggunakan%20%E2%80%9Eexorbitant%2Drecht%E2%80%9D%2Dnja%20ialah%20karena%20Suwardi%20Suryaningrat%20menulis%20brosurnja%20%E2%80%9EAls%20ik%20Nederlander%20was!%E2%80%9D%20untuk%20memprotes%20akan%20diadakannja%20perajaan%20kemerdekaan%20Nederland%20100%20tahun}}
{{-turunan-|id}}
{{-terjemahan-}}
{{t-atas}}
{{t-bawah}}
{{-bacaan-}}
* {{R:KBBI Daring}}
{{rfv|id|impor dari KBBI}}
q0x5bshiceon0axowlij0e3kbc50zah
kongres
0
103801
1349890
1279288
2026-04-15T02:31:37Z
Iripseudocorus
40083
/* Bahasa Indonesia */Perbaikan url
1349890
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id}}
{{-n-|id}}
# [[pertemuan]] [[resmi]] para [[wakil]] ([[perkumpulan]], [[negara]], dan lain sebagainya) untuk [[membahas]] berbagai [[masalah]] dan mengambil [[keputusan]]
#: {{syn|id|rapat besar|muktamar}}
#* {{RQ:20 Mei Pelopor 17 Agustus
|page=8
|text='''Kongres''' para pemimpin, jang diadakan di Jogjakarta pada bulan-liburan Puasa tahun 1908, jang waktu itu disebut ''Eerste Jong-Javanen-congres'', sangat menarik perhatian umum
|norm='''Kongres''' para pemimpin, yang diadakan di Yogyakarta pada bulan-liburan Puasa tahun 1908, yang waktu itu disebut ''Eerste Jong-Javanen-congres'', sangat menarik perhatian umum.
|url= https://id.wikisource.org/wiki/Halaman:20_Mei_Pelopor_17_Agustus_-_Museum_Dewantara_Kirti_Griya.pdf/7#:~:text=Kongres%20para%20pemimpin%2C%20jang%20diadakan%20di%20Jogjakarta%20pada%20bulan%2Dliburan%20Puasa%20tahun%201908%2C%20jang%20waktu%20itu%20disebut%20%E2%80%9EEerste%20Jong%2DJavanen%2Dcongres%E2%80%9D%2C%20sangat%20menarik%20perhatian%20umum
}}
# {{label|id|politik}} [[dewan]] [[legislatif]] [[Amerika Serikat]] yang terdiri dari dua [[kamar]] [[parlemen]], yakni [[senat]] dan [[dewan perwakilan rakyat]]
mnlw84duha2odj84tdd4mr8ccfzrijo
1349916
1349890
2026-04-15T06:55:46Z
Iripseudocorus
40083
rekam1
1349916
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id}}
: {{pemenggalan|id|kong|res}} {{suara|id|LL-Q9240 (ind)-Iripseudocorus-kongres.wav}}
{{-n-|id}}
# [[pertemuan]] [[resmi]] para [[wakil]] ([[perkumpulan]], [[negara]], dan lain sebagainya) untuk [[membahas]] berbagai [[masalah]] dan mengambil [[keputusan]]
#: {{syn|id|rapat besar|muktamar}}
#* {{RQ:20 Mei Pelopor 17 Agustus
|page=8
|text='''Kongres''' para pemimpin, jang diadakan di Jogjakarta pada bulan-liburan Puasa tahun 1908, jang waktu itu disebut ''Eerste Jong-Javanen-congres'', sangat menarik perhatian umum
|norm='''Kongres''' para pemimpin, yang diadakan di Yogyakarta pada bulan-liburan Puasa tahun 1908, yang waktu itu disebut ''Eerste Jong-Javanen-congres'', sangat menarik perhatian umum.
|url= https://id.wikisource.org/wiki/Halaman:20_Mei_Pelopor_17_Agustus_-_Museum_Dewantara_Kirti_Griya.pdf/7#:~:text=Kongres%20para%20pemimpin%2C%20jang%20diadakan%20di%20Jogjakarta%20pada%20bulan%2Dliburan%20Puasa%20tahun%201908%2C%20jang%20waktu%20itu%20disebut%20%E2%80%9EEerste%20Jong%2DJavanen%2Dcongres%E2%80%9D%2C%20sangat%20menarik%20perhatian%20umum
}}
# {{label|id|politik}} [[dewan]] [[legislatif]] [[Amerika Serikat]] yang terdiri dari dua [[kamar]] [[parlemen]], yakni [[senat]] dan [[dewan perwakilan rakyat]]
ae1i8iync74guos7xqhcbabjbqtm70n
kukus
0
104358
1349949
1279759
2026-04-15T07:56:38Z
Alfiyah Rizzy Afdiquni
40651
salah kutipan
1349949
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id}}
{{-n-|id}}
# uap (asap air panas) di sekitar dan di atas titik didih air; air dalam bentuk uap
{{-turunan-|id}}
{{-terjemahan-}}
{{t-atas}}
{{t-bawah}}
{{-bacaan-}}
* {{R:KBBI Daring}}
{{rfv|id|impor dari KBBI}}
gcbqgt3jrh2y6q7966meu3xo5flkmo6
kungkang
0
104428
1349959
1330699
2026-04-15T08:07:57Z
DelintBot
47600
Removing [[mw:Help:Lint errors/bogus-image-options|bogus image options]]
1349959
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id}}
: {{pemenggalan|id|kung|kang}} {{AFI|id|/ˈkuŋ.kaŋ/}}
[[File:Slow Loris 2006.jpg|Slow_Loris_2006|thumb|250px]]
{{-n-|id}}
# primata berukuran sedang, tidak berekor, berwarna abu-abu keputihan dan kuning kecokelatan, matanya bulat dan besar, aktif di malam hari; {{Species|Nycticebus}} <span style="color:green">''spp''.</span>
{{-etimologi-}}
* Dari [[Jawa Kuno]] '''''kukaṅ''''' 'kungkang, Tarsius']<ref>Zoetmulder, P.J. Robson, S.O. 2006 ''Kamus Jawa Kuna-Indonesia. (Darusuprapta dan Sumarti Suprayitna, Penerjemah)''. Jakarta: Gramedia Pustaka Utama</ref>
{{-rujukan-}}
<references/>
{{-n-|id}}
# katak besar
{{-etimologi-}}
* dari [[Jawa Kuno]] '''''kuṅkaṅ''''' 'jenis kodok besar yang khas'<ref>Zoetmulder, P.J. Robson, S.O. 2006 ''Kamus Jawa Kuna-Indonesia. (Darusuprapta dan Sumarti Suprayitna, Penerjemah)''. Jakarta: Gramedia Pustaka Utama</ref>
{{-rujukan-}}
<references/>
{{-turunan-|id}}
{{-terjemahan-}}
{{t-atas}}
{{t-bawah}}
{{-bacaan-}}
* {{R:KBBI Daring}}
=={{bahasa|jv}}==
{{kepala|jv}}
{{-n-|jv}}
# kukang (kungkang)
# kungkang (katak besar)
qdoo73xdvmf89qes65er09zabqxh143
jurnalistik
0
105157
1349972
1285857
2026-04-15T08:21:36Z
Iripseudocorus
40083
rekam1
1349972
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id}}
: {{pemenggalan|id|jur|na|lis|tik}} {{suara|id|LL-Q9240 (ind)-Iripseudocorus-jurnalistik.wav}}
{{-n-|id}}
# yang menyangkut kewartawanan dan persuratkabaran: <br />''Hal itu melanggar kode etik jurnalistik''
#* {{RQ:20 Mei Pelopor 17 Agustus
|page=
|text= Jaitu marhum R. M. Djokomono, kemudian bernama Tirtoadisurjo, bekas murid S.t.o.v.i.a, jang waktu itu bekerdja sebagai redacteur harian „Bintang Betawi” (jang kemudian bernama „Berita Betawi”), lalu memimpin redaksi „Medan Prijaji” dan „Suluh Pengadilan”. Beliau boleh disebut „pelopor” dalam lapangan '''journalistik'''.
|norm=Yaitu marhum R. M. Djokomono, kemudian bernama Tirtoadisurjo, bekas murid S.t.o.v.i.a, yang waktu itu bekerja sebagai redaktur harian „Bintang Betawi” (yang kemudian bernama „Berita Betawi”), lalu memimpin redaksi „Medan Priyaji” dan „Suluh Pengadilan”. Beliau boleh disebut „pelopor” dalam lapangan '''jurnalistik'''.
|url=https://id.wikisource.org/wiki/Halaman%3A20_Mei_Pelopor_17_Agustus_-_Museum_Dewantara_Kirti_Griya.pdf/18#:~:text=Jaitu%20marhum%20R,dalam%20lapangan%20journalistik.
}}
{{-turunan-|id}}
{{-terjemahan-}}
{{t-atas}}
{{t-bawah}}
{{-bacaan-}}
* {{R:KBBI Daring}}
{{rfv|id|impor dari KBBI}}
7lrs18m0e664h50jqg9e9qflxktlb47
informasi
0
105511
1350016
1280242
2026-04-15T10:37:21Z
Alfiyah Rizzy Afdiquni
40651
WikiRiksa
1350016
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id}}
{{suara|id|LL-Q9240 (ind)-Alfiyah Rizzy Afdiquni-informasi.wav}}
{{-n-|id}}
# [[pengetahuan|Pengetahuan]] tentang sesuatu; [[data]] yang telah [[diolah]] sehingga memberikan [[makna]]:
#: ''Ada dua '''informasi''' penting yang didapat dalam pertemuan ini.''
#: ''Dengan adanya '''informasi''' mengenai keadaan pasar, kami bisa menyusun strategi pemasaran yang efektif.''
#* {{RQ:Permainan Rakyat Daerah Kalimantan Selatan
|page=2
|text=Usaha pewarisan yang dapat ditempuh melalui pewarisan secara langsung atau pun dengan jalan usaha penyediaan data '''informasi''' bagi generasi berikutnya.
|url=https://id.wikisource.org/wiki/Halaman:Permainan_rakyat_daerah_Kalimantan_Selatan.pdf/10#:~:text=Usaha%20pewarisan%20yang%20dapat%20ditempuh%20melalui%20pewarisan%20secara%20langsung%20atau%20pun%20dengan%20jalan%20usaha%20penyediaan%20data%20informasi%20bagi%20generasi%20berikutnya.
}}
# [[penerangan|Penerangan]]; [[keterangan]]; [[penjelasan]] ([[petunjuk]] dsb.):
#: ''Untuk '''informasi''' lebih lanjut, silakan hubungi nomor telepon [[humas]] kami.''
# [[pemberitahuan|Pemberitahuan]]; [[kabar]] atau [[berita]] tentang sesuatu:
#: ''Kami belum mendapat '''informasi''' apa pun mengenai kejadian tersebut.''
# {{Ling}} Keseluruhan [[makna]] yang [[menunjang]] [[amanat]] yang terlihat dalam [[bagian-bagian]] amanat itu.
{{-etimologi-}}
* Dari {{en}} [[information]]
{{-turunan-|id}}
{{-terjemahan-}}
{{t-atas|pengetahuan}}
* {{nl}}: {{t+|nl|informatie|f}}
* {{en}}: {{t+|en|information}}
* {{ja}}: {{t+|ja|情報|tr=じょうほう, jōhō}}
* {{ko}}: {{t+|ko|정보}} ({{t+|ko|情報|sc=Hani}})
* {{ms}}: {{t+|ms|maklumat}}
* {{fr}}:: {{t+|fr|informations|f-p}}, {{t|fr|renseignement|m}}
* {{vi}}: {{t+|vi|thông tin}}, {{t|vi|tin báo}}
{{t-bawah}}
{{t-atas|penerangan}}
* {{nl}}: {{t+|nl|informatie|f}}
* {{en}}: {{t+|en|information}}
* {{ja}}: {{t+|ja|案内|tr=あんない, an'nai}}
* {{ko}}: {{t+|ko|안내}} ({{t+|ko|案內|sc=Hani}})
* {{ms}}: {{t|ms|maklumat}}, {{t|ms|penerangan}}
* {{fr}}: {{t+|fr|informations|f-p}}
{{t-bawah}}
{{t-atas|kabar}}
* {{nl}}: {{t+|nl|informatie}}
* {{en}}: {{t+|en|information}}
* {{ms}}: {{t|ms|maklumat}}
* {{fr}}: {{t+|fr|renseignement|m}}, {{t+|fr|information|f}}
{{t-bawah}}
{{t-atas|keseluruhan makna amanat}}
* {{en}}: {{t|en|information}}
* {{fr}}: {{t|fr|information|f}}
{{t-bawah}}
{{-bacaan-}}
* {{R:KBBI Daring}}
{{rfv|id|impor dari KBBI}}
ffljp0m3jaj7d5ckn85jd4mfwrtpbn3
halaman
0
105978
1349836
1334854
2026-04-14T12:48:22Z
Deepturquoise
26142
1349836
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id}}
{{-n-|id}}
# pekarangan rumah (sekolah dsb.); tanah di sekitar rumah (sekolah dsb.): <br />''Halaman rumahnya ditanami cemara''
#* {{RQ:Perahu Tulis
|page= 174
|text= Sekian lama ku menjalani aktivitasku di bangunan yang memiliki '''halaman''' yang sejuk.
|url= https://id.wikisource.org/wiki/Halaman:Antologi_Cerpen_Remaja_Sumatera_Barat_Perahu_Tulis.pdf/186#:~:text=Sekian%20lama%20ku%20menjalani%20aktivitasku%20di%20bangunan%20yang%20memiliki%20halaman%20yang%20sejuk.
}}
# muka dari lembaran buku (majalah, surat kabar, dsb.); [[pagina]]: <br />''Lihat gambar pada halaman 127''
# {{Komp}} [[laman]], [[halaman web]]
{{-turunan-|id}}
{{-terjemahan-}}
{{t-atas|pekarangan}}
*{{bjn}}: {{t+|bjn|tungkaran}}
*{{en}}: [[yard]]
{{t-bawah}}
{{t-atas|lembaran}}
*{{en}}: [[page]]
{{t-bawah}}
{{-bacaan-}}
* {{R:KBBI Daring}}
{{rfv|id|impor dari KBBI}}
[[Kategori:id:Kata berimbuhan palsu]]
lzoljcb4aw70lk1o9o0upk90982j1hw
ulang tahun
0
106302
1349933
1297628
2026-04-15T07:15:58Z
Iripseudocorus
40083
rekam1
1349933
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id}}
: {{pemenggalan|id|u|lang|ta|hun}} {{suara|id|LL-Q9240 (ind)-Iripseudocorus-ulang tahun.wav}}
{{-n-|id}}
# hari lahir: ''ia sedang memperingati ulang tahun anaknya; pesta ulang tahun;''
# hari ketika suatu peristiwa penting terjadi: ''upacara ulang tahun Kemerdekaan Republik Indonesia dilaksanakan di seluruh pelosok tanah air'';
#* {{RQ:20 Mei Pelopor 17 Agustus
|page=n.d
|text=Malah pada tahun 1918, '''ulang tahun''' B.U. jang ke-10, oleh ''studenten'' kita jang ada di ''Nederland'' dirajakan sebagai hari nasional djuga.
|norm=Malah pada tahun 1918, '''ulang tahun''' B.U. yang ke-10, oleh ''studenten'' kita yang ada di ''Nederland'' dirayakan sebagai hari nasional juga.
|url=https://id.wikisource.org/wiki/Halaman%3A20_Mei_Pelopor_17_Agustus_-_Museum_Dewantara_Kirti_Griya.pdf/9#:~:text=Malah%20pada%20tahun%201918%2C%20ulang%2Dtahun%20B.U.%20jang%20ke%2D10%2C%20oleh%20studenten%20kita%20jang%20ada%20di%20Nederland%20dirajakan%20sebagai%20%E2%80%9Ehari%20nasional%E2%80%9D%20djuga.
}}
{{-bacaan-}}
* {{R:KBBI Daring}}
{{rfv|id|impor dari KBBI}}
mr1tztgs69kry1c454e4tkxwrn9e0f5
orang tua
0
106348
1350014
1280244
2026-04-15T10:35:18Z
Alfiyah Rizzy Afdiquni
40651
WikiRiksa
1350014
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id}}
{{suara|id|LL-Q9240 (ind)-Alfiyah Rizzy Afdiquni-orang tua.wav}}
{{-n-|id}}
# [[ayah]] dan [[ibu]]
# [[orang]] yang sudah [[tua]]
# orang yang dianggap tua, orang yang [[dihormati]], [[tetua]]
#* {{RQ:Permainan Rakyat Daerah Kalimantan Selatan
|page=2
|text=Salah satu sumber data yang dapat diperoleh adalah dari informasi orang '''orang tua''' yang dulu pernah ikut atau banyak tahu tentang permainan tersebut.
|url=https://id.wikisource.org/wiki/Halaman:Permainan_rakyat_daerah_Kalimantan_Selatan.pdf/10#:~:text=Salah%20satu%20sumber%20data%20yang%20dapat%20diperoleh%20adalah%20dari%20informasi%20orang%20orang%20tua%20yang%20dulu%20pernah%20ikut%20atau%20banyak%20tahu%20tentang%20permainan%20tersebut.
}}
2ox16mzix7ievivde0bdi2tcvyk8mny
getuk
0
107435
1349982
1279725
2026-04-15T08:45:46Z
Alfiyah Rizzy Afdiquni
40651
WikiRiksa
1349982
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id}}
{{suara|id|LL-Q9240 (ind)-Alfiyah Rizzy Afdiquni-getuk.wav}}
{{-n-|id}}
# penganan dibuat dari ubi dsb. yang direbus, kemudian dicampur gula dan kelapa (ditumbuk bersama)
#* {{RQ:Mustikarasa
|page=1128
|text='''Getuk''' dikepali londjong, didalamnja diisi gula pasir ± ½ sendok makan atau irisan bentuk persegi jang didalamnja diberi gula pasir.
|norm='''Getuk''' dikepali lonjong, di dalamnya diisi gula pasir ± ½ sendok makan atau irisan bentuk persegi yang di dalamnja diberi gula pasir.
|url=https://id.wikisource.org/wiki/Halaman:Mustikarasa.pdf/1136#:~:text=Getuk%20dikepali%20londjong%2C%20didalamnja%20diisi%20gula%20pasir%20%C2%B1%20%C2%BD%20sendok%20makan%20atau%20irisan%20bentuk%20persegi%20jang%20didalamnja%20diberi%20gula%20pasir.
}}
{{-turunan-|id}}
{{-terjemahan-}}
{{t-atas}}
{{t-bawah}}
{{-bacaan-}}
* {{R:KBBI Daring}}
{{rfv|id|impor dari KBBI}}
tnyp2zquzw0zsf2axpw2p633fc188dn
fajar
0
107860
1349919
1279238
2026-04-15T06:59:41Z
Iripseudocorus
40083
rekam1
1349919
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id}}
: {{pemenggalan|id|fa|jar}} {{suara|id|LL-Q9240 (ind)-Iripseudocorus-fajar.wav}}
{{-n-|id}}
# cahaya kemerah-merahan di langit sebelah timur pada menjelang matahari terbit
#* {{RQ:20 Mei Pelopor 17 Agustus
|page=9
|text= Manakah akan lebih terang, bila tiada didahului oleh gelap-gulita. Hari '''fadjar''' lahir daripada hari malam.
|norm= Manakah akan lebih terang, bila tiada didahului oleh gelap-gulita. Hari '''fajar''' lahir daripada hari malam.
|url=https://id.wikisource.org/wiki/Halaman:20_Mei_Pelopor_17_Agustus_-_Museum_Dewantara_Kirti_Griya.pdf/8#:~:text=Manakah%20akan%20lebih%20terang%2C%20bila%20tiada%20didahului%20oleh%20gelap%2Dgulita.%20Hari%20fadjar%20lahir%20daripada%20hari%20malam.}}
{{-turunan-|id}}
{{-terjemahan-}}
{{t-atas}}
{{t-bawah}}
{{-bacaan-}}
* {{R:KBBI Daring}}
{{rfv|id|impor dari KBBI}}
=={{bahasa|lbx}}==
{{kepala|lbx}}
{{-lafal-}}
*{{suara| lbx |LL-Q3120345 (lbx)-Mardiansyah (Hair alex)-rapaiwala’.wav | rapaiwala'}}
{{-n-|lbx}}
#: {{label|lbx|Balik}} [[fajar]]
f536g1eqe598mrwguj6wkahvq8o4faj
folio
0
108165
1349820
1243603
2026-04-14T12:34:02Z
Swarabakti
18192
1349820
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id}}
{{-n-|id}}
# ukuran kertas lebih kurang 21,5 x 32,5 cm
# ukuran selembar plano berukuran baku yang dilipat satu kali, ditulis dengan tanda 2o
# ukuran kertas A-4 menurut ukuran satuan sistem A
# {{label|id|perhotelan}} catatan akun tamu yang berisi tagihan selama menggunakan produk, fasilitas, dan layanan hotel
{{-turunan-|id}}
{{-terjemahan-}}
{{t-atas}}
{{t-bawah}}
{{-bacaan-}}
* {{R:KBBI Daring}}
{{rfv|id|impor dari KBBI}}
hgftg8caaxaog9xkamvs5t629qttug4
cendol
0
110719
1349939
1284920
2026-04-15T07:25:02Z
Alfiyah Rizzy Afdiquni
40651
WikiRiksa
1349939
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id}}
{{suara|id|LL-Q9240 (ind)-Alfiyah Rizzy Afdiquni-cendol.wav}}
{{-etimologi-}}
Dari {{der|id|jv|{{l|jv|cendhol}}/{{l|jv|ceṇḍol}}|tr={{l|jv|ꦕꦺꦤ꧀ꦝꦺꦴꦭ꧀|tr=-}}|t=butiran adonan untuk minuman; jenis minuman berisi butiran tepung {{q|biasanya berwarna hijau}}}}, dari {{der|id|kaw|caṇḍal|t=tetas}}.
{{-n-|id}}
# penganan yang dibuat dari tepung beras dsb. yang dibentuk dengan penyaring, kemudian dicampur dengan air gula dan santan (untuk minuman)
#* {{RQ:Mustikarasa
|page=1153
|text='''Tjendol''' ditampung dengan pantji jang berisi air dingin, santan diberi garam.
|norm='''Cendol''' ditampung dengan panci yang berisi air dingin, santan diberi garam.
|url=https://id.wikisource.org/wiki/Halaman:Mustikarasa.pdf/1161#:~:text=Tjendol%20ditampung%20dengan%20pantji%20jang%20berisi%20air%20dingin%2C%20santan%20diberi%20garam.
}}
{{-rujukan-}}
* Van Der Tuuk, H.N. 1877. Maleisch-Nederlandsch woordenboek. Landsdrukkerij, the University of Michigan.
* De Nooy. 1893. Javaansche Woordenlijst: Bevattende woorden in Midden-Java in gebruik vergeleken met het Javaansch in de residentie Soerakarta, s-Gravenhage. Martinus Nijhoff. https://www.sastra.org/leksikon
* {{R:KBBI Daring}}
{{-turunan-|id}}
{{-terjemahan-}}
{{t-atas}}
{{t-bawah}}
{{-bacaan-}}
* {{R:KBBI Daring}}
{{rfv|id|impor dari KBBI}}
=={{bahasa|kkv}}==
{{kepala|kkv}}
{{-etimologi-}}
Dari {{der|kkv|jv|{{l|jv|cendhol}}/{{l|jv|ceṇḍol}}|tr={{l|jv|ꦕꦺꦤ꧀ꦝꦺꦴꦭ꧀|tr=-}}|t=butiran adonan untuk minuman; jenis minuman berisi butiran tepung {{q|biasanya berwarna hijau}}}}, dari {{der|kkv|kaw|caṇḍal|t=tetas}}.
{{-lafal-|lang=kkv}}
* {{pemenggalan|cen|dol|lang=kkv}}
{{-n-|kkv|lang=kkv}} {{ejaan|lang=kkv}}
# penganan dibuat dari tepung beras dan sebagainya yang dibentuk dengan penyaring, kemudian dicampur dengan air gula dan santan (untuk minuman); {{l|id|cendol}}:
#::''es '''cendol'''na katon seger, yi’!''
#::es '''cendol'''nya terlihat segar, ya!
osu45ig2my8fe8am5n55pw8qayae7gr
corak
0
110985
1349950
1279414
2026-04-15T07:58:14Z
Iripseudocorus
40083
rekam1
1349950
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id}}
{{-n-|id}}
# bunga atau gambar (ada yang berwarna-warna) pada kain (tenunan, anyaman, dsb.): <br />''Corak kain sarung ini kurang bagus; besar-besar corak kain batik itu''
# berjenis-jenis warna pada warna dasar (tentang kain, bendera, dsb.): <br />''Dasarnya putih, coraknya merah''
# {{kiasan}} sifat (paham, macam, bentuk) tertentu: <br />''Perkumpulan itu tidak tentu coraknya; corak politiknya tidak tegas''
#* {{RQ:20 Mei Pelopor 17 Agustus
|page=13
|text=Marhum Umar Said Tjokroaminoto jang berdjiwa nasionalis-islam-revolusioner, sesudah bertemu dengan Hadji Samanhudi (jang waktu itu mempunjai perserikatan dagang, jang bernama _ „Sarikat Dagang Islam”, dan mempunjai '''tjorak''' Islam dan revolusioner djuga) dapat membentuk badan baru, jaitu „sarikat Islam”
|norm=Marhum Umar Said Cokroaminoto yang berjiwa nasionalis-islam-revolusioner, sesudah bertemu dengan Haji Samanhudi (yang waktu itu mempunyai perserikatan dagang, yang bernama _ „Sarikat Dagang Islam”, dan mempunjai '''corak''' Islam dan revolusioner djuga) dapat membentuk badan baru, yaitu „sarikat Islam”
|url=https://id.wikisource.org/wiki/Halaman:20_Mei_Pelopor_17_Agustus_-_Museum_Dewantara_Kirti_Griya.pdf/12#:~:text=Marhum%20Umar%20Said,jaitu%20%E2%80%9Esarikat%20Islam%E2%80%9D
}}
{{-turunan-|id}}
{{-terjemahan-}}
{{t-atas}}
{{t-bawah}}
{{-bacaan-}}
* {{R:KBBI Daring}}
{{rfv|id|impor dari KBBI}}
hwpf4n40c2mfytrqjhyfpit4lhf36d3
1349951
1349950
2026-04-15T07:58:32Z
Iripseudocorus
40083
1349951
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id}}
: {{pemenggalan|id|co|rak}} {{suara|id|LL-Q9240 (ind)-Iripseudocorus-corak.wav}}
{{-n-|id}}
# bunga atau gambar (ada yang berwarna-warna) pada kain (tenunan, anyaman, dsb.): <br />''Corak kain sarung ini kurang bagus; besar-besar corak kain batik itu''
# berjenis-jenis warna pada warna dasar (tentang kain, bendera, dsb.): <br />''Dasarnya putih, coraknya merah''
# {{kiasan}} sifat (paham, macam, bentuk) tertentu: <br />''Perkumpulan itu tidak tentu coraknya; corak politiknya tidak tegas''
#* {{RQ:20 Mei Pelopor 17 Agustus
|page=13
|text=Marhum Umar Said Tjokroaminoto jang berdjiwa nasionalis-islam-revolusioner, sesudah bertemu dengan Hadji Samanhudi (jang waktu itu mempunjai perserikatan dagang, jang bernama _ „Sarikat Dagang Islam”, dan mempunjai '''tjorak''' Islam dan revolusioner djuga) dapat membentuk badan baru, jaitu „sarikat Islam”
|norm=Marhum Umar Said Cokroaminoto yang berjiwa nasionalis-islam-revolusioner, sesudah bertemu dengan Haji Samanhudi (yang waktu itu mempunyai perserikatan dagang, yang bernama _ „Sarikat Dagang Islam”, dan mempunjai '''corak''' Islam dan revolusioner djuga) dapat membentuk badan baru, yaitu „sarikat Islam”
|url=https://id.wikisource.org/wiki/Halaman:20_Mei_Pelopor_17_Agustus_-_Museum_Dewantara_Kirti_Griya.pdf/12#:~:text=Marhum%20Umar%20Said,jaitu%20%E2%80%9Esarikat%20Islam%E2%80%9D
}}
{{-turunan-|id}}
{{-terjemahan-}}
{{t-atas}}
{{t-bawah}}
{{-bacaan-}}
* {{R:KBBI Daring}}
{{rfv|id|impor dari KBBI}}
rw5pv015zqnayf3xr6a7qfnwbxz959n
bangun
0
111327
1349965
1333731
2026-04-15T08:13:46Z
Iripseudocorus
40083
rekam1
1349965
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id}}
: {{pemenggalan|id|ba|ngun}} {{suara|id|LL-Q9240 (ind)-Iripseudocorus-bangun.wav}}
{{-v-|id}}
# bangkit; berdiri (dari duduk, tidur, dsb.): <br />''Anak itu berkali-kali terjatuh, namun ia selalu dapat bangun kembali''
# jaga (dari tidur): <br />''Setiap pagi ia bangun pukul 04.00''
# belum (tidak) tidur; jaga: <br />''Sewaktu suaminya pulang larut malam, ia masih bangun''
# siuman dari pingsan; mendusin: <br />''Ia bangun setelah kepalanya diguyur air; kalau tidak mendengar ledakan itu, saya tidak bangun''
# mulai sadar (insaf) akan nasibnya: <br />''Bangsa terjajah mulai bangun menuntut kemerdekaannya; kaum buruh mulai bangun menuntut perbaikan nasib''
#* {{RQ:20 Mei Pelopor 17 Agustus
|page=12
|text=Sesudah B.U. lahir, maka rakjat nampak mulai '''bangun''' dan sedar.
|norm=Sesudah B.U. lahir, maka rakyat nampak mulai '''bangun''' dan sadar.
|url=https://id.wikisource.org/wiki/Halaman%3A20_Mei_Pelopor_17_Agustus_-_Museum_Dewantara_Kirti_Griya.pdf/11#:~:text=Sesudah%20B.U.%20lahir%2C%20maka%20rakjat%20nampak%20mulai%20bangun%20dan%20sedar.
}}
# mulai memuai (tentang adonan): <br />''Dengan ditutup rapat-rapat adonan itu akan cepat bangun''
# mulai menjadi cair (tentang minyak kelapa yang beku): <br />''Hangatkan minyak kelapa itu supaya lekas bangun''
{{-n-|id}}
# bentuk (bulat, segi empat, dsb.): <br />''Kaca meja itu bulat telur bangunnya''
# cara menyusun atau susunan yang merupakan suatu wujud; struktur: <br />''Menyelidiki bangun tanah''
{{-n-|id}}
# {{klasik}} uang ganti rugi karena membunuh, melukai, dsb.; denda
# denda berupa uang duka yang harus diberikan oleh seorang laki-laki kepada wanita bersuami yang telah melakukan hubungan seksual dengannya dan hubungan itu mengakibatkan kematian suami wanita itu ataupun mengakibatkan perceraian (di Palembang)
{{-turunan-|id}}
{{-terjemahan-}}
{{t-atas}}
{{t-bawah}}
{{-bacaan-}}
* {{R:KBBI Daring}}
{{rfv|id|impor dari KBBI}}
=={{bahasa|jax}}==
{{kepala|jax}}
{{-lafal-}}
*{{suara|jax|LL-Q3915769 (jax)-Hihida Abdillah 1997-bangun.wav|q=''Jambi Seberang''}}
{{-v-|jax}}
# ("Jambi Seberang") bangun:
#: ''bangun, la siang..''
#:: bangun, sudah siang..
=={{bahasa|kvb}}==
{{kepala|kvb}}
: {{pemenggalan|kvb|ba|ngun}}
{{-v-|kvb}}
# [[denda]] yang harus dibayar 500 kain panjang
[[Kategori:Edit-a-thon WikiKathā Maret 2026]]
4785r31ej32lukq33oef3tp8lo0fc1c
benih
0
111803
1349994
1279825
2026-04-15T09:02:12Z
Iripseudocorus
40083
rekam1
1349994
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id}}
: {{pemenggalan|id|be|nih}} {{suara|id|LL-Q9240 (ind)-Iripseudocorus-benih.wav}}
{{-n-|id}}
# biji atau buah yang disediakan untuk ditanam atau disemaikan: <br />''Yang akan dijadikan benih haruslah buah yang baik dan cukup tua''
# bibit atau semaian yang akan ditanam: <br />''Benih cengkih itu sebaiknya dipindahkan setelah setengah meter tingginya''
# sperma untuk bibit pengembangbiakan ternak dsb.: <br />''Benih sapi pejantan unggul dapat disimpan lama di tempat yang bersuhu dingin; benih penyakit cacar''
# sesuatu yang menjadi sebab; asal mula: <br />''Ucapan yang kasar dapat menjadi benih perkelahian''
# keturunan; turunan; asal
# sesuatu yang akan tumbuh atau akan menjadi: <br />''Benih penyakit cacar''
#* {{RQ:20 Mei Pelopor 17 Agustus
|page=16-17
|text=Pada periode itu djuga mulai tersebarnja '''benih-benih''' socialisme dengan aksinja jang hebat dan berpusat di Semarang.
|norm=Pada periode itu juga mulai tersebarnya '''benih-benih''' sosialisme dengan aksinya yang hebat dan berpusat di Semarang.
|url=https://id.wikisource.org/wiki/20_Mei_Pelopor_17_Agustus#:~:text=Pada%20periode%20itu%20djuga%20mulai%20tersebarnja%20benih%2Dbenih%20socialisme%20dengan%20aksinja%20jang%20hebat%20dan%20berpusat%20di%20Semarang.
}}
{{-turunan-|id}}
{{-terjemahan-}}
{{t-atas}}
{{t-bawah}}
{{-bacaan-}}
* {{R:KBBI Daring}}
{{rfv|id|impor dari KBBI}}
k37q3xrhq1ahvlv753dhhvc3fo024du
1349997
1349994
2026-04-15T09:06:18Z
Iripseudocorus
40083
rekam1
1349997
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id}}
: {{pemenggalan|id|be|nih}} {{suara|id|LL-Q9240 (ind)-Iripseudocorus-benih.wav}}
{{-n-|id}}
# biji atau buah yang disediakan untuk ditanam atau disemaikan: <br />''Yang akan dijadikan benih haruslah buah yang baik dan cukup tua''
# bibit atau semaian yang akan ditanam: <br />''Benih cengkih itu sebaiknya dipindahkan setelah setengah meter tingginya''
# sperma untuk bibit pengembangbiakan ternak dsb.: <br />''Benih sapi pejantan unggul dapat disimpan lama di tempat yang bersuhu dingin; benih penyakit cacar''
# sesuatu yang menjadi sebab; asal mula: <br />''Ucapan yang kasar dapat menjadi benih perkelahian''
# keturunan; turunan; asal
# sesuatu yang akan tumbuh atau akan menjadi: <br />''Benih penyakit cacar''
#* {{RQ:20 Mei Pelopor 17 Agustus
|page=17
|text=Pada periode itu djuga mulai tersebarnja '''benih-benih''' socialisme dengan aksinja jang hebat dan berpusat di Semarang.
|norm=Pada periode itu juga mulai tersebarnya '''benih-benih''' sosialisme dengan aksinya yang hebat dan berpusat di Semarang.
|url=https://id.wikisource.org/wiki/Halaman%3A20_Mei_Pelopor_17_Agustus_-_Museum_Dewantara_Kirti_Griya.pdf/16#:~:text=Pada%20periode%20itu%20djuga%20mulai%20tersebarnja%20benih%2Dbenih%20socialisme%20dengan%20aksinja%20jang%20hebat%20dan%20berpusat%20di%20Semarang.
}}
{{-turunan-|id}}
{{-terjemahan-}}
{{t-atas}}
{{t-bawah}}
{{-bacaan-}}
* {{R:KBBI Daring}}
{{rfv|id|impor dari KBBI}}
s8ry0c6vuvl8cmxsnena5ypfsxv69uz
gedang
0
114510
1349811
1277723
2026-04-14T12:31:25Z
Anggabuana
27723
[[:wikt:id:Pengguna:Swarabakti/Gadget-EntryAdder.js|+entri]] [ban]
1349811
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id}}
'''gedang'''
# {{ragam dari|id|gadang}}
{{-bacaan-}}
* {{R:KBBI Daring}}
{{rfv|id|impor dari KBBI}}
=={{bahasa|ban}}==
{{kepala|ban}}
{{-n-|ban}}
# pepaya
=={{bahasa|bew}}==
{{kepala|bew}}
{{-n-|bew}}
# [[pepaya]]
#: ''Gua ngidam pisan ama '''gedang''' dah enni wayah, lantaran gua bèrak macet kebebelan.''
#: Saya sangat menginginkan '''gedang''' saat ini karena saya terkena konstipasi.
{{-lafal-}}
* {{suara|bew|LL-Q33014 (bew)-Pitchrigi-gedang.wav}}
=={{bahasa|jv}}==
{{kepala|jv}}
{{-adv-|jv}}
# {{kedu}} [[gedang]]; pisang:
#: ''budeku'' entuk'' gedang'' seko'' tonggone
#: bibiku'' mendapat'' pisang'' dari'' tetangganya
[[Kategori:WikiTutur - Jawa]]
=={{bahasa|pse}}==
{{kepala|pse}}
{{-adj-|pse}}
# {{label|pse|Semende}} [[kuat]]
=={{bahasa|jax}}==
{{kepala|jax}}
{{-lafal-}}
*{{suara|jax|LL-Q3915769 (jax)-Sultan Toktik-gedang.wav|q=''Jambi Seberang''}}
{{-adj-|jax}}
# [[besar]]
#: ''rumah tu '''gedang''' nian''
#: rumah itu besar sekali
=={{bahasa|su}}==
{{kepala|su}}
{{-n-|su}}
# {{loma}} [[pepaya]]
#: ''Kamari ngadahar gedang''
#:kemarin makan pepaya
{{-lafal-|su}}
* {{suara|su|LL-Q34002 (sun)-Kepadalisna-gedang.wav }}
[[Kategori:WikiTutur - Sunda]]
[[Kategori:WikiTutur Daring 10 Maret 2024]]
ewftlh581bq4ipeqtv5gbh1kmklsoot
sirup
0
115862
1349936
1279284
2026-04-15T07:19:52Z
Alfiyah Rizzy Afdiquni
40651
WikiRiksa
1349936
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id}}
{{suara|id|LL-Q9240 (ind)-Alfiyah Rizzy Afdiquni-sirop.wav}}
'''sirup'''
# {{ragam dari|id|sirop}}
#air gula agak kental, terkadang diberi es dan berwarna
#* {{RQ:Mustikarasa
|page=1152
|text=Kalau telah dingin dipotong ketjil², dimasukkan kedalam gelas, dimakan dengan '''sirop''' vanili dan es parut.
|norm=Kalau telah dingin dipotong kecil-kecil, dimasukkan ke dalam gelas, dimakan dengan '''sirop''' vanili dan es parut.
|url=https://id.wikisource.org/wiki/Halaman:Mustikarasa.pdf/1160#:~:text=Kalau%20telah%20dingin%20dipotong%20ketjil%C2%B2%2C%20dimasukkan%20kedalam%20gelas%2C%20dimakan%20dengan%20sirop%20vanili%20dan%20es%20parut.
}}
{{-bacaan-}}
* {{R:KBBI Daring}}
{{rfv|id|impor dari KBBI}}
ihu8vvixudjlfjaynq7ovukpk7w0w53
panili
0
116147
1349902
1279306
2026-04-15T06:41:54Z
Alfiyah Rizzy Afdiquni
40651
WikiRiksa
1349902
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id}}
{{suara|id|LL-Q9240 (ind)-Alfiyah Rizzy Afdiquni-panili.wav}}
'''panili'''
# {{ragam dari|id|vanili}}
#* {{RQ:Mustikarasa
|page=1146
|text=Susu, gula dan '''panili''' dimasak sampai mendidih
|url=https://id.wikisource.org/wiki/Halaman:Mustikarasa.pdf/1154#:~:text=Susu%2C%20gula%20dan%20panili%20dimasak%20sampai%20mendidih
}}
{{-bacaan-}}
* {{R:KBBI Daring}}
{{rfv|id|impor dari KBBI}}
mha7sgrufc1wbtvzd2kq79qjpdiiuuv
kapur sirih
0
116438
1349945
1279767
2026-04-15T07:47:03Z
Alfiyah Rizzy Afdiquni
40651
WikiRiksa
1349945
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id}}
{{-n-|id}}
# kapur yg halus dan lembut untuk ramuan makan sirih
#* {{RQ:Mustikarasa
|page=1119
|text='''kapur sirih''' sebesar butiran djagung
|norm='''kapur sirih''' sebesar butiran jagung
|url=https://id.wikisource.org/wiki/Halaman:Mustikarasa.pdf/1127#:~:text=kapur%20sirih%20sebesar%20butiran%20djagung
}}
{{-bacaan-}}
* {{R:KBBI Daring}}
{{rfv|id|impor dari KBBI}}
50fn3olhskdssy94sdukdjv9jpvkzye
warga negara
0
116509
1350019
1280238
2026-04-15T10:43:37Z
Alfiyah Rizzy Afdiquni
40651
WikiRiksa
1350019
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id}}
{{suara|id|LL-Q9240 (ind)-Alfiyah Rizzy Afdiquni-warga negara.wav}}
{{-n-|id}}
# penduduk sebuah negara atau bangsa berdasarkan keturunan, tempat kelahiran, dsb yang mempunyai kewajiban dan hak penuh sebagai seorang warga dari negara itu
#* {{RQ:Permainan Rakyat Daerah Kalimantan Selatan
|page=2
|text=Adalah menjadi tugas segenap '''warga negara''' untuk tetap menjaga kelestarian dan keutuhan kekayaan budaya Nasional.
|url=https://id.wikisource.org/wiki/Halaman:Permainan_rakyat_daerah_Kalimantan_Selatan.pdf/10#:~:text=Adalah%20menjadi%20tugas%20segenap%20warga%20negara%20untuk%20tetap%20menjaga%20kelestarian%20dan%20keutuhan%20kekayaan%20budaya%20Nasional.
}}
{{-bacaan-}}
* {{R:KBBI Daring}}
{{rfv|id|impor dari KBBI}}
ghqk4xgzdtrb6ls2lfsaym351nnm3wv
air soda
0
118678
1349921
1349243
2026-04-15T07:01:06Z
Alfiyah Rizzy Afdiquni
40651
WikiRiksa
1349921
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id}}
{{suara|id|LL-Q9240 (ind)-Alfiyah Rizzy Afdiquni-air soda.wav}}
{{-n-|id}}
# air [[berkarbonasi]]
#: {{syn|id|air belanda}}
#* {{RQ:Mustikarasa
|page= 65
|text= Jang betul² menghilangkan rasa haus adalah '''air soda''' karena mengandung asam carbonat
|norm= Yang betul-betul menghilangkan rasa haus adalah '''air soda''' karena mengandung asam karbonat
|url=https://id.wikisource.org/wiki/Halaman:Mustikarasa.pdf/73#:~:text=Jang%20betul%C2%B2%20menghilangkan%20rasa%20haus%20adalah%20air%20soda%20karena%20mengandung%20asam%20carbonat.}}
{{-terjemahan-}}
{{t-atas}}
{{t-bawah}}
{{-bacaan-}}
* {{R:KBBI Daring}}
{{rfv|id|impor dari KBBI}}
is52c82c6z9orwe4p56btcwlgrizla0
tabungan
0
137196
1349973
1279610
2026-04-15T08:30:49Z
Iripseudocorus
40083
rekam1
1349973
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id}}
: {{pemenggalan|id|ta|bu|ngan}} {{suara|id|LL-Q9240 (ind)-Iripseudocorus-tabungan.wav}}
{{imbuhan -an|tabung}}
# tempat menabungkan uang; celengan
# badan atau lembaga yang mengurus penyimpanan uang
#* {{RQ:20 Mei Pelopor 17 Agustus
|page=n.d
|text=Begitu djuga rakjat mulai memberanikan diri untuk mendirikan perseroan-perseroan dagang, tanggung-djiwa, credietbank, '''tabungan''', pertanian dll. sebagainja.
|norm=Begitu juga rakyat mulai memberanikan diri untuk mendirikan perseroan-perseroan dagang, tanggung-jiwa, kredit bank, '''tabungan''', pertanian dan lain-lain sebagainya.
|url=https://id.wikisource.org/wiki/Halaman%3A20_Mei_Pelopor_17_Agustus_-_Museum_Dewantara_Kirti_Griya.pdf/11#:~:text=Begitu%20djuga%20rakjat%20mulai%20memberanikan%20diri%20untuk%20mendirikan%20perseroan%2Dperseroan%20dagang%2C%20tanggung%2Ddjiwa%2C%20credietbank%2C%20tabungan%2C%20pertanian%20dll.%20sebagainja.
}}
# uang tabungan; uang simpanan
{{-terjemahan-}}
{{t-atas}}
{{t-bawah}}
{{-bacaan-}}
* {{R:KBBI Daring}}
{{rfv|id|impor dari KBBI}}
rb9evfxksb0tso3ofwmomcxhxt3pb05
adonan
0
137222
1350009
1279704
2026-04-15T10:15:54Z
Alfiyah Rizzy Afdiquni
40651
WikiRiksa
1350009
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id}}
{{suara|id|LL-Q9240 (ind)-Alfiyah Rizzy Afdiquni-adonan.wav}}
{{imbuhan -an|adon}}
# adukan tepung, santan, susu, dll (sebagai bahan pembuat kue)
#* {{RQ:Mustikarasa
|page=1134
|text='''Adonan''' ini boleh djuga diberi nangka jang di-iris² ketjil².
|norm=Adonan ini boleh juga diberi nangka yang diiris kecil-kecil.
|url=https://id.wikisource.org/wiki/Halaman:Mustikarasa.pdf/1142#:~:text=Adonan%20ini%20boleh%20djuga%20diberi%20nangka%20jang%20di%2Diris%C2%B2%20ketjil%C2%B2.
}}
# adukan semen dengan pasir dsb untuk pelekat batu bata atau penghalus dinding batu
{{-terjemahan-}}
{{t-atas}}
{{t-bawah}}
{{-bacaan-}}
* {{R:KBBI Daring}}
{{rfv|id|impor dari KBBI}}
015vso6k5j2fyahnemf4wip9nzcxzw8
perguruan
0
137265
1349954
1279422
2026-04-15T08:05:03Z
Iripseudocorus
40083
rekam1
1349954
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id}}
: {{pemenggalan|id|per|gu|ru|an}} {{suara|id|LL-Q9240 (ind)-Iripseudocorus-perguruan.wav}}
{{imbuhan per-an|guru}}
# sekolah; gedung-gedung tempat belajar
#:'''''perguruan''' Nasional Taman Siswa''
#* {{RQ:20 Mei Pelopor 17 Agustus
|page=16
|text=Usaha-usaha '''perguruan''' lain-lainnja ada pula, diantaranja Adhi-Darmo, ''Neutrale Schoolvereeniging'', „Islamijah” dan banjak lagi lain-lainnja.
|norm=Usaha-usaha '''perguruan''' lain-lainnya ada pula, diantaranya Adhi-Darmo, ''Neutrale Schoolvereeniging'', Islamiyah dan banyak lagi lain-lainnya.
|url=https://id.wikisource.org/wiki/Halaman%3A20_Mei_Pelopor_17_Agustus_-_Museum_Dewantara_Kirti_Griya.pdf/15#:~:text=Usaha%2Dusaha%20perguruan%20lain%2Dlainnja%20ada%20pula%2C%20diantaranja%20%E2%80%9EAdhi%2DDarmo%E2%80%9D%2C%20%E2%80%9ENeutrale%20Schoolvereeniging%E2%80%9D%2C%20%E2%80%9EIslamijah%E2%80%9D%20dan%20banjak%20lagi%20lain%2Dlainnja.
}}
# pengajaran
{{-terjemahan-}}
{{t-atas}}
{{t-bawah}}
{{-bacaan-}}
* {{R:KBBI Daring}}
{{rfv|id|impor dari KBBI}}
n81jol1rgej0go3p16u1ale7nj5vmde
berhaluan
0
137822
1349932
1279401
2026-04-15T07:13:44Z
Iripseudocorus
40083
rekam1
1349932
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id}}
: {{pemenggalan|id|ber|ha|lu|an}} {{suara|id|LL-Q9240 (ind)-Iripseudocorus-berhaluan.wav}}
{{imbuhan ber-|haluan}}
# menurut haluan; mempunyai haluan (arah, pedoman, dsb): <br />''serikat buruh pelabuhan itu berhaluan kiri''
#* {{RQ:20 Mei Pelopor 17 Agustus
|page=10
|text=Kaum-tua dan setengah-tua, jang '''berhaluan''' kiri dan masih terus berdjoang dalam kalangan B.U., ada pula: misalnja K.R.M.T.H. Wurjaningrat, R.M. Sutatmo Surjokusumo, R. M. Sutopo Wonobojo, R. Sumarsono Tjokrodirdjo, dan masih banjak lain-lainnja.
|norm=Kaum-tua dan setengah-tua, yang berhaluan kiri dan masih terus berjuang dalam kalangan B.U., ada pula: misalnja K.R.M.T.H. Wurjaningrat, R.M. Sutatmo Surjokusumo, R. M. Sutopo Wonobojo, R. Sumarsono Tjokrodirdjo, dan masih banyak lain-lainnya.
|url=https://id.wikisource.org/wiki/Halaman%3A20_Mei_Pelopor_17_Agustus_-_Museum_Dewantara_Kirti_Griya.pdf/9#:~:text=Kaum%2Dtua%20dan%20setengah%2Dtua%2C%20jang%20berhaluan%20%E2%80%9Ekiri%E2%80%9D%20dan%20masih%20terus%20berdjoang%20dalam%20kalangan%20B.U.%2C%20ada%20pula%3A%20misalnja%20K.R.M.T.H.%20Wurjaningrat%2C%20R.M.%20Sutatmo%20Surjokusumo%2C%20R.%20M.%20Sutopo%20Wonobojo%2C%20R.%20Sumarsono%20Tjokrodirdjo%2C%20dan%20masih%20banjak%20lain%2Dlainnja.
}}
{{-terjemahan-}}
{{t-atas}}
{{t-bawah}}
{{-bacaan-}}
* {{R:KBBI Daring}}
{{rfv|id|impor dari KBBI}}
77p0e4210j9hykjkwt3mdgaar3551oa
pengorbanan
0
139679
1349984
1279800
2026-04-15T08:47:08Z
Iripseudocorus
40083
rekam1
1349984
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id}}
{{imbuhan peng-an|korban}}
# proses, cara, perbuatan mengorbankan
#* {{RQ:20 Mei Pelopor 17 Agustus
|page=14
|text=Anggauta-anggauta B. U. dan Sarikat Islam, menganggap korban-korban jang pertama (sedjak 1908) itu, sebagai '''pengorbanan''' mereka sendiri.
|norm=Anggota-anggota B. U. dan Sarikat Islam, menganggap korban-korban yang pertama (sejak 1908) itu, sebagai '''pengorbanan''' mereka sendiri.
|url=https://id.wikisource.org/wiki/Halaman%3A20_Mei_Pelopor_17_Agustus_-_Museum_Dewantara_Kirti_Griya.pdf/13#:~:text=Anggauta%2Danggauta%20B.%20U.%20dan%20Sarikat%20Islam%2C%20menganggap%20korban%2Dkorban%20jang%20pertama%20(sedjak%201908)%20itu%2C%20sebagai%20pengorbanan%20mereka%20sendiri.
}}
{{-terjemahan-}}
{{t-atas}}
{{t-bawah}}
{{-bacaan-}}
* {{R:KBBI Daring}}
{{rfv|id|impor dari KBBI}}
5b2yjibe7vks57bzzx09ecblr5h93ko
1349985
1349984
2026-04-15T08:48:17Z
Iripseudocorus
40083
rekam1
1349985
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id}}
: {{pemenggalan|id|pe|ngor|ba|nan}} {{suara|id|LL-Q9240 (ind)-Iripseudocorus-pengorbanan.wav}}
{{imbuhan peng-an|korban}}
# proses, cara, perbuatan mengorbankan
#* {{RQ:20 Mei Pelopor 17 Agustus
|page=14
|text=Anggauta-anggauta B. U. dan Sarikat Islam, menganggap korban-korban jang pertama (sedjak 1908) itu, sebagai '''pengorbanan''' mereka sendiri.
|norm=Anggota-anggota B. U. dan Sarikat Islam, menganggap korban-korban yang pertama (sejak 1908) itu, sebagai '''pengorbanan''' mereka sendiri.
|url=https://id.wikisource.org/wiki/Halaman%3A20_Mei_Pelopor_17_Agustus_-_Museum_Dewantara_Kirti_Griya.pdf/13#:~:text=Anggauta%2Danggauta%20B.%20U.%20dan%20Sarikat%20Islam%2C%20menganggap%20korban%2Dkorban%20jang%20pertama%20(sedjak%201908)%20itu%2C%20sebagai%20pengorbanan%20mereka%20sendiri.
}}
{{-terjemahan-}}
{{t-atas}}
{{t-bawah}}
{{-bacaan-}}
* {{R:KBBI Daring}}
{{rfv|id|impor dari KBBI}}
3zn81qdoxbhybkvogb3ob476044u61z
hubungan
0
140115
1349925
1279385
2026-04-15T07:03:27Z
Iripseudocorus
40083
rekam1
1349925
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id}}
: {{pemenggalan|id|hu|bu|ngan}} {{suara|id|LL-Q9240 (ind)-Iripseudocorus-hubungan.wav}}
{{imbuhan -an|hubung}}
# keadaan berhubungan: <br>''hubungan yang harmonis antara suami istri perlu dibina''
# kontak: <br>''untuk membeli barang itu dengan harga yang lebih murah sebaiknya kita mengadakan hubungan langsung dengan produsen''
# sangkut-paut: <br>''jabatan yang dipegangnya itu tidak ada hubungannya dengan keahliannya''
# ikatan; pertalian (keluarga, persahabatan, dsb): <br>''antara mereka masih ada hubungan keluarga; hubungan persahabatan antara bangsa-bangsa Asia Tenggara''
#* {{RQ:20 Mei Pelopor 17 Agustus
|page=
|text=Inilah sebabnja ada '''hubungan''' antara beliau dengan Sutomo dan Gunawan Mangunkusumo c.s. Dr. Wahidin sanggup mengoper gerakan nasional jang dimulaikan para pemuda tadi.
|norm=Inilah sebabnya ada '''hubungan''' antara beliau dengan Sutomo dan Gunawan Mangunkusumo c.s. Dr. Wahidin sanggup mengoper gerakan nasional yang dimulaikan para pemuda tadi.
|url=https://id.wikisource.org/wiki/Halaman:20_Mei_Pelopor_17_Agustus_-_Museum_Dewantara_Kirti_Griya.pdf/5#:~:text=Inilah%20sebabnja%20ada%20hubungan%20antara%20beliau%20dengan%20Sutomo%20dan%20Gunawan%20Mangunkusumo%20c.s.%20Dr.%20Wahidin%20sanggup%20%E2%80%9Emengoper%E2%80%9D%20gerakan%20nasional%20jang%20dimulaikan%20para%20pemuda%20tadi
}}
{{-terjemahan-}}
{{t-atas}}
{{t-bawah}}
{{-bacaan-}}
* {{R:KBBI Daring}}
{{rfv|id|impor dari KBBI}}
3mmun3bqutar4wocgovmyktzkfn6iw8
perkumpulan
0
141065
1349967
1279592
2026-04-15T08:15:17Z
Iripseudocorus
40083
rekam1
1349967
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id}}
: {{pemenggalan|id|per|kum|pu|lan}} {{suara|id|LL-Q9240 (ind)-Iripseudocorus-perkumpulan.wav}}
{{imbuhan per-an|kumpul}}
# perhimpunan (tentang organisasi dsb): <br>''perkumpulan sepak bola'' perserikatan
#* {{RQ:20 Mei Pelopor 17 Agustus
|page=12
|text=Banjak '''perkumpulan-perkumpulan''' didirikan, baik jang bertjorak agama, sosial, ekonomi, kesenian, pendidikan, journalistiek, olah raga, dll.
|norm=Banjak '''perkumpulan-perkumpulan''' didirikan, baik yang bercorak agama, sosial, ekonomi, kesenian, pendidikan, jurnalistik, olah raga, dll.
|url=https://id.wikisource.org/wiki/Halaman%3A20_Mei_Pelopor_17_Agustus_-_Museum_Dewantara_Kirti_Griya.pdf/11#:~:text=Banjak%20perkumpulan%2Dperkumpulan%20didirikan%2C%20baik%20jang%20bertjorak%20agama%2C%20sosial%2C%20ekonomi%2C%20kesenian%2C%20pendidikan%2C%20journalistiek%2C%20olah%20raga%2C%20dll.%20sebagainja.}}
{{-terjemahan-}}
{{t-atas}}
{{t-bawah}}
{{-bacaan-}}
* {{R:KBBI Daring}}
{{rfv|id|impor dari KBBI}}
56rb8muo20exbribkdxuew6773bstv2
bertemu
0
143135
1349974
1279612
2026-04-15T08:33:31Z
Iripseudocorus
40083
rekam1
1349974
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id}}
: {{pemenggalan|id|ber|te|mu}} {{suara|id|LL-Q9240 (ind)-Iripseudocorus-bertemu.wav}}
{{imbuhan ber-|temu}}
# ditemukan; diperoleh; terdapat di; kedapatan di
#:''batu permata seelok ini tidak akan '''bertemu''' di negara ini''
# berhadapan muka; bersemuka
#* {{RQ:20 Mei Pelopor 17 Agustus
|page=n.d
|text=Marhum Umar Said Tjokroaminoto jang berdjiwa nasionalis-islam-revolusioner, sesudah '''bertemu''' dengan Hadji Samanhudi (jang waktu itu mempunjai perserikatan dagang, jang bernama Sarikat Dagang Islam, dan mempunjai tjorak Islam dan revolusioner djuga) dapat membentuk badan baru.
|norm=Marhum Umar Said Tjokroaminoto yang berjiwa nasionalis-islam-revolusioner, sesudah '''bertemu''' dengan Haji Samanhudi (yang waktu itu mempunyai perserikatan dagang, yang bernama Sarikat Dagang Islam, dan mempunyai corak Islam dan revolusioner juga) dapat membentuk badan baru.
|url=https://id.wikisource.org/wiki/Halaman:20_Mei_Pelopor_17_Agustus_-_Museum_Dewantara_Kirti_Griya.pdf/12#:~:text=Marhum%20Umar%20Said,jaitu%20%E2%80%9Esarikat%20Islam%E2%80%9D
}}
#:''ia hendak '''bertemu''' dengan tuan rumah; selamat jalan, sampai '''bertemu''' lagi''
# mendapat atau menemukan (barang yang dicari)
#:''betapa dicarinya tiada '''bertemu''' juga; kalau '''bertemu''' arloji itu, akan kuserahkan kepada polisi''
# berjumpa; bersua
#:''baru-baru ini saya '''bertemu''' dengannya di depan kantor pos''
# menjadi satu (berhubungan, bersinggungan) ujung dengan ujung, jalan dengan jalan, kali dengan kali, dsb
#:''dua sungai itu '''bertemu''' di dekat laut; tepi langit '''bertemu''' dengan permukaan laut''
# sesuai atau cocok (perkataan dengan perbuatan, teori dengan praktik, dsb)
#:''janjinya tidak pernah '''bertemu'''; teori yang tidak '''bertemu''' dalam praktik''
# benar-benar terjadi (tentang ramalan, dugaan, dsb)
# sampai atau tercapai (tentang harapan, cita-cita, dsb)
#:''apa yang kuimpikan seminggu yang lalu, '''bertemu''' juga pada hari ini''
# dapat atau kena (bahaya, bencana, dsb)
#:'''''bertemu''' dengan bahaya maut''
{{-terjemahan-}}
{{t-atas}}
{{t-bawah}}
{{-bacaan-}}
* {{R:KBBI Daring}}
{{rfv|id|impor dari KBBI}}
2u0xfag8ltoe0zpbyvd17ve7wgf6bd1
1349976
1349974
2026-04-15T08:37:14Z
Iripseudocorus
40083
1349976
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id}}
: {{pemenggalan|id|ber|te|mu}} {{suara|id|LL-Q9240 (ind)-Iripseudocorus-bertemu.wav}}
{{imbuhan ber-|temu}}
# ditemukan; diperoleh; terdapat di; kedapatan di
#:''batu permata seelok ini tidak akan '''bertemu''' di negara ini''
# berhadapan muka; bersemuka
#* {{RQ:20 Mei Pelopor 17 Agustus
|page=13
|text=Marhum Umar Said Tjokroaminoto jang berdjiwa nasionalis-islam-revolusioner, sesudah '''bertemu''' dengan Hadji Samanhudi (jang waktu itu mempunjai perserikatan dagang, jang bernama Sarikat Dagang Islam, dan mempunjai tjorak Islam dan revolusioner djuga) dapat membentuk badan baru.
|norm=Marhum Umar Said Tjokroaminoto yang berjiwa nasionalis-islam-revolusioner, sesudah '''bertemu''' dengan Haji Samanhudi (yang waktu itu mempunyai perserikatan dagang, yang bernama Sarikat Dagang Islam, dan mempunyai corak Islam dan revolusioner juga) dapat membentuk badan baru.
|url=https://id.wikisource.org/wiki/Halaman:20_Mei_Pelopor_17_Agustus_-_Museum_Dewantara_Kirti_Griya.pdf/12#:~:text=Marhum%20Umar%20Said,jaitu%20%E2%80%9Esarikat%20Islam%E2%80%9D
}}
#:''ia hendak '''bertemu''' dengan tuan rumah; selamat jalan, sampai '''bertemu''' lagi''
# mendapat atau menemukan (barang yang dicari)
#:''betapa dicarinya tiada '''bertemu''' juga; kalau '''bertemu''' arloji itu, akan kuserahkan kepada polisi''
# berjumpa; bersua
#:''baru-baru ini saya '''bertemu''' dengannya di depan kantor pos''
# menjadi satu (berhubungan, bersinggungan) ujung dengan ujung, jalan dengan jalan, kali dengan kali, dsb
#:''dua sungai itu '''bertemu''' di dekat laut; tepi langit '''bertemu''' dengan permukaan laut''
# sesuai atau cocok (perkataan dengan perbuatan, teori dengan praktik, dsb)
#:''janjinya tidak pernah '''bertemu'''; teori yang tidak '''bertemu''' dalam praktik''
# benar-benar terjadi (tentang ramalan, dugaan, dsb)
# sampai atau tercapai (tentang harapan, cita-cita, dsb)
#:''apa yang kuimpikan seminggu yang lalu, '''bertemu''' juga pada hari ini''
# dapat atau kena (bahaya, bencana, dsb)
#:'''''bertemu''' dengan bahaya maut''
{{-terjemahan-}}
{{t-atas}}
{{t-bawah}}
{{-bacaan-}}
* {{R:KBBI Daring}}
{{rfv|id|impor dari KBBI}}
ry5sdhvljokihc4rcrqbtmqjau7vmpu
pertentangan
0
143737
1349928
1279391
2026-04-15T07:06:51Z
Iripseudocorus
40083
rekam1
1349928
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id}}
: {{pemenggalan|id|per|ten|ta|ngan}} {{suara|id|LL-Q9240 (ind)-Iripseudocorus-pertentangan.wav}}
{{imbuhan per-an|tentang}}
# perihal bertentangan; perlawanan: <br>''pertentangan di antara partai politik tidak lagi sehebat dulu''
#* {{RQ:20 Mei Pelopor 17 Agustus
|page=8
|text=Bersuanja kaum tua dan kaum muda menimbulkan banjak '''pertentangan''' faham, sikap dan laku.
|norm=Bersuanya kaum tua dan kaum muda menimbulkan banyak '''pertentangan''' paham, sikap dan laku.
|url=https://id.wikisource.org/wiki/Halaman%3A20_Mei_Pelopor_17_Agustus_-_Museum_Dewantara_Kirti_Griya.pdf/7#:~:text=Bersuanja%20kaum%20tua%20dan%20kaum%20muda%20menimbulkan%20banjak%20pertentangan%20faham%2C%20sikap%20dan%20laku.
}}
# perselisihan; pertikaian: <br>''kedua negara itu memang mempunyai pertentangan politik''
{{-terjemahan-}}
{{t-atas}}
{{t-bawah}}
{{-bacaan-}}
* {{R:KBBI Daring}}
{{rfv|id|impor dari KBBI}}
2urpjy1m3kzfjeyec930rfjdj6vq2uv
perselisihan
0
144100
1349963
1279527
2026-04-15T08:10:44Z
Iripseudocorus
40083
rekam1
1349963
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id}}
: {{pemenggalan|id|per|se|li|si|han}} {{suara|id|LL-Q9240 (ind)-Iripseudocorus-perselisihan.wav}}
{{imbuhan per-an|selisih}}
# hal berselisih
#* {{RQ:20 Mei Pelopor 17 Agustus
|page=17
|text=Berhubung dengan timbulnja '''perselisihan-perselisihan''' dan perpetjahan-perpetjahan maka sementara kali dilakukan usaha-usaha untuk mempersatukan tenaga, jang dianggap perlu untuk mempertahankan kepentingan-kepentingan rakjat.
|norm=Berhubung dengan timbulnya '''perselisihan-perselisihan''' dan perpecahan-perpecahan maka sementara kali dilakukan usaha-usaha untuk mempersatukan tenaga, yang dianggap perlu untuk mempertahankan kepentingan-kepentingan rakyat.
|url=https://id.wikisource.org/wiki/Halaman%3A20_Mei_Pelopor_17_Agustus_-_Museum_Dewantara_Kirti_Griya.pdf/16#:~:text=Berhubung%20dengan%20timbulnja%20perselisihan%2Dperselisihan%20dan%20%E2%80%9Eperpetjahan%2Dperpetjahan%E2%80%9D%20maka%20sementara%20kali%20dilakukan%20usaha%2Dusaha%20untuk%20mempersatukan%20tenaga%2C%20jang%20dianggap%20perlu%20untuk%20mempertahankan%20kepentingan%2Dkepentingan%20rakjat
}}
{{-terjemahan-}}
{{t-atas}}
{{t-bawah}}
{{-bacaan-}}
* {{R:KBBI Daring}}
{{rfv|id|impor dari KBBI}}
p8d7829hvpckvlx8q0jymf7smox7cvk
lapisan
0
144218
1349995
1279827
2026-04-15T09:05:16Z
Iripseudocorus
40083
rekam1
1349995
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id}}
: {{pemenggalan|id|la|pi|san}} {{suara|id|LL-Q9240 (ind)-Iripseudocorus-lapisan.wav}}
{{imbuhan -an|lapis}}
# susunan; deretan; bagian
#* {{RQ:20 Mei Pelopor 17 Agustus
|page=17
|text=I.S.D.V. (Indische Sociaal-democratische Vereeniging) dibawah pimpinan Ir. Baars, H. Sneevliet dll, jang kemudian mendjadi P.K.I. (Partij Komunis Indonesia) dengan S.R. (Sarikat Rakjat) sebagai „ondergrond’’-nja ('''lapisan''' bawah).
|norm=I.S.D.V. ''(Indische Sociaal-democratische Vereeniging)'' di bawah pimpinan Ir. Baars, H. Sneevliet dll, jang kemudian menjadi P.K.I. (Partai Komunis Indonesia) dengan S.R. ''(Sarikat Rakjat)'' sebagai ''ondergrond''-nya ('''lapisan''' bawah).
|url=https://id.wikisource.org/wiki/Halaman%3A20_Mei_Pelopor_17_Agustus_-_Museum_Dewantara_Kirti_Griya.pdf/16#:~:text=I.S.D.V.%20(Indische%20Sociaal%2Ddemocratische%20Vereeniging)%20dibawah%20pimpinan%20Ir.%20Baars%2C%20H.%20Sneevliet%20dll%2C%20jang%20kemudian%20mendjadi%20P.K.I.%20(Partij%20Komunis%20Indonesia)%20dengan%20S.R.%20(Sarikat%20Rakjat)%20sebagai%20%E2%80%9Eondergrond%E2%80%99%E2%80%99%2Dnja%20(lapisan%20bawah).
}}
# hasil melapis(i)
# {{kiasan}} tingkatan; golongan: <br>''anggota dewan itu merupakan wakil dari seluruh lapisan rakyat''
{{-terjemahan-}}
{{t-atas}}
{{t-bawah}}
{{-bacaan-}}
* {{R:KBBI Daring}}
{{rfv|id|impor dari KBBI}}
82mjaari90xuacvx7c5uj04aex8lf01
penyelundupan
0
144412
1349977
1279789
2026-04-15T08:38:05Z
Iripseudocorus
40083
rekam1
1349977
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id}}
{{imbuhan peng-an|selundup}}
# proses, cara, perbuatan menyelundup atau menyelundupkan
# pemasukan barang secara gelap untuk menghindari bea masuk atau karena menyelundupkan barang terlarang
#* {{RQ:20 Mei Pelopor 17 Agustus
|page=13
|text=Disamping '''penjelundupan''' atau infiltrasi biasa, pemerintah kolonial mengirimkan dr. A. Rinkes-nja (pembantu ''adviseur voor inlandsche zaken'') kedalam lingkungan S.I. (Sarikat Islam).
|norm=Di samping '''penyelundupan''' atau infiltrasi biasa, pemerintah kolonial mengirimkan dr. A. Rinkes-nya (pembantu ''adviseur voor inlandsche zaken'') kedalam lingkungan S.I. (Sarikat Islam).
|url=https://id.wikisource.org/wiki/20_Mei_Pelopor_17_Agustus#:~:text=Disamping%20penjelundupan%20atau%20%E2%80%9Einfiltrasi%E2%80%9D%20biasa%2C%20pemerintah%20kolonial%20mengirimkan%20dr.%20A.%20Rinkes%2Dnja%20(pembantu%20adviseur%20voor%20inlandsche%20zaken)%20kedalam%20lingkungan%20S.I.%20(Sarikat%20Islam).
}}
{{-terjemahan-}}
{{t-atas}}
{{t-bawah}}
{{-bacaan-}}
* {{R:KBBI Daring}}
{{rfv|id|impor dari KBBI}}
59mxdzpdoee4ec9nbii3gw2jm70pq8s
1349978
1349977
2026-04-15T08:39:09Z
Iripseudocorus
40083
/* {{bahasa|id}} */
1349978
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id}}
: {{pemenggalan|id|pe|nye|lun|du|pan}} {{suara|id|LL-Q9240 (ind)-Iripseudocorus-penyelundupan.wav}}
{{imbuhan peng-an|selundup}}
# proses, cara, perbuatan menyelundup atau menyelundupkan
# pemasukan barang secara gelap untuk menghindari bea masuk atau karena menyelundupkan barang terlarang
#* {{RQ:20 Mei Pelopor 17 Agustus
|page=13
|text=Disamping '''penjelundupan''' atau infiltrasi biasa, pemerintah kolonial mengirimkan dr. A. Rinkes-nja (pembantu ''adviseur voor inlandsche zaken'') kedalam lingkungan S.I. (Sarikat Islam).
|norm=Di samping '''penyelundupan''' atau infiltrasi biasa, pemerintah kolonial mengirimkan dr. A. Rinkes-nya (pembantu ''adviseur voor inlandsche zaken'') kedalam lingkungan S.I. (Sarikat Islam).
|url=https://id.wikisource.org/wiki/20_Mei_Pelopor_17_Agustus#:~:text=Disamping%20penjelundupan%20atau%20%E2%80%9Einfiltrasi%E2%80%9D%20biasa%2C%20pemerintah%20kolonial%20mengirimkan%20dr.%20A.%20Rinkes%2Dnja%20(pembantu%20adviseur%20voor%20inlandsche%20zaken)%20kedalam%20lingkungan%20S.I.%20(Sarikat%20Islam).
}}
{{-terjemahan-}}
{{t-atas}}
{{t-bawah}}
{{-bacaan-}}
* {{R:KBBI Daring}}
{{rfv|id|impor dari KBBI}}
e50p6zk9l07bamr76x99bqpho61lj0c
penindasan
0
146088
1349989
1279813
2026-04-15T08:53:41Z
Iripseudocorus
40083
rekam1
1349989
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id}}
: {{pemenggalan|id|pe|nin|da|san}} {{suara|id|LL-Q9240 (ind)-Iripseudocorus-penindasan.wav}}
{{imbuhan peng-an|tindas}}
# proses, cara, perbuatan menindas: <br>''kenyataan menunjukkan bahwa penindasan sesama manusia masih ada di bumi ini''
#* {{RQ:20 Mei Pelopor 17 Agustus
|page=14
|text=Jang mendjadi sebab pemerintah kolonial menggunakan „exorbitant-recht”-nja ialah karena Suwardi Suryaningrat menulis brosurnja „Als ik Nederlander was!” untuk memprotes akan diadakannja perajaan kemerdekaan Nederland 100 tahun (dari '''penindasan''' Perantjis dalam djaman Napoleon pada tahun 1813).
|norm= Yang menjadi sebab pemerintah kolonial menggunakan „exorbitant-recht”-nya ialah karena Suwardi Suryaningrat menulis brosurnya „Als ik Nederlander was!” untuk memprotes akan diadakannya perayaan kemerdekaan Nederland 100 tahun (dari '''penindasan''' Perancis dalam jaman Napoleon pada tahun 1813).
|url=https://id.wikisource.org/wiki/Halaman%3A20_Mei_Pelopor_17_Agustus_-_Museum_Dewantara_Kirti_Griya.pdf/13#:~:text=Jang%20mendjadi%20sebab%20pemerintah%20kolonial%20menggunakan%20%E2%80%9Eexorbitant%2Drecht%E2%80%9D%2Dnja%20ialah%20karena%20Suwardi%20Suryaningrat%20menulis%20brosurnja%20%E2%80%9EAls%20ik%20Nederlander%20was!%E2%80%9D%20untuk%20memprotes%20akan%20diadakannja%20perajaan%20kemerdekaan%20Nederland%20100%20tahun%20(dari%20penindasan%20Perantjis%20dalam%20djaman%20Napoleon%20pada%20tahun%201813)}}
{{-terjemahan-}}
{{t-atas}}
{{t-bawah}}
{{-bacaan-}}
* {{R:KBBI Daring}}
{{rfv|id|impor dari KBBI}}
oc9ycsv6srfuyuh1yrzuwytswbgbadq
kelestarian
0
147358
1350018
1280239
2026-04-15T10:42:31Z
Alfiyah Rizzy Afdiquni
40651
WikiRiksa
1350018
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id}}
{{suara|id|LL-Q9240 (ind)-Alfiyah Rizzy Afdiquni-kelestarian.wav}}
{{imbuhan ke-an|lestari}}
# keadaan yang tetap seperti semula; keadaan yang tidak berubah-ubah: <br>''kita harus selalu menjaga kelestarian alam''
#* {{RQ:Permainan Rakyat Daerah Kalimantan Selatan
|page=2
|text=Adalah menjadi tugas segenap warga negara untuk tetap menjaga '''kelestarian''' dan keutuhan kekayaan budaya Nasional.
|url=https://id.wikisource.org/wiki/Halaman:Permainan_rakyat_daerah_Kalimantan_Selatan.pdf/10#:~:text=Adalah%20menjadi%20tugas%20segenap%20warga%20negara%20untuk%20tetap%20menjaga%20kelestarian%20dan%20keutuhan%20kekayaan%20budaya%20Nasional.
}}
{{-terjemahan-}}
{{t-atas}}
{{t-bawah}}
{{-bacaan-}}
* {{R:KBBI Daring}}
{{rfv|id|impor dari KBBI}}
g6m6zz89dgize2qruqnxybeg15p11vx
perseroan
0
148078
1349946
1279411
2026-04-15T07:50:02Z
Iripseudocorus
40083
rekam1
1349946
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id}}
{{imbuhan per-an|sero}}
: {{pemenggalan|id|per|se|ro|an}} {{suara|id|LL-Q9240 (ind)-Iripseudocorus-perseroan.wav}}
# perserikatan dagang; kongsi; maskapai
#* {{RQ:20 Mei Pelopor 17 Agustus
|page=n.d
|text=Begitu djuga rakjat mulai memberanikan diri untuk mendirikan '''perseroan-perseroan''' dagang, tanggung-djiwa, credietbank, tabungan, pertanian dll. sebagainja.
|norm=Begitu juga rakyat mulai memberanikan diri untuk mendirikan '''perseroan-perseroan''' dagang, tanggung-jiwa, kredit bank, tabungan, pertanian dan lain sebagainya.
|url=https://id.wikisource.org/wiki/Halaman%3A20_Mei_Pelopor_17_Agustus_-_Museum_Dewantara_Kirti_Griya.pdf/11#:~:text=Begitu%20djuga%20rakjat,timbul%20gerakan%20baru
}}
{{-terjemahan-}}
{{t-atas}}
{{t-bawah}}
{{-bacaan-}}
* {{R:KBBI Daring}}
{{rfv|id|impor dari KBBI}}
l3abkcbdryqxga86n55osoizj4n3ivw
1349948
1349946
2026-04-15T07:54:23Z
Iripseudocorus
40083
.
1349948
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id}}
{{imbuhan per-an|sero}}
: {{pemenggalan|id|per|se|ro|an}} {{suara|id|LL-Q9240 (ind)-Iripseudocorus-perseroan.wav}}
# perserikatan dagang; kongsi; maskapai
#* {{RQ:20 Mei Pelopor 17 Agustus
|page=12
|text=Begitu djuga rakjat mulai memberanikan diri untuk mendirikan '''perseroan-perseroan''' dagang, tanggung-djiwa, credietbank, tabungan, pertanian dll. sebagainja.
|norm=Begitu juga rakyat mulai memberanikan diri untuk mendirikan '''perseroan-perseroan''' dagang, tanggung-jiwa, kredit bank, tabungan, pertanian dan lain sebagainya.
|url=https://id.wikisource.org/wiki/Halaman%3A20_Mei_Pelopor_17_Agustus_-_Museum_Dewantara_Kirti_Griya.pdf/11#:~:text=Begitu%20djuga%20rakjat,timbul%20gerakan%20baru
}}
{{-terjemahan-}}
{{t-atas}}
{{t-bawah}}
{{-bacaan-}}
* {{R:KBBI Daring}}
{{rfv|id|impor dari KBBI}}
ls6s21cd90bome0z4xxvw5blrinr3cx
kemerdekaan
0
152512
1349986
1279803
2026-04-15T08:49:37Z
Iripseudocorus
40083
rekam1
1349986
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id}}
: {{pemenggalan|id|ke|mer|de|ka|an}} {{suara|id|LL-Q9240 (ind)-Iripseudocorus-kemerdekaan.wav}}
{{imbuhan ke-an|merdeka}}
# Keadaan (hal) berdiri sendiri (bebas, lepas, tidak terjajah lagi, dsb).
#: '''''Kemerdekaan''' adalah hak segala bangsa.''
#* {{RQ:20 Mei Pelopor 17 Agustus
|page=14
|text=Segera mereka mengumpulkan uang untuk memungkinkan tiga-serangkai I.P. ''(driemanschap I.P.)'' itu menghindarkan ''interneeringnja'' dan pergi ke-luar-negeri, agar di ''Nederland'' dapat meneruskan aksinja kearah '''kemerdekaan''' Indonesia.
|norm=Segera mereka mengumpulkan uang untuk memungkinkan tiga-serangkai I.P. ''(driemanschap I.P.)'' itu menghindarkan ''interneering''-nya dan pergi ke-luar-negeri, agar di ''Nederland'' dapat meneruskan aksinya ke arah '''kemerdekaan''' Indonesia.
|url=https://id.wikisource.org/wiki/Halaman%3A20_Mei_Pelopor_17_Agustus_-_Museum_Dewantara_Kirti_Griya.pdf/13#:~:text=Segera%20mereka%20mengumpulkan%20uang%20untuk%20memungkinkan%20%E2%80%9Etiga%2Dserangkai%E2%80%9D%20I.P.%E2%80%9D%20(driemanschap%20I.P.)%20itu%20menghindarkan%20interneeringnja%20dan%20pergi%20ke%2Dluar%2Dnegeri%2C%20agar%20di%20Nederland%20dapat%20meneruskan%20aksinja%20kearah%20kemerdekaan%20Indonesia.}}
{{-sinonim-}}
* [[kebebasan]]
{{-terjemahan-}}
{{t-atas}}
{{t-bawah}}
{{-bacaan-}}
* {{R:KBBI Daring}}
{{rfv|id|impor dari KBBI}}
4ynynb4i5s8l3ieubi0cnlpwxeiv49s
pergerakan
0
152555
1349993
1279824
2026-04-15T09:00:45Z
Iripseudocorus
40083
rekam1
1349993
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id}}
: {{pemenggalan|id|per|ge|ra|kan}} {{suara|id|LL-Q9240 (ind)-Iripseudocorus-pergerakan.wav}}
{{imbuhan per-an|gerak}}
# perihal atau keadaan bergerak
# kebangkitan (untuk perjuangan atau perbaikan): <br>''pada waktu itu pergerakan nasional muncul di mana-mana''
#* {{RQ:20 Mei Pelopor 17 Agustus
|page=16-17
|text=''Differensia'' '''pergerakan''' rakyat kita yang paling penting ialah tumbuhnya Sarikat-sarikat Buruh, yang pada umumnya dipimpin oleh kaum S.I. (Surjopranoto, Sosrokardono, Samaun, Alimin, Darsono dll.).
|norm=''Differensia'' '''pergerakan''' rakyat kita yang paling penting ialah tumbuhnya Sarikat-sarikat Buruh, yang pada umumnya dipimpin oleh kaum S.I. (Suryopranoto, Sosrokardono, Samaun, Alimin, Darsono dll.).
|url=https://id.wikisource.org/wiki/20_Mei_Pelopor_17_Agustus#:~:text=Differensia%20pergerakan%20rakjat%20kita%20jang%20paling%20%E2%80%8Bpenting%20ialah%20tumbuhnja%20Sarikat%2Dsarikat%20Buruh%2C%20jang%20pada%20umumnja%20dipimpin%20oleh%20kaum%20S.I.%20(Surjopranoto%2C%20Sosrokardono%2C%20Samaun%2C%20Alimin%2C%20Darsono%20dll.).
}}
{{-terjemahan-}}
{{t-atas}}
{{t-bawah}}
{{-bacaan-}}
* {{R:KBBI Daring}}
{{rfv|id|impor dari KBBI}}
8j4z7cod74miowdib67uqkw3ei2z0gc
pewarisan
0
153167
1350017
1280241
2026-04-15T10:38:22Z
Alfiyah Rizzy Afdiquni
40651
WikiRiksa
1350017
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id}}
{{suara|id|LL-Q9240 (ind)-Alfiyah Rizzy Afdiquni-pewarisan.wav}}
{{imbuhan peng-an|waris}}
# proses, cara, perbuatan mewarisi atau mewariskan
#* {{RQ:Permainan Rakyat Daerah Kalimantan Selatan
|page=2
|text=Salah satu jalan yang dapat ditempuh adalah perlu adanya usaha - usaha '''pewarisan''' kebudayaan Nasional tersebut dari generasi ke generasi berikutnya
|url=https://id.wikisource.org/wiki/Halaman:Permainan_rakyat_daerah_Kalimantan_Selatan.pdf/10#:~:text=Salah%20satu%20jalan%20yang%20dapat%20ditempuh%20adalah%20perlu%20adanya%20usaha%20%2D%20usaha%20pewarisan%20kebudayaan%20Nasional%20tersebut%20dari%20generasi%20ke%20generasi%20berikutnya
}}
{{-terjemahan-}}
{{t-atas}}
{{t-bawah}}
{{-bacaan-}}
* {{R:KBBI Daring}}
{{rfv|id|impor dari KBBI}}
30pykohglxysrjj64qnrqs3tjyfytgu
bersumpah
0
153848
1349970
1279593
2026-04-15T08:17:20Z
Iripseudocorus
40083
rekam1
1349970
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id}}
: {{pemenggalan|id|ber|sum|pah}} {{suara|id|LL-Q9240 (ind)-Iripseudocorus-bersumpah.wav}}
{{imbuhan ber-|sumpah}}
# menyatakan kebenaran suatu hal atau kesetiaan dengan sumpah; mengangkat sumpah: <br />''Presiden harus bersumpah setia kepada undang-undang dasar''
#* {{RQ:20 Mei Pelopor 17 Agustus
|page=12
|text=Bukti jang njata tentang sifat B. U. jang tidak ''provincialistis'' itu ialah berfusinja B. U. dengan P.B.I. mendjadi Parindra. Sesudah nama Indonesia disjahkan oleh rakjat, maka dengan dipelopori oleh pemuda-pemuda kita, jang pada tahun 1928 '''bersumpah''' satu Negara, satu Bangsa, satu Bahasa, dan melebur ''Jong-Java, Jong-Ambon, Jong-Sumatranenbond,'' dll.
|norm=Bukti yang nyata tentang sifat B. U. yang tidak ''provincialistis'' itu ialah berfusinya B. U. dengan P.B.I. mendjadi Parindra. Sesudah nama Indonesia disahkan oleh rakyat, maka dengan dipelopori oleh pemuda-pemuda kita, yang pada tahun 1928 '''bersumpah''' satu Negara, satu Bangsa, satu Bahasa, dan melebur ''Jong-Java, Jong-Ambon, Jong-Sumatranenbond,'' dll.
|url=https://id.wikisource.org/wiki/Halaman%3A20_Mei_Pelopor_17_Agustus_-_Museum_Dewantara_Kirti_Griya.pdf/11#:~:text=Bukti%20jang%20njata,Jong%2DSumatranenbond%20dll.
}}
# berjanji dengan sungguh-sungguh; berikrar: <br />''dia bersumpah akan membalas kematian saudaranya''
# sudah disumpah: <br />''belum semua pegawai negeri di kota itu bersumpah; penerjemah bersumpah''
{{-terjemahan-}}
{{t-atas}}
{{t-bawah}}
{{-bacaan-}}
* {{R:KBBI Daring}}
{{rfv|id|impor dari KBBI}}
sg70jrsxxrl7enunt58ykyqjcfgkh77
golongan
0
154222
1349929
1279397
2026-04-15T07:08:32Z
Iripseudocorus
40083
rekam1
1349929
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id}}
: {{pemenggalan|id|go|lo|ngan}} {{suara|id|LL-Q9240 (ind)-Iripseudocorus-golongan.wav}}
{{imbuhan -an|golong}}
# puak; tumpukan; kelompok (orang): <br>''yang datang kemari kebanyakan golongan kaya''
#* {{RQ:20 Mei Pelopor 17 Agustus
|page=n.d
|text=Hasil dari pada pertentangan antara '''golongan''' revolusioner nasionalis dengan kaum ''conservatif'' ialah terbentukhja pengurus besar pertama jang bertjorak ''coalisi''
|norm=Hasil daripada pertentangan antara '''golongan''' revolusioner nasionalis dengan kaum konservatif ialah terbentuknya pengurus besar pertama yang bercorak koalisi.
|url=https://id.wikisource.org/wiki/Halaman%3A20_Mei_Pelopor_17_Agustus_-_Museum_Dewantara_Kirti_Griya.pdf/7#:~:text=Hasil%20dari%20pada%20pertentangan%20antara%20golongan%20%E2%80%9Erevolusioner%20nasionalis%E2%80%9D%20dengan%20kaum%20%E2%80%9Econservatif%E2%80%9D%20ialah%20terbentukhja%20pengurus%20besar%20pertama%20jang%20bertjorak%20%E2%80%9Ecoalisi%E2%80%9D
}}
{{-terjemahan-}}
{{t-atas}}
{{t-bawah}}
{{-bacaan-}}
* {{R:KBBI Daring}}
{{rfv|id|impor dari KBBI}}
i4j2a5chc26jwkrtwwj0rem2yeo5d8u
Portal:Prancis
0
175889
1350031
968663
2026-04-15T11:29:28Z
DelintBot
47600
Replacing [[mw:Help:Lint errors/obsolete-tag|obsolete tags]]
1350031
wikitext
text/x-wiki
<!-- TABLEAU PRINCIPAL -->
{| cellspacing=15 cellpadding=15 style="border-top:2px solid #bbbbbc; border-left:2px solid #bbbbbc; border-bottom:1px solid #dddddf; border-right:1px solid #dddddf;" align="center"
| bgcolor="#fbfbff" valign=top style="border: 1px solid #aaaaff; border-bottom:2px solid #8888ff; border-right:2px solid #9999ff;" width="50%" align=left |
<!--DÉBUT DU CADRE DE GAUCHE-->
== <div style="text-align: center;">[[Berkas:Nuvola_apps_bookcase.svg|35px|contribuer]]Kosa Kata</div> ==
* [[:Kategori:Kata Bahasa Perancis|semua artikel bahasa Perancis]]
== <div style="text-align: center;">[[Berkas:Quill-Nuvola.svg|35px|projets]]Jenis Kata</div> ==
* [[:Kategori:Kata sifat Bahasa Perancis|Kata sifat]]
* [[:Kategori:Kata keterangan Bahasa Perancis|Kata keterangan]]
* [[:Kategori:Kata benda Bahasa Perancis|Kata benda]]
* [[:Kategori:Kata kerja Bahasa Perancis|Kata kerja]]
[[Kategori:Portal]]
2gdero62k21wp431rxbdt9dp7sfg3a4
anak-anak
0
186025
1350011
1280247
2026-04-15T10:29:24Z
Alfiyah Rizzy Afdiquni
40651
WikiRiksa
1350011
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id}}
{{suara|id|LL-Q9240 (ind)-Alfiyah Rizzy Afdiquni-anak-anak.wav}}
{{-a-|id}}
# masih kecil (belum dewasa)
#* {{RQ:Permainan Rakyat Daerah Kalimantan Selatan
|page=2
|text=Dalam perkembangannya terlihat bahwa banyak bentuk - bentuk permainan rakyat yang pernah berkembang di wilayah Kalimantan Selatan sedikit demi sedikit mulai menghilang dari kegiatan permainan '''anak-anak'''.
|url=https://id.wikisource.org/wiki/Halaman:Permainan_rakyat_daerah_Kalimantan_Selatan.pdf/10#:~:text=Dalam%20perkembangannya%20terlihat%20bahwa%20banyak%20bentuk%20%2D%20bentuk%20permainan%20rakyat%20yang%20pernah%20berkembang%20di%20wilayah%20Kalimantan%20Selatan%20sedikit%20demi%20sedikit%20mulai%20menghilang%20dari%20kegiatan%20permainan%20anak%20%2D%20anak.
}}
{{ulang|anak|manusia=y}}
# {{cak}} anak buah
{{-terjemahan-}}
{{t-atas}}
{{t-bawah}}
{{-bacaan-}}
* {{R:KBBI Daring}}
{{rfv|id|impor dari KBBI}}
qwi8qihjb92luvhyrrmb84kkq5faheq
Templat:Pembicaraan pengguna
10
199245
1349904
1051737
2026-04-15T06:43:16Z
DelintBot
47600
Replacing [[mw:Help:Lint errors/obsolete-tag|obsolete tags]]
1349904
wikitext
text/x-wiki
[[File:Talk face.svg|150px|left]]
<div style="float:left">
<span style="font-size:150%">'''Perhatian'''</span>
* Mohon tanda-tangani pesan Anda
* Mohon mengetikkan judul yang sesuai dengan isi pesan Anda
----
:Terima kasih!
</div><div style="float:right">
<span style="font-size:150%">'''Attention'''</span>
* Please sign your message
* Please use a descriptive title in your message
----
:Thank you!
</div>
{{clear}}
<noinclude>[[Kategori:Templat umum]]<noinclude>
29hyhz8rwn80fsimqgu6w7160el20qd
Templat:Hani-forms
10
199603
1349903
778466
2026-04-15T06:43:15Z
DelintBot
47600
Replacing [[mw:Help:Lint errors/obsolete-tag|obsolete tags]]
1349903
wikitext
text/x-wiki
{| class="floatright" style="background-color:#ffffff;" border="1" cellpadding="5" cellspacing="0"
|- valign="center"
| style="background-color:#dfefff;" |
'''[[Hanzi sederhana|sederhana]]'''
|<span style="font-size: 18pt;">{{Hans|{{{1}}}}}</span>
|- valign="center"
| style="background-color:#dfefff;" |
'''[[Hanzi tradisional|tradisional]]'''
|<span style="font-size: 18pt;">{{Hant|{{{2}}}}}</span>
|}<noinclude>
[[Kategori:Templat {{zh}}]]</noinclude>
9gp5lvfg4k24xk5k7bdvwl19olyblg5
Modul:translations
828
200720
1350028
1349612
2026-04-15T11:28:08Z
Swarabakti
18192
1350028
Scribunto
text/plain
local export = {}
local anchors_module = "Module:anchors"
local debug_track_module = "Module:debug/track"
local languages_module = "Module:languages"
local links_module = "Module:links"
local pages_module = "Module:pages"
local parameters_module = "Module:parameters"
local string_utilities_module = "Module:string utilities"
local templatestyles_module = "Module:TemplateStyles"
local utilities_module = "Module:utilities"
local wikimedia_languages_module = "Module:wikimedia languages"
local concat = table.concat
local html_create = mw.html.create
local insert = table.insert
local load_data = mw.loadData
local new_title = mw.title.new
local require = require
--[==[
Loaders for functions in other modules, which overwrite themselves with the target function when called. This ensures modules are only loaded when needed, retains the speed/convenience of locally-declared pre-loaded functions, and has no overhead after the first call, since the target functions are called directly in any subsequent calls.]==]
local function decode_uri(...)
decode_uri = require(string_utilities_module).decode_uri
return decode_uri(...)
end
local function format_categories(...)
format_categories = require(utilities_module).format_categories
return format_categories(...)
end
local function full_link(...)
full_link = require(links_module).full_link
return full_link(...)
end
local function get_link_page(...)
get_link_page = require(links_module).get_link_page
return get_link_page(...)
end
local function get_wikimedia_lang(...)
get_wikimedia_lang = require(wikimedia_languages_module).getByCode
return get_wikimedia_lang(...)
end
local function language_link(...)
language_link = require(links_module).language_link
return language_link(...)
end
local function normalize_anchor(...)
normalize_anchor = require(anchors_module).normalize_anchor
return normalize_anchor(...)
end
local function plain_link(...)
plain_link = require(links_module).plain_link
return plain_link(...)
end
local function process_params(...)
process_params = require(parameters_module).process
return process_params(...)
end
local function remove_links(...)
remove_links = require(links_module).remove_links
return remove_links(...)
end
local function split_on_slashes(...)
split_on_slashes = require(links_module).split_on_slashes
return split_on_slashes(...)
end
local function templatestyles(...)
templatestyles = require(templatestyles_module)
return templatestyles(...)
end
local function track(...)
track = require(debug_track_module)
return track(...)
end
--[==[
Loaders for objects, which load data (or some other object) into some variable, which can then be accessed as "foo or get_foo()", where the function get_foo sets the object to "foo" and then returns it. This ensures they are only loaded when needed, and avoids the need to check for the existence of the object each time, since once "foo" has been set, "get_foo" will not be called again.]==]
local en
local function get_en()
en, get_en = require(languages_module).getByCode("en"), nil
return en
end
local headword_data
local function get_headword_data()
headword_data, get_headword_data = load_data("Module:headword/data"), nil
return headword_data
end
local parameters_data
local function get_parameters_data()
parameters_data, get_parameters_data = load_data("Module:parameters/data"), nil
return parameters_data
end
local translations_data
local function get_translations_data()
translations_data, get_translations_data = load_data("Module:translations/data"), nil
return translations_data
end
local function is_translation_subpage(pagename)
if (headword_data or get_headword_data()).page.namespace ~= "" then
return false
elseif not pagename then
pagename = (headword_data or get_headword_data()).encoded_pagename
end
return pagename:match("./translations$") and true or false
end
local function canonical_pagename()
local pagename = (headword_data or get_headword_data()).encoded_pagename
return is_translation_subpage(pagename) and pagename:sub(1, -14) or pagename
end
local function interwiki(terminfo, term, lang, langcode)
-- No interwiki link if term is empty/missing
if not term or #term < 1 then
terminfo.interwiki = false
return
end
-- Percent-decode the term.
term = decode_uri(terminfo.term, "PATH")
-- Don't show an interwiki link if it's an invalid title.
if not new_title(term) then
terminfo.interwiki = false
return
end
local interwiki_langcode = (translations_data or get_translations_data()).interwiki_langs[langcode]
local wmlangs = interwiki_langcode and {get_wikimedia_lang(interwiki_langcode)} or lang:getWikimediaLanguages()
-- Don't show the interwiki link if the language is not recognised by Wikimedia.
if #wmlangs == 0 then
terminfo.interwiki = false
return
end
local sc = terminfo.sc
local target_page = get_link_page(term, lang, sc)
local split = split_on_slashes(target_page)
if not split[1] then
terminfo.interwiki = false
return
end
target_page = split[1]
local wmlangcode = wmlangs[1]:getCode()
local interwiki_link = language_link{
lang = lang,
sc = sc,
term = wmlangcode .. ":" .. target_page,
alt = "(" .. wmlangcode .. ")",
tr = "-"
}
terminfo.interwiki = tostring(html_create("span")
:addClass("tpos")
:wikitext(" " .. interwiki_link)
)
end
function export.show_terminfo(terminfo, check)
local lang = terminfo.lang
local langcode, langname = lang:getCode(), lang:getCanonicalNameLower()
-- Translations must be for mainspace languages.
if not lang:hasType("regular") then
error("Terjemahan hanya dapat diberikan bagi bahasa yang tercatat dan sudah disahkan sebagai bahasa di ruang nama utama.")
else
local disallowed = (translations_data or get_translations_data()).disallowed
local err_msg = disallowed[langcode]
if err_msg then
error("Terjemahan tidak diperbolehkan di " .. langname .. " (" .. langcode .. "). Terjemahan " .. langname .. " semestinya " .. err_msg)
end
local fullcode = lang:getFullCode()
if fullcode ~= langcode then
err_msg = disallowed[fullcode]
if err_msg then
langname = lang:getCanonicalNameLower()
error("Terjemahan tidak diizinkan di " .. langname .. " (" .. fullcode .. "). " .. " terjemahan " .. langname .. " perlu " .. err_msg)
end
end
end
if langcode == "id" then
if terminfo.interwiki then
error("Galat")
end
local current_L2 = require(pages_module).get_current_L2()
if current_L2 ~= "Lintas bahasa" and mw.title.getCurrentTitle().nsText ~= "Wikikamus" then
if current_L2 then
error("Terjemahan ke bahasa Indonesia hanya diperbolehkan pada subjudul Lintas bahasa, bukan di " .. current_L2)
else
error("Terjemahan ke bahasa Indonesia hanya diperbolehkan pada subjudul Lintas bahasa, bukan di luar semua subjudul")
end
end
end
local term = terminfo.term
-- Check if there is a term. Don't show the interwiki link if there is nothing to link to.
if not term then
-- Track entries that don't provide a term.
-- FIXME: This should be a category.
track("translations/no term")
track("translations/no term/" .. langcode)
end
if terminfo.interwiki then
interwiki(terminfo, term, lang, langcode)
end
langcode = lang:getFullCode()
if (translations_data or get_translations_data()).need_super[langcode] then
local tr = terminfo.tr
if tr ~= nil then
terminfo.tr = tr:gsub("%d[%d%*%-]*%f[^%d%*]", "<sup>%0</sup>")
end
end
-- Special behaviour for sign languages using |file=
if lang:getFamily() and lang:getFamily():getCode() == "sgn" and terminfo.file then
if not terminfo.term or terminfo.term == "" then
terminfo.term = nil
end
local file = terminfo.file
local filelink = "<br>[[File:" .. file .. "|frameless|upright=0.5]]"
local span = html_create("span")
:addClass("t-sign")
:wikitext(filelink)
:allDone()
local categories = {
"Istilah dengan terjemahan " .. lang:getCanonicalNameLower()
}
local cats = format_categories(
categories,
require("Module:languages").getByCode("id"),
nil,
(load_data("Module:headword/data").encoded_pagename:gsub("/translations$", ""))
)
return tostring(span) .. cats
end
terminfo.show_qualifiers = true
local link = full_link(terminfo, "translation")
local canonical_name = lang:getCanonicalNameLower()
local full_name = lang:getFullName()
local categories = {"Istilah dengan terjemahan " .. canonical_name}
if canonical_name ~= full_name then
insert(categories, "Istilah dengan terjemahan " .. full_name)
end
if check then
link = tostring(html_create("span")
:addClass("ttbc")
:tag("sup")
:addClass("ttbc")
:wikitext("(tolong [[WT:Warung Kopi|pastikan]])")
:done()
:wikitext(" " .. link)
)
insert(categories, "Permintaan pemastian terjemahan " .. langname)
end
return link .. format_categories(categories, en or get_en(), nil, canonical_pagename())
end
-- Implements {{t}}, {{t+}}, {{t-check}} and {{t+check}}.
function export.show(frame)
local args = process_params(frame:getParent().args, (parameters_data or get_parameters_data())["translation"])
local check = frame.args.check
return export.show_terminfo({
lang = args[1],
sc = args.sc,
track_sc = true,
term = args[2],
alt = args.alt,
id = args.id,
genders = args[3],
tr = args.tr,
ts = args.ts,
lit = args.lit,
file = args.file,
q = args.q,
qq = args.qq,
l = args.l,
ll = args.ll,
refs = args.ref,
interwiki = frame.args.interwiki,
}, check and check ~= "")
end
local function add_id(div, id)
return id and div:attr("id", normalize_anchor("Terjemahan-" .. id)) or div
end
-- Implements {{trans-top}} and part of {{trans-top-also}}.
local function top(args, title, id, navhead)
local column_width = (args["column-width"] == "wide" or args["column-width"] == "narrow") and "-" .. args["column-width"] or ""
local div = html_create("div")
:addClass("NavFrame")
:node(navhead)
:tag("div")
:addClass("NavContent")
:tag("table")
:addClass("translations")
:attr("role", "presentation")
:attr("data-gloss", title or "")
:tag("tr")
:tag("td")
:addClass("translations-cell")
:addClass("multicolumn-list" .. column_width)
:attr("colspan", "3")
:allDone()
div = add_id(div, id)
local categories = {}
if not title then
insert(categories, "Tabel terjemahan tidak memiliki glos pada kop")
end
local pagename = canonical_pagename()
if is_translation_subpage() then
insert(categories, "Subhalaman terjemahan")
end
return (tostring(div):gsub("</td></tr></table></div></div>$", "")) ..
(#categories > 0 and format_categories(categories, en or get_en(), nil, pagename) or "") ..
-- Category to trigger [[MediaWiki:Gadget-TranslationAdder.js]]; we want this even on
-- user pages and such.
format_categories("Entries with translation boxes", nil, nil, nil, true) ..
templatestyles("Module:translations/styles.css")
end
-- Entry point for {{trans-top}}.
function export.top(frame)
local args = process_params(frame:getParent().args, (parameters_data or get_parameters_data())["trans-top"])
local title = args[1]
local id = args.id or title
title = title and remove_links(title)
return top(args, title, id, html_create("div")
:addClass("NavHead")
:css("text-align", "left")
:wikitext(title or "Terjemahan")
)
end
-- Entry point for {{checktrans-top}}.
function export.check_top(frame)
local args = process_params(frame:getParent().args, (parameters_data or get_parameters_data())["checktrans-top"])
local text = "\n:''Terjemahan di bawah ini perlu diperiksa dan dimasukkan ke dalam tabel terjemahan yang sesuai." .. --Lihat instruksi di " ..
frame:expandTemplate{
title = "section link",
args = {"WT:TLE#Terjemahan"}
} ..
".''\n"
local header = html_create("div")
:addClass("checktrans")
:wikitext(text)
local subtitle = args[1]
local title = "Terjemahan yang perlu diperiksa"
if subtitle then
title = title .. "‌: \"" .. subtitle .. "\""
end
-- No ID, since these should always accompany proper translation tables, and can't be trusted anyway (i.e. there's no use-case for links).
return tostring(header) .. "\n" .. top(args, title, nil, html_create("div")
:addClass("NavHead")
:css("text-align", "left")
:wikitext(title or "Terjemahan")
)
end
-- Implements {{trans-bottom}}.
function export.bottom(frame)
-- Check nothing is being passed as a parameter.
process_params(frame:getParent().args, (parameters_data or get_parameters_data())["trans-bottom"])
return "</table></div></div>"
end
-- Implements {{trans-see}} and part of {{trans-top-also}}.
local function see(args, see_text)
local navhead = html_create("div")
:addClass("NavHead")
:css("text-align", "left")
:wikitext(args[1] .. " ")
:tag("span")
:css("font-weight", "normal")
:wikitext("— ")
:tag("i")
:wikitext(see_text)
:allDone()
local terms, id = args[2], args.id
if #terms == 0 then
terms[1] = args[1]
end
for i = 1, #terms do
local term_id = id[i] or id.default
local data = {
term = terms[i],
id = term_id and "Translations-" .. term_id or "Translations",
}
terms[i] = plain_link(data)
end
return navhead:wikitext(concat(terms, ",‎ "))
end
-- Entry point for {{trans-see}}.
function export.see(frame)
local args = process_params(frame:getParent().args, (parameters_data or get_parameters_data())["trans-see"])
local div = html_create("div")
:addClass("pseudo")
:addClass("NavFrame")
:node(see(args, "see "))
return tostring(add_id(div, args.id.default or args[1]))
end
-- Entry point for {{trans-top-also}}.
function export.top_also(frame)
local args = process_params(frame:getParent().args, (parameters_data or get_parameters_data())["trans-top-also"])
local navhead = see(args, "see also ")
local title = args[1]
local id = args.id.default or title
title = remove_links(title)
return top(args, title, id, navhead)
end
-- Implements {{translation subpage}}.
function export.subpage(frame)
process_params(frame:getParent().args, (parameters_data or get_parameters_data())["translation subpage"])
if not is_translation_subpage() then
error("This template should only be used on translation subpages, which have titles that end with '/translations'.")
end
-- "Translation subpages" category is handled by {{trans-top}}.
return ("''This page contains translations for ''%s''. See the main entry for more information.''"):format(full_link{
lang = en or get_en(),
term = canonical_pagename(),
})
end
-- Implements {{t-needed}}.
function export.needed(frame)
local args = process_params(frame:getParent().args, (parameters_data or get_parameters_data())["t-needed"])
local lang, category = args[1], ""
local span = html_create("span")
:addClass("trreq")
:attr("data-lang", lang:getCode())
:tag("i")
:wikitext("please add this translation if you can")
:done()
if not args.nocat then
local type, sort = args[2], args.sort
if type == "quote" then
category = "Requests for translations of " .. lang:getCanonicalName() .. " quotations"
elseif type == "usex" then
category = "Requests for translations of " .. lang:getCanonicalName() .. " usage examples"
else
category = "Requests for translations into " .. lang:getCanonicalName()
lang = en or get_en()
end
category = format_categories(category, lang, sort, not sort and canonical_pagename() or nil)
end
return tostring(span) .. category
end
-- Implements {{no equivalent translation}}.
function export.no_equivalent(frame)
local args = process_params(frame:getParent().args, (parameters_data or get_parameters_data())["tidak ada padanannya"])
local text = "tidak ada padanannya di " .. args[1]:getCanonicalNameLower()
if not args.noend then
text = text .. ", tapi lihat"
end
return tostring(html_create("i"):wikitext(text))
end
-- Implements {{no attested translation}}.
function export.no_attested(frame)
local args = process_params(frame:getParent().args, (parameters_data or get_parameters_data())["no attested translation"])
local langname = args[1]:getCanonicalNameLower()
local text = "no [[WT:ATTEST|attested]] term in " .. langname
local category = ""
if not args.noend then
text = text .. ", but see"
local sort = args.sort
category = format_categories(langname .. " unattested translations", en or get_en(), sort, not sort and canonical_pagename() or nil)
end
return tostring(html_create("i"):wikitext(text)) .. category
end
-- Implements {{not used}}.
function export.not_used(frame)
local args = process_params(frame:getParent().args, (parameters_data or get_parameters_data())["not used"])
return tostring(html_create("i"):wikitext((args[2] or "not used") .. " in " .. args[1]:getCanonicalName()))
end
return export
42fm5brnj941bbizfjbxfresb9bj2ap
1350032
1350028
2026-04-15T11:30:09Z
Swarabakti
18192
1350032
Scribunto
text/plain
local export = {}
local anchors_module = "Module:anchors"
local debug_track_module = "Module:debug/track"
local languages_module = "Module:languages"
local links_module = "Module:links"
local pages_module = "Module:pages"
local parameters_module = "Module:parameters"
local string_utilities_module = "Module:string utilities"
local templatestyles_module = "Module:TemplateStyles"
local utilities_module = "Module:utilities"
local wikimedia_languages_module = "Module:wikimedia languages"
local concat = table.concat
local html_create = mw.html.create
local insert = table.insert
local load_data = mw.loadData
local new_title = mw.title.new
local require = require
--[==[
Loaders for functions in other modules, which overwrite themselves with the target function when called. This ensures modules are only loaded when needed, retains the speed/convenience of locally-declared pre-loaded functions, and has no overhead after the first call, since the target functions are called directly in any subsequent calls.]==]
local function decode_uri(...)
decode_uri = require(string_utilities_module).decode_uri
return decode_uri(...)
end
local function format_categories(...)
format_categories = require(utilities_module).format_categories
return format_categories(...)
end
local function full_link(...)
full_link = require(links_module).full_link
return full_link(...)
end
local function get_link_page(...)
get_link_page = require(links_module).get_link_page
return get_link_page(...)
end
local function get_wikimedia_lang(...)
get_wikimedia_lang = require(wikimedia_languages_module).getByCode
return get_wikimedia_lang(...)
end
local function language_link(...)
language_link = require(links_module).language_link
return language_link(...)
end
local function normalize_anchor(...)
normalize_anchor = require(anchors_module).normalize_anchor
return normalize_anchor(...)
end
local function plain_link(...)
plain_link = require(links_module).plain_link
return plain_link(...)
end
local function process_params(...)
process_params = require(parameters_module).process
return process_params(...)
end
local function remove_links(...)
remove_links = require(links_module).remove_links
return remove_links(...)
end
local function split_on_slashes(...)
split_on_slashes = require(links_module).split_on_slashes
return split_on_slashes(...)
end
local function templatestyles(...)
templatestyles = require(templatestyles_module)
return templatestyles(...)
end
local function track(...)
track = require(debug_track_module)
return track(...)
end
--[==[
Loaders for objects, which load data (or some other object) into some variable, which can then be accessed as "foo or get_foo()", where the function get_foo sets the object to "foo" and then returns it. This ensures they are only loaded when needed, and avoids the need to check for the existence of the object each time, since once "foo" has been set, "get_foo" will not be called again.]==]
local en
local function get_en()
en, get_en = require(languages_module).getByCode("en"), nil
return en
end
local headword_data
local function get_headword_data()
headword_data, get_headword_data = load_data("Module:headword/data"), nil
return headword_data
end
local parameters_data
local function get_parameters_data()
parameters_data, get_parameters_data = load_data("Module:parameters/data"), nil
return parameters_data
end
local translations_data
local function get_translations_data()
translations_data, get_translations_data = load_data("Module:translations/data"), nil
return translations_data
end
local function is_translation_subpage(pagename)
if (headword_data or get_headword_data()).page.namespace ~= "" then
return false
elseif not pagename then
pagename = (headword_data or get_headword_data()).encoded_pagename
end
return pagename:match("./translations$") and true or false
end
local function canonical_pagename()
local pagename = (headword_data or get_headword_data()).encoded_pagename
return is_translation_subpage(pagename) and pagename:sub(1, -14) or pagename
end
local function interwiki(terminfo, term, lang, langcode)
-- No interwiki link if term is empty/missing
if not term or #term < 1 then
terminfo.interwiki = false
return
end
-- Percent-decode the term.
term = decode_uri(terminfo.term, "PATH")
-- Don't show an interwiki link if it's an invalid title.
if not new_title(term) then
terminfo.interwiki = false
return
end
local interwiki_langcode = (translations_data or get_translations_data()).interwiki_langs[langcode]
local wmlangs = interwiki_langcode and {get_wikimedia_lang(interwiki_langcode)} or lang:getWikimediaLanguages()
-- Don't show the interwiki link if the language is not recognised by Wikimedia.
if #wmlangs == 0 then
terminfo.interwiki = false
return
end
local sc = terminfo.sc
local target_page = get_link_page(term, lang, sc)
local split = split_on_slashes(target_page)
if not split[1] then
terminfo.interwiki = false
return
end
target_page = split[1]
local wmlangcode = wmlangs[1]:getCode()
local interwiki_link = language_link{
lang = lang,
sc = sc,
term = wmlangcode .. ":" .. target_page,
alt = "(" .. wmlangcode .. ")",
tr = "-"
}
terminfo.interwiki = tostring(html_create("span")
:addClass("tpos")
:wikitext(" " .. interwiki_link)
)
end
function export.show_terminfo(terminfo, check)
local lang = terminfo.lang
local langcode, langname = lang:getCode(), lang:getCanonicalNameLower()
-- Translations must be for mainspace languages.
if not lang:hasType("regular") then
error("Terjemahan hanya dapat diberikan bagi bahasa yang tercatat dan sudah disahkan sebagai bahasa di ruang nama utama.")
else
local disallowed = (translations_data or get_translations_data()).disallowed
local err_msg = disallowed[langcode]
if err_msg then
error("Terjemahan tidak diperbolehkan di " .. langname .. " (" .. langcode .. "). Terjemahan " .. langname .. " semestinya " .. err_msg)
end
local fullcode = lang:getFullCode()
if fullcode ~= langcode then
err_msg = disallowed[fullcode]
if err_msg then
langname = lang:getCanonicalNameLower()
error("Terjemahan tidak diizinkan di " .. langname .. " (" .. fullcode .. "). " .. " terjemahan " .. langname .. " perlu " .. err_msg)
end
end
end
if langcode == "id" then
if terminfo.interwiki then
error("Galat")
end
local current_L2 = require(pages_module).get_current_L2()
if current_L2 ~= "Lintas bahasa" and mw.title.getCurrentTitle().nsText ~= "Wikikamus" then
if current_L2 then
error("Terjemahan ke bahasa Indonesia hanya diperbolehkan pada subjudul Lintas bahasa, bukan di " .. current_L2)
else
error("Terjemahan ke bahasa Indonesia hanya diperbolehkan pada subjudul Lintas bahasa, bukan di luar semua subjudul")
end
end
end
local term = terminfo.term
-- Check if there is a term. Don't show the interwiki link if there is nothing to link to.
if not term then
-- Track entries that don't provide a term.
-- FIXME: This should be a category.
track("translations/no term")
track("translations/no term/" .. langcode)
end
if terminfo.interwiki then
interwiki(terminfo, term, lang, langcode)
end
langcode = lang:getFullCode()
if (translations_data or get_translations_data()).need_super[langcode] then
local tr = terminfo.tr
if tr ~= nil then
terminfo.tr = tr:gsub("%d[%d%*%-]*%f[^%d%*]", "<sup>%0</sup>")
end
end
-- Special behaviour for sign languages using |file=
if lang:getFamily() and lang:getFamily():getCode() == "sgn" and terminfo.file then
if not terminfo.term or terminfo.term == "" then
terminfo.term = nil
end
local file = terminfo.file
local filelink = "<br>[[File:" .. file .. "|frameless|upright=0.5]]"
local span = html_create("span")
:addClass("t-sign")
:wikitext(filelink)
:allDone()
local categories = {
"Istilah dengan terjemahan " .. lang:getCanonicalNameLower()
}
local cats = format_categories(
categories,
require("Module:languages").getByCode("id"),
nil,
(load_data("Module:headword/data").encoded_pagename:gsub("/translations$", ""))
)
return tostring(span) .. cats
end
terminfo.show_qualifiers = true
local link = full_link(terminfo, "translation")
local canonical_name = lang:getCanonicalNameLower()
local categories = {"Istilah dengan terjemahan " .. canonical_name}
if check then
link = tostring(html_create("span")
:addClass("ttbc")
:tag("sup")
:addClass("ttbc")
:wikitext("(tolong [[WT:Warung Kopi|pastikan]])")
:done()
:wikitext(" " .. link)
)
insert(categories, "Permintaan pemastian terjemahan " .. langname)
end
return link .. format_categories(categories, en or get_en(), nil, canonical_pagename())
end
-- Implements {{t}}, {{t+}}, {{t-check}} and {{t+check}}.
function export.show(frame)
local args = process_params(frame:getParent().args, (parameters_data or get_parameters_data())["translation"])
local check = frame.args.check
return export.show_terminfo({
lang = args[1],
sc = args.sc,
track_sc = true,
term = args[2],
alt = args.alt,
id = args.id,
genders = args[3],
tr = args.tr,
ts = args.ts,
lit = args.lit,
file = args.file,
q = args.q,
qq = args.qq,
l = args.l,
ll = args.ll,
refs = args.ref,
interwiki = frame.args.interwiki,
}, check and check ~= "")
end
local function add_id(div, id)
return id and div:attr("id", normalize_anchor("Terjemahan-" .. id)) or div
end
-- Implements {{trans-top}} and part of {{trans-top-also}}.
local function top(args, title, id, navhead)
local column_width = (args["column-width"] == "wide" or args["column-width"] == "narrow") and "-" .. args["column-width"] or ""
local div = html_create("div")
:addClass("NavFrame")
:node(navhead)
:tag("div")
:addClass("NavContent")
:tag("table")
:addClass("translations")
:attr("role", "presentation")
:attr("data-gloss", title or "")
:tag("tr")
:tag("td")
:addClass("translations-cell")
:addClass("multicolumn-list" .. column_width)
:attr("colspan", "3")
:allDone()
div = add_id(div, id)
local categories = {}
if not title then
insert(categories, "Tabel terjemahan tidak memiliki glos pada kop")
end
local pagename = canonical_pagename()
if is_translation_subpage() then
insert(categories, "Subhalaman terjemahan")
end
return (tostring(div):gsub("</td></tr></table></div></div>$", "")) ..
(#categories > 0 and format_categories(categories, en or get_en(), nil, pagename) or "") ..
-- Category to trigger [[MediaWiki:Gadget-TranslationAdder.js]]; we want this even on
-- user pages and such.
format_categories("Entries with translation boxes", nil, nil, nil, true) ..
templatestyles("Module:translations/styles.css")
end
-- Entry point for {{trans-top}}.
function export.top(frame)
local args = process_params(frame:getParent().args, (parameters_data or get_parameters_data())["trans-top"])
local title = args[1]
local id = args.id or title
title = title and remove_links(title)
return top(args, title, id, html_create("div")
:addClass("NavHead")
:css("text-align", "left")
:wikitext(title or "Terjemahan")
)
end
-- Entry point for {{checktrans-top}}.
function export.check_top(frame)
local args = process_params(frame:getParent().args, (parameters_data or get_parameters_data())["checktrans-top"])
local text = "\n:''Terjemahan di bawah ini perlu diperiksa dan dimasukkan ke dalam tabel terjemahan yang sesuai." .. --Lihat instruksi di " ..
frame:expandTemplate{
title = "section link",
args = {"WT:TLE#Terjemahan"}
} ..
".''\n"
local header = html_create("div")
:addClass("checktrans")
:wikitext(text)
local subtitle = args[1]
local title = "Terjemahan yang perlu diperiksa"
if subtitle then
title = title .. "‌: \"" .. subtitle .. "\""
end
-- No ID, since these should always accompany proper translation tables, and can't be trusted anyway (i.e. there's no use-case for links).
return tostring(header) .. "\n" .. top(args, title, nil, html_create("div")
:addClass("NavHead")
:css("text-align", "left")
:wikitext(title or "Terjemahan")
)
end
-- Implements {{trans-bottom}}.
function export.bottom(frame)
-- Check nothing is being passed as a parameter.
process_params(frame:getParent().args, (parameters_data or get_parameters_data())["trans-bottom"])
return "</table></div></div>"
end
-- Implements {{trans-see}} and part of {{trans-top-also}}.
local function see(args, see_text)
local navhead = html_create("div")
:addClass("NavHead")
:css("text-align", "left")
:wikitext(args[1] .. " ")
:tag("span")
:css("font-weight", "normal")
:wikitext("— ")
:tag("i")
:wikitext(see_text)
:allDone()
local terms, id = args[2], args.id
if #terms == 0 then
terms[1] = args[1]
end
for i = 1, #terms do
local term_id = id[i] or id.default
local data = {
term = terms[i],
id = term_id and "Translations-" .. term_id or "Translations",
}
terms[i] = plain_link(data)
end
return navhead:wikitext(concat(terms, ",‎ "))
end
-- Entry point for {{trans-see}}.
function export.see(frame)
local args = process_params(frame:getParent().args, (parameters_data or get_parameters_data())["trans-see"])
local div = html_create("div")
:addClass("pseudo")
:addClass("NavFrame")
:node(see(args, "see "))
return tostring(add_id(div, args.id.default or args[1]))
end
-- Entry point for {{trans-top-also}}.
function export.top_also(frame)
local args = process_params(frame:getParent().args, (parameters_data or get_parameters_data())["trans-top-also"])
local navhead = see(args, "see also ")
local title = args[1]
local id = args.id.default or title
title = remove_links(title)
return top(args, title, id, navhead)
end
-- Implements {{translation subpage}}.
function export.subpage(frame)
process_params(frame:getParent().args, (parameters_data or get_parameters_data())["translation subpage"])
if not is_translation_subpage() then
error("This template should only be used on translation subpages, which have titles that end with '/translations'.")
end
-- "Translation subpages" category is handled by {{trans-top}}.
return ("''This page contains translations for ''%s''. See the main entry for more information.''"):format(full_link{
lang = en or get_en(),
term = canonical_pagename(),
})
end
-- Implements {{t-needed}}.
function export.needed(frame)
local args = process_params(frame:getParent().args, (parameters_data or get_parameters_data())["t-needed"])
local lang, category = args[1], ""
local span = html_create("span")
:addClass("trreq")
:attr("data-lang", lang:getCode())
:tag("i")
:wikitext("please add this translation if you can")
:done()
if not args.nocat then
local type, sort = args[2], args.sort
if type == "quote" then
category = "Requests for translations of " .. lang:getCanonicalName() .. " quotations"
elseif type == "usex" then
category = "Requests for translations of " .. lang:getCanonicalName() .. " usage examples"
else
category = "Requests for translations into " .. lang:getCanonicalName()
lang = en or get_en()
end
category = format_categories(category, lang, sort, not sort and canonical_pagename() or nil)
end
return tostring(span) .. category
end
-- Implements {{no equivalent translation}}.
function export.no_equivalent(frame)
local args = process_params(frame:getParent().args, (parameters_data or get_parameters_data())["tidak ada padanannya"])
local text = "tidak ada padanannya di " .. args[1]:getCanonicalNameLower()
if not args.noend then
text = text .. ", tapi lihat"
end
return tostring(html_create("i"):wikitext(text))
end
-- Implements {{no attested translation}}.
function export.no_attested(frame)
local args = process_params(frame:getParent().args, (parameters_data or get_parameters_data())["no attested translation"])
local langname = args[1]:getCanonicalNameLower()
local text = "no [[WT:ATTEST|attested]] term in " .. langname
local category = ""
if not args.noend then
text = text .. ", but see"
local sort = args.sort
category = format_categories(langname .. " unattested translations", en or get_en(), sort, not sort and canonical_pagename() or nil)
end
return tostring(html_create("i"):wikitext(text)) .. category
end
-- Implements {{not used}}.
function export.not_used(frame)
local args = process_params(frame:getParent().args, (parameters_data or get_parameters_data())["not used"])
return tostring(html_create("i"):wikitext((args[2] or "not used") .. " in " .. args[1]:getCanonicalNameLower()))
end
return export
i3cntvcslejp8qrrs2qe0nr3yf6n9sp
Modul:utilities
828
200743
1349855
1099247
2026-04-14T13:38:41Z
Swarabakti
18192
1349855
Scribunto
text/plain
local export = {}
local headword_data_module = "Module:headword/data"
local languages_module = "Module:languages"
local links_module = "Module:links"
local load_module = "Module:load"
local pages_module = "Module:pages"
local script_utilities_module = "Module:script utilities"
local scripts_module = "Module:scripts"
local string_utilities_module = "Module:string utilities"
local utilities_data_module = "Module:utilities/data"
local mw = mw
local anchor_encode = mw.uri.anchorEncode
local concat = table.concat
local format_categories -- Defined below.
local ipairs = ipairs
local require = require
local type = type
local unstrip = mw.text.unstrip
--[==[
Loaders for functions in other modules, which overwrite themselves with the target function when called. This ensures modules are only loaded when needed, retains the speed/convenience of locally-declared pre-loaded functions, and has no overhead after the first call, since the target functions are called directly in any subsequent calls.]==]
local function decode_entities(...)
decode_entities = require(string_utilities_module).decode_entities
return decode_entities(...)
end
local function get_script(...)
get_script = require(scripts_module).getByCode
return get_script(...)
end
local function is_content_page(...)
is_content_page = require(pages_module).is_content_page
return is_content_page(...)
end
local function load_data(...)
load_data = require(load_module).load_data
return load_data(...)
end
local function remove_links(...)
remove_links = require(links_module).remove_links
return remove_links(...)
end
local function tag_text(...)
tag_text = require(script_utilities_module).tag_text
return tag_text(...)
end
local function trim(...)
trim = require(string_utilities_module).trim
return trim(...)
end
local function uupper(...)
uupper = require(string_utilities_module).upper
return uupper(...)
end
--[==[
Loaders for objects, which load data (or some other object) into some variable, which can then be accessed as "foo or get_foo()", where the function get_foo sets the object to "foo" and then returns it. This ensures they are only loaded when needed, and avoids the need to check for the existence of the object each time, since once "foo" has been set, "get_foo" will not be called again.]==]
local catfix_scripts
local function get_catfix_scripts()
catfix_scripts, get_catfix_scripts = load_data(utilities_data_module).catfix_scripts, nil
return catfix_scripts
end
local current_title
local function get_current_title()
current_title, get_current_title = mw.title.getCurrentTitle(), nil
return current_title
end
local defaultsort
local function get_defaultsort()
defaultsort, get_defaultsort = load_data(headword_data_module).page.pagename_defaultsort, nil
return defaultsort
end
local pagename
local function get_pagename()
pagename, get_pagename = load_data(headword_data_module).page.encoded_pagename, nil
return pagename
end
local und
local function get_und()
und, get_und = require(languages_module).getByCode("und"), nil
return und
end
do
local function handle_url(capture)
return capture:match("https?://[^%s%]]+%s([^%]]+)") or ""
end
--[==[
A helper function to strip wiki markup, giving the plaintext of what is displayed on the page.]==]
function export.get_plaintext(text)
text = text
:gsub("%[%[", "\1")
:gsub("%]%]", "\2")
-- Remove strip markers and HTML tags.
text = unstrip(text):gsub("<[^<>\1\2]+>", "")
-- Parse internal links for the display text, and remove categories.
text = remove_links(text)
-- Remove files.
text = text:gsub("\1[Ff][Ii][Ll][Ee]:[^\1\2]+\2", "")
:gsub("\1[Ii][Mm][Aa][Gg][Ee]:[^\1\2]+\2", "")
-- Parse external links for the display text.
text = text:gsub("%[(https?://[^%[%]]+)%]", handle_url)
-- Any remaining square brackets aren't involved in links, but must be escaped to avoid creating new links.
:gsub("\1", "[[")
:gsub("\2", "]]")
:gsub("%[", "[")
:gsub("]", "]")
-- Strip bold, italics and soft hyphens.
:gsub("('*)'''(.-'*)'''", "%1%2")
:gsub("('*)''(.-'*)''", "%1%2")
:gsub("", "")
-- Get any HTML entities and trim.
-- Note: don't decode URL percent encoding, as it shouldn't be used in display text and may cause problems if % is used.
return trim(decode_entities(text))
end
end
do
local function generate_sortkey(lang, sc, sort_key, sort_base)
-- If the sort key is "-", treat the language as undetermined (the default). This is desirable when categorising (e.g.) translation requests, as the pages to be categorised are always in English/Translingual.
if sort_key == "-" then
lang, sort_key = und or get_und(), nil
elseif not lang then
lang = und or get_und()
end
-- Generate the automatic sort key.
local auto = lang:makeSortKey(sort_base or pagename or get_pagename(), sc)
-- Use the page defaultsort if necessary. Try hard to avoid empty sort key, which causes categories to be
-- displayed as raw text; fall back to pagename if necessary.
if not auto or auto == "" then
auto = defaultsort or get_defaultsort()
end
if not auto or auto == "" then
auto = sort_base
end
if not auto or auto == "" then
auto = pagename or get_pagename()
end
-- If not sort key specified, use the automatic one.
if not sort_key or sort_key == "" then
return auto
-- Otherwise, if the language is not "und", categorize the manual sort key as either redundant or non-redundant.
-- FIXME: we should do this for "und" as well, but "Undetermined terms..." does not make sense for translations etc.
elseif lang:getCode() ~= "und" then
return sort_key, "[[Category:" .. lang:getFullName() .. " terms with " .. (
uupper(sort_key) == auto and "redundant" or
"non-redundant non-automated"
) .. " sortkeys|" .. sort_key .. "]]"
end
return sort_key
end
--[==[
Format the categories with the appropriate sort key.
* `cat` can take two forms:
** A string (the full category, minus the {"Category:"} prefix);
** A list of categories. Each category in the list can be either:
*** A string in the same format as above;
*** An object with the fields:
**** `cat`: a string in the same format as above (required);
**** `lang`: an optional language object to override the overall `lang`;
**** `sc`: an optional script object to override the overall `sc`.
**** `sort_key`: an optional sort key to override the overall `sort_key`;
**** `sort_base`: an optional sort base to override the overall `sort_base`;
* `lang` is an object encapsulating a language; if {nil}, the object for language code {"und"} (undetermined) will
be used. `lang` is used when computing the sort key (either from the subpage name or sort base).
* `sort_key` is placed in the category invocation, and indicates how the page will sort in the respective category.
Normally '''do not use this'''. Instead, leave it {nil}, and if you need to a control the sort order, use
{sort_base}, so that language-specific normalization is applied on top of the specified sort base. If neither
{sort_key} nor {sort_base} is specified, the default is to apply language-specific normalization to the subpage
name; see below.
* `sort_base` lets you override the default sort key while still maintaining appropriate language-specific
normalization. If {nil} is specified, this defaults to the subpage name, which is the portion of the full pagename
after subtracting the namespace prefix (and, in certain namespaces such as {User:}, but notably not in the
mainspace, after subtracting anything up through the final slash). The actual sort key is derived from the sort
base approximately by lowercasing, applying language-specific normalization and then uppercasing; note that the
same process is applied in deriving the sort key when no sort base is specified. For example, for French, Spanish,
etc. the normalization process maps accented letters to their unaccented equivalents, so that e.g. in French,
{{m|fr|ça}} sorts after {{m|fr|ca}} (instead of after the default Wikimedia sort order, which is approximately
based on Unicode sort order and places ç after z) and {{m|fr|côté}} sorts after {{m|fr|coté}} (instead of between
c and d). Similarly, in Russian the normalization process converts Cyrillic ё to a string consisting of Cyrillic е
followed by U+10FFFF, so that effectively ё sorts after е instead of the default Wikimedia sort, which (I think)
puts ё after я, the last letter of the Cyrillic alphabet.
* `force_output` forces normal output in all namespaces. Normally, nothing is output if the page isn't in the main,
Appendix:, Thesaurus:, Reconstruction: or Citations: namespaces.
* `sc` is a script object; if nil, the default will be derived from the sort base (or its default value, the
subpage name) by calling {lang:findBestScript()}. The value of `sc` is used during the sort base normalization
process; for example, languages with multiple scripts will often have script-specific normalization processes.]==]
function export.format_categories(cat, lang, sort_key, sort_base, force_output, sc)
if not (
force_output or
is_content_page(current_title or get_current_title()) or
current_title.prefixedText == "Wiktionary:Sandbox"
) then
return ""
elseif type(cat) == "string" then
local this_sort_key, extra = generate_sortkey(lang, sc, sort_key, sort_base)
return "[[Category:" .. cat .. "|" .. this_sort_key .. "]]" .. (extra or "")
end
local ret, i, n, default = {}, 0, 0
-- Iterate over all categories in `cat`.
while true do
i = i + 1
local category = cat[i]
if category == nil then
return concat(ret)
end
local this_sort_key, extra
-- If the category type is a table, use any custom options in it.
if type(category) == "table" then
category, this_sort_key, extra = category.cat, generate_sortkey(
category.lang or lang,
category.sc or sc,
category.sort_key or sort_key,
category.sort_base or sort_base
)
-- If `default` has already been determined, use it.
elseif default then
this_sort_key = default
-- Otherwise, calculate `default` and use it.
else
this_sort_key, extra = generate_sortkey(lang, sc, sort_key, sort_base)
default = this_sort_key
end
n = n + 1
ret[n] = "[[Category:" .. category .. "|" .. this_sort_key .. "]]" .. (extra or "")
end
end
format_categories = export.format_categories
end
--[==[
Add a "catfix", which is used on language-specific category pages to add language attributes and often script
classes to all entry names. The addition of language attributes and script classes makes the entry names display
better (using the language- or script-specific styles specified in [[MediaWiki:Common.css]]), which is particularly
important for non-English languages that do not have consistent font support in browsers.
Language attributes are added for all languages, but script classes are only added for languages with one script
listed in their data file, or for languages that have a default script listed in the {catfix_script} list in
[[Module:utilities/data]]. Some languages clearly have a default script, but still have other scripts listed in
their data file. If those other scripts are not simply scripts like {{cd|Brai}} (Braille), their default script
needs to be specified. Others do not have a default script.
* Serbo-Croatian is regularly written in both the Latin and Cyrillic scripts. Because it uses two scripts,
Serbo-Croatian cannot have a script class applied to entries in its category pages, as only one script class
can be specified at a time.
* German is usually written in the Latin script ({{cd|Latn}}), but Fraktur ({{cd|Latf}}) is also listed in
its data file. So German needs an entry in the {catfix_script} list, so that the {{cd|Latn}} (Latin) script
class will be applied to entries in its category pages.
To find the scripts listed for a language, go to [[Module:languages]] and use the search box to find the data file
for the language. To find out what a script code means, search the script code in [[Module:scripts/data]].]==]
function export.catfix(lang, sc)
if not lang or not lang.getCanonicalName then
error('The first argument to the function "catfix" should be a language object from [[Module:languages]] or [[Module:etymology languages]].')
end
if sc and not sc.getCode then
error('The second argument to the function "catfix" should be a script object from [[Module:scripts]].')
end
-- To add script classes to links on pages created by category boilerplate templates.
if not sc then
local code = (catfix_scripts or get_catfix_scripts())[lang:getCode()] or catfix_scripts[lang:getFullCode()]
if code then
sc = get_script(code)
end
end
-- If the language only has a single valid candidate script, apply it as the default.
if not sc then
local scripts = lang:getScripts()
if #scripts == 1 then
sc = scripts[1]
else
-- Iterate over scripts. If there is only one when ignoring
-- scripts like Brai, then pick that one.
for _, script in ipairs(scripts) do
if script:getCode() ~= "Brai" then
if sc then
-- Multiple candidates - fail.
sc = nil
break
else
sc = script
end
end
end
end
end
-- Hack: using a <ul> tag prevents the parser from automatically generating a <p> tag around the catfix element.
return "<ul class=\"catfix\" data-anchor=\"" ..
anchor_encode(lang:getFullName()) .. "\">" ..
tag_text("", lang, sc) .. "</ul>" ..
format_categories("Pages using catfix", nil, nil, nil, true)
end
--[==[
Given a type (as a string) and an arbitrary number of entities, checks whether all of those entities are language,
family, script, writing system or Wikimedia language objects. Useful for error handling in functions that require
one of these kinds of object.
If `noErr` is set, the function returns false instead of throwing an error, which allows customised error handling to
be done in the calling function.]==]
function export.check_object(typ, noErr, ...)
if ... == nil then
if noErr then
return false
end
error("Must provide at least one object to check.", 2)
end
for _, obj in ipairs{...} do
if type(obj) ~= "table" or type(obj.hasType) ~= "function" then
if noErr then
return false
end
error("Function expected a " .. typ .. " object, but received a " .. type(obj) .. " instead.", 2)
elseif not (typ == "object" or obj:hasType(typ)) then
for _, wrong_type in ipairs{"family", "language", "script", "Wikimedia language", "writing system"} do
if obj:hasType(wrong_type) then
if noErr then
return false
end
error("Function expected a " .. typ .. " object, but received a " .. wrong_type .. " object instead.", 2)
end
end
if noErr then
return false
end
error("Function expected a " .. typ .. " object, but received another type of object instead.", 2)
end
end
return true
end
return export
szkevg9xl5j9wpvvgbzhwuqjxjznt9y
terkenal
0
202860
1349956
1279426
2026-04-15T08:06:45Z
Iripseudocorus
40083
rekam1
1349956
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id}}
: {{pemenggalan|id|ter|ke|nal}} {{suara|id|LL-Q9240 (ind)-Iripseudocorus-terkenal.wav}}
{{imbuhan ter-|kenal}}
{{imbuhan ter-|kenal|kelas=a}}
# dikenal atau diketahui umum; termasyhur; tersohor: <br />''kemanjuran obat ini telah terkenal di seluruh dunia''
#* {{RQ:20 Mei Pelopor 17 Agustus
|page=16
|text=Di Sumatera jang sangat '''terkenal''' ialah I.N.S. ''(Indonesisch Nederlandse School)'' jang didirikan oleh Mohamad Sjafei di Kajutanam, dengan systimnja pendidikan beladjar dan bekerdja ''(Arbeitschule)''.
|norm=Di Sumatra yang sangat '''terkenal''' ialah I.N.S. ''(Indonesisch Nederlandse School)'' yang didirikan oleh Mohamad Syafei di Kayutanam, dengan sistemnya pendidikan belajar dan bekerja ''(Arbeitschule)''.
|url=https://id.wikisource.org/wiki/Halaman%3A20_Mei_Pelopor_17_Agustus_-_Museum_Dewantara_Kirti_Griya.pdf/15#:~:text=Di%20Sumatera%20jang%20sangat%20terkenal%20ialah%20I.N.S.%20(Indonesisch%20Nederlandse%20School)%20jang%20didirikan%20oleh%20Mohamad%20Sjafei%20di%20Kajutanam%2C%20dengan%20systimnja%20pendidikan%20beladjar%20dan%20bekerdja%20(Arbeitschule).
}}
{{-terjemahan-}}
{{t-atas}}
* bahasa Belanda: {{t|nl|beroemd}}
* bahasa Inggris: {{t|en|famous}}
{{t-bawah}}
{{-bacaan-}}
* {{R:KBBI Daring}}
{{rfv|id|impor dari KBBI}}
gn5npgs8n6j5rb8lmgutxqpxj2z4zh7
Kategori:swu:Nomina
14
209102
1349832
789606
2026-04-14T12:42:45Z
Swarabakti
18192
1349832
wikitext
text/x-wiki
{{kategori otomatis}}
tka0fgn87px6unlh07hbwnzmlebon2d
Kategori:swu:Adjektiva
14
209103
1349833
789607
2026-04-14T12:42:57Z
Swarabakti
18192
1349833
wikitext
text/x-wiki
{{kategori otomatis}}
tka0fgn87px6unlh07hbwnzmlebon2d
Modul:form of
828
210264
1349846
1327780
2026-04-14T13:13:01Z
Swarabakti
18192
perbarui
1349846
Scribunto
text/plain
local export = {}
export.force_cat = false -- for testing; set to true to display categories even on non-mainspace pages
local debug_track_module = "Module:debug/track"
local etymology_module = "Module:etymology"
local form_of_cats_module = "Module:form of/cats"
local form_of_data_module = "Module:form of/data"
local form_of_data1_module = "Module:form of/data/1"
local form_of_data2_module = "Module:form of/data/2"
local form_of_functions_module = "Module:form of/functions"
local form_of_lang_data_module_prefix = "Module:form of/lang-data/"
local function_module = "Module:fun"
local headword_data_module = "Module:headword/data"
local json_module = "Module:JSON"
local labels_module = "Module:labels"
local links_module = "Module:links"
local load_module = "Module:load"
local parse_utilities_module = "Module:parse utilities"
local string_utilities_module = "Module:string utilities"
local table_module = "Module:table"
local table_deep_equals_module = "Module:table/deepEquals"
local utilities_module = "Module:utilities"
local anchor_encode = mw.uri.anchorEncode
local concat = table.concat
local dump = mw.dumpObject
local fetch_categories_and_labels -- Defined below.
local format_form_of -- Defined below.
local get_tag_display_form -- Defined below.
local get_tag_set_display_form -- Defined below.
local insert = table.insert
local ipairs = ipairs
local is_link_or_html -- Defined below.
local list_to_text = mw.text.listToText
local lookup_shortcut -- Defined below.
local lookup_tag -- Defined below.
local normalize_tag_set -- Defined below.
local parse_tag_set_properties -- Defined below.
local require = require
local sort = table.sort
local split_tag_set -- Defined below.
local type = type
--[==[
Loaders for functions in other modules, which overwrite themselves with the target function when called. This ensures modules are only loaded when needed, retains the speed/convenience of locally-declared pre-loaded functions, and has no overhead after the first call, since the target functions are called directly in any subsequent calls.]==]
local function append(...)
append = require(table_module).append
return append(...)
end
local function contains(...)
contains = require(table_module).contains
return contains(...)
end
local function debug_track(...)
debug_track = require(debug_track_module)
return debug_track(...)
end
local function deep_copy(...)
deep_copy = require(table_module).deepCopy
return deep_copy(...)
end
local function deep_equals(...)
deep_equals = require(table_deep_equals_module)
return deep_equals(...)
end
local function extend(...)
extend = require(table_module).extend
return extend(...)
end
local function format_categories(...)
format_categories = require(utilities_module).format_categories
return format_categories(...)
end
local function full_link(...)
full_link = require(links_module).full_link
return full_link(...)
end
local function insert_if_not(...)
insert_if_not = require(table_module).insertIfNot
return insert_if_not(...)
end
local function is_subset_list(...)
is_subset_list = require(table_module).isSubsetList
return is_subset_list(...)
end
local function iterate_from(...)
iterate_from = require(function_module).iterateFrom
return iterate_from(...)
end
local function join_multiparts(...)
join_multiparts = require(form_of_functions_module).join_multiparts
return join_multiparts(...)
end
local function load_data(...)
load_data = require(load_module).load_data
return load_data(...)
end
local function parse_inline_modifiers(...)
parse_inline_modifiers = require(parse_utilities_module).parse_inline_modifiers
return parse_inline_modifiers(...)
end
local function remove_links(...)
remove_links = require(links_module).remove_links
return remove_links(...)
end
local function safe_load_data(...)
safe_load_data = require(load_module).safe_load_data
return safe_load_data(...)
end
local function safe_require(...)
safe_require = require(load_module).safe_require
return safe_require(...)
end
local function serial_comma_join(...)
serial_comma_join = require(table_module).serialCommaJoin
return serial_comma_join(...)
end
local function shallow_copy(...)
shallow_copy = require(table_module).shallowCopy
return shallow_copy(...)
end
local function show_labels(...)
show_labels = require(labels_module).show_labels
return show_labels(...)
end
local function slice(...)
slice = require(table_module).slice
return slice(...)
end
local function split(...)
split = require(string_utilities_module).split
return split(...)
end
local function ucfirst(...)
ucfirst = require(string_utilities_module).ucfirst
return ucfirst(...)
end
--[==[
Loaders for objects, which load data (or some other object) into some variable, which can then be accessed as "foo or get_foo()", where the function get_foo sets the object to "foo" and then returns it. This ensures they are only loaded when needed, and avoids the need to check for the existence of the object each time, since once "foo" has been set, "get_foo" will not be called again.]==]
local cat_functions
local function get_cat_functions()
cat_functions, get_cat_functions = require(form_of_functions_module).cat_functions, nil
return cat_functions
end
local default_pagename
local function get_default_pagename()
default_pagename, get_default_pagename = load_data(headword_data_module).pagename, nil
return default_pagename
end
local display_handlers
local function get_display_handlers()
display_handlers, get_display_handlers = require(form_of_functions_module).display_handlers, nil
return display_handlers
end
local m_cats_data
local function get_m_cats_data()
m_cats_data, get_m_cats_data = load_data(form_of_cats_module), nil
return m_cats_data
end
local m_data
local function get_m_data()
-- Needs require.
m_data, get_m_data = require(form_of_data_module), nil
return m_data
end
local m_data1
local function get_m_data1()
m_data1, get_m_data1 = load_data(form_of_data1_module), nil
return m_data1
end
local m_data2
local function get_m_data2()
m_data2, get_m_data2 = load_data(form_of_data2_module), nil
return m_data2
end
local m_pos_data
local function get_m_pos_data()
m_pos_data, get_m_pos_data = load_data(headword_data_module).pos_aliases, nil
return m_pos_data
end
--[==[ intro:
This module implements the underlying processing of {{tl|form of}}, {{tl|inflection of}} and specific variants such as
{{tl|past participle of}} and {{tl|alternative spelling of}}. Most of the logic in this file is to handle tags in
{{tl|inflection of}}. Other related files:
* [[Module:form of/templates]] contains the majority of the logic that implements the templates themselves.
* [[Module:form of/data/1]] is a data-only file containing information on the more common inflection tags, listing the
tags, their shortcuts, the category they belong to (tense-aspect, case, gender, voice-valence, etc.), the appropriate
glossary link and the wikidata ID.
* [[Module:form of/data/2]] is a data-only file containing information on the less common inflection tags, in the same
format as [[Module:form of/data/1]].
* [[Module:form of/lang-data/LANGCODE]] is a data-only file containing information on the language-specific inflection
tags for the language with code LANGCODE, in the same format as [[Module:form of/data/1]]. Language-specific tags
override general tags.
* [[Module:form of/cats]] is a data-only file listing the language-specific categories that are added when the
appropriate combinations of tags are seen for a given language.
* [[Module:form of/functions]] contains functions for use with [[Module:form of/data/1]] and [[Module:form of/cats]].
They are contained in this module because data-only modules can't contain code. The functions in this file are of two
types:
*# Display handlers allow for customization of the display of multipart tags (see below). Currently there is only
one such handler, for handling multipart person tags such as `1//2//3`.
*# Cat functions allow for more complex categorization logic, and are referred to by name in [[Module:form of/cats]].
Currently no such functions exist.
The following terminology is used in conjunction with {{tl|inflection of}}:
* A ''tag'' is a single grammatical item, as specified in a single numbered parameter of {{tl|inflection of}}. Examples
are `masculine`, `nominative`, or `first-person`. Tags may be abbreviated, e.g. `m` for `masculine`, `nom` for
`nominative`, or `1` for `first-person`. Such abbreviations are called ''aliases'', and some tags have multiple
equivalent aliases (e.g. `p` or `pl` for `plural`). The full, non-abbreviated form of a tag is called its
''canonical form''.
* The ''display form'' of a tag is the way it's displayed to the user. Usually the displayed text of the tag is the same
as its canonical form, and it normally functions as a link to a glossary entry explaining the tag. Usually the link is
to an entry in [[Appendix:Glossary]], but sometimes the tag is linked to an individual dictionary entry or to a
Wikipedia entry. Occasionally, the display text differs from the canonical form of the tag. An example is the tag
`comparative case`, which has the display text read as simply `comparative`. Normally, tags referring to cases don't
have the word "case" in them, but in this case the tag `comparative` was already used as an alias for the tag
`comparative degree`, so the tag was named `comparative case` to avoid clashing. A similar situation occurs with
`adverbial case` vs. the grammar tag `adverbial` (as in `adverbial participle`).
* A ''tag set'' is an ordered list of tags, which together express a single inflection, for example, `1|s|pres|ind`,
which can be expanded to canonical-form tags as `first-person|singular|present|indicative`.
* A ''conjoined tag set'' is a tag set that consists of multiple individual tag sets separated by a semicolon, e.g.
`1|s|pres|ind|;|2|s|imp`, which specifies two tag sets, `1|s|pres|ind` as above and `2|s|imp` (in canonical form,
`second-person|singular|imperative`). Multiple tag sets specified in a single call to {{tl|inflection of}} are
specified in this fashion. Conjoined tag sets can also occur in list-tag shortcuts.
* A ''multipart tag'' is a tag that embeds multiple tags within it, such as `f//n` or `nom//acc//voc`. These are used in
the case of [[syncretism]], when the same form applies to multiple inflections. Examples are the Spanish present
subjunctive, where the first-person and third-person singular have the same form (e.g. {{m|es|siga}} from
{{m|es|seguir|t=to follow}}), or Latin third-declension adjectives, where the dative and ablative plural of all
genders have the same form (e.g. {{m|la|omnibus}} from {{m|la|omnis|t=all}}). These would be expressed respectively as
`1//3|s|pres|sub` and `dat//abl|m//f//n|p`, where the use of the multipart tag compactly encodes the syncretism and
avoids the need to individually list out all of the inflections. Multipart tags currently display as a list separated
by a slash, e.g. ''dative/ablative'' or ''masculine/feminine/neuter'' where each individual word is linked
appropriately. As a special case, multipart tags involving persons display specially; for example, the multipart tag
`1//2//3` displays as ''first-, second- and third-person'', with the word "person" occurring only once.
* A ''two-level multipart tag'' is a special type of multipart tag that joins two or more tag sets instead of joining
individual tags. The tags within the tag set are joined by a colon, e.g. `1:s//3:p`, which is displayed as
''first-person singular and third-person plural'', e.g. for use with the form {{m|grc|μέλλον}} of the verb
{{m|grc|μέλλω|t=to intend}}, which uses the tag set `1:s//3:p|impf|actv|indc|unaugmented` to express the syncretism
between the first singular and third plural forms of the imperfect active indicative unaugmented conjugation.
Two-level multipart tags should be used sparingly; if in doubt, list out the inflections separately. [FIXME: Make
two-level multipart tags obsolete.]
* A ''shortcut'' is a tag that expands to any type of tag described above, or to any type of tag set described above.
Aliases are a particular type of shortcut whose expansion is a single non-multipart tag.
* A ''multipart shortcut'' is a shortcut that expands into a multipart tag, for example `123`, which expands to the
multipart tag `1//2//3`. Only the most common such combinations exist as shortcuts.
* A ''list shortcut'' is a special type of shortcut that expands to a list of tags instead of a single tag. For example,
the shortcut `1s` expands to `1|s` (first-person singular). Only the most common such combinations exist as shortcuts.
* A ''conjoined shortcut'' is a special type of list shortcut that consists of a conjoined tag set (multiple logical tag
sets). For example, the English language-specific shortcut `ed-form` expands to `spast|;|past|part`, expressing the
common syncretism between simple past and past participle in English (and in this case, `spast` is itself a list
shortcut that expands to `simple|past`).]==]
-- Add tracking category for PAGE when called from {{inflection of}} or
-- similar TEMPLATE. The tracking category linked to is
-- [[Wiktionary:Tracking/inflection of/PAGE]].
local function track(page)
debug_track("inflection of/" ..
-- avoid including links in pages (may cause error)
page:gsub("%[", "("):gsub("%]", ")"):gsub("|", "!")
)
end
local function wrap_in_span(text, classes)
if classes then
return ("<span class='%s'>%s</span>"):format(classes, text)
else
return text
end
end
local function show_linked_term(data)
local termobj, face, span_classes, ok_to_destructively_modify, overall_lang, text_classes =
data.termobj, data.face, data.span_classes, data.ok_to_destructively_modify, data.overall_lang,
data.text_classes
local need_to_copy, pretext_lang
local categories = {}
if overall_lang and overall_lang:getCode() ~= termobj.lang:getCode() then
local lang_display
lang_display, categories = require(etymology_module).insert_source_cat_get_display {
lang = data.overall_lang,
source = termobj.lang,
}
pretext_lang = wrap_in_span(lang_display .. " ", text_classes)
end
local need_to_show_qualifiers = termobj.q or termobj.qq or termobj.a or termobj.aa or termobj.l or termobj.ll or
termobj.refs
need_to_copy = not ok_to_destructively_modify and (pretext_lang or need_to_show_qualifiers)
if need_to_copy then
termobj = shallow_copy(termobj)
end
if pretext_lang then
termobj.pretext = pretext_lang
end
if need_to_show_qualifiers then
termobj.show_qualifiers = true
end
return wrap_in_span(full_link(termobj, face), span_classes), categories
end
--[==[
Lowest-level implementation of form-of templates, including the general {{tl|form of}} as well as those that deal with
inflection tags, such as the general {{tl|inflection of}}, semi-specific variants such as {{tl|participle of}}, and
specific variants such as {{tl|past participle of}}. `data` contains all the information controlling the display, with
the following fields:
* `.lang`: Overall language of the form-of template. If specified, any lemmas, enclitics or base lemmas that are of a
different language will have that language displayed before the term in question.
* `.text`: Text to insert before the lemmas. Wrapped in the value of `.text_classes`, or its default; see below.
* `.lemmas`: List of objects describing the lemma(s) of which the term in question is a non-lemma form. These are passed
directly to {full_link()} in [[Module:links]]. Each object should have at minimum a `.lang` field containing the
language of the lemma and a `.term` field containing the lemma itself. Each object is formatted using {full_link()}
and then if there are more than one, they are joined using {serialCommaJoin()} in [[Module:table]]. Alternatively,
`.lemmas` can be a string, which is displayed directly, or omitted, to show no lemma links and omit the connecting
text.
* `.lemma_face`: "Face" to use when displaying the lemma objects. Usually should be set to {"term"}.
* `.conj`: Conjunction or separator to use when joining multiple lemma objects. If {nil}, defaults to {"and"}. If this
has the value {false}, the lemmas are preceded with the `.separator` field in each lemma.
* `.enclitics`: List of enclitics to display after the lemmas, in parens.
* `.enclitic_conj`: Conjunction or separator to use when joining multiple enclitics. Defaults to {"and"}.
* `.base_lemmas`: List of base lemmas to display after the lemmas, in the case where the lemmas in `.lemmas` are
themselves forms of another lemma (the base lemma), e.g. a comparative, superlative or participle. Each object is of
the form { { paramobj = PARAM_OBJ, lemmas = {LEMMA_OBJ, LEMMA_OBJ, ...}, conj = "CONJ" }} where PARAM_OBJ describes
the properties of the base lemma parameter (i.e. the relationship between the intermediate and base lemmas);
LEMMA_OBJ is an object suitable to be passed to {full_link()} in [[Module:links]]; and CONJ is the conjunction to
join multiple lemmas with, defaulting to {"and"}. PARAM_OBJ is of the format
{ { param = "PARAM", tags = {"TAG", "TAG", ...} } where PARAM is the name of the parameter to {{tl|inflection of}}
etc. that holds the base lemma(s) of the specified relationship and the tags describe the relationship, such as
{ {"comd"}} or { {"past", "part"}}.
* `.text_classes`: CSS classes used to wrap the tag text and lemma links. Default is
{"form-of-definition use-with-mention"}. Use `false` for no wrapping.
* `.lemma_classes`: Additional CSS classes used to wrap the lemma links. Default is {"form-of-definition-link"}.
Use `false` for no wrapping.
* `.posttext`: Additional text to display after the lemma links.
* `.ok_to_destructively_modify`: If set, data structures (including the nested lemma structures) can be modified
in-place to save memory; otherwise they will be copied before modifying.
Returns two values, the formatted string and any categories to add the page to (which will arise if `.lang` is
specified and a language other than `.lang` is given in one of the lemmas in `.lemmas` or enclitics in `.enclitics`).
]==]
function export.format_form_of(data)
if type(data) ~= "table" then
error("Internal error: First argument must now be a table of arguments")
end
local text_classes = data.text_classes
if text_classes == nil and not data.nowrap then
text_classes = "form-of-definition use-with-mention"
end
local lemma_classes = data.lemma_classes
if lemma_classes == nil then
lemma_classes = "form-of-definition-link"
end
local parts = {}
if text_classes then
insert(parts, "<span class='" .. text_classes .. "'>")
end
insert(parts, data.text)
if data.text ~= "" and data.lemmas then
insert(parts, " ")
end
local categories = {}
if data.lemmas then
if type(data.lemmas) == "string" then
insert(parts, wrap_in_span(data.lemmas, lemma_classes))
else
local formatted_terms = {}
for _, lemma in ipairs(data.lemmas) do
local linked_term, this_categories = show_linked_term {
termobj = lemma,
face = data.lemma_face,
span_classes = lemma_classes,
ok_to_destructively_modify = data.ok_to_destructively_modify,
overall_lang = data.lang,
text_classes = text_classes
}
if this_categories[1] then
extend(categories, this_categories)
end
if data.conj == false and lemma.separator then
insert(formatted_terms, lemma.separator)
end
insert(formatted_terms, linked_term)
end
if data.conj == false then
insert(parts, concat(formatted_terms))
else
insert(parts, serial_comma_join(formatted_terms, {conj = data.conj or "and"}))
end
end
if data.lit then
insert(parts, ", literally " .. require(links_module).mark(data.lit, "gloss"))
end
end
if data.enclitics and #data.enclitics > 0 then
-- The outer parens need to be outside of the text_classes span so they show in upright instead of italic, or
-- they will clash with upright parens generated by link annotations such as transliterations and pos=.
if text_classes then
insert(parts, "</span>")
end
local formatted_terms = {}
for _, enclitic in ipairs(data.enclitics) do
-- FIXME, should we have separate clitic face and/or classes?
local linked_term, this_categories = show_linked_term {
termobj = enclitic,
face = data.lemma_face,
span_classes = lemma_classes,
ok_to_destructively_modify = data.ok_to_destructively_modify,
overall_lang = data.lang,
text_classes = text_classes
}
if this_categories[1] then
extend(categories, this_categories)
end
insert(formatted_terms, linked_term)
end
insert(parts, " (")
insert(parts, wrap_in_span("with enclitic" .. (#data.enclitics > 1 and "s" or "") .. " ", text_classes))
insert(parts, serial_comma_join(formatted_terms, {conj = data.enclitic_conj or "and"}))
insert(parts, ")")
if text_classes then
insert(parts, "<span class='" .. text_classes .. "'>")
end
end
if data.base_lemmas and #data.base_lemmas > 0 then
for _, base_lemma in ipairs(data.base_lemmas) do
insert(parts, ", the ")
if text_classes then
insert(parts, "</span>")
end
insert(parts, (export.tagged_inflections {
lang = data.lang or base_lemma.lemmas[1].lang,
tags = base_lemma.paramobj.tags,
lemmas = base_lemma.lemmas,
conj = base_lemma.conj or "and",
lemma_face = data.lemma_face,
no_format_categories = true,
nocat = true,
text_classes = data.text_classes,
ok_to_destructively_modify = ok_to_destructively_modify,
}))
if text_classes then
insert(parts, "<span class='" .. text_classes .. "'>")
end
end
end
-- FIXME, should posttext go before enclitics? If so we need to have separate handling for the
-- final colon when there are multiple tag sets in tagged_inflections().
if data.posttext then
insert(parts, data.posttext)
end
if text_classes then
insert(parts, "</span>")
end
return concat(parts), categories
end
format_form_of = export.format_form_of
--[==[
Return true if `tag` contains an internal link or HTML.]==]
function export.is_link_or_html(tag)
return tag:find("[[", nil, true) or tag:find("|", nil, true) or tag:find("<", nil, true)
end
is_link_or_html = export.is_link_or_html
--[==[
Look up a tag (either a shortcut of any sort of a canonical long-form tag) and return its expansion. The expansion
will be a string unless the shortcut is a list-tag shortcut such as `1s`; in that case, the expansion will be a
list. The caller must handle both cases. Only one level of expansion happens; hence, `acc` expands to {"accusative"},
`1s` expands to { {"1", "s"}} (not to { {"first", "singular"}}) and `123` expands to {"1//2//3"}. The expansion will be
the same as the passed-in tag in the following circumstances:
# The tag is `;` (this is special-cased, and no lookup is done).
# The tag is a multipart tag such as `nom//acc` (this is special-cased, and no lookup is done).
# The tag contains a raw link (this is special-cased, and no lookup is done).
# The tag contains HTML (this is special-cased, and no lookup is done).
# The tag is already a canonical long-form tag.
# The tag is unrecognized.
This function first looks up in the lang-specific data module [[Module:form of/lang-data/LANGCODE]], then in
[[Module:form of/data/1]] (which includes more common non-lang-specific tags) and finally (only if the tag is not
recognized as a shortcut or canonical tag, and is not of types 1-4 above) in [[Module:form of/data/2]].
If the expansion is a string and is different from the tag, track it if `do_track` is true.]==]
function export.lookup_shortcut(tag, lang, do_track)
-- If there is HTML or a link in the tag, return it directly; don't try
-- to look it up, which will fail.
if tag == ";" or tag:find("//", nil, true) or is_link_or_html(tag) then
return tag
end
local expansion
while lang do
local langdata = safe_load_data(form_of_lang_data_module_prefix .. lang:getCode())
-- If this is a canonical long-form tag, just return it, and don't check for shortcuts. This is an
-- optimization; see below.
if langdata then
if langdata.tags[tag] then
return tag
end
expansion = langdata.shortcuts[tag]
if expansion then
break
end
end
-- If the language has a parent (i.e. a superordinate variety), try again with that.
lang = lang:getParent()
end
if not expansion then
-- If this is a canonical long-form tag, just return it, and don't check for shortcuts (which will cause
-- [[Module:form of/data/2]] to be loaded, because there won't be a shortcut entry in [[Module:form of/data/1]] --
-- or, for that matter, in [[Module:form of/data/2]]). This is an optimization; the code will still work without
-- it, but will use up more memory.
if (m_data1 or get_m_data1()).tags[tag] then
return tag
end
expansion = m_data1.shortcuts[tag]
end
if not expansion then
expansion = (m_data2 or get_m_data2()).shortcuts[tag]
end
if not expansion then
return tag
end
-- Maybe track the expansion if it's not the same as the raw tag.
if do_track and expansion ~= tag and type(expansion) == "string" then
track("tag/" .. tag)
end
return expansion
end
lookup_shortcut = export.lookup_shortcut
--[==[
Look up a normalized/canonicalized tag and return the data object associated with it. If the tag isn't found, return
nil. This first looks up in the lang-specific data module [[Module:form of/lang-data/LANGCODE]], then in
[[Module:form of/data/1]] (which includes more common non-lang-specific tags) and then finally in
[[Module:form of/data/2]].]==]
function export.lookup_tag(tag, lang)
while lang do
local langdata = safe_load_data(form_of_lang_data_module_prefix .. lang:getCode())
local tag = langdata and langdata.tags[tag]
if tag then
return tag
end
-- If the language has a parent (i.e. a superordinate variety), try again with that.
lang = lang:getParent()
end
local tagobj = (m_data1 or get_m_data1()).tags[tag]
if tagobj then
return tagobj
end
local tagobj2 = (m_data2 or get_m_data2()).tags[tag]
if tagobj2 then
return tagobj2
end
return nil
end
lookup_tag = export.lookup_tag
-- Normalize a single tag, which may be a shortcut but should not be a multipart tag, a multipart shortcut or a list
-- shortcut.
local function normalize_single_tag(tag, lang, do_track)
local expansion = lookup_shortcut(tag, lang, do_track)
if type(expansion) ~= "string" then
error("Tag '" .. tag .. "' is a list shortcut, which is not allowed here")
end
tag = expansion
if not lookup_tag(tag, lang) and do_track then
-- If after all expansions and normalizations we don't recognize the canonical tag, track it.
track("unknown")
track("unknown/" .. tag)
end
return tag
end
--[=[
Normalize a component of a multipart tag. This should not have any // in it, but may join multiple individual tags with
a colon, and may be a single list-tag shortcut, which is treated as if colon-separated. The return value may be a list
of tags.
]=]
local function normalize_multipart_component(tag, lang, do_track)
-- If there is HTML or a link in the tag, don't try to split on colon. A colon may legitimately occur in either one,
-- and we don't want these things parsed. Note that we don't do this check before splitting on //, which we don't
-- expect to occur in links or HTML; see comment in normalize_tag().
if is_link_or_html(tag) then
return tag
end
local components = split(tag, ":", true)
if #components == 1 then
-- We allow list-tag shortcuts inside of multipart tags, e.g.
-- '1s//3p'. Check for this now.
tag = lookup_shortcut(tag, lang, do_track)
if type(tag) == "table" then
-- Temporary tracking as we will disallow this.
track("list-tag-inside-of-multipart")
-- We found a list-tag shortcut; treat as if colon-separated.
components = tag
else
return normalize_single_tag(tag, lang, do_track)
end
end
local normtags = {}
-- Temporary tracking as we will disallow this.
track("two-level-multipart")
for _, component in ipairs(components) do
if do_track then
-- There are multiple components; track each of the individual
-- raw tags.
track("tag/" .. component)
end
insert(normtags, normalize_single_tag(component, lang, do_track))
end
return normtags
end
--[=[
Normalize a single tag. The return value may be a list (in the case of multipart tags), which will contain nested lists
in the case of two-level multipart tags.
]=]
local function normalize_tag(tag, lang, do_track)
-- We don't check for links or HTML before splitting on //, which we don't expect to occur in links or HTML. Doing
-- it this way allows for a tag like '{{lb|grc|Epic}}//{{lb|grc|Ionic}}' to function correctly (the template calls
-- will be expanded before we process the tag, and will contain links and HTML). The only check we do is for a URL,
-- which shouldn't normally occur, but might if the user tries to put an external link into the tag. URL's with //
-- normally have the sequence ://, which should never normally occur when // and : are used in their normal ways.
if tag:find("://", nil, true) then
return tag
end
local split_tags = split(tag, "//", true)
if #split_tags == 1 then
local retval = normalize_multipart_component(tag, lang, do_track)
if type(retval) == "table" then
-- The user gave a tag like '1:s', i.e. with colon but without //. Allow this, but we need to return a
-- nested list.
return {retval}
end
return retval
end
local normtags = {}
for _, single_tag in ipairs(split_tags) do
if do_track then
-- If the tag was a multipart tag, track each of individual raw tags.
track("tag/" .. single_tag)
end
insert(normtags, normalize_multipart_component(single_tag, lang, do_track))
end
return normtags
end
--[==[
Normalize a tag set (a list of tags) into its canonical-form tags. The return value is a list of normalized tag sets
(a list because of there may be conjoined shortcuts among the input tags). A normalized tag set is a list of tag
elements, where each element is either a string (the canonical form of a tag), a list of such strings (in the case of
multipart tags) or a list of lists of such strings (in the case of two-level multipart tags). For example, the multipart
tag `nom//acc//voc` will be represented in canonical form as { {"nominative", "accusative", "vocative"}}, and the
two-level multipart tag `1:s//3:p` will be represented as { {{"first-person", "singular"}, {"third-person", "plural"}}}.
Example 1:
{normalize_tag_set({"nom//acc//voc", "n", "p"})} = { {{{"nominative", "accusative", "vocative"}, "masculine", "plural"}}}
Example 2:
{normalize_tag_set({"ed-form"}, ENGLISH)} = { {{"simple", "past"}, {"past", "participle"}}}
Example 3:
{normalize_tag_set({"archaic", "ed-form"}, ENGLISH)} = { {{"archaic", "simple", "past"}, {"archaic", "past", "participle"}}}]==]
function export.normalize_tag_set(tag_set, lang, do_track)
-- We track usage of shortcuts, normalized forms and (in the case of multipart tags or list tags) intermediate
-- forms. For example, if the tags 1s|mn|gen|indefinite are passed in, we track the following:
-- [[Wiktionary:Tracking/inflection of/tag/1s]]
-- [[Wiktionary:Tracking/inflection of/tag/1]]
-- [[Wiktionary:Tracking/inflection of/tag/s]]
-- [[Wiktionary:Tracking/inflection of/tag/first-person]]
-- [[Wiktionary:Tracking/inflection of/tag/singular]]
-- [[Wiktionary:Tracking/inflection of/tag/mn]]
-- [[Wiktionary:Tracking/inflection of/tag/m//n]]
-- [[Wiktionary:Tracking/inflection of/tag/m]]
-- [[Wiktionary:Tracking/inflection of/tag/n]]
-- [[Wiktionary:Tracking/inflection of/tag/masculine]]
-- [[Wiktionary:Tracking/inflection of/tag/neuter]]
-- [[Wiktionary:Tracking/inflection of/tag/gen]]
-- [[Wiktionary:Tracking/inflection of/tag/genitive]]
-- [[Wiktionary:Tracking/inflection of/tag/indefinite]]
local output_tag_set = {}
local saw_semicolon = false
for _, tag in ipairs(tag_set) do
if do_track then
-- Track the raw tag.
track("tag/" .. tag)
end
-- Expand the tag, which may generate a new tag (either a fully canonicalized tag, a multipart tag, or a list
-- of tags).
tag = lookup_shortcut(tag, lang, do_track)
if type(tag) == "table" then
if contains(tag, ";") then
-- If we saw a conjoined shortcut, we need to use a more general algorithm that can expand a single
-- tag set into multiple.
saw_semicolon = true
break
end
for _, t in ipairs(tag) do
if do_track then
-- If the tag expands to a list of raw tags, track each of those.
track("tag/" .. t)
end
insert(output_tag_set, normalize_tag(t, lang, do_track))
end
else
insert(output_tag_set, normalize_tag(tag, lang, do_track))
end
end
if not saw_semicolon then
return {output_tag_set}
end
-- Use a more general algorithm that handles conjoined shortcuts.
output_tag_set = {}
for i, tag in ipairs(tag_set) do
if do_track then
-- Track the raw tag.
track("tag/" .. tag)
end
-- Expand the tag, which may generate a new tag (either a fully canonicalized tag, a multipart tag, or a list
-- of tags).
tag = lookup_shortcut(tag, lang, do_track)
if type(tag) == "table" then
local output_tag_sets = {}
local shortcut_tag_sets = split_tag_set(tag)
local normalized_shortcut_tag_sets = {}
for _, shortcut_tag_set in ipairs(shortcut_tag_sets) do
extend(normalized_shortcut_tag_sets,
normalize_tag_set(shortcut_tag_set, lang, do_track))
end
local after_tags = slice(tag_set, i + 1)
local normalized_after_tags_sets = normalize_tag_set(after_tags, lang, do_track)
for _, normalized_shortcut_tag_set in ipairs(normalized_shortcut_tag_sets) do
for _, normalized_after_tags_set in ipairs(normalized_after_tags_sets) do
insert(output_tag_sets, append(output_tag_set, normalized_shortcut_tag_set,
normalized_after_tags_set))
end
end
return output_tag_sets
else
insert(output_tag_set, normalize_tag(tag, lang, do_track))
end
end
error("Internal error: Should not get here")
end
normalize_tag_set = export.normalize_tag_set
--[==[
Split a tag set that may consist of multiple semicolon-separated tag sets into the component tag sets.]==]
function export.split_tag_set(tag_set)
local split_tag_sets = {}
local cur_tag_set = {}
for _, tag in ipairs(tag_set) do
if tag == ";" then
if #cur_tag_set > 0 then
insert(split_tag_sets, cur_tag_set)
end
cur_tag_set = {}
else
insert(cur_tag_set, tag)
end
end
if #cur_tag_set > 0 then
insert(split_tag_sets, cur_tag_set)
end
return split_tag_sets
end
split_tag_set = export.split_tag_set
local tag_set_param_mods = {
lb = {
item_dest = "labels",
convert = function(arg, parse_err)
return split(arg, "//", true)
end,
}
}
--[==[
Parse tag set properties from a tag set (list of tags). Currently no per-tag properties are recognized, and the only
per-tag-set property recognized is `<lb:...>` for specifing label(s) for the tag set. Per-tag-set properties must be
attached to the last tag.]==]
function export.parse_tag_set_properties(tag_set)
local function generate_tag_set_obj(last_tag)
tag_set[#tag_set] = last_tag
return {tags = tag_set}
end
local last_tag = tag_set[#tag_set]
-- Check for inline modifier, e.g. מרים<tr:Miryem>. But exclude HTML entry with <span ...>, <i ...>, <br/> or
-- similar in it, caused by wrapping an argument in {{l|...}}, {{af|...}} or similar. Basically, all tags of
-- the sort we parse here should consist of a less-than sign, plus letters, plus a colon, e.g. <lb:...>, so if
-- we see a tag on the outer level that isn't in this format, we don't try to parse it. The restriction to the
-- outer level is to allow generated HTML inside of e.g. qualifier tags, such as foo<q:similar to {{m|fr|bar}}>.
if last_tag:find("<", nil, true) and not last_tag:find("^[^<]*<%l*[^%l:]") then
return parse_inline_modifiers(last_tag, {
param_mods = tag_set_param_mods,
generate_obj = generate_tag_set_obj,
})
else
return generate_tag_set_obj(last_tag)
end
end
parse_tag_set_properties = export.parse_tag_set_properties
local function normalize_pos(pos)
if not pos then
return nil
end
return (m_pos_data or get_m_pos_data())[pos] or pos
end
-- Return the display form of a single canonical-form tag. The value
-- passed in must be a string (i.e. it cannot be a list describing a
-- multipart tag). To handle multipart tags, use get_tag_display_form().
-- A truthy `nolink` suppresses linking.
local function get_single_tag_display_form(normtag, lang, nolink)
local data = lookup_tag(normtag, lang)
local display = normtag
-- If the tag has a special display form, use it
if data and data.display then
display = data.display
if nolink then
display = remove_links(display)
end
end
-- If there is a nonempty glossary index, then show a link to it
if not nolink then
local glossary = data and data[(m_data or get_m_data()).GLOSSARY]
if glossary ~= nil then
if glossary == m_data.WIKT then
display = "[[" .. normtag .. "|" .. display .. "]]"
elseif glossary == m_data.WP then
display = "[[w:" .. normtag .. "|" .. display .. "]]"
elseif glossary == m_data.APPENDIX then
display = "[[Lampiran:Glosarium#" .. anchor_encode(normtag) .. "|" .. display .. "]]"
elseif type(glossary) ~= "string" then
error(("Internal error: Wrong type %s for glossary value %s for tag %s"):format(
type(glossary), dump(glossary), normtag))
else
local link = glossary:match("^wikt:(.*)")
if link then
display = "[[" .. link .. "|" .. display .. "]]"
end
if not link then
link = glossary:match("^w:(.*)")
if link then
display = "[[w:" .. link .. "|" .. display .. "]]"
end
end
if not link then
display = "[[Appendix:Glossary#" .. anchor_encode(glossary) .. "|" .. display .. "]]"
end
end
end
end
return display
end
--[==[
Turn a canonicalized tag spec (which describes a single, possibly multipart tag) into the displayed form. The tag spec
may be a string (a canonical-form tag); a list of canonical-form tags (in the case of a simple multipart tag); or a
list of mixed canonical-form tags and lists of such tags (in the case of a two-level multipart tag). `joiner` indicates
how to join the parts of a multipart tag, and can be either {"and"} ("foo and bar", or "foo, bar and baz" for 3 or
more), {"slash"} ("foo/bar"), {"en-dash"} ("foo–bar") or {nil}, which uses the global default found in
{multipart_join_strategy()} in [[Module:form of/functions]]. (NOTE: The global default is {"slash"} and this seems
unlikely to change.) A truthy `nolink` suppresses linking.]==]
function export.get_tag_display_form(tagspec, lang, joiner, nolink)
if type(tagspec) == "string" then
return get_single_tag_display_form(tagspec, lang, nolink)
end
-- We have a multipart tag. See if there's a display handler to display them specially.
for _, handler in ipairs(display_handlers or get_display_handlers()) do
local displayval = handler(tagspec, joiner)
if displayval then
if nolink then
displayval = remove_links(displayval)
end
return displayval
end
end
-- No display handler.
local displayed_tags = {}
for _, first_level_tag in ipairs(tagspec) do
if type(first_level_tag) == "string" then
insert(displayed_tags, get_single_tag_display_form(first_level_tag, lang, nolink))
else
-- A first-level element of a two-level multipart tag. Currently we just separate the individual components
-- with spaces, but other ways are possible, e.g. using an underscore, colon, parens or braces.
local components = {}
for _, component in ipairs(first_level_tag) do
insert(components, get_single_tag_display_form(component, lang, nolink))
end
insert(displayed_tags, concat(components, " "))
end
end
return join_multiparts(displayed_tags, joiner)
end
get_tag_display_form = export.get_tag_display_form
--[==[
Given a normalized tag set (i.e. as output by {normalize_tag_set()}; all tags are in canonical form, multipart tags are
represented as lists, and two-level multipart tags as lists of lists), convert to displayed form (a string). See
{get_tag_display_form()} for the meaning of `joiner`. A truthy `nolink` suppresses linking.]==]
function export.get_tag_set_display_form(normalized_tag_set, lang, joiner, nolink)
local parts = {}
for _, tagspec in ipairs(normalized_tag_set) do
local to_insert = get_tag_display_form(tagspec, lang, joiner, nolink)
-- Maybe insert a space before inserting the display form of the tag. We insert a space if
-- (a) we're not the first tag; and
-- (b) the tag we're about to insert doesn't have the "no_space_on_left" property; and
-- (c) the preceding tag doesn't have the "no_space_on_right" property.
-- NOTE: We depend here on the fact that
-- (1) all tags with either of the above properties set have the same display form as canonical form, and
-- (2) all tags with either of the above properties set are single-character tags.
-- The second property is an optimization to avoid looking up display forms resulting from multipart tags,
-- which won't be found and which will trigger loading of [[Module:form of/data/2]]. If multichar punctuation is
-- added in the future, it's ok to change the == 1 below to <= 2 or <= 3.
--
-- If the first property above fails to hold in the future, we need to track the canonical form of each tag
-- (including the previous one) as well as the display form. This would also avoid the need for the == 1 check.
if #parts > 0 then
local most_recent_tagobj = parts[#parts]:match("^.[\128-\191]*$") and lookup_tag(parts[#parts], lang)
local to_insert_tagobj = to_insert:match("^.[\128-\191]*$") and lookup_tag(to_insert, lang)
if (
(not most_recent_tagobj or not most_recent_tagobj.no_space_on_right) and
(not to_insert_tagobj or not to_insert_tagobj.no_space_on_left)
) then
insert(parts, " ")
end
end
insert(parts, to_insert)
end
return concat(parts)
end
get_tag_set_display_form = export.get_tag_set_display_form
--[==[
Split a tag set containing two-level multipart tags into one or more tag sets not containing such tags.
Single-level multipart tags are left alone. (If we need to, a slight modification of the following code
will also split single-level multipart tags.) This assumes that multipart tags are represented as lists
and two-level multipart tags are represented as lists of lists, as is output by {normalize_tag_set()}.
NOTE: We have to be careful to properly handle imbalanced two-level multipart tags such as
`def:s//p` (or the reverse, `s//def:p`).]==]
local function split_two_level_multipart_tag_set(tag_set)
for i, tag in ipairs(tag_set) do
if type(tag) == "table" then
-- We saw a multipart tag. Check if any of the parts are two-level.
local saw_two_level_tag = false
for _, first_level_tag in ipairs(tag) do
if type(first_level_tag) == "table" then
saw_two_level_tag = true
break
end
end
if saw_two_level_tag then
-- We found a two-level multipart tag.
-- (1) Extract the preceding tags.
local pre_tags = slice(tag_set, 1, i - 1)
-- (2) Extract the following tags.
local post_tags = slice(tag_set, i + 1)
-- (3) Loop over each tag set alternant in the two-level multipart tag.
-- For each alternant, form the tag set consisting of pre_tags + alternant + post_tags,
-- and recursively split that tag set.
local resulting_tag_sets = {}
for _, first_level_tag_set in ipairs(tag) do
local expanded_tag_set = {}
extend(expanded_tag_set, pre_tags)
-- The second level may have a string or a list.
if type(first_level_tag_set) == "table" then
extend(expanded_tag_set, first_level_tag_set)
else
insert(expanded_tag_set, first_level_tag_set)
end
extend(expanded_tag_set, post_tags)
extend(resulting_tag_sets, split_two_level_multipart_tag_set(expanded_tag_set))
end
return resulting_tag_sets
end
end
end
return {tag_set}
end
local function try_lang_specific_module(langcode, modules_tried, name, data)
local lang_specific_module = form_of_lang_data_module_prefix .. langcode .. "/functions"
local langdata = safe_require(lang_specific_module)
if langdata then
insert(modules_tried, lang_specific_module)
if langdata.cat_functions then
local fn = langdata.cat_functions[name]
if fn then
return fn(data), true
end
end
end
return nil, false
end
-- Call a named function, either from the lang-specific data in
-- [[Module:form of/lang-specific/LANGCODE/functions]] or in [[Module:form of/functions]].
local function call_named_function(name, funtype, normalized_tag_set, lang, POS, pagename, lemmas)
local data = {
pagename = pagename or default_pagename or get_default_pagename(),
lemmas = lemmas,
tag_set = normalized_tag_set,
lang = lang,
POS = POS
}
local modules_tried = {}
-- First try lang-specific.
while lang do
local retval, found_it = try_lang_specific_module(lang:getCode(), modules_tried, name, data)
if found_it then
return retval
end
-- If the language has a parent (i.e. a superordinate variety), try again with that.
lang = lang:getParent()
end
-- Try lang-independent.
insert(modules_tried, form_of_functions_module)
local fn = (cat_functions or get_cat_functions())[name]
if fn then
return fn(data)
end
for i, modname in ipairs(modules_tried) do
modules_tried[i] = "[[" .. modname .. "]]"
end
error(("No %s function named '%s' in %s"):format(funtype, name, list_to_text(modules_tried, nil, " or ")))
end
-- Given a tag from the current tag set (which may be a list in case of a multipart tag),
-- and a tag from a categorization spec, check that the two match.
-- (1) If both are strings, we just check for equality.
-- (2) If the spec tag is a string and the tag set tag is a list (i.e. it originates from a
-- multipart tag), we check that the spec tag is in the list. This is because we want to treat
-- multipart tags in user-specified tag sets as if the user had specified multiple tag sets.
-- For example, if the user said "1//3|s|pres|ind" and the categorization spec says {"has", "1"},
-- we want this to match, because "1//3|s|pres|ind" should be treated equivalently to two tag
-- sets "1|s|pres|ind" and "3|s|pres|ind", and the former matches the categorization spec.
-- (3) If the spec tag is a list (i.e. it originates from a multipart tag), we check that the
-- tag set tag is also a list and is a superset of the spec tag. For example, if the categorization
-- spec says {"has", "1//3"}, then the tag set tag must be a multipart tag that has both "1" and "3"
-- in it. "1//3" works, as does "1//2//3".
local function tag_set_tag_matches_spec_tag(tag_set_tag, spec_tag)
if type(spec_tag) == "table" then
if type(tag_set_tag) == "table" and is_subset_list(spec_tag, tag_set_tag) then
return true
end
elseif type(tag_set_tag) == "table" then
if contains(tag_set_tag, spec_tag) then
return true
end
elseif tag_set_tag == spec_tag then
return true
end
return false
end
-- Check that the current tag set matches the given spec tag. This means that any of the tags
-- in the current tag set match, according to tag_set_tag_matches_spec_tag(); see above. If the
-- current tag set contains only string tags (i.e. no multipart tags), and the spec tag is a
-- string (i.e. not a multipart tag), this boils down to list containment, but it gets more
-- complex when multipart tags are present.
local function tag_set_matches_spec_tag(spec_tag, tag_set, lang)
spec_tag = normalize_tag(spec_tag, lang)
for _, tag_set_tag in ipairs(tag_set) do
if tag_set_tag_matches_spec_tag(tag_set_tag, spec_tag) then
return true
end
end
return false
end
-- Check whether the given spec matches the current tag set. Two values are returned:
-- (1) whether the spec matches the tag set; (2) the index of the category to add if
-- the spec matches.
local function check_condition(spec, tag_set, normalized_tag_set, lang, POS, pagename, lemmas)
if type(spec) == "boolean" then
return spec
elseif type(spec) ~= "table" then
error("Wrong type of condition " .. spec .. ": " .. type(spec))
end
local predicate = spec[1]
if predicate == "has" then
return tag_set_matches_spec_tag(spec[2], tag_set, lang), 3
elseif predicate == "hasall" then
for _, tag in ipairs(spec[2]) do
if not tag_set_matches_spec_tag(tag, tag_set, lang) then
return false, 3
end
end
return true, 3
elseif predicate == "hasany" then
for _, tag in ipairs(spec[2]) do
if tag_set_matches_spec_tag(tag, tag_set, lang) then
return true, 3
end
end
return false, 3
elseif predicate == "tags=" then
local normalized_spec_tag_sets = normalize_tag_set(spec[2], lang)
if #normalized_spec_tag_sets > 1 then
error("Internal error: No support for conjoined shortcuts in category/label specs in "
.. "[[Module:form of/cats]] when processing spec tag set " .. concat(spec[2], "|"))
end
local normalized_spec_tag_set = normalized_spec_tag_sets[1]
-- Check for and disallow two-level multipart tags in the specs. FIXME: Remove this when we remove
-- support for two-level multipart tags.
for _, tag in ipairs(normalized_spec_tag_set) do
if type(tag) == "table" then
for _, subtag in ipairs(tag) do
if type(subtag) == "table" then
error("Internal error: No support for two-level multipart tags in category/label specs"
.. "[[Module:form of/cats]] when processing spec tag set "
.. concat(spec[2], "|"))
end
end
end
end
-- Allow tags to be in different orders, and multipart tags to be in different orders. To handle this,
-- we first check that both tag set tags and spec tags have the same length. If so, we sort the
-- multipart tags in the tag set tags and spec tags, and then check that all tags in the spec tags are
-- in the tag set tags.
if #tag_set ~= #normalized_spec_tag_set then
return false, 3
end
local tag_set_tags = deep_copy(tag_set)
for i=1,#tag_set_tags do
if type(tag_set_tags[i]) == "table" then
sort(tag_set_tags[i])
end
if type(normalized_spec_tag_set[i]) == "table" then
sort(normalized_spec_tag_set[i])
end
end
for i=1,#tag_set_tags do
if not contains(tag_set_tags, normalized_spec_tag_set[i]) then
return false, 3
end
end
return true, 3
elseif predicate == "p=" then
return POS == normalize_pos(spec[2]), 3
elseif predicate == "pany" then
for _, specpos in ipairs(spec[2]) do
if POS == normalize_pos(specpos) then
return true, 3
end
end
return false, 3
elseif predicate == "pexists" then
return POS ~= nil, 2
elseif predicate == "not" then
local condval = check_condition(spec[2], tag_set, normalized_tag_set, lang, POS, pagename, lemmas)
return not condval, 3
elseif predicate == "and" then
local condval = check_condition(spec[2], tag_set, normalized_tag_set, lang, POS, pagename, lemmas)
if condval then
condval = check_condition(spec[3], tag_set, normalized_tag_set, lang, POS, pagename, lemmas)
end
return condval, 4
elseif predicate == "or" then
local condval = check_condition(spec[2], tag_set, normalized_tag_set, lang, POS, pagename, lemmas)
if not condval then
condval = check_condition(spec[3], tag_set, normalized_tag_set, lang, POS, pagename, lemmas)
end
return condval, 4
elseif predicate == "call" then
return call_named_function(spec[2], "condition", normalized_tag_set, lang, POS, pagename, lemmas), 3
else
error("Unrecognized predicate: " .. predicate)
end
end
-- Process a given spec. This checks any conditions in the spec against the
-- tag set, and insert any resulting categories into `categories`. Return value
-- is true if the outermost condition evaluated to true and a category was inserted
-- (this is used in {"cond" ...} conditions, which stop when a subcondition evaluates
-- to true).
local function process_spec(spec, tag_set, normalized_tag_set, lang, POS, pagename, lemmas, categories, labels)
if not spec then
return false
elseif type(spec) == "string" then
-- A category. Substitute POS request with user-specified part of speech or default.
spec = spec:gsub("<<p=(.-)>>", function(default)
return POS or normalize_pos(default)
end)
insert(categories, lang:getFullName() .. " " .. spec)
return true
elseif type(spec) == "table" and spec.labels then
-- A label spec.
for _, label in ipairs(spec.labels) do
insert_if_not(labels, label)
end
return true
elseif type(spec) ~= "table" then
error("Wrong type of specification " .. spec .. ": " .. type(spec))
end
local predicate = spec[1]
if predicate == "multi" then
for _, sp in iterate_from(2, ipairs(spec)) do -- Iterate from 2.
process_spec(sp, tag_set, normalized_tag_set, lang, POS, pagename, lemmas, categories, labels)
end
return true
elseif predicate == "cond" then
for _, sp in iterate_from(2, ipairs(spec)) do -- Iterate from 2.
if process_spec(sp, tag_set, normalized_tag_set, lang, POS, pagename, lemmas, categories, labels) then
return true
end
end
return false
elseif predicate == "call" then
return process_spec(
call_named_function(spec[2], "spec", normalized_tag_set, lang, POS, pagename, lemmas),
tag_set, normalized_tag_set, lang, POS, pagename, lemmas, categories, labels
)
else
local condval, ifspec = check_condition(spec, tag_set, normalized_tag_set, lang, POS, pagename, lemmas)
if condval then
process_spec(spec[ifspec], tag_set, normalized_tag_set, lang, POS, pagename, lemmas, categories, labels)
return true
else
process_spec(spec[ifspec + 1], tag_set, normalized_tag_set, lang, POS, pagename, lemmas, categories, labels)
-- FIXME: Are we sure this is correct?
return false
end
end
end
--[==[
Given a normalized tag set (i.e. as output by {normalize_tag_set()}; all tags are in canonical form, multipart tags are
represented as lists, and two-level multipart tags as lists of lists), fetch the associated categories and labels.
Return two values, a list of categories and a list of labels. `lang` is the language of term represented by the tag set,
and `POS` is the user-provided part of speech (which may be {nil}).]==]
function export.fetch_categories_and_labels(normalized_tag_set, lang, POS, pagename, lemmas)
local categories, labels = {}, {}
POS = normalize_pos(POS)
-- First split any two-level multipart tags into multiple sets, to make our life easier.
for _, tag_set in ipairs(split_two_level_multipart_tag_set(normalized_tag_set)) do
local langcode = lang:getCode()
local langspecs = (m_cats_data or get_m_cats_data())[langcode]
if langspecs then
for _, spec in ipairs(langspecs) do
process_spec(spec, tag_set, normalized_tag_set, lang, POS, pagename, lemmas, categories, labels)
end
end
local full_code = lang:getFullCode()
if full_code ~= langcode then
local langspecs = (m_cats_data or get_m_cats_data())[full_code]
if langspecs then
for _, spec in ipairs(langspecs) do
process_spec(spec, tag_set, normalized_tag_set, lang, POS, pagename, lemmas, categories, labels)
end
end
end
if full_code ~= "und" then
local langspecs = (m_cats_data or get_m_cats_data())["und"]
if langspecs then
for _, spec in ipairs(langspecs) do
process_spec(spec, tag_set, normalized_tag_set, lang, POS, pagename, lemmas, categories, labels)
end
end
end
end
return categories, labels
end
fetch_categories_and_labels = export.fetch_categories_and_labels
local function format_labels(labels, data, notext)
if labels and #labels > 0 then
return show_labels{
labels = labels,
lang = data.lang,
sort = data.sort,
nocat = data.nocat
} .. (notext and (data.pretext or "") == "" and "" or " ")
else
return ""
end
end
--[==[
Implementation of templates that display inflection tags, such as the general {{tl|inflection of}}, semi-specific
variants such as {{tl|participle of}}, and specific variants such as {{tl|past participle of}}. `data` contains all the
information controlling the display, with the following fields:
* `.lang`: ('''''required''''') Language to use when looking up language-specific inflection tags, categories and
labels, and for displaying categories and labels.
* `.tags`: ('''''required''' unless `.tag_sets` is given'') List of non-canonicalized inflection tags. Multiple tag sets
can be indicated by a {";"} as one of the tags, and tag-set properties may be attached to the last tag of a tag set.
The tags themselves may come directly from the user (as in {{tl|inflection of}}); come partly from the user (as in
{{tl|participle of}}, which adds the tag `part` to user-specified inflection tags); or be entirely specified by the
template (as in {{tl|past participle of}}).
* `.tag_sets`: ('''''required''' unless `.tags` is given'') List of non-canonicalized tag sets and associated
per-tag-set properties. Each element of the list is an object of the form
{ {tags = {"TAG", "TAG", ...}, labels = {"LABEL", "LABEL", ...}}. If `.tag_sets` is specified, `.tags` should not be
given and vice-versa. Specifying `.tag_sets` in place of tags allowed per-tag set labels to be specified; otherwise,
there is no advantage. [[Module:pt-gl-inflections]] uses this functionality to supply labels like {"Brazil"} and
{"Portugal"} associated with specific tag sets.
* `.lemmas`: ('''''recommended''''') List of objects describing the lemma(s) of which the term in question is a
non-lemma form. These are passed directly to {full_link()} in [[Module:links]]. Each object should have at minimum a
`.lang` field containing the language of the lemma and a `.term` field containing the lemma itself. Each object is
formatted using {full_link()} and then if there are more than one, they are joined using {serialCommaJoin()} in
[[Module:table]]. Alternatively, `.lemmas` can be a string, which is displayed directly. If omitted entirely, no lemma
links are shown and the connecting "of" is also omitted.
* `.lemma_face`: ('''''recommended''''') "Face" to use when displaying the lemma objects. Usually should be set to
{"term"}.
* `.POS`: ('''''recommended''''') Categorizing part-of-speech tag. Comes from the {{para|p}} or {{para|POS}} argument of
{{tl|inflection of}}.
* `.pagename`: Page name of "current" page or nil to use the actual page title; for testing purposes.
* `.conj`: Conjunction or separator to use when joining multiple lemma objects. Defaults to {"and"}.
* `.enclitics`: List of enclitics to display after the lemmas, in parens.
* `.enclitic_conj`: Conjunction or separator to use when joining multiple enclitics. Defaults to {"and"}.
* `.no_format_categories`: If true, don't format the categories derived from the inflection tags; just return them.
* `.sort`: Sort key for formatted categories. Ignored when `.no_format_categories` = {true}.
* `.nocat`: Suppress computation of categories (even if `.no_format_categories` is not given).
* `.notext`: Disable display of all tag text and `inflection of` text. (FIXME: Maybe not implemented correctly.)
* `.nolink`: Suppress linking of terms in inflection tags.
* `.capfirst`: Capitalize the first word displayed.
* `.pretext`: Additional text to display before the inflection tags, but after any top-level labels.
* `.posttext`: Additional text to display after the lemma links.
* `.text_classes`: CSS classes used to wrap the tag text and lemma links. Default is
{"form-of-definition use-with-mention"}.
* `.lemma_classes`: Additional CSS classes used to wrap the lemma links. Default is {"form-of-definition-link"}.
* `.joiner`: Override the joiner (normally a slash) used to join multipart tags. You should normally not specify this.
* `.nowrap`: Do not wrap the form-of definitions in a span, unless `.text_classes` is specified.
* `.ok_to_destructively_modify`: If set, data structures (including the nested lemma structures) can be modified
in-place to save memory; otherwise they will be copied before modifying.
A typical call might look like this (for {{m+|es|amo}}): {
local lang = require("Module:languages").getByCode("es")
local lemma_obj = {
lang = lang,
term = "amar",
}
return m_form_of.tagged_inflections({
lang = lang, tags = {"1", "s", "pres", "ind"}, lemmas = {lemma_obj}, lemma_face = "term", POS = "verb"
})
}
Normally, one value is returned, the formatted text, which has appended to it the formatted categories derived from the
tag-set-related categories generated by the specs in [Module:form of/cats]]. To suppress this, set
`data.no_format_categories` = {true}, in which case two values are returned, the formatted text without any formatted
categories appended and a list of the categories to be formatted.
NOTE: There are two sets of categories that may be generated: (1) categories derived directly from the tag sets, as
specified in [[Module:form of/cats]]; (2) categories derived from tag-set labels, either (a) set explicitly by the
caller in `data.tag_sets`, (b) specified by the user using `<lb:...>` attached to the last tag in a tag set, or
(c) specified in [[Module:form of/cats]]. The second type (label-related categories) are currently not returned in
the second return value of {tagged_inflections()}, and are currently inserted into the output text even if
`data.no_format_categories` is set to {true}; but they can be suppressed by setting `data.nocat` = {true} (which also
suppresses the first type of categories, those derived directly from tag sets, even if `data.no_format_categories` is
set to {true}).]==]
function export.tagged_inflections(data)
if not data.tags and not data.tag_sets then
error("First argument must be a table of arguments, and `.tags` or `.tag_sets` must be specified")
end
if data.tags and data.tag_sets then
error("Both `.tags` and `.tag_sets` cannot be specified")
end
local tag_sets = data.tag_sets
if not tag_sets then
tag_sets = split_tag_set(data.tags)
for i, tag_set in ipairs(tag_sets) do
tag_sets[i] = parse_tag_set_properties(tag_set)
end
end
local inflections = {}
local categories = {}
for _, tag_set in ipairs(tag_sets) do
local normalized_tag_sets = normalize_tag_set(tag_set.tags, data.lang, "do-track")
for _, normalized_tag_set in ipairs(normalized_tag_sets) do
local this_categories, this_labels = fetch_categories_and_labels(normalized_tag_set, data.lang,
data.POS, data.pagename, type(data.lemmas) == "table" and data.lemmas or nil)
if not data.nocat then
extend(categories, this_categories)
end
local cur_infl = get_tag_set_display_form(normalized_tag_set, data.lang, data.joiner, data.nolink)
if #cur_infl > 0 then
if tag_set.labels then
this_labels = append(tag_set.labels, this_labels)
end
insert(inflections, {infl_text = cur_infl, labels = this_labels})
end
end
end
local overall_labels, need_per_tag_set_labels
for _, inflection in ipairs(inflections) do
if overall_labels == nil then
overall_labels = inflection.labels
elseif not deep_equals(overall_labels, inflection.labels) then
need_per_tag_set_labels = true
overall_labels = nil
break
end
end
if not need_per_tag_set_labels then
for _, inflection in ipairs(inflections) do
inflection.labels = nil
end
end
local format_data = shallow_copy(data)
local of_text = data.lemmas and " of" or ""
local formatted_text, this_categories
if #inflections == 1 then
if need_per_tag_set_labels then
error("Internal error: need_per_tag_set_labels should not be set with one inflection")
end
format_data.text = format_labels(overall_labels, data, data.notext) .. (data.pretext or "") .. (data.notext and "" or
((data.capfirst and ucfirst(inflections[1].infl_text) or inflections[1].infl_text) .. of_text))
formatted_text, this_categories = format_form_of(format_data)
else
format_data.text = format_labels(overall_labels, data, data.notext) .. (data.pretext or "") .. (data.notext and "" or
((data.capfirst and "Inflection" or "inflection") .. of_text))
format_data.posttext = (data.posttext or "") .. ":"
local link
link, this_categories = format_form_of(format_data)
local text_classes = data.text_classes
if text_classes == nil and not data.nowrap then
text_classes = "form-of-definition use-with-mention"
end
for i, inflection in ipairs(inflections) do
inflections[i] = "\n## " .. format_labels(inflection.labels, data, false) ..
wrap_in_span(inflection.infl_text, text_classes)
end
formatted_text = link .. concat(inflections)
end
if this_categories[1] then
extend(categories, this_categories)
end
if not data.no_format_categories then
if categories[1] then
formatted_text = formatted_text .. format_categories(categories, data.lang,
data.sort, nil, export.force_cat)
end
return formatted_text
end
return formatted_text, categories
end
function export.dump_form_of_data(frame)
local data = {
require(form_of_data1_module),
require(form_of_data2_module)
}
return require(json_module).toJSON(data)
end
export.form_of_cats_module = form_of_cats_module
export.form_of_data1_module = form_of_data1_module
export.form_of_data2_module = form_of_data2_module
export.form_of_functions_module = form_of_functions_module
export.form_of_lang_data_module_prefix = form_of_lang_data_module_prefix
export.headword_data_module = headword_data_module -- so all form-of modules stay in sync
return export
spqevjroi6wtcbwmg2cuahzt02bpluw
1349864
1349846
2026-04-14T13:56:22Z
Swarabakti
18192
1349864
Scribunto
text/plain
local export = {}
export.force_cat = false -- for testing; set to true to display categories even on non-mainspace pages
local debug_track_module = "Module:debug/track"
local etymology_module = "Module:etymology"
local form_of_cats_module = "Module:form of/cats"
local form_of_data_module = "Module:form of/data"
local form_of_data1_module = "Module:form of/data/1"
local form_of_data2_module = "Module:form of/data/2"
local form_of_functions_module = "Module:form of/functions"
local form_of_lang_data_module_prefix = "Module:form of/lang-data/"
local function_module = "Module:fun"
local headword_data_module = "Module:headword/data"
local json_module = "Module:JSON"
local labels_module = "Module:labels"
local links_module = "Module:links"
local load_module = "Module:load"
local parse_utilities_module = "Module:parse utilities"
local string_utilities_module = "Module:string utilities"
local table_module = "Module:table"
local table_deep_equals_module = "Module:table/deepEquals"
local utilities_module = "Module:utilities"
local anchor_encode = mw.uri.anchorEncode
local concat = table.concat
local dump = mw.dumpObject
local fetch_categories_and_labels -- Defined below.
local format_form_of -- Defined below.
local get_tag_display_form -- Defined below.
local get_tag_set_display_form -- Defined below.
local insert = table.insert
local ipairs = ipairs
local is_link_or_html -- Defined below.
local list_to_text = mw.text.listToText
local lookup_shortcut -- Defined below.
local lookup_tag -- Defined below.
local normalize_tag_set -- Defined below.
local parse_tag_set_properties -- Defined below.
local require = require
local sort = table.sort
local split_tag_set -- Defined below.
local type = type
--[==[
Loaders for functions in other modules, which overwrite themselves with the target function when called. This ensures modules are only loaded when needed, retains the speed/convenience of locally-declared pre-loaded functions, and has no overhead after the first call, since the target functions are called directly in any subsequent calls.]==]
local function append(...)
append = require(table_module).append
return append(...)
end
local function contains(...)
contains = require(table_module).contains
return contains(...)
end
local function debug_track(...)
debug_track = require(debug_track_module)
return debug_track(...)
end
local function deep_copy(...)
deep_copy = require(table_module).deepCopy
return deep_copy(...)
end
local function deep_equals(...)
deep_equals = require(table_deep_equals_module)
return deep_equals(...)
end
local function extend(...)
extend = require(table_module).extend
return extend(...)
end
local function format_categories(...)
format_categories = require(utilities_module).format_categories
return format_categories(...)
end
local function full_link(...)
full_link = require(links_module).full_link
return full_link(...)
end
local function insert_if_not(...)
insert_if_not = require(table_module).insertIfNot
return insert_if_not(...)
end
local function is_subset_list(...)
is_subset_list = require(table_module).isSubsetList
return is_subset_list(...)
end
local function iterate_from(...)
iterate_from = require(function_module).iterateFrom
return iterate_from(...)
end
local function join_multiparts(...)
join_multiparts = require(form_of_functions_module).join_multiparts
return join_multiparts(...)
end
local function load_data(...)
load_data = require(load_module).load_data
return load_data(...)
end
local function parse_inline_modifiers(...)
parse_inline_modifiers = require(parse_utilities_module).parse_inline_modifiers
return parse_inline_modifiers(...)
end
local function remove_links(...)
remove_links = require(links_module).remove_links
return remove_links(...)
end
local function safe_load_data(...)
safe_load_data = require(load_module).safe_load_data
return safe_load_data(...)
end
local function safe_require(...)
safe_require = require(load_module).safe_require
return safe_require(...)
end
local function serial_comma_join(...)
serial_comma_join = require(table_module).serialCommaJoin
return serial_comma_join(...)
end
local function shallow_copy(...)
shallow_copy = require(table_module).shallowCopy
return shallow_copy(...)
end
local function show_labels(...)
show_labels = require(labels_module).show_labels
return show_labels(...)
end
local function slice(...)
slice = require(table_module).slice
return slice(...)
end
local function split(...)
split = require(string_utilities_module).split
return split(...)
end
local function ucfirst(...)
ucfirst = require(string_utilities_module).ucfirst
return ucfirst(...)
end
--[==[
Loaders for objects, which load data (or some other object) into some variable, which can then be accessed as "foo or get_foo()", where the function get_foo sets the object to "foo" and then returns it. This ensures they are only loaded when needed, and avoids the need to check for the existence of the object each time, since once "foo" has been set, "get_foo" will not be called again.]==]
local cat_functions
local function get_cat_functions()
cat_functions, get_cat_functions = require(form_of_functions_module).cat_functions, nil
return cat_functions
end
local default_pagename
local function get_default_pagename()
default_pagename, get_default_pagename = load_data(headword_data_module).pagename, nil
return default_pagename
end
local display_handlers
local function get_display_handlers()
display_handlers, get_display_handlers = require(form_of_functions_module).display_handlers, nil
return display_handlers
end
local m_cats_data
local function get_m_cats_data()
m_cats_data, get_m_cats_data = load_data(form_of_cats_module), nil
return m_cats_data
end
local m_data
local function get_m_data()
-- Needs require.
m_data, get_m_data = require(form_of_data_module), nil
return m_data
end
local m_data1
local function get_m_data1()
m_data1, get_m_data1 = load_data(form_of_data1_module), nil
return m_data1
end
local m_data2
local function get_m_data2()
m_data2, get_m_data2 = load_data(form_of_data2_module), nil
return m_data2
end
local m_pos_data
local function get_m_pos_data()
m_pos_data, get_m_pos_data = load_data(headword_data_module).pos_aliases, nil
return m_pos_data
end
--[==[ intro:
This module implements the underlying processing of {{tl|form of}}, {{tl|inflection of}} and specific variants such as
{{tl|past participle of}} and {{tl|alternative spelling of}}. Most of the logic in this file is to handle tags in
{{tl|inflection of}}. Other related files:
* [[Module:form of/templates]] contains the majority of the logic that implements the templates themselves.
* [[Module:form of/data/1]] is a data-only file containing information on the more common inflection tags, listing the
tags, their shortcuts, the category they belong to (tense-aspect, case, gender, voice-valence, etc.), the appropriate
glossary link and the wikidata ID.
* [[Module:form of/data/2]] is a data-only file containing information on the less common inflection tags, in the same
format as [[Module:form of/data/1]].
* [[Module:form of/lang-data/LANGCODE]] is a data-only file containing information on the language-specific inflection
tags for the language with code LANGCODE, in the same format as [[Module:form of/data/1]]. Language-specific tags
override general tags.
* [[Module:form of/cats]] is a data-only file listing the language-specific categories that are added when the
appropriate combinations of tags are seen for a given language.
* [[Module:form of/functions]] contains functions for use with [[Module:form of/data/1]] and [[Module:form of/cats]].
They are contained in this module because data-only modules can't contain code. The functions in this file are of two
types:
*# Display handlers allow for customization of the display of multipart tags (see below). Currently there is only
one such handler, for handling multipart person tags such as `1//2//3`.
*# Cat functions allow for more complex categorization logic, and are referred to by name in [[Module:form of/cats]].
Currently no such functions exist.
The following terminology is used in conjunction with {{tl|inflection of}}:
* A ''tag'' is a single grammatical item, as specified in a single numbered parameter of {{tl|inflection of}}. Examples
are `masculine`, `nominative`, or `first-person`. Tags may be abbreviated, e.g. `m` for `masculine`, `nom` for
`nominative`, or `1` for `first-person`. Such abbreviations are called ''aliases'', and some tags have multiple
equivalent aliases (e.g. `p` or `pl` for `plural`). The full, non-abbreviated form of a tag is called its
''canonical form''.
* The ''display form'' of a tag is the way it's displayed to the user. Usually the displayed text of the tag is the same
as its canonical form, and it normally functions as a link to a glossary entry explaining the tag. Usually the link is
to an entry in [[Appendix:Glossary]], but sometimes the tag is linked to an individual dictionary entry or to a
Wikipedia entry. Occasionally, the display text differs from the canonical form of the tag. An example is the tag
`comparative case`, which has the display text read as simply `comparative`. Normally, tags referring to cases don't
have the word "case" in them, but in this case the tag `comparative` was already used as an alias for the tag
`comparative degree`, so the tag was named `comparative case` to avoid clashing. A similar situation occurs with
`adverbial case` vs. the grammar tag `adverbial` (as in `adverbial participle`).
* A ''tag set'' is an ordered list of tags, which together express a single inflection, for example, `1|s|pres|ind`,
which can be expanded to canonical-form tags as `first-person|singular|present|indicative`.
* A ''conjoined tag set'' is a tag set that consists of multiple individual tag sets separated by a semicolon, e.g.
`1|s|pres|ind|;|2|s|imp`, which specifies two tag sets, `1|s|pres|ind` as above and `2|s|imp` (in canonical form,
`second-person|singular|imperative`). Multiple tag sets specified in a single call to {{tl|inflection of}} are
specified in this fashion. Conjoined tag sets can also occur in list-tag shortcuts.
* A ''multipart tag'' is a tag that embeds multiple tags within it, such as `f//n` or `nom//acc//voc`. These are used in
the case of [[syncretism]], when the same form applies to multiple inflections. Examples are the Spanish present
subjunctive, where the first-person and third-person singular have the same form (e.g. {{m|es|siga}} from
{{m|es|seguir|t=to follow}}), or Latin third-declension adjectives, where the dative and ablative plural of all
genders have the same form (e.g. {{m|la|omnibus}} from {{m|la|omnis|t=all}}). These would be expressed respectively as
`1//3|s|pres|sub` and `dat//abl|m//f//n|p`, where the use of the multipart tag compactly encodes the syncretism and
avoids the need to individually list out all of the inflections. Multipart tags currently display as a list separated
by a slash, e.g. ''dative/ablative'' or ''masculine/feminine/neuter'' where each individual word is linked
appropriately. As a special case, multipart tags involving persons display specially; for example, the multipart tag
`1//2//3` displays as ''first-, second- and third-person'', with the word "person" occurring only once.
* A ''two-level multipart tag'' is a special type of multipart tag that joins two or more tag sets instead of joining
individual tags. The tags within the tag set are joined by a colon, e.g. `1:s//3:p`, which is displayed as
''first-person singular and third-person plural'', e.g. for use with the form {{m|grc|μέλλον}} of the verb
{{m|grc|μέλλω|t=to intend}}, which uses the tag set `1:s//3:p|impf|actv|indc|unaugmented` to express the syncretism
between the first singular and third plural forms of the imperfect active indicative unaugmented conjugation.
Two-level multipart tags should be used sparingly; if in doubt, list out the inflections separately. [FIXME: Make
two-level multipart tags obsolete.]
* A ''shortcut'' is a tag that expands to any type of tag described above, or to any type of tag set described above.
Aliases are a particular type of shortcut whose expansion is a single non-multipart tag.
* A ''multipart shortcut'' is a shortcut that expands into a multipart tag, for example `123`, which expands to the
multipart tag `1//2//3`. Only the most common such combinations exist as shortcuts.
* A ''list shortcut'' is a special type of shortcut that expands to a list of tags instead of a single tag. For example,
the shortcut `1s` expands to `1|s` (first-person singular). Only the most common such combinations exist as shortcuts.
* A ''conjoined shortcut'' is a special type of list shortcut that consists of a conjoined tag set (multiple logical tag
sets). For example, the English language-specific shortcut `ed-form` expands to `spast|;|past|part`, expressing the
common syncretism between simple past and past participle in English (and in this case, `spast` is itself a list
shortcut that expands to `simple|past`).]==]
-- Add tracking category for PAGE when called from {{inflection of}} or
-- similar TEMPLATE. The tracking category linked to is
-- [[Wiktionary:Tracking/inflection of/PAGE]].
local function track(page)
debug_track("inflection of/" ..
-- avoid including links in pages (may cause error)
page:gsub("%[", "("):gsub("%]", ")"):gsub("|", "!")
)
end
local function wrap_in_span(text, classes)
if classes then
return ("<span class='%s'>%s</span>"):format(classes, text)
else
return text
end
end
local function show_linked_term(data)
local termobj, face, span_classes, ok_to_destructively_modify, overall_lang, text_classes =
data.termobj, data.face, data.span_classes, data.ok_to_destructively_modify, data.overall_lang,
data.text_classes
local need_to_copy, pretext_lang
local categories = {}
if overall_lang and overall_lang:getCode() ~= termobj.lang:getCode() then
local lang_display
lang_display, categories = require(etymology_module).insert_source_cat_get_display {
lang = data.overall_lang,
source = termobj.lang,
}
pretext_lang = wrap_in_span(lang_display .. " ", text_classes)
end
local need_to_show_qualifiers = termobj.q or termobj.qq or termobj.a or termobj.aa or termobj.l or termobj.ll or
termobj.refs
need_to_copy = not ok_to_destructively_modify and (pretext_lang or need_to_show_qualifiers)
if need_to_copy then
termobj = shallow_copy(termobj)
end
if pretext_lang then
termobj.pretext = pretext_lang
end
if need_to_show_qualifiers then
termobj.show_qualifiers = true
end
return wrap_in_span(full_link(termobj, face), span_classes), categories
end
--[==[
Lowest-level implementation of form-of templates, including the general {{tl|form of}} as well as those that deal with
inflection tags, such as the general {{tl|inflection of}}, semi-specific variants such as {{tl|participle of}}, and
specific variants such as {{tl|past participle of}}. `data` contains all the information controlling the display, with
the following fields:
* `.lang`: Overall language of the form-of template. If specified, any lemmas, enclitics or base lemmas that are of a
different language will have that language displayed before the term in question.
* `.text`: Text to insert before the lemmas. Wrapped in the value of `.text_classes`, or its default; see below.
* `.lemmas`: List of objects describing the lemma(s) of which the term in question is a non-lemma form. These are passed
directly to {full_link()} in [[Module:links]]. Each object should have at minimum a `.lang` field containing the
language of the lemma and a `.term` field containing the lemma itself. Each object is formatted using {full_link()}
and then if there are more than one, they are joined using {serialCommaJoin()} in [[Module:table]]. Alternatively,
`.lemmas` can be a string, which is displayed directly, or omitted, to show no lemma links and omit the connecting
text.
* `.lemma_face`: "Face" to use when displaying the lemma objects. Usually should be set to {"term"}.
* `.conj`: Conjunction or separator to use when joining multiple lemma objects. If {nil}, defaults to {"and"}. If this
has the value {false}, the lemmas are preceded with the `.separator` field in each lemma.
* `.enclitics`: List of enclitics to display after the lemmas, in parens.
* `.enclitic_conj`: Conjunction or separator to use when joining multiple enclitics. Defaults to {"and"}.
* `.base_lemmas`: List of base lemmas to display after the lemmas, in the case where the lemmas in `.lemmas` are
themselves forms of another lemma (the base lemma), e.g. a comparative, superlative or participle. Each object is of
the form { { paramobj = PARAM_OBJ, lemmas = {LEMMA_OBJ, LEMMA_OBJ, ...}, conj = "CONJ" }} where PARAM_OBJ describes
the properties of the base lemma parameter (i.e. the relationship between the intermediate and base lemmas);
LEMMA_OBJ is an object suitable to be passed to {full_link()} in [[Module:links]]; and CONJ is the conjunction to
join multiple lemmas with, defaulting to {"and"}. PARAM_OBJ is of the format
{ { param = "PARAM", tags = {"TAG", "TAG", ...} } where PARAM is the name of the parameter to {{tl|inflection of}}
etc. that holds the base lemma(s) of the specified relationship and the tags describe the relationship, such as
{ {"comd"}} or { {"past", "part"}}.
* `.text_classes`: CSS classes used to wrap the tag text and lemma links. Default is
{"form-of-definition use-with-mention"}. Use `false` for no wrapping.
* `.lemma_classes`: Additional CSS classes used to wrap the lemma links. Default is {"form-of-definition-link"}.
Use `false` for no wrapping.
* `.posttext`: Additional text to display after the lemma links.
* `.ok_to_destructively_modify`: If set, data structures (including the nested lemma structures) can be modified
in-place to save memory; otherwise they will be copied before modifying.
Returns two values, the formatted string and any categories to add the page to (which will arise if `.lang` is
specified and a language other than `.lang` is given in one of the lemmas in `.lemmas` or enclitics in `.enclitics`).
]==]
function export.format_form_of(data)
if type(data) ~= "table" then
error("Internal error: First argument must now be a table of arguments")
end
local text_classes = data.text_classes
if text_classes == nil and not data.nowrap then
text_classes = "form-of-definition use-with-mention"
end
local lemma_classes = data.lemma_classes
if lemma_classes == nil then
lemma_classes = "form-of-definition-link"
end
local parts = {}
if text_classes then
insert(parts, "<span class='" .. text_classes .. "'>")
end
insert(parts, data.text)
if data.text ~= "" and data.lemmas then
insert(parts, " ")
end
local categories = {}
if data.lemmas then
if type(data.lemmas) == "string" then
insert(parts, wrap_in_span(data.lemmas, lemma_classes))
else
local formatted_terms = {}
for _, lemma in ipairs(data.lemmas) do
local linked_term, this_categories = show_linked_term {
termobj = lemma,
face = data.lemma_face,
span_classes = lemma_classes,
ok_to_destructively_modify = data.ok_to_destructively_modify,
overall_lang = data.lang,
text_classes = text_classes
}
if this_categories[1] then
extend(categories, this_categories)
end
if data.conj == false and lemma.separator then
insert(formatted_terms, lemma.separator)
end
insert(formatted_terms, linked_term)
end
if data.conj == false then
insert(parts, concat(formatted_terms))
else
insert(parts, serial_comma_join(formatted_terms, {conj = data.conj or "and"}))
end
end
if data.lit then
insert(parts, ", literally " .. require(links_module).mark(data.lit, "gloss"))
end
end
if data.enclitics and #data.enclitics > 0 then
-- The outer parens need to be outside of the text_classes span so they show in upright instead of italic, or
-- they will clash with upright parens generated by link annotations such as transliterations and pos=.
if text_classes then
insert(parts, "</span>")
end
local formatted_terms = {}
for _, enclitic in ipairs(data.enclitics) do
-- FIXME, should we have separate clitic face and/or classes?
local linked_term, this_categories = show_linked_term {
termobj = enclitic,
face = data.lemma_face,
span_classes = lemma_classes,
ok_to_destructively_modify = data.ok_to_destructively_modify,
overall_lang = data.lang,
text_classes = text_classes
}
if this_categories[1] then
extend(categories, this_categories)
end
insert(formatted_terms, linked_term)
end
insert(parts, " (")
insert(parts, wrap_in_span("with enclitic" .. (#data.enclitics > 1 and "s" or "") .. " ", text_classes))
insert(parts, serial_comma_join(formatted_terms, {conj = data.enclitic_conj or "and"}))
insert(parts, ")")
if text_classes then
insert(parts, "<span class='" .. text_classes .. "'>")
end
end
if data.base_lemmas and #data.base_lemmas > 0 then
for _, base_lemma in ipairs(data.base_lemmas) do
insert(parts, ", the ")
if text_classes then
insert(parts, "</span>")
end
insert(parts, (export.tagged_inflections {
lang = data.lang or base_lemma.lemmas[1].lang,
tags = base_lemma.paramobj.tags,
lemmas = base_lemma.lemmas,
conj = base_lemma.conj or "and",
lemma_face = data.lemma_face,
no_format_categories = true,
nocat = true,
text_classes = data.text_classes,
ok_to_destructively_modify = ok_to_destructively_modify,
}))
if text_classes then
insert(parts, "<span class='" .. text_classes .. "'>")
end
end
end
-- FIXME, should posttext go before enclitics? If so we need to have separate handling for the
-- final colon when there are multiple tag sets in tagged_inflections().
if data.posttext then
insert(parts, data.posttext)
end
if text_classes then
insert(parts, "</span>")
end
return concat(parts), categories
end
format_form_of = export.format_form_of
--[==[
Return true if `tag` contains an internal link or HTML.]==]
function export.is_link_or_html(tag)
return tag:find("[[", nil, true) or tag:find("|", nil, true) or tag:find("<", nil, true)
end
is_link_or_html = export.is_link_or_html
--[==[
Look up a tag (either a shortcut of any sort of a canonical long-form tag) and return its expansion. The expansion
will be a string unless the shortcut is a list-tag shortcut such as `1s`; in that case, the expansion will be a
list. The caller must handle both cases. Only one level of expansion happens; hence, `acc` expands to {"accusative"},
`1s` expands to { {"1", "s"}} (not to { {"first", "singular"}}) and `123` expands to {"1//2//3"}. The expansion will be
the same as the passed-in tag in the following circumstances:
# The tag is `;` (this is special-cased, and no lookup is done).
# The tag is a multipart tag such as `nom//acc` (this is special-cased, and no lookup is done).
# The tag contains a raw link (this is special-cased, and no lookup is done).
# The tag contains HTML (this is special-cased, and no lookup is done).
# The tag is already a canonical long-form tag.
# The tag is unrecognized.
This function first looks up in the lang-specific data module [[Module:form of/lang-data/LANGCODE]], then in
[[Module:form of/data/1]] (which includes more common non-lang-specific tags) and finally (only if the tag is not
recognized as a shortcut or canonical tag, and is not of types 1-4 above) in [[Module:form of/data/2]].
If the expansion is a string and is different from the tag, track it if `do_track` is true.]==]
function export.lookup_shortcut(tag, lang, do_track)
-- If there is HTML or a link in the tag, return it directly; don't try
-- to look it up, which will fail.
if tag == ";" or tag:find("//", nil, true) or is_link_or_html(tag) then
return tag
end
local expansion
while lang do
local langdata = safe_load_data(form_of_lang_data_module_prefix .. lang:getCode())
-- If this is a canonical long-form tag, just return it, and don't check for shortcuts. This is an
-- optimization; see below.
if langdata then
if langdata.tags[tag] then
return tag
end
expansion = langdata.shortcuts[tag]
if expansion then
break
end
end
-- If the language has a parent (i.e. a superordinate variety), try again with that.
lang = lang:getParent()
end
if not expansion then
-- If this is a canonical long-form tag, just return it, and don't check for shortcuts (which will cause
-- [[Module:form of/data/2]] to be loaded, because there won't be a shortcut entry in [[Module:form of/data/1]] --
-- or, for that matter, in [[Module:form of/data/2]]). This is an optimization; the code will still work without
-- it, but will use up more memory.
if (m_data1 or get_m_data1()).tags[tag] then
return tag
end
expansion = m_data1.shortcuts[tag]
end
if not expansion then
expansion = (m_data2 or get_m_data2()).shortcuts[tag]
end
if not expansion then
return tag
end
-- Maybe track the expansion if it's not the same as the raw tag.
if do_track and expansion ~= tag and type(expansion) == "string" then
track("tag/" .. tag)
end
return expansion
end
lookup_shortcut = export.lookup_shortcut
--[==[
Look up a normalized/canonicalized tag and return the data object associated with it. If the tag isn't found, return
nil. This first looks up in the lang-specific data module [[Module:form of/lang-data/LANGCODE]], then in
[[Module:form of/data/1]] (which includes more common non-lang-specific tags) and then finally in
[[Module:form of/data/2]].]==]
function export.lookup_tag(tag, lang)
while lang do
local langdata = safe_load_data(form_of_lang_data_module_prefix .. lang:getCode())
local tag = langdata and langdata.tags[tag]
if tag then
return tag
end
-- If the language has a parent (i.e. a superordinate variety), try again with that.
lang = lang:getParent()
end
local tagobj = (m_data1 or get_m_data1()).tags[tag]
if tagobj then
return tagobj
end
local tagobj2 = (m_data2 or get_m_data2()).tags[tag]
if tagobj2 then
return tagobj2
end
return nil
end
lookup_tag = export.lookup_tag
-- Normalize a single tag, which may be a shortcut but should not be a multipart tag, a multipart shortcut or a list
-- shortcut.
local function normalize_single_tag(tag, lang, do_track)
local expansion = lookup_shortcut(tag, lang, do_track)
if type(expansion) ~= "string" then
error("Tag '" .. tag .. "' is a list shortcut, which is not allowed here")
end
tag = expansion
if not lookup_tag(tag, lang) and do_track then
-- If after all expansions and normalizations we don't recognize the canonical tag, track it.
track("unknown")
track("unknown/" .. tag)
end
return tag
end
--[=[
Normalize a component of a multipart tag. This should not have any // in it, but may join multiple individual tags with
a colon, and may be a single list-tag shortcut, which is treated as if colon-separated. The return value may be a list
of tags.
]=]
local function normalize_multipart_component(tag, lang, do_track)
-- If there is HTML or a link in the tag, don't try to split on colon. A colon may legitimately occur in either one,
-- and we don't want these things parsed. Note that we don't do this check before splitting on //, which we don't
-- expect to occur in links or HTML; see comment in normalize_tag().
if is_link_or_html(tag) then
return tag
end
local components = split(tag, ":", true)
if #components == 1 then
-- We allow list-tag shortcuts inside of multipart tags, e.g.
-- '1s//3p'. Check for this now.
tag = lookup_shortcut(tag, lang, do_track)
if type(tag) == "table" then
-- Temporary tracking as we will disallow this.
track("list-tag-inside-of-multipart")
-- We found a list-tag shortcut; treat as if colon-separated.
components = tag
else
return normalize_single_tag(tag, lang, do_track)
end
end
local normtags = {}
-- Temporary tracking as we will disallow this.
track("two-level-multipart")
for _, component in ipairs(components) do
if do_track then
-- There are multiple components; track each of the individual
-- raw tags.
track("tag/" .. component)
end
insert(normtags, normalize_single_tag(component, lang, do_track))
end
return normtags
end
--[=[
Normalize a single tag. The return value may be a list (in the case of multipart tags), which will contain nested lists
in the case of two-level multipart tags.
]=]
local function normalize_tag(tag, lang, do_track)
-- We don't check for links or HTML before splitting on //, which we don't expect to occur in links or HTML. Doing
-- it this way allows for a tag like '{{lb|grc|Epic}}//{{lb|grc|Ionic}}' to function correctly (the template calls
-- will be expanded before we process the tag, and will contain links and HTML). The only check we do is for a URL,
-- which shouldn't normally occur, but might if the user tries to put an external link into the tag. URL's with //
-- normally have the sequence ://, which should never normally occur when // and : are used in their normal ways.
if tag:find("://", nil, true) then
return tag
end
local split_tags = split(tag, "//", true)
if #split_tags == 1 then
local retval = normalize_multipart_component(tag, lang, do_track)
if type(retval) == "table" then
-- The user gave a tag like '1:s', i.e. with colon but without //. Allow this, but we need to return a
-- nested list.
return {retval}
end
return retval
end
local normtags = {}
for _, single_tag in ipairs(split_tags) do
if do_track then
-- If the tag was a multipart tag, track each of individual raw tags.
track("tag/" .. single_tag)
end
insert(normtags, normalize_multipart_component(single_tag, lang, do_track))
end
return normtags
end
--[==[
Normalize a tag set (a list of tags) into its canonical-form tags. The return value is a list of normalized tag sets
(a list because of there may be conjoined shortcuts among the input tags). A normalized tag set is a list of tag
elements, where each element is either a string (the canonical form of a tag), a list of such strings (in the case of
multipart tags) or a list of lists of such strings (in the case of two-level multipart tags). For example, the multipart
tag `nom//acc//voc` will be represented in canonical form as { {"nominative", "accusative", "vocative"}}, and the
two-level multipart tag `1:s//3:p` will be represented as { {{"first-person", "singular"}, {"third-person", "plural"}}}.
Example 1:
{normalize_tag_set({"nom//acc//voc", "n", "p"})} = { {{{"nominative", "accusative", "vocative"}, "masculine", "plural"}}}
Example 2:
{normalize_tag_set({"ed-form"}, ENGLISH)} = { {{"simple", "past"}, {"past", "participle"}}}
Example 3:
{normalize_tag_set({"archaic", "ed-form"}, ENGLISH)} = { {{"archaic", "simple", "past"}, {"archaic", "past", "participle"}}}]==]
function export.normalize_tag_set(tag_set, lang, do_track)
-- We track usage of shortcuts, normalized forms and (in the case of multipart tags or list tags) intermediate
-- forms. For example, if the tags 1s|mn|gen|indefinite are passed in, we track the following:
-- [[Wiktionary:Tracking/inflection of/tag/1s]]
-- [[Wiktionary:Tracking/inflection of/tag/1]]
-- [[Wiktionary:Tracking/inflection of/tag/s]]
-- [[Wiktionary:Tracking/inflection of/tag/first-person]]
-- [[Wiktionary:Tracking/inflection of/tag/singular]]
-- [[Wiktionary:Tracking/inflection of/tag/mn]]
-- [[Wiktionary:Tracking/inflection of/tag/m//n]]
-- [[Wiktionary:Tracking/inflection of/tag/m]]
-- [[Wiktionary:Tracking/inflection of/tag/n]]
-- [[Wiktionary:Tracking/inflection of/tag/masculine]]
-- [[Wiktionary:Tracking/inflection of/tag/neuter]]
-- [[Wiktionary:Tracking/inflection of/tag/gen]]
-- [[Wiktionary:Tracking/inflection of/tag/genitive]]
-- [[Wiktionary:Tracking/inflection of/tag/indefinite]]
local output_tag_set = {}
local saw_semicolon = false
for _, tag in ipairs(tag_set) do
if do_track then
-- Track the raw tag.
track("tag/" .. tag)
end
-- Expand the tag, which may generate a new tag (either a fully canonicalized tag, a multipart tag, or a list
-- of tags).
tag = lookup_shortcut(tag, lang, do_track)
if type(tag) == "table" then
if contains(tag, ";") then
-- If we saw a conjoined shortcut, we need to use a more general algorithm that can expand a single
-- tag set into multiple.
saw_semicolon = true
break
end
for _, t in ipairs(tag) do
if do_track then
-- If the tag expands to a list of raw tags, track each of those.
track("tag/" .. t)
end
insert(output_tag_set, normalize_tag(t, lang, do_track))
end
else
insert(output_tag_set, normalize_tag(tag, lang, do_track))
end
end
if not saw_semicolon then
return {output_tag_set}
end
-- Use a more general algorithm that handles conjoined shortcuts.
output_tag_set = {}
for i, tag in ipairs(tag_set) do
if do_track then
-- Track the raw tag.
track("tag/" .. tag)
end
-- Expand the tag, which may generate a new tag (either a fully canonicalized tag, a multipart tag, or a list
-- of tags).
tag = lookup_shortcut(tag, lang, do_track)
if type(tag) == "table" then
local output_tag_sets = {}
local shortcut_tag_sets = split_tag_set(tag)
local normalized_shortcut_tag_sets = {}
for _, shortcut_tag_set in ipairs(shortcut_tag_sets) do
extend(normalized_shortcut_tag_sets,
normalize_tag_set(shortcut_tag_set, lang, do_track))
end
local after_tags = slice(tag_set, i + 1)
local normalized_after_tags_sets = normalize_tag_set(after_tags, lang, do_track)
for _, normalized_shortcut_tag_set in ipairs(normalized_shortcut_tag_sets) do
for _, normalized_after_tags_set in ipairs(normalized_after_tags_sets) do
insert(output_tag_sets, append(output_tag_set, normalized_shortcut_tag_set,
normalized_after_tags_set))
end
end
return output_tag_sets
else
insert(output_tag_set, normalize_tag(tag, lang, do_track))
end
end
error("Internal error: Should not get here")
end
normalize_tag_set = export.normalize_tag_set
--[==[
Split a tag set that may consist of multiple semicolon-separated tag sets into the component tag sets.]==]
function export.split_tag_set(tag_set)
local split_tag_sets = {}
local cur_tag_set = {}
for _, tag in ipairs(tag_set) do
if tag == ";" then
if #cur_tag_set > 0 then
insert(split_tag_sets, cur_tag_set)
end
cur_tag_set = {}
else
insert(cur_tag_set, tag)
end
end
if #cur_tag_set > 0 then
insert(split_tag_sets, cur_tag_set)
end
return split_tag_sets
end
split_tag_set = export.split_tag_set
local tag_set_param_mods = {
lb = {
item_dest = "labels",
convert = function(arg, parse_err)
return split(arg, "//", true)
end,
}
}
--[==[
Parse tag set properties from a tag set (list of tags). Currently no per-tag properties are recognized, and the only
per-tag-set property recognized is `<lb:...>` for specifing label(s) for the tag set. Per-tag-set properties must be
attached to the last tag.]==]
function export.parse_tag_set_properties(tag_set)
local function generate_tag_set_obj(last_tag)
tag_set[#tag_set] = last_tag
return {tags = tag_set}
end
local last_tag = tag_set[#tag_set]
-- Check for inline modifier, e.g. מרים<tr:Miryem>. But exclude HTML entry with <span ...>, <i ...>, <br/> or
-- similar in it, caused by wrapping an argument in {{l|...}}, {{af|...}} or similar. Basically, all tags of
-- the sort we parse here should consist of a less-than sign, plus letters, plus a colon, e.g. <lb:...>, so if
-- we see a tag on the outer level that isn't in this format, we don't try to parse it. The restriction to the
-- outer level is to allow generated HTML inside of e.g. qualifier tags, such as foo<q:similar to {{m|fr|bar}}>.
if last_tag:find("<", nil, true) and not last_tag:find("^[^<]*<%l*[^%l:]") then
return parse_inline_modifiers(last_tag, {
param_mods = tag_set_param_mods,
generate_obj = generate_tag_set_obj,
})
else
return generate_tag_set_obj(last_tag)
end
end
parse_tag_set_properties = export.parse_tag_set_properties
local function normalize_pos(pos)
if not pos then
return nil
end
return (m_pos_data or get_m_pos_data())[pos] or pos
end
-- Return the display form of a single canonical-form tag. The value
-- passed in must be a string (i.e. it cannot be a list describing a
-- multipart tag). To handle multipart tags, use get_tag_display_form().
-- A truthy `nolink` suppresses linking.
local function get_single_tag_display_form(normtag, lang, nolink)
local data = lookup_tag(normtag, lang)
local display = normtag
-- If the tag has a special display form, use it
if data and data.display then
display = data.display
if nolink then
display = remove_links(display)
end
end
-- If there is a nonempty glossary index, then show a link to it
if not nolink then
local glossary = data and data[(m_data or get_m_data()).GLOSSARY]
if glossary ~= nil then
if glossary == m_data.WIKT then
display = "[[" .. normtag .. "|" .. display .. "]]"
elseif glossary == m_data.WP then
display = "[[w:" .. normtag .. "|" .. display .. "]]"
elseif glossary == m_data.APPENDIX then
display = "[[Lampiran:Glosarium#" .. anchor_encode(normtag) .. "|" .. display .. "]]"
elseif type(glossary) ~= "string" then
error(("Internal error: Wrong type %s for glossary value %s for tag %s"):format(
type(glossary), dump(glossary), normtag))
else
local link = glossary:match("^wikt:(.*)")
if link then
display = "[[" .. link .. "|" .. display .. "]]"
end
if not link then
link = glossary:match("^w:(.*)")
if link then
display = "[[w:" .. link .. "|" .. display .. "]]"
end
end
if not link then
display = "[[Appendix:Glossary#" .. anchor_encode(glossary) .. "|" .. display .. "]]"
end
end
end
end
return display
end
--[==[
Turn a canonicalized tag spec (which describes a single, possibly multipart tag) into the displayed form. The tag spec
may be a string (a canonical-form tag); a list of canonical-form tags (in the case of a simple multipart tag); or a
list of mixed canonical-form tags and lists of such tags (in the case of a two-level multipart tag). `joiner` indicates
how to join the parts of a multipart tag, and can be either {"and"} ("foo and bar", or "foo, bar and baz" for 3 or
more), {"slash"} ("foo/bar"), {"en-dash"} ("foo–bar") or {nil}, which uses the global default found in
{multipart_join_strategy()} in [[Module:form of/functions]]. (NOTE: The global default is {"slash"} and this seems
unlikely to change.) A truthy `nolink` suppresses linking.]==]
function export.get_tag_display_form(tagspec, lang, joiner, nolink)
if type(tagspec) == "string" then
return get_single_tag_display_form(tagspec, lang, nolink)
end
-- We have a multipart tag. See if there's a display handler to display them specially.
for _, handler in ipairs(display_handlers or get_display_handlers()) do
local displayval = handler(tagspec, joiner)
if displayval then
if nolink then
displayval = remove_links(displayval)
end
return displayval
end
end
-- No display handler.
local displayed_tags = {}
for _, first_level_tag in ipairs(tagspec) do
if type(first_level_tag) == "string" then
insert(displayed_tags, get_single_tag_display_form(first_level_tag, lang, nolink))
else
-- A first-level element of a two-level multipart tag. Currently we just separate the individual components
-- with spaces, but other ways are possible, e.g. using an underscore, colon, parens or braces.
local components = {}
for _, component in ipairs(first_level_tag) do
insert(components, get_single_tag_display_form(component, lang, nolink))
end
insert(displayed_tags, concat(components, " "))
end
end
return join_multiparts(displayed_tags, joiner)
end
get_tag_display_form = export.get_tag_display_form
--[==[
Given a normalized tag set (i.e. as output by {normalize_tag_set()}; all tags are in canonical form, multipart tags are
represented as lists, and two-level multipart tags as lists of lists), convert to displayed form (a string). See
{get_tag_display_form()} for the meaning of `joiner`. A truthy `nolink` suppresses linking.]==]
function export.get_tag_set_display_form(normalized_tag_set, lang, joiner, nolink)
local parts = {}
for _, tagspec in ipairs(normalized_tag_set) do
local to_insert = get_tag_display_form(tagspec, lang, joiner, nolink)
-- Maybe insert a space before inserting the display form of the tag. We insert a space if
-- (a) we're not the first tag; and
-- (b) the tag we're about to insert doesn't have the "no_space_on_left" property; and
-- (c) the preceding tag doesn't have the "no_space_on_right" property.
-- NOTE: We depend here on the fact that
-- (1) all tags with either of the above properties set have the same display form as canonical form, and
-- (2) all tags with either of the above properties set are single-character tags.
-- The second property is an optimization to avoid looking up display forms resulting from multipart tags,
-- which won't be found and which will trigger loading of [[Module:form of/data/2]]. If multichar punctuation is
-- added in the future, it's ok to change the == 1 below to <= 2 or <= 3.
--
-- If the first property above fails to hold in the future, we need to track the canonical form of each tag
-- (including the previous one) as well as the display form. This would also avoid the need for the == 1 check.
if #parts > 0 then
local most_recent_tagobj = parts[#parts]:match("^.[\128-\191]*$") and lookup_tag(parts[#parts], lang)
local to_insert_tagobj = to_insert:match("^.[\128-\191]*$") and lookup_tag(to_insert, lang)
if (
(not most_recent_tagobj or not most_recent_tagobj.no_space_on_right) and
(not to_insert_tagobj or not to_insert_tagobj.no_space_on_left)
) then
insert(parts, " ")
end
end
insert(parts, to_insert)
end
return concat(parts)
end
get_tag_set_display_form = export.get_tag_set_display_form
--[==[
Split a tag set containing two-level multipart tags into one or more tag sets not containing such tags.
Single-level multipart tags are left alone. (If we need to, a slight modification of the following code
will also split single-level multipart tags.) This assumes that multipart tags are represented as lists
and two-level multipart tags are represented as lists of lists, as is output by {normalize_tag_set()}.
NOTE: We have to be careful to properly handle imbalanced two-level multipart tags such as
`def:s//p` (or the reverse, `s//def:p`).]==]
local function split_two_level_multipart_tag_set(tag_set)
for i, tag in ipairs(tag_set) do
if type(tag) == "table" then
-- We saw a multipart tag. Check if any of the parts are two-level.
local saw_two_level_tag = false
for _, first_level_tag in ipairs(tag) do
if type(first_level_tag) == "table" then
saw_two_level_tag = true
break
end
end
if saw_two_level_tag then
-- We found a two-level multipart tag.
-- (1) Extract the preceding tags.
local pre_tags = slice(tag_set, 1, i - 1)
-- (2) Extract the following tags.
local post_tags = slice(tag_set, i + 1)
-- (3) Loop over each tag set alternant in the two-level multipart tag.
-- For each alternant, form the tag set consisting of pre_tags + alternant + post_tags,
-- and recursively split that tag set.
local resulting_tag_sets = {}
for _, first_level_tag_set in ipairs(tag) do
local expanded_tag_set = {}
extend(expanded_tag_set, pre_tags)
-- The second level may have a string or a list.
if type(first_level_tag_set) == "table" then
extend(expanded_tag_set, first_level_tag_set)
else
insert(expanded_tag_set, first_level_tag_set)
end
extend(expanded_tag_set, post_tags)
extend(resulting_tag_sets, split_two_level_multipart_tag_set(expanded_tag_set))
end
return resulting_tag_sets
end
end
end
return {tag_set}
end
local function try_lang_specific_module(langcode, modules_tried, name, data)
local lang_specific_module = form_of_lang_data_module_prefix .. langcode .. "/functions"
local langdata = safe_require(lang_specific_module)
if langdata then
insert(modules_tried, lang_specific_module)
if langdata.cat_functions then
local fn = langdata.cat_functions[name]
if fn then
return fn(data), true
end
end
end
return nil, false
end
-- Call a named function, either from the lang-specific data in
-- [[Module:form of/lang-specific/LANGCODE/functions]] or in [[Module:form of/functions]].
local function call_named_function(name, funtype, normalized_tag_set, lang, POS, pagename, lemmas)
local data = {
pagename = pagename or default_pagename or get_default_pagename(),
lemmas = lemmas,
tag_set = normalized_tag_set,
lang = lang,
POS = POS
}
local modules_tried = {}
-- First try lang-specific.
while lang do
local retval, found_it = try_lang_specific_module(lang:getCode(), modules_tried, name, data)
if found_it then
return retval
end
-- If the language has a parent (i.e. a superordinate variety), try again with that.
lang = lang:getParent()
end
-- Try lang-independent.
insert(modules_tried, form_of_functions_module)
local fn = (cat_functions or get_cat_functions())[name]
if fn then
return fn(data)
end
for i, modname in ipairs(modules_tried) do
modules_tried[i] = "[[" .. modname .. "]]"
end
error(("No %s function named '%s' in %s"):format(funtype, name, list_to_text(modules_tried, nil, " or ")))
end
-- Given a tag from the current tag set (which may be a list in case of a multipart tag),
-- and a tag from a categorization spec, check that the two match.
-- (1) If both are strings, we just check for equality.
-- (2) If the spec tag is a string and the tag set tag is a list (i.e. it originates from a
-- multipart tag), we check that the spec tag is in the list. This is because we want to treat
-- multipart tags in user-specified tag sets as if the user had specified multiple tag sets.
-- For example, if the user said "1//3|s|pres|ind" and the categorization spec says {"has", "1"},
-- we want this to match, because "1//3|s|pres|ind" should be treated equivalently to two tag
-- sets "1|s|pres|ind" and "3|s|pres|ind", and the former matches the categorization spec.
-- (3) If the spec tag is a list (i.e. it originates from a multipart tag), we check that the
-- tag set tag is also a list and is a superset of the spec tag. For example, if the categorization
-- spec says {"has", "1//3"}, then the tag set tag must be a multipart tag that has both "1" and "3"
-- in it. "1//3" works, as does "1//2//3".
local function tag_set_tag_matches_spec_tag(tag_set_tag, spec_tag)
if type(spec_tag) == "table" then
if type(tag_set_tag) == "table" and is_subset_list(spec_tag, tag_set_tag) then
return true
end
elseif type(tag_set_tag) == "table" then
if contains(tag_set_tag, spec_tag) then
return true
end
elseif tag_set_tag == spec_tag then
return true
end
return false
end
-- Check that the current tag set matches the given spec tag. This means that any of the tags
-- in the current tag set match, according to tag_set_tag_matches_spec_tag(); see above. If the
-- current tag set contains only string tags (i.e. no multipart tags), and the spec tag is a
-- string (i.e. not a multipart tag), this boils down to list containment, but it gets more
-- complex when multipart tags are present.
local function tag_set_matches_spec_tag(spec_tag, tag_set, lang)
spec_tag = normalize_tag(spec_tag, lang)
for _, tag_set_tag in ipairs(tag_set) do
if tag_set_tag_matches_spec_tag(tag_set_tag, spec_tag) then
return true
end
end
return false
end
-- Check whether the given spec matches the current tag set. Two values are returned:
-- (1) whether the spec matches the tag set; (2) the index of the category to add if
-- the spec matches.
local function check_condition(spec, tag_set, normalized_tag_set, lang, POS, pagename, lemmas)
if type(spec) == "boolean" then
return spec
elseif type(spec) ~= "table" then
error("Wrong type of condition " .. spec .. ": " .. type(spec))
end
local predicate = spec[1]
if predicate == "has" then
return tag_set_matches_spec_tag(spec[2], tag_set, lang), 3
elseif predicate == "hasall" then
for _, tag in ipairs(spec[2]) do
if not tag_set_matches_spec_tag(tag, tag_set, lang) then
return false, 3
end
end
return true, 3
elseif predicate == "hasany" then
for _, tag in ipairs(spec[2]) do
if tag_set_matches_spec_tag(tag, tag_set, lang) then
return true, 3
end
end
return false, 3
elseif predicate == "tags=" then
local normalized_spec_tag_sets = normalize_tag_set(spec[2], lang)
if #normalized_spec_tag_sets > 1 then
error("Internal error: No support for conjoined shortcuts in category/label specs in "
.. "[[Module:form of/cats]] when processing spec tag set " .. concat(spec[2], "|"))
end
local normalized_spec_tag_set = normalized_spec_tag_sets[1]
-- Check for and disallow two-level multipart tags in the specs. FIXME: Remove this when we remove
-- support for two-level multipart tags.
for _, tag in ipairs(normalized_spec_tag_set) do
if type(tag) == "table" then
for _, subtag in ipairs(tag) do
if type(subtag) == "table" then
error("Internal error: No support for two-level multipart tags in category/label specs"
.. "[[Module:form of/cats]] when processing spec tag set "
.. concat(spec[2], "|"))
end
end
end
end
-- Allow tags to be in different orders, and multipart tags to be in different orders. To handle this,
-- we first check that both tag set tags and spec tags have the same length. If so, we sort the
-- multipart tags in the tag set tags and spec tags, and then check that all tags in the spec tags are
-- in the tag set tags.
if #tag_set ~= #normalized_spec_tag_set then
return false, 3
end
local tag_set_tags = deep_copy(tag_set)
for i=1,#tag_set_tags do
if type(tag_set_tags[i]) == "table" then
sort(tag_set_tags[i])
end
if type(normalized_spec_tag_set[i]) == "table" then
sort(normalized_spec_tag_set[i])
end
end
for i=1,#tag_set_tags do
if not contains(tag_set_tags, normalized_spec_tag_set[i]) then
return false, 3
end
end
return true, 3
elseif predicate == "p=" then
return POS == normalize_pos(spec[2]), 3
elseif predicate == "pany" then
for _, specpos in ipairs(spec[2]) do
if POS == normalize_pos(specpos) then
return true, 3
end
end
return false, 3
elseif predicate == "pexists" then
return POS ~= nil, 2
elseif predicate == "not" then
local condval = check_condition(spec[2], tag_set, normalized_tag_set, lang, POS, pagename, lemmas)
return not condval, 3
elseif predicate == "and" then
local condval = check_condition(spec[2], tag_set, normalized_tag_set, lang, POS, pagename, lemmas)
if condval then
condval = check_condition(spec[3], tag_set, normalized_tag_set, lang, POS, pagename, lemmas)
end
return condval, 4
elseif predicate == "or" then
local condval = check_condition(spec[2], tag_set, normalized_tag_set, lang, POS, pagename, lemmas)
if not condval then
condval = check_condition(spec[3], tag_set, normalized_tag_set, lang, POS, pagename, lemmas)
end
return condval, 4
elseif predicate == "call" then
return call_named_function(spec[2], "condition", normalized_tag_set, lang, POS, pagename, lemmas), 3
else
error("Unrecognized predicate: " .. predicate)
end
end
-- Process a given spec. This checks any conditions in the spec against the
-- tag set, and insert any resulting categories into `categories`. Return value
-- is true if the outermost condition evaluated to true and a category was inserted
-- (this is used in {"cond" ...} conditions, which stop when a subcondition evaluates
-- to true).
local function process_spec(spec, tag_set, normalized_tag_set, lang, POS, pagename, lemmas, categories, labels)
if not spec then
return false
elseif type(spec) == "string" then
-- A category. Substitute POS request with user-specified part of speech or default.
spec = spec:gsub("<<p=(.-)>>", function(default)
return POS or normalize_pos(default)
end)
insert(categories, lang:getFullName() .. " " .. spec)
return true
elseif type(spec) == "table" and spec.labels then
-- A label spec.
for _, label in ipairs(spec.labels) do
insert_if_not(labels, label)
end
return true
elseif type(spec) ~= "table" then
error("Wrong type of specification " .. spec .. ": " .. type(spec))
end
local predicate = spec[1]
if predicate == "multi" then
for _, sp in iterate_from(2, ipairs(spec)) do -- Iterate from 2.
process_spec(sp, tag_set, normalized_tag_set, lang, POS, pagename, lemmas, categories, labels)
end
return true
elseif predicate == "cond" then
for _, sp in iterate_from(2, ipairs(spec)) do -- Iterate from 2.
if process_spec(sp, tag_set, normalized_tag_set, lang, POS, pagename, lemmas, categories, labels) then
return true
end
end
return false
elseif predicate == "call" then
return process_spec(
call_named_function(spec[2], "spec", normalized_tag_set, lang, POS, pagename, lemmas),
tag_set, normalized_tag_set, lang, POS, pagename, lemmas, categories, labels
)
else
local condval, ifspec = check_condition(spec, tag_set, normalized_tag_set, lang, POS, pagename, lemmas)
if condval then
process_spec(spec[ifspec], tag_set, normalized_tag_set, lang, POS, pagename, lemmas, categories, labels)
return true
else
process_spec(spec[ifspec + 1], tag_set, normalized_tag_set, lang, POS, pagename, lemmas, categories, labels)
-- FIXME: Are we sure this is correct?
return false
end
end
end
--[==[
Given a normalized tag set (i.e. as output by {normalize_tag_set()}; all tags are in canonical form, multipart tags are
represented as lists, and two-level multipart tags as lists of lists), fetch the associated categories and labels.
Return two values, a list of categories and a list of labels. `lang` is the language of term represented by the tag set,
and `POS` is the user-provided part of speech (which may be {nil}).]==]
function export.fetch_categories_and_labels(normalized_tag_set, lang, POS, pagename, lemmas)
local categories, labels = {}, {}
POS = normalize_pos(POS)
-- First split any two-level multipart tags into multiple sets, to make our life easier.
for _, tag_set in ipairs(split_two_level_multipart_tag_set(normalized_tag_set)) do
local langcode = lang:getCode()
local langspecs = (m_cats_data or get_m_cats_data())[langcode]
if langspecs then
for _, spec in ipairs(langspecs) do
process_spec(spec, tag_set, normalized_tag_set, lang, POS, pagename, lemmas, categories, labels)
end
end
local full_code = lang:getFullCode()
if full_code ~= langcode then
local langspecs = (m_cats_data or get_m_cats_data())[full_code]
if langspecs then
for _, spec in ipairs(langspecs) do
process_spec(spec, tag_set, normalized_tag_set, lang, POS, pagename, lemmas, categories, labels)
end
end
end
if full_code ~= "und" then
local langspecs = (m_cats_data or get_m_cats_data())["und"]
if langspecs then
for _, spec in ipairs(langspecs) do
process_spec(spec, tag_set, normalized_tag_set, lang, POS, pagename, lemmas, categories, labels)
end
end
end
end
return categories, labels
end
fetch_categories_and_labels = export.fetch_categories_and_labels
local function format_labels(labels, data, notext)
if labels and #labels > 0 then
return show_labels{
labels = labels,
lang = data.lang,
sort = data.sort,
nocat = data.nocat
} .. (notext and (data.pretext or "") == "" and "" or " ")
else
return ""
end
end
--[==[
Implementation of templates that display inflection tags, such as the general {{tl|inflection of}}, semi-specific
variants such as {{tl|participle of}}, and specific variants such as {{tl|past participle of}}. `data` contains all the
information controlling the display, with the following fields:
* `.lang`: ('''''required''''') Language to use when looking up language-specific inflection tags, categories and
labels, and for displaying categories and labels.
* `.tags`: ('''''required''' unless `.tag_sets` is given'') List of non-canonicalized inflection tags. Multiple tag sets
can be indicated by a {";"} as one of the tags, and tag-set properties may be attached to the last tag of a tag set.
The tags themselves may come directly from the user (as in {{tl|inflection of}}); come partly from the user (as in
{{tl|participle of}}, which adds the tag `part` to user-specified inflection tags); or be entirely specified by the
template (as in {{tl|past participle of}}).
* `.tag_sets`: ('''''required''' unless `.tags` is given'') List of non-canonicalized tag sets and associated
per-tag-set properties. Each element of the list is an object of the form
{ {tags = {"TAG", "TAG", ...}, labels = {"LABEL", "LABEL", ...}}. If `.tag_sets` is specified, `.tags` should not be
given and vice-versa. Specifying `.tag_sets` in place of tags allowed per-tag set labels to be specified; otherwise,
there is no advantage. [[Module:pt-gl-inflections]] uses this functionality to supply labels like {"Brazil"} and
{"Portugal"} associated with specific tag sets.
* `.lemmas`: ('''''recommended''''') List of objects describing the lemma(s) of which the term in question is a
non-lemma form. These are passed directly to {full_link()} in [[Module:links]]. Each object should have at minimum a
`.lang` field containing the language of the lemma and a `.term` field containing the lemma itself. Each object is
formatted using {full_link()} and then if there are more than one, they are joined using {serialCommaJoin()} in
[[Module:table]]. Alternatively, `.lemmas` can be a string, which is displayed directly. If omitted entirely, no lemma
links are shown and the connecting "of" is also omitted.
* `.lemma_face`: ('''''recommended''''') "Face" to use when displaying the lemma objects. Usually should be set to
{"term"}.
* `.POS`: ('''''recommended''''') Categorizing part-of-speech tag. Comes from the {{para|p}} or {{para|POS}} argument of
{{tl|inflection of}}.
* `.pagename`: Page name of "current" page or nil to use the actual page title; for testing purposes.
* `.conj`: Conjunction or separator to use when joining multiple lemma objects. Defaults to {"and"}.
* `.enclitics`: List of enclitics to display after the lemmas, in parens.
* `.enclitic_conj`: Conjunction or separator to use when joining multiple enclitics. Defaults to {"and"}.
* `.no_format_categories`: If true, don't format the categories derived from the inflection tags; just return them.
* `.sort`: Sort key for formatted categories. Ignored when `.no_format_categories` = {true}.
* `.nocat`: Suppress computation of categories (even if `.no_format_categories` is not given).
* `.notext`: Disable display of all tag text and `inflection of` text. (FIXME: Maybe not implemented correctly.)
* `.nolink`: Suppress linking of terms in inflection tags.
* `.capfirst`: Capitalize the first word displayed.
* `.pretext`: Additional text to display before the inflection tags, but after any top-level labels.
* `.posttext`: Additional text to display after the lemma links.
* `.text_classes`: CSS classes used to wrap the tag text and lemma links. Default is
{"form-of-definition use-with-mention"}.
* `.lemma_classes`: Additional CSS classes used to wrap the lemma links. Default is {"form-of-definition-link"}.
* `.joiner`: Override the joiner (normally a slash) used to join multipart tags. You should normally not specify this.
* `.nowrap`: Do not wrap the form-of definitions in a span, unless `.text_classes` is specified.
* `.ok_to_destructively_modify`: If set, data structures (including the nested lemma structures) can be modified
in-place to save memory; otherwise they will be copied before modifying.
A typical call might look like this (for {{m+|es|amo}}): {
local lang = require("Module:languages").getByCode("es")
local lemma_obj = {
lang = lang,
term = "amar",
}
return m_form_of.tagged_inflections({
lang = lang, tags = {"1", "s", "pres", "ind"}, lemmas = {lemma_obj}, lemma_face = "term", POS = "verb"
})
}
Normally, one value is returned, the formatted text, which has appended to it the formatted categories derived from the
tag-set-related categories generated by the specs in [Module:form of/cats]]. To suppress this, set
`data.no_format_categories` = {true}, in which case two values are returned, the formatted text without any formatted
categories appended and a list of the categories to be formatted.
NOTE: There are two sets of categories that may be generated: (1) categories derived directly from the tag sets, as
specified in [[Module:form of/cats]]; (2) categories derived from tag-set labels, either (a) set explicitly by the
caller in `data.tag_sets`, (b) specified by the user using `<lb:...>` attached to the last tag in a tag set, or
(c) specified in [[Module:form of/cats]]. The second type (label-related categories) are currently not returned in
the second return value of {tagged_inflections()}, and are currently inserted into the output text even if
`data.no_format_categories` is set to {true}; but they can be suppressed by setting `data.nocat` = {true} (which also
suppresses the first type of categories, those derived directly from tag sets, even if `data.no_format_categories` is
set to {true}).]==]
function export.tagged_inflections(data)
if not data.tags and not data.tag_sets then
error("First argument must be a table of arguments, and `.tags` or `.tag_sets` must be specified")
end
if data.tags and data.tag_sets then
error("Both `.tags` and `.tag_sets` cannot be specified")
end
local tag_sets = data.tag_sets
if not tag_sets then
tag_sets = split_tag_set(data.tags)
for i, tag_set in ipairs(tag_sets) do
tag_sets[i] = parse_tag_set_properties(tag_set)
end
end
local inflections = {}
local categories = {}
for _, tag_set in ipairs(tag_sets) do
local normalized_tag_sets = normalize_tag_set(tag_set.tags, data.lang, "do-track")
for _, normalized_tag_set in ipairs(normalized_tag_sets) do
local this_categories, this_labels = fetch_categories_and_labels(normalized_tag_set, data.lang,
data.POS, data.pagename, type(data.lemmas) == "table" and data.lemmas or nil)
if not data.nocat then
extend(categories, this_categories)
end
local cur_infl = get_tag_set_display_form(normalized_tag_set, data.lang, data.joiner, data.nolink)
if #cur_infl > 0 then
if tag_set.labels then
this_labels = append(tag_set.labels, this_labels)
end
insert(inflections, {infl_text = cur_infl, labels = this_labels})
end
end
end
local overall_labels, need_per_tag_set_labels
for _, inflection in ipairs(inflections) do
if overall_labels == nil then
overall_labels = inflection.labels
elseif not deep_equals(overall_labels, inflection.labels) then
need_per_tag_set_labels = true
overall_labels = nil
break
end
end
if not need_per_tag_set_labels then
for _, inflection in ipairs(inflections) do
inflection.labels = nil
end
end
local format_data = shallow_copy(data)
local of_text = data.lemmas and " dari" or ""
local formatted_text, this_categories
if #inflections == 1 then
if need_per_tag_set_labels then
error("Internal error: need_per_tag_set_labels should not be set with one inflection")
end
format_data.text = format_labels(overall_labels, data, data.notext) .. (data.pretext or "") .. (data.notext and "" or
((data.capfirst and ucfirst(inflections[1].infl_text) or inflections[1].infl_text) .. of_text))
formatted_text, this_categories = format_form_of(format_data)
else
format_data.text = format_labels(overall_labels, data, data.notext) .. (data.pretext or "") .. (data.notext and "" or
((data.capfirst and "Inflection" or "inflection") .. of_text))
format_data.posttext = (data.posttext or "") .. ":"
local link
link, this_categories = format_form_of(format_data)
local text_classes = data.text_classes
if text_classes == nil and not data.nowrap then
text_classes = "form-of-definition use-with-mention"
end
for i, inflection in ipairs(inflections) do
inflections[i] = "\n## " .. format_labels(inflection.labels, data, false) ..
wrap_in_span(inflection.infl_text, text_classes)
end
formatted_text = link .. concat(inflections)
end
if this_categories[1] then
extend(categories, this_categories)
end
if not data.no_format_categories then
if categories[1] then
formatted_text = formatted_text .. format_categories(categories, data.lang,
data.sort, nil, export.force_cat)
end
return formatted_text
end
return formatted_text, categories
end
function export.dump_form_of_data(frame)
local data = {
require(form_of_data1_module),
require(form_of_data2_module)
}
return require(json_module).toJSON(data)
end
export.form_of_cats_module = form_of_cats_module
export.form_of_data1_module = form_of_data1_module
export.form_of_data2_module = form_of_data2_module
export.form_of_functions_module = form_of_functions_module
export.form_of_lang_data_module_prefix = form_of_lang_data_module_prefix
export.headword_data_module = headword_data_module -- so all form-of modules stay in sync
return export
5aml5w4x75tf7g9k8enbw5fftmp6zg9
Modul:form of/templates
828
210279
1349853
1103421
2026-04-14T13:31:37Z
Swarabakti
18192
1349853
Scribunto
text/plain
local export = {}
local debug_track_module = "Module:debug/track"
local form_of_module = "Module:form of"
local functions_module = "Module:fun"
local headword_data_module = "Module:headword/data"
local languages_module = "Module:languages"
local load_module = "Module:load"
local parameters_module = "Module:parameters"
local parameter_utilities_module = "Module:parameter utilities"
local parse_interface_module = "Module:parse interface"
local string_utilities_module = "Module:string utilities"
local table_module = "Module:table"
local utilities_module = "Module:utilities"
local insert = table.insert
local ipairs = ipairs
local pairs = pairs
local require = require
local boolean_param = {type = "boolean"}
-- FIXME: Finish [[Module:format utilities]].
-- local allowed_conj_set = require(format_utilities_module).allowed_conj_set_for_join_segments
local allowed_conj_set = {["and"] = true, ["or"] = true, ["and/or"] = true}
--[==[
Loaders for functions in other modules, which overwrite themselves with the target function when called. This ensures modules are only loaded when needed, retains the speed/convenience of locally-declared pre-loaded functions, and has no overhead after the first call, since the target functions are called directly in any subsequent calls.]==]
local function debug_track(...)
debug_track = require(debug_track_module)
return debug_track(...)
end
local function decode_entities(...)
decode_entities = require(string_utilities_module).decode_entities
return decode_entities(...)
end
local function extend(...)
extend = require(table_module).extend
return extend(...)
end
local function format_categories(...)
format_categories = require(utilities_module).format_categories
return format_categories(...)
end
local function format_form_of(...)
format_form_of = require(form_of_module).format_form_of
return format_form_of(...)
end
local function get_lang(...)
get_lang = require(languages_module).getByCode
return get_lang(...)
end
local function gsplit(...)
gsplit = require(string_utilities_module).gsplit
return gsplit(...)
end
local function is_callable(...)
is_callable = require(functions_module).is_callable
return is_callable(...)
end
local function load_data(...)
load_data = require(load_module).load_data
return load_data(...)
end
local function parse_inline_modifiers(...)
parse_inline_modifiers = require(parse_interface_module).parse_inline_modifiers
return parse_inline_modifiers(...)
end
local function pattern_escape(...)
pattern_escape = require(string_utilities_module).pattern_escape
return pattern_escape(...)
end
local function process_params(...)
process_params = require(parameters_module).process
return process_params(...)
end
local function safe_load_data(...)
safe_load_data = require(load_module).safe_load_data
return safe_load_data(...)
end
local function split(...)
split = require(string_utilities_module).split
return split(...)
end
local function split_tag_set(...)
split_tag_set = require(form_of_module).split_tag_set
return split_tag_set(...)
end
local function tagged_inflections(...)
tagged_inflections = require(form_of_module).tagged_inflections
return tagged_inflections(...)
end
local function trim(...)
trim = require(string_utilities_module).trim
return trim(...)
end
local function ucfirst(...)
ucfirst = require(string_utilities_module).ucfirst
return ucfirst(...)
end
--[==[
Loaders for objects, which load data (or some other object) into some variable, which can then be accessed as "foo or get_foo()", where the function get_foo sets the object to "foo" and then returns it. This ensures they are only loaded when needed, and avoids the need to check for the existence of the object each time, since once "foo" has been set, "get_foo" will not be called again.]==]
local force_cat
local function get_force_cat()
force_cat, get_force_cat = require(form_of_module).force_cat, nil
return force_cat
end
local m_form_of_pos
local function get_m_form_of_pos()
m_form_of_pos, get_m_form_of_pos = load_data(headword_data_module).pos_aliases, nil
return m_form_of_pos
end
local module_prefix
local function get_module_prefix()
module_prefix, get_module_prefix = require(form_of_module).form_of_lang_data_module_prefix, nil
return module_prefix
end
--[==[ intro:
This module contains code that directly implements {{tl|form of}}, {{tl|inflection of}}, and the various other
[[:Category:Form-of templates|form-of templates]]. It is meant to be called directly from templates. See also
[[Module:form of]], which contains the underlying implementing code and is meant to be called from other modules.
]==]
-- Add tracking category for PAGE when called from TEMPLATE. The tracking category linked to is
-- [[Wiktionary:Tracking/form of/TEMPLATE/PAGE]]. If TEMPLATE is omitted, the tracking category is of the form
-- [[Wiktionary:Tracking/form of/PAGE]].
local function track(page, template)
debug_track("form of/" .. (template and template .. "/" or "") .. page)
end
local function get_common_template_params()
return {
-- Named params not controlling link display
["cat"] = {list = true, sublist = "comma without whitespace", flatten = true},
["notext"] = boolean_param,
["sort"] = true,
["enclitic"] = true,
-- FIXME! The following should only be available when withcap=1 in invocation args or when withencap=1 and the
-- language is "en". Before doing that, need to remove all uses of nocap= in other circumstances.
["nocap"] = boolean_param,
["addl"] = true, -- additional text to display at the end, before the closing </span>
["pagename"] = true, -- for testing, etc.
}
end
-- Split TAGSPECS (inflection tag specifications) on SPLIT_REGEX, which
-- may be nil for no splitting.
local function split_inflection_tags(tagspecs, split_regex)
if not split_regex then
return tagspecs
end
local inflection_tags = {}
for _, tagspec in ipairs(tagspecs) do
for tag in gsplit(tagspec, split_regex) do
insert(inflection_tags, tag)
end
end
return inflection_tags
end
local function parse_terms_with_inline_modifiers(paramname, val, param_mods, lang)
local function generate_obj(term)
return {lang = lang, term = decode_entities(term)}
end
return parse_inline_modifiers(val, {
paramname = paramname,
param_mods = param_mods,
generate_obj = generate_obj,
splitchar = ",",
outer_container = {},
})
end
-- Need to do what [[Module:parameters]] does to string arguments from parent_args as we're running this
-- before calling [[Module:parameters]] on parent_args.
local function ine(arg)
if not arg then
return nil
end
arg = trim(arg)
return arg ~= "" and arg or nil
end
local function add_base_lemma_params(parent_args, iargs, params, compat)
-- Check the language-specific data for additional base lemma params. But if there's no language-specific data,
-- attempt any parent varieties as well (i.e. superordinate varieties).
local lang = get_lang(ine(parent_args[compat and "lang" or 1]) or ine(iargs.lang) or "und", nil, true)
while lang do
local langdata = safe_load_data((module_prefix or get_module_prefix()) .. lang:getCode())
if langdata then
local base_lemma_params = langdata.base_lemma_params
if base_lemma_params then
for _, param in ipairs(base_lemma_params) do
params[param.param] = true
end
return base_lemma_params
end
end
lang = lang:getParent()
end
end
--[=[
Modify `params` in-place by adding parameters that control the link to the main entry and any base lemmas. `term_param`
is the number of the param specifying the main entry itself; `term_param` + 1 will be the display text, and `term_param`
+ 2 will be the gloss, unless `no_numbered_gloss` is given. The base lemma parameters are determined by attempting to
load language-specific data for the language of the page; this comes from |lang= if `compat` is given, else from |1=.
]=]
local function add_link_and_base_lemma_params(iargs, parent_args, params, term_param, compat, no_numbered_gloss)
local base_lemma_params
if not iargs.nolink and not iargs.linktext then
-- Numbered params controlling link display
if iargs.with_multiple_parts then
params[term_param] = {list = true, allow_holes = true}
else
params[term_param + 1] = {alias_of = "alt"}
if not no_numbered_gloss then
params[term_param + 2] = {alias_of = "t"}
end
params[term_param] = true
end
base_lemma_params = add_base_lemma_params(parent_args, iargs, params, compat)
end
return base_lemma_params
end
local function handle_withdot_withcap(iargs, params)
local ignored_tracked_params = {}
if iargs.withdot then
params.dot = true
params.nodot = boolean_param
end
if iargs.withcap and iargs.withencap then
error("Internal error: Can specify only one of withcap= and withencap=")
end
if not iargs.withcap then
params.cap = boolean_param
ignored_tracked_params.nocap = iargs.withencap and "non-english" or "always"
end
return ignored_tracked_params
end
--[=[
Construct and return the full definition line for a form-of-type template invocation. `data` is an object with the
following fields:
* `template`: Approximate template name, for debug tracking;
* `iargs`: processed invocation arguments;
* `parent_args`: raw parent args from `frame:getParent().args`;
* `params`: partially constructed params structure of the sort passed to `process()` in [[Module:parameters]], but
without any link params;
* `ignored_tracked_params`: params that are ignored but should be tracked, to be eventually removed;
* `term_param`: the parent argument specifying the main entry;
* `compat`: true if the language code is found in args.lang instead of args[1];
* `base_lemma_params`: if non-nil, a list of base lemma param objects of the sort stored in the language-specific data;
* `do_form_of`: a function of one argument, `lemma_data`, that returns the actual definition-line text and any
language-specific categories. See below.
This function does several things:
# If link parameters are called for (neither `iargs.nolink` nor `iargs.linktext` are given), augment the `params`
structure with separate link parameters.
# Modify the parent args as appropriate if invocation arguments def= or ignore= are given.
# Parse the parent args, both for separate parameter properties and inline modifiers on the term parameter (which may
consist of multiple comma-separated terms).
# Compute categories to add to the page, including language-specific categories and any categories requested by the
invocation or parent args.
# Parse enclitic and extra base lemma parameters.
# Construct the actual text using `do_form_of`.
# Add a terminating period/dot as appropriate, along with the formatted categories.
`do_form_of` takes one argument, `lemma_data`, which looks like this:
{
lang = LANG,
args = {ARG = VALUE, ARG = VALUE, ...},
lemmas = {LEMMA_OBJ, LEMMA_OBJ, ...},
enclitics = {ENCLITIC_OBJ, ENCLITIC_OBJ, ...},
base_lemmas = {BASE_LEMMA_OBJ, BASE_LEMMA_OBJ, ...},
categories = {"CATEGORY", "CATEGORY", ...},
posttext = "POSTTEXT" or nil,
}
where
* LANG is the language code;
* ARGS is the parsed arguments, based on what the user specified;
* LEMMAS is a sequence of objects specifying the main entries/lemmas, as passed to full_link in [[Module:links]];
however, if the invocation argument linktext= is given, it will be a string consisting of that text, and if the
invocation argument nolink= is given, it will be nil;
* ENCLITICS is nil or a sequence of objects specifying the enclitics, as passed to full_link in [[Module:links]];
* BASE_LEMMA_OBJ is a sequence of objects specifying the base lemma(s), which are used when the lemma is itself a
form of another lemma (the base lemma), e.g. a comparative, superlative or participle; each object is of the form
{ paramobj = PARAM_OBJ, lemmas = {LEMMA_OBJ, LEMMA_OBJ, ...} } where PARAM_OBJ describes the properties of the
base lemma parameter (i.e. the relationship between the intermediate and base lemmas) and LEMMA_OBJ is of the same
format of ENCLITIC_OBJ, i.e. an object suitable to be passed to full_link in [[Module:links]]; PARAM_OBJ is of the
format { param = "PARAM", tags = {"TAG", "TAG", ...} } where PARAM is the name of the parameter to
{{inflection of}} etc. that holds the base lemma(s) of the specified relationship and the tags describe the
relationship, such as {"comd"} or {"past", "part"};
* CATEGORIES is the categories to add the page to (consisting of any categories specified in the invocation or
parent args and any tracking categories, but not any additional lang-specific categories that may be added by
{{inflection of}} or similar templates);
* POSTTEXT is text to display at the end of the form-of text, before the final </span> (or at the end of the first
line, before the colon, in a multiline {{infl of}} call).
`do_form_of` should return two arguments:
(1) The actual definition-line text, marked up appropriately with <span>...</span> but without any terminating
period/dot.
(2) Any extra categories to add the page to (other than those that can be derived from parameters specified to the
invocation or parent arguments, which will automatically be added to the page).
]=]
local function construct_form_of_text(data)
local template, iargs, parent_args, params, no_numbered_gloss, do_form_of =
data.template, data.iargs, data.parent_args, data.params, data.no_numbered_gloss, data.do_form_of
local term_param = iargs.term_param
local compat = iargs.lang or parent_args.lang
term_param = term_param or compat and 1 or 2
-- Numbered params
params[compat and "lang" or 1] = {
required = not iargs.lang,
type = "language",
default = iargs.lang or "und"
}
-- Error to catch most uses of old-style parameters for {{contraction of}}. (FIXME: Remove eventually.)
if iargs.with_multiple_parts then
if ine(parent_args[term_param + 2]) and not ine(parent_args[term_param + 1]) and not ine(parent_args.tr2) and not ine(parent_args.ts2)
and not ine(parent_args.t2) and not ine(parent_args.gloss2) and not ine(parent_args.g2)
and not ine(parent_args.alt2) then
error(("You specified a term in %s= and not one in %s=. You probably meant to use t= to specify a gloss instead. "
.. "If you intended to specify two terms, put the second term in %s=."):format(term_param + 2, term_param + 1,
term_param + 1))
end
if not ine(parent_args[term_param + 1]) and not ine(parent_args.alt2) and not ine(parent_args.tr2) and not ine(parent_args.ts2)
and ine(parent_args.g2) then
error(("You specified a gender in g2= but no term in %s=. You were probably trying to specify two genders for "
.. "a single term. To do that, put both genders in g=, comma-separated."):format(term_param + 1))
end
end
local base_lemma_params = add_link_and_base_lemma_params(iargs, parent_args, params, term_param, compat,
no_numbered_gloss)
local ignored_tracked_params = handle_withdot_withcap(iargs, params)
--[=[
Process parent arguments. This is similar to the following:
require("Module:parameters").process(parent_args, params)
but in addition it does the following:
(1) Supplies default values for unspecified parent arguments as specified in DEFAULTS, which consist of specs of the
form "ARG=VALUE". These are added to the parent arguments prior to processing, so boolean and number parameters
will process the value appropriately.
(2) Removes parent arguments specified in IGNORESPECS, which consist either of bare argument names to remove, or
list-argument names to remove of the form "ARG:list".
(3) Tracks the use of any parent arguments specified in TRACKED_PARAMS, which is a set where the keys are arguments
as they exist after processing (hence numeric arguments should be numbers, not strings) and the values should be
boolean true.
]=]--
local defaults = iargs.def
local ignorespecs = iargs.ignore
if defaults[1] or ignorespecs[1] then
local new_parent_args = {}
for _, default in ipairs(defaults) do
local defparam, defval = default:match("^(.-)=(.*)$")
if not defparam then
error("Bad default spec " .. default)
end
new_parent_args[defparam] = defval
end
local params_to_ignore = {}
local numbered_list_params_to_ignore = {}
local named_list_params_to_ignore = {}
for _, ignorespec in ipairs(ignorespecs) do
for ignore in gsplit(ignorespec, ",") do
local param = ignore:match("^(.*):list$")
if param then
if param:match("^%d+$") then
insert(numbered_list_params_to_ignore, tonumber(param))
else
insert(named_list_params_to_ignore, "^" .. pattern_escape(param) .. "%d*$")
end
else
if ignore:match("^%d+$") then
ignore = tonumber(ignore)
end
params_to_ignore[ignore] = true
end
end
end
for k, v in pairs(parent_args) do
if not params_to_ignore[k] then
local ignore_me = false
if type(k) == "number" then
for _, lparam in ipairs(numbered_list_params_to_ignore) do
if k >= lparam then
ignore_me = true
break
end
end
else
for _, lparam in ipairs(named_list_params_to_ignore) do
if k:match(lparam) then
ignore_me = true
break
end
end
end
if not ignore_me then
new_parent_args[k] = v
end
end
end
parent_args = new_parent_args
end
local param_mods_with_conj, param_mods_without_conj
local function get_param_mods(with_conj)
if with_conj then
if not param_mods_with_conj then
param_mods_with_conj = require(parameter_utilities_module).construct_param_mods {
{group = {"link", "q", "l", "ref"}},
{param = "conj", set = allowed_conj_set, overall = true},
}
end
return param_mods_with_conj
else
if not param_mods_without_conj then
param_mods_without_conj = require(parameter_utilities_module).construct_param_mods {
{group = {"link", "q", "l", "ref"}},
-- Override lit= to have a separate overall value
{param = "lit", separate_no_index = true},
}
end
return param_mods_without_conj
end
end
local terms, args
if iargs.nolink or iargs.linktext then
args = process_params(parent_args, params)
else
local m_param_utils = require(parameter_utilities_module)
if iargs.with_multiple_parts then
terms, args = m_param_utils.parse_list_with_inline_modifiers_and_separate_params {
params = params,
param_mods = get_param_mods(false),
raw_args = parent_args,
termarg = term_param,
track_module = "form of" .. (template and "/" .. template or ""),
lang = compat and "lang" or 1,
sc = "sc.default",
parse_lang_prefix = true,
default_separator = " +‎ ",
special_separators = {[";"] = " or "},
}
else
terms, args = m_param_utils.parse_term_with_inline_modifiers_and_separate_params {
params = params,
param_mods = get_param_mods("with conj"),
raw_args = parent_args,
termarg = term_param,
track_module = "form of" .. (template and "/" .. template or ""),
lang = compat and "lang" or 1,
sc = "sc",
parse_lang_prefix = true,
make_separate_g_into_list = true,
splitchar = ",",
subitem_param_handling = "last",
}
end
end
local lang = args[compat and "lang" or 1]
-- Tracking for certain user-specified params. This is generally used for
-- parameters that we accept but ignore, so that we can eventually remove
-- all uses of these params and stop accepting them.
if ignored_tracked_params then
for ignored_tracked_param, condition in pairs(ignored_tracked_params) do
if parent_args[ignored_tracked_param] and (condition ~= "non-english" or lang:getCode() ~= "en") then
track("arg/" .. ignored_tracked_param, template)
track("arg/" .. ignored_tracked_param)
end
end
end
-- Determine categories for the page, including tracking categories
local categories = {}
if not args.nocat then
for _, cat in ipairs(iargs.cat) do
insert(categories, lang:getCode() .. ":" .. cat)
end
end
for _, cat in ipairs(args.cat) do
insert(categories, lang:getCode() .. ":" .. cat)
end
-- Format the link, preceding text and categories
local function add_term_tracking_categories(term)
-- add tracking category if term is same as page title
if term and mw.loadData("Module:headword/data").pagename == lang:stripDiacritics(term) then
insert(categories, "Forms linking to themselves")
end
-- maybe add tracking category if primary entry doesn't exist (this is an
-- expensive call so we don't do it by default)
if iargs.noprimaryentrycat and term and mw.title.getCurrentTitle().nsText == ""
and not mw.title.new(term):getContent() then
insert(categories, lang:getFullName() .. " " .. iargs.noprimaryentrycat)
end
end
local lemmas
if iargs.nolink then
lemmas = nil
elseif iargs.linktext then
lemmas = iargs.linktext
else
if iargs.with_multiple_parts then
lemmas = terms
else
lemmas = terms.terms
end
if not lemmas[1] then
if mw.title.getCurrentTitle().nsText == "Template" then
lemmas[1] = {
lang = lang,
term = "term"
}
else
error("No linked-to term specified")
end
end
for _, termobj in ipairs(lemmas) do
if termobj.term then
add_term_tracking_categories(termobj.term)
end
-- NOTE: Formerly, template arg sc= overrode inline modifier <sc:...>, which seems backwards, so I've
-- changed it. Hopefully nothing depended on the old behavior.
end
end
local enclitics, enclitic_conj
if args.enclitic then
local enclitics_obj = parse_terms_with_inline_modifiers("enclitic", args.enclitic, get_param_mods("with conj"),
lang)
enclitics = enclitics_obj.terms
enclitic_conj = enclitics_obj.conj
end
local base_lemmas = {}
if base_lemma_params then
for _, base_lemma_param_obj in ipairs(base_lemma_params) do
local param = base_lemma_param_obj.param
if args[param] then
local base_lemmas_obj = parse_terms_with_inline_modifiers(param, args[param],
get_param_mods("with conj"), lang)
insert(base_lemmas, {
paramobj = base_lemma_param_obj,
lemmas = base_lemmas_obj.terms,
conj = base_lemmas_obj.conj,
})
end
end
end
local posttext = iargs.posttext
local addl = args.addl
if addl then
posttext = posttext or ""
if addl:find("^[;:]") then
posttext = posttext .. addl
elseif addl:find("^_") then
posttext = posttext .. " " .. addl:sub(2)
else
posttext = posttext .. ", " .. addl
end
end
local conj
if iargs.with_multiple_parts then
conj = false -- signals to use 'separator' field
else
conj = terms and terms.conj or iargs.conj
end
local lemma_data = {
lang = lang,
args = args,
lemmas = lemmas,
conj = conj,
enclitics = enclitics,
enclitic_conj = enclitic_conj,
base_lemmas = base_lemmas,
categories = categories,
posttext = posttext,
lit = iargs.with_multiple_parts and args.lit.default or nil,
}
local form_of_text, lang_cats = do_form_of(lemma_data)
extend(lemma_data.categories, lang_cats)
local text = form_of_text .. (
args.nodot and "" or args.dot or iargs.withdot and "." or ""
)
if not lemma_data.categories[1] then
return text
end
return text .. format_categories(lemma_data.categories, lemma_data.lang, args.sort,
-- If lemma_is_sort_key is given, supply the first lemma term as the sort base if possible. If sort= is given,
-- it will override the base; otherwise, the base will be converted appropriately to a sort key using the
-- same algorithm applied to pagenames.
iargs.lemma_is_sort_key and type(lemma_data.lemmas) == "table" and lemma_data.lemmas[1].term,
-- Supply the first lemma's script for sort key computation.
force_cat or get_force_cat(), type(lemma_data.lemmas) == "table" and lemma_data.lemmas[1].sc)
end
-- Invocation parameters shared between form_of_t(), tagged_form_of_t() and inflection_of_t(). `calling_func` is the
-- invoking function ("form_of_t", "tagged_form_of_t" or "inflection_of_t"), for handling parameters shared by two but
-- not all three invoking functions.
local function get_common_invocation_params(calling_func)
local iparams = {
["term_param"] = {type = "number"},
["lang"] = true, -- To be used as the default code in params.
["sc"] = {type = "script"},
["cat"] = {list = true, sublist = "comma without whitespace", flatten = true},
["ignore"] = {list = true},
["def"] = {list = true},
["conj"] = {set = allowed_conj_set, default = "and"},
["withcap"] = boolean_param,
["withencap"] = boolean_param,
["withdot"] = boolean_param,
["nolink"] = boolean_param,
["linktext"] = true,
["posttext"] = true,
["noprimaryentrycat"] = true,
["lemma_is_sort_key"] = true,
}
if calling_func ~= "inflection_of_t" then
iparams.with_multiple_parts = boolean_param
end
return iparams
end
local function should_ucfirst_text(args, iargs, lang)
local code = lang:getCode()
return args.cap or (iargs.withcap or iargs.withencap and code == "en" or code == "mul") and not args.nocap
end
--[==[
Function that implements {{tl|form of}} and the various more specific form-of templates (but not {{tl|inflection of}}
or templates that take tagged inflection parameters).
Invocation params:
; {{para|1|req=1}}
: Text to display before the link.
; {{para|term_param}}
: Numbered param holding the term linked to. Other numbered params come after. Defaults to 1 if invocation or template
param {{para|lang}} is present, otherwise 2.
; {{para|with_multiple_parts|1}}
: If specified, higher numbered parameters above the numbered param in {{para|term_param}} specify additional parts out
of which the term was constructed, for use by templates like {{tl|contraction of}}. (If not specified, the parameter
at <code><var>term_param</var> + 1</code> is the display form, same as {{para|alt}}, and the parameter at
at <code><var>term_param</var> + 2</code> is the gloss, same as {{para|t}}.)
; {{para|lang}}
: Default language code for language-specific templates. If specified, no language code needs to be specified, and if
specified it needs to be set using {{para|lang}}, not {{para|1}}.
; {{para|sc}}
: Default script code for language-specific templates. The script code can still be overridden using template param
{{para|sc}}.
; {{para|cat}}, {{para|cat2}}, ...:
: Categories to place the page into. The language name will automatically be prepended. Note that there is also a
template param {{para|cat}} to specify categories at the template level. Use of {{para|nocat}} disables categorization
of categories specified using invocation param {{para|cat}}, but not using template param {{para|cat}}. A single param
can specify multiple comma-separated categories if no space follows the comma.
; {{para|ignore}}, {{para|ignore2}}, ...:
: One or more template params to silently accept and ignore. Useful e.g. when the template takes additional parameters
such as {{para|from}} or {{para|POS}}. Each value is a comma-separated list of either bare parameter names or
specifications of the form `PARAM:list` to specify that the parameter is a list parameter.
; {{para|def}}, {{para|def2}}, ...:
: One or more default values to supply for template args. For example, specifying {{para|def|2=tr=-}} causes the default
for template param {{para|tr}} to be `-`. Actual template params override these defaults.
; {{para|withcap|1}}
: Capitalize the first character of the text preceding the link, unless template param {{para|nocap}} is given.
; {{para|withencap|1}}
: Capitalize the first character of the text preceding the link if the language is English and template param
{{para|nocap}} is not given.
; {{para|withdot|1}}
: Add a final period after the link, unless template param {{para|nodot}} is given to suppress the period, or
{{para|dot}} is given to specify an alternative punctuation character.
; {{para|nolink|1}}
: Suppress the display of the link. If specified, none of the template params that control the link
({{para|<var>term_param</var>}}, {{para|<var>term_param</var> + 1}}, {{para|<var>term_param</var> + 2}}, {{para|t}},
{{para|gloss}}, {{para|sc}}, {{para|tr}}, {{para|ts}}, {{para|pos}}, {{para|g}}, {{para|id}}, {{para|lit}}) will be
available. If the calling template uses any of these parameters, they must be ignored using {{para|ignore}}.
{{para|linktext}}
: Override the display of the link with the specified text. This is useful if a custom template is available to format
the link (e.g. in Hebrew, Chinese and Japanese). If specified, none of the template params that control the link
({{para|<var>term_param</var>}}, {{para|<var>term_param</var> + 1}}, {{para|<var>term_param</var> + 2}}, {{para|t}},
{{para|gloss}}, {{para|sc}}, {{para|tr}}, {{para|ts}}, {{para|pos}}, {{para|g}}, {{para|id}}, {{para|lit}}) will be
available. If the calling template uses any of these parameters, they must be ignored using {{para|ignore}}.
; {{para|posttext}}
: Additional text to display directly after the formatted link, before any terminating period/dot and inside of
`<span class='use-with-mention'>`.
; {{para|noprimaryentrycat}}
: Category to add the page to if the primary entry linked to doesn't exist. The language name will automatically be
prepended.
; {{para|lemma_is_sort_key|1}}
: If the user didn't specify a sort key, use the lemma as the sort key (instead of the page itself).
]==]
function export.form_of_t(frame)
local iparams = get_common_invocation_params("form_of_t")
iparams[1] = {required = true}
local iargs = process_params(frame.args, iparams)
local parent_args = frame:getParent().args
local params = get_common_template_params()
if next(iargs.cat) then
params.nocat = boolean_param
end
return construct_form_of_text {
template = "form-of-t",
iargs = iargs,
parent_args = parent_args,
params = params,
do_form_of = function(lemma_data)
local args = lemma_data.args
local text
if args.notext then
text = ""
else
text = iargs[1]
if should_ucfirst_text(args, iargs, lemma_data.lang) then
text = ucfirst(text)
end
end
-- This returns two values, which we pass up to the caller.
return format_form_of {
lang = lemma_data.lang, text = text, lemmas = lemma_data.lemmas, conj = lemma_data.conj,
enclitics = lemma_data.enclitics, base_lemmas = lemma_data.base_lemmas, lemma_face = "term",
lit = lemma_data.lit, posttext = lemma_data.posttext
}
end
}
end
--[=[
Construct and return the full definition line for a form-of-type template invocation that is based on inflection tags.
This is a wrapper around construct_form_of_text() and takes the following arguments: processed invocation arguments
IARGS, processed parent arguments ARGS, TERM_PARAM (the parent argument specifying the main entry), COMPAT (true if the
language code is found in args.lang instead of args[1]), and TAGS, the list of (non-canonicalized) inflection tags.
It returns that actual definition-line text including terminating period/full-stop, formatted categories, etc. and
should be directly returned as the template function's return value.
]=]
local function construct_tagged_form_of_text(data)
local template, iargs, parent_args, params, no_numbered_gloss, tags =
data.template, data.iargs, data.parent_args, data.params, data.no_numbered_gloss, data.tags
-- Named params not controlling link display
-- Always included because lang-specific categories may be added
params.nocat = boolean_param
params.p = true
params.POS = {alias_of = "p"}
return construct_form_of_text {
template = template,
iargs = iargs,
parent_args = parent_args,
params = params,
no_numbered_gloss = no_numbered_gloss,
do_form_of = function(lemma_data)
local args = lemma_data.args
if is_callable(tags) then
tags = tags(args)
end
-- NOTE: tagged_inflections returns two values, so we do too.
return tagged_inflections {
lang = lemma_data.lang,
tags = tags,
lemmas = lemma_data.lemmas,
conj = lemma_data.conj,
enclitics = lemma_data.enclitics,
enclitic_conj = lemma_data.enclitic_conj,
base_lemmas = lemma_data.base_lemmas,
lemma_face = "term",
POS = args.p,
pagename = args.pagename,
-- Set no_format_categories because we do it ourselves in construct_form_of_text().
no_format_categories = true,
nocat = args.nocat,
notext = args.notext,
capfirst = should_ucfirst_text(args, iargs, lemma_data.lang),
posttext = lemma_data.posttext,
}
end
}
end
--[==[
Function that implements form-of templates that are defined by specific tagged inflections (typically a template
referring to a non-lemma inflection, such as {{tl|plural of}}). This works exactly like {form_of_t()} except that the
"form of" text displayed before the link is based off of a pre-specified set of inflection tags (which will be
appropriately linked to the glossary) instead of arbitrary text. From the user's perspective, there is no difference
between templates implemented using {form_of_t()} and {tagged_form_of_t()}; they accept exactly the same parameters and
work the same. See also {inflection_of_t()} below, which is intended for templates with user-specified inflection tags.
Invocation params:
; {{para|1|req=1}}, {{para|2}}, ...
: One or more inflection tags describing the inflection in question.
; {{para|split_tags}}
: If specified, character to split specified inflection tags on. This allows multiple tags to be included in a single
argument, simplifying template code.
; {{para|term_param}}
; {{para|with_multiple_parts|1}}
; {{para|lang}}
; {{para|sc}}
; {{para|cat}}, {{para|cat2}}, ...
; {{para|ignore}}, {{para|ignore2}}, ...
; {{para|def}}, {{para|def2}}, ...
; {{para|withcap|1}}
; {{para|withencap|1}}
; {{para|withdot|1}}
; {{para|nolink|1}}
; {{para|linktext}}
; {{para|posttext}}
; {{para|noprimaryentrycat}}
; {{para|lemma_is_sort_key|1}}
: All of these are the same as in {form_of_t()}.
]==]
function export.tagged_form_of_t(frame)
local iparams = get_common_invocation_params("tagged_form_of_t")
iparams[1] = {list = true, required = true}
iparams.split_tags = true
local iargs = process_params(frame.args, iparams)
local parent_args = frame:getParent().args
local params = get_common_template_params()
return construct_tagged_form_of_text {
template = "tagged-form-of-t",
iargs = iargs,
parent_args = parent_args,
params = params,
tags = split_inflection_tags(iargs[1], iargs.split_tags),
}
end
--[==[
Function that implements {{tl|inflection of}} and certain semi-specific variants, such as {{tl|participle of}} and
{{tl|past participle form of}}. This function is intended for templates that allow the user to specify a set of
inflection tags.
It works similarly to {form_of_t()} and {tagged_form_of_t()} except that the calling convention for the calling
template is
: { {{TEMPLATE|LANG|MAIN_ENTRY_LINK|MAIN_ENTRY_DISPLAY_TEXT|TAG|TAG|...}}}
instead of
: { {{TEMPLATE|LANG|MAIN_ENTRY_LINK|MAIN_ENTRY_DISPLAY_TEXT|GLOSS}}}
Note that there isn't a numbered parameter for the gloss, but it can still be specified using {{para|t}} or
{{para|gloss}}.
Invocation params:
; {{para|preinfl}}, {{para|preinfl2}}, ...
: Extra inflection tags to automatically prepend to the tags specified by the template.
; {{para|postinfl}}, {{para|postinfl2}}, ...
: Extra inflection tags to automatically append to the tags specified by the template. Used for example by
{{tl|past participle form of}} to add the tags `of the|past|p` onto the user-specified tags, which indicate which
past participle form the page refers to.
; {{para|split_tags}}
: If specified, character to split specified inflection tags on. This allows multiple tags to be included in a single
argument, simplifying template code. Note that this applies *ONLY* to inflection tags specified in the invocation
arguments using {{para|preinfl}} or {{para|postinfl}}, not to user-specified inflection tags.
; {{para|term_param}}
; {{para|lang}}
; {{para|sc}}
; {{para|cat}}, {{para|cat2}}, ...
; {{para|ignore}}, {{para|ignore2}}, ...
; {{para|def}}, {{para|def2}}, ...
; {{para|withcap|1}}
; {{para|withencap|1}}
; {{para|withdot|1}}
; {{para|nolink|1}}
; {{para|linktext}}
; {{para|posttext}}
; {{para|noprimaryentrycat}}
; {{para|lemma_is_sort_key|1}}
: All of these are the same as in {form_of_t()}.
]==]
function export.inflection_of_t(frame)
local iparams = get_common_invocation_params("inflection_of_t")
iparams.preinfl = {list = true}
iparams.postinfl = {list = true}
iparams.split_tags = true
local iargs = process_params(frame.args, iparams)
local parent_args = frame:getParent().args
local params = get_common_template_params()
local compat = iargs.lang or parent_args.lang
local tagsind = (iargs.term_param or compat and 1 or 2) + 2
params[tagsind] = {list = true,
-- at least one inflection tag is required unless preinfl or postinfl tags are given
required = #iargs.preinfl == 0 and #iargs.postinfl == 0}
return construct_tagged_form_of_text {
template = "inflection-of-t",
iargs = iargs,
parent_args = parent_args,
params = params,
no_numbered_gloss = true,
tags = function(args)
local infls
if not next(iargs.preinfl) and not next(iargs.postinfl) then
-- If no preinfl or postinfl tags, just use the user-specified tags directly.
infls = args[tagsind]
else
-- Otherwise, we need to prepend the preinfl tags and postpend the postinfl tags. If there's only one tag set
-- (no semicolon), it's easier. Since this is common, we optimize for it.
infls = {}
local saw_semicolon = false
for _, infl in ipairs(args[tagsind]) do
if infl == ";" then
saw_semicolon = true
break
end
end
local split_preinfl = split_inflection_tags(iargs.preinfl, iargs.split_tags)
local split_postinfl = split_inflection_tags(iargs.postinfl, iargs.split_tags)
if not saw_semicolon then
extend(infls, split_preinfl)
extend(infls, args[tagsind])
extend(infls, split_postinfl)
else
local groups = split_tag_set(args[tagsind])
for _, group in ipairs(groups) do
if #infls > 0 then
insert(infls, ";")
end
extend(infls, split_preinfl)
extend(infls, group)
extend(infls, split_postinfl)
end
end
end
return infls
end,
}
end
--[==[
Normalize a part-of-speech tag given a possible abbreviation (passed in as {{para|1}} of the invocation args). If the
abbreviation isn't recognized, the original POS tag is returned. If no POS tag is passed in, return the value of
invocation arg {{para|default}}.
]==]
function export.normalize_pos(frame)
local iparams = {
[1] = true,
["default"] = true,
}
local iargs = process_params(frame.args, iparams)
if not iargs[1] and not iargs.default then
error("Either 1= or default= must be given in the invocation args")
end
if not iargs[1] then
return iargs.default
end
return (m_form_of_pos or get_m_form_of_pos())[iargs[1]] or iargs[1]
end
return export
cibzd8u8mvhc62l347ku5ybdefhrzzm
1349854
1349853
2026-04-14T13:33:20Z
Swarabakti
18192
1349854
Scribunto
text/plain
local export = {}
local debug_track_module = "Module:debug/track"
local form_of_module = "Module:form of"
local functions_module = "Module:fun"
local headword_data_module = "Module:headword/data"
local languages_module = "Module:languages"
local load_module = "Module:load"
local parameters_module = "Module:parameters"
local parameter_utilities_module = "Module:parameter utilities"
local parse_interface_module = "Module:parse interface"
local string_utilities_module = "Module:string utilities"
local table_module = "Module:table"
local utilities_module = "Module:utilities"
local insert = table.insert
local ipairs = ipairs
local pairs = pairs
local require = require
local boolean_param = {type = "boolean"}
-- FIXME: Finish [[Module:format utilities]].
-- local allowed_conj_set = require(format_utilities_module).allowed_conj_set_for_join_segments
local allowed_conj_set = {["and"] = true, ["or"] = true, ["and/or"] = true}
--[==[
Loaders for functions in other modules, which overwrite themselves with the target function when called. This ensures modules are only loaded when needed, retains the speed/convenience of locally-declared pre-loaded functions, and has no overhead after the first call, since the target functions are called directly in any subsequent calls.]==]
local function debug_track(...)
debug_track = require(debug_track_module)
return debug_track(...)
end
local function decode_entities(...)
decode_entities = require(string_utilities_module).decode_entities
return decode_entities(...)
end
local function extend(...)
extend = require(table_module).extend
return extend(...)
end
local function format_categories(...)
format_categories = require(utilities_module).format_categories
return format_categories(...)
end
local function format_form_of(...)
format_form_of = require(form_of_module).format_form_of
return format_form_of(...)
end
local function get_lang(...)
get_lang = require(languages_module).getByCode
return get_lang(...)
end
local function gsplit(...)
gsplit = require(string_utilities_module).gsplit
return gsplit(...)
end
local function is_callable(...)
is_callable = require(functions_module).is_callable
return is_callable(...)
end
local function load_data(...)
load_data = require(load_module).load_data
return load_data(...)
end
local function parse_inline_modifiers(...)
parse_inline_modifiers = require(parse_interface_module).parse_inline_modifiers
return parse_inline_modifiers(...)
end
local function pattern_escape(...)
pattern_escape = require(string_utilities_module).pattern_escape
return pattern_escape(...)
end
local function process_params(...)
process_params = require(parameters_module).process
return process_params(...)
end
local function safe_load_data(...)
safe_load_data = require(load_module).safe_load_data
return safe_load_data(...)
end
local function split(...)
split = require(string_utilities_module).split
return split(...)
end
local function split_tag_set(...)
split_tag_set = require(form_of_module).split_tag_set
return split_tag_set(...)
end
local function tagged_inflections(...)
tagged_inflections = require(form_of_module).tagged_inflections
return tagged_inflections(...)
end
local function trim(...)
trim = require(string_utilities_module).trim
return trim(...)
end
local function ucfirst(...)
ucfirst = require(string_utilities_module).ucfirst
return ucfirst(...)
end
--[==[
Loaders for objects, which load data (or some other object) into some variable, which can then be accessed as "foo or get_foo()", where the function get_foo sets the object to "foo" and then returns it. This ensures they are only loaded when needed, and avoids the need to check for the existence of the object each time, since once "foo" has been set, "get_foo" will not be called again.]==]
local force_cat
local function get_force_cat()
force_cat, get_force_cat = require(form_of_module).force_cat, nil
return force_cat
end
local m_form_of_pos
local function get_m_form_of_pos()
m_form_of_pos, get_m_form_of_pos = load_data(headword_data_module).pos_aliases, nil
return m_form_of_pos
end
local module_prefix
local function get_module_prefix()
module_prefix, get_module_prefix = require(form_of_module).form_of_lang_data_module_prefix, nil
return module_prefix
end
--[==[ intro:
This module contains code that directly implements {{tl|form of}}, {{tl|inflection of}}, and the various other
[[:Category:Form-of templates|form-of templates]]. It is meant to be called directly from templates. See also
[[Module:form of]], which contains the underlying implementing code and is meant to be called from other modules.
]==]
-- Add tracking category for PAGE when called from TEMPLATE. The tracking category linked to is
-- [[Wiktionary:Tracking/form of/TEMPLATE/PAGE]]. If TEMPLATE is omitted, the tracking category is of the form
-- [[Wiktionary:Tracking/form of/PAGE]].
local function track(page, template)
debug_track("form of/" .. (template and template .. "/" or "") .. page)
end
local function get_common_template_params()
return {
-- Named params not controlling link display
["cat"] = {list = true, sublist = "comma without whitespace", flatten = true},
["notext"] = boolean_param,
["sort"] = true,
["enclitic"] = true,
-- FIXME! The following should only be available when withcap=1 in invocation args or when withencap=1 and the
-- language is "en". Before doing that, need to remove all uses of nocap= in other circumstances.
["nocap"] = boolean_param,
["addl"] = true, -- additional text to display at the end, before the closing </span>
["pagename"] = true, -- for testing, etc.
}
end
-- Split TAGSPECS (inflection tag specifications) on SPLIT_REGEX, which
-- may be nil for no splitting.
local function split_inflection_tags(tagspecs, split_regex)
if not split_regex then
return tagspecs
end
local inflection_tags = {}
for _, tagspec in ipairs(tagspecs) do
for tag in gsplit(tagspec, split_regex) do
insert(inflection_tags, tag)
end
end
return inflection_tags
end
local function parse_terms_with_inline_modifiers(paramname, val, param_mods, lang)
local function generate_obj(term)
return {lang = lang, term = decode_entities(term)}
end
return parse_inline_modifiers(val, {
paramname = paramname,
param_mods = param_mods,
generate_obj = generate_obj,
splitchar = ",",
outer_container = {},
})
end
-- Need to do what [[Module:parameters]] does to string arguments from parent_args as we're running this
-- before calling [[Module:parameters]] on parent_args.
local function ine(arg)
if not arg then
return nil
end
arg = trim(arg)
return arg ~= "" and arg or nil
end
local function add_base_lemma_params(parent_args, iargs, params, compat)
-- Check the language-specific data for additional base lemma params. But if there's no language-specific data,
-- attempt any parent varieties as well (i.e. superordinate varieties).
local lang = get_lang(ine(parent_args[compat and "lang" or 1]) or ine(iargs.lang) or "und", nil, true)
while lang do
local langdata = safe_load_data((module_prefix or get_module_prefix()) .. lang:getCode())
if langdata then
local base_lemma_params = langdata.base_lemma_params
if base_lemma_params then
for _, param in ipairs(base_lemma_params) do
params[param.param] = true
end
return base_lemma_params
end
end
lang = lang:getParent()
end
end
--[=[
Modify `params` in-place by adding parameters that control the link to the main entry and any base lemmas. `term_param`
is the number of the param specifying the main entry itself; `term_param` + 1 will be the display text, and `term_param`
+ 2 will be the gloss, unless `no_numbered_gloss` is given. The base lemma parameters are determined by attempting to
load language-specific data for the language of the page; this comes from |lang= if `compat` is given, else from |1=.
]=]
local function add_link_and_base_lemma_params(iargs, parent_args, params, term_param, compat, no_numbered_gloss)
local base_lemma_params
if not iargs.nolink and not iargs.linktext then
-- Numbered params controlling link display
if iargs.with_multiple_parts then
params[term_param] = {list = true, allow_holes = true}
else
params[term_param + 1] = {alias_of = "alt"}
if not no_numbered_gloss then
params[term_param + 2] = {alias_of = "t"}
end
params[term_param] = true
end
base_lemma_params = add_base_lemma_params(parent_args, iargs, params, compat)
end
return base_lemma_params
end
local function handle_withdot_withcap(iargs, params)
local ignored_tracked_params = {}
if iargs.withdot then
params.dot = true
params.nodot = boolean_param
end
if iargs.withcap and iargs.withencap then
error("Internal error: Can specify only one of withcap= and withencap=")
end
if not iargs.withcap then
params.cap = boolean_param
ignored_tracked_params.nocap = iargs.withencap and "non-english" or "always"
end
return ignored_tracked_params
end
--[=[
Construct and return the full definition line for a form-of-type template invocation. `data` is an object with the
following fields:
* `template`: Approximate template name, for debug tracking;
* `iargs`: processed invocation arguments;
* `parent_args`: raw parent args from `frame:getParent().args`;
* `params`: partially constructed params structure of the sort passed to `process()` in [[Module:parameters]], but
without any link params;
* `ignored_tracked_params`: params that are ignored but should be tracked, to be eventually removed;
* `term_param`: the parent argument specifying the main entry;
* `compat`: true if the language code is found in args.lang instead of args[1];
* `base_lemma_params`: if non-nil, a list of base lemma param objects of the sort stored in the language-specific data;
* `do_form_of`: a function of one argument, `lemma_data`, that returns the actual definition-line text and any
language-specific categories. See below.
This function does several things:
# If link parameters are called for (neither `iargs.nolink` nor `iargs.linktext` are given), augment the `params`
structure with separate link parameters.
# Modify the parent args as appropriate if invocation arguments def= or ignore= are given.
# Parse the parent args, both for separate parameter properties and inline modifiers on the term parameter (which may
consist of multiple comma-separated terms).
# Compute categories to add to the page, including language-specific categories and any categories requested by the
invocation or parent args.
# Parse enclitic and extra base lemma parameters.
# Construct the actual text using `do_form_of`.
# Add a terminating period/dot as appropriate, along with the formatted categories.
`do_form_of` takes one argument, `lemma_data`, which looks like this:
{
lang = LANG,
args = {ARG = VALUE, ARG = VALUE, ...},
lemmas = {LEMMA_OBJ, LEMMA_OBJ, ...},
enclitics = {ENCLITIC_OBJ, ENCLITIC_OBJ, ...},
base_lemmas = {BASE_LEMMA_OBJ, BASE_LEMMA_OBJ, ...},
categories = {"CATEGORY", "CATEGORY", ...},
posttext = "POSTTEXT" or nil,
}
where
* LANG is the language code;
* ARGS is the parsed arguments, based on what the user specified;
* LEMMAS is a sequence of objects specifying the main entries/lemmas, as passed to full_link in [[Module:links]];
however, if the invocation argument linktext= is given, it will be a string consisting of that text, and if the
invocation argument nolink= is given, it will be nil;
* ENCLITICS is nil or a sequence of objects specifying the enclitics, as passed to full_link in [[Module:links]];
* BASE_LEMMA_OBJ is a sequence of objects specifying the base lemma(s), which are used when the lemma is itself a
form of another lemma (the base lemma), e.g. a comparative, superlative or participle; each object is of the form
{ paramobj = PARAM_OBJ, lemmas = {LEMMA_OBJ, LEMMA_OBJ, ...} } where PARAM_OBJ describes the properties of the
base lemma parameter (i.e. the relationship between the intermediate and base lemmas) and LEMMA_OBJ is of the same
format of ENCLITIC_OBJ, i.e. an object suitable to be passed to full_link in [[Module:links]]; PARAM_OBJ is of the
format { param = "PARAM", tags = {"TAG", "TAG", ...} } where PARAM is the name of the parameter to
{{inflection of}} etc. that holds the base lemma(s) of the specified relationship and the tags describe the
relationship, such as {"comd"} or {"past", "part"};
* CATEGORIES is the categories to add the page to (consisting of any categories specified in the invocation or
parent args and any tracking categories, but not any additional lang-specific categories that may be added by
{{inflection of}} or similar templates);
* POSTTEXT is text to display at the end of the form-of text, before the final </span> (or at the end of the first
line, before the colon, in a multiline {{infl of}} call).
`do_form_of` should return two arguments:
(1) The actual definition-line text, marked up appropriately with <span>...</span> but without any terminating
period/dot.
(2) Any extra categories to add the page to (other than those that can be derived from parameters specified to the
invocation or parent arguments, which will automatically be added to the page).
]=]
local function construct_form_of_text(data)
local template, iargs, parent_args, params, no_numbered_gloss, do_form_of =
data.template, data.iargs, data.parent_args, data.params, data.no_numbered_gloss, data.do_form_of
local term_param = iargs.term_param
local compat = iargs.lang or parent_args.lang
term_param = term_param or compat and 1 or 2
-- Numbered params
params[compat and "lang" or 1] = {
required = not iargs.lang,
type = "language",
default = iargs.lang or "und"
}
-- Error to catch most uses of old-style parameters for {{contraction of}}. (FIXME: Remove eventually.)
if iargs.with_multiple_parts then
if ine(parent_args[term_param + 2]) and not ine(parent_args[term_param + 1]) and not ine(parent_args.tr2) and not ine(parent_args.ts2)
and not ine(parent_args.t2) and not ine(parent_args.gloss2) and not ine(parent_args.g2)
and not ine(parent_args.alt2) then
error(("You specified a term in %s= and not one in %s=. You probably meant to use t= to specify a gloss instead. "
.. "If you intended to specify two terms, put the second term in %s=."):format(term_param + 2, term_param + 1,
term_param + 1))
end
if not ine(parent_args[term_param + 1]) and not ine(parent_args.alt2) and not ine(parent_args.tr2) and not ine(parent_args.ts2)
and ine(parent_args.g2) then
error(("You specified a gender in g2= but no term in %s=. You were probably trying to specify two genders for "
.. "a single term. To do that, put both genders in g=, comma-separated."):format(term_param + 1))
end
end
local base_lemma_params = add_link_and_base_lemma_params(iargs, parent_args, params, term_param, compat,
no_numbered_gloss)
local ignored_tracked_params = handle_withdot_withcap(iargs, params)
--[=[
Process parent arguments. This is similar to the following:
require("Module:parameters").process(parent_args, params)
but in addition it does the following:
(1) Supplies default values for unspecified parent arguments as specified in DEFAULTS, which consist of specs of the
form "ARG=VALUE". These are added to the parent arguments prior to processing, so boolean and number parameters
will process the value appropriately.
(2) Removes parent arguments specified in IGNORESPECS, which consist either of bare argument names to remove, or
list-argument names to remove of the form "ARG:list".
(3) Tracks the use of any parent arguments specified in TRACKED_PARAMS, which is a set where the keys are arguments
as they exist after processing (hence numeric arguments should be numbers, not strings) and the values should be
boolean true.
]=]--
local defaults = iargs.def
local ignorespecs = iargs.ignore
if defaults[1] or ignorespecs[1] then
local new_parent_args = {}
for _, default in ipairs(defaults) do
local defparam, defval = default:match("^(.-)=(.*)$")
if not defparam then
error("Bad default spec " .. default)
end
new_parent_args[defparam] = defval
end
local params_to_ignore = {}
local numbered_list_params_to_ignore = {}
local named_list_params_to_ignore = {}
for _, ignorespec in ipairs(ignorespecs) do
for ignore in gsplit(ignorespec, ",") do
local param = ignore:match("^(.*):list$")
if param then
if param:match("^%d+$") then
insert(numbered_list_params_to_ignore, tonumber(param))
else
insert(named_list_params_to_ignore, "^" .. pattern_escape(param) .. "%d*$")
end
else
if ignore:match("^%d+$") then
ignore = tonumber(ignore)
end
params_to_ignore[ignore] = true
end
end
end
for k, v in pairs(parent_args) do
if not params_to_ignore[k] then
local ignore_me = false
if type(k) == "number" then
for _, lparam in ipairs(numbered_list_params_to_ignore) do
if k >= lparam then
ignore_me = true
break
end
end
else
for _, lparam in ipairs(named_list_params_to_ignore) do
if k:match(lparam) then
ignore_me = true
break
end
end
end
if not ignore_me then
new_parent_args[k] = v
end
end
end
parent_args = new_parent_args
end
local param_mods_with_conj, param_mods_without_conj
local function get_param_mods(with_conj)
if with_conj then
if not param_mods_with_conj then
param_mods_with_conj = require(parameter_utilities_module).construct_param_mods {
{group = {"link", "q", "l", "ref"}},
{param = "conj", set = allowed_conj_set, overall = true},
}
end
return param_mods_with_conj
else
if not param_mods_without_conj then
param_mods_without_conj = require(parameter_utilities_module).construct_param_mods {
{group = {"link", "q", "l", "ref"}},
-- Override lit= to have a separate overall value
{param = "lit", separate_no_index = true},
}
end
return param_mods_without_conj
end
end
local terms, args
if iargs.nolink or iargs.linktext then
args = process_params(parent_args, params)
else
local m_param_utils = require(parameter_utilities_module)
if iargs.with_multiple_parts then
terms, args = m_param_utils.parse_list_with_inline_modifiers_and_separate_params {
params = params,
param_mods = get_param_mods(false),
raw_args = parent_args,
termarg = term_param,
track_module = "form of" .. (template and "/" .. template or ""),
lang = compat and "lang" or 1,
sc = "sc.default",
parse_lang_prefix = true,
default_separator = " +‎ ",
special_separators = {[";"] = " or "},
}
else
terms, args = m_param_utils.parse_term_with_inline_modifiers_and_separate_params {
params = params,
param_mods = get_param_mods("with conj"),
raw_args = parent_args,
termarg = term_param,
track_module = "form of" .. (template and "/" .. template or ""),
lang = compat and "lang" or 1,
sc = "sc",
parse_lang_prefix = true,
make_separate_g_into_list = true,
splitchar = ",",
subitem_param_handling = "last",
}
end
end
local lang = args[compat and "lang" or 1]
-- Tracking for certain user-specified params. This is generally used for
-- parameters that we accept but ignore, so that we can eventually remove
-- all uses of these params and stop accepting them.
if ignored_tracked_params then
for ignored_tracked_param, condition in pairs(ignored_tracked_params) do
if parent_args[ignored_tracked_param] and (condition ~= "non-english" or lang:getCode() ~= "en") then
track("arg/" .. ignored_tracked_param, template)
track("arg/" .. ignored_tracked_param)
end
end
end
-- Determine categories for the page, including tracking categories
local categories = {}
if not args.nocat then
for _, cat in ipairs(iargs.cat) do
insert(categories, lang:getCode() .. ":" .. cat)
end
end
for _, cat in ipairs(args.cat) do
insert(categories, lang:getCode() .. ":" .. cat)
end
-- Format the link, preceding text and categories
local function add_term_tracking_categories(term)
-- add tracking category if term is same as page title
if term and mw.loadData("Module:headword/data").pagename == lang:stripDiacritics(term) then
insert(categories, "Forms linking to themselves")
end
-- maybe add tracking category if primary entry doesn't exist (this is an
-- expensive call so we don't do it by default)
if iargs.noprimaryentrycat and term and mw.title.getCurrentTitle().nsText == ""
and not mw.title.new(term):getContent() then
insert(categories, lang:getFullName() .. " " .. iargs.noprimaryentrycat)
end
end
local lemmas
if iargs.nolink then
lemmas = nil
elseif iargs.linktext then
lemmas = iargs.linktext
else
if iargs.with_multiple_parts then
lemmas = terms
else
lemmas = terms.terms
end
if not lemmas[1] then
if mw.title.getCurrentTitle().nsText == "Templat" then
lemmas[1] = {
lang = lang,
term = "term"
}
else
error("No linked-to term specified")
end
end
for _, termobj in ipairs(lemmas) do
if termobj.term then
add_term_tracking_categories(termobj.term)
end
-- NOTE: Formerly, template arg sc= overrode inline modifier <sc:...>, which seems backwards, so I've
-- changed it. Hopefully nothing depended on the old behavior.
end
end
local enclitics, enclitic_conj
if args.enclitic then
local enclitics_obj = parse_terms_with_inline_modifiers("enclitic", args.enclitic, get_param_mods("with conj"),
lang)
enclitics = enclitics_obj.terms
enclitic_conj = enclitics_obj.conj
end
local base_lemmas = {}
if base_lemma_params then
for _, base_lemma_param_obj in ipairs(base_lemma_params) do
local param = base_lemma_param_obj.param
if args[param] then
local base_lemmas_obj = parse_terms_with_inline_modifiers(param, args[param],
get_param_mods("with conj"), lang)
insert(base_lemmas, {
paramobj = base_lemma_param_obj,
lemmas = base_lemmas_obj.terms,
conj = base_lemmas_obj.conj,
})
end
end
end
local posttext = iargs.posttext
local addl = args.addl
if addl then
posttext = posttext or ""
if addl:find("^[;:]") then
posttext = posttext .. addl
elseif addl:find("^_") then
posttext = posttext .. " " .. addl:sub(2)
else
posttext = posttext .. ", " .. addl
end
end
local conj
if iargs.with_multiple_parts then
conj = false -- signals to use 'separator' field
else
conj = terms and terms.conj or iargs.conj
end
local lemma_data = {
lang = lang,
args = args,
lemmas = lemmas,
conj = conj,
enclitics = enclitics,
enclitic_conj = enclitic_conj,
base_lemmas = base_lemmas,
categories = categories,
posttext = posttext,
lit = iargs.with_multiple_parts and args.lit.default or nil,
}
local form_of_text, lang_cats = do_form_of(lemma_data)
extend(lemma_data.categories, lang_cats)
local text = form_of_text .. (
args.nodot and "" or args.dot or iargs.withdot and "." or ""
)
if not lemma_data.categories[1] then
return text
end
return text .. format_categories(lemma_data.categories, lemma_data.lang, args.sort,
-- If lemma_is_sort_key is given, supply the first lemma term as the sort base if possible. If sort= is given,
-- it will override the base; otherwise, the base will be converted appropriately to a sort key using the
-- same algorithm applied to pagenames.
iargs.lemma_is_sort_key and type(lemma_data.lemmas) == "table" and lemma_data.lemmas[1].term,
-- Supply the first lemma's script for sort key computation.
force_cat or get_force_cat(), type(lemma_data.lemmas) == "table" and lemma_data.lemmas[1].sc)
end
-- Invocation parameters shared between form_of_t(), tagged_form_of_t() and inflection_of_t(). `calling_func` is the
-- invoking function ("form_of_t", "tagged_form_of_t" or "inflection_of_t"), for handling parameters shared by two but
-- not all three invoking functions.
local function get_common_invocation_params(calling_func)
local iparams = {
["term_param"] = {type = "number"},
["lang"] = true, -- To be used as the default code in params.
["sc"] = {type = "script"},
["cat"] = {list = true, sublist = "comma without whitespace", flatten = true},
["ignore"] = {list = true},
["def"] = {list = true},
["conj"] = {set = allowed_conj_set, default = "and"},
["withcap"] = boolean_param,
["withencap"] = boolean_param,
["withdot"] = boolean_param,
["nolink"] = boolean_param,
["linktext"] = true,
["posttext"] = true,
["noprimaryentrycat"] = true,
["lemma_is_sort_key"] = true,
}
if calling_func ~= "inflection_of_t" then
iparams.with_multiple_parts = boolean_param
end
return iparams
end
local function should_ucfirst_text(args, iargs, lang)
local code = lang:getCode()
return args.cap or (iargs.withcap or iargs.withencap and code == "en" or code == "mul") and not args.nocap
end
--[==[
Function that implements {{tl|form of}} and the various more specific form-of templates (but not {{tl|inflection of}}
or templates that take tagged inflection parameters).
Invocation params:
; {{para|1|req=1}}
: Text to display before the link.
; {{para|term_param}}
: Numbered param holding the term linked to. Other numbered params come after. Defaults to 1 if invocation or template
param {{para|lang}} is present, otherwise 2.
; {{para|with_multiple_parts|1}}
: If specified, higher numbered parameters above the numbered param in {{para|term_param}} specify additional parts out
of which the term was constructed, for use by templates like {{tl|contraction of}}. (If not specified, the parameter
at <code><var>term_param</var> + 1</code> is the display form, same as {{para|alt}}, and the parameter at
at <code><var>term_param</var> + 2</code> is the gloss, same as {{para|t}}.)
; {{para|lang}}
: Default language code for language-specific templates. If specified, no language code needs to be specified, and if
specified it needs to be set using {{para|lang}}, not {{para|1}}.
; {{para|sc}}
: Default script code for language-specific templates. The script code can still be overridden using template param
{{para|sc}}.
; {{para|cat}}, {{para|cat2}}, ...:
: Categories to place the page into. The language name will automatically be prepended. Note that there is also a
template param {{para|cat}} to specify categories at the template level. Use of {{para|nocat}} disables categorization
of categories specified using invocation param {{para|cat}}, but not using template param {{para|cat}}. A single param
can specify multiple comma-separated categories if no space follows the comma.
; {{para|ignore}}, {{para|ignore2}}, ...:
: One or more template params to silently accept and ignore. Useful e.g. when the template takes additional parameters
such as {{para|from}} or {{para|POS}}. Each value is a comma-separated list of either bare parameter names or
specifications of the form `PARAM:list` to specify that the parameter is a list parameter.
; {{para|def}}, {{para|def2}}, ...:
: One or more default values to supply for template args. For example, specifying {{para|def|2=tr=-}} causes the default
for template param {{para|tr}} to be `-`. Actual template params override these defaults.
; {{para|withcap|1}}
: Capitalize the first character of the text preceding the link, unless template param {{para|nocap}} is given.
; {{para|withencap|1}}
: Capitalize the first character of the text preceding the link if the language is English and template param
{{para|nocap}} is not given.
; {{para|withdot|1}}
: Add a final period after the link, unless template param {{para|nodot}} is given to suppress the period, or
{{para|dot}} is given to specify an alternative punctuation character.
; {{para|nolink|1}}
: Suppress the display of the link. If specified, none of the template params that control the link
({{para|<var>term_param</var>}}, {{para|<var>term_param</var> + 1}}, {{para|<var>term_param</var> + 2}}, {{para|t}},
{{para|gloss}}, {{para|sc}}, {{para|tr}}, {{para|ts}}, {{para|pos}}, {{para|g}}, {{para|id}}, {{para|lit}}) will be
available. If the calling template uses any of these parameters, they must be ignored using {{para|ignore}}.
{{para|linktext}}
: Override the display of the link with the specified text. This is useful if a custom template is available to format
the link (e.g. in Hebrew, Chinese and Japanese). If specified, none of the template params that control the link
({{para|<var>term_param</var>}}, {{para|<var>term_param</var> + 1}}, {{para|<var>term_param</var> + 2}}, {{para|t}},
{{para|gloss}}, {{para|sc}}, {{para|tr}}, {{para|ts}}, {{para|pos}}, {{para|g}}, {{para|id}}, {{para|lit}}) will be
available. If the calling template uses any of these parameters, they must be ignored using {{para|ignore}}.
; {{para|posttext}}
: Additional text to display directly after the formatted link, before any terminating period/dot and inside of
`<span class='use-with-mention'>`.
; {{para|noprimaryentrycat}}
: Category to add the page to if the primary entry linked to doesn't exist. The language name will automatically be
prepended.
; {{para|lemma_is_sort_key|1}}
: If the user didn't specify a sort key, use the lemma as the sort key (instead of the page itself).
]==]
function export.form_of_t(frame)
local iparams = get_common_invocation_params("form_of_t")
iparams[1] = {required = true}
local iargs = process_params(frame.args, iparams)
local parent_args = frame:getParent().args
local params = get_common_template_params()
if next(iargs.cat) then
params.nocat = boolean_param
end
return construct_form_of_text {
template = "form-of-t",
iargs = iargs,
parent_args = parent_args,
params = params,
do_form_of = function(lemma_data)
local args = lemma_data.args
local text
if args.notext then
text = ""
else
text = iargs[1]
if should_ucfirst_text(args, iargs, lemma_data.lang) then
text = ucfirst(text)
end
end
-- This returns two values, which we pass up to the caller.
return format_form_of {
lang = lemma_data.lang, text = text, lemmas = lemma_data.lemmas, conj = lemma_data.conj,
enclitics = lemma_data.enclitics, base_lemmas = lemma_data.base_lemmas, lemma_face = "term",
lit = lemma_data.lit, posttext = lemma_data.posttext
}
end
}
end
--[=[
Construct and return the full definition line for a form-of-type template invocation that is based on inflection tags.
This is a wrapper around construct_form_of_text() and takes the following arguments: processed invocation arguments
IARGS, processed parent arguments ARGS, TERM_PARAM (the parent argument specifying the main entry), COMPAT (true if the
language code is found in args.lang instead of args[1]), and TAGS, the list of (non-canonicalized) inflection tags.
It returns that actual definition-line text including terminating period/full-stop, formatted categories, etc. and
should be directly returned as the template function's return value.
]=]
local function construct_tagged_form_of_text(data)
local template, iargs, parent_args, params, no_numbered_gloss, tags =
data.template, data.iargs, data.parent_args, data.params, data.no_numbered_gloss, data.tags
-- Named params not controlling link display
-- Always included because lang-specific categories may be added
params.nocat = boolean_param
params.p = true
params.POS = {alias_of = "p"}
return construct_form_of_text {
template = template,
iargs = iargs,
parent_args = parent_args,
params = params,
no_numbered_gloss = no_numbered_gloss,
do_form_of = function(lemma_data)
local args = lemma_data.args
if is_callable(tags) then
tags = tags(args)
end
-- NOTE: tagged_inflections returns two values, so we do too.
return tagged_inflections {
lang = lemma_data.lang,
tags = tags,
lemmas = lemma_data.lemmas,
conj = lemma_data.conj,
enclitics = lemma_data.enclitics,
enclitic_conj = lemma_data.enclitic_conj,
base_lemmas = lemma_data.base_lemmas,
lemma_face = "term",
POS = args.p,
pagename = args.pagename,
-- Set no_format_categories because we do it ourselves in construct_form_of_text().
no_format_categories = true,
nocat = args.nocat,
notext = args.notext,
capfirst = should_ucfirst_text(args, iargs, lemma_data.lang),
posttext = lemma_data.posttext,
}
end
}
end
--[==[
Function that implements form-of templates that are defined by specific tagged inflections (typically a template
referring to a non-lemma inflection, such as {{tl|plural of}}). This works exactly like {form_of_t()} except that the
"form of" text displayed before the link is based off of a pre-specified set of inflection tags (which will be
appropriately linked to the glossary) instead of arbitrary text. From the user's perspective, there is no difference
between templates implemented using {form_of_t()} and {tagged_form_of_t()}; they accept exactly the same parameters and
work the same. See also {inflection_of_t()} below, which is intended for templates with user-specified inflection tags.
Invocation params:
; {{para|1|req=1}}, {{para|2}}, ...
: One or more inflection tags describing the inflection in question.
; {{para|split_tags}}
: If specified, character to split specified inflection tags on. This allows multiple tags to be included in a single
argument, simplifying template code.
; {{para|term_param}}
; {{para|with_multiple_parts|1}}
; {{para|lang}}
; {{para|sc}}
; {{para|cat}}, {{para|cat2}}, ...
; {{para|ignore}}, {{para|ignore2}}, ...
; {{para|def}}, {{para|def2}}, ...
; {{para|withcap|1}}
; {{para|withencap|1}}
; {{para|withdot|1}}
; {{para|nolink|1}}
; {{para|linktext}}
; {{para|posttext}}
; {{para|noprimaryentrycat}}
; {{para|lemma_is_sort_key|1}}
: All of these are the same as in {form_of_t()}.
]==]
function export.tagged_form_of_t(frame)
local iparams = get_common_invocation_params("tagged_form_of_t")
iparams[1] = {list = true, required = true}
iparams.split_tags = true
local iargs = process_params(frame.args, iparams)
local parent_args = frame:getParent().args
local params = get_common_template_params()
return construct_tagged_form_of_text {
template = "tagged-form-of-t",
iargs = iargs,
parent_args = parent_args,
params = params,
tags = split_inflection_tags(iargs[1], iargs.split_tags),
}
end
--[==[
Function that implements {{tl|inflection of}} and certain semi-specific variants, such as {{tl|participle of}} and
{{tl|past participle form of}}. This function is intended for templates that allow the user to specify a set of
inflection tags.
It works similarly to {form_of_t()} and {tagged_form_of_t()} except that the calling convention for the calling
template is
: { {{TEMPLATE|LANG|MAIN_ENTRY_LINK|MAIN_ENTRY_DISPLAY_TEXT|TAG|TAG|...}}}
instead of
: { {{TEMPLATE|LANG|MAIN_ENTRY_LINK|MAIN_ENTRY_DISPLAY_TEXT|GLOSS}}}
Note that there isn't a numbered parameter for the gloss, but it can still be specified using {{para|t}} or
{{para|gloss}}.
Invocation params:
; {{para|preinfl}}, {{para|preinfl2}}, ...
: Extra inflection tags to automatically prepend to the tags specified by the template.
; {{para|postinfl}}, {{para|postinfl2}}, ...
: Extra inflection tags to automatically append to the tags specified by the template. Used for example by
{{tl|past participle form of}} to add the tags `of the|past|p` onto the user-specified tags, which indicate which
past participle form the page refers to.
; {{para|split_tags}}
: If specified, character to split specified inflection tags on. This allows multiple tags to be included in a single
argument, simplifying template code. Note that this applies *ONLY* to inflection tags specified in the invocation
arguments using {{para|preinfl}} or {{para|postinfl}}, not to user-specified inflection tags.
; {{para|term_param}}
; {{para|lang}}
; {{para|sc}}
; {{para|cat}}, {{para|cat2}}, ...
; {{para|ignore}}, {{para|ignore2}}, ...
; {{para|def}}, {{para|def2}}, ...
; {{para|withcap|1}}
; {{para|withencap|1}}
; {{para|withdot|1}}
; {{para|nolink|1}}
; {{para|linktext}}
; {{para|posttext}}
; {{para|noprimaryentrycat}}
; {{para|lemma_is_sort_key|1}}
: All of these are the same as in {form_of_t()}.
]==]
function export.inflection_of_t(frame)
local iparams = get_common_invocation_params("inflection_of_t")
iparams.preinfl = {list = true}
iparams.postinfl = {list = true}
iparams.split_tags = true
local iargs = process_params(frame.args, iparams)
local parent_args = frame:getParent().args
local params = get_common_template_params()
local compat = iargs.lang or parent_args.lang
local tagsind = (iargs.term_param or compat and 1 or 2) + 2
params[tagsind] = {list = true,
-- at least one inflection tag is required unless preinfl or postinfl tags are given
required = #iargs.preinfl == 0 and #iargs.postinfl == 0}
return construct_tagged_form_of_text {
template = "inflection-of-t",
iargs = iargs,
parent_args = parent_args,
params = params,
no_numbered_gloss = true,
tags = function(args)
local infls
if not next(iargs.preinfl) and not next(iargs.postinfl) then
-- If no preinfl or postinfl tags, just use the user-specified tags directly.
infls = args[tagsind]
else
-- Otherwise, we need to prepend the preinfl tags and postpend the postinfl tags. If there's only one tag set
-- (no semicolon), it's easier. Since this is common, we optimize for it.
infls = {}
local saw_semicolon = false
for _, infl in ipairs(args[tagsind]) do
if infl == ";" then
saw_semicolon = true
break
end
end
local split_preinfl = split_inflection_tags(iargs.preinfl, iargs.split_tags)
local split_postinfl = split_inflection_tags(iargs.postinfl, iargs.split_tags)
if not saw_semicolon then
extend(infls, split_preinfl)
extend(infls, args[tagsind])
extend(infls, split_postinfl)
else
local groups = split_tag_set(args[tagsind])
for _, group in ipairs(groups) do
if #infls > 0 then
insert(infls, ";")
end
extend(infls, split_preinfl)
extend(infls, group)
extend(infls, split_postinfl)
end
end
end
return infls
end,
}
end
--[==[
Normalize a part-of-speech tag given a possible abbreviation (passed in as {{para|1}} of the invocation args). If the
abbreviation isn't recognized, the original POS tag is returned. If no POS tag is passed in, return the value of
invocation arg {{para|default}}.
]==]
function export.normalize_pos(frame)
local iparams = {
[1] = true,
["default"] = true,
}
local iargs = process_params(frame.args, iparams)
if not iargs[1] and not iargs.default then
error("Either 1= or default= must be given in the invocation args")
end
if not iargs[1] then
return iargs.default
end
return (m_form_of_pos or get_m_form_of_pos())[iargs[1]] or iargs[1]
end
return export
tmojen71xun5s50j431jk5v1xbaj1ue
1349856
1349854
2026-04-14T13:40:19Z
Swarabakti
18192
1349856
Scribunto
text/plain
local export = {}
local debug_track_module = "Module:debug/track"
local form_of_module = "Module:form of"
local functions_module = "Module:fun"
local headword_data_module = "Module:headword/data"
local languages_module = "Module:languages"
local load_module = "Module:load"
local parameters_module = "Module:parameters"
local parameter_utilities_module = "Module:parameter utilities"
local parse_interface_module = "Module:parse interface"
local string_utilities_module = "Module:string utilities"
local table_module = "Module:table"
local utilities_module = "Module:utilities"
local insert = table.insert
local ipairs = ipairs
local pairs = pairs
local require = require
local boolean_param = {type = "boolean"}
-- FIXME: Finish [[Module:format utilities]].
-- local allowed_conj_set = require(format_utilities_module).allowed_conj_set_for_join_segments
local allowed_conj_set = {["and"] = true, ["or"] = true, ["and/or"] = true}
--[==[
Loaders for functions in other modules, which overwrite themselves with the target function when called. This ensures modules are only loaded when needed, retains the speed/convenience of locally-declared pre-loaded functions, and has no overhead after the first call, since the target functions are called directly in any subsequent calls.]==]
local function debug_track(...)
debug_track = require(debug_track_module)
return debug_track(...)
end
local function decode_entities(...)
decode_entities = require(string_utilities_module).decode_entities
return decode_entities(...)
end
local extend = require(table_module).extend
local function format_categories(...)
format_categories = require(utilities_module).format_categories
return format_categories(...)
end
local function format_form_of(...)
format_form_of = require(form_of_module).format_form_of
return format_form_of(...)
end
local function get_lang(...)
get_lang = require(languages_module).getByCode
return get_lang(...)
end
local function gsplit(...)
gsplit = require(string_utilities_module).gsplit
return gsplit(...)
end
local function is_callable(...)
is_callable = require(functions_module).is_callable
return is_callable(...)
end
local function load_data(...)
load_data = require(load_module).load_data
return load_data(...)
end
local function parse_inline_modifiers(...)
parse_inline_modifiers = require(parse_interface_module).parse_inline_modifiers
return parse_inline_modifiers(...)
end
local function pattern_escape(...)
pattern_escape = require(string_utilities_module).pattern_escape
return pattern_escape(...)
end
local function process_params(...)
process_params = require(parameters_module).process
return process_params(...)
end
local function safe_load_data(...)
safe_load_data = require(load_module).safe_load_data
return safe_load_data(...)
end
local function split(...)
split = require(string_utilities_module).split
return split(...)
end
local function split_tag_set(...)
split_tag_set = require(form_of_module).split_tag_set
return split_tag_set(...)
end
local function tagged_inflections(...)
tagged_inflections = require(form_of_module).tagged_inflections
return tagged_inflections(...)
end
local function trim(...)
trim = require(string_utilities_module).trim
return trim(...)
end
local function ucfirst(...)
ucfirst = require(string_utilities_module).ucfirst
return ucfirst(...)
end
--[==[
Loaders for objects, which load data (or some other object) into some variable, which can then be accessed as "foo or get_foo()", where the function get_foo sets the object to "foo" and then returns it. This ensures they are only loaded when needed, and avoids the need to check for the existence of the object each time, since once "foo" has been set, "get_foo" will not be called again.]==]
local force_cat
local function get_force_cat()
force_cat, get_force_cat = require(form_of_module).force_cat, nil
return force_cat
end
local m_form_of_pos
local function get_m_form_of_pos()
m_form_of_pos, get_m_form_of_pos = load_data(headword_data_module).pos_aliases, nil
return m_form_of_pos
end
local module_prefix
local function get_module_prefix()
module_prefix, get_module_prefix = require(form_of_module).form_of_lang_data_module_prefix, nil
return module_prefix
end
--[==[ intro:
This module contains code that directly implements {{tl|form of}}, {{tl|inflection of}}, and the various other
[[:Category:Form-of templates|form-of templates]]. It is meant to be called directly from templates. See also
[[Module:form of]], which contains the underlying implementing code and is meant to be called from other modules.
]==]
-- Add tracking category for PAGE when called from TEMPLATE. The tracking category linked to is
-- [[Wiktionary:Tracking/form of/TEMPLATE/PAGE]]. If TEMPLATE is omitted, the tracking category is of the form
-- [[Wiktionary:Tracking/form of/PAGE]].
local function track(page, template)
debug_track("form of/" .. (template and template .. "/" or "") .. page)
end
local function get_common_template_params()
return {
-- Named params not controlling link display
["cat"] = {list = true, sublist = "comma without whitespace", flatten = true},
["notext"] = boolean_param,
["sort"] = true,
["enclitic"] = true,
-- FIXME! The following should only be available when withcap=1 in invocation args or when withencap=1 and the
-- language is "en". Before doing that, need to remove all uses of nocap= in other circumstances.
["nocap"] = boolean_param,
["addl"] = true, -- additional text to display at the end, before the closing </span>
["pagename"] = true, -- for testing, etc.
}
end
-- Split TAGSPECS (inflection tag specifications) on SPLIT_REGEX, which
-- may be nil for no splitting.
local function split_inflection_tags(tagspecs, split_regex)
if not split_regex then
return tagspecs
end
local inflection_tags = {}
for _, tagspec in ipairs(tagspecs) do
for tag in gsplit(tagspec, split_regex) do
insert(inflection_tags, tag)
end
end
return inflection_tags
end
local function parse_terms_with_inline_modifiers(paramname, val, param_mods, lang)
local function generate_obj(term)
return {lang = lang, term = decode_entities(term)}
end
return parse_inline_modifiers(val, {
paramname = paramname,
param_mods = param_mods,
generate_obj = generate_obj,
splitchar = ",",
outer_container = {},
})
end
-- Need to do what [[Module:parameters]] does to string arguments from parent_args as we're running this
-- before calling [[Module:parameters]] on parent_args.
local function ine(arg)
if not arg then
return nil
end
arg = trim(arg)
return arg ~= "" and arg or nil
end
local function add_base_lemma_params(parent_args, iargs, params, compat)
-- Check the language-specific data for additional base lemma params. But if there's no language-specific data,
-- attempt any parent varieties as well (i.e. superordinate varieties).
local lang = get_lang(ine(parent_args[compat and "lang" or 1]) or ine(iargs.lang) or "und", nil, true)
while lang do
local langdata = safe_load_data((module_prefix or get_module_prefix()) .. lang:getCode())
if langdata then
local base_lemma_params = langdata.base_lemma_params
if base_lemma_params then
for _, param in ipairs(base_lemma_params) do
params[param.param] = true
end
return base_lemma_params
end
end
lang = lang:getParent()
end
end
--[=[
Modify `params` in-place by adding parameters that control the link to the main entry and any base lemmas. `term_param`
is the number of the param specifying the main entry itself; `term_param` + 1 will be the display text, and `term_param`
+ 2 will be the gloss, unless `no_numbered_gloss` is given. The base lemma parameters are determined by attempting to
load language-specific data for the language of the page; this comes from |lang= if `compat` is given, else from |1=.
]=]
local function add_link_and_base_lemma_params(iargs, parent_args, params, term_param, compat, no_numbered_gloss)
local base_lemma_params
if not iargs.nolink and not iargs.linktext then
-- Numbered params controlling link display
if iargs.with_multiple_parts then
params[term_param] = {list = true, allow_holes = true}
else
params[term_param + 1] = {alias_of = "alt"}
if not no_numbered_gloss then
params[term_param + 2] = {alias_of = "t"}
end
params[term_param] = true
end
base_lemma_params = add_base_lemma_params(parent_args, iargs, params, compat)
end
return base_lemma_params
end
local function handle_withdot_withcap(iargs, params)
local ignored_tracked_params = {}
if iargs.withdot then
params.dot = true
params.nodot = boolean_param
end
if iargs.withcap and iargs.withencap then
error("Internal error: Can specify only one of withcap= and withencap=")
end
if not iargs.withcap then
params.cap = boolean_param
ignored_tracked_params.nocap = iargs.withencap and "non-english" or "always"
end
return ignored_tracked_params
end
--[=[
Construct and return the full definition line for a form-of-type template invocation. `data` is an object with the
following fields:
* `template`: Approximate template name, for debug tracking;
* `iargs`: processed invocation arguments;
* `parent_args`: raw parent args from `frame:getParent().args`;
* `params`: partially constructed params structure of the sort passed to `process()` in [[Module:parameters]], but
without any link params;
* `ignored_tracked_params`: params that are ignored but should be tracked, to be eventually removed;
* `term_param`: the parent argument specifying the main entry;
* `compat`: true if the language code is found in args.lang instead of args[1];
* `base_lemma_params`: if non-nil, a list of base lemma param objects of the sort stored in the language-specific data;
* `do_form_of`: a function of one argument, `lemma_data`, that returns the actual definition-line text and any
language-specific categories. See below.
This function does several things:
# If link parameters are called for (neither `iargs.nolink` nor `iargs.linktext` are given), augment the `params`
structure with separate link parameters.
# Modify the parent args as appropriate if invocation arguments def= or ignore= are given.
# Parse the parent args, both for separate parameter properties and inline modifiers on the term parameter (which may
consist of multiple comma-separated terms).
# Compute categories to add to the page, including language-specific categories and any categories requested by the
invocation or parent args.
# Parse enclitic and extra base lemma parameters.
# Construct the actual text using `do_form_of`.
# Add a terminating period/dot as appropriate, along with the formatted categories.
`do_form_of` takes one argument, `lemma_data`, which looks like this:
{
lang = LANG,
args = {ARG = VALUE, ARG = VALUE, ...},
lemmas = {LEMMA_OBJ, LEMMA_OBJ, ...},
enclitics = {ENCLITIC_OBJ, ENCLITIC_OBJ, ...},
base_lemmas = {BASE_LEMMA_OBJ, BASE_LEMMA_OBJ, ...},
categories = {"CATEGORY", "CATEGORY", ...},
posttext = "POSTTEXT" or nil,
}
where
* LANG is the language code;
* ARGS is the parsed arguments, based on what the user specified;
* LEMMAS is a sequence of objects specifying the main entries/lemmas, as passed to full_link in [[Module:links]];
however, if the invocation argument linktext= is given, it will be a string consisting of that text, and if the
invocation argument nolink= is given, it will be nil;
* ENCLITICS is nil or a sequence of objects specifying the enclitics, as passed to full_link in [[Module:links]];
* BASE_LEMMA_OBJ is a sequence of objects specifying the base lemma(s), which are used when the lemma is itself a
form of another lemma (the base lemma), e.g. a comparative, superlative or participle; each object is of the form
{ paramobj = PARAM_OBJ, lemmas = {LEMMA_OBJ, LEMMA_OBJ, ...} } where PARAM_OBJ describes the properties of the
base lemma parameter (i.e. the relationship between the intermediate and base lemmas) and LEMMA_OBJ is of the same
format of ENCLITIC_OBJ, i.e. an object suitable to be passed to full_link in [[Module:links]]; PARAM_OBJ is of the
format { param = "PARAM", tags = {"TAG", "TAG", ...} } where PARAM is the name of the parameter to
{{inflection of}} etc. that holds the base lemma(s) of the specified relationship and the tags describe the
relationship, such as {"comd"} or {"past", "part"};
* CATEGORIES is the categories to add the page to (consisting of any categories specified in the invocation or
parent args and any tracking categories, but not any additional lang-specific categories that may be added by
{{inflection of}} or similar templates);
* POSTTEXT is text to display at the end of the form-of text, before the final </span> (or at the end of the first
line, before the colon, in a multiline {{infl of}} call).
`do_form_of` should return two arguments:
(1) The actual definition-line text, marked up appropriately with <span>...</span> but without any terminating
period/dot.
(2) Any extra categories to add the page to (other than those that can be derived from parameters specified to the
invocation or parent arguments, which will automatically be added to the page).
]=]
local function construct_form_of_text(data)
local template, iargs, parent_args, params, no_numbered_gloss, do_form_of =
data.template, data.iargs, data.parent_args, data.params, data.no_numbered_gloss, data.do_form_of
local term_param = iargs.term_param
local compat = iargs.lang or parent_args.lang
term_param = term_param or compat and 1 or 2
-- Numbered params
params[compat and "lang" or 1] = {
required = not iargs.lang,
type = "language",
default = iargs.lang or "und"
}
-- Error to catch most uses of old-style parameters for {{contraction of}}. (FIXME: Remove eventually.)
if iargs.with_multiple_parts then
if ine(parent_args[term_param + 2]) and not ine(parent_args[term_param + 1]) and not ine(parent_args.tr2) and not ine(parent_args.ts2)
and not ine(parent_args.t2) and not ine(parent_args.gloss2) and not ine(parent_args.g2)
and not ine(parent_args.alt2) then
error(("You specified a term in %s= and not one in %s=. You probably meant to use t= to specify a gloss instead. "
.. "If you intended to specify two terms, put the second term in %s=."):format(term_param + 2, term_param + 1,
term_param + 1))
end
if not ine(parent_args[term_param + 1]) and not ine(parent_args.alt2) and not ine(parent_args.tr2) and not ine(parent_args.ts2)
and ine(parent_args.g2) then
error(("You specified a gender in g2= but no term in %s=. You were probably trying to specify two genders for "
.. "a single term. To do that, put both genders in g=, comma-separated."):format(term_param + 1))
end
end
local base_lemma_params = add_link_and_base_lemma_params(iargs, parent_args, params, term_param, compat,
no_numbered_gloss)
local ignored_tracked_params = handle_withdot_withcap(iargs, params)
--[=[
Process parent arguments. This is similar to the following:
require("Module:parameters").process(parent_args, params)
but in addition it does the following:
(1) Supplies default values for unspecified parent arguments as specified in DEFAULTS, which consist of specs of the
form "ARG=VALUE". These are added to the parent arguments prior to processing, so boolean and number parameters
will process the value appropriately.
(2) Removes parent arguments specified in IGNORESPECS, which consist either of bare argument names to remove, or
list-argument names to remove of the form "ARG:list".
(3) Tracks the use of any parent arguments specified in TRACKED_PARAMS, which is a set where the keys are arguments
as they exist after processing (hence numeric arguments should be numbers, not strings) and the values should be
boolean true.
]=]--
local defaults = iargs.def
local ignorespecs = iargs.ignore
if defaults[1] or ignorespecs[1] then
local new_parent_args = {}
for _, default in ipairs(defaults) do
local defparam, defval = default:match("^(.-)=(.*)$")
if not defparam then
error("Bad default spec " .. default)
end
new_parent_args[defparam] = defval
end
local params_to_ignore = {}
local numbered_list_params_to_ignore = {}
local named_list_params_to_ignore = {}
for _, ignorespec in ipairs(ignorespecs) do
for ignore in gsplit(ignorespec, ",") do
local param = ignore:match("^(.*):list$")
if param then
if param:match("^%d+$") then
insert(numbered_list_params_to_ignore, tonumber(param))
else
insert(named_list_params_to_ignore, "^" .. pattern_escape(param) .. "%d*$")
end
else
if ignore:match("^%d+$") then
ignore = tonumber(ignore)
end
params_to_ignore[ignore] = true
end
end
end
for k, v in pairs(parent_args) do
if not params_to_ignore[k] then
local ignore_me = false
if type(k) == "number" then
for _, lparam in ipairs(numbered_list_params_to_ignore) do
if k >= lparam then
ignore_me = true
break
end
end
else
for _, lparam in ipairs(named_list_params_to_ignore) do
if k:match(lparam) then
ignore_me = true
break
end
end
end
if not ignore_me then
new_parent_args[k] = v
end
end
end
parent_args = new_parent_args
end
local param_mods_with_conj, param_mods_without_conj
local function get_param_mods(with_conj)
if with_conj then
if not param_mods_with_conj then
param_mods_with_conj = require(parameter_utilities_module).construct_param_mods {
{group = {"link", "q", "l", "ref"}},
{param = "conj", set = allowed_conj_set, overall = true},
}
end
return param_mods_with_conj
else
if not param_mods_without_conj then
param_mods_without_conj = require(parameter_utilities_module).construct_param_mods {
{group = {"link", "q", "l", "ref"}},
-- Override lit= to have a separate overall value
{param = "lit", separate_no_index = true},
}
end
return param_mods_without_conj
end
end
local terms, args
if iargs.nolink or iargs.linktext then
args = process_params(parent_args, params)
else
local m_param_utils = require(parameter_utilities_module)
if iargs.with_multiple_parts then
terms, args = m_param_utils.parse_list_with_inline_modifiers_and_separate_params {
params = params,
param_mods = get_param_mods(false),
raw_args = parent_args,
termarg = term_param,
track_module = "form of" .. (template and "/" .. template or ""),
lang = compat and "lang" or 1,
sc = "sc.default",
parse_lang_prefix = true,
default_separator = " +‎ ",
special_separators = {[";"] = " or "},
}
else
terms, args = m_param_utils.parse_term_with_inline_modifiers_and_separate_params {
params = params,
param_mods = get_param_mods("with conj"),
raw_args = parent_args,
termarg = term_param,
track_module = "form of" .. (template and "/" .. template or ""),
lang = compat and "lang" or 1,
sc = "sc",
parse_lang_prefix = true,
make_separate_g_into_list = true,
splitchar = ",",
subitem_param_handling = "last",
}
end
end
local lang = args[compat and "lang" or 1]
-- Tracking for certain user-specified params. This is generally used for
-- parameters that we accept but ignore, so that we can eventually remove
-- all uses of these params and stop accepting them.
if ignored_tracked_params then
for ignored_tracked_param, condition in pairs(ignored_tracked_params) do
if parent_args[ignored_tracked_param] and (condition ~= "non-english" or lang:getCode() ~= "en") then
track("arg/" .. ignored_tracked_param, template)
track("arg/" .. ignored_tracked_param)
end
end
end
-- Determine categories for the page, including tracking categories
local categories = {}
if not args.nocat then
for _, cat in ipairs(iargs.cat) do
insert(categories, lang:getCode() .. ":" .. cat)
end
end
for _, cat in ipairs(args.cat) do
insert(categories, lang:getCode() .. ":" .. cat)
end
-- Format the link, preceding text and categories
local function add_term_tracking_categories(term)
-- add tracking category if term is same as page title
if term and mw.loadData("Module:headword/data").pagename == lang:stripDiacritics(term) then
insert(categories, "Forms linking to themselves")
end
-- maybe add tracking category if primary entry doesn't exist (this is an
-- expensive call so we don't do it by default)
if iargs.noprimaryentrycat and term and mw.title.getCurrentTitle().nsText == ""
and not mw.title.new(term):getContent() then
insert(categories, lang:getFullName() .. " " .. iargs.noprimaryentrycat)
end
end
local lemmas
if iargs.nolink then
lemmas = nil
elseif iargs.linktext then
lemmas = iargs.linktext
else
if iargs.with_multiple_parts then
lemmas = terms
else
lemmas = terms.terms
end
if not lemmas[1] then
if mw.title.getCurrentTitle().nsText == "Templat" then
lemmas[1] = {
lang = lang,
term = "term"
}
else
error("No linked-to term specified")
end
end
for _, termobj in ipairs(lemmas) do
if termobj.term then
add_term_tracking_categories(termobj.term)
end
-- NOTE: Formerly, template arg sc= overrode inline modifier <sc:...>, which seems backwards, so I've
-- changed it. Hopefully nothing depended on the old behavior.
end
end
local enclitics, enclitic_conj
if args.enclitic then
local enclitics_obj = parse_terms_with_inline_modifiers("enclitic", args.enclitic, get_param_mods("with conj"),
lang)
enclitics = enclitics_obj.terms
enclitic_conj = enclitics_obj.conj
end
local base_lemmas = {}
if base_lemma_params then
for _, base_lemma_param_obj in ipairs(base_lemma_params) do
local param = base_lemma_param_obj.param
if args[param] then
local base_lemmas_obj = parse_terms_with_inline_modifiers(param, args[param],
get_param_mods("with conj"), lang)
insert(base_lemmas, {
paramobj = base_lemma_param_obj,
lemmas = base_lemmas_obj.terms,
conj = base_lemmas_obj.conj,
})
end
end
end
local posttext = iargs.posttext
local addl = args.addl
if addl then
posttext = posttext or ""
if addl:find("^[;:]") then
posttext = posttext .. addl
elseif addl:find("^_") then
posttext = posttext .. " " .. addl:sub(2)
else
posttext = posttext .. ", " .. addl
end
end
local conj
if iargs.with_multiple_parts then
conj = false -- signals to use 'separator' field
else
conj = terms and terms.conj or iargs.conj
end
local lemma_data = {
lang = lang,
args = args,
lemmas = lemmas,
conj = conj,
enclitics = enclitics,
enclitic_conj = enclitic_conj,
base_lemmas = base_lemmas,
categories = categories,
posttext = posttext,
lit = iargs.with_multiple_parts and args.lit.default or nil,
}
local form_of_text, lang_cats = do_form_of(lemma_data)
extend(lemma_data.categories, lang_cats)
local text = form_of_text .. (
args.nodot and "" or args.dot or iargs.withdot and "." or ""
)
if not lemma_data.categories[1] then
return text
end
return text .. format_categories(lemma_data.categories, lemma_data.lang, args.sort,
-- If lemma_is_sort_key is given, supply the first lemma term as the sort base if possible. If sort= is given,
-- it will override the base; otherwise, the base will be converted appropriately to a sort key using the
-- same algorithm applied to pagenames.
iargs.lemma_is_sort_key and type(lemma_data.lemmas) == "table" and lemma_data.lemmas[1].term,
-- Supply the first lemma's script for sort key computation.
force_cat or get_force_cat(), type(lemma_data.lemmas) == "table" and lemma_data.lemmas[1].sc)
end
-- Invocation parameters shared between form_of_t(), tagged_form_of_t() and inflection_of_t(). `calling_func` is the
-- invoking function ("form_of_t", "tagged_form_of_t" or "inflection_of_t"), for handling parameters shared by two but
-- not all three invoking functions.
local function get_common_invocation_params(calling_func)
local iparams = {
["term_param"] = {type = "number"},
["lang"] = true, -- To be used as the default code in params.
["sc"] = {type = "script"},
["cat"] = {list = true, sublist = "comma without whitespace", flatten = true},
["ignore"] = {list = true},
["def"] = {list = true},
["conj"] = {set = allowed_conj_set, default = "and"},
["withcap"] = boolean_param,
["withencap"] = boolean_param,
["withdot"] = boolean_param,
["nolink"] = boolean_param,
["linktext"] = true,
["posttext"] = true,
["noprimaryentrycat"] = true,
["lemma_is_sort_key"] = true,
}
if calling_func ~= "inflection_of_t" then
iparams.with_multiple_parts = boolean_param
end
return iparams
end
local function should_ucfirst_text(args, iargs, lang)
local code = lang:getCode()
return args.cap or (iargs.withcap or iargs.withencap and code == "en" or code == "mul") and not args.nocap
end
--[==[
Function that implements {{tl|form of}} and the various more specific form-of templates (but not {{tl|inflection of}}
or templates that take tagged inflection parameters).
Invocation params:
; {{para|1|req=1}}
: Text to display before the link.
; {{para|term_param}}
: Numbered param holding the term linked to. Other numbered params come after. Defaults to 1 if invocation or template
param {{para|lang}} is present, otherwise 2.
; {{para|with_multiple_parts|1}}
: If specified, higher numbered parameters above the numbered param in {{para|term_param}} specify additional parts out
of which the term was constructed, for use by templates like {{tl|contraction of}}. (If not specified, the parameter
at <code><var>term_param</var> + 1</code> is the display form, same as {{para|alt}}, and the parameter at
at <code><var>term_param</var> + 2</code> is the gloss, same as {{para|t}}.)
; {{para|lang}}
: Default language code for language-specific templates. If specified, no language code needs to be specified, and if
specified it needs to be set using {{para|lang}}, not {{para|1}}.
; {{para|sc}}
: Default script code for language-specific templates. The script code can still be overridden using template param
{{para|sc}}.
; {{para|cat}}, {{para|cat2}}, ...:
: Categories to place the page into. The language name will automatically be prepended. Note that there is also a
template param {{para|cat}} to specify categories at the template level. Use of {{para|nocat}} disables categorization
of categories specified using invocation param {{para|cat}}, but not using template param {{para|cat}}. A single param
can specify multiple comma-separated categories if no space follows the comma.
; {{para|ignore}}, {{para|ignore2}}, ...:
: One or more template params to silently accept and ignore. Useful e.g. when the template takes additional parameters
such as {{para|from}} or {{para|POS}}. Each value is a comma-separated list of either bare parameter names or
specifications of the form `PARAM:list` to specify that the parameter is a list parameter.
; {{para|def}}, {{para|def2}}, ...:
: One or more default values to supply for template args. For example, specifying {{para|def|2=tr=-}} causes the default
for template param {{para|tr}} to be `-`. Actual template params override these defaults.
; {{para|withcap|1}}
: Capitalize the first character of the text preceding the link, unless template param {{para|nocap}} is given.
; {{para|withencap|1}}
: Capitalize the first character of the text preceding the link if the language is English and template param
{{para|nocap}} is not given.
; {{para|withdot|1}}
: Add a final period after the link, unless template param {{para|nodot}} is given to suppress the period, or
{{para|dot}} is given to specify an alternative punctuation character.
; {{para|nolink|1}}
: Suppress the display of the link. If specified, none of the template params that control the link
({{para|<var>term_param</var>}}, {{para|<var>term_param</var> + 1}}, {{para|<var>term_param</var> + 2}}, {{para|t}},
{{para|gloss}}, {{para|sc}}, {{para|tr}}, {{para|ts}}, {{para|pos}}, {{para|g}}, {{para|id}}, {{para|lit}}) will be
available. If the calling template uses any of these parameters, they must be ignored using {{para|ignore}}.
{{para|linktext}}
: Override the display of the link with the specified text. This is useful if a custom template is available to format
the link (e.g. in Hebrew, Chinese and Japanese). If specified, none of the template params that control the link
({{para|<var>term_param</var>}}, {{para|<var>term_param</var> + 1}}, {{para|<var>term_param</var> + 2}}, {{para|t}},
{{para|gloss}}, {{para|sc}}, {{para|tr}}, {{para|ts}}, {{para|pos}}, {{para|g}}, {{para|id}}, {{para|lit}}) will be
available. If the calling template uses any of these parameters, they must be ignored using {{para|ignore}}.
; {{para|posttext}}
: Additional text to display directly after the formatted link, before any terminating period/dot and inside of
`<span class='use-with-mention'>`.
; {{para|noprimaryentrycat}}
: Category to add the page to if the primary entry linked to doesn't exist. The language name will automatically be
prepended.
; {{para|lemma_is_sort_key|1}}
: If the user didn't specify a sort key, use the lemma as the sort key (instead of the page itself).
]==]
function export.form_of_t(frame)
local iparams = get_common_invocation_params("form_of_t")
iparams[1] = {required = true}
local iargs = process_params(frame.args, iparams)
local parent_args = frame:getParent().args
local params = get_common_template_params()
if next(iargs.cat) then
params.nocat = boolean_param
end
return construct_form_of_text {
template = "form-of-t",
iargs = iargs,
parent_args = parent_args,
params = params,
do_form_of = function(lemma_data)
local args = lemma_data.args
local text
if args.notext then
text = ""
else
text = iargs[1]
if should_ucfirst_text(args, iargs, lemma_data.lang) then
text = ucfirst(text)
end
end
-- This returns two values, which we pass up to the caller.
return format_form_of {
lang = lemma_data.lang, text = text, lemmas = lemma_data.lemmas, conj = lemma_data.conj,
enclitics = lemma_data.enclitics, base_lemmas = lemma_data.base_lemmas, lemma_face = "term",
lit = lemma_data.lit, posttext = lemma_data.posttext
}
end
}
end
--[=[
Construct and return the full definition line for a form-of-type template invocation that is based on inflection tags.
This is a wrapper around construct_form_of_text() and takes the following arguments: processed invocation arguments
IARGS, processed parent arguments ARGS, TERM_PARAM (the parent argument specifying the main entry), COMPAT (true if the
language code is found in args.lang instead of args[1]), and TAGS, the list of (non-canonicalized) inflection tags.
It returns that actual definition-line text including terminating period/full-stop, formatted categories, etc. and
should be directly returned as the template function's return value.
]=]
local function construct_tagged_form_of_text(data)
local template, iargs, parent_args, params, no_numbered_gloss, tags =
data.template, data.iargs, data.parent_args, data.params, data.no_numbered_gloss, data.tags
-- Named params not controlling link display
-- Always included because lang-specific categories may be added
params.nocat = boolean_param
params.p = true
params.POS = {alias_of = "p"}
return construct_form_of_text {
template = template,
iargs = iargs,
parent_args = parent_args,
params = params,
no_numbered_gloss = no_numbered_gloss,
do_form_of = function(lemma_data)
local args = lemma_data.args
if is_callable(tags) then
tags = tags(args)
end
-- NOTE: tagged_inflections returns two values, so we do too.
return tagged_inflections {
lang = lemma_data.lang,
tags = tags,
lemmas = lemma_data.lemmas,
conj = lemma_data.conj,
enclitics = lemma_data.enclitics,
enclitic_conj = lemma_data.enclitic_conj,
base_lemmas = lemma_data.base_lemmas,
lemma_face = "term",
POS = args.p,
pagename = args.pagename,
-- Set no_format_categories because we do it ourselves in construct_form_of_text().
no_format_categories = true,
nocat = args.nocat,
notext = args.notext,
capfirst = should_ucfirst_text(args, iargs, lemma_data.lang),
posttext = lemma_data.posttext,
}
end
}
end
--[==[
Function that implements form-of templates that are defined by specific tagged inflections (typically a template
referring to a non-lemma inflection, such as {{tl|plural of}}). This works exactly like {form_of_t()} except that the
"form of" text displayed before the link is based off of a pre-specified set of inflection tags (which will be
appropriately linked to the glossary) instead of arbitrary text. From the user's perspective, there is no difference
between templates implemented using {form_of_t()} and {tagged_form_of_t()}; they accept exactly the same parameters and
work the same. See also {inflection_of_t()} below, which is intended for templates with user-specified inflection tags.
Invocation params:
; {{para|1|req=1}}, {{para|2}}, ...
: One or more inflection tags describing the inflection in question.
; {{para|split_tags}}
: If specified, character to split specified inflection tags on. This allows multiple tags to be included in a single
argument, simplifying template code.
; {{para|term_param}}
; {{para|with_multiple_parts|1}}
; {{para|lang}}
; {{para|sc}}
; {{para|cat}}, {{para|cat2}}, ...
; {{para|ignore}}, {{para|ignore2}}, ...
; {{para|def}}, {{para|def2}}, ...
; {{para|withcap|1}}
; {{para|withencap|1}}
; {{para|withdot|1}}
; {{para|nolink|1}}
; {{para|linktext}}
; {{para|posttext}}
; {{para|noprimaryentrycat}}
; {{para|lemma_is_sort_key|1}}
: All of these are the same as in {form_of_t()}.
]==]
function export.tagged_form_of_t(frame)
local iparams = get_common_invocation_params("tagged_form_of_t")
iparams[1] = {list = true, required = true}
iparams.split_tags = true
local iargs = process_params(frame.args, iparams)
local parent_args = frame:getParent().args
local params = get_common_template_params()
return construct_tagged_form_of_text {
template = "tagged-form-of-t",
iargs = iargs,
parent_args = parent_args,
params = params,
tags = split_inflection_tags(iargs[1], iargs.split_tags),
}
end
--[==[
Function that implements {{tl|inflection of}} and certain semi-specific variants, such as {{tl|participle of}} and
{{tl|past participle form of}}. This function is intended for templates that allow the user to specify a set of
inflection tags.
It works similarly to {form_of_t()} and {tagged_form_of_t()} except that the calling convention for the calling
template is
: { {{TEMPLATE|LANG|MAIN_ENTRY_LINK|MAIN_ENTRY_DISPLAY_TEXT|TAG|TAG|...}}}
instead of
: { {{TEMPLATE|LANG|MAIN_ENTRY_LINK|MAIN_ENTRY_DISPLAY_TEXT|GLOSS}}}
Note that there isn't a numbered parameter for the gloss, but it can still be specified using {{para|t}} or
{{para|gloss}}.
Invocation params:
; {{para|preinfl}}, {{para|preinfl2}}, ...
: Extra inflection tags to automatically prepend to the tags specified by the template.
; {{para|postinfl}}, {{para|postinfl2}}, ...
: Extra inflection tags to automatically append to the tags specified by the template. Used for example by
{{tl|past participle form of}} to add the tags `of the|past|p` onto the user-specified tags, which indicate which
past participle form the page refers to.
; {{para|split_tags}}
: If specified, character to split specified inflection tags on. This allows multiple tags to be included in a single
argument, simplifying template code. Note that this applies *ONLY* to inflection tags specified in the invocation
arguments using {{para|preinfl}} or {{para|postinfl}}, not to user-specified inflection tags.
; {{para|term_param}}
; {{para|lang}}
; {{para|sc}}
; {{para|cat}}, {{para|cat2}}, ...
; {{para|ignore}}, {{para|ignore2}}, ...
; {{para|def}}, {{para|def2}}, ...
; {{para|withcap|1}}
; {{para|withencap|1}}
; {{para|withdot|1}}
; {{para|nolink|1}}
; {{para|linktext}}
; {{para|posttext}}
; {{para|noprimaryentrycat}}
; {{para|lemma_is_sort_key|1}}
: All of these are the same as in {form_of_t()}.
]==]
function export.inflection_of_t(frame)
local iparams = get_common_invocation_params("inflection_of_t")
iparams.preinfl = {list = true}
iparams.postinfl = {list = true}
iparams.split_tags = true
local iargs = process_params(frame.args, iparams)
local parent_args = frame:getParent().args
local params = get_common_template_params()
local compat = iargs.lang or parent_args.lang
local tagsind = (iargs.term_param or compat and 1 or 2) + 2
params[tagsind] = {list = true,
-- at least one inflection tag is required unless preinfl or postinfl tags are given
required = #iargs.preinfl == 0 and #iargs.postinfl == 0}
return construct_tagged_form_of_text {
template = "inflection-of-t",
iargs = iargs,
parent_args = parent_args,
params = params,
no_numbered_gloss = true,
tags = function(args)
local infls
if not next(iargs.preinfl) and not next(iargs.postinfl) then
-- If no preinfl or postinfl tags, just use the user-specified tags directly.
infls = args[tagsind]
else
-- Otherwise, we need to prepend the preinfl tags and postpend the postinfl tags. If there's only one tag set
-- (no semicolon), it's easier. Since this is common, we optimize for it.
infls = {}
local saw_semicolon = false
for _, infl in ipairs(args[tagsind]) do
if infl == ";" then
saw_semicolon = true
break
end
end
local split_preinfl = split_inflection_tags(iargs.preinfl, iargs.split_tags)
local split_postinfl = split_inflection_tags(iargs.postinfl, iargs.split_tags)
if not saw_semicolon then
extend(infls, split_preinfl)
extend(infls, args[tagsind])
extend(infls, split_postinfl)
else
local groups = split_tag_set(args[tagsind])
for _, group in ipairs(groups) do
if #infls > 0 then
insert(infls, ";")
end
extend(infls, split_preinfl)
extend(infls, group)
extend(infls, split_postinfl)
end
end
end
return infls
end,
}
end
--[==[
Normalize a part-of-speech tag given a possible abbreviation (passed in as {{para|1}} of the invocation args). If the
abbreviation isn't recognized, the original POS tag is returned. If no POS tag is passed in, return the value of
invocation arg {{para|default}}.
]==]
function export.normalize_pos(frame)
local iparams = {
[1] = true,
["default"] = true,
}
local iargs = process_params(frame.args, iparams)
if not iargs[1] and not iargs.default then
error("Either 1= or default= must be given in the invocation args")
end
if not iargs[1] then
return iargs.default
end
return (m_form_of_pos or get_m_form_of_pos())[iargs[1]] or iargs[1]
end
return export
7chh34hndnevpvj3vxf1nmph4fwuj8a
1349857
1349856
2026-04-14T13:44:06Z
Swarabakti
18192
Batalkan revisi [[Special:Diff/1349856|1349856]] oleh [[Special:Contributions/Swarabakti|Swarabakti]] ([[User talk:Swarabakti|bicara]])
1349857
Scribunto
text/plain
local export = {}
local debug_track_module = "Module:debug/track"
local form_of_module = "Module:form of"
local functions_module = "Module:fun"
local headword_data_module = "Module:headword/data"
local languages_module = "Module:languages"
local load_module = "Module:load"
local parameters_module = "Module:parameters"
local parameter_utilities_module = "Module:parameter utilities"
local parse_interface_module = "Module:parse interface"
local string_utilities_module = "Module:string utilities"
local table_module = "Module:table"
local utilities_module = "Module:utilities"
local insert = table.insert
local ipairs = ipairs
local pairs = pairs
local require = require
local boolean_param = {type = "boolean"}
-- FIXME: Finish [[Module:format utilities]].
-- local allowed_conj_set = require(format_utilities_module).allowed_conj_set_for_join_segments
local allowed_conj_set = {["and"] = true, ["or"] = true, ["and/or"] = true}
--[==[
Loaders for functions in other modules, which overwrite themselves with the target function when called. This ensures modules are only loaded when needed, retains the speed/convenience of locally-declared pre-loaded functions, and has no overhead after the first call, since the target functions are called directly in any subsequent calls.]==]
local function debug_track(...)
debug_track = require(debug_track_module)
return debug_track(...)
end
local function decode_entities(...)
decode_entities = require(string_utilities_module).decode_entities
return decode_entities(...)
end
local function extend(...)
extend = require(table_module).extend
return extend(...)
end
local function format_categories(...)
format_categories = require(utilities_module).format_categories
return format_categories(...)
end
local function format_form_of(...)
format_form_of = require(form_of_module).format_form_of
return format_form_of(...)
end
local function get_lang(...)
get_lang = require(languages_module).getByCode
return get_lang(...)
end
local function gsplit(...)
gsplit = require(string_utilities_module).gsplit
return gsplit(...)
end
local function is_callable(...)
is_callable = require(functions_module).is_callable
return is_callable(...)
end
local function load_data(...)
load_data = require(load_module).load_data
return load_data(...)
end
local function parse_inline_modifiers(...)
parse_inline_modifiers = require(parse_interface_module).parse_inline_modifiers
return parse_inline_modifiers(...)
end
local function pattern_escape(...)
pattern_escape = require(string_utilities_module).pattern_escape
return pattern_escape(...)
end
local function process_params(...)
process_params = require(parameters_module).process
return process_params(...)
end
local function safe_load_data(...)
safe_load_data = require(load_module).safe_load_data
return safe_load_data(...)
end
local function split(...)
split = require(string_utilities_module).split
return split(...)
end
local function split_tag_set(...)
split_tag_set = require(form_of_module).split_tag_set
return split_tag_set(...)
end
local function tagged_inflections(...)
tagged_inflections = require(form_of_module).tagged_inflections
return tagged_inflections(...)
end
local function trim(...)
trim = require(string_utilities_module).trim
return trim(...)
end
local function ucfirst(...)
ucfirst = require(string_utilities_module).ucfirst
return ucfirst(...)
end
--[==[
Loaders for objects, which load data (or some other object) into some variable, which can then be accessed as "foo or get_foo()", where the function get_foo sets the object to "foo" and then returns it. This ensures they are only loaded when needed, and avoids the need to check for the existence of the object each time, since once "foo" has been set, "get_foo" will not be called again.]==]
local force_cat
local function get_force_cat()
force_cat, get_force_cat = require(form_of_module).force_cat, nil
return force_cat
end
local m_form_of_pos
local function get_m_form_of_pos()
m_form_of_pos, get_m_form_of_pos = load_data(headword_data_module).pos_aliases, nil
return m_form_of_pos
end
local module_prefix
local function get_module_prefix()
module_prefix, get_module_prefix = require(form_of_module).form_of_lang_data_module_prefix, nil
return module_prefix
end
--[==[ intro:
This module contains code that directly implements {{tl|form of}}, {{tl|inflection of}}, and the various other
[[:Category:Form-of templates|form-of templates]]. It is meant to be called directly from templates. See also
[[Module:form of]], which contains the underlying implementing code and is meant to be called from other modules.
]==]
-- Add tracking category for PAGE when called from TEMPLATE. The tracking category linked to is
-- [[Wiktionary:Tracking/form of/TEMPLATE/PAGE]]. If TEMPLATE is omitted, the tracking category is of the form
-- [[Wiktionary:Tracking/form of/PAGE]].
local function track(page, template)
debug_track("form of/" .. (template and template .. "/" or "") .. page)
end
local function get_common_template_params()
return {
-- Named params not controlling link display
["cat"] = {list = true, sublist = "comma without whitespace", flatten = true},
["notext"] = boolean_param,
["sort"] = true,
["enclitic"] = true,
-- FIXME! The following should only be available when withcap=1 in invocation args or when withencap=1 and the
-- language is "en". Before doing that, need to remove all uses of nocap= in other circumstances.
["nocap"] = boolean_param,
["addl"] = true, -- additional text to display at the end, before the closing </span>
["pagename"] = true, -- for testing, etc.
}
end
-- Split TAGSPECS (inflection tag specifications) on SPLIT_REGEX, which
-- may be nil for no splitting.
local function split_inflection_tags(tagspecs, split_regex)
if not split_regex then
return tagspecs
end
local inflection_tags = {}
for _, tagspec in ipairs(tagspecs) do
for tag in gsplit(tagspec, split_regex) do
insert(inflection_tags, tag)
end
end
return inflection_tags
end
local function parse_terms_with_inline_modifiers(paramname, val, param_mods, lang)
local function generate_obj(term)
return {lang = lang, term = decode_entities(term)}
end
return parse_inline_modifiers(val, {
paramname = paramname,
param_mods = param_mods,
generate_obj = generate_obj,
splitchar = ",",
outer_container = {},
})
end
-- Need to do what [[Module:parameters]] does to string arguments from parent_args as we're running this
-- before calling [[Module:parameters]] on parent_args.
local function ine(arg)
if not arg then
return nil
end
arg = trim(arg)
return arg ~= "" and arg or nil
end
local function add_base_lemma_params(parent_args, iargs, params, compat)
-- Check the language-specific data for additional base lemma params. But if there's no language-specific data,
-- attempt any parent varieties as well (i.e. superordinate varieties).
local lang = get_lang(ine(parent_args[compat and "lang" or 1]) or ine(iargs.lang) or "und", nil, true)
while lang do
local langdata = safe_load_data((module_prefix or get_module_prefix()) .. lang:getCode())
if langdata then
local base_lemma_params = langdata.base_lemma_params
if base_lemma_params then
for _, param in ipairs(base_lemma_params) do
params[param.param] = true
end
return base_lemma_params
end
end
lang = lang:getParent()
end
end
--[=[
Modify `params` in-place by adding parameters that control the link to the main entry and any base lemmas. `term_param`
is the number of the param specifying the main entry itself; `term_param` + 1 will be the display text, and `term_param`
+ 2 will be the gloss, unless `no_numbered_gloss` is given. The base lemma parameters are determined by attempting to
load language-specific data for the language of the page; this comes from |lang= if `compat` is given, else from |1=.
]=]
local function add_link_and_base_lemma_params(iargs, parent_args, params, term_param, compat, no_numbered_gloss)
local base_lemma_params
if not iargs.nolink and not iargs.linktext then
-- Numbered params controlling link display
if iargs.with_multiple_parts then
params[term_param] = {list = true, allow_holes = true}
else
params[term_param + 1] = {alias_of = "alt"}
if not no_numbered_gloss then
params[term_param + 2] = {alias_of = "t"}
end
params[term_param] = true
end
base_lemma_params = add_base_lemma_params(parent_args, iargs, params, compat)
end
return base_lemma_params
end
local function handle_withdot_withcap(iargs, params)
local ignored_tracked_params = {}
if iargs.withdot then
params.dot = true
params.nodot = boolean_param
end
if iargs.withcap and iargs.withencap then
error("Internal error: Can specify only one of withcap= and withencap=")
end
if not iargs.withcap then
params.cap = boolean_param
ignored_tracked_params.nocap = iargs.withencap and "non-english" or "always"
end
return ignored_tracked_params
end
--[=[
Construct and return the full definition line for a form-of-type template invocation. `data` is an object with the
following fields:
* `template`: Approximate template name, for debug tracking;
* `iargs`: processed invocation arguments;
* `parent_args`: raw parent args from `frame:getParent().args`;
* `params`: partially constructed params structure of the sort passed to `process()` in [[Module:parameters]], but
without any link params;
* `ignored_tracked_params`: params that are ignored but should be tracked, to be eventually removed;
* `term_param`: the parent argument specifying the main entry;
* `compat`: true if the language code is found in args.lang instead of args[1];
* `base_lemma_params`: if non-nil, a list of base lemma param objects of the sort stored in the language-specific data;
* `do_form_of`: a function of one argument, `lemma_data`, that returns the actual definition-line text and any
language-specific categories. See below.
This function does several things:
# If link parameters are called for (neither `iargs.nolink` nor `iargs.linktext` are given), augment the `params`
structure with separate link parameters.
# Modify the parent args as appropriate if invocation arguments def= or ignore= are given.
# Parse the parent args, both for separate parameter properties and inline modifiers on the term parameter (which may
consist of multiple comma-separated terms).
# Compute categories to add to the page, including language-specific categories and any categories requested by the
invocation or parent args.
# Parse enclitic and extra base lemma parameters.
# Construct the actual text using `do_form_of`.
# Add a terminating period/dot as appropriate, along with the formatted categories.
`do_form_of` takes one argument, `lemma_data`, which looks like this:
{
lang = LANG,
args = {ARG = VALUE, ARG = VALUE, ...},
lemmas = {LEMMA_OBJ, LEMMA_OBJ, ...},
enclitics = {ENCLITIC_OBJ, ENCLITIC_OBJ, ...},
base_lemmas = {BASE_LEMMA_OBJ, BASE_LEMMA_OBJ, ...},
categories = {"CATEGORY", "CATEGORY", ...},
posttext = "POSTTEXT" or nil,
}
where
* LANG is the language code;
* ARGS is the parsed arguments, based on what the user specified;
* LEMMAS is a sequence of objects specifying the main entries/lemmas, as passed to full_link in [[Module:links]];
however, if the invocation argument linktext= is given, it will be a string consisting of that text, and if the
invocation argument nolink= is given, it will be nil;
* ENCLITICS is nil or a sequence of objects specifying the enclitics, as passed to full_link in [[Module:links]];
* BASE_LEMMA_OBJ is a sequence of objects specifying the base lemma(s), which are used when the lemma is itself a
form of another lemma (the base lemma), e.g. a comparative, superlative or participle; each object is of the form
{ paramobj = PARAM_OBJ, lemmas = {LEMMA_OBJ, LEMMA_OBJ, ...} } where PARAM_OBJ describes the properties of the
base lemma parameter (i.e. the relationship between the intermediate and base lemmas) and LEMMA_OBJ is of the same
format of ENCLITIC_OBJ, i.e. an object suitable to be passed to full_link in [[Module:links]]; PARAM_OBJ is of the
format { param = "PARAM", tags = {"TAG", "TAG", ...} } where PARAM is the name of the parameter to
{{inflection of}} etc. that holds the base lemma(s) of the specified relationship and the tags describe the
relationship, such as {"comd"} or {"past", "part"};
* CATEGORIES is the categories to add the page to (consisting of any categories specified in the invocation or
parent args and any tracking categories, but not any additional lang-specific categories that may be added by
{{inflection of}} or similar templates);
* POSTTEXT is text to display at the end of the form-of text, before the final </span> (or at the end of the first
line, before the colon, in a multiline {{infl of}} call).
`do_form_of` should return two arguments:
(1) The actual definition-line text, marked up appropriately with <span>...</span> but without any terminating
period/dot.
(2) Any extra categories to add the page to (other than those that can be derived from parameters specified to the
invocation or parent arguments, which will automatically be added to the page).
]=]
local function construct_form_of_text(data)
local template, iargs, parent_args, params, no_numbered_gloss, do_form_of =
data.template, data.iargs, data.parent_args, data.params, data.no_numbered_gloss, data.do_form_of
local term_param = iargs.term_param
local compat = iargs.lang or parent_args.lang
term_param = term_param or compat and 1 or 2
-- Numbered params
params[compat and "lang" or 1] = {
required = not iargs.lang,
type = "language",
default = iargs.lang or "und"
}
-- Error to catch most uses of old-style parameters for {{contraction of}}. (FIXME: Remove eventually.)
if iargs.with_multiple_parts then
if ine(parent_args[term_param + 2]) and not ine(parent_args[term_param + 1]) and not ine(parent_args.tr2) and not ine(parent_args.ts2)
and not ine(parent_args.t2) and not ine(parent_args.gloss2) and not ine(parent_args.g2)
and not ine(parent_args.alt2) then
error(("You specified a term in %s= and not one in %s=. You probably meant to use t= to specify a gloss instead. "
.. "If you intended to specify two terms, put the second term in %s=."):format(term_param + 2, term_param + 1,
term_param + 1))
end
if not ine(parent_args[term_param + 1]) and not ine(parent_args.alt2) and not ine(parent_args.tr2) and not ine(parent_args.ts2)
and ine(parent_args.g2) then
error(("You specified a gender in g2= but no term in %s=. You were probably trying to specify two genders for "
.. "a single term. To do that, put both genders in g=, comma-separated."):format(term_param + 1))
end
end
local base_lemma_params = add_link_and_base_lemma_params(iargs, parent_args, params, term_param, compat,
no_numbered_gloss)
local ignored_tracked_params = handle_withdot_withcap(iargs, params)
--[=[
Process parent arguments. This is similar to the following:
require("Module:parameters").process(parent_args, params)
but in addition it does the following:
(1) Supplies default values for unspecified parent arguments as specified in DEFAULTS, which consist of specs of the
form "ARG=VALUE". These are added to the parent arguments prior to processing, so boolean and number parameters
will process the value appropriately.
(2) Removes parent arguments specified in IGNORESPECS, which consist either of bare argument names to remove, or
list-argument names to remove of the form "ARG:list".
(3) Tracks the use of any parent arguments specified in TRACKED_PARAMS, which is a set where the keys are arguments
as they exist after processing (hence numeric arguments should be numbers, not strings) and the values should be
boolean true.
]=]--
local defaults = iargs.def
local ignorespecs = iargs.ignore
if defaults[1] or ignorespecs[1] then
local new_parent_args = {}
for _, default in ipairs(defaults) do
local defparam, defval = default:match("^(.-)=(.*)$")
if not defparam then
error("Bad default spec " .. default)
end
new_parent_args[defparam] = defval
end
local params_to_ignore = {}
local numbered_list_params_to_ignore = {}
local named_list_params_to_ignore = {}
for _, ignorespec in ipairs(ignorespecs) do
for ignore in gsplit(ignorespec, ",") do
local param = ignore:match("^(.*):list$")
if param then
if param:match("^%d+$") then
insert(numbered_list_params_to_ignore, tonumber(param))
else
insert(named_list_params_to_ignore, "^" .. pattern_escape(param) .. "%d*$")
end
else
if ignore:match("^%d+$") then
ignore = tonumber(ignore)
end
params_to_ignore[ignore] = true
end
end
end
for k, v in pairs(parent_args) do
if not params_to_ignore[k] then
local ignore_me = false
if type(k) == "number" then
for _, lparam in ipairs(numbered_list_params_to_ignore) do
if k >= lparam then
ignore_me = true
break
end
end
else
for _, lparam in ipairs(named_list_params_to_ignore) do
if k:match(lparam) then
ignore_me = true
break
end
end
end
if not ignore_me then
new_parent_args[k] = v
end
end
end
parent_args = new_parent_args
end
local param_mods_with_conj, param_mods_without_conj
local function get_param_mods(with_conj)
if with_conj then
if not param_mods_with_conj then
param_mods_with_conj = require(parameter_utilities_module).construct_param_mods {
{group = {"link", "q", "l", "ref"}},
{param = "conj", set = allowed_conj_set, overall = true},
}
end
return param_mods_with_conj
else
if not param_mods_without_conj then
param_mods_without_conj = require(parameter_utilities_module).construct_param_mods {
{group = {"link", "q", "l", "ref"}},
-- Override lit= to have a separate overall value
{param = "lit", separate_no_index = true},
}
end
return param_mods_without_conj
end
end
local terms, args
if iargs.nolink or iargs.linktext then
args = process_params(parent_args, params)
else
local m_param_utils = require(parameter_utilities_module)
if iargs.with_multiple_parts then
terms, args = m_param_utils.parse_list_with_inline_modifiers_and_separate_params {
params = params,
param_mods = get_param_mods(false),
raw_args = parent_args,
termarg = term_param,
track_module = "form of" .. (template and "/" .. template or ""),
lang = compat and "lang" or 1,
sc = "sc.default",
parse_lang_prefix = true,
default_separator = " +‎ ",
special_separators = {[";"] = " or "},
}
else
terms, args = m_param_utils.parse_term_with_inline_modifiers_and_separate_params {
params = params,
param_mods = get_param_mods("with conj"),
raw_args = parent_args,
termarg = term_param,
track_module = "form of" .. (template and "/" .. template or ""),
lang = compat and "lang" or 1,
sc = "sc",
parse_lang_prefix = true,
make_separate_g_into_list = true,
splitchar = ",",
subitem_param_handling = "last",
}
end
end
local lang = args[compat and "lang" or 1]
-- Tracking for certain user-specified params. This is generally used for
-- parameters that we accept but ignore, so that we can eventually remove
-- all uses of these params and stop accepting them.
if ignored_tracked_params then
for ignored_tracked_param, condition in pairs(ignored_tracked_params) do
if parent_args[ignored_tracked_param] and (condition ~= "non-english" or lang:getCode() ~= "en") then
track("arg/" .. ignored_tracked_param, template)
track("arg/" .. ignored_tracked_param)
end
end
end
-- Determine categories for the page, including tracking categories
local categories = {}
if not args.nocat then
for _, cat in ipairs(iargs.cat) do
insert(categories, lang:getCode() .. ":" .. cat)
end
end
for _, cat in ipairs(args.cat) do
insert(categories, lang:getCode() .. ":" .. cat)
end
-- Format the link, preceding text and categories
local function add_term_tracking_categories(term)
-- add tracking category if term is same as page title
if term and mw.loadData("Module:headword/data").pagename == lang:stripDiacritics(term) then
insert(categories, "Forms linking to themselves")
end
-- maybe add tracking category if primary entry doesn't exist (this is an
-- expensive call so we don't do it by default)
if iargs.noprimaryentrycat and term and mw.title.getCurrentTitle().nsText == ""
and not mw.title.new(term):getContent() then
insert(categories, lang:getFullName() .. " " .. iargs.noprimaryentrycat)
end
end
local lemmas
if iargs.nolink then
lemmas = nil
elseif iargs.linktext then
lemmas = iargs.linktext
else
if iargs.with_multiple_parts then
lemmas = terms
else
lemmas = terms.terms
end
if not lemmas[1] then
if mw.title.getCurrentTitle().nsText == "Templat" then
lemmas[1] = {
lang = lang,
term = "term"
}
else
error("No linked-to term specified")
end
end
for _, termobj in ipairs(lemmas) do
if termobj.term then
add_term_tracking_categories(termobj.term)
end
-- NOTE: Formerly, template arg sc= overrode inline modifier <sc:...>, which seems backwards, so I've
-- changed it. Hopefully nothing depended on the old behavior.
end
end
local enclitics, enclitic_conj
if args.enclitic then
local enclitics_obj = parse_terms_with_inline_modifiers("enclitic", args.enclitic, get_param_mods("with conj"),
lang)
enclitics = enclitics_obj.terms
enclitic_conj = enclitics_obj.conj
end
local base_lemmas = {}
if base_lemma_params then
for _, base_lemma_param_obj in ipairs(base_lemma_params) do
local param = base_lemma_param_obj.param
if args[param] then
local base_lemmas_obj = parse_terms_with_inline_modifiers(param, args[param],
get_param_mods("with conj"), lang)
insert(base_lemmas, {
paramobj = base_lemma_param_obj,
lemmas = base_lemmas_obj.terms,
conj = base_lemmas_obj.conj,
})
end
end
end
local posttext = iargs.posttext
local addl = args.addl
if addl then
posttext = posttext or ""
if addl:find("^[;:]") then
posttext = posttext .. addl
elseif addl:find("^_") then
posttext = posttext .. " " .. addl:sub(2)
else
posttext = posttext .. ", " .. addl
end
end
local conj
if iargs.with_multiple_parts then
conj = false -- signals to use 'separator' field
else
conj = terms and terms.conj or iargs.conj
end
local lemma_data = {
lang = lang,
args = args,
lemmas = lemmas,
conj = conj,
enclitics = enclitics,
enclitic_conj = enclitic_conj,
base_lemmas = base_lemmas,
categories = categories,
posttext = posttext,
lit = iargs.with_multiple_parts and args.lit.default or nil,
}
local form_of_text, lang_cats = do_form_of(lemma_data)
extend(lemma_data.categories, lang_cats)
local text = form_of_text .. (
args.nodot and "" or args.dot or iargs.withdot and "." or ""
)
if not lemma_data.categories[1] then
return text
end
return text .. format_categories(lemma_data.categories, lemma_data.lang, args.sort,
-- If lemma_is_sort_key is given, supply the first lemma term as the sort base if possible. If sort= is given,
-- it will override the base; otherwise, the base will be converted appropriately to a sort key using the
-- same algorithm applied to pagenames.
iargs.lemma_is_sort_key and type(lemma_data.lemmas) == "table" and lemma_data.lemmas[1].term,
-- Supply the first lemma's script for sort key computation.
force_cat or get_force_cat(), type(lemma_data.lemmas) == "table" and lemma_data.lemmas[1].sc)
end
-- Invocation parameters shared between form_of_t(), tagged_form_of_t() and inflection_of_t(). `calling_func` is the
-- invoking function ("form_of_t", "tagged_form_of_t" or "inflection_of_t"), for handling parameters shared by two but
-- not all three invoking functions.
local function get_common_invocation_params(calling_func)
local iparams = {
["term_param"] = {type = "number"},
["lang"] = true, -- To be used as the default code in params.
["sc"] = {type = "script"},
["cat"] = {list = true, sublist = "comma without whitespace", flatten = true},
["ignore"] = {list = true},
["def"] = {list = true},
["conj"] = {set = allowed_conj_set, default = "and"},
["withcap"] = boolean_param,
["withencap"] = boolean_param,
["withdot"] = boolean_param,
["nolink"] = boolean_param,
["linktext"] = true,
["posttext"] = true,
["noprimaryentrycat"] = true,
["lemma_is_sort_key"] = true,
}
if calling_func ~= "inflection_of_t" then
iparams.with_multiple_parts = boolean_param
end
return iparams
end
local function should_ucfirst_text(args, iargs, lang)
local code = lang:getCode()
return args.cap or (iargs.withcap or iargs.withencap and code == "en" or code == "mul") and not args.nocap
end
--[==[
Function that implements {{tl|form of}} and the various more specific form-of templates (but not {{tl|inflection of}}
or templates that take tagged inflection parameters).
Invocation params:
; {{para|1|req=1}}
: Text to display before the link.
; {{para|term_param}}
: Numbered param holding the term linked to. Other numbered params come after. Defaults to 1 if invocation or template
param {{para|lang}} is present, otherwise 2.
; {{para|with_multiple_parts|1}}
: If specified, higher numbered parameters above the numbered param in {{para|term_param}} specify additional parts out
of which the term was constructed, for use by templates like {{tl|contraction of}}. (If not specified, the parameter
at <code><var>term_param</var> + 1</code> is the display form, same as {{para|alt}}, and the parameter at
at <code><var>term_param</var> + 2</code> is the gloss, same as {{para|t}}.)
; {{para|lang}}
: Default language code for language-specific templates. If specified, no language code needs to be specified, and if
specified it needs to be set using {{para|lang}}, not {{para|1}}.
; {{para|sc}}
: Default script code for language-specific templates. The script code can still be overridden using template param
{{para|sc}}.
; {{para|cat}}, {{para|cat2}}, ...:
: Categories to place the page into. The language name will automatically be prepended. Note that there is also a
template param {{para|cat}} to specify categories at the template level. Use of {{para|nocat}} disables categorization
of categories specified using invocation param {{para|cat}}, but not using template param {{para|cat}}. A single param
can specify multiple comma-separated categories if no space follows the comma.
; {{para|ignore}}, {{para|ignore2}}, ...:
: One or more template params to silently accept and ignore. Useful e.g. when the template takes additional parameters
such as {{para|from}} or {{para|POS}}. Each value is a comma-separated list of either bare parameter names or
specifications of the form `PARAM:list` to specify that the parameter is a list parameter.
; {{para|def}}, {{para|def2}}, ...:
: One or more default values to supply for template args. For example, specifying {{para|def|2=tr=-}} causes the default
for template param {{para|tr}} to be `-`. Actual template params override these defaults.
; {{para|withcap|1}}
: Capitalize the first character of the text preceding the link, unless template param {{para|nocap}} is given.
; {{para|withencap|1}}
: Capitalize the first character of the text preceding the link if the language is English and template param
{{para|nocap}} is not given.
; {{para|withdot|1}}
: Add a final period after the link, unless template param {{para|nodot}} is given to suppress the period, or
{{para|dot}} is given to specify an alternative punctuation character.
; {{para|nolink|1}}
: Suppress the display of the link. If specified, none of the template params that control the link
({{para|<var>term_param</var>}}, {{para|<var>term_param</var> + 1}}, {{para|<var>term_param</var> + 2}}, {{para|t}},
{{para|gloss}}, {{para|sc}}, {{para|tr}}, {{para|ts}}, {{para|pos}}, {{para|g}}, {{para|id}}, {{para|lit}}) will be
available. If the calling template uses any of these parameters, they must be ignored using {{para|ignore}}.
{{para|linktext}}
: Override the display of the link with the specified text. This is useful if a custom template is available to format
the link (e.g. in Hebrew, Chinese and Japanese). If specified, none of the template params that control the link
({{para|<var>term_param</var>}}, {{para|<var>term_param</var> + 1}}, {{para|<var>term_param</var> + 2}}, {{para|t}},
{{para|gloss}}, {{para|sc}}, {{para|tr}}, {{para|ts}}, {{para|pos}}, {{para|g}}, {{para|id}}, {{para|lit}}) will be
available. If the calling template uses any of these parameters, they must be ignored using {{para|ignore}}.
; {{para|posttext}}
: Additional text to display directly after the formatted link, before any terminating period/dot and inside of
`<span class='use-with-mention'>`.
; {{para|noprimaryentrycat}}
: Category to add the page to if the primary entry linked to doesn't exist. The language name will automatically be
prepended.
; {{para|lemma_is_sort_key|1}}
: If the user didn't specify a sort key, use the lemma as the sort key (instead of the page itself).
]==]
function export.form_of_t(frame)
local iparams = get_common_invocation_params("form_of_t")
iparams[1] = {required = true}
local iargs = process_params(frame.args, iparams)
local parent_args = frame:getParent().args
local params = get_common_template_params()
if next(iargs.cat) then
params.nocat = boolean_param
end
return construct_form_of_text {
template = "form-of-t",
iargs = iargs,
parent_args = parent_args,
params = params,
do_form_of = function(lemma_data)
local args = lemma_data.args
local text
if args.notext then
text = ""
else
text = iargs[1]
if should_ucfirst_text(args, iargs, lemma_data.lang) then
text = ucfirst(text)
end
end
-- This returns two values, which we pass up to the caller.
return format_form_of {
lang = lemma_data.lang, text = text, lemmas = lemma_data.lemmas, conj = lemma_data.conj,
enclitics = lemma_data.enclitics, base_lemmas = lemma_data.base_lemmas, lemma_face = "term",
lit = lemma_data.lit, posttext = lemma_data.posttext
}
end
}
end
--[=[
Construct and return the full definition line for a form-of-type template invocation that is based on inflection tags.
This is a wrapper around construct_form_of_text() and takes the following arguments: processed invocation arguments
IARGS, processed parent arguments ARGS, TERM_PARAM (the parent argument specifying the main entry), COMPAT (true if the
language code is found in args.lang instead of args[1]), and TAGS, the list of (non-canonicalized) inflection tags.
It returns that actual definition-line text including terminating period/full-stop, formatted categories, etc. and
should be directly returned as the template function's return value.
]=]
local function construct_tagged_form_of_text(data)
local template, iargs, parent_args, params, no_numbered_gloss, tags =
data.template, data.iargs, data.parent_args, data.params, data.no_numbered_gloss, data.tags
-- Named params not controlling link display
-- Always included because lang-specific categories may be added
params.nocat = boolean_param
params.p = true
params.POS = {alias_of = "p"}
return construct_form_of_text {
template = template,
iargs = iargs,
parent_args = parent_args,
params = params,
no_numbered_gloss = no_numbered_gloss,
do_form_of = function(lemma_data)
local args = lemma_data.args
if is_callable(tags) then
tags = tags(args)
end
-- NOTE: tagged_inflections returns two values, so we do too.
return tagged_inflections {
lang = lemma_data.lang,
tags = tags,
lemmas = lemma_data.lemmas,
conj = lemma_data.conj,
enclitics = lemma_data.enclitics,
enclitic_conj = lemma_data.enclitic_conj,
base_lemmas = lemma_data.base_lemmas,
lemma_face = "term",
POS = args.p,
pagename = args.pagename,
-- Set no_format_categories because we do it ourselves in construct_form_of_text().
no_format_categories = true,
nocat = args.nocat,
notext = args.notext,
capfirst = should_ucfirst_text(args, iargs, lemma_data.lang),
posttext = lemma_data.posttext,
}
end
}
end
--[==[
Function that implements form-of templates that are defined by specific tagged inflections (typically a template
referring to a non-lemma inflection, such as {{tl|plural of}}). This works exactly like {form_of_t()} except that the
"form of" text displayed before the link is based off of a pre-specified set of inflection tags (which will be
appropriately linked to the glossary) instead of arbitrary text. From the user's perspective, there is no difference
between templates implemented using {form_of_t()} and {tagged_form_of_t()}; they accept exactly the same parameters and
work the same. See also {inflection_of_t()} below, which is intended for templates with user-specified inflection tags.
Invocation params:
; {{para|1|req=1}}, {{para|2}}, ...
: One or more inflection tags describing the inflection in question.
; {{para|split_tags}}
: If specified, character to split specified inflection tags on. This allows multiple tags to be included in a single
argument, simplifying template code.
; {{para|term_param}}
; {{para|with_multiple_parts|1}}
; {{para|lang}}
; {{para|sc}}
; {{para|cat}}, {{para|cat2}}, ...
; {{para|ignore}}, {{para|ignore2}}, ...
; {{para|def}}, {{para|def2}}, ...
; {{para|withcap|1}}
; {{para|withencap|1}}
; {{para|withdot|1}}
; {{para|nolink|1}}
; {{para|linktext}}
; {{para|posttext}}
; {{para|noprimaryentrycat}}
; {{para|lemma_is_sort_key|1}}
: All of these are the same as in {form_of_t()}.
]==]
function export.tagged_form_of_t(frame)
local iparams = get_common_invocation_params("tagged_form_of_t")
iparams[1] = {list = true, required = true}
iparams.split_tags = true
local iargs = process_params(frame.args, iparams)
local parent_args = frame:getParent().args
local params = get_common_template_params()
return construct_tagged_form_of_text {
template = "tagged-form-of-t",
iargs = iargs,
parent_args = parent_args,
params = params,
tags = split_inflection_tags(iargs[1], iargs.split_tags),
}
end
--[==[
Function that implements {{tl|inflection of}} and certain semi-specific variants, such as {{tl|participle of}} and
{{tl|past participle form of}}. This function is intended for templates that allow the user to specify a set of
inflection tags.
It works similarly to {form_of_t()} and {tagged_form_of_t()} except that the calling convention for the calling
template is
: { {{TEMPLATE|LANG|MAIN_ENTRY_LINK|MAIN_ENTRY_DISPLAY_TEXT|TAG|TAG|...}}}
instead of
: { {{TEMPLATE|LANG|MAIN_ENTRY_LINK|MAIN_ENTRY_DISPLAY_TEXT|GLOSS}}}
Note that there isn't a numbered parameter for the gloss, but it can still be specified using {{para|t}} or
{{para|gloss}}.
Invocation params:
; {{para|preinfl}}, {{para|preinfl2}}, ...
: Extra inflection tags to automatically prepend to the tags specified by the template.
; {{para|postinfl}}, {{para|postinfl2}}, ...
: Extra inflection tags to automatically append to the tags specified by the template. Used for example by
{{tl|past participle form of}} to add the tags `of the|past|p` onto the user-specified tags, which indicate which
past participle form the page refers to.
; {{para|split_tags}}
: If specified, character to split specified inflection tags on. This allows multiple tags to be included in a single
argument, simplifying template code. Note that this applies *ONLY* to inflection tags specified in the invocation
arguments using {{para|preinfl}} or {{para|postinfl}}, not to user-specified inflection tags.
; {{para|term_param}}
; {{para|lang}}
; {{para|sc}}
; {{para|cat}}, {{para|cat2}}, ...
; {{para|ignore}}, {{para|ignore2}}, ...
; {{para|def}}, {{para|def2}}, ...
; {{para|withcap|1}}
; {{para|withencap|1}}
; {{para|withdot|1}}
; {{para|nolink|1}}
; {{para|linktext}}
; {{para|posttext}}
; {{para|noprimaryentrycat}}
; {{para|lemma_is_sort_key|1}}
: All of these are the same as in {form_of_t()}.
]==]
function export.inflection_of_t(frame)
local iparams = get_common_invocation_params("inflection_of_t")
iparams.preinfl = {list = true}
iparams.postinfl = {list = true}
iparams.split_tags = true
local iargs = process_params(frame.args, iparams)
local parent_args = frame:getParent().args
local params = get_common_template_params()
local compat = iargs.lang or parent_args.lang
local tagsind = (iargs.term_param or compat and 1 or 2) + 2
params[tagsind] = {list = true,
-- at least one inflection tag is required unless preinfl or postinfl tags are given
required = #iargs.preinfl == 0 and #iargs.postinfl == 0}
return construct_tagged_form_of_text {
template = "inflection-of-t",
iargs = iargs,
parent_args = parent_args,
params = params,
no_numbered_gloss = true,
tags = function(args)
local infls
if not next(iargs.preinfl) and not next(iargs.postinfl) then
-- If no preinfl or postinfl tags, just use the user-specified tags directly.
infls = args[tagsind]
else
-- Otherwise, we need to prepend the preinfl tags and postpend the postinfl tags. If there's only one tag set
-- (no semicolon), it's easier. Since this is common, we optimize for it.
infls = {}
local saw_semicolon = false
for _, infl in ipairs(args[tagsind]) do
if infl == ";" then
saw_semicolon = true
break
end
end
local split_preinfl = split_inflection_tags(iargs.preinfl, iargs.split_tags)
local split_postinfl = split_inflection_tags(iargs.postinfl, iargs.split_tags)
if not saw_semicolon then
extend(infls, split_preinfl)
extend(infls, args[tagsind])
extend(infls, split_postinfl)
else
local groups = split_tag_set(args[tagsind])
for _, group in ipairs(groups) do
if #infls > 0 then
insert(infls, ";")
end
extend(infls, split_preinfl)
extend(infls, group)
extend(infls, split_postinfl)
end
end
end
return infls
end,
}
end
--[==[
Normalize a part-of-speech tag given a possible abbreviation (passed in as {{para|1}} of the invocation args). If the
abbreviation isn't recognized, the original POS tag is returned. If no POS tag is passed in, return the value of
invocation arg {{para|default}}.
]==]
function export.normalize_pos(frame)
local iparams = {
[1] = true,
["default"] = true,
}
local iargs = process_params(frame.args, iparams)
if not iargs[1] and not iargs.default then
error("Either 1= or default= must be given in the invocation args")
end
if not iargs[1] then
return iargs.default
end
return (m_form_of_pos or get_m_form_of_pos())[iargs[1]] or iargs[1]
end
return export
tmojen71xun5s50j431jk5v1xbaj1ue
Modul:labels
828
216451
1349865
1102867
2026-04-14T14:02:41Z
Swarabakti
18192
1349865
Scribunto
text/plain
local export = {}
export.lang_specific_data_list_module = "Modul:labels/data/lang"
export.lang_specific_data_modules_prefix = "Modul:labels/data/lang/"
local load_module = "Modul:load"
local parse_utilities_module = "Modul:parse utilities"
local string_utilities_module = "Modul:string utilities"
local utilities_module = "Modul:utilities"
local insert = table.insert
local require_when_needed = require("Modul:require when needed")
local unpack = unpack or table.unpack -- Lua 5.2 compatibility
local dump = mw.dumpObject
local m_lang = require("Modul:bahasa")
local m_lang_specific_data = mw.loadData(export.lang_specific_data_list_module)
local m_table = require_when_needed("Modul:table")
--[==[ intro:
Labels go through several stages of processing to get from the original (raw) label specified in the Wikicode to the
final (formatted) label displayed to the user. The following terminology will help keep things straight:
* The "raw label" is the label specified in the Wikicode.
* The "non-canonical label" is the label extracted from the raw label, used for looking up in the label modules in order
to fetch the associated label data structure and determine the canonical form of the label. Normally this is the same
as the raw label, but it will be different if the raw label is of the form `!<var>label</var>` (e.g. `!Australian`)
`<var>label</var>!<var>display</var>` (e.g. `Southern US!Southern`). The former syntax indicates that the label
should display as-is instead of in its canonical form (which in the example given is `Australia`), and the latter
syntax indicates that the label should display in the form specified after the exclamation point.
* The "canonical label" is the result of applying alias resolution to the non-canonical label. Normally, the
canonical label rather than the non-canonical label is what is shown to the user.
* The "display form of the label" is what is shown to the user, not considering links and HTML that may wrap the
display form to get the formatted form of the label. The display form comes from the `.display` field of the module
label data for the label; if no such field exists in the label data, it is normally the canonical label. However, if
the display override exists (see below), it takes precedence over the `.display` field or canonical label when
determining the display form of the label.
* The "display override", if specified, overrides all other means of determining the display form of the label. It is
specified in two circumstances, i.e. in the `!<var>label</var>` and `<var>label</var>!<var>display</var>` raw label
formats (i.e. in the same cirumstances where the raw label and non-canonical label are different).
* The "formatted form of the label" is the final form of the label shown directly to the user. It generally appears to
the user as the display form of the label, but in the Wikicode, the formatted form may wrap the display form with a
link to Wikipedia, the Wiktionary glossary or another Wiktionary entry, and that link in turn may be wrapped in an
HTML span with a "deprecated" CSS class attached, causing the label to display differently (to indicate that it is
deprecated).
]==]
-- for testing
local force_cat = false
local SUBPAGENAME = mw.title.getCurrentTitle().subpageText
-- Disable tracking on heavy pages to save time.
local pages_where_tracking_is_disabled = {
-- pages that consistently hit timeouts
["a"] = true,
-- pages that sometimes hit timeouts
["de"] = true,
["e"] = true,
["i"] = true,
["o"] = true,
["u"] = true,
["и"] = true,
["山"] = true,
["子"] = true,
["月"] = true,
["一"] = true,
["人"] = true,
}
-- Add tracking category for PAGE. The tracking category linked to is [[Wiktionary:Tracking/labels/PAGE]].
-- We also add to [[Wiktionary:Tracking/labels/PAGE/LANGCODE]] and [[Wiktionary:Tracking/labels/PAGE/MODE]] if
-- LANGCODE and/or MODE given.
local function track(page, langcode, mode)
if pages_where_tracking_is_disabled[SUBPAGENAME] then
return true
end
-- avoid including links in pages (may cause error)
page = page:gsub("%[", "("):gsub("%]", ")"):gsub("|", "!")
require("Modul:debug/track")("labels/" .. page)
if langcode then
require("Modul:debug/track")("labels/" .. page .. "/" .. langcode)
end
if mode then
require("Modul:debug/track")("labels/" .. page .. "/" .. mode)
end
-- We don't currently add a tracking label for both langcode and mode to reduce the total number of labels, to
-- save some memory.
return true
end
local function ucfirst(txt)
return mw.getContentLanguage():ucfirst(txt)
end
local mode_to_outer_class = {
["label"] = "usage-label-sense",
["term-label"] = "usage-label-term",
["accent"] = "usage-label-accent",
["form-of"] = "usage-label-form-of",
}
local mode_to_property_prefix = {
["label"] = false,
["term-label"] = false, -- handled specially
["accent"] = "accent_",
["form-of"] = "dari_",
}
local function validate_mode(mode)
mode = mode or "label"
if not mode_to_outer_class[mode] then
local allowed_values = {}
for key, _ in pairs(mode_to_outer_class) do
insert(allowed_values, "'" .. key .. "'")
end
table.sort(allowed_values)
error(("Invalid value '%s' for `mode`; should be one of %s"):format(mode, table.concat(allowed_values, ", ")))
end
return mode
end
local function getprop(labdata, mode, prop)
local mode_prefix = mode_to_property_prefix[mode]
return mode_prefix and labdata[mode_prefix .. prop] or labdata[prop]
end
local function check_type(label, lang, prop, value, expected_types)
if value == nil or expected_types == nil then
return value
end
if type(expected_types) ~= "table" then
expected_types = {expected_types}
end
local valtype = type(value)
local matches = false
for _, expected_type in ipairs(expected_types) do
if type(expected_type) == "string" then
if valtype == expected_type then
matches = true
break
end
elseif value == expected_type then
matches = true
break
end
end
if not matches then
local function join_untagged_or(elements)
return m_table.serialCommaJoin(elements, {conj = "or", dontTag = true})
end
local quoted_types = {}
local quoted_values = {}
for _, expected_type in ipairs(expected_types) do
if type(expected_type) == "string" then
insert(quoted_types, "'" .. expected_type .. "'")
else
insert(quoted_values, "'" .. dump(expected_type) .. "'")
end
end
local possible_matches = {}
if quoted_types[1] then
insert(possible_matches, ("be of type%s %s"):format(
quoted_types[2] and "s" or "", join_untagged_or(quoted_types)))
end
if quoted_values[1] then
insert(possible_matches, ("have the value%s %s"):format(
quoted_values[2] and "s" or "", join_untagged_or(quoted_values)))
end
error(("Internal error: For label '%s', langcode '%s', property '%s' should %s but is of type '%s' with value %s"):format(
label, lang and lang:getCode() or "UNKNOWN", prop, join_untagged_or(possible_matches), valtype, dump(value)))
end
end
-- HACK! For languages in any of the given families, check the specified-language Wikipedia for appropriate
-- Wikipedia articles for the language in question (esp. useful for obscure etymology-only languages that may not
-- have English articles for them, like many Chinese lects).
local families_to_wikipedia_languages = {
{"zhx", "zh"},
{"sem-arb", "ar"},
}
--[==[
Given language `lang` (a full language, etymology-language or family), fetch a list of Wikimedia languages to check
when converting a Wikidata item to a Wikipedia article. English is always first, followed by the Wikimedia language
code(s) of `lang` if `lang` is a language (which may or may not be the same as `lang`'s Wiktionary code), followed
by the macrolanguage of `lang` for certain languages and families (currently, only languages and families in the Chinese
and Arabic families). If `lang` is nil, only return English. Note that the same code may occur more than once in the
list. This is exported because it's also used by [[Modul:category tree/poscatboiler/data/language varieties]].
]==]
function export.get_langs_to_extract_wikipedia_articles_from_wikidata(lang)
local wikipedia_langs = {}
insert(wikipedia_langs, "en")
if lang then
local article_lang = lang
while article_lang do
if article_lang:hasType("language") then
local wmcodes = article_lang:getWikimediaLanguageCodes()
for _, wmcode in ipairs(wmcodes) do
insert(wikipedia_langs, wmcode)
end
end
article_lang = article_lang:getParent()
end
for _, family_to_wp_lang in ipairs(families_to_wikipedia_languages) do
local family, wp_lang = unpack(family_to_wp_lang)
if lang:inFamily(family) then
insert(wikipedia_langs, wp_lang)
end
end
end
return wikipedia_langs
end
--[==[
Fetch the categories to add to a page, given that the label whose canonical form is `canon_label` with language `lang`
has been seen. `labdata` is the label data structure for `label`, fetched from the appropriate submodule. `mode`
specifies how the label was invoked (see {get_label_info()} for more information). The return value is a list of the
actual categories, unless `for_doc` is specified, in which case the categories returned are marked up for display on a
documentation page. If `for_doc` is given, `lang` may be nil to format the categories in a language-independent fashion;
otherwise, it must be specified. If `category_types` is specified, it should be a set object (i.e. with category types
as keys and {true} as values), and only categories of the specified types will be returned.
]==]
function export.fetch_categories(canon_label, labdata, lang, mode, for_doc, category_types)
local categories = {}
mode = validate_mode(mode)
local langcode, canonical_name
if lang then
langcode = m_lang.getLangCodeByCode(lang:getCode())
canonical_name = m_lang.getLangNameByCode(lang:getCode())
elseif for_doc then
langcode = "<var>[langcode]</var>"
canonical_name = "<var>[language name]</var>"
else
error("Internal error: Must specify `lang` unless `for_doc` is given")
end
local function labprop(prop, expected_types)
local retval = getprop(labdata, mode, prop)
check_type(canon_label, lang, prop, retval, expected_types)
return retval
end
local empty_list = {}
local function get_cats(cat_type)
if category_types and not category_types[cat_type] then
return empty_list
end
local cats = labprop(cat_type)
if not cats then
return empty_list
end
if type(cats) ~= "table" then
return {cats}
end
return cats
end
local topical_categories = get_cats("topical_categories")
local sense_categories = get_cats("sense_categories")
local pos_categories = get_cats("pos_categories")
local regional_categories = get_cats("regional_categories")
local plain_categories = get_cats("plain_categories")
local function insert_cat(cat, sense_cat)
if for_doc then
cat = "<code>" .. cat .. "</code>"
if sense_cat then
if mode == "term-label" then
cat = cat .. " (using {{tl|tlb}})"
else
cat = cat .. " (using {{tl|lb}} or form-of template)"
end
cat = mw.getCurrentFrame():preprocess(cat)
end
end
insert(categories, cat)
end
for _, cat in ipairs(topical_categories) do
insert_cat(langcode .. ":Istilah bidang " .. (cat == true and canon_label or cat))
end
for _, cat in ipairs(sense_categories) do
if cat == true then
cat = canon_label
end
cat = mode == "term-label" and "Istilah " .. cat or "Istilah " .. cat
insert_cat(langcode .. ":" .. cat, true)
end
for _, cat in ipairs(pos_categories) do
insert_cat(langcode .. ":" .. (cat == true and canon_label or cat))
end
for _, cat in ipairs(regional_categories) do
insert_cat(canonical_name .. " " .. (cat == true and ucfirst(canon_label) or cat))
end
for _, cat in ipairs(plain_categories) do
insert_cat(cat == true and ucfirst(canon_label) or cat)
end
return categories
end
--[==[
Return the list of all labels data modules for a label whose language is `lang`. The return value is a list of
module names, with overriding modules earlier in the list (that is, if a label occurs in two modules in the list,
the earlier-listed module takes precedence). If `lang` is nil, only return non-language-specific submodules.
]==]
function export.get_submodules(lang)
local submodules = {
"Modul:labels/data",
"Modul:labels/data/qualifiers",
"Modul:labels/data/regional",
"Modul:labels/data/topical",
}
if not lang then
return submodules
end
-- get language-specific labels from data module
local langcode = lang:getFullCode()
if m_lang_specific_data.langs_with_lang_specific_modules[langcode] then
-- prefer per-language label in order to pick subvariety labels over regional ones
insert(submodules, 1, export.lang_specific_data_modules_prefix .. langcode)
end
return submodules
end
--[==[
Return the formatted form of a label `label` (which should be the canonical form of the label; see comment at top),
given (a) the label data structure `labdata` from one of the data modules; (b) the language object `lang` of the
language being processed, or nil for no language; (c) `deprecated` (true if the label is deprecated, otherwise the
deprecation information is taken from `labdata`); (d) `override_display` (if specified, override the display form of the
label with the specified string, instead of any value in `labdata.display` or `labdata.special_display` or the canonical
label in `label` itself); (e) `mode` (same as `data.mode` passed to {get_label_info()}). Returns two values: the
formatted label form and a boolean indicating whether the label is deprecated.
'''NOTE: Under normal circumstances, do not use this.''' Instead, use {get_label_info()}, which searches all the data
modules for a given label and handles other complications.
]==]
function export.format_label(label, labdata, lang, deprecated, override_display, mode)
local formatted_label
mode = validate_mode(mode)
local function labprop(prop, expected_types)
local retval = getprop(labdata, mode, prop)
check_type(label, lang, prop, retval, expected_types)
return retval
end
deprecated = deprecated or labprop("deprecated")
if not override_display and labprop("special_display") then
local function add_language_name(str)
if str == "canonical_name" then
if lang then
return lang:getFullName()
else
return "<code><var>[language name]</var></code>"
end
else
return ""
end
end
formatted_label = labprop("special_display", "string"):gsub("<(.-)>", add_language_name)
else
--[=[
We proceed as follows:
1. The display form comes from either (a) the `override_display` variable if set (this happens when
the user uses a label like '!British'); (b) the `display` property, if set; or (c) the label iself.
2. If the display form contains a link, use it directly and ignore the other display-related settings.
(NOTE: Settings `Wikipedia` and `Wikidata` may still be used on the category page itself, by the
category tree code.)
3. Otherwise, use one of the other display-related settings, in the following order:
`glossary` > `Wiktionary` > `Wikipedia` > `Wikidata`. Specifically:
a. If any of the values is equal to `true`, that is equivalent to specifying a string consisting of
the canonical label.
b. If `glossary` is set, it specifies the anchor in [[Appendix:Glossary]].
c. If `Wiktionary` is set, it specifies an arbitrary Wiktionary page or page + anchor (e.g. a
separate Appendix entry).
d. If `Wikipedia` is set, it specifies an arbitrary Wikipedia article, or a list of such items (in
this case, we select the first one, but the category tree uses all of them).
e. If `Wikidata` is set, it specifies an arbitrary Wikidata item to retrieve a Wikipedia article from,
or a list of such items (in this case, we select the first one, but the category tree uses all of
them). If the item is of the form `wmcode:id`, the Wikipedia article corresponding to `id` in the
`wmcode`-language Wikipedia is fetched if available. Otherwise, the English-language Wikipedia
article corresponding to `id` is retrieved if available, falling back to the Wikimedia language(s)
corresponding to `lang` and then (in certain cases) to the macrolanguage that `lang` is part of.
Note that if `mode` is specified, prefixed properties (e.g. `accent_display` for `mode` == "accent",
`form_display` for `mode` == "form") are checked before the bare equivalent (e.g. `display`).
]=]
local display = override_display or labprop("display", "string") or label
-- There are several 'Foo spelling' labels specially designed for use in the |from= param in
-- {{alternative form of}}, {{standard spelling of}} and the like. Often the display includes the word
-- "spelling" at the end (e.g. if it's defaulted), which is useful when the label is used with {{tl|lb}} or
-- {{tl|tlb}}; but it causes redundancy when used with the form-of templates, which add the word "form",
-- "spelling", "standard spelling", etc. after the label.
if mode == "form-of" then
display = display:gsub(" spelling$", "")
end
if display:find("%[%[") then
formatted_label = display
else
local glossary = labprop("glossary", {"string", true})
local Wiktionary = labprop("Wiktionary", {"string", true})
local Wikipedia = labprop("Wikipedia", {"string", true, "table"})
local Wikidata = labprop("Wikidata", {"string", true, "table"})
if glossary then
local glossary_entry = glossary == true and label or glossary
formatted_label = "[[Lampiran:Glosarium#" .. glossary_entry .. "|" .. display .. "]]"
elseif Wiktionary then
local Wiktionary_entry = Wiktionary == true and label or Wiktionary
if Wiktionary == display then
formatted_label = "[[" .. display .. "]]"
else
formatted_label = "[[" .. Wiktionary_entry .. "|" .. display .. "]]"
end
elseif Wikipedia then
if type(Wikipedia) == "table" then
Wikipedia = Wikipedia[1]
end
local Wikipedia_entry = Wikipedia == true and label or Wikipedia
formatted_label = "[[w:" .. Wikipedia_entry .. "|" .. display .. "]]"
elseif Wikidata then
if not mw.wikibase then
error(("Unable to retrieve data from Wikidata ID for label '%s'; `mw.wikibase` not defined"
):format(label))
end
local function make_formatted_label(wmcode, id)
local article = mw.wikibase.sitelink(id, wmcode .. "wiki")
if article then
local link = wmcode == "en" and "w:" .. article or "w:" .. wmcode .. ":" .. article
return ("[[%s|%s]]"):format(link, display)
else
return nil
end
end
if type(Wikidata) == "table" then
Wikidata = Wikidata[1]
end
local wmcode, id = Wikidata:match("^(.*):(.*)$")
if wmcode then
formatted_label = make_formatted_label(wmcode, id)
else
local langs_to_check = export.get_langs_to_extract_wikipedia_articles_from_wikidata(lang)
for _, wmcode in ipairs(langs_to_check) do
formatted_label = make_formatted_label(wmcode, Wikidata)
if formatted_label then
break
end
end
end
formatted_label = formatted_label or display
else
formatted_label = display
end
end
end
if deprecated then
formatted_label = '<span class="deprecated-label">' .. formatted_label .. '</span>'
end
return formatted_label, deprecated
end
--[==[
Return information on a label. On input `data` is an object with the following fields:
* `label`: The raw label to return information on.
* `lang`: The language of the label. Must be specified unless `for_doc` is given.
* `mode`: How the label was invoked. One of the following:
** {nil} or {"label"}: invoked through {{tl|lb}} or another template whose labels in the same fashion, e.g.
{{tl|alt}}, {{tl|quote}} or {{tl|syn}};
** {"term-label"}: invoked through {{tl|tlb}};
** {"accent"}: invoked through {{tl|a}} or the {{para|a}} or {{para|aa}} parameters of other pronunciation templates,
such as {{tl|IPA}}, {{tl|rhymes}} or {{tl|homophones}};
** {"form-of"}: invoked through {{tl|alt form}}, {{tl|standard spelling of}} or other form-of template.
This changes the display and/or categorization of a minority of labels. (The majority work the same for all modes.)
* `for_doc`: Data is being fetched for documentation purposes. This causes the raw categories returned in
`categories` to be formatted for documentation display.
* `nocat`: If true, don't add the label to any categories.
* `force_cat`: Force adding categories even in namespaces that normally exclude them (e.g. userspace and discussion
pages).
* `notrack`: Disable all tracking for this label.
* `sort`: Sort key for categorization.
* `already_seen`: An object used to track labels already seen, so they aren't displayed twice. Tracking is according
to the display form of the label, so if two labels have the same display form, the second one won't be displayed
(but its categories will still be added). If `already_seen` is {nil}, this tracking doesn't happen.
The return value is an object with the following fields:
* `raw_text`: If specified, the object does not describe a label but simply raw text surrounding labels. This occurs
when double angle bracket (<<...>>) notation is used. {get_label_info()} does not currently return objects with this
field set, but {process_raw_labels()} does. The value is {"begin"} (this is the first raw text portion derived from
a double angle bracket spec, provided there are at least two raw text portions); {"end"} (this is the last raw text
portion derived from a double angle bracket spec, provided there are at least two portions); {"middle"} (this is
neither the first nor the last raw text portion); or {"only"} (this is a raw text portion standing by itself). The
particular value determines the handling of commas and spaces on one or both sides of the raw text. If this field is
specified, only the `label` field (containing the actual raw text) and the `category` field (containing an empty list)
are set; all other fields are {nil}.
* `raw_label`: The raw label that was passed in.
* `non_canonical`: The label prior to canonicalization (i.e. alias resolution). Usually this is the same as `raw_label`,
but if the raw label was preceded by an exclamation point (meaning "display the raw label as-is"), this field will
contain the label stripped of the exclamation point, and if the raw label is of the form
`<var>label</var>!<var>display</var>` (meaning "display the label in the specified form"), this field will contain the
label before the exclamation point.
* `canonical`: If the label in `non_canonical` is an alias, this contains the canonical name of the label; otherwise it
will be {nil}.
* `override_display`: If specified, this contains a string that overrides the normal display form of the label. The
display form of a label is the `.display` field of the label data if present, and otherwise is normally the canonical
form of the label (i.e. after alias resolution). (This is not the same as the formatted form of the label, found in
`label`, which is the final form shown to the user and includes links to Wikipedia, the glossary, etc. as well as an
HTML wrapper if the label is deprecated.) If `override_display` is specified, however, this is used in place of the
normal display form of the label. This currently happens in two circumstances: (1) the label was preceded by ! to
indicate that the raw label should be displayed rather than the canonical form; (2) the label was given in the form
`<var>label</var>!<var>display</var>` (meaning "display the label in the specified `<var>display</var>` form").
* `label`: The formatted form of the label. This is what is actually shown to the user. If the label is recognized
(found in some module), this will typically be in the form of a link.
* `categories`: A list of the categories to add the label to; an empty list if `nocat` was specified.
* `formatted_categories`: A string containing the formatted categories; {nil} if `nocat` or `for_doc` was specified,
or if `categories` is empty. Currently will be an empty string if there are categories to format but the namespace is
one that normally excludes categories (e.g. userspace and discussion pages), and `force_cat` isn't specified.
* `deprecated`: True if the label is deprecated.
* `recognized`: If true, the label was found in some module.
* `data`: The data structure for the label, as fetched from the label modules. For unrecognized labels, this will
be an empty object.
]==]
function export.get_label_info(data)
if not data.label then
error("`data` must now be an object containing the params")
end
local mode = validate_mode(data.mode)
local ret = {categories = {}}
local label = data.label
local raw_label = label
ret.raw_label = raw_label
local override_display
if label:find("^!") then
label = label:gsub("^!", "")
override_display = label
elseif label:find("![^%s]") then
label, override_display = label:match("^(.-)!([^%s].*)$")
if not label then
error(("Internal error: This Lua pattern should never fail to match for label '%s'"):format(raw_label))
end
end
local non_canonical = label
ret.non_canonical = non_canonical
local deprecated = false
local labdata
local submodule
local data_langcode = data.lang and data.lang:getCode() or nil
local submodules_to_check = export.get_submodules(data.lang)
for _, submodule_to_check in ipairs(submodules_to_check) do
submodule = mw.loadData(submodule_to_check)
local this_labdata = submodule[label]
local resolved_label
if type(this_labdata) == "string" then
resolved_label = this_labdata
this_labdata = submodule[this_labdata]
if not this_labdata then
error(("Internal error: Label alias '%s' points to '%s', which is undefined in module [[%s]]"):format(
label, resolved_label, submodule_to_check))
end
if type(this_labdata) == "string" then
error(("Internal error: Label alias '%s' points to '%s', which is also an alias (of '%s') in module [[%s]]"):format(
label, resolved_label, this_labdata, submodule_to_check))
end
end
if this_labdata then
-- Make sure either there's no lang restriction, or we're processing lang-independent, or our language
-- is among the listed languages. Otherwise, continue processing (which could conceivably pick up a
-- lang-appropriate version of the label in another label data module).
local lablangs = getprop(this_labdata, mode, "langs")
if not lablangs or not data_langcode then
labdata = this_labdata
label = resolved_label or label
break
end
local lang_in_list = false
for _, langcode in ipairs(lablangs) do
if langcode == data_langcode then
lang_in_list = true
break
end
end
if lang_in_list then
labdata = this_labdata
label = resolved_label or label
break
elseif not data.notrack then
-- Track use of a label that fails the lang restriction.
-- [[Special:WhatLinksHere/Wiktionary:Tracking/labels/wrong-lang-label]]
-- [[Special:WhatLinksHere/Wiktionary:Tracking/labels/wrong-lang-label/LANGCODE]]
-- [[Special:WhatLinksHere/Wiktionary:Tracking/labels/wrong-lang-label/LABEL]]
-- [[Special:WhatLinksHere/Wiktionary:Tracking/labels/wrong-lang-label/LABEL/LANGCODE]]
track("wrong-lang-label", data_langcode)
track("wrong-lang-label/" .. label, data_langcode)
if resolved_label then
track("wrong-lang-label/" .. resolved_label, data_langcode)
end
end
end
end
if labdata then
ret.recognized = true
else
labdata = {}
ret.recognized = false
end
local function labprop(prop)
return getprop(labdata, mode, prop)
end
if labprop("deprecated") then
deprecated = true
end
if label ~= non_canonical then
-- Note that this is an alias and store the canonical version.
ret.canonical = label
end
if not data.notrack then -- labprop("track") then -- track all labels now
-- Track label (after converting aliases to canonical form; but also track raw label (alias) if different
-- from canonical label).
-- [[Special:WhatLinksHere/Wiktionary:Tracking/labels/label/LABEL]]
-- [[Special:WhatLinksHere/Wiktionary:Tracking/labels/label/LABEL/LANGCODE]]
-- [[Special:WhatLinksHere/Wiktionary:Tracking/labels/label/LABEL/MODE]]
track("label/" .. label, data_langcode, mode)
if label ~= non_canonical then
track("label/" .. non_canonical, data_langcode, mode)
end
end
local formatted_label
formatted_label, deprecated = export.format_label(label, labdata, data.lang, deprecated, override_display, mode)
ret.deprecated = deprecated
if deprecated then
if not data.nocat then
local depcat = "Entries with deprecated labels"
if data.for_doc then
depcat = "<code>" .. depcat .. "</code>"
end
insert(ret.categories, depcat)
end
end
local label_for_already_seen =
(labprop("topical_categories") or labprop("regional_categories")
or labprop("plain_categories") or labprop("pos_categories")
or labprop("sense_categories")) and formatted_label
or nil
-- Track label text. If label text was previously used, don't show it, but include the categories.
-- For an example, see [[hypocretin]].
if data.already_seen and data.already_seen[label_for_already_seen] then
ret.label = ""
else
if formatted_label:find("{") then
formatted_label = mw.getCurrentFrame():preprocess(formatted_label)
end
ret.label = formatted_label
end
if data.nocat then
-- do nothing
else
local cats = export.fetch_categories(label, labdata, data.lang, mode, data.for_doc)
for _, cat in ipairs(cats) do
insert(ret.categories, cat)
end
if not ret.categories[1] or data.for_doc then
-- Don't try to format categories if we're doing this for documentation ({{label/doc}}), because there
-- will be HTML in the categories.
-- do nothing
else
ret.formatted_categories = require(utilities_module).format_categories(ret.categories, data.lang,
data.sort, nil, force_cat or data.force_cat)
end
end
ret.data = labdata
if label_for_already_seen and data.already_seen then
data.already_seen[label_for_already_seen] = true
end
return ret
end
--[==[
Split a string containing comma-separated raw labels into the individual labels. This will not split on a comma
followed by whitespace, and it will not split inside of matched <...> or [...]. The code is written to be efficient, so
that it does not load modules (e.g. [[Modul:parse utilities]]) unnecessarily.
]==]
function export.split_labels_on_comma(term)
if term:find("[%[<]") then
-- Do it the "hard way". We don't want to split anything inside of <...> or <<...>> even if there are commas
-- inside of the angle brackets. For good measure we do the same for [...] and [[...]]. We first parse balanced
-- segment runs involving either [...] or <...>. Then we split alternating runs on comma (but not on
-- comma+whitespace). Then we rejoin the split runs. For example, given the following:
-- "regional,older <<non-rhotic,and,non-hoarse-horse>> speakers", the first call to
-- parse_multi_delimiter_balanced_segment_run() produces
--
-- {"regional,older ", "<<non-rhotic,and,non-hoarse-horse>>", " speakers"}
--
-- After calling split_alternating_runs_on_comma(), we get the following:
--
-- {{"regional"}, {"older ", "<<non-rhotic,and,non-hoarse-horse>>", " speakers"}}
--
-- After rejoining each group, we get:
--
-- {"regional", "older <<non-rhotic,and,non-hoarse-horse>> speakers"}
--
-- which is the desired output. When processing the second "label" string, the code in process_raw_labels()
-- will do a similar process to this to pull out the labels inside of the <<...>> notation.
local put = require(parse_utilities_module)
local segments = put.parse_multi_delimiter_balanced_segment_run(term, {{"<", ">"}, {"[", "]"}})
-- This won't split on comma+whitespace.
local comma_separated_groups = put.split_alternating_runs_on_comma(segments)
for i, group in ipairs(comma_separated_groups) do
comma_separated_groups[i] = table.concat(group)
end
return comma_separated_groups
elseif term:find(",%s") then
-- This won't split on comma+whitespace.
return require(parse_utilities_module).split_on_comma(term)
elseif term:find(",") then
return require(string_utilities_module).split(term, ",")
else
return {term}
end
end
--[==[
Return a list of objects corresponding to a set of raw labels. Each object returned is of the format returned by
{get_label_info()}. This is similar to looping over the labels and calling {get_label_info()} on each one, but it also
correctly handles embedded double angle bracket specs <<...>> found in the labels. (In such a case, there will be more
objects returned than raw labels passed in.) On input, `data` is an object with the following fields:
* `labels`: The list of labels to process.
* `lang`: The language of the labels. Must be specified.
* `mode`: How the label was invoked; see {get_label_info()} for more information.
* `nocat`: If true, don't add the label to any categories.
* `force_cat`: Force adding categories even in namespaces that normally exclude them (e.g. userspace and discussion
pages).
* `notrack`: Disable all tracking for this label.
* `sort`: Sort key for categorization.
* `already_seen`: An object used to track labels already seen, so they aren't displayed twice. Tracking is according
to the display form of the label, so if two labels have the same display form, the second one won't be displayed
(but its categories will still be added). If `already_seen` is {nil}, this tracking doesn't happen.
* `ok_to_destructively_modify`: If set, the `data` structure will be destructively modified in the process of this
function running.
]==]
function export.process_raw_labels(data)
local label_infos = {}
if not data.ok_to_destructively_modify then
data = m_table.shallowCopy(data)
data.ok_to_destructively_modify = true
end
local function get_info_and_insert(label)
-- Reuse this structure to save memory.
data.label = label
insert(label_infos, export.get_label_info(data))
end
for _, label in ipairs(data.labels) do
if label:find("<<") then
local segments = require(string_utilities_module).split(label, "<<(.-)>>")
for i, segment in ipairs(segments) do
if i % 2 == 1 then
local raw_text_type = i == 1 and "begin" or i == #segments and "end" or "middle"
insert(label_infos, {raw_text = raw_text_type, label = segment, categories = {}})
else
local segment_labels = export.split_labels_on_comma(segment)
for _, segment_label in ipairs(segment_labels) do
get_info_and_insert(segment_label)
end
end
end
else
get_info_and_insert(label)
end
end
return label_infos
end
--[==[
Split a comma-separated string of raw labels and process each label to get a list of objects suitable for passing to
{format_processed_labels()}. Each object returned is of the format returned by {get_label_info()}. This is equivalent to
calling {split_labels_on_comma()} followed by {process_raw_labels()}. On input, `data` is an object with the following
fields:
* `labels`: The string containing the raw comma-separated labels.
* `lang`: The language of the labels. Must be specified.
* `mode`: How the label was invoked; see {get_label_info()} for more information.
* `nocat`: If true, don't add the label to any categories.
* `force_cat`: Force adding categories even in namespaces that normally exclude them (e.g. userspace and discussion
pages).
* `notrack`: Disable all tracking for this label.
* `sort`: Sort key for categorization.
* `already_seen`: An object used to track labels already seen, so they aren't displayed twice. Tracking is according
to the display form of the label, so if two labels have the same display form, the second one won't be displayed
(but its categories will still be added). If `already_seen` is {nil}, this tracking doesn't happen.
* `ok_to_destructively_modify`: If set, the `data` structure will be destructively modified in the process of this
function running.
]==]
function export.split_and_process_raw_labels(data)
if not data.ok_to_destructively_modify then
data = m_table.shallowCopy(data)
data.ok_to_destructively_modify = true
end
data.labels = export.split_labels_on_comma(data.labels)
return export.process_raw_labels(data)
end
--[==[
Format one or more already-processed labels for display and categorization. "Already-processed" means that
{get_label_info()} or {process_raw_labels()} has been called on the raw labels to convert them into objects containing
information on how to display and categorize the labels. This is a lower-level alternative to {show_labels()} and is
meant for modules such as [[Modul:alternative forms]], [[Modul:quote]] and [[Modul:etymology/templates/descendant]]
that support displaying labels along with some other information.
On input `data` is an object with the following fields:
* `labels`: List of the label objects to format, in the format returned by {get_label_info()}.
* `lang`: The language of the labels.
* `open`: Open bracket or parenthesis to display before the concatenated labels. If specified, it is wrapped in the
{"ib-brac"} and {"label-brac"} CSS classes. If {nil} or {false}, no open bracket is displayed.
* `close`: Close bracket or parenthesis to display after the concatenated labels. If specified, it is wrapped in the
{"ib-brac"} and {"label-brac"} CSS classes. If {nil} or {false}, no close bracket is displayed.
* `no_ib_content`: By default, the concatenated formatted labels inside of the open/close brackets are wrapped in the
{"ib-content"} and {"label-content"} CSS classes. Specify this to suppress this wrapping.
* `raw`: Suppress all CSS wrapping of content, including open/close parentheses, content and comma delimiters (which
are normally wrapped in {"ib-comma"} and {"label-comma"} CSS classes).
* `ok_to_destructively_modify`: If set, the `data` structure, and the `data.labels` table inside of it, will be
destructively modified in the process of this function running.
* `split_output`: If not given, the return value is a concatenation of the formatted concatenated labels and formatted
categories. Otherwise, two values are returned: the formatted pronunciation and the categories. If `split_output` is
the value {"raw"}, the categories are returned in list form, where the list elements are strings f the form suitable
for passing to {format_categories()} in [[Modul:utilities]]. If `split_output` is any other value besides {nil}, the
categories are returned as a pre-formatted concatenated string.
The return value (or the first return value, if `split_output` is given) is a string containing the contenated labels,
optionally surrounded by open/close brackets or parentheses. Normally, labels are separated by comma-space sequences,
but this may be suppressed for certain labels. If `nocat` wasn't given to {get_label_info()} or {process_raw_labels()},
and `split_output` wasn't given, the label objects will contain formatted categories in them, which will be inserted
into the returned text. (Use `split_output` if you need the categories returned separately.) The concatenated text
inside of the open/close brackets is normally wrapped in the {"ib-content"} CSS class, but this can be suppressed, as
mentioned above.
]==]
function export.format_processed_labels(data)
if not data.labels then
error("`data` must now be an object containing the params")
end
if not data.ok_to_destructively_modify then
data = m_table.shallowCopy(data)
data.labels = m_table.deepCopy(data.labels)
data.ok_to_destructively_modify = true
end
local labels = data.labels
if not labels[1] then
error("You must specify at least one label.")
end
-- Show the labels
local omit_preComma = false
local omit_postComma = true
local omit_preSpace = false
local omit_postSpace = true
for _, label in ipairs(labels) do
omit_preComma = omit_postComma
omit_preSpace = omit_postSpace
local raw_text_omit_before = label.raw_text == "middle" or label.raw_text == "end"
local raw_text_omit_after = label.raw_text == "middle" or label.raw_text == "begin"
label.omit_comma = omit_preComma or (label.data and label.data.omit_preComma) or raw_text_omit_before
omit_postComma = (label.data and label.data.omit_postComma) or raw_text_omit_after
label.omit_space = omit_preSpace or (label.data and label.data.omit_preSpace) or raw_text_omit_before
omit_postSpace = (label.data and label.data.omit_postSpace) or raw_text_omit_after
end
if data.lang then
local lang_functions_module = export.lang_specific_data_modules_prefix .. data.lang:getCode() .. "/functions"
local m_lang_functions = require(load_module).safe_require(lang_functions_module)
if m_lang_functions and m_lang_functions.postprocess_handlers then
for _, handler in ipairs(m_lang_functions.postprocess_handlers) do
handler(data)
end
end
end
local function wrap_css(txt, suffix)
if data.raw then
return txt
end
return ("<span class=\"ib-%s label-%s\">%s</span>"):format(suffix, suffix, txt)
end
local categories = nil
local formatted_categories = split_output and split_output ~= "raw" and {} or nil
for i, labelinfo in ipairs(labels) do
local label
-- Need to check for 'not raw_text' here because blank labels may legitimately occur as raw text if a double
-- angle bracket spec occurs at the beginning of a label. In this case we've already taken into account the
-- context and don't want to leave out a preceding comma and space e.g. in a case like
-- {{lb|en|rare|<<dialect>> or <<eye dialect>>}}. FIXME: We should reconsider whether we need this special case
-- at all.
if labelinfo.label == "" and not labelinfo.raw_text then
label = ""
else
label = (labelinfo.omit_comma and "" or wrap_css(",", "comma")) ..
(labelinfo.omit_space and "" or " ") ..
labelinfo.label
end
if split_output then
labels[i] = label
if split_output == "raw" then
if labelinfo.categories and labelinfo.categories[1] then
if categories then
m_table.extend(categories, labelinfo.categories)
else
categories = labelinfo.categories
end
end
elseif labelinfo.formatted_categories then
insert(formatted_categories, labelinfo.formatted_categories)
end
else
labels[i] = label .. (labelinfo.formatted_categories or "")
end
end
local function wrap_open_close(val)
if val then
return wrap_css(val, "brac")
else
return ""
end
end
local concatenated_labels = table.concat(labels, "")
if not data.no_ib_content then
concatenated_labels = wrap_css(concatenated_labels, "content")
end
local ret_labels = wrap_open_close(data.open) .. concatenated_labels .. wrap_open_close(data.close)
if split_output == "raw" then
return ret_labels, categories
elseif split_output then
return ret_labels, concat(formatted_categories)
else
return ret_labels
end
end
--[==[
Format one or more labels for display and categorization. This provides the implementation of the
{{tl|label}}/{{tl|lb}}, {{tl|term label}}/{{tl|tlb}} and {{tl|accent}}/{{tl|a}} templates, and can also be called from a
module. The return value is a string to be inserted into the generated page, including the display and categories. On
input `data` is an object with the following fields:
* `labels`: List of the labels to format.
* `lang`: The language of the labels.
* `mode`: How the label was invoked; see {get_label_info()} for more information.
* `nocat`: If true, don't add the labels to any categories.
* `force_cat`: Force adding categories even in namespaces that normally exclude them (e.g. userspace and discussion
pages).
* `notrack`: Disable all tracking for these labels.
* `sort`: Sort key for categorization.
* `no_track_already_seen`: Don't track already-seen labels. If not specified, already-seen labels are not displayed
again, but still categorize. See the documentation of {get_label_info()}.
* `open`: Open bracket or parenthesis to display before the concatenated labels. If {nil}, defaults to an open
parenthesis. Set to {false} to disable.
* `close`: Close bracket or parenthesis to display after the concatenated labels. If {nil}, defaults to a close
parenthesis. Set to {false} to disable.
* `no_ib_content`: As in `format_processed_labels()`.
* `raw`: As in `format_processed_labels()`. Also suppress wrapping the entire formatted result in a usage label CSS
class (see below).
* `ok_to_destructively_modify`: If set, the `data` structure will be destructively modified in the process of this
function running.
Compared with {format_processed_labels()}, this function has the following differences:
# The labels specified in `labels` are raw labels (i.e. strings) rather than formatted objects.
# The open and close brackets default to parentheses ("round brackets") rather than not being displayed by default.
# Tracking of already-seen labels is enabled unless explicitly turned off using `no_track_already_seen`.
# The entire formatted result is wrapped in a {"usage-label-<var>type</var>"} CSS class (depending on the value of
`mode`), unless `raw` is given.
]==]
function export.show_labels(data)
if not data.labels then
error("`data` must now be an object containing the params")
end
if not data.ok_to_destructively_modify then
data = m_table.shallowCopy(data)
data.ok_to_destructively_modify = true
end
local labels = data.labels
if not labels[1] then
error("You must specify at least one label.")
end
local mode = validate_mode(data.mode)
if not data.no_track_already_seen then
data.already_seen = {}
end
data.labels = export.process_raw_labels(data)
if data.open == nil then
data.open = "("
end
if data.close == nil then
data.close = ")"
end
local formatted = export.format_processed_labels(data)
if data.raw then
return formatted
else
return "<span class=\"" .. mode_to_outer_class[mode] .. "\">" .. formatted .. "</span>"
end
end
--[==[Helper function for the data modules.]==]
function export.alias(labels, key, aliases)
m_table.alias(labels, key, aliases)
end
--[==[
Split the display form of a label. Returns two values: `link` and `display`. If the display form consists of a
two-part link, `link` is the first part and `display` is the second part. If the display form consists of a
single-part link, `link` and `display` are the same. Otherwise (the display form is not a link or contains an
embedded link), `link` is the same as the passed-in `label` and `display` is nil.
]==]
function export.split_display_form(label)
if not label:find("%[%[") then
return label, nil
end
local link, display = label:match("^%[%[([^%[%]|]+)|([^%[%]|]+)%]%]$")
if link then
return link, display
end
link = label:match("^%[%[([^%[%]|])+%]%]$")
if link then
return link, link
end
return label, nil
end
--[==[
Combine the `link` and `display` parts of the display form of a label as returned by {split_display_form()}.
If `display` is nil, `link` is returned directly. Otherwise, a one-part or two-part link is constructed
depending on whether `link` and `display` are the same. (As a special case, if both consist of a blank string,
the return value is a blank string rather than a malformed link.)
]==]
function export.combine_display_form_parts(link, display)
if not display then
return link
end
if link == display then
if link == "" then
return ""
else
return ("[[%s]]"):format(link)
end
end
return ("[[%s|%s]]"):format(link, display)
end
--[==[Used to finalize the data into the form that is actually returned.]==]
function export.finalize_data(labels)
local shallow_copy = m_table.shallowCopy
local aliases = {}
for label, data in pairs(labels) do
if type(data) == "table" then
if data.aliases then
for _, alias in ipairs(data.aliases) do
aliases[alias] = label
end
data.aliases = nil
end
if data.deprecated_aliases then
local data2 = shallow_copy(data)
data2.deprecated = true
data2.canonical = label
for _, alias in ipairs(data2.deprecated_aliases) do
aliases[alias] = data2
end
data.deprecated_aliases = nil
data2.deprecated_aliases = nil
end
end
end
for label, data in pairs(aliases) do
labels[label] = data
end
return labels
end
return export
s3thxonef718idbkwwemy6tndhdprjt
1349866
1349865
2026-04-14T14:03:11Z
Swarabakti
18192
Batalkan revisi [[Special:Diff/1349865|1349865]] oleh [[Special:Contributions/Swarabakti|Swarabakti]] ([[User talk:Swarabakti|bicara]])
1349866
Scribunto
text/plain
local export = {}
export.lang_specific_data_list_module = "Modul:labels/data/lang"
export.lang_specific_data_modules_prefix = "Modul:labels/data/lang/"
local load_module = "Modul:load"
local parse_utilities_module = "Modul:parse utilities"
local string_utilities_module = "Modul:string utilities"
local utilities_module = "Modul:utilities"
local insert = table.insert
local require_when_needed = require("Modul:require when needed")
local unpack = unpack or table.unpack -- Lua 5.2 compatibility
local dump = mw.dumpObject
local m_lang = require("Modul:bahasa")
local m_lang_specific_data = mw.loadData(export.lang_specific_data_list_module)
local m_table = require_when_needed("Modul:table")
--[==[ intro:
Labels go through several stages of processing to get from the original (raw) label specified in the Wikicode to the
final (formatted) label displayed to the user. The following terminology will help keep things straight:
* The "raw label" is the label specified in the Wikicode.
* The "non-canonical label" is the label extracted from the raw label, used for looking up in the label modules in order
to fetch the associated label data structure and determine the canonical form of the label. Normally this is the same
as the raw label, but it will be different if the raw label is of the form `!<var>label</var>` (e.g. `!Australian`)
`<var>label</var>!<var>display</var>` (e.g. `Southern US!Southern`). The former syntax indicates that the label
should display as-is instead of in its canonical form (which in the example given is `Australia`), and the latter
syntax indicates that the label should display in the form specified after the exclamation point.
* The "canonical label" is the result of applying alias resolution to the non-canonical label. Normally, the
canonical label rather than the non-canonical label is what is shown to the user.
* The "display form of the label" is what is shown to the user, not considering links and HTML that may wrap the
display form to get the formatted form of the label. The display form comes from the `.display` field of the module
label data for the label; if no such field exists in the label data, it is normally the canonical label. However, if
the display override exists (see below), it takes precedence over the `.display` field or canonical label when
determining the display form of the label.
* The "display override", if specified, overrides all other means of determining the display form of the label. It is
specified in two circumstances, i.e. in the `!<var>label</var>` and `<var>label</var>!<var>display</var>` raw label
formats (i.e. in the same cirumstances where the raw label and non-canonical label are different).
* The "formatted form of the label" is the final form of the label shown directly to the user. It generally appears to
the user as the display form of the label, but in the Wikicode, the formatted form may wrap the display form with a
link to Wikipedia, the Wiktionary glossary or another Wiktionary entry, and that link in turn may be wrapped in an
HTML span with a "deprecated" CSS class attached, causing the label to display differently (to indicate that it is
deprecated).
]==]
-- for testing
local force_cat = false
local SUBPAGENAME = mw.title.getCurrentTitle().subpageText
-- Disable tracking on heavy pages to save time.
local pages_where_tracking_is_disabled = {
-- pages that consistently hit timeouts
["a"] = true,
-- pages that sometimes hit timeouts
["de"] = true,
["e"] = true,
["i"] = true,
["o"] = true,
["u"] = true,
["и"] = true,
["山"] = true,
["子"] = true,
["月"] = true,
["一"] = true,
["人"] = true,
}
-- Add tracking category for PAGE. The tracking category linked to is [[Wiktionary:Tracking/labels/PAGE]].
-- We also add to [[Wiktionary:Tracking/labels/PAGE/LANGCODE]] and [[Wiktionary:Tracking/labels/PAGE/MODE]] if
-- LANGCODE and/or MODE given.
local function track(page, langcode, mode)
if pages_where_tracking_is_disabled[SUBPAGENAME] then
return true
end
-- avoid including links in pages (may cause error)
page = page:gsub("%[", "("):gsub("%]", ")"):gsub("|", "!")
require("Modul:debug/track")("labels/" .. page)
if langcode then
require("Modul:debug/track")("labels/" .. page .. "/" .. langcode)
end
if mode then
require("Modul:debug/track")("labels/" .. page .. "/" .. mode)
end
-- We don't currently add a tracking label for both langcode and mode to reduce the total number of labels, to
-- save some memory.
return true
end
local function ucfirst(txt)
return mw.getContentLanguage():ucfirst(txt)
end
local mode_to_outer_class = {
["label"] = "usage-label-sense",
["term-label"] = "usage-label-term",
["accent"] = "usage-label-accent",
["form-of"] = "usage-label-form-of",
}
local mode_to_property_prefix = {
["label"] = false,
["term-label"] = false, -- handled specially
["accent"] = "accent_",
["form-of"] = "form_of_",
}
local function validate_mode(mode)
mode = mode or "label"
if not mode_to_outer_class[mode] then
local allowed_values = {}
for key, _ in pairs(mode_to_outer_class) do
insert(allowed_values, "'" .. key .. "'")
end
table.sort(allowed_values)
error(("Invalid value '%s' for `mode`; should be one of %s"):format(mode, table.concat(allowed_values, ", ")))
end
return mode
end
local function getprop(labdata, mode, prop)
local mode_prefix = mode_to_property_prefix[mode]
return mode_prefix and labdata[mode_prefix .. prop] or labdata[prop]
end
local function check_type(label, lang, prop, value, expected_types)
if value == nil or expected_types == nil then
return value
end
if type(expected_types) ~= "table" then
expected_types = {expected_types}
end
local valtype = type(value)
local matches = false
for _, expected_type in ipairs(expected_types) do
if type(expected_type) == "string" then
if valtype == expected_type then
matches = true
break
end
elseif value == expected_type then
matches = true
break
end
end
if not matches then
local function join_untagged_or(elements)
return m_table.serialCommaJoin(elements, {conj = "or", dontTag = true})
end
local quoted_types = {}
local quoted_values = {}
for _, expected_type in ipairs(expected_types) do
if type(expected_type) == "string" then
insert(quoted_types, "'" .. expected_type .. "'")
else
insert(quoted_values, "'" .. dump(expected_type) .. "'")
end
end
local possible_matches = {}
if quoted_types[1] then
insert(possible_matches, ("be of type%s %s"):format(
quoted_types[2] and "s" or "", join_untagged_or(quoted_types)))
end
if quoted_values[1] then
insert(possible_matches, ("have the value%s %s"):format(
quoted_values[2] and "s" or "", join_untagged_or(quoted_values)))
end
error(("Internal error: For label '%s', langcode '%s', property '%s' should %s but is of type '%s' with value %s"):format(
label, lang and lang:getCode() or "UNKNOWN", prop, join_untagged_or(possible_matches), valtype, dump(value)))
end
end
-- HACK! For languages in any of the given families, check the specified-language Wikipedia for appropriate
-- Wikipedia articles for the language in question (esp. useful for obscure etymology-only languages that may not
-- have English articles for them, like many Chinese lects).
local families_to_wikipedia_languages = {
{"zhx", "zh"},
{"sem-arb", "ar"},
}
--[==[
Given language `lang` (a full language, etymology-language or family), fetch a list of Wikimedia languages to check
when converting a Wikidata item to a Wikipedia article. English is always first, followed by the Wikimedia language
code(s) of `lang` if `lang` is a language (which may or may not be the same as `lang`'s Wiktionary code), followed
by the macrolanguage of `lang` for certain languages and families (currently, only languages and families in the Chinese
and Arabic families). If `lang` is nil, only return English. Note that the same code may occur more than once in the
list. This is exported because it's also used by [[Modul:category tree/poscatboiler/data/language varieties]].
]==]
function export.get_langs_to_extract_wikipedia_articles_from_wikidata(lang)
local wikipedia_langs = {}
insert(wikipedia_langs, "en")
if lang then
local article_lang = lang
while article_lang do
if article_lang:hasType("language") then
local wmcodes = article_lang:getWikimediaLanguageCodes()
for _, wmcode in ipairs(wmcodes) do
insert(wikipedia_langs, wmcode)
end
end
article_lang = article_lang:getParent()
end
for _, family_to_wp_lang in ipairs(families_to_wikipedia_languages) do
local family, wp_lang = unpack(family_to_wp_lang)
if lang:inFamily(family) then
insert(wikipedia_langs, wp_lang)
end
end
end
return wikipedia_langs
end
--[==[
Fetch the categories to add to a page, given that the label whose canonical form is `canon_label` with language `lang`
has been seen. `labdata` is the label data structure for `label`, fetched from the appropriate submodule. `mode`
specifies how the label was invoked (see {get_label_info()} for more information). The return value is a list of the
actual categories, unless `for_doc` is specified, in which case the categories returned are marked up for display on a
documentation page. If `for_doc` is given, `lang` may be nil to format the categories in a language-independent fashion;
otherwise, it must be specified. If `category_types` is specified, it should be a set object (i.e. with category types
as keys and {true} as values), and only categories of the specified types will be returned.
]==]
function export.fetch_categories(canon_label, labdata, lang, mode, for_doc, category_types)
local categories = {}
mode = validate_mode(mode)
local langcode, canonical_name
if lang then
langcode = m_lang.getLangCodeByCode(lang:getCode())
canonical_name = m_lang.getLangNameByCode(lang:getCode())
elseif for_doc then
langcode = "<var>[langcode]</var>"
canonical_name = "<var>[language name]</var>"
else
error("Internal error: Must specify `lang` unless `for_doc` is given")
end
local function labprop(prop, expected_types)
local retval = getprop(labdata, mode, prop)
check_type(canon_label, lang, prop, retval, expected_types)
return retval
end
local empty_list = {}
local function get_cats(cat_type)
if category_types and not category_types[cat_type] then
return empty_list
end
local cats = labprop(cat_type)
if not cats then
return empty_list
end
if type(cats) ~= "table" then
return {cats}
end
return cats
end
local topical_categories = get_cats("topical_categories")
local sense_categories = get_cats("sense_categories")
local pos_categories = get_cats("pos_categories")
local regional_categories = get_cats("regional_categories")
local plain_categories = get_cats("plain_categories")
local function insert_cat(cat, sense_cat)
if for_doc then
cat = "<code>" .. cat .. "</code>"
if sense_cat then
if mode == "term-label" then
cat = cat .. " (using {{tl|tlb}})"
else
cat = cat .. " (using {{tl|lb}} or form-of template)"
end
cat = mw.getCurrentFrame():preprocess(cat)
end
end
insert(categories, cat)
end
for _, cat in ipairs(topical_categories) do
insert_cat(langcode .. ":Istilah bidang " .. (cat == true and canon_label or cat))
end
for _, cat in ipairs(sense_categories) do
if cat == true then
cat = canon_label
end
cat = mode == "term-label" and "Istilah " .. cat or "Istilah " .. cat
insert_cat(langcode .. ":" .. cat, true)
end
for _, cat in ipairs(pos_categories) do
insert_cat(langcode .. ":" .. (cat == true and canon_label or cat))
end
for _, cat in ipairs(regional_categories) do
insert_cat(canonical_name .. " " .. (cat == true and ucfirst(canon_label) or cat))
end
for _, cat in ipairs(plain_categories) do
insert_cat(cat == true and ucfirst(canon_label) or cat)
end
return categories
end
--[==[
Return the list of all labels data modules for a label whose language is `lang`. The return value is a list of
module names, with overriding modules earlier in the list (that is, if a label occurs in two modules in the list,
the earlier-listed module takes precedence). If `lang` is nil, only return non-language-specific submodules.
]==]
function export.get_submodules(lang)
local submodules = {
"Modul:labels/data",
"Modul:labels/data/qualifiers",
"Modul:labels/data/regional",
"Modul:labels/data/topical",
}
if not lang then
return submodules
end
-- get language-specific labels from data module
local langcode = lang:getFullCode()
if m_lang_specific_data.langs_with_lang_specific_modules[langcode] then
-- prefer per-language label in order to pick subvariety labels over regional ones
insert(submodules, 1, export.lang_specific_data_modules_prefix .. langcode)
end
return submodules
end
--[==[
Return the formatted form of a label `label` (which should be the canonical form of the label; see comment at top),
given (a) the label data structure `labdata` from one of the data modules; (b) the language object `lang` of the
language being processed, or nil for no language; (c) `deprecated` (true if the label is deprecated, otherwise the
deprecation information is taken from `labdata`); (d) `override_display` (if specified, override the display form of the
label with the specified string, instead of any value in `labdata.display` or `labdata.special_display` or the canonical
label in `label` itself); (e) `mode` (same as `data.mode` passed to {get_label_info()}). Returns two values: the
formatted label form and a boolean indicating whether the label is deprecated.
'''NOTE: Under normal circumstances, do not use this.''' Instead, use {get_label_info()}, which searches all the data
modules for a given label and handles other complications.
]==]
function export.format_label(label, labdata, lang, deprecated, override_display, mode)
local formatted_label
mode = validate_mode(mode)
local function labprop(prop, expected_types)
local retval = getprop(labdata, mode, prop)
check_type(label, lang, prop, retval, expected_types)
return retval
end
deprecated = deprecated or labprop("deprecated")
if not override_display and labprop("special_display") then
local function add_language_name(str)
if str == "canonical_name" then
if lang then
return lang:getFullName()
else
return "<code><var>[language name]</var></code>"
end
else
return ""
end
end
formatted_label = labprop("special_display", "string"):gsub("<(.-)>", add_language_name)
else
--[=[
We proceed as follows:
1. The display form comes from either (a) the `override_display` variable if set (this happens when
the user uses a label like '!British'); (b) the `display` property, if set; or (c) the label iself.
2. If the display form contains a link, use it directly and ignore the other display-related settings.
(NOTE: Settings `Wikipedia` and `Wikidata` may still be used on the category page itself, by the
category tree code.)
3. Otherwise, use one of the other display-related settings, in the following order:
`glossary` > `Wiktionary` > `Wikipedia` > `Wikidata`. Specifically:
a. If any of the values is equal to `true`, that is equivalent to specifying a string consisting of
the canonical label.
b. If `glossary` is set, it specifies the anchor in [[Appendix:Glossary]].
c. If `Wiktionary` is set, it specifies an arbitrary Wiktionary page or page + anchor (e.g. a
separate Appendix entry).
d. If `Wikipedia` is set, it specifies an arbitrary Wikipedia article, or a list of such items (in
this case, we select the first one, but the category tree uses all of them).
e. If `Wikidata` is set, it specifies an arbitrary Wikidata item to retrieve a Wikipedia article from,
or a list of such items (in this case, we select the first one, but the category tree uses all of
them). If the item is of the form `wmcode:id`, the Wikipedia article corresponding to `id` in the
`wmcode`-language Wikipedia is fetched if available. Otherwise, the English-language Wikipedia
article corresponding to `id` is retrieved if available, falling back to the Wikimedia language(s)
corresponding to `lang` and then (in certain cases) to the macrolanguage that `lang` is part of.
Note that if `mode` is specified, prefixed properties (e.g. `accent_display` for `mode` == "accent",
`form_display` for `mode` == "form") are checked before the bare equivalent (e.g. `display`).
]=]
local display = override_display or labprop("display", "string") or label
-- There are several 'Foo spelling' labels specially designed for use in the |from= param in
-- {{alternative form of}}, {{standard spelling of}} and the like. Often the display includes the word
-- "spelling" at the end (e.g. if it's defaulted), which is useful when the label is used with {{tl|lb}} or
-- {{tl|tlb}}; but it causes redundancy when used with the form-of templates, which add the word "form",
-- "spelling", "standard spelling", etc. after the label.
if mode == "form-of" then
display = display:gsub(" spelling$", "")
end
if display:find("%[%[") then
formatted_label = display
else
local glossary = labprop("glossary", {"string", true})
local Wiktionary = labprop("Wiktionary", {"string", true})
local Wikipedia = labprop("Wikipedia", {"string", true, "table"})
local Wikidata = labprop("Wikidata", {"string", true, "table"})
if glossary then
local glossary_entry = glossary == true and label or glossary
formatted_label = "[[Lampiran:Glosarium#" .. glossary_entry .. "|" .. display .. "]]"
elseif Wiktionary then
local Wiktionary_entry = Wiktionary == true and label or Wiktionary
if Wiktionary == display then
formatted_label = "[[" .. display .. "]]"
else
formatted_label = "[[" .. Wiktionary_entry .. "|" .. display .. "]]"
end
elseif Wikipedia then
if type(Wikipedia) == "table" then
Wikipedia = Wikipedia[1]
end
local Wikipedia_entry = Wikipedia == true and label or Wikipedia
formatted_label = "[[w:" .. Wikipedia_entry .. "|" .. display .. "]]"
elseif Wikidata then
if not mw.wikibase then
error(("Unable to retrieve data from Wikidata ID for label '%s'; `mw.wikibase` not defined"
):format(label))
end
local function make_formatted_label(wmcode, id)
local article = mw.wikibase.sitelink(id, wmcode .. "wiki")
if article then
local link = wmcode == "en" and "w:" .. article or "w:" .. wmcode .. ":" .. article
return ("[[%s|%s]]"):format(link, display)
else
return nil
end
end
if type(Wikidata) == "table" then
Wikidata = Wikidata[1]
end
local wmcode, id = Wikidata:match("^(.*):(.*)$")
if wmcode then
formatted_label = make_formatted_label(wmcode, id)
else
local langs_to_check = export.get_langs_to_extract_wikipedia_articles_from_wikidata(lang)
for _, wmcode in ipairs(langs_to_check) do
formatted_label = make_formatted_label(wmcode, Wikidata)
if formatted_label then
break
end
end
end
formatted_label = formatted_label or display
else
formatted_label = display
end
end
end
if deprecated then
formatted_label = '<span class="deprecated-label">' .. formatted_label .. '</span>'
end
return formatted_label, deprecated
end
--[==[
Return information on a label. On input `data` is an object with the following fields:
* `label`: The raw label to return information on.
* `lang`: The language of the label. Must be specified unless `for_doc` is given.
* `mode`: How the label was invoked. One of the following:
** {nil} or {"label"}: invoked through {{tl|lb}} or another template whose labels in the same fashion, e.g.
{{tl|alt}}, {{tl|quote}} or {{tl|syn}};
** {"term-label"}: invoked through {{tl|tlb}};
** {"accent"}: invoked through {{tl|a}} or the {{para|a}} or {{para|aa}} parameters of other pronunciation templates,
such as {{tl|IPA}}, {{tl|rhymes}} or {{tl|homophones}};
** {"form-of"}: invoked through {{tl|alt form}}, {{tl|standard spelling of}} or other form-of template.
This changes the display and/or categorization of a minority of labels. (The majority work the same for all modes.)
* `for_doc`: Data is being fetched for documentation purposes. This causes the raw categories returned in
`categories` to be formatted for documentation display.
* `nocat`: If true, don't add the label to any categories.
* `force_cat`: Force adding categories even in namespaces that normally exclude them (e.g. userspace and discussion
pages).
* `notrack`: Disable all tracking for this label.
* `sort`: Sort key for categorization.
* `already_seen`: An object used to track labels already seen, so they aren't displayed twice. Tracking is according
to the display form of the label, so if two labels have the same display form, the second one won't be displayed
(but its categories will still be added). If `already_seen` is {nil}, this tracking doesn't happen.
The return value is an object with the following fields:
* `raw_text`: If specified, the object does not describe a label but simply raw text surrounding labels. This occurs
when double angle bracket (<<...>>) notation is used. {get_label_info()} does not currently return objects with this
field set, but {process_raw_labels()} does. The value is {"begin"} (this is the first raw text portion derived from
a double angle bracket spec, provided there are at least two raw text portions); {"end"} (this is the last raw text
portion derived from a double angle bracket spec, provided there are at least two portions); {"middle"} (this is
neither the first nor the last raw text portion); or {"only"} (this is a raw text portion standing by itself). The
particular value determines the handling of commas and spaces on one or both sides of the raw text. If this field is
specified, only the `label` field (containing the actual raw text) and the `category` field (containing an empty list)
are set; all other fields are {nil}.
* `raw_label`: The raw label that was passed in.
* `non_canonical`: The label prior to canonicalization (i.e. alias resolution). Usually this is the same as `raw_label`,
but if the raw label was preceded by an exclamation point (meaning "display the raw label as-is"), this field will
contain the label stripped of the exclamation point, and if the raw label is of the form
`<var>label</var>!<var>display</var>` (meaning "display the label in the specified form"), this field will contain the
label before the exclamation point.
* `canonical`: If the label in `non_canonical` is an alias, this contains the canonical name of the label; otherwise it
will be {nil}.
* `override_display`: If specified, this contains a string that overrides the normal display form of the label. The
display form of a label is the `.display` field of the label data if present, and otherwise is normally the canonical
form of the label (i.e. after alias resolution). (This is not the same as the formatted form of the label, found in
`label`, which is the final form shown to the user and includes links to Wikipedia, the glossary, etc. as well as an
HTML wrapper if the label is deprecated.) If `override_display` is specified, however, this is used in place of the
normal display form of the label. This currently happens in two circumstances: (1) the label was preceded by ! to
indicate that the raw label should be displayed rather than the canonical form; (2) the label was given in the form
`<var>label</var>!<var>display</var>` (meaning "display the label in the specified `<var>display</var>` form").
* `label`: The formatted form of the label. This is what is actually shown to the user. If the label is recognized
(found in some module), this will typically be in the form of a link.
* `categories`: A list of the categories to add the label to; an empty list if `nocat` was specified.
* `formatted_categories`: A string containing the formatted categories; {nil} if `nocat` or `for_doc` was specified,
or if `categories` is empty. Currently will be an empty string if there are categories to format but the namespace is
one that normally excludes categories (e.g. userspace and discussion pages), and `force_cat` isn't specified.
* `deprecated`: True if the label is deprecated.
* `recognized`: If true, the label was found in some module.
* `data`: The data structure for the label, as fetched from the label modules. For unrecognized labels, this will
be an empty object.
]==]
function export.get_label_info(data)
if not data.label then
error("`data` must now be an object containing the params")
end
local mode = validate_mode(data.mode)
local ret = {categories = {}}
local label = data.label
local raw_label = label
ret.raw_label = raw_label
local override_display
if label:find("^!") then
label = label:gsub("^!", "")
override_display = label
elseif label:find("![^%s]") then
label, override_display = label:match("^(.-)!([^%s].*)$")
if not label then
error(("Internal error: This Lua pattern should never fail to match for label '%s'"):format(raw_label))
end
end
local non_canonical = label
ret.non_canonical = non_canonical
local deprecated = false
local labdata
local submodule
local data_langcode = data.lang and data.lang:getCode() or nil
local submodules_to_check = export.get_submodules(data.lang)
for _, submodule_to_check in ipairs(submodules_to_check) do
submodule = mw.loadData(submodule_to_check)
local this_labdata = submodule[label]
local resolved_label
if type(this_labdata) == "string" then
resolved_label = this_labdata
this_labdata = submodule[this_labdata]
if not this_labdata then
error(("Internal error: Label alias '%s' points to '%s', which is undefined in module [[%s]]"):format(
label, resolved_label, submodule_to_check))
end
if type(this_labdata) == "string" then
error(("Internal error: Label alias '%s' points to '%s', which is also an alias (of '%s') in module [[%s]]"):format(
label, resolved_label, this_labdata, submodule_to_check))
end
end
if this_labdata then
-- Make sure either there's no lang restriction, or we're processing lang-independent, or our language
-- is among the listed languages. Otherwise, continue processing (which could conceivably pick up a
-- lang-appropriate version of the label in another label data module).
local lablangs = getprop(this_labdata, mode, "langs")
if not lablangs or not data_langcode then
labdata = this_labdata
label = resolved_label or label
break
end
local lang_in_list = false
for _, langcode in ipairs(lablangs) do
if langcode == data_langcode then
lang_in_list = true
break
end
end
if lang_in_list then
labdata = this_labdata
label = resolved_label or label
break
elseif not data.notrack then
-- Track use of a label that fails the lang restriction.
-- [[Special:WhatLinksHere/Wiktionary:Tracking/labels/wrong-lang-label]]
-- [[Special:WhatLinksHere/Wiktionary:Tracking/labels/wrong-lang-label/LANGCODE]]
-- [[Special:WhatLinksHere/Wiktionary:Tracking/labels/wrong-lang-label/LABEL]]
-- [[Special:WhatLinksHere/Wiktionary:Tracking/labels/wrong-lang-label/LABEL/LANGCODE]]
track("wrong-lang-label", data_langcode)
track("wrong-lang-label/" .. label, data_langcode)
if resolved_label then
track("wrong-lang-label/" .. resolved_label, data_langcode)
end
end
end
end
if labdata then
ret.recognized = true
else
labdata = {}
ret.recognized = false
end
local function labprop(prop)
return getprop(labdata, mode, prop)
end
if labprop("deprecated") then
deprecated = true
end
if label ~= non_canonical then
-- Note that this is an alias and store the canonical version.
ret.canonical = label
end
if not data.notrack then -- labprop("track") then -- track all labels now
-- Track label (after converting aliases to canonical form; but also track raw label (alias) if different
-- from canonical label).
-- [[Special:WhatLinksHere/Wiktionary:Tracking/labels/label/LABEL]]
-- [[Special:WhatLinksHere/Wiktionary:Tracking/labels/label/LABEL/LANGCODE]]
-- [[Special:WhatLinksHere/Wiktionary:Tracking/labels/label/LABEL/MODE]]
track("label/" .. label, data_langcode, mode)
if label ~= non_canonical then
track("label/" .. non_canonical, data_langcode, mode)
end
end
local formatted_label
formatted_label, deprecated = export.format_label(label, labdata, data.lang, deprecated, override_display, mode)
ret.deprecated = deprecated
if deprecated then
if not data.nocat then
local depcat = "Entries with deprecated labels"
if data.for_doc then
depcat = "<code>" .. depcat .. "</code>"
end
insert(ret.categories, depcat)
end
end
local label_for_already_seen =
(labprop("topical_categories") or labprop("regional_categories")
or labprop("plain_categories") or labprop("pos_categories")
or labprop("sense_categories")) and formatted_label
or nil
-- Track label text. If label text was previously used, don't show it, but include the categories.
-- For an example, see [[hypocretin]].
if data.already_seen and data.already_seen[label_for_already_seen] then
ret.label = ""
else
if formatted_label:find("{") then
formatted_label = mw.getCurrentFrame():preprocess(formatted_label)
end
ret.label = formatted_label
end
if data.nocat then
-- do nothing
else
local cats = export.fetch_categories(label, labdata, data.lang, mode, data.for_doc)
for _, cat in ipairs(cats) do
insert(ret.categories, cat)
end
if not ret.categories[1] or data.for_doc then
-- Don't try to format categories if we're doing this for documentation ({{label/doc}}), because there
-- will be HTML in the categories.
-- do nothing
else
ret.formatted_categories = require(utilities_module).format_categories(ret.categories, data.lang,
data.sort, nil, force_cat or data.force_cat)
end
end
ret.data = labdata
if label_for_already_seen and data.already_seen then
data.already_seen[label_for_already_seen] = true
end
return ret
end
--[==[
Split a string containing comma-separated raw labels into the individual labels. This will not split on a comma
followed by whitespace, and it will not split inside of matched <...> or [...]. The code is written to be efficient, so
that it does not load modules (e.g. [[Modul:parse utilities]]) unnecessarily.
]==]
function export.split_labels_on_comma(term)
if term:find("[%[<]") then
-- Do it the "hard way". We don't want to split anything inside of <...> or <<...>> even if there are commas
-- inside of the angle brackets. For good measure we do the same for [...] and [[...]]. We first parse balanced
-- segment runs involving either [...] or <...>. Then we split alternating runs on comma (but not on
-- comma+whitespace). Then we rejoin the split runs. For example, given the following:
-- "regional,older <<non-rhotic,and,non-hoarse-horse>> speakers", the first call to
-- parse_multi_delimiter_balanced_segment_run() produces
--
-- {"regional,older ", "<<non-rhotic,and,non-hoarse-horse>>", " speakers"}
--
-- After calling split_alternating_runs_on_comma(), we get the following:
--
-- {{"regional"}, {"older ", "<<non-rhotic,and,non-hoarse-horse>>", " speakers"}}
--
-- After rejoining each group, we get:
--
-- {"regional", "older <<non-rhotic,and,non-hoarse-horse>> speakers"}
--
-- which is the desired output. When processing the second "label" string, the code in process_raw_labels()
-- will do a similar process to this to pull out the labels inside of the <<...>> notation.
local put = require(parse_utilities_module)
local segments = put.parse_multi_delimiter_balanced_segment_run(term, {{"<", ">"}, {"[", "]"}})
-- This won't split on comma+whitespace.
local comma_separated_groups = put.split_alternating_runs_on_comma(segments)
for i, group in ipairs(comma_separated_groups) do
comma_separated_groups[i] = table.concat(group)
end
return comma_separated_groups
elseif term:find(",%s") then
-- This won't split on comma+whitespace.
return require(parse_utilities_module).split_on_comma(term)
elseif term:find(",") then
return require(string_utilities_module).split(term, ",")
else
return {term}
end
end
--[==[
Return a list of objects corresponding to a set of raw labels. Each object returned is of the format returned by
{get_label_info()}. This is similar to looping over the labels and calling {get_label_info()} on each one, but it also
correctly handles embedded double angle bracket specs <<...>> found in the labels. (In such a case, there will be more
objects returned than raw labels passed in.) On input, `data` is an object with the following fields:
* `labels`: The list of labels to process.
* `lang`: The language of the labels. Must be specified.
* `mode`: How the label was invoked; see {get_label_info()} for more information.
* `nocat`: If true, don't add the label to any categories.
* `force_cat`: Force adding categories even in namespaces that normally exclude them (e.g. userspace and discussion
pages).
* `notrack`: Disable all tracking for this label.
* `sort`: Sort key for categorization.
* `already_seen`: An object used to track labels already seen, so they aren't displayed twice. Tracking is according
to the display form of the label, so if two labels have the same display form, the second one won't be displayed
(but its categories will still be added). If `already_seen` is {nil}, this tracking doesn't happen.
* `ok_to_destructively_modify`: If set, the `data` structure will be destructively modified in the process of this
function running.
]==]
function export.process_raw_labels(data)
local label_infos = {}
if not data.ok_to_destructively_modify then
data = m_table.shallowCopy(data)
data.ok_to_destructively_modify = true
end
local function get_info_and_insert(label)
-- Reuse this structure to save memory.
data.label = label
insert(label_infos, export.get_label_info(data))
end
for _, label in ipairs(data.labels) do
if label:find("<<") then
local segments = require(string_utilities_module).split(label, "<<(.-)>>")
for i, segment in ipairs(segments) do
if i % 2 == 1 then
local raw_text_type = i == 1 and "begin" or i == #segments and "end" or "middle"
insert(label_infos, {raw_text = raw_text_type, label = segment, categories = {}})
else
local segment_labels = export.split_labels_on_comma(segment)
for _, segment_label in ipairs(segment_labels) do
get_info_and_insert(segment_label)
end
end
end
else
get_info_and_insert(label)
end
end
return label_infos
end
--[==[
Split a comma-separated string of raw labels and process each label to get a list of objects suitable for passing to
{format_processed_labels()}. Each object returned is of the format returned by {get_label_info()}. This is equivalent to
calling {split_labels_on_comma()} followed by {process_raw_labels()}. On input, `data` is an object with the following
fields:
* `labels`: The string containing the raw comma-separated labels.
* `lang`: The language of the labels. Must be specified.
* `mode`: How the label was invoked; see {get_label_info()} for more information.
* `nocat`: If true, don't add the label to any categories.
* `force_cat`: Force adding categories even in namespaces that normally exclude them (e.g. userspace and discussion
pages).
* `notrack`: Disable all tracking for this label.
* `sort`: Sort key for categorization.
* `already_seen`: An object used to track labels already seen, so they aren't displayed twice. Tracking is according
to the display form of the label, so if two labels have the same display form, the second one won't be displayed
(but its categories will still be added). If `already_seen` is {nil}, this tracking doesn't happen.
* `ok_to_destructively_modify`: If set, the `data` structure will be destructively modified in the process of this
function running.
]==]
function export.split_and_process_raw_labels(data)
if not data.ok_to_destructively_modify then
data = m_table.shallowCopy(data)
data.ok_to_destructively_modify = true
end
data.labels = export.split_labels_on_comma(data.labels)
return export.process_raw_labels(data)
end
--[==[
Format one or more already-processed labels for display and categorization. "Already-processed" means that
{get_label_info()} or {process_raw_labels()} has been called on the raw labels to convert them into objects containing
information on how to display and categorize the labels. This is a lower-level alternative to {show_labels()} and is
meant for modules such as [[Modul:alternative forms]], [[Modul:quote]] and [[Modul:etymology/templates/descendant]]
that support displaying labels along with some other information.
On input `data` is an object with the following fields:
* `labels`: List of the label objects to format, in the format returned by {get_label_info()}.
* `lang`: The language of the labels.
* `open`: Open bracket or parenthesis to display before the concatenated labels. If specified, it is wrapped in the
{"ib-brac"} and {"label-brac"} CSS classes. If {nil} or {false}, no open bracket is displayed.
* `close`: Close bracket or parenthesis to display after the concatenated labels. If specified, it is wrapped in the
{"ib-brac"} and {"label-brac"} CSS classes. If {nil} or {false}, no close bracket is displayed.
* `no_ib_content`: By default, the concatenated formatted labels inside of the open/close brackets are wrapped in the
{"ib-content"} and {"label-content"} CSS classes. Specify this to suppress this wrapping.
* `raw`: Suppress all CSS wrapping of content, including open/close parentheses, content and comma delimiters (which
are normally wrapped in {"ib-comma"} and {"label-comma"} CSS classes).
* `ok_to_destructively_modify`: If set, the `data` structure, and the `data.labels` table inside of it, will be
destructively modified in the process of this function running.
* `split_output`: If not given, the return value is a concatenation of the formatted concatenated labels and formatted
categories. Otherwise, two values are returned: the formatted pronunciation and the categories. If `split_output` is
the value {"raw"}, the categories are returned in list form, where the list elements are strings f the form suitable
for passing to {format_categories()} in [[Modul:utilities]]. If `split_output` is any other value besides {nil}, the
categories are returned as a pre-formatted concatenated string.
The return value (or the first return value, if `split_output` is given) is a string containing the contenated labels,
optionally surrounded by open/close brackets or parentheses. Normally, labels are separated by comma-space sequences,
but this may be suppressed for certain labels. If `nocat` wasn't given to {get_label_info()} or {process_raw_labels()},
and `split_output` wasn't given, the label objects will contain formatted categories in them, which will be inserted
into the returned text. (Use `split_output` if you need the categories returned separately.) The concatenated text
inside of the open/close brackets is normally wrapped in the {"ib-content"} CSS class, but this can be suppressed, as
mentioned above.
]==]
function export.format_processed_labels(data)
if not data.labels then
error("`data` must now be an object containing the params")
end
if not data.ok_to_destructively_modify then
data = m_table.shallowCopy(data)
data.labels = m_table.deepCopy(data.labels)
data.ok_to_destructively_modify = true
end
local labels = data.labels
if not labels[1] then
error("You must specify at least one label.")
end
-- Show the labels
local omit_preComma = false
local omit_postComma = true
local omit_preSpace = false
local omit_postSpace = true
for _, label in ipairs(labels) do
omit_preComma = omit_postComma
omit_preSpace = omit_postSpace
local raw_text_omit_before = label.raw_text == "middle" or label.raw_text == "end"
local raw_text_omit_after = label.raw_text == "middle" or label.raw_text == "begin"
label.omit_comma = omit_preComma or (label.data and label.data.omit_preComma) or raw_text_omit_before
omit_postComma = (label.data and label.data.omit_postComma) or raw_text_omit_after
label.omit_space = omit_preSpace or (label.data and label.data.omit_preSpace) or raw_text_omit_before
omit_postSpace = (label.data and label.data.omit_postSpace) or raw_text_omit_after
end
if data.lang then
local lang_functions_module = export.lang_specific_data_modules_prefix .. data.lang:getCode() .. "/functions"
local m_lang_functions = require(load_module).safe_require(lang_functions_module)
if m_lang_functions and m_lang_functions.postprocess_handlers then
for _, handler in ipairs(m_lang_functions.postprocess_handlers) do
handler(data)
end
end
end
local function wrap_css(txt, suffix)
if data.raw then
return txt
end
return ("<span class=\"ib-%s label-%s\">%s</span>"):format(suffix, suffix, txt)
end
local categories = nil
local formatted_categories = split_output and split_output ~= "raw" and {} or nil
for i, labelinfo in ipairs(labels) do
local label
-- Need to check for 'not raw_text' here because blank labels may legitimately occur as raw text if a double
-- angle bracket spec occurs at the beginning of a label. In this case we've already taken into account the
-- context and don't want to leave out a preceding comma and space e.g. in a case like
-- {{lb|en|rare|<<dialect>> or <<eye dialect>>}}. FIXME: We should reconsider whether we need this special case
-- at all.
if labelinfo.label == "" and not labelinfo.raw_text then
label = ""
else
label = (labelinfo.omit_comma and "" or wrap_css(",", "comma")) ..
(labelinfo.omit_space and "" or " ") ..
labelinfo.label
end
if split_output then
labels[i] = label
if split_output == "raw" then
if labelinfo.categories and labelinfo.categories[1] then
if categories then
m_table.extend(categories, labelinfo.categories)
else
categories = labelinfo.categories
end
end
elseif labelinfo.formatted_categories then
insert(formatted_categories, labelinfo.formatted_categories)
end
else
labels[i] = label .. (labelinfo.formatted_categories or "")
end
end
local function wrap_open_close(val)
if val then
return wrap_css(val, "brac")
else
return ""
end
end
local concatenated_labels = table.concat(labels, "")
if not data.no_ib_content then
concatenated_labels = wrap_css(concatenated_labels, "content")
end
local ret_labels = wrap_open_close(data.open) .. concatenated_labels .. wrap_open_close(data.close)
if split_output == "raw" then
return ret_labels, categories
elseif split_output then
return ret_labels, concat(formatted_categories)
else
return ret_labels
end
end
--[==[
Format one or more labels for display and categorization. This provides the implementation of the
{{tl|label}}/{{tl|lb}}, {{tl|term label}}/{{tl|tlb}} and {{tl|accent}}/{{tl|a}} templates, and can also be called from a
module. The return value is a string to be inserted into the generated page, including the display and categories. On
input `data` is an object with the following fields:
* `labels`: List of the labels to format.
* `lang`: The language of the labels.
* `mode`: How the label was invoked; see {get_label_info()} for more information.
* `nocat`: If true, don't add the labels to any categories.
* `force_cat`: Force adding categories even in namespaces that normally exclude them (e.g. userspace and discussion
pages).
* `notrack`: Disable all tracking for these labels.
* `sort`: Sort key for categorization.
* `no_track_already_seen`: Don't track already-seen labels. If not specified, already-seen labels are not displayed
again, but still categorize. See the documentation of {get_label_info()}.
* `open`: Open bracket or parenthesis to display before the concatenated labels. If {nil}, defaults to an open
parenthesis. Set to {false} to disable.
* `close`: Close bracket or parenthesis to display after the concatenated labels. If {nil}, defaults to a close
parenthesis. Set to {false} to disable.
* `no_ib_content`: As in `format_processed_labels()`.
* `raw`: As in `format_processed_labels()`. Also suppress wrapping the entire formatted result in a usage label CSS
class (see below).
* `ok_to_destructively_modify`: If set, the `data` structure will be destructively modified in the process of this
function running.
Compared with {format_processed_labels()}, this function has the following differences:
# The labels specified in `labels` are raw labels (i.e. strings) rather than formatted objects.
# The open and close brackets default to parentheses ("round brackets") rather than not being displayed by default.
# Tracking of already-seen labels is enabled unless explicitly turned off using `no_track_already_seen`.
# The entire formatted result is wrapped in a {"usage-label-<var>type</var>"} CSS class (depending on the value of
`mode`), unless `raw` is given.
]==]
function export.show_labels(data)
if not data.labels then
error("`data` must now be an object containing the params")
end
if not data.ok_to_destructively_modify then
data = m_table.shallowCopy(data)
data.ok_to_destructively_modify = true
end
local labels = data.labels
if not labels[1] then
error("You must specify at least one label.")
end
local mode = validate_mode(data.mode)
if not data.no_track_already_seen then
data.already_seen = {}
end
data.labels = export.process_raw_labels(data)
if data.open == nil then
data.open = "("
end
if data.close == nil then
data.close = ")"
end
local formatted = export.format_processed_labels(data)
if data.raw then
return formatted
else
return "<span class=\"" .. mode_to_outer_class[mode] .. "\">" .. formatted .. "</span>"
end
end
--[==[Helper function for the data modules.]==]
function export.alias(labels, key, aliases)
m_table.alias(labels, key, aliases)
end
--[==[
Split the display form of a label. Returns two values: `link` and `display`. If the display form consists of a
two-part link, `link` is the first part and `display` is the second part. If the display form consists of a
single-part link, `link` and `display` are the same. Otherwise (the display form is not a link or contains an
embedded link), `link` is the same as the passed-in `label` and `display` is nil.
]==]
function export.split_display_form(label)
if not label:find("%[%[") then
return label, nil
end
local link, display = label:match("^%[%[([^%[%]|]+)|([^%[%]|]+)%]%]$")
if link then
return link, display
end
link = label:match("^%[%[([^%[%]|])+%]%]$")
if link then
return link, link
end
return label, nil
end
--[==[
Combine the `link` and `display` parts of the display form of a label as returned by {split_display_form()}.
If `display` is nil, `link` is returned directly. Otherwise, a one-part or two-part link is constructed
depending on whether `link` and `display` are the same. (As a special case, if both consist of a blank string,
the return value is a blank string rather than a malformed link.)
]==]
function export.combine_display_form_parts(link, display)
if not display then
return link
end
if link == display then
if link == "" then
return ""
else
return ("[[%s]]"):format(link)
end
end
return ("[[%s|%s]]"):format(link, display)
end
--[==[Used to finalize the data into the form that is actually returned.]==]
function export.finalize_data(labels)
local shallow_copy = m_table.shallowCopy
local aliases = {}
for label, data in pairs(labels) do
if type(data) == "table" then
if data.aliases then
for _, alias in ipairs(data.aliases) do
aliases[alias] = label
end
data.aliases = nil
end
if data.deprecated_aliases then
local data2 = shallow_copy(data)
data2.deprecated = true
data2.canonical = label
for _, alias in ipairs(data2.deprecated_aliases) do
aliases[alias] = data2
end
data.deprecated_aliases = nil
data2.deprecated_aliases = nil
end
end
end
for label, data in pairs(aliases) do
labels[label] = data
end
return labels
end
return export
6jutvpno8pvi5l9ogfblrn5kldpqaqr
alpukat
0
219750
1349899
1279315
2026-04-15T06:36:04Z
Alfiyah Rizzy Afdiquni
40651
1349899
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id}}
{{-n-|id}}
# buah alpukat
#* {{RQ:Mustikarasa
|page=1144
|text=Kalau adonan ini sudah dingin baru dimasukkan '''adpokat''' lalu diputar didalam putaran es sampai keras.
|norm=Kalau adonan ini sudah dingin baru dimasukkan '''alpukat''' lalu diputar didalam putaran es sampai keras.
|url=https://id.wikisource.org/wiki/Halaman:Mustikarasa.pdf/1152#:~:text=Kalau%20adonan%20ini%20sudah%20dingin%20baru%20dimasukkan%20adpokat%20lalu%20diputar%20didalam%20putaran%20es%20sampai%20keras.
}}
{{suara|id|LL-Q9240 (ind)-Dvnfit-alpukat.wav}}
'''alpokat'''
# {{ragam dari|id|avokad}}
ojg3ep27kh1o1lthuot09zwdcduvw7q
tempat wisata
0
232919
1349888
1271465
2026-04-14T15:59:14Z
InternetArchiveBot
28800
Rescuing 1 sources and tagging 0 as dead.) #IABot (v2.0.9.5
1349888
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id}}
{{-n-|id}}
#Pengertian tempat wisata adalah sebuah tempat yang digunakan untuk melakukan kegiatan wisata. Tempat wisata dapat berupa tempat wisata dapat berupa tempat wisata alam dan bangunan. Tempat wisata alam dapat berupa pantai, gunung, dan lain-lain, sedangkan tempat wisata bangunan dapat berupa peninggalan sejarah, museum, dan lain-lain. Sedangkan menurut pemerintah, tempat wisata adalah tempat-tempat yang mempunyai nilai budaya.
{{-terjemahan-}}
{{t-atas}}
{{t-bawah}}
{{-bacaan-}}
* {{R:KBBI Daring}}
{{rfv|id|impor dari KBBI}}
[https://web.archive.org/web/20220819133409/https://tempatwisata.id/ tempatwisata.id]
c8w4uoqvn38ut7vxwqg1qojs6xbuzeu
Wikikamus:Warung Kopi/Pesan global/2019
4
243300
1349808
1006576
2026-04-14T12:00:58Z
CommonsDelinker
398
Replacing Logo_for_the_beta_feature_FileExporter.svg with [[File:Logo_for_FileExporter.svg]] (by [[:c:User:CommonsDelinker|CommonsDelinker]] because: [[:c:COM:FR|File renamed]]: [[:c:COM:FR#FR3|Criterion 3]] (obvious error) · Has been a default feature si
1349808
wikitext
text/x-wiki
== FileExporter beta feature ==
<div class="plainlinks mw-content-ltr" lang="en" dir="ltr">
[[File:Logo for FileExporter.svg|thumb|Coming soon: the beta feature [[m:WMDE_Technical_Wishes/Move_files_to_Commons|FileExporter]]]]
A new beta feature will soon be released on all wikis: The [[m:WMDE_Technical_Wishes/Move_files_to_Commons|FileExporter]]. It allows exports of files from a local wiki to Wikimedia Commons, including their file history and page history. Which files can be exported is defined by each wiki's community: '''Please check your wiki's [[m:WMDE_Technical_Wishes/Move_files_to_Commons/Configuration file documentation|configuration file]]''' if you want to use this feature.
The FileExporter has already been a beta feature on [https://www.mediawiki.org mediawiki.org], [https://meta.wikimedia.org meta.wikimedia], deWP, faWP, arWP, koWP and on [https://wikisource.org wikisource.org]. After some functionality was added, it's now becoming a beta feature on all wikis. Deployment is planned for January 16. More information can be found [[m:WMDE_Technical_Wishes/Move_files_to_Commons|on the project page]].
As always, feedback is highly appreciated. If you want to test the FileExporter, please activate it in your [[Special:Preferences#mw-prefsection-betafeatures|user preferences]]. The best place for feedback is the [[mw:Help_talk:Extension:FileImporter|central talk page]]. Thank you from Wikimedia Deutschland's [[m:WMDE Technical Wishes|Technical Wishes project]].
</div> [[User:Johanna Strodt (WMDE)|Johanna Strodt (WMDE)]] 14 Januari 2019 09.41 (UTC)
<!-- Pesan dikirim oleh Pengguna:Johanna Strodt (WMDE)@metawiki dengan menggunakan daftar di https://meta.wikimedia.org/w/index.php?title=WMDE_Technical_Wishes/Technical_Wishes_News_list_all_village_pumps&oldid=18782700 -->
== No editing for 30 minutes on 17 January ==
<div lang="en" dir="ltr" class="mw-content-ltr">You will '''not be able to edit''' the wikis for up to 30 minutes on '''[https://www.timeanddate.com/worldclock/fixedtime.html?iso=20190117T07 17 January 07:00 UTC]'''. This is because of a database problem that has to be fixed immediately. You can still read the wikis. Some wikis are not affected. They don't get this message. You can see which wikis are '''not''' affected [[:m:User:Johan (WMF)/201901ReadOnlyPage|on this page]]. Most wikis are affected. The time you can not edit might be shorter than 30 minutes. /[[User:Johan (WMF)|Johan (WMF)]]</div>
[[Pengguna:MediaWiki message delivery|MediaWiki message delivery]] ([[Pembicaraan Pengguna:MediaWiki message delivery|bicara]]) 16 Januari 2019 18.44 (UTC)
<!-- Pesan dikirim oleh Pengguna:Johan (WMF)@metawiki dengan menggunakan daftar di https://meta.wikimedia.org/w/index.php?title=User:Johan_(WMF)/201901ReadOnly/Targets3&oldid=18789231 -->
== Talk to us about talking ==
<div class="plainlinks mw-content-ltr" lang="en" dir="ltr">
[[File:OOjs_UI_icon_speechBubbles-rtl.svg|alt="icon depicting two speech Bubbles"|frameless|right|120px]]
The Wikimedia Foundation is planning a [[mw:Talk pages consultation 2019|global consultation about communication]]. The goal is to bring Wikimedians and wiki-minded people together to improve tools for communication.
We want all contributors to be able to talk to each other on the wikis, whatever their experience, their skills or their devices.
We are looking for input from as many different parts of the Wikimedia community as possible. It will come from multiple projects, in multiple languages, and with multiple perspectives.
We are currently planning the consultation. We need your help.
'''We need volunteers to help talk to their communities or user groups.'''
You can help by hosting a discussion at your wiki. Here's what to do:
# First, [[mw:Talk pages consultation 2019/Participant group sign-up|sign up your group here.]]
# Next, create a page (or a section on a Village pump, or an e-mail thread – whatever is natural for your group) to collect information from other people in your group. This is not a vote or decision-making discussion: we are just collecting feedback.
# Then ask people what they think about communication processes. We want to hear stories and other information about how people communicate with each other on and off wiki. Please consider asking these five questions:
## When you want to discuss a topic with your community, what tools work for you, and what problems block you?
## What about talk pages works for newcomers, and what blocks them?
## What do others struggle with in your community about talk pages?
## What do you wish you could do on talk pages, but can't due to the technical limitations?
## What are the important aspects of a "wiki discussion"?
# Finally, please go to [[mw:Talk:Talk pages consultation 2019|Talk pages consultation 2019 on Mediawiki.org]] and report what you learned from your group. Please include links if the discussion is available to the public.
'''You can also help build the list of the many different ways people talk to each other.'''
Not all groups active on wikis or around wikis use the same way to discuss things: it can happen on wiki, on social networks, through external tools... Tell us [[mw:Talk pages consultation 2019/Tools in use|how your group communicates]].
You can read more about [[mw:Talk pages consultation 2019|the overall process]] on mediawiki.org. If you have questions or ideas, you can [[mw:Talk:Talk pages consultation 2019|leave feedback about the consultation process]] in the language you prefer.
Thank you! We're looking forward to talking with you.
</div> [[user:Trizek (WMF)|Trizek (WMF)]] 21 Februari 2019 15.01 (UTC)
<!-- Pesan dikirim oleh Pengguna:Trizek (WMF)@metawiki dengan menggunakan daftar di https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=18639017 -->
== Read-only mode for up to 30 minutes on 11 April ==
<div class="plainlinks mw-content-ltr" lang="en" dir="ltr"><div class="plainlinks">
<div lang="en" dir="ltr" class="mw-content-ltr">You will '''not be able to edit''' most Wikimedia wikis for up to 30 minutes on '''[https://www.timeanddate.com/worldclock/fixedtime.html?iso=20190411T05 11 April 05:00 UTC]'''. This is because of a hardware problem. You can still read the wikis. You [[phab:T220080|can see which wikis are affected]]. The time you can not edit might be shorter than 30 minutes. /[[User:Johan (WMF)|Johan (WMF)]]</div></div></div> 8 April 2019 10.56 (UTC)
<!-- Pesan dikirim oleh Pengguna:Johan (WMF)@metawiki dengan menggunakan daftar di https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=18979889 -->
== Wikimedia Foundation Medium-Term Plan feedback request ==
{{int:please-translate}}
<div lang="en" dir="ltr" class="mw-content-ltr">The Wikimedia Foundation has published a [[m:Special:MyLanguage/Wikimedia_Foundation_Medium-term_plan_2019|Medium-Term Plan proposal]] covering the next 3–5 years. We want your feedback! Please leave all comments and questions, in any language, on [[m:Talk:Wikimedia_Foundation_Medium-term_plan_2019|the talk page]], by April 20. {{Int:Feedback-thanks-title}} [[m:User:Quiddity (WMF)|Quiddity (WMF)]] ([[m:User talk:Quiddity (WMF)|talk]]) 12 April 2019 17.35 (UTC)</div>
<!-- Pesan dikirim oleh Pengguna:Quiddity (WMF)@metawiki dengan menggunakan daftar di https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=18998727 -->
== Update on the consultation about office actions ==
Hello all,
Last month, the Wikimedia Foundation's Trust & Safety team [[:en:Wikipedia:Village_pump_(policy)/Archive_152#Announcement_of_forthcoming_temporary_and_partial_ban_tool_consultation|announced]] a future consultation about partial and/or temporary [[m:Special:MyLanguage/office actions|office actions]]. We want to let you know that the '''draft version''' of this consultation has now been [[:m:Office_actions/Community_consultation_on_partial_and_temporary_office_actions/draft|posted on Meta]].
This is a '''draft'''. It is not intended to be the consultation itself, which will be posted on Meta likely in early September. Please do not treat this draft as a consultation. Instead, we ask your assistance in forming the final language for the consultation.
For that end, we would like your input over the next couple of weeks about what questions the consultation should ask about partial and temporary Foundation office action bans and how it should be formatted. '''[[:m:Talk:Office_actions/Community_consultation_on_partial_and_temporary_office_actions/draft|Please post it on the draft talk page]]'''. Our goal is to provide space for the community to discuss all the aspects of these office actions that need to be discussed, and we want to ensure with your feedback that the consultation is presented in the best way to encourage frank and constructive conversation.
Please visit [[:m:Office_actions/Community_consultation_on_partial_and_temporary_office_actions/draft|the consultation draft on Meta-wiki]] and leave your comments on the draft’s talk page about what the consultation should look like and what questions it should ask.
Thank you for your input! -- The [[m:Special:MyLanguage/Trust and Safety|Trust & Safety team]] 16 Agustus 2019 08.03 (UTC)
<!-- Pesan dikirim oleh Pengguna:Trizek (WMF)@metawiki dengan menggunakan daftar di https://meta.wikimedia.org/w/index.php?title=Distribution_list/Non-Technical_Village_Pumps_distribution_list&oldid=19175143 -->
== New tools and IP masking ==
<div class="plainlinks mw-content-ltr" lang="en" dir="ltr"><div class="plainlinks">
<div lang="en" dir="ltr" class="mw-content-ltr">
Hey everyone,
The Wikimedia Foundation wants to work on two things that affect how we patrol changes and handle vandalism and harassment. We want to make the tools that are used to handle bad edits better. We also want to get better privacy for unregistered users so their IP addresses are no longer shown to everyone in the world. We would not hide IP addresses until we have better tools for patrolling.
We have an idea of what tools ''could'' be working better and how a more limited access to IP addresses would change things, but we need to hear from more wikis. You can read more about the project [[m:IP Editing: Privacy Enhancement and Abuse Mitigation|on Meta]] and [[m:Talk:IP Editing: Privacy Enhancement and Abuse Mitigation|post comments and feedback]]. Now is when we need to hear from you to be able to give you better tools to handle vandalism, spam and harassment.
You can post in your language if you can't write in English.
[[User:Johan (WMF)|Johan (WMF)]]</div></div></div> 21 Agustus 2019 14.19 (UTC)
<!-- Pesan dikirim oleh Pengguna:Johan (WMF)@metawiki dengan menggunakan daftar di https://meta.wikimedia.org/w/index.php?title=User:Johan_(WMF)/Tools_and_IP_message/Distribution&oldid=19315232 -->
== The consultation on partial and temporary Foundation bans just started ==
<div class="plainlinks mw-content-ltr" lang="en" dir="ltr">
<div class="plainlinks">
Hello,
In a [[:en:Wikipedia:Community_response_to_the_Wikimedia_Foundation%27s_ban_of_Fram/Official_statements#Board_statement|recent statement]], the Wikimedia Foundation Board of Trustees [[:en:Wikipedia:Community_response_to_the_Wikimedia_Foundation%27s_ban_of_Fram/Official_statements#Board_statement|requested that staff hold a consultation]] to "re-evaluat[e] or add community input to the two new office action policy tools (temporary and partial Foundation bans)".
Accordingly, the Foundation's Trust & Safety team invites all Wikimedians [[:m:Office actions/Community consultation on partial and temporary office actions/09 2019|to join this consultation and give their feedback]] from 30 September to 30 October.
How can you help?
* Suggest how partial and temporary Foundation bans should be used, if they should (eg: On all projects, or only on a subset);
* Give ideas about how partial and temporary Foundation bans should ideally implemented, if they should be; and/or
* Propose changes to the existing Office Actions policy on partial and temporary bans.
We offer our thanks in advance for your contributions, and we hope to get as much input as possible from community members during this consultation!
</div>
</div>-- [[user:Kbrown (WMF)|Kbrown (WMF)]] 30 September 2019 17.14 (UTC)
<!-- Pesan dikirim oleh Pengguna:Trizek (WMF)@metawiki dengan menggunakan daftar di https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=19302497 -->
== Feedback wanted on Desktop Improvements project ==
<div class="plainlinks mw-content-ltr" lang="en" dir="ltr">
{{Int:Please-translate}}
{{int:Hello}}. The Readers Web team at the WMF will work on some [[mw:Special:MyLanguage/Reading/Web/Desktop Improvements|improvements to the desktop interface]] over the next couple of years. The goal is to increase usability without removing any functionality. We have been inspired by changes made by volunteers, but that currently only exist as local gadgets and user scripts, prototypes, and volunteer-led skins. We would like to begin the process of bringing some of these changes into the default experience on all Wikimedia projects.
We are currently in the research stage of this project and are looking for ideas for improvements, as well as feedback on our current ideas and mockups. So far, we have performed interviews with community members at Wikimania. We have gathered lists of previous volunteer and WMF work in this area. We are examining possible technical approaches for such changes.
We would like individual feedback on the following:
* Identifying focus areas for the project we have not yet discovered
* Expanding the list of existing gadgets and user scripts that are related to providing a better desktop experience. If you can think of some of these from your wiki, please let us know
* Feedback on the ideas and mockups we have collected so far
We would also like to gather a list of wikis that would be interested in being test wikis for this project - these wikis would be the first to receive the updates once we’re ready to start building.
When giving feedback, please consider the following goals of the project:
* Make it easier for readers to focus on the content
* Provide easier access to everyday actions (e.g. search, language switching, editing)
* Put things in logical and useful places
* Increase consistency in the interface with other platforms - mobile web and the apps
* Eliminate clutter
* Plan for future growth
As well as the following constraints:
* Not touching the content - no work will be done in terms of styling templates or to the structure of page contents themselves
* Not removing any functionality - things might move around, but all navigational items and other functionality currently available by default will remain
* No drastic changes to the layout - we're taking an evolutionary approach to the changes and want the site to continue feeling familiar to readers and editors
Please give all feedback (in any language) at [[mw:Talk:Reading/Web/Desktop Improvements|mw:Talk:Reading/Web/Desktop Improvements]]
After this round of feedback, we plan on building a prototype of suggested changes based on the feedback we receive. You’ll hear from us again asking for feedback on this prototype.
{{Int:Feedback-thanks-title}} [[mw:User:Quiddity (WMF)|Quiddity (WMF)]] ([[mw:User talk:Quiddity (WMF)|talk]])
</div> 16 Oktober 2019 07.15 (UTC)
<!-- Pesan dikirim oleh Pengguna:Quiddity (WMF)@metawiki dengan menggunakan daftar di https://meta.wikimedia.org/w/index.php?title=User:Quiddity_(WMF)/Global_message_delivery_split_2&oldid=19462801 -->
== Community Wishlist 2020 ==
[[File:Magic Wand Icon 229981 Color Flipped.svg|right|48px]]
<div class="plainlinks mw-content-ltr" lang="id" dir="ltr">
'''[[m:Special:MyLanguage/Community Wishlist Survey 2020|Survei Harapan Komunitas 2020]]''' telah dibuka! Survei ini adalah proses dimana komunitas akan memutuskan apa yang tim [[m:Community Tech|Teknis Komunitas]] harus kerjakan pada tahun depan. Kami mendorong semua orang untuk mengirimkan proposal hingga batas waktu berakhir pada '''{{#time:j xg|2019-11-11|{{PAGELANGUAGE}}}}''', atau mengomentari proposal lain untuk membantu membuatnya menjadi lebih baik.
'''Tahun ini, kami secara eksklusif berfokus pada proyek-proyek kecil (seperti Wikibooks, Wiktionary, Wikiquote, Wikisource, Wikiversity, Wikispecies, Wikivoyage, dan Wikinews).''' Kami ingin membantu proyek-proyek ini dan memberikan perbaikan yang signifikan bagi berbagai komunitas. Jika Anda adalah anggota dari salah satu proyek ini, silakan ikuti survei ini! Untuk mengirim proposal, lihat pedoman di [[m:Special:MyLanguage/Community Wishlist Survey 2020#Guidelines|halaman survei]]. Anda dapat menulis proposal dalam bahasa apa pun, dan kami akan menerjemahkannya untuk Anda. Kami tak sabar ingnin melihat proposal Anda! Terima kasih.
</div>
[[:m:user:IFried (WMF)|IFried (WMF)]] 4 November 2019 19.30 (UTC)
<!-- Pesan dikirim oleh Pengguna:Trizek (WMF)@metawiki dengan menggunakan daftar di https://meta.wikimedia.org/w/index.php?title=User:Trizek_(WMF)/sandbox/temp_MassMessage_list&oldid=19523495 -->
n30qjm0fvnf3ugs85o5w4cslkzqqut2
Templat:sinonim dari
10
243877
1349875
1278002
2026-04-14T14:10:32Z
Swarabakti
18192
1349875
wikitext
text/x-wiki
{{ {{#if:{{{lang|}}}|check deprecated lang param usage|no deprecated lang param usage}}|lang={{{lang|}}}|<!--
-->{{#invoke:form of/templates|form_of_t|sinonim dari|withencap=1|conj=or}}<!--
-->}}<!--
--><noinclude>{{dokumentasi}}</noinclude>
nd3y027wotuxmytktj00pfoppm8kn69
Modul:form of/cats
828
244793
1349851
1012061
2026-04-14T13:26:45Z
Swarabakti
18192
perbarui
1349851
Scribunto
text/plain
local cats = {}
--[=[
-- FIXME: Data structure is highly inefficient, as it involves lots of nested tables.
This contains categorization specs for specific languages and for all languages.
The particular categories listed are listed without the preceding canonical
language name, which will automatically be prepended, and the text "<<p>>"
in a category will be replaced with the user-specified part of speech.
The value of an entry in the cats[] table is a list of specifications to apply
to inflections in a specific language (except that the entry for "und" applies
to all languages). Each specification indicates the conditions under which a
given category is applied. Each specification is processed independently; if
multiple specifications apply, all the resulting categories will be added to
the page. (This is equivalent to wrapping the specifications in a
{"multi", ...} clause; see below.)
A specification is one of:
(1) A string:
Always apply that category.
(2) A list {"has", TAG, SPEC} or {"has", TAG, SPEC, ELSESPEC}:
TAG is an inflection tag, and can either be the full form or any
abbreviation; if that tag is present among the user-supplied tags, SPEC is
applied, otherwise ELSESPEC is applied if present. SPEC and ELSESPEC are
specifications just as at the top level; i.e. they can be strings, nested
conditions, etc.
(2) A list {"hasall", TAGS, SPEC} or {"hasall", TAGS, SPEC, ELSESPEC}:
Similar to {"has", ...} but only activates if all of the tags in TAGS
(a list) are present among the user-supplied tags (in any order, and
other tags may be present, including between the tags in TAGS).
(3) A list {"hasany", TAGS, SPEC} or {"hasany", TAGS, SPEC, ELSESPEC}:
Similar to {"has", ...} but activates if any of the tags in TAGS
(a list) are present among the user-supplied tags.
(4) A list {"tags=", TAGS, SPEC} or {"tags=", TAGS, SPEC, ELSESPEC}:
Similar to {"hasall", ...} but activates only if the
user-supplied tags exactly match the tags in TAGS, including
the order. (But, as above, any tag abbreviation can be given
in TAGS, and will match any equivalent abbreviation or full
form.)
(5) A list {"p=", VALUE, SPEC} or {"p=", VALUE, SPEC, ELSESPEC}:
Similar to {"has", ...} but activates if the value supplied for the p=
or POS= parameters is the specified value (which can be either the full
form or any abbreviation).
(6) A list {"pany", VALUES, SPEC} or {"pany", VALUES, SPEC, ELSESPEC}:
Similar to {"p=", ...} but activates if the value supplied for the p=
or POS= parameters is any of the specified values (which can be either
the full forms or any abbreviation).
(7) A list {"pexists", SPEC} or {"pexists", SPEC, ELSESPEC}:
Activates if any value was specified for the p= or POS= parameters.
(8) A list {"cond", SPEC1, SPEC2, ...}:
If SPEC1 applies, it will be applied; otherwise, if SPEC2 applies, it
will be applied; etc. This stops processing specifications as soon as it
finds one that applies.
(9) A list {"multi", SPEC1, SPEC2, ...}:
If SPEC1 applies, it will be applied; in addition, if SPEC2 applies, it
will also be applied; etc. Unlike {"cond", ...}, this continues
processing specifications even if a previous one has applied.
(10) A list {"not", CONDITION, SPEC} or {"not", CONDITION, SPEC, ELSESPEC}:
If CONDITION does *NOT* apply, SPEC will be applied, otherwise ELSESPEC
will be applied if present. CONDITION is one of:
-- {"has", TAG}
-- {"hasall", TAGS}
-- {"hasany", TAGS}
-- {"tags=", TAGS},
-- {"p=", VALUE}
-- {"pany", VALUES}
-- {"pexists"}
-- {"not", CONDITION}
-- {"and", CONDITION1, CONDITION2}
-- {"or", CONDITION1, CONDITION2}
-- {"call", FUNCTION} where FUNCTION is a string naming a function listed
in cat_functions in [[Module:form of/functions]], which is passed a
single argument (see (10) below) and should return true or false.
That is, conditions are similar to if-else SPECS but without any
specifications given.
(11) A list {"and", CONDITION1, CONDITION2, SPEC} or {"and", CONDITION1, CONDITION2, SPEC, ELSESPEC}:
If CONDITION1 and CONDITION2 both apply, SPEC will be applied, otherwise
ELSESPEC will be applied if present. CONDITION is as above for "not".
(12) A list {"or", CONDITION1, CONDITION2, SPEC} or {"or", CONDITION1, CONDITION2, SPEC, ELSESPEC}:
If either CONDITION1 or CONDITION2 apply, SPEC will be applied, otherwise
ELSESPEC will be applied if present. CONDITION is as above for "not".
(13) A list {"call", FUNCTION}:
FUNCTION is the name of a function listed in cat_functions in
[[Module:form of/functions]], which is passed a single argument, a table
containing the parameters given to the template call, and which should
return a specification (a string naming a category, a list of any of the
formats described above). In the table, the following keys are present:
"lang": the structure describing the language (usually the first
parameter);
"tags": the list of tags (canonicalized to their full forms);
"term": the term to link to (will be missing if no term is given);
"alt": the display form of the term (will be missing if no display form
is given);
"t": the gloss of the term (will be missing if no gloss is given);
In addition, any other parameters specified will be located under a key
corresponding to the parameter name.
As a simple example, consider this:
cats["et"] = {
{"has", "part", "participles"},
}
This says that, for language code "et" (Estonian), if the "part" tag is
present (or if "participle" is present, which is the equivalent full form),
the page will be categorized into [[:Category:Estonian participles]].
Another example:
cats["lt"] = {
{"p=", "part",
{"has", "pron",
"pronominal dalyvis participle forms",
"dalyvis participle forms",
}
}
}
This says that, for language code "lt" (Lithuanian), if the "p=" parameter
was given with the value "part" (or "participle", the equivalent full form),
then if the "pron" tag is present (or the equivalent full form "pronominal"),
categorize into [[:Category:Lithuanian pronominal dalyvis participle forms]],
else categorize into [["Category:Lithuanian dalyvis participle forms]]. Note
that, if p= isn't specified, or has a value other than "part" or
"participle", no categories will be added to the page, because there is no
"else" specification associated with the "p=" specification.
--]=]
-- First, the language-independent categories; be careful here not to
-- overcategorize. In practice we achieve this using tags=; we should
-- probably be smarter. But we don't e.g. want to categorize a page
-- into "present participles" if it has the tags f|s|pres|part, which
-- is a participle form rather than a participle itself.
--
-- We include the categorization here rather than in e.g. {{augmentative of}}
-- because we want the categorization to also apply when e.g. an augmentative
-- is specified using {{inflection of|LANG|...|aug}} rather than
-- {{augmentative of|LANG}}.
--[==[Disable all of these for now as they are somewhat controversial.
cats["und"] = {
{"tags=", {"aug"}, "augmentative <<p=n>>s"},
{"tags=", {"dim"}, "diminutive <<p=n>>s"},
{"or", {"tags=", {"end"}},
{"or", {"tags=", {"end", "form"}}, {"tags=", {"end", "dim"}}},
"endearing <<p=n>>s"},
{"tags=", {"pej"}, "derogatory terms"},
{"tags=", {"comd"}, "comparative <<p=a>>s"},
{"tags=", {"supd"}, "superlative <<p=a>>s"},
{"tags=", {"equd"}, "<<p=a>> equative forms"},
{"tags=", {"caus"}, "causative <<p=v>>s"},
{"tags=", {"freq"}, "frequentative <<p=v>>s"},
{"tags=", {"iter"}, "iterative <<p=v>>s"},
{"tags=", {"refl"}, "reflexive <<p=v>>s"},
{"or", {"tags=", {"impfv"}}, {"tags=", {"impfv", "form"}}, "imperfective <<p=v>>s"},
{"or", {"tags=", {"pfv"}}, {"tags=", {"pfv", "form"}}, "perfective <<p=v>>s"},
{"tags=", {"nomzn"}, "nominalized adjectives"},
{"tags=", {"ger"}, "gerunds"},
{"tags=", {"vnoun"}, "verbal nouns"},
{"tags=", {"pass"}, "<<p=v>> passive forms"},
-- [[User:Rua]] objects to these categories
{"tags=", {"past", "act", "part"}, "past active participles"},
{"tags=", {"past", "pass", "part"}, "past passive participles"},
{"tags=", {"past", "part"}, "past participles"},
{"tags=", {"pres", "act", "part"}, "present active participles"},
{"tags=", {"pres", "pass", "part"}, "present passive participles"},
{"tags=", {"pres", "part"}, "present participles"},
{"tags=", {"perf", "part"}, "perfect participles"},
}]==]
cats["az"] = {
{"hasall", {"subject", "past", "participle"}, "subject past participles"},
{"hasall", {"broken", "plural"}, "broken noun plural forms"},
}
cats["bg"] = {
{"cond",
{"hasall", {"adv", "part"}, "adverbial participles"},
{"has", "part",
-- If this is a lemma participle form, categorize appropriately
-- for the type of participle, otherwise put into
-- "participle forms". We determine a lemma if all of the
-- following apply:
-- (1) either is masculine, or no gender listed; and
-- (2) either is indefinite, or no definiteness listed; and
-- (3) not listed as either subjective or objective form.
{"and",
{"or", {"has", "m"}, {"not", {"hasany", {"f", "n", "p"}}}},
{"and",
{"or", {"has", "indef"}, {"not", {"has", "def"}}},
{"not", {"hasany", {"sbjv", "objv"}}},
},
{"cond",
{"hasall", {"pres", "act"}, "present active participles"},
{"hasall", {"past", "pass"}, "past passive participles"},
{"hasall", {"past", "act", "aor"}, "past active aorist participles"},
{"hasall", {"past", "act", "impf"}, "past active imperfect participles"},
},
-- FIXME: "participle forms" probably not necessary,
-- should be handled by headword
"participle forms"
}
}
},
}
cats["br"] = {
{"p=", "n",
{"has", "p", "noun plural forms"}
},
}
cats["ca"] = {
{"has", "part",
{"cond",
-- FIXME, not clear if we need all of these conditions;
-- may partly be handled by headword
{"hasany", {"f", "p"}, "participle forms"},
{"has", "pres", "present participles"},
{"has", "past", "past participles"},
}
},
}
cats["de"] = {
{"hasall", {"pres", "part"}, "present participles"},
{"hasall", {"past", "part"}, "past participles"},
}
cats["el"] = {
{"has", "dat", "dative forms"},
{"cond",
{"hasall", {"1", "s", "past"}, "verb past tense forms"},
{"has", "nonfinite", "verb nonfinite forms"},
},
}
cats["en"] = {
{"cond",
-- The display of these labels and their categorization is controlled by [[Module:labels/data/lang/en]].
-- This label will categorize into [[:Category:English archaic third-person singular forms]].
{"has", "3-th", {labels = {"archaic third singular"}}},
-- This label will categorize into [[:Category:English second-person singular forms]].
{"hasall", {"2-st", "pres"}, {labels = {"archaic second singular present"}}},
-- This label will categorize into [[:Category:English second-person singular past tense forms]].
{"hasall", {"2-st", "past"}, {labels = {"archaic second singular past"}}},
},
-- Add irregular plural categories. The corresponding code is in [[Module:form of/lang-data/en/functions]].
{"tags=", {"p"}, {"call", "en-irregular-plural-categories"}},
}
cats["enm"] = {
{"not", {"hasany", {"sub", "imp"}},
{"multi",
{"hasall", {"1", "s", "pres"}, "first-person singular forms"},
{"hasall", {"2", "s", "pres"}, "second-person singular forms"},
{"hasall", {"3", "s", "pres"}, "third-person singular forms"},
{"hasall", {"1//3", "s", "past"}, "first/third-person singular past forms"},
{"hasall", {"2", "s", "past"}, "second-person singular past forms"},
{"hasall", {"p", "pres"}, "plural forms"},
},
},
{"hasall", {"p", "pres", "ind"}, "plural forms"},
{"hasall", {"p", "pres", "sub"}, "plural subjunctive forms"},
{"hasall", {"p", "past"}, "plural past forms"},
{"hasall", {"s", "pres", "sub"}, "singular subjunctive forms"},
{"hasall", {"s", "past", "sub"}, "singular past subjunctive forms"},
{"hasall", {"s", "imp"}, "singular imperative forms"},
{"hasall", {"p", "imp"}, "plural imperative forms"},
{"hasall", {"pres", "part"}, "present participles"},
{"hasall", {"past", "part"}, "past participles"},
}
cats["et"] = {
{"has", "part", "participles"},
}
cats["fi"] = {
{"has", "inf",
{"cond",
{"hasall", {"long", "first"}, "long first infinitives"},
{"hasall", {"second", "act"}, "active second infinitives"},
{"hasall", {"second", "pass"}, "passive second infinitives"},
{"hasall", {"third", "act"}, "active third infinitives"},
{"hasall", {"third", "pass"}, "passive third infinitives"},
{"has", "fifth", "fifth infinitives"},
}
},
}
cats["got"] = {
{"hasall", {"pres", "part"}, "present participles"},
{"hasall", {"past", "part"}, "past participles"},
}
cats["hu"] = {
{"hasall", {"past", "part"}, "past participles"},
{"hasall", {"pres", "part"}, "present participles"},
{"hasall", {"fut", "part"}, "future participles"},
{"hasall", {"adv", "part"}, "adverbial participles"},
{"hasall", {"verbal", "part"}, "verbal participles"},
}
cats["ja"] = {
{"p=", "v",
{"multi",
{"has", "past", "past tense verb forms"},
{"has", "conj", "conjunctive verb forms"},
}
},
}
cats["kmr"] = {
{"hasall", {"pres", "part"}, "present participles"},
{"hasall", {"past", "part"}, "past participles"},
}
cats["liv"] = {
{"has", "part",
{"cond",
{"hasall", {"pres", "act"}, "present active participles"},
{"hasall", {"pres", "pass"}, "present passive participles"},
{"hasall", {"past", "act"}, "past active participles"},
{"hasall", {"past", "pass"}, "past passive participles"},
},
},
{"cond",
{"has", "ger", "gerunds"},
{"hasall", {"sup", "abe"}, "supine abessives"},
{"has", "sup", "supines"},
{"has", "deb", "debitives"},
},
}
cats["lt"] = {
{"has", "part",
{"cond",
-- Three types of adverbial participles.
{"has", "budinys", "būdinys participles"},
{"has", "padalyvis", "padalyvis participles"},
{"has", "pusdalyvis", "pusdalyvis participles"},
-- If it's a non-adverbial participle, it's a dalyvis = regular
-- adjectival participle. It's a participle per se if it has
-- no case, number or gender listed.
{"not", {"hasany", {
"nom", "gen", "dat", "acc", "ins", "loc", "voc",
"m", "f", "s", "p"
}}, "dalyvis participles"},
}
},
{"p=", "a",
{"has", "pron",
{"cond",
{"has", "comd", "comparative pronominal adjective forms"},
{"has", "supd", "superlative pronominal adjective forms"},
},
{"cond",
{"has", "comd", "comparative adjective forms"},
{"has", "supd", "superlative adjective forms"},
},
}
},
}
cats["lv"] = {
{"has", "neg", "negative verb forms"},
{"has", "comd", "comparative adjectives"},
{"has", "supd", "superlative adjectives"},
{"has", "part",
{"cond",
{"hasall", {"pres", "act"}, "present active participles"},
{"hasall", {"pres", "pass"}, "present passive participles"},
{"hasall", {"past", "act"}, "past active participles"},
{"hasall", {"past", "pass"}, "past passive participles"},
},
},
}
cats["mk"] = {
{"has", "vnoun",
{"multi", "verbal nouns", "verb forms"},
},
{"has", "part",
{"multi",
"participles",
"verb forms",
{"cond",
{"hasall", {"adj", "part"}, "adjectival participles"},
{"hasall", {"adv", "part"}, "adverbial participles"},
{"hasall", {"perf", "part"}, "perfect participles"},
{"hasall", {"aor", "act", "part"}, "aorist l-participles"},
{"hasall", {"impf", "act", "part"}, "imperfect l-participles"},
},
}
},
{"has", "lptcp",
{"multi",
{"has", "aor", "aorist l-participles"},
{"has", "impf", "imperfect l-participles"},
{"hasall", {"m", "s"}, "participles", "participle forms"},
},
},
{"hasall", {"col", "pl"}, "collective plurals"},
}
cats["nl"] = {
{"tags=", {"pl", "imp"}, {labels = {"plural imperative"}}},
{"has", "sub", {labels = {"subjunctive"}}},
-- Depending on the part of speech, a specific case-form category is added, or if no
-- recognized part of speech is present, the generic case-form category is used. The
-- label "archaic" will also be added, for which see [[Module:labels/data/lang/nl]].
{"hasany", {"acc", "dat", "gen"},
{"multi",
{labels = {"archaic case form"}},
{"cond",
{"p=", "n", "noun case forms"},
{"p=", "a", "adjective case forms"},
-- Only goes to "case forms" umbrella cat if no (/no recognized) POS given
"case forms"
}
}
}
}
cats["pl"] = {
{"has", "short", "short adjective forms"},
}
cats["sa"] = {
{"has", "desid",
{"multi",
"desiderative verbs",
"verbs derived from primitive verbs"
},
},
{"has", "freq",
{"multi",
"frequentative verbs",
"verbs derived from primitive verbs"
},
},
{"has", "root", "root forms"},
}
cats["sv"] = {
{"cond",
-- The display of these labels is controlled by [[Module:labels/data/lang/sv]].
{"hasall", {"past", "sub"}, {labels = {"past subjunctive"}}},
{"hasall", {"pres", "sub"}, {labels = {"present subjunctive"}}},
-- If it just has 'sub' (subjunctive), not labeled as present or past, treat it like the past subjunctive, whose label
-- is "weaker" than the present subjunctive (dated vs. archaic).
{"has", "sub", {labels = {"past subjunctive"}}},
{"hasall", {"1", "p", "pres"}, {labels = {"1st plural present indicative"}}},
{"hasall", {"2", "p", "pres"}, {labels = {"2nd plural present indicative"}}},
{"hasall", {"p", "pres"}, {labels = {"plural present indicative"}}},
{"hasall", {"1", "p", "past"}, {labels = {"1st plural past indicative"}}},
{"hasall", {"2", "p", "past"}, {labels = {"2nd plural past indicative"}}},
{"hasall", {"p", "past"}, {labels = {"plural past indicative"}}},
{"hasall", {"1", "p", "imp"}, {labels = {"1st plural imperative"}}},
{"hasall", {"p", "imp"}, {labels = {"2nd plural imperative"}}},
},
}
cats["uk"] = {
{"has", "part",
{"multi",
"participles",
"verb forms",
{"cond",
{"hasall", {"pres", "act"}, "present active participles"},
{"hasall", {"pres", "pass"}, "present passive participles"},
{"hasall", {"pres", "adv"}, "present adverbial participles"},
{"hasall", {"past", "act"}, "past active participles"},
{"hasall", {"past", "pass"}, "past passive participles"},
{"hasall", {"past", "adv"}, "past adverbial participles"},
},
}
},
}
return cats
cnhxumcr3cajnqtfpficwhzfl7ttnla
Templat:CJKV radicals
10
247915
1349914
1100987
2026-04-15T06:50:05Z
DelintBot
47600
Adding [[mw:Help:Lint errors/night-mode-unaware-background-color|missing CSS color declarations]]
1349914
wikitext
text/x-wiki
<div style="text-align:center">
[[Lampiran:Cangjie Tionghoa|Cangjie]] -
[[Lampiran:Empat sudut Tionghoa|Empat sudut]] -
[[Lampiran:Pinyin Tionghoa|Pinyin]] -
[[Lampiran:Radikal Tionghoa|Radikal]] -
[[Lampiran:Total goresan Tionghoa|Total Goresan]] -
[[Lampiran:Wubi Hua Tionghoa|Wubi Hua]] -
[[Lampiran:Wubi Xing Tionghoa|Wubi Xing]] -
[[Lampiran:Zhuyin Tionghoa|Zhuyin]]
</div>
<div style="text-align:center">
[[Lampiran:Zhuyin Tionghoa/ㄅ|ㄅ]] -
[[Lampiran:Zhuyin Tionghoa/ㄆ|ㄆ]] -
[[Lampiran:Zhuyin Tionghoa/ㄇ|ㄇ]] -
[[Lampiran:Zhuyin Tionghoa/ㄈ|ㄈ]] -
[[Lampiran:Zhuyin Tionghoa/ㄉ|ㄉ]] -
[[Lampiran:Zhuyin Tionghoa/ㄊ|ㄊ]] -
[[Lampiran:Zhuyin Tionghoa/ㄋ|ㄋ]] -
[[Lampiran:Zhuyin Tionghoa/ㄌ|ㄌ]] -
[[Lampiran:Zhuyin Tionghoa/ㄍ|ㄍ]] -
[[Lampiran:Zhuyin Tionghoa/ㄎ|ㄎ]] -
[[Lampiran:Zhuyin Tionghoa/ㄏ|ㄏ]] -
[[Lampiran:Zhuyin Tionghoa/ㄐ|ㄐ]] -
[[Lampiran:Zhuyin Tionghoa/ㄑ|ㄑ]] -
[[Lampiran:Zhuyin Tionghoa/ㄒ|ㄒ]] -
[[Lampiran:Zhuyin Tionghoa/ㄓ|ㄓ]] -
[[Lampiran:Zhuyin Tionghoa/ㄔ|ㄔ]] -
[[Lampiran:Zhuyin Tionghoa/ㄕ|ㄕ]] -
[[Lampiran:Zhuyin Tionghoa/ㄖ|ㄖ]] -
[[Lampiran:Zhuyin Tionghoa/ㄗ|ㄗ]] -
[[Lampiran:Zhuyin Tionghoa/ㄘ|ㄘ]] -
[[Lampiran:Zhuyin Tionghoa/ㄙ|ㄙ]] -
[[Lampiran:Zhuyin Tionghoa/ㄚ|ㄚ]] -
[[Lampiran:Zhuyin Tionghoa/ㄛ|ㄛ]] -
[[Lampiran:Zhuyin Tionghoa/ㄜ|ㄜ]] -
[[Lampiran:Zhuyin Tionghoa/ㄝ|ㄝ]] -
[[Lampiran:Zhuyin Tionghoa/ㄞ|ㄞ]] -
[[Lampiran:Zhuyin Tionghoa/ㄟ|ㄟ]] -
[[Lampiran:Zhuyin Tionghoa/ㄠ|ㄠ]] -
[[Lampiran:Zhuyin Tionghoa/ㄡ|ㄡ]] -
[[Lampiran:Zhuyin Tionghoa/ㄢ|ㄢ]] -
[[Lampiran:Zhuyin Tionghoa/ㄣ|ㄣ]] -
[[Lampiran:Zhuyin Tionghoa/ㄤ|ㄤ]] -
[[Lampiran:Zhuyin Tionghoa/ㄥ|ㄥ]] -
[[Lampiran:Zhuyin Tionghoa/ㄧ|ㄧ]] -
[[Lampiran:Zhuyin Tionghoa/ㄨ|ㄨ]] -
[[Lampiran:Zhuyin Tionghoa/ㄩ|ㄩ]] -
[[Lampiran:Zhuyin Tionghoa/ㄦ|ㄦ]]
</div>
<div class="NavFrame">
<div class="NavHead">[[Lampiran:Chinese_radical|CJKV akar kata]]</div>
<div class="NavContent" align="left">
{| style="border: 0; width: 100%;"
|-
| style="background: #FFFFE0; vertical-align: top; width: 75%;" |
<span style="background:pink">01</span>
[[Lampiran:Radikal Tionghoa/一|一]]
[[Lampiran:Radikal Tionghoa/丨|丨]]
[[Lampiran:Radikal Tionghoa/丶|丶]]
[[Lampiran:Radikal Tionghoa/丿|丿]]
[[Lampiran:Radikal Tionghoa/乙|乙]]
[[Lampiran:Radikal Tionghoa/亅|亅]]
<br><span style="background:yellow">02</span>
[[Lampiran:Radikal Tionghoa/二|二]]
[[Lampiran:Radikal Tionghoa/亠|亠]]
[[Lampiran:Radikal Tionghoa/人|人]]
[[Lampiran:Radikal Tionghoa/儿|儿]]
[[Lampiran:Radikal Tionghoa/入|入]]
[[Lampiran:Radikal Tionghoa/八|八]]
[[Lampiran:Radikal Tionghoa/冂|冂]]
[[Lampiran:Radikal Tionghoa/冖|冖]]
[[Lampiran:Radikal Tionghoa/冫|冫]]
[[Lampiran:Radikal Tionghoa/几|几]]
[[Lampiran:Radikal Tionghoa/凵|凵]]
[[Lampiran:Radikal Tionghoa/刀|刀]]
[[Lampiran:Radikal Tionghoa/力|力]]
[[Lampiran:Radikal Tionghoa/勹|勹]]
[[Lampiran:Radikal Tionghoa/匕|匕]]
[[Lampiran:Radikal Tionghoa/匚|匚]]
[[Lampiran:Radikal Tionghoa/匸|匸]]
[[Lampiran:Radikal Tionghoa/十|十]]
[[Lampiran:Radikal Tionghoa/卜|卜]]
[[Lampiran:Radikal Tionghoa/卩|卩]]
[[Lampiran:Radikal Tionghoa/厂|厂]]
[[Lampiran:Radikal Tionghoa/厶|厶]]
[[Lampiran:Radikal Tionghoa/又|又]]
<br><span style="background:lightblue">03</span>
[[Lampiran:Radikal Tionghoa/口|口]]
[[Lampiran:Radikal Tionghoa/囗|囗]]
[[Lampiran:Radikal Tionghoa/土|土]]
[[Lampiran:Radikal Tionghoa/士|士]]
[[Lampiran:Radikal Tionghoa/夂|夂]]
[[Lampiran:Radikal Tionghoa/夊|夊]]
[[Lampiran:Radikal Tionghoa/夕|夕]]
[[Lampiran:Radikal Tionghoa/大|大]]
[[Lampiran:Radikal Tionghoa/女|女]]
[[Lampiran:Radikal Tionghoa/子|子]]
[[Lampiran:Radikal Tionghoa/宀|宀]]
[[Lampiran:Radikal Tionghoa/寸|寸]]
[[Lampiran:Radikal Tionghoa/小|小]]
[[Lampiran:Radikal Tionghoa/尢|尢]]
[[Lampiran:Radikal Tionghoa/尸|尸]]
[[Lampiran:Radikal Tionghoa/屮|屮]]
[[Lampiran:Radikal Tionghoa/山|山]]
[[Lampiran:Radikal Tionghoa/巛|巛]]
[[Lampiran:Radikal Tionghoa/工|工]]
[[Lampiran:Radikal Tionghoa/己|己]]
[[Lampiran:Radikal Tionghoa/巾|巾]]
[[Lampiran:Radikal Tionghoa/干|干]]
[[Lampiran:Radikal Tionghoa/幺|幺]]
[[Lampiran:Radikal Tionghoa/广|广]]
[[Lampiran:Radikal Tionghoa/廴|廴]]
[[Lampiran:Radikal Tionghoa/廿|廿]]
[[Lampiran:Radikal Tionghoa/弋|弋]]
[[Lampiran:Radikal Tionghoa/弓|弓]]
[[Lampiran:Radikal Tionghoa/彐|彐]]
[[Lampiran:Radikal Tionghoa/彡|彡]]
[[Lampiran:Radikal Tionghoa/彳|彳]]
<br><span style="background:yellow">04</span>
[[Lampiran:Radikal Tionghoa/心|心]]
[[Lampiran:Radikal Tionghoa/戈|戈]]
[[Lampiran:Radikal Tionghoa/戶|戶]]
[[Lampiran:Radikal Tionghoa/手|手]]
[[Lampiran:Radikal Tionghoa/支|支]]
[[Lampiran:Radikal Tionghoa/攴|攴]]
[[Lampiran:Radikal Tionghoa/文|文]]
[[Lampiran:Radikal Tionghoa/斗|斗]]
[[Lampiran:Radikal Tionghoa/斤|斤]]
[[Lampiran:Radikal Tionghoa/方|方]]
[[Lampiran:Radikal Tionghoa/无|无]]
[[Lampiran:Radikal Tionghoa/日|日]]
[[Lampiran:Radikal Tionghoa/曰|曰]]
[[Lampiran:Radikal Tionghoa/月|月]]
[[Lampiran:Radikal Tionghoa/木|木]]
[[Lampiran:Radikal Tionghoa/欠|欠]]
[[Lampiran:Radikal Tionghoa/止|止]]
[[Lampiran:Radikal Tionghoa/歹|歹]]
[[Lampiran:Radikal Tionghoa/殳|殳]]
[[Lampiran:Radikal Tionghoa/毋|毋]]
[[Lampiran:Radikal Tionghoa/比|比]]
[[Lampiran:Radikal Tionghoa/毛|毛]]
[[Lampiran:Radikal Tionghoa/氏|氏]]
[[Lampiran:Radikal Tionghoa/气|气]]
[[Lampiran:Radikal Tionghoa/水|水]]
[[Lampiran:Radikal Tionghoa/火|火]]
[[Lampiran:Radikal Tionghoa/爪|爪]]
[[Lampiran:Radikal Tionghoa/父|父]]
[[Lampiran:Radikal Tionghoa/爻|爻]]
[[Lampiran:Radikal Tionghoa/爿|爿]]
[[Lampiran:Radikal Tionghoa/片|片]]
[[Lampiran:Radikal Tionghoa/牙|牙]]
[[Lampiran:Radikal Tionghoa/牛|牛]]
[[Lampiran:Radikal Tionghoa/犬|犬]]
<br><span style="background:pink">05</span>
[[Lampiran:Radikal Tionghoa/玄|玄]]
[[Lampiran:Radikal Tionghoa/玉|玉]]
[[Lampiran:Radikal Tionghoa/瓜|瓜]]
[[Lampiran:Radikal Tionghoa/瓦|瓦]]
[[Lampiran:Radikal Tionghoa/甘|甘]]
[[Lampiran:Radikal Tionghoa/生|生]]
[[Lampiran:Radikal Tionghoa/用|用]]
[[Lampiran:Radikal Tionghoa/田|田]]
[[Lampiran:Radikal Tionghoa/疋|疋]]
[[Lampiran:Radikal Tionghoa/疒|疒]]
[[Lampiran:Radikal Tionghoa/癶|癶]]
[[Lampiran:Radikal Tionghoa/白|白]]
[[Lampiran:Radikal Tionghoa/皮|皮]]
[[Lampiran:Radikal Tionghoa/皿|皿]]
[[Lampiran:Radikal Tionghoa/目|目]]
[[Lampiran:Radikal Tionghoa/矛|矛]]
[[Lampiran:Radikal Tionghoa/矢|矢]]
[[Lampiran:Radikal Tionghoa/石|石]]
[[Lampiran:Radikal Tionghoa/示|示]]
[[Lampiran:Radikal Tionghoa/禸|禸]]
[[Lampiran:Radikal Tionghoa/禾|禾]]
[[Lampiran:Radikal Tionghoa/穴|穴]]
[[Lampiran:Radikal Tionghoa/立|立]]
<br><span style="background:yellow">06</span>
[[Lampiran:Radikal Tionghoa/竹|竹]]
[[Lampiran:Radikal Tionghoa/米|米]]
[[Lampiran:Radikal Tionghoa/糸|糸]]
[[Lampiran:Radikal Tionghoa/缶|缶]]
[[Lampiran:Radikal Tionghoa/网|网]]
[[Lampiran:Radikal Tionghoa/羊|羊]]
[[Lampiran:Radikal Tionghoa/羽|羽]]
[[Lampiran:Radikal Tionghoa/老|老]]
[[Lampiran:Radikal Tionghoa/而|而]]
[[Lampiran:Radikal Tionghoa/耒|耒]]
[[Lampiran:Radikal Tionghoa/耳|耳]]
[[Lampiran:Radikal Tionghoa/聿|聿]]
[[Lampiran:Radikal Tionghoa/肉|肉]]
[[Lampiran:Radikal Tionghoa/臣|臣]]
[[Lampiran:Radikal Tionghoa/自|自]]
[[Lampiran:Radikal Tionghoa/至|至]]
[[Lampiran:Radikal Tionghoa/臼|臼]]
[[Lampiran:Radikal Tionghoa/舌|舌]]
[[Lampiran:Radikal Tionghoa/舛|舛]]
[[Lampiran:Radikal Tionghoa/舟|舟]]
[[Lampiran:Radikal Tionghoa/艮|艮]]
[[Lampiran:Radikal Tionghoa/色|色]]
[[Lampiran:Radikal Tionghoa/艸|艸]]
[[Lampiran:Radikal Tionghoa/虍|虍]]
[[Lampiran:Radikal Tionghoa/虫|虫]]
[[Lampiran:Radikal Tionghoa/血|血]]
[[Lampiran:Radikal Tionghoa/行|行]]
[[Lampiran:Radikal Tionghoa/衣|衣]]
[[Lampiran:Radikal Tionghoa/西|西]]
<br><span style="background:lightblue">07</span>
[[Lampiran:Radikal Tionghoa/見|見]]
[[Lampiran:Radikal Tionghoa/角|角]]
[[Lampiran:Radikal Tionghoa/言|言]]
[[Lampiran:Radikal Tionghoa/谷|谷]]
[[Lampiran:Radikal Tionghoa/豆|豆]]
[[Lampiran:Radikal Tionghoa/豕|豕]]
[[Lampiran:Radikal Tionghoa/豸|豸]]
[[Lampiran:Radikal Tionghoa/貝|貝]]
[[Lampiran:Radikal Tionghoa/赤|赤]]
[[Lampiran:Radikal Tionghoa/走|走]]
[[Lampiran:Radikal Tionghoa/足|足]]
[[Lampiran:Radikal Tionghoa/身|身]]
[[Lampiran:Radikal Tionghoa/車|車]]
[[Lampiran:Radikal Tionghoa/辛|辛]]
[[Lampiran:Radikal Tionghoa/辰|辰]]
[[Lampiran:Radikal Tionghoa/辵|辵]]
[[Lampiran:Radikal Tionghoa/邑|邑]]
[[Lampiran:Radikal Tionghoa/酉|酉]]
[[Lampiran:Radikal Tionghoa/釆|釆]]
[[Lampiran:Radikal Tionghoa/里|里]]
<br><span style="background:yellow">08</span>
[[Lampiran:Radikal Tionghoa/金|金]]
[[Lampiran:Radikal Tionghoa/長|長]]
[[Lampiran:Radikal Tionghoa/門|門]]
[[Lampiran:Radikal Tionghoa/阜|阜]]
[[Lampiran:Radikal Tionghoa/隶|隶]]
[[Lampiran:Radikal Tionghoa/隹|隹]]
[[Lampiran:Radikal Tionghoa/雨|雨]]
[[Lampiran:Radikal Tionghoa/靑|靑]]
[[Lampiran:Radikal Tionghoa/非|非]]
| style="width: 0%;" |
| style="background: #FFFFE0; vertical-align: top; width: 25%;"|
<span style="background:pink">09</span>
[[Lampiran:Radikal Tionghoa/面|面]]
[[Lampiran:Radikal Tionghoa/革|革]]
[[Lampiran:Radikal Tionghoa/韋|韋]]
[[Lampiran:Radikal Tionghoa/韭|韭]]
[[Lampiran:Radikal Tionghoa/音|音]]
[[Lampiran:Radikal Tionghoa/頁|頁]]
[[Lampiran:Radikal Tionghoa/風|風]]
[[Lampiran:Radikal Tionghoa/飛|飛]]
[[Lampiran:Radikal Tionghoa/食|食]]
[[Lampiran:Radikal Tionghoa/首|首]]
[[Lampiran:Radikal Tionghoa/香|香]]
<br><span style="background:yellow">10</span>
[[Lampiran:Radikal Tionghoa/馬|馬]]
[[Lampiran:Radikal Tionghoa/骨|骨]]
[[Lampiran:Radikal Tionghoa/高|高]]
[[Lampiran:Radikal Tionghoa/髟|髟]]
[[Lampiran:Radikal Tionghoa/鬥|鬥]]
[[Lampiran:Radikal Tionghoa/鬯|鬯]]
[[Lampiran:Radikal Tionghoa/鬲|鬲]]
[[Lampiran:Radikal Tionghoa/鬼|鬼]]
<br><span style="background:lightblue">11</span>
[[Lampiran:Radikal Tionghoa/魚|魚]]
[[Lampiran:Radikal Tionghoa/鳥|鳥]]
[[Lampiran:Radikal Tionghoa/鹵|鹵]]
[[Lampiran:Radikal Tionghoa/鹿|鹿]]
[[Lampiran:Radikal Tionghoa/麥|麥]]
[[Lampiran:Radikal Tionghoa/麻|麻]]
<br><span style="background:yellow">12</span>
[[Lampiran:Radikal Tionghoa/黃|黃]]
[[Lampiran:Radikal Tionghoa/黍|黍]]
[[Lampiran:Radikal Tionghoa/黑|黑]]
[[Lampiran:Radikal Tionghoa/黹|黹]]
<br><span style="background:pink">13</span>
[[Lampiran:Radikal Tionghoa/黽|黽]]
[[Lampiran:Radikal Tionghoa/鼎|鼎]]
[[Lampiran:Radikal Tionghoa/鼓|鼓]]
[[Lampiran:Radikal Tionghoa/鼠|鼠]]
<br><span style="background:yellow">14</span>
[[Lampiran:Radikal Tionghoa/鼻|鼻]]
[[Lampiran:Radikal Tionghoa/齊|齊]]
<br><span style="background:lightblue">15</span>
[[Lampiran:Radikal Tionghoa/齒|齒]]
<br><span style="background:yellow">16</span>
[[Lampiran:Radikal Tionghoa/龍|龍]]
[[Lampiran:Radikal Tionghoa/龜|龜]]
<br><span style="background:pink">17</span>
[[Lampiran:Radikal Tionghoa/龠|龠]]
|}
</div></div><noinclude>
[[Kategori:Templat umum]]
</noinclude>
0nprj5575kly2gmx8e0p50mhpwvdwez
Templat:sv-noun-unc-irreg-c
10
248077
1350026
1024046
2026-04-15T11:24:44Z
DelintBot
47600
Replacing [[mw:Help:Lint errors/obsolete-tag|obsolete tags]]
1350026
wikitext
text/x-wiki
<noinclude>[[Category:Swedish noun inflection-table templates|noun-unc-irreg-c]]
[[vi:Tiêu bản:swe-noun-unc-irreg-c]]
==Usage==
* <code><nowiki>{{sv-noun-unc-irreg-c}}</nowiki></code>
* <code><nowiki>{{sv-noun-unc-irreg-c|tro}}</nowiki></code>
* <code><nowiki>{{sv-noun-unc-irreg-c|2=tron}}</nowiki></code>
* <code><nowiki>{{sv-noun-unc-irreg-c|tro|tron}}</nowiki></code>
* <code><nowiki>{{sv-noun-unc-irreg-c|2=majsen|3=majs}}</nowiki></code>
* <code><nowiki>{{sv-noun-unc-irreg-c|majs|majsen|majs|majsens}}</nowiki></code>
* For [[diplomati]]: <code><nowiki>{{sv-noun-unc-irreg-c|ien=1}}</nowiki></code>
==Categories==
* [[:Category:sv:Nomina|kata benda bahasa Swedia]]
==Output==
</noinclude>{{sv-decl-noun<!--
-->|uncountable=yes<!--
-->|base={{{base|{{PAGENAME}}}}}<!--
-->|definitions={{{definitions|}}}<!--
-->|gender={{{gender|Common}}}<!--
-->| [[{{{1<includeonly>|{{PAGENAME}}</includeonly>}}}]]<!--
-->| [[{{{2<includeonly>|{{PAGENAME}}n</includeonly>}}}]]{{#if:{{{ien|}}}|<br />{{qualifier|dated}} [[{{PAGENAME}}en]]}}<!--
-->| -<!--
-->| -<!--
-->| [[{{{3<includeonly>|{{{1|{{PAGENAME}}}}}s</includeonly>}}}]]<!--
-->| [[{{{4<includeonly>|{{{2|{{PAGENAME}}n}}}s</includeonly>}}}]]{{#if:{{{ien|}}}|<br />{{qualifier|dated}} [[{{PAGENAME}}ens]]}}<!--
-->| -<!--
-->| -<!--
-->}}<!--
-->{{#ifeq:{{NAMESPACE}}||[[Category:Swedish nouns]]}}
78rvgvudq2davhgwqfw3twajyaji3ei
lambuik
0
250761
1349838
1348932
2026-04-14T13:00:46Z
Swarabakti
18192
1349838
wikitext
text/x-wiki
=={{bahasa|min}}==
{{kepala|min|num=1}}
: {{suara|min|LL-Q13324_(min)-Dhynyhafuza-lambuik.wav}}
{{-ragam-}}
*{{l|min|lombuik}} (dialek)
{{-adj-|min}}
# [[lembut]]
#:{{syn|min|lunak|aluih}}
#:'''''lambuik''' bana kue tu mah''
#:: '''lembut''' sekali kue itu
{{-turunan-}}
{{kotak|min|title=Gabungan kata
|lamah lambuik
}}
{{kotak|min|title=Peribahasa
|lambuik gigi pado lidah}}
{{kepala|min|num=2}}
{{-v-|min}}
# [[lecut]]
#:{{syn|min|ampeh|bae|lacuik}}
#:'''''lambuik''' se lah inyo lai''
#:: '''lecut''' saja dia lagi
{{-turunan-}}
{{kotak|min|title=Kata turunan
|dilambuiknyo
|malambuik
|palambuik
}}
{{kotak|min|title=Gabungan kata
|tong palambuik
|buayo malambuik lapiak
}}
[[Kategori:WikiTutur Padang 11 Februari 2024]]
[[Kategori:WikiTutur - Minangkabau]]
ik6l8ewg3vz6wyal74f8cpb0tkrppcs
1349839
1349838
2026-04-14T13:02:00Z
Swarabakti
18192
1349839
wikitext
text/x-wiki
=={{bahasa|min}}==
{{kepala|min|num=1}}
: {{suara|min|LL-Q13324_(min)-Dhynyhafuza-lambuik.wav}}
{{-ragam-}}
* {{ragam|min|lombuik||dialek}}
{{-adj-|min}}
# [[lembut]]
#:{{syn|min|lunak|aluih}}
#: {{contoh|min|'''Lambuik''' bana kue tu mah.|'''Lembut''' sekali kue itu.}}
{{-turunan-}}
{{kotak|min|title=Gabungan kata
|lamah lambuik
}}
{{kotak|min|title=Peribahasa
|lambuik gigi pado lidah}}
{{kepala|min|num=2}}
{{-v-|min}}
# [[lecut]]
#: {{syn|min|ampeh|bae|lacuik}}
#: {{contoh|min|'''Lambuik''' se lah inyo lai.|'''Lecut''' saja dia lagi.}}
{{-turunan-}}
{{kotak|min|title=Kata turunan
|dilambuiknyo
|malambuik
|palambuik
}}
{{kotak|min|title=Gabungan kata
|tong palambuik
|buayo malambuik lapiak
}}
[[Kategori:WikiTutur Padang 11 Februari 2024]]
[[Kategori:WikiTutur - Minangkabau]]
3ljg3wdue1padk19o9jrdkidn9jmnjd
mitau'
0
262101
1349840
1288070
2026-04-14T13:04:05Z
Swarabakti
18192
1349840
wikitext
text/x-wiki
=={{bahasa|bug}}==
{{kepala|bug}}
: {{suara|bug|LL-Q33190 (bug)-Annisa Tiara Ramadhani-Mitau'.wav }}
{{-adj-|bug}}
# [[takut]]
[[Kategori:WikiTutur - Bugis]]
1rr8goz5lns34l268pph810t0kdym9e
1349841
1349840
2026-04-14T13:04:16Z
Swarabakti
18192
1349841
wikitext
text/x-wiki
=={{bahasa|bug}}==
{{kepala|bug}}
: {{suara|bug|LL-Q33190 (bug)-Annisa Tiara Ramadhani-Mitau'.wa }}
{{-adj-|bug}}
# [[takut]]
[[Kategori:WikiTutur - Bugis]]
cqodogys25z4n9rn6s0lo3eacboppb2
1349842
1349841
2026-04-14T13:04:22Z
Swarabakti
18192
1349842
wikitext
text/x-wiki
=={{bahasa|bug}}==
{{kepala|bug}}
: {{suara|bug|LL-Q33190 (bug)-Annisa Tiara Ramadhani-Mitau'.wav}}
{{-adj-|bug}}
# [[takut]]
[[Kategori:WikiTutur - Bugis]]
2h70f4ol3493ok5h5vv5sscezc85usu
Templat:ragam ejaan dari
10
262493
1349869
1277983
2026-04-14T14:06:55Z
Swarabakti
18192
1349869
wikitext
text/x-wiki
{{ {{#if:{{{lang|}}}|check deprecated lang param usage|no deprecated lang param usage}}|lang={{{lang|}}}|<!--
-->{{#invoke:form of/templates|form_of_t|ragam {{#invoke:labels/templates/show_from|show_from|default=ejaan}} dari|withencap=1|ignore=from:list}}<!--
-->}}<!-- (end of {{check deprecated lang param usage}})
--><noinclude>{{dokumentasi}}</noinclude>
sstl5rj1481xvdttsr2rge4f2htx2zd
1349873
1349869
2026-04-14T14:09:01Z
Swarabakti
18192
1349873
wikitext
text/x-wiki
{{ {{#if:{{{lang|}}}|check deprecated lang param usage|no deprecated lang param usage}}|lang={{{lang|}}}|<!--
-->{{#invoke:form of/templates|form_of_t|ragam ejaan {{#invoke:labels/templates/show_from|show_from|default=}} dari|withencap=1|ignore=from:list}}<!--
-->}}<!-- (end of {{check deprecated lang param usage}})
--><noinclude>{{dokumentasi}}</noinclude>
p00sk8b7vj7qfha2i2ibizepkoakqzb
tikki
0
265148
1349900
1091899
2026-04-15T06:37:54Z
Meylani Prisilia
44880
1349900
wikitext
text/x-wiki
=={{bahasa|bbc}}==
{{kepala|bbc}}
{{-n-|bbc}}
# pada waktu itu
4x7l56k39rg0efnntiz2klgh4sizvci
air mata
0
265452
1349891
1280053
2026-04-15T02:36:01Z
Iripseudocorus
40083
/* Bahasa Indonesia */Perbaikan url
1349891
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id}}
{{-n-|id}}
# air yang keluar dari mata saat menangis
#* {{RQ:20 Mei Pelopor 17 Agustus
|page=9
|text='''Air mata''' kami jang titik sekarang ini perlunya semata-mata supaja bertunas bibit itu, supaja dari padanja berkembanglah nafsu hidup jang baru dan murni kemudian hari.
|norm='''Air mata''' kami yang titik sekarang ini perlunya semata-mata supaya bertunas bibit itu, supaya dari padanya berkembanglah nafsu hidup yang baru dan murni kemudian hari.
|url=https://id.wikisource.org/wiki/Halaman:20_Mei_Pelopor_17_Agustus_-_Museum_Dewantara_Kirti_Griya.pdf/8#:~:text=Air%20mata%2C%20darah%20akan%20mengalir%20banjak2%2C%20tetapi%20tiadalah%20mengapa%3B%20semuanja%20itu%20akan%20membawa%20kearah%20kemenangan}}
{{-terjemahan-}}
{{t-atas}}
{{t-bawah}}
{{-bacaan-}}
* {{R:KBBI Daring}}
{{rfv|id|impor dari KBBI}}
3wr8ujtxx3x4qzw1jpi2fcjb13cugak
1349892
1349891
2026-04-15T02:37:25Z
Iripseudocorus
40083
/* Bahasa Indonesia */
1349892
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id}}
{{-n-|id}}
# air yang keluar dari mata saat menangis
#* {{RQ:20 Mei Pelopor 17 Agustus
|page=9
|text='''Air mata'''darah akan mengalir banjak2, tetapi tiadalah mengapa; semuanja itu akan membawa kearah kemenangan
|norm='''Air mata''' darah akan mengalir banyak-banyak tetapi tiadalah mengapa, semuanya itu akan membawa ke arah kemenangan.
|url=https://id.wikisource.org/wiki/Halaman:20_Mei_Pelopor_17_Agustus_-_Museum_Dewantara_Kirti_Griya.pdf/8#:~:text=Air%20mata%2C%20darah%20akan%20mengalir%20banjak2%2C%20tetapi%20tiadalah%20mengapa%3B%20semuanja%20itu%20akan%20membawa%20kearah%20kemenangan}}
{{-terjemahan-}}
{{t-atas}}
{{t-bawah}}
{{-bacaan-}}
* {{R:KBBI Daring}}
{{rfv|id|impor dari KBBI}}
03as3om4mmr4auripseqdnp5cawbtgk
1349917
1349892
2026-04-15T06:57:14Z
Iripseudocorus
40083
rekam1
1349917
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id}}
: {{pemenggalan|id|air|ma|ta}} {{suara|id|LL-Q9240 (ind)-Iripseudocorus-air mata.wav}}
{{-n-|id}}
# air yang keluar dari mata saat menangis
#* {{RQ:20 Mei Pelopor 17 Agustus
|page=9
|text='''Air mata'''darah akan mengalir banjak2, tetapi tiadalah mengapa; semuanja itu akan membawa kearah kemenangan
|norm='''Air mata''' darah akan mengalir banyak-banyak tetapi tiadalah mengapa, semuanya itu akan membawa ke arah kemenangan.
|url=https://id.wikisource.org/wiki/Halaman:20_Mei_Pelopor_17_Agustus_-_Museum_Dewantara_Kirti_Griya.pdf/8#:~:text=Air%20mata%2C%20darah%20akan%20mengalir%20banjak2%2C%20tetapi%20tiadalah%20mengapa%3B%20semuanja%20itu%20akan%20membawa%20kearah%20kemenangan}}
{{-terjemahan-}}
{{t-atas}}
{{t-bawah}}
{{-bacaan-}}
* {{R:KBBI Daring}}
{{rfv|id|impor dari KBBI}}
sz1ppejaznitpngqva5u98rnl3mew76
misologi
0
265941
1349828
1288026
2026-04-14T12:40:01Z
Swarabakti
18192
1349828
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id}}
{{-n-|id}}
# [[ketakutan]] terhadap [[penalaran]] atau [[argumen]]
{{rfv|id|tidak ada bukti ketercatatan}}
6nx1vgro6xfjmk8hlbg2357u3z9myq0
Modul:bahasa
828
266193
1350052
1349739
2026-04-15T11:42:33Z
Swarabakti
18192
1350052
Scribunto
text/plain
local Families = require("Module:families")
local p = {}
local langNames = {
["mul"] = "Lintas bahasa",
-- Kode bahasa
["aa"] = "Afar",
["aaa"] = "Ghotuo",
["aab"] = "Alumu-Tesu",
["aac"] = "Ari",
["aad"] = "Amal",
["aaf"] = "Aranadan",
["aag"] = "Ambrak",
["aah"] = "Arapesh Abu'",
["aai"] = "Arifama-Miniafia",
["aak"] = "Ankave",
["aal"] = "Afade",
["aan"] = "Anambé",
["aap"] = "Arára Pará",
["aaq"] = "Penobscot",
["aas"] = "Aasax",
["aau"] = "Abau",
["aav-khs-pro"] = "Proto-Khasi",
["aav-nic-pro"] = "Proto-Nikobar",
["aav-pkl-pro"] = "Proto-Pnar-Khasi-Lyngngam",
["aav-pro"] = "Proto-Austroasiatik",
["aaw"] = "Solong",
["aax"] = "Mandobo Atas",
["aaz"] = "Amarasi",
["ab"] = "Abkhaz",
["aba"] = "Abé",
["abb"] = "Bankon",
["abc"] = "Ayta Ambala",
["abd"] = "Agta Camarines Norte",
["abe"] = "Abenaki",
["abf"] = "Abai Sungai",
["abg"] = "Abaga",
["abh"] = "Arab Tajik",
["abi"] = "Abidji",
["abj"] = "Aka-Bea",
["abl"] = "Lampung Nyo",
["abm"] = "Abanyom",
["abn"] = "Abua",
["abo"] = "Abon",
["abp"] = "Ayta Abenlen",
["abq"] = "Abaza",
["abr"] = "Abron",
["abs"] = "Melayu Ambon",
["abt"] = "Ambulas",
["abu"] = "Abure",
["abv"] = "Arab Baharna",
["abw"] = "Pal",
["abx"] = "Inabaknon",
["aby"] = "Aneme Wake",
["abz"] = "Abui",
["aca"] = "Achagua",
["acb"] = "Áncá",
["acd"] = "Gikyode",
["ace"] = "Aceh",
["ach"] = "Acholi",
["aci"] = "Aka-Cari",
["ack"] = "Aka-Kora",
["acl"] = "Akar-Bale",
["acm"] = "Arab Irak",
["acn"] = "Achang",
["acp"] = "Acipa Timur",
["acr"] = "Achi",
["acs"] = "Acroá",
["acu"] = "Achuar",
["acv"] = "Achumawi",
["acw"] = "Arab Hijaz",
["acx"] = "Arab Oman",
["acy"] = "Arab Siprus",
["acz"] = "Acheron",
["ada"] = "Adangme",
["adb"] = "Adabe",
["add"] = "Dzodinka",
["ade"] = "Adele",
["adf"] = "Arab Dhofar",
["adg"] = "Andegerebinha",
["adh"] = "Adhola",
["adi"] = "Adi",
["adj"] = "Adioukrou",
["adl"] = "Galo",
["adn"] = "Adang",
["ado"] = "Abu",
["adp"] = "Adap",
["adq"] = "Adangbe",
["adr"] = "Adonara",
["ads"] = "Isyarat Adamorobe",
["adt"] = "Adnyamathanha",
["adu"] = "Aduge",
["adw"] = "Amondawa",
["ady"] = "Adyghe",
["adz"] = "Adzera",
["ae"] = "Avestan",
["aea"] = "Areba",
["aeb"] = "Arab Tunisia",
["aed"] = "Isyarat Argentina",
["aee"] = "Pashayi Timur Laut",
["aek"] = "Haeke",
["ael"] = "Ambele",
["aem"] = "Arem",
["aen"] = "Isyarat Armenia",
["aeq"] = "Aer",
["aer"] = "Arrernte Timur",
["aes"] = "Alsea",
["aeu"] = "Akeu",
["aew"] = "Ambakich",
["aey"] = "Amele",
["aez"] = "Aeka",
["af"] = "Afrikaans",
["afa-pro"] = "Proto-Afroasiatik",
["afb"] = "Arab Teluk",
["afd"] = "Andai",
["afe"] = "Putukwam",
["afg"] = "Isyarat Afghan",
["afh"] = "Afrihili",
["afi"] = "Akrukay",
["afk"] = "Nanubae",
["afn"] = "Defaka",
["afo"] = "Eloyi",
["afp"] = "Tapei",
["afs"] = "Kreol Afro-Seminole",
["aft"] = "Afitti",
["afu"] = "Awutu",
["afz"] = "Obokuitai",
["aga"] = "Aguano",
["agb"] = "Legbo",
["agc"] = "Agatu",
["agd"] = "Agarabi",
["age"] = "Angal",
["agf"] = "Arguni",
["agg"] = "Angor",
["agh"] = "Ngelima",
["agi"] = "Agariya",
["agj"] = "Argobba",
["agk"] = "Agta Isarog",
["agl"] = "Fembe",
["agm"] = "Angaataha",
["agn"] = "Agutaynen",
["ago"] = "Tainae",
["agq"] = "Aghem",
["agr"] = "Aguaruna",
["ags"] = "Esimbi",
["agt"] = "Agta Cagayan Tengah",
["agu"] = "Aguacateca",
["agv"] = "Agta Remontado",
["agw"] = "Kahua",
["agx"] = "Aghul",
["agy"] = "Alta Selatan",
["agz"] = "Agta Mount Iriga",
["aha"] = "Ahanta",
["ahb"] = "Axamb",
["ahg"] = "Qimant",
["ahh"] = "Aghu",
["ahi"] = "Aizi Tiagbamrin",
["ahk"] = "Akha",
["ahl"] = "Igo",
["ahm"] = "Aizi Mobumrin",
["ahn"] = "Àhàn",
["aho"] = "Ahom",
["ahp"] = "Aizi Aproumu",
["ahr"] = "Ahirani",
["ahs"] = "Ashe",
["aht"] = "Ahtna",
["aia"] = "Arosi",
["aib"] = "Aynu",
["aic"] = "Ainbai",
["aid"] = "Alngith",
["aie"] = "Amara",
["aif"] = "Agi",
["aig"] = "Kreol Inggris Antigua dan Barbuda",
["aih"] = "Ai-Cham",
["aii"] = "Neo-Aramaik Asyur",
["aij"] = "Lishanid Noshan",
["aik"] = "Ake",
["ail"] = "Aimele",
["aim"] = "Aimol",
["ain"] = "Ainu",
["aio"] = "Aiton",
["aip"] = "Burumakok",
["air"] = "Airoran",
["ait"] = "Arikem",
["aiw"] = "Aari",
["aix"] = "Aighon",
["aiy"] = "Ali",
["aja"] = "Aja",
["ajg"] = "Adja",
["aji"] = "Ajië",
["ajn"] = "Andajin",
["ajp"] = "Arab Syam Selatan",
["ajw"] = "Ajawa",
["ajz"] = "Karbi Amri",
["ak"] = "Akan",
["akb"] = "Angkola",
["akc"] = "Mpur",
["akd"] = "Ukpet-Ehom",
["ake"] = "Akawaio",
["akf"] = "Akpa",
["akg"] = "Anakalangu",
["akh"] = "Angal Heneng",
["aki"] = "Aiome",
["akj"] = "Jeru",
["akk"] = "Akkad",
["akl"] = "Aklanon",
["akm"] = "Aka-Bo",
["ako"] = "Akurio",
["akp"] = "Siwu",
["akq"] = "Ak",
["akr"] = "Araki",
["aks"] = "Akaselem",
["akt"] = "Akolet",
["aku"] = "Akum",
["akv"] = "Akhvakh",
["akw"] = "Akwa",
["akx"] = "Aka-Kede",
["aky"] = "Aka-Kol",
["akz"] = "Alabama",
["ala"] = "Alago",
["alc"] = "Kawésqar",
["ald"] = "Allad",
["ale"] = "Aleut",
["alf"] = "Alege",
["alg-aga"] = "Agawam",
["alg-pro"] = "Proto-Algonquia",
["alh"] = "Alawa",
["ali"] = "Amaimon",
["alj"] = "Alangan",
["alk"] = "Alak",
["all"] = "Allar",
["alm"] = "Amblong",
["alo"] = "Larike-Wakasihu",
["alp"] = "Alune",
["alq"] = "Algonquin",
["alr"] = "Alutor",
["alt"] = "Altai Selatan",
["alu"] = "'Are'are",
["alv-ama"] = "Amasi",
["alv-bgu"] = "Baïnounk Gubëeher",
["alv-bua-pro"] = "Proto-Bua",
["alv-cng-pro"] = "Proto-Cangin",
["alv-edk-pro"] = "Proto-Edekiri",
["alv-edo-pro"] = "Proto-Edoid",
["alv-fli-pro"] = "Proto-Fali",
["alv-gbe-pro"] = "Proto-Gbe",
["alv-gng-pro"] = "Proto-Guang",
["alv-gtm-pro"] = "Proto-Togo Tengah",
["alv-gwa"] = "Gwara",
["alv-hei-pro"] = "Proto-Heiban",
["alv-ido-pro"] = "Proto-Idomoid",
["alv-igb-pro"] = "Proto-Igboid",
["alv-kwa-pro"] = "Proto-Kwa",
["alv-mum-pro"] = "Proto-Mumuye",
["alv-nup-pro"] = "Proto-Nupoid",
["alv-pro"] = "Proto-Atlantik-Kongo",
["alv-von-pro"] = "Proto-Volta-Niger",
["alv-yor-pro"] = "Proto-Yoruba",
["alv-yrd-pro"] = "Proto-Yoruboid",
["alw"] = "Alaba",
["alx"] = "Amol",
["aly"] = "Alyawarr",
["alz"] = "Alur",
["am"] = "Amharik",
["ama"] = "Amanayé",
["amb"] = "Ambo",
["amc"] = "Amahuaca",
["ame"] = "Yanesha'",
["amf"] = "Hamer-Banna",
["amg"] = "Amurdag",
["ami"] = "Amis",
["amj"] = "Amdang",
["amk"] = "Ambai",
["aml"] = "War-Jaintia",
["amm"] = "Ama",
["amn"] = "Amanab",
["amo"] = "Amo",
["amp"] = "Alamblak",
["amq"] = "Amahai",
["amr"] = "Amarakaeri",
["ams"] = "Amami-Oshima Selatan",
["amt"] = "Amto",
["amu"] = "Amuzgo Guerrero",
["amv"] = "Ambelau",
["amw"] = "Neo-Aramaik Barat",
["amx"] = "Anmatyerre",
["amy"] = "Ami",
["amz"] = "Atampaya",
["an"] = "Aragon",
["ana"] = "Andaqui",
["anb"] = "Andoa",
["anc"] = "Ngas",
["and"] = "Ansus",
["ane"] = "Xârâcùù",
["anf"] = "Animere",
["ang"] = "Inggris Kuno",
["anh"] = "Nend",
["ani"] = "Andi",
["anj"] = "Anor",
["ank"] = "Goemai",
["anl"] = "Anu",
["anm"] = "Anal",
["ann"] = "Obolo",
["ano"] = "Andoque",
["anp"] = "Angika",
["anq"] = "Jarawa",
["anr"] = "Andh",
["ans"] = "Anserma",
["ant"] = "Antakarinya",
["anu"] = "Anuak",
["anv"] = "Denya",
["anw"] = "Anaang",
["anx"] = "Andra-Hus",
["any"] = "Anyi",
["anz"] = "Anem",
["aoa"] = "Angolar",
["aob"] = "Abom",
["aoc"] = "Pemon",
["aod"] = "Andarum",
["aoe"] = "Angal Enen",
["aof"] = "Bragat",
["aog"] = "Angoram",
["aoi"] = "Anindilyakwa",
["aoj"] = "Mufian",
["aok"] = "Arhö",
["aol"] = "Alor",
["aom"] = "Ömie",
["aon"] = "Arapesh Bumbita",
["aor"] = "Aore",
["aos"] = "Taikat",
["aot"] = "Atong (India)",
["aou"] = "A'ou",
["aox"] = "Atorada",
["aoz"] = "Uab Meto",
["apa-pro"] = "Proto-Apache",
["apb"] = "Sa'a",
["apc"] = "Arab Syam Utara",
["apd"] = "Arab Sudan",
["ape"] = "Bukiyip",
["apf"] = "Agta Pahanan",
["apg"] = "Ampanang",
["aph"] = "Athpare",
["api"] = "Apiaká",
["apj"] = "Jicarilla",
["apk"] = "Apache Plains",
["apl"] = "Lipan",
["apm"] = "Chiricahua",
["apn"] = "Apinayé",
["apo"] = "Ambul",
["app"] = "Apma",
["apq"] = "A-Pucikwar",
["apr"] = "Arop-Lokep",
["aps"] = "Arop-Sissano",
["apt"] = "Apatani",
["apu"] = "Apurinã",
["apv"] = "Alapmunte",
["apw"] = "Apache Barat",
["apx"] = "Aputai",
["apy"] = "Apalaí",
["apz"] = "Safeyoka",
["aqc"] = "Archi",
["aqd"] = "Dogon Ampari",
["aqg"] = "Arigidi",
["aql-pro"] = "Proto-Algic",
["aqm"] = "Atohwaim",
["aqn"] = "Alta Utara",
["aqp"] = "Atakapa",
["aqr"] = "Arhâ",
["aqt"] = "Angaité",
["aqz"] = "Akuntsu",
["ar"] = "Arab",
["arc"] = "Aramaik",
["ard"] = "Arabana",
["are"] = "Arrernte Barat",
["arh"] = "Arhuaco",
["ari"] = "Arikara",
["arj"] = "Arapaso",
["ark"] = "Arikapú",
["arl"] = "Arabela",
["arn"] = "Mapudungun",
["aro"] = "Araona",
["arp"] = "Arapaho",
["arq"] = "Arab Aljazair",
["arr"] = "Arara-Karo",
["ars"] = "Arab Najdi",
["art-blk"] = "Bolak",
["art-bsp"] = "Black Speech",
["art-com"] = "Communicationssprache",
["art-dtk"] = "Dothraki",
["art-elo"] = "Eloi",
["art-gld"] = "Goa'uld",
["art-lap"] = "Lapine",
["art-man"] = "Mandalorian",
["art-mun"] = "Mundolinco",
["art-nav"] = "Na'vi",
["art-nox"] = "Noxilo",
["art-una"] = "Unas",
["art-vlh"] = "High Valyrian",
["aru"] = "Arua",
["arv"] = "Arbore",
["arw"] = "Arawak",
["arx"] = "Aruá",
["ary"] = "Arab Moroko",
["arz"] = "Arab Mesir",
["as"] = "Assam",
["asa"] = "Pare",
["asb"] = "Assiniboine",
["asc"] = "Asmat Pesisir Casuarina",
["ase"] = "Isyarat Amerika Serikat",
["asf"] = "Auslan",
["asg"] = "Cishingini",
["ash"] = "Abishira",
["asi"] = "Buruwai",
["asj"] = "Nsari",
["ask"] = "Ashkun",
["asl"] = "Asilulu",
["asn"] = "Xingú Asuriní",
["aso"] = "Dano",
["asp"] = "Isyarat Aljazair",
["asq"] = "Isyarat Austria",
["asr"] = "Asuri",
["ass"] = "Ipulo",
["ast"] = "Asturia",
["asu"] = "Tocantins Asurini",
["asv"] = "Asoa",
["asw"] = "Isyarat Aborigin Australia",
["asx"] = "Muratayak",
["asy"] = "Asmat Yaosakor",
["asz"] = "As",
["ata"] = "Pele-Ata",
["atb"] = "Zaiwa",
["atc"] = "Atsahuaca",
["atd"] = "Manobo Ata",
["ate"] = "Atemble",
["atg"] = "Okpela",
["ath-nic"] = "Nicola",
["ath-pro"] = "Proto-Athabaskan",
["ati"] = "Attié",
["atj"] = "Atikamekw",
["atk"] = "Ati",
["atl"] = "Agta Mount Iraya",
["atm"] = "Ata",
["ato"] = "Atong (Kamerun)",
["atp"] = "Atta Pudtol",
["atq"] = "Aralle-Tabulahan",
["atr"] = "Waimiri-Atroari",
["ats"] = "Gros Ventre",
["att"] = "Atta Pamplona",
["atu"] = "Reel",
["atv"] = "Altai Utara",
["atw"] = "Atsugewi",
["atx"] = "Arutani",
["aty"] = "Aneityum",
["atz"] = "Arta",
["aua"] = "Asumboa",
["aub"] = "Alugu",
["auc"] = "Huaorani",
["aud"] = "Anuta",
["auf-pro"] = "Proto-Arawa",
["aug"] = "Aguna",
["auh"] = "Aushi",
["aui"] = "Anuki",
["auj"] = "Awjila",
["auk"] = "Heyo",
["aul"] = "Aulua",
["aum"] = "Asu",
["aun"] = "One Molmo",
["auo"] = "Auyokawa",
["aup"] = "Makayam",
["auq"] = "Anus",
["aur"] = "Aruek",
["aus-alu"] = "Alungul",
["aus-and"] = "Andjingith",
["aus-ang"] = "Angkula",
["aus-arn-pro"] = "Proto-Arnhem",
["aus-bra"] = "Barranbinya",
["aus-brm"] = "Barunggam",
["aus-cww-pro"] = "Proto-New South Wales Tengah",
["aus-dal-pro"] = "Proto-Daly",
["aus-guw"] = "Guwar",
["aus-lsw"] = "Little Swanport",
["aus-mbi"] = "Mbiywom",
["aus-ngk"] = "Ngkoth",
["aus-nyu-pro"] = "Proto-Nyulnyulan",
["aus-pam-pro"] = "Proto-Pama-Nyungan",
["aus-tul"] = "Tulua",
["aus-uwi"] = "Uwinymil",
["aus-wdj-pro"] = "Proto-Iwaidjan",
["aus-won"] = "Wong-gie",
["aus-wul"] = "Wulguru",
["aus-ynk"] = "Yangkaal",
["aut"] = "Austral",
["auu"] = "Auye",
["auw"] = "Awyi",
["aux"] = "Aurá",
["auy"] = "Auyana",
["auz"] = "Arab Uzbek",
["av"] = "Avar",
["avb"] = "Avau",
["avd"] = "Alviri-Vidari",
["avi"] = "Avikam",
["avk"] = "Kotava",
["avm"] = "Angkamuthi",
["avn"] = "Avatime",
["avo"] = "Agavotaguerra",
["avs"] = "Aushiri",
["avt"] = "Au",
["avu"] = "Avokaya",
["avv"] = "Avá-Canoeiro",
["awa"] = "Awadhi",
["awb"] = "Awa (Papua)",
["awc"] = "Cicipu",
["awd-ama"] = "Amarizana",
["awd-amc-pro"] = "Proto-Amuesha-Chamicuro",
["awd-ana"] = "Anauyá",
["awd-apo"] = "Apolista",
["awd-cav"] = "Cavere",
["awd-gnu"] = "Guinau",
["awd-kar"] = "Cariay",
["awd-kaw"] = "Kawishana",
["awd-kmp-pro"] = "Proto-Kampa",
["awd-kus"] = "Kustenau",
["awd-man"] = "Manao",
["awd-mar"] = "Marawan",
["awd-mpr"] = "Maypure",
["awd-mrt"] = "Mariaté",
["awd-nwk-pro"] = "Proto-Nawiki",
["awd-pai"] = "Paikoneka",
["awd-pas"] = "Passé",
["awd-pro"] = "Proto-Arawak",
["awd-prw-pro"] = "Proto-Paresi-Waura",
["awd-she"] = "Shebayo",
["awd-taa-pro"] = "Proto-Ta-Arawak",
["awd-wai"] = "Wainumá",
["awd-yum"] = "Yumana",
["awe"] = "Awetí",
["awg"] = "Anguthimri",
["awh"] = "Awbono",
["awi"] = "Aekyom",
["awk"] = "Awabakal",
["awm"] = "Arawum",
["awn"] = "Awngi",
["awo"] = "Awak",
["awr"] = "Awera",
["aws"] = "Awyu Selatan",
["awt"] = "Araweté",
["awu"] = "Awyu Tengah",
["awv"] = "Awyu Jair",
["aww"] = "Awun",
["awx"] = "Awara",
["awy"] = "Awyu Edera",
["axb"] = "Abipon",
["axe"] = "Ayerrerenge",
["axg"] = "Arára Mato Grosso",
["axk"] = "Aka (Afrika Tengah)",
["axl"] = "Aranda Selatan Bawah",
["axm"] = "Armenia Tengahan",
["axx"] = "Xaragure",
["ay"] = "Aymara",
["aya"] = "Awar",
["ayb"] = "Ayizo",
["ayd"] = "Ayabadhu",
["aye"] = "Ayere",
["ayg"] = "Nyanga (Togo)",
["ayi"] = "Leyigha",
["ayk"] = "Akuku",
["ayl"] = "Arab Libya",
["ayn"] = "Arab Yemen",
["ayo"] = "Ayoreo",
["ayp"] = "Arab Mesopotamia Utara",
["ayq"] = "Ayi",
["ays"] = "Sorsogon Ayta",
["ayt"] = "Ayta Bataan",
["ayu"] = "Ayu",
["ayy"] = "Ayta Tayabas",
["ayz"] = "Maybrat",
["az"] = "Azerbaijan",
["aza"] = "Azha",
["azc-caz"] = "Cazcan",
["azc-cup-pro"] = "Proto-Cupan",
["azc-ktn"] = "Kitanemuk",
["azc-nah-pro"] = "Proto-Nahuan",
["azc-num-pro"] = "Proto-Numic",
["azc-pro"] = "Proto-Uto-Aztecan",
["azc-tak-pro"] = "Proto-Takic",
["azc-tat"] = "Tataviam",
["azd"] = "Nahuatl Durango Timur",
["azg"] = "Amuzgo San Pedro Amuzgos",
["azm"] = "Amuzgo Ipalapa",
["azn"] = "Nahuatl Durango Barat",
["azo"] = "Awing",
["azt"] = "Atta Faire",
["azz"] = "Nahuatl Pegunungan Puebla",
["ba"] = "Bashkir",
["baa"] = "Babatana",
["bab"] = "Bainouk-Gunyuño",
["bac"] = "Baduy",
["bae"] = "Baré",
["baf"] = "Nubaca",
["bag"] = "Tuki",
["bah"] = "Kreol Bahama",
["baj"] = "Barakai",
["bal"] = "Baluchi",
["ban"] = "Bali",
["bao"] = "Waimaha",
["bap"] = "Bantawa",
["bar"] = "Bavaria",
["bas"] = "Basaa",
["bau"] = "Badanchi",
["bav"] = "Babungo",
["baw"] = "Bambili-Bambui",
["bax"] = "Bamum",
["bay"] = "Batuley",
["bba"] = "Baatonum",
["bbb"] = "Barai",
["bbc"] = "Batak Toba",
["bbd"] = "Bau",
["bbe"] = "Bangba",
["bbf"] = "Baibai",
["bbg"] = "Barama",
["bbh"] = "Bugan",
["bbi"] = "Barombi",
["bbj"] = "Ghomala'",
["bbk"] = "Babanki",
["bbl"] = "Bats",
["bbm"] = "Babango",
["bbn"] = "Uneapa",
["bbo"] = "Konabéré",
["bbp"] = "Banda Tengah Barat",
["bbq"] = "Bamali",
["bbr"] = "Girawa",
["bbs"] = "Bakpinka",
["bbt"] = "Mburku",
["bbu"] = "Bakulung",
["bbv"] = "Karnai",
["bbw"] = "Baba",
["bbx"] = "Bubia",
["bby"] = "Befang",
["bca"] = "Bai Tengah",
["bcb"] = "Bainouk-Samik",
["bcd"] = "Babar Utara",
["bce"] = "Bamenyam",
["bcf"] = "Bamu",
["bcg"] = "Baga Pokur",
["bch"] = "Bariai",
["bci"] = "Baoule",
["bcj"] = "Bardi",
["bck"] = "Bunaba",
["bcl"] = "Bikol Tengah",
["bcm"] = "Banoni",
["bcn"] = "Bibaali",
["bco"] = "Kaluli",
["bcp"] = "Bali (Kongo)",
["bcq"] = "Bench",
["bcr"] = "Babine-Witsuwit'en",
["bcs"] = "Kohumono",
["bct"] = "Bendi",
["bcu"] = "Biliau",
["bcv"] = "Shoo-Minda-Nye",
["bcw"] = "Bana",
["bcy"] = "Bacama",
["bcz"] = "Bainouk-Gunyaamolo",
["bda"] = "Bayot",
["bdb"] = "Basap",
["bdc"] = "Emberá-Baudó",
["bdd"] = "Bunama",
["bde"] = "Bade",
["bdf"] = "Biage",
["bdg"] = "Bonggi",
["bdh"] = "Tara Baka",
["bdi"] = "Burun",
["bdj"] = "Bai",
["bdk"] = "Budukh",
["bdl"] = "Bajau (Indonesia)",
["bdm"] = "Buduma",
["bdn"] = "Baldemu",
["bdo"] = "Morom",
["bdp"] = "Bende",
["bdq"] = "Bahnar",
["bdr"] = "Bajau Pesisir Barat",
["bds"] = "Burunge",
["bdt"] = "Bokoto",
["bdu"] = "Oroko",
["bdv"] = "Bodo Parja",
["bdw"] = "Baham",
["bdx"] = "Budong-Budong",
["bdy"] = "Bandjalang",
["bdz"] = "Badeshi",
["be"] = "Belarus",
["bea"] = "Beaver",
["beb"] = "Bebele",
["bec"] = "Iceve-Maci",
["bed"] = "Bedoanas",
["bee"] = "Byangsi",
["bef"] = "Benabena",
["beg"] = "Belait",
["beh"] = "Biali",
["bei"] = "Bekati'",
["bej"] = "Beja",
["bek"] = "Bebeli",
["bem"] = "Bemba",
["beo"] = "Beami",
["bep"] = "Besoa",
["beq"] = "Beembe",
["ber-fog"] = "Fogaha",
["ber-pro"] = "Proto-Berber",
["ber-zuw"] = "Zuwara",
["bes"] = "Besme",
["bet"] = "Bété Guiberoua",
["beu"] = "Blagar",
["bev"] = "Bété Daloa",
["bew"] = "Betawi",
["bex"] = "Jur Modo",
["bey"] = "Akuwagel",
["bez"] = "Kibena",
["bfa"] = "Bari",
["bfb"] = "Bareli Pauri",
["bfc"] = "Bai Utara",
["bfd"] = "Bafut",
["bfe"] = "Betaf",
["bff"] = "Bofi",
["bfg"] = "Kayan Busang",
["bfh"] = "Blafe",
["bfi"] = "Isyarat Britania",
["bfj"] = "Bafanji",
["bfk"] = "Isyarat Ban Khor",
["bfl"] = "Banda-Ndélé",
["bfm"] = "Mmen",
["bfn"] = "Bunak",
["bfo"] = "Birifor Malba",
["bfp"] = "Beba",
["bfq"] = "Badaga",
["bfr"] = "Bazigar",
["bfs"] = "Bai Selatan",
["bft"] = "Balti",
["bfu"] = "Gahri",
["bfw"] = "Bondo",
["bfx"] = "Bantayanon",
["bfy"] = "Bagheli",
["bfz"] = "Pahari Mahasu",
["bg"] = "Bulgaria",
["bga"] = "Gwamhi-Wuri",
["bgb"] = "Bobongko",
["bgc"] = "Haryanvi",
["bgd"] = "Bareli Rathwi",
["bge"] = "Bauria",
["bgf"] = "Bangandu",
["bgg"] = "Bugun",
["bgi"] = "Giangan",
["bgj"] = "Bangolan",
["bgk"] = "Bit",
["bgl"] = "Bo",
["bgo"] = "Baga Koga",
["bgq"] = "Bagri",
["bgr"] = "Chin Bawm",
["bgs"] = "Tagabawa",
["bgt"] = "Bughotu",
["bgu"] = "Mbongno",
["bgv"] = "Warkay-Bipim",
["bgw"] = "Bhatri",
["bgx"] = "Turki Balkan Gagauz",
["bgy"] = "Benggoi",
["bgz"] = "Banggai",
["bh"] = "Bihar",
["bha"] = "Bharia",
["bhb"] = "Bhili",
["bhc"] = "Biga",
["bhd"] = "Bhadrawahi",
["bhe"] = "Bhaya",
["bhf"] = "Odiai",
["bhg"] = "Binandere",
["bhh"] = "Bukhari",
["bhi"] = "Bhilali",
["bhj"] = "Bahing",
["bhl"] = "Bimin",
["bhm"] = "Bathari",
["bhn"] = "Neo-Aramaik Bohtan",
["bho"] = "Bhojpuri",
["bhp"] = "Bima",
["bhq"] = "Tukang Besi Selatan",
["bhs"] = "Buwal",
["bht"] = "Bhattiyali",
["bhu"] = "Bhunjia",
["bhv"] = "Bahau",
["bhw"] = "Biak",
["bhx"] = "Bhalay",
["bhy"] = "Bhele",
["bhz"] = "Bada",
["bi"] = "Bislama",
["bia"] = "Badimaya",
["bib"] = "Bissa",
["bic"] = "Bikaru",
["bid"] = "Bidiyo",
["bie"] = "Bepour",
["bif"] = "Biafada",
["big"] = "Biangai",
["bij"] = "Kwanka",
["bil"] = "Bile",
["bim"] = "Bimoba",
["bin"] = "Edo",
["bio"] = "Nai",
["bip"] = "Bila",
["biq"] = "Bipi",
["bir"] = "Bisorio",
["bit"] = "Berinomo",
["biu"] = "Biete",
["biv"] = "Birifor Selatan",
["biw"] = "Kol (Kamerun)",
["bix"] = "Bijori",
["biy"] = "Birhor",
["biz"] = "Baloi",
["bja"] = "Budza",
["bjb"] = "Barngarla",
["bjc"] = "Bariji",
["bje"] = "Mien Biao-Jiao",
["bjf"] = "Neo-Aramaik Barzani Jewish",
["bjg"] = "Bidyogo",
["bjh"] = "Bahinemo",
["bji"] = "Burji",
["bjj"] = "Kannauji",
["bjk"] = "Barok",
["bjl"] = "Bulu (Papua)",
["bjm"] = "Bajelani",
["bjn"] = "Banjar",
["bjo"] = "Banda Selatan-Tengah",
["bjp"] = "Fanamaket",
["bjr"] = "Binumarien",
["bjs"] = "Bajan",
["bjt"] = "Balanta-Ganja",
["bju"] = "Busuu",
["bjv"] = "Bedjond",
["bjw"] = "Bakwé",
["bjx"] = "Itneg Banao",
["bjy"] = "Bayali",
["bjz"] = "Baruga",
["bka"] = "Kyak",
["bkc"] = "Baka",
["bkd"] = "Binukid",
["bkf"] = "Beeke",
["bkg"] = "Buraka",
["bkh"] = "Bakoko",
["bki"] = "Baki",
["bkj"] = "Pande",
["bkk"] = "Brokskat",
["bkl"] = "Berik",
["bkm"] = "Kom (Kamerun)",
["bkn"] = "Bukitan",
["bko"] = "Kwa'",
["bkp"] = "Iboko",
["bkq"] = "Bakairí",
["bkr"] = "Bakumpai",
["bks"] = "Sorsogon Masbate",
["bkt"] = "Boloki",
["bku"] = "Buhid",
["bkv"] = "Bekwarra",
["bkw"] = "Bekwel",
["bkx"] = "Baikeno",
["bky"] = "Bokyi",
["bkz"] = "Bungku",
["bla"] = "Blackfoot",
["blb"] = "Bilua",
["blc"] = "Bella Coola",
["bld"] = "Bolango",
["ble"] = "Balanta-Kentohe",
["blf"] = "Buol",
["blg"] = "Balau",
["blh"] = "Kuwaa",
["bli"] = "Bolia",
["blj"] = "Bolongan",
["blk"] = "Karen Pa'o",
["bll"] = "Biloxi",
["blm"] = "Beli",
["bln"] = "Bicolano Catanduanes Selatan",
["blo"] = "Anii",
["blp"] = "Blablanga",
["blq"] = "Baluan-Pam",
["blr"] = "Blang",
["bls"] = "Balaesang",
["blt"] = "Tai Dam",
["blv"] = "Kibala",
["blw"] = "Balangao",
["blx"] = "Ayta Mag-Indi",
["bly"] = "Notre",
["blz"] = "Balantak",
["bm"] = "Bambara",
["bma"] = "Lame",
["bmb"] = "Bembe",
["bmc"] = "Biem",
["bmd"] = "Baga Manduri",
["bme"] = "Limassa",
["bmf"] = "Bom",
["bmg"] = "Bamwe",
["bmh"] = "Kein",
["bmi"] = "Bagirmi",
["bmj"] = "Bote-Majhi",
["bmk"] = "Ghayavi",
["bml"] = "Bomboli",
["bmn"] = "Bina",
["bmo"] = "Bambalang",
["bmp"] = "Bulgebi",
["bmq"] = "Bomu",
["bmr"] = "Muinane",
["bmt"] = "Mon Biao",
["bmu"] = "Somba-Siawari",
["bmv"] = "Bum",
["bmw"] = "Bomwali",
["bmx"] = "Baimak",
["bmz"] = "Baramu",
["bn"] = "Bengali",
["bna"] = "Bonerate",
["bnb"] = "Bookan",
["bnd"] = "Banda",
["bne"] = "Bintauna",
["bnf"] = "Masiwang",
["bng"] = "Benga",
["bni"] = "Bangi",
["bnj"] = "Tawbuid Timur",
["bnk"] = "Bierebo",
["bnl"] = "Boon",
["bnm"] = "Batanga",
["bnn"] = "Bunun",
["bno"] = "Asi",
["bnp"] = "Bola",
["bnq"] = "Bantik",
["bnr"] = "Butmas-Tur",
["bns"] = "Bundeli",
["bnt-bal"] = "Balong",
["bnt-bon"] = "Boma Nkuu",
["bnt-boy"] = "Boma Yumu",
["bnt-bwa"] = "Bwala",
["bnt-cmw"] = "Chimwiini",
["bnt-ind"] = "Indanga",
["bnt-lal"] = "Lala (Afrika Selatan)",
["bnt-lwl"] = "Lwel",
["bnt-mpi"] = "Mpiin",
["bnt-mpu"] = "Mpuono",
["bnt-ngu-pro"] = "Proto-Nguni",
["bnt-phu"] = "Phuthi",
["bnt-pro"] = "Proto-Bantu",
["bnt-sbo"] = "Boma Selatan",
["bnt-sts-pro"] = "Proto-Sotho-Tswana",
["bnu"] = "Bentong",
["bnv"] = "Beneraf",
["bnw"] = "Bisis",
["bnx"] = "Bangubangu",
["bny"] = "Bintulu",
["bnz"] = "Beezen",
["bo"] = "Tibet",
["boa"] = "Bora",
["bob"] = "Aweer",
["boe"] = "Mundabli",
["bof"] = "Bolon",
["bog"] = "Isyarat Bamako",
["boh"] = "Boma Utara",
["boi"] = "Barbareño",
["boj"] = "Anjam",
["bok"] = "Bonjo",
["bol"] = "Bole",
["bom"] = "Berom",
["bon"] = "Bine",
["boo"] = "Bozo Tiemacèwè",
["bop"] = "Bonkiman",
["boq"] = "Bogaya",
["bor"] = "Borôro",
["bot"] = "Bongo",
["bou"] = "Bondei",
["bov"] = "Tuwuli",
["bow"] = "Rema",
["box"] = "Buamu",
["boy"] = "Bodo (Afrika Tengah)",
["boz"] = "Bozo Tiéyaxo",
["bpa"] = "Dakaka",
["bpd"] = "Banda-Banda",
["bpg"] = "Bonggo",
["bph"] = "Botlikh",
["bpi"] = "Bagupi",
["bpj"] = "Binji",
["bpk"] = "Orowe",
["bpl"] = "Pijin Broome Pearling Lugger",
["bpm"] = "Biyom",
["bpn"] = "Dzao Min",
["bpo"] = "Anasi",
["bpp"] = "Kaure",
["bpq"] = "Melayu Banda",
["bpr"] = "Blaan Koronadal",
["bps"] = "Blaan Sarangani",
["bpt"] = "Barrow Point",
["bpu"] = "Bongu",
["bpv"] = "Marind Bian",
["bpx"] = "Bareli Palya",
["bpy"] = "Manipuri Bishnupriya",
["bpz"] = "Bilba",
["bqa"] = "Tchumbuli",
["bqb"] = "Bagusa",
["bqc"] = "Boko",
["bqd"] = "Bung",
["bqf"] = "Baga Kaloum",
["bqg"] = "Bago-Kusuntu",
["bqh"] = "Baima",
["bqi"] = "Bakhtiari",
["bqj"] = "Bandial",
["bqk"] = "Banda-Mbrès",
["bql"] = "Bilakura",
["bqm"] = "Wumboko",
["bqn"] = "Isyarat Bulgaria",
["bqo"] = "Balo",
["bqp"] = "Busa",
["bqq"] = "Biritai",
["bqr"] = "Burusu",
["bqs"] = "Bosngun",
["bqt"] = "Bamukumbit",
["bqu"] = "Boguru",
["bqv"] = "Begbere-Ejar",
["bqw"] = "Buru (Nigeria)",
["bqx"] = "Baangi",
["bqy"] = "Isyarat Bengkala",
["bqz"] = "Bakaka",
["br"] = "Breton",
["bra"] = "Braj",
["brb"] = "Lave",
["brc"] = "Kreol Belanda Berbice",
["brd"] = "Baraamu",
["brf"] = "Bera",
["brg"] = "Baure",
["brh"] = "Brahui",
["bri"] = "Mokpwe",
["brj"] = "Bieria",
["brk"] = "Birgid",
["brl"] = "Birwa",
["brm"] = "Barambu",
["brn"] = "Boruca",
["bro"] = "Brokkat",
["brp"] = "Barapasi",
["brq"] = "Breri",
["brr"] = "Birao",
["brs"] = "Baras",
["brt"] = "Bitare",
["bru"] = "Bru Timur",
["brv"] = "Bru Barat",
["brw"] = "Bellari",
["brx"] = "Bodo (India)",
["bry"] = "Burui",
["brz"] = "Bilbil",
["bsa"] = "Abinomn",
["bsb"] = "Bisaya Brunei",
["bsc"] = "Bassari",
["bse"] = "Wushi",
["bsf"] = "Bauchi",
["bsg"] = "Bashkardi",
["bsh"] = "Kamkata-viri",
["bsi"] = "Bassossi",
["bsj"] = "Bangwinji",
["bsk"] = "Burushaski",
["bsl"] = "Basa-Gumna",
["bsm"] = "Busami",
["bsn"] = "Barasana",
["bso"] = "Buso",
["bsp"] = "Baga Sitemu",
["bsq"] = "Bassa",
["bsr"] = "Bassa-Kontagora",
["bss"] = "Akoose",
["bst"] = "Basketo",
["bsu"] = "Bahonsuai",
["bsv"] = "Baga Sobané",
["bsw"] = "Baiso",
["bsx"] = "Yangkam",
["bsy"] = "Bisaya Sabah",
["bta"] = "Bata",
["btc"] = "Bati (Kamerun)",
["btd"] = "Pakpak",
["bte"] = "Gamo-Ningi",
["btf"] = "Birgit",
["btg"] = "Bété Gagnoa",
["bth"] = "Bidayuh Biatah",
["bti"] = "Burate",
["btj"] = "Melayu Bacan",
["btk-pro"] = "Proto-Batak",
["btm"] = "Mandailing",
["btn"] = "Ratagnon",
["bto"] = "Bicolano Iriga",
["btp"] = "Budibud",
["btq"] = "Batek",
["btr"] = "Baetora",
["bts"] = "Simalungun",
["btt"] = "Bete-Bendi",
["btu"] = "Batu",
["btv"] = "Bateri",
["btw"] = "Butuanon",
["btx"] = "Karo",
["bty"] = "Bobot",
["btz"] = "Alas-Kluet",
["bua"] = "Buryat",
["bub"] = "Bua",
["bud"] = "Ntcham",
["bue"] = "Beothuk",
["buf"] = "Bushoong",
["bug"] = "Bugis",
["buh"] = "Bunu Younuo",
["bui"] = "Bongili",
["buj"] = "Basa-Gurmana",
["buk"] = "Bukawa",
["bum"] = "Bulu (Kamerun)",
["bun"] = "Sherbro",
["buo"] = "Terei",
["bup"] = "Busoa",
["buq"] = "Brem",
["bus"] = "Bokobaru",
["but"] = "Bungain",
["buu"] = "Budu",
["buv"] = "Bun",
["buw"] = "Bubi",
["bux"] = "Boghom",
["buy"] = "Mmani",
["bva"] = "Barein",
["bvb"] = "Bube",
["bvc"] = "Baelelea",
["bvd"] = "Baeggu",
["bve"] = "Melayu Berau",
["bvf"] = "Boor",
["bvg"] = "Bonkeng",
["bvh"] = "Bure",
["bvi"] = "Belanda Viri",
["bvj"] = "Baan",
["bvk"] = "Bukat",
["bvl"] = "Isyarat Bolivia",
["bvm"] = "Bamunka",
["bvn"] = "Buna",
["bvo"] = "Bolgo",
["bvp"] = "Bumang",
["bvq"] = "Birri",
["bvr"] = "Burarra",
["bvt"] = "Bati (Indonesia)",
["bvu"] = "Meratus",
["bvv"] = "Baniva",
["bvw"] = "Boga",
["bvx"] = "Babole",
["bvy"] = "Baybayanon",
["bvz"] = "Bauzi",
["bwa"] = "Bwatoo",
["bwb"] = "Namosi-Naitasiri-Serua",
["bwc"] = "Bwile",
["bwd"] = "Bwaidoka",
["bwe"] = "Karen Bwe",
["bwf"] = "Boselewa",
["bwg"] = "Barwe",
["bwh"] = "Bishuo",
["bwi"] = "Baniwa",
["bwj"] = "Bwamu Láá Láá",
["bwk"] = "Bauwaki",
["bwl"] = "Bwela",
["bwm"] = "Biwat",
["bwn"] = "Bunu Wunai",
["bwo"] = "Shinasha",
["bwp"] = "Mandobo Bawah",
["bwq"] = "Bobo Selatan",
["bwr"] = "Bura",
["bws"] = "Bomboma",
["bwt"] = "Bafaw",
["bwu"] = "Buli (Ghana)",
["bww"] = "Bwa",
["bwx"] = "Bunu Bu-Nao",
["bwy"] = "Bwamu Cwi",
["bwz"] = "Bwisi",
["bxa"] = "Bauro",
["bxb"] = "Belanda Bor",
["bxc"] = "Molengue",
["bxd"] = "Pela",
["bxe"] = "Ongota",
["bxf"] = "Bilur",
["bxg"] = "Bangala",
["bxh"] = "Buhutu",
["bxi"] = "Pirlatapa",
["bxj"] = "Bayungu",
["bxk"] = "Bukusu",
["bxl"] = "Jalkunan",
["bxn"] = "Burduna",
["bxo"] = "Barikanchi",
["bxp"] = "Bebil",
["bxq"] = "Beele",
["bxs"] = "Busam",
["bxv"] = "Berakou",
["bxw"] = "Banka",
["bxz"] = "Binahari",
["bya"] = "Batak Palawan",
["byb"] = "Bikya",
["byc"] = "Ubaghara",
["byd"] = "Benyadu'",
["bye"] = "Pouye",
["byf"] = "Bete",
["byg"] = "Baygo",
["byh"] = "Bujhyal",
["byi"] = "Buyu",
["byj"] = "Binawa",
["byk"] = "Biao",
["byl"] = "Bayono",
["bym"] = "Bidyara",
["byn"] = "Blin",
["byo"] = "Biyo",
["byp"] = "Bumaji",
["byq"] = "Basay",
["byr"] = "Baruya",
["bys"] = "Burak",
["byt"] = "Berti",
["byv"] = "Medumba",
["byw"] = "Belhariya",
["byx"] = "Qaqet",
["byz"] = "Banaro",
["bza"] = "Bandi",
["bzb"] = "Andio",
["bzd"] = "Bribri",
["bze"] = "Bozo Jenaama",
["bzf"] = "Boikin",
["bzg"] = "Babuza",
["bzh"] = "Buang Mapos",
["bzi"] = "Bisu",
["bzj"] = "Kreol Belize",
["bzk"] = "Kreol Nikaragua",
["bzl"] = "Boano (Sulawesi)",
["bzm"] = "Bolondo",
["bzn"] = "Boano (Maluku)",
["bzo"] = "Bozaba",
["bzp"] = "Kemberano",
["bzq"] = "Buli (Indonesia)",
["bzr"] = "Biri",
["bzs"] = "Isyarat Brasil",
["bzu"] = "Burmeso",
["bzv"] = "Bebe",
["bzw"] = "Basa",
["bzx"] = "Bozo Hainyaxo",
["bzy"] = "Obanliku",
["bzz"] = "Evant",
["ca"] = "Katala",
["caa"] = "Ch'orti'",
["cab"] = "Garifuna",
["cac"] = "Chuj",
["cad"] = "Caddo",
["cae"] = "Laalaa",
["caf"] = "Carrier Selatan",
["cag"] = "Nivaclé",
["cah"] = "Cahuarano",
["caj"] = "Chané",
["cak"] = "Kaqchikel",
["cal"] = "Carolinia",
["cam"] = "Cemuhî",
["can"] = "Chambri",
["cao"] = "Chácobo",
["cap"] = "Chipaya",
["caq"] = "Nikobar Car",
["car"] = "Carib Galibi",
["cas"] = "Tsimané",
["cau-abz-pro"] = "Proto-Abkhaz-Abaza",
["cau-ava-pro"] = "Proto-Avaro-Andia",
["cau-cir-pro"] = "Proto-Circassia",
["cau-drg-pro"] = "Proto-Dargwa",
["cau-lzg-pro"] = "Proto-Lezghia",
["cau-nec-pro"] = "Proto-Kaukasia Timur Laut",
["cau-nkh-pro"] = "Proto-Nakh",
["cau-nwc-pro"] = "Proto-Kaukasia Barat Laut",
["cau-tsz-pro"] = "Proto-Tsezia",
["cav"] = "Cavineña",
["caw"] = "Callawalla",
["cax"] = "Chiquitano",
["cay"] = "Cayuga",
["caz"] = "Canichana",
["cba-ata"] = "Atanques",
["cba-cat"] = "Chibcha Catío",
["cba-dor"] = "Dorasque",
["cba-dui"] = "Duit",
["cba-hue"] = "Huetar",
["cba-nut"] = "Nutabe",
["cba-pro"] = "Proto-Chibcha",
["cbb"] = "Cabiyarí",
["cbc"] = "Carapana",
["cbd"] = "Carijona",
["cbg"] = "Chimila",
["cbi"] = "Chachi",
["cbj"] = "Ede Cabe",
["cbk"] = "Chavacano",
["cbl"] = "Chin Bualkhaw",
["cbn"] = "Kur Nyah",
["cbo"] = "Izora",
["cbq"] = "Shuba",
["cbr"] = "Cashibo-Cacataibo",
["cbs"] = "Cashinahua",
["cbt"] = "Chayahuita",
["cbu"] = "Candoshi-Shapra",
["cbv"] = "Cacua",
["cbw"] = "Kinabalian",
["cby"] = "Carabayo",
["cca"] = "Cauca",
["ccc"] = "Chamicuro",
["ccd"] = "Cafundó",
["cce"] = "Chopi",
["ccg"] = "Chamba Daka",
["cch"] = "Atsam",
["ccj"] = "Kasanga",
["ccl"] = "Cutchi-Swahili",
["ccm"] = "Kreol Melayu Malaka",
["ccn-pro"] = "Proto-Kaukasia Utara",
["cco"] = "Chinantec Comaltepec",
["ccp"] = "Chakma",
["ccr"] = "Cacaopera",
["ccs-gzn-pro"] = "Proto-Georgia-Zan",
["ccs-pro"] = "Proto-Kartvelia",
["cda"] = "Choni",
["cdc-cbm-pro"] = "Proto-Chad Tengah",
["cdc-mas-pro"] = "Proto-Masa",
["cdc-pro"] = "Proto-Chadic",
["cdd-pro"] = "Proto-Caddo",
["cde"] = "Chenchu",
["cdf"] = "Chiru",
["cdh"] = "Chambeali",
["cdi"] = "Chodri",
["cdj"] = "Churahi",
["cdm"] = "Chepang",
["cdn"] = "Chaudangsi",
["cdo"] = "Min Dong",
["cdr"] = "Cinda-Regi-Tiyal",
["cds"] = "Isyarat Chad",
["cdy"] = "Chadong",
["cdz"] = "Koda",
["ce"] = "Chechen",
["cea"] = "Chehalis Hilir",
["ceb"] = "Cebuano",
["ceg"] = "Chamacoco",
["cel-bry-pro"] = "Proto-Brythonic",
["cel-gal"] = "Gallaecia",
["cel-gau"] = "Gaulish",
["cel-pro"] = "Proto-Keltik",
["cen"] = "Cen",
["cet"] = "Centúúm",
["cfa"] = "Dijim-Bwilim",
["cfd"] = "Cara",
["cfg"] = "Como Karim",
["cfm"] = "Chin Falam",
["cga"] = "Changriwa",
["cgc"] = "Kagayanen",
["cgg"] = "Rukiga",
["cgk"] = "Chocangaca",
["ch"] = "Chamorro",
["chb"] = "Chibcha",
["chc"] = "Catawba",
["chd"] = "Chontal Oaxaca Pegunungan",
["chf"] = "Chontal Tabasco",
["chg"] = "Chagatai",
["chh"] = "Chinook",
["chi-pro"] = "Proto-Chimakuan",
["chj"] = "Chinantec Ojitlán",
["chk"] = "Chuuk",
["chl"] = "Cahuilla",
["chm-pro"] = "Proto-Mari",
["chn"] = "Chinook Jargon",
["cho"] = "Choctaw",
["chp"] = "Chipewyan",
["chq"] = "Chinantec Quiotepec",
["chr"] = "Cherokee",
["cht"] = "Cholón",
["chw"] = "Chuabo",
["chx"] = "Chantyal",
["chy"] = "Cheyenne",
["chz"] = "Chinantec Ozumacín",
["cia"] = "Cia-Cia",
["cib"] = "Gbe Ci",
["cic"] = "Chickasaw",
["cid"] = "Chimariko",
["cie"] = "Cineni",
["cih"] = "Chinali",
["cik"] = "Kinnauri Chitkuli",
["cim"] = "Cimbria",
["cin"] = "Cinta Larga",
["cip"] = "Chiapanec",
["cir"] = "Tiri",
["ciy"] = "Chaima",
["cja"] = "Cham Barat",
["cje"] = "Chru",
["cjh"] = "Chehalis Hulu",
["cji"] = "Chamalal",
["cjk"] = "Chokwe",
["cjm"] = "Cham Timur",
["cjn"] = "Chenapia",
["cjo"] = "Ashéninka Pajonal",
["cjp"] = "Cabécar",
["cjs"] = "Shor",
["cjv"] = "Chuave",
["cjy"] = "Jin",
["ckb"] = "Kurdi Tengah",
["ckh"] = "Chak",
["ckl"] = "Cibak",
["ckn"] = "Chin Kaang",
["cko"] = "Anufo",
["ckq"] = "Kajakse",
["ckr"] = "Kairak",
["cks"] = "Tayo",
["ckt"] = "Chukchi",
["cku"] = "Koasati",
["ckv"] = "Kavalan",
["ckx"] = "Caka",
["cky"] = "Cakfem-Mushere",
["ckz"] = "campuran Cakchiquel-Quiché",
["cla"] = "Ron",
["clc"] = "Chilcotin",
["cld"] = "Neo-Aramaik Khaldea",
["cle"] = "Chinantec Lealao",
["clh"] = "Chilisso",
["cli"] = "Chakali",
["clj"] = "Chin Laitu",
["clk"] = "Idu",
["cll"] = "Chala",
["clm"] = "Klallam",
["clo"] = "Chontal Oaxaca Dataran",
["clt"] = "Chin Lautu",
["clu"] = "Caluyanun",
["clw"] = "Chulym",
["cly"] = "Chatino Pegunungan Timur",
["cma"] = "Maa",
["cmc-pro"] = "Proto-Chamic",
["cme"] = "Cerma",
["cmg"] = "Mongolia Klasik",
["cmi"] = "Emberá-Chamí",
["cml"] = "Campalagian",
["cmm"] = "Michigamea",
["cmn"] = "Tionghoa Mandarin",
["cmo"] = "Mnong Tengah",
["cmr"] = "Chin Mro",
["cms"] = "Messapic",
["cmt"] = "Camtho",
["cna"] = "Changthang",
["cnb"] = "Chin Chinbon",
["cnc"] = "Côông",
["cng"] = "Qiang Utara",
["cnh"] = "Lai",
["cni"] = "Asháninka",
["cnk"] = "Chin Khumi",
["cnl"] = "Chinantec Lalana",
["cno"] = "Con",
["cns"] = "Asmat Tengah",
["cnt"] = "Chinantec Tepetotutla",
["cnu"] = "Chenoua",
["cnw"] = "Chin Ngawn",
["cnx"] = "Cornish Tengahan",
["co"] = "Korsika",
["coa"] = "Melayu Kepulauan Cocos",
["cob"] = "Chicomuceltec",
["coc"] = "Cocopa",
["cod"] = "Cocama",
["coe"] = "Koreguaje",
["cof"] = "Tsafiki",
["cog"] = "Chong",
["coh"] = "Chichonyi-Chidzihana-Chikauma",
["coj"] = "Cochimi",
["cok"] = "Santa Teresa Cora",
["col"] = "Columbia-Wenatchi",
["com"] = "Comanche",
["con"] = "Cofán",
["coo"] = "Comox",
["cop"] = "Coptic",
["coq"] = "Coquille",
["cot"] = "Caquinte",
["cou"] = "Wamey",
["cov"] = "Miao Cao",
["cow"] = "Cowlitz",
["cox"] = "Nanti",
["coy"] = "Coyaima",
["coz"] = "Chochotec",
["cpa"] = "Chinantec Palantla",
["cpb"] = "Ucayali-Yurúa Ashéninka",
["cpc"] = "Ajyíninka Apurucayali",
["cpe-mar"] = "Spirit Maroon",
["cpe-spp"] = "Pijin Perkebunan Samoa",
["cpg"] = "Yunani Kapadokia",
["cpi"] = "Pijin Inggris Tiongkok",
["cpn"] = "Cherepon",
["cpo"] = "Kpee",
["cps"] = "Capiznon",
["cpu"] = "Pichis Ashéninka",
["cpx"] = "Puxian",
["cpy"] = "Ucayali Ashéninka Selatan",
["cqd"] = "Miao Kluster Chuanqiandian",
["cr"] = "Cree",
["cra"] = "Chara",
["crb"] = "Carib Island",
["crc"] = "Lonwolwol",
["crd"] = "Coeur d'Alene",
["crf"] = "Caramanta",
["crg"] = "Michif",
["crh"] = "Tatar Krimea",
["cri"] = "Sãotomense",
["crj"] = "Cree Tenggara",
["crk"] = "Cree Plains",
["crl"] = "Cree Timur Laut",
["crm"] = "Cree Moose",
["crn"] = "Cora",
["cro"] = "Crow",
["crp-gep"] = "Pijin Grinlandia Barat",
["crp-mpp"] = "Pijin Portugis Makau",
["crp-rsn"] = "Russenorsk",
["crp-tnw"] = "Tangwang",
["crp-tpr"] = "Pijin Rusia Taimyr",
["crq"] = "Chorote Iyo'wujwa",
["crr"] = "Algonquian Carolina",
["crs"] = "Kreol Seychelle",
["crt"] = "Chorote Iyojwa'ja",
["crv"] = "Chaura",
["crw"] = "Chrau",
["crx"] = "Carrier",
["cry"] = "Cori",
["crz"] = "Cruzeño",
["cs"] = "Ceko",
["csa"] = "Chinantec Chiltepec",
["csb"] = "Kashubia",
["csc"] = "Isyarat Katala",
["csd"] = "Isyarat Chiangmai",
["cse"] = "Isyarat Ceko",
["csf"] = "Isyarat Kuba",
["csg"] = "Isyarat Cile",
["csh"] = "Chin Asho",
["csi"] = "Miwok Coast",
["csj"] = "Chin Songlai",
["csk"] = "Jola-Kasa",
["csl"] = "Isyarat Tionghoa",
["csm"] = "Miwok Sierra Tengah",
["csn"] = "Isyarat Kolombia",
["cso"] = "Chinantec Sochiapam",
["csq"] = "Isyarat Kroasia",
["csr"] = "Isyarat Kosta Rika",
["css"] = "Ohlone Selatan",
["cst"] = "Ohlone Utara",
["csu-bba-pro"] = "Proto-Bongo-Bagirmi",
["csu-maa-pro"] = "Proto-Mangbetu",
["csu-pro"] = "Proto-Sudan Tengah",
["csu-sar-pro"] = "Proto-Sara",
["csv"] = "Chin Sumtu",
["csw"] = "Cree Swampy",
["csy"] = "Chin Siyin",
["csz"] = "Coos",
["cta"] = "Chatino Tataltepec",
["ctc"] = "Chetco-Tolowa",
["ctd"] = "Chin Tedim",
["cte"] = "Chinantec Tepinapa",
["ctg"] = "Chittagong",
["cth"] = "Chin Thaiphum",
["ctl"] = "Chinantec Tlacoatzintepec",
["ctm"] = "Chitimacha",
["ctn"] = "Chhintange",
["cto"] = "Emberá-Catío",
["ctp"] = "Chatino Pegunungan Barat",
["ctp-san"] = "Chatino San Juan Quiahije",
["cts"] = "Bicolano Catanduanes Utara",
["ctt"] = "Wayanad Chetti",
["ctu"] = "Chol",
["ctz"] = "Chatino Zacatepec",
["cu"] = "Slavonia Gerejawi Kuno",
["cua"] = "Cua",
["cub"] = "Cubeo",
["cuc"] = "Chinantec Usila",
["cug"] = "Cung",
["cuh"] = "Chuka",
["cui"] = "Cuiba",
["cuj"] = "Piro Mashco",
["cuk"] = "Kuna",
["cul"] = "Culina",
["cuo"] = "Cumanagoto",
["cup"] = "Cupeño",
["cuq"] = "Cun",
["cur"] = "Chhulung",
["cus-ash"] = "Ashraaf",
["cus-hec-pro"] = "Proto-Cushitic Pegunungan Timur",
["cus-pro"] = "Proto-Cushitic",
["cus-som-pro"] = "Proto-Somaloid",
["cus-sou-pro"] = "Proto-Cushitic Selatan",
["cut"] = "Cuicatec Teutila",
["cuu"] = "Tai Ya",
["cuv"] = "Cuvok",
["cuw"] = "Chukwa",
["cux"] = "Cuicatec Tepeuxila",
["cuy"] = "Cuitlatec",
["cv"] = "Chuvash",
["cvg"] = "Chug",
["cvn"] = "Chinantec Valle Nacional",
["cwa"] = "Kabwa",
["cwb"] = "Maindo",
["cwd"] = "Cree Woods",
["cwe"] = "Kwere",
["cwg"] = "Chewong",
["cwt"] = "Kuwaataay",
["cy"] = "Welsh",
["cya"] = "Chatino Nopala",
["cyb"] = "Cayubaba",
["cyo"] = "Cuyunon",
["czh"] = "Huizhou",
["czk"] = "Knaanic",
["czn"] = "Chatino Zenzontepec",
["czo"] = "Min Zhong",
["czt"] = "Chin Zotung",
["da"] = "Denmark",
["daa"] = "Dangaléat",
["dac"] = "Dambi",
["dad"] = "Marik",
["dae"] = "Duupa",
["dag"] = "Dagbani",
["dah"] = "Gwahatike",
["dai"] = "Day",
["daj"] = "Daju Dar Fur",
["dak"] = "Dakota",
["dal"] = "Dahalo",
["dam"] = "Damakawa",
["dao"] = "Chin Daai",
["daq"] = "Maria Dandami",
["dar"] = "Dargwa",
["das"] = "Daho-Doo",
["dau"] = "Daju Dar Sila",
["dav"] = "Taita",
["daw"] = "Davawenyo",
["dax"] = "Dayi",
["daz"] = "Dao",
["dba"] = "Bangime",
["dbb"] = "Deno",
["dbd"] = "Dadiya",
["dbe"] = "Dabe",
["dbf"] = "Edopi",
["dbg"] = "Dom Dogul",
["dbi"] = "Doka",
["dbj"] = "Ida'an",
["dbl"] = "Dyirbal",
["dbm"] = "Duguri",
["dbn"] = "Duriankere",
["dbo"] = "Dulbu",
["dbp"] = "Duwai",
["dbq"] = "Daba",
["dbr"] = "Dabarre",
["dbt"] = "Ben Tey",
["dbu"] = "Dogon Bondum Dom",
["dbv"] = "Dungu",
["dbw"] = "Dogon Bankan Tey",
["dby"] = "Dibiyaso",
["dcc"] = "Deccani",
["dcr"] = "Negerhollands",
["dda"] = "Dadi Dadi",
["ddd"] = "Dongotono",
["dde"] = "Doondo",
["ddg"] = "Fataluku",
["ddi"] = "Diodio",
["ddj"] = "Jaru",
["ddn"] = "Dendi",
["ddo"] = "Tsez",
["ddr"] = "Dhudhuroa",
["dds"] = "Dogon Donno So",
["ddw"] = "Dawera-Daweloor",
["de"] = "Jerman",
["dec"] = "Dagik",
["ded"] = "Dedua",
["dee"] = "Dewoin",
["def"] = "Dezfuli",
["deg"] = "Degema",
["deh"] = "Dehwari",
["dei"] = "Demisa",
["dek"] = "Dek",
["dem"] = "Dem",
["den"] = "Slavey",
["dep"] = "Pijin Delaware",
["der"] = "Deori",
["des"] = "Desano",
["dev"] = "Domung",
["dez"] = "Dengese",
["dga"] = "Dagaare Selatan",
["dgb"] = "Bunoge",
["dgc"] = "Agta Casiguran Dumagat",
["dgd"] = "Dagaari Dioula",
["dge"] = "Degenan",
["dgg"] = "Doga",
["dgh"] = "Dghwede",
["dgi"] = "Dagara Utara",
["dgk"] = "Dagba",
["dgn"] = "Dagoman",
["dgo"] = "Dogri Hindi",
["dgr"] = "Dogrib",
["dgs"] = "Dogoso",
["dgt"] = "Ntra'ngith",
["dgw"] = "Daungwurrung",
["dgx"] = "Doghoro",
["dgz"] = "Daga",
["dhg"] = "Dhangu",
["dhi"] = "Dhimal",
["dhl"] = "Dhalandji",
["dhm"] = "Zemba",
["dhn"] = "Dhanki",
["dho"] = "Dhodia",
["dhr"] = "Tharrgari",
["dhs"] = "Dhaiso",
["dhu"] = "Dhurga",
["dhv"] = "Drehu",
["dhw"] = "Danuwar",
["dhx"] = "Dhungaloo",
["dia"] = "Dia",
["dib"] = "Dinka Tengah Selatan",
["dic"] = "Lakota Dida",
["did"] = "Didinga",
["dif"] = "Dieri",
["dig"] = "Digo",
["dii"] = "Dimbong",
["dij"] = "Dai",
["dik"] = "Dinka Barat Daya",
["dil"] = "Dilling",
["dim"] = "Dime",
["din"] = "Dinka",
["dio"] = "Dibo",
["dip"] = "Dinka Timur Laut",
["diq"] = "Zaza Selatan",
["dir"] = "Dirim",
["dis"] = "Dimasa",
["diu"] = "Gciriku",
["diw"] = "Dinka Barat Laut",
["dix"] = "Dixon Reef",
["diy"] = "Diuwe",
["diz"] = "Ding",
["dja"] = "Djadjawurrung",
["djb"] = "Djinba",
["djc"] = "Daju Dar Daju",
["djd"] = "Jaminjung",
["dje"] = "Zarma",
["djf"] = "Djangun",
["dji"] = "Djinang",
["djj"] = "Ndjébbana",
["djk"] = "Aukan",
["djl"] = "Djiwarli",
["djm"] = "Jamsay",
["djn"] = "Djauan",
["djo"] = "Jangkang",
["djr"] = "Djambarrpuyngu",
["dju"] = "Kapriman",
["djw"] = "Djawi",
["dka"] = "Dakpa",
["dkk"] = "Dakka",
["dkr"] = "Kuijau",
["dks"] = "Dinka Tenggara",
["dkx"] = "Mazagway",
["dlg"] = "Dolgan",
["dlk"] = "Dahalik",
["dlm"] = "Dalmatia",
["dln"] = "Darlong",
["dma"] = "Duma",
["dmb"] = "Dogon Mombo",
["dmc"] = "Gavak",
["dmd"] = "Madhi Madhi",
["dme"] = "Dugwor",
["dmf"] = "Medefaidrin",
["dmg"] = "Kinabatangan Hulu",
["dmk"] = "Domaaki",
["dml"] = "Dameli",
["dmm"] = "Dama (Nigeria)",
["dmn-dam"] = "Dama (Sierra Leone)",
["dmn-mdw-pro"] = "Proto-Mande Barat",
["dmn-pro"] = "Proto-Mande",
["dmo"] = "Kemezung",
["dmr"] = "Damar Timur",
["dms"] = "Dampelas",
["dmu"] = "Dubu",
["dmv"] = "Dumpas",
["dmw"] = "Mudburra",
["dmx"] = "Dema",
["dmy"] = "Demta",
["dna"] = "Dani Upper Grand Valley",
["dnd"] = "Daonda",
["dne"] = "Ndendeule",
["dng"] = "Dungan",
["dni"] = "Dani Lower Grand Valley",
["dnj"] = "Dan",
["dnk"] = "Dengka",
["dnn"] = "Dzuun",
["dno"] = "Ndrulo",
["dnr"] = "Danaru",
["dnt"] = "Dani Mid Grand Valley",
["dnu"] = "Danau",
["dnv"] = "Danu",
["dnw"] = "Dani Barat",
["dny"] = "Dení",
["doa"] = "Dom",
["dob"] = "Dobu",
["doc"] = "Kam Utara",
["doe"] = "Doe",
["dof"] = "Domu",
["doh"] = "Dong",
["doi"] = "Dogri",
["dok"] = "Dondo",
["dol"] = "Doso",
["don"] = "Doura",
["doo"] = "Dongo",
["dop"] = "Lukpa",
["doq"] = "Isyarat Dominika",
["dor"] = "Dori'o",
["dos"] = "Dogosé",
["dot"] = "Dass",
["dov"] = "Toka-Leya",
["dow"] = "Doyayo",
["dox"] = "Bussa",
["doy"] = "Dompo",
["doz"] = "Dorze",
["dpp"] = "Papar",
["dra-mkn"] = "Kannada Tengahan",
["dra-okn"] = "Kannada Kuno",
["dra-ote"] = "Telugu Kuno",
["dra-pro"] = "Proto-Dravidia",
["drb"] = "Dair",
["drc"] = "Minderico",
["drd"] = "Darmiya",
["drg"] = "Rungus",
["dri"] = "Lela",
["drl"] = "Baagandji",
["drn"] = "Damar Barat",
["dro"] = "Melanau Daro-Matu",
["drq"] = "Dura",
["drs"] = "Gedeo",
["dru"] = "Rukai",
["dru-pro"] = "Proto-Rukai",
["dry"] = "Darai",
["dsb"] = "Sorbian Hilir",
["dse"] = "Isyarat Belanda",
["dsh"] = "Daasanach",
["dsi"] = "Disa",
["dsl"] = "Isyarat Denmark",
["dsn"] = "Dusner",
["dso"] = "Desiya",
["dsq"] = "Tadaksahak",
["dta"] = "Daur",
["dtb"] = "Kadazan Labuk-Kinabatangan",
["dtd"] = "Ditidaht",
["dth"] = "Adithinngithigh",
["dti"] = "Dogon Ana Tinga",
["dtk"] = "Dogon Tene Kan",
["dtm"] = "Dogon Tomo Kan",
["dto"] = "Tommo So",
["dtp"] = "Dusun Tengah",
["dtr"] = "Lotud",
["dts"] = "Dogon Toro So",
["dtt"] = "Dogon Toro Tegu",
["dtu"] = "Dogon Tebul Ure",
["dty"] = "Doteli",
["dua"] = "Duala",
["dub"] = "Dubli",
["duc"] = "Duna",
["due"] = "Agta Umiray Dumaget",
["duf"] = "Dumbea",
["dug"] = "Chiduruma",
["duh"] = "Dungra Bhil",
["dui"] = "Dumun",
["duk"] = "Uyajitaya",
["dul"] = "Agta Alabat Island",
["dum"] = "Belanda Tengahan",
["dun"] = "Dusun Deyah",
["duo"] = "Agta Dupaningan",
["dup"] = "Duano",
["duq"] = "Dusun Malang",
["dur"] = "Dii",
["dus"] = "Dumi",
["duu"] = "Drung",
["duv"] = "Duvle",
["duw"] = "Dusun Witu",
["dux"] = "Duun",
["duy"] = "Agta Dicamay",
["duz"] = "Duli",
["dv"] = "Dhivehi",
["dva"] = "Duau",
["dwa"] = "Diri",
["dwr"] = "Dawro",
["dwu"] = "Dhuwal",
["dww"] = "Dawawa",
["dwy"] = "Dhuwaya",
["dwz"] = "Dewas Rai",
["dya"] = "Dyan",
["dyb"] = "Dyaberdyaber",
["dyd"] = "Dyugun",
["dyg"] = "Agta Villa Viciosa",
["dyi"] = "Djimini",
["dym"] = "Dogon Yanda",
["dyn"] = "Dyangadi",
["dyo"] = "Jola-Fonyi",
["dyu"] = "Dyula",
["dyy"] = "Dyaabugay",
["dz"] = "Dzongkha",
["dza"] = "Tunzu",
["dzg"] = "Dazaga",
["dzl"] = "Dzala",
["dzn"] = "Dzando",
["ebg"] = "Ebughu",
["ebk"] = "Bontoc Timur",
["ebr"] = "Ebrié",
["ebu"] = "Embu",
["ecr"] = "Eteocretan",
["ecs"] = "Isyarat Ekuador",
["ecy"] = "Eteocypriot",
["ee"] = "Ewe",
["eee"] = "E",
["efa"] = "Efai",
["efe"] = "Efe",
["efi"] = "Efik",
["ega"] = "Ega",
["egl"] = "Emilia",
["ego"] = "Eggon",
["egx-dem"] = "Demotic",
["egy"] = "Mesir",
["ehu"] = "Ehueun",
["eip"] = "Eipomek",
["eit"] = "Eitiep",
["eiv"] = "Askopan",
["eja"] = "Ejamat",
["eka"] = "Ekajuk",
["eke"] = "Ekit",
["ekg"] = "Ekari",
["eki"] = "Eki",
["ekl"] = "Kolhe",
["ekm"] = "Elip",
["eko"] = "Koti",
["ekp"] = "Ekpeye",
["ekr"] = "Yace",
["eky"] = "Kayah Timur",
["el"] = "Yunani",
["ele"] = "Elepi",
["elh"] = "El Hugeirat",
["eli"] = "Nding",
["elk"] = "Elkei",
["elm"] = "Eleme",
["elo"] = "El Molo",
["elu"] = "Elu",
["elu-prk"] = "Helu",
["elx"] = "Elamite",
["ema"] = "Emai",
["emb"] = "Embaloh",
["eme"] = "Emerillon",
["emg"] = "Meohang Timur",
["emi"] = "Mussau-Emira",
["emk"] = "Maninkakan Timur",
["emm"] = "Mamulique",
["emn"] = "Eman",
["emp"] = "Emberá Utara",
["ems"] = "Alutiiq",
["emu"] = "Muria Timur",
["emw"] = "Emplawas",
["emx"] = "Erromintxela",
["emy"] = "Maya Epigrafik",
["en"] = "Inggris",
["ena"] = "Apali",
["enb"] = "Markweeta",
["enc"] = "En",
["end"] = "Ende",
["enf"] = "Enets Hutan",
["enh"] = "Enets Tundra",
["enl"] = "Enlhet",
["enm"] = "Inggris Tengahan",
["enn"] = "Engenni",
["eno"] = "Enggano",
["enq"] = "Enga",
["enr"] = "Emem",
["enu"] = "Enu",
["env"] = "Enwan",
["enw"] = "Enwang",
["enx"] = "Enxet",
["eo"] = "Esperanto",
["eot"] = "Eotile",
["epi"] = "Epie",
["era"] = "Eravallan",
["erg"] = "Sie",
["erh"] = "Eruwa",
["eri"] = "Ogea",
["erk"] = "Efate Selatan",
["ero"] = "Horpa",
["err"] = "Erre",
["ers"] = "Ersu",
["ert"] = "Eritai",
["erw"] = "Erokwanas",
["es"] = "Spanyol",
["ese"] = "Ese Ejja",
["esh"] = "Eshtehardi",
["esi"] = "Inupiaq Alaska Utara",
["esk"] = "Inupiaq Alaska Barat Laut",
["esl"] = "Isyarat Mesir",
["esm"] = "Esuma",
["esn"] = "Isyarat El Salvador",
["eso"] = "Isyarat Estonia",
["esq"] = "Esselen",
["ess"] = "Siberia Yupik Tengah",
["esu"] = "Yup'ik",
["esx-esk-pro"] = "Proto-Eskimo",
["esx-ink"] = "Inuktun",
["esx-inq"] = "Inuinnaqtun",
["esx-inu-pro"] = "Proto-Inuit",
["esx-pro"] = "Proto-Eskimo-Aleut",
["esx-tut"] = "Tunumiisut",
["esy"] = "Eskayan",
["et"] = "Estonia",
["etb"] = "Etebi",
["etc"] = "Etchemin",
["eth"] = "Isyarat Etiopia",
["etn"] = "Eton (Vanuatu)",
["eto"] = "Eton (Kamerun)",
["etr"] = "Edolo",
["ets"] = "Yekhee",
["ett"] = "Etruscan",
["etu"] = "Ejagham",
["etx"] = "Eten",
["etz"] = "Semimi",
["eu"] = "Basque",
["euq-pro"] = "Proto-Basque",
["eve"] = "Even",
["evh"] = "Uvbie",
["evn"] = "Evenki",
["ewo"] = "Ewondo",
["ext"] = "Extremadura",
["eya"] = "Eyak",
["eyo"] = "Keiyo",
["eza"] = "Ezaa",
["eze"] = "Uzekwe",
["fa"] = "Persia",
["faa"] = "Fasu",
["fab"] = "Annobonese",
["fad"] = "Wagi",
["faf"] = "Fagani",
["fag"] = "Finongan",
["fah"] = "Fali Baissa",
["fai"] = "Faiwol",
["faj"] = "Faita",
["fak"] = "Fang (Beboid)",
["fal"] = "Fali Selatan",
["fam"] = "Fam",
["fan"] = "Fang (Bantu)",
["fap"] = "Palor",
["far"] = "Fataleka",
["fau"] = "Fayu",
["fax"] = "Fala",
["fay"] = "Fars Barat Daya",
["faz"] = "Fars Barat Laut",
["fbl"] = "Bikol Albay Barat",
["fcs"] = "Isyarat Quebec",
["fer"] = "Feroge",
["ff"] = "Fula",
["ffi"] = "Foia Foia",
["fgr"] = "Fongoro",
["fi"] = "Finlandia",
["fia"] = "Nobiin",
["fie"] = "Fyer",
["fip"] = "Fipa",
["fir"] = "Firan",
["fit"] = "Meänkieli",
["fiw"] = "Fiwaga",
["fj"] = "Fiji",
["fkk"] = "Kirya-Konzel",
["fkv"] = "Kven",
["fla"] = "Salish Montana",
["flh"] = "Foau",
["fli"] = "Fali",
["fll"] = "Fali Utara",
["fln"] = "Flinders Island",
["flr"] = "Fuliiru",
["fly"] = "Tsotsitaal",
["fmp"] = "Fe'fe'",
["fmu"] = "Muria Barat Jauh",
["fng"] = "Fanagalo",
["fni"] = "Fania",
["fo"] = "Faroe",
["fod"] = "Foodo",
["foi"] = "Foi",
["fom"] = "Foma",
["fon"] = "Fon",
["for"] = "Fore",
["fos"] = "Siraya",
["fpe"] = "Pichinglis",
["fqs"] = "Fas",
["fr"] = "Prancis",
["frd"] = "Fordata",
["frm"] = "Prancis Tengahan",
["fro"] = "Prancis Kuno",
["frp"] = "Franco-Provençal",
["frq"] = "Forak",
["frr"] = "Frisia Utara",
["frt"] = "Fortsenal",
["fse"] = "Isyarat Finlandia",
["fsl"] = "Isyarat Prancis",
["fss"] = "Isyarat Finlandia-Swedia",
["fud"] = "Futuna Timur",
["fuj"] = "Ko",
["fum"] = "Fum",
["fun"] = "Fulniô",
["fur"] = "Friuli",
["fut"] = "Futuna-Aniwa",
["fuu"] = "Furu",
["fuy"] = "Fuyug",
["fvr"] = "Fur",
["fwa"] = "Fwâi",
["fwe"] = "Fwe",
["fy"] = "Frisia Barat",
["ga"] = "Irlandia",
["gaa"] = "Ga",
["gab"] = "Gabri",
["gac"] = "campuran Great Andaman",
["gad"] = "Gaddang",
["gae"] = "Warekena",
["gaf"] = "Gende",
["gag"] = "Gagauz",
["gah"] = "Alekano",
["gai"] = "Borei",
["gaj"] = "Gadsup",
["gak"] = "Gamkonora",
["gal"] = "Galoli",
["gam"] = "Kandawo",
["gan"] = "Gan",
["gao"] = "Gants",
["gap"] = "Gal",
["gaq"] = "Gata'",
["gar"] = "Galeya",
["gas"] = "Adiwasi Garasia",
["gat"] = "Kenati",
["gau"] = "Kondekor",
["gaw"] = "Nobonob",
["gay"] = "Gayo",
["gba"] = "Gbaya",
["gbb"] = "Kaytetye",
["gbd"] = "Karadjeri",
["gbe"] = "Niksek",
["gbf"] = "Gaikundi",
["gbg"] = "Gbanziri",
["gbh"] = "Gbe Defi",
["gbi"] = "Galela",
["gbj"] = "Bodo Gadaba",
["gbk"] = "Gaddi",
["gbl"] = "Gamit",
["gbm"] = "Garhwali",
["gbn"] = "Mo'da",
["gbo"] = "Grebo Utara",
["gbp"] = "Gbaya-Bossangoa",
["gbq"] = "Gbaya-Bozoum",
["gbr"] = "Gbagyi",
["gbs"] = "Gbe Gbesi",
["gbu"] = "Gagadu",
["gbv"] = "Gbanu",
["gbw"] = "Gabi",
["gbx"] = "Gbe Xwla Timur",
["gby"] = "Gbari",
["gcc"] = "Mali",
["gcd"] = "Ganggalida",
["gce"] = "Galice",
["gcf"] = "Kreol Antilla",
["gcl"] = "Kreol Inggris Grenada",
["gcn"] = "Gaina",
["gcr"] = "Kreol Guiana",
["gct"] = "Jerman Colonia Tovar",
["gd"] = "Gaelik Skotlandia",
["gdb"] = "Ollari",
["gdc"] = "Gugu Badhun",
["gdd"] = "Gedaged",
["gde"] = "Gude",
["gdf"] = "Guduf-Gava",
["gdg"] = "Ga'dang",
["gdh"] = "Gadjerawang",
["gdi"] = "Gundi",
["gdj"] = "Kurtjar",
["gdk"] = "Gadang",
["gdl"] = "Dirasha",
["gdm"] = "Laal",
["gdn"] = "Umanakaina",
["gdo"] = "Godoberi",
["gdq"] = "Mehri",
["gdr"] = "Wipi",
["gds"] = "Isyarat Ghandruk",
["gdt"] = "Kungardutyi",
["gdu"] = "Gudu",
["gdx"] = "Godwari",
["gea"] = "Geruma",
["geb"] = "Kire",
["gec"] = "Grebo Gboloo",
["ged"] = "Gade",
["geg"] = "Gengle",
["geh"] = "Hutterisch",
["gei"] = "Gebe",
["gej"] = "Gen",
["gek"] = "Gerka",
["gel"] = "Fakkanci",
["gem-bur"] = "Burgundi",
["gem-pro"] = "Proto-Jermanik",
["geq"] = "Geme",
["ges"] = "Geser-Gorom",
["gev"] = "Viya",
["gew"] = "Gera",
["gex"] = "Garre",
["gey"] = "Enya",
["gez"] = "Ge'ez",
["gfk"] = "Patpatar",
["gft"] = "Gafat",
["gga"] = "Gao",
["ggb"] = "Gbii",
["ggd"] = "Gugadj",
["gge"] = "Guragone",
["ggg"] = "Gurgula",
["ggk"] = "Kungarakany",
["ggl"] = "Ganglau",
["ggn"] = "Gurung Timur",
["ggt"] = "Gitua",
["ggu"] = "Gban",
["ggw"] = "Gogodala",
["gha"] = "Ghadames",
["ghe"] = "Ghale Selatan",
["ghh"] = "Ghale Utara",
["ghk"] = "Karen Geko",
["ghl"] = "Ghulfan",
["ghn"] = "Ghanongga",
["gho"] = "Ghomara",
["ghr"] = "Ghera",
["ghs"] = "Guhu-Samane",
["ght"] = "Ghale Kutang",
["gia"] = "Kitja",
["gib"] = "Gibanawa",
["gid"] = "Gidar",
["gie"] = "Guébie",
["gig"] = "Goaria",
["gih"] = "Githabul",
["gii"] = "Girirra",
["gil"] = "Gilbert",
["gim"] = "Gimi (Goroka)",
["gin"] = "Hinukh",
["gio"] = "Gelao",
["gip"] = "Gimi (Austronesia)",
["giq"] = "Gelao Hijau",
["gir"] = "Gelao Merah",
["gis"] = "Giziga Utara",
["git"] = "Gitxsan",
["giu"] = "Mulao",
["giw"] = "Gelao Putih",
["gix"] = "Gilima",
["giy"] = "Giyug",
["giz"] = "Giziga Selatan",
["gji"] = "Geji",
["gjk"] = "Koli Kachi",
["gjm"] = "Gunditjmara",
["gjn"] = "Gonja",
["gju"] = "Gojri",
["gka"] = "Guya",
["gkd"] = "Magɨ",
["gke"] = "Ndai",
["gkn"] = "Gokana",
["gko"] = "Kok-Nar",
["gkp"] = "Kpelle Guinea",
["gl"] = "Galisia",
["glc"] = "Gula Bon",
["gld"] = "Nanai",
["glh"] = "Pashayi Barat Laut",
["glj"] = "Kulaal",
["glk"] = "Gilaki",
["glo"] = "Galambu",
["glr"] = "Glaro-Twabo",
["glu"] = "Gula",
["glw"] = "Glavda",
["gly"] = "Gule",
["gma"] = "Gambera",
["gmb"] = "Gula'alaa",
["gmd"] = "Mághdì",
["gme-cgo"] = "Gothik Krimea",
["gmg"] = "Magiyi",
["gmh"] = "Jerman Tinggi Tengahan",
["gml"] = "Jerman Rendah Tengahan",
["gmm"] = "Gbaya-Mbodomo",
["gmn"] = "Gimnime",
["gmq-gut"] = "Gutnish",
["gmq-jmk"] = "Jamtish",
["gmq-mno"] = "Norwegia Tengahan",
["gmq-oda"] = "Denmark Kuno",
["gmq-osw"] = "Swedia Kuno",
["gmq-pro"] = "Proto-Norse",
["gmq-scy"] = "Skania",
["gmu"] = "Gumalu",
["gmv"] = "Gamo",
["gmw-bgh"] = "Bergish",
["gmw-cfr"] = "Franconia Tengah",
["gmw-ecg"] = "Jerman Tengah Timur",
["gmw-gts"] = "Gottscheerish",
["gmw-jdt"] = "Belanda Jersey",
["gmw-pro"] = "Proto-Jerman Barat",
["gmw-rfr"] = "Franconia Rhine",
["gmw-stm"] = "Swabia Sathmar",
["gmw-tsx"] = "Saxon Transylvania",
["gmw-vog"] = "Jerman Volga",
["gmw-zps"] = "Jerman Zipser",
["gmx"] = "Magoma",
["gmy"] = "Yunani Mycenaean",
["gmz"] = "Mgbo",
["gn"] = "Guaraní",
["gn-cls"] = "Guaraní Klasik",
["gna"] = "Kaansa",
["gnb"] = "Gangte",
["gnc"] = "Guanche",
["gnd"] = "Zulgo-Gemzek",
["gne"] = "Ganang",
["gng"] = "Ngangam",
["gnh"] = "Lere",
["gni"] = "Gooniyandi",
["gnj"] = "Ngen",
["gnk"] = "ǁGana",
["gnl"] = "Gangulu",
["gnm"] = "Ginuman",
["gnn"] = "Gumatj",
["gnq"] = "Gana",
["gnr"] = "Gureng Gureng",
["gnt"] = "Guntai",
["gnu"] = "Gnau",
["gnw"] = "Guaraní Bolivia Barat",
["gnz"] = "Ganzi",
["goa"] = "Guro",
["gob"] = "Playero",
["goc"] = "Gorakor",
["god"] = "Godié",
["goe"] = "Gongduk",
["gof"] = "Gofa",
["gog"] = "Gogo",
["goh"] = "Jerman Tinggi Kuno",
["goi"] = "Gobasi",
["goj"] = "Gowlan",
["gol"] = "Gola",
["gon"] = "Gondi",
["goo"] = "Gone Dau",
["gop"] = "Yeretuar",
["goq"] = "Gorap",
["gor"] = "Gorontalo",
["got"] = "Gothik",
["gou"] = "Gavar",
["gov"] = "Goo",
["gow"] = "Gorowa",
["gox"] = "Gobu",
["goy"] = "Goundo",
["goz"] = "Gozarkhani",
["gpa"] = "Gupa-Abawa",
["gpn"] = "Taiap",
["gqa"] = "Ga'anda",
["gqi"] = "Guiqiong",
["gqn"] = "Kinikinao",
["gqr"] = "Gor",
["gqu"] = "Qau",
["gra"] = "Rajput Garasia",
["grb"] = "Grebo",
["grc"] = "Yunani Kuno",
["grd"] = "Guruntum",
["grg"] = "Madi",
["grh"] = "Gbiri-Niragu",
["gri"] = "Ghari",
["grj"] = "Grebo Selatan",
["grk-cal"] = "Yunani Calabria",
["grk-ita"] = "Yunani Italiot",
["grk-mar"] = "Yunani Mariupol",
["grk-pro"] = "Proto-Hellenik",
["grm"] = "Kota Marudu Talantang",
["gro"] = "Groma",
["grq"] = "Gorovu",
["grs"] = "Gresi",
["grt"] = "Garo",
["gru"] = "Kistane",
["grv"] = "Grebo Tengah",
["grw"] = "Gweda",
["grx"] = "Guriaso",
["gry"] = "Grebo Barclayville",
["grz"] = "Guramalum",
["gse"] = "Isyarat Ghana",
["gsg"] = "Isyarat Jerman",
["gsl"] = "Gusilay",
["gsm"] = "Isyarat Guatemala",
["gsn"] = "Gusan",
["gso"] = "Gbaya Barat Daya",
["gsp"] = "Wasembo",
["gss"] = "Isyarat Yunani",
["gsw"] = "Jerman Alemannik",
["gta"] = "Guató",
["gtu"] = "Aghu Tharrnggala",
["gu"] = "Gujarat",
["gua"] = "Shiki",
["gub"] = "Guajajára",
["guc"] = "Wayuu",
["gud"] = "Yocoboué Dida",
["gue"] = "Gurindji",
["guf"] = "Gupapuyngu",
["gug"] = "Guaraní Paraguay",
["guh"] = "Guahibo",
["gui"] = "Guaraní Bolivia Timur",
["guk"] = "Gumuz",
["gul"] = "Gullah",
["gum"] = "Guambiano",
["gun"] = "Guaraní Mbyá",
["guo"] = "Guayabero",
["gup"] = "Gunwinggu",
["guq"] = "Aché",
["gur"] = "Farefare",
["gus"] = "Isyarat Guinea",
["gut"] = "Maléku Jaíka",
["guu"] = "Yanomamö",
["guv"] = "Gey",
["guw"] = "Gun",
["gux"] = "Gourmanchéma",
["guz"] = "Gusii",
["gv"] = "Manx",
["gva"] = "Kaskihá",
["gvc"] = "Guanano",
["gve"] = "Duwet",
["gvf"] = "Golin",
["gvj"] = "Guajá",
["gvl"] = "Gulay",
["gvm"] = "Gurmana",
["gvn"] = "Kuku-Yalanji",
["gvo"] = "Gavião do Jiparaná",
["gvp"] = "Gavião Pará",
["gvr"] = "Gurung Barat",
["gvs"] = "Gumawana",
["gvy"] = "Guyani",
["gwa"] = "Mbato",
["gwb"] = "Gwa",
["gwc"] = "Kalami",
["gwd"] = "Gawwada",
["gwe"] = "Gweno",
["gwf"] = "Gowro",
["gwg"] = "Moo",
["gwi"] = "Gwich'in",
["gwj"] = "Gcwi",
["gwm"] = "Awngthim",
["gwn"] = "Gwandara",
["gwr"] = "Gwere",
["gwt"] = "Gawar-Bati",
["gwu"] = "Guwamu",
["gww"] = "Kwini",
["gwx"] = "Gua",
["gxx"] = "Wè Selatan",
["gya"] = "Gbaya Barat Laut",
["gyb"] = "Garus",
["gyd"] = "Kayardild",
["gye"] = "Gyem",
["gyf"] = "Gungabula",
["gyg"] = "Gbayi",
["gyi"] = "Gyele",
["gyl"] = "Gayil",
["gym"] = "Ngäbere",
["gyn"] = "Kreol Inggris Guyana",
["gyo"] = "Gyalsumdo",
["gyr"] = "Guarayu",
["gyy"] = "Gunya",
["gza"] = "Ganza",
["gzn"] = "Gane",
["ha"] = "Hausa",
["haa"] = "Hän",
["hab"] = "Isyarat Hanoi",
["hac"] = "Gurani",
["had"] = "Hatam",
["haf"] = "Isyarat Haiphong",
["hag"] = "Hanga",
["hah"] = "Hahon",
["hai"] = "Haida",
["haj"] = "Hajong",
["hak"] = "Hakka",
["hal"] = "Halang",
["ham"] = "Hewa",
["hao"] = "Hakö",
["hap"] = "Hupla",
["har"] = "Harari",
["has"] = "Haisla",
["hav"] = "Havu",
["haw"] = "Hawaii",
["hax"] = "Haida Selatan",
["hay"] = "Haya",
["haz"] = "Hazaragi",
["hba"] = "Hamba",
["hbb"] = "Huba",
["hbn"] = "Heiban",
["hbu"] = "Habu",
["hca"] = "Kreol Hindi Andaman",
["hch"] = "Huichol",
["hdn"] = "Haida Utara",
["hds"] = "Isyarat Honduras",
["hdy"] = "Hadiyya",
["he"] = "Ibrani",
["hea"] = "Miao Qiandong Utara",
["hed"] = "Herdé",
["heg"] = "Helong",
["heh"] = "Hehe",
["hei"] = "Heiltsuk",
["hem"] = "Hemba",
["hgm"] = "Haiǁom",
["hgw"] = "Haigwai",
["hhi"] = "Hoia Hoia",
["hhr"] = "Kerak",
["hhy"] = "Hoyahoya",
["hi"] = "Hindi",
["hia"] = "Lamang",
["hib"] = "Hibito",
["hid"] = "Hidatsa",
["hif"] = "Hindi Fiji",
["hig"] = "Kamwe",
["hih"] = "Pamosu",
["hii"] = "Hinduri",
["hij"] = "Hijuk",
["hik"] = "Seit-Kaitetu",
["hil"] = "Hiligaynon",
["hio"] = "Tshwa",
["hir"] = "Himarimã",
["hit"] = "Hitit",
["hiw"] = "Hiw",
["hix"] = "Hixkaryana",
["hji"] = "Haji",
["hka"] = "Kahe",
["hke"] = "Hunde",
["hkk"] = "Ke Hunjara-Kaina",
["hkn"] = "Mel-Khaonh",
["hks"] = "Isyarat Hong Kong",
["hla"] = "Halia",
["hlb"] = "Halbi",
["hld"] = "Halang Doan",
["hle"] = "Hlersu",
["hlt"] = "Nga La",
["hma"] = "Hmong Mashan Selatan",
["hmb"] = "Senni Humburi",
["hmc"] = "Hmong Huishui Tengah",
["hmd"] = "A-Hmao",
["hme"] = "Hmong Huishui Timur",
["hmf"] = "Hmong Don",
["hmg"] = "Hmong Guiyang Barat Daya",
["hmh"] = "Hmong Huishui Barat Daya",
["hmi"] = "Hmong Huishui Utara",
["hmj"] = "Ge",
["hmk"] = "Maek",
["hml"] = "Hmong Luopohe",
["hmm"] = "Hmong Mashan Tengah",
["hmn-pro"] = "Proto-Hmong",
["hmp"] = "Hmong Mashan Utara",
["hmq"] = "Miao Qiandong Timur",
["hmr"] = "Hmar",
["hms"] = "Miao Qiandong Selatan",
["hmt"] = "Hamtai",
["hmu"] = "Hamap",
["hmv"] = "Hmong Dô",
["hmw"] = "Hmong Mashan Barat",
["hmx-mie-pro"] = "Proto-Mien",
["hmx-pro"] = "Proto-Hmong-Mien",
["hmy"] = "Hmong Guiyang Selatan",
["hmz"] = "Hmong Shua",
["hna"] = "Mina",
["hnd"] = "Hindko Selatan",
["hne"] = "Chhattisgarhi",
["hnh"] = "ǁAni",
["hni"] = "Hani",
["hnj"] = "Hmong Green",
["hnn"] = "Hanunoo",
["hno"] = "Hindko Utara",
["hns"] = "Hindustani Karibia",
["hnu"] = "Hung",
["ho"] = "Motu Hiri",
["hoa"] = "Hoava",
["hob"] = "Mari Austronesia",
["hoc"] = "Ho",
["hod"] = "Holma",
["hoe"] = "Horom",
["hoh"] = "Hobyót",
["hoi"] = "Holikachuk",
["hoj"] = "Hadothi",
["hol"] = "Holu",
["hom"] = "Homa",
["hoo"] = "Holoholo",
["hop"] = "Hopi",
["hor"] = "Horo",
["hos"] = "Isyarat Kota Ho Chi Minh",
["hot"] = "Hote",
["hov"] = "Hovongan",
["how"] = "Honi",
["hoy"] = "Holiya",
["hoz"] = "Hozo",
["hpo"] = "Hpon",
["hps"] = "Isyarat Pijin Hawai'i",
["hra"] = "Hrangkhol",
["hrc"] = "Niwer Mil",
["hre"] = "Hre",
["hrk"] = "Haruku",
["hrm"] = "Miao Horned",
["hro"] = "Haroi",
["hrp"] = "Nhirrpi",
["hrt"] = "Hértevin",
["hru"] = "Hruso",
["hrw"] = "Warwar Feni",
["hrx"] = "Hunsrik",
["hrz"] = "Harzani",
["hsb"] = "Sorbian Hulu",
["hsh"] = "Isyarat Hungaria",
["hsl"] = "Isyarat Hausa",
["hsn"] = "Xiang",
["hss"] = "Harsusi",
["ht"] = "Kreol Haiti",
["hti"] = "Hoti",
["hto"] = "Huitoto Minica",
["hts"] = "Hadza",
["htu"] = "Hitu",
["hu"] = "Hungaria",
["hub"] = "Huambisa",
["huc"] = "ǂHoan",
["hud"] = "Huaulu",
["huf"] = "Humene",
["hug"] = "Huachipaeri",
["huh"] = "Huilliche",
["hui"] = "Huli",
["huj"] = "Hmong Guiyang Utara",
["huk"] = "Hulung",
["hul"] = "Hula",
["hum"] = "Hungana",
["huo"] = "Hu",
["hup"] = "Hupa",
["huq"] = "Tsat",
["hur"] = "Halkomelem",
["hus"] = "Wastek",
["huu"] = "Huitoto Murui",
["huv"] = "Huave",
["huw"] = "Hukumina",
["hux"] = "Huitoto Nüpode",
["huy"] = "Hulaulá",
["huz"] = "Hunzib",
["hvc"] = "budaya Vodoun Haiti",
["hvk"] = "Haveke",
["hvn"] = "Hawu",
["hwa"] = "Wané",
["hwc"] = "Kreol Hawaii",
["hwo"] = "Hwana",
["hy"] = "Armenia",
["hya"] = "Hya",
["hyx-pro"] = "Proto-Armenia",
["hz"] = "Herero",
["ia"] = "Interlingua",
["iai"] = "Iaai",
["ian"] = "Iatmul",
["iar"] = "Purari",
["iba"] = "Iban",
["ibb"] = "Ibibio",
["ibd"] = "Iwaidja",
["ibe"] = "Akpes",
["ibg"] = "Ibanag",
["ibh"] = "Bih",
["ibl"] = "Ibaloi",
["ibm"] = "Agoi",
["ibn"] = "Ibino",
["ibr"] = "Ibuoro",
["ibu"] = "Ibu",
["iby"] = "Ibani",
["ica"] = "Ede Ica",
["ich"] = "Etkywan",
["icl"] = "Isyarat Islandia",
["icr"] = "Kreol Inggris Islander",
["id"] = "Indonesia",
["ida"] = "Idakho-Isukha-Tiriki",
["idb"] = "Indo-Portugis",
["idc"] = "Idon",
["idd"] = "Ede Idaca",
["ide"] = "Idere",
["idi"] = "Idi",
["idr"] = "Indri",
["ids"] = "Idesa",
["idt"] = "Idaté",
["idu"] = "Idoma",
["ie"] = "Interlingue",
["ifa"] = "Ifugao Amganad",
["ifb"] = "Ifugao Batad",
["ife"] = "Ifè",
["iff"] = "Ifo",
["ifk"] = "Ifugao Tuwali",
["ifm"] = "Teke-Fuumu",
["ifu"] = "Ifugao Mayoyao",
["ify"] = "Kallahan Keley-I",
["ig"] = "Igbo",
["igb"] = "Ebira",
["ige"] = "Igede",
["igg"] = "Igana",
["igl"] = "Igala",
["igm"] = "Kanggape",
["ign"] = "Ignaciano",
["igo"] = "Isebe",
["igs"] = "Glosa",
["igw"] = "Igwe",
["ihb"] = "Pijin Iha",
["ihi"] = "Ihievbe",
["ihp"] = "Iha",
["ii"] = "Yi Sichuan",
["iir-nur-pro"] = "Proto-Nuristani",
["iir-pro"] = "Proto-Indo-Iran",
["ijc"] = "Izon",
["ije"] = "Biseni",
["ijj"] = "Ede Ije",
["ijn"] = "Kalabari",
["ijo-pro"] = "Proto-Ijoid",
["ijs"] = "Ijo Tenggara",
["ik"] = "Inupiaq",
["ike"] = "Inuktitut Kanada Timur",
["iki"] = "Iko",
["ikk"] = "Ika",
["ikl"] = "Ikulu",
["iko"] = "Olulumo-Ikom",
["ikp"] = "Ikpeshi",
["ikr"] = "Ikaranggal",
["iks"] = "Isyarat Inuit",
["ikt"] = "Inuvialuktun",
["ikv"] = "Iku-Gora-Ankwa",
["ikw"] = "Ikwere",
["ikx"] = "Ik",
["ikz"] = "Ikizu",
["ila"] = "Ile Ape",
["ilb"] = "Ila",
["ilg"] = "Ilgar",
["ili"] = "Turki Ili",
["ilk"] = "Ilongot",
["ill"] = "Iranun",
["ilo"] = "Ilocano",
["ils"] = "Isyarat Internasional",
["ilu"] = "Ili'uun",
["ilv"] = "Ilue",
["ima"] = "Mala Malasar",
["imi"] = "Anamgura",
["iml"] = "Miluk",
["imn"] = "Imonda",
["imo"] = "Imbongu",
["imr"] = "Imroing",
["ims"] = "Marsian",
["imy"] = "Milyan",
["inb"] = "Inga",
["inc-ash"] = "Prakrit Ashokan",
["inc-cen-pro"] = "Proto-Indo-Aryan Tengah",
["inc-gup"] = "Apabhramsa Gurjar",
["inc-kam"] = "Prakrit Kamarupi",
["inc-kha"] = "Prakrit Khasa",
["inc-kho"] = "Kholosi",
["inc-mas"] = "Assam Tengahan",
["inc-mbn"] = "Bengal Tengahan",
["inc-mgd"] = "Prakrit Magadhi",
["inc-mgu"] = "Gujarat Tengahan",
["inc-mor"] = "Oriya Tengahan",
["inc-oas"] = "Assam Awal",
["inc-obn"] = "Bengal Kuno",
["inc-ogu"] = "Gujarat Kuno",
["inc-ohi"] = "Hindi Kuno",
["inc-oor"] = "Oriya Kuno",
["inc-opa"] = "Punjab Kuno",
["inc-ork"] = "Kamta Kuno",
["inc-pra"] = "Prakrit",
["inc-pro"] = "Proto-Indo-Aryan",
["inc-psc"] = "Prakrit Paisaci",
["inc-sap"] = "Apabhramsa Sauraseni",
["inc-tak"] = "Apabhramsa Takka",
["inc-vra"] = "Apabhramsa Vracada",
["ine-ana-pro"] = "Proto-Anatolia",
["ine-bsl-pro"] = "Proto-Balto-Slavik",
["ine-pae"] = "Paeonia",
["ine-pro"] = "Proto-Indo-Eropa",
["ine-toc-pro"] = "Proto-Tocharia",
["ing"] = "Deg Xinag",
["inh"] = "Ingush",
["inj"] = "Inga Hutan",
["inl"] = "Isyarat Indonesia",
["inm"] = "Minaean",
["inn"] = "Isinai",
["ino"] = "Inoke-Yate",
["inp"] = "Iñapari",
["ins"] = "Isyarat India",
["int"] = "Intha",
["inz"] = "Ineseño",
["io"] = "Ido",
["ior"] = "Inor",
["iou"] = "Tuma-Irumu",
["iow"] = "Chiwere",
["ipi"] = "Ipili",
["ipo"] = "Ipiko",
["iqu"] = "Iquito",
["iqw"] = "Ikwo",
["ira-kms-pro"] = "Proto-Komisenia",
["ira-mny-pro"] = "Proto-Munji-Yidgha",
["ira-mpr-pro"] = "Proto-Medo-Parthia",
["ira-pat-pro"] = "Proto-Pathan",
["ira-pro"] = "Proto-Iran",
["ira-sgc-pro"] = "Proto-Sogdic",
["ira-sgi-pro"] = "Proto-Sanglechi-Ishkashimi",
["ira-shr-pro"] = "Proto-Shughni-Roshani",
["ira-shy-pro"] = "Proto-Shughni-Yazghulami",
["ira-sym-pro"] = "Proto-Shughni-Yazghulami-Munji",
["ira-wnj"] = "Vanji",
["ira-zgr-pro"] = "Proto-Zaza-Gorani",
["ire"] = "Iresim",
["irh"] = "Irarutu",
["iri"] = "Rigwe",
["irk"] = "Iraqw",
["irn"] = "Irantxe",
["iro-ere"] = "Erie",
["iro-min"] = "Mingo",
["iro-nor-pro"] = "Proto-Iroquois Utara",
["iro-pro"] = "Proto-Iroquois",
["irr"] = "Ir",
["iru"] = "Irula",
["irx"] = "Kamberau",
["iry"] = "Iraya",
["is"] = "Islandia",
["isa"] = "Isabi",
["isc"] = "Isconahua",
["isd"] = "Isnag",
["ise"] = "Isyarat Italia",
["isg"] = "Isyarat Irlandia",
["ish"] = "Esan",
["isi"] = "Nkem-Nkum",
["isk"] = "Ishkashimi",
["ism"] = "Masimasi",
["isn"] = "Isanzu",
["iso"] = "Isoko",
["isr"] = "Isyarat Israel",
["ist"] = "Istriot",
["isu"] = "Isu",
["it"] = "Italia",
["itb"] = "Itneg Binongan",
["itc-pro"] = "Proto-Italik",
["itd"] = "Tidung Nunukan",
["ite"] = "Itene",
["iti"] = "Itneg Inlaod",
["itk"] = "Judeo-Italia",
["itl"] = "Itelmen",
["itm"] = "Itu Mbon Uzo",
["ito"] = "Itonama",
["itr"] = "Iteri",
["its"] = "Itsekiri",
["itt"] = "Itneg Maeng",
["itv"] = "Itawit",
["itw"] = "Ito",
["itx"] = "Itik",
["ity"] = "Itneg Moyadan",
["itz"] = "Itzá",
["iu"] = "Inuktitut",
["ium"] = "Mien Iu",
["ivb"] = "Ibatan",
["ivv"] = "Ivatan",
["iwk"] = "I-Wak",
["iwm"] = "Iwam",
["iwo"] = "Iwur",
["iws"] = "Iwam Sepik",
["ixc"] = "Ixcatec",
["ixl"] = "Ixil",
["iya"] = "Iyayu",
["iyo"] = "Mesaka",
["iyx"] = "Yaa",
["izh"] = "Ingria",
["izi"] = "Izi-Ezaa-Ikwo-Mgbo",
["izr"] = "Izere",
["izz"] = "Izi",
["ja"] = "Jepang",
["jaa"] = "Jamamadí",
["jab"] = "Hyam",
["jac"] = "Jakaltek",
["jad"] = "Jahanka",
["jae"] = "Jabem",
["jaf"] = "Jara",
["jah"] = "Jah Hut",
["jaj"] = "Zazao",
["jal"] = "Yalahatan",
["jam"] = "Kreol Jamaika",
["jan"] = "Janday",
["jao"] = "Yanyuwa",
["jaq"] = "Yaqay",
["jas"] = "Jawa Kaledonia Baru",
["jat"] = "Jakati",
["jau"] = "Yaur",
["jax"] = "Melayu Jambi",
["jay"] = "Yan-nhangu",
["jaz"] = "Jawe",
["jbj"] = "Arandai",
["jbk"] = "Barikewa",
["jbn"] = "Nefusa",
["jbo"] = "Lojban",
["jbr"] = "Jofotek-Bromnya",
["jbt"] = "Jabutí",
["jbu"] = "Jukun Takum",
["jbw"] = "Yawijibaya",
["jcs"] = "Isyarat Jamaika (negara)",
["jct"] = "Krymchak",
["jda"] = "Jad",
["jdg"] = "Jadgali",
["jdt"] = "Judeo-Tat",
["jeb"] = "Jebero",
["jee"] = "Jerung",
["jeg"] = "Jeng",
["jeh"] = "Jeh",
["jei"] = "Yei",
["jek"] = "Kuo Jeri",
["jel"] = "Yelmek",
["jen"] = "Dza",
["jer"] = "Jere",
["jet"] = "Manem",
["jeu"] = "Jonkor Bourmataguil",
["jgb"] = "Ngbee",
["jgk"] = "Gwak",
["jgo"] = "Ngomba",
["jhi"] = "Jehai",
["jhs"] = "Isyarat Jhankot",
["jia"] = "Jina",
["jib"] = "Jibu",
["jic"] = "Tol",
["jid"] = "Bu",
["jie"] = "Jilbe",
["jig"] = "Jingulu",
["jih"] = "Shangzhai",
["jii"] = "Jiiddu",
["jil"] = "Jilim",
["jim"] = "Jimjimen",
["jio"] = "Jiamao",
["jiq"] = "Khroskyabs",
["jit"] = "Jita",
["jiu"] = "Jinuo Youle",
["jiv"] = "Shuar",
["jiy"] = "Jinuo Buyuan",
["jje"] = "Jeju",
["jjr"] = "Zhár",
["jka"] = "Kaera",
["jko"] = "Kubo",
["jkr"] = "Koro (India)",
["jku"] = "Labir",
["jle"] = "Ngile",
["jls"] = "Isyarat Jamaika",
["jma"] = "Dima",
["jmb"] = "Zumbun",
["jmc"] = "Machame",
["jmd"] = "Yamdena",
["jmi"] = "Jimi",
["jml"] = "Jumli",
["jmn"] = "Naga Makuri",
["jmr"] = "Kamara",
["jmw"] = "Mouwase",
["jmx"] = "Mixtec Juxtlahuaca Barat",
["jna"] = "Jangshung",
["jnd"] = "Jandavra",
["jng"] = "Yangman",
["jni"] = "Janji",
["jnj"] = "Yemsa",
["jnl"] = "Rawat",
["jns"] = "Jaunsari",
["job"] = "Joba",
["jod"] = "Wojenaka",
["jor"] = "Jorá",
["jos"] = "Isyarat Yordania",
["jow"] = "Jowulu",
["jpr"] = "Judeo-Persia",
["jpx-pro"] = "Proto-Jepang",
["jpx-ryu-pro"] = "Proto-Ryukyu",
["jqr"] = "Jaqaru",
["jra"] = "Jarai",
["jrr"] = "Jiru",
["jru"] = "Japrería",
["jsl"] = "Isyarat Jepang",
["jua"] = "Júma",
["jub"] = "Wannu",
["juc"] = "Jurchen",
["jud"] = "Worodougou",
["juh"] = "Hone",
["jui"] = "Ngadjuri",
["juk"] = "Wapan",
["jul"] = "Jirel",
["jum"] = "Jumjum",
["jun"] = "Juang",
["juo"] = "Jiba",
["jup"] = "Hupdë",
["jur"] = "Jurúna",
["jus"] = "Isyarat Jumla",
["jut"] = "Jutish",
["juu"] = "Ju",
["juw"] = "Wãpha",
["juy"] = "Juray",
["jv"] = "Jawa",
["jvd"] = "Javindo",
["jvn"] = "Jawa Karibia",
["jwi"] = "Jwira-Pepesa",
["jyy"] = "Jaya",
["ka"] = "Georgia",
["kaa"] = "Karakalpak",
["kab"] = "Kabyle",
["kac"] = "Jingpho",
["kad"] = "Kadara",
["kae"] = "Ketangalan",
["kaf"] = "Katso",
["kag"] = "Kajaman",
["kah"] = "Fer",
["kai"] = "Karekare",
["kaj"] = "Jju",
["kak"] = "Kallahan Kayapa",
["kam"] = "Kamba",
["kao"] = "Kassonke",
["kap"] = "Bezhta",
["kaq"] = "Capanahua",
["kar-pro"] = "Proto-Karen",
["kaw"] = "Jawa Kuno",
["kax"] = "Kao",
["kay"] = "Kamayurá",
["kba"] = "Kalarko",
["kbb"] = "Kaxuyana",
["kbc"] = "Kadiwéu",
["kbd"] = "Kabardia",
["kbe"] = "Kanju",
["kbh"] = "Camsá",
["kbi"] = "Kaptiau",
["kbj"] = "Kari",
["kbk"] = "Koiari Rumput",
["kbm"] = "Iwal",
["kbn"] = "Kare (Africa)",
["kbo"] = "Keliko",
["kbp"] = "Kabiyé",
["kbq"] = "Kamano",
["kbr"] = "Kafa",
["kbs"] = "Kande",
["kbt"] = "Gabadi",
["kbu"] = "Kabutra",
["kbv"] = "Kamberataro",
["kbw"] = "Kaiep",
["kbx"] = "Ap Ma",
["kbz"] = "Duhwa",
["kca"] = "Khanty",
["kcb"] = "Kawacha",
["kcc"] = "Lubila",
["kcd"] = "Kanum Ngkâlmpw",
["kce"] = "Kaivi",
["kcf"] = "Ukaan",
["kcg"] = "Tyap",
["kch"] = "Vono",
["kci"] = "Kamantan",
["kcj"] = "Kobiana",
["kck"] = "Kalanga",
["kcl"] = "Kala",
["kcm"] = "Gula Tar",
["kcn"] = "Nubi",
["kco"] = "Kinalakna",
["kcp"] = "Kanga",
["kcq"] = "Kamo",
["kcr"] = "Katla",
["kcs"] = "Koenoem",
["kct"] = "Kaian",
["kcu"] = "Kikami",
["kcv"] = "Kete",
["kcw"] = "Kabwari",
["kcx"] = "Kachama-Ganjule",
["kcy"] = "Korandje",
["kcz"] = "Konongo",
["kda"] = "Worimi",
["kdc"] = "Kutu",
["kdd"] = "Yankunytjatjara",
["kde"] = "Makonde",
["kdf"] = "Mamusi",
["kdg"] = "Seba",
["kdh"] = "Tem",
["kdi"] = "Kumam",
["kdj"] = "Karamojong",
["kdk"] = "Numee",
["kdl"] = "Tsikimba",
["kdm"] = "Kagoma",
["kdn"] = "Kunda",
["kdp"] = "Kaningdon-Nindem",
["kdq"] = "Koch",
["kdr"] = "Karaim",
["kdt"] = "Kuy",
["kdu"] = "Kadaru",
["kdv"] = "Kado",
["kdw"] = "Koneraw",
["kdx"] = "Kam",
["kdy"] = "Keder",
["kdz"] = "Kwaja",
["kea"] = "Kabuverdianu",
["keb"] = "Kélé",
["kec"] = "Keiga",
["ked"] = "Kerewe",
["kee"] = "Keres Timur",
["kef"] = "Kpessi",
["keg"] = "Tese",
["keh"] = "Keak",
["kei"] = "Kei",
["kej"] = "Kadar",
["kek"] = "Q'eqchi",
["kel"] = "Kela-Yela",
["kem"] = "Kemak",
["ken"] = "Kenyang",
["keo"] = "Kakwa",
["kep"] = "Kaikadi",
["keq"] = "Kamar",
["ker"] = "Kera",
["kes"] = "Kugbo",
["ket"] = "Ket",
["keu"] = "Akebu",
["kev"] = "Kanikkaran",
["kew"] = "Kewa",
["kex"] = "Kukna",
["key"] = "Kupia",
["kez"] = "Kukele",
["kfa"] = "Kodava",
["kfb"] = "Kolami",
["kfc"] = "Konda-Dora",
["kfd"] = "Koraga Korra",
["kfe"] = "Kota (India)",
["kff"] = "Koya",
["kfg"] = "Kudiya",
["kfh"] = "Kurichiya",
["kfi"] = "Kurumba Kannada",
["kfj"] = "Kemiehua",
["kfk"] = "Kinnauri",
["kfl"] = "Kung",
["kfn"] = "Kuk",
["kfo"] = "Koro (Afrika Barat)",
["kfp"] = "Korwa",
["kfq"] = "Korku",
["kfr"] = "Kachchi",
["kfs"] = "Bilaspuri",
["kft"] = "Kanjari",
["kfu"] = "Katkari",
["kfv"] = "Kurmukar",
["kfw"] = "Naga Kharam",
["kfx"] = "Pahari Kullu",
["kfy"] = "Kumaoni",
["kfz"] = "Koromfé",
["kg"] = "Kongo",
["kga"] = "Koyaga",
["kgb"] = "Kawe",
["kgd"] = "Kataang",
["kge"] = "Komering",
["kgf"] = "Kube",
["kgg"] = "Kusunda",
["kgi"] = "Isyarat Selangor",
["kgj"] = "Kham Gamale",
["kgk"] = "Kaiwá",
["kgl"] = "Kunggari",
["kgm"] = "Karipúna",
["kgn"] = "Karingani",
["kgo"] = "Krongo",
["kgp"] = "Kaingang",
["kgq"] = "Kamoro",
["kgr"] = "Abun",
["kgs"] = "Kumbainggar",
["kgt"] = "Somyev",
["kgu"] = "Kobol",
["kgv"] = "Karas",
["kgw"] = "Karon Dori",
["kgx"] = "Kamaru",
["kgy"] = "Kyerung",
["kha"] = "Khasi",
["khb"] = "Lü",
["khc"] = "Tukang Besi Utara",
["khd"] = "Kanum Bädi",
["khe"] = "Korowai",
["khf"] = "Khuen",
["khh"] = "Kehu",
["khi-kho-pro"] = "Proto-Khoe",
["khi-kun"] = "ǃKung",
["khj"] = "Kuturmi",
["khl"] = "Lusi",
["khn"] = "Khandeshi",
["kho"] = "Khotan",
["khp"] = "Kapauri",
["khq"] = "Koyra Chiini",
["khr"] = "Kharia",
["khs"] = "Kasua",
["kht"] = "Khamti",
["khu"] = "Nkhumbi",
["khv"] = "Khvarshi",
["khw"] = "Khowar",
["khx"] = "Kanu",
["khy"] = "Ekele",
["khz"] = "Keapara",
["ki"] = "Kikuyu",
["kia"] = "Kim",
["kib"] = "Koalib",
["kic"] = "Kickapoo",
["kid"] = "Koshin",
["kie"] = "Kibet",
["kif"] = "Kham Parbate Timur",
["kig"] = "Kimaama",
["kih"] = "Kilmeri",
["kii"] = "Kitsai",
["kij"] = "Kilivila",
["kil"] = "Kariya",
["kim"] = "Tofa",
["kio"] = "Kiowa",
["kip"] = "Kham Sheshi",
["kiq"] = "Kosadle",
["kis"] = "Kis",
["kit"] = "Agob",
["kiv"] = "Kimbu",
["kiw"] = "Kiwai Timur Laut",
["kix"] = "Naga Khiamniungan",
["kiy"] = "Kirikiri",
["kiz"] = "Kisi",
["kj"] = "Kwanyama",
["kja"] = "Mlap",
["kjb"] = "Q'anjob'al",
["kjc"] = "Konjo Pesisir",
["kjd"] = "Kiwai Selatan",
["kje"] = "Kisar",
["kjg"] = "Khmu",
["kjh"] = "Khakas",
["kji"] = "Zabana",
["kjj"] = "Khinalug",
["kjk"] = "Konjo Pegunungan",
["kjl"] = "Kham",
["kjm"] = "Kháng",
["kjn"] = "Kunjen",
["kjo"] = "Kinnauri Harijan",
["kjp"] = "Pwo Timur",
["kjq"] = "Keres Barat",
["kjr"] = "Kurudu",
["kjs"] = "Kewa Timur",
["kjt"] = "Pwo Phrae",
["kju"] = "Kashaya",
["kjx"] = "Ramopa",
["kjy"] = "Erave",
["kjz"] = "Bumthangkha",
["kk"] = "Kazakh",
["kka"] = "Kakanda",
["kkb"] = "Kwerisa",
["kkc"] = "Odoodee",
["kkd"] = "Kinuku",
["kke"] = "Kakabe",
["kkf"] = "Monpa Kalaktang",
["kkg"] = "Kalinga Mabaka Valley",
["kkh"] = "Khün",
["kki"] = "Kagulu",
["kkj"] = "Kako",
["kkk"] = "Kokota",
["kkl"] = "Yale Kosarek",
["kkm"] = "Kiong",
["kkn"] = "Kon Keu",
["kko"] = "Karko",
["kkp"] = "Koko-Bera",
["kkq"] = "Kaiku",
["kkr"] = "Kir-Balar",
["kks"] = "Kirfi",
["kkt"] = "Koi",
["kku"] = "Tumi",
["kkv"] = "Kangean",
["kkw"] = "Teke-Kukuya",
["kkx"] = "Kohin",
["kky"] = "Guugu Yimidhirr",
["kkz"] = "Kaska",
["kl"] = "Grinlandia",
["kla"] = "Klamath-Modoc",
["klb"] = "Kiliwa",
["klc"] = "Kolbila",
["kld"] = "Gamilaraay",
["kle"] = "Kulung",
["klf"] = "Kendeje",
["klg"] = "Kalagan Tagakaulu",
["klh"] = "Weliki",
["kli"] = "Kalumpang",
["klj"] = "Khalaj",
["klk"] = "Kono (Nigeria)",
["kll"] = "Kalagan Kagan",
["klm"] = "Kolom",
["kln"] = "Kalenjin",
["klo"] = "Kapya",
["klp"] = "Kamasa",
["klq"] = "Rumu",
["klr"] = "Khaling",
["kls"] = "Kalasha",
["klt"] = "Nukna",
["klu"] = "Klao",
["klv"] = "Maskelynes",
["klw"] = "Lindu",
["klx"] = "Koluwawa",
["kly"] = "Kalao",
["klz"] = "Kabola",
["km"] = "Khmer",
["kma"] = "Konni",
["kmb"] = "Kimbundu",
["kmc"] = "Kam Selatan",
["kmd"] = "Kalinga Madukayang",
["kme"] = "Bakole",
["kmf"] = "Kare (Papua)",
["kmg"] = "Kâte",
["kmh"] = "Kalam",
["kmi"] = "Kami",
["kmj"] = "Paharia Kumarbhag",
["kmk"] = "Kalinga Limos",
["kml"] = "Kalinga Tanudan",
["kmm"] = "Kom (India)",
["kmn"] = "Awtuw",
["kmo"] = "Kwoma",
["kmp"] = "Gimme",
["kmq"] = "Kwama",
["kmr"] = "Kurdi Utara",
["kms"] = "Kamasau",
["kmt"] = "Kemtuik",
["kmu"] = "Kanite",
["kmv"] = "Kreol Prancis Karipúna",
["kmw"] = "Kumu",
["kmx"] = "Waboda",
["kmy"] = "Koma",
["kmz"] = "Turki Khorasani",
["kn"] = "Kannada",
["kna"] = "Kanakuru",
["knb"] = "Kalinga Lubuagan",
["knd"] = "Konda",
["kne"] = "Kankanaey",
["knf"] = "Mankanya",
["kni"] = "Kanufi",
["knj"] = "Akatek",
["knk"] = "Kuranko",
["knl"] = "Keninjal",
["knm"] = "Kanamari",
["kno"] = "Kono (Sierra Leone)",
["knp"] = "Kwanja",
["knq"] = "Kintaq",
["knr"] = "Kaningra",
["kns"] = "Kensiu",
["knt"] = "Katukina",
["knu"] = "Kono (Guinea)",
["knv"] = "Tabo",
["knx"] = "Kendayan",
["kny"] = "Kanyok",
["knz"] = "Kalamsé",
["ko"] = "Korea",
["ko-ear"] = "Korea Modern Awal",
["koa"] = "Konomala",
["koc"] = "Kpati",
["kod"] = "Kodi",
["koe"] = "Kacipo-Balesi",
["kof"] = "Kubi",
["kog"] = "Cogui",
["koh"] = "Koyo",
["koi"] = "Komi-Permyak",
["kok"] = "Konkani",
["kol"] = "Kol (Papua)",
["koo"] = "Konzo",
["kop"] = "Waube",
["koq"] = "Kota (Gabon)",
["kos"] = "Kosraean",
["kot"] = "Lagwan",
["kou"] = "Koke",
["kov"] = "Kudu-Camo",
["kow"] = "Kugama",
["koy"] = "Koyukon",
["koz"] = "Korak",
["kpa"] = "Kutto",
["kpb"] = "Kurumba Mullu",
["kpc"] = "Curripaco",
["kpd"] = "Koba",
["kpe"] = "Kpelle",
["kpf"] = "Komba",
["kpg"] = "Kapingamarangi",
["kph"] = "Kplang",
["kpi"] = "Kofei",
["kpj"] = "Karajá",
["kpk"] = "Kpan",
["kpl"] = "Kpala",
["kpm"] = "Koho",
["kpn"] = "Kepkiriwát",
["kpo"] = "Ikposo",
["kpp"] = "Karen Paku",
["kpq"] = "Korupun-Sela",
["kpr"] = "Korafe-Yegha",
["kps"] = "Tehit",
["kpt"] = "Karata",
["kpu"] = "Kafoa",
["kpv"] = "Komi-Zyrian",
["kpw"] = "Kobon",
["kpx"] = "Koiari Gunung",
["kpy"] = "Koryak",
["kpz"] = "Kupsabiny",
["kqa"] = "Mum",
["kqb"] = "Kovai",
["kqc"] = "Doromu-Koki",
["kqd"] = "Koy Sanjaq Surat",
["kqe"] = "Kalagan",
["kqf"] = "Kakabai",
["kqg"] = "Khe",
["kqh"] = "Kisankasa",
["kqi"] = "Koitabu",
["kqj"] = "Koromira",
["kqk"] = "Gbe Kotafon",
["kql"] = "Kyenele",
["kqm"] = "Khisa",
["kqn"] = "Kaonde",
["kqo"] = "Krahn Timur",
["kqp"] = "Kimré",
["kqq"] = "Krenak",
["kqr"] = "Kimaragang",
["kqs"] = "Kissi Utara",
["kqt"] = "Kadazan Sungai Klias",
["kqu"] = "Seroa",
["kqv"] = "Okolod",
["kqw"] = "Kandas",
["kqx"] = "Mser",
["kqy"] = "Koorete",
["kqz"] = "Korana",
["kr"] = "Kanuri",
["kra"] = "Kumhali",
["krb"] = "Karkin",
["krc"] = "Karachay-Balkar",
["krd"] = "Kairui-Midiki",
["kre"] = "Panará",
["krf"] = "Koro (Vanuatu)",
["krh"] = "Kurama",
["kri"] = "Krio",
["krj"] = "Kinaray-a",
["krk"] = "Kerek",
["krl"] = "Karelia",
["krm"] = "Krim",
["krn"] = "Sapo",
["kro-pro"] = "Proto-Kru",
["krp"] = "Korop",
["krr"] = "Kru'ng",
["krs"] = "Kresh",
["kru"] = "Kurukh",
["krv"] = "Kavet",
["krw"] = "Krahn Barat",
["krx"] = "Karon",
["kry"] = "Kryts",
["krz"] = "Kanum Sota",
["ks"] = "Kashmir",
["ksa"] = "Shuwa-Zamani",
["ksb"] = "Shambala",
["ksc"] = "Kalinga Selatan",
["ksd"] = "Tolai",
["kse"] = "Kuni",
["ksf"] = "Bafia",
["ksg"] = "Kusaghe",
["ksi"] = "Krisa",
["ksj"] = "Uare",
["ksk"] = "Kansa",
["ksl"] = "Kumalu",
["ksm"] = "Kumba",
["ksn"] = "Kasiguranin",
["kso"] = "Kofa",
["ksp"] = "Kaba",
["ksq"] = "Kwaami",
["ksr"] = "Borong",
["kss"] = "Kissi Selatan",
["kst"] = "Winyé",
["ksu"] = "Khamyang",
["ksv"] = "Kusu",
["ksw"] = "Karen S'gaw",
["ksx"] = "Kedang",
["ksy"] = "Kharia Thar",
["ksz"] = "Kodaku",
["kta"] = "Katua",
["ktb"] = "Kambaata",
["ktc"] = "Kholok",
["ktd"] = "Kokata",
["ktf"] = "Kwami",
["ktg"] = "Kalkatungu",
["kth"] = "Karanga",
["kti"] = "Muyu Utara",
["ktj"] = "Plapo Krumen",
["ktk"] = "Kaniet",
["ktl"] = "Koroshi",
["ktm"] = "Kurti",
["ktn"] = "Karitiâna",
["kto"] = "Kuot",
["ktp"] = "Kaduo",
["ktq"] = "Katabaga",
["ktr"] = "Kota Marudu Tinagas",
["kts"] = "Muyu Selatan",
["ktt"] = "Ketum",
["ktu"] = "Kituba",
["ktv"] = "Katu Timur",
["ktw"] = "Kato",
["ktx"] = "Kaxararí",
["kty"] = "Kango",
["ktz"] = "Juǀ'hoan",
["ku-pro"] = "Proto-Kurdi",
["kub"] = "Kutep",
["kuc"] = "Kwinsu",
["kud"] = "Auhelawa",
["kue"] = "Kuman",
["kuf"] = "Katu Barat",
["kug"] = "Kupa",
["kuh"] = "Kushi",
["kui"] = "Kuikúro",
["kuj"] = "Kuria",
["kuk"] = "Kepo'",
["kul"] = "Kulere",
["kum"] = "Kumyk",
["kun"] = "Kunama",
["kuo"] = "Kumukio",
["kup"] = "Kunimaipa",
["kuq"] = "Karipuna",
["kus"] = "Kusaal",
["kut"] = "Kutenai",
["kuu"] = "Kuskokwim Hulu",
["kuv"] = "Kur",
["kuw"] = "Kpagua",
["kux"] = "Kukatja",
["kuy"] = "Kuuku-Ya'u",
["kuz"] = "Kunza",
["kva"] = "Bagvalal",
["kvb"] = "Orang Rimba",
["kvc"] = "Kove",
["kvd"] = "Kui (Indonesia)",
["kve"] = "Kalabakan",
["kvf"] = "Kabalai",
["kvg"] = "Kuni-Boazi",
["kvh"] = "Komodo",
["kvi"] = "Kwang",
["kvj"] = "Psikye",
["kvk"] = "Isyarat Korea",
["kvl"] = "Karen Brek",
["kvm"] = "Kendem",
["kvn"] = "Border Kuna",
["kvo"] = "Dobel",
["kvp"] = "Kompane",
["kvq"] = "Karen Geba",
["kvr"] = "Kerinci",
["kvt"] = "Karen Lahta",
["kvu"] = "Karen Yinbaw",
["kvv"] = "Kola",
["kvw"] = "Wersing",
["kvx"] = "Koli Parkari",
["kvy"] = "Karen Yintale",
["kvz"] = "Tsakwambo",
["kw"] = "Cornish",
["kwa"] = "Dâw",
["kwb"] = "Baa",
["kwc"] = "Likwala",
["kwd"] = "Kwaio",
["kwe"] = "Kwerba",
["kwf"] = "Kwara'ae",
["kwg"] = "Sara Kaba Deme",
["kwh"] = "Kowiai",
["kwi"] = "Awa-Cuaiquer",
["kwj"] = "Kwanga",
["kwk"] = "Kwak'wala",
["kwl"] = "Kofyar",
["kwm"] = "Kwambi",
["kwn"] = "Kwangali",
["kwo"] = "Kwomtari",
["kwp"] = "Kodia",
["kwq"] = "Kwak",
["kwr"] = "Kwer",
["kws"] = "Kwese",
["kwt"] = "Kwesten",
["kwu"] = "Kwakum",
["kwv"] = "Sara Kaba Náà",
["kww"] = "Kwinti",
["kwx"] = "Khirwar",
["kwz"] = "Kwadi",
["kxa"] = "Kairiru",
["kxb"] = "Krobu",
["kxc"] = "Khonso",
["kxd"] = "Melayu Brunei",
["kxe"] = "Kakihum",
["kxf"] = "Karen Manumanaw",
["kxh"] = "Karo",
["kxi"] = "Murut Keningau",
["kxj"] = "Kulfa",
["kxk"] = "Karen Zayein",
["kxl"] = "Nepai Kurux",
["kxm"] = "Khmer Utara",
["kxn"] = "Kanowit",
["kxo"] = "Kanoé",
["kxp"] = "Koli Wadiyara",
["kxq"] = "Kanum Smärky",
["kxr"] = "Koro (Papua)",
["kxs"] = "Kangjia",
["kxt"] = "Koiwat",
["kxu"] = "Kui (India)",
["kxv"] = "Kuvi",
["kxw"] = "Konai",
["kxx"] = "Likuba",
["kxy"] = "Kayong",
["kxz"] = "Kerewo",
["ky"] = "Kirgiz",
["kya"] = "Kwaya",
["kyb"] = "Kalinga Butbut",
["kyc"] = "Kyaka",
["kyd"] = "Karey",
["kye"] = "Krache",
["kyf"] = "Kouya",
["kyg"] = "Keyagana",
["kyh"] = "Karok",
["kyi"] = "Kiput",
["kyj"] = "Karao",
["kyk"] = "Kamayo",
["kyl"] = "Kalapuya",
["kym"] = "Kpatili",
["kyn"] = "Karolanos",
["kyo"] = "Kelon",
["kyp"] = "Kang",
["kyq"] = "Kenga",
["kyr"] = "Kuruáya",
["kys"] = "Kayan Baram",
["kyt"] = "Kayagar",
["kyu"] = "Kayah Barat",
["kyv"] = "Kayort",
["kyw"] = "Kudmali",
["kyx"] = "Rapoisi",
["kyy"] = "Kambaira",
["kyz"] = "Kayabí",
["kza"] = "Karaboro Barat",
["kzb"] = "Kaibobo",
["kzc"] = "Kulango Bondoukou",
["kzd"] = "Kadai",
["kze"] = "Kosena",
["kzf"] = "Kaili Da'a",
["kzg"] = "Kikai",
["kzh"] = "Dongolawi",
["kzi"] = "Kelabit",
["kzj"] = "Kadazan Pesisir",
["kzk"] = "Kazukuru",
["kzl"] = "Kayeli",
["kzm"] = "Kais",
["kzn"] = "Kokola",
["kzo"] = "Kaningi",
["kzp"] = "Kaidipang",
["kzq"] = "Kaike",
["kzr"] = "Karang",
["kzs"] = "Dusun Sugut",
["kzt"] = "Dusun Tambunan",
["kzu"] = "Kayupulau",
["kzv"] = "Komyandaret",
["kzw"] = "Kariri",
["kzx"] = "Kamarian",
["kzy"] = "Kango-Sua",
["kzz"] = "Kalabra",
["la"] = "Latin",
["laa"] = "Lapuyan Subanun",
["lab"] = "Linear A",
["lac"] = "Lacandon",
["lad"] = "Ladino",
["lae"] = "Pattani",
["laf"] = "Lafofa",
["lag"] = "Langi",
["lah"] = "Lahnda",
["lai"] = "Lambya",
["laj"] = "Lango (Uganda)",
["lak"] = "Laka",
["lam"] = "Lamba",
["lan"] = "Laru",
["lap"] = "Kabba-Laka",
["laq"] = "Qabiao",
["lar"] = "Larteh",
["las"] = "Gur Lama",
["lau"] = "Laba",
["law"] = "Lauje",
["lax"] = "Tiwa",
["lay"] = "Bai Lama",
["laz"] = "Aribwatsa",
["lb"] = "Luksemburg",
["lbb"] = "Label",
["lbc"] = "Lakkia",
["lbe"] = "Lak",
["lbf"] = "Tinani",
["lbg"] = "Laopang",
["lbi"] = "La'bi",
["lbj"] = "Ladakhi",
["lbk"] = "Bontoc Tengah",
["lbl"] = "Bikol Libon",
["lbm"] = "Lodhi",
["lbn"] = "Lamet",
["lbo"] = "Laven",
["lbq"] = "Wampar",
["lbr"] = "Lorung Utara",
["lbs"] = "Isyarat Libya",
["lbt"] = "Lachi",
["lbu"] = "Labu",
["lbv"] = "Lavatbura-Lamusong",
["lbw"] = "Tolaki",
["lbx"] = "Lawangan-Pasir",
["lby"] = "Lamu-Lamu",
["lbz"] = "Lardil",
["lcc"] = "Legenyem",
["lcd"] = "Lola",
["lce"] = "Loncong",
["lcf"] = "Lubu",
["lch"] = "Luchazi",
["lcl"] = "Lisela",
["lcm"] = "Tungag",
["lcp"] = "Lawa Barat",
["lcq"] = "Luhu",
["lcs"] = "Lisabata-Nuniali",
["lda"] = "Kla",
["ldb"] = "Idun",
["ldd"] = "Luri (Nigeria)",
["ldg"] = "Lenyima",
["ldh"] = "Lamja-Dengsa-Tola",
["ldj"] = "Lemoro",
["ldk"] = "Leelau",
["ldl"] = "Kaan",
["ldm"] = "Landoma",
["ldn"] = "Láadan",
["ldo"] = "Loo",
["ldp"] = "Tso",
["ldq"] = "Lufu",
["lea"] = "Lega-Shabunda",
["leb"] = "Lala-Bisa",
["lec"] = "Leco",
["led"] = "Lendu",
["lee"] = "Lyélé",
["lef"] = "Lelemi",
["leh"] = "Lenje",
["lei"] = "Lemio",
["lej"] = "Lengola",
["lek"] = "Leipon",
["lel"] = "Lele (Kongo)",
["lem"] = "Nomaande",
["len"] = "Lenca Honduras",
["leo"] = "Leti (Kamerun)",
["lep"] = "Lepcha",
["leq"] = "Lembena",
["ler"] = "Lenkau",
["les"] = "Lese",
["let"] = "Lesing-Gelimi",
["leu"] = "Kara (Papua)",
["lev"] = "Lamma",
["lew"] = "Kaili Ledo",
["lex"] = "Luang",
["ley"] = "Lemolang",
["lez"] = "Lezgi",
["lfa"] = "Lefa",
["lfn"] = "Lingua Franca Nova",
["lg"] = "Luganda",
["lga"] = "Lungga",
["lgb"] = "Laghu",
["lgg"] = "Lugbara",
["lgh"] = "Laghuu",
["lgi"] = "Lengilu",
["lgk"] = "Neverver",
["lgl"] = "Wala",
["lgm"] = "Lega-Mwenga",
["lgn"] = "Opuuo",
["lgq"] = "Logba",
["lgr"] = "Lengo",
["lgs"] = "Isyarat Guinea-Bissau",
["lgt"] = "Pahi",
["lgu"] = "Longgu",
["lgz"] = "Ligenza",
["lha"] = "Laha (Vietnam)",
["lhh"] = "Laha (Indonesia)",
["lhi"] = "Lahu Shi",
["lhl"] = "Lahul Lohar",
["lhn"] = "Lahanan",
["lhp"] = "Lhokpu",
["lhs"] = "Mlahsö",
["lht"] = "Lo-Toga",
["lhu"] = "Lahu",
["li"] = "Limburg",
["lia"] = "Limba Tengah Barat",
["lib"] = "Likum",
["lic"] = "Hlai",
["lid"] = "Nyindrou",
["lie"] = "Likila",
["lif"] = "Limbu",
["lig"] = "Ligbi",
["lih"] = "Lihir",
["lii"] = "Lingkhim",
["lij"] = "Liguria",
["lik"] = "Lika",
["lil"] = "Lillooet",
["lio"] = "Liki",
["lip"] = "Sekpele",
["liq"] = "Libido",
["lir"] = "Inggris Liberia",
["lis"] = "Lisu",
["liu"] = "Logorik",
["liv"] = "Livonia",
["liw"] = "Col",
["lix"] = "Liabuku",
["liy"] = "Banda-Bambari",
["liz"] = "Libinza",
["lja"] = "Golpa",
["lje"] = "Rampi",
["lji"] = "Laiyolo",
["ljl"] = "Lio",
["ljp"] = "Lampung Api",
["ljw"] = "Yirandali",
["ljx"] = "Yuru",
["lka"] = "Lakalei",
["lkb"] = "Kabras",
["lkc"] = "Kucong",
["lkd"] = "Lakondê",
["lke"] = "Kenyi",
["lkh"] = "Lakha",
["lki"] = "Laki",
["lkj"] = "Remun",
["lkl"] = "Laeko-Libuat",
["lkm"] = "Kalaamaya",
["lkn"] = "Lakon",
["lko"] = "Khayo",
["lkr"] = "Päri",
["lks"] = "Kisa",
["lkt"] = "Lakota",
["lku"] = "Kungkari",
["lky"] = "Lokoya",
["lla"] = "Lala-Roba",
["llb"] = "Lolo",
["llc"] = "Lele (Guinea)",
["lld"] = "Ladin",
["lle"] = "Lele (Papua)",
["llf"] = "Hermit",
["llg"] = "Lole",
["llh"] = "Lamu",
["lli"] = "Teke-Laali",
["llj"] = "Ladji-Ladji",
["llk"] = "Lelak",
["lll"] = "Lilau",
["llm"] = "Lasalimu",
["lln"] = "Lele (Chad)",
["llo"] = "Khlor",
["llp"] = "Efate Utara",
["llq"] = "Lolak",
["lls"] = "Isyarat Lituania",
["llu"] = "Lau",
["llx"] = "Lauan",
["lma"] = "Limba Timur",
["lmb"] = "Merei",
["lmc"] = "Limilngan",
["lmd"] = "Lumun",
["lme"] = "Pévé",
["lmf"] = "Lembata Selatan",
["lmg"] = "Lamogai",
["lmh"] = "Lambichhong",
["lmi"] = "Lombi",
["lmj"] = "Lembata Barat",
["lmk"] = "Lamkang",
["lml"] = "Raga",
["lmn"] = "Lambadi",
["lmo"] = "Lombard",
["lmp"] = "Limbum",
["lmq"] = "Lamatuka",
["lmr"] = "Lamalera",
["lmu"] = "Lamenu",
["lmv"] = "Lomaiviti",
["lmw"] = "Miwok Lake",
["lmx"] = "Laimbue",
["lmy"] = "Laboya",
["lmz"] = "Lumbee",
["ln"] = "Lingala",
["lna"] = "Langbashe",
["lnb"] = "Mbalanhu",
["lnd"] = "Lun Bawang",
["lnh"] = "Lanoh",
["lni"] = "Daantanai'",
["lnj"] = "Linngithigh",
["lnl"] = "Banda Tengah Selatan",
["lnm"] = "Langam",
["lnn"] = "Lorediakarkar",
["lno"] = "Lango (Sudan)",
["lns"] = "Lamnso'",
["lnu"] = "Longuda",
["lnw"] = "Lanima",
["lo"] = "Lao",
["loa"] = "Loloda",
["lob"] = "Lobi",
["loc"] = "Inonhan",
["lod"] = "Berawan",
["loe"] = "Saluan",
["lof"] = "Logol",
["log"] = "Logo",
["loh"] = "Narim",
["loi"] = "Lomakka",
["loj"] = "Lou",
["lok"] = "Loko",
["lol"] = "Mongo",
["lom"] = "Looma",
["lon"] = "Malawi Lomwe",
["loo"] = "Lombo",
["lop"] = "Lopa",
["loq"] = "Lobala",
["lor"] = "Téén",
["los"] = "Loniu",
["lot"] = "Lotuko",
["lou"] = "Kreol Louisiana",
["lov"] = "Lopi",
["low"] = "Lobu Tampias",
["lox"] = "Loun",
["loz"] = "Lozi",
["lpa"] = "Lelepa",
["lpe"] = "Lepki",
["lpn"] = "Naga Long Phuri",
["lpo"] = "Lipo",
["lpx"] = "Lopit",
["lra"] = "Rara Bakati'",
["lrc"] = "Luri Utara",
["lre"] = "Laurentian",
["lrg"] = "Laragia",
["lri"] = "Marachi",
["lrk"] = "Loarki",
["lrl"] = "Larestani",
["lrm"] = "Marama",
["lrn"] = "Lorang",
["lro"] = "Laro",
["lrr"] = "Lorung Selatan",
["lrt"] = "Melayu Larantuka",
["lrv"] = "Larevat",
["lrz"] = "Lemerig",
["lsa"] = "Lasgerdi",
["lsd"] = "Lishana Deni",
["lse"] = "Lusengo",
["lsh"] = "Lish",
["lsi"] = "Lashi",
["lsl"] = "Isyarat Latvia",
["lsm"] = "Saamia",
["lso"] = "Isyarat Laos",
["lsp"] = "Isyarat Panama",
["lsr"] = "Aruop",
["lss"] = "Lasi",
["lst"] = "Isyarat Trinidad dan Tobago",
["lsy"] = "Isyarat Mauritius",
["lt"] = "Lithuania",
["ltc"] = "Tionghoa Tengahan",
["ltg"] = "Latgalian",
["lti"] = "Leti (Indonesia)",
["ltn"] = "Latundê",
["lto"] = "Olutsotso",
["lts"] = "Lutachoni",
["ltu"] = "Latu",
["lu"] = "Luba-Katanga",
["lua"] = "Luba-Kasai",
["luc"] = "Aringa",
["lud"] = "Ludian",
["lue"] = "Luvale",
["luf"] = "Laua",
["lui"] = "Luiseño",
["luj"] = "Luna",
["luk"] = "Lunanakha",
["lul"] = "Olu'bo",
["lum"] = "Luimbi",
["lun"] = "Lunda",
["luo"] = "Luo",
["lup"] = "Lumbu",
["luq"] = "Lucumí",
["lur"] = "Laura",
["lus"] = "Mizo",
["lut"] = "Lushootseed",
["luu"] = "Lumba-Yakkha",
["luv"] = "Luwati",
["luy"] = "Luhya",
["luz"] = "Luri Selatan",
["lv"] = "Latvia",
["lva"] = "Maku'a",
["lvi"] = "Lawi",
["lvk"] = "Lavukaleve",
["lvu"] = "Levuka",
["lwa"] = "Lwalu",
["lwe"] = "Lewo Eleng",
["lwg"] = "Wanga",
["lwh"] = "Lachi Putih",
["lwl"] = "Lawa Timur",
["lwm"] = "Laomian",
["lwo"] = "Luwo",
["lws"] = "Isyarat Malawi",
["lwt"] = "Lewotobi",
["lwu"] = "Lawu",
["lww"] = "Lewo",
["lya"] = "Layakha",
["lyg"] = "Lyngngam",
["lyn"] = "Luyana",
["lzh"] = "Tionghoa Literatur",
["lzl"] = "Litzlitz",
["lzn"] = "Naga Leinong",
["lzz"] = "Laz",
["maa"] = "Mazatec San Jerónimo Tecóatl",
["mab"] = "Mixtec Yutanduchi",
["mad"] = "Madura",
["mae"] = "Bo-Rukul",
["maf"] = "Mafa",
["mag"] = "Magahi",
["mai"] = "Maithili",
["maj"] = "Mazatec Jalapa de Díaz",
["mak"] = "Makassar",
["mam"] = "Mam",
["man"] = "Mandingo",
["map-ata-pro"] = "Proto-Atayalic",
["map-bms"] = "Jawa Banyumasan",
["map-pro"] = "Proto-Austronesia",
["maq"] = "Mazatec Chiquihuitlán",
["mas"] = "Maasai",
["mat"] = "Matlatzinca",
["mau"] = "Mazatec Huautla",
["mav"] = "Sateré-Mawé",
["maw"] = "Mampruli",
["max"] = "Melayu Maluku Utara",
["maz"] = "Mazahua Tengah",
["mba"] = "Higaonon",
["mbb"] = "Manobo Bukidnon Barat",
["mbc"] = "Macushi",
["mbd"] = "Manobo Dibabawon",
["mbe"] = "Molale",
["mbf"] = "Melayu Baba",
["mbh"] = "Mangseng",
["mbi"] = "Manobo Ilianen",
["mbj"] = "Nadëb",
["mbk"] = "Malol",
["mbl"] = "Maxakalí",
["mbm"] = "Ombamba",
["mbn"] = "Macaguán",
["mbo"] = "Mbo (Kamerun)",
["mbp"] = "Wiwa",
["mbq"] = "Maisin",
["mbr"] = "Nukak Makú",
["mbs"] = "Manobo Sarangani",
["mbt"] = "Manobo Matigsalug",
["mbu"] = "Mbula-Bwazza",
["mbv"] = "Mbulungish",
["mbw"] = "Maring",
["mbx"] = "Mari Sepik",
["mby"] = "Memoni",
["mbz"] = "Mixtec Amoltepec",
["mca"] = "Maca",
["mcb"] = "Machiguenga",
["mcc"] = "Bitur",
["mcd"] = "Sharanahua",
["mce"] = "Mixtec Itundujia",
["mcf"] = "Matsés",
["mcg"] = "Mapoyo",
["mch"] = "Maquiritari",
["mci"] = "Mese",
["mcj"] = "Mvanip",
["mck"] = "Mbunda",
["mcl"] = "Macaguaje",
["mcm"] = "Kristang",
["mcn"] = "Masana",
["mco"] = "Mixe Coatlán",
["mcp"] = "Makaa",
["mcq"] = "Ese",
["mcr"] = "Menya",
["mcs"] = "Mambai",
["mcu"] = "Mambila Kamerun",
["mcv"] = "Minanibai",
["mcw"] = "Mawa",
["mcx"] = "Mpiemo",
["mcy"] = "Watut Selatan",
["mcz"] = "Mawan",
["mda"] = "Mada (Nigeria)",
["mdb"] = "Morigi",
["mdc"] = "Male",
["mdd"] = "Mbum",
["mde"] = "Bura Mabang",
["mdf"] = "Moksha",
["mdg"] = "Massalat",
["mdh"] = "Maguindanao",
["mdi"] = "Mamvu",
["mdj"] = "Mangbetu",
["mdk"] = "Mangbutu",
["mdl"] = "Isyarat Malta",
["mdm"] = "Mayogo",
["mdn"] = "Mbati",
["mdp"] = "Mbala",
["mdq"] = "Mbole",
["mdr"] = "Mandar",
["mds"] = "Maria",
["mdt"] = "Mbere",
["mdu"] = "Mboko",
["mdv"] = "Mixtec Santa Lucía Monteverde",
["mdw"] = "Mbosi",
["mdx"] = "Dizin",
["mdy"] = "Maale",
["mdz"] = "Suruí Do Pará",
["mea"] = "Menka",
["meb"] = "Ikobi-Mena",
["mec"] = "Mara",
["med"] = "Melpa",
["mee"] = "Mengen",
["mef"] = "Megam",
["meg"] = "Mea",
["meh"] = "Mixtec Tlaxiaco Barat Daya",
["mei"] = "Midob",
["mej"] = "Meyah",
["mek"] = "Mekeo",
["mel"] = "Melanau Tengah",
["mem"] = "Mangala",
["men"] = "Mende",
["meo"] = "Melayu Kedah",
["mep"] = "Miriwung",
["meq"] = "Merey",
["mer"] = "Meru",
["mes"] = "Masmaje",
["met"] = "Mato",
["meu"] = "Motu",
["mev"] = "Mano",
["mew"] = "Maaka",
["mey"] = "Hassaniya",
["mez"] = "Menominee",
["mfa"] = "Melayu Kelantan-Patani",
["mfb"] = "Bangka",
["mfc"] = "Mba",
["mfd"] = "Mendankwe-Nkwen",
["mfe"] = "Kreol Mauritia",
["mff"] = "Naki",
["mfg"] = "Mixifore",
["mfh"] = "Matal",
["mfi"] = "Wandala",
["mfj"] = "Mefele",
["mfk"] = "Mofu Utara",
["mfl"] = "Putai",
["mfm"] = "Marghi Selatan",
["mfn"] = "Mbembe Sungai Cross",
["mfo"] = "Mbe",
["mfp"] = "Melayu Makassar",
["mfq"] = "Moba",
["mfr"] = "Marrithiyel",
["mfs"] = "Isyarat Meksiko",
["mft"] = "Mokerang",
["mfu"] = "Mbwela",
["mfv"] = "Mandjak",
["mfw"] = "Mulaha",
["mfx"] = "Melo",
["mfy"] = "Mayo",
["mfz"] = "Mabaan",
["mg"] = "Malagasi",
["mga"] = "Irlandia Tengahan",
["mgb"] = "Mararit",
["mgc"] = "Morokodo",
["mgd"] = "Moru",
["mge"] = "Mango",
["mgf"] = "Maklew",
["mgg"] = "Mpongmpong",
["mgh"] = "Makhuwa-Meetto",
["mgi"] = "Jili",
["mgj"] = "Abureni",
["mgk"] = "Mawes",
["mgl"] = "Maleu-Kilenge",
["mgm"] = "Mambae",
["mgn"] = "Mbangi",
["mgo"] = "Meta'",
["mgp"] = "Magar Timur",
["mgq"] = "Malila",
["mgr"] = "Mambwe-Lungu",
["mgs"] = "Manda (Tanzania)",
["mgt"] = "Mongol",
["mgu"] = "Mailu",
["mgv"] = "Matengo",
["mgw"] = "Matumbi",
["mgy"] = "Mbunga",
["mgz"] = "Mbugwe",
["mh"] = "Marshall",
["mha"] = "Manda (India)",
["mhb"] = "Mahongwe",
["mhc"] = "Mocho",
["mhd"] = "Mbugu",
["mhe"] = "Besisi",
["mhf"] = "Mamaa",
["mhg"] = "Margu",
["mhi"] = "Ma'di",
["mhj"] = "Mogholi",
["mhk"] = "Mungaka",
["mhl"] = "Mauwake",
["mhm"] = "Makhuwa-Moniga",
["mhn"] = "Mòcheno",
["mho"] = "Mashi",
["mhp"] = "Melayu Bali",
["mhq"] = "Mandan",
["mhr"] = "Mari Timur",
["mhs"] = "Buru (Indonesia)",
["mht"] = "Mandahuaca",
["mhu"] = "Taraon",
["mhw"] = "Mbukushu",
["mhx"] = "Lhao Vo",
["mhy"] = "Ma'anyan",
["mhz"] = "Mor (Austronesia)",
["mi"] = "Maori",
["mia"] = "Miami",
["mib"] = "Mixtec Atatláhuca",
["mic"] = "Mi'kmaq",
["mid"] = "Mandaic",
["mie"] = "Mixtec Ocotepec",
["mif"] = "Mofu-Gudur",
["mig"] = "Mixtec San Miguel el Grande",
["mih"] = "Mixtec Chayuco",
["mii"] = "Mixtec Chigmecatitlán",
["mij"] = "Mungbam",
["mik"] = "Mikasuki",
["mil"] = "Mixtec Peñoles",
["mim"] = "Mixtec Alacatlatzala",
["min"] = "Minangkabau",
["mio"] = "Mixtec Pinotepa Nacional",
["mip"] = "Mixtec Apasco-Apoala",
["miq"] = "Miskito",
["mir"] = "Mixe Isthmus",
["mit"] = "Mixtec Puebla Selatan",
["miu"] = "Mixtec Cacaloxtepec",
["miw"] = "Akoye",
["mix"] = "Mixtec Mixtepec",
["miy"] = "Mixtec Ayutla",
["miz"] = "Mixtec Coatzospan",
["mjb"] = "Makalero",
["mjc"] = "Mixtec San Juan Colorado",
["mjd"] = "Maidu Barat Laut",
["mje"] = "Muskum",
["mji"] = "Kim Mun",
["mjj"] = "Mawak",
["mjk"] = "Matukar",
["mjl"] = "Mandeali",
["mjm"] = "Medebur",
["mjn"] = "Mebu",
["mjo"] = "Malankuravan",
["mjp"] = "Malapandaram",
["mjq"] = "Malaryan",
["mjr"] = "Malavedan",
["mjs"] = "Miship",
["mjt"] = "Paharia Sawriya",
["mju"] = "Manna-Dora",
["mjv"] = "Mannan",
["mjw"] = "Karbi",
["mjx"] = "Mahali",
["mjy"] = "Mahican",
["mjz"] = "Majhi",
["mk"] = "Makedonia",
["mka"] = "Mbre",
["mkb"] = "Paharia Mal",
["mkc"] = "Siliput",
["mke"] = "Mawchi",
["mkf"] = "Miya",
["mkg"] = "Mak (Tiongkok)",
["mkh-asl-pro"] = "Proto-Aslian",
["mkh-ban-pro"] = "Proto-Bahnaric",
["mkh-kat-pro"] = "Proto-Katuic",
["mkh-khm-pro"] = "Proto-Khmuic",
["mkh-kmr-pro"] = "Proto-Khmeric",
["mkh-mmn"] = "Mon Tengahan",
["mkh-mnc-pro"] = "Proto-Monic",
["mkh-mvi"] = "Vietnam Tengahan",
["mkh-pal-pro"] = "Proto-Palaungic",
["mkh-pea-pro"] = "Proto-Pearic",
["mkh-pkn-pro"] = "Proto-Pakanic",
["mkh-pro"] = "Proto-Mon-Khmer",
["mkh-vie-pro"] = "Proto-Vietic",
["mki"] = "Dhatki",
["mkj"] = "Mokilese",
["mkk"] = "Byep",
["mkl"] = "Mokole",
["mkm"] = "Moklen",
["mkn"] = "Melayu Kupang",
["mko"] = "Mingang Doso",
["mkp"] = "Moikodi",
["mkq"] = "Miwok Bay",
["mkr"] = "Malas",
["mks"] = "Mixtec Silacayoapan",
["mkt"] = "Vamale",
["mku"] = "Maninka Konyanka",
["mkv"] = "Mafea",
["mkx"] = "Manobo Cinamiguin",
["mky"] = "Makian Timur",
["mkz"] = "Makasae",
["ml"] = "Malayalam",
["mla"] = "Tamambo",
["mlb"] = "Mbule",
["mlc"] = "Caolan",
["mle"] = "Manambu",
["mlf"] = "Mal",
["mlh"] = "Mape",
["mli"] = "Malimpung",
["mlj"] = "Miltu",
["mlk"] = "Ilwana",
["mll"] = "Malua Bay",
["mlm"] = "Mulam",
["mln"] = "Malango",
["mlo"] = "Mlomp",
["mlp"] = "Bargam",
["mlq"] = "Maninkakan Barat",
["mlr"] = "Vame",
["mls"] = "Masalit",
["mlu"] = "To'abaita",
["mlv"] = "Mwotlap",
["mlw"] = "Moloko",
["mlx"] = "Malfaxal",
["mlz"] = "Malaynon",
["mma"] = "Mama",
["mmb"] = "Momina",
["mmc"] = "Mazahua Michoacán",
["mmd"] = "Maonan",
["mme"] = "Mae",
["mmf"] = "Mundat",
["mmg"] = "Ambrym Utara",
["mmh"] = "Mehináku",
["mmi"] = "Musar",
["mmj"] = "Majhwar",
["mmk"] = "Mukha-Dora",
["mml"] = "Man Met",
["mmm"] = "Maii",
["mmn"] = "Mamanwa",
["mmo"] = "Buang Mangga",
["mmp"] = "Musan",
["mmq"] = "Aisi",
["mmr"] = "Miao Xiangxi Barat",
["mmt"] = "Malalamai",
["mmu"] = "Mmaala",
["mmv"] = "Miriti",
["mmw"] = "Emae",
["mmx"] = "Madak",
["mmy"] = "Migaama",
["mmz"] = "Mabaale",
["mn"] = "Mongolia",
["mna"] = "Mbula",
["mnb"] = "Muna",
["mnc"] = "Manchu",
["mnd"] = "Mondé",
["mne"] = "Naba",
["mnf"] = "Mundani",
["mng"] = "Mnong Timur",
["mnh"] = "Mono (Kongo)",
["mni"] = "Manipuri",
["mnj"] = "Munji",
["mnk"] = "Mandinka",
["mnl"] = "Tiale",
["mnm"] = "Mapena",
["mnn"] = "Mnong Selatan",
["mnp"] = "Min Bei",
["mnq"] = "Minriq",
["mnr"] = "Mono (California)",
["mns"] = "Mansi",
["mnt"] = "Maykulan",
["mnu"] = "Mer",
["mnv"] = "Rennellese",
["mnw"] = "Mon",
["mnw-tha"] = "Mon Thai",
["mnx"] = "Manikion",
["mny"] = "Manyawa",
["mnz"] = "Migani",
["moa"] = "Mwan",
["moc"] = "Mocoví",
["mod"] = "Mobilian",
["moe"] = "Montagnais",
["mog"] = "Mongondow",
["moh"] = "Mohawk",
["moi"] = "Mboi",
["moj"] = "Monzombo",
["mok"] = "Morori",
["mom"] = "Monimbo",
["moo"] = "Monom",
["mop"] = "Maya Mopan",
["moq"] = "Mor (Papua)",
["mor"] = "Moro",
["mos"] = "Moore",
["mot"] = "Barí",
["mou"] = "Mogum",
["mov"] = "Mojave",
["mow"] = "Moi (Kongo)",
["mox"] = "Molima",
["moy"] = "Shekkacho",
["moz"] = "Mukulu",
["mpa"] = "Mpoto",
["mpb"] = "Mullukmulluk",
["mpc"] = "Mangarayi",
["mpd"] = "Machinere",
["mpe"] = "Majang",
["mpg"] = "Marba",
["mph"] = "Maung",
["mpi"] = "Mpade",
["mpj"] = "Martu Wangka",
["mpk"] = "Mbara (Chad)",
["mpl"] = "Watut Tengahan",
["mpm"] = "Mixtec Yosondúa",
["mpn"] = "Mindiri",
["mpo"] = "Miu",
["mpp"] = "Migabac",
["mpq"] = "Matís",
["mpr"] = "Vangunu",
["mps"] = "Dadibi",
["mpt"] = "Mian",
["mpu"] = "Makuráp",
["mpv"] = "Mungkip",
["mpw"] = "Mapidian",
["mpx"] = "Misima-Paneati",
["mpy"] = "Mapia",
["mpz"] = "Mpi",
["mqa"] = "Maba",
["mqb"] = "Mbuko",
["mqc"] = "Mangole",
["mqe"] = "Matepi",
["mqf"] = "Momuna",
["mqg"] = "Kutai Hulu",
["mqh"] = "Mixtec Tlazoyaltepec",
["mqi"] = "Mariri",
["mqj"] = "Mamasa",
["mqk"] = "Manobo Rajah Kabunsuwan",
["mql"] = "Mbelime",
["mqm"] = "Marquesan Selatan",
["mqn"] = "Moronene",
["mqo"] = "Modole",
["mqp"] = "Manipa",
["mqq"] = "Minokok",
["mqr"] = "Mander",
["mqs"] = "Makian Barat",
["mqt"] = "Mok",
["mqu"] = "Mandari",
["mqv"] = "Mosimo",
["mqw"] = "Murupi",
["mqx"] = "Mamuju",
["mqy"] = "Manggarai",
["mqz"] = "Malasanga",
["mr"] = "Marathi",
["mra"] = "Mlabri",
["mrb"] = "Marino",
["mrc"] = "Maricopa",
["mrd"] = "Magar Barat",
["mre"] = "Isyarat Martha's Vineyard",
["mrf"] = "Elseng",
["mrg"] = "Mising",
["mrh"] = "Chin Mara",
["mrj"] = "Mari Barat",
["mrk"] = "Hmwaveke",
["mrl"] = "Mortlockese",
["mrm"] = "Merlav",
["mrn"] = "Cheke Holo",
["mro"] = "Mru",
["mrp"] = "Morouas",
["mrq"] = "Marquesan Utara",
["mrr"] = "Maria Hill",
["mrs"] = "Maragus",
["mrt"] = "Margi",
["mru"] = "Mono (Kamerun)",
["mrv"] = "Mangarevan",
["mrw"] = "Maranao",
["mrx"] = "Dineor",
["mry"] = "Karaga Mandaya",
["mrz"] = "Marind",
["ms"] = "Melayu",
["msb"] = "Masbatenyo",
["msc"] = "Maninka Sankaran",
["msd"] = "Isyarat Maya Yucatec",
["mse"] = "Musey",
["msf"] = "Mekwei",
["msg"] = "Moraid",
["msi"] = "Melayu Sabah",
["msj"] = "Ma",
["msk"] = "Mansaka",
["msl"] = "Molof",
["msm"] = "Manobo Agusan",
["msn"] = "Vurës",
["mso"] = "Mombum",
["msp"] = "Maritsauá",
["msq"] = "Caac",
["msr"] = "Isyarat Mongolia",
["mss"] = "Masela Barat",
["msu"] = "Musom",
["msv"] = "Maslam",
["msw"] = "Mansoanka",
["msx"] = "Moresada",
["msy"] = "Aruamu",
["msz"] = "Momare",
["mt"] = "Malta",
["mta"] = "Manobo Cotabato",
["mtb"] = "Anyin Morofo",
["mtc"] = "Munit",
["mtd"] = "Mualang",
["mte"] = "Alu",
["mtf"] = "Murik (Papua)",
["mtg"] = "Una",
["mth"] = "Munggui",
["mti"] = "Maiwa (Papua)",
["mtj"] = "Moskona",
["mtk"] = "Mbe'",
["mtl"] = "Montol",
["mtm"] = "Mator",
["mtn"] = "Matagalpa",
["mto"] = "Mixe Totontepec",
["mtp"] = "Wichí Lhamtés Nocten",
["mtq"] = "Muong",
["mtr"] = "Mewari",
["mts"] = "Yora",
["mtt"] = "Mota",
["mtu"] = "Mixtec Tututepec",
["mtv"] = "Asaro'o",
["mtw"] = "Magahat",
["mtx"] = "Mixtec Tidaá",
["mty"] = "Nabi",
["mua"] = "Mundang",
["mub"] = "Mubi",
["muc"] = "Mbu'",
["mud"] = "Aleut Mednyj",
["mue"] = "Media Lengua",
["mug"] = "Musgu",
["muh"] = "Mündü",
["mui"] = "Musi",
["mui-plm"] = "Palembang", -- hanya dipakai di Wikikamus
["muj"] = "Mabire",
["mum"] = "Maiwala",
["mun-pro"] = "Proto-Munda",
["muo"] = "Nyong",
["mup"] = "Malvi",
["muq"] = "Miao Xiangxi Timur",
["mur"] = "Murle",
["mus"] = "Creek",
["mut"] = "Muria Barat",
["muu"] = "Yaaku",
["muv"] = "Muthuvan",
["mux"] = "Bo-Ung",
["muy"] = "Muyang",
["muz"] = "Mursi",
["mva"] = "Manam",
["mvb"] = "Mattole",
["mvd"] = "Mamboru",
["mvg"] = "Mixtec Yucuañe",
["mvh"] = "Mire",
["mvi"] = "Miyako",
["mvk"] = "Mekmek",
["mvl"] = "Mbara (Australia)",
["mvm"] = "Muya",
["mvn"] = "Minaveha",
["mvo"] = "Marovo",
["mvp"] = "Duri",
["mvq"] = "Moere",
["mvr"] = "Marau",
["mvs"] = "Massep",
["mvt"] = "Mpotovoro",
["mvu"] = "Marfa",
["mvv"] = "Murut Tagal",
["mvw"] = "Machinga",
["mvx"] = "Meoswar",
["mvy"] = "Indus Kohistani",
["mvz"] = "Mesqan",
["mwa"] = "Mwatebu",
["mwb"] = "Juwal",
["mwc"] = "Are",
["mwe"] = "Mwera",
["mwf"] = "Murrinh-Patha",
["mwg"] = "Aiklep",
["mwh"] = "Mouk-Aria",
["mwi"] = "Labo",
["mwk"] = "Maninkakan Kita",
["mwl"] = "Mirandese",
["mwm"] = "Sar",
["mwn"] = "Nyamwanga",
["mwo"] = "Maewo Tengah",
["mwp"] = "Kala Lagaw Ya",
["mwq"] = "Chin Mün",
["mwr"] = "Marwari",
["mws"] = "Mwimbi-Muthambi",
["mwt"] = "Moken",
["mwu"] = "Mittu",
["mwv"] = "Mentawai",
["mww"] = "Hmong Putih",
["mwz"] = "Moingi",
["mxa"] = "Mixtec Oaxaca Barat Laut",
["mxb"] = "Mixtec Tezoatlán",
["mxd"] = "Modang",
["mxe"] = "Mele-Fila",
["mxf"] = "Malgbe",
["mxg"] = "Mbangala",
["mxh"] = "Mvuba",
["mxi"] = "Mozarabic",
["mxj"] = "Miju",
["mxk"] = "Monumbo",
["mxl"] = "Gbe Maxi",
["mxm"] = "Meramera",
["mxn"] = "Moi (Indonesia)",
["mxo"] = "Mbowe",
["mxp"] = "Mixe Tlahuitoltepec",
["mxq"] = "Mixe Juquila",
["mxr"] = "Murik (Malaysia)",
["mxs"] = "Mixtec Huitepec",
["mxt"] = "Mixtec Jamiltepec",
["mxu"] = "Mada (Kamerun)",
["mxv"] = "Mixtec Metlatónoc",
["mxw"] = "Namo",
["mxx"] = "Mahou",
["mxy"] = "Mixtec Nochixtlán Tenggara",
["mxz"] = "Masela Tengah",
["my"] = "Burma",
["myb"] = "Mbay",
["myc"] = "Mayeka",
["mye"] = "Myene",
["myf"] = "Bambassi",
["myg"] = "Manta",
["myh"] = "Makah",
["myj"] = "Mangayat",
["myk"] = "Senoufo Mamara",
["myl"] = "Moma",
["mym"] = "Me'en",
["myn-chl"] = "Ch'olti'",
["myn-pro"] = "Proto-Maya",
["myo"] = "Anfillo",
["myp"] = "Pirahã",
["myr"] = "Muniche",
["mys"] = "Mesmes",
["myu"] = "Mundurukú",
["myv"] = "Erzya",
["myw"] = "Muyuw",
["myx"] = "Masaba",
["myy"] = "Macuna",
["myz"] = "Mandaic Klasik",
["mza"] = "Mixtec Santa María Zacatepec",
["mzb"] = "Berber Sahara Utara",
["mzc"] = "Isyarat Madagaskar",
["mzd"] = "Malimba",
["mze"] = "Morawa",
["mzg"] = "Isyarat Monastic",
["mzh"] = "Wichí Lhamtés Güisnay",
["mzi"] = "Mazatec Ixcatlán",
["mzj"] = "Manya",
["mzk"] = "Mambila Nigeria",
["mzl"] = "Mixe Mazatlán",
["mzm"] = "Mumuye",
["mzn"] = "Mazanderani",
["mzo"] = "Matipuhy",
["mzp"] = "Movima",
["mzq"] = "Mori Atas",
["mzr"] = "Marúbo",
["mzs"] = "Makau",
["mzt"] = "Mintil",
["mzu"] = "Inapang",
["mzv"] = "Manza",
["mzw"] = "Deg",
["mzx"] = "Mawayana",
["mzy"] = "Isyarat Mozambik",
["mzz"] = "Maiadomu",
["na"] = "Nauru",
["naa"] = "Namla",
["nab"] = "Nambikwara",
["nac"] = "Narak",
["nae"] = "Naka'ela",
["naf"] = "Nabak",
["nag"] = "Naga Pijin",
["nah"] = "Nahuatl",
["nai-ala"] = "Alazapa",
["nai-bay"] = "Bayogoula",
["nai-bvy"] = "Yokuts Buena Vista",
["nai-cal"] = "Calusa",
["nai-chi"] = "Chiquimulilla",
["nai-chu-pro"] = "Proto-Chumash",
["nai-cig"] = "Ciguayo",
["nai-ckn-pro"] = "Proto-Chinookan",
["nai-dly"] = "Yokuts Delta",
["nai-gsy"] = "Gashowu",
["nai-guz"] = "Guazacapán",
["nai-hit"] = "Hitchiti",
["nai-ipa"] = "Ipai",
["nai-jtp"] = "Jutiapa",
["nai-jum"] = "Jumaytepeque",
["nai-kat"] = "Kathlamet",
["nai-klp-pro"] = "Proto-Kalapuyan",
["nai-knm"] = "Konomihu",
["nai-kry"] = "Yokuts Sungai Kings",
["nai-kum"] = "Kumeyaay",
["nai-mac"] = "Macoris",
["nai-mdu-pro"] = "Proto-Maidun",
["nai-miz-pro"] = "Proto-Mixe-Zoque",
["nai-mus-pro"] = "Proto-Muskogean",
["nai-nao"] = "Naolan",
["nai-nrs"] = "Shasta New River",
["nai-nvy"] = "Yokuts Lembah Utara",
["nai-okw"] = "Okwanuchu",
["nai-per"] = "Pericú",
["nai-pic"] = "Picuris",
["nai-plp-pro"] = "Proto-Plateau Penutian",
["nai-ply"] = "Palewyami",
["nai-pom-pro"] = "Proto-Pomo",
["nai-qng"] = "Quinigua",
["nai-sca-pro"] = "Proto-Siouan-Catawban",
["nai-sin"] = "Sinacantán",
["nai-sln"] = "Lenca El Salvador",
["nai-spt"] = "Sahaptin",
["nai-svy"] = "Yokuts Lembah Selatan",
["nai-tap"] = "Tapachultec",
["nai-taw"] = "Tawasa",
["nai-teq"] = "Tequistlatec",
["nai-tip"] = "Tipai",
["nai-tky"] = "Yokuts Tule-Kaweah",
["nai-tot-pro"] = "Proto-Totozoquean",
["nai-tsi-pro"] = "Proto-Tsimshianic",
["nai-utn-pro"] = "Proto-Utian",
["nai-wai"] = "Waikuri",
["nai-yup"] = "Yupiltepeque",
["naj"] = "Nalu",
["nak"] = "Nakanai",
["nal"] = "Nalik",
["nam"] = "Ngan'gityemerri",
["nan"] = "Min Nan",
["nan-hbl"] = "Hokkien", -- hanya dipakai di Wikikamus
["nan-tws"] = "Tiociu", -- hanya dipakai di Wikikamus
["nao"] = "Naaba",
["nap"] = "Neapolitan",
["naq"] = "Khoekhoe",
["nar"] = "Iguta",
["nas"] = "Nasioi",
["nat"] = "Hungworo",
["naw"] = "Nawuri",
["nax"] = "Nakwi",
["nay"] = "Ngarrindjeri",
["naz"] = "Nahuatl Coatepec",
["nb"] = "Norwegia Bokmål",
["nba"] = "Nyemba",
["nbb"] = "Ndoe",
["nbc"] = "Chang",
["nbd"] = "Ngbinda",
["nbe"] = "Naga Konyak",
["nbg"] = "Nagarchal",
["nbh"] = "Ngamo",
["nbi"] = "Naga Mao",
["nbj"] = "Ngarinman",
["nbk"] = "Nake",
["nbm"] = "Ngbaka Ma'bo",
["nbn"] = "Kuri",
["nbo"] = "Nkukoli",
["nbp"] = "Nnam",
["nbq"] = "Nggem",
["nbr"] = "Numana",
["nbs"] = "Isyarat Namibia",
["nbt"] = "Na",
["nbu"] = "Naga Rongmei",
["nbv"] = "Ngamambo",
["nbw"] = "Ngbandi Selatan",
["nby"] = "Ningera",
["nca"] = "Iyo",
["ncb"] = "Nikobar Tengah",
["ncc"] = "Ponam",
["ncd"] = "Nachering",
["nce"] = "Yale",
["ncf"] = "Notsi",
["ncg"] = "Nisga'a",
["nch"] = "Nahuatl Huasteca Tengah",
["nci"] = "Nahuatl Klasik",
["ncj"] = "Nahuatl Puebla Utara",
["nck"] = "Nakara",
["ncl"] = "Nahuatl Michoacán",
["ncm"] = "Nambo",
["ncn"] = "Nauna",
["nco"] = "Sibe",
["ncr"] = "Ncane",
["ncs"] = "Isyarat Nikaragua",
["nct"] = "Naga Chothe",
["ncu"] = "Chumburung",
["ncx"] = "Nahuatl Puebla Tengah",
["ncz"] = "Natchez",
["nd"] = "Ndebele Utara",
["nda"] = "Ndasa",
["ndb"] = "Kenswei Nsei",
["ndc"] = "Ndau",
["ndd"] = "Nde-Nsele-Nta",
["ndf"] = "Nadruvian",
["ndg"] = "Ndengereko",
["ndh"] = "Ndali",
["ndi"] = "Chamba Leko",
["ndj"] = "Ndamba",
["ndk"] = "Ndaka",
["ndl"] = "Ndolo",
["ndm"] = "Ndam",
["ndn"] = "Ngundi",
["ndp"] = "Ndo",
["ndq"] = "Ndombe",
["ndr"] = "Ndoola",
["nds"] = "Jerman Hilir",
["nds-de"] = "Jerman Hilir Jerman",
["nds-nl"] = "Saxon Hilir Belanda",
["ndt"] = "Ndunga",
["ndu"] = "Dugun",
["ndv"] = "Ndut",
["ndw"] = "Ndobo",
["ndx"] = "Nduga",
["ndy"] = "Lutos",
["ndz"] = "Ndogo",
["ne"] = "Nepal",
["nea"] = "Ngad'a Timur",
["neb"] = "Toura",
["nec"] = "Nedebang",
["ned"] = "Nde-Gbite",
["nee"] = "Kumak",
["nef"] = "Nefamese",
["neg"] = "Negidal",
["neh"] = "Nyenkha",
["nej"] = "Neko",
["nek"] = "Neku",
["nem"] = "Nemi",
["nen"] = "Nengone",
["neo"] = "Ná-Meo",
["neq"] = "Mixe Tengah Utara",
["ner"] = "Yahadian",
["nes"] = "Kinnauri Bhoti",
["net"] = "Nete",
["neu"] = "Neo",
["nev"] = "Nyaheun",
["new"] = "Newar",
["nex"] = "Neme",
["ney"] = "Neyo",
["nez"] = "Nez Perce",
["nfa"] = "Dhao",
["nfd"] = "Ahwai",
["nfl"] = "Aiwoo",
["nfr"] = "Nafaanra",
["nfu"] = "Mfumte",
["ng"] = "Ndonga",
["nga"] = "Ngbaka",
["ngb"] = "Ngbandi Utara",
["ngc"] = "Ngombe (Kongo)",
["ngd"] = "Ngando (Republik Afrika Tengah)",
["nge"] = "Ngemba",
["ngf-pro"] = "Proto-Trans-Papua",
["ngg"] = "Ngbaka Manza",
["ngh"] = "Nǀuu",
["ngi"] = "Ngizim",
["ngj"] = "Ngie",
["ngk"] = "Ngalkbun",
["ngl"] = "Lomwe",
["ngm"] = "Kreol Ngatik Men's",
["ngn"] = "Ngwo",
["ngo"] = "Ngoni",
["ngp"] = "Ngulu",
["ngq"] = "Ngoreme",
["ngr"] = "Nagu",
["ngs"] = "Gvoko",
["ngt"] = "Ngeq",
["ngu"] = "Nahuatl Guerrero",
["ngv"] = "Nagumi",
["ngw"] = "Ngwaba",
["ngx"] = "Nggwahyi",
["ngy"] = "Tibea",
["ngz"] = "Ngungwel",
["nha"] = "Nhanda",
["nhb"] = "Beng",
["nhc"] = "Nahuatl Tabasco",
["nhd"] = "Chiripá",
["nhe"] = "Nahuatl Huasteca Timur",
["nhf"] = "Nhuwala",
["nhg"] = "Nahuatl Tetelcingo",
["nhh"] = "Nahari",
["nhi"] = "Nahuatl Zacatlán-Ahuacatlán-Tepetzintla",
["nhk"] = "Nahuatl Cosoleacaque",
["nhm"] = "Nahuatl Morelos",
["nhn"] = "Nahuatl Tengah",
["nho"] = "Takuu",
["nhp"] = "Nahuatl Pajapan",
["nhq"] = "Nahuatl Huaxcaleca",
["nhr"] = "Naro",
["nht"] = "Nahuatl Ometepec",
["nhu"] = "Noone",
["nhv"] = "Nahuatl Temascaltepec",
["nhw"] = "Nahuatl Huasteca Barat",
["nhx"] = "Nahuatl Mecayapan",
["nhy"] = "Nahuatl Oaxaca Utara",
["nhz"] = "Nahuatl Santa María La Alta",
["nia"] = "Nias",
["nib"] = "Nakame",
["nic-bco-pro"] = "Proto-Benue-Kongo",
["nic-bod-pro"] = "Proto-Bantoid",
["nic-eov-pro"] = "Proto-Oti-Volta Timur",
["nic-gns-pro"] = "Proto-Gurunsi",
["nic-grf-pro"] = "Proto-Grassfields",
["nic-gur-pro"] = "Proto-Gur",
["nic-jkn-pro"] = "Proto-Jukunoid",
["nic-lcr-pro"] = "Proto-Hilir Sungai Cross",
["nic-ogo-pro"] = "Proto-Ogoni",
["nic-ovo-pro"] = "Proto-Oti-Volta",
["nic-plt-pro"] = "Proto-Plateau",
["nic-pro"] = "Proto-Niger-Kongo",
["nic-ubg-pro"] = "Proto-Ubangian",
["nic-ucr-pro"] = "Proto-Hulu Sungai Cross",
["nic-vco-pro"] = "Proto-Volta-Kongo",
["nid"] = "Ngandi",
["nie"] = "Niellim",
["nif"] = "Nek",
["nig"] = "Ngalakan",
["nih"] = "Nyiha",
["nii"] = "Nii",
["nij"] = "Ngaju",
["nik"] = "Nikobar Selatan",
["nil"] = "Nila",
["nim"] = "Nilamba",
["nin"] = "Ninzo",
["nio"] = "Nganasan",
["niq"] = "Nandi",
["nir"] = "Nimboran",
["nis"] = "Nimi",
["nit"] = "Kolami Tenggara",
["niu"] = "Niuean",
["niv"] = "Nivkh",
["niw"] = "Nimo",
["nix"] = "Hema",
["niy"] = "Ngiti",
["niz"] = "Ningil",
["nja"] = "Nzanyi",
["njb"] = "Naga Nocte",
["njh"] = "Naga Lotha",
["nji"] = "Gudanji",
["njj"] = "Njen",
["njl"] = "Njalgulgule",
["njm"] = "Angami",
["njn"] = "Naga Liangmai",
["njo"] = "Ao",
["njr"] = "Njerep",
["njs"] = "Nisa",
["njt"] = "Pijin Ndyuka-Trio",
["nju"] = "Ngadjunmaya",
["njx"] = "Kunyi",
["njy"] = "Njyem",
["njz"] = "Nyishi",
["nka"] = "Nkoya",
["nkb"] = "Naga Khoibu",
["nkc"] = "Nkongho",
["nkd"] = "Koireng",
["nke"] = "Duke",
["nkf"] = "Naga Inpui",
["nkg"] = "Nekgini",
["nkh"] = "Naga Khezha",
["nki"] = "Naga Thangal",
["nkj"] = "Nakai",
["nkk"] = "Nokuku",
["nkm"] = "Namat",
["nkn"] = "Nkangala",
["nko"] = "Nkonya",
["nkp"] = "Niuatoputapu",
["nkq"] = "Nkami",
["nkr"] = "Nukuoro",
["nks"] = "Asmat Utara",
["nkt"] = "Nyika",
["nku"] = "Kulango Bouna",
["nkw"] = "Nkutu",
["nkx"] = "Nkoroo",
["nkz"] = "Nkari",
["nl"] = "Belanda",
["nla"] = "Ngombale",
["nlc"] = "Nalca",
["nle"] = "Nyala Timur",
["nlg"] = "Gela",
["nli"] = "Grangali",
["nlj"] = "Nyali",
["nlk"] = "Yali Ninia",
["nll"] = "Nihali",
["nlm"] = "Mankiyali",
["nlo"] = "Ngul",
["nlq"] = "Naga Lao",
["nlu"] = "Nchumbulu",
["nlv"] = "Nahuatl Orizaba",
["nlw"] = "Walangama",
["nlx"] = "Nahali",
["nly"] = "Nyamal",
["nlz"] = "Nalögo",
["nma"] = "Naga Maram",
["nmb"] = "Big Nambas",
["nmc"] = "Ngam",
["nmd"] = "Ndumu",
["nme"] = "Naga Mzieme",
["nmf"] = "Naga Tangkhul",
["nmg"] = "Kwasio",
["nmh"] = "Naga Monsang",
["nmi"] = "Nyam",
["nmj"] = "Ngombe (Republik Afrika Tengah)",
["nmk"] = "Namakura",
["nml"] = "Ndemli",
["nmm"] = "Manangba",
["nmn"] = "ǃXóõ",
["nmo"] = "Naga Moyon",
["nmp"] = "Nimanbur",
["nmq"] = "Nambya",
["nmr"] = "Nimbari",
["nms"] = "Letemboi",
["nmt"] = "Namonuito",
["nmu"] = "Maidu Timur Laut",
["nmv"] = "Ngamini",
["nmw"] = "Nimoa",
["nmy"] = "Namuyi",
["nmz"] = "Nawdm",
["nn"] = "Norwegia Nynorsk",
["nna"] = "Nyangumarta",
["nnb"] = "Nande",
["nnc"] = "Nancere",
["nnd"] = "Ambae Barat",
["nne"] = "Ngandyera",
["nnf"] = "Ngaing",
["nng"] = "Naga Maring",
["nnh"] = "Ngiemboon",
["nni"] = "Nuaulu Utara",
["nnj"] = "Nyangatom",
["nnk"] = "Nankina",
["nnl"] = "Naga Rengma Utara",
["nnm"] = "Namia",
["nnn"] = "Ngete",
["nnp"] = "Wancho",
["nnq"] = "Ngindo",
["nnr"] = "Narungga",
["nnt"] = "Nanticoke",
["nnu"] = "Dwang",
["nnv"] = "Nukunu",
["nnw"] = "Nuni Selatan",
["nnx"] = "Ngong",
["nny"] = "Nyangga",
["nnz"] = "Nda'nda'",
["no"] = "Norwegia",
["noa"] = "Woun Meu",
["noc"] = "Nuk",
["nod"] = "Thai Utara",
["noe"] = "Nimadi",
["nof"] = "Nomane",
["nog"] = "Nogai",
["noh"] = "Nomu",
["noi"] = "Noiri",
["noj"] = "Nonuya",
["nok"] = "Nooksack",
["nol"] = "Nomlaki",
["nom"] = "Nocamán",
["non"] = "Norse Kuno",
["nop"] = "Numanggang",
["noq"] = "Ngongo",
["nos"] = "Nisu Timur",
["not"] = "Nomatsiguenga",
["nou"] = "Ewage-Notu",
["nov"] = "Novial",
["now"] = "Nyambo",
["noy"] = "Noy",
["noz"] = "Nayi",
["npa"] = "Phu Nar",
["npb"] = "Nupbikha",
["npg"] = "Ponyo",
["nph"] = "Phom",
["npl"] = "Nahuatl Puebla Tenggara",
["npn"] = "Mondropolon",
["npo"] = "Naga Pochuri",
["nps"] = "Nipsan",
["npu"] = "Naga Puimei",
["npy"] = "Napu",
["nqg"] = "Ede Nago",
["nqk"] = "Kura Ede Nago",
["nql"] = "Ngendelengo",
["nqm"] = "Ndom",
["nqn"] = "Nen",
["nqo"] = "N'Ko",
["nqq"] = "Naga Kyan-Karyaw",
["nqy"] = "Akyaung Ari",
["nr"] = "Ndebele Selatan",
["nra"] = "Ngom",
["nrb"] = "Nara",
["nrc"] = "Noric",
["nre"] = "Naga Rengma Selatan",
["nrf"] = "Norman",
["nrg"] = "Narango",
["nri"] = "Naga Chokri",
["nrk"] = "Ngarla",
["nrl"] = "Ngarluma",
["nrm"] = "Narom",
["nrn"] = "Norn",
["nrp"] = "Picene Utara",
["nrr"] = "Norra",
["nrt"] = "Kalapuya Utara",
["nru"] = "Narua",
["nrx"] = "Ngurmbur",
["nrz"] = "Lala (Papua)",
["nsa"] = "Naga Sangtam",
["nsb"] = "Nossob Hilir",
["nsc"] = "Nshi",
["nsd"] = "Nisu Selatan",
["nse"] = "Nsenga",
["nsg"] = "Ngasa",
["nsh"] = "Ngoshie",
["nsi"] = "Isyarat Nigeria",
["nsk"] = "Naskapi",
["nsl"] = "Isyarat Norwegia",
["nsm"] = "Sema",
["nsn"] = "Nehan",
["nso"] = "Sotho Utara",
["nsp"] = "Isyarat Nepal",
["nsq"] = "Miwok Sierra Utara",
["nsr"] = "Isyarat Maritim",
["nss"] = "Nali",
["nst"] = "Tangsa",
["nsu"] = "Nahuatl Sierra Negra",
["nsv"] = "Nisu Barat Daya",
["nsw"] = "Navut",
["nsx"] = "Nsongo",
["nsy"] = "Nasal",
["nsz"] = "Nisenan",
["ntd"] = "Tidung Sesayap",
["nte"] = "Nathembo",
["ntg"] = "Ngantangarra",
["nti"] = "Natioro",
["ntj"] = "Ngaanyatjarra",
["ntk"] = "Ikoma",
["ntm"] = "Nateni",
["nto"] = "Ntomba",
["ntp"] = "Tepehuan Utara",
["ntr"] = "Delo",
["nts"] = "Natagaimas",
["ntu"] = "Natügu",
["ntw"] = "Nottoway",
["ntx"] = "Somra",
["nty"] = "Mantsi",
["nua"] = "Yuaga",
["nub-har"] = "Haraza",
["nub-pro"] = "Proto-Nubia",
["nuc"] = "Nukuini",
["nud"] = "Ngala",
["nue"] = "Ngundu",
["nuf"] = "Nusu",
["nug"] = "Nungali",
["nuh"] = "Ndunda",
["nui"] = "Ngumbi",
["nuj"] = "Nyole (Uganda)",
["nuk"] = "Nootka",
["nul"] = "Nusa Laut",
["num"] = "Niuafo'ou",
["nun"] = "Anong",
["nuo"] = "Nguôn",
["nup"] = "Nupe",
["nuq"] = "Nukumanu",
["nur"] = "Nuguria",
["nus"] = "Nuer",
["nut"] = "Nung",
["nuu"] = "Ngbundu",
["nuv"] = "Nuni Utara",
["nuw"] = "Nguluwan",
["nux"] = "Mehek",
["nuy"] = "Nunggubuyu",
["nuz"] = "Nahuatl Tlamacazapa",
["nv"] = "Navajo",
["nvh"] = "Nasarian",
["nvm"] = "Namiae",
["nvo"] = "Nyokon",
["nwa"] = "Nawathinehena",
["nwb"] = "Nyabwa",
["nwc"] = "Newar Klasik",
["nwe"] = "Ngwe",
["nwi"] = "Tanna Barat Daya",
["nwm"] = "Nyamusa-Molo",
["nwo"] = "Nauo",
["nwr"] = "Nawaru",
["nwx"] = "Newar Tengahan",
["nwy"] = "Nottoway-Meherrin",
["nxa"] = "Nauete",
["nxd"] = "Ngando (Kongo)",
["nxe"] = "Nage",
["nxg"] = "Ngadha",
["nxi"] = "Nindi",
["nxl"] = "Nuaulu Selatan",
["nxm"] = "Numidia",
["nxn"] = "Ngawun",
["nxo"] = "Ndambomo",
["nxq"] = "Naxi",
["nxr"] = "Ninggerum",
["nxu"] = "Narau",
["nxx"] = "Nafri",
["ny"] = "Chichewa",
["nyb"] = "Nyangbo",
["nyc"] = "Nyanga-li",
["nyd"] = "Nyole (Kenya)",
["nye"] = "Nyengo",
["nyf"] = "Giryama",
["nyg"] = "Nyindu",
["nyh"] = "Nyigina",
["nyi"] = "Nyimang",
["nyj"] = "Nyanga (Kongo)",
["nyk"] = "Nyaneka",
["nyl"] = "Nyeu",
["nym"] = "Nyamwezi",
["nyn"] = "Nyankole",
["nyo"] = "Nyoro",
["nyp"] = "Nyang'i",
["nys"] = "Nyunga",
["nyt"] = "Nyawaygi",
["nyu"] = "Nyungwe",
["nyv"] = "Nyulnyul",
["nyw"] = "Nyaw",
["nyx"] = "Nganyaywana",
["nyy"] = "Nyakyusa",
["nza"] = "Mbembe Tigon",
["nzb"] = "Njebi",
["nzd"] = "Nzadi",
["nzi"] = "Nzima",
["nzk"] = "Nzakara",
["nzm"] = "Naga Zeme",
["nzs"] = "Isyarat Selandia Baru",
["nzu"] = "Teke Tengah",
["nzy"] = "Nzakambay",
["nzz"] = "Dogon Nanga Dama",
["oaa"] = "Orok",
["oac"] = "Oroch",
["oav"] = "Avar Kuno",
["obi"] = "Obispeño",
["obk"] = "Bontoc Selatan",
["obl"] = "Oblo",
["obm"] = "Moabite",
["obo"] = "Manobo Obo",
["obr"] = "Burma Kuno",
["obt"] = "Breton Kuno",
["obu"] = "Obulom",
["oc"] = "Occitan",
["oca"] = "Ocaina",
["och"] = "Tionghoa Kuno",
["oco"] = "Cornish Kuno",
["ocu"] = "Tlahuica",
["oda"] = "Odut",
["odk"] = "Od",
["odt"] = "Belanda Kuno",
["odu"] = "Odual",
["ofo"] = "Ofo",
["ofs"] = "Frisia Kuno",
["ofu"] = "Efutop",
["ogb"] = "Ogbia",
["ogc"] = "Ogbah",
["oge"] = "Georgia Kuno",
["ogg"] = "Ogbogolo",
["ogo"] = "Khana",
["ogu"] = "Ogbronuagum",
["ohu"] = "Hungaria Kuno",
["oia"] = "Oirata",
["oin"] = "One Inebu",
["oj"] = "Ojibwe",
["ojb"] = "Ojibwa Barat Laut",
["ojc"] = "Ojibwa Tengah",
["ojg"] = "Ojibwa Timur",
["ojp"] = "Jepang Kuno",
["ojs"] = "Ojibwa Severn",
["ojv"] = "Jawa Ontong",
["ojw"] = "Ojibwa Barat",
["oka"] = "Okanagan",
["okb"] = "Okobo",
["okd"] = "Okodia",
["oke"] = "Okpe (Edo Barat Daya)",
["okg"] = "Kok-Paponk",
["okh"] = "Koresh-e Rostam",
["oki"] = "Okiek",
["okj"] = "Oko-Juwoi",
["okk"] = "One Kwamtim",
["okl"] = "Isyarat Kent Kuno",
["okm"] = "Korea Tengahan",
["okn"] = "Oki-No-Erabu",
["oko"] = "Korea Kuno",
["okr"] = "Kirike",
["oks"] = "Oko-Eni-Osayen",
["oku"] = "Oku",
["okv"] = "Orokaiva",
["okx"] = "Okpe (Edo Barat Laut)",
["okz"] = "Khmer Kuno",
["old"] = "Mochi",
["ole"] = "Olekha",
["olm"] = "Oloma",
["olo"] = "Livvi",
["olr"] = "Olrat",
["olt"] = "Lithuania Kuno",
["olu"] = "Kuvale",
["om"] = "Oromo",
["oma"] = "Omaha-Ponca",
["omb"] = "Omba",
["omc"] = "Mochica",
["omg"] = "Omagua",
["omi"] = "Omi",
["omk"] = "Omok",
["oml"] = "Ombo",
["omn"] = "Minoan",
["omo"] = "Utarmbung",
["omp"] = "Manipuri Kuno",
["omq-cha-pro"] = "Proto-Chatino",
["omq-maz-pro"] = "Proto-Mazatec",
["omq-mix-pro"] = "Proto-Mixtecan",
["omq-mxt-pro"] = "Proto-Mixtec",
["omq-otp-pro"] = "Proto-Oto-Pamean",
["omq-pro"] = "Proto-Oto-Manguean",
["omq-tel"] = "Mixtec Teposcolula",
["omq-teo"] = "Chatino Teojomulco",
["omq-tri-pro"] = "Proto-Trique",
["omq-zap-pro"] = "Proto-Zapotecan",
["omq-zpc-pro"] = "Proto-Zapotec",
["omr"] = "Marathi Kuno",
["omt"] = "Omotik",
["omu"] = "Omurano",
["omv-aro-pro"] = "Proto-Aroid",
["omv-diz-pro"] = "Proto-Dizoid",
["omv-pro"] = "Proto-Omotic",
["omw"] = "Tairora Selatan",
["omx"] = "Mon Kuno",
["ona"] = "Selk'nam",
["onb"] = "Lingao",
["one"] = "Oneida",
["ong"] = "Olo",
["oni"] = "Onin",
["onj"] = "Onjob",
["onk"] = "One Kabore",
["onn"] = "Onobasulu",
["ono"] = "Onondaga",
["onp"] = "Sartang",
["onr"] = "One Utara",
["ons"] = "Ono",
["ont"] = "Ontenu",
["onu"] = "Unua",
["onw"] = "Nubia Kuno",
["onx"] = "Pijin Onin",
["ood"] = "O'odham",
["oog"] = "Ong",
["oon"] = "Önge",
["oor"] = "Oorlams",
["oos"] = "Ossetik Kuno",
["opa"] = "Okpamheri",
["opk"] = "Kopkaka",
["opm"] = "Oksapmin",
["opo"] = "Opao",
["opt"] = "Opata",
["opy"] = "Ofayé",
["or"] = "Oriya",
["ora"] = "Oroha",
["ore"] = "Orejón",
["org"] = "Oring",
["orh"] = "Oroqen",
["oro"] = "Orokolo",
["orr"] = "Oruma",
["ort"] = "Adiwasi Oriya",
["oru"] = "Ormuri",
["orv"] = "Slavik Timur Kuno",
["orw"] = "Oro Win",
["orx"] = "Oro",
["orz"] = "Ormu",
["os"] = "Ossetia",
["os-pro"] = "Proto-Ossetic",
["osa"] = "Osage",
["osc"] = "Oscan",
["osi"] = "Using",
["osn"] = "Sunda Kuno",
["oso"] = "Ososo",
["osp"] = "Spanyol Kuno",
["ost"] = "Osatu",
["osu"] = "One Selatan",
["osx"] = "Saxon Kuno",
["ota"] = "Turki Ottoman",
["otb"] = "Tibet Kuno",
["otd"] = "Ot Danum",
["ote"] = "Otomi Mezquital",
["oti"] = "Oti",
["otk"] = "Turkik Kuno",
["otl"] = "Otomi Tilapa",
["otm"] = "Otomi Pegunungan Timur",
["otn"] = "Otomi Tenango",
["oto-otm-pro"] = "Proto-Otomi",
["oto-pro"] = "Proto-Otomian",
["otq"] = "Otomi Querétaro",
["otr"] = "Otoro",
["ots"] = "Otomi Estado de México",
["ott"] = "Otomi Temoaya",
["otu"] = "Otuke",
["otw"] = "Ottawa",
["otx"] = "Otomi Texcatepec",
["oty"] = "Tamil Kuno",
["otz"] = "Otomi Ixtenco",
["oub"] = "Glio-Oubi",
["oue"] = "Oune",
["oui"] = "Uighur Kuno",
["oum"] = "Ouma",
["ovd"] = "Elfdalia",
["owi"] = "Owiniga",
["owl"] = "Welsh Kuno",
["oyb"] = "Oy",
["oyd"] = "Oyda",
["oym"] = "Wayampi",
["oyy"] = "Oya'oya",
["ozm"] = "Koonzime",
["pa"] = "Punjab",
["paa-kom"] = "Kómnzo",
["paa-kwn"] = "Kuwani",
["paa-nha-pro"] = "Proto-Halmahera Utara",
["paa-nun"] = "Nungon",
["pab"] = "Pareci",
["pac"] = "Pacoh",
["pad"] = "Paumarí",
["pae"] = "Pagibete",
["paf"] = "Paranawát",
["pag"] = "Pangasinan",
["pah"] = "Tenharim",
["pai"] = "Pe",
["pak"] = "Parakanã",
["pal"] = "Persia Tengahan",
["pam"] = "Kapampangan",
["PAN"] = "Proto-Austronesia",
["pao"] = "Paiute Utara",
["pap"] = "Papiamentu",
["paq"] = "Parya",
["par"] = "Panamint",
["pas"] = "Papasena",
["pat"] = "Papitalai",
["pau"] = "Palauan",
["pav"] = "Wari'",
["paw"] = "Pawnee",
["pax"] = "Pankararé",
["pay"] = "Pech",
["paz"] = "Pankararú",
["pbb"] = "Páez",
["pbc"] = "Patamona",
["pbe"] = "Popoloca Mezontla",
["pbf"] = "Popoloca Coyotepec",
["pbg"] = "Paraujano",
["pbh"] = "Panare",
["pbi"] = "Podoko",
["pbl"] = "Mak (Nigeria)",
["pbm"] = "Mazatec Puebla",
["pbn"] = "Kpasam",
["pbo"] = "Papel",
["pbp"] = "Badyara",
["pbr"] = "Pangwa",
["pbs"] = "Pame Tengah",
["pbv"] = "Pnar",
["pby"] = "Pyu",
["pca"] = "Popoloca Santa Inés Ahuatempan",
["pcb"] = "Pear",
["pcc"] = "Bouyei",
["pcd"] = "Picard",
["pce"] = "Palaung Ruching",
["pcf"] = "Paliyan",
["pcg"] = "Paniya",
["pch"] = "Pardhan",
["pci"] = "Duruwa",
["pcj"] = "Parenga",
["pck"] = "Paite",
["pcl"] = "Pardhi",
["pcm"] = "Pijin Nigeria",
["pcn"] = "Piti",
["pcp"] = "Pacahuara",
["pcw"] = "Pyapun",
["pda"] = "Anam",
["pdc"] = "Jerman Pennsylvania",
["pdi"] = "Pa Di",
["pdn"] = "Fedan",
["pdo"] = "Padoe",
["pdt"] = "Plautdietsch",
["pdu"] = "Kayan",
["pea"] = "Indonesia Peranakan",
["peb"] = "Pomo Timur",
["ped"] = "Mala (Papua)",
["pee"] = "Taje",
["pef"] = "Pomo Timur Laut",
["peg"] = "Pengo",
["peh"] = "Bonan",
["pei"] = "Chichimeca-Jonaz",
["pej"] = "Pomo Utara",
["pek"] = "Penchal",
["pel"] = "Pekal",
["pem"] = "Phende",
["peo"] = "Persia Kuno",
["pep"] = "Kunja",
["peq"] = "Pomo Selatan",
["pev"] = "Pémono",
["pex"] = "Petats",
["pey"] = "Peco",
["pez"] = "Penan Timur",
["pfa"] = "Pááfang",
["pfe"] = "Peere",
["pga"] = "Arab Juba",
["pgd"] = "Gandhari",
["pgg"] = "Pangwali",
["pgi"] = "Pagi",
["pgk"] = "Rerep",
["pgl"] = "Irlandia Primitif",
["pgn"] = "Paelignian",
["pgs"] = "Pangseng",
["pgu"] = "Isam",
["pgz"] = "Isyarat Papua Nugini",
["pha"] = "Pa-Hng",
["phd"] = "Phudagi",
["phg"] = "Phuong",
["phh"] = "Phukha",
["phi-din"] = "Agta Dinapigue",
["phi-kal-pro"] = "Proto-Kalamian",
["phi-nag"] = "Agta Nagtipunan",
["phi-pro"] = "Proto-Filipina",
["phk"] = "Phake",
["phl"] = "Phalura",
["phm"] = "Phimbi",
["phn"] = "Fenisia",
["pho"] = "Phunoi",
["phq"] = "Phana'",
["phr"] = "Pahari-Potwari",
["pht"] = "Phu Thai",
["phu"] = "Phuan",
["phv"] = "Pahlavani",
["phw"] = "Phangduwali",
["pi"] = "Pali",
["pia"] = "Pima Bajo",
["pib"] = "Yine",
["pic"] = "Pinji",
["pid"] = "Piaroa",
["pie"] = "Piro",
["pif"] = "Pingelapese",
["pig"] = "Pisabo",
["pih"] = "Pitcairn-Norfolk",
["pii"] = "Pini",
["pij"] = "Pijao",
["pil"] = "Yom",
["pim"] = "Powhatan",
["pin"] = "Piame",
["pio"] = "Piapoco",
["pip"] = "Pero",
["pir"] = "Piratapuyo",
["pis"] = "Pijin",
["pit"] = "Pitta-Pitta",
["piu"] = "Pintupi-Luritja",
["piv"] = "Pileni",
["piw"] = "Pimbwe",
["pix"] = "Piu",
["piy"] = "Piya-Kwonci",
["piz"] = "Pije",
["pjt"] = "Pitjantjatjara",
["pka"] = "Prakrit Ardhamagadhi",
["pkb"] = "Kipfokomo",
["pkc"] = "Baekje",
["pkg"] = "Pak-Tong",
["pkh"] = "Pankhu",
["pkn"] = "Pakanha",
["pko"] = "Pökoot",
["pkp"] = "Pukapukan",
["pkr"] = "Kurumba Attapady",
["pks"] = "Isyarat Pakistan",
["pkt"] = "Maleng",
["pku"] = "Paku",
["pl"] = "Polandia",
["pla"] = "Miani",
["plb"] = "Polonombauk",
["plc"] = "Palawano Tengah",
["ple"] = "Palu'e",
["plg"] = "Pilagá",
["plh"] = "Paulohi",
["plj"] = "Polci",
["plk"] = "Shina Kohistani",
["pll"] = "Palaung Shwe",
["pln"] = "Palenquero",
["plo"] = "Popoluca Oluta",
["plq"] = "Palaic",
["plr"] = "Senoufo Palaka",
["pls"] = "Popoloca San Marcos Tlalcoyalco",
["plu"] = "Palikur",
["plv"] = "Palawano Barat Daya",
["plw"] = "Palawano Brooke's Point",
["ply"] = "Bolyu",
["plz"] = "Paluan",
["pma"] = "Paama",
["pmb"] = "Pambia",
["pmd"] = "Pallanganmiddang",
["pme"] = "Pwaamei",
["pmf"] = "Pamona",
["pmh"] = "Prakrit Maharastri",
["pmi"] = "Pumi Utara",
["pmj"] = "Pumi Selatan",
["pmk"] = "Pamlico",
["pml"] = "Sabir",
["pmm"] = "Pol",
["pmn"] = "Pam",
["pmo"] = "Pom",
["PMP"] = "Proto-Melayu-Polinesia",
["pmq"] = "Pame Utara",
["pmr"] = "Paynamar",
["pms"] = "Piedmont",
["pmt"] = "Tuamotuan",
["pmu"] = "Panjabi Mirpur",
["pmw"] = "Miwok Plains",
["pmx"] = "Naga Poumei",
["pmy"] = "Melayu Papua",
["pmz"] = "Pame Selatan",
["pna"] = "Punan Bah-Biau",
["pnb"] = "Panjabi Barat",
["pnc"] = "Pannei",
["pnd"] = "Mpinda",
["pne"] = "Penan Barat",
["png"] = "Pongu",
["pnh"] = "Penrhyn",
["pni"] = "Aoheng",
["pnj"] = "Pinjarup",
["pnk"] = "Paunaca",
["pnl"] = "Paleni",
["pnm"] = "Punan Batu",
["pnn"] = "Pinai-Hagahai",
["pno"] = "Panobo",
["pnp"] = "Pancana",
["pnq"] = "Pana (Afrika Barat)",
["pnr"] = "Panim",
["pns"] = "Ponosakan",
["pnt"] = "Yunani Pontic",
["pnu"] = "Bunu Jiongnai",
["pnv"] = "Pinigura",
["pnw"] = "Panyjima",
["pnx"] = "Phong-Kniang",
["pny"] = "Pinyin",
["pnz"] = "Pana (Afrika Tengah)",
["poc"] = "Poqomam",
["poe"] = "Popoloca San Juan Atzingo",
["pof"] = "Poke",
["pog"] = "Potiguára",
["poh"] = "Poqomchi'",
["poi"] = "Popoluca Pegunungan",
["pok"] = "Pokangá",
["pom"] = "Pomo Tenggara",
["pon"] = "Pohnpei",
["poo"] = "Pomo Tengah",
["pop"] = "Pwapwa",
["poq"] = "Popoluca Texistepec",
["pos"] = "Popoluca Sayula",
["pot"] = "Potawatomi",
["pov"] = "Kreol Guinea-Bissau",
["pow"] = "Popoloca San Felipe Otlaltepec",
["pox"] = "Polabia",
["poy"] = "Pogolo",
["poz-abi"] = "Abai",
["poz-bal"] = "Baliledo",
["poz-btk-pro"] = "Proto-Bungku-Tolaki",
["poz-cet-pro"] = "Proto-Melayu-Polinesia Tengah Timur",
["poz-hce-pro"] = "Proto-Halmahera-Cenderawasih",
["poz-lgx-pro"] = "Proto-Lampung",
["poz-mcm-pro"] = "Proto-Melayu-Chamik",
["poz-mly-pro"] = "Proto-Melayik",
["poz-msa-pro"] = "Proto-Melayu-Sumbawa",
["poz-oce-pro"] = "Proto-Oseanik",
["poz-pep-pro"] = "Proto-Polinesia Timur",
["poz-pnp-pro"] = "Proto-Nuclear Polinesia",
["poz-pol-pro"] = "Proto-Polinesia",
["poz-pro"] = "Proto-Melayu-Polinesia",
["poz-sml"] = "Melayu Sarawak",
["poz-ssw-pro"] = "Proto-Sulawesi Selatan",
["poz-sus-pro"] = "Proto-Sunda-Sulawesi",
["poz-swa-pro"] = "Proto-Sarawak Utara",
["poz-ter"] = "Melayu Terengganu",
["ppa"] = "Pao",
["ppe"] = "Papi",
["ppi"] = "Paipai",
["ppk"] = "Uma",
["ppl"] = "Pipil",
["ppm"] = "Papuma",
["ppn"] = "Papapana",
["ppo"] = "Folopa",
["ppq"] = "Pei",
["pps"] = "Popoloca San Luís Temalacayuca",
["ppt"] = "Pa",
["ppu"] = "Papora",
["pqa"] = "Pa'a",
["pqe-pro"] = "Proto-Melayu-Polinesia Timur",
["pqm"] = "Malecite-Passamaquoddy",
["pra-niy"] = "Prakrit Niya",
["prc"] = "Parachi",
["pre"] = "Principense",
["prf"] = "Paranan",
["prg"] = "Prusia Kuno",
["prh"] = "Porohanon",
["pri"] = "Paicî",
["prk"] = "Parauk",
["prl"] = "Isyarat Peru",
["prm"] = "Kibiri",
["prn"] = "Prasuni",
["pro"] = "Occitan Kuno",
["prq"] = "Ashéninka Perené",
["prr"] = "Puri",
["prt"] = "Phai",
["pru"] = "Puragi",
["prw"] = "Parawen",
["prx"] = "Purik",
["prz"] = "Isyarat Providencia",
["ps"] = "Pashto",
["psa"] = "Awyu Asue",
["psc"] = "Isyarat Persia",
["psd"] = "Isyarat Plains Indian",
["pse"] = "Melayu Barisan Selatan",
["psg"] = "Isyarat Penang",
["psh"] = "Pashayi Barat Daya",
["psi"] = "Pashayi Tenggara",
["psl"] = "Isyarat Puerto Riko",
["psm"] = "Pauserna",
["psn"] = "Panasuan",
["pso"] = "Isyarat Polandia",
["psp"] = "Isyarat Filipina",
["psq"] = "Pasi",
["psr"] = "Isyarat Portugis",
["pss"] = "Kaulong",
["psu"] = "Prakrit Sauraseni",
["psw"] = "Port Sandwich",
["psy"] = "Piscataway",
["pt"] = "Portugis",
["pta"] = "Pai Tavytera",
["pth"] = "Pataxó Hã-Ha-Hãe",
["pti"] = "Pintiini",
["ptn"] = "Patani",
["pto"] = "Zo'é",
["ptp"] = "Patep",
["ptq"] = "Pattapu",
["ptr"] = "Piamatsina",
["ptt"] = "Enrekang",
["ptu"] = "Bambam",
["ptv"] = "Port Vato",
["ptw"] = "Pentlatch",
["pty"] = "Pathiya",
["pua"] = "Purepecha",
["pub"] = "Purum",
["puc"] = "Punan Merap",
["pud"] = "Punan Aput",
["pue"] = "Puelche",
["puf"] = "Punan Merah",
["pug"] = "Phuie",
["pui"] = "Puinave",
["puj"] = "Punan Tubu",
["pum"] = "Puma",
["puo"] = "Puoc",
["pup"] = "Pulabu",
["puq"] = "Puquina",
["pur"] = "Puruborá",
["put"] = "Putoh",
["puu"] = "Punu",
["puw"] = "Puluwat",
["pux"] = "Puare",
["puy"] = "Purisimeño",
["pwa"] = "Pawaia",
["pwb"] = "Panawa",
["pwg"] = "Gapapaiwa",
["pwi"] = "Patwin",
["pwm"] = "Molbog",
["pwn"] = "Paiwan",
["pwo"] = "Pwo Barat",
["pwr"] = "Powari",
["pww"] = "Pwo Utara",
["pxm"] = "Mixe Quetzaltepec",
["pye"] = "Pye Krumen",
["pym"] = "Fyam",
["pyn"] = "Poyanáwa",
["pys"] = "Isyarat Paraguay",
["pyu"] = "Puyuma",
["pyx"] = "Tircul",
["pyy"] = "Pyen",
["pzh"] = "Pazeh",
["pzn"] = "Naga Para",
["qfa-adm-pro"] = "Proto-Great Andaman",
["qfa-bet-pro"] = "Proto-Be-Tai",
["qfa-cka-pro"] = "Proto-Chukotko-Kamchatka",
["qfa-hur-pro"] = "Proto-Hurro-Urartia",
["qfa-kad-pro"] = "Proto-Kadu",
["qfa-kms-pro"] = "Proto-Kam-Sui",
["qfa-kor-pro"] = "Proto-Korea",
["qfa-kra-pro"] = "Proto-Kra",
["qfa-lic-pro"] = "Proto-Hlai",
["qfa-onb-pro"] = "Proto-Be",
["qfa-ong-pro"] = "Proto-Ongan",
["qfa-tak-pro"] = "Proto-Kra-Dai",
["qfa-xgx-tuh"] = "Tuyuhun",
["qfa-xgx-tuo"] = "Tuoba",
["qfa-xgx-wuh"] = "Wuhuan",
["qfa-xgx-xbi"] = "Xianbei",
["qfa-yen-pro"] = "Proto-Yenisei",
["qfa-yuk-pro"] = "Proto-Yukaghir",
["qu"] = "Quechua",
["qua"] = "Quapaw",
["quc"] = "K'iche'",
["qui"] = "Quileute",
["qum"] = "Sipakapense",
["qun"] = "Quinault",
["quq"] = "Quinqui",
["quv"] = "Sacapulteco",
["qvy"] = "Queyu",
["qwc"] = "Quechua Klasik",
["qwe-kch"] = "Kichwa",
["qwm"] = "Kipchak",
["qwt"] = "Kwalhioqua-Tlatskanai",
["qxs"] = "Qiang Selatan",
["qya"] = "Quenya",
["qyp"] = "Quiripi",
["raa"] = "Dungmali",
["rab"] = "Chamling",
["rac"] = "Rasawa",
["rad"] = "Rade",
["raf"] = "Meohang Barat",
["rag"] = "Logooli",
["rah"] = "Rabha",
["rai"] = "Ramoaaina",
["raj"] = "Rajasthani",
["rak"] = "Tulu-Bohuai",
["ral"] = "Ralte",
["ram"] = "Canela",
["ran"] = "Riantana",
["rao"] = "Rao",
["rap"] = "Rapa Nui",
["raq"] = "Saam",
["rar"] = "Rarotongan",
["ras"] = "Tegali",
["rat"] = "Razajerdi",
["rau"] = "Raute",
["rav"] = "Sampang",
["raw"] = "Rawang",
["rax"] = "Rang",
["ray"] = "Rapa",
["raz"] = "Rahambuu",
["rbb"] = "Palaung Rumai",
["rbk"] = "Bontoc Utara",
["rbl"] = "Bikol Miraya",
["rcf"] = "Kreol Prancis Réunion",
["rdb"] = "Rudbari",
["rea"] = "Rerau",
["reb"] = "Rembong",
["ree"] = "Kayan Rejang",
["reg"] = "Kara (Tanzania)",
["rei"] = "Reli",
["rej"] = "Rejang",
["rel"] = "Rendille",
["rem"] = "Remo",
["ren"] = "Rengao",
["rer"] = "Rer Bare",
["res"] = "Reshe",
["ret"] = "Retta",
["rey"] = "Reyesano",
["rga"] = "Roria",
["rge"] = "Yunani Romani",
["rgk"] = "Rangkas",
["rgn"] = "Romagnol",
["rgr"] = "Resígaro",
["rgs"] = "Roglai Selatan",
["rgu"] = "Ringgou",
["rhg"] = "Rohingya",
["rhp"] = "Yahang",
["ria"] = "Reang",
["rif"] = "Tarifit",
["ril"] = "Riang",
["rim"] = "Nyaturu",
["rin"] = "Nungu",
["rir"] = "Ribun",
["rit"] = "Ritarungo",
["riu"] = "Riung",
["rjg"] = "Rajong",
["rji"] = "Raji",
["rjs"] = "Rajbanshi",
["rka"] = "Kraol",
["rkb"] = "Rikbaktsa",
["rkh"] = "Rakahanga-Manihiki",
["rki"] = "Rakhine",
["rkm"] = "Marka",
["rkt"] = "Kamta",
["rkw"] = "Arakwal",
["rm"] = "Romansch",
["rma"] = "Rama",
["rmb"] = "Rembarunga",
["rmc"] = "Romani Karpathia",
["rmd"] = "Denmark Traveller",
["rme"] = "Angloromani",
["rmf"] = "Romani Kalo Finlandia",
["rmg"] = "Norwegia Traveller",
["rmh"] = "Murkim",
["rmi"] = "Lomavren",
["rmk"] = "Romkun",
["rml"] = "Romani Baltik",
["rmm"] = "Roma",
["rmn"] = "Romani Balkan",
["rmo"] = "Romani Sinte",
["rmp"] = "Rempi",
["rmq"] = "Caló",
["rms"] = "Isyarat Romania",
["rmt"] = "Domari",
["rmu"] = "Romani Tavringer",
["rmv"] = "Romanova",
["rmw"] = "Romani Welsh",
["rmx"] = "Romam",
["rmy"] = "Romani Vlax",
["rmz"] = "Marma",
["rnd"] = "Ruwund",
["rng"] = "Ronga",
["rnl"] = "Ranglong",
["rnn"] = "Roon",
["rnp"] = "Rongpo",
["rnw"] = "Rungwa",
["ro"] = "Romania",
["roa-ang"] = "Angevin",
["roa-bbn"] = "Bourbonnais-Berrichon",
["roa-brg"] = "Bourguignon",
["roa-cha"] = "Champenois",
["roa-fcm"] = "Franc-Comtois",
["roa-gal"] = "Gallo",
["roa-leo"] = "Leon",
["roa-lor"] = "Lorrain",
["roa-oan"] = "Navarro-Aragon",
["roa-oca"] = "Katala Kuno",
["roa-ole"] = "Leon Kuno",
["roa-opt"] = "Galisia-Portugis Kuno",
["roa-orl"] = "Orléan",
["roa-poi"] = "Poitevin-Saintongeais",
["roa-tar"] = "Tarantino",
["roa-tou"] = "Tourangeau",
["rob"] = "Tae'",
["roc"] = "Roglai Cacgia",
["rod"] = "Rogo",
["roe"] = "Ronji",
["rof"] = "Rombo",
["rog"] = "Roglai Utara",
["rol"] = "Romblomanon",
["rom"] = "Romani",
["roo"] = "Rotokas",
["rop"] = "Kriol",
["ror"] = "Rongga",
["rou"] = "Runga",
["row"] = "Dela-Oenale",
["rpn"] = "Repanbitip",
["rpt"] = "Rapting",
["rri"] = "Ririo",
["rro"] = "Roro",
["rrt"] = "Arritinngithigh",
["rsb"] = "Romano-Serbia",
["rsl"] = "Isyarat Rusia",
["rsm"] = "Isyarat Miriwoong",
["rtc"] = "Rungtu",
["rth"] = "Ratahan",
["rtm"] = "Rotuman",
["rtw"] = "Rathawi",
["ru"] = "Rusia",
["rub"] = "Gungu",
["ruc"] = "Ruuli",
["rue"] = "Rusyn",
["ruf"] = "Luguru",
["rug"] = "Roviana",
["ruh"] = "Ruga",
["rui"] = "Rufiji",
["ruk"] = "Che",
["ruo"] = "Istro-Romania",
["rup"] = "Aromania",
["ruq"] = "Megleno-Romania",
["rut"] = "Rutul",
["ruu"] = "Lobu Lanas",
["ruy"] = "Mala (Nigeria)",
["ruz"] = "Ruma",
["rw"] = "Rwanda-Rundi",
["rwa"] = "Rawo",
["rwk"] = "Rwa",
["rwm"] = "Amba",
["rwo"] = "Rawa",
["rxd"] = "Ngardi",
["rxw"] = "Karuwali",
["ryn"] = "Amami-Oshima Utara",
["rys"] = "Yaeyama",
["ryu"] = "Okinawa",
["rzh"] = "Razihi",
["sa"] = "Sanskerta",
["saa"] = "Saba",
["sab"] = "Buglere",
["sac"] = "Fox",
["sad"] = "Sandawe",
["sae"] = "Sabanê",
["saf"] = "Safaliba",
["sah"] = "Yakut",
["sai-ajg"] = "Ajagua",
["sai-all"] = "Allentiac",
["sai-and"] = "Andoquero",
["sai-ayo"] = "Ayomán",
["sai-bae"] = "Baenan",
["sai-bag"] = "Bagua",
["sai-bet"] = "Betoi",
["sai-bor-pro"] = "Proto-Boran",
["sai-cac"] = "Cacán",
["sai-caq"] = "Caranqui",
["sai-car-pro"] = "Proto-Cariban",
["sai-cat"] = "Catacao",
["sai-cer-pro"] = "Proto-Cerrado",
["sai-chi"] = "Chirino",
["sai-chn"] = "Chaná",
["sai-chp"] = "Chapacura",
["sai-chr"] = "Charrua",
["sai-chu"] = "Churuya",
["sai-cje-pro"] = "Proto-Jê Tengah",
["sai-cmg"] = "Comechingon",
["sai-cno"] = "Chono",
["sai-cnr"] = "Cañari",
["sai-coe"] = "Coeruna",
["sai-col"] = "Colán",
["sai-cop"] = "Copallén",
["sai-crd"] = "Puri Coroado",
["sai-ctq"] = "Catuquinaru",
["sai-cul"] = "Culli",
["sai-cva"] = "Cueva",
["sai-esm"] = "Esmeralda",
["sai-ewa"] = "Ewarhuyana",
["sai-gam"] = "Gamela",
["sai-gay"] = "Gayón",
["sai-gmo"] = "Guamo",
["sai-gue"] = "Güenoa",
["sai-hau"] = "Haush",
["sai-hoc-pro"] = "Proto-Huitoto-Ocaina",
["sai-jee-pro"] = "Proto-Jê",
["sai-jko"] = "Jeikó",
["sai-jrj"] = "Jirajara",
["sai-kat"] = "Katembri",
["sai-mal"] = "Malalí",
["sai-mar"] = "Maratino",
["sai-mat"] = "Matanawi",
["sai-mcn"] = "Mocana",
["sai-men"] = "Menien",
["sai-mil"] = "Millcayac",
["sai-mlb"] = "Malibu",
["sai-msk"] = "Masakará",
["sai-muc"] = "Mucuchí",
["sai-mue"] = "Muellama",
["sai-muz"] = "Muzo",
["sai-mys"] = "Maynas",
["sai-nat"] = "Natú",
["sai-nje-pro"] = "Proto-Jê Utara",
["sai-opo"] = "Opón",
["sai-oto"] = "Otomaco",
["sai-pal"] = "Palta",
["sai-pam"] = "Pamigua",
["sai-par"] = "Paratió",
["sai-pnz"] = "Panzaleo",
["sai-prh"] = "Puruhá",
["sai-ptg"] = "Patagón",
["sai-pur"] = "Purukotó",
["sai-pyg"] = "Payaguá",
["sai-pyk"] = "Pykobjê",
["sai-qmb"] = "Quimbaya",
["sai-qtm"] = "Quitemo",
["sai-rab"] = "Rabona",
["sai-ram"] = "Ramanos",
["sai-sac"] = "Sácata",
["sai-san"] = "Sanaviron",
["sai-sap"] = "Sapará",
["sai-sec"] = "Sechura",
["sai-sin"] = "Sinúfana",
["sai-sje-pro"] = "Proto-Jê Selatan",
["sai-tab"] = "Tabancale",
["sai-tal"] = "Tallán",
["sai-tap"] = "Tapayuna",
["sai-tar-pro"] = "Proto-Taranoan",
["sai-teu"] = "Teushen",
["sai-tim"] = "Timote",
["sai-tpr"] = "Taparita",
["sai-trr"] = "Tarairiú",
["sai-wai"] = "Waitaká",
["sai-way"] = "Wayumará",
["sai-wit-pro"] = "Proto-Witotoan",
["sai-wnm"] = "Wanham",
["sai-xoc"] = "Xocó",
["sai-yao"] = "Yao (Amerika Selatan)",
["sai-yar"] = "Yarumá",
["sai-yri"] = "Yuri",
["sai-yup"] = "Yupua",
["sai-yur"] = "Yurumanguí",
["saj"] = "Sahu",
["sak"] = "Sake",
["sal-pro"] = "Proto-Salish",
["sam"] = "Aramaik Samaria",
["sao"] = "Sause",
["saq"] = "Samburu",
["sar"] = "Saraveca",
["sas"] = "Sasak",
["sat"] = "Santali",
["sau"] = "Saleman",
["sav"] = "Saafi-Saafi",
["saw"] = "Sawi",
["sax"] = "Sa",
["say"] = "Saya",
["saz"] = "Saurashtra",
["sba"] = "Ngambay",
["sbb"] = "Simbo",
["sbc"] = "Gele'",
["sbd"] = "Samo Selatan",
["sbe"] = "Saliba (Papua)",
["sbf"] = "Shabo",
["sbg"] = "Seget",
["sbh"] = "Sori-Harengan",
["sbi"] = "Seti",
["sbj"] = "Surbakhal",
["sbk"] = "Safwa",
["sbl"] = "Botolan Sambal",
["sbm"] = "Sagala",
["sbn"] = "Sindhi Bhil",
["sbo"] = "Sabüm",
["sbp"] = "Sangu (Tanzania)",
["sbq"] = "Sileibi",
["sbr"] = "Murut Sembakung",
["sbs"] = "Subiya",
["sbt"] = "Kimki",
["sbu"] = "Bhoti Stod",
["sbv"] = "Sabine",
["sbw"] = "Simba",
["sbx"] = "Seberuang",
["sby"] = "Soli",
["sbz"] = "Sara Kaba",
["sc"] = "Sardinia",
["scb"] = "Chut",
["sce"] = "Dongxiang",
["scf"] = "Kreol Prancis San Miguel",
["scg"] = "Sanggau",
["sch"] = "Sakachep",
["sci"] = "Kreol Melayu Sri Lanka",
["sck"] = "Sadri",
["scl"] = "Shina",
["scn"] = "Sisilia",
["sco"] = "Scots",
["scp"] = "Yolmo",
["scq"] = "Sa'och",
["scs"] = "Slavey Utara",
["scu"] = "Shumcho",
["scv"] = "Sheni",
["scw"] = "Sha",
["scx"] = "Sicel",
["sd"] = "Sindhi",
["sda"] = "Toraja-Sa'dan",
["sdb"] = "Shabak",
["sdc"] = "Sassarese",
["sde"] = "Surubu",
["sdf"] = "Sarli",
["sdg"] = "Savi",
["sdh"] = "Kurdi Selatan",
["sdj"] = "Suundi",
["sdk"] = "Sos Kundi",
["sdl"] = "Isyarat Arab Saudi",
["sdm"] = "Semandang",
["sdn"] = "Gallurese",
["sdo"] = "Bidayuh Bukar-Sadung",
["sdp"] = "Sherdukpen",
["sdr"] = "Sadri Oraon",
["sds"] = "Berber Tunisia",
["sdu"] = "Sarudu",
["sdv-daj-pro"] = "Proto-Daju",
["sdv-eje-pro"] = "Proto-Jebel Timur",
["sdv-nil-pro"] = "Proto-Nilotic",
["sdv-nyi-pro"] = "Proto-Nyima",
["sdv-tmn-pro"] = "Proto-Taman",
["sdx"] = "Melanau Sibu",
["se"] = "Sami Utara",
["sea"] = "Semai",
["sec"] = "Sechelt",
["sed"] = "Sedang",
["see"] = "Seneca",
["sef"] = "Senoufo Cebaara",
["seg"] = "Segeju",
["seh"] = "Sena",
["sei"] = "Seri",
["sej"] = "Sene",
["sek"] = "Sekani",
["sel-nor"] = "Selkup Utara",
["sel-pro"] = "Proto-Selkup",
["sel-sou"] = "Selkup Selatan",
["sem-amm"] = "Ammonite",
["sem-amo"] = "Amorite",
["sem-cha"] = "Chaha",
["sem-dad"] = "Dadanitic",
["sem-dum"] = "Dumaitic",
["sem-has"] = "Hasaitic",
["sem-him"] = "Himyaritic",
["sem-his"] = "Hismaic",
["sem-mhr"] = "Muher",
["sem-pro"] = "Proto-Semitik",
["sem-saf"] = "Safaitic",
["sem-srb"] = "Arab Selatan Kuno",
["sem-tay"] = "Taymanitic",
["sem-tha"] = "Thamudic",
["sem-wes-pro"] = "Proto-Semit Barat",
["sen"] = "Sénoufo Nanerigé",
["seo"] = "Suarmin",
["sep"] = "Sénoufo Sìcìté",
["seq"] = "Sénoufo Senara",
["ser"] = "Serrano",
["ses"] = "Senni Koyraboro",
["set"] = "Sentani",
["seu"] = "Serui-Laut",
["sev"] = "Senoufo Nyarafolo",
["sew"] = "Sewa Bay",
["sey"] = "Secoya",
["sez"] = "Chin Senthang",
["sfb"] = "Isyarat Belgia Prancis",
["sfm"] = "Miao Small Flowery",
["sfs"] = "Isyarat Afrika Selatan",
["sfw"] = "Sehwi",
["sg"] = "Sango",
["sga"] = "Irlandia Kuno",
["sgb"] = "Ayta Mag-Anchi",
["sgc"] = "Kipsigis",
["sgd"] = "Surigaonon",
["sge"] = "Segai",
["sgg"] = "Isyarat Swiss-Jerman",
["sgh"] = "Shughni",
["sgi"] = "Suga",
["sgk"] = "Sangkong",
["sgm"] = "Singa",
["sgp"] = "Singpho",
["sgr"] = "Sangisari",
["sgs"] = "Samogitia",
["sgt"] = "Brokpake",
["sgu"] = "Salas",
["sgw"] = "Sebat Bet Gurage",
["sgx"] = "Isyarat Sierra Leone",
["sgy"] = "Sanglechi",
["sgz"] = "Sursurunga",
["sh"] = "Serbo-Kroasia",
["sha"] = "Shall-Zwall",
["shb"] = "Ninam",
["shc"] = "Sonde",
["shd"] = "Kundal Shahi",
["she"] = "Sheko",
["shg"] = "Shua",
["shh"] = "Shoshone",
["shi"] = "Tashelhit",
["shj"] = "Shatt",
["shk"] = "Shilluk",
["shl"] = "Shendu",
["shm"] = "Shahrudi",
["shn"] = "Shan",
["sho"] = "Shanga",
["shp"] = "Shipibo-Conibo",
["shq"] = "Sala",
["shr"] = "Shi",
["shs"] = "Shuswap",
["sht"] = "Shasta",
["shu"] = "Arab Chad",
["shv"] = "Shehri",
["shw"] = "Shwai",
["shx"] = "She",
["shy"] = "Tachawit",
["shz"] = "Senoufo Syenara",
["si"] = "Sinhala",
["sia"] = "Sami Akkala",
["sib"] = "Sebop",
["sid"] = "Sidamo",
["sie"] = "Simaa",
["sif"] = "Siamou",
["sig"] = "Paasaal",
["sih"] = "Zire",
["sii"] = "Shom Peng",
["sij"] = "Numbami",
["sik"] = "Sikiana",
["sil"] = "Tumulung Sisaala",
["sim"] = "Seim",
["sio-pro"] = "Proto-Siouan",
["sip"] = "Sikkim",
["siq"] = "Sonia",
["sir"] = "Siri",
["sis"] = "Siuslaw",
["sit-bok"] = "Bokar",
["sit-cha"] = "Chairel",
["sit-gkh"] = "Gokhy",
["sit-hrs-pro"] = "Proto-Hrusish",
["sit-jap"] = "Japhug",
["sit-kha-pro"] = "Proto-Kham",
["sit-liz"] = "Lizu",
["sit-luu-pro"] = "Proto-Luish",
["sit-mor"] = "Moran",
["sit-prn"] = "Puiron",
["sit-pro"] = "Proto-Sino-Tibet",
["sit-sit"] = "Situ",
["sit-tan-pro"] = "Proto-Tani",
["sit-tgm"] = "Tangam",
["sit-tos"] = "Tosu",
["sit-tsh"] = "Tshobdun",
["sit-zbu"] = "Zbu",
["siu"] = "Sinagen",
["siv"] = "Sumariup",
["siw"] = "Siwai",
["six"] = "Sumau",
["siy"] = "Sivandi",
["siz"] = "Siwi",
["sja"] = "Epena",
["sjb"] = "Basap Sajau",
["sjd"] = "Sami Kildin",
["sje"] = "Sami Pite",
["sjg"] = "Assangori",
["sjk"] = "Sami Kemi",
["sjl"] = "Miji",
["sjm"] = "Mapun",
["sjn"] = "Sindarin",
["sjo"] = "Xibe",
["sjp"] = "Surjapuri",
["sjr"] = "Siar-Lak",
["sjs"] = "Senhaja De Srair",
["sjt"] = "Sami Ter",
["sju"] = "Sami Ume",
["sjw"] = "Shawnee",
["sk"] = "Slowakia",
["ska"] = "Skagit",
["skb"] = "Saek",
["skc"] = "Ma Manda",
["skd"] = "Miwok Sierra Selatan",
["ske"] = "Ske",
["skf"] = "Mekéns",
["skh"] = "Sikule",
["ski"] = "Sika",
["skj"] = "Seke",
["skk"] = "Sok",
["skm"] = "Sakam",
["skn"] = "Subanon Kolibugan",
["sko"] = "Seko Tengah",
["skp"] = "Sekapan",
["skq"] = "Sininkere",
["skr"] = "Saraiki",
["sks"] = "Maia",
["skt"] = "Sakata",
["sku"] = "Sakao",
["skv"] = "Skou",
["skw"] = "Kreol Belanda Skepi",
["skx"] = "Seko Padang",
["sky"] = "Sikaiana",
["skz"] = "Sekar",
["sl"] = "Slovenia",
["sla-pro"] = "Proto-Slavik",
["slc"] = "Saliba (Colombia)",
["sld"] = "Sissala",
["sle"] = "Sholaga",
["slf"] = "Isyarat Swiss-Italia",
["slg"] = "Murut Selungai",
["slh"] = "Salish Puget Sound Selatan",
["slj"] = "Salumá",
["sll"] = "Salt-Yui",
["slm"] = "Sama Pangutaran",
["sln"] = "Salinan",
["slp"] = "Lamaholot",
["slq"] = "Salchuq",
["slr"] = "Salar",
["sls"] = "Isyarat Singapura",
["slt"] = "Sila",
["slu"] = "Selaru",
["slw"] = "Sialum",
["slx"] = "Salampasu",
["sly"] = "Selayar",
["slz"] = "Ma'ya",
["sm"] = "Samoa",
["sma"] = "Sami Selatan",
["smb"] = "Simbari",
["smc"] = "Som",
["smd"] = "Sama",
["smf"] = "Auwe",
["smg"] = "Simbali",
["smh"] = "Samei",
["smi-pro"] = "Proto-Sami",
["smj"] = "Sami Lule",
["smk"] = "Bolinao",
["sml"] = "Sama Tengah",
["smm"] = "Musasa",
["smn"] = "Sami Inari",
["smp"] = "Ibrani Samaria",
["smq"] = "Samo",
["smr"] = "Simeulue",
["sms"] = "Sami Skolt",
["smt"] = "Simte",
["smu"] = "Somray",
["smv"] = "Samvedi",
["smw"] = "Sumbawa",
["smx"] = "Samba",
["smy"] = "Semnani",
["smz"] = "Simeku",
["sn"] = "Shona",
["snb"] = "Sebuyau",
["snc"] = "Sinaugoro",
["sne"] = "Bidayuh Bau",
["snf"] = "Noon",
["sng"] = "Sanga (Kongo)",
["sni"] = "Sensi",
["snj"] = "Sango Riverain",
["snk"] = "Soninke",
["snl"] = "Sangil",
["snm"] = "Ma'di Selatan",
["snn"] = "Siona",
["sno"] = "Snohomish",
["snp"] = "Siane",
["snq"] = "Sangu (Gabon)",
["snr"] = "Sihan",
["sns"] = "Nahavaq",
["snu"] = "Senggi",
["snv"] = "Sa'ban",
["snw"] = "Selee",
["snx"] = "Sam",
["sny"] = "Saniyo-Hiyewe",
["snz"] = "Kou",
["so"] = "Somali",
["soa"] = "Thai Song",
["sob"] = "Sobei",
["soc"] = "Soko",
["sod"] = "Songoora",
["soe"] = "Songomeno",
["sog"] = "Sogdian",
["soh"] = "Aka (Sudan)",
["soi"] = "Sonha",
["sok"] = "Sokoro",
["sol"] = "Solos",
["son-pro"] = "Proto-Songhay",
["soo"] = "Nsong",
["sop"] = "Songe",
["soq"] = "Kanasi",
["sor"] = "Somrai",
["sos"] = "Seenku",
["sou"] = "Thai Selatan",
["sov"] = "Sonsorolese",
["sow"] = "Sowanda",
["sox"] = "Swo",
["soy"] = "Miyobe",
["soz"] = "Temi",
["spb"] = "Sepa (Indonesia)",
["spc"] = "Sapé",
["spd"] = "Saep",
["spe"] = "Sepa (Papua)",
["spg"] = "Sian",
["spi"] = "Saponi",
["spk"] = "Sengo",
["spl"] = "Selepet",
["spm"] = "Sepen",
["spn"] = "Sanapaná",
["spo"] = "Spokane",
["spp"] = "Supyire",
["spr"] = "Saparua",
["sps"] = "Saposa",
["spt"] = "Bhoti Spiti",
["spu"] = "Sapuan",
["spv"] = "Sambalpuri",
["spx"] = "Picene Selatan",
["spy"] = "Sabaot",
["sq"] = "Albania",
["sqa"] = "Shama-Sambuga",
["sqh"] = "Shau",
["sqj-pro"] = "Proto-Albania",
["sqk"] = "Isyarat Albania",
["sqm"] = "Suma",
["sqn"] = "Susquehannock",
["sqo"] = "Sorkhei",
["sqq"] = "Sou",
["sqr"] = "Siculo-Arab",
["sqs"] = "Isyarat Sri Lanka",
["sqt"] = "Soqotri",
["squ"] = "Squamish",
["sra"] = "Saruga",
["srb"] = "Sora",
["sre"] = "Sara",
["srf"] = "Nafi",
["srg"] = "Sulod",
["srh"] = "Sarikoli",
["sri"] = "Siriano",
["srk"] = "Murut Serudung",
["srl"] = "Isirawa",
["srm"] = "Saramaccan",
["srn"] = "Sranan Tongo",
["srq"] = "Sirionó",
["srr"] = "Serer",
["srs"] = "Tsuut'ina",
["srt"] = "Sauri",
["sru"] = "Suruí",
["srv"] = "Sorsogon Waray",
["srw"] = "Serua",
["srx"] = "Sirmauri",
["sry"] = "Sera",
["srz"] = "Shahmirzadi",
["ss"] = "Swazi",
["ssa-klk-pro"] = "Proto-Kuliak",
["ssa-kom-pro"] = "Proto-Koman",
["ssa-pro"] = "Proto-Nilo-Saharan",
["ssb"] = "Sama Selatan",
["ssc"] = "Suba-Simbiti",
["ssd"] = "Siroi",
["sse"] = "Balangingi",
["ssf"] = "Thao",
["ssg"] = "Seimat",
["ssh"] = "Arab Shihhi",
["ssi"] = "Sansi",
["ssj"] = "Sausi",
["ssk"] = "Sunam",
["ssl"] = "Sisaala Barat",
["ssm"] = "Semnam",
["sso"] = "Sissano",
["ssp"] = "Isyarat Spanyol",
["ssq"] = "So'a",
["ssr"] = "Isyarat Swiss-Prancis",
["sss"] = "Sô",
["sst"] = "Sinasina",
["ssu"] = "Susuami",
["ssv"] = "Shark Bay",
["ssx"] = "Samberigi",
["ssy"] = "Saho",
["ssz"] = "Sengseng",
["st"] = "Sotho",
["stb"] = "Subanen Utara",
["std"] = "Sentinel",
["ste"] = "Liana-Seti",
["stf"] = "Seta",
["stg"] = "Trieng",
["sth"] = "Shelta",
["sti"] = "Stieng Bulo",
["stj"] = "Samo Matya",
["stk"] = "Arammba",
["stm"] = "Setaman",
["stn"] = "Owa",
["sto"] = "Stoney",
["stp"] = "Tepehuan Tenggara",
["stq"] = "Frisia Saterland",
["str"] = "Saanich",
["sts"] = "Shumashti",
["stt"] = "Stieng Budeh",
["stu"] = "Samtao",
["stv"] = "Silt'e",
["stw"] = "Satawalese",
["sty"] = "Siberia Tatar",
["su"] = "Sunda",
["sua"] = "Sulka",
["sub"] = "Suku",
["suc"] = "Subanon Barat",
["sue"] = "Suena",
["sug"] = "Suganga",
["sui"] = "Suki",
["suk"] = "Sukuma",
["suq"] = "Suri",
["sur"] = "Mwaghavul",
["sus"] = "Susu",
["sut"] = "Subtiaba",
["suv"] = "Sulung",
["suw"] = "Sumbwa",
["sux"] = "Sumeria",
["suy"] = "Suyá",
["suz"] = "Sunwar",
["sv"] = "Swedia",
["sva"] = "Svan",
["svb"] = "Ulau-Suain",
["svc"] = "Kreol Inggris Vincent",
["sve"] = "Serili",
["svk"] = "Isyarat Slowakia",
["svm"] = "Slavomolisano",
["svs"] = "Savosavo",
["svx"] = "Skalvian",
["sw"] = "Swahili",
["swb"] = "Comorian Maore",
["swf"] = "Sere",
["swg"] = "Swabia",
["swi"] = "Sui",
["swj"] = "Sira",
["swl"] = "Isyarat Swedia",
["swm"] = "Samosa",
["swn"] = "Sokna",
["swo"] = "Shanenawa",
["swp"] = "Suau",
["swq"] = "Sharwa",
["swr"] = "Saweru",
["sws"] = "Seluwasan",
["swt"] = "Sawila",
["swu"] = "Suwawa",
["sww"] = "Sowa",
["swx"] = "Suruahá",
["swy"] = "Sarua",
["sxb"] = "Suba",
["sxc"] = "Sicanian",
["sxe"] = "Sighu",
["sxg"] = "Shixing",
["sxk"] = "Kalapuya Selatan",
["sxl"] = "Selonian",
["sxm"] = "Samre",
["sxn"] = "Sangir",
["sxo"] = "Sorothaptic",
["sxr"] = "Saaroa",
["sxs"] = "Sasaru",
["sxw"] = "Gbe Saxwe",
["sya"] = "Siang",
["syb"] = "Subanen Tengah",
["syc"] = "Suriah Klasik",
["syd-fne"] = "Nenets Hutan",
["syd-pro"] = "Proto-Samoyedic",
["syi"] = "Seki",
["syk"] = "Sukur",
["syl"] = "Sylheti",
["sym"] = "Samo Maya",
["syn"] = "Senaya",
["syo"] = "Suoy",
["sys"] = "Sinyar",
["syw"] = "Kagate",
["syx"] = "Osamayi",
["syy"] = "Isyarat Al-Sayyid Bedouin",
["sza"] = "Semelai",
["szb"] = "Ngalum",
["szc"] = "Semaq Beri",
["szd"] = "Seru",
["sze"] = "Seze",
["szg"] = "Sengele",
["szl"] = "Silesia",
["szn"] = "Sula",
["szp"] = "Suabo",
["szv"] = "Isubu",
["szw"] = "Sawai",
["szy"] = "Sakizaya",
["ta"] = "Tamil",
["taa"] = "Tanana Hilir",
["tab"] = "Tabasaran",
["tac"] = "Tarahumara Dataran",
["tad"] = "Tause",
["tae"] = "Tariana",
["taf"] = "Tapirapé",
["tag"] = "Tagoi",
["tai-pro"] = "Proto-Tai",
["tai-swe-pro"] = "Proto-Tai Barat Daya",
["taj"] = "Tamang Timur",
["tak"] = "Tala",
["tal"] = "Tal",
["tan"] = "Tangale",
["tao"] = "Yami",
["tap"] = "Taabwa",
["tar"] = "Tarahumara Tengah",
["tas"] = "Tây Bồi",
["tau"] = "Tanana Hulu",
["tav"] = "Tatuyo",
["taw"] = "Tai",
["tax"] = "Tamki",
["tay"] = "Atayal",
["taz"] = "Tocho",
["tba"] = "Aikanã",
["tbb"] = "Tapeba",
["tbc"] = "Takia",
["tbd"] = "Kaki Ae",
["tbe"] = "Tanimbili",
["tbf"] = "Mandara",
["tbg"] = "Tairora Utara",
["tbh"] = "Thurawal",
["tbi"] = "Gaam",
["tbj"] = "Tiang",
["tbk"] = "Tagbanwa Calamian",
["tbl"] = "Tboli",
["tbm"] = "Tagbu",
["tbn"] = "Tunebo Barro Negro",
["tbo"] = "Tawala",
["tbp"] = "Taworta",
["tbq-bdg-pro"] = "Proto-Bodo-Garo",
["tbq-kuk-pro"] = "Proto-Kuki-Chin",
["tbq-lal-pro"] = "Proto-Lalo",
["tbq-laz"] = "Laze",
["tbq-lob-pro"] = "Proto-Lolo-Burma",
["tbq-lol-pro"] = "Proto-Loloish",
["tbq-ngo"] = "Ngochang",
["tbq-plg"] = "Pai-lang",
["tbr"] = "Tumtum",
["tbs"] = "Tanguat",
["tbt"] = "Kitembo",
["tbu"] = "Tubar",
["tbv"] = "Tobo",
["tbw"] = "Tagbanwa",
["tbx"] = "Kapin",
["tby"] = "Tabaru",
["tbz"] = "Ditammari",
["tca"] = "Ticuna",
["tcb"] = "Tanacross",
["tcc"] = "Datooga",
["tcd"] = "Tafi",
["tce"] = "Tutchone Selatan",
["tcf"] = "Malinaltepec Tlapanec",
["tcg"] = "Tamagario",
["tch"] = "Kreol Inggris Turks dan Caicos",
["tci"] = "Wára",
["tck"] = "Tchitchege",
["tcl"] = "Taman (Myanmar)",
["tcm"] = "Tanahmerah",
["tco"] = "Taungyo",
["tcp"] = "Chin Tawr",
["tcq"] = "Kaiy",
["tcs"] = "Kreol Torres Strait",
["tct"] = "T'en",
["tcu"] = "Tarahumara Tenggara",
["tcw"] = "Totonac Tecpatlán",
["tcx"] = "Toda",
["tcy"] = "Tulu",
["tcz"] = "Chin Thado",
["tda"] = "Tagdal",
["tdb"] = "Panchpargania",
["tdc"] = "Emberá-Tadó",
["tdd"] = "Tai Nüa",
["tde"] = "Dogon Tiranige Diga",
["tdf"] = "Talieng",
["tdg"] = "Tamang Barat",
["tdh"] = "Thulung",
["tdi"] = "Tomadino",
["tdj"] = "Tajio",
["tdk"] = "Tambas",
["tdl"] = "Sur",
["tdm"] = "Taruma",
["tdn"] = "Tondano",
["tdo"] = "Teme",
["tdq"] = "Tita",
["tdr"] = "Todrah",
["tds"] = "Doutai",
["tdt"] = "Tetun Dili",
["tdu"] = "Dusun Tempasuk",
["tdv"] = "Toro",
["tdy"] = "Tadyawan",
["te"] = "Telugu",
["tea"] = "Temiar",
["teb"] = "Tetete",
["tec"] = "Terik",
["ted"] = "Tepo Krumen",
["tee"] = "Tepehua Huehuetla",
["tef"] = "Teressa",
["teg"] = "Teke-Tege",
["teh"] = "Tehuelche",
["tei"] = "Torricelli",
["tek"] = "Teke Ibali",
["tem"] = "Temne",
["ten"] = "Tama (Colombia)",
["teo"] = "Ateso",
["tep"] = "Tepecano",
["teq"] = "Temein",
["ter"] = "Tereno",
["tes"] = "Tengger",
["tet"] = "Tetum",
["teu"] = "Soo",
["tev"] = "Teor",
["tew"] = "Tewa",
["tex"] = "Tennet",
["tey"] = "Tulishi",
["tez"] = "Tetserret",
["tfi"] = "Gbe Tofin",
["tfn"] = "Dena'ina",
["tfo"] = "Tefaro",
["tfr"] = "Teribe",
["tft"] = "Ternate",
["tg"] = "Tajik",
["tga"] = "Sagalla",
["tgb"] = "Tobilung",
["tgc"] = "Tigak",
["tgd"] = "Ciwogai",
["tge"] = "Tamang Gorkha Timur",
["tgf"] = "Chali",
["tgh"] = "Kreol Inggris Tobago",
["tgi"] = "Lawunuia",
["tgn"] = "Tandaganon",
["tgo"] = "Sudest",
["tgp"] = "Tangoa",
["tgq"] = "Tring",
["tgr"] = "Tareng",
["tgs"] = "Nume",
["tgt"] = "Tagbanwa Tengah",
["tgu"] = "Tanggu",
["tgv"] = "Tingui-Boto",
["tgw"] = "Senoufo Tagwana",
["tgx"] = "Tagish",
["tgy"] = "Togoyo",
["th"] = "Thai",
["thc"] = "Tai Hang Tong",
["thd"] = "Kuuk Thaayorre",
["the"] = "Tharu Chitwania",
["thf"] = "Thangmi",
["thh"] = "Tarahumara Utara",
["thi"] = "Tai Long",
["thk"] = "Tharaka",
["thl"] = "Tharu Dangaura",
["thm"] = "Thavung",
["thn"] = "Thachanadan",
["thp"] = "Thompson",
["thq"] = "Tharu Kochila",
["thr"] = "Tharu Rana",
["ths"] = "Thakali",
["tht"] = "Tahltan",
["thu"] = "Thuri",
["thy"] = "Tha",
["ti"] = "Tigrinya",
["tic"] = "Tira",
["tif"] = "Tifal",
["tig"] = "Tigre",
["tih"] = "Murut Timugon",
["tii"] = "Tiene",
["tij"] = "Tilung",
["tik"] = "Tikar",
["til"] = "Tillamook",
["tim"] = "Timbe",
["tin"] = "Tindi",
["tio"] = "Teop",
["tip"] = "Trimuris",
["tiq"] = "Tiéfo",
["tis"] = "Itneg Masadiit",
["tit"] = "Tinigua",
["tiu"] = "Adasen",
["tiv"] = "Tiv",
["tiw"] = "Tiwi",
["tix"] = "Tiwa Selatan",
["tiy"] = "Tiruray",
["tiz"] = "Tai Hongjin",
["tja"] = "Tajuasohn",
["tjg"] = "Tunjung",
["tji"] = "Tujia Utara",
["tjl"] = "Tai Laing",
["tjm"] = "Timucua",
["tjn"] = "Tonjon",
["tjs"] = "Tujia Selatan",
["tju"] = "Tjurruru",
["tjw"] = "Chaap Wuurong",
["tk"] = "Turkmen",
["tka"] = "Truká",
["tkb"] = "Buksa",
["tkd"] = "Tukudede",
["tke"] = "Takwane",
["tkf"] = "Tukumanféd",
["tkl"] = "Tokelauan",
["tkm"] = "Takelma",
["tkn"] = "Toku-No-Shima",
["tkp"] = "Tikopia",
["tkq"] = "Tee",
["tkr"] = "Tsakhur",
["tks"] = "Ramandi",
["tkt"] = "Tharu Kathoriya",
["tku"] = "Totonac Necaxa Hulu",
["tkv"] = "Mur Pano",
["tkw"] = "Teanu",
["tkx"] = "Tangko",
["tkz"] = "Takua",
["tl"] = "Tagalog",
["tla"] = "Tepehuan Barat Daya",
["tlb"] = "Tobelo",
["tlc"] = "Totonac Misantla",
["tld"] = "Talaud",
["tlf"] = "Telefol",
["tlg"] = "Tofanma",
["tlh"] = "Klingon",
["tli"] = "Tlingit",
["tlj"] = "Talinga-Bwisi",
["tlk"] = "Taloki",
["tll"] = "Tetela",
["tlm"] = "Tolomako",
["tln"] = "Talondo'",
["tlo"] = "Talodi",
["tlp"] = "Totonac Filomena Mata-Coahuitlán",
["tlq"] = "Tai Loi",
["tlr"] = "Talise",
["tls"] = "Tambotalo",
["tlt"] = "Teluti",
["tlu"] = "Tulehu",
["tlv"] = "Taliabu",
["tlx"] = "Khehek",
["tly"] = "Talysh",
["tma"] = "Tama (Chad)",
["tmb"] = "Avava",
["tmc"] = "Tumak",
["tmd"] = "Haruai",
["tme"] = "Tremembé",
["tmf"] = "Toba-Maskoy",
["tmg"] = "Ternateño",
["tmh"] = "Tuareg",
["tmi"] = "Tutuba",
["tmj"] = "Samarokena",
["tmk"] = "Tamang Barat Laut",
["tml"] = "Tamnim Citak",
["tmm"] = "Tai Thanh",
["tmn"] = "Taman (Indonesia)",
["tmo"] = "Temoq",
["tmq"] = "Tumleo",
["tms"] = "Tima",
["tmt"] = "Tasmate",
["tmu"] = "Iau",
["tmv"] = "Motembo",
["tmy"] = "Tami",
["tmz"] = "Tamanaku",
["tn"] = "Tswana",
["tna"] = "Tacana",
["tnb"] = "Tunebo Barat",
["tnc"] = "Tanimuca-Retuarã",
["tnd"] = "Tunebo Angosturas",
["tne"] = "Kallahan Tinoc",
["tng"] = "Tobanga",
["tnh"] = "Maiani",
["tni"] = "Tandia",
["tnk"] = "Kwamera",
["tnl"] = "Lenakel",
["tnm"] = "Tabla",
["tnn"] = "Tanna Utara",
["tno"] = "Toromono",
["tnp"] = "Whitesands",
["tnq"] = "Taíno",
["tnr"] = "Bedik",
["tns"] = "Tenis",
["tnt"] = "Tontemboan",
["tnu"] = "Tay Khang",
["tnv"] = "Tangchangya",
["tnw"] = "Tonsawang",
["tnx"] = "Tanema",
["tny"] = "Tongwe",
["tnz"] = "Ten'edn",
["to"] = "Tonga",
["tob"] = "Toba",
["toc"] = "Totonac Coyutla",
["tod"] = "Toma",
["tof"] = "Gizrra",
["tog"] = "Tonga (Malawi)",
["toh"] = "Tonga (Mozambique)",
["toi"] = "Tonga (Zambia)",
["toj"] = "Tojolabal",
["tok"] = "Toki Pona",
["tol"] = "Tolowa",
["tom"] = "Tombulu",
["too"] = "Totonac Xicotepec de Juárez",
["top"] = "Totonac Papantla",
["toq"] = "Toposa",
["tor"] = "Togbo-Vara Banda",
["tos"] = "Totonac Pegunungan",
["tou"] = "Tho",
["tov"] = "Taromi Hulu",
["tow"] = "Jemez",
["tox"] = "Tobian",
["toy"] = "Topoiyo",
["toz"] = "To",
["tpa"] = "Taupota",
["tpc"] = "Me'phaa Azoyú",
["tpe"] = "Tippera",
["tpf"] = "Tarpia",
["tpg"] = "Kula",
["tpi"] = "Tok Pisin",
["tpj"] = "Tapieté",
["tpk"] = "Tupinikin",
["tpl"] = "Me'phaa Tlacoapa",
["tpm"] = "Tampulma",
["tpn"] = "Tupinambá",
["tpo"] = "Tai Pao",
["tpp"] = "Tepehua Pisaflores",
["tpq"] = "Tukpa",
["tpr"] = "Tuparí",
["tpt"] = "Tepehua Tlachichilco",
["tpu"] = "Tampuan",
["tpv"] = "Tanapag",
["tpw"] = "Tupi Kuno",
["tpx"] = "Me'phaa Acatepec",
["tpy"] = "Trumai",
["tpz"] = "Tinputz",
["tqb"] = "Tembé",
["tql"] = "Lehali",
["tqm"] = "Turumsa",
["tqn"] = "Tenino",
["tqo"] = "Toaripi",
["tqp"] = "Tomoip",
["tqq"] = "Tunni",
["tqr"] = "Torona",
["tqt"] = "Totonac Barat",
["tqu"] = "Touo",
["tqw"] = "Tonkawa",
["tr"] = "Turki",
["tra"] = "Tirahi",
["trb"] = "Terebu",
["trc"] = "Triqui Copala",
["trd"] = "Turi",
["tre"] = "Tarangan Timur",
["trf"] = "Kreol Inggris Trinidad",
["trg"] = "Lishán Didán",
["trh"] = "Turaka",
["tri"] = "Trió",
["trj"] = "Toram",
["trk-dkh"] = "Dukhan",
["trk-oat"] = "Turki Anatolia Kuno",
["trk-pro"] = "Proto-Turkik",
["trl"] = "Skotlandia Traveller",
["trm"] = "Tregami",
["trn"] = "Trinitario",
["tro"] = "Tarao",
["trp"] = "Kokborok",
["trq"] = "Triqui San Martín Itunyoso",
["trr"] = "Taushiro",
["trs"] = "Triqui Chicahuaxtla",
["trt"] = "Tunggare",
["tru"] = "Turoyo",
["trv"] = "Taroko",
["trw"] = "Torwali",
["trx"] = "Tringgus",
["try"] = "Turung",
["trz"] = "Torá",
["ts"] = "Tsonga",
["tsa"] = "Tsaangi",
["tsb"] = "Tsamai",
["tsc"] = "Tswa",
["tsd"] = "Tsakonia",
["tse"] = "Isyarat Tunisia",
["tsf"] = "Tamang Barat Daya",
["tsg"] = "Tausug",
["tsh"] = "Tsuvan",
["tsi"] = "Tsimshian",
["tsj"] = "Tshangla",
["tsl"] = "Ts'ün-Lao",
["tsm"] = "Isyarat Turki",
["tsp"] = "Toussian Utara",
["tsq"] = "Isyarat Thai",
["tsr"] = "Akei",
["tss"] = "Isyarat Taiwan",
["tsu"] = "Tsou",
["tsv"] = "Tsogo",
["tsw"] = "Tsishingini",
["tsx"] = "Mubami",
["tsy"] = "Isyarat Tebul",
["tt"] = "Tatar",
["tta"] = "Tutelo",
["ttb"] = "Gaa",
["ttc"] = "Tektiteko",
["ttd"] = "Tauade",
["tte"] = "Bwanabwana",
["ttf"] = "Tuotomb",
["ttg"] = "Tutong",
["tth"] = "Ta'oih Hulu",
["tti"] = "Tobati",
["ttj"] = "Tooro",
["ttk"] = "Totoro",
["ttl"] = "Totela",
["ttm"] = "Tutchone Utara",
["ttn"] = "Towei",
["tto"] = "Ta'oih Hilir",
["ttp"] = "Tombelala",
["ttr"] = "Tera",
["tts"] = "Isan",
["ttt"] = "Tat",
["ttu"] = "Torau",
["ttv"] = "Titan",
["ttw"] = "Long Wat",
["tty"] = "Sikaritai",
["ttz"] = "Tsum",
["tua"] = "Wiarumus",
["tub"] = "Tübatulabal",
["tuc"] = "Mutu",
["tud"] = "Tuxá",
["tue"] = "Tuyuca",
["tuf"] = "Tunebo Tengah",
["tug"] = "Tunia",
["tuh"] = "Taulil",
["tui"] = "Tupuri",
["tuj"] = "O'Hongana Manyawa",
["tul"] = "Tula",
["tum"] = "Tumbuka",
["tun"] = "Tunica",
["tuo"] = "Tucano",
["tup-gua-pro"] = "Proto-Tupi-Guarani",
["tup-kab"] = "Kabishiana",
["tup-pro"] = "Proto-Tupian",
["tuq"] = "Tedaga",
["tus"] = "Tuscarora",
["tuu"] = "Tututni",
["tuv"] = "Turkana",
["tuw-kkl"] = "Kyakala",
["tuw-pro"] = "Proto-Tungusic",
["tuw-sol"] = "Solon",
["tux"] = "Tuxináwa",
["tuy"] = "Tugen",
["tuz"] = "Turka",
["tva"] = "Vaghua",
["tvd"] = "Tsuvadi",
["tve"] = "Te'un",
["tvk"] = "Ambrym Tenggara",
["tvl"] = "Tuvaluan",
["tvm"] = "Tela-Masbuar",
["tvn"] = "Tavoyan",
["tvo"] = "Tidore",
["tvs"] = "Taveta",
["tvt"] = "Naga Tutsa",
["tvu"] = "Tunen",
["tvw"] = "Sedoa",
["tvx"] = "Taivoan",
["tvy"] = "Pijin Timor",
["twa"] = "Twana",
["twb"] = "Tawbuid Barat",
["twc"] = "Teshenawa",
["twe"] = "Teiwa",
["twf"] = "Taos",
["twg"] = "Tereweng",
["twh"] = "Tai Dón",
["twm"] = "Monpa Tawang",
["twn"] = "Twendi",
["two"] = "Tswapong",
["twp"] = "Ere",
["twq"] = "Tasawaq",
["twr"] = "Tarahumara Barat Daya",
["twt"] = "Turiwára",
["twu"] = "Termanu",
["tww"] = "Tuwari",
["twy"] = "Tawoyan",
["txa"] = "Tombonuo",
["txb"] = "Tocharian B",
["txc"] = "Tsetsaut",
["txe"] = "Totoli",
["txg"] = "Tangut",
["txh"] = "Thracian",
["txi"] = "Ikpeng",
["txj"] = "Tarjumo",
["txm"] = "Tomini",
["txn"] = "Tarangan Barat",
["txo"] = "Toto",
["txq"] = "Tii",
["txr"] = "Tartessian",
["txs"] = "Tonsea",
["txt"] = "Citak",
["txu"] = "Kayapó",
["txx"] = "Tatana",
["ty"] = "Tahiti",
["tya"] = "Tauya",
["tye"] = "Kyenga",
["tyh"] = "O'du",
["tyi"] = "Teke-Tsaayi",
["tyj"] = "Tai Do",
["tyl"] = "Thu Lao",
["tyn"] = "Kombai",
["typ"] = "Kuku-Thaypan",
["tyr"] = "Tai Daeng",
["tys"] = "Sapa",
["tyt"] = "Tày Tac",
["tyu"] = "Kua",
["tyv"] = "Tuvan",
["tyx"] = "Teke-Tyee",
["tyz"] = "Tày",
["tza"] = "Isyarat Tanzania",
["tzh"] = "Tzeltal",
["tzj"] = "Tz'utujil",
["tzl"] = "Talossan",
["tzm"] = "Atlas Tamazight Tengah",
["tzn"] = "Tugun",
["tzo"] = "Tzotzil",
["tzx"] = "Tabriak",
["uam"] = "Uamué",
["uan"] = "Kuan",
["uar"] = "Tairuma",
["uba"] = "Ubang",
["ubi"] = "Ubi",
["ubl"] = "Bikol Buhi'non",
["ubr"] = "Ubir",
["ubu"] = "Umbu-Ungu",
["uby"] = "Ubykh",
["uda"] = "Uda",
["ude"] = "Udihe",
["udg"] = "Muduga",
["udi"] = "Udi",
["udj"] = "Ujir",
["udl"] = "Uldeme",
["udm"] = "Udmurt",
["udu"] = "Uduk",
["ues"] = "Kioko",
["ufi"] = "Ufim",
["ug"] = "Uighur",
["uga"] = "Ugaritic",
["ugb"] = "Kuku-Ugbanh",
["uge"] = "Ughele",
["ugn"] = "Isyarat Uganda",
["ugo"] = "Gong",
["ugy"] = "Isyarat Uruguay",
["uha"] = "Uhami",
["uhn"] = "Damal",
["uis"] = "Uisai",
["uiv"] = "Iyive",
["uji"] = "Tanjijili",
["uk"] = "Ukraina",
["uka"] = "Kaburi",
["ukg"] = "Ukuriguma",
["ukh"] = "Ukhwejo",
["ukk"] = "Muak Sa-aak",
["ukl"] = "Isyarat Ukraina",
["ukp"] = "Ukpe-Bayobiri",
["ukq"] = "Ukwa",
["uks"] = "Isyarat Kaapor",
["uku"] = "Ukue",
["ukw"] = "Ukwuani-Aboh-Ndoni",
["uky"] = "Kuuk Yak",
["ula"] = "Fungwa",
["ulb"] = "Olukumi",
["ulc"] = "Ulch",
["ule"] = "Lule",
["ulf"] = "Afra",
["uli"] = "Ulithian",
["ulk"] = "Meriam",
["ull"] = "Ullatan",
["ulm"] = "Ulumanda'",
["uln"] = "Unserdeutsch",
["ulu"] = "Uma' Lung",
["ulw"] = "Ulwa",
["uma"] = "Umatilla",
["umb"] = "Umbundu",
["umc"] = "Marrucinian",
["umd"] = "Umbindhamu",
["umg"] = "Umbuygamu",
["umi"] = "Ukit",
["umm"] = "Umon",
["umn"] = "Naga Makyan",
["umo"] = "Umotína",
["ump"] = "Umpila",
["umr"] = "Umbugarla",
["ums"] = "Pendau",
["umu"] = "Munsee",
["una"] = "Watut Utara",
["und"] = "Tidak diketahui",
["und-isa"] = "Isaurian",
["und-kas"] = "Kassite",
["und-mil"] = "Milang",
["und-mmd"] = "Mimi Decorse",
["und-mmn"] = "Mimi Nachtigal",
["und-phi"] = "Filistin",
["und-wji"] = "Jicaque Barat",
["une"] = "Uneme",
["ung"] = "Ngarinyin",
["unk"] = "Enawené-Nawé",
["unm"] = "Unami",
["unn"] = "Kurnai",
["unr"] = "Mundari",
["unu"] = "Unubahe",
["unx"] = "Munda",
["unz"] = "Kaili Unde",
["uok"] = "Uokha",
["uon"] = "Kulon",
["upi"] = "Umeda",
["upv"] = "Uripiv-Wala-Rano-Atchin",
["ur"] = "Urdu",
["ura"] = "Urarina",
["urb"] = "Urubú-Kaapor",
["urc"] = "Urningangg",
["ure"] = "Uru",
["urf"] = "Uradhi",
["urg"] = "Urigina",
["urh"] = "Urhobo",
["uri"] = "Urim",
["urj-fin-pro"] = "Proto-Finnic",
["urj-koo"] = "Komi Kuno",
["urj-kuk"] = "Kukkuzi",
["urj-kya"] = "Komi-Yazva",
["urj-mdv-pro"] = "Proto-Mordvinic",
["urj-prm-pro"] = "Proto-Permic",
["urj-pro"] = "Proto-Uralic",
["urj-ugr-pro"] = "Proto-Ugric",
["urk"] = "Urak Lawoi'",
["url"] = "Urali",
["urm"] = "Urapmin",
["urn"] = "Uruangnirin",
["uro"] = "Ura (Papua)",
["urp"] = "Uru-Pa-In",
["urr"] = "Lehalurup",
["urt"] = "Urat",
["uru"] = "Urumi",
["urv"] = "Uruava",
["urw"] = "Sop",
["urx"] = "Urimo",
["ury"] = "Orya",
["urz"] = "Uru-Eu-Wau-Wau",
["usa"] = "Usarufa",
["ush"] = "Ushojo",
["usi"] = "Usui",
["usk"] = "Usaghade",
["usp"] = "Uspanteco",
["uss"] = "Saare",
["usu"] = "Uya",
["uta"] = "Otank",
["ute"] = "Ute",
["uth"] = "Hun",
["utp"] = "Aba",
["utr"] = "Etulo",
["utu"] = "Utu",
["uum"] = "Urum",
["uun"] = "Kulon-Pazeh",
["uur"] = "Ura (Vanuatu)",
["uuu"] = "U",
["uve"] = "Uvean Barat",
["uvh"] = "Uri",
["uvl"] = "Lote",
["uwa"] = "Kuku-Uwanh",
["uya"] = "Doko-Uyanga",
["uz"] = "Uzbek",
["vaa"] = "Vaagri Booli",
["vae"] = "Vale",
["vag"] = "Vagla",
["vah"] = "Varhadi",
["vai"] = "Vai",
["vaj"] = "Sekele",
["val"] = "Vehes",
["vam"] = "Vanimo",
["van"] = "Valman",
["vao"] = "Vao",
["vap"] = "Vaiphei",
["var"] = "Huarijio",
["vas"] = "Vasavi",
["vau"] = "Vanuma",
["vav"] = "Varli",
["vay"] = "Vayu",
["vbb"] = "Babar Tenggara",
["vbk"] = "Bontoc Barat Daya",
["ve"] = "Venda",
["vec"] = "Venesia",
["ved"] = "Veddah",
["vem"] = "Vemgo-Mabas",
["veo"] = "Ventureño",
["vep"] = "Veps",
["ver"] = "Mom Jango",
["vgr"] = "Vaghri",
["vgt"] = "Isyarat Flemish",
["vi"] = "Vietnam",
["vic"] = "Kreol Virgin Islands",
["vid"] = "Vidunda",
["vif"] = "Vili",
["vig"] = "Viemo",
["vil"] = "Vilela",
["vis"] = "Vishavan",
["vit"] = "Viti",
["viv"] = "Iduna",
["vka"] = "Kariyarra",
["vki"] = "Ija-Zuba",
["vkj"] = "Kujarge",
["vkk"] = "Kaur",
["vkl"] = "Kulisusu",
["vkm"] = "Kamakan",
["vko"] = "Kodeoha",
["vkp"] = "Kreol Portugis Korlai",
["vkt"] = "Kutai Hilir",
["vku"] = "Kurrama",
["vlp"] = "Valpei",
["vls"] = "Flemish Barat",
["vma"] = "Martuthunira",
["vmb"] = "Mbabaram",
["vmc"] = "Mixtec Juxtlahuaca",
["vmd"] = "Koraga Mudu",
["vme"] = "Masela Timur",
["vmf"] = "Franconia Timur",
["vmg"] = "Minigir",
["vmh"] = "Maraghei",
["vmi"] = "Miwa",
["vmj"] = "Mixtec Ixtayutla",
["vmk"] = "Makhuwa-Shirima",
["vml"] = "Malgana",
["vmm"] = "Mixtec Mitlatongo",
["vmp"] = "Mazatec Soyaltepec",
["vmq"] = "Mixtec Soyaltepec",
["vmr"] = "Marenje",
["vmu"] = "Muluridyi",
["vmv"] = "Valley Maidu",
["vmw"] = "Makhuwa",
["vmx"] = "Mixtec Tamazola",
["vmy"] = "Mazatec Ayautla",
["vmz"] = "Mazatec Mazatlán",
["vnk"] = "Lovono",
["vnm"] = "Neve'ei",
["vnp"] = "Vunapu",
["vo"] = "Volapük",
["vor"] = "Voro",
["vot"] = "Votic",
["vra"] = "Vera'a",
["vro"] = "Võro",
["vrs"] = "Varisi",
["vrt"] = "Banam Bay",
["vsi"] = "Isyarat Moldova",
["vsl"] = "Isyarat Venezuela",
["vsv"] = "Isyarat Valencia",
["vto"] = "Vitou",
["vum"] = "Vumbu",
["vun"] = "Vunjo",
["vut"] = "Vute",
["vwa"] = "Awa (Tiongkok)",
["wa"] = "Walloon",
["waa"] = "Walla Walla",
["wab"] = "Wab",
["wac"] = "Wasco-Wishram",
["wad"] = "Wandamen",
["waf"] = "Wakoná",
["wag"] = "Wa'ema",
["wah"] = "Watubela",
["waj"] = "Waffa",
["wal"] = "Wolaytta",
["wam"] = "Massachusett",
["wan"] = "Wan",
["wao"] = "Wappo",
["wap"] = "Wapishana",
["waq"] = "Wageman",
["war"] = "Waray-Waray",
["was"] = "Washo",
["wat"] = "Kaninuwa",
["wau"] = "Wauja",
["wav"] = "Waka",
["waw"] = "Waiwai",
["wax"] = "Watam",
["way"] = "Wayana",
["waz"] = "Wampur",
["wba"] = "Warao",
["wbb"] = "Wabo",
["wbe"] = "Waritai",
["wbf"] = "Wara",
["wbh"] = "Wanda",
["wbi"] = "Wanji",
["wbj"] = "Alagwa",
["wbk"] = "Waigali",
["wbl"] = "Wakhi",
["wbm"] = "Wa",
["wbp"] = "Warlpiri",
["wbq"] = "Waddar",
["wbr"] = "Wagdi",
["wbt"] = "Wanman",
["wbv"] = "Wajarri",
["wbw"] = "Woi",
["wca"] = "Yanomámi",
["wci"] = "Gbe Waci",
["wdd"] = "Wandji",
["wdg"] = "Wadaginam",
["wdj"] = "Wadjiginy",
["wdt"] = "Wendat",
["wdu"] = "Wadjigu",
["wdy"] = "Wadjabangayi",
["wea"] = "Wewaw",
["wec"] = "Wè Barat",
["wed"] = "Wedau",
["weh"] = "Weh",
["wei"] = "Kiunum",
["wem"] = "Gbe Weme",
["weo"] = "Wemale",
["wer"] = "Weri",
["wes"] = "Pijin Kamerun",
["wet"] = "Perai",
["weu"] = "Welaung",
["wew"] = "Weyewa",
["wfg"] = "Yafi",
["wga"] = "Wagaya",
["wgb"] = "Wagawaga",
["wgg"] = "Wangganguru",
["wgi"] = "Wahgi",
["wgo"] = "Waigeo",
["wgu"] = "Wirangu",
["wgy"] = "Warrgamay",
["wha"] = "Manusela",
["whg"] = "Wahgi Utara",
["whk"] = "Kenyah Wahau",
["whu"] = "Kayan Wahau",
["wib"] = "Toussian Selatan",
["wic"] = "Wichita",
["wie"] = "Wik-Epa",
["wif"] = "Wik-Keyangan",
["wig"] = "Wik-Ngathana",
["wih"] = "Wik-Me'anha",
["wii"] = "Minidien",
["wij"] = "Wik-Iiyanh",
["wik"] = "Wikalkan",
["wil"] = "Wilawila",
["wim"] = "Wik-Mungkan",
["win"] = "Winnebago",
["wir"] = "Wiraféd",
["wiu"] = "Wiru",
["wiv"] = "Muduapa",
["wiy"] = "Wiyot",
["wja"] = "Waja",
["wji"] = "Warji",
["wka"] = "Kw'adza",
["wkb"] = "Kumbaran",
["wkd"] = "Mo",
["wkl"] = "Kalanadi",
["wku"] = "Kunduvadi",
["wkw"] = "Wakawaka",
["wky"] = "Wangkayutyuru",
["wla"] = "Walio",
["wlc"] = "Comorian Mwali",
["wle"] = "Wolane",
["wlg"] = "Kunbarlang",
["wli"] = "Waioli",
["wlk"] = "Wailaki",
["wll"] = "Wali (Sudan)",
["wlm"] = "Welsh Tengahan",
["wlo"] = "Wolio",
["wlr"] = "Wailapa",
["wls"] = "Wallisian",
["wlu"] = "Wuliwuli",
["wlv"] = "Wichí Lhamtés Vejoz",
["wlw"] = "Walak",
["wlx"] = "Wali (Ghana)",
["wly"] = "Waling",
["wmb"] = "Wambaya",
["wmc"] = "Wamas",
["wmd"] = "Mamaindé",
["wme"] = "Wambule",
["wmh"] = "Waima'a",
["wmi"] = "Wamin",
["wmm"] = "Maiwa (Indonesia)",
["wmn"] = "Waamwang",
["wmo"] = "Wam",
["wms"] = "Wambon",
["wmt"] = "Walmajarri",
["wmw"] = "Mwani",
["wmx"] = "Womo",
["wnb"] = "Wanambre",
["wnc"] = "Wantoat",
["wnd"] = "Wandarang",
["wne"] = "Waneci",
["wng"] = "Wanggom",
["wni"] = "Comorian Ndzwani",
["wnk"] = "Wanukaka",
["wnm"] = "Wanggamala",
["wno"] = "Wano",
["wnp"] = "Wanap",
["wnu"] = "Usan",
["wnw"] = "Wintu",
["wny"] = "Wanyi",
["wo"] = "Wolof",
["woa"] = "Tyaraity",
["wob"] = "Wè Utara",
["woc"] = "Wogeo",
["wod"] = "Wolani",
["woe"] = "Woleaian",
["wog"] = "Wogamusin",
["woi"] = "Kamang",
["wok"] = "Longto",
["wom"] = "Perema",
["won"] = "Wongo",
["woo"] = "Manombai",
["wor"] = "Woria",
["wos"] = "Hanga Hundi",
["wow"] = "Wawonii",
["wpc"] = "Wirö",
["wra"] = "Warapu",
["wrb"] = "Warluwara",
["wrg"] = "Warungu",
["wrh"] = "Wiradhuri",
["wri"] = "Wariyangga",
["wrk"] = "Garawa",
["wrl"] = "Warlmanpa",
["wrm"] = "Warumungu",
["wrn"] = "Warnang",
["wro"] = "Worora",
["wrp"] = "Waropen",
["wrr"] = "Wardaman",
["wrs"] = "Waris",
["wru"] = "Waru",
["wrv"] = "Waruna",
["wrw"] = "Gugu Warra",
["wrx"] = "Wae Rana",
["wrz"] = "Warray",
["wsa"] = "Warembori",
["wsi"] = "Wusi",
["wsk"] = "Waskia",
["wsr"] = "Owenia",
["wss"] = "Wasa",
["wsu"] = "Wasu",
["wsv"] = "Wotapuri-Katarqalai",
["wtf"] = "Watiwa",
["wth"] = "Wathaurong",
["wti"] = "Berta",
["wtk"] = "Watakataui",
["wtm"] = "Mewati",
["wtw"] = "Wotu",
["wua"] = "Wikngenchera",
["wub"] = "Wunambal",
["wud"] = "Wudu",
["wuh"] = "Wutunhua",
["wul"] = "Silimo",
["wum"] = "Wumbvu",
["wun"] = "Bungu",
["wur"] = "Wurrugu",
["wut"] = "Wutung",
["wuu"] = "Wu",
["wuv"] = "Wuvulu-Aua",
["wux"] = "Wulna",
["wuy"] = "Wauyai",
["wwa"] = "Waama",
["wwo"] = "Dorig",
["wwr"] = "Warrwa",
["www"] = "Wawa",
["wxa"] = "Waxianghua",
["wxw"] = "Wardandi",
["wya"] = "Wyandot",
["wyb"] = "Ngiyambaa",
["wyi"] = "Woiwurrung",
["wym"] = "Vilamovian",
["wyr"] = "Wayoró",
["wyy"] = "Fiji Barat",
["xaa"] = "Arab Andalusia",
["xab"] = "Sambe",
["xac"] = "Kachari",
["xad"] = "Adai",
["xae"] = "Aequian",
["xag"] = "Aghwan",
["xai"] = "Kaimbé",
["xaj"] = "Ararandewára",
["xak"] = "Maku",
["xal"] = "Kalmyk",
["xam"] = "ǀXam",
["xan"] = "Xamtanga",
["xao"] = "Khao",
["xap"] = "Apalachee",
["xaq"] = "Aquitania",
["xar"] = "Karami",
["xas"] = "Kamassian",
["xat"] = "Katawixi",
["xau"] = "Kauwera",
["xav"] = "Xavante",
["xaw"] = "Kawaiisu",
["xay"] = "Kayan Mahakam",
["xbb"] = "Burdekin Hilir",
["xbc"] = "Baktria",
["xbd"] = "Bindal",
["xbe"] = "Bigambal",
["xbg"] = "Bunganditj",
["xbi"] = "Kombio",
["xbj"] = "Birrpayi",
["xbm"] = "Breton Tengahan",
["xbn"] = "Kenaboi",
["xbo"] = "Bulgar",
["xbp"] = "Bibbulman",
["xbr"] = "Kambera",
["xbw"] = "Kambiwá",
["xby"] = "Butchulla",
["xcb"] = "Cumbric",
["xcc"] = "Camunic",
["xce"] = "Keltiberia",
["xch"] = "Chemakum",
["xcl"] = "Armenia Kuno",
["xcm"] = "Comecrudo",
["xcn"] = "Cotoname",
["xco"] = "Khwarezmian",
["xcr"] = "Carian",
["xct"] = "Tibet Klasik",
["xcu"] = "Curonian",
["xcv"] = "Chuvan",
["xcw"] = "Coahuilteco",
["xcy"] = "Cayuse",
["xda"] = "Darkinjung",
["xdc"] = "Dacian",
["xdk"] = "Dharug",
["xdm"] = "Edomite",
["xdy"] = "Dayak Melayu",
["xeb"] = "Eblaite",
["xed"] = "Hdi",
["xeg"] = "ǁXegwi",
["xel"] = "Kelo",
["xem"] = "Kembayan",
["xep"] = "Epi-Olmec",
["xer"] = "Xerénte",
["xes"] = "Kesawai",
["xet"] = "Xetá",
["xeu"] = "Keoru-Ahia",
["xfa"] = "Faliscan",
["xga"] = "Galatia",
["xgb"] = "Gbin",
["xgd"] = "Gudang",
["xgf"] = "Gabrielino-Fernandeño",
["xgg"] = "Goreng",
["xgi"] = "Garingbal",
["xgl"] = "Galindan",
["xgm"] = "Darumbal",
["xgn-mgl"] = "Mongghul",
["xgn-mgr"] = "Mangghuer",
["xgn-pro"] = "Proto-Mongolia",
["xgn-rou"] = "Rouran",
["xgr"] = "Garza",
["xgu"] = "Unggumi",
["xgw"] = "Guwa",
["xh"] = "Xhosa",
["xha"] = "Harami",
["xhc"] = "Hunnic",
["xhd"] = "Hadrami",
["xhe"] = "Khetrani",
["xhm"] = "Khmer Tengahan",
["xhr"] = "Hernican",
["xht"] = "Hattic",
["xhu"] = "Hurria",
["xhv"] = "Khua",
["xib"] = "Iberia",
["xii"] = "Xiri",
["xil"] = "Illyria",
["xin"] = "Xinca",
["xir"] = "Xiriâna",
["xis"] = "Kisan",
["xiv"] = "Lembah Indus",
["xiy"] = "Xipaya",
["xjb"] = "Minjungbal",
["xka"] = "Kalkoti",
["xkb"] = "Manigri-Kambolé Ede Nago",
["xkc"] = "Khoini",
["xkd"] = "Kayan Mendalam",
["xke"] = "Kereho",
["xkf"] = "Khengkha",
["xkg"] = "Kagoro",
["xki"] = "Isyarat Kenya",
["xkj"] = "Kajali",
["xkk"] = "Kaco'",
["xkl"] = "Bakung",
["xkn"] = "Kayan Sungai Kayan",
["xko"] = "Kiorr",
["xkp"] = "Kabatei",
["xkq"] = "Koroni",
["xkr"] = "Xakriabá",
["xks"] = "Kumbewaha",
["xkt"] = "Kantosi",
["xku"] = "Kaamba",
["xkv"] = "Kgalagadi",
["xkw"] = "Kembra",
["xkx"] = "Karore",
["xky"] = "Uma' Lasan",
["xkz"] = "Kurtöp",
["xla"] = "Kamula",
["xlb"] = "Loup B",
["xlc"] = "Lycia",
["xld"] = "Lydia",
["xle"] = "Lemnia",
["xlg"] = "Liguria Kuno",
["xli"] = "Liburnian",
["xlo"] = "Loup A",
["xlp"] = "Lepontic",
["xls"] = "Lusitania",
["xlu"] = "Luwia",
["xly"] = "Elymian",
["xmb"] = "Mbonga",
["xmc"] = "Makhuwa-Marrevone",
["xmd"] = "Mbudum",
["xme-ker"] = "Kermanic",
["xme-kls"] = "Kalasuri",
["xme-klt"] = "Kilit",
["xme-mid"] = "Media Tengahan",
["xme-old"] = "Media Kuno",
["xme-ott"] = "Tati Kuno",
["xme-taf"] = "Tafreshi",
["xme-ttc-pro"] = "Proto-Tatic",
["xmf"] = "Mingrelian",
["xmg"] = "Mengaka",
["xmh"] = "Kugu-Muminh",
["xmj"] = "Majera",
["xmk"] = "Makedonia Kuno",
["xml"] = "Isyarat Malaysia",
["xmm"] = "Melayu Manado",
["xmo"] = "Morerebi",
["xmp"] = "Kuku-Mu'inh",
["xmq"] = "Kuku-Mangk",
["xmr"] = "Meroitic",
["xms"] = "Isyarat Maroko",
["xmt"] = "Matbat",
["xmu"] = "Kamu",
["xmx"] = "Maden",
["xmy"] = "Mayaguduna",
["xmz"] = "Mori Bawah",
["xna"] = "Arab Utara Kuno",
["xnb"] = "Kanakanabu",
["xnd-pro"] = "Proto-Na-Dene",
["xng"] = "Mongol Tengahan",
["xnh"] = "Kuanhua",
["xni"] = "Ngarigu",
["xnk"] = "Nganakarti",
["xnn"] = "Kankanay Utara",
["xnr"] = "Kangri",
["xns"] = "Kanashi",
["xnt"] = "Narragansett",
["xnu"] = "Nukunul",
["xny"] = "Nyiyaparli",
["xoc"] = "O'chi'chi'",
["xod"] = "Kokoda",
["xog"] = "Soga",
["xoi"] = "Kominimung",
["xok"] = "Xokleng",
["xom"] = "Komo",
["xon"] = "Konkomba",
["xoo"] = "Xukurú",
["xop"] = "Kopar",
["xor"] = "Korubo",
["xow"] = "Kowaki",
["xpa"] = "Pirriya",
["xpb"] = "Pyemmairre",
["xpc"] = "Pecheneg",
["xpd"] = "Paredarerme",
["xpe"] = "Kpelle Liberia",
["xpf"] = "Tasmania Tenggara",
["xpg"] = "Phrygia",
["xph"] = "Tyerrernotepanner",
["xpi"] = "Pictish",
["xpj"] = "Mpalitjanh",
["xpk"] = "Kulina",
["xpl"] = "Port Sorell",
["xpm"] = "Pumpokol",
["xpn"] = "Kapinawá",
["xpo"] = "Pochutec",
["xpp"] = "Puyo-Paekche",
["xpq"] = "Mohegan-Pequot",
["xpr"] = "Parthia",
["xps"] = "Pisidian",
["xpu"] = "Punic",
["xpv"] = "Tommeginne",
["xpw"] = "Peerapper",
["xpx"] = "Toogee",
["xpy"] = "Buyeo",
["xpz"] = "Bruny Island",
["xqa"] = "Karakhanid",
["xqt"] = "Qatabanian",
["xra"] = "Krahô",
["xrb"] = "Karaboro Timur",
["xrd"] = "Gundungurra",
["xre"] = "Kreye",
["xrg"] = "Minang",
["xri"] = "Krikati-Timbira",
["xrm"] = "Armazic",
["xrn"] = "Arin",
["xrq"] = "Karranga",
["xrr"] = "Raetic",
["xrt"] = "Aranama-Tamique",
["xru"] = "Marriammu",
["xrw"] = "Karawa",
["xsa"] = "Sabaean",
["xsb"] = "Sambali",
["xsc-pro"] = "Proto-Scythia",
["xsc-sak-pro"] = "Proto-Saka",
["xsc-skw-pro"] = "Proto-Saka-Wakhi",
["xsd"] = "Sidetic",
["xse"] = "Sempan",
["xsh"] = "Shamang",
["xsi"] = "Sio",
["xsj"] = "Subi",
["xsl"] = "Slavey Selatan",
["xsm"] = "Kasem",
["xsn"] = "Sanga (Nigeria)",
["xso"] = "Solano",
["xsp"] = "Silopi",
["xsq"] = "Makhuwa-Saka",
["xsr"] = "Sherpa",
["xss"] = "Assan",
["xsu"] = "Sanumá",
["xsv"] = "Sudovian",
["xsy"] = "Saisiyat",
["xta"] = "Mixtec Alcozauca",
["xtb"] = "Mixtec Chazumba",
["xtc"] = "Kadugli",
["xtd"] = "Mixtec Diuxi-Tilantongo",
["xte"] = "Ketengban",
["xth"] = "Yitha Yitha",
["xti"] = "Mixtec Sinicahua",
["xtj"] = "Mixtec San Juan Teita",
["xtl"] = "Mixtec Tijaltepec",
["xtm"] = "Mixtec Magdalena Peñasco",
["xtn"] = "Mixtec Tlaxiaco Utara",
["xto"] = "Tocharian A",
["xtp"] = "Mixtec San Miguel Piedras",
["xtq"] = "Tumshuqese",
["xtr"] = "Tripuri Awal",
["xts"] = "Mixtec Sindihui",
["xtt"] = "Mixtec Tacahua",
["xtu"] = "Mixtec Cuyamecalco",
["xtv"] = "Thawa",
["xtw"] = "Tawandê",
["xty"] = "Mixtec Yoloxochitl",
["xtz"] = "Tasmania",
["xua"] = "Kurumba Alu",
["xub"] = "Kurumba Betta",
["xud"] = "Umiida",
["xug"] = "Kunigami",
["xuj"] = "Kurumba Jennu",
["xul"] = "Ngunawal",
["xum"] = "Umbrian",
["xun"] = "Unggaranggu",
["xuo"] = "Kuo",
["xup"] = "Umpqua Hulu",
["xur"] = "Urartian",
["xut"] = "Kuthant",
["xuu"] = "Khwe",
["xve"] = "Venetic",
["xvn"] = "Vandalic",
["xvo"] = "Volscian",
["xvs"] = "Vestinian",
["xwa"] = "Kwaza",
["xwc"] = "Woccon",
["xwd"] = "Wadi Wadi",
["xwe"] = "Gbe Xwela",
["xwg"] = "Kwegu",
["xwj"] = "Wajuk",
["xwk"] = "Wangkumara",
["xwl"] = "Gbe Xwla Barat",
["xwo"] = "Written Oirat",
["xwr"] = "Kwerba Mamberamo",
["xww"] = "Wemba-Wemba",
["xxb"] = "Boro",
["xxk"] = "Ke'o",
["xxm"] = "Minkin",
["xxr"] = "Koropó",
["xxt"] = "Tambora",
["xya"] = "Yaygir",
["xyb"] = "Yandjibara",
["xyl"] = "Yalakalore",
["xyt"] = "Mayi-Thakurti",
["xyy"] = "Yorta Yorta",
["xzh"] = "Zhang-Zhung",
["xzm"] = "Zemgalian",
["xzp"] = "Zapotec Kuno",
["yaa"] = "Yaminahua",
["yab"] = "Yuhup",
["yac"] = "Yali Lembah Pass",
["yad"] = "Yagua",
["yae"] = "Pumé",
["yaf"] = "Yaka",
["yag"] = "Yámana",
["yah"] = "Yazghulami",
["yai"] = "Yagnobi",
["yaj"] = "Banda-Yangere",
["yak"] = "Yakima",
["yal"] = "Yalunka",
["yam"] = "Yamba",
["yan"] = "Mayangna",
["yao"] = "Yao",
["yap"] = "Yapese",
["yaq"] = "Yaqui",
["yar"] = "Yabarana",
["yas"] = "Gunu",
["yat"] = "Yambeta",
["yau"] = "Yuwana",
["yav"] = "Yangben",
["yaw"] = "Yawalapití",
["yay"] = "Agwagwune",
["yaz"] = "Lokaa",
["yba"] = "Yala",
["ybb"] = "Yemba",
["ybe"] = "Yugur Barat",
["ybh"] = "Yakkha",
["ybi"] = "Yamphu",
["ybj"] = "Hasha",
["ybk"] = "Bokha",
["ybl"] = "Yukuben",
["ybm"] = "Yaben",
["ybn"] = "Yabaâna",
["ybo"] = "Yabong",
["ybx"] = "Yawiyo",
["yby"] = "Yaweyuha",
["ych"] = "Chesu",
["ycl"] = "Lolopo",
["ycn"] = "Yucuna",
["ycp"] = "Chepya",
["ycr"] = "Kreol Yilan",
["yda"] = "Yanda",
["yde"] = "Yangum Dey",
["ydg"] = "Yidgha",
["ydk"] = "Yoidik",
["yea"] = "Ravula",
["yec"] = "Yeniche",
["yee"] = "Yimas",
["yei"] = "Yeni",
["yej"] = "Yevanic",
["yen"] = "Yendang",
["yer"] = "Tarok",
["yes"] = "Yeskwa",
["yet"] = "Yetfa",
["yeu"] = "Yerukula",
["yev"] = "Yapunda",
["yey"] = "Yeyi",
["ygi"] = "Yiningayi",
["ygl"] = "Yangum Gel",
["ygm"] = "Yagomi",
["ygp"] = "Gepo",
["ygr"] = "Yagaria",
["ygs"] = "Isyarat Yolngu",
["ygu"] = "Yugul",
["ygw"] = "Yagwoia",
["yha"] = "Baha",
["yhl"] = "Phowa Hlepho",
["yi"] = "Yiddish",
["yia"] = "Yinggarda",
["yif"] = "Ache",
["yig"] = "Nasu Wusa",
["yii"] = "Yidiny",
["yij"] = "Yindjibarndi",
["yik"] = "Lalo Dongshanba",
["yil"] = "Yindjilandji",
["yim"] = "Naga Yimchungru",
["yin"] = "Yinchia",
["yip"] = "Pholo",
["yiq"] = "Miqie",
["yir"] = "Awyu Utara",
["yis"] = "Yis",
["yit"] = "Lalu Timur",
["yiu"] = "Awu",
["yiv"] = "Nisu Utara",
["yix"] = "Yi Axi",
["yiy"] = "Yir-Yoront",
["yiz"] = "Azhe",
["yka"] = "Yakan",
["ykg"] = "Yukaghir Utara",
["ykh"] = "Mongol Khamnigan",
["yki"] = "Yoke",
["ykk"] = "Yakaikeke",
["ykl"] = "Khlula",
["ykm"] = "Kap",
["ykn"] = "Kua-nsi",
["yko"] = "Yasa",
["ykr"] = "Yekora",
["ykt"] = "Kathu",
["yku"] = "Kuamasi",
["yky"] = "Yakoma",
["yla"] = "Yaul",
["ylb"] = "Yaleba",
["yle"] = "Yele",
["ylg"] = "Yelogu",
["yli"] = "Yali Angguruk",
["yll"] = "Yil",
["ylm"] = "Limi",
["yln"] = "Langnian Buyang",
["ylo"] = "Yi Naluo",
["ylr"] = "Yalarnnga",
["ylu"] = "Aribwaung",
["yly"] = "Nyâlayu",
["ymb"] = "Yambes",
["ymc"] = "Muji Selatan",
["ymd"] = "Muda",
["yme"] = "Yameo",
["ymg"] = "Yamongeri",
["ymh"] = "Mili",
["ymi"] = "Moji",
["ymk"] = "Makwe",
["yml"] = "Iamalele",
["ymm"] = "Maay",
["ymn"] = "Sunum",
["ymo"] = "Mon Yangum",
["ymp"] = "Yamap",
["ymq"] = "Muji Qila",
["ymr"] = "Malasar",
["yms"] = "Mysian",
["ymx"] = "Muji Utara",
["ymz"] = "Muzi",
["yna"] = "Aluo",
["ynd"] = "Yandruwandha",
["yne"] = "Lang'e",
["yng"] = "Yango",
["ynk"] = "Naukanski",
["ynl"] = "Yangulam",
["ynn"] = "Yana",
["yno"] = "Yong",
["yns"] = "Yansi",
["ynu"] = "Yahuna",
["yo"] = "Yoruba",
["yob"] = "Yoba",
["yog"] = "Yogad",
["yoi"] = "Yonaguni",
["yol"] = "Yola",
["yom"] = "Yombe",
["yon"] = "Yongkom",
["yox"] = "Yoron",
["yoy"] = "Yoy",
["ypa"] = "Phala",
["ypb"] = "Phowa Labo",
["ypg"] = "Phola",
["yph"] = "Phupha",
["ypk-pro"] = "Proto-Yupik",
["ypm"] = "Phuma",
["ypn"] = "Phowa Ani",
["ypo"] = "Alo Phola",
["ypp"] = "Phupa",
["ypz"] = "Phuza",
["yra"] = "Yerakai",
["yrb"] = "Yareba",
["yre"] = "Yaouré",
["yri"] = "Yarí",
["yrk"] = "Nenets Tundra",
["yrl"] = "Nheengatu",
["yrn"] = "Yerong",
["yro"] = "Yaroamë",
["yrw"] = "Yarawata",
["yry"] = "Yarluyandi",
["ysc"] = "Jassic",
["ysd"] = "Samatao",
["ysg"] = "Sonaga",
["ysl"] = "Isyarat Yugoslavia",
["ysn"] = "Sani",
["yso"] = "Nisi",
["ysp"] = "Lolopo Selatan",
["ysr"] = "Sirenik",
["yss"] = "Yessan-Mayo",
["ysy"] = "Sanie",
["yta"] = "Talu",
["ytl"] = "Tanglang",
["ytp"] = "Thopho",
["ytw"] = "Yout Wam",
["yty"] = "Yatay",
["yua"] = "Maya Yucatec",
["yub"] = "Yugambal",
["yuc"] = "Yuchi",
["yue"] = "Kanton",
["yuf"] = "Havasupai-Walapai-Yavapai",
["yug"] = "Yug",
["yui"] = "Yurutí",
["yuj"] = "Karkar-Yuri",
["yuk"] = "Yuki",
["yul"] = "Yulu",
["yum"] = "Yuma",
["yun"] = "Bena",
["yup"] = "Yukpa",
["yuq"] = "Yuqui",
["yur"] = "Yurok",
["yut"] = "Yopno",
["yuw"] = "Yau Finisterre",
["yux"] = "Yukaghir Selatan",
["yuy"] = "Yugur Timur",
["yuz"] = "Yuracare",
["yva"] = "Yawa",
["yvt"] = "Yavitero",
["ywa"] = "Kalou",
["ywg"] = "Yinhawangka",
["ywl"] = "Lalu Barat",
["ywn"] = "Yawanawa",
["ywq"] = "Nasu",
["ywr"] = "Yawuru",
["ywt"] = "Lalo Xishanba",
["ywu"] = "Nasu Wumeng",
["yww"] = "Yawarawarga",
["yxa"] = "Mayawali",
["yxg"] = "Yagara",
["yxl"] = "Yarli",
["yxm"] = "Yinwum",
["yxu"] = "Yuyu",
["yxy"] = "Yabula Yabula",
["yyu"] = "Yau Torricelli",
["yyz"] = "Ayizi",
["yzg"] = "E'ma Buyang",
["yzk"] = "Zokhuo",
["za"] = "Zhuang",
["zaa"] = "Zapotec Sierra de Juárez",
["zab"] = "Zapotec San Juan Guelavía",
["zac"] = "Zapotec Ocotlán",
["zad"] = "Zapotec Cajonos",
["zae"] = "Zapotec Yareni",
["zaf"] = "Zapotec Ayoquesco",
["zag"] = "Zaghawa",
["zah"] = "Zangwal",
["zai"] = "Zapotec Isthmus",
["zaj"] = "Zaramo",
["zak"] = "Zanaki",
["zal"] = "Zauzou",
["zam"] = "Zapotec Mahuatlán Tengah",
["zao"] = "Zapotec Ozolotepec",
["zap"] = "Zapotec",
["zaq"] = "Zapotec Aloápam",
["zar"] = "Zapotec Rincón",
["zas"] = "Zapotec Santo Domingo Albarradas",
["zat"] = "Zapotec Tabaa",
["zau"] = "Zangskari",
["zav"] = "Zapotec Yatzachi",
["zaw"] = "Zapotec Mitla",
["zax"] = "Zapotec Xadani",
["zay"] = "Zayse-Zergulla",
["zaz"] = "Zari",
["zbt"] = "Batui",
["zca"] = "Zapotec Coatecas Altas",
["zdj"] = "Comorian Ngazidja",
["zea"] = "Zealandic",
["zeg"] = "Zenag",
["zen"] = "Zenaga",
["zga"] = "Kinga",
["zgh"] = "Maroko Amazigh",
["zgr"] = "Magori",
["zh"] = "Tionghoa",
["zhb"] = "Zhaba",
["zhi"] = "Zhire",
["zhn"] = "Zhuang Nong",
["zhw"] = "Zhoa",
["zhx-min-pro"] = "Proto-Min",
["zhx-sht"] = "Tuhua Shaozhou",
["zhx-tai"] = "Taishan",
["zhx-teo"] = "Teochew",
["zia"] = "Zia",
["zib"] = "Isyarat Zimbabwe",
["zik"] = "Zimakani",
["zil"] = "Zialo",
["zim"] = "Mesme",
["zin"] = "Zinza",
["zir"] = "Ziriya",
["ziw"] = "Zigula",
["ziz"] = "Zizilivakan",
["zka"] = "Kaimbulawa",
["zkb"] = "Koibal",
["zkg"] = "Goguryeo",
["zkh"] = "Turkik Khorezmian",
["zkk"] = "Karankawa",
["zko"] = "Kott",
["zkp"] = "São Paulo Kaingáng",
["zkr"] = "Zakhring",
["zkt"] = "Khitan",
["zku"] = "Kaurna",
["zkv"] = "Krevinian",
["zkz"] = "Khazar",
["zle-ono"] = "Novgorod Kuno",
["zle-ort"] = "Ruthenia Kuno",
["zlw-ocs"] = "Ceko Kuno",
["zlw-opl"] = "Polandia Kuno",
["zlw-pom-pro"] = "Proto-Pomerania",
["zlw-slv"] = "Slovincian",
["zma"] = "Manda (Australia)",
["zmb"] = "Zimba",
["zmc"] = "Margany",
["zmd"] = "Maridan",
["zme"] = "Mangerr",
["zmf"] = "Mfinu",
["zmg"] = "Ke Marti",
["zmh"] = "Makolkol",
["zmi"] = "Melayu Negeri Sembilan",
["zmj"] = "Maridjabin",
["zmk"] = "Mandandanyi",
["zml"] = "Madngele",
["zmm"] = "Marimanindji",
["zmn"] = "Mbangwe",
["zmo"] = "Molo",
["zmp"] = "Mbuun",
["zmq"] = "Mituku",
["zmr"] = "Maranungku",
["zms"] = "Mbesa",
["zmt"] = "Maringarr",
["zmu"] = "Muruwari",
["zmv"] = "Mbariman-Gudhinma",
["zmw"] = "Mbo (Kongo)",
["zmx"] = "Bomitaba",
["zmy"] = "Mariyedi",
["zmz"] = "Mbandja",
["zna"] = "Gula Zan",
["zne"] = "Zande",
["zng"] = "Mang",
["znk"] = "Manangkari",
["zns"] = "Mangas",
["zoc"] = "Zoque Copainalá",
["zoh"] = "Zoque Chimalapa",
["zom"] = "Zou",
["zoo"] = "Zapotec Asunción Mixtepec",
["zoq"] = "Zoque Tabasco",
["zor"] = "Zoque Rayón",
["zos"] = "Zoque Francisco León",
["zpa"] = "Zapotec Lachiguiri",
["zpb"] = "Zapotec Yautepec",
["zpc"] = "Zapotec Choapan",
["zpd"] = "Zapotec Ixtlán Tenggara",
["zpe"] = "Zapotec Petapa",
["zpf"] = "Zapotec San Pedro Quiatoni",
["zpg"] = "Zapotec Guevea de Humboldt",
["zph"] = "Zapotec Totomachapan",
["zpi"] = "Zapotec Santa María Quiegolani",
["zpj"] = "Zapotec Quiavicuzas",
["zpk"] = "Zapotec Tlacolulita",
["zpl"] = "Zapotec Lachixío",
["zpm"] = "Zapotec Mixtepec",
["zpn"] = "Zapotec Santa Inés Yatzechi",
["zpo"] = "Zapotec Amatlán",
["zpp"] = "Zapotec El Alto",
["zpq"] = "Zapotec Zoogocho",
["zpr"] = "Zapotec Santiago Xanica",
["zps"] = "Zapotec Coatlán",
["zpt"] = "Zapotec San Vicente Coatlán",
["zpu"] = "Zapotec Yalálag",
["zpv"] = "Zapotec Chichicapan",
["zpw"] = "Zapotec Zaniza",
["zpx"] = "Zapotec San Baltazar Loxicha",
["zpy"] = "Zapotec Mazaltepec",
["zpz"] = "Zapotec Texmelucan",
["zra"] = "Kaya",
["zrg"] = "Mirgan",
["zrn"] = "Zirenkel",
["zro"] = "Záparo",
["zrs"] = "Mairasi",
["zsa"] = "Sarasira",
["zsk"] = "Kaskean",
["zsl"] = "Isyarat Zambia",
["zsr"] = "Zapotec Rincon Selatan",
["zsu"] = "Sukurum",
["zte"] = "Zapotec Elotepec",
["ztg"] = "Zapotec Xanaguía",
["ztl"] = "Zapotec Lapaguía-Guivini",
["ztm"] = "Zapotec San Agustín Mixtepec",
["ztn"] = "Zapotec Santa Catarina Albarradas",
["ztp"] = "Zapotec Loxicha",
["ztq"] = "Zapotec Quioquitani-Quierí",
["zts"] = "Zapotec Tilquiapan",
["ztt"] = "Zapotec Tejalapan",
["ztu"] = "Zapotec San Pablo Güilá",
["ztx"] = "Zapotec Zaachila",
["zty"] = "Zapotec Yatee",
["zu"] = "Zulu",
["zua"] = "Zeem",
["zuh"] = "Tokano",
["zum"] = "Kumzari",
["zun"] = "Zuni",
["zuy"] = "Zumaya",
["zwa"] = "Zay",
["zyp"] = "Zyphe",
["zza"] = "Zazaki",
["zzj"] = "Zhuang Zuojiang",
}
local protoLangs = {
["ine-pro"] = true,
["map-pro"] = true,
["PAN"] = true,
["phi-pro"] = true,
["PMP"] = true,
["poz-pro"] = true,
["poz-mly-pro"] = true
}
-- Interwiki table
local interwikis = {
aa = true, ab = true, af = true, ak = true, am = true, an = true, ang = true,
ar = true, as = true, ast = true, av = true, ay = true, az = true, bcl = true,
be = true, bew = true, bg = true, bh = true, bi = true, bjn = true, blk = true,
bm = true, bn = true, bo = true, br = true, bs = true, btm = true, ca = true,
ch = true, chr = true, ckb = true, co = true, cr = true, cs = true, csb = true,
cy = true, da = true, de = true, diq = true, dv = true, dz = true, el = true,
en = true, eo = true, es = true, et = true, eu = true, fa = true, fi = true,
fj = true, fo = true, fr = true, fy = true, ga = true, gd = true, gl = true,
gn = true, gom = true, gor = true, gu = true, guw = true, gv = true, ha = true,
he = true, hi = true, hif = true, hr = true, hsb = true, hu = true, hy = true,
ia = true, ie = true, ig = true, ik = true, ["io"] = true, ["is"] = true, it = true,
iu = true, ja = true, jbo = true, jv = true, ka = true, kaa = true, kbd = true,
kcg = true, kk = true, kl = true, km = true, kn = true, ko = true, ks = true,
ku = true, kw = true, ky = true, la = true, lb = true, li = true, lmo = true,
ln = true, lo = true, lt = true, lv = true, mad = true, mg = true, mh = true,
mi = true, ["min"] = true, mk = true, ml = true, mn = true, mni = true, mnw = true,
mr = true, ms = true, mt = true, my = true, na = true, nah = true, nds = true,
ne = true, nia = true, nl = true, nn = true, no = true, oc = true, om = true,
["or"] = true, pa = true, pi = true, pl = true, pnb = true, ps = true, pt = true,
qu = true, rm = true, rn = true, ro = true, ru = true, rw = true, sa = true,
sat = true, sc = true, scn = true, sd = true, sg = true, sh = true, shn = true,
shy = true, si = true, sk = true, skr = true, sl = true, sm = true, sn = true,
so = true, sq = true, sr = true, ss = true, st = true, su = true, sv = true,
sw = true, ta = true, tcy = true, te = true, tg = true, th = true, ti = true,
tk = true, tl = true, tn = true, to = true, tpi = true, tr = true, ts = true,
tt = true, tw = true, ug = true, uk = true, ur = true, uz = true, vec = true,
vi = true, vo = true, wa = true, wo = true, xh = true, yi = true, yo = true,
za = true, zh = true, ["zh-min-nan"] = true, zu = true,
-- Mapped codes
mly = "ms", msa = "ms", msi = "ms", zlm = "ms", zsm = "ms", ["nan-hbl"] = "zh-min-nan"
}
-- Return interwiki link
function p.getInterwikiLink(lang, title)
local targetLang = interwikis[lang]
if targetLang == nil then
return lang
elseif targetLang == true then
return string.format("[[:%s:%s|%s]]", lang, title, lang)
else
return string.format("[[:%s:%s|%s]]", targetLang, title, lang)
end
end
-- Get full language name (returns nil if invalid)
function p.getLangName(frame)
local args = frame.args
local code = mw.text.trim(args[1] or "")
local nocap = args.nocap or ""
local name = langNames[code]
if not name then return nil end
local prefix = ""
-- Check if code is a language family
local familyObj = Families.getByCode(code)
if familyObj then
prefix = "Rumpun bahasa "
elseif code ~= "mul" then
prefix = "Bahasa "
end
local fullName = prefix .. name
if nocap == "1" and mw.ustring.len(fullName) > 0 then
local first = mw.ustring.sub(fullName, 1, 1)
local rest = mw.ustring.sub(fullName, 2)
fullName = mw.ustring.lower(first) .. rest
end
return fullName
end
function p.getLangNameByCode(code, nocap)
code = mw.text.trim(code or "")
nocap = nocap or ""
local name = langNames[code]
if not name then return nil end
local prefix = ""
local familyObj = Families.getByCode(code)
if familyObj then
prefix = "Rumpun bahasa "
elseif code ~= "mul" then
prefix = "Bahasa "
end
local fullName = prefix .. name
if nocap == "1" and mw.ustring.len(fullName) > 0 then
local first = mw.ustring.sub(fullName, 1, 1)
local rest = mw.ustring.sub(fullName, 2)
fullName = mw.ustring.lower(first) .. rest
end
return fullName
end
-- Get language code (returns nil if invalid)
function p.getLangCode(frame)
local code = mw.text.trim((frame.args and frame.args[1]) or "")
if langNames[code] then
return code
else
return nil
end
end
function p.getLangCodeByCode(code)
code = mw.text.trim(code or "")
if langNames[code] then
return code
end
return nil
end
-- Expose tables
p.protoLangs = protoLangs
p.langNames = langNames
p.interwikis = interwikis
return p
l0v5sbxwz4cikitl9h1274ak18nkqxb
Templat:ragam bentuk dari
10
267556
1349862
1277977
2026-04-14T13:54:43Z
Swarabakti
18192
1349862
wikitext
text/x-wiki
{{ {{#if:{{{lang|}}}|check deprecated lang param usage|no deprecated lang param usage}}|lang={{{lang|}}}|<!--
-->{{#invoke:form of/templates|form_of_t|{{#invoke:labels/templates/show_from|show_from|default=ragam}} form of|withencap=1|ignore=from:list,nocat}}<!--
-->}}<!--
--><noinclude>{{dokumentasi}}</noinclude>
56h65igzi04vcduoxpj1jyhuixk28nc
1349867
1349862
2026-04-14T14:04:10Z
Swarabakti
18192
1349867
wikitext
text/x-wiki
{{ {{#if:{{{lang|}}}|check deprecated lang param usage|no deprecated lang param usage}}|lang={{{lang|}}}|<!--
-->{{#invoke:form of/templates|form_of_t|ragam bentuk {{#invoke:labels/templates/show_from|show_from|default=}} dari|withencap=1|ignore=from:list,nocat}}<!--
-->}}<!--
--><noinclude>{{dokumentasi}}</noinclude>
98hn20lgn77yvttjirujbquoyhb2qpf
Templat:sinonim dari/dokumentasi
10
268028
1349874
1149926
2026-04-14T14:09:40Z
Swarabakti
18192
1349874
wikitext
text/x-wiki
{{subhalaman dokumentasi}}
===Kegunaan===
Untuk menampilkan pengalihan tidak langsung dari baris definisi ke entri yang bersinonim dengan penjabaran lengkap. ''Bukan'' untuk penjabaran sinonim dari sebuah definisi.
===Contoh pemanggilan===
Di entri bahasa Indonesia untuk {{sebut|id|beta}}:
<pre>
# {{sinonim dari|id|saya}}
</pre>
# {{sinonim dari|id|saya}}<includeonly>
[[Kategori:Templat bentuk dari]]</includeonly>
bimhkvdzge48gfvf3v5qj3ahfyw18wk
Templat:cardinalbox
10
270701
1349905
1109662
2026-04-15T06:43:16Z
DelintBot
47600
Replacing [[mw:Help:Lint errors/obsolete-tag|obsolete tags]]
1349905
wikitext
text/x-wiki
{| class="wikitable"
|-
! colspan="3" | Bilangan Kardinal {{bahasa|{{{1|}}}}}<noinclude>Bahasa ABC</noinclude>
|-
|<div style="text-align: center;"><small>[[{{{5|}}}|< {{{2|}}}]]</small></div>
|<big><div style="text-align: center;">'''{{{3|}}}'''</div></big>
|<div style="text-align: center;"><small>[[{{{6|}}}|{{{4|}}} >]]</small></div>
|-
| colspan="3" |<div style="text-align: center;">''[[bilangan kardinal|Kardinal]]'': {{#if:{{{car|}}}|[[{{{car|}}}]]|[[{{PAGENAME}}#{{ {{{1|}}} }}|{{PAGENAME}}]]}}{{#if:{{{ord|}}}|<br>''[[Bilangan ordinal|Ordinal]]'': [[{{{ord|}}}]]}}</div>
|}
fj7olfisnrnqyo1c6u0t92q44qheskx
Templat:kardinal
10
270705
1349910
1276384
2026-04-15T06:43:19Z
DelintBot
47600
Replacing [[mw:Help:Lint errors/obsolete-tag|obsolete tags]]
1349910
wikitext
text/x-wiki
{| class="wikitable" style="margin:auto;"
|-
! colspan="3" | Bilangan kardinal {{bahasa|{{{1|}}}|nocap=1}}<noinclude><nowiki>{{{1}}}</nowiki></noinclude>
|-
|<includeonly><div style="text-align: center;"><small>{{#ifeq:{{{2|}}}|0|{{Spasi}}–{{Spasi}}|[[{{{5|}}}|< {{{2|}}}]]}}</small></div></includeonly><noinclude><div style="text-align: center;"><nowiki>{{{5}}}{{{2}}}</nowiki></div></noinclude>
|<includeonly><big><div style="text-align: center;">'''{{{3|}}}'''</div></big></includeonly><noinclude><div style="text-align: center;"><nowiki>{{{3}}}</nowiki></div></noinclude>
|<includeonly><div style="text-align: center;"><small>[[{{{6|}}}|{{{4|}}} >]]</small></div></includeonly><noinclude><div style="text-align: center;"><nowiki>{{{6}}}{{{4}}}</nowiki></div></noinclude>
|-
| colspan="3" |<div style="text-align: center;">''[[bilangan kardinal|Kardinal]]'': {{#if:{{{car|}}}|[[{{{car|}}}]]|[[{{PAGENAME}}#{{ {{{1|}}} }}|{{PAGENAME}}]]}}{{#if:{{{ord|}}}|<br>''[[Bilangan ordinal|Ordinal]]'': [[{{{ord|}}}]]}}</div>
|}
fge44abhptp60lbmf7rrar0bv41on65
Templat:kontraksi dari
10
271555
1349878
1277654
2026-04-14T14:12:53Z
Swarabakti
18192
1349878
wikitext
text/x-wiki
{{ {{#if:{{{lang|}}}|check deprecated lang param usage|no deprecated lang param usage}}|lang={{{lang|}}}|<!--
-->{{#invoke:form of/templates|form_of_t|[[Lampiran:Glosarium#kontraksi|kontraksi]] dari|cat=contractions|withencap=1|with_multiple_parts=1}}<!--
-->}}<!--
--><noinclude>{{dokumentasi}}</noinclude>
jw6nf6w3l1ncxxlrrj3sr63yu4jy4y3
1349881
1349878
2026-04-14T14:16:37Z
Swarabakti
18192
1349881
wikitext
text/x-wiki
{{ {{#if:{{{lang|}}}|check deprecated lang param usage|no deprecated lang param usage}}|lang={{{lang|}}}|<!--
-->{{#invoke:form of/templates|form_of_t|[[Lampiran:Glosarium#kontraksi|kontraksi]] dari|withencap=1|with_multiple_parts=1}}<!--
-->}}<!--
--><noinclude>{{dokumentasi}}</noinclude>
f6zbwbq3li3wply573ipcpu0hfhkmuq
neeko
0
273243
1349960
1330336
2026-04-15T08:07:57Z
DelintBot
47600
Removing [[mw:Help:Lint errors/bogus-image-options|bogus image options]]
1349960
wikitext
text/x-wiki
=={{bahasa|hts}}==
{{kepala|hts}}
: {{AFI|id|/neʔeko/}}
[[File:Olive baboon Ngorongoro.jpg|Olive_baboon_Ngorongoro|thumb|250px]]
{{-n-|hts}}
# [[babun]]
{{-rujukan-}}
* [https://www.facebook.com/reel/892220150337495/?mibextid=rS40aB7S9Ucbxw6v: Video Facebook Musa Herry (Animal sound) Seorang suku Hadzabe menirukan suara hewan-hewan]
[[Kategori:hts:Hewan]]
k2mhjlawkmbnbkxya190dsl7sdcjiej
biwara
0
273396
1349957
1345279
2026-04-15T08:07:54Z
DelintBot
47600
Removing [[mw:Help:Lint errors/bogus-image-options|bogus image options]]
1349957
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id}}
: {{pemenggalan|id|bi|wa|ra}} {{AFI|id|/bi.ˈwa.ra/}}
[[File:North American Beaver, Humber River near Kleinburg, Ontario (39637607974).jpg|North_American_Beaver,_Humber_River_near_Kleinburg,_Ontario_(39637607974)]|thumb|250px|Seekor biwara di tepi sungai]]
{{-n-|id}}
# mamalia pengerat semiakuatik bermarga ''Castor'', dikenal dengan kebiasaannya membendung sungai menggunakan batang pohon, batu, lumpur, dan ranting, endemik di Amerika Utara dan Eurasia; {{Species|Castor}} <span style="color:green">''spp''.</span>
{{-etimologi-}}
* Serapan terpelajar (''learned borrowing'') dari bahasa Inggris "''beaver''" oleh Maria Sanjayani. Muncul perdana dalam sebuah buku terjemahan berjudul "Biwara dan Cucurut" (1996), hasil alihbahasa dari judul asli "''Beaver and Shrew''".<ref>Julivert, Maria Angels; Sanjayani, Maria (alihbahasa). 1996. ''Biwara dan Cucurut''. Jakarta: Elex Media Komputindo. ISBN 979-637-708-X. Katalog Perpustakaan Nasional RI: https://web.archive.org/web/20231002211739/https://opac.perpusnas.go.id/DetailOpac.aspx?id=238182</ref>
{{-rujukan-}}
<references/>
{{-bacaan-}}
* {{R:KBBI Daring}}
[[Kategori:id:Hewan]]
19klpwe84dx1cqm85mkx4xgur5vbjeo
1349966
1349957
2026-04-15T08:15:06Z
Redmin
44783
1349966
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id}}
: {{pemenggalan|id|bi|wa|ra}} {{AFI|id|/bi.ˈwa.ra/}}
[[File:North American Beaver, Humber River near Kleinburg, Ontario (39637607974).jpg|thumb|250px|Seekor biwara di tepi sungai]]
{{-n-|id}}
# mamalia pengerat semiakuatik bermarga ''Castor'', dikenal dengan kebiasaannya membendung sungai menggunakan batang pohon, batu, lumpur, dan ranting, endemik di Amerika Utara dan Eurasia; {{Species|Castor}} <span style="color:green">''spp''.</span>
{{-etimologi-}}
* Serapan terpelajar (''learned borrowing'') dari bahasa Inggris "''beaver''" oleh Maria Sanjayani. Muncul perdana dalam sebuah buku terjemahan berjudul "Biwara dan Cucurut" (1996), hasil alihbahasa dari judul asli "''Beaver and Shrew''".<ref>Julivert, Maria Angels; Sanjayani, Maria (alihbahasa). 1996. ''Biwara dan Cucurut''. Jakarta: Elex Media Komputindo. ISBN 979-637-708-X. Katalog Perpustakaan Nasional RI: https://web.archive.org/web/20231002211739/https://opac.perpusnas.go.id/DetailOpac.aspx?id=238182</ref>
{{-rujukan-}}
<references/>
{{-bacaan-}}
* {{R:KBBI Daring}}
[[Kategori:id:Hewan]]
67q5k6v4yvkkvf4n6302tudmjky6rzh
Lampiran:Daftar Swadesh bahasa Urdu
102
274106
1349927
1347856
2026-04-15T07:06:23Z
Mbee-wiki
9667
/* Daftar */
1349927
wikitext
text/x-wiki
==Presentasi==
{{Swadesh list presentation}}
==Daftar==
{{Daftar Swadesh
|language=bahasa Urdu
|nativename=
<!--saya, aku--> |wrd001= [[میں]] (ma͠i)
<!--kamu, engkau-->|wrd002= [[آپ]] (āp), [[تم]] (tum)
<!--dia--> |wrd003= [[وہ]] (woh), [[یہ]] (yeh)
<!--kami, kita--> |wrd004= [[ہم]] (ham)
<!--kalian--> |wrd005= [[آپ]] (āp), [[تم]] (tum)
<!--mereka--> |wrd006= [[وہ]] (woh), [[یہ]] (yeh)
<!--ini--> |wrd007= [[یہ]] (yeh)
<!--itu--> |wrd008= [[وہ]] (woh)
<!--di sini--> |wrd009= [[یہاں]] (yahā̃)
<!--di sana--> |wrd010= [[وہاں]] (wahā̃)
<!--siapa--> |wrd011= [[کون]] (kaun)
<!--apa--> |wrd012= [[کیا]] (kyā)
<!--di mana--> |wrd013= [[کدھر]] (kidhar)
<!--kapan--> |wrd014= [[کب]] (kab)
<!--bagaimana--> |wrd015= [[کیسے]] (kaise)
<!--bukan, tidak-->|wrd016= [[نہیں]] (nahī̃)
<!--semua--> |wrd017= [[سب]] (sab)
<!--banyak--> |wrd018= [[بہت]] (bahut)
<!--beberapa (few)--> |wrd019= [[چند]] (cand)
<!--sedikit--> |wrd020= [[چند]] (cand)
<!--lain--> |wrd021= [[دیگر]] (dīgar)
| <!-- angka --> |
<!--satu--> |wrd022= [[ایک]] (ek)
<!--dua--> |wrd023= [[دو]] (do)
<!--tiga--> |wrd024= [[تین]] (tīn)
<!--empat--> |wrd025= [[چار]] (cār)
<!--lima--> |wrd026= [[پانچ]] (pānc)
| <!-- ukuran --> |
<!--besar--> |wrd027= [[بڑا]] (baṛā)
<!--panjang--> |wrd028= [[لمبا]] (lambā)
<!--lebar--> |wrd029= [[چوڑا]] (cauṛā)
<!--tebal--> |wrd030= [[موٹا]] (moṭā)
<!--berat--> |wrd031= [[بھاری]] (bhārī)
<!--kecil--> |wrd032= [[چھوٹا]] (choṭā)
<!--pendek--> |wrd033= [[چھوٹا]] (choṭā)
<!--sempit--> |wrd034= [[تنگ]] (taṅg)
<!--tipis--> |wrd035= [[پتلا]] (patlā)
| <!-- orang --> |
<!--wanita--> |wrd036= [[عورت]] ('aurat)
<!--pria--> |wrd037= [[آدمی]] (ādmī)
<!--manusia--> |wrd038= [[آدمی]] (ādmī)
<!--anak--> |wrd039= [[بچہ]] (baccāh)
<!--istri--> |wrd040= [[بیوی]] (bīwī)
<!--suami--> |wrd041= [[شوہر]] (syauhar)
<!--ibu--> |wrd042= [[ماں]] (mā̃), [[والده]] (wālidah)
<!--ayah--> |wrd043= [[باپ]] (bāp), [[والد]] (wālid)
| <!-- hewan --> |
<!--binatang--> |wrd044= [[جانور]] (jānwar)
<!--ikan--> |wrd045= [[مچھلی]] (machlī)
<!--burung--> |wrd046= [[پرندہ]] (parindah)
<!--anjing--> |wrd047= [[کتا]] (kuttā)
<!--kutu--> |wrd048= [[جوں]] (jū̃)
<!--ular--> |wrd049= [[سانپ]] (sāṅp)
<!--cacing--> |wrd050= [[کیڑا]] (kīṛā)
| <!-- tanaman --> |
<!--pohon--> |wrd051= [[درخت]] (darakht)
<!--hutan--> |wrd052= [[جنگل]] (jaṅgal)
<!--ranting--> |wrd053= [[ڈنڈا]] (ḍanḍā)
<!--buah--> |wrd054= [[پھل]] (phal)
<!--biji--> |wrd055= [[بیج]] (bīj)
<!--daun--> |wrd056= [[پتا]] (pattā)
<!--akar--> |wrd057= [[جڑ]] (jaṛ)
<!--kulit kayu--> |wrd058= [[چھال]] (chāl)
<!--bunga--> |wrd059= [[پھول]] (phūl)
<!--rumput--> |wrd060= [[گھاس]] (ghās)
<!--tali--> |wrd061= [[رسی]] (rassī)
| <!-- tubuh --> |
<!--kulit--> |wrd062= [[جلد]] (jild)
<!--daging--> |wrd063= [[گوشت]] (gośt)
<!--darah--> |wrd064= [[خون]] (khūn)
<!--tulang--> |wrd065= [[ہڈی]] (haḍḍī)
<!--lemak--> |wrd066= [[چربی]] (carbī)
<!--telur--> |wrd067= [[انڈہ]] (anḍā)
<!--tanduk--> |wrd068= [[سینگ]] (sīṅg)
<!--ekor--> |wrd069= [[دم]] (dum)
<!--bulu--> |wrd070= [[پر]] (par)
<!--rambut--> |wrd071= [[بال]] (bāl)
<!--kepala--> |wrd072= [[سر]] (sar)
<!--telinga--> |wrd073= [[کان]] (kān)
<!--mata--> |wrd074= [[آنکھ]] (ā̃kh)
<!--hidung--> |wrd075= [[ناک]] (nāk)
<!--mulut--> |wrd076= [[منہ]] (munh)
<!--gigi--> |wrd077= [[دانت]] (dānt)
<!--lidah--> |wrd078= [[زبان]] (zabān)
<!--kuku--> |wrd079= [[ناخن]] (nākhun)
<!--kaki--> |wrd080= [[پاؤں]] (pāõ)
<!--telapak kaki-->|wrd081= [[ٹانگ]] (ṭāṅg)
<!--lutut--> |wrd082= [[گھٹنا]] (ghuṭnā)
<!--tangan--> |wrd083= [[ہاتھ]] (hāth)
<!--sayap--> |wrd084= [[پر]] (par)
<!--perut--> |wrd085= [[پیٹ]] (peṭ)
<!--usus--> |wrd086= [[اندرون]] (andarūn)
<!--leher--> |wrd087= [[گردن]] (gardan)
<!--punggung--> |wrd088= [[پیٹھ]] (pīṭh)
<!--payudara--> |wrd089= [[سینہ]] (sīnā)
<!--jantung--> |wrd090= [[دل]] (dil)
<!--hati--> |wrd091= [[جگر]] (jigar)
| <!-- verba --> |
<!--meminum--> |wrd092= [[پینا]] (pīnā)
<!--memakan--> |wrd093= [[کھانا]] (khānā)
<!--menggigit--> |wrd094= [[کاٹنا]] (kāṭnā)
<!--menghisap--> |wrd095= [[چوسنا]] (cūsnā)
<!--meludah--> |wrd096= [[تھوکنا]] (thūknā)
<!--muntah--> |wrd097= [[قے کرنا]] (qai karnā)
<!--meniup--> |wrd098= [[پھونکنا]] (phū̃knā)
<!--bernafas--> |wrd099= [[سانس لینا]] (sā̃ns lenā)
<!--tertawa--> |wrd100= [[ہنسنا]] (hãsnā)
<!--melihat--> |wrd101= [[دیکھنا]] (dekhnā)
<!--mendengar--> |wrd102= [[سننا]] (sunnā)
<!--mengetahui--> |wrd103= [[جاننا]] (jānnā)
<!--berpikir--> |wrd104= [[سوچنا]] (socnā)
<!--mencium--> |wrd105= [[سونگھنا]] (sū̃ghnā)
<!--takut--> |wrd106= [[ڈرنا]] (ḍarnā)
<!--tidur--> |wrd107= [[سونا]] (sonā)
<!--hidup--> |wrd108= [[جینا]] (jīnā)
<!--mati--> |wrd109= [[مرنا]] (marnā)
<!--membunuh--> |wrd110= [[مارنا]] (mārnā)
<!--berkelahi--> |wrd111= [[لڑنا]] (laṛnā)
<!--berburu--> |wrd112= [[شکار کرنا]] (śikār karnā)
<!--memukul--> |wrd113= [[مارنا]] (mārnā)
<!--memotong--> |wrd114= [[کاٹنا]] (kāṭnā)
<!--membelah--> |wrd115= [[پھاڑنا]] (phāṛnā)
<!--menusuk--> |wrd116= [[بھونکنا]] (bhūṅknā)
<!--mencoret--> |wrd117= [[کھرچنا]] (khuracnā)
<!--menggali--> |wrd118= [[کھودنا]] (khodnā)
<!--berenang--> |wrd119= [[تیرنا]] (tairnā)
<!--terbang--> |wrd120= [[اڑنا]] (uṛnā)
<!--berjalan--> |wrd121= [[چلنا]] (calnā)
<!--datang--> |wrd122= [[آنا]] (ānā)
<!--berbaring--> |wrd123= [[لیٹنا]] (leṭnā)
<!--duduk--> |wrd124= [[بیٹھنا]] (baiṭhnā)
<!--berdiri--> |wrd125= [[کھڑا ہونا]] (khaṛā honā)
<!--berbelok--> |wrd126= [[مڑنا]] (muṛnā)
<!--jatuh--> |wrd127= [[گرنا]] (girnā)
<!--memberi--> |wrd128= [[دینا]] (denā)
<!--memegang--> |wrd129= [[پکڑنا]] (pakaṛnā)
<!--memeras--> |wrd130= [[دبانا]] (dabānā)
<!--menggosok--> |wrd131= [[ملنا]] (malnā)
<!--mencuci--> |wrd132= [[دھونا]] (dhonā)
<!--menghapus--> |wrd133= [[پونچھنا]] (poñchnā)
<!--menarik--> |wrd134= [[کھینچنا]] (khīncnā)
<!--mendorong--> |wrd135= [[دھکا دینا]] (dhakkā denā)
<!--melempar--> |wrd136= [[پھین٘کْنا]] (pheṅknā)
<!--mengikat--> |wrd137= [[باندھنا]] (bā̃dhnā)
<!--menjahit--> |wrd138= [[سینا]] (sīnā)
<!--menghitung--> |wrd139= [[گننا]] (ginnā)
<!--berkata--> |wrd140= [[کہنا]] (kahnā), [[بولنا]] (bolnā)
<!--bernyanyi--> |wrd141= [[گانا]] (gānā)
<!--bermain--> |wrd142= [[کھیلنا]] (khelnā)
<!--mengapung--> |wrd143= [[تیرنا]] (tairnā)
<!--mengalir--> |wrd144= [[بہنا]] (bahnā)
<!--membeku--> |wrd145= [[جمنا]] (jamnā)
<!--membengkak--> |wrd146= [[سوجنا]] (sūjnā)
| <!-- alam --> |
<!--matahari--> |wrd147= [[سورج]] (sūraj)
<!--bulan--> |wrd148= [[چاند]] (cānd)
<!--bintang--> |wrd149= [[ستارہ]] (sitārā)
<!--air--> |wrd150= [[پانی]] (pānī)
<!--hujan--> |wrd151= [[ฝน]] (fǒn)
<!--sungai--> |wrd152= [[แม่น้ำ]] (mâenáam)
<!--danau--> |wrd153= [[ทะเลสาบ]] (thaleesàap)
<!--laut--> |wrd154= [[ทะเล]] (thalee)
<!--garam--> |wrd155= [[เกลือ]] (klʉa)
<!--batu--> |wrd156= [[หิน]] (hǐn)
<!--pasir--> |wrd157= [[ทราย]] (saay)
<!--debu--> |wrd158= [[ฝุ่น]] (fùn), [[ละออง]] (la?ɔɔŋ), [[ผง]] (phǒŋ)
<!--bumi--> |wrd159= [[ดิน]] (din), [[พื้นดิน]] (phʉ́ʉndin)
<!--awan--> |wrd160= [[เมฆ]] (mêek)
<!--kabut--> |wrd161= [[หมอก]] (mɔ̀ɔk)
<!--langit--> |wrd162= [[ฟ้า]] (fáa)
<!--angin--> |wrd163= [[ลม]] (lom), [[วาต]] (wâat)
<!--salju--> |wrd164= [[หิมะ]] (himá)
<!--es--> |wrd165= [[น้ำแข็ง]] (námkhǎeŋ)
<!--asap--> |wrd166= [[ควัน]] (khwan)
<!--api--> |wrd167= [[ไฟ]] (fay)
<!--abu--> |wrd168= [[เถ้า]] (thâo), [[ขี้เถ้า]] (khîithâo)
<!--bakar--> |wrd169= [[เผา]] (phǎo), [[ไหม้]] (mây)
<!--jalan--> |wrd170= [[ทาง]] (thaaŋ), [[หน]] (hǒn), [[ถนน]] (thànǒn)
<!--gunung--> |wrd171= [[ภูเขา]] (phuukhǎo), [[ดอย]] (dɔɔy), [[โคก]] (khôok)
| <!-- warna --> |
<!--merah--> |wrd172= [[سرخ]] (surkh)
<!--hijau--> |wrd173= [[سبز]] (sabz)
<!--kuning--> |wrd174= [[پیلا]] (pīlā)
<!--putih--> |wrd175= [[سفید]] (safed)
<!--hitam--> |wrd176= [[کالا]] (kālā)
| <!-- waktu --> |
<!--malam--> |wrd177= [[رات]] (rāt)
<!--hari--> |wrd178= [[دن]] (din)
<!--tahun--> |wrd179= [[سال]] (sāl)
| <!-- lain2 --> |
<!--hangat--> |wrd180= [[ร้อน]] (rɔ́ɔn), [[อุ่น]] (ùn)
<!--dingin--> |wrd181= [[หนาว]] (nǎaw), [[เย็น]] (yen)
<!--penuh--> |wrd182= [[เต็ม]] (tem)
<!--baru--> |wrd183= [[ใหม่]] (mày), [[นว]] (náwá)
<!--lama, tua--> |wrd184= [[เก่า]] (kàw), [[แก่]] (kàeae)
<!--baik--> |wrd185= [[ดี]] (dii)
<!--buruk--> |wrd186= [[ชั่ว]] (chûa), [[เลว]] (leew), [[ร้าย]] (ráay)
<!--busuk--> |wrd187= [[เน่า]] (nâo)
<!--kotor--> |wrd188= [[สกปรก]] (sòkkapròk)
<!--lurus--> |wrd189= [[ตรง]] (troŋ), [[ดิ่ง]] (dìŋ)
<!--bulat--> |wrd190= [[กลม]] (klom), [[มน]] (mon)
<!--tajam--> |wrd191= [[คม]] (khom), [[แหลม]] (lăeaem)
<!--tumpul--> |wrd192= [[ทื่อ]] (thʉ̂ʉ)
<!--licin--> |wrd193= [[เกลี้ยง]] (klîiaŋ), [[ละมุน]] (lámun)
<!--basah--> |wrd194= [[เปียก]] (pìak)
<!--kering--> |wrd195= [[แห้ง]] (hâeaeŋ)
<!--betul--> |wrd196= [[ถูก]] (thùuk)
<!--dekat--> |wrd197= [[ใกล้]] (klây)
<!--jauh--> |wrd198= [[ไกล]] (klay)
<!--kanan--> |wrd199= [[دایاں]] (dāyā̃)
<!--kiri--> |wrd200= [[بایاں]] (bāyā̃)
<!--di--> |wrd201= [[پر]] (par)
<!--dalam--> |wrd202= [[میں]] (mẽ)
<!--dengan--> |wrd203= [[کے ساتھ]] (ke sāth)
<!--dan--> |wrd204= [[اور]] (aur)
<!--kalau--> |wrd205= [[اگر]] (agar)
<!--karena--> |wrd206= [[کیونکہ]] (kyūṅki)
<!--nama--> |wrd207= [[نام]] (nām)
}}
==Sumber==
* [https://archive.org/details/rosettaproject_urd_swadesh-1 Urdu Swadesh List], Rosetta Project
{{Kotak bawah Swadesh}}
[[Kategori:Daftar Swadesh|Urdu]]
[[Kategori:Bahasa Urdu|Swadesh]]
dn6kfg5zff8rlfsxcmugih9vrl5yyvw
adalang
0
274366
1349969
1332282
2026-04-15T08:15:49Z
Redmin
44783
1349969
wikitext
text/x-wiki
=={{bahasa|bgz}}==
{{kepala|bgz}}
: {{pemenggalan|id|a|da|lang}} {{AFI|id|/adalaŋ/}}
[[File:Domestic horse at Suryachaur and the mountains in the back1.jpg|thumb|250px|''adalang'']]
{{-n-|bgz}}
# [[kuda]]
{{-sinonim-}}
* [[ajalan]]
{{-rujukan-}}
* [https://banggai-indonesia.blogspot.com/2023/06/adalang.html?m=1 Kamus Banggai-Indonesia (Banggai-Indonesian Dictionary)]
[[Kategori:bgz:Mamalia]]
[[Kategori:bgz:Hewan]]
[[Kategori:bgz:Nomina]]
[[Kategori:bgz:Lema]]
dvx8uta7us2xig2hb31otgrnxrbe3uu
kuda nil
0
277591
1349968
1338004
2026-04-15T08:15:35Z
Redmin
44783
1349968
wikitext
text/x-wiki
=={{bahasa|id}}==
{{kepala|id}}
: {{pemenggalan|id|ku|da nil|}} {{AFI|id|/ˌkuda ˈnil/}}
[[File:Hipopótamo (Hippopotamus amphibius), parque nacional de Chobe, Botsuana, 2018-07-28, DD 82.jpg|thumb|250px|Seekor kuda nil dan burung kuntul kerbau di Taman Nasional Chobe, Botswana]]
{{-n-|id}}
# mamalia daratan termasuk ke dalam kelompok herbivor yang sebagian besar kehidupannya dilewatkan dalam air, kepala dan mulutnya besar dan lebar, kulit sangat tebal, berkaki pendek; badak air; hipopotamus; {{Species| Hippopotamus amphibius}}
{{-etimologi-}}
* Pinjam terjemah dari bahasa Belanda ''nijlpaard''; kompositum dari ''Nijl'' (yang berarti "Sungai Nil") dan ''paard'' (yang bermakna "kuda").<ref>“[https://web.archive.org/web/20251230102939/https://www.kompas.com/tren/read/2025/02/18/213000465/serba-serbi-kuda-nil Serba-serbi Kuda Nil]”. ''Kompas.com''. Diarsipkan dari versi [https://www.kompas.com/tren/read/2025/02/18/213000465/serba-serbi-kuda-nil asli] tanggal 30 Desember 2025. (dalam bahasa Indonesia).</ref>
{{-rujukan-}}
<references/>
{{-bacaan-}}
* {{R:KBBI Daring}}
[[Kategori:id:Mamalia]]
0uzbpemkq5fcwcivo332bil66uy28yg
Pengguna:Swarabakti/Gadget-EntryTabber.js
2
280906
1350020
1349783
2026-04-15T11:19:01Z
Swarabakti
18192
1350020
javascript
text/javascript
// Modified from [[en:MediaWiki:Gadget-TabbedLanguages.js]]
var newNode = window.newNode = function newNode(tagname) {
var node = document.createElement(tagname);
for (var i = 1; i < arguments.length; i++) {
var argument = arguments[i];
if (typeof argument === 'string') {
node.appendChild(document.createTextNode(argument));
} else if (argument && typeof argument === 'object') {
if (argument instanceof Node) {
node.appendChild(argument);
} else {
for (var j in argument) {
if (j === 'class') {
node.className = argument[j];
} else if (j === 'style') {
node.style.cssText = argument[j];
} else if (typeof argument[j] === 'function') {
node.addEventListener(j, argument[j], false);
} else {
node.setAttribute(j, argument[j]);
}
}
}
}
}
return node;
};
(function ($) {
if (($.cookie('disable-tabbed-languages') !== null) || (location.search.indexOf('tabbedlanguages=off') !== -1)) {
return;
}
if (!((mw.config.get('wgNamespaceNumber') === 0) || (mw.config.get('wgPageName') === 'Wiktionary:Sandbox'))) {
return;
}
var bodyContent = $('.mw-content-ltr .mw-parser-output')[0],
languageLinks,
ttr,
languageButtons,
caption,
bodyContentFragment,
complete = false,
MO = window.MutationObserver || window.WebKitMutationObserver,
observerStyleSheet;
function getBodyContent() {
if (!bodyContent) {
bodyContent = $('.mw-content-ltr .mw-parser-output')[0] || $('.mw-content-ltr')[0] || null;
}
return bodyContent;
}
function getHeaderContent(elem) {
return elem && elem.nodeName === 'H2' ?
elem.getElementsByClassName('mw-headline')[0] :
elem && elem.getElementsByTagName('H2')[0];
}
function getHeaderCode(elem) {
if (!elem) return '';
var header = getHeaderContent(elem);
if (header && header.querySelector) {
var codeNode = header.querySelector('[data-code]');
if (codeNode) {
return codeNode.getAttribute('data-code') || codeNode.dataset.code || '';
}
}
return '';
}
function getCategoryCode(catfull) {
var m = /^(?:[^:]+:)?([^:]+):/.exec(catfull || '');
return m ? m[1].trim() : '';
}
function getCategoryBoxLabel(code, name) {
return 'Kategori';
}
function setTabCode(index, code) {
if (!code) return;
window.languageTabCodes[index] = code;
window.languageCodeToIndex[code] = index;
var container = window.languageContainers[index];
if (container) {
container.setAttribute('data-code', code);
}
}
function getTabIndexByCode(code) {
if (!code) return -1;
return Object.prototype.hasOwnProperty.call(window.languageCodeToIndex, code) ? window.languageCodeToIndex[code] : -1;
}
function isSpecialCategoryName(catname) {
return /letter\snames$|script\scharacters$|mythology$/i.test(catname);
}
function makeTabsfromScratch() {
window.tabbedLanguages = [];
window.languageContainers = [];
window.languageTabCodes = [];
window.languageCodeToIndex = {};
window.currentLanguageTab = 0;
window.languageHeaderEditButtons = [];
languageButtons = [];
window.tabstable = newNode('table', { id: 'tabstable' },
newNode('tbody',
ttr = newNode('tr',
newNode('td', { 'style': 'padding-top:0px;vertical-align:top;' },
newNode('table', { 'style': 'margin-top: -2px;' },
languageLinks = newNode('tbody', { id: 'languageLinks' }))))));
bodyContentFragment = document.createDocumentFragment();
complete = false;
var catlinks = document.getElementById('catlinks');
if (getBodyContent() && catlinks) {
allAtOnce();
}
}
function newCategoryBox(container, name, code) {
var box = newNode('div', { 'class': 'catlinks tabbed-catlinks', 'data-code': code || '' },
newNode('span', { 'class': 'tabbed-category-label' }, getCategoryBoxLabel(code, name) + ': '),
newNode('ul'));
return container.appendChild(box);
}
function newTab(index, language, code) {
var active = index === window.currentLanguageTab,
languageContainer = ttr.appendChild(newNode('td', {
'class': 'languageContainer',
'id': language + 'container',
'data-code': code || ''
}, active ? undefined : { 'style': 'display:none;' }));
window.languageContainers.push(languageContainer);
window.languageTabCodes[index] = code || '';
if (code) {
window.languageCodeToIndex[code] = index;
}
newCategoryBox(languageContainer, language, code || '');
languageButtons.push(
languageLinks.appendChild(newNode('tr', newNode('td', {
'class': (active ? '' : 'un') + 'selectedTab'
}, newNode('a', language, {
'href': location.pathname + location.search + '#' + language.replace(/ /g, '_')
}), ' '))).firstChild
);
}
function isHeader(elem) {
return elem && elem.nodeType === Node.ELEMENT_NODE && (
elem.nodeName === 'H2' && elem.getElementsByClassName('mw-headline').length !== 0 ||
elem.classList && elem.classList.contains('mw-heading2') && elem.getElementsByTagName('H2').length !== 0
);
}
function getHeaderInfo(elem) {
var header = getHeaderContent(elem);
return {
text: header && (header.innerText || header.textContent) || '',
code: getHeaderCode(elem)
};
}
function allAtOnce() {
var body = getBodyContent(),
languageContainer,
child;
while (body.firstChild) {
if (body.firstChild.nodeName === 'SECTION') {
while (body.firstChild.firstChild) bodyContentFragment.appendChild(body.firstChild.firstChild);
body.removeChild(body.firstChild);
} else {
bodyContentFragment.appendChild(body.firstChild);
}
}
try {
for (child = bodyContentFragment.firstChild; child && !isHeader(child); ) {
child = child.nextSibling;
}
if (child) bodyContentFragment.insertBefore(tabstable, child);
var currentChild = tabstable.nextSibling;
while (currentChild && currentChild.className !== 'printfooter' && currentChild.className !== 'catlinks') {
var nextSibling = currentChild.nextSibling;
if (isHeader(currentChild)) {
var info = getHeaderInfo(currentChild),
editspan = currentChild.getElementsByClassName('mw-editsection')[0],
index = window.tabbedLanguages.length;
window.tabbedLanguages.push(info.text);
newTab(index, info.text, info.code);
if (editspan) {
if (!caption) {
caption = document.createElement('caption');
tabstable.insertBefore(caption, tabstable.firstChild);
}
window.languageHeaderEditButtons[index] = editspan;
if (index === window.currentLanguageTab) {
caption.appendChild(editspan);
}
}
languageContainer = window.languageContainers[index];
bodyContentFragment.removeChild(currentChild);
} else if (languageContainer) {
if (currentChild.nodeName !== 'HR') {
languageContainer.insertBefore(currentChild, languageContainer.lastChild);
} else {
bodyContentFragment.removeChild(currentChild);
}
}
currentChild = nextSibling;
}
sortCats();
body.appendChild(bodyContentFragment);
setUpHashChange()();
if (location.hash === '' && window.tabbedLanguages.length > 0) {
location.replace('#' + window.tabbedLanguages[window.currentLanguageTab]);
}
complete = true;
} catch (e) {
console.error("TabbedLanguages Error:", e);
body.appendChild(bodyContentFragment);
}
}
function sortCats() {
var catDiv = document.getElementById('mw-normal-catlinks');
if (!catDiv) return;
var ul = catDiv.getElementsByTagName('ul')[0];
if (!ul) return;
var cats = ul.getElementsByTagName('li'),
items = Array.prototype.slice.call(cats),
fragments = window.languageContainers.map(function() {
return document.createDocumentFragment();
});
items.forEach(function(li) {
var a = li.getElementsByTagName('a')[0];
if (!a) return;
var fullCatName = a.getAttribute('title') || '';
var code = getCategoryCode(fullCatName);
var targetIndex = getTabIndexByCode(code);
if (targetIndex === -1 && !isSpecialCategoryName(a.textContent)) {
for (var i = 0; i < window.tabbedLanguages.length; i++) {
if (a.textContent.indexOf(window.tabbedLanguages[i]) === 0) {
targetIndex = i;
break;
}
}
}
if (targetIndex === -1) return;
if (fragments[targetIndex]) fragments[targetIndex].appendChild(li);
});
fragments.forEach(function(frag, idx) {
if (frag.firstChild) {
var list = window.languageContainers[idx].querySelector('.tabbed-catlinks ul');
if (list) list.appendChild(frag);
}
});
catDiv.style.display = '';
var hiddenCats = document.getElementById('mw-hidden-catlinks');
if (hiddenCats) hiddenCats.style.display = '';
}
function setUpHashChange() {
function decodeHash(hash) {
return decodeURI(hash.replace(/\.(?=[0-9A-F]{2})/g, '%').replace(/_/g, ' '));
}
window.toggleLanguageTabs = function (language) {
var destIdx = $.inArray(language, window.tabbedLanguages);
if (destIdx === -1) {
var decoded = decodeHash(language);
destIdx = $.inArray(decoded, window.tabbedLanguages);
}
if (destIdx !== -1 && destIdx !== window.currentLanguageTab) {
languageButtons[window.currentLanguageTab].className = 'unselectedTab';
window.languageContainers[window.currentLanguageTab].style.display = 'none';
window.currentLanguageTab = destIdx;
languageButtons[destIdx].className = 'selectedTab';
window.languageContainers[destIdx].style.display = '';
if (caption) {
while (caption.firstChild) caption.removeChild(caption.firstChild);
if (window.languageHeaderEditButtons[destIdx]) {
caption.appendChild(window.languageHeaderEditButtons[destIdx]);
}
}
}
};
window.onhashchange = function() {
toggleLanguageTabs(decodeHash(location.hash.substr(1)));
};
return function() {
if (location.hash) toggleLanguageTabs(decodeHash(location.hash.substr(1)));
};
}
$(document).ready(makeTabsfromScratch);
})(window.jQuery);
9sfihxszs453ydqqi3zr00rnso481mo
Kategori:id:Istilah dengan contoh kalimat
14
280925
1349809
2026-04-14T12:29:47Z
Swarabakti
18192
←Membuat halaman berisi '{{kategori otomatis}}'
1349809
wikitext
text/x-wiki
{{kategori otomatis}}
tka0fgn87px6unlh07hbwnzmlebon2d
Kategori:Istilah dengan contoh kalimat menurut bahasa
14
280926
1349810
2026-04-14T12:30:52Z
Swarabakti
18192
←Membuat halaman berisi '{{kategori otomatis}}'
1349810
wikitext
text/x-wiki
{{kategori otomatis}}
tka0fgn87px6unlh07hbwnzmlebon2d
Kategori:lod:Lema
14
280927
1349812
2026-04-14T12:31:26Z
Swarabakti
18192
←Membuat halaman berisi '{{kategori otomatis}}'
1349812
wikitext
text/x-wiki
{{kategori otomatis}}
tka0fgn87px6unlh07hbwnzmlebon2d
Kategori:lod:Nomina
14
280928
1349813
2026-04-14T12:31:28Z
Swarabakti
18192
←Membuat halaman berisi '{{kategori otomatis}}'
1349813
wikitext
text/x-wiki
{{kategori otomatis}}
tka0fgn87px6unlh07hbwnzmlebon2d
Kategori:mui:Lema
14
280929
1349814
2026-04-14T12:31:32Z
Swarabakti
18192
←Membuat halaman berisi '{{kategori otomatis}}'
1349814
wikitext
text/x-wiki
{{kategori otomatis}}
tka0fgn87px6unlh07hbwnzmlebon2d
Kategori:pey:Istilah dengan tautan audio
14
280930
1349815
2026-04-14T12:32:04Z
Swarabakti
18192
←Membuat halaman berisi '{{kategori otomatis}}'
1349815
wikitext
text/x-wiki
{{kategori otomatis}}
tka0fgn87px6unlh07hbwnzmlebon2d
Kategori:pey:Pemeliharaan halaman
14
280931
1349816
2026-04-14T12:32:30Z
Swarabakti
18192
←Membuat halaman berisi '{{kategori otomatis}}'
1349816
wikitext
text/x-wiki
{{kategori otomatis}}
tka0fgn87px6unlh07hbwnzmlebon2d
Kategori:min:Istilah homonim
14
280932
1349817
2026-04-14T12:32:55Z
Swarabakti
18192
←Membuat halaman berisi '{{kategori otomatis}}'
1349817
wikitext
text/x-wiki
{{kategori otomatis}}
tka0fgn87px6unlh07hbwnzmlebon2d
Kategori:min:Istilah dengan contoh kalimat
14
280933
1349818
2026-04-14T12:32:56Z
Swarabakti
18192
←Membuat halaman berisi '{{kategori otomatis}}'
1349818
wikitext
text/x-wiki
{{kategori otomatis}}
tka0fgn87px6unlh07hbwnzmlebon2d
Kategori:Istilah homonim menurut bahasa
14
280934
1349819
2026-04-14T12:33:06Z
Swarabakti
18192
←Membuat halaman berisi '{{kategori otomatis}}'
1349819
wikitext
text/x-wiki
{{kategori otomatis}}
tka0fgn87px6unlh07hbwnzmlebon2d
Kategori:mui-plm:Adjektiva
14
280935
1349821
2026-04-14T12:34:47Z
Swarabakti
18192
←Membuat halaman berisi '{{kategori otomatis}}'
1349821
wikitext
text/x-wiki
{{kategori otomatis}}
tka0fgn87px6unlh07hbwnzmlebon2d
Kategori:mui-plm:Istilah dengan contoh kalimat
14
280936
1349822
2026-04-14T12:34:48Z
Swarabakti
18192
←Membuat halaman berisi '{{kategori otomatis}}'
1349822
wikitext
text/x-wiki
{{kategori otomatis}}
tka0fgn87px6unlh07hbwnzmlebon2d
Kategori:tes:Istilah dengan tautan audio
14
280937
1349823
2026-04-14T12:35:12Z
Swarabakti
18192
←Membuat halaman berisi '{{kategori otomatis}}'
1349823
wikitext
text/x-wiki
{{kategori otomatis}}
tka0fgn87px6unlh07hbwnzmlebon2d
Kategori:tes:Adjektiva
14
280938
1349824
2026-04-14T12:35:13Z
Swarabakti
18192
←Membuat halaman berisi '{{kategori otomatis}}'
1349824
wikitext
text/x-wiki
{{kategori otomatis}}
tka0fgn87px6unlh07hbwnzmlebon2d
Kategori:tes:Istilah dengan contoh kalimat
14
280939
1349825
2026-04-14T12:35:16Z
Swarabakti
18192
←Membuat halaman berisi '{{kategori otomatis}}'
1349825
wikitext
text/x-wiki
{{kategori otomatis}}
tka0fgn87px6unlh07hbwnzmlebon2d
Kategori:tes:Pemeliharaan halaman
14
280940
1349826
2026-04-14T12:35:23Z
Swarabakti
18192
←Membuat halaman berisi '{{kategori otomatis}}'
1349826
wikitext
text/x-wiki
{{kategori otomatis}}
tka0fgn87px6unlh07hbwnzmlebon2d
Kategori:swu:Verba
14
280943
1349831
2026-04-14T12:42:36Z
Swarabakti
18192
←Membuat halaman berisi '{{kategori otomatis}}'
1349831
wikitext
text/x-wiki
{{kategori otomatis}}
tka0fgn87px6unlh07hbwnzmlebon2d
Kategori:swu:Lema
14
280944
1349834
2026-04-14T12:43:04Z
Swarabakti
18192
←Membuat halaman berisi '{{kategori otomatis}}'
1349834
wikitext
text/x-wiki
{{kategori otomatis}}
tka0fgn87px6unlh07hbwnzmlebon2d
Kategori:min:Istilah dengan transkripsi AFI
14
280945
1349837
2026-04-14T12:59:54Z
Swarabakti
18192
←Membuat halaman berisi '{{kategori otomatis}}'
1349837
wikitext
text/x-wiki
{{kategori otomatis}}
tka0fgn87px6unlh07hbwnzmlebon2d
Kategori:bew:Istilah homonim
14
280946
1349843
2026-04-14T13:05:02Z
Swarabakti
18192
←Membuat halaman berisi '{{kategori otomatis}}'
1349843
wikitext
text/x-wiki
{{kategori otomatis}}
tka0fgn87px6unlh07hbwnzmlebon2d
Kategori:Istilah dengan kutipan menurut bahasa
14
280947
1349844
2026-04-14T13:06:23Z
Swarabakti
18192
←Membuat halaman berisi '{{kategori otomatis}}'
1349844
wikitext
text/x-wiki
{{kategori otomatis}}
tka0fgn87px6unlh07hbwnzmlebon2d
luung
0
280948
1349845
2026-04-14T13:11:05Z
Anggabuana
27723
[[:wikt:id:Pengguna:Swarabakti/Gadget-EntryAdder.js|+entri]] [ban]
1349845
wikitext
text/x-wiki
=={{bahasa|ban}}==
{{kepala|ban}}
{{-adj-|ban}}
# bagus
6uiayiuytaq0vi83uw1wdi2jti1xzhv
1349847
1349845
2026-04-14T13:14:36Z
Anggabuana
27723
/* {{bahasa|ban}} */
1349847
wikitext
text/x-wiki
=={{bahasa|ban}}==
{{kepala|ban}}
: {{suara|ban|LL-Q33070_(ban)-Luh_Gede_Krismayanti-luung.wav}}
{{-adj-|ban}}
# bagus
#: ''Bajun ragané '''luung''' sajan''
#:: Bajumu '''bagus''' sekali
9q42ewqwtr4q91itclsywu6p5f4iqeg
1349848
1349847
2026-04-14T13:15:01Z
Anggabuana
27723
/* {{bahasa|ban}} */
1349848
wikitext
text/x-wiki
=={{bahasa|ban}}==
{{kepala|ban}}
: {{suara|ban|LL-Q33070_(ban)-Luh_Gede_Krismayanti-luung.wav}}
{{-adj-|ban}}
# [[bagus]]
#: ''Bajun ragané '''luung''' sajan''.
#:: Bajumu '''bagus''' sekali.
ijbbja39c4oiaeb7rf9di64h049cj0n
1349849
1349848
2026-04-14T13:16:35Z
Anggabuana
27723
/* {{bahasa|ban}} */
1349849
wikitext
text/x-wiki
=={{bahasa|ban}}==
{{kepala|ban|alt=ᬮᬸᬯᬸᬂ᭟}}
: {{suara|ban|LL-Q33070_(ban)-Luh_Gede_Krismayanti-luung.wav}}
{{-adj-|ban}}
# [[bagus]]
#: ''Bajun ragané '''luung''' sajan''.
#:: Bajumu '''bagus''' sekali.
lewcs9o9q0oaojrck7pmexagcpz601n
Modul:form of/data/2
828
280949
1349850
2026-04-14T13:24:42Z
Swarabakti
18192
←Membuat halaman berisi '--[=[ This module lists the less common recognized inflection tags, in the same format as for [[Module:form of/data/1]] (which contains the more common tags). We split the tags this way to save memory, so we avoid loading the less common tags in the majority of cases. ]=] local m_form_of_data = require("Module:form of/data") local APPENDIX = m_form_of_data.APPENDIX local WP = m_form_of_data.WP local WIKT = m_form_of_data.WIKT local tags = {} local shortcuts =...'
1349850
Scribunto
text/plain
--[=[
This module lists the less common recognized inflection tags, in the same format as for [[Module:form of/data/1]] (which
contains the more common tags). We split the tags this way to save memory, so we avoid loading the less common tags in
the majority of cases.
]=]
local m_form_of_data = require("Module:form of/data")
local APPENDIX = m_form_of_data.APPENDIX
local WP = m_form_of_data.WP
local WIKT = m_form_of_data.WIKT
local tags = {}
local shortcuts = {}
----------------------- Person -----------------------
tags["fourth-person"] = {
"person",
"wikt:fourth person",
"4",
3348541,
}
tags["second-person-object form"] = {
"person",
APPENDIX,
"2o",
}
----------------------- Number -----------------------
tags["associative plural"] = {
"number",
WIKT,
{"ass p", "ass pl", "assoc p", "assoc pl"},
}
tags["collective"] = {
"number",
"collective number",
"col",
694268,
}
tags["collective-possession"] = {
"number",
"collective number",
{"cpos", "colpos"},
}
-- same as "count form" below, but included for backwards-compatibility with uses of "count|form"
tags["count"] = {
"number",
"count form",
nil,
12273953,
}
tags["count form"] = {
"number",
WIKT,
nil,
12273953,
}
tags["distributive paucal"] = {
"number",
WIKT,
"dpau",
}
tags["paucal"] = {
"number",
WIKT,
"pau",
489410,
}
tags["singulative"] = {
"number",
"singulative number",
"sgl",
1450795,
}
tags["transnumeral"] = {
"number",
APPENDIX,
"trn",
113631596,
display = "singular or plural",
}
tags["trial"] = {
"number",
"trial number",
"tri",
2142560,
}
----------------------- Gender -----------------------
tags["natural feminine"] = {
"gender",
"gender",
"natf",
}
tags["virile"] = {
"gender",
APPENDIX,
"vr",
}
----------------------- Animacy -----------------------
----------------------- Tense/aspect -----------------------
tags["abtemporal"] = {
"tense-aspect",
WIKT,
"abtemp",
}
tags["anterior"] = {
"tense-aspect",
"w:relative and absolute tense",
"ant",
}
tags["cessative"] = {
"tense-aspect",
WP,
"cess",
17027342,
}
-- Aspect in Tagalog; presumably similar to the perfect tense/aspect but not necessarily similar enough to use the same
-- Wikidata ID
tags["complete"] = {
"tense-aspect",
"w:Tagalog grammar#Aspect",
"compl",
}
tags["concomitant"] = {
"tense-aspect",
WIKT,
"concom",
}
tags["confirmative"] = {
"tense-aspect",
WIKT,
"conf",
}
-- Aspect in Tagalog
tags["contemplative"] = {
"tense-aspect",
"w:Tagalog grammar#Aspect",
"contem",
}
tags["contemporal"] = {
"tense-aspect",
WIKT,
"contemp",
}
tags["continuative"] = {
"tense-aspect",
WP,
nil,
28130104,
}
tags["continuous"] = {
"tense-aspect",
"w:continuous aspect",
"cont",
12721117,
}
tags["delimitative"] = {
"tense-aspect",
"w:delimitative aspect",
"delim",
5316270,
}
tags["durative"] = {
"tense-aspect",
WP,
"dur",
}
tags["futuritive"] = {
"tense-aspect",
WP,
{"futv", "futrv"},
}
tags["frequentative"] = {
"tense-aspect",
WP,
{"freq", "frequentive"},
467562,
}
tags["habitual"] = {
"tense-aspect",
"w:habitual aspect",
"hab",
5636904,
}
-- same as the habitual; used in Mongolian linguistics
tags["habitive"] = {
"tense-aspect",
WP,
"habv",
}
-- same as the habitual; used in Celtic linguistics
tags["consuetudinal"] = {
"tense-aspect",
WIKT,
"consu",
}
tags["immediative"] = {
"tense-aspect",
WIKT,
{"imm", "immed"},
}
tags["incidental"] = {
"tense-aspect",
WIKT,
"incid",
}
tags["iterative"] = {
"tense-aspect",
"w:iterative aspect",
"iter",
2866772,
}
tags["momentane"] = {
"tense-aspect",
WP,
nil,
6897160,
}
tags["momentaneous"] = {
"tense-aspect",
WIKT,
"mom",
115110791,
}
tags["posterior"] = {
"tense-aspect",
"w:relative and absolute tense",
"post",
}
tags["preconditional"] = {
"tense-aspect",
WIKT,
"precond",
}
-- Type of participle in Hindi; also called agentive or agentive-prospective
tags["prospective"] = {
"tense-aspect",
"w:prospective aspect",
"pros",
}
tags["purposive"] = {
"tense-aspect",
WIKT,
"purp",
}
-- Aspect in Tagalog; presumably similar to the perfect tense/aspect but not necessarily similar enough to use the same
-- Wikidata ID
tags["recently complete"] = {
"tense-aspect",
"w:Tagalog grammar#Aspect",
"rcompl",
}
tags["resultative"] = {
"tense-aspect",
WP,
{"res", "resultive"},
7316356,
}
tags["semelfactive"] = {
"tense-aspect",
WP,
"semf",
7449203,
}
tags["serial"] = {
"tense-aspect",
WIKT,
"ser",
}
tags["successive"] = {
"tense-aspect",
WIKT,
"succ",
}
-- be careful not to clash with terminative case tag
tags["terminative aspect"] = {
"tense-aspect",
"w:cessative aspect",
"term",
display = "terminative",
}
----------------------- Mood -----------------------
tags["benedictive"] = {
"mood",
WP,
"bened",
4887358,
}
tags["cohortative"] = {
"mood",
"w:cohortative mood",
{"coho", "cohort"},
}
tags["concessive"] = {
"mood",
WIKT,
"conc",
}
tags["contrafactual"] = {
"mood",
WIKT,
"cfact",
110323459,
}
-- Same as the contrafactual, but terminology depends on language.
tags["counterfactual"] = {
"mood",
WP,
"counterf",
1783264, -- for "counterfactual conditional"
}
tags["desiderative"] = {
"mood",
WP,
{"des", "desid"},
1200631,
}
tags["dubitative"] = {
"mood",
"w:dubitative mood",
"dub",
1263049,
}
tags["energetic"] = {
"mood",
"w:energetic mood",
"ener",
}
tags["inferential"] = {
"mood",
"w:inferential mood",
{"infer", "infr"},
-- Per [[w:inferential mood]], also called "renarrative mood" or (in Estonian) "oblique mood" (but
-- "renarrative mood" may be different, see its entry).
3332616,
}
-- It's not clear that this is exactly a mood, but I'm not sure where
-- else to group it
tags["intensive"] = {
"mood",
WP,
{"inten", "intens"}, -- FIXME: "inten" is too ambiguous (e.g. with "intentional")
10965321, -- for "intensive word form"
}
tags["intentional"] = {
"mood",
WIKT,
"intent",
}
tags["interrogative"] = {
"mood",
WP,
{"interr", "interrog"},
12021746,
}
tags["necessitative"] = {
"mood",
WIKT,
{"nec", "necessitive"},
}
tags["permissive"] = {
"mood",
"w:permissive mood",
"perm",
4351483,
}
tags["potential"] = {
"mood",
"w:potential mood",
"potn",
2296856,
}
tags["precative"] = {
"mood",
WIKT,
"prec",
}
tags["prescriptive"] = {
"mood",
WIKT,
"prescr",
}
tags["presumptive"] = {
"mood",
"w:presumptive mood",
"presump",
25463575,
}
-- Exists at least in Estonian
tags["quotative"] = {
"mood",
"w:quotative evidential mood",
"quot",
-- 7272884, -- this is for "quotative" morphemes, not the same
}
tags["renarrative"] = {
"mood",
"w:renarrative mood",
"renarr",
-- Per [[w:inferential mood]], renarrative and inferential mood are the same; but per
-- [[w:Bulgarian verbs#Evidentials]], they are different, and Bulgarian has both.
3332616,
}
tags["volitive"] = {
"mood",
"w:volitive mood",
"voli",
10716592,
}
tags["voluntative"] = {
"mood",
WIKT,
{"voln", "volun"},
}
----------------------- Voice/valence -----------------------
tags["antipassive"] = {
"voice-valence",
"w:antipassive voice",
{"apass", "apasv", "apsv"},
287232,
}
tags["applicative"] = {
"voice-valence",
"w:applicative voice",
"appl",
621634,
}
tags["cooperative"] = { -- ("all together") used in Mongolian
"voice-valence",
"wikt:cooperative voice",
"coop",
114033228,
}
tags["pluritative"] = { -- ("many together") used in Mongolian
"voice-valence",
"wikt:pluritative voice",
"plur",
114033289,
}
tags["reciprocal"] = {
"voice-valence",
"w:reciprocal (grammar)",
{"recp", "recip"},
1964083,
}
-- Specific to Modern Irish, similar to impersonal
tags["autonomous"] = {
"voice-valence",
WIKT,
"auton",
}
----------------------- Non-finite -----------------------
-- be careful not to clash with agentive case tag
tags["agentive"] = {
"non-finite",
"w:agent noun",
{"ag", "agent"},
}
-- Latin etc.
tags["gerundive"] = {
"non-finite",
WP,
"gerv",
731298, -- Wikidata claims this is a grammatical mood, which is not really correct
}
-- Old Irish etc.
tags["verbal of necessity"] = {
"non-finite",
"w:gerundive",
"verbnec",
731298, -- gerundive
}
tags["l-participle"] = {
"non-finite",
"participle",
{"l-ptcp", "lptcp"},
814722, -- "participle"
}
-- Finnish agent participle
tags["agent participle"] = {
"non-finite",
"w:Finnish grammar#Agent participle",
"agentpart",
}
-- Hungarian participle
tags["verbal participle"] = {
"non-finite",
WIKT,
nil,
2361676, -- attributive verb, aka verbal participle
}
tags["converb"] = {
"non-finite",
WP,
"conv",
149761,
}
tags["connegative"] = {
"non-finite",
APPENDIX,
{"conn", "conneg"},
5161718,
}
-- Occurs in Hindi as a type of participle used to conjoin two clauses; similarly occurs in Japanese as the "te-form"
tags["conjunctive"] = {
"non-finite",
"w:serial verb construction", -- FIXME! No good link for "conjunctive"; another possibility is "converb"
"conj",
}
tags["absolutive verb form"] = {
"non-finite",
"wikt:absolutive#Noun",
"absvf",
display = "absolutive",
}
-- FIXME! Should this be a mood?
tags["debitive"] = {
"non-finite",
WP,
"deb",
17119041,
}
----------------------- Case -----------------------
tags["abessive"] = {
"case",
"w:abessive case",
"abe",
319822,
}
tags["absolutive"] = {
"case",
"w:absolutive case",
"absv", -- FIXME, find uses of "abs" = absolutive
332734,
}
tags["adessive"] = {
"case",
"w:adessive case",
"ade",
281954,
}
-- be careful not to clash with adverbial grammar tag
tags["adverbial case"] = {
"case",
WP,
"advc",
display = "adverbial",
}
-- be careful not to clash with agentive non-finite tag
tags["agentive case"] = {
"case",
WP,
"agc",
display = "agentive",
}
tags["allative"] = {
"case",
"wikt:allative case",
"all",
655020,
}
--No evidence of the existence of this case on the web, and the shortcuts are better used elsewhere.
--tags["anterior"] = {
-- "case",
-- nil,
-- {"ant"},
--}
tags["associative"] = {
"case",
"w:associative case",
{"ass", "assoc"},
15948746,
}
tags["benefactive"] = {
"case",
"w:benefactive case",
{"ben", "bene"},
664905,
}
tags["causal"] = {
"case",
"w:causal case",
{"cauc", "causc"},
2943136,
}
tags["causal-final"] = {
"case",
"w:causal-final case",
{"cfi", "cfin"},
18012653,
}
tags["comitative"] = {
"case",
"w:comitative case",
"com",
838581,
}
-- be careful not to clash with comparative degree
tags["comparative case"] = {
"case",
WP,
"comc",
5155633,
display = "comparative",
}
tags["delative"] = {
"case",
"w:delative case",
"del",
1183901,
}
tags["direct"] = {
"case",
"w:direct case",
"dir",
1751855,
}
tags["directive"] = {
"case",
"wikt:directive case",
"dirc",
56526905,
}
tags["distributive"] = {
"case",
"w:distributive case",
{"dis", "dist", "distr"},
492457,
}
tags["elative"] = {
"case",
"elative case",
"ela",
394253,
}
tags["ergative"] = {
"case",
"ergative case",
"erg",
324305,
}
-- be careful not to clash with equative degree tag
tags["equative"] = {
"case",
"w:equative case",
"equc",
3177653,
}
tags["essive-formal"] = {
"case",
"w:essive-formal case",
{"esf", "efor"},
3827688,
}
tags["essive-modal"] = {
"case",
"w:essive-modal case",
{"esm", "emod"},
3827703,
}
tags["essive"] = {
"case",
"w:essive case",
"ess",
148465,
}
--No evidence of the existence of this case on the web, and the shortcuts are better used elsewhere.
--tags["exclusive"] = {
-- "case",
-- nil,
-- {"exc", "excl"},
--}
tags["illative"] = {
"case",
"w:illative case",
"ill",
474668,
}
tags["indirect"] = {
"case",
"w:direct case",
"indir",
1233197, -- Same as oblique.
}
tags["inessive"] = {
"case",
"w:inessive case",
"ine",
282031,
}
tags["instructive"] = {
"case",
"w:instructive case",
"ist",
1665275,
}
tags["lative"] = {
"case",
"w:lative case",
"lat",
260425,
}
tags["limitative"] = {
"case",
"w:list of grammatical cases",
{"lim", "limitive"},
35870079,
}
tags["locative-qualitative"] = {
"case",
"locative-qualitative case",
{"lqu", "lqua", "locative-qualitive"},
}
tags["objective"] = {
"case",
"objective case",
"objv", -- obj used for "object"
1233197, -- Same as oblique.
}
tags["oblique"] = {
"case",
"oblique case",
"obl",
1233197,
}
tags["partitive"] = {
"case",
"w:partitive case",
{"ptv", "par"},
857325,
}
--certain languages use this term for the abessive
tags["privative"] = {
"case",
"w:privative case",
"priv",
319822,
}
tags["prolative"] = {
"case",
"w:prolative case",
{"pro", "prol"},
952933,
}
tags["sociative"] = {
"case",
"w:sociative case",
"soc",
3773161,
}
tags["subjective"] = {
"case",
"w:subjective case",
{"subjv", "sbjv"}, -- "sub" and "subj" used for subjunctive, "sbj" for "subject"
131105, -- Same as nominative.
}
tags["sublative"] = {
"case",
"w:sublative case",
{"sbl", "subl"},
2120615,
}
tags["superessive"] = {
"case",
"w:superessive case",
{"spe", "supe"},
222355,
}
tags["temporal"] = {
"case",
"w:temporal case",
{"tem", "temp"},
3235219,
}
-- be careful not to clash with terminative aspect tag
tags["terminative case"] = {
"case",
"w:terminative case",
"ter",
747019,
display = "terminative",
}
tags["translative"] = {
"case",
"w:translative case",
{"tra", "tran"},
950170,
}
----------------------- State -----------------------
tags["independent genitive"] = {
"state",
WIKT,
"indgen",
}
tags["possessor"] = {
"state",
WIKT,
{"posr", "possr"},
}
tags["reflexive possessive"] = {
"state",
WIKT,
{"reflposs", "refl poss"},
}
tags["substantive"] = {
"state",
APPENDIX,
{"subs", "subst"},
}
tags["free state"] = {
"state",
APPENDIX,
{"free"},
}
tags["annexed state"] = {
"state",
APPENDIX,
{"annex", "annexed"},
}
----------------------- Degrees of comparison -----------------------
tags["absolute superlative degree"] = {
"comparison",
"wikt:absolute superlative",
{"asupd", "absolute superlative"},
}
tags["relative superlative degree"] = {
"comparison",
"wikt:relative superlative",
{"rsupd", "relative superlative"},
}
tags["elative degree"] = {
"comparison",
"elative",
"elad", -- Can't use "elative" as shortcut because that's already used for the elative case
1555419,
}
-- be careful not to clash with equative case tag
tags["equative degree"] = {
"comparison",
"w:equative",
"equd",
5384239,
}
tags["excessive degree"] = {
"comparison",
nil,
"excd",
}
----------------------- Register -----------------------
tags["familiar"] = {
"register",
"w:T–V distinction",
"fam",
}
tags["polite"] = {
"register",
"w:T–V distinction",
"pol",
}
tags["intimate"] = {
"register",
-- "intimate" is also a possible formality level in the sociolinguistic register sense.
"w:T–V distinction",
"intim",
}
tags["formal"] = {
"register",
"w:register (sociolinguistics)",
}
tags["informal"] = {
"register",
"w:register (sociolinguistics)",
"inform",
}
tags["colloquial"] = {
"register",
"w:colloquialism",
"colloq",
}
tags["slang"] = {
"register",
WP,
}
tags["contemporary"] = {
"register",
WIKT,
"conty",
}
tags["literary"] = {
"register",
"w:literary language",
"lit",
}
tags["dated"] = {
"register",
WIKT,
}
tags["archaic"] = {
"register",
"w:archaism",
"arch",
}
tags["obsolete"] = {
"register",
WIKT,
"obs",
}
tags["emphatic"] = {
"register",
WIKT,
"emph",
}
----------------------- Deixis -----------------------
tags["proximal"] = {
"deixis",
"w:deixis",
{"prox", "prxl"},
}
tags["medial"] = {
"deixis",
"w:deixis",
"medl",
}
tags["distal"] = {
"deixis",
"w:deixis",
"dstl",
}
----------------------- Clusivity -----------------------
tags["inclusive"] = {
"clusivity",
"w:clusivity",
"incl",
}
tags["exclusive"] = {
"clusivity",
"w:clusivity",
"excl",
}
tags["obviative"] = {
"clusivity",
"w:clusivity",
"obv",
}
----------------------- Inflectional class -----------------------
tags["absolute"] = {
"grammar",
WIKT,
"abs",
}
tags["conjunct"] = {
"grammar",
WP,
"conjt",
}
tags["deuterotonic"] = {
"grammar",
"w:dependent and independent verb forms",
"deut",
}
tags["prototonic"] = {
"grammar",
"w:dependent and independent verb forms",
"prot",
}
----------------------- Attitude -----------------------
tags["endearing"] = {
"attitude",
-- FIXME! No good glossary entry for this; the entry for "hypocoristic" refers specifically to proper names.
"w:hypocoristic",
"end",
1130279, -- entry for "hypocorism"
}
tags["moderative"] = {
"attitude",
WIKT,
"moder",
}
----------------------- Sound changes -----------------------
tags["alliterative"] = {
"sound change",
"w:alliteration",
nil,
484495,
}
tags["back"] = {
"sound change",
"w:back vowel",
nil,
853589,
}
tags["front"] = {
"sound change",
"w:front vowel",
nil,
5505949,
}
tags["rounded"] = {
"sound change",
"w:roundedness",
"round",
}
tags["sigmatic"] = {
"sound change",
WIKT,
"sigm",
}
tags["unrounded"] = {
"sound change",
"w:roundedness",
"unround",
}
tags["vowel harmonic"] = {
"sound change",
"w:vowel harmony",
"vharm",
147137,
}
----------------------- Misc grammar -----------------------
tags["relative"] = {
"grammar",
WIKT,
"rel",
}
tags["direct relative"] = {
"grammar",
"w:relative_clause#Celtic_languages",
"dirrel",
}
tags["indirect relative"] = {
"grammar",
"w:relative_clause#Celtic_languages",
"indrel",
}
tags["synthetic"] = {
"grammar",
WIKT,
"synth",
}
tags["analytic"] = {
"grammar",
WIKT,
{"anal", "analytical"},
}
tags["periphrastic"] = {
"grammar",
WIKT,
"peri",
}
tags["affirmative"] = {
"grammar",
"w:affirmation and negation",
"aff",
}
tags["possessed"] = {
"grammar",
"w:possessive affix",
{"possd", "possed"}, -- posd = positive degree
804020, -- for possessive affix
}
tags["non-possessed"] = {
"grammar",
"w:possessive affix",
{"npossd", "npossed", "nonpossessed"},
}
tags["complement"] = {
"grammar",
"w:complement (linguistics)",
"comp", -- formerly used for comparative, which has been split into comparative case (comc) and comparative degree (comd)
1051175,
}
tags["possessive affix"] = {
"grammar",
WP,
{"posaf", "possaf"},
804020,
}
tags["possessive suffix"] = {
"grammar",
"w:possessive affix",
"possuf",
804020,
}
tags["possessive prefix"] = {
"grammar",
"w:possessive affix",
{"pospref", "posspref"},
804020,
}
tags["prefix"] = {
"grammar",
APPENDIX,
"pref", -- pre = prepositional
134830,
}
tags["prefixal"] = {
"grammar",
WIKT,
"prefl", -- pre = prepositional
134830,
}
tags["suffix"] = {
"grammar",
APPENDIX,
{"suf", "suff"},
102047,
}
tags["suffixal"] = {
"grammar",
WIKT,
{"sufl", "suffl"},
102047,
}
tags["affix"] = {
"grammar",
WP,
"af", -- aff = affirmative
62155,
}
tags["affixal"] = {
"grammar",
WIKT,
"afl", -- aff = affirmative
62155,
}
tags["circumfix"] = {
"grammar",
WP,
{"circ", "cirf", "circf"},
124939,
}
tags["circumfixal"] = {
"grammar",
WIKT,
{"circl", "cirfl", "circfl"},
124939,
}
tags["infix"] = {
"grammar",
WP,
"infx",
201322,
}
tags["infixal"] = {
"grammar",
WIKT,
"infxl",
201322,
}
tags["nonfinite"] = {
"grammar",
APPENDIX,
"nonfin",
1050494, -- entry for "non-finite verb"
}
tags["tenseless"] = {
"grammar",
WIKT,
}
tags["aspect"] = {
"grammar",
APPENDIX,
"asp",
208084,
}
----------------------- Other tags -----------------------
tags["–"] = { -- Unicode en-dash
"other",
no_space_on_left = true,
no_space_on_right = true,
}
tags["—"] = { -- Unicode em-dash
"other",
no_space_on_left = true,
no_space_on_right = true,
}
----------------------- Create the shortcuts list -----------------------
m_form_of_data.finalize(tags, shortcuts)
return {tags = tags, shortcuts = shortcuts}
g1q5vsjyax46jvofzqk9sbxwme2utcp
Templat:bentuk dari
10
280950
1349852
2026-04-14T13:29:12Z
Swarabakti
18192
←Membuat halaman berisi '{{ {{#if:{{{lang|}}}|check deprecated lang param usage|no deprecated lang param usage}}|lang={{{lang|}}}|<!-- -->{{#if:{{{lang|}}}|{{#invoke:form of/templates|form_of_t|{{#if:{{{1|}}}|{{{1|}}}|form}} of|term_param=2|ignore=1}}|{{#invoke:form of/templates|form_of_t|{{#if:{{{2|}}}|{{{2|}}}|form}} of|term_param=3|ignore=2}}}}<!-- -->}}<!-- --><noinclude>{{dokumentasi}}</noinclude>'
1349852
wikitext
text/x-wiki
{{ {{#if:{{{lang|}}}|check deprecated lang param usage|no deprecated lang param usage}}|lang={{{lang|}}}|<!--
-->{{#if:{{{lang|}}}|{{#invoke:form of/templates|form_of_t|{{#if:{{{1|}}}|{{{1|}}}|form}} of|term_param=2|ignore=1}}|{{#invoke:form of/templates|form_of_t|{{#if:{{{2|}}}|{{{2|}}}|form}} of|term_param=3|ignore=2}}}}<!--
-->}}<!--
--><noinclude>{{dokumentasi}}</noinclude>
skez0aaseq0feu88szvqjmq33mqg0g0
1349868
1349852
2026-04-14T14:04:56Z
Swarabakti
18192
1349868
wikitext
text/x-wiki
{{ {{#if:{{{lang|}}}|check deprecated lang param usage|no deprecated lang param usage}}|lang={{{lang|}}}|<!--
-->{{#if:{{{lang|}}}|{{#invoke:form of/templates|form_of_t|{{#if:{{{1|}}}|{{{1|}}}|form}} of|term_param=2|ignore=1}}|{{#invoke:form of/templates|form_of_t|{{#if:{{{2|}}}|{{{2|}}}|bentuk}} dari|term_param=3|ignore=2}}}}<!--
-->}}<!--
--><noinclude>{{dokumentasi}}</noinclude>
0q0i0wja2r4ookwhe45fu4t32l89iqj
Modul:table/extend
828
280951
1349858
2026-04-14T13:51:07Z
Swarabakti
18192
←Membuat halaman berisi 'local insert = table.insert local select = select --[==[ Extend an existing list by a new list, modifying the existing list in-place. Compare the Python expression {list.extend(new_items)}.]==] return function(t, ...) local i = 0 if select("#", ...) < 2 then local list = ... while true do i = i + 1 local v = list[i] if v == nil then return t end insert(t, v) end else local pos, list = ... while true do i = i + 1 local v = li...'
1349858
Scribunto
text/plain
local insert = table.insert
local select = select
--[==[
Extend an existing list by a new list, modifying the existing list in-place. Compare the Python expression {list.extend(new_items)}.]==]
return function(t, ...)
local i = 0
if select("#", ...) < 2 then
local list = ...
while true do
i = i + 1
local v = list[i]
if v == nil then
return t
end
insert(t, v)
end
else
local pos, list = ...
while true do
i = i + 1
local v = list[i]
if v == nil then
return t
end
insert(t, pos, v)
pos = pos + 1
end
end
end
adajacgjldccb0g5nl3tceeu9y5qxf5
Modul:table/append
828
280952
1349859
2026-04-14T13:52:34Z
Swarabakti
18192
←Membuat halaman berisi 'local select = select local function append(n, i, t, t_len, item, ...) local k = 0 while true do k = k + 1 local v = item[k] if v ~= nil then t_len = t_len + 1 t[t_len] = v elseif i == n then return t else return append(n, i + 1, t, t_len, ...) end end end --[==[ Appends any number of lists together as a new list.]==] return function(...) local n, t = select("#", ...), {} return n == 0 and t or append(n, 1, t, 0, ...) end'
1349859
Scribunto
text/plain
local select = select
local function append(n, i, t, t_len, item, ...)
local k = 0
while true do
k = k + 1
local v = item[k]
if v ~= nil then
t_len = t_len + 1
t[t_len] = v
elseif i == n then
return t
else
return append(n, i + 1, t, t_len, ...)
end
end
end
--[==[
Appends any number of lists together as a new list.]==]
return function(...)
local n, t = select("#", ...), {}
return n == 0 and t or append(n, 1, t, 0, ...)
end
kr9qgu53vdzydjiqsbbxw5wnf2llyao
Modul:table/compressSparseArray
828
280953
1349860
2026-04-14T13:52:47Z
Swarabakti
18192
←Membuat halaman berisi 'local table_num_keys_module = "Module:table/numKeys" local function num_keys(...) num_keys = require(table_num_keys_module) return num_keys(...) end --[==[ Given a list that may contain gaps (e.g. {1, 2, nil, 4}), returns a new gapless list in the same order.]==] return function(t) local list, keys, i = {}, num_keys(t), 0 while true do i = i + 1 local k = keys[i] if k == nil then return list end list[i] = t[k] end end'
1349860
Scribunto
text/plain
local table_num_keys_module = "Module:table/numKeys"
local function num_keys(...)
num_keys = require(table_num_keys_module)
return num_keys(...)
end
--[==[
Given a list that may contain gaps (e.g. {1, 2, nil, 4}), returns a new gapless list in the same order.]==]
return function(t)
local list, keys, i = {}, num_keys(t), 0
while true do
i = i + 1
local k = keys[i]
if k == nil then
return list
end
list[i] = t[k]
end
end
23nyyesbtac5ffo4gwnkyx8uhxrigj0
Templat:ragam bentuk dari/dokumentasi
10
280954
1349863
2026-04-14T13:55:18Z
Swarabakti
18192
←Membuat halaman berisi '{{subhalaman dokumentasi}} {{shortcut|Templat:ragam dari}} ===Kegunaan=== Untuk menampilkan pengalihan tidak langsung dari baris definisi ke entri untuk ragam utama dengan penjabaran lengkap. Entri untuk ragam bentuk dialek, aksara dan ejaan semestinya tetap digolongkan ke dalam kategori <code>xxx:Lema</code>, sementara entri untuk bentuk romanisasi dapat digolongkan sebagai <code>xxx:Nonlema</code> melalui [[:Kategori:Templat kelas kata|templat kelas kata]]. <...'
1349863
wikitext
text/x-wiki
{{subhalaman dokumentasi}}
{{shortcut|Templat:ragam dari}}
===Kegunaan===
Untuk menampilkan pengalihan tidak langsung dari baris definisi ke entri untuk ragam utama dengan penjabaran lengkap.
Entri untuk ragam bentuk dialek, aksara dan ejaan semestinya tetap digolongkan ke dalam kategori <code>xxx:Lema</code>, sementara entri untuk bentuk romanisasi dapat digolongkan sebagai <code>xxx:Nonlema</code> melalui [[:Kategori:Templat kelas kata|templat kelas kata]].
<includeonly>[[Kategori:Templat bentuk dari]]</includeonly>
jqkscxcm5zva2rj499hrq1392dieyvs
Templat:ragam ejaan dari/dokumentasi
10
280955
1349870
2026-04-14T14:07:24Z
Swarabakti
18192
←Membuat halaman berisi '{{subhalaman dokumentasi}} {{shortcut|Templat:ejaan dari}} ===Kegunaan=== Untuk menampilkan pengalihan tidak langsung dari baris definisi entri ragam ejaan ke entri dengan penjabaran lengkap. <includeonly>[[Kategori:Templat bentuk dari]]</includeonly>'
1349870
wikitext
text/x-wiki
{{subhalaman dokumentasi}}
{{shortcut|Templat:ejaan dari}}
===Kegunaan===
Untuk menampilkan pengalihan tidak langsung dari baris definisi entri ragam ejaan ke entri dengan penjabaran lengkap.
<includeonly>[[Kategori:Templat bentuk dari]]</includeonly>
9y2w5lyadwzein4bj0esmfwcrqd1t1g
1349871
1349870
2026-04-14T14:07:32Z
Swarabakti
18192
1349871
wikitext
text/x-wiki
{{subhalaman dokumentasi}}
{{shortcut|Templat:ejaan dari}}
===Kegunaan===
Untuk menampilkan pengalihan tidak langsung dari baris definisi entri ragam ejaan ke entri dengan penjabaran lengkap. <includeonly>[[Kategori:Templat bentuk dari]]</includeonly>
hpyhdlpc18y9ft55vhw67wur0f6wfjm
1349872
1349871
2026-04-14T14:07:40Z
Swarabakti
18192
1349872
wikitext
text/x-wiki
{{subhalaman dokumentasi}}
{{shortcut|Templat:ejaan dari}}
===Kegunaan===
Untuk menampilkan pengalihan tidak langsung dari baris definisi entri ragam ejaan ke entri dengan penjabaran lengkap.<includeonly>[[Kategori:Templat bentuk dari]]</includeonly>
imufbddtr08tom1rxngt2k1c0owu4xz
Templat:bentuk dari/dokumentasi
10
280956
1349876
2026-04-14T14:11:33Z
Swarabakti
18192
←Membuat halaman berisi '{{subhalaman dokumentasi}} ===Kegunaan=== Memunculkan penjabaran rujuk silang untuk entri yang merupakan bentuk bagi entri lain. <includeonly> [[Kategori:Templat bentuk dari]]</includeonly>'
1349876
wikitext
text/x-wiki
{{subhalaman dokumentasi}}
===Kegunaan===
Memunculkan penjabaran rujuk silang untuk entri yang merupakan bentuk bagi entri lain.
<includeonly>
[[Kategori:Templat bentuk dari]]</includeonly>
27jtfd6k9kzo95t84yw2s2mm3mbrtln
1349877
1349876
2026-04-14T14:11:40Z
Swarabakti
18192
1349877
wikitext
text/x-wiki
{{subhalaman dokumentasi}}
===Kegunaan===
Memunculkan penjabaran rujuk silang untuk entri yang merupakan bentuk bagi entri lain.<includeonly>
[[Kategori:Templat bentuk dari]]</includeonly>
7fe5bicvzbx8p8dybw4mun4ml5jtty7
Templat:kontraksi dari/dokumentasi
10
280957
1349879
2026-04-14T14:13:24Z
Swarabakti
18192
←Membuat halaman berisi '{{subhalaman dokumentasi}} ===Kegunaan=== Untuk menampilkan pengalihan tidak langsung dari baris definisi entri kontraksi ke entri-entri yang dirujuk. Bentuk kontraksi umumnya tidak dapat digolongkan ke dalam kelas kata tertentu, dan mesti dibedakan dari pemendekan satu entri yang sama, serta gabungan dua atau lebih entri yang berfungsi sebagai kata padu. <includeonly>[[Kategori:Templat bentuk dari]]</includeonly>'
1349879
wikitext
text/x-wiki
{{subhalaman dokumentasi}}
===Kegunaan===
Untuk menampilkan pengalihan tidak langsung dari baris definisi entri kontraksi ke entri-entri yang dirujuk.
Bentuk kontraksi umumnya tidak dapat digolongkan ke dalam kelas kata tertentu, dan mesti dibedakan dari pemendekan satu entri yang sama, serta gabungan dua atau lebih entri yang berfungsi sebagai kata padu.
<includeonly>[[Kategori:Templat bentuk dari]]</includeonly>
t9bmmrsxeb1ly6zf6jikbzygjhy1gaf
1349880
1349879
2026-04-14T14:13:39Z
Swarabakti
18192
1349880
wikitext
text/x-wiki
{{subhalaman dokumentasi}}
===Kegunaan===
Untuk menampilkan pengalihan tidak langsung dari baris definisi entri kontraksi ke entri-entri yang dirujuk.
Bentuk kontraksi umumnya tidak dapat digolongkan ke dalam kelas kata tertentu, dan mesti dibedakan dari pemendekan satu entri yang sama, serta gabungan dua atau lebih entri yang berfungsi sebagai kata padu.
<includeonly>[[Kategori:Templat bentuk dari]]</includeonly>
lhijjeuzwjfojp38tof9x1u3auxivoq
Pembicaraan:mahantuyi
1
280958
1349893
2026-04-15T02:48:22Z
Ezagren
2314
/* mhantuyi >> mahantuyi */ bagian baru
1349893
wikitext
text/x-wiki
== mhantuyi >> mahantuyi ==
Halo panitia @[[Pengguna:Bangrapip|Bangrapip]] @[[Pengguna:Swarabakti|Swarabakti]] saya telanjur memindahkan judul lema ini meski tidak ada arahan di penilaian fountain WikiKatha karena berdasarkan pelafalan suara terdengar 'mahantuyi' dan juga saya pernah menyaksikan serta mendokumentasikan kegiatan mahantuyi tersebut. Mohon arahan. Salam, [[Pengguna:Ezagren|Ezagren]] ([[Pembicaraan Pengguna:Ezagren|bicara]]) 15 April 2026 02.48 (UTC)
84pjofthijooqxq7xj3hdhvgp5ef21i
hallet
0
280959
1349897
2026-04-15T06:32:42Z
Meylani Prisilia
44880
←Membuat halaman berisi '=={{bahasa|bbc}}== {{kepala|bbc}} {{-n-|ljp}} # pacar'
1349897
wikitext
text/x-wiki
=={{bahasa|bbc}}==
{{kepala|bbc}}
{{-n-|ljp}}
# pacar
lijohqfckfh4ox40kemwktbj2b8ofx1
Kategori:beu:Lema
14
280960
1350021
2026-04-15T11:24:14Z
Swarabakti
18192
←Membuat halaman berisi '{{kategori otomatis}}'
1350021
wikitext
text/x-wiki
{{kategori otomatis}}
tka0fgn87px6unlh07hbwnzmlebon2d
Kategori:beu:Nomina
14
280961
1350022
2026-04-15T11:24:17Z
Swarabakti
18192
←Membuat halaman berisi '{{kategori otomatis}}'
1350022
wikitext
text/x-wiki
{{kategori otomatis}}
tka0fgn87px6unlh07hbwnzmlebon2d
Kategori:jv:Istilah dengan contoh kalimat
14
280962
1350023
2026-04-15T11:24:20Z
Swarabakti
18192
←Membuat halaman berisi '{{kategori otomatis}}'
1350023
wikitext
text/x-wiki
{{kategori otomatis}}
tka0fgn87px6unlh07hbwnzmlebon2d
Kategori:ban:Istilah dengan contoh kalimat
14
280963
1350024
2026-04-15T11:24:23Z
Swarabakti
18192
←Membuat halaman berisi '{{kategori otomatis}}'
1350024
wikitext
text/x-wiki
{{kategori otomatis}}
tka0fgn87px6unlh07hbwnzmlebon2d
Kategori:ban:Pemeliharaan halaman
14
280964
1350025
2026-04-15T11:24:41Z
Swarabakti
18192
←Membuat halaman berisi '{{kategori otomatis}}'
1350025
wikitext
text/x-wiki
{{kategori otomatis}}
tka0fgn87px6unlh07hbwnzmlebon2d
Kategori:jv:Istilah rangkaian kata
14
280965
1350033
2026-04-15T11:32:07Z
Swarabakti
18192
←Membuat halaman berisi '{{kategori otomatis}}'
1350033
wikitext
text/x-wiki
{{kategori otomatis}}
tka0fgn87px6unlh07hbwnzmlebon2d
Kategori:Istilah rangkaian kata menurut bahasa
14
280966
1350034
2026-04-15T11:32:16Z
Swarabakti
18192
←Membuat halaman berisi '{{kategori otomatis}}'
1350034
wikitext
text/x-wiki
{{kategori otomatis}}
tka0fgn87px6unlh07hbwnzmlebon2d
Kategori:abl:Lema
14
280967
1350037
2026-04-15T11:34:52Z
Swarabakti
18192
←Membuat halaman berisi '{{kategori otomatis}}'
1350037
wikitext
text/x-wiki
{{kategori otomatis}}
tka0fgn87px6unlh07hbwnzmlebon2d
Kategori:pi:Lema
14
280968
1350038
2026-04-15T11:34:53Z
Swarabakti
18192
←Membuat halaman berisi '{{kategori otomatis}}'
1350038
wikitext
text/x-wiki
{{kategori otomatis}}
tka0fgn87px6unlh07hbwnzmlebon2d
Kategori:tao:Lema
14
280969
1350039
2026-04-15T11:34:55Z
Swarabakti
18192
←Membuat halaman berisi '{{kategori otomatis}}'
1350039
wikitext
text/x-wiki
{{kategori otomatis}}
tka0fgn87px6unlh07hbwnzmlebon2d
Kategori:pl:Lema
14
280970
1350040
2026-04-15T11:35:02Z
Swarabakti
18192
←Membuat halaman berisi '{{kategori otomatis}}'
1350040
wikitext
text/x-wiki
{{kategori otomatis}}
tka0fgn87px6unlh07hbwnzmlebon2d
Kategori:dun:Verba
14
280971
1350041
2026-04-15T11:35:21Z
Swarabakti
18192
←Membuat halaman berisi '{{kategori otomatis}}'
1350041
wikitext
text/x-wiki
{{kategori otomatis}}
tka0fgn87px6unlh07hbwnzmlebon2d
Kategori:kxd:Lema
14
280972
1350042
2026-04-15T11:35:27Z
Swarabakti
18192
←Membuat halaman berisi '{{kategori otomatis}}'
1350042
wikitext
text/x-wiki
{{kategori otomatis}}
tka0fgn87px6unlh07hbwnzmlebon2d
Kategori:xmm:Istilah dengan tautan audio
14
280973
1350043
2026-04-15T11:35:35Z
Swarabakti
18192
←Membuat halaman berisi '{{kategori otomatis}}'
1350043
wikitext
text/x-wiki
{{kategori otomatis}}
tka0fgn87px6unlh07hbwnzmlebon2d
Kategori:xmm:Pemeliharaan halaman
14
280974
1350044
2026-04-15T11:35:47Z
Swarabakti
18192
←Membuat halaman berisi '{{kategori otomatis}}'
1350044
wikitext
text/x-wiki
{{kategori otomatis}}
tka0fgn87px6unlh07hbwnzmlebon2d
Kategori:osi:Istilah rangkaian kata
14
280975
1350045
2026-04-15T11:36:16Z
Swarabakti
18192
←Membuat halaman berisi '{{kategori otomatis}}'
1350045
wikitext
text/x-wiki
{{kategori otomatis}}
tka0fgn87px6unlh07hbwnzmlebon2d
Kategori:nia:Istilah dengan tautan audio
14
280976
1350046
2026-04-15T11:36:21Z
Swarabakti
18192
←Membuat halaman berisi '{{kategori otomatis}}'
1350046
wikitext
text/x-wiki
{{kategori otomatis}}
tka0fgn87px6unlh07hbwnzmlebon2d
Kategori:cje:Lema
14
280977
1350047
2026-04-15T11:36:24Z
Swarabakti
18192
←Membuat halaman berisi '{{kategori otomatis}}'
1350047
wikitext
text/x-wiki
{{kategori otomatis}}
tka0fgn87px6unlh07hbwnzmlebon2d
Kategori:nia:Pemeliharaan halaman
14
280978
1350048
2026-04-15T11:36:58Z
Swarabakti
18192
←Membuat halaman berisi '{{kategori otomatis}}'
1350048
wikitext
text/x-wiki
{{kategori otomatis}}
tka0fgn87px6unlh07hbwnzmlebon2d
Kategori:mwv:Lema
14
280979
1350049
2026-04-15T11:37:17Z
Swarabakti
18192
←Membuat halaman berisi '{{kategori otomatis}}'
1350049
wikitext
text/x-wiki
{{kategori otomatis}}
tka0fgn87px6unlh07hbwnzmlebon2d
Kategori:tsg:Pronomina
14
280980
1350051
2026-04-15T11:41:12Z
Swarabakti
18192
←Membuat halaman berisi '{{kategori otomatis}}'
1350051
wikitext
text/x-wiki
{{kategori otomatis}}
tka0fgn87px6unlh07hbwnzmlebon2d
Kategori:ab:Lema
14
280981
1350053
2026-04-15T11:43:13Z
Swarabakti
18192
←Membuat halaman berisi '{{kategori otomatis}}'
1350053
wikitext
text/x-wiki
{{kategori otomatis}}
tka0fgn87px6unlh07hbwnzmlebon2d
Kategori:tuj:Istilah dengan tautan audio
14
280982
1350054
2026-04-15T11:44:19Z
Swarabakti
18192
←Membuat halaman berisi '{{kategori otomatis}}'
1350054
wikitext
text/x-wiki
{{kategori otomatis}}
tka0fgn87px6unlh07hbwnzmlebon2d
Kategori:mqg:Istilah dengan tautan audio
14
280983
1350055
2026-04-15T11:44:23Z
Swarabakti
18192
←Membuat halaman berisi '{{kategori otomatis}}'
1350055
wikitext
text/x-wiki
{{kategori otomatis}}
tka0fgn87px6unlh07hbwnzmlebon2d
Kategori:tuj:Nomina
14
280984
1350056
2026-04-15T11:44:26Z
Swarabakti
18192
←Membuat halaman berisi '{{kategori otomatis}}'
1350056
wikitext
text/x-wiki
{{kategori otomatis}}
tka0fgn87px6unlh07hbwnzmlebon2d
Kategori:tuj:Verba
14
280985
1350057
2026-04-15T11:44:27Z
Swarabakti
18192
←Membuat halaman berisi '{{kategori otomatis}}'
1350057
wikitext
text/x-wiki
{{kategori otomatis}}
tka0fgn87px6unlh07hbwnzmlebon2d
Kategori:mqg:Pemeliharaan halaman
14
280986
1350058
2026-04-15T11:44:37Z
Swarabakti
18192
←Membuat halaman berisi '{{kategori otomatis}}'
1350058
wikitext
text/x-wiki
{{kategori otomatis}}
tka0fgn87px6unlh07hbwnzmlebon2d
Kategori:tuj:Pemeliharaan halaman
14
280987
1350059
2026-04-15T11:45:21Z
Swarabakti
18192
←Membuat halaman berisi '{{kategori otomatis}}'
1350059
wikitext
text/x-wiki
{{kategori otomatis}}
tka0fgn87px6unlh07hbwnzmlebon2d
Kategori:tk:Lema
14
280988
1350060
2026-04-15T11:45:37Z
Swarabakti
18192
←Membuat halaman berisi '{{kategori otomatis}}'
1350060
wikitext
text/x-wiki
{{kategori otomatis}}
tka0fgn87px6unlh07hbwnzmlebon2d
Kategori:su:Istilah rangkaian kata
14
280989
1350061
2026-04-15T11:45:55Z
Swarabakti
18192
←Membuat halaman berisi '{{kategori otomatis}}'
1350061
wikitext
text/x-wiki
{{kategori otomatis}}
tka0fgn87px6unlh07hbwnzmlebon2d
Kategori:ljp:Adverbia
14
280990
1350062
2026-04-15T11:46:27Z
Swarabakti
18192
←Membuat halaman berisi '{{kategori otomatis}}'
1350062
wikitext
text/x-wiki
{{kategori otomatis}}
tka0fgn87px6unlh07hbwnzmlebon2d