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 = "&lrm;" 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>&nbsp;%(</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>&nbsp;%(</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 (&nbsp;), 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 {[[ 亜亞 悪惡 圧壓 囲圍 医醫 為爲 壱壹 隠隱 栄榮 営營 衛衞 駅驛 円圓 塩鹽 縁緣 艶艷 応應 欧歐 殴毆 桜櫻 奥奧 横橫 温溫 穏穩 仮假 価價 画畫 会會 絵繪 壊壞 懐懷 概槪 拡擴 殻殼 覚覺 学學 岳嶽 楽樂 渇渴 缶罐 巻卷 陥陷 勧勸 寛寬 関關 歓歡 観觀 気氣 帰歸 亀龜 偽僞 戯戲 犠犧 旧舊 拠據 挙擧 虚虛 峡峽 挟挾 狭狹 郷鄕 暁曉 区區 駆驅 勲勳 薫薰 径徑 茎莖 恵惠 掲揭 渓溪 経經 蛍螢 軽輕 継繼 鶏鷄 芸藝 撃擊 欠缺 研硏 県縣 倹儉 剣劍 険險 圏圈 検檢 献獻 権權 顕顯 験驗 厳嚴 戸戶 広廣 効效 恒恆 黄黃 鉱鑛 号號 国國 黒黑 済濟 斎齋 砕碎 剤劑 雑雜 参參 桟棧 蚕蠶 惨慘 賛贊 残殘 糸絲 歯齒 児兒 辞辭 湿濕 実實 写寫 釈釋 寿壽 収收 従從 渋澁 獣獸 縦縱 粛肅 処處 緒緖 叙敍 将將 称稱 渉涉 焼燒 証證 奨奬 条條 状狀 乗乘 浄淨 剰剩 畳疊 縄繩 壌壤 嬢孃 譲讓 醸釀 触觸 嘱囑 真眞 寝寢 慎愼 尽盡 図圖 粋粹 酔醉 穂穗 随隨 髄髓 枢樞 数數 瀬瀨 声聲 斉齊 静靜 窃竊 摂攝 専專 浅淺 戦戰 践踐 銭錢 潜潛 繊纖 禅禪 双雙 壮壯 争爭 荘莊 捜搜 挿插 巣巢 曽曾 痩瘦 装裝 総總 騒騷 増增 蔵藏 臓臟 即卽 属屬 続續 堕墮 対對 体體 帯帶 滞滯 台臺 滝瀧 択擇 沢澤 担擔 単單 胆膽 団團 断斷 弾彈 遅遲 痴癡 虫蟲 昼晝 鋳鑄 庁廳 徴徵 聴聽 鎮鎭 逓遞 鉄鐵 点點 転轉 伝傳 灯燈 当當 党黨 盗盜 稲稻 闘鬭 徳德 独獨 読讀 届屆 弐貳 悩惱 脳腦 覇霸 拝拜 廃廢 売賣 麦麥 発發 髪髮 抜拔 晩晚 蛮蠻 秘祕 浜濱 瓶甁 払拂 仏佛 併倂 並竝 餅餠 辺邊 変變 歩步 宝寶 豊豐 褒襃 翻飜 毎每 万萬 満滿 麺麵 黙默 弥彌 訳譯 薬藥 与與 予豫 余餘 誉譽 揺搖 様樣 謡謠 来來 頼賴 乱亂 覧覽 竜龍 両兩 猟獵 緑綠 涙淚 塁壘 礼禮 励勵 戻戾 霊靈 齢齡 暦曆 歴歷 恋戀 錬鍊 炉爐 労勞 郎郞 楼樓 録錄 湾灣 飲飮 鋭銳 閲閱 悦悅 顔顏 告吿 舎舍 尚尙 呉吳 娯娛 告吿 歳歲 産產 青靑 清淸 税稅 説說 絶絕 脱脫 内內 舗舖 剥剝 頬頰 填塡 篭籠 亘亙 凜凛 尭堯 巌巖 桧檜 槙槇 祢禰 祷禱 禄祿 穣穰 遥遙 聡聰 彦彥 唖啞 頴穎 鴎鷗 撹攪 麹麴 鹸鹼 噛嚙 繍繡 蒋蔣 醤醬 掻搔 祷禱 桝枡 屏屛 并幷 蝋蠟 沪濾 芦蘆 弯彎 讃讚 嘘噓 焔焰 躯軀 屡屢 莱萊 騨驒 蝉蟬 箪簞 掴摑 顛顚 涜瀆 嚢囊 溌潑 醗醱 繋繫 蛎蠣 竃竈 潅灌 諌諫 頚頸 賎賤 壷壺 砺礪 梼檮 涛濤 迩邇 蝿蠅 侭儘 薮藪 褝襌 逸&#xFA67; 謁&#xFA62; 禍&#xFA52; 悔&#xFA3D; 海&#xFA45; 慨&#xFA3E; 喝&#xFA36; 褐&#xFA60; 漢&#xFA47; 祈&#xFA4E; 既&#xFA42; 器&#xFA38; 響&#xFA69; 勤&#xFA34; 謹&#xFA63; 穀&#xFA54; 殺&#xF970; 祉&#xFA4D; 視&#xFA61; 社&#xFA4C; 者&#xFA5B; 煮&#xFA48; 臭&#xFA5C; 祝&#xFA51; 暑&#xFA43; 署&#xFA5A; 諸&#xFA22; 祥&#xFA1A; 神&#xFA19; 節&#xFA56; 祖&#xFA50; 僧&#xFA31; 層&#xFA3B; 憎&#xFA3F; 贈&#xFA65; 嘆&#xFA37; 著&#xFA5F; 懲&#xFA40; 塚&#xFA10; 都&#xFA26; 突&#xFA55; 難&#xFA68; 梅&#xFA44; 繁&#xFA59; 卑&#xFA35; 碑&#xFA4B; 賓&#xFA64; 頻&#xFA6A; 敏&#xFA41; 侮&#xFA30; 福&#xFA1B; 塀&#xFA39; 勉&#xFA33; 墨&#xFA3A; 免&#xFA32; 欄&#xF91D; 隆&#xF9DC; 虜&#xF936; 類&#xF9D0; 練&#xFA57; 朗&#xF929; 廊&#xF928; 渚&#xFA62; 猪&#xFA16; 琢&#xFA4A; 祐&#xFA4F; 禎&#xFA53; ]]} -- ref part 1: Joyo 新字体 - 旧字体 (ambiguous) --[[ highly ambiguous: 弁 弁辨瓣辯 other (variant character/very rare, treated as part 1): 缶 缶罐 既 &#64066;&#26083; 芸 芸藝 欠 欠缺 糸 糸絲 証 証證 体 体體 台 台臺 灯 灯燈 虫 虫蟲 闘 闘鬭 浜 浜濱 予 予豫 余 余餘 礼 &#xFA18;禮 缶 缶罐 既 &#64066;&#26083; ]] -- ref part 2: Joyo "情報機器に搭載されている印刷文字字体の関係で" --[[ 餌・遡・遜・謎・餅・淫・葛・僅・煎・詮・嘲・捗・溺・塡・賭・剝・箸・蔽・頰 ]] -- ref part 3: unofficial or disputed (seen as variant forms rather than old forms) --[[ Joyo: *回囘 *却卻 *糾糺 *間閒 *強强 *教敎 *群羣 *携攜 *冴冱 *冊册 *床牀 *姉姊 *刃刄 *跡蹟 *窓窗 *勅敕 *妊姙 *粘黏 *姫姬 *没沒 *欲慾 *鎌鐮 *略畧 *隣鄰 *隷隸 *契&#xF909; *着&#xFA5F; *旅&#xF983; *廉&#xF9A2; *羽&#xFA1E; *益&#xFA17; *館&#xFA2C; *飼&#xFA2B; *晴&#xFA12; *精&#xFA1D; *飯&#xFA2A; 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