Wiktionary
mswiktionary
https://ms.wiktionary.org/wiki/Laman_Utama
MediaWiki 1.39.0-wmf.25
case-sensitive
Media
Khas
Perbincangan
Pengguna
Perbincangan pengguna
Wiktionary
Perbincangan Wiktionary
Fail
Perbincangan fail
MediaWiki
Perbincangan MediaWiki
Templat
Perbincangan templat
Bantuan
Perbincangan bantuan
Kategori
Perbincangan kategori
Lampiran
Perbincangan lampiran
Rima
Perbincangan rima
Tesaurus
Perbincangan tesaurus
Indeks
Perbincangan indeks
Petikan
Perbincangan petikan
Rekonstruksi
Perbincangan rekonstruksi
Padanan isyarat
Perbincangan padanan isyarat
Konkordans
Perbincangan konkordans
TimedText
TimedText talk
Modul
Perbincangan modul
Alat
Perbincangan alat
Penerangan alat
Perbincangan penerangan alat
aku
0
1916
129781
120836
2022-08-21T13:35:29Z
Tofeiku
2269
/* Kata sifat کات صيفت */
wikitext
text/x-wiki
{{Wikipedia}}
{{Pautan Projek Wikimedia}}
==Bahasa Melayu==
===Kata ganti diri===
{{head|ms|kata ganti diri|Ejaan Jawi|اکو}}
# [[aku|Aku]] {{gloss|kata ganti diri pertama}}
#: '''Aku''' orang itu.
# [[aku]] {{gloss|objek langsung kata kerja}}
# [[aku]] {{gloss|objek kata depan}}
# [[aku]] {{gloss|objek tidak langsung kata kerja}}
#: Ini '''aku'''.
# [[aku]] {{gloss|kepunyaan [[saya]]}}
#: Ini beg '''aku'''.
====Nota penggunaan====
* Tidak harus digunakan apabila bercakap kepada sesiapa yang tua atau status yang lebih tinggi.
====Sinonim====
* {{l|ms|saya}}, {{l|ms|sahaya}} {{qualifier|formal}}
* {{l|ms|beta}} {{qualifier|oleh diraja}}
* {{l|ms|patik}} {{qualifier|oleh rakyat ketika dihadapan raja}}
====Antonim====
* [[anda]], [[anta]], [[awak]], [[dikau]], [[engkau]], [[kamu]].
===Etimologi===
Dari {{etyl|poz-mly-pro|ms}} {{m|poz-mly-pro|*aku}}, dari {{etyl|poz-mcm-pro|ms}} {{m|poz-mcm-pro|*aku}}, dari {{etyl|poz-msa-pro|ms}} {{m|poz-msa-pro|*aku}}, dari {{etyl|poz-sus-pro|ms}} {{m|poz-sus-pro|*aku}}, dari {{etyl|poz-pro|ms}} {{m|poz-pro|*aku}}, dari {{etyl|map-pro|ms}} {{m|map-pro|*aku}}.
===Bentuk alternatif===
* {{l|ms|ku}} ({{l|ms|ku-}} / {{l|ms|-ku}})
* {{l|ms|daku}}
* {{l|ms|اکو|sc=Arab}}
* {{l|ms|کو|sc=Arab}} ({{l|ms|کو-|sc=Arab}} / {{l|ms|-کو|sc=Arab}})
* {{l|ms|داکو|sc=Arab}}
===Sebutan===
* {{dewan|a|ku}}
* {{IPA|ms|/aku/}}
* {{rhymes|ms|aku|ku|u}}
* {{audio|ms|Ms-MY-aku.ogg|Audio (MY)}}
===Lihat juga===
{{ms-personal pronouns}}
====Terjemahan====
{{atas}}
* Amuzgo: ja
* Arab: {{ARchar|انا}} (’ána)
* Azeri: mən
* Bambara: ne
* Basque: ni, nik
* Belanda: ik
* Bislama: mi
* Blackfoot: niisto
* Bosnia: ja
* Bulgaria: аз (az)
* Catalan: jo
* Cina:
*: Hakka: 我 (ngài)
*: Kantonis: 我 (ngo5)
*: Mandarin: 我 (wǒ)
*: Minnan: 我 (góa)
* Cree: niya
* Czech: já
* Denmark: jeg
* Dyirbal: ŋaɖa
* Esperanto: mi
* Estonia: mina, ma
* Fiji: au
* Finland: minä
* Frisia: ik
* Gaelic Scotland: mi, mise
* Georgia: მე (me)
* Greek:
*: Kuno: ἐγώ (egó)
*: Moden: εγώ (eghó)
* Guaraní: che
* Hawaii: au / wau, a‘u
* Hebrew: אני (aní)
* Hindi: मैं (maĩ)
* Hungary: én
* Iceland: ég
* Ido: me
* Indonesia: '''aku'''
* Inggeris: I, me
* Interlingua: io
* Ireland: mé, mise
* Itali: io
* Jepun: 私 (わたし, watashí; わたくし, watakushí) (''formal''), 私 (あたし, atashi) ({{f}}) , 僕 (ぼく, {{m|ja|g=m|ぼく|bóku}}), 俺 (おれ, {{m|ja|g=m|ore}}) (''tidak-formal'')
{{tengah}}
* Jerman: ich
* Kabyle: nekk
* Korea: 나 (na)
* Kyrgyz: мен (men)
* Latin: ego
* Latvia: es
* Limburgish: ich
* Lithuania: aš
* Lojban: pami
* Low Saxon: ik
* Manchu: (bi)
* Manx: mee, mish
* Navajo: shí
* Norway:
*: bokmål: jeg
*: nynorsk: eg
* Ojibwe: niin
* Perancis: je
* Persia: مَن (mæn)
* Pitjantjatjara: ngayulu
* Poland: ja
* Portugis: eu
* Quechua: ñuqa
* Romania: eu
* Rusia: я (ja)
* Sepanyol: yo
* Sicilian: iò, iù, iu
* Slovak: ja
* Slovene: jaz
* Swahili: mimi
* Sweden: jag
* Tagalog: ko (''format ng''), akin (''format sa''), ako (''format ang'')
* Thai: ผม (pom, {{m}}), ดิฉัน (di-chan, {{f}}), ฉัน (chan, ''tidak formall'')
* Tok Pisin: mi
* Tupinambá: ixé, xe
* Turki: ben
* Ukraine: я (ja)
* Urdu: میں (maĩ)
* Vietnam: tôi
* Volapük: ob
* Xũ: mi
* Yiddish: איך (ich)
* Yoruba: mo, n, mi, mà
* Yup'ik: wiinga
{{bawah}}
===Terbitan===
* [[akuan]]: pernyataan yang benar.
* [[beraku-akuan]]: berjanji setia sebagai (saudara dll).
* [[mengaku]]: mengatakan benar.
* [[pengakuan]]: kelakuan pengataan benar.
[[Kategori:Perkataan Melayu]]
----
{{bjn
}}
===Kata ganti كات ݢنتي===
{{head|bjn|kata ganti diri}}
# [[aku|Aku]] {{gloss|kata ganti diri pertama}}
# [[aku]] {{gloss|objek langsung kata kerja}}
# [[aku]] {{gloss|objek kata depan}}
# [[aku]] {{gloss|objek tidak langsung kata kerja}}
# [[aku]] {{gloss|kepunyaan [[saya]]}}<br>
=== Etimologi ايتيمولوݢي===
Daripada {{inh|bjn|poz-mly-pro|*aku}}, daripada {{inh|bjn|poz-mcm-pro|*aku}}, daripada {{inh|bjn|poz-msa-pro|*aku}}, daripada {{inh|bjn|poz-sus-pro|*aku}}, daripada {{inh|bjn|poz-pro|*aku}}, daripada {{inh|bjn|map-pro|*aku}}.<br>
----
{{gn
}}
===Kata sifat کات صيفت===
{{head|gn|kata sifat}}
# [[hot]]<br>
----
{{haw
}}
===Kata nama کات نام===
{{head|haw|kata nama}}
# [[bonito]], tuna [[cakalang]] (''[[Katsuwonus pelamis]]'')
====Nota penggunaan نوتا ڤڠݢونا<sup>ء</sup>ن====
* ''Mai'' dan ''aku'' mungkin menukar maksud kata kerja:
*: ''aʻo mai'' ("belajar") - ''aʻo '''aku''''' ("mengajar")
*: ''kūʻai mai'' ("membeli") - ''kūʻai '''aku''''' ("menjual")
===Partikel ڤرتيكل===
{{head|haw|partikel}}
# arah menjauhi dari si bercakap, [[pergi]]
# [[akan datang]], [[kemudian]], [[paling awal]], [[akhir]] (minggu, tahun, dll.)
=====Sinonim سينونيم=====
* {{l|haw|akula}}<br>
=====Antonim انتونيم=====
* {{l|haw|mai}}, {{l|haw|maila}}<br>
----
==Bahasa Indonesia==
===Etimologi===
Dari {{proto|Melayu-Polinesia|aku||i-aku|bahasa=id}}, dari {{proto|Austronesia|aku||i-aku|bahasa=id}}.
===Sebutan===
* {{AFA|/aku/|bahasa=id}}
===Takrifan===
{{id-kgn}}
* Kata ganti [[diri]] pertama tunggal; Digunakan untuk menyatakan diri sendiri, {{l|id|saya}}.
[[Kategori:Perkataan Indonesia]]
----
==Bahasa Jepun==
===Romaji===
{{romaji|あく}}
# {{ja-def|灰汁}} [[kekam]]
# {{ja-def|悪}} [[jahat]], [[maksiat]], [[salah]]
# {{ja-def|開く}} [[buka]]
# {{ja-def|空く}} [[kosong]]
[[Kategori:Perkataan Jepun]]
[[Kategori:Romaji Jepun]]
qdmnmhdip44z4zxv4rdae3f1n8fyt86
Wiktionary:Laman Utama/Isi
4
2817
129816
113260
2022-08-21T14:58:13Z
Tofeiku
2269
lampiran
wikitext
text/x-wiki
<!-- "BAHASA" STARTS FROM HERE. -->
{| width="100%" "cellpadding="0" cellspacing="0" style="border:1px solid #aaaaaa; margin-bottom:.5em;"
! align="center" style="background-color:#006699; color:#ffffff;" |
Bahasa
|-
<table><tr><td align="center" valign="top" style="background:#f9f9ff; padding:8px">
[[Wiktionary:Golongan kata|Golongan kata]] -
[[Wiktionary:Jenis ayat|Jenis ayat]] -
[[Wiktionary:Petunjuk gaya|Petunjuk gaya]] -
[[Wiktionary:Sebutan|Sebutan]] -
[[Wiktionary:Senarai bahasa|Senarai bahasa]] -
[[Wiktionary:Standard Definisi Wiktionary|Standard definisi Wiktionary]] -
[[Wiktionary:Sumber untuk penterjemah|Sumber untuk penterjemah]] -
[[Wiktionary:Tatabahasa|Tatabahasa]]
</td></tr></table>
|}<!-- "BAHASA" ENDS HERE. -->
<!-- "KARANGAN" STARTS FROM HERE. -->
{| width="100%" "cellpadding="0" cellspacing="0" style="border:1px solid #aaaaaa; margin-bottom:.5em;"
! align="center" style="background-color:#006699; color:#ffffff;" |
Karangan
|-
<table><tr><td align="center" valign="top" style="background:#f9f9ff; padding:8px">
[[Wiktionary:Cara pengkategorian lain|Cara pengkategorian lain]] -
[[Wiktionary:Ikut bahagian ucapan|Ikut bahagian ucapan]] -
[[Wiktionary:Ikut panjang perkataan (terpanjang)|Ikut panjang perkataan]] -
[[Wiktionary:Tinjau|Tinjau]] -
[[Wiktionary:Senarai perkataan mengikut susunan abjad|Ikut susunan abjad]] -
[[Wiktionary:Rima|Rima]] -
[[Wiktionary:Neologisme|Neologisme]] -
[[Wiktionary:Pengelasan tesaurus Roget|Pengelasan tesaurus Roget]] -
[[Wiktionary:Peribahasa|Peribahasa]] -
[[Wiktionary:Senarai akronim dan singkatan|Senarai akronim dan singkatan]] -
[[Wiktionary:Senarai kekerapan kata|Senarai kekerapan kata]] -
[[Wiktionary:Senarai Swadesh|Senarai Swadesh]] -
[[Wiktionary:Senarai terjemahan Consumerium|Senarai terjemahan Consumerium]] -
[[Wiktionary:Simpulan bahasa|Simpulan bahasa]] -
[[Wiktionary:Sumbangan permulaan|Sumbangan permulaan]] -
[[Wiktionary:Templat infleksi|Templat infleksi]]
</td></tr></table>
|}<!-- "KARANGAN" ENDS HERE. -->
<!-- "LAMPIRAN" STARTS FROM HERE. -->
{| width="100%" "cellpadding="0" cellspacing="0" style="border:1px solid #aaaaaa; margin-bottom:.5em;"
! align="center" style="background-color:#006699; color:#ffffff;" |
Lampiran
|-
<table><tr><td align="center" valign="top" style="background:#f9f9ff; padding:8px">
[[Lampiran:Berat dan ukuran|Berat dan ukuran]] -
[[Wiktionary:Buruj|Buruj]] -
[[Wiktionary:Haiwan|Haiwan]] -
[[Lampiran:Imbuhan akhiran|Imbuhan akhiran]] -
[[Wiktionary:Cangjie Cina|Cangjie cina]] -
[[Wiktionary:Indeks empat penjuru Cina|Indeks empat penjuru Cina]] -
[[Wiktionary:Indeks jumlah goresan Cina|Indeks jumlah goresan Cina]] -
[[Wiktionary:Indeks perkataan bahasa Indonesia|Indeks perkataan bahasa Indonesia]] -
[[Wiktionary:Indeks Pinyin Cina|Indeks Pinyin Cina]] -
[[Wiktionary:Indeks radikal Cina|Indeks radikal Cina]] -
[[Wiktionary:Infleksi kata kerja|Infleksi kata kerja]] -
[[Wiktionary:Infleksi kata nama|Infleksi kata nama]] -
[[Wiktionary:Kata awalan|Kata awalan]] -
[[Lampiran:Kata kerja tidak seragam|Kata kerja tidak seragam]] -
[[Lampiran:Kata majmuk tidak seragam|Kata majmuk tidak seragam]] -
[[Wiktionary:Konkordans|Konkordans]] -
[[Lampiran:Nama akhir|Nama akhir]] -
[[Lampiran:Nama pertama|Nama pertama]] -
[[Lampiran:Nama tempat|Nama tempat]] -
[[Wiktionary:Negara dan wilayah dunia|Negara dan wilayah dunia]] -
[[Wiktionary:Nombor|Nombor]] -
[[Wiktionary:Perumpamaan|Perumpamaan]] -
[[Wiktionary:Takwim|Takwim]] -
[[Wiktionary:Unikod|Unikod]] -
[[Lampiran:Unsur kimia|Unsur kimia]] -
[[Lampiran:Warna|Warna]]
</td></tr></table>
|}<!-- "LAMPIRAN" ENDS HERE. -->
<!-- "BANTUAN" STARTS FROM HERE. -->
{| width="100%" "cellpadding="0" cellspacing="0" style="border:1px solid #aaaaaa; margin-bottom:.5em;"
! align="center" style="background-color:#006699; color:#ffffff;" |
Bantuan
|-
<table><tr><td align="center" valign="top" style="background:#f9f9ff; padding:8px">
[[Wiktionary:Polisi penggunaan imej|Dasar imej]] -
[[Wiktionary:FAQ|FAQ]] -
[[Wiktionary:Faktor kemasukan|Faktor kemasukan]] -
[[Wiktionary:Glosari|Glosari]] -
[[Wiktionary:Kedai Kopi|Kedai kopi]] -
[[Wiktionary:Memulakan laman baru|Menambah lema]] -
[[Wiktionary:Templat|Templat]]
</td></tr></table>
|}<!-- "BANTUAN" ENDS HERE. -->
gm5m2zkn5a6s7sh43rna0ojiw8z85xf
129817
129816
2022-08-21T14:59:12Z
Tofeiku
2269
ejaan
wikitext
text/x-wiki
<!-- "BAHASA" STARTS FROM HERE. -->
{| width="100%" "cellpadding="0" cellspacing="0" style="border:1px solid #aaaaaa; margin-bottom:.5em;"
! align="center" style="background-color:#006699; color:#ffffff;" |
Bahasa
|-
<table><tr><td align="center" valign="top" style="background:#f9f9ff; padding:8px">
[[Wiktionary:Golongan kata|Golongan kata]] -
[[Wiktionary:Jenis ayat|Jenis ayat]] -
[[Wiktionary:Petunjuk gaya|Petunjuk gaya]] -
[[Wiktionary:Sebutan|Sebutan]] -
[[Wiktionary:Senarai bahasa|Senarai bahasa]] -
[[Wiktionary:Standard Definisi Wiktionary|Standard definisi Wiktionary]] -
[[Wiktionary:Sumber untuk penterjemah|Sumber untuk penterjemah]] -
[[Wiktionary:Tatabahasa|Tatabahasa]]
</td></tr></table>
|}<!-- "BAHASA" ENDS HERE. -->
<!-- "KARANGAN" STARTS FROM HERE. -->
{| width="100%" "cellpadding="0" cellspacing="0" style="border:1px solid #aaaaaa; margin-bottom:.5em;"
! align="center" style="background-color:#006699; color:#ffffff;" |
Karangan
|-
<table><tr><td align="center" valign="top" style="background:#f9f9ff; padding:8px">
[[Wiktionary:Cara pengkategorian lain|Cara pengkategorian lain]] -
[[Wiktionary:Ikut bahagian ucapan|Ikut bahagian ucapan]] -
[[Wiktionary:Ikut panjang perkataan (terpanjang)|Ikut panjang perkataan]] -
[[Wiktionary:Tinjau|Tinjau]] -
[[Wiktionary:Senarai perkataan mengikut susunan abjad|Ikut susunan abjad]] -
[[Wiktionary:Rima|Rima]] -
[[Wiktionary:Neologisme|Neologisme]] -
[[Wiktionary:Pengelasan tesaurus Roget|Pengelasan tesaurus Roget]] -
[[Wiktionary:Peribahasa|Peribahasa]] -
[[Wiktionary:Senarai akronim dan singkatan|Senarai akronim dan singkatan]] -
[[Wiktionary:Senarai kekerapan kata|Senarai kekerapan kata]] -
[[Wiktionary:Senarai Swadesh|Senarai Swadesh]] -
[[Wiktionary:Senarai terjemahan Consumerium|Senarai terjemahan Consumerium]] -
[[Wiktionary:Simpulan bahasa|Simpulan bahasa]] -
[[Wiktionary:Sumbangan permulaan|Sumbangan permulaan]] -
[[Wiktionary:Templat infleksi|Templat infleksi]]
</td></tr></table>
|}<!-- "KARANGAN" ENDS HERE. -->
<!-- "LAMPIRAN" STARTS FROM HERE. -->
{| width="100%" "cellpadding="0" cellspacing="0" style="border:1px solid #aaaaaa; margin-bottom:.5em;"
! align="center" style="background-color:#006699; color:#ffffff;" |
Lampiran
|-
<table><tr><td align="center" valign="top" style="background:#f9f9ff; padding:8px">
[[Lampiran:Berat dan ukuran|Berat dan ukuran]] -
[[Wiktionary:Buruj|Buruj]] -
[[Wiktionary:Haiwan|Haiwan]] -
[[Lampiran:Imbuhan akhiran|Imbuhan akhiran]] -
[[Wiktionary:Cangjie Cina|Cangjie Cina]] -
[[Wiktionary:Indeks empat penjuru Cina|Indeks empat penjuru Cina]] -
[[Wiktionary:Indeks jumlah goresan Cina|Indeks jumlah goresan Cina]] -
[[Wiktionary:Indeks perkataan bahasa Indonesia|Indeks perkataan bahasa Indonesia]] -
[[Wiktionary:Indeks Pinyin Cina|Indeks Pinyin Cina]] -
[[Wiktionary:Indeks radikal Cina|Indeks radikal Cina]] -
[[Wiktionary:Infleksi kata kerja|Infleksi kata kerja]] -
[[Wiktionary:Infleksi kata nama|Infleksi kata nama]] -
[[Wiktionary:Kata awalan|Kata awalan]] -
[[Lampiran:Kata kerja tidak seragam|Kata kerja tidak seragam]] -
[[Lampiran:Kata majmuk tidak seragam|Kata majmuk tidak seragam]] -
[[Wiktionary:Konkordans|Konkordans]] -
[[Lampiran:Nama akhir|Nama akhir]] -
[[Lampiran:Nama pertama|Nama pertama]] -
[[Lampiran:Nama tempat|Nama tempat]] -
[[Wiktionary:Negara dan wilayah dunia|Negara dan wilayah dunia]] -
[[Wiktionary:Nombor|Nombor]] -
[[Wiktionary:Perumpamaan|Perumpamaan]] -
[[Wiktionary:Takwim|Takwim]] -
[[Wiktionary:Unikod|Unikod]] -
[[Lampiran:Unsur kimia|Unsur kimia]] -
[[Lampiran:Warna|Warna]]
</td></tr></table>
|}<!-- "LAMPIRAN" ENDS HERE. -->
<!-- "BANTUAN" STARTS FROM HERE. -->
{| width="100%" "cellpadding="0" cellspacing="0" style="border:1px solid #aaaaaa; margin-bottom:.5em;"
! align="center" style="background-color:#006699; color:#ffffff;" |
Bantuan
|-
<table><tr><td align="center" valign="top" style="background:#f9f9ff; padding:8px">
[[Wiktionary:Polisi penggunaan imej|Dasar imej]] -
[[Wiktionary:FAQ|FAQ]] -
[[Wiktionary:Faktor kemasukan|Faktor kemasukan]] -
[[Wiktionary:Glosari|Glosari]] -
[[Wiktionary:Kedai Kopi|Kedai kopi]] -
[[Wiktionary:Memulakan laman baru|Menambah lema]] -
[[Wiktionary:Templat|Templat]]
</td></tr></table>
|}<!-- "BANTUAN" ENDS HERE. -->
7b0cr8gfmemhfftb58nq4w6xdlt62a2
129819
129817
2022-08-21T15:02:17Z
Tofeiku
2269
baiki
wikitext
text/x-wiki
<!-- "BAHASA" STARTS FROM HERE. -->
{| width="100%" "cellpadding="0" cellspacing="0" style="border:1px solid #aaaaaa; margin-bottom:.5em;"
! align="center" style="background-color:#006699; color:#ffffff;" |
Bahasa
|-
<table><tr><td align="center" valign="top" style="background:#f9f9ff; padding:8px">
[[Wiktionary:Golongan kata|Golongan kata]] -
[[Wiktionary:Jenis ayat|Jenis ayat]] -
[[Wiktionary:Petunjuk gaya|Petunjuk gaya]] -
[[Wiktionary:Sebutan|Sebutan]] -
[[Wiktionary:Senarai bahasa|Senarai bahasa]] -
[[Wiktionary:Standard Definisi Wiktionary|Standard definisi Wiktionary]] -
[[Wiktionary:Sumber untuk penterjemah|Sumber untuk penterjemah]] -
[[Wiktionary:Tatabahasa|Tatabahasa]]
</td></tr></table>
|}<!-- "BAHASA" ENDS HERE. -->
<!-- "KARANGAN" STARTS FROM HERE. -->
{| width="100%" "cellpadding="0" cellspacing="0" style="border:1px solid #aaaaaa; margin-bottom:.5em;"
! align="center" style="background-color:#006699; color:#ffffff;" |
Karangan
|-
<table><tr><td align="center" valign="top" style="background:#f9f9ff; padding:8px">
[[Wiktionary:Cara pengkategorian lain|Cara pengkategorian lain]] -
[[Wiktionary:Ikut bahagian ucapan|Ikut bahagian ucapan]] -
[[Wiktionary:Ikut panjang perkataan (terpanjang)|Ikut panjang perkataan]] -
[[Wiktionary:Tinjau|Tinjau]] -
[[Wiktionary:Senarai perkataan mengikut susunan abjad|Ikut susunan abjad]] -
[[Wiktionary:Rima|Rima]] -
[[Wiktionary:Neologisme|Neologisme]] -
[[Wiktionary:Pengelasan tesaurus Roget|Pengelasan tesaurus Roget]] -
[[Wiktionary:Peribahasa|Peribahasa]] -
[[Wiktionary:Senarai akronim dan singkatan|Senarai akronim dan singkatan]] -
[[Wiktionary:Senarai kekerapan kata|Senarai kekerapan kata]] -
[[Wiktionary:Senarai Swadesh|Senarai Swadesh]] -
[[Wiktionary:Senarai terjemahan Consumerium|Senarai terjemahan Consumerium]] -
[[Wiktionary:Simpulan bahasa|Simpulan bahasa]] -
[[Wiktionary:Sumbangan permulaan|Sumbangan permulaan]] -
[[Wiktionary:Templat infleksi|Templat infleksi]]
</td></tr></table>
|}<!-- "KARANGAN" ENDS HERE. -->
<!-- "LAMPIRAN" STARTS FROM HERE. -->
{| width="100%" "cellpadding="0" cellspacing="0" style="border:1px solid #aaaaaa; margin-bottom:.5em;"
! align="center" style="background-color:#006699; color:#ffffff;" |
Lampiran
|-
<table><tr><td align="center" valign="top" style="background:#f9f9ff; padding:8px">
[[Lampiran:Berat dan ukuran|Berat dan ukuran]] -
[[Wiktionary:Buruj|Buruj]] -
[[Wiktionary:Haiwan|Haiwan]] -
[[Lampiran:Imbuhan akhiran|Imbuhan akhiran]] -
[[Lampiran:Cangjie Cina|Cangjie Cina]] -
[[Wiktionary:Indeks empat penjuru Cina|Indeks empat penjuru Cina]] -
[[Wiktionary:Indeks jumlah goresan Cina|Indeks jumlah goresan Cina]] -
[[Wiktionary:Indeks perkataan bahasa Indonesia|Indeks perkataan bahasa Indonesia]] -
[[Wiktionary:Indeks Pinyin Cina|Indeks Pinyin Cina]] -
[[Wiktionary:Indeks radikal Cina|Indeks radikal Cina]] -
[[Wiktionary:Infleksi kata kerja|Infleksi kata kerja]] -
[[Wiktionary:Infleksi kata nama|Infleksi kata nama]] -
[[Wiktionary:Kata awalan|Kata awalan]] -
[[Lampiran:Kata kerja tidak seragam|Kata kerja tidak seragam]] -
[[Lampiran:Kata majmuk tidak seragam|Kata majmuk tidak seragam]] -
[[Wiktionary:Konkordans|Konkordans]] -
[[Lampiran:Nama akhir|Nama akhir]] -
[[Lampiran:Nama pertama|Nama pertama]] -
[[Lampiran:Nama tempat|Nama tempat]] -
[[Wiktionary:Negara dan wilayah dunia|Negara dan wilayah dunia]] -
[[Wiktionary:Nombor|Nombor]] -
[[Wiktionary:Perumpamaan|Perumpamaan]] -
[[Wiktionary:Takwim|Takwim]] -
[[Wiktionary:Unikod|Unikod]] -
[[Lampiran:Unsur kimia|Unsur kimia]] -
[[Lampiran:Warna|Warna]]
</td></tr></table>
|}<!-- "LAMPIRAN" ENDS HERE. -->
<!-- "BANTUAN" STARTS FROM HERE. -->
{| width="100%" "cellpadding="0" cellspacing="0" style="border:1px solid #aaaaaa; margin-bottom:.5em;"
! align="center" style="background-color:#006699; color:#ffffff;" |
Bantuan
|-
<table><tr><td align="center" valign="top" style="background:#f9f9ff; padding:8px">
[[Wiktionary:Polisi penggunaan imej|Dasar imej]] -
[[Wiktionary:FAQ|FAQ]] -
[[Wiktionary:Faktor kemasukan|Faktor kemasukan]] -
[[Wiktionary:Glosari|Glosari]] -
[[Wiktionary:Kedai Kopi|Kedai kopi]] -
[[Wiktionary:Memulakan laman baru|Menambah lema]] -
[[Wiktionary:Templat|Templat]]
</td></tr></table>
|}<!-- "BANTUAN" ENDS HERE. -->
actricnygz6zew9u6n2s98qpp7visj2
Templat:ja-kanjitab
10
4443
129835
94580
2022-08-22T07:09:56Z
Tofeiku
2269
kemas
wikitext
text/x-wiki
{{#invoke:ja-kanjitab|show}}<noinclude>{{pendokumenan}}</noinclude>
60r2lfnq4z34gzvmldjd330ucbtqqzb
karya
0
7365
129893
106079
2022-08-22T08:29:26Z
PeaceSeekers
3334
wikitext
text/x-wiki
{{ms}}
===Takrifan===
{{ms-kn}}
# [[hasil]] kesenian; [[buatan]]; [[ciptaan]].
#: ''karya seni lukis.''
#: ''karya sastera.''
# [[kerja]].
====Kata terbitan====
* berkarya:
# menghasilkan karya (tulisan, ciptaan, gubahan, dsb).
#: ''Beliau berkarya untuk mengisi masa lapangnya.''
* pengkaryaan:
# perihal atau perbuatan menghasilkan karya; penciptaan (sesuatu karya)
#: ''Kumpulan penulis itu agak kurang cergas dalam soal pengkaryaan.''
* pengkarya:
# orang yang berkarya.
* karyawan:
# orang yang banyak menghasilkan karya.
===Etimologi===
Daripada {{etyl|sa}} {{term|कार्य||sc=Deva|tr=kārya|tindakan, perbuatan, tugas}}
===Sebutan===
{{dewan|kar|ya}}
===Tulisan Jawi===
{{ARchar|كاريا}}
===Terjemahan===
{{ter-atas|hasil sastera, seni atau intelek}}
* Armenia: {{t-|hy|աշխատանք|tr=ašxatank’}}, {{t-|hy|գործ|tr=gorç}}
* Belanda: {{t+|nl|werk|n}}, {{t|nl|werkstuk|n}}
* Croatia: {{t+|hr|rad|m}}, {{t-|hr|djelo|n}}
* Czech: [[dílo]] {{n}}, (mahakarya) mistrovská [[práce]] {{f}}
* Denmark: [[værk]] {{n}}
* Estonia: {{t-|et|teos}}
* Finland: {{t+|fi|teos}}
* Ibrani: {{he-translation|עבודה|avodá}} {{f}}, {{he-translation|מלאכה|melakhá}} {{f}}
* Inggeris: {{t+|en|work}}
* Itali: {{t+|it|lavoro}}, {{t+|it|opera}}
* Jepun: [[作品]] (さくひん, sakuhin), [[著作]] (ちょさく, chosaku)
* Korea: [[작품]] (jakpum)
{{ter-tengah}}
* Latin: {{t+|la|opus}}
* Perancis: {{t+|fr|travail|m}}
* Poland: {{t+|pl|dzieło|n}}
* Rusia: {{t+|ru|работа|f|tr=rabóta}}, {{t+|ru|труд|m|tr=trud}}, {{t+|ru|произведение|n|tr=proizvedénije}}
* Scots: [[wark]]
* Sepanyol: {{t+|es|obra|f}}
* Slovenia: {{t+|sl|delo|n}}
* Swahili: {{t+|sw|kazi|xs=Swahili}}
* Swedien: {{t+|sv|verk|n}}
* Telugu: {{t|te|మేధాశక్తి}}(mEdhASakti)
* Turki: {{t|tr|eser}}, {{t|tr|yapıt}}
{{ter-bawah}}
===Tesaurus===
; Sinonim:
# [[ciptaan]], gubahan, karangan, [[rekaan]], reka cipta, [[buatan]], nukilan, lukisan.
# [[kerja]], [[tugas]].
{{id}}
* Lihat takrifan bahasa Melayu.
[[Kategori:ms:Kesusasteraan]]
[[Kategori:ms:Seni]]
nxpnr042lxj4k95x9k9rrgu93nvdd7c
origami
0
7563
129890
106298
2022-08-22T08:28:50Z
PeaceSeekers
3334
wikitext
text/x-wiki
{{wikipedia}}
{{ms}}
[[Fail:折鶴 WUXGA.jpg|thumb|Origami kapal terbang]]
===Takrifan===
{{ms-kn}}
# [[seni|Seni]] [[lipat|melipat]] [[kertas]] dari Jepun.
# [[hasil|Hasil]] lipatan kertas.
===Etimologi===
{{bor|ms|ja|折り紙|tr=origami}}.
===Sebutan===
{{dewan|o|ri|ga|mi}}
===Tulisan Jawi===
{{ARchar|اوريڬامي}}
===Terjemahan===
{{ter-atas|Seni melipat kertas}}
* Arab: {{ARchar|أوريغامي}} ('urighaami) {{m}}, {{ARchar|طي الورق}} (Tayy al-wáraq) {{m}}
* Belanda: origami
* Cina:
*: Mandarin: {{Hani|折紙}}, {{Hani|折纸}} (zhézhǐ), {{Hani|折紙藝術}}, {{Hani|折纸艺术}} (zhézhǐ yìshù)
* Finland: origami
* Hungary: origami
* Ibrani: אוריגמי (origami) {{m}}
* Indonesia: origami
{{ter-tengah}}
* Inggeris: origami
* Iceland: origami {{n}}
* Jepun: 折り紙, 折紙 (おりがみ, origami)
* Jerman: Origami {{n}}
* Norway: origami {{m}}
* Perancis: origami {{m}}
* Rusia: {{Cyrl|оригами}} (origámi) {{n}} ''(tegar)''
* Sepanyol: papiroflexia {{f}}
* Turki: origami
{{ter-bawah}}
===Lihat juga===
* [[kirigami]].
{{id}}
* Lihat takrifan bahasa Melayu.
[[Kategori:ms:Seni]]
tv52mxbcyeyt7wgf2x5bc77h3ts624x
129891
129890
2022-08-22T08:29:06Z
PeaceSeekers
3334
wikitext
text/x-wiki
{{wikipedia}}
{{ms}}
[[Fail:折鶴 WUXGA.jpg|thumb|Origami kapal terbang]]
===Takrifan===
{{ms-kn}}
# [[seni|Seni]] [[lipat|melipat]] [[kertas]] dari Jepun.
# [[hasil|Hasil]] lipatan kertas.
===Etimologi===
Pinjaman {{bor|ms|ja|折り紙|tr=origami}}.
===Sebutan===
{{dewan|o|ri|ga|mi}}
===Tulisan Jawi===
{{ARchar|اوريڬامي}}
===Terjemahan===
{{ter-atas|Seni melipat kertas}}
* Arab: {{ARchar|أوريغامي}} ('urighaami) {{m}}, {{ARchar|طي الورق}} (Tayy al-wáraq) {{m}}
* Belanda: origami
* Cina:
*: Mandarin: {{Hani|折紙}}, {{Hani|折纸}} (zhézhǐ), {{Hani|折紙藝術}}, {{Hani|折纸艺术}} (zhézhǐ yìshù)
* Finland: origami
* Hungary: origami
* Ibrani: אוריגמי (origami) {{m}}
* Indonesia: origami
{{ter-tengah}}
* Inggeris: origami
* Iceland: origami {{n}}
* Jepun: 折り紙, 折紙 (おりがみ, origami)
* Jerman: Origami {{n}}
* Norway: origami {{m}}
* Perancis: origami {{m}}
* Rusia: {{Cyrl|оригами}} (origámi) {{n}} ''(tegar)''
* Sepanyol: papiroflexia {{f}}
* Turki: origami
{{ter-bawah}}
===Lihat juga===
* [[kirigami]].
{{id}}
* Lihat takrifan bahasa Melayu.
[[Kategori:ms:Seni]]
5jseoc6yizxhf67fwjdkl51r5tvhwdg
buncit
0
7700
129770
105797
2022-08-21T12:47:18Z
Tofeiku
2269
kemas
wikitext
text/x-wiki
== Bahasa Melayu ==
===Takrifan===
====Kata nama====
# mengandungi lemak yang berlebihan di bahagian perut
# gemuk (penampilan fizikal)
====Kata sifat====
# [[berlemak]]
# [[gemuk]]
3e4rn830fxuehgu36fhjb0dcuti0ovj
129771
129770
2022-08-21T12:48:32Z
Tofeiku
2269
+templat
wikitext
text/x-wiki
== Bahasa Melayu ==
===Takrifan===
====Kata nama====
{{ms-kn}}
# mengandungi lemak yang berlebihan di bahagian perut
# gemuk (penampilan fizikal)
====Kata sifat====
{{ms-ks}}
# [[berlemak]]
# [[gemuk]]
0a9zsl47hlbpw1lv7rwn55nwdqoq0ch
Templat:jamak
10
9669
129892
111742
2022-08-22T08:29:13Z
Tofeiku
2269
kemas kini
wikitext
text/x-wiki
{{check deprecated lang param usage|lang={{{lang|}}}|<!--
-->{{#invoke:form of/templates|tagged_form_of_t|p}}<!--
-->{{#ifeq:{{NAMESPACE}}||{{#ifexist:{{#if:{{{lang|}}}|{{#invoke:languages/templates|makeEntryName|{{{lang}}}|{{{1|}}}}}|{{#invoke:languages/templates|makeEntryName|{{{1|}}}|{{{2|}}}}}}}||[[Kategori:Jamak berpautan merah untuk mufrad]]}}}}<!--
-->}}<!-- (end of {{check deprecated lang param usage}})
--><noinclude>{{pendokumenan}}</noinclude>
0ows2rr5yjuh7ikk11votv827tgim3d
Modul:script utilities
828
9742
129813
111649
2022-08-21T14:33:29Z
Tofeiku
2269
kemas kini
Scribunto
text/plain
local export = {}
--[=[
Modules used:
[[Module:script utilities/data]]
[[Module:scripts]]
[[Module:senseid]] (only when id's present)
[[Module:string utilities]] (only when hyphens in Korean text or spaces in vertical text)
[[Module:languages]]
[[Module:parameters]]
[[Module:utilities/format_categories]]
[[Module:debug/track]]
]=]
function export.is_Latin_script(sc)
-- Latn, Latf, Latinx, pjt-Latn
return sc:getCode():find("Lat") and true or false
end
-- Used by [[Template:lang]]
function export.lang_t(frame)
params = {
[1] = {},
[2] = { allow_empty = true, default = "" },
["sc"] = {},
["face"] = {},
["class"] = {},
}
local args = require("Module:parameters").process(frame:getParent().args, params)
local NAMESPACE = mw.title.getCurrentTitle().nsText
local lang = args[1] or (NAMESPACE == "Template" and "und") or error("Language code has not been specified. Please pass parameter 1 to the template.")
lang = require("Module:languages").getByCode(lang) or require("Module:languages").err(lang, 1)
local text = args[2]
local sc = args["sc"]
sc = (sc and (require("Module:scripts").getByCode(sc) or error("The script code \"" .. sc .. "\" is not valid.")) or nil)
local face = args["face"]
return export.tag_text(text, lang, sc, face, class)
end
-- Ustring turns on the codepoint-aware string matching. The basic string function
-- should be used for simple sequences of characters, Ustring function for
-- sets – [].
local function trackPattern(text, pattern, tracking, ustring)
local find = ustring and mw.ustring.find or string.find
if pattern and find(text, pattern) then
require("Module:debug/track")("script/" .. tracking)
end
end
local function track(text, lang, sc)
local U = mw.ustring.char
if lang and text then
local langCode = lang:getCode()
-- [[Special:WhatLinksHere/Template:tracking/script/ang/acute]]
if langCode == "ang" then
local decomposed = mw.ustring.toNFD(text)
local acute = U(0x301)
trackPattern(decomposed, acute, "ang/acute")
--[=[
[[Special:WhatLinksHere/Template:tracking/script/Greek/wrong-phi]]
[[Special:WhatLinksHere/Template:tracking/script/Greek/wrong-theta]]
[[Special:WhatLinksHere/Template:tracking/script/Greek/wrong-kappa]]
[[Special:WhatLinksHere/Template:tracking/script/Greek/wrong-rho]]
ϑ, ϰ, ϱ, ϕ should generally be replaced with θ, κ, ρ, φ.
]=]
elseif langCode == "el" or langCode == "grc" then
trackPattern(text, "ϑ", "Greek/wrong-theta")
trackPattern(text, "ϰ", "Greek/wrong-kappa")
trackPattern(text, "ϱ", "Greek/wrong-rho")
trackPattern(text, "ϕ", "Greek/wrong-phi")
--[=[
[[Special:WhatLinksHere/Template:tracking/script/Ancient Greek/spacing-coronis]]
[[Special:WhatLinksHere/Template:tracking/script/Ancient Greek/spacing-smooth-breathing]]
[[Special:WhatLinksHere/Template:tracking/script/Ancient Greek/wrong-apostrophe]]
When spacing coronis and spacing smooth breathing are used as apostrophes,
they should be replaced with right single quotation marks (’).
]=]
if langCode == "grc" then
trackPattern(text, U(0x1FBD), "Ancient Greek/spacing-coronis")
trackPattern(text, U(0x1FBF), "Ancient Greek/spacing-smooth-breathing")
trackPattern(text, "[" .. U(0x1FBD) .. U(0x1FBF) .. "]", "Ancient Greek/wrong-apostrophe", true)
end
-- [[Special:WhatLinksHere/Template:tracking/script/Russian/grave-accent]]
elseif langCode == "ru" then
local decomposed = mw.ustring.toNFD(text)
trackPattern(decomposed, U(0x300), "Russian/grave-accent")
-- [[Special:WhatLinksHere/Template:tracking/script/Tibetan/trailing-punctuation]]
elseif langCode == "bo" then
trackPattern(text, "[་།]$", "Tibetan/trailing-punctuation", true)
trackPattern(text, "[་།]%]%]$", "Tibetan/trailing-punctuation", true)
--[=[
[[Special:WhatLinksHere/Template:tracking/script/Thai/broken-ae]]
[[Special:WhatLinksHere/Template:tracking/script/Thai/broken-am]]
[[Special:WhatLinksHere/Template:tracking/script/Thai/wrong-rue-lue]]
]=]
elseif langCode == "th" then
trackPattern(text, "เ".."เ", "Thai/broken-ae")
trackPattern(text, "ํ[่้๊๋]?า", "Thai/broken-am", true)
trackPattern(text, "[ฤฦ]า", "Thai/wrong-rue-lue", true)
--[=[
[[Special:WhatLinksHere/Template:tracking/script/Lao/broken-ae]]
[[Special:WhatLinksHere/Template:tracking/script/Lao/broken-am]]
[[Special:WhatLinksHere/Template:tracking/script/Lao/possible-broken-ho-no]]
[[Special:WhatLinksHere/Template:tracking/script/Lao/possible-broken-ho-mo]]
[[Special:WhatLinksHere/Template:tracking/script/Lao/possible-broken-ho-lo]]
]=]
elseif langCode == "lo" then
trackPattern(text, "ເ".."ເ", "Lao/broken-ae")
trackPattern(text, "ໍ[່້໊໋]?າ", "Lao/broken-am", true)
trackPattern(text, "ຫນ", "Lao/possible-broken-ho-no")
trackPattern(text, "ຫມ", "Lao/possible-broken-ho-mo")
trackPattern(text, "ຫລ", "Lao/possible-broken-ho-lo")
--[=[
[[Special:WhatLinksHere/Template:tracking/script/Lü/broken-ae]]
[[Special:WhatLinksHere/Template:tracking/script/Lü/possible-wrong-sequence]]
]=]
elseif langCode == "khb" then
trackPattern(text, "ᦵ".."ᦵ", "Lü/broken-ae")
trackPattern(text, "[ᦀ-ᦫ][ᦵᦶᦷᦺ]", "Lü/possible-wrong-sequence", true)
end
end
end
-- Wrap text in the appropriate HTML tags with language and script class.
function export.tag_text(text, lang, sc, face, class, id)
if not sc then
sc = require("Module:scripts").findBestScript(text, lang)
end
track(text, lang, sc)
-- Replace space characters with newlines in Mongolian-script text, which is written top-to-bottom.
if sc:getDirection() == "down" and text:find(" ") then
text = require("Module:munge_text")(text, function(txt)
-- having extra parentheses makes sure only the first return value gets through
return (txt:gsub(" +", "<br>"))
end)
end
-- Hack Korean script text to remove hyphens.
-- XXX: This should be handled in a more general fashion, but needs to
-- be efficient by not doing anything if no hyphens are present, and currently this is the only
-- language needing such processing.
-- 20220221: Also convert 漢字(한자) to ruby, instead of needing [[Template:Ruby]].
if sc:getCode() == "Kore" and (text:find("%-") or text:find("[()]")) then
text = require("Module:munge_text")(text, function(txt)
-- Hani/Hang regex is a reasonable subset of Hani/Hang from [[Module:scripts/data]],
-- last checked on 20220221
txt = txt:gsub("%-", "")
txt = mw.ustring.gsub(txt, "([一-鿿㐀-䶿𠀀-𰀀-]+)%(([가-힣ᄀ-ᇿꥠ-ꥼힰ-ퟻ]+)%)", "<ruby>%1<rp>(</rp><rt>%2</rt><rp>)</rp></ruby>")
return txt
end)
end
if sc:getCode() == "Imag" then
face = nil
end
local function class_attr(classes)
table.insert(classes, 1, sc:getCode())
if class and class ~= '' then
table.insert(classes, class)
end
return 'class="' .. table.concat(classes, ' ') .. '"'
end
local function tag_attr(...)
local output = {}
if id then
table.insert(output, 'id="' .. require("Module:senseid").anchor(lang, id) .. '"')
end
table.insert(output, class_attr({...}) )
if lang then
table.insert(output, 'lang="' .. lang:getCode() .. '"')
end
return table.concat(output, " ")
end
if face == "hypothetical" then
-- [[Special:WhatLinksHere/Template:tracking/script-utilities/face/hypothetical]]
require("Module:debug/track")("script-utilities/face/hypothetical")
end
local data = mw.loadData("Module:script utilities/data").faces[face or "nil"]
local post = ""
if sc:getDirection() == "rtl" and (face == "translation" or mw.ustring.find(text, "%p$")) then
post = "‎"
end
-- Add a script wrapper
if data then
return ( data.prefix or "" ) .. '<' .. data.tag .. ' ' .. tag_attr(data.class) .. '>' .. text .. '</' .. data.tag .. '>' .. post
else
error('Invalid script face "' .. face .. '".')
end
end
function export.tag_translit(translit, lang, kind, attributes, is_manual)
if type(lang) == "table" then
lang = lang.getCode and lang:getCode()
or error("Second argument to tag_translit should be a language code or language object.")
end
local data = mw.loadData("Module:script utilities/data").translit[kind or "default"]
local opening_tag = {}
table.insert(opening_tag, data.tag)
if lang == "ja" then
table.insert(opening_tag, 'class="' .. (data.classes and data.classes .. " " or "") .. (is_manual and "manual-tr " or "") .. 'tr"')
else
table.insert(opening_tag, 'lang="' .. lang .. '-Latn"')
table.insert(opening_tag, 'class="' .. (data.classes and data.classes .. " " or "") .. (is_manual and "manual-tr " or "") .. 'tr Latn"')
end
if data.dir then
table.insert(opening_tag, 'dir="' .. data.dir .. '"')
end
table.insert(opening_tag, attributes)
return "<" .. table.concat(opening_tag, " ") .. ">" .. translit .. "</" .. data.tag .. ">"
end
function export.tag_transcription(transcription, lang, kind, attributes)
if type(lang) == "table" then
lang = lang.getCode and lang:getCode()
or error("Third argument to tag_translit should be a language code or language object.")
end
local data = mw.loadData("Module:script utilities/data").transcription[kind or "default"]
local opening_tag = {}
table.insert(opening_tag, data.tag)
if lang == "ja" then
table.insert(opening_tag, 'class="' .. (data.classes and data.classes .. " " or "") .. 'ts"')
else
table.insert(opening_tag, 'lang="' .. lang .. '-Latn"')
table.insert(opening_tag, 'class="' .. (data.classes and data.classes .. " " or "") .. 'ts Latn"')
end
if data.dir then
table.insert(opening_tag, 'dir="' .. data.dir .. '"')
end
table.insert(opening_tag, attributes)
return "<" .. table.concat(opening_tag, " ") .. ">" .. transcription .. "</" .. data.tag .. ">"
end
-- Add a notice to request the native script of a word
function export.request_script(lang, sc, usex, nocat, sort_key)
local scripts = lang.getScripts and lang:getScripts() or error('The language "' .. lang:getCode() .. '" does not have the method getScripts. It may be unwritten.')
-- By default, request for "native" script
local cat_script = "native"
local disp_script = "script"
-- If the script was not specified, and the language has only one script, use that.
if not sc and #scripts == 1 then
sc = scripts[1]
end
-- Is the script known?
if sc then
-- If the script is Latin, return nothing.
if export.is_Latin_script(sc) then
return ""
end
if sc:getCode() ~= scripts[1]:getCode() then
disp_script = sc:getCanonicalName()
end
-- The category needs to be specific to script only if there is chance
-- of ambiguity. This occurs when lang=und, or when the language has
-- multiple scripts.
if lang:getCode() == "und" or scripts[2] then
cat_script = sc:getCanonicalName()
end
else
-- The script is not known.
-- Does the language have at least one non-Latin script in its list?
local has_nonlatin = false
for i, val in ipairs(scripts) do
if not export.is_Latin_script(val) then
has_nonlatin = true
break
end
end
-- If there are no non-Latin scripts, return nothing.
if not has_nonlatin then
return ""
end
end
local category
if usex then
category = "Permohonan untuk tulisan " .. cat_script .. " dalam bahasa " .. lang:getCanonicalName() .. " usage examples"
else
category = "Permohonan untuk tulisan " .. cat_script .. " untuk bahasa " .. lang:getCanonicalName() .. " terms"
end
return "<small>[" .. disp_script .. " needed]</small>" ..
(nocat and "" or require("Module:utilities/format_categories")({category}, lang, sort_key))
end
function export.template_rfscript(frame)
params = {
[1] = { required = true, default = "und" },
["sc"] = {},
["usex"] = { type = "boolean" },
["nocat"] = { type = "boolean" },
["sort"] = {},
}
local args = require("Module:parameters").process(frame:getParent().args, params)
local lang = require("Module:languages").getByCode(args[1], 1)
local sc = args.sc and require("Module:scripts").getByCode(args.sc, true)
local ret = export.request_script(lang, sc, args.usex, args.nocat, args.sort)
if ret == "" then
error("This language is written in the Latin alphabet. It does not need a native script.")
else
return ret
end
end
function export.checkScript(text, scriptCode, result)
local scriptObject = require("Module:scripts").getByCode(scriptCode)
if not scriptObject then
error('The script code "' .. scriptCode .. '" is not recognized.')
end
local originalText = text
-- Remove non-letter characters.
text = mw.ustring.gsub(text, "[%A]", "")
-- Remove all characters of the script in question.
text = mw.ustring.gsub(text, "[" .. scriptObject:getCharacters() .. "]", "")
if text ~= "" then
if type(result) == "string" then
error(result)
else
error('The text "' .. originalText .. '" contains the letters "' .. text .. '" that do not belong to the ' .. scriptObject:getDisplayForm() .. '.', 2)
end
end
end
return export
dgwsypez4rdv06oiuty0d0157gsbdxp
Modul:scripts
828
9743
129811
111561
2022-08-21T14:18:41Z
Tofeiku
2269
kemas kini
Scribunto
text/plain
local export = {}
local Script = {}
function Script:getCode()
return self._code
end
function Script:getCanonicalName()
return self._rawData.canonicalName
end
function Script:getDisplayForm()
return self:getCategoryName("nocap")
end
function Script:getOtherNames(onlyOtherNames)
return require("Module:language-like").getOtherNames(self, onlyOtherNames)
end
function Script:getAliases()
return self._rawData.aliases or {}
end
function Script:getVarieties(flatten)
return require("Module:language-like").getVarieties(self, flatten)
end
function Script:getParent()
return self._rawData.parent
end
function Script:getSystems()
if not self._systemObjects then
local m_systems = require("Module:writing systems")
self._systemObjects = {}
for _, sys in ipairs(self._rawData.systems or {}) do
table.insert(self._systemObjects, m_systems.getByCode(sys))
end
end
return self._systemObjects
end
--function Script:getAllNames()
-- return self._rawData.names
--end
function Script:getType()
return "script"
end
function Script:getCategoryName(nocap)
local name = self._rawData.canonicalName
-- If the name already has "code" or "semaphore" in it, don't add it.
-- No names contain "script".
if not name:find("[Cc]ode$") and not name:find("[Ss]emaphore$") then
name = "tulisan " .. name
end
if not nocap then
name = mw.getContentLanguage():ucfirst(name)
end
return name
end
function Script:makeCategoryLink()
return "[[:Kategori:" .. self:getCategoryName() .. "|" .. self:getDisplayForm() .. "]]"
end
function Script:getWikipediaArticle()
return self._rawData.wikipedia_article or self:getCategoryName()
end
function Script:getCharacters()
if self._rawData.characters then
return self._rawData.characters
else
return nil
end
end
function Script:countCharacters(text)
if not self._rawData.characters then
return 0
else
local _, num = mw.ustring.gsub(text, "[" .. self._rawData.characters .. "]", "")
return num
end
end
function Script:getDirection()
local direction = self._rawData.direction
if not direction then
return nil
else
return direction
end
end
function Script:getRawData()
return self._rawData
end
function Script:toJSON()
local ret = {
canonicalName = self:getCanonicalName(),
categoryName = self:getCategoryName("nocap"),
code = self._code,
otherNames = self:getOtherNames(true),
aliases = self:getAliases(),
varieties = self:getVarieties(),
type = self:getType(),
direction = self:getDirection(),
characters = self:getCharacters(),
parent = self:getParent(),
systems = self._rawData.systems or {},
wikipediaArticle = self._rawData.wikipedia_article,
}
return require("Module:JSON").toJSON(ret)
end
Script.__index = Script
function export.makeObject(code, data)
return data and setmetatable({ _rawData = data, _code = code }, Script) or nil
end
function export.getByCode(code, paramForError, disallowNil)
if code == nil and not disallowNil then
return nil
end
if code == "IPAchar" then
require("Module:debug/track")("IPAchar")
end
local retval = export.makeObject(code, mw.loadData("Module:scripts/data")[code])
if not retval and paramForError then
require("Module:languages").err(code, paramForError, "script code", nil, "not real lang")
end
return retval
end
function export.getByCanonicalName(name)
local code = mw.loadData("Module:scripts/by name")[name]
if not code then
return nil
end
return export.makeObject(code, mw.loadData("Module:scripts/data")[code])
end
-- Find the best script to use, based on the characters of a string.
-- If forceDetect is set, run the detection algorithm even if there's only one
-- possible script; in that case, if the text isn't in the script, the return
-- value will be None.
function export.findBestScript(text, lang, forceDetect)
if not text or not lang or not lang.getScripts then
return export.getByCode("None")
end
local scripts = lang:getScripts()
if not scripts[2] and not forceDetect then
return scripts[1]
end
return require("Module:scripts/findBestScript")(export, text, lang, scripts, forceDetect)
end
--[=[
Takes a codepoint or a character and finds the script code (if any) that is
appropriate for it based on the codepoint, using the data module
[[Module:scripts/recognition data]]. The data module was generated from the
patterns in [[Module:scripts/data]] using [[Module:User:Erutuon/script recognition]].
Converts the character to a codepoint. Returns a script code if the codepoint
is in the list of individual characters, or if it is in one of the defined
ranges in the 4096-character block that it belongs to, else returns "None".
]=]
function export.charToScript(char)
return require("Module:scripts/charToScript").charToScript(char)
end
function export.findBestScriptWithoutLang(text)
return require("Module:scripts/charToScript").findBestScriptWithoutLang(text)
end
return export
d8otcw0nps7zj3b035nnfcywlrlms70
Modul:ja-headword
828
9756
129855
111496
2022-08-22T07:36:17Z
Tofeiku
2269
terjemah
Scribunto
text/plain
local m_ja = require("Module:ja")
local find = mw.ustring.find
local export = {}
local pos_functions = {}
local lang = require("Module:languages").getByCode("ja")
local sc = require("Module:scripts").getByCode("Jpan")
local Latn = require("Module:scripts").getByCode("Latn")
local Japanese_symbols = '%ー・=?!。、'
local katakana_range = 'ァ-ヺーヽヾ'
local hiragana_range = 'ぁ-ゖーゞゝ'
local kana_range = katakana_range .. hiragana_range .. Japanese_symbols
local Japanese_scripts_range = kana_range .. '一-鿌・々'
local katakana_pattern = '^[' .. katakana_range .. Japanese_symbols .. ']*$'
local hiragana_pattern = '^[' .. hiragana_range .. Japanese_symbols .. ']*$'
local kana_pattern = '^[' .. kana_range .. ']*$'
local kana_pattern_full = '^[、' .. kana_range .. '%s%.%-%^%%]*$'
local kana_pattern_char = '[、' .. kana_range .. '%s%.%-%^]'
local function remove_links(text)
return text:gsub("%[%[[^|%]]-|", ""):gsub("%[%[", ""):gsub("%]%]", "")
end
local detect_kana_script = require("Module:fun").memoize(function(kana)
if find(kana, katakana_pattern) then
return 'kata'
elseif find(kana, hiragana_pattern) then
return 'hira'
elseif find(kana, kana_pattern) then
return 'both'
else
return nil
end
end)
local function kana_to_romaji(kana, data, args)
-- make adjustments for -u verbs and -i adjectives by placing a period before the last character
-- to prevent romanizing long vowels with macrons
if (data.pos_category == "verbs") or (data.pos_category == "adjectives" and (args["infl"] == "i" or args["infl"] == "い" or args["infl"] == "is")) then
kana = mw.ustring.gsub(kana,'([うい])$','.%1')
end
local romaji = m_ja.kana_to_romaji(kana)
-- init caps for proper nouns
if data.pos_category == "proper nouns" then
romaji = mw.ustring.gsub(romaji, "^%l", mw.ustring.upper)
romaji = mw.ustring.gsub(romaji, " %l", mw.ustring.upper)
romaji = mw.ustring.gsub(romaji, "-%l", mw.ustring.upper)
end
-- hyphens for prefixes, suffixes, and counters (classifiers)
if data.pos_category == "prefixes" then
return romaji .. "-"
elseif data.pos_category == "suffixes" or data.pos_category == "counters" or data.pos_category == "classifiers" then
return "-" .. romaji
else
return romaji
end
end
local function ends_in_iru_eru(kana)
if mw.ustring.sub(kana, -1) ~= "る" then
return false
end
local wanted = {
["い"]=1, ["き"]=1, ["し"]=1, ["ち"]=1, ["に"]=1, ["ひ"]=1, ["み"]=1, ["り"]=1, ["ゐ"]=1,
["ぃ"]=1, ["ぎ"]=1, ["じ"]=1, ["ぢ"]=1, ["び"]=1, ["ぴ"]=1,
["え"]=1, ["け"]=1, ["せ"]=1, ["て"]=1, ["ね"]=1, ["へ"]=1, ["め"]=1, ["れ"]=1, ["ゑ"]=1,
["ぇ"]=1, ["げ"]=1, ["ぜ"]=1, ["で"]=1, ["べ"]=1, ["ぺ"]=1,
["イ"]=1, ["キ"]=1, ["シ"]=1, ["チ"]=1, ["ニ"]=1, ["ヒ"]=1, ["ミ"]=1, ["リ"]=1, ["ヰ"]=1,
["ィ"]=1, ["ギ"]=1, ["ジ"]=1, ["ヂ"]=1, ["ビ"]=1, ["ピ"]=1,
["エ"]=1, ["ケ"]=1, ["セ"]=1, ["テ"]=1, ["ネ"]=1, ["ヘ"]=1, ["メ"]=1, ["レ"]=1, ["ヱ"]=1,
["ェ"]=1, ["ゲ"]=1, ["ゼ"]=1, ["デ"]=1, ["ベ"]=1, ["ペ"]=1,
}
return wanted[mw.ustring.sub(kana, -2, -2)]
end
local en_numerals = {
"satu", "dua", "tiga", "empat", "lima",
"enam", "tujuh", "lapan", "sembilan", "sepuluh",
"sebelas", "dua belas", "tiga belas", "empat belas", "lima belas"
}
local en_grades = {
"gred pertama", "gred kedua", "gred ketiga",
"gred keempat", "gred kelima", "gred keenam",
"sekolah menengah", "jinmeiyō", "hyōgaiji"
}
-- adds category Japanese terms spelled with jōyō kanji or Japanese terms spelled with non-jōyō kanji
-- (if it contains any kanji)
local function categorize_by_kanji(data, PAGENAME)
-- remove non-kanji characters
local onlykanji = mw.ustring.gsub(PAGENAME, '[^一-鿌]', '')
local number_of_kanji = mw.ustring.len(onlykanji)
if number_of_kanji > 0 then
for i=1,mw.ustring.len(onlykanji) do
table.insert(data.categories, ("Kata bahasa Jepun dieja dengan %s kanji"):format(en_grades[m_ja.kanji_grade(mw.ustring.sub(onlykanji,i,i))]))
end
-- categorize by number of kanji
if number_of_kanji == 1 then
table.insert(data.categories, "Kata bahasa Jepun dieja dengan satu aksara tulisan Han ")
elseif en_numerals[number_of_kanji] then
table.insert(data.categories, ("Kata bahasa Jepun ditulis dengan %s aksara tulisan Han"):format(en_numerals[number_of_kanji]))
end
end
end
-- if this term is composed of only a single kanji, it does not have kanjitab/kanji reading tab
-- which generate "Japanese terms spelled with .. " categories, and since it is only one kanji
-- we know the kanji reading
-- (this category is for maintenance because many of these need attention)
local function singlekanji_term(data, PAGENAME)
if mw.ustring.len(PAGENAME) == 1 and mw.ustring.match(PAGENAME, '[一-鿌]') then
table.insert(data.categories, "Kata bahasa Jepun dieja dengan " .. PAGENAME)
table.insert(data.categories, "Kata kanji tunggal bahasa Jepun")
end
end
-- get a kana form to use, in order of preference: unnamed, hira, kana, pagename
local function find_kana(args, PAGENAME)
for i,arg in ipairs(args) do
if args[i] and find(args[i], kana_pattern_full) then return args[i] end
end
if find(PAGENAME, kana_pattern_full) then return PAGENAME end
local hira = args["hira"] or ""; if hira ~= "" then return hira end
local kata = args["kata"] or ""; if kata ~= "" then return kata end
error("No kana detected in the unnamed parameters or |hira= and |kata= parameters. See template documentation for details.")
end
local function format_ruby(kanji, kana, data)
local kanji_segments = mw.ustring.gsub(kanji, "([A-Za-z0-9々㐀-䶵一-鿌" .. mw.ustring.char(0xF900) .. "-" .. mw.ustring.char(0xFAD9) .. "𠀀-0-9A-Za-z]+)", "`%1`")
-- returns possible matches between kanji and kana
-- for example, match('`物`の`哀`れ', 'もののあわれ') returns { '[物](も)の[哀](のあわ)れ', '[物](もの)の[哀](あわ)れ' }
local function match(kanji_segments, kana)
if kanji_segments:find('`') then
local kana_portion, kanji_portion, rest = mw.ustring.match(kanji_segments, '(.-)`(.-)`(.*)')
_, _, kana = mw.ustring.find(kana, '^' .. kana_portion .. '(.*)')
if not kana then return {} end
local candidates = {}
for i = 1, mw.ustring.len(kana) do
for _, candidate in ipairs(match(rest, mw.ustring.sub(kana, i + 1))) do
table.insert(candidates, kana_portion .. '[' .. kanji_portion .. '](' .. mw.ustring.sub(kana, 1, i) .. ')' .. candidate)
end
end
return candidates
else
return (kanji_segments == kana) and { kana } or {}
end
end
local ruby = match(kanji_segments, kana)
if #ruby == 1 then
ruby = ruby[1]
else
if data then table.insert(data.categories, "Kata bahasa Jepun yang memerlukan perhatian ruby") end
ruby = '[' .. kanji .. '](' .. kana .. ')'
end
return ruby
end
-- go through args and build inflections by finding whatever kanas were given to us
local function format_headword(args, data, PAGENAME)
local detect_result = detect_kana_script(PAGENAME)
local function romanization(auto_rom)
-- accept the automatic romanization generated in function kana_to_romaji() above
-- compare that to the manual romanization if it exists and add it to inflections
local rom = args["rom"] or ""
if rom == "" then rom = auto_rom end
-- check auto rom against manual and put in hidden category if they differ
if rom ~= auto_rom then
table.insert(data.categories, "Kata bahasa Jepun yang memerlukan perhatian romaji")
end
-- throw an error if there is no romanization
if rom == "" then
error("Kata bahasa Jepun yang mesti ada bentuk kana.")
end
-- add romaji
if data.pos_category == "kata kerja suru" then
table.insert(data.translits, rom .. " suru")
else
table.insert(data.translits, rom)
end
end
local allkana,original,readings,romajis,romaji_lookup = {},{},{},{},{}
for i,arg in ipairs(args) do
if arg and arg ~= "" and find(arg, kana_pattern_full) then table.insert(allkana, arg) end
end
-- accept "hira" and "kata" but let Lua decide if they are really hiragana or katakana
if args["hira"] and args["hira"] ~= "" and find(args["hira"], kana_pattern_full) then table.insert(allkana, args["hira"]) end
if args["kata"] and args["kata"] ~= "" and find(args["kata"], kana_pattern_full) then table.insert(allkana, args["kata"]) end
if find(PAGENAME, kana_pattern_full) then
if #allkana == 0 then table.insert(allkana, PAGENAME) end
end
for i = 1, #allkana do
-- auto_romanization
romajis[i] = kana_to_romaji(allkana[i], data, args)
-- remove markup
table.insert(original,allkana[i])
allkana[i] = mw.ustring.gsub(allkana[i], '[%s%.%-%^]', '')
end
for i = 1, #allkana do
-- if this is not kana, blank it out
if allkana and not mw.ustring.match(allkana[i], kana_pattern_char) then
allkana[i] = ""
else
-- if this is kana, count it as another effective reading (ignoring hiragana-katakana distinction)
readings[m_ja.kata_to_hira(allkana[i])] = 1
end
-- only if this kana is different from the page name
if allkana[i] ~= PAGENAME and allkana[i] ~= "" then
-- find script type and put it in "label"
local labelval = ""
local alternative = true
for j = 1, i-1 do
if allkana[j] and romajis[i] == romajis[j] then
alternative = false
end
end
if i>1 and alternative then labelval = "alternative reading"
elseif detect_kana_script(allkana[i]) == 'both' then labelval = "hiragana and katakana"
elseif detect_kana_script(allkana[i]) == 'hira' then labelval = "hiragana"
else labelval = "katakana" end
-- add everything to inflections, except historical hiragana which is next
-- local format_result = detect_result and allkana[i] or format_ruby(PAGENAME, allkana[i], data)
local my_hira = original[i]
local my_head = args["head"] and mw.ustring.gsub(args["head"], "%[%[([^%]]+)%]%]", "%1") or PAGENAME
if not m_ja.add_ruby_backend(my_head, my_hira, nil, true) then --try_match
local format_result = m_ja.add_ruby_backend(my_head, my_hira) --change from <ruby> to []()
format_result = mw.ustring.gsub(format_result, "%[%[[^|%]][[^|%]]-|([^%]][^%]]-)%]%]", "%1")
format_result = mw.ustring.gsub(format_result, "<ruby>(..-)</ruby>", function(m1)
return mw.ustring.gsub(m1, "([^<>]+)<rp> %(</rp><rt>([^<>]+)</rt><rp>%)</rp>", "[%1](%2)")
end)
if data.pos_category == "suru verbs" then
table.insert(data.heads, format_result .. "[[する]]")
else
table.insert(data.heads, format_result)
end
elseif detect_result then
format_result = allkana[i]
table.insert(data.heads, format_result)
else
require("Module:debug").track("ja-headword/ruby match failure")
format_result = '[' .. m_ja.remove_ruby_markup(my_head) .. '](' .. m_ja.remove_ruby_markup(my_hira) .. ')'
table.insert(data.heads, format_result)
end
end
-- do the romanization business if it passes through every check
local undergo_romanization = true
if allkana[i] ~= "" then
if allkana[i] == PAGENAME and not find(PAGENAME, kana_pattern_full) then
undergo_romanization = false
else
for j=i+1, #allkana do
if allkana[j] and romajis[i] == romajis[j] then
undergo_romanization = false
end
end
end
end
if undergo_romanization then romanization(romajis[i]) end
end
local num_readings = 0
for _ in pairs(readings) do
num_readings = num_readings + 1
end
if num_readings > 1 then
table.insert(data.categories, "Perkataan bahasa Jepun dengan pelbagia bacaan")
end
end
-- categorize by the script of the pagename or specific characters contained in it
local function extra_categorization(data, PAGENAME, katakana_category)
-- if PAGENAME is hiragana, put in that category, same for katakana (but do it at the end)
if detect_kana_script(PAGENAME) == 'hira' then table.insert(data.categories, "Hiragana bahasa Jepun") end
if detect_kana_script(PAGENAME) == 'kata' then table.insert(katakana_category, "Katakana bahasa Jepun") end
if find(PAGENAME, "[^" .. Japanese_scripts_range .. "]") and find(PAGENAME, '[' .. Japanese_scripts_range .. ']') then
table.insert(data.categories, "Kata bahasa Jepun ditulis dalam pelbagai tulisan") end
for _,character in ipairs({'々','〆','ヶ','ゝ','ゞ','ヽ','ヾ','ゐ','ヰ','ゑ','ヱ','ゔ','ヷ','ヸ','ヹ','ヺ','・','=','゠'}) do
if mw.ustring.match(PAGENAME,character) then
table.insert(data.categories, ("Kata bahasa Jepun dieja dengan %s"):format(character))
end
end
end
local aliases = {
['transitive']='tr', ['trans']='tr',
['intransitive']='in', ['intrans']='in', ['intr']='in',
['godan']='1', ['ichidan']='2', ['irregular']='3'
}
local function add_inflections(data, inflection_type)
local lemma = data.heads[1]
local romaji = data.translits[1]
local function form(term, translit)
local kanji = remove_links(mw.ustring.gsub(term, "%[([^%[%]]+)%]%(([^%(%)]+)%)", "%1"))
term = mw.ustring.gsub(term, "%[([^%[%]]+)%]%(([^%(%)]+)%)", "<ruby>%1<rp>(</rp><rt>%2</rt><rp>)</rp></ruby>")
if not term:find('%[%[') then term = '[[' .. kanji .. '#Bahasa_Jepun|' .. term .. ']]' end
return {term = term, translit = translit}
end
local function insert(k1, k2, k3, r1, r2, r3)
local success = lemma:find(k1) and romaji:find(r1)
if success then
table.insert(data.inflections, {label = 'stem', form(lemma:gsub(k1, k2), romaji:gsub(r1, r2))})
table.insert(data.inflections, {label = 'past', form(lemma:gsub(k1, k3), romaji:gsub(r1, r3))})
end
return success
end
if inflection_type == '1' then
local success = insert('く$', 'き', 'いた', 'ku$', 'ki', 'ita') or
insert('ぐ$', 'ぎ', 'いだ', 'gu$', 'gi', 'ida') or
insert('す$', 'し', 'した', 'su$', 'shi', 'shita') or
insert('つ$', 'ち', 'った', 'tsu$', 'chi', 'tta') or
insert('ぬ$', 'に', 'んだ', 'nu$', 'ni', 'nda') or
insert('ぶ$', 'び', 'んだ', 'bu$', 'bi', 'nda') or
insert('む$', 'み', 'んだ', 'mu$', 'mi', 'nda') or
insert('る$', 'り', 'った', 'ru$', 'ri', 'tta') or
insert('う$', 'い', 'った', 'u$', 'i', 'tta') or
require("Module:debug").track("ja-headword/godan conjugation failed")
elseif inflection_type == '1s' then
if lemma:find('る$') and romaji:find('ru$') then --くださる
table.insert(data.inflections, {label = 'stem', form(lemma:gsub('る$', 'り'), romaji:gsub('ru$', 'ri')), form(lemma:gsub('る$', 'い'), romaji:gsub('ru$', 'i'))})
table.insert(data.inflections, {label = 'past', form(lemma:gsub('る$', 'った'), romaji:gsub('ru$', 'tta'))})
else
local success = insert('く$', 'き', 'った', 'iku$', 'iki', 'itta') or --行く
insert('う$', 'い', 'うた', 'ou$', 'oi', 'ōta') or
require("Module:debug").track("ja-headword/godan conjugation special failed")
end
elseif inflection_type == '2' then
local success = insert('る$', '', 'た', 'ru$', '', 'ta') or
require("Module:debug").track("ja-headword/ichidan conjugation failed")
elseif inflection_type == '3' or inflection_type == 'kuru' or inflection_type == 'suru' then
if lemma:find('%[来%]%(く%)る$') and romaji:find('kuru$') then
table.insert(data.inflections, {label = 'stem', form(lemma:gsub('%[来%]%(く%)る$', '[来](き)'), romaji:gsub('kuru$', 'ki'))})
table.insert(data.inflections, {label = 'past', form(lemma:gsub('%[来%]%(く%)る$', '[来](き)た'), romaji:gsub('kuru$', 'kita'))})
else
local success = insert('くる$', 'き', 'きた', 'kuru$', 'ki', 'kita') or
insert('する$', 'し', 'した', 'suru$', 'shi', 'shita') or
insert('する%]%]$', 'し]]', 'した]]', 'suru$', 'shi', 'shita') or
insert('ずる$', 'じ', 'じた', 'zuru$', 'ji', 'jita') or
require("Module:debug").track("ja-headword/irregular conjugation failed")
end
elseif inflection_type == 'i' or inflection_type == 'い' then
if lemma:find('い$') and romaji:find('i$') then
table.insert(data.inflections, {label = 'adverbial', form(lemma:gsub('い$', 'く'), romaji:gsub('i$', 'ku'))})
else
require("Module:debug").track("ja-headword/-i inflection failed")
end
elseif inflection_type == 'is' then
if lemma:find('%[良%]%(い%)い$') and romaji:find('ii$') then
table.insert(data.inflections, {label = 'adverbial', form(lemma:gsub('%[良%]%(い%)い$', '[良](よ)く'), romaji:gsub('ii$', 'yoku'))})
elseif lemma:find('いい$') and romaji:find('ii$') then
table.insert(data.inflections, {label = 'adverbial', form(lemma:gsub('いい$', 'よく'), romaji:gsub('ii$', 'yoku'))})
else
require("Module:debug").track("ja-headword/slightly irregular -i inflection failed")
end
elseif inflection_type == 'na' or inflection_type == 'な' then
table.insert(data.inflections, {label = 'adnominal', form(lemma .. '[[な]]', romaji .. ' na')})
table.insert(data.inflections, {label = 'adverbial', form(lemma .. '[[に]]', romaji .. ' ni')})
elseif inflection_type == 'tari' or inflection_type == 'たり' then
table.insert(data.inflections, {label = 'adnominal', form(lemma .. '[[たる]]', romaji .. ' taru')})
table.insert(data.inflections, {label = 'adverbial', form(lemma .. '[[と]]', romaji .. ' to'), form(lemma .. '[[として]]', romaji .. ' toshite')})
end
end
pos_functions["verbs"] = function(args, data)
-- transitivity
local tr = args["tr"] or ""
tr = aliases[tr] or tr
if tr ~= "" then
if tr == "tr" then table.insert(data.inflections, {label = "transitif"})
table.insert(data.categories, "Kata kerja transitif bahasa Jepun") end
if tr == "in" then table.insert(data.inflections, {label = "tidak transitif"})
table.insert(data.categories, "Kata kerja tidak transitif bahasa Jepun") end
if tr == "both" then table.insert(data.inflections, {label = "transitif dan tidak transitif"})
table.insert(data.categories, "Kata kerja transitif bahasa Jepun")
table.insert(data.categories, "Kata kerja tidak transitif bahasa Jepun") end
else
table.insert(data.categories, "Kata kerja bahasa Jepun tanpa ketransitifan")
end
-- conjugation type
local conjugation = args["type"] or ""
conjugation = aliases[conjugation] or conjugation
if conjugation == "1" or conjugation == "1s" then
table.insert(data.inflections, {label = "godan conjugation"})
table.insert(data.categories, "Kata kerja jenis 1 bahasa Jepun")
if ends_in_iru_eru(args[1] or PAGENAME) then
table.insert(data.categories, "Japanese type 1 verbs that end in -iru or -eru")
end
elseif conjugation == "2" then
table.insert(data.inflections, {label = "ichidan conjugation"})
table.insert(data.categories, "Kata kerja jenis 2 bahasa Jepun")
elseif conjugation == "suru" then
table.insert(data.inflections, {label = "konjugasi suru"})
table.insert(data.categories, "Kata kerja suru bahasa Jepun")
elseif conjugation == "kuru" then
table.insert(data.inflections, {label = "kuru conjugation"})
table.insert(data.categories, "Kata kerja kuru bahasa Jepun")
elseif conjugation == "3" then
-- hidden temporary maintenance category
-- (suru verbs should use ja-verb-suru but sometime erroneously use ja-verb with type=3 instead)
table.insert(data.inflections, {label = "type 3 conjugation"})
table.insert(data.categories, "Kata kerja jenis 3 bahasa Jepun")
elseif conjugation == "irr" then
table.insert(data.inflections, {label = "irregular conjugation"})
table.insert(data.categories, "Kata kerja tidak nalar bahasa Jepun")
if mw.ustring.match(PAGENAME,'する$') then
table.insert(data.categories, "Kata kerja bahasa Jepun yang menggunakan ja-verb dengan jenis 3")
end
elseif conjugation == "yo" then
table.insert(data.inflections, {label = "yodan conjugation"})
table.insert(data.categories, "Kata kerja yodan bahasa Jepun")
elseif conjugation == "ni" then
table.insert(data.inflections, {label = "nidan conjugation"})
table.insert(data.categories, "Kata kerja nidan bahasa Jepun")
elseif conjugation == "kami ni" then
table.insert(data.inflections, {label = "kami nidan conjugation"})
table.insert(data.categories, "Japanese kami nidan verbs")
elseif conjugation == "shimo ni" then
table.insert(data.inflections, {label = "shimo nidan conjugation"})
table.insert(data.categories, "Japanese shimo nidan verbs")
end
add_inflections(data, conjugation)
-- >> maintenance category <<
-- check if this ends in something other than acceptable kana in a modern verb (and isn't already categorised as yodan or nidan)
if not mw.ustring.match(PAGENAME, '[うくぐすつぬぶむゆる]$') and conjugation ~= "yo" and conjugation ~= "ni" and conjugation ~= "kami ni" and conjugation ~= "shimo ni" then
table.insert(data.categories, "Japanese verbs without modern conjugations")
end
end
pos_functions["suffixes"] = function(args, data)
-- conjugation type
local conjugation = args["type"] or ""
conjugation = aliases[conjugation] or conjugation
if conjugation == "1" or conjugation == "1s" then
table.insert(data.inflections, {label = "godan conjugation"})
elseif conjugation == "2" then
table.insert(data.inflections, {label = "ichidan conjugation"})
elseif conjugation == "3" then
table.insert(data.inflections, {label = "irregular conjugation"})
elseif conjugation == "yo" then
table.insert(data.inflections, {label = "yodan conjugation"})
elseif conjugation == "ni" then
table.insert(data.inflections, {label = "nidan conjugation"})
elseif conjugation == "kami ni" then
table.insert(data.inflections, {label = "kami nidan conjugation"})
elseif conjugation == "shimo ni" then
table.insert(data.inflections, {label = "shimo nidan conjugation"})
elseif conjugation == "rahen" then
table.insert(data.inflections, {label = "r-irregular conjugation"})
elseif conjugation == "sahen" then
table.insert(data.inflections, {label = "s-irregular conjugation"})
elseif conjugation == "kahen" then
table.insert(data.inflections, {label = "k-irregular conjugation"})
elseif conjugation == "nahen" then
table.insert(data.inflections, {label = "n-irregular conjugation"})
elseif conjugation == "i" or conjugation == "い" or conjugation == "is" then
table.insert(data.inflections, {label = "-i inflection"})
elseif conjugation == "na" or conjugation == "な" then
table.insert(data.inflections, {label = "-na inflection"})
elseif conjugation == "nari" or conjugation == "なり" then
table.insert(data.inflections, {label = "-nari inflection"})
elseif conjugation == "tari" or conjugation == "たり" then
table.insert(data.inflections, {label = "-tari inflection"})
elseif conjugation == "ka" or conjugation == "か" then
table.insert(data.inflections, {label = "-ka inflection"})
end
add_inflections(data, conjugation)
end
pos_functions["kata kerja bantu"] = function(args, data)
data.pos_category = "kata kerja"
table.insert(data.categories, "Kata kerja bantu bahasa Jepun")
end
pos_functions["kata kerja suru"] = function(args, data)
table.insert(data.categories, "Kata kerja suru bahasa Jepun")
-- transitivity
local tr = args["tr"] or ""
tr = aliases[tr] or tr
if tr == "tr" then
table.insert(data.inflections, {label = "transitif"})
elseif tr == "in" then
table.insert(data.inflections, {label = "tidak transitif"})
elseif tr == "both" then
table.insert(data.inflections, {label = "transitif dan tidak transitif"})
elseif tr == "" then
table.insert(data.categories, "Kata kerja bahasa Jepun tanpa ketransitifan")
end
table.insert(data.inflections, {label = "suru conjugation"})
add_inflections(data, '3')
end
pos_functions["adjectives"] = function(args, data)
-- categorize by inflection type
local infl = args["infl"] or ""
if infl == "i" or infl == "い" or infl == "is" then
table.insert(data.inflections, {label = "-i inflection"})
table.insert(data.categories, "Kata sifat い-i bahasa Jepun")
elseif infl == "na" or infl == "な" then
table.insert(data.inflections, {label = "-na inflection"})
table.insert(data.categories, "Kata sifat な-na bahasa Jepun")
elseif infl == "nari" or infl == "なり" then
table.insert(data.inflections, {label = "-nari inflection"})
table.insert(data.categories, "Kata sifat なり-nari bahasa Jepun")
elseif infl == "tari" or infl == "たり" then
table.insert(data.inflections, {label = "-tari inflection"})
table.insert(data.categories, "Kata sifat たり-tari bahasa Jepun")
elseif infl == "ka" or infl == "か" then
table.insert(data.inflections, {label = "-ka inflection"})
table.insert(data.categories, "Kata sifat か-ka bahasa Jepun")
end
add_inflections(data, infl)
end
pos_functions["nouns"] = function(args, data)
-- the counter (classifier) parameter, only relevant for nouns
local counter = args["count"] or ""
if counter == "-" then
table.insert(data.inflections, {label = "uncountable"})
elseif counter ~= "" then
table.insert(data.inflections, {label = "counter", counter})
end
end
-- The main entry point.
-- This is the only function that can be invoked from a template.
function export.show(frame)
local args = frame:getParent().args
PAGENAME = args["pagename"] or mw.title.getCurrentTitle().text
local poscat = frame.args[1] or error("Part of speech has not been specified. Please pass parameter 1 to the module invocation.")
local head = args["head"] or PAGENAME
if poscat == "suru verbs" then
local base, count = head:gsub("する$", "")
if count == 1 then
require("Module:debug").track("ja-headword/suru in pagename")
end
head = base .. "[[する]]"
end
if args["decl"] and (not args["infl"] or args["infl"] == "") then
args["infl"] = args["decl"]
end
local data = {lang = lang, sc = sc, pos_category = poscat, categories = {}, translits = {}, heads = (detect_kana_script(PAGENAME) and {head} or {}), inflections = {}}
local katakana_category = {}
local kana = find_kana(args, PAGENAME)
-- sort out all the kanas and do the romanization business
format_headword(args, data, PAGENAME, kana)
-- add certain "inflections" and categories for adjectives, verbs, or nouns
if pos_functions[poscat] then
pos_functions[poscat](args, data)
end
for i = 1, #data.heads do
local kana = mw.ustring.gsub(data.heads[i], "%[([^%[%]]+)%]%(([^%(%)]+)%)", "%2")
kana = remove_links(mw.ustring.gsub(kana, '%[%[する%]%]$', ''))
data.heads[i] = mw.ustring.gsub(data.heads[i], "%[([^%[%]]+)%]%(([^%(%)]+)%)", "<ruby>%1<rp>(</rp><rt>[[" .. kana .. "#Bahasa_Jepun|%2]]</rt><rp>)</rp></ruby>")
end
-- the presence of kyūjitai param indicates that this is shinjitai kanji entry and vice versa
local kyu = args["kyu"] or ""
local shin = args["shin"] or ""
if kyu == "" then
kyu = nil
else
table.insert(data.inflections, {label = "kanji [[shinjitai]]"})
if data.pos_category == "suru verbs" then
table.insert(data.inflections, {label = "kanji [[kyūjitai]]", "[[" .. kyu .. "]][[する]]"})
else
table.insert(data.inflections, {label = "kanji [[kyūjitai]]", kyu})
end
end
if shin ~= "" then
table.insert(data.inflections, {label = "kanji [[kyūjitai]]"})
if data.pos_category == "kata kerja suru" then
table.insert(data.inflections, {label = "kanji [[shinjitai]]", "[[" .. shin .. "]][[する]]"})
else
table.insert(data.inflections, {label = "kanji [[shinjitai]]", shin})
end
end
local hhira = args["hhira"] or ""
if hhira ~= "" then
if data.pos_category == "suru verbs" then
table.insert(data.inflections, {label = "hiragana sejarawi", "[[" .. hhira .. "]][[する]]"})
else
table.insert(data.inflections, {label = "hiragana sejarawi", hhira})
end
if string.match(hhira, "ゐ") ~= nil then
table.insert(data.categories, "Kata bahasa Jepun dari segi sejarah dieja dengan ゐ")
end
if string.match(hhira, "ゑ") ~= nil then
table.insert(data.categories, "Kata bahasa Jepun dari segi sejarah dieja dengan ゑ")
end
if string.match(hhira, "を") ~= nil then
table.insert(data.categories, "Kata bahasa Jepun dari segi sejarah dieja dengan を")
end
end
local hkata = args["hkata"] or ""
if hkata ~= "" then
if data.pos_category == "kata kerja suru" then
table.insert(data.inflections, {label = "historical katakana", "[[" .. hkata .. "]][[する]]"})
else
table.insert(data.inflections, {label = "historical katakana", hkata})
end
end
if data.pos_category == "suru verbs" then
data.pos_category = "verbs"
end
-- categorize by joyo kanji and number of kanji
categorize_by_kanji(data, PAGENAME)
-- generate "Kata bahasa Jepun dieja dengan ... dibaca sebagai ..." untuk kata kanji tunggal
singlekanji_term(data, PAGENAME)
-- add categories for terms with iteration marks (which are not kanji and hence are not categorized by ja-kanjitab)
extra_categorization(data, PAGENAME, katakana_category)
if find(PAGENAME, "[ァ-ヺヽヾ]") and find(PAGENAME, "[ぁ-ゖゞゝ]") and data.pos_category ~= "proverbs" and data.pos_category ~= "phrases" then
table.insert(data.categories, "Kata bahasa Jepun dieja dengan kana bercampur")
end
-- will only use sortkey if sortkey is different from PAGENAME
-- when katakana in PAGENAME is converted to hiragana
local sort_key = m_ja.jsort(kana)
if sort_key == m_ja.kata_to_hira(PAGENAME) then
return
require("Module:headword").full_headword(data) ..
require("Module:utilities").format_categories(katakana_category, lang)
else
-- convert sortkey to katakana version for katakana terms category (should sort by katakana)
data.sort_key = sort_key
return
require("Module:headword").full_headword(data) ..
require("Module:utilities").format_categories(katakana_category, lang, m_ja.hira_to_kata(sort_key))
end
end
return export
8yts2wl7f0nsz76mu2epzux85bqgfzz
129856
129855
2022-08-22T07:37:06Z
Tofeiku
2269
terjemah
Scribunto
text/plain
local m_ja = require("Module:ja")
local find = mw.ustring.find
local export = {}
local pos_functions = {}
local lang = require("Module:languages").getByCode("ja")
local sc = require("Module:scripts").getByCode("Jpan")
local Latn = require("Module:scripts").getByCode("Latn")
local Japanese_symbols = '%ー・=?!。、'
local katakana_range = 'ァ-ヺーヽヾ'
local hiragana_range = 'ぁ-ゖーゞゝ'
local kana_range = katakana_range .. hiragana_range .. Japanese_symbols
local Japanese_scripts_range = kana_range .. '一-鿌・々'
local katakana_pattern = '^[' .. katakana_range .. Japanese_symbols .. ']*$'
local hiragana_pattern = '^[' .. hiragana_range .. Japanese_symbols .. ']*$'
local kana_pattern = '^[' .. kana_range .. ']*$'
local kana_pattern_full = '^[、' .. kana_range .. '%s%.%-%^%%]*$'
local kana_pattern_char = '[、' .. kana_range .. '%s%.%-%^]'
local function remove_links(text)
return text:gsub("%[%[[^|%]]-|", ""):gsub("%[%[", ""):gsub("%]%]", "")
end
local detect_kana_script = require("Module:fun").memoize(function(kana)
if find(kana, katakana_pattern) then
return 'kata'
elseif find(kana, hiragana_pattern) then
return 'hira'
elseif find(kana, kana_pattern) then
return 'both'
else
return nil
end
end)
local function kana_to_romaji(kana, data, args)
-- make adjustments for -u verbs and -i adjectives by placing a period before the last character
-- to prevent romanizing long vowels with macrons
if (data.pos_category == "verbs") or (data.pos_category == "adjectives" and (args["infl"] == "i" or args["infl"] == "い" or args["infl"] == "is")) then
kana = mw.ustring.gsub(kana,'([うい])$','.%1')
end
local romaji = m_ja.kana_to_romaji(kana)
-- init caps for proper nouns
if data.pos_category == "proper nouns" then
romaji = mw.ustring.gsub(romaji, "^%l", mw.ustring.upper)
romaji = mw.ustring.gsub(romaji, " %l", mw.ustring.upper)
romaji = mw.ustring.gsub(romaji, "-%l", mw.ustring.upper)
end
-- hyphens for prefixes, suffixes, and counters (classifiers)
if data.pos_category == "prefixes" then
return romaji .. "-"
elseif data.pos_category == "suffixes" or data.pos_category == "counters" or data.pos_category == "classifiers" then
return "-" .. romaji
else
return romaji
end
end
local function ends_in_iru_eru(kana)
if mw.ustring.sub(kana, -1) ~= "る" then
return false
end
local wanted = {
["い"]=1, ["き"]=1, ["し"]=1, ["ち"]=1, ["に"]=1, ["ひ"]=1, ["み"]=1, ["り"]=1, ["ゐ"]=1,
["ぃ"]=1, ["ぎ"]=1, ["じ"]=1, ["ぢ"]=1, ["び"]=1, ["ぴ"]=1,
["え"]=1, ["け"]=1, ["せ"]=1, ["て"]=1, ["ね"]=1, ["へ"]=1, ["め"]=1, ["れ"]=1, ["ゑ"]=1,
["ぇ"]=1, ["げ"]=1, ["ぜ"]=1, ["で"]=1, ["べ"]=1, ["ぺ"]=1,
["イ"]=1, ["キ"]=1, ["シ"]=1, ["チ"]=1, ["ニ"]=1, ["ヒ"]=1, ["ミ"]=1, ["リ"]=1, ["ヰ"]=1,
["ィ"]=1, ["ギ"]=1, ["ジ"]=1, ["ヂ"]=1, ["ビ"]=1, ["ピ"]=1,
["エ"]=1, ["ケ"]=1, ["セ"]=1, ["テ"]=1, ["ネ"]=1, ["ヘ"]=1, ["メ"]=1, ["レ"]=1, ["ヱ"]=1,
["ェ"]=1, ["ゲ"]=1, ["ゼ"]=1, ["デ"]=1, ["ベ"]=1, ["ペ"]=1,
}
return wanted[mw.ustring.sub(kana, -2, -2)]
end
local en_numerals = {
"satu", "dua", "tiga", "empat", "lima",
"enam", "tujuh", "lapan", "sembilan", "sepuluh",
"sebelas", "dua belas", "tiga belas", "empat belas", "lima belas"
}
local en_grades = {
"gred pertama", "gred kedua", "gred ketiga",
"gred keempat", "gred kelima", "gred keenam",
"sekolah menengah", "jinmeiyō", "hyōgaiji"
}
-- adds category Japanese terms spelled with jōyō kanji or Japanese terms spelled with non-jōyō kanji
-- (if it contains any kanji)
local function categorize_by_kanji(data, PAGENAME)
-- remove non-kanji characters
local onlykanji = mw.ustring.gsub(PAGENAME, '[^一-鿌]', '')
local number_of_kanji = mw.ustring.len(onlykanji)
if number_of_kanji > 0 then
for i=1,mw.ustring.len(onlykanji) do
table.insert(data.categories, ("Kata bahasa Jepun dieja dengan %s kanji"):format(en_grades[m_ja.kanji_grade(mw.ustring.sub(onlykanji,i,i))]))
end
-- categorize by number of kanji
if number_of_kanji == 1 then
table.insert(data.categories, "Kata bahasa Jepun dieja dengan satu aksara tulisan Han ")
elseif en_numerals[number_of_kanji] then
table.insert(data.categories, ("Kata bahasa Jepun ditulis dengan %s aksara tulisan Han"):format(en_numerals[number_of_kanji]))
end
end
end
-- if this term is composed of only a single kanji, it does not have kanjitab/kanji reading tab
-- which generate "Japanese terms spelled with .. " categories, and since it is only one kanji
-- we know the kanji reading
-- (this category is for maintenance because many of these need attention)
local function singlekanji_term(data, PAGENAME)
if mw.ustring.len(PAGENAME) == 1 and mw.ustring.match(PAGENAME, '[一-鿌]') then
table.insert(data.categories, "Kata bahasa Jepun dieja dengan " .. PAGENAME)
table.insert(data.categories, "Kata kanji tunggal bahasa Jepun")
end
end
-- get a kana form to use, in order of preference: unnamed, hira, kana, pagename
local function find_kana(args, PAGENAME)
for i,arg in ipairs(args) do
if args[i] and find(args[i], kana_pattern_full) then return args[i] end
end
if find(PAGENAME, kana_pattern_full) then return PAGENAME end
local hira = args["hira"] or ""; if hira ~= "" then return hira end
local kata = args["kata"] or ""; if kata ~= "" then return kata end
error("No kana detected in the unnamed parameters or |hira= and |kata= parameters. See template documentation for details.")
end
local function format_ruby(kanji, kana, data)
local kanji_segments = mw.ustring.gsub(kanji, "([A-Za-z0-9々㐀-䶵一-鿌" .. mw.ustring.char(0xF900) .. "-" .. mw.ustring.char(0xFAD9) .. "𠀀-0-9A-Za-z]+)", "`%1`")
-- returns possible matches between kanji and kana
-- for example, match('`物`の`哀`れ', 'もののあわれ') returns { '[物](も)の[哀](のあわ)れ', '[物](もの)の[哀](あわ)れ' }
local function match(kanji_segments, kana)
if kanji_segments:find('`') then
local kana_portion, kanji_portion, rest = mw.ustring.match(kanji_segments, '(.-)`(.-)`(.*)')
_, _, kana = mw.ustring.find(kana, '^' .. kana_portion .. '(.*)')
if not kana then return {} end
local candidates = {}
for i = 1, mw.ustring.len(kana) do
for _, candidate in ipairs(match(rest, mw.ustring.sub(kana, i + 1))) do
table.insert(candidates, kana_portion .. '[' .. kanji_portion .. '](' .. mw.ustring.sub(kana, 1, i) .. ')' .. candidate)
end
end
return candidates
else
return (kanji_segments == kana) and { kana } or {}
end
end
local ruby = match(kanji_segments, kana)
if #ruby == 1 then
ruby = ruby[1]
else
if data then table.insert(data.categories, "Kata bahasa Jepun yang memerlukan perhatian ruby") end
ruby = '[' .. kanji .. '](' .. kana .. ')'
end
return ruby
end
-- go through args and build inflections by finding whatever kanas were given to us
local function format_headword(args, data, PAGENAME)
local detect_result = detect_kana_script(PAGENAME)
local function romanization(auto_rom)
-- accept the automatic romanization generated in function kana_to_romaji() above
-- compare that to the manual romanization if it exists and add it to inflections
local rom = args["rom"] or ""
if rom == "" then rom = auto_rom end
-- check auto rom against manual and put in hidden category if they differ
if rom ~= auto_rom then
table.insert(data.categories, "Kata bahasa Jepun yang memerlukan perhatian romaji")
end
-- throw an error if there is no romanization
if rom == "" then
error("Kata bahasa Jepun yang mesti ada bentuk kana.")
end
-- add romaji
if data.pos_category == "kata kerja suru" then
table.insert(data.translits, rom .. " suru")
else
table.insert(data.translits, rom)
end
end
local allkana,original,readings,romajis,romaji_lookup = {},{},{},{},{}
for i,arg in ipairs(args) do
if arg and arg ~= "" and find(arg, kana_pattern_full) then table.insert(allkana, arg) end
end
-- accept "hira" and "kata" but let Lua decide if they are really hiragana or katakana
if args["hira"] and args["hira"] ~= "" and find(args["hira"], kana_pattern_full) then table.insert(allkana, args["hira"]) end
if args["kata"] and args["kata"] ~= "" and find(args["kata"], kana_pattern_full) then table.insert(allkana, args["kata"]) end
if find(PAGENAME, kana_pattern_full) then
if #allkana == 0 then table.insert(allkana, PAGENAME) end
end
for i = 1, #allkana do
-- auto_romanization
romajis[i] = kana_to_romaji(allkana[i], data, args)
-- remove markup
table.insert(original,allkana[i])
allkana[i] = mw.ustring.gsub(allkana[i], '[%s%.%-%^]', '')
end
for i = 1, #allkana do
-- if this is not kana, blank it out
if allkana and not mw.ustring.match(allkana[i], kana_pattern_char) then
allkana[i] = ""
else
-- if this is kana, count it as another effective reading (ignoring hiragana-katakana distinction)
readings[m_ja.kata_to_hira(allkana[i])] = 1
end
-- only if this kana is different from the page name
if allkana[i] ~= PAGENAME and allkana[i] ~= "" then
-- find script type and put it in "label"
local labelval = ""
local alternative = true
for j = 1, i-1 do
if allkana[j] and romajis[i] == romajis[j] then
alternative = false
end
end
if i>1 and alternative then labelval = "alternative reading"
elseif detect_kana_script(allkana[i]) == 'both' then labelval = "hiragana and katakana"
elseif detect_kana_script(allkana[i]) == 'hira' then labelval = "hiragana"
else labelval = "katakana" end
-- add everything to inflections, except historical hiragana which is next
-- local format_result = detect_result and allkana[i] or format_ruby(PAGENAME, allkana[i], data)
local my_hira = original[i]
local my_head = args["head"] and mw.ustring.gsub(args["head"], "%[%[([^%]]+)%]%]", "%1") or PAGENAME
if not m_ja.add_ruby_backend(my_head, my_hira, nil, true) then --try_match
local format_result = m_ja.add_ruby_backend(my_head, my_hira) --change from <ruby> to []()
format_result = mw.ustring.gsub(format_result, "%[%[[^|%]][[^|%]]-|([^%]][^%]]-)%]%]", "%1")
format_result = mw.ustring.gsub(format_result, "<ruby>(..-)</ruby>", function(m1)
return mw.ustring.gsub(m1, "([^<>]+)<rp> %(</rp><rt>([^<>]+)</rt><rp>%)</rp>", "[%1](%2)")
end)
if data.pos_category == "suru verbs" then
table.insert(data.heads, format_result .. "[[する]]")
else
table.insert(data.heads, format_result)
end
elseif detect_result then
format_result = allkana[i]
table.insert(data.heads, format_result)
else
require("Module:debug").track("ja-headword/ruby match failure")
format_result = '[' .. m_ja.remove_ruby_markup(my_head) .. '](' .. m_ja.remove_ruby_markup(my_hira) .. ')'
table.insert(data.heads, format_result)
end
end
-- do the romanization business if it passes through every check
local undergo_romanization = true
if allkana[i] ~= "" then
if allkana[i] == PAGENAME and not find(PAGENAME, kana_pattern_full) then
undergo_romanization = false
else
for j=i+1, #allkana do
if allkana[j] and romajis[i] == romajis[j] then
undergo_romanization = false
end
end
end
end
if undergo_romanization then romanization(romajis[i]) end
end
local num_readings = 0
for _ in pairs(readings) do
num_readings = num_readings + 1
end
if num_readings > 1 then
table.insert(data.categories, "Perkataan bahasa Jepun dengan pelbagia bacaan")
end
end
-- categorize by the script of the pagename or specific characters contained in it
local function extra_categorization(data, PAGENAME, katakana_category)
-- if PAGENAME is hiragana, put in that category, same for katakana (but do it at the end)
if detect_kana_script(PAGENAME) == 'hira' then table.insert(data.categories, "Hiragana bahasa Jepun") end
if detect_kana_script(PAGENAME) == 'kata' then table.insert(katakana_category, "Katakana bahasa Jepun") end
if find(PAGENAME, "[^" .. Japanese_scripts_range .. "]") and find(PAGENAME, '[' .. Japanese_scripts_range .. ']') then
table.insert(data.categories, "Kata bahasa Jepun ditulis dalam pelbagai tulisan") end
for _,character in ipairs({'々','〆','ヶ','ゝ','ゞ','ヽ','ヾ','ゐ','ヰ','ゑ','ヱ','ゔ','ヷ','ヸ','ヹ','ヺ','・','=','゠'}) do
if mw.ustring.match(PAGENAME,character) then
table.insert(data.categories, ("Kata bahasa Jepun dieja dengan %s"):format(character))
end
end
end
local aliases = {
['transitive']='tr', ['trans']='tr',
['intransitive']='in', ['intrans']='in', ['intr']='in',
['godan']='1', ['ichidan']='2', ['irregular']='3'
}
local function add_inflections(data, inflection_type)
local lemma = data.heads[1]
local romaji = data.translits[1]
local function form(term, translit)
local kanji = remove_links(mw.ustring.gsub(term, "%[([^%[%]]+)%]%(([^%(%)]+)%)", "%1"))
term = mw.ustring.gsub(term, "%[([^%[%]]+)%]%(([^%(%)]+)%)", "<ruby>%1<rp>(</rp><rt>%2</rt><rp>)</rp></ruby>")
if not term:find('%[%[') then term = '[[' .. kanji .. '#Bahasa_Jepun|' .. term .. ']]' end
return {term = term, translit = translit}
end
local function insert(k1, k2, k3, r1, r2, r3)
local success = lemma:find(k1) and romaji:find(r1)
if success then
table.insert(data.inflections, {label = 'stem', form(lemma:gsub(k1, k2), romaji:gsub(r1, r2))})
table.insert(data.inflections, {label = 'past', form(lemma:gsub(k1, k3), romaji:gsub(r1, r3))})
end
return success
end
if inflection_type == '1' then
local success = insert('く$', 'き', 'いた', 'ku$', 'ki', 'ita') or
insert('ぐ$', 'ぎ', 'いだ', 'gu$', 'gi', 'ida') or
insert('す$', 'し', 'した', 'su$', 'shi', 'shita') or
insert('つ$', 'ち', 'った', 'tsu$', 'chi', 'tta') or
insert('ぬ$', 'に', 'んだ', 'nu$', 'ni', 'nda') or
insert('ぶ$', 'び', 'んだ', 'bu$', 'bi', 'nda') or
insert('む$', 'み', 'んだ', 'mu$', 'mi', 'nda') or
insert('る$', 'り', 'った', 'ru$', 'ri', 'tta') or
insert('う$', 'い', 'った', 'u$', 'i', 'tta') or
require("Module:debug").track("ja-headword/godan conjugation failed")
elseif inflection_type == '1s' then
if lemma:find('る$') and romaji:find('ru$') then --くださる
table.insert(data.inflections, {label = 'stem', form(lemma:gsub('る$', 'り'), romaji:gsub('ru$', 'ri')), form(lemma:gsub('る$', 'い'), romaji:gsub('ru$', 'i'))})
table.insert(data.inflections, {label = 'past', form(lemma:gsub('る$', 'った'), romaji:gsub('ru$', 'tta'))})
else
local success = insert('く$', 'き', 'った', 'iku$', 'iki', 'itta') or --行く
insert('う$', 'い', 'うた', 'ou$', 'oi', 'ōta') or
require("Module:debug").track("ja-headword/godan conjugation special failed")
end
elseif inflection_type == '2' then
local success = insert('る$', '', 'た', 'ru$', '', 'ta') or
require("Module:debug").track("ja-headword/ichidan conjugation failed")
elseif inflection_type == '3' or inflection_type == 'kuru' or inflection_type == 'suru' then
if lemma:find('%[来%]%(く%)る$') and romaji:find('kuru$') then
table.insert(data.inflections, {label = 'stem', form(lemma:gsub('%[来%]%(く%)る$', '[来](き)'), romaji:gsub('kuru$', 'ki'))})
table.insert(data.inflections, {label = 'past', form(lemma:gsub('%[来%]%(く%)る$', '[来](き)た'), romaji:gsub('kuru$', 'kita'))})
else
local success = insert('くる$', 'き', 'きた', 'kuru$', 'ki', 'kita') or
insert('する$', 'し', 'した', 'suru$', 'shi', 'shita') or
insert('する%]%]$', 'し]]', 'した]]', 'suru$', 'shi', 'shita') or
insert('ずる$', 'じ', 'じた', 'zuru$', 'ji', 'jita') or
require("Module:debug").track("ja-headword/irregular conjugation failed")
end
elseif inflection_type == 'i' or inflection_type == 'い' then
if lemma:find('い$') and romaji:find('i$') then
table.insert(data.inflections, {label = 'adverbial', form(lemma:gsub('い$', 'く'), romaji:gsub('i$', 'ku'))})
else
require("Module:debug").track("ja-headword/-i inflection failed")
end
elseif inflection_type == 'is' then
if lemma:find('%[良%]%(い%)い$') and romaji:find('ii$') then
table.insert(data.inflections, {label = 'adverbial', form(lemma:gsub('%[良%]%(い%)い$', '[良](よ)く'), romaji:gsub('ii$', 'yoku'))})
elseif lemma:find('いい$') and romaji:find('ii$') then
table.insert(data.inflections, {label = 'adverbial', form(lemma:gsub('いい$', 'よく'), romaji:gsub('ii$', 'yoku'))})
else
require("Module:debug").track("ja-headword/slightly irregular -i inflection failed")
end
elseif inflection_type == 'na' or inflection_type == 'な' then
table.insert(data.inflections, {label = 'adnominal', form(lemma .. '[[な]]', romaji .. ' na')})
table.insert(data.inflections, {label = 'adverbial', form(lemma .. '[[に]]', romaji .. ' ni')})
elseif inflection_type == 'tari' or inflection_type == 'たり' then
table.insert(data.inflections, {label = 'adnominal', form(lemma .. '[[たる]]', romaji .. ' taru')})
table.insert(data.inflections, {label = 'adverbial', form(lemma .. '[[と]]', romaji .. ' to'), form(lemma .. '[[として]]', romaji .. ' toshite')})
end
end
pos_functions["verbs"] = function(args, data)
-- transitivity
local tr = args["tr"] or ""
tr = aliases[tr] or tr
if tr ~= "" then
if tr == "tr" then table.insert(data.inflections, {label = "transitif"})
table.insert(data.categories, "Kata kerja transitif bahasa Jepun") end
if tr == "in" then table.insert(data.inflections, {label = "tidak transitif"})
table.insert(data.categories, "Kata kerja tidak transitif bahasa Jepun") end
if tr == "both" then table.insert(data.inflections, {label = "transitif dan tidak transitif"})
table.insert(data.categories, "Kata kerja transitif bahasa Jepun")
table.insert(data.categories, "Kata kerja tidak transitif bahasa Jepun") end
else
table.insert(data.categories, "Kata kerja bahasa Jepun tanpa ketransitifan")
end
-- conjugation type
local conjugation = args["type"] or ""
conjugation = aliases[conjugation] or conjugation
if conjugation == "1" or conjugation == "1s" then
table.insert(data.inflections, {label = "godan conjugation"})
table.insert(data.categories, "Kata kerja jenis 1 bahasa Jepun")
if ends_in_iru_eru(args[1] or PAGENAME) then
table.insert(data.categories, "Japanese type 1 verbs that end in -iru or -eru")
end
elseif conjugation == "2" then
table.insert(data.inflections, {label = "ichidan conjugation"})
table.insert(data.categories, "Kata kerja jenis 2 bahasa Jepun")
elseif conjugation == "suru" then
table.insert(data.inflections, {label = "konjugasi suru"})
table.insert(data.categories, "Kata kerja suru bahasa Jepun")
elseif conjugation == "kuru" then
table.insert(data.inflections, {label = "kuru conjugation"})
table.insert(data.categories, "Kata kerja kuru bahasa Jepun")
elseif conjugation == "3" then
-- hidden temporary maintenance category
-- (suru verbs should use ja-verb-suru but sometime erroneously use ja-verb with type=3 instead)
table.insert(data.inflections, {label = "type 3 conjugation"})
table.insert(data.categories, "Kata kerja jenis 3 bahasa Jepun")
elseif conjugation == "irr" then
table.insert(data.inflections, {label = "irregular conjugation"})
table.insert(data.categories, "Kata kerja tidak nalar bahasa Jepun")
if mw.ustring.match(PAGENAME,'する$') then
table.insert(data.categories, "Kata kerja bahasa Jepun yang menggunakan ja-verb dengan jenis 3")
end
elseif conjugation == "yo" then
table.insert(data.inflections, {label = "yodan conjugation"})
table.insert(data.categories, "Kata kerja yodan bahasa Jepun")
elseif conjugation == "ni" then
table.insert(data.inflections, {label = "nidan conjugation"})
table.insert(data.categories, "Kata kerja nidan bahasa Jepun")
elseif conjugation == "kami ni" then
table.insert(data.inflections, {label = "kami nidan conjugation"})
table.insert(data.categories, "Japanese kami nidan verbs")
elseif conjugation == "shimo ni" then
table.insert(data.inflections, {label = "shimo nidan conjugation"})
table.insert(data.categories, "Japanese shimo nidan verbs")
end
add_inflections(data, conjugation)
-- >> maintenance category <<
-- check if this ends in something other than acceptable kana in a modern verb (and isn't already categorised as yodan or nidan)
if not mw.ustring.match(PAGENAME, '[うくぐすつぬぶむゆる]$') and conjugation ~= "yo" and conjugation ~= "ni" and conjugation ~= "kami ni" and conjugation ~= "shimo ni" then
table.insert(data.categories, "Japanese verbs without modern conjugations")
end
end
pos_functions["suffixes"] = function(args, data)
-- conjugation type
local conjugation = args["type"] or ""
conjugation = aliases[conjugation] or conjugation
if conjugation == "1" or conjugation == "1s" then
table.insert(data.inflections, {label = "godan conjugation"})
elseif conjugation == "2" then
table.insert(data.inflections, {label = "ichidan conjugation"})
elseif conjugation == "3" then
table.insert(data.inflections, {label = "irregular conjugation"})
elseif conjugation == "yo" then
table.insert(data.inflections, {label = "yodan conjugation"})
elseif conjugation == "ni" then
table.insert(data.inflections, {label = "nidan conjugation"})
elseif conjugation == "kami ni" then
table.insert(data.inflections, {label = "kami nidan conjugation"})
elseif conjugation == "shimo ni" then
table.insert(data.inflections, {label = "shimo nidan conjugation"})
elseif conjugation == "rahen" then
table.insert(data.inflections, {label = "r-irregular conjugation"})
elseif conjugation == "sahen" then
table.insert(data.inflections, {label = "s-irregular conjugation"})
elseif conjugation == "kahen" then
table.insert(data.inflections, {label = "k-irregular conjugation"})
elseif conjugation == "nahen" then
table.insert(data.inflections, {label = "n-irregular conjugation"})
elseif conjugation == "i" or conjugation == "い" or conjugation == "is" then
table.insert(data.inflections, {label = "-i inflection"})
elseif conjugation == "na" or conjugation == "な" then
table.insert(data.inflections, {label = "-na inflection"})
elseif conjugation == "nari" or conjugation == "なり" then
table.insert(data.inflections, {label = "-nari inflection"})
elseif conjugation == "tari" or conjugation == "たり" then
table.insert(data.inflections, {label = "-tari inflection"})
elseif conjugation == "ka" or conjugation == "か" then
table.insert(data.inflections, {label = "-ka inflection"})
end
add_inflections(data, conjugation)
end
pos_functions["kata kerja bantu"] = function(args, data)
data.pos_category = "kata kerja"
table.insert(data.categories, "Kata kerja bantu bahasa Jepun")
end
pos_functions["kata kerja suru"] = function(args, data)
table.insert(data.categories, "Kata kerja suru bahasa Jepun")
-- transitivity
local tr = args["tr"] or ""
tr = aliases[tr] or tr
if tr == "tr" then
table.insert(data.inflections, {label = "transitif"})
elseif tr == "in" then
table.insert(data.inflections, {label = "tidak transitif"})
elseif tr == "both" then
table.insert(data.inflections, {label = "transitif dan tidak transitif"})
elseif tr == "" then
table.insert(data.categories, "Kata kerja bahasa Jepun tanpa ketransitifan")
end
table.insert(data.inflections, {label = "konjugasi suru"})
add_inflections(data, '3')
end
pos_functions["adjectives"] = function(args, data)
-- categorize by inflection type
local infl = args["infl"] or ""
if infl == "i" or infl == "い" or infl == "is" then
table.insert(data.inflections, {label = "-i inflection"})
table.insert(data.categories, "Kata sifat い-i bahasa Jepun")
elseif infl == "na" or infl == "な" then
table.insert(data.inflections, {label = "-na inflection"})
table.insert(data.categories, "Kata sifat な-na bahasa Jepun")
elseif infl == "nari" or infl == "なり" then
table.insert(data.inflections, {label = "-nari inflection"})
table.insert(data.categories, "Kata sifat なり-nari bahasa Jepun")
elseif infl == "tari" or infl == "たり" then
table.insert(data.inflections, {label = "-tari inflection"})
table.insert(data.categories, "Kata sifat たり-tari bahasa Jepun")
elseif infl == "ka" or infl == "か" then
table.insert(data.inflections, {label = "-ka inflection"})
table.insert(data.categories, "Kata sifat か-ka bahasa Jepun")
end
add_inflections(data, infl)
end
pos_functions["nouns"] = function(args, data)
-- the counter (classifier) parameter, only relevant for nouns
local counter = args["count"] or ""
if counter == "-" then
table.insert(data.inflections, {label = "uncountable"})
elseif counter ~= "" then
table.insert(data.inflections, {label = "counter", counter})
end
end
-- The main entry point.
-- This is the only function that can be invoked from a template.
function export.show(frame)
local args = frame:getParent().args
PAGENAME = args["pagename"] or mw.title.getCurrentTitle().text
local poscat = frame.args[1] or error("Part of speech has not been specified. Please pass parameter 1 to the module invocation.")
local head = args["head"] or PAGENAME
if poscat == "suru verbs" then
local base, count = head:gsub("する$", "")
if count == 1 then
require("Module:debug").track("ja-headword/suru in pagename")
end
head = base .. "[[する]]"
end
if args["decl"] and (not args["infl"] or args["infl"] == "") then
args["infl"] = args["decl"]
end
local data = {lang = lang, sc = sc, pos_category = poscat, categories = {}, translits = {}, heads = (detect_kana_script(PAGENAME) and {head} or {}), inflections = {}}
local katakana_category = {}
local kana = find_kana(args, PAGENAME)
-- sort out all the kanas and do the romanization business
format_headword(args, data, PAGENAME, kana)
-- add certain "inflections" and categories for adjectives, verbs, or nouns
if pos_functions[poscat] then
pos_functions[poscat](args, data)
end
for i = 1, #data.heads do
local kana = mw.ustring.gsub(data.heads[i], "%[([^%[%]]+)%]%(([^%(%)]+)%)", "%2")
kana = remove_links(mw.ustring.gsub(kana, '%[%[する%]%]$', ''))
data.heads[i] = mw.ustring.gsub(data.heads[i], "%[([^%[%]]+)%]%(([^%(%)]+)%)", "<ruby>%1<rp>(</rp><rt>[[" .. kana .. "#Bahasa_Jepun|%2]]</rt><rp>)</rp></ruby>")
end
-- the presence of kyūjitai param indicates that this is shinjitai kanji entry and vice versa
local kyu = args["kyu"] or ""
local shin = args["shin"] or ""
if kyu == "" then
kyu = nil
else
table.insert(data.inflections, {label = "kanji [[shinjitai]]"})
if data.pos_category == "suru verbs" then
table.insert(data.inflections, {label = "kanji [[kyūjitai]]", "[[" .. kyu .. "]][[する]]"})
else
table.insert(data.inflections, {label = "kanji [[kyūjitai]]", kyu})
end
end
if shin ~= "" then
table.insert(data.inflections, {label = "kanji [[kyūjitai]]"})
if data.pos_category == "kata kerja suru" then
table.insert(data.inflections, {label = "kanji [[shinjitai]]", "[[" .. shin .. "]][[する]]"})
else
table.insert(data.inflections, {label = "kanji [[shinjitai]]", shin})
end
end
local hhira = args["hhira"] or ""
if hhira ~= "" then
if data.pos_category == "suru verbs" then
table.insert(data.inflections, {label = "hiragana sejarawi", "[[" .. hhira .. "]][[する]]"})
else
table.insert(data.inflections, {label = "hiragana sejarawi", hhira})
end
if string.match(hhira, "ゐ") ~= nil then
table.insert(data.categories, "Kata bahasa Jepun dari segi sejarah dieja dengan ゐ")
end
if string.match(hhira, "ゑ") ~= nil then
table.insert(data.categories, "Kata bahasa Jepun dari segi sejarah dieja dengan ゑ")
end
if string.match(hhira, "を") ~= nil then
table.insert(data.categories, "Kata bahasa Jepun dari segi sejarah dieja dengan を")
end
end
local hkata = args["hkata"] or ""
if hkata ~= "" then
if data.pos_category == "kata kerja suru" then
table.insert(data.inflections, {label = "historical katakana", "[[" .. hkata .. "]][[する]]"})
else
table.insert(data.inflections, {label = "historical katakana", hkata})
end
end
if data.pos_category == "suru verbs" then
data.pos_category = "verbs"
end
-- categorize by joyo kanji and number of kanji
categorize_by_kanji(data, PAGENAME)
-- generate "Kata bahasa Jepun dieja dengan ... dibaca sebagai ..." untuk kata kanji tunggal
singlekanji_term(data, PAGENAME)
-- add categories for terms with iteration marks (which are not kanji and hence are not categorized by ja-kanjitab)
extra_categorization(data, PAGENAME, katakana_category)
if find(PAGENAME, "[ァ-ヺヽヾ]") and find(PAGENAME, "[ぁ-ゖゞゝ]") and data.pos_category ~= "proverbs" and data.pos_category ~= "phrases" then
table.insert(data.categories, "Kata bahasa Jepun dieja dengan kana bercampur")
end
-- will only use sortkey if sortkey is different from PAGENAME
-- when katakana in PAGENAME is converted to hiragana
local sort_key = m_ja.jsort(kana)
if sort_key == m_ja.kata_to_hira(PAGENAME) then
return
require("Module:headword").full_headword(data) ..
require("Module:utilities").format_categories(katakana_category, lang)
else
-- convert sortkey to katakana version for katakana terms category (should sort by katakana)
data.sort_key = sort_key
return
require("Module:headword").full_headword(data) ..
require("Module:utilities").format_categories(katakana_category, lang, m_ja.hira_to_kata(sort_key))
end
end
return export
7zbwd45jtrps9goo4iedcmjhwsnq8zi
Modul:ja-kanjitab
828
9911
129840
111766
2022-08-22T07:18:50Z
Tofeiku
2269
kemas kini
Scribunto
text/plain
local export = {}
local m_utilities = require("Module:utilities")
local m_ja = require("Module:ja")
local ShowLabels = require("Module:labels").show_labels
--[=[
Other modules used: [[Module:parameters]], [[Module:table]]
]=]
local title = mw.title.getCurrentTitle()
local PAGENAME = title.text
local NAMESPACE = title.nsText
local lang = require("Module:languages").getByCode("ja")
local kanji_pattern = "一-鿿㐀-䶿﨎﨏﨑﨓﨔﨟﨡﨣﨤﨧-﨩𠀀-𪛟𪜀-𰀀-"
local kanji_grade_links = {
"[[Lampiran:Glosari_bahasa_Jepun#kyōiku_kanji|Gred: 1]]",
"[[Lampiran:Glosari_bahasa_Jepun#kyōiku_kanji|Gred: 2]]",
"[[Lampiran:Glosari_bahasa_Jepun#kyōiku_kanji|Gred: 3]]",
"[[Lampiran:Glosari_bahasa_Jepun#kyōiku_kanji|Gred: 4]]",
"[[Lampiran:Glosari_bahasa_Jepun#kyōiku_kanji|Gred: 5]]",
"[[Lampiran:Glosari_bahasa_Jepun#kyōiku_kanji|Gred: 6]]",
"[[Lampiran:Glosari_bahasa_Jepun#jōyō_kanji|Gred: S]]", -- 7
"[[Lampiran:Glosari_bahasa_Jepun#jinmeiyō_kanji|Jinmeiyō]]", -- 8
"[[Lampiran:Glosari_bahasa_Jepun#hyōgaiji|Hyōgaiji]]" -- 9
}
local function quote(text)
return "“" .. text .. "”"
end
-- this is the function that is called from templates
function export.show(frame)
local params = {
[1] = { list = true, allow_holes = true },
k = { list = true, allow_holes = true },
o = { list = true, allow_holes = true },
r = {},
sort = {},
yomi = {},
ateji = {},
alt = {},
kyu = { list = true },
y = {alias_of = 'yomi'},
clearright = {type = "boolean"},
pagename = {},
}
local args = require("Module:parameters").process(frame:getParent().args, params)
if args.pagename and NAMESPACE == "" then
require('Module:debug').track'ja-kanjitab/pagename param in mainspace'
end
local pagename = args.pagename or PAGENAME
local categories = {}
local cells = {}
-- extract kanji and non-kanji
local kanji = {}
local non_kanji = {}
local kanji_border = 1
mw.ustring.gsub(pagename, '()([' .. kanji_pattern .. '々])()', function(p1, w1, p2)
table.insert(non_kanji, mw.ustring.sub(pagename, kanji_border, p1 - 1))
kanji_border = p2
table.insert(kanji, w1)
end)
table.insert(non_kanji, mw.ustring.sub(pagename, kanji_border))
-- kyujitai
local kyu = args.kyu
if kyu[1] == '-' then
kyu = {}
elseif kyu[1] == nil then
local form_kyu = {non_kanji[1]}
local kyu_data = mw.loadData('Module:ja/data/kyu')
local has_kyu, has_kyu_nonsupple, has_shin = false, false, false
for i, v in ipairs(kanji) do
local v_kyu = kyu_data[1]:match(v .. '(%S*)%s')
if v_kyu == nil then
table.insert(form_kyu, v)
elseif v_kyu == '' then
has_shin = true
break
elseif v_kyu:sub(1, 1) == '&' then
has_kyu = true
table.insert(form_kyu, v_kyu)
else
has_kyu, has_kyu_nonsupple = true, true
table.insert(form_kyu, v_kyu)
end
table.insert(form_kyu, non_kanji[i + 1])
end
if not has_shin and has_kyu then
kyu[1] = (has_kyu_nonsupple and '' or pagename .. '|') .. table.concat(form_kyu)
end
if pagename:match'弁' then
require('Module:debug').track('ja-kanjitab/ambiguous kyujitai for 弁')
kyu[1] = 'which 弁?'
end
end
-- 々
for i, v in ipairs(kanji) do
if v == '々' then kanji[i] = kanji[i - 1] end
end
-- process readings
local readings = {}
local readings_actual = {}
local reading_length_total = 0
for i = 1, args[1].maxindex do
local reading_kana, reading_length
_, _, reading_kana, reading_length = mw.ustring.find(args[1][i] or '', '^([^0-9]*)([0-9]*)$')
reading_kana = reading_kana ~= "" and reading_kana or nil
reading_length = reading_kana and tonumber(reading_length) or 1
table.insert(readings, {reading_kana, reading_length})
reading_length_total = reading_length_total + reading_length
end
if reading_length_total > #kanji then
error('Readings for ' .. reading_length_total .. ' kanji are given, but this word has only ' .. #kanji .. ' kanji.')
else
for i = reading_length_total + 1, #kanji do table.insert(readings, {nil, 1}) end
end
local table_head = [=[
{| class="wikitable kanji-table" style="text-align: center; font-size: small; float: right;]=] .. (args.clearright and ' clear:right;' or '') .. [=["
! ]=] .. (#kanji > 1 and 'colspan="' .. #kanji .. '" ' or '') .. [=[style="font-weight: normal;" | [[Lampiran:Glosari_bahasa_Jepun#kanji|Kanji]] in this term
|- lang="ja" class="Jpan" style="font-size: 2em; background: white; line-height: 1em;"
]=]
local yomi
-- on/kun is jūbakoyomi; NOTE: these are only applicable for two-kanji compounds
-- kun/on is yutōyomi; NOTE: these are only applicable for two-kanji compounds
if args.yomi then
yomi = {}
local extended_yomi_code = {
o = 'on', on = 'on',
kanon = 'kanon', -- kan is kan'yoon, and ko is kun+on for backward compatibility
goon = 'goon',
soon = 'soon',
toon = 'toon',
kan = 'kanyoon', kanyo = 'kanyoon', kanyoon = 'kanyoon',
k = 'kun', kun = 'kun',
juku = 'jukujikun', jukuji = 'jukujikun', jukujikun = 'jukujikun',
ok = "jūbakoyomi", j = "jūbakoyomi",
ko = "yutōyomi", y = "yutōyomi", yu = "yutōyomi",
i = 'irregular', irr = 'irregular', irreg = 'irregular', irregular = 'irregular',
n = 'nanori', nanori = 'nanori',
[''] = '', none = '',
}
for i in mw.text.gsplit(args.yomi, ',') do
local _, _, a, b = mw.ustring.find(i, '^([a-z]*)([0-9]*)$')
a = extended_yomi_code[a] or error("The yomi type “" .. args.yomi .. "” is not recognized.")
b = tonumber(b) or 1
table.insert(yomi, { a, b })
if (a == "jūbakoyomi" or a == "yutōyomi") and #kanji ~= 2 then
error'yutou or juubako is only applicable to 二字熟語'
end
end
if #yomi == 1 and #kanji > 1 then
yomi[1][2] = #kanji
end
elseif #kanji > 0 then
require('Module:debug').track'ja-kanjitab/no yomi'
end
if args.k.maxindex and args.k.maxindex > args[1].maxindex then
require('Module:debug').track'ja-kanjitab/too many k'
end
if args.o.maxindex and args.o.maxindex > args[1].maxindex then
require('Module:debug').track'ja-kanjitab/too many o'
end
local yomi_type_by_kanji = {}
if yomi then
for i = 1, #yomi do
for j = 1, yomi[i][2] do
table.insert(yomi_type_by_kanji, yomi[i][1])
end
end
else
for i = 1, #kanji do
table.insert(yomi_type_by_kanji, '')
end
end
local is_ateji = {}
if args.ateji then
local ateji = args.ateji
local cat_ateji = false
if ateji == 'y' then
for i = 1, #kanji do
is_ateji[i] = true
end
cat_ateji = true
else
for i in mw.text.gsplit(ateji, ';') do
string.gsub(i, '^([0-9]+)$', function(a)
is_ateji[tonumber(a)] = true
cat_ateji = true
end)
string.gsub(i, '^([0-9]+),([0-9]+)$', function (a, b)
for j = tonumber(a), tonumber(b) do
is_ateji[j] = true
end
cat_ateji = true
end)
end
end
if cat_ateji then table.insert(categories, "Japanese terms spelled with ateji") end
end
-- if hiragana readings were passed,
-- make the "spelled with ..." categories, the readings cells on the lower level and build the sort key
-- otherwise rely on the pagename to make the original kanjitab and categories
local cells_above = {}
local cells_below = {}
local kanji_pos = 1
for i, reading in ipairs(readings) do
local reading_kana, reading_length = reading[1], reading[2]
local cell = {}
if reading_length <= 1 then
table.insert(cell, '| rowspan="2" | ')
else
table.insert(cell, '| colspan ="' .. reading_length .. '" | ')
end
-- display reading, actual reading and okurigana
if reading_kana then
if mw.ustring.find(reading_kana, '[ぁ-ゖ]') and not mw.ustring.find(reading_kana, '^[ぁ-ゖ]+$') then
require('Module:debug').track'ja-kanjitab/not all hiragana'
end
local actual_reading = args.k[i]
local okurigana = args.o[i]
local okurigana_text = okurigana and "(" .. okurigana .. ")" or ""
local actual_reading_text = actual_reading and " > " .. actual_reading .. okurigana_text or ""
local text = reading_kana .. okurigana_text .. actual_reading_text
readings_actual[i] = {(actual_reading or reading_kana) .. (okurigana or ''), reading_length}
table.insert(cell, '<span class="Jpan" lang="ja">' .. text .. '</span>')
if reading_length <= 1 then table.insert(cell, '<br/>') end
else
readings_actual[i] = {nil, 1}
end
-- display kanji grade, categorize
for j = kanji_pos, kanji_pos + reading_length - 1 do
local single_kanji = kanji[j]
local kanji_grade = m_ja.kanji_grade(single_kanji)
local ateji_text = is_ateji[j] and '<br/><small>([[Appendix:Japanese glossary#ateji|ateji]])</small>' or ''
if reading_kana then
-- subcategorize by reading if this is joyo kanji, not doing that for less common kanji, with exceptions
if (kanji_grade < 8 or (
'厭昌之芽昌浩智晃淳敦聡晃旭亮糊桂隘阿唖撫鼠阿耘迂寅已伊餡姦闊礙碍凱亥价謳嘔齧日臣桶抉兎鵜卯綾飴焙肋鮫頚糞軋烏痒捷辰叩橙揃嶋澤菱彦囃覗呑之乃鼠做寅樋堤槌机杖頼辿哉叢狢峯巳卍鱒仄他惚弘宏燕倦經痙圭禽僑鋸醵墟屹綺几翫癌劫膠昂鹸牽喧餐鑽瑣些渾梱坤國壕誦哨蒐杓爾梓荼楕躁綜楚闡閃撰專泄藉棲錘錐祷盪淘點顛填擲擢闖厨蛋潭腿冪碧劈焚祓弗憑誹砒婢挽拔撥剥胚播乃狼牢蓮礫醂龍榴蕾酉祐佑耶也蔓曼沫邁呆硼牡甫步矮狸苔'
):find(single_kanji)) and yomi_type_by_kanji[j] ~= 'irregular' and yomi_type_by_kanji[j] ~= 'jukujikun' and reading_length == 1 then
table.insert(categories, "Japanese terms spelled with " .. single_kanji .. " read as " .. reading_kana)
else
table.insert(categories, "Japanese terms spelled with " .. single_kanji)
end
else
if yomi_type_by_kanji[j] ~= 'irregular' and yomi_type_by_kanji[j] ~= 'jukujikun' then
require('Module:debug').track'ja-kanjitab/no reading'
end
table.insert(categories, "Japanese terms spelled with " .. single_kanji)
end
if reading_length <= 1 then
table.insert(cell, "<small>" .. kanji_grade_links[kanji_grade] .. "</small>" .. ateji_text)
else
table.insert(cells_below, "| <small>" .. kanji_grade_links[kanji_grade] .. "</small>" .. ateji_text)
end
end
table.insert(cells_above, table.concat(cell))
kanji_pos = kanji_pos + reading_length
end
table.insert(cells, '|- style="background: white;"')
if #cells_below > 0 then
table.insert(cells, table.concat(cells_above, '\n'))
table.insert(cells, '|- style="background: white;"')
table.insert(cells, table.concat(cells_below, '\n'))
else
for i, v in ipairs(cells_above) do
cells_above[i] = v:gsub('| rowspan="2" | ', '| ')
end
table.insert(cells, table.concat(cells_above, '\n'))
end
local yomi_info = {
["on"] = {
text = "on’yomi",
entry = "lampiran:Glosari_bahasa_Jepun#on'yomi",
category = "Kata bahasa Jepun dibaca dengan on'yomi",
},
["kanon"] = {
text = "kan’on",
entry = "Lampiran:Glosari_bahasa_Jepun#kan'on",
category = "Kata bahasa Jepun dibaca dengan on'yomi",
},
["goon"] = {
text = "goon",
entry = "Lampiran:Glosari_bahasa_Jepun#goon",
category = "Kata bahasa Jepun dibaca dengan on'yomi",
},
["soon"] = {
text = "sōon",
entry = "Lampiran:Glosari_bahasa_Jepun#tōon",
category = "Kata bahasa Jepun dibaca dengan on'yomi",
},
["toon"] = {
text = "tōon",
entry = "Lampiran:Glosari_bahasa_Jepun#tōon",
category = "Kata bahasa Jepun dibaca dengan on'yomi",
},
["kun"] = {
text = "kun’yomi",
entry = "Lampiran:Glosari_bahasa_Jepun#kun'yomi",
category = "Kata bahasa Jepun dibaca dengan kun'yomi",
},
["nanori"] = {
text = "nanori",
entry = "Lampiran:Glosari_bahasa_Jepun#nanori",
category = "Kata bahasa Jepun dibaca dengan nanori",
},
["yutōyomi"] = {
text = "yutōyomi",
entry = "Lampiran:Glosari_bahasa_Jepun#yutōyomi",
category = "Kata bahasa Jepun dibaca dengan yutōyomi",
},
["jūbakoyomi"] = {
text = "jūbakoyomi",
entry = "lampiran:Glosari_bahasa_Jepun#jūbakoyomi",
category = "Kata bahasa Jepun dibaca dengan jūbakoyomi",
},
["jukujikun"] = {
text = "jukujikun",
entry = "lampiran:Glosari_bahasa_Jepun#jukujikun",
category = "Kata bahasa Jepun dibaca dengan jukujikun",
},
["irregular"] = {
text = "''irregular''",
category = "Japanese terms with irregular kanji readings",
},
["kanyoon"] = {
text = "kan’yōon",
entry = "Lampiran:Glosari_bahasa_Jepun#kan'yoon",
category = "Kata bahasa Jepun dibaca dengan kan'yōon",
},
}
local rendaku = args.r
if rendaku then
table.insert(categories, "Kata bahasa Jepun dengan rendaku")
end
if yomi then
table.insert(cells, "|-")
for _, i in ipairs(yomi) do
local yomi_info = yomi_info[i[1]] or { text = i[1] }
local text
if yomi_info.entry then
text = "[[" .. yomi_info.entry .. "|" .. yomi_info.text .. "]]"
else
text = yomi_info.text
end
table.insert(cells, '| colspan="' .. i[2] .. '" |' .. text)
end
local is_onyomi = { on = true, kanon = true, goon = true, soon = true, toon = true, kanyoon = true }
-- categories
local all_onyomi = true
for i = 1, #yomi do
if not is_onyomi[yomi[i][1]] then all_onyomi = false; break end
end
if all_onyomi then
table.insert(categories, yomi_info.on.category)
elseif yomi[1][1] == 'jūbakoyomi' or yomi[1][1] == 'yutōyomi' then
table.insert(categories, yomi_info[yomi[1][1]].category)
else
local all_yomi_of_same_type = true
for i = 2, #yomi do
if yomi[i][1] ~= yomi[1][1] then all_yomi_of_same_type = false; break end
end
if all_yomi_of_same_type then
table.insert(categories, yomi_info[yomi[1][1]].category)
elseif #yomi == 2 and yomi[1][2] == 1 and yomi[2][2] == 1 and mw.ustring.len(pagename) == 2 then
if is_onyomi[yomi[1][1]] and yomi[2][1] == 'kun' then
table.insert(categories, yomi_info["jūbakoyomi"].category)
elseif yomi[1][1] == 'kun' and is_onyomi[yomi[2][1]] then
table.insert(categories, yomi_info["yutōyomi"].category)
end
end
end
end
local kanji_table
if #kanji > 0 then
kanji_table = table_head
for _, v in ipairs(kanji) do
kanji_table = kanji_table .. '| style="padding: 0.5em;" | [[' .. v .. '#Bahasa_Jepun|' .. v .. ']]\n'
end
kanji_table = kanji_table .. table.concat(cells, '\n') .. '\n|}'
else
kanji_table = ''
end
local forms_table = ""
if args.alt == '' or args.alt == '-' then args.alt = nil end
if kyu[1] or args.alt then
local forms = {}
-- |kyu=
if kyu[1] == 'which 弁?' then
table.insert(forms, '<strong class="error" style="font-size:75%;">Sila tentukan kyujitai yang betul untuk 弁 dengan parameter "kyu".</strong>[[Kategori:Permohonan untuk pembersihan dalam masukan bahasa Jepun]]')
table.remove(kyu, 1)
end
for _, form in ipairs(kyu) do
local form_linkto, form_display = form:match'^(.+)|(.+)$'
if not form_linkto then form_linkto, form_display = form, form end
table.insert(forms, table.concat{
'<span class="Jpan" lang="ja" style="font-family:游ゴシック, HanaMinA, sans-serif; font-size:140%;">[[',
form_linkto,
form_linkto == pagename and '|' or '#Bahasa_Jepun|',
form_display,
']]</span> <small>',
ShowLabels({'kyūjitai'}, lang, nil, nil, nil, nil, true),
'</small>',
})
end
-- |alt=
if args.alt then
for form in mw.text.gsplit(args.alt, ',') do
local i_semicolon = string.find(form, ':')
if i_semicolon then
local altform = string.sub(form, 1, i_semicolon - 1)
local altlabels = mw.text.split(string.sub(form, i_semicolon + 1), ' ')
table.insert(forms, table.concat{
'<span class="Jpan" lang="ja" style="font-size:140%">[[',
altform,
'#Japanese|',
altform,
']]</span> <small>',
ShowLabels(altlabels, lang, nil, nil, nil, nil, true),
'</small>',
})
else
table.insert(forms, table.concat{
'<span class="Jpan" lang="ja" style="font-size:140%">[[',
form,
'#Japanese|',
form,
']]</span>'
})
end
end
end
forms_table = '\n' .. [[{| class="wikitable floatright"
! style="font-weight:normal" | Bentuk pilihan]] .. (#forms == 1 and "" or "") .. [[
|-
| style="text-align:center;font-size:108%" | ]] .. table.concat(forms, '<br>') .. '\n|}'
end
-- use user-provided sortkey if we got one, otherwise
-- use the sortkey we've already made by combining the
-- readings if provided, if we have neither then
-- default to empty string and don't sort
local sortkey
if args.sort then
sortkey = args.sort
else
sortkey = {non_kanji[1]}
local id = 1
for _, v in ipairs(readings_actual) do
id = id + v[2]
table.insert(sortkey, (v[1] or '') .. (non_kanji[id] or ''))
end
sortkey = table.concat(sortkey)
end
if sortkey == '' then
sortkey = nil
else
sortkey = m_ja.jsort(sortkey)
end
return kanji_table .. forms_table .. m_utilities.format_categories(categories, lang, sortkey)
end
return export
p028laocq5e8huujv6oskr0ogshnggf
129847
129840
2022-08-22T07:27:37Z
Tofeiku
2269
terjemah
Scribunto
text/plain
local export = {}
local m_utilities = require("Module:utilities")
local m_ja = require("Module:ja")
local ShowLabels = require("Module:labels").show_labels
--[=[
Other modules used: [[Module:parameters]], [[Module:table]]
]=]
local title = mw.title.getCurrentTitle()
local PAGENAME = title.text
local NAMESPACE = title.nsText
local lang = require("Module:languages").getByCode("ja")
local kanji_pattern = "一-鿿㐀-䶿﨎﨏﨑﨓﨔﨟﨡﨣﨤﨧-﨩𠀀-𪛟𪜀-𰀀-"
local kanji_grade_links = {
"[[Lampiran:Glosari_bahasa_Jepun#kyōiku_kanji|Gred: 1]]",
"[[Lampiran:Glosari_bahasa_Jepun#kyōiku_kanji|Gred: 2]]",
"[[Lampiran:Glosari_bahasa_Jepun#kyōiku_kanji|Gred: 3]]",
"[[Lampiran:Glosari_bahasa_Jepun#kyōiku_kanji|Gred: 4]]",
"[[Lampiran:Glosari_bahasa_Jepun#kyōiku_kanji|Gred: 5]]",
"[[Lampiran:Glosari_bahasa_Jepun#kyōiku_kanji|Gred: 6]]",
"[[Lampiran:Glosari_bahasa_Jepun#jōyō_kanji|Gred: S]]", -- 7
"[[Lampiran:Glosari_bahasa_Jepun#jinmeiyō_kanji|Jinmeiyō]]", -- 8
"[[Lampiran:Glosari_bahasa_Jepun#hyōgaiji|Hyōgaiji]]" -- 9
}
local function quote(text)
return "“" .. text .. "”"
end
-- this is the function that is called from templates
function export.show(frame)
local params = {
[1] = { list = true, allow_holes = true },
k = { list = true, allow_holes = true },
o = { list = true, allow_holes = true },
r = {},
sort = {},
yomi = {},
ateji = {},
alt = {},
kyu = { list = true },
y = {alias_of = 'yomi'},
clearright = {type = "boolean"},
pagename = {},
}
local args = require("Module:parameters").process(frame:getParent().args, params)
if args.pagename and NAMESPACE == "" then
require('Module:debug').track'ja-kanjitab/pagename param in mainspace'
end
local pagename = args.pagename or PAGENAME
local categories = {}
local cells = {}
-- extract kanji and non-kanji
local kanji = {}
local non_kanji = {}
local kanji_border = 1
mw.ustring.gsub(pagename, '()([' .. kanji_pattern .. '々])()', function(p1, w1, p2)
table.insert(non_kanji, mw.ustring.sub(pagename, kanji_border, p1 - 1))
kanji_border = p2
table.insert(kanji, w1)
end)
table.insert(non_kanji, mw.ustring.sub(pagename, kanji_border))
-- kyujitai
local kyu = args.kyu
if kyu[1] == '-' then
kyu = {}
elseif kyu[1] == nil then
local form_kyu = {non_kanji[1]}
local kyu_data = mw.loadData('Module:ja/data/kyu')
local has_kyu, has_kyu_nonsupple, has_shin = false, false, false
for i, v in ipairs(kanji) do
local v_kyu = kyu_data[1]:match(v .. '(%S*)%s')
if v_kyu == nil then
table.insert(form_kyu, v)
elseif v_kyu == '' then
has_shin = true
break
elseif v_kyu:sub(1, 1) == '&' then
has_kyu = true
table.insert(form_kyu, v_kyu)
else
has_kyu, has_kyu_nonsupple = true, true
table.insert(form_kyu, v_kyu)
end
table.insert(form_kyu, non_kanji[i + 1])
end
if not has_shin and has_kyu then
kyu[1] = (has_kyu_nonsupple and '' or pagename .. '|') .. table.concat(form_kyu)
end
if pagename:match'弁' then
require('Module:debug').track('ja-kanjitab/ambiguous kyujitai for 弁')
kyu[1] = 'which 弁?'
end
end
-- 々
for i, v in ipairs(kanji) do
if v == '々' then kanji[i] = kanji[i - 1] end
end
-- process readings
local readings = {}
local readings_actual = {}
local reading_length_total = 0
for i = 1, args[1].maxindex do
local reading_kana, reading_length
_, _, reading_kana, reading_length = mw.ustring.find(args[1][i] or '', '^([^0-9]*)([0-9]*)$')
reading_kana = reading_kana ~= "" and reading_kana or nil
reading_length = reading_kana and tonumber(reading_length) or 1
table.insert(readings, {reading_kana, reading_length})
reading_length_total = reading_length_total + reading_length
end
if reading_length_total > #kanji then
error('Readings for ' .. reading_length_total .. ' kanji are given, but this word has only ' .. #kanji .. ' kanji.')
else
for i = reading_length_total + 1, #kanji do table.insert(readings, {nil, 1}) end
end
local table_head = [=[
{| class="wikitable kanji-table" style="text-align: center; font-size: small; float: right;]=] .. (args.clearright and ' clear:right;' or '') .. [=["
! ]=] .. (#kanji > 1 and 'colspan="' .. #kanji .. '" ' or '') .. [=[style="font-weight: normal;" | [[Lampiran:Glosari_bahasa_Jepun#kanji|Kanji]] dalam kata ini
|- lang="ja" class="Jpan" style="font-size: 2em; background: white; line-height: 1em;"
]=]
local yomi
-- on/kun is jūbakoyomi; NOTE: these are only applicable for two-kanji compounds
-- kun/on is yutōyomi; NOTE: these are only applicable for two-kanji compounds
if args.yomi then
yomi = {}
local extended_yomi_code = {
o = 'on', on = 'on',
kanon = 'kanon', -- kan is kan'yoon, and ko is kun+on for backward compatibility
goon = 'goon',
soon = 'soon',
toon = 'toon',
kan = 'kanyoon', kanyo = 'kanyoon', kanyoon = 'kanyoon',
k = 'kun', kun = 'kun',
juku = 'jukujikun', jukuji = 'jukujikun', jukujikun = 'jukujikun',
ok = "jūbakoyomi", j = "jūbakoyomi",
ko = "yutōyomi", y = "yutōyomi", yu = "yutōyomi",
i = 'irregular', irr = 'irregular', irreg = 'irregular', irregular = 'irregular',
n = 'nanori', nanori = 'nanori',
[''] = '', none = '',
}
for i in mw.text.gsplit(args.yomi, ',') do
local _, _, a, b = mw.ustring.find(i, '^([a-z]*)([0-9]*)$')
a = extended_yomi_code[a] or error("The yomi type “" .. args.yomi .. "” is not recognized.")
b = tonumber(b) or 1
table.insert(yomi, { a, b })
if (a == "jūbakoyomi" or a == "yutōyomi") and #kanji ~= 2 then
error'yutou or juubako is only applicable to 二字熟語'
end
end
if #yomi == 1 and #kanji > 1 then
yomi[1][2] = #kanji
end
elseif #kanji > 0 then
require('Module:debug').track'ja-kanjitab/no yomi'
end
if args.k.maxindex and args.k.maxindex > args[1].maxindex then
require('Module:debug').track'ja-kanjitab/too many k'
end
if args.o.maxindex and args.o.maxindex > args[1].maxindex then
require('Module:debug').track'ja-kanjitab/too many o'
end
local yomi_type_by_kanji = {}
if yomi then
for i = 1, #yomi do
for j = 1, yomi[i][2] do
table.insert(yomi_type_by_kanji, yomi[i][1])
end
end
else
for i = 1, #kanji do
table.insert(yomi_type_by_kanji, '')
end
end
local is_ateji = {}
if args.ateji then
local ateji = args.ateji
local cat_ateji = false
if ateji == 'y' then
for i = 1, #kanji do
is_ateji[i] = true
end
cat_ateji = true
else
for i in mw.text.gsplit(ateji, ';') do
string.gsub(i, '^([0-9]+)$', function(a)
is_ateji[tonumber(a)] = true
cat_ateji = true
end)
string.gsub(i, '^([0-9]+),([0-9]+)$', function (a, b)
for j = tonumber(a), tonumber(b) do
is_ateji[j] = true
end
cat_ateji = true
end)
end
end
if cat_ateji then table.insert(categories, "Japanese terms spelled with ateji") end
end
-- if hiragana readings were passed,
-- make the "spelled with ..." categories, the readings cells on the lower level and build the sort key
-- otherwise rely on the pagename to make the original kanjitab and categories
local cells_above = {}
local cells_below = {}
local kanji_pos = 1
for i, reading in ipairs(readings) do
local reading_kana, reading_length = reading[1], reading[2]
local cell = {}
if reading_length <= 1 then
table.insert(cell, '| rowspan="2" | ')
else
table.insert(cell, '| colspan ="' .. reading_length .. '" | ')
end
-- display reading, actual reading and okurigana
if reading_kana then
if mw.ustring.find(reading_kana, '[ぁ-ゖ]') and not mw.ustring.find(reading_kana, '^[ぁ-ゖ]+$') then
require('Module:debug').track'ja-kanjitab/not all hiragana'
end
local actual_reading = args.k[i]
local okurigana = args.o[i]
local okurigana_text = okurigana and "(" .. okurigana .. ")" or ""
local actual_reading_text = actual_reading and " > " .. actual_reading .. okurigana_text or ""
local text = reading_kana .. okurigana_text .. actual_reading_text
readings_actual[i] = {(actual_reading or reading_kana) .. (okurigana or ''), reading_length}
table.insert(cell, '<span class="Jpan" lang="ja">' .. text .. '</span>')
if reading_length <= 1 then table.insert(cell, '<br/>') end
else
readings_actual[i] = {nil, 1}
end
-- display kanji grade, categorize
for j = kanji_pos, kanji_pos + reading_length - 1 do
local single_kanji = kanji[j]
local kanji_grade = m_ja.kanji_grade(single_kanji)
local ateji_text = is_ateji[j] and '<br/><small>([[Appendix:Japanese glossary#ateji|ateji]])</small>' or ''
if reading_kana then
-- subcategorize by reading if this is joyo kanji, not doing that for less common kanji, with exceptions
if (kanji_grade < 8 or (
'厭昌之芽昌浩智晃淳敦聡晃旭亮糊桂隘阿唖撫鼠阿耘迂寅已伊餡姦闊礙碍凱亥价謳嘔齧日臣桶抉兎鵜卯綾飴焙肋鮫頚糞軋烏痒捷辰叩橙揃嶋澤菱彦囃覗呑之乃鼠做寅樋堤槌机杖頼辿哉叢狢峯巳卍鱒仄他惚弘宏燕倦經痙圭禽僑鋸醵墟屹綺几翫癌劫膠昂鹸牽喧餐鑽瑣些渾梱坤國壕誦哨蒐杓爾梓荼楕躁綜楚闡閃撰專泄藉棲錘錐祷盪淘點顛填擲擢闖厨蛋潭腿冪碧劈焚祓弗憑誹砒婢挽拔撥剥胚播乃狼牢蓮礫醂龍榴蕾酉祐佑耶也蔓曼沫邁呆硼牡甫步矮狸苔'
):find(single_kanji)) and yomi_type_by_kanji[j] ~= 'irregular' and yomi_type_by_kanji[j] ~= 'jukujikun' and reading_length == 1 then
table.insert(categories, "Japanese terms spelled with " .. single_kanji .. " read as " .. reading_kana)
else
table.insert(categories, "Japanese terms spelled with " .. single_kanji)
end
else
if yomi_type_by_kanji[j] ~= 'irregular' and yomi_type_by_kanji[j] ~= 'jukujikun' then
require('Module:debug').track'ja-kanjitab/no reading'
end
table.insert(categories, "Japanese terms spelled with " .. single_kanji)
end
if reading_length <= 1 then
table.insert(cell, "<small>" .. kanji_grade_links[kanji_grade] .. "</small>" .. ateji_text)
else
table.insert(cells_below, "| <small>" .. kanji_grade_links[kanji_grade] .. "</small>" .. ateji_text)
end
end
table.insert(cells_above, table.concat(cell))
kanji_pos = kanji_pos + reading_length
end
table.insert(cells, '|- style="background: white;"')
if #cells_below > 0 then
table.insert(cells, table.concat(cells_above, '\n'))
table.insert(cells, '|- style="background: white;"')
table.insert(cells, table.concat(cells_below, '\n'))
else
for i, v in ipairs(cells_above) do
cells_above[i] = v:gsub('| rowspan="2" | ', '| ')
end
table.insert(cells, table.concat(cells_above, '\n'))
end
local yomi_info = {
["on"] = {
text = "on’yomi",
entry = "lampiran:Glosari_bahasa_Jepun#on'yomi",
category = "Kata bahasa Jepun dibaca dengan on'yomi",
},
["kanon"] = {
text = "kan’on",
entry = "Lampiran:Glosari_bahasa_Jepun#kan'on",
category = "Kata bahasa Jepun dibaca dengan on'yomi",
},
["goon"] = {
text = "goon",
entry = "Lampiran:Glosari_bahasa_Jepun#goon",
category = "Kata bahasa Jepun dibaca dengan on'yomi",
},
["soon"] = {
text = "sōon",
entry = "Lampiran:Glosari_bahasa_Jepun#tōon",
category = "Kata bahasa Jepun dibaca dengan on'yomi",
},
["toon"] = {
text = "tōon",
entry = "Lampiran:Glosari_bahasa_Jepun#tōon",
category = "Kata bahasa Jepun dibaca dengan on'yomi",
},
["kun"] = {
text = "kun’yomi",
entry = "Lampiran:Glosari_bahasa_Jepun#kun'yomi",
category = "Kata bahasa Jepun dibaca dengan kun'yomi",
},
["nanori"] = {
text = "nanori",
entry = "Lampiran:Glosari_bahasa_Jepun#nanori",
category = "Kata bahasa Jepun dibaca dengan nanori",
},
["yutōyomi"] = {
text = "yutōyomi",
entry = "Lampiran:Glosari_bahasa_Jepun#yutōyomi",
category = "Kata bahasa Jepun dibaca dengan yutōyomi",
},
["jūbakoyomi"] = {
text = "jūbakoyomi",
entry = "lampiran:Glosari_bahasa_Jepun#jūbakoyomi",
category = "Kata bahasa Jepun dibaca dengan jūbakoyomi",
},
["jukujikun"] = {
text = "jukujikun",
entry = "lampiran:Glosari_bahasa_Jepun#jukujikun",
category = "Kata bahasa Jepun dibaca dengan jukujikun",
},
["irregular"] = {
text = "''irregular''",
category = "Japanese terms with irregular kanji readings",
},
["kanyoon"] = {
text = "kan’yōon",
entry = "Lampiran:Glosari_bahasa_Jepun#kan'yoon",
category = "Kata bahasa Jepun dibaca dengan kan'yōon",
},
}
local rendaku = args.r
if rendaku then
table.insert(categories, "Kata bahasa Jepun dengan rendaku")
end
if yomi then
table.insert(cells, "|-")
for _, i in ipairs(yomi) do
local yomi_info = yomi_info[i[1]] or { text = i[1] }
local text
if yomi_info.entry then
text = "[[" .. yomi_info.entry .. "|" .. yomi_info.text .. "]]"
else
text = yomi_info.text
end
table.insert(cells, '| colspan="' .. i[2] .. '" |' .. text)
end
local is_onyomi = { on = true, kanon = true, goon = true, soon = true, toon = true, kanyoon = true }
-- categories
local all_onyomi = true
for i = 1, #yomi do
if not is_onyomi[yomi[i][1]] then all_onyomi = false; break end
end
if all_onyomi then
table.insert(categories, yomi_info.on.category)
elseif yomi[1][1] == 'jūbakoyomi' or yomi[1][1] == 'yutōyomi' then
table.insert(categories, yomi_info[yomi[1][1]].category)
else
local all_yomi_of_same_type = true
for i = 2, #yomi do
if yomi[i][1] ~= yomi[1][1] then all_yomi_of_same_type = false; break end
end
if all_yomi_of_same_type then
table.insert(categories, yomi_info[yomi[1][1]].category)
elseif #yomi == 2 and yomi[1][2] == 1 and yomi[2][2] == 1 and mw.ustring.len(pagename) == 2 then
if is_onyomi[yomi[1][1]] and yomi[2][1] == 'kun' then
table.insert(categories, yomi_info["jūbakoyomi"].category)
elseif yomi[1][1] == 'kun' and is_onyomi[yomi[2][1]] then
table.insert(categories, yomi_info["yutōyomi"].category)
end
end
end
end
local kanji_table
if #kanji > 0 then
kanji_table = table_head
for _, v in ipairs(kanji) do
kanji_table = kanji_table .. '| style="padding: 0.5em;" | [[' .. v .. '#Bahasa_Jepun|' .. v .. ']]\n'
end
kanji_table = kanji_table .. table.concat(cells, '\n') .. '\n|}'
else
kanji_table = ''
end
local forms_table = ""
if args.alt == '' or args.alt == '-' then args.alt = nil end
if kyu[1] or args.alt then
local forms = {}
-- |kyu=
if kyu[1] == 'which 弁?' then
table.insert(forms, '<strong class="error" style="font-size:75%;">Sila tentukan kyujitai yang betul untuk 弁 dengan parameter "kyu".</strong>[[Kategori:Permohonan untuk pembersihan dalam masukan bahasa Jepun]]')
table.remove(kyu, 1)
end
for _, form in ipairs(kyu) do
local form_linkto, form_display = form:match'^(.+)|(.+)$'
if not form_linkto then form_linkto, form_display = form, form end
table.insert(forms, table.concat{
'<span class="Jpan" lang="ja" style="font-family:游ゴシック, HanaMinA, sans-serif; font-size:140%;">[[',
form_linkto,
form_linkto == pagename and '|' or '#Bahasa_Jepun|',
form_display,
']]</span> <small>',
ShowLabels({'kyūjitai'}, lang, nil, nil, nil, nil, true),
'</small>',
})
end
-- |alt=
if args.alt then
for form in mw.text.gsplit(args.alt, ',') do
local i_semicolon = string.find(form, ':')
if i_semicolon then
local altform = string.sub(form, 1, i_semicolon - 1)
local altlabels = mw.text.split(string.sub(form, i_semicolon + 1), ' ')
table.insert(forms, table.concat{
'<span class="Jpan" lang="ja" style="font-size:140%">[[',
altform,
'#Japanese|',
altform,
']]</span> <small>',
ShowLabels(altlabels, lang, nil, nil, nil, nil, true),
'</small>',
})
else
table.insert(forms, table.concat{
'<span class="Jpan" lang="ja" style="font-size:140%">[[',
form,
'#Japanese|',
form,
']]</span>'
})
end
end
end
forms_table = '\n' .. [[{| class="wikitable floatright"
! style="font-weight:normal" | Bentuk pilihan]] .. (#forms == 1 and "" or "") .. [[
|-
| style="text-align:center;font-size:108%" | ]] .. table.concat(forms, '<br>') .. '\n|}'
end
-- use user-provided sortkey if we got one, otherwise
-- use the sortkey we've already made by combining the
-- readings if provided, if we have neither then
-- default to empty string and don't sort
local sortkey
if args.sort then
sortkey = args.sort
else
sortkey = {non_kanji[1]}
local id = 1
for _, v in ipairs(readings_actual) do
id = id + v[2]
table.insert(sortkey, (v[1] or '') .. (non_kanji[id] or ''))
end
sortkey = table.concat(sortkey)
end
if sortkey == '' then
sortkey = nil
else
sortkey = m_ja.jsort(sortkey)
end
return kanji_table .. forms_table .. m_utilities.format_categories(categories, lang, sortkey)
end
return export
tdi8q7rl33kehv1bhjr702202hgvzx2
129850
129847
2022-08-22T07:31:16Z
Tofeiku
2269
terjemah
Scribunto
text/plain
local export = {}
local m_utilities = require("Module:utilities")
local m_ja = require("Module:ja")
local ShowLabels = require("Module:labels").show_labels
--[=[
Other modules used: [[Module:parameters]], [[Module:table]]
]=]
local title = mw.title.getCurrentTitle()
local PAGENAME = title.text
local NAMESPACE = title.nsText
local lang = require("Module:languages").getByCode("ja")
local kanji_pattern = "一-鿿㐀-䶿﨎﨏﨑﨓﨔﨟﨡﨣﨤﨧-﨩𠀀-𪛟𪜀-𰀀-"
local kanji_grade_links = {
"[[Lampiran:Glosari_bahasa_Jepun#kyōiku_kanji|Gred: 1]]",
"[[Lampiran:Glosari_bahasa_Jepun#kyōiku_kanji|Gred: 2]]",
"[[Lampiran:Glosari_bahasa_Jepun#kyōiku_kanji|Gred: 3]]",
"[[Lampiran:Glosari_bahasa_Jepun#kyōiku_kanji|Gred: 4]]",
"[[Lampiran:Glosari_bahasa_Jepun#kyōiku_kanji|Gred: 5]]",
"[[Lampiran:Glosari_bahasa_Jepun#kyōiku_kanji|Gred: 6]]",
"[[Lampiran:Glosari_bahasa_Jepun#jōyō_kanji|Gred: S]]", -- 7
"[[Lampiran:Glosari_bahasa_Jepun#jinmeiyō_kanji|Jinmeiyō]]", -- 8
"[[Lampiran:Glosari_bahasa_Jepun#hyōgaiji|Hyōgaiji]]" -- 9
}
local function quote(text)
return "“" .. text .. "”"
end
-- this is the function that is called from templates
function export.show(frame)
local params = {
[1] = { list = true, allow_holes = true },
k = { list = true, allow_holes = true },
o = { list = true, allow_holes = true },
r = {},
sort = {},
yomi = {},
ateji = {},
alt = {},
kyu = { list = true },
y = {alias_of = 'yomi'},
clearright = {type = "boolean"},
pagename = {},
}
local args = require("Module:parameters").process(frame:getParent().args, params)
if args.pagename and NAMESPACE == "" then
require('Module:debug').track'ja-kanjitab/pagename param in mainspace'
end
local pagename = args.pagename or PAGENAME
local categories = {}
local cells = {}
-- extract kanji and non-kanji
local kanji = {}
local non_kanji = {}
local kanji_border = 1
mw.ustring.gsub(pagename, '()([' .. kanji_pattern .. '々])()', function(p1, w1, p2)
table.insert(non_kanji, mw.ustring.sub(pagename, kanji_border, p1 - 1))
kanji_border = p2
table.insert(kanji, w1)
end)
table.insert(non_kanji, mw.ustring.sub(pagename, kanji_border))
-- kyujitai
local kyu = args.kyu
if kyu[1] == '-' then
kyu = {}
elseif kyu[1] == nil then
local form_kyu = {non_kanji[1]}
local kyu_data = mw.loadData('Module:ja/data/kyu')
local has_kyu, has_kyu_nonsupple, has_shin = false, false, false
for i, v in ipairs(kanji) do
local v_kyu = kyu_data[1]:match(v .. '(%S*)%s')
if v_kyu == nil then
table.insert(form_kyu, v)
elseif v_kyu == '' then
has_shin = true
break
elseif v_kyu:sub(1, 1) == '&' then
has_kyu = true
table.insert(form_kyu, v_kyu)
else
has_kyu, has_kyu_nonsupple = true, true
table.insert(form_kyu, v_kyu)
end
table.insert(form_kyu, non_kanji[i + 1])
end
if not has_shin and has_kyu then
kyu[1] = (has_kyu_nonsupple and '' or pagename .. '|') .. table.concat(form_kyu)
end
if pagename:match'弁' then
require('Module:debug').track('ja-kanjitab/ambiguous kyujitai for 弁')
kyu[1] = 'which 弁?'
end
end
-- 々
for i, v in ipairs(kanji) do
if v == '々' then kanji[i] = kanji[i - 1] end
end
-- process readings
local readings = {}
local readings_actual = {}
local reading_length_total = 0
for i = 1, args[1].maxindex do
local reading_kana, reading_length
_, _, reading_kana, reading_length = mw.ustring.find(args[1][i] or '', '^([^0-9]*)([0-9]*)$')
reading_kana = reading_kana ~= "" and reading_kana or nil
reading_length = reading_kana and tonumber(reading_length) or 1
table.insert(readings, {reading_kana, reading_length})
reading_length_total = reading_length_total + reading_length
end
if reading_length_total > #kanji then
error('Readings for ' .. reading_length_total .. ' kanji are given, but this word has only ' .. #kanji .. ' kanji.')
else
for i = reading_length_total + 1, #kanji do table.insert(readings, {nil, 1}) end
end
local table_head = [=[
{| class="wikitable kanji-table" style="text-align: center; font-size: small; float: right;]=] .. (args.clearright and ' clear:right;' or '') .. [=["
! ]=] .. (#kanji > 1 and 'colspan="' .. #kanji .. '" ' or '') .. [=[style="font-weight: normal;" | [[Lampiran:Glosari_bahasa_Jepun#kanji|Kanji]] dalam kata ini
|- lang="ja" class="Jpan" style="font-size: 2em; background: white; line-height: 1em;"
]=]
local yomi
-- on/kun is jūbakoyomi; NOTE: these are only applicable for two-kanji compounds
-- kun/on is yutōyomi; NOTE: these are only applicable for two-kanji compounds
if args.yomi then
yomi = {}
local extended_yomi_code = {
o = 'on', on = 'on',
kanon = 'kanon', -- kan is kan'yoon, and ko is kun+on for backward compatibility
goon = 'goon',
soon = 'soon',
toon = 'toon',
kan = 'kanyoon', kanyo = 'kanyoon', kanyoon = 'kanyoon',
k = 'kun', kun = 'kun',
juku = 'jukujikun', jukuji = 'jukujikun', jukujikun = 'jukujikun',
ok = "jūbakoyomi", j = "jūbakoyomi",
ko = "yutōyomi", y = "yutōyomi", yu = "yutōyomi",
i = 'irregular', irr = 'irregular', irreg = 'irregular', irregular = 'irregular',
n = 'nanori', nanori = 'nanori',
[''] = '', none = '',
}
for i in mw.text.gsplit(args.yomi, ',') do
local _, _, a, b = mw.ustring.find(i, '^([a-z]*)([0-9]*)$')
a = extended_yomi_code[a] or error("The yomi type “" .. args.yomi .. "” is not recognized.")
b = tonumber(b) or 1
table.insert(yomi, { a, b })
if (a == "jūbakoyomi" or a == "yutōyomi") and #kanji ~= 2 then
error'yutou or juubako is only applicable to 二字熟語'
end
end
if #yomi == 1 and #kanji > 1 then
yomi[1][2] = #kanji
end
elseif #kanji > 0 then
require('Module:debug').track'ja-kanjitab/no yomi'
end
if args.k.maxindex and args.k.maxindex > args[1].maxindex then
require('Module:debug').track'ja-kanjitab/too many k'
end
if args.o.maxindex and args.o.maxindex > args[1].maxindex then
require('Module:debug').track'ja-kanjitab/too many o'
end
local yomi_type_by_kanji = {}
if yomi then
for i = 1, #yomi do
for j = 1, yomi[i][2] do
table.insert(yomi_type_by_kanji, yomi[i][1])
end
end
else
for i = 1, #kanji do
table.insert(yomi_type_by_kanji, '')
end
end
local is_ateji = {}
if args.ateji then
local ateji = args.ateji
local cat_ateji = false
if ateji == 'y' then
for i = 1, #kanji do
is_ateji[i] = true
end
cat_ateji = true
else
for i in mw.text.gsplit(ateji, ';') do
string.gsub(i, '^([0-9]+)$', function(a)
is_ateji[tonumber(a)] = true
cat_ateji = true
end)
string.gsub(i, '^([0-9]+),([0-9]+)$', function (a, b)
for j = tonumber(a), tonumber(b) do
is_ateji[j] = true
end
cat_ateji = true
end)
end
end
if cat_ateji then table.insert(categories, "Kata bahasa Jepun dieja dengan ateji") end
end
-- if hiragana readings were passed,
-- make the "spelled with ..." categories, the readings cells on the lower level and build the sort key
-- otherwise rely on the pagename to make the original kanjitab and categories
local cells_above = {}
local cells_below = {}
local kanji_pos = 1
for i, reading in ipairs(readings) do
local reading_kana, reading_length = reading[1], reading[2]
local cell = {}
if reading_length <= 1 then
table.insert(cell, '| rowspan="2" | ')
else
table.insert(cell, '| colspan ="' .. reading_length .. '" | ')
end
-- display reading, actual reading and okurigana
if reading_kana then
if mw.ustring.find(reading_kana, '[ぁ-ゖ]') and not mw.ustring.find(reading_kana, '^[ぁ-ゖ]+$') then
require('Module:debug').track'ja-kanjitab/not all hiragana'
end
local actual_reading = args.k[i]
local okurigana = args.o[i]
local okurigana_text = okurigana and "(" .. okurigana .. ")" or ""
local actual_reading_text = actual_reading and " > " .. actual_reading .. okurigana_text or ""
local text = reading_kana .. okurigana_text .. actual_reading_text
readings_actual[i] = {(actual_reading or reading_kana) .. (okurigana or ''), reading_length}
table.insert(cell, '<span class="Jpan" lang="ja">' .. text .. '</span>')
if reading_length <= 1 then table.insert(cell, '<br/>') end
else
readings_actual[i] = {nil, 1}
end
-- display kanji grade, categorize
for j = kanji_pos, kanji_pos + reading_length - 1 do
local single_kanji = kanji[j]
local kanji_grade = m_ja.kanji_grade(single_kanji)
local ateji_text = is_ateji[j] and '<br/><small>([[Lampiran:Goosari bahasa Jepum#ateji|ateji]])</small>' or ''
if reading_kana then
-- subcategorize by reading if this is joyo kanji, not doing that for less common kanji, with exceptions
if (kanji_grade < 8 or (
'厭昌之芽昌浩智晃淳敦聡晃旭亮糊桂隘阿唖撫鼠阿耘迂寅已伊餡姦闊礙碍凱亥价謳嘔齧日臣桶抉兎鵜卯綾飴焙肋鮫頚糞軋烏痒捷辰叩橙揃嶋澤菱彦囃覗呑之乃鼠做寅樋堤槌机杖頼辿哉叢狢峯巳卍鱒仄他惚弘宏燕倦經痙圭禽僑鋸醵墟屹綺几翫癌劫膠昂鹸牽喧餐鑽瑣些渾梱坤國壕誦哨蒐杓爾梓荼楕躁綜楚闡閃撰專泄藉棲錘錐祷盪淘點顛填擲擢闖厨蛋潭腿冪碧劈焚祓弗憑誹砒婢挽拔撥剥胚播乃狼牢蓮礫醂龍榴蕾酉祐佑耶也蔓曼沫邁呆硼牡甫步矮狸苔'
):find(single_kanji)) and yomi_type_by_kanji[j] ~= 'irregular' and yomi_type_by_kanji[j] ~= 'jukujikun' and reading_length == 1 then
table.insert(categories, "Kata bahasa Jepun dieja dengan " .. single_kanji .. " dibaca sebagai " .. reading_kana)
else
table.insert(categories, "Kata bahasa Jepun dieja dengan " .. single_kanji)
end
else
if yomi_type_by_kanji[j] ~= 'irregular' and yomi_type_by_kanji[j] ~= 'jukujikun' then
require('Module:debug').track'ja-kanjitab/no reading'
end
table.insert(categories, "Kaya bahasa Jepun dieja dengan " .. single_kanji)
end
if reading_length <= 1 then
table.insert(cell, "<small>" .. kanji_grade_links[kanji_grade] .. "</small>" .. ateji_text)
else
table.insert(cells_below, "| <small>" .. kanji_grade_links[kanji_grade] .. "</small>" .. ateji_text)
end
end
table.insert(cells_above, table.concat(cell))
kanji_pos = kanji_pos + reading_length
end
table.insert(cells, '|- style="background: white;"')
if #cells_below > 0 then
table.insert(cells, table.concat(cells_above, '\n'))
table.insert(cells, '|- style="background: white;"')
table.insert(cells, table.concat(cells_below, '\n'))
else
for i, v in ipairs(cells_above) do
cells_above[i] = v:gsub('| rowspan="2" | ', '| ')
end
table.insert(cells, table.concat(cells_above, '\n'))
end
local yomi_info = {
["on"] = {
text = "on’yomi",
entry = "Lampiran:Glosari_bahasa_Jepun#on'yomi",
category = "Kata bahasa Jepun dibaca dengan on'yomi",
},
["kanon"] = {
text = "kan’on",
entry = "Lampiran:Glosari_bahasa_Jepun#kan'on",
category = "Kata bahasa Jepun dibaca dengan on'yomi",
},
["goon"] = {
text = "goon",
entry = "Lampiran:Glosari_bahasa_Jepun#goon",
category = "Kata bahasa Jepun dibaca dengan on'yomi",
},
["soon"] = {
text = "sōon",
entry = "Lampiran:Glosari_bahasa_Jepun#tōon",
category = "Kata bahasa Jepun dibaca dengan on'yomi",
},
["toon"] = {
text = "tōon",
entry = "Lampiran:Glosari_bahasa_Jepun#tōon",
category = "Kata bahasa Jepun dibaca dengan on'yomi",
},
["kun"] = {
text = "kun’yomi",
entry = "Lampiran:Glosari_bahasa_Jepun#kun'yomi",
category = "Kata bahasa Jepun dibaca dengan kun'yomi",
},
["nanori"] = {
text = "nanori",
entry = "Lampiran:Glosari_bahasa_Jepun#nanori",
category = "Kata bahasa Jepun dibaca dengan nanori",
},
["yutōyomi"] = {
text = "yutōyomi",
entry = "Lampiran:Glosari_bahasa_Jepun#yutōyomi",
category = "Kata bahasa Jepun dibaca dengan yutōyomi",
},
["jūbakoyomi"] = {
text = "jūbakoyomi",
entry = "lampiran:Glosari_bahasa_Jepun#jūbakoyomi",
category = "Kata bahasa Jepun dibaca dengan jūbakoyomi",
},
["jukujikun"] = {
text = "jukujikun",
entry = "lampiran:Glosari_bahasa_Jepun#jukujikun",
category = "Kata bahasa Jepun dibaca dengan jukujikun",
},
["irregular"] = {
text = "''irregular''",
category = "Japanese terms with irregular kanji readings",
},
["kanyoon"] = {
text = "kan’yōon",
entry = "Lampiran:Glosari_bahasa_Jepun#kan'yoon",
category = "Kata bahasa Jepun dibaca dengan kan'yōon",
},
}
local rendaku = args.r
if rendaku then
table.insert(categories, "Kata bahasa Jepun dengan rendaku")
end
if yomi then
table.insert(cells, "|-")
for _, i in ipairs(yomi) do
local yomi_info = yomi_info[i[1]] or { text = i[1] }
local text
if yomi_info.entry then
text = "[[" .. yomi_info.entry .. "|" .. yomi_info.text .. "]]"
else
text = yomi_info.text
end
table.insert(cells, '| colspan="' .. i[2] .. '" |' .. text)
end
local is_onyomi = { on = true, kanon = true, goon = true, soon = true, toon = true, kanyoon = true }
-- categories
local all_onyomi = true
for i = 1, #yomi do
if not is_onyomi[yomi[i][1]] then all_onyomi = false; break end
end
if all_onyomi then
table.insert(categories, yomi_info.on.category)
elseif yomi[1][1] == 'jūbakoyomi' or yomi[1][1] == 'yutōyomi' then
table.insert(categories, yomi_info[yomi[1][1]].category)
else
local all_yomi_of_same_type = true
for i = 2, #yomi do
if yomi[i][1] ~= yomi[1][1] then all_yomi_of_same_type = false; break end
end
if all_yomi_of_same_type then
table.insert(categories, yomi_info[yomi[1][1]].category)
elseif #yomi == 2 and yomi[1][2] == 1 and yomi[2][2] == 1 and mw.ustring.len(pagename) == 2 then
if is_onyomi[yomi[1][1]] and yomi[2][1] == 'kun' then
table.insert(categories, yomi_info["jūbakoyomi"].category)
elseif yomi[1][1] == 'kun' and is_onyomi[yomi[2][1]] then
table.insert(categories, yomi_info["yutōyomi"].category)
end
end
end
end
local kanji_table
if #kanji > 0 then
kanji_table = table_head
for _, v in ipairs(kanji) do
kanji_table = kanji_table .. '| style="padding: 0.5em;" | [[' .. v .. '#Bahasa_Jepun|' .. v .. ']]\n'
end
kanji_table = kanji_table .. table.concat(cells, '\n') .. '\n|}'
else
kanji_table = ''
end
local forms_table = ""
if args.alt == '' or args.alt == '-' then args.alt = nil end
if kyu[1] or args.alt then
local forms = {}
-- |kyu=
if kyu[1] == 'which 弁?' then
table.insert(forms, '<strong class="error" style="font-size:75%;">Sila tentukan kyujitai yang betul untuk 弁 dengan parameter "kyu".</strong>[[Kategori:Permohonan untuk pembersihan dalam masukan bahasa Jepun]]')
table.remove(kyu, 1)
end
for _, form in ipairs(kyu) do
local form_linkto, form_display = form:match'^(.+)|(.+)$'
if not form_linkto then form_linkto, form_display = form, form end
table.insert(forms, table.concat{
'<span class="Jpan" lang="ja" style="font-family:游ゴシック, HanaMinA, sans-serif; font-size:140%;">[[',
form_linkto,
form_linkto == pagename and '|' or '#Bahasa_Jepun|',
form_display,
']]</span> <small>',
ShowLabels({'kyūjitai'}, lang, nil, nil, nil, nil, true),
'</small>',
})
end
-- |alt=
if args.alt then
for form in mw.text.gsplit(args.alt, ',') do
local i_semicolon = string.find(form, ':')
if i_semicolon then
local altform = string.sub(form, 1, i_semicolon - 1)
local altlabels = mw.text.split(string.sub(form, i_semicolon + 1), ' ')
table.insert(forms, table.concat{
'<span class="Jpan" lang="ja" style="font-size:140%">[[',
altform,
'#Japanese|',
altform,
']]</span> <small>',
ShowLabels(altlabels, lang, nil, nil, nil, nil, true),
'</small>',
})
else
table.insert(forms, table.concat{
'<span class="Jpan" lang="ja" style="font-size:140%">[[',
form,
'#Japanese|',
form,
']]</span>'
})
end
end
end
forms_table = '\n' .. [[{| class="wikitable floatright"
! style="font-weight:normal" | Bentuk pilihan]] .. (#forms == 1 and "" or "") .. [[
|-
| style="text-align:center;font-size:108%" | ]] .. table.concat(forms, '<br>') .. '\n|}'
end
-- use user-provided sortkey if we got one, otherwise
-- use the sortkey we've already made by combining the
-- readings if provided, if we have neither then
-- default to empty string and don't sort
local sortkey
if args.sort then
sortkey = args.sort
else
sortkey = {non_kanji[1]}
local id = 1
for _, v in ipairs(readings_actual) do
id = id + v[2]
table.insert(sortkey, (v[1] or '') .. (non_kanji[id] or ''))
end
sortkey = table.concat(sortkey)
end
if sortkey == '' then
sortkey = nil
else
sortkey = m_ja.jsort(sortkey)
end
return kanji_table .. forms_table .. m_utilities.format_categories(categories, lang, sortkey)
end
return export
nydavmadxsabmycdisqxp8jt2rw6szf
Modul:Unicode data
828
10223
129928
125703
2022-08-22T11:32:43Z
Tofeiku
2269
kemas kini
Scribunto
text/plain
local export = {}
local udata = mw.loadData("Module:Unicode data/data")
local floor = math.floor
local function errorf(first_arg, ...)
if type(first_arg) == "number" then
return error(string.format(...), first_arg + 1)
else
return error(string.format(first_arg, ...), 2)
end
end
local function binary_range_search(codepoint, ranges)
local low, mid, high
low, high = 1, ranges.length or require "Module:table".length(ranges)
while low <= high do
mid = floor((low + high) / 2)
local range = ranges[mid]
if codepoint < range[1] then
high = mid - 1
elseif codepoint <= range[2] then
return range, mid
else
low = mid + 1
end
end
return nil, mid
end
export.binary_range_search = binary_range_search
local function linear_range_search(codepoint, ranges)
for i, range in ipairs(ranges) do
if codepoint < range[1] then
break
elseif codepoint <= range[2] then
return range
end
end
end
-- Load a module by indexing "loader" with the name of the module minus the
-- "Module:Unicode data/" part. For instance, loader.blocks returns
-- [[Module:Unicode data/blocks]]. If a module cannot be loaded, false will be
-- returned.
local loader = setmetatable({}, {
__index = function (self, key)
local success, data = pcall(mw.loadData, "Module:Unicode data/" .. key)
if not success then
data = false
end
self[key] = data
return data
end
})
-- For the algorithm used to generate Hangul Syllable names,
-- see "Hangul Syllable Name Generation" in section 3.12 of the
-- Unicode Specification:
-- https://www.unicode.org/versions/latest/ch03.pdf
-- For most of the name rules given here, see the subsection
-- "Unicode Name Property" in section 4.8 (Name) and the table 4-8
-- (Name Derivation Rule Prefix Strings):
-- https://www.unicode.org/versions/latest/ch04.pdf
local name_hooks = {
{ 0x00, 0x1F, "<control-%04X>" }, -- C0 control characters
{ 0x7F, 0x9F, "<control-%04X>" }, -- DEL and C1 control characters
{ 0x3400, 0x4DBF, "CJK UNIFIED IDEOGRAPH-%04X" }, -- CJK Ideograph Extension A
{ 0x4E00, 0x9FFF, "CJK UNIFIED IDEOGRAPH-%04X" }, -- CJK Ideograph
{ 0xAC00, 0xD7A3, function (codepoint) -- Hangul Syllables
local Hangul_data = loader.Hangul
local syllable_index = codepoint - 0xAC00
return ("HANGUL SYLLABLE %s%s%s"):format(
Hangul_data.leads[floor(syllable_index / Hangul_data.final_count)],
Hangul_data.vowels[floor((syllable_index % Hangul_data.final_count)
/ Hangul_data.trail_count)],
Hangul_data.trails[syllable_index % Hangul_data.trail_count]
)
end },
-- High Surrogates, High Private Use Surrogates, Low Surrogates
{ 0xD800, 0xDFFF, "<surrogate-%04X>" },
{ 0xE000, 0xF8FF, "<private-use-%04X>" }, -- Private Use
-- CJK Compatibility Ideographs
{ 0xF900, 0xFA6D, "CJK COMPATIBILITY IDEOGRAPH-%04X" },
{ 0xFA70, 0xFAD9, "CJK COMPATIBILITY IDEOGRAPH-%04X" },
{ 0x17000, 0x187F7, "TANGUT IDEOGRAPH-%04X" }, -- Tangut
{ 0x18800, 0x18AFF, function (codepoint)
return ("TANGUT COMPONENT-%03d"):format(codepoint - 0x187FF)
end },
{ 0x18D00, 0x18D08, "TANGUT IDEOGRAPH-%04X" }, -- Tangut
{ 0x18B00, 0x18CD5, "KHITAN SMALL SCRIPT CHARACTER-%04X" },
{ 0x1B170, 0x1B2FB, "NUSHU CHARACTER-%04X" }, -- Nushu
{ 0x20000, 0x2A6DF, "CJK UNIFIED IDEOGRAPH-%04X" }, -- CJK Ideograph Extension B
{ 0x2A700, 0x2B738, "CJK UNIFIED IDEOGRAPH-%04X" }, -- CJK Ideograph Extension C
{ 0x2A740, 0x2B81D, "CJK UNIFIED IDEOGRAPH-%04X" }, -- CJK Ideograph Extension D
{ 0x2B820, 0x2CEA1, "CJK UNIFIED IDEOGRAPH-%04X" }, -- CJK Ideograph Extension E
{ 0x2CEB0, 0x2EBE0, "CJK UNIFIED IDEOGRAPH-%04X" }, -- CJK Ideograph Extension F
-- CJK Compatibility Ideographs Supplement (Supplementary Ideographic Plane)
{ 0x2F800, 0x2FA1D, "CJK COMPATIBILITY IDEOGRAPH-%04X" },
{ 0x30000, 0x3134A, "CJK UNIFIED IDEOGRAPH-%04X" }, -- CJK Ideograph Extension G
{ 0xE0100, 0xE01EF, function (codepoint) -- Variation Selectors Supplement
return ("VARIATION SELECTOR-%d"):format(codepoint - 0xE0100 + 17)
end},
{ 0xF0000, 0xFFFFD, "<private-use-%04X>" }, -- Plane 15 Private Use
{ 0x100000, 0x10FFFD, "<private-use-%04X>" } -- Plane 16 Private Use
}
name_hooks.length = #name_hooks
local name_range_cache
local function generate_name(data, codepoint)
if type(data) == "string" then
return data:format(codepoint)
else
return data(codepoint)
end
end
--[[
-- Checks that the code point is a number and in range.
-- Does not check whether code point is an integer.
-- Not used
local function check_codepoint(funcName, argIdx, val)
require 'libraryUtil'.checkType(funcName, argIdx, val, 'number')
if codepoint < 0 or 0x10FFFF < codepoint then
errorf("Codepoint %04X out of range", codepoint)
end
end
--]]
-- https://www.unicode.org/versions/latest/ch04.pdf, section 4.8
function export.lookup_name(codepoint)
-- U+FDD0-U+FDEF and all code points ending in FFFE or FFFF are Unassigned
-- (Cn) and specifically noncharacters:
-- https://www.unicode.org/faq/private_use.html#nonchar4
if 0xFDD0 <= codepoint and (codepoint <= 0xFDEF
or floor(codepoint % 0x10000) >= 0xFFFE) then
return ("<noncharacter-%04X>"):format(codepoint)
end
if name_range_cache -- Check if previously used "name hook" applies to this code point.
and codepoint >= name_range_cache[1]
and codepoint <= name_range_cache[2] then
return generate_name(name_range_cache[3], codepoint)
end
local range = binary_range_search(codepoint, name_hooks)
if range then
name_range_cache = range
return generate_name(range[3], codepoint)
end
local data = loader[('names/%03X'):format(codepoint / 0x1000)]
if data and data[codepoint] then
return data[codepoint]
-- Unassigned (Cn) consists of noncharacters and reserved characters.
-- The character has been established not to be a noncharacter,
-- and if it were assigned, its name would already been retrieved,
-- so it must be reserved.
else
return ("<reserved-%04X>"):format(codepoint)
end
end
function export.lookup_image(codepoint)
local data = loader[('images/%03X'):format(codepoint / 0x1000)]
if data then
return data[codepoint]
end
end
-- Load [[Module:Unicode data/blocks]] if needed and assign it to this variable.
local blocks
local function block_iter(blocks, i)
i = i + 1
local data = blocks[i]
if data then
-- Unpack doesn't work on tables loaded with mw.loadData.
return i, data[3], data[1], data[2]
end
end
-- An ipairs-type iterator generator for the list of blocks.
function export.enum_blocks()
local blocks = loader.blocks
return block_iter, blocks, 0
end
function export.get_block_range(name)
local range
for i, block in ipairs(loader.blocks) do
if block[3] == name then
range = block
end
end
if range then
return range[1], range[2]
end
end
function export.lookup_plane(codepoint)
local i = floor(codepoint / 0x10000)
return udata.planes[i] or ("Plane %u"):format(i)
end
function export.lookup_block(codepoint)
local blocks = loader.blocks
local range = binary_range_search(codepoint, blocks)
if range then
return range[3]
else
return "No Block"
end
end
function export.get_block_info(name)
for i, block in ipairs(loader.blocks) do
if block[3] == name then
return block
end
end
end
function export.is_valid_pagename(pagename)
local has_nonws = false
for cp in mw.ustring.gcodepoint(pagename) do
if (cp == 0x0023) -- #
or (cp == 0x005B) -- [
or (cp == 0x005D) -- ]
or (cp == 0x007B) -- {
or (cp == 0x007C) -- |
or (cp == 0x007D) -- }
or (cp == 0x180E) -- MONGOLIAN VOWEL SEPARATOR
or ((cp >= 0x2000) and (cp <= 0x200A)) -- spaces in General Punctuation block
or (cp == 0xFFFD) -- REPLACEMENT CHARACTER
then
return false
end
local printable, result = export.is_printable(cp)
if not printable then
return false
end
if result ~= "space-separator" then
has_nonws = true
end
end
return has_nonws
end
local function manual_unpack(what, from)
if what[from + 1] == nil then
return what[from]
end
local result = {}
from = from or 1
for i, item in ipairs(what) do
if i >= from then
table.insert(result, item)
end
end
return unpack(result)
end
local function compare_ranges(range1, range2)
return range1[1] < range2[1]
end
-- Creates a function to look up data in a module that contains "singles" (a
-- code point-to-data map) and "ranges" (an array containing arrays that contain
-- the low and high code points of a range and the data associated with that
-- range).
-- "loader" loads and returns the "singles" and "ranges" tables.
-- "match_func" is passed the code point and either the data or the "dots", and
-- generates the final result of the function.
-- The varargs ("dots") describes the default data to be returned if there wasn't
-- a match.
-- In case the function is used more than once, "cache" saves ranges that have
-- already been found to match, or a range whose data is the default if there
-- was no match.
local function memo_lookup(data_module_subpage, match_func, ...)
local dots = { ... }
local cache = {}
local singles, ranges
return function (codepoint)
if not singles then
local data_module = loader[data_module_subpage]
singles, ranges = data_module.singles, data_module.ranges
end
if singles[codepoint] then
return match_func(codepoint, singles[codepoint])
end
local range = binary_range_search(codepoint, cache)
if range then
return match_func(codepoint, manual_unpack(range, 3))
end
local range, index = binary_range_search(codepoint, ranges)
if range then
table.insert(cache, range)
table.sort(cache, compare_ranges)
return match_func(codepoint, manual_unpack(range, 3))
end
if ranges[index] then
local dots_range
if codepoint > ranges[index][2] then
dots_range = {
ranges[index][2] + 1,
ranges[index + 1] and ranges[index + 1][1] - 1 or 0x10FFFF,
unpack(dots)
}
else -- codepoint < range[index][1]
dots_range = {
ranges[index - 1] and ranges[index - 1][2] + 1 or 0,
ranges[index][1] - 1,
unpack(dots)
}
end
table.sort(cache, compare_ranges)
end
return match_func(codepoint, unpack(dots))
end
end
-- Get a code point's combining class value in [[Module:Unicode data/combining]],
-- and return whether this value is not zero. Zero is assigned as the default
-- if the combining class value is not found in this data module.
-- That is, return true if character is combining, or false if it is not.
-- See https://www.unicode.org/reports/tr44/#Canonical_Combining_Class_Values for
-- more information.
export.is_combining = memo_lookup(
"combining",
function (codepoint, combining_class)
return combining_class and combining_class ~= 0 or false
end,
0)
function export.add_dotted_circle(str)
return (mw.ustring.gsub(str, ".",
function(char)
if export.is_combining(mw.ustring.codepoint(char)) then
return '◌' .. char
end
end))
end
local lookup_control = memo_lookup(
"control",
function (codepoint, ccc)
return ccc or "assigned"
end,
"assigned")
export.lookup_control = lookup_control
function export.is_assigned(codepoint)
return lookup_control(codepoint) ~= "unassigned"
end
function export.is_printable(codepoint)
local result = lookup_control(codepoint)
return (result == "assigned") or (result == "space-separator"), result
end
function export.is_whitespace(codepoint)
local result = lookup_control(codepoint)
return (result == "space-separator"), result
end
export.lookup_category = memo_lookup(
"category",
function (codepoint, category)
return category
end,
"Cn")
export.lookup_script = memo_lookup(
"scripts",
function (codepoint, script)
return script
end,
"Zzzz")
function export.get_entry_title(codepoint)
if udata.unsupported_title[codepoint] then
return udata.unsupported_title[codepoint]
end
if lookup_control(codepoint) ~= "assigned" then
return nil
end
return mw.ustring.char(codepoint)
end
return export
pbjfeix2aimrv3n05spygs23lrsm7ma
129929
129928
2022-08-22T11:34:41Z
Tofeiku
2269
terjemah
Scribunto
text/plain
local export = {}
local udata = mw.loadData("Module:Unicode data/data")
local floor = math.floor
local function errorf(first_arg, ...)
if type(first_arg) == "number" then
return error(string.format(...), first_arg + 1)
else
return error(string.format(first_arg, ...), 2)
end
end
local function binary_range_search(codepoint, ranges)
local low, mid, high
low, high = 1, ranges.length or require "Module:table".length(ranges)
while low <= high do
mid = floor((low + high) / 2)
local range = ranges[mid]
if codepoint < range[1] then
high = mid - 1
elseif codepoint <= range[2] then
return range, mid
else
low = mid + 1
end
end
return nil, mid
end
export.binary_range_search = binary_range_search
local function linear_range_search(codepoint, ranges)
for i, range in ipairs(ranges) do
if codepoint < range[1] then
break
elseif codepoint <= range[2] then
return range
end
end
end
-- Load a module by indexing "loader" with the name of the module minus the
-- "Module:Unicode data/" part. For instance, loader.blocks returns
-- [[Module:Unicode data/blocks]]. If a module cannot be loaded, false will be
-- returned.
local loader = setmetatable({}, {
__index = function (self, key)
local success, data = pcall(mw.loadData, "Module:Unicode data/" .. key)
if not success then
data = false
end
self[key] = data
return data
end
})
-- For the algorithm used to generate Hangul Syllable names,
-- see "Hangul Syllable Name Generation" in section 3.12 of the
-- Unicode Specification:
-- https://www.unicode.org/versions/latest/ch03.pdf
-- For most of the name rules given here, see the subsection
-- "Unicode Name Property" in section 4.8 (Name) and the table 4-8
-- (Name Derivation Rule Prefix Strings):
-- https://www.unicode.org/versions/latest/ch04.pdf
local name_hooks = {
{ 0x00, 0x1F, "<control-%04X>" }, -- C0 control characters
{ 0x7F, 0x9F, "<control-%04X>" }, -- DEL and C1 control characters
{ 0x3400, 0x4DBF, "CJK UNIFIED IDEOGRAPH-%04X" }, -- CJK Ideograph Extension A
{ 0x4E00, 0x9FFF, "CJK UNIFIED IDEOGRAPH-%04X" }, -- CJK Ideograph
{ 0xAC00, 0xD7A3, function (codepoint) -- Hangul Syllables
local Hangul_data = loader.Hangul
local syllable_index = codepoint - 0xAC00
return ("SUKU KATA HANGUL %s%s%s"):format(
Hangul_data.leads[floor(syllable_index / Hangul_data.final_count)],
Hangul_data.vowels[floor((syllable_index % Hangul_data.final_count)
/ Hangul_data.trail_count)],
Hangul_data.trails[syllable_index % Hangul_data.trail_count]
)
end },
-- High Surrogates, High Private Use Surrogates, Low Surrogates
{ 0xD800, 0xDFFF, "<surrogate-%04X>" },
{ 0xE000, 0xF8FF, "<private-use-%04X>" }, -- Private Use
-- CJK Compatibility Ideographs
{ 0xF900, 0xFA6D, "CJK COMPATIBILITY IDEOGRAPH-%04X" },
{ 0xFA70, 0xFAD9, "CJK COMPATIBILITY IDEOGRAPH-%04X" },
{ 0x17000, 0x187F7, "TANGUT IDEOGRAPH-%04X" }, -- Tangut
{ 0x18800, 0x18AFF, function (codepoint)
return ("TANGUT COMPONENT-%03d"):format(codepoint - 0x187FF)
end },
{ 0x18D00, 0x18D08, "TANGUT IDEOGRAPH-%04X" }, -- Tangut
{ 0x18B00, 0x18CD5, "KHITAN SMALL SCRIPT CHARACTER-%04X" },
{ 0x1B170, 0x1B2FB, "NUSHU CHARACTER-%04X" }, -- Nushu
{ 0x20000, 0x2A6DF, "CJK UNIFIED IDEOGRAPH-%04X" }, -- CJK Ideograph Extension B
{ 0x2A700, 0x2B738, "CJK UNIFIED IDEOGRAPH-%04X" }, -- CJK Ideograph Extension C
{ 0x2A740, 0x2B81D, "CJK UNIFIED IDEOGRAPH-%04X" }, -- CJK Ideograph Extension D
{ 0x2B820, 0x2CEA1, "CJK UNIFIED IDEOGRAPH-%04X" }, -- CJK Ideograph Extension E
{ 0x2CEB0, 0x2EBE0, "CJK UNIFIED IDEOGRAPH-%04X" }, -- CJK Ideograph Extension F
-- CJK Compatibility Ideographs Supplement (Supplementary Ideographic Plane)
{ 0x2F800, 0x2FA1D, "CJK COMPATIBILITY IDEOGRAPH-%04X" },
{ 0x30000, 0x3134A, "CJK UNIFIED IDEOGRAPH-%04X" }, -- CJK Ideograph Extension G
{ 0xE0100, 0xE01EF, function (codepoint) -- Variation Selectors Supplement
return ("VARIATION SELECTOR-%d"):format(codepoint - 0xE0100 + 17)
end},
{ 0xF0000, 0xFFFFD, "<private-use-%04X>" }, -- Plane 15 Private Use
{ 0x100000, 0x10FFFD, "<private-use-%04X>" } -- Plane 16 Private Use
}
name_hooks.length = #name_hooks
local name_range_cache
local function generate_name(data, codepoint)
if type(data) == "string" then
return data:format(codepoint)
else
return data(codepoint)
end
end
--[[
-- Checks that the code point is a number and in range.
-- Does not check whether code point is an integer.
-- Not used
local function check_codepoint(funcName, argIdx, val)
require 'libraryUtil'.checkType(funcName, argIdx, val, 'number')
if codepoint < 0 or 0x10FFFF < codepoint then
errorf("Codepoint %04X out of range", codepoint)
end
end
--]]
-- https://www.unicode.org/versions/latest/ch04.pdf, section 4.8
function export.lookup_name(codepoint)
-- U+FDD0-U+FDEF and all code points ending in FFFE or FFFF are Unassigned
-- (Cn) and specifically noncharacters:
-- https://www.unicode.org/faq/private_use.html#nonchar4
if 0xFDD0 <= codepoint and (codepoint <= 0xFDEF
or floor(codepoint % 0x10000) >= 0xFFFE) then
return ("<noncharacter-%04X>"):format(codepoint)
end
if name_range_cache -- Check if previously used "name hook" applies to this code point.
and codepoint >= name_range_cache[1]
and codepoint <= name_range_cache[2] then
return generate_name(name_range_cache[3], codepoint)
end
local range = binary_range_search(codepoint, name_hooks)
if range then
name_range_cache = range
return generate_name(range[3], codepoint)
end
local data = loader[('names/%03X'):format(codepoint / 0x1000)]
if data and data[codepoint] then
return data[codepoint]
-- Unassigned (Cn) consists of noncharacters and reserved characters.
-- The character has been established not to be a noncharacter,
-- and if it were assigned, its name would already been retrieved,
-- so it must be reserved.
else
return ("<reserved-%04X>"):format(codepoint)
end
end
function export.lookup_image(codepoint)
local data = loader[('images/%03X'):format(codepoint / 0x1000)]
if data then
return data[codepoint]
end
end
-- Load [[Module:Unicode data/blocks]] if needed and assign it to this variable.
local blocks
local function block_iter(blocks, i)
i = i + 1
local data = blocks[i]
if data then
-- Unpack doesn't work on tables loaded with mw.loadData.
return i, data[3], data[1], data[2]
end
end
-- An ipairs-type iterator generator for the list of blocks.
function export.enum_blocks()
local blocks = loader.blocks
return block_iter, blocks, 0
end
function export.get_block_range(name)
local range
for i, block in ipairs(loader.blocks) do
if block[3] == name then
range = block
end
end
if range then
return range[1], range[2]
end
end
function export.lookup_plane(codepoint)
local i = floor(codepoint / 0x10000)
return udata.planes[i] or ("Plane %u"):format(i)
end
function export.lookup_block(codepoint)
local blocks = loader.blocks
local range = binary_range_search(codepoint, blocks)
if range then
return range[3]
else
return "No Block"
end
end
function export.get_block_info(name)
for i, block in ipairs(loader.blocks) do
if block[3] == name then
return block
end
end
end
function export.is_valid_pagename(pagename)
local has_nonws = false
for cp in mw.ustring.gcodepoint(pagename) do
if (cp == 0x0023) -- #
or (cp == 0x005B) -- [
or (cp == 0x005D) -- ]
or (cp == 0x007B) -- {
or (cp == 0x007C) -- |
or (cp == 0x007D) -- }
or (cp == 0x180E) -- MONGOLIAN VOWEL SEPARATOR
or ((cp >= 0x2000) and (cp <= 0x200A)) -- spaces in General Punctuation block
or (cp == 0xFFFD) -- REPLACEMENT CHARACTER
then
return false
end
local printable, result = export.is_printable(cp)
if not printable then
return false
end
if result ~= "space-separator" then
has_nonws = true
end
end
return has_nonws
end
local function manual_unpack(what, from)
if what[from + 1] == nil then
return what[from]
end
local result = {}
from = from or 1
for i, item in ipairs(what) do
if i >= from then
table.insert(result, item)
end
end
return unpack(result)
end
local function compare_ranges(range1, range2)
return range1[1] < range2[1]
end
-- Creates a function to look up data in a module that contains "singles" (a
-- code point-to-data map) and "ranges" (an array containing arrays that contain
-- the low and high code points of a range and the data associated with that
-- range).
-- "loader" loads and returns the "singles" and "ranges" tables.
-- "match_func" is passed the code point and either the data or the "dots", and
-- generates the final result of the function.
-- The varargs ("dots") describes the default data to be returned if there wasn't
-- a match.
-- In case the function is used more than once, "cache" saves ranges that have
-- already been found to match, or a range whose data is the default if there
-- was no match.
local function memo_lookup(data_module_subpage, match_func, ...)
local dots = { ... }
local cache = {}
local singles, ranges
return function (codepoint)
if not singles then
local data_module = loader[data_module_subpage]
singles, ranges = data_module.singles, data_module.ranges
end
if singles[codepoint] then
return match_func(codepoint, singles[codepoint])
end
local range = binary_range_search(codepoint, cache)
if range then
return match_func(codepoint, manual_unpack(range, 3))
end
local range, index = binary_range_search(codepoint, ranges)
if range then
table.insert(cache, range)
table.sort(cache, compare_ranges)
return match_func(codepoint, manual_unpack(range, 3))
end
if ranges[index] then
local dots_range
if codepoint > ranges[index][2] then
dots_range = {
ranges[index][2] + 1,
ranges[index + 1] and ranges[index + 1][1] - 1 or 0x10FFFF,
unpack(dots)
}
else -- codepoint < range[index][1]
dots_range = {
ranges[index - 1] and ranges[index - 1][2] + 1 or 0,
ranges[index][1] - 1,
unpack(dots)
}
end
table.sort(cache, compare_ranges)
end
return match_func(codepoint, unpack(dots))
end
end
-- Get a code point's combining class value in [[Module:Unicode data/combining]],
-- and return whether this value is not zero. Zero is assigned as the default
-- if the combining class value is not found in this data module.
-- That is, return true if character is combining, or false if it is not.
-- See https://www.unicode.org/reports/tr44/#Canonical_Combining_Class_Values for
-- more information.
export.is_combining = memo_lookup(
"combining",
function (codepoint, combining_class)
return combining_class and combining_class ~= 0 or false
end,
0)
function export.add_dotted_circle(str)
return (mw.ustring.gsub(str, ".",
function(char)
if export.is_combining(mw.ustring.codepoint(char)) then
return '◌' .. char
end
end))
end
local lookup_control = memo_lookup(
"control",
function (codepoint, ccc)
return ccc or "assigned"
end,
"assigned")
export.lookup_control = lookup_control
function export.is_assigned(codepoint)
return lookup_control(codepoint) ~= "unassigned"
end
function export.is_printable(codepoint)
local result = lookup_control(codepoint)
return (result == "assigned") or (result == "space-separator"), result
end
function export.is_whitespace(codepoint)
local result = lookup_control(codepoint)
return (result == "space-separator"), result
end
export.lookup_category = memo_lookup(
"category",
function (codepoint, category)
return category
end,
"Cn")
export.lookup_script = memo_lookup(
"scripts",
function (codepoint, script)
return script
end,
"Zzzz")
function export.get_entry_title(codepoint)
if udata.unsupported_title[codepoint] then
return udata.unsupported_title[codepoint]
end
if lookup_control(codepoint) ~= "assigned" then
return nil
end
return mw.ustring.char(codepoint)
end
return export
4jibdoipmcpltzr6ft7kgept342a4lz
Templat:dipinjam
10
10937
129807
110893
2022-08-21T14:09:41Z
Tofeiku
2269
kemas kini
wikitext
text/x-wiki
{{#invoke:etymology/templates/borrowed|borrowed}}<noinclude>{{pendokumenan}}</noinclude>
k9c84e7v5ne5ym7fyo4vevrs67x4jik
Modul:etymology
828
11468
129814
111765
2022-08-21T14:42:10Z
Tofeiku
2269
kemas kini
Scribunto
text/plain
local export = {}
-- For testing
local force_cat = false
--[[ If language is an etymology language, iterates through parent languages
until it finds a non-etymology language. ]]
--FIXME: Callers of this should use [[Module:languages]] directly.
function export.getNonEtymological(lang)
if lang:getType() == "etymology language" then
return require("Module:languages").getNonEtymological(lang)
end
return lang
end
local function term_error(terminfo)
if terminfo.lang:getType() == "family" then
if terminfo.term and terminfo.term ~= "-" then
require("Module:debug/track")("etymology/family/has-term")
end
terminfo.term = "-"
end
return terminfo
end
local function create_link(terminfo, template_name)
local link = ""
if terminfo.term == "-" then
--[=[
[[Special:WhatLinksHere/Template:tracking/cognate/no-term]]
[[Special:WhatLinksHere/Template:tracking/derived/no-term]]
[[Special:WhatLinksHere/Template:tracking/borrowed/no-term]]
[[Special:WhatLinksHere/Template:tracking/calque/no-term]]
]=]
require("Module:debug/track")(template_name .. "/no-term")
else
-- mw.log(terminfo.term)
link = " " .. require("Module:links").full_link(terminfo, "kata", true)
end
return link
end
function export.process_and_create_link(terminfo, template_name)
terminfo.lang = export.getNonEtymological(terminfo.lang)
terminfo = term_error(terminfo)
return create_link(terminfo, template_name or "derived")
end
function export.get_display_and_cat_name(source, raw)
local display, cat_name
if source:getCode() == "und" then
display = "tidak ditentukan"
cat_name = "bahasa lain"
elseif source:getCode() == "mul" then
display = "[[w:Rentas bahasa|rentas bahasa]]"
cat_name = "Rentas bahasa"
elseif source:getCode() == "mul-tax" then
display = "[[w:nama taksonomi|nama taksonomi]]"
cat_name = "nama taksonomi"
else
display = raw and source:getCanonicalName() or source:makeWikipediaLink()
cat_name = source:getDisplayForm()
end
return display, cat_name
end
function export.insert_source_cat_get_display(categories, lang, source, raw, nocat)
local display, cat_name = export.get_display_and_cat_name(source, raw)
if lang and not nocat then
-- Add the category, but only if there is a current language
if not categories then
categories = {}
end
if lang:getCode() == source:getCode() then
table.insert(categories, "Kata bahasa " .. lang:getCanonicalName() .. " dipinjam dua kali")
else
table.insert(categories, "Kata bahasa " .. lang:getCanonicalName() .. " diterbitkan daripada bahasa " .. cat_name)
end
end
return display, categories
end
-- FIXME: rename to format_source()
function export.format_etyl(lang, source, sort_key, categories, nocat)
-- [[Special:WhatLinksHere/Template:tracking/etymology/sortkey]]
if sort_key then
require("Module:debug/track")("etymology/sortkey")
end
local display
display, categories = export.insert_source_cat_get_display(categories, lang, source, false, nocat)
if lang and not nocat then
-- Format categories, but only if there is a current language; {{cog}} currently gets no categories
categories = require("Module:utilities").format_categories(categories, lang, sort_key, nil, force_cat)
else
categories = ""
end
return "<span class=\"etyl\">" .. display .. categories .. "</span>"
end
-- Internal implementation of {{cognate|...}} template
function export.format_cognate(terminfo, sort_key)
return export.format_derived(nil, terminfo, sort_key, nil, "cognate")
end
-- Internal implementation of {{derived|...}} template
function export.format_derived(lang, terminfo, sort_key, nocat, template_name)
local source = terminfo.lang
return export.format_etyl(lang, source, sort_key, nil, nocat) .. export.process_and_create_link(terminfo, template_name)
end
-- Return true if `lang` has `otherlang` (which may be an etymology-only language) as an ancestor. This includes
-- cases such as Italian -> Old Italian, which is an etymology-only language whose "parent" is Italian but which is
-- marked as "ancestral to parent". `non_etym_otherlang` is the non-etymology-language equivalent of `otherlang`.
-- If `otherlang` is not an etymology-only language, the two will be the same.
local function has_ancestor(lang, otherlang, non_etym_otherlang)
-- First check if `lang` has (the non-etymology-language parent of) `otherlang` as its ancestor. If `lang` is e.g.
-- Italian and `otherlang` is Latin, this will be caught here. If `lang` is Italian and `otherlang` is Vulgar Latin
-- (an etymology-only language whose parent is Latin), this will also be caught here, as we use the
-- non-etymology-language parent, in this case Latin, when checking the ancestor hierarchy.
if lang:hasAncestor(non_etym_otherlang) then
return true
end
-- Second check for the Italian -> Old Italian case. This happens when (a) `otherlang` is etymology-only,
-- (b) `otherlang` is marked as "ancestral to parent", (c) `otherlang`'s parent is the same as `lang`. This is not
-- caught above because Italian is not ancestral to Italian.
if otherlang:getType() == "etymology language" and otherlang:isAncestralToParent() then
local otherlang_parent = export.getNonEtymological(otherlang)
if otherlang_parent and otherlang_parent:getCode() == lang:getCode() then
return true
end
end
return false
end
-- Check that `lang` has `otherlang` (which may be an etymology-only language) as an ancestor. Throw an error if not.
local function check_ancestor(lang, otherlang, non_etym_otherlang)
if not has_ancestor(lang, otherlang, non_etym_otherlang) and mw.title.getCurrentTitle().nsText ~= "Template" then
-- Generate the non-ancestor error message.
local function showLanguage(lang)
local retval = ("%s (%s)"):format(lang:makeCategoryLink(), lang:getCode())
if lang:getType() == "etymology language" then
retval = retval .. (" (an etymology-only language whose regular parent is %s)"):format(
showLanguage(export.getNonEtymological(lang)))
end
return retval
end
local postscript
local ancestors = lang:getAncestors()
local moduleLink = "[[Module:"
.. require("Module:languages").getDataModuleName(lang:getCode())
.. "]]"
if not ancestors[1] then
postscript = showLanguage(lang) .. " has no ancestors."
else
local ancestorList = table.concat(
require("Module:fun").map(
showLanguage,
ancestors),
" and ")
postscript = ("The ancestor%s of %s %s %s."):format(
ancestors[2] and "s" or "", lang:getCanonicalName(),
ancestors[2] and "are" or "is", ancestorList)
end
error(("%s is not set as an ancestor of %s in %s. %s")
:format(showLanguage(otherlang), showLanguage(lang), moduleLink, postscript))
end
end
-- Internal implementation of {{inherited|...}} template
function export.format_inherited(lang, terminfo, sort_key, nocat)
local source = terminfo.lang
local categories = {}
if not nocat then
table.insert(categories, lang:getCanonicalName() .. " terms inherited from " .. source:getCanonicalName())
end
local link = export.process_and_create_link(terminfo, "inherited")
check_ancestor(lang, source, terminfo.lang)
return export.format_etyl(lang, source, sort_key, categories, nocat) .. link
end
function export.insert_borrowed_cat(categories, lang, source)
local category
if lang:getCode() == source:getCode() then
category = " kata pinjaman dua kali"
else
category = " dipinjam daripada bahasa " .. source:getDisplayForm()
end
table.insert(categories, "Kata bahasa " .. lang:getCanonicalName() .. category)
end
-- Internal implementation of {{borrowed|...}} template.
function export.format_borrowed(lang, terminfo, sort_key, nocat)
local source = terminfo.lang
local categories = {}
if not nocat then
export.insert_borrowed_cat(categories, lang, source)
end
return export.format_etyl(lang, source, sort_key, categories, nocat) ..
export.process_and_create_link(terminfo, "borrowed")
end
return export
ng3x164sdunysf39elo7b282w35s5d5
Modul:category tree
828
11506
129815
124987
2022-08-21T14:50:55Z
Tofeiku
2269
kemas kini
Scribunto
text/plain
local export = {}
local m_utilities = require("Module:utilities")
local inFundamental = mw.loadData("Module:category tree/data")
local show_error, check_name, link_box, show_catfix, show_categories, show_intro, show_editlink, show_pagelist,
show_display, show_breadcrumbs, show_description, show_appendix, show_children, show_TOC
-- The main entry point.
-- This is the only function that can be invoked from a template.
function export.show(frame)
local template = frame.args["template"]
if not template or template == "" then
error("The \"template\" parameter was not specified.")
end
if mw.title.getCurrentTitle().nsText == "Template" then
local text = {}
table.insert(text, "This template should be used on pages in the Category: namespace, ")
table.insert(text, "and automatically generates descriptions and categorization for categories of a recognized type (see below).")
table.insert(text, " It is implemented by [[Module:category tree]] and its submodule [[Module:category tree/")
table.insert(text, template .. "]].")
if frame.args["useautocat"] then
table.insert(text, " It is preferable not to invoke this template directly, but to simply use ")
table.insert(text, require("Module:template link").format_link({"auto cat"}))
table.insert(text, " (with no parameters), which will automatically invoke this template on appropriately-named category pages.")
end
return table.concat(text)
elseif mw.title.getCurrentTitle().nsText ~= "Kategori" then
error("Template/Modul ini hanya boleh digunakan di laman dalam ruang nama Kategori:.")
end
local submodule = require("Module:category tree/" .. template)
-- Get all the parameters and the label data
local current
if submodule.new_main then
current = submodule.new_main(frame)
else
local info = {}
for key, val in pairs(frame.args) do
if val ~= "" and key ~= "useautocat" then
info[key] = val
end
end
info.template = nil
current = submodule.new(info, true)
end
local functions = {
"getBreadcrumbName",
"getDataModule",
"canBeEmpty",
"getDescription",
"getParents",
"getChildren",
"getUmbrella",
"getAppendix",
"getTOCTemplateName",
}
if current then
for i, functionName in pairs(functions) do
if type(current[functionName]) ~= "function" then
require("Module:debug").track{ "category tree/missing function", "category tree/missing function/" .. functionName }
end
end
end
local boxes = {}
local display = {}
local categories = {}
if template == "topic cat" then
table.insert(categories, "[[Category:topic cat]]")
end
-- Check if the category is empty
local isEmpty = mw.site.stats.pagesInCategory(mw.title.getCurrentTitle().text, "all") == 0
-- Are the parameters valid?
if not current then
table.insert(categories, "[[Category:Categories with invalid label]]")
table.insert(categories, isEmpty and "[[Category:Empty categories]]" or nil)
table.insert(display, show_error(
"The label given to the " ..
require("Module:template link").format_link{template} ..
" template is not valid. You may have mistyped it, or it simply has not been created yet. " ..
"To add a new label, please consult the documentation of the template."))
-- Exit here, as all code beyond here relies on current not being nil
return table.concat(categories, "") .. table.concat(display, "\n\n")
end
-- Does the category have the correct name?
if mw.title.getCurrentTitle().text ~= current:getCategoryName() then
table.insert(categories, "[[Category:Categories with incorrect name]]")
table.insert(display, show_error(
"Based on the parameters given to the " ..
require("Module:template link").format_link{template} ..
" template, this category should be called '''[[:Category:" .. current:getCategoryName() .. "]]'''."))
end
-- Add cleanup category for empty categories
local canBeEmpty = current:canBeEmpty()
if isEmpty and not canBeEmpty then
table.insert(categories, "[[Category:Empty categories]]")
end
if current:isHidden() then
table.insert(categories, "__HIDDENCAT__")
end
if canBeEmpty then
table.insert(categories, " __EXPECTUNUSEDCATEGORY__")
end
table.insert(boxes, show_intro(current))
table.insert(boxes, show_editlink(current))
table.insert(boxes, show_related_changes())
table.insert(boxes, show_pagelist(current))
-- Generate the displayed information
table.insert(display, show_display(current))
table.insert(display, show_breadcrumbs(current))
table.insert(display, show_description(current))
table.insert(display, show_appendix(current))
table.insert(display, show_children(current))
table.insert(display, show_TOC(current))
table.insert(display, show_catfix(current))
show_categories(current, categories)
return table.concat(boxes, "\n") .. "\n" .. table.concat(display, "\n\n") .. table.concat(categories, "")
end
function show_error(text)
return mw.getCurrentFrame():expandTemplate{title = "maintenance box", args = {
"red",
image = "[[File:Ambox warning pn.svg|50px]]",
title = "The automatically-generated contents of this category has errors.",
text = text,
}}
end
-- Check the name of the current page, and return an error if it's not right.
function check_name(current, template, info)
local errortext = nil
local category = nil
if not current then
errortext =
"The label \"" .. (info.label or "") .. "\" given to the " ..
require("Module:template link").format_link{template} .. " template is not valid. " ..
"You may have mistyped it, or it simply has not been created yet. To add a new label, please consult the documentation of the template."
category = "[[Category:Categories with invalid label]]"
else
end
if errortext then
return (category or "") .. show_error(errortext)
else
return nil
end
end
local function get_catfix_info(current)
local lang, sc
if current.getCatfixInfo then
lang, sc = current:getCatfixInfo()
elseif not (current._info and current._info.no_catfix) then
-- FIXME: This is hacky and should be removed.
lang = current._lang
sc = current._info and current._info.sc and require("Module:scripts").getByCode(current._info.sc) or nil
end
return lang, sc
end
-- Show the "catfix" that adds language attributes and script classes to the page.
function show_catfix(current)
local lang, sc = get_catfix_info(current)
if lang then
return m_utilities.catfix(lang, sc)
else
return nil
end
end
-- Show the parent categories that the current category should be placed in.
function show_categories(current, categories)
local parents = current:getParents()
if not parents then
return
end
local sort_override = nil
if current.getSort then
sort_override = current:getSort()
end
for _, parent in ipairs(parents) do
local sort = sort_override or parent.sort
if type(parent.name) == "string" then
table.insert(categories, "[[" .. parent.name .. "|" .. sort .. "]]")
else
table.insert(categories, "[[Category:" .. parent.name:getCategoryName() .. "|" .. sort .. "]]")
end
end
if current.getTopicParents then
if current:getTopicParents() then
for _, topic_parent in ipairs(current:getTopicParents()) do
table.insert(categories, "[[Category:" .. topic_parent .. "]]")
end
end
end
-- Also put the category in its corresponding "umbrella" or "by language" category.
local umbrella = current:getUmbrella()
if umbrella then
local sort
if current._lang then
sort = current._lang:getCanonicalName()
else
sort = current:getCategoryName()
end
if type(umbrella) == "string" then
table.insert(categories, "[[" .. umbrella .. "|" .. sort .. "]]")
else
table.insert(categories, "[[Category:" .. umbrella:getCategoryName() .. "|" .. sort .. "]]")
end
end
end
function link_box(content)
return "<div class=\"noprint plainlinks\" style=\"float: right; clear: both; margin: 0 0 .5em 1em; background: #f9f9f9; border: 1px #aaaaaa solid; margin-top: -1px; padding: 5px; font-weight: bold;\">"
.. content .. "</div>"
end
function show_related_changes()
local title = mw.title.getCurrentTitle().fullText
return link_box(
"["
.. tostring(mw.uri.fullUrl("Special:RecentChangesLinked", {
target = title,
showlinkedto = 0,
}))
.. ' <span title="Recent edits and other changes to pages in ' .. title .. '">Recent changes</span>]')
end
function show_editlink(current)
return link_box(
"[" .. tostring(mw.uri.fullUrl(current:getDataModule(), "action=edit"))
.. " Edit category data]")
end
function show_pagelist(current)
local namespace = ""
local info = current:getInfo()
if info.label == "citations" or info.label == "citations of undefined terms" then
namespace = "Citations"
elseif info.code then
local lang = require("Module:languages").getByCode(info.code)
if lang then
if lang:getType() == "reconstructed" then
namespace = "Reconstruction"
elseif lang:getType() == "appendix-constructed" then
namespace = "Appendix"
end
end
end
local recent = mw.getCurrentFrame():callParserFunction{
name = "#tag",
args = {
"DynamicPageList",
"category=" .. mw.title.getCurrentTitle().text .. "\n" ..
"namespace=" .. namespace .. "\n" ..
"count=10\n" ..
"mode=ordered\n" ..
"ordermethod=categoryadd\n" ..
"order=descending"
}
}
local oldest = mw.getCurrentFrame():callParserFunction{
name = "#tag",
args = {
"DynamicPageList",
"category=" .. mw.title.getCurrentTitle().text .. "\n" ..
"namespace=" .. namespace .. "\n" ..
"count=10\n" ..
"mode=ordered\n" ..
"ordermethod=lastedit\n" ..
"order=ascending"
}
}
return [=[
{| id="newest-and-oldest-pages" class="wikitable" style="float: right; clear: both; margin: 0 0 .5em 1em;"
! Recent additions to the category
|-
| id="recent-additions" style="font-size:0.9em;" | ]=] .. recent .. [=[
|-
! Oldest pages ordered by last edit
|-
| id="oldest-pages" style="font-size:0.9em;" | ]=] .. oldest .. [=[
|}]=]
end
function show_display(current)
if current.getDisplay then
local display = current:getDisplay()
if display then
mw.getCurrentFrame():callParserFunction("DISPLAYTITLE", "Category:" .. current:getDisplay())
end
end
return nil
end
-- Show navigational "breadcrumbs" at the top of the page.
function show_breadcrumbs(current)
local steps = {}
-- Start at the current label and move our way up the "chain" from child to parent, until we can't go further.
while current do
local category = nil
local display_name = nil
local nocap = nil
if type(current) == "string" then
category = current
display_name = current:gsub("^Category:", "")
else
category = "Category:" .. current:getCategoryName()
display_name, nocap = current:getBreadcrumbName()
end
if not nocap then
display_name = mw.getContentLanguage():ucfirst(display_name)
end
if current.getDisplay2 then
display_name = current:getDisplay2() or display_name
elseif current.getDisplay then
display_name = current:getDisplay() or display_name
end
table.insert(steps, 1, "[[:" .. category .. "|" .. display_name .. "]]")
-- Move up the "chain" by one level.
if type(current) == "string" then
current = nil
else
current = current:getParents()
end
if current then
current = current[1].name
elseif inFundamental[category] then
current = "Category:Fundamental"
end
end
steps = table.concat(steps, " » ")
return "<small>" .. steps .. "</small>"
end
-- Show the intro text that goes at the very top of the page.
function show_intro(current)
return (current.getIntro and current:getIntro() or "")
end
-- Show a short description text for the category.
function show_description(current)
return (current:getDescription() or "")
end
function show_appendix(current)
local appendix
if current.getAppendix then
appendix = current:getAppendix()
end
if appendix then
return "For more information, see [[" .. appendix .. "]]."
else
return nil
end
end
-- Show a list of child categories.
function show_children(current)
local children = current:getChildren()
if not children then
return nil
end
table.sort(children, function(first, second) return mw.ustring.upper(first.sort) < mw.ustring.upper(second.sort) end)
local children_list = {}
for _, child in ipairs(children) do
local child_pagetitle
if type(child.name) == "string" then
child_pagetitle = child.name
else
child_pagetitle = "Category:" .. child.name:getCategoryName()
end
local child_page = mw.title.new(child_pagetitle)
local display = child_pagetitle
if child.name.getDisplay then
if child.name:getDisplay() then
display = "Category:" .. child.name:getDisplay()
end
end
if child_page.exists then
local child_description =
child.description or
type(child.name) == "string" and child.name:gsub("^Category:", "") .. "." or
child.name:getDescription("child")
table.insert(children_list, "* [[:" .. child_pagetitle .. "|" .. display .. "]]: " .. child_description)
end
end
return table.concat(children_list, "\n")
end
-- Show a table of contents with links to each letter in the language's script.
function show_TOC(current)
local titleText = mw.title.getCurrentTitle().text
local inCategoryPages = mw.site.stats.pagesInCategory(titleText, "pages")
local inCategorySubcats = mw.site.stats.pagesInCategory(titleText, "subcats")
local TOC_type
-- Compute type of table of contents required.
if inCategoryPages > 2500 or inCategorySubcats > 2500 then
TOC_type = "full"
elseif inCategoryPages > 200 or inCategorySubcats > 200 then
TOC_type = "normal"
else
-- No (usual) need for a TOC if all pages or subcategories can fit on one page;
-- but allow this to be overridden by a custom TOC handler.
TOC_type = "none"
end
if current.getTOC then
local TOC_text = current:getTOC(TOC_type)
if TOC_text ~= true then
return TOC_text
end
end
if TOC_type ~= "none" then
local templatename = current:getTOCTemplateName()
local TOC_template
if TOC_type == "full" then
-- This category is very large, see if there is a "full" version of the TOC.
local TOC_template_full = mw.title.new(templatename .. "/full")
if TOC_template_full.exists then
TOC_template = TOC_template_full
end
end
if not TOC_template then
local TOC_template_normal = mw.title.new(templatename)
if TOC_template_normal.exists then
TOC_template = TOC_template_normal
end
end
if TOC_template then
return mw.getCurrentFrame():expandTemplate{title = TOC_template.text, args = {}}
end
end
return nil
end
function export.test(frame)
local template = frame.args[1]
local submodule = require("Module:category tree/" .. template)
if submodule.new_main then
current = submodule.new_main(frame)
else
local info = {}
for key, val in pairs(frame.args) do
info[key] = val; if info[key] == "" then info[key] = nil end
end
info.template = nil
current = submodule.new(info, true)
end
end
return export
ma72slra5js8t0enzfh0hgd7p9qc02l
Modul:category tree/topic cat/data/Sciences
828
11516
129883
127321
2022-08-22T08:24:53Z
PeaceSeekers
3334
Scribunto
text/plain
local labels = {}
labels["sains"] = {
description = "default with the lower",
parents = {"semua topik"},
}
labels["akustik"] = {
description = "default",
parents = {"sains gunaan", "fizik", "bunyi"},
}
labels["kata sifat"] = {
description = "default",
parents = {"golongan kata"},
}
labels["aeronautik"] = {
description = "default",
parents = {"sains"},
}
labels["aeroangkasa"] = {
description = "default",
parents = {"sains"},
}
labels["pertanian"] = {
description = "default",
parents = {"sains gunaan"},
}
labels["alkimia"] = {
description = "default",
parents = {"forteana", "pseudosains"},
}
labels["perubatan alternatif"] = {
description = "default",
parents = {"perubatan", "pseudosains"},
}
labels["kimia analisis"] = {
description = "[[kimia analisis]]",
parents = {"kimia"},
}
labels["anatomi"] = {
description = "Istilah berkenaan anggota badan dan [[anatomi]] dalam bahasa {{{langname}}}.",
parents = {"biologi", "perubatan"},
}
labels["andrologi"] = {
description = "default",
parents = {"perubatan"},
}
labels["antropologi"] = {
description = "default",
parents = {"zoologi", "sains sosial"},
}
labels["sains gunaan"] = {
description = "Istilah berkenaan [[sains gunaan]] dalam bahasa {{{langname}}}.",
parents = {"sains"},
}
labels["araknologi"] = {
description = "Istilah berkenaan [[araknologi]] atau kajian berkenaan [[labah-labah]] dalam bahasa {{{langname}}}.",
parents = {"zoologi"},
}
labels["arkeologi"] = {
description = "default",
parents = {"sains"},
}
labels["architectural elements"] = {
description = "default",
parents = {"seni bina"},
}
labels["seni bina"] = {
description = "default",
parents = {"sains gunaan", "seni"},
}
labels["kecerdasan buatan"] = {
description = "default",
parents = {"sains komputer", "sibernetik"},
}
labels["asterisms"] = {
description = "{{{langname}}} terms related to [[asterism]]s",
parents = {"astronomi"},
}
labels["astronautics"] = {
description = "default",
parents = {"sains gunaan"},
}
labels["astronomi"] = {
description = "default",
parents = {"sains", "angkasa"},
}
labels["astrofizik"] = {
description = "default",
parents = {"fizik", "astronomi"},
}
labels["penerbangan"] = {
description = "default",
parents = {"aeronautik", "pengangkutan"},
}
labels["bakteriologi"] = {
description = "default",
parents = {"mikrobiologi"},
}
labels["biokimia"] = {
description = "default",
parents = {"kimia", "biologi"},
}
labels["biologi"] = {
description = "default",
parents = {"sains"},
}
labels["botani"] = {
description = "Istilah berkenaan [[botani]] dalam bahasa {{{langname}}}.",
parents = {"biologi"},
}
labels["bryology"] = {
description = "{{{langname}}} terms related to [[bryology]], the study of [[moss]]es and other lower plants.",
parents = {"biologi"},
}
labels["kardiologi"] = {
description = "default",
parents = {"perubatan"},
}
labels["carpentry"] = {
description = "default",
parents = {"pembinaan", "woodworking"},
}
labels["kartografi"] = {
description = "default",
parents = {"geografi"},
}
labels["kejuruteraan kimia"] = {
description = "default",
parents = {"kejuruteraan", "kimia"},
}
labels["chemical formulae"] = {
description = "default",
parents = {"kimia"},
}
labels["kimia"] = {
description = "default",
parents = {"sains"},
}
labels["mekanik klasik"] = {
description = "default",
parents = {"mekanik"},
}
labels["classical studies"] = {
description = "default",
parents = {"linguistik", "kesusasteraan", "sejarah"},
}
labels["klimatologi"] = {
description = "default",
parents = {"sains bumi"},
}
labels["clinical psychology"] = {
description = "default",
parents = {"psikologi", "patologi"},
}
labels["computational linguistics"] = {
description = "default",
parents = {"linguistik", "sains komputer"},
}
labels["sains komputer"] = {
description = "default",
parents = {"sains", "perkomputeran"},
}
labels["conchology"] = {
description = "{{{langname}}} terms related to [[conchology]], the study of mollusc [[shell]]s.",
parents = {"malacology"},
}
labels["buruj"] = {
description = "{{{langname}}} terms related to [[constellation]]s",
parents = {"astronomi"},
}
labels["constellations in the zodiac"] = {
description = "This is a list of {{{langname}}} terms related to the ring of [[constellations]] that line the [[ecliptic]], the apparent path of the [[Sun]] across the [[celestial sphere]] over the course of a year.",
parents = {"constellations", "astrology"},
}
labels["pembinaan"] = {
description = "default",
parents = {"kejuruteraan", "seni bina"},
}
labels["kosmologi"] = {
description = "default",
parents = {"astronomi"},
}
labels["kriminologi"] = {
description = "default",
parents = {"sosiologi", "jenayah"},
}
labels["cryptography"] = {
description = "default",
parents = {"formal sciences", "mathematics", "sains komputer"},
}
labels["cryptozoology"] = {
description = "default",
parents = {"zoologi", "forteana"},
}
labels["kristalografi"] = {
description = "default",
parents = {"fizik", "sains"},
}
labels["cultural anthropology"] = {
description = "default",
parents = {"anthropology", "budaya"},
}
labels["cybernetics"] = {
description = "default",
parents = {"applied mathematics", "systems theory"},
}
labels["cytology"] = {
description = "{{{langname}}} terms related to [[cytology]]: cell biology, cell structure, formation, classification and related topics.",
parents = {"biologi"},
}
labels["data management"] = {
description = "default",
parents = {"information science", "sains komputer"},
}
labels["demografi"] = {
description = "default",
parents = {"sains", "statistics"},
}
labels["pergigian"] = {
description = "default",
parents = {"perubatan", "gigi"},
}
labels["dermatologi"] = {
description = "default",
parents = {"perubatan"},
}
labels["developmental biology"] = {
description = "default",
parents = {"biologi"},
}
labels["sains bumi"] = {
description = "Istilah berkenaan [[sains bumi]] dalam bahasa {{{langname}}}.",
parents = {"sains"},
}
labels["earthquake engineering"] = {
description = "default",
parents = {"kejuruteraan"},
}
labels["ekologi"] = {
description = "default",
parents = {"biologi"},
}
labels["ekonomi"] = {
description = "default",
parents = {"sains sosial"},
}
labels["electrencephalography"] = {
description = "default",
parents = {"neuroscience"},
}
labels["electrical engineering"] = {
description = "default",
parents = {"kejuruteraan", "keelektrikan"},
}
labels["keelektrikan"] = {
description = "default",
parents = {"keelektromagnetan"},
}
labels["electrodynamics"] = {
description = "default",
parents = {"keelektromagnetan"},
}
labels["keelektromagnetan"] = {
description = "default",
parents = {"fizik"},
}
labels["embriologi"] = {
description = "default",
parents = {"biologi", "developmental biology", "perubatan"},
}
labels["emergency medicine"] = {
description = "default",
parents = {"perubatan"},
}
labels["endocrinology"] = {
description = "default",
parents = {"perubatan"},
}
labels["kejuruteraan"] = {
description = "default",
parents = {"sains gunaan", "teknologi"},
}
labels["enterprise engineering"] = {
description = "default",
parents = {"kejuruteraan"},
}
labels["entomologi"] = {
description = "{{{langname}}} terms related to [[entomology]], the study of [[insect]]s.",
parents = {"zoologi"},
}
labels["epidemiologi"] = {
description = "Istilah berkenaan [[epidemiologi]] dalam bahasa {{{langname}}}.",
parents = {"perubatan"},
}
labels["etnografi"] = {
description = "default",
parents = {"antropologi"},
}
labels["ethology"] = {
description = "default",
parents = {"zoologi"},
}
labels["evolutionary theory"] = {
description = "default",
parents = {"biologi"},
}
labels["dinamik bendalir"] = {
description = "default",
parents = {"fizik"},
}
labels["perhutanan"] = {
description = "default",
parents = {"sains gunaan"},
}
labels["forteana"] = {
description = "{{{langname}}} terms that have a [[Fortean]] element.",
parents = {"pseudosains"},
}
labels["functional group prefixes"] = {
description = "default",
parents = {"kimia organik"},
}
labels["functional group suffixes"] = {
description = "default",
parents = {"kimia organik"},
}
labels["gastroenterology"] = {
description = "default",
parents = {"perubatan"},
}
labels["genetic disorders"] = {
description = "default-set",
parents = {"medical genetics", "patologi", "list of sets"},
}
labels["genetik"] = {
description = "default",
parents = {"biologi"},
}
labels["geografi"] = {
description = "default",
parents = {"sains bumi"},
}
labels["geological periods"] = {
description = "default",
parents = {"geologi"},
}
labels["geologi"] = {
description = "default",
parents = {"sains bumi"},
}
labels["geomorphology"] = {
description = "default",
parents = {"geologi"},
}
labels["geopolitik"] = {
description = "default",
parents = {"geografi", "politik"},
}
labels["geospatial science"] = {
description = "default",
parents = {"sains bumi"},
}
labels["gerontologi"] = {
description = "default",
parents = {"perubatan"},
}
labels["tatabahasa"] = {
description = "default",
parents = {"linguistik"},
}
labels["grammatical cases"] = {
description = "{{{langname}}} terms related to [[grammatical case]]s",
parents = {"tatabahasa"},
}
labels["grammatical moods"] = {
description = "default",
parents = {"tatabahasa"},
}
labels["gynaecology"] = {
description = "default",
parents = {"perubatan", "female"},
}
labels["hematologi"] = {
description = "default",
parents = {"perubatan"},
}
labels["hepatologi"] = {
description = "default",
parents = {"perubatan"},
}
labels["herpetology"] = {
description = "{{{langname}}} terms related to [[herpetology]], the study of [[reptile]]s and amphibians.",
parents = {"zoologi"},
}
labels["homeopathy"] = {
description = "default",
parents = {"perubatan alternatif"},
}
labels["hortikultur"] = {
description = "default",
parents = {"botani"},
}
labels["hydrocarbon chain prefixes"] = {
description = "default",
parents = {"kimia organik"},
}
labels["hydrocarbon chain suffixes"] = {
description = "default",
parents = {"kimia organik"},
}
labels["hidrologi"] = {
description = "default",
parents = {"sains bumi", "air"},
}
labels["ichthyology"] = {
description = "{{{langname}}} terms related to [[ichthyology]], the study of [[fish]].",
parents = {"zoologi"},
}
labels["immunochemistry"] = {
description = "default",
parents = {"biokimia", "immunology"},
}
labels["imunologi"] = {
description = "default",
parents = {"perubatan"},
}
labels["Indo-European studies"] = {
description = "{{{langname}}} terms related to [[Indo-European]] [[studies]].",
parents = {"linguistik"},
}
labels["sains maklumat"] = {
description = "default",
parents = {"sains gunaan"},
}
labels["inorganic chemistry"] = {
description = "default",
parents = {"kimia"},
}
labels["interdisciplinary fields"] = {
description = "{{{langname}}} terms related to [[interdisciplinary]] fields",
parents = {"sains"},
}
labels["lexicography"] = {
description = "default",
parents = {"linguistik"},
}
labels["library science"] = {
description = "default",
parents = {"sains", "pendidikan", "information science"},
}
labels["lichenology"] = {
description = "default",
parents = {"mycology", "phycology"},
}
labels["linguistic morphology"] = {
description = "default",
parents = {"linguistik"},
}
labels["linguistik"] = {
description = "default",
parents = {"bahasa", "sains sosial"},
}
labels["malacology"] = {
description = "{{{langname}}} terms related to [[malacology]], the study of [[mollusk]]s.",
parents = {"zoologi"},
}
labels["mammalogy"] = {
description = "{{{langname}}} terms related to [[mammalogy]], the study of [[mammal]]s.",
parents = {"zoologi"},
}
labels["biologi marin"] = {
description = "default",
parents = {"biologi"},
}
labels["sains bahan"] = {
description = "default",
parents = {"sains", "kejuruteraan"},
}
labels["kejuruteraan mekanik"] = {
description = "default",
parents = {"kejuruteraan"},
}
labels["mekanik"] = {
description = "default",
parents = {"fizik"},
}
labels["medical genetics"] = {
description = "{{{langname}}} terms that pertain to the [[medical]] [[genetics]].",
parents = {"perubatan", "genetics"},
}
labels["perubatan"] = {
description = "Istilah [[perubatan]] dalam bahasa {{{langname}}}.",
parents = {"sains", "biologi"},
}
labels["metalurgi"] = {
description = "default",
parents = {"sains"},
}
labels["metamaterials"] = {
description = "default",
parents = {"fizik"},
}
labels["meteorologi"] = {
description = "Istilah berkaitan [[meteorologi]], kajian berkenaan [[cuaca]] dalam bahasa {{{langname}}}.",
parents = {"sains bumi"},
}
labels["metrologi"] = {
description = "default",
parents = {"sains gunaan"},
}
labels["mikrobiologi"] = {
description = "default",
parents = {"biologi"},
}
labels["microscopy"] = {
description = "default",
parents = {"optics", "mikrobiologi"},
}
labels["mineralogi"] = {
description = "default",
parents = {"geologi"},
}
labels["biologi molekul"] = {
description = "default",
parents = {"biokimia", "biologi", "genetik"},
}
labels["mycology"] = {
description = "{{{langname}}} terms related to [[mycology]], the study of [[fungi]].",
parents = {"biologi"},
}
labels["neuroanatomy"] = {
description = "default",
parents = {"anatomi", "neurology", "neuroscience"},
}
labels["neurology"] = {
description = "default",
parents = {"perubatan", "neuroscience"},
}
labels["neuroscience"] = {
description = "default",
parents = {"biologi"},
}
labels["neurosurgery"] = {
description = "default",
parents = {"pembedahan", "neurology"},
}
labels["kata nama"] = {
description = "default",
parents = {"golongan kata"},
}
labels["nuclear physics"] = {
description = "default",
parents = {"fizik", "quantum mechanics"},
}
labels["obstetrics"] = {
description = "default",
parents = {"developmental biology", "perubatan", "pregnancy"},
}
labels["oceanography"] = {
description = "default",
parents = {"sains"},
}
labels["oenology"] = {
description = "default",
parents = {"wines", "sains"},
}
labels["onkologi"] = {
description = "default",
parents = {"biologi", "perubatan", "patologi"},
}
labels["onomastics"] = {
description = "default",
parents = {"linguistik"},
}
labels["ophthalmology"] = {
description = "default",
parents = {"perubatan", "vision"},
}
labels["optics"] = {
description = "default",
parents = {"fizik"},
}
labels["kimia organik"] = {
description = "default",
parents = {"kimia"},
}
labels["ornitologi"] = {
description = "Istilah berkenaan [[ornitologi]], kajian tentang [[burung]], dalam bahasa {{{langname}}}.",
parents = {"zoologi"},
}
labels["paleontologi"] = {
description = "default",
parents = {"sains", "geologi"},
}
labels["palynology"] = {
description = "default",
parents = {"geologi"},
}
labels["parapsychology"] = {
description = "default",
parents = {"forteana", "pseudosains"},
}
labels["particle physics"] = {
description = "default",
parents = {"fizik"},
}
labels["golongan kata"] = {
description = "{{{langname}}} terms related to [[part of speech|golongan kata]].",
parents = {"tatabahasa"},
}
labels["patologi"] = {
description = "default",
parents = {"perubatan"},
}
labels["petrokimia"] = {
description = "default",
parents = {"kimia", "kejuruteraan kimia", "industri minyak"},
}
labels["petrologi"] = {
description = "default",
parents = {"geologi"},
}
labels["farmakologi"] = {
description = "default",
parents = {"biokimia", "perubatan"},
}
labels["farmasi"] = {
description = "default",
parents = {"perubatan", "farmakologi"},
}
labels["phonetics"] = {
description = "default",
parents = {"linguistik"},
}
labels["phonology"] = {
description = "default",
parents = {"linguistik"},
}
labels["phrenology"] = {
description = "default",
parents = {"psikologi", "pseudosains"},
}
labels["phycology"] = {
description = "{{{langname}}} terms related to [[phycology]], the study of [[algae]].",
parents = {"botani", "mikrobiologi"},
}
labels["physical chemistry"] = {
description = "default",
parents = {"kimia", "fizik"},
}
labels["fizik"] = {
description = "default",
parents = {"sains"},
}
labels["fisiologi"] = {
description = "default",
parents = {"biologi", "perubatan"},
}
labels["phytopathology"] = {
description = "default",
parents = {"patologi", "botani"},
}
labels["phytotomy"] = {
description = "default",
parents = {"anatomi", "botani"},
}
labels["planetary nomenclature"] = {
description = "default",
parents = {"planetology"},
}
labels["planetology"] = {
description = "default",
parents = {"astronomi", "geologi"},
}
labels["plant diseases"] = {
description = "default",
parents = {"phytopathology", "diseases"},
}
labels["plastic surgery"] = {
description = "default",
parents = {"pembedahan"},
}
labels["sains politik"] = {
description = "default",
parents = {"sains sosial"},
}
labels["pragmatics"] = {
description = "default",
parents = {"linguistik"},
}
labels["prosody"] = {
description = "default",
parents = {"linguistik"},
}
labels["pseudosains"] = {
description = "default",
parents = {"sains"},
}
labels["psikiatri"] = {
description = "default",
parents = {"perubatan"},
}
labels["psychoanalysis"] = {
description = "default",
parents = {"psikologi"},
}
labels["psikologi"] = {
description = "default",
parents = {"sains sosial", "minda"},
}
labels["psychotherapy"] = {
description = "default",
parents = {"psikologi"},
}
labels["pulmonologi"] = {
description = "default",
parents = {"perubatan"},
}
labels["piroteknik"] = {
description = "default",
parents = {"sains"},
}
labels["mekanik kuantum"] = {
description = "default",
parents = {"fizik"},
}
labels["relativity"] = {
description = "default",
parents = {"fizik"},
}
labels["reumatologi"] = {
description = "default",
parents = {"perubatan"},
}
labels["robotik"] = {
description = "default",
parents = {"kejuruteraan"},
}
labels["roofing"] = {
description = "default",
parents = {"pembinaan"},
}
labels["rosiculture"] = {
description = "default",
parents = {"hortikultur"},
}
labels["seismologi"] = {
description = "default",
parents = {"geologi"},
}
labels["semantik"] = {
description = "default",
parents = {"linguistik"},
}
labels["semiotik"] = {
description = "default",
parents = {"sains sosial", "linguistik"},
}
labels["sexology"] = {
description = "default",
parents = {"sosiologi", "psikologi", "seks"},
}
labels["unit SI"] = {
description = "{{{langname}}} terms related to [[International System of Units|SI]] [[unit of measure|units of measure]].",
parents = {"unit ukuran"},
}
labels["signal processing"] = {
description = "[[signal]] [[processing]]",
parents = {"applied mathematics", "telecommunications"},
}
labels["sains sosial"] = {
description = "Istilah berkenaan [[sains sosial]] dalam bahasa {{{langname}}}.",
parents = {"sains", "masyarakat"},
}
labels["sociolinguistik"] = {
description = "default",
parents = {"linguistik", "sosiologi"},
}
labels["sosiologi"] = {
description = "default",
parents = {"sains sosial"},
}
labels["kejuruteraan perisian"] = {
description = "default",
parents = {"kejuruteraan", "sains komputer", "software"},
}
labels["soil science"] = {
description = "default",
parents = {"sains bumi"},
}
labels["kejuruteraan bunyi"] = {
description = "default",
parents = {"kejuruteraan", "bunyi"},
}
labels["sains angkasa"] = {
description = "default",
parents = {"sains"},
}
labels["spektroskopi"] = {
description = "default",
parents = {"analytical chemistry", "optics", "fizik"},
}
labels["mekanik statistik"] = {
description = "default",
parents = {"mekanik"},
}
labels["statistik"] = {
description = "default",
parents = {"sains formal", "matematik"}
}
labels["pembedahan"] = {
description = "default",
parents = {"perubatan"},
}
labels["surveying"] = {
description = "default",
parents = {"geografi"},
}
labels["systematics"] = {
description = "default",
parents = {"biologi", "evolutionary theory"},
}
labels["systems"] = {
description = "default",
parents = {"interdisciplinary fields", "sains", "masyarakat"},
}
labels["systems engineering"] = {
description = "default",
parents = {"kejuruteraan"},
}
labels["systems theory"] = {
description = "default",
parents = {"sains", "systems"},
}
labels["taksonomi"] = {
description = "{{{langname}}} terms related to [[taxonomy]]. For individual [[taxa]], please see [[:Category:Taxonomic names]].",
parents = {"systematics"},
}
labels["tenses"] = {
description = "default",
parents = {"tatabahasa"},
}
labels["teratology"] = {
description = "default",
parents = {"developmental biology", "perubatan", "patologi", "toksikologi"},
}
labels["theory of computing"] = {
description = "{{{langname}}} terms used in theoretical discussion of [[sains komputer]] or [[computing]].",
parents = {"sains komputer"},
}
labels["termodinamik"] = {
description = "default",
parents = {"fizik"},
}
labels["toksikologi"] = {
description = "default",
parents = {"perubatan", "farmakologi"},
}
labels["perubatan tradisional Cina"] = {
description = "default",
parents = {"perubatan alternatif"},
}
labels["kejuruteraan trafik"] = {
description = "default",
parents = {"kejuruteraan", "pengangkutan jalan"},
}
labels["translation studies"] = {
description = "default",
parents = {"linguistik"},
}
labels["ufology"] = {
description = "default",
parents = {"forteana"},
}
labels["unit ukuran"] = {
description = "Nama-nama [[unit ukuran]] dalam bahasa {{{langname}}}.",
parents = {"sains", "metrologi"},
}
labels["urologi"] = {
description = "default",
parents = {"perubatan"},
}
labels["kata kerja"] = {
description = "default",
parents = {"golongan kata"},
}
labels["veterinary medicine"] = {
description = "default",
parents = {"perubatan"},
}
labels["virologi"] = {
description = "default",
parents = {"perubatan", "mikrobiologi", "patologi"},
}
labels["volkanologi"] = {
description = "default",
parents = {"geologi"},
}
labels["zoologi"] = {
description = "default",
parents = {"biologi"},
}
labels["zootomy"] = {
description = "default",
parents = {"anatomi", "zoologi"},
}
labels["zymurgy"] = {
description = "default",
parents = {"biokimia", "brewing"},
}
return labels
89el669i253tur3xi0yrguo4nix62sm
السلام عليكم
0
12347
129825
129048
2022-08-21T17:42:01Z
2404:160:810E:5474:58EF:9AFE:77E4:C413
wikitext
text/x-wiki
Asalamualaikumwarahmatullahiwabarakatu
== Bahasa Melayu ==
=== Takrifan ===
====Kata seru====
{{head|ms|kata seru}}
# Selamat sejahtera kepada kamu semua (lelaki dan perempuan).
===Etimologi===
Daripada {{etyl|ar|ms}} {{m|ar|السلام عليكم}}.
=== Sebutan ===
* {{dewan|as|sa|la|mu|ʕa|lai|kum}}
* {{AFA|ms|/as.sa.laː.mu ʕa.laj.kum/}}
* {{rhymes|ms|kum}}
* {{penyempangan|ms|ال|س|لام||ع|لي|كم}}
=== Tulisan Rumi ===
Jangan bersedih nanti hilang kecantikan itu
=== Rujukan ===
* {{R:BKKM}}
=== Pautan luar ===
* {{R:PRPM}}
==Bahasa Arab==
===Takrifan===
{{wikipedia|lang=ar}}
====Kata seru====
{{head|ar|kata seru|head=[[سلام|اَلسَّلَامُ]] [[على|عَلَيْكُمْ]]}}
# {{l|ms|(semoga) [[sejahtera]] (ke) [[atas]] [[kalian]] (jamak)}}
#: {{ux|ar|اَلسَّلامُ عَلَيْكُم — وَعَلَيْكُمُ اَلسَّلامُ|Salam sejahtera ke atas kamu. — Dan ke atas kamu (juga) sejahtera.|tr=as-salāmu ʿalaykum — wa-ʿalaykumu s-salāmu}}
# {{lb|ar|Islam}} {{l|ms|assalamualaikum}} {{q|ucapan Islam}}
#: {{ux|ar|اَلسَلامُ عَلَيْكُم وَرَحْمَةُ اَللهِ وَبَرَكاتُهُ|Salam sejahtera ke atas kamu dan rahmat Allah dan berkat-Nya.|tr=as-salāmu ʿalaykum wa-raḥmatu llāhi wa-barakātuhu}}
===Etimologi===
Seasal dengan {{cog|he|שָׁלוֹם עֲלֵיכֶם|tr=shalóm aleikhém}}.
===Sebutan===
* {{AFA|ar|/as.sa.laː.mu ʕa.laj.kum/}}
* {{audio|ar|Ar-السلام عليكم.oga|Audio}}
Farazilla
9xlkbe3r9waohnw5ecwhlvtvvixkc99
129826
129825
2022-08-22T01:47:58Z
Tofeiku
2269
buat asal
wikitext
text/x-wiki
== Bahasa Melayu ==
=== Takrifan ===
====Kata seru====
{{head|ms|kata seru}}
# Selamat sejahtera kepada kamu semua (lelaki dan perempuan).
===Etimologi===
Daripada {{etyl|ar|ms}} {{m|ar|السلام عليكم}}.
=== Sebutan ===
* {{dewan|as|sa|la|mu|ʕa|lai|kum}}
* {{AFA|ms|/as.sa.laː.mu ʕa.laj.kum/}}
* {{rhymes|ms|kum}}
* {{penyempangan|ms|ال|س|لام||ع|لي|كم}}
=== Tulisan Rumi ===
{{l|ms|assalamualaikum}}
=== Rujukan ===
* {{R:BKKM}}
=== Pautan luar ===
* {{R:PRPM}}
==Bahasa Arab==
===Takrifan===
{{wikipedia|lang=ar}}
====Kata seru====
{{head|ar|kata seru|head=[[سلام|اَلسَّلَامُ]] [[على|عَلَيْكُمْ]]}}
# {{l|ms|(semoga) [[sejahtera]] (ke) [[atas]] [[kalian]] (jamak)}}
#: {{ux|ar|اَلسَّلامُ عَلَيْكُم — وَعَلَيْكُمُ اَلسَّلامُ|Salam sejahtera ke atas kamu. — Dan ke atas kamu (juga) sejahtera.|tr=as-salāmu ʿalaykum — wa-ʿalaykumu s-salāmu}}
# {{lb|ar|Islam}} {{l|ms|assalamualaikum}} {{q|ucapan Islam}}
#: {{ux|ar|اَلسَلامُ عَلَيْكُم وَرَحْمَةُ اَللهِ وَبَرَكاتُهُ|Salam sejahtera ke atas kamu dan rahmat Allah dan berkat-Nya.|tr=as-salāmu ʿalaykum wa-raḥmatu llāhi wa-barakātuhu}}
===Etimologi===
Seasal dengan {{cog|he|שָׁלוֹם עֲלֵיכֶם|tr=shalóm aleikhém}}.
===Sebutan===
* {{AFA|ar|/as.sa.laː.mu ʕa.laj.kum/}}
* {{audio|ar|Ar-السلام عليكم.oga|Audio}}
Farazilla
g6ezl7cktoh6rbqcc3vm4mvg1bocg6p
edjektip
0
12366
129775
109863
2022-08-21T12:57:25Z
Tofeiku
2269
kemas
wikitext
text/x-wiki
==Bahasa Semai==
===Takrifan===
====Kata nama====
{{inti|sea|kata nama}}
# [[adjektif]]; [[kata sifat]].
===Etimologi===
Daripada {{bor|sea|ms|adjektif}}.
===Sebutan===
* {{AFA|sea|/ed.ɟek.tip/}}
* {{rima|sea|ip}}
* {{penyempangan|sea|ed|jek|tip}}
pvxbc3bo70gbo8xgwdl1vzmpkb5y09o
ogadung
0
14575
129780
113723
2022-08-21T13:34:39Z
Tofeiku
2269
kemas
wikitext
text/x-wiki
==Bahasa Sandayo==
===Takrifan===
====Kata sifat====
{{inti|kqr|kata sifat}}
# {{lb|kqr|Sandayo}} [[hijau]]
2cdub5upiz7ld1q4xm54zz9mo77c2ly
ansur
0
15021
129779
114407
2022-08-21T13:08:23Z
Tofeiku
2269
kembang
wikitext
text/x-wiki
==Bahasa Bajau Sama==
===Takrifan===
====Kata sifat====
{{inti|bdr|kata sifat}}
# [[hancur]]
===Etimologi===
Daripada {{bor|bdr|ms|hancur}}.
===Rujukan===
* {{R:KABS|2=6}}
ltuahxfo7gvs5wjzrzh7qcylyzdxdgp
ganas
0
15153
129798
114564
2022-08-21T13:55:01Z
Tofeiku
2269
kembang
wikitext
text/x-wiki
==Bahasa Bajau Sama==
===Takrifan===
====Kata sifat====
{{inti|bdr|kata sifat}}
# [[ganas]]
===Rujukan===
* {{R:KABS|2=23}}
q4djjt0oe5olpfovig2ofce27qsaifp
deras
0
15510
129782
129209
2022-08-21T13:36:08Z
Tofeiku
2269
kemas
wikitext
text/x-wiki
==Bahasa Semai==
===Takrifan===
====Kata sifat====
{{inti|sea|kata sifat}}
# [[cepat]].
djxvjf5f8t60brsciqxbcj4gj1h7l7g
kapal
0
15584
129783
115111
2022-08-21T13:38:23Z
Tofeiku
2269
kemas
wikitext
text/x-wiki
==Bahasa Bajau Sama==
===Takrifan===
====Kata nama====
{{inti|bdr|kata nama}}
# [[kapal]]
====Kata sifat====
{{inti|bdr|kata adjektif}}
# [[tebal]]
===Rujukan===
* {{R:KABS|2=29}}
rte8j2selur3jmqutec09j7ixge2v10
kasar
0
15593
129777
115120
2022-08-21T13:01:50Z
Tofeiku
2269
kembang
wikitext
text/x-wiki
==Bahasa Bajau Sama==
===Takrifan===
====Kata sifat====
{{inti|bdr|kata sifat}}
# [[kasar]]
===Rujukan===
* {{R:KABS|2=29}}
ixn7rryf4icjf6pwtrbqc5ifm3y2nf2
bedelon
0
15980
129787
115779
2022-08-21T13:42:24Z
Tofeiku
2269
kemas
wikitext
text/x-wiki
==Bahasa Vaie==
===Takrifan===
====Kata sifat====
{{inti|bny|kata sifat}}
#[[jinak]].
2ffidn8js97l9p3miczw7qonr0woxiw
nyunyu
0
16039
129796
115839
2022-08-21T13:51:07Z
Tofeiku
2269
kemas
wikitext
text/x-wiki
==Bahasa Vaie==
===Takrifan===
====Kata sifat====
{{inti|bny|kata sifat}}
#[[cair]], [[larut]].
cm3r511jjwcsg4to1vzmi07wvxjxlt2
nyak
0
17146
129776
129221
2022-08-21T12:58:24Z
Tofeiku
2269
/* Kata adjektif */
wikitext
text/x-wiki
==Bahasa Orang Seletar==
===Takrifan===
[[thumb|nyak]]
====Kata nama====
{{inti|ors|kata nama}}
# kata ganti diri ketiga tunggal, dia.
===Sebutan===
* {{AFA|ors|/ɲaʔ/}}
* {{rima|ors|aʔ}}
===Rujukan===
* “[http://jur.byu.edu/?p=18888 nyak]” dalam Kevin Blissett dan Dr. Dirk Elzinga, ''Early Documentation of the Orang Seletar and Sugut Sungai Languages'', Utah: Brigham Young University, 2015.
==Bahasa Semai==
===Takrifan===
====Kata sifat====
{{inti|sea|kata sifat}}
# [[jauh]]
est9ye0xkphglncoxl2uk8yteu0715a
ulah
0
17207
129788
118288
2022-08-21T13:43:57Z
Tofeiku
2269
kemas
wikitext
text/x-wiki
== Bahasa Banjar ==
{{Wikipedia|lang=bjn}}
===Takrifan===
====Kata kerja====
{{head|bjn|kata kerja}}
# [[buat]]
== Bahasa Melayu Negeri Sembilan ==
===Takrifan===
====Kata sifat====
{{head|zmi|kata sifat}}
# [[kerenah]]
=== Pautan luar ===
* {{R:PRPM}}
m0h28b1x04vo6ha8cceszhtr6vckzac
sado
0
18191
129851
119862
2022-08-22T07:32:26Z
Azraie.azahari
5749
/* Etimologi */
wikitext
text/x-wiki
== Bahasa Melayu ==
===Takrifan===
{{ms-ks}}
# {{lb|ms|slanga}} Sifat orang yang bertubuh [[sasa]] (memiliki rupa fizikal [[berotot]] ketara) atau orang yang kuat.
===Etimologi===
Berasal daripada nama [https://en.wikipedia.org/wiki/Eugen_Sandow Eugen Sandow], seorang ahli bina badan yang memenangi pertandingan bina badan yang dipercayai pertama kali dianjurkan di dunia pada tahun 1901 di dewan Royal Albert Hall di London. Sandow yang berasal daripada Königsberg, Germany telah muncul sebagai pemenang pertandingan bina badan tersebut dan bermula daripada itu nama beliau "Sandow" telah disebut sebagai rujukan kepada seseorang yang bertubuh sasa.
Panggilan Sandow untuk lelaki bertubuh sasa telah berevolusi di tanah melayu daripada "Sandow" kepada "Sendo" yang aktif digunakan oleh masyarakat kebanyakan sekitar tahun 70an sebagai rujukan kepada tubuh yang sasa. Panggilan tersebut sekali lagi berevolusi kepada perkataan "Sado" sekitar tahun 2000 hingga kini.
===Sebutan===
{{IPA|ms|/sa.do/}}
=== Pautan luar ===
* {{R:PRPM}}
qx5ti022vievtvoj2r1mbbmxa69jm05
халяльный
0
18482
129789
120230
2022-08-21T13:44:56Z
Tofeiku
2269
kemas
wikitext
text/x-wiki
== Bahasa Rusia ==
===Takrifan===
====Kata sifat====
{{inti|ru|kata sifat}}
# {{lb|ru|Islam}} [[halal]]
=== Etimologi ===
Daripada {{bor|ru|ar|حَلَال}}.
56cpb1yt6nbjytkve3b29bdlg30ur9v
osiriba
0
19087
129772
121311
2022-08-21T12:50:05Z
Tofeiku
2269
Tofeiku telah memindahkan laman [[Osiriba]] ke [[osiriba]]: bukan kata nama khas
wikitext
text/x-wiki
'''Kata Adjektif'''
Takrifan: '''Rendah'''
Contoh ayat bahasa Kadazandusun: Osiriba ilo lado. (dtp)
Terjemahan Bahasa Melayu: Lada itu rendah.
'''Sebutan'''
'''O/si/ri/ba'''
tiud74fezft1eb9nd8lwizh9u34somr
129774
129772
2022-08-21T12:52:42Z
Tofeiku
2269
kemas
wikitext
text/x-wiki
==Bahasa Kadazandusun==
===Takrifan===
====Kata sifat====
{{inti|dtp|kata sifat}}
# [[rendah]]
#: {{ux|dtp|'''Osiriba''' ilo lado.|Lada itu '''rendah'''.}}
===Sebutan===
* {{penyempangan|dtp|o|si|ri|ba}}
hjl5at9sgjo70cp3335p6ou6lz88gor
olundus
0
19309
129784
121720
2022-08-21T13:39:26Z
Tofeiku
2269
Tofeiku telah memindahkan laman [[Olundus]] ke [[olundus]]: bukan kata nama khas
wikitext
text/x-wiki
==Takrifan==
====Kata Adjektif====
{{inti | dtp | kata adjektif}}
# {{1b | dtp | Olundus}} [[Cantik]]
#: {{ux | dtp | Contoh ayat '''Olundus tomod i Brenda'''. dalam bahasa asal. | Terjemahan '''Brenda sangat cantik'''.}}
===Sebutan===
*{{penyempangan | dtp | O | lun | dus }}
dx3ntghex731ofvt5a6wyv0m7qxq59d
129786
129784
2022-08-21T13:41:04Z
Tofeiku
2269
kemas
wikitext
text/x-wiki
==Bahasa Kadazandusun==
===Takrifan===
====Kata sifat====
{{inti|dtp|kata sifat}}
# [[cantik]]
#: {{ux|dtp|'''Olundus''' tomod i Brenda.|Brenda sangat '''cantik'''.}}
===Sebutan===
*{{penyempangan|dtp|o|lun|dus}}
5ugn9pp643lq4mf4ic2xrjcfu8eywci
opoit
0
19477
129790
122164
2022-08-21T13:46:09Z
Tofeiku
2269
kemas
wikitext
text/x-wiki
==Bahasa Kadazandusun==
===Takrifan===
====Kata adjektif====
{{inti|dtp|kata adjektif}}
# [[pahit]]
#: {{ux|dtp|'''Opoit''' iti waig.|Air ini '''pahit'''.}}
===Sebutan===
* {{AFA|dtp|/ɔ.pɔ.ɪt/}}
* {{penyempangan|dtp|o|po|it}}
gb4s26bl13un8cyssl1zib3kfrkaypb
129791
129790
2022-08-21T13:46:23Z
Tofeiku
2269
kemas
wikitext
text/x-wiki
==Bahasa Kadazandusun==
===Takrifan===
====Kata sifat====
{{inti|dtp|kata sifat}}
# [[pahit]]
#: {{ux|dtp|'''Opoit''' iti waig.|Air ini '''pahit'''.}}
===Sebutan===
* {{AFA|dtp|/ɔ.pɔ.ɪt/}}
* {{penyempangan|dtp|o|po|it}}
swn545vd3ai4dog2b0302cs1irgc3cu
okodou
0
19478
129797
122165
2022-08-21T13:52:39Z
Tofeiku
2269
kemas
wikitext
text/x-wiki
==Bahasa Kadazandusun==
===Takrifan===
====Kata sifat====
{{inti|dtp|kata sifat}}
# [[keras]]
#: {{ux|dtp|'''Okodou''' iti ruti.|Roti ini '''keras'''.}}
===Sebutan===
* {{AFA|dtp|/ɔ.kɔ.dəʊ/}}
* {{penyempangan|dtp|o|ko|dou}}
mpt4b7602ygvlxvua197b7pk4cos8z6
Modul:ja-see
828
23166
129848
128425
2022-08-22T07:27:55Z
Tofeiku
2269
terjemah
Scribunto
text/plain
local export = {}
local find = mw.ustring.find
local len = mw.ustring.len
local gsub = mw.ustring.gsub
local match = mw.ustring.match
local gmatch = mw.ustring.gmatch
local split = mw.text.split
local m_ja = require('Module:ja')
local function gmatch_array(s, pattern) local result = {} for e in gmatch(s, pattern) do table.insert(result, e) end return result end
local function map(arr, f) local result = {} for _, e in ipairs(arr) do local fe = f(e) if fe ~= nil then table.insert(result, fe) end end return result end
local function filter(arr, f) local result = {} for _, e in ipairs(arr) do if f(e) then table.insert(result, e) end end return result end
local function contains(arr, item) for _, e in ipairs(arr) do if e == item then return true end end return false end
local function set(arr) local result = {} for _, e in ipairs(arr) do if not contains(result, e) then table.insert(result, e) end end return result end
local function flatten(arrs) local result = {} for _, arr in ipairs(arrs) do for _, e in ipairs(arr) do table.insert(result, e) end end return result end
-- f should be str->str in the following functions
local function memoize(f) local results = {} return function(s) if not results[s] then results[s] = f(s) end return results[s] end end
local getContent_memo = memoize(function(title) return mw.title.new(title):getContent() or '' end)
local function group(arr, f) local r = {} for _, e in ipairs(arr) do local fe = f(e) if r[#r] and r[#r].key == fe then table.insert(r[#r], e) else table.insert(r, { e, key = fe }) end end return r end
local function ja(text) return '<span lang="ja" class="Jpan">' .. text .. '</span>' end
local function link(lemma, display) return ja('[[' .. lemma .. '#Bahasa_Jepun|' .. (display or lemma) .. ']]') end
local function link_bracket(lemma, display) return ja('【[[' .. lemma .. '#Bahsa_Jepun|' .. (display or lemma) .. ']]】') end
--[[ returns an array of definitions, each having the format
{ def = <definition>,
kanji_spellings = <array of alternative kanji spellings listed in {{ja-kanjitab|alt=...}}, can be overrided with {{ja-def|...}}>,
kana_spellings = <array of alternative kana spellings listed in the headword template>,
historical_kana_spellings = <array of historical kana spellings listed in the headword template>,
header = <name of PoS header>,
headword_line = <wikicode of headword line> }
]]
local function get_definitions_from_wikicode(wikicode)
local current_kanji_spellings = {}
local current_kanji_spellings_with_labels = {}
local current_kana_spellings = {}
local current_historical_kana_spellings = {}
local current_header
local current_headword_line
local currently_under_headword_line = false
wikicode = gsub(wikicode, '\n*<br */?>\n*({{ja%-altread)', '%1')
-- in the local function `function format_definition` below,
-- insertion of `|hira=` affects `{{tlb}}`
-- (`{{tlb|ja|followed by a verb phrase|hira=によって}}`)
-- and then that bad wikitext is preprocessed
-- (`The parameter "hira" is not used by this template`).
-- we are not doing anything with `{{tlb}}` anyway,
-- so remove it
wikicode = gsub(wikicode, ' *{{tlb.-}}', '')
local result = {}
for line in gmatch(match(wikicode, '==Bahasa Jepun==\n(.*)') or '', '[^\n]+') do
-- the following branches are ordered by frequency; read backwards
if currently_under_headword_line and find(line, '^#+[^#:*]') then
line = gsub(line, '<ref>.-<.ref>', '')
line = gsub(line, '<ref.-/>', '')
line = gsub(line, '{{attention|ja.-}}', '')
table.insert(result, { def = line,
kanji_spellings = find(line, '{{ja%-def|') and split(match(line, '{{ja%-def|([^}]+)'), '|')
or find(line, '<!%-%- kana only %-%->') and {}
or current_kanji_spellings,
kanji_spellings_with_labels = current_kanji_spellings_with_labels,
kana_spellings = current_kana_spellings,
historical_kana_spellings = current_historical_kana_spellings,
header = current_header,
headword_line = current_headword_line })
elseif find(line, '^{{ja%-noun[|}]')
or find(line, '^{{ja%-adj[|}]')
or find(line, '^{{ja%-pos[|}]')
or find(line, '^{{ja%-phrase[|}]')
or find(line, '^{{ja%-verb[|}]')
or find(line, '^{{ja%-verb form[|}]')
or find(line, '^{{ja%-verb%-suru[|}]')
or find(line, '{{ja%-altread[|}]') then
local escaped_line = gsub(gsub(line, '%[%[([^%[%]|]-)|([^%[%]|]-)%]%]', '[[%1`%2]]'), '|hkata=', '|hhira=')
escaped_line = gsub(escaped_line, '|hira=', '|') -- ja-altread
escaped_line = gsub(escaped_line, '|kata=', '|') -- ja-altread
current_kana_spellings = map(gmatch_array(escaped_line, '|([・、ぁ-ゖァ-ヺー%^%-%. %%]+)'), m_ja.remove_ruby_markup)
current_historical_kana_spellings = map(gmatch_array(escaped_line, '|hhira=([ぁ-ゖァ-ヺー%^%-%. %%]+)'), m_ja.remove_ruby_markup)
current_headword_line = line
currently_under_headword_line = true
elseif find(line, '^===+[^=]+===+$') then
current_header = match(line, '^===+([^=]+)===+$')
currently_under_headword_line = false
elseif find(line, '^{{ja%-kanjitab[|}]') then
local alt_argument = match(line, '|alt=([^|}]*)')
current_kanji_spellings = alt_argument and split(gsub(alt_argument, ':[^,]*', ''), ',') or {}
current_kanji_spellings_with_labels = alt_argument and split(alt_argument, ',') or {}
elseif line == '----' then
break
end
end
return result
end
-- ditto, except that each definition also contains the title of the page it is from
local function get_definitions_from_entry(title)
local wikicode = getContent_memo(title)
local defs = get_definitions_from_wikicode(wikicode)
map(defs, function(def)
def.title = title
table.insert(({ Hira = true, Kana = true, ['Hira+Kana'] = true })[m_ja.script(title)] and def.kana_spellings or def.kanji_spellings, title)
end)
return defs
end
local function get_definitions_from_entries(titles)
return flatten(map(titles, get_definitions_from_entry))
end
local function format_table_content(defs, frame)
local kanji_grade_labels = {
'<span class="explain" title="Grade 1 kanji" style="vertical-align: top;">1</span>',
'<span class="explain" title="Grade 2 kanji" style="vertical-align: top;">2</span>',
'<span class="explain" title="Grade 3 kanji" style="vertical-align: top;">3</span>',
'<span class="explain" title="Grade 4 kanji" style="vertical-align: top;">4</span>',
'<span class="explain" title="Grade 5 kanji" style="vertical-align: top;">5</span>',
'<span class="explain" title="Grade 6 kanji" style="vertical-align: top;">6</span>',
'<span class="explain" title="Jōyō kanji" style="vertical-align: top;">S</span>',
'<span class="explain" title="Jinmeiyō kanji" style="vertical-align: top;">J</span>',
'<span class="explain" title="Hyōgaiji kanji" style="vertical-align: top;">H</span>' }
local function ruby(kanji, kana) -- this function ought to be in [[Module:ja]]
local kanji_segments = gsub(kanji, "([A-Za-z0-9々一-鿿㐀-䶿﨎﨏﨑﨓﨔﨟﨡﨣﨤﨧-﨩𠀀-𪛟𪜀-𰀀-0-9A-Za-z]+)", "`%1`")
-- returns possible matches between kanji and kana
-- for example, match('`物`の`哀`れ', 'もののあわれ') returns { '[物](も)の[哀](のあわ)れ', '[物](もの)の[哀](あわ)れ' }
local function match(kanji_segments, kana)
if kanji_segments:find('`') then
local kana_portion, kanji_portion, rest = mw.ustring.match(kanji_segments, '(.-)`(.-)`(.*)')
_, _, kana = mw.ustring.find(kana, '^' .. kana_portion .. '(.*)')
if not kana then return {} end
local candidates = {}
for i = 1, mw.ustring.len(kana) do
for _, candidate in ipairs(match(rest, mw.ustring.sub(kana, i + 1))) do
table.insert(candidates, kana_portion .. '[' .. kanji_portion .. '](' .. mw.ustring.sub(kana, 1, i) .. ')' .. candidate)
end
end
return candidates
else
return (kanji_segments == kana) and { kana } or {}
end
end
local matches = match(kanji_segments, kana)
local result = #matches == 1 and matches[1] or ('[' .. kanji .. '](' .. kana .. ')')
return gsub(result, "%[([^%[%]]+)%]%(([^%(%)]+)%)", "<ruby><rb>%1</rb><rt>%2</rt></ruby>")
end
local function format_headword(defs)
local title = defs[1].title
local kana = defs[1].kana_spellings[1]
local headword = link_bracket(title, mw.title.getCurrentTitle().text == kana and title or ruby(title, kana))
local kanji_grade = len(title) == 1 and m_ja.kanji_grade(title)
return '<span style="font-size:x-large">' .. headword .. '</span>' .. (kanji_grade and kanji_grade_labels[kanji_grade] or '')
end
local preprocess_memo = memoize(function (s) return frame:preprocess(s) end)
local function format_definitions(defs)
local headword_line_categories = {}
local alt_forms = {}
local function format_definition(def)
local def_text = find(def.def, '{{rfdef[|}]') and "''Kata ini memerlukan terjemahan ke bahasa Melayu.''" or preprocess_memo(gsub(def.def, '^#+ *', ''))
local def_prefix = gsub(match(def.def, '^#+'), '#', ':')
local def_pos_label = ' <span style="padding-right:.6em;color:#5A5C5A;font-size:80%">[' .. mw.ustring.lower(def.header) .. ']</span> '
local headword_line = gsub(def.headword_line, '%%', '')
if ({ Hira = true, Kana = true, ['Hira+Kana'] = true })[m_ja.script(def.title)] then
headword_line = gsub(headword_line, '}}$', '|hira=' .. def.title .. '}}')
end
table.insert(headword_line_categories, table.concat(gmatch_array(preprocess_memo(headword_line), '%[%[Kategori:.-%]%]')))
map(def.kanji_spellings, function(s) if s ~= def.title and not contains(alt_forms, s) then table.insert(alt_forms, s) end end)
map(def.kana_spellings, function(s) if s ~= def.kana_spellings[1] and s ~= mw.title.getCurrentTitle().text and not contains(alt_forms, s) then table.insert(alt_forms, s) end end)
return def_prefix .. def_pos_label .. def_text
end
local formatted_defs = table.concat(map(defs, format_definition), '\n')
if #alt_forms == 1 and alt_forms[1] == mw.title.getCurrentTitle().text then alt_forms = {} end
return table.concat(headword_line_categories) .. '\n' .. formatted_defs
.. (#alt_forms > 0 and '\n: <div style="background:#f8f9fa"><span style="color:#5A5C5A;font-size:80%">'
.. (#alt_forms == 1 and 'Ejaan pilihan' or 'Ejaan alternatif')
.. '</span><br><span style="margin-left:.8em">'
.. table.concat(map(alt_forms, link), ', ')
.. '</span></div>' or '')
end
local is_first_row = true
local function format_row(defs)
local result = '|-\n| style="white-space:nowrap;width:15%;vertical-align:top;' .. (is_first_row and '' or 'border-top:1px solid lightgray;') .. '" | ' .. format_headword(defs)
.. '\n| style="' .. (is_first_row and '' or 'border-top:1px solid lightgray;') .. '" |\n' .. format_definitions(defs) .. '\n'
is_first_row = false
return result
end
local def_groups = group(defs, function(def) return def.title .. ',' .. def.kana_spellings[1] end)
local rows = map(def_groups, format_row)
return '{| style="width: 100%"\n' .. table.concat(rows) .. '|}'
end
function export.show(frame, mode)
local title = mw.title.getCurrentTitle().text
local lemmas, key
if not mode or mode == 'kango' then
local params = {
[1] = { list = true },
['key'] = {},
}
local args, unrecognized_args = require("Module:parameters").process(frame:getParent().args, params, true)
for key, value in pairs(unrecognized_args) do error("“" .. key .. "” is not a recognized parameter.") end
lemmas = args[1]
key = args.key or title
elseif mode == 'glyphvar' then
local params = {
[1] = {},
}
local args, unrecognized_args = require("Module:parameters").process(frame:getParent().args, params, true)
for key, value in pairs(unrecognized_args) do error("“" .. key .. "” is not a recognized parameter.") end
local wikicode = getContent_memo(args[1])
local _lemmas = flatten({ gmatch_array(wikicode, '{{ja%-see|([^}]+)'), gmatch_array(wikicode, '{{ja%-see%-kango|([^}]+)') })
_lemmas = flatten(map(_lemmas, function(arglist) return split(arglist, '|') end))
_lemmas = filter(_lemmas, function(arg) return not find(arg, '=') end)
_lemmas = set(flatten({ {args[1]}, _lemmas }))
lemmas = _lemmas
key = args[1]
end
local defs = get_definitions_from_entries(lemmas)
local matching_defs = filter(defs, function(def)
return contains(def.kanji_spellings, key) or contains(def.kana_spellings, key) or contains(def.historical_kana_spellings, key)
end)
local kanji_spelling_labels = matching_defs[1] and map(matching_defs[1]['kanji_spellings_with_labels'], function(arg) -- XXX: is matching_defs[1] sufficient?
local spelling_and_label = split(arg, ':')
return #spelling_and_label == 2 and spelling_and_label[1] == key and require("Module:labels").show_labels(split(spelling_and_label[2], ' '), require("Module:languages").getByCode("ja")) or nil
end)
local table_header = 'Untuk sebutan dan takrifan bagi ' .. ja(title) .. ' – lihat '
.. (#matching_defs == 0 and (table.concat(map(lemmas, function(title) return '<span style="font-size:120%">' .. link(title) .. '</span>' end), ', '))
or #group(matching_defs, function(def) return def.title end) == 1 and 'Masukan berikut'
or 'Masukan berikut')
.. '.'
local table_content = format_table_content(matching_defs, frame)
local table_footer = '(Kata ini, ' .. ja(title) .. ', ialah '
.. (#filter(matching_defs, function(def) return contains(def.historical_kana_spellings, key) and not contains(def.kana_spellings, key) end) == 0
and 'alternatif'
or ({ Hira = 'a historical hiragana[[Category:Japanese historical hiragana]]',
Kana = 'a historical katakana[[Category:Japanese historical katakana]]',
['Hira+Kana'] = 'a historical mixed kana[[Category:Japanese terms spelled with mixed historical kana]]' })[m_ja.script(title)]
or 'a historical')
.. (kanji_spelling_labels and #kanji_spelling_labels > 0 and
' ' .. table.concat(kanji_spelling_labels, '; '):gsub('terms with (.-) senses', '%1 forms'):gsub('dated terms', 'dated forms')
or '')
.. ' ejaan kata '
.. (mode == 'kango' and 'Cina-Jepun ' or '')
.. (#group(matching_defs, function(def) return def.title .. ',' .. def.kana_spellings[1] end) == 1 and 'di atas' or 'di atas') .. '.'
.. (m_ja.script(title) == 'Hira' and #filter(matching_defs, function(def) return match(def.title, '^[一-鿿㐀-䶿﨎﨏﨑﨓﨔﨟﨡﨣﨤﨧-﨩𠀀-𪛟𪜀-𰀀-]$') end) > 0
and mw.title.new('Kategori:Kanji bahasa Jepun dibaca sebagai ' .. title).exists
and ('<br><span style="font-size:85%;">For a list of all kanji read as ' .. ja(title) .. ', not just those used in Japanese terms, see '
.. '[[:Kategori:Kanji bahasa Jepun dibaca sebagai ' .. title .. ']].)</span>')
or ')')
local result = '{| class="wikitable ja-see" style="min-width:70%"\n|-\n| <b>'
.. table_header
.. '</b>' .. (#matching_defs > 0 and ('\n|-\n| style="background-color: white" |\n'
.. table_content
.. '\n|-\n| ') or '<br>')
.. table_footer
.. '\n|}'
if mode ~= 'glyphvar' then
local created_entries = set(map(matching_defs, function(def) return def.title end))
local uncreated_entries = set(filter(lemmas, function(lemma) return not contains(created_entries, lemma) end))
if #uncreated_entries > 0 then
result = result .. '\n<small class="attentionseeking">(' .. (#uncreated_entries == 1 and 'Masukan' or 'Masukan')
.. ' berikut belum dicipta: ' .. table.concat(map(uncreated_entries, link), ", ") .. '.)</small>[[Kategori:Pautan merah bahasa Jepun/ja-see]]'
end
end
result = gsub(result, '%[%[Kategori:Lema bahasa Jepun([|%]])', '[[Kategori:Bentuk bukan lema bahasa Jepun%1')
return result
end
function export.show_kango(frame)
return export.show(frame, 'kango')
end
function export.show_gv(frame)
return export.show(frame, 'glyphvar')
end
return export
09u3mlvu3yic8uqqo5sd50h8x9ubpqj
serawaj
0
23699
129794
129179
2022-08-21T13:48:25Z
Tofeiku
2269
kemas
wikitext
text/x-wiki
==Bahasa Sema==
===Takrifan===
====Kata sifat====
{{inti|sea|kata sifat}}
# [[belang]].
8r821ndj6zzjcbysm6ler9m3dig4k5w
galeh
0
23760
129792
129255
2022-08-21T13:47:09Z
Tofeiku
2269
kemas
wikitext
text/x-wiki
==Bahasa Semai==
===Takrifan===
====Kata sifat====
{{inti|sea|kata sifat}}
# [[degil]]
1w4xxz4wmrylprm763p12frt7imbl6i
sengngej
0
23774
129793
129271
2022-08-21T13:47:52Z
Tofeiku
2269
kemas
wikitext
text/x-wiki
==Bahasa Semai ==
===Takrifan===
====Kata sifat====
{{inti|sea|kata sifat}}
# [[sejuk]]
2qwdfzw7x0mzwhhmdjwi32oj03v0e4e
cor
0
23820
129778
129325
2022-08-21T13:04:24Z
Tofeiku
2269
kemas
wikitext
text/x-wiki
==Bahasa Semai==
===Takrifan===
====Kata sifat====
{{inti|sea|kata sifat}}
# [[pedih]]
d3ojrnkpr918czuoa0dtpduazexcb2x
renganj
0
23902
129795
129420
2022-08-21T13:49:05Z
Tofeiku
2269
kemas
wikitext
text/x-wiki
==Bahasa Semai==
===Takrifan===
====Kata sifat====
{{inti|sea|kata sifat}}
# [[merah]]
hf5ivyhihm3ocf99tnafbdh42x5t6tr
タービン
0
24128
129799
129762
2022-08-21T13:56:14Z
Tofeiku
2269
/* Japanese */
wikitext
text/x-wiki
==Bahasa Jepun==
{{wikipedia|lang=ja}}
=== Takrifan ===
==== Kata nama ====
{{ja-noun}}
# {{lb|ja|kejuruteraan|sort=たあびん}} [[turbin]]
=== Etimologi ===
Daripada {{bor|ja|en|turbine}}.
bvj1u1eo2w0a6767n2385j8r8d8zgfx
Osiriba
0
24134
129773
2022-08-21T12:50:05Z
Tofeiku
2269
Tofeiku telah memindahkan laman [[Osiriba]] ke [[osiriba]]: bukan kata nama khas
wikitext
text/x-wiki
#LENCONG [[osiriba]]
4qv2vus8qp88v6c7qlqx319zfuzrqyb
Olundus
0
24135
129785
2022-08-21T13:39:26Z
Tofeiku
2269
Tofeiku telah memindahkan laman [[Olundus]] ke [[olundus]]: bukan kata nama khas
wikitext
text/x-wiki
#LENCONG [[olundus]]
qidaanvr4tku5o23ds0xppu39d001gb
ドライヤー
0
24136
129800
2022-08-21T14:00:55Z
Tofeiku
2269
cipta
wikitext
text/x-wiki
==Bahasa Jepun==
===Takrifan===
====Kata nama====
{{ja-noun}}
# [[pengering]] {{gloss|perkakas}}
===Etimologi===
{{bor+|ja|en|dryer||pengering}}.
===Sebutan===
{{ja-pron|acc=0|acc_ref=DJR|acc2=2|acc2_ref=DJR}}
===Bentuk pilihan===
* {{q|tidak umum}} {{ja-r|ドライアー}}
===Tesaurus===
====Sinonim====
* {{ja-r|乾燥器|かんそうき}}
===References===
<references />
{{C|ja|Perkakas rumah}}
lz3fksp6vvqfuhvj660htahh9dr3htu
129801
129800
2022-08-21T14:01:06Z
Tofeiku
2269
cipta
wikitext
text/x-wiki
==Bahasa Jepun==
===Takrifan===
====Kata nama====
{{ja-noun}}
# [[pengering]] {{gloss|perkakas}}
===Etimologi===
{{bor+|ja|en|dryer||pengering}}.
===Sebutan===
{{ja-pron|acc=0|acc_ref=DJR|acc2=2|acc2_ref=DJR}}
===Bentuk pilihan===
* {{q|tidak umum}} {{ja-r|ドライアー}}
===Tesaurus===
====Sinonim====
* {{ja-r|乾燥器|かんそうき}}
===Rujukan===
<references />
{{C|ja|Perkakas rumah}}
o4wi4ioawf11w85gosd59sizyu6ulqv
Templat:bor+
10
24137
129802
2022-08-21T14:02:19Z
Tofeiku
2269
cipta
wikitext
text/x-wiki
{{glosari|loanword<!--
-->|{{#if:{{{nocap|}}}<!--
-->|d<!--
-->|D<!--
-->}}ipinjam}} daripada <!--
-->{{bor<!--
-->|{{{1|}}}<!--
-->|{{{2|}}}<!--
-->|{{{3|}}}<!--
-->|{{{4|{{{alt|}}}}}}<!--
-->|{{{5|{{{t|{{{gloss|}}}}}}}}}<!--
-->|lit={{{lit|}}}<!--
-->|pos={{{pos|}}}<!--
-->|tr={{{tr|}}}<!--
-->|ts={{{ts|}}}<!--
-->|id={{{id|}}}<!--
-->|sc={{{sc|}}}<!--
-->|g={{{g|}}}<!--
-->|g2={{{g2|}}}<!--
-->|g3={{{g3|}}}<!--
-->|nocat={{{nocat|}}}<!--
-->|sort={{{sort|}}}<!--
-->}}<!--
--><noinclude>{{pendokumenan}}</noinclude>
k3v2ibqgjiv544mgj8ddn9ektmoa08b
129806
129802
2022-08-21T14:08:24Z
Tofeiku
2269
terjemah
wikitext
text/x-wiki
{{glosari|kata pinjam<!--
-->|{{#if:{{{nocap|}}}<!--
-->|d<!--
-->|D<!--
-->}}ipinjam}} daripada <!--
-->{{bor<!--
-->|{{{1|}}}<!--
-->|{{{2|}}}<!--
-->|{{{3|}}}<!--
-->|{{{4|{{{alt|}}}}}}<!--
-->|{{{5|{{{t|{{{gloss|}}}}}}}}}<!--
-->|lit={{{lit|}}}<!--
-->|pos={{{pos|}}}<!--
-->|tr={{{tr|}}}<!--
-->|ts={{{ts|}}}<!--
-->|id={{{id|}}}<!--
-->|sc={{{sc|}}}<!--
-->|g={{{g|}}}<!--
-->|g2={{{g2|}}}<!--
-->|g3={{{g3|}}}<!--
-->|nocat={{{nocat|}}}<!--
-->|sort={{{sort|}}}<!--
-->}}<!--
--><noinclude>{{pendokumenan}}</noinclude>
8jpiehzt11xejxo9ermafr5jihz0br3
Templat:glosari
10
24138
129803
2022-08-21T14:03:17Z
Tofeiku
2269
cipta
wikitext
text/x-wiki
{{#invoke:glossary|link}}<!--
--><noinclude>
{{pendokumenan}}
</noinclude>
b43jqk3wtetvr19rsf66gq2w9cc1g7w
Modul:glossary
828
24139
129804
2022-08-21T14:04:58Z
Tofeiku
2269
cipta
Scribunto
text/plain
local export = {}
local gsub = mw.ustring.gsub
function format_def (term, definition)
local anchor = gsub(term, "%[%[([^%]]+)%]%]", "%1") -- Remove wikilinks
anchor = gsub(anchor, "^%w+:", "") -- Remove interwiki prefixes
return "; <span id=\""..anchor.."\">"..term.."</span>\n: "..definition
end
function export.def (frame)
local params = {
[1] = { required = true, default = "", },
[2] = { required = true, default = "", },
}
local args = require("Module:parameters").process(frame:getParent().args, params)
local term = args[1]
local definition = args[2]
return format_def (term, definition)
end
function export.link(frame)
local args = frame:getParent().args
for k, v in pairs(args) do
if not (k == 1 or k == 2) then
require "Module:debug".track "glossary/invalid argument"
require "Module:debug".track("glossary/invalid argument/" .. k)
mw.log("invalid argument in {{glosari}}: " .. k)
end
end
local anchor, text = args[1] or "", args[2]
if text and text:match "^%s*$" then
text = nil
end
-- This won't work if the initial letter is non-ASCII.
local lower_anchor = anchor:lower()
local data = mw.loadData("Module:glossary/data")
if data[anchor] then
return "[[lampiran:Glosari#" .. anchor .. "|" .. (text or anchor) .. "]]"
else
local link = "[[Lampiran:Glosari#" .. lower_anchor .. "|" .. (text or anchor) .. "]]"
if data[lower_anchor] or lower_anchor:find "^%s*$" then
return link
else
mw.log("The anchor " .. lower_anchor
.. (lower_anchor ~= anchor and " or " .. anchor or "")
.. " tidak wujud dalam Lampiran:Glosari.")
return link
.. "[[Kategori:Pages linking to anchors not found in Lampiran:Goodaei|"
.. lower_anchor .. "]]"
end
end
end
return export
6yl13puczhdi95pgkdg9a3zpj7jkhnm
Modul:glossary/data
828
24140
129805
2022-08-21T14:06:42Z
Tofeiku
2269
cipta
Scribunto
text/plain
local anchors = {}
for anchor in mw.title.new("Lampiran:Glosari"):getContent():gmatch("{{anchor|([^}]+)}}") do
anchors[anchor] = true
end
return anchors
8ijespgmcx0lu3fjcjqk3bxtrh2og67
Modul:etymology/templates/borrowed
828
24141
129808
2022-08-21T14:11:08Z
Tofeiku
2269
cipta
Scribunto
text/plain
local export = {}
function export.borrowed(frame)
local args, lang, term, sources = require("Module:etymology/templates/internal").parse_2_lang_args(frame)
if sources then
return require("Module:etymology/multi").format_multi_borrowed(lang, sources, term, args.sort, args.nocat, args.conj)
else
return require("Module:etymology").format_borrowed(lang, term, args.sort, args.nocat)
end
end
return export
2wenvc67iugvzhxiwy5qv5hywo2wzz9
Modul:etymology/templates/internal
828
24142
129809
2022-08-21T14:12:48Z
Tofeiku
2269
cipta
Scribunto
text/plain
-- For internal use only with [[Module:etymology/templates]] and its submodules.
local export = {}
function export.fetch_lang(lang, param)
return require("Module:languages").getByCode(lang, param)
end
function export.fetch_source(code, param, disallow_family)
return require("Module:languages").getByCode(code, param, true, not disallow_family)
end
local function fetch_sources(codes, param, disallow_family)
local m_languages = require("Module:languages")
codes = mw.text.split(codes, "%s*,%s*")
for i, code in ipairs(codes) do
codes[i] = m_languages.getByCode(code, param, true, not disallow_family)
end
return codes
end
function export.fetch_source_or_sources(source, param, disallow_family)
local sources
if source:find(",") then
sources = fetch_sources(source, param, no_family)
source = sources[#sources]
else
source = export.fetch_source(source, param, no_family)
end
return source, sources
end
function export.fetch_script(sc, param)
return require("Module:scripts").getByCode(sc, param)
end
function export.parse_2_lang_args(frame, has_text, no_family)
local params = {
[1] = {required = true, default = "und"},
[2] = {required = true, default = "und"},
[3] = {},
[4] = {alias_of = "alt"},
[5] = {alias_of = "t"},
["alt"] = {},
["cat"] = {},
["g"] = {list = true},
["gloss"] = {alias_of = "t"},
["id"] = {},
["lit"] = {},
["pos"] = {},
["t"] = {},
["tr"] = {},
["ts"] = {},
["sc"] = {},
["nocat"] = {type = "boolean"},
["sort"] = {},
["conj"] = {},
}
if has_text then
params["notext"] = {type = "boolean"}
params["nocap"] = {type = "boolean"}
end
local args = require("Module:parameters").process(frame:getParent().args, params)
local lang = export.fetch_lang(args[1], 1)
local source, sources = export.fetch_source_or_sources(args[2], 2, no_family)
local sc = export.fetch_script(args["sc"], "sc")
return args, lang, {
lang = source,
sc = sc,
term = args[3],
alt = args["alt"],
id = args["id"],
genders = args["g"],
tr = args["tr"],
ts = args["ts"],
gloss = args["t"],
pos = args["pos"],
lit = args["lit"]
}, sources
end
return export
9duq6puisyqx6d59rmi3rsi7e0116q0
Modul:scripts/findBestScript
828
24143
129810
2022-08-21T14:17:52Z
Tofeiku
2269
cipta
Scribunto
text/plain
return function (export, text, lang, scripts, forceDetect)
--[=[
Remove any HTML entities; catfix function in [[Module:utilities]]
adds tagging to a no-break space ( ), which contains Latin characters;
hence Latin was returned as the script if "Latn" is one of the language's scripts.
]=]
text = string.gsub(text, "&[a-zA-Z0-9]+;", "")
-- Try to match every script against the text,
-- and return the one with the most matching characters.
local bestcount = 0
local bestscript = nil
-- Get length of text minus any spacing or punctuation characters.
-- Counting instances of UTF-8 character pattern is faster than mw.ustring.len.
local _, length = string.gsub(mw.ustring.gsub(text, "[%s%p]+", ""), "[\1-\127\194-\244][\128-\191]*", "")
if length == 0 then
return export.getByCode("None")
end
for i, script in ipairs(scripts) do
local count = script:countCharacters(text)
if count >= length then
return script
end
if count > bestcount then
bestcount = count
bestscript = script
end
end
if bestscript then
return bestscript
end
-- No matching script was found. Return "None".
return export.getByCode("None")
end
2k718fyv9gb6qdxf079j9elt4xfrl9m
Modul:etymology/multi
828
24144
129812
2022-08-21T14:24:55Z
Tofeiku
2269
cipta
Scribunto
text/plain
local export = {}
local m_etymology = require("Module:etymology")
-- For testing
local force_cat = false
function export.format_sources(lang, sources, terminfo, sort_key, categories, nocat, conj)
local m_utilities
if lang and not nocat then
m_utilities = require("Module:utilities")
end
local m_links = require("Module:links")
local source_segs = {}
for i, source in ipairs(sources) do
local seg
if i < #sources and terminfo.term ~= "-" then
local display, this_cats = m_etymology.insert_source_cat_get_display(categories, lang, source, true, nocat)
seg = m_links.language_link({
lang = source, term = terminfo.term, alt = display, tr = "-"
}, true)
if lang and not nocat then
-- Format categories, but only if there is a current language; {{cog}} currently gets no categories
this_cats = m_utilities.format_categories(this_cats, lang, sort_key, nil, force_cat)
else
this_cats = ""
end
seg = "<span class=\"etyl\">" .. seg .. this_cats .. "</span>"
else
seg = m_etymology.format_etyl(lang, source, sort_key, categories, nocat)
end
table.insert(source_segs, seg)
end
return require("Module:table").serialCommaJoin(source_segs, conj and {conj = conj})
end
-- Internal implementation of {{cognate|...}} template with multiple source languages
function export.format_multi_cognate(sources, terminfo, sort_key, conj)
return export.format_multi_derived(nil, sources, terminfo, sort_key, nil, conj, "cognate")
end
-- Internal implementation of {{derived|...}} template with multiple source languages
function export.format_multi_derived(lang, sources, terminfo, sort_key, nocat, conj, template_name)
return export.format_sources(lang, sources, terminfo, sort_key, nil, nocat, conj) ..
m_etymology.process_and_create_link(terminfo, template_name)
end
function export.format_multi_borrowed(lang, sources, terminfo, sort_key, nocat, conj)
local categories = {}
if not nocat then
for _, source in ipairs(sources) do
m_etymology.insert_borrowed_cat(categories, lang, source)
end
end
return export.format_sources(lang, sources, terminfo, sort_key, categories, nocat, conj) ..
m_etymology.process_and_create_link(terminfo, "borrowed")
end
return export
t3qi4u2xls3prz069hzi626gwa2jvet
Lampiran:Cangjie Cina
100
24145
129818
2022-08-21T15:01:27Z
Tofeiku
2269
cipta
wikitext
text/x-wiki
{{Cangjie TOC}}
{{wikipedia|Kaedah masukan Cangjie}}
"'''Kaedah masukan [[Cāngjié]]'''" ([[Cina Ringkas]]: [[仓颉输入法]]; [[Cina Tradisional]]: [[倉頡輸入法]]) ialah kaedah masukan aksara bahasa Cina yang dicipta oleh Chu Bong-Foo, dinamakan sempena pencipta legenda aksara bahasa Cina. Sistem ini berdasarkan bentuk suatu aksara.
Indeks ini bergantung pada ''kCangjie'' Pangkalan Data Unihan.
[[Kategori:Lampiran bahasa Cina]]
mxfxjsrf2fz3mmpngm042bd0qb7g4nl
129820
129818
2022-08-21T15:02:33Z
Tofeiku
2269
Tofeiku telah memindahkan laman [[Wiktionary:Cangjie Cina]] ke [[Lampiran:Cangjie Cina]]: sepadan
wikitext
text/x-wiki
{{Cangjie TOC}}
{{wikipedia|Kaedah masukan Cangjie}}
"'''Kaedah masukan [[Cāngjié]]'''" ([[Cina Ringkas]]: [[仓颉输入法]]; [[Cina Tradisional]]: [[倉頡輸入法]]) ialah kaedah masukan aksara bahasa Cina yang dicipta oleh Chu Bong-Foo, dinamakan sempena pencipta legenda aksara bahasa Cina. Sistem ini berdasarkan bentuk suatu aksara.
Indeks ini bergantung pada ''kCangjie'' Pangkalan Data Unihan.
[[Kategori:Lampiran bahasa Cina]]
mxfxjsrf2fz3mmpngm042bd0qb7g4nl
Wiktionary:Cangjie Cina
4
24146
129821
2022-08-21T15:02:33Z
Tofeiku
2269
Tofeiku telah memindahkan laman [[Wiktionary:Cangjie Cina]] ke [[Lampiran:Cangjie Cina]]: sepadan
wikitext
text/x-wiki
#LENCONG [[Lampiran:Cangjie Cina]]
dbxj5dn9tvzvfk30c954kdlnd2j278n
popionit
0
24147
129822
2022-08-21T15:10:15Z
Tofeiku
2269
cipta
wikitext
text/x-wiki
==Bahasa Kadazandusun==
===Takrifan===
{{dtp-varian|bl=popionit|b=popionit|l=|t=}}
====Kata kerja====
{{inti|dtp|kata kerja}}
# [[mencantumkan]].
===Sebutan===
* {{AFA|dtp|/po.pio.nit/}}
* {{rima|dtp|it}}
* {{penyempangan|dtp|po|pio|nit}}
===Kata majmuk===
* {{l|dtp|boros popionit}}
===Rujukan===
* {{R:Daftar Kata BKD-BM|2=130}}
mf6vpltklzk8uh0ocej105munxb507t
magansak
0
24148
129823
2022-08-21T15:13:34Z
Tofeiku
2269
cipta
wikitext
text/x-wiki
==Bahasa Kadazandusun==
===Takrifan===
{{dtp-varian|bl=magansak|b=magansak|l=|t=}}
====Kata kerja====
{{inti|dtp|kata kerja}}
# [[memasak]].
===Sebutan===
* {{AFA|dtp|/ma.ɡan.sak/}}
* {{rima|dtp|ak}}
* {{penyempangan|dtp|ma|gan|sak}}
===Rujukan===
* {{R:Daftar Kata BKD-BM|2=63}}
1nft0dn5178crvacon1pevse0atcs84
浴びる
0
24149
129824
2022-08-21T15:22:03Z
Tofeiku
2269
cipta
wikitext
text/x-wiki
==Bahasa Jepun==
{{ja-kanjitab|あ|yomi=k}}
===Takrifan===
====Kata kerja====
{{ja-verb|type=2|tr=both|あびる}}
{{ja-vp|浴びせる|浴びる|あびせる|あびる}}
# [[mandi]]
===Sebutan===
{{ja-pron|あびる|acc=0|acc_ref=DJR}}
{{ja-ojad}}
====Konjugasi====
{{ja-ichi|あび}}
====Kata berkaitan====
* {{ja-r|浴びせる|あびせる}}
===Rujukan===
<references/>
nbrff2d27ydqrz0d87rjb4yrhtc0si9
oniting
0
24150
129827
2022-08-22T03:48:25Z
Tofeiku
2269
cipta
wikitext
text/x-wiki
==Bahasa Kadazandusun==
===Takrifan===
{{dtp-varian|bl=oniting|b=|l=|t=}}
====Kata sifat====
{{inti|dtp|kata sifat}}
# [[jernih]].
===Sebutan===
* {{AFA|dtp|/o.ni.tiŋ/}}
* {{rima|dtp|iŋ}}
* {{penyempangan|dtp|o|ni|ting}}
===Rujukan===
* {{R:Daftar Kata BKD-BM|2=104}}
p6gg1o1ho62p9o0wlkjwwop4auyydfd
エアインテーク
0
24151
129828
2022-08-22T07:04:23Z
PeaceSeekers
3334
Mencipta laman baru dengan kandungan '== Bahasa Jepun == {{Wikipedia|lang=ja}} === Takrifan === ==== Kata nama ==== {{ja-noun|エア インテーク}} # {{lb|ja|kejuruteraan}} Pengambilan udara #: {{synonyms|ja|空気吸入口|空気取入口}} === Etimologi === Daripada {{bor|ja|en|air intake}}.'
wikitext
text/x-wiki
== Bahasa Jepun ==
{{Wikipedia|lang=ja}}
=== Takrifan ===
==== Kata nama ====
{{ja-noun|エア インテーク}}
# {{lb|ja|kejuruteraan}} Pengambilan udara
#: {{synonyms|ja|空気吸入口|空気取入口}}
=== Etimologi ===
Daripada {{bor|ja|en|air intake}}.
bafy1s3g10it3s36mvoubalv43qy76i
Templat:ja-lihat
10
24152
129829
2022-08-22T07:04:46Z
Tofeiku
2269
cipta
wikitext
text/x-wiki
<includeonly>{{#invoke:ja-see|show}}</includeonly><noinclude>{{pendokumenan}}</noinclude>
ts39p1npiuuqf7bbnkg55k5z6sv1irw
飛び降りる
0
24153
129830
2022-08-22T07:06:08Z
Tofeiku
2269
cipta
wikitext
text/x-wiki
==Bahasa Jepun==
{{ja-kanjitab|と|お|yomi=k}}
{{ja-lihat|とびおりる}}
7ddcnlz3vxfwocs4ygn57opov92ygm8
コア
0
24154
129831
2022-08-22T07:07:07Z
PeaceSeekers
3334
Mencipta laman baru dengan kandungan '== Bahasa Jepun == {{Wikipedia|lang=ja}} === Takrifan === ==== Kata nama ==== {{ja-kn}} # {{lb|ja|kejuruteraan|pengkomputan}} [[teras]] # {{lb|ja|only in compounds}} teras; [[penting]] === Kata sifat === {{ja-adj|infl=na}} # {{lb|ja|slanga}} [[tegar]], [[fanatik]] #: {{ja-usex|'''コア''' な [[ファン]]|peminat tegar}} === Etimologi === Daripada {{bor|ja|en|core|sort=こあ}}. === Sebutan === {{ja-pron|acc=1|acc_ref=DJR}} === Lihat juga ===...'
wikitext
text/x-wiki
== Bahasa Jepun ==
{{Wikipedia|lang=ja}}
=== Takrifan ===
==== Kata nama ====
{{ja-kn}}
# {{lb|ja|kejuruteraan|pengkomputan}} [[teras]]
# {{lb|ja|only in compounds}} teras; [[penting]]
=== Kata sifat ===
{{ja-adj|infl=na}}
# {{lb|ja|slanga}} [[tegar]], [[fanatik]]
#: {{ja-usex|'''コア''' な [[ファン]]|peminat tegar}}
=== Etimologi ===
Daripada {{bor|ja|en|core|sort=こあ}}.
=== Sebutan ===
{{ja-pron|acc=1|acc_ref=DJR}}
=== Lihat juga ===
* {{ja-r|中心|ちゅうしん}}
* {{ja-r|核|かく}}
=== Rujukan ===
<references />
qsw2ddp15nr8yzwtdgbpx0p5ae4ddws
とびおりる
0
24155
129832
2022-08-22T07:07:52Z
Tofeiku
2269
cipta
wikitext
text/x-wiki
==Bahasa Jepun==
{{ja-kanjitab|alt=飛び降りる,飛降りる:dated,飛び下りる,飛下りる:dated}}
===Takrifan===
====Kata kerja====
{{ja-verb|type=2}}
# [[lompat]] ke bawah dari; lompat
===Sebutan===
{{ja-pron|acc=4|acc_ref=DJR}}
====Konjugasi====
{{ja-ichi}}
====Kata terbitan====
* {{ja-r|飛び降り自殺|とびおり じさつ|bunuh diri dengan melompat}}
===Rujukan===
<references/>
fm33wwz9yq26n3x1yt9s8hyodj849rw
129833
129832
2022-08-22T07:08:34Z
Tofeiku
2269
kemas
wikitext
text/x-wiki
==Bahasa Jepun==
{{ja-kanjitab|alt=飛び降りる,飛降りる:dated,飛び下りる,飛下りる:dated}}
===Takrifan===
====Kata kerja====
{{ja-verb|type=2}}
# [[lompat]] ke bawah dari; lompat
===Sebutan===
{{ja-pron|acc=4|acc_ref=DJR}}
====Konjugasi====
{{ja-ichi}}
====Kata terbitan====
* {{ja-r|飛び降り自殺|とびおり じさつ|bunuh diri dengan melompat}}
===Rujukan===
<references/>
ded5du74chv9ans5x6s1pmkvedzqjv1
129841
129833
2022-08-22T07:20:07Z
Tofeiku
2269
terjemah
wikitext
text/x-wiki
==Bahasa Jepun==
{{ja-kanjitab|alt=飛び降りる,飛降りる:usang,飛び下りる,飛下りる:usang}}
===Takrifan===
====Kata kerja====
{{ja-verb|type=2}}
# [[lompat]] ke bawah dari; lompat
===Sebutan===
{{ja-pron|acc=4|acc_ref=DJR}}
====Konjugasi====
{{ja-ichi}}
====Kata terbitan====
* {{ja-r|飛び降り自殺|とびおり じさつ|bunuh diri dengan melompat}}
===Rujukan===
<references/>
7mn8c1ovpkqmt4ne9isual318mwmypb
サーボ
0
24156
129834
2022-08-22T07:09:31Z
PeaceSeekers
3334
Mencipta laman baru dengan kandungan '== Bahasa Jepun == {{Wikipedia|lang=ja}} === Takrifan === ==== Kata nama ==== {{ja-kn}} # {{lb|ja|kejuruteraan}} {{short for|ja|サーボ機構}} === Etimologi === Pinjaman {{bor|ja|en|servo}}. === Sebutan === {{ja-pron|acc=1|acc_ref=DJR}} === Rujukan === <references />'
wikitext
text/x-wiki
== Bahasa Jepun ==
{{Wikipedia|lang=ja}}
=== Takrifan ===
==== Kata nama ====
{{ja-kn}}
# {{lb|ja|kejuruteraan}} {{short for|ja|サーボ機構}}
=== Etimologi ===
Pinjaman {{bor|ja|en|servo}}.
=== Sebutan ===
{{ja-pron|acc=1|acc_ref=DJR}}
=== Rujukan ===
<references />
0guoquessbccscu6i54p8yqvaantsm7
Modul:ja/data/kyu
828
24157
129836
2022-08-22T07:12:14Z
Tofeiku
2269
cipta
Scribunto
text/plain
-- part 1: Joyo official 新字体 - 旧字体
-- part 2: Joyo kyujitai unlisted 新字体 - 旧字体
-- part 3: Joyo extended 拡張新字体 - 常用漢字字体
-- part 4: Jimeyo official 新字体 - 旧字体
-- part 5: Jimeyo kyujitai unlisted 新字体 - 旧字体
-- part 6: Hyogai 簡易慣用字体 - 印刷標準字体
-- part 7: Hyogai kyujitai unlisted 印刷標準字体(新字体) - 旧字体
-- part 8: Hyogai extended 拡張新字体 - 印刷標準字体
-- part 9: Joyo 新字体 - 旧字体 (unsupported title)
-- part 10: Jimeyo 新字体 - 旧字体 (unsupported title)
return {[[
亜亞 悪惡 圧壓 囲圍 医醫 為爲 壱壹 隠隱 栄榮 営營
衛衞 駅驛 円圓 塩鹽 縁緣 艶艷 応應 欧歐 殴毆 桜櫻
奥奧 横橫 温溫 穏穩 仮假 価價 画畫 会會 絵繪 壊壞
懐懷 概槪 拡擴 殻殼 覚覺 学學 岳嶽 楽樂 渇渴 缶罐
巻卷 陥陷 勧勸 寛寬 関關 歓歡 観觀 気氣 帰歸 亀龜
偽僞 戯戲 犠犧 旧舊 拠據 挙擧 虚虛 峡峽 挟挾 狭狹
郷鄕 暁曉 区區 駆驅 勲勳 薫薰 径徑 茎莖 恵惠 掲揭
渓溪 経經 蛍螢 軽輕 継繼 鶏鷄 芸藝 撃擊 欠缺 研硏
県縣 倹儉 剣劍 険險 圏圈 検檢 献獻 権權 顕顯 験驗
厳嚴 戸戶 広廣 効效 恒恆 黄黃 鉱鑛 号號 国國 黒黑
済濟 斎齋 砕碎 剤劑 雑雜 参參 桟棧 蚕蠶 惨慘 賛贊
残殘 糸絲 歯齒 児兒 辞辭 湿濕 実實 写寫 釈釋 寿壽
収收 従從 渋澁 獣獸 縦縱 粛肅 処處 緒緖 叙敍 将將
称稱 渉涉 焼燒 証證 奨奬 条條 状狀 乗乘 浄淨 剰剩
畳疊 縄繩 壌壤 嬢孃 譲讓 醸釀 触觸 嘱囑 真眞 寝寢
慎愼 尽盡 図圖 粋粹 酔醉 穂穗 随隨 髄髓 枢樞 数數
瀬瀨 声聲 斉齊 静靜 窃竊 摂攝 専專 浅淺 戦戰 践踐
銭錢 潜潛 繊纖 禅禪 双雙 壮壯 争爭 荘莊 捜搜 挿插
巣巢 曽曾 痩瘦 装裝 総總 騒騷 増增 蔵藏 臓臟 即卽
属屬 続續 堕墮 対對 体體 帯帶 滞滯 台臺 滝瀧 択擇
沢澤 担擔 単單 胆膽 団團 断斷 弾彈 遅遲 痴癡 虫蟲
昼晝 鋳鑄 庁廳 徴徵 聴聽 鎮鎭 逓遞 鉄鐵 点點 転轉
伝傳 灯燈 当當 党黨 盗盜 稲稻 闘鬭 徳德 独獨 読讀
届屆 弐貳 悩惱 脳腦 覇霸 拝拜 廃廢 売賣 麦麥 発發
髪髮 抜拔 晩晚 蛮蠻 秘祕 浜濱 瓶甁 払拂 仏佛 併倂
並竝 餅餠 辺邊 変變 歩步 宝寶 豊豐 褒襃 翻飜 毎每
万萬 満滿 麺麵 黙默 弥彌 訳譯 薬藥 与與 予豫 余餘
誉譽 揺搖 様樣 謡謠 来來 頼賴 乱亂 覧覽 竜龍 両兩
猟獵 緑綠 涙淚 塁壘 礼禮 励勵 戻戾 霊靈 齢齡 暦曆
歴歷 恋戀 錬鍊 炉爐 労勞 郎郞 楼樓 録錄 湾灣
飲飮 鋭銳 閲閱 悦悅 顔顏 告吿 舎舍 尚尙 呉吳 娯娛
告吿 歳歲 産產 青靑 清淸 税稅 説說 絶絕 脱脫 内內
舗舖
剥剝 頬頰 填塡 篭籠
亘亙 凜凛 尭堯 巌巖 桧檜 槙槇 祢禰 祷禱 禄祿 穣穰 遥遙
聡聰 彦彥
唖啞 頴穎 鴎鷗 撹攪 麹麴 鹸鹼 噛嚙 繍繡 蒋蔣 醤醬 掻搔
祷禱 桝枡 屏屛 并幷 蝋蠟 沪濾 芦蘆 弯彎
讃讚
嘘噓 焔焰 躯軀 屡屢 莱萊 騨驒 蝉蟬 箪簞 掴摑 顛顚 涜瀆
嚢囊 溌潑 醗醱 繋繫 蛎蠣 竃竈 潅灌 諌諫 頚頸 賎賤 壷壺
砺礪 梼檮 涛濤 迩邇 蝿蠅 侭儘 薮藪 褝襌
逸逸 謁謁 禍禍 悔悔 海海
慨慨 喝喝 褐褐 漢漢 祈祈
既既 器器 響響 勤勤 謹謹
穀穀 殺殺 祉祉 視視 社社
者者 煮煮 臭臭 祝祝 暑暑
署署 諸諸 祥祥 神神 節節
祖祖 僧僧 層層 憎憎 贈贈
嘆嘆 著著 懲懲 塚塚 都都
突突 難難 梅梅 繁繁 卑卑
碑碑 賓賓 頻頻 敏敏 侮侮
福福 塀塀 勉勉 墨墨 免免
欄欄 隆隆 虜虜 類類 練練
朗朗 廊廊
渚謁 猪猪 琢琢 祐祐 禎禎
]]}
-- ref part 1: Joyo 新字体 - 旧字体 (ambiguous)
--[[
highly ambiguous:
弁 弁辨瓣辯
other (variant character/very rare, treated as part 1):
缶 缶罐
既 既旣
芸 芸藝
欠 欠缺
糸 糸絲
証 証證
体 体體
台 台臺
灯 灯燈
虫 虫蟲
闘 闘鬭
浜 浜濱
予 予豫
余 余餘
礼 礼禮
缶 缶罐
既 既旣
]]
-- ref part 2: Joyo "情報機器に搭載されている印刷文字字体の関係で"
--[[
餌・遡・遜・謎・餅・淫・葛・僅・煎・詮・嘲・捗・溺・塡・賭・剝・箸・蔽・頰
]]
-- ref part 3: unofficial or disputed (seen as variant forms rather than old forms)
--[[
Joyo:
*回囘 *却卻 *糾糺 *間閒 *強强 *教敎 *群羣 *携攜 *冴冱
*冊册 *床牀 *姉姊 *刃刄 *跡蹟 *窓窗 *勅敕 *妊姙 *粘黏
*姫姬 *没沒 *欲慾 *鎌鐮 *略畧 *隣鄰 *隷隸
*契契 *着著 *旅旅 *廉廉 *羽羽
*益益 *館館 *飼飼 *晴晴 *精精
*飯飯
Jimeyo (not kyujitai):
**晃晄 **萌萠
Jimeyo (not listed):
***晋晉
Hyogai:
***瑶瑤
]]
6xb170ogi5xt736f8y3myzjia4r04ko
乗駕
0
24158
129837
2022-08-22T07:13:14Z
PeaceSeekers
3334
Mencipta laman baru dengan kandungan '== Bahasa Jepun == {{DEFAULTSORT:しょうが'}} {{ja-kanjitab|yomi=goon,kanyoon|じょう|が}} === Takrifan === ==== Kata nama ==== {{ja-noun|じょうが}} # {{lb|ja|penternakan|kejuruteraan}} [[cagak]] ==== Kata kerja ==== {{ja-verb-suru|じょうが|tr=transitif}} # {{lb|ja|penternakan|kejuruteraan}} Melakukan cagak. ====Konjugasi==== {{ja-suru|じょうが}} === Etimologi === {{compound|ja|乗|tr1=jō|t1=tunggang|駕|tr2=ga|t2=pandu; tungg...'
wikitext
text/x-wiki
== Bahasa Jepun ==
{{DEFAULTSORT:しょうが'}}
{{ja-kanjitab|yomi=goon,kanyoon|じょう|が}}
=== Takrifan ===
==== Kata nama ====
{{ja-noun|じょうが}}
# {{lb|ja|penternakan|kejuruteraan}} [[cagak]]
==== Kata kerja ====
{{ja-verb-suru|じょうが|tr=transitif}}
# {{lb|ja|penternakan|kejuruteraan}} Melakukan cagak.
====Konjugasi====
{{ja-suru|じょうが}}
=== Etimologi ===
{{compound|ja|乗|tr1=jō|t1=tunggang|駕|tr2=ga|t2=pandu; tunggang}}.
=== Sebutan ===
{{ja-pron|yomi=o|じょうが|acc=1}}
===Rujukan===
* {{R:Nipponica}}
bjabskazk5n5zwgjlswllijjb6b0bbc
129838
129837
2022-08-22T07:13:26Z
PeaceSeekers
3334
/* Rujukan */
wikitext
text/x-wiki
== Bahasa Jepun ==
{{DEFAULTSORT:しょうが'}}
{{ja-kanjitab|yomi=goon,kanyoon|じょう|が}}
=== Takrifan ===
==== Kata nama ====
{{ja-noun|じょうが}}
# {{lb|ja|penternakan|kejuruteraan}} [[cagak]]
==== Kata kerja ====
{{ja-verb-suru|じょうが|tr=transitif}}
# {{lb|ja|penternakan|kejuruteraan}} Melakukan cagak.
====Konjugasi====
{{ja-suru|じょうが}}
=== Etimologi ===
{{compound|ja|乗|tr1=jō|t1=tunggang|駕|tr2=ga|t2=pandu; tunggang}}.
=== Sebutan ===
{{ja-pron|yomi=o|じょうが|acc=1}}
6ds11gn6aa42qixgcr3qnqrl9nw7iel
公差
0
24159
129839
2022-08-22T07:17:25Z
PeaceSeekers
3334
Mencipta laman baru dengan kandungan '==Japanese== {{ja-kanjitab}} ===Noun=== {{ja-noun|こうさ}} # {{lb|ja|matematik|sort=こうさ}} [[beza sepunya]] (dalam [[janjang]]) # {{lb|ja|statistik|kejuruteraan|sort=こうさ}} [[basi]]; [[kelonggaran]]'
wikitext
text/x-wiki
==Japanese==
{{ja-kanjitab}}
===Noun===
{{ja-noun|こうさ}}
# {{lb|ja|matematik|sort=こうさ}} [[beza sepunya]] (dalam [[janjang]])
# {{lb|ja|statistik|kejuruteraan|sort=こうさ}} [[basi]]; [[kelonggaran]]
r58y1p7flt8mqw7vsdyn2adxt6886pr
延長線
0
24160
129842
2022-08-22T07:20:16Z
PeaceSeekers
3334
Mencipta laman baru dengan kandungan '== Bahasa Jepun == {{DEFAULTSORT:えんちょうせん'}} {{ja-kanjitab|えん|ちょう|せん|yomi=o}} {{Wikipedia|lang=ja}} === Takrifan === ==== Kata nama ==== {{ja-noun|えんちょうせん|hhira=えんちやうせん}} # {{lb|ja|geometri|kejuruteraan}} Garisan yang dipanjangkan. # {{lb|ja|pengangkutan}} Sambungan atau pemanjangan laluan trafik. # {{lb|ja|kiasan}} Kesan sampingan atau terbitan. === Sebutan === {{ja-pron|えんちょうせん|...'
wikitext
text/x-wiki
== Bahasa Jepun ==
{{DEFAULTSORT:えんちょうせん'}}
{{ja-kanjitab|えん|ちょう|せん|yomi=o}}
{{Wikipedia|lang=ja}}
=== Takrifan ===
==== Kata nama ====
{{ja-noun|えんちょうせん|hhira=えんちやうせん}}
# {{lb|ja|geometri|kejuruteraan}} Garisan yang dipanjangkan.
# {{lb|ja|pengangkutan}} Sambungan atau pemanjangan laluan trafik.
# {{lb|ja|kiasan}} Kesan sampingan atau terbitan.
=== Sebutan ===
{{ja-pron|えんちょうせん|y=o|acc=0|acc_ref=DJR}}
qraz3ybd3aulfkzwmax5jx0xhedj5uk
129843
129842
2022-08-22T07:20:37Z
PeaceSeekers
3334
wikitext
text/x-wiki
== Bahasa Jepun ==
{{DEFAULTSORT:えんちょうせん'}}
{{ja-kanjitab|えん|ちょう|せん|yomi=o}}
{{Wikipedia|lang=ja}}
=== Takrifan ===
==== Kata nama ====
{{ja-noun|えんちょうせん|hhira=えんちやうせん}}
# {{lb|ja|geometri|kejuruteraan}} Garisan yang dipanjangkan.
# {{lb|ja|pengangkutan}} Sambungan atau pemanjangan laluan trafik.
# {{lb|ja|kiasan}} Kesan sampingan atau terbitan.
=== Sebutan ===
{{ja-pron|えんちょうせん|y=o|acc=0|acc_ref=DJR}}
=== Rujukan ===
<references />
euapaby43r05ukb7jx9nueyh1gwle3c
張力
0
24161
129844
2022-08-22T07:23:08Z
PeaceSeekers
3334
Mencipta laman baru dengan kandungan '{{also|张力}} == Bahasa Cina == {{zh-forms|s=张力}} === Takrifan === ==== Kata nama ==== {{zh-noun}} # {{lb|zh|fizik|kejuruteraan}} [[tegangan]] ===== Terbitan kata ===== {{zh-der|表面張力|肌張力}} === Sebutan === {{zh-pron |m=zhānglì |c=zoeng1 lik6 |cat=n }} == Bahasa Jepun == {{DEFAULTSORT:ちょうりょく}} {{ja-kanjitab|ちょう|りょく|yomi=on}} === Takrifan === ==== Kata nama ==== {{ja-noun|ちょうりょく}} # {{lb|j...'
wikitext
text/x-wiki
{{also|张力}}
== Bahasa Cina ==
{{zh-forms|s=张力}}
=== Takrifan ===
==== Kata nama ====
{{zh-noun}}
# {{lb|zh|fizik|kejuruteraan}} [[tegangan]]
===== Terbitan kata =====
{{zh-der|表面張力|肌張力}}
=== Sebutan ===
{{zh-pron
|m=zhānglì
|c=zoeng1 lik6
|cat=n
}}
== Bahasa Jepun ==
{{DEFAULTSORT:ちょうりょく}}
{{ja-kanjitab|ちょう|りょく|yomi=on}}
=== Takrifan ===
==== Kata nama ====
{{ja-noun|ちょうりょく}}
# {{lb|ja|fizik|kejuruteraan}} [[tegangan]]
93yfz1lsprnonlyqazmja6r1mh4ueh2
张力
0
24162
129845
2022-08-22T07:23:29Z
PeaceSeekers
3334
Mencipta laman baru dengan kandungan '{{also|張力}} ==Chinese== {{zh-see|張力}}'
wikitext
text/x-wiki
{{also|張力}}
==Chinese==
{{zh-see|張力}}
ggjh9yw1n71eunjfo6a3ijrxi14qhlb
有段
0
24163
129846
2022-08-22T07:26:29Z
PeaceSeekers
3334
Mencipta laman baru dengan kandungan '== Bahasa Jepun == {{ja-kanjitab|ゆう|だん|yomi=o}} === Takrifan === ==== Kata nama ==== {{ja-noun|ゆうだん|hhira=いうだん}} # Memiliki peringkat atau pangkat ''dan''. # {{lb|ja|kejuruteraan|arkeologi|sort=ゆうだん}} Mempunyai [[tahap]] atau [[peringkat]]. === Sebutan === {{ja-pron|ゆうだん|acc=0|acc_ref=DJR}}'
wikitext
text/x-wiki
== Bahasa Jepun ==
{{ja-kanjitab|ゆう|だん|yomi=o}}
=== Takrifan ===
==== Kata nama ====
{{ja-noun|ゆうだん|hhira=いうだん}}
# Memiliki peringkat atau pangkat ''dan''.
# {{lb|ja|kejuruteraan|arkeologi|sort=ゆうだん}} Mempunyai [[tahap]] atau [[peringkat]].
=== Sebutan ===
{{ja-pron|ゆうだん|acc=0|acc_ref=DJR}}
dnijauxvwt46p1jq51n4v3tuxtoo762
絶縁
0
24164
129849
2022-08-22T07:30:09Z
PeaceSeekers
3334
Mencipta laman baru dengan kandungan '== Bahasa Jepun == {{DEFAULTSORT:ぜつえん}} {{wikipedia|lang=ja}} {{ja-kanjitab|ぜつ|えん|yomi=o}} === Takrifan === ==== Kata nama ==== {{ja-noun|ぜつえん}} # Pemutusan [[hubungan]] atau [[sentuhan]]. # {{lb|ja|kejuruteraan}} [[penebatan]]; [[pengasingan]] ==== Kata kerja ==== {{ja-verb-suru|ぜつえん}} # Memutuskan hubungan # {{lb|ja|kejuruteraan}} Mengasingkan atau menebatkan ===== Konjugasi ===== {{ja-suru|ぜつえん}} ==== T...'
wikitext
text/x-wiki
== Bahasa Jepun ==
{{DEFAULTSORT:ぜつえん}}
{{wikipedia|lang=ja}}
{{ja-kanjitab|ぜつ|えん|yomi=o}}
=== Takrifan ===
==== Kata nama ====
{{ja-noun|ぜつえん}}
# Pemutusan [[hubungan]] atau [[sentuhan]].
# {{lb|ja|kejuruteraan}} [[penebatan]]; [[pengasingan]]
==== Kata kerja ====
{{ja-verb-suru|ぜつえん}}
# Memutuskan hubungan
# {{lb|ja|kejuruteraan}} Mengasingkan atau menebatkan
===== Konjugasi =====
{{ja-suru|ぜつえん}}
==== Terbitan kata ====
* {{ja-r|絶縁体|ぜつえんたい}}
* {{ja-r|絶縁テープ|ぜつえん テープ}}
=== Sebutan ===
{{ja-pron|ぜつえん|acc=0|acc_ref=DJR}}
==== Lihat juga ====
* {{ja-r|離縁|りえん}}
* {{ja-r|絶交|ぜっこう}}
=== Rujukan ===
<references />
g14lk1wdni08anxpoo3nephjgud4y0s
接続
0
24165
129852
2022-08-22T07:34:52Z
Tofeiku
2269
cipta
wikitext
text/x-wiki
{{juga|接續|接续}}
==Bahasa Jepun==
{{ja-kanjitab|せつ|ぞく|yomi=on}}
===Takrifan===
====Kata kerja====
{{ja-verb-suru|tr=both|せつぞく|kyu=接續}}
# [[sambung]]
====Konjugasi====
{{ja-suru|せつぞく}}
====Kata nama====
{{ja-noun|せつぞく|kyu=接續}}
# [[sambungan]]
===Sebutan===
{{ja-pron|せつぞく|y=on}}
izmkpxb2o2n8gcng2rpiwgfo1nwkovt
解離
0
24166
129853
2022-08-22T07:35:11Z
PeaceSeekers
3334
Mencipta laman baru dengan kandungan '== Bahasa Cina == {{zh-forms|s=解离}} === Takrifan === ==== Kata kerja ==== {{zh-verb}} # {{lb|zh|kimia|fizik|psikologi}} mengasingkan; memisahkan === Sebutan === {{zh-pron |m=jiělí |cat=v }} == Bahasa Jepun == {{DEFAULTSORT:かいり}} {{ja-kanjitab|かい|り|yomi=o}} ==== Kata nama ==== {{ja-noun|かいり}} # [[pemisahan]]; [[pengasingan]] # {{lb|ja|perubatan|kejuruteraan}} [[pengasingan]] ==== Kata kerja ==== {{ja-verb-suru|かいり}}...'
wikitext
text/x-wiki
== Bahasa Cina ==
{{zh-forms|s=解离}}
=== Takrifan ===
==== Kata kerja ====
{{zh-verb}}
# {{lb|zh|kimia|fizik|psikologi}} mengasingkan; memisahkan
=== Sebutan ===
{{zh-pron
|m=jiělí
|cat=v
}}
== Bahasa Jepun ==
{{DEFAULTSORT:かいり}}
{{ja-kanjitab|かい|り|yomi=o}}
==== Kata nama ====
{{ja-noun|かいり}}
# [[pemisahan]]; [[pengasingan]]
# {{lb|ja|perubatan|kejuruteraan}} [[pengasingan]]
==== Kata kerja ====
{{ja-verb-suru|かいり}}
# [[pisah]]; [[asing]]
# {{lb|ja|medical|kejuruteraan}} memisahkan; mengasingkan
===== Konjugasi =====
{{ja-suru|かいり}}
=== Sebutan ===
{{ja-pron|かいり|y=o|acc=0|acc_ref=DJR|acc2=1|acc2_ref=DJR}}
=== Rujukan ===
<references/>
hpphq855nl3gqlkukkk6jop18726iyz
解离
0
24167
129854
2022-08-22T07:35:46Z
PeaceSeekers
3334
Mencipta laman baru dengan kandungan '{{also|解離}} == Bahasa Cina == {{zh-see|解離}}'
wikitext
text/x-wiki
{{also|解離}}
== Bahasa Cina ==
{{zh-see|解離}}
1phmcpg13fgy4z90hfrvymyphkrsqai
航空宇宙工学
0
24168
129857
2022-08-22T07:37:11Z
PeaceSeekers
3334
Mencipta laman baru dengan kandungan '== Bahasa Jepun == {{wikipedia|lang=ja}} {{ja-kanjitab|こう|くう|う|ちゅう|こう|がく|yomi=o}} === Takrifan === ==== Kata nama ==== {{ja-noun|こうくううちゅうこうがく}} # {{lb|ja|kejuruteraan|sort=こうくううちゅうこうがく}} [[kejuruteraan aeroangkasa]] === Etimologi === {{compound|ja|航空宇宙|t1=aeroangkasa|tr1=kōkūuchū|工学|t2=kejuruteraan|tr2=kōgaku|sort=こうくううちゅうこうがく}}'
wikitext
text/x-wiki
== Bahasa Jepun ==
{{wikipedia|lang=ja}}
{{ja-kanjitab|こう|くう|う|ちゅう|こう|がく|yomi=o}}
=== Takrifan ===
==== Kata nama ====
{{ja-noun|こうくううちゅうこうがく}}
# {{lb|ja|kejuruteraan|sort=こうくううちゅうこうがく}} [[kejuruteraan aeroangkasa]]
=== Etimologi ===
{{compound|ja|航空宇宙|t1=aeroangkasa|tr1=kōkūuchū|工学|t2=kejuruteraan|tr2=kōgaku|sort=こうくううちゅうこうがく}}
mcc9lqwzagxuhk2zc97mvlgm0nulty2
建築学
0
24169
129858
2022-08-22T07:38:47Z
PeaceSeekers
3334
Mencipta laman baru dengan kandungan '== Bahasa Jepun == {{ja-kanjitab|けん|ちく|がく|yomi=o}} === Takrifan === ==== Kata nama ==== {{ja-noun|けんちくがく|kyu=建築學}} # [[seni bina]] === Sebutan === {{ja-pron|けんちくがく|y=o}} {{C|ja|Seni bina|Kejuruteraan|sort=けんちくがく}}'
wikitext
text/x-wiki
== Bahasa Jepun ==
{{ja-kanjitab|けん|ちく|がく|yomi=o}}
=== Takrifan ===
==== Kata nama ====
{{ja-noun|けんちくがく|kyu=建築學}}
# [[seni bina]]
=== Sebutan ===
{{ja-pron|けんちくがく|y=o}}
{{C|ja|Seni bina|Kejuruteraan|sort=けんちくがく}}
7gcu2fzk4290mualjm0vi33attumlvo
機械工学
0
24170
129859
2022-08-22T07:40:29Z
PeaceSeekers
3334
Mencipta laman baru dengan kandungan '== Bahasa Jepun == {{wikipedia|lang=ja}} {{ja-kanjitab|yomi=o|き|かい|こう|がく}} === Takrifan === ==== Kata nama ==== {{ja-noun|きかい こうがく}} # [[kejuruteraan mekanik]] === Sebutan === {{ja-pron|きかい こうがく|acc=4|acc_ref=DJR|y=ko}} === Rujukan === <references/> {{C|ja|Kejuruteraan mekanik|Kejuruteraan|きかいこうがく}}'
wikitext
text/x-wiki
== Bahasa Jepun ==
{{wikipedia|lang=ja}}
{{ja-kanjitab|yomi=o|き|かい|こう|がく}}
=== Takrifan ===
==== Kata nama ====
{{ja-noun|きかい こうがく}}
# [[kejuruteraan mekanik]]
=== Sebutan ===
{{ja-pron|きかい こうがく|acc=4|acc_ref=DJR|y=ko}}
=== Rujukan ===
<references/>
{{C|ja|Kejuruteraan mekanik|Kejuruteraan|きかいこうがく}}
pm6bzsat3amxoyeiaxrsvpb6b4gpmj4
電気工学
0
24171
129860
2022-08-22T07:42:29Z
PeaceSeekers
3334
Mencipta laman baru dengan kandungan '== Bahasa Jepun == {{ja-kanjitab|でん|き|こう|がく|yomi=o}} {{Wikipedia|lang=ja}} === Takrifan === ==== Kata nama ==== {{ja-noun|でんき こうがく}} # [[kejuruteraan elektrik]] === Etimologi === {{compound|ja|電気|工学|tr1=[[denki]]|t1=[[elektrik]]|tr2=[[kōgaku]]|t2=[[kejuruteraan]]|sort=てんきこうがく'}}. === Sebutan === {{ja-pron|でんき こうがく|acc=4|acc_ref=DJR|y=o}} === Rujukan === <references/> {{C|ja|Kejurut...'
wikitext
text/x-wiki
== Bahasa Jepun ==
{{ja-kanjitab|でん|き|こう|がく|yomi=o}}
{{Wikipedia|lang=ja}}
=== Takrifan ===
==== Kata nama ====
{{ja-noun|でんき こうがく}}
# [[kejuruteraan elektrik]]
=== Etimologi ===
{{compound|ja|電気|工学|tr1=[[denki]]|t1=[[elektrik]]|tr2=[[kōgaku]]|t2=[[kejuruteraan]]|sort=てんきこうがく'}}.
=== Sebutan ===
{{ja-pron|でんき こうがく|acc=4|acc_ref=DJR|y=o}}
=== Rujukan ===
<references/>
{{C|ja|Kejuruteraan|sort=でんきこうがく}}
lcccvn7hkeleuz5qv6mdsg1lb8gqzuu
denki
0
24172
129861
2022-08-22T07:43:00Z
PeaceSeekers
3334
Mencipta laman baru dengan kandungan '== Bahasa Jepun == === Perumian === {{ja-romaji}} # {{ja-romanization of|でんき}}'
wikitext
text/x-wiki
== Bahasa Jepun ==
=== Perumian ===
{{ja-romaji}}
# {{ja-romanization of|でんき}}
scr6i9ut6daw15ftolcl2a3tsx7s0fg
Modul:munge text
828
24173
129862
2022-08-22T07:44:07Z
Tofeiku
2269
cipta
Scribunto
text/plain
return function(text, fn)
local has_html = text:find("<")
local has_two_part_link = text:find("%[%[.*|")
if not has_html and not has_two_part_link then
return fn(text)
end
local function do_munge(text, pattern, functor)
local index = 1
local length = mw.ustring.len(text)
local result = ""
pattern = "(.-)(" .. pattern .. ")"
while index <= length do
local first, last, before, match = mw.ustring.find(text, pattern, index)
if not first then
result = result .. functor(mw.ustring.sub(text, index))
break
end
result = result .. functor(before) .. match
index = last + 1
end
return result
end
local function munge_text_with_html(txt)
return do_munge(txt, "<[^>]->", fn)
end
if has_two_part_link then -- contains wikitext links
return do_munge(text, "%[%[[^%[%]|]-|", has_html and munge_text_with_html or fn)
else -- HTML tags only
return munge_text_with_html(text)
end
end
q7ur2nodxnsnkubylopxe90nmeqjwe1
자동차
0
24174
129863
2022-08-22T07:45:09Z
Tofeiku
2269
cipta
wikitext
text/x-wiki
==Bahasa Korea==
===Takrifan===
====Kata nama====
{{ko-kn|hanja=自動車|count=대(臺)}}
# [[automobil]], [[kereta]]
#: {{ux|ko|'''자동차''' [[전용]] [[판매]] [[창구]] [[앞]][[에서]][[-요]].|Di pandu lalu.}}
===Etimologi===
{{ko-etim-Sino|自動車}}.
===Sebutan===
{{ko-AFA}}
[[Kategori:ko:Kenderaan]]
nl4a1ttrk9dexsw9b5emwqzuxqp41gi
RC造
0
24175
129864
2022-08-22T07:47:13Z
PeaceSeekers
3334
Mencipta laman baru dengan kandungan '== Bahasa Jepun == {{ja-kanjitab|しょう|yomi=o}} {{Wikipedia|lang=ja}} === Takrifan === ==== Kata nama ==== {{ja-kn|あーる しー ぞう}} # {{lb|ja|kejuruteraan|pembinaan|sort=あーるしーぞう}} [[konkrit diperkukuh]] #: {{syn|ja|鉄筋コンクリート構造}}'
wikitext
text/x-wiki
== Bahasa Jepun ==
{{ja-kanjitab|しょう|yomi=o}}
{{Wikipedia|lang=ja}}
=== Takrifan ===
==== Kata nama ====
{{ja-kn|あーる しー ぞう}}
# {{lb|ja|kejuruteraan|pembinaan|sort=あーるしーぞう}} [[konkrit diperkukuh]]
#: {{syn|ja|鉄筋コンクリート構造}}
n363h3f2bry5usv47kxel9s858b937m
129866
129864
2022-08-22T07:49:25Z
PeaceSeekers
3334
wikitext
text/x-wiki
== Bahasa Jepun ==
{{ja-kanjitab|しょう|yomi=o}}
{{Wikipedia|lang=ja}}
=== Takrifan ===
==== Kata nama ====
{{ja-kn|アール シー ぞう}}
# {{lb|ja|kejuruteraan|pembinaan|sort=あーるしーぞう}} [[konkrit diperkukuh]]
#: {{syn|ja|鉄筋コンクリート構造}}
rgl6jlphkx0lvu5f5ugzfj6wmbridfp
SRC造
0
24176
129865
2022-08-22T07:49:13Z
PeaceSeekers
3334
Mencipta laman baru dengan kandungan '== Bahasa Jepun == {{ja-kanjitab|しょう|yomi=o}} {{Wikipedia|lang=ja}} === Takrifan === ==== Kata nama ==== {{ja-kn|エス アール シー ぞう}} # {{lb|ja|kejuruteraan|pembinaan|sort=エス アール シー ぞう}} [[konkrit diperkukuh]] dengan tambahan batang [[besi]]. #: {{syn|ja|鉄骨鉄筋コンクリート造}}'
wikitext
text/x-wiki
== Bahasa Jepun ==
{{ja-kanjitab|しょう|yomi=o}}
{{Wikipedia|lang=ja}}
=== Takrifan ===
==== Kata nama ====
{{ja-kn|エス アール シー ぞう}}
# {{lb|ja|kejuruteraan|pembinaan|sort=エス アール シー ぞう}} [[konkrit diperkukuh]] dengan tambahan batang [[besi]].
#: {{syn|ja|鉄骨鉄筋コンクリート造}}
0g2ydihyd1336z6fg7av3n9gkjgwfb8
海岸工学
0
24177
129867
2022-08-22T07:52:13Z
PeaceSeekers
3334
Mencipta laman baru dengan kandungan '== Bahasa Jepun == {{ja-kanjitab|かい|がん|こう|がく|yomi=on}} {{Wikipedia|lang=ja}} === Takrifan === ==== Kata nama ==== {{ja-kn|かいがん こうがく}} # {{lb|ja|kejuruteraan|sort=かいがん こうがく}} Ilmu kejuruteraan berkaitan kawasan [[pesisir]] atau [[pantai]]. === Etimologi === {{compound|ja|海岸|工学|tr1=kaigan|t1=pesisir; pantai|tr2=kōgaku|t2=kejuruteraan}}'
wikitext
text/x-wiki
== Bahasa Jepun ==
{{ja-kanjitab|かい|がん|こう|がく|yomi=on}}
{{Wikipedia|lang=ja}}
=== Takrifan ===
==== Kata nama ====
{{ja-kn|かいがん こうがく}}
# {{lb|ja|kejuruteraan|sort=かいがん こうがく}} Ilmu kejuruteraan berkaitan kawasan [[pesisir]] atau [[pantai]].
=== Etimologi ===
{{compound|ja|海岸|工学|tr1=kaigan|t1=pesisir; pantai|tr2=kōgaku|t2=kejuruteraan}}
mjhpbl2jdnvslyzuhsztcdwy5lvd7wz
결혼하다
0
24178
129868
2022-08-22T07:53:15Z
Tofeiku
2269
cipta
wikitext
text/x-wiki
==Bahasa Korea==
===Takrifan===
====Kata kerja====
{{ko-kk}}
# {{lb|ko|tidak transitif}} [[berkahwin]], [[bernikah]]
#: {{uxi|ko|'''결혼-하셨어요'''?|Sudahkah anda berkahwin?}}
====Konjugasi====
{{ko-konj/kk}}
===Etimologi===
{{af|ko|결혼(結婚)|-하다|t2=buat|pos2=[[kata kerja ringan]] menerbitkan kata kerja aktif}}.
===Sebutan===
{{ko-AFA}}
7e9ubdbppqn4feb3oz2e9i2f6ym1w06
129878
129868
2022-08-22T08:15:16Z
Tofeiku
2269
baiki
wikitext
text/x-wiki
==Bahasa Korea==
===Takrifan===
====Kata kerja====
{{ko-kk}}
# {{lb|ko|tidak transitif}} [[berkahwin]], [[bernikah]]
#: {{uxi|ko|'''결혼-하셨어요'''?|Sudahkah anda berkahwin?}}
====Konjugasi====
{{ko-konj/kk}}
===Etimologi===
{{af|ko|결혼(結婚)|-하다|t2=buat|pos2=[[kata kerja lemah]] menerbitkan kata kerja aktif}}.
===Sebutan===
{{ko-AFA}}
5oseifcjn1m3ybo6ec72zhcgo7q521e
海洋工学
0
24179
129869
2022-08-22T07:54:41Z
PeaceSeekers
3334
Mencipta laman baru dengan kandungan '== Bahasa Jepun == {{ja-kanjitab|かい|よう|こう|がく|yomi=on}} {{Wikipedia|lang=ja}} === Takrifan === ==== Kata nama ==== {{ja-kn|かいよう こうがく}} # {{lb|ja|kejuruteraan|sort=かいよう こうがく}} [[kejuruteraan marin]]; ilmu kejuruteraan berkaitan kawasan [[laut]]. === Etimologi === {{compound|ja|海洋|工学|tr1=kaiyō|tr2=kōgaku|t1=lautan|t2=kejuruteraan}}'
wikitext
text/x-wiki
== Bahasa Jepun ==
{{ja-kanjitab|かい|よう|こう|がく|yomi=on}}
{{Wikipedia|lang=ja}}
=== Takrifan ===
==== Kata nama ====
{{ja-kn|かいよう こうがく}}
# {{lb|ja|kejuruteraan|sort=かいよう こうがく}} [[kejuruteraan marin]]; ilmu kejuruteraan berkaitan kawasan [[laut]].
=== Etimologi ===
{{compound|ja|海洋|工学|tr1=kaiyō|tr2=kōgaku|t1=lautan|t2=kejuruteraan}}
rzqa1hvhgi61l1rlira2q1en2q81c3m
국적
0
24180
129870
2022-08-22T07:57:00Z
Tofeiku
2269
cipta
wikitext
text/x-wiki
==Bahasa Korea==
===Takrifan===
====Kata nama====
{{ko-kn|hanja=國籍}}
# [[kerakyatan]], [[kewarganegaraan]]
===Etimologi===
{{ko-etim-Sino|國籍|[[kerakyatan]], [[kewarganegaraan]]}}
===Sebutan===
{{ko-AFA}}
5j3i81w2ksm8jccmlmm8skr4j05lxmq
きりづま
0
24181
129871
2022-08-22T07:58:35Z
PeaceSeekers
3334
Mencipta laman baru dengan kandungan '== Bahasa Jepun == {{Wikipedia|lang=ja}} === Takrifan === ==== Kata nama ==== {{ja-kn}} # Bahagian sisi objek ([[bangunan]]; [[kenderaan]] dll.) dipotong tegak. {{C|ja|Kejuruteraan|Pembinaan}}'
wikitext
text/x-wiki
== Bahasa Jepun ==
{{Wikipedia|lang=ja}}
=== Takrifan ===
==== Kata nama ====
{{ja-kn}}
# Bahagian sisi objek ([[bangunan]]; [[kenderaan]] dll.) dipotong tegak.
{{C|ja|Kejuruteraan|Pembinaan}}
5ttt5ly7iyit50jcsz82uwmv3yo37w6
귀엽다
0
24182
129872
2022-08-22T08:00:29Z
Tofeiku
2269
cipta
wikitext
text/x-wiki
==Bahasa Korea==
===Takrifan===
====Kata sifat====
{{ko-ks|irreg=y}}
# (menjadi) [[comel]]; (menjadi) [[menawan]]
====Konjugasi====
{{ko-konj/ks|irreg=y}}
===Sebutan===
{{ko-AFA|l=y}}
====Rujukan====
* {{cite-web|url=http://krdic.naver.com/detail.nhn?docid=4914200|work={{lang|ko|표준국어대사전}}|author=National Institute of the Korean Language (Naver.com mirror)|title={{lang|ko|귀엽다}}|accessdate=2007-05-27}}
====Kata terbitan====
* {{ko-l|커엽다}}
7m2s67fruk5nblxow7i16r4g7egnama
強電
0
24183
129873
2022-08-22T08:01:03Z
PeaceSeekers
3334
Mencipta laman baru dengan kandungan '== Bahasa Jepun == {{ja-kanjitab|きょう|でん|yomi=on}} {{Wikipedia|lang=ja}} === Takrifan === ==== Kata nama ==== {{ja-kn|きょうでん}} # Bidang [[kejuruteraan elektrik]] yang menilai elektrik sebagai medan mengalirkan atau menukarkan [[tenaga]]. {{C|ja|Kejuruteraan elektrik|Kejuruteraan|sort=きょうでん}}'
wikitext
text/x-wiki
== Bahasa Jepun ==
{{ja-kanjitab|きょう|でん|yomi=on}}
{{Wikipedia|lang=ja}}
=== Takrifan ===
==== Kata nama ====
{{ja-kn|きょうでん}}
# Bidang [[kejuruteraan elektrik]] yang menilai elektrik sebagai medan mengalirkan atau menukarkan [[tenaga]].
{{C|ja|Kejuruteraan elektrik|Kejuruteraan|sort=きょうでん}}
5m37vq4dvjfxfbjtq1242udjy7ffc0c
切土
0
24184
129874
2022-08-22T08:03:53Z
PeaceSeekers
3334
Mencipta laman baru dengan kandungan '== Bahasa Jepun == {{ja-kanjitab|きり|ど|yomi=y}} {{Wikipedia|lang=ja}} === Takrifan === ==== Kata nama ==== {{ja-kn|きりど}} # {{lb|ja|kejuruteraan|pembinaan|sort=きりど}} Pembuangan tanah untuk meratakan permukaan tanah sebelum pembinaan. === Sebutan === {{ja-pron|きりど|acc=0}}'
wikitext
text/x-wiki
== Bahasa Jepun ==
{{ja-kanjitab|きり|ど|yomi=y}}
{{Wikipedia|lang=ja}}
=== Takrifan ===
==== Kata nama ====
{{ja-kn|きりど}}
# {{lb|ja|kejuruteraan|pembinaan|sort=きりど}} Pembuangan tanah untuk meratakan permukaan tanah sebelum pembinaan.
=== Sebutan ===
{{ja-pron|きりど|acc=0}}
382te2d9dtgk04pihzh59lxd2ly8exi
軍事工学
0
24185
129875
2022-08-22T08:10:47Z
PeaceSeekers
3334
Mencipta laman baru dengan kandungan '== Bahasa Jepun == {{ja-kanjitab|ぐん|じ|こう|がく|yomi=on}} {{Wikipedia|lang=ja}} === Takrifan === ==== Kata nama ==== {{ja-kn|ぐんじ こうがく}} # {{lb|ja|kejuruteraan|ketenteraan|sort=ぐんじ こうがく}} Ilmu [[kejuruteraan]] berkaitan [[ketenteraan]]. === Etimologi === {{compound|ja|軍事|工学|tr1=gunji|tr2=kōgaku|t1=ketenteraan|t2=kejuruteraan}}'
wikitext
text/x-wiki
== Bahasa Jepun ==
{{ja-kanjitab|ぐん|じ|こう|がく|yomi=on}}
{{Wikipedia|lang=ja}}
=== Takrifan ===
==== Kata nama ====
{{ja-kn|ぐんじ こうがく}}
# {{lb|ja|kejuruteraan|ketenteraan|sort=ぐんじ こうがく}} Ilmu [[kejuruteraan]] berkaitan [[ketenteraan]].
=== Etimologi ===
{{compound|ja|軍事|工学|tr1=gunji|tr2=kōgaku|t1=ketenteraan|t2=kejuruteraan}}
ov232nw7opoxhhwwbv94utbedyoi5e4
그저께
0
24186
129876
2022-08-22T08:11:45Z
Tofeiku
2269
cipta
wikitext
text/x-wiki
==Bahasa Korea==
===Takrifan===
====Kata nama====
{{ko-kn}}
# [[sehari sebelum semalam]]; [[kelmarin]] (dulu)
#* {{ux|ko|'''그저께''' 밤|malam sebelum yang terakhir (harfiah, "malam '''kelmarin dulu'''")}}
===Etimologi===
{{rfe|ko}}
===Sebutan===
{{ko-AFA}}
===Tesaurus===
====Sinonim====
* {{ko-l|그제}}
====Lihat juga====
* Hari lain yang dekat dengan hari ini: {{ko-l|어제||semalam}}, {{ko-l|오늘||hari ini}}, {{ko-l|내일||esok}}, {{ko-l|모레||lusa}}, {{ko-l|글피||tulat}}
[[Kategori:ko:Lampau]]
t5zp8lisph3e2n2oz0jomn9pp83rlvk
긴장되다
0
24187
129877
2022-08-22T08:14:38Z
Tofeiku
2269
cipta
wikitext
text/x-wiki
==Bahasa Korea==
===Takrifan===
====Kata kerja====
{{ko-kk}}
# (menjadi) [[gementar]]; [[tegang]]
====Konjugasi====
{{ko-konj/kk}}
===Etimologi===
{{af|ko|긴장(緊張)|-되다|t2=menjadi|pos2=[[kata kerja lemah]] menerbitkan kata kerja pasif}}.
===Sebutan===
{{ko-AFA}}
eyg3vw296f7jcgk6u6b2rf8526n2g0m
航空工学
0
24188
129879
2022-08-22T08:15:41Z
PeaceSeekers
3334
Mencipta laman baru dengan kandungan '== Bahasa Jepun == {{ja-kanjitab|こう|くう|こう|がく|}} {{Wikipedia|lang=ja}} === Takrifan === ==== Kata nama ==== {{ja-kn|こうくう こうがく}} # [[aeronautik]] {{C|ja|Penerbangan|Kejuruteraan|sort=こうくう こうがく}}'
wikitext
text/x-wiki
== Bahasa Jepun ==
{{ja-kanjitab|こう|くう|こう|がく|}}
{{Wikipedia|lang=ja}}
=== Takrifan ===
==== Kata nama ====
{{ja-kn|こうくう こうがく}}
# [[aeronautik]]
{{C|ja|Penerbangan|Kejuruteraan|sort=こうくう こうがく}}
3to82i4w3lldoknls7ycb5fgkwwhabr
Kategori:en:Seni
14
24189
129880
2022-08-22T08:17:48Z
PeaceSeekers
3334
Mencipta laman baru dengan kandungan '{{auto cat}}'
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:en:Budaya
14
24190
129881
2022-08-22T08:19:12Z
PeaceSeekers
3334
Mencipta laman baru dengan kandungan '{{auto cat}}'
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
buku-buku
0
24191
129882
2022-08-22T08:23:04Z
Tofeiku
2269
cipta
wikitext
text/x-wiki
==Bahasa Melayu==
===Takrifan===
====Kata nama====
{{inti|ms|bentuk kata nama|Jawi|بوکو٢|ejaan Rumi Za'ba|buku2}}
# {{jamak|ms|buku}}
f9oqcfatbc7o2ugbumyra2t7o0fcvpb
129885
129882
2022-08-22T08:25:41Z
Tofeiku
2269
+terjemahan
wikitext
text/x-wiki
==Bahasa Melayu==
===Takrifan===
====Kata nama====
{{inti|ms|bentuk kata nama|Jawi|بوکو٢|ejaan Rumi Za'ba|buku2}}
# {{jamak|ms|buku}}
===Terjemahan===
{{ter-atas|jamak bagi buku}}
* Indonesia: {{t+|id|buku-buku}}
* Inggeris: {{t+|en|books}}
{{ter-tengah}}
* Perancis: {{t+|fr|livres}}
{{ter-bawah}}
lr1w5bt0jgbs2wgy048uxj8hpwun9y0
129904
129885
2022-08-22T08:42:59Z
Tofeiku
2269
+etimologi
wikitext
text/x-wiki
==Bahasa Melayu==
===Takrifan===
====Kata nama====
{{inti|ms|bentuk kata nama|Jawi|بوکو٢|ejaan Rumi Za'ba|buku2}}
# {{jamak|ms|buku}}
===Etimologi===
{{penggandaan|ms|buku}}.
===Terjemahan===
{{ter-atas|jamak bagi buku}}
* Indonesia: {{t+|id|buku-buku}}
* Inggeris: {{t+|en|books}}
{{ter-tengah}}
* Perancis: {{t+|fr|livres}}
{{ter-bawah}}
srs5c05p54ggl012dtbbdf22qs07xiv
Kategori:ja:Pembinaan
14
24192
129884
2022-08-22T08:25:19Z
PeaceSeekers
3334
Mencipta laman baru dengan kandungan '{{auto cat}}'
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:ms:Pembinaan
14
24193
129886
2022-08-22T08:25:55Z
PeaceSeekers
3334
Mencipta laman baru dengan kandungan '{{auto cat}}'
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Pembinaan
14
24194
129887
2022-08-22T08:26:15Z
PeaceSeekers
3334
Mencipta laman baru dengan kandungan '{{auto cat}}'
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Seni bina
14
24195
129888
2022-08-22T08:26:44Z
PeaceSeekers
3334
Mencipta laman baru dengan kandungan '{{auto cat}}'
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
ikan-ikan
0
24196
129889
2022-08-22T08:27:42Z
Tofeiku
2269
cipta
wikitext
text/x-wiki
==Bahasa Melayu==
===Takrifan===
====Kata nama====
{{inti|ms|bentuk kata nama|Jawi|ايکن٢|ejaan Rumi Za'ba|ikan2}}
# {{jamak|ms|ikan}}
o29vl4ggsnzsig356mhn00kg5ahuoii
129905
129889
2022-08-22T08:43:29Z
Tofeiku
2269
+etimologi
wikitext
text/x-wiki
==Bahasa Melayu==
===Takrifan===
====Kata nama====
{{inti|ms|bentuk kata nama|Jawi|ايکن٢|ejaan Rumi Za'ba|ikan2}}
# {{jamak|ms|ikan}}
===Etimologi===
{{penggandaan|ms|ikan}}.
1rq2iqrejcbq63fupxb5xpnryvmqi5r
Kategori:ms:Kesusasteraan
14
24197
129894
2022-08-22T08:29:45Z
PeaceSeekers
3334
Mencipta laman baru dengan kandungan '{{auto cat}}'
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:ms:Hiburan
14
24198
129895
2022-08-22T08:30:27Z
PeaceSeekers
3334
Mencipta laman baru dengan kandungan '{{auto cat}}'
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
ايکن٢
0
24199
129896
2022-08-22T08:34:42Z
Tofeiku
2269
cipta
wikitext
text/x-wiki
==Bahasa Melayu==
===Takrifan===
====Kata nama====
{{inti|ms|bentuk kata nama|Rumi|ikan-ikan}}
# {{jamak|ms|ايکن}}
ssjrm9barcnklmcxuy4oqpdsx0pgiyp
129906
129896
2022-08-22T08:44:00Z
Tofeiku
2269
+etimologi
wikitext
text/x-wiki
==Bahasa Melayu==
===Takrifan===
====Kata nama====
{{inti|ms|bentuk kata nama|Rumi|ikan-ikan}}
# {{jamak|ms|ايکن}}
===Etimologi===
{{penggandaan|ms|ايکن}}.
g3la21kw1xba1jg5qwrl4z9i9u70l8h
بوکو٢
0
24200
129897
2022-08-22T08:35:35Z
Tofeiku
2269
cipta
wikitext
text/x-wiki
==Bahasa Melayu==
===Takrifan===
====Kata nama====
{{inti|ms|bentuk kata nama|Rumi|buku-buku}}
# {{jamak|ms|بوکو}}
hf5m2jk339m1egxn80it321r58m5we9
129903
129897
2022-08-22T08:42:38Z
Tofeiku
2269
+etimologi
wikitext
text/x-wiki
==Bahasa Melayu==
===Takrifan===
====Kata nama====
{{inti|ms|bentuk kata nama|Rumi|buku-buku}}
# {{jamak|ms|بوکو}}
===Etimologi===
{{penggandaan|ms|بوکو}}.
0x11y4mzqn6uot413pttkhsfce6jh84
negeri-negeri
0
24201
129898
2022-08-22T08:37:15Z
Tofeiku
2269
cipta
wikitext
text/x-wiki
==Bahasa Melayu==
===Takrifan===
====Kata nama====
{{inti|ms|bentuk kata nama|Jawi|نݢري٢}}
# {{jamak|ms|negeri}}
c8gvgbnoysu0spadehqjojs7rq0q4jt
129907
129898
2022-08-22T08:44:25Z
Tofeiku
2269
+etimologi
wikitext
text/x-wiki
==Bahasa Melayu==
===Takrifan===
====Kata nama====
{{inti|ms|bentuk kata nama|Jawi|نݢري٢}}
# {{jamak|ms|negeri}}
===Etimologi===
{{penggandaan|ms|negeri}}.
0bvi7p1rgrpwwnduant6mctmkv4bmza
نݢري٢
0
24202
129899
2022-08-22T08:37:48Z
Tofeiku
2269
cipta
wikitext
text/x-wiki
==Bahasa Melayu==
===Takrifan===
====Kata nama====
{{inti|ms|bentuk kata nama|Rumi|negeri-negeri}}
# {{jamak|ms|نݢري}}
ok1023u1m4999lpw70dbd28iq1wx8es
129908
129899
2022-08-22T08:44:46Z
Tofeiku
2269
+etimologi
wikitext
text/x-wiki
==Bahasa Melayu==
===Takrifan===
====Kata nama====
{{inti|ms|bentuk kata nama|Rumi|negeri-negeri}}
# {{jamak|ms|نݢري}}
===Etimologi===
{{penggandaan|ms|نݢري}}.
5l0d3gxyavwmagfvfej8738wi9jyouv
negara-negara
0
24203
129900
2022-08-22T08:39:19Z
Tofeiku
2269
cipta
wikitext
text/x-wiki
==Bahasa Melayu==
===Takrifan===
====Kata nama====
{{inti|ms|bentuk kata nama|Jawi|نݢارا٢}}
# {{jamak|ms|negara}}
7ogw1jr18vq1s1fm3qty1hhgyb0ecv7
129901
129900
2022-08-22T08:41:31Z
Tofeiku
2269
+etimologi
wikitext
text/x-wiki
==Bahasa Melayu==
===Takrifan===
====Kata nama====
{{inti|ms|bentuk kata nama|Jawi|نݢارا٢}}
# {{jamak|ms|negara}}
===Etimologi===
{{penggandaan|ms|negara}}.
42uf8o1rrcjctim69i73juqtumdmbmf
نݢارا٢
0
24204
129902
2022-08-22T08:42:12Z
Tofeiku
2269
cipta
wikitext
text/x-wiki
==Bahasa Melayu==
===Takrifan===
====Kata nama====
{{inti|ms|bentuk kata nama|Rumi|negara-negara}}
# {{jamak|ms|نݢارا}}
===Etimologi===
{{penggandaan|ms|نݢارا}}.
lotlgelvh22ufk6mguznup4sc3m2v6r
bunga-bunga
0
24205
129909
2022-08-22T08:49:34Z
Tofeiku
2269
cipta
wikitext
text/x-wiki
==Bahasa Melayu==
===Takrifan===
====Kata nama====
{{inti|ms|bentuk kata nama|Jawi|بوڠا٢}}
# {{jamak|ms|bunga}}
===Etimologi===
{{penggandaan|ms|bunga}}.
frh3zn9c5g0vmhzfcy6dzfyvd8bnn5s
بوڠا٢
0
24206
129910
2022-08-22T08:50:18Z
Tofeiku
2269
cipta
wikitext
text/x-wiki
==Bahasa Melayu==
===Takrifan===
====Kata nama====
{{inti|ms|bentuk kata nama|Rumi|bunga-bunga}}
# {{jamak|ms|بوڠا}}
===Etimologi===
{{penggandaan|ms|بوڠا}}.
mb1brkd67xmfqh6xl7m391qklie9oqm
binasa
0
24207
129911
2022-08-22T10:00:04Z
PeaceSeekers
3334
Mencipta laman baru dengan kandungan '== Bahasa Melayu == === Takrifan === ==== Kata sifat ==== {{ms-ks|j=بيناسا}} # Dalam keadaan hancur atau tidak dapat digunakan lagi. === Sebutan === * {{dewan|bi|na|sa}} === Pautan luar === * {{R:PRPM}} == Bahasa Indonesia == === Takrifan === ==== Kata sifat ==== {{head|id|kata sifat}} # Dalam keadaan hancur atau tidak dapat digunakan lagi. === Sebutan === * {{penyempangan|id|bi|na|sa}} === Pautan luar === * {{R:KBBI Daring}}'
wikitext
text/x-wiki
== Bahasa Melayu ==
=== Takrifan ===
==== Kata sifat ====
{{ms-ks|j=بيناسا}}
# Dalam keadaan hancur atau tidak dapat digunakan lagi.
=== Sebutan ===
* {{dewan|bi|na|sa}}
=== Pautan luar ===
* {{R:PRPM}}
== Bahasa Indonesia ==
=== Takrifan ===
==== Kata sifat ====
{{head|id|kata sifat}}
# Dalam keadaan hancur atau tidak dapat digunakan lagi.
=== Sebutan ===
* {{penyempangan|id|bi|na|sa}}
=== Pautan luar ===
* {{R:KBBI Daring}}
crlrg4dijzdglsy3g3tqu0h14w226l6
kebinasaan
0
24208
129912
2022-08-22T10:02:12Z
PeaceSeekers
3334
Mencipta laman baru dengan kandungan '== Bahasa Melayu == === Takrifan === ==== Kata nama ==== {{ms-kn|j=کبيناساءن|pl=-}} # Perihal [[binasa]]. === Etimologi === {{apitan|ms|ke|binasa|an}} === Sebutan === * {{dewan|ke|bi|na|sa|an}} === Pautan luar === * {{R:PRPM}} == Bahasa Indonesia == === Takrifan === ==== Kata nama ==== {{id-kn}} # Perihal [[binasa]]. === Etimologi === {{apitan|id|ke|binasa|an}} === Sebutan === * {{dewan|kê|bi|na|sa|an}} === Pautan luar === * {{R:...'
wikitext
text/x-wiki
== Bahasa Melayu ==
=== Takrifan ===
==== Kata nama ====
{{ms-kn|j=کبيناساءن|pl=-}}
# Perihal [[binasa]].
=== Etimologi ===
{{apitan|ms|ke|binasa|an}}
=== Sebutan ===
* {{dewan|ke|bi|na|sa|an}}
=== Pautan luar ===
* {{R:PRPM}}
== Bahasa Indonesia ==
=== Takrifan ===
==== Kata nama ====
{{id-kn}}
# Perihal [[binasa]].
=== Etimologi ===
{{apitan|id|ke|binasa|an}}
=== Sebutan ===
* {{dewan|kê|bi|na|sa|an}}
=== Pautan luar ===
* {{R:KBBI Daring}}
gma546bl8qr60fotgty57ckpog2yu10
majlis ilmu
0
24209
129913
2022-08-22T10:03:13Z
PeaceSeekers
3334
Mencipta laman baru dengan kandungan '== Bahasa Melayu == === Takrifan === ==== Kata nama ==== {{ms-kn|j=مجلس علمو}} # {{lb|ms|Islam}} Suatu [[perhimpunan]] atau kelas awam (biasanya di [[masjid]]) yang berkisarkan ilmu Islam. === Etimologi === {{compound|ms|majlis|ilmu}} === Pautan luar === * {{R:PRPM}}'
wikitext
text/x-wiki
== Bahasa Melayu ==
=== Takrifan ===
==== Kata nama ====
{{ms-kn|j=مجلس علمو}}
# {{lb|ms|Islam}} Suatu [[perhimpunan]] atau kelas awam (biasanya di [[masjid]]) yang berkisarkan ilmu Islam.
=== Etimologi ===
{{compound|ms|majlis|ilmu}}
=== Pautan luar ===
* {{R:PRPM}}
qome6t1splsbegxp867ilew6onq0o4l
pergelangan
0
24210
129914
2022-08-22T10:05:26Z
PeaceSeekers
3334
Mencipta laman baru dengan kandungan '== Bahasa Melayu == === Takrifan === ==== Kata nama ==== {{ms-kn|j=ڤرݢلڠن}} # Kawasan [[gelang]] atau [[keliling]]. # {{lb|ms|anatomi}} Kawasan keliling anggota badan. === Etimologi === {{apitan|ms|per|gelang|an}} === Sebutan === * {{dewan|per|ge|la|ngan}} === Pautan luar === * {{R:PRPM}} == Bahasa Indonesia == === Takrifan === ==== Kata nama ==== {{id-kn}} # Kawasan [[gelang]] atau [[keliling]]. # {{lb|ms|anatomi}} Kawasan keliling...'
wikitext
text/x-wiki
== Bahasa Melayu ==
=== Takrifan ===
==== Kata nama ====
{{ms-kn|j=ڤرݢلڠن}}
# Kawasan [[gelang]] atau [[keliling]].
# {{lb|ms|anatomi}} Kawasan keliling anggota badan.
=== Etimologi ===
{{apitan|ms|per|gelang|an}}
=== Sebutan ===
* {{dewan|per|ge|la|ngan}}
=== Pautan luar ===
* {{R:PRPM}}
== Bahasa Indonesia ==
=== Takrifan ===
==== Kata nama ====
{{id-kn}}
# Kawasan [[gelang]] atau [[keliling]].
# {{lb|ms|anatomi}} Kawasan keliling anggota badan.
=== Etimologi ===
{{apitan|ms|per|gelang|an}}
=== Sebutan ===
* {{dewan|pêr|gê|la|ngan}}
=== Pautan luar ===
* {{R:KBBI Daring}}
qwsb6t96y4imibv9j6m0ya5hg4u0bji
129916
129914
2022-08-22T10:07:22Z
PeaceSeekers
3334
/* Bahasa Indonesia */
wikitext
text/x-wiki
== Bahasa Melayu ==
=== Takrifan ===
==== Kata nama ====
{{ms-kn|j=ڤرݢلڠن}}
# Kawasan [[gelang]] atau [[keliling]].
# {{lb|ms|anatomi}} Kawasan keliling anggota badan.
=== Etimologi ===
{{apitan|ms|per|gelang|an}}
=== Sebutan ===
* {{dewan|per|ge|la|ngan}}
=== Pautan luar ===
* {{R:PRPM}}
== Bahasa Indonesia ==
=== Takrifan ===
==== Kata nama ====
{{id-kn}}
# Kawasan [[gelang]] atau [[keliling]].
# {{lb|id|anatomi}} Kawasan keliling anggota badan.
=== Etimologi ===
{{apitan|id|per|gelang|an}}
=== Sebutan ===
* {{dewan|pêr|gê|la|ngan}}
=== Pautan luar ===
* {{R:KBBI Daring}}
icm4r87onj02w0k7g3l5u17to2i9lbb
pangkal lengan
0
24211
129915
2022-08-22T10:06:54Z
PeaceSeekers
3334
Mencipta laman baru dengan kandungan '== Bahasa Melayu == {{Wikipedia}} === Takrifan === ==== Kata nama ==== {{ms-kn|j=ڤڠکل لڠن}} # {{lb|ms|anatomi}} Bahagian badan dari [[bahu]] ke [[lengan]]. === Etimologi === {{compound|ms|pangkal|lengan}} === Sebutan === * {{dewan|pang|kal||le|ngan}} === Pautan luar === * {{R:PRPM}} == Bahasa Indonesia == {{Wikipedia|lang=id}} === Takrifan === ==== Kata nama ==== {{id-kn}} # {{lb|id|anatomi}} Bahagian badan dari [[bahu]] ke ...'
wikitext
text/x-wiki
== Bahasa Melayu ==
{{Wikipedia}}
=== Takrifan ===
==== Kata nama ====
{{ms-kn|j=ڤڠکل لڠن}}
# {{lb|ms|anatomi}} Bahagian badan dari [[bahu]] ke [[lengan]].
=== Etimologi ===
{{compound|ms|pangkal|lengan}}
=== Sebutan ===
* {{dewan|pang|kal||le|ngan}}
=== Pautan luar ===
* {{R:PRPM}}
== Bahasa Indonesia ==
{{Wikipedia|lang=id}}
=== Takrifan ===
==== Kata nama ====
{{id-kn}}
# {{lb|id|anatomi}} Bahagian badan dari [[bahu]] ke [[lengan]].
=== Etimologi ===
{{compound|id|pangkal|lengan}}
=== Sebutan ===
* {{dewan|pang|kal||lê|ngan}}
=== Pautan luar ===
* {{R:KBBI Daring}}
5rsmf8j75tnz5c2vwe1wiv80hbsjdin
pendekatan
0
24212
129917
2022-08-22T10:09:01Z
PeaceSeekers
3334
Mencipta laman baru dengan kandungan '== Bahasa Melayu == === Takrifan === ==== Kata nama ==== {{ms-kn|j=ڤندکتن}} # Cara untuk menghadapi atau menyelesaikan suatu perkara. === Etimologi === {{apitan|ms|pen|dekat|an}} === Sebutan === * {{dewan|pen|de|ka|tan}} === Pautan luar === * {{R:PRPM}} == Bahasa Indonesia == === Takrifan === ==== Kata nama ==== {{id-kn}} # Cara untuk menghadapi atau menyelesaikan suatu perkara. === Etimologi === {{apitan|ms|pen|dekat|an}} ==...'
wikitext
text/x-wiki
== Bahasa Melayu ==
=== Takrifan ===
==== Kata nama ====
{{ms-kn|j=ڤندکتن}}
# Cara untuk menghadapi atau menyelesaikan suatu perkara.
=== Etimologi ===
{{apitan|ms|pen|dekat|an}}
=== Sebutan ===
* {{dewan|pen|de|ka|tan}}
=== Pautan luar ===
* {{R:PRPM}}
== Bahasa Indonesia ==
=== Takrifan ===
==== Kata nama ====
{{id-kn}}
# Cara untuk menghadapi atau menyelesaikan suatu perkara.
=== Etimologi ===
{{apitan|ms|pen|dekat|an}}
=== Sebutan ===
* {{dewan|pên|dê|ka|tan}}
=== Pautan luar ===
* {{R:KBBI Daring}}
echen1iuogo7i774p6hz0279cy7i02w
129918
129917
2022-08-22T10:09:14Z
PeaceSeekers
3334
/* Etimologi */
wikitext
text/x-wiki
== Bahasa Melayu ==
=== Takrifan ===
==== Kata nama ====
{{ms-kn|j=ڤندکتن}}
# Cara untuk menghadapi atau menyelesaikan suatu perkara.
=== Etimologi ===
{{apitan|ms|pen|dekat|an}}
=== Sebutan ===
* {{dewan|pen|de|ka|tan}}
=== Pautan luar ===
* {{R:PRPM}}
== Bahasa Indonesia ==
=== Takrifan ===
==== Kata nama ====
{{id-kn}}
# Cara untuk menghadapi atau menyelesaikan suatu perkara.
=== Etimologi ===
{{apitan|id|pen|dekat|an}}
=== Sebutan ===
* {{dewan|pên|dê|ka|tan}}
=== Pautan luar ===
* {{R:KBBI Daring}}
siahp5suq4u8yxmt908363im1kcqy4a
pengandal
0
24213
129919
2022-08-22T10:13:25Z
Tofeiku
2269
cipta
wikitext
text/x-wiki
==Bahasa Iban==
===Takrifan===
====Kata nama====
{{inti|iba|kata nama}}
# [[kegembiraan]]; [[keseronokan]]; [[harapan]]
===Etimologi===
{{awalan|iba|peN|andal|t2=gembira, suka}}
===Rujukan===
* {{R:Kamus Iban 1989}}
6kb2ur3srm7o0xokgkexoh5ld8py22h
파트타임
0
24214
129920
2022-08-22T11:14:30Z
Tofeiku
2269
cipta
wikitext
text/x-wiki
==Bahasa Korea==
===Takrifan===
====Kata nama====
{{ko-kn}}
# [[kerja sambilan]]
#: {{ko-usex|파트타임 일자리-를 구하다|mencari kerja sambilan}}
===Etimologi===
Daripada {{bor|ko|en|part-time||kerja sambilan}}.
===Sebutan===
{{ko-AFA}}
36294hihzvkevl8rquh825m10ud3say
대명사
0
24215
129921
2022-08-22T11:17:39Z
Tofeiku
2269
cipta
wikitext
text/x-wiki
==Bahasa Korea==
===Takrifan===
====Kata nama====
{{ko-kn|hanja=代名詞}}
# {{lb|ko|tatabahasa}} [[kata ganti]] <ref name="동아">{{cite-book
|title=Dong-a's New Concise Korean-English Dictionary
|year=1985
|pages=대명사}}</ref><ref name=Yahoo>{{cite-web
|url=http://kr.dic.yahoo.com/search/eng/search.html?prop=eng&p=%B4%EB%B8%ED%BB%E7&x=36&y=12
|title=Yahoo! Korean dictionary}}</ref>
===Etimologi===
{{ko-etim-Sino|代|ganti|名詞|kata nama}}
===Sebutan===
{{ko-AFA|l=y}}
===Tesaurus===
====Sinonim====
* {{ko-l|대이름씨}}
* {{ko-l|갈음이름씨}}
===Lihat juga===
* [[:Kategori:Kata ganti bahasa Korea]]
===Rujukan===
<references/>
[[Kategori:ko:Golongan kata]]
067u9q5600ozxlmhp2g8rsl7lrgz1gw
기억하다
0
24216
129922
2022-08-22T11:21:51Z
Tofeiku
2269
cipta
wikitext
text/x-wiki
==Bahasa Korea==
===Takrifan===
====Kata kerja====
{{ko-kk}}
# {{lb|ko|transitif}} [[mengingati]]
#* {{ko-usex|[[저]] '''기억-하세요'''? [[저]] [[당신]] [[건물]][[-에]] [[살다|살아요]].|Ingat saya? Saya tinggal di bangunan kamu.}}
#*: ''Teks bahasa Inggeris asal daripada'' '''2016''', [https://web.archive.org/web/20171023035740/https://learningenglish.voanews.com/a/lets-learn-english-lesson-7-what-are-you-doing/3240468.html VOA Learning English] (domain awam)
====Konjugasi====
{{ko-konj/kk}}
===Etimologi===
{{af|ko|기억(記憶)|-하다|t2=membuat|pos2=[[kata kerja lemah]] menerbitkan kata kerja aktif}}.
===Sebutan===
{{ko-AFA}}
nzfp793yuedutghag1shsmmnas4bb7i
꼿
0
24217
129923
2022-08-22T11:24:25Z
Tofeiku
2269
cipta
wikitext
text/x-wiki
{{character info}}
{{ko-symbol-nav}}
==Bahasa Jeju==
===Takrifan===
====Kata nama====
{{inti|jje|kata nama}}
# [[bunga]]; [[tumbuhan]] berbunga
===Sebutan===
* {{AFA|jje|/k͈o̞t̚/}}
===Bentuk pilihan===
* {{l|jje|고장}}
p8k3xnbz1tyfuo3zpubyubab0zc6k2g
129924
129923
2022-08-22T11:24:55Z
Tofeiku
2269
terjemah
wikitext
text/x-wiki
{{character info}}
{{ko-simbol-nav}}
==Bahasa Jeju==
===Takrifan===
====Kata nama====
{{inti|jje|kata nama}}
# [[bunga]]; [[tumbuhan]] berbunga
===Sebutan===
* {{AFA|jje|/k͈o̞t̚/}}
===Bentuk pilihan===
* {{l|jje|고장}}
jloiis7u0rxhlco7uqmq6os8u0ye8m4
Modul:scripts/charToScript
828
24218
129925
2022-08-22T11:26:31Z
Tofeiku
2269
cipta
Scribunto
text/plain
local subexport = {}
-- Copied from [[Module:Unicode data]].
local floor = math.floor
local function binaryRangeSearch(codepoint, ranges)
local low, mid, high
low, high = 1, ranges.length or require "Module:table".length(ranges)
while low <= high do
mid = floor((low + high) / 2)
local range = ranges[mid]
if codepoint < range[1] then
high = mid - 1
elseif codepoint <= range[2] then
return range, mid
else
low = mid + 1
end
end
return nil, mid
end
-- Copied from [[Module:Unicode data]].
local function linearRangeSearch(codepoint, ranges)
for i, range in ipairs(ranges) do
if codepoint < range[1] then
break
elseif codepoint <= range[2] then
return range
end
end
end
local function compareRanges(range1, range2)
return range1[1] < range2[1]
end
-- Save previously used codepoint ranges in case another character is in the
-- same range.
local rangesCache = {}
--[=[
Takes a codepoint or a character and finds the script code (if any) that is
appropriate for it based on the codepoint, using the data module
[[Module:scripts/recognition data]]. The data module was generated from the
patterns in [[Module:scripts/data]] using [[Module:User:Erutuon/script recognition]].
Converts the character to a codepoint. Returns a script code if the codepoint
is in the list of individual characters, or if it is in one of the defined
ranges in the 4096-character block that it belongs to, else returns "None".
]=]
local charToScriptData
function subexport.charToScript(char)
charToScriptData = charToScriptData or mw.loadData("Module:scripts/recognition data")
local t = type(char)
local codepoint
if t == "string" then
local etc
codepoint, etc = mw.ustring.codepoint(char, 1, 2)
if etc then
error("bad argument #1 to 'charToScript' (expected a single character)")
end
elseif t == "number" then
codepoint = char
else
error(("bad argument #1 to 'charToScript' (expected string or a number, got %s)")
:format(t))
end
local individualMatch = charToScriptData.individual[codepoint]
if individualMatch then
return individualMatch
else
local range
if rangesCache[1] then
range = linearRangeSearch(codepoint, rangesCache)
if range then
return range[3]
end
end
local index = floor(codepoint / 0x1000)
range = linearRangeSearch(index, charToScriptData.blocks)
if not range and charToScriptData[index] then
range = binaryRangeSearch(codepoint, charToScriptData[index])
if range then
table.insert(rangesCache, range)
table.sort(rangesCache, compareRanges)
end
end
return range and range[3] or "Tiada"
end
end
function subexport.findBestScriptWithoutLang(text)
local scripts = {}
for character in text:gmatch("[%z\1-\127\194-\244][\128-\191]*") do
local script = subexport.charToScript(character)
scripts[script] = (scripts[script] or 0) + 1
end
local bestScript
local greatestCount = 0
for script, count in pairs(scripts) do
if count > greatestCount then
bestScript = script
greatestCount = count
end
end
return bestScript
end
return subexport
jvhcmcpssqffra2k1nr1ab8zkyqb52f
Modul:Unicode data/data
828
24219
129926
2022-08-22T11:29:24Z
Tofeiku
2269
cipta
Scribunto
text/plain
-- General data used by [[Module:Unicode data]].
local export = {}
export.planes = {
[ 0] = "Basic Multilingual Plane";
[ 1] = "Supplementary Multilingual Plane";
[ 2] = "Supplementary Ideographic Plane";
[ 3] = "Tertiary Ideographic Plane";
[14] = "Supplementary Special-purpose Plane";
[15] = "Supplementary Private Use Area-A";
[16] = "Supplementary Private Use Area-B";
}
export.unsupported_title = {
[0x0020] = "Unsupported titles/Space";
[0x0023] = "Unsupported titles/Number sign";
[0x002E] = "Unsupported titles/Full stop";
[0x003A] = "Unsupported titles/Colon";
[0x003C] = "Unsupported titles/Less than";
[0x003E] = "Unsupported titles/Greater than";
[0x005B] = "Unsupported titles/Left square bracket";
[0x005D] = "Unsupported titles/Right square bracket";
[0x005F] = "Unsupported titles/Low line";
[0x007B] = "Unsupported titles/Left curly bracket";
[0x007C] = "Unsupported titles/Vertical line";
[0x007D] = "Unsupported titles/Right curly bracket";
[0x1680] = "Unsupported titles/Ogham space";
[0xFFFD] = "Unsupported titles/Replacement character";
}
return export
kbpl523e9nviitbg7k9ukn57au29em1
Modul:Unicode data/Hangul
828
24220
129927
2022-08-22T11:32:04Z
Tofeiku
2269
cipta
Scribunto
text/plain
-- Data used to generate the names of characters in the Hangul Syllables block
-- (U+AC00 to U+D7A3).
local Hangul = {}
-- The following leads, vowels, and trails come from here:
-- http://www.unicode.org/Public/UNIDATA/Jamo.txt
Hangul.leads = {
[0] = "G", "GG", "N", "D", "DD", "R", "M", "B", "BB", "S", "SS",
"", "J", "JJ", "C", "K", "T", "P", "H"
}
-- not actually used:
Hangul.lead_count = #Hangul.leads + 1
Hangul.vowels = {
[0] = "A", "AE", "YA", "YAE", "EO", "E", "YEO", "YE", "O", "WA",
"WAE", "OE", "YO", "U", "WEO", "WE", "WI", "YU", "EU", "YI",
"I"
}
Hangul.vowel_count = #Hangul.vowels + 1
Hangul.trails = {
[0] = "", "G", "GG", "GS", "N", "NJ", "NH", "D", "L", "LG", "LM", "LB",
"LS", "LT", "LP", "LH", "M", "B", "BS", "S", "SS", "NG", "J", "C", "K",
"T", "P", "H"
}
Hangul.trail_count = #Hangul.trails + 1
--For the term "final", see [[Syllable#Chinese model]].
Hangul.final_count = Hangul.vowel_count * Hangul.trail_count
return Hangul
3nkgw7i7ttbjq883k4e90d809x4s1n8